From f1567f989bdff5c91ef32e2209fb3dd7d06f59b0 Mon Sep 17 00:00:00 2001 From: rock64 Date: Mon, 29 Apr 2019 16:09:00 +0200 Subject: [PATCH] runff 1.0 commit --- CONTRIBUTING.md | 118 + COPYING | 21 + LICENSE | 459 ++ README.md | 11 + TESTING.md | 72 + ajax/v1/ajax.php | 254 + ajax/v1/ajaxpb.php | 29 + arbitro.php | 762 +++ auth.php | 32 + giocatore.php | 90 + index.php | 45 + js/jscolor.js | 1855 ++++++ lib/SimpleSAML/Auth/Default.php | 139 + lib/SimpleSAML/Auth/LDAP.php | 775 +++ lib/SimpleSAML/Auth/ProcessingChain.php | 369 ++ lib/SimpleSAML/Auth/ProcessingFilter.php | 67 + lib/SimpleSAML/Auth/Simple.php | 401 ++ lib/SimpleSAML/Auth/Source.php | 513 ++ lib/SimpleSAML/Auth/SourceFactory.php | 15 + lib/SimpleSAML/Auth/State.php | 420 ++ lib/SimpleSAML/Auth/TimeLimitedToken.php | 147 + lib/SimpleSAML/AuthMemCookie.php | 166 + lib/SimpleSAML/Bindings/Shib13/Artifact.php | 190 + lib/SimpleSAML/Bindings/Shib13/HTTPPost.php | 154 + lib/SimpleSAML/Configuration.php | 1392 +++++ lib/SimpleSAML/Database.php | 293 + lib/SimpleSAML/Error/Assertion.php | 85 + lib/SimpleSAML/Error/AuthSource.php | 70 + lib/SimpleSAML/Error/BadRequest.php | 46 + lib/SimpleSAML/Error/BadUserInput.php | 12 + lib/SimpleSAML/Error/CannotSetCookie.php | 35 + lib/SimpleSAML/Error/ConfigurationError.php | 77 + .../Error/CriticalConfigurationError.php | 79 + lib/SimpleSAML/Error/Error.php | 296 + lib/SimpleSAML/Error/ErrorCodes.php | 188 + lib/SimpleSAML/Error/Exception.php | 316 ++ lib/SimpleSAML/Error/InvalidCredential.php | 12 + lib/SimpleSAML/Error/MetadataNotFound.php | 27 + lib/SimpleSAML/Error/NoPassive.php | 15 + lib/SimpleSAML/Error/NoState.php | 21 + lib/SimpleSAML/Error/NotFound.php | 72 + lib/SimpleSAML/Error/ProxyCountExceeded.php | 15 + .../Error/UnserializableException.php | 57 + lib/SimpleSAML/Error/User.php | 14 + lib/SimpleSAML/Error/UserAborted.php | 20 + lib/SimpleSAML/Error/UserNotFound.php | 13 + lib/SimpleSAML/IdP.php | 558 ++ lib/SimpleSAML/IdP/IFrameLogoutHandler.php | 119 + lib/SimpleSAML/IdP/LogoutHandlerInterface.php | 43 + .../IdP/TraditionalLogoutHandler.php | 119 + lib/SimpleSAML/Locale/Language.php | 424 ++ lib/SimpleSAML/Locale/Localization.php | 265 + lib/SimpleSAML/Locale/Translate.php | 546 ++ lib/SimpleSAML/Logger.php | 457 ++ .../Logger/ErrorLogLoggingHandler.php | 84 + lib/SimpleSAML/Logger/FileLoggingHandler.php | 113 + .../Logger/LoggingHandlerInterface.php | 38 + .../Logger/StandardErrorLoggingHandler.php | 24 + .../Logger/SyslogLoggingHandler.php | 75 + lib/SimpleSAML/Memcache.php | 492 ++ .../Metadata/MetaDataStorageHandler.php | 361 ++ .../MetaDataStorageHandlerFlatFile.php | 144 + .../Metadata/MetaDataStorageHandlerPdo.php | 306 + .../MetaDataStorageHandlerSerialize.php | 286 + .../Metadata/MetaDataStorageHandlerXML.php | 116 + .../Metadata/MetaDataStorageSource.php | 275 + lib/SimpleSAML/Metadata/SAMLBuilder.php | 777 +++ lib/SimpleSAML/Metadata/SAMLParser.php | 1478 +++++ lib/SimpleSAML/Metadata/Signer.php | 283 + lib/SimpleSAML/Metadata/Sources/MDQ.php | 337 ++ lib/SimpleSAML/Module.php | 311 ++ lib/SimpleSAML/Session.php | 1171 ++++ lib/SimpleSAML/SessionHandler.php | 160 + lib/SimpleSAML/SessionHandlerCookie.php | 173 + lib/SimpleSAML/SessionHandlerPHP.php | 362 ++ lib/SimpleSAML/SessionHandlerStore.php | 80 + lib/SimpleSAML/Stats.php | 100 + lib/SimpleSAML/Stats/Output.php | 29 + lib/SimpleSAML/Store.php | 106 + lib/SimpleSAML/Store/Memcache.php | 84 + lib/SimpleSAML/Store/Redis.php | 119 + lib/SimpleSAML/Store/SQL.php | 389 ++ lib/SimpleSAML/Utilities.php | 707 +++ lib/SimpleSAML/Utils/Arrays.php | 60 + lib/SimpleSAML/Utils/Attributes.php | 131 + lib/SimpleSAML/Utils/Auth.php | 76 + lib/SimpleSAML/Utils/ClearableState.php | 17 + lib/SimpleSAML/Utils/Config.php | 92 + lib/SimpleSAML/Utils/Config/Metadata.php | 282 + lib/SimpleSAML/Utils/Crypto.php | 471 ++ lib/SimpleSAML/Utils/HTTP.php | 1222 ++++ lib/SimpleSAML/Utils/HttpAdapter.php | 211 + lib/SimpleSAML/Utils/Net.php | 85 + lib/SimpleSAML/Utils/Random.php | 30 + lib/SimpleSAML/Utils/System.php | 239 + lib/SimpleSAML/Utils/Time.php | 167 + lib/SimpleSAML/Utils/XML.php | 453 ++ lib/SimpleSAML/XHTML/EMail.php | 122 + lib/SimpleSAML/XHTML/IdPDisco.php | 598 ++ lib/SimpleSAML/XHTML/Template.php | 724 +++ .../XHTML/TemplateControllerInterface.php | 33 + lib/SimpleSAML/XML/Errors.php | 140 + lib/SimpleSAML/XML/Parser.php | 77 + lib/SimpleSAML/XML/Shib13/AuthnRequest.php | 53 + lib/SimpleSAML/XML/Shib13/AuthnResponse.php | 480 ++ lib/SimpleSAML/XML/Signer.php | 313 ++ lib/SimpleSAML/XML/Validator.php | 445 ++ lib/_autoload.php | 20 + lib/_autoload_modules.php | 157 + lib/aws/Aws/ACMPCA/ACMPCAClient.php | 49 + .../Aws/ACMPCA/Exception/ACMPCAException.php | 9 + lib/aws/Aws/Acm/AcmClient.php | 36 + lib/aws/Aws/Acm/Exception/AcmException.php | 9 + .../AlexaForBusinessClient.php | 163 + .../Exception/AlexaForBusinessException.php | 9 + lib/aws/Aws/Amplify/AmplifyClient.php | 49 + .../Amplify/Exception/AmplifyException.php | 9 + lib/aws/Aws/Api/AbstractModel.php | 67 + lib/aws/Aws/Api/ApiProvider.php | 244 + lib/aws/Aws/Api/DateTimeResult.php | 41 + lib/aws/Aws/Api/DocModel.php | 128 + .../Aws/Api/ErrorParser/JsonParserTrait.php | 26 + .../Api/ErrorParser/JsonRpcErrorParser.php | 31 + .../Api/ErrorParser/RestJsonErrorParser.php | 35 + .../Aws/Api/ErrorParser/XmlErrorParser.php | 82 + lib/aws/Aws/Api/ListShape.php | 35 + lib/aws/Aws/Api/MapShape.php | 54 + lib/aws/Aws/Api/Operation.php | 97 + lib/aws/Aws/Api/Parser/AbstractParser.php | 46 + lib/aws/Aws/Api/Parser/AbstractRestParser.php | 173 + .../Aws/Api/Parser/Crc32ValidatingParser.php | 54 + .../Parser/DecodingEventStreamIterator.php | 335 ++ .../Aws/Api/Parser/EventParsingIterator.php | 107 + .../Api/Parser/Exception/ParserException.php | 31 + lib/aws/Aws/Api/Parser/JsonParser.php | 62 + lib/aws/Aws/Api/Parser/JsonRpcParser.php | 51 + lib/aws/Aws/Api/Parser/PayloadParserTrait.php | 61 + lib/aws/Aws/Api/Parser/QueryParser.php | 60 + lib/aws/Aws/Api/Parser/RestJsonParser.php | 49 + lib/aws/Aws/Api/Parser/RestXmlParser.php | 42 + lib/aws/Aws/Api/Parser/XmlParser.php | 138 + .../Aws/Api/Serializer/Ec2ParamBuilder.php | 40 + lib/aws/Aws/Api/Serializer/JsonBody.php | 96 + .../Aws/Api/Serializer/JsonRpcSerializer.php | 69 + .../Aws/Api/Serializer/QueryParamBuilder.php | 157 + .../Aws/Api/Serializer/QuerySerializer.php | 69 + .../Aws/Api/Serializer/RestJsonSerializer.php | 39 + lib/aws/Aws/Api/Serializer/RestSerializer.php | 219 + .../Aws/Api/Serializer/RestXmlSerializer.php | 34 + lib/aws/Aws/Api/Serializer/XmlBody.php | 220 + lib/aws/Aws/Api/Service.php | 448 ++ lib/aws/Aws/Api/Shape.php | 69 + lib/aws/Aws/Api/ShapeMap.php | 66 + lib/aws/Aws/Api/StructureShape.php | 79 + lib/aws/Aws/Api/TimestampShape.php | 48 + lib/aws/Aws/Api/Validator.php | 286 + lib/aws/Aws/ApiGateway/ApiGatewayClient.php | 272 + .../Exception/ApiGatewayException.php | 9 + .../ApiGatewayManagementApiClient.php | 11 + .../ApiGatewayManagementApiException.php | 9 + .../Aws/ApiGatewayV2/ApiGatewayV2Client.php | 121 + .../Exception/ApiGatewayV2Exception.php | 9 + lib/aws/Aws/AppMesh/AppMeshClient.php | 65 + .../AppMesh/Exception/AppMeshException.php | 9 + lib/aws/Aws/AppSync/AppSyncClient.php | 75 + .../AppSync/Exception/AppSyncException.php | 9 + .../ApplicationAutoScalingClient.php | 29 + .../ApplicationAutoScalingException.php | 9 + .../ApplicationDiscoveryServiceClient.php | 59 + .../ApplicationDiscoveryServiceException.php | 9 + lib/aws/Aws/Appstream/AppstreamClient.php | 97 + .../Exception/AppstreamException.php | 9 + lib/aws/Aws/Athena/AthenaClient.php | 47 + .../Aws/Athena/Exception/AthenaException.php | 9 + lib/aws/Aws/AutoScaling/AutoScalingClient.php | 118 + .../Exception/AutoScalingException.php | 9 + .../AutoScalingPlansClient.php | 21 + .../Exception/AutoScalingPlansException.php | 9 + lib/aws/Aws/AwsClient.php | 402 ++ lib/aws/Aws/AwsClientInterface.php | 169 + lib/aws/Aws/AwsClientTrait.php | 92 + lib/aws/Aws/Backup/BackupClient.php | 95 + .../Aws/Backup/Exception/BackupException.php | 9 + lib/aws/Aws/Batch/BatchClient.php | 41 + .../Aws/Batch/Exception/BatchException.php | 9 + lib/aws/Aws/Budgets/BudgetsClient.php | 37 + .../Budgets/Exception/BudgetsException.php | 9 + lib/aws/Aws/CacheInterface.php | 34 + lib/aws/Aws/Chime/ChimeClient.php | 109 + .../Aws/Chime/Exception/ChimeException.php | 9 + lib/aws/Aws/ClientResolver.php | 768 +++ .../AbstractMonitoringMiddleware.php | 275 + .../ApiCallAttemptMonitoringMiddleware.php | 262 + .../ApiCallMonitoringMiddleware.php | 176 + .../ClientSideMonitoring/Configuration.php | 65 + .../ConfigurationInterface.php | 37 + .../ConfigurationProvider.php | 342 ++ .../Exception/ConfigurationException.php | 15 + .../MonitoringMiddlewareInterface.php | 35 + lib/aws/Aws/Cloud9/Cloud9Client.php | 29 + .../Aws/Cloud9/Exception/Cloud9Exception.php | 9 + .../CloudDirectory/CloudDirectoryClient.php | 141 + .../Exception/CloudDirectoryException.php | 9 + .../CloudFormation/CloudFormationClient.php | 100 + .../Exception/CloudFormationException.php | 9 + lib/aws/Aws/CloudFront/CloudFrontClient.php | 190 + lib/aws/Aws/CloudFront/CookieSigner.php | 65 + .../Exception/CloudFrontException.php | 9 + lib/aws/Aws/CloudFront/Signer.php | 117 + lib/aws/Aws/CloudFront/UrlSigner.php | 119 + lib/aws/Aws/CloudHSMV2/CloudHSMV2Client.php | 35 + .../Exception/CloudHSMV2Exception.php | 9 + lib/aws/Aws/CloudHsm/CloudHsmClient.php | 84 + .../CloudHsm/Exception/CloudHsmException.php | 9 + lib/aws/Aws/CloudSearch/CloudSearchClient.php | 58 + .../Exception/CloudSearchException.php | 9 + .../CloudSearchDomainClient.php | 84 + .../Exception/CloudSearchDomainException.php | 9 + lib/aws/Aws/CloudTrail/CloudTrailClient.php | 38 + .../Exception/CloudTrailException.php | 9 + lib/aws/Aws/CloudTrail/LogFileIterator.php | 324 ++ lib/aws/Aws/CloudTrail/LogFileReader.php | 55 + lib/aws/Aws/CloudTrail/LogRecordIterator.php | 187 + lib/aws/Aws/CloudWatch/CloudWatchClient.php | 50 + .../Exception/CloudWatchException.php | 9 + .../CloudWatchEventsClient.php | 46 + .../Exception/CloudWatchEventsException.php | 9 + .../CloudWatchLogs/CloudWatchLogsClient.php | 88 + .../Exception/CloudWatchLogsException.php | 9 + lib/aws/Aws/CodeBuild/CodeBuildClient.php | 47 + .../Exception/CodeBuildException.php | 9 + lib/aws/Aws/CodeCommit/CodeCommitClient.php | 90 + .../Exception/CodeCommitException.php | 9 + lib/aws/Aws/CodeDeploy/CodeDeployClient.php | 96 + .../Exception/CodeDeployException.php | 9 + .../Aws/CodePipeline/CodePipelineClient.php | 76 + .../Exception/CodePipelineException.php | 9 + lib/aws/Aws/CodeStar/CodeStarClient.php | 45 + .../CodeStar/Exception/CodeStarException.php | 9 + .../CognitoIdentity/CognitoIdentityClient.php | 52 + .../CognitoIdentityProvider.php | 61 + .../Exception/CognitoIdentityException.php | 9 + .../CognitoIdentityProviderClient.php | 208 + .../CognitoIdentityProviderException.php | 9 + lib/aws/Aws/CognitoSync/CognitoSyncClient.php | 44 + .../Exception/CognitoSyncException.php | 9 + lib/aws/Aws/Command.php | 62 + lib/aws/Aws/CommandInterface.php | 42 + lib/aws/Aws/CommandPool.php | 150 + lib/aws/Aws/Comprehend/ComprehendClient.php | 99 + .../Exception/ComprehendException.php | 9 + .../ComprehendMedicalClient.php | 13 + .../Exception/ComprehendMedicalException.php | 9 + .../Aws/ConfigService/ConfigServiceClient.php | 122 + .../Exception/ConfigServiceException.php | 9 + lib/aws/Aws/Connect/ConnectClient.php | 51 + .../Connect/Exception/ConnectException.php | 9 + .../Aws/CostExplorer/CostExplorerClient.php | 23 + .../Exception/CostExplorerException.php | 9 + .../CostandUsageReportServiceClient.php | 15 + .../CostandUsageReportServiceException.php | 9 + .../AssumeRoleCredentialProvider.php | 64 + .../Aws/Credentials/CredentialProvider.php | 401 ++ lib/aws/Aws/Credentials/Credentials.php | 91 + .../Aws/Credentials/CredentialsInterface.php | 52 + .../Aws/Credentials/EcsCredentialProvider.php | 88 + .../Credentials/InstanceProfileProvider.php | 118 + lib/aws/Aws/Crypto/AbstractCryptoClient.php | 113 + lib/aws/Aws/Crypto/AesDecryptingStream.php | 144 + lib/aws/Aws/Crypto/AesEncryptingStream.php | 150 + lib/aws/Aws/Crypto/AesGcmDecryptingStream.php | 95 + lib/aws/Aws/Crypto/AesGcmEncryptingStream.php | 101 + lib/aws/Aws/Crypto/AesStreamInterface.php | 30 + lib/aws/Aws/Crypto/Cipher/Cbc.php | 82 + .../Aws/Crypto/Cipher/CipherBuilderTrait.php | 70 + lib/aws/Aws/Crypto/Cipher/CipherMethod.php | 59 + lib/aws/Aws/Crypto/DecryptionTrait.php | 179 + lib/aws/Aws/Crypto/EncryptionTrait.php | 186 + lib/aws/Aws/Crypto/KmsMaterialsProvider.php | 108 + lib/aws/Aws/Crypto/MaterialsProvider.php | 105 + lib/aws/Aws/Crypto/MetadataEnvelope.php | 57 + .../Aws/Crypto/MetadataStrategyInterface.php | 30 + lib/aws/Aws/DAX/DAXClient.php | 51 + lib/aws/Aws/DAX/Exception/DAXException.php | 9 + lib/aws/Aws/DLM/DLMClient.php | 19 + lib/aws/Aws/DLM/Exception/DLMException.php | 9 + .../Aws/DataPipeline/DataPipelineClient.php | 48 + .../Exception/DataPipelineException.php | 9 + lib/aws/Aws/DataSync/DataSyncClient.php | 59 + .../DataSync/Exception/DataSyncException.php | 9 + .../DatabaseMigrationServiceClient.php | 101 + .../DatabaseMigrationServiceException.php | 9 + lib/aws/Aws/DeviceFarm/DeviceFarmClient.php | 138 + .../Exception/DeviceFarmException.php | 9 + .../Aws/DirectConnect/DirectConnectClient.php | 110 + .../Exception/DirectConnectException.php | 9 + .../DirectoryServiceClient.php | 110 + .../Exception/DirectoryServiceException.php | 9 + lib/aws/Aws/DocDB/DocDBClient.php | 87 + .../Aws/DocDB/Exception/DocDBException.php | 9 + lib/aws/Aws/DoctrineCacheAdapter.php | 55 + lib/aws/Aws/DynamoDb/BinaryValue.php | 36 + lib/aws/Aws/DynamoDb/DynamoDbClient.php | 148 + .../DynamoDb/Exception/DynamoDbException.php | 9 + .../Aws/DynamoDb/LockingSessionConnection.php | 62 + lib/aws/Aws/DynamoDb/Marshaler.php | 324 ++ lib/aws/Aws/DynamoDb/NumberValue.php | 29 + .../DynamoDb/SessionConnectionInterface.php | 45 + lib/aws/Aws/DynamoDb/SessionHandler.php | 227 + lib/aws/Aws/DynamoDb/SetValue.php | 44 + .../DynamoDb/StandardSessionConnection.php | 149 + lib/aws/Aws/DynamoDb/WriteRequestBatch.php | 266 + .../DynamoDbStreams/DynamoDbStreamsClient.php | 29 + .../Exception/DynamoDbStreamsException.php | 9 + lib/aws/Aws/EKS/EKSClient.php | 25 + lib/aws/Aws/EKS/Exception/EKSException.php | 9 + lib/aws/Aws/Ec2/Ec2Client.php | 718 +++ lib/aws/Aws/Ec2/Exception/Ec2Exception.php | 9 + lib/aws/Aws/Ecr/EcrClient.php | 60 + lib/aws/Aws/Ecr/Exception/EcrException.php | 9 + lib/aws/Aws/Ecs/EcsClient.php | 96 + lib/aws/Aws/Ecs/Exception/EcsException.php | 9 + lib/aws/Aws/Efs/EfsClient.php | 38 + lib/aws/Aws/Efs/Exception/EfsException.php | 9 + lib/aws/Aws/ElastiCache/ElastiCacheClient.php | 94 + .../Exception/ElastiCacheException.php | 9 + .../ElasticBeanstalkClient.php | 98 + .../Exception/ElasticBeanstalkException.php | 9 + .../ElasticLoadBalancingClient.php | 68 + .../ElasticLoadBalancingException.php | 9 + .../ElasticLoadBalancingV2Client.php | 77 + .../ElasticLoadBalancingV2Exception.php | 9 + .../ElasticTranscoderClient.php | 44 + .../Exception/ElasticTranscoderException.php | 9 + .../ElasticsearchServiceClient.php | 56 + .../ElasticsearchServiceException.php | 9 + lib/aws/Aws/Emr/EmrClient.php | 64 + lib/aws/Aws/Emr/Exception/EmrException.php | 9 + lib/aws/Aws/Endpoint/EndpointProvider.php | 96 + lib/aws/Aws/Endpoint/Partition.php | 183 + .../Endpoint/PartitionEndpointProvider.php | 108 + lib/aws/Aws/Endpoint/PartitionInterface.php | 56 + .../Aws/Endpoint/PatternEndpointProvider.php | 51 + .../Aws/EndpointDiscovery/Configuration.php | 48 + .../ConfigurationInterface.php | 30 + .../ConfigurationProvider.php | 333 ++ .../EndpointDiscoveryMiddleware.php | 414 ++ .../Aws/EndpointDiscovery/EndpointList.php | 85 + .../Exception/ConfigurationException.php | 14 + lib/aws/Aws/EndpointParameterMiddleware.php | 84 + lib/aws/Aws/Exception/AwsException.php | 237 + .../CouldNotCreateChecksumException.php | 25 + .../Aws/Exception/CredentialsException.php | 11 + .../Exception/EventStreamDataException.php | 38 + .../Exception/MultipartUploadException.php | 63 + .../Aws/Exception/UnresolvedApiException.php | 11 + .../Exception/UnresolvedEndpointException.php | 11 + .../UnresolvedSignatureException.php | 11 + lib/aws/Aws/FMS/Exception/FMSException.php | 9 + lib/aws/Aws/FMS/FMSClient.php | 37 + lib/aws/Aws/FSx/Exception/FSxException.php | 9 + lib/aws/Aws/FSx/FSxClient.php | 31 + .../Firehose/Exception/FirehoseException.php | 9 + lib/aws/Aws/Firehose/FirehoseClient.php | 34 + .../GameLift/Exception/GameLiftException.php | 9 + lib/aws/Aws/GameLift/GameLiftClient.php | 146 + .../Glacier/Exception/GlacierException.php | 9 + lib/aws/Aws/Glacier/GlacierClient.php | 251 + lib/aws/Aws/Glacier/MultipartUploader.php | 284 + lib/aws/Aws/Glacier/TreeHash.php | 118 + .../Exception/GlobalAcceleratorException.php | 9 + .../GlobalAcceleratorClient.php | 43 + lib/aws/Aws/Glue/Exception/GlueException.php | 9 + lib/aws/Aws/Glue/GlueClient.php | 205 + .../Exception/GreengrassException.php | 9 + lib/aws/Aws/Greengrass/GreengrassClient.php | 189 + .../Exception/GuardDutyException.php | 9 + lib/aws/Aws/GuardDuty/GuardDutyClient.php | 93 + .../Aws/Handler/GuzzleV5/GuzzleHandler.php | 210 + lib/aws/Aws/Handler/GuzzleV5/GuzzleStream.php | 24 + lib/aws/Aws/Handler/GuzzleV5/PsrStream.php | 34 + .../Aws/Handler/GuzzleV6/GuzzleHandler.php | 85 + lib/aws/Aws/HandlerList.php | 451 ++ lib/aws/Aws/HasDataTrait.php | 60 + lib/aws/Aws/HasMonitoringEventsTrait.php | 39 + lib/aws/Aws/HashInterface.php | 27 + lib/aws/Aws/HashingStream.php | 60 + .../Aws/Health/Exception/HealthException.php | 9 + lib/aws/Aws/Health/HealthClient.php | 21 + lib/aws/Aws/History.php | 156 + lib/aws/Aws/Iam/Exception/IamException.php | 9 + lib/aws/Aws/Iam/IamClient.php | 284 + lib/aws/Aws/IdempotencyTokenMiddleware.php | 118 + .../Exception/ImportExportException.php | 9 + .../Aws/ImportExport/ImportExportClient.php | 21 + .../Exception/InspectorException.php | 9 + lib/aws/Aws/Inspector/InspectorClient.php | 84 + .../IoT1ClickDevicesServiceException.php | 9 + .../IoT1ClickDevicesServiceClient.php | 35 + .../Exception/IoT1ClickProjectsException.php | 9 + .../IoT1ClickProjectsClient.php | 41 + .../Exception/IoTAnalyticsException.php | 9 + .../Aws/IoTAnalytics/IoTAnalyticsClient.php | 77 + .../Exception/IoTJobsDataPlaneException.php | 9 + .../IoTJobsDataPlaneClient.php | 17 + lib/aws/Aws/Iot/Exception/IotException.php | 9 + lib/aws/Aws/Iot/IotClient.php | 344 ++ .../Exception/IotDataPlaneException.php | 9 + .../Aws/IotDataPlane/IotDataPlaneClient.php | 18 + lib/aws/Aws/JsonCompiler.php | 25 + .../Aws/Kafka/Exception/KafkaException.php | 9 + lib/aws/Aws/Kafka/KafkaClient.php | 21 + .../Kinesis/Exception/KinesisException.php | 9 + lib/aws/Aws/Kinesis/KinesisClient.php | 64 + .../Exception/KinesisAnalyticsException.php | 9 + .../KinesisAnalyticsClient.php | 43 + .../Exception/KinesisAnalyticsV2Exception.php | 9 + .../KinesisAnalyticsV2Client.php | 51 + .../Exception/KinesisVideoException.php | 9 + .../Aws/KinesisVideo/KinesisVideoClient.php | 29 + .../KinesisVideoArchivedMediaException.php | 9 + .../KinesisVideoArchivedMediaClient.php | 15 + .../Exception/KinesisVideoMediaException.php | 9 + .../KinesisVideoMediaClient.php | 11 + lib/aws/Aws/Kms/Exception/KmsException.php | 9 + lib/aws/Aws/Kms/KmsClient.php | 92 + .../Aws/Lambda/Exception/LambdaException.php | 9 + lib/aws/Aws/Lambda/LambdaClient.php | 121 + .../LexModelBuildingServiceException.php | 9 + .../LexModelBuildingServiceClient.php | 81 + .../Exception/LexRuntimeServiceException.php | 9 + .../LexRuntimeServiceClient.php | 13 + .../Exception/LicenseManagerException.php | 9 + .../LicenseManager/LicenseManagerClient.php | 39 + .../Exception/LightsailException.php | 9 + lib/aws/Aws/Lightsail/LightsailClient.php | 211 + lib/aws/Aws/LruArrayCache.php | 79 + lib/aws/Aws/MQ/Exception/MQException.php | 9 + lib/aws/Aws/MQ/MQClient.php | 49 + .../Aws/MTurk/Exception/MTurkException.php | 9 + lib/aws/Aws/MTurk/MTurkClient.php | 87 + .../Exception/MachineLearningException.php | 9 + .../MachineLearning/MachineLearningClient.php | 97 + .../Aws/Macie/Exception/MacieException.php | 9 + lib/aws/Aws/Macie/MacieClient.php | 23 + .../MarketplaceCommerceAnalyticsException.php | 9 + .../MarketplaceCommerceAnalyticsClient.php | 14 + ...MarketplaceEntitlementServiceException.php | 9 + .../MarketplaceEntitlementServiceClient.php | 11 + .../MarketplaceMeteringException.php | 9 + .../MarketplaceMeteringClient.php | 17 + .../Exception/MediaConnectException.php | 9 + .../Aws/MediaConnect/MediaConnectClient.php | 43 + .../Exception/MediaConvertException.php | 9 + .../Aws/MediaConvert/MediaConvertClient.php | 59 + .../Exception/MediaLiveException.php | 9 + lib/aws/Aws/MediaLive/MediaLiveClient.php | 67 + .../Exception/MediaPackageException.php | 9 + .../Aws/MediaPackage/MediaPackageClient.php | 39 + .../Exception/MediaStoreException.php | 9 + lib/aws/Aws/MediaStore/MediaStoreClient.php | 39 + .../Exception/MediaStoreDataException.php | 9 + .../MediaStoreData/MediaStoreDataClient.php | 19 + .../Exception/MediaTailorException.php | 9 + lib/aws/Aws/MediaTailor/MediaTailorClient.php | 23 + lib/aws/Aws/Middleware.php | 372 ++ .../Exception/MigrationHubException.php | 9 + .../Aws/MigrationHub/MigrationHubClient.php | 41 + .../Aws/Mobile/Exception/MobileException.php | 9 + lib/aws/Aws/Mobile/MobileClient.php | 27 + lib/aws/Aws/MockHandler.php | 145 + lib/aws/Aws/MonitoringEventsInterface.php | 32 + lib/aws/Aws/MultiRegionClient.php | 236 + .../Aws/Multipart/AbstractUploadManager.php | 305 + lib/aws/Aws/Multipart/AbstractUploader.php | 129 + lib/aws/Aws/Multipart/UploadState.php | 145 + .../Neptune/Exception/NeptuneException.php | 9 + lib/aws/Aws/Neptune/NeptuneClient.php | 123 + .../OpsWorks/Exception/OpsWorksException.php | 9 + lib/aws/Aws/OpsWorks/OpsWorksClient.php | 158 + .../Exception/OpsWorksCMException.php | 9 + lib/aws/Aws/OpsWorksCM/OpsWorksCMClient.php | 41 + .../Exception/OrganizationsException.php | 9 + .../Aws/Organizations/OrganizationsClient.php | 93 + lib/aws/Aws/PI/Exception/PIException.php | 9 + lib/aws/Aws/PI/PIClient.php | 13 + lib/aws/Aws/PhpHash.php | 81 + .../Pinpoint/Exception/PinpointException.php | 9 + lib/aws/Aws/Pinpoint/PinpointClient.php | 209 + .../Exception/PinpointEmailException.php | 9 + .../Aws/PinpointEmail/PinpointEmailClient.php | 89 + .../Exception/PinpointSMSVoiceException.php | 9 + .../PinpointSMSVoiceClient.php | 25 + .../Aws/Polly/Exception/PollyException.php | 9 + lib/aws/Aws/Polly/PollyClient.php | 73 + lib/aws/Aws/PresignUrlMiddleware.php | 99 + .../Pricing/Exception/PricingException.php | 9 + lib/aws/Aws/Pricing/PricingClient.php | 15 + lib/aws/Aws/PsrCacheAdapter.php | 38 + .../Exception/QuickSightException.php | 9 + lib/aws/Aws/QuickSight/QuickSightClient.php | 41 + lib/aws/Aws/RAM/Exception/RAMException.php | 9 + lib/aws/Aws/RAM/RAMClient.php | 41 + .../Exception/RDSDataServiceException.php | 9 + .../RDSDataService/RDSDataServiceClient.php | 11 + lib/aws/Aws/Rds/AuthTokenGenerator.php | 64 + lib/aws/Aws/Rds/Exception/RdsException.php | 9 + lib/aws/Aws/Rds/RdsClient.php | 331 ++ .../Redshift/Exception/RedshiftException.php | 9 + lib/aws/Aws/Redshift/RedshiftClient.php | 172 + .../Exception/RekognitionException.php | 9 + lib/aws/Aws/Rekognition/RekognitionClient.php | 77 + .../Exception/ResourceGroupsException.php | 9 + .../ResourceGroups/ResourceGroupsClient.php | 33 + .../ResourceGroupsTaggingAPIException.php | 9 + .../ResourceGroupsTaggingAPIClient.php | 19 + lib/aws/Aws/ResponseContainerInterface.php | 13 + lib/aws/Aws/Result.php | 57 + lib/aws/Aws/ResultInterface.php | 54 + lib/aws/Aws/ResultPaginator.php | 169 + lib/aws/Aws/RetryMiddleware.php | 315 ++ .../Exception/RoboMakerException.php | 9 + lib/aws/Aws/RoboMaker/RoboMakerClient.php | 79 + .../Route53/Exception/Route53Exception.php | 9 + lib/aws/Aws/Route53/Route53Client.php | 152 + .../Exception/Route53DomainsException.php | 9 + .../Route53Domains/Route53DomainsClient.php | 58 + .../Exception/Route53ResolverException.php | 9 + .../Route53Resolver/Route53ResolverClient.php | 53 + lib/aws/Aws/S3/AmbiguousSuccessParser.php | 68 + lib/aws/Aws/S3/ApplyChecksumMiddleware.php | 78 + lib/aws/Aws/S3/BatchDelete.php | 237 + lib/aws/Aws/S3/BucketEndpointMiddleware.php | 75 + lib/aws/Aws/S3/Crypto/CryptoParamsTrait.php | 75 + .../Aws/S3/Crypto/HeadersMetadataStrategy.php | 52 + .../InstructionFileMetadataStrategy.php | 90 + lib/aws/Aws/S3/Crypto/S3EncryptionClient.php | 317 ++ .../Crypto/S3EncryptionMultipartUploader.php | 157 + .../DeleteMultipleObjectsException.php | 68 + .../Exception/PermanentRedirectException.php | 4 + lib/aws/Aws/S3/Exception/S3Exception.php | 9 + .../Exception/S3MultipartUploadException.php | 84 + lib/aws/Aws/S3/GetBucketLocationParser.php | 49 + lib/aws/Aws/S3/MultipartCopy.php | 183 + lib/aws/Aws/S3/MultipartUploader.php | 168 + lib/aws/Aws/S3/MultipartUploadingTrait.php | 132 + lib/aws/Aws/S3/ObjectCopier.php | 150 + lib/aws/Aws/S3/ObjectUploader.php | 140 + .../Aws/S3/PermanentRedirectMiddleware.php | 62 + lib/aws/Aws/S3/PostObject.php | 160 + lib/aws/Aws/S3/PostObjectV4.php | 195 + lib/aws/Aws/S3/PutObjectUrlMiddleware.php | 57 + .../S3/RetryableMalformedResponseParser.php | 56 + lib/aws/Aws/S3/S3Client.php | 633 +++ lib/aws/Aws/S3/S3ClientInterface.php | 322 ++ lib/aws/Aws/S3/S3ClientTrait.php | 323 ++ lib/aws/Aws/S3/S3EndpointMiddleware.php | 234 + lib/aws/Aws/S3/S3MultiRegionClient.php | 339 ++ lib/aws/Aws/S3/S3UriParser.php | 133 + lib/aws/Aws/S3/SSECMiddleware.php | 75 + lib/aws/Aws/S3/StreamWrapper.php | 958 ++++ lib/aws/Aws/S3/Transfer.php | 428 ++ .../Exception/S3ControlException.php | 9 + lib/aws/Aws/S3Control/S3ControlClient.php | 62 + .../S3Control/S3ControlEndpointMiddleware.php | 121 + .../Exception/SageMakerException.php | 9 + lib/aws/Aws/SageMaker/SageMakerClient.php | 159 + .../Exception/SageMakerRuntimeException.php | 9 + .../SageMakerRuntimeClient.php | 11 + lib/aws/Aws/Sdk.php | 464 ++ .../Exception/SecretsManagerException.php | 9 + .../SecretsManager/SecretsManagerClient.php | 45 + .../Exception/SecurityHubException.php | 9 + lib/aws/Aws/SecurityHub/SecurityHubClient.php | 67 + ...rverlessApplicationRepositoryException.php | 9 + .../ServerlessApplicationRepositoryClient.php | 35 + .../Exception/ServiceCatalogException.php | 9 + .../ServiceCatalog/ServiceCatalogClient.php | 163 + .../Exception/ServiceDiscoveryException.php | 9 + .../ServiceDiscoveryClient.php | 49 + lib/aws/Aws/Ses/Exception/SesException.php | 9 + lib/aws/Aws/Ses/SesClient.php | 191 + lib/aws/Aws/Sfn/Exception/SfnException.php | 9 + lib/aws/Aws/Sfn/SfnClient.php | 53 + .../Aws/Shield/Exception/ShieldException.php | 9 + lib/aws/Aws/Shield/ShieldClient.php | 45 + lib/aws/Aws/Signature/AnonymousSignature.php | 26 + lib/aws/Aws/Signature/S3SignatureV4.php | 68 + lib/aws/Aws/Signature/SignatureInterface.php | 44 + lib/aws/Aws/Signature/SignatureProvider.php | 131 + lib/aws/Aws/Signature/SignatureTrait.php | 49 + lib/aws/Aws/Signature/SignatureV4.php | 412 ++ lib/aws/Aws/Sms/Exception/SmsException.php | 9 + lib/aws/Aws/Sms/SmsClient.php | 65 + .../SnowBall/Exception/SnowBallException.php | 9 + lib/aws/Aws/SnowBall/SnowBallClient.php | 45 + .../Exception/InvalidSnsMessageException.php | 9 + lib/aws/Aws/Sns/Exception/SnsException.php | 9 + lib/aws/Aws/Sns/Message.php | 156 + lib/aws/Aws/Sns/MessageValidator.php | 190 + lib/aws/Aws/Sns/SnsClient.php | 70 + lib/aws/Aws/Sqs/Exception/SqsException.php | 9 + lib/aws/Aws/Sqs/SqsClient.php | 256 + lib/aws/Aws/Ssm/Exception/SsmException.php | 9 + lib/aws/Aws/Ssm/SsmClient.php | 238 + .../Exception/StorageGatewayException.php | 9 + .../StorageGateway/StorageGatewayClient.php | 152 + lib/aws/Aws/Sts/Exception/StsException.php | 9 + lib/aws/Aws/Sts/StsClient.php | 53 + .../Support/Exception/SupportException.php | 9 + lib/aws/Aws/Support/SupportClient.php | 38 + lib/aws/Aws/Swf/Exception/SwfException.php | 9 + lib/aws/Aws/Swf/SwfClient.php | 72 + .../Textract/Exception/TextractException.php | 9 + lib/aws/Aws/Textract/TextractClient.php | 21 + lib/aws/Aws/TraceMiddleware.php | 314 ++ .../Exception/TranscribeServiceException.php | 9 + .../TranscribeServiceClient.php | 27 + .../Transfer/Exception/TransferException.php | 9 + lib/aws/Aws/Transfer/TransferClient.php | 45 + .../Exception/TranslateException.php | 9 + lib/aws/Aws/Translate/TranslateClient.php | 19 + lib/aws/Aws/Waf/Exception/WafException.php | 9 + lib/aws/Aws/Waf/WafClient.php | 156 + .../Exception/WafRegionalException.php | 9 + lib/aws/Aws/WafRegional/WafRegionalClient.php | 163 + lib/aws/Aws/Waiter.php | 262 + .../WorkDocs/Exception/WorkDocsException.php | 9 + lib/aws/Aws/WorkDocs/WorkDocsClient.php | 91 + .../WorkLink/Exception/WorkLinkException.php | 9 + lib/aws/Aws/WorkLink/WorkLinkClient.php | 49 + .../WorkMail/Exception/WorkMailException.php | 9 + lib/aws/Aws/WorkMail/WorkMailClient.php | 71 + .../Exception/WorkSpacesException.php | 9 + lib/aws/Aws/WorkSpaces/WorkSpacesClient.php | 74 + lib/aws/Aws/WrappedHttpHandler.php | 203 + lib/aws/Aws/XRay/Exception/XRayException.php | 9 + lib/aws/Aws/XRay/XRayClient.php | 47 + .../data/acm-pca/2017-08-22/api-2.json.php | 3 + .../acm-pca/2017-08-22/paginators-1.json.php | 3 + .../acm-pca/2017-08-22/waiters-2.json.php | 3 + .../Aws/data/acm/2015-12-08/api-2.json.php | 3 + .../data/acm/2015-12-08/paginators-1.json.php | 3 + .../Aws/data/acm/2015-12-08/smoke.json.php | 3 + .../data/acm/2015-12-08/waiters-2.json.php | 3 + .../2017-11-09/api-2.json.php | 3 + .../2017-11-09/paginators-1.json.php | 3 + .../data/amplify/2017-07-25/api-2.json.php | 3 + .../amplify/2017-07-25/paginators-1.json.php | 3 + .../data/apigateway/2015-07-09/api-2.json.php | 3 + .../2015-07-09/paginators-1.json.php | 3 + .../data/apigateway/2015-07-09/smoke.json.php | 3 + .../2018-11-29/api-2.json.php | 3 + .../2018-11-29/paginators-1.json.php | 3 + .../apigatewayv2/2018-11-29/api-2.json.php | 3 + .../2018-11-29/paginators-1.json.php | 3 + .../2016-02-06/api-2.json.php | 3 + .../2016-02-06/paginators-1.json.php | 3 + .../2016-02-06/smoke.json.php | 3 + .../data/appmesh/2018-10-01/api-2.json.php | 3 + .../appmesh/2018-10-01/paginators-1.json.php | 3 + .../data/appmesh/2019-01-25/api-2.json.php | 3 + .../appmesh/2019-01-25/paginators-1.json.php | 3 + .../data/appstream/2016-12-01/api-2.json.php | 3 + .../2016-12-01/paginators-1.json.php | 3 + .../data/appstream/2016-12-01/smoke.json.php | 3 + .../appstream/2016-12-01/waiters-2.json.php | 3 + .../data/appsync/2017-07-25/api-2.json.php | 3 + .../appsync/2017-07-25/paginators-1.json.php | 3 + .../Aws/data/athena/2017-05-18/api-2.json.php | 3 + .../athena/2017-05-18/paginators-1.json.php | 3 + .../Aws/data/athena/2017-05-18/smoke.json.php | 3 + .../2018-01-06/api-2.json.php | 3 + .../2018-01-06/paginators-1.json.php | 3 + .../autoscaling/2011-01-01/api-2.json.php | 3 + .../2011-01-01/paginators-1.json.php | 3 + .../autoscaling/2011-01-01/smoke.json.php | 3 + .../autoscaling/2011-01-01/waiters-2.json.php | 3 + .../Aws/data/backup/2018-11-15/api-2.json.php | 3 + .../backup/2018-11-15/paginators-1.json.php | 3 + .../Aws/data/batch/2016-08-10/api-2.json.php | 3 + .../batch/2016-08-10/paginators-1.json.php | 3 + .../Aws/data/batch/2016-08-10/smoke.json.php | 3 + .../data/budgets/2016-10-20/api-2.json.php | 3 + .../budgets/2016-10-20/paginators-1.json.php | 3 + lib/aws/Aws/data/ce/2017-10-25/api-2.json.php | 3 + .../data/ce/2017-10-25/paginators-1.json.php | 3 + .../Aws/data/chime/2018-05-01/api-2.json.php | 3 + .../chime/2018-05-01/paginators-1.json.php | 3 + .../Aws/data/cloud9/2017-09-23/api-2.json.php | 3 + .../cloud9/2017-09-23/paginators-1.json.php | 3 + .../clouddirectory/2016-05-10/api-2.json.php | 3 + .../2016-05-10/paginators-1.json.php | 3 + .../clouddirectory/2017-01-11/api-2.json.php | 3 + .../2017-01-11/paginators-1.json.php | 3 + .../cloudformation/2010-05-15/api-2.json.php | 3 + .../2010-05-15/paginators-1.json.php | 3 + .../2010-05-15/waiters-2.json.php | 3 + .../data/cloudfront/2015-07-27/api-2.json.php | 3 + .../2015-07-27/paginators-1.json.php | 3 + .../cloudfront/2015-07-27/waiters-2.json.php | 3 + .../data/cloudfront/2016-01-28/api-2.json.php | 3 + .../2016-01-28/paginators-1.json.php | 3 + .../cloudfront/2016-01-28/waiters-2.json.php | 3 + .../data/cloudfront/2016-08-01/api-2.json.php | 3 + .../2016-08-01/paginators-1.json.php | 3 + .../cloudfront/2016-08-01/waiters-2.json.php | 3 + .../data/cloudfront/2016-08-20/api-2.json.php | 3 + .../2016-08-20/paginators-1.json.php | 3 + .../cloudfront/2016-08-20/waiters-2.json.php | 3 + .../data/cloudfront/2016-09-07/api-2.json.php | 3 + .../2016-09-07/paginators-1.json.php | 3 + .../cloudfront/2016-09-07/waiters-1.json.php | 3 + .../cloudfront/2016-09-07/waiters-2.json.php | 3 + .../data/cloudfront/2016-09-29/api-2.json.php | 3 + .../2016-09-29/paginators-1.json.php | 3 + .../cloudfront/2016-09-29/waiters-1.json.php | 3 + .../cloudfront/2016-09-29/waiters-2.json.php | 3 + .../data/cloudfront/2016-11-25/api-2.json.php | 3 + .../2016-11-25/paginators-1.json.php | 3 + .../cloudfront/2016-11-25/waiters-1.json.php | 3 + .../cloudfront/2016-11-25/waiters-2.json.php | 3 + .../data/cloudfront/2017-03-25/api-2.json.php | 3 + .../2017-03-25/paginators-1.json.php | 3 + .../cloudfront/2017-03-25/waiters-1.json.php | 3 + .../cloudfront/2017-03-25/waiters-2.json.php | 3 + .../data/cloudfront/2017-10-30/api-2.json.php | 3 + .../2017-10-30/paginators-1.json.php | 3 + .../data/cloudfront/2017-10-30/smoke.json.php | 3 + .../cloudfront/2017-10-30/waiters-1.json.php | 3 + .../cloudfront/2017-10-30/waiters-2.json.php | 3 + .../data/cloudfront/2018-06-18/api-2.json.php | 3 + .../2018-06-18/paginators-1.json.php | 3 + .../data/cloudfront/2018-06-18/smoke.json.php | 3 + .../cloudfront/2018-06-18/waiters-1.json.php | 3 + .../cloudfront/2018-06-18/waiters-2.json.php | 3 + .../data/cloudfront/2018-11-05/api-2.json.php | 3 + .../2018-11-05/paginators-1.json.php | 3 + .../data/cloudfront/2018-11-05/smoke.json.php | 3 + .../cloudfront/2018-11-05/waiters-1.json.php | 3 + .../cloudfront/2018-11-05/waiters-2.json.php | 3 + .../data/cloudhsm/2014-05-30/api-2.json.php | 3 + .../cloudhsm/2014-05-30/paginators-1.json.php | 3 + .../data/cloudhsmv2/2017-04-28/api-2.json.php | 3 + .../2017-04-28/paginators-1.json.php | 3 + .../data/cloudhsmv2/2017-04-28/smoke.json.php | 3 + .../cloudsearch/2013-01-01/api-2.json.php | 3 + .../2013-01-01/paginators-1.json.php | 3 + .../2013-01-01/api-2.json.php | 3 + .../data/cloudtrail/2013-11-01/api-2.json.php | 3 + .../2013-11-01/paginators-1.json.php | 3 + .../data/cloudtrail/2013-11-01/smoke.json.php | 3 + .../data/codebuild/2016-10-06/api-2.json.php | 3 + .../2016-10-06/paginators-1.json.php | 3 + .../data/codebuild/2016-10-06/smoke.json.php | 3 + .../data/codecommit/2015-04-13/api-2.json.php | 3 + .../2015-04-13/paginators-1.json.php | 3 + .../data/codecommit/2015-04-13/smoke.json.php | 3 + .../data/codedeploy/2014-10-06/api-2.json.php | 3 + .../2014-10-06/paginators-1.json.php | 3 + .../data/codedeploy/2014-10-06/smoke.json.php | 3 + .../codedeploy/2014-10-06/waiters-1.json.php | 3 + .../codedeploy/2014-10-06/waiters-2.json.php | 3 + .../codepipeline/2015-07-09/api-2.json.php | 3 + .../2015-07-09/paginators-1.json.php | 3 + .../codepipeline/2015-07-09/smoke.json.php | 3 + .../data/codestar/2017-04-19/api-2.json.php | 3 + .../codestar/2017-04-19/paginators-1.json.php | 3 + .../data/codestar/2017-04-19/smoke.json.php | 3 + .../2014-06-30/api-2.json.php | 3 + .../2014-06-30/paginators-1.json.php | 3 + .../cognito-idp/2016-04-18/api-2.json.php | 3 + .../2016-04-18/paginators-1.json.php | 3 + .../cognito-idp/2016-04-18/smoke.json.php | 3 + .../cognito-sync/2014-06-30/api-2.json.php | 3 + .../data/comprehend/2017-11-27/api-2.json.php | 3 + .../2017-11-27/paginators-1.json.php | 3 + .../2018-10-30/api-2.json.php | 3 + .../2018-10-30/paginators-1.json.php | 3 + .../Aws/data/config/2014-11-12/api-2.json.php | 3 + .../config/2014-11-12/paginators-1.json.php | 3 + .../Aws/data/config/2014-11-12/smoke.json.php | 3 + .../data/connect/2017-08-08/api-2.json.php | 3 + .../connect/2017-08-08/paginators-1.json.php | 3 + .../Aws/data/cur/2017-01-06/api-2.json.php | 3 + .../data/cur/2017-01-06/paginators-1.json.php | 3 + .../Aws/data/cur/2017-01-06/smoke.json.php | 3 + .../data/data.iot/2015-05-28/api-2.json.php | 3 + .../datapipeline/2012-10-29/api-2.json.php | 3 + .../2012-10-29/paginators-1.json.php | 3 + .../data/datasync/2018-11-09/api-2.json.php | 3 + .../datasync/2018-11-09/paginators-1.json.php | 3 + .../Aws/data/dax/2017-04-19/api-2.json.php | 3 + .../data/dax/2017-04-19/paginators-1.json.php | 3 + .../data/devicefarm/2015-06-23/api-2.json.php | 3 + .../2015-06-23/paginators-1.json.php | 3 + .../data/devicefarm/2015-06-23/smoke.json.php | 3 + .../directconnect/2012-10-25/api-2.json.php | 3 + .../2012-10-25/paginators-1.json.php | 3 + .../directconnect/2012-10-25/smoke.json.php | 3 + .../data/discovery/2015-11-01/api-2.json.php | 3 + .../2015-11-01/paginators-1.json.php | 3 + .../data/discovery/2015-11-01/smoke.json.php | 3 + .../Aws/data/dlm/2018-01-12/api-2.json.php | 3 + .../data/dlm/2018-01-12/paginators-1.json.php | 3 + .../Aws/data/dms/2016-01-01/api-2.json.php | 3 + .../data/dms/2016-01-01/paginators-1.json.php | 3 + .../Aws/data/dms/2016-01-01/smoke.json.php | 3 + .../data/dms/2016-01-01/waiters-2.json.php | 3 + .../Aws/data/docdb/2014-10-31/api-2.json.php | 3 + .../docdb/2014-10-31/paginators-1.json.php | 3 + .../Aws/data/docdb/2014-10-31/smoke.json.php | 3 + .../data/docdb/2014-10-31/waiters-2.json.php | 3 + lib/aws/Aws/data/ds/2015-04-16/api-2.json.php | 3 + .../data/ds/2015-04-16/paginators-1.json.php | 3 + lib/aws/Aws/data/ds/2015-04-16/smoke.json.php | 3 + .../data/dynamodb/2011-12-05/api-2.json.php | 3 + .../dynamodb/2011-12-05/paginators-1.json.php | 3 + .../data/dynamodb/2011-12-05/smoke.json.php | 3 + .../dynamodb/2011-12-05/waiters-1.json.php | 3 + .../dynamodb/2011-12-05/waiters-2.json.php | 3 + .../data/dynamodb/2012-08-10/api-2.json.php | 3 + .../dynamodb/2012-08-10/paginators-1.json.php | 3 + .../data/dynamodb/2012-08-10/smoke.json.php | 3 + .../dynamodb/2012-08-10/waiters-1.json.php | 3 + .../dynamodb/2012-08-10/waiters-2.json.php | 3 + .../Aws/data/ec2/2015-10-01/api-2.json.php | 3 + .../data/ec2/2015-10-01/paginators-1.json.php | 3 + .../data/ec2/2015-10-01/waiters-1.json.php | 3 + .../data/ec2/2015-10-01/waiters-2.json.php | 3 + .../Aws/data/ec2/2016-04-01/api-2.json.php | 3 + .../data/ec2/2016-04-01/paginators-1.json.php | 3 + .../data/ec2/2016-04-01/waiters-2.json.php | 3 + .../Aws/data/ec2/2016-09-15/api-2.json.php | 3 + .../data/ec2/2016-09-15/paginators-1.json.php | 3 + .../data/ec2/2016-09-15/waiters-1.json.php | 3 + .../data/ec2/2016-09-15/waiters-2.json.php | 3 + .../Aws/data/ec2/2016-11-15/api-2.json.php | 3 + .../data/ec2/2016-11-15/paginators-1.json.php | 3 + .../Aws/data/ec2/2016-11-15/smoke.json.php | 3 + .../data/ec2/2016-11-15/waiters-1.json.php | 3 + .../data/ec2/2016-11-15/waiters-2.json.php | 3 + .../Aws/data/ecr/2015-09-21/api-2.json.php | 3 + .../data/ecr/2015-09-21/paginators-1.json.php | 3 + .../Aws/data/ecr/2015-09-21/smoke.json.php | 3 + .../Aws/data/ecs/2014-11-13/api-2.json.php | 3 + .../data/ecs/2014-11-13/paginators-1.json.php | 3 + .../Aws/data/ecs/2014-11-13/smoke.json.php | 3 + .../data/ecs/2014-11-13/waiters-2.json.php | 3 + .../Aws/data/eks/2017-11-01/api-2.json.php | 3 + .../data/eks/2017-11-01/paginators-1.json.php | 3 + .../data/eks/2017-11-01/waiters-2.json.php | 3 + .../elasticache/2015-02-02/api-2.json.php | 3 + .../2015-02-02/paginators-1.json.php | 3 + .../elasticache/2015-02-02/smoke.json.php | 3 + .../elasticache/2015-02-02/waiters-2.json.php | 3 + .../2010-12-01/api-2.json.php | 3 + .../2010-12-01/paginators-1.json.php | 3 + .../2010-12-01/smoke.json.php | 3 + .../2015-02-01/api-2.json.php | 3 + .../2015-02-01/paginators-1.json.php | 3 + .../2015-02-01/smoke.json.php | 3 + .../2012-06-01/api-2.json.php | 3 + .../2012-06-01/paginators-1.json.php | 3 + .../2012-06-01/smoke.json.php | 3 + .../2012-06-01/waiters-2.json.php | 3 + .../2015-12-01/api-2.json.php | 3 + .../2015-12-01/paginators-1.json.php | 3 + .../2015-12-01/smoke.json.php | 3 + .../2015-12-01/waiters-2.json.php | 3 + .../2009-03-31/api-2.json.php | 3 + .../2009-03-31/paginators-1.json.php | 3 + .../2009-03-31/smoke.json.php | 3 + .../2009-03-31/waiters-2.json.php | 3 + .../2012-09-25/api-2.json.php | 3 + .../2012-09-25/paginators-1.json.php | 3 + .../2012-09-25/smoke.json.php | 3 + .../2012-09-25/waiters-1.json.php | 3 + .../2012-09-25/waiters-2.json.php | 3 + .../Aws/data/email/2010-12-01/api-2.json.php | 3 + .../email/2010-12-01/paginators-1.json.php | 3 + .../Aws/data/email/2010-12-01/smoke.json.php | 3 + .../data/email/2010-12-01/waiters-1.json.php | 3 + .../data/email/2010-12-01/waiters-2.json.php | 3 + lib/aws/Aws/data/endpoints.json.php | 3 + .../data/endpoints_prefix_history.json.php | 3 + .../2017-01-11/api-2.json.php | 3 + .../2017-01-11/paginators-1.json.php | 3 + lib/aws/Aws/data/es/2015-01-01/api-2.json.php | 3 + .../data/es/2015-01-01/paginators-1.json.php | 3 + lib/aws/Aws/data/es/2015-01-01/smoke.json.php | 3 + .../Aws/data/events/2015-10-07/api-2.json.php | 3 + .../events/2015-10-07/paginators-1.json.php | 3 + .../Aws/data/events/2015-10-07/smoke.json.php | 3 + .../data/firehose/2015-08-04/api-2.json.php | 3 + .../firehose/2015-08-04/paginators-1.json.php | 3 + .../data/firehose/2015-08-04/smoke.json.php | 3 + .../Aws/data/fms/2018-01-01/api-2.json.php | 3 + .../data/fms/2018-01-01/paginators-1.json.php | 3 + .../Aws/data/fsx/2018-03-01/api-2.json.php | 3 + .../data/fsx/2018-03-01/paginators-1.json.php | 3 + .../data/gamelift/2015-10-01/api-2.json.php | 3 + .../gamelift/2015-10-01/paginators-1.json.php | 3 + .../data/gamelift/2015-10-01/smoke.json.php | 3 + .../data/glacier/2012-06-01/api-2.json.php | 3 + .../glacier/2012-06-01/paginators-1.json.php | 3 + .../data/glacier/2012-06-01/smoke.json.php | 3 + .../glacier/2012-06-01/waiters-1.json.php | 3 + .../glacier/2012-06-01/waiters-2.json.php | 3 + .../2018-08-08/api-2.json.php | 3 + .../2018-08-08/paginators-1.json.php | 3 + .../Aws/data/glue/2017-03-31/api-2.json.php | 3 + .../glue/2017-03-31/paginators-1.json.php | 3 + .../Aws/data/glue/2017-03-31/smoke.json.php | 3 + .../data/greengrass/2017-06-07/api-2.json.php | 3 + .../data/guardduty/2017-11-28/api-2.json.php | 3 + .../2017-11-28/paginators-1.json.php | 3 + .../Aws/data/health/2016-08-04/api-2.json.php | 3 + .../health/2016-08-04/paginators-1.json.php | 3 + .../Aws/data/iam/2010-05-08/api-2.json.php | 3 + .../data/iam/2010-05-08/paginators-1.json.php | 3 + .../Aws/data/iam/2010-05-08/smoke.json.php | 3 + .../data/iam/2010-05-08/waiters-2.json.php | 3 + .../importexport/2010-06-01/api-2.json.php | 3 + .../2010-06-01/paginators-1.json.php | 3 + .../data/inspector/2016-02-16/api-2.json.php | 3 + .../2016-02-16/paginators-1.json.php | 3 + .../data/inspector/2016-02-16/smoke.json.php | 3 + .../iot-jobs-data/2017-09-29/api-2.json.php | 3 + .../2017-09-29/paginators-1.json.php | 3 + .../Aws/data/iot/2015-05-28/api-2.json.php | 3 + .../data/iot/2015-05-28/paginators-1.json.php | 3 + .../Aws/data/iot/2015-05-28/smoke.json.php | 3 + .../2018-05-14/api-2.json.php | 3 + .../2018-05-14/api-2.json.php | 3 + .../2018-05-14/paginators-1.json.php | 3 + .../iotanalytics/2017-11-27/api-2.json.php | 3 + .../2017-11-27/paginators-1.json.php | 3 + .../Aws/data/kafka/2018-11-14/api-2.json.php | 3 + .../kafka/2018-11-14/paginators-1.json.php | 3 + .../2017-09-30/api-2.json.php | 3 + .../2017-09-30/paginators-1.json.php | 3 + .../2017-09-30/api-2.json.php | 3 + .../2017-09-30/paginators-1.json.php | 3 + .../data/kinesis/2013-12-02/api-2.json.php | 3 + .../kinesis/2013-12-02/paginators-1.json.php | 3 + .../data/kinesis/2013-12-02/smoke.json.php | 3 + .../kinesis/2013-12-02/waiters-2.json.php | 3 + .../2015-08-14/api-2.json.php | 3 + .../2015-08-14/paginators-1.json.php | 3 + .../2018-05-23/api-2.json.php | 3 + .../2018-05-23/paginators-1.json.php | 3 + .../kinesisvideo/2017-09-30/api-2.json.php | 3 + .../2017-09-30/paginators-1.json.php | 3 + .../Aws/data/kms/2014-11-01/api-2.json.php | 3 + .../data/kms/2014-11-01/paginators-1.json.php | 3 + .../Aws/data/kms/2014-11-01/smoke.json.php | 3 + .../Aws/data/lambda/2015-03-31/api-2.json.php | 3 + .../lambda/2015-03-31/paginators-1.json.php | 3 + .../Aws/data/lambda/2015-03-31/smoke.json.php | 3 + .../data/lex-models/2017-04-19/api-2.json.php | 3 + .../2017-04-19/paginators-1.json.php | 3 + .../license-manager/2018-08-01/api-2.json.php | 3 + .../2018-08-01/paginators-1.json.php | 3 + .../data/lightsail/2016-11-28/api-2.json.php | 3 + .../2016-11-28/paginators-1.json.php | 3 + .../data/lightsail/2016-11-28/smoke.json.php | 3 + .../Aws/data/logs/2014-03-28/api-2.json.php | 3 + .../logs/2014-03-28/paginators-1.json.php | 3 + .../Aws/data/logs/2014-03-28/smoke.json.php | 3 + .../machinelearning/2014-12-12/api-2.json.php | 3 + .../2014-12-12/paginators-1.json.php | 3 + .../2014-12-12/waiters-2.json.php | 3 + .../Aws/data/macie/2017-12-19/api-2.json.php | 3 + .../macie/2017-12-19/paginators-1.json.php | 3 + lib/aws/Aws/data/manifest.json.php | 3 + .../2015-07-01/api-2.json.php | 3 + .../2015-07-01/paginators-1.json.php | 3 + .../mediaconnect/2018-11-14/api-2.json.php | 3 + .../2018-11-14/paginators-1.json.php | 3 + .../mediaconvert/2017-08-29/api-2.json.php | 3 + .../2017-08-29/paginators-1.json.php | 3 + .../data/medialive/2017-10-14/api-2.json.php | 3 + .../2017-10-14/paginators-1.json.php | 3 + .../mediapackage/2017-10-12/api-2.json.php | 3 + .../2017-10-12/paginators-1.json.php | 3 + .../mediastore-data/2017-09-01/api-2.json.php | 3 + .../2017-09-01/paginators-1.json.php | 3 + .../data/mediastore/2017-09-01/api-2.json.php | 3 + .../2017-09-01/paginators-1.json.php | 3 + .../mediatailor/2018-04-23/api-2.json.php | 3 + .../2018-04-23/paginators-1.json.php | 3 + .../2016-01-14/api-2.json.php | 3 + .../2016-01-14/paginators-1.json.php | 3 + .../Aws/data/mgh/2017-05-31/api-2.json.php | 3 + .../data/mgh/2017-05-31/paginators-1.json.php | 3 + .../Aws/data/mobile/2017-07-01/api-2.json.php | 3 + .../mobile/2017-07-01/paginators-1.json.php | 3 + .../data/monitoring/2010-08-01/api-2.json.php | 3 + .../2010-08-01/paginators-1.json.php | 3 + .../data/monitoring/2010-08-01/smoke.json.php | 3 + .../monitoring/2010-08-01/waiters-2.json.php | 3 + lib/aws/Aws/data/mq/2017-11-27/api-2.json.php | 3 + .../data/mq/2017-11-27/paginators-1.json.php | 3 + .../mturk-requester/2017-01-17/api-2.json.php | 3 + .../2017-01-17/paginators-1.json.php | 3 + .../mturk-requester/2017-01-17/smoke.json.php | 3 + .../data/neptune/2014-10-31/api-2.json.php | 3 + .../neptune/2014-10-31/paginators-1.json.php | 3 + .../neptune/2014-10-31/waiters-2.json.php | 3 + .../data/opsworks/2013-02-18/api-2.json.php | 3 + .../opsworks/2013-02-18/paginators-1.json.php | 3 + .../data/opsworks/2013-02-18/smoke.json.php | 3 + .../opsworks/2013-02-18/waiters-2.json.php | 3 + .../data/opsworkscm/2016-11-01/api-2.json.php | 3 + .../2016-11-01/paginators-1.json.php | 3 + .../opsworkscm/2016-11-01/waiters-2.json.php | 3 + .../organizations/2016-11-28/api-2.json.php | 3 + .../2016-11-28/paginators-1.json.php | 3 + lib/aws/Aws/data/pi/2018-02-27/api-2.json.php | 3 + .../data/pi/2018-02-27/paginators-1.json.php | 3 + .../pinpoint-email/2018-07-26/api-2.json.php | 3 + .../2018-07-26/paginators-1.json.php | 3 + .../data/pinpoint/2016-12-01/api-2.json.php | 3 + .../Aws/data/polly/2016-06-10/api-2.json.php | 3 + .../polly/2016-06-10/paginators-1.json.php | 3 + .../Aws/data/polly/2016-06-10/smoke.json.php | 3 + .../data/pricing/2017-10-15/api-2.json.php | 3 + .../pricing/2017-10-15/paginators-1.json.php | 3 + .../data/quicksight/2018-04-01/api-2.json.php | 3 + .../2018-04-01/paginators-1.json.php | 3 + .../Aws/data/ram/2018-01-04/api-2.json.php | 3 + .../data/ram/2018-01-04/paginators-1.json.php | 3 + .../data/rds-data/2018-08-01/api-2.json.php | 3 + .../rds-data/2018-08-01/paginators-1.json.php | 3 + .../Aws/data/rds/2014-09-01/api-2.json.php | 3 + .../data/rds/2014-09-01/paginators-1.json.php | 3 + .../Aws/data/rds/2014-09-01/smoke.json.php | 3 + .../Aws/data/rds/2014-10-31/api-2.json.php | 3 + .../data/rds/2014-10-31/paginators-1.json.php | 3 + .../Aws/data/rds/2014-10-31/smoke.json.php | 3 + .../data/rds/2014-10-31/waiters-1.json.php | 3 + .../data/rds/2014-10-31/waiters-2.json.php | 3 + .../data/redshift/2012-12-01/api-2.json.php | 3 + .../redshift/2012-12-01/paginators-1.json.php | 3 + .../data/redshift/2012-12-01/smoke.json.php | 3 + .../redshift/2012-12-01/waiters-1.json.php | 3 + .../redshift/2012-12-01/waiters-2.json.php | 3 + .../rekognition/2016-06-27/api-2.json.php | 3 + .../2016-06-27/paginators-1.json.php | 3 + .../rekognition/2016-06-27/smoke.json.php | 3 + .../resource-groups/2017-11-27/api-2.json.php | 3 + .../2017-11-27/paginators-1.json.php | 3 + .../2017-01-26/api-2.json.php | 3 + .../2017-01-26/paginators-1.json.php | 3 + .../data/robomaker/2018-06-29/api-2.json.php | 3 + .../2018-06-29/paginators-1.json.php | 3 + .../data/route53/2013-04-01/api-2.json.php | 3 + .../route53/2013-04-01/paginators-1.json.php | 3 + .../data/route53/2013-04-01/smoke.json.php | 3 + .../route53/2013-04-01/waiters-2.json.php | 3 + .../route53domains/2014-05-15/api-2.json.php | 3 + .../2014-05-15/paginators-1.json.php | 3 + .../route53resolver/2018-04-01/api-2.json.php | 3 + .../2018-04-01/paginators-1.json.php | 3 + .../route53resolver/2018-04-01/smoke.json.php | 3 + .../runtime.lex/2016-11-28/api-2.json.php | 3 + .../2016-11-28/paginators-1.json.php | 3 + .../2017-05-13/api-2.json.php | 3 + .../2017-05-13/paginators-1.json.php | 3 + lib/aws/Aws/data/s3/2006-03-01/api-2.json.php | 3 + .../data/s3/2006-03-01/paginators-1.json.php | 3 + lib/aws/Aws/data/s3/2006-03-01/smoke.json.php | 3 + .../Aws/data/s3/2006-03-01/waiters-1.json.php | 3 + .../Aws/data/s3/2006-03-01/waiters-2.json.php | 3 + .../data/s3control/2018-08-20/api-2.json.php | 3 + .../2018-08-20/paginators-1.json.php | 3 + .../data/sagemaker/2017-07-24/api-2.json.php | 3 + .../2017-07-24/paginators-1.json.php | 3 + .../sagemaker/2017-07-24/waiters-2.json.php | 3 + .../secretsmanager/2017-10-17/api-2.json.php | 3 + .../2017-10-17/paginators-1.json.php | 3 + .../secretsmanager/2017-10-17/smoke.json.php | 3 + .../securityhub/2018-10-26/api-2.json.php | 3 + .../2018-10-26/paginators-1.json.php | 3 + .../serverlessrepo/2017-09-08/api-2.json.php | 3 + .../2017-09-08/paginators-1.json.php | 3 + .../servicecatalog/2015-12-10/api-2.json.php | 3 + .../2015-12-10/paginators-1.json.php | 3 + .../servicecatalog/2015-12-10/smoke.json.php | 3 + .../2017-03-14/api-2.json.php | 3 + .../2017-03-14/paginators-1.json.php | 3 + .../Aws/data/shield/2016-06-02/api-2.json.php | 3 + .../shield/2016-06-02/paginators-1.json.php | 3 + .../Aws/data/shield/2016-06-02/smoke.json.php | 3 + .../Aws/data/signer/2017-08-25/api-2.json.php | 3 + .../signer/2017-08-25/paginators-1.json.php | 3 + .../data/signer/2017-08-25/waiters-2.json.php | 3 + .../data/sms-voice/2018-09-05/api-2.json.php | 3 + .../Aws/data/sms/2016-10-24/api-2.json.php | 3 + .../data/sms/2016-10-24/paginators-1.json.php | 3 + .../Aws/data/sms/2016-10-24/smoke.json.php | 3 + .../data/snowball/2016-06-30/api-2.json.php | 3 + .../snowball/2016-06-30/paginators-1.json.php | 3 + .../data/snowball/2016-06-30/smoke.json.php | 3 + .../Aws/data/sns/2010-03-31/api-2.json.php | 3 + .../data/sns/2010-03-31/paginators-1.json.php | 3 + .../Aws/data/sns/2010-03-31/smoke.json.php | 3 + .../Aws/data/sqs/2012-11-05/api-2.json.php | 3 + .../data/sqs/2012-11-05/paginators-1.json.php | 3 + .../Aws/data/sqs/2012-11-05/smoke.json.php | 3 + .../data/sqs/2012-11-05/waiters-2.json.php | 3 + .../Aws/data/ssm/2014-11-06/api-2.json.php | 3 + .../data/ssm/2014-11-06/paginators-1.json.php | 3 + .../Aws/data/ssm/2014-11-06/smoke.json.php | 3 + .../Aws/data/states/2016-11-23/api-2.json.php | 3 + .../states/2016-11-23/paginators-1.json.php | 3 + .../Aws/data/states/2016-11-23/smoke.json.php | 3 + .../storagegateway/2013-06-30/api-2.json.php | 3 + .../2013-06-30/paginators-1.json.php | 3 + .../2012-08-10/api-2.json.php | 3 + .../2012-08-10/paginators-1.json.php | 3 + .../Aws/data/sts/2011-06-15/api-2.json.php | 3 + .../data/sts/2011-06-15/paginators-1.json.php | 3 + .../Aws/data/sts/2011-06-15/smoke.json.php | 3 + .../data/support/2013-04-15/api-2.json.php | 3 + .../support/2013-04-15/paginators-1.json.php | 3 + .../Aws/data/swf/2012-01-25/api-2.json.php | 3 + .../data/swf/2012-01-25/paginators-1.json.php | 3 + .../data/textract/2018-06-27/api-2.json.php | 3 + .../textract/2018-06-27/paginators-1.json.php | 3 + .../data/transcribe/2017-10-26/api-2.json.php | 3 + .../2017-10-26/paginators-1.json.php | 3 + .../data/transfer/2018-11-05/api-2.json.php | 3 + .../transfer/2018-11-05/paginators-1.json.php | 3 + .../data/translate/2017-07-01/api-2.json.php | 3 + .../2017-07-01/paginators-1.json.php | 3 + .../waf-regional/2016-11-28/api-2.json.php | 3 + .../2016-11-28/paginators-1.json.php | 3 + .../waf-regional/2016-11-28/smoke.json.php | 3 + .../Aws/data/waf/2015-08-24/api-2.json.php | 3 + .../data/waf/2015-08-24/paginators-1.json.php | 3 + .../Aws/data/waf/2015-08-24/smoke.json.php | 3 + .../data/workdocs/2016-05-01/api-2.json.php | 3 + .../workdocs/2016-05-01/paginators-1.json.php | 3 + .../data/worklink/2018-09-25/api-2.json.php | 3 + .../worklink/2018-09-25/paginators-1.json.php | 3 + .../data/workmail/2017-10-01/api-2.json.php | 3 + .../workmail/2017-10-01/paginators-1.json.php | 3 + .../data/workspaces/2015-04-08/api-2.json.php | 3 + .../2015-04-08/paginators-1.json.php | 3 + .../data/workspaces/2015-04-08/smoke.json.php | 3 + .../Aws/data/xray/2016-04-12/api-2.json.php | 3 + .../xray/2016-04-12/paginators-1.json.php | 3 + lib/aws/Aws/functions.php | 411 ++ .../Aws/signer/Exception/signerException.php | 9 + lib/aws/Aws/signer/signerClient.php | 27 + lib/aws/CHANGELOG.md | 4954 +++++++++++++++++ lib/aws/GuzzleHttp/Client.php | 422 ++ lib/aws/GuzzleHttp/ClientInterface.php | 84 + lib/aws/GuzzleHttp/Cookie/CookieJar.php | 314 ++ .../GuzzleHttp/Cookie/CookieJarInterface.php | 84 + lib/aws/GuzzleHttp/Cookie/FileCookieJar.php | 90 + .../GuzzleHttp/Cookie/SessionCookieJar.php | 71 + lib/aws/GuzzleHttp/Cookie/SetCookie.php | 403 ++ .../Exception/BadResponseException.php | 27 + .../GuzzleHttp/Exception/ClientException.php | 7 + .../GuzzleHttp/Exception/ConnectException.php | 37 + .../GuzzleHttp/Exception/GuzzleException.php | 13 + .../GuzzleHttp/Exception/RequestException.php | 217 + .../GuzzleHttp/Exception/SeekException.php | 27 + .../GuzzleHttp/Exception/ServerException.php | 7 + .../Exception/TooManyRedirectsException.php | 4 + .../Exception/TransferException.php | 4 + lib/aws/GuzzleHttp/Handler/CurlFactory.php | 565 ++ .../Handler/CurlFactoryInterface.php | 27 + lib/aws/GuzzleHttp/Handler/CurlHandler.php | 45 + .../GuzzleHttp/Handler/CurlMultiHandler.php | 199 + lib/aws/GuzzleHttp/Handler/EasyHandle.php | 92 + lib/aws/GuzzleHttp/Handler/MockHandler.php | 189 + lib/aws/GuzzleHttp/Handler/Proxy.php | 55 + lib/aws/GuzzleHttp/Handler/StreamHandler.php | 532 ++ lib/aws/GuzzleHttp/HandlerStack.php | 273 + lib/aws/GuzzleHttp/MessageFormatter.php | 180 + lib/aws/GuzzleHttp/Middleware.php | 255 + lib/aws/GuzzleHttp/Pool.php | 123 + lib/aws/GuzzleHttp/PrepareBodyMiddleware.php | 106 + .../GuzzleHttp/Promise/AggregateException.php | 16 + .../Promise/CancellationException.php | 9 + lib/aws/GuzzleHttp/Promise/Coroutine.php | 151 + lib/aws/GuzzleHttp/Promise/EachPromise.php | 229 + .../GuzzleHttp/Promise/FulfilledPromise.php | 82 + lib/aws/GuzzleHttp/Promise/Promise.php | 280 + .../GuzzleHttp/Promise/PromiseInterface.php | 93 + .../GuzzleHttp/Promise/PromisorInterface.php | 15 + .../GuzzleHttp/Promise/RejectedPromise.php | 87 + .../GuzzleHttp/Promise/RejectionException.php | 47 + lib/aws/GuzzleHttp/Promise/TaskQueue.php | 66 + .../GuzzleHttp/Promise/TaskQueueInterface.php | 25 + lib/aws/GuzzleHttp/Promise/functions.php | 457 ++ .../GuzzleHttp/Promise/functions_include.php | 6 + lib/aws/GuzzleHttp/Psr7/AppendStream.php | 241 + lib/aws/GuzzleHttp/Psr7/BufferStream.php | 137 + lib/aws/GuzzleHttp/Psr7/CachingStream.php | 138 + lib/aws/GuzzleHttp/Psr7/DroppingStream.php | 42 + lib/aws/GuzzleHttp/Psr7/FnStream.php | 158 + lib/aws/GuzzleHttp/Psr7/InflateStream.php | 52 + lib/aws/GuzzleHttp/Psr7/LazyOpenStream.php | 39 + lib/aws/GuzzleHttp/Psr7/LimitStream.php | 155 + lib/aws/GuzzleHttp/Psr7/MessageTrait.php | 183 + lib/aws/GuzzleHttp/Psr7/MultipartStream.php | 153 + lib/aws/GuzzleHttp/Psr7/NoSeekStream.php | 22 + lib/aws/GuzzleHttp/Psr7/PumpStream.php | 165 + lib/aws/GuzzleHttp/Psr7/Request.php | 142 + lib/aws/GuzzleHttp/Psr7/Response.php | 136 + lib/aws/GuzzleHttp/Psr7/Rfc7230.php | 18 + lib/aws/GuzzleHttp/Psr7/ServerRequest.php | 376 ++ lib/aws/GuzzleHttp/Psr7/Stream.php | 270 + .../GuzzleHttp/Psr7/StreamDecoratorTrait.php | 149 + lib/aws/GuzzleHttp/Psr7/StreamWrapper.php | 161 + lib/aws/GuzzleHttp/Psr7/UploadedFile.php | 316 ++ lib/aws/GuzzleHttp/Psr7/Uri.php | 738 +++ lib/aws/GuzzleHttp/Psr7/UriNormalizer.php | 216 + lib/aws/GuzzleHttp/Psr7/UriResolver.php | 219 + lib/aws/GuzzleHttp/Psr7/functions.php | 898 +++ lib/aws/GuzzleHttp/Psr7/functions_include.php | 6 + lib/aws/GuzzleHttp/RedirectMiddleware.php | 237 + lib/aws/GuzzleHttp/RequestOptions.php | 255 + lib/aws/GuzzleHttp/RetryMiddleware.php | 112 + lib/aws/GuzzleHttp/TransferStats.php | 126 + lib/aws/GuzzleHttp/UriTemplate.php | 237 + lib/aws/GuzzleHttp/functions.php | 333 ++ lib/aws/GuzzleHttp/functions_include.php | 6 + lib/aws/JmesPath/AstRuntime.php | 47 + lib/aws/JmesPath/CompilerRuntime.php | 83 + lib/aws/JmesPath/DebugRuntime.php | 109 + lib/aws/JmesPath/Env.php | 66 + lib/aws/JmesPath/FnDispatcher.php | 401 ++ lib/aws/JmesPath/JmesPath.php | 17 + lib/aws/JmesPath/Lexer.php | 444 ++ lib/aws/JmesPath/Parser.php | 518 ++ lib/aws/JmesPath/SyntaxErrorException.php | 36 + lib/aws/JmesPath/TreeCompiler.php | 419 ++ lib/aws/JmesPath/TreeInterpreter.php | 235 + lib/aws/JmesPath/Utils.php | 229 + lib/aws/LICENSE.md | 141 + lib/aws/NOTICE.md | 64 + lib/aws/Psr/Http/Message/MessageInterface.php | 187 + lib/aws/Psr/Http/Message/RequestInterface.php | 129 + .../Psr/Http/Message/ResponseInterface.php | 68 + .../Http/Message/ServerRequestInterface.php | 261 + lib/aws/Psr/Http/Message/StreamInterface.php | 158 + .../Http/Message/UploadedFileInterface.php | 123 + lib/aws/Psr/Http/Message/UriInterface.php | 323 ++ lib/aws/README.md | 181 + lib/aws/aws-autoloader.php | 1158 ++++ lib/jwt.php | 200 + lib/r4fb.php | 1445 +++++ lib/sns.php | 87 + logout.php | 14 + manager.php | 1045 ++++ simplesamlphp-1.16.1.tar.gz | Bin 0 -> 2791246 bytes style/arbitro.css | 193 + style/insre.css | 258 + style/manager.css | 124 + style/tables.css | 94 + tabelle.php | 775 +++ tabellone.php | 25 + 1268 files changed, 98652 insertions(+) create mode 100755 CONTRIBUTING.md create mode 100755 COPYING create mode 100755 LICENSE create mode 100755 README.md create mode 100755 TESTING.md create mode 100644 ajax/v1/ajax.php create mode 100644 ajax/v1/ajaxpb.php create mode 100644 arbitro.php create mode 100644 auth.php create mode 100644 giocatore.php create mode 100644 index.php create mode 100644 js/jscolor.js create mode 100755 lib/SimpleSAML/Auth/Default.php create mode 100755 lib/SimpleSAML/Auth/LDAP.php create mode 100755 lib/SimpleSAML/Auth/ProcessingChain.php create mode 100755 lib/SimpleSAML/Auth/ProcessingFilter.php create mode 100755 lib/SimpleSAML/Auth/Simple.php create mode 100755 lib/SimpleSAML/Auth/Source.php create mode 100755 lib/SimpleSAML/Auth/SourceFactory.php create mode 100755 lib/SimpleSAML/Auth/State.php create mode 100755 lib/SimpleSAML/Auth/TimeLimitedToken.php create mode 100755 lib/SimpleSAML/AuthMemCookie.php create mode 100755 lib/SimpleSAML/Bindings/Shib13/Artifact.php create mode 100755 lib/SimpleSAML/Bindings/Shib13/HTTPPost.php create mode 100755 lib/SimpleSAML/Configuration.php create mode 100755 lib/SimpleSAML/Database.php create mode 100755 lib/SimpleSAML/Error/Assertion.php create mode 100755 lib/SimpleSAML/Error/AuthSource.php create mode 100755 lib/SimpleSAML/Error/BadRequest.php create mode 100755 lib/SimpleSAML/Error/BadUserInput.php create mode 100755 lib/SimpleSAML/Error/CannotSetCookie.php create mode 100755 lib/SimpleSAML/Error/ConfigurationError.php create mode 100755 lib/SimpleSAML/Error/CriticalConfigurationError.php create mode 100755 lib/SimpleSAML/Error/Error.php create mode 100755 lib/SimpleSAML/Error/ErrorCodes.php create mode 100755 lib/SimpleSAML/Error/Exception.php create mode 100755 lib/SimpleSAML/Error/InvalidCredential.php create mode 100755 lib/SimpleSAML/Error/MetadataNotFound.php create mode 100755 lib/SimpleSAML/Error/NoPassive.php create mode 100755 lib/SimpleSAML/Error/NoState.php create mode 100755 lib/SimpleSAML/Error/NotFound.php create mode 100755 lib/SimpleSAML/Error/ProxyCountExceeded.php create mode 100755 lib/SimpleSAML/Error/UnserializableException.php create mode 100755 lib/SimpleSAML/Error/User.php create mode 100755 lib/SimpleSAML/Error/UserAborted.php create mode 100755 lib/SimpleSAML/Error/UserNotFound.php create mode 100755 lib/SimpleSAML/IdP.php create mode 100755 lib/SimpleSAML/IdP/IFrameLogoutHandler.php create mode 100755 lib/SimpleSAML/IdP/LogoutHandlerInterface.php create mode 100755 lib/SimpleSAML/IdP/TraditionalLogoutHandler.php create mode 100755 lib/SimpleSAML/Locale/Language.php create mode 100755 lib/SimpleSAML/Locale/Localization.php create mode 100755 lib/SimpleSAML/Locale/Translate.php create mode 100755 lib/SimpleSAML/Logger.php create mode 100755 lib/SimpleSAML/Logger/ErrorLogLoggingHandler.php create mode 100755 lib/SimpleSAML/Logger/FileLoggingHandler.php create mode 100755 lib/SimpleSAML/Logger/LoggingHandlerInterface.php create mode 100755 lib/SimpleSAML/Logger/StandardErrorLoggingHandler.php create mode 100755 lib/SimpleSAML/Logger/SyslogLoggingHandler.php create mode 100755 lib/SimpleSAML/Memcache.php create mode 100755 lib/SimpleSAML/Metadata/MetaDataStorageHandler.php create mode 100755 lib/SimpleSAML/Metadata/MetaDataStorageHandlerFlatFile.php create mode 100755 lib/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php create mode 100755 lib/SimpleSAML/Metadata/MetaDataStorageHandlerSerialize.php create mode 100755 lib/SimpleSAML/Metadata/MetaDataStorageHandlerXML.php create mode 100755 lib/SimpleSAML/Metadata/MetaDataStorageSource.php create mode 100755 lib/SimpleSAML/Metadata/SAMLBuilder.php create mode 100755 lib/SimpleSAML/Metadata/SAMLParser.php create mode 100755 lib/SimpleSAML/Metadata/Signer.php create mode 100755 lib/SimpleSAML/Metadata/Sources/MDQ.php create mode 100755 lib/SimpleSAML/Module.php create mode 100755 lib/SimpleSAML/Session.php create mode 100755 lib/SimpleSAML/SessionHandler.php create mode 100755 lib/SimpleSAML/SessionHandlerCookie.php create mode 100755 lib/SimpleSAML/SessionHandlerPHP.php create mode 100755 lib/SimpleSAML/SessionHandlerStore.php create mode 100755 lib/SimpleSAML/Stats.php create mode 100755 lib/SimpleSAML/Stats/Output.php create mode 100755 lib/SimpleSAML/Store.php create mode 100755 lib/SimpleSAML/Store/Memcache.php create mode 100755 lib/SimpleSAML/Store/Redis.php create mode 100755 lib/SimpleSAML/Store/SQL.php create mode 100755 lib/SimpleSAML/Utilities.php create mode 100755 lib/SimpleSAML/Utils/Arrays.php create mode 100755 lib/SimpleSAML/Utils/Attributes.php create mode 100755 lib/SimpleSAML/Utils/Auth.php create mode 100755 lib/SimpleSAML/Utils/ClearableState.php create mode 100755 lib/SimpleSAML/Utils/Config.php create mode 100755 lib/SimpleSAML/Utils/Config/Metadata.php create mode 100755 lib/SimpleSAML/Utils/Crypto.php create mode 100755 lib/SimpleSAML/Utils/HTTP.php create mode 100755 lib/SimpleSAML/Utils/HttpAdapter.php create mode 100755 lib/SimpleSAML/Utils/Net.php create mode 100755 lib/SimpleSAML/Utils/Random.php create mode 100755 lib/SimpleSAML/Utils/System.php create mode 100755 lib/SimpleSAML/Utils/Time.php create mode 100755 lib/SimpleSAML/Utils/XML.php create mode 100755 lib/SimpleSAML/XHTML/EMail.php create mode 100755 lib/SimpleSAML/XHTML/IdPDisco.php create mode 100755 lib/SimpleSAML/XHTML/Template.php create mode 100755 lib/SimpleSAML/XHTML/TemplateControllerInterface.php create mode 100755 lib/SimpleSAML/XML/Errors.php create mode 100755 lib/SimpleSAML/XML/Parser.php create mode 100755 lib/SimpleSAML/XML/Shib13/AuthnRequest.php create mode 100755 lib/SimpleSAML/XML/Shib13/AuthnResponse.php create mode 100755 lib/SimpleSAML/XML/Signer.php create mode 100755 lib/SimpleSAML/XML/Validator.php create mode 100755 lib/_autoload.php create mode 100755 lib/_autoload_modules.php create mode 100644 lib/aws/Aws/ACMPCA/ACMPCAClient.php create mode 100644 lib/aws/Aws/ACMPCA/Exception/ACMPCAException.php create mode 100644 lib/aws/Aws/Acm/AcmClient.php create mode 100644 lib/aws/Aws/Acm/Exception/AcmException.php create mode 100644 lib/aws/Aws/AlexaForBusiness/AlexaForBusinessClient.php create mode 100644 lib/aws/Aws/AlexaForBusiness/Exception/AlexaForBusinessException.php create mode 100644 lib/aws/Aws/Amplify/AmplifyClient.php create mode 100644 lib/aws/Aws/Amplify/Exception/AmplifyException.php create mode 100644 lib/aws/Aws/Api/AbstractModel.php create mode 100644 lib/aws/Aws/Api/ApiProvider.php create mode 100644 lib/aws/Aws/Api/DateTimeResult.php create mode 100644 lib/aws/Aws/Api/DocModel.php create mode 100644 lib/aws/Aws/Api/ErrorParser/JsonParserTrait.php create mode 100644 lib/aws/Aws/Api/ErrorParser/JsonRpcErrorParser.php create mode 100644 lib/aws/Aws/Api/ErrorParser/RestJsonErrorParser.php create mode 100644 lib/aws/Aws/Api/ErrorParser/XmlErrorParser.php create mode 100644 lib/aws/Aws/Api/ListShape.php create mode 100644 lib/aws/Aws/Api/MapShape.php create mode 100644 lib/aws/Aws/Api/Operation.php create mode 100644 lib/aws/Aws/Api/Parser/AbstractParser.php create mode 100644 lib/aws/Aws/Api/Parser/AbstractRestParser.php create mode 100644 lib/aws/Aws/Api/Parser/Crc32ValidatingParser.php create mode 100644 lib/aws/Aws/Api/Parser/DecodingEventStreamIterator.php create mode 100644 lib/aws/Aws/Api/Parser/EventParsingIterator.php create mode 100644 lib/aws/Aws/Api/Parser/Exception/ParserException.php create mode 100644 lib/aws/Aws/Api/Parser/JsonParser.php create mode 100644 lib/aws/Aws/Api/Parser/JsonRpcParser.php create mode 100644 lib/aws/Aws/Api/Parser/PayloadParserTrait.php create mode 100644 lib/aws/Aws/Api/Parser/QueryParser.php create mode 100644 lib/aws/Aws/Api/Parser/RestJsonParser.php create mode 100644 lib/aws/Aws/Api/Parser/RestXmlParser.php create mode 100644 lib/aws/Aws/Api/Parser/XmlParser.php create mode 100644 lib/aws/Aws/Api/Serializer/Ec2ParamBuilder.php create mode 100644 lib/aws/Aws/Api/Serializer/JsonBody.php create mode 100644 lib/aws/Aws/Api/Serializer/JsonRpcSerializer.php create mode 100644 lib/aws/Aws/Api/Serializer/QueryParamBuilder.php create mode 100644 lib/aws/Aws/Api/Serializer/QuerySerializer.php create mode 100644 lib/aws/Aws/Api/Serializer/RestJsonSerializer.php create mode 100644 lib/aws/Aws/Api/Serializer/RestSerializer.php create mode 100644 lib/aws/Aws/Api/Serializer/RestXmlSerializer.php create mode 100644 lib/aws/Aws/Api/Serializer/XmlBody.php create mode 100644 lib/aws/Aws/Api/Service.php create mode 100644 lib/aws/Aws/Api/Shape.php create mode 100644 lib/aws/Aws/Api/ShapeMap.php create mode 100644 lib/aws/Aws/Api/StructureShape.php create mode 100644 lib/aws/Aws/Api/TimestampShape.php create mode 100644 lib/aws/Aws/Api/Validator.php create mode 100644 lib/aws/Aws/ApiGateway/ApiGatewayClient.php create mode 100644 lib/aws/Aws/ApiGateway/Exception/ApiGatewayException.php create mode 100644 lib/aws/Aws/ApiGatewayManagementApi/ApiGatewayManagementApiClient.php create mode 100644 lib/aws/Aws/ApiGatewayManagementApi/Exception/ApiGatewayManagementApiException.php create mode 100644 lib/aws/Aws/ApiGatewayV2/ApiGatewayV2Client.php create mode 100644 lib/aws/Aws/ApiGatewayV2/Exception/ApiGatewayV2Exception.php create mode 100644 lib/aws/Aws/AppMesh/AppMeshClient.php create mode 100644 lib/aws/Aws/AppMesh/Exception/AppMeshException.php create mode 100644 lib/aws/Aws/AppSync/AppSyncClient.php create mode 100644 lib/aws/Aws/AppSync/Exception/AppSyncException.php create mode 100644 lib/aws/Aws/ApplicationAutoScaling/ApplicationAutoScalingClient.php create mode 100644 lib/aws/Aws/ApplicationAutoScaling/Exception/ApplicationAutoScalingException.php create mode 100644 lib/aws/Aws/ApplicationDiscoveryService/ApplicationDiscoveryServiceClient.php create mode 100644 lib/aws/Aws/ApplicationDiscoveryService/Exception/ApplicationDiscoveryServiceException.php create mode 100644 lib/aws/Aws/Appstream/AppstreamClient.php create mode 100644 lib/aws/Aws/Appstream/Exception/AppstreamException.php create mode 100644 lib/aws/Aws/Athena/AthenaClient.php create mode 100644 lib/aws/Aws/Athena/Exception/AthenaException.php create mode 100644 lib/aws/Aws/AutoScaling/AutoScalingClient.php create mode 100644 lib/aws/Aws/AutoScaling/Exception/AutoScalingException.php create mode 100644 lib/aws/Aws/AutoScalingPlans/AutoScalingPlansClient.php create mode 100644 lib/aws/Aws/AutoScalingPlans/Exception/AutoScalingPlansException.php create mode 100644 lib/aws/Aws/AwsClient.php create mode 100644 lib/aws/Aws/AwsClientInterface.php create mode 100644 lib/aws/Aws/AwsClientTrait.php create mode 100644 lib/aws/Aws/Backup/BackupClient.php create mode 100644 lib/aws/Aws/Backup/Exception/BackupException.php create mode 100644 lib/aws/Aws/Batch/BatchClient.php create mode 100644 lib/aws/Aws/Batch/Exception/BatchException.php create mode 100644 lib/aws/Aws/Budgets/BudgetsClient.php create mode 100644 lib/aws/Aws/Budgets/Exception/BudgetsException.php create mode 100644 lib/aws/Aws/CacheInterface.php create mode 100644 lib/aws/Aws/Chime/ChimeClient.php create mode 100644 lib/aws/Aws/Chime/Exception/ChimeException.php create mode 100644 lib/aws/Aws/ClientResolver.php create mode 100644 lib/aws/Aws/ClientSideMonitoring/AbstractMonitoringMiddleware.php create mode 100644 lib/aws/Aws/ClientSideMonitoring/ApiCallAttemptMonitoringMiddleware.php create mode 100644 lib/aws/Aws/ClientSideMonitoring/ApiCallMonitoringMiddleware.php create mode 100644 lib/aws/Aws/ClientSideMonitoring/Configuration.php create mode 100644 lib/aws/Aws/ClientSideMonitoring/ConfigurationInterface.php create mode 100644 lib/aws/Aws/ClientSideMonitoring/ConfigurationProvider.php create mode 100644 lib/aws/Aws/ClientSideMonitoring/Exception/ConfigurationException.php create mode 100644 lib/aws/Aws/ClientSideMonitoring/MonitoringMiddlewareInterface.php create mode 100644 lib/aws/Aws/Cloud9/Cloud9Client.php create mode 100644 lib/aws/Aws/Cloud9/Exception/Cloud9Exception.php create mode 100644 lib/aws/Aws/CloudDirectory/CloudDirectoryClient.php create mode 100644 lib/aws/Aws/CloudDirectory/Exception/CloudDirectoryException.php create mode 100644 lib/aws/Aws/CloudFormation/CloudFormationClient.php create mode 100644 lib/aws/Aws/CloudFormation/Exception/CloudFormationException.php create mode 100644 lib/aws/Aws/CloudFront/CloudFrontClient.php create mode 100644 lib/aws/Aws/CloudFront/CookieSigner.php create mode 100644 lib/aws/Aws/CloudFront/Exception/CloudFrontException.php create mode 100644 lib/aws/Aws/CloudFront/Signer.php create mode 100644 lib/aws/Aws/CloudFront/UrlSigner.php create mode 100644 lib/aws/Aws/CloudHSMV2/CloudHSMV2Client.php create mode 100644 lib/aws/Aws/CloudHSMV2/Exception/CloudHSMV2Exception.php create mode 100644 lib/aws/Aws/CloudHsm/CloudHsmClient.php create mode 100644 lib/aws/Aws/CloudHsm/Exception/CloudHsmException.php create mode 100644 lib/aws/Aws/CloudSearch/CloudSearchClient.php create mode 100644 lib/aws/Aws/CloudSearch/Exception/CloudSearchException.php create mode 100644 lib/aws/Aws/CloudSearchDomain/CloudSearchDomainClient.php create mode 100644 lib/aws/Aws/CloudSearchDomain/Exception/CloudSearchDomainException.php create mode 100644 lib/aws/Aws/CloudTrail/CloudTrailClient.php create mode 100644 lib/aws/Aws/CloudTrail/Exception/CloudTrailException.php create mode 100644 lib/aws/Aws/CloudTrail/LogFileIterator.php create mode 100644 lib/aws/Aws/CloudTrail/LogFileReader.php create mode 100644 lib/aws/Aws/CloudTrail/LogRecordIterator.php create mode 100644 lib/aws/Aws/CloudWatch/CloudWatchClient.php create mode 100644 lib/aws/Aws/CloudWatch/Exception/CloudWatchException.php create mode 100644 lib/aws/Aws/CloudWatchEvents/CloudWatchEventsClient.php create mode 100644 lib/aws/Aws/CloudWatchEvents/Exception/CloudWatchEventsException.php create mode 100644 lib/aws/Aws/CloudWatchLogs/CloudWatchLogsClient.php create mode 100644 lib/aws/Aws/CloudWatchLogs/Exception/CloudWatchLogsException.php create mode 100644 lib/aws/Aws/CodeBuild/CodeBuildClient.php create mode 100644 lib/aws/Aws/CodeBuild/Exception/CodeBuildException.php create mode 100644 lib/aws/Aws/CodeCommit/CodeCommitClient.php create mode 100644 lib/aws/Aws/CodeCommit/Exception/CodeCommitException.php create mode 100644 lib/aws/Aws/CodeDeploy/CodeDeployClient.php create mode 100644 lib/aws/Aws/CodeDeploy/Exception/CodeDeployException.php create mode 100644 lib/aws/Aws/CodePipeline/CodePipelineClient.php create mode 100644 lib/aws/Aws/CodePipeline/Exception/CodePipelineException.php create mode 100644 lib/aws/Aws/CodeStar/CodeStarClient.php create mode 100644 lib/aws/Aws/CodeStar/Exception/CodeStarException.php create mode 100644 lib/aws/Aws/CognitoIdentity/CognitoIdentityClient.php create mode 100644 lib/aws/Aws/CognitoIdentity/CognitoIdentityProvider.php create mode 100644 lib/aws/Aws/CognitoIdentity/Exception/CognitoIdentityException.php create mode 100644 lib/aws/Aws/CognitoIdentityProvider/CognitoIdentityProviderClient.php create mode 100644 lib/aws/Aws/CognitoIdentityProvider/Exception/CognitoIdentityProviderException.php create mode 100644 lib/aws/Aws/CognitoSync/CognitoSyncClient.php create mode 100644 lib/aws/Aws/CognitoSync/Exception/CognitoSyncException.php create mode 100644 lib/aws/Aws/Command.php create mode 100644 lib/aws/Aws/CommandInterface.php create mode 100644 lib/aws/Aws/CommandPool.php create mode 100644 lib/aws/Aws/Comprehend/ComprehendClient.php create mode 100644 lib/aws/Aws/Comprehend/Exception/ComprehendException.php create mode 100644 lib/aws/Aws/ComprehendMedical/ComprehendMedicalClient.php create mode 100644 lib/aws/Aws/ComprehendMedical/Exception/ComprehendMedicalException.php create mode 100644 lib/aws/Aws/ConfigService/ConfigServiceClient.php create mode 100644 lib/aws/Aws/ConfigService/Exception/ConfigServiceException.php create mode 100644 lib/aws/Aws/Connect/ConnectClient.php create mode 100644 lib/aws/Aws/Connect/Exception/ConnectException.php create mode 100644 lib/aws/Aws/CostExplorer/CostExplorerClient.php create mode 100644 lib/aws/Aws/CostExplorer/Exception/CostExplorerException.php create mode 100644 lib/aws/Aws/CostandUsageReportService/CostandUsageReportServiceClient.php create mode 100644 lib/aws/Aws/CostandUsageReportService/Exception/CostandUsageReportServiceException.php create mode 100644 lib/aws/Aws/Credentials/AssumeRoleCredentialProvider.php create mode 100644 lib/aws/Aws/Credentials/CredentialProvider.php create mode 100644 lib/aws/Aws/Credentials/Credentials.php create mode 100644 lib/aws/Aws/Credentials/CredentialsInterface.php create mode 100644 lib/aws/Aws/Credentials/EcsCredentialProvider.php create mode 100644 lib/aws/Aws/Credentials/InstanceProfileProvider.php create mode 100644 lib/aws/Aws/Crypto/AbstractCryptoClient.php create mode 100644 lib/aws/Aws/Crypto/AesDecryptingStream.php create mode 100644 lib/aws/Aws/Crypto/AesEncryptingStream.php create mode 100644 lib/aws/Aws/Crypto/AesGcmDecryptingStream.php create mode 100644 lib/aws/Aws/Crypto/AesGcmEncryptingStream.php create mode 100644 lib/aws/Aws/Crypto/AesStreamInterface.php create mode 100644 lib/aws/Aws/Crypto/Cipher/Cbc.php create mode 100644 lib/aws/Aws/Crypto/Cipher/CipherBuilderTrait.php create mode 100644 lib/aws/Aws/Crypto/Cipher/CipherMethod.php create mode 100644 lib/aws/Aws/Crypto/DecryptionTrait.php create mode 100644 lib/aws/Aws/Crypto/EncryptionTrait.php create mode 100644 lib/aws/Aws/Crypto/KmsMaterialsProvider.php create mode 100644 lib/aws/Aws/Crypto/MaterialsProvider.php create mode 100644 lib/aws/Aws/Crypto/MetadataEnvelope.php create mode 100644 lib/aws/Aws/Crypto/MetadataStrategyInterface.php create mode 100644 lib/aws/Aws/DAX/DAXClient.php create mode 100644 lib/aws/Aws/DAX/Exception/DAXException.php create mode 100644 lib/aws/Aws/DLM/DLMClient.php create mode 100644 lib/aws/Aws/DLM/Exception/DLMException.php create mode 100644 lib/aws/Aws/DataPipeline/DataPipelineClient.php create mode 100644 lib/aws/Aws/DataPipeline/Exception/DataPipelineException.php create mode 100644 lib/aws/Aws/DataSync/DataSyncClient.php create mode 100644 lib/aws/Aws/DataSync/Exception/DataSyncException.php create mode 100644 lib/aws/Aws/DatabaseMigrationService/DatabaseMigrationServiceClient.php create mode 100644 lib/aws/Aws/DatabaseMigrationService/Exception/DatabaseMigrationServiceException.php create mode 100644 lib/aws/Aws/DeviceFarm/DeviceFarmClient.php create mode 100644 lib/aws/Aws/DeviceFarm/Exception/DeviceFarmException.php create mode 100644 lib/aws/Aws/DirectConnect/DirectConnectClient.php create mode 100644 lib/aws/Aws/DirectConnect/Exception/DirectConnectException.php create mode 100644 lib/aws/Aws/DirectoryService/DirectoryServiceClient.php create mode 100644 lib/aws/Aws/DirectoryService/Exception/DirectoryServiceException.php create mode 100644 lib/aws/Aws/DocDB/DocDBClient.php create mode 100644 lib/aws/Aws/DocDB/Exception/DocDBException.php create mode 100644 lib/aws/Aws/DoctrineCacheAdapter.php create mode 100644 lib/aws/Aws/DynamoDb/BinaryValue.php create mode 100644 lib/aws/Aws/DynamoDb/DynamoDbClient.php create mode 100644 lib/aws/Aws/DynamoDb/Exception/DynamoDbException.php create mode 100644 lib/aws/Aws/DynamoDb/LockingSessionConnection.php create mode 100644 lib/aws/Aws/DynamoDb/Marshaler.php create mode 100644 lib/aws/Aws/DynamoDb/NumberValue.php create mode 100644 lib/aws/Aws/DynamoDb/SessionConnectionInterface.php create mode 100644 lib/aws/Aws/DynamoDb/SessionHandler.php create mode 100644 lib/aws/Aws/DynamoDb/SetValue.php create mode 100644 lib/aws/Aws/DynamoDb/StandardSessionConnection.php create mode 100644 lib/aws/Aws/DynamoDb/WriteRequestBatch.php create mode 100644 lib/aws/Aws/DynamoDbStreams/DynamoDbStreamsClient.php create mode 100644 lib/aws/Aws/DynamoDbStreams/Exception/DynamoDbStreamsException.php create mode 100644 lib/aws/Aws/EKS/EKSClient.php create mode 100644 lib/aws/Aws/EKS/Exception/EKSException.php create mode 100644 lib/aws/Aws/Ec2/Ec2Client.php create mode 100644 lib/aws/Aws/Ec2/Exception/Ec2Exception.php create mode 100644 lib/aws/Aws/Ecr/EcrClient.php create mode 100644 lib/aws/Aws/Ecr/Exception/EcrException.php create mode 100644 lib/aws/Aws/Ecs/EcsClient.php create mode 100644 lib/aws/Aws/Ecs/Exception/EcsException.php create mode 100644 lib/aws/Aws/Efs/EfsClient.php create mode 100644 lib/aws/Aws/Efs/Exception/EfsException.php create mode 100644 lib/aws/Aws/ElastiCache/ElastiCacheClient.php create mode 100644 lib/aws/Aws/ElastiCache/Exception/ElastiCacheException.php create mode 100644 lib/aws/Aws/ElasticBeanstalk/ElasticBeanstalkClient.php create mode 100644 lib/aws/Aws/ElasticBeanstalk/Exception/ElasticBeanstalkException.php create mode 100644 lib/aws/Aws/ElasticLoadBalancing/ElasticLoadBalancingClient.php create mode 100644 lib/aws/Aws/ElasticLoadBalancing/Exception/ElasticLoadBalancingException.php create mode 100644 lib/aws/Aws/ElasticLoadBalancingV2/ElasticLoadBalancingV2Client.php create mode 100644 lib/aws/Aws/ElasticLoadBalancingV2/Exception/ElasticLoadBalancingV2Exception.php create mode 100644 lib/aws/Aws/ElasticTranscoder/ElasticTranscoderClient.php create mode 100644 lib/aws/Aws/ElasticTranscoder/Exception/ElasticTranscoderException.php create mode 100644 lib/aws/Aws/ElasticsearchService/ElasticsearchServiceClient.php create mode 100644 lib/aws/Aws/ElasticsearchService/Exception/ElasticsearchServiceException.php create mode 100644 lib/aws/Aws/Emr/EmrClient.php create mode 100644 lib/aws/Aws/Emr/Exception/EmrException.php create mode 100644 lib/aws/Aws/Endpoint/EndpointProvider.php create mode 100644 lib/aws/Aws/Endpoint/Partition.php create mode 100644 lib/aws/Aws/Endpoint/PartitionEndpointProvider.php create mode 100644 lib/aws/Aws/Endpoint/PartitionInterface.php create mode 100644 lib/aws/Aws/Endpoint/PatternEndpointProvider.php create mode 100644 lib/aws/Aws/EndpointDiscovery/Configuration.php create mode 100644 lib/aws/Aws/EndpointDiscovery/ConfigurationInterface.php create mode 100644 lib/aws/Aws/EndpointDiscovery/ConfigurationProvider.php create mode 100644 lib/aws/Aws/EndpointDiscovery/EndpointDiscoveryMiddleware.php create mode 100644 lib/aws/Aws/EndpointDiscovery/EndpointList.php create mode 100644 lib/aws/Aws/EndpointDiscovery/Exception/ConfigurationException.php create mode 100644 lib/aws/Aws/EndpointParameterMiddleware.php create mode 100644 lib/aws/Aws/Exception/AwsException.php create mode 100644 lib/aws/Aws/Exception/CouldNotCreateChecksumException.php create mode 100644 lib/aws/Aws/Exception/CredentialsException.php create mode 100644 lib/aws/Aws/Exception/EventStreamDataException.php create mode 100644 lib/aws/Aws/Exception/MultipartUploadException.php create mode 100644 lib/aws/Aws/Exception/UnresolvedApiException.php create mode 100644 lib/aws/Aws/Exception/UnresolvedEndpointException.php create mode 100644 lib/aws/Aws/Exception/UnresolvedSignatureException.php create mode 100644 lib/aws/Aws/FMS/Exception/FMSException.php create mode 100644 lib/aws/Aws/FMS/FMSClient.php create mode 100644 lib/aws/Aws/FSx/Exception/FSxException.php create mode 100644 lib/aws/Aws/FSx/FSxClient.php create mode 100644 lib/aws/Aws/Firehose/Exception/FirehoseException.php create mode 100644 lib/aws/Aws/Firehose/FirehoseClient.php create mode 100644 lib/aws/Aws/GameLift/Exception/GameLiftException.php create mode 100644 lib/aws/Aws/GameLift/GameLiftClient.php create mode 100644 lib/aws/Aws/Glacier/Exception/GlacierException.php create mode 100644 lib/aws/Aws/Glacier/GlacierClient.php create mode 100644 lib/aws/Aws/Glacier/MultipartUploader.php create mode 100644 lib/aws/Aws/Glacier/TreeHash.php create mode 100644 lib/aws/Aws/GlobalAccelerator/Exception/GlobalAcceleratorException.php create mode 100644 lib/aws/Aws/GlobalAccelerator/GlobalAcceleratorClient.php create mode 100644 lib/aws/Aws/Glue/Exception/GlueException.php create mode 100644 lib/aws/Aws/Glue/GlueClient.php create mode 100644 lib/aws/Aws/Greengrass/Exception/GreengrassException.php create mode 100644 lib/aws/Aws/Greengrass/GreengrassClient.php create mode 100644 lib/aws/Aws/GuardDuty/Exception/GuardDutyException.php create mode 100644 lib/aws/Aws/GuardDuty/GuardDutyClient.php create mode 100644 lib/aws/Aws/Handler/GuzzleV5/GuzzleHandler.php create mode 100644 lib/aws/Aws/Handler/GuzzleV5/GuzzleStream.php create mode 100644 lib/aws/Aws/Handler/GuzzleV5/PsrStream.php create mode 100644 lib/aws/Aws/Handler/GuzzleV6/GuzzleHandler.php create mode 100644 lib/aws/Aws/HandlerList.php create mode 100644 lib/aws/Aws/HasDataTrait.php create mode 100644 lib/aws/Aws/HasMonitoringEventsTrait.php create mode 100644 lib/aws/Aws/HashInterface.php create mode 100644 lib/aws/Aws/HashingStream.php create mode 100644 lib/aws/Aws/Health/Exception/HealthException.php create mode 100644 lib/aws/Aws/Health/HealthClient.php create mode 100644 lib/aws/Aws/History.php create mode 100644 lib/aws/Aws/Iam/Exception/IamException.php create mode 100644 lib/aws/Aws/Iam/IamClient.php create mode 100644 lib/aws/Aws/IdempotencyTokenMiddleware.php create mode 100644 lib/aws/Aws/ImportExport/Exception/ImportExportException.php create mode 100644 lib/aws/Aws/ImportExport/ImportExportClient.php create mode 100644 lib/aws/Aws/Inspector/Exception/InspectorException.php create mode 100644 lib/aws/Aws/Inspector/InspectorClient.php create mode 100644 lib/aws/Aws/IoT1ClickDevicesService/Exception/IoT1ClickDevicesServiceException.php create mode 100644 lib/aws/Aws/IoT1ClickDevicesService/IoT1ClickDevicesServiceClient.php create mode 100644 lib/aws/Aws/IoT1ClickProjects/Exception/IoT1ClickProjectsException.php create mode 100644 lib/aws/Aws/IoT1ClickProjects/IoT1ClickProjectsClient.php create mode 100644 lib/aws/Aws/IoTAnalytics/Exception/IoTAnalyticsException.php create mode 100644 lib/aws/Aws/IoTAnalytics/IoTAnalyticsClient.php create mode 100644 lib/aws/Aws/IoTJobsDataPlane/Exception/IoTJobsDataPlaneException.php create mode 100644 lib/aws/Aws/IoTJobsDataPlane/IoTJobsDataPlaneClient.php create mode 100644 lib/aws/Aws/Iot/Exception/IotException.php create mode 100644 lib/aws/Aws/Iot/IotClient.php create mode 100644 lib/aws/Aws/IotDataPlane/Exception/IotDataPlaneException.php create mode 100644 lib/aws/Aws/IotDataPlane/IotDataPlaneClient.php create mode 100644 lib/aws/Aws/JsonCompiler.php create mode 100644 lib/aws/Aws/Kafka/Exception/KafkaException.php create mode 100644 lib/aws/Aws/Kafka/KafkaClient.php create mode 100644 lib/aws/Aws/Kinesis/Exception/KinesisException.php create mode 100644 lib/aws/Aws/Kinesis/KinesisClient.php create mode 100644 lib/aws/Aws/KinesisAnalytics/Exception/KinesisAnalyticsException.php create mode 100644 lib/aws/Aws/KinesisAnalytics/KinesisAnalyticsClient.php create mode 100644 lib/aws/Aws/KinesisAnalyticsV2/Exception/KinesisAnalyticsV2Exception.php create mode 100644 lib/aws/Aws/KinesisAnalyticsV2/KinesisAnalyticsV2Client.php create mode 100644 lib/aws/Aws/KinesisVideo/Exception/KinesisVideoException.php create mode 100644 lib/aws/Aws/KinesisVideo/KinesisVideoClient.php create mode 100644 lib/aws/Aws/KinesisVideoArchivedMedia/Exception/KinesisVideoArchivedMediaException.php create mode 100644 lib/aws/Aws/KinesisVideoArchivedMedia/KinesisVideoArchivedMediaClient.php create mode 100644 lib/aws/Aws/KinesisVideoMedia/Exception/KinesisVideoMediaException.php create mode 100644 lib/aws/Aws/KinesisVideoMedia/KinesisVideoMediaClient.php create mode 100644 lib/aws/Aws/Kms/Exception/KmsException.php create mode 100644 lib/aws/Aws/Kms/KmsClient.php create mode 100644 lib/aws/Aws/Lambda/Exception/LambdaException.php create mode 100644 lib/aws/Aws/Lambda/LambdaClient.php create mode 100644 lib/aws/Aws/LexModelBuildingService/Exception/LexModelBuildingServiceException.php create mode 100644 lib/aws/Aws/LexModelBuildingService/LexModelBuildingServiceClient.php create mode 100644 lib/aws/Aws/LexRuntimeService/Exception/LexRuntimeServiceException.php create mode 100644 lib/aws/Aws/LexRuntimeService/LexRuntimeServiceClient.php create mode 100644 lib/aws/Aws/LicenseManager/Exception/LicenseManagerException.php create mode 100644 lib/aws/Aws/LicenseManager/LicenseManagerClient.php create mode 100644 lib/aws/Aws/Lightsail/Exception/LightsailException.php create mode 100644 lib/aws/Aws/Lightsail/LightsailClient.php create mode 100644 lib/aws/Aws/LruArrayCache.php create mode 100644 lib/aws/Aws/MQ/Exception/MQException.php create mode 100644 lib/aws/Aws/MQ/MQClient.php create mode 100644 lib/aws/Aws/MTurk/Exception/MTurkException.php create mode 100644 lib/aws/Aws/MTurk/MTurkClient.php create mode 100644 lib/aws/Aws/MachineLearning/Exception/MachineLearningException.php create mode 100644 lib/aws/Aws/MachineLearning/MachineLearningClient.php create mode 100644 lib/aws/Aws/Macie/Exception/MacieException.php create mode 100644 lib/aws/Aws/Macie/MacieClient.php create mode 100644 lib/aws/Aws/MarketplaceCommerceAnalytics/Exception/MarketplaceCommerceAnalyticsException.php create mode 100644 lib/aws/Aws/MarketplaceCommerceAnalytics/MarketplaceCommerceAnalyticsClient.php create mode 100644 lib/aws/Aws/MarketplaceEntitlementService/Exception/MarketplaceEntitlementServiceException.php create mode 100644 lib/aws/Aws/MarketplaceEntitlementService/MarketplaceEntitlementServiceClient.php create mode 100644 lib/aws/Aws/MarketplaceMetering/Exception/MarketplaceMeteringException.php create mode 100644 lib/aws/Aws/MarketplaceMetering/MarketplaceMeteringClient.php create mode 100644 lib/aws/Aws/MediaConnect/Exception/MediaConnectException.php create mode 100644 lib/aws/Aws/MediaConnect/MediaConnectClient.php create mode 100644 lib/aws/Aws/MediaConvert/Exception/MediaConvertException.php create mode 100644 lib/aws/Aws/MediaConvert/MediaConvertClient.php create mode 100644 lib/aws/Aws/MediaLive/Exception/MediaLiveException.php create mode 100644 lib/aws/Aws/MediaLive/MediaLiveClient.php create mode 100644 lib/aws/Aws/MediaPackage/Exception/MediaPackageException.php create mode 100644 lib/aws/Aws/MediaPackage/MediaPackageClient.php create mode 100644 lib/aws/Aws/MediaStore/Exception/MediaStoreException.php create mode 100644 lib/aws/Aws/MediaStore/MediaStoreClient.php create mode 100644 lib/aws/Aws/MediaStoreData/Exception/MediaStoreDataException.php create mode 100644 lib/aws/Aws/MediaStoreData/MediaStoreDataClient.php create mode 100644 lib/aws/Aws/MediaTailor/Exception/MediaTailorException.php create mode 100644 lib/aws/Aws/MediaTailor/MediaTailorClient.php create mode 100644 lib/aws/Aws/Middleware.php create mode 100644 lib/aws/Aws/MigrationHub/Exception/MigrationHubException.php create mode 100644 lib/aws/Aws/MigrationHub/MigrationHubClient.php create mode 100644 lib/aws/Aws/Mobile/Exception/MobileException.php create mode 100644 lib/aws/Aws/Mobile/MobileClient.php create mode 100644 lib/aws/Aws/MockHandler.php create mode 100644 lib/aws/Aws/MonitoringEventsInterface.php create mode 100644 lib/aws/Aws/MultiRegionClient.php create mode 100644 lib/aws/Aws/Multipart/AbstractUploadManager.php create mode 100644 lib/aws/Aws/Multipart/AbstractUploader.php create mode 100644 lib/aws/Aws/Multipart/UploadState.php create mode 100644 lib/aws/Aws/Neptune/Exception/NeptuneException.php create mode 100644 lib/aws/Aws/Neptune/NeptuneClient.php create mode 100644 lib/aws/Aws/OpsWorks/Exception/OpsWorksException.php create mode 100644 lib/aws/Aws/OpsWorks/OpsWorksClient.php create mode 100644 lib/aws/Aws/OpsWorksCM/Exception/OpsWorksCMException.php create mode 100644 lib/aws/Aws/OpsWorksCM/OpsWorksCMClient.php create mode 100644 lib/aws/Aws/Organizations/Exception/OrganizationsException.php create mode 100644 lib/aws/Aws/Organizations/OrganizationsClient.php create mode 100644 lib/aws/Aws/PI/Exception/PIException.php create mode 100644 lib/aws/Aws/PI/PIClient.php create mode 100644 lib/aws/Aws/PhpHash.php create mode 100644 lib/aws/Aws/Pinpoint/Exception/PinpointException.php create mode 100644 lib/aws/Aws/Pinpoint/PinpointClient.php create mode 100644 lib/aws/Aws/PinpointEmail/Exception/PinpointEmailException.php create mode 100644 lib/aws/Aws/PinpointEmail/PinpointEmailClient.php create mode 100644 lib/aws/Aws/PinpointSMSVoice/Exception/PinpointSMSVoiceException.php create mode 100644 lib/aws/Aws/PinpointSMSVoice/PinpointSMSVoiceClient.php create mode 100644 lib/aws/Aws/Polly/Exception/PollyException.php create mode 100644 lib/aws/Aws/Polly/PollyClient.php create mode 100644 lib/aws/Aws/PresignUrlMiddleware.php create mode 100644 lib/aws/Aws/Pricing/Exception/PricingException.php create mode 100644 lib/aws/Aws/Pricing/PricingClient.php create mode 100644 lib/aws/Aws/PsrCacheAdapter.php create mode 100644 lib/aws/Aws/QuickSight/Exception/QuickSightException.php create mode 100644 lib/aws/Aws/QuickSight/QuickSightClient.php create mode 100644 lib/aws/Aws/RAM/Exception/RAMException.php create mode 100644 lib/aws/Aws/RAM/RAMClient.php create mode 100644 lib/aws/Aws/RDSDataService/Exception/RDSDataServiceException.php create mode 100644 lib/aws/Aws/RDSDataService/RDSDataServiceClient.php create mode 100644 lib/aws/Aws/Rds/AuthTokenGenerator.php create mode 100644 lib/aws/Aws/Rds/Exception/RdsException.php create mode 100644 lib/aws/Aws/Rds/RdsClient.php create mode 100644 lib/aws/Aws/Redshift/Exception/RedshiftException.php create mode 100644 lib/aws/Aws/Redshift/RedshiftClient.php create mode 100644 lib/aws/Aws/Rekognition/Exception/RekognitionException.php create mode 100644 lib/aws/Aws/Rekognition/RekognitionClient.php create mode 100644 lib/aws/Aws/ResourceGroups/Exception/ResourceGroupsException.php create mode 100644 lib/aws/Aws/ResourceGroups/ResourceGroupsClient.php create mode 100644 lib/aws/Aws/ResourceGroupsTaggingAPI/Exception/ResourceGroupsTaggingAPIException.php create mode 100644 lib/aws/Aws/ResourceGroupsTaggingAPI/ResourceGroupsTaggingAPIClient.php create mode 100644 lib/aws/Aws/ResponseContainerInterface.php create mode 100644 lib/aws/Aws/Result.php create mode 100644 lib/aws/Aws/ResultInterface.php create mode 100644 lib/aws/Aws/ResultPaginator.php create mode 100644 lib/aws/Aws/RetryMiddleware.php create mode 100644 lib/aws/Aws/RoboMaker/Exception/RoboMakerException.php create mode 100644 lib/aws/Aws/RoboMaker/RoboMakerClient.php create mode 100644 lib/aws/Aws/Route53/Exception/Route53Exception.php create mode 100644 lib/aws/Aws/Route53/Route53Client.php create mode 100644 lib/aws/Aws/Route53Domains/Exception/Route53DomainsException.php create mode 100644 lib/aws/Aws/Route53Domains/Route53DomainsClient.php create mode 100644 lib/aws/Aws/Route53Resolver/Exception/Route53ResolverException.php create mode 100644 lib/aws/Aws/Route53Resolver/Route53ResolverClient.php create mode 100644 lib/aws/Aws/S3/AmbiguousSuccessParser.php create mode 100644 lib/aws/Aws/S3/ApplyChecksumMiddleware.php create mode 100644 lib/aws/Aws/S3/BatchDelete.php create mode 100644 lib/aws/Aws/S3/BucketEndpointMiddleware.php create mode 100644 lib/aws/Aws/S3/Crypto/CryptoParamsTrait.php create mode 100644 lib/aws/Aws/S3/Crypto/HeadersMetadataStrategy.php create mode 100644 lib/aws/Aws/S3/Crypto/InstructionFileMetadataStrategy.php create mode 100644 lib/aws/Aws/S3/Crypto/S3EncryptionClient.php create mode 100644 lib/aws/Aws/S3/Crypto/S3EncryptionMultipartUploader.php create mode 100644 lib/aws/Aws/S3/Exception/DeleteMultipleObjectsException.php create mode 100644 lib/aws/Aws/S3/Exception/PermanentRedirectException.php create mode 100644 lib/aws/Aws/S3/Exception/S3Exception.php create mode 100644 lib/aws/Aws/S3/Exception/S3MultipartUploadException.php create mode 100644 lib/aws/Aws/S3/GetBucketLocationParser.php create mode 100644 lib/aws/Aws/S3/MultipartCopy.php create mode 100644 lib/aws/Aws/S3/MultipartUploader.php create mode 100644 lib/aws/Aws/S3/MultipartUploadingTrait.php create mode 100644 lib/aws/Aws/S3/ObjectCopier.php create mode 100644 lib/aws/Aws/S3/ObjectUploader.php create mode 100644 lib/aws/Aws/S3/PermanentRedirectMiddleware.php create mode 100644 lib/aws/Aws/S3/PostObject.php create mode 100644 lib/aws/Aws/S3/PostObjectV4.php create mode 100644 lib/aws/Aws/S3/PutObjectUrlMiddleware.php create mode 100644 lib/aws/Aws/S3/RetryableMalformedResponseParser.php create mode 100644 lib/aws/Aws/S3/S3Client.php create mode 100644 lib/aws/Aws/S3/S3ClientInterface.php create mode 100644 lib/aws/Aws/S3/S3ClientTrait.php create mode 100644 lib/aws/Aws/S3/S3EndpointMiddleware.php create mode 100644 lib/aws/Aws/S3/S3MultiRegionClient.php create mode 100644 lib/aws/Aws/S3/S3UriParser.php create mode 100644 lib/aws/Aws/S3/SSECMiddleware.php create mode 100644 lib/aws/Aws/S3/StreamWrapper.php create mode 100644 lib/aws/Aws/S3/Transfer.php create mode 100644 lib/aws/Aws/S3Control/Exception/S3ControlException.php create mode 100644 lib/aws/Aws/S3Control/S3ControlClient.php create mode 100644 lib/aws/Aws/S3Control/S3ControlEndpointMiddleware.php create mode 100644 lib/aws/Aws/SageMaker/Exception/SageMakerException.php create mode 100644 lib/aws/Aws/SageMaker/SageMakerClient.php create mode 100644 lib/aws/Aws/SageMakerRuntime/Exception/SageMakerRuntimeException.php create mode 100644 lib/aws/Aws/SageMakerRuntime/SageMakerRuntimeClient.php create mode 100644 lib/aws/Aws/Sdk.php create mode 100644 lib/aws/Aws/SecretsManager/Exception/SecretsManagerException.php create mode 100644 lib/aws/Aws/SecretsManager/SecretsManagerClient.php create mode 100644 lib/aws/Aws/SecurityHub/Exception/SecurityHubException.php create mode 100644 lib/aws/Aws/SecurityHub/SecurityHubClient.php create mode 100644 lib/aws/Aws/ServerlessApplicationRepository/Exception/ServerlessApplicationRepositoryException.php create mode 100644 lib/aws/Aws/ServerlessApplicationRepository/ServerlessApplicationRepositoryClient.php create mode 100644 lib/aws/Aws/ServiceCatalog/Exception/ServiceCatalogException.php create mode 100644 lib/aws/Aws/ServiceCatalog/ServiceCatalogClient.php create mode 100644 lib/aws/Aws/ServiceDiscovery/Exception/ServiceDiscoveryException.php create mode 100644 lib/aws/Aws/ServiceDiscovery/ServiceDiscoveryClient.php create mode 100644 lib/aws/Aws/Ses/Exception/SesException.php create mode 100644 lib/aws/Aws/Ses/SesClient.php create mode 100644 lib/aws/Aws/Sfn/Exception/SfnException.php create mode 100644 lib/aws/Aws/Sfn/SfnClient.php create mode 100644 lib/aws/Aws/Shield/Exception/ShieldException.php create mode 100644 lib/aws/Aws/Shield/ShieldClient.php create mode 100644 lib/aws/Aws/Signature/AnonymousSignature.php create mode 100644 lib/aws/Aws/Signature/S3SignatureV4.php create mode 100644 lib/aws/Aws/Signature/SignatureInterface.php create mode 100644 lib/aws/Aws/Signature/SignatureProvider.php create mode 100644 lib/aws/Aws/Signature/SignatureTrait.php create mode 100644 lib/aws/Aws/Signature/SignatureV4.php create mode 100644 lib/aws/Aws/Sms/Exception/SmsException.php create mode 100644 lib/aws/Aws/Sms/SmsClient.php create mode 100644 lib/aws/Aws/SnowBall/Exception/SnowBallException.php create mode 100644 lib/aws/Aws/SnowBall/SnowBallClient.php create mode 100644 lib/aws/Aws/Sns/Exception/InvalidSnsMessageException.php create mode 100644 lib/aws/Aws/Sns/Exception/SnsException.php create mode 100644 lib/aws/Aws/Sns/Message.php create mode 100644 lib/aws/Aws/Sns/MessageValidator.php create mode 100644 lib/aws/Aws/Sns/SnsClient.php create mode 100644 lib/aws/Aws/Sqs/Exception/SqsException.php create mode 100644 lib/aws/Aws/Sqs/SqsClient.php create mode 100644 lib/aws/Aws/Ssm/Exception/SsmException.php create mode 100644 lib/aws/Aws/Ssm/SsmClient.php create mode 100644 lib/aws/Aws/StorageGateway/Exception/StorageGatewayException.php create mode 100644 lib/aws/Aws/StorageGateway/StorageGatewayClient.php create mode 100644 lib/aws/Aws/Sts/Exception/StsException.php create mode 100644 lib/aws/Aws/Sts/StsClient.php create mode 100644 lib/aws/Aws/Support/Exception/SupportException.php create mode 100644 lib/aws/Aws/Support/SupportClient.php create mode 100644 lib/aws/Aws/Swf/Exception/SwfException.php create mode 100644 lib/aws/Aws/Swf/SwfClient.php create mode 100644 lib/aws/Aws/Textract/Exception/TextractException.php create mode 100644 lib/aws/Aws/Textract/TextractClient.php create mode 100644 lib/aws/Aws/TraceMiddleware.php create mode 100644 lib/aws/Aws/TranscribeService/Exception/TranscribeServiceException.php create mode 100644 lib/aws/Aws/TranscribeService/TranscribeServiceClient.php create mode 100644 lib/aws/Aws/Transfer/Exception/TransferException.php create mode 100644 lib/aws/Aws/Transfer/TransferClient.php create mode 100644 lib/aws/Aws/Translate/Exception/TranslateException.php create mode 100644 lib/aws/Aws/Translate/TranslateClient.php create mode 100644 lib/aws/Aws/Waf/Exception/WafException.php create mode 100644 lib/aws/Aws/Waf/WafClient.php create mode 100644 lib/aws/Aws/WafRegional/Exception/WafRegionalException.php create mode 100644 lib/aws/Aws/WafRegional/WafRegionalClient.php create mode 100644 lib/aws/Aws/Waiter.php create mode 100644 lib/aws/Aws/WorkDocs/Exception/WorkDocsException.php create mode 100644 lib/aws/Aws/WorkDocs/WorkDocsClient.php create mode 100644 lib/aws/Aws/WorkLink/Exception/WorkLinkException.php create mode 100644 lib/aws/Aws/WorkLink/WorkLinkClient.php create mode 100644 lib/aws/Aws/WorkMail/Exception/WorkMailException.php create mode 100644 lib/aws/Aws/WorkMail/WorkMailClient.php create mode 100644 lib/aws/Aws/WorkSpaces/Exception/WorkSpacesException.php create mode 100644 lib/aws/Aws/WorkSpaces/WorkSpacesClient.php create mode 100644 lib/aws/Aws/WrappedHttpHandler.php create mode 100644 lib/aws/Aws/XRay/Exception/XRayException.php create mode 100644 lib/aws/Aws/XRay/XRayClient.php create mode 100644 lib/aws/Aws/data/acm-pca/2017-08-22/api-2.json.php create mode 100644 lib/aws/Aws/data/acm-pca/2017-08-22/paginators-1.json.php create mode 100644 lib/aws/Aws/data/acm-pca/2017-08-22/waiters-2.json.php create mode 100644 lib/aws/Aws/data/acm/2015-12-08/api-2.json.php create mode 100644 lib/aws/Aws/data/acm/2015-12-08/paginators-1.json.php create mode 100644 lib/aws/Aws/data/acm/2015-12-08/smoke.json.php create mode 100644 lib/aws/Aws/data/acm/2015-12-08/waiters-2.json.php create mode 100644 lib/aws/Aws/data/alexaforbusiness/2017-11-09/api-2.json.php create mode 100644 lib/aws/Aws/data/alexaforbusiness/2017-11-09/paginators-1.json.php create mode 100644 lib/aws/Aws/data/amplify/2017-07-25/api-2.json.php create mode 100644 lib/aws/Aws/data/amplify/2017-07-25/paginators-1.json.php create mode 100644 lib/aws/Aws/data/apigateway/2015-07-09/api-2.json.php create mode 100644 lib/aws/Aws/data/apigateway/2015-07-09/paginators-1.json.php create mode 100644 lib/aws/Aws/data/apigateway/2015-07-09/smoke.json.php create mode 100644 lib/aws/Aws/data/apigatewaymanagementapi/2018-11-29/api-2.json.php create mode 100644 lib/aws/Aws/data/apigatewaymanagementapi/2018-11-29/paginators-1.json.php create mode 100644 lib/aws/Aws/data/apigatewayv2/2018-11-29/api-2.json.php create mode 100644 lib/aws/Aws/data/apigatewayv2/2018-11-29/paginators-1.json.php create mode 100644 lib/aws/Aws/data/application-autoscaling/2016-02-06/api-2.json.php create mode 100644 lib/aws/Aws/data/application-autoscaling/2016-02-06/paginators-1.json.php create mode 100644 lib/aws/Aws/data/application-autoscaling/2016-02-06/smoke.json.php create mode 100644 lib/aws/Aws/data/appmesh/2018-10-01/api-2.json.php create mode 100644 lib/aws/Aws/data/appmesh/2018-10-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/appmesh/2019-01-25/api-2.json.php create mode 100644 lib/aws/Aws/data/appmesh/2019-01-25/paginators-1.json.php create mode 100644 lib/aws/Aws/data/appstream/2016-12-01/api-2.json.php create mode 100644 lib/aws/Aws/data/appstream/2016-12-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/appstream/2016-12-01/smoke.json.php create mode 100644 lib/aws/Aws/data/appstream/2016-12-01/waiters-2.json.php create mode 100644 lib/aws/Aws/data/appsync/2017-07-25/api-2.json.php create mode 100644 lib/aws/Aws/data/appsync/2017-07-25/paginators-1.json.php create mode 100644 lib/aws/Aws/data/athena/2017-05-18/api-2.json.php create mode 100644 lib/aws/Aws/data/athena/2017-05-18/paginators-1.json.php create mode 100644 lib/aws/Aws/data/athena/2017-05-18/smoke.json.php create mode 100644 lib/aws/Aws/data/autoscaling-plans/2018-01-06/api-2.json.php create mode 100644 lib/aws/Aws/data/autoscaling-plans/2018-01-06/paginators-1.json.php create mode 100644 lib/aws/Aws/data/autoscaling/2011-01-01/api-2.json.php create mode 100644 lib/aws/Aws/data/autoscaling/2011-01-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/autoscaling/2011-01-01/smoke.json.php create mode 100644 lib/aws/Aws/data/autoscaling/2011-01-01/waiters-2.json.php create mode 100644 lib/aws/Aws/data/backup/2018-11-15/api-2.json.php create mode 100644 lib/aws/Aws/data/backup/2018-11-15/paginators-1.json.php create mode 100644 lib/aws/Aws/data/batch/2016-08-10/api-2.json.php create mode 100644 lib/aws/Aws/data/batch/2016-08-10/paginators-1.json.php create mode 100644 lib/aws/Aws/data/batch/2016-08-10/smoke.json.php create mode 100644 lib/aws/Aws/data/budgets/2016-10-20/api-2.json.php create mode 100644 lib/aws/Aws/data/budgets/2016-10-20/paginators-1.json.php create mode 100644 lib/aws/Aws/data/ce/2017-10-25/api-2.json.php create mode 100644 lib/aws/Aws/data/ce/2017-10-25/paginators-1.json.php create mode 100644 lib/aws/Aws/data/chime/2018-05-01/api-2.json.php create mode 100644 lib/aws/Aws/data/chime/2018-05-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cloud9/2017-09-23/api-2.json.php create mode 100644 lib/aws/Aws/data/cloud9/2017-09-23/paginators-1.json.php create mode 100644 lib/aws/Aws/data/clouddirectory/2016-05-10/api-2.json.php create mode 100644 lib/aws/Aws/data/clouddirectory/2016-05-10/paginators-1.json.php create mode 100644 lib/aws/Aws/data/clouddirectory/2017-01-11/api-2.json.php create mode 100644 lib/aws/Aws/data/clouddirectory/2017-01-11/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cloudformation/2010-05-15/api-2.json.php create mode 100644 lib/aws/Aws/data/cloudformation/2010-05-15/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cloudformation/2010-05-15/waiters-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2015-07-27/api-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2015-07-27/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2015-07-27/waiters-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-01-28/api-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-01-28/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-01-28/waiters-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-08-01/api-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-08-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-08-01/waiters-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-08-20/api-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-08-20/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-08-20/waiters-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-09-07/api-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-09-07/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-09-07/waiters-1.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-09-07/waiters-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-09-29/api-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-09-29/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-09-29/waiters-1.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-09-29/waiters-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-11-25/api-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-11-25/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-11-25/waiters-1.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2016-11-25/waiters-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2017-03-25/api-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2017-03-25/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2017-03-25/waiters-1.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2017-03-25/waiters-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2017-10-30/api-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2017-10-30/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2017-10-30/smoke.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2017-10-30/waiters-1.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2017-10-30/waiters-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2018-06-18/api-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2018-06-18/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2018-06-18/smoke.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2018-06-18/waiters-1.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2018-06-18/waiters-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2018-11-05/api-2.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2018-11-05/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2018-11-05/smoke.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2018-11-05/waiters-1.json.php create mode 100644 lib/aws/Aws/data/cloudfront/2018-11-05/waiters-2.json.php create mode 100644 lib/aws/Aws/data/cloudhsm/2014-05-30/api-2.json.php create mode 100644 lib/aws/Aws/data/cloudhsm/2014-05-30/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cloudhsmv2/2017-04-28/api-2.json.php create mode 100644 lib/aws/Aws/data/cloudhsmv2/2017-04-28/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cloudhsmv2/2017-04-28/smoke.json.php create mode 100644 lib/aws/Aws/data/cloudsearch/2013-01-01/api-2.json.php create mode 100644 lib/aws/Aws/data/cloudsearch/2013-01-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cloudsearchdomain/2013-01-01/api-2.json.php create mode 100644 lib/aws/Aws/data/cloudtrail/2013-11-01/api-2.json.php create mode 100644 lib/aws/Aws/data/cloudtrail/2013-11-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cloudtrail/2013-11-01/smoke.json.php create mode 100644 lib/aws/Aws/data/codebuild/2016-10-06/api-2.json.php create mode 100644 lib/aws/Aws/data/codebuild/2016-10-06/paginators-1.json.php create mode 100644 lib/aws/Aws/data/codebuild/2016-10-06/smoke.json.php create mode 100644 lib/aws/Aws/data/codecommit/2015-04-13/api-2.json.php create mode 100644 lib/aws/Aws/data/codecommit/2015-04-13/paginators-1.json.php create mode 100644 lib/aws/Aws/data/codecommit/2015-04-13/smoke.json.php create mode 100644 lib/aws/Aws/data/codedeploy/2014-10-06/api-2.json.php create mode 100644 lib/aws/Aws/data/codedeploy/2014-10-06/paginators-1.json.php create mode 100644 lib/aws/Aws/data/codedeploy/2014-10-06/smoke.json.php create mode 100644 lib/aws/Aws/data/codedeploy/2014-10-06/waiters-1.json.php create mode 100644 lib/aws/Aws/data/codedeploy/2014-10-06/waiters-2.json.php create mode 100644 lib/aws/Aws/data/codepipeline/2015-07-09/api-2.json.php create mode 100644 lib/aws/Aws/data/codepipeline/2015-07-09/paginators-1.json.php create mode 100644 lib/aws/Aws/data/codepipeline/2015-07-09/smoke.json.php create mode 100644 lib/aws/Aws/data/codestar/2017-04-19/api-2.json.php create mode 100644 lib/aws/Aws/data/codestar/2017-04-19/paginators-1.json.php create mode 100644 lib/aws/Aws/data/codestar/2017-04-19/smoke.json.php create mode 100644 lib/aws/Aws/data/cognito-identity/2014-06-30/api-2.json.php create mode 100644 lib/aws/Aws/data/cognito-identity/2014-06-30/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cognito-idp/2016-04-18/api-2.json.php create mode 100644 lib/aws/Aws/data/cognito-idp/2016-04-18/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cognito-idp/2016-04-18/smoke.json.php create mode 100644 lib/aws/Aws/data/cognito-sync/2014-06-30/api-2.json.php create mode 100644 lib/aws/Aws/data/comprehend/2017-11-27/api-2.json.php create mode 100644 lib/aws/Aws/data/comprehend/2017-11-27/paginators-1.json.php create mode 100644 lib/aws/Aws/data/comprehendmedical/2018-10-30/api-2.json.php create mode 100644 lib/aws/Aws/data/comprehendmedical/2018-10-30/paginators-1.json.php create mode 100644 lib/aws/Aws/data/config/2014-11-12/api-2.json.php create mode 100644 lib/aws/Aws/data/config/2014-11-12/paginators-1.json.php create mode 100644 lib/aws/Aws/data/config/2014-11-12/smoke.json.php create mode 100644 lib/aws/Aws/data/connect/2017-08-08/api-2.json.php create mode 100644 lib/aws/Aws/data/connect/2017-08-08/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cur/2017-01-06/api-2.json.php create mode 100644 lib/aws/Aws/data/cur/2017-01-06/paginators-1.json.php create mode 100644 lib/aws/Aws/data/cur/2017-01-06/smoke.json.php create mode 100644 lib/aws/Aws/data/data.iot/2015-05-28/api-2.json.php create mode 100644 lib/aws/Aws/data/datapipeline/2012-10-29/api-2.json.php create mode 100644 lib/aws/Aws/data/datapipeline/2012-10-29/paginators-1.json.php create mode 100644 lib/aws/Aws/data/datasync/2018-11-09/api-2.json.php create mode 100644 lib/aws/Aws/data/datasync/2018-11-09/paginators-1.json.php create mode 100644 lib/aws/Aws/data/dax/2017-04-19/api-2.json.php create mode 100644 lib/aws/Aws/data/dax/2017-04-19/paginators-1.json.php create mode 100644 lib/aws/Aws/data/devicefarm/2015-06-23/api-2.json.php create mode 100644 lib/aws/Aws/data/devicefarm/2015-06-23/paginators-1.json.php create mode 100644 lib/aws/Aws/data/devicefarm/2015-06-23/smoke.json.php create mode 100644 lib/aws/Aws/data/directconnect/2012-10-25/api-2.json.php create mode 100644 lib/aws/Aws/data/directconnect/2012-10-25/paginators-1.json.php create mode 100644 lib/aws/Aws/data/directconnect/2012-10-25/smoke.json.php create mode 100644 lib/aws/Aws/data/discovery/2015-11-01/api-2.json.php create mode 100644 lib/aws/Aws/data/discovery/2015-11-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/discovery/2015-11-01/smoke.json.php create mode 100644 lib/aws/Aws/data/dlm/2018-01-12/api-2.json.php create mode 100644 lib/aws/Aws/data/dlm/2018-01-12/paginators-1.json.php create mode 100644 lib/aws/Aws/data/dms/2016-01-01/api-2.json.php create mode 100644 lib/aws/Aws/data/dms/2016-01-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/dms/2016-01-01/smoke.json.php create mode 100644 lib/aws/Aws/data/dms/2016-01-01/waiters-2.json.php create mode 100644 lib/aws/Aws/data/docdb/2014-10-31/api-2.json.php create mode 100644 lib/aws/Aws/data/docdb/2014-10-31/paginators-1.json.php create mode 100644 lib/aws/Aws/data/docdb/2014-10-31/smoke.json.php create mode 100644 lib/aws/Aws/data/docdb/2014-10-31/waiters-2.json.php create mode 100644 lib/aws/Aws/data/ds/2015-04-16/api-2.json.php create mode 100644 lib/aws/Aws/data/ds/2015-04-16/paginators-1.json.php create mode 100644 lib/aws/Aws/data/ds/2015-04-16/smoke.json.php create mode 100644 lib/aws/Aws/data/dynamodb/2011-12-05/api-2.json.php create mode 100644 lib/aws/Aws/data/dynamodb/2011-12-05/paginators-1.json.php create mode 100644 lib/aws/Aws/data/dynamodb/2011-12-05/smoke.json.php create mode 100644 lib/aws/Aws/data/dynamodb/2011-12-05/waiters-1.json.php create mode 100644 lib/aws/Aws/data/dynamodb/2011-12-05/waiters-2.json.php create mode 100644 lib/aws/Aws/data/dynamodb/2012-08-10/api-2.json.php create mode 100644 lib/aws/Aws/data/dynamodb/2012-08-10/paginators-1.json.php create mode 100644 lib/aws/Aws/data/dynamodb/2012-08-10/smoke.json.php create mode 100644 lib/aws/Aws/data/dynamodb/2012-08-10/waiters-1.json.php create mode 100644 lib/aws/Aws/data/dynamodb/2012-08-10/waiters-2.json.php create mode 100644 lib/aws/Aws/data/ec2/2015-10-01/api-2.json.php create mode 100644 lib/aws/Aws/data/ec2/2015-10-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/ec2/2015-10-01/waiters-1.json.php create mode 100644 lib/aws/Aws/data/ec2/2015-10-01/waiters-2.json.php create mode 100644 lib/aws/Aws/data/ec2/2016-04-01/api-2.json.php create mode 100644 lib/aws/Aws/data/ec2/2016-04-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/ec2/2016-04-01/waiters-2.json.php create mode 100644 lib/aws/Aws/data/ec2/2016-09-15/api-2.json.php create mode 100644 lib/aws/Aws/data/ec2/2016-09-15/paginators-1.json.php create mode 100644 lib/aws/Aws/data/ec2/2016-09-15/waiters-1.json.php create mode 100644 lib/aws/Aws/data/ec2/2016-09-15/waiters-2.json.php create mode 100644 lib/aws/Aws/data/ec2/2016-11-15/api-2.json.php create mode 100644 lib/aws/Aws/data/ec2/2016-11-15/paginators-1.json.php create mode 100644 lib/aws/Aws/data/ec2/2016-11-15/smoke.json.php create mode 100644 lib/aws/Aws/data/ec2/2016-11-15/waiters-1.json.php create mode 100644 lib/aws/Aws/data/ec2/2016-11-15/waiters-2.json.php create mode 100644 lib/aws/Aws/data/ecr/2015-09-21/api-2.json.php create mode 100644 lib/aws/Aws/data/ecr/2015-09-21/paginators-1.json.php create mode 100644 lib/aws/Aws/data/ecr/2015-09-21/smoke.json.php create mode 100644 lib/aws/Aws/data/ecs/2014-11-13/api-2.json.php create mode 100644 lib/aws/Aws/data/ecs/2014-11-13/paginators-1.json.php create mode 100644 lib/aws/Aws/data/ecs/2014-11-13/smoke.json.php create mode 100644 lib/aws/Aws/data/ecs/2014-11-13/waiters-2.json.php create mode 100644 lib/aws/Aws/data/eks/2017-11-01/api-2.json.php create mode 100644 lib/aws/Aws/data/eks/2017-11-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/eks/2017-11-01/waiters-2.json.php create mode 100644 lib/aws/Aws/data/elasticache/2015-02-02/api-2.json.php create mode 100644 lib/aws/Aws/data/elasticache/2015-02-02/paginators-1.json.php create mode 100644 lib/aws/Aws/data/elasticache/2015-02-02/smoke.json.php create mode 100644 lib/aws/Aws/data/elasticache/2015-02-02/waiters-2.json.php create mode 100644 lib/aws/Aws/data/elasticbeanstalk/2010-12-01/api-2.json.php create mode 100644 lib/aws/Aws/data/elasticbeanstalk/2010-12-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/elasticbeanstalk/2010-12-01/smoke.json.php create mode 100644 lib/aws/Aws/data/elasticfilesystem/2015-02-01/api-2.json.php create mode 100644 lib/aws/Aws/data/elasticfilesystem/2015-02-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/elasticfilesystem/2015-02-01/smoke.json.php create mode 100644 lib/aws/Aws/data/elasticloadbalancing/2012-06-01/api-2.json.php create mode 100644 lib/aws/Aws/data/elasticloadbalancing/2012-06-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/elasticloadbalancing/2012-06-01/smoke.json.php create mode 100644 lib/aws/Aws/data/elasticloadbalancing/2012-06-01/waiters-2.json.php create mode 100644 lib/aws/Aws/data/elasticloadbalancingv2/2015-12-01/api-2.json.php create mode 100644 lib/aws/Aws/data/elasticloadbalancingv2/2015-12-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/elasticloadbalancingv2/2015-12-01/smoke.json.php create mode 100644 lib/aws/Aws/data/elasticloadbalancingv2/2015-12-01/waiters-2.json.php create mode 100644 lib/aws/Aws/data/elasticmapreduce/2009-03-31/api-2.json.php create mode 100644 lib/aws/Aws/data/elasticmapreduce/2009-03-31/paginators-1.json.php create mode 100644 lib/aws/Aws/data/elasticmapreduce/2009-03-31/smoke.json.php create mode 100644 lib/aws/Aws/data/elasticmapreduce/2009-03-31/waiters-2.json.php create mode 100644 lib/aws/Aws/data/elastictranscoder/2012-09-25/api-2.json.php create mode 100644 lib/aws/Aws/data/elastictranscoder/2012-09-25/paginators-1.json.php create mode 100644 lib/aws/Aws/data/elastictranscoder/2012-09-25/smoke.json.php create mode 100644 lib/aws/Aws/data/elastictranscoder/2012-09-25/waiters-1.json.php create mode 100644 lib/aws/Aws/data/elastictranscoder/2012-09-25/waiters-2.json.php create mode 100644 lib/aws/Aws/data/email/2010-12-01/api-2.json.php create mode 100644 lib/aws/Aws/data/email/2010-12-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/email/2010-12-01/smoke.json.php create mode 100644 lib/aws/Aws/data/email/2010-12-01/waiters-1.json.php create mode 100644 lib/aws/Aws/data/email/2010-12-01/waiters-2.json.php create mode 100644 lib/aws/Aws/data/endpoints.json.php create mode 100644 lib/aws/Aws/data/endpoints_prefix_history.json.php create mode 100644 lib/aws/Aws/data/entitlement.marketplace/2017-01-11/api-2.json.php create mode 100644 lib/aws/Aws/data/entitlement.marketplace/2017-01-11/paginators-1.json.php create mode 100644 lib/aws/Aws/data/es/2015-01-01/api-2.json.php create mode 100644 lib/aws/Aws/data/es/2015-01-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/es/2015-01-01/smoke.json.php create mode 100644 lib/aws/Aws/data/events/2015-10-07/api-2.json.php create mode 100644 lib/aws/Aws/data/events/2015-10-07/paginators-1.json.php create mode 100644 lib/aws/Aws/data/events/2015-10-07/smoke.json.php create mode 100644 lib/aws/Aws/data/firehose/2015-08-04/api-2.json.php create mode 100644 lib/aws/Aws/data/firehose/2015-08-04/paginators-1.json.php create mode 100644 lib/aws/Aws/data/firehose/2015-08-04/smoke.json.php create mode 100644 lib/aws/Aws/data/fms/2018-01-01/api-2.json.php create mode 100644 lib/aws/Aws/data/fms/2018-01-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/fsx/2018-03-01/api-2.json.php create mode 100644 lib/aws/Aws/data/fsx/2018-03-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/gamelift/2015-10-01/api-2.json.php create mode 100644 lib/aws/Aws/data/gamelift/2015-10-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/gamelift/2015-10-01/smoke.json.php create mode 100644 lib/aws/Aws/data/glacier/2012-06-01/api-2.json.php create mode 100644 lib/aws/Aws/data/glacier/2012-06-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/glacier/2012-06-01/smoke.json.php create mode 100644 lib/aws/Aws/data/glacier/2012-06-01/waiters-1.json.php create mode 100644 lib/aws/Aws/data/glacier/2012-06-01/waiters-2.json.php create mode 100644 lib/aws/Aws/data/globalaccelerator/2018-08-08/api-2.json.php create mode 100644 lib/aws/Aws/data/globalaccelerator/2018-08-08/paginators-1.json.php create mode 100644 lib/aws/Aws/data/glue/2017-03-31/api-2.json.php create mode 100644 lib/aws/Aws/data/glue/2017-03-31/paginators-1.json.php create mode 100644 lib/aws/Aws/data/glue/2017-03-31/smoke.json.php create mode 100644 lib/aws/Aws/data/greengrass/2017-06-07/api-2.json.php create mode 100644 lib/aws/Aws/data/guardduty/2017-11-28/api-2.json.php create mode 100644 lib/aws/Aws/data/guardduty/2017-11-28/paginators-1.json.php create mode 100644 lib/aws/Aws/data/health/2016-08-04/api-2.json.php create mode 100644 lib/aws/Aws/data/health/2016-08-04/paginators-1.json.php create mode 100644 lib/aws/Aws/data/iam/2010-05-08/api-2.json.php create mode 100644 lib/aws/Aws/data/iam/2010-05-08/paginators-1.json.php create mode 100644 lib/aws/Aws/data/iam/2010-05-08/smoke.json.php create mode 100644 lib/aws/Aws/data/iam/2010-05-08/waiters-2.json.php create mode 100644 lib/aws/Aws/data/importexport/2010-06-01/api-2.json.php create mode 100644 lib/aws/Aws/data/importexport/2010-06-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/inspector/2016-02-16/api-2.json.php create mode 100644 lib/aws/Aws/data/inspector/2016-02-16/paginators-1.json.php create mode 100644 lib/aws/Aws/data/inspector/2016-02-16/smoke.json.php create mode 100644 lib/aws/Aws/data/iot-jobs-data/2017-09-29/api-2.json.php create mode 100644 lib/aws/Aws/data/iot-jobs-data/2017-09-29/paginators-1.json.php create mode 100644 lib/aws/Aws/data/iot/2015-05-28/api-2.json.php create mode 100644 lib/aws/Aws/data/iot/2015-05-28/paginators-1.json.php create mode 100644 lib/aws/Aws/data/iot/2015-05-28/smoke.json.php create mode 100644 lib/aws/Aws/data/iot1click-devices/2018-05-14/api-2.json.php create mode 100644 lib/aws/Aws/data/iot1click-projects/2018-05-14/api-2.json.php create mode 100644 lib/aws/Aws/data/iot1click-projects/2018-05-14/paginators-1.json.php create mode 100644 lib/aws/Aws/data/iotanalytics/2017-11-27/api-2.json.php create mode 100644 lib/aws/Aws/data/iotanalytics/2017-11-27/paginators-1.json.php create mode 100644 lib/aws/Aws/data/kafka/2018-11-14/api-2.json.php create mode 100644 lib/aws/Aws/data/kafka/2018-11-14/paginators-1.json.php create mode 100644 lib/aws/Aws/data/kinesis-video-archived-media/2017-09-30/api-2.json.php create mode 100644 lib/aws/Aws/data/kinesis-video-archived-media/2017-09-30/paginators-1.json.php create mode 100644 lib/aws/Aws/data/kinesis-video-media/2017-09-30/api-2.json.php create mode 100644 lib/aws/Aws/data/kinesis-video-media/2017-09-30/paginators-1.json.php create mode 100644 lib/aws/Aws/data/kinesis/2013-12-02/api-2.json.php create mode 100644 lib/aws/Aws/data/kinesis/2013-12-02/paginators-1.json.php create mode 100644 lib/aws/Aws/data/kinesis/2013-12-02/smoke.json.php create mode 100644 lib/aws/Aws/data/kinesis/2013-12-02/waiters-2.json.php create mode 100644 lib/aws/Aws/data/kinesisanalytics/2015-08-14/api-2.json.php create mode 100644 lib/aws/Aws/data/kinesisanalytics/2015-08-14/paginators-1.json.php create mode 100644 lib/aws/Aws/data/kinesisanalyticsv2/2018-05-23/api-2.json.php create mode 100644 lib/aws/Aws/data/kinesisanalyticsv2/2018-05-23/paginators-1.json.php create mode 100644 lib/aws/Aws/data/kinesisvideo/2017-09-30/api-2.json.php create mode 100644 lib/aws/Aws/data/kinesisvideo/2017-09-30/paginators-1.json.php create mode 100644 lib/aws/Aws/data/kms/2014-11-01/api-2.json.php create mode 100644 lib/aws/Aws/data/kms/2014-11-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/kms/2014-11-01/smoke.json.php create mode 100644 lib/aws/Aws/data/lambda/2015-03-31/api-2.json.php create mode 100644 lib/aws/Aws/data/lambda/2015-03-31/paginators-1.json.php create mode 100644 lib/aws/Aws/data/lambda/2015-03-31/smoke.json.php create mode 100644 lib/aws/Aws/data/lex-models/2017-04-19/api-2.json.php create mode 100644 lib/aws/Aws/data/lex-models/2017-04-19/paginators-1.json.php create mode 100644 lib/aws/Aws/data/license-manager/2018-08-01/api-2.json.php create mode 100644 lib/aws/Aws/data/license-manager/2018-08-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/lightsail/2016-11-28/api-2.json.php create mode 100644 lib/aws/Aws/data/lightsail/2016-11-28/paginators-1.json.php create mode 100644 lib/aws/Aws/data/lightsail/2016-11-28/smoke.json.php create mode 100644 lib/aws/Aws/data/logs/2014-03-28/api-2.json.php create mode 100644 lib/aws/Aws/data/logs/2014-03-28/paginators-1.json.php create mode 100644 lib/aws/Aws/data/logs/2014-03-28/smoke.json.php create mode 100644 lib/aws/Aws/data/machinelearning/2014-12-12/api-2.json.php create mode 100644 lib/aws/Aws/data/machinelearning/2014-12-12/paginators-1.json.php create mode 100644 lib/aws/Aws/data/machinelearning/2014-12-12/waiters-2.json.php create mode 100644 lib/aws/Aws/data/macie/2017-12-19/api-2.json.php create mode 100644 lib/aws/Aws/data/macie/2017-12-19/paginators-1.json.php create mode 100644 lib/aws/Aws/data/manifest.json.php create mode 100644 lib/aws/Aws/data/marketplacecommerceanalytics/2015-07-01/api-2.json.php create mode 100644 lib/aws/Aws/data/marketplacecommerceanalytics/2015-07-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/mediaconnect/2018-11-14/api-2.json.php create mode 100644 lib/aws/Aws/data/mediaconnect/2018-11-14/paginators-1.json.php create mode 100644 lib/aws/Aws/data/mediaconvert/2017-08-29/api-2.json.php create mode 100644 lib/aws/Aws/data/mediaconvert/2017-08-29/paginators-1.json.php create mode 100644 lib/aws/Aws/data/medialive/2017-10-14/api-2.json.php create mode 100644 lib/aws/Aws/data/medialive/2017-10-14/paginators-1.json.php create mode 100644 lib/aws/Aws/data/mediapackage/2017-10-12/api-2.json.php create mode 100644 lib/aws/Aws/data/mediapackage/2017-10-12/paginators-1.json.php create mode 100644 lib/aws/Aws/data/mediastore-data/2017-09-01/api-2.json.php create mode 100644 lib/aws/Aws/data/mediastore-data/2017-09-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/mediastore/2017-09-01/api-2.json.php create mode 100644 lib/aws/Aws/data/mediastore/2017-09-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/mediatailor/2018-04-23/api-2.json.php create mode 100644 lib/aws/Aws/data/mediatailor/2018-04-23/paginators-1.json.php create mode 100644 lib/aws/Aws/data/metering.marketplace/2016-01-14/api-2.json.php create mode 100644 lib/aws/Aws/data/metering.marketplace/2016-01-14/paginators-1.json.php create mode 100644 lib/aws/Aws/data/mgh/2017-05-31/api-2.json.php create mode 100644 lib/aws/Aws/data/mgh/2017-05-31/paginators-1.json.php create mode 100644 lib/aws/Aws/data/mobile/2017-07-01/api-2.json.php create mode 100644 lib/aws/Aws/data/mobile/2017-07-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/monitoring/2010-08-01/api-2.json.php create mode 100644 lib/aws/Aws/data/monitoring/2010-08-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/monitoring/2010-08-01/smoke.json.php create mode 100644 lib/aws/Aws/data/monitoring/2010-08-01/waiters-2.json.php create mode 100644 lib/aws/Aws/data/mq/2017-11-27/api-2.json.php create mode 100644 lib/aws/Aws/data/mq/2017-11-27/paginators-1.json.php create mode 100644 lib/aws/Aws/data/mturk-requester/2017-01-17/api-2.json.php create mode 100644 lib/aws/Aws/data/mturk-requester/2017-01-17/paginators-1.json.php create mode 100644 lib/aws/Aws/data/mturk-requester/2017-01-17/smoke.json.php create mode 100644 lib/aws/Aws/data/neptune/2014-10-31/api-2.json.php create mode 100644 lib/aws/Aws/data/neptune/2014-10-31/paginators-1.json.php create mode 100644 lib/aws/Aws/data/neptune/2014-10-31/waiters-2.json.php create mode 100644 lib/aws/Aws/data/opsworks/2013-02-18/api-2.json.php create mode 100644 lib/aws/Aws/data/opsworks/2013-02-18/paginators-1.json.php create mode 100644 lib/aws/Aws/data/opsworks/2013-02-18/smoke.json.php create mode 100644 lib/aws/Aws/data/opsworks/2013-02-18/waiters-2.json.php create mode 100644 lib/aws/Aws/data/opsworkscm/2016-11-01/api-2.json.php create mode 100644 lib/aws/Aws/data/opsworkscm/2016-11-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/opsworkscm/2016-11-01/waiters-2.json.php create mode 100644 lib/aws/Aws/data/organizations/2016-11-28/api-2.json.php create mode 100644 lib/aws/Aws/data/organizations/2016-11-28/paginators-1.json.php create mode 100644 lib/aws/Aws/data/pi/2018-02-27/api-2.json.php create mode 100644 lib/aws/Aws/data/pi/2018-02-27/paginators-1.json.php create mode 100644 lib/aws/Aws/data/pinpoint-email/2018-07-26/api-2.json.php create mode 100644 lib/aws/Aws/data/pinpoint-email/2018-07-26/paginators-1.json.php create mode 100644 lib/aws/Aws/data/pinpoint/2016-12-01/api-2.json.php create mode 100644 lib/aws/Aws/data/polly/2016-06-10/api-2.json.php create mode 100644 lib/aws/Aws/data/polly/2016-06-10/paginators-1.json.php create mode 100644 lib/aws/Aws/data/polly/2016-06-10/smoke.json.php create mode 100644 lib/aws/Aws/data/pricing/2017-10-15/api-2.json.php create mode 100644 lib/aws/Aws/data/pricing/2017-10-15/paginators-1.json.php create mode 100644 lib/aws/Aws/data/quicksight/2018-04-01/api-2.json.php create mode 100644 lib/aws/Aws/data/quicksight/2018-04-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/ram/2018-01-04/api-2.json.php create mode 100644 lib/aws/Aws/data/ram/2018-01-04/paginators-1.json.php create mode 100644 lib/aws/Aws/data/rds-data/2018-08-01/api-2.json.php create mode 100644 lib/aws/Aws/data/rds-data/2018-08-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/rds/2014-09-01/api-2.json.php create mode 100644 lib/aws/Aws/data/rds/2014-09-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/rds/2014-09-01/smoke.json.php create mode 100644 lib/aws/Aws/data/rds/2014-10-31/api-2.json.php create mode 100644 lib/aws/Aws/data/rds/2014-10-31/paginators-1.json.php create mode 100644 lib/aws/Aws/data/rds/2014-10-31/smoke.json.php create mode 100644 lib/aws/Aws/data/rds/2014-10-31/waiters-1.json.php create mode 100644 lib/aws/Aws/data/rds/2014-10-31/waiters-2.json.php create mode 100644 lib/aws/Aws/data/redshift/2012-12-01/api-2.json.php create mode 100644 lib/aws/Aws/data/redshift/2012-12-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/redshift/2012-12-01/smoke.json.php create mode 100644 lib/aws/Aws/data/redshift/2012-12-01/waiters-1.json.php create mode 100644 lib/aws/Aws/data/redshift/2012-12-01/waiters-2.json.php create mode 100644 lib/aws/Aws/data/rekognition/2016-06-27/api-2.json.php create mode 100644 lib/aws/Aws/data/rekognition/2016-06-27/paginators-1.json.php create mode 100644 lib/aws/Aws/data/rekognition/2016-06-27/smoke.json.php create mode 100644 lib/aws/Aws/data/resource-groups/2017-11-27/api-2.json.php create mode 100644 lib/aws/Aws/data/resource-groups/2017-11-27/paginators-1.json.php create mode 100644 lib/aws/Aws/data/resourcegroupstaggingapi/2017-01-26/api-2.json.php create mode 100644 lib/aws/Aws/data/resourcegroupstaggingapi/2017-01-26/paginators-1.json.php create mode 100644 lib/aws/Aws/data/robomaker/2018-06-29/api-2.json.php create mode 100644 lib/aws/Aws/data/robomaker/2018-06-29/paginators-1.json.php create mode 100644 lib/aws/Aws/data/route53/2013-04-01/api-2.json.php create mode 100644 lib/aws/Aws/data/route53/2013-04-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/route53/2013-04-01/smoke.json.php create mode 100644 lib/aws/Aws/data/route53/2013-04-01/waiters-2.json.php create mode 100644 lib/aws/Aws/data/route53domains/2014-05-15/api-2.json.php create mode 100644 lib/aws/Aws/data/route53domains/2014-05-15/paginators-1.json.php create mode 100644 lib/aws/Aws/data/route53resolver/2018-04-01/api-2.json.php create mode 100644 lib/aws/Aws/data/route53resolver/2018-04-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/route53resolver/2018-04-01/smoke.json.php create mode 100644 lib/aws/Aws/data/runtime.lex/2016-11-28/api-2.json.php create mode 100644 lib/aws/Aws/data/runtime.lex/2016-11-28/paginators-1.json.php create mode 100644 lib/aws/Aws/data/runtime.sagemaker/2017-05-13/api-2.json.php create mode 100644 lib/aws/Aws/data/runtime.sagemaker/2017-05-13/paginators-1.json.php create mode 100644 lib/aws/Aws/data/s3/2006-03-01/api-2.json.php create mode 100644 lib/aws/Aws/data/s3/2006-03-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/s3/2006-03-01/smoke.json.php create mode 100644 lib/aws/Aws/data/s3/2006-03-01/waiters-1.json.php create mode 100644 lib/aws/Aws/data/s3/2006-03-01/waiters-2.json.php create mode 100644 lib/aws/Aws/data/s3control/2018-08-20/api-2.json.php create mode 100644 lib/aws/Aws/data/s3control/2018-08-20/paginators-1.json.php create mode 100644 lib/aws/Aws/data/sagemaker/2017-07-24/api-2.json.php create mode 100644 lib/aws/Aws/data/sagemaker/2017-07-24/paginators-1.json.php create mode 100644 lib/aws/Aws/data/sagemaker/2017-07-24/waiters-2.json.php create mode 100644 lib/aws/Aws/data/secretsmanager/2017-10-17/api-2.json.php create mode 100644 lib/aws/Aws/data/secretsmanager/2017-10-17/paginators-1.json.php create mode 100644 lib/aws/Aws/data/secretsmanager/2017-10-17/smoke.json.php create mode 100644 lib/aws/Aws/data/securityhub/2018-10-26/api-2.json.php create mode 100644 lib/aws/Aws/data/securityhub/2018-10-26/paginators-1.json.php create mode 100644 lib/aws/Aws/data/serverlessrepo/2017-09-08/api-2.json.php create mode 100644 lib/aws/Aws/data/serverlessrepo/2017-09-08/paginators-1.json.php create mode 100644 lib/aws/Aws/data/servicecatalog/2015-12-10/api-2.json.php create mode 100644 lib/aws/Aws/data/servicecatalog/2015-12-10/paginators-1.json.php create mode 100644 lib/aws/Aws/data/servicecatalog/2015-12-10/smoke.json.php create mode 100644 lib/aws/Aws/data/servicediscovery/2017-03-14/api-2.json.php create mode 100644 lib/aws/Aws/data/servicediscovery/2017-03-14/paginators-1.json.php create mode 100644 lib/aws/Aws/data/shield/2016-06-02/api-2.json.php create mode 100644 lib/aws/Aws/data/shield/2016-06-02/paginators-1.json.php create mode 100644 lib/aws/Aws/data/shield/2016-06-02/smoke.json.php create mode 100644 lib/aws/Aws/data/signer/2017-08-25/api-2.json.php create mode 100644 lib/aws/Aws/data/signer/2017-08-25/paginators-1.json.php create mode 100644 lib/aws/Aws/data/signer/2017-08-25/waiters-2.json.php create mode 100644 lib/aws/Aws/data/sms-voice/2018-09-05/api-2.json.php create mode 100644 lib/aws/Aws/data/sms/2016-10-24/api-2.json.php create mode 100644 lib/aws/Aws/data/sms/2016-10-24/paginators-1.json.php create mode 100644 lib/aws/Aws/data/sms/2016-10-24/smoke.json.php create mode 100644 lib/aws/Aws/data/snowball/2016-06-30/api-2.json.php create mode 100644 lib/aws/Aws/data/snowball/2016-06-30/paginators-1.json.php create mode 100644 lib/aws/Aws/data/snowball/2016-06-30/smoke.json.php create mode 100644 lib/aws/Aws/data/sns/2010-03-31/api-2.json.php create mode 100644 lib/aws/Aws/data/sns/2010-03-31/paginators-1.json.php create mode 100644 lib/aws/Aws/data/sns/2010-03-31/smoke.json.php create mode 100644 lib/aws/Aws/data/sqs/2012-11-05/api-2.json.php create mode 100644 lib/aws/Aws/data/sqs/2012-11-05/paginators-1.json.php create mode 100644 lib/aws/Aws/data/sqs/2012-11-05/smoke.json.php create mode 100644 lib/aws/Aws/data/sqs/2012-11-05/waiters-2.json.php create mode 100644 lib/aws/Aws/data/ssm/2014-11-06/api-2.json.php create mode 100644 lib/aws/Aws/data/ssm/2014-11-06/paginators-1.json.php create mode 100644 lib/aws/Aws/data/ssm/2014-11-06/smoke.json.php create mode 100644 lib/aws/Aws/data/states/2016-11-23/api-2.json.php create mode 100644 lib/aws/Aws/data/states/2016-11-23/paginators-1.json.php create mode 100644 lib/aws/Aws/data/states/2016-11-23/smoke.json.php create mode 100644 lib/aws/Aws/data/storagegateway/2013-06-30/api-2.json.php create mode 100644 lib/aws/Aws/data/storagegateway/2013-06-30/paginators-1.json.php create mode 100644 lib/aws/Aws/data/streams.dynamodb/2012-08-10/api-2.json.php create mode 100644 lib/aws/Aws/data/streams.dynamodb/2012-08-10/paginators-1.json.php create mode 100644 lib/aws/Aws/data/sts/2011-06-15/api-2.json.php create mode 100644 lib/aws/Aws/data/sts/2011-06-15/paginators-1.json.php create mode 100644 lib/aws/Aws/data/sts/2011-06-15/smoke.json.php create mode 100644 lib/aws/Aws/data/support/2013-04-15/api-2.json.php create mode 100644 lib/aws/Aws/data/support/2013-04-15/paginators-1.json.php create mode 100644 lib/aws/Aws/data/swf/2012-01-25/api-2.json.php create mode 100644 lib/aws/Aws/data/swf/2012-01-25/paginators-1.json.php create mode 100644 lib/aws/Aws/data/textract/2018-06-27/api-2.json.php create mode 100644 lib/aws/Aws/data/textract/2018-06-27/paginators-1.json.php create mode 100644 lib/aws/Aws/data/transcribe/2017-10-26/api-2.json.php create mode 100644 lib/aws/Aws/data/transcribe/2017-10-26/paginators-1.json.php create mode 100644 lib/aws/Aws/data/transfer/2018-11-05/api-2.json.php create mode 100644 lib/aws/Aws/data/transfer/2018-11-05/paginators-1.json.php create mode 100644 lib/aws/Aws/data/translate/2017-07-01/api-2.json.php create mode 100644 lib/aws/Aws/data/translate/2017-07-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/waf-regional/2016-11-28/api-2.json.php create mode 100644 lib/aws/Aws/data/waf-regional/2016-11-28/paginators-1.json.php create mode 100644 lib/aws/Aws/data/waf-regional/2016-11-28/smoke.json.php create mode 100644 lib/aws/Aws/data/waf/2015-08-24/api-2.json.php create mode 100644 lib/aws/Aws/data/waf/2015-08-24/paginators-1.json.php create mode 100644 lib/aws/Aws/data/waf/2015-08-24/smoke.json.php create mode 100644 lib/aws/Aws/data/workdocs/2016-05-01/api-2.json.php create mode 100644 lib/aws/Aws/data/workdocs/2016-05-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/worklink/2018-09-25/api-2.json.php create mode 100644 lib/aws/Aws/data/worklink/2018-09-25/paginators-1.json.php create mode 100644 lib/aws/Aws/data/workmail/2017-10-01/api-2.json.php create mode 100644 lib/aws/Aws/data/workmail/2017-10-01/paginators-1.json.php create mode 100644 lib/aws/Aws/data/workspaces/2015-04-08/api-2.json.php create mode 100644 lib/aws/Aws/data/workspaces/2015-04-08/paginators-1.json.php create mode 100644 lib/aws/Aws/data/workspaces/2015-04-08/smoke.json.php create mode 100644 lib/aws/Aws/data/xray/2016-04-12/api-2.json.php create mode 100644 lib/aws/Aws/data/xray/2016-04-12/paginators-1.json.php create mode 100644 lib/aws/Aws/functions.php create mode 100644 lib/aws/Aws/signer/Exception/signerException.php create mode 100644 lib/aws/Aws/signer/signerClient.php create mode 100644 lib/aws/CHANGELOG.md create mode 100644 lib/aws/GuzzleHttp/Client.php create mode 100644 lib/aws/GuzzleHttp/ClientInterface.php create mode 100644 lib/aws/GuzzleHttp/Cookie/CookieJar.php create mode 100644 lib/aws/GuzzleHttp/Cookie/CookieJarInterface.php create mode 100644 lib/aws/GuzzleHttp/Cookie/FileCookieJar.php create mode 100644 lib/aws/GuzzleHttp/Cookie/SessionCookieJar.php create mode 100644 lib/aws/GuzzleHttp/Cookie/SetCookie.php create mode 100644 lib/aws/GuzzleHttp/Exception/BadResponseException.php create mode 100644 lib/aws/GuzzleHttp/Exception/ClientException.php create mode 100644 lib/aws/GuzzleHttp/Exception/ConnectException.php create mode 100644 lib/aws/GuzzleHttp/Exception/GuzzleException.php create mode 100644 lib/aws/GuzzleHttp/Exception/RequestException.php create mode 100644 lib/aws/GuzzleHttp/Exception/SeekException.php create mode 100644 lib/aws/GuzzleHttp/Exception/ServerException.php create mode 100644 lib/aws/GuzzleHttp/Exception/TooManyRedirectsException.php create mode 100644 lib/aws/GuzzleHttp/Exception/TransferException.php create mode 100644 lib/aws/GuzzleHttp/Handler/CurlFactory.php create mode 100644 lib/aws/GuzzleHttp/Handler/CurlFactoryInterface.php create mode 100644 lib/aws/GuzzleHttp/Handler/CurlHandler.php create mode 100644 lib/aws/GuzzleHttp/Handler/CurlMultiHandler.php create mode 100644 lib/aws/GuzzleHttp/Handler/EasyHandle.php create mode 100644 lib/aws/GuzzleHttp/Handler/MockHandler.php create mode 100644 lib/aws/GuzzleHttp/Handler/Proxy.php create mode 100644 lib/aws/GuzzleHttp/Handler/StreamHandler.php create mode 100644 lib/aws/GuzzleHttp/HandlerStack.php create mode 100644 lib/aws/GuzzleHttp/MessageFormatter.php create mode 100644 lib/aws/GuzzleHttp/Middleware.php create mode 100644 lib/aws/GuzzleHttp/Pool.php create mode 100644 lib/aws/GuzzleHttp/PrepareBodyMiddleware.php create mode 100644 lib/aws/GuzzleHttp/Promise/AggregateException.php create mode 100644 lib/aws/GuzzleHttp/Promise/CancellationException.php create mode 100644 lib/aws/GuzzleHttp/Promise/Coroutine.php create mode 100644 lib/aws/GuzzleHttp/Promise/EachPromise.php create mode 100644 lib/aws/GuzzleHttp/Promise/FulfilledPromise.php create mode 100644 lib/aws/GuzzleHttp/Promise/Promise.php create mode 100644 lib/aws/GuzzleHttp/Promise/PromiseInterface.php create mode 100644 lib/aws/GuzzleHttp/Promise/PromisorInterface.php create mode 100644 lib/aws/GuzzleHttp/Promise/RejectedPromise.php create mode 100644 lib/aws/GuzzleHttp/Promise/RejectionException.php create mode 100644 lib/aws/GuzzleHttp/Promise/TaskQueue.php create mode 100644 lib/aws/GuzzleHttp/Promise/TaskQueueInterface.php create mode 100644 lib/aws/GuzzleHttp/Promise/functions.php create mode 100644 lib/aws/GuzzleHttp/Promise/functions_include.php create mode 100644 lib/aws/GuzzleHttp/Psr7/AppendStream.php create mode 100644 lib/aws/GuzzleHttp/Psr7/BufferStream.php create mode 100644 lib/aws/GuzzleHttp/Psr7/CachingStream.php create mode 100644 lib/aws/GuzzleHttp/Psr7/DroppingStream.php create mode 100644 lib/aws/GuzzleHttp/Psr7/FnStream.php create mode 100644 lib/aws/GuzzleHttp/Psr7/InflateStream.php create mode 100644 lib/aws/GuzzleHttp/Psr7/LazyOpenStream.php create mode 100644 lib/aws/GuzzleHttp/Psr7/LimitStream.php create mode 100644 lib/aws/GuzzleHttp/Psr7/MessageTrait.php create mode 100644 lib/aws/GuzzleHttp/Psr7/MultipartStream.php create mode 100644 lib/aws/GuzzleHttp/Psr7/NoSeekStream.php create mode 100644 lib/aws/GuzzleHttp/Psr7/PumpStream.php create mode 100644 lib/aws/GuzzleHttp/Psr7/Request.php create mode 100644 lib/aws/GuzzleHttp/Psr7/Response.php create mode 100644 lib/aws/GuzzleHttp/Psr7/Rfc7230.php create mode 100644 lib/aws/GuzzleHttp/Psr7/ServerRequest.php create mode 100644 lib/aws/GuzzleHttp/Psr7/Stream.php create mode 100644 lib/aws/GuzzleHttp/Psr7/StreamDecoratorTrait.php create mode 100644 lib/aws/GuzzleHttp/Psr7/StreamWrapper.php create mode 100644 lib/aws/GuzzleHttp/Psr7/UploadedFile.php create mode 100644 lib/aws/GuzzleHttp/Psr7/Uri.php create mode 100644 lib/aws/GuzzleHttp/Psr7/UriNormalizer.php create mode 100644 lib/aws/GuzzleHttp/Psr7/UriResolver.php create mode 100644 lib/aws/GuzzleHttp/Psr7/functions.php create mode 100644 lib/aws/GuzzleHttp/Psr7/functions_include.php create mode 100644 lib/aws/GuzzleHttp/RedirectMiddleware.php create mode 100644 lib/aws/GuzzleHttp/RequestOptions.php create mode 100644 lib/aws/GuzzleHttp/RetryMiddleware.php create mode 100644 lib/aws/GuzzleHttp/TransferStats.php create mode 100644 lib/aws/GuzzleHttp/UriTemplate.php create mode 100644 lib/aws/GuzzleHttp/functions.php create mode 100644 lib/aws/GuzzleHttp/functions_include.php create mode 100644 lib/aws/JmesPath/AstRuntime.php create mode 100644 lib/aws/JmesPath/CompilerRuntime.php create mode 100644 lib/aws/JmesPath/DebugRuntime.php create mode 100644 lib/aws/JmesPath/Env.php create mode 100644 lib/aws/JmesPath/FnDispatcher.php create mode 100644 lib/aws/JmesPath/JmesPath.php create mode 100644 lib/aws/JmesPath/Lexer.php create mode 100644 lib/aws/JmesPath/Parser.php create mode 100644 lib/aws/JmesPath/SyntaxErrorException.php create mode 100644 lib/aws/JmesPath/TreeCompiler.php create mode 100644 lib/aws/JmesPath/TreeInterpreter.php create mode 100644 lib/aws/JmesPath/Utils.php create mode 100644 lib/aws/LICENSE.md create mode 100644 lib/aws/NOTICE.md create mode 100644 lib/aws/Psr/Http/Message/MessageInterface.php create mode 100644 lib/aws/Psr/Http/Message/RequestInterface.php create mode 100644 lib/aws/Psr/Http/Message/ResponseInterface.php create mode 100644 lib/aws/Psr/Http/Message/ServerRequestInterface.php create mode 100644 lib/aws/Psr/Http/Message/StreamInterface.php create mode 100644 lib/aws/Psr/Http/Message/UploadedFileInterface.php create mode 100644 lib/aws/Psr/Http/Message/UriInterface.php create mode 100644 lib/aws/README.md create mode 100644 lib/aws/aws-autoloader.php create mode 100644 lib/jwt.php create mode 100644 lib/r4fb.php create mode 100644 lib/sns.php create mode 100644 logout.php create mode 100644 manager.php create mode 100755 simplesamlphp-1.16.1.tar.gz create mode 100644 style/arbitro.css create mode 100644 style/insre.css create mode 100644 style/manager.css create mode 100644 style/tables.css create mode 100644 tabelle.php create mode 100644 tabellone.php diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100755 index 0000000..d16eec4 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,118 @@ +# Contribution guidelines +**SimpleSAMLphp welcomes all contributions**. It is impossible to make a product like this without the efforts of many people, so please don't be shy and share your help with us. Even the tiniest contribution can make a difference! + +These guidelines briefly explain how to contribute to SimpleSAMLphp effectively and consistently, making sure to keep high quality standards and making it easier for you to contribute. + + + +## Team members +Currently, the core team members are: + +* Jaime PĆ©rez Crespo, *main developer and release manager*, UNINETT +* Olav Morken, *main developer*, UNINETT +* Andreas ƅkre Solberg, *architect and original developer*, UNINETT +* Hanne Moa, *developer*, UNINETT + +We have been lucky enough to have so many people help us through the years. SimpleSAMLphp wouldn't have reached so far without them. We want to thank them from here, but unfortunately they are so many it is nearly impossible to mention all of them. [Here is a Github page that summarizes everyone's contributions](https://github.com/simplesamlphp/simplesamlphp/graphs/contributors?from=2007-09-09&to=2015-09-06&type=c). + +***Big thanks to you all!*** + +## First things first +Before embarking yourself in a contribution, please make sure you are familiar with the way SimpleSAMLphp is written, the way it works, and what is required or not. + +* Make sure to read [the documentation](https://simplesamlphp.org/docs/stable/). If you use the search engine in the website, please verify that you are reading the latest stable version. If you want to make a change, check [the development branch of the documentation](https://simplesamlphp.org/docs/development/). +* If you have a question about **using SimpleSAMLphp**, please use [the mailing list](http://groups.google.com/group/simplesamlphp). +* If you have a question about **developing SimpleSAMLphp**, please ask in the [development mailing list](http://groups.google.com/group/simplesamlphp-dev). +* If you think you have discovered a bug, please check the [issue tracker](https://github.com/simplesamlphp/simplesamlphp/issues) and the [pull requests](https://github.com/simplesamlphp/simplesamlphp/pulls) to verify it hasn't been reported already. + +## Contributing code +New features are always welcome, provided they will be useful to someone apart from yourself. Please take a look at the [list of issues](https://github.com/simplesamlphp/simplesamlphp/issues) to see what people are asking for. Our [roadmap](https://simplesamlphp.org/releaseplan) might also be a good place to start if you do not know exactly how you can contribute. + +When submitting a pull request, please make sure to account for: + +### Coding standards +* Respect the coding standards. We try to comply with PHP's [PSR-2](http://www.php-fig.org/psr/psr-2/). Pay special attention to the rules below: + * Lines should not be longer than 80 characters. + * Use **4 spaces** instead of tabs. + * Keep the keywords in **lowercase**, including `true`, `false` and `null`. + * Make sure your classes work with *autoloading*. + * Never include a trailing `?>` in your files. + * The first line of every file must be ` +. + +*/ + +/*##########NOTE################ + + +*/ +############FINE NOTE########### +/** + * Description of r4fbApi + * + * @author corradomulas for Run PoliTo - Corso Duca degli Abruzzi 24, 10129 Torino (TO) + */ + +require '/sda1/www/test.mulas.me/run4football/lib/r4fb.php'; +require '/sda1/www/idp.runpolito.ml/vendor/autoload.php'; +//require '/sda1/www/test.mulas.me/run4football/lib/sns.php'; +require_once '/sda1/www/idp.runpolito.ml/lib/_autoload.php'; +//session_start(); +$auth = new \SimpleSAML\Auth\Simple('runpolito-sp'); +SimpleSAML_Session::getSessionFromRequest()->cleanup(); + +if (!$auth->isAuthenticated()) +{ + // SimpleSAML_Session::getSessionFromRequest()->cleanup(); + //401 e tu muto + http_response_code(401); +} +else +{ + + $guid = $auth->getAttributes()['guid'][0]; + +//inizio partita: +//inserire funzione recupero matchid da DB utilizzando id utente da Service Provider e DB +switch ($_GET['op']) +{ + case "start": + if(isset($_GET['mid'])) + { + if(!r4fb::startMatch($_GET['mid'], $guid)) http_response_code(500); + } + else + { + echo "
Parametri mancanti.
"; + http_response_code(400); + } + break; + case "instor": + //r4fb::insTorneo($tsinizio,$org,$loc,$man); + break; + case "insarb": + + break; + case "insamm": + if(isset($_GET['plid']) && isset($_GET['mid']) && isset($_GET['ta'])) + { + r4fb::insAmm($_GET['plid'],$_GET['mid'],$_GET['ta'], $guid); + } + else + { + echo "
Parametri mancanti.
"; + } + break; + case "insq": + + break; + case "inspl": + + break; + case "insma": + + break; + case "randma": + if(isset($_GET['mid']) && isset($_GET['uid'])) + { + r4fb::randStart($_GET['mid'], $_GET['uid']); + } + else + { + echo "
Parametri mancanti.
"; + } + break; + case "insgl": + if(isset($_GET['plid']) && isset($_GET['mid'])) + { + r4fb::insGoal($_GET['plid'], $_GET['mid'], $guid); + } + else + { + echo "
Parametri mancanti.
"; + } + break; + case "insfa": + if(isset($_GET['sid'])) + { + r4fb::insFallo($_GET['sid'], $guid); + } + else + { + echo "
Parametri mancanti.
"; + } + break; + case "getfa": + if(isset($_GET['sid'])) + { + r4fb::getFalli($_GET['sid']); + } + else + { + echo "
Parametri mancanti.
"; + } + break; + case "stop": + r4fb::stopMatch(r4fb::curMatch($guid), $guid); + break; + case "logout": + $auth->logout(); + break; + case "genguid": + echo r4fb::guidv4(); + break; + case "csms": + // snsrun::sendSMS($_GET['num'], $_GET['msg']); + break; + case "uniqid": + echo str_pad(mt_rand(0, 9999), 4, '0', STR_PAD_LEFT); + break; + case "randstr": + echo bin2hex(openssl_random_pseudo_bytes(4)); + break; + case "updpt": + echo r4fb::getPoints($_GET['mid'],$_GET['sn']); + break; + case "updfl": + echo r4fb::getFalli($_GET['sid']); + break; + case "getpls": + $pls = r4fb::fetchPlayers($squadra); + + $output = array( + 'status' => 'ok', + 'content' => $pls, + ); + +print_r(json_decode(json_encode($output))); + break; + case "opvt": + if(!r4fb::toggleVote($_GET['trn'],1)) http_response_code(500); + break; + case "clvt": + if(!r4fb::toggleVote($_GET['trn'],2)) http_response_code(500); + break; + + case "rcmsg": + + $tipo = $_GET['tipo']; + $msgs = r4fb::TTrcvdMsgs($_GET['uid'], $tipo); + //0 tutti i messaggi + //1 da leggere + //2 letti + switch($tipo) + { + case 0: + $cat = "(tutti)"; + case 1: + $cat = "(non letti)"; + break; + case 2: + $cat = "(letti)"; + break; + } + $max = count($msgs); + echo " + + + + + + + + + + + + + + + + + + + + "; + + for($j=0; $j<$max; $j++) +// if($classf[$j]['pt_gir'] != 0) + // { + echo " + + + + + + "; + // } + echo " + + + + + + + + + + +
Lista messaggi ".$cat."
InviatoMittenteOggettoUrgenteLeggi
".$msgs[$j]['ts_sent']."".$msgs[$j]['sender']."".$msgs[$j]['subject']."".$msgs[$j]['prio']."Leggi
"; + break; + default: + //echo "
puppa
"; + http_response_code(408); + break; +} + +} + +?> diff --git a/ajax/v1/ajaxpb.php b/ajax/v1/ajaxpb.php new file mode 100644 index 0000000..b43f742 --- /dev/null +++ b/ajax/v1/ajaxpb.php @@ -0,0 +1,29 @@ + 'ok', + 'content' => $pls, + ); + +print_r(json_encode($pls)); + //print_r(json_decode(json_encode($pls))); + break; + default: + //echo "
puppa
"; + http_response_code(408); + break; + +} diff --git a/arbitro.php b/arbitro.php new file mode 100644 index 0000000..eaca45d --- /dev/null +++ b/arbitro.php @@ -0,0 +1,762 @@ + + +isAuthenticated()) { + SimpleSAML_Session::getSessionFromRequest()->cleanup(); + // Show login link. + print('Login'); +}*/ + +//Auth livello 1: +$auth->requireAuth(); +SimpleSAML_Session::getSessionFromRequest()->cleanup(); + +//print_r($auth->getAttributes()); + +$guid = $auth->getAttributes()['guid'][0]; +//print_r(r4fb::fetchUsers($guid)); +$nome = r4fb::fetchUsers($guid)[0]['nome']; +$cognome = r4fb::fetchUsers($guid)[0]['cognome']; +$matr = r4fb::fetchUsers($guid)[0]['matr']; +//Auth livello 2: +$tipo = trim(r4fb::fetchUsers($guid)[0]['tipo']); +//print $tipo; +if($tipo != 1 && $tipo != 3) +{ + $auth->logout(); + header("Location: index.php?error=Privilegi insufficienti."); + die("su cunnu e tzia rua bagassa"); +} + + +?> + + + + + + + + + + + + + + + + + +
+
+
+

Attendere aggiornamento prima di ripetere operazione

+ Falli 0  0-0  0 +  Falli +
+ + +
+
    + Array + ( + [id] => 31A97136-B893-4612-8E45-5DC9957302A3 + [t_prog] => 10 + [t_start] => + [t_stop] => 0 + [s1] => merda1s1 + [s2] => merda1s2 + [pt_s1] => 0 + [pt_s2] => 0 + [pt] => 0 + [falli] => 0 + [arb] => bastard1 + [torneo] => 0D3E9767-EDA6-447C-B925-145CDA2D75D1 + ) + + [1] => Array + ( + [id] => FCED463D-59A8-4D58-8D6B-BE37CCAF3593 + [t_prog] => 10 + [t_start] => + [t_stop] => 0 + [s1] => merda2s1 + [s2] => merda2s2 + [pt_s1] => 0 + [pt_s2] => 0 + [pt] => 0 + [falli] => 0 + [arb] => bastard2 + [torneo] => 0D3E9767-EDA6-447C-B925-145CDA2D75D1 + ) + +) + * + */ + //echo r4fb::curMatch($guid); + $partite = r4fb::fetchPartite($torneo,$guid); + //echo '
    '; print_r($partite); echo '
    '; + $max = sizeof($partite); //limitare res a prime 5 non disputate + for($i = 0; $i < $max;$i++) + { + $marray = $partite[$i]; + //servono id e ts_prog: il punteggio viene aggiornato dinamicamente via AJAX + + $id = $marray['id']; + $t_prog = $marray['t_prog']; + //0-0 + //print pulsante di start con id, converti ts_prog in hh:mm, print campi risultato senza risultato (0 - 0) + echo '
  • '.date('H:i', $t_prog).'' + .'
  • '; + } + + ?> +
+ + +
+ '; print_r($players); echo ''; + $max = sizeof($players); + // echo '0-0'; + echo "
    Squadra 1"; + for($i = 0; $i < $max;$i++) + { + $parray = $players[$i]; + + $id = $parray['id']; + + if($parray['isActive']) + { + //print pulsante di start con id, converti ts_prog in hh:mm, print campi risultato senza risultato (0 - 0) + echo '
  • '.'
  • '; + } + } + echo '
  • '."
"; + + + $players = r4fb::fetchPlayers($s2); + //echo '
'; print_r($players); echo '
'; + $max = sizeof($players); + echo "
    Squadra 2"; + for($i = 0; $i < $max;$i++) + { + $parray = $players[$i]; + + $id = $parray['id']; + + + //print pulsante di start con id, converti ts_prog in hh:mm, print campi risultato senza risultato (0 - 0) + if($parray['isActive']) + { + echo '
  • '.'
  • '; + } + } + echo '
  • '."
"; + + + $players = r4fb::fetchPlayers($s1); + //echo '
'; print_r($players); echo '
'; + $max = sizeof($players); + echo "
    Squadra 1"; + for($i = 0; $i < $max;$i++) + { + $parray = $players[$i]; + + $id = $parray['id']; + + + //print pulsante di start con id, converti ts_prog in hh:mm, print campi risultato senza risultato (0 - 0) + if($parray['isActive']) + { + echo '
  • ' + . '' + . '
  • '; + } + } + echo "
"; + + $players = r4fb::fetchPlayers($s2); + //echo '
'; print_r($players); echo '
'; + $max = sizeof($players); + echo "
    Squadra 2"; + for($i = 0; $i < $max;$i++) + { + $parray = $players[$i]; + + $id = $parray['id']; + + + //print pulsante di start con id, converti ts_prog in hh:mm, print campi risultato senza risultato (0 - 0) + if($parray['isActive']) + { + echo '
  • ' + . '' + . '
  • '; + } + } + echo "
"; + ?> +
+ + + +
    + +
+ + + + + + +
+ +
Richiesta assistenza/soccorso
+ + + +
+
Utente
+
    +
  • +
  • +
  • +
+
+ +
Inizio/termine partita
+ +
+
+
+
    Squadra 1
  • "; + + $players = r4fb::fetchPlayers($s1); + //echo '
    '; print_r($players); echo '
    '; + $max = sizeof($players); + for($i = 0; $i < $max;$i++) + { + $parray = $players[$i]; + + $id = $parray['id']; + + + //print pulsante di start con id, converti ts_prog in hh:mm, print campi risultato senza risultato (0 - 0) + echo ''; + + } + echo "
  • "; + //echo '
  • '."
"; + + + $players = r4fb::fetchPlayers($s2); + //echo '
'; print_r($players); echo '
'; + $max = sizeof($players); + // echo "
"; + echo "
    Squadra 2
  • "; + for($i = 0; $i < $max;$i++) + { + $parray = $players[$i]; + + $id = $parray['id']; + + + //print pulsante di start con id, converti ts_prog in hh:mm, print campi risultato senza risultato (0 - 0) + + echo ''; + + } + echo '
  • '."
"; + + if(isset($_POST['selpl'])) + { + r4fb::togglePls($_POST['abpl1'],$s1,$s2); + print_r(count($_POST['abpl1'])); echo "
"; + //print_r($_POST['abpl2']); + } + ?> +
+
+ + +
+ + + + + + + diff --git a/auth.php b/auth.php new file mode 100644 index 0000000..64e67e5 --- /dev/null +++ b/auth.php @@ -0,0 +1,32 @@ +. + +*/ +/** + * Description of auth + * + * @author corradomulas for Run PoliTo - Corso Duca degli Abruzzi 24, 10129 Torino (TO) + */ diff --git a/giocatore.php b/giocatore.php new file mode 100644 index 0000000..7a01a67 --- /dev/null +++ b/giocatore.php @@ -0,0 +1,90 @@ + + + + + + + + + . + +*/ +/** + * Description of giocatore + * + * @author corradomulas for Run PoliTo - Corso Duca degli Abruzzi 24, 10129 Torino (TO) + */ +// put your code here + + //MAIN: + + +require '/sda1/www/idp.runpolito.ml/vendor/autoload.php'; +require_once '/sda1/www/idp.runpolito.ml/lib/_autoload.php'; +require 'lib/r4fb.php'; +//require 'lib/sns.php'; +//session_start(); +$auth = new \SimpleSAML\Auth\Simple('runpolito-sp'); + +/*if (!$auth->isAuthenticated()) { + SimpleSAML_Session::getSessionFromRequest()->cleanup(); + // Show login link. + print('Login'); +}*/ + +//Auth livello 1: +$auth->requireAuth(); +SimpleSAML_Session::getSessionFromRequest()->cleanup(); + +//print_r($auth->getAttributes()); + +$guid = $auth->getAttributes()['guid'][0]; +//print_r(r4fb::fetchUsers($guid)); +$nome = r4fb::fetchUsers($guid)[0]['nome']; +$cognome = r4fb::fetchUsers($guid)[0]['cognome']; +$matr = r4fb::fetchUsers($guid)[0]['matr']; +//Auth livello 2: +$tipo = trim(r4fb::fetchUsers($guid)[0]['tipo']); +//print $tipo; +if($tipo != 1 && $tipo != 4) +{ + $auth->logout(); + header("Location: index.php?error=Privilegi insufficienti."); + die("su cunnu e tzia rua bagassa"); +} +else +{ + echo "Ciao merda" + . "
" + . "" + . "
"; +} + if(isset($_POST['logout'])) + { + $auth->logout(); + } + ?> + + diff --git a/index.php b/index.php new file mode 100644 index 0000000..147c8c4 --- /dev/null +++ b/index.php @@ -0,0 +1,45 @@ + + + + + + + + + . + +*/ +/** + * Description of index + * + * @author corradomulas for Run PoliTo - Corso Duca degli Abruzzi 24, 10129 Torino (TO) + */ +// put your code here + + //MAIN: + + ?> + + diff --git a/js/jscolor.js b/js/jscolor.js new file mode 100644 index 0000000..5c77177 --- /dev/null +++ b/js/jscolor.js @@ -0,0 +1,1855 @@ +/** + * jscolor - JavaScript Color Picker + * + * @link http://jscolor.com + * @license For open source use: GPLv3 + * For commercial use: JSColor Commercial License + * @author Jan Odvarko + * @version 2.0.5 + * + * See usage examples at http://jscolor.com/examples/ + */ + + +"use strict"; + + +if (!window.jscolor) { window.jscolor = (function () { + + +var jsc = { + + + register : function () { + jsc.attachDOMReadyEvent(jsc.init); + jsc.attachEvent(document, 'mousedown', jsc.onDocumentMouseDown); + jsc.attachEvent(document, 'touchstart', jsc.onDocumentTouchStart); + jsc.attachEvent(window, 'resize', jsc.onWindowResize); + }, + + + init : function () { + if (jsc.jscolor.lookupClass) { + jsc.jscolor.installByClassName(jsc.jscolor.lookupClass); + } + }, + + + tryInstallOnElements : function (elms, className) { + var matchClass = new RegExp('(^|\\s)(' + className + ')(\\s*(\\{[^}]*\\})|\\s|$)', 'i'); + + for (var i = 0; i < elms.length; i += 1) { + if (elms[i].type !== undefined && elms[i].type.toLowerCase() == 'color') { + if (jsc.isColorAttrSupported) { + // skip inputs of type 'color' if supported by the browser + continue; + } + } + var m; + if (!elms[i].jscolor && elms[i].className && (m = elms[i].className.match(matchClass))) { + var targetElm = elms[i]; + var optsStr = null; + + var dataOptions = jsc.getDataAttr(targetElm, 'jscolor'); + if (dataOptions !== null) { + optsStr = dataOptions; + } else if (m[4]) { + optsStr = m[4]; + } + + var opts = {}; + if (optsStr) { + try { + opts = (new Function ('return (' + optsStr + ')'))(); + } catch(eParseError) { + jsc.warn('Error parsing jscolor options: ' + eParseError + ':\n' + optsStr); + } + } + targetElm.jscolor = new jsc.jscolor(targetElm, opts); + } + } + }, + + + isColorAttrSupported : (function () { + var elm = document.createElement('input'); + if (elm.setAttribute) { + elm.setAttribute('type', 'color'); + if (elm.type.toLowerCase() == 'color') { + return true; + } + } + return false; + })(), + + + isCanvasSupported : (function () { + var elm = document.createElement('canvas'); + return !!(elm.getContext && elm.getContext('2d')); + })(), + + + fetchElement : function (mixed) { + return typeof mixed === 'string' ? document.getElementById(mixed) : mixed; + }, + + + isElementType : function (elm, type) { + return elm.nodeName.toLowerCase() === type.toLowerCase(); + }, + + + getDataAttr : function (el, name) { + var attrName = 'data-' + name; + var attrValue = el.getAttribute(attrName); + if (attrValue !== null) { + return attrValue; + } + return null; + }, + + + attachEvent : function (el, evnt, func) { + if (el.addEventListener) { + el.addEventListener(evnt, func, false); + } else if (el.attachEvent) { + el.attachEvent('on' + evnt, func); + } + }, + + + detachEvent : function (el, evnt, func) { + if (el.removeEventListener) { + el.removeEventListener(evnt, func, false); + } else if (el.detachEvent) { + el.detachEvent('on' + evnt, func); + } + }, + + + _attachedGroupEvents : {}, + + + attachGroupEvent : function (groupName, el, evnt, func) { + if (!jsc._attachedGroupEvents.hasOwnProperty(groupName)) { + jsc._attachedGroupEvents[groupName] = []; + } + jsc._attachedGroupEvents[groupName].push([el, evnt, func]); + jsc.attachEvent(el, evnt, func); + }, + + + detachGroupEvents : function (groupName) { + if (jsc._attachedGroupEvents.hasOwnProperty(groupName)) { + for (var i = 0; i < jsc._attachedGroupEvents[groupName].length; i += 1) { + var evt = jsc._attachedGroupEvents[groupName][i]; + jsc.detachEvent(evt[0], evt[1], evt[2]); + } + delete jsc._attachedGroupEvents[groupName]; + } + }, + + + attachDOMReadyEvent : function (func) { + var fired = false; + var fireOnce = function () { + if (!fired) { + fired = true; + func(); + } + }; + + if (document.readyState === 'complete') { + setTimeout(fireOnce, 1); // async + return; + } + + if (document.addEventListener) { + document.addEventListener('DOMContentLoaded', fireOnce, false); + + // Fallback + window.addEventListener('load', fireOnce, false); + + } else if (document.attachEvent) { + // IE + document.attachEvent('onreadystatechange', function () { + if (document.readyState === 'complete') { + document.detachEvent('onreadystatechange', arguments.callee); + fireOnce(); + } + }) + + // Fallback + window.attachEvent('onload', fireOnce); + + // IE7/8 + if (document.documentElement.doScroll && window == window.top) { + var tryScroll = function () { + if (!document.body) { return; } + try { + document.documentElement.doScroll('left'); + fireOnce(); + } catch (e) { + setTimeout(tryScroll, 1); + } + }; + tryScroll(); + } + } + }, + + + warn : function (msg) { + if (window.console && window.console.warn) { + window.console.warn(msg); + } + }, + + + preventDefault : function (e) { + if (e.preventDefault) { e.preventDefault(); } + e.returnValue = false; + }, + + + captureTarget : function (target) { + // IE + if (target.setCapture) { + jsc._capturedTarget = target; + jsc._capturedTarget.setCapture(); + } + }, + + + releaseTarget : function () { + // IE + if (jsc._capturedTarget) { + jsc._capturedTarget.releaseCapture(); + jsc._capturedTarget = null; + } + }, + + + fireEvent : function (el, evnt) { + if (!el) { + return; + } + if (document.createEvent) { + var ev = document.createEvent('HTMLEvents'); + ev.initEvent(evnt, true, true); + el.dispatchEvent(ev); + } else if (document.createEventObject) { + var ev = document.createEventObject(); + el.fireEvent('on' + evnt, ev); + } else if (el['on' + evnt]) { // alternatively use the traditional event model + el['on' + evnt](); + } + }, + + + classNameToList : function (className) { + return className.replace(/^\s+|\s+$/g, '').split(/\s+/); + }, + + + // The className parameter (str) can only contain a single class name + hasClass : function (elm, className) { + if (!className) { + return false; + } + return -1 != (' ' + elm.className.replace(/\s+/g, ' ') + ' ').indexOf(' ' + className + ' '); + }, + + + // The className parameter (str) can contain multiple class names separated by whitespace + setClass : function (elm, className) { + var classList = jsc.classNameToList(className); + for (var i = 0; i < classList.length; i += 1) { + if (!jsc.hasClass(elm, classList[i])) { + elm.className += (elm.className ? ' ' : '') + classList[i]; + } + } + }, + + + // The className parameter (str) can contain multiple class names separated by whitespace + unsetClass : function (elm, className) { + var classList = jsc.classNameToList(className); + for (var i = 0; i < classList.length; i += 1) { + var repl = new RegExp( + '^\\s*' + classList[i] + '\\s*|' + + '\\s*' + classList[i] + '\\s*$|' + + '\\s+' + classList[i] + '(\\s+)', + 'g' + ); + elm.className = elm.className.replace(repl, '$1'); + } + }, + + + getStyle : function (elm) { + return window.getComputedStyle ? window.getComputedStyle(elm) : elm.currentStyle; + }, + + + setStyle : (function () { + var helper = document.createElement('div'); + var getSupportedProp = function (names) { + for (var i = 0; i < names.length; i += 1) { + if (names[i] in helper.style) { + return names[i]; + } + } + }; + var props = { + borderRadius: getSupportedProp(['borderRadius', 'MozBorderRadius', 'webkitBorderRadius']), + boxShadow: getSupportedProp(['boxShadow', 'MozBoxShadow', 'webkitBoxShadow']) + }; + return function (elm, prop, value) { + switch (prop.toLowerCase()) { + case 'opacity': + var alphaOpacity = Math.round(parseFloat(value) * 100); + elm.style.opacity = value; + elm.style.filter = 'alpha(opacity=' + alphaOpacity + ')'; + break; + default: + elm.style[props[prop]] = value; + break; + } + }; + })(), + + + setBorderRadius : function (elm, value) { + jsc.setStyle(elm, 'borderRadius', value || '0'); + }, + + + setBoxShadow : function (elm, value) { + jsc.setStyle(elm, 'boxShadow', value || 'none'); + }, + + + getElementPos : function (e, relativeToViewport) { + var x=0, y=0; + var rect = e.getBoundingClientRect(); + x = rect.left; + y = rect.top; + if (!relativeToViewport) { + var viewPos = jsc.getViewPos(); + x += viewPos[0]; + y += viewPos[1]; + } + return [x, y]; + }, + + + getElementSize : function (e) { + return [e.offsetWidth, e.offsetHeight]; + }, + + + // get pointer's X/Y coordinates relative to viewport + getAbsPointerPos : function (e) { + if (!e) { e = window.event; } + var x = 0, y = 0; + if (typeof e.changedTouches !== 'undefined' && e.changedTouches.length) { + // touch devices + x = e.changedTouches[0].clientX; + y = e.changedTouches[0].clientY; + } else if (typeof e.clientX === 'number') { + x = e.clientX; + y = e.clientY; + } + return { x: x, y: y }; + }, + + + // get pointer's X/Y coordinates relative to target element + getRelPointerPos : function (e) { + if (!e) { e = window.event; } + var target = e.target || e.srcElement; + var targetRect = target.getBoundingClientRect(); + + var x = 0, y = 0; + + var clientX = 0, clientY = 0; + if (typeof e.changedTouches !== 'undefined' && e.changedTouches.length) { + // touch devices + clientX = e.changedTouches[0].clientX; + clientY = e.changedTouches[0].clientY; + } else if (typeof e.clientX === 'number') { + clientX = e.clientX; + clientY = e.clientY; + } + + x = clientX - targetRect.left; + y = clientY - targetRect.top; + return { x: x, y: y }; + }, + + + getViewPos : function () { + var doc = document.documentElement; + return [ + (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0), + (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0) + ]; + }, + + + getViewSize : function () { + var doc = document.documentElement; + return [ + (window.innerWidth || doc.clientWidth), + (window.innerHeight || doc.clientHeight), + ]; + }, + + + redrawPosition : function () { + + if (jsc.picker && jsc.picker.owner) { + var thisObj = jsc.picker.owner; + + var tp, vp; + + if (thisObj.fixed) { + // Fixed elements are positioned relative to viewport, + // therefore we can ignore the scroll offset + tp = jsc.getElementPos(thisObj.targetElement, true); // target pos + vp = [0, 0]; // view pos + } else { + tp = jsc.getElementPos(thisObj.targetElement); // target pos + vp = jsc.getViewPos(); // view pos + } + + var ts = jsc.getElementSize(thisObj.targetElement); // target size + var vs = jsc.getViewSize(); // view size + var ps = jsc.getPickerOuterDims(thisObj); // picker size + var a, b, c; + switch (thisObj.position.toLowerCase()) { + case 'left': a=1; b=0; c=-1; break; + case 'right':a=1; b=0; c=1; break; + case 'top': a=0; b=1; c=-1; break; + default: a=0; b=1; c=1; break; + } + var l = (ts[b]+ps[b])/2; + + // compute picker position + if (!thisObj.smartPosition) { + var pp = [ + tp[a], + tp[b]+ts[b]-l+l*c + ]; + } else { + var pp = [ + -vp[a]+tp[a]+ps[a] > vs[a] ? + (-vp[a]+tp[a]+ts[a]/2 > vs[a]/2 && tp[a]+ts[a]-ps[a] >= 0 ? tp[a]+ts[a]-ps[a] : tp[a]) : + tp[a], + -vp[b]+tp[b]+ts[b]+ps[b]-l+l*c > vs[b] ? + (-vp[b]+tp[b]+ts[b]/2 > vs[b]/2 && tp[b]+ts[b]-l-l*c >= 0 ? tp[b]+ts[b]-l-l*c : tp[b]+ts[b]-l+l*c) : + (tp[b]+ts[b]-l+l*c >= 0 ? tp[b]+ts[b]-l+l*c : tp[b]+ts[b]-l-l*c) + ]; + } + + var x = pp[a]; + var y = pp[b]; + var positionValue = thisObj.fixed ? 'fixed' : 'absolute'; + var contractShadow = + (pp[0] + ps[0] > tp[0] || pp[0] < tp[0] + ts[0]) && + (pp[1] + ps[1] < tp[1] + ts[1]); + + jsc._drawPosition(thisObj, x, y, positionValue, contractShadow); + } + }, + + + _drawPosition : function (thisObj, x, y, positionValue, contractShadow) { + var vShadow = contractShadow ? 0 : thisObj.shadowBlur; // px + + jsc.picker.wrap.style.position = positionValue; + jsc.picker.wrap.style.left = x + 'px'; + jsc.picker.wrap.style.top = y + 'px'; + + jsc.setBoxShadow( + jsc.picker.boxS, + thisObj.shadow ? + new jsc.BoxShadow(0, vShadow, thisObj.shadowBlur, 0, thisObj.shadowColor) : + null); + }, + + + getPickerDims : function (thisObj) { + var displaySlider = !!jsc.getSliderComponent(thisObj); + var dims = [ + 2 * thisObj.insetWidth + 2 * thisObj.padding + thisObj.width + + (displaySlider ? 2 * thisObj.insetWidth + jsc.getPadToSliderPadding(thisObj) + thisObj.sliderSize : 0), + 2 * thisObj.insetWidth + 2 * thisObj.padding + thisObj.height + + (thisObj.closable ? 2 * thisObj.insetWidth + thisObj.padding + thisObj.buttonHeight : 0) + ]; + return dims; + }, + + + getPickerOuterDims : function (thisObj) { + var dims = jsc.getPickerDims(thisObj); + return [ + dims[0] + 2 * thisObj.borderWidth, + dims[1] + 2 * thisObj.borderWidth + ]; + }, + + + getPadToSliderPadding : function (thisObj) { + return Math.max(thisObj.padding, 1.5 * (2 * thisObj.pointerBorderWidth + thisObj.pointerThickness)); + }, + + + getPadYComponent : function (thisObj) { + switch (thisObj.mode.charAt(1).toLowerCase()) { + case 'v': return 'v'; break; + } + return 's'; + }, + + + getSliderComponent : function (thisObj) { + if (thisObj.mode.length > 2) { + switch (thisObj.mode.charAt(2).toLowerCase()) { + case 's': return 's'; break; + case 'v': return 'v'; break; + } + } + return null; + }, + + + onDocumentMouseDown : function (e) { + if (!e) { e = window.event; } + var target = e.target || e.srcElement; + + if (target._jscLinkedInstance) { + if (target._jscLinkedInstance.showOnClick) { + target._jscLinkedInstance.show(); + } + } else if (target._jscControlName) { + jsc.onControlPointerStart(e, target, target._jscControlName, 'mouse'); + } else { + // Mouse is outside the picker controls -> hide the color picker! + if (jsc.picker && jsc.picker.owner) { + jsc.picker.owner.hide(); + } + } + }, + + + onDocumentTouchStart : function (e) { + if (!e) { e = window.event; } + var target = e.target || e.srcElement; + + if (target._jscLinkedInstance) { + if (target._jscLinkedInstance.showOnClick) { + target._jscLinkedInstance.show(); + } + } else if (target._jscControlName) { + jsc.onControlPointerStart(e, target, target._jscControlName, 'touch'); + } else { + if (jsc.picker && jsc.picker.owner) { + jsc.picker.owner.hide(); + } + } + }, + + + onWindowResize : function (e) { + jsc.redrawPosition(); + }, + + + onParentScroll : function (e) { + // hide the picker when one of the parent elements is scrolled + if (jsc.picker && jsc.picker.owner) { + jsc.picker.owner.hide(); + } + }, + + + _pointerMoveEvent : { + mouse: 'mousemove', + touch: 'touchmove' + }, + _pointerEndEvent : { + mouse: 'mouseup', + touch: 'touchend' + }, + + + _pointerOrigin : null, + _capturedTarget : null, + + + onControlPointerStart : function (e, target, controlName, pointerType) { + var thisObj = target._jscInstance; + + jsc.preventDefault(e); + jsc.captureTarget(target); + + var registerDragEvents = function (doc, offset) { + jsc.attachGroupEvent('drag', doc, jsc._pointerMoveEvent[pointerType], + jsc.onDocumentPointerMove(e, target, controlName, pointerType, offset)); + jsc.attachGroupEvent('drag', doc, jsc._pointerEndEvent[pointerType], + jsc.onDocumentPointerEnd(e, target, controlName, pointerType)); + }; + + registerDragEvents(document, [0, 0]); + + if (window.parent && window.frameElement) { + var rect = window.frameElement.getBoundingClientRect(); + var ofs = [-rect.left, -rect.top]; + registerDragEvents(window.parent.window.document, ofs); + } + + var abs = jsc.getAbsPointerPos(e); + var rel = jsc.getRelPointerPos(e); + jsc._pointerOrigin = { + x: abs.x - rel.x, + y: abs.y - rel.y + }; + + switch (controlName) { + case 'pad': + // if the slider is at the bottom, move it up + switch (jsc.getSliderComponent(thisObj)) { + case 's': if (thisObj.hsv[1] === 0) { thisObj.fromHSV(null, 100, null); }; break; + case 'v': if (thisObj.hsv[2] === 0) { thisObj.fromHSV(null, null, 100); }; break; + } + jsc.setPad(thisObj, e, 0, 0); + break; + + case 'sld': + jsc.setSld(thisObj, e, 0); + break; + } + + jsc.dispatchFineChange(thisObj); + }, + + + onDocumentPointerMove : function (e, target, controlName, pointerType, offset) { + return function (e) { + var thisObj = target._jscInstance; + switch (controlName) { + case 'pad': + if (!e) { e = window.event; } + jsc.setPad(thisObj, e, offset[0], offset[1]); + jsc.dispatchFineChange(thisObj); + break; + + case 'sld': + if (!e) { e = window.event; } + jsc.setSld(thisObj, e, offset[1]); + jsc.dispatchFineChange(thisObj); + break; + } + } + }, + + + onDocumentPointerEnd : function (e, target, controlName, pointerType) { + return function (e) { + var thisObj = target._jscInstance; + jsc.detachGroupEvents('drag'); + jsc.releaseTarget(); + // Always dispatch changes after detaching outstanding mouse handlers, + // in case some user interaction will occur in user's onchange callback + // that would intrude with current mouse events + jsc.dispatchChange(thisObj); + }; + }, + + + dispatchChange : function (thisObj) { + if (thisObj.valueElement) { + if (jsc.isElementType(thisObj.valueElement, 'input')) { + jsc.fireEvent(thisObj.valueElement, 'change'); + } + } + }, + + + dispatchFineChange : function (thisObj) { + if (thisObj.onFineChange) { + var callback; + if (typeof thisObj.onFineChange === 'string') { + callback = new Function (thisObj.onFineChange); + } else { + callback = thisObj.onFineChange; + } + callback.call(thisObj); + } + }, + + + setPad : function (thisObj, e, ofsX, ofsY) { + var pointerAbs = jsc.getAbsPointerPos(e); + var x = ofsX + pointerAbs.x - jsc._pointerOrigin.x - thisObj.padding - thisObj.insetWidth; + var y = ofsY + pointerAbs.y - jsc._pointerOrigin.y - thisObj.padding - thisObj.insetWidth; + + var xVal = x * (360 / (thisObj.width - 1)); + var yVal = 100 - (y * (100 / (thisObj.height - 1))); + + switch (jsc.getPadYComponent(thisObj)) { + case 's': thisObj.fromHSV(xVal, yVal, null, jsc.leaveSld); break; + case 'v': thisObj.fromHSV(xVal, null, yVal, jsc.leaveSld); break; + } + }, + + + setSld : function (thisObj, e, ofsY) { + var pointerAbs = jsc.getAbsPointerPos(e); + var y = ofsY + pointerAbs.y - jsc._pointerOrigin.y - thisObj.padding - thisObj.insetWidth; + + var yVal = 100 - (y * (100 / (thisObj.height - 1))); + + switch (jsc.getSliderComponent(thisObj)) { + case 's': thisObj.fromHSV(null, yVal, null, jsc.leavePad); break; + case 'v': thisObj.fromHSV(null, null, yVal, jsc.leavePad); break; + } + }, + + + _vmlNS : 'jsc_vml_', + _vmlCSS : 'jsc_vml_css_', + _vmlReady : false, + + + initVML : function () { + if (!jsc._vmlReady) { + // init VML namespace + var doc = document; + if (!doc.namespaces[jsc._vmlNS]) { + doc.namespaces.add(jsc._vmlNS, 'urn:schemas-microsoft-com:vml'); + } + if (!doc.styleSheets[jsc._vmlCSS]) { + var tags = ['shape', 'shapetype', 'group', 'background', 'path', 'formulas', 'handles', 'fill', 'stroke', 'shadow', 'textbox', 'textpath', 'imagedata', 'line', 'polyline', 'curve', 'rect', 'roundrect', 'oval', 'arc', 'image']; + var ss = doc.createStyleSheet(); + ss.owningElement.id = jsc._vmlCSS; + for (var i = 0; i < tags.length; i += 1) { + ss.addRule(jsc._vmlNS + '\\:' + tags[i], 'behavior:url(#default#VML);'); + } + } + jsc._vmlReady = true; + } + }, + + + createPalette : function () { + + var paletteObj = { + elm: null, + draw: null + }; + + if (jsc.isCanvasSupported) { + // Canvas implementation for modern browsers + + var canvas = document.createElement('canvas'); + var ctx = canvas.getContext('2d'); + + var drawFunc = function (width, height, type) { + canvas.width = width; + canvas.height = height; + + ctx.clearRect(0, 0, canvas.width, canvas.height); + + var hGrad = ctx.createLinearGradient(0, 0, canvas.width, 0); + hGrad.addColorStop(0 / 6, '#F00'); + hGrad.addColorStop(1 / 6, '#FF0'); + hGrad.addColorStop(2 / 6, '#0F0'); + hGrad.addColorStop(3 / 6, '#0FF'); + hGrad.addColorStop(4 / 6, '#00F'); + hGrad.addColorStop(5 / 6, '#F0F'); + hGrad.addColorStop(6 / 6, '#F00'); + + ctx.fillStyle = hGrad; + ctx.fillRect(0, 0, canvas.width, canvas.height); + + var vGrad = ctx.createLinearGradient(0, 0, 0, canvas.height); + switch (type.toLowerCase()) { + case 's': + vGrad.addColorStop(0, 'rgba(255,255,255,0)'); + vGrad.addColorStop(1, 'rgba(255,255,255,1)'); + break; + case 'v': + vGrad.addColorStop(0, 'rgba(0,0,0,0)'); + vGrad.addColorStop(1, 'rgba(0,0,0,1)'); + break; + } + ctx.fillStyle = vGrad; + ctx.fillRect(0, 0, canvas.width, canvas.height); + }; + + paletteObj.elm = canvas; + paletteObj.draw = drawFunc; + + } else { + // VML fallback for IE 7 and 8 + + jsc.initVML(); + + var vmlContainer = document.createElement('div'); + vmlContainer.style.position = 'relative'; + vmlContainer.style.overflow = 'hidden'; + + var hGrad = document.createElement(jsc._vmlNS + ':fill'); + hGrad.type = 'gradient'; + hGrad.method = 'linear'; + hGrad.angle = '90'; + hGrad.colors = '16.67% #F0F, 33.33% #00F, 50% #0FF, 66.67% #0F0, 83.33% #FF0' + + var hRect = document.createElement(jsc._vmlNS + ':rect'); + hRect.style.position = 'absolute'; + hRect.style.left = -1 + 'px'; + hRect.style.top = -1 + 'px'; + hRect.stroked = false; + hRect.appendChild(hGrad); + vmlContainer.appendChild(hRect); + + var vGrad = document.createElement(jsc._vmlNS + ':fill'); + vGrad.type = 'gradient'; + vGrad.method = 'linear'; + vGrad.angle = '180'; + vGrad.opacity = '0'; + + var vRect = document.createElement(jsc._vmlNS + ':rect'); + vRect.style.position = 'absolute'; + vRect.style.left = -1 + 'px'; + vRect.style.top = -1 + 'px'; + vRect.stroked = false; + vRect.appendChild(vGrad); + vmlContainer.appendChild(vRect); + + var drawFunc = function (width, height, type) { + vmlContainer.style.width = width + 'px'; + vmlContainer.style.height = height + 'px'; + + hRect.style.width = + vRect.style.width = + (width + 1) + 'px'; + hRect.style.height = + vRect.style.height = + (height + 1) + 'px'; + + // Colors must be specified during every redraw, otherwise IE won't display + // a full gradient during a subsequential redraw + hGrad.color = '#F00'; + hGrad.color2 = '#F00'; + + switch (type.toLowerCase()) { + case 's': + vGrad.color = vGrad.color2 = '#FFF'; + break; + case 'v': + vGrad.color = vGrad.color2 = '#000'; + break; + } + }; + + paletteObj.elm = vmlContainer; + paletteObj.draw = drawFunc; + } + + return paletteObj; + }, + + + createSliderGradient : function () { + + var sliderObj = { + elm: null, + draw: null + }; + + if (jsc.isCanvasSupported) { + // Canvas implementation for modern browsers + + var canvas = document.createElement('canvas'); + var ctx = canvas.getContext('2d'); + + var drawFunc = function (width, height, color1, color2) { + canvas.width = width; + canvas.height = height; + + ctx.clearRect(0, 0, canvas.width, canvas.height); + + var grad = ctx.createLinearGradient(0, 0, 0, canvas.height); + grad.addColorStop(0, color1); + grad.addColorStop(1, color2); + + ctx.fillStyle = grad; + ctx.fillRect(0, 0, canvas.width, canvas.height); + }; + + sliderObj.elm = canvas; + sliderObj.draw = drawFunc; + + } else { + // VML fallback for IE 7 and 8 + + jsc.initVML(); + + var vmlContainer = document.createElement('div'); + vmlContainer.style.position = 'relative'; + vmlContainer.style.overflow = 'hidden'; + + var grad = document.createElement(jsc._vmlNS + ':fill'); + grad.type = 'gradient'; + grad.method = 'linear'; + grad.angle = '180'; + + var rect = document.createElement(jsc._vmlNS + ':rect'); + rect.style.position = 'absolute'; + rect.style.left = -1 + 'px'; + rect.style.top = -1 + 'px'; + rect.stroked = false; + rect.appendChild(grad); + vmlContainer.appendChild(rect); + + var drawFunc = function (width, height, color1, color2) { + vmlContainer.style.width = width + 'px'; + vmlContainer.style.height = height + 'px'; + + rect.style.width = (width + 1) + 'px'; + rect.style.height = (height + 1) + 'px'; + + grad.color = color1; + grad.color2 = color2; + }; + + sliderObj.elm = vmlContainer; + sliderObj.draw = drawFunc; + } + + return sliderObj; + }, + + + leaveValue : 1<<0, + leaveStyle : 1<<1, + leavePad : 1<<2, + leaveSld : 1<<3, + + + BoxShadow : (function () { + var BoxShadow = function (hShadow, vShadow, blur, spread, color, inset) { + this.hShadow = hShadow; + this.vShadow = vShadow; + this.blur = blur; + this.spread = spread; + this.color = color; + this.inset = !!inset; + }; + + BoxShadow.prototype.toString = function () { + var vals = [ + Math.round(this.hShadow) + 'px', + Math.round(this.vShadow) + 'px', + Math.round(this.blur) + 'px', + Math.round(this.spread) + 'px', + this.color + ]; + if (this.inset) { + vals.push('inset'); + } + return vals.join(' '); + }; + + return BoxShadow; + })(), + + + // + // Usage: + // var myColor = new jscolor( [, ]) + // + + jscolor : function (targetElement, options) { + + // General options + // + this.value = null; // initial HEX color. To change it later, use methods fromString(), fromHSV() and fromRGB() + this.valueElement = targetElement; // element that will be used to display and input the color code + this.styleElement = targetElement; // element that will preview the picked color using CSS backgroundColor + this.required = true; // whether the associated text can be left empty + this.refine = true; // whether to refine the entered color code (e.g. uppercase it and remove whitespace) + this.hash = false; // whether to prefix the HEX color code with # symbol + this.uppercase = true; // whether to show the color code in upper case + this.onFineChange = null; // called instantly every time the color changes (value can be either a function or a string with javascript code) + this.activeClass = 'jscolor-active'; // class to be set to the target element when a picker window is open on it + this.overwriteImportant = false; // whether to overwrite colors of styleElement using !important + this.minS = 0; // min allowed saturation (0 - 100) + this.maxS = 100; // max allowed saturation (0 - 100) + this.minV = 0; // min allowed value (brightness) (0 - 100) + this.maxV = 100; // max allowed value (brightness) (0 - 100) + + // Accessing the picked color + // + this.hsv = [0, 0, 100]; // read-only [0-360, 0-100, 0-100] + this.rgb = [255, 255, 255]; // read-only [0-255, 0-255, 0-255] + + // Color Picker options + // + this.width = 181; // width of color palette (in px) + this.height = 101; // height of color palette (in px) + this.showOnClick = true; // whether to display the color picker when user clicks on its target element + this.mode = 'HSV'; // HSV | HVS | HS | HV - layout of the color picker controls + this.position = 'bottom'; // left | right | top | bottom - position relative to the target element + this.smartPosition = true; // automatically change picker position when there is not enough space for it + this.sliderSize = 16; // px + this.crossSize = 8; // px + this.closable = false; // whether to display the Close button + this.closeText = 'Close'; + this.buttonColor = '#000000'; // CSS color + this.buttonHeight = 18; // px + this.padding = 12; // px + this.backgroundColor = '#FFFFFF'; // CSS color + this.borderWidth = 1; // px + this.borderColor = '#BBBBBB'; // CSS color + this.borderRadius = 8; // px + this.insetWidth = 1; // px + this.insetColor = '#BBBBBB'; // CSS color + this.shadow = true; // whether to display shadow + this.shadowBlur = 15; // px + this.shadowColor = 'rgba(0,0,0,0.2)'; // CSS color + this.pointerColor = '#4C4C4C'; // px + this.pointerBorderColor = '#FFFFFF'; // px + this.pointerBorderWidth = 1; // px + this.pointerThickness = 2; // px + this.zIndex = 1000; + this.container = null; // where to append the color picker (BODY element by default) + + + for (var opt in options) { + if (options.hasOwnProperty(opt)) { + this[opt] = options[opt]; + } + } + + + this.hide = function () { + if (isPickerOwner()) { + detachPicker(); + } + }; + + + this.show = function () { + drawPicker(); + }; + + + this.redraw = function () { + if (isPickerOwner()) { + drawPicker(); + } + }; + + + this.importColor = function () { + if (!this.valueElement) { + this.exportColor(); + } else { + if (jsc.isElementType(this.valueElement, 'input')) { + if (!this.refine) { + if (!this.fromString(this.valueElement.value, jsc.leaveValue)) { + if (this.styleElement) { + this.styleElement.style.backgroundImage = this.styleElement._jscOrigStyle.backgroundImage; + this.styleElement.style.backgroundColor = this.styleElement._jscOrigStyle.backgroundColor; + this.styleElement.style.color = this.styleElement._jscOrigStyle.color; + } + this.exportColor(jsc.leaveValue | jsc.leaveStyle); + } + } else if (!this.required && /^\s*$/.test(this.valueElement.value)) { + this.valueElement.value = ''; + if (this.styleElement) { + this.styleElement.style.backgroundImage = this.styleElement._jscOrigStyle.backgroundImage; + this.styleElement.style.backgroundColor = this.styleElement._jscOrigStyle.backgroundColor; + this.styleElement.style.color = this.styleElement._jscOrigStyle.color; + } + this.exportColor(jsc.leaveValue | jsc.leaveStyle); + + } else if (this.fromString(this.valueElement.value)) { + // managed to import color successfully from the value -> OK, don't do anything + } else { + this.exportColor(); + } + } else { + // not an input element -> doesn't have any value + this.exportColor(); + } + } + }; + + + this.exportColor = function (flags) { + if (!(flags & jsc.leaveValue) && this.valueElement) { + var value = this.toString(); + if (this.uppercase) { value = value.toUpperCase(); } + if (this.hash) { value = '#' + value; } + + if (jsc.isElementType(this.valueElement, 'input')) { + this.valueElement.value = value; + } else { + this.valueElement.innerHTML = value; + } + } + if (!(flags & jsc.leaveStyle)) { + if (this.styleElement) { + var bgColor = '#' + this.toString(); + var fgColor = this.isLight() ? '#000' : '#FFF'; + + this.styleElement.style.backgroundImage = 'none'; + this.styleElement.style.backgroundColor = bgColor; + this.styleElement.style.color = fgColor; + + if (this.overwriteImportant) { + this.styleElement.setAttribute('style', + 'background: ' + bgColor + ' !important; ' + + 'color: ' + fgColor + ' !important;' + ); + } + } + } + if (!(flags & jsc.leavePad) && isPickerOwner()) { + redrawPad(); + } + if (!(flags & jsc.leaveSld) && isPickerOwner()) { + redrawSld(); + } + }; + + + // h: 0-360 + // s: 0-100 + // v: 0-100 + // + this.fromHSV = function (h, s, v, flags) { // null = don't change + if (h !== null) { + if (isNaN(h)) { return false; } + h = Math.max(0, Math.min(360, h)); + } + if (s !== null) { + if (isNaN(s)) { return false; } + s = Math.max(0, Math.min(100, this.maxS, s), this.minS); + } + if (v !== null) { + if (isNaN(v)) { return false; } + v = Math.max(0, Math.min(100, this.maxV, v), this.minV); + } + + this.rgb = HSV_RGB( + h===null ? this.hsv[0] : (this.hsv[0]=h), + s===null ? this.hsv[1] : (this.hsv[1]=s), + v===null ? this.hsv[2] : (this.hsv[2]=v) + ); + + this.exportColor(flags); + }; + + + // r: 0-255 + // g: 0-255 + // b: 0-255 + // + this.fromRGB = function (r, g, b, flags) { // null = don't change + if (r !== null) { + if (isNaN(r)) { return false; } + r = Math.max(0, Math.min(255, r)); + } + if (g !== null) { + if (isNaN(g)) { return false; } + g = Math.max(0, Math.min(255, g)); + } + if (b !== null) { + if (isNaN(b)) { return false; } + b = Math.max(0, Math.min(255, b)); + } + + var hsv = RGB_HSV( + r===null ? this.rgb[0] : r, + g===null ? this.rgb[1] : g, + b===null ? this.rgb[2] : b + ); + if (hsv[0] !== null) { + this.hsv[0] = Math.max(0, Math.min(360, hsv[0])); + } + if (hsv[2] !== 0) { + this.hsv[1] = hsv[1]===null ? null : Math.max(0, this.minS, Math.min(100, this.maxS, hsv[1])); + } + this.hsv[2] = hsv[2]===null ? null : Math.max(0, this.minV, Math.min(100, this.maxV, hsv[2])); + + // update RGB according to final HSV, as some values might be trimmed + var rgb = HSV_RGB(this.hsv[0], this.hsv[1], this.hsv[2]); + this.rgb[0] = rgb[0]; + this.rgb[1] = rgb[1]; + this.rgb[2] = rgb[2]; + + this.exportColor(flags); + }; + + + this.fromString = function (str, flags) { + var m; + if (m = str.match(/^\W*([0-9A-F]{3}([0-9A-F]{3})?)\W*$/i)) { + // HEX notation + // + + if (m[1].length === 6) { + // 6-char notation + this.fromRGB( + parseInt(m[1].substr(0,2),16), + parseInt(m[1].substr(2,2),16), + parseInt(m[1].substr(4,2),16), + flags + ); + } else { + // 3-char notation + this.fromRGB( + parseInt(m[1].charAt(0) + m[1].charAt(0),16), + parseInt(m[1].charAt(1) + m[1].charAt(1),16), + parseInt(m[1].charAt(2) + m[1].charAt(2),16), + flags + ); + } + return true; + + } else if (m = str.match(/^\W*rgba?\(([^)]*)\)\W*$/i)) { + var params = m[1].split(','); + var re = /^\s*(\d*)(\.\d+)?\s*$/; + var mR, mG, mB; + if ( + params.length >= 3 && + (mR = params[0].match(re)) && + (mG = params[1].match(re)) && + (mB = params[2].match(re)) + ) { + var r = parseFloat((mR[1] || '0') + (mR[2] || '')); + var g = parseFloat((mG[1] || '0') + (mG[2] || '')); + var b = parseFloat((mB[1] || '0') + (mB[2] || '')); + this.fromRGB(r, g, b, flags); + return true; + } + } + return false; + }; + + + this.toString = function () { + return ( + (0x100 | Math.round(this.rgb[0])).toString(16).substr(1) + + (0x100 | Math.round(this.rgb[1])).toString(16).substr(1) + + (0x100 | Math.round(this.rgb[2])).toString(16).substr(1) + ); + }; + + + this.toHEXString = function () { + return '#' + this.toString().toUpperCase(); + }; + + + this.toRGBString = function () { + return ('rgb(' + + Math.round(this.rgb[0]) + ',' + + Math.round(this.rgb[1]) + ',' + + Math.round(this.rgb[2]) + ')' + ); + }; + + + this.isLight = function () { + return ( + 0.213 * this.rgb[0] + + 0.715 * this.rgb[1] + + 0.072 * this.rgb[2] > + 255 / 2 + ); + }; + + + this._processParentElementsInDOM = function () { + if (this._linkedElementsProcessed) { return; } + this._linkedElementsProcessed = true; + + var elm = this.targetElement; + do { + // If the target element or one of its parent nodes has fixed position, + // then use fixed positioning instead + // + // Note: In Firefox, getComputedStyle returns null in a hidden iframe, + // that's why we need to check if the returned style object is non-empty + var currStyle = jsc.getStyle(elm); + if (currStyle && currStyle.position.toLowerCase() === 'fixed') { + this.fixed = true; + } + + if (elm !== this.targetElement) { + // Ensure to attach onParentScroll only once to each parent element + // (multiple targetElements can share the same parent nodes) + // + // Note: It's not just offsetParents that can be scrollable, + // that's why we loop through all parent nodes + if (!elm._jscEventsAttached) { + jsc.attachEvent(elm, 'scroll', jsc.onParentScroll); + elm._jscEventsAttached = true; + } + } + } while ((elm = elm.parentNode) && !jsc.isElementType(elm, 'body')); + }; + + + // r: 0-255 + // g: 0-255 + // b: 0-255 + // + // returns: [ 0-360, 0-100, 0-100 ] + // + function RGB_HSV (r, g, b) { + r /= 255; + g /= 255; + b /= 255; + var n = Math.min(Math.min(r,g),b); + var v = Math.max(Math.max(r,g),b); + var m = v - n; + if (m === 0) { return [ null, 0, 100 * v ]; } + var h = r===n ? 3+(b-g)/m : (g===n ? 5+(r-b)/m : 1+(g-r)/m); + return [ + 60 * (h===6?0:h), + 100 * (m/v), + 100 * v + ]; + } + + + // h: 0-360 + // s: 0-100 + // v: 0-100 + // + // returns: [ 0-255, 0-255, 0-255 ] + // + function HSV_RGB (h, s, v) { + var u = 255 * (v / 100); + + if (h === null) { + return [ u, u, u ]; + } + + h /= 60; + s /= 100; + + var i = Math.floor(h); + var f = i%2 ? h-i : 1-(h-i); + var m = u * (1 - s); + var n = u * (1 - s * f); + switch (i) { + case 6: + case 0: return [u,n,m]; + case 1: return [n,u,m]; + case 2: return [m,u,n]; + case 3: return [m,n,u]; + case 4: return [n,m,u]; + case 5: return [u,m,n]; + } + } + + + function detachPicker () { + jsc.unsetClass(THIS.targetElement, THIS.activeClass); + jsc.picker.wrap.parentNode.removeChild(jsc.picker.wrap); + delete jsc.picker.owner; + } + + + function drawPicker () { + + // At this point, when drawing the picker, we know what the parent elements are + // and we can do all related DOM operations, such as registering events on them + // or checking their positioning + THIS._processParentElementsInDOM(); + + if (!jsc.picker) { + jsc.picker = { + owner: null, + wrap : document.createElement('div'), + box : document.createElement('div'), + boxS : document.createElement('div'), // shadow area + boxB : document.createElement('div'), // border + pad : document.createElement('div'), + padB : document.createElement('div'), // border + padM : document.createElement('div'), // mouse/touch area + padPal : jsc.createPalette(), + cross : document.createElement('div'), + crossBY : document.createElement('div'), // border Y + crossBX : document.createElement('div'), // border X + crossLY : document.createElement('div'), // line Y + crossLX : document.createElement('div'), // line X + sld : document.createElement('div'), + sldB : document.createElement('div'), // border + sldM : document.createElement('div'), // mouse/touch area + sldGrad : jsc.createSliderGradient(), + sldPtrS : document.createElement('div'), // slider pointer spacer + sldPtrIB : document.createElement('div'), // slider pointer inner border + sldPtrMB : document.createElement('div'), // slider pointer middle border + sldPtrOB : document.createElement('div'), // slider pointer outer border + btn : document.createElement('div'), + btnT : document.createElement('span') // text + }; + + jsc.picker.pad.appendChild(jsc.picker.padPal.elm); + jsc.picker.padB.appendChild(jsc.picker.pad); + jsc.picker.cross.appendChild(jsc.picker.crossBY); + jsc.picker.cross.appendChild(jsc.picker.crossBX); + jsc.picker.cross.appendChild(jsc.picker.crossLY); + jsc.picker.cross.appendChild(jsc.picker.crossLX); + jsc.picker.padB.appendChild(jsc.picker.cross); + jsc.picker.box.appendChild(jsc.picker.padB); + jsc.picker.box.appendChild(jsc.picker.padM); + + jsc.picker.sld.appendChild(jsc.picker.sldGrad.elm); + jsc.picker.sldB.appendChild(jsc.picker.sld); + jsc.picker.sldB.appendChild(jsc.picker.sldPtrOB); + jsc.picker.sldPtrOB.appendChild(jsc.picker.sldPtrMB); + jsc.picker.sldPtrMB.appendChild(jsc.picker.sldPtrIB); + jsc.picker.sldPtrIB.appendChild(jsc.picker.sldPtrS); + jsc.picker.box.appendChild(jsc.picker.sldB); + jsc.picker.box.appendChild(jsc.picker.sldM); + + jsc.picker.btn.appendChild(jsc.picker.btnT); + jsc.picker.box.appendChild(jsc.picker.btn); + + jsc.picker.boxB.appendChild(jsc.picker.box); + jsc.picker.wrap.appendChild(jsc.picker.boxS); + jsc.picker.wrap.appendChild(jsc.picker.boxB); + } + + var p = jsc.picker; + + var displaySlider = !!jsc.getSliderComponent(THIS); + var dims = jsc.getPickerDims(THIS); + var crossOuterSize = (2 * THIS.pointerBorderWidth + THIS.pointerThickness + 2 * THIS.crossSize); + var padToSliderPadding = jsc.getPadToSliderPadding(THIS); + var borderRadius = Math.min( + THIS.borderRadius, + Math.round(THIS.padding * Math.PI)); // px + var padCursor = 'crosshair'; + + // wrap + p.wrap.style.clear = 'both'; + p.wrap.style.width = (dims[0] + 2 * THIS.borderWidth) + 'px'; + p.wrap.style.height = (dims[1] + 2 * THIS.borderWidth) + 'px'; + p.wrap.style.zIndex = THIS.zIndex; + + // picker + p.box.style.width = dims[0] + 'px'; + p.box.style.height = dims[1] + 'px'; + + p.boxS.style.position = 'absolute'; + p.boxS.style.left = '0'; + p.boxS.style.top = '0'; + p.boxS.style.width = '100%'; + p.boxS.style.height = '100%'; + jsc.setBorderRadius(p.boxS, borderRadius + 'px'); + + // picker border + p.boxB.style.position = 'relative'; + p.boxB.style.border = THIS.borderWidth + 'px solid'; + p.boxB.style.borderColor = THIS.borderColor; + p.boxB.style.background = THIS.backgroundColor; + jsc.setBorderRadius(p.boxB, borderRadius + 'px'); + + // IE hack: + // If the element is transparent, IE will trigger the event on the elements under it, + // e.g. on Canvas or on elements with border + p.padM.style.background = + p.sldM.style.background = + '#FFF'; + jsc.setStyle(p.padM, 'opacity', '0'); + jsc.setStyle(p.sldM, 'opacity', '0'); + + // pad + p.pad.style.position = 'relative'; + p.pad.style.width = THIS.width + 'px'; + p.pad.style.height = THIS.height + 'px'; + + // pad palettes (HSV and HVS) + p.padPal.draw(THIS.width, THIS.height, jsc.getPadYComponent(THIS)); + + // pad border + p.padB.style.position = 'absolute'; + p.padB.style.left = THIS.padding + 'px'; + p.padB.style.top = THIS.padding + 'px'; + p.padB.style.border = THIS.insetWidth + 'px solid'; + p.padB.style.borderColor = THIS.insetColor; + + // pad mouse area + p.padM._jscInstance = THIS; + p.padM._jscControlName = 'pad'; + p.padM.style.position = 'absolute'; + p.padM.style.left = '0'; + p.padM.style.top = '0'; + p.padM.style.width = (THIS.padding + 2 * THIS.insetWidth + THIS.width + padToSliderPadding / 2) + 'px'; + p.padM.style.height = dims[1] + 'px'; + p.padM.style.cursor = padCursor; + + // pad cross + p.cross.style.position = 'absolute'; + p.cross.style.left = + p.cross.style.top = + '0'; + p.cross.style.width = + p.cross.style.height = + crossOuterSize + 'px'; + + // pad cross border Y and X + p.crossBY.style.position = + p.crossBX.style.position = + 'absolute'; + p.crossBY.style.background = + p.crossBX.style.background = + THIS.pointerBorderColor; + p.crossBY.style.width = + p.crossBX.style.height = + (2 * THIS.pointerBorderWidth + THIS.pointerThickness) + 'px'; + p.crossBY.style.height = + p.crossBX.style.width = + crossOuterSize + 'px'; + p.crossBY.style.left = + p.crossBX.style.top = + (Math.floor(crossOuterSize / 2) - Math.floor(THIS.pointerThickness / 2) - THIS.pointerBorderWidth) + 'px'; + p.crossBY.style.top = + p.crossBX.style.left = + '0'; + + // pad cross line Y and X + p.crossLY.style.position = + p.crossLX.style.position = + 'absolute'; + p.crossLY.style.background = + p.crossLX.style.background = + THIS.pointerColor; + p.crossLY.style.height = + p.crossLX.style.width = + (crossOuterSize - 2 * THIS.pointerBorderWidth) + 'px'; + p.crossLY.style.width = + p.crossLX.style.height = + THIS.pointerThickness + 'px'; + p.crossLY.style.left = + p.crossLX.style.top = + (Math.floor(crossOuterSize / 2) - Math.floor(THIS.pointerThickness / 2)) + 'px'; + p.crossLY.style.top = + p.crossLX.style.left = + THIS.pointerBorderWidth + 'px'; + + // slider + p.sld.style.overflow = 'hidden'; + p.sld.style.width = THIS.sliderSize + 'px'; + p.sld.style.height = THIS.height + 'px'; + + // slider gradient + p.sldGrad.draw(THIS.sliderSize, THIS.height, '#000', '#000'); + + // slider border + p.sldB.style.display = displaySlider ? 'block' : 'none'; + p.sldB.style.position = 'absolute'; + p.sldB.style.right = THIS.padding + 'px'; + p.sldB.style.top = THIS.padding + 'px'; + p.sldB.style.border = THIS.insetWidth + 'px solid'; + p.sldB.style.borderColor = THIS.insetColor; + + // slider mouse area + p.sldM._jscInstance = THIS; + p.sldM._jscControlName = 'sld'; + p.sldM.style.display = displaySlider ? 'block' : 'none'; + p.sldM.style.position = 'absolute'; + p.sldM.style.right = '0'; + p.sldM.style.top = '0'; + p.sldM.style.width = (THIS.sliderSize + padToSliderPadding / 2 + THIS.padding + 2 * THIS.insetWidth) + 'px'; + p.sldM.style.height = dims[1] + 'px'; + p.sldM.style.cursor = 'default'; + + // slider pointer inner and outer border + p.sldPtrIB.style.border = + p.sldPtrOB.style.border = + THIS.pointerBorderWidth + 'px solid ' + THIS.pointerBorderColor; + + // slider pointer outer border + p.sldPtrOB.style.position = 'absolute'; + p.sldPtrOB.style.left = -(2 * THIS.pointerBorderWidth + THIS.pointerThickness) + 'px'; + p.sldPtrOB.style.top = '0'; + + // slider pointer middle border + p.sldPtrMB.style.border = THIS.pointerThickness + 'px solid ' + THIS.pointerColor; + + // slider pointer spacer + p.sldPtrS.style.width = THIS.sliderSize + 'px'; + p.sldPtrS.style.height = sliderPtrSpace + 'px'; + + // the Close button + function setBtnBorder () { + var insetColors = THIS.insetColor.split(/\s+/); + var outsetColor = insetColors.length < 2 ? insetColors[0] : insetColors[1] + ' ' + insetColors[0] + ' ' + insetColors[0] + ' ' + insetColors[1]; + p.btn.style.borderColor = outsetColor; + } + p.btn.style.display = THIS.closable ? 'block' : 'none'; + p.btn.style.position = 'absolute'; + p.btn.style.left = THIS.padding + 'px'; + p.btn.style.bottom = THIS.padding + 'px'; + p.btn.style.padding = '0 15px'; + p.btn.style.height = THIS.buttonHeight + 'px'; + p.btn.style.border = THIS.insetWidth + 'px solid'; + setBtnBorder(); + p.btn.style.color = THIS.buttonColor; + p.btn.style.font = '12px sans-serif'; + p.btn.style.textAlign = 'center'; + try { + p.btn.style.cursor = 'pointer'; + } catch(eOldIE) { + p.btn.style.cursor = 'hand'; + } + p.btn.onmousedown = function () { + THIS.hide(); + }; + p.btnT.style.lineHeight = THIS.buttonHeight + 'px'; + p.btnT.innerHTML = ''; + p.btnT.appendChild(document.createTextNode(THIS.closeText)); + + // place pointers + redrawPad(); + redrawSld(); + + // If we are changing the owner without first closing the picker, + // make sure to first deal with the old owner + if (jsc.picker.owner && jsc.picker.owner !== THIS) { + jsc.unsetClass(jsc.picker.owner.targetElement, THIS.activeClass); + } + + // Set the new picker owner + jsc.picker.owner = THIS; + + // The redrawPosition() method needs picker.owner to be set, that's why we call it here, + // after setting the owner + if (jsc.isElementType(container, 'body')) { + jsc.redrawPosition(); + } else { + jsc._drawPosition(THIS, 0, 0, 'relative', false); + } + + if (p.wrap.parentNode != container) { + container.appendChild(p.wrap); + } + + jsc.setClass(THIS.targetElement, THIS.activeClass); + } + + + function redrawPad () { + // redraw the pad pointer + switch (jsc.getPadYComponent(THIS)) { + case 's': var yComponent = 1; break; + case 'v': var yComponent = 2; break; + } + var x = Math.round((THIS.hsv[0] / 360) * (THIS.width - 1)); + var y = Math.round((1 - THIS.hsv[yComponent] / 100) * (THIS.height - 1)); + var crossOuterSize = (2 * THIS.pointerBorderWidth + THIS.pointerThickness + 2 * THIS.crossSize); + var ofs = -Math.floor(crossOuterSize / 2); + jsc.picker.cross.style.left = (x + ofs) + 'px'; + jsc.picker.cross.style.top = (y + ofs) + 'px'; + + // redraw the slider + switch (jsc.getSliderComponent(THIS)) { + case 's': + var rgb1 = HSV_RGB(THIS.hsv[0], 100, THIS.hsv[2]); + var rgb2 = HSV_RGB(THIS.hsv[0], 0, THIS.hsv[2]); + var color1 = 'rgb(' + + Math.round(rgb1[0]) + ',' + + Math.round(rgb1[1]) + ',' + + Math.round(rgb1[2]) + ')'; + var color2 = 'rgb(' + + Math.round(rgb2[0]) + ',' + + Math.round(rgb2[1]) + ',' + + Math.round(rgb2[2]) + ')'; + jsc.picker.sldGrad.draw(THIS.sliderSize, THIS.height, color1, color2); + break; + case 'v': + var rgb = HSV_RGB(THIS.hsv[0], THIS.hsv[1], 100); + var color1 = 'rgb(' + + Math.round(rgb[0]) + ',' + + Math.round(rgb[1]) + ',' + + Math.round(rgb[2]) + ')'; + var color2 = '#000'; + jsc.picker.sldGrad.draw(THIS.sliderSize, THIS.height, color1, color2); + break; + } + } + + + function redrawSld () { + var sldComponent = jsc.getSliderComponent(THIS); + if (sldComponent) { + // redraw the slider pointer + switch (sldComponent) { + case 's': var yComponent = 1; break; + case 'v': var yComponent = 2; break; + } + var y = Math.round((1 - THIS.hsv[yComponent] / 100) * (THIS.height - 1)); + jsc.picker.sldPtrOB.style.top = (y - (2 * THIS.pointerBorderWidth + THIS.pointerThickness) - Math.floor(sliderPtrSpace / 2)) + 'px'; + } + } + + + function isPickerOwner () { + return jsc.picker && jsc.picker.owner === THIS; + } + + + function blurValue () { + THIS.importColor(); + } + + + // Find the target element + if (typeof targetElement === 'string') { + var id = targetElement; + var elm = document.getElementById(id); + if (elm) { + this.targetElement = elm; + } else { + jsc.warn('Could not find target element with ID \'' + id + '\''); + } + } else if (targetElement) { + this.targetElement = targetElement; + } else { + jsc.warn('Invalid target element: \'' + targetElement + '\''); + } + + if (this.targetElement._jscLinkedInstance) { + jsc.warn('Cannot link jscolor twice to the same element. Skipping.'); + return; + } + this.targetElement._jscLinkedInstance = this; + + // Find the value element + this.valueElement = jsc.fetchElement(this.valueElement); + // Find the style element + this.styleElement = jsc.fetchElement(this.styleElement); + + var THIS = this; + var container = + this.container ? + jsc.fetchElement(this.container) : + document.getElementsByTagName('body')[0]; + var sliderPtrSpace = 3; // px + + // For BUTTON elements it's important to stop them from sending the form when clicked + // (e.g. in Safari) + if (jsc.isElementType(this.targetElement, 'button')) { + if (this.targetElement.onclick) { + var origCallback = this.targetElement.onclick; + this.targetElement.onclick = function (evt) { + origCallback.call(this, evt); + return false; + }; + } else { + this.targetElement.onclick = function () { return false; }; + } + } + + /* + var elm = this.targetElement; + do { + // If the target element or one of its offsetParents has fixed position, + // then use fixed positioning instead + // + // Note: In Firefox, getComputedStyle returns null in a hidden iframe, + // that's why we need to check if the returned style object is non-empty + var currStyle = jsc.getStyle(elm); + if (currStyle && currStyle.position.toLowerCase() === 'fixed') { + this.fixed = true; + } + + if (elm !== this.targetElement) { + // attach onParentScroll so that we can recompute the picker position + // when one of the offsetParents is scrolled + if (!elm._jscEventsAttached) { + jsc.attachEvent(elm, 'scroll', jsc.onParentScroll); + elm._jscEventsAttached = true; + } + } + } while ((elm = elm.offsetParent) && !jsc.isElementType(elm, 'body')); + */ + + // valueElement + if (this.valueElement) { + if (jsc.isElementType(this.valueElement, 'input')) { + var updateField = function () { + THIS.fromString(THIS.valueElement.value, jsc.leaveValue); + jsc.dispatchFineChange(THIS); + }; + jsc.attachEvent(this.valueElement, 'keyup', updateField); + jsc.attachEvent(this.valueElement, 'input', updateField); + jsc.attachEvent(this.valueElement, 'blur', blurValue); + this.valueElement.setAttribute('autocomplete', 'off'); + } + } + + // styleElement + if (this.styleElement) { + this.styleElement._jscOrigStyle = { + backgroundImage : this.styleElement.style.backgroundImage, + backgroundColor : this.styleElement.style.backgroundColor, + color : this.styleElement.style.color + }; + } + + if (this.value) { + // Try to set the color from the .value option and if unsuccessful, + // export the current color + this.fromString(this.value) || this.exportColor(); + } else { + this.importColor(); + } + } + +}; + + +//================================ +// Public properties and methods +//================================ + + +// By default, search for all elements with class="jscolor" and install a color picker on them. +// +// You can change what class name will be looked for by setting the property jscolor.lookupClass +// anywhere in your HTML document. To completely disable the automatic lookup, set it to null. +// +jsc.jscolor.lookupClass = 'jscolor'; + + +jsc.jscolor.installByClassName = function (className) { + var inputElms = document.getElementsByTagName('input'); + var buttonElms = document.getElementsByTagName('button'); + + jsc.tryInstallOnElements(inputElms, className); + jsc.tryInstallOnElements(buttonElms, className); +}; + + +jsc.register(); + + +return jsc.jscolor; + + +})(); } diff --git a/lib/SimpleSAML/Auth/Default.php b/lib/SimpleSAML/Auth/Default.php new file mode 100755 index 0000000..17ad9c3 --- /dev/null +++ b/lib/SimpleSAML/Auth/Default.php @@ -0,0 +1,139 @@ +initLogin($return, $errorURL, $params); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use + * SimpleSAML_Auth_State::getPersistentAuthData() instead. + */ + public static function extractPersistentAuthState(array &$state) + { + + return SimpleSAML_Auth_State::getPersistentAuthData($state); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML_Auth_Source::loginCompleted() instead. + */ + public static function loginCompleted($state) + { + SimpleSAML_Auth_Source::loginCompleted($state); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. + */ + public static function initLogoutReturn($returnURL, $authority) + { + assert(is_string($returnURL)); + assert(is_string($authority)); + + $session = SimpleSAML_Session::getSessionFromRequest(); + + $state = $session->getAuthData($authority, 'LogoutState'); + $session->doLogout($authority); + + $state['SimpleSAML_Auth_Default.ReturnURL'] = $returnURL; + $state['LogoutCompletedHandler'] = array(get_class(), 'logoutCompleted'); + + $as = SimpleSAML_Auth_Source::getById($authority); + if ($as === null) { + // The authority wasn't an authentication source... + self::logoutCompleted($state); + } + + $as->logout($state); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. + */ + public static function initLogout($returnURL, $authority) + { + assert(is_string($returnURL)); + assert(is_string($authority)); + + self::initLogoutReturn($returnURL, $authority); + + \SimpleSAML\Utils\HTTP::redirectTrustedURL($returnURL); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. + */ + public static function logoutCompleted($state) + { + assert(is_array($state)); + assert(array_key_exists('SimpleSAML_Auth_Default.ReturnURL', $state)); + + \SimpleSAML\Utils\HTTP::redirectTrustedURL($state['SimpleSAML_Auth_Default.ReturnURL']); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML_Auth_Source::logoutCallback() instead. + */ + public static function logoutCallback($state) + { + SimpleSAML_Auth_Source::logoutCallback($state); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use + * sspmod_saml_Auth_Source_SP::handleUnsolicitedAuth() instead. + */ + public static function handleUnsolicitedAuth($authId, array $state, $redirectTo) + { + sspmod_saml_Auth_Source_SP::handleUnsolicitedAuth($authId, $state, $redirectTo); + } + + + /** + * Return an authentication source by ID. + * + * @param string $id The id of the authentication source. + * @return SimpleSAML_Auth_Source The authentication source. + * @throws Exception If the $id does not correspond with an authentication source. + */ + private static function getAuthSource($id) + { + $as = SimpleSAML_Auth_Source::getById($id); + if ($as === null) { + throw new Exception('Invalid authentication source: ' . $id); + } + return $as; + } +} diff --git a/lib/SimpleSAML/Auth/LDAP.php b/lib/SimpleSAML/Auth/LDAP.php new file mode 100755 index 0000000..f5d47f5 --- /dev/null +++ b/lib/SimpleSAML/Auth/LDAP.php @@ -0,0 +1,775 @@ + + * @author Anders Lund, UNINETT AS. + * @package SimpleSAMLphp + */ +class SimpleSAML_Auth_LDAP +{ + /** + * LDAP link identifier. + * + * @var resource + */ + protected $ldap = null; + + /** + * LDAP user: authz_id if SASL is in use, binding dn otherwise + */ + protected $authz_id = null; + + /** + * Timeout value, in seconds. + * + * @var int + */ + protected $timeout = 0; + + /** + * Private constructor restricts instantiation to getInstance(). + * + * @param string $hostname + * @param bool $enable_tls + * @param bool $debug + * @param int $timeout + * @param int $port + * @param bool $referrals + */ + public function __construct($hostname, $enable_tls = true, $debug = false, $timeout = 0, $port = 389, $referrals = true) + { + // Debug + SimpleSAML\Logger::debug('Library - LDAP __construct(): Setup LDAP with '. + 'host=\''.$hostname. + '\', tls='.var_export($enable_tls, true). + ', debug='.var_export($debug, true). + ', timeout='.var_export($timeout, true). + ', referrals='.var_export($referrals, true)); + + /* + * Set debug level before calling connect. Note that this passes + * NULL to ldap_set_option, which is an undocumented feature. + * + * OpenLDAP 2.x.x or Netscape Directory SDK x.x needed for this option. + */ + if ($debug && !ldap_set_option(null, LDAP_OPT_DEBUG_LEVEL, 7)) { + SimpleSAML\Logger::warning('Library - LDAP __construct(): Unable to set debug level (LDAP_OPT_DEBUG_LEVEL) to 7'); + } + + /* + * Prepare a connection for to this LDAP server. Note that this function + * doesn't actually connect to the server. + */ + $this->ldap = @ldap_connect($hostname, $port); + if ($this->ldap === false) { + throw $this->makeException('Library - LDAP __construct(): Unable to connect to \''.$hostname.'\'', ERR_INTERNAL); + } + + // Enable LDAP protocol version 3 + if (!@ldap_set_option($this->ldap, LDAP_OPT_PROTOCOL_VERSION, 3)) { + throw $this->makeException('Library - LDAP __construct(): Failed to set LDAP Protocol version (LDAP_OPT_PROTOCOL_VERSION) to 3', ERR_INTERNAL); + } + + // Set referral option + if (!@ldap_set_option($this->ldap, LDAP_OPT_REFERRALS, $referrals)) { + throw $this->makeException('Library - LDAP __construct(): Failed to set LDAP Referrals (LDAP_OPT_REFERRALS) to '.$referrals, ERR_INTERNAL); + } + + // Set timeouts, if supported + // (OpenLDAP 2.x.x or Netscape Directory SDK x.x needed) + $this->timeout = $timeout; + if ($timeout > 0) { + if (!@ldap_set_option($this->ldap, LDAP_OPT_NETWORK_TIMEOUT, $timeout)) { + SimpleSAML\Logger::warning('Library - LDAP __construct(): Unable to set timeouts (LDAP_OPT_NETWORK_TIMEOUT) to '.$timeout); + } + if (!@ldap_set_option($this->ldap, LDAP_OPT_TIMELIMIT, $timeout)) { + SimpleSAML\Logger::warning('Library - LDAP __construct(): Unable to set timeouts (LDAP_OPT_TIMELIMIT) to '.$timeout); + } + } + + // Enable TLS, if needed + if (stripos($hostname, "ldaps:") === false && $enable_tls) { + if (!@ldap_start_tls($this->ldap)) { + throw $this->makeException('Library - LDAP __construct(): Unable to force TLS', ERR_INTERNAL); + } + } + } + + + /** + * Convenience method to create an LDAPException as well as log the + * description. + * + * @param string $description + * The exception's description + * @return Exception + */ + private function makeException($description, $type = null) + { + $errNo = 0x00; + + // Log LDAP code and description, if possible + if (empty($this->ldap)) { + SimpleSAML\Logger::error($description); + } else { + $errNo = @ldap_errno($this->ldap); + } + + // Decide exception type and return + if ($type) { + if ($errNo !== 0) { + // Only log real LDAP errors; not success + SimpleSAML\Logger::error($description.'; cause: \''.ldap_error($this->ldap).'\' (0x'.dechex($errNo).')'); + } else { + SimpleSAML\Logger::error($description); + } + + switch ($type) { + case ERR_INTERNAL:// 1 - ExInternal + return new SimpleSAML_Error_Exception($description, $errNo); + case ERR_NO_USER:// 2 - ExUserNotFound + return new SimpleSAML_Error_UserNotFound($description, $errNo); + case ERR_WRONG_PW:// 3 - ExInvalidCredential + return new SimpleSAML_Error_InvalidCredential($description, $errNo); + case ERR_AS_DATA_INCONSIST:// 4 - ExAsDataInconsist + return new SimpleSAML_Error_AuthSource('ldap', $description); + case ERR_AS_INTERNAL:// 5 - ExAsInternal + return new SimpleSAML_Error_AuthSource('ldap', $description); + } + } else { + if ($errNo !== 0) { + $description .= '; cause: \''.ldap_error($this->ldap).'\' (0x'.dechex($errNo).')'; + if (@ldap_get_option($this->ldap, LDAP_OPT_DIAGNOSTIC_MESSAGE, $extendedError) && !empty($extendedError)) { + $description .= '; additional: \''.$extendedError.'\''; + } + } + switch ($errNo) { + case 0x20://LDAP_NO_SUCH_OBJECT + SimpleSAML\Logger::warning($description); + return new SimpleSAML_Error_UserNotFound($description, $errNo); + case 0x31://LDAP_INVALID_CREDENTIALS + SimpleSAML\Logger::info($description); + return new SimpleSAML_Error_InvalidCredential($description, $errNo); + case -1://NO_SERVER_CONNECTION + SimpleSAML\Logger::error($description); + return new SimpleSAML_Error_AuthSource('ldap', $description); + default: + SimpleSAML\Logger::error($description); + return new SimpleSAML_Error_AuthSource('ldap', $description); + } + } + } + + + /** + * Search for DN from a single base. + * + * @param string $base + * Indication of root of subtree to search + * @param string|array $attribute + * The attribute name(s) to search for. + * @param string $value + * The attribute value to search for. + * Additional search filter + * @param string|null $searchFilter + * The scope of the search + * @param string $scope + * @return string + * The DN of the resulting found element. + * @throws SimpleSAML_Error_Exception if: + * - Attribute parameter is wrong type + * @throws SimpleSAML_Error_AuthSource if: + * - Not able to connect to LDAP server + * - False search result + * - Count return false + * - Searche found more than one result + * - Failed to get first entry from result + * - Failed to get DN for entry + * @throws SimpleSAML_Error_UserNotFound if: + * - Zero entries were found + */ + private function search($base, $attribute, $value, $searchFilter = null, $scope = "subtree") + { + // Create the search filter + $attribute = self::escape_filter_value($attribute, false); + $value = self::escape_filter_value($value, true); + $filter = ''; + foreach ($attribute as $attr) { + $filter .= '('.$attr.'='.$value.')'; + } + $filter = '(|'.$filter.')'; + + // Append LDAP filters if defined + if ($searchFilter != null) { + $filter = "(&".$filter."".$searchFilter.")"; + } + + // Search using generated filter + SimpleSAML\Logger::debug('Library - LDAP search(): Searching base ('.$scope.') \''.$base.'\' for \''.$filter.'\''); + if ($scope === 'base') { + $result = @ldap_read($this->ldap, $base, $filter, array(), 0, 0, $this->timeout, LDAP_DEREF_NEVER); + } else if ($scope === 'onelevel') { + $result = @ldap_list($this->ldap, $base, $filter, array(), 0, 0, $this->timeout, LDAP_DEREF_NEVER); + } else { + $result = @ldap_search($this->ldap, $base, $filter, array(), 0, 0, $this->timeout, LDAP_DEREF_NEVER); + } + + if ($result === false) { + throw $this->makeException('Library - LDAP search(): Failed search on base \''.$base.'\' for \''.$filter.'\''); + } + + // Sanity checks on search results + $count = @ldap_count_entries($this->ldap, $result); + if ($count === false) { + throw $this->makeException('Library - LDAP search(): Failed to get number of entries returned'); + } elseif ($count > 1) { + // More than one entry is found. External error + throw $this->makeException('Library - LDAP search(): Found '.$count.' entries searching base \''.$base.'\' for \''.$filter.'\'', ERR_AS_DATA_INCONSIST); + } elseif ($count === 0) { + // No entry is fond => wrong username is given (or not registered in the catalogue). User error + throw $this->makeException('Library - LDAP search(): Found no entries searching base \''.$base.'\' for \''.$filter.'\'', ERR_NO_USER); + } + + + // Resolve the DN from the search result + $entry = @ldap_first_entry($this->ldap, $result); + if ($entry === false) { + throw $this->makeException('Library - LDAP search(): Unable to retrieve result after searching base \''.$base.'\' for \''.$filter.'\''); + } + $dn = @ldap_get_dn($this->ldap, $entry); + if ($dn === false) { + throw $this->makeException('Library - LDAP search(): Unable to get DN after searching base \''.$base.'\' for \''.$filter.'\''); + } + return $dn; + } + + + /** + * Search for a DN. + * + * @param string|array $base + * The base, or bases, which to search from. + * @param string|array $attribute + * The attribute name(s) searched for. + * @param string $value + * The attribute value searched for. + * @param bool $allowZeroHits + * Determines if the method will throw an exception if no hits are found. + * Defaults to FALSE. + * @param string|null $searchFilter + * Additional searchFilter to be added to the (attribute=value) filter + * @param string $scope + * The scope of the search + * @return string + * The DN of the matching element, if found. If no element was found and + * $allowZeroHits is set to FALSE, an exception will be thrown; otherwise + * NULL will be returned. + * @throws SimpleSAML_Error_AuthSource if: + * - LDAP search encounter some problems when searching cataloge + * - Not able to connect to LDAP server + * @throws SimpleSAML_Error_UserNotFound if: + * - $allowZeroHits is FALSE and no result is found + * + */ + public function searchfordn($base, $attribute, $value, $allowZeroHits = false, $searchFilter = null, $scope = 'subtree') + { + // Traverse all search bases, returning DN if found + $bases = SimpleSAML\Utils\Arrays::arrayize($base); + foreach ($bases as $current) { + try { + // Single base search + $result = $this->search($current, $attribute, $value, $searchFilter, $scope); + + // We don't hawe to look any futher if user is found + if (!empty($result)) { + return $result; + } + // If search failed, attempt the other base DNs + } catch (SimpleSAML_Error_UserNotFound $e) { + // Just continue searching + } + } + // Decide what to do for zero entries + SimpleSAML\Logger::debug('Library - LDAP searchfordn(): No entries found'); + if ($allowZeroHits) { + // Zero hits allowed + return null; + } else { + // Zero hits not allowed + throw $this->makeException('Library - LDAP searchfordn(): LDAP search returned zero entries for filter \'('. + join(' | ', $attribute).' = '.$value.')\' on base(s) \'('.join(' & ', $bases).')\'', 2); + } + } + + + /** + * This method was created specifically for the ldap:AttributeAddUsersGroups->searchActiveDirectory() + * method, but could be used for other LDAP search needs. It will search LDAP and return all the entries. + * + * @throws Exception + * @param string|array $bases + * @param string|array $filters Array of 'attribute' => 'values' to be combined into the filter, or a raw filter string + * @param string|array $attributes Array of attributes requested from LDAP + * @param bool $and If multiple filters defined, then either bind them with & or | + * @param bool $escape Weather to escape the filter values or not + * @param string $scope The scope of the search + * @return array + */ + public function searchformultiple($bases, $filters, $attributes = array(), $and = true, $escape = true, $scope = 'subtree') + { + // Escape the filter values, if requested + if ($escape) { + $filters = $this->escape_filter_value($filters, false); + } + + // Build search filter + $filter = ''; + if (is_array($filters)) { + foreach ($filters as $attribute => $value) { + $filter .= "($attribute=$value)"; + } + if (count($filters) > 1) { + $filter = ($and ? '(&' : '(|').$filter.')'; + } + } elseif (is_string($filters)) { + $filter = $filters; + } + + // Verify filter was created + if ($filter == '' || $filter == '(=)') { + throw $this->makeException('ldap:LdapConnection->search_manual : No search filters defined', ERR_INTERNAL); + } + + // Verify at least one base was passed + $bases = (array) $bases; + if (empty($bases)) { + throw $this->makeException('ldap:LdapConnection->search_manual : No base DNs were passed', ERR_INTERNAL); + } + + // Search each base until result is found + $result = false; + foreach ($bases as $base) { + if ($scope === 'base') { + $result = @ldap_read($this->ldap, $base, $filter, $attributes, 0, 0, $this->timeout); + } else if ($scope === 'onelevel') { + $result = @ldap_list($this->ldap, $base, $filter, $attributes, 0, 0, $this->timeout); + } else { + $result = @ldap_search($this->ldap, $base, $filter, $attributes, 0, 0, $this->timeout); + } + + if ($result !== false && @ldap_count_entries($this->ldap, $result) > 0) { + break; + } + } + + // Verify that a result was found in one of the bases + if ($result === false) { + throw $this->makeException( + 'ldap:LdapConnection->search_manual : Failed to search LDAP using base(s) ['. + implode('; ', $bases).'] with filter ['.$filter.']. LDAP error ['. + ldap_error($this->ldap).']' + ); + } elseif (@ldap_count_entries($this->ldap, $result) < 1) { + throw $this->makeException( + 'ldap:LdapConnection->search_manual : No entries found in LDAP using base(s) ['. + implode('; ', $bases).'] with filter ['.$filter.']', + ERR_NO_USER + ); + } + + // Get all results + $results = ldap_get_entries($this->ldap, $result); + if ($results === false) { + throw $this->makeException( + 'ldap:LdapConnection->search_manual : Unable to retrieve entries from search results' + ); + } + + // parse each entry and process its attributes + for ($i = 0; $i < $results['count']; $i++) { + $entry = $results[$i]; + + // iterate over the attributes of the entry + for ($j = 0; $j < $entry['count']; $j++) { + $name = $entry[$j]; + $attribute = $entry[$name]; + + // decide whether to base64 encode or not + for ($k = 0; $k < $attribute['count']; $k++) { + // base64 encode binary attributes + if (strtolower($name) === 'jpegphoto' || strtolower($name) === 'objectguid') { + $results[$i][$name][$k] = base64_encode($attribute[$k]); + } + } + } + } + + // Remove the count and return + unset($results['count']); + return $results; + } + + + /** + * Bind to LDAP with a specific DN and password. Simple wrapper around + * ldap_bind() with some additional logging. + * + * @param string $dn + * The DN used. + * @param string $password + * The password used. + * @param array $sasl_args + * Array of SASL options for SASL bind + * @return bool + * Returns TRUE if successful, FALSE if + * LDAP_INVALID_CREDENTIALS, LDAP_X_PROXY_AUTHZ_FAILURE, + * LDAP_INAPPROPRIATE_AUTH, LDAP_INSUFFICIENT_ACCESS + * @throws SimpleSAML_Error_Exception on other errors + */ + public function bind($dn, $password, array $sasl_args = null) + { + if ($sasl_args != null) { + if (!function_exists('ldap_sasl_bind')) { + $ex_msg = 'Library - missing SASL support'; + throw $this->makeException($ex_msg); + } + + // SASL Bind, with error handling + $authz_id = $sasl_args['authz_id']; + $error = @ldap_sasl_bind( + $this->ldap, + $dn, + $password, + $sasl_args['mech'], + $sasl_args['realm'], + $sasl_args['authc_id'], + $sasl_args['authz_id'], + $sasl_args['props'] + ); + } else { + // Simple Bind, with error handling + $authz_id = $dn; + $error = @ldap_bind($this->ldap, $dn, $password); + } + + if ($error === true) { + // Good + $this->authz_id = $authz_id; + SimpleSAML\Logger::debug('Library - LDAP bind(): Bind successful with DN \''.$dn.'\''); + return true; + } + + /* Handle errors + * LDAP_INVALID_CREDENTIALS + * LDAP_INSUFFICIENT_ACCESS */ + switch (ldap_errno($this->ldap)) { + case 32: // LDAP_NO_SUCH_OBJECT + // no break + case 47: // LDAP_X_PROXY_AUTHZ_FAILURE + // no break + case 48: // LDAP_INAPPROPRIATE_AUTH + // no break + case 49: // LDAP_INVALID_CREDENTIALS + // no break + case 50: // LDAP_INSUFFICIENT_ACCESS + return false; + default: + break; + } + + // Bad + throw $this->makeException('Library - LDAP bind(): Bind failed with DN \''.$dn.'\''); + } + + + /** + * Applies an LDAP option to the current connection. + * + * @throws Exception + * @param $option + * @param $value + * @return void + */ + public function setOption($option, $value) + { + // Attempt to set the LDAP option + if (!@ldap_set_option($this->ldap, $option, $value)) { + throw $this->makeException( + 'ldap:LdapConnection->setOption : Failed to set LDAP option ['. + $option.'] with the value ['.$value.'] error: '.ldap_error($this->ldap), + ERR_INTERNAL + ); + } + + // Log debug message + SimpleSAML\Logger::debug( + 'ldap:LdapConnection->setOption : Set the LDAP option ['. + $option.'] with the value ['.$value.']' + ); + } + + + /** + * Search a given DN for attributes, and return the resulting associative + * array. + * + * @param string $dn + * The DN of an element. + * @param string|array $attributes + * The names of the attribute(s) to retrieve. Defaults to NULL; that is, + * all available attributes. Note that this is not very effective. + * @param int $maxsize + * The maximum size of any attribute's value(s). If exceeded, the attribute + * will not be returned. + * @return array + * The array of attributes and their values. + * @see http://no.php.net/manual/en/function.ldap-read.php + */ + public function getAttributes($dn, $attributes = null, $maxsize = null) + { + // Preparations, including a pretty debug message... + $description = 'all attributes'; + if (is_array($attributes)) { + $description = '\''.join(',', $attributes).'\''; + } else { + // Get all attributes... + // TODO: Verify that this originally was the intended behaviour. Could $attributes be a string? + $attributes = array(); + } + SimpleSAML\Logger::debug('Library - LDAP getAttributes(): Getting '.$description.' from DN \''.$dn.'\''); + + // Attempt to get attributes + // TODO: Should aliases be dereferenced? + $result = @ldap_read($this->ldap, $dn, 'objectClass=*', $attributes, 0, 0, $this->timeout); + if ($result === false) { + throw $this->makeException('Library - LDAP getAttributes(): Failed to get attributes from DN \''.$dn.'\''); + } + $entry = @ldap_first_entry($this->ldap, $result); + if ($entry === false) { + throw $this->makeException('Library - LDAP getAttributes(): Could not get first entry from DN \''.$dn.'\''); + } + $attributes = @ldap_get_attributes($this->ldap, $entry); // Recycling $attributes... Possibly bad practice. + if ($attributes === false) { + throw $this->makeException('Library - LDAP getAttributes(): Could not get attributes of first entry from DN \''.$dn.'\''); + } + + // Parsing each found attribute into our result set + $result = array(); // Recycling $result... Possibly bad practice. + for ($i = 0; $i < $attributes['count']; $i++) { + // Ignore attributes that exceed the maximum allowed size + $name = $attributes[$i]; + $attribute = $attributes[$name]; + + // Deciding whether to base64 encode + $values = array(); + for ($j = 0; $j < $attribute['count']; $j++) { + $value = $attribute[$j]; + + if (!empty($maxsize) && strlen($value) > $maxsize) { + // Ignoring and warning + SimpleSAML\Logger::warning('Library - LDAP getAttributes(): Attribute \''. + $name.'\' exceeded maximum allowed size by '.(strlen($value) - $maxsize)); + continue; + } + + // Base64 encode binary attributes + if (strtolower($name) === 'jpegphoto' || strtolower($name) === 'objectguid' || strtolower($name) === 'ms-ds-consistencyguid') { + $values[] = base64_encode($value); + } else { + $values[] = $value; + } + } + + // Adding + $result[$name] = $values; + } + + // We're done + SimpleSAML\Logger::debug('Library - LDAP getAttributes(): Found attributes \'('.join(',', array_keys($result)).')\''); + return $result; + } + + + /** + * Enter description here... + * + * @param array $config + * @param string $username + * @param string $password + * @return array|bool + */ + public function validate($config, $username, $password = null) + { + /* Escape any characters with a special meaning in LDAP. The following + * characters have a special meaning (according to RFC 2253): + * ',', '+', '"', '\', '<', '>', ';', '*' + * These characters are escaped by prefixing them with '\'. + */ + $username = addcslashes($username, ',+"\\<>;*'); + + if (isset($config['priv_user_dn'])) { + $this->bind($config['priv_user_dn'], $config['priv_user_pw']); + } + if (isset($config['dnpattern'])) { + $dn = str_replace('%username%', $username, $config['dnpattern']); + } else { + $dn = $this->searchfordn($config['searchbase'], $config['searchattributes'], $username); + } + + if ($password !== null) { // checking users credentials ... assuming below that she may read her own attributes ... + // escape characters with a special meaning, also in the password + $password = addcslashes($password, ',+"\\<>;*'); + if (!$this->bind($dn, $password)) { + SimpleSAML\Logger::info('Library - LDAP validate(): Failed to authenticate \''.$username.'\' using DN \''.$dn.'\''); + return false; + } + } + + /* + * Retrieve attributes from LDAP + */ + $attributes = $this->getAttributes($dn, $config['attributes']); + return $attributes; + } + + + /** + * Borrowed function from PEAR:LDAP. + * + * Escapes the given VALUES according to RFC 2254 so that they can be safely used in LDAP filters. + * + * Any control characters with an ACII code < 32 as well as the characters with special meaning in + * LDAP filters "*", "(", ")", and "\" (the backslash) are converted into the representation of a + * backslash followed by two hex digits representing the hexadecimal value of the character. + * + * @static + * @param string|array $values Array of values to escape + * @return array Array $values, but escaped + */ + public static function escape_filter_value($values = array(), $singleValue = true) + { + // Parameter validation + $values = \SimpleSAML\Utils\Arrays::arrayize($values); + + foreach ($values as $key => $val) { + // Escaping of filter meta characters + $val = str_replace('\\', '\5c', $val); + $val = str_replace('*', '\2a', $val); + $val = str_replace('(', '\28', $val); + $val = str_replace(')', '\29', $val); + + // ASCII < 32 escaping + $val = self::asc2hex32($val); + + if (null === $val) { + $val = '\0'; // apply escaped "null" if string is empty + } + + $values[$key] = $val; + } + if ($singleValue) { + return $values[0]; + } + return $values; + } + + + /** + * Borrowed function from PEAR:LDAP. + * + * Converts all ASCII chars < 32 to "\HEX" + * + * @param string $string String to convert + * + * @static + * @return string + */ + public static function asc2hex32($string) + { + for ($i = 0; $i < strlen($string); $i++) { + $char = substr($string, $i, 1); + if (ord($char) < 32) { + $hex = dechex(ord($char)); + if (strlen($hex) == 1) { + $hex = '0'.$hex; + } + $string = str_replace($char, '\\'.$hex, $string); + } + } + return $string; + } + + /** + * Convert SASL authz_id into a DN + */ + private function authzid_to_dn($searchBase, $searchAttributes, $authz_id) + { + if (preg_match("/^dn:/", $authz_id)) { + return preg_replace("/^dn:/", "", $authz_id); + } + + if (preg_match("/^u:/", $authz_id)) { + return $this->searchfordn( + $searchBase, + $searchAttributes, + preg_replace("/^u:/", "", $authz_id) + ); + } + return $authz_id; + } + + /** + * ldap_exop_whoami accessor, if available. Use requested authz_id + * otherwise. + * + * ldap_exop_whoami() has been provided as a third party patch that + * waited several years to get its way upstream: + * http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/databases/php-ldap/files + * + * When it was integrated into PHP repository, the function prototype + * was changed, The new prototype was used in third party patch for + * PHP 7.0 and 7.1, hence the version test below. + */ + public function whoami($searchBase, $searchAttributes) + { + $authz_id = ''; + if (function_exists('ldap_exop_whoami')) { + if (version_compare(phpversion(), '7', '<')) { + if (ldap_exop_whoami($this->ldap, $authz_id) !== true) { + throw $this->makeException('LDAP whoami exop failure'); + } + } else { + if (($authz_id = ldap_exop_whoami($this->ldap)) === false) { + throw $this->makeException('LDAP whoami exop failure'); + } + } + } else { + $authz_id = $this->authz_id; + } + + $dn = $this->authzid_to_dn($searchBase, $searchAttributes, $authz_id); + + if (!isset($dn) || ($dn == '')) { + throw $this->makeException('Cannot figure userID'); + } + + return $dn; + } +} diff --git a/lib/SimpleSAML/Auth/ProcessingChain.php b/lib/SimpleSAML/Auth/ProcessingChain.php new file mode 100755 index 0000000..d3aef12 --- /dev/null +++ b/lib/SimpleSAML/Auth/ProcessingChain.php @@ -0,0 +1,369 @@ +filters = array(); + + $config = SimpleSAML_Configuration::getInstance(); + $configauthproc = $config->getArray('authproc.' . $mode, null); + + if (!empty($configauthproc)) { + $configfilters = self::parseFilterList($configauthproc); + self::addFilters($this->filters, $configfilters); + } + + if (array_key_exists('authproc', $idpMetadata)) { + $idpFilters = self::parseFilterList($idpMetadata['authproc']); + self::addFilters($this->filters, $idpFilters); + } + + if (array_key_exists('authproc', $spMetadata)) { + $spFilters = self::parseFilterList($spMetadata['authproc']); + self::addFilters($this->filters, $spFilters); + } + + + SimpleSAML\Logger::debug('Filter config for ' . $idpMetadata['entityid'] . '->' . + $spMetadata['entityid'] . ': ' . str_replace("\n", '', var_export($this->filters, true))); + } + + + /** + * Sort & merge filter configuration + * + * Inserts unsorted filters into sorted filter list. This sort operation is stable. + * + * @param array &$target Target filter list. This list must be sorted. + * @param array $src Source filters. May be unsorted. + */ + private static function addFilters(&$target, $src) + { + assert(is_array($target)); + assert(is_array($src)); + + foreach ($src as $filter) { + $fp = $filter->priority; + + // Find insertion position for filter + for ($i = count($target)-1; $i >= 0; $i--) { + if ($target[$i]->priority <= $fp) { + // The new filter should be inserted after this one + break; + } + } + /* $i now points to the filter which should preceede the current filter. */ + array_splice($target, $i+1, 0, array($filter)); + } + } + + + /** + * Parse an array of authentication processing filters. + * + * @param array $filterSrc Array with filter configuration. + * @return array Array of SimpleSAML_Auth_ProcessingFilter objects. + */ + private static function parseFilterList($filterSrc) + { + assert(is_array($filterSrc)); + + $parsedFilters = array(); + + foreach ($filterSrc as $priority => $filter) { + if (is_string($filter)) { + $filter = array('class' => $filter); + } + + if (!is_array($filter)) { + throw new Exception('Invalid authentication processing filter configuration: ' . + 'One of the filters wasn\'t a string or an array.'); + } + + $parsedFilters[] = self::parseFilter($filter, $priority); + } + + return $parsedFilters; + } + + + /** + * Parse an authentication processing filter. + * + * @param array $config Array with the authentication processing filter configuration. + * @param int $priority The priority of the current filter, (not included in the filter + * definition.) + * @return SimpleSAML_Auth_ProcessingFilter The parsed filter. + */ + private static function parseFilter($config, $priority) + { + assert(is_array($config)); + + if (!array_key_exists('class', $config)) { + throw new Exception('Authentication processing filter without name given.'); + } + + $className = SimpleSAML\Module::resolveClass($config['class'], 'Auth_Process', 'SimpleSAML_Auth_ProcessingFilter'); + $config['%priority'] = $priority; + unset($config['class']); + return new $className($config, null); + } + + + /** + * Process the given state. + * + * This function will only return if processing completes. If processing requires showing + * a page to the user, we will not be able to return from this function. There are two ways + * this can be handled: + * - Redirect to a URL: We will redirect to the URL set in $state['ReturnURL']. + * - Call a function: We will call the function set in $state['ReturnCall']. + * + * If an exception is thrown during processing, it should be handled by the caller of + * this function. If the user has redirected to a different page, the exception will be + * returned through the exception handler defined on the state array. See + * SimpleSAML_Auth_State for more information. + * + * @see SimpleSAML_Auth_State + * @see SimpleSAML_Auth_State::EXCEPTION_HANDLER_URL + * @see SimpleSAML_Auth_State::EXCEPTION_HANDLER_FUNC + * + * @param array &$state The state we are processing. + */ + public function processState(&$state) + { + assert(is_array($state)); + assert(array_key_exists('ReturnURL', $state) || array_key_exists('ReturnCall', $state)); + assert(!array_key_exists('ReturnURL', $state) || !array_key_exists('ReturnCall', $state)); + + $state[self::FILTERS_INDEX] = $this->filters; + + try { + // TODO: remove this in SSP 2.0 + if (!array_key_exists('UserID', $state)) { + // No unique user ID present. Attempt to add one. + self::addUserID($state); + } + + while (count($state[self::FILTERS_INDEX]) > 0) { + $filter = array_shift($state[self::FILTERS_INDEX]); + $filter->process($state); + } + } catch (SimpleSAML_Error_Exception $e) { + // No need to convert the exception + throw $e; + } catch (Exception $e) { + /* + * To be consistent with the exception we return after an redirect, + * we convert this exception before returning it. + */ + throw new SimpleSAML_Error_UnserializableException($e); + } + + // Completed + } + + + /** + * Continues processing of the state. + * + * This function is used to resume processing by filters which for example needed to show + * a page to the user. + * + * This function will never return. Exceptions thrown during processing will be passed + * to whatever exception handler is defined in the state array. + * + * @param array $state The state we are processing. + */ + public static function resumeProcessing($state) + { + assert(is_array($state)); + + while (count($state[self::FILTERS_INDEX]) > 0) { + $filter = array_shift($state[self::FILTERS_INDEX]); + try { + $filter->process($state); + } catch (SimpleSAML_Error_Exception $e) { + SimpleSAML_Auth_State::throwException($state, $e); + } catch (Exception $e) { + $e = new SimpleSAML_Error_UnserializableException($e); + SimpleSAML_Auth_State::throwException($state, $e); + } + } + + // Completed + + assert(array_key_exists('ReturnURL', $state) || array_key_exists('ReturnCall', $state)); + assert(!array_key_exists('ReturnURL', $state) || !array_key_exists('ReturnCall', $state)); + + + if (array_key_exists('ReturnURL', $state)) { + /* + * Save state information, and redirect to the URL specified + * in $state['ReturnURL']. + */ + $id = SimpleSAML_Auth_State::saveState($state, self::COMPLETED_STAGE); + \SimpleSAML\Utils\HTTP::redirectTrustedURL($state['ReturnURL'], array(self::AUTHPARAM => $id)); + } else { + /* Pass the state to the function defined in $state['ReturnCall']. */ + + // We are done with the state array in the session. Delete it. + SimpleSAML_Auth_State::deleteState($state); + + $func = $state['ReturnCall']; + assert(is_callable($func)); + + call_user_func($func, $state); + assert(false); + } + } + + + /** + * Process the given state passivly. + * + * Modules with user interaction are expected to throw an \SimpleSAML\Module\saml\Error\NoPassive exception + * which are silently ignored. Exceptions of other types are passed further up the call stack. + * + * This function will only return if processing completes. + * + * @param array &$state The state we are processing. + */ + public function processStatePassive(&$state) + { + assert(is_array($state)); + // Should not be set when calling this method + assert(!array_key_exists('ReturnURL', $state)); + + // Notify filters about passive request + $state['isPassive'] = true; + + $state[self::FILTERS_INDEX] = $this->filters; + + // TODO: remove this in SSP 2.0 + if (!array_key_exists('UserID', $state)) { + // No unique user ID present. Attempt to add one. + self::addUserID($state); + } + + while (count($state[self::FILTERS_INDEX]) > 0) { + $filter = array_shift($state[self::FILTERS_INDEX]); + try { + $filter->process($state); + // Ignore SimpleSAML_Error_NoPassive exceptions + } catch (SimpleSAML_Error_NoPassive $e) { + // @deprecated will be removed in 2.0 + // Ignore \SimpleSAML\Error\NoPassive exceptions + } catch (\SimpleSAML\Module\saml\Error\NoPassive $e) { + // Ignore \SimpleSAML\Module\saml\Error\NoPassive exceptions + } + } + } + + /** + * Retrieve a state which has finished processing. + * + * @param string $id The state identifier. + * @see SimpleSAML_Auth_State::parseStateID() + * @return Array The state referenced by the $id parameter. + */ + public static function fetchProcessedState($id) + { + assert(is_string($id)); + + return SimpleSAML_Auth_State::loadState($id, self::COMPLETED_STAGE); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. + */ + private static function addUserID(&$state) + { + assert(is_array($state)); + assert(array_key_exists('Attributes', $state)); + + if (isset($state['Destination']['userid.attribute'])) { + $attributeName = $state['Destination']['userid.attribute']; + SimpleSAML\Logger::warning("The 'userid.attribute' option has been deprecated."); + } elseif (isset($state['Source']['userid.attribute'])) { + $attributeName = $state['Source']['userid.attribute']; + SimpleSAML\Logger::warning("The 'userid.attribute' option has been deprecated."); + } else { + // Default attribute + $attributeName = 'eduPersonPrincipalName'; + } + + if (!array_key_exists($attributeName, $state['Attributes'])) { + return; + } + + $uid = $state['Attributes'][$attributeName]; + if (count($uid) === 0) { + SimpleSAML\Logger::warning('Empty user id attribute [' . $attributeName . '].'); + return; + } + + if (count($uid) > 1) { + SimpleSAML\Logger::warning('Multiple attribute values for user id attribute [' . $attributeName . '].'); + return; + } + + // TODO: the attribute value should be trimmed + $uid = $uid[0]; + + if (empty($uid)) { + SimpleSAML\Logger::warning('Empty value in attribute '.$attributeName.". on user. Cannot set UserID."); + return; + } + $state['UserID'] = $uid; + } +} diff --git a/lib/SimpleSAML/Auth/ProcessingFilter.php b/lib/SimpleSAML/Auth/ProcessingFilter.php new file mode 100755 index 0000000..e6126da --- /dev/null +++ b/lib/SimpleSAML/Auth/ProcessingFilter.php @@ -0,0 +1,67 @@ +priority = $config['%priority']; + if (!is_int($this->priority)) { + throw new Exception('Invalid priority: ' . var_export($this->priority, true)); + } + unset($config['%priority']); + } + } + + + /** + * Process a request. + * + * When a filter returns from this function, it is assumed to have completed its task. + * + * @param array &$request The request we are currently processing. + */ + abstract public function process(&$request); +} diff --git a/lib/SimpleSAML/Auth/Simple.php b/lib/SimpleSAML/Auth/Simple.php new file mode 100755 index 0000000..9ad8e86 --- /dev/null +++ b/lib/SimpleSAML/Auth/Simple.php @@ -0,0 +1,401 @@ +authSource = $authSource; + $this->app_config = Configuration::getInstance()->getConfigItem('application', null); + } + + + /** + * Retrieve the implementing authentication source. + * + * @return \SimpleSAML_Auth_Source The authentication source. + * + * @throws \SimpleSAML_Error_AuthSource If the requested auth source is unknown. + */ + public function getAuthSource() + { + $as = Source::getById($this->authSource); + if ($as === null) { + throw new AuthSourceError($this->authSource, 'Unknown authentication source.'); + } + return $as; + } + + + /** + * Check if the user is authenticated. + * + * This function checks if the user is authenticated with the default authentication source selected by the + * 'default-authsource' option in 'config.php'. + * + * @return bool True if the user is authenticated, false if not. + */ + public function isAuthenticated() + { + $session = Session::getSessionFromRequest(); + + return $session->isValid($this->authSource); + } + + + /** + * Require the user to be authenticated. + * + * If the user is authenticated, this function returns immediately. + * + * If the user isn't authenticated, this function will authenticate the user with the authentication source, and + * then return the user to the current page. + * + * This function accepts an array $params, which controls some parts of the authentication. See the login() + * method for a description. + * + * @param array $params Various options to the authentication request. See the documentation. + */ + public function requireAuth(array $params = array()) + { + + $session = Session::getSessionFromRequest(); + + if ($session->isValid($this->authSource)) { + // Already authenticated + return; + } + + $this->login($params); + } + + + /** + * Start an authentication process. + * + * This function accepts an array $params, which controls some parts of the authentication. The accepted parameters + * depends on the authentication source being used. Some parameters are generic: + * - 'ErrorURL': A URL that should receive errors from the authentication. + * - 'KeepPost': If the current request is a POST request, keep the POST data until after the authentication. + * - 'ReturnTo': The URL the user should be returned to after authentication. + * - 'ReturnCallback': The function we should call after the user has finished authentication. + * + * Please note: this function never returns. + * + * @param array $params Various options to the authentication request. + */ + public function login(array $params = array()) + { + + if (array_key_exists('KeepPost', $params)) { + $keepPost = (bool) $params['KeepPost']; + } else { + $keepPost = true; + } + + if (array_key_exists('ReturnTo', $params)) { + $returnTo = (string) $params['ReturnTo']; + } else { + if (array_key_exists('ReturnCallback', $params)) { + $returnTo = (array) $params['ReturnCallback']; + } else { + $returnTo = HTTP::getSelfURL(); + } + } + + if (is_string($returnTo) && $keepPost && $_SERVER['REQUEST_METHOD'] === 'POST') { + $returnTo = HTTP::getPOSTRedirectURL($returnTo, $_POST); + } + + if (array_key_exists('ErrorURL', $params)) { + $errorURL = (string) $params['ErrorURL']; + } else { + $errorURL = null; + } + + + if (!isset($params[State::RESTART]) && is_string($returnTo)) { + /* + * A URL to restart the authentication, in case the user bookmarks + * something, e.g. the discovery service page. + */ + $restartURL = $this->getLoginURL($returnTo); + $params[State::RESTART] = $restartURL; + } + + $as = $this->getAuthSource(); + $as->initLogin($returnTo, $errorURL, $params); + assert(false); + } + + + /** + * Log the user out. + * + * This function logs the user out. It will never return. By default, it will cause a redirect to the current page + * after logging the user out, but a different URL can be given with the $params parameter. + * + * Generic parameters are: + * - 'ReturnTo': The URL the user should be returned to after logout. + * - 'ReturnCallback': The function that should be called after logout. + * - 'ReturnStateParam': The parameter we should return the state in when redirecting. + * - 'ReturnStateStage': The stage the state array should be saved with. + * + * @param string|array|null $params Either the URL the user should be redirected to after logging out, or an array + * with parameters for the logout. If this parameter is null, we will return to the current page. + */ + public function logout($params = null) + { + assert(is_array($params) || is_string($params) || $params === null); + + if ($params === null) { + $params = HTTP::getSelfURL(); + } + + if (is_string($params)) { + $params = array( + 'ReturnTo' => $params, + ); + } + + assert(is_array($params)); + assert(isset($params['ReturnTo']) || isset($params['ReturnCallback'])); + + if (isset($params['ReturnStateParam']) || isset($params['ReturnStateStage'])) { + assert(isset($params['ReturnStateParam'], $params['ReturnStateStage'])); + } + + $session = Session::getSessionFromRequest(); + if ($session->isValid($this->authSource)) { + $state = $session->getAuthData($this->authSource, 'LogoutState'); + if ($state !== null) { + $params = array_merge($state, $params); + } + + $session->doLogout($this->authSource); + + $params['LogoutCompletedHandler'] = array(get_class(), 'logoutCompleted'); + + $as = Source::getById($this->authSource); + if ($as !== null) { + $as->logout($params); + } + } + + self::logoutCompleted($params); + } + + + /** + * Called when logout operation completes. + * + * This function never returns. + * + * @param array $state The state after the logout. + */ + public static function logoutCompleted($state) + { + assert(is_array($state)); + assert(isset($state['ReturnTo']) || isset($state['ReturnCallback'])); + + if (isset($state['ReturnCallback'])) { + call_user_func($state['ReturnCallback'], $state); + assert(false); + } else { + $params = array(); + if (isset($state['ReturnStateParam']) || isset($state['ReturnStateStage'])) { + assert(isset($state['ReturnStateParam'], $state['ReturnStateStage'])); + $stateID = State::saveState($state, $state['ReturnStateStage']); + $params[$state['ReturnStateParam']] = $stateID; + } + \SimpleSAML\Utils\HTTP::redirectTrustedURL($state['ReturnTo'], $params); + } + } + + + /** + * Retrieve attributes of the current user. + * + * This function will retrieve the attributes of the current user if the user is authenticated. If the user isn't + * authenticated, it will return an empty array. + * + * @return array The users attributes. + */ + public function getAttributes() + { + + if (!$this->isAuthenticated()) { + // Not authenticated + return array(); + } + + // Authenticated + $session = Session::getSessionFromRequest(); + return $session->getAuthData($this->authSource, 'Attributes'); + } + + + /** + * Retrieve authentication data. + * + * @param string $name The name of the parameter, e.g. 'Attributes', 'Expire' or 'saml:sp:IdP'. + * + * @return mixed|null The value of the parameter, or null if it isn't found or we are unauthenticated. + */ + public function getAuthData($name) + { + assert(is_string($name)); + + if (!$this->isAuthenticated()) { + return null; + } + + $session = Session::getSessionFromRequest(); + return $session->getAuthData($this->authSource, $name); + } + + + /** + * Retrieve all authentication data. + * + * @return array|null All persistent authentication data, or null if we aren't authenticated. + */ + public function getAuthDataArray() + { + + if (!$this->isAuthenticated()) { + return null; + } + + $session = Session::getSessionFromRequest(); + return $session->getAuthState($this->authSource); + } + + + /** + * Retrieve a URL that can be used to log the user in. + * + * @param string|null $returnTo The page the user should be returned to afterwards. If this parameter is null, the + * user will be returned to the current page. + * + * @return string A URL which is suitable for use in link-elements. + */ + public function getLoginURL($returnTo = null) + { + assert($returnTo === null || is_string($returnTo)); + + if ($returnTo === null) { + $returnTo = HTTP::getSelfURL(); + } + + $login = Module::getModuleURL('core/as_login.php', array( + 'AuthId' => $this->authSource, + 'ReturnTo' => $returnTo, + )); + + return $login; + } + + + /** + * Retrieve a URL that can be used to log the user out. + * + * @param string|null $returnTo The page the user should be returned to afterwards. If this parameter is null, the + * user will be returned to the current page. + * + * @return string A URL which is suitable for use in link-elements. + */ + public function getLogoutURL($returnTo = null) + { + assert($returnTo === null || is_string($returnTo)); + + if ($returnTo === null) { + $returnTo = HTTP::getSelfURL(); + } + + $logout = Module::getModuleURL('core/as_logout.php', array( + 'AuthId' => $this->authSource, + 'ReturnTo' => $returnTo, + )); + + return $logout; + } + + + /** + * Process a URL and modify it according to the application/baseURL configuration option, if present. + * + * @param string|null $url The URL to process, or null if we want to use the current URL. Both partial and full + * URLs can be used as a parameter. The maximum precedence is given to the application/baseURL configuration option, + * then the URL specified (if it specifies scheme, host and port) and finally the environment observed in the + * server. + * + * @return string The URL modified according to the precedence rules. + */ + protected function getProcessedURL($url = null) + { + if ($url === null) { + $url = HTTP::getSelfURL(); + } + + $scheme = parse_url($url, PHP_URL_SCHEME); + $host = parse_url($url, PHP_URL_HOST) ?: HTTP::getSelfHost(); + $port = parse_url($url, PHP_URL_PORT) ?: ( + $scheme ? '' : trim(HTTP::getServerPort(), ':') + ); + $scheme = $scheme ?: (HTTP::getServerHTTPS() ? 'https' : 'http'); + $path = parse_url($url, PHP_URL_PATH) ?: '/'; + $query = parse_url($url, PHP_URL_QUERY) ?: ''; + $fragment = parse_url($url, PHP_URL_FRAGMENT) ?: ''; + + $port = !empty($port) ? ':'.$port : ''; + if (($scheme === 'http' && $port === ':80') || ($scheme === 'https' && $port === ':443')) { + $port = ''; + } + + if (is_null($this->app_config)) { + // nothing more we can do here + return $scheme.'://'.$host.$port.$path.($query ? '?'.$query : '').($fragment ? '#'.$fragment : ''); + } + + $base = trim($this->app_config->getString( + 'baseURL', + $scheme.'://'.$host.$port + ), '/'); + return $base.$path.($query ? '?'.$query : '').($fragment ? '#'.$fragment : ''); + } +} diff --git a/lib/SimpleSAML/Auth/Source.php b/lib/SimpleSAML/Auth/Source.php new file mode 100755 index 0000000..44cd69a --- /dev/null +++ b/lib/SimpleSAML/Auth/Source.php @@ -0,0 +1,513 @@ +authId = $info['AuthId']; + } + + + /** + * Get sources of a specific type. + * + * @param string $type The type of the authentication source. + * + * @return SimpleSAML_Auth_Source[] Array of SimpleSAML_Auth_Source objects of the specified type. + * @throws Exception If the authentication source is invalid. + */ + public static function getSourcesOfType($type) + { + assert(is_string($type)); + + $config = SimpleSAML_Configuration::getConfig('authsources.php'); + + $ret = array(); + + $sources = $config->getOptions(); + foreach ($sources as $id) { + $source = $config->getArray($id); + + self::validateSource($source, $id); + + if ($source[0] !== $type) { + continue; + } + + $ret[] = self::parseAuthSource($id, $source); + } + + return $ret; + } + + + /** + * Retrieve the ID of this authentication source. + * + * @return string The ID of this authentication source. + */ + public function getAuthId() + { + return $this->authId; + } + + + /** + * Process a request. + * + * If an authentication source returns from this function, it is assumed to have + * authenticated the user, and should have set elements in $state with the attributes + * of the user. + * + * If the authentication process requires additional steps which make it impossible to + * complete before returning from this function, the authentication source should + * save the state, and at a later stage, load the state, update it with the authentication + * information about the user, and call completeAuth with the state array. + * + * @param array &$state Information about the current authentication. + */ + abstract public function authenticate(&$state); + + + /** + * Reauthenticate an user. + * + * This function is called by the IdP to give the authentication source a chance to + * interact with the user even in the case when the user is already authenticated. + * + * @param array &$state Information about the current authentication. + */ + public function reauthenticate(array &$state) + { + assert(isset($state['ReturnCallback'])); + + // the default implementation just copies over the previous authentication data + $session = SimpleSAML_Session::getSessionFromRequest(); + $data = $session->getAuthState($this->authId); + foreach ($data as $k => $v) { + $state[$k] = $v; + } + } + + + /** + * Complete authentication. + * + * This function should be called if authentication has completed. It will never return, + * except in the case of exceptions. Exceptions thrown from this page should not be caught, + * but should instead be passed to the top-level exception handler. + * + * @param array &$state Information about the current authentication. + */ + public static function completeAuth(&$state) + { + assert(is_array($state)); + assert(array_key_exists('LoginCompletedHandler', $state)); + + SimpleSAML_Auth_State::deleteState($state); + + $func = $state['LoginCompletedHandler']; + assert(is_callable($func)); + + call_user_func($func, $state); + assert(false); + } + + + /** + * Start authentication. + * + * This method never returns. + * + * @param string|array $return The URL or function we should direct the user to after authentication. If using a + * URL obtained from user input, please make sure to check it by calling \SimpleSAML\Utils\HTTP::checkURLAllowed(). + * @param string|null $errorURL The URL we should direct the user to after failed authentication. Can be null, in + * which case a standard error page will be shown. If using a URL obtained from user input, please make sure to + * check it by calling \SimpleSAML\Utils\HTTP::checkURLAllowed(). + * @param array $params Extra information about the login. Different authentication requestors may provide different + * information. Optional, will default to an empty array. + */ + public function initLogin($return, $errorURL = null, array $params = array()) + { + assert(is_string($return) || is_array($return)); + assert(is_string($errorURL) || $errorURL === null); + + $state = array_merge($params, array( + 'SimpleSAML_Auth_Default.id' => $this->authId, // TODO: remove in 2.0 + 'SimpleSAML_Auth_Source.id' => $this->authId, + 'SimpleSAML_Auth_Default.Return' => $return, // TODO: remove in 2.0 + 'SimpleSAML_Auth_Source.Return' => $return, + 'SimpleSAML_Auth_Default.ErrorURL' => $errorURL, // TODO: remove in 2.0 + 'SimpleSAML_Auth_Source.ErrorURL' => $errorURL, + 'LoginCompletedHandler' => array(get_class(), 'loginCompleted'), + 'LogoutCallback' => array(get_class(), 'logoutCallback'), + 'LogoutCallbackState' => array( + 'SimpleSAML_Auth_Default.logoutSource' => $this->authId, // TODO: remove in 2.0 + 'SimpleSAML_Auth_Source.logoutSource' => $this->authId, + ), + )); + + if (is_string($return)) { + $state['SimpleSAML_Auth_Default.ReturnURL'] = $return; // TODO: remove in 2.0 + $state['SimpleSAML_Auth_Source.ReturnURL'] = $return; + } + + if ($errorURL !== null) { + $state[SimpleSAML_Auth_State::EXCEPTION_HANDLER_URL] = $errorURL; + } + + try { + $this->authenticate($state); + } catch (SimpleSAML_Error_Exception $e) { + SimpleSAML_Auth_State::throwException($state, $e); + } catch (Exception $e) { + $e = new SimpleSAML_Error_UnserializableException($e); + SimpleSAML_Auth_State::throwException($state, $e); + } + self::loginCompleted($state); + } + + + /** + * Called when a login operation has finished. + * + * This method never returns. + * + * @param array $state The state after the login has completed. + */ + public static function loginCompleted($state) + { + assert(is_array($state)); + assert(array_key_exists('SimpleSAML_Auth_Source.Return', $state)); + assert(array_key_exists('SimpleSAML_Auth_Source.id', $state)); + assert(array_key_exists('Attributes', $state)); + assert(!array_key_exists('LogoutState', $state) || is_array($state['LogoutState'])); + + $return = $state['SimpleSAML_Auth_Source.Return']; + + // save session state + $session = SimpleSAML_Session::getSessionFromRequest(); + $authId = $state['SimpleSAML_Auth_Source.id']; + $session->doLogin($authId, SimpleSAML_Auth_State::getPersistentAuthData($state)); + + if (is_string($return)) { // redirect... + \SimpleSAML\Utils\HTTP::redirectTrustedURL($return); + } else { + call_user_func($return, $state); + } + assert(false); + } + + + /** + * Log out from this authentication source. + * + * This function should be overridden if the authentication source requires special + * steps to complete a logout operation. + * + * If the logout process requires a redirect, the state should be saved. Once the + * logout operation is completed, the state should be restored, and completeLogout + * should be called with the state. If this operation can be completed without + * showing the user a page, or redirecting, this function should return. + * + * @param array &$state Information about the current logout operation. + */ + public function logout(&$state) + { + assert(is_array($state)); + // default logout handler which doesn't do anything + } + + + /** + * Complete logout. + * + * This function should be called after logout has completed. It will never return, + * except in the case of exceptions. Exceptions thrown from this page should not be caught, + * but should instead be passed to the top-level exception handler. + * + * @param array &$state Information about the current authentication. + */ + public static function completeLogout(&$state) + { + assert(is_array($state)); + assert(array_key_exists('LogoutCompletedHandler', $state)); + + SimpleSAML_Auth_State::deleteState($state); + + $func = $state['LogoutCompletedHandler']; + assert(is_callable($func)); + + call_user_func($func, $state); + assert(false); + } + + + /** + * Create authentication source object from configuration array. + * + * This function takes an array with the configuration for an authentication source object, + * and returns the object. + * + * @param string $authId The authentication source identifier. + * @param array $config The configuration. + * + * @return SimpleSAML_Auth_Source The parsed authentication source. + * @throws Exception If the authentication source is invalid. + */ + private static function parseAuthSource($authId, $config) + { + assert(is_string($authId)); + assert(is_array($config)); + + self::validateSource($config, $authId); + + $id = $config[0]; + $info = array('AuthId' => $authId); + $authSource = null; + + unset($config[0]); + + try { + // Check whether or not there's a factory responsible for instantiating our Auth Source instance + $factoryClass = SimpleSAML\Module::resolveClass($id, 'Auth_Source_Factory', 'SimpleSAML\Auth\SourceFactory'); + + /** @var SourceFactory $factory */ + $factory = new $factoryClass; + $authSource = $factory->create($info, $config); + } catch (Exception $e) { + // If not, instantiate the Auth Source here + $className = SimpleSAML\Module::resolveClass($id, 'Auth_Source', 'SimpleSAML_Auth_Source'); + $authSource = new $className($info, $config); + } + + return $authSource; + } + + + /** + * Retrieve authentication source. + * + * This function takes an id of an authentication source, and returns the + * AuthSource object. If no authentication source with the given id can be found, + * NULL will be returned. + * + * If the $type parameter is specified, this function will return an + * authentication source of the given type. If no authentication source or if an + * authentication source of a different type is found, an exception will be thrown. + * + * @param string $authId The authentication source identifier. + * @param string|NULL $type The type of authentication source. If NULL, any type will be accepted. + * + * @return SimpleSAML_Auth_Source|NULL The AuthSource object, or NULL if no authentication + * source with the given identifier is found. + * @throws SimpleSAML_Error_Exception If no such authentication source is found or it is invalid. + */ + public static function getById($authId, $type = null) + { + assert(is_string($authId)); + assert($type === null || is_string($type)); + + // for now - load and parse config file + $config = SimpleSAML_Configuration::getConfig('authsources.php'); + + $authConfig = $config->getArray($authId, null); + if ($authConfig === null) { + if ($type !== null) { + throw new SimpleSAML_Error_Exception( + 'No authentication source with id '. + var_export($authId, true).' found.' + ); + } + return null; + } + + $ret = self::parseAuthSource($authId, $authConfig); + + if ($type === null || $ret instanceof $type) { + return $ret; + } + + // the authentication source doesn't have the correct type + throw new SimpleSAML_Error_Exception( + 'Invalid type of authentication source '. + var_export($authId, true).'. Was '.var_export(get_class($ret), true). + ', should be '.var_export($type, true).'.' + ); + } + + + /** + * Called when the authentication source receives an external logout request. + * + * @param array $state State array for the logout operation. + */ + public static function logoutCallback($state) + { + assert(is_array($state)); + assert(array_key_exists('SimpleSAML_Auth_Source.logoutSource', $state)); + + $source = $state['SimpleSAML_Auth_Source.logoutSource']; + + $session = SimpleSAML_Session::getSessionFromRequest(); + if (!$session->isValid($source)) { + SimpleSAML\Logger::warning( + 'Received logout from an invalid authentication source '. + var_export($source, true) + ); + + return; + } + $session->doLogout($source); + } + + + /** + * Add a logout callback association. + * + * This function adds a logout callback association, which allows us to initiate + * a logout later based on the $assoc-value. + * + * Note that logout-associations exists per authentication source. A logout association + * from one authentication source cannot be called from a different authentication source. + * + * @param string $assoc The identifier for this logout association. + * @param array $state The state array passed to the authenticate-function. + */ + protected function addLogoutCallback($assoc, $state) + { + assert(is_string($assoc)); + assert(is_array($state)); + + if (!array_key_exists('LogoutCallback', $state)) { + // the authentication requester doesn't have a logout callback + return; + } + $callback = $state['LogoutCallback']; + + if (array_key_exists('LogoutCallbackState', $state)) { + $callbackState = $state['LogoutCallbackState']; + } else { + $callbackState = array(); + } + + $id = strlen($this->authId).':'.$this->authId.$assoc; + + $data = array( + 'callback' => $callback, + 'state' => $callbackState, + ); + + $session = SimpleSAML_Session::getSessionFromRequest(); + $session->setData( + 'SimpleSAML_Auth_Source.LogoutCallbacks', + $id, + $data, + SimpleSAML_Session::DATA_TIMEOUT_SESSION_END + ); + } + + + /** + * Call a logout callback based on association. + * + * This function calls a logout callback based on an association saved with + * addLogoutCallback(...). + * + * This function always returns. + * + * @param string $assoc The logout association which should be called. + */ + protected function callLogoutCallback($assoc) + { + assert(is_string($assoc)); + + $id = strlen($this->authId).':'.$this->authId.$assoc; + + $session = SimpleSAML_Session::getSessionFromRequest(); + + $data = $session->getData('SimpleSAML_Auth_Source.LogoutCallbacks', $id); + if ($data === null) { + // FIXME: fix for IdP-first flow (issue 397) -> reevaluate logout callback infrastructure + $session->doLogout($this->authId); + + return; + } + + assert(is_array($data)); + assert(array_key_exists('callback', $data)); + assert(array_key_exists('state', $data)); + + $callback = $data['callback']; + $callbackState = $data['state']; + + $session->deleteData('SimpleSAML_Auth_Source.LogoutCallbacks', $id); + call_user_func($callback, $callbackState); + } + + + /** + * Retrieve list of authentication sources. + * + * @return array The id of all authentication sources. + */ + public static function getSources() + { + $config = SimpleSAML_Configuration::getOptionalConfig('authsources.php'); + + return $config->getOptions(); + } + + + /** + * Make sure that the first element of an auth source is its identifier. + * + * @param array $source An array with the auth source configuration. + * @param string $id The auth source identifier. + * + * @throws Exception If the first element of $source is not an identifier for the auth source. + */ + protected static function validateSource($source, $id) + { + if (!array_key_exists(0, $source) || !is_string($source[0])) { + throw new Exception( + 'Invalid authentication source \''.$id. + '\': First element must be a string which identifies the authentication source.' + ); + } + } +} diff --git a/lib/SimpleSAML/Auth/SourceFactory.php b/lib/SimpleSAML/Auth/SourceFactory.php new file mode 100755 index 0000000..1cc6a6c --- /dev/null +++ b/lib/SimpleSAML/Auth/SourceFactory.php @@ -0,0 +1,15 @@ +." or ":". + * + * There is also support for passing exceptions through the state. + * By defining an exception handler when creating the state array, users of the state + * array can call throwException with the state and the exception. This exception will + * be passed to the handler defined by the EXCEPTION_HANDLER_URL or EXCEPTION_HANDLER_FUNC + * elements of the state array. + * + * @author Olav Morken, UNINETT AS. + * @package SimpleSAMLphp + */ +class SimpleSAML_Auth_State +{ + + + /** + * The index in the state array which contains the identifier. + */ + const ID = 'SimpleSAML_Auth_State.id'; + + + /** + * The index in the cloned state array which contains the identifier of the + * original state. + */ + const CLONE_ORIGINAL_ID = 'SimpleSAML_Auth_State.cloneOriginalId'; + + + /** + * The index in the state array which contains the current stage. + */ + const STAGE = 'SimpleSAML_Auth_State.stage'; + + + /** + * The index in the state array which contains the restart URL. + */ + const RESTART = 'SimpleSAML_Auth_State.restartURL'; + + + /** + * The index in the state array which contains the exception handler URL. + */ + const EXCEPTION_HANDLER_URL = 'SimpleSAML_Auth_State.exceptionURL'; + + + /** + * The index in the state array which contains the exception handler function. + */ + const EXCEPTION_HANDLER_FUNC = 'SimpleSAML_Auth_State.exceptionFunc'; + + + /** + * The index in the state array which contains the exception data. + */ + const EXCEPTION_DATA = 'SimpleSAML_Auth_State.exceptionData'; + + + /** + * The stage of a state with an exception. + */ + const EXCEPTION_STAGE = 'SimpleSAML_Auth_State.exceptionStage'; + + + /** + * The URL parameter which contains the exception state id. + */ + const EXCEPTION_PARAM = 'SimpleSAML_Auth_State_exceptionId'; + + + /** + * State timeout. + */ + private static $stateTimeout = null; + + + /** + * Get the persistent authentication state from the state array. + * + * @param array $state The state array to analyze. + * + * @return array The persistent authentication state. + */ + public static function getPersistentAuthData(array $state) + { + // save persistent authentication data + $persistent = array(); + + if (array_key_exists('PersistentAuthData', $state)) { + foreach ($state['PersistentAuthData'] as $key) { + if (isset($state[$key])) { + $persistent[$key] = $state[$key]; + } + } + } + + // add those that should always be included + $mandatory = array( + 'Attributes', + 'Expire', + 'LogoutState', + 'AuthInstant', + 'RememberMe', + 'saml:sp:NameID' + ); + foreach ($mandatory as $key) { + if (isset($state[$key])) { + $persistent[$key] = $state[$key]; + } + } + + return $persistent; + } + + + /** + * Retrieve the ID of a state array. + * + * Note that this function will not save the state. + * + * @param array &$state The state array. + * @param bool $rawId Return a raw ID, without a restart URL. Defaults to FALSE. + * + * @return string Identifier which can be used to retrieve the state later. + */ + public static function getStateId(&$state, $rawId = false) + { + assert(is_array($state)); + assert(is_bool($rawId)); + + if (!array_key_exists(self::ID, $state)) { + $state[self::ID] = SimpleSAML\Utils\Random::generateID(); + } + + $id = $state[self::ID]; + + if ($rawId || !array_key_exists(self::RESTART, $state)) { + // Either raw ID or no restart URL. In any case, return the raw ID. + return $id; + } + + // We have a restart URL. Return the ID with that URL. + return $id.':'.$state[self::RESTART]; + } + + + /** + * Retrieve state timeout. + * + * @return integer State timeout. + */ + private static function getStateTimeout() + { + if (self::$stateTimeout === null) { + $globalConfig = SimpleSAML_Configuration::getInstance(); + self::$stateTimeout = $globalConfig->getInteger('session.state.timeout', 60 * 60); + } + + return self::$stateTimeout; + } + + + /** + * Save the state. + * + * This function saves the state, and returns an id which can be used to + * retrieve it later. It will also update the $state array with the identifier. + * + * @param array &$state The login request state. + * @param string $stage The current stage in the login process. + * @param bool $rawId Return a raw ID, without a restart URL. + * + * @return string Identifier which can be used to retrieve the state later. + */ + public static function saveState(&$state, $stage, $rawId = false) + { + assert(is_array($state)); + assert(is_string($stage)); + assert(is_bool($rawId)); + + $return = self::getStateId($state, $rawId); + $id = $state[self::ID]; + + // Save stage + $state[self::STAGE] = $stage; + + // Save state + $serializedState = serialize($state); + $session = SimpleSAML_Session::getSessionFromRequest(); + $session->setData('SimpleSAML_Auth_State', $id, $serializedState, self::getStateTimeout()); + + SimpleSAML\Logger::debug('Saved state: '.var_export($return, true)); + + return $return; + } + + + /** + * Clone the state. + * + * This function clones and returns the new cloned state. + * + * @param array $state The original request state. + * + * @return array Cloned state data. + */ + public static function cloneState(array $state) + { + $clonedState = $state; + + if (array_key_exists(self::ID, $state)) { + $clonedState[self::CLONE_ORIGINAL_ID] = $state[self::ID]; + unset($clonedState[self::ID]); + + SimpleSAML\Logger::debug('Cloned state: '.var_export($state[self::ID], true)); + } else { + SimpleSAML\Logger::debug('Cloned state with undefined id.'); + } + + return $clonedState; + } + + + /** + * Retrieve saved state. + * + * This function retrieves saved state information. If the state information has been lost, + * it will attempt to restart the request by calling the restart URL which is embedded in the + * state information. If there is no restart information available, an exception will be thrown. + * + * @param string $id State identifier (with embedded restart information). + * @param string $stage The stage the state should have been saved in. + * @param bool $allowMissing Whether to allow the state to be missing. + * + * @throws SimpleSAML_Error_NoState If we couldn't find the state and there's no URL defined to redirect to. + * @throws Exception If the stage of the state is invalid and there's no URL defined to redirect to. + * + * @return array|NULL State information, or null if the state is missing and $allowMissing is true. + */ + public static function loadState($id, $stage, $allowMissing = false) + { + assert(is_string($id)); + assert(is_string($stage)); + assert(is_bool($allowMissing)); + SimpleSAML\Logger::debug('Loading state: '.var_export($id, true)); + + $sid = self::parseStateID($id); + + $session = SimpleSAML_Session::getSessionFromRequest(); + $state = $session->getData('SimpleSAML_Auth_State', $sid['id']); + + if ($state === null) { + // Could not find saved data + if ($allowMissing) { + return null; + } + + if ($sid['url'] === null) { + throw new SimpleSAML_Error_NoState(); + } + + \SimpleSAML\Utils\HTTP::redirectUntrustedURL($sid['url']); + } + + $state = unserialize($state); + assert(is_array($state)); + assert(array_key_exists(self::ID, $state)); + assert(array_key_exists(self::STAGE, $state)); + + // Verify stage + if ($state[self::STAGE] !== $stage) { + /* This could be a user trying to bypass security, but most likely it is just + * someone using the back-button in the browser. We try to restart the + * request if that is possible. If not, show an error. + */ + + $msg = 'Wrong stage in state. Was \''.$state[self::STAGE]. + '\', should be \''.$stage.'\'.'; + + SimpleSAML\Logger::warning($msg); + + if ($sid['url'] === null) { + throw new Exception($msg); + } + + \SimpleSAML\Utils\HTTP::redirectUntrustedURL($sid['url']); + } + + return $state; + } + + + /** + * Delete state. + * + * This function deletes the given state to prevent the user from reusing it later. + * + * @param array &$state The state which should be deleted. + */ + public static function deleteState(&$state) + { + assert(is_array($state)); + + if (!array_key_exists(self::ID, $state)) { + // This state hasn't been saved + return; + } + + SimpleSAML\Logger::debug('Deleting state: '.var_export($state[self::ID], true)); + + $session = SimpleSAML_Session::getSessionFromRequest(); + $session->deleteData('SimpleSAML_Auth_State', $state[self::ID]); + } + + + /** + * Throw exception to the state exception handler. + * + * @param array $state The state array. + * @param SimpleSAML_Error_Exception $exception The exception. + * + * @throws SimpleSAML_Error_Exception If there is no exception handler defined, it will just throw the $exception. + */ + public static function throwException($state, SimpleSAML_Error_Exception $exception) + { + assert(is_array($state)); + + if (array_key_exists(self::EXCEPTION_HANDLER_URL, $state)) { + // Save the exception + $state[self::EXCEPTION_DATA] = $exception; + $id = self::saveState($state, self::EXCEPTION_STAGE); + + // Redirect to the exception handler + \SimpleSAML\Utils\HTTP::redirectTrustedURL( + $state[self::EXCEPTION_HANDLER_URL], + array(self::EXCEPTION_PARAM => $id) + ); + } elseif (array_key_exists(self::EXCEPTION_HANDLER_FUNC, $state)) { + // Call the exception handler + $func = $state[self::EXCEPTION_HANDLER_FUNC]; + assert(is_callable($func)); + + call_user_func($func, $exception, $state); + assert(false); + } else { + /* + * No exception handler is defined for the current state. + */ + throw $exception; + } + } + + + /** + * Retrieve an exception state. + * + * @param string|NULL $id The exception id. Can be NULL, in which case it will be retrieved from the request. + * + * @return array|NULL The state array with the exception, or NULL if no exception was thrown. + */ + public static function loadExceptionState($id = null) + { + assert(is_string($id) || $id === null); + + if ($id === null) { + if (!array_key_exists(self::EXCEPTION_PARAM, $_REQUEST)) { + // No exception + return null; + } + $id = $_REQUEST[self::EXCEPTION_PARAM]; + } + + $state = self::loadState($id, self::EXCEPTION_STAGE); + assert(array_key_exists(self::EXCEPTION_DATA, $state)); + + return $state; + } + + + /** + * Get the ID and (optionally) a URL embedded in a StateID, in the form 'id:url'. + * + * @param string $stateId The state ID to use. + * + * @return array A hashed array with the ID and the URL (if any), in the 'id' and 'url' keys, respectively. If + * there's no URL in the input parameter, NULL will be returned as the value for the 'url' key. + * + * @author Andreas Solberg, UNINETT AS + * @author Jaime Perez, UNINETT AS + */ + public static function parseStateID($stateId) + { + $tmp = explode(':', $stateId, 2); + $id = $tmp[0]; + $url = null; + if (count($tmp) === 2) { + $url = $tmp[1]; + } + return array('id' => $id, 'url' => $url); + } +} diff --git a/lib/SimpleSAML/Auth/TimeLimitedToken.php b/lib/SimpleSAML/Auth/TimeLimitedToken.php new file mode 100755 index 0000000..920dd2d --- /dev/null +++ b/lib/SimpleSAML/Auth/TimeLimitedToken.php @@ -0,0 +1,147 @@ +secretSalt = $secretSalt; + $this->lifetime = $lifetime; + $this->skew = $skew; + $this->algo = $algo; + } + + + /** + * Add some given data to the current token. This data will be needed later too for token validation. + * + * This mechanism can be used to provide context for a token, such as a user identifier of the only subject + * authorised to use it. Note also that multiple data can be added to the token. This means that upon validation, + * not only the same data must be added, but also in the same order. + * + * @param string $data The data to incorporate into the current token. + */ + public function addVerificationData($data) + { + $this->secretSalt .= '|'.$data; + } + + + /** + * Calculates a token value for a given offset. + * + * @param int $offset The offset to use. + * @param int|null $time The time stamp to which the offset is relative to. Defaults to the current time. + * + * @return string The token for the given time and offset. + */ + private function calculateTokenValue($offset, $time = null) + { + if ($time === null) { + $time = time(); + } + // a secret salt that should be randomly generated for each installation + return hash( + $this->algo, + $offset.':'.floor(($time - $offset) / ($this->lifetime + $this->skew)).':'.$this->secretSalt + ); + } + + + /** + * Generates a token that contains an offset and a token value, using the current offset. + * + * @return string A time-limited token with the offset respect to the beginning of its time slot prepended. + */ + public function generate() + { + $time = time(); + $current_offset = ($time - $this->skew) % ($this->lifetime + $this->skew); + return dechex($current_offset).'-'.$this->calculateTokenValue($current_offset, $time); + } + + + /** + * @see generate + * @deprecated This method will be removed in SSP 2.0. Use generate() instead. + */ + public function generate_token() + { + return $this->generate(); + } + + + /** + * Validates a token by calculating the token value for the provided offset and comparing it. + * + * @param string $token The token to validate. + * + * @return boolean True if the given token is currently valid, false otherwise. + */ + public function validate($token) + { + $splittoken = explode('-', $token); + if (count($splittoken) !== 2) { + return false; + } + $offset = intval(hexdec($splittoken[0])); + $value = $splittoken[1]; + return ($this->calculateTokenValue($offset) === $value); + } + + + /** + * @see validate + * @deprecated This method will be removed in SSP 2.0. Use validate() instead. + */ + public function validate_token($token) + { + return $this->validate($token); + } +} diff --git a/lib/SimpleSAML/AuthMemCookie.php b/lib/SimpleSAML/AuthMemCookie.php new file mode 100755 index 0000000..21e3e44 --- /dev/null +++ b/lib/SimpleSAML/AuthMemCookie.php @@ -0,0 +1,166 @@ +amcConfig = SimpleSAML_Configuration::getConfig('authmemcookie.php'); + } + + + /** + * Retrieve the authentication source that should be used to authenticate the user. + * + * @return string The login type which should be used for Auth MemCookie. + */ + public function getAuthSource() + { + return $this->amcConfig->getString('authsource'); + } + + + /** + * This function retrieves the name of the cookie from the configuration. + * + * @return string The name of the cookie. + * @throws Exception If the value of the 'cookiename' configuration option is invalid. + */ + public function getCookieName() + { + $cookieName = $this->amcConfig->getString('cookiename', 'AuthMemCookie'); + if (!is_string($cookieName) || strlen($cookieName) === 0) { + throw new Exception( + "Configuration option 'cookiename' contains an invalid value. This option should be a string." + ); + } + + return $cookieName; + } + + + /** + * This function retrieves the name of the attribute which contains the username from the configuration. + * + * @return string The name of the attribute which contains the username. + */ + public function getUsernameAttr() + { + $usernameAttr = $this->amcConfig->getString('username', null); + + return $usernameAttr; + } + + + /** + * This function retrieves the name of the attribute which contains the groups from the configuration. + * + * @return string The name of the attribute which contains the groups. + */ + public function getGroupsAttr() + { + $groupsAttr = $this->amcConfig->getString('groups', null); + + return $groupsAttr; + } + + + /** + * This function creates and initializes a Memcache object from our configuration. + * + * @return Memcache A Memcache object initialized from our configuration. + * @throws Exception If the servers configuration is invalid. + */ + public function getMemcache() + { + $memcacheHost = $this->amcConfig->getString('memcache.host', '127.0.0.1'); + $memcachePort = $this->amcConfig->getInteger('memcache.port', 11211); + + $class = class_exists('Memcache') ? 'Memcache' : (class_exists('Memcached') ? 'Memcached' : false); + if (!$class) { + throw new Exception('Missing Memcached implementation. You must install either the Memcache or Memcached extension.'); + } + + // Create the Memcache(d) object. + $memcache = new $class(); + + foreach (explode(',', $memcacheHost) as $memcacheHost) { + $memcache->addServer($memcacheHost, $memcachePort); + } + + return $memcache; + } + + + /** + * This function logs the user out by deleting the session information from memcache. + */ + private function doLogout() + { + $cookieName = $this->getCookieName(); + + // check if we have a valid cookie + if (!array_key_exists($cookieName, $_COOKIE)) { + return; + } + + $sessionID = $_COOKIE[$cookieName]; + + // delete the session from memcache + $memcache = $this->getMemcache(); + $memcache->delete($sessionID); + + // delete the session cookie + \SimpleSAML\Utils\HTTP::setCookie($cookieName, null); + } + + + /** + * This function implements the logout handler. It deletes the information from Memcache. + */ + public static function logoutHandler() + { + self::getInstance()->doLogout(); + } +} diff --git a/lib/SimpleSAML/Bindings/Shib13/Artifact.php b/lib/SimpleSAML/Bindings/Shib13/Artifact.php new file mode 100755 index 0000000..726461a --- /dev/null +++ b/lib/SimpleSAML/Bindings/Shib13/Artifact.php @@ -0,0 +1,190 @@ +' . + '' . + ''; + + foreach ($artifacts as $a) { + $msg .= '' . htmlspecialchars($a) . ''; + } + + $msg .= '' . + '' . + ''; + + return $msg; + } + + + /** + * Extract the response element from the SOAP response. + * + * @param string $soapResponse The SOAP response. + * @return string The element, as a string. + * @throws \SimpleSAML_Error_Exception + */ + private static function extractResponse($soapResponse) + { + assert(is_string($soapResponse)); + + try { + $doc = DOMDocumentFactory::fromString($soapResponse); + } catch (\Exception $e) { + throw new \SimpleSAML_Error_Exception('Error parsing SAML 1 artifact response.'); + } + + $soapEnvelope = $doc->firstChild; + if (!XML::isDOMNodeOfType($soapEnvelope, 'Envelope', 'http://schemas.xmlsoap.org/soap/envelope/')) { + throw new \SimpleSAML_Error_Exception('Expected artifact response to contain a element.'); + } + + $soapBody = XML::getDOMChildren($soapEnvelope, 'Body', 'http://schemas.xmlsoap.org/soap/envelope/'); + if (count($soapBody) === 0) { + throw new \SimpleSAML_Error_Exception('Couldn\'t find in .'); + } + $soapBody = $soapBody[0]; + + + $responseElement = XML::getDOMChildren($soapBody, 'Response', 'urn:oasis:names:tc:SAML:1.0:protocol'); + if (count($responseElement) === 0) { + throw new \SimpleSAML_Error_Exception('Couldn\'t find in .'); + } + $responseElement = $responseElement[0]; + + /* + * Save the element. Note that we need to import it + * into a new document, in order to preserve namespace declarations. + */ + $newDoc = DOMDocumentFactory::create(); + $newDoc->appendChild($newDoc->importNode($responseElement, true)); + $responseXML = $newDoc->saveXML(); + + return $responseXML; + } + + + /** + * This function receives a SAML 1.1 artifact. + * + * @param \SimpleSAML_Configuration $spMetadata The metadata of the SP. + * @param \SimpleSAML_Configuration $idpMetadata The metadata of the IdP. + * @return string The element, as an XML string. + * @throws \SimpleSAML_Error_Exception + */ + public static function receive(\SimpleSAML_Configuration $spMetadata, \SimpleSAML_Configuration $idpMetadata) + { + $artifacts = self::getArtifacts(); + $request = self::buildRequest($artifacts); + + XML::debugSAMLMessage($request, 'out'); + + $url = $idpMetadata->getDefaultEndpoint('ArtifactResolutionService', array('urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding')); + $url = $url['Location']; + + $peerPublicKeys = $idpMetadata->getPublicKeys('signing', true); + $certData = ''; + foreach ($peerPublicKeys as $key) { + if ($key['type'] !== 'X509Certificate') { + continue; + } + $certData .= "-----BEGIN CERTIFICATE-----\n" . + chunk_split($key['X509Certificate'], 64) . + "-----END CERTIFICATE-----\n"; + } + + $file = System::getTempDir() . DIRECTORY_SEPARATOR . sha1($certData) . '.crt'; + if (!file_exists($file)) { + System::writeFile($file, $certData); + } + + $spKeyCertFile = Config::getCertPath($spMetadata->getString('privatekey')); + + $opts = array( + 'ssl' => array( + 'verify_peer' => true, + 'cafile' => $file, + 'local_cert' => $spKeyCertFile, + 'capture_peer_cert' => true, + 'capture_peer_chain' => true, + ), + 'http' => array( + 'method' => 'POST', + 'content' => $request, + 'header' => 'SOAPAction: http://www.oasis-open.org/committees/security' . "\r\n" . + 'Content-Type: text/xml', + ), + ); + + // Fetch the artifact + $response = HTTP::fetch($url, $opts); + /** @var string $response */ + XML::debugSAMLMessage($response, 'in'); + + // Find the response in the SOAP message + $response = self::extractResponse($response); + + return $response; + } +} diff --git a/lib/SimpleSAML/Bindings/Shib13/HTTPPost.php b/lib/SimpleSAML/Bindings/Shib13/HTTPPost.php new file mode 100755 index 0000000..5359c8f --- /dev/null +++ b/lib/SimpleSAML/Bindings/Shib13/HTTPPost.php @@ -0,0 +1,154 @@ + + * @package SimpleSAMLphp + */ + +namespace SimpleSAML\Bindings\Shib13; + +use SAML2\DOMDocumentFactory; +use SimpleSAML\Utils\Crypto; +use SimpleSAML\Utils\HTTP; +use SimpleSAML\Utils\XML; +use SimpleSAML\XML\Shib13\AuthnResponse; +use SimpleSAML\XML\Signer; + +class HTTPPost +{ + + /** + * @var \SimpleSAML_Configuration + */ + private $configuration = null; + + /** + * @var \SimpleSAML_Metadata_MetaDataStorageHandler + */ + private $metadata = null; + + + /** + * Constructor for the \SimpleSAML\Bindings\Shib13\HTTPPost class. + * + * @param \SimpleSAML_Configuration $configuration The configuration to use. + * @param \SimpleSAML_Metadata_MetaDataStorageHandler $metadatastore A store where to find metadata. + */ + public function __construct( + \SimpleSAML_Configuration $configuration, + \SimpleSAML_Metadata_MetaDataStorageHandler $metadatastore + ) { + $this->configuration = $configuration; + $this->metadata = $metadatastore; + } + + + /** + * Send an authenticationResponse using HTTP-POST. + * + * @param string $response The response which should be sent. + * @param \SimpleSAML_Configuration $idpmd The metadata of the IdP which is sending the response. + * @param \SimpleSAML_Configuration $spmd The metadata of the SP which is receiving the response. + * @param string|null $relayState The relaystate for the SP. + * @param string $shire The shire which should receive the response. + */ + public function sendResponse( + $response, + \SimpleSAML_Configuration $idpmd, + \SimpleSAML_Configuration $spmd, + $relayState, + $shire + ) { + XML::checkSAMLMessage($response, 'saml11'); + + $privatekey = Crypto::loadPrivateKey($idpmd, true); + $publickey = Crypto::loadPublicKey($idpmd, true); + + $responsedom = DOMDocumentFactory::fromString(str_replace("\r", "", $response)); + + $responseroot = $responsedom->getElementsByTagName('Response')->item(0); + $firstassertionroot = $responsedom->getElementsByTagName('Assertion')->item(0); + + /* Determine what we should sign - either the Response element or the Assertion. The default is to sign the + * Assertion, but that can be overridden by the 'signresponse' option in the SP metadata or + * 'saml20.signresponse' in the global configuration. + * + * TODO: neither 'signresponse' nor 'shib13.signresponse' are valid options any longer. Remove! + */ + if ($spmd->hasValue('signresponse')) { + $signResponse = $spmd->getBoolean('signresponse'); + } else { + $signResponse = $this->configuration->getBoolean('shib13.signresponse', true); + } + + // check if we have an assertion to sign. Force to sign the response if not + if ($firstassertionroot === null) { + $signResponse = true; + } + + $signer = new Signer(array( + 'privatekey_array' => $privatekey, + 'publickey_array' => $publickey, + 'id' => ($signResponse ? 'ResponseID' : 'AssertionID'), + )); + + if ($idpmd->hasValue('certificatechain')) { + $signer->addCertificate($idpmd->getString('certificatechain')); + } + + if ($signResponse) { + // sign the response - this must be done after encrypting the assertion + // we insert the signature before the saml2p:Status element + $statusElements = XML::getDOMChildren($responseroot, 'Status', '@saml1p'); + assert(count($statusElements) === 1); + $signer->sign($responseroot, $responseroot, $statusElements[0]); + } else { + // Sign the assertion + $signer->sign($firstassertionroot, $firstassertionroot); + } + + $response = $responsedom->saveXML(); + + XML::debugSAMLMessage($response, 'out'); + + HTTP::submitPOSTData($shire, array( + 'TARGET' => $relayState, + 'SAMLResponse' => base64_encode($response), + )); + } + + + /** + * Decode a received response. + * + * @param array $post POST data received. + * @return \SimpleSAML\XML\Shib13\AuthnResponse The response decoded into an object. + * @throws \Exception If there is no SAMLResponse parameter. + */ + public function decodeResponse($post) + { + assert(is_array($post)); + + if (!array_key_exists('SAMLResponse', $post)) { + throw new \Exception('Missing required SAMLResponse parameter.'); + } + $rawResponse = $post['SAMLResponse']; + $samlResponseXML = base64_decode($rawResponse); + + XML::debugSAMLMessage($samlResponseXML, 'in'); + + XML::checkSAMLMessage($samlResponseXML, 'saml11'); + + $samlResponse = new AuthnResponse(); + $samlResponse->setXML($samlResponseXML); + + if (array_key_exists('TARGET', $post)) { + $samlResponse->setRelayState($post['TARGET']); + } + + return $samlResponse; + } +} diff --git a/lib/SimpleSAML/Configuration.php b/lib/SimpleSAML/Configuration.php new file mode 100755 index 0000000..b9ed9a4 --- /dev/null +++ b/lib/SimpleSAML/Configuration.php @@ -0,0 +1,1392 @@ + + * @package SimpleSAMLphp + */ +class SimpleSAML_Configuration implements \SimpleSAML\Utils\ClearableState +{ + /** + * A default value which means that the given option is required. + * + * @var string + */ + const REQUIRED_OPTION = '___REQUIRED_OPTION___'; + + + /** + * Associative array with mappings from instance-names to configuration objects. + * + * @var array + */ + private static $instance = array(); + + + /** + * Configuration directories. + * + * This associative array contains the mappings from configuration sets to + * configuration directories. + * + * @var array + */ + private static $configDirs = array(); + + + /** + * Cache of loaded configuration files. + * + * The index in the array is the full path to the file. + * + * @var array + */ + private static $loadedConfigs = array(); + + + /** + * The configuration array. + * + * @var array + */ + private $configuration; + + + /** + * The location which will be given when an error occurs. + * + * @var string + */ + private $location; + + + /** + * The file this configuration was loaded from. + * + * @var string|null + */ + private $filename = null; + + + /** + * Temporary property that tells if the deprecated getBaseURL() method has been called or not. + * + * @var bool + */ + private $deprecated_base_url_used = false; + + + /** + * Initializes a configuration from the given array. + * + * @param array $config The configuration array. + * @param string $location The location which will be given when an error occurs. + */ + public function __construct($config, $location) + { + assert(is_array($config)); + assert(is_string($location)); + + $this->configuration = $config; + $this->location = $location; + } + + /** + * Load the given configuration file. + * + * @param string $filename The full path of the configuration file. + * @param bool $required Whether the file is required. + * + * @return SimpleSAML_Configuration The configuration file. An exception will be thrown if the + * configuration file is missing. + * + * @throws Exception If the configuration file is invalid or missing. + */ + private static function loadFromFile($filename, $required) + { + assert(is_string($filename)); + assert(is_bool($required)); + + if (array_key_exists($filename, self::$loadedConfigs)) { + return self::$loadedConfigs[$filename]; + } + + if (file_exists($filename)) { + $config = 'UNINITIALIZED'; + + // the file initializes a variable named '$config' + ob_start(); + if (interface_exists('Throwable', false)) { + try { + require($filename); + } catch (ParseError $e) { + self::$loadedConfigs[$filename] = self::loadFromArray(array(), '[ARRAY]', 'simplesaml'); + throw new SimpleSAML\Error\ConfigurationError($e->getMessage(), $filename, array()); + } + } else { + require($filename); + } + + $spurious_output = ob_get_length() > 0; + ob_end_clean(); + + // check that $config exists + if (!isset($config)) { + throw new \SimpleSAML\Error\ConfigurationError( + '$config is not defined in the configuration file.', + $filename + ); + } + + // check that $config is initialized to an array + if (!is_array($config)) { + throw new \SimpleSAML\Error\ConfigurationError( + '$config is not an array.', + $filename + ); + } + + // check that $config is not empty + if (empty($config)) { + throw new \SimpleSAML\Error\ConfigurationError( + '$config is empty.', + $filename + ); + } + } elseif ($required) { + // file does not exist, but is required + throw new \SimpleSAML\Error\ConfigurationError('Missing configuration file', $filename); + } else { + // file does not exist, but is optional, so return an empty configuration object without saving it + $cfg = new SimpleSAML_Configuration(array(), $filename); + $cfg->filename = $filename; + return $cfg; + } + + $cfg = new SimpleSAML_Configuration($config, $filename); + $cfg->filename = $filename; + + self::$loadedConfigs[$filename] = $cfg; + + if ($spurious_output) { + SimpleSAML\Logger::warning( + "The configuration file '$filename' generates output. Please review your configuration." + ); + } + + return $cfg; + } + + + /** + * Set the directory for configuration files for the given configuration set. + * + * @param string $path The directory which contains the configuration files. + * @param string $configSet The configuration set. Defaults to 'simplesaml'. + */ + public static function setConfigDir($path, $configSet = 'simplesaml') + { + assert(is_string($path)); + assert(is_string($configSet)); + + self::$configDirs[$configSet] = $path; + } + + /** + * Store a pre-initialized configuration. + * + * Allows consumers to create configuration objects without having them + * loaded from a file. + * + * @param SimpleSAML_Configuration $config The configuration object to store + * @param string $filename The name of the configuration file. + * @param string $configSet The configuration set. Optional, defaults to 'simplesaml'. + */ + public static function setPreLoadedConfig(SimpleSAML_Configuration $config, $filename = 'config.php', $configSet = 'simplesaml') + { + assert(is_string($filename)); + assert(is_string($configSet)); + + if (!array_key_exists($configSet, self::$configDirs)) { + if ($configSet !== 'simplesaml') { + throw new Exception('Configuration set \'' . $configSet . '\' not initialized.'); + } else { + self::$configDirs['simplesaml'] = dirname(dirname(dirname(__FILE__))) . '/config'; + } + } + + $dir = self::$configDirs[$configSet]; + $filePath = $dir . '/' . $filename; + + self::$loadedConfigs[$filePath] = $config; + } + + + /** + * Load a configuration file from a configuration set. + * + * @param string $filename The name of the configuration file. + * @param string $configSet The configuration set. Optional, defaults to 'simplesaml'. + * + * @return SimpleSAML_Configuration The SimpleSAML_Configuration object. + * @throws Exception If the configuration set is not initialized. + */ + public static function getConfig($filename = 'config.php', $configSet = 'simplesaml') + { + assert(is_string($filename)); + assert(is_string($configSet)); + + if (!array_key_exists($configSet, self::$configDirs)) { + if ($configSet !== 'simplesaml') { + throw new Exception('Configuration set \''.$configSet.'\' not initialized.'); + } else { + self::$configDirs['simplesaml'] = SimpleSAML\Utils\Config::getConfigDir(); + } + } + + $dir = self::$configDirs[$configSet]; + $filePath = $dir.'/'.$filename; + return self::loadFromFile($filePath, true); + } + + + /** + * Load a configuration file from a configuration set. + * + * This function will return a configuration object even if the file does not exist. + * + * @param string $filename The name of the configuration file. + * @param string $configSet The configuration set. Optional, defaults to 'simplesaml'. + * + * @return SimpleSAML_Configuration A configuration object. + * @throws Exception If the configuration set is not initialized. + */ + public static function getOptionalConfig($filename = 'config.php', $configSet = 'simplesaml') + { + assert(is_string($filename)); + assert(is_string($configSet)); + + if (!array_key_exists($configSet, self::$configDirs)) { + if ($configSet !== 'simplesaml') { + throw new Exception('Configuration set \''.$configSet.'\' not initialized.'); + } else { + self::$configDirs['simplesaml'] = SimpleSAML\Utils\Config::getConfigDir(); + } + } + + $dir = self::$configDirs[$configSet]; + $filePath = $dir.'/'.$filename; + return self::loadFromFile($filePath, false); + } + + + /** + * Loads a configuration from the given array. + * + * @param array $config The configuration array. + * @param string $location The location which will be given when an error occurs. Optional. + * @param string|null $instance The name of this instance. If specified, the configuration will be loaded and an + * instance with that name will be kept for it to be retrieved later with getInstance($instance). If null, the + * configuration will not be kept for later use. Defaults to null. + * + * @return SimpleSAML_Configuration The configuration object. + */ + public static function loadFromArray($config, $location = '[ARRAY]', $instance = null) + { + assert(is_array($config)); + assert(is_string($location)); + + $c = new SimpleSAML_Configuration($config, $location); + if ($instance !== null) { + self::$instance[$instance] = $c; + } + return $c; + } + + + /** + * Get a configuration file by its instance name. + * + * This function retrieves a configuration file by its instance name. The instance + * name is initialized by the init function, or by copyFromBase function. + * + * If no configuration file with the given instance name is found, an exception will + * be thrown. + * + * @param string $instancename The instance name of the configuration file. Deprecated. + * + * @return SimpleSAML_Configuration The configuration object. + * + * @throws Exception If the configuration with $instancename name is not initialized. + */ + public static function getInstance($instancename = 'simplesaml') + { + assert(is_string($instancename)); + + // check if the instance exists already + if (array_key_exists($instancename, self::$instance)) { + return self::$instance[$instancename]; + } + + if ($instancename === 'simplesaml') { + try { + return self::getConfig(); + } catch (SimpleSAML\Error\ConfigurationError $e) { + throw \SimpleSAML\Error\CriticalConfigurationError::fromException($e); + } + } + + throw new \SimpleSAML\Error\CriticalConfigurationError( + 'Configuration with name '.$instancename.' is not initialized.' + ); + } + + + /** + * Initialize a instance name with the given configuration file. + * + * TODO: remove. + * + * @param string $path + * @param string $instancename + * @param string $configfilename + * + * @see setConfigDir() + * @deprecated This function is superseeded by the setConfigDir function. + */ + public static function init($path, $instancename = 'simplesaml', $configfilename = 'config.php') + { + assert(is_string($path)); + assert(is_string($instancename)); + assert(is_string($configfilename)); + + if ($instancename === 'simplesaml') { + // for backwards compatibility + self::setConfigDir($path, 'simplesaml'); + } + + // check if we already have loaded the given config - return the existing instance if we have + if (array_key_exists($instancename, self::$instance)) { + return self::$instance[$instancename]; + } + + self::$instance[$instancename] = self::loadFromFile($path.'/'.$configfilename, true); + return self::$instance[$instancename]; + } + + + /** + * Load a configuration file which is located in the same directory as this configuration file. + * + * TODO: remove. + * + * @param string $instancename + * @param string $filename + * + * @see getConfig() + * @deprecated This function is superseeded by the getConfig() function. + */ + public function copyFromBase($instancename, $filename) + { + assert(is_string($instancename)); + assert(is_string($filename)); + assert($this->filename !== null); + + // check if we already have loaded the given config - return the existing instance if we have + if (array_key_exists($instancename, self::$instance)) { + return self::$instance[$instancename]; + } + + $dir = dirname($this->filename); + + self::$instance[$instancename] = self::loadFromFile($dir.'/'.$filename, true); + return self::$instance[$instancename]; + } + + + /** + * Retrieve the current version of SimpleSAMLphp. + * + * @return string + */ + public function getVersion() + { + return '1.16.1'; + } + + + /** + * Retrieve a configuration option set in config.php. + * + * @param string $name Name of the configuration option. + * @param mixed $default Default value of the configuration option. This parameter will default to null if not + * specified. This can be set to SimpleSAML_Configuration::REQUIRED_OPTION, which will + * cause an exception to be thrown if the option isn't found. + * + * @return mixed The configuration option with name $name, or $default if the option was not found. + * + * @throws Exception If the required option cannot be retrieved. + */ + public function getValue($name, $default = null) + { + // return the default value if the option is unset + if (!array_key_exists($name, $this->configuration)) { + if ($default === self::REQUIRED_OPTION) { + throw new Exception( + $this->location.': Could not retrieve the required option '. + var_export($name, true) + ); + } + return $default; + } + + return $this->configuration[$name]; + } + + + /** + * Check whether a key in the configuration exists or not. + * + * @param string $name The key in the configuration to look for. + * + * @return boolean If the value is set in this configuration. + */ + public function hasValue($name) + { + return array_key_exists($name, $this->configuration); + } + + + /** + * Check whether any key of the set given exists in the configuration. + * + * @param array $names An array of options to look for. + * + * @return boolean If any of the keys in $names exist in the configuration + */ + public function hasValueOneOf($names) + { + foreach ($names as $name) { + if ($this->hasValue($name)) { + return true; + } + } + return false; + } + + + /** + * Retrieve the absolute path of the SimpleSAMLphp installation, relative to the root of the website. + * + * For example: simplesaml/ + * + * The path will always end with a '/' and never have a leading slash. + * + * @return string The absolute path relative to the root of the website. + * + * @throws SimpleSAML\Error\CriticalConfigurationError If the format of 'baseurlpath' is incorrect. + * + * @deprecated This method will be removed in SimpleSAMLphp 2.0. Please use getBasePath() instead. + */ + public function getBaseURL() + { + if (!$this->deprecated_base_url_used) { + $this->deprecated_base_url_used = true; + SimpleSAML\Logger::warning( + "SimpleSAML_Configuration::getBaseURL() is deprecated, please use getBasePath() instead." + ); + } + if (preg_match('/^\*(.*)$/D', $this->getString('baseurlpath', 'simplesaml/'), $matches)) { + // deprecated behaviour, will be removed in the future + return \SimpleSAML\Utils\HTTP::getFirstPathElement(false).$matches[1]; + } + return ltrim($this->getBasePath(), '/'); + } + + + /** + * Retrieve the absolute path pointing to the SimpleSAMLphp installation. + * + * The path is guaranteed to start and end with a slash ('/'). E.g.: /simplesaml/ + * + * @return string The absolute path where SimpleSAMLphp can be reached in the web server. + * + * @throws SimpleSAML\Error\CriticalConfigurationError If the format of 'baseurlpath' is incorrect. + */ + public function getBasePath() + { + $baseURL = $this->getString('baseurlpath', 'simplesaml/'); + + if (preg_match('#^https?://[^/]*(?:/(.+/?)?)?$#', $baseURL, $matches)) { + // we have a full url, we need to strip the path + if (!array_key_exists(1, $matches)) { + // absolute URL without path + return '/'; + } + return '/'.rtrim($matches[1], '/')."/"; + } elseif ($baseURL === '' || $baseURL === '/') { + // root directory of site + return '/'; + } elseif (preg_match('#^/?((?:[^/\s]+/?)+)#', $baseURL, $matches)) { + // local path only + return '/'.rtrim($matches[1], '/').'/'; + } else { + /* + * Invalid 'baseurlpath'. We cannot recover from this, so throw a critical exception and try to be graceful + * with the configuration. Use a guessed base path instead of the one provided. + */ + $c = $this->toArray(); + $c['baseurlpath'] = SimpleSAML\Utils\HTTP::guessBasePath(); + throw new SimpleSAML\Error\CriticalConfigurationError( + 'Incorrect format for option \'baseurlpath\'. Value is: "'. + $this->getString('baseurlpath', 'simplesaml/').'". Valid format is in the form'. + ' [(http|https)://(hostname|fqdn)[:port]]/[path/to/simplesaml/].', + $this->filename, + $c + ); + } + } + + + /** + * This function resolves a path which may be relative to the SimpleSAMLphp base directory. + * + * The path will never end with a '/'. + * + * @param string|null $path The path we should resolve. This option may be null. + * + * @return string|null $path if $path is an absolute path, or $path prepended with the base directory of this + * SimpleSAMLphp installation. We will return NULL if $path is null. + */ + public function resolvePath($path) + { + if ($path === null) { + return null; + } + + assert(is_string($path)); + + return System::resolvePath($path, $this->getBaseDir()); + } + + + /** + * Retrieve a path configuration option set in config.php. + * + * The function will always return an absolute path unless the option is not set. It will then return the default + * value. + * + * It checks if the value starts with a slash, and prefixes it with the value from getBaseDir if it doesn't. + * + * @param string $name Name of the configuration option. + * @param string|null $default Default value of the configuration option. This parameter will default to null if + * not specified. + * + * @return string|null The path configuration option with name $name, or $default if the option was not found. + */ + public function getPathValue($name, $default = null) + { + // return the default value if the option is unset + if (!array_key_exists($name, $this->configuration)) { + $path = $default; + } else { + $path = $this->configuration[$name]; + } + + if ($path === null) { + return null; + } + + return $this->resolvePath($path).'/'; + } + + + /** + * Retrieve the base directory for this SimpleSAMLphp installation. + * + * This function first checks the 'basedir' configuration option. If this option is undefined or null, then we + * fall back to looking at the current filename. + * + * @return string The absolute path to the base directory for this SimpleSAMLphp installation. This path will + * always end with a slash. + */ + public function getBaseDir() + { + // check if a directory is configured in the configuration file + $dir = $this->getString('basedir', null); + if ($dir !== null) { + // add trailing slash if it is missing + if (substr($dir, -1) !== DIRECTORY_SEPARATOR) { + $dir .= DIRECTORY_SEPARATOR; + } + + return $dir; + } + + // the directory wasn't set in the configuration file, path is /lib/SimpleSAML/Configuration.php + $dir = __FILE__; + assert(basename($dir) === 'Configuration.php'); + + $dir = dirname($dir); + assert(basename($dir) === 'SimpleSAML'); + + $dir = dirname($dir); + assert(basename($dir) === 'lib'); + + $dir = dirname($dir); + + // Add trailing directory separator + $dir .= DIRECTORY_SEPARATOR; + + return $dir; + } + + + /** + * This function retrieves a boolean configuration option. + * + * An exception will be thrown if this option isn't a boolean, or if this option isn't found, and no default value + * is given. + * + * @param string $name The name of the option. + * @param mixed $default A default value which will be returned if the option isn't found. The option will be + * required if this parameter isn't given. The default value can be any value, including + * null. + * + * @return boolean|mixed The option with the given name, or $default if the option isn't found and $default is + * specified. + * + * @throws Exception If the option is not boolean. + */ + public function getBoolean($name, $default = self::REQUIRED_OPTION) + { + assert(is_string($name)); + + $ret = $this->getValue($name, $default); + + if ($ret === $default) { + // the option wasn't found, or it matches the default value. In any case, return this value + return $ret; + } + + if (!is_bool($ret)) { + throw new Exception( + $this->location.': The option '.var_export($name, true). + ' is not a valid boolean value.' + ); + } + + return $ret; + } + + + /** + * This function retrieves a string configuration option. + * + * An exception will be thrown if this option isn't a string, or if this option isn't found, and no default value + * is given. + * + * @param string $name The name of the option. + * @param mixed $default A default value which will be returned if the option isn't found. The option will be + * required if this parameter isn't given. The default value can be any value, including + * null. + * + * @return string|mixed The option with the given name, or $default if the option isn't found and $default is + * specified. + * + * @throws Exception If the option is not a string. + */ + public function getString($name, $default = self::REQUIRED_OPTION) + { + assert(is_string($name)); + + $ret = $this->getValue($name, $default); + + if ($ret === $default) { + // the option wasn't found, or it matches the default value. In any case, return this value + return $ret; + } + + if (!is_string($ret)) { + throw new Exception( + $this->location.': The option '.var_export($name, true). + ' is not a valid string value.' + ); + } + + return $ret; + } + + + /** + * This function retrieves an integer configuration option. + * + * An exception will be thrown if this option isn't an integer, or if this option isn't found, and no default value + * is given. + * + * @param string $name The name of the option. + * @param mixed $default A default value which will be returned if the option isn't found. The option will be + * required if this parameter isn't given. The default value can be any value, including + * null. + * + * @return int|mixed The option with the given name, or $default if the option isn't found and $default is + * specified. + * + * @throws Exception If the option is not an integer. + */ + public function getInteger($name, $default = self::REQUIRED_OPTION) + { + assert(is_string($name)); + + $ret = $this->getValue($name, $default); + + if ($ret === $default) { + // the option wasn't found, or it matches the default value. In any case, return this value + return $ret; + } + + if (!is_int($ret)) { + throw new Exception( + $this->location.': The option '.var_export($name, true). + ' is not a valid integer value.' + ); + } + + return $ret; + } + + + /** + * This function retrieves an integer configuration option where the value must be in the specified range. + * + * An exception will be thrown if: + * - the option isn't an integer + * - the option isn't found, and no default value is given + * - the value is outside of the allowed range + * + * @param string $name The name of the option. + * @param int $minimum The smallest value which is allowed. + * @param int $maximum The largest value which is allowed. + * @param mixed $default A default value which will be returned if the option isn't found. The option will be + * required if this parameter isn't given. The default value can be any value, including + * null. + * + * @return int|mixed The option with the given name, or $default if the option isn't found and $default is + * specified. + * + * @throws Exception If the option is not in the range specified. + */ + public function getIntegerRange($name, $minimum, $maximum, $default = self::REQUIRED_OPTION) + { + assert(is_string($name)); + assert(is_int($minimum)); + assert(is_int($maximum)); + + $ret = $this->getInteger($name, $default); + + if ($ret === $default) { + // the option wasn't found, or it matches the default value. In any case, return this value + return $ret; + } + + if ($ret < $minimum || $ret > $maximum) { + throw new Exception( + $this->location.': Value of option '.var_export($name, true). + ' is out of range. Value is '.$ret.', allowed range is [' + .$minimum.' - '.$maximum.']' + ); + } + + return $ret; + } + + + /** + * Retrieve a configuration option with one of the given values. + * + * This will check that the configuration option matches one of the given values. The match will use + * strict comparison. An exception will be thrown if it does not match. + * + * The option can be mandatory or optional. If no default value is given, it will be considered to be + * mandatory, and an exception will be thrown if it isn't provided. If a default value is given, it + * is considered to be optional, and the default value is returned. The default value is automatically + * included in the list of allowed values. + * + * @param string $name The name of the option. + * @param array $allowedValues The values the option is allowed to take, as an array. + * @param mixed $default The default value which will be returned if the option isn't found. If this parameter + * isn't given, the option will be considered to be mandatory. The default value can be + * any value, including null. + * + * @return mixed The option with the given name, or $default if the option isn't found and $default is given. + * + * @throws Exception If the option does not have any of the allowed values. + */ + public function getValueValidate($name, $allowedValues, $default = self::REQUIRED_OPTION) + { + assert(is_string($name)); + assert(is_array($allowedValues)); + + $ret = $this->getValue($name, $default); + if ($ret === $default) { + // the option wasn't found, or it matches the default value. In any case, return this value + return $ret; + } + + if (!in_array($ret, $allowedValues, true)) { + $strValues = array(); + foreach ($allowedValues as $av) { + $strValues[] = var_export($av, true); + } + $strValues = implode(', ', $strValues); + + throw new Exception( + $this->location.': Invalid value given for the option '. + var_export($name, true).'. It should have one of the following values: '. + $strValues.'; but it had the following value: '.var_export($ret, true) + ); + } + + return $ret; + } + + + /** + * This function retrieves an array configuration option. + * + * An exception will be thrown if this option isn't an array, or if this option isn't found, and no + * default value is given. + * + * @param string $name The name of the option. + * @param mixed $default A default value which will be returned if the option isn't found. The option will be + * required if this parameter isn't given. The default value can be any value, including + * null. + * + * @return array|mixed The option with the given name, or $default if the option isn't found and $default is + * specified. + * + * @throws Exception If the option is not an array. + */ + public function getArray($name, $default = self::REQUIRED_OPTION) + { + assert(is_string($name)); + + $ret = $this->getValue($name, $default); + + if ($ret === $default) { + // the option wasn't found, or it matches the default value. In any case, return this value + return $ret; + } + + if (!is_array($ret)) { + throw new Exception($this->location.': The option '.var_export($name, true).' is not an array.'); + } + + return $ret; + } + + + /** + * This function retrieves an array configuration option. + * + * If the configuration option isn't an array, it will be converted to an array. + * + * @param string $name The name of the option. + * @param mixed $default A default value which will be returned if the option isn't found. The option will be + * required if this parameter isn't given. The default value can be any value, including + * null. + * + * @return array The option with the given name, or $default if the option isn't found and $default is specified. + */ + public function getArrayize($name, $default = self::REQUIRED_OPTION) + { + assert(is_string($name)); + + $ret = $this->getValue($name, $default); + + if ($ret === $default) { + // the option wasn't found, or it matches the default value. In any case, return this value + return $ret; + } + + if (!is_array($ret)) { + $ret = array($ret); + } + + return $ret; + } + + + /** + * This function retrieves a configuration option with a string or an array of strings. + * + * If the configuration option is a string, it will be converted to an array with a single string + * + * @param string $name The name of the option. + * @param mixed $default A default value which will be returned if the option isn't found. The option will be + * required if this parameter isn't given. The default value can be any value, including + * null. + * + * @return array The option with the given name, or $default if the option isn't found and $default is specified. + * + * @throws Exception If the option is not a string or an array of strings. + */ + public function getArrayizeString($name, $default = self::REQUIRED_OPTION) + { + assert(is_string($name)); + + $ret = $this->getArrayize($name, $default); + + if ($ret === $default) { + // the option wasn't found, or it matches the default value. In any case, return this value + return $ret; + } + + foreach ($ret as $value) { + if (!is_string($value)) { + throw new Exception( + $this->location.': The option '.var_export($name, true). + ' must be a string or an array of strings.' + ); + } + } + + return $ret; + } + + + /** + * Retrieve an array as a SimpleSAML_Configuration object. + * + * This function will load the value of an option into a SimpleSAML_Configuration object. The option must contain + * an array. + * + * An exception will be thrown if this option isn't an array, or if this option isn't found, and no default value + * is given. + * + * @param string $name The name of the option. + * @param mixed $default A default value which will be returned if the option isn't found. The option will be + * required if this parameter isn't given. The default value can be any value, including + * null. + * + * @return mixed The option with the given name, or $default if the option isn't found and $default is specified. + * + * @throws Exception If the option is not an array. + */ + public function getConfigItem($name, $default = self::REQUIRED_OPTION) + { + assert(is_string($name)); + + $ret = $this->getValue($name, $default); + + if ($ret === $default) { + // the option wasn't found, or it matches the default value. In any case, return this value + return $ret; + } + + if (!is_array($ret)) { + throw new Exception( + $this->location.': The option '.var_export($name, true). + ' is not an array.' + ); + } + + return self::loadFromArray($ret, $this->location.'['.var_export($name, true).']'); + } + + + /** + * Retrieve an array of arrays as an array of SimpleSAML_Configuration objects. + * + * This function will retrieve an option containing an array of arrays, and create an array of + * SimpleSAML_Configuration objects from that array. The indexes in the new array will be the same as the original + * indexes, but the values will be SimpleSAML_Configuration objects. + * + * An exception will be thrown if this option isn't an array of arrays, or if this option isn't found, and no + * default value is given. + * + * @param string $name The name of the option. + * @param mixed $default A default value which will be returned if the option isn't found. The option will be + * required if this parameter isn't given. The default value can be any value, including + * null. + * + * @return mixed The option with the given name, or $default if the option isn't found and $default is specified. + * + * @throws Exception If the value of this element is not an array. + */ + public function getConfigList($name, $default = self::REQUIRED_OPTION) + { + assert(is_string($name)); + + $ret = $this->getValue($name, $default); + + if ($ret === $default) { + // the option wasn't found, or it matches the default value. In any case, return this value + return $ret; + } + + if (!is_array($ret)) { + throw new Exception( + $this->location.': The option '.var_export($name, true). + ' is not an array.' + ); + } + + $out = array(); + foreach ($ret as $index => $config) { + $newLoc = $this->location.'['.var_export($name, true).']['. + var_export($index, true).']'; + if (!is_array($config)) { + throw new Exception($newLoc.': The value of this element was expected to be an array.'); + } + $out[$index] = self::loadFromArray($config, $newLoc); + } + + return $out; + } + + + /** + * Retrieve list of options. + * + * This function returns the name of all options which are defined in this + * configuration file, as an array of strings. + * + * @return array Name of all options defined in this configuration file. + */ + public function getOptions() + { + return array_keys($this->configuration); + } + + + /** + * Convert this configuration object back to an array. + * + * @return array An associative array with all configuration options and values. + */ + public function toArray() + { + return $this->configuration; + } + + + /** + * Retrieve the default binding for the given endpoint type. + * + * This function combines the current metadata type (SAML 2 / SAML 1.1) + * with the endpoint type to determine which binding is the default. + * + * @param string $endpointType The endpoint type. + * + * @return string The default binding. + * + * @throws Exception If the default binding is missing for this endpoint type. + */ + private function getDefaultBinding($endpointType) + { + assert(is_string($endpointType)); + + $set = $this->getString('metadata-set'); + switch ($set.':'.$endpointType) { + case 'saml20-idp-remote:SingleSignOnService': + case 'saml20-idp-remote:SingleLogoutService': + case 'saml20-sp-remote:SingleLogoutService': + return \SAML2\Constants::BINDING_HTTP_REDIRECT; + case 'saml20-sp-remote:AssertionConsumerService': + return \SAML2\Constants::BINDING_HTTP_POST; + case 'saml20-idp-remote:ArtifactResolutionService': + return \SAML2\Constants::BINDING_SOAP; + case 'shib13-idp-remote:SingleSignOnService': + return 'urn:mace:shibboleth:1.0:profiles:AuthnRequest'; + case 'shib13-sp-remote:AssertionConsumerService': + return 'urn:oasis:names:tc:SAML:1.0:profiles:browser-post'; + default: + throw new Exception('Missing default binding for '.$endpointType.' in '.$set); + } + } + + + /** + * Helper function for dealing with metadata endpoints. + * + * @param string $endpointType The endpoint type. + * + * @return array Array of endpoints of the given type. + * + * @throws Exception If any element of the configuration options for this endpoint type is incorrect. + */ + public function getEndpoints($endpointType) + { + assert(is_string($endpointType)); + + $loc = $this->location.'['.var_export($endpointType, true).']:'; + + if (!array_key_exists($endpointType, $this->configuration)) { + // no endpoints of the given type + return array(); + } + + + $eps = $this->configuration[$endpointType]; + if (is_string($eps)) { + // for backwards-compatibility + $eps = array($eps); + } elseif (!is_array($eps)) { + throw new Exception($loc.': Expected array or string.'); + } + + + foreach ($eps as $i => &$ep) { + $iloc = $loc.'['.var_export($i, true).']'; + + if (is_string($ep)) { + // for backwards-compatibility + $ep = array( + 'Location' => $ep, + 'Binding' => $this->getDefaultBinding($endpointType), + ); + $responseLocation = $this->getString($endpointType.'Response', null); + if ($responseLocation !== null) { + $ep['ResponseLocation'] = $responseLocation; + } + } elseif (!is_array($ep)) { + throw new Exception($iloc.': Expected a string or an array.'); + } + + if (!array_key_exists('Location', $ep)) { + throw new Exception($iloc.': Missing Location.'); + } + if (!is_string($ep['Location'])) { + throw new Exception($iloc.': Location must be a string.'); + } + + if (!array_key_exists('Binding', $ep)) { + throw new Exception($iloc.': Missing Binding.'); + } + if (!is_string($ep['Binding'])) { + throw new Exception($iloc.': Binding must be a string.'); + } + + if (array_key_exists('ResponseLocation', $ep)) { + if (!is_string($ep['ResponseLocation'])) { + throw new Exception($iloc.': ResponseLocation must be a string.'); + } + } + + if (array_key_exists('index', $ep)) { + if (!is_int($ep['index'])) { + throw new Exception($iloc.': index must be an integer.'); + } + } + } + + return $eps; + } + + + /** + * Find an endpoint of the given type, using a list of supported bindings as a way to prioritize. + * + * @param string $endpointType The endpoint type. + * @param array $bindings Sorted array of acceptable bindings. + * @param mixed $default The default value to return if no matching endpoint is found. If no default is provided, + * an exception will be thrown. + * + * @return array|null The default endpoint, or null if no acceptable endpoints are used. + * + * @throws Exception If no supported endpoint is found. + */ + public function getEndpointPrioritizedByBinding($endpointType, array $bindings, $default = self::REQUIRED_OPTION) + { + assert(is_string($endpointType)); + + $endpoints = $this->getEndpoints($endpointType); + + foreach ($bindings as $binding) { + foreach ($endpoints as $ep) { + if ($ep['Binding'] === $binding) { + return $ep; + } + } + } + + if ($default === self::REQUIRED_OPTION) { + $loc = $this->location.'['.var_export($endpointType, true).']:'; + throw new Exception($loc.'Could not find a supported '.$endpointType.' endpoint.'); + } + + return $default; + } + + + /** + * Find the default endpoint of the given type. + * + * @param string $endpointType The endpoint type. + * @param array $bindings Array with acceptable bindings. Can be null if any binding is allowed. + * @param mixed $default The default value to return if no matching endpoint is found. If no default is provided, + * an exception will be thrown. + * + * @return array|null The default endpoint, or null if no acceptable endpoints are used. + * + * @throws Exception If no supported endpoint is found. + */ + public function getDefaultEndpoint($endpointType, array $bindings = null, $default = self::REQUIRED_OPTION) + { + assert(is_string($endpointType)); + + $endpoints = $this->getEndpoints($endpointType); + + $defaultEndpoint = \SimpleSAML\Utils\Config\Metadata::getDefaultEndpoint($endpoints, $bindings); + if ($defaultEndpoint !== null) { + return $defaultEndpoint; + } + + if ($default === self::REQUIRED_OPTION) { + $loc = $this->location.'['.var_export($endpointType, true).']:'; + throw new Exception($loc.'Could not find a supported '.$endpointType.' endpoint.'); + } + + return $default; + } + + + /** + * Retrieve a string which may be localized into many languages. + * + * The default language returned is always 'en'. + * + * @param string $name The name of the option. + * @param mixed $default The default value. If no default is given, and the option isn't found, an exception will + * be thrown. + * + * @return array Associative array with language => string pairs. + * + * @throws Exception If the translation is not an array or a string, or its index or value are not strings. + */ + public function getLocalizedString($name, $default = self::REQUIRED_OPTION) + { + assert(is_string($name)); + + $ret = $this->getValue($name, $default); + if ($ret === $default) { + // the option wasn't found, or it matches the default value. In any case, return this value + return $ret; + } + + $loc = $this->location.'['.var_export($name, true).']'; + + if (is_string($ret)) { + $ret = array('en' => $ret,); + } + + if (!is_array($ret)) { + throw new Exception($loc.': Must be an array or a string.'); + } + + foreach ($ret as $k => $v) { + if (!is_string($k)) { + throw new Exception($loc.': Invalid language code: '.var_export($k, true)); + } + if (!is_string($v)) { + throw new Exception($loc.'['.var_export($v, true).']: Must be a string.'); + } + } + + return $ret; + } + + + /** + * Get public key from metadata. + * + * @param string|null $use The purpose this key can be used for. (encryption or signing). + * @param bool $required Whether the public key is required. If this is true, a + * missing key will cause an exception. Default is false. + * @param string $prefix The prefix which should be used when reading from the metadata + * array. Defaults to ''. + * + * @return array Public key data, or empty array if no public key or was found. + * + * @throws Exception If the certificate or public key cannot be loaded from a file. + * @throws SimpleSAML_Error_Exception If the file does not contain a valid PEM-encoded certificate, or there is no + * certificate in the metadata. + */ + public function getPublicKeys($use = null, $required = false, $prefix = '') + { + assert(is_bool($required)); + assert(is_string($prefix)); + + if ($this->hasValue($prefix.'keys')) { + $ret = array(); + foreach ($this->getArray($prefix.'keys') as $key) { + if ($use !== null && isset($key[$use]) && !$key[$use]) { + continue; + } + if (isset($key['X509Certificate'])) { + // Strip whitespace from key + $key['X509Certificate'] = preg_replace('/\s+/', '', $key['X509Certificate']); + } + $ret[] = $key; + } + return $ret; + } elseif ($this->hasValue($prefix.'certData')) { + $certData = $this->getString($prefix.'certData'); + $certData = preg_replace('/\s+/', '', $certData); + return array( + array( + 'encryption' => true, + 'signing' => true, + 'type' => 'X509Certificate', + 'X509Certificate' => $certData, + ), + ); + } elseif ($this->hasValue($prefix.'certificate')) { + $file = $this->getString($prefix.'certificate'); + $file = \SimpleSAML\Utils\Config::getCertPath($file); + $data = @file_get_contents($file); + + if ($data === false) { + throw new Exception($this->location.': Unable to load certificate/public key from file "'.$file.'".'); + } + + // extract certificate data (if this is a certificate) + $pattern = '/^-----BEGIN CERTIFICATE-----([^-]*)^-----END CERTIFICATE-----/m'; + if (!preg_match($pattern, $data, $matches)) { + throw new SimpleSAML_Error_Exception( + $this->location.': Could not find PEM encoded certificate in "'.$file.'".' + ); + } + $certData = preg_replace('/\s+/', '', $matches[1]); + + return array( + array( + 'encryption' => true, + 'signing' => true, + 'type' => 'X509Certificate', + 'X509Certificate' => $certData, + ), + ); + } elseif ($required === true) { + throw new SimpleSAML_Error_Exception($this->location.': Missing certificate in metadata.'); + } else { + return array(); + } + } + + /** + * Clear any configuration information cached. + * Allows for configuration files to be changed and reloaded during a given request. Most useful + * when running phpunit tests and needing to alter config.php between test cases + */ + public static function clearInternalState() + { + self::$configDirs = array(); + self::$instance = array(); + self::$loadedConfigs = array(); + } +} diff --git a/lib/SimpleSAML/Database.php b/lib/SimpleSAML/Database.php new file mode 100755 index 0000000..8a18938 --- /dev/null +++ b/lib/SimpleSAML/Database.php @@ -0,0 +1,293 @@ + + * @package SimpleSAMLphp + */ + +class Database +{ + + /** + * This variable holds the instance of the session - Singleton approach. + */ + private static $instance = array(); + + /** + * PDO Object for the Master database server + */ + private $dbMaster; + + /** + * Array of PDO Objects for configured database slaves + */ + private $dbSlaves = array(); + + /** + * Prefix to apply to the tables + */ + private $tablePrefix; + + /** + * Array with information on the last error occurred. + */ + private $lastError; + + + /** + * Retrieves the current database instance. Will create a new one if there isn't an existing connection. + * + * @param \SimpleSAML_Configuration $altConfig Optional: Instance of a SimpleSAML_Configuration class + * + * @return \SimpleSAML\Database The shared database connection. + */ + public static function getInstance($altConfig = null) + { + $config = ($altConfig) ? $altConfig : \SimpleSAML_Configuration::getInstance(); + $instanceId = self::generateInstanceId($config); + + // check if we already have initialized the session + if (isset(self::$instance[$instanceId])) { + return self::$instance[$instanceId]; + } + + // create a new session + self::$instance[$instanceId] = new Database($config); + return self::$instance[$instanceId]; + } + + + /** + * Private constructor that restricts instantiation to getInstance(). + * + * @param \SimpleSAML_Configuration $config Instance of the SimpleSAML_Configuration class + */ + private function __construct($config) + { + $driverOptions = $config->getArray('database.driver_options', array()); + if ($config->getBoolean('database.persistent', true)) { + $driverOptions = array(\PDO::ATTR_PERSISTENT => true); + } + + // connect to the master + $this->dbMaster = $this->connect( + $config->getString('database.dsn'), + $config->getString('database.username', null), + $config->getString('database.password', null), + $driverOptions + ); + + // connect to any configured slaves + $slaves = $config->getArray('database.slaves', array()); + foreach ($slaves as $slave) { + array_push( + $this->dbSlaves, + $this->connect( + $slave['dsn'], + $slave['username'], + $slave['password'], + $driverOptions + ) + ); + } + + $this->tablePrefix = $config->getString('database.prefix', ''); + } + + + /** + * Generate an Instance ID based on the database configuration. + * + * @param \SimpleSAML_Configuration $config Configuration class + * + * @return string $instanceId + */ + private static function generateInstanceId($config) + { + $assembledConfig = array( + 'master' => array( + 'database.dsn' => $config->getString('database.dsn'), + 'database.username' => $config->getString('database.username', null), + 'database.password' => $config->getString('database.password', null), + 'database.prefix' => $config->getString('database.prefix', ''), + 'database.persistent' => $config->getBoolean('database.persistent', false), + ), + 'slaves' => $config->getArray('database.slaves', array()), + ); + + return sha1(serialize($assembledConfig)); + } + + + /** + * This function connects to a database. + * + * @param string $dsn Database connection string + * @param string $username SQL user + * @param string $password SQL password + * @param array $options PDO options + * + * @throws \Exception If an error happens while trying to connect to the database. + * @return \PDO object + */ + private function connect($dsn, $username, $password, $options) + { + try { + $db = new \PDO($dsn, $username, $password, $options); + $db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); + + return $db; + } catch (\PDOException $e) { + throw new \Exception("Database error: ".$e->getMessage()); + } + } + + + /** + * This function randomly selects a slave database server to query. In the event no slaves are configured, it will + * return the master. + * + * @return \PDO object + */ + private function getSlave() + { + if (count($this->dbSlaves) > 0) { + $slaveId = rand(0, count($this->dbSlaves) - 1); + return $this->dbSlaves[$slaveId]; + } else { + return $this->dbMaster; + } + } + + + /** + * This function simply applies the table prefix to a supplied table name. + * + * @param string $table Table to apply prefix to, if configured + * + * @return string Table with configured prefix + */ + public function applyPrefix($table) + { + return $this->tablePrefix.$table; + } + + + /** + * This function queries the database + * + * @param \PDO $db PDO object to use + * @param string $stmt Prepared SQL statement + * @param array $params Parameters + * + * @throws \Exception If an error happens while trying to execute the query. + * @return \PDOStatement object + */ + private function query($db, $stmt, $params) + { + assert(is_object($db)); + assert(is_string($stmt)); + assert(is_array($params)); + + try { + $query = $db->prepare($stmt); + + foreach ($params as $param => $value) { + if (is_array($value)) { + $query->bindValue(":$param", $value[0], ($value[1]) ? $value[1] : \PDO::PARAM_STR); + } else { + $query->bindValue(":$param", $value, \PDO::PARAM_STR); + } + } + + $query->execute(); + + return $query; + } catch (\PDOException $e) { + $this->lastError = $db->errorInfo(); + throw new \Exception("Database error: ".$e->getMessage()); + } + } + + + /** + * This function queries the database without using a prepared statement. + * + * @param \PDO $db PDO object to use + * @param string $stmt An SQL statement to execute, previously escaped. + * + * @throws \Exception If an error happens while trying to execute the query. + * @return int The number of rows affected. + */ + private function exec($db, $stmt) + { + assert(is_object($db)); + assert(is_string($stmt)); + + try { + return $db->exec($stmt); + } catch (\PDOException $e) { + $this->lastError = $db->errorInfo(); + throw new \Exception("Database error: ".$e->getMessage()); + } + } + + + /** + * This executes queries directly on the master. + * + * @param string $stmt Prepared SQL statement + * @param array $params Parameters + * + * @return int The number of rows affected by the query. + */ + public function write($stmt, $params = array()) + { + $db = $this->dbMaster; + + if (is_array($params)) { + $obj = $this->query($db, $stmt, $params); + return $obj->rowCount(); + } else { + return $this->exec($db, $stmt); + } + } + + + /** + * This executes queries on a database server that is determined by this::getSlave(). + * + * @param string $stmt Prepared SQL statement + * @param array $params Parameters + * + * @return \PDOStatement object + */ + public function read($stmt, $params = array()) + { + $db = $this->getSlave(); + + return $this->query($db, $stmt, $params); + } + + + /** + * Return an array with information about the last operation performed in the database. + * + * @return array The array with error information. + */ + public function getLastError() + { + return $this->lastError; + } +} diff --git a/lib/SimpleSAML/Error/Assertion.php b/lib/SimpleSAML/Error/Assertion.php new file mode 100755 index 0000000..d9a607a --- /dev/null +++ b/lib/SimpleSAML/Error/Assertion.php @@ -0,0 +1,85 @@ +assertion = $assertion; + } + + + /** + * Retrieve the assertion which failed. + * + * @return string|null The assertion which failed, or null if the assert-function was called with an expression. + */ + public function getAssertion() + { + return $this->assertion; + } + + + /** + * Install this assertion handler. + * + * This function will register this assertion handler. If will not enable assertions if they are + * disabled. + */ + public static function installHandler() + { + + assert_options(ASSERT_WARNING, 0); + assert_options(ASSERT_QUIET_EVAL, 0); + assert_options(ASSERT_CALLBACK, array('SimpleSAML_Error_Assertion', 'onAssertion')); + } + + + /** + * Handle assertion. + * + * This function handles an assertion. + * + * @param string $file The file assert was called from. + * @param int $line The line assert was called from. + * @param mixed $message The expression which was passed to the assert-function. + */ + public static function onAssertion($file, $line, $message) + { + + if (!empty($message)) { + $exception = new self($message); + } else { + $exception = new self(); + } + + $exception->logError(); + } +} diff --git a/lib/SimpleSAML/Error/AuthSource.php b/lib/SimpleSAML/Error/AuthSource.php new file mode 100755 index 0000000..107083e --- /dev/null +++ b/lib/SimpleSAML/Error/AuthSource.php @@ -0,0 +1,70 @@ +authsource = $authsource; + $this->reason = $reason; + parent::__construct( + array( + 'AUTHSOURCEERROR', + '%AUTHSOURCE%' => htmlspecialchars(var_export($this->authsource, true)), + '%REASON%' => htmlspecialchars(var_export($this->reason, true)) + ), + $cause + ); + + $this->message = "Error with authentication source '$authsource': $reason"; + } + + + /** + * Retrieve the authsource module name from where this error was thrown. + * + * @return string Authsource module name. + */ + public function getAuthSource() + { + return $this->authsource; + } + + + /** + * Retrieve the reason why the request was invalid. + * + * @return string The reason why the request was invalid. + */ + public function getReason() + { + return $this->reason; + } +} diff --git a/lib/SimpleSAML/Error/BadRequest.php b/lib/SimpleSAML/Error/BadRequest.php new file mode 100755 index 0000000..79710cc --- /dev/null +++ b/lib/SimpleSAML/Error/BadRequest.php @@ -0,0 +1,46 @@ +reason = $reason; + parent::__construct(array('BADREQUEST', '%REASON%' => $this->reason)); + $this->httpCode = 400; + } + + + /** + * Retrieve the reason why the request was invalid. + * + * @return string The reason why the request was invalid. + */ + public function getReason() + { + return $this->reason; + } +} diff --git a/lib/SimpleSAML/Error/BadUserInput.php b/lib/SimpleSAML/Error/BadUserInput.php new file mode 100755 index 0000000..0e4d721 --- /dev/null +++ b/lib/SimpleSAML/Error/BadUserInput.php @@ -0,0 +1,12 @@ + + * @package SimpleSAMLphp_base + * + */ +class SimpleSAML_Error_BadUserInput extends SimpleSAML_Error_User +{ + +} diff --git a/lib/SimpleSAML/Error/CannotSetCookie.php b/lib/SimpleSAML/Error/CannotSetCookie.php new file mode 100755 index 0000000..c4e7fee --- /dev/null +++ b/lib/SimpleSAML/Error/CannotSetCookie.php @@ -0,0 +1,35 @@ + + * @package SimpleSAMLphp + */ + +namespace SimpleSAML\Error; + +class CannotSetCookie extends \SimpleSAML_Error_Exception +{ + + /** + * The exception was thrown for unknown reasons. + * + * @var int + */ + const UNKNOWN = 0; + + /** + * The exception was due to the HTTP headers being already sent, and therefore we cannot send additional headers to + * set the cookie. + * + * @var int + */ + const HEADERS_SENT = 1; + + /** + * The exception was due to trying to set a secure cookie over an insecure channel. + * + * @var int + */ + const SECURE_COOKIE = 2; +} diff --git a/lib/SimpleSAML/Error/ConfigurationError.php b/lib/SimpleSAML/Error/ConfigurationError.php new file mode 100755 index 0000000..574ef62 --- /dev/null +++ b/lib/SimpleSAML/Error/ConfigurationError.php @@ -0,0 +1,77 @@ + + * @package SimpleSAMLphp + */ + +namespace SimpleSAML\Error; + +class ConfigurationError extends \SimpleSAML_Error_Error +{ + + /** + * The reason for this exception. + * + * @var null|string + */ + protected $reason; + + /** + * The configuration file that caused this exception. + * + * @var null|string + */ + protected $config_file; + + + /** + * ConfigurationError constructor. + * + * @param string|null $reason The reason for this exception. + * @param string|null $file The configuration file that originated this error. + * @param array|null $config The configuration array that led to this problem. + */ + public function __construct($reason = null, $file = null, array $config = null) + { + $file_str = ''; + $reason_str = '.'; + $params = array('CONFIG'); + if ($file !== null) { + $params['%FILE%'] = $file; + $basepath = dirname(dirname(dirname(dirname(__FILE__)))).'/'; + $file_str = '('.str_replace($basepath, '', $file).') '; + } + if ($reason !== null) { + $params['%REASON%'] = $reason; + $reason_str = ': '.$reason; + } + $this->reason = $reason; + $this->config_file = $file; + parent::__construct($params); + $this->message = 'The configuration '.$file_str.'is invalid'.$reason_str; + } + + + /** + * Get the reason for this exception. + * + * @return null|string The reason for this exception. + */ + public function getReason() + { + return $this->reason; + } + + + /** + * Get the configuration file that caused this exception. + * + * @return null|string The configuration file that caused this exception. + */ + public function getConfFile() + { + return $this->config_file; + } +} diff --git a/lib/SimpleSAML/Error/CriticalConfigurationError.php b/lib/SimpleSAML/Error/CriticalConfigurationError.php new file mode 100755 index 0000000..507fd2b --- /dev/null +++ b/lib/SimpleSAML/Error/CriticalConfigurationError.php @@ -0,0 +1,79 @@ + + * @package SimpleSAMLphp + */ + +namespace SimpleSAML\Error; + +class CriticalConfigurationError extends ConfigurationError +{ + + /** + * This is the bare minimum configuration that we can use. + * + * @var array + */ + private static $minimum_config = array( + 'logging.handler' => 'errorlog', + 'logging.level' => \SimpleSAML\Logger::DEBUG, + 'errorreporting' => false, + 'debug' => true, + ); + + + /** + * CriticalConfigurationError constructor. + * + * @param string|null $reason The reason for this critical error. + * @param string|null $file The configuration file that originated this error. + * @param array|null The configuration array that led to this problem. + */ + public function __construct($reason = null, $file = null, $config = null) + { + if ($config === null) { + $config = self::$minimum_config; + $config['baseurlpath'] = \SimpleSAML\Utils\HTTP::guessBasePath(); + } + + \SimpleSAML_Configuration::loadFromArray( + $config, + '', + 'simplesaml' + ); + parent::__construct($reason, $file); + } + + + /** + * @param \Exception $exception + * + * @return CriticalConfigurationError + */ + public static function fromException(\Exception $exception) + { + $reason = null; + $file = null; + if ($exception instanceof ConfigurationError) { + $reason = $exception->getReason(); + $file = $exception->getConfFile(); + } else { + $reason = $exception->getMessage(); + } + return new CriticalConfigurationError($reason, $file); + } +} diff --git a/lib/SimpleSAML/Error/Error.php b/lib/SimpleSAML/Error/Error.php new file mode 100755 index 0000000..55b47a4 --- /dev/null +++ b/lib/SimpleSAML/Error/Error.php @@ -0,0 +1,296 @@ +parameters = $errorCode; + unset($this->parameters[0]); + $this->errorCode = $errorCode[0]; + } else { + $this->parameters = array(); + $this->errorCode = $errorCode; + } + + if (isset($httpCode)) { + $this->httpCode = $httpCode; + } + + $moduleCode = explode(':', $this->errorCode, 2); + if (count($moduleCode) === 2) { + $this->module = $moduleCode[0]; + $this->dictTitle = '{'.$this->module.':errors:title_'.$moduleCode[1].'}'; + $this->dictDescr = '{'.$this->module.':errors:descr_'.$moduleCode[1].'}'; + } else { + $this->dictTitle = SimpleSAML\Error\ErrorCodes::getErrorCodeTitle($this->errorCode); + $this->dictDescr = SimpleSAML\Error\ErrorCodes::getErrorCodeDescription($this->errorCode); + } + + if (!empty($this->parameters)) { + $msg = $this->errorCode.'('; + foreach ($this->parameters as $k => $v) { + if ($k === 0) { + continue; + } + + $msg .= var_export($k, true).' => '.var_export($v, true).', '; + } + $msg = substr($msg, 0, -2).')'; + } else { + $msg = $this->errorCode; + } + parent::__construct($msg, -1, $cause); + } + + + /** + * Retrieve the error code given when throwing this error. + * + * @return string The error code. + */ + public function getErrorCode() + { + return $this->errorCode; + } + + + /** + * Retrieve the error parameters given when throwing this error. + * + * @return array The parameters. + */ + public function getParameters() + { + return $this->parameters; + } + + + /** + * Retrieve the error title tag in dictionary. + * + * @return string The error title tag. + */ + public function getDictTitle() + { + return $this->dictTitle; + } + + + /** + * Retrieve the error description tag in dictionary. + * + * @return string The error description tag. + */ + public function getDictDescr() + { + return $this->dictDescr; + } + + + /** + * Set the HTTP return code for this error. + * + * This should be overridden by subclasses who want a different return code than 500 Internal Server Error. + */ + protected function setHTTPCode() + { + // Some mostly used HTTP codes + $httpCodesMap = array( + 400 => 'HTTP/1.0 400 Bad Request', + 403 => 'HTTP/1.0 403 Forbidden', + 404 => 'HTTP/1.0 404 Not Found', + 405 => 'HTTP/1.0 405 Method Not Allowed', + 500 => 'HTTP/1.0 500 Internal Server Error', + 501 => 'HTTP/1.0 501 Method Not Implemented', + 503 => 'HTTP/1.0 503 Service Temporarily Unavailable', + ); + + $httpCode = $this->httpCode; + + if (function_exists('http_response_code')) { + http_response_code($httpCode); + return; + } + + if (!array_key_exists($this->httpCode, $httpCodesMap)) { + $httpCode = 500; + SimpleSAML\Logger::warning('HTTP response code not defined: '.var_export($this->httpCode, true)); + } + + header($httpCodesMap[$httpCode]); + } + + + /** + * Save an error report. + * + * @return array The array with the error report data. + */ + protected function saveError() + { + $data = $this->format(true); + $emsg = array_shift($data); + $etrace = implode("\n", $data); + + $reportId = bin2hex(openssl_random_pseudo_bytes(4)); + SimpleSAML\Logger::error('Error report with id '.$reportId.' generated.'); + + $config = SimpleSAML_Configuration::getInstance(); + $session = SimpleSAML_Session::getSessionFromRequest(); + + if (isset($_SERVER['HTTP_REFERER'])) { + $referer = $_SERVER['HTTP_REFERER']; + // remove anything after the first '?' or ';', just in case it contains any sensitive data + $referer = explode('?', $referer, 2); + $referer = $referer[0]; + $referer = explode(';', $referer, 2); + $referer = $referer[0]; + } else { + $referer = 'unknown'; + } + $errorData = array( + 'exceptionMsg' => $emsg, + 'exceptionTrace' => $etrace, + 'reportId' => $reportId, + 'trackId' => $session->getTrackID(), + 'url' => \SimpleSAML\Utils\HTTP::getSelfURLNoQuery(), + 'version' => $config->getVersion(), + 'referer' => $referer, + ); + $session->setData('core:errorreport', $reportId, $errorData); + + return $errorData; + } + + + /** + * Display this error. + * + * This method displays a standard SimpleSAMLphp error page and exits. + */ + public function show() + { + $this->setHTTPCode(); + + // log the error message + $this->logError(); + + $errorData = $this->saveError(); + $config = SimpleSAML_Configuration::getInstance(); + + $data = array(); + $data['showerrors'] = $config->getBoolean('showerrors', true); + $data['error'] = $errorData; + $data['errorCode'] = $this->errorCode; + $data['parameters'] = $this->parameters; + $data['module'] = $this->module; + $data['dictTitle'] = $this->dictTitle; + $data['dictDescr'] = $this->dictDescr; + $data['includeTemplate'] = $this->includeTemplate; + $data['clipboard.js'] = true; + + // check if there is a valid technical contact email address + if ($config->getBoolean('errorreporting', true) && + $config->getString('technicalcontact_email', 'na@example.org') !== 'na@example.org' + ) { + // enable error reporting + $baseurl = \SimpleSAML\Utils\HTTP::getBaseURL(); + $data['errorReportAddress'] = $baseurl.'errorreport.php'; + } + + $data['email'] = ''; + $session = SimpleSAML_Session::getSessionFromRequest(); + $authorities = $session->getAuthorities(); + foreach ($authorities as $authority) { + $attributes = $session->getAuthData($authority, 'Attributes'); + if ($attributes !== null && array_key_exists('mail', $attributes) && count($attributes['mail']) > 0) { + $data['email'] = $attributes['mail'][0]; + break; // enough, don't need to get all available mails, if more than one + } + } + + $show_function = $config->getArray('errors.show_function', null); + if (isset($show_function)) { + assert(is_callable($show_function)); + call_user_func($show_function, $config, $data); + assert(false); + } else { + $t = new SimpleSAML_XHTML_Template($config, 'error.php', 'errors'); + $t->data = array_merge($t->data, $data); + $t->data['dictTitleTranslated'] = $t->getTranslator()->t($t->data['dictTitle']); + $t->data['dictDescrTranslated'] = $t->getTranslator()->t($t->data['dictDescr'], $t->data['parameters']); + $t->show(); + } + + exit; + } +} diff --git a/lib/SimpleSAML/Error/ErrorCodes.php b/lib/SimpleSAML/Error/ErrorCodes.php new file mode 100755 index 0000000..3563a2d --- /dev/null +++ b/lib/SimpleSAML/Error/ErrorCodes.php @@ -0,0 +1,188 @@ + + * @package SimpleSAMLphp + */ + +namespace SimpleSAML\Error; + +class ErrorCodes +{ + /** + * Fetch all default translation strings for error code titles. + * + * @return array A map from error code to error code title + */ + final public static function defaultGetAllErrorCodeTitles() + { + return array( + 'ACSPARAMS' => \SimpleSAML\Locale\Translate::noop('{errors:title_ACSPARAMS}'), + 'ARSPARAMS' => \SimpleSAML\Locale\Translate::noop('{errors:title_ARSPARAMS}'), + 'AUTHSOURCEERROR' => \SimpleSAML\Locale\Translate::noop('{errors:title_AUTHSOURCEERROR}'), + 'BADREQUEST' => \SimpleSAML\Locale\Translate::noop('{errors:title_BADREQUEST}'), + 'CASERROR' => \SimpleSAML\Locale\Translate::noop('{errors:title_CASERROR}'), + 'CONFIG' => \SimpleSAML\Locale\Translate::noop('{errors:title_CONFIG}'), + 'CREATEREQUEST' => \SimpleSAML\Locale\Translate::noop('{errors:title_CREATEREQUEST}'), + 'DISCOPARAMS' => \SimpleSAML\Locale\Translate::noop('{errors:title_DISCOPARAMS}'), + 'GENERATEAUTHNRESPONSE' => \SimpleSAML\Locale\Translate::noop('{errors:title_GENERATEAUTHNRESPONSE}'), + 'INVALIDCERT' => \SimpleSAML\Locale\Translate::noop('{errors:title_INVALIDCERT}'), + 'LDAPERROR' => \SimpleSAML\Locale\Translate::noop('{errors:title_LDAPERROR}'), + 'LOGOUTINFOLOST' => \SimpleSAML\Locale\Translate::noop('{errors:title_LOGOUTINFOLOST}'), + 'LOGOUTREQUEST' => \SimpleSAML\Locale\Translate::noop('{errors:title_LOGOUTREQUEST}'), + 'MEMCACHEDOWN' => \SimpleSAML\Locale\Translate::noop('{errors:title_MEMCACHEDOWN}'), + 'METADATA' => \SimpleSAML\Locale\Translate::noop('{errors:title_METADATA}'), + 'METADATANOTFOUND' => \SimpleSAML\Locale\Translate::noop('{errors:title_METADATANOTFOUND}'), + 'NOACCESS' => \SimpleSAML\Locale\Translate::noop('{errors:title_NOACCESS}'), + 'NOCERT' => \SimpleSAML\Locale\Translate::noop('{errors:title_NOCERT}'), + 'NORELAYSTATE' => \SimpleSAML\Locale\Translate::noop('{errors:title_NORELAYSTATE}'), + 'NOSTATE' => \SimpleSAML\Locale\Translate::noop('{errors:title_NOSTATE}'), + 'NOTFOUND' => \SimpleSAML\Locale\Translate::noop('{errors:title_NOTFOUND}'), + 'NOTFOUNDREASON' => \SimpleSAML\Locale\Translate::noop('{errors:title_NOTFOUNDREASON}'), + 'NOTSET' => \SimpleSAML\Locale\Translate::noop('{errors:title_NOTSET}'), + 'NOTVALIDCERT' => \SimpleSAML\Locale\Translate::noop('{errors:title_NOTVALIDCERT}'), + 'PROCESSASSERTION' => \SimpleSAML\Locale\Translate::noop('{errors:title_PROCESSASSERTION}'), + 'PROCESSAUTHNREQUEST' => \SimpleSAML\Locale\Translate::noop('{errors:title_PROCESSAUTHNREQUEST}'), + 'RESPONSESTATUSNOSUCCESS' => \SimpleSAML\Locale\Translate::noop('{errors:title_RESPONSESTATUSNOSUCCESS}'), + 'SLOSERVICEPARAMS' => \SimpleSAML\Locale\Translate::noop('{errors:title_SLOSERVICEPARAMS}'), + 'SSOPARAMS' => \SimpleSAML\Locale\Translate::noop('{errors:title_SSOPARAMS}'), + 'UNHANDLEDEXCEPTION' => \SimpleSAML\Locale\Translate::noop('{errors:title_UNHANDLEDEXCEPTION}'), + 'UNKNOWNCERT' => \SimpleSAML\Locale\Translate::noop('{errors:title_UNKNOWNCERT}'), + 'USERABORTED' => \SimpleSAML\Locale\Translate::noop('{errors:title_USERABORTED}'), + 'WRONGUSERPASS' => \SimpleSAML\Locale\Translate::noop('{errors:title_WRONGUSERPASS}'), + ); + } + + + /** + * Fetch all translation strings for error code titles. + * + * Extend this to add error codes. + * + * @return array A map from error code to error code title + */ + public static function getAllErrorCodeTitles() + { + return self::defaultGetAllErrorCodeTitles(); + } + + + /** + * Fetch all default translation strings for error code descriptions. + * + * @return string A map from error code to error code description + */ + final public static function defaultGetAllErrorCodeDescriptions() + { + return array( + 'ACSPARAMS' => \SimpleSAML\Locale\Translate::noop('{errors:descr_ACSPARAMS}'), + 'ARSPARAMS' => \SimpleSAML\Locale\Translate::noop('{errors:descr_ARSPARAMS}'), + 'AUTHSOURCEERROR' => \SimpleSAML\Locale\Translate::noop('{errors:descr_AUTHSOURCEERROR}'), + 'BADREQUEST' => \SimpleSAML\Locale\Translate::noop('{errors:descr_BADREQUEST}'), + 'CASERROR' => \SimpleSAML\Locale\Translate::noop('{errors:descr_CASERROR}'), + 'CONFIG' => \SimpleSAML\Locale\Translate::noop('{errors:descr_CONFIG}'), + 'CREATEREQUEST' => \SimpleSAML\Locale\Translate::noop('{errors:descr_CREATEREQUEST}'), + 'DISCOPARAMS' => \SimpleSAML\Locale\Translate::noop('{errors:descr_DISCOPARAMS}'), + 'GENERATEAUTHNRESPONSE' => \SimpleSAML\Locale\Translate::noop('{errors:descr_GENERATEAUTHNRESPONSE}'), + 'INVALIDCERT' => \SimpleSAML\Locale\Translate::noop('{errors:descr_INVALIDCERT}'), + 'LDAPERROR' => \SimpleSAML\Locale\Translate::noop('{errors:descr_LDAPERROR}'), + 'LOGOUTINFOLOST' => \SimpleSAML\Locale\Translate::noop('{errors:descr_LOGOUTINFOLOST}'), + 'LOGOUTREQUEST' => \SimpleSAML\Locale\Translate::noop('{errors:descr_LOGOUTREQUEST}'), + 'MEMCACHEDOWN' => \SimpleSAML\Locale\Translate::noop('{errors:descr_MEMCACHEDOWN}'), + 'METADATA' => \SimpleSAML\Locale\Translate::noop('{errors:descr_METADATA}'), + 'METADATANOTFOUND' => \SimpleSAML\Locale\Translate::noop('{errors:descr_METADATANOTFOUND}'), + 'NOACCESS' => \SimpleSAML\Locale\Translate::noop('{errors:descr_NOACCESS}'), + 'NOCERT' => \SimpleSAML\Locale\Translate::noop('{errors:descr_NOCERT}'), + 'NORELAYSTATE' => \SimpleSAML\Locale\Translate::noop('{errors:descr_NORELAYSTATE}'), + 'NOSTATE' => \SimpleSAML\Locale\Translate::noop('{errors:descr_NOSTATE}'), + 'NOTFOUND' => \SimpleSAML\Locale\Translate::noop('{errors:descr_NOTFOUND}'), + 'NOTFOUNDREASON' => \SimpleSAML\Locale\Translate::noop('{errors:descr_NOTFOUNDREASON}'), + 'NOTSET' => \SimpleSAML\Locale\Translate::noop('{errors:descr_NOTSET}'), + 'NOTVALIDCERT' => \SimpleSAML\Locale\Translate::noop('{errors:descr_NOTVALIDCERT}'), + 'PROCESSASSERTION' => \SimpleSAML\Locale\Translate::noop('{errors:descr_PROCESSASSERTION}'), + 'PROCESSAUTHNREQUEST' => \SimpleSAML\Locale\Translate::noop('{errors:descr_PROCESSAUTHNREQUEST}'), + 'RESPONSESTATUSNOSUCCESS' => \SimpleSAML\Locale\Translate::noop('{errors:descr_RESPONSESTATUSNOSUCCESS}'), + 'SLOSERVICEPARAMS' => \SimpleSAML\Locale\Translate::noop('{errors:descr_SLOSERVICEPARAMS}'), + 'SSOPARAMS' => \SimpleSAML\Locale\Translate::noop('{errors:descr_SSOPARAMS}'), + 'UNHANDLEDEXCEPTION' => \SimpleSAML\Locale\Translate::noop('{errors:descr_UNHANDLEDEXCEPTION}'), + 'UNKNOWNCERT' => \SimpleSAML\Locale\Translate::noop('{errors:descr_UNKNOWNCERT}'), + 'USERABORTED' => \SimpleSAML\Locale\Translate::noop('{errors:descr_USERABORTED}'), + 'WRONGUSERPASS' => \SimpleSAML\Locale\Translate::noop('{errors:descr_WRONGUSERPASS}'), + ); + } + + /** + * Fetch all translation strings for error code descriptions. + * + * Extend this to add error codes. + * + * @return string A map from error code to error code description + */ + public static function getAllErrorCodeDescriptions() + { + return self::defaultGetAllErrorCodeDescriptions(); + } + + + /** + * Get a map of both errorcode titles and descriptions + * + * Convenience-method for template-callers + * + * @return array An array containing both errorcode maps. + */ + public static function getAllErrorCodeMessages() + { + return array( + 'title' => self::getAllErrorCodeTitles(), + 'descr' => self::getAllErrorCodeDescriptions(), + ); + } + + + /** + * Fetch a translation string for a title for a given error code. + * + * @param string $errorCode The error code to look up + * + * @return string A string to translate + */ + public static function getErrorCodeTitle($errorCode) + { + $errorCodeTitles = self::getAllErrorCodeTitles(); + return $errorCodeTitles[$errorCode]; + } + + + /** + * Fetch a translation string for a description for a given error code. + * + * @param string $errorCode The error code to look up + * + * @return string A string to translate + */ + public static function getErrorCodeDescription($errorCode) + { + $errorCodeDescriptions = self::getAllErrorCodeDescriptions(); + return $errorCodeDescriptions[$errorCode]; + } + + + /** + * Get both title and description for a specific error code + * + * Convenience-method for template-callers + * + * @param string $errorCode The error code to look up + * + * @return array An array containing both errorcode strings. + */ + public static function getErrorCodeMessage($errorCode) + { + return array( + 'title' => self::getErrorCodeTitle($errorCode), + 'descr' => self::getErrorCodeDescription($errorCode), + ); + } +} diff --git a/lib/SimpleSAML/Error/Exception.php b/lib/SimpleSAML/Error/Exception.php new file mode 100755 index 0000000..6d7efcc --- /dev/null +++ b/lib/SimpleSAML/Error/Exception.php @@ -0,0 +1,316 @@ + + * @package SimpleSAMLphp + */ +class SimpleSAML_Error_Exception extends Exception +{ + + /** + * The backtrace for this exception. + * + * We need to save the backtrace, since we cannot rely on + * serializing the Exception::trace-variable. + * + * @var array + */ + private $backtrace; + + + /** + * The cause of this exception. + * + * @var SimpleSAML_Error_Exception + */ + private $cause; + + + /** + * Constructor for this error. + * + * Note that the cause will be converted to a SimpleSAML_Error_UnserializableException unless it is a subclass of + * SimpleSAML_Error_Exception. + * + * @param string $message Exception message + * @param int $code Error code + * @param Exception|null $cause The cause of this exception. + */ + public function __construct($message, $code = 0, Exception $cause = null) + { + assert(is_string($message)); + assert(is_int($code)); + + parent::__construct($message, $code); + + $this->initBacktrace($this); + + if ($cause !== null) { + $this->cause = SimpleSAML_Error_Exception::fromException($cause); + } + } + + + /** + * Convert any exception into a SimpleSAML_Error_Exception. + * + * @param Exception $e The exception. + * + * @return SimpleSAML_Error_Exception The new exception. + */ + public static function fromException(Exception $e) + { + + if ($e instanceof SimpleSAML_Error_Exception) { + return $e; + } + return new SimpleSAML_Error_UnserializableException($e); + } + + + /** + * Load the backtrace from the given exception. + * + * @param Exception $exception The exception we should fetch the backtrace from. + */ + protected function initBacktrace(Exception $exception) + { + + $this->backtrace = array(); + + // position in the top function on the stack + $pos = $exception->getFile().':'.$exception->getLine(); + + foreach ($exception->getTrace() as $t) { + $function = $t['function']; + if (array_key_exists('class', $t)) { + $function = $t['class'].'::'.$function; + } + + $this->backtrace[] = $pos.' ('.$function.')'; + + if (array_key_exists('file', $t)) { + $pos = $t['file'].':'.$t['line']; + } else { + $pos = '[builtin]'; + } + } + + $this->backtrace[] = $pos.' (N/A)'; + } + + + /** + * Retrieve the backtrace. + * + * @return array An array where each function call is a single item. + */ + public function getBacktrace() + { + return $this->backtrace; + } + + + /** + * Retrieve the cause of this exception. + * + * @return SimpleSAML_Error_Exception|null The cause of this exception. + */ + public function getCause() + { + return $this->cause; + } + + + /** + * Retrieve the class of this exception. + * + * @return string The name of the class. + */ + public function getClass() + { + return get_class($this); + } + + + /** + * Format this exception for logging. + * + * Create an array of lines for logging. + * + * @param boolean $anonymize Whether the resulting messages should be anonymized or not. + * + * @return array Log lines that should be written out. + */ + public function format($anonymize = false) + { + $ret = array( + $this->getClass().': '.$this->getMessage(), + ); + return array_merge($ret, $this->formatBacktrace($anonymize)); + } + + + /** + * Format the backtrace for logging. + * + * Create an array of lines for logging from the backtrace. + * + * @param boolean $anonymize Whether the resulting messages should be anonymized or not. + * + * @return array All lines of the backtrace, properly formatted. + */ + public function formatBacktrace($anonymize = false) + { + $ret = array(); + $basedir = SimpleSAML_Configuration::getInstance()->getBaseDir(); + + $e = $this; + do { + if ($e !== $this) { + $ret[] = 'Caused by: '.$e->getClass().': '.$e->getMessage(); + } + $ret[] = 'Backtrace:'; + + $depth = count($e->backtrace); + foreach ($e->backtrace as $i => $trace) { + if ($anonymize) { + $trace = str_replace($basedir, '', $trace); + } + + $ret[] = ($depth - $i - 1).' '.$trace; + } + $e = $e->cause; + } while ($e !== null); + + return $ret; + } + + + /** + * Print the backtrace to the log if the 'debug' option is enabled in the configuration. + */ + protected function logBacktrace($level = \SimpleSAML\Logger::DEBUG) + { + // see if debugging is enabled for backtraces + $debug = SimpleSAML_Configuration::getInstance()->getArrayize('debug', array('backtraces' => false)); + + if (!(in_array('backtraces', $debug, true) // implicitly enabled + || (array_key_exists('backtraces', $debug) && $debug['backtraces'] === true) // explicitly set + // TODO: deprecate the old style and remove it in 2.0 + || (array_key_exists(0, $debug) && $debug[0] === true) // old style 'debug' configuration option + )) { + return; + } + + $backtrace = $this->formatBacktrace(); + + $callback = array('\SimpleSAML\Logger'); + $functions = array( + \SimpleSAML\Logger::ERR => 'error', + \SimpleSAML\Logger::WARNING => 'warning', + \SimpleSAML\Logger::INFO => 'info', + \SimpleSAML\Logger::DEBUG => 'debug', + ); + $callback[] = $functions[$level]; + + foreach ($backtrace as $line) { + call_user_func($callback, $line); + } + } + + + /** + * Print the exception to the log, by default with log level error. + * + * Override to allow errors extending this class to specify the log level themselves. + * + * @param int $default_level The log level to use if this method was not overridden. + */ + public function log($default_level) + { + $fn = array( + SimpleSAML\Logger::ERR => 'logError', + SimpleSAML\Logger::WARNING => 'logWarning', + SimpleSAML\Logger::INFO => 'logInfo', + SimpleSAML\Logger::DEBUG => 'logDebug', + ); + call_user_func(array($this, $fn[$default_level]), $default_level); + } + + + /** + * Print the exception to the log with log level error. + * + * This function will write this exception to the log, including a full backtrace. + */ + public function logError() + { + SimpleSAML\Logger::error($this->getClass().': '.$this->getMessage()); + $this->logBacktrace(\SimpleSAML\Logger::ERR); + } + + + /** + * Print the exception to the log with log level warning. + * + * This function will write this exception to the log, including a full backtrace. + */ + public function logWarning() + { + SimpleSAML\Logger::warning($this->getClass().': '.$this->getMessage()); + $this->logBacktrace(\SimpleSAML\Logger::WARNING); + } + + + /** + * Print the exception to the log with log level info. + * + * This function will write this exception to the log, including a full backtrace. + */ + public function logInfo() + { + SimpleSAML\Logger::info($this->getClass().': '.$this->getMessage()); + $this->logBacktrace(\SimpleSAML\Logger::INFO); + } + + + /** + * Print the exception to the log with log level debug. + * + * This function will write this exception to the log, including a full backtrace. + */ + public function logDebug() + { + SimpleSAML\Logger::debug($this->getClass().': '.$this->getMessage()); + $this->logBacktrace(\SimpleSAML\Logger::DEBUG); + } + + + /** + * Function for serialization. + * + * This function builds a list of all variables which should be serialized. It will serialize all variables except + * the Exception::trace variable. + * + * @return array Array with the variables that should be serialized. + */ + public function __sleep() + { + + $ret = array_keys((array) $this); + + foreach ($ret as $i => $e) { + if ($e === "\0Exception\0trace") { + unset($ret[$i]); + } + } + + return $ret; + } +} diff --git a/lib/SimpleSAML/Error/InvalidCredential.php b/lib/SimpleSAML/Error/InvalidCredential.php new file mode 100755 index 0000000..d0bbff1 --- /dev/null +++ b/lib/SimpleSAML/Error/InvalidCredential.php @@ -0,0 +1,12 @@ + + * @package SimpleSAMLphp_base + * + */ +class SimpleSAML_Error_InvalidCredential extends SimpleSAML_Error_User +{ + +} diff --git a/lib/SimpleSAML/Error/MetadataNotFound.php b/lib/SimpleSAML/Error/MetadataNotFound.php new file mode 100755 index 0000000..3aef365 --- /dev/null +++ b/lib/SimpleSAML/Error/MetadataNotFound.php @@ -0,0 +1,27 @@ +includeTemplate = 'core:no_metadata.tpl.php'; + parent::__construct(array( + 'METADATANOTFOUND', + '%ENTITYID%' => htmlspecialchars(var_export($entityId, true)) + )); + } +} diff --git a/lib/SimpleSAML/Error/NoPassive.php b/lib/SimpleSAML/Error/NoPassive.php new file mode 100755 index 0000000..2f53433 --- /dev/null +++ b/lib/SimpleSAML/Error/NoPassive.php @@ -0,0 +1,15 @@ +includeTemplate = 'core:no_state.tpl.php'; + parent::__construct('NOSTATE'); + } +} diff --git a/lib/SimpleSAML/Error/NotFound.php b/lib/SimpleSAML/Error/NotFound.php new file mode 100755 index 0000000..7a64ec3 --- /dev/null +++ b/lib/SimpleSAML/Error/NotFound.php @@ -0,0 +1,72 @@ + $url)); + $this->message = "The requested page '$url' could not be found."; + } else { + parent::__construct(array('NOTFOUNDREASON', '%URL%' => $url, '%REASON%' => $reason)); + $this->message = "The requested page '$url' could not be found. ".$reason; + } + + $this->reason = $reason; + $this->httpCode = 404; + } + + + /** + * Retrieve the reason why the given page could not be found. + * + * @return string|null The reason why the page could not be found. + */ + public function getReason() + { + return $this->reason; + } + + + /** + * NotFound exceptions don't need to display a backtrace, as they are very simple and the trace is usually trivial, + * so just log the message without any backtrace at all. + * + * @param bool $anonymize Whether to anonymize the trace or not. + * + * @return array + */ + public function format($anonymize = false) + { + return array( + $this->getClass().': '.$this->getMessage(), + ); + } +} diff --git a/lib/SimpleSAML/Error/ProxyCountExceeded.php b/lib/SimpleSAML/Error/ProxyCountExceeded.php new file mode 100755 index 0000000..1462d37 --- /dev/null +++ b/lib/SimpleSAML/Error/ProxyCountExceeded.php @@ -0,0 +1,15 @@ +class = get_class($original); + $msg = $original->getMessage(); + $code = $original->getCode(); + + if (!is_int($code)) { + // PDOException uses a string as the code. Filter it out here. + $code = -1; + } + + parent::__construct($msg, $code); + $this->initBacktrace($original); + } + + + /** + * Retrieve the class of this exception. + * + * @return string The classname. + */ + public function getClass() + { + return $this->class; + } +} diff --git a/lib/SimpleSAML/Error/User.php b/lib/SimpleSAML/Error/User.php new file mode 100755 index 0000000..4e70db0 --- /dev/null +++ b/lib/SimpleSAML/Error/User.php @@ -0,0 +1,14 @@ + + * @package SimpleSAMLphp_base + * + */ +class SimpleSAML_Error_User extends SimpleSAML_Error_Exception +{ + +} diff --git a/lib/SimpleSAML/Error/UserAborted.php b/lib/SimpleSAML/Error/UserAborted.php new file mode 100755 index 0000000..9ddcb0f --- /dev/null +++ b/lib/SimpleSAML/Error/UserAborted.php @@ -0,0 +1,20 @@ + + * @package SimpleSAMLphp_base + * + */ +class SimpleSAML_Error_UserNotFound extends SimpleSAML_Error_User +{ + +} diff --git a/lib/SimpleSAML/IdP.php b/lib/SimpleSAML/IdP.php new file mode 100755 index 0000000..42a57ae --- /dev/null +++ b/lib/SimpleSAML/IdP.php @@ -0,0 +1,558 @@ +id = $id; + + $metadata = SimpleSAML_Metadata_MetaDataStorageHandler::getMetadataHandler(); + $globalConfig = SimpleSAML_Configuration::getInstance(); + + if (substr($id, 0, 6) === 'saml2:') { + if (!$globalConfig->getBoolean('enable.saml20-idp', false)) { + throw new SimpleSAML_Error_Exception('enable.saml20-idp disabled in config.php.'); + } + $this->config = $metadata->getMetaDataConfig(substr($id, 6), 'saml20-idp-hosted'); + } elseif (substr($id, 0, 6) === 'saml1:') { + if (!$globalConfig->getBoolean('enable.shib13-idp', false)) { + throw new SimpleSAML_Error_Exception('enable.shib13-idp disabled in config.php.'); + } + $this->config = $metadata->getMetaDataConfig(substr($id, 6), 'shib13-idp-hosted'); + } elseif (substr($id, 0, 5) === 'adfs:') { + if (!$globalConfig->getBoolean('enable.adfs-idp', false)) { + throw new SimpleSAML_Error_Exception('enable.adfs-idp disabled in config.php.'); + } + $this->config = $metadata->getMetaDataConfig(substr($id, 5), 'adfs-idp-hosted'); + + try { + // this makes the ADFS IdP use the same SP associations as the SAML 2.0 IdP + $saml2EntityId = $metadata->getMetaDataCurrentEntityID('saml20-idp-hosted'); + $this->associationGroup = 'saml2:'.$saml2EntityId; + } catch (Exception $e) { + // probably no SAML 2 IdP configured for this host. Ignore the error + } + } else { + assert(false); + } + + if ($this->associationGroup === null) { + $this->associationGroup = $this->id; + } + + $auth = $this->config->getString('auth'); + if (SimpleSAML_Auth_Source::getById($auth) !== null) { + $this->authSource = new \SimpleSAML\Auth\Simple($auth); + } else { + throw new SimpleSAML_Error_Exception('No such "'.$auth.'" auth source found.'); + } + } + + + /** + * Retrieve the ID of this IdP. + * + * @return string The ID of this IdP. + */ + public function getId() + { + return $this->id; + } + + + /** + * Retrieve an IdP by ID. + * + * @param string $id The identifier of the IdP. + * + * @return SimpleSAML_IdP The IdP. + */ + public static function getById($id) + { + assert(is_string($id)); + + if (isset(self::$idpCache[$id])) { + return self::$idpCache[$id]; + } + + $idp = new self($id); + self::$idpCache[$id] = $idp; + return $idp; + } + + + /** + * Retrieve the IdP "owning" the state. + * + * @param array &$state The state array. + * + * @return SimpleSAML_IdP The IdP. + */ + public static function getByState(array &$state) + { + assert(isset($state['core:IdP'])); + + return self::getById($state['core:IdP']); + } + + + /** + * Retrieve the configuration for this IdP. + * + * @return SimpleSAML_Configuration The configuration object. + */ + public function getConfig() + { + return $this->config; + } + + + /** + * Get SP name. + * + * @param string $assocId The association identifier. + * + * @return array|null The name of the SP, as an associative array of language => text, or null if this isn't an SP. + */ + public function getSPName($assocId) + { + assert(is_string($assocId)); + + $prefix = substr($assocId, 0, 4); + $spEntityId = substr($assocId, strlen($prefix) + 1); + $metadata = SimpleSAML_Metadata_MetaDataStorageHandler::getMetadataHandler(); + + if ($prefix === 'saml') { + try { + $spMetadata = $metadata->getMetaDataConfig($spEntityId, 'saml20-sp-remote'); + } catch (Exception $e) { + try { + $spMetadata = $metadata->getMetaDataConfig($spEntityId, 'shib13-sp-remote'); + } catch (Exception $e) { + return null; + } + } + } else { + if ($prefix === 'adfs') { + $spMetadata = $metadata->getMetaDataConfig($spEntityId, 'adfs-sp-remote'); + } else { + return null; + } + } + + if ($spMetadata->hasValue('name')) { + return $spMetadata->getLocalizedString('name'); + } elseif ($spMetadata->hasValue('OrganizationDisplayName')) { + return $spMetadata->getLocalizedString('OrganizationDisplayName'); + } else { + return array('en' => $spEntityId); + } + } + + + /** + * Add an SP association. + * + * @param array $association The SP association. + */ + public function addAssociation(array $association) + { + assert(isset($association['id'])); + assert(isset($association['Handler'])); + + $association['core:IdP'] = $this->id; + + $session = SimpleSAML_Session::getSessionFromRequest(); + $session->addAssociation($this->associationGroup, $association); + } + + + /** + * Retrieve list of SP associations. + * + * @return array List of SP associations. + */ + public function getAssociations() + { + $session = SimpleSAML_Session::getSessionFromRequest(); + return $session->getAssociations($this->associationGroup); + } + + + /** + * Remove an SP association. + * + * @param string $assocId The association id. + */ + public function terminateAssociation($assocId) + { + assert(is_string($assocId)); + + $session = SimpleSAML_Session::getSessionFromRequest(); + $session->terminateAssociation($this->associationGroup, $assocId); + } + + + /** + * Is the current user authenticated? + * + * @return boolean True if the user is authenticated, false otherwise. + */ + public function isAuthenticated() + { + return $this->authSource->isAuthenticated(); + } + + + /** + * Called after authproc has run. + * + * @param array $state The authentication request state array. + */ + public static function postAuthProc(array $state) + { + assert(is_callable($state['Responder'])); + + if (isset($state['core:SP'])) { + $session = SimpleSAML_Session::getSessionFromRequest(); + $session->setData( + 'core:idp-ssotime', + $state['core:IdP'].';'.$state['core:SP'], + time(), + SimpleSAML_Session::DATA_TIMEOUT_SESSION_END + ); + } + + call_user_func($state['Responder'], $state); + assert(false); + } + + + /** + * The user is authenticated. + * + * @param array $state The authentication request state array. + * + * @throws SimpleSAML_Error_Exception If we are not authenticated. + */ + public static function postAuth(array $state) + { + $idp = SimpleSAML_IdP::getByState($state); + + if (!$idp->isAuthenticated()) { + throw new SimpleSAML_Error_Exception('Not authenticated.'); + } + + $state['Attributes'] = $idp->authSource->getAttributes(); + + if (isset($state['SPMetadata'])) { + $spMetadata = $state['SPMetadata']; + } else { + $spMetadata = array(); + } + + if (isset($state['core:SP'])) { + $session = SimpleSAML_Session::getSessionFromRequest(); + $previousSSOTime = $session->getData('core:idp-ssotime', $state['core:IdP'].';'.$state['core:SP']); + if ($previousSSOTime !== null) { + $state['PreviousSSOTimestamp'] = $previousSSOTime; + } + } + + $idpMetadata = $idp->getConfig()->toArray(); + + $pc = new SimpleSAML_Auth_ProcessingChain($idpMetadata, $spMetadata, 'idp'); + + $state['ReturnCall'] = array('SimpleSAML_IdP', 'postAuthProc'); + $state['Destination'] = $spMetadata; + $state['Source'] = $idpMetadata; + + $pc->processState($state); + + self::postAuthProc($state); + } + + + /** + * Authenticate the user. + * + * This function authenticates the user. + * + * @param array &$state The authentication request state. + * + * @throws \SimpleSAML\Module\saml\Error\NoPassive If we were asked to do passive authentication. + */ + private function authenticate(array &$state) + { + if (isset($state['isPassive']) && (bool) $state['isPassive']) { + throw new \SimpleSAML\Module\saml\Error\NoPassive('Passive authentication not supported.'); + } + + $this->authSource->login($state); + } + + + /** + * Re-authenticate the user. + * + * This function re-authenticates an user with an existing session. This gives the authentication source a chance + * to do additional work when re-authenticating for SSO. + * + * Note: This function is not used when ForceAuthn=true. + * + * @param array &$state The authentication request state. + * + * @throws SimpleSAML_Error_Exception If there is no auth source defined for this IdP. + */ + private function reauthenticate(array &$state) + { + $sourceImpl = $this->authSource->getAuthSource(); + if ($sourceImpl === null) { + throw new SimpleSAML_Error_Exception('No such auth source defined.'); + } + + $sourceImpl->reauthenticate($state); + } + + + /** + * Process authentication requests. + * + * @param array &$state The authentication request state. + */ + public function handleAuthenticationRequest(array &$state) + { + assert(isset($state['Responder'])); + + $state['core:IdP'] = $this->id; + + if (isset($state['SPMetadata']['entityid'])) { + $spEntityId = $state['SPMetadata']['entityid']; + } elseif (isset($state['SPMetadata']['entityID'])) { + $spEntityId = $state['SPMetadata']['entityID']; + } else { + $spEntityId = null; + } + $state['core:SP'] = $spEntityId; + + // first, check whether we need to authenticate the user + if (isset($state['ForceAuthn']) && (bool) $state['ForceAuthn']) { + // force authentication is in effect + $needAuth = true; + } else { + $needAuth = !$this->isAuthenticated(); + } + + $state['IdPMetadata'] = $this->getConfig()->toArray(); + $state['ReturnCallback'] = array('SimpleSAML_IdP', 'postAuth'); + + try { + if ($needAuth) { + $this->authenticate($state); + assert(false); + } else { + $this->reauthenticate($state); + } + $this->postAuth($state); + } catch (SimpleSAML_Error_Exception $e) { + SimpleSAML_Auth_State::throwException($state, $e); + } catch (Exception $e) { + $e = new SimpleSAML_Error_UnserializableException($e); + SimpleSAML_Auth_State::throwException($state, $e); + } + } + + + /** + * Find the logout handler of this IdP. + * + * @return \SimpleSAML\IdP\LogoutHandlerInterface The logout handler class. + * + * @throws SimpleSAML_Error_Exception If we cannot find a logout handler. + */ + public function getLogoutHandler() + { + // find the logout handler + $logouttype = $this->getConfig()->getString('logouttype', 'traditional'); + switch ($logouttype) { + case 'traditional': + $handler = 'SimpleSAML\IdP\TraditionalLogoutHandler'; + break; + case 'iframe': + $handler = 'SimpleSAML\IdP\IFrameLogoutHandler'; + break; + default: + throw new SimpleSAML_Error_Exception('Unknown logout handler: '.var_export($logouttype, true)); + } + + return new $handler($this); + } + + + /** + * Finish the logout operation. + * + * This function will never return. + * + * @param array &$state The logout request state. + */ + public function finishLogout(array &$state) + { + assert(isset($state['Responder'])); + + $idp = SimpleSAML_IdP::getByState($state); + call_user_func($state['Responder'], $idp, $state); + assert(false); + } + + + /** + * Process a logout request. + * + * This function will never return. + * + * @param array &$state The logout request state. + * @param string|null $assocId The association we received the logout request from, or null if there was no + * association. + */ + public function handleLogoutRequest(array &$state, $assocId) + { + assert(isset($state['Responder'])); + assert(is_string($assocId) || $assocId === null); + + $state['core:IdP'] = $this->id; + $state['core:TerminatedAssocId'] = $assocId; + + if ($assocId !== null) { + $this->terminateAssociation($assocId); + $session = SimpleSAML_Session::getSessionFromRequest(); + $session->deleteData('core:idp-ssotime', $this->id.':'.$state['saml:SPEntityId']); + } + + // terminate the local session + $id = SimpleSAML_Auth_State::saveState($state, 'core:Logout:afterbridge'); + $returnTo = SimpleSAML\Module::getModuleURL('core/idp/resumelogout.php', array('id' => $id)); + + $this->authSource->logout($returnTo); + + $handler = $this->getLogoutHandler(); + $handler->startLogout($state, $assocId); + assert(false); + } + + + /** + * Process a logout response. + * + * This function will never return. + * + * @param string $assocId The association that is terminated. + * @param string|null $relayState The RelayState from the start of the logout. + * @param SimpleSAML_Error_Exception|null $error The error that occurred during session termination (if any). + */ + public function handleLogoutResponse($assocId, $relayState, SimpleSAML_Error_Exception $error = null) + { + assert(is_string($assocId)); + assert(is_string($relayState) || $relayState === null); + + $session = SimpleSAML_Session::getSessionFromRequest(); + $session->deleteData('core:idp-ssotime', $this->id.';'.substr($assocId, strpos($assocId, ':') + 1)); + + $handler = $this->getLogoutHandler(); + $handler->onResponse($assocId, $relayState, $error); + + assert(false); + } + + + /** + * Log out, then redirect to a URL. + * + * This function never returns. + * + * @param string $url The URL the user should be returned to after logout. + */ + public function doLogoutRedirect($url) + { + assert(is_string($url)); + + $state = array( + 'Responder' => array('SimpleSAML_IdP', 'finishLogoutRedirect'), + 'core:Logout:URL' => $url, + ); + + $this->handleLogoutRequest($state, null); + assert(false); + } + + + /** + * Redirect to a URL after logout. + * + * This function never returns. + * + * @param SimpleSAML_IdP $idp Deprecated. Will be removed. + * @param array &$state The logout state from doLogoutRedirect(). + */ + public static function finishLogoutRedirect(SimpleSAML_IdP $idp, array $state) + { + assert(isset($state['core:Logout:URL'])); + + \SimpleSAML\Utils\HTTP::redirectTrustedURL($state['core:Logout:URL']); + assert(false); + } +} diff --git a/lib/SimpleSAML/IdP/IFrameLogoutHandler.php b/lib/SimpleSAML/IdP/IFrameLogoutHandler.php new file mode 100755 index 0000000..b084403 --- /dev/null +++ b/lib/SimpleSAML/IdP/IFrameLogoutHandler.php @@ -0,0 +1,119 @@ +idp = $idp; + } + + /** + * Start the logout operation. + * + * @param array &$state The logout state. + * @param string|null $assocId The SP we are logging out from. + */ + public function startLogout(array &$state, $assocId) + { + assert(is_string($assocId) || $assocId === null); + + $associations = $this->idp->getAssociations(); + + if (count($associations) === 0) { + $this->idp->finishLogout($state); + } + + foreach ($associations as $id => &$association) { + $idp = \SimpleSAML_IdP::getByState($association); + $association['core:Logout-IFrame:Name'] = $idp->getSPName($id); + $association['core:Logout-IFrame:State'] = 'onhold'; + } + $state['core:Logout-IFrame:Associations'] = $associations; + + if (!is_null($assocId)) { + $spName = $this->idp->getSPName($assocId); + if ($spName === null) { + $spName = array('en' => $assocId); + } + + $state['core:Logout-IFrame:From'] = $spName; + } else { + $state['core:Logout-IFrame:From'] = null; + } + + $params = array( + 'id' => \SimpleSAML_Auth_State::saveState($state, 'core:Logout-IFrame'), + ); + if (isset($state['core:Logout-IFrame:InitType'])) { + $params['type'] = $state['core:Logout-IFrame:InitType']; + } + + $url = Module::getModuleURL('core/idp/logout-iframe.php', $params); + HTTP::redirectTrustedURL($url); + } + + + /** + * Continue the logout operation. + * + * This function will never return. + * + * @param string $assocId The association that is terminated. + * @param string|null $relayState The RelayState from the start of the logout. + * @param \SimpleSAML_Error_Exception|null $error The error that occurred during session termination (if any). + */ + public function onResponse($assocId, $relayState, \SimpleSAML_Error_Exception $error = null) + { + assert(is_string($assocId)); + + $spId = sha1($assocId); + $this->idp->terminateAssociation($assocId); + + $header = <<
+ + + Logout response from %s + + + + + +FOOTER; + exit(0); + } +} diff --git a/lib/SimpleSAML/IdP/LogoutHandlerInterface.php b/lib/SimpleSAML/IdP/LogoutHandlerInterface.php new file mode 100755 index 0000000..011dd63 --- /dev/null +++ b/lib/SimpleSAML/IdP/LogoutHandlerInterface.php @@ -0,0 +1,43 @@ +idp = $idp; + } + + + /** + * Picks the next SP and issues a logout request. + * + * This function never returns. + * + * @param array &$state The logout state. + */ + private function logoutNextSP(array &$state) + { + $association = array_pop($state['core:LogoutTraditional:Remaining']); + if ($association === null) { + $this->idp->finishLogout($state); + } + + $relayState = \SimpleSAML_Auth_State::saveState($state, 'core:LogoutTraditional', true); + + $id = $association['id']; + Logger::info('Logging out of '.var_export($id, true).'.'); + + try { + $idp = \SimpleSAML_IdP::getByState($association); + $url = call_user_func(array($association['Handler'], 'getLogoutURL'), $idp, $association, $relayState); + HTTP::redirectTrustedURL($url); + } catch (\Exception $e) { + Logger::warning('Unable to initialize logout to '.var_export($id, true).'.'); + $this->idp->terminateAssociation($id); + $state['core:Failed'] = true; + + // Try the next SP + $this->logoutNextSP($state); + assert(false); + } + } + + + /** + * Start the logout operation. + * + * This function never returns. + * + * @param array &$state The logout state. + * @param string $assocId The association that started the logout. + */ + public function startLogout(array &$state, $assocId) + { + $state['core:LogoutTraditional:Remaining'] = $this->idp->getAssociations(); + + $this->logoutNextSP($state); + } + + + /** + * Continue the logout operation. + * + * This function will never return. + * + * @param string $assocId The association that is terminated. + * @param string|null $relayState The RelayState from the start of the logout. + * @param \SimpleSAML_Error_Exception|null $error The error that occurred during session termination (if any). + * + * @throws \SimpleSAML_Error_Exception If the RelayState was lost during logout. + */ + public function onResponse($assocId, $relayState, \SimpleSAML_Error_Exception $error = null) + { + assert(is_string($assocId)); + assert(is_string($relayState) || $relayState === null); + + if ($relayState === null) { + throw new \SimpleSAML_Error_Exception('RelayState lost during logout.'); + } + + $state = \SimpleSAML_Auth_State::loadState($relayState, 'core:LogoutTraditional'); + + if ($error === null) { + Logger::info('Logged out of '.var_export($assocId, true).'.'); + $this->idp->terminateAssociation($assocId); + } else { + Logger::warning('Error received from '.var_export($assocId, true).' during logout:'); + $error->logWarning(); + $state['core:Failed'] = true; + } + + $this->logoutNextSP($state); + } +} diff --git a/lib/SimpleSAML/Locale/Language.php b/lib/SimpleSAML/Locale/Language.php new file mode 100755 index 0000000..b8ab1ae --- /dev/null +++ b/lib/SimpleSAML/Locale/Language.php @@ -0,0 +1,424 @@ + + * @author Hanne Moa, UNINETT AS. + * @package SimpleSAMLphp + */ + +namespace SimpleSAML\Locale; + +use SimpleSAML\Utils\HTTP; + +class Language +{ + + /** + * This is the default language map. It is used to map languages codes from the user agent to other language codes. + */ + private static $defaultLanguageMap = array('nb' => 'no'); + + /** + * The configuration to use. + * + * @var \SimpleSAML_Configuration + */ + private $configuration; + + /** + * An array holding a list of languages available. + * + * @var array + */ + private $availableLanguages; + + /** + * The language currently in use. + * + * @var null|string + */ + private $language = null; + + /** + * The language to use by default. + * + * @var string + */ + private $defaultLanguage; + + /** + * An array holding a list of languages that are written from right to left. + * + * @var array + */ + private $rtlLanguages; + + /** + * HTTP GET language parameter name. + * + * @var string + */ + private $languageParameterName; + + /** + * A custom function to use in order to determine the language in use. + * + * @var callable|null + */ + private $customFunction; + + /** + * A list of languages supported with their names localized. + * Indexed by something that mostly resembles ISO 639-1 code, + * with some charming SimpleSAML-specific variants... + * that must remain before 2.0 due to backwards compatibility + * + * @var array + */ + private $language_names = array( + 'no' => 'BokmĆ„l', // Norwegian BokmĆ„l + 'nn' => 'Nynorsk', // Norwegian Nynorsk + 'se' => 'SĆ”megiella', // Northern Sami + 'sma' => 'ƅarjelh-saemien giele', // Southern Sami + 'da' => 'Dansk', // Danish + 'en' => 'English', + 'de' => 'Deutsch', // German + 'sv' => 'Svenska', // Swedish + 'fi' => 'Suomeksi', // Finnish + 'es' => 'EspaƱol', // Spanish + 'ca' => 'CatalĆ ', // Catalan + 'fr' => 'FranƧais', // French + 'it' => 'Italiano', // Italian + 'nl' => 'Nederlands', // Dutch + 'lb' => 'LĆ«tzebuergesch', // Luxembourgish + 'cs' => 'ČeÅ”tina', // Czech + 'sl' => 'SlovenŔčina', // Slovensk + 'lt' => 'Lietuvių kalba', // Lithuanian + 'hr' => 'Hrvatski', // Croatian + 'hu' => 'Magyar', // Hungarian + 'pl' => 'Język polski', // Polish + 'pt' => 'PortuguĆŖs', // Portuguese + 'pt-br' => 'PortuguĆŖs brasileiro', // Portuguese + 'ru' => 'Ń€ŃƒŃŃŠŗŠøŠ¹ ŃŠ·Ń‹Šŗ', // Russian + 'et' => 'eesti keel', // Estonian + 'tr' => 'TürkƧe', // Turkish + 'el' => 'ελληνικά', // Greek + 'ja' => 'ę—„ęœ¬čŖž', // Japanese + 'zh' => '简体中文', // Chinese (simplified) + 'zh-tw' => '繁體中文', // Chinese (traditional) + 'ar' => 'Ų§Ł„Ų¹Ų±ŲØŁŠŲ©', // Arabic + 'fa' => 'پارسی', // Persian + 'ur' => 'اردو', // Urdu + 'he' => 'ע֓בְר֓ית', // Hebrew + 'id' => 'Bahasa Indonesia', // Indonesian + 'sr' => 'Srpski', // Serbian + 'lv' => 'LatvieÅ”u', // Latvian + 'ro' => 'RomĆ¢nește', // Romanian + 'eu' => 'Euskara', // Basque + 'af' => 'Afrikaans', // Afrikaans + ); + + /** + * A mapping of SSP languages to locales + * + * @var array + */ + private $languagePosixMapping = array( + 'no' => 'nb_NO', + 'nn' => 'nn_NO', + ); + + + /** + * Constructor + * + * @param \SimpleSAML_Configuration $configuration Configuration object + */ + public function __construct(\SimpleSAML_Configuration $configuration) + { + $this->configuration = $configuration; + $this->availableLanguages = $this->getInstalledLanguages(); + $this->defaultLanguage = $this->configuration->getString('language.default', 'en'); + $this->languageParameterName = $this->configuration->getString('language.parameter.name', 'language'); + $this->customFunction = $this->configuration->getArray('language.get_language_function', null); + $this->rtlLanguages = $this->configuration->getArray('language.rtl', array()); + if (isset($_GET[$this->languageParameterName])) { + $this->setLanguage( + $_GET[$this->languageParameterName], + $this->configuration->getBoolean('language.parameter.setcookie', true) + ); + } + } + + + /** + * Filter configured (available) languages against installed languages. + * + * @return array The set of languages both in 'language.available' and $this->language_names. + */ + private function getInstalledLanguages() + { + $configuredAvailableLanguages = $this->configuration->getArray('language.available', array('en')); + $availableLanguages = array(); + foreach ($configuredAvailableLanguages as $code) { + if (array_key_exists($code, $this->language_names) && isset($this->language_names[$code])) { + $availableLanguages[] = $code; + } else { + \SimpleSAML\Logger::error("Language \"$code\" not installed. Check config."); + } + } + return $availableLanguages; + } + + + /** + * Rename to non-idiosyncratic language code. + * + * @param string $language Language code for the language to rename, if necessary. + * + * @return string The language code. + */ + public function getPosixLanguage($language) + { + if (isset($this->languagePosixMapping[$language])) { + return $this->languagePosixMapping[$language]; + } + return $language; + } + + + /** + * This method will set a cookie for the user's browser to remember what language was selected. + * + * @param string $language Language code for the language to set. + * @param boolean $setLanguageCookie Whether to set the language cookie or not. Defaults to true. + */ + public function setLanguage($language, $setLanguageCookie = true) + { + $language = strtolower($language); + if (in_array($language, $this->availableLanguages, true)) { + $this->language = $language; + if ($setLanguageCookie === true) { + self::setLanguageCookie($language); + } + } + } + + + /** + * This method will return the language selected by the user, or the default language. It looks first for a cached + * language code, then checks for a language cookie, then it tries to calculate the preferred language from HTTP + * headers. + * + * @return string The language selected by the user according to the processing rules specified, or the default + * language in any other case. + */ + public function getLanguage() + { + // language is set in object + if (isset($this->language)) { + return $this->language; + } + + // run custom getLanguage function if defined + if (isset($this->customFunction) && is_callable($this->customFunction)) { + $customLanguage = call_user_func($this->customFunction, $this); + if ($customLanguage !== null && $customLanguage !== false) { + return $customLanguage; + } + } + + // language is provided in a stored cookie + $languageCookie = Language::getLanguageCookie(); + if ($languageCookie !== null) { + $this->language = $languageCookie; + return $languageCookie; + } + + // check if we can find a good language from the Accept-Language HTTP header + $httpLanguage = $this->getHTTPLanguage(); + if ($httpLanguage !== null) { + return $httpLanguage; + } + + // language is not set, and we get the default language from the configuration + return $this->getDefaultLanguage(); + } + + + /** + * Get the localized name of a language, by ISO 639-2 code. + * + * @param string $code The ISO 639-2 code of the language. + * + * @return string The localized name of the language. + */ + public function getLanguageLocalizedName($code) + { + if (array_key_exists($code, $this->language_names) && isset($this->language_names[$code])) { + return $this->language_names[$code]; + } + \SimpleSAML\Logger::error("Name for language \"$code\" not found. Check config."); + return null; + } + + + /** + * Get the language parameter name. + * + * @return string The language parameter name. + */ + public function getLanguageParameterName() + { + return $this->languageParameterName; + } + + + /** + * This method returns the preferred language for the user based on the Accept-Language HTTP header. + * + * @return string The preferred language based on the Accept-Language HTTP header, or null if none of the languages + * in the header is available. + */ + private function getHTTPLanguage() + { + $languageScore = HTTP::getAcceptLanguage(); + + // for now we only use the default language map. We may use a configurable language map in the future + $languageMap = self::$defaultLanguageMap; + + // find the available language with the best score + $bestLanguage = null; + $bestScore = -1.0; + + foreach ($languageScore as $language => $score) { + // apply the language map to the language code + if (array_key_exists($language, $languageMap)) { + $language = $languageMap[$language]; + } + + if (!in_array($language, $this->availableLanguages, true)) { + // skip this language - we don't have it + continue; + } + + /* Some user agents use very limited precision of the quality value, but order the elements in descending + * order. Therefore we rely on the order of the output from getAcceptLanguage() matching the order of the + * languages in the header when two languages have the same quality. + */ + if ($score > $bestScore) { + $bestLanguage = $language; + $bestScore = $score; + } + } + + return $bestLanguage; + } + + + /** + * Return the default language according to configuration. + * + * @return string The default language that has been configured. Defaults to english if not configured. + */ + public function getDefaultLanguage() + { + return $this->defaultLanguage; + } + + + /** + * Return an alias for a language code, if any. + * + * @return string The alias, or null if the alias was not found. + */ + public function getLanguageCodeAlias($langcode) + { + if (isset(self::$defaultLanguageMap[$langcode])) { + return self::$defaultLanguageMap[$langcode]; + } + // No alias found, which is fine + return null; + } + + + /** + * Return an indexed list of all languages available. + * + * @return array An array holding all the languages available as the keys of the array. The value for each key is + * true in case that the language specified by that key is currently active, or false otherwise. + */ + public function getLanguageList() + { + $current = $this->getLanguage(); + $list = array_fill_keys($this->availableLanguages, false); + $list[$current] = true; + return $list; + } + + + /** + * Check whether a language is written from the right to the left or not. + * + * @return boolean True if the language is right-to-left, false otherwise. + */ + public function isLanguageRTL() + { + return in_array($this->getLanguage(), $this->rtlLanguages, true); + } + + + /** + * Retrieve the user-selected language from a cookie. + * + * @return string|null The selected language or null if unset. + */ + public static function getLanguageCookie() + { + $config = \SimpleSAML_Configuration::getInstance(); + $availableLanguages = $config->getArray('language.available', array('en')); + $name = $config->getString('language.cookie.name', 'language'); + + if (isset($_COOKIE[$name])) { + $language = strtolower((string) $_COOKIE[$name]); + if (in_array($language, $availableLanguages, true)) { + return $language; + } + } + + return null; + } + + + /** + * This method will attempt to set the user-selected language in a cookie. It will do nothing if the language + * specified is not in the list of available languages, or the headers have already been sent to the browser. + * + * @param string $language The language set by the user. + */ + public static function setLanguageCookie($language) + { + assert(is_string($language)); + + $language = strtolower($language); + $config = \SimpleSAML_Configuration::getInstance(); + $availableLanguages = $config->getArray('language.available', array('en')); + + if (!in_array($language, $availableLanguages, true) || headers_sent()) { + return; + } + + $name = $config->getString('language.cookie.name', 'language'); + $params = array( + 'lifetime' => ($config->getInteger('language.cookie.lifetime', 60 * 60 * 24 * 900)), + 'domain' => ($config->getString('language.cookie.domain', null)), + 'path' => ($config->getString('language.cookie.path', '/')), + 'secure' => ($config->getBoolean('language.cookie.secure', false)), + 'httponly' => ($config->getBoolean('language.cookie.httponly', false)), + ); + + HTTP::setCookie($name, $language, $params, false); + } +} diff --git a/lib/SimpleSAML/Locale/Localization.php b/lib/SimpleSAML/Locale/Localization.php new file mode 100755 index 0000000..9a023f9 --- /dev/null +++ b/lib/SimpleSAML/Locale/Localization.php @@ -0,0 +1,265 @@ + + * @package SimpleSAMLphp + */ + +namespace SimpleSAML\Locale; + +use Gettext\Translations; +use Gettext\Translator; + +class Localization +{ + /** + * The configuration to use. + * + * @var \SimpleSAML_Configuration + */ + private $configuration; + + /** + * The default gettext domain. + */ + const DEFAULT_DOMAIN = 'messages'; + + /** + * Old internationalization backend included in SimpleSAMLphp. + */ + const SSP_I18N_BACKEND = 'SimpleSAMLphp'; + + /** + * An internationalization backend implemented purely in PHP. + */ + const GETTEXT_I18N_BACKEND = 'gettext/gettext'; + + /** + * The default locale directory + */ + private $localeDir; + + /** + * Where specific domains are stored + */ + private $localeDomainMap = array(); + + /** + * Pointer to currently active translator + */ + private $translator; + + /** + * Pointer to current Language + */ + private $language; + + /** + * Language code representing the current Language + */ + private $langcode; + + + /** + * The language backend to use + */ + public $i18nBackend; + + /** + * Constructor + * + * @param \SimpleSAML_Configuration $configuration Configuration object + */ + public function __construct(\SimpleSAML_Configuration $configuration) + { + $this->configuration = $configuration; + $this->localeDir = $this->configuration->resolvePath('locales'); + $this->language = new Language($configuration); + $this->langcode = $this->language->getPosixLanguage($this->language->getLanguage()); + $this->i18nBackend = $this->configuration->getString('language.i18n.backend', self::SSP_I18N_BACKEND); + $this->setupL10N(); + } + + + /** + * Dump the default locale directory + */ + public function getLocaleDir() + { + return $this->localeDir; + } + + + /** + * Get the default locale dir for a specific module aka. domain + * + * @param string $domain Name of module/domain + */ + public function getDomainLocaleDir($domain) + { + $localeDir = $this->configuration->resolvePath('modules') . '/' . $domain . '/locales'; + return $localeDir; + } + + + /* + * Add a new translation domain from a module + * (We're assuming that each domain only exists in one place) + * + * @param string $module Module name + * @param string $localeDir Absolute path if the module is housed elsewhere + */ + public function addModuleDomain($module, $localeDir = null) + { + if (!$localeDir) { + $localeDir = $this->getDomainLocaleDir($module); + } + $this->addDomain($localeDir, $module); + } + + + /* + * Add a new translation domain + * (We're assuming that each domain only exists in one place) + * + * @param string $localeDir Location of translations + * @param string $domain Domain at location + */ + public function addDomain($localeDir, $domain) + { + $this->localeDomainMap[$domain] = $localeDir; + \SimpleSAML\Logger::debug("Localization: load domain '$domain' at '$localeDir'"); + $this->loadGettextGettextFromPO($domain); + } + + /* + * Get and check path of localization file + * + * @param string $domain Name of localization domain + * @throws Exception If the path does not exist even for the default, fallback language + */ + public function getLangPath($domain = self::DEFAULT_DOMAIN) + { + $langcode = explode('_', $this->langcode); + $langcode = $langcode[0]; + $localeDir = $this->localeDomainMap[$domain]; + $langPath = $localeDir.'/'.$langcode.'/LC_MESSAGES/'; + \SimpleSAML\Logger::debug("Trying langpath for '$langcode' as '$langPath'"); + if (is_dir($langPath) && is_readable($langPath)) { + return $langPath; + } + + // Some langcodes have aliases.. + $alias = $this->language->getLanguageCodeAlias($langcode); + if (isset($alias)) { + $langPath = $localeDir.'/'.$alias.'/LC_MESSAGES/'; + \SimpleSAML\Logger::debug("Trying langpath for alternative '$alias' as '$langPath'"); + if (is_dir($langPath) && is_readable($langPath)) { + return $langPath; + } + } + + // Language not found, fall back to default + $defLangcode = $this->language->getDefaultLanguage(); + $langPath = $localeDir.'/'.$defLangcode.'/LC_MESSAGES/'; + if (is_dir($langPath) && is_readable($langPath)) { + // Report that the localization for the preferred language is missing + $error = "Localization not found for langcode '$langcode' at '$langPath', falling back to langcode '". + $defLangcode."'"; + \SimpleSAML\Logger::error($_SERVER['PHP_SELF'].' - '.$error); + return $langPath; + } + + // Locale for default language missing even, error out + $error = "Localization directory missing/broken for langcode '$langcode' and domain '$domain'"; + \SimpleSAML\Logger::critical($_SERVER['PHP_SELF'].' - '.$error); + throw new \Exception($error); + } + + + /** + * Setup the translator + */ + private function setupTranslator() + { + $this->translator = new Translator(); + $this->translator->register(); + } + + + /** + * Load translation domain from Gettext/Gettext using .po + * + * Note: Since Twig I18N does not support domains, all loaded files are + * merged. Use contexts if identical strings need to be disambiguated. + * + * @param string $domain Name of domain + * @param boolean $catchException Whether to catch an exception on error or return early + * + * @throws \Exception If something is wrong with the locale file for the domain and activated language + */ + private function loadGettextGettextFromPO($domain = self::DEFAULT_DOMAIN, $catchException = true) + { + try { + $langPath = $this->getLangPath($domain); + } catch (\Exception $e) { + $error = "Something went wrong when trying to get path to language file, cannot load domain '$domain'."; + \SimpleSAML\Logger::error($_SERVER['PHP_SELF'].' - '.$error); + if ($catchException) { + // bail out! + return; + } else { + throw $e; + } + } + $poFile = $domain.'.po'; + $poPath = $langPath.$poFile; + if (file_exists($poPath) && is_readable($poPath)) { + $translations = Translations::fromPoFile($poPath); + $this->translator->loadTranslations($translations); + } else { + $error = "Localization file '$poFile' not found in '$langPath', falling back to default"; + \SimpleSAML\Logger::error($_SERVER['PHP_SELF'].' - '.$error); + } + } + + + /** + * Test to check if backend is set to default + * + * (if false: backend unset/there's an error) + */ + public function isI18NBackendDefault() + { + if ($this->i18nBackend === $this::SSP_I18N_BACKEND) { + return true; + } + return false; + } + + + /** + * Set up L18N if configured or fallback to old system + */ + private function setupL10N() + { + if ($this->i18nBackend === self::SSP_I18N_BACKEND) { + \SimpleSAML\Logger::debug("Localization: using old system"); + return; + } + + $this->setupTranslator(); + // setup default domain + $this->addDomain($this->localeDir, self::DEFAULT_DOMAIN); + } + + /** + * Show which domains are registered + */ + public function getRegisteredDomains() + { + return $this->localeDomainMap; + } +} diff --git a/lib/SimpleSAML/Locale/Translate.php b/lib/SimpleSAML/Locale/Translate.php new file mode 100755 index 0000000..00ac6e5 --- /dev/null +++ b/lib/SimpleSAML/Locale/Translate.php @@ -0,0 +1,546 @@ + + * @author Hanne Moa, UNINETT AS. + * @package SimpleSAMLphp + */ + +namespace SimpleSAML\Locale; + +class Translate +{ + + /** + * The configuration to be used for this translator. + * + * @var \SimpleSAML_Configuration + */ + private $configuration; + + private $langtext = array(); + + /** + * Associative array of dictionaries. + */ + private $dictionaries = array(); + + /** + * The default dictionary. + */ + private $defaultDictionary = null; + + /** + * The language object we'll use internally. + * + * @var \SimpleSAML\Locale\Language + */ + private $language; + + + /** + * Constructor + * + * @param \SimpleSAML_Configuration $configuration Configuration object + * @param string|null $defaultDictionary The default dictionary where tags will come from. + */ + public function __construct(\SimpleSAML_Configuration $configuration, $defaultDictionary = null) + { + $this->configuration = $configuration; + $this->language = new Language($configuration); + + if ($defaultDictionary !== null && substr($defaultDictionary, -4) === '.php') { + // TODO: drop this entire if clause for 2.0 + // for backwards compatibility - print warning + $backtrace = debug_backtrace(); + $where = $backtrace[0]['file'].':'.$backtrace[0]['line']; + \SimpleSAML\Logger::warning( + 'Deprecated use of new SimpleSAML\Locale\Translate(...) at '.$where. + '. The last parameter is now a dictionary name, which should not end in ".php".' + ); + + $this->defaultDictionary = substr($defaultDictionary, 0, -4); + } else { + $this->defaultDictionary = $defaultDictionary; + } + } + + + /** + * Return the internal language object used by this translator. + * + * @return \SimpleSAML\Locale\Language + */ + public function getLanguage() + { + return $this->language; + } + + + /** + * This method retrieves a dictionary with the name given. + * + * @param string $name The name of the dictionary, as the filename in the dictionary directory, without the + * '.php' ending. + * + * @return array An associative array with the dictionary. + */ + private function getDictionary($name) + { + assert(is_string($name)); + + if (!array_key_exists($name, $this->dictionaries)) { + $sepPos = strpos($name, ':'); + if ($sepPos !== false) { + $module = substr($name, 0, $sepPos); + $fileName = substr($name, $sepPos + 1); + $dictDir = \SimpleSAML\Module::getModuleDir($module).'/dictionaries/'; + } else { + $dictDir = $this->configuration->getPathValue('dictionarydir', 'dictionaries/'); + $fileName = $name; + } + + $this->dictionaries[$name] = $this->readDictionaryFile($dictDir.$fileName); + } + + return $this->dictionaries[$name]; + } + + + /** + * This method retrieves a tag as an array with language => string mappings. + * + * @param string $tag The tag name. The tag name can also be on the form '{:}', to retrieve a tag + * from the specific dictionary. + * + * @return array An associative array with language => string mappings, or null if the tag wasn't found. + */ + public function getTag($tag) + { + assert(is_string($tag)); + + // first check translations loaded by the includeInlineTranslation and includeLanguageFile methods + if (array_key_exists($tag, $this->langtext)) { + return $this->langtext[$tag]; + } + + // check whether we should use the default dictionary or a dictionary specified in the tag + if (substr($tag, 0, 1) === '{' && preg_match('/^{((?:\w+:)?\w+?):(.*)}$/D', $tag, $matches)) { + $dictionary = $matches[1]; + $tag = $matches[2]; + } else { + $dictionary = $this->defaultDictionary; + if ($dictionary === null) { + // we don't have any dictionary to load the tag from + return null; + } + } + + $dictionary = $this->getDictionary($dictionary); + if (!array_key_exists($tag, $dictionary)) { + return null; + } + + return $dictionary[$tag]; + } + + + /** + * Retrieve the preferred translation of a given text. + * + * @param array $translations The translations, as an associative array with language => text mappings. + * + * @return string The preferred translation. + * + * @throws \Exception If there's no suitable translation. + */ + public function getPreferredTranslation($translations) + { + assert(is_array($translations)); + + // look up translation of tag in the selected language + $selected_language = $this->language->getLanguage(); + if (array_key_exists($selected_language, $translations)) { + return $translations[$selected_language]; + } + + // look up translation of tag in the default language + $default_language = $this->language->getDefaultLanguage(); + if (array_key_exists($default_language, $translations)) { + return $translations[$default_language]; + } + + // check for english translation + if (array_key_exists('en', $translations)) { + return $translations['en']; + } + + // pick the first translation available + if (count($translations) > 0) { + $languages = array_keys($translations); + return $translations[$languages[0]]; + } + + // we don't have anything to return + throw new \Exception('Nothing to return from translation.'); + } + + + /** + * Translate the name of an attribute. + * + * @param string $name The attribute name. + * + * @return string The translated attribute name, or the original attribute name if no translation was found. + */ + public function getAttributeTranslation($name) + { + // normalize attribute name + $normName = strtolower($name); + $normName = str_replace(":", "_", $normName); + + // check for an extra dictionary + $extraDict = $this->configuration->getString('attributes.extradictionary', null); + if ($extraDict !== null) { + $dict = $this->getDictionary($extraDict); + if (array_key_exists($normName, $dict)) { + return $this->getPreferredTranslation($dict[$normName]); + } + } + + // search the default attribute dictionary + $dict = $this->getDictionary('attributes'); + if (array_key_exists('attribute_'.$normName, $dict)) { + return $this->getPreferredTranslation($dict['attribute_'.$normName]); + } + + // no translations found + return $name; + } + + + /** + * Mark a string for translation without translating it. + * + * @param string $tag A tag name to mark for translation. + * + * @return string The tag, unchanged. + */ + public static function noop($tag) + { + return $tag; + } + + + /** + * Translate a tag into the current language, with a fallback to english. + * + * This function is used to look up a translation tag in dictionaries, and return the translation into the current + * language. If no translation into the current language can be found, english will be tried, and if that fails, + * placeholder text will be returned. + * + * An array can be passed as the tag. In that case, the array will be assumed to be on the form (language => text), + * and will be used as the source of translations. + * + * This function can also do replacements into the translated tag. It will search the translated tag for the keys + * provided in $replacements, and replace any found occurrences with the value of the key. + * + * @param string|array $tag A tag name for the translation which should be looked up, or an array with + * (language => text) mappings. The array version will go away in 2.0 + * @param array $replacements An associative array of keys that should be replaced with values in the + * translated string. + * @param boolean $fallbackdefault Default translation to use as a fallback if no valid translation was found. + * @deprecated Not used in twig, gettext + * + * @return string The translated tag, or a placeholder value if the tag wasn't found. + */ + public function t( + $tag, + $replacements = array(), + // TODO: remove this for 2.0. Assume true + $fallbackdefault = true, + // TODO: remove this for 2.0 + $oldreplacements = array(), + // TODO: remove this for 2.0 + $striptags = false + ) { + $backtrace = debug_backtrace(); + $where = $backtrace[0]['file'].':'.$backtrace[0]['line']; + if (!$fallbackdefault) { + \SimpleSAML\Logger::warning( + 'Deprecated use of new SimpleSAML\Locale\Translate::t(...) at '.$where. + '. This parameter will go away, the fallback will become' . + ' identical to the $tag in 2.0.' + ); + } + if (!is_array($replacements)) { + // TODO: remove this entire if for 2.0 + + // old style call to t(...). Print warning to log + \SimpleSAML\Logger::warning( + 'Deprecated use of SimpleSAML\Locale\Translate::t(...) at '.$where. + '. Please update the code to use the new style of parameters.' + ); + + // for backwards compatibility + if (!$replacements && $this->getTag($tag) === null) { + \SimpleSAML\Logger::warning( + 'Code which uses $fallbackdefault === FALSE should be updated to use the getTag() method instead.' + ); + return null; + } + + $replacements = $oldreplacements; + } + + if (is_array($tag)) { + $tagData = $tag; + \SimpleSAML\Logger::warning( + 'Deprecated use of new SimpleSAML\Locale\Translate::t(...) at '.$where. + '. The $tag-parameter can only be a string in 2.0.' + ); + } else { + $tagData = $this->getTag($tag); + if ($tagData === null) { + // tag not found + \SimpleSAML\Logger::info('Template: Looking up ['.$tag.']: not translated at all.'); + return $this->getStringNotTranslated($tag, $fallbackdefault); + } + } + + $translated = $this->getPreferredTranslation($tagData); + + foreach ($replacements as $k => $v) { + // try to translate if no replacement is given + if ($v == null) { + $v = $this->t($k); + } + $translated = str_replace($k, $v, $translated); + } + return $translated; + } + + + /** + * Return the string that should be used when no translation was found. + * + * @param string $tag A name tag of the string that should be returned. + * @param boolean $fallbacktag If set to true and string was not found in any languages, return the tag itself. If + * false return null. + * + * @return string The string that should be used, or the tag name if $fallbacktag is set to false. + */ + private function getStringNotTranslated($tag, $fallbacktag) + { + if ($fallbacktag) { + return 'not translated ('.$tag.')'; + } else { + return $tag; + } + } + + + /** + * Include a translation inline instead of putting translations in dictionaries. This function is recommended to be + * used ONLU from variable data, or when the translation is already provided by an external source, as a database + * or in metadata. + * + * @param string $tag The tag that has a translation + * @param array|string $translation The translation array + * + * @throws \Exception If $translation is neither a string nor an array. + */ + public function includeInlineTranslation($tag, $translation) + { + if (is_string($translation)) { + $translation = array('en' => $translation); + } elseif (!is_array($translation)) { + throw new \Exception("Inline translation should be string or array. Is ".gettype($translation)." now!"); + } + + \SimpleSAML\Logger::debug('Template: Adding inline language translation for tag ['.$tag.']'); + $this->langtext[$tag] = $translation; + } + + + /** + * Include a language file from the dictionaries directory. + * + * @param string $file File name of dictionary to include + * @param \SimpleSAML_Configuration|null $otherConfig Optionally provide a different configuration object than the + * one provided in the constructor to be used to find the directory of the dictionary. This allows to combine + * dictionaries inside the SimpleSAMLphp main code distribution together with external dictionaries. Defaults to + * null. + */ + public function includeLanguageFile($file, $otherConfig = null) + { + if (!empty($otherConfig)) { + $filebase = $otherConfig->getPathValue('dictionarydir', 'dictionaries/'); + } else { + $filebase = $this->configuration->getPathValue('dictionarydir', 'dictionaries/'); + } + + $lang = $this->readDictionaryFile($filebase.$file); + \SimpleSAML\Logger::debug('Template: Merging language array. Loading ['.$file.']'); + $this->langtext = array_merge($this->langtext, $lang); + } + + + /** + * Read a dictionary file in JSON format. + * + * @param string $filename The absolute path to the dictionary file, minus the .definition.json ending. + * + * @return array An array holding all the translations in the file. + */ + private function readDictionaryJSON($filename) + { + $definitionFile = $filename.'.definition.json'; + assert(file_exists($definitionFile)); + + $fileContent = file_get_contents($definitionFile); + $lang = json_decode($fileContent, true); + + if (empty($lang)) { + \SimpleSAML\Logger::error('Invalid dictionary definition file ['.$definitionFile.']'); + return array(); + } + + $translationFile = $filename.'.translation.json'; + if (file_exists($translationFile)) { + $fileContent = file_get_contents($translationFile); + $moreTrans = json_decode($fileContent, true); + if (!empty($moreTrans)) { + $lang = array_merge_recursive($lang, $moreTrans); + } + } + + return $lang; + } + + + /** + * Read a dictionary file in PHP format. + * + * @param string $filename The absolute path to the dictionary file. + * + * @return array An array holding all the translations in the file. + */ + private function readDictionaryPHP($filename) + { + $phpFile = $filename.'.php'; + assert(file_exists($phpFile)); + + $lang = null; + include($phpFile); + if (isset($lang)) { + return $lang; + } + + return array(); + } + + + /** + * Read a dictionary file. + * + * @param string $filename The absolute path to the dictionary file. + * + * @return array An array holding all the translations in the file. + */ + private function readDictionaryFile($filename) + { + assert(is_string($filename)); + + \SimpleSAML\Logger::debug('Template: Reading ['.$filename.']'); + + $jsonFile = $filename.'.definition.json'; + if (file_exists($jsonFile)) { + return $this->readDictionaryJSON($filename); + } + + $phpFile = $filename.'.php'; + if (file_exists($phpFile)) { + return $this->readDictionaryPHP($filename); + } + + \SimpleSAML\Logger::error( + $_SERVER['PHP_SELF'].' - Template: Could not find dictionary file at ['.$filename.']' + ); + return array(); + } + + + public static function translateSingularGettext($original) + { + $text = \Gettext\BaseTranslator::$current->gettext($original); + + if (func_num_args() === 1) { + return $text; + } + + $args = array_slice(func_get_args(), 1); + + return strtr($text, is_array($args[0]) ? $args[0] : $args); + } + + + public static function translatePluralGettext($original, $plural, $value) + { + $text = \Gettext\BaseTranslator::$current->ngettext($original, $plural, $value); + + if (func_num_args() === 3) { + return $text; + } + + $args = array_slice(func_get_args(), 3); + + return strtr($text, is_array($args[0]) ? $args[0] : $args); + } + + + /** + * Pick a translation from a given array of translations for the current language. + * + * @param array $context An array of options. The current language must be specified as an ISO 639 code accessible + * with the key "currentLanguage" in the array. + * @param array $translations An array of translations. Each translation has an ISO 639 code as its key, identifying + * the language it corresponds to. + * + * @return null|string The translation appropriate for the current language, or null if none found. If the + * $context or $translations arrays are null, or $context['currentLanguage'] is not defined, null is also returned. + */ + public static function translateFromArray($context, $translations) + { + if (!is_array($translations) || $translations === null) { + return null; + } + + if (!is_array($context) || !isset($context['currentLanguage'])) { + return null; + } + + if (isset($translations[$context['currentLanguage']])) { + return $translations[$context['currentLanguage']]; + } + + // we don't have a translation for the current language, load alternative priorities + $sspcfg = \SimpleSAML_Configuration::getInstance(); + $langcfg = $sspcfg->getConfigItem('language', null); + $priorities = array(); + if ($langcfg instanceof \SimpleSAML_Configuration) { + $priorities = $langcfg->getArray('priorities', array()); + } + + foreach ($priorities[$context['currentLanguage']] as $lang) { + if (isset($translations[$lang])) { + return $translations[$lang]; + } + } + + // nothing we can use, return null so that we can set a default + return null; + } +} diff --git a/lib/SimpleSAML/Logger.php b/lib/SimpleSAML/Logger.php new file mode 100755 index 0000000..4f6b7a9 --- /dev/null +++ b/lib/SimpleSAML/Logger.php @@ -0,0 +1,457 @@ + + * @author Jaime PĆ©rez Crespo, UNINETT AS + * @package SimpleSAMLphp + */ +class Logger +{ + + /** + * @var \SimpleSAML\Logger\LoggingHandlerInterface|false|null + */ + private static $loggingHandler = null; + + /** + * @var integer|null + */ + private static $logLevel = null; + + /** + * @var boolean + */ + private static $captureLog = false; + + /** + * @var array + */ + private static $capturedLog = array(); + + /** + * Array with messages logged before the logging handler was initialized. + * + * @var array + */ + private static $earlyLog = array(); + + /** + * List of log levels. + * + * This list is used to restore the log levels after some log levels have been disabled. + * + * @var array + */ + private static $logLevelStack = array(); + + /** + * The current mask of log levels disabled. + * + * Note: this mask is not directly related to the PHP error reporting level. + * + * @var int + */ + private static $logMask = 0; + + + /** + * This constant defines the string we set the track ID to while we are fetching the track ID from the session + * class. This is used to prevent infinite recursion. + */ + const NO_TRACKID = '_NOTRACKIDYET_'; + + /** + * This variable holds the track ID we have retrieved from the session class. It can also be NULL, in which case + * we haven't fetched the track ID yet, or self::NO_TRACKID, which means that we are fetching the track ID now. + */ + private static $trackid = self::NO_TRACKID; + + /** + * This variable holds the format used to log any message. Its use varies depending on the log handler used (for + * instance, you cannot control here how dates are displayed when using syslog or errorlog handlers), but in + * general the options are: + * + * - %date{}: the date and time, with its format specified inside the brackets. See the PHP documentation + * of the strftime() function for more information on the format. If the brackets are omitted, the standard + * format is applied. This can be useful if you just want to control the placement of the date, but don't care + * about the format. + * + * - %process: the name of the SimpleSAMLphp process. Remember you can configure this in the 'logging.processname' + * option. The SyslogLoggingHandler will just remove this. + * + * - %level: the log level (name or number depending on the handler used). Please note different logging handlers + * will print the log level differently. + * + * - %stat: if the log entry is intended for statistical purposes, it will print the string 'STAT ' (bear in mind + * the trailing space). + * + * - %trackid: the track ID, an identifier that allows you to track a single session. + * + * - %srcip: the IP address of the client. If you are behind a proxy, make sure to modify the + * $_SERVER['REMOTE_ADDR'] variable on your code accordingly to the X-Forwarded-For header. + * + * - %msg: the message to be logged. + * + * @var string The format of the log line. + */ + private static $format = '%date{%b %d %H:%M:%S} %process %level %stat[%trackid] %msg'; + + /** + * This variable tells if we have a shutdown function registered or not. + * + * @var bool + */ + private static $shutdownRegistered = false; + + /** + * This variable tells if we are shutting down. + * + * @var bool + */ + private static $shuttingDown = false; + + const EMERG = 0; + const ALERT = 1; + const CRIT = 2; + const ERR = 3; + const WARNING = 4; + const NOTICE = 5; + const INFO = 6; + const DEBUG = 7; + + + /** + * Log an emergency message. + * + * @var string $string The message to log. + */ + public static function emergency($string) + { + self::log(self::EMERG, $string); + } + + + /** + * Log a critical message. + * + * @var string $string The message to log. + */ + public static function critical($string) + { + self::log(self::CRIT, $string); + } + + + /** + * Log an alert. + * + * @var string $string The message to log. + */ + public static function alert($string) + { + self::log(self::ALERT, $string); + } + + + /** + * Log an error. + * + * @var string $string The message to log. + */ + public static function error($string) + { + self::log(self::ERR, $string); + } + + + /** + * Log a warning. + * + * @var string $string The message to log. + */ + public static function warning($string) + { + self::log(self::WARNING, $string); + } + + + /** + * We reserve the notice level for statistics, so do not use this level for other kind of log messages. + * + * @var string $string The message to log. + */ + public static function notice($string) + { + self::log(self::NOTICE, $string); + } + + + /** + * Info messages are a bit less verbose than debug messages. This is useful to trace a session. + * + * @var string $string The message to log. + */ + public static function info($string) + { + self::log(self::INFO, $string); + } + + + /** + * Debug messages are very verbose, and will contain more information than what is necessary for a production + * system. + * + * @var string $string The message to log. + */ + public static function debug($string) + { + self::log(self::DEBUG, $string); + } + + + /** + * Statistics. + * + * @var string $string The message to log. + */ + public static function stats($string) + { + self::log(self::NOTICE, $string, true); + } + + + /** + * Set the logger to capture logs. + * + * @var boolean $val Whether to capture logs or not. Defaults to TRUE. + */ + public static function setCaptureLog($val = true) + { + self::$captureLog = $val; + } + + + /** + * Get the captured log. + */ + public static function getCapturedLog() + { + return self::$capturedLog; + } + + + /** + * Set the track identifier to use in all logs. + * + * @param $trackId string The track identifier to use during this session. + */ + public static function setTrackId($trackId) + { + self::$trackid = $trackId; + } + + + /** + * Flush any pending log messages to the logging handler. + * + * This method is intended to be registered as a shutdown handler, so that any pending messages that weren't sent + * to the logging handler at that point, can still make it. It is therefore not intended to be called manually. + * + */ + public static function flush() + { + try { + $s = \SimpleSAML_Session::getSessionFromRequest(); + } catch (\Exception $e) { + // loading session failed. We don't care why, at this point we have a transient session, so we use that + self::error('Cannot load or create session: '.$e->getMessage()); + $s = \SimpleSAML_Session::getSessionFromRequest(); + } + self::$trackid = $s->getTrackID(); + + self::$shuttingDown = true; + foreach (self::$earlyLog as $msg) { + self::log($msg['level'], $msg['string'], $msg['statsLog']); + } + } + + + /** + * Evaluate whether errors of a certain error level are masked or not. + * + * @param int $errno The level of the error to check. + * + * @return bool True if the error is masked, false otherwise. + */ + public static function isErrorMasked($errno) + { + return ($errno & self::$logMask) || !($errno & error_reporting()); + } + + + /** + * Disable error reporting for the given log levels. + * + * Every call to this function must be followed by a call to popErrorMask(). + * + * @param int $mask The log levels that should be masked. + */ + public static function maskErrors($mask) + { + assert(is_int($mask)); + + $currentEnabled = error_reporting(); + self::$logLevelStack[] = array($currentEnabled, self::$logMask); + + $currentEnabled &= ~$mask; + error_reporting($currentEnabled); + self::$logMask |= $mask; + } + + + /** + * Pop an error mask. + * + * This function restores the previous error mask. + */ + public static function popErrorMask() + { + $lastMask = array_pop(self::$logLevelStack); + error_reporting($lastMask[0]); + self::$logMask = $lastMask[1]; + } + + + /** + * Defer a message for later logging. + * + * @param int $level The log level corresponding to this message. + * @param string $message The message itself to log. + * @param boolean $stats Whether this is a stats message or a regular one. + */ + private static function defer($level, $message, $stats) + { + // save the message for later + self::$earlyLog[] = array('level' => $level, 'string' => $message, 'statsLog' => $stats); + + // register a shutdown handler if needed + if (!self::$shutdownRegistered) { + register_shutdown_function(array('SimpleSAML\Logger', 'flush')); + self::$shutdownRegistered = true; + } + } + + + private static function createLoggingHandler($handler = null) + { + // set to false to indicate that it is being initialized + self::$loggingHandler = false; + + // a set of known logging handlers + $known_handlers = array( + 'syslog' => 'SimpleSAML\Logger\SyslogLoggingHandler', + 'file' => 'SimpleSAML\Logger\FileLoggingHandler', + 'errorlog' => 'SimpleSAML\Logger\ErrorLogLoggingHandler', + ); + + // get the configuration + $config = \SimpleSAML_Configuration::getInstance(); + assert($config instanceof \SimpleSAML_Configuration); + + // setting minimum log_level + self::$logLevel = $config->getInteger('logging.level', self::INFO); + + // get the metadata handler option from the configuration + if (is_null($handler)) { + $handler = $config->getString('logging.handler', 'syslog'); + } + + if (!array_key_exists($handler, $known_handlers) && class_exists($handler)) { + if (!in_array('SimpleSAML\Logger\LoggingHandlerInterface', class_implements($handler), true)) { + throw new \Exception("The logging handler '$handler' is invalid."); + } + } else { + $handler = strtolower($handler); + if (!array_key_exists($handler, $known_handlers)) { + throw new \Exception( + "Invalid value for the 'logging.handler' configuration option. Unknown handler '".$handler."''." + ); + } + $handler = $known_handlers[$handler]; + } + self::$loggingHandler = new $handler($config); + + self::$format = $config->getString('logging.format', self::$format); + self::$loggingHandler->setLogFormat(self::$format); + } + + + private static function log($level, $string, $statsLog = false) + { + if (self::$loggingHandler === false) { + // some error occurred while initializing logging + self::defer($level, $string, $statsLog); + return; + } elseif (php_sapi_name() === 'cli' || defined('STDIN')) { + // we are being executed from the CLI, nowhere to log + if (is_null(self::$loggingHandler)) { + self::createLoggingHandler('SimpleSAML\Logger\StandardErrorLoggingHandler'); + } + $_SERVER['REMOTE_ADDR'] = "CLI"; + if (self::$trackid === self::NO_TRACKID) { + self::$trackid = 'CL'.bin2hex(openssl_random_pseudo_bytes(4)); + } + } elseif (self::$loggingHandler === null) { + // Initialize logging + self::createLoggingHandler(); + + if (!empty(self::$earlyLog)) { + // output messages which were logged before we properly initialized logging + foreach (self::$earlyLog as $msg) { + self::log($msg['level'], $msg['string'], $msg['statsLog']); + } + } + } + + if (self::$captureLog) { + $ts = microtime(true); + $msecs = (int) (($ts - (int) $ts) * 1000); + $ts = gmdate('H:i:s', $ts).sprintf('.%03d', $msecs).'Z'; + self::$capturedLog[] = $ts.' '.$string; + } + + if (self::$logLevel >= $level || $statsLog) { + if (is_array($string)) { + $string = implode(",", $string); + } + + $formats = array('%trackid', '%msg', '%srcip', '%stat'); + $replacements = array(self::$trackid, $string, $_SERVER['REMOTE_ADDR']); + + $stat = ''; + if ($statsLog) { + $stat = 'STAT '; + } + array_push($replacements, $stat); + + if (self::$trackid === self::NO_TRACKID && !self::$shuttingDown) { + // we have a log without track ID and we are not still shutting down, so defer logging + self::defer($level, $string, $statsLog); + return; + } elseif (self::$trackid === self::NO_TRACKID) { + // shutting down without a track ID, prettify it + array_shift($replacements); + array_unshift($replacements, 'N/A'); + } + + // we either have a track ID or we are shutting down, so just log the message + $string = str_replace($formats, $replacements, self::$format); + self::$loggingHandler->log($level, $string); + } + } +} diff --git a/lib/SimpleSAML/Logger/ErrorLogLoggingHandler.php b/lib/SimpleSAML/Logger/ErrorLogLoggingHandler.php new file mode 100755 index 0000000..845103c --- /dev/null +++ b/lib/SimpleSAML/Logger/ErrorLogLoggingHandler.php @@ -0,0 +1,84 @@ + + * @author Olav Morken, UNINETT AS. + * @package SimpleSAMLphp + */ +class ErrorLogLoggingHandler implements LoggingHandlerInterface +{ + + /** + * This array contains the mappings from syslog log level to names. + */ + private static $levelNames = array( + Logger::EMERG => 'EMERG', + Logger::ALERT => 'ALERT', + Logger::CRIT => 'CRIT', + Logger::ERR => 'ERR', + Logger::WARNING => 'WARNING', + Logger::NOTICE => 'NOTICE', + Logger::INFO => 'INFO', + Logger::DEBUG => 'DEBUG', + ); + + /** + * The name of this process. + * + * @var string + */ + private $processname; + + + /** + * ErrorLogLoggingHandler constructor. + * + * @param \SimpleSAML_Configuration $config The configuration object for this handler. + */ + public function __construct(\SimpleSAML_Configuration $config) + { + $this->processname = $config->getString('logging.processname', 'SimpleSAMLphp'); + } + + + /** + * Set the format desired for the logs. + * + * @param string $format The format used for logs. + */ + public function setLogFormat($format) + { + // we don't need the format here + } + + + /** + * Log a message to syslog. + * + * @param int $level The log level. + * @param string $string The formatted message to log. + */ + public function log($level, $string) + { + if (array_key_exists($level, self::$levelNames)) { + $levelName = self::$levelNames[$level]; + } else { + $levelName = sprintf('UNKNOWN%d', $level); + } + + $formats = array('%process', '%level'); + $replacements = array($this->processname, $levelName); + $string = str_replace($formats, $replacements, $string); + $string = preg_replace('/%\w+(\{[^\}]+\})?/', '', $string); + $string = trim($string); + + error_log($string); + } +} diff --git a/lib/SimpleSAML/Logger/FileLoggingHandler.php b/lib/SimpleSAML/Logger/FileLoggingHandler.php new file mode 100755 index 0000000..475541f --- /dev/null +++ b/lib/SimpleSAML/Logger/FileLoggingHandler.php @@ -0,0 +1,113 @@ + + * @package SimpleSAMLphp + */ +class FileLoggingHandler implements LoggingHandlerInterface +{ + + /** + * A string with the path to the file where we should log our messages. + * + * @var null|string + */ + protected $logFile = null; + + /** + * This array contains the mappings from syslog log levels to names. Copied more or less directly from + * SimpleSAML\Logger\ErrorLogLoggingHandler. + */ + private static $levelNames = array( + Logger::EMERG => 'EMERGENCY', + Logger::ALERT => 'ALERT', + Logger::CRIT => 'CRITICAL', + Logger::ERR => 'ERROR', + Logger::WARNING => 'WARNING', + Logger::NOTICE => 'NOTICE', + Logger::INFO => 'INFO', + Logger::DEBUG => 'DEBUG', + ); + protected $processname = null; + protected $format; + + + /** + * Build a new logging handler based on files. + */ + public function __construct(\SimpleSAML_Configuration $config) + { + // get the metadata handler option from the configuration + $this->logFile = $config->getPathValue('loggingdir', 'log/'). + $config->getString('logging.logfile', 'simplesamlphp.log'); + $this->processname = $config->getString('logging.processname', 'SimpleSAMLphp'); + + if (@file_exists($this->logFile)) { + if (!@is_writeable($this->logFile)) { + throw new \Exception("Could not write to logfile: ".$this->logFile); + } + } else { + if (!@touch($this->logFile)) { + throw new \Exception( + "Could not create logfile: ".$this->logFile. + " The logging directory is not writable for the web server user." + ); + } + } + + \SimpleSAML\Utils\Time::initTimezone(); + } + + + /** + * Set the format desired for the logs. + * + * @param string $format The format used for logs. + */ + public function setLogFormat($format) + { + $this->format = $format; + } + + + /** + * Log a message to the log file. + * + * @param int $level The log level. + * @param string $string The formatted message to log. + */ + public function log($level, $string) + { + if (!is_null($this->logFile)) { + // set human-readable log level. Copied from SimpleSAML\Logger\ErrorLogLoggingHandler. + $levelName = sprintf('UNKNOWN%d', $level); + if (array_key_exists($level, self::$levelNames)) { + $levelName = self::$levelNames[$level]; + } + + $formats = array('%process', '%level'); + $replacements = array($this->processname, $levelName); + + $matches = array(); + if (preg_match('/%date(?:\{([^\}]+)\})?/', $this->format, $matches)) { + $format = "%b %d %H:%M:%S"; + if (isset($matches[1])) { + $format = $matches[1]; + } + + array_push($formats, $matches[0]); + array_push($replacements, strftime($format)); + } + + $string = str_replace($formats, $replacements, $string); + file_put_contents($this->logFile, $string.PHP_EOL, FILE_APPEND); + } + } +} diff --git a/lib/SimpleSAML/Logger/LoggingHandlerInterface.php b/lib/SimpleSAML/Logger/LoggingHandlerInterface.php new file mode 100755 index 0000000..c7b00eb --- /dev/null +++ b/lib/SimpleSAML/Logger/LoggingHandlerInterface.php @@ -0,0 +1,38 @@ + + * @package SimpleSAMLphp + */ +class StandardErrorLoggingHandler extends FileLoggingHandler +{ + + /** + * StandardError constructor. + * + * It runs the parent constructor and sets the log file to be the standard error descriptor. + */ + public function __construct(\SimpleSAML_Configuration $config) + { + $this->processname = $config->getString('logging.processname', 'SimpleSAMLphp'); + $this->logFile = 'php://stderr'; + } +} diff --git a/lib/SimpleSAML/Logger/SyslogLoggingHandler.php b/lib/SimpleSAML/Logger/SyslogLoggingHandler.php new file mode 100755 index 0000000..ce27397 --- /dev/null +++ b/lib/SimpleSAML/Logger/SyslogLoggingHandler.php @@ -0,0 +1,75 @@ + + * @package SimpleSAMLphp + */ +class SyslogLoggingHandler implements LoggingHandlerInterface +{ + private $isWindows = false; + private $format; + + + /** + * Build a new logging handler based on syslog. + */ + public function __construct(\SimpleSAML_Configuration $config) + { + $facility = $config->getInteger('logging.facility', defined('LOG_LOCAL5') ? constant('LOG_LOCAL5') : LOG_USER); + + $processname = $config->getString('logging.processname', 'SimpleSAMLphp'); + + // Setting facility to LOG_USER (only valid in Windows), enable log level rewrite on windows systems + if (System::getOS() === System::WINDOWS) { + $this->isWindows = true; + $facility = LOG_USER; + } + + openlog($processname, LOG_PID, $facility); + } + + + /** + * Set the format desired for the logs. + * + * @param string $format The format used for logs. + */ + public function setLogFormat($format) + { + $this->format = $format; + } + + + /** + * Log a message to syslog. + * + * @param int $level The log level. + * @param string $string The formatted message to log. + */ + public function log($level, $string) + { + // changing log level to supported levels if OS is Windows + if ($this->isWindows) { + if ($level <= 4) { + $level = LOG_ERR; + } else { + $level = LOG_INFO; + } + } + + $formats = array('%process', '%level'); + $replacements = array('', $level); + $string = str_replace($formats, $replacements, $string); + $string = preg_replace('/%\w+(\{[^\}]+\})?/', '', $string); + $string = trim($string); + + syslog($level, $string); + } +} diff --git a/lib/SimpleSAML/Memcache.php b/lib/SimpleSAML/Memcache.php new file mode 100755 index 0000000..3f4bba0 --- /dev/null +++ b/lib/SimpleSAML/Memcache.php @@ -0,0 +1,492 @@ +get($key); + if ($serializedInfo === false) { + // either the server is down, or we don't have the value stored on that server + $mustUpdate = true; + $up = $server->getstats(); + if ($up !== false) { + $allDown = false; + } + continue; + } + $allDown = false; + + // unserialize the object + $info = unserialize($serializedInfo); + + /* + * Make sure that this is an array with two keys: + * - 'timestamp': The time the data was saved. + * - 'data': The data. + */ + if (!is_array($info)) { + SimpleSAML\Logger::warning( + 'Retrieved invalid data from a memcache server. Data was not an array.' + ); + continue; + } + if (!array_key_exists('timestamp', $info)) { + SimpleSAML\Logger::warning( + 'Retrieved invalid data from a memcache server. Missing timestamp.' + ); + continue; + } + if (!array_key_exists('data', $info)) { + SimpleSAML\Logger::warning( + 'Retrieved invalid data from a memcache server. Missing data.' + ); + continue; + } + + if ($latestInfo === null) { + // first info found + $latestInfo = $serializedInfo; + $latestTime = $info['timestamp']; + $latestData = $info['data']; + continue; + } + + if ($info['timestamp'] === $latestTime && $serializedInfo === $latestInfo) { + // this data matches the data from the other server(s) + continue; + } + + // different data from different servers. We need to update at least one of them to maintain sync + $mustUpdate = true; + + // update if data in $info is newer than $latestData + if ($latestTime < $info['timestamp']) { + $latestInfo = $serializedInfo; + $latestTime = $info['timestamp']; + $latestData = $info['data']; + } + } + + if ($latestData === null) { + if ($allDown) { + // all servers are down, panic! + $e = new SimpleSAML_Error_Error('MEMCACHEDOWN', null, 503); + throw new SimpleSAML_Error_Exception('All memcache servers are down', 503, $e); + } + // we didn't find any data matching the key + SimpleSAML\Logger::debug("key $key not found in memcache"); + return null; + } + + if ($mustUpdate) { + // we found data matching the key, but some of the servers need updating + SimpleSAML\Logger::debug("Memcache servers out of sync for $key, forcing sync"); + self::set($key, $latestData); + } + + return $latestData; + } + + + /** + * Save a key-value pair to the memcache servers. + * + * @param string $key The key of the data. + * @param mixed $value The value of the data. + * @param integer|null $expire The expiration timestamp of the data. + */ + public static function set($key, $value, $expire = null) + { + SimpleSAML\Logger::debug("saving key $key to memcache"); + $savedInfo = array( + 'timestamp' => microtime(true), + 'data' => $value + ); + + if ($expire === null) { + $expire = self::getExpireTime(); + } + + $savedInfoSerialized = serialize($savedInfo); + + // store this object to all groups of memcache servers + foreach (self::getMemcacheServers() as $server) { + if (self::$extension === 'memcached') { + $server->set($key, $savedInfoSerialized, $expire); + } else { + $server->set($key, $savedInfoSerialized, 0, $expire); + } + } + } + + + /** + * Delete a key-value pair from the memcache servers. + * + * @param string $key The key we should delete. + */ + public static function delete($key) + { + assert(is_string($key)); + SimpleSAML\Logger::debug("deleting key $key from memcache"); + + // store this object to all groups of memcache servers + foreach (self::getMemcacheServers() as $server) { + $server->delete($key); + } + } + + + /** + * This function adds a server from the 'memcache_store.servers' + * configuration option to a Memcache object. + * + * The server parameter is an array with the following keys: + * - hostname + * Hostname or ip address to the memcache server. + * - port (optional) + * port number the memcache server is running on. This + * defaults to memcache.default_port if no value is given. + * The default value of memcache.default_port is 11211. + * - weight (optional) + * The weight of this server in the load balancing + * cluster. + * - timeout (optional) + * The timeout for contacting this server, in seconds. + * The default value is 3 seconds. + * + * @param Memcache $memcache The Memcache object we should add this server to. + * @param array $server An associative array with the configuration options for the server to add. + * + * @throws Exception If any configuration option for the server is invalid. + */ + private static function addMemcacheServer($memcache, $server) + { + // the hostname option is required + if (!array_key_exists('hostname', $server)) { + throw new Exception( + "hostname setting missing from server in the 'memcache_store.servers' configuration option." + ); + } + + $hostname = $server['hostname']; + + // the hostname must be a valid string + if (!is_string($hostname)) { + throw new Exception( + "Invalid hostname for server in the 'memcache_store.servers' configuration option. The hostname is". + ' supposed to be a string.' + ); + } + + // check if we are told to use a socket + $socket = false; + if (strpos($hostname, 'unix:///') === 0) { + $socket = true; + } + + // check if the user has specified a port number + if ($socket) { + // force port to be 0 for sockets + $port = 0; + } elseif (array_key_exists('port', $server)) { + // get the port number from the array, and validate it + $port = (int) $server['port']; + if (($port <= 0) || ($port > 65535)) { + throw new Exception( + "Invalid port for server in the 'memcache_store.servers' configuration option. The port number". + ' is supposed to be an integer between 0 and 65535.' + ); + } + } else { + // use the default port number from the ini-file + $port = (int) ini_get('memcache.default_port'); + if ($port <= 0 || $port > 65535) { + // invalid port number from the ini-file. fall back to the default + $port = 11211; + } + } + + // check if the user has specified a weight for this server + if (array_key_exists('weight', $server)) { + // get the weight and validate it + $weight = (int) $server['weight']; + if ($weight <= 0) { + throw new Exception( + "Invalid weight for server in the 'memcache_store.servers' configuration option. The weight is". + ' supposed to be a positive integer.' + ); + } + } else { + // use a default weight of 1 + $weight = 1; + } + + // check if the user has specified a timeout for this server + if (array_key_exists('timeout', $server)) { + // get the timeout and validate it + $timeout = (int) $server['timeout']; + if ($timeout <= 0) { + throw new Exception( + "Invalid timeout for server in the 'memcache_store.servers' configuration option. The timeout is". + ' supposed to be a positive integer.' + ); + } + } else { + // use a default timeout of 3 seconds + $timeout = 3; + } + + // add this server to the Memcache object + if (self::$extension === 'memcached') { + $memcache->addServer($hostname, $port); + } else { + $memcache->addServer($hostname, $port, true, $weight, $timeout, $timeout, true); + } + } + + + /** + * This function takes in a list of servers belonging to a group and + * creates a Memcache object from the servers in the group. + * + * @param array $group Array of servers which should be created as a group. + * + * @return Memcache A Memcache object of the servers in the group + * + * @throws Exception If the servers configuration is invalid. + */ + private static function loadMemcacheServerGroup(array $group) + { + $class = class_exists('Memcache') ? 'Memcache' : (class_exists('Memcached') ? 'Memcached' : false); + if (!$class) { + throw new Exception('Missing Memcached implementation. You must install either the Memcache or Memcached extension.'); + } + self::$extension = strtolower($class); + + // create the Memcache object + $memcache = new $class(); + + // iterate over all the servers in the group and add them to the Memcache object + foreach ($group as $index => $server) { + // make sure that we don't have an index. An index would be a sign of invalid configuration + if (!is_int($index)) { + throw new Exception( + "Invalid index on element in the 'memcache_store.servers' configuration option. Perhaps you". + ' have forgotten to add an array(...) around one of the server groups? The invalid index was: '. + $index + ); + } + + // make sure that the server object is an array. Each server is an array with name-value pairs + if (!is_array($server)) { + throw new Exception( + 'Invalid value for the server with index '.$index. + '. Remeber that the \'memcache_store.servers\' configuration option'. + ' contains an array of arrays of arrays.' + ); + } + + self::addMemcacheServer($memcache, $server); + } + + return $memcache; + } + + + /** + * This function gets a list of all configured memcache servers. This list is initialized based + * on the content of 'memcache_store.servers' in the configuration. + * + * @return Memcache[] Array with Memcache objects. + * + * @throws Exception If the servers configuration is invalid. + */ + private static function getMemcacheServers() + { + // check if we have loaded the servers already + if (self::$serverGroups != null) { + return self::$serverGroups; + } + + // initialize the servers-array + self::$serverGroups = array(); + + // load the configuration + $config = SimpleSAML_Configuration::getInstance(); + + + $groups = $config->getArray('memcache_store.servers'); + + // iterate over all the groups in the 'memcache_store.servers' configuration option + foreach ($groups as $index => $group) { + // make sure that the group doesn't have an index. An index would be a sign of invalid configuration + if (!is_int($index)) { + throw new Exception( + "Invalid index on element in the 'memcache_store.servers'". + ' configuration option. Perhaps you have forgotten to add an array(...)'. + ' around one of the server groups? The invalid index was: '.$index + ); + } + + /* + * Make sure that the group is an array. Each group is an array of servers. Each server is + * an array of name => value pairs for that server. + */ + if (!is_array($group)) { + throw new Exception( + "Invalid value for the server with index ".$index. + ". Remeber that the 'memcache_store.servers' configuration option". + ' contains an array of arrays of arrays.' + ); + } + + // parse and add this group to the server group list + self::$serverGroups[] = self::loadMemcacheServerGroup($group); + } + + return self::$serverGroups; + } + + + /** + * This is a helper-function which returns the expire value of data + * we should store to the memcache servers. + * + * The value is set depending on the configuration. If no value is + * set in the configuration, then we will use a default value of 0. + * 0 means that the item will never expire. + * + * @return integer The value which should be passed in the set(...) calls to the memcache objects. + * + * @throws Exception If the option 'memcache_store.expires' has a negative value. + */ + private static function getExpireTime() + { + // get the configuration instance + $config = SimpleSAML_Configuration::getInstance(); + assert($config instanceof SimpleSAML_Configuration); + + // get the expire-value from the configuration + $expire = $config->getInteger('memcache_store.expires', 0); + + // it must be a positive integer + if ($expire < 0) { + throw new Exception( + "The value of 'memcache_store.expires' in the configuration can't be a negative integer." + ); + } + + /* If the configuration option is 0, then we should return 0. This allows the user to specify that the data + * shouldn't expire. + */ + if ($expire == 0) { + return 0; + } + + /* The expire option is given as the number of seconds into the future an item should expire. We convert this + * to an actual timestamp. + */ + $expireTime = time() + $expire; + + return $expireTime; + } + + + /** + * This function retrieves statistics about all memcache server groups. + * + * @return array Array with the names of each stat and an array with the value for each server group. + * + * @throws Exception If memcache server status couldn't be retrieved. + */ + public static function getStats() + { + $ret = array(); + + foreach (self::getMemcacheServers() as $sg) { + $stats = method_exists($sg, 'getExtendedStats') ? $sg->getExtendedStats() : $sg->getStats(); + foreach ($stats as $server => $data) { + if ($data === false) { + throw new Exception('Failed to get memcache server status.'); + } + } + + $stats = SimpleSAML\Utils\Arrays::transpose($stats); + + $ret = array_merge_recursive($ret, $stats); + } + + return $ret; + } + + + /** + * Retrieve statistics directly in the form returned by getExtendedStats, for + * all server groups. + * + * @return array An array with the extended stats output for each server group. + */ + public static function getRawStats() + { + $ret = array(); + + foreach (self::getMemcacheServers() as $sg) { + $stats = method_exists($sg, 'getExtendedStats') ? $sg->getExtendedStats() : $sg->getStats(); + $ret[] = $stats; + } + + return $ret; + } +} diff --git a/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php b/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php new file mode 100755 index 0000000..6091470 --- /dev/null +++ b/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php @@ -0,0 +1,361 @@ + + * @package SimpleSAMLphp + */ +class SimpleSAML_Metadata_MetaDataStorageHandler +{ + + + /** + * This static variable contains a reference to the current + * instance of the metadata handler. This variable will be null if + * we haven't instantiated a metadata handler yet. + * + * @var SimpleSAML_Metadata_MetaDataStorageHandler + */ + private static $metadataHandler = null; + + + /** + * This is a list of all the metadata sources we have in our metadata + * chain. When we need metadata, we will look through this chain from start to end. + * + * @var SimpleSAML_Metadata_MetaDataStorageSource[] + */ + private $sources; + + + /** + * This function retrieves the current instance of the metadata handler. + * The metadata handler will be instantiated if this is the first call + * to this function. + * + * @return SimpleSAML_Metadata_MetaDataStorageHandler The current metadata handler instance. + */ + public static function getMetadataHandler() + { + if (self::$metadataHandler === null) { + self::$metadataHandler = new SimpleSAML_Metadata_MetaDataStorageHandler(); + } + + return self::$metadataHandler; + } + + + /** + * This constructor initializes this metadata storage handler. It will load and + * parse the configuration, and initialize the metadata source list. + */ + protected function __construct() + { + $config = SimpleSAML_Configuration::getInstance(); + + $sourcesConfig = $config->getArray('metadata.sources', null); + + // for backwards compatibility, and to provide a default configuration + if ($sourcesConfig === null) { + $type = $config->getString('metadata.handler', 'flatfile'); + $sourcesConfig = array(array('type' => $type)); + } + + try { + $this->sources = SimpleSAML_Metadata_MetaDataStorageSource::parseSources($sourcesConfig); + } catch (Exception $e) { + throw new Exception( + "Invalid configuration of the 'metadata.sources' configuration option: ".$e->getMessage() + ); + } + } + + + /** + * This function is used to generate some metadata elements automatically. + * + * @param string $property The metadata property which should be auto-generated. + * @param string $set The set we the property comes from. + * + * @return string The auto-generated metadata property. + * @throws Exception If the metadata cannot be generated automatically. + */ + public function getGenerated($property, $set) + { + // first we check if the user has overridden this property in the metadata + try { + $metadataSet = $this->getMetaDataCurrent($set); + if (array_key_exists($property, $metadataSet)) { + return $metadataSet[$property]; + } + } catch (Exception $e) { + // probably metadata wasn't found. In any case we continue by generating the metadata + } + + // get the configuration + $config = SimpleSAML_Configuration::getInstance(); + assert($config instanceof SimpleSAML_Configuration); + + $baseurl = \SimpleSAML\Utils\HTTP::getSelfURLHost().$config->getBasePath(); + + if ($set == 'saml20-sp-hosted') { + if ($property === 'SingleLogoutServiceBinding') { + return \SAML2\Constants::BINDING_HTTP_REDIRECT; + } + } elseif ($set == 'saml20-idp-hosted') { + switch ($property) { + case 'SingleSignOnService': + return $baseurl.'saml2/idp/SSOService.php'; + + case 'SingleSignOnServiceBinding': + return \SAML2\Constants::BINDING_HTTP_REDIRECT; + + case 'SingleLogoutService': + return $baseurl.'saml2/idp/SingleLogoutService.php'; + + case 'SingleLogoutServiceBinding': + return \SAML2\Constants::BINDING_HTTP_REDIRECT; + } + } elseif ($set == 'shib13-idp-hosted') { + if ($property === 'SingleSignOnService') { + return $baseurl.'shib13/idp/SSOService.php'; + } + } + + throw new Exception('Could not generate metadata property '.$property.' for set '.$set.'.'); + } + + + /** + * This function lists all known metadata in the given set. It is returned as an associative array + * where the key is the entity id. + * + * @param string $set The set we want to list metadata from. + * + * @return array An associative array with the metadata from from the given set. + */ + public function getList($set = 'saml20-idp-remote') + { + assert(is_string($set)); + + $result = array(); + + foreach ($this->sources as $source) { + $srcList = $source->getMetadataSet($set); + + foreach ($srcList as $key => $le) { + if (array_key_exists('expire', $le)) { + if ($le['expire'] < time()) { + unset($srcList[$key]); + SimpleSAML\Logger::warning( + "Dropping metadata entity ".var_export($key, true).", expired ". + SimpleSAML\Utils\Time::generateTimestamp($le['expire'])."." + ); + } + } + } + + /* $result is the last argument to array_merge because we want the content already + * in $result to have precedence. + */ + $result = array_merge($srcList, $result); + } + + return $result; + } + + + /** + * This function retrieves metadata for the current entity based on the hostname/path the request + * was directed to. It will throw an exception if it is unable to locate the metadata. + * + * @param string $set The set we want metadata from. + * + * @return array An associative array with the metadata. + */ + public function getMetaDataCurrent($set) + { + return $this->getMetaData(null, $set); + } + + + /** + * This function locates the current entity id based on the hostname/path combination the user accessed. + * It will throw an exception if it is unable to locate the entity id. + * + * @param string $set The set we look for the entity id in. + * @param string $type Do you want to return the metaindex or the entityID. [entityid|metaindex] + * + * @return string The entity id which is associated with the current hostname/path combination. + * @throws Exception If no default metadata can be found in the set for the current host. + */ + public function getMetaDataCurrentEntityID($set, $type = 'entityid') + { + assert(is_string($set)); + + // first we look for the hostname/path combination + $currenthostwithpath = \SimpleSAML\Utils\HTTP::getSelfHostWithPath(); // sp.example.org/university + + foreach ($this->sources as $source) { + $index = $source->getEntityIdFromHostPath($currenthostwithpath, $set, $type); + if ($index !== null) { + return $index; + } + } + + // then we look for the hostname + $currenthost = \SimpleSAML\Utils\HTTP::getSelfHost(); // sp.example.org + + foreach ($this->sources as $source) { + $index = $source->getEntityIdFromHostPath($currenthost, $set, $type); + if ($index !== null) { + return $index; + } + } + + // then we look for the DEFAULT entry + foreach ($this->sources as $source) { + $entityId = $source->getEntityIdFromHostPath('__DEFAULT__', $set, $type); + if ($entityId !== null) { + return $entityId; + } + } + + // we were unable to find the hostname/path in any metadata source + throw new Exception( + 'Could not find any default metadata entities in set ['.$set.'] for host ['.$currenthost.' : '. + $currenthostwithpath.']' + ); + } + + + /** + * This method will call getPreferredEntityIdFromCIDRhint() on all of the + * sources. + * + * @param string $set Which set of metadata we are looking it up in. + * @param string $ip IP address + * + * @return string The entity id of a entity which have a CIDR hint where the provided + * IP address match. + */ + public function getPreferredEntityIdFromCIDRhint($set, $ip) + { + foreach ($this->sources as $source) { + $entityId = $source->getPreferredEntityIdFromCIDRhint($set, $ip); + if ($entityId !== null) { + return $entityId; + } + } + + return null; + } + + + /** + * This function looks up the metadata for the given entity id in the given set. It will throw an + * exception if it is unable to locate the metadata. + * + * @param string $index The entity id we are looking up. This parameter may be NULL, in which case we look up + * the current entity id based on the current hostname/path. + * @param string $set The set of metadata we are looking up the entity id in. + * + * @return array The metadata array describing the specified entity. + * @throws Exception If metadata for the specified entity is expired. + * @throws SimpleSAML_Error_MetadataNotFound If no metadata for the entity specified can be found. + */ + public function getMetaData($index, $set) + { + assert(is_string($set)); + + if ($index === null) { + $index = $this->getMetaDataCurrentEntityID($set, 'metaindex'); + } + + assert(is_string($index)); + + foreach ($this->sources as $source) { + $metadata = $source->getMetaData($index, $set); + + if ($metadata !== null) { + if (array_key_exists('expire', $metadata)) { + if ($metadata['expire'] < time()) { + throw new Exception( + 'Metadata for the entity ['.$index.'] expired '. + (time() - $metadata['expire']).' seconds ago.' + ); + } + } + + $metadata['metadata-index'] = $index; + $metadata['metadata-set'] = $set; + assert(array_key_exists('entityid', $metadata)); + return $metadata; + } + } + + throw new SimpleSAML_Error_MetadataNotFound($index); + } + + + /** + * Retrieve the metadata as a configuration object. + * + * This function will throw an exception if it is unable to locate the metadata. + * + * @param string $entityId The entity ID we are looking up. + * @param string $set The metadata set we are searching. + * + * @return SimpleSAML_Configuration The configuration object representing the metadata. + * @throws SimpleSAML_Error_MetadataNotFound If no metadata for the entity specified can be found. + */ + public function getMetaDataConfig($entityId, $set) + { + assert(is_string($entityId)); + assert(is_string($set)); + + $metadata = $this->getMetaData($entityId, $set); + return SimpleSAML_Configuration::loadFromArray($metadata, $set.'/'.var_export($entityId, true)); + } + + + /** + * Search for an entity's metadata, given the SHA1 digest of its entity ID. + * + * @param string $sha1 The SHA1 digest of the entity ID. + * @param string $set The metadata set we are searching. + * + * @return null|SimpleSAML_Configuration The metadata corresponding to the entity, or null if the entity cannot be + * found. + */ + public function getMetaDataConfigForSha1($sha1, $set) + { + assert(is_string($sha1)); + assert(is_string($set)); + + $result = array(); + + foreach ($this->sources as $source) { + $srcList = $source->getMetadataSet($set); + + /* $result is the last argument to array_merge because we want the content already + * in $result to have precedence. + */ + $result = array_merge($srcList, $result); + } + foreach ($result as $remote_provider) { + if (sha1($remote_provider['entityid']) == $sha1) { + $remote_provider['metadata-set'] = $set; + + return SimpleSAML_Configuration::loadFromArray( + $remote_provider, + $set.'/'.var_export($remote_provider['entityid'], true) + ); + } + } + + return null; + } +} diff --git a/lib/SimpleSAML/Metadata/MetaDataStorageHandlerFlatFile.php b/lib/SimpleSAML/Metadata/MetaDataStorageHandlerFlatFile.php new file mode 100755 index 0000000..09ce8b2 --- /dev/null +++ b/lib/SimpleSAML/Metadata/MetaDataStorageHandlerFlatFile.php @@ -0,0 +1,144 @@ + + * @package SimpleSAMLphp + */ +class SimpleSAML_Metadata_MetaDataStorageHandlerFlatFile extends SimpleSAML_Metadata_MetaDataStorageSource +{ + + /** + * This is the directory we will load metadata files from. The path will always end + * with a '/'. + * + * @var string + */ + private $directory; + + + /** + * This is an associative array which stores the different metadata sets we have loaded. + * + * @var array + */ + private $cachedMetadata = array(); + + + /** + * This constructor initializes the flatfile metadata storage handler with the + * specified configuration. The configuration is an associative array with the following + * possible elements: + * - 'directory': The directory we should load metadata from. The default directory is + * set in the 'metadatadir' configuration option in 'config.php'. + * + * @param array $config An associative array with the configuration for this handler. + */ + protected function __construct($config) + { + assert(is_array($config)); + + // get the configuration + $globalConfig = SimpleSAML_Configuration::getInstance(); + + // find the path to the directory we should search for metadata in + if (array_key_exists('directory', $config)) { + $this->directory = $config['directory']; + } else { + $this->directory = $globalConfig->getString('metadatadir', 'metadata/'); + } + + /* Resolve this directory relative to the SimpleSAMLphp directory (unless it is + * an absolute path). + */ + $this->directory = $globalConfig->resolvePath($this->directory).'/'; + } + + + /** + * This function loads the given set of metadata from a file our metadata directory. + * This function returns null if it is unable to locate the given set in the metadata directory. + * + * @param string $set The set of metadata we are loading. + * + * @return array An associative array with the metadata, or null if we are unable to load metadata from the given + * file. + * @throws Exception If the metadata set cannot be loaded. + */ + private function load($set) + { + $metadatasetfile = $this->directory.$set.'.php'; + + if (!file_exists($metadatasetfile)) { + return null; + } + + $metadata = array(); + + include($metadatasetfile); + + if (!is_array($metadata)) { + throw new Exception('Could not load metadata set ['.$set.'] from file: '.$metadatasetfile); + } + + return $metadata; + } + + + /** + * This function retrieves the given set of metadata. It will return an empty array if it is + * unable to locate it. + * + * @param string $set The set of metadata we are retrieving. + * + * @return array An associative array with the metadata. Each element in the array is an entity, and the + * key is the entity id. + */ + public function getMetadataSet($set) + { + if (array_key_exists($set, $this->cachedMetadata)) { + return $this->cachedMetadata[$set]; + } + + $metadataSet = $this->load($set); + if ($metadataSet === null) { + $metadataSet = array(); + } + + // add the entity id of an entry to each entry in the metadata + foreach ($metadataSet as $entityId => &$entry) { + if (preg_match('/__DYNAMIC(:[0-9]+)?__/', $entityId)) { + $entry['entityid'] = $this->generateDynamicHostedEntityID($set); + } else { + $entry['entityid'] = $entityId; + } + } + + $this->cachedMetadata[$set] = $metadataSet; + + return $metadataSet; + } + + + private function generateDynamicHostedEntityID($set) + { + // get the configuration + $baseurl = \SimpleSAML\Utils\HTTP::getBaseURL(); + + if ($set === 'saml20-idp-hosted') { + return $baseurl.'saml2/idp/metadata.php'; + } elseif ($set === 'shib13-idp-hosted') { + return $baseurl.'shib13/idp/metadata.php'; + } elseif ($set === 'wsfed-sp-hosted') { + return 'urn:federation:'.\SimpleSAML\Utils\HTTP::getSelfHost(); + } elseif ($set === 'adfs-idp-hosted') { + return 'urn:federation:'.\SimpleSAML\Utils\HTTP::getSelfHost().':idp'; + } else { + throw new Exception('Can not generate dynamic EntityID for metadata of this type: ['.$set.']'); + } + } +} diff --git a/lib/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php b/lib/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php new file mode 100755 index 0000000..8fd0a07 --- /dev/null +++ b/lib/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php @@ -0,0 +1,306 @@ +db = SimpleSAML\Database::getInstance(); + } + + + /** + * This function loads the given set of metadata from a file to a configured database. + * This function returns NULL if it is unable to locate the given set in the metadata directory. + * + * @param string $set The set of metadata we are loading. + * + * @return array $metadata Associative array with the metadata, or NULL if we are unable to load metadata from the + * given file. + * + * @throws Exception If a database error occurs. + * @throws SimpleSAML_Error_Exception If the metadata can be retrieved from the database, but cannot be decoded. + */ + private function load($set) + { + assert(is_string($set)); + + $tableName = $this->getTableName($set); + + if (!in_array($set, $this->supportedSets, true)) { + return null; + } + + $stmt = $this->db->read("SELECT entity_id, entity_data FROM $tableName"); + if ($stmt->execute()) { + $metadata = array(); + + while ($d = $stmt->fetch()) { + $data = json_decode($d['entity_data'], true); + if ($data === null) { + throw new SimpleSAML_Error_Exception("Cannot decode metadata for entity '${d['entity_id']}'"); + } + if (!array_key_exists('entityid', $data)) { + $data['entityid'] = $d['entity_id']; + } + $metadata[$d['entity_id']] = $data; + } + + return $metadata; + } else { + throw new Exception('PDO metadata handler: Database error: '.var_export($this->db->getLastError(), true)); + } + } + + + /** + * Retrieve a list of all available metadata for a given set. + * + * @param string $set The set we are looking for metadata in. + * + * @return array $metadata An associative array with all the metadata for the given set. + */ + public function getMetadataSet($set) + { + assert(is_string($set)); + + if (array_key_exists($set, $this->cachedMetadata)) { + return $this->cachedMetadata[$set]; + } + + $metadataSet = $this->load($set); + if ($metadataSet === null) { + $metadataSet = array(); + } + + foreach ($metadataSet as $entityId => &$entry) { + if (preg_match('/__DYNAMIC(:[0-9]+)?__/', $entityId)) { + $entry['entityid'] = $this->generateDynamicHostedEntityID($set); + } else { + $entry['entityid'] = $entityId; + } + } + + $this->cachedMetadata[$set] = $metadataSet; + return $metadataSet; + } + + /** + * Retrieve a metadata entry. + * + * @param string $entityId The entityId we are looking up. + * @param string $set The set we are looking for metadata in. + * + * @return array An associative array with metadata for the given entity, or NULL if we are unable to + * locate the entity. + */ + public function getMetaData($entityId, $set) + { + assert(is_string($entityId)); + assert(is_string($set)); + + $tableName = $this->getTableName($set); + + if (!in_array($set, $this->supportedSets, true)) { + return null; + } + + $stmt = $this->db->read("SELECT entity_id, entity_data FROM $tableName WHERE entity_id=:entityId", array('entityId' => $entityId)); + if ($stmt->execute()) { + $rowCount = 0; + $data = null; + + while ($d = $stmt->fetch()) { + if (++$rowCount > 1) { + SimpleSAML\Logger::warning("Duplicate match for $entityId in set $set"); + break; + } + $data = json_decode($d['entity_data'], true); + if ($data === null) { + throw new SimpleSAML_Error_Exception("Cannot decode metadata for entity '${d['entity_id']}'"); + } + if (!array_key_exists('entityid', $data)) { + $data['entityid'] = $d['entity_id']; + } + } + return $data; + } else { + throw new Exception('PDO metadata handler: Database error: '.var_export($this->db->getLastError(), true)); + } + } + + private function generateDynamicHostedEntityID($set) + { + assert(is_string($set)); + + // get the configuration + $baseurl = \SimpleSAML\Utils\HTTP::getBaseURL(); + + if ($set === 'saml20-idp-hosted') { + return $baseurl.'saml2/idp/metadata.php'; + } elseif ($set === 'saml20-sp-hosted') { + return $baseurl.'saml2/sp/metadata.php'; + } elseif ($set === 'shib13-idp-hosted') { + return $baseurl.'shib13/idp/metadata.php'; + } elseif ($set === 'shib13-sp-hosted') { + return $baseurl.'shib13/sp/metadata.php'; + } elseif ($set === 'wsfed-sp-hosted') { + return 'urn:federation:'.\SimpleSAML\Utils\HTTP::getSelfHost(); + } elseif ($set === 'adfs-idp-hosted') { + return 'urn:federation:'.\SimpleSAML\Utils\HTTP::getSelfHost().':idp'; + } else { + throw new Exception('Can not generate dynamic EntityID for metadata of this type: ['.$set.']'); + } + } + + + /** + * Add metadata to the configured database + * + * @param string $index Entity ID + * @param string $set The set to add the metadata to + * @param array $entityData Metadata + * + * @return bool True/False if entry was successfully added + */ + public function addEntry($index, $set, $entityData) + { + assert(is_string($index)); + assert(is_string($set)); + assert(is_array($entityData)); + + if (!in_array($set, $this->supportedSets, true)) { + return false; + } + + $tableName = $this->getTableName($set); + + $metadata = $this->db->read( + "SELECT entity_id, entity_data FROM $tableName WHERE entity_id = :entity_id", + array( + 'entity_id' => $index, + ) + ); + + $retrivedEntityIDs = $metadata->fetch(); + + $params = array( + 'entity_id' => $index, + 'entity_data' => json_encode($entityData), + ); + + if ($retrivedEntityIDs !== false && count($retrivedEntityIDs) > 0) { + $rows = $this->db->write( + "UPDATE $tableName SET entity_data = :entity_data WHERE entity_id = :entity_id", + $params + ); + } else { + $rows = $this->db->write( + "INSERT INTO $tableName (entity_id, entity_data) VALUES (:entity_id, :entity_data)", + $params + ); + } + + return $rows === 1; + } + + + /** + * Replace the -'s to an _ in table names for Metadata sets + * since SQL does not allow a - in a table name. + * + * @param string $table Table + * + * @return string Replaced table name + */ + private function getTableName($table) + { + assert(is_string($table)); + + return $this->db->applyPrefix(str_replace("-", "_", $this->tablePrefix.$table)); + } + + + /** + * Initialize the configured database + * + * @return int|false The number of SQL statements successfully executed, false if some error occurred. + */ + public function initDatabase() + { + $stmt = 0; + $fine = true; + foreach ($this->supportedSets as $set) { + $tableName = $this->getTableName($set); + $rows = $this->db->write( + "CREATE TABLE IF NOT EXISTS $tableName (entity_id VARCHAR(255) PRIMARY KEY NOT NULL, entity_data ". + "TEXT NOT NULL)" + ); + if ($rows === 0) { + $fine = false; + } else { + $stmt += $rows; + } + } + if (!$fine) { + return false; + } + return $stmt; + } +} diff --git a/lib/SimpleSAML/Metadata/MetaDataStorageHandlerSerialize.php b/lib/SimpleSAML/Metadata/MetaDataStorageHandlerSerialize.php new file mode 100755 index 0000000..6867911 --- /dev/null +++ b/lib/SimpleSAML/Metadata/MetaDataStorageHandlerSerialize.php @@ -0,0 +1,286 @@ +directory = $cfgHelp->getString('directory'); + + /* Resolve this directory relative to the SimpleSAMLphp directory (unless it is + * an absolute path). + */ + $this->directory = $globalConfig->resolvePath($this->directory); + } + + + /** + * Helper function for retrieving the path of a metadata file. + * + * @param string $entityId The entity ID. + * @param string $set The metadata set. + * + * @return string The path to the metadata file. + */ + private function getMetadataPath($entityId, $set) + { + assert(is_string($entityId)); + assert(is_string($set)); + + return $this->directory.'/'.rawurlencode($set).'/'.rawurlencode($entityId).self::EXTENSION; + } + + + /** + * Retrieve a list of all available metadata sets. + * + * @return array An array with the available sets. + */ + public function getMetadataSets() + { + $ret = array(); + + $dh = @opendir($this->directory); + if ($dh === false) { + SimpleSAML\Logger::warning( + 'Serialize metadata handler: Unable to open directory: '.var_export($this->directory, true) + ); + return $ret; + } + + while (($entry = readdir($dh)) !== false) { + if ($entry[0] === '.') { + // skip '..', '.' and hidden files + continue; + } + + $path = $this->directory.'/'.$entry; + + if (!is_dir($path)) { + SimpleSAML\Logger::warning( + 'Serialize metadata handler: Metadata directory contained a file where only directories should '. + 'exist: '.var_export($path, true) + ); + continue; + } + + $ret[] = rawurldecode($entry); + } + + closedir($dh); + + return $ret; + } + + + /** + * Retrieve a list of all available metadata for a given set. + * + * @param string $set The set we are looking for metadata in. + * + * @return array An associative array with all the metadata for the given set. + */ + public function getMetadataSet($set) + { + assert(is_string($set)); + + $ret = array(); + + $dir = $this->directory.'/'.rawurlencode($set); + if (!is_dir($dir)) { + // probably some code asked for a metadata set which wasn't available + return $ret; + } + + $dh = @opendir($dir); + if ($dh === false) { + SimpleSAML\Logger::warning('Serialize metadata handler: Unable to open directory: '.var_export($dir, true)); + return $ret; + } + + $extLen = strlen(self::EXTENSION); + + while (($file = readdir($dh)) !== false) { + if (strlen($file) <= $extLen) { + continue; + } + + if (substr($file, -$extLen) !== self::EXTENSION) { + continue; + } + + $entityId = substr($file, 0, -$extLen); + $entityId = rawurldecode($entityId); + + $md = $this->getMetaData($entityId, $set); + if ($md !== null) { + $ret[$entityId] = $md; + } + } + + closedir($dh); + + return $ret; + } + + + /** + * Retrieve a metadata entry. + * + * @param string $entityId The entityId we are looking up. + * @param string $set The set we are looking for metadata in. + * + * @return array An associative array with metadata for the given entity, or NULL if we are unable to + * locate the entity. + */ + public function getMetaData($entityId, $set) + { + assert(is_string($entityId)); + assert(is_string($set)); + + $filePath = $this->getMetadataPath($entityId, $set); + + if (!file_exists($filePath)) { + return null; + } + + $data = @file_get_contents($filePath); + if ($data === false) { + $error = error_get_last(); + SimpleSAML\Logger::warning( + 'Error reading file '.$filePath.': '.$error['message'] + ); + return null; + } + + $data = @unserialize($data); + if ($data === false) { + SimpleSAML\Logger::warning('Error unserializing file: '.$filePath); + return null; + } + + if (!array_key_exists('entityid', $data)) { + $data['entityid'] = $entityId; + } + + return $data; + } + + + /** + * Save a metadata entry. + * + * @param string $entityId The entityId of the metadata entry. + * @param string $set The metadata set this metadata entry belongs to. + * @param array $metadata The metadata. + * + * @return boolean True if successfully saved, false otherwise. + */ + public function saveMetadata($entityId, $set, $metadata) + { + assert(is_string($entityId)); + assert(is_string($set)); + assert(is_array($metadata)); + + $filePath = $this->getMetadataPath($entityId, $set); + $newPath = $filePath.'.new'; + + $dir = dirname($filePath); + if (!is_dir($dir)) { + SimpleSAML\Logger::info('Creating directory: '.$dir); + $res = @mkdir($dir, 0777, true); + if ($res === false) { + $error = error_get_last(); + SimpleSAML\Logger::error('Failed to create directory '.$dir.': '.$error['message']); + return false; + } + } + + $data = serialize($metadata); + + SimpleSAML\Logger::debug('Writing: '.$newPath); + + $res = file_put_contents($newPath, $data); + if ($res === false) { + $error = error_get_last(); + SimpleSAML\Logger::error('Error saving file '.$newPath.': '.$error['message']); + return false; + } + + $res = rename($newPath, $filePath); + if ($res === false) { + $error = error_get_last(); + SimpleSAML\Logger::error('Error renaming '.$newPath.' to '.$filePath.': '.$error['message']); + return false; + } + + return true; + } + + + /** + * Delete a metadata entry. + * + * @param string $entityId The entityId of the metadata entry. + * @param string $set The metadata set this metadata entry belongs to. + */ + public function deleteMetadata($entityId, $set) + { + assert(is_string($entityId)); + assert(is_string($set)); + + $filePath = $this->getMetadataPath($entityId, $set); + + if (!file_exists($filePath)) { + SimpleSAML\Logger::warning( + 'Attempted to erase nonexistent metadata entry '. + var_export($entityId, true).' in set '.var_export($set, true).'.' + ); + return; + } + + $res = unlink($filePath); + if ($res === false) { + $error = error_get_last(); + SimpleSAML\Logger::error( + 'Failed to delete file '.$filePath. + ': '.$error['message'] + ); + } + } +} diff --git a/lib/SimpleSAML/Metadata/MetaDataStorageHandlerXML.php b/lib/SimpleSAML/Metadata/MetaDataStorageHandlerXML.php new file mode 100755 index 0000000..7e2b505 --- /dev/null +++ b/lib/SimpleSAML/Metadata/MetaDataStorageHandlerXML.php @@ -0,0 +1,116 @@ +resolvePath($config['file']); + } elseif (array_key_exists('url', $config)) { + $src = $config['url']; + } elseif (array_key_exists('xml', $config)) { + $srcXml = $config['xml']; + } else { + throw new Exception("Missing one of 'file', 'url' and 'xml' in XML metadata source configuration."); + } + + + $SP1x = array(); + $IdP1x = array(); + $SP20 = array(); + $IdP20 = array(); + $AAD = array(); + + if(isset($src)) { + $entities = SimpleSAML_Metadata_SAMLParser::parseDescriptorsFile($src); + } elseif(isset($srcXml)) { + $entities = SimpleSAML_Metadata_SAMLParser::parseDescriptorsString($srcXml); + } else { + throw new Exception("Neither source file path/URI nor string data provided"); + } + foreach ($entities as $entityId => $entity) { + $md = $entity->getMetadata1xSP(); + if ($md !== null) { + $SP1x[$entityId] = $md; + } + + $md = $entity->getMetadata1xIdP(); + if ($md !== null) { + $IdP1x[$entityId] = $md; + } + + $md = $entity->getMetadata20SP(); + if ($md !== null) { + $SP20[$entityId] = $md; + } + + $md = $entity->getMetadata20IdP(); + if ($md !== null) { + $IdP20[$entityId] = $md; + } + + $md = $entity->getAttributeAuthorities(); + if (count($md) > 0) { + $AAD[$entityId] = $md[0]; + } + } + + $this->metadata = array( + 'shib13-sp-remote' => $SP1x, + 'shib13-idp-remote' => $IdP1x, + 'saml20-sp-remote' => $SP20, + 'saml20-idp-remote' => $IdP20, + 'attributeauthority-remote' => $AAD, + ); + } + + + /** + * This function returns an associative array with metadata for all entities in the given set. The + * key of the array is the entity id. + * + * @param string $set The set we want to list metadata for. + * + * @return array An associative array with all entities in the given set. + */ + public function getMetadataSet($set) + { + if (array_key_exists($set, $this->metadata)) { + return $this->metadata[$set]; + } + + // we don't have this metadata set + return array(); + } +} diff --git a/lib/SimpleSAML/Metadata/MetaDataStorageSource.php b/lib/SimpleSAML/Metadata/MetaDataStorageSource.php new file mode 100755 index 0000000..b4e39f2 --- /dev/null +++ b/lib/SimpleSAML/Metadata/MetaDataStorageSource.php @@ -0,0 +1,275 @@ +getMetadataSet($set); + if ($metadataSet === null) { + // this metadata source does not have this metadata set + return null; + } + + foreach ($metadataSet as $index => $entry) { + if (!array_key_exists('host', $entry)) { + continue; + } + + if ($hostPath === $entry['host']) { + if ($type === 'entityid') { + return $entry['entityid']; + } else { + return $index; + } + } + } + + // no entries matched, we should return null + return null; + } + + + /** + * This function will go through all the metadata, and check the DiscoHints->IPHint + * parameter, which defines a network space (ip range) for each remote entry. + * This function returns the entityID for any of the entities that have an + * IP range which the IP falls within. + * + * @param string $set Which set of metadata we are looking it up in. + * @param string $ip IP address + * @param string $type Do you want to return the metaindex or the entityID. [entityid|metaindex] + * + * @return string The entity id of a entity which have a CIDR hint where the provided + * IP address match. + */ + public function getPreferredEntityIdFromCIDRhint($set, $ip, $type = 'entityid') + { + + $metadataSet = $this->getMetadataSet($set); + + foreach ($metadataSet as $index => $entry) { + $cidrHints = array(); + + // support hint.cidr for idp discovery + if (array_key_exists('hint.cidr', $entry) && is_array($entry['hint.cidr'])) { + $cidrHints = $entry['hint.cidr']; + } + + // support discohints in idp metadata for idp discovery + if (array_key_exists('DiscoHints', $entry) + && array_key_exists('IPHint', $entry['DiscoHints']) + && is_array($entry['DiscoHints']['IPHint'])) { + // merge with hints derived from discohints, but prioritize hint.cidr in case it is used + $cidrHints = array_merge($entry['DiscoHints']['IPHint'], $cidrHints); + } + + if (empty($cidrHints)) { + continue; + } + + foreach ($cidrHints as $hint_entry) { + if (SimpleSAML\Utils\Net::ipCIDRcheck($hint_entry, $ip)) { + if ($type === 'entityid') { + return $entry['entityid']; + } else { + return $index; + } + } + } + } + + // no entries matched, we should return null + return null; + } + + + /* + * + */ + private function lookupIndexFromEntityId($entityId, $set) + { + assert(is_string($entityId)); + assert(isset($set)); + + $metadataSet = $this->getMetadataSet($set); + + // check for hostname + $currenthost = \SimpleSAML\Utils\HTTP::getSelfHost(); // sp.example.org + + foreach ($metadataSet as $index => $entry) { + if ($index === $entityId) { + return $index; + } + if ($entry['entityid'] === $entityId) { + if ($entry['host'] === '__DEFAULT__' || $entry['host'] === $currenthost) { + return $index; + } + } + } + + return null; + } + + + /** + * This function retrieves metadata for the given entity id in the given set of metadata. + * It will return NULL if it is unable to locate the metadata. + * + * This class implements this function using the getMetadataSet-function. A subclass should + * override this function if it doesn't implement the getMetadataSet function, or if the + * implementation of getMetadataSet is slow. + * + * @param string $index The entityId or metaindex we are looking up. + * @param string $set The set we are looking for metadata in. + * + * @return array An associative array with metadata for the given entity, or NULL if we are unable to + * locate the entity. + */ + public function getMetaData($index, $set) + { + + assert(is_string($index)); + assert(isset($set)); + + $metadataSet = $this->getMetadataSet($set); + + if (array_key_exists($index, $metadataSet)) { + return $metadataSet[$index]; + } + + $indexlookup = $this->lookupIndexFromEntityId($index, $set); + if (isset($indexlookup) && array_key_exists($indexlookup, $metadataSet)) { + return $metadataSet[$indexlookup]; + } + + return null; + } +} diff --git a/lib/SimpleSAML/Metadata/SAMLBuilder.php b/lib/SimpleSAML/Metadata/SAMLBuilder.php new file mode 100755 index 0000000..ba584c5 --- /dev/null +++ b/lib/SimpleSAML/Metadata/SAMLBuilder.php @@ -0,0 +1,777 @@ +maxCache = $maxCache; + $this->maxDuration = $maxDuration; + + $this->entityDescriptor = new \SAML2\XML\md\EntityDescriptor(); + $this->entityDescriptor->entityID = $entityId; + } + + + private function setExpiration($metadata) + { + if (array_key_exists('expire', $metadata)) { + if ($metadata['expire'] - time() < $this->maxDuration) { + $this->maxDuration = $metadata['expire'] - time(); + } + } + + if ($this->maxCache !== null) { + $this->entityDescriptor->cacheDuration = 'PT'.$this->maxCache.'S'; + } + if ($this->maxDuration !== null) { + $this->entityDescriptor->validUntil = time() + $this->maxDuration; + } + } + + + /** + * Retrieve the EntityDescriptor element which is generated for this entity. + * + * @return DOMElement The EntityDescriptor element of this entity. + */ + public function getEntityDescriptor() + { + $xml = $this->entityDescriptor->toXML(); + $xml->ownerDocument->appendChild($xml); + + return $xml; + } + + + /** + * Retrieve the EntityDescriptor as text. + * + * This function serializes this EntityDescriptor, and returns it as text. + * + * @param bool $formatted Whether the returned EntityDescriptor should be formatted first. + * + * @return string The serialized EntityDescriptor. + */ + public function getEntityDescriptorText($formatted = true) + { + assert(is_bool($formatted)); + + $xml = $this->getEntityDescriptor(); + if ($formatted) { + SimpleSAML\Utils\XML::formatDOMElement($xml); + } + + return $xml->ownerDocument->saveXML(); + } + + + /** + * Add a SecurityTokenServiceType for ADFS metadata. + * + * @param array $metadata The metadata with the information about the SecurityTokenServiceType. + */ + public function addSecurityTokenServiceType($metadata) + { + assert(is_array($metadata)); + assert(isset($metadata['entityid'])); + assert(isset($metadata['metadata-set'])); + + $metadata = SimpleSAML_Configuration::loadFromArray($metadata, $metadata['entityid']); + $defaultEndpoint = $metadata->getDefaultEndpoint('SingleSignOnService'); + $e = new sspmod_adfs_SAML2_XML_fed_SecurityTokenServiceType(); + $e->Location = $defaultEndpoint['Location']; + + $this->addCertificate($e, $metadata); + + $this->entityDescriptor->RoleDescriptor[] = $e; + } + + + /** + * Add extensions to the metadata. + * + * @param SimpleSAML_Configuration $metadata The metadata to get extensions from. + * @param \SAML2\XML\md\RoleDescriptor $e Reference to the element where the Extensions element should be included. + */ + private function addExtensions(SimpleSAML_Configuration $metadata, \SAML2\XML\md\RoleDescriptor $e) + { + if ($metadata->hasValue('tags')) { + $a = new \SAML2\XML\saml\Attribute(); + $a->Name = 'tags'; + foreach ($metadata->getArray('tags') as $tag) { + $a->AttributeValue[] = new \SAML2\XML\saml\AttributeValue($tag); + } + $e->Extensions[] = $a; + } + + if ($metadata->hasValue('hint.cidr')) { + $a = new \SAML2\XML\saml\Attribute(); + $a->Name = 'hint.cidr'; + foreach ($metadata->getArray('hint.cidr') as $hint) { + $a->AttributeValue[] = new \SAML2\XML\saml\AttributeValue($hint); + } + $e->Extensions[] = $a; + } + + if ($metadata->hasValue('scope')) { + foreach ($metadata->getArray('scope') as $scopetext) { + $s = new \SAML2\XML\shibmd\Scope(); + $s->scope = $scopetext; + // Check whether $ ^ ( ) * | \ are in a scope -> assume regex. + if (1 === preg_match('/[\$\^\)\(\*\|\\\\]/', $scopetext)) { + $s->regexp = true; + } else { + $s->regexp = false; + } + $e->Extensions[] = $s; + } + } + + if ($metadata->hasValue('EntityAttributes')) { + $ea = new \SAML2\XML\mdattr\EntityAttributes(); + foreach ($metadata->getArray('EntityAttributes') as $attributeName => $attributeValues) { + $a = new \SAML2\XML\saml\Attribute(); + $a->Name = $attributeName; + $a->NameFormat = 'urn:oasis:names:tc:SAML:2.0:attrname-format:uri'; + + // Attribute names that is not URI is prefixed as this: '{nameformat}name' + if (preg_match('/^\{(.*?)\}(.*)$/', $attributeName, $matches)) { + $a->Name = $matches[2]; + $nameFormat = $matches[1]; + if ($nameFormat !== \SAML2\Constants::NAMEFORMAT_UNSPECIFIED) { + $a->NameFormat = $nameFormat; + } + } + foreach ($attributeValues as $attributeValue) { + $a->AttributeValue[] = new \SAML2\XML\saml\AttributeValue($attributeValue); + } + $ea->children[] = $a; + } + $this->entityDescriptor->Extensions[] = $ea; + } + + if ($metadata->hasValue('RegistrationInfo')) { + $ri = new \SAML2\XML\mdrpi\RegistrationInfo(); + foreach ($metadata->getArray('RegistrationInfo') as $riName => $riValues) { + switch ($riName) { + case 'authority': + $ri->registrationAuthority = $riValues; + break; + case 'instant': + $ri->registrationInstant = \SAML2\Utils::xsDateTimeToTimestamp($riValues); + break; + case 'policies': + $ri->RegistrationPolicy = $riValues; + break; + } + } + $this->entityDescriptor->Extensions[] = $ri; + } + + if ($metadata->hasValue('UIInfo')) { + $ui = new \SAML2\XML\mdui\UIInfo(); + foreach ($metadata->getArray('UIInfo') as $uiName => $uiValues) { + switch ($uiName) { + case 'DisplayName': + $ui->DisplayName = $uiValues; + break; + case 'Description': + $ui->Description = $uiValues; + break; + case 'InformationURL': + $ui->InformationURL = $uiValues; + break; + case 'PrivacyStatementURL': + $ui->PrivacyStatementURL = $uiValues; + break; + case 'Keywords': + foreach ($uiValues as $lang => $keywords) { + $uiItem = new \SAML2\XML\mdui\Keywords(); + $uiItem->lang = $lang; + $uiItem->Keywords = $keywords; + $ui->Keywords[] = $uiItem; + } + break; + case 'Logo': + foreach ($uiValues as $logo) { + $uiItem = new \SAML2\XML\mdui\Logo(); + $uiItem->url = $logo['url']; + $uiItem->width = $logo['width']; + $uiItem->height = $logo['height']; + if (isset($logo['lang'])) { + $uiItem->lang = $logo['lang']; + } + $ui->Logo[] = $uiItem; + } + break; + } + } + $e->Extensions[] = $ui; + } + + if ($metadata->hasValue('DiscoHints')) { + $dh = new \SAML2\XML\mdui\DiscoHints(); + foreach ($metadata->getArray('DiscoHints') as $dhName => $dhValues) { + switch ($dhName) { + case 'IPHint': + $dh->IPHint = $dhValues; + break; + case 'DomainHint': + $dh->DomainHint = $dhValues; + break; + case 'GeolocationHint': + $dh->GeolocationHint = $dhValues; + break; + } + } + $e->Extensions[] = $dh; + } + } + + + /** + * Add an Organization element based on data passed as parameters + * + * @param array $orgName An array with the localized OrganizationName. + * @param array $orgDisplayName An array with the localized OrganizationDisplayName. + * @param array $orgURL An array with the localized OrganizationURL. + */ + public function addOrganization(array $orgName, array $orgDisplayName, array $orgURL) + { + $org = new \SAML2\XML\md\Organization(); + + $org->OrganizationName = $orgName; + $org->OrganizationDisplayName = $orgDisplayName; + $org->OrganizationURL = $orgURL; + + $this->entityDescriptor->Organization = $org; + } + + + /** + * Add an Organization element based on metadata array. + * + * @param array $metadata The metadata we should extract the organization information from. + */ + public function addOrganizationInfo(array $metadata) + { + if (empty($metadata['OrganizationName']) || + empty($metadata['OrganizationDisplayName']) || + empty($metadata['OrganizationURL']) + ) { + // empty or incomplete organization information + return; + } + + $orgName = SimpleSAML\Utils\Arrays::arrayize($metadata['OrganizationName'], 'en'); + $orgDisplayName = SimpleSAML\Utils\Arrays::arrayize($metadata['OrganizationDisplayName'], 'en'); + $orgURL = SimpleSAML\Utils\Arrays::arrayize($metadata['OrganizationURL'], 'en'); + + $this->addOrganization($orgName, $orgDisplayName, $orgURL); + } + + + /** + * Add a list of endpoints to metadata. + * + * @param array $endpoints The endpoints. + * @param bool $indexed Whether the endpoints should be indexed. + * + * @return array An array of endpoint objects, either \SAML2\XML\md\EndpointType or \SAML2\XML\md\IndexedEndpointType. + */ + private static function createEndpoints(array $endpoints, $indexed) + { + assert(is_bool($indexed)); + + $ret = array(); + + foreach ($endpoints as &$ep) { + if ($indexed) { + $t = new \SAML2\XML\md\IndexedEndpointType(); + } else { + $t = new \SAML2\XML\md\EndpointType(); + } + + $t->Binding = $ep['Binding']; + $t->Location = $ep['Location']; + if (isset($ep['ResponseLocation'])) { + $t->ResponseLocation = $ep['ResponseLocation']; + } + if (isset($ep['hoksso:ProtocolBinding'])) { + $t->setAttributeNS( + \SAML2\Constants::NS_HOK, + 'hoksso:ProtocolBinding', + \SAML2\Constants::BINDING_HTTP_REDIRECT + ); + } + + if ($indexed) { + if (!isset($ep['index'])) { + // Find the maximum index + $maxIndex = -1; + foreach ($endpoints as $ep) { + if (!isset($ep['index'])) { + continue; + } + + if ($ep['index'] > $maxIndex) { + $maxIndex = $ep['index']; + } + } + + $ep['index'] = $maxIndex + 1; + } + + $t->index = $ep['index']; + } + + $ret[] = $t; + } + + return $ret; + } + + + /** + * Add an AttributeConsumingService element to the metadata. + * + * @param \SAML2\XML\md\SPSSODescriptor $spDesc The SPSSODescriptor element. + * @param SimpleSAML_Configuration $metadata The metadata. + */ + private function addAttributeConsumingService( + \SAML2\XML\md\SPSSODescriptor $spDesc, + SimpleSAML_Configuration $metadata + ) { + $attributes = $metadata->getArray('attributes', array()); + $name = $metadata->getLocalizedString('name', null); + + if ($name === null || count($attributes) == 0) { + // we cannot add an AttributeConsumingService without name and attributes + return; + } + + $attributesrequired = $metadata->getArray('attributes.required', array()); + + /* + * Add an AttributeConsumingService element with information as name and description and list + * of requested attributes + */ + $attributeconsumer = new \SAML2\XML\md\AttributeConsumingService(); + + $attributeconsumer->index = $metadata->getInteger('attributes.index', 0); + + if ($metadata->hasValue('attributes.isDefault')) { + $attributeconsumer->isDefault = $metadata->getBoolean('attributes.isDefault', false); + } + + $attributeconsumer->ServiceName = $name; + $attributeconsumer->ServiceDescription = $metadata->getLocalizedString('description', array()); + + $nameFormat = $metadata->getString('attributes.NameFormat', \SAML2\Constants::NAMEFORMAT_UNSPECIFIED); + foreach ($attributes as $friendlyName => $attribute) { + $t = new \SAML2\XML\md\RequestedAttribute(); + $t->Name = $attribute; + if (!is_int($friendlyName)) { + $t->FriendlyName = $friendlyName; + } + if ($nameFormat !== \SAML2\Constants::NAMEFORMAT_UNSPECIFIED) { + $t->NameFormat = $nameFormat; + } + if (in_array($attribute, $attributesrequired, true)) { + $t->isRequired = true; + } + $attributeconsumer->RequestedAttribute[] = $t; + } + + $spDesc->AttributeConsumingService[] = $attributeconsumer; + } + + + /** + * Add a specific type of metadata to an entity. + * + * @param string $set The metadata set this metadata comes from. + * @param array $metadata The metadata. + */ + public function addMetadata($set, $metadata) + { + assert(is_string($set)); + assert(is_array($metadata)); + + $this->setExpiration($metadata); + + switch ($set) { + case 'saml20-sp-remote': + $this->addMetadataSP20($metadata); + break; + case 'saml20-idp-remote': + $this->addMetadataIdP20($metadata); + break; + case 'shib13-sp-remote': + $this->addMetadataSP11($metadata); + break; + case 'shib13-idp-remote': + $this->addMetadataIdP11($metadata); + break; + case 'attributeauthority-remote': + $this->addAttributeAuthority($metadata); + break; + default: + SimpleSAML\Logger::warning('Unable to generate metadata for unknown type \''.$set.'\'.'); + } + } + + + /** + * Add SAML 2.0 SP metadata. + * + * @param array $metadata The metadata. + * @param array $protocols The protocols supported. Defaults to \SAML2\Constants::NS_SAMLP. + */ + public function addMetadataSP20($metadata, $protocols = array(\SAML2\Constants::NS_SAMLP)) + { + assert(is_array($metadata)); + assert(is_array($protocols)); + assert(isset($metadata['entityid'])); + assert(isset($metadata['metadata-set'])); + + $metadata = SimpleSAML_Configuration::loadFromArray($metadata, $metadata['entityid']); + + $e = new \SAML2\XML\md\SPSSODescriptor(); + $e->protocolSupportEnumeration = $protocols; + + if ($metadata->hasValue('saml20.sign.assertion')) { + $e->WantAssertionsSigned = $metadata->getBoolean('saml20.sign.assertion'); + } + + if ($metadata->hasValue('redirect.validate')) { + $e->AuthnRequestsSigned = $metadata->getBoolean('redirect.validate'); + } elseif ($metadata->hasValue('validate.authnrequest')) { + $e->AuthnRequestsSigned = $metadata->getBoolean('validate.authnrequest'); + } + + $this->addExtensions($metadata, $e); + + $this->addCertificate($e, $metadata); + + $e->SingleLogoutService = self::createEndpoints($metadata->getEndpoints('SingleLogoutService'), false); + + $e->NameIDFormat = $metadata->getArrayizeString('NameIDFormat', array()); + + $endpoints = $metadata->getEndpoints('AssertionConsumerService'); + foreach ($metadata->getArrayizeString('AssertionConsumerService.artifact', array()) as $acs) { + $endpoints[] = array( + 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact', + 'Location' => $acs, + ); + } + $e->AssertionConsumerService = self::createEndpoints($endpoints, true); + + $this->addAttributeConsumingService($e, $metadata); + + $this->entityDescriptor->RoleDescriptor[] = $e; + + foreach ($metadata->getArray('contacts', array()) as $contact) { + if (array_key_exists('contactType', $contact) && array_key_exists('emailAddress', $contact)) { + $this->addContact($contact['contactType'], \SimpleSAML\Utils\Config\Metadata::getContact($contact)); + } + } + } + + + /** + * Add metadata of a SAML 2.0 identity provider. + * + * @param array $metadata The metadata. + */ + public function addMetadataIdP20($metadata) + { + assert(is_array($metadata)); + assert(isset($metadata['entityid'])); + assert(isset($metadata['metadata-set'])); + + $metadata = SimpleSAML_Configuration::loadFromArray($metadata, $metadata['entityid']); + + $e = new \SAML2\XML\md\IDPSSODescriptor(); + $e->protocolSupportEnumeration[] = 'urn:oasis:names:tc:SAML:2.0:protocol'; + + if ($metadata->hasValue('sign.authnrequest')) { + $e->WantAuthnRequestsSigned = $metadata->getBoolean('sign.authnrequest'); + } elseif ($metadata->hasValue('redirect.sign')) { + $e->WantAuthnRequestsSigned = $metadata->getBoolean('redirect.sign'); + } + + $this->addExtensions($metadata, $e); + + $this->addCertificate($e, $metadata); + + if ($metadata->hasValue('ArtifactResolutionService')) { + $e->ArtifactResolutionService = self::createEndpoints( + $metadata->getEndpoints('ArtifactResolutionService'), + true + ); + } + + $e->SingleLogoutService = self::createEndpoints($metadata->getEndpoints('SingleLogoutService'), false); + + $e->NameIDFormat = $metadata->getArrayizeString('NameIDFormat', array()); + + $e->SingleSignOnService = self::createEndpoints($metadata->getEndpoints('SingleSignOnService'), false); + + $this->entityDescriptor->RoleDescriptor[] = $e; + + foreach ($metadata->getArray('contacts', array()) as $contact) { + if (array_key_exists('contactType', $contact) && array_key_exists('emailAddress', $contact)) { + $this->addContact($contact['contactType'], \SimpleSAML\Utils\Config\Metadata::getContact($contact)); + } + } + } + + + /** + * Add metadata of a SAML 1.1 service provider. + * + * @param array $metadata The metadata. + */ + public function addMetadataSP11($metadata) + { + assert(is_array($metadata)); + assert(isset($metadata['entityid'])); + assert(isset($metadata['metadata-set'])); + + $metadata = SimpleSAML_Configuration::loadFromArray($metadata, $metadata['entityid']); + + $e = new \SAML2\XML\md\SPSSODescriptor(); + $e->protocolSupportEnumeration[] = 'urn:oasis:names:tc:SAML:1.1:protocol'; + + $this->addCertificate($e, $metadata); + + $e->NameIDFormat = $metadata->getArrayizeString('NameIDFormat', array()); + + $endpoints = $metadata->getEndpoints('AssertionConsumerService'); + foreach ($metadata->getArrayizeString('AssertionConsumerService.artifact', array()) as $acs) { + $endpoints[] = array( + 'Binding' => 'urn:oasis:names:tc:SAML:1.0:profiles:artifact-01', + 'Location' => $acs, + ); + } + $e->AssertionConsumerService = self::createEndpoints($endpoints, true); + + $this->addAttributeConsumingService($e, $metadata); + + $this->entityDescriptor->RoleDescriptor[] = $e; + } + + + /** + * Add metadata of a SAML 1.1 identity provider. + * + * @param array $metadata The metadata. + */ + public function addMetadataIdP11($metadata) + { + assert(is_array($metadata)); + assert(isset($metadata['entityid'])); + assert(isset($metadata['metadata-set'])); + + $metadata = SimpleSAML_Configuration::loadFromArray($metadata, $metadata['entityid']); + + $e = new \SAML2\XML\md\IDPSSODescriptor(); + $e->protocolSupportEnumeration[] = 'urn:oasis:names:tc:SAML:1.1:protocol'; + $e->protocolSupportEnumeration[] = 'urn:mace:shibboleth:1.0'; + + $this->addCertificate($e, $metadata); + + $e->NameIDFormat = $metadata->getArrayizeString('NameIDFormat', array()); + + $e->SingleSignOnService = self::createEndpoints($metadata->getEndpoints('SingleSignOnService'), false); + + $this->entityDescriptor->RoleDescriptor[] = $e; + } + + + /** + * Add metadata of a SAML attribute authority. + * + * @param array $metadata The AttributeAuthorityDescriptor, in the format returned by + * SimpleSAML_Metadata_SAMLParser. + */ + public function addAttributeAuthority(array $metadata) + { + assert(is_array($metadata)); + assert(isset($metadata['entityid'])); + assert(isset($metadata['metadata-set'])); + + $metadata = SimpleSAML_Configuration::loadFromArray($metadata, $metadata['entityid']); + + $e = new \SAML2\XML\md\AttributeAuthorityDescriptor(); + $e->protocolSupportEnumeration = $metadata->getArray('protocols', array(\SAML2\Constants::NS_SAMLP)); + + $this->addExtensions($metadata, $e); + $this->addCertificate($e, $metadata); + + $e->AttributeService = self::createEndpoints($metadata->getEndpoints('AttributeService'), false); + $e->AssertionIDRequestService = self::createEndpoints( + $metadata->getEndpoints('AssertionIDRequestService'), + false + ); + + $e->NameIDFormat = $metadata->getArrayizeString('NameIDFormat', array()); + + $this->entityDescriptor->RoleDescriptor[] = $e; + } + + + /** + * Add contact information. + * + * Accepts a contact type, and a contact array that must be previously sanitized. + * + * WARNING: This function will change its signature and no longer parse a 'name' element. + * + * @param string $type The type of contact. Deprecated. + * @param array $details The details about the contact. + * + * @todo Change the signature to remove $type. + * @todo Remove the capability to pass a name and parse it inside the method. + */ + public function addContact($type, $details) + { + assert(is_string($type)); + assert(is_array($details)); + assert(in_array($type, array('technical', 'support', 'administrative', 'billing', 'other'), true)); + + // TODO: remove this check as soon as getContact() is called always before calling this function + $details = \SimpleSAML\Utils\Config\Metadata::getContact($details); + + $e = new \SAML2\XML\md\ContactPerson(); + $e->contactType = $type; + + if (!empty($details['attributes'])) { + $e->ContactPersonAttributes = $details['attributes']; + } + + if (isset($details['company'])) { + $e->Company = $details['company']; + } + if (isset($details['givenName'])) { + $e->GivenName = $details['givenName']; + } + if (isset($details['surName'])) { + $e->SurName = $details['surName']; + } + + if (isset($details['emailAddress'])) { + $eas = $details['emailAddress']; + if (!is_array($eas)) { + $eas = array($eas); + } + foreach ($eas as $ea) { + $e->EmailAddress[] = $ea; + } + } + + if (isset($details['telephoneNumber'])) { + $tlfNrs = $details['telephoneNumber']; + if (!is_array($tlfNrs)) { + $tlfNrs = array($tlfNrs); + } + foreach ($tlfNrs as $tlfNr) { + $e->TelephoneNumber[] = $tlfNr; + } + } + + $this->entityDescriptor->ContactPerson[] = $e; + } + + + /** + * Add a KeyDescriptor with an X509 certificate. + * + * @param \SAML2\XML\md\RoleDescriptor $rd The RoleDescriptor the certificate should be added to. + * @param string $use The value of the 'use' attribute. + * @param string $x509data The certificate data. + */ + private function addX509KeyDescriptor(\SAML2\XML\md\RoleDescriptor $rd, $use, $x509data) + { + assert(in_array($use, array('encryption', 'signing'), true)); + assert(is_string($x509data)); + + $keyDescriptor = \SAML2\Utils::createKeyDescriptor($x509data); + $keyDescriptor->use = $use; + $rd->KeyDescriptor[] = $keyDescriptor; + } + + + /** + * Add a certificate. + * + * Helper function for adding a certificate to the metadata. + * + * @param \SAML2\XML\md\RoleDescriptor $rd The RoleDescriptor the certificate should be added to. + * @param SimpleSAML_Configuration $metadata The metadata of the entity. + */ + private function addCertificate(\SAML2\XML\md\RoleDescriptor $rd, SimpleSAML_Configuration $metadata) + { + $keys = $metadata->getPublicKeys(); + foreach ($keys as $key) { + if ($key['type'] !== 'X509Certificate') { + continue; + } + if (!isset($key['signing']) || $key['signing'] === true) { + $this->addX509KeyDescriptor($rd, 'signing', $key['X509Certificate']); + } + if (!isset($key['encryption']) || $key['encryption'] === true) { + $this->addX509KeyDescriptor($rd, 'encryption', $key['X509Certificate']); + } + } + + if ($metadata->hasValue('https.certData')) { + $this->addX509KeyDescriptor($rd, 'signing', $metadata->getString('https.certData')); + } + } +} diff --git a/lib/SimpleSAML/Metadata/SAMLParser.php b/lib/SimpleSAML/Metadata/SAMLParser.php new file mode 100755 index 0000000..28c7f78 --- /dev/null +++ b/lib/SimpleSAML/Metadata/SAMLParser.php @@ -0,0 +1,1478 @@ +spDescriptors = array(); + $this->idpDescriptors = array(); + + $e = $entityElement->toXML(); + $e = $e->ownerDocument->saveXML($e); + $this->entityDescriptor = base64_encode($e); + $this->entityId = $entityElement->entityID; + + $expireTime = self::getExpireTime($entityElement, $maxExpireTime); + + $this->validators = $validators; + $this->validators[] = $entityElement; + + // process Extensions element, if it exists + $ext = self::processExtensions($entityElement, $parentExtensions); + $this->scopes = $ext['scope']; + $this->tags = $ext['tags']; + $this->entityAttributes = $ext['EntityAttributes']; + $this->registrationInfo = $ext['RegistrationInfo']; + + // look over the RoleDescriptors + foreach ($entityElement->RoleDescriptor as $child) { + if ($child instanceof \SAML2\XML\md\SPSSODescriptor) { + $this->processSPSSODescriptor($child, $expireTime); + } elseif ($child instanceof \SAML2\XML\md\IDPSSODescriptor) { + $this->processIDPSSODescriptor($child, $expireTime); + } elseif ($child instanceof \SAML2\XML\md\AttributeAuthorityDescriptor) { + $this->processAttributeAuthorityDescriptor($child, $expireTime); + } + } + + if ($entityElement->Organization) { + $this->processOrganization($entityElement->Organization); + } + + if (!empty($entityElement->ContactPerson)) { + foreach ($entityElement->ContactPerson as $contact) { + $this->processContactPerson($contact); + } + } + } + + + /** + * This function parses a file which contains XML encoded metadata. + * + * @param string $file The path to the file which contains the metadata. + * + * @return SimpleSAML_Metadata_SAMLParser An instance of this class with the metadata loaded. + * @throws Exception If the file does not parse as XML. + */ + public static function parseFile($file) + { + $data = \SimpleSAML\Utils\HTTP::fetch($file); + + try { + $doc = \SAML2\DOMDocumentFactory::fromString($data); + } catch (\Exception $e) { + throw new Exception('Failed to read XML from file: '.$file); + } + + return self::parseDocument($doc); + } + + + /** + * This function parses a string which contains XML encoded metadata. + * + * @param string $metadata A string which contains XML encoded metadata. + * + * @return SimpleSAML_Metadata_SAMLParser An instance of this class with the metadata loaded. + * @throws Exception If the string does not parse as XML. + */ + public static function parseString($metadata) + { + try { + $doc = \SAML2\DOMDocumentFactory::fromString($metadata); + } catch (\Exception $e) { + throw new Exception('Failed to parse XML string.'); + } + + return self::parseDocument($doc); + } + + + /** + * This function parses a DOMDocument which is assumed to contain a single EntityDescriptor element. + * + * @param DOMDocument $document The DOMDocument which contains the EntityDescriptor element. + * + * @return SimpleSAML_Metadata_SAMLParser An instance of this class with the metadata loaded. + */ + public static function parseDocument($document) + { + assert($document instanceof DOMDocument); + + $entityElement = self::findEntityDescriptor($document); + + return self::parseElement($entityElement); + } + + + /** + * This function parses a \SAML2\XML\md\EntityDescriptor object which represents a EntityDescriptor element. + * + * @param \SAML2\XML\md\EntityDescriptor $entityElement A \SAML2\XML\md\EntityDescriptor object which represents a + * EntityDescriptor element. + * + * @return SimpleSAML_Metadata_SAMLParser An instance of this class with the metadata loaded. + */ + public static function parseElement($entityElement) + { + assert($entityElement instanceof \SAML2\XML\md\EntityDescriptor); + return new SimpleSAML_Metadata_SAMLParser($entityElement, null, array()); + } + + + /** + * This function parses a file where the root node is either an EntityDescriptor element or an + * EntitiesDescriptor element. In both cases it will return an associative array of SAMLParser instances. If + * the file contains a single EntityDescriptorElement, then the array will contain a single SAMLParser + * instance. + * + * @param string $file The path to the file which contains the EntityDescriptor or EntitiesDescriptor element. + * + * @return SimpleSAML_Metadata_SAMLParser[] An array of SAMLParser instances. + * @throws Exception If the file does not parse as XML. + */ + public static function parseDescriptorsFile($file) + { + if ($file === null) { + throw new Exception('Cannot open file NULL. File name not specified.'); + } + + $data = \SimpleSAML\Utils\HTTP::fetch($file); + + try { + $doc = \SAML2\DOMDocumentFactory::fromString($data); + } catch (\Exception $e) { + throw new Exception('Failed to read XML from file: '.$file); + } + + if ($doc->documentElement === null) { + throw new Exception('Opened file is not an XML document: '.$file); + } + + return self::parseDescriptorsElement($doc->documentElement); + } + + + /** + * This function parses a string with XML data. The root node of the XML data is expected to be either an + * EntityDescriptor element or an EntitiesDescriptor element. It will return an associative array of + * SAMLParser instances. + * + * @param string $string The string with XML data. + * + * @return SimpleSAML_Metadata_SAMLParser[] An associative array of SAMLParser instances. The key of the array will + * be the entity id. + * @throws Exception If the string does not parse as XML. + */ + public static function parseDescriptorsString($string) + { + try { + $doc = \SAML2\DOMDocumentFactory::fromString($string); + } catch (\Exception $e) { + throw new Exception('Failed to parse XML string.'); + } + + return self::parseDescriptorsElement($doc->documentElement); + } + + + /** + * This function parses a DOMElement which represents either an EntityDescriptor element or an + * EntitiesDescriptor element. It will return an associative array of SAMLParser instances in both cases. + * + * @param DOMElement|NULL $element The DOMElement which contains the EntityDescriptor element or the + * EntitiesDescriptor element. + * + * @return SimpleSAML_Metadata_SAMLParser[] An associative array of SAMLParser instances. The key of the array will + * be the entity id. + * @throws Exception if the document is empty or the root is an unexpected node. + */ + public static function parseDescriptorsElement(DOMElement $element = null) + { + if ($element === null) { + throw new Exception('Document was empty.'); + } + + if (SimpleSAML\Utils\XML::isDOMNodeOfType($element, 'EntityDescriptor', '@md') === true) { + return self::processDescriptorsElement(new \SAML2\XML\md\EntityDescriptor($element)); + } elseif (SimpleSAML\Utils\XML::isDOMNodeOfType($element, 'EntitiesDescriptor', '@md') === true) { + return self::processDescriptorsElement(new \SAML2\XML\md\EntitiesDescriptor($element)); + } else { + throw new Exception('Unexpected root node: ['.$element->namespaceURI.']:'.$element->localName); + } + } + + + /** + * + * @param \SAML2\XML\md\EntityDescriptor|\SAML2\XML\md\EntitiesDescriptor $element The element we should process. + * @param int|NULL $maxExpireTime The maximum expiration time + * of the entities. + * @param array $validators The parent-elements that may be + * signed. + * @param array $parentExtensions An optional array of + * extensions from the parent element. + * + * @return SimpleSAML_Metadata_SAMLParser[] Array of SAMLParser instances. + */ + private static function processDescriptorsElement( + $element, + $maxExpireTime = null, + array $validators = array(), + array $parentExtensions = array() + ) { + assert($maxExpireTime === null || is_int($maxExpireTime)); + + if ($element instanceof \SAML2\XML\md\EntityDescriptor) { + $ret = new SimpleSAML_Metadata_SAMLParser($element, $maxExpireTime, $validators, $parentExtensions); + $ret = array($ret->getEntityId() => $ret); + /** @var SimpleSAML_Metadata_SAMLParser[] $ret */ + return $ret; + } + + assert($element instanceof \SAML2\XML\md\EntitiesDescriptor); + + $extensions = self::processExtensions($element, $parentExtensions); + $expTime = self::getExpireTime($element, $maxExpireTime); + + $validators[] = $element; + + $ret = array(); + foreach ($element->children as $child) { + $ret += self::processDescriptorsElement($child, $expTime, $validators, $extensions); + } + + return $ret; + } + + + /** + * Determine how long a given element can be cached. + * + * This function looks for the 'validUntil' attribute to determine + * how long a given XML-element is valid. It returns this as a unix timestamp. + * + * @param mixed $element The element we should determine the expiry time of. + * @param int|NULL $maxExpireTime The maximum expiration time. + * + * @return int The unix timestamp for when the element should expire. Will be NULL if no + * limit is set for the element. + */ + private static function getExpireTime($element, $maxExpireTime) + { + // validUntil may be null + $expire = $element->validUntil; + + if ($maxExpireTime !== null && ($expire === null || $maxExpireTime < $expire)) { + $expire = $maxExpireTime; + } + + return $expire; + } + + + /** + * This function returns the entity id of this parsed entity. + * + * @return string The entity id of this parsed entity. + */ + public function getEntityId() + { + return $this->entityId; + } + + + private function getMetadataCommon() + { + $ret = array(); + $ret['entityid'] = $this->entityId; + $ret['entityDescriptor'] = $this->entityDescriptor; + + // add organizational metadata + if (!empty($this->organizationName)) { + $ret['description'] = $this->organizationName; + $ret['OrganizationName'] = $this->organizationName; + } + if (!empty($this->organizationDisplayName)) { + $ret['name'] = $this->organizationDisplayName; + $ret['OrganizationDisplayName'] = $this->organizationDisplayName; + } + if (!empty($this->organizationURL)) { + $ret['url'] = $this->organizationURL; + $ret['OrganizationURL'] = $this->organizationURL; + } + + //add contact metadata + $ret['contacts'] = $this->contacts; + + return $ret; + } + + + /** + * Add data parsed from extensions to metadata. + * + * @param array &$metadata The metadata that should be updated. + * @param array $roleDescriptor The parsed role descriptor. + */ + private function addExtensions(array &$metadata, array $roleDescriptor) + { + assert(array_key_exists('scope', $roleDescriptor)); + assert(array_key_exists('tags', $roleDescriptor)); + + $scopes = array_merge($this->scopes, array_diff($roleDescriptor['scope'], $this->scopes)); + if (!empty($scopes)) { + $metadata['scope'] = $scopes; + } + + $tags = array_merge($this->tags, array_diff($roleDescriptor['tags'], $this->tags)); + if (!empty($tags)) { + $metadata['tags'] = $tags; + } + + + if (!empty($this->registrationInfo)) { + $metadata['RegistrationInfo'] = $this->registrationInfo; + } + + if (!empty($this->entityAttributes)) { + $metadata['EntityAttributes'] = $this->entityAttributes; + + // check for entity categories + if (SimpleSAML\Utils\Config\Metadata::isHiddenFromDiscovery($metadata)) { + $metadata['hide.from.discovery'] = true; + } + } + + if (!empty($roleDescriptor['UIInfo'])) { + $metadata['UIInfo'] = $roleDescriptor['UIInfo']; + } + + if (!empty($roleDescriptor['DiscoHints'])) { + $metadata['DiscoHints'] = $roleDescriptor['DiscoHints']; + } + } + + + /** + * This function returns the metadata for SAML 1.x SPs in the format SimpleSAMLphp expects. + * This is an associative array with the following fields: + * - 'entityid': The entity id of the entity described in the metadata. + * - 'AssertionConsumerService': String with the URL of the assertion consumer service which supports + * the browser-post binding. + * - 'certData': X509Certificate for entity (if present). + * + * Metadata must be loaded with one of the parse functions before this function can be called. + * + * @return array An associative array with metadata or NULL if we are unable to generate metadata for a SAML 1.x SP. + */ + public function getMetadata1xSP() + { + $ret = $this->getMetadataCommon(); + $ret['metadata-set'] = 'shib13-sp-remote'; + + + // find SP information which supports one of the SAML 1.x protocols + $spd = $this->getSPDescriptors(self::$SAML1xProtocols); + if (count($spd) === 0) { + return null; + } + + // we currently only look at the first SPDescriptor which supports SAML 1.x + $spd = $spd[0]; + + // add expire time to metadata + if (array_key_exists('expire', $spd)) { + $ret['expire'] = $spd['expire']; + } + + // find the assertion consumer service endpoints + $ret['AssertionConsumerService'] = $spd['AssertionConsumerService']; + + // add the list of attributes the SP should receive + if (array_key_exists('attributes', $spd)) { + $ret['attributes'] = $spd['attributes']; + } + if (array_key_exists('attributes.required', $spd)) { + $ret['attributes.required'] = $spd['attributes.required']; + } + if (array_key_exists('attributes.NameFormat', $spd)) { + $ret['attributes.NameFormat'] = $spd['attributes.NameFormat']; + } + + // add name & description + if (array_key_exists('name', $spd)) { + $ret['name'] = $spd['name']; + } + if (array_key_exists('description', $spd)) { + $ret['description'] = $spd['description']; + } + + // add public keys + if (!empty($spd['keys'])) { + $ret['keys'] = $spd['keys']; + } + + // add extensions + $this->addExtensions($ret, $spd); + + // prioritize mdui:DisplayName as the name if available + if (!empty($ret['UIInfo']['DisplayName'])) { + $ret['name'] = $ret['UIInfo']['DisplayName']; + } + + return $ret; + } + + + /** + * This function returns the metadata for SAML 1.x IdPs in the format SimpleSAMLphp expects. + * This is an associative array with the following fields: + * - 'entityid': The entity id of the entity described in the metadata. + * - 'name': Auto generated name for this entity. Currently set to the entity id. + * - 'SingleSignOnService': String with the URL of the SSO service which supports the redirect binding. + * - 'SingleLogoutService': String with the URL where we should send logout requests/responses. + * - 'certData': X509Certificate for entity (if present). + * - 'certFingerprint': Fingerprint of the X509Certificate from the metadata. (deprecated) + * + * Metadata must be loaded with one of the parse functions before this function can be called. + * + * @return array An associative array with metadata or NULL if we are unable to generate metadata for a SAML 1.x + * IdP. + */ + public function getMetadata1xIdP() + { + $ret = $this->getMetadataCommon(); + $ret['metadata-set'] = 'shib13-idp-remote'; + + // find IdP information which supports the SAML 1.x protocol + $idp = $this->getIdPDescriptors(self::$SAML1xProtocols); + if (count($idp) === 0) { + return null; + } + + // we currently only look at the first IDP descriptor which supports SAML 1.x + $idp = $idp[0]; + + // fdd expire time to metadata + if (array_key_exists('expire', $idp)) { + $ret['expire'] = $idp['expire']; + } + + // find the SSO service endpoints + $ret['SingleSignOnService'] = $idp['SingleSignOnService']; + + // find the ArtifactResolutionService endpoint + $ret['ArtifactResolutionService'] = $idp['ArtifactResolutionService']; + + // add public keys + if (!empty($idp['keys'])) { + $ret['keys'] = $idp['keys']; + } + + // add extensions + $this->addExtensions($ret, $idp); + + // prioritize mdui:DisplayName as the name if available + if (!empty($ret['UIInfo']['DisplayName'])) { + $ret['name'] = $ret['UIInfo']['DisplayName']; + } + + return $ret; + } + + + /** + * This function returns the metadata for SAML 2.0 SPs in the format SimpleSAMLphp expects. + * This is an associative array with the following fields: + * - 'entityid': The entity id of the entity described in the metadata. + * - 'AssertionConsumerService': String with the URL of the assertion consumer service which supports + * the browser-post binding. + * - 'SingleLogoutService': String with the URL where we should send logout requests/responses. + * - 'NameIDFormat': The name ID format this SP expects. This may be unset. + * - 'certData': X509Certificate for entity (if present). + * + * Metadata must be loaded with one of the parse functions before this function can be called. + * + * @return array An associative array with metadata or NULL if we are unable to generate metadata for a SAML 2.x SP. + */ + public function getMetadata20SP() + { + $ret = $this->getMetadataCommon(); + $ret['metadata-set'] = 'saml20-sp-remote'; + + // find SP information which supports the SAML 2.0 protocol + $spd = $this->getSPDescriptors(self::$SAML20Protocols); + if (count($spd) === 0) { + return null; + } + + // we currently only look at the first SPDescriptor which supports SAML 2.0 + $spd = $spd[0]; + + // add expire time to metadata + if (array_key_exists('expire', $spd)) { + $ret['expire'] = $spd['expire']; + } + + // find the assertion consumer service endpoints + $ret['AssertionConsumerService'] = $spd['AssertionConsumerService']; + + + // find the single logout service endpoint + $ret['SingleLogoutService'] = $spd['SingleLogoutService']; + + + // find the NameIDFormat. This may not exist + if (count($spd['nameIDFormats']) > 0) { + // SimpleSAMLphp currently only supports a single NameIDFormat pr. SP. We use the first one + $ret['NameIDFormat'] = $spd['nameIDFormats'][0]; + } + + // add the list of attributes the SP should receive + if (array_key_exists('attributes', $spd)) { + $ret['attributes'] = $spd['attributes']; + } + if (array_key_exists('attributes.required', $spd)) { + $ret['attributes.required'] = $spd['attributes.required']; + } + if (array_key_exists('attributes.NameFormat', $spd)) { + $ret['attributes.NameFormat'] = $spd['attributes.NameFormat']; + } + if (array_key_exists('attributes.index', $spd)) { + $ret['attributes.index'] = $spd['attributes.index']; + } + if (array_key_exists('attributes.isDefault', $spd)) { + $ret['attributes.isDefault'] = $spd['attributes.isDefault']; + } + + // add name & description + if (array_key_exists('name', $spd)) { + $ret['name'] = $spd['name']; + } + if (array_key_exists('description', $spd)) { + $ret['description'] = $spd['description']; + } + + // add public keys + if (!empty($spd['keys'])) { + $ret['keys'] = $spd['keys']; + } + + // add validate.authnrequest + if (array_key_exists('AuthnRequestsSigned', $spd)) { + $ret['validate.authnrequest'] = $spd['AuthnRequestsSigned']; + } + + // add saml20.sign.assertion + if (array_key_exists('WantAssertionsSigned', $spd)) { + $ret['saml20.sign.assertion'] = $spd['WantAssertionsSigned']; + } + + // add extensions + $this->addExtensions($ret, $spd); + + // prioritize mdui:DisplayName as the name if available + if (!empty($ret['UIInfo']['DisplayName'])) { + $ret['name'] = $ret['UIInfo']['DisplayName']; + } + + return $ret; + } + + + /** + * This function returns the metadata for SAML 2.0 IdPs in the format SimpleSAMLphp expects. + * This is an associative array with the following fields: + * - 'entityid': The entity id of the entity described in the metadata. + * - 'name': Auto generated name for this entity. Currently set to the entity id. + * - 'SingleSignOnService': String with the URL of the SSO service which supports the redirect binding. + * - 'SingleLogoutService': String with the URL where we should send logout requests(/responses). + * - 'SingleLogoutServiceResponse': String where we should send logout responses (if this is different from + * the 'SingleLogoutService' endpoint. + * - 'NameIDFormats': The name ID formats this IdP supports. + * - 'certData': X509Certificate for entity (if present). + * - 'certFingerprint': Fingerprint of the X509Certificate from the metadata. (deprecated) + * + * Metadata must be loaded with one of the parse functions before this function can be called. + * + * @return array An associative array with metadata or NULL if we are unable to generate metadata for a SAML 2.0 + * IdP. + */ + public function getMetadata20IdP() + { + $ret = $this->getMetadataCommon(); + $ret['metadata-set'] = 'saml20-idp-remote'; + + // find IdP information which supports the SAML 2.0 protocol + $idp = $this->getIdPDescriptors(self::$SAML20Protocols); + if (count($idp) === 0) { + return null; + } + + // we currently only look at the first IDP descriptor which supports SAML 2.0 + $idp = $idp[0]; + + // add expire time to metadata + if (array_key_exists('expire', $idp)) { + $ret['expire'] = $idp['expire']; + } + + // enable redirect.sign if WantAuthnRequestsSigned is enabled + if ($idp['WantAuthnRequestsSigned']) { + $ret['sign.authnrequest'] = true; + } + + // find the SSO service endpoint + $ret['SingleSignOnService'] = $idp['SingleSignOnService']; + + // find the single logout service endpoint + $ret['SingleLogoutService'] = $idp['SingleLogoutService']; + + // find the ArtifactResolutionService endpoint + $ret['ArtifactResolutionService'] = $idp['ArtifactResolutionService']; + + // add supported nameIDFormats + $ret['NameIDFormats'] = $idp['nameIDFormats']; + + // add public keys + if (!empty($idp['keys'])) { + $ret['keys'] = $idp['keys']; + } + + // add extensions + $this->addExtensions($ret, $idp); + + // prioritize mdui:DisplayName as the name if available + if (!empty($ret['UIInfo']['DisplayName'])) { + $ret['name'] = $ret['UIInfo']['DisplayName']; + } + + return $ret; + } + + + /** + * Retrieve AttributeAuthorities from the metadata. + * + * @return array Array of AttributeAuthorityDescriptor entries. + */ + public function getAttributeAuthorities() + { + return $this->attributeAuthorityDescriptors; + } + + + /** + * Parse a RoleDescriptorType element. + * + * The returned associative array has the following elements: + * - 'protocols': Array with the protocols supported. + * - 'expire': Timestamp for when this descriptor expires. + * - 'keys': Array of associative arrays with the elements from parseKeyDescriptor. + * + * @param \SAML2\XML\md\RoleDescriptor $element The element we should extract metadata from. + * @param int|NULL $expireTime The unix timestamp for when this element should expire, or + * NULL if unknown. + * + * @return array An associative array with metadata we have extracted from this element. + */ + private static function parseRoleDescriptorType(\SAML2\XML\md\RoleDescriptor $element, $expireTime) + { + assert($expireTime === null || is_int($expireTime)); + + $ret = array(); + + $expireTime = self::getExpireTime($element, $expireTime); + + if ($expireTime !== null) { + // we got an expired timestamp, either from this element or one of the parent elements + $ret['expire'] = $expireTime; + } + + $ret['protocols'] = $element->protocolSupportEnumeration; + + // process KeyDescriptor elements + $ret['keys'] = array(); + foreach ($element->KeyDescriptor as $kd) { + $key = self::parseKeyDescriptor($kd); + if ($key !== null) { + $ret['keys'][] = $key; + } + } + + $ext = self::processExtensions($element); + $ret['scope'] = $ext['scope']; + $ret['tags'] = $ext['tags']; + $ret['EntityAttributes'] = $ext['EntityAttributes']; + $ret['UIInfo'] = $ext['UIInfo']; + $ret['DiscoHints'] = $ext['DiscoHints']; + + return $ret; + } + + + /** + * This function extracts metadata from a SSODescriptor element. + * + * The returned associative array has the following elements: + * - 'protocols': Array with the protocols this SSODescriptor supports. + * - 'SingleLogoutService': Array with the single logout service endpoints. Each endpoint is stored + * as an associative array with the elements that parseGenericEndpoint returns. + * - 'nameIDFormats': The NameIDFormats supported by this SSODescriptor. This may be an empty array. + * - 'keys': Array of associative arrays with the elements from parseKeyDescriptor: + * + * @param \SAML2\XML\md\SSODescriptorType $element The element we should extract metadata from. + * @param int|NULL $expireTime The unix timestamp for when this element should expire, or + * NULL if unknown. + * + * @return array An associative array with metadata we have extracted from this element. + */ + private static function parseSSODescriptor(\SAML2\XML\md\SSODescriptorType $element, $expireTime) + { + assert($expireTime === null || is_int($expireTime)); + + $sd = self::parseRoleDescriptorType($element, $expireTime); + + // find all SingleLogoutService elements + $sd['SingleLogoutService'] = self::extractEndpoints($element->SingleLogoutService); + + // find all ArtifactResolutionService elements + $sd['ArtifactResolutionService'] = self::extractEndpoints($element->ArtifactResolutionService); + + + // process NameIDFormat elements + $sd['nameIDFormats'] = $element->NameIDFormat; + + return $sd; + } + + + /** + * This function extracts metadata from a SPSSODescriptor element. + * + * @param \SAML2\XML\md\SPSSODescriptor $element The element which should be parsed. + * @param int|NULL $expireTime The unix timestamp for when this element should expire, or + * NULL if unknown. + */ + private function processSPSSODescriptor(\SAML2\XML\md\SPSSODescriptor $element, $expireTime) + { + assert($expireTime === null || is_int($expireTime)); + + $sp = self::parseSSODescriptor($element, $expireTime); + + // find all AssertionConsumerService elements + $sp['AssertionConsumerService'] = self::extractEndpoints($element->AssertionConsumerService); + + // find all the attributes and SP name... + $attcs = $element->AttributeConsumingService; + if (count($attcs) > 0) { + self::parseAttributeConsumerService($attcs[0], $sp); + } + + // check AuthnRequestsSigned + if ($element->AuthnRequestsSigned !== null) { + $sp['AuthnRequestsSigned'] = $element->AuthnRequestsSigned; + } + + // check WantAssertionsSigned + if ($element->WantAssertionsSigned !== null) { + $sp['WantAssertionsSigned'] = $element->WantAssertionsSigned; + } + + $this->spDescriptors[] = $sp; + } + + + /** + * This function extracts metadata from a IDPSSODescriptor element. + * + * @param \SAML2\XML\md\IDPSSODescriptor $element The element which should be parsed. + * @param int|NULL $expireTime The unix timestamp for when this element should expire, or + * NULL if unknown. + */ + private function processIDPSSODescriptor(\SAML2\XML\md\IDPSSODescriptor $element, $expireTime) + { + assert($expireTime === null || is_int($expireTime)); + + $idp = self::parseSSODescriptor($element, $expireTime); + + // find all SingleSignOnService elements + $idp['SingleSignOnService'] = self::extractEndpoints($element->SingleSignOnService); + + if ($element->WantAuthnRequestsSigned) { + $idp['WantAuthnRequestsSigned'] = true; + } else { + $idp['WantAuthnRequestsSigned'] = false; + } + + $this->idpDescriptors[] = $idp; + } + + + /** + * This function extracts metadata from a AttributeAuthorityDescriptor element. + * + * @param \SAML2\XML\md\AttributeAuthorityDescriptor $element The element which should be parsed. + * @param int|NULL $expireTime The unix timestamp for when this element should + * expire, or NULL if unknown. + */ + private function processAttributeAuthorityDescriptor( + \SAML2\XML\md\AttributeAuthorityDescriptor $element, + $expireTime + ) { + assert($expireTime === null || is_int($expireTime)); + + $aad = self::parseRoleDescriptorType($element, $expireTime); + $aad['entityid'] = $this->entityId; + $aad['metadata-set'] = 'attributeauthority-remote'; + + $aad['AttributeService'] = self::extractEndpoints($element->AttributeService); + $aad['AssertionIDRequestService'] = self::extractEndpoints($element->AssertionIDRequestService); + $aad['NameIDFormat'] = $element->NameIDFormat; + + $this->attributeAuthorityDescriptors[] = $aad; + } + + + /** + * Parse an Extensions element. Extensions may appear in multiple elements and certain extension may get inherited + * from a parent element. + * + * @param mixed $element The element which contains the Extensions element. + * @param array $parentExtensions An optional array of extensions from the parent element. + * + * @return array An associative array with the extensions parsed. + */ + private static function processExtensions($element, $parentExtensions = array()) + { + $ret = array( + 'scope' => array(), + 'tags' => array(), + 'EntityAttributes' => array(), + 'RegistrationInfo' => array(), + 'UIInfo' => array(), + 'DiscoHints' => array(), + ); + + // Some extensions may get inherited from a parent element + if (($element instanceof \SAML2\XML\md\EntityDescriptor || $element instanceof \SAML2\XML\md\EntitiesDescriptor) + && !empty($parentExtensions['RegistrationInfo'])) { + $ret['RegistrationInfo'] = $parentExtensions['RegistrationInfo']; + } + + foreach ($element->Extensions as $e) { + if ($e instanceof \SAML2\XML\shibmd\Scope) { + $ret['scope'][] = $e->scope; + continue; + } + + // Entity Attributes are only allowed at entity level extensions and not at RoleDescriptor level + if ($element instanceof \SAML2\XML\md\EntityDescriptor || + $element instanceof \SAML2\XML\md\EntitiesDescriptor) { + if ($e instanceof \SAML2\XML\mdrpi\RegistrationInfo) { + // Registration Authority cannot be overridden (warn only if override attempts to change the value) + if (isset($ret['RegistrationInfo']['registrationAuthority']) + && $ret['RegistrationInfo']['registrationAuthority'] !== $e->registrationAuthority) { + SimpleSAML\Logger::warning('Invalid attempt to override registrationAuthority \'' + . $ret['RegistrationInfo']['registrationAuthority'] . "' with '{$e->registrationAuthority}'"); + } else { + $ret['RegistrationInfo']['registrationAuthority'] = $e->registrationAuthority; + } + } + if ($e instanceof \SAML2\XML\mdattr\EntityAttributes && !empty($e->children)) { + foreach ($e->children as $attr) { + // only saml:Attribute are currently supported here. The specifications also allows + // saml:Assertions, which more complex processing + if ($attr instanceof \SAML2\XML\saml\Attribute) { + if (empty($attr->Name) || empty($attr->AttributeValue)) { + continue; + } + + // attribute names that is not URI is prefixed as this: '{nameformat}name' + $name = $attr->Name; + if (empty($attr->NameFormat)) { + $name = '{'.\SAML2\Constants::NAMEFORMAT_UNSPECIFIED.'}'.$attr->Name; + } elseif ($attr->NameFormat !== 'urn:oasis:names:tc:SAML:2.0:attrname-format:uri') { + $name = '{'.$attr->NameFormat.'}'.$attr->Name; + } + + $values = array(); + foreach ($attr->AttributeValue as $attrvalue) { + $values[] = $attrvalue->getString(); + } + + $ret['EntityAttributes'][$name] = $values; + } + } + } + } + + // UIInfo elements are only allowed at RoleDescriptor level extensions + if ($element instanceof \SAML2\XML\md\RoleDescriptor) { + if ($e instanceof \SAML2\XML\mdui\UIInfo) { + $ret['UIInfo']['DisplayName'] = $e->DisplayName; + $ret['UIInfo']['Description'] = $e->Description; + $ret['UIInfo']['InformationURL'] = $e->InformationURL; + $ret['UIInfo']['PrivacyStatementURL'] = $e->PrivacyStatementURL; + + foreach ($e->Keywords as $uiItem) { + if (!($uiItem instanceof \SAML2\XML\mdui\Keywords) + || empty($uiItem->Keywords) + || empty($uiItem->lang) + ) { + continue; + } + $ret['UIInfo']['Keywords'][$uiItem->lang] = $uiItem->Keywords; + } + foreach ($e->Logo as $uiItem) { + if (!($uiItem instanceof \SAML2\XML\mdui\Logo) + || empty($uiItem->url) + || empty($uiItem->height) + || empty($uiItem->width) + ) { + continue; + } + $logo = array( + 'url' => $uiItem->url, + 'height' => $uiItem->height, + 'width' => $uiItem->width, + ); + if (!empty($uiItem->lang)) { + $logo['lang'] = $uiItem->lang; + } + $ret['UIInfo']['Logo'][] = $logo; + } + } + } + + // DiscoHints elements are only allowed at IDPSSODescriptor level extensions + if ($element instanceof \SAML2\XML\md\IDPSSODescriptor) { + if ($e instanceof \SAML2\XML\mdui\DiscoHints) { + $ret['DiscoHints']['IPHint'] = $e->IPHint; + $ret['DiscoHints']['DomainHint'] = $e->DomainHint; + $ret['DiscoHints']['GeolocationHint'] = $e->GeolocationHint; + } + } + + if (!($e instanceof \SAML2\XML\Chunk)) { + continue; + } + + if ($e->localName === 'Attribute' && $e->namespaceURI === \SAML2\Constants::NS_SAML) { + $attribute = $e->xml; + + $name = $attribute->getAttribute('Name'); + $values = array_map( + array('SimpleSAML\Utils\XML', 'getDOMText'), + SimpleSAML\Utils\XML::getDOMChildren($attribute, 'AttributeValue', '@saml2') + ); + + if ($name === 'tags') { + foreach ($values as $tagname) { + if (!empty($tagname)) { + $ret['tags'][] = $tagname; + } + } + } + } + } + return $ret; + } + + + /** + * Parse and process a Organization element. + * + * @param \SAML2\XML\md\Organization $element The Organization element. + */ + private function processOrganization(\SAML2\XML\md\Organization $element) + { + $this->organizationName = $element->OrganizationName; + $this->organizationDisplayName = $element->OrganizationDisplayName; + $this->organizationURL = $element->OrganizationURL; + } + + + /** + * Parse and process a ContactPerson element. + * + * @param \SAML2\XML\md\ContactPerson $element The ContactPerson element. + */ + + private function processContactPerson(\SAML2\XML\md\ContactPerson $element) + { + $contactPerson = array(); + if (!empty($element->contactType)) { + $contactPerson['contactType'] = $element->contactType; + } + if (!empty($element->Company)) { + $contactPerson['company'] = $element->Company; + } + if (!empty($element->GivenName)) { + $contactPerson['givenName'] = $element->GivenName; + } + if (!empty($element->SurName)) { + $contactPerson['surName'] = $element->SurName; + } + if (!empty($element->EmailAddress)) { + $contactPerson['emailAddress'] = $element->EmailAddress; + } + if (!empty($element->TelephoneNumber)) { + $contactPerson['telephoneNumber'] = $element->TelephoneNumber; + } + if (!empty($contactPerson)) { + $this->contacts[] = $contactPerson; + } + } + + + /** + * This function parses AttributeConsumerService elements. + * + * @param \SAML2\XML\md\AttributeConsumingService $element The AttributeConsumingService to parse. + * @param array $sp The array with the SP's metadata. + */ + private static function parseAttributeConsumerService(\SAML2\XML\md\AttributeConsumingService $element, &$sp) + { + assert(is_array($sp)); + + $sp['name'] = $element->ServiceName; + $sp['description'] = $element->ServiceDescription; + + $format = null; + $sp['attributes'] = array(); + $sp['attributes.required'] = array(); + foreach ($element->RequestedAttribute as $child) { + $attrname = $child->Name; + $sp['attributes'][] = $attrname; + + if ($child->isRequired !== null && $child->isRequired === true) { + $sp['attributes.required'][] = $attrname; + } + + if ($child->NameFormat !== null) { + $attrformat = $child->NameFormat; + } else { + $attrformat = \SAML2\Constants::NAMEFORMAT_UNSPECIFIED; + } + + if ($format === null) { + $format = $attrformat; + } elseif ($format !== $attrformat) { + $format = \SAML2\Constants::NAMEFORMAT_UNSPECIFIED; + } + } + + if (empty($sp['attributes'])) { + // a really invalid configuration: all AttributeConsumingServices should have one or more attributes + unset($sp['attributes']); + } + if (empty($sp['attributes.required'])) { + unset($sp['attributes.required']); + } + + if ($format !== \SAML2\Constants::NAMEFORMAT_UNSPECIFIED && $format !== null) { + $sp['attributes.NameFormat'] = $format; + } + } + + + /** + * This function is a generic endpoint element parser. + * + * The returned associative array has the following elements: + * - 'Binding': The binding this endpoint uses. + * - 'Location': The URL to this endpoint. + * - 'ResponseLocation': The URL where responses should be sent. This may not exist. + * - 'index': The index of this endpoint. This attribute is only for indexed endpoints. + * - 'isDefault': Whether this endpoint is the default endpoint for this type. This attribute may not exist. + * + * @param \SAML2\XML\md\EndpointType $element The element which should be parsed. + * + * @return array An associative array with the data we have extracted from the element. + */ + private static function parseGenericEndpoint(\SAML2\XML\md\EndpointType $element) + { + $ep = array(); + + $ep['Binding'] = $element->Binding; + $ep['Location'] = $element->Location; + + if ($element->ResponseLocation !== null) { + $ep['ResponseLocation'] = $element->ResponseLocation; + } + + if ($element instanceof \SAML2\XML\md\IndexedEndpointType) { + $ep['index'] = $element->index; + + if ($element->isDefault !== null) { + $ep['isDefault'] = $element->isDefault; + } + } + + return $ep; + } + + + /** + * Extract generic endpoints. + * + * @param array $endpoints The endpoints we should parse. + * + * @return array Array of parsed endpoints. + */ + private static function extractEndpoints(array $endpoints) + { + $ret = array(); + foreach ($endpoints as $ep) { + $ret[] = self::parseGenericEndpoint($ep); + } + + return $ret; + } + + + /** + * This function parses a KeyDescriptor element. It currently only supports keys with a single + * X509 certificate. + * + * The associative array for a key can contain: + * - 'encryption': Indicates whether this key can be used for encryption. + * - 'signing': Indicates whether this key can be used for signing. + * - 'type: The type of the key. 'X509Certificate' is the only key type we support. + * - 'X509Certificate': The contents of the first X509Certificate element (if the type is 'X509Certificate '). + * + * @param \SAML2\XML\md\KeyDescriptor $kd The KeyDescriptor element. + * + * @return array|null An associative array describing the key, or null if this is an unsupported key. + */ + private static function parseKeyDescriptor(\SAML2\XML\md\KeyDescriptor $kd) + { + $r = array(); + + if ($kd->use === 'encryption') { + $r['encryption'] = true; + $r['signing'] = false; + } elseif ($kd->use === 'signing') { + $r['encryption'] = false; + $r['signing'] = true; + } else { + $r['encryption'] = true; + $r['signing'] = true; + } + + $keyInfo = $kd->KeyInfo; + + foreach ($keyInfo->info as $i) { + if ($i instanceof \SAML2\XML\ds\X509Data) { + foreach ($i->data as $d) { + if ($d instanceof \SAML2\XML\ds\X509Certificate) { + $r['type'] = 'X509Certificate'; + $r['X509Certificate'] = $d->certificate; + return $r; + } + } + } + } + + return null; + } + + + /** + * This function finds SP descriptors which supports one of the given protocols. + * + * @param $protocols Array with the protocols we accept. + * + * @return Array with SP descriptors which supports one of the given protocols. + */ + private function getSPDescriptors($protocols) + { + assert(is_array($protocols)); + + $ret = array(); + + foreach ($this->spDescriptors as $spd) { + $sharedProtocols = array_intersect($protocols, $spd['protocols']); + if (count($sharedProtocols) > 0) { + $ret[] = $spd; + } + } + + return $ret; + } + + + /** + * This function finds IdP descriptors which supports one of the given protocols. + * + * @param $protocols Array with the protocols we accept. + * + * @return Array with IdP descriptors which supports one of the given protocols. + */ + private function getIdPDescriptors($protocols) + { + assert(is_array($protocols)); + + $ret = array(); + + foreach ($this->idpDescriptors as $idpd) { + $sharedProtocols = array_intersect($protocols, $idpd['protocols']); + if (count($sharedProtocols) > 0) { + $ret[] = $idpd; + } + } + + return $ret; + } + + + /** + * This function locates the EntityDescriptor node in a DOMDocument. This node should + * be the first (and only) node in the document. + * + * This function will throw an exception if it is unable to locate the node. + * + * @param DOMDocument $doc The DOMDocument where we should find the EntityDescriptor node. + * + * @return \SAML2\XML\md\EntityDescriptor The DOMEntity which represents the EntityDescriptor. + * @throws Exception If the document is empty or the first element is not an EntityDescriptor element. + */ + private static function findEntityDescriptor($doc) + { + assert($doc instanceof DOMDocument); + + // find the EntityDescriptor DOMElement. This should be the first (and only) child of the DOMDocument + $ed = $doc->documentElement; + + if ($ed === null) { + throw new Exception('Failed to load SAML metadata from empty XML document.'); + } + + if (SimpleSAML\Utils\XML::isDOMNodeOfType($ed, 'EntityDescriptor', '@md') === false) { + throw new Exception('Expected first element in the metadata document to be an EntityDescriptor element.'); + } + + return new \SAML2\XML\md\EntityDescriptor($ed); + } + + + /** + * If this EntityDescriptor was signed this function use the public key to check the signature. + * + * @param array $certificates One ore more certificates with the public key. This makes it possible + * to do a key rollover. + * + * @return boolean True if it is possible to check the signature with the certificate, false otherwise. + * @throws Exception If the certificate file cannot be found. + */ + public function validateSignature($certificates) + { + foreach ($certificates as $cert) { + assert(is_string($cert)); + $certFile = \SimpleSAML\Utils\Config::getCertPath($cert); + if (!file_exists($certFile)) { + throw new Exception( + 'Could not find certificate file ['.$certFile.'], which is needed to validate signature' + ); + } + $certData = file_get_contents($certFile); + + foreach ($this->validators as $validator) { + $key = new XMLSecurityKey(XMLSecurityKey::RSA_SHA256, array('type' => 'public')); + $key->loadKey($certData); + try { + if ($validator->validate($key)) { + return true; + } + } catch (Exception $e) { + // this certificate did not sign this element, skip + } + } + } + SimpleSAML\Logger::debug('Could not validate signature'); + return false; + } + + + /** + * This function checks if this EntityDescriptor was signed with a certificate with the + * given fingerprint. + * + * @param string $fingerprint Fingerprint of the certificate which should have been used to sign this + * EntityDescriptor. + * + * @return boolean True if it was signed with the certificate with the given fingerprint, false otherwise. + */ + public function validateFingerprint($fingerprint) + { + assert(is_string($fingerprint)); + + $fingerprint = strtolower(str_replace(":", "", $fingerprint)); + + $candidates = array(); + foreach ($this->validators as $validator) { + foreach ($validator->getValidatingCertificates() as $cert) { + $fp = strtolower(sha1(base64_decode($cert))); + $candidates[] = $fp; + if ($fp === $fingerprint) { + return true; + } + } + } + SimpleSAML\Logger::debug('Fingerprint was ['.$fingerprint.'] not one of ['.join(', ', $candidates).']'); + return false; + } +} diff --git a/lib/SimpleSAML/Metadata/Signer.php b/lib/SimpleSAML/Metadata/Signer.php new file mode 100755 index 0000000..98bfbbe --- /dev/null +++ b/lib/SimpleSAML/Metadata/Signer.php @@ -0,0 +1,283 @@ + $entityMetadata['metadata.sign.privatekey'], + 'certificate' => $entityMetadata['metadata.sign.certificate'] + ); + + if (array_key_exists('metadata.sign.privatekey_pass', $entityMetadata)) { + $ret['privatekey_pass'] = $entityMetadata['metadata.sign.privatekey_pass']; + } + + return $ret; + } + + // then we look for default values in the global configuration + $privatekey = $config->getString('metadata.sign.privatekey', null); + $certificate = $config->getString('metadata.sign.certificate', null); + if ($privatekey !== null || $certificate !== null) { + if ($privatekey === null || $certificate === null) { + throw new Exception( + 'Missing either the "metadata.sign.privatekey" or the'. + ' "metadata.sign.certificate" configuration option in the global'. + ' configuration. If one of these options is specified, then the other'. + ' must also be specified.' + ); + } + $ret = array('privatekey' => $privatekey, 'certificate' => $certificate); + + $privatekey_pass = $config->getString('metadata.sign.privatekey_pass', null); + if ($privatekey_pass !== null) { + $ret['privatekey_pass'] = $privatekey_pass; + } + + return $ret; + } + + // as a last resort we attempt to use the privatekey and certificate option from the metadata + if (array_key_exists('privatekey', $entityMetadata) + || array_key_exists('certificate', $entityMetadata) + ) { + if (!array_key_exists('privatekey', $entityMetadata) + || !array_key_exists('certificate', $entityMetadata) + ) { + throw new Exception( + 'Both the "privatekey" and the "certificate" option must'. + ' be set in the metadata for the '.$type.' "'. + $entityMetadata['entityid'].'" before it is possible to sign metadata'. + ' from this entity.' + ); + } + + $ret = array( + 'privatekey' => $entityMetadata['privatekey'], + 'certificate' => $entityMetadata['certificate'] + ); + + if (array_key_exists('privatekey_pass', $entityMetadata)) { + $ret['privatekey_pass'] = $entityMetadata['privatekey_pass']; + } + + return $ret; + } + + throw new Exception( + 'Could not find what key & certificate should be used to sign the metadata'. + ' for the '.$type.' "'.$entityMetadata['entityid'].'".' + ); + } + + + /** + * Determine whether metadata signing is enabled for the given metadata. + * + * @param SimpleSAML_Configuration $config Our SimpleSAML_Configuration instance. + * @param array $entityMetadata The metadata of the entity. + * @param string $type A string which describes the type entity this is, e.g. 'SAML 2 IdP' or + * 'Shib 1.3 SP'. + * + * @return boolean True if metadata signing is enabled, false otherwise. + * @throws Exception If the value of the 'metadata.sign.enable' option is not a boolean. + */ + private static function isMetadataSigningEnabled($config, $entityMetadata, $type) + { + // first check the metadata for the entity + if (array_key_exists('metadata.sign.enable', $entityMetadata)) { + if (!is_bool($entityMetadata['metadata.sign.enable'])) { + throw new Exception( + 'Invalid value for the "metadata.sign.enable" configuration option for'. + ' the '.$type.' "'.$entityMetadata['entityid'].'". This option'. + ' should be a boolean.' + ); + } + + return $entityMetadata['metadata.sign.enable']; + } + + $enabled = $config->getBoolean('metadata.sign.enable', false); + + return $enabled; + } + + + /** + * Determine the signature and digest algorithms to use when signing metadata. + * + * This method will look for the 'metadata.sign.algorithm' key in the $entityMetadata array, or look for such + * a configuration option in the $config object. + * + * @param SimpleSAML_Configuration $config The global configuration. + * @param array $entityMetadata An array containing the metadata related to this entity. + * @param string $type A string describing the type of entity. E.g. 'SAML 2 IdP' or 'Shib 1.3 SP'. + * + * @return array An array with two keys, 'algorithm' and 'digest', corresponding to the signature and digest + * algorithms to use, respectively. + * + * @throws \SimpleSAML\Error\CriticalConfigurationError + */ + private static function getMetadataSigningAlgorithm($config, $entityMetadata, $type) + { + // configure the algorithm to use + if (array_key_exists('metadata.sign.algorithm', $entityMetadata)) { + if (!is_string($entityMetadata['metadata.sign.algorithm'])) { + throw new \SimpleSAML\Error\CriticalConfigurationError( + "Invalid value for the 'metadata.sign.algorithm' configuration option for the ".$type. + "'".$entityMetadata['entityid']."'. This option has restricted values" + ); + } + $alg = $entityMetadata['metadata.sign.algorithm']; + } else { + $alg = $config->getString('metadata.sign.algorithm', XMLSecurityKey::RSA_SHA256); + } + + $supported_algs = array( + XMLSecurityKey::RSA_SHA1, + XMLSecurityKey::RSA_SHA256, + XMLSecurityKey::RSA_SHA384, + XMLSecurityKey::RSA_SHA512, + ); + + if (!in_array($alg, $supported_algs, true)) { + throw new \SimpleSAML\Error\CriticalConfigurationError("Unknown signature algorithm '$alg'"); + } + + switch ($alg) { + case XMLSecurityKey::RSA_SHA256: + $digest = XMLSecurityDSig::SHA256; + break; + case XMLSecurityKey::RSA_SHA384: + $digest = XMLSecurityDSig::SHA384; + break; + case XMLSecurityKey::RSA_SHA512: + $digest = XMLSecurityDSig::SHA512; + break; + default: + $digest = XMLSecurityDSig::SHA1; + } + + return array( + 'algorithm' => $alg, + 'digest' => $digest, + ); + } + + + /** + * Signs the given metadata if metadata signing is enabled. + * + * @param string $metadataString A string with the metadata. + * @param array $entityMetadata The metadata of the entity. + * @param string $type A string which describes the type entity this is, e.g. 'SAML 2 IdP' or 'Shib 1.3 SP'. + * + * @return string The $metadataString with the signature embedded. + * @throws Exception If the certificate or private key cannot be loaded, or the metadata doesn't parse properly. + */ + public static function sign($metadataString, $entityMetadata, $type) + { + $config = SimpleSAML_Configuration::getInstance(); + + // check if metadata signing is enabled + if (!self::isMetadataSigningEnabled($config, $entityMetadata, $type)) { + return $metadataString; + } + + // find the key & certificate which should be used to sign the metadata + $keyCertFiles = self::findKeyCert($config, $entityMetadata, $type); + + $keyFile = \SimpleSAML\Utils\Config::getCertPath($keyCertFiles['privatekey']); + if (!file_exists($keyFile)) { + throw new Exception('Could not find private key file ['.$keyFile.'], which is needed to sign the metadata'); + } + $keyData = file_get_contents($keyFile); + + $certFile = \SimpleSAML\Utils\Config::getCertPath($keyCertFiles['certificate']); + if (!file_exists($certFile)) { + throw new Exception( + 'Could not find certificate file ['.$certFile.'], which is needed to sign the metadata' + ); + } + $certData = file_get_contents($certFile); + + + // convert the metadata to a DOM tree + try { + $xml = \SAML2\DOMDocumentFactory::fromString($metadataString); + } catch (Exception $e) { + throw new Exception('Error parsing self-generated metadata.'); + } + + $signature_cf = self::getMetadataSigningAlgorithm($config, $entityMetadata, $type); + + // load the private key + $objKey = new XMLSecurityKey($signature_cf['algorithm'], array('type' => 'private')); + if (array_key_exists('privatekey_pass', $keyCertFiles)) { + $objKey->passphrase = $keyCertFiles['privatekey_pass']; + } + $objKey->loadKey($keyData, false); + + // get the EntityDescriptor node we should sign + $rootNode = $xml->firstChild; + + // sign the metadata with our private key + $objXMLSecDSig = new XMLSecurityDSig(); + + $objXMLSecDSig->setCanonicalMethod(XMLSecurityDSig::EXC_C14N); + + $objXMLSecDSig->addReferenceList( + array($rootNode), + $signature_cf['digest'], + array('http://www.w3.org/2000/09/xmldsig#enveloped-signature', XMLSecurityDSig::EXC_C14N), + array('id_name' => 'ID') + ); + + $objXMLSecDSig->sign($objKey); + + // add the certificate to the signature + $objXMLSecDSig->add509Cert($certData, true); + + // add the signature to the metadata + $objXMLSecDSig->insertSignature($rootNode, $rootNode->firstChild); + + // return the DOM tree as a string + return $xml->saveXML(); + } +} diff --git a/lib/SimpleSAML/Metadata/Sources/MDQ.php b/lib/SimpleSAML/Metadata/Sources/MDQ.php new file mode 100755 index 0000000..975f792 --- /dev/null +++ b/lib/SimpleSAML/Metadata/Sources/MDQ.php @@ -0,0 +1,337 @@ +server = $config['server']; + } + + if (array_key_exists('validateFingerprint', $config)) { + $this->validateFingerprint = $config['validateFingerprint']; + } else { + $this->validateFingerprint = null; + } + + if (array_key_exists('cachedir', $config)) { + $globalConfig = \SimpleSAML_Configuration::getInstance(); + $this->cacheDir = $globalConfig->resolvePath($config['cachedir']); + } else { + $this->cacheDir = null; + } + + if (array_key_exists('cachelength', $config)) { + $this->cacheLength = $config['cachelength']; + } else { + $this->cacheLength = 86400; + } + } + + + /** + * This function is not implemented. + * + * @param string $set The set we want to list metadata for. + * + * @return array An empty array. + */ + public function getMetadataSet($set) + { + // we don't have this metadata set + return array(); + } + + + /** + * Find the cache file name for an entity, + * + * @param string $set The metadata set this entity belongs to. + * @param string $entityId The entity id of this entity. + * + * @return string The full path to the cache file. + */ + private function getCacheFilename($set, $entityId) + { + assert(is_string($set)); + assert(is_string($entityId)); + + $cachekey = sha1($entityId); + return $this->cacheDir.'/'.$set.'-'.$cachekey.'.cached.xml'; + } + + + /** + * Load a entity from the cache. + * + * @param string $set The metadata set this entity belongs to. + * @param string $entityId The entity id of this entity. + * + * @return array|NULL The associative array with the metadata for this entity, or NULL + * if the entity could not be found. + * @throws \Exception If an error occurs while loading metadata from cache. + */ + private function getFromCache($set, $entityId) + { + assert(is_string($set)); + assert(is_string($entityId)); + + if (empty($this->cacheDir)) { + return null; + } + + $cachefilename = $this->getCacheFilename($set, $entityId); + if (!file_exists($cachefilename)) { + return null; + } + if (!is_readable($cachefilename)) { + throw new \Exception(__CLASS__.': could not read cache file for entity ['.$cachefilename.']'); + } + Logger::debug(__CLASS__.': reading cache ['.$entityId.'] => ['.$cachefilename.']'); + + /* Ensure that this metadata isn't older that the cachelength option allows. This + * must be verified based on the file, since this option may be changed after the + * file is written. + */ + $stat = stat($cachefilename); + if ($stat['mtime'] + $this->cacheLength <= time()) { + Logger::debug(__CLASS__.': cache file older that the cachelength option allows.'); + return null; + } + + $rawData = file_get_contents($cachefilename); + if (empty($rawData)) { + $error = error_get_last(); + throw new \Exception( + __CLASS__.': error reading metadata from cache file "'.$cachefilename.'": '.$error['message'] + ); + } + + $data = unserialize($rawData); + if ($data === false) { + throw new \Exception(__CLASS__.': error unserializing cached data from file "'.$cachefilename.'".'); + } + + if (!is_array($data)) { + throw new \Exception(__CLASS__.': Cached metadata from "'.$cachefilename.'" wasn\'t an array.'); + } + + return $data; + } + + + /** + * Save a entity to the cache. + * + * @param string $set The metadata set this entity belongs to. + * @param string $entityId The entity id of this entity. + * @param array $data The associative array with the metadata for this entity. + * + * @throws \Exception If metadata cannot be written to cache. + */ + private function writeToCache($set, $entityId, $data) + { + assert(is_string($set)); + assert(is_string($entityId)); + assert(is_array($data)); + + if (empty($this->cacheDir)) { + return; + } + + $cachefilename = $this->getCacheFilename($set, $entityId); + if (!is_writable(dirname($cachefilename))) { + throw new \Exception(__CLASS__.': could not write cache file for entity ['.$cachefilename.']'); + } + Logger::debug(__CLASS__.': Writing cache ['.$entityId.'] => ['.$cachefilename.']'); + file_put_contents($cachefilename, serialize($data)); + } + + + /** + * Retrieve metadata for the correct set from a SAML2Parser. + * + * @param \SimpleSAML_Metadata_SAMLParser $entity A SAML2Parser representing an entity. + * @param string $set The metadata set we are looking for. + * + * @return array|NULL The associative array with the metadata, or NULL if no metadata for + * the given set was found. + */ + private static function getParsedSet(\SimpleSAML_Metadata_SAMLParser $entity, $set) + { + assert(is_string($set)); + + switch ($set) { + case 'saml20-idp-remote': + return $entity->getMetadata20IdP(); + case 'saml20-sp-remote': + return $entity->getMetadata20SP(); + case 'shib13-idp-remote': + return $entity->getMetadata1xIdP(); + case 'shib13-sp-remote': + return $entity->getMetadata1xSP(); + case 'attributeauthority-remote': + $ret = $entity->getAttributeAuthorities(); + return $ret[0]; + + default: + Logger::warning(__CLASS__.': unknown metadata set: \''.$set.'\'.'); + } + + return null; + } + + + /** + * Overriding this function from the superclass SimpleSAML_Metadata_MetaDataStorageSource. + * + * This function retrieves metadata for the given entity id in the given set of metadata. + * It will return NULL if it is unable to locate the metadata. + * + * This class implements this function using the getMetadataSet-function. A subclass should + * override this function if it doesn't implement the getMetadataSet function, or if the + * implementation of getMetadataSet is slow. + * + * @param string $index The entityId or metaindex we are looking up. + * @param string $set The set we are looking for metadata in. + * + * @return array An associative array with metadata for the given entity, or NULL if we are unable to + * locate the entity. + * @throws \Exception If an error occurs while validating the signature or the metadata is in an + * incorrect set. + */ + public function getMetaData($index, $set) + { + assert(is_string($index)); + assert(is_string($set)); + + Logger::info(__CLASS__.': loading metadata entity ['.$index.'] from ['.$set.']'); + + // read from cache if possible + try { + $data = $this->getFromCache($set, $index); + } catch (\Exception $e) { + Logger::error($e->getMessage()); + // proceed with fetching metadata even if the cache is broken + $data = null; + } + + if ($data !== null && array_key_exists('expires', $data) && $data['expires'] < time()) { + // metadata has expired + $data = null; + } + + if (isset($data)) { + // metadata found in cache and not expired + Logger::debug(__CLASS__.': using cached metadata for: '.$index.'.'); + return $data; + } + + // look at Metadata Query Protocol: https://github.com/iay/md-query/blob/master/draft-young-md-query.txt + $mdq_url = $this->server.'/entities/'.urlencode($index); + + Logger::debug(__CLASS__.': downloading metadata for "'.$index.'" from ['.$mdq_url.']'); + try { + $xmldata = HTTP::fetch($mdq_url); + } catch (\Exception $e) { + // Avoid propagating the exception, make sure we can handle the error later + $xmldata = false; + } + + if (empty($xmldata)) { + $error = error_get_last(); + Logger::info('Unable to fetch metadata for "'.$index.'" from '.$mdq_url.': '. + (is_array($error) ? $error['message'] : 'no error available')); + return null; + } + + /** @var string $xmldata */ + $entity = \SimpleSAML_Metadata_SAMLParser::parseString($xmldata); + Logger::debug(__CLASS__.': completed parsing of ['.$mdq_url.']'); + + if ($this->validateFingerprint !== null) { + if (!$entity->validateFingerprint($this->validateFingerprint)) { + throw new \Exception(__CLASS__.': error, could not verify signature for entity: '.$index.'".'); + } + } + + $data = self::getParsedSet($entity, $set); + if ($data === null) { + throw new \Exception(__CLASS__.': no metadata for set "'.$set.'" available from "'.$index.'".'); + } + + try { + $this->writeToCache($set, $index, $data); + } catch (\Exception $e) { + // Proceed without writing to cache + Logger::error('Error writing MDQ result to cache: '.$e->getMessage()); + } + + return $data; + } +} diff --git a/lib/SimpleSAML/Module.php b/lib/SimpleSAML/Module.php new file mode 100755 index 0000000..6c9b3c6 --- /dev/null +++ b/lib/SimpleSAML/Module.php @@ -0,0 +1,311 @@ +, UNINETT AS. + * @author Boy Baukema, SURFnet. + * @author Jaime Perez , UNINETT AS. + * @package SimpleSAMLphp + */ +class Module +{ + + /** + * A list containing the modules currently installed. + * + * @var array + */ + public static $modules = array(); + + /** + * A cache containing specific information for modules, like whether they are enabled or not, or their hooks. + * + * @var array + */ + public static $module_info = array(); + + + /** + * Retrieve the base directory for a module. + * + * The returned path name will be an absolute path. + * + * @param string $module Name of the module + * + * @return string The base directory of a module. + */ + public static function getModuleDir($module) + { + $baseDir = dirname(dirname(dirname(__FILE__))).'/modules'; + $moduleDir = $baseDir.'/'.$module; + + return $moduleDir; + } + + + /** + * Determine whether a module is enabled. + * + * Will return false if the given module doesn't exist. + * + * @param string $module Name of the module + * + * @return bool True if the given module is enabled, false otherwise. + * + * @throws \Exception If module.enable is set and is not boolean. + */ + public static function isModuleEnabled($module) + { + $config = \SimpleSAML_Configuration::getOptionalConfig(); + return self::isModuleEnabledWithConf($module, $config->getArray('module.enable', array())); + } + + + private static function isModuleEnabledWithConf($module, $mod_config) + { + if (isset(self::$module_info[$module]['enabled'])) { + return self::$module_info[$module]['enabled']; + } + + if (!empty(self::$modules) && !in_array($module, self::$modules, true)) { + return false; + } + + $moduleDir = self::getModuleDir($module); + + if (!is_dir($moduleDir)) { + self::$module_info[$module]['enabled'] = false; + return false; + } + + if (isset($mod_config[$module])) { + if (is_bool($mod_config[$module])) { + self::$module_info[$module]['enabled'] = $mod_config[$module]; + return $mod_config[$module]; + } + + throw new \Exception("Invalid module.enable value for the '$module' module."); + } + + if (assert_options(ASSERT_ACTIVE) && + !file_exists($moduleDir.'/default-enable') && + !file_exists($moduleDir.'/default-disable') + ) { + \SimpleSAML\Logger::error("Missing default-enable or default-disable file for the module $module"); + } + + if (file_exists($moduleDir.'/enable')) { + self::$module_info[$module]['enabled'] = true; + return true; + } + + if (!file_exists($moduleDir.'/disable') && file_exists($moduleDir.'/default-enable')) { + self::$module_info[$module]['enabled'] = true; + return true; + } + + self::$module_info[$module]['enabled'] = false; + return false; + } + + + /** + * Get available modules. + * + * @return array One string for each module. + * + * @throws \Exception If we cannot open the module's directory. + */ + public static function getModules() + { + if (!empty(self::$modules)) { + return self::$modules; + } + + $path = self::getModuleDir('.'); + + $dh = scandir($path); + if ($dh === false) { + throw new \Exception('Unable to open module directory "'.$path.'".'); + } + + foreach ($dh as $f) { + if ($f[0] === '.') { + continue; + } + + if (!is_dir($path.'/'.$f)) { + continue; + } + + self::$modules[] = $f; + } + + return self::$modules; + } + + + /** + * Resolve module class. + * + * This function takes a string on the form ":" and converts it to a class + * name. It can also check that the given class is a subclass of a specific class. The + * resolved classname will be "sspmod__<$type>_. + * + * It is also possible to specify a full classname instead of :. + * + * An exception will be thrown if the class can't be resolved. + * + * @param string $id The string we should resolve. + * @param string $type The type of the class. + * @param string|null $subclass The class should be a subclass of this class. Optional. + * + * @return string The classname. + * + * @throws \Exception If the class cannot be resolved. + */ + public static function resolveClass($id, $type, $subclass = null) + { + assert(is_string($id)); + assert(is_string($type)); + assert(is_string($subclass) || $subclass === null); + + $tmp = explode(':', $id, 2); + if (count($tmp) === 1) { // no module involved + $className = $tmp[0]; + if (!class_exists($className)) { + throw new \Exception("Could not resolve '$id': no class named '$className'."); + } + } else { // should be a module + // make sure empty types are handled correctly + $type = (empty($type)) ? '_' : '_'.$type.'_'; + + // check for the old-style class names + $className = 'sspmod_'.$tmp[0].$type.$tmp[1]; + + if (!class_exists($className)) { + // check for the new-style class names, using namespaces + $type = str_replace('_', '\\', $type); + $newClassName = 'SimpleSAML\Module\\'.$tmp[0].$type.$tmp[1]; + + if (!class_exists($newClassName)) { + throw new \Exception("Could not resolve '$id': no class named '$className' or '$newClassName'."); + } + $className = $newClassName; + } + } + + if ($subclass !== null && !is_subclass_of($className, $subclass)) { + throw new \Exception( + 'Could not resolve \''.$id.'\': The class \''.$className.'\' isn\'t a subclass of \''.$subclass.'\'.' + ); + } + + return $className; + } + + + /** + * Get absolute URL to a specified module resource. + * + * This function creates an absolute URL to a resource stored under ".../modules//www/". + * + * @param string $resource Resource path, on the form "/" + * @param array $parameters Extra parameters which should be added to the URL. Optional. + * + * @return string The absolute URL to the given resource. + */ + public static function getModuleURL($resource, array $parameters = array()) + { + assert(is_string($resource)); + assert($resource[0] !== '/'); + + $url = Utils\HTTP::getBaseURL().'module.php/'.$resource; + if (!empty($parameters)) { + $url = Utils\HTTP::addURLParameters($url, $parameters); + } + return $url; + } + + + /** + * Get the available hooks for a given module. + * + * @param string $module The module where we should look for hooks. + * + * @return array An array with the hooks available for this module. Each element is an array with two keys: 'file' + * points to the file that contains the hook, and 'func' contains the name of the function implementing that hook. + * When there are no hooks defined, an empty array is returned. + */ + public static function getModuleHooks($module) + { + if (isset(self::$modules[$module]['hooks'])) { + return self::$modules[$module]['hooks']; + } + + $hook_dir = self::getModuleDir($module).'/hooks'; + if (!is_dir($hook_dir)) { + return array(); + } + + $hooks = array(); + $files = scandir($hook_dir); + foreach ($files as $file) { + if ($file[0] === '.') { + continue; + } + + if (!preg_match('/hook_(\w+)\.php/', $file, $matches)) { + continue; + } + $hook_name = $matches[1]; + $hook_func = $module.'_hook_'.$hook_name; + $hooks[$hook_name] = array('file' => $hook_dir.'/'.$file, 'func' => $hook_func); + } + return $hooks; + } + + + /** + * Call a hook in all enabled modules. + * + * This function iterates over all enabled modules and calls a hook in each module. + * + * @param string $hook The name of the hook. + * @param mixed &$data The data which should be passed to each hook. Will be passed as a reference. + * + * @throws \SimpleSAML_Error_Exception If an invalid hook is found in a module. + */ + public static function callHooks($hook, &$data = null) + { + assert(is_string($hook)); + + $modules = self::getModules(); + $config = \SimpleSAML_Configuration::getOptionalConfig()->getArray('module.enable', array()); + sort($modules); + foreach ($modules as $module) { + if (!self::isModuleEnabledWithConf($module, $config)) { + continue; + } + + if (!isset(self::$module_info[$module]['hooks'])) { + self::$module_info[$module]['hooks'] = self::getModuleHooks($module); + } + + if (!isset(self::$module_info[$module]['hooks'][$hook])) { + continue; + } + + require_once(self::$module_info[$module]['hooks'][$hook]['file']); + + if (!is_callable(self::$module_info[$module]['hooks'][$hook]['func'])) { + throw new \SimpleSAML_Error_Exception('Invalid hook \''.$hook.'\' for module \''.$module.'\'.'); + } + + $fn = self::$module_info[$module]['hooks'][$hook]['func']; + $fn($data); + } + } +} diff --git a/lib/SimpleSAML/Session.php b/lib/SimpleSAML/Session.php new file mode 100755 index 0000000..17e0357 --- /dev/null +++ b/lib/SimpleSAML/Session.php @@ -0,0 +1,1171 @@ + + * @author Jaime PĆ©rez Crespo, UNINETT AS + * @package SimpleSAMLphp + */ +class SimpleSAML_Session implements Serializable +{ + + /** + * This is a timeout value for setData, which indicates that the data + * should never be deleted, i.e. lasts the whole session lifetime. + */ + const DATA_TIMEOUT_SESSION_END = 'sessionEndTimeout'; + + + /** + * The list of loaded session objects. + * + * This is an associative array indexed with the session id. + * + * @var array + */ + private static $sessions = array(); + + + /** + * This variable holds the instance of the session - Singleton approach. + * + * Warning: do not set the instance manually, call SimpleSAML_Session::load() instead. + */ + private static $instance = null; + + + /** + * The session ID of this session. + * + * @var string|null + */ + private $sessionId; + + + /** + * Transient session flag. + * + * @var boolean|false + */ + private $transient = false; + + + /** + * The track id is a new random unique identifier that is generated for each session. + * This is used in the debug logs and error messages to easily track more information + * about what went wrong. + * + * @var string|null + */ + private $trackid = null; + + + private $rememberMeExpire = null; + + + /** + * Marks a session as modified, and therefore needs to be saved before destroying + * this object. + * + * @var bool + */ + private $dirty = false; + + + /** + * Tells the session object that the save callback has been registered and there's no need to register it again. + * + * @var bool + */ + private $callback_registered = false; + + + /** + * This is an array of objects which will expire automatically after a set time. It is used + * where one needs to store some information - for example a logout request, but doesn't + * want it to be stored forever. + * + * The data store contains three levels of nested associative arrays. The first is the data type, the + * second is the identifier, and the third contains the expire time of the data and the data itself. + * + * @var array + */ + private $dataStore = null; + + + /** + * The list of IdP-SP associations. + * + * This is an associative array with the IdP id as the key, and the list of + * associations as the value. + * + * @var array + */ + private $associations = array(); + + + /** + * The authentication token. + * + * This token is used to prevent session fixation attacks. + * + * @var string|null + */ + private $authToken; + + + /** + * Authentication data. + * + * This is an array with authentication data for the various authsources. + * + * @var array Associative array of associative arrays. + */ + private $authData = array(); + + + /** + * Private constructor that restricts instantiation to either getSessionFromRequest() for the current session or + * getSession() for a specific one. + * + * @param boolean $transient Whether to create a transient session or not. + */ + private function __construct($transient = false) + { + if (php_sapi_name() === 'cli' || defined('STDIN')) { + $this->trackid = 'CL'.bin2hex(openssl_random_pseudo_bytes(4)); + SimpleSAML\Logger::setTrackId($this->trackid); + $this->transient = $transient; + return; + } + + if ($transient) { // transient session + $sh = \SimpleSAML\SessionHandler::getSessionHandler(); + $this->trackid = 'TR'.bin2hex(openssl_random_pseudo_bytes(4)); + SimpleSAML\Logger::setTrackId($this->trackid); + $this->transient = true; + + /* + * Initialize the session ID. It might be that we have a session cookie but we couldn't load the session. + * If that's the case, use that ID. If not, create a new ID. + */ + $this->sessionId = $sh->getCookieSessionId(); + if ($this->sessionId === null) { + $this->sessionId = $sh->newSessionId(); + } + } else { // regular session + $sh = \SimpleSAML\SessionHandler::getSessionHandler(); + $this->sessionId = $sh->newSessionId(); + $sh->setCookie($sh->getSessionCookieName(), $this->sessionId, $sh->getCookieParams()); + + + $this->trackid = bin2hex(openssl_random_pseudo_bytes(5)); + SimpleSAML\Logger::setTrackId($this->trackid); + + $this->markDirty(); + + // initialize data for session check function if defined + $globalConfig = SimpleSAML_Configuration::getInstance(); + $checkFunction = $globalConfig->getArray('session.check_function', null); + if (isset($checkFunction)) { + assert(is_callable($checkFunction)); + call_user_func($checkFunction, $this, true); + } + } + } + + + /** + * Serialize this session object. + * + * This method will be invoked by any calls to serialize(). + * + * @return string The serialized representation of this session object. + */ + public function serialize() + { + $serialized = serialize(get_object_vars($this)); + return $serialized; + } + + + /** + * Unserialize a session object and load it.. + * + * This method will be invoked by any calls to unserialize(), allowing us to restore any data that might not + * be serializable in its original form (e.g.: DOM objects). + * + * @param string $serialized The serialized representation of a session that we want to restore. + */ + public function unserialize($serialized) + { + $session = unserialize($serialized); + if (is_array($session)) { + foreach ($session as $k => $v) { + $this->$k = $v; + } + } + + // look for any raw attributes and load them in the 'Attributes' array + foreach ($this->authData as $authority => $parameters) { + if (!array_key_exists('RawAttributes', $parameters)) { + continue; + } + + foreach ($parameters['RawAttributes'] as $attribute => $values) { + foreach ($values as $idx => $value) { // this should be originally a DOMNodeList + /* @var \SAML2\XML\saml\AttributeValue $value */ + $this->authData[$authority]['Attributes'][$attribute][$idx] = $value->element->childNodes; + } + } + } + } + + + /** + * Retrieves the current session. Creates a new session if there's not one. + * + * @return SimpleSAML_Session The current session. + * @throws Exception When session couldn't be initialized and the session fallback is disabled by configuration. + */ + public static function getSessionFromRequest() + { + // check if we already have initialized the session + if (isset(self::$instance)) { + return self::$instance; + } + + // check if we have stored a session stored with the session handler + $session = null; + try { + $session = self::getSession(); + } catch (Exception $e) { + /* + * For some reason, we were unable to initialize this session. Note that this error might be temporary, and + * it's possible that we can recover from it in subsequent requests, so we should not try to create a new + * session here. Therefore, use just a transient session and throw the exception for someone else to handle + * it. + */ + SimpleSAML\Logger::error('Error loading session: '.$e->getMessage()); + self::useTransientSession(); + if ($e instanceof SimpleSAML_Error_Exception) { + $cause = $e->getCause(); + if ($cause instanceof Exception) { + throw $cause; + } + } + throw $e; + } + + // if getSession() found it, use it + if ($session instanceof SimpleSAML_Session) { + return self::load($session); + } + + /* + * We didn't have a session loaded when we started, but we have it now. At this point, getSession() failed but + * it must have triggered the creation of a session at some point during the process (e.g. while logging an + * error message). This means we don't need to create a new session again, we can use the one that's loaded now + * instead. + */ + if (self::$instance !== null) { + return self::$instance; + } + + // try to create a new session + try { + self::load(new SimpleSAML_Session()); + } catch (\SimpleSAML\Error\CannotSetCookie $e) { + // can't create a regular session because we can't set cookies. Use transient. + $c = SimpleSAML_Configuration::getInstance(); + self::useTransientSession(); + + if ($e->getCode() === \SimpleSAML\Error\CannotSetCookie::SECURE_COOKIE) { + throw new \SimpleSAML\Error\CriticalConfigurationError( + $e->getMessage(), + null, + $c->toArray() + ); + } + SimpleSAML\Logger::error('Error creating session: '.$e->getMessage()); + } + + // we must have a session now, either regular or transient + return self::$instance; + } + + /** + * Get a session from the session handler. + * + * @param string|null $sessionId The session we should get, or null to get the current session. + * + * @return SimpleSAML_Session|null The session that is stored in the session handler, or null if the session wasn't + * found. + */ + public static function getSession($sessionId = null) + { + assert(is_string($sessionId) || $sessionId === null); + + $sh = \SimpleSAML\SessionHandler::getSessionHandler(); + + if ($sessionId === null) { + $checkToken = true; + $sessionId = $sh->getCookieSessionId(); + if ($sessionId === null) { + return null; + } + } else { + $checkToken = false; + } + + if (array_key_exists($sessionId, self::$sessions)) { + return self::$sessions[$sessionId]; + } + + $session = $sh->loadSession($sessionId); + if ($session === null) { + return null; + } + + assert($session instanceof self); + + if ($checkToken) { + $globalConfig = SimpleSAML_Configuration::getInstance(); + + if ($session->authToken !== null) { + $authTokenCookieName = $globalConfig->getString( + 'session.authtoken.cookiename', + 'SimpleSAMLAuthToken' + ); + if (!isset($_COOKIE[$authTokenCookieName])) { + SimpleSAML\Logger::warning('Missing AuthToken cookie.'); + return null; + } + if (!SimpleSAML\Utils\Crypto::secureCompare($session->authToken, $_COOKIE[$authTokenCookieName])) { + SimpleSAML\Logger::warning('Invalid AuthToken cookie.'); + return null; + } + } + + // run session check function if defined + $checkFunction = $globalConfig->getArray('session.check_function', null); + if (isset($checkFunction)) { + assert(is_callable($checkFunction)); + $check = call_user_func($checkFunction, $session); + if ($check !== true) { + SimpleSAML\Logger::warning('Session did not pass check function.'); + return null; + } + } + } + + self::$sessions[$sessionId] = $session; + + return $session; + } + + + /** + * Load a given session as the current one. + * + * This method will also set the track ID in the logger to the one in the given session. + * + * Warning: never set self::$instance yourself, call this method instead. + * + * @param SimpleSAML_Session $session The session to load. + * @return SimpleSAML_Session The session we just loaded, just for convenience. + */ + private static function load(SimpleSAML_Session $session) + { + SimpleSAML\Logger::setTrackId($session->getTrackID()); + self::$instance = $session; + return self::$instance; + } + + /** + * Use a transient session. + * + * Create a session that should not be saved at the end of the request. + * Subsequent calls to getInstance() will return this transient session. + */ + public static function useTransientSession() + { + if (isset(self::$instance)) { + // we already have a session, don't bother with a transient session + return; + } + + self::load(new SimpleSAML_Session(true)); + } + + /** + * Create a new session and cache it. + * + * @param string $sessionId The new session we should create. + */ + public static function createSession($sessionId) + { + assert(is_string($sessionId)); + self::$sessions[$sessionId] = null; + } + + /** + * Save the session to the store. + * + * This method saves the session to the session handler in case it has been marked as dirty. + * + * WARNING: please do not use this method directly unless you really need to and know what you are doing. Use + * markDirty() instead. + */ + public function save() + { + if (!$this->dirty) { + // session hasn't changed, don't bother saving it + return; + } + + $this->dirty = false; + $this->callback_registered = false; + + $sh = \SimpleSAML\SessionHandler::getSessionHandler(); + + try { + $sh->saveSession($this); + } catch (Exception $e) { + if (!($e instanceof SimpleSAML_Error_Exception)) { + $e = new SimpleSAML_Error_UnserializableException($e); + } + SimpleSAML\Logger::error('Unable to save session.'); + $e->logError(); + } + } + + + /** + * Save the current session and clean any left overs that could interfere with the normal application behaviour. + * + * Use this method if you are using PHP sessions in your application *and* in SimpleSAMLphp, *after* you are done + * using SimpleSAMLphp and before trying to access your application's session again. + */ + public function cleanup() + { + $this->save(); + $sh = \SimpleSAML\SessionHandler::getSessionHandler(); + if ($sh instanceof \SimpleSAML\SessionHandlerPHP) { + $sh->restorePrevious(); + } + } + + + /** + * Mark this session as dirty. + * + * This method will register a callback to save the session right before any output is sent to the browser. + */ + public function markDirty() + { + if ($this->isTransient()) { + return; + } + + $this->dirty = true; + + if ($this->callback_registered) { + // we already have a shutdown callback registered for this object, no need to add another one + return; + } + $this->callback_registered = header_register_callback(array($this, 'save')); + } + + + /** + * Destroy the session. + * + * Destructor for this class. It will save the session to the session handler + * in case the session has been marked as dirty. Do nothing otherwise. + */ + public function __destruct() + { + $this->save(); + } + + /** + * Retrieve the session ID of this session. + * + * @return string|null The session ID, or null if this is a transient session. + */ + public function getSessionId() + { + return $this->sessionId; + } + + /** + * Retrieve if session is transient. + * + * @return boolean The session transient flag. + */ + public function isTransient() + { + return $this->transient; + } + + /** + * Get a unique ID that will be permanent for this session. + * Used for debugging and tracing log files related to a session. + * + * @return string|null The unique ID. + */ + public function getTrackID() + { + return $this->trackid; + } + + /** + * Get remember me expire time. + * + * @return integer|null The remember me expire time. + */ + public function getRememberMeExpire() + { + return $this->rememberMeExpire; + } + + /** + * Set remember me expire time. + * + * @param int $expire Unix timestamp when remember me session cookies expire. + */ + public function setRememberMeExpire($expire = null) + { + assert(is_int($expire) || $expire === null); + + if ($expire === null) { + $globalConfig = SimpleSAML_Configuration::getInstance(); + $expire = time() + $globalConfig->getInteger('session.rememberme.lifetime', 14 * 86400); + } + $this->rememberMeExpire = $expire; + + $cookieParams = array('expire' => $this->rememberMeExpire); + $this->updateSessionCookies($cookieParams); + } + + /** + * Marks the user as logged in with the specified authority. + * + * If the user already has logged in, the user will be logged out first. + * + * @param string $authority The authority the user logged in with. + * @param array|null $data The authentication data for this authority. + * + * @throws \SimpleSAML\Error\CannotSetCookie If the authentication token cannot be set for some reason. + */ + public function doLogin($authority, array $data = null) + { + assert(is_string($authority)); + assert(is_array($data) || $data === null); + + SimpleSAML\Logger::debug('Session: doLogin("'.$authority.'")'); + + $this->markDirty(); + + if (isset($this->authData[$authority])) { + // we are already logged in, log the user out first + $this->doLogout($authority); + } + + if ($data === null) { + $data = array(); + } + + $data['Authority'] = $authority; + + $globalConfig = SimpleSAML_Configuration::getInstance(); + if (!isset($data['AuthnInstant'])) { + $data['AuthnInstant'] = time(); + } + + $maxSessionExpire = time() + $globalConfig->getInteger('session.duration', 8 * 60 * 60); + if (!isset($data['Expire']) || $data['Expire'] > $maxSessionExpire) { + // unset, or beyond our session lifetime. Clamp it to our maximum session lifetime + $data['Expire'] = $maxSessionExpire; + } + + // check if we have non-serializable attribute values + foreach ($data['Attributes'] as $attribute => $values) { + foreach ($values as $idx => $value) { + if (is_string($value) || is_int($value)) { + continue; + } + + // at this point, this should be a DOMNodeList object... + if (!is_a($value, 'DOMNodeList')) { + continue; + } + + /* @var \DOMNodeList $value */ + if ($value->length === 0) { + continue; + } + + // create an AttributeValue object and save it to 'RawAttributes', using same attribute name and index + $attrval = new \SAML2\XML\saml\AttributeValue($value->item(0)->parentNode); + $data['RawAttributes'][$attribute][$idx] = $attrval; + } + } + + $this->authData[$authority] = $data; + + $this->authToken = SimpleSAML\Utils\Random::generateID(); + $sessionHandler = \SimpleSAML\SessionHandler::getSessionHandler(); + + if (!$this->transient && (!empty($data['RememberMe']) || $this->rememberMeExpire) && + $globalConfig->getBoolean('session.rememberme.enable', false) + ) { + $this->setRememberMeExpire(); + } else { + try { + SimpleSAML\Utils\HTTP::setCookie( + $globalConfig->getString('session.authtoken.cookiename', 'SimpleSAMLAuthToken'), + $this->authToken, + $sessionHandler->getCookieParams() + ); + } catch (SimpleSAML\Error\CannotSetCookie $e) { + /* + * Something went wrong when setting the auth token. We cannot recover from this, so we better log a + * message and throw an exception. The user is not properly logged in anyway, so clear all login + * information from the session. + */ + unset($this->authToken); + unset($this->authData[$authority]); + \SimpleSAML\Logger::error('Cannot set authentication token cookie: '.$e->getMessage()); + throw $e; + } + } + } + + /** + * Marks the user as logged out. + * + * This function will call any registered logout handlers before marking the user as logged out. + * + * @param string $authority The authentication source we are logging out of. + */ + public function doLogout($authority) + { + SimpleSAML\Logger::debug('Session: doLogout('.var_export($authority, true).')'); + + if (!isset($this->authData[$authority])) { + SimpleSAML\Logger::debug('Session: Already logged out of '.$authority.'.'); + return; + } + + $this->markDirty(); + + $this->callLogoutHandlers($authority); + unset($this->authData[$authority]); + + if (!$this->isValid($authority) && $this->rememberMeExpire) { + $this->rememberMeExpire = null; + $this->updateSessionCookies(); + } + } + + /** + * This function calls all registered logout handlers. + * + * @param string $authority The authentication source we are logging out from. + * + * @throws Exception If the handler is not a valid function or method. + */ + private function callLogoutHandlers($authority) + { + assert(is_string($authority)); + assert(isset($this->authData[$authority])); + + if (empty($this->authData[$authority]['LogoutHandlers'])) { + return; + } + foreach ($this->authData[$authority]['LogoutHandlers'] as $handler) { + // verify that the logout handler is a valid function + if (!is_callable($handler)) { + $classname = $handler[0]; + $functionname = $handler[1]; + + throw new Exception( + 'Logout handler is not a valid function: '.$classname.'::'. + $functionname + ); + } + + // call the logout handler + call_user_func($handler); + } + + // we require the logout handlers to register themselves again if they want to be called later + unset($this->authData[$authority]['LogoutHandlers']); + } + + /** + * Is the session representing an authenticated user, and is the session still alive. + * This function will return false after the user has timed out. + * + * @param string $authority The authentication source that the user should be authenticated with. + * + * @return true if the user has a valid session, false if not. + */ + public function isValid($authority) + { + assert(is_string($authority)); + + if (!isset($this->authData[$authority])) { + SimpleSAML\Logger::debug( + 'Session: '.var_export($authority, true). + ' not valid because we are not authenticated.' + ); + return false; + } + + if ($this->authData[$authority]['Expire'] <= time()) { + SimpleSAML\Logger::debug('Session: '.var_export($authority, true).' not valid because it is expired.'); + return false; + } + + SimpleSAML\Logger::debug('Session: Valid session found with '.var_export($authority, true).'.'); + + return true; + } + + /** + * Update session cookies. + * + * @param array $params The parameters for the cookies. + */ + public function updateSessionCookies($params = null) + { + assert(is_null($params) || is_array($params)); + + $sessionHandler = \SimpleSAML\SessionHandler::getSessionHandler(); + + if ($this->sessionId !== null) { + $sessionHandler->setCookie($sessionHandler->getSessionCookieName(), $this->sessionId, $params); + } + + $params = array_merge($sessionHandler->getCookieParams(), is_array($params) ? $params : array()); + + if ($this->authToken !== null) { + $globalConfig = SimpleSAML_Configuration::getInstance(); + \SimpleSAML\Utils\HTTP::setCookie( + $globalConfig->getString('session.authtoken.cookiename', 'SimpleSAMLAuthToken'), + $this->authToken, + $params + ); + } + } + + /** + * Set the lifetime for authentication source. + * + * @param string $authority The authentication source we are setting expire time for. + * @param int $expire The number of seconds authentication source is valid. + */ + public function setAuthorityExpire($authority, $expire = null) + { + assert(isset($this->authData[$authority])); + assert(is_int($expire) || $expire === null); + + $this->markDirty(); + + if ($expire === null) { + $globalConfig = SimpleSAML_Configuration::getInstance(); + $expire = time() + $globalConfig->getInteger('session.duration', 8 * 60 * 60); + } + + $this->authData[$authority]['Expire'] = $expire; + } + + /** + * This function registers a logout handler. + * + * @param string $authority The authority for which register the handler. + * @param string $classname The class which contains the logout handler. + * @param string $functionname The logout handler function. + * + * @throws Exception If the handler is not a valid function or method. + */ + public function registerLogoutHandler($authority, $classname, $functionname) + { + assert(isset($this->authData[$authority])); + + $logout_handler = array($classname, $functionname); + + if (!is_callable($logout_handler)) { + throw new Exception( + 'Logout handler is not a vaild function: '.$classname.'::'. + $functionname + ); + } + + $this->authData[$authority]['LogoutHandlers'][] = $logout_handler; + $this->markDirty(); + } + + /** + * Delete data from the data store. + * + * This function immediately deletes the data with the given type and id from the data store. + * + * @param string $type The type of the data. + * @param string $id The identifier of the data. + */ + public function deleteData($type, $id) + { + assert(is_string($type)); + assert(is_string($id)); + + if (!is_array($this->dataStore)) { + return; + } + + if (!array_key_exists($type, $this->dataStore)) { + return; + } + + unset($this->dataStore[$type][$id]); + $this->markDirty(); + } + + /** + * This function stores data in the data store. + * + * The timeout value can be SimpleSAML_Session::DATA_TIMEOUT_SESSION_END, which indicates + * that the data should never be deleted. + * + * @param string $type The type of the data. This is checked when retrieving data from the store. + * @param string $id The identifier of the data. + * @param mixed $data The data. + * @param int|null $timeout The number of seconds this data should be stored after its last access. + * This parameter is optional. The default value is set in 'session.datastore.timeout', + * and the default is 4 hours. + * + * @throws Exception If the data couldn't be stored. + * + */ + public function setData($type, $id, $data, $timeout = null) + { + assert(is_string($type)); + assert(is_string($id)); + assert(is_int($timeout) || $timeout === null || $timeout === self::DATA_TIMEOUT_SESSION_END); + + // clean out old data + $this->expireData(); + + if ($timeout === null) { + // use the default timeout + $configuration = SimpleSAML_Configuration::getInstance(); + + $timeout = $configuration->getInteger('session.datastore.timeout', null); + if ($timeout !== null) { + if ($timeout <= 0) { + throw new Exception( + 'The value of the session.datastore.timeout'. + ' configuration option should be a positive integer.' + ); + } + } + } + + if ($timeout === self::DATA_TIMEOUT_SESSION_END) { + $expires = self::DATA_TIMEOUT_SESSION_END; + } else { + $expires = time() + $timeout; + } + + $dataInfo = array( + 'expires' => $expires, + 'timeout' => $timeout, + 'data' => $data + ); + + if (!is_array($this->dataStore)) { + $this->dataStore = array(); + } + + if (!array_key_exists($type, $this->dataStore)) { + $this->dataStore[$type] = array(); + } + + $this->dataStore[$type][$id] = $dataInfo; + + $this->markDirty(); + } + + /** + * This function removes expired data from the data store. + * + * Note that this function doesn't mark the session object as dirty. This means that + * if the only change to the session object is that some data has expired, it will not be + * written back to the session store. + */ + private function expireData() + { + if (!is_array($this->dataStore)) { + return; + } + + $ct = time(); + + foreach ($this->dataStore as &$typedData) { + foreach ($typedData as $id => $info) { + if ($info['expires'] === self::DATA_TIMEOUT_SESSION_END) { + // this data never expires + continue; + } + + if ($ct > $info['expires']) { + unset($typedData[$id]); + } + } + } + } + + /** + * This function retrieves data from the data store. + * + * Note that this will not change when the data stored in the data store will expire. If that is required, + * the data should be written back with setData. + * + * @param string $type The type of the data. This must match the type used when adding the data. + * @param string|null $id The identifier of the data. Can be null, in which case null will be returned. + * + * @return mixed The data of the given type with the given id or null if the data doesn't exist in the data store. + */ + public function getData($type, $id) + { + assert(is_string($type)); + assert($id === null || is_string($id)); + + if ($id === null) { + return null; + } + + $this->expireData(); + + if (!is_array($this->dataStore)) { + return null; + } + + if (!array_key_exists($type, $this->dataStore)) { + return null; + } + + if (!array_key_exists($id, $this->dataStore[$type])) { + return null; + } + + return $this->dataStore[$type][$id]['data']; + } + + /** + * This function retrieves all data of the specified type from the data store. + * + * The data will be returned as an associative array with the id of the data as the key, and the data + * as the value of each key. The value will be stored as a copy of the original data. setData must be + * used to update the data. + * + * An empty array will be returned if no data of the given type is found. + * + * @param string $type The type of the data. + * + * @return array An associative array with all data of the given type. + */ + public function getDataOfType($type) + { + assert(is_string($type)); + + if (!is_array($this->dataStore)) { + return array(); + } + + if (!array_key_exists($type, $this->dataStore)) { + return array(); + } + + $ret = array(); + foreach ($this->dataStore[$type] as $id => $info) { + $ret[$id] = $info['data']; + } + + return $ret; + } + + /** + * Get the current persistent authentication state. + * + * @param string $authority The authority to retrieve the data from. + * + * @return array The current persistent authentication state, or null if not authenticated. + */ + public function getAuthState($authority) + { + assert(is_string($authority)); + + if (!isset($this->authData[$authority])) { + return null; + } + + return $this->authData[$authority]; + } + + + /** + * Check whether the session cookie is set. + * + * This function will only return false if is is certain that the cookie isn't set. + * + * @return bool true if it was set, false if not. + */ + public function hasSessionCookie() + { + $sh = \SimpleSAML\SessionHandler::getSessionHandler(); + return $sh->hasSessionCookie(); + } + + + /** + * Add an SP association for an IdP. + * + * This function is only for use by the SimpleSAML_IdP class. + * + * @param string $idp The IdP id. + * @param array $association The association we should add. + */ + public function addAssociation($idp, array $association) + { + assert(is_string($idp)); + assert(isset($association['id'])); + assert(isset($association['Handler'])); + + if (!isset($this->associations)) { + $this->associations = array(); + } + + if (!isset($this->associations[$idp])) { + $this->associations[$idp] = array(); + } + + $this->associations[$idp][$association['id']] = $association; + + $this->markDirty(); + } + + + /** + * Retrieve the associations for an IdP. + * + * This function is only for use by the SimpleSAML_IdP class. + * + * @param string $idp The IdP id. + * + * @return array The IdP associations. + */ + public function getAssociations($idp) + { + assert(is_string($idp)); + + if (!isset($this->associations)) { + $this->associations = array(); + } + + if (!isset($this->associations[$idp])) { + return array(); + } + + foreach ($this->associations[$idp] as $id => $assoc) { + if (!isset($assoc['Expires'])) { + continue; + } + if ($assoc['Expires'] >= time()) { + continue; + } + + unset($this->associations[$idp][$id]); + } + + return $this->associations[$idp]; + } + + + /** + * Remove an SP association for an IdP. + * + * This function is only for use by the SimpleSAML_IdP class. + * + * @param string $idp The IdP id. + * @param string $associationId The id of the association. + */ + public function terminateAssociation($idp, $associationId) + { + assert(is_string($idp)); + assert(is_string($associationId)); + + if (!isset($this->associations)) { + return; + } + + if (!isset($this->associations[$idp])) { + return; + } + + unset($this->associations[$idp][$associationId]); + + $this->markDirty(); + } + + + /** + * Retrieve authentication data. + * + * @param string $authority The authentication source we should retrieve data from. + * @param string $name The name of the data we should retrieve. + * + * @return mixed The value, or null if the value wasn't found. + */ + public function getAuthData($authority, $name) + { + assert(is_string($authority)); + assert(is_string($name)); + + if (!isset($this->authData[$authority][$name])) { + return null; + } + return $this->authData[$authority][$name]; + } + + + /** + * Retrieve a list of authorities (authentication sources) that are currently valid within + * this session. + * + * @return mixed An array containing every authority currently valid. Empty if none available. + */ + public function getAuthorities() + { + $authorities = array(); + foreach (array_keys($this->authData) as $authority) { + if ($this->isValid($authority)) { + $authorities[] = $authority; + } + } + return $authorities; + } +} diff --git a/lib/SimpleSAML/SessionHandler.php b/lib/SimpleSAML/SessionHandler.php new file mode 100755 index 0000000..a8d4ad0 --- /dev/null +++ b/lib/SimpleSAML/SessionHandler.php @@ -0,0 +1,160 @@ + + * @package SimpleSAMLphp + */ + +namespace SimpleSAML; + +abstract class SessionHandler +{ + + + /** + * This static variable contains a reference to the current + * instance of the session handler. This variable will be NULL if + * we haven't instantiated a session handler yet. + * + * @var \SimpleSAML\SessionHandler + */ + protected static $sessionHandler = null; + + + /** + * This function retrieves the current instance of the session handler. + * The session handler will be instantiated if this is the first call + * to this function. + * + * @return \SimpleSAML\SessionHandler The current session handler. + */ + public static function getSessionHandler() + { + if (self::$sessionHandler === null) { + self::createSessionHandler(); + } + + return self::$sessionHandler; + } + + + /** + * This constructor is included in case it is needed in the + * future. Including it now allows us to write parent::__construct() in + * the subclasses of this class. + */ + protected function __construct() + { + } + + + /** + * Create a new session id. + * + * @return string The new session id. + */ + abstract public function newSessionId(); + + + /** + * Retrieve the session ID saved in the session cookie, if there's one. + * + * @return string|null The session id saved in the cookie or null if no session cookie was set. + */ + abstract public function getCookieSessionId(); + + + /** + * Retrieve the session cookie name. + * + * @return string The session cookie name. + */ + abstract public function getSessionCookieName(); + + + /** + * Save the session. + * + * @param \SimpleSAML_Session $session The session object we should save. + */ + abstract public function saveSession(\SimpleSAML_Session $session); + + + /** + * Load the session. + * + * @param string|null $sessionId The ID of the session we should load, or null to use the default. + * + * @return \SimpleSAML_Session|null The session object, or null if it doesn't exist. + */ + abstract public function loadSession($sessionId = null); + + + /** + * Check whether the session cookie is set. + * + * This function will only return false if is is certain that the cookie isn't set. + * + * @return bool True if it was set, false if not. + */ + abstract public function hasSessionCookie(); + + + /** + * Set a session cookie. + * + * @param string $sessionName The name of the session. + * @param string|null $sessionID The session ID to use. Set to null to delete the cookie. + * @param array|null $cookieParams Additional parameters to use for the session cookie. + * + * @throws \SimpleSAML\Error\CannotSetCookie If we can't set the cookie. + */ + abstract public function setCookie($sessionName, $sessionID, array $cookieParams = null); + + + /** + * Initialize the session handler. + * + * This function creates an instance of the session handler which is + * selected in the 'session.handler' configuration directive. If no + * session handler is selected, then we will fall back to the default + * PHP session handler. + */ + private static function createSessionHandler() + { + $store = \SimpleSAML\Store::getInstance(); + if ($store === false) { + self::$sessionHandler = new SessionHandlerPHP(); + } else { + /** @var \SimpleSAML\Store $store At this point, $store can only be an object */ + self::$sessionHandler = new SessionHandlerStore($store); + } + } + + + /** + * Get the cookie parameters that should be used for session cookies. + * + * @return array An array with the cookie parameters. + * @link http://www.php.net/manual/en/function.session-get-cookie-params.php + */ + public function getCookieParams() + { + $config = \SimpleSAML_Configuration::getInstance(); + + return array( + 'lifetime' => $config->getInteger('session.cookie.lifetime', 0), + 'path' => $config->getString('session.cookie.path', '/'), + 'domain' => $config->getString('session.cookie.domain', null), + 'secure' => $config->getBoolean('session.cookie.secure', false), + 'httponly' => true, + ); + } +} diff --git a/lib/SimpleSAML/SessionHandlerCookie.php b/lib/SimpleSAML/SessionHandlerCookie.php new file mode 100755 index 0000000..b94e8f7 --- /dev/null +++ b/lib/SimpleSAML/SessionHandlerCookie.php @@ -0,0 +1,173 @@ + + * @package SimpleSAMLphp + * @abstract + */ + +namespace SimpleSAML; + +use SimpleSAML\Utils\HTTP; + +abstract class SessionHandlerCookie extends SessionHandler +{ + + /** + * This variable contains the current session id. + * + * @var string|null + */ + private $session_id = null; + + + /** + * This variable contains the session cookie name. + * + * @var string + */ + protected $cookie_name; + + + /** + * This constructor initializes the session id based on what we receive in a cookie. We create a new session id and + * set a cookie with this id if we don't have a session id. + */ + protected function __construct() + { + // call the constructor in the base class in case it should become necessary in the future + parent::__construct(); + + $config = \SimpleSAML_Configuration::getInstance(); + $this->cookie_name = $config->getString('session.cookie.name', 'SimpleSAMLSessionID'); + } + + + /** + * Create a new session id. + * + * @return string The new session id. + */ + public function newSessionId() + { + $this->session_id = self::createSessionID(); + \SimpleSAML_Session::createSession($this->session_id); + + return $this->session_id; + } + + + /** + * Retrieve the session ID saved in the session cookie, if there's one. + * + * @return string|null The session id saved in the cookie or null if no session cookie was set. + */ + public function getCookieSessionId() + { + if ($this->session_id === null) { + if (self::hasSessionCookie()) { + // attempt to retrieve the session id from the cookie + $this->session_id = $_COOKIE[$this->cookie_name]; + } + + // check if we have a valid session id + if (!self::isValidSessionID($this->session_id)) { + // invalid, disregard this session + return null; + } + } + + return $this->session_id; + } + + + /** + * Retrieve the session cookie name. + * + * @return string The session cookie name. + */ + public function getSessionCookieName() + { + return $this->cookie_name; + } + + + /** + * This static function creates a session id. A session id consists of 32 random hexadecimal characters. + * + * @return string A random session id. + */ + private static function createSessionID() + { + return bin2hex(openssl_random_pseudo_bytes(16)); + } + + + /** + * This static function validates a session id. A session id is valid if it only consists of characters which are + * allowed in a session id and it is the correct length. + * + * @param string $session_id The session ID we should validate. + * + * @return boolean True if this session ID is valid, false otherwise. + */ + private static function isValidSessionID($session_id) + { + if (!is_string($session_id)) { + return false; + } + + if (strlen($session_id) != 32) { + return false; + } + + if (preg_match('/[^0-9a-f]/', $session_id)) { + return false; + } + + return true; + } + + + /** + * Check whether the session cookie is set. + * + * This function will only return false if is is certain that the cookie isn't set. + * + * @return boolean True if it was set, false otherwise. + */ + public function hasSessionCookie() + { + return array_key_exists($this->cookie_name, $_COOKIE); + } + + + /** + * Set a session cookie. + * + * @param string $sessionName The name of the session. + * @param string|null $sessionID The session ID to use. Set to null to delete the cookie. + * @param array|null $cookieParams Additional parameters to use for the session cookie. + * + * @throws \SimpleSAML\Error\CannotSetCookie If we can't set the cookie. + */ + public function setCookie($sessionName, $sessionID, array $cookieParams = null) + { + assert(is_string($sessionName)); + assert(is_string($sessionID) || $sessionID === null); + + if ($cookieParams !== null) { + $params = array_merge($this->getCookieParams(), $cookieParams); + } else { + $params = $this->getCookieParams(); + } + + HTTP::setCookie($sessionName, $sessionID, $params, true); + } +} diff --git a/lib/SimpleSAML/SessionHandlerPHP.php b/lib/SimpleSAML/SessionHandlerPHP.php new file mode 100755 index 0000000..30f3d90 --- /dev/null +++ b/lib/SimpleSAML/SessionHandlerPHP.php @@ -0,0 +1,362 @@ + + * @package SimpleSAMLphp + */ + +namespace SimpleSAML; + +use SimpleSAML\Error\CannotSetCookie; +use SimpleSAML\Utils\HTTP; + +class SessionHandlerPHP extends SessionHandler +{ + + /** + * This variable contains the session cookie name. + * + * @var string + */ + protected $cookie_name; + + /** + * An associative array containing the details of a session existing previously to creating or loading one with this + * session handler. The keys of the array will be: + * + * - id: the ID of the session, as returned by session_id(). + * - name: the name of the session, as returned by session_name(). + * - cookie_params: the parameters of the session cookie, as returned by session_get_cookie_params(). + * + * @var array + */ + private $previous_session = array(); + + + /** + * Initialize the PHP session handling. This constructor is protected because it should only be called from + * \SimpleSAML\SessionHandler::createSessionHandler(...). + */ + protected function __construct() + { + // call the parent constructor in case it should become necessary in the future + parent::__construct(); + + $config = \SimpleSAML_Configuration::getInstance(); + $this->cookie_name = $config->getString('session.phpsession.cookiename', null); + + if (session_status() === PHP_SESSION_ACTIVE) { + if (session_name() === $this->cookie_name || $this->cookie_name === null) { + Logger::warning( + 'There is already a PHP session with the same name as SimpleSAMLphp\'s session, or the '. + "'session.phpsession.cookiename' configuration option is not set. Make sure to set ". + "SimpleSAMLphp's cookie name with a value not used by any other applications." + ); + } + + /* + * We shouldn't have a session at this point, so it might be an application session. Save the details to + * retrieve it later and commit. + */ + $this->previous_session['cookie_params'] = session_get_cookie_params(); + $this->previous_session['id'] = session_id(); + $this->previous_session['name'] = session_name(); + session_write_close(); + } + + if (!empty($this->cookie_name)) { + session_name($this->cookie_name); + } else { + $this->cookie_name = session_name(); + } + + $params = $this->getCookieParams(); + + if (!headers_sent()) { + session_set_cookie_params( + $params['lifetime'], + $params['path'], + $params['domain'], + $params['secure'], + $params['httponly'] + ); + } + + $savepath = $config->getString('session.phpsession.savepath', null); + if (!empty($savepath)) { + session_save_path($savepath); + } + } + + + /** + * This method starts a session, making sure no warnings are generated due to headers being already sent. + */ + private function sessionStart() + { + $cacheLimiter = session_cache_limiter(); + if (headers_sent()) { + /* + * session_start() tries to send HTTP headers depending on the configuration, according to the + * documentation: + * + * http://php.net/manual/en/function.session-start.php + * + * If headers have been already sent, it will then trigger an error since no more headers can be sent. + * Being unable to send headers does not mean we cannot recover the session by calling session_start(), + * so we still want to call it. In this case, though, we want to avoid session_start() to send any + * headers at all so that no error is generated, so we clear the cache limiter temporarily (no headers + * sent then) and restore it after successfully starting the session. + */ + session_cache_limiter(''); + } + session_cache_limiter($cacheLimiter); + @session_start(); + } + + + /** + * Restore a previously-existing session. + * + * Use this method to restore a previous PHP session existing before SimpleSAMLphp initialized its own session. + * + * WARNING: do not use this method directly, unless you know what you are doing. Calling this method directly, + * outside of SimpleSAML_Session, could cause SimpleSAMLphp's session to be lost or mess the application's one. The + * session must always be saved properly before calling this method. If you don't understand what this is about, + * don't use this method. + */ + public function restorePrevious() + { + if (empty($this->previous_session)) { + return; // nothing to do here + } + + // close our own session + session_write_close(); + + session_name($this->previous_session['name']); + session_set_cookie_params( + $this->previous_session['cookie_params']['lifetime'], + $this->previous_session['cookie_params']['path'], + $this->previous_session['cookie_params']['domain'], + $this->previous_session['cookie_params']['secure'], + $this->previous_session['cookie_params']['httponly'] + ); + session_id($this->previous_session['id']); + $this->previous_session = array(); + $this->sessionStart(); + + /* + * At this point, we have restored a previously-existing session, so we can't continue to use our session here. + * Therefore, we need to load our session again in case we need it. We remove this handler from the parent + * class so that the handler is initialized again if we ever need to do something with the session. + */ + parent::$sessionHandler = null; + } + + + /** + * Create a new session id. + * + * @return string The new session id. + */ + public function newSessionId() + { + // generate new (secure) session id + $sessionId = bin2hex(openssl_random_pseudo_bytes(16)); + \SimpleSAML_Session::createSession($sessionId); + + return $sessionId; + } + + + /** + * Retrieve the session ID saved in the session cookie, if there's one. + * + * @return string|null The session id saved in the cookie or null if no session cookie was set. + * + * @throws \SimpleSAML_Error_Exception If the cookie is marked as secure but we are not using HTTPS. + */ + public function getCookieSessionId() + { + if (!self::hasSessionCookie()) { + return null; // there's no session cookie, can't return ID + } + + // do not rely on session_id() as it can return the ID of a previous session. Get it from the cookie instead. + session_id($_COOKIE[$this->cookie_name]); + + $session_cookie_params = session_get_cookie_params(); + + if ($session_cookie_params['secure'] && !HTTP::isHTTPS()) { + throw new \SimpleSAML_Error_Exception('Session start with secure cookie not allowed on http.'); + } + + $this->sessionStart(); + return session_id(); + } + + + /** + * Retrieve the session cookie name. + * + * @return string The session cookie name. + */ + public function getSessionCookieName() + { + return $this->cookie_name; + } + + + /** + * Save the current session to the PHP session array. + * + * @param \SimpleSAML_Session $session The session object we should save. + */ + public function saveSession(\SimpleSAML_Session $session) + { + $_SESSION['SimpleSAMLphp_SESSION'] = serialize($session); + } + + + /** + * Load the session from the PHP session array. + * + * @param string|null $sessionId The ID of the session we should load, or null to use the default. + * + * @return \SimpleSAML_Session|null The session object, or null if it doesn't exist. + * + * @throws \SimpleSAML_Error_Exception If it wasn't possible to disable session cookies or we are trying to load a + * PHP session with a specific identifier and it doesn't match with the current session identifier. + */ + public function loadSession($sessionId = null) + { + assert(is_string($sessionId) || $sessionId === null); + + if ($sessionId !== null) { + if (session_id() === '') { + // session not initiated with getCookieSessionId(), start session without setting cookie + $ret = ini_set('session.use_cookies', '0'); + if ($ret === false) { + throw new \SimpleSAML_Error_Exception('Disabling PHP option session.use_cookies failed.'); + } + + session_id($sessionId); + $this->sessionStart(); + } elseif ($sessionId !== session_id()) { + throw new \SimpleSAML_Error_Exception('Cannot load PHP session with a specific ID.'); + } + } elseif (session_id() === '') { + self::getCookieSessionId(); + } + + if (!isset($_SESSION['SimpleSAMLphp_SESSION'])) { + return null; + } + + $session = $_SESSION['SimpleSAMLphp_SESSION']; + assert(is_string($session)); + + $session = unserialize($session); + + return ($session !== false) ? $session : null; + } + + + /** + * Check whether the session cookie is set. + * + * This function will only return false if is is certain that the cookie isn't set. + * + * @return boolean True if it was set, false otherwise. + */ + public function hasSessionCookie() + { + return array_key_exists($this->cookie_name, $_COOKIE); + } + + + /** + * Get the cookie parameters that should be used for session cookies. + * + * This function contains some adjustments from the default to provide backwards-compatibility. + * + * @return array The cookie parameters for our sessions. + * @link http://www.php.net/manual/en/function.session-get-cookie-params.php + * + * @throws \SimpleSAML_Error_Exception If both 'session.phpsession.limitedpath' and 'session.cookie.path' options + * are set at the same time in the configuration. + */ + public function getCookieParams() + { + $config = \SimpleSAML_Configuration::getInstance(); + + $ret = parent::getCookieParams(); + + if ($config->hasValue('session.phpsession.limitedpath') && $config->hasValue('session.cookie.path')) { + throw new \SimpleSAML_Error_Exception( + 'You cannot set both the session.phpsession.limitedpath and session.cookie.path options.' + ); + } elseif ($config->hasValue('session.phpsession.limitedpath')) { + $ret['path'] = $config->getBoolean( + 'session.phpsession.limitedpath', + false + ) ? $config->getBasePath() : '/'; + } + + $ret['httponly'] = $config->getBoolean('session.phpsession.httponly', true); + + return $ret; + } + + + /** + * Set a session cookie. + * + * @param string $sessionName The name of the session. + * @param string|null $sessionID The session ID to use. Set to null to delete the cookie. + * @param array|null $cookieParams Additional parameters to use for the session cookie. + * + * @throws \SimpleSAML\Error\CannotSetCookie If we can't set the cookie. + */ + public function setCookie($sessionName, $sessionID, array $cookieParams = null) + { + if ($cookieParams === null) { + $cookieParams = session_get_cookie_params(); + } + + if ($cookieParams['secure'] && !HTTP::isHTTPS()) { + throw new CannotSetCookie( + 'Setting secure cookie on plain HTTP is not allowed.', + CannotSetCookie::SECURE_COOKIE + ); + } + + if (headers_sent()) { + throw new CannotSetCookie( + 'Headers already sent.', + CannotSetCookie::HEADERS_SENT + ); + } + + session_set_cookie_params( + $cookieParams['lifetime'], + $cookieParams['path'], + $cookieParams['domain'], + $cookieParams['secure'], + $cookieParams['httponly'] + ); + + if (session_id() !== '') { + // session already started, close it + session_write_close(); + } + + session_id($sessionID); + $this->sessionStart(); + } +} diff --git a/lib/SimpleSAML/SessionHandlerStore.php b/lib/SimpleSAML/SessionHandlerStore.php new file mode 100755 index 0000000..3286542 --- /dev/null +++ b/lib/SimpleSAML/SessionHandlerStore.php @@ -0,0 +1,80 @@ +store = $store; + } + + + /** + * Load a session from the data store. + * + * @param string|null $sessionId The ID of the session we should load, or null to use the default. + * + * @return \SimpleSAML_Session|null The session object, or null if it doesn't exist. + */ + public function loadSession($sessionId = null) + { + assert(is_string($sessionId) || $sessionId === null); + + if ($sessionId === null) { + $sessionId = $this->getCookieSessionId(); + if ($sessionId === null) { + // no session cookie, nothing to load + return null; + } + } + + $session = $this->store->get('session', $sessionId); + if ($session !== null) { + assert($session instanceof \SimpleSAML_Session); + return $session; + } + + return null; + } + + + /** + * Save a session to the data store. + * + * @param \SimpleSAML_Session $session The session object we should save. + */ + public function saveSession(\SimpleSAML_Session $session) + { + $sessionId = $session->getSessionId(); + + $config = \SimpleSAML_Configuration::getInstance(); + $sessionDuration = $config->getInteger('session.duration', 8 * 60 * 60); + $expire = time() + $sessionDuration; + + $this->store->set('session', $sessionId, $session, $expire); + } +} diff --git a/lib/SimpleSAML/Stats.php b/lib/SimpleSAML/Stats.php new file mode 100755 index 0000000..36b6f66 --- /dev/null +++ b/lib/SimpleSAML/Stats.php @@ -0,0 +1,100 @@ +getString('class'); + $cls = SimpleSAML\Module::resolveClass($cls, 'Stats_Output', 'SimpleSAML_Stats_Output'); + + $output = new $cls($config); + return $output; + } + + + /** + * Initialize the outputs. + */ + private static function initOutputs() + { + + $config = SimpleSAML_Configuration::getInstance(); + $outputCfgs = $config->getConfigList('statistics.out', array()); + + self::$outputs = array(); + foreach ($outputCfgs as $cfg) { + self::$outputs[] = self::createOutput($cfg); + } + } + + + /** + * Notify about an event. + * + * @param string $event The event. + * @param array $data Event data. Optional. + * + * @return void|boolean False if output is not enabled, void otherwise. + */ + public static function log($event, array $data = array()) + { + assert(is_string($event)); + assert(!isset($data['op'])); + assert(!isset($data['time'])); + assert(!isset($data['_id'])); + + if (!self::$initialized) { + self::initOutputs(); + self::$initialized = true; + } + + if (empty(self::$outputs)) { + // not enabled + return; + } + + $data['op'] = $event; + $data['time'] = microtime(true); + + // the ID generation is designed to cluster IDs related in time close together + $int_t = (int) $data['time']; + $hd = openssl_random_pseudo_bytes(16); + $data['_id'] = sprintf('%016x%s', $int_t, bin2hex($hd)); + + foreach (self::$outputs as $out) { + $out->emit($data); + } + } +} diff --git a/lib/SimpleSAML/Stats/Output.php b/lib/SimpleSAML/Stats/Output.php new file mode 100755 index 0000000..8b019c8 --- /dev/null +++ b/lib/SimpleSAML/Stats/Output.php @@ -0,0 +1,29 @@ +getString('store.type', null); + if ($storeType === null) { + $storeType = $config->getString('session.handler', 'phpsession'); + } + + switch ($storeType) { + case 'phpsession': + // we cannot support advanced features with the PHP session store + self::$instance = false; + break; + case 'memcache': + self::$instance = new Store\Memcache(); + break; + case 'sql': + self::$instance = new Store\SQL(); + break; + case 'redis': + self::$instance = new Store\Redis(); + break; + default: + // datastore from module + try { + $className = Module::resolveClass($storeType, 'Store', '\SimpleSAML\Store'); + } catch (\Exception $e) { + $c = $config->toArray(); + $c['store.type'] = 'phpsession'; + throw new CriticalConfigurationError( + "Invalid 'store.type' configuration option. Cannot find store '$storeType'.", + null, + $c + ); + } + self::$instance = new $className(); + } + + return self::$instance; + } + + + /** + * Retrieve a value from the data store. + * + * @param string $type The data type. + * @param string $key The key. + * + * @return mixed|null The value. + */ + abstract public function get($type, $key); + + + /** + * Save a value to the data store. + * + * @param string $type The data type. + * @param string $key The key. + * @param mixed $value The value. + * @param int|null $expire The expiration time (unix timestamp), or null if it never expires. + */ + abstract public function set($type, $key, $value, $expire = null); + + + /** + * Delete a value from the data store. + * + * @param string $type The data type. + * @param string $key The key. + */ + abstract public function delete($type, $key); +} diff --git a/lib/SimpleSAML/Store/Memcache.php b/lib/SimpleSAML/Store/Memcache.php new file mode 100755 index 0000000..8f9fcfb --- /dev/null +++ b/lib/SimpleSAML/Store/Memcache.php @@ -0,0 +1,84 @@ +prefix = $config->getString('memcache_store.prefix', 'simpleSAMLphp'); + } + + + /** + * Retrieve a value from the data store. + * + * @param string $type The data type. + * @param string $key The key. + * @return mixed|null The value. + */ + public function get($type, $key) + { + assert(is_string($type)); + assert(is_string($key)); + + return \SimpleSAML_Memcache::get($this->prefix . '.' . $type . '.' . $key); + } + + + /** + * Save a value to the data store. + * + * @param string $type The data type. + * @param string $key The key. + * @param mixed $value The value. + * @param int|NULL $expire The expiration time (unix timestamp), or NULL if it never expires. + */ + public function set($type, $key, $value, $expire = null) + { + assert(is_string($type)); + assert(is_string($key)); + assert($expire === null || (is_int($expire) && $expire > 2592000)); + + if ($expire === null) { + $expire = 0; + } + + \SimpleSAML_Memcache::set($this->prefix . '.' . $type . '.' . $key, $value, $expire); + } + + + /** + * Delete a value from the data store. + * + * @param string $type The data type. + * @param string $key The key. + */ + public function delete($type, $key) + { + assert(is_string($type)); + assert(is_string($key)); + + \SimpleSAML_Memcache::delete($this->prefix . '.' . $type . '.' . $key); + } +} diff --git a/lib/SimpleSAML/Store/Redis.php b/lib/SimpleSAML/Store/Redis.php new file mode 100755 index 0000000..d102b01 --- /dev/null +++ b/lib/SimpleSAML/Store/Redis.php @@ -0,0 +1,119 @@ +getString('store.redis.host', 'localhost'); + $port = $config->getInteger('store.redis.port', 6379); + $prefix = $config->getString('store.redis.prefix', 'SimpleSAMLphp'); + + $redis = new \Predis\Client( + array( + 'scheme' => 'tcp', + 'host' => $host, + 'port' => $port, + ), + array( + 'prefix' => $prefix, + ) + ); + } + + $this->redis = $redis; + } + + /** + * Deconstruct the Redis data store. + */ + public function __destruct() + { + if (method_exists($this->redis, 'disconnect')) { + $this->redis->disconnect(); + } + } + + /** + * Retrieve a value from the data store. + * + * @param string $type The type of the data. + * @param string $key The key to retrieve. + * + * @return mixed|null The value associated with that key, or null if there's no such key. + */ + public function get($type, $key) + { + assert(is_string($type)); + assert(is_string($key)); + + $result = $this->redis->get("{$type}.{$key}"); + + if ($result === false || $result === null) { + return null; + } + + return unserialize($result); + } + + /** + * Save a value in the data store. + * + * @param string $type The type of the data. + * @param string $key The key to insert. + * @param mixed $value The value itself. + * @param int|null $expire The expiration time (unix timestamp), or null if it never expires. + */ + public function set($type, $key, $value, $expire = null) + { + assert(is_string($type)); + assert(is_string($key)); + assert($expire === null || (is_int($expire) && $expire > 2592000)); + + $serialized = serialize($value); + + if ($expire === null) { + $this->redis->set("{$type}.{$key}", $serialized); + } else { + // setex expire time is in seconds (not unix timestamp) + $this->redis->setex("{$type}.{$key}", $expire - time(), $serialized); + } + } + + /** + * Delete an entry from the data store. + * + * @param string $type The type of the data + * @param string $key The key to delete. + */ + public function delete($type, $key) + { + assert(is_string($type)); + assert(is_string($key)); + + $this->redis->del("{$type}.{$key}"); + } +} diff --git a/lib/SimpleSAML/Store/SQL.php b/lib/SimpleSAML/Store/SQL.php new file mode 100755 index 0000000..c4f2e2c --- /dev/null +++ b/lib/SimpleSAML/Store/SQL.php @@ -0,0 +1,389 @@ +getString('store.sql.dsn'); + $username = $config->getString('store.sql.username', null); + $password = $config->getString('store.sql.password', null); + $options = $config->getArray('store.sql.options', null); + $this->prefix = $config->getString('store.sql.prefix', 'simpleSAMLphp'); + try { + $this->pdo = new \PDO($dsn, $username, $password, $options); + } catch (\PDOException $e) { + throw new \Exception("Database error: " . $e->getMessage()); + } + $this->pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); + + $this->driver = $this->pdo->getAttribute(\PDO::ATTR_DRIVER_NAME); + + if ($this->driver === 'mysql') { + $this->pdo->exec('SET time_zone = "+00:00"'); + } + + $this->initTableVersionTable(); + $this->initKVTable(); + } + + + /** + * Initialize the table-version table. + */ + private function initTableVersionTable() + { + $this->tableVersions = array(); + + try { + $fetchTableVersion = $this->pdo->query('SELECT _name, _version FROM '.$this->prefix.'_tableVersion'); + } catch (\PDOException $e) { + $this->pdo->exec( + 'CREATE TABLE '.$this->prefix. + '_tableVersion (_name VARCHAR(30) NOT NULL UNIQUE, _version INTEGER NOT NULL)' + ); + return; + } + + while (($row = $fetchTableVersion->fetch(\PDO::FETCH_ASSOC)) !== false) { + $this->tableVersions[$row['_name']] = (int) $row['_version']; + } + } + + + /** + * Initialize key-value table. + */ + private function initKVTable() + { + $current_version = $this->getTableVersion('kvstore'); + + $text_t = 'TEXT'; + if ($this->driver === 'mysql') { + // TEXT data type has size constraints that can be hit at some point, so we use LONGTEXT instead + $text_t = 'LONGTEXT'; + } + + /** + * Queries for updates, grouped by version. + * New updates can be added as a new array in this array + */ + $table_updates = array( + array( + 'CREATE TABLE '.$this->prefix. + '_kvstore (_type VARCHAR(30) NOT NULL, _key VARCHAR(50) NOT NULL, _value '.$text_t. + ' NOT NULL, _expire TIMESTAMP, PRIMARY KEY (_key, _type))', + 'CREATE INDEX '.$this->prefix.'_kvstore_expire ON '.$this->prefix.'_kvstore (_expire)' + ), + /** + * This upgrade removes the default NOT NULL constraint on the _expire field in MySQL. + * Because SQLite does not support field alterations, the approach is to: + * Create a new table without the NOT NULL constraint + * Copy the current data to the new table + * Drop the old table + * Rename the new table correctly + * Readd the index + */ + array( + 'CREATE TABLE '.$this->prefix. + '_kvstore_new (_type VARCHAR(30) NOT NULL, _key VARCHAR(50) NOT NULL, _value '.$text_t. + ' NOT NULL, _expire TIMESTAMP NULL, PRIMARY KEY (_key, _type))', + 'INSERT INTO '.$this->prefix.'_kvstore_new SELECT * FROM ' . $this->prefix.'_kvstore', + 'DROP TABLE '.$this->prefix.'_kvstore', + 'ALTER TABLE '.$this->prefix.'_kvstore_new RENAME TO ' . $this->prefix . '_kvstore', + 'CREATE INDEX '.$this->prefix.'_kvstore_expire ON '.$this->prefix.'_kvstore (_expire)' + ) + ); + + $latest_version = count($table_updates); + + if ($current_version == $latest_version) { + return; + } + + // Only run queries for after the current version + $updates_to_run = array_slice($table_updates, $current_version); + + foreach ($updates_to_run as $version_updates) { + foreach ($version_updates as $query) { + $this->pdo->exec($query); + } + } + + $this->setTableVersion('kvstore', $latest_version); + } + + + /** + * Get table version. + * + * @param string $name Table name. + * + * @return int The table version, or 0 if the table doesn't exist. + */ + public function getTableVersion($name) + { + assert(is_string($name)); + + if (!isset($this->tableVersions[$name])) { + return 0; + } + + return $this->tableVersions[$name]; + } + + + /** + * Set table version. + * + * @param string $name Table name. + * @param int $version Table version. + */ + public function setTableVersion($name, $version) + { + assert(is_string($name)); + assert(is_int($version)); + + $this->insertOrUpdate( + $this->prefix.'_tableVersion', + array('_name'), + array('_name' => $name, '_version' => $version) + ); + $this->tableVersions[$name] = $version; + } + + + /** + * Insert or update a key-value in the store. + * + * Since various databases implement different methods for doing this, we abstract it away here. + * + * @param string $table The table we should update. + * @param array $keys The key columns. + * @param array $data Associative array with columns. + */ + public function insertOrUpdate($table, array $keys, array $data) + { + assert(is_string($table)); + + $colNames = '('.implode(', ', array_keys($data)).')'; + $values = 'VALUES(:'.implode(', :', array_keys($data)).')'; + + switch ($this->driver) { + case 'mysql': + $query = 'REPLACE INTO '.$table.' '.$colNames.' '.$values; + $query = $this->pdo->prepare($query); + $query->execute($data); + return; + case 'sqlite': + $query = 'INSERT OR REPLACE INTO '.$table.' '.$colNames.' '.$values; + $query = $this->pdo->prepare($query); + $query->execute($data); + return; + } + + // default implementation, try INSERT, and UPDATE if that fails. + $insertQuery = 'INSERT INTO '.$table.' '.$colNames.' '.$values; + $insertQuery = $this->pdo->prepare($insertQuery); + try { + $insertQuery->execute($data); + return; + } catch (\PDOException $e) { + $ecode = (string) $e->getCode(); + switch ($ecode) { + case '23505': // PostgreSQL + break; + default: + Logger::error('Error while saving data: '.$e->getMessage()); + throw $e; + } + } + + $updateCols = array(); + $condCols = array(); + foreach ($data as $col => $value) { + $tmp = $col.' = :'.$col; + + if (in_array($col, $keys, true)) { + $condCols[] = $tmp; + } else { + $updateCols[] = $tmp; + } + } + + $updateQuery = 'UPDATE '.$table.' SET '.implode(',', $updateCols).' WHERE '.implode(' AND ', $condCols); + $updateQuery = $this->pdo->prepare($updateQuery); + $updateQuery->execute($data); + } + + + /** + * Clean the key-value table of expired entries. + */ + private function cleanKVStore() + { + Logger::debug('store.sql: Cleaning key-value store.'); + + $query = 'DELETE FROM '.$this->prefix.'_kvstore WHERE _expire < :now'; + $params = array('now' => gmdate('Y-m-d H:i:s')); + + $query = $this->pdo->prepare($query); + $query->execute($params); + } + + + /** + * Retrieve a value from the data store. + * + * @param string $type The type of the data. + * @param string $key The key to retrieve. + * + * @return mixed|null The value associated with that key, or null if there's no such key. + */ + public function get($type, $key) + { + assert(is_string($type)); + assert(is_string($key)); + + if (strlen($key) > 50) { + $key = sha1($key); + } + + $query = 'SELECT _value FROM '.$this->prefix. + '_kvstore WHERE _type = :type AND _key = :key AND (_expire IS NULL OR _expire > :now)'; + $params = array('type' => $type, 'key' => $key, 'now' => gmdate('Y-m-d H:i:s')); + + $query = $this->pdo->prepare($query); + $query->execute($params); + + $row = $query->fetch(\PDO::FETCH_ASSOC); + if ($row === false) { + return null; + } + + $value = $row['_value']; + if (is_resource($value)) { + $value = stream_get_contents($value); + } + $value = urldecode($value); + $value = unserialize($value); + + if ($value === false) { + return null; + } + return $value; + } + + + /** + * Save a value in the data store. + * + * @param string $type The type of the data. + * @param string $key The key to insert. + * @param mixed $value The value itself. + * @param int|null $expire The expiration time (unix timestamp), or null if it never expires. + */ + public function set($type, $key, $value, $expire = null) + { + assert(is_string($type)); + assert(is_string($key)); + assert($expire === null || (is_int($expire) && $expire > 2592000)); + + if (rand(0, 1000) < 10) { + $this->cleanKVStore(); + } + + if (strlen($key) > 50) { + $key = sha1($key); + } + + if ($expire !== null) { + $expire = gmdate('Y-m-d H:i:s', $expire); + } + + $value = serialize($value); + $value = rawurlencode($value); + + $data = array( + '_type' => $type, + '_key' => $key, + '_value' => $value, + '_expire' => $expire, + ); + + $this->insertOrUpdate($this->prefix.'_kvstore', array('_type', '_key'), $data); + } + + + /** + * Delete an entry from the data store. + * + * @param string $type The type of the data + * @param string $key The key to delete. + */ + public function delete($type, $key) + { + assert(is_string($type)); + assert(is_string($key)); + + if (strlen($key) > 50) { + $key = sha1($key); + } + + $data = array( + '_type' => $type, + '_key' => $key, + ); + + $query = 'DELETE FROM '.$this->prefix.'_kvstore WHERE _type=:_type AND _key=:_key'; + $query = $this->pdo->prepare($query); + $query->execute($data); + } +} diff --git a/lib/SimpleSAML/Utilities.php b/lib/SimpleSAML/Utilities.php new file mode 100755 index 0000000..68cd10b --- /dev/null +++ b/lib/SimpleSAML/Utilities.php @@ -0,0 +1,707 @@ + + * @package SimpleSAMLphp + * + * @deprecated This entire class will be removed in SimpleSAMLphp 2.0. + */ +class SimpleSAML_Utilities +{ + + /** + * @deprecated This property will be removed in SSP 2.0. Please use SimpleSAML\Logger::isErrorMasked() instead. + */ + public static $logMask = 0; + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::getSelfHost() instead. + */ + public static function getSelfHost() + { + return \SimpleSAML\Utils\HTTP::getSelfHost(); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::getSelfURLHost() instead. + */ + public static function selfURLhost() + { + return \SimpleSAML\Utils\HTTP::getSelfURLHost(); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::isHTTPS() instead. + */ + public static function isHTTPS() + { + return \SimpleSAML\Utils\HTTP::isHTTPS(); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::getSelfURLNoQuery() + * instead. + */ + public static function selfURLNoQuery() + { + return \SimpleSAML\Utils\HTTP::getSelfURLNoQuery(); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::getSelfHostWithPath() + * instead. + */ + public static function getSelfHostWithPath() + { + return \SimpleSAML\Utils\HTTP::getSelfHostWithPath(); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::getFirstPathElement() + * instead. + */ + public static function getFirstPathElement($trailingslash = true) + { + return \SimpleSAML\Utils\HTTP::getFirstPathElement($trailingslash); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::getSelfURL() instead. + */ + public static function selfURL() + { + return \SimpleSAML\Utils\HTTP::getSelfURL(); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::getBaseURL() instead. + */ + public static function getBaseURL() + { + return \SimpleSAML\Utils\HTTP::getBaseURL(); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::addURLParameters() instead. + */ + public static function addURLparameter($url, $parameters) + { + return \SimpleSAML\Utils\HTTP::addURLParameters($url, $parameters); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Utils\HTTP::checkURLAllowed() instead. + */ + public static function checkURLAllowed($url, array $trustedSites = null) + { + return \SimpleSAML\Utils\HTTP::checkURLAllowed($url, $trustedSites); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML_Auth_State::parseStateID() instead. + */ + public static function parseStateID($stateId) + { + return SimpleSAML_Auth_State::parseStateID($stateId); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. + */ + public static function checkDateConditions($start = null, $end = null) + { + $currentTime = time(); + + if (!empty($start)) { + $startTime = \SAML2\Utils::xsDateTimeToTimestamp($start); + // Allow for a 10 minute difference in Time + if (($startTime < 0) || (($startTime - 600) > $currentTime)) { + return false; + } + } + if (!empty($end)) { + $endTime = \SAML2\Utils::xsDateTimeToTimestamp($end); + if (($endTime < 0) || ($endTime <= $currentTime)) { + return false; + } + } + return true; + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Random::generateID() instead. + */ + public static function generateID() + { + return SimpleSAML\Utils\Random::generateID(); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Utils\Time::generateTimestamp() + * instead. + */ + public static function generateTimestamp($instant = null) + { + return SimpleSAML\Utils\Time::generateTimestamp($instant); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Utils\Time::parseDuration() instead. + */ + public static function parseDuration($duration, $timestamp = null) + { + return SimpleSAML\Utils\Time::parseDuration($duration, $timestamp); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please raise a SimpleSAML_Error_Error exception instead. + */ + public static function fatalError($trackId = 'na', $errorCode = null, Exception $e = null) + { + throw new SimpleSAML_Error_Error($errorCode, $e); + } + + + /** + * @deprecated This method will be removed in version 2.0. Use SimpleSAML\Utils\Net::ipCIDRcheck() instead. + */ + public static function ipCIDRcheck($cidr, $ip = null) + { + return SimpleSAML\Utils\Net::ipCIDRcheck($cidr, $ip); + } + + + private static function _doRedirect($url, $parameters = array()) + { + assert(is_string($url)); + assert(!empty($url)); + assert(is_array($parameters)); + + if (!empty($parameters)) { + $url = self::addURLparameter($url, $parameters); + } + + /* Set the HTTP result code. This is either 303 See Other or + * 302 Found. HTTP 303 See Other is sent if the HTTP version + * is HTTP/1.1 and the request type was a POST request. + */ + if ($_SERVER['SERVER_PROTOCOL'] === 'HTTP/1.1' && + $_SERVER['REQUEST_METHOD'] === 'POST' + ) { + $code = 303; + } else { + $code = 302; + } + + if (strlen($url) > 2048) { + SimpleSAML\Logger::warning('Redirecting to a URL longer than 2048 bytes.'); + } + + // Set the location header + header('Location: '.$url, true, $code); + + // Disable caching of this response + header('Pragma: no-cache'); + header('Cache-Control: no-cache, must-revalidate'); + + // Show a minimal web page with a clickable link to the URL + echo ''."\n"; + echo ''."\n"; + echo ''; + echo ' + + Redirect + '; + echo ''; + echo '

Redirect

'; + echo '

'; + echo 'You were redirected to: '; + echo ''.htmlspecialchars($url).''; + echo ''; + echo '

'; + echo ''; + echo ''; + + // End script execution + exit; + } + + + /** + * @deprecated 1.12.0 This method will be removed from the API. Instead, use the redirectTrustedURL() or + * redirectUntrustedURL() functions accordingly. + */ + public static function redirect($url, $parameters = array(), $allowed_redirect_hosts = null) + { + assert(is_string($url)); + assert(strlen($url) > 0); + assert(is_array($parameters)); + + if ($allowed_redirect_hosts !== null) { + $url = self::checkURLAllowed($url, $allowed_redirect_hosts); + } else { + $url = self::normalizeURL($url); + } + self::_doRedirect($url, $parameters); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::redirectTrustedURL() + * instead. + */ + public static function redirectTrustedURL($url, $parameters = array()) + { + \SimpleSAML\Utils\HTTP::redirectTrustedURL($url, $parameters); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::redirectUntrustedURL() + * instead. + */ + public static function redirectUntrustedURL($url, $parameters = array()) + { + \SimpleSAML\Utils\HTTP::redirectUntrustedURL($url, $parameters); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Arrays::transpose() instead. + */ + public static function transposeArray($in) + { + return SimpleSAML\Utils\Arrays::transpose($in); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\XML::isDOMNodeOfType() + * instead. + */ + public static function isDOMElementOfType(DOMNode $element, $name, $nsURI) + { + return SimpleSAML\Utils\XML::isDOMNodeOfType($element, $name, $nsURI); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\XML::getDOMChildren() instead. + */ + public static function getDOMChildren(DOMElement $element, $localName, $namespaceURI) + { + return SimpleSAML\Utils\XML::getDOMChildren($element, $localName, $namespaceURI); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\XML::getDOMText() instead. + */ + public static function getDOMText($element) + { + return SimpleSAML\Utils\XML::getDOMText($element); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::getAcceptLanguage() + * instead. + */ + public static function getAcceptLanguage() + { + return \SimpleSAML\Utils\HTTP::getAcceptLanguage(); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\XML::isValid() instead. + */ + public static function validateXML($xml, $schema) + { + $result = \SimpleSAML\Utils\XML::isValid($xml, $schema); + return ($result === true) ? '' : $result; + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\XML::checkSAMLMessage() instead. + */ + public static function validateXMLDocument($message, $type) + { + \SimpleSAML\Utils\XML::checkSAMLMessage($message, $type); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use openssl_random_pseudo_bytes() instead. + */ + public static function generateRandomBytes($length) + { + assert(is_int($length)); + + return openssl_random_pseudo_bytes($length); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use bin2hex() instead. + */ + public static function stringToHex($bytes) + { + $ret = ''; + for ($i = 0; $i < strlen($bytes); $i++) { + $ret .= sprintf('%02x', ord($bytes[$i])); + } + return $ret; + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\System::resolvePath() instead. + */ + public static function resolvePath($path, $base = null) + { + return \SimpleSAML\Utils\System::resolvePath($path, $base); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::resolveURL() instead. + */ + public static function resolveURL($url, $base = null) + { + return \SimpleSAML\Utils\HTTP::resolveURL($url, $base); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::normalizeURL() instead. + */ + public static function normalizeURL($url) + { + return \SimpleSAML\Utils\HTTP::normalizeURL($url); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::parseQueryString() instead. + */ + public static function parseQueryString($query_string) + { + return \SimpleSAML\Utils\HTTP::parseQueryString($query_string); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use + * SimpleSAML\Utils\Attributes::normalizeAttributesArray() instead. + */ + public static function parseAttributes($attributes) + { + return SimpleSAML\Utils\Attributes::normalizeAttributesArray($attributes); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Config::getSecretSalt() instead. + */ + public static function getSecretSalt() + { + return SimpleSAML\Utils\Config::getSecretSalt(); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please call error_get_last() directly. + */ + public static function getLastError() + { + + if (!function_exists('error_get_last')) { + return '[Cannot get error message]'; + } + + $error = error_get_last(); + if ($error === null) { + return '[No error message found]'; + } + + return $error['message']; + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Config::getCertPath() instead. + */ + public static function resolveCert($path) + { + return \SimpleSAML\Utils\Config::getCertPath($path); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Crypto::loadPublicKey() instead. + */ + public static function loadPublicKey(SimpleSAML_Configuration $metadata, $required = false, $prefix = '') + { + return SimpleSAML\Utils\Crypto::loadPublicKey($metadata, $required, $prefix); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Crypto::loadPrivateKey() instead. + */ + public static function loadPrivateKey(SimpleSAML_Configuration $metadata, $required = false, $prefix = '') + { + return SimpleSAML\Utils\Crypto::loadPrivateKey($metadata, $required, $prefix); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\XML::formatDOMElement() instead. + */ + public static function formatDOMElement(DOMElement $root, $indentBase = '') + { + SimpleSAML\Utils\XML::formatDOMElement($root, $indentBase); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\XML::formatXMLString() instead. + */ + public static function formatXMLString($xml, $indentBase = '') + { + return SimpleSAML\Utils\XML::formatXMLString($xml, $indentBase); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Arrays::arrayize() instead. + */ + public static function arrayize($data, $index = 0) + { + return SimpleSAML\Utils\Arrays::arrayize($data, $index); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Auth::isAdmin() instead. + */ + public static function isAdmin() + { + return SimpleSAML\Utils\Auth::isAdmin(); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Auth::getAdminLoginURL instead(); + */ + public static function getAdminLoginURL($returnTo = null) + { + return SimpleSAML\Utils\Auth::getAdminLoginURL($returnTo); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Auth::requireAdmin() instead. + */ + public static function requireAdmin() + { + \SimpleSAML\Utils\Auth::requireAdmin(); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::submitPOSTData() instead. + */ + public static function postRedirect($destination, $post) + { + \SimpleSAML\Utils\HTTP::submitPOSTData($destination, $post); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. PLease use SimpleSAML\Utils\HTTP::getPOSTRedirectURL() + * instead. + */ + public static function createPostRedirectLink($destination, $post) + { + return \SimpleSAML\Utils\HTTP::getPOSTRedirectURL($destination, $post); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::getPOSTRedirectURL() + * instead. + */ + public static function createHttpPostRedirectLink($destination, $post) + { + assert(is_string($destination)); + assert(is_array($post)); + + $postId = SimpleSAML\Utils\Random::generateID(); + $postData = array( + 'post' => $post, + 'url' => $destination, + ); + + $session = SimpleSAML_Session::getSessionFromRequest(); + $session->setData('core_postdatalink', $postId, $postData); + + $redirInfo = base64_encode(SimpleSAML\Utils\Crypto::aesEncrypt($session->getSessionId().':'.$postId)); + + $url = SimpleSAML\Module::getModuleURL('core/postredirect.php', array('RedirInfo' => $redirInfo)); + $url = preg_replace("#^https:#", "http:", $url); + + return $url; + } + + + /** + * @deprecated This method will be removed in SSP 2.0. + */ + public static function validateCA($certificate, $caFile) + { + \SimpleSAML\XML\Validator::validateCertificate($certificate, $caFile); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Time::initTimezone() instead. + */ + public static function initTimezone() + { + \SimpleSAML\Utils\Time::initTimezone(); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\System::writeFile() instead. + */ + public static function writeFile($filename, $data, $mode = 0600) + { + \SimpleSAML\Utils\System::writeFile($filename, $data, $mode); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\System::getTempDir instead. + */ + public static function getTempDir() + { + return SimpleSAML\Utils\System::getTempDir(); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Logger::maskErrors() instead. + */ + public static function maskErrors($mask) + { + SimpleSAML\Logger::maskErrors($mask); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Logger::popErrorMask() instead. + */ + public static function popErrorMask() + { + SimpleSAML\Logger::popErrorMask(); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use + * SimpleSAML\Utils\Config\Metadata::getDefaultEndpoint() instead. + */ + public static function getDefaultEndpoint(array $endpoints, array $bindings = null) + { + return \SimpleSAML\Utils\Config\Metadata::getDefaultEndpoint($endpoints, $bindings); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::checkSessionCookie() + * instead. + */ + public static function checkCookie($retryURL = null) + { + \SimpleSAML\Utils\HTTP::checkSessionCookie($retryURL); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\XML::debugSAMLMessage() instead. + */ + public static function debugMessage($message, $type) + { + \SimpleSAML\Utils\XML::debugSAMLMessage($message, $type); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::fetch() instead. + */ + public static function fetch($path, $context = array(), $getHeaders = false) + { + return \SimpleSAML\Utils\HTTP::fetch($path, $context, $getHeaders); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Crypto::aesEncrypt() instead. + */ + public static function aesEncrypt($clear) + { + return SimpleSAML\Utils\Crypto::aesEncrypt($clear); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Crypto::aesDecrypt() instead. + */ + public static function aesDecrypt($encData) + { + return SimpleSAML\Utils\Crypto::aesDecrypt($encData); + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\System::getOS() instead. + */ + public static function isWindowsOS() + { + return SimpleSAML\Utils\System::getOS() === SimpleSAML\Utils\System::WINDOWS; + } + + + /** + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::setCookie() instead. + */ + public static function setCookie($name, $value, array $params = null, $throw = true) + { + \SimpleSAML\Utils\HTTP::setCookie($name, $value, $params, $throw); + } +} diff --git a/lib/SimpleSAML/Utils/Arrays.php b/lib/SimpleSAML/Utils/Arrays.php new file mode 100755 index 0000000..0a51292 --- /dev/null +++ b/lib/SimpleSAML/Utils/Arrays.php @@ -0,0 +1,60 @@ + + * @author Jaime Perez, UNINETT AS + */ + public static function arrayize($data, $index = 0) + { + return (is_array($data)) ? $data : array($index => $data); + } + + + /** + * This function transposes a two-dimensional array, so that $a['k1']['k2'] becomes $a['k2']['k1']. + * + * @param array $array The two-dimensional array to transpose. + * + * @return mixed The transposed array, or false if $array is not a valid two-dimensional array. + * + * @author Andreas Solberg, UNINETT AS + */ + public static function transpose($array) + { + if (!is_array($array)) { + return false; + } + + $ret = array(); + foreach ($array as $k1 => $a2) { + if (!is_array($a2)) { + return false; + } + + foreach ($a2 as $k2 => $v) { + if (!array_key_exists($k2, $ret)) { + $ret[$k2] = array(); + } + $ret[$k2][$k1] = $v; + } + } + return $ret; + } +} diff --git a/lib/SimpleSAML/Utils/Attributes.php b/lib/SimpleSAML/Utils/Attributes.php new file mode 100755 index 0000000..1f49413 --- /dev/null +++ b/lib/SimpleSAML/Utils/Attributes.php @@ -0,0 +1,131 @@ + + * @package SimpleSAML + */ +class Attributes +{ + + /** + * Look for an attribute in a normalized attributes array, failing if it's not there. + * + * @param array $attributes The normalized array containing attributes. + * @param string $expected The name of the attribute we are looking for. + * @param bool $allow_multiple Whether to allow multiple values in the attribute or not. + * + * @return mixed The value of the attribute we are expecting. If the attribute has multiple values and + * $allow_multiple is set to true, the first value will be returned. + * + * @throws \InvalidArgumentException If $attributes is not an array or $expected is not a string. + * @throws \SimpleSAML_Error_Exception If the expected attribute was not found in the attributes array. + */ + public static function getExpectedAttribute($attributes, $expected, $allow_multiple = false) + { + if (!is_array($attributes)) { + throw new \InvalidArgumentException( + 'The attributes array is not an array, it is: '.print_r($attributes, true).'.' + ); + } + + if (!is_string($expected)) { + throw new \InvalidArgumentException( + 'The expected attribute is not a string, it is: '.print_r($expected, true).'.' + ); + } + + if (!array_key_exists($expected, $attributes)) { + throw new \SimpleSAML_Error_Exception("No such attribute '".$expected."' found."); + } + $attribute = $attributes[$expected]; + + if (!is_array($attribute)) { + throw new \InvalidArgumentException('The attributes array is not normalized, values should be arrays.'); + } + + if (count($attribute) === 0) { + throw new \SimpleSAML_Error_Exception("Empty attribute '".$expected."'.'"); + } elseif (count($attribute) > 1) { + if ($allow_multiple === false) { + throw new \SimpleSAML_Error_Exception( + 'More than one value found for the attribute, multiple values not allowed.' + ); + } + } + return reset($attribute); + } + + + /** + * Validate and normalize an array with attributes. + * + * This function takes in an associative array with attributes, and parses and validates + * this array. On success, it will return a normalized array, where each attribute name + * is an index to an array of one or more strings. On failure an exception will be thrown. + * This exception will contain an message describing what is wrong. + * + * @param array $attributes The array containing attributes that we should validate and normalize. + * + * @return array The normalized attributes array. + * @throws \InvalidArgumentException If input is not an array, array keys are not strings or attribute values are + * not strings. + * + * @author Olav Morken, UNINETT AS + * @author Jaime Perez, UNINETT AS + */ + public static function normalizeAttributesArray($attributes) + { + if (!is_array($attributes)) { + throw new \InvalidArgumentException( + 'The attributes array is not an array, it is: '.print_r($attributes, true).'".' + ); + } + + $newAttrs = array(); + foreach ($attributes as $name => $values) { + if (!is_string($name)) { + throw new \InvalidArgumentException('Invalid attribute name: "'.print_r($name, true).'".'); + } + + $values = Arrays::arrayize($values); + + foreach ($values as $value) { + if (!is_string($value)) { + throw new \InvalidArgumentException( + 'Invalid attribute value for attribute '.$name.': "'.print_r($value, true).'".' + ); + } + } + + $newAttrs[$name] = $values; + } + + return $newAttrs; + } + + + /** + * Extract an attribute's namespace, or revert to default. + * + * This function takes in a namespaced attribute name and splits it in a namespace/attribute name tuple. + * When no namespace is found in the attribute name, it will be namespaced with the default namespace. + * This default namespace can be overriden by supplying a second parameter to this function. + * + * @param string $name The namespaced attribute name. + * @param string $defaultns The default namespace that should be used when no namespace is found. + * + * @return array The attribute name, split to the namespace and the actual attribute name. + */ + public static function getAttributeNamespace($name, $defaultns) + { + $slash = strrpos($name, '/'); + if ($slash !== false) { + $defaultns = substr($name, 0, $slash); + $name = substr($name, $slash + 1); + } + return array(htmlspecialchars($defaultns), htmlspecialchars($name)); + } +} diff --git a/lib/SimpleSAML/Utils/Auth.php b/lib/SimpleSAML/Utils/Auth.php new file mode 100755 index 0000000..cd2dbc2 --- /dev/null +++ b/lib/SimpleSAML/Utils/Auth.php @@ -0,0 +1,76 @@ + $returnTo)); + } + + /** + * Check whether the current user is admin. + * + * @return boolean True if the current user is an admin user, false otherwise. + * + * @author Olav Morken, UNINETT AS + */ + public static function isAdmin() + { + $session = \SimpleSAML_Session::getSessionFromRequest(); + return $session->isValid('admin') || $session->isValid('login-admin'); + } + + /** + * Require admin access to the current page. + * + * This is a helper function for limiting a page to those with administrative access. It will redirect the user to + * a login page if the current user doesn't have admin access. + * + * @return void This function will only return if the user is admin. + * @throws \SimpleSAML_Error_Exception If no "admin" authentication source was configured. + * + * @author Olav Morken, UNINETT AS + * @author Jaime Perez, UNINETT AS + */ + public static function requireAdmin() + { + if (self::isAdmin()) { + return; + } + + // not authenticated as admin user, start authentication + if (\SimpleSAML_Auth_Source::getById('admin') !== null) { + $as = new \SimpleSAML\Auth\Simple('admin'); + $as->login(); + } else { + throw new \SimpleSAML_Error_Exception( + 'Cannot find "admin" auth source, and admin privileges are required.' + ); + } + } +} diff --git a/lib/SimpleSAML/Utils/ClearableState.php b/lib/SimpleSAML/Utils/ClearableState.php new file mode 100755 index 0000000..b28554c --- /dev/null +++ b/lib/SimpleSAML/Utils/ClearableState.php @@ -0,0 +1,17 @@ + + */ + public static function getCertPath($path) + { + if (!is_string($path)) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + + $globalConfig = \SimpleSAML_Configuration::getInstance(); + $base = $globalConfig->getPathValue('certdir', 'cert/'); + return System::resolvePath($path, $base); + } + + + /** + * Retrieve the secret salt. + * + * This function retrieves the value which is configured as the secret salt. It will check that the value exists + * and is set to a non-default value. If it isn't, an exception will be thrown. + * + * The secret salt can be used as a component in hash functions, to make it difficult to test all possible values + * in order to retrieve the original value. It can also be used as a simple method for signing data, by hashing the + * data together with the salt. + * + * @return string The secret salt. + * @throws \InvalidArgumentException If the secret salt hasn't been configured. + * + * @author Olav Morken, UNINETT AS + */ + public static function getSecretSalt() + { + $secretSalt = \SimpleSAML_Configuration::getInstance()->getString('secretsalt'); + if ($secretSalt === 'defaultsecretsalt') { + throw new \InvalidArgumentException('The "secretsalt" configuration option must be set to a secret value.'); + } + + return $secretSalt; + } + + /** + * Returns the path to the config dir + * + * If the SIMPLESAMLPHP_CONFIG_DIR environment variable has been set, it takes precedence over the default + * $simplesamldir/config directory. + * + * @return string The path to the configuration directory. + */ + public static function getConfigDir() + { + $configDir = dirname(dirname(dirname(__DIR__))) . '/config'; + /** @var string|false $configDirEnv */ + $configDirEnv = getenv('SIMPLESAMLPHP_CONFIG_DIR'); + + if($configDirEnv === false) { + $configDirEnv = getenv('REDIRECT_SIMPLESAMLPHP_CONFIG_DIR'); + } + + if ($configDirEnv !== false) { + if (!is_dir($configDirEnv)) { + throw new \InvalidArgumentException( + sprintf( + 'Config directory specified by environment variable SIMPLESAMLPHP_CONFIG_DIR is not a ' . + 'directory. Given: "%s"', + $configDirEnv + ) + ); + } + $configDir = $configDirEnv; + } + + return $configDir; + } +} diff --git a/lib/SimpleSAML/Utils/Config/Metadata.php b/lib/SimpleSAML/Utils/Config/Metadata.php new file mode 100755 index 0000000..d197430 --- /dev/null +++ b/lib/SimpleSAML/Utils/Config/Metadata.php @@ -0,0 +1,282 @@ + + */ +class Metadata +{ + + /** + * The string that identities Entity Categories. + * + * @var string + */ + public static $ENTITY_CATEGORY = 'http://macedir.org/entity-category'; + + + /** + * The string the identifies the REFEDS "Hide From Discovery" Entity Category. + * + * @var string + */ + public static $HIDE_FROM_DISCOVERY = 'http://refeds.org/category/hide-from-discovery'; + + + /** + * Valid options for the ContactPerson element + * + * The 'attributes' option isn't defined in section 2.3.2.2 of the OASIS document, but + * it is required to allow additons to the main contact person element for trust + * frameworks. + * + * @var array The valid configuration options for a contact configuration array. + * @see "Metadata for the OASIS Security Assertion Markup Language (SAML) V2.0", section 2.3.2.2. + */ + public static $VALID_CONTACT_OPTIONS = array( + 'contactType', + 'emailAddress', + 'givenName', + 'surName', + 'telephoneNumber', + 'company', + 'attributes', + ); + + + /** + * @var array The valid types of contact for a contact configuration array. + * @see "Metadata for the OASIS Security Assertion Markup Language (SAML) V2.0", section 2.3.2.2. + */ + public static $VALID_CONTACT_TYPES = array( + 'technical', + 'support', + 'administrative', + 'billing', + 'other', + ); + + + /** + * Parse and sanitize a contact from an array. + * + * Accepts an array with the following elements: + * - contactType The type of the contact (as string). Mandatory. + * - emailAddress Email address (as string), or array of email addresses. Optional. + * - telephoneNumber Telephone number of contact (as string), or array of telephone numbers. Optional. + * - name Full name of contact, either as , or as , . Optional. + * - surName Surname of contact (as string). Optional. + * - givenName Given name of contact (as string). Optional. + * - company Company name of contact (as string). Optional. + * + * The following values are allowed as "contactType": + * - technical + * - support + * - administrative + * - billing + * - other + * + * If given a "name" it will try to decompose it into its given name and surname, only if neither givenName nor + * surName are present. It works as follows: + * - "surname1 surname2, given_name1 given_name2" + * givenName: "given_name1 given_name2" + * surname: "surname1 surname2" + * - "given_name surname" + * givenName: "given_name" + * surname: "surname" + * + * otherwise it will just return the name as "givenName" in the resulting array. + * + * @param array $contact The contact to parse and sanitize. + * + * @return array An array holding valid contact configuration options. If a key 'name' was part of the input array, + * it will try to decompose the name into its parts, and place the parts into givenName and surName, if those are + * missing. + * @throws \InvalidArgumentException If $contact is neither an array nor null, or the contact does not conform to + * valid configuration rules for contacts. + */ + public static function getContact($contact) + { + if (!(is_array($contact) || is_null($contact))) { + throw new \InvalidArgumentException('Invalid input parameters'); + } + + // check the type + if (!isset($contact['contactType']) || !in_array($contact['contactType'], self::$VALID_CONTACT_TYPES, true)) { + $types = join(', ', array_map( + function ($t) { + return '"'.$t.'"'; + }, + self::$VALID_CONTACT_TYPES + )); + throw new \InvalidArgumentException('"contactType" is mandatory and must be one of '.$types."."); + } + + // check attributes is an associative array + if (isset($contact['attributes'])) { + if (empty($contact['attributes']) + || !is_array($contact['attributes']) + || count(array_filter(array_keys($contact['attributes']), 'is_string')) === 0 + ) { + throw new \InvalidArgumentException('"attributes" must be an array and cannot be empty.'); + } + } + + // try to fill in givenName and surName from name + if (isset($contact['name']) && !isset($contact['givenName']) && !isset($contact['surName'])) { + // first check if it's comma separated + $names = explode(',', $contact['name'], 2); + if (count($names) === 2) { + $contact['surName'] = preg_replace('/\s+/', ' ', trim($names[0])); + $contact['givenName'] = preg_replace('/\s+/', ' ', trim($names[1])); + } else { + // check if it's in "given name surname" format + $names = explode(' ', preg_replace('/\s+/', ' ', trim($contact['name']))); + if (count($names) === 2) { + $contact['givenName'] = preg_replace('/\s+/', ' ', trim($names[0])); + $contact['surName'] = preg_replace('/\s+/', ' ', trim($names[1])); + } else { + // nothing works, return it as given name + $contact['givenName'] = preg_replace('/\s+/', ' ', trim($contact['name'])); + } + } + } + + // check givenName + if (isset($contact['givenName']) && ( + empty($contact['givenName']) || !is_string($contact['givenName']) + ) + ) { + throw new \InvalidArgumentException('"givenName" must be a string and cannot be empty.'); + } + + // check surName + if (isset($contact['surName']) && ( + empty($contact['surName']) || !is_string($contact['surName']) + ) + ) { + throw new \InvalidArgumentException('"surName" must be a string and cannot be empty.'); + } + + // check company + if (isset($contact['company']) && ( + empty($contact['company']) || !is_string($contact['company']) + ) + ) { + throw new \InvalidArgumentException('"company" must be a string and cannot be empty.'); + } + + // check emailAddress + if (isset($contact['emailAddress'])) { + if (empty($contact['emailAddress']) || + !(is_string($contact['emailAddress']) || is_array($contact['emailAddress'])) + ) { + throw new \InvalidArgumentException('"emailAddress" must be a string or an array and cannot be empty.'); + } + if (is_array($contact['emailAddress'])) { + foreach ($contact['emailAddress'] as $address) { + if (!is_string($address) || empty($address)) { + throw new \InvalidArgumentException('Email addresses must be a string and cannot be empty.'); + } + } + } + } + + // check telephoneNumber + if (isset($contact['telephoneNumber'])) { + if (empty($contact['telephoneNumber']) || + !(is_string($contact['telephoneNumber']) || is_array($contact['telephoneNumber'])) + ) { + throw new \InvalidArgumentException( + '"telephoneNumber" must be a string or an array and cannot be empty.' + ); + } + if (is_array($contact['telephoneNumber'])) { + foreach ($contact['telephoneNumber'] as $address) { + if (!is_string($address) || empty($address)) { + throw new \InvalidArgumentException('Telephone numbers must be a string and cannot be empty.'); + } + } + } + } + + // make sure only valid options are outputted + return array_intersect_key($contact, array_flip(self::$VALID_CONTACT_OPTIONS)); + } + + + /** + * Find the default endpoint in an endpoint array. + * + * @param array $endpoints An array with endpoints. + * @param array $bindings An array with acceptable bindings. Can be null if any binding is allowed. + * + * @return array|NULL The default endpoint, or null if no acceptable endpoints are used. + * + * @author Olav Morken, UNINETT AS + */ + public static function getDefaultEndpoint(array $endpoints, array $bindings = null) + { + $firstNotFalse = null; + $firstAllowed = null; + + // look through the endpoint list for acceptable endpoints + foreach ($endpoints as $ep) { + if ($bindings !== null && !in_array($ep['Binding'], $bindings, true)) { + // unsupported binding, skip it + continue; + } + + if (isset($ep['isDefault'])) { + if ($ep['isDefault'] === true) { + // this is the first endpoint with isDefault set to true + return $ep; + } + // isDefault is set to false, but the endpoint is still usable as a last resort + if ($firstAllowed === null) { + // this is the first endpoint that we can use + $firstAllowed = $ep; + } + } else { + if ($firstNotFalse === null) { + // this is the first endpoint without isDefault set + $firstNotFalse = $ep; + } + } + } + + if ($firstNotFalse !== null) { + // we have an endpoint without isDefault set to false + return $firstNotFalse; + } + + /* $firstAllowed either contains the first endpoint we can use, or it contains null if we cannot use any of the + * endpoints. Either way we return its value. + */ + return $firstAllowed; + } + + + /** + * Determine if an entity should be hidden in the discovery service. + * + * This method searches for the "Hide From Discovery" REFEDS Entity Category, and tells if the entity should be + * hidden or not depending on it. + * + * @see https://refeds.org/category/hide-from-discovery + * + * @param array $metadata An associative array with the metadata representing an entity. + * + * @return boolean True if the entity should be hidden, false otherwise. + */ + public static function isHiddenFromDiscovery(array $metadata) + { + \SimpleSAML\Logger::maskErrors(E_ALL); + $hidden = in_array(self::$HIDE_FROM_DISCOVERY, $metadata['EntityAttributes'][self::$ENTITY_CATEGORY], true); + \SimpleSAML\Logger::popErrorMask(); + return $hidden === true; + } +} diff --git a/lib/SimpleSAML/Utils/Crypto.php b/lib/SimpleSAML/Utils/Crypto.php new file mode 100755 index 0000000..749d9d2 --- /dev/null +++ b/lib/SimpleSAML/Utils/Crypto.php @@ -0,0 +1,471 @@ + + * @author Jaime Perez, UNINETT AS + */ + public static function aesDecrypt($ciphertext) + { + return self::_aesDecrypt($ciphertext, Config::getSecretSalt()); + } + + + /** + * Encrypt data using AES-256-CBC and the key provided as a parameter. + * + * @param string $data The data to encrypt. + * @param string $secret The secret to use to encrypt the data. + * + * @return string An HMAC of the encrypted data, the IV and the encrypted data, concatenated. + * @throws \InvalidArgumentException If $data is not a string. + * @throws \SimpleSAML_Error_Exception If the openssl module is not loaded. + * + * @see \SimpleSAML\Utils\Crypto::aesEncrypt() + */ + private static function _aesEncrypt($data, $secret) + { + if (!is_string($data)) { + throw new \InvalidArgumentException('Input parameter "$data" must be a string.'); + } + + if (!function_exists("openssl_encrypt")) { + throw new \SimpleSAML_Error_Exception('The openssl PHP module is not loaded.'); + } + + // derive encryption and authentication keys from the secret + $key = openssl_digest($secret, 'sha512'); + + // generate a random IV + $iv = openssl_random_pseudo_bytes(16); + + // encrypt the message + /** @var string|false $ciphertext */ + $ciphertext = openssl_encrypt( + $data, + 'AES-256-CBC', + substr($key, 0, 64), + defined('OPENSSL_RAW_DATA') ? OPENSSL_RAW_DATA : 1, + $iv + ); + + if ($ciphertext === false) { + throw new \SimpleSAML_Error_Exception("Failed to encrypt plaintext."); + } + + // return the ciphertext with proper authentication + return hash_hmac('sha256', $iv.$ciphertext, substr($key, 64, 64), true).$iv.$ciphertext; + } + + + /** + * Encrypt data using AES-256-CBC and the system-wide secret salt as key. + * + * @param string $data The data to encrypt. + * + * @return string An HMAC of the encrypted data, the IV and the encrypted data, concatenated. + * @throws \InvalidArgumentException If $data is not a string. + * @throws \SimpleSAML_Error_Exception If the openssl module is not loaded. + * + * @author Andreas Solberg, UNINETT AS + * @author Jaime Perez, UNINETT AS + */ + public static function aesEncrypt($data) + { + return self::_aesEncrypt($data, Config::getSecretSalt()); + } + + + /** + * Convert data from DER to PEM encoding. + * + * @param string $der Data encoded in DER format. + * @param string $type The type of data we are encoding, as expressed by the PEM header. Defaults to "CERTIFICATE". + * @return string The same data encoded in PEM format. + * @see RFC7648 for known types and PEM format specifics. + */ + public static function der2pem($der, $type = 'CERTIFICATE') + { + return "-----BEGIN ".$type."-----\n". + chunk_split(base64_encode($der), 64, "\n"). + "-----END ".$type."-----\n"; + } + + + /** + * Load a private key from metadata. + * + * This function loads a private key from a metadata array. It looks for the following elements: + * - 'privatekey': Name of a private key file in the cert-directory. + * - 'privatekey_pass': Password for the private key. + * + * It returns and array with the following elements: + * - 'PEM': Data for the private key, in PEM-format. + * - 'password': Password for the private key. + * + * @param \SimpleSAML_Configuration $metadata The metadata array the private key should be loaded from. + * @param bool $required Whether the private key is required. If this is true, a + * missing key will cause an exception. Defaults to false. + * @param string $prefix The prefix which should be used when reading from the metadata + * array. Defaults to ''. + * @param bool $full_path Whether the filename found in the configuration contains the + * full path to the private key or not. Default to false. + * + * @return array|NULL Extracted private key, or NULL if no private key is present. + * @throws \InvalidArgumentException If $required is not boolean or $prefix is not a string. + * @throws \SimpleSAML_Error_Exception If no private key is found in the metadata, or it was not possible to load + * it. + * + * @author Andreas Solberg, UNINETT AS + * @author Olav Morken, UNINETT AS + */ + public static function loadPrivateKey(\SimpleSAML_Configuration $metadata, $required = false, $prefix = '', $full_path = false) + { + if (!is_bool($required) || !is_string($prefix) || !is_bool($full_path)) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + + $file = $metadata->getString($prefix.'privatekey', null); + if ($file === null) { + // no private key found + if ($required) { + throw new \SimpleSAML_Error_Exception('No private key found in metadata.'); + } else { + return null; + } + } + + if (!$full_path) { + $file = Config::getCertPath($file); + } + + $data = @file_get_contents($file); + if ($data === false) { + throw new \SimpleSAML_Error_Exception('Unable to load private key from file "'.$file.'"'); + } + + $ret = array( + 'PEM' => $data, + ); + + if ($metadata->hasValue($prefix.'privatekey_pass')) { + $ret['password'] = $metadata->getString($prefix.'privatekey_pass'); + } + + return $ret; + } + + + /** + * Get public key or certificate from metadata. + * + * This function implements a function to retrieve the public key or certificate from a metadata array. + * + * It will search for the following elements in the metadata: + * - 'certData': The certificate as a base64-encoded string. + * - 'certificate': A file with a certificate or public key in PEM-format. + * - 'certFingerprint': The fingerprint of the certificate. Can be a single fingerprint, or an array of multiple + * valid fingerprints. (deprecated) + * + * This function will return an array with these elements: + * - 'PEM': The public key/certificate in PEM-encoding. + * - 'certData': The certificate data, base64 encoded, on a single line. (Only present if this is a certificate.) + * - 'certFingerprint': Array of valid certificate fingerprints. (Deprecated. Only present if this is a + * certificate.) + * + * @param \SimpleSAML_Configuration $metadata The metadata. + * @param bool $required Whether the private key is required. If this is TRUE, a missing key + * will cause an exception. Default is FALSE. + * @param string $prefix The prefix which should be used when reading from the metadata array. + * Defaults to ''. + * + * @return array|NULL Public key or certificate data, or NULL if no public key or certificate was found. + * @throws \InvalidArgumentException If $metadata is not an instance of \SimpleSAML_Configuration, $required is not + * boolean or $prefix is not a string. + * @throws \SimpleSAML_Error_Exception If no private key is found in the metadata, or it was not possible to load + * it. + * + * @author Andreas Solberg, UNINETT AS + * @author Olav Morken, UNINETT AS + * @author Lasse Birnbaum Jensen + */ + public static function loadPublicKey(\SimpleSAML_Configuration $metadata, $required = false, $prefix = '') + { + if (!is_bool($required) || !is_string($prefix)) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + + $keys = $metadata->getPublicKeys(null, false, $prefix); + if (!empty($keys)) { + foreach ($keys as $key) { + if ($key['type'] !== 'X509Certificate') { + continue; + } + if ($key['signing'] !== true) { + continue; + } + $certData = $key['X509Certificate']; + $pem = "-----BEGIN CERTIFICATE-----\n". + chunk_split($certData, 64). + "-----END CERTIFICATE-----\n"; + $certFingerprint = strtolower(sha1(base64_decode($certData))); + + return array( + 'certData' => $certData, + 'PEM' => $pem, + 'certFingerprint' => array($certFingerprint), + ); + } + // no valid key found + } elseif ($metadata->hasValue($prefix.'certFingerprint')) { + // we only have a fingerprint available + $fps = $metadata->getArrayizeString($prefix.'certFingerprint'); + + // normalize fingerprint(s) - lowercase and no colons + foreach ($fps as &$fp) { + assert(is_string($fp)); + $fp = strtolower(str_replace(':', '', $fp)); + } + + /* + * We can't build a full certificate from a fingerprint, and may as well return an array with only the + * fingerprint(s) immediately. + */ + return array('certFingerprint' => $fps); + } + + // no public key/certificate available + if ($required) { + throw new \SimpleSAML_Error_Exception('No public key / certificate found in metadata.'); + } else { + return null; + } + } + + + /** + * Convert from PEM to DER encoding. + * + * @param string $pem Data encoded in PEM format. + * @return string The same data encoded in DER format. + * @throws \InvalidArgumentException If $pem is not encoded in PEM format. + * @see RFC7648 for PEM format specifics. + */ + public static function pem2der($pem) + { + $pem = trim($pem); + $begin = "-----BEGIN "; + $end = "-----END "; + $lines = explode("\n", $pem); + $last = count($lines) - 1; + + if (strpos($lines[0], $begin) !== 0) { + throw new \InvalidArgumentException("pem2der: input is not encoded in PEM format."); + } + unset($lines[0]); + if (strpos($lines[$last], $end) !== 0) { + throw new \InvalidArgumentException("pem2der: input is not encoded in PEM format."); + } + unset($lines[$last]); + + return base64_decode(implode($lines)); + } + + + /** + * This function hashes a password with a given algorithm. + * + * @param string $password The password to hash. + * @param string $algorithm The hashing algorithm, uppercase, optionally prepended with 'S' (salted). See + * hash_algos() for a complete list of hashing algorithms. + * @param string $salt An optional salt to use. + * + * @return string The hashed password. + * @throws \InvalidArgumentException If the input parameters are not strings. + * @throws \SimpleSAML_Error_Exception If the algorithm specified is not supported. + * + * @see hash_algos() + * + * @author Dyonisius Visser, TERENA + * @author Jaime Perez, UNINETT AS + */ + public static function pwHash($password, $algorithm, $salt = null) + { + if (!is_string($algorithm) || !is_string($password)) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + + // hash w/o salt + if (in_array(strtolower($algorithm), hash_algos(), true)) { + $alg_str = '{'.str_replace('SHA1', 'SHA', $algorithm).'}'; // LDAP compatibility + $hash = hash(strtolower($algorithm), $password, true); + return $alg_str.base64_encode($hash); + } + + // hash w/ salt + if ($salt === null) { // no salt provided, generate one + // default 8 byte salt, but 4 byte for LDAP SHA1 hashes + $bytes = ($algorithm == 'SSHA1') ? 4 : 8; + $salt = openssl_random_pseudo_bytes($bytes); + } + + if ($algorithm[0] == 'S' && in_array(substr(strtolower($algorithm), 1), hash_algos(), true)) { + $alg = substr(strtolower($algorithm), 1); // 'sha256' etc + $alg_str = '{'.str_replace('SSHA1', 'SSHA', $algorithm).'}'; // LDAP compatibility + $hash = hash($alg, $password.$salt, true); + return $alg_str.base64_encode($hash.$salt); + } + + throw new \SimpleSAML_Error_Exception('Hashing algorithm \''.strtolower($algorithm).'\' is not supported'); + } + + + /** + * Compare two strings securely. + * + * This method checks if two strings are equal in constant time, avoiding timing attacks. Use it every time we need + * to compare a string with a secret that shouldn't be leaked, i.e. when verifying passwords, one-time codes, etc. + * + * @param string $known A known string. + * @param string $user A user-provided string to compare with the known string. + * + * @return bool True if both strings are equal, false otherwise. + */ + public static function secureCompare($known, $user) + { + if (function_exists('hash_equals')) { + // use hash_equals() if available (PHP >= 5.6) + return hash_equals($known, $user); + } + + // compare manually in constant time + $len = mb_strlen($known, '8bit'); // see mbstring.func_overload + if ($len !== mb_strlen($user, '8bit')) { + return false; // length differs + } + $diff = 0; + for ($i = 0; $i < $len; $i++) { + $diff |= ord($known[$i]) ^ ord($user[$i]); + } + // if all the bytes in $a and $b are identical, $diff should be equal to 0 + return $diff === 0; + } + + + /** + * This function checks if a password is valid + * + * @param string $hash The password as it appears in password file, optionally prepended with algorithm. + * @param string $password The password to check in clear. + * + * @return boolean True if the hash corresponds with the given password, false otherwise. + * @throws \InvalidArgumentException If the input parameters are not strings. + * @throws \SimpleSAML_Error_Exception If the algorithm specified is not supported. + * + * @author Dyonisius Visser, TERENA + */ + public static function pwValid($hash, $password) + { + if (!is_string($hash) || !is_string($password)) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + + // match algorithm string (e.g. '{SSHA256}', '{MD5}') + if (preg_match('/^{(.*?)}(.*)$/', $hash, $matches)) { + // LDAP compatibility + $alg = preg_replace('/^(S?SHA)$/', '${1}1', $matches[1]); + + // hash w/o salt + if (in_array(strtolower($alg), hash_algos(), true)) { + return self::secureCompare($hash, self::pwHash($password, $alg)); + } + + // hash w/ salt + if ($alg[0] === 'S' && in_array(substr(strtolower($alg), 1), hash_algos(), true)) { + $php_alg = substr(strtolower($alg), 1); + + // get hash length of this algorithm to learn how long the salt is + $hash_length = strlen(hash($php_alg, '', true)); + $salt = substr(base64_decode($matches[2]), $hash_length); + return self::secureCompare($hash, self::pwHash($password, $alg, $salt)); + } + } else { + return $hash === $password; + } + + throw new \SimpleSAML_Error_Exception('Hashing algorithm \''.strtolower($alg).'\' is not supported'); + } +} diff --git a/lib/SimpleSAML/Utils/HTTP.php b/lib/SimpleSAML/Utils/HTTP.php new file mode 100755 index 0000000..d33b85a --- /dev/null +++ b/lib/SimpleSAML/Utils/HTTP.php @@ -0,0 +1,1222 @@ + + */ + private static function getSecurePOSTRedirectURL($destination, $data) + { + $session = \SimpleSAML_Session::getSessionFromRequest(); + $id = self::savePOSTData($session, $destination, $data); + + // get the session ID + $session_id = $session->getSessionId(); + if (is_null($session_id)) { + // this is a transient session, it is pointless to continue + throw new \SimpleSAML_Error_Exception('Cannot save POST data to a transient session.'); + } + + // encrypt the session ID and the random ID + $info = base64_encode(Crypto::aesEncrypt($session_id.':'.$id)); + + $url = Module::getModuleURL('core/postredirect.php', array('RedirInfo' => $info)); + return preg_replace('#^https:#', 'http:', $url); + } + + + /** + * Retrieve Host value from $_SERVER environment variables. + * + * @return string The current host name, including the port if needed. It will use localhost when unable to + * determine the current host. + * + * @author Olav Morken, UNINETT AS + */ + private static function getServerHost() + { + if (array_key_exists('HTTP_HOST', $_SERVER)) { + $current = $_SERVER['HTTP_HOST']; + } elseif (array_key_exists('SERVER_NAME', $_SERVER)) { + $current = $_SERVER['SERVER_NAME']; + } else { + // almost certainly not what you want, but... + $current = 'localhost'; + } + + if (strstr($current, ":")) { + $decomposed = explode(":", $current); + $port = array_pop($decomposed); + if (!is_numeric($port)) { + array_push($decomposed, $port); + } + $current = implode(":", $decomposed); + } + return $current; + } + + + /** + * Retrieve HTTPS status from $_SERVER environment variables. + * + * @return boolean True if the request was performed through HTTPS, false otherwise. + * + * @author Olav Morken, UNINETT AS + */ + public static function getServerHTTPS() + { + if (!array_key_exists('HTTPS', $_SERVER)) { + // not an https-request + return false; + } + + if ($_SERVER['HTTPS'] === 'off') { + // IIS with HTTPS off + return false; + } + + // otherwise, HTTPS will be non-empty + return !empty($_SERVER['HTTPS']); + } + + + /** + * Retrieve the port number from $_SERVER environment variables. + * + * @return string The port number prepended by a colon, if it is different than the default port for the protocol + * (80 for HTTP, 443 for HTTPS), or an empty string otherwise. + * + * @author Olav Morken, UNINETT AS + */ + public static function getServerPort() + { + $default_port = self::getServerHTTPS() ? '443' : '80'; + $port = isset($_SERVER['SERVER_PORT']) ? $_SERVER['SERVER_PORT'] : $default_port; + + // Take care of edge-case where SERVER_PORT is an integer + $port = strval($port); + + if ($port !== $default_port) { + return ':'.$port; + } + return ''; + } + + + /** + * This function redirects the user to the specified address. + * + * This function will use the "HTTP 303 See Other" redirection if the current request used the POST method and the + * HTTP version is 1.1. Otherwise, a "HTTP 302 Found" redirection will be used. + * + * The function will also generate a simple web page with a clickable link to the target page. + * + * @param string $url The URL we should redirect to. This URL may include query parameters. If this URL is a + * relative URL (starting with '/'), then it will be turned into an absolute URL by prefixing it with the + * absolute URL to the root of the website. + * @param string[] $parameters An array with extra query string parameters which should be appended to the URL. The + * name of the parameter is the array index. The value of the parameter is the value stored in the index. Both + * the name and the value will be urlencoded. If the value is NULL, then the parameter will be encoded as just + * the name, without a value. + * + * @return void This function never returns. + * @throws \InvalidArgumentException If $url is not a string or is empty, or $parameters is not an array. + * + * @author Olav Morken, UNINETT AS + * @author Mads Freek Petersen + * @author Jaime Perez, UNINETT AS + */ + private static function redirect($url, $parameters = array()) + { + if (!is_string($url) || empty($url) || !is_array($parameters)) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + if (!empty($parameters)) { + $url = self::addURLParameters($url, $parameters); + } + + /* Set the HTTP result code. This is either 303 See Other or + * 302 Found. HTTP 303 See Other is sent if the HTTP version + * is HTTP/1.1 and the request type was a POST request. + */ + if ($_SERVER['SERVER_PROTOCOL'] === 'HTTP/1.1' && + $_SERVER['REQUEST_METHOD'] === 'POST' + ) { + $code = 303; + } else { + $code = 302; + } + + if (strlen($url) > 2048) { + Logger::warning('Redirecting to a URL longer than 2048 bytes.'); + } + + if (!headers_sent()) { + // set the location header + header('Location: '.$url, true, $code); + + // disable caching of this response + header('Pragma: no-cache'); + header('Cache-Control: no-cache, no-store, must-revalidate'); + } + + // show a minimal web page with a clickable link to the URL + echo ''."\n"; + echo ''."\n"; + echo ''."\n"; + echo " \n"; + echo ' '."\n"; + echo ' '."\n"; + echo " Redirect\n"; + echo " \n"; + echo " \n"; + echo "

Redirect

\n"; + echo '

You were redirected to: '; + echo htmlspecialchars($url)."\n"; + echo ' '."\n"; + echo "

\n"; + echo " \n"; + echo ''; + + // end script execution + exit; + } + + + /** + * Save the given HTTP POST data and the destination where it should be posted to a given session. + * + * @param \SimpleSAML_Session $session The session where to temporarily store the data. + * @param string $destination The destination URL where the form should be posted. + * @param array $data An associative array with the data to be posted to $destination. + * + * @return string A random identifier that can be used to retrieve the data from the current session. + * + * @author Andjelko Horvat + * @author Jaime Perez, UNINETT AS + */ + private static function savePOSTData(\SimpleSAML_Session $session, $destination, $data) + { + // generate a random ID to avoid replay attacks + $id = Random::generateID(); + $postData = array( + 'post' => $data, + 'url' => $destination, + ); + + // save the post data to the session, tied to the random ID + $session->setData('core_postdatalink', $id, $postData); + + return $id; + } + + + /** + * Add one or more query parameters to the given URL. + * + * @param string $url The URL the query parameters should be added to. + * @param array $parameters The query parameters which should be added to the url. This should be an associative + * array. + * + * @return string The URL with the new query parameters. + * @throws \InvalidArgumentException If $url is not a string or $parameters is not an array. + * + * @author Andreas Solberg, UNINETT AS + * @author Olav Morken, UNINETT AS + */ + public static function addURLParameters($url, $parameters) + { + if (!is_string($url) || !is_array($parameters)) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + + $queryStart = strpos($url, '?'); + if ($queryStart === false) { + $oldQuery = array(); + $url .= '?'; + } else { + /** @var string|false $oldQuery */ + $oldQuery = substr($url, $queryStart + 1); + if ($oldQuery === false) { + $oldQuery = array(); + } else { + $oldQuery = self::parseQueryString($oldQuery); + } + $url = substr($url, 0, $queryStart + 1); + } + + /** @var array $oldQuery */ + $query = array_merge($oldQuery, $parameters); + $url .= http_build_query($query, '', '&'); + + return $url; + } + + + /** + * Check for session cookie, and show missing-cookie page if it is missing. + * + * @param string|null $retryURL The URL the user should access to retry the operation. Defaults to null. + * + * @return void If there is a session cookie, nothing will be returned. Otherwise, the user will be redirected to a + * page telling about the missing cookie. + * @throws \InvalidArgumentException If $retryURL is neither a string nor null. + * + * @author Olav Morken, UNINETT AS + */ + public static function checkSessionCookie($retryURL = null) + { + if (!is_null($retryURL) && !is_string($retryURL)) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + + $session = \SimpleSAML_Session::getSessionFromRequest(); + if ($session->hasSessionCookie()) { + return; + } + + // we didn't have a session cookie. Redirect to the no-cookie page + + $url = Module::getModuleURL('core/no_cookie.php'); + if ($retryURL !== null) { + $url = self::addURLParameters($url, array('retryURL' => $retryURL)); + } + self::redirectTrustedURL($url); + } + + + /** + * Check if a URL is valid and is in our list of allowed URLs. + * + * @param string $url The URL to check. + * @param array $trustedSites An optional white list of domains. If none specified, the 'trusted.url.domains' + * configuration directive will be used. + * + * @return string The normalized URL itself if it is allowed. An empty string if the $url parameter is empty as + * defined by the empty() function. + * @throws \InvalidArgumentException If the URL is malformed. + * @throws \SimpleSAML_Error_Exception If the URL is not allowed by configuration. + * + * @author Jaime Perez, UNINETT AS + */ + public static function checkURLAllowed($url, array $trustedSites = null) + { + if (empty($url)) { + return ''; + } + $url = self::normalizeURL($url); + + if (filter_var($url, FILTER_VALIDATE_URL) === false) { + throw new \SimpleSAML_Error_Exception('Invalid URL: '.$url); + } + + // get the white list of domains + if ($trustedSites === null) { + $trustedSites = \SimpleSAML_Configuration::getInstance()->getValue('trusted.url.domains', array()); + } + + // validates the URL's host is among those allowed + if (is_array($trustedSites)) { + assert(is_array($trustedSites)); + $components = parse_url($url); + $hostname = $components['host']; + + // check for userinfo + if ((isset($components['user']) && strpos($components['user'], '\\') !== false) || + (isset($components['pass']) && strpos($components['pass'], '\\') !== false) + ) { + throw new \SimpleSAML_Error_Exception('Invalid URL: '.$url); + } + + // allow URLs with standard ports specified (non-standard ports must then be allowed explicitly) + if (isset($components['port']) && + (($components['scheme'] === 'http' && $components['port'] !== 80) || + ($components['scheme'] === 'https' && $components['port'] !== 443)) + ) { + $hostname = $hostname.':'.$components['port']; + } + + $self_host = self::getSelfHostWithNonStandardPort(); + + $trustedRegex = \SimpleSAML_Configuration::getInstance()->getValue('trusted.url.regex', false); + + $trusted = false; + if ($trustedRegex) { + // add self host to the white list + $trustedSites[] = preg_quote($self_host); + foreach ($trustedSites as $regex) { + // Add start and end delimiters. + $regex = "@^{$regex}$@"; + if (preg_match($regex, $hostname)) { + $trusted = true; + break; + } + } + } else { + // add self host to the white list + $trustedSites[] = $self_host; + $trusted = in_array($hostname, $trustedSites, true); + } + + // throw exception due to redirection to untrusted site + if (!$trusted) { + throw new \SimpleSAML_Error_Exception('URL not allowed: '.$url); + } + } + return $url; + } + + + /** + * Helper function to retrieve a file or URL with proxy support, also + * supporting proxy basic authorization.. + * + * An exception will be thrown if we are unable to retrieve the data. + * + * @param string $url The path or URL we should fetch. + * @param array $context Extra context options. This parameter is optional. + * @param boolean $getHeaders Whether to also return response headers. Optional. + * + * @return string|array An array if $getHeaders is set, containing the data and the headers respectively; string + * otherwise. + * @throws \InvalidArgumentException If the input parameters are invalid. + * @throws \SimpleSAML_Error_Exception If the file or URL cannot be retrieved. + * + * @author Andjelko Horvat + * @author Olav Morken, UNINETT AS + * @author Marco Ferrante, University of Genova + */ + public static function fetch($url, $context = array(), $getHeaders = false) + { + if (!is_string($url)) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + + $config = \SimpleSAML_Configuration::getInstance(); + + $proxy = $config->getString('proxy', null); + if ($proxy !== null) { + if (!isset($context['http']['proxy'])) { + $context['http']['proxy'] = $proxy; + } + $proxy_auth = $config->getString('proxy.auth', false); + if ($proxy_auth !== false) { + $context['http']['header'] = "Proxy-Authorization: Basic ".base64_encode($proxy_auth); + } + if (!isset($context['http']['request_fulluri'])) { + $context['http']['request_fulluri'] = true; + } + /* + * If the remote endpoint over HTTPS uses the SNI extension (Server Name Indication RFC 4366), the proxy + * could introduce a mismatch between the names in the Host: HTTP header and the SNI_server_name in TLS + * negotiation (thanks to Cristiano Valli @ GARR-IDEM to have pointed this problem). + * See: https://bugs.php.net/bug.php?id=63519 + * These controls will force the same value for both fields. + * Marco Ferrante (marco@csita.unige.it), Nov 2012 + */ + if (preg_match('#^https#i', $url) + && defined('OPENSSL_TLSEXT_SERVER_NAME') + && OPENSSL_TLSEXT_SERVER_NAME + ) { + // extract the hostname + $hostname = parse_url($url, PHP_URL_HOST); + if (!empty($hostname)) { + $context['ssl'] = array( + 'SNI_server_name' => $hostname, + 'SNI_enabled' => true, + ); + } else { + Logger::warning('Invalid URL format or local URL used through a proxy'); + } + } + } + + $context = stream_context_create($context); + $data = @file_get_contents($url, false, $context); + if ($data === false) { + $error = error_get_last(); + throw new \SimpleSAML_Error_Exception('Error fetching '.var_export($url, true).':'. + (is_array($error) ? $error['message'] : 'no error available')); + } + + // data and headers + if ($getHeaders) { + if (isset($http_response_header)) { + $headers = array(); + foreach ($http_response_header as $h) { + if (preg_match('@^HTTP/1\.[01]\s+\d{3}\s+@', $h)) { + $headers = array(); // reset + $headers[0] = $h; + continue; + } + $bits = explode(':', $h, 2); + if (count($bits) === 2) { + $headers[strtolower($bits[0])] = trim($bits[1]); + } + } + } else { + // no HTTP headers, probably a different protocol, e.g. file + $headers = null; + } + return array($data, $headers); + } + + return $data; + } + + + /** + * This function parses the Accept-Language HTTP header and returns an associative array with each language and the + * score for that language. If a language includes a region, then the result will include both the language with + * the region and the language without the region. + * + * The returned array will be in the same order as the input. + * + * @return array An associative array with each language and the score for that language. + * + * @author Olav Morken, UNINETT AS + */ + public static function getAcceptLanguage() + { + if (!array_key_exists('HTTP_ACCEPT_LANGUAGE', $_SERVER)) { + // no Accept-Language header, return an empty set + return array(); + } + + $languages = explode(',', strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE'])); + + $ret = array(); + + foreach ($languages as $l) { + $opts = explode(';', $l); + + $l = trim(array_shift($opts)); // the language is the first element + + $q = 1.0; + + // iterate over all options, and check for the quality option + foreach ($opts as $o) { + $o = explode('=', $o); + if (count($o) < 2) { + // skip option with no value + continue; + } + + $name = trim($o[0]); + $value = trim($o[1]); + + if ($name === 'q') { + $q = (float) $value; + } + } + + // remove the old key to ensure that the element is added to the end + unset($ret[$l]); + + // set the quality in the result + $ret[$l] = $q; + + if (strpos($l, '-')) { + // the language includes a region part + + // extract the language without the region + $l = explode('-', $l); + $l = $l[0]; + + // add this language to the result (unless it is defined already) + if (!array_key_exists($l, $ret)) { + $ret[$l] = $q; + } + } + } + return $ret; + } + + + /** + * Try to guess the base SimpleSAMLphp path from the current request. + * + * This method offers just a guess, so don't rely on it. + * + * @return string The guessed base path that should correspond to the root installation of SimpleSAMLphp. + */ + public static function guessBasePath() + { + if (!array_key_exists('REQUEST_URI', $_SERVER) || !array_key_exists('SCRIPT_FILENAME', $_SERVER)) { + return '/'; + } + // get the name of the current script + $path = explode('/', $_SERVER['SCRIPT_FILENAME']); + $script = array_pop($path); + + // get the portion of the URI up to the script, i.e.: /simplesaml/some/directory/script.php + if (!preg_match('#^/(?:[^/]+/)*'.$script.'#', $_SERVER['REQUEST_URI'], $matches)) { + return '/'; + } + $uri_s = explode('/', $matches[0]); + $file_s = explode('/', $_SERVER['SCRIPT_FILENAME']); + + // compare both arrays from the end, popping elements matching out of them + while ($uri_s[count($uri_s) - 1] === $file_s[count($file_s) - 1]) { + array_pop($uri_s); + array_pop($file_s); + } + // we are now left with the minimum part of the URI that does not match anything in the file system, use it + return join('/', $uri_s).'/'; + } + + + /** + * Retrieve the base URL of the SimpleSAMLphp installation. The URL will always end with a '/'. For example: + * https://idp.example.org/simplesaml/ + * + * @return string The absolute base URL for the SimpleSAMLphp installation. + * @throws \SimpleSAML\Error\CriticalConfigurationError If 'baseurlpath' has an invalid format. + * + * @author Olav Morken, UNINETT AS + */ + public static function getBaseURL() + { + $globalConfig = \SimpleSAML_Configuration::getInstance(); + $baseURL = $globalConfig->getString('baseurlpath', 'simplesaml/'); + + if (preg_match('#^https?://.*/?$#D', $baseURL, $matches)) { + // full URL in baseurlpath, override local server values + return rtrim($baseURL, '/').'/'; + } elseif ((preg_match('#^/?([^/]?.*/)$#D', $baseURL, $matches)) || + (preg_match('#^\*(.*)/$#D', $baseURL, $matches)) || + ($baseURL === '') + ) { + // get server values + $protocol = 'http'; + $protocol .= (self::getServerHTTPS()) ? 's' : ''; + $protocol .= '://'; + + $hostname = self::getServerHost(); + $port = self::getServerPort(); + $path = $globalConfig->getBasePath(); + + return $protocol.$hostname.$port.$path; + } else { + /* + * Invalid 'baseurlpath'. We cannot recover from this, so throw a critical exception and try to be graceful + * with the configuration. Use a guessed base path instead of the one provided. + */ + $c = $globalConfig->toArray(); + $c['baseurlpath'] = self::guessBasePath(); + throw new \SimpleSAML\Error\CriticalConfigurationError( + 'Invalid value for \'baseurlpath\' in config.php. Valid format is in the form: '. + '[(http|https)://(hostname|fqdn)[:port]]/[path/to/simplesaml/]. It must end with a \'/\'.', + null, + $c + ); + } + } + + + /** + * Retrieve the first element of the URL path. + * + * @param boolean $trailingslash Whether to add a trailing slash to the element or not. Defaults to true. + * + * @return string The first element of the URL path, with an optional, trailing slash. + * + * @author Andreas Solberg, UNINETT AS + */ + public static function getFirstPathElement($trailingslash = true) + { + if (preg_match('|^/(.*?)/|', $_SERVER['SCRIPT_NAME'], $matches)) { + return ($trailingslash ? '/' : '').$matches[1]; + } + return ''; + } + + + /** + * Create a link which will POST data. + * + * @param string $destination The destination URL. + * @param array $data The name-value pairs which will be posted to the destination. + * + * @return string A URL which can be accessed to post the data. + * @throws \InvalidArgumentException If $destination is not a string or $data is not an array. + * + * @author Andjelko Horvat + * @author Jaime Perez, UNINETT AS + */ + public static function getPOSTRedirectURL($destination, $data) + { + if (!is_string($destination) || !is_array($data)) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + + $config = \SimpleSAML_Configuration::getInstance(); + $allowed = $config->getBoolean('enable.http_post', false); + + if ($allowed && preg_match("#^http:#", $destination) && self::isHTTPS()) { + // we need to post the data to HTTP + $url = self::getSecurePOSTRedirectURL($destination, $data); + } else { // post the data directly + $session = \SimpleSAML_Session::getSessionFromRequest(); + $id = self::savePOSTData($session, $destination, $data); + $url = Module::getModuleURL('core/postredirect.php', array('RedirId' => $id)); + } + + return $url; + } + + + /** + * Retrieve our own host. + * + * E.g. www.example.com + * + * @return string The current host. + * + * @author Jaime Perez, UNINETT AS + */ + public static function getSelfHost() + { + $decomposed = explode(':', self::getSelfHostWithNonStandardPort()); + return array_shift($decomposed); + } + + /** + * Retrieve our own host, including the port in case the it is not standard for the protocol in use. That is port + * 80 for HTTP and port 443 for HTTPS. + * + * E.g. www.example.com:8080 + * + * @return string The current host, followed by a colon and the port number, in case the port is not standard for + * the protocol. + * + * @author Andreas Solberg, UNINETT AS + * @author Olav Morken, UNINETT AS + */ + public static function getSelfHostWithNonStandardPort() + { + $url = self::getBaseURL(); + + /** @var int $colon getBaseURL() will allways return a valid URL */ + $colon = strpos($url, '://'); + $start = $colon + 3; + $length = strcspn($url, '/', $start); + + return substr($url, $start, $length); + } + + /** + * Retrieve our own host together with the URL path. Please note this function will return the base URL for the + * current SP, as defined in the global configuration. + * + * @return string The current host (with non-default ports included) plus the URL path. + * + * @author Andreas Solberg, UNINETT AS + * @author Olav Morken, UNINETT AS + */ + public static function getSelfHostWithPath() + { + $baseurl = explode("/", self::getBaseURL()); + $elements = array_slice($baseurl, 3 - count($baseurl), count($baseurl) - 4); + $path = implode("/", $elements); + return self::getSelfHostWithNonStandardPort()."/".$path; + } + + + /** + * Retrieve the current URL using the base URL in the configuration, if possible. + * + * This method will try to see if the current script is part of SimpleSAMLphp. In that case, it will use the + * 'baseurlpath' configuration option to rebuild the current URL based on that. If the current script is NOT + * part of SimpleSAMLphp, it will just return the current URL. + * + * Note that this method does NOT make use of the HTTP X-Forwarded-* set of headers. + * + * @return string The current URL, including query parameters. + * + * @author Andreas Solberg, UNINETT AS + * @author Olav Morken, UNINETT AS + * @author Jaime Perez, UNINETT AS + */ + public static function getSelfURL() + { + $cfg = \SimpleSAML_Configuration::getInstance(); + $baseDir = $cfg->getBaseDir(); + $cur_path = realpath($_SERVER['SCRIPT_FILENAME']); + // make sure we got a string from realpath() + $cur_path = is_string($cur_path) ? $cur_path : ''; + // find the path to the current script relative to the www/ directory of SimpleSAMLphp + $rel_path = str_replace($baseDir.'www'.DIRECTORY_SEPARATOR, '', $cur_path); + // convert that relative path to an HTTP query + $url_path = str_replace(DIRECTORY_SEPARATOR, '/', $rel_path); + // find where the relative path starts in the current request URI + $uri_pos = (!empty($url_path)) ? strpos($_SERVER['REQUEST_URI'], $url_path) : false; + + if ($cur_path == $rel_path || $uri_pos === false) { + /* + * We were accessed from an external script. This can happen in the following cases: + * + * - $_SERVER['SCRIPT_FILENAME'] points to a script that doesn't exist. E.g. functional testing. In this + * case, realpath() returns false and str_replace an empty string, so we compare them loosely. + * + * - The URI requested does not belong to a script in the www/ directory of SimpleSAMLphp. In that case, + * removing SimpleSAMLphp's base dir from the current path yields the same path, so $cur_path and + * $rel_path are equal. + * + * - The request URI does not match the current script. Even if the current script is located in the www/ + * directory of SimpleSAMLphp, the URI does not contain its relative path, and $uri_pos is false. + * + * It doesn't matter which one of those cases we have. We just know we can't apply our base URL to the + * current URI, so we need to build it back from the PHP environment, unless we have a base URL specified + * for this case in the configuration. First, check if that's the case. + */ + + /** @var \SimpleSAML_Configuration $appcfg */ + $appcfg = $cfg->getConfigItem('application', null); + $appurl = ($appcfg instanceof \SimpleSAML_Configuration) ? $appcfg->getString('baseURL', '') : ''; + if (!empty($appurl)) { + $protocol = parse_url($appurl, PHP_URL_SCHEME); + $hostname = parse_url($appurl, PHP_URL_HOST); + $port = parse_url($appurl, PHP_URL_PORT); + $port = !empty($port) ? ':'.$port : ''; + } else { // no base URL specified for app, just use the current URL + $protocol = 'http'; + $protocol .= (self::getServerHTTPS()) ? 's' : ''; + $hostname = self::getServerHost(); + $port = self::getServerPort(); + } + return $protocol.'://'.$hostname.$port.$_SERVER['REQUEST_URI']; + } + + return self::getBaseURL().$url_path.substr($_SERVER['REQUEST_URI'], $uri_pos + strlen($url_path)); + } + + + /** + * Retrieve the current URL using the base URL in the configuration, containing the protocol, the host and + * optionally, the port number. + * + * @return string The current URL without path or query parameters. + * + * @author Andreas Solberg, UNINETT AS + * @author Olav Morken, UNINETT AS + */ + public static function getSelfURLHost() + { + $url = self::getSelfURL(); + + /** @var int $colon getBaseURL() will allways return a valid URL */ + $colon = strpos($url, '://'); + $start = $colon + 3; + $length = strcspn($url, '/', $start) + $start; + return substr($url, 0, $length); + } + + + /** + * Retrieve the current URL using the base URL in the configuration, without the query parameters. + * + * @return string The current URL, not including query parameters. + * + * @author Andreas Solberg, UNINETT AS + * @author Jaime Perez, UNINETT AS + */ + public static function getSelfURLNoQuery() + { + $url = self::getSelfURL(); + $pos = strpos($url, '?'); + if (!$pos) { + return $url; + } + return substr($url, 0, $pos); + } + + + /** + * This function checks if we are using HTTPS as protocol. + * + * @return boolean True if the HTTPS is used, false otherwise. + * + * @author Olav Morken, UNINETT AS + * @author Jaime Perez, UNINETT AS + */ + public static function isHTTPS() + { + return strpos(self::getSelfURL(), 'https://') === 0; + } + + + /** + * Normalizes a URL to an absolute URL and validate it. In addition to resolving the URL, this function makes sure + * that it is a link to an http or https site. + * + * @param string $url The relative URL. + * + * @return string An absolute URL for the given relative URL. + * @throws \InvalidArgumentException If $url is not a string or a valid URL. + * + * @author Olav Morken, UNINETT AS + * @author Jaime Perez, UNINETT AS + */ + public static function normalizeURL($url) + { + if (!is_string($url)) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + + $url = self::resolveURL($url, self::getSelfURL()); + + // verify that the URL is to a http or https site + if (!preg_match('@^https?://@i', $url)) { + throw new \InvalidArgumentException('Invalid URL: '.$url); + } + + return $url; + } + + + /** + * Parse a query string into an array. + * + * This function parses a query string into an array, similar to the way the builtin 'parse_str' works, except it + * doesn't handle arrays, and it doesn't do "magic quotes". + * + * Query parameters without values will be set to an empty string. + * + * @param string $query_string The query string which should be parsed. + * + * @return array The query string as an associative array. + * @throws \InvalidArgumentException If $query_string is not a string. + * + * @author Olav Morken, UNINETT AS + */ + public static function parseQueryString($query_string) + { + if (!is_string($query_string)) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + + $res = array(); + if (empty($query_string)) { + return $res; + } + + foreach (explode('&', $query_string) as $param) { + $param = explode('=', $param); + $name = urldecode($param[0]); + if (count($param) === 1) { + $value = ''; + } else { + $value = urldecode($param[1]); + } + $res[$name] = $value; + } + return $res; + } + + + /** + * This function redirects to the specified URL without performing any security checks. Please, do NOT use this + * function with user supplied URLs. + * + * This function will use the "HTTP 303 See Other" redirection if the current request used the POST method and the + * HTTP version is 1.1. Otherwise, a "HTTP 302 Found" redirection will be used. + * + * The function will also generate a simple web page with a clickable link to the target URL. + * + * @param string $url The URL we should redirect to. This URL may include query parameters. If this URL is a + * relative URL (starting with '/'), then it will be turned into an absolute URL by prefixing it with the absolute + * URL to the root of the website. + * @param string[] $parameters An array with extra query string parameters which should be appended to the URL. The + * name of the parameter is the array index. The value of the parameter is the value stored in the index. Both the + * name and the value will be urlencoded. If the value is NULL, then the parameter will be encoded as just the + * name, without a value. + * + * @return void This function never returns. + * @throws \InvalidArgumentException If $url is not a string or $parameters is not an array. + * + * @author Jaime Perez, UNINETT AS + */ + public static function redirectTrustedURL($url, $parameters = array()) + { + if (!is_string($url) || !is_array($parameters)) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + + $url = self::normalizeURL($url); + self::redirect($url, $parameters); + } + + + /** + * This function redirects to the specified URL after performing the appropriate security checks on it. + * Particularly, it will make sure that the provided URL is allowed by the 'trusted.url.domains' directive in the + * configuration. + * + * If the aforementioned option is not set or the URL does correspond to a trusted site, it performs a redirection + * to it. If the site is not trusted, an exception will be thrown. + * + * @param string $url The URL we should redirect to. This URL may include query parameters. If this URL is a + * relative URL (starting with '/'), then it will be turned into an absolute URL by prefixing it with the absolute + * URL to the root of the website. + * @param string[] $parameters An array with extra query string parameters which should be appended to the URL. The + * name of the parameter is the array index. The value of the parameter is the value stored in the index. Both the + * name and the value will be urlencoded. If the value is NULL, then the parameter will be encoded as just the + * name, without a value. + * + * @return void This function never returns. + * @throws \InvalidArgumentException If $url is not a string or $parameters is not an array. + * + * @author Jaime Perez, UNINETT AS + */ + public static function redirectUntrustedURL($url, $parameters = array()) + { + if (!is_string($url) || !is_array($parameters)) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + + $url = self::checkURLAllowed($url); + self::redirect($url, $parameters); + } + + + /** + * Resolve a (possibly relative) URL relative to a given base URL. + * + * This function supports these forms of relative URLs: + * - ^\w+: Absolute URL. E.g. "http://www.example.com:port/path?query#fragment". + * - ^// Same protocol. E.g. "//www.example.com:port/path?query#fragment" + * - ^/ Same protocol and host. E.g. "/path?query#fragment". + * - ^? Same protocol, host and path, replace query string & fragment. E.g. "?query#fragment". + * - ^# Same protocol, host, path and query, replace fragment. E.g. "#fragment". + * - The rest: Relative to the base path. + * + * @param string $url The relative URL. + * @param string $base The base URL. Defaults to the base URL of this installation of SimpleSAMLphp. + * + * @return string An absolute URL for the given relative URL. + * @throws \InvalidArgumentException If the base URL cannot be parsed into a valid URL, or the given parameters + * are not strings. + * + * @author Olav Morken, UNINETT AS + * @author Jaime Perez, UNINETT AS + */ + public static function resolveURL($url, $base = null) + { + if ($base === null) { + $base = self::getBaseURL(); + } + + if (!is_string($url) || !is_string($base)) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + + if (!preg_match('/^((((\w+:)\/\/[^\/]+)(\/[^?#]*))(?:\?[^#]*)?)(?:#.*)?/', $base, $baseParsed)) { + throw new \InvalidArgumentException('Unable to parse base url: '.$base); + } + + $baseDir = dirname($baseParsed[5].'filename'); + $baseScheme = $baseParsed[4]; + $baseHost = $baseParsed[3]; + $basePath = $baseParsed[2]; + $baseQuery = $baseParsed[1]; + + if (preg_match('$^\w+:$', $url)) { + return $url; + } + + if (substr($url, 0, 2) === '//') { + return $baseScheme.$url; + } + + if ($url[0] === '/') { + return $baseHost.$url; + } + if ($url[0] === '?') { + return $basePath.$url; + } + if ($url[0] === '#') { + return $baseQuery.$url; + } + + // we have a relative path. Remove query string/fragment and save it as $tail + $queryPos = strpos($url, '?'); + $fragmentPos = strpos($url, '#'); + if ($queryPos !== false || $fragmentPos !== false) { + if ($queryPos === false) { + $tailPos = $fragmentPos; + } elseif ($fragmentPos === false) { + $tailPos = $queryPos; + } elseif ($queryPos < $fragmentPos) { + $tailPos = $queryPos; + } else { + $tailPos = $fragmentPos; + } + + $tail = substr($url, $tailPos); + $dir = substr($url, 0, $tailPos); + } else { + $dir = $url; + $tail = ''; + } + + $dir = System::resolvePath($dir, $baseDir); + + return $baseHost.$dir.$tail; + } + + + /** + * Set a cookie. + * + * @param string $name The name of the cookie. + * @param string|NULL $value The value of the cookie. Set to NULL to delete the cookie. + * @param array|NULL $params Cookie parameters. + * @param bool $throw Whether to throw exception if setcookie() fails. + * + * @throws \InvalidArgumentException If any parameter has an incorrect type. + * @throws \SimpleSAML\Error\CannotSetCookie If the headers were already sent and the cookie cannot be set. + * + * @return void + * + * @author Andjelko Horvat + * @author Jaime Perez, UNINETT AS + */ + public static function setCookie($name, $value, $params = null, $throw = true) + { + if (!(is_string($name) && // $name must be a string + (is_string($value) || is_null($value)) && // $value can be a string or null + (is_array($params) || is_null($params)) && // $params can be an array or null + is_bool($throw)) // $throw must be boolean + ) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + + $default_params = array( + 'lifetime' => 0, + 'expire' => null, + 'path' => '/', + 'domain' => null, + 'secure' => false, + 'httponly' => true, + 'raw' => false, + ); + + if ($params !== null) { + $params = array_merge($default_params, $params); + } else { + $params = $default_params; + } + + // Do not set secure cookie if not on HTTPS + if ($params['secure'] && !self::isHTTPS()) { + if ($throw) { + throw new \SimpleSAML\Error\CannotSetCookie( + 'Setting secure cookie on plain HTTP is not allowed.', + \SimpleSAML\Error\CannotSetCookie::SECURE_COOKIE + ); + } + Logger::warning('Error setting cookie: setting secure cookie on plain HTTP is not allowed.'); + return; + } + + if ($value === null) { + $expire = time() - 365 * 24 * 60 * 60; + } elseif (isset($params['expire'])) { + $expire = $params['expire']; + } elseif ($params['lifetime'] === 0) { + $expire = 0; + } else { + $expire = time() + $params['lifetime']; + } + + if ($params['raw']) { + $success = @setrawcookie( + $name, + $value, + $expire, + $params['path'], + $params['domain'], + $params['secure'], + $params['httponly'] + ); + } else { + $success = @setcookie( + $name, + $value, + $expire, + $params['path'], + $params['domain'], + $params['secure'], + $params['httponly'] + ); + } + + if (!$success) { + if ($throw) { + throw new \SimpleSAML\Error\CannotSetCookie( + 'Headers already sent.', + \SimpleSAML\Error\CannotSetCookie::HEADERS_SENT + ); + } + Logger::warning('Error setting cookie: headers already sent.'); + } + } + + + /** + * Submit a POST form to a specific destination. + * + * This function never returns. + * + * @param string $destination The destination URL. + * @param array $data An associative array with the data to be posted to $destination. + * + * @throws \InvalidArgumentException If $destination is not a string or $data is not an array. + * + * @return void + * + * @author Olav Morken, UNINETT AS + * @author Andjelko Horvat + * @author Jaime Perez, UNINETT AS + */ + public static function submitPOSTData($destination, $data) + { + if (!is_string($destination) || !is_array($data)) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + + $config = \SimpleSAML_Configuration::getInstance(); + $allowed = $config->getBoolean('enable.http_post', false); + + if ($allowed && preg_match("#^http:#", $destination) && self::isHTTPS()) { + // we need to post the data to HTTP + self::redirect(self::getSecurePOSTRedirectURL($destination, $data)); + } + + $p = new \SimpleSAML_XHTML_Template($config, 'post.php'); + $p->data['destination'] = $destination; + $p->data['post'] = $data; + $p->show(); + exit(0); + } +} diff --git a/lib/SimpleSAML/Utils/HttpAdapter.php b/lib/SimpleSAML/Utils/HttpAdapter.php new file mode 100755 index 0000000..71c6115 --- /dev/null +++ b/lib/SimpleSAML/Utils/HttpAdapter.php @@ -0,0 +1,211 @@ + + * @author Olav Morken, UNINETT AS + * @author Brook Schofield, GƉANT + * @author Jaime Perez, UNINETT AS + */ + public static function ipCIDRcheck($cidr, $ip = null) + { + if ($ip === null) { + $ip = $_SERVER['REMOTE_ADDR']; + } + if (strpos($cidr, '/') === false) { + return false; + } + + list ($net, $mask) = explode('/', $cidr); + $mask = intval($mask); + + $ip_ip = array(); + $ip_net = array(); + if (strstr($ip, ':') || strstr($net, ':')) { + // Validate IPv6 with inet_pton, convert to hex with bin2hex + // then store as a long with hexdec + + $ip_pack = @inet_pton($ip); + $net_pack = @inet_pton($net); + + if ($ip_pack === false || $net_pack === false) { + // not valid IPv6 address (warning silenced) + return false; + } + + $ip_ip = str_split(bin2hex($ip_pack), 8); + foreach ($ip_ip as &$value) { + $value = hexdec($value); + } + + $ip_net = str_split(bin2hex($net_pack), 8); + foreach ($ip_net as &$value) { + $value = hexdec($value); + } + } else { + $ip_ip[0] = ip2long($ip); + $ip_net[0] = ip2long($net); + } + + for ($i = 0; $mask > 0 && $i < sizeof($ip_ip); $i++) { + if ($mask > 32) { + $iteration_mask = 32; + } else { + $iteration_mask = $mask; + } + $mask -= 32; + + $ip_mask = ~((1 << (32 - $iteration_mask)) - 1); + + $ip_net_mask = $ip_net[$i] & $ip_mask; + $ip_ip_mask = $ip_ip[$i] & $ip_mask; + + if ($ip_ip_mask != $ip_net_mask) { + return false; + } + } + return true; + } +} diff --git a/lib/SimpleSAML/Utils/Random.php b/lib/SimpleSAML/Utils/Random.php new file mode 100755 index 0000000..8693729 --- /dev/null +++ b/lib/SimpleSAML/Utils/Random.php @@ -0,0 +1,30 @@ + + * @author Olav Morken, UNINETT AS + * @author Jaime Perez, UNINETT AS + */ + public static function generateID() + { + return '_'.bin2hex(openssl_random_pseudo_bytes((int)((self::ID_LENGTH - 1)/2))); + } +} diff --git a/lib/SimpleSAML/Utils/System.php b/lib/SimpleSAML/Utils/System.php new file mode 100755 index 0000000..f9d71f0 --- /dev/null +++ b/lib/SimpleSAML/Utils/System.php @@ -0,0 +1,239 @@ + + */ + public static function getOS() + { + if (stristr(PHP_OS, 'LINUX')) { + return self::LINUX; + } + if (stristr(PHP_OS, 'DARWIN')) { + return self::OSX; + } + if (stristr(PHP_OS, 'WIN')) { + return self::WINDOWS; + } + if (stristr(PHP_OS, 'BSD')) { + return self::BSD; + } + if (stristr(PHP_OS, 'UNIX')) { + return self::UNIX; + } + if (stristr(PHP_OS, 'HP-UX')) { + return self::HPUX; + } + if (stristr(PHP_OS, 'IRIX')) { + return self::IRIX; + } + if (stristr(PHP_OS, 'SUNOS')) { + return self::SUNOS; + } + return false; + } + + + /** + * This function retrieves the path to a directory where temporary files can be saved. + * + * @return string Path to a temporary directory, without a trailing directory separator. + * @throws \SimpleSAML_Error_Exception If the temporary directory cannot be created or it exists and does not belong + * to the current user. + * + * @author Andreas Solberg, UNINETT AS + * @author Olav Morken, UNINETT AS + * @author Jaime Perez, UNINETT AS + */ + public static function getTempDir() + { + $globalConfig = \SimpleSAML_Configuration::getInstance(); + + $tempDir = rtrim( + $globalConfig->getString( + 'tempdir', + sys_get_temp_dir().DIRECTORY_SEPARATOR.'simplesaml' + ), + DIRECTORY_SEPARATOR + ); + + if (!is_dir($tempDir)) { + if (!mkdir($tempDir, 0700, true)) { + $error = error_get_last(); + throw new \SimpleSAML_Error_Exception( + 'Error creating temporary directory "'.$tempDir.'": '. + (is_array($error) ? $error['message'] : 'no error available') + ); + } + } elseif (function_exists('posix_getuid')) { + // check that the owner of the temp directory is the current user + $stat = lstat($tempDir); + if ($stat['uid'] !== posix_getuid()) { + throw new \SimpleSAML_Error_Exception( + 'Temporary directory "'.$tempDir.'" does not belong to the current user.' + ); + } + } + + return $tempDir; + } + + + /** + * Resolve a (possibly) relative path from the given base path. + * + * A path which starts with a '/' is assumed to be absolute, all others are assumed to be + * relative. The default base path is the root of the SimpleSAMLphp installation. + * + * @param string $path The path we should resolve. + * @param string|null $base The base path, where we should search for $path from. Default value is the root of the + * SimpleSAMLphp installation. + * + * @return string An absolute path referring to $path. + * + * @author Olav Morken, UNINETT AS + */ + public static function resolvePath($path, $base = null) + { + if ($base === null) { + $config = \SimpleSAML_Configuration::getInstance(); + $base = $config->getBaseDir(); + } + + // normalise directory separator + $base = str_replace('\\', '/', $base); + $path = str_replace('\\', '/', $path); + + // remove trailing slashes + $base = rtrim($base, '/'); + $path = rtrim($path, '/'); + + // check for absolute path + if (substr($path, 0, 1) === '/') { + // absolute path. */ + $ret = '/'; + } elseif (static::pathContainsDriveLetter($path)) { + $ret = ''; + } else { + // path relative to base + $ret = $base; + } + + $path = explode('/', $path); + foreach ($path as $d) { + if ($d === '.') { + continue; + } elseif ($d === '..') { + $ret = dirname($ret); + } else { + if ($ret && substr($ret, -1) !== '/') { + $ret .= '/'; + } + $ret .= $d; + } + } + + return $ret; + } + + + /** + * Atomically write a file. + * + * This is a helper function for writing data atomically to a file. It does this by writing the file data to a + * temporary file, then renaming it to the required file name. + * + * @param string $filename The path to the file we want to write to. + * @param string $data The data we should write to the file. + * @param int $mode The permissions to apply to the file. Defaults to 0600. + * + * @throws \InvalidArgumentException If any of the input parameters doesn't have the proper types. + * @throws \SimpleSAML_Error_Exception If the file cannot be saved, permissions cannot be changed or it is not + * possible to write to the target file. + * + * @author Andreas Solberg, UNINETT AS + * @author Olav Morken, UNINETT AS + * @author Andjelko Horvat + * @author Jaime Perez, UNINETT AS + * + * @return void + */ + public static function writeFile($filename, $data, $mode = 0600) + { + if (!is_string($filename) || !is_string($data) || !is_numeric($mode)) { + throw new \InvalidArgumentException('Invalid input parameters'); + } + + $tmpFile = self::getTempDir().DIRECTORY_SEPARATOR.rand(); + + $res = @file_put_contents($tmpFile, $data); + if ($res === false) { + $error = error_get_last(); + throw new \SimpleSAML_Error_Exception( + 'Error saving file "'.$tmpFile.'": '. + (is_array($error) ? $error['message'] : 'no error available') + ); + } + + if (self::getOS() !== self::WINDOWS) { + if (!chmod($tmpFile, $mode)) { + unlink($tmpFile); + $error = error_get_last(); + //$error = (is_array($error) ? $error['message'] : 'no error available'); + throw new \SimpleSAML_Error_Exception( + 'Error changing file mode of "'.$tmpFile.'": '. + (is_array($error) ? $error['message'] : 'no error available') + ); + } + } + + if (!rename($tmpFile, $filename)) { + unlink($tmpFile); + $error = error_get_last(); + throw new \SimpleSAML_Error_Exception( + 'Error moving "'.$tmpFile.'" to "'.$filename.'": '. + (is_array($error) ? $error['message'] : 'no error available') + ); + } + + if (function_exists('opcache_invalidate')) { + opcache_invalidate($filename); + } + } + + /** + * Check if the supplied path contains a Windows-style drive letter. + * + * @param string $path + * + * @return bool + */ + private static function pathContainsDriveLetter($path) + { + $letterAsciiValue = ord(strtoupper(substr($path, 0, 1))); + return substr($path, 1, 1) === ':' + && $letterAsciiValue >= 65 && $letterAsciiValue <= 90; + } +} diff --git a/lib/SimpleSAML/Utils/Time.php b/lib/SimpleSAML/Utils/Time.php new file mode 100755 index 0000000..21c005e --- /dev/null +++ b/lib/SimpleSAML/Utils/Time.php @@ -0,0 +1,167 @@ + + */ + public static function generateTimestamp($instant = null) + { + if ($instant === null) { + $instant = time(); + } + return gmdate('Y-m-d\TH:i:s\Z', $instant); + } + + + /** + * Initialize the timezone. + * + * This function should be called before any calls to date(). + * + * @author Olav Morken, UNINETT AS + * + * @throws \SimpleSAML_Error_Exception If the timezone set in the configuration is invalid. + * + * @return void + */ + public static function initTimezone() + { + if (self::$tz_initialized) { + return; + } + + $globalConfig = \SimpleSAML_Configuration::getInstance(); + + $timezone = $globalConfig->getString('timezone', null); + if ($timezone !== null) { + if (!date_default_timezone_set($timezone)) { + throw new \SimpleSAML_Error_Exception('Invalid timezone set in the "timezone" option in config.php.'); + } + self::$tz_initialized = true; + return; + } + // we don't have a timezone configured + + Logger::maskErrors(E_ALL); + $serverTimezone = date_default_timezone_get(); + Logger::popErrorMask(); + + // set the timezone to the default + date_default_timezone_set($serverTimezone); + self::$tz_initialized = true; + } + + + /** + * Interpret a ISO8601 duration value relative to a given timestamp. Please note no fractions are allowed, neither + * durations specified in the formats PYYYYMMDDThhmmss nor P[YYYY]-[MM]-[DD]T[hh]:[mm]:[ss]. + * + * @param string $duration The duration, as a string. + * @param int $timestamp The unix timestamp we should apply the duration to. Optional, default to the current + * time. + * + * @return int The new timestamp, after the duration is applied. + * @throws \InvalidArgumentException If $duration is not a valid ISO 8601 duration or if the input parameters do + * not have the right data types. + */ + public static function parseDuration($duration, $timestamp = null) + { + if (!(is_string($duration) && (is_int($timestamp) || is_null($timestamp)))) { + throw new \InvalidArgumentException('Invalid input parameters'); + } + + // parse the duration. We use a very strict pattern + $durationRegEx = '#^(-?)P(?:(?:(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)D)?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+)'. + '(?:[.,]\d+)?S)?)?)|(?:(\\d+)W))$#D'; + if (!preg_match($durationRegEx, $duration, $matches)) { + throw new \InvalidArgumentException('Invalid ISO 8601 duration: '.$duration); + } + + $durYears = (empty($matches[2]) ? 0 : (int) $matches[2]); + $durMonths = (empty($matches[3]) ? 0 : (int) $matches[3]); + $durDays = (empty($matches[4]) ? 0 : (int) $matches[4]); + $durHours = (empty($matches[5]) ? 0 : (int) $matches[5]); + $durMinutes = (empty($matches[6]) ? 0 : (int) $matches[6]); + $durSeconds = (empty($matches[7]) ? 0 : (int) $matches[7]); + $durWeeks = (empty($matches[8]) ? 0 : (int) $matches[8]); + + if (!empty($matches[1])) { + // negative + $durYears = -$durYears; + $durMonths = -$durMonths; + $durDays = -$durDays; + $durHours = -$durHours; + $durMinutes = -$durMinutes; + $durSeconds = -$durSeconds; + $durWeeks = -$durWeeks; + } + + if ($timestamp === null) { + $timestamp = time(); + } + + if ($durYears !== 0 || $durMonths !== 0) { + /* Special handling of months and years, since they aren't a specific interval, but + * instead depend on the current time. + */ + + /* We need the year and month from the timestamp. Unfortunately, PHP doesn't have the + * gmtime function. Instead we use the gmdate function, and split the result. + */ + $yearmonth = explode(':', gmdate('Y:n', $timestamp)); + $year = (int) ($yearmonth[0]); + $month = (int) ($yearmonth[1]); + + // remove the year and month from the timestamp + $timestamp -= gmmktime(0, 0, 0, $month, 1, $year); + + // add years and months, and normalize the numbers afterwards + $year += $durYears; + $month += $durMonths; + while ($month > 12) { + $year += 1; + $month -= 12; + } + while ($month < 1) { + $year -= 1; + $month += 12; + } + + // add year and month back into timestamp + $timestamp += gmmktime(0, 0, 0, $month, 1, $year); + } + + // add the other elements + $timestamp += $durWeeks * 7 * 24 * 60 * 60; + $timestamp += $durDays * 24 * 60 * 60; + $timestamp += $durHours * 60 * 60; + $timestamp += $durMinutes * 60; + $timestamp += $durSeconds; + + return $timestamp; + } +} diff --git a/lib/SimpleSAML/Utils/XML.php b/lib/SimpleSAML/Utils/XML.php new file mode 100755 index 0000000..93a3b89 --- /dev/null +++ b/lib/SimpleSAML/Utils/XML.php @@ -0,0 +1,453 @@ + + * @author Jaime Perez, UNINETT AS + */ + public static function checkSAMLMessage($message, $type) + { + $allowed_types = array('saml20', 'saml11', 'saml-meta'); + if (!(is_string($message) && in_array($type, $allowed_types, true))) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + + // a SAML message should not contain a doctype-declaration + if (strpos($message, 'getArrayize('debug', array('validatexml' => false)); + $enabled = \SimpleSAML_Configuration::getInstance()->getBoolean('debug.validatexml', false); + + if (!(in_array('validatexml', $debug, true) // implicitly enabled + || (array_key_exists('validatexml', $debug) && $debug['validatexml'] === true) // explicitly enabled + // TODO: deprecate this option and remove it in 2.0 + || $enabled // old 'debug.validatexml' configuration option + )) { + // XML validation is disabled + return; + } + + $result = true; + switch ($type) { + case 'saml11': + $result = self::isValid($message, 'oasis-sstc-saml-schema-protocol-1.1.xsd'); + break; + case 'saml20': + $result = self::isValid($message, 'saml-schema-protocol-2.0.xsd'); + break; + case 'saml-meta': + $result = self::isValid($message, 'saml-schema-metadata-2.0.xsd'); + } + if ($result !== true) { + Logger::warning($result); + } + } + + + /** + * Helper function to log SAML messages that we send or receive. + * + * @param string|\DOMElement $message The message, as an string containing the XML or an XML element. + * @param string $type Whether this message is sent or received, encrypted or decrypted. The following + * values are supported: + * - 'in': for messages received. + * - 'out': for outgoing messages. + * - 'decrypt': for decrypted messages. + * - 'encrypt': for encrypted messages. + * + * @throws \InvalidArgumentException If $type is not a string or $message is neither a string nor a \DOMElement. + * + * @return void + * + * @author Olav Morken, UNINETT AS + */ + public static function debugSAMLMessage($message, $type) + { + if (!(is_string($type) && (is_string($message) || $message instanceof \DOMElement))) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + + // see if debugging is enabled for SAML messages + $debug = \SimpleSAML_Configuration::getInstance()->getArrayize('debug', array('saml' => false)); + + if (!(in_array('saml', $debug, true) // implicitly enabled + || (array_key_exists('saml', $debug) && $debug['saml'] === true) // explicitly enabled + // TODO: deprecate the old style and remove it in 2.0 + || (array_key_exists(0, $debug) && $debug[0] === true) // old style 'debug' + )) { + // debugging messages is disabled + return; + } + + if ($message instanceof \DOMElement) { + $message = $message->ownerDocument->saveXML($message); + } + + switch ($type) { + case 'in': + Logger::debug('Received message:'); + break; + case 'out': + Logger::debug('Sending message:'); + break; + case 'decrypt': + Logger::debug('Decrypted message:'); + break; + case 'encrypt': + Logger::debug('Encrypted message:'); + break; + default: + assert(false); + } + + $str = self::formatXMLString($message); + foreach (explode("\n", $str) as $line) { + Logger::debug($line); + } + } + + + /** + * Format a DOM element. + * + * This function takes in a DOM element, and inserts whitespace to make it more readable. Note that whitespace + * added previously will be removed. + * + * @param \DOMNode $root The root element which should be formatted. + * @param string $indentBase The indentation this element should be assumed to have. Defaults to an empty + * string. + * + * @throws \InvalidArgumentException If $root is not a DOMElement or $indentBase is not a string. + * + * @return void + * + * @author Olav Morken, UNINETT AS + */ + public static function formatDOMElement(\DOMNode $root, $indentBase = '') + { + if (!is_string($indentBase)) { + throw new \InvalidArgumentException('Invalid input parameters'); + } + + // check what this element contains + $fullText = ''; // all text in this element + $textNodes = array(); // text nodes which should be deleted + $childNodes = array(); // other child nodes + for ($i = 0; $i < $root->childNodes->length; $i++) { + /** @var \DOMElement $child */ + $child = $root->childNodes->item($i); + + if ($child instanceof \DOMText) { + $textNodes[] = $child; + $fullText .= $child->wholeText; + } elseif ($child instanceof \DOMComment || $child instanceof \DOMElement) { + $childNodes[] = $child; + } else { + // unknown node type. We don't know how to format this + return; + } + } + + $fullText = trim($fullText); + if (strlen($fullText) > 0) { + // we contain textelf + $hasText = true; + } else { + $hasText = false; + } + + $hasChildNode = (count($childNodes) > 0); + + if ($hasText && $hasChildNode) { + // element contains both text and child nodes - we don't know how to format this one + return; + } + + // remove text nodes + foreach ($textNodes as $node) { + $root->removeChild($node); + } + + if ($hasText) { + // only text - add a single text node to the element with the full text + $root->appendChild(new \DOMText($fullText)); + return; + } + + if (!$hasChildNode) { + // empty node. Nothing to do + return; + } + + /* Element contains only child nodes - add indentation before each one, and + * format child elements. + */ + $childIndentation = $indentBase.' '; + foreach ($childNodes as $node) { + // add indentation before node + $root->insertBefore(new \DOMText("\n".$childIndentation), $node); + + // format child elements + if ($node instanceof \DOMElement) { + self::formatDOMElement($node, $childIndentation); + } + } + + // add indentation before closing tag + $root->appendChild(new \DOMText("\n".$indentBase)); + } + + + /** + * Format an XML string. + * + * This function formats an XML string using the formatDOMElement() function. + * + * @param string $xml An XML string which should be formatted. + * @param string $indentBase Optional indentation which should be applied to all the output. Optional, defaults + * to ''. + * + * @return string The formatted string. + * @throws \InvalidArgumentException If the parameters are not strings. + * @throws \DOMException If the input does not parse correctly as an XML string. + * + * @author Olav Morken, UNINETT AS + */ + public static function formatXMLString($xml, $indentBase = '') + { + if (!is_string($xml) || !is_string($indentBase)) { + throw new \InvalidArgumentException('Invalid input parameters'); + } + + try { + $doc = \SAML2\DOMDocumentFactory::fromString($xml); + } catch (\Exception $e) { + throw new \DOMException('Error parsing XML string.'); + } + + $root = $doc->firstChild; + self::formatDOMElement($root, $indentBase); + + return $doc->saveXML($root); + } + + + /** + * This function finds direct descendants of a DOM element with the specified + * localName and namespace. They are returned in an array. + * + * This function accepts the same shortcuts for namespaces as the isDOMNodeOfType function. + * + * @param \DOMNode $element The element we should look in. + * @param string $localName The name the element should have. + * @param string $namespaceURI The namespace the element should have. + * + * @return array Array with the matching elements in the order they are found. An empty array is + * returned if no elements match. + * @throws \InvalidArgumentException If $element is not an instance of DOMElement, $localName is not a string or + * $namespaceURI is not a string. + */ + public static function getDOMChildren(\DOMNode $element, $localName, $namespaceURI) + { + if (!is_string($localName) || !is_string($namespaceURI)) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + + $ret = array(); + + for ($i = 0; $i < $element->childNodes->length; $i++) { + /** @var \DOMElement $child */ + $child = $element->childNodes->item($i); + + // skip text nodes and comment elements + if ($child instanceof \DOMText || $child instanceof \DOMComment) { + continue; + } + + if (self::isDOMNodeOfType($child, $localName, $namespaceURI) === true) { + $ret[] = $child; + } + } + + return $ret; + } + + + /** + * This function extracts the text from DOMElements which should contain only text content. + * + * @param \DOMElement $element The element we should extract text from. + * + * @return string The text content of the element. + * @throws \SimpleSAML_Error_Exception If the element contains a non-text child node. + * + * @author Olav Morken, UNINETT AS + */ + public static function getDOMText(\DOMElement $element) + { + $txt = ''; + + for ($i = 0; $i < $element->childNodes->length; $i++) { + /** @var \DOMElement $child */ + $child = $element->childNodes->item($i); + if (!($child instanceof \DOMText)) { + throw new \SimpleSAML_Error_Exception($element->localName.' contained a non-text child node.'); + } + + $txt .= $child->wholeText; + } + + $txt = trim($txt); + return $txt; + } + + + /** + * This function checks if the DOMElement has the correct localName and namespaceURI. + * + * We also define the following shortcuts for namespaces: + * - '@ds': 'http://www.w3.org/2000/09/xmldsig#' + * - '@md': 'urn:oasis:names:tc:SAML:2.0:metadata' + * - '@saml1': 'urn:oasis:names:tc:SAML:1.0:assertion' + * - '@saml1md': 'urn:oasis:names:tc:SAML:profiles:v1metadata' + * - '@saml1p': 'urn:oasis:names:tc:SAML:1.0:protocol' + * - '@saml2': 'urn:oasis:names:tc:SAML:2.0:assertion' + * - '@saml2p': 'urn:oasis:names:tc:SAML:2.0:protocol' + * + * @param \DOMNode $element The element we should check. + * @param string $name The local name the element should have. + * @param string $nsURI The namespaceURI the element should have. + * + * @return boolean True if both namespace and local name matches, false otherwise. + * @throws \InvalidArgumentException If the namespace shortcut is unknown. + * + * @author Andreas Solberg, UNINETT AS + * @author Olav Morken, UNINETT AS + */ + public static function isDOMNodeOfType(\DOMNode $element, $name, $nsURI) + { + if (!is_string($name) || !is_string($nsURI) || strlen($nsURI) === 0) { + // most likely a comment-node + return false; + } + + // check if the namespace is a shortcut, and expand it if it is + if ($nsURI[0] === '@') { + // the defined shortcuts + $shortcuts = array( + '@ds' => 'http://www.w3.org/2000/09/xmldsig#', + '@md' => 'urn:oasis:names:tc:SAML:2.0:metadata', + '@saml1' => 'urn:oasis:names:tc:SAML:1.0:assertion', + '@saml1md' => 'urn:oasis:names:tc:SAML:profiles:v1metadata', + '@saml1p' => 'urn:oasis:names:tc:SAML:1.0:protocol', + '@saml2' => 'urn:oasis:names:tc:SAML:2.0:assertion', + '@saml2p' => 'urn:oasis:names:tc:SAML:2.0:protocol', + '@shibmd' => 'urn:mace:shibboleth:metadata:1.0', + ); + + // check if it is a valid shortcut + if (!array_key_exists($nsURI, $shortcuts)) { + throw new \InvalidArgumentException('Unknown namespace shortcut: '.$nsURI); + } + + // expand the shortcut + $nsURI = $shortcuts[$nsURI]; + } + if ($element->localName !== $name) { + return false; + } + if ($element->namespaceURI !== $nsURI) { + return false; + } + return true; + } + + + /** + * This function attempts to validate an XML string against the specified schema. It will parse the string into a + * DOM document and validate this document against the schema. + * + * Note that this function returns values that are evaluated as a logical true, both when validation works and when + * it doesn't. Please use strict comparisons to check the values returned. + * + * @param string|\DOMDocument $xml The XML string or document which should be validated. + * @param string $schema The filename of the schema that should be used to validate the document. + * + * @return boolean|string Returns a string with errors found if validation fails. True if validation passes ok. + * @throws \InvalidArgumentException If $schema is not a string, or $xml is neither a string nor a \DOMDocument. + * + * @author Olav Morken, UNINETT AS + */ + public static function isValid($xml, $schema) + { + if (!(is_string($schema) && (is_string($xml) || $xml instanceof \DOMDocument))) { + throw new \InvalidArgumentException('Invalid input parameters.'); + } + + Errors::begin(); + + if ($xml instanceof \DOMDocument) { + $dom = $xml; + $res = true; + } else { + try { + $dom = \SAML2\DOMDocumentFactory::fromString($xml); + $res = true; + } catch (\Exception $e) { + $res = false; + } + } + + if ($res) { + $config = \SimpleSAML_Configuration::getInstance(); + /** @var string $schemaPath */ + $schemaPath = $config->resolvePath('schemas'); + $schemaFile = $schemaPath.'/'.$schema; + + $res = $dom->schemaValidate($schemaFile); + if ($res) { + Errors::end(); + return true; + } + + $errorText = "Schema validation failed on XML string:\n"; + } else { + $errorText = "Failed to parse XML string for schema validation:\n"; + } + + $errors = Errors::end(); + $errorText .= Errors::formatErrors($errors); + + return $errorText; + } +} diff --git a/lib/SimpleSAML/XHTML/EMail.php b/lib/SimpleSAML/XHTML/EMail.php new file mode 100755 index 0000000..5796ec1 --- /dev/null +++ b/lib/SimpleSAML/XHTML/EMail.php @@ -0,0 +1,122 @@ + + * @package SimpleSAMLphp + */ +class SimpleSAML_XHTML_EMail +{ + private $to = null; + private $cc = null; + private $body = null; + private $from = null; + private $replyto = null; + private $subject = null; + private $headers = array(); + + + /** + * Constructor + */ + public function __construct($to, $subject, $from = null, $cc = null, $replyto = null) + { + $this->to = $to; + $this->cc = $cc; + $this->from = $from; + $this->replyto = $replyto; + $this->subject = $subject; + } + + /* + * @param string $body + * @return void + */ + public function setBody($body) + { + $this->body = $body; + } + + + /* + * @param string $body + * @return void + */ + private function getHTML($body) + { + return ' + + + + SimpleSAMLphp Email report + + + +
+' . $body . ' +
+ +'; + } + + + /* + * @return void + */ + public function send() + { + if ($this->to === null) { + throw new Exception('EMail field [to] is required and not set.'); + } elseif ($this->subject === null) { + throw new Exception('EMail field [subject] is required and not set.'); + } elseif ($this->body === null) { + throw new Exception('EMail field [body] is required and not set.'); + } + + $random_hash = bin2hex(openssl_random_pseudo_bytes(16)); + + if (isset($this->from)) { + $this->headers[]= 'From: ' . $this->from; + } + if (isset($this->replyto)) { + $this->headers[]= 'Reply-To: ' . $this->replyto; + } + + $this->headers[] = 'Content-Type: multipart/alternative; boundary="simplesamlphp-' . $random_hash . '"'; + + $message = ' +--simplesamlphp-' . $random_hash . ' +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 8bit + +' . strip_tags(html_entity_decode($this->body)) . ' + +--simplesamlphp-' . $random_hash . ' +Content-Type: text/html; charset="utf-8" +Content-Transfer-Encoding: 8bit + +' . $this->getHTML($this->body) . ' + +--simplesamlphp-' . $random_hash . '-- +'; + $headers = implode("\n", $this->headers); + + $mail_sent = @mail($this->to, $this->subject, $message, $headers); + SimpleSAML\Logger::debug('Email: Sending e-mail to [' . $this->to . '] : ' . ($mail_sent ? 'OK' : 'Failed')); + if (!$mail_sent) { + throw new Exception('Error when sending e-mail'); + } + } +} diff --git a/lib/SimpleSAML/XHTML/IdPDisco.php b/lib/SimpleSAML/XHTML/IdPDisco.php new file mode 100755 index 0000000..70b06d7 --- /dev/null +++ b/lib/SimpleSAML/XHTML/IdPDisco.php @@ -0,0 +1,598 @@ +, UNINETT AS. + * @author Olav Morken, UNINETT AS. + * @author Andreas ƅkre Solberg , UNINETT AS. + * @package SimpleSAMLphp + */ +class SimpleSAML_XHTML_IdPDisco +{ + + /** + * An instance of the configuration class. + * + * @var SimpleSAML_Configuration + */ + protected $config; + + /** + * The identifier of this discovery service. + * + * @var string + */ + protected $instance; + + + /** + * An instance of the metadata handler, which will allow us to fetch metadata about IdPs. + * + * @var SimpleSAML_Metadata_MetaDataStorageHandler + */ + protected $metadata; + + + /** + * The users session. + * + * @var SimpleSAML_Session + */ + protected $session; + + + /** + * The metadata sets we find allowed entities in, in prioritized order. + * + * @var array + */ + protected $metadataSets; + + + /** + * The entity id of the SP which accesses this IdP discovery service. + * + * @var string + */ + protected $spEntityId; + + /** + * HTTP parameter from the request, indicating whether the discovery service + * can interact with the user or not. + * + * @var boolean + */ + protected $isPassive; + + /** + * The SP request to set the IdPentityID... + * + * @var string|null + */ + protected $setIdPentityID = null; + + + /** + * The name of the query parameter which should contain the users choice of IdP. + * This option default to 'entityID' for Shibboleth compatibility. + * + * @var string + */ + protected $returnIdParam; + + /** + * The list of scoped idp's. The intersection between the metadata idpList + * and scopedIDPList (given as a $_GET IDPList[] parameter) is presented to + * the user. If the intersection is empty the metadata idpList is used. + * + * @var array + */ + protected $scopedIDPList = array(); + + /** + * The URL the user should be redirected to after choosing an IdP. + * + * @var string + */ + protected $returnURL; + + + /** + * Initializes this discovery service. + * + * The constructor does the parsing of the request. If this is an invalid request, it will throw an exception. + * + * @param array $metadataSets Array with metadata sets we find remote entities in. + * @param string $instance The name of this instance of the discovery service. + * + * @throws Exception If the request is invalid. + */ + public function __construct(array $metadataSets, $instance) + { + assert(is_string($instance)); + + // initialize standard classes + $this->config = SimpleSAML_Configuration::getInstance(); + $this->metadata = SimpleSAML_Metadata_MetaDataStorageHandler::getMetadataHandler(); + $this->session = SimpleSAML_Session::getSessionFromRequest(); + $this->instance = $instance; + $this->metadataSets = $metadataSets; + + $this->log('Accessing discovery service.'); + + // standard discovery service parameters + if (!array_key_exists('entityID', $_GET)) { + throw new Exception('Missing parameter: entityID'); + } else { + $this->spEntityId = $_GET['entityID']; + } + + if (!array_key_exists('returnIDParam', $_GET)) { + $this->returnIdParam = 'entityID'; + } else { + $this->returnIdParam = $_GET['returnIDParam']; + } + + $this->log('returnIdParam initially set to ['.$this->returnIdParam.']'); + + if (!array_key_exists('return', $_GET)) { + throw new Exception('Missing parameter: return'); + } else { + $this->returnURL = \SimpleSAML\Utils\HTTP::checkURLAllowed($_GET['return']); + } + + $this->isPassive = false; + if (array_key_exists('isPassive', $_GET)) { + if ($_GET['isPassive'] === 'true') { + $this->isPassive = true; + } + } + $this->log('isPassive initially set to ['.($this->isPassive ? 'TRUE' : 'FALSE').']'); + + if (array_key_exists('IdPentityID', $_GET)) { + $this->setIdPentityID = $_GET['IdPentityID']; + } + + if (array_key_exists('IDPList', $_REQUEST)) { + $this->scopedIDPList = $_REQUEST['IDPList']; + } + } + + + /** + * Log a message. + * + * This is an helper function for logging messages. It will prefix the messages with our + * discovery service type. + * + * @param string $message The message which should be logged. + */ + protected function log($message) + { + SimpleSAML\Logger::info('idpDisco.'.$this->instance.': '.$message); + } + + + /** + * Retrieve cookie with the given name. + * + * This function will retrieve a cookie with the given name for the current discovery + * service type. + * + * @param string $name The name of the cookie. + * + * @return string The value of the cookie with the given name, or null if no cookie with that name exists. + */ + protected function getCookie($name) + { + $prefixedName = 'idpdisco_'.$this->instance.'_'.$name; + if (array_key_exists($prefixedName, $_COOKIE)) { + return $_COOKIE[$prefixedName]; + } else { + return null; + } + } + + + /** + * Save cookie with the given name and value. + * + * This function will save a cookie with the given name and value for the current discovery + * service type. + * + * @param string $name The name of the cookie. + * @param string $value The value of the cookie. + */ + protected function setCookie($name, $value) + { + $prefixedName = 'idpdisco_'.$this->instance.'_'.$name; + + $params = array( + // we save the cookies for 90 days + 'lifetime' => (60 * 60 * 24 * 90), + // the base path for cookies. This should be the installation directory for SimpleSAMLphp + 'path' => $this->config->getBasePath(), + 'httponly' => false, + ); + + \SimpleSAML\Utils\HTTP::setCookie($prefixedName, $value, $params, false); + } + + + /** + * Validates the given IdP entity id. + * + * Takes a string with the IdP entity id, and returns the entity id if it is valid, or + * null if not. + * + * @param string|null $idp The entity id we want to validate. This can be null, in which case we will return null. + * + * @return string|null The entity id if it is valid, null if not. + */ + protected function validateIdP($idp) + { + if ($idp === null) { + return null; + } + + if (!$this->config->getBoolean('idpdisco.validate', true)) { + return $idp; + } + + foreach ($this->metadataSets as $metadataSet) { + try { + $this->metadata->getMetaData($idp, $metadataSet); + return $idp; + } catch (Exception $e) { + // continue + } + } + + $this->log('Unable to validate IdP entity id ['.$idp.'].'); + + // the entity id wasn't valid + return null; + } + + + /** + * Retrieve the users choice of IdP. + * + * This function finds out which IdP the user has manually chosen, if any. + * + * @return string The entity id of the IdP the user has chosen, or null if the user has made no choice. + */ + protected function getSelectedIdP() + { + /* Parameter set from the Extended IdP Metadata Discovery Service Protocol, indicating that the user prefers + * this IdP. + */ + if (!empty($this->setIdPentityID)) { + return $this->validateIdP($this->setIdPentityID); + } + + // user has clicked on a link, or selected the IdP from a drop-down list + if (array_key_exists('idpentityid', $_GET)) { + return $this->validateIdP($_GET['idpentityid']); + } + + /* Search for the IdP selection from the form used by the links view. This form uses a name which equals + * idp_, so we search for that. + * + * Unfortunately, php replaces periods in the name with underscores, and there is no reliable way to get them + * back. Therefore we do some quick and dirty parsing of the query string. + */ + $qstr = $_SERVER['QUERY_STRING']; + $matches = array(); + if (preg_match('/(?:^|&)idp_([^=]+)=/', $qstr, $matches)) { + return $this->validateIdP(urldecode($matches[1])); + } + + // no IdP chosen + return null; + } + + + /** + * Retrieve the users saved choice of IdP. + * + * @return string The entity id of the IdP the user has saved, or null if the user hasn't saved any choice. + */ + protected function getSavedIdP() + { + if (!$this->config->getBoolean('idpdisco.enableremember', false)) { + // saving of IdP choices is disabled + return null; + } + + if ($this->getCookie('remember') === '1') { + $this->log('Return previously saved IdP because of remember cookie set to 1'); + return $this->getPreviousIdP(); + } + + if ($this->isPassive) { + $this->log('Return previously saved IdP because of isPassive'); + return $this->getPreviousIdP(); + } + + return null; + } + + + /** + * Retrieve the previous IdP the user used. + * + * @return string The entity id of the previous IdP the user used, or null if this is the first time. + */ + protected function getPreviousIdP() + { + return $this->validateIdP($this->getCookie('lastidp')); + } + + + /** + * Retrieve a recommended IdP based on the IP address of the client. + * + * @return string|null The entity ID of the IdP if one is found, or null if not. + */ + protected function getFromCIDRhint() + { + foreach ($this->metadataSets as $metadataSet) { + $idp = $this->metadata->getPreferredEntityIdFromCIDRhint($metadataSet, $_SERVER['REMOTE_ADDR']); + if (!empty($idp)) { + return $idp; + } + } + + return null; + } + + + /** + * Try to determine which IdP the user should most likely use. + * + * This function will first look at the previous IdP the user has chosen. If the user + * hasn't chosen an IdP before, it will look at the IP address. + * + * @return string The entity id of the IdP the user should most likely use. + */ + protected function getRecommendedIdP() + { + $idp = $this->getPreviousIdP(); + if ($idp !== null) { + $this->log('Preferred IdP from previous use ['.$idp.'].'); + return $idp; + } + + $idp = $this->getFromCIDRhint(); + + if (!empty($idp)) { + $this->log('Preferred IdP from CIDR hint ['.$idp.'].'); + return $idp; + } + + return null; + } + + + /** + * Save the current IdP choice to a cookie. + * + * @param string $idp The entityID of the IdP. + */ + protected function setPreviousIdP($idp) + { + assert(is_string($idp)); + + $this->log('Choice made ['.$idp.'] Setting cookie.'); + $this->setCookie('lastidp', $idp); + } + + + /** + * Determine whether the choice of IdP should be saved. + * + * @return boolean True if the choice should be saved, false otherwise. + */ + protected function saveIdP() + { + if (!$this->config->getBoolean('idpdisco.enableremember', false)) { + // saving of IdP choices is disabled + return false; + } + + if (array_key_exists('remember', $_GET)) { + return true; + } + + return false; + } + + + /** + * Determine which IdP the user should go to, if any. + * + * @return string The entity id of the IdP the user should be sent to, or null if the user should choose. + */ + protected function getTargetIdP() + { + // first, check if the user has chosen an IdP + $idp = $this->getSelectedIdP(); + if ($idp !== null) { + // the user selected this IdP. Save the choice in a cookie + $this->setPreviousIdP($idp); + + if ($this->saveIdP()) { + $this->setCookie('remember', '1'); + } else { + $this->setCookie('remember', '0'); + } + + return $idp; + } + + $this->log('getSelectedIdP() returned null'); + + // check if the user has saved an choice earlier + $idp = $this->getSavedIdP(); + if ($idp !== null) { + $this->log('Using saved choice ['.$idp.'].'); + return $idp; + } + + // the user has made no choice + return null; + } + + + /** + * Retrieve the list of IdPs which are stored in the metadata. + * + * @return array An array with entityid => metadata mappings. + */ + protected function getIdPList() + { + $idpList = array(); + foreach ($this->metadataSets as $metadataSet) { + $newList = $this->metadata->getList($metadataSet); + /* + * Note that we merge the entities in reverse order. This ensures that it is the entity in the first + * metadata set that "wins" if two metadata sets have the same entity. + */ + $idpList = array_merge($newList, $idpList); + } + + return $idpList; + } + + + /** + * Return the list of scoped idp + * + * @return array An array of IdP entities + */ + protected function getScopedIDPList() + { + return $this->scopedIDPList; + } + + + /** + * Filter the list of IdPs. + * + * This method returns the IdPs that comply with the following conditions: + * - The IdP does not have the 'hide.from.discovery' configuration option. + * + * @param array $list An associative array containing metadata for the IdPs to apply the filtering to. + * + * @return array An associative array containing metadata for the IdPs that were not filtered out. + */ + protected function filterList($list) + { + foreach ($list as $entity => $metadata) { + if (array_key_exists('hide.from.discovery', $metadata) && $metadata['hide.from.discovery'] === true) { + unset($list[$entity]); + } + } + return $list; + } + + + /** + * Check if an IdP is set or if the request is passive, and redirect accordingly. + * + * @return void If there is no IdP targeted and this is not a passive request. + */ + protected function start() + { + $idp = $this->getTargetIdp(); + if ($idp !== null) { + $extDiscoveryStorage = $this->config->getString('idpdisco.extDiscoveryStorage', null); + if ($extDiscoveryStorage !== null) { + $this->log('Choice made ['.$idp.'] (Forwarding to external discovery storage)'); + \SimpleSAML\Utils\HTTP::redirectTrustedURL($extDiscoveryStorage, array( + 'entityID' => $this->spEntityId, + 'IdPentityID' => $idp, + 'returnIDParam' => $this->returnIdParam, + 'isPassive' => 'true', + 'return' => $this->returnURL + )); + } else { + $this->log( + 'Choice made ['.$idp.'] (Redirecting the user back. returnIDParam='.$this->returnIdParam.')' + ); + \SimpleSAML\Utils\HTTP::redirectTrustedURL($this->returnURL, array($this->returnIdParam => $idp)); + } + } + + if ($this->isPassive) { + $this->log('Choice not made. (Redirecting the user back without answer)'); + \SimpleSAML\Utils\HTTP::redirectTrustedURL($this->returnURL); + } + } + + + /** + * Handles a request to this discovery service. + * + * The IdP disco parameters should be set before calling this function. + */ + public function handleRequest() + { + $this->start(); + + // no choice made. Show discovery service page + $idpList = $this->getIdPList(); + $idpList = $this->filterList($idpList); + $preferredIdP = $this->getRecommendedIdP(); + + $idpintersection = array_intersect(array_keys($idpList), $this->getScopedIDPList()); + if (sizeof($idpintersection) > 0) { + $idpList = array_intersect_key($idpList, array_fill_keys($idpintersection, null)); + } + + $idpintersection = array_values($idpintersection); + + if (sizeof($idpintersection) == 1) { + $this->log( + 'Choice made ['.$idpintersection[0].'] (Redirecting the user back. returnIDParam='. + $this->returnIdParam.')' + ); + \SimpleSAML\Utils\HTTP::redirectTrustedURL( + $this->returnURL, + array($this->returnIdParam => $idpintersection[0]) + ); + } + + /* + * Make use of an XHTML template to present the select IdP choice to the user. Currently the supported options + * is either a drop down menu or a list view. + */ + switch ($this->config->getString('idpdisco.layout', 'links')) { + case 'dropdown': + $templateFile = 'selectidp-dropdown.php'; + break; + case 'links': + $templateFile = 'selectidp-links.php'; + break; + default: + throw new Exception('Invalid value for the \'idpdisco.layout\' option.'); + } + + $t = new SimpleSAML_XHTML_Template($this->config, $templateFile, 'disco'); + $t->data['idplist'] = $idpList; + $t->data['preferredidp'] = $preferredIdP; + $t->data['return'] = $this->returnURL; + $t->data['returnIDParam'] = $this->returnIdParam; + $t->data['entityID'] = $this->spEntityId; + $t->data['urlpattern'] = htmlspecialchars(\SimpleSAML\Utils\HTTP::getSelfURLNoQuery()); + $t->data['rememberenabled'] = $this->config->getBoolean('idpdisco.enableremember', false); + $t->show(); + } +} diff --git a/lib/SimpleSAML/XHTML/Template.php b/lib/SimpleSAML/XHTML/Template.php new file mode 100755 index 0000000..d23c95f --- /dev/null +++ b/lib/SimpleSAML/XHTML/Template.php @@ -0,0 +1,724 @@ + + * @package SimpleSAMLphp + */ + +use JaimePerez\TwigConfigurableI18n\Twig\Environment as Twig_Environment; +use JaimePerez\TwigConfigurableI18n\Twig\Extensions\Extension\I18n as Twig_Extensions_Extension_I18n; + +class SimpleSAML_XHTML_Template +{ + /** + * The data associated with this template, accessible within the template itself. + * + * @var array + */ + public $data = array(); + + /** + * A translator instance configured to work with this template. + * + * @var \SimpleSAML\Locale\Translate + */ + private $translator; + + /** + * The localization backend + * + * @var \SimpleSAML\Locale\Localization + */ + private $localization; + + /** + * The configuration to use in this template. + * + * @var SimpleSAML_Configuration + */ + private $configuration; + + /** + * The file to load in this template. + * + * @var string + */ + private $template = 'default.php'; + + /** + * The twig environment. + * + * @var false|Twig_Environment + */ + private $twig; + + /** + * The template name. + * + * @var string + */ + private $twig_template; + + /** + * Current module, if any. + */ + private $module; + + /** + * A template controller, if any. + * + * Used to intercept certain parts of the template handling, while keeping away unwanted/unexpected hooks. Set + * the 'theme.controller' configuration option to a class that implements the + * SimpleSAML\XHTML\TemplateControllerInterface interface to use it. + * + * @var SimpleSAML\XHTML\TemplateControllerInterface + */ + private $controller; + + + /** + * Whether we are using a non-default theme or not. + * + * If we are using a theme, this variable holds an array with two keys: "module" and "name", those being the name + * of the module and the name of the theme, respectively. If we are using the default theme, the variable defaults + * to false. + * + * @var bool|array + */ + private $theme; + + /** + * Constructor + * + * @param SimpleSAML_Configuration $configuration Configuration object + * @param string $template Which template file to load + * @param string|null $defaultDictionary The default dictionary where tags will come from. + */ + public function __construct(\SimpleSAML_Configuration $configuration, $template, $defaultDictionary = null) + { + $this->configuration = $configuration; + $this->template = $template; + // TODO: do not remove the slash from the beginning, change the templates instead! + $this->data['baseurlpath'] = ltrim($this->configuration->getBasePath(), '/'); + + // parse module and template name + list($this->module) = $this->findModuleAndTemplateName($template); + + // parse config to find theme and module theme is in, if any + list($this->theme['module'], $this->theme['name']) = self::findModuleAndTemplateName( + $this->configuration->getString('theme.use', 'default') + ); + + // initialize internationalization system + $this->translator = new SimpleSAML\Locale\Translate($configuration, $defaultDictionary); + $this->localization = new \SimpleSAML\Locale\Localization($configuration); + + // check if we need to attach a theme controller + $controller = $this->configuration->getString('theme.controller', false); + if ($controller && class_exists($controller) && + class_implements($controller, '\SimpleSAML\XHTML\TemplateControllerInterface') + ) { + $this->controller = new $controller(); + } + + $this->twig = $this->setupTwig(); + } + + + /** + * Normalize the name of the template to one of the possible alternatives. + * + * @param string $templateName The template name to normalize. + * @return string The filename we need to look for. + */ + private function normalizeTemplateName($templateName) + { + if (strripos($templateName, '.twig')) { + return $templateName; + } + $phppos = strripos($templateName, '.php'); + if ($phppos) { + $templateName = substr($templateName, 0, $phppos); + } + $tplpos = strripos($templateName, '.tpl'); + if ($tplpos) { + $templateName = substr($templateName, 0, $tplpos); + } + return $templateName.'.twig'; + } + + + /** + * Set up the places where twig can look for templates. + * + * @return Twig_Loader_Filesystem The twig template loader or false if the template does not exist. + * @throws Twig_Error_Loader In case a failure occurs. + */ + private function setupTwigTemplatepaths() + { + $filename = $this->normalizeTemplateName($this->template); + + // get namespace if any + list($namespace, $filename) = self::findModuleAndTemplateName($filename); + $this->twig_template = ($namespace !== null) ? '@'.$namespace.'/'.$filename : $filename; + $loader = new \Twig_Loader_Filesystem(); + $templateDirs = $this->findThemeTemplateDirs(); + if ($this->module) { + $templateDirs[] = array($this->module => $this->getModuleTemplateDir($this->module)); + } + if ($this->theme['module']) { + try { + $templateDirs[] = array($this->theme['module'] => $this->getModuleTemplateDir($this->theme['module'])); + } catch (\InvalidArgumentException $e) { + // either the module is not enabled or it has no "templates" directory, ignore + } + } + + // default, themeless templates are checked last + $templateDirs[] = array( + \Twig_Loader_Filesystem::MAIN_NAMESPACE => $this->configuration->resolvePath('templates') + ); + foreach ($templateDirs as $entry) { + $loader->addPath($entry[key($entry)], key($entry)); + } + return $loader; + } + + + /** + * Setup twig. + */ + private function setupTwig() + { + $auto_reload = $this->configuration->getBoolean('template.auto_reload', true); + $cache = $this->configuration->getString('template.cache', false); + // set up template paths + $loader = $this->setupTwigTemplatepaths(); + // abort if twig template does not exist + if (!$loader->exists($this->twig_template)) { + return false; + } + + // load extra i18n domains + if ($this->module) { + $this->localization->addModuleDomain($this->module); + } + if ($this->theme['module'] !== null && $this->theme['module'] !== $this->module) { + $this->localization->addModuleDomain($this->theme['module']); + } + + $options = array( + 'cache' => $cache, + 'auto_reload' => $auto_reload, + 'translation_function' => array('\SimpleSAML\Locale\Translate', 'translateSingularNativeGettext'), + 'translation_function_plural' => array('\SimpleSAML\Locale\Translate', 'translatePluralNativeGettext'), + ); + + // set up translation + if ($this->localization->i18nBackend === \SimpleSAML\Locale\Localization::GETTEXT_I18N_BACKEND) { + $options['translation_function'] = array('\SimpleSAML\Locale\Translate', 'translateSingularGettext'); + $options['translation_function_plural'] = array( + '\SimpleSAML\Locale\Translate', + 'translatePluralGettext' + ); + } // TODO: add a branch for the old SimpleSAMLphp backend + + $twig = new Twig_Environment($loader, $options); + $twig->addExtension(new Twig_Extensions_Extension_I18n()); + + // initialize some basic context + $langParam = $this->configuration->getString('language.parameter.name', 'language'); + $twig->addGlobal('languageParameterName', $langParam); + $twig->addGlobal('localeBackend', $this->configuration->getString('language.i18n.backend', 'SimpleSAMLphp')); + $twig->addGlobal('currentLanguage', $this->translator->getLanguage()->getLanguage()); + $twig->addGlobal('isRTL', false); // language RTL configuration + if ($this->translator->getLanguage()->isLanguageRTL()) { + $twig->addGlobal('isRTL', true); + } + $queryParams = $_GET; // add query parameters, in case we need them in the template + if (isset($queryParams[$langParam])) { + unset($queryParams[$langParam]); + } + $twig->addGlobal('queryParams', $queryParams); + $twig->addGlobal('templateId', str_replace('.twig', '', $this->normalizeTemplateName($this->template))); + $twig->addGlobal('isProduction', $this->configuration->getBoolean('production', true)); + + // add a filter for translations out of arrays + $twig->addFilter( + new \Twig_SimpleFilter( + 'translateFromArray', + array('\SimpleSAML\Locale\Translate', 'translateFromArray'), + array('needs_context' => true) + ) + ); + + if ($this->controller) { + $this->controller->setUpTwig($twig); + } + + return $twig; + } + + /** + * Add overriding templates from the configured theme. + * + * @return array An array of module => templatedir lookups. + */ + private function findThemeTemplateDirs() + { + if ($this->theme['module'] === null) { // no module involved + return array(); + } + + // setup directories & namespaces + $themeDir = \SimpleSAML\Module::getModuleDir($this->theme['module']).'/themes/'.$this->theme['name']; + $subdirs = scandir($themeDir); + if (empty($subdirs)) { // no subdirectories in the theme directory, nothing to do here + // this is probably wrong, log a message + \SimpleSAML\Logger::warning('Empty theme directory for theme "'.$this->theme['name'].'".'); + return array(); + } + + $themeTemplateDirs = array(); + foreach ($subdirs as $entry) { + // discard anything that's not a directory. Expression is negated to profit from lazy evaluation + if (!($entry !== '.' && $entry !== '..' && is_dir($themeDir.'/'.$entry))) { + continue; + } + + // set correct name for the default namespace + $ns = ($entry === 'default') ? \Twig_Loader_Filesystem::MAIN_NAMESPACE : $entry; + $themeTemplateDirs[] = array($ns => $themeDir.'/'.$entry); + } + return $themeTemplateDirs; + } + + /** + * Get the template directory of a module, if it exists. + * + * @return string The templates directory of a module. + * + * @throws InvalidArgumentException If the module is not enabled or it has no templates directory. + */ + private function getModuleTemplateDir($module) + { + if (!\SimpleSAML\Module::isModuleEnabled($module)) { + throw new InvalidArgumentException('The module \''.$module.'\' is not enabled.'); + } + $moduledir = \SimpleSAML\Module::getModuleDir($module); + // check if module has a /templates dir, if so, append + $templatedir = $moduledir.'/templates'; + if (!is_dir($templatedir)) { + throw new InvalidArgumentException('The module \''.$module.'\' has no templates directory.'); + } + return $templatedir; + } + + + /** + * Add the templates from a given module. + * + * Note that the module must be installed, enabled, and contain a "templates" directory. + * + * @param string $module The module where we need to search for templates. + * + * @throws InvalidArgumentException If the module is not enabled or it has no templates directory. + */ + public function addTemplatesFromModule($module) + { + $dir = $this->getModuleTemplateDir($module); + /** @var Twig_Loader_Filesystem $loader */ + $loader = $this->twig->getLoader(); + $loader->addPath($dir, $module); + } + + + /** + * Generate an array for its use in the language bar, indexed by the ISO 639-2 codes of the languages available, + * containing their localized names and the URL that should be used in order to change to that language. + * + * @return array The array containing information of all available languages. + */ + private function generateLanguageBar() + { + $languages = $this->translator->getLanguage()->getLanguageList(); + $langmap = null; + if (count($languages) > 1) { + $parameterName = $this->getTranslator()->getLanguage()->getLanguageParameterName(); + $langmap = array(); + foreach ($languages as $lang => $current) { + $lang = strtolower($lang); + $langname = $this->translator->getLanguage()->getLanguageLocalizedName($lang); + $url = false; + if (!$current) { + $url = htmlspecialchars(\SimpleSAML\Utils\HTTP::addURLParameters( + '', + array($parameterName => $lang) + )); + } + $langmap[$lang] = array( + 'name' => $langname, + 'url' => $url, + ); + } + } + return $langmap; + } + + + /** + * Set some default context + */ + private function twigDefaultContext() + { + // show language bar by default + if (!isset($this->data['hideLanguageBar'])) { + $this->data['hideLanguageBar'] = false; + } + // get languagebar + $this->data['languageBar'] = null; + if ($this->data['hideLanguageBar'] === false) { + $languageBar = $this->generateLanguageBar(); + if (is_null($languageBar)) { + $this->data['hideLanguageBar'] = true; + } else { + $this->data['languageBar'] = $languageBar; + } + } + + // assure that there is a and <h1> + if (isset($this->data['header']) && !isset($this->data['pagetitle'])) { + $this->data['pagetitle'] = $this->data['header']; + } + if (!isset($this->data['pagetitle'])) { + $this->data['pagetitle'] = 'SimpleSAMLphp'; + } + } + + + /** + * Show the template to the user. + */ + public function show() + { + if ($this->twig !== false) { + $this->twigDefaultContext(); + if ($this->controller) { + $this->controller->display($this->data); + } + echo $this->twig->render($this->twig_template, $this->data); + } else { + $filename = $this->findTemplatePath($this->template); + require($filename); + } + } + + + /** + * Find module the template is in, if any + * + * @param string $template The relative path from the theme directory to the template file. + * + * @return array An array with the name of the module and template + */ + private function findModuleAndTemplateName($template) + { + $tmp = explode(':', $template, 2); + return (count($tmp) === 2) ? array($tmp[0], $tmp[1]) : array(null, $tmp[0]); + } + + + /** + * Find template path. + * + * This function locates the given template based on the template name. It will first search for the template in + * the current theme directory, and then the default theme. + * + * The template name may be on the form <module name>:<template path>, in which case it will search for the + * template file in the given module. + * + * @param string $template The relative path from the theme directory to the template file. + * + * @return string The absolute path to the template file. + * + * @throws Exception If the template file couldn't be found. + */ + private function findTemplatePath($template, $throw_exception = true) + { + assert(is_string($template)); + + list($templateModule, $templateName) = $this->findModuleAndTemplateName($template); + $templateModule = ($templateModule !== null) ? $templateModule : 'default'; + + // first check the current theme + if ($this->theme['module'] !== null) { + // .../module/<themeModule>/themes/<themeName>/<templateModule>/<templateName> + + $filename = \SimpleSAML\Module::getModuleDir($this->theme['module']). + '/themes/'.$this->theme['name'].'/'.$templateModule.'/'.$templateName; + } elseif ($templateModule !== 'default') { + // .../module/<templateModule>/templates/<templateName> + $filename = \SimpleSAML\Module::getModuleDir($templateModule).'/templates/'.$templateName; + } else { + // .../templates/<theme>/<templateName> + $filename = $this->configuration->getPathValue('templatedir', 'templates/').$templateName; + } + + if (file_exists($filename)) { + return $filename; + } + + // not found in current theme + \SimpleSAML\Logger::debug( + $_SERVER['PHP_SELF'].' - Template: Could not find template file ['.$template.'] at ['. + $filename.'] - now trying the base template' + ); + + // try default theme + if ($templateModule !== 'default') { + // .../module/<templateModule>/templates/<templateName> + $filename = \SimpleSAML\Module::getModuleDir($templateModule).'/templates/'.$templateName; + } else { + // .../templates/<templateName> + $filename = $this->configuration->getPathValue('templatedir', 'templates/').'/'.$templateName; + } + + if (file_exists($filename)) { + return $filename; + } + + // not found in default template + if ($throw_exception) { + // log error and throw exception + $error = 'Template: Could not find template file ['.$template.'] at ['.$filename.']'; + \SimpleSAML\Logger::critical($_SERVER['PHP_SELF'].' - '.$error); + + throw new Exception($error); + } else { + // missing template expected, return NULL + return null; + } + } + + + /** + * Return the internal translator object used by this template. + * + * @return \SimpleSAML\Locale\Translate The translator that will be used with this template. + */ + public function getTranslator() + { + return $this->translator; + } + + + /** + * Get the current instance of Twig in use. + * + * @return false|Twig_Environment The Twig instance in use, or false if Twig is not used. + */ + public function getTwig() + { + return $this->twig; + } + + + /* + * Deprecated methods of this interface, all of them should go away. + */ + + + /** + * @param $name + * + * @return string + * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Locale\Language::getLanguage() + * instead. + */ + public function getAttributeTranslation($name) + { + return $this->translator->getAttributeTranslation($name); + } + + + /** + * @return string + * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Locale\Language::getLanguage() + * instead. + */ + public function getLanguage() + { + return $this->translator->getLanguage()->getLanguage(); + } + + + /** + * @param $language + * @param bool $setLanguageCookie + * + * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Locale\Language::setLanguage() + * instead. + */ + public function setLanguage($language, $setLanguageCookie = true) + { + $this->translator->getLanguage()->setLanguage($language, $setLanguageCookie); + } + + + /** + * @return null|string + * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Locale\Language::getLanguageCookie() + * instead. + */ + public static function getLanguageCookie() + { + return \SimpleSAML\Locale\Language::getLanguageCookie(); + } + + + /** + * @param $language + * + * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Locale\Language::setLanguageCookie() + * instead. + */ + public static function setLanguageCookie($language) + { + \SimpleSAML\Locale\Language::setLanguageCookie($language); + } + + + /** + * Wraps Language->getLanguageList + */ + private function getLanguageList() + { + return $this->translator->getLanguage()->getLanguageList(); + } + + + /** + * @param $tag + * + * @return array + * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Locale\Translate::getTag() instead. + */ + public function getTag($tag) + { + return $this->translator->getTag($tag); + } + + + /** + * Temporary wrapper for \SimpleSAML\Locale\Translate::getPreferredTranslation(). + * + * @deprecated This method will be removed in SSP 2.0. Please use + * \SimpleSAML\Locale\Translate::getPreferredTranslation() instead. + */ + public function getTranslation($translations) + { + return $this->translator->getPreferredTranslation($translations); + } + + + /** + * Includes a file relative to the template base directory. + * This function can be used to include headers and footers etc. + * + */ + private function includeAtTemplateBase($file) + { + $data = $this->data; + + $filename = $this->findTemplatePath($file); + + include($filename); + } + + + /** + * Wraps Translate->includeInlineTranslation() + * + * @see \SimpleSAML\Locale\Translate::includeInlineTranslation() + * @deprecated This method will be removed in SSP 2.0. Please use + * \SimpleSAML\Locale\Translate::includeInlineTranslation() instead. + */ + public function includeInlineTranslation($tag, $translation) + { + $this->translator->includeInlineTranslation($tag, $translation); + } + + + /** + * @param $file + * @param null $otherConfig + * + * @deprecated This method will be removed in SSP 2.0. Please use + * \SimpleSAML\Locale\Translate::includeLanguageFile() instead. + */ + public function includeLanguageFile($file, $otherConfig = null) + { + $this->translator->includeLanguageFile($file, $otherConfig); + } + + + /** + * Wrap Language->isLanguageRTL + */ + private function isLanguageRTL() + { + return $this->translator->getLanguage()->isLanguageRTL(); + } + + + /** + * Merge two translation arrays. + * + * @param array $def The array holding string definitions. + * @param array $lang The array holding translations for every string. + * + * @return array The recursive merge of both arrays. + * @deprecated This method will be removed in SimpleSAMLphp 2.0. Please use array_merge_recursive() instead. + */ + public static function lang_merge($def, $lang) + { + foreach ($def as $key => $value) { + if (array_key_exists($key, $lang)) { + $def[$key] = array_merge($value, $lang[$key]); + } + } + return $def; + } + + + /** + * Behave like Language->noop to mark a tag for translation but actually do it later. + * + * @see \SimpleSAML\Locale\Translate::noop() + * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Locale\Translate::noop() instead. + */ + public static function noop($tag) + { + return $tag; + } + + + /** + * Wrap Language->t to translate tag into the current language, with a fallback to english. + * + * @see \SimpleSAML\Locale\Translate::t() + * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Locale\Translate::t() instead. + */ + public function t( + $tag, + $replacements = array(), + $fallbackdefault = true, + $oldreplacements = array(), + $striptags = false + ) { + return $this->translator->t($tag, $replacements, $fallbackdefault, $oldreplacements, $striptags); + } +} diff --git a/lib/SimpleSAML/XHTML/TemplateControllerInterface.php b/lib/SimpleSAML/XHTML/TemplateControllerInterface.php new file mode 100755 index 0000000..8d6f4e7 --- /dev/null +++ b/lib/SimpleSAML/XHTML/TemplateControllerInterface.php @@ -0,0 +1,33 @@ +<?php + +namespace SimpleSAML\XHTML; + +/** + * Interface that allows modules to run several hooks for templates. + * + * @package SimpleSAMLphp + */ +interface TemplateControllerInterface +{ + + /** + * Implement to modify the twig environment after its initialization (e.g. add filters or extensions). + * + * @param \Twig_Environment $twig The current twig environment. + * + * @return void + */ + public function setUpTwig(\Twig_Environment &$twig); + + + /** + * Implement to add, delete or modify the data passed to the template. + * + * This method will be called right before displaying the template. + * + * @param array $data The current data used by the template. + * + * @return void + */ + public function display(&$data); +} diff --git a/lib/SimpleSAML/XML/Errors.php b/lib/SimpleSAML/XML/Errors.php new file mode 100755 index 0000000..4b4f167 --- /dev/null +++ b/lib/SimpleSAML/XML/Errors.php @@ -0,0 +1,140 @@ +<?php + +/** + * This class defines an interface for accessing errors from the XML library. + * + * In PHP versions which doesn't support accessing error information, this class + * will hide that, and pretend that no errors were logged. + * + * @author Olav Morken, UNINETT AS. + * @package SimpleSAMLphp + */ + +namespace SimpleSAML\XML; + +use LibXMLError; + +class Errors +{ + + /** + * @var array This is an stack of error logs. The topmost element is the one we are currently working on. + */ + private static $errorStack = array(); + + /** + * @var bool This is the xml error state we had before we began logging. + */ + private static $xmlErrorState; + + + /** + * Append current XML errors to the current stack level. + */ + private static function addErrors() + { + $currentErrors = libxml_get_errors(); + libxml_clear_errors(); + + $level = count(self::$errorStack) - 1; + self::$errorStack[$level] = array_merge(self::$errorStack[$level], $currentErrors); + } + + + /** + * Start error logging. + * + * A call to this function will begin a new error logging context. Every call must have + * a corresponding call to end(). + */ + public static function begin() + { + + // Check whether the error access functions are present + if (!function_exists('libxml_use_internal_errors')) { + return; + } + + if (count(self::$errorStack) === 0) { + // No error logging is currently in progress. Initialize it. + self::$xmlErrorState = libxml_use_internal_errors(true); + libxml_clear_errors(); + } else { + /* We have already started error logging. Append the current errors to the + * list of errors in this level. + */ + self::addErrors(); + } + + // Add a new level to the error stack + self::$errorStack[] = array(); + } + + + /** + * End error logging. + * + * @return array An array with the LibXMLErrors which has occurred since begin() was called. + */ + public static function end() + { + + // Check whether the error access functions are present + if (!function_exists('libxml_use_internal_errors')) { + // Pretend that no errors occurred + return array(); + } + + // Add any errors which may have occurred + self::addErrors(); + + + $ret = array_pop(self::$errorStack); + + if (count(self::$errorStack) === 0) { + // Disable our error logging and restore the previous state + libxml_use_internal_errors(self::$xmlErrorState); + } + + return $ret; + } + + + /** + * Format an error as a string. + * + * This function formats the given LibXMLError object as a string. + * + * @param \LibXMLError $error The LibXMLError which should be formatted. + * @return string A string representing the given LibXMLError. + */ + public static function formatError($error) + { + assert($error instanceof LibXMLError); + return 'level=' . $error->level . ',code=' . $error->code . ',line=' . $error->line . ',col=' . $error->column . + ',msg=' . trim($error->message); + } + + + /** + * Format a list of errors as a string. + * + * This fucntion takes an array of LibXMLError objects and creates a string with all the errors. + * Each error will be separated by a newline, and the string will end with a newline-character. + * + * @param array $errors An array of errors. + * @return string A string representing the errors. An empty string will be returned if there were no + * errors in the array. + */ + public static function formatErrors($errors) + { + assert(is_array($errors)); + + $ret = ''; + foreach ($errors as $error) { + $ret .= self::formatError($error) . "\n"; + } + + return $ret; + } +} diff --git a/lib/SimpleSAML/XML/Parser.php b/lib/SimpleSAML/XML/Parser.php new file mode 100755 index 0000000..b8dda85 --- /dev/null +++ b/lib/SimpleSAML/XML/Parser.php @@ -0,0 +1,77 @@ +<?php + +/** + * This file will help doing XPath queries in SAML 2 XML documents. + * + * @author Andreas ƅkre Solberg, UNINETT AS. <andreas.solberg@uninett.no> + * @package SimpleSAMLphp + */ + +namespace SimpleSAML\XML; + +class Parser +{ + public $simplexml = null; + + public function __construct($xml) + { + ; + $this->simplexml = new \SimpleXMLElement($xml); + $this->simplexml->registerXPathNamespace('saml2', 'urn:oasis:names:tc:SAML:2.0:assertion'); + $this->simplexml->registerXPathNamespace('saml2meta', 'urn:oasis:names:tc:SAML:2.0:metadata'); + $this->simplexml->registerXPathNamespace('ds', 'http://www.w3.org/2000/09/xmldsig#'); + } + + public static function fromSimpleXMLElement(\SimpleXMLElement $element) + { + + // Traverse all existing namespaces in element + $namespaces = $element->getNamespaces(); + foreach ($namespaces as $prefix => $ns) { + $element[(($prefix === '') ? 'xmlns' : 'xmlns:' . $prefix)] = $ns; + } + + /* Create a new parser with the xml document where the namespace definitions + * are added. + */ + $parser = new Parser($element->asXML()); + return $parser; + } + + public function getValueDefault($xpath, $defvalue) + { + try { + return $this->getValue($xpath, true); + } catch (\Exception $e) { + return $defvalue; + } + } + + public function getValue($xpath, $required = false) + { + $result = $this->simplexml->xpath($xpath); + if (!is_array($result) || empty($result)) { + if ($required) { + throw new \Exception('Could not get value from XML document using the following XPath expression: ' . $xpath); + } else { + return null; + } + } + return (string) $result[0]; + } + + public function getValueAlternatives(array $xpath, $required = false) + { + foreach ($xpath as $x) { + $seek = $this->getValue($x); + if ($seek) { + return $seek; + } + } + if ($required) { + throw new \Exception('Could not get value from XML document using multiple alternative XPath expressions.'); + } else { + return null; + } + } +} diff --git a/lib/SimpleSAML/XML/Shib13/AuthnRequest.php b/lib/SimpleSAML/XML/Shib13/AuthnRequest.php new file mode 100755 index 0000000..f52fea2 --- /dev/null +++ b/lib/SimpleSAML/XML/Shib13/AuthnRequest.php @@ -0,0 +1,53 @@ +<?php + +/** + * The Shibboleth 1.3 Authentication Request. Not part of SAML 1.1, + * but an extension using query paramters no XML. + * + * @author Andreas ƅkre Solberg, UNINETT AS. <andreas.solberg@uninett.no> + * @package SimpleSAMLphp + */ + +namespace SimpleSAML\XML\Shib13; + +class AuthnRequest +{ + private $issuer = null; + private $relayState = null; + + public function setRelayState($relayState) + { + $this->relayState = $relayState; + } + + public function getRelayState() + { + return $this->relayState; + } + + public function setIssuer($issuer) + { + $this->issuer = $issuer; + } + public function getIssuer() + { + return $this->issuer; + } + + public function createRedirect($destination, $shire) + { + $metadata = \SimpleSAML_Metadata_MetaDataStorageHandler::getMetadataHandler(); + $idpmetadata = $metadata->getMetaDataConfig($destination, 'shib13-idp-remote'); + + $desturl = $idpmetadata->getDefaultEndpoint('SingleSignOnService', array('urn:mace:shibboleth:1.0:profiles:AuthnRequest')); + $desturl = $desturl['Location']; + + $target = $this->getRelayState(); + + $url = $desturl . '?' . + 'providerId=' . urlencode($this->getIssuer()) . + '&shire=' . urlencode($shire) . + (isset($target) ? '&target=' . urlencode($target) : ''); + return $url; + } +} diff --git a/lib/SimpleSAML/XML/Shib13/AuthnResponse.php b/lib/SimpleSAML/XML/Shib13/AuthnResponse.php new file mode 100755 index 0000000..61a8f32 --- /dev/null +++ b/lib/SimpleSAML/XML/Shib13/AuthnResponse.php @@ -0,0 +1,480 @@ +<?php + +/** + * A Shibboleth 1.3 authentication response. + * + * @author Andreas ƅkre Solberg, UNINETT AS. <andreas.solberg@uninett.no> + * @package SimpleSAMLphp + */ + +namespace SimpleSAML\XML\Shib13; + +use DOMDocument; +use DOMNode; +use SAML2\DOMDocumentFactory; +use SAML2\Utils; +use SimpleSAML\Utils\Config; +use SimpleSAML\Utils\Random; +use SimpleSAML\Utils\Time; +use SimpleSAML\XML\Validator; + +class AuthnResponse +{ + + /** + * @var \SimpleSAML\XML\Validator This variable contains an XML validator for this message. + */ + private $validator = null; + + + /** + * @var bool Whether this response was validated by some external means (e.g. SSL). + */ + private $messageValidated = false; + + + const SHIB_PROTOCOL_NS = 'urn:oasis:names:tc:SAML:1.0:protocol'; + const SHIB_ASSERT_NS = 'urn:oasis:names:tc:SAML:1.0:assertion'; + + + /** + * @var \DOMDocument The DOMDocument which represents this message. + */ + private $dom; + + /** + * @var string|null The relaystate which is associated with this response. + */ + private $relayState = null; + + + /** + * Set whether this message was validated externally. + * + * @param bool $messageValidated TRUE if the message is already validated, FALSE if not. + */ + public function setMessageValidated($messageValidated) + { + assert(is_bool($messageValidated)); + + $this->messageValidated = $messageValidated; + } + + + public function setXML($xml) + { + assert(is_string($xml)); + + try { + $this->dom = DOMDocumentFactory::fromString(str_replace("\r", "", $xml)); + } catch (\Exception $e) { + throw new \Exception('Unable to parse AuthnResponse XML.'); + } + } + + public function setRelayState($relayState) + { + $this->relayState = $relayState; + } + + public function getRelayState() + { + return $this->relayState; + } + + public function validate() + { + assert($this->dom instanceof DOMDocument); + + if ($this->messageValidated) { + // This message was validated externally + return true; + } + + // Validate the signature + $this->validator = new Validator($this->dom, array('ResponseID', 'AssertionID')); + + // Get the issuer of the response + $issuer = $this->getIssuer(); + + // Get the metadata of the issuer + $metadata = \SimpleSAML_Metadata_MetaDataStorageHandler::getMetadataHandler(); + $md = $metadata->getMetaDataConfig($issuer, 'shib13-idp-remote'); + + $publicKeys = $md->getPublicKeys('signing'); + if (!empty($publicKeys)) { + $certFingerprints = array(); + foreach ($publicKeys as $key) { + if ($key['type'] !== 'X509Certificate') { + continue; + } + $certFingerprints[] = sha1(base64_decode($key['X509Certificate'])); + } + $this->validator->validateFingerprint($certFingerprints); + } elseif ($md->hasValue('certFingerprint')) { + $certFingerprints = $md->getArrayizeString('certFingerprint'); + + // Validate the fingerprint + $this->validator->validateFingerprint($certFingerprints); + } elseif ($md->hasValue('caFile')) { + // Validate against CA + $this->validator->validateCA(Config::getCertPath($md->getString('caFile'))); + } else { + throw new \SimpleSAML_Error_Exception('Missing certificate in Shibboleth 1.3 IdP Remote metadata for identity provider [' . $issuer . '].'); + } + + return true; + } + + + /** + * Checks if the given node is validated by the signature on this response. + * + * @param \DOMElement $node Node to be validated. + * @return bool TRUE if the node is validated or FALSE if not. + */ + private function isNodeValidated($node) + { + if ($this->messageValidated) { + // This message was validated externally + return true; + } + + if ($this->validator === null) { + return false; + } + + // Convert the node to a DOM node if it is an element from SimpleXML + if ($node instanceof \SimpleXMLElement) { + $node = dom_import_simplexml($node); + } + + assert($node instanceof DOMNode); + + return $this->validator->isNodeValidated($node); + } + + + /** + * This function runs an xPath query on this authentication response. + * + * @param string $query The query which should be run. + * @param \DOMNode $node The node which this query is relative to. If this node is NULL (the default) + * then the query will be relative to the root of the response. + * @return \DOMNodeList + */ + private function doXPathQuery($query, $node = null) + { + assert(is_string($query)); + assert($this->dom instanceof DOMDocument); + + if ($node === null) { + $node = $this->dom->documentElement; + } + + assert($node instanceof DOMNode); + + $xPath = new \DOMXpath($this->dom); + $xPath->registerNamespace('shibp', self::SHIB_PROTOCOL_NS); + $xPath->registerNamespace('shib', self::SHIB_ASSERT_NS); + + return $xPath->query($query, $node); + } + + /** + * Retrieve the session index of this response. + * + * @return string|null The session index of this response. + */ + public function getSessionIndex() + { + assert($this->dom instanceof DOMDocument); + + $query = '/shibp:Response/shib:Assertion/shib:AuthnStatement'; + $nodelist = $this->doXPathQuery($query); + if ($node = $nodelist->item(0)) { + return $node->getAttribute('SessionIndex'); + } + + return null; + } + + + public function getAttributes() + { + $metadata = \SimpleSAML_Metadata_MetaDataStorageHandler::getMetadataHandler(); + $md = $metadata->getMetadata($this->getIssuer(), 'shib13-idp-remote'); + $base64 = isset($md['base64attributes']) ? $md['base64attributes'] : false; + + if (! ($this->dom instanceof \DOMDocument)) { + return array(); + } + + $attributes = array(); + + $assertions = $this->doXPathQuery('/shibp:Response/shib:Assertion'); + + foreach ($assertions as $assertion) { + if (!$this->isNodeValidated($assertion)) { + throw new \Exception('Shib13 AuthnResponse contained an unsigned assertion.'); + } + + $conditions = $this->doXPathQuery('shib:Conditions', $assertion); + if ($conditions && $conditions->length > 0) { + $condition = $conditions->item(0); + + $start = $condition->getAttribute('NotBefore'); + $end = $condition->getAttribute('NotOnOrAfter'); + + if ($start && $end) { + if (!self::checkDateConditions($start, $end)) { + error_log('Date check failed ... (from ' . $start . ' to ' . $end . ')'); + continue; + } + } + } + + $attribute_nodes = $this->doXPathQuery('shib:AttributeStatement/shib:Attribute/shib:AttributeValue', $assertion); + /** @var \DOMElement $attribute */ + foreach ($attribute_nodes as $attribute) { + $value = $attribute->textContent; + $name = $attribute->parentNode->getAttribute('AttributeName'); + + if ($attribute->hasAttribute('Scope')) { + $scopePart = '@' . $attribute->getAttribute('Scope'); + } else { + $scopePart = ''; + } + + if (!is_string($name)) { + throw new \Exception('Shib13 Attribute node without an AttributeName.'); + } + + if (!array_key_exists($name, $attributes)) { + $attributes[$name] = array(); + } + + if ($base64) { + $encodedvalues = explode('_', $value); + foreach ($encodedvalues as $v) { + $attributes[$name][] = base64_decode($v) . $scopePart; + } + } else { + $attributes[$name][] = $value . $scopePart; + } + } + } + + return $attributes; + } + + + public function getIssuer() + { + $query = '/shibp:Response/shib:Assertion/@Issuer'; + $nodelist = $this->doXPathQuery($query); + + if ($attr = $nodelist->item(0)) { + return $attr->value; + } else { + throw new \Exception('Could not find Issuer field in Authentication response'); + } + } + + public function getNameID() + { + $nameID = array(); + + $query = '/shibp:Response/shib:Assertion/shib:AuthenticationStatement/shib:Subject/shib:NameIdentifier'; + $nodelist = $this->doXPathQuery($query); + + if ($node = $nodelist->item(0)) { + $nameID["Value"] = $node->nodeValue; + $nameID["Format"] = $node->getAttribute('Format'); + } + + return $nameID; + } + + + /** + * Build a authentication response. + * + * @param \SimpleSAML_Configuration $idp Metadata for the IdP the response is sent from. + * @param \SimpleSAML_Configuration $sp Metadata for the SP the response is sent to. + * @param string $shire The endpoint on the SP the response is sent to. + * @param array|null $attributes The attributes which should be included in the response. + * @return string The response. + */ + public function generate(\SimpleSAML_Configuration $idp, \SimpleSAML_Configuration $sp, $shire, $attributes) + { + assert(is_string($shire)); + assert($attributes === null || is_array($attributes)); + + if ($sp->hasValue('scopedattributes')) { + $scopedAttributes = $sp->getArray('scopedattributes'); + } elseif ($idp->hasValue('scopedattributes')) { + $scopedAttributes = $idp->getArray('scopedattributes'); + } else { + $scopedAttributes = array(); + } + + $id = Random::generateID(); + + $issueInstant = Time::generateTimestamp(); + + // 30 seconds timeskew back in time to allow differing clocks + $notBefore = Time::generateTimestamp(time() - 30); + + + $assertionExpire = Time::generateTimestamp(time() + 60 * 5);# 5 minutes + $assertionid = Random::generateID(); + + $spEntityId = $sp->getString('entityid'); + + $audience = $sp->getString('audience', $spEntityId); + $base64 = $sp->getBoolean('base64attributes', false); + + $namequalifier = $sp->getString('NameQualifier', $spEntityId); + $nameid = Random::generateID(); + $subjectNode = + '<Subject>' . + '<NameIdentifier' . + ' Format="urn:mace:shibboleth:1.0:nameIdentifier"' . + ' NameQualifier="' . htmlspecialchars($namequalifier) . '"' . + '>' . + htmlspecialchars($nameid) . + '</NameIdentifier>' . + '<SubjectConfirmation>' . + '<ConfirmationMethod>' . + 'urn:oasis:names:tc:SAML:1.0:cm:bearer' . + '</ConfirmationMethod>' . + '</SubjectConfirmation>' . + '</Subject>'; + + $encodedattributes = ''; + + if (is_array($attributes)) { + $encodedattributes .= '<AttributeStatement>'; + $encodedattributes .= $subjectNode; + + foreach ($attributes as $name => $value) { + $encodedattributes .= $this->enc_attribute($name, $value, $base64, $scopedAttributes); + } + + $encodedattributes .= '</AttributeStatement>'; + } + + /* + * The SAML 1.1 response message + */ + $response = '<Response xmlns="urn:oasis:names:tc:SAML:1.0:protocol" + xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" + xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol" xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" IssueInstant="' . $issueInstant. '" + MajorVersion="1" MinorVersion="1" + Recipient="' . htmlspecialchars($shire) . '" ResponseID="' . $id . '"> + <Status> + <StatusCode Value="samlp:Success" /> + </Status> + <Assertion xmlns="urn:oasis:names:tc:SAML:1.0:assertion" + AssertionID="' . $assertionid . '" IssueInstant="' . $issueInstant. '" + Issuer="' . htmlspecialchars($idp->getString('entityid')) . '" MajorVersion="1" MinorVersion="1"> + <Conditions NotBefore="' . $notBefore. '" NotOnOrAfter="'. $assertionExpire . '"> + <AudienceRestrictionCondition> + <Audience>' . htmlspecialchars($audience) . '</Audience> + </AudienceRestrictionCondition> + </Conditions> + <AuthenticationStatement AuthenticationInstant="' . $issueInstant. '" + AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:unspecified">' . + $subjectNode . ' + </AuthenticationStatement> + ' . $encodedattributes . ' + </Assertion> +</Response>'; + + return $response; + } + + + /** + * Format a shib13 attribute. + * + * @param string $name Name of the attribute. + * @param array $values Values of the attribute (as an array of strings). + * @param bool $base64 Whether the attriubte values should be base64-encoded. + * @param array $scopedAttributes Array of attributes names which are scoped. + * @return string The attribute encoded as an XML-string. + */ + private function enc_attribute($name, $values, $base64, $scopedAttributes) + { + assert(is_string($name)); + assert(is_array($values)); + assert(is_bool($base64)); + assert(is_array($scopedAttributes)); + + if (in_array($name, $scopedAttributes, true)) { + $scoped = true; + } else { + $scoped = false; + } + + $attr = '<Attribute AttributeName="' . htmlspecialchars($name) . '" AttributeNamespace="urn:mace:shibboleth:1.0:attributeNamespace:uri">'; + foreach ($values as $value) { + $scopePart = ''; + if ($scoped) { + $tmp = explode('@', $value, 2); + if (count($tmp) === 2) { + $value = $tmp[0]; + $scopePart = ' Scope="' . htmlspecialchars($tmp[1]) . '"'; + } + } + + if ($base64) { + $value = base64_encode($value); + } + + $attr .= '<AttributeValue' . $scopePart . '>' . htmlspecialchars($value) . '</AttributeValue>'; + } + $attr .= '</Attribute>'; + + return $attr; + } + + /** + * Check if we are currently between the given date & time conditions. + * + * Note that this function allows a 10-minute leap from the initial time as marked by $start. + * + * @param string|null $start A SAML2 timestamp marking the start of the period to check. Defaults to null, in which + * case there's no limitations in the past. + * @param string|null $end A SAML2 timestamp marking the end of the period to check. Defaults to null, in which + * case there's no limitations in the future. + * + * @return bool True if the current time belongs to the period specified by $start and $end. False otherwise. + * + * @see \SAML2\Utils::xsDateTimeToTimestamp. + * + * @author Andreas Solberg, UNINETT AS <andreas.solberg@uninett.no> + * @author Olav Morken, UNINETT AS <olav.morken@uninett.no> + */ + protected static function checkDateConditions($start = null, $end = null) + { + $currentTime = time(); + + if (!empty($start)) { + $startTime = Utils::xsDateTimeToTimestamp($start); + // allow for a 10 minute difference in time + if (($startTime < 0) || (($startTime - 600) > $currentTime)) { + return false; + } + } + if (!empty($end)) { + $endTime = Utils::xsDateTimeToTimestamp($end); + if (($endTime < 0) || ($endTime <= $currentTime)) { + return false; + } + } + return true; + } +} diff --git a/lib/SimpleSAML/XML/Signer.php b/lib/SimpleSAML/XML/Signer.php new file mode 100755 index 0000000..0aeb8ba --- /dev/null +++ b/lib/SimpleSAML/XML/Signer.php @@ -0,0 +1,313 @@ +<?php + +/** + * A helper class for signing XML. + * + * This is a helper class for signing XML documents. + * + * @author Olav Morken, UNINETT AS. + * @package SimpleSAMLphp + */ + +namespace SimpleSAML\XML; + +use DOMComment; +use DOMElement; +use DOMText; +use RobRichards\XMLSecLibs\XMLSecurityDSig; +use RobRichards\XMLSecLibs\XMLSecurityKey; +use SimpleSAML\Utils\Config; + +class Signer +{ + /** + * @var string The name of the ID attribute. + */ + private $idAttrName = ''; + + /** + * @var XMLSecurityKey|bool The private key (as an XMLSecurityKey). + */ + private $privateKey = false; + + /** + * @var string The certificate (as text). + */ + private $certificate = ''; + + + /** + * @var array Extra certificates which should be included in the response. + */ + private $extraCertificates = array(); + + + /** + * Constructor for the metadata signer. + * + * You can pass an list of options as key-value pairs in the array. This allows you to initialize + * a metadata signer in one call. + * + * The following keys are recognized: + * - privatekey The file with the private key, relative to the cert-directory. + * - privatekey_pass The passphrase for the private key. + * - certificate The file with the certificate, relative to the cert-directory. + * - privatekey_array The private key, as an array returned from SimpleSAML_Utilities::loadPrivateKey. + * - publickey_array The public key, as an array returned from SimpleSAML_Utilities::loadPublicKey. + * - id The name of the ID attribute. + * + * @param array $options Associative array with options for the constructor. Defaults to an empty array. + */ + public function __construct($options = array()) + { + assert(is_array($options)); + + if (array_key_exists('privatekey', $options)) { + $pass = null; + if (array_key_exists('privatekey_pass', $options)) { + $pass = $options['privatekey_pass']; + } + + $this->loadPrivateKey($options['privatekey'], $pass); + } + + if (array_key_exists('certificate', $options)) { + $this->loadCertificate($options['certificate']); + } + + if (array_key_exists('privatekey_array', $options)) { + $this->loadPrivateKeyArray($options['privatekey_array']); + } + + if (array_key_exists('publickey_array', $options)) { + $this->loadPublicKeyArray($options['publickey_array']); + } + + if (array_key_exists('id', $options)) { + $this->setIdAttribute($options['id']); + } + } + + + /** + * Set the private key from an array. + * + * This function loads the private key from an array matching what is returned + * by SimpleSAML_Utilities::loadPrivateKey(...). + * + * @param array $privatekey The private key. + */ + public function loadPrivateKeyArray($privatekey) + { + assert(is_array($privatekey)); + assert(array_key_exists('PEM', $privatekey)); + + $this->privateKey = new XMLSecurityKey(XMLSecurityKey::RSA_SHA256, array('type' => 'private')); + if (array_key_exists('password', $privatekey)) { + $this->privateKey->passphrase = $privatekey['password']; + } + $this->privateKey->loadKey($privatekey['PEM'], false); + } + + + /** + * Set the private key. + * + * Will throw an exception if unable to load the private key. + * + * @param string $file The file which contains the private key. The path is assumed to be relative + * to the cert-directory. + * @param string|null $pass The passphrase on the private key. Pass no value or NULL if the private + * key is unencrypted. + * @param bool $full_path Whether the filename found in the configuration contains the + * full path to the private key or not. Default to false. + * @throws \Exception + */ + public function loadPrivateKey($file, $pass = null, $full_path = false) + { + assert(is_string($file)); + assert(is_string($pass) || $pass === null); + assert(is_bool($full_path)); + + if (!$full_path) { + $keyFile = Config::getCertPath($file); + } else { + $keyFile = $file; + } + + if (!file_exists($keyFile)) { + throw new \Exception('Could not find private key file "' . $keyFile . '".'); + } + $keyData = file_get_contents($keyFile); + if ($keyData === false) { + throw new \Exception('Unable to read private key file "' . $keyFile . '".'); + } + + $privatekey = array('PEM' => $keyData); + if ($pass !== null) { + $privatekey['password'] = $pass; + } + $this->loadPrivateKeyArray($privatekey); + } + + + /** + * Set the public key / certificate we should include in the signature. + * + * This function loads the public key from an array matching what is returned + * by SimpleSAML_Utilities::loadPublicKey(...). + * + * @param array $publickey The public key. + * @throws \Exception + */ + public function loadPublicKeyArray($publickey) + { + assert(is_array($publickey)); + + if (!array_key_exists('PEM', $publickey)) { + // We have a public key with only a fingerprint + throw new \Exception('Tried to add a certificate fingerprint in a signature.'); + } + + // For now, we only assume that the public key is an X509 certificate + $this->certificate = $publickey['PEM']; + } + + + /** + * Set the certificate we should include in the signature. + * + * If this function isn't called, no certificate will be included. + * Will throw an exception if unable to load the certificate. + * + * @param string $file The file which contains the certificate. The path is assumed to be relative to + * the cert-directory. + * @param bool $full_path Whether the filename found in the configuration contains the + * full path to the private key or not. Default to false. + * @throws \Exception + */ + public function loadCertificate($file, $full_path = false) + { + assert(is_string($file)); + assert(is_bool($full_path)); + + if (!$full_path) { + $certFile = Config::getCertPath($file); + } else { + $certFile = $file; + } + + if (!file_exists($certFile)) { + throw new \Exception('Could not find certificate file "' . $certFile . '".'); + } + + $cert = file_get_contents($certFile); + if ($cert === false) { + throw new \Exception('Unable to read certificate file "' . $certFile . '".'); + } + $this->certificate = $cert; + } + + + /** + * Set the attribute name for the ID value. + * + * @param string $idAttrName The name of the attribute which contains the id. + */ + public function setIDAttribute($idAttrName) + { + assert(is_string($idAttrName)); + + $this->idAttrName = $idAttrName; + } + + + /** + * Add an extra certificate to the certificate chain in the signature. + * + * Extra certificates will be added to the certificate chain in the order they + * are added. + * + * @param string $file The file which contains the certificate, relative to the cert-directory. + * @param bool $full_path Whether the filename found in the configuration contains the + * full path to the private key or not. Default to false. + * @throws \Exception + */ + public function addCertificate($file, $full_path = false) + { + assert(is_string($file)); + assert(is_bool($full_path)); + + if (!$full_path) { + $certFile = Config::getCertPath($file); + } else { + $certFile = $file; + } + + if (!file_exists($certFile)) { + throw new \Exception('Could not find extra certificate file "' . $certFile . '".'); + } + + $certificate = file_get_contents($certFile); + if ($certificate === false) { + throw new \Exception('Unable to read extra certificate file "' . $certFile . '".'); + } + + $this->extraCertificates[] = $certificate; + } + + + /** + * Signs the given DOMElement and inserts the signature at the given position. + * + * The private key must be set before calling this function. + * + * @param \DOMElement $node The DOMElement we should generate a signature for. + * @param \DOMElement $insertInto The DOMElement we should insert the signature element into. + * @param \DOMElement $insertBefore The element we should insert the signature element before. Defaults to NULL, + * in which case the signature will be appended to the element spesified in + * $insertInto. + * @throws \Exception + */ + public function sign($node, $insertInto, $insertBefore = null) + { + assert($node instanceof DOMElement); + assert($insertInto instanceof DOMElement); + assert($insertBefore === null || $insertBefore instanceof DOMElement || + $insertBefore instanceof DOMComment || $insertBefore instanceof DOMText); + + if ($this->privateKey === false) { + throw new \Exception('Private key not set.'); + } + + + $objXMLSecDSig = new XMLSecurityDSig(); + $objXMLSecDSig->setCanonicalMethod(XMLSecurityDSig::EXC_C14N); + + $options = array(); + if (!empty($this->idAttrName)) { + $options['id_name'] = $this->idAttrName; + } + + $objXMLSecDSig->addReferenceList( + array($node), + XMLSecurityDSig::SHA256, + array('http://www.w3.org/2000/09/xmldsig#enveloped-signature', XMLSecurityDSig::EXC_C14N), + $options + ); + + /** @var \RobRichards\XMLSecLibs\XMLSecurityKey $this->privateKey */ + $objXMLSecDSig->sign($this->privateKey); + + + // Add the certificate to the signature + $objXMLSecDSig->add509Cert($this->certificate, true); + + // Add extra certificates + foreach ($this->extraCertificates as $certificate) { + $objXMLSecDSig->add509Cert($certificate, true); + } + + $objXMLSecDSig->insertSignature($insertInto, $insertBefore); + } +} diff --git a/lib/SimpleSAML/XML/Validator.php b/lib/SimpleSAML/XML/Validator.php new file mode 100755 index 0000000..6d8a4f3 --- /dev/null +++ b/lib/SimpleSAML/XML/Validator.php @@ -0,0 +1,445 @@ +<?php + +/** + * This class implements helper functions for XML validation. + * + * @author Olav Morken, UNINETT AS. + * @package SimpleSAMLphp + */ + +namespace SimpleSAML\XML; + +use RobRichards\XMLSecLibs\XMLSecEnc; +use RobRichards\XMLSecLibs\XMLSecurityDSig; +use SimpleSAML\Logger; + +class Validator +{ + + /** + * @var string This variable contains the X509 certificate the XML document + * was signed with, or NULL if it wasn't signed with an X509 certificate. + */ + private $x509Certificate; + + /** + * @var array|null This variable contains the nodes which are signed. + */ + private $validNodes = null; + + + /** + * This function initializes the validator. + * + * This function accepts an optional parameter $publickey, which is the public key + * or certificate which should be used to validate the signature. This parameter can + * take the following values: + * - NULL/FALSE: No validation will be performed. This is the default. + * - A string: Assumed to be a PEM-encoded certificate / public key. + * - An array: Assumed to be an array returned by SimpleSAML_Utilities::loadPublicKey. + * + * @param \DOMNode $xmlNode The XML node which contains the Signature element. + * @param string|array $idAttribute The ID attribute which is used in node references. If + * this attribute is NULL (the default), then we will use whatever is the default + * ID. Can be eigther a string with one value, or an array with multiple ID + * attrbute names. + * @param array|bool $publickey The public key / certificate which should be used to validate the XML node. + * @throws \Exception + */ + public function __construct($xmlNode, $idAttribute = null, $publickey = false) + { + assert($xmlNode instanceof \DOMNode); + + if ($publickey === null) { + $publickey = false; + } elseif (is_string($publickey)) { + $publickey = array( + 'PEM' => $publickey, + ); + } else { + assert($publickey === false || is_array($publickey)); + } + + // Create an XML security object + $objXMLSecDSig = new XMLSecurityDSig(); + + // Add the id attribute if the user passed in an id attribute + if ($idAttribute !== null) { + if (is_string($idAttribute)) { + $objXMLSecDSig->idKeys[] = $idAttribute; + } elseif (is_array($idAttribute)) { + foreach ($idAttribute as $ida) { + $objXMLSecDSig->idKeys[] = $ida; + } + } + } + + // Locate the XMLDSig Signature element to be used + $signatureElement = $objXMLSecDSig->locateSignature($xmlNode); + if (!$signatureElement) { + throw new \Exception('Could not locate XML Signature element.'); + } + + // Canonicalize the XMLDSig SignedInfo element in the message + $objXMLSecDSig->canonicalizeSignedInfo(); + + // Validate referenced xml nodes + if (!$objXMLSecDSig->validateReference()) { + throw new \Exception('XMLsec: digest validation failed'); + } + + + // Find the key used to sign the document + $objKey = $objXMLSecDSig->locateKey(); + if (empty($objKey)) { + throw new \Exception('Error loading key to handle XML signature'); + } + + // Load the key data + if ($publickey !== false && array_key_exists('PEM', $publickey)) { + // We have PEM data for the public key / certificate + $objKey->loadKey($publickey['PEM']); + } else { + // No PEM data. Search for key in signature + + if (!XMLSecEnc::staticLocateKeyInfo($objKey, $signatureElement)) { + throw new \Exception('Error finding key data for XML signature validation.'); + } + + if ($publickey !== false) { + /* $publickey is set, and should therefore contain one or more fingerprints. + * Check that the response contains a certificate with a matching + * fingerprint. + */ + assert(is_array($publickey['certFingerprint'])); + + $certificate = $objKey->getX509Certificate(); + if ($certificate === null) { + // Wasn't signed with an X509 certificate + throw new \Exception('Message wasn\'t signed with an X509 certificate,' . + ' and no public key was provided in the metadata.'); + } + + self::validateCertificateFingerprint($certificate, $publickey['certFingerprint']); + // Key OK + } + } + + // Check the signature + if ($objXMLSecDSig->verify($objKey) !== 1) { + throw new \Exception("Unable to validate Signature"); + } + + // Extract the certificate + $this->x509Certificate = $objKey->getX509Certificate(); + + // Find the list of validated nodes + $this->validNodes = $objXMLSecDSig->getValidatedNodes(); + } + + + /** + * Retrieve the X509 certificate which was used to sign the XML. + * + * This function will return the certificate as a PEM-encoded string. If the XML + * wasn't signed by an X509 certificate, NULL will be returned. + * + * @return string The certificate as a PEM-encoded string, or NULL if not signed with an X509 certificate. + */ + public function getX509Certificate() + { + return $this->x509Certificate; + } + + + /** + * Calculates the fingerprint of an X509 certificate. + * + * @param string $x509cert The certificate as a base64-encoded string. The string may optionally + * be framed with '-----BEGIN CERTIFICATE-----' and '-----END CERTIFICATE-----'. + * @return string The fingerprint as a 40-character lowercase hexadecimal number. NULL is returned if the + * argument isn't an X509 certificate. + */ + private static function calculateX509Fingerprint($x509cert) + { + assert(is_string($x509cert)); + + $lines = explode("\n", $x509cert); + + $data = ''; + + foreach ($lines as $line) { + // Remove '\r' from end of line if present + $line = rtrim($line); + if ($line === '-----BEGIN CERTIFICATE-----') { + // Delete junk from before the certificate + $data = ''; + } elseif ($line === '-----END CERTIFICATE-----') { + // Ignore data after the certificate + break; + } elseif ($line === '-----BEGIN PUBLIC KEY-----') { + // This isn't an X509 certificate + return null; + } else { + // Append the current line to the certificate data + $data .= $line; + } + } + + /* $data now contains the certificate as a base64-encoded string. The fingerprint + * of the certificate is the sha1-hash of the certificate. + */ + return strtolower(sha1(base64_decode($data))); + } + + + /** + * Helper function for validating the fingerprint. + * + * Checks the fingerprint of a certificate against an array of valid fingerprints. + * Will throw an exception if none of the fingerprints matches. + * + * @param string $certificate The X509 certificate we should validate. + * @param array $fingerprints The valid fingerprints. + * @throws \Exception + */ + private static function validateCertificateFingerprint($certificate, $fingerprints) + { + assert(is_string($certificate)); + assert(is_array($fingerprints)); + + $certFingerprint = self::calculateX509Fingerprint($certificate); + if ($certFingerprint === null) { + // Couldn't calculate fingerprint from X509 certificate. Should not happen. + throw new \Exception('Unable to calculate fingerprint from X509' . + ' certificate. Maybe it isn\'t an X509 certificate?'); + } + + foreach ($fingerprints as $fp) { + assert(is_string($fp)); + + if ($fp === $certFingerprint) { + // The fingerprints matched + return; + } + } + + // None of the fingerprints matched. Throw an exception describing the error. + throw new \Exception('Invalid fingerprint of certificate. Expected one of [' . + implode('], [', $fingerprints) . '], but got [' . $certFingerprint . ']'); + } + + + /** + * Validate the fingerprint of the certificate which was used to sign this document. + * + * This function accepts either a string, or an array of strings as a parameter. If this + * is an array, then any string (certificate) in the array can match. If this is a string, + * then that string must match, + * + * @param string|array $fingerprints The fingerprints which should match. This can be a single string, + * or an array of fingerprints. + * @throws \Exception + */ + public function validateFingerprint($fingerprints) + { + assert(is_string($fingerprints) || is_array($fingerprints)); + + if ($this->x509Certificate === null) { + throw new \Exception('Key used to sign the message was not an X509 certificate.'); + } + + if (!is_array($fingerprints)) { + $fingerprints = array($fingerprints); + } + + // Normalize the fingerprints + foreach ($fingerprints as &$fp) { + assert(is_string($fp)); + + // Make sure that the fingerprint is in the correct format + $fp = strtolower(str_replace(":", "", $fp)); + } + + self::validateCertificateFingerprint($this->x509Certificate, $fingerprints); + } + + + /** + * This function checks if the given XML node was signed. + * + * @param \DOMNode $node The XML node which we should verify that was signed. + * + * @return bool TRUE if this node (or a parent node) was signed. FALSE if not. + */ + public function isNodeValidated($node) + { + assert($node instanceof \DOMNode); + + while ($node !== null) { + if (in_array($node, $this->validNodes, true)) { + return true; + } + + $node = $node->parentNode; + } + + /* Neither this node nor any of the parent nodes could be found in the list of + * signed nodes. + */ + return false; + } + + + /** + * Validate the certificate used to sign the XML against a CA file. + * + * This function throws an exception if unable to validate against the given CA file. + * + * @param string $caFile File with trusted certificates, in PEM-format. + * @throws \Exception + */ + public function validateCA($caFile) + { + assert(is_string($caFile)); + + if ($this->x509Certificate === null) { + throw new \Exception('Key used to sign the message was not an X509 certificate.'); + } + + self::validateCertificate($this->x509Certificate, $caFile); + } + + /** + * Validate a certificate against a CA file, by using the builtin + * openssl_x509_checkpurpose function + * + * @param string $certificate The certificate, in PEM format. + * @param string $caFile File with trusted certificates, in PEM-format. + * @return boolean|string TRUE on success, or a string with error messages if it failed. + * @deprecated + */ + private static function validateCABuiltIn($certificate, $caFile) + { + assert(is_string($certificate)); + assert(is_string($caFile)); + + // Clear openssl errors + while (openssl_error_string() !== false) { + } + + $res = openssl_x509_checkpurpose($certificate, X509_PURPOSE_ANY, array($caFile)); + + $errors = ''; + // Log errors + while (($error = openssl_error_string()) !== false) { + $errors .= ' [' . $error . ']'; + } + + if ($res !== true) { + return $errors; + } + + return true; + } + + + /** + * Validate the certificate used to sign the XML against a CA file, by using the "openssl verify" command. + * + * This function uses the openssl verify command to verify a certificate, to work around limitations + * on the openssl_x509_checkpurpose function. That function will not work on certificates without a purpose + * set. + * + * @param string $certificate The certificate, in PEM format. + * @param string $caFile File with trusted certificates, in PEM-format. + * @return bool|string TRUE on success, a string with error messages on failure. + * @throws \Exception + * @deprecated + */ + private static function validateCAExec($certificate, $caFile) + { + assert(is_string($certificate)); + assert(is_string($caFile)); + + $command = array( + 'openssl', 'verify', + '-CAfile', $caFile, + '-purpose', 'any', + ); + + $cmdline = ''; + foreach ($command as $c) { + $cmdline .= escapeshellarg($c) . ' '; + } + + $cmdline .= '2>&1'; + $descSpec = array( + 0 => array('pipe', 'r'), + 1 => array('pipe', 'w'), + ); + $process = proc_open($cmdline, $descSpec, $pipes); + if (!is_resource($process)) { + throw new \Exception('Failed to execute verification command: ' . $cmdline); + } + + if (fwrite($pipes[0], $certificate) === false) { + throw new \Exception('Failed to write certificate for verification.'); + } + fclose($pipes[0]); + + $out = ''; + while (!feof($pipes[1])) { + $line = trim(fgets($pipes[1])); + if (strlen($line) > 0) { + $out .= ' [' . $line . ']'; + } + } + fclose($pipes[1]); + + $status = proc_close($process); + if ($status !== 0 || $out !== ' [stdin: OK]') { + return $out; + } + + return true; + } + + + /** + * Validate the certificate used to sign the XML against a CA file. + * + * This function throws an exception if unable to validate against the given CA file. + * + * @param string $certificate The certificate, in PEM format. + * @param string $caFile File with trusted certificates, in PEM-format. + * @throws \Exception + * @deprecated + */ + public static function validateCertificate($certificate, $caFile) + { + assert(is_string($certificate)); + assert(is_string($caFile)); + + if (!file_exists($caFile)) { + throw new \Exception('Could not load CA file: ' . $caFile); + } + + Logger::debug('Validating certificate against CA file: ' . var_export($caFile, true)); + + $resBuiltin = self::validateCABuiltIn($certificate, $caFile); + if ($resBuiltin !== true) { + Logger::debug('Failed to validate with internal function: ' . var_export($resBuiltin, true)); + + $resExternal = self::validateCAExec($certificate, $caFile); + if ($resExternal !== true) { + Logger::debug('Failed to validate with external function: ' . var_export($resExternal, true)); + throw new \Exception('Could not verify certificate against CA file "' + . $caFile . '". Internal result:' . $resBuiltin . + ' External result:' . $resExternal); + } + } + + Logger::debug('Successfully validated certificate.'); + } +} diff --git a/lib/_autoload.php b/lib/_autoload.php new file mode 100755 index 0000000..018468b --- /dev/null +++ b/lib/_autoload.php @@ -0,0 +1,20 @@ +<?php + +/** + * This file is a backwards compatible autoloader for SimpleSAMLphp. + * Loads the Composer autoloader. + * + * @author Olav Morken, UNINETT AS. + * @package SimpleSAMLphp + */ + +// SSP is loaded as a separate project +if (file_exists(dirname(dirname(__FILE__)).'/vendor/autoload.php')) { + require_once dirname(dirname(__FILE__)).'/vendor/autoload.php'; +} else { // SSP is loaded as a library + if (file_exists(dirname(dirname(__FILE__)).'/../../autoload.php')) { + require_once dirname(dirname(__FILE__)).'/../../autoload.php'; + } else { + throw new Exception('Unable to load Composer autoloader'); + } +} diff --git a/lib/_autoload_modules.php b/lib/_autoload_modules.php new file mode 100755 index 0000000..9a2c753 --- /dev/null +++ b/lib/_autoload_modules.php @@ -0,0 +1,157 @@ +<?php + +/** + * This file registers an autoloader for SimpleSAMLphp modules. + * + * @author Boy Baukema, SURFnet + * @author Jaime Perez <jaime.perez@uninett.no>, UNINETT + * @package SimpleSAMLphp + */ + +/** + * This temporary autoloader allows loading classes with their old-style names (SimpleSAML_Path_Something) even if they + * have been migrated to namespaces, by registering an alias for the new class. If the class has not yet been migrated, + * the autoloader will then try to load it. + * + * @param string $class The full name of the class using underscores to separate the elements of the path, and starting + * with 'SimpleSAML_'. + * @deprecated This function will be removed in SSP 2.0. + */ +function temporaryLoader($class) +{ + // handle the upgrade to the latest version of XMLSecLibs using namespaces + if (strstr($class, 'XMLSec')) { + if (class_exists('\\RobRichards\\XMLSecLibs\\'.$class, true)) { + class_alias('\\RobRichards\\XMLSecLibs\\'.$class, $class); + return; + } + } + + if (!strstr($class, 'SimpleSAML_')) { + return; // not a valid class name for old classes + } + $original = $class; + + // list of classes that have been renamed or moved + $renamed = array( + 'SimpleSAML_Metadata_MetaDataStorageHandlerMDX' => 'SimpleSAML_Metadata_Sources_MDQ', + 'SimpleSAML_Logger_LoggingHandlerSyslog' => 'SimpleSAML_Logger_SyslogLoggingHandler', + 'SimpleSAML_Logger_LoggingHandlerErrorLog' => 'SimpleSAML_Logger_ErrorLogLoggingHandler', + 'SimpleSAML_Logger_LoggingHandlerFile' => 'SimpleSAML_Logger_FileLoggingHandler', + 'SimpleSAML_Logger_LoggingHandler' => 'SimpleSAML_Logger_LoggingHandlerInterface', + 'SimpleSAML_IdP_LogoutHandler' => 'SimpleSAML_IdP_LogoutHandlerInterface', + 'SimpleSAML_IdP_LogoutIFrame' => 'SimpleSAML_IdP_IFrameLogoutHandler', + 'SimpleSAML_IdP_LogoutTraditional' => 'SimpleSAML_IdP_TraditionalLogoutHandler', + ); + if (array_key_exists($class, $renamed)) { + // the class has been renamed, try to load it and create an alias + $class = $renamed[$class]; + } + + // try to load it from the corresponding file + $path = explode('_', $class); + $file = dirname(__FILE__).DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, $path).'.php'; + if (file_exists($file)) { + require_once $file; + } + + // it exists, so it's not yet migrated to namespaces + if (class_exists($class, false) || interface_exists($class, false)) { + return; + } + + // it didn't exist, try to see if it was migrated to namespaces + $new = join('\\', $path); + if (class_exists($new, false) || interface_exists($new, false)) { + // do not try to autoload it if it doesn't exist! It should! + class_alias($new, $original); + SimpleSAML\Logger::warning("The class or interface '$original' is now using namespaces, please use '$new'."); + } +} + + +/** + * Autoload function for SimpleSAMLphp modules following PSR-0. + * + * @param string $className Name of the class. + * + * @deprecated This method will be removed in SSP 2.0. + * + * TODO: this autoloader should be removed once everything has been migrated to namespaces. + */ +function sspmodAutoloadPSR0($className) +{ + $modulePrefixLength = strlen('sspmod_'); + $classPrefix = substr($className, 0, $modulePrefixLength); + if ($classPrefix !== 'sspmod_') { + return; + } + + $modNameEnd = strpos($className, '_', $modulePrefixLength); + $module = substr($className, $modulePrefixLength, $modNameEnd - $modulePrefixLength); + $path = explode('_', substr($className, $modNameEnd + 1)); + + if (!\SimpleSAML\Module::isModuleEnabled($module)) { + return; + } + + $file = \SimpleSAML\Module::getModuleDir($module).'/lib/'.join('/', $path).'.php'; + if (!file_exists($file)) { + return; + } + require_once($file); + + if (!class_exists($className, false) && !interface_exists($className, false)) { + // the file exists, but the class is not defined. Is it using namespaces? + $nspath = join('\\', $path); + if (class_exists('SimpleSAML\Module\\'.$module.'\\'.$nspath) || + interface_exists('SimpleSAML\Module\\'.$module.'\\'.$nspath) + ) { + // the class has been migrated, create an alias and warn about it + \SimpleSAML\Logger::warning( + "The class or interface '$className' is now using namespaces, please use 'SimpleSAML\\Module\\". + $module."\\".$nspath."' instead." + ); + class_alias("SimpleSAML\\Module\\$module\\$nspath", $className); + } + } +} + + +/** + * Autoload function for SimpleSAMLphp modules following PSR-4. + * + * @param string $className Name of the class. + */ +function sspmodAutoloadPSR4($className) +{ + $elements = explode('\\', $className); + if ($elements[0] === '') { // class name starting with /, ignore + array_shift($elements); + } + if (count($elements) < 4) { + return; // it can't be a module + } + if (array_shift($elements) !== 'SimpleSAML') { + return; // the first element is not "SimpleSAML" + } + if (array_shift($elements) !== 'Module') { + return; // the second element is not "module" + } + + // this is a SimpleSAMLphp module following PSR-4 + $module = array_shift($elements); + if (!\SimpleSAML\Module::isModuleEnabled($module)) { + return; // module not enabled, avoid giving out any information at all + } + + $file = \SimpleSAML\Module::getModuleDir($module).'/lib/'.implode('/', $elements).'.php'; + + if (file_exists($file)) { + require_once($file); + } +} + +spl_autoload_register("temporaryLoader"); +spl_autoload_register('sspmodAutoloadPSR0'); +spl_autoload_register('sspmodAutoloadPSR4'); diff --git a/lib/aws/Aws/ACMPCA/ACMPCAClient.php b/lib/aws/Aws/ACMPCA/ACMPCAClient.php new file mode 100644 index 0000000..373ecde --- /dev/null +++ b/lib/aws/Aws/ACMPCA/ACMPCAClient.php @@ -0,0 +1,49 @@ +<?php +namespace Aws\ACMPCA; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Certificate Manager Private Certificate Authority** service. + * @method \Aws\Result createCertificateAuthority(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCertificateAuthorityAsync(array $args = []) + * @method \Aws\Result createCertificateAuthorityAuditReport(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCertificateAuthorityAuditReportAsync(array $args = []) + * @method \Aws\Result createPermission(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPermissionAsync(array $args = []) + * @method \Aws\Result deleteCertificateAuthority(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCertificateAuthorityAsync(array $args = []) + * @method \Aws\Result deletePermission(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePermissionAsync(array $args = []) + * @method \Aws\Result describeCertificateAuthority(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCertificateAuthorityAsync(array $args = []) + * @method \Aws\Result describeCertificateAuthorityAuditReport(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCertificateAuthorityAuditReportAsync(array $args = []) + * @method \Aws\Result getCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCertificateAsync(array $args = []) + * @method \Aws\Result getCertificateAuthorityCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCertificateAuthorityCertificateAsync(array $args = []) + * @method \Aws\Result getCertificateAuthorityCsr(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCertificateAuthorityCsrAsync(array $args = []) + * @method \Aws\Result importCertificateAuthorityCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise importCertificateAuthorityCertificateAsync(array $args = []) + * @method \Aws\Result issueCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise issueCertificateAsync(array $args = []) + * @method \Aws\Result listCertificateAuthorities(array $args = []) + * @method \GuzzleHttp\Promise\Promise listCertificateAuthoritiesAsync(array $args = []) + * @method \Aws\Result listPermissions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPermissionsAsync(array $args = []) + * @method \Aws\Result listTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsAsync(array $args = []) + * @method \Aws\Result restoreCertificateAuthority(array $args = []) + * @method \GuzzleHttp\Promise\Promise restoreCertificateAuthorityAsync(array $args = []) + * @method \Aws\Result revokeCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise revokeCertificateAsync(array $args = []) + * @method \Aws\Result tagCertificateAuthority(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagCertificateAuthorityAsync(array $args = []) + * @method \Aws\Result untagCertificateAuthority(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagCertificateAuthorityAsync(array $args = []) + * @method \Aws\Result updateCertificateAuthority(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateCertificateAuthorityAsync(array $args = []) + */ +class ACMPCAClient extends AwsClient {} diff --git a/lib/aws/Aws/ACMPCA/Exception/ACMPCAException.php b/lib/aws/Aws/ACMPCA/Exception/ACMPCAException.php new file mode 100644 index 0000000..96f64c2 --- /dev/null +++ b/lib/aws/Aws/ACMPCA/Exception/ACMPCAException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\ACMPCA\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Certificate Manager Private Certificate Authority** service. + */ +class ACMPCAException extends AwsException {} diff --git a/lib/aws/Aws/Acm/AcmClient.php b/lib/aws/Aws/Acm/AcmClient.php new file mode 100644 index 0000000..440643c --- /dev/null +++ b/lib/aws/Aws/Acm/AcmClient.php @@ -0,0 +1,36 @@ +<?php +namespace Aws\Acm; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Certificate Manager** service. + * + * @method \Aws\Result addTagsToCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsToCertificateAsync(array $args = []) + * @method \Aws\Result deleteCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCertificateAsync(array $args = []) + * @method \Aws\Result describeCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCertificateAsync(array $args = []) + * @method \Aws\Result exportCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise exportCertificateAsync(array $args = []) + * @method \Aws\Result getCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCertificateAsync(array $args = []) + * @method \Aws\Result importCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise importCertificateAsync(array $args = []) + * @method \Aws\Result listCertificates(array $args = []) + * @method \GuzzleHttp\Promise\Promise listCertificatesAsync(array $args = []) + * @method \Aws\Result listTagsForCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForCertificateAsync(array $args = []) + * @method \Aws\Result removeTagsFromCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeTagsFromCertificateAsync(array $args = []) + * @method \Aws\Result renewCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise renewCertificateAsync(array $args = []) + * @method \Aws\Result requestCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise requestCertificateAsync(array $args = []) + * @method \Aws\Result resendValidationEmail(array $args = []) + * @method \GuzzleHttp\Promise\Promise resendValidationEmailAsync(array $args = []) + * @method \Aws\Result updateCertificateOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateCertificateOptionsAsync(array $args = []) + */ +class AcmClient extends AwsClient {} diff --git a/lib/aws/Aws/Acm/Exception/AcmException.php b/lib/aws/Aws/Acm/Exception/AcmException.php new file mode 100644 index 0000000..db3d9f6 --- /dev/null +++ b/lib/aws/Aws/Acm/Exception/AcmException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Acm\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Certificate Manager** service. + */ +class AcmException extends AwsException {} diff --git a/lib/aws/Aws/AlexaForBusiness/AlexaForBusinessClient.php b/lib/aws/Aws/AlexaForBusiness/AlexaForBusinessClient.php new file mode 100644 index 0000000..2ccbb57 --- /dev/null +++ b/lib/aws/Aws/AlexaForBusiness/AlexaForBusinessClient.php @@ -0,0 +1,163 @@ +<?php +namespace Aws\AlexaForBusiness; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Alexa For Business** service. + * @method \Aws\Result approveSkill(array $args = []) + * @method \GuzzleHttp\Promise\Promise approveSkillAsync(array $args = []) + * @method \Aws\Result associateContactWithAddressBook(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateContactWithAddressBookAsync(array $args = []) + * @method \Aws\Result associateDeviceWithRoom(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateDeviceWithRoomAsync(array $args = []) + * @method \Aws\Result associateSkillGroupWithRoom(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateSkillGroupWithRoomAsync(array $args = []) + * @method \Aws\Result associateSkillWithSkillGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateSkillWithSkillGroupAsync(array $args = []) + * @method \Aws\Result associateSkillWithUsers(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateSkillWithUsersAsync(array $args = []) + * @method \Aws\Result createAddressBook(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAddressBookAsync(array $args = []) + * @method \Aws\Result createBusinessReportSchedule(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBusinessReportScheduleAsync(array $args = []) + * @method \Aws\Result createConferenceProvider(array $args = []) + * @method \GuzzleHttp\Promise\Promise createConferenceProviderAsync(array $args = []) + * @method \Aws\Result createContact(array $args = []) + * @method \GuzzleHttp\Promise\Promise createContactAsync(array $args = []) + * @method \Aws\Result createProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise createProfileAsync(array $args = []) + * @method \Aws\Result createRoom(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRoomAsync(array $args = []) + * @method \Aws\Result createSkillGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSkillGroupAsync(array $args = []) + * @method \Aws\Result createUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise createUserAsync(array $args = []) + * @method \Aws\Result deleteAddressBook(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAddressBookAsync(array $args = []) + * @method \Aws\Result deleteBusinessReportSchedule(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBusinessReportScheduleAsync(array $args = []) + * @method \Aws\Result deleteConferenceProvider(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteConferenceProviderAsync(array $args = []) + * @method \Aws\Result deleteContact(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteContactAsync(array $args = []) + * @method \Aws\Result deleteDevice(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDeviceAsync(array $args = []) + * @method \Aws\Result deleteProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteProfileAsync(array $args = []) + * @method \Aws\Result deleteRoom(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRoomAsync(array $args = []) + * @method \Aws\Result deleteRoomSkillParameter(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRoomSkillParameterAsync(array $args = []) + * @method \Aws\Result deleteSkillAuthorization(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSkillAuthorizationAsync(array $args = []) + * @method \Aws\Result deleteSkillGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSkillGroupAsync(array $args = []) + * @method \Aws\Result deleteUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserAsync(array $args = []) + * @method \Aws\Result disassociateContactFromAddressBook(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateContactFromAddressBookAsync(array $args = []) + * @method \Aws\Result disassociateDeviceFromRoom(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateDeviceFromRoomAsync(array $args = []) + * @method \Aws\Result disassociateSkillFromSkillGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateSkillFromSkillGroupAsync(array $args = []) + * @method \Aws\Result disassociateSkillFromUsers(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateSkillFromUsersAsync(array $args = []) + * @method \Aws\Result disassociateSkillGroupFromRoom(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateSkillGroupFromRoomAsync(array $args = []) + * @method \Aws\Result forgetSmartHomeAppliances(array $args = []) + * @method \GuzzleHttp\Promise\Promise forgetSmartHomeAppliancesAsync(array $args = []) + * @method \Aws\Result getAddressBook(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAddressBookAsync(array $args = []) + * @method \Aws\Result getConferencePreference(array $args = []) + * @method \GuzzleHttp\Promise\Promise getConferencePreferenceAsync(array $args = []) + * @method \Aws\Result getConferenceProvider(array $args = []) + * @method \GuzzleHttp\Promise\Promise getConferenceProviderAsync(array $args = []) + * @method \Aws\Result getContact(array $args = []) + * @method \GuzzleHttp\Promise\Promise getContactAsync(array $args = []) + * @method \Aws\Result getDevice(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDeviceAsync(array $args = []) + * @method \Aws\Result getInvitationConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInvitationConfigurationAsync(array $args = []) + * @method \Aws\Result getProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise getProfileAsync(array $args = []) + * @method \Aws\Result getRoom(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRoomAsync(array $args = []) + * @method \Aws\Result getRoomSkillParameter(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRoomSkillParameterAsync(array $args = []) + * @method \Aws\Result getSkillGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSkillGroupAsync(array $args = []) + * @method \Aws\Result listBusinessReportSchedules(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBusinessReportSchedulesAsync(array $args = []) + * @method \Aws\Result listConferenceProviders(array $args = []) + * @method \GuzzleHttp\Promise\Promise listConferenceProvidersAsync(array $args = []) + * @method \Aws\Result listDeviceEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDeviceEventsAsync(array $args = []) + * @method \Aws\Result listSkills(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSkillsAsync(array $args = []) + * @method \Aws\Result listSkillsStoreCategories(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSkillsStoreCategoriesAsync(array $args = []) + * @method \Aws\Result listSkillsStoreSkillsByCategory(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSkillsStoreSkillsByCategoryAsync(array $args = []) + * @method \Aws\Result listSmartHomeAppliances(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSmartHomeAppliancesAsync(array $args = []) + * @method \Aws\Result listTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsAsync(array $args = []) + * @method \Aws\Result putConferencePreference(array $args = []) + * @method \GuzzleHttp\Promise\Promise putConferencePreferenceAsync(array $args = []) + * @method \Aws\Result putInvitationConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putInvitationConfigurationAsync(array $args = []) + * @method \Aws\Result putRoomSkillParameter(array $args = []) + * @method \GuzzleHttp\Promise\Promise putRoomSkillParameterAsync(array $args = []) + * @method \Aws\Result putSkillAuthorization(array $args = []) + * @method \GuzzleHttp\Promise\Promise putSkillAuthorizationAsync(array $args = []) + * @method \Aws\Result registerAVSDevice(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerAVSDeviceAsync(array $args = []) + * @method \Aws\Result rejectSkill(array $args = []) + * @method \GuzzleHttp\Promise\Promise rejectSkillAsync(array $args = []) + * @method \Aws\Result resolveRoom(array $args = []) + * @method \GuzzleHttp\Promise\Promise resolveRoomAsync(array $args = []) + * @method \Aws\Result revokeInvitation(array $args = []) + * @method \GuzzleHttp\Promise\Promise revokeInvitationAsync(array $args = []) + * @method \Aws\Result searchAddressBooks(array $args = []) + * @method \GuzzleHttp\Promise\Promise searchAddressBooksAsync(array $args = []) + * @method \Aws\Result searchContacts(array $args = []) + * @method \GuzzleHttp\Promise\Promise searchContactsAsync(array $args = []) + * @method \Aws\Result searchDevices(array $args = []) + * @method \GuzzleHttp\Promise\Promise searchDevicesAsync(array $args = []) + * @method \Aws\Result searchProfiles(array $args = []) + * @method \GuzzleHttp\Promise\Promise searchProfilesAsync(array $args = []) + * @method \Aws\Result searchRooms(array $args = []) + * @method \GuzzleHttp\Promise\Promise searchRoomsAsync(array $args = []) + * @method \Aws\Result searchSkillGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise searchSkillGroupsAsync(array $args = []) + * @method \Aws\Result searchUsers(array $args = []) + * @method \GuzzleHttp\Promise\Promise searchUsersAsync(array $args = []) + * @method \Aws\Result sendInvitation(array $args = []) + * @method \GuzzleHttp\Promise\Promise sendInvitationAsync(array $args = []) + * @method \Aws\Result startDeviceSync(array $args = []) + * @method \GuzzleHttp\Promise\Promise startDeviceSyncAsync(array $args = []) + * @method \Aws\Result startSmartHomeApplianceDiscovery(array $args = []) + * @method \GuzzleHttp\Promise\Promise startSmartHomeApplianceDiscoveryAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateAddressBook(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAddressBookAsync(array $args = []) + * @method \Aws\Result updateBusinessReportSchedule(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateBusinessReportScheduleAsync(array $args = []) + * @method \Aws\Result updateConferenceProvider(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateConferenceProviderAsync(array $args = []) + * @method \Aws\Result updateContact(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateContactAsync(array $args = []) + * @method \Aws\Result updateDevice(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDeviceAsync(array $args = []) + * @method \Aws\Result updateProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateProfileAsync(array $args = []) + * @method \Aws\Result updateRoom(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRoomAsync(array $args = []) + * @method \Aws\Result updateSkillGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSkillGroupAsync(array $args = []) + */ +class AlexaForBusinessClient extends AwsClient {} diff --git a/lib/aws/Aws/AlexaForBusiness/Exception/AlexaForBusinessException.php b/lib/aws/Aws/AlexaForBusiness/Exception/AlexaForBusinessException.php new file mode 100644 index 0000000..602699e --- /dev/null +++ b/lib/aws/Aws/AlexaForBusiness/Exception/AlexaForBusinessException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\AlexaForBusiness\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Alexa For Business** service. + */ +class AlexaForBusinessException extends AwsException {} diff --git a/lib/aws/Aws/Amplify/AmplifyClient.php b/lib/aws/Aws/Amplify/AmplifyClient.php new file mode 100644 index 0000000..c1f0eae --- /dev/null +++ b/lib/aws/Aws/Amplify/AmplifyClient.php @@ -0,0 +1,49 @@ +<?php +namespace Aws\Amplify; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Amplify** service. + * @method \Aws\Result createApp(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAppAsync(array $args = []) + * @method \Aws\Result createBranch(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBranchAsync(array $args = []) + * @method \Aws\Result createDomainAssociation(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDomainAssociationAsync(array $args = []) + * @method \Aws\Result deleteApp(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAppAsync(array $args = []) + * @method \Aws\Result deleteBranch(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBranchAsync(array $args = []) + * @method \Aws\Result deleteDomainAssociation(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDomainAssociationAsync(array $args = []) + * @method \Aws\Result deleteJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteJobAsync(array $args = []) + * @method \Aws\Result getApp(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAppAsync(array $args = []) + * @method \Aws\Result getBranch(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBranchAsync(array $args = []) + * @method \Aws\Result getDomainAssociation(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDomainAssociationAsync(array $args = []) + * @method \Aws\Result getJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise getJobAsync(array $args = []) + * @method \Aws\Result listApps(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAppsAsync(array $args = []) + * @method \Aws\Result listBranches(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBranchesAsync(array $args = []) + * @method \Aws\Result listDomainAssociations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDomainAssociationsAsync(array $args = []) + * @method \Aws\Result listJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listJobsAsync(array $args = []) + * @method \Aws\Result startJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise startJobAsync(array $args = []) + * @method \Aws\Result stopJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopJobAsync(array $args = []) + * @method \Aws\Result updateApp(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAppAsync(array $args = []) + * @method \Aws\Result updateBranch(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateBranchAsync(array $args = []) + * @method \Aws\Result updateDomainAssociation(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDomainAssociationAsync(array $args = []) + */ +class AmplifyClient extends AwsClient {} diff --git a/lib/aws/Aws/Amplify/Exception/AmplifyException.php b/lib/aws/Aws/Amplify/Exception/AmplifyException.php new file mode 100644 index 0000000..f085679 --- /dev/null +++ b/lib/aws/Aws/Amplify/Exception/AmplifyException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Amplify\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Amplify** service. + */ +class AmplifyException extends AwsException {} diff --git a/lib/aws/Aws/Api/AbstractModel.php b/lib/aws/Aws/Api/AbstractModel.php new file mode 100644 index 0000000..f110e6b --- /dev/null +++ b/lib/aws/Aws/Api/AbstractModel.php @@ -0,0 +1,67 @@ +<?php +namespace Aws\Api; + +/** + * Base class that is used by most API shapes + */ +abstract class AbstractModel implements \ArrayAccess +{ + /** @var array */ + protected $definition; + + /** @var ShapeMap */ + protected $shapeMap; + + /** + * @param array $definition Service description + * @param ShapeMap $shapeMap Shapemap used for creating shapes + */ + public function __construct(array $definition, ShapeMap $shapeMap) + { + $this->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/Aws/Api/ApiProvider.php b/lib/aws/Aws/Api/ApiProvider.php new file mode 100644 index 0000000..6df53ea --- /dev/null +++ b/lib/aws/Aws/Api/ApiProvider.php @@ -0,0 +1,244 @@ +<?php +namespace Aws\Api; + +use Aws\Exception\UnresolvedApiException; + +/** + * API providers. + * + * An API provider is a function that accepts a type, service, and version and + * returns an array of API data on success or NULL if no API data can be created + * for the provided arguments. + * + * You can wrap your calls to an API provider with the + * {@see ApiProvider::resolve} method to ensure that API data is created. If the + * API data is not created, then the resolve() method will throw a + * {@see Aws\Exception\UnresolvedApiException}. + * + * use Aws\Api\ApiProvider; + * $provider = ApiProvider::defaultProvider(); + * // Returns an array or NULL. + * $data = $provider('api', 's3', '2006-03-01'); + * // Returns an array or throws. + * $data = ApiProvider::resolve($provider, 'api', 'elasticfood', '2020-01-01'); + * + * You can compose multiple providers into a single provider using + * {@see Aws\or_chain}. This method accepts providers as arguments and + * returns a new function that will invoke each provider until a non-null value + * is returned. + * + * $a = ApiProvider::filesystem(sys_get_temp_dir() . '/aws-beta-models'); + * $b = ApiProvider::manifest(); + * + * $c = \Aws\or_chain($a, $b); + * $data = $c('api', 'betaservice', '2015-08-08'); // $a handles this. + * $data = $c('api', 's3', '2006-03-01'); // $b handles this. + * $data = $c('api', 'invalid', '2014-12-15'); // Neither handles this. + */ +class ApiProvider +{ + /** @var array A map of public API type names to their file suffix. */ + private static $typeMap = [ + 'api' => '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)) { + if (!isset($result['metadata']['serviceIdentifier'])) { + $result['metadata']['serviceIdentifier'] = $service; + } + 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() + { + return new self(__DIR__ . '/../data', \Aws\manifest()); + } + + /** + * 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/Aws/Api/DateTimeResult.php b/lib/aws/Aws/Api/DateTimeResult.php new file mode 100644 index 0000000..aa3cf7e --- /dev/null +++ b/lib/aws/Aws/Api/DateTimeResult.php @@ -0,0 +1,41 @@ +<?php +namespace Aws\Api; + +/** + * DateTime overrides that make DateTime work more seamlessly as a string, + * with JSON documents, and with JMESPath. + */ +class DateTimeResult extends \DateTime implements \JsonSerializable +{ + /** + * Create a new DateTimeResult from a unix timestamp. + * + * @param $unixTimestamp + * + * @return DateTimeResult + */ + public static function fromEpoch($unixTimestamp) + { + return new self(gmdate('c', $unixTimestamp)); + } + + /** + * Serialize the DateTimeResult as an ISO 8601 date string. + * + * @return string + */ + public function __toString() + { + return $this->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/Aws/Api/DocModel.php b/lib/aws/Aws/Api/DocModel.php new file mode 100644 index 0000000..4bba4e5 --- /dev/null +++ b/lib/aws/Aws/Api/DocModel.php @@ -0,0 +1,128 @@ +<?php +namespace Aws\Api; + +/** + * Encapsulates the documentation strings for a given service-version and + * provides methods for extracting the desired parts related to a service, + * operation, error, or shape (i.e., parameter). + */ +class DocModel +{ + /** @var array */ + private $docs; + + /** + * @param array $docs + * + * @throws \RuntimeException + */ + public function __construct(array $docs) + { + if (!extension_loaded('tidy')) { + throw new \RuntimeException('The "tidy" PHP extension is required.'); + } + + $this->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/Aws/Api/ErrorParser/JsonParserTrait.php b/lib/aws/Aws/Api/ErrorParser/JsonParserTrait.php new file mode 100644 index 0000000..9415f25 --- /dev/null +++ b/lib/aws/Aws/Api/ErrorParser/JsonParserTrait.php @@ -0,0 +1,26 @@ +<?php +namespace Aws\Api\ErrorParser; + +use Aws\Api\Parser\PayloadParserTrait; +use Psr\Http\Message\ResponseInterface; + +/** + * Provides basic JSON error parsing functionality. + */ +trait JsonParserTrait +{ + use PayloadParserTrait; + + private function genericHandler(ResponseInterface $response) + { + $code = (string) $response->getStatusCode(); + + return [ + 'request_id' => (string) $response->getHeaderLine('x-amzn-requestid'), + 'code' => null, + 'message' => null, + 'type' => $code[0] == '4' ? 'client' : 'server', + 'parsed' => $this->parseJson($response->getBody(), $response) + ]; + } +} diff --git a/lib/aws/Aws/Api/ErrorParser/JsonRpcErrorParser.php b/lib/aws/Aws/Api/ErrorParser/JsonRpcErrorParser.php new file mode 100644 index 0000000..cb4d3d6 --- /dev/null +++ b/lib/aws/Aws/Api/ErrorParser/JsonRpcErrorParser.php @@ -0,0 +1,31 @@ +<?php +namespace Aws\Api\ErrorParser; + +use Psr\Http\Message\ResponseInterface; + +/** + * Parsers JSON-RPC errors. + */ +class JsonRpcErrorParser +{ + use JsonParserTrait; + + public function __invoke(ResponseInterface $response) + { + $data = $this->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/Aws/Api/ErrorParser/RestJsonErrorParser.php b/lib/aws/Aws/Api/ErrorParser/RestJsonErrorParser.php new file mode 100644 index 0000000..5d8eb89 --- /dev/null +++ b/lib/aws/Aws/Api/ErrorParser/RestJsonErrorParser.php @@ -0,0 +1,35 @@ +<?php +namespace Aws\Api\ErrorParser; + +use Psr\Http\Message\ResponseInterface; + +/** + * Parses JSON-REST errors. + */ +class RestJsonErrorParser +{ + use JsonParserTrait; + + public function __invoke(ResponseInterface $response) + { + $data = $this->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/Aws/Api/ErrorParser/XmlErrorParser.php b/lib/aws/Aws/Api/ErrorParser/XmlErrorParser.php new file mode 100644 index 0000000..aa3a71b --- /dev/null +++ b/lib/aws/Aws/Api/ErrorParser/XmlErrorParser.php @@ -0,0 +1,82 @@ +<?php +namespace Aws\Api\ErrorParser; + +use Aws\Api\Parser\PayloadParserTrait; +use Psr\Http\Message\ResponseInterface; + +/** + * Parses XML errors. + */ +class XmlErrorParser +{ + use PayloadParserTrait; + + public function __invoke(ResponseInterface $response) + { + $code = (string) $response->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($this->parseXml($body, $response), $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/Aws/Api/ListShape.php b/lib/aws/Aws/Api/ListShape.php new file mode 100644 index 0000000..a425efa --- /dev/null +++ b/lib/aws/Aws/Api/ListShape.php @@ -0,0 +1,35 @@ +<?php +namespace Aws\Api; + +/** + * Represents a list shape. + */ +class ListShape extends Shape +{ + private $member; + + public function __construct(array $definition, ShapeMap $shapeMap) + { + $definition['type'] = 'list'; + parent::__construct($definition, $shapeMap); + } + + /** + * @return Shape + * @throws \RuntimeException if no member is specified + */ + public function getMember() + { + if (!$this->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/Aws/Api/MapShape.php b/lib/aws/Aws/Api/MapShape.php new file mode 100644 index 0000000..f180f9a --- /dev/null +++ b/lib/aws/Aws/Api/MapShape.php @@ -0,0 +1,54 @@ +<?php +namespace Aws\Api; + +/** + * Represents a map shape. + */ +class MapShape extends Shape +{ + /** @var Shape */ + private $value; + + /** @var Shape */ + private $key; + + public function __construct(array $definition, ShapeMap $shapeMap) + { + $definition['type'] = 'map'; + parent::__construct($definition, $shapeMap); + } + + /** + * @return Shape + * @throws \RuntimeException if no value is specified + */ + public function getValue() + { + if (!$this->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/Aws/Api/Operation.php b/lib/aws/Aws/Api/Operation.php new file mode 100644 index 0000000..85261af --- /dev/null +++ b/lib/aws/Aws/Api/Operation.php @@ -0,0 +1,97 @@ +<?php +namespace Aws\Api; + +/** + * Represents an API operation. + */ +class Operation extends AbstractModel +{ + private $input; + private $output; + private $errors; + + public function __construct(array $definition, ShapeMap $shapeMap) + { + $definition['type'] = 'structure'; + + if (!isset($definition['http']['method'])) { + $definition['http']['method'] = 'POST'; + } + + if (!isset($definition['http']['requestUri'])) { + $definition['http']['requestUri'] = '/'; + } + + parent::__construct($definition, $shapeMap); + } + + /** + * Returns an associative array of the HTTP attribute of the operation: + * + * - method: HTTP method of the operation + * - requestUri: URI of the request (can include URI template placeholders) + * + * @return array + */ + public function getHttp() + { + return $this->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 $key => $error) { + $errors[$key] = $this->shapeFor($error); + } + $this->errors = $errors; + } else { + $this->errors = []; + } + } + + return $this->errors; + } +} diff --git a/lib/aws/Aws/Api/Parser/AbstractParser.php b/lib/aws/Aws/Api/Parser/AbstractParser.php new file mode 100644 index 0000000..2d515d2 --- /dev/null +++ b/lib/aws/Aws/Api/Parser/AbstractParser.php @@ -0,0 +1,46 @@ +<?php +namespace Aws\Api\Parser; + +use Aws\Api\Service; +use Aws\Api\StructureShape; +use Aws\CommandInterface; +use Aws\ResultInterface; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\StreamInterface; + +/** + * @internal + */ +abstract class AbstractParser +{ + /** @var \Aws\Api\Service Representation of the service API*/ + protected $api; + + /** @var callable */ + protected $parser; + + /** + * @param Service $api Service description. + */ + public function __construct(Service $api) + { + $this->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 + ); + + abstract public function parseMemberFromStream( + StreamInterface $stream, + StructureShape $member, + $response + ); +} diff --git a/lib/aws/Aws/Api/Parser/AbstractRestParser.php b/lib/aws/Aws/Api/Parser/AbstractRestParser.php new file mode 100644 index 0000000..1e7fa94 --- /dev/null +++ b/lib/aws/Aws/Api/Parser/AbstractRestParser.php @@ -0,0 +1,173 @@ +<?php +namespace Aws\Api\Parser; + +use Aws\Api\DateTimeResult; +use Aws\Api\Shape; +use Aws\Api\StructureShape; +use Aws\Result; +use Aws\CommandInterface; +use Psr\Http\Message\ResponseInterface; + +/** + * @internal + */ +abstract class AbstractRestParser extends AbstractParser +{ + use PayloadParserTrait; + /** + * Parses a payload from a response. + * + * @param ResponseInterface $response Response to parse. + * @param StructureShape $member Member to parse + * @param array $result Result value + * + * @return mixed + */ + abstract protected function payload( + ResponseInterface $response, + StructureShape $member, + array &$result + ); + + public function __invoke( + CommandInterface $command, + ResponseInterface $response + ) { + $output = $this->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 + && count($output->getMembers()) > 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 (!empty($member['eventstream'])) { + $result[$payload] = new EventParsingIterator( + $response->getBody(), + $member, + $this + ); + } else 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); + + switch ($shape->getType()) { + case 'float': + case 'double': + $value = (float) $value; + break; + case 'long': + $value = (int) $value; + break; + case 'boolean': + $value = filter_var($value, FILTER_VALIDATE_BOOLEAN); + break; + case 'blob': + $value = base64_decode($value); + break; + case 'timestamp': + try { + if (!empty($shape['timestampFormat']) + && $shape['timestampFormat'] === 'unixTimestamp') { + $value = DateTimeResult::fromEpoch($value); + } + $value = new DateTimeResult($value); + break; + } catch (\Exception $e) { + // If the value cannot be parsed, then do not add it to the + // output structure. + return; + } + case 'string': + if ($shape['jsonvalue']) { + $value = $this->parseJson(base64_decode($value), $response); + } + break; + } + + $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/Aws/Api/Parser/Crc32ValidatingParser.php b/lib/aws/Aws/Api/Parser/Crc32ValidatingParser.php new file mode 100644 index 0000000..be082ea --- /dev/null +++ b/lib/aws/Aws/Api/Parser/Crc32ValidatingParser.php @@ -0,0 +1,54 @@ +<?php +namespace Aws\Api\Parser; + +use Aws\Api\StructureShape; +use Aws\CommandInterface; +use Aws\Exception\AwsException; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\StreamInterface; +use GuzzleHttp\Psr7; + +/** + * @internal Decorates a parser and validates the x-amz-crc32 header. + */ +class Crc32ValidatingParser extends AbstractParser +{ + /** + * @param callable $parser Parser to wrap. + */ + public function __construct(callable $parser) + { + $this->parser = $parser; + } + + public function __invoke( + CommandInterface $command, + ResponseInterface $response + ) { + if ($expected = $response->getHeaderLine('x-amz-crc32')) { + $hash = hexdec(Psr7\hash($response->getBody(), 'crc32b')); + if ($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); + } + + public function parseMemberFromStream( + StreamInterface $stream, + StructureShape $member, + $response + ) { + return $this->parser->parseMemberFromStream($stream, $member, $response); + } +} diff --git a/lib/aws/Aws/Api/Parser/DecodingEventStreamIterator.php b/lib/aws/Aws/Api/Parser/DecodingEventStreamIterator.php new file mode 100644 index 0000000..df0f96a --- /dev/null +++ b/lib/aws/Aws/Api/Parser/DecodingEventStreamIterator.php @@ -0,0 +1,335 @@ +<?php + +namespace Aws\Api\Parser; + +use \Iterator; +use Aws\Api\DateTimeResult; +use GuzzleHttp\Psr7; +use Psr\Http\Message\StreamInterface; +use Aws\Api\Parser\Exception\ParserException; + +/** + * @internal Implements a decoder for a binary encoded event stream that will + * decode, validate, and provide individual events from the stream. + */ +class DecodingEventStreamIterator implements Iterator +{ + const HEADERS = 'headers'; + const PAYLOAD = 'payload'; + + const LENGTH_TOTAL = 'total_length'; + const LENGTH_HEADERS = 'headers_length'; + + const CRC_PRELUDE = 'prelude_crc'; + + const BYTES_PRELUDE = 12; + const BYTES_TRAILING = 4; + + private static $preludeFormat = [ + self::LENGTH_TOTAL => 'decodeUint32', + self::LENGTH_HEADERS => 'decodeUint32', + self::CRC_PRELUDE => 'decodeUint32', + ]; + + private static $lengthFormatMap = [ + 1 => 'decodeUint8', + 2 => 'decodeUint16', + 4 => 'decodeUint32', + 8 => 'decodeUint64', + ]; + + private static $headerTypeMap = [ + 0 => 'decodeBooleanTrue', + 1 => 'decodeBooleanFalse', + 2 => 'decodeInt8', + 3 => 'decodeInt16', + 4 => 'decodeInt32', + 5 => 'decodeInt64', + 6 => 'decodeBytes', + 7 => 'decodeString', + 8 => 'decodeTimestamp', + 9 => 'decodeUuid', + ]; + + /** @var StreamInterface Stream of eventstream shape to parse. */ + private $stream; + + /** @var array Currently parsed event. */ + private $currentEvent; + + /** @var int Current in-order event key. */ + private $key; + + /** @var resource|HashContext CRC32 hash context for event validation */ + private $hashContext; + + /** @var int $currentPosition */ + private $currentPosition; + + /** + * DecodingEventStreamIterator constructor. + * + * @param StreamInterface $stream + */ + public function __construct(StreamInterface $stream) + { + $this->stream = $stream; + $this->rewind(); + } + + private function parseHeaders($headerBytes) + { + $headers = []; + $bytesRead = 0; + + while ($bytesRead < $headerBytes) { + list($key, $numBytes) = $this->decodeString(1); + $bytesRead += $numBytes; + + list($type, $numBytes) = $this->decodeUint8(); + $bytesRead += $numBytes; + + $f = self::$headerTypeMap[$type]; + list($value, $numBytes) = $this->{$f}(); + $bytesRead += $numBytes; + + if (isset($headers[$key])) { + throw new ParserException('Duplicate key in event headers.'); + } + $headers[$key] = $value; + } + + return [$headers, $bytesRead]; + } + + private function parsePrelude() + { + $prelude = []; + $bytesRead = 0; + + $calculatedCrc = null; + foreach (self::$preludeFormat as $key => $decodeFunction) { + if ($key === self::CRC_PRELUDE) { + $hashCopy = hash_copy($this->hashContext); + $calculatedCrc = hash_final($this->hashContext, true); + $this->hashContext = $hashCopy; + } + list($value, $numBytes) = $this->{$decodeFunction}(); + $bytesRead += $numBytes; + + $prelude[$key] = $value; + } + + if (unpack('N', $calculatedCrc)[1] !== $prelude[self::CRC_PRELUDE]) { + throw new ParserException('Prelude checksum mismatch.'); + } + + return [$prelude, $bytesRead]; + } + + private function parseEvent() + { + $event = []; + + if ($this->stream->tell() < $this->stream->getSize()) { + $this->hashContext = hash_init('crc32b'); + + $bytesLeft = $this->stream->getSize() - $this->stream->tell(); + list($prelude, $numBytes) = $this->parsePrelude(); + if ($prelude[self::LENGTH_TOTAL] > $bytesLeft) { + throw new ParserException('Message length too long.'); + } + $bytesLeft -= $numBytes; + + if ($prelude[self::LENGTH_HEADERS] > $bytesLeft) { + throw new ParserException('Headers length too long.'); + } + + list( + $event[self::HEADERS], + $numBytes + ) = $this->parseHeaders($prelude[self::LENGTH_HEADERS]); + + $event[self::PAYLOAD] = Psr7\stream_for( + $this->readAndHashBytes( + $prelude[self::LENGTH_TOTAL] - self::BYTES_PRELUDE + - $numBytes - self::BYTES_TRAILING + ) + ); + + $calculatedCrc = hash_final($this->hashContext, true); + $messageCrc = $this->stream->read(4); + if ($calculatedCrc !== $messageCrc) { + throw new ParserException('Message checksum mismatch.'); + } + } + + return $event; + } + + // Iterator Functionality + + /** + * @return array + */ + public function current() + { + return $this->currentEvent; + } + + /** + * @return int + */ + public function key() + { + return $this->key; + } + + public function next() + { + $this->currentPosition = $this->stream->tell(); + if ($this->valid()) { + $this->key++; + $this->currentEvent = $this->parseEvent(); + } + } + + public function rewind() + { + $this->stream->rewind(); + $this->key = 0; + $this->currentPosition = 0; + $this->currentEvent = $this->parseEvent(); + } + + /** + * @return bool + */ + public function valid() + { + return $this->currentPosition < $this->stream->getSize(); + } + + // Decoding Utilities + + private function readAndHashBytes($num) + { + $bytes = $this->stream->read($num); + hash_update($this->hashContext, $bytes); + return $bytes; + } + + private function decodeBooleanTrue() + { + return [true, 0]; + } + + private function decodeBooleanFalse() + { + return [false, 0]; + } + + private function uintToInt($val, $size) + { + $signedCap = pow(2, $size - 1); + if ($val > $signedCap) { + $val -= (2 * $signedCap); + } + return $val; + } + + private function decodeInt8() + { + $val = (int)unpack('C', $this->readAndHashBytes(1))[1]; + return [$this->uintToInt($val, 8), 1]; + } + + private function decodeUint8() + { + return [unpack('C', $this->readAndHashBytes(1))[1], 1]; + } + + private function decodeInt16() + { + $val = (int)unpack('n', $this->readAndHashBytes(2))[1]; + return [$this->uintToInt($val, 16), 2]; + } + + private function decodeUint16() + { + return [unpack('n', $this->readAndHashBytes(2))[1], 2]; + } + + private function decodeInt32() + { + $val = (int)unpack('N', $this->readAndHashBytes(4))[1]; + return [$this->uintToInt($val, 32), 4]; + } + + private function decodeUint32() + { + return [unpack('N', $this->readAndHashBytes(4))[1], 4]; + } + + private function decodeInt64() + { + $val = $this->unpackInt64($this->readAndHashBytes(8))[1]; + return [$this->uintToInt($val, 64), 8]; + } + + private function decodeUint64() + { + return [$this->unpackInt64($this->readAndHashBytes(8))[1], 8]; + } + + private function unpackInt64($bytes) + { + if (version_compare(PHP_VERSION, '5.6.3', '<')) { + $d = unpack('N2', $bytes); + return [1 => $d[1] << 32 | $d[2]]; + } + return unpack('J', $bytes); + } + + private function decodeBytes($lengthBytes=2) + { + if (!isset(self::$lengthFormatMap[$lengthBytes])) { + throw new ParserException('Undefined variable length format.'); + } + $f = self::$lengthFormatMap[$lengthBytes]; + list($len, $bytes) = $this->{$f}(); + return [$this->readAndHashBytes($len), $len + $bytes]; + } + + private function decodeString($lengthBytes=2) + { + if (!isset(self::$lengthFormatMap[$lengthBytes])) { + throw new ParserException('Undefined variable length format.'); + } + $f = self::$lengthFormatMap[$lengthBytes]; + list($len, $bytes) = $this->{$f}(); + return [$this->readAndHashBytes($len), $len + $bytes]; + } + + private function decodeTimestamp() + { + list($val, $bytes) = $this->decodeInt64(); + return [ + DateTimeResult::createFromFormat('U.u', $val / 1000), + $bytes + ]; + } + + private function decodeUuid() + { + $val = unpack('H32', $this->readAndHashBytes(16))[1]; + return [ + substr($val, 0, 8) . '-' + . substr($val, 8, 4) . '-' + . substr($val, 12, 4) . '-' + . substr($val, 16, 4) . '-' + . substr($val, 20, 12), + 16 + ]; + } +} diff --git a/lib/aws/Aws/Api/Parser/EventParsingIterator.php b/lib/aws/Aws/Api/Parser/EventParsingIterator.php new file mode 100644 index 0000000..8a6ef47 --- /dev/null +++ b/lib/aws/Aws/Api/Parser/EventParsingIterator.php @@ -0,0 +1,107 @@ +<?php + +namespace Aws\Api\Parser; + +use \Iterator; +use Aws\Exception\EventStreamDataException; +use Aws\Api\Parser\Exception\ParserException; +use Aws\Api\StructureShape; +use Psr\Http\Message\StreamInterface; + +/** + * @internal Implements a decoder for a binary encoded event stream that will + * decode, validate, and provide individual events from the stream. + */ +class EventParsingIterator implements Iterator +{ + /** @var StreamInterface */ + private $decodingIterator; + + /** @var StructureShape */ + private $shape; + + /** @var AbstractParser */ + private $parser; + + public function __construct( + StreamInterface $stream, + StructureShape $shape, + AbstractParser $parser + ) { + $this->decodingIterator = new DecodingEventStreamIterator($stream); + $this->shape = $shape; + $this->parser = $parser; + } + + public function current() + { + return $this->parseEvent($this->decodingIterator->current()); + } + + public function key() + { + return $this->decodingIterator->key(); + } + + public function next() + { + $this->decodingIterator->next(); + } + + public function rewind() + { + $this->decodingIterator->rewind(); + } + + public function valid() + { + return $this->decodingIterator->valid(); + } + + private function parseEvent(array $event) + { + if (!empty($event['headers'][':message-type'])) { + if ($event['headers'][':message-type'] === 'error') { + return $this->parseError($event); + } + if ($event['headers'][':message-type'] !== 'event') { + throw new ParserException('Failed to parse unknown message type.'); + } + } + + if (empty($event['headers'][':event-type'])) { + throw new ParserException('Failed to parse without event type.'); + } + $eventShape = $this->shape->getMember($event['headers'][':event-type']); + + $parsedEvent = []; + foreach ($eventShape['members'] as $shape => $details) { + if (!empty($details['eventpayload'])) { + $payloadShape = $eventShape->getMember($shape); + if ($payloadShape['type'] === 'blob') { + $parsedEvent[$shape] = $event['payload']; + } else { + $parsedEvent[$shape] = $this->parser->parseMemberFromStream( + $event['payload'], + $payloadShape, + null + ); + } + } else { + $parsedEvent[$shape] = $event['headers'][$shape]; + } + } + + return [ + $event['headers'][':event-type'] => $parsedEvent + ]; + } + + private function parseError(array $event) + { + throw new EventStreamDataException( + $event['headers'][':error-code'], + $event['headers'][':error-message'] + ); + } +} \ No newline at end of file diff --git a/lib/aws/Aws/Api/Parser/Exception/ParserException.php b/lib/aws/Aws/Api/Parser/Exception/ParserException.php new file mode 100644 index 0000000..4fbe779 --- /dev/null +++ b/lib/aws/Aws/Api/Parser/Exception/ParserException.php @@ -0,0 +1,31 @@ +<?php +namespace Aws\Api\Parser\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; +use Aws\ResponseContainerInterface; + +class ParserException extends \RuntimeException implements + MonitoringEventsInterface, + ResponseContainerInterface +{ + use HasMonitoringEventsTrait; + + private $response; + + public function __construct($message = '', $code = 0, $previous = null, array $context = []) + { + $this->response = isset($context['response']) ? $context['response'] : null; + parent::__construct($message, $code, $previous); + } + + /** + * Get the received HTTP response if any. + * + * @return ResponseInterface|null + */ + public function getResponse() + { + return $this->response; + } +} diff --git a/lib/aws/Aws/Api/Parser/JsonParser.php b/lib/aws/Aws/Api/Parser/JsonParser.php new file mode 100644 index 0000000..07d360a --- /dev/null +++ b/lib/aws/Aws/Api/Parser/JsonParser.php @@ -0,0 +1,62 @@ +<?php +namespace Aws\Api\Parser; + +use Aws\Api\DateTimeResult; +use Aws\Api\Shape; + +/** + * @internal Implements standard JSON parsing. + */ +class JsonParser +{ + public function parse(Shape $shape, $value) + { + if ($value === null) { + return $value; + } + + switch ($shape['type']) { + case 'structure': + $target = []; + foreach ($shape->getMembers() as $name => $member) { + $locationName = $member['locationName'] ?: $name; + if (isset($value[$locationName])) { + $target[$name] = $this->parse($member, $value[$locationName]); + } + } + 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': + if (!empty($shape['timestampFormat']) + && $shape['timestampFormat'] !== 'unixTimestamp') { + return new DateTimeResult($value); + } + // 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/Aws/Api/Parser/JsonRpcParser.php b/lib/aws/Aws/Api/Parser/JsonRpcParser.php new file mode 100644 index 0000000..75e8715 --- /dev/null +++ b/lib/aws/Aws/Api/Parser/JsonRpcParser.php @@ -0,0 +1,51 @@ +<?php +namespace Aws\Api\Parser; + +use Aws\Api\StructureShape; +use Aws\Api\Service; +use Aws\Result; +use Aws\CommandInterface; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\StreamInterface; + +/** + * @internal Implements JSON-RPC parsing (e.g., DynamoDB) + */ +class JsonRpcParser extends AbstractParser +{ + use PayloadParserTrait; + + /** + * @param Service $api Service description + * @param JsonParser $parser JSON body builder + */ + public function __construct(Service $api, JsonParser $parser = null) + { + parent::__construct($api); + $this->parser = $parser ?: new JsonParser(); + } + + public function __invoke( + CommandInterface $command, + ResponseInterface $response + ) { + $operation = $this->api->getOperation($command->getName()); + $result = null === $operation['output'] + ? null + : $this->parseMemberFromStream( + $response->getBody(), + $operation->getOutput(), + $response + ); + + return new Result($result ?: []); + } + + public function parseMemberFromStream( + StreamInterface $stream, + StructureShape $member, + $response + ) { + return $this->parser->parse($member, $this->parseJson($stream, $response)); + } +} diff --git a/lib/aws/Aws/Api/Parser/PayloadParserTrait.php b/lib/aws/Aws/Api/Parser/PayloadParserTrait.php new file mode 100644 index 0000000..f8083d8 --- /dev/null +++ b/lib/aws/Aws/Api/Parser/PayloadParserTrait.php @@ -0,0 +1,61 @@ +<?php +namespace Aws\Api\Parser; + +use Aws\Api\Parser\Exception\ParserException; +use Psr\Http\Message\ResponseInterface; + +trait PayloadParserTrait +{ + /** + * @param string $json + * + * @throws ParserException + * + * @return array + */ + private function parseJson($json, $response) + { + $jsonPayload = json_decode($json, true); + + if (JSON_ERROR_NONE !== json_last_error()) { + throw new ParserException( + 'Error parsing JSON: ' . json_last_error_msg(), + 0, + null, + ['response' => $response] + ); + } + + return $jsonPayload; + } + + /** + * @param string $xml + * + * @throws ParserException + * + * @return \SimpleXMLElement + */ + private function parseXml($xml, $response) + { + $priorSetting = libxml_use_internal_errors(true); + try { + libxml_clear_errors(); + $xmlPayload = new \SimpleXMLElement($xml); + if ($error = libxml_get_last_error()) { + throw new \RuntimeException($error->message); + } + } catch (\Exception $e) { + throw new ParserException( + "Error parsing XML: {$e->getMessage()}", + 0, + $e, + ['response' => $response] + ); + } finally { + libxml_use_internal_errors($priorSetting); + } + + return $xmlPayload; + } +} diff --git a/lib/aws/Aws/Api/Parser/QueryParser.php b/lib/aws/Aws/Api/Parser/QueryParser.php new file mode 100644 index 0000000..50e4e3a --- /dev/null +++ b/lib/aws/Aws/Api/Parser/QueryParser.php @@ -0,0 +1,60 @@ +<?php +namespace Aws\Api\Parser; + +use Aws\Api\Service; +use Aws\Api\StructureShape; +use Aws\Result; +use Aws\CommandInterface; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\StreamInterface; + +/** + * @internal Parses query (XML) responses (e.g., EC2, SQS, and many others) + */ +class QueryParser extends AbstractParser +{ + use PayloadParserTrait; + + /** @var bool */ + private $honorResultWrapper; + + /** + * @param Service $api Service description + * @param XmlParser $xmlParser Optional XML parser + * @param bool $honorResultWrapper Set to false to disable the peeling + * back of result wrappers from the + * output structure. + */ + public function __construct( + Service $api, + XmlParser $xmlParser = null, + $honorResultWrapper = true + ) { + parent::__construct($api); + $this->parser = $xmlParser ?: new XmlParser(); + $this->honorResultWrapper = $honorResultWrapper; + } + + public function __invoke( + CommandInterface $command, + ResponseInterface $response + ) { + $output = $this->api->getOperation($command->getName())->getOutput(); + $xml = $this->parseXml($response->getBody(), $response); + + if ($this->honorResultWrapper && $output['resultWrapper']) { + $xml = $xml->{$output['resultWrapper']}; + } + + return new Result($this->parser->parse($output, $xml)); + } + + public function parseMemberFromStream( + StreamInterface $stream, + StructureShape $member, + $response + ) { + $xml = $this->parseXml($stream, $response); + return $this->parser->parse($member, $xml); + } +} diff --git a/lib/aws/Aws/Api/Parser/RestJsonParser.php b/lib/aws/Aws/Api/Parser/RestJsonParser.php new file mode 100644 index 0000000..76d8098 --- /dev/null +++ b/lib/aws/Aws/Api/Parser/RestJsonParser.php @@ -0,0 +1,49 @@ +<?php +namespace Aws\Api\Parser; + +use Aws\Api\Service; +use Aws\Api\StructureShape; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\StreamInterface; + +/** + * @internal Implements REST-JSON parsing (e.g., Glacier, Elastic Transcoder) + */ +class RestJsonParser extends AbstractRestParser +{ + use PayloadParserTrait; + + /** + * @param Service $api Service description + * @param JsonParser $parser JSON body builder + */ + public function __construct(Service $api, JsonParser $parser = null) + { + parent::__construct($api); + $this->parser = $parser ?: new JsonParser(); + } + + protected function payload( + ResponseInterface $response, + StructureShape $member, + array &$result + ) { + $jsonBody = $this->parseJson($response->getBody(), $response); + + if ($jsonBody) { + $result += $this->parser->parse($member, $jsonBody); + } + } + + public function parseMemberFromStream( + StreamInterface $stream, + StructureShape $member, + $response + ) { + $jsonBody = $this->parseJson($stream, $response); + if ($jsonBody) { + return $this->parser->parse($member, $jsonBody); + } + return []; + } +} diff --git a/lib/aws/Aws/Api/Parser/RestXmlParser.php b/lib/aws/Aws/Api/Parser/RestXmlParser.php new file mode 100644 index 0000000..d04429f --- /dev/null +++ b/lib/aws/Aws/Api/Parser/RestXmlParser.php @@ -0,0 +1,42 @@ +<?php +namespace Aws\Api\Parser; + +use Aws\Api\StructureShape; +use Aws\Api\Service; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\StreamInterface; + +/** + * @internal Implements REST-XML parsing (e.g., S3, CloudFront, etc...) + */ +class RestXmlParser extends AbstractRestParser +{ + use PayloadParserTrait; + + /** + * @param Service $api Service description + * @param XmlParser $parser XML body parser + */ + public function __construct(Service $api, XmlParser $parser = null) + { + parent::__construct($api); + $this->parser = $parser ?: new XmlParser(); + } + + protected function payload( + ResponseInterface $response, + StructureShape $member, + array &$result + ) { + $result += $this->parseMemberFromStream($response->getBody(), $member, $response); + } + + public function parseMemberFromStream( + StreamInterface $stream, + StructureShape $member, + $response + ) { + $xml = $this->parseXml($stream, $response); + return $this->parser->parse($member, $xml); + } +} diff --git a/lib/aws/Aws/Api/Parser/XmlParser.php b/lib/aws/Aws/Api/Parser/XmlParser.php new file mode 100644 index 0000000..079f3aa --- /dev/null +++ b/lib/aws/Aws/Api/Parser/XmlParser.php @@ -0,0 +1,138 @@ +<?php +namespace Aws\Api\Parser; + +use Aws\Api\DateTimeResult; +use Aws\Api\ListShape; +use Aws\Api\MapShape; +use Aws\Api\Shape; +use Aws\Api\StructureShape; + +/** + * @internal Implements standard XML parsing for REST-XML and Query protocols. + */ +class XmlParser +{ + public function parse(StructureShape $shape, \SimpleXMLElement $value) + { + return $this->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 (null !== $shape['locationName']) { + return $shape['locationName']; + } + + if ($shape instanceof ListShape && $shape['flattened']) { + return $shape->getMember()['locationName'] ?: $name; + } + + return $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'; + } + + private function parse_timestamp(Shape $shape, $value) + { + if (!empty($shape['timestampFormat']) + && $shape['timestampFormat'] === 'unixTimestamp') { + return DateTimeResult::fromEpoch((string) $value); + } + return new DateTimeResult($value); + } +} diff --git a/lib/aws/Aws/Api/Serializer/Ec2ParamBuilder.php b/lib/aws/Aws/Api/Serializer/Ec2ParamBuilder.php new file mode 100644 index 0000000..6dd728d --- /dev/null +++ b/lib/aws/Aws/Api/Serializer/Ec2ParamBuilder.php @@ -0,0 +1,40 @@ +<?php +namespace Aws\Api\Serializer; + +use Aws\Api\Shape; +use Aws\Api\ListShape; + +/** + * @internal + */ +class Ec2ParamBuilder extends QueryParamBuilder +{ + protected function queryName(Shape $shape, $default = null) + { + return ($shape['queryName'] + ?: ucfirst($shape['locationName'])) + ?: $default; + } + + protected function isFlat(Shape $shape) + { + return false; + } + + protected function format_list( + ListShape $shape, + array $value, + $prefix, + &$query + ) { + // Handle empty list serialization + if (!$value) { + $query[$prefix] = false; + } else { + $items = $shape->getMember(); + foreach ($value as $k => $v) { + $this->format($items, $v, $prefix . '.' . ($k + 1), $query); + } + } + } +} diff --git a/lib/aws/Aws/Api/Serializer/JsonBody.php b/lib/aws/Aws/Api/Serializer/JsonBody.php new file mode 100644 index 0000000..e6aafb9 --- /dev/null +++ b/lib/aws/Aws/Api/Serializer/JsonBody.php @@ -0,0 +1,96 @@ +<?php +namespace Aws\Api\Serializer; + +use Aws\Api\Service; +use Aws\Api\Shape; +use Aws\Api\TimestampShape; + +/** + * Formats the JSON body of a JSON-REST or JSON-RPC operation. + * @internal + */ +class JsonBody +{ + private $api; + + public function __construct(Service $api) + { + $this->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)) { + $valueShape = $shape->getMember($k); + $data[$valueShape['locationName'] ?: $k] + = $this->format($valueShape, $v); + } + } + if (empty($data)) { + return new \stdClass; + } + return $data; + + case 'list': + $items = $shape->getMember(); + foreach ($value as $k => $v) { + $value[$k] = $this->format($items, $v); + } + return $value; + + case 'map': + if (empty($value)) { + return new \stdClass; + } + $values = $shape->getValue(); + foreach ($value as $k => $v) { + $value[$k] = $this->format($values, $v); + } + return $value; + + case 'blob': + return base64_encode($value); + + case 'timestamp': + $timestampFormat = !empty($shape['timestampFormat']) + ? $shape['timestampFormat'] + : 'unixTimestamp'; + return TimestampShape::format($value, $timestampFormat); + + default: + return $value; + } + } +} diff --git a/lib/aws/Aws/Api/Serializer/JsonRpcSerializer.php b/lib/aws/Aws/Api/Serializer/JsonRpcSerializer.php new file mode 100644 index 0000000..7f6f5ab --- /dev/null +++ b/lib/aws/Aws/Api/Serializer/JsonRpcSerializer.php @@ -0,0 +1,69 @@ +<?php +namespace Aws\Api\Serializer; + +use Aws\Api\Service; +use Aws\CommandInterface; +use GuzzleHttp\Psr7\Request; +use Psr\Http\Message\RequestInterface; + +/** + * Prepares a JSON-RPC request for transfer. + * @internal + */ +class JsonRpcSerializer +{ + /** @var JsonBody */ + private $jsonFormatter; + + /** @var string */ + private $endpoint; + + /** @var Service */ + private $api; + + /** @var string */ + private $contentType; + + /** + * @param Service $api Service description + * @param string $endpoint Endpoint to connect to + * @param JsonBody $jsonFormatter Optional JSON formatter to use + */ + public function __construct( + Service $api, + $endpoint, + JsonBody $jsonFormatter = null + ) { + $this->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/Aws/Api/Serializer/QueryParamBuilder.php b/lib/aws/Aws/Api/Serializer/QueryParamBuilder.php new file mode 100644 index 0000000..3d96334 --- /dev/null +++ b/lib/aws/Aws/Api/Serializer/QueryParamBuilder.php @@ -0,0 +1,157 @@ +<?php +namespace Aws\Api\Serializer; + +use Aws\Api\StructureShape; +use Aws\Api\ListShape; +use Aws\Api\MapShape; +use Aws\Api\Shape; +use Aws\Api\TimestampShape; + +/** + * @internal + */ +class QueryParamBuilder +{ + private $methods; + + protected function queryName(Shape $shape, $default = null) + { + if (null !== $shape['queryName']) { + return $shape['queryName']; + } + + if (null !== $shape['locationName']) { + return $shape['locationName']; + } + + if ($this->isFlat($shape) && !empty($shape['member']['locationName'])) { + return $shape['member']['locationName']; + } + + return $default; + } + + protected function isFlat(Shape $shape) + { + return $shape['flattened'] === true; + } + + public function __invoke(StructureShape $shape, array $params) + { + if (!$this->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)) { + $locationName = $shape->getMember()['locationName'] ?: 'member'; + $prefix .= ".$locationName"; + } 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 + ) { + $timestampFormat = !empty($shape['timestampFormat']) + ? $shape['timestampFormat'] + : 'iso8601'; + $query[$prefix] = TimestampShape::format($value, $timestampFormat); + } + + protected function format_boolean(Shape $shape, $value, $prefix, array &$query) + { + $query[$prefix] = ($value) ? 'true' : 'false'; + } +} diff --git a/lib/aws/Aws/Api/Serializer/QuerySerializer.php b/lib/aws/Aws/Api/Serializer/QuerySerializer.php new file mode 100644 index 0000000..107e68f --- /dev/null +++ b/lib/aws/Aws/Api/Serializer/QuerySerializer.php @@ -0,0 +1,69 @@ +<?php +namespace Aws\Api\Serializer; + +use Aws\Api\Service; +use Aws\CommandInterface; +use GuzzleHttp\Psr7\Request; +use Psr\Http\Message\RequestInterface; + +/** + * Serializes a query protocol request. + * @internal + */ +class QuerySerializer +{ + private $endpoint; + private $api; + private $paramBuilder; + + public function __construct( + Service $api, + $endpoint, + callable $paramBuilder = null + ) { + $this->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/Aws/Api/Serializer/RestJsonSerializer.php b/lib/aws/Aws/Api/Serializer/RestJsonSerializer.php new file mode 100644 index 0000000..b59daa3 --- /dev/null +++ b/lib/aws/Aws/Api/Serializer/RestJsonSerializer.php @@ -0,0 +1,39 @@ +<?php +namespace Aws\Api\Serializer; + +use Aws\Api\Service; +use Aws\Api\StructureShape; + +/** + * Serializes requests for the REST-JSON protocol. + * @internal + */ +class RestJsonSerializer extends RestSerializer +{ + /** @var JsonBody */ + private $jsonFormatter; + + /** @var string */ + private $contentType; + + /** + * @param Service $api Service API description + * @param string $endpoint Endpoint to connect to + * @param JsonBody $jsonFormatter Optional JSON formatter to use + */ + public function __construct( + Service $api, + $endpoint, + JsonBody $jsonFormatter = null + ) { + parent::__construct($api, $endpoint); + $this->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/Aws/Api/Serializer/RestSerializer.php b/lib/aws/Aws/Api/Serializer/RestSerializer.php new file mode 100644 index 0000000..3dbb266 --- /dev/null +++ b/lib/aws/Aws/Api/Serializer/RestSerializer.php @@ -0,0 +1,219 @@ +<?php +namespace Aws\Api\Serializer; + +use Aws\Api\MapShape; +use Aws\Api\Service; +use Aws\Api\Operation; +use Aws\Api\Shape; +use Aws\Api\StructureShape; +use Aws\Api\TimestampShape; +use Aws\CommandInterface; +use GuzzleHttp\Psr7; +use GuzzleHttp\Psr7\Uri; +use GuzzleHttp\Psr7\UriResolver; +use Psr\Http\Message\RequestInterface; + +/** + * Serializes HTTP locations like header, uri, payload, etc... + * @internal + */ +abstract class RestSerializer +{ + /** @var Service */ + private $api; + + /** @var Psr7\Uri */ + private $endpoint; + + /** + * @param Service $api Service API description + * @param string $endpoint Endpoint to connect to + */ + public function __construct(Service $api, $endpoint) + { + $this->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') { + $timestampFormat = !empty($member['timestampFormat']) + ? $member['timestampFormat'] + : 'rfc822'; + $value = TimestampShape::format($value, $timestampFormat); + } + if ($member['jsonvalue']) { + $value = json_encode($value); + if (empty($value) && JSON_ERROR_NONE !== json_last_error()) { + throw new \InvalidArgumentException('Unable to encode the provided value' + . ' with \'json_encode\'. ' . json_last_error_msg()); + } + + $value = base64_encode($value); + } + + $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 ($member instanceof MapShape) { + $opts['query'] = isset($opts['query']) && is_array($opts['query']) + ? $opts['query'] + $value + : $value; + } elseif ($value !== null) { + $type = $member->getType(); + if ($type === 'boolean') { + $value = $value ? 'true' : 'false'; + } elseif ($type === 'timestamp') { + $timestampFormat = !empty($member['timestampFormat']) + ? $member['timestampFormat'] + : 'iso8601'; + $value = TimestampShape::format($value, $timestampFormat); + } + + $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 ''; + } + + if ($isGreedy) { + return str_replace('%2F', '/', rawurlencode($varspecs[$k])); + } + + 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 UriResolver::resolve($this->endpoint, new Uri($relative)); + } +} diff --git a/lib/aws/Aws/Api/Serializer/RestXmlSerializer.php b/lib/aws/Aws/Api/Serializer/RestXmlSerializer.php new file mode 100644 index 0000000..b0d6a29 --- /dev/null +++ b/lib/aws/Aws/Api/Serializer/RestXmlSerializer.php @@ -0,0 +1,34 @@ +<?php +namespace Aws\Api\Serializer; + +use Aws\Api\StructureShape; +use Aws\Api\Service; + +/** + * @internal + */ +class RestXmlSerializer extends RestSerializer +{ + /** @var XmlBody */ + private $xmlBody; + + /** + * @param Service $api Service API description + * @param string $endpoint Endpoint to connect to + * @param XmlBody $xmlBody Optional XML formatter to use + */ + public function __construct( + Service $api, + $endpoint, + XmlBody $xmlBody = null + ) { + parent::__construct($api, $endpoint); + $this->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/Aws/Api/Serializer/XmlBody.php b/lib/aws/Aws/Api/Serializer/XmlBody.php new file mode 100644 index 0000000..a7d7659 --- /dev/null +++ b/lib/aws/Aws/Api/Serializer/XmlBody.php @@ -0,0 +1,220 @@ +<?php +namespace Aws\Api\Serializer; + +use Aws\Api\MapShape; +use Aws\Api\Service; +use Aws\Api\Shape; +use Aws\Api\StructureShape; +use Aws\Api\ListShape; +use Aws\Api\TimestampShape; +use XMLWriter; + +/** + * @internal Formats the XML body of a REST-XML services. + */ +class XmlBody +{ + /** @var \Aws\Api\Service */ + private $api; + + /** + * @param Service $api API being used to create the XML body. + */ + public function __construct(Service $api) + { + $this->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'] ?: $shape['name'], $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 ($this->getStructureMembers($shape, $value) as $k => $definition) { + $this->format( + $definition['member'], + $definition['member']['locationName'] ?: $k, + $definition['value'], + $xml + ); + } + + $xml->endElement(); + } + + private function getStructureMembers(StructureShape $shape, array $value) + { + $members = []; + + foreach ($value as $k => $v) { + if ($v !== null && $shape->hasMember($k)) { + $definition = [ + 'member' => $shape->getMember($k), + 'value' => $v, + ]; + + if ($definition['member']['xmlAttribute']) { + // array_unshift_associative + $members = [$k => $definition] + $members; + } else { + $members[$k] = $definition; + } + } + } + + return $members; + } + + 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_map( + MapShape $shape, + $name, + array $value, + XMLWriter $xml + ) { + $xmlEntry = $shape['flattened'] ? $shape['locationName'] : 'entry'; + $xmlKey = $shape->getKey()['locationName'] ?: 'key'; + $xmlValue = $shape->getValue()['locationName'] ?: 'value'; + + $this->startElement($shape, $name, $xml); + + foreach ($value as $key => $v) { + $this->startElement($shape, $xmlEntry, $xml); + $this->format($shape->getKey(), $xmlKey, $key, $xml); + $this->format($shape->getValue(), $xmlValue, $v, $xml); + $xml->endElement(); + } + + $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); + $timestampFormat = !empty($shape['timestampFormat']) + ? $shape['timestampFormat'] + : 'iso8601'; + $xml->writeRaw(TimestampShape::format($value, $timestampFormat)); + $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/Aws/Api/Service.php b/lib/aws/Aws/Api/Service.php new file mode 100644 index 0000000..d6281a9 --- /dev/null +++ b/lib/aws/Aws/Api/Service.php @@ -0,0 +1,448 @@ +<?php +namespace Aws\Api; + +use Aws\Api\Serializer\QuerySerializer; +use Aws\Api\Serializer\Ec2ParamBuilder; +use Aws\Api\Parser\QueryParser; + +/** + * Represents a web service API model. + */ +class Service extends AbstractModel +{ + /** @var callable */ + private $apiProvider; + + /** @var string */ + private $serviceName; + + /** @var string */ + private $apiVersion; + + /** @var Operation[] */ + private $operations = []; + + /** @var array */ + private $paginators = null; + + /** @var array */ + private $waiters = null; + + /** + * @param array $definition + * @param callable $provider + * + * @internal param array $definition Service description + */ + public function __construct(array $definition, callable $provider) + { + static $defaults = [ + 'operations' => [], + 'shapes' => [], + 'metadata' => [] + ], $defaultMeta = [ + 'apiVersion' => null, + 'serviceFullName' => null, + 'serviceId' => null, + 'endpointPrefix' => null, + 'signingName' => null, + 'signatureVersion' => null, + 'protocol' => null, + 'uid' => null + ]; + + $definition += $defaults; + $definition['metadata'] += $defaultMeta; + $this->definition = $definition; + $this->apiProvider = $provider; + parent::__construct($definition, new ShapeMap($definition['shapes'])); + + if (isset($definition['metadata']['serviceIdentifier'])) { + $this->serviceName = $this->getServiceName(); + } else { + $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); + } + + if ($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); + } + + if ($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 service id + * + * @return string + */ + public function getServiceId() + { + return $this->definition['metadata']['serviceId']; + } + + /** + * 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 service name. + * + * @return string + */ + public function getServiceName() + { + return $this->definition['metadata']['serviceIdentifier']; + } + + /** + * 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']; + } + + /** + * Get the uid string used by the service + * + * @return string + */ + public function getUid() + { + return $this->definition['metadata']['uid']; + } + + /** + * 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']; + } + + if (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/Aws/Api/Shape.php b/lib/aws/Aws/Api/Shape.php new file mode 100644 index 0000000..7734180 --- /dev/null +++ b/lib/aws/Aws/Api/Shape.php @@ -0,0 +1,69 @@ +<?php +namespace Aws\Api; + +/** + * Base class representing a modeled shape. + */ +class Shape extends AbstractModel +{ + /** + * Get a concrete shape for the given definition. + * + * @param array $definition + * @param ShapeMap $shapeMap + * + * @return mixed + * @throws \RuntimeException if the type is invalid + */ + public static function create(array $definition, ShapeMap $shapeMap) + { + static $map = [ + 'structure' => '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/Aws/Api/ShapeMap.php b/lib/aws/Aws/Api/ShapeMap.php new file mode 100644 index 0000000..18ef23a --- /dev/null +++ b/lib/aws/Aws/Api/ShapeMap.php @@ -0,0 +1,66 @@ +<?php +namespace Aws\Api; + +/** + * Builds shape based on shape references. + */ +class ShapeMap +{ + /** @var array */ + private $definitions; + + /** @var Shape[] */ + private $simple; + + /** + * @param array $shapeModels Associative array of shape definitions. + */ + public function __construct(array $shapeModels) + { + $this->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/Aws/Api/StructureShape.php b/lib/aws/Aws/Api/StructureShape.php new file mode 100644 index 0000000..a287935 --- /dev/null +++ b/lib/aws/Aws/Api/StructureShape.php @@ -0,0 +1,79 @@ +<?php +namespace Aws\Api; + +/** + * Represents a structure shape and resolve member shape references. + */ +class StructureShape extends Shape +{ + /** + * @var Shape[] + */ + private $members; + + public function __construct(array $definition, ShapeMap $shapeMap) + { + $definition['type'] = 'structure'; + + if (!isset($definition['members'])) { + $definition['members'] = []; + } + + parent::__construct($definition, $shapeMap); + } + + /** + * Gets a list of all members + * + * @return Shape[] + */ + public function getMembers() + { + if (empty($this->members)) { + $this->generateMembersHash(); + } + + return $this->members; + } + + /** + * 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) + { + $members = $this->getMembers(); + + if (!isset($members[$name])) { + throw new \InvalidArgumentException('Unknown member ' . $name); + } + + return $members[$name]; + } + + + private function generateMembersHash() + { + $this->members = []; + + foreach ($this->definition['members'] as $name => $definition) { + $this->members[$name] = $this->shapeFor($definition); + } + } +} diff --git a/lib/aws/Aws/Api/TimestampShape.php b/lib/aws/Aws/Api/TimestampShape.php new file mode 100644 index 0000000..7ef2646 --- /dev/null +++ b/lib/aws/Aws/Api/TimestampShape.php @@ -0,0 +1,48 @@ +<?php +namespace Aws\Api; + +/** + * Represents a timestamp shape. + */ +class TimestampShape extends Shape +{ + public function __construct(array $definition, ShapeMap $shapeMap) + { + $definition['type'] = 'timestamp'; + parent::__construct($definition, $shapeMap); + } + + /** + * Formats a timestamp value for a service. + * + * @param mixed $value Value to format + * @param string $format Format used to serialize the value + * + * @return int|string + * @throws \UnexpectedValueException if the format is unknown. + * @throws \InvalidArgumentException if the value is an unsupported type. + */ + public static function format($value, $format) + { + if ($value instanceof \DateTime) { + $value = $value->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/Aws/Api/Validator.php b/lib/aws/Aws/Api/Validator.php new file mode 100644 index 0000000..a137a6c --- /dev/null +++ b/lib/aws/Aws/Api/Validator.php @@ -0,0 +1,286 @@ +<?php +namespace Aws\Api; + +use Aws; + +/** + * Validates a schema against a hash of input. + */ +class Validator +{ + private $path = []; + private $errors = []; + private $constraints = []; + + private static $defaultConstraints = [ + 'required' => true, + 'min' => true, + 'max' => false, + 'pattern' => false + ]; + + /** + * @param array $constraints Associative array of constraints to enforce. + * Accepts the following keys: "required", "min", + * "max", and "pattern". If a key is not + * provided, the constraint will assume false. + */ + public function __construct(array $constraints = null) + { + static $assumedFalseValues = [ + 'required' => false, + 'min' => false, + 'max' => false, + 'pattern' => false + ]; + $this->constraints = empty($constraints) + ? self::$defaultConstraints + : $constraints + $assumedFalseValues; + } + + /** + * Validates the given input against the schema. + * + * @param string $name Operation name + * @param Shape $shape Shape to validate + * @param array $input Input to validate + * + * @throws \InvalidArgumentException if the input is invalid. + */ + public function validate($name, Shape $shape, array $input) + { + $this->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 ($this->constraints['required'] && $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; + } + + $this->validateRange($shape, count($value), "list element count"); + + $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)); + return; + } + + $this->validateRange($shape, $value, "numeric 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 ($shape['jsonvalue']) { + if (!self::canJsonEncode($value)) { + $this->addError('must be a value encodable with \'json_encode\'.' + . ' Found ' . Aws\describe_type($value)); + } + return; + } + + if (!$this->checkCanString($value)) { + $this->addError('must be a string or an object that implements ' + . '__toString(). Found ' . Aws\describe_type($value)); + return; + } + + $this->validateRange($shape, strlen($value), "string length"); + + if ($this->constraints['pattern']) { + $pattern = $shape['pattern']; + if ($pattern && !preg_match("/$pattern/", $value)) { + $this->addError("Pattern /$pattern/ failed to match '$value'"); + } + } + } + + private function validateRange(Shape $shape, $length, $descriptor) + { + if ($this->constraints['min']) { + $min = $shape['min']; + if ($min && $length < $min) { + $this->addError("expected $descriptor to be >= $min, but " + . "found $descriptor of $length"); + } + } + + if ($this->constraints['max']) { + $max = $shape['max']; + if ($max && $length > $max) { + $this->addError("expected $descriptor to be <= $max, but " + . "found $descriptor of $length"); + } + } + } + + 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($value, '__toString')); + } + + private function checkAssociativeArray($value) + { + $isAssociative = false; + + if (is_array($value)) { + $expectedIndex = 0; + $key = key($value); + + do { + $isAssociative = $key !== $expectedIndex++; + next($value); + $key = key($value); + } while (!$isAssociative && null !== $key); + } + + if (!$isAssociative) { + $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; + } + + private function canJsonEncode($data) + { + return !is_resource($data); + } +} diff --git a/lib/aws/Aws/ApiGateway/ApiGatewayClient.php b/lib/aws/Aws/ApiGateway/ApiGatewayClient.php new file mode 100644 index 0000000..6162b6b --- /dev/null +++ b/lib/aws/Aws/ApiGateway/ApiGatewayClient.php @@ -0,0 +1,272 @@ +<?php +namespace Aws\ApiGateway; + +use Aws\AwsClient; +use Aws\CommandInterface; +use Psr\Http\Message\RequestInterface; + +/** + * This client is used to interact with the **AWS API Gateway** service. + * + * @method \Aws\Result createApiKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise createApiKeyAsync(array $args = []) + * @method \Aws\Result createAuthorizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAuthorizerAsync(array $args = []) + * @method \Aws\Result createBasePathMapping(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBasePathMappingAsync(array $args = []) + * @method \Aws\Result createDeployment(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDeploymentAsync(array $args = []) + * @method \Aws\Result createDocumentationPart(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDocumentationPartAsync(array $args = []) + * @method \Aws\Result createDocumentationVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDocumentationVersionAsync(array $args = []) + * @method \Aws\Result createDomainName(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDomainNameAsync(array $args = []) + * @method \Aws\Result createModel(array $args = []) + * @method \GuzzleHttp\Promise\Promise createModelAsync(array $args = []) + * @method \Aws\Result createRequestValidator(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRequestValidatorAsync(array $args = []) + * @method \Aws\Result createResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise createResourceAsync(array $args = []) + * @method \Aws\Result createRestApi(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRestApiAsync(array $args = []) + * @method \Aws\Result createStage(array $args = []) + * @method \GuzzleHttp\Promise\Promise createStageAsync(array $args = []) + * @method \Aws\Result createUsagePlan(array $args = []) + * @method \GuzzleHttp\Promise\Promise createUsagePlanAsync(array $args = []) + * @method \Aws\Result createUsagePlanKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise createUsagePlanKeyAsync(array $args = []) + * @method \Aws\Result createVpcLink(array $args = []) + * @method \GuzzleHttp\Promise\Promise createVpcLinkAsync(array $args = []) + * @method \Aws\Result deleteApiKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApiKeyAsync(array $args = []) + * @method \Aws\Result deleteAuthorizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAuthorizerAsync(array $args = []) + * @method \Aws\Result deleteBasePathMapping(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBasePathMappingAsync(array $args = []) + * @method \Aws\Result deleteClientCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteClientCertificateAsync(array $args = []) + * @method \Aws\Result deleteDeployment(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDeploymentAsync(array $args = []) + * @method \Aws\Result deleteDocumentationPart(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDocumentationPartAsync(array $args = []) + * @method \Aws\Result deleteDocumentationVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDocumentationVersionAsync(array $args = []) + * @method \Aws\Result deleteDomainName(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDomainNameAsync(array $args = []) + * @method \Aws\Result deleteGatewayResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteGatewayResponseAsync(array $args = []) + * @method \Aws\Result deleteIntegration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteIntegrationAsync(array $args = []) + * @method \Aws\Result deleteIntegrationResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteIntegrationResponseAsync(array $args = []) + * @method \Aws\Result deleteMethod(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteMethodAsync(array $args = []) + * @method \Aws\Result deleteMethodResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteMethodResponseAsync(array $args = []) + * @method \Aws\Result deleteModel(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteModelAsync(array $args = []) + * @method \Aws\Result deleteRequestValidator(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRequestValidatorAsync(array $args = []) + * @method \Aws\Result deleteResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteResourceAsync(array $args = []) + * @method \Aws\Result deleteRestApi(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRestApiAsync(array $args = []) + * @method \Aws\Result deleteStage(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteStageAsync(array $args = []) + * @method \Aws\Result deleteUsagePlan(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUsagePlanAsync(array $args = []) + * @method \Aws\Result deleteUsagePlanKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUsagePlanKeyAsync(array $args = []) + * @method \Aws\Result deleteVpcLink(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVpcLinkAsync(array $args = []) + * @method \Aws\Result flushStageAuthorizersCache(array $args = []) + * @method \GuzzleHttp\Promise\Promise flushStageAuthorizersCacheAsync(array $args = []) + * @method \Aws\Result flushStageCache(array $args = []) + * @method \GuzzleHttp\Promise\Promise flushStageCacheAsync(array $args = []) + * @method \Aws\Result generateClientCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise generateClientCertificateAsync(array $args = []) + * @method \Aws\Result getAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAccountAsync(array $args = []) + * @method \Aws\Result getApiKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise getApiKeyAsync(array $args = []) + * @method \Aws\Result getApiKeys(array $args = []) + * @method \GuzzleHttp\Promise\Promise getApiKeysAsync(array $args = []) + * @method \Aws\Result getAuthorizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAuthorizerAsync(array $args = []) + * @method \Aws\Result getAuthorizers(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAuthorizersAsync(array $args = []) + * @method \Aws\Result getBasePathMapping(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBasePathMappingAsync(array $args = []) + * @method \Aws\Result getBasePathMappings(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBasePathMappingsAsync(array $args = []) + * @method \Aws\Result getClientCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise getClientCertificateAsync(array $args = []) + * @method \Aws\Result getClientCertificates(array $args = []) + * @method \GuzzleHttp\Promise\Promise getClientCertificatesAsync(array $args = []) + * @method \Aws\Result getDeployment(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDeploymentAsync(array $args = []) + * @method \Aws\Result getDeployments(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDeploymentsAsync(array $args = []) + * @method \Aws\Result getDocumentationPart(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDocumentationPartAsync(array $args = []) + * @method \Aws\Result getDocumentationParts(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDocumentationPartsAsync(array $args = []) + * @method \Aws\Result getDocumentationVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDocumentationVersionAsync(array $args = []) + * @method \Aws\Result getDocumentationVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDocumentationVersionsAsync(array $args = []) + * @method \Aws\Result getDomainName(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDomainNameAsync(array $args = []) + * @method \Aws\Result getDomainNames(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDomainNamesAsync(array $args = []) + * @method \Aws\Result getExport(array $args = []) + * @method \GuzzleHttp\Promise\Promise getExportAsync(array $args = []) + * @method \Aws\Result getGatewayResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise getGatewayResponseAsync(array $args = []) + * @method \Aws\Result getGatewayResponses(array $args = []) + * @method \GuzzleHttp\Promise\Promise getGatewayResponsesAsync(array $args = []) + * @method \Aws\Result getIntegration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIntegrationAsync(array $args = []) + * @method \Aws\Result getIntegrationResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIntegrationResponseAsync(array $args = []) + * @method \Aws\Result getMethod(array $args = []) + * @method \GuzzleHttp\Promise\Promise getMethodAsync(array $args = []) + * @method \Aws\Result getMethodResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise getMethodResponseAsync(array $args = []) + * @method \Aws\Result getModel(array $args = []) + * @method \GuzzleHttp\Promise\Promise getModelAsync(array $args = []) + * @method \Aws\Result getModelTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise getModelTemplateAsync(array $args = []) + * @method \Aws\Result getModels(array $args = []) + * @method \GuzzleHttp\Promise\Promise getModelsAsync(array $args = []) + * @method \Aws\Result getRequestValidator(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRequestValidatorAsync(array $args = []) + * @method \Aws\Result getRequestValidators(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRequestValidatorsAsync(array $args = []) + * @method \Aws\Result getResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise getResourceAsync(array $args = []) + * @method \Aws\Result getResources(array $args = []) + * @method \GuzzleHttp\Promise\Promise getResourcesAsync(array $args = []) + * @method \Aws\Result getRestApi(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRestApiAsync(array $args = []) + * @method \Aws\Result getRestApis(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRestApisAsync(array $args = []) + * @method \Aws\Result getSdk(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSdkAsync(array $args = []) + * @method \Aws\Result getSdkType(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSdkTypeAsync(array $args = []) + * @method \Aws\Result getSdkTypes(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSdkTypesAsync(array $args = []) + * @method \Aws\Result getStage(array $args = []) + * @method \GuzzleHttp\Promise\Promise getStageAsync(array $args = []) + * @method \Aws\Result getStages(array $args = []) + * @method \GuzzleHttp\Promise\Promise getStagesAsync(array $args = []) + * @method \Aws\Result getTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTagsAsync(array $args = []) + * @method \Aws\Result getUsage(array $args = []) + * @method \GuzzleHttp\Promise\Promise getUsageAsync(array $args = []) + * @method \Aws\Result getUsagePlan(array $args = []) + * @method \GuzzleHttp\Promise\Promise getUsagePlanAsync(array $args = []) + * @method \Aws\Result getUsagePlanKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise getUsagePlanKeyAsync(array $args = []) + * @method \Aws\Result getUsagePlanKeys(array $args = []) + * @method \GuzzleHttp\Promise\Promise getUsagePlanKeysAsync(array $args = []) + * @method \Aws\Result getUsagePlans(array $args = []) + * @method \GuzzleHttp\Promise\Promise getUsagePlansAsync(array $args = []) + * @method \Aws\Result getVpcLink(array $args = []) + * @method \GuzzleHttp\Promise\Promise getVpcLinkAsync(array $args = []) + * @method \Aws\Result getVpcLinks(array $args = []) + * @method \GuzzleHttp\Promise\Promise getVpcLinksAsync(array $args = []) + * @method \Aws\Result importApiKeys(array $args = []) + * @method \GuzzleHttp\Promise\Promise importApiKeysAsync(array $args = []) + * @method \Aws\Result importDocumentationParts(array $args = []) + * @method \GuzzleHttp\Promise\Promise importDocumentationPartsAsync(array $args = []) + * @method \Aws\Result importRestApi(array $args = []) + * @method \GuzzleHttp\Promise\Promise importRestApiAsync(array $args = []) + * @method \Aws\Result putGatewayResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise putGatewayResponseAsync(array $args = []) + * @method \Aws\Result putIntegration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putIntegrationAsync(array $args = []) + * @method \Aws\Result putIntegrationResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise putIntegrationResponseAsync(array $args = []) + * @method \Aws\Result putMethod(array $args = []) + * @method \GuzzleHttp\Promise\Promise putMethodAsync(array $args = []) + * @method \Aws\Result putMethodResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise putMethodResponseAsync(array $args = []) + * @method \Aws\Result putRestApi(array $args = []) + * @method \GuzzleHttp\Promise\Promise putRestApiAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result testInvokeAuthorizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise testInvokeAuthorizerAsync(array $args = []) + * @method \Aws\Result testInvokeMethod(array $args = []) + * @method \GuzzleHttp\Promise\Promise testInvokeMethodAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAccountAsync(array $args = []) + * @method \Aws\Result updateApiKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateApiKeyAsync(array $args = []) + * @method \Aws\Result updateAuthorizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAuthorizerAsync(array $args = []) + * @method \Aws\Result updateBasePathMapping(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateBasePathMappingAsync(array $args = []) + * @method \Aws\Result updateClientCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateClientCertificateAsync(array $args = []) + * @method \Aws\Result updateDeployment(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDeploymentAsync(array $args = []) + * @method \Aws\Result updateDocumentationPart(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDocumentationPartAsync(array $args = []) + * @method \Aws\Result updateDocumentationVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDocumentationVersionAsync(array $args = []) + * @method \Aws\Result updateDomainName(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDomainNameAsync(array $args = []) + * @method \Aws\Result updateGatewayResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateGatewayResponseAsync(array $args = []) + * @method \Aws\Result updateIntegration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateIntegrationAsync(array $args = []) + * @method \Aws\Result updateIntegrationResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateIntegrationResponseAsync(array $args = []) + * @method \Aws\Result updateMethod(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateMethodAsync(array $args = []) + * @method \Aws\Result updateMethodResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateMethodResponseAsync(array $args = []) + * @method \Aws\Result updateModel(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateModelAsync(array $args = []) + * @method \Aws\Result updateRequestValidator(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRequestValidatorAsync(array $args = []) + * @method \Aws\Result updateResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateResourceAsync(array $args = []) + * @method \Aws\Result updateRestApi(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRestApiAsync(array $args = []) + * @method \Aws\Result updateStage(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateStageAsync(array $args = []) + * @method \Aws\Result updateUsage(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUsageAsync(array $args = []) + * @method \Aws\Result updateUsagePlan(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUsagePlanAsync(array $args = []) + * @method \Aws\Result updateVpcLink(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateVpcLinkAsync(array $args = []) + */ +class ApiGatewayClient extends AwsClient +{ + public function __construct(array $args) + { + parent::__construct($args); + $stack = $this->getHandlerList(); + $stack->appendBuild([__CLASS__, '_add_accept_header']); + } + + public static function _add_accept_header(callable $handler) + { + return function ( + CommandInterface $command, + RequestInterface $request + ) use ($handler) { + $request = $request->withHeader('Accept', 'application/json'); + + return $handler($command, $request); + }; + } +} diff --git a/lib/aws/Aws/ApiGateway/Exception/ApiGatewayException.php b/lib/aws/Aws/ApiGateway/Exception/ApiGatewayException.php new file mode 100644 index 0000000..9842c00 --- /dev/null +++ b/lib/aws/Aws/ApiGateway/Exception/ApiGatewayException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\ApiGateway\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS API Gateway** service. + */ +class ApiGatewayException extends AwsException {} diff --git a/lib/aws/Aws/ApiGatewayManagementApi/ApiGatewayManagementApiClient.php b/lib/aws/Aws/ApiGatewayManagementApi/ApiGatewayManagementApiClient.php new file mode 100644 index 0000000..a28a3a5 --- /dev/null +++ b/lib/aws/Aws/ApiGatewayManagementApi/ApiGatewayManagementApiClient.php @@ -0,0 +1,11 @@ +<?php +namespace Aws\ApiGatewayManagementApi; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AmazonApiGatewayManagementApi** service. + * @method \Aws\Result postToConnection(array $args = []) + * @method \GuzzleHttp\Promise\Promise postToConnectionAsync(array $args = []) + */ +class ApiGatewayManagementApiClient extends AwsClient {} diff --git a/lib/aws/Aws/ApiGatewayManagementApi/Exception/ApiGatewayManagementApiException.php b/lib/aws/Aws/ApiGatewayManagementApi/Exception/ApiGatewayManagementApiException.php new file mode 100644 index 0000000..b7ffc3f --- /dev/null +++ b/lib/aws/Aws/ApiGatewayManagementApi/Exception/ApiGatewayManagementApiException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\ApiGatewayManagementApi\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AmazonApiGatewayManagementApi** service. + */ +class ApiGatewayManagementApiException extends AwsException {} diff --git a/lib/aws/Aws/ApiGatewayV2/ApiGatewayV2Client.php b/lib/aws/Aws/ApiGatewayV2/ApiGatewayV2Client.php new file mode 100644 index 0000000..53de5a6 --- /dev/null +++ b/lib/aws/Aws/ApiGatewayV2/ApiGatewayV2Client.php @@ -0,0 +1,121 @@ +<?php +namespace Aws\ApiGatewayV2; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AmazonApiGatewayV2** service. + * @method \Aws\Result createApi(array $args = []) + * @method \GuzzleHttp\Promise\Promise createApiAsync(array $args = []) + * @method \Aws\Result createApiMapping(array $args = []) + * @method \GuzzleHttp\Promise\Promise createApiMappingAsync(array $args = []) + * @method \Aws\Result createAuthorizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAuthorizerAsync(array $args = []) + * @method \Aws\Result createDeployment(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDeploymentAsync(array $args = []) + * @method \Aws\Result createDomainName(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDomainNameAsync(array $args = []) + * @method \Aws\Result createIntegration(array $args = []) + * @method \GuzzleHttp\Promise\Promise createIntegrationAsync(array $args = []) + * @method \Aws\Result createIntegrationResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise createIntegrationResponseAsync(array $args = []) + * @method \Aws\Result createModel(array $args = []) + * @method \GuzzleHttp\Promise\Promise createModelAsync(array $args = []) + * @method \Aws\Result createRoute(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRouteAsync(array $args = []) + * @method \Aws\Result createRouteResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRouteResponseAsync(array $args = []) + * @method \Aws\Result createStage(array $args = []) + * @method \GuzzleHttp\Promise\Promise createStageAsync(array $args = []) + * @method \Aws\Result deleteApi(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApiAsync(array $args = []) + * @method \Aws\Result deleteApiMapping(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApiMappingAsync(array $args = []) + * @method \Aws\Result deleteAuthorizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAuthorizerAsync(array $args = []) + * @method \Aws\Result deleteDeployment(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDeploymentAsync(array $args = []) + * @method \Aws\Result deleteDomainName(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDomainNameAsync(array $args = []) + * @method \Aws\Result deleteIntegration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteIntegrationAsync(array $args = []) + * @method \Aws\Result deleteIntegrationResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteIntegrationResponseAsync(array $args = []) + * @method \Aws\Result deleteModel(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteModelAsync(array $args = []) + * @method \Aws\Result deleteRoute(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRouteAsync(array $args = []) + * @method \Aws\Result deleteRouteResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRouteResponseAsync(array $args = []) + * @method \Aws\Result deleteStage(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteStageAsync(array $args = []) + * @method \Aws\Result getApi(array $args = []) + * @method \GuzzleHttp\Promise\Promise getApiAsync(array $args = []) + * @method \Aws\Result getApiMapping(array $args = []) + * @method \GuzzleHttp\Promise\Promise getApiMappingAsync(array $args = []) + * @method \Aws\Result getApiMappings(array $args = []) + * @method \GuzzleHttp\Promise\Promise getApiMappingsAsync(array $args = []) + * @method \Aws\Result getApis(array $args = []) + * @method \GuzzleHttp\Promise\Promise getApisAsync(array $args = []) + * @method \Aws\Result getAuthorizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAuthorizerAsync(array $args = []) + * @method \Aws\Result getAuthorizers(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAuthorizersAsync(array $args = []) + * @method \Aws\Result getDeployment(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDeploymentAsync(array $args = []) + * @method \Aws\Result getDeployments(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDeploymentsAsync(array $args = []) + * @method \Aws\Result getDomainName(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDomainNameAsync(array $args = []) + * @method \Aws\Result getDomainNames(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDomainNamesAsync(array $args = []) + * @method \Aws\Result getIntegration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIntegrationAsync(array $args = []) + * @method \Aws\Result getIntegrationResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIntegrationResponseAsync(array $args = []) + * @method \Aws\Result getIntegrationResponses(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIntegrationResponsesAsync(array $args = []) + * @method \Aws\Result getIntegrations(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIntegrationsAsync(array $args = []) + * @method \Aws\Result getModel(array $args = []) + * @method \GuzzleHttp\Promise\Promise getModelAsync(array $args = []) + * @method \Aws\Result getModelTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise getModelTemplateAsync(array $args = []) + * @method \Aws\Result getModels(array $args = []) + * @method \GuzzleHttp\Promise\Promise getModelsAsync(array $args = []) + * @method \Aws\Result getRoute(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRouteAsync(array $args = []) + * @method \Aws\Result getRouteResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRouteResponseAsync(array $args = []) + * @method \Aws\Result getRouteResponses(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRouteResponsesAsync(array $args = []) + * @method \Aws\Result getRoutes(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRoutesAsync(array $args = []) + * @method \Aws\Result getStage(array $args = []) + * @method \GuzzleHttp\Promise\Promise getStageAsync(array $args = []) + * @method \Aws\Result getStages(array $args = []) + * @method \GuzzleHttp\Promise\Promise getStagesAsync(array $args = []) + * @method \Aws\Result updateApi(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateApiAsync(array $args = []) + * @method \Aws\Result updateApiMapping(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateApiMappingAsync(array $args = []) + * @method \Aws\Result updateAuthorizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAuthorizerAsync(array $args = []) + * @method \Aws\Result updateDeployment(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDeploymentAsync(array $args = []) + * @method \Aws\Result updateDomainName(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDomainNameAsync(array $args = []) + * @method \Aws\Result updateIntegration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateIntegrationAsync(array $args = []) + * @method \Aws\Result updateIntegrationResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateIntegrationResponseAsync(array $args = []) + * @method \Aws\Result updateModel(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateModelAsync(array $args = []) + * @method \Aws\Result updateRoute(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRouteAsync(array $args = []) + * @method \Aws\Result updateRouteResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRouteResponseAsync(array $args = []) + * @method \Aws\Result updateStage(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateStageAsync(array $args = []) + */ +class ApiGatewayV2Client extends AwsClient {} diff --git a/lib/aws/Aws/ApiGatewayV2/Exception/ApiGatewayV2Exception.php b/lib/aws/Aws/ApiGatewayV2/Exception/ApiGatewayV2Exception.php new file mode 100644 index 0000000..b2243d9 --- /dev/null +++ b/lib/aws/Aws/ApiGatewayV2/Exception/ApiGatewayV2Exception.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\ApiGatewayV2\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AmazonApiGatewayV2** service. + */ +class ApiGatewayV2Exception extends AwsException {} diff --git a/lib/aws/Aws/AppMesh/AppMeshClient.php b/lib/aws/Aws/AppMesh/AppMeshClient.php new file mode 100644 index 0000000..cd8122d --- /dev/null +++ b/lib/aws/Aws/AppMesh/AppMeshClient.php @@ -0,0 +1,65 @@ +<?php +namespace Aws\AppMesh; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS App Mesh** service. + * @method \Aws\Result createMesh(array $args = []) + * @method \GuzzleHttp\Promise\Promise createMeshAsync(array $args = []) + * @method \Aws\Result createRoute(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRouteAsync(array $args = []) + * @method \Aws\Result createVirtualNode(array $args = []) + * @method \GuzzleHttp\Promise\Promise createVirtualNodeAsync(array $args = []) + * @method \Aws\Result createVirtualRouter(array $args = []) + * @method \GuzzleHttp\Promise\Promise createVirtualRouterAsync(array $args = []) + * @method \Aws\Result deleteMesh(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteMeshAsync(array $args = []) + * @method \Aws\Result deleteRoute(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRouteAsync(array $args = []) + * @method \Aws\Result deleteVirtualNode(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVirtualNodeAsync(array $args = []) + * @method \Aws\Result deleteVirtualRouter(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVirtualRouterAsync(array $args = []) + * @method \Aws\Result describeMesh(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMeshAsync(array $args = []) + * @method \Aws\Result describeRoute(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRouteAsync(array $args = []) + * @method \Aws\Result describeVirtualNode(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVirtualNodeAsync(array $args = []) + * @method \Aws\Result describeVirtualRouter(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVirtualRouterAsync(array $args = []) + * @method \Aws\Result listMeshes(array $args = []) + * @method \GuzzleHttp\Promise\Promise listMeshesAsync(array $args = []) + * @method \Aws\Result listRoutes(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRoutesAsync(array $args = []) + * @method \Aws\Result listVirtualNodes(array $args = []) + * @method \GuzzleHttp\Promise\Promise listVirtualNodesAsync(array $args = []) + * @method \Aws\Result listVirtualRouters(array $args = []) + * @method \GuzzleHttp\Promise\Promise listVirtualRoutersAsync(array $args = []) + * @method \Aws\Result updateRoute(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRouteAsync(array $args = []) + * @method \Aws\Result updateVirtualNode(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateVirtualNodeAsync(array $args = []) + * @method \Aws\Result updateVirtualRouter(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateVirtualRouterAsync(array $args = []) + * @method \Aws\Result createVirtualService(array $args = []) (supported in versions 2019-01-25) + * @method \GuzzleHttp\Promise\Promise createVirtualServiceAsync(array $args = []) (supported in versions 2019-01-25) + * @method \Aws\Result deleteVirtualService(array $args = []) (supported in versions 2019-01-25) + * @method \GuzzleHttp\Promise\Promise deleteVirtualServiceAsync(array $args = []) (supported in versions 2019-01-25) + * @method \Aws\Result describeVirtualService(array $args = []) (supported in versions 2019-01-25) + * @method \GuzzleHttp\Promise\Promise describeVirtualServiceAsync(array $args = []) (supported in versions 2019-01-25) + * @method \Aws\Result listTagsForResource(array $args = []) (supported in versions 2019-01-25) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) (supported in versions 2019-01-25) + * @method \Aws\Result listVirtualServices(array $args = []) (supported in versions 2019-01-25) + * @method \GuzzleHttp\Promise\Promise listVirtualServicesAsync(array $args = []) (supported in versions 2019-01-25) + * @method \Aws\Result tagResource(array $args = []) (supported in versions 2019-01-25) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) (supported in versions 2019-01-25) + * @method \Aws\Result untagResource(array $args = []) (supported in versions 2019-01-25) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) (supported in versions 2019-01-25) + * @method \Aws\Result updateMesh(array $args = []) (supported in versions 2019-01-25) + * @method \GuzzleHttp\Promise\Promise updateMeshAsync(array $args = []) (supported in versions 2019-01-25) + * @method \Aws\Result updateVirtualService(array $args = []) (supported in versions 2019-01-25) + * @method \GuzzleHttp\Promise\Promise updateVirtualServiceAsync(array $args = []) (supported in versions 2019-01-25) + */ +class AppMeshClient extends AwsClient {} diff --git a/lib/aws/Aws/AppMesh/Exception/AppMeshException.php b/lib/aws/Aws/AppMesh/Exception/AppMeshException.php new file mode 100644 index 0000000..96c5795 --- /dev/null +++ b/lib/aws/Aws/AppMesh/Exception/AppMeshException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\AppMesh\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS App Mesh** service. + */ +class AppMeshException extends AwsException {} diff --git a/lib/aws/Aws/AppSync/AppSyncClient.php b/lib/aws/Aws/AppSync/AppSyncClient.php new file mode 100644 index 0000000..a5808c0 --- /dev/null +++ b/lib/aws/Aws/AppSync/AppSyncClient.php @@ -0,0 +1,75 @@ +<?php +namespace Aws\AppSync; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS AppSync** service. + * @method \Aws\Result createApiKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise createApiKeyAsync(array $args = []) + * @method \Aws\Result createDataSource(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDataSourceAsync(array $args = []) + * @method \Aws\Result createFunction(array $args = []) + * @method \GuzzleHttp\Promise\Promise createFunctionAsync(array $args = []) + * @method \Aws\Result createGraphqlApi(array $args = []) + * @method \GuzzleHttp\Promise\Promise createGraphqlApiAsync(array $args = []) + * @method \Aws\Result createResolver(array $args = []) + * @method \GuzzleHttp\Promise\Promise createResolverAsync(array $args = []) + * @method \Aws\Result createType(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTypeAsync(array $args = []) + * @method \Aws\Result deleteApiKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApiKeyAsync(array $args = []) + * @method \Aws\Result deleteDataSource(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDataSourceAsync(array $args = []) + * @method \Aws\Result deleteFunction(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteFunctionAsync(array $args = []) + * @method \Aws\Result deleteGraphqlApi(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteGraphqlApiAsync(array $args = []) + * @method \Aws\Result deleteResolver(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteResolverAsync(array $args = []) + * @method \Aws\Result deleteType(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTypeAsync(array $args = []) + * @method \Aws\Result getDataSource(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDataSourceAsync(array $args = []) + * @method \Aws\Result getFunction(array $args = []) + * @method \GuzzleHttp\Promise\Promise getFunctionAsync(array $args = []) + * @method \Aws\Result getGraphqlApi(array $args = []) + * @method \GuzzleHttp\Promise\Promise getGraphqlApiAsync(array $args = []) + * @method \Aws\Result getIntrospectionSchema(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIntrospectionSchemaAsync(array $args = []) + * @method \Aws\Result getResolver(array $args = []) + * @method \GuzzleHttp\Promise\Promise getResolverAsync(array $args = []) + * @method \Aws\Result getSchemaCreationStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSchemaCreationStatusAsync(array $args = []) + * @method \Aws\Result getType(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTypeAsync(array $args = []) + * @method \Aws\Result listApiKeys(array $args = []) + * @method \GuzzleHttp\Promise\Promise listApiKeysAsync(array $args = []) + * @method \Aws\Result listDataSources(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDataSourcesAsync(array $args = []) + * @method \Aws\Result listFunctions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listFunctionsAsync(array $args = []) + * @method \Aws\Result listGraphqlApis(array $args = []) + * @method \GuzzleHttp\Promise\Promise listGraphqlApisAsync(array $args = []) + * @method \Aws\Result listResolvers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listResolversAsync(array $args = []) + * @method \Aws\Result listResolversByFunction(array $args = []) + * @method \GuzzleHttp\Promise\Promise listResolversByFunctionAsync(array $args = []) + * @method \Aws\Result listTypes(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTypesAsync(array $args = []) + * @method \Aws\Result startSchemaCreation(array $args = []) + * @method \GuzzleHttp\Promise\Promise startSchemaCreationAsync(array $args = []) + * @method \Aws\Result updateApiKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateApiKeyAsync(array $args = []) + * @method \Aws\Result updateDataSource(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDataSourceAsync(array $args = []) + * @method \Aws\Result updateFunction(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateFunctionAsync(array $args = []) + * @method \Aws\Result updateGraphqlApi(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateGraphqlApiAsync(array $args = []) + * @method \Aws\Result updateResolver(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateResolverAsync(array $args = []) + * @method \Aws\Result updateType(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateTypeAsync(array $args = []) + */ +class AppSyncClient extends AwsClient {} diff --git a/lib/aws/Aws/AppSync/Exception/AppSyncException.php b/lib/aws/Aws/AppSync/Exception/AppSyncException.php new file mode 100644 index 0000000..1447421 --- /dev/null +++ b/lib/aws/Aws/AppSync/Exception/AppSyncException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\AppSync\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS AppSync** service. + */ +class AppSyncException extends AwsException {} diff --git a/lib/aws/Aws/ApplicationAutoScaling/ApplicationAutoScalingClient.php b/lib/aws/Aws/ApplicationAutoScaling/ApplicationAutoScalingClient.php new file mode 100644 index 0000000..446f767 --- /dev/null +++ b/lib/aws/Aws/ApplicationAutoScaling/ApplicationAutoScalingClient.php @@ -0,0 +1,29 @@ +<?php +namespace Aws\ApplicationAutoScaling; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Application Auto Scaling** service. + * @method \Aws\Result deleteScalingPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteScalingPolicyAsync(array $args = []) + * @method \Aws\Result deleteScheduledAction(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteScheduledActionAsync(array $args = []) + * @method \Aws\Result deregisterScalableTarget(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterScalableTargetAsync(array $args = []) + * @method \Aws\Result describeScalableTargets(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeScalableTargetsAsync(array $args = []) + * @method \Aws\Result describeScalingActivities(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeScalingActivitiesAsync(array $args = []) + * @method \Aws\Result describeScalingPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeScalingPoliciesAsync(array $args = []) + * @method \Aws\Result describeScheduledActions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeScheduledActionsAsync(array $args = []) + * @method \Aws\Result putScalingPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putScalingPolicyAsync(array $args = []) + * @method \Aws\Result putScheduledAction(array $args = []) + * @method \GuzzleHttp\Promise\Promise putScheduledActionAsync(array $args = []) + * @method \Aws\Result registerScalableTarget(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerScalableTargetAsync(array $args = []) + */ +class ApplicationAutoScalingClient extends AwsClient {} diff --git a/lib/aws/Aws/ApplicationAutoScaling/Exception/ApplicationAutoScalingException.php b/lib/aws/Aws/ApplicationAutoScaling/Exception/ApplicationAutoScalingException.php new file mode 100644 index 0000000..39b61b0 --- /dev/null +++ b/lib/aws/Aws/ApplicationAutoScaling/Exception/ApplicationAutoScalingException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\ApplicationAutoScaling\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Application Auto Scaling** service. + */ +class ApplicationAutoScalingException extends AwsException {} diff --git a/lib/aws/Aws/ApplicationDiscoveryService/ApplicationDiscoveryServiceClient.php b/lib/aws/Aws/ApplicationDiscoveryService/ApplicationDiscoveryServiceClient.php new file mode 100644 index 0000000..c031862 --- /dev/null +++ b/lib/aws/Aws/ApplicationDiscoveryService/ApplicationDiscoveryServiceClient.php @@ -0,0 +1,59 @@ +<?php +namespace Aws\ApplicationDiscoveryService; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Application Discovery Service** service. + * @method \Aws\Result associateConfigurationItemsToApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateConfigurationItemsToApplicationAsync(array $args = []) + * @method \Aws\Result batchDeleteImportData(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchDeleteImportDataAsync(array $args = []) + * @method \Aws\Result createApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise createApplicationAsync(array $args = []) + * @method \Aws\Result createTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTagsAsync(array $args = []) + * @method \Aws\Result deleteApplications(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApplicationsAsync(array $args = []) + * @method \Aws\Result deleteTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTagsAsync(array $args = []) + * @method \Aws\Result describeAgents(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAgentsAsync(array $args = []) + * @method \Aws\Result describeConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeConfigurationsAsync(array $args = []) + * @method \Aws\Result describeContinuousExports(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeContinuousExportsAsync(array $args = []) + * @method \Aws\Result describeExportConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeExportConfigurationsAsync(array $args = []) + * @method \Aws\Result describeExportTasks(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeExportTasksAsync(array $args = []) + * @method \Aws\Result describeImportTasks(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeImportTasksAsync(array $args = []) + * @method \Aws\Result describeTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTagsAsync(array $args = []) + * @method \Aws\Result disassociateConfigurationItemsFromApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateConfigurationItemsFromApplicationAsync(array $args = []) + * @method \Aws\Result exportConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise exportConfigurationsAsync(array $args = []) + * @method \Aws\Result getDiscoverySummary(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDiscoverySummaryAsync(array $args = []) + * @method \Aws\Result listConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listConfigurationsAsync(array $args = []) + * @method \Aws\Result listServerNeighbors(array $args = []) + * @method \GuzzleHttp\Promise\Promise listServerNeighborsAsync(array $args = []) + * @method \Aws\Result startContinuousExport(array $args = []) + * @method \GuzzleHttp\Promise\Promise startContinuousExportAsync(array $args = []) + * @method \Aws\Result startDataCollectionByAgentIds(array $args = []) + * @method \GuzzleHttp\Promise\Promise startDataCollectionByAgentIdsAsync(array $args = []) + * @method \Aws\Result startExportTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise startExportTaskAsync(array $args = []) + * @method \Aws\Result startImportTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise startImportTaskAsync(array $args = []) + * @method \Aws\Result stopContinuousExport(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopContinuousExportAsync(array $args = []) + * @method \Aws\Result stopDataCollectionByAgentIds(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopDataCollectionByAgentIdsAsync(array $args = []) + * @method \Aws\Result updateApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateApplicationAsync(array $args = []) + */ +class ApplicationDiscoveryServiceClient extends AwsClient {} diff --git a/lib/aws/Aws/ApplicationDiscoveryService/Exception/ApplicationDiscoveryServiceException.php b/lib/aws/Aws/ApplicationDiscoveryService/Exception/ApplicationDiscoveryServiceException.php new file mode 100644 index 0000000..975e5eb --- /dev/null +++ b/lib/aws/Aws/ApplicationDiscoveryService/Exception/ApplicationDiscoveryServiceException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\ApplicationDiscoveryService\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Application Discovery Service** service. + */ +class ApplicationDiscoveryServiceException extends AwsException {} diff --git a/lib/aws/Aws/Appstream/AppstreamClient.php b/lib/aws/Aws/Appstream/AppstreamClient.php new file mode 100644 index 0000000..4ec4c08 --- /dev/null +++ b/lib/aws/Aws/Appstream/AppstreamClient.php @@ -0,0 +1,97 @@ +<?php +namespace Aws\Appstream; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon AppStream** service. + * @method \Aws\Result associateFleet(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateFleetAsync(array $args = []) + * @method \Aws\Result batchAssociateUserStack(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchAssociateUserStackAsync(array $args = []) + * @method \Aws\Result batchDisassociateUserStack(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchDisassociateUserStackAsync(array $args = []) + * @method \Aws\Result copyImage(array $args = []) + * @method \GuzzleHttp\Promise\Promise copyImageAsync(array $args = []) + * @method \Aws\Result createDirectoryConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDirectoryConfigAsync(array $args = []) + * @method \Aws\Result createFleet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createFleetAsync(array $args = []) + * @method \Aws\Result createImageBuilder(array $args = []) + * @method \GuzzleHttp\Promise\Promise createImageBuilderAsync(array $args = []) + * @method \Aws\Result createImageBuilderStreamingURL(array $args = []) + * @method \GuzzleHttp\Promise\Promise createImageBuilderStreamingURLAsync(array $args = []) + * @method \Aws\Result createStack(array $args = []) + * @method \GuzzleHttp\Promise\Promise createStackAsync(array $args = []) + * @method \Aws\Result createStreamingURL(array $args = []) + * @method \GuzzleHttp\Promise\Promise createStreamingURLAsync(array $args = []) + * @method \Aws\Result createUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise createUserAsync(array $args = []) + * @method \Aws\Result deleteDirectoryConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDirectoryConfigAsync(array $args = []) + * @method \Aws\Result deleteFleet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteFleetAsync(array $args = []) + * @method \Aws\Result deleteImage(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteImageAsync(array $args = []) + * @method \Aws\Result deleteImageBuilder(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteImageBuilderAsync(array $args = []) + * @method \Aws\Result deleteImagePermissions(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteImagePermissionsAsync(array $args = []) + * @method \Aws\Result deleteStack(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteStackAsync(array $args = []) + * @method \Aws\Result deleteUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserAsync(array $args = []) + * @method \Aws\Result describeDirectoryConfigs(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDirectoryConfigsAsync(array $args = []) + * @method \Aws\Result describeFleets(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeFleetsAsync(array $args = []) + * @method \Aws\Result describeImageBuilders(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeImageBuildersAsync(array $args = []) + * @method \Aws\Result describeImagePermissions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeImagePermissionsAsync(array $args = []) + * @method \Aws\Result describeImages(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeImagesAsync(array $args = []) + * @method \Aws\Result describeSessions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSessionsAsync(array $args = []) + * @method \Aws\Result describeStacks(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStacksAsync(array $args = []) + * @method \Aws\Result describeUserStackAssociations(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeUserStackAssociationsAsync(array $args = []) + * @method \Aws\Result describeUsers(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeUsersAsync(array $args = []) + * @method \Aws\Result disableUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableUserAsync(array $args = []) + * @method \Aws\Result disassociateFleet(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateFleetAsync(array $args = []) + * @method \Aws\Result enableUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableUserAsync(array $args = []) + * @method \Aws\Result expireSession(array $args = []) + * @method \GuzzleHttp\Promise\Promise expireSessionAsync(array $args = []) + * @method \Aws\Result listAssociatedFleets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAssociatedFleetsAsync(array $args = []) + * @method \Aws\Result listAssociatedStacks(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAssociatedStacksAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result startFleet(array $args = []) + * @method \GuzzleHttp\Promise\Promise startFleetAsync(array $args = []) + * @method \Aws\Result startImageBuilder(array $args = []) + * @method \GuzzleHttp\Promise\Promise startImageBuilderAsync(array $args = []) + * @method \Aws\Result stopFleet(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopFleetAsync(array $args = []) + * @method \Aws\Result stopImageBuilder(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopImageBuilderAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateDirectoryConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDirectoryConfigAsync(array $args = []) + * @method \Aws\Result updateFleet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateFleetAsync(array $args = []) + * @method \Aws\Result updateImagePermissions(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateImagePermissionsAsync(array $args = []) + * @method \Aws\Result updateStack(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateStackAsync(array $args = []) + */ +class AppstreamClient extends AwsClient {} diff --git a/lib/aws/Aws/Appstream/Exception/AppstreamException.php b/lib/aws/Aws/Appstream/Exception/AppstreamException.php new file mode 100644 index 0000000..669a86d --- /dev/null +++ b/lib/aws/Aws/Appstream/Exception/AppstreamException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Appstream\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon AppStream** service. + */ +class AppstreamException extends AwsException {} diff --git a/lib/aws/Aws/Athena/AthenaClient.php b/lib/aws/Aws/Athena/AthenaClient.php new file mode 100644 index 0000000..4c1ec1b --- /dev/null +++ b/lib/aws/Aws/Athena/AthenaClient.php @@ -0,0 +1,47 @@ +<?php +namespace Aws\Athena; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Athena** service. + * @method \Aws\Result batchGetNamedQuery(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetNamedQueryAsync(array $args = []) + * @method \Aws\Result batchGetQueryExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetQueryExecutionAsync(array $args = []) + * @method \Aws\Result createNamedQuery(array $args = []) + * @method \GuzzleHttp\Promise\Promise createNamedQueryAsync(array $args = []) + * @method \Aws\Result createWorkGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createWorkGroupAsync(array $args = []) + * @method \Aws\Result deleteNamedQuery(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteNamedQueryAsync(array $args = []) + * @method \Aws\Result deleteWorkGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteWorkGroupAsync(array $args = []) + * @method \Aws\Result getNamedQuery(array $args = []) + * @method \GuzzleHttp\Promise\Promise getNamedQueryAsync(array $args = []) + * @method \Aws\Result getQueryExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise getQueryExecutionAsync(array $args = []) + * @method \Aws\Result getQueryResults(array $args = []) + * @method \GuzzleHttp\Promise\Promise getQueryResultsAsync(array $args = []) + * @method \Aws\Result getWorkGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise getWorkGroupAsync(array $args = []) + * @method \Aws\Result listNamedQueries(array $args = []) + * @method \GuzzleHttp\Promise\Promise listNamedQueriesAsync(array $args = []) + * @method \Aws\Result listQueryExecutions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listQueryExecutionsAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result listWorkGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise listWorkGroupsAsync(array $args = []) + * @method \Aws\Result startQueryExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise startQueryExecutionAsync(array $args = []) + * @method \Aws\Result stopQueryExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopQueryExecutionAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateWorkGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateWorkGroupAsync(array $args = []) + */ +class AthenaClient extends AwsClient {} diff --git a/lib/aws/Aws/Athena/Exception/AthenaException.php b/lib/aws/Aws/Athena/Exception/AthenaException.php new file mode 100644 index 0000000..e5ffcef --- /dev/null +++ b/lib/aws/Aws/Athena/Exception/AthenaException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Athena\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Athena** service. + */ +class AthenaException extends AwsException {} diff --git a/lib/aws/Aws/AutoScaling/AutoScalingClient.php b/lib/aws/Aws/AutoScaling/AutoScalingClient.php new file mode 100644 index 0000000..f2ba0b5 --- /dev/null +++ b/lib/aws/Aws/AutoScaling/AutoScalingClient.php @@ -0,0 +1,118 @@ +<?php +namespace Aws\AutoScaling; + +use Aws\AwsClient; + +/** + * Auto Scaling client. + * + * @method \Aws\Result attachInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachInstancesAsync(array $args = []) + * @method \Aws\Result attachLoadBalancerTargetGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachLoadBalancerTargetGroupsAsync(array $args = []) + * @method \Aws\Result attachLoadBalancers(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachLoadBalancersAsync(array $args = []) + * @method \Aws\Result batchDeleteScheduledAction(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchDeleteScheduledActionAsync(array $args = []) + * @method \Aws\Result batchPutScheduledUpdateGroupAction(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchPutScheduledUpdateGroupActionAsync(array $args = []) + * @method \Aws\Result completeLifecycleAction(array $args = []) + * @method \GuzzleHttp\Promise\Promise completeLifecycleActionAsync(array $args = []) + * @method \Aws\Result createAutoScalingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAutoScalingGroupAsync(array $args = []) + * @method \Aws\Result createLaunchConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLaunchConfigurationAsync(array $args = []) + * @method \Aws\Result createOrUpdateTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise createOrUpdateTagsAsync(array $args = []) + * @method \Aws\Result deleteAutoScalingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAutoScalingGroupAsync(array $args = []) + * @method \Aws\Result deleteLaunchConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLaunchConfigurationAsync(array $args = []) + * @method \Aws\Result deleteLifecycleHook(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLifecycleHookAsync(array $args = []) + * @method \Aws\Result deleteNotificationConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteNotificationConfigurationAsync(array $args = []) + * @method \Aws\Result deletePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePolicyAsync(array $args = []) + * @method \Aws\Result deleteScheduledAction(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteScheduledActionAsync(array $args = []) + * @method \Aws\Result deleteTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTagsAsync(array $args = []) + * @method \Aws\Result describeAccountLimits(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAccountLimitsAsync(array $args = []) + * @method \Aws\Result describeAdjustmentTypes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAdjustmentTypesAsync(array $args = []) + * @method \Aws\Result describeAutoScalingGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAutoScalingGroupsAsync(array $args = []) + * @method \Aws\Result describeAutoScalingInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAutoScalingInstancesAsync(array $args = []) + * @method \Aws\Result describeAutoScalingNotificationTypes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAutoScalingNotificationTypesAsync(array $args = []) + * @method \Aws\Result describeLaunchConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLaunchConfigurationsAsync(array $args = []) + * @method \Aws\Result describeLifecycleHookTypes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLifecycleHookTypesAsync(array $args = []) + * @method \Aws\Result describeLifecycleHooks(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLifecycleHooksAsync(array $args = []) + * @method \Aws\Result describeLoadBalancerTargetGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLoadBalancerTargetGroupsAsync(array $args = []) + * @method \Aws\Result describeLoadBalancers(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLoadBalancersAsync(array $args = []) + * @method \Aws\Result describeMetricCollectionTypes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMetricCollectionTypesAsync(array $args = []) + * @method \Aws\Result describeNotificationConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeNotificationConfigurationsAsync(array $args = []) + * @method \Aws\Result describePolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise describePoliciesAsync(array $args = []) + * @method \Aws\Result describeScalingActivities(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeScalingActivitiesAsync(array $args = []) + * @method \Aws\Result describeScalingProcessTypes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeScalingProcessTypesAsync(array $args = []) + * @method \Aws\Result describeScheduledActions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeScheduledActionsAsync(array $args = []) + * @method \Aws\Result describeTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTagsAsync(array $args = []) + * @method \Aws\Result describeTerminationPolicyTypes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTerminationPolicyTypesAsync(array $args = []) + * @method \Aws\Result detachInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachInstancesAsync(array $args = []) + * @method \Aws\Result detachLoadBalancerTargetGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachLoadBalancerTargetGroupsAsync(array $args = []) + * @method \Aws\Result detachLoadBalancers(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachLoadBalancersAsync(array $args = []) + * @method \Aws\Result disableMetricsCollection(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableMetricsCollectionAsync(array $args = []) + * @method \Aws\Result enableMetricsCollection(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableMetricsCollectionAsync(array $args = []) + * @method \Aws\Result enterStandby(array $args = []) + * @method \GuzzleHttp\Promise\Promise enterStandbyAsync(array $args = []) + * @method \Aws\Result executePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise executePolicyAsync(array $args = []) + * @method \Aws\Result exitStandby(array $args = []) + * @method \GuzzleHttp\Promise\Promise exitStandbyAsync(array $args = []) + * @method \Aws\Result putLifecycleHook(array $args = []) + * @method \GuzzleHttp\Promise\Promise putLifecycleHookAsync(array $args = []) + * @method \Aws\Result putNotificationConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putNotificationConfigurationAsync(array $args = []) + * @method \Aws\Result putScalingPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putScalingPolicyAsync(array $args = []) + * @method \Aws\Result putScheduledUpdateGroupAction(array $args = []) + * @method \GuzzleHttp\Promise\Promise putScheduledUpdateGroupActionAsync(array $args = []) + * @method \Aws\Result recordLifecycleActionHeartbeat(array $args = []) + * @method \GuzzleHttp\Promise\Promise recordLifecycleActionHeartbeatAsync(array $args = []) + * @method \Aws\Result resumeProcesses(array $args = []) + * @method \GuzzleHttp\Promise\Promise resumeProcessesAsync(array $args = []) + * @method \Aws\Result setDesiredCapacity(array $args = []) + * @method \GuzzleHttp\Promise\Promise setDesiredCapacityAsync(array $args = []) + * @method \Aws\Result setInstanceHealth(array $args = []) + * @method \GuzzleHttp\Promise\Promise setInstanceHealthAsync(array $args = []) + * @method \Aws\Result setInstanceProtection(array $args = []) + * @method \GuzzleHttp\Promise\Promise setInstanceProtectionAsync(array $args = []) + * @method \Aws\Result suspendProcesses(array $args = []) + * @method \GuzzleHttp\Promise\Promise suspendProcessesAsync(array $args = []) + * @method \Aws\Result terminateInstanceInAutoScalingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise terminateInstanceInAutoScalingGroupAsync(array $args = []) + * @method \Aws\Result updateAutoScalingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAutoScalingGroupAsync(array $args = []) + */ +class AutoScalingClient extends AwsClient {} diff --git a/lib/aws/Aws/AutoScaling/Exception/AutoScalingException.php b/lib/aws/Aws/AutoScaling/Exception/AutoScalingException.php new file mode 100644 index 0000000..0fa4bfc --- /dev/null +++ b/lib/aws/Aws/AutoScaling/Exception/AutoScalingException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\AutoScaling\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error while interacting with the Auto Scaling service. + */ +class AutoScalingException extends AwsException {} diff --git a/lib/aws/Aws/AutoScalingPlans/AutoScalingPlansClient.php b/lib/aws/Aws/AutoScalingPlans/AutoScalingPlansClient.php new file mode 100644 index 0000000..8431cd3 --- /dev/null +++ b/lib/aws/Aws/AutoScalingPlans/AutoScalingPlansClient.php @@ -0,0 +1,21 @@ +<?php +namespace Aws\AutoScalingPlans; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Auto Scaling Plans** service. + * @method \Aws\Result createScalingPlan(array $args = []) + * @method \GuzzleHttp\Promise\Promise createScalingPlanAsync(array $args = []) + * @method \Aws\Result deleteScalingPlan(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteScalingPlanAsync(array $args = []) + * @method \Aws\Result describeScalingPlanResources(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeScalingPlanResourcesAsync(array $args = []) + * @method \Aws\Result describeScalingPlans(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeScalingPlansAsync(array $args = []) + * @method \Aws\Result getScalingPlanResourceForecastData(array $args = []) + * @method \GuzzleHttp\Promise\Promise getScalingPlanResourceForecastDataAsync(array $args = []) + * @method \Aws\Result updateScalingPlan(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateScalingPlanAsync(array $args = []) + */ +class AutoScalingPlansClient extends AwsClient {} diff --git a/lib/aws/Aws/AutoScalingPlans/Exception/AutoScalingPlansException.php b/lib/aws/Aws/AutoScalingPlans/Exception/AutoScalingPlansException.php new file mode 100644 index 0000000..831e505 --- /dev/null +++ b/lib/aws/Aws/AutoScalingPlans/Exception/AutoScalingPlansException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\AutoScalingPlans\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Auto Scaling Plans** service. + */ +class AutoScalingPlansException extends AwsException {} diff --git a/lib/aws/Aws/AwsClient.php b/lib/aws/Aws/AwsClient.php new file mode 100644 index 0000000..206b036 --- /dev/null +++ b/lib/aws/Aws/AwsClient.php @@ -0,0 +1,402 @@ +<?php +namespace Aws; + +use Aws\Api\ApiProvider; +use Aws\Api\DocModel; +use Aws\Api\Service; +use Aws\ClientSideMonitoring\ApiCallAttemptMonitoringMiddleware; +use Aws\ClientSideMonitoring\ApiCallMonitoringMiddleware; +use Aws\ClientSideMonitoring\ConfigurationProvider; +use Aws\EndpointDiscovery\EndpointDiscoveryMiddleware; +use Aws\Signature\SignatureProvider; +use GuzzleHttp\Psr7\Uri; + +/** + * Default AWS client implementation + */ +class AwsClient implements AwsClientInterface +{ + use AwsClientTrait; + + /** @var array */ + private $config; + + /** @var string */ + private $region; + + /** @var string */ + private $endpoint; + + /** @var Service */ + private $api; + + /** @var callable */ + private $signatureProvider; + + /** @var callable */ + private $credentialProvider; + + /** @var HandlerList */ + private $handlerList; + + /** @var array*/ + private $defaultRequestOptions; + + /** + * Get an array of client constructor arguments used by the client. + * + * @return array + */ + public static function getArguments() + { + return ClientResolver::getDefaultArguments(); + } + + /** + * The client constructor accepts the following options: + * + * - api_provider: (callable) 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. + * - credentials: + * (Aws\Credentials\CredentialsInterface|array|bool|callable) 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. + * - debug: (bool|array) 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). + * - stats: (bool|array) Set to true to gather transfer statistics on + * requests sent. Alternatively, you can provide an associative array with + * the following keys: retries: (bool) Set to false to disable reporting + * on retries attempted; http: (bool) Set to true to enable collecting + * statistics from lower level HTTP adapters (e.g., values returned in + * GuzzleHttp\TransferStats). HTTP handlers must support an + * `http_stats_receiver` option for this to have an effect; timer: (bool) + * Set to true to enable a command timer that reports the total wall clock + * time spent on an operation in seconds. + * - disable_host_prefix_injection: (bool) Set to true to disable host prefix + * injection logic for services that use it. This disables the entire + * prefix injection, including the portions supplied by user-defined + * parameters. Setting this flag will have no effect on services that do + * not use host prefix injection. + * - endpoint: (string) The full URI of the webservice. This is only + * required when connecting to a custom endpoint (e.g., a local version + * of S3). + * - endpoint_discovery: (Aws\EndpointDiscovery\ConfigurationInterface, + * Aws\CacheInterface, array, callable) Settings for endpoint discovery. + * Provide an instance of Aws\EndpointDiscovery\ConfigurationInterface, + * an instance Aws\CacheInterface, a callable that provides a promise for + * a Configuration object, or an associative array with the following + * keys: enabled: (bool) Set to true to enable endpoint discovery, + * defaults to false; cache_limit: (int) The maximum number of keys in the + * endpoints cache, defaults to 1000. + * - endpoint_provider: (callable) 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. + * - handler: (callable) 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. + * - http: (array, default=array(0)) Set to an array of SDK request + * options to apply to each request (e.g., proxy, verify, etc.). + * - http_handler: (callable) 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. + * - idempotency_auto_fill: (bool|callable) Set to false to disable SDK to + * populate parameters that enabled 'idempotencyToken' trait with a random + * UUID v4 value on your behalf. Using default value 'true' still allows + * parameter value to be overwritten when provided. Note: auto-fill only + * works when cryptographically secure random bytes generator functions + * (random_bytes, openssl_random_pseudo_bytes or mcrypt_create_iv) can be + * found. You may also provide a callable source of random bytes. + * - profile: (string) 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. + * - region: (string, required) Region to connect to. See + * http://docs.aws.amazon.com/general/latest/gr/rande.html for a list of + * available regions. + * - retries: (int, default=int(3)) Configures the maximum number of + * allowed retries for a client (pass 0 to disable retries). + * - scheme: (string, default=string(5) "https") 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". + * - signature_provider: (callable) 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 + * - signature_version: (string) 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. + * - validate: (bool, default=bool(true)) Set to false to disable + * client-side parameter validation. + * - version: (string, required) The version of the webservice to + * utilize (e.g., 2006-03-01). + * + * @param array $args Client configuration arguments. + * + * @throws \InvalidArgumentException if any required options are missing or + * the service is not supported. + */ + public function __construct(array $args) + { + list($service, $exceptionClass) = $this->parseClass(); + if (!isset($args['service'])) { + $args['service'] = manifest($service)['endpoint']; + } + 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(); + $this->addInvocationId(); + $this->addClientSideMonitoring($args); + $this->addEndpointParameterMiddleware($args); + $this->addEndpointDiscoveryMiddleware($config, $args); + + if (isset($args['with_resolved'])) { + $args['with_resolved']($config); + } + } + + public function getHandlerList() + { + return $this->handlerList; + } + + 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 getCommand($name, array $args = []) + { + // Fail fast if the command cannot be found in the description. + if (!isset($this->getApi()['operations'][$name])) { + $name = ucfirst($name); + if (!isset($this->getApi()['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 __sleep() + { + throw new \RuntimeException('Instances of ' . static::class + . ' cannot be serialized'); + } + + /** + * 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 addEndpointParameterMiddleware($args) + { + if (empty($args['disable_host_prefix_injection'])) { + $list = $this->getHandlerList(); + $list->appendBuild( + EndpointParameterMiddleware::wrap( + $this->api + ), + 'endpoint_parameter' + ); + } + } + + private function addEndpointDiscoveryMiddleware($config, $args) + { + $list = $this->getHandlerList(); + + if (!isset($args['endpoint'])) { + $list->appendBuild( + EndpointDiscoveryMiddleware::wrap( + $this, + $args, + $config['endpoint_discovery'] + ), + 'EndpointDiscoveryMiddleware' + ); + } + } + + private function addSignatureMiddleware() + { + $api = $this->getApi(); + $provider = $this->signatureProvider; + $version = $this->config['signature_version']; + $name = $this->config['signing_name']; + $region = $this->config['signing_region']; + + $resolver = static function ( + CommandInterface $c + ) use ($api, $provider, $name, $region, $version) { + $authType = $api->getOperation($c->getName())['authtype']; + switch ($authType){ + case 'none': + $version = 'anonymous'; + break; + case 'v4-unsigned-body': + $version = 'v4-unsigned-body'; + break; + } + return SignatureProvider::resolve($provider, $version, $name, $region); + }; + $this->handlerList->appendSign( + Middleware::signer($this->credentialProvider, $resolver), + 'signer' + ); + } + + private function addInvocationId() + { + // Add invocation id to each request + $this->handlerList->prependSign(Middleware::invocationId(), 'invocation-id'); + } + + private function addClientSideMonitoring($args) + { + $options = ConfigurationProvider::defaultProvider($args); + + $this->handlerList->appendBuild( + ApiCallMonitoringMiddleware::wrap( + $this->credentialProvider, + $options, + $this->region, + $this->getApi()->getServiceId() + ), + 'ApiCallMonitoringMiddleware' + ); + + $callAttemptMiddleware = ApiCallAttemptMonitoringMiddleware::wrap( + $this->credentialProvider, + $options, + $this->region, + $this->getApi()->getServiceId() + ); + $this->handlerList->appendAttempt ( + $callAttemptMiddleware, + 'ApiCallAttemptMonitoringMiddleware' + ); + } + + /** + * 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/Aws/AwsClientInterface.php b/lib/aws/Aws/AwsClientInterface.php new file mode 100644 index 0000000..12a5701 --- /dev/null +++ b/lib/aws/Aws/AwsClientInterface.php @@ -0,0 +1,169 @@ +<?php +namespace Aws; + +use Psr\Http\Message\UriInterface; +use GuzzleHttp\Promise\PromiseInterface; + +/** + * Represents an AWS client. + */ +interface AwsClientInterface +{ + /** + * Creates and executes a command for an operation by name. + * + * Suffixing an operation name with "Async" will return a + * promise that can be used to execute commands asynchronously. + * + * @param string $name Name of the command to execute. + * @param array $arguments Arguments to pass to the getCommand method. + * + * @return ResultInterface + * @throws \Exception + */ + public function __call($name, array $arguments); + + /** + * Create a command for an operation name. + * + * Special keys may be set on the command to control how it behaves, + * including: + * + * - @http: Associative array of transfer specific options to apply to the + * request that is serialized for this command. Available keys include + * "proxy", "verify", "timeout", "connect_timeout", "debug", "delay", and + * "headers". + * + * @param string $name Name of the operation to use in the command + * @param array $args Arguments to pass to the command + * + * @return CommandInterface + * @throws \InvalidArgumentException if no command can be found by name + */ + public function getCommand($name, array $args = []); + + /** + * Execute a single command. + * + * @param CommandInterface $command Command to execute + * + * @return ResultInterface + * @throws \Exception + */ + public function execute(CommandInterface $command); + + /** + * Execute a command asynchronously. + * + * @param CommandInterface $command Command to execute + * + * @return \GuzzleHttp\Promise\PromiseInterface + */ + public function executeAsync(CommandInterface $command); + + /** + * Returns a promise that is fulfilled with an + * {@see \Aws\Credentials\CredentialsInterface} object. + * + * If you need the credentials synchronously, then call the wait() method + * on the returned promise. + * + * @return PromiseInterface + */ + public function getCredentials(); + + /** + * Get the region to which the client is configured to send requests. + * + * @return string + */ + public function getRegion(); + + /** + * Gets the default endpoint, or base URL, used by the client. + * + * @return UriInterface + */ + public function getEndpoint(); + + /** + * Get the service description associated with the client. + * + * @return \Aws\Api\Service + */ + public function getApi(); + + /** + * Get a client configuration value. + * + * @param string|null $option The option to retrieve. Pass null to retrieve + * all options. + * @return mixed|null + */ + public function getConfig($option = null); + + /** + * Get the handler list used to transfer commands. + * + * This list can be modified to add middleware or to change the underlying + * handler used to send HTTP requests. + * + * @return HandlerList + */ + public function getHandlerList(); + + /** + * Get a resource iterator for the specified operation. + * + * @param string $name Name of the iterator to retrieve. + * @param array $args Command arguments to use with each command. + * + * @return \Iterator + * @throws \UnexpectedValueException if the iterator config is invalid. + */ + public function getIterator($name, array $args = []); + + /** + * Get a result paginator for the specified operation. + * + * @param string $name Name of the operation used for iterator + * @param array $args Command args to be used with each command + * + * @return \Aws\ResultPaginator + * @throws \UnexpectedValueException if the iterator config is invalid. + */ + public function getPaginator($name, array $args = []); + + /** + * Wait until a resource is in a particular state. + * + * @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 void + * @throws \UnexpectedValueException if the waiter is invalid. + */ + public function waitUntil($name, array $args = []); + + /** + * Get a waiter that waits until a resource is in a particular state. + * + * Retrieving a waiter can be useful when you wish to wait asynchronously: + * + * $waiter = $client->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/Aws/AwsClientTrait.php b/lib/aws/Aws/AwsClientTrait.php new file mode 100644 index 0000000..c2174d1 --- /dev/null +++ b/lib/aws/Aws/AwsClientTrait.php @@ -0,0 +1,92 @@ +<?php +namespace Aws; + +use Aws\Api\Service; + +/** + * A trait providing generic functionality for interacting with Amazon Web + * Services. This is meant to be used in classes implementing + * \Aws\AwsClientInterface + */ +trait AwsClientTrait +{ + public function getPaginator($name, array $args = []) + { + $config = $this->getApi()->getPaginatorConfig($name); + + return new ResultPaginator($this, $name, $args, $config); + } + + public function getIterator($name, array $args = []) + { + $config = $this->getApi()->getPaginatorConfig($name); + if (!$config['result_key']) { + throw new \UnexpectedValueException(sprintf( + 'There are no resources to iterate for the %s operation of %s', + $name, $this->getApi()['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->execute($this->getCommand($name, $args))->search($key); + + return new \ArrayIterator((array) $result); + } + + 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->getApi()->getWaiterConfig($name); + + return new Waiter($this, $name, $args, $config); + } + + public function execute(CommandInterface $command) + { + return $this->executeAsync($command)->wait(); + } + + public function executeAsync(CommandInterface $command) + { + $handler = $command->getHandlerList()->resolve(); + return $handler($command); + } + + 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)); + } + + /** + * @param string $name + * @param array $args + * + * @return CommandInterface + */ + abstract public function getCommand($name, array $args = []); + + /** + * @return Service + */ + abstract public function getApi(); +} diff --git a/lib/aws/Aws/Backup/BackupClient.php b/lib/aws/Aws/Backup/BackupClient.php new file mode 100644 index 0000000..71a6d1c --- /dev/null +++ b/lib/aws/Aws/Backup/BackupClient.php @@ -0,0 +1,95 @@ +<?php +namespace Aws\Backup; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Backup** service. + * @method \Aws\Result createBackupPlan(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBackupPlanAsync(array $args = []) + * @method \Aws\Result createBackupSelection(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBackupSelectionAsync(array $args = []) + * @method \Aws\Result createBackupVault(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBackupVaultAsync(array $args = []) + * @method \Aws\Result deleteBackupPlan(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBackupPlanAsync(array $args = []) + * @method \Aws\Result deleteBackupSelection(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBackupSelectionAsync(array $args = []) + * @method \Aws\Result deleteBackupVault(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBackupVaultAsync(array $args = []) + * @method \Aws\Result deleteBackupVaultAccessPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBackupVaultAccessPolicyAsync(array $args = []) + * @method \Aws\Result deleteBackupVaultNotifications(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBackupVaultNotificationsAsync(array $args = []) + * @method \Aws\Result deleteRecoveryPoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRecoveryPointAsync(array $args = []) + * @method \Aws\Result describeBackupJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeBackupJobAsync(array $args = []) + * @method \Aws\Result describeBackupVault(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeBackupVaultAsync(array $args = []) + * @method \Aws\Result describeProtectedResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeProtectedResourceAsync(array $args = []) + * @method \Aws\Result describeRecoveryPoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRecoveryPointAsync(array $args = []) + * @method \Aws\Result describeRestoreJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRestoreJobAsync(array $args = []) + * @method \Aws\Result exportBackupPlanTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise exportBackupPlanTemplateAsync(array $args = []) + * @method \Aws\Result getBackupPlan(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBackupPlanAsync(array $args = []) + * @method \Aws\Result getBackupPlanFromJSON(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBackupPlanFromJSONAsync(array $args = []) + * @method \Aws\Result getBackupPlanFromTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBackupPlanFromTemplateAsync(array $args = []) + * @method \Aws\Result getBackupSelection(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBackupSelectionAsync(array $args = []) + * @method \Aws\Result getBackupVaultAccessPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBackupVaultAccessPolicyAsync(array $args = []) + * @method \Aws\Result getBackupVaultNotifications(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBackupVaultNotificationsAsync(array $args = []) + * @method \Aws\Result getRecoveryPointRestoreMetadata(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRecoveryPointRestoreMetadataAsync(array $args = []) + * @method \Aws\Result getSupportedResourceTypes(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSupportedResourceTypesAsync(array $args = []) + * @method \Aws\Result listBackupJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBackupJobsAsync(array $args = []) + * @method \Aws\Result listBackupPlanTemplates(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBackupPlanTemplatesAsync(array $args = []) + * @method \Aws\Result listBackupPlanVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBackupPlanVersionsAsync(array $args = []) + * @method \Aws\Result listBackupPlans(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBackupPlansAsync(array $args = []) + * @method \Aws\Result listBackupSelections(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBackupSelectionsAsync(array $args = []) + * @method \Aws\Result listBackupVaults(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBackupVaultsAsync(array $args = []) + * @method \Aws\Result listProtectedResources(array $args = []) + * @method \GuzzleHttp\Promise\Promise listProtectedResourcesAsync(array $args = []) + * @method \Aws\Result listRecoveryPointsByBackupVault(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRecoveryPointsByBackupVaultAsync(array $args = []) + * @method \Aws\Result listRecoveryPointsByResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRecoveryPointsByResourceAsync(array $args = []) + * @method \Aws\Result listRestoreJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRestoreJobsAsync(array $args = []) + * @method \Aws\Result listTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsAsync(array $args = []) + * @method \Aws\Result putBackupVaultAccessPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBackupVaultAccessPolicyAsync(array $args = []) + * @method \Aws\Result putBackupVaultNotifications(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBackupVaultNotificationsAsync(array $args = []) + * @method \Aws\Result startBackupJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise startBackupJobAsync(array $args = []) + * @method \Aws\Result startRestoreJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise startRestoreJobAsync(array $args = []) + * @method \Aws\Result stopBackupJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopBackupJobAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateBackupPlan(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateBackupPlanAsync(array $args = []) + * @method \Aws\Result updateRecoveryPointLifecycle(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRecoveryPointLifecycleAsync(array $args = []) + */ +class BackupClient extends AwsClient {} diff --git a/lib/aws/Aws/Backup/Exception/BackupException.php b/lib/aws/Aws/Backup/Exception/BackupException.php new file mode 100644 index 0000000..e3cdb25 --- /dev/null +++ b/lib/aws/Aws/Backup/Exception/BackupException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Backup\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Backup** service. + */ +class BackupException extends AwsException {} diff --git a/lib/aws/Aws/Batch/BatchClient.php b/lib/aws/Aws/Batch/BatchClient.php new file mode 100644 index 0000000..e447370 --- /dev/null +++ b/lib/aws/Aws/Batch/BatchClient.php @@ -0,0 +1,41 @@ +<?php +namespace Aws\Batch; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Batch** service. + * @method \Aws\Result cancelJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelJobAsync(array $args = []) + * @method \Aws\Result createComputeEnvironment(array $args = []) + * @method \GuzzleHttp\Promise\Promise createComputeEnvironmentAsync(array $args = []) + * @method \Aws\Result createJobQueue(array $args = []) + * @method \GuzzleHttp\Promise\Promise createJobQueueAsync(array $args = []) + * @method \Aws\Result deleteComputeEnvironment(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteComputeEnvironmentAsync(array $args = []) + * @method \Aws\Result deleteJobQueue(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteJobQueueAsync(array $args = []) + * @method \Aws\Result deregisterJobDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterJobDefinitionAsync(array $args = []) + * @method \Aws\Result describeComputeEnvironments(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeComputeEnvironmentsAsync(array $args = []) + * @method \Aws\Result describeJobDefinitions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeJobDefinitionsAsync(array $args = []) + * @method \Aws\Result describeJobQueues(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeJobQueuesAsync(array $args = []) + * @method \Aws\Result describeJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeJobsAsync(array $args = []) + * @method \Aws\Result listJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listJobsAsync(array $args = []) + * @method \Aws\Result registerJobDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerJobDefinitionAsync(array $args = []) + * @method \Aws\Result submitJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise submitJobAsync(array $args = []) + * @method \Aws\Result terminateJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise terminateJobAsync(array $args = []) + * @method \Aws\Result updateComputeEnvironment(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateComputeEnvironmentAsync(array $args = []) + * @method \Aws\Result updateJobQueue(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateJobQueueAsync(array $args = []) + */ +class BatchClient extends AwsClient {} diff --git a/lib/aws/Aws/Batch/Exception/BatchException.php b/lib/aws/Aws/Batch/Exception/BatchException.php new file mode 100644 index 0000000..badca34 --- /dev/null +++ b/lib/aws/Aws/Batch/Exception/BatchException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Batch\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Batch** service. + */ +class BatchException extends AwsException {} diff --git a/lib/aws/Aws/Budgets/BudgetsClient.php b/lib/aws/Aws/Budgets/BudgetsClient.php new file mode 100644 index 0000000..5a3b534 --- /dev/null +++ b/lib/aws/Aws/Budgets/BudgetsClient.php @@ -0,0 +1,37 @@ +<?php +namespace Aws\Budgets; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Budgets** service. + * @method \Aws\Result createBudget(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBudgetAsync(array $args = []) + * @method \Aws\Result createNotification(array $args = []) + * @method \GuzzleHttp\Promise\Promise createNotificationAsync(array $args = []) + * @method \Aws\Result createSubscriber(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSubscriberAsync(array $args = []) + * @method \Aws\Result deleteBudget(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBudgetAsync(array $args = []) + * @method \Aws\Result deleteNotification(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteNotificationAsync(array $args = []) + * @method \Aws\Result deleteSubscriber(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSubscriberAsync(array $args = []) + * @method \Aws\Result describeBudget(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeBudgetAsync(array $args = []) + * @method \Aws\Result describeBudgetPerformanceHistory(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeBudgetPerformanceHistoryAsync(array $args = []) + * @method \Aws\Result describeBudgets(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeBudgetsAsync(array $args = []) + * @method \Aws\Result describeNotificationsForBudget(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeNotificationsForBudgetAsync(array $args = []) + * @method \Aws\Result describeSubscribersForNotification(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSubscribersForNotificationAsync(array $args = []) + * @method \Aws\Result updateBudget(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateBudgetAsync(array $args = []) + * @method \Aws\Result updateNotification(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateNotificationAsync(array $args = []) + * @method \Aws\Result updateSubscriber(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSubscriberAsync(array $args = []) + */ +class BudgetsClient extends AwsClient {} diff --git a/lib/aws/Aws/Budgets/Exception/BudgetsException.php b/lib/aws/Aws/Budgets/Exception/BudgetsException.php new file mode 100644 index 0000000..f6f5f45 --- /dev/null +++ b/lib/aws/Aws/Budgets/Exception/BudgetsException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Budgets\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Budgets** service. + */ +class BudgetsException extends AwsException {} diff --git a/lib/aws/Aws/CacheInterface.php b/lib/aws/Aws/CacheInterface.php new file mode 100644 index 0000000..e77f18b --- /dev/null +++ b/lib/aws/Aws/CacheInterface.php @@ -0,0 +1,34 @@ +<?php +namespace Aws; + +/** + * Represents a simple cache interface. + */ +interface CacheInterface +{ + /** + * Get a cache item by key. + * + * @param string $key Key to retrieve. + * + * @return mixed|null Returns the value or null if not found. + */ + public function get($key); + + /** + * Set a cache key value. + * + * @param string $key Key to set + * @param mixed $value Value to set. + * @param int $ttl Number of seconds the item is allowed to live. Set + * to 0 to allow an unlimited lifetime. + */ + public function set($key, $value, $ttl = 0); + + /** + * Remove a cache key. + * + * @param string $key Key to remove. + */ + public function remove($key); +} diff --git a/lib/aws/Aws/Chime/ChimeClient.php b/lib/aws/Aws/Chime/ChimeClient.php new file mode 100644 index 0000000..28d6855 --- /dev/null +++ b/lib/aws/Aws/Chime/ChimeClient.php @@ -0,0 +1,109 @@ +<?php +namespace Aws\Chime; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Chime** service. + * @method \Aws\Result associatePhoneNumberWithUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise associatePhoneNumberWithUserAsync(array $args = []) + * @method \Aws\Result associatePhoneNumbersWithVoiceConnector(array $args = []) + * @method \GuzzleHttp\Promise\Promise associatePhoneNumbersWithVoiceConnectorAsync(array $args = []) + * @method \Aws\Result batchDeletePhoneNumber(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchDeletePhoneNumberAsync(array $args = []) + * @method \Aws\Result batchSuspendUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchSuspendUserAsync(array $args = []) + * @method \Aws\Result batchUnsuspendUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchUnsuspendUserAsync(array $args = []) + * @method \Aws\Result batchUpdatePhoneNumber(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchUpdatePhoneNumberAsync(array $args = []) + * @method \Aws\Result batchUpdateUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchUpdateUserAsync(array $args = []) + * @method \Aws\Result createAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAccountAsync(array $args = []) + * @method \Aws\Result createPhoneNumberOrder(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPhoneNumberOrderAsync(array $args = []) + * @method \Aws\Result createVoiceConnector(array $args = []) + * @method \GuzzleHttp\Promise\Promise createVoiceConnectorAsync(array $args = []) + * @method \Aws\Result deleteAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAccountAsync(array $args = []) + * @method \Aws\Result deletePhoneNumber(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePhoneNumberAsync(array $args = []) + * @method \Aws\Result deleteVoiceConnector(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVoiceConnectorAsync(array $args = []) + * @method \Aws\Result deleteVoiceConnectorOrigination(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVoiceConnectorOriginationAsync(array $args = []) + * @method \Aws\Result deleteVoiceConnectorTermination(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVoiceConnectorTerminationAsync(array $args = []) + * @method \Aws\Result deleteVoiceConnectorTerminationCredentials(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVoiceConnectorTerminationCredentialsAsync(array $args = []) + * @method \Aws\Result disassociatePhoneNumberFromUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociatePhoneNumberFromUserAsync(array $args = []) + * @method \Aws\Result disassociatePhoneNumbersFromVoiceConnector(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociatePhoneNumbersFromVoiceConnectorAsync(array $args = []) + * @method \Aws\Result getAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAccountAsync(array $args = []) + * @method \Aws\Result getAccountSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAccountSettingsAsync(array $args = []) + * @method \Aws\Result getGlobalSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise getGlobalSettingsAsync(array $args = []) + * @method \Aws\Result getPhoneNumber(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPhoneNumberAsync(array $args = []) + * @method \Aws\Result getPhoneNumberOrder(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPhoneNumberOrderAsync(array $args = []) + * @method \Aws\Result getUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise getUserAsync(array $args = []) + * @method \Aws\Result getUserSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise getUserSettingsAsync(array $args = []) + * @method \Aws\Result getVoiceConnector(array $args = []) + * @method \GuzzleHttp\Promise\Promise getVoiceConnectorAsync(array $args = []) + * @method \Aws\Result getVoiceConnectorOrigination(array $args = []) + * @method \GuzzleHttp\Promise\Promise getVoiceConnectorOriginationAsync(array $args = []) + * @method \Aws\Result getVoiceConnectorTermination(array $args = []) + * @method \GuzzleHttp\Promise\Promise getVoiceConnectorTerminationAsync(array $args = []) + * @method \Aws\Result getVoiceConnectorTerminationHealth(array $args = []) + * @method \GuzzleHttp\Promise\Promise getVoiceConnectorTerminationHealthAsync(array $args = []) + * @method \Aws\Result inviteUsers(array $args = []) + * @method \GuzzleHttp\Promise\Promise inviteUsersAsync(array $args = []) + * @method \Aws\Result listAccounts(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAccountsAsync(array $args = []) + * @method \Aws\Result listPhoneNumberOrders(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPhoneNumberOrdersAsync(array $args = []) + * @method \Aws\Result listPhoneNumbers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPhoneNumbersAsync(array $args = []) + * @method \Aws\Result listUsers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUsersAsync(array $args = []) + * @method \Aws\Result listVoiceConnectorTerminationCredentials(array $args = []) + * @method \GuzzleHttp\Promise\Promise listVoiceConnectorTerminationCredentialsAsync(array $args = []) + * @method \Aws\Result listVoiceConnectors(array $args = []) + * @method \GuzzleHttp\Promise\Promise listVoiceConnectorsAsync(array $args = []) + * @method \Aws\Result logoutUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise logoutUserAsync(array $args = []) + * @method \Aws\Result putVoiceConnectorOrigination(array $args = []) + * @method \GuzzleHttp\Promise\Promise putVoiceConnectorOriginationAsync(array $args = []) + * @method \Aws\Result putVoiceConnectorTermination(array $args = []) + * @method \GuzzleHttp\Promise\Promise putVoiceConnectorTerminationAsync(array $args = []) + * @method \Aws\Result putVoiceConnectorTerminationCredentials(array $args = []) + * @method \GuzzleHttp\Promise\Promise putVoiceConnectorTerminationCredentialsAsync(array $args = []) + * @method \Aws\Result resetPersonalPIN(array $args = []) + * @method \GuzzleHttp\Promise\Promise resetPersonalPINAsync(array $args = []) + * @method \Aws\Result restorePhoneNumber(array $args = []) + * @method \GuzzleHttp\Promise\Promise restorePhoneNumberAsync(array $args = []) + * @method \Aws\Result searchAvailablePhoneNumbers(array $args = []) + * @method \GuzzleHttp\Promise\Promise searchAvailablePhoneNumbersAsync(array $args = []) + * @method \Aws\Result updateAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAccountAsync(array $args = []) + * @method \Aws\Result updateAccountSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAccountSettingsAsync(array $args = []) + * @method \Aws\Result updateGlobalSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateGlobalSettingsAsync(array $args = []) + * @method \Aws\Result updatePhoneNumber(array $args = []) + * @method \GuzzleHttp\Promise\Promise updatePhoneNumberAsync(array $args = []) + * @method \Aws\Result updateUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUserAsync(array $args = []) + * @method \Aws\Result updateUserSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUserSettingsAsync(array $args = []) + * @method \Aws\Result updateVoiceConnector(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateVoiceConnectorAsync(array $args = []) + */ +class ChimeClient extends AwsClient {} diff --git a/lib/aws/Aws/Chime/Exception/ChimeException.php b/lib/aws/Aws/Chime/Exception/ChimeException.php new file mode 100644 index 0000000..b8d0140 --- /dev/null +++ b/lib/aws/Aws/Chime/Exception/ChimeException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Chime\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Chime** service. + */ +class ChimeException extends AwsException {} diff --git a/lib/aws/Aws/ClientResolver.php b/lib/aws/Aws/ClientResolver.php new file mode 100644 index 0000000..5ca3df7 --- /dev/null +++ b/lib/aws/Aws/ClientResolver.php @@ -0,0 +1,768 @@ +<?php +namespace Aws; + +use Aws\Api\Validator; +use Aws\Api\ApiProvider; +use Aws\Api\Service; +use Aws\Credentials\Credentials; +use Aws\Credentials\CredentialsInterface; +use Aws\Endpoint\PartitionEndpointProvider; +use Aws\EndpointDiscovery\ConfigurationInterface; +use Aws\EndpointDiscovery\ConfigurationProvider; +use Aws\EndpointDiscovery\EndpointDiscoveryMiddleware; +use Aws\Signature\SignatureProvider; +use Aws\Endpoint\EndpointProvider; +use Aws\Credentials\CredentialProvider; +use InvalidArgumentException as IAE; +use Psr\Http\Message\RequestInterface; + +/** + * @internal Resolves a hash of client arguments to construct a client. + */ +class ClientResolver +{ + /** @var array */ + private $argDefinitions; + + /** @var array Map of types to a corresponding function */ + private static $typeMap = [ + 'resource' => '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".', + ], + 'disable_host_prefix_injection' => [ + 'type' => 'value', + 'valid' => ['bool'], + 'doc' => 'Set to true to disable host prefix injection logic for services that use it. This disables the entire prefix injection, including the portions supplied by user-defined parameters. Setting this flag will have no effect on services that do not use host prefix injection.', + 'default' => false, + ], + '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).', + 'fn' => [__CLASS__, '_apply_endpoint'], + ], + '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'], + ], + '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'], + ], + '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'], + ], + 'serializer' => [ + 'default' => [__CLASS__, '_default_serializer'], + 'fn' => [__CLASS__, '_apply_serializer'], + 'internal' => true, + 'type' => 'value', + 'valid' => ['callable'], + ], + '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'], + ], + 'signing_name' => [ + 'type' => 'config', + 'valid' => ['string'], + 'doc' => 'A string representing a custom service name to be used when calculating a request signature.', + 'default' => [__CLASS__, '_default_signing_name'], + ], + 'signing_region' => [ + 'type' => 'config', + 'valid' => ['string'], + 'doc' => 'A string representing a custom region name to be used when calculating a request signature.', + 'default' => [__CLASS__, '_default_signing_region'], + ], + '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' => [CredentialsInterface::class, CacheInterface::class, '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'], + ], + 'endpoint_discovery' => [ + 'type' => 'value', + 'valid' => [ConfigurationInterface::class, CacheInterface::class, 'array', 'callable'], + 'doc' => 'Specifies settings for endpoint discovery. Provide an instance of Aws\EndpointDiscovery\ConfigurationInterface, an instance Aws\CacheInterface, a callable that provides a promise for a Configuration object, or an associative array with the following keys: enabled: (bool) Set to true to enable endpoint discovery. Defaults to false; cache_limit: (int) The maximum number of keys in the endpoints cache. Defaults to 1000.', + 'fn' => [__CLASS__, '_apply_endpoint_discovery'], + 'default' => [__CLASS__, '_default_endpoint_discovery_provider'] + ], + 'stats' => [ + 'type' => 'value', + 'valid' => ['bool', 'array'], + 'default' => false, + 'doc' => 'Set to true to gather transfer statistics on requests sent. Alternatively, you can provide an associative array with the following keys: retries: (bool) Set to false to disable reporting on retries attempted; http: (bool) Set to true to enable collecting statistics from lower level HTTP adapters (e.g., values returned in GuzzleHttp\TransferStats). HTTP handlers must support an http_stats_receiver option for this to have an effect; timer: (bool) Set to true to enable a command timer that reports the total wall clock time spent on an operation in seconds.', + 'fn' => [__CLASS__, '_apply_stats'], + ], + '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', 'array'], + 'default' => true, + 'doc' => 'Set to false to disable client-side parameter validation. Set to true to utilize default validation constraints. Set to an associative array of validation options to enable specific validation constraints.', + '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'] + ], + 'ua_append' => [ + 'type' => 'value', + 'valid' => ['string', 'array'], + 'doc' => 'Provide a string or array of strings to send in the User-Agent header.', + 'fn' => [__CLASS__, '_apply_user_agent'], + 'default' => [], + ], + 'idempotency_auto_fill' => [ + 'type' => 'value', + 'valid' => ['bool', 'callable'], + 'doc' => 'Set to false to disable SDK to populate parameters that enabled \'idempotencyToken\' trait with a random UUID v4 value on your behalf. Using default value \'true\' still allows parameter value to be overwritten when provided. Note: auto-fill only works when cryptographically secure random bytes generator functions(random_bytes, openssl_random_pseudo_bytes or mcrypt_create_iv) can be found. You may also provide a callable source of random bytes.', + 'default' => true, + 'fn' => [__CLASS__, '_apply_idempotency_auto_fill'] + ], + ]; + + /** + * 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. The default value can be a + * closure and can not be a callable string that is not part of the + * defaultArgs array. + * - 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. + * Check for missing keys in passed arguments + * + * @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. + if (is_callable($a['default']) + && ( + is_array($a['default']) + || $a['default'] instanceof \Closure + ) + ) { + $args[$key] = $a['default']($args); + } else { + $args[$key] = $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 IAE($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']) + || isset($args[$k]) + ) { + 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, null, $args['stats']['retries']), + 'retry' + ); + } + } + + public static function _apply_credentials($value, array &$args) + { + if (is_callable($value)) { + return; + } + + if ($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'; + } elseif ($value instanceof CacheInterface) { + $args['credentials'] = CredentialProvider::defaultProvider($args); + } 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) + { + $api = new Service( + ApiProvider::resolve( + $value, + 'api', + $args['service'], + $args['version'] + ), + $value + ); + + if ( + empty($args['config']['signing_name']) + && isset($api['metadata']['signingName']) + ) { + $args['config']['signing_name'] = $api['metadata']['signingName']; + } + + $args['api'] = $api; + $args['parser'] = Service::createParser($api); + $args['error_parser'] = Service::createErrorParser($api->getProtocol()); + } + + public static function _apply_endpoint_provider(callable $value, array &$args) + { + if (!isset($args['endpoint'])) { + $endpointPrefix = isset($args['api']['metadata']['endpointPrefix']) + ? $args['api']['metadata']['endpointPrefix'] + : $args['service']; + + // Invoke the endpoint provider and throw if it does not resolve. + $result = EndpointProvider::resolve($value, [ + 'service' => $endpointPrefix, + 'region' => $args['region'], + 'scheme' => $args['scheme'] + ]); + + $args['endpoint'] = $result['endpoint']; + + if ( + empty($args['config']['signature_version']) + && isset($result['signatureVersion']) + ) { + $args['config']['signature_version'] + = $result['signatureVersion']; + } + + if ( + empty($args['config']['signing_region']) + && isset($result['signingRegion']) + ) { + $args['config']['signing_region'] = $result['signingRegion']; + } + + if ( + empty($args['config']['signing_name']) + && isset($result['signingName']) + ) { + $args['config']['signing_name'] = $result['signingName']; + } + } + } + + public static function _apply_endpoint_discovery($value, array &$args) { + $args['endpoint_discovery'] = $value; + } + + public static function _default_endpoint_discovery_provider(array $args) + { + return ConfigurationProvider::defaultProvider($args); + } + + public static function _apply_serializer($value, array &$args, HandlerList $list) + { + $list->prependBuild(Middleware::requestBuilder($value), 'builder'); + } + + public static function _apply_debug($value, array &$args, HandlerList $list) + { + if ($value !== false) { + $list->interpose(new TraceMiddleware($value === true ? [] : $value)); + } + } + + public static function _apply_stats($value, array &$args, HandlerList $list) + { + // Create an array of stat collectors that are disabled (set to false) + // by default. If the user has passed in true, enable all stat + // collectors. + $defaults = array_fill_keys( + ['http', 'retries', 'timer'], + $value === true + ); + $args['stats'] = is_array($value) + ? array_replace($defaults, $value) + : $defaults; + + if ($args['stats']['timer']) { + $list->prependInit(Middleware::timer(), 'timer'); + } + } + + 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 === false) { + return; + } + + $validator = $value === true + ? new Validator() + : new Validator($value); + $list->appendValidate( + Middleware::validation($args['api'], $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'], + $args['stats']['http'] + ); + } + + public static function _apply_http_handler($value, array &$args, HandlerList $list) + { + $args['handler'] = new WrappedHttpHandler( + $value, + $args['parser'], + $args['error_parser'], + $args['exception_class'], + $args['stats']['http'] + ); + } + + public static function _apply_user_agent($value, array &$args, HandlerList $list) + { + if (!is_array($value)) { + $value = [$value]; + } + + $value = array_map('strval', $value); + + if (defined('HHVM_VERSION')) { + array_unshift($value, 'HHVM/' . HHVM_VERSION); + } + array_unshift($value, 'aws-sdk-php/' . Sdk::VERSION); + $args['ua_append'] = $value; + + $list->appendBuild(static function (callable $handler) use ($value) { + return function ( + CommandInterface $command, + RequestInterface $request + ) use ($handler, $value) { + return $handler($command, $request->withHeader( + 'User-Agent', + implode(' ', array_merge( + $value, + $request->getHeader('User-Agent') + )) + )); + }; + }); + } + + public static function _apply_endpoint($value, array &$args, HandlerList $list) + { + $parts = parse_url($value); + if (empty($parts['scheme']) || empty($parts['host'])) { + throw new IAE( + 'Endpoints must be full URIs and include a scheme and host' + ); + } + + $args['endpoint'] = $value; + } + + public static function _apply_idempotency_auto_fill( + $value, + array &$args, + HandlerList $list + ) { + $enabled = false; + $generator = null; + + + if (is_bool($value)) { + $enabled = $value; + } elseif (is_callable($value)) { + $enabled = true; + $generator = $value; + } + + if ($enabled) { + $list->prependInit( + IdempotencyTokenMiddleware::wrap($args['api'], $generator), + 'idempotency_auto_fill' + ); + } + } + + public static function _default_endpoint_provider(array $args) + { + return PartitionEndpointProvider::defaultProvider() + ->getPartition($args['region'], $args['service']); + } + + public static function _default_serializer(array $args) + { + return Service::createSerializer( + $args['api'], + $args['endpoint'] + ); + } + + public static function _default_signature_provider() + { + return SignatureProvider::defaultProvider(); + } + + public static function _default_signature_version(array &$args) + { + if (isset($args['config']['signature_version'])) { + return $args['config']['signature_version']; + } + + $args['__partition_result'] = isset($args['__partition_result']) + ? isset($args['__partition_result']) + : call_user_func(PartitionEndpointProvider::defaultProvider(), [ + 'service' => $args['service'], + 'region' => $args['region'], + ]); + + return isset($args['__partition_result']['signatureVersion']) + ? $args['__partition_result']['signatureVersion'] + : $args['api']->getSignatureVersion(); + } + + public static function _default_signing_name(array &$args) + { + if (isset($args['config']['signing_name'])) { + return $args['config']['signing_name']; + } + + $args['__partition_result'] = isset($args['__partition_result']) + ? isset($args['__partition_result']) + : call_user_func(PartitionEndpointProvider::defaultProvider(), [ + 'service' => $args['service'], + 'region' => $args['region'], + ]); + + if (isset($args['__partition_result']['signingName'])) { + return $args['__partition_result']['signingName']; + } + + if ($signingName = $args['api']->getSigningName()) { + return $signingName; + } + + return $args['service']; + } + + public static function _default_signing_region(array &$args) + { + if (isset($args['config']['signing_region'])) { + return $args['config']['signing_region']; + } + + $args['__partition_result'] = isset($args['__partition_result']) + ? isset($args['__partition_result']) + : call_user_func(PartitionEndpointProvider::defaultProvider(), [ + 'service' => $args['service'], + 'region' => $args['region'], + ]); + + return isset($args['__partition_result']['signingRegion']) + ? $args['__partition_result']['signingRegion'] + : $args['region']; + } + + 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 <<<EOT +A "version" configuration value is required. Specifying a version constraint +ensures that your code will not be affected by a breaking change made to the +service. For example, when using Amazon S3, you can lock your API version to +"2006-03-01". + +Your build of the SDK has the following version(s) of "{$service}": {$versions} + +You may provide "latest" to the "version" configuration value to utilize the +most recent available API version that your client's API provider can find. +Note: Using 'latest' in a production application is not recommended. + +A list of available API versions can be found on each client's API documentation +page: http://docs.aws.amazon.com/aws-sdk-php/v3/api/index.html. If you are +unable to load a specific API version, then you may need to update your copy of +the SDK. +EOT; + } + + public static function _missing_region(array $args) + { + $service = isset($args['service']) ? $args['service'] : ''; + + return <<<EOT +A "region" configuration value is required for the "{$service}" service +(e.g., "us-west-2"). A list of available public regions and endpoints can be +found at http://docs.aws.amazon.com/general/latest/gr/rande.html. +EOT; + } +} diff --git a/lib/aws/Aws/ClientSideMonitoring/AbstractMonitoringMiddleware.php b/lib/aws/Aws/ClientSideMonitoring/AbstractMonitoringMiddleware.php new file mode 100644 index 0000000..db6f1c9 --- /dev/null +++ b/lib/aws/Aws/ClientSideMonitoring/AbstractMonitoringMiddleware.php @@ -0,0 +1,275 @@ +<?php + +namespace Aws\ClientSideMonitoring; + +use Aws\CommandInterface; +use Aws\Exception\AwsException; +use Aws\MonitoringEventsInterface; +use Aws\ResponseContainerInterface; +use Aws\ResultInterface; +use GuzzleHttp\Promise; +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; + +/** + * @internal + */ +abstract class AbstractMonitoringMiddleware + implements MonitoringMiddlewareInterface +{ + private static $socket; + + private $nextHandler; + private $options; + protected $credentialProvider; + protected $region; + protected $service; + + protected static function getAwsExceptionHeader(AwsException $e, $headerName) + { + $response = $e->getResponse(); + if ($response !== null) { + $header = $response->getHeader($headerName); + if (!empty($header[0])) { + return $header[0]; + } + } + return null; + } + + protected static function getResultHeader(ResultInterface $result, $headerName) + { + if (isset($result['@metadata']['headers'][$headerName])) { + return $result['@metadata']['headers'][$headerName]; + } + return null; + } + + protected static function getExceptionHeader(\Exception $e, $headerName) + { + if ($e instanceof ResponseContainerInterface) { + $response = $e->getResponse(); + if ($response instanceof ResponseInterface) { + $header = $response->getHeader($headerName); + if (!empty($header[0])) { + return $header[0]; + } + } + } + return null; + } + + /** + * Constructor stores the passed in handler and options. + * + * @param callable $handler + * @param callable $credentialProvider + * @param array $options + * @param $region + * @param $service + */ + public function __construct( + callable $handler, + callable $credentialProvider, + $options, + $region, + $service + ) { + $this->nextHandler = $handler; + $this->credentialProvider = $credentialProvider; + $this->options = $options; + $this->region = $region; + $this->service = $service; + } + + /** + * Standard invoke pattern for middleware execution to be implemented by + * child classes. + * + * @param CommandInterface $cmd + * @param RequestInterface $request + * @return Promise\PromiseInterface + */ + public function __invoke(CommandInterface $cmd, RequestInterface $request) + { + $handler = $this->nextHandler; + $eventData = null; + $enabled = $this->isEnabled(); + + if ($enabled) { + $cmd['@http']['collect_stats'] = true; + $eventData = $this->populateRequestEventData( + $cmd, + $request, + $this->getNewEvent($cmd, $request) + ); + } + + $g = function ($value) use ($eventData, $enabled) { + if ($enabled) { + $eventData = $this->populateResultEventData( + $value, + $eventData + ); + $this->sendEventData($eventData); + + if ($value instanceof MonitoringEventsInterface) { + $value->appendMonitoringEvent($eventData); + } + } + if ($value instanceof \Exception || $value instanceof \Throwable) { + return Promise\rejection_for($value); + } + return $value; + }; + + return Promise\promise_for($handler($cmd, $request))->then($g, $g); + } + + private function getClientId() + { + return $this->unwrappedOptions()->getClientId(); + } + + private function getNewEvent( + CommandInterface $cmd, + RequestInterface $request + ) { + $event = [ + 'Api' => $cmd->getName(), + 'ClientId' => $this->getClientId(), + 'Region' => $this->getRegion(), + 'Service' => $this->getService(), + 'Timestamp' => (int) floor(microtime(true) * 1000), + 'UserAgent' => substr( + $request->getHeaderLine('User-Agent') . ' ' . \Aws\default_user_agent(), + 0, + 256 + ), + 'Version' => 1 + ]; + return $event; + } + + private function getPort() + { + return $this->unwrappedOptions()->getPort(); + } + + private function getRegion() + { + return $this->region; + } + + private function getService() + { + return $this->service; + } + + /** + * Returns enabled flag from options, unwrapping options if necessary. + * + * @return bool + */ + private function isEnabled() + { + return $this->unwrappedOptions()->isEnabled(); + } + + /** + * Returns $eventData array with information from the request and command. + * + * @param CommandInterface $cmd + * @param RequestInterface $request + * @param array $event + * @return array + */ + protected function populateRequestEventData( + CommandInterface $cmd, + RequestInterface $request, + array $event + ) { + $dataFormat = static::getRequestData($request); + foreach ($dataFormat as $eventKey => $value) { + if ($value !== null) { + $event[$eventKey] = $value; + } + } + return $event; + } + + /** + * Returns $eventData array with information from the response, including + * the calculation for attempt latency. + * + * @param ResultInterface|\Exception $result + * @param array $event + * @return array + */ + protected function populateResultEventData( + $result, + array $event + ) { + $dataFormat = static::getResponseData($result); + foreach ($dataFormat as $eventKey => $value) { + if ($value !== null) { + $event[$eventKey] = $value; + } + } + return $event; + } + + /** + * Creates a UDP socket resource and stores it with the class, or retrieves + * it if already instantiated and connected. Handles error-checking and + * re-connecting if necessary. If $forceNewConnection is set to true, a new + * socket will be created. + * + * @param bool $forceNewConnection + * @return Resource + */ + private function prepareSocket($forceNewConnection = false) + { + if (!is_resource(self::$socket) + || $forceNewConnection + || socket_last_error(self::$socket) + ) { + self::$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); + socket_clear_error(self::$socket); + socket_connect(self::$socket, '127.0.0.1', $this->getPort()); + } + + return self::$socket; + } + + /** + * Sends formatted monitoring event data via the UDP socket connection to + * the CSM agent endpoint. + * + * @param array $eventData + * @return int + */ + private function sendEventData(array $eventData) + { + $socket = $this->prepareSocket(); + $datagram = json_encode($eventData); + $result = socket_write($socket, $datagram, strlen($datagram)); + if ($result === false) { + $this->prepareSocket(true); + } + return $result; + } + + /** + * Unwraps options, if needed, and returns them. + * + * @return ConfigurationInterface + */ + private function unwrappedOptions() + { + if (!($this->options instanceof ConfigurationInterface)) { + $this->options = ConfigurationProvider::unwrap($this->options); + } + return $this->options; + } +} \ No newline at end of file diff --git a/lib/aws/Aws/ClientSideMonitoring/ApiCallAttemptMonitoringMiddleware.php b/lib/aws/Aws/ClientSideMonitoring/ApiCallAttemptMonitoringMiddleware.php new file mode 100644 index 0000000..91810bb --- /dev/null +++ b/lib/aws/Aws/ClientSideMonitoring/ApiCallAttemptMonitoringMiddleware.php @@ -0,0 +1,262 @@ +<?php + +namespace Aws\ClientSideMonitoring; + +use Aws\CommandInterface; +use Aws\Credentials\CredentialsInterface; +use Aws\Exception\AwsException; +use Aws\ResponseContainerInterface; +use Aws\ResultInterface; +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; + +/** + * @internal + */ +class ApiCallAttemptMonitoringMiddleware extends AbstractMonitoringMiddleware +{ + + /** + * Standard middleware wrapper function with CSM options passed in. + * + * @param callable $credentialProvider + * @param mixed $options + * @param string $region + * @param string $service + * @return callable + */ + public static function wrap( + callable $credentialProvider, + $options, + $region, + $service + ) { + return function (callable $handler) use ( + $credentialProvider, + $options, + $region, + $service + ) { + return new static( + $handler, + $credentialProvider, + $options, + $region, + $service + ); + }; + } + + /** + * {@inheritdoc} + */ + public static function getRequestData(RequestInterface $request) + { + return [ + 'Fqdn' => $request->getUri()->getHost(), + ]; + } + + /** + * {@inheritdoc} + */ + public static function getResponseData($klass) + { + if ($klass instanceof ResultInterface) { + return [ + 'AttemptLatency' => self::getResultAttemptLatency($klass), + 'DestinationIp' => self::getResultDestinationIp($klass), + 'DnsLatency' => self::getResultDnsLatency($klass), + 'HttpStatusCode' => self::getResultHttpStatusCode($klass), + 'XAmzId2' => self::getResultHeader($klass, 'x-amz-id-2'), + 'XAmzRequestId' => self::getResultHeader($klass, 'x-amz-request-id'), + 'XAmznRequestId' => self::getResultHeader($klass, 'x-amzn-RequestId'), + ]; + } + if ($klass instanceof AwsException) { + return [ + 'AttemptLatency' => self::getAwsExceptionAttemptLatency($klass), + 'AwsException' => substr( + self::getAwsExceptionErrorCode($klass), + 0, + 128 + ), + 'AwsExceptionMessage' => substr( + self::getAwsExceptionMessage($klass), + 0, + 512 + ), + 'DestinationIp' => self::getAwsExceptionDestinationIp($klass), + 'DnsLatency' => self::getAwsExceptionDnsLatency($klass), + 'HttpStatusCode' => self::getAwsExceptionHttpStatusCode($klass), + 'XAmzId2' => self::getAwsExceptionHeader($klass, 'x-amz-id-2'), + 'XAmzRequestId' => self::getAwsExceptionHeader( + $klass, + 'x-amz-request-id' + ), + 'XAmznRequestId' => self::getAwsExceptionHeader( + $klass, + 'x-amzn-RequestId' + ), + ]; + } + if ($klass instanceof \Exception) { + return [ + 'HttpStatusCode' => self::getExceptionHttpStatusCode($klass), + 'SdkException' => substr( + self::getExceptionCode($klass), + 0, + 128 + ), + 'SdkExceptionMessage' => substr( + self::getExceptionMessage($klass), + 0, + 512 + ), + 'XAmzId2' => self::getExceptionHeader($klass, 'x-amz-id-2'), + 'XAmzRequestId' => self::getExceptionHeader($klass, 'x-amz-request-id'), + 'XAmznRequestId' => self::getExceptionHeader($klass, 'x-amzn-RequestId'), + ]; + } + + throw new \InvalidArgumentException('Parameter must be an instance of ResultInterface, AwsException or Exception.'); + } + + private static function getResultAttemptLatency(ResultInterface $result) + { + if (isset($result['@metadata']['transferStats']['http'])) { + $attempt = end($result['@metadata']['transferStats']['http']); + if (isset($attempt['total_time'])) { + return (int) floor($attempt['total_time'] * 1000); + } + } + return null; + } + + private static function getResultDestinationIp(ResultInterface $result) + { + if (isset($result['@metadata']['transferStats']['http'])) { + $attempt = end($result['@metadata']['transferStats']['http']); + if (isset($attempt['primary_ip'])) { + return $attempt['primary_ip']; + } + } + return null; + } + + private static function getResultDnsLatency(ResultInterface $result) + { + if (isset($result['@metadata']['transferStats']['http'])) { + $attempt = end($result['@metadata']['transferStats']['http']); + if (isset($attempt['namelookup_time'])) { + return (int) floor($attempt['namelookup_time'] * 1000); + } + } + return null; + } + + private static function getResultHttpStatusCode(ResultInterface $result) + { + return $result['@metadata']['statusCode']; + } + + private static function getAwsExceptionAttemptLatency(AwsException $e) { + $attempt = $e->getTransferInfo(); + if (isset($attempt['total_time'])) { + return (int) floor($attempt['total_time'] * 1000); + } + return null; + } + + private static function getAwsExceptionErrorCode(AwsException $e) { + return $e->getAwsErrorCode(); + } + + private static function getAwsExceptionMessage(AwsException $e) { + return $e->getAwsErrorMessage(); + } + + private static function getAwsExceptionDestinationIp(AwsException $e) { + $attempt = $e->getTransferInfo(); + if (isset($attempt['primary_ip'])) { + return $attempt['primary_ip']; + } + return null; + } + + private static function getAwsExceptionDnsLatency(AwsException $e) { + $attempt = $e->getTransferInfo(); + if (isset($attempt['namelookup_time'])) { + return (int) floor($attempt['namelookup_time'] * 1000); + } + return null; + } + + private static function getAwsExceptionHttpStatusCode(AwsException $e) { + $response = $e->getResponse(); + if ($response !== null) { + return $response->getStatusCode(); + } + return null; + } + + private static function getExceptionHttpStatusCode(\Exception $e) { + if ($e instanceof ResponseContainerInterface) { + $response = $e->getResponse(); + if ($response instanceof ResponseInterface) { + return $response->getStatusCode(); + } + } + return null; + } + + private static function getExceptionCode(\Exception $e) { + if (!($e instanceof AwsException)) { + return get_class($e); + } + return null; + } + + private static function getExceptionMessage(\Exception $e) { + if (!($e instanceof AwsException)) { + return $e->getMessage(); + } + return null; + } + + /** + * {@inheritdoc} + */ + protected function populateRequestEventData( + CommandInterface $cmd, + RequestInterface $request, + array $event + ) { + $event = parent::populateRequestEventData($cmd, $request, $event); + $event['Type'] = 'ApiCallAttempt'; + return $event; + } + + /** + * {@inheritdoc} + */ + protected function populateResultEventData( + $result, + array $event + ) { + $event = parent::populateResultEventData($result, $event); + + $provider = $this->credentialProvider; + /** @var CredentialsInterface $credentials */ + $credentials = $provider()->wait(); + $event['AccessKey'] = $credentials->getAccessKeyId(); + $sessionToken = $credentials->getSecurityToken(); + if ($sessionToken !== null) { + $event['SessionToken'] = $sessionToken; + } + if (empty($event['AttemptLatency'])) { + $event['AttemptLatency'] = (int) (floor(microtime(true) * 1000) - $event['Timestamp']); + } + return $event; + } +} diff --git a/lib/aws/Aws/ClientSideMonitoring/ApiCallMonitoringMiddleware.php b/lib/aws/Aws/ClientSideMonitoring/ApiCallMonitoringMiddleware.php new file mode 100644 index 0000000..0a5abda --- /dev/null +++ b/lib/aws/Aws/ClientSideMonitoring/ApiCallMonitoringMiddleware.php @@ -0,0 +1,176 @@ +<?php + +namespace Aws\ClientSideMonitoring; + +use Aws\CommandInterface; +use Aws\Exception\AwsException; +use Aws\MonitoringEventsInterface; +use Aws\ResultInterface; +use Psr\Http\Message\RequestInterface; + +/** + * @internal + */ +class ApiCallMonitoringMiddleware extends AbstractMonitoringMiddleware +{ + + /** + * Api Call Attempt event keys for each Api Call event key + * + * @var array + */ + private static $eventKeys = [ + 'FinalAwsException' => 'AwsException', + 'FinalAwsExceptionMessage' => 'AwsExceptionMessage', + 'FinalSdkException' => 'SdkException', + 'FinalSdkExceptionMessage' => 'SdkExceptionMessage', + 'FinalHttpStatusCode' => 'HttpStatusCode', + ]; + + /** + * Standard middleware wrapper function with CSM options passed in. + * + * @param callable $credentialProvider + * @param mixed $options + * @param string $region + * @param string $service + * @return callable + */ + public static function wrap( + callable $credentialProvider, + $options, + $region, + $service + ) { + return function (callable $handler) use ( + $credentialProvider, + $options, + $region, + $service + ) { + return new static( + $handler, + $credentialProvider, + $options, + $region, + $service + ); + }; + } + + /** + * {@inheritdoc} + */ + public static function getRequestData(RequestInterface $request) + { + return []; + } + + /** + * {@inheritdoc} + */ + public static function getResponseData($klass) + { + if ($klass instanceof ResultInterface) { + $data = [ + 'AttemptCount' => self::getResultAttemptCount($klass), + 'MaxRetriesExceeded' => 0, + ]; + } elseif ($klass instanceof \Exception) { + $data = [ + 'AttemptCount' => self::getExceptionAttemptCount($klass), + 'MaxRetriesExceeded' => self::getMaxRetriesExceeded($klass), + ]; + } else { + throw new \InvalidArgumentException('Parameter must be an instance of ResultInterface or Exception.'); + } + + return $data + self::getFinalAttemptData($klass); + } + + private static function getResultAttemptCount(ResultInterface $result) { + if (isset($result['@metadata']['transferStats']['http'])) { + return count($result['@metadata']['transferStats']['http']); + } + return 1; + } + + private static function getExceptionAttemptCount(\Exception $e) { + $attemptCount = 0; + if ($e instanceof MonitoringEventsInterface) { + foreach ($e->getMonitoringEvents() as $event) { + if (isset($event['Type']) && + $event['Type'] === 'ApiCallAttempt') { + $attemptCount++; + } + } + + } + return $attemptCount; + } + + private static function getFinalAttemptData($klass) + { + $data = []; + if ($klass instanceof MonitoringEventsInterface) { + $finalAttempt = self::getFinalAttempt($klass->getMonitoringEvents()); + + if (!empty($finalAttempt)) { + foreach (self::$eventKeys as $callKey => $attemptKey) { + if (isset($finalAttempt[$attemptKey])) { + $data[$callKey] = $finalAttempt[$attemptKey]; + } + } + } + } + + return $data; + } + + private static function getFinalAttempt(array $events) + { + for (end($events); key($events) !== null; prev($events)) { + $current = current($events); + if (isset($current['Type']) + && $current['Type'] === 'ApiCallAttempt' + ) { + return $current; + } + } + + return null; + } + + private static function getMaxRetriesExceeded($klass) + { + if ($klass instanceof AwsException && $klass->isMaxRetriesExceeded()) { + return 1; + } + return 0; + } + + /** + * {@inheritdoc} + */ + protected function populateRequestEventData( + CommandInterface $cmd, + RequestInterface $request, + array $event + ) { + $event = parent::populateRequestEventData($cmd, $request, $event); + $event['Type'] = 'ApiCall'; + return $event; + } + + /** + * {@inheritdoc} + */ + protected function populateResultEventData( + $result, + array $event + ) { + $event = parent::populateResultEventData($result, $event); + $event['Latency'] = (int) (floor(microtime(true) * 1000) - $event['Timestamp']); + return $event; + } +} diff --git a/lib/aws/Aws/ClientSideMonitoring/Configuration.php b/lib/aws/Aws/ClientSideMonitoring/Configuration.php new file mode 100644 index 0000000..0cb82e0 --- /dev/null +++ b/lib/aws/Aws/ClientSideMonitoring/Configuration.php @@ -0,0 +1,65 @@ +<?php +namespace Aws\ClientSideMonitoring; + +class Configuration implements ConfigurationInterface +{ + private $clientId; + private $enabled; + private $port; + + /** + * Constructs a new Configuration object with the specified CSM options set. + * + * @param mixed $enabled + * @param string|int $port + * @param string $clientId + */ + public function __construct($enabled, $port, $clientId = '') + { + $this->port = filter_var($port, FILTER_VALIDATE_INT); + if ($this->port === false) { + throw new \InvalidArgumentException( + "CSM 'port' value must be an integer!"); + } + + // Unparsable $enabled flag errors on the side of disabling CSM + $this->enabled = filter_var($enabled, FILTER_VALIDATE_BOOLEAN); + $this->clientId = trim($clientId); + } + + /** + * {@inheritdoc} + */ + public function isEnabled() + { + return $this->enabled; + } + + /** + * {@inheritdoc} + */ + public function getClientId() + { + return $this->clientId; + } + + /** + * {@inheritdoc} + */ + public function getPort() + { + return $this->port; + } + + /** + * {@inheritdoc} + */ + public function toArray() + { + return [ + 'client_id' => $this->getClientId(), + 'enabled' => $this->isEnabled(), + 'port' => $this->getPort() + ]; + } +} \ No newline at end of file diff --git a/lib/aws/Aws/ClientSideMonitoring/ConfigurationInterface.php b/lib/aws/Aws/ClientSideMonitoring/ConfigurationInterface.php new file mode 100644 index 0000000..f6f71dd --- /dev/null +++ b/lib/aws/Aws/ClientSideMonitoring/ConfigurationInterface.php @@ -0,0 +1,37 @@ +<?php +namespace Aws\ClientSideMonitoring; + +/** + * Provides access to client-side monitoring configuration options: + * 'client_id', 'enabled', 'port' + */ +interface ConfigurationInterface +{ + /** + * Checks whether or not client-side monitoring is enabled. + * + * @return bool + */ + public function isEnabled(); + + /** + * Returns the Client ID, if available. + * + * @return string|null + */ + public function getClientId(); + + /** + * Returns the configured port. + * + * @return int|null + */ + public function getPort(); + + /** + * Returns the configuration as an associative array. + * + * @return array + */ + public function toArray(); +} diff --git a/lib/aws/Aws/ClientSideMonitoring/ConfigurationProvider.php b/lib/aws/Aws/ClientSideMonitoring/ConfigurationProvider.php new file mode 100644 index 0000000..f463465 --- /dev/null +++ b/lib/aws/Aws/ClientSideMonitoring/ConfigurationProvider.php @@ -0,0 +1,342 @@ +<?php +namespace Aws\ClientSideMonitoring; + +use Aws\CacheInterface; +use Aws\ClientSideMonitoring\Exception\ConfigurationException; +use GuzzleHttp\Promise; +use GuzzleHttp\Promise\PromiseInterface; + +/** + * A configuration provider is a function that accepts no arguments and returns + * a promise that is fulfilled with a {@see \Aws\ClientSideMonitoring\ConfigurationInterface} + * or rejected with an {@see \Aws\ClientSideMonitoring\Exception\ConfigurationException}. + * + * <code> + * use Aws\ClientSideMonitoring\ConfigurationProvider; + * $provider = ConfigurationProvider::defaultProvider(); + * // Returns a ConfigurationInterface or throws. + * $config = $provider()->wait(); + * </code> + * + * Configuration providers can be composed to create configuration using + * conditional logic that can create different configurations in different + * environments. You can compose multiple providers into a single provider using + * {@see Aws\ClientSideMonitoring\ConfigurationProvider::chain}. This function + * accepts providers as variadic arguments and returns a new function that will + * invoke each provider until a successful configuration is returned. + * + * <code> + * // First try an INI file at this location. + * $a = ConfigurationProvider::ini(null, '/path/to/file.ini'); + * // Then try an INI file at this location. + * $b = ConfigurationProvider::ini(null, '/path/to/other-file.ini'); + * // Then try loading from environment variables. + * $c = ConfigurationProvider::env(); + * // Combine the three providers together. + * $composed = ConfigurationProvider::chain($a, $b, $c); + * // Returns a promise that is fulfilled with a configuration or throws. + * $promise = $composed(); + * // Wait on the configuration to resolve. + * $config = $promise->wait(); + * </code> + */ +class ConfigurationProvider +{ + + const CACHE_KEY = 'aws_cached_csm_config'; + const DEFAULT_CLIENT_ID = ''; + const DEFAULT_ENABLED = false; + const DEFAULT_PORT = 31000; + const ENV_CLIENT_ID = 'AWS_CSM_CLIENT_ID'; + const ENV_ENABLED = 'AWS_CSM_ENABLED'; + const ENV_PORT = 'AWS_CSM_PORT'; + const ENV_PROFILE = 'AWS_PROFILE'; + + /** + * Wraps a credential provider and saves provided credentials in an + * instance of Aws\CacheInterface. Forwards calls when no credentials found + * in cache and updates cache with the results. + * + * @param callable $provider Credentials provider function to wrap + * @param CacheInterface $cache Cache to store credentials + * @param string|null $cacheKey (optional) Cache key to use + * + * @return callable + */ + public static function cache( + callable $provider, + CacheInterface $cache, + $cacheKey = null + ) { + $cacheKey = $cacheKey ?: self::CACHE_KEY; + + return function () use ($provider, $cache, $cacheKey) { + $found = $cache->get($cacheKey); + if ($found instanceof ConfigurationInterface) { + return Promise\promise_for($found); + } + + return $provider() + ->then(function (ConfigurationInterface $config) use ( + $cache, + $cacheKey + ) { + $cache->set( + $cacheKey, + $config + ); + + return $config; + }); + }; + } + + /** + * 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; + }; + } + + /** + * Create a default CSM config provider that first checks for environment + * variables, then checks for a specified profile in ~/.aws/config, then + * checks for the "aws_csm" profile in ~/.aws/config, and failing those uses + * a default fallback set of configuration options. + * + * This provider is automatically wrapped in a memoize function that caches + * previously provided config options. + * + * @param array $config Optional array of ecs/instance profile credentials + * provider options. + * + * @return callable + */ + public static function defaultProvider(array $config = []) + { + $configProviders = [ + self::env(), + self::ini(), + self::fallback() + ]; + + $memo = self::memoize( + call_user_func_array('self::chain', $configProviders) + ); + + if (isset($config['csm']) && $config['csm'] instanceof CacheInterface) { + return self::cache($memo, $config['csm'], self::CACHE_KEY); + } + + return $memo; + } + + /** + * Provider that creates CSM config from environment variables. + * + * @return callable + */ + public static function env() + { + return function () { + // Use credentials from environment variables, if available + $enabled = getenv(self::ENV_ENABLED); + if ($enabled !== false) { + return Promise\promise_for( + new Configuration( + $enabled, + getenv(self::ENV_PORT) ?: self::DEFAULT_PORT, + getenv(self:: ENV_CLIENT_ID) ?: self::DEFAULT_CLIENT_ID + ) + ); + } + + return self::reject('Could not find environment variable CSM config' + . ' in ' . self::ENV_ENABLED. '/' . self::ENV_PORT . '/' + . self::ENV_CLIENT_ID); + }; + } + + /** + * Fallback config options when other sources are not set. + * + * @return callable + */ + public static function fallback() + { + return function() { + return Promise\promise_for( + new Configuration( + self::DEFAULT_ENABLED, + self::DEFAULT_PORT, + self::DEFAULT_CLIENT_ID + ) + ); + }; + } + + /** + * 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; + } + + /** + * CSM config provider that creates CSM config 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 "aws_csm" profile in "~/.aws/config". + * @param string|null $filename If provided, uses a custom filename rather + * than looking in the home directory. + * + * @return callable + */ + public static function ini($profile = null, $filename = null) + { + $filename = $filename ?: (self::getHomeDir() . '/.aws/config'); + $profile = $profile ?: (getenv(self::ENV_PROFILE) ?: 'aws_csm'); + + return function () use ($profile, $filename) { + if (!is_readable($filename)) { + return self::reject("Cannot read CSM config from $filename"); + } + $data = \Aws\parse_ini_file($filename, true); + if ($data === false) { + return self::reject("Invalid config file: $filename"); + } + if (!isset($data[$profile])) { + return self::reject("'$profile' not found in config file"); + } + if (!isset($data[$profile]['csm_enabled'])) { + return self::reject("Required CSM config values not present in + INI profile '{$profile}' ({$filename})"); + } + + // port is optional + if (empty($data[$profile]['csm_port'])) { + $data[$profile]['csm_port'] = self::DEFAULT_PORT; + } + + // client_id is optional + if (empty($data[$profile]['csm_client_id'])) { + $data[$profile]['csm_client_id'] = self::DEFAULT_CLIENT_ID; + } + + return Promise\promise_for( + new Configuration( + $data[$profile]['csm_enabled'], + $data[$profile]['csm_port'], + $data[$profile]['csm_client_id'] + ) + ); + }; + } + + /** + * Wraps a CSM config provider and caches previously provided configuration. + * + * Ensures that cached configuration is refreshed when it expires. + * + * @param callable $provider CSM config provider function to wrap. + * + * @return callable + */ + public static function memoize(callable $provider) + { + return function () use ($provider) { + static $result; + static $isConstant; + + // Constant config will be returned constantly. + if ($isConstant) { + return $result; + } + + // Create the initial promise that will be used as the cached value + // until it expires. + if (null === $result) { + $result = $provider(); + } + + // Return config and set flag that provider is already set + return $result + ->then(function (ConfigurationInterface $config) use (&$isConstant) { + $isConstant = true; + return $config; + }); + }; + } + + /** + * Reject promise with standardized exception. + * + * @param $msg + * @return Promise\RejectedPromise + */ + private static function reject($msg) + { + return new Promise\RejectedPromise(new ConfigurationException($msg)); + } + + /** + * Unwraps a configuration object in whatever valid form it is in, + * always returning a ConfigurationInterface object. + * + * @param mixed $config + * @return ConfigurationInterface + * @throws \InvalidArgumentException + */ + public static function unwrap($config) + { + if (is_callable($config)) { + $config = $config(); + } + if ($config instanceof PromiseInterface) { + $config = $config->wait(); + } + if ($config instanceof ConfigurationInterface) { + return $config; + } elseif (is_array($config) && isset($config['enabled'])) { + $client_id = isset($config['client_id']) ? $config['client_id'] + : self::DEFAULT_CLIENT_ID; + $port = isset($config['port']) ? $config['port'] + : self::DEFAULT_PORT; + return new Configuration($config['enabled'], $port, $client_id); + } + + throw new \InvalidArgumentException('Not a valid CSM configuration ' + . 'argument.'); + } +} \ No newline at end of file diff --git a/lib/aws/Aws/ClientSideMonitoring/Exception/ConfigurationException.php b/lib/aws/Aws/ClientSideMonitoring/Exception/ConfigurationException.php new file mode 100644 index 0000000..827743e --- /dev/null +++ b/lib/aws/Aws/ClientSideMonitoring/Exception/ConfigurationException.php @@ -0,0 +1,15 @@ +<?php +namespace Aws\ClientSideMonitoring\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; + + +/** + * Represents an error interacting with configuration for client-side monitoring. + */ +class ConfigurationException extends \RuntimeException implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; +} diff --git a/lib/aws/Aws/ClientSideMonitoring/MonitoringMiddlewareInterface.php b/lib/aws/Aws/ClientSideMonitoring/MonitoringMiddlewareInterface.php new file mode 100644 index 0000000..e3abd12 --- /dev/null +++ b/lib/aws/Aws/ClientSideMonitoring/MonitoringMiddlewareInterface.php @@ -0,0 +1,35 @@ +<?php + +namespace Aws\ClientSideMonitoring; + +use Aws\CommandInterface; +use Aws\Exception\AwsException; +use Aws\ResultInterface; +use GuzzleHttp\Psr7\Request; +use Psr\Http\Message\RequestInterface; + +/** + * @internal + */ +interface MonitoringMiddlewareInterface +{ + + /** + * Data for event properties to be sent to the monitoring agent. + * + * @param RequestInterface $request + * @return array + */ + public static function getRequestData(RequestInterface $request); + + + /** + * Data for event properties to be sent to the monitoring agent. + * + * @param ResultInterface|AwsException|\Exception $klass + * @return array + */ + public static function getResponseData($klass); + + public function __invoke(CommandInterface $cmd, RequestInterface $request); +} \ No newline at end of file diff --git a/lib/aws/Aws/Cloud9/Cloud9Client.php b/lib/aws/Aws/Cloud9/Cloud9Client.php new file mode 100644 index 0000000..74925d3 --- /dev/null +++ b/lib/aws/Aws/Cloud9/Cloud9Client.php @@ -0,0 +1,29 @@ +<?php +namespace Aws\Cloud9; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Cloud9** service. + * @method \Aws\Result createEnvironmentEC2(array $args = []) + * @method \GuzzleHttp\Promise\Promise createEnvironmentEC2Async(array $args = []) + * @method \Aws\Result createEnvironmentMembership(array $args = []) + * @method \GuzzleHttp\Promise\Promise createEnvironmentMembershipAsync(array $args = []) + * @method \Aws\Result deleteEnvironment(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteEnvironmentAsync(array $args = []) + * @method \Aws\Result deleteEnvironmentMembership(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteEnvironmentMembershipAsync(array $args = []) + * @method \Aws\Result describeEnvironmentMemberships(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEnvironmentMembershipsAsync(array $args = []) + * @method \Aws\Result describeEnvironmentStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEnvironmentStatusAsync(array $args = []) + * @method \Aws\Result describeEnvironments(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEnvironmentsAsync(array $args = []) + * @method \Aws\Result listEnvironments(array $args = []) + * @method \GuzzleHttp\Promise\Promise listEnvironmentsAsync(array $args = []) + * @method \Aws\Result updateEnvironment(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateEnvironmentAsync(array $args = []) + * @method \Aws\Result updateEnvironmentMembership(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateEnvironmentMembershipAsync(array $args = []) + */ +class Cloud9Client extends AwsClient {} diff --git a/lib/aws/Aws/Cloud9/Exception/Cloud9Exception.php b/lib/aws/Aws/Cloud9/Exception/Cloud9Exception.php new file mode 100644 index 0000000..a7b3381 --- /dev/null +++ b/lib/aws/Aws/Cloud9/Exception/Cloud9Exception.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Cloud9\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Cloud9** service. + */ +class Cloud9Exception extends AwsException {} diff --git a/lib/aws/Aws/CloudDirectory/CloudDirectoryClient.php b/lib/aws/Aws/CloudDirectory/CloudDirectoryClient.php new file mode 100644 index 0000000..20f49c9 --- /dev/null +++ b/lib/aws/Aws/CloudDirectory/CloudDirectoryClient.php @@ -0,0 +1,141 @@ +<?php +namespace Aws\CloudDirectory; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon CloudDirectory** service. + * @method \Aws\Result addFacetToObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise addFacetToObjectAsync(array $args = []) + * @method \Aws\Result applySchema(array $args = []) + * @method \GuzzleHttp\Promise\Promise applySchemaAsync(array $args = []) + * @method \Aws\Result attachObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachObjectAsync(array $args = []) + * @method \Aws\Result attachPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachPolicyAsync(array $args = []) + * @method \Aws\Result attachToIndex(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachToIndexAsync(array $args = []) + * @method \Aws\Result attachTypedLink(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachTypedLinkAsync(array $args = []) + * @method \Aws\Result batchRead(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchReadAsync(array $args = []) + * @method \Aws\Result batchWrite(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchWriteAsync(array $args = []) + * @method \Aws\Result createDirectory(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDirectoryAsync(array $args = []) + * @method \Aws\Result createFacet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createFacetAsync(array $args = []) + * @method \Aws\Result createIndex(array $args = []) + * @method \GuzzleHttp\Promise\Promise createIndexAsync(array $args = []) + * @method \Aws\Result createObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise createObjectAsync(array $args = []) + * @method \Aws\Result createSchema(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSchemaAsync(array $args = []) + * @method \Aws\Result createTypedLinkFacet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTypedLinkFacetAsync(array $args = []) + * @method \Aws\Result deleteDirectory(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDirectoryAsync(array $args = []) + * @method \Aws\Result deleteFacet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteFacetAsync(array $args = []) + * @method \Aws\Result deleteObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteObjectAsync(array $args = []) + * @method \Aws\Result deleteSchema(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSchemaAsync(array $args = []) + * @method \Aws\Result deleteTypedLinkFacet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTypedLinkFacetAsync(array $args = []) + * @method \Aws\Result detachFromIndex(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachFromIndexAsync(array $args = []) + * @method \Aws\Result detachObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachObjectAsync(array $args = []) + * @method \Aws\Result detachPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachPolicyAsync(array $args = []) + * @method \Aws\Result detachTypedLink(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachTypedLinkAsync(array $args = []) + * @method \Aws\Result disableDirectory(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableDirectoryAsync(array $args = []) + * @method \Aws\Result enableDirectory(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableDirectoryAsync(array $args = []) + * @method \Aws\Result getAppliedSchemaVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAppliedSchemaVersionAsync(array $args = []) + * @method \Aws\Result getDirectory(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDirectoryAsync(array $args = []) + * @method \Aws\Result getFacet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getFacetAsync(array $args = []) + * @method \Aws\Result getLinkAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLinkAttributesAsync(array $args = []) + * @method \Aws\Result getObjectAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectAttributesAsync(array $args = []) + * @method \Aws\Result getObjectInformation(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectInformationAsync(array $args = []) + * @method \Aws\Result getSchemaAsJson(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSchemaAsJsonAsync(array $args = []) + * @method \Aws\Result getTypedLinkFacetInformation(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTypedLinkFacetInformationAsync(array $args = []) + * @method \Aws\Result listAppliedSchemaArns(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAppliedSchemaArnsAsync(array $args = []) + * @method \Aws\Result listAttachedIndices(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAttachedIndicesAsync(array $args = []) + * @method \Aws\Result listDevelopmentSchemaArns(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDevelopmentSchemaArnsAsync(array $args = []) + * @method \Aws\Result listDirectories(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDirectoriesAsync(array $args = []) + * @method \Aws\Result listFacetAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise listFacetAttributesAsync(array $args = []) + * @method \Aws\Result listFacetNames(array $args = []) + * @method \GuzzleHttp\Promise\Promise listFacetNamesAsync(array $args = []) + * @method \Aws\Result listIncomingTypedLinks(array $args = []) + * @method \GuzzleHttp\Promise\Promise listIncomingTypedLinksAsync(array $args = []) + * @method \Aws\Result listIndex(array $args = []) + * @method \GuzzleHttp\Promise\Promise listIndexAsync(array $args = []) + * @method \Aws\Result listObjectAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise listObjectAttributesAsync(array $args = []) + * @method \Aws\Result listObjectChildren(array $args = []) + * @method \GuzzleHttp\Promise\Promise listObjectChildrenAsync(array $args = []) + * @method \Aws\Result listObjectParentPaths(array $args = []) + * @method \GuzzleHttp\Promise\Promise listObjectParentPathsAsync(array $args = []) + * @method \Aws\Result listObjectParents(array $args = []) + * @method \GuzzleHttp\Promise\Promise listObjectParentsAsync(array $args = []) + * @method \Aws\Result listObjectPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise listObjectPoliciesAsync(array $args = []) + * @method \Aws\Result listOutgoingTypedLinks(array $args = []) + * @method \GuzzleHttp\Promise\Promise listOutgoingTypedLinksAsync(array $args = []) + * @method \Aws\Result listPolicyAttachments(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPolicyAttachmentsAsync(array $args = []) + * @method \Aws\Result listPublishedSchemaArns(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPublishedSchemaArnsAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result listTypedLinkFacetAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTypedLinkFacetAttributesAsync(array $args = []) + * @method \Aws\Result listTypedLinkFacetNames(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTypedLinkFacetNamesAsync(array $args = []) + * @method \Aws\Result lookupPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise lookupPolicyAsync(array $args = []) + * @method \Aws\Result publishSchema(array $args = []) + * @method \GuzzleHttp\Promise\Promise publishSchemaAsync(array $args = []) + * @method \Aws\Result putSchemaFromJson(array $args = []) + * @method \GuzzleHttp\Promise\Promise putSchemaFromJsonAsync(array $args = []) + * @method \Aws\Result removeFacetFromObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeFacetFromObjectAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateFacet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateFacetAsync(array $args = []) + * @method \Aws\Result updateLinkAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateLinkAttributesAsync(array $args = []) + * @method \Aws\Result updateObjectAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateObjectAttributesAsync(array $args = []) + * @method \Aws\Result updateSchema(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSchemaAsync(array $args = []) + * @method \Aws\Result updateTypedLinkFacet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateTypedLinkFacetAsync(array $args = []) + * @method \Aws\Result upgradeAppliedSchema(array $args = []) + * @method \GuzzleHttp\Promise\Promise upgradeAppliedSchemaAsync(array $args = []) + * @method \Aws\Result upgradePublishedSchema(array $args = []) + * @method \GuzzleHttp\Promise\Promise upgradePublishedSchemaAsync(array $args = []) + * @method \Aws\Result listManagedSchemaArns(array $args = []) (supported in versions 2017-01-11) + * @method \GuzzleHttp\Promise\Promise listManagedSchemaArnsAsync(array $args = []) (supported in versions 2017-01-11) + */ +class CloudDirectoryClient extends AwsClient {} diff --git a/lib/aws/Aws/CloudDirectory/Exception/CloudDirectoryException.php b/lib/aws/Aws/CloudDirectory/Exception/CloudDirectoryException.php new file mode 100644 index 0000000..39d2898 --- /dev/null +++ b/lib/aws/Aws/CloudDirectory/Exception/CloudDirectoryException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CloudDirectory\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon CloudDirectory** service. + */ +class CloudDirectoryException extends AwsException {} diff --git a/lib/aws/Aws/CloudFormation/CloudFormationClient.php b/lib/aws/Aws/CloudFormation/CloudFormationClient.php new file mode 100644 index 0000000..af213e0 --- /dev/null +++ b/lib/aws/Aws/CloudFormation/CloudFormationClient.php @@ -0,0 +1,100 @@ +<?php +namespace Aws\CloudFormation; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS CloudFormation** service. + * + * @method \Aws\Result cancelUpdateStack(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelUpdateStackAsync(array $args = []) + * @method \Aws\Result continueUpdateRollback(array $args = []) + * @method \GuzzleHttp\Promise\Promise continueUpdateRollbackAsync(array $args = []) + * @method \Aws\Result createChangeSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createChangeSetAsync(array $args = []) + * @method \Aws\Result createStack(array $args = []) + * @method \GuzzleHttp\Promise\Promise createStackAsync(array $args = []) + * @method \Aws\Result createStackInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise createStackInstancesAsync(array $args = []) + * @method \Aws\Result createStackSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createStackSetAsync(array $args = []) + * @method \Aws\Result deleteChangeSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteChangeSetAsync(array $args = []) + * @method \Aws\Result deleteStack(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteStackAsync(array $args = []) + * @method \Aws\Result deleteStackInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteStackInstancesAsync(array $args = []) + * @method \Aws\Result deleteStackSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteStackSetAsync(array $args = []) + * @method \Aws\Result describeAccountLimits(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAccountLimitsAsync(array $args = []) + * @method \Aws\Result describeChangeSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeChangeSetAsync(array $args = []) + * @method \Aws\Result describeStackDriftDetectionStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStackDriftDetectionStatusAsync(array $args = []) + * @method \Aws\Result describeStackEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStackEventsAsync(array $args = []) + * @method \Aws\Result describeStackInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStackInstanceAsync(array $args = []) + * @method \Aws\Result describeStackResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStackResourceAsync(array $args = []) + * @method \Aws\Result describeStackResourceDrifts(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStackResourceDriftsAsync(array $args = []) + * @method \Aws\Result describeStackResources(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStackResourcesAsync(array $args = []) + * @method \Aws\Result describeStackSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStackSetAsync(array $args = []) + * @method \Aws\Result describeStackSetOperation(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStackSetOperationAsync(array $args = []) + * @method \Aws\Result describeStacks(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStacksAsync(array $args = []) + * @method \Aws\Result detectStackDrift(array $args = []) + * @method \GuzzleHttp\Promise\Promise detectStackDriftAsync(array $args = []) + * @method \Aws\Result detectStackResourceDrift(array $args = []) + * @method \GuzzleHttp\Promise\Promise detectStackResourceDriftAsync(array $args = []) + * @method \Aws\Result estimateTemplateCost(array $args = []) + * @method \GuzzleHttp\Promise\Promise estimateTemplateCostAsync(array $args = []) + * @method \Aws\Result executeChangeSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise executeChangeSetAsync(array $args = []) + * @method \Aws\Result getStackPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getStackPolicyAsync(array $args = []) + * @method \Aws\Result getTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTemplateAsync(array $args = []) + * @method \Aws\Result getTemplateSummary(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTemplateSummaryAsync(array $args = []) + * @method \Aws\Result listChangeSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listChangeSetsAsync(array $args = []) + * @method \Aws\Result listExports(array $args = []) + * @method \GuzzleHttp\Promise\Promise listExportsAsync(array $args = []) + * @method \Aws\Result listImports(array $args = []) + * @method \GuzzleHttp\Promise\Promise listImportsAsync(array $args = []) + * @method \Aws\Result listStackInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise listStackInstancesAsync(array $args = []) + * @method \Aws\Result listStackResources(array $args = []) + * @method \GuzzleHttp\Promise\Promise listStackResourcesAsync(array $args = []) + * @method \Aws\Result listStackSetOperationResults(array $args = []) + * @method \GuzzleHttp\Promise\Promise listStackSetOperationResultsAsync(array $args = []) + * @method \Aws\Result listStackSetOperations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listStackSetOperationsAsync(array $args = []) + * @method \Aws\Result listStackSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listStackSetsAsync(array $args = []) + * @method \Aws\Result listStacks(array $args = []) + * @method \GuzzleHttp\Promise\Promise listStacksAsync(array $args = []) + * @method \Aws\Result setStackPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise setStackPolicyAsync(array $args = []) + * @method \Aws\Result signalResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise signalResourceAsync(array $args = []) + * @method \Aws\Result stopStackSetOperation(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopStackSetOperationAsync(array $args = []) + * @method \Aws\Result updateStack(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateStackAsync(array $args = []) + * @method \Aws\Result updateStackInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateStackInstancesAsync(array $args = []) + * @method \Aws\Result updateStackSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateStackSetAsync(array $args = []) + * @method \Aws\Result updateTerminationProtection(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateTerminationProtectionAsync(array $args = []) + * @method \Aws\Result validateTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise validateTemplateAsync(array $args = []) + */ +class CloudFormationClient extends AwsClient {} diff --git a/lib/aws/Aws/CloudFormation/Exception/CloudFormationException.php b/lib/aws/Aws/CloudFormation/Exception/CloudFormationException.php new file mode 100644 index 0000000..306188f --- /dev/null +++ b/lib/aws/Aws/CloudFormation/Exception/CloudFormationException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CloudFormation\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the AWS CloudFormation service. + */ +class CloudFormationException extends AwsException {} diff --git a/lib/aws/Aws/CloudFront/CloudFrontClient.php b/lib/aws/Aws/CloudFront/CloudFrontClient.php new file mode 100644 index 0000000..7f7231c --- /dev/null +++ b/lib/aws/Aws/CloudFront/CloudFrontClient.php @@ -0,0 +1,190 @@ +<?php +namespace Aws\CloudFront; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon CloudFront** service. + * + * @method \Aws\Result createCloudFrontOriginAccessIdentity(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCloudFrontOriginAccessIdentityAsync(array $args = []) + * @method \Aws\Result createDistribution(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDistributionAsync(array $args = []) + * @method \Aws\Result createInvalidation(array $args = []) + * @method \GuzzleHttp\Promise\Promise createInvalidationAsync(array $args = []) + * @method \Aws\Result createStreamingDistribution(array $args = []) + * @method \GuzzleHttp\Promise\Promise createStreamingDistributionAsync(array $args = []) + * @method \Aws\Result deleteCloudFrontOriginAccessIdentity(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCloudFrontOriginAccessIdentityAsync(array $args = []) + * @method \Aws\Result deleteDistribution(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDistributionAsync(array $args = []) + * @method \Aws\Result deleteStreamingDistribution(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteStreamingDistributionAsync(array $args = []) + * @method \Aws\Result getCloudFrontOriginAccessIdentity(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCloudFrontOriginAccessIdentityAsync(array $args = []) + * @method \Aws\Result getCloudFrontOriginAccessIdentityConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCloudFrontOriginAccessIdentityConfigAsync(array $args = []) + * @method \Aws\Result getDistribution(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDistributionAsync(array $args = []) + * @method \Aws\Result getDistributionConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDistributionConfigAsync(array $args = []) + * @method \Aws\Result getInvalidation(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInvalidationAsync(array $args = []) + * @method \Aws\Result getStreamingDistribution(array $args = []) + * @method \GuzzleHttp\Promise\Promise getStreamingDistributionAsync(array $args = []) + * @method \Aws\Result getStreamingDistributionConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise getStreamingDistributionConfigAsync(array $args = []) + * @method \Aws\Result listCloudFrontOriginAccessIdentities(array $args = []) + * @method \GuzzleHttp\Promise\Promise listCloudFrontOriginAccessIdentitiesAsync(array $args = []) + * @method \Aws\Result listDistributions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDistributionsAsync(array $args = []) + * @method \Aws\Result listDistributionsByWebACLId(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDistributionsByWebACLIdAsync(array $args = []) + * @method \Aws\Result listInvalidations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listInvalidationsAsync(array $args = []) + * @method \Aws\Result listStreamingDistributions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listStreamingDistributionsAsync(array $args = []) + * @method \Aws\Result updateCloudFrontOriginAccessIdentity(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateCloudFrontOriginAccessIdentityAsync(array $args = []) + * @method \Aws\Result updateDistribution(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDistributionAsync(array $args = []) + * @method \Aws\Result updateStreamingDistribution(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateStreamingDistributionAsync(array $args = []) + * @method \Aws\Result createDistributionWithTags(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise createDistributionWithTagsAsync(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result createStreamingDistributionWithTags(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise createStreamingDistributionWithTagsAsync(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result listTagsForResource(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result tagResource(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result untagResource(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) (supported in versions 2016-08-01, 2016-08-20, 2016-09-07, 2016-09-29, 2016-11-25, 2017-03-25, 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result deleteServiceLinkedRole(array $args = []) (supported in versions 2017-03-25) + * @method \GuzzleHttp\Promise\Promise deleteServiceLinkedRoleAsync(array $args = []) (supported in versions 2017-03-25) + * @method \Aws\Result createFieldLevelEncryptionConfig(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise createFieldLevelEncryptionConfigAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result createFieldLevelEncryptionProfile(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise createFieldLevelEncryptionProfileAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result createPublicKey(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise createPublicKeyAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result deleteFieldLevelEncryptionConfig(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise deleteFieldLevelEncryptionConfigAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result deleteFieldLevelEncryptionProfile(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise deleteFieldLevelEncryptionProfileAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result deletePublicKey(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise deletePublicKeyAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result getFieldLevelEncryption(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise getFieldLevelEncryptionAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result getFieldLevelEncryptionConfig(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise getFieldLevelEncryptionConfigAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result getFieldLevelEncryptionProfile(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise getFieldLevelEncryptionProfileAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result getFieldLevelEncryptionProfileConfig(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise getFieldLevelEncryptionProfileConfigAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result getPublicKey(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise getPublicKeyAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result getPublicKeyConfig(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise getPublicKeyConfigAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result listFieldLevelEncryptionConfigs(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise listFieldLevelEncryptionConfigsAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result listFieldLevelEncryptionProfiles(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise listFieldLevelEncryptionProfilesAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result listPublicKeys(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise listPublicKeysAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result updateFieldLevelEncryptionConfig(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise updateFieldLevelEncryptionConfigAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result updateFieldLevelEncryptionProfile(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise updateFieldLevelEncryptionProfileAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \Aws\Result updatePublicKey(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + * @method \GuzzleHttp\Promise\Promise updatePublicKeyAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05) + */ +class CloudFrontClient extends AwsClient +{ + /** + * 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. + * + * @param array $options Array of configuration options used when signing + * + * @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) + { + foreach (['url', 'key_pair_id', 'private_key'] as $required) { + if (!isset($options[$required])) { + throw new \InvalidArgumentException("$required is required"); + } + } + + $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 + ); + } + + /** + * Create a signed Amazon CloudFront cookie. + * + * This method accepts an array of configuration options: + * + * - url: (string) URL of the resource being signed (can include query + * string and wildcards). For example: 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 array Key => value pairs of signed cookies to set + * @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 getSignedCookie(array $options) + { + foreach (['key_pair_id', 'private_key'] as $required) { + if (!isset($options[$required])) { + throw new \InvalidArgumentException("$required is required"); + } + } + + $cookieSigner = new CookieSigner( + $options['key_pair_id'], + $options['private_key'] + ); + + return $cookieSigner->getSignedCookie( + isset($options['url']) ? $options['url'] : null, + isset($options['expires']) ? $options['expires'] : null, + isset($options['policy']) ? $options['policy'] : null + ); + } +} diff --git a/lib/aws/Aws/CloudFront/CookieSigner.php b/lib/aws/Aws/CloudFront/CookieSigner.php new file mode 100644 index 0000000..048c098 --- /dev/null +++ b/lib/aws/Aws/CloudFront/CookieSigner.php @@ -0,0 +1,65 @@ +<?php +namespace Aws\CloudFront; + +class CookieSigner +{ + /** @var Signer */ + private $signer; + + private static $schemes = [ + 'http' => true, + 'https' => true, + ]; + + /** + * @param $keyPairId string ID of the key pair + * @param $privateKey string Path to the private key used for signing + * + * @throws \RuntimeException if the openssl extension is missing + * @throws \InvalidArgumentException if the private key cannot be found. + */ + public function __construct($keyPairId, $privateKey) + { + $this->signer = new Signer($keyPairId, $privateKey); + } + + /** + * Create a signed Amazon CloudFront Cookie. + * + * @param string $url URL to sign (can include query string + * and wildcards). Not required + * when passing a custom $policy. + * @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 cookie for a custom + * policy. + * + * @return array The authenticated cookie parameters + * @throws \InvalidArgumentException if the URL provided is invalid + * @link http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-signed-cookies.html + */ + public function getSignedCookie($url = null, $expires = null, $policy = null) + { + if ($url) { + $this->validateUrl($url); + } + + $cookieParameters = []; + $signature = $this->signer->getSignature($url, $expires, $policy); + foreach ($signature as $key => $value) { + $cookieParameters["CloudFront-$key"] = $value; + } + + return $cookieParameters; + } + + private function validateUrl($url) + { + $scheme = str_replace('*', '', explode('://', $url)[0]); + if (empty(self::$schemes[strtolower($scheme)])) { + throw new \InvalidArgumentException('Invalid or missing URI scheme'); + } + } +} diff --git a/lib/aws/Aws/CloudFront/Exception/CloudFrontException.php b/lib/aws/Aws/CloudFront/Exception/CloudFrontException.php new file mode 100644 index 0000000..1acdf2c --- /dev/null +++ b/lib/aws/Aws/CloudFront/Exception/CloudFrontException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CloudFront\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon CloudFront service. + */ +class CloudFrontException extends AwsException {} diff --git a/lib/aws/Aws/CloudFront/Signer.php b/lib/aws/Aws/CloudFront/Signer.php new file mode 100644 index 0000000..d8e14be --- /dev/null +++ b/lib/aws/Aws/CloudFront/Signer.php @@ -0,0 +1,117 @@ +<?php +namespace Aws\CloudFront; + +/** + * @internal + */ +class Signer +{ + private $keyPairId; + private $pkHandle; + + /** + * A signer for creating the signature values used in CloudFront signed URLs + * and signed cookies. + * + * @param $keyPairId string ID of the key pair + * @param $privateKey string Path to the private key used for signing + * + * @throws \RuntimeException if the openssl extension is missing + * @throws \InvalidArgumentException if the private key cannot be found. + */ + public function __construct($keyPairId, $privateKey) + { + if (!extension_loaded('openssl')) { + //@codeCoverageIgnoreStart + throw new \RuntimeException('The openssl extension is required to ' + . 'sign CloudFront urls.'); + //@codeCoverageIgnoreEnd + } + + $this->keyPairId = $keyPairId; + + if (!file_exists($privateKey)) { + throw new \InvalidArgumentException("PK file not found: $privateKey"); + } + + $this->pkHandle = openssl_pkey_get_private("file://$privateKey"); + + if (!$this->pkHandle) { + throw new \InvalidArgumentException(openssl_error_string()); + } + } + + public function __destruct() + { + $this->pkHandle && openssl_pkey_free($this->pkHandle); + } + + /** + * Create the values used to construct signed URLs and cookies. + * + * @param string $resource The CloudFront resource to which + * this signature will grant access. + * Not used when a custom policy is + * provided. + * @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 signature for a custom + * policy. + * + * @return array The values needed to construct a signed URL or cookie + * @throws \InvalidArgumentException when not provided either a policy or a + * resource and a expires + * + * @link http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-signed-cookies.html + */ + public function getSignature($resource = null, $expires = null, $policy = null) + { + $signatureHash = []; + if ($policy) { + $policy = preg_replace('/\s/s', '', $policy); + $signatureHash['Policy'] = $this->encode($policy); + } elseif ($resource && $expires) { + $expires = (int) $expires; // Handle epoch passed as string + $policy = $this->createCannedPolicy($resource, $expires); + $signatureHash['Expires'] = $expires; + } else { + throw new \InvalidArgumentException('Either a policy or a resource' + . ' and an expiration time must be provided.'); + } + + $signatureHash['Signature'] = $this->encode($this->sign($policy)); + $signatureHash['Key-Pair-Id'] = $this->keyPairId; + + return $signatureHash; + } + + private function createCannedPolicy($resource, $expiration) + { + return json_encode([ + 'Statement' => [ + [ + 'Resource' => $resource, + 'Condition' => [ + 'DateLessThan' => ['AWS:EpochTime' => $expiration], + ], + ], + ], + ], JSON_UNESCAPED_SLASHES); + } + + private function sign($policy) + { + $signature = ''; + openssl_sign($policy, $signature, $this->pkHandle); + + return $signature; + } + + private function encode($policy) + { + return strtr(base64_encode($policy), '+=/', '-_~'); + } +} diff --git a/lib/aws/Aws/CloudFront/UrlSigner.php b/lib/aws/Aws/CloudFront/UrlSigner.php new file mode 100644 index 0000000..4a89f37 --- /dev/null +++ b/lib/aws/Aws/CloudFront/UrlSigner.php @@ -0,0 +1,119 @@ +<?php +namespace Aws\CloudFront; + +use GuzzleHttp\Psr7; +use GuzzleHttp\Psr7\Uri; +use Psr\Http\Message\UriInterface; + +/** + * Creates signed URLs for Amazon CloudFront resources. + */ +class UrlSigner +{ + private $signer; + + /** + * @param $keyPairId string ID of the key pair + * @param $privateKey string Path to the private key used for signing + * + * @throws \RuntimeException if the openssl extension is missing + * @throws \InvalidArgumentException if the private key cannot be found. + */ + public function __construct($keyPairId, $privateKey) + { + $this->signer = new Signer($keyPairId, $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:<path>, 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]); + $uri = new Uri($scheme . '://' . $urlSections[1]); + $query = Psr7\parse_query($uri->getQuery(), PHP_QUERY_RFC3986); + $signature = $this->signer->getSignature( + $this->createResource($scheme, (string) $uri), + $expires, + $policy + ); + $uri = $uri->withQuery( + http_build_query($query + $signature, null, '&', PHP_QUERY_RFC3986) + ); + + return $scheme === 'rtmp' + ? $this->createRtmpUrl($uri) + : (string) $uri; + } + + 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; + } + + /** + * @param $scheme + * @param $url + * + * @return string + */ + private function createResource($scheme, $url) + { + switch ($scheme) { + case 'http': + 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"); + } +} diff --git a/lib/aws/Aws/CloudHSMV2/CloudHSMV2Client.php b/lib/aws/Aws/CloudHSMV2/CloudHSMV2Client.php new file mode 100644 index 0000000..bcdadff --- /dev/null +++ b/lib/aws/Aws/CloudHSMV2/CloudHSMV2Client.php @@ -0,0 +1,35 @@ +<?php +namespace Aws\CloudHSMV2; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS CloudHSM V2** service. + * @method \Aws\Result copyBackupToRegion(array $args = []) + * @method \GuzzleHttp\Promise\Promise copyBackupToRegionAsync(array $args = []) + * @method \Aws\Result createCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise createClusterAsync(array $args = []) + * @method \Aws\Result createHsm(array $args = []) + * @method \GuzzleHttp\Promise\Promise createHsmAsync(array $args = []) + * @method \Aws\Result deleteBackup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBackupAsync(array $args = []) + * @method \Aws\Result deleteCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteClusterAsync(array $args = []) + * @method \Aws\Result deleteHsm(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteHsmAsync(array $args = []) + * @method \Aws\Result describeBackups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeBackupsAsync(array $args = []) + * @method \Aws\Result describeClusters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeClustersAsync(array $args = []) + * @method \Aws\Result initializeCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise initializeClusterAsync(array $args = []) + * @method \Aws\Result listTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsAsync(array $args = []) + * @method \Aws\Result restoreBackup(array $args = []) + * @method \GuzzleHttp\Promise\Promise restoreBackupAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + */ +class CloudHSMV2Client extends AwsClient {} diff --git a/lib/aws/Aws/CloudHSMV2/Exception/CloudHSMV2Exception.php b/lib/aws/Aws/CloudHSMV2/Exception/CloudHSMV2Exception.php new file mode 100644 index 0000000..4c1459d --- /dev/null +++ b/lib/aws/Aws/CloudHSMV2/Exception/CloudHSMV2Exception.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CloudHSMV2\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS CloudHSM V2** service. + */ +class CloudHSMV2Exception extends AwsException {} diff --git a/lib/aws/Aws/CloudHsm/CloudHsmClient.php b/lib/aws/Aws/CloudHsm/CloudHsmClient.php new file mode 100644 index 0000000..78a6cfa --- /dev/null +++ b/lib/aws/Aws/CloudHsm/CloudHsmClient.php @@ -0,0 +1,84 @@ +<?php +namespace Aws\CloudHsm; + +use Aws\Api\ApiProvider; +use Aws\Api\DocModel; +use Aws\Api\Service; +use Aws\AwsClient; + +/** + * This client is used to interact with **AWS CloudHSM**. + * + * @method \Aws\Result addTagsToResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsToResourceAsync(array $args = []) + * @method \Aws\Result createHapg(array $args = []) + * @method \GuzzleHttp\Promise\Promise createHapgAsync(array $args = []) + * @method \Aws\Result createHsm(array $args = []) + * @method \GuzzleHttp\Promise\Promise createHsmAsync(array $args = []) + * @method \Aws\Result createLunaClient(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLunaClientAsync(array $args = []) + * @method \Aws\Result deleteHapg(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteHapgAsync(array $args = []) + * @method \Aws\Result deleteHsm(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteHsmAsync(array $args = []) + * @method \Aws\Result deleteLunaClient(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLunaClientAsync(array $args = []) + * @method \Aws\Result describeHapg(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeHapgAsync(array $args = []) + * @method \Aws\Result describeHsm(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeHsmAsync(array $args = []) + * @method \Aws\Result describeLunaClient(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLunaClientAsync(array $args = []) + * @method \Aws\Result getConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise getConfigAsync(array $args = []) + * @method \Aws\Result listAvailableZones(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAvailableZonesAsync(array $args = []) + * @method \Aws\Result listHapgs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listHapgsAsync(array $args = []) + * @method \Aws\Result listHsms(array $args = []) + * @method \GuzzleHttp\Promise\Promise listHsmsAsync(array $args = []) + * @method \Aws\Result listLunaClients(array $args = []) + * @method \GuzzleHttp\Promise\Promise listLunaClientsAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result modifyHapg(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyHapgAsync(array $args = []) + * @method \Aws\Result modifyHsm(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyHsmAsync(array $args = []) + * @method \Aws\Result modifyLunaClient(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyLunaClientAsync(array $args = []) + * @method \Aws\Result removeTagsFromResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeTagsFromResourceAsync(array $args = []) + */ +class CloudHsmClient extends AwsClient +{ + public function __call($name, array $args) + { + // Overcomes a naming collision with `AwsClient::getConfig`. + if (lcfirst($name) === 'getConfigFiles') { + $name = 'GetConfig'; + } elseif (lcfirst($name) === 'getConfigFilesAsync') { + $name = 'GetConfigAsync'; + } + + return parent::__call($name, $args); + } + + /** + * @internal + * @codeCoverageIgnore + */ + public static function applyDocFilters(array $api, array $docs) + { + // Overcomes a naming collision with `AwsClient::getConfig`. + $api['operations']['GetConfigFiles'] = $api['operations']['GetConfig']; + $docs['operations']['GetConfigFiles'] = $docs['operations']['GetConfig']; + unset($api['operations']['GetConfig'], $docs['operations']['GetConfig']); + ksort($api['operations']); + + return [ + new Service($api, ApiProvider::defaultProvider()), + new DocModel($docs) + ]; + } +} diff --git a/lib/aws/Aws/CloudHsm/Exception/CloudHsmException.php b/lib/aws/Aws/CloudHsm/Exception/CloudHsmException.php new file mode 100644 index 0000000..e54c649 --- /dev/null +++ b/lib/aws/Aws/CloudHsm/Exception/CloudHsmException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CloudHsm\Exception; + +use Aws\Exception\AwsException; + +/** + * AWS CloudHSM exception. + */ +class CloudHsmException extends AwsException {} diff --git a/lib/aws/Aws/CloudSearch/CloudSearchClient.php b/lib/aws/Aws/CloudSearch/CloudSearchClient.php new file mode 100644 index 0000000..f0aad1a --- /dev/null +++ b/lib/aws/Aws/CloudSearch/CloudSearchClient.php @@ -0,0 +1,58 @@ +<?php +namespace Aws\CloudSearch; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon CloudSearch** service. + * + * @method \Aws\Result buildSuggesters(array $args = []) + * @method \GuzzleHttp\Promise\Promise buildSuggestersAsync(array $args = []) + * @method \Aws\Result createDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDomainAsync(array $args = []) + * @method \Aws\Result defineAnalysisScheme(array $args = []) + * @method \GuzzleHttp\Promise\Promise defineAnalysisSchemeAsync(array $args = []) + * @method \Aws\Result defineExpression(array $args = []) + * @method \GuzzleHttp\Promise\Promise defineExpressionAsync(array $args = []) + * @method \Aws\Result defineIndexField(array $args = []) + * @method \GuzzleHttp\Promise\Promise defineIndexFieldAsync(array $args = []) + * @method \Aws\Result defineSuggester(array $args = []) + * @method \GuzzleHttp\Promise\Promise defineSuggesterAsync(array $args = []) + * @method \Aws\Result deleteAnalysisScheme(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAnalysisSchemeAsync(array $args = []) + * @method \Aws\Result deleteDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDomainAsync(array $args = []) + * @method \Aws\Result deleteExpression(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteExpressionAsync(array $args = []) + * @method \Aws\Result deleteIndexField(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteIndexFieldAsync(array $args = []) + * @method \Aws\Result deleteSuggester(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSuggesterAsync(array $args = []) + * @method \Aws\Result describeAnalysisSchemes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAnalysisSchemesAsync(array $args = []) + * @method \Aws\Result describeAvailabilityOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAvailabilityOptionsAsync(array $args = []) + * @method \Aws\Result describeDomains(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDomainsAsync(array $args = []) + * @method \Aws\Result describeExpressions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeExpressionsAsync(array $args = []) + * @method \Aws\Result describeIndexFields(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeIndexFieldsAsync(array $args = []) + * @method \Aws\Result describeScalingParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeScalingParametersAsync(array $args = []) + * @method \Aws\Result describeServiceAccessPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeServiceAccessPoliciesAsync(array $args = []) + * @method \Aws\Result describeSuggesters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSuggestersAsync(array $args = []) + * @method \Aws\Result indexDocuments(array $args = []) + * @method \GuzzleHttp\Promise\Promise indexDocumentsAsync(array $args = []) + * @method \Aws\Result listDomainNames(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDomainNamesAsync(array $args = []) + * @method \Aws\Result updateAvailabilityOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAvailabilityOptionsAsync(array $args = []) + * @method \Aws\Result updateScalingParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateScalingParametersAsync(array $args = []) + * @method \Aws\Result updateServiceAccessPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateServiceAccessPoliciesAsync(array $args = []) + */ +class CloudSearchClient extends AwsClient {} diff --git a/lib/aws/Aws/CloudSearch/Exception/CloudSearchException.php b/lib/aws/Aws/CloudSearch/Exception/CloudSearchException.php new file mode 100644 index 0000000..d0f51c5 --- /dev/null +++ b/lib/aws/Aws/CloudSearch/Exception/CloudSearchException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CloudSearch\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon CloudSearch service. + */ +class CloudSearchException extends AwsException {} diff --git a/lib/aws/Aws/CloudSearchDomain/CloudSearchDomainClient.php b/lib/aws/Aws/CloudSearchDomain/CloudSearchDomainClient.php new file mode 100644 index 0000000..6851ce0 --- /dev/null +++ b/lib/aws/Aws/CloudSearchDomain/CloudSearchDomainClient.php @@ -0,0 +1,84 @@ +<?php +namespace Aws\CloudSearchDomain; + +use Aws\AwsClient; +use Aws\CommandInterface; +use GuzzleHttp\Psr7\Uri; +use Psr\Http\Message\RequestInterface; +use GuzzleHttp\Psr7; + +/** + * This client is used to search and upload documents to an **Amazon CloudSearch** Domain. + * + * @method \Aws\Result search(array $args = []) + * @method \GuzzleHttp\Promise\Promise searchAsync(array $args = []) + * @method \Aws\Result suggest(array $args = []) + * @method \GuzzleHttp\Promise\Promise suggestAsync(array $args = []) + * @method \Aws\Result uploadDocuments(array $args = []) + * @method \GuzzleHttp\Promise\Promise uploadDocumentsAsync(array $args = []) + */ +class CloudSearchDomainClient extends AwsClient +{ + public function __construct(array $args) + { + parent::__construct($args); + $list = $this->getHandlerList(); + $list->appendBuild($this->searchByPost(), 'cloudsearchdomain.search_by_POST'); + } + + public static function getArguments() + { + $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]; + }; + + return $args; + } + + /** + * Use POST for search command + * + * Useful when query string is too long + */ + private function searchByPost() + { + return static function (callable $handler) { + return function ( + CommandInterface $c, + RequestInterface $r = null + ) use ($handler) { + if ($c->getName() !== 'Search') { + return $handler($c, $r); + } + return $handler($c, self::convertGetToPost($r)); + }; + }; + } + + /** + * Converts default GET request to a POST request + * + * Avoiding length restriction in query + * + * @param RequestInterface $r GET request to be converted + * @return RequestInterface $req converted POST request + */ + public static function convertGetToPost(RequestInterface $r) + { + if ($r->getMethod() === 'POST') { + return $r; + } + + $query = $r->getUri()->getQuery(); + $req = $r->withMethod('POST') + ->withBody(Psr7\stream_for($query)) + ->withHeader('Content-Length', strlen($query)) + ->withHeader('Content-Type', 'application/x-www-form-urlencoded') + ->withUri($r->getUri()->withQuery('')); + return $req; + } +} diff --git a/lib/aws/Aws/CloudSearchDomain/Exception/CloudSearchDomainException.php b/lib/aws/Aws/CloudSearchDomain/Exception/CloudSearchDomainException.php new file mode 100644 index 0000000..2272971 --- /dev/null +++ b/lib/aws/Aws/CloudSearchDomain/Exception/CloudSearchDomainException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CloudSearchDomain\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with an Amazon CloudSearch Domain. + */ +class CloudSearchDomainException extends AwsException {} diff --git a/lib/aws/Aws/CloudTrail/CloudTrailClient.php b/lib/aws/Aws/CloudTrail/CloudTrailClient.php new file mode 100644 index 0000000..440ebe7 --- /dev/null +++ b/lib/aws/Aws/CloudTrail/CloudTrailClient.php @@ -0,0 +1,38 @@ +<?php +namespace Aws\CloudTrail; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS CloudTrail** service. + * + * @method \Aws\Result addTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsAsync(array $args = []) + * @method \Aws\Result createTrail(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTrailAsync(array $args = []) + * @method \Aws\Result deleteTrail(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTrailAsync(array $args = []) + * @method \Aws\Result describeTrails(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTrailsAsync(array $args = []) + * @method \Aws\Result getEventSelectors(array $args = []) + * @method \GuzzleHttp\Promise\Promise getEventSelectorsAsync(array $args = []) + * @method \Aws\Result getTrailStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTrailStatusAsync(array $args = []) + * @method \Aws\Result listPublicKeys(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPublicKeysAsync(array $args = []) + * @method \Aws\Result listTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsAsync(array $args = []) + * @method \Aws\Result lookupEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise lookupEventsAsync(array $args = []) + * @method \Aws\Result putEventSelectors(array $args = []) + * @method \GuzzleHttp\Promise\Promise putEventSelectorsAsync(array $args = []) + * @method \Aws\Result removeTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeTagsAsync(array $args = []) + * @method \Aws\Result startLogging(array $args = []) + * @method \GuzzleHttp\Promise\Promise startLoggingAsync(array $args = []) + * @method \Aws\Result stopLogging(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopLoggingAsync(array $args = []) + * @method \Aws\Result updateTrail(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateTrailAsync(array $args = []) + */ +class CloudTrailClient extends AwsClient {} diff --git a/lib/aws/Aws/CloudTrail/Exception/CloudTrailException.php b/lib/aws/Aws/CloudTrail/Exception/CloudTrailException.php new file mode 100644 index 0000000..b3eb9f3 --- /dev/null +++ b/lib/aws/Aws/CloudTrail/Exception/CloudTrailException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CloudTrail\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the AWS CloudTrail service. + */ +class CloudTrailException extends AwsException {} diff --git a/lib/aws/Aws/CloudTrail/LogFileIterator.php b/lib/aws/Aws/CloudTrail/LogFileIterator.php new file mode 100644 index 0000000..4064663 --- /dev/null +++ b/lib/aws/Aws/CloudTrail/LogFileIterator.php @@ -0,0 +1,324 @@ +<?php +namespace Aws\CloudTrail; + +use Aws\S3\S3Client; +use Aws\CloudTrail\Exception\CloudTrailException; + +/** + * The `Aws\CloudTrail\LogFileIterator` provides an easy way to iterate over + * log file generated by AWS CloudTrail. + * + * CloudTrail log files contain data about your AWS API calls and are stored in + * Amazon S3 at a predictable path based on a bucket name, a key prefix, an + * account ID, a region, and date information. This class allows you to specify + * options, including a date range, and emits each log file that match the + * provided options. + * + * Yields an array containing the Amazon S3 bucket and key of the log file. + */ +class LogFileIterator extends \IteratorIterator +{ + // For internal use + const DEFAULT_TRAIL_NAME = 'Default'; + const PREFIX_TEMPLATE = 'prefix/AWSLogs/account/CloudTrail/region/date/'; + const PREFIX_WILDCARD = '*'; + + // Option names used internally or externally + const TRAIL_NAME = 'trail_name'; + const KEY_PREFIX = 'key_prefix'; + const START_DATE = 'start_date'; + const END_DATE = 'end_date'; + const ACCOUNT_ID = 'account_id'; + const LOG_REGION = 'log_region'; + + /** @var S3Client S3 client used to perform ListObjects operations */ + private $s3Client; + + /** @var string S3 bucket that contains the log files */ + private $s3BucketName; + + /** + * Constructs a LogRecordIterator. This factory method is used if the name + * of the S3 bucket containing your logs is not known. This factory method + * uses a CloudTrail client and the trail name (or "Default") to find the + * information about the trail necessary for constructing the + * LogRecordIterator. + * + * @param S3Client $s3Client + * @param CloudTrailClient $cloudTrailClient + * @param array $options + * + * @return LogRecordIterator + * @throws \InvalidArgumentException + * @see LogRecordIterator::__contruct + */ + public static function forTrail( + S3Client $s3Client, + CloudTrailClient $cloudTrailClient, + array $options = [] + ) { + $trailName = isset($options[self::TRAIL_NAME]) + ? $options[self::TRAIL_NAME] + : self::DEFAULT_TRAIL_NAME; + + $s3BucketName = null; + + // Use the CloudTrail client to get information about the trail, + // including the bucket name. + try { + $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 + } + + // If the bucket name is still unknown, then throw an exception + if (!$s3BucketName) { + $prev = isset($e) ? $e : null; + throw new \InvalidArgumentException('The bucket name could not ' + . 'be determined from the trail.', 0, $prev); + } + + return new self($s3Client, $s3BucketName, $options); + } + + /** + * Constructs a LogFileIterator using the specified options: + * + * - trail_name: The name of the trail that is generating our logs. If + * none is provided, then "Default" will be used, since that is the name + * of the trail created in the AWS Management Console. + * - key_prefix: The S3 key prefix of your log files. This value will be + * overwritten when using the `fromTrail()` method. However, if you are + * using the constructor, then this value will be used. + * - start_date: The timestamp of the beginning of date range of the log + * records you want to read. You can pass this in as a `DateTime` object, + * integer (unix timestamp), or a string compatible with `strtotime()`. + * - end_date: The timestamp of the end of date range of the log records + * you want to read. You can pass this in as a `DateTime` object, integer + * (unix timestamp), or a string compatible with `strtotime()`. + * - account_id: This is your AWS account ID, which is the 12-digit number + * found on the *Account Identifiers* section of the *AWS Security + * Credentials* page. See https://console.aws.amazon.com/iam/home?#security_credential + * - log_region: 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 = [] + ) { + $this->s3Client = $s3Client; + $this->s3BucketName = $s3BucketName; + parent::__construct($this->buildListObjectsIterator($options)); + } + + /** + * An override of the typical current behavior of \IteratorIterator to + * format the output such that the bucket and key are returned in an array + * + * @return array|bool + */ + public function current() + { + if ($object = parent::current()) { + return [ + 'Bucket' => $this->s3BucketName, + 'Key' => $object['Key'] + ]; + } + + return false; + } + + /** + * Constructs an S3 ListObjects iterator, optionally decorated with + * FilterIterators, based on the provided options. + * + * @param array $options + * + * @return \Iterator + */ + private function buildListObjectsIterator(array $options) + { + // Extract and normalize the date values from the options + $startDate = isset($options[self::START_DATE]) + ? $this->normalizeDateValue($options[self::START_DATE]) + : null; + $endDate = isset($options[self::END_DATE]) + ? $this->normalizeDateValue($options[self::END_DATE]) + : null; + + // Determine the parts of the key prefix of the log files being read + $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, $parts), '/'); + $logKeyPrefix = $candidatePrefix; + $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->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 + ); + + $objectsIterator = $this->applyDateFilter( + $objectsIterator, + $startDate, + $endDate + ); + + return $objectsIterator; + } + + /** + * Normalizes a date value to a unix timestamp + * + * @param string|\DateTime|int $date + * + * @return int + * @throws \InvalidArgumentException if the value cannot be converted to + * a timestamp + */ + private function normalizeDateValue($date) + { + if (is_string($date)) { + $date = strtotime($date); + } elseif ($date instanceof \DateTime) { + $date = $date->format('U'); + } elseif (!is_int($date)) { + throw new \InvalidArgumentException('Date values must be a ' + . 'string, an int, or a DateTime object.'); + } + + return $date; + } + + /** + * Uses the provided date values to determine the date portion of the prefix + */ + private function determineDateForPrefix($startDate, $endDate) + { + // The default date value should look like "*/*/*" after joining + $dateParts = array_fill_keys(['Y', 'm', 'd'], self::PREFIX_WILDCARD); + + // Narrow down the date by replacing the WILDCARDs with values if they + // are the same for the start and end date. + if ($startDate && $endDate) { + foreach ($dateParts as $key => &$value) { + $candidateValue = date($key, $startDate); + if ($candidateValue === date($key, $endDate)) { + $value = $candidateValue; + } else { + break; + } + } + } + + return join('/', $dateParts); + } + + /** + * Applies a regex iterator filter that limits the ListObjects result set + * based on the provided options. + * + * @param \Iterator $objectsIterator + * @param string $logKeyPrefix + * @param string $candidatePrefix + * + * @return \Iterator + */ + private function applyRegexFilter( + $objectsIterator, + $logKeyPrefix, + $candidatePrefix + ) { + // If the prefix and candidate prefix are not the same, then there were + // WILDCARDs. + if ($logKeyPrefix !== $candidatePrefix) { + // Turn the candidate prefix into a regex by trimming and + // converting WILDCARDs to regex notation. + $regex = rtrim($candidatePrefix, '/' . self::PREFIX_WILDCARD) . '/'; + $regex = strtr($regex, [self::PREFIX_WILDCARD => '[^/]+']); + + // After trimming WILDCARDs or the end, if the regex is the same as + // the prefix, then no regex is needed. + if ($logKeyPrefix !== $regex) { + // Apply a regex filter iterator to remove files that don't + // match the provided options. + $objectsIterator = new \CallbackFilterIterator( + $objectsIterator, + function ($object) use ($regex) { + return preg_match("#{$regex}#", $object['Key']); + } + ); + } + } + + return $objectsIterator; + } + + /** + * Applies an iterator filter to restrict the ListObjects result set to the + * specified date range. + * + * @param \Iterator $objectsIterator + * @param int $startDate + * @param int $endDate + * + * @return \Iterator + */ + private function applyDateFilter($objectsIterator, $startDate, $endDate) + { + // If either a start or end date was provided, filter out dates that + // don't match the date range. + if ($startDate || $endDate) { + $fn = function ($object) use ($startDate, $endDate) { + if (!preg_match('/[0-9]{8}T[0-9]{4}Z/', $object['Key'], $m)) { + 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/Aws/CloudTrail/LogFileReader.php b/lib/aws/Aws/CloudTrail/LogFileReader.php new file mode 100644 index 0000000..e61c10a --- /dev/null +++ b/lib/aws/Aws/CloudTrail/LogFileReader.php @@ -0,0 +1,55 @@ +<?php +namespace Aws\CloudTrail; + +use Aws\S3\S3Client; + +/** + * This class provides an easy way to read log files generated by AWS + * CloudTrail. + * + * CloudTrail log files contain data about your AWS API calls and are stored in + * Amazon S3. The log files are gzipped and contain structured data in JSON + * format. This class will automatically ungzip and decode the data, and return + * the data as a array of log records + */ +class LogFileReader +{ + /** @var S3Client S3 client used to perform GetObject operations */ + private $s3Client; + + /** + * @param S3Client $s3Client S3 client used to retrieve objects + */ + public function __construct(S3Client $s3Client) + { + $this->s3Client = $s3Client; + } + + /** + * Downloads, unzips, and reads a CloudTrail log file from Amazon S3 + * + * @param string $s3BucketName The bucket name of the log file in Amazon S3 + * @param string $logFileKey The key of the log file in Amazon S3 + * + * @return array + */ + public function read($s3BucketName, $logFileKey) + { + // Create a command for getting the log file object + $command = $this->s3Client->getCommand('GetObject', [ + 'Bucket' => (string) $s3BucketName, + 'Key' => (string) $logFileKey, + 'ResponseContentEncoding' => 'x-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 + $result = $this->s3Client->execute($command); + $logData = json_decode($result['Body'], true); + + return isset($logData['Records']) ? $logData['Records'] : []; + } +} diff --git a/lib/aws/Aws/CloudTrail/LogRecordIterator.php b/lib/aws/Aws/CloudTrail/LogRecordIterator.php new file mode 100644 index 0000000..40d5d8c --- /dev/null +++ b/lib/aws/Aws/CloudTrail/LogRecordIterator.php @@ -0,0 +1,187 @@ +<?php +namespace Aws\CloudTrail; + +use Aws\S3\S3Client; + +/** + * The `Aws\CloudTrail\LogRecordIterator` provides an easy way to iterate over + * log records from log files generated by AWS CloudTrail. + * + * CloudTrail log files contain data about your AWS API calls and are stored in + * Amazon S3 at a predictable path based on a bucket name, a key prefix, an + * account ID, a region, and date information. The files are gzipped and + * contain structured data in JSON format. This class allows you to specify + * options via its factory methods, including a date range, and emits each log + * record from any log files that match the provided options. + * + * A log record containing data about an AWS API call is yielded for each + * iteration on this object. + */ +class LogRecordIterator implements \OuterIterator +{ + /** @var LogFileReader */ + private $logFileReader; + + /** @var \Iterator */ + private $logFileIterator; + + /** @var array */ + private $records; + + /** @var int */ + private $recordIndex; + + /** + * @param S3Client $s3Client + * @param CloudTrailClient $cloudTrailClient + * @param array $options + * + * @return LogRecordIterator + */ + public static function forTrail( + S3Client $s3Client, + CloudTrailClient $cloudTrailClient, + array $options = [] + ) { + $logFileIterator = LogFileIterator::forTrail( + $s3Client, + $cloudTrailClient, + $options + ); + + return new self(new LogFileReader($s3Client), $logFileIterator); + } + + /** + * @param S3Client $s3Client + * @param string $s3BucketName + * @param array $options + * + * @return LogRecordIterator + */ + public static function forBucket( + S3Client $s3Client, + $s3BucketName, + array $options = [] + ) { + $logFileReader = new LogFileReader($s3Client); + $iter = new LogFileIterator($s3Client, $s3BucketName, $options); + + return new self($logFileReader, $iter); + } + + /** + * @param S3Client $s3Client + * @param string $s3BucketName + * @param string $s3ObjectKey + * + * @return LogRecordIterator + */ + public static function forFile( + S3Client $s3Client, + $s3BucketName, + $s3ObjectKey + ) { + $logFileReader = new LogFileReader($s3Client); + $logFileIterator = new \ArrayIterator([[ + 'Bucket' => $s3BucketName, + 'Key' => $s3ObjectKey, + ]]); + + return new self($logFileReader, $logFileIterator); + } + + /** + * @param LogFileReader $logFileReader + * @param \Iterator $logFileIterator + */ + public function __construct( + LogFileReader $logFileReader, + \Iterator $logFileIterator + ) { + $this->logFileReader = $logFileReader; + $this->logFileIterator = $logFileIterator; + $this->records = array(); + $this->recordIndex = 0; + } + + /** + * Returns the current log record as an array. + * + * @return array|false + */ + public function current() + { + 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. + while (!$this->valid()) { + $this->logFileIterator->next(); + $success = $this->loadRecordsFromCurrentLogFile(); + if (!$success) { + // The objects iterator is exhausted as well, so stop trying + break; + } + } + } + + public function key() + { + if ($logFile = $this->logFileIterator->current()) { + return $logFile['Key'] . '.' . $this->recordIndex; + } + + return null; + } + + public function valid() + { + return isset($this->records[$this->recordIndex]); + } + + public function rewind() + { + $this->logFileIterator->rewind(); + $this->loadRecordsFromCurrentLogFile(); + } + + public function getInnerIterator() + { + return $this->logFileIterator; + } + + /** + * Examines the current file in the `logFileIterator` and attempts to read + * it and load log records from it using the `logFileReader`. This method + * expects that items pulled from the iterator will take the form: + * + * [ + * 'Bucket' => '...', + * 'Key' => '...', + * ] + * + * @return bool Returns `true` if records were loaded and `false` if no + * records were found + */ + private function loadRecordsFromCurrentLogFile() + { + $this->recordIndex = 0; + $this->records = array(); + + $logFile = $this->logFileIterator->current(); + if ($logFile && isset($logFile['Bucket']) && isset($logFile['Key'])) { + $this->records = $this->logFileReader->read( + $logFile['Bucket'], + $logFile['Key'] + ); + } + + return (bool) $logFile; + } +} diff --git a/lib/aws/Aws/CloudWatch/CloudWatchClient.php b/lib/aws/Aws/CloudWatch/CloudWatchClient.php new file mode 100644 index 0000000..4d189b9 --- /dev/null +++ b/lib/aws/Aws/CloudWatch/CloudWatchClient.php @@ -0,0 +1,50 @@ +<?php +namespace Aws\CloudWatch; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon CloudWatch** service. + * + * @method \Aws\Result deleteAlarms(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAlarmsAsync(array $args = []) + * @method \Aws\Result deleteDashboards(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDashboardsAsync(array $args = []) + * @method \Aws\Result describeAlarmHistory(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAlarmHistoryAsync(array $args = []) + * @method \Aws\Result describeAlarms(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAlarmsAsync(array $args = []) + * @method \Aws\Result describeAlarmsForMetric(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAlarmsForMetricAsync(array $args = []) + * @method \Aws\Result disableAlarmActions(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableAlarmActionsAsync(array $args = []) + * @method \Aws\Result enableAlarmActions(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableAlarmActionsAsync(array $args = []) + * @method \Aws\Result getDashboard(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDashboardAsync(array $args = []) + * @method \Aws\Result getMetricData(array $args = []) + * @method \GuzzleHttp\Promise\Promise getMetricDataAsync(array $args = []) + * @method \Aws\Result getMetricStatistics(array $args = []) + * @method \GuzzleHttp\Promise\Promise getMetricStatisticsAsync(array $args = []) + * @method \Aws\Result getMetricWidgetImage(array $args = []) + * @method \GuzzleHttp\Promise\Promise getMetricWidgetImageAsync(array $args = []) + * @method \Aws\Result listDashboards(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDashboardsAsync(array $args = []) + * @method \Aws\Result listMetrics(array $args = []) + * @method \GuzzleHttp\Promise\Promise listMetricsAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result putDashboard(array $args = []) + * @method \GuzzleHttp\Promise\Promise putDashboardAsync(array $args = []) + * @method \Aws\Result putMetricAlarm(array $args = []) + * @method \GuzzleHttp\Promise\Promise putMetricAlarmAsync(array $args = []) + * @method \Aws\Result putMetricData(array $args = []) + * @method \GuzzleHttp\Promise\Promise putMetricDataAsync(array $args = []) + * @method \Aws\Result setAlarmState(array $args = []) + * @method \GuzzleHttp\Promise\Promise setAlarmStateAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + */ +class CloudWatchClient extends AwsClient {} diff --git a/lib/aws/Aws/CloudWatch/Exception/CloudWatchException.php b/lib/aws/Aws/CloudWatch/Exception/CloudWatchException.php new file mode 100644 index 0000000..b412932 --- /dev/null +++ b/lib/aws/Aws/CloudWatch/Exception/CloudWatchException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CloudWatch\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon CloudWatch service. + */ +class CloudWatchException extends AwsException {} diff --git a/lib/aws/Aws/CloudWatchEvents/CloudWatchEventsClient.php b/lib/aws/Aws/CloudWatchEvents/CloudWatchEventsClient.php new file mode 100644 index 0000000..8be42ed --- /dev/null +++ b/lib/aws/Aws/CloudWatchEvents/CloudWatchEventsClient.php @@ -0,0 +1,46 @@ +<?php +namespace Aws\CloudWatchEvents; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon CloudWatch Events** service. + * + * @method \Aws\Result deleteRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRuleAsync(array $args = []) + * @method \Aws\Result describeEventBus(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventBusAsync(array $args = []) + * @method \Aws\Result describeRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRuleAsync(array $args = []) + * @method \Aws\Result disableRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableRuleAsync(array $args = []) + * @method \Aws\Result enableRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableRuleAsync(array $args = []) + * @method \Aws\Result listRuleNamesByTarget(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRuleNamesByTargetAsync(array $args = []) + * @method \Aws\Result listRules(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRulesAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result listTargetsByRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTargetsByRuleAsync(array $args = []) + * @method \Aws\Result putEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise putEventsAsync(array $args = []) + * @method \Aws\Result putPermission(array $args = []) + * @method \GuzzleHttp\Promise\Promise putPermissionAsync(array $args = []) + * @method \Aws\Result putRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise putRuleAsync(array $args = []) + * @method \Aws\Result putTargets(array $args = []) + * @method \GuzzleHttp\Promise\Promise putTargetsAsync(array $args = []) + * @method \Aws\Result removePermission(array $args = []) + * @method \GuzzleHttp\Promise\Promise removePermissionAsync(array $args = []) + * @method \Aws\Result removeTargets(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeTargetsAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result testEventPattern(array $args = []) + * @method \GuzzleHttp\Promise\Promise testEventPatternAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + */ +class CloudWatchEventsClient extends AwsClient {} diff --git a/lib/aws/Aws/CloudWatchEvents/Exception/CloudWatchEventsException.php b/lib/aws/Aws/CloudWatchEvents/Exception/CloudWatchEventsException.php new file mode 100644 index 0000000..c8b4d52 --- /dev/null +++ b/lib/aws/Aws/CloudWatchEvents/Exception/CloudWatchEventsException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CloudWatchEvents\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon CloudWatch Events** service. + */ +class CloudWatchEventsException extends AwsException {} diff --git a/lib/aws/Aws/CloudWatchLogs/CloudWatchLogsClient.php b/lib/aws/Aws/CloudWatchLogs/CloudWatchLogsClient.php new file mode 100644 index 0000000..d06b201 --- /dev/null +++ b/lib/aws/Aws/CloudWatchLogs/CloudWatchLogsClient.php @@ -0,0 +1,88 @@ +<?php +namespace Aws\CloudWatchLogs; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon CloudWatch Logs** service. + * + * @method \Aws\Result associateKmsKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateKmsKeyAsync(array $args = []) + * @method \Aws\Result cancelExportTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelExportTaskAsync(array $args = []) + * @method \Aws\Result createExportTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise createExportTaskAsync(array $args = []) + * @method \Aws\Result createLogGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLogGroupAsync(array $args = []) + * @method \Aws\Result createLogStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLogStreamAsync(array $args = []) + * @method \Aws\Result deleteDestination(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDestinationAsync(array $args = []) + * @method \Aws\Result deleteLogGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLogGroupAsync(array $args = []) + * @method \Aws\Result deleteLogStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLogStreamAsync(array $args = []) + * @method \Aws\Result deleteMetricFilter(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteMetricFilterAsync(array $args = []) + * @method \Aws\Result deleteResourcePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteResourcePolicyAsync(array $args = []) + * @method \Aws\Result deleteRetentionPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRetentionPolicyAsync(array $args = []) + * @method \Aws\Result deleteSubscriptionFilter(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSubscriptionFilterAsync(array $args = []) + * @method \Aws\Result describeDestinations(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDestinationsAsync(array $args = []) + * @method \Aws\Result describeExportTasks(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeExportTasksAsync(array $args = []) + * @method \Aws\Result describeLogGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLogGroupsAsync(array $args = []) + * @method \Aws\Result describeLogStreams(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLogStreamsAsync(array $args = []) + * @method \Aws\Result describeMetricFilters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMetricFiltersAsync(array $args = []) + * @method \Aws\Result describeQueries(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeQueriesAsync(array $args = []) + * @method \Aws\Result describeResourcePolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeResourcePoliciesAsync(array $args = []) + * @method \Aws\Result describeSubscriptionFilters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSubscriptionFiltersAsync(array $args = []) + * @method \Aws\Result disassociateKmsKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateKmsKeyAsync(array $args = []) + * @method \Aws\Result filterLogEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise filterLogEventsAsync(array $args = []) + * @method \Aws\Result getLogEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLogEventsAsync(array $args = []) + * @method \Aws\Result getLogGroupFields(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLogGroupFieldsAsync(array $args = []) + * @method \Aws\Result getLogRecord(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLogRecordAsync(array $args = []) + * @method \Aws\Result getQueryResults(array $args = []) + * @method \GuzzleHttp\Promise\Promise getQueryResultsAsync(array $args = []) + * @method \Aws\Result listTagsLogGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsLogGroupAsync(array $args = []) + * @method \Aws\Result putDestination(array $args = []) + * @method \GuzzleHttp\Promise\Promise putDestinationAsync(array $args = []) + * @method \Aws\Result putDestinationPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putDestinationPolicyAsync(array $args = []) + * @method \Aws\Result putLogEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise putLogEventsAsync(array $args = []) + * @method \Aws\Result putMetricFilter(array $args = []) + * @method \GuzzleHttp\Promise\Promise putMetricFilterAsync(array $args = []) + * @method \Aws\Result putResourcePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putResourcePolicyAsync(array $args = []) + * @method \Aws\Result putRetentionPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putRetentionPolicyAsync(array $args = []) + * @method \Aws\Result putSubscriptionFilter(array $args = []) + * @method \GuzzleHttp\Promise\Promise putSubscriptionFilterAsync(array $args = []) + * @method \Aws\Result startQuery(array $args = []) + * @method \GuzzleHttp\Promise\Promise startQueryAsync(array $args = []) + * @method \Aws\Result stopQuery(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopQueryAsync(array $args = []) + * @method \Aws\Result tagLogGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagLogGroupAsync(array $args = []) + * @method \Aws\Result testMetricFilter(array $args = []) + * @method \GuzzleHttp\Promise\Promise testMetricFilterAsync(array $args = []) + * @method \Aws\Result untagLogGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagLogGroupAsync(array $args = []) + */ +class CloudWatchLogsClient extends AwsClient {} diff --git a/lib/aws/Aws/CloudWatchLogs/Exception/CloudWatchLogsException.php b/lib/aws/Aws/CloudWatchLogs/Exception/CloudWatchLogsException.php new file mode 100644 index 0000000..46f87b4 --- /dev/null +++ b/lib/aws/Aws/CloudWatchLogs/Exception/CloudWatchLogsException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CloudWatchLogs\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon CloudWatch Logs service. + */ +class CloudWatchLogsException extends AwsException {} diff --git a/lib/aws/Aws/CodeBuild/CodeBuildClient.php b/lib/aws/Aws/CodeBuild/CodeBuildClient.php new file mode 100644 index 0000000..f69c4a8 --- /dev/null +++ b/lib/aws/Aws/CodeBuild/CodeBuildClient.php @@ -0,0 +1,47 @@ +<?php +namespace Aws\CodeBuild; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS CodeBuild** service. + * @method \Aws\Result batchDeleteBuilds(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchDeleteBuildsAsync(array $args = []) + * @method \Aws\Result batchGetBuilds(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetBuildsAsync(array $args = []) + * @method \Aws\Result batchGetProjects(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetProjectsAsync(array $args = []) + * @method \Aws\Result createProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise createProjectAsync(array $args = []) + * @method \Aws\Result createWebhook(array $args = []) + * @method \GuzzleHttp\Promise\Promise createWebhookAsync(array $args = []) + * @method \Aws\Result deleteProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteProjectAsync(array $args = []) + * @method \Aws\Result deleteSourceCredentials(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSourceCredentialsAsync(array $args = []) + * @method \Aws\Result deleteWebhook(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteWebhookAsync(array $args = []) + * @method \Aws\Result importSourceCredentials(array $args = []) + * @method \GuzzleHttp\Promise\Promise importSourceCredentialsAsync(array $args = []) + * @method \Aws\Result invalidateProjectCache(array $args = []) + * @method \GuzzleHttp\Promise\Promise invalidateProjectCacheAsync(array $args = []) + * @method \Aws\Result listBuilds(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBuildsAsync(array $args = []) + * @method \Aws\Result listBuildsForProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBuildsForProjectAsync(array $args = []) + * @method \Aws\Result listCuratedEnvironmentImages(array $args = []) + * @method \GuzzleHttp\Promise\Promise listCuratedEnvironmentImagesAsync(array $args = []) + * @method \Aws\Result listProjects(array $args = []) + * @method \GuzzleHttp\Promise\Promise listProjectsAsync(array $args = []) + * @method \Aws\Result listSourceCredentials(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSourceCredentialsAsync(array $args = []) + * @method \Aws\Result startBuild(array $args = []) + * @method \GuzzleHttp\Promise\Promise startBuildAsync(array $args = []) + * @method \Aws\Result stopBuild(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopBuildAsync(array $args = []) + * @method \Aws\Result updateProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateProjectAsync(array $args = []) + * @method \Aws\Result updateWebhook(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateWebhookAsync(array $args = []) + */ +class CodeBuildClient extends AwsClient {} diff --git a/lib/aws/Aws/CodeBuild/Exception/CodeBuildException.php b/lib/aws/Aws/CodeBuild/Exception/CodeBuildException.php new file mode 100644 index 0000000..deb1d03 --- /dev/null +++ b/lib/aws/Aws/CodeBuild/Exception/CodeBuildException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CodeBuild\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS CodeBuild** service. + */ +class CodeBuildException extends AwsException {} diff --git a/lib/aws/Aws/CodeCommit/CodeCommitClient.php b/lib/aws/Aws/CodeCommit/CodeCommitClient.php new file mode 100644 index 0000000..e687b00 --- /dev/null +++ b/lib/aws/Aws/CodeCommit/CodeCommitClient.php @@ -0,0 +1,90 @@ +<?php +namespace Aws\CodeCommit; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS CodeCommit** service. + * + * @method \Aws\Result batchGetRepositories(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetRepositoriesAsync(array $args = []) + * @method \Aws\Result createBranch(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBranchAsync(array $args = []) + * @method \Aws\Result createCommit(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCommitAsync(array $args = []) + * @method \Aws\Result createPullRequest(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPullRequestAsync(array $args = []) + * @method \Aws\Result createRepository(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRepositoryAsync(array $args = []) + * @method \Aws\Result deleteBranch(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBranchAsync(array $args = []) + * @method \Aws\Result deleteCommentContent(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCommentContentAsync(array $args = []) + * @method \Aws\Result deleteFile(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteFileAsync(array $args = []) + * @method \Aws\Result deleteRepository(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRepositoryAsync(array $args = []) + * @method \Aws\Result describePullRequestEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise describePullRequestEventsAsync(array $args = []) + * @method \Aws\Result getBlob(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBlobAsync(array $args = []) + * @method \Aws\Result getBranch(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBranchAsync(array $args = []) + * @method \Aws\Result getComment(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCommentAsync(array $args = []) + * @method \Aws\Result getCommentsForComparedCommit(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCommentsForComparedCommitAsync(array $args = []) + * @method \Aws\Result getCommentsForPullRequest(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCommentsForPullRequestAsync(array $args = []) + * @method \Aws\Result getCommit(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCommitAsync(array $args = []) + * @method \Aws\Result getDifferences(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDifferencesAsync(array $args = []) + * @method \Aws\Result getFile(array $args = []) + * @method \GuzzleHttp\Promise\Promise getFileAsync(array $args = []) + * @method \Aws\Result getFolder(array $args = []) + * @method \GuzzleHttp\Promise\Promise getFolderAsync(array $args = []) + * @method \Aws\Result getMergeConflicts(array $args = []) + * @method \GuzzleHttp\Promise\Promise getMergeConflictsAsync(array $args = []) + * @method \Aws\Result getPullRequest(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPullRequestAsync(array $args = []) + * @method \Aws\Result getRepository(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRepositoryAsync(array $args = []) + * @method \Aws\Result getRepositoryTriggers(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRepositoryTriggersAsync(array $args = []) + * @method \Aws\Result listBranches(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBranchesAsync(array $args = []) + * @method \Aws\Result listPullRequests(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPullRequestsAsync(array $args = []) + * @method \Aws\Result listRepositories(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRepositoriesAsync(array $args = []) + * @method \Aws\Result mergePullRequestByFastForward(array $args = []) + * @method \GuzzleHttp\Promise\Promise mergePullRequestByFastForwardAsync(array $args = []) + * @method \Aws\Result postCommentForComparedCommit(array $args = []) + * @method \GuzzleHttp\Promise\Promise postCommentForComparedCommitAsync(array $args = []) + * @method \Aws\Result postCommentForPullRequest(array $args = []) + * @method \GuzzleHttp\Promise\Promise postCommentForPullRequestAsync(array $args = []) + * @method \Aws\Result postCommentReply(array $args = []) + * @method \GuzzleHttp\Promise\Promise postCommentReplyAsync(array $args = []) + * @method \Aws\Result putFile(array $args = []) + * @method \GuzzleHttp\Promise\Promise putFileAsync(array $args = []) + * @method \Aws\Result putRepositoryTriggers(array $args = []) + * @method \GuzzleHttp\Promise\Promise putRepositoryTriggersAsync(array $args = []) + * @method \Aws\Result testRepositoryTriggers(array $args = []) + * @method \GuzzleHttp\Promise\Promise testRepositoryTriggersAsync(array $args = []) + * @method \Aws\Result updateComment(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateCommentAsync(array $args = []) + * @method \Aws\Result updateDefaultBranch(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDefaultBranchAsync(array $args = []) + * @method \Aws\Result updatePullRequestDescription(array $args = []) + * @method \GuzzleHttp\Promise\Promise updatePullRequestDescriptionAsync(array $args = []) + * @method \Aws\Result updatePullRequestStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise updatePullRequestStatusAsync(array $args = []) + * @method \Aws\Result updatePullRequestTitle(array $args = []) + * @method \GuzzleHttp\Promise\Promise updatePullRequestTitleAsync(array $args = []) + * @method \Aws\Result updateRepositoryDescription(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRepositoryDescriptionAsync(array $args = []) + * @method \Aws\Result updateRepositoryName(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRepositoryNameAsync(array $args = []) + */ +class CodeCommitClient extends AwsClient {} diff --git a/lib/aws/Aws/CodeCommit/Exception/CodeCommitException.php b/lib/aws/Aws/CodeCommit/Exception/CodeCommitException.php new file mode 100644 index 0000000..d74770f --- /dev/null +++ b/lib/aws/Aws/CodeCommit/Exception/CodeCommitException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CodeCommit\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS CodeCommit** service. + */ +class CodeCommitException extends AwsException {} diff --git a/lib/aws/Aws/CodeDeploy/CodeDeployClient.php b/lib/aws/Aws/CodeDeploy/CodeDeployClient.php new file mode 100644 index 0000000..be2348d --- /dev/null +++ b/lib/aws/Aws/CodeDeploy/CodeDeployClient.php @@ -0,0 +1,96 @@ +<?php +namespace Aws\CodeDeploy; + +use Aws\AwsClient; + +/** + * This client is used to interact with AWS CodeDeploy + * + * @method \Aws\Result addTagsToOnPremisesInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsToOnPremisesInstancesAsync(array $args = []) + * @method \Aws\Result batchGetApplicationRevisions(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetApplicationRevisionsAsync(array $args = []) + * @method \Aws\Result batchGetApplications(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetApplicationsAsync(array $args = []) + * @method \Aws\Result batchGetDeploymentGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetDeploymentGroupsAsync(array $args = []) + * @method \Aws\Result batchGetDeploymentInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetDeploymentInstancesAsync(array $args = []) + * @method \Aws\Result batchGetDeploymentTargets(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetDeploymentTargetsAsync(array $args = []) + * @method \Aws\Result batchGetDeployments(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetDeploymentsAsync(array $args = []) + * @method \Aws\Result batchGetOnPremisesInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetOnPremisesInstancesAsync(array $args = []) + * @method \Aws\Result continueDeployment(array $args = []) + * @method \GuzzleHttp\Promise\Promise continueDeploymentAsync(array $args = []) + * @method \Aws\Result createApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise createApplicationAsync(array $args = []) + * @method \Aws\Result createDeployment(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDeploymentAsync(array $args = []) + * @method \Aws\Result createDeploymentConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDeploymentConfigAsync(array $args = []) + * @method \Aws\Result createDeploymentGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDeploymentGroupAsync(array $args = []) + * @method \Aws\Result deleteApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApplicationAsync(array $args = []) + * @method \Aws\Result deleteDeploymentConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDeploymentConfigAsync(array $args = []) + * @method \Aws\Result deleteDeploymentGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDeploymentGroupAsync(array $args = []) + * @method \Aws\Result deleteGitHubAccountToken(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteGitHubAccountTokenAsync(array $args = []) + * @method \Aws\Result deregisterOnPremisesInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterOnPremisesInstanceAsync(array $args = []) + * @method \Aws\Result getApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise getApplicationAsync(array $args = []) + * @method \Aws\Result getApplicationRevision(array $args = []) + * @method \GuzzleHttp\Promise\Promise getApplicationRevisionAsync(array $args = []) + * @method \Aws\Result getDeployment(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDeploymentAsync(array $args = []) + * @method \Aws\Result getDeploymentConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDeploymentConfigAsync(array $args = []) + * @method \Aws\Result getDeploymentGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDeploymentGroupAsync(array $args = []) + * @method \Aws\Result getDeploymentInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDeploymentInstanceAsync(array $args = []) + * @method \Aws\Result getDeploymentTarget(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDeploymentTargetAsync(array $args = []) + * @method \Aws\Result getOnPremisesInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise getOnPremisesInstanceAsync(array $args = []) + * @method \Aws\Result listApplicationRevisions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listApplicationRevisionsAsync(array $args = []) + * @method \Aws\Result listApplications(array $args = []) + * @method \GuzzleHttp\Promise\Promise listApplicationsAsync(array $args = []) + * @method \Aws\Result listDeploymentConfigs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDeploymentConfigsAsync(array $args = []) + * @method \Aws\Result listDeploymentGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDeploymentGroupsAsync(array $args = []) + * @method \Aws\Result listDeploymentInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDeploymentInstancesAsync(array $args = []) + * @method \Aws\Result listDeploymentTargets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDeploymentTargetsAsync(array $args = []) + * @method \Aws\Result listDeployments(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDeploymentsAsync(array $args = []) + * @method \Aws\Result listGitHubAccountTokenNames(array $args = []) + * @method \GuzzleHttp\Promise\Promise listGitHubAccountTokenNamesAsync(array $args = []) + * @method \Aws\Result listOnPremisesInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise listOnPremisesInstancesAsync(array $args = []) + * @method \Aws\Result putLifecycleEventHookExecutionStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise putLifecycleEventHookExecutionStatusAsync(array $args = []) + * @method \Aws\Result registerApplicationRevision(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerApplicationRevisionAsync(array $args = []) + * @method \Aws\Result registerOnPremisesInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerOnPremisesInstanceAsync(array $args = []) + * @method \Aws\Result removeTagsFromOnPremisesInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeTagsFromOnPremisesInstancesAsync(array $args = []) + * @method \Aws\Result skipWaitTimeForInstanceTermination(array $args = []) + * @method \GuzzleHttp\Promise\Promise skipWaitTimeForInstanceTerminationAsync(array $args = []) + * @method \Aws\Result stopDeployment(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopDeploymentAsync(array $args = []) + * @method \Aws\Result updateApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateApplicationAsync(array $args = []) + * @method \Aws\Result updateDeploymentGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDeploymentGroupAsync(array $args = []) + */ +class CodeDeployClient extends AwsClient {} diff --git a/lib/aws/Aws/CodeDeploy/Exception/CodeDeployException.php b/lib/aws/Aws/CodeDeploy/Exception/CodeDeployException.php new file mode 100644 index 0000000..2fb9672 --- /dev/null +++ b/lib/aws/Aws/CodeDeploy/Exception/CodeDeployException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CodeDeploy\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with AWS CodeDeploy. + */ +class CodeDeployException extends AwsException {} diff --git a/lib/aws/Aws/CodePipeline/CodePipelineClient.php b/lib/aws/Aws/CodePipeline/CodePipelineClient.php new file mode 100644 index 0000000..02e3996 --- /dev/null +++ b/lib/aws/Aws/CodePipeline/CodePipelineClient.php @@ -0,0 +1,76 @@ +<?php +namespace Aws\CodePipeline; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon CodePipeline** service. + * + * @method \Aws\Result acknowledgeJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise acknowledgeJobAsync(array $args = []) + * @method \Aws\Result acknowledgeThirdPartyJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise acknowledgeThirdPartyJobAsync(array $args = []) + * @method \Aws\Result createCustomActionType(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCustomActionTypeAsync(array $args = []) + * @method \Aws\Result createPipeline(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPipelineAsync(array $args = []) + * @method \Aws\Result deleteCustomActionType(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCustomActionTypeAsync(array $args = []) + * @method \Aws\Result deletePipeline(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePipelineAsync(array $args = []) + * @method \Aws\Result deleteWebhook(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteWebhookAsync(array $args = []) + * @method \Aws\Result deregisterWebhookWithThirdParty(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterWebhookWithThirdPartyAsync(array $args = []) + * @method \Aws\Result disableStageTransition(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableStageTransitionAsync(array $args = []) + * @method \Aws\Result enableStageTransition(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableStageTransitionAsync(array $args = []) + * @method \Aws\Result getJobDetails(array $args = []) + * @method \GuzzleHttp\Promise\Promise getJobDetailsAsync(array $args = []) + * @method \Aws\Result getPipeline(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPipelineAsync(array $args = []) + * @method \Aws\Result getPipelineExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPipelineExecutionAsync(array $args = []) + * @method \Aws\Result getPipelineState(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPipelineStateAsync(array $args = []) + * @method \Aws\Result getThirdPartyJobDetails(array $args = []) + * @method \GuzzleHttp\Promise\Promise getThirdPartyJobDetailsAsync(array $args = []) + * @method \Aws\Result listActionExecutions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listActionExecutionsAsync(array $args = []) + * @method \Aws\Result listActionTypes(array $args = []) + * @method \GuzzleHttp\Promise\Promise listActionTypesAsync(array $args = []) + * @method \Aws\Result listPipelineExecutions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPipelineExecutionsAsync(array $args = []) + * @method \Aws\Result listPipelines(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPipelinesAsync(array $args = []) + * @method \Aws\Result listWebhooks(array $args = []) + * @method \GuzzleHttp\Promise\Promise listWebhooksAsync(array $args = []) + * @method \Aws\Result pollForJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise pollForJobsAsync(array $args = []) + * @method \Aws\Result pollForThirdPartyJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise pollForThirdPartyJobsAsync(array $args = []) + * @method \Aws\Result putActionRevision(array $args = []) + * @method \GuzzleHttp\Promise\Promise putActionRevisionAsync(array $args = []) + * @method \Aws\Result putApprovalResult(array $args = []) + * @method \GuzzleHttp\Promise\Promise putApprovalResultAsync(array $args = []) + * @method \Aws\Result putJobFailureResult(array $args = []) + * @method \GuzzleHttp\Promise\Promise putJobFailureResultAsync(array $args = []) + * @method \Aws\Result putJobSuccessResult(array $args = []) + * @method \GuzzleHttp\Promise\Promise putJobSuccessResultAsync(array $args = []) + * @method \Aws\Result putThirdPartyJobFailureResult(array $args = []) + * @method \GuzzleHttp\Promise\Promise putThirdPartyJobFailureResultAsync(array $args = []) + * @method \Aws\Result putThirdPartyJobSuccessResult(array $args = []) + * @method \GuzzleHttp\Promise\Promise putThirdPartyJobSuccessResultAsync(array $args = []) + * @method \Aws\Result putWebhook(array $args = []) + * @method \GuzzleHttp\Promise\Promise putWebhookAsync(array $args = []) + * @method \Aws\Result registerWebhookWithThirdParty(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerWebhookWithThirdPartyAsync(array $args = []) + * @method \Aws\Result retryStageExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise retryStageExecutionAsync(array $args = []) + * @method \Aws\Result startPipelineExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise startPipelineExecutionAsync(array $args = []) + * @method \Aws\Result updatePipeline(array $args = []) + * @method \GuzzleHttp\Promise\Promise updatePipelineAsync(array $args = []) + */ +class CodePipelineClient extends AwsClient {} \ No newline at end of file diff --git a/lib/aws/Aws/CodePipeline/Exception/CodePipelineException.php b/lib/aws/Aws/CodePipeline/Exception/CodePipelineException.php new file mode 100644 index 0000000..20f95c3 --- /dev/null +++ b/lib/aws/Aws/CodePipeline/Exception/CodePipelineException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CodePipeline\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon CodePipeline service. + */ +class CodePipelineException extends AwsException {} \ No newline at end of file diff --git a/lib/aws/Aws/CodeStar/CodeStarClient.php b/lib/aws/Aws/CodeStar/CodeStarClient.php new file mode 100644 index 0000000..2d39827 --- /dev/null +++ b/lib/aws/Aws/CodeStar/CodeStarClient.php @@ -0,0 +1,45 @@ +<?php +namespace Aws\CodeStar; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS CodeStar** service. + * @method \Aws\Result associateTeamMember(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateTeamMemberAsync(array $args = []) + * @method \Aws\Result createProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise createProjectAsync(array $args = []) + * @method \Aws\Result createUserProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise createUserProfileAsync(array $args = []) + * @method \Aws\Result deleteProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteProjectAsync(array $args = []) + * @method \Aws\Result deleteUserProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserProfileAsync(array $args = []) + * @method \Aws\Result describeProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeProjectAsync(array $args = []) + * @method \Aws\Result describeUserProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeUserProfileAsync(array $args = []) + * @method \Aws\Result disassociateTeamMember(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateTeamMemberAsync(array $args = []) + * @method \Aws\Result listProjects(array $args = []) + * @method \GuzzleHttp\Promise\Promise listProjectsAsync(array $args = []) + * @method \Aws\Result listResources(array $args = []) + * @method \GuzzleHttp\Promise\Promise listResourcesAsync(array $args = []) + * @method \Aws\Result listTagsForProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForProjectAsync(array $args = []) + * @method \Aws\Result listTeamMembers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTeamMembersAsync(array $args = []) + * @method \Aws\Result listUserProfiles(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUserProfilesAsync(array $args = []) + * @method \Aws\Result tagProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagProjectAsync(array $args = []) + * @method \Aws\Result untagProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagProjectAsync(array $args = []) + * @method \Aws\Result updateProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateProjectAsync(array $args = []) + * @method \Aws\Result updateTeamMember(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateTeamMemberAsync(array $args = []) + * @method \Aws\Result updateUserProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUserProfileAsync(array $args = []) + */ +class CodeStarClient extends AwsClient {} diff --git a/lib/aws/Aws/CodeStar/Exception/CodeStarException.php b/lib/aws/Aws/CodeStar/Exception/CodeStarException.php new file mode 100644 index 0000000..3eda6d5 --- /dev/null +++ b/lib/aws/Aws/CodeStar/Exception/CodeStarException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CodeStar\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS CodeStar** service. + */ +class CodeStarException extends AwsException {} diff --git a/lib/aws/Aws/CognitoIdentity/CognitoIdentityClient.php b/lib/aws/Aws/CognitoIdentity/CognitoIdentityClient.php new file mode 100644 index 0000000..b24a3e7 --- /dev/null +++ b/lib/aws/Aws/CognitoIdentity/CognitoIdentityClient.php @@ -0,0 +1,52 @@ +<?php +namespace Aws\CognitoIdentity; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Cognito Identity** service. + * + * @method \Aws\Result createIdentityPool(array $args = []) + * @method \GuzzleHttp\Promise\Promise createIdentityPoolAsync(array $args = []) + * @method \Aws\Result deleteIdentities(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteIdentitiesAsync(array $args = []) + * @method \Aws\Result deleteIdentityPool(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteIdentityPoolAsync(array $args = []) + * @method \Aws\Result describeIdentity(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeIdentityAsync(array $args = []) + * @method \Aws\Result describeIdentityPool(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeIdentityPoolAsync(array $args = []) + * @method \Aws\Result getCredentialsForIdentity(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCredentialsForIdentityAsync(array $args = []) + * @method \Aws\Result getId(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIdAsync(array $args = []) + * @method \Aws\Result getIdentityPoolRoles(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIdentityPoolRolesAsync(array $args = []) + * @method \Aws\Result getOpenIdToken(array $args = []) + * @method \GuzzleHttp\Promise\Promise getOpenIdTokenAsync(array $args = []) + * @method \Aws\Result getOpenIdTokenForDeveloperIdentity(array $args = []) + * @method \GuzzleHttp\Promise\Promise getOpenIdTokenForDeveloperIdentityAsync(array $args = []) + * @method \Aws\Result listIdentities(array $args = []) + * @method \GuzzleHttp\Promise\Promise listIdentitiesAsync(array $args = []) + * @method \Aws\Result listIdentityPools(array $args = []) + * @method \GuzzleHttp\Promise\Promise listIdentityPoolsAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result lookupDeveloperIdentity(array $args = []) + * @method \GuzzleHttp\Promise\Promise lookupDeveloperIdentityAsync(array $args = []) + * @method \Aws\Result mergeDeveloperIdentities(array $args = []) + * @method \GuzzleHttp\Promise\Promise mergeDeveloperIdentitiesAsync(array $args = []) + * @method \Aws\Result setIdentityPoolRoles(array $args = []) + * @method \GuzzleHttp\Promise\Promise setIdentityPoolRolesAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result unlinkDeveloperIdentity(array $args = []) + * @method \GuzzleHttp\Promise\Promise unlinkDeveloperIdentityAsync(array $args = []) + * @method \Aws\Result unlinkIdentity(array $args = []) + * @method \GuzzleHttp\Promise\Promise unlinkIdentityAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateIdentityPool(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateIdentityPoolAsync(array $args = []) + */ +class CognitoIdentityClient extends AwsClient {} diff --git a/lib/aws/Aws/CognitoIdentity/CognitoIdentityProvider.php b/lib/aws/Aws/CognitoIdentity/CognitoIdentityProvider.php new file mode 100644 index 0000000..9127425 --- /dev/null +++ b/lib/aws/Aws/CognitoIdentity/CognitoIdentityProvider.php @@ -0,0 +1,61 @@ +<?php +namespace Aws\CognitoIdentity; + +use Aws\Credentials\Credentials; +use GuzzleHttp\Promise; + +class CognitoIdentityProvider +{ + /** @var CognitoIdentityClient */ + private $client; + /** @var string */ + private $identityPoolId; + /** @var string|null */ + private $accountId; + /** @var array */ + private $logins; + + public function __construct( + $poolId, + array $clientOptions, + array $logins = [], + $accountId = null + ) { + $this->identityPoolId = $poolId; + $this->logins = $logins; + $this->accountId = $accountId; + $this->client = new CognitoIdentityClient($clientOptions + [ + 'credentials' => false, + ]); + } + + public function __invoke() + { + return Promise\coroutine(function () { + $params = $this->logins ? ['Logins' => $this->logins] : []; + $getIdParams = $params + ['IdentityPoolId' => $this->identityPoolId]; + if ($this->accountId) { + $getIdParams['AccountId'] = $this->accountId; + } + + $id = (yield $this->client->getId($getIdParams)); + $result = (yield $this->client->getCredentialsForIdentity([ + 'IdentityId' => $id['IdentityId'], + ] + $params)); + + yield new Credentials( + $result['Credentials']['AccessKeyId'], + $result['Credentials']['SecretKey'], + $result['Credentials']['SessionToken'], + (int) $result['Credentials']['Expiration']->format('U') + ); + }); + } + + public function updateLogin($key, $value) + { + $this->logins[$key] = $value; + + return $this; + } +} diff --git a/lib/aws/Aws/CognitoIdentity/Exception/CognitoIdentityException.php b/lib/aws/Aws/CognitoIdentity/Exception/CognitoIdentityException.php new file mode 100644 index 0000000..4d58f72 --- /dev/null +++ b/lib/aws/Aws/CognitoIdentity/Exception/CognitoIdentityException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CognitoIdentity\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon Cognito Identity Logs service. + */ +class CognitoIdentityException extends AwsException {} diff --git a/lib/aws/Aws/CognitoIdentityProvider/CognitoIdentityProviderClient.php b/lib/aws/Aws/CognitoIdentityProvider/CognitoIdentityProviderClient.php new file mode 100644 index 0000000..a6bde28 --- /dev/null +++ b/lib/aws/Aws/CognitoIdentityProvider/CognitoIdentityProviderClient.php @@ -0,0 +1,208 @@ +<?php +namespace Aws\CognitoIdentityProvider; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Cognito Identity Provider** service. + * + * @method \Aws\Result addCustomAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise addCustomAttributesAsync(array $args = []) + * @method \Aws\Result adminAddUserToGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminAddUserToGroupAsync(array $args = []) + * @method \Aws\Result adminConfirmSignUp(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminConfirmSignUpAsync(array $args = []) + * @method \Aws\Result adminCreateUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminCreateUserAsync(array $args = []) + * @method \Aws\Result adminDeleteUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminDeleteUserAsync(array $args = []) + * @method \Aws\Result adminDeleteUserAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminDeleteUserAttributesAsync(array $args = []) + * @method \Aws\Result adminDisableProviderForUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminDisableProviderForUserAsync(array $args = []) + * @method \Aws\Result adminDisableUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminDisableUserAsync(array $args = []) + * @method \Aws\Result adminEnableUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminEnableUserAsync(array $args = []) + * @method \Aws\Result adminForgetDevice(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminForgetDeviceAsync(array $args = []) + * @method \Aws\Result adminGetDevice(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminGetDeviceAsync(array $args = []) + * @method \Aws\Result adminGetUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminGetUserAsync(array $args = []) + * @method \Aws\Result adminInitiateAuth(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminInitiateAuthAsync(array $args = []) + * @method \Aws\Result adminLinkProviderForUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminLinkProviderForUserAsync(array $args = []) + * @method \Aws\Result adminListDevices(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminListDevicesAsync(array $args = []) + * @method \Aws\Result adminListGroupsForUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminListGroupsForUserAsync(array $args = []) + * @method \Aws\Result adminListUserAuthEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminListUserAuthEventsAsync(array $args = []) + * @method \Aws\Result adminRemoveUserFromGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminRemoveUserFromGroupAsync(array $args = []) + * @method \Aws\Result adminResetUserPassword(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminResetUserPasswordAsync(array $args = []) + * @method \Aws\Result adminRespondToAuthChallenge(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminRespondToAuthChallengeAsync(array $args = []) + * @method \Aws\Result adminSetUserMFAPreference(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminSetUserMFAPreferenceAsync(array $args = []) + * @method \Aws\Result adminSetUserSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminSetUserSettingsAsync(array $args = []) + * @method \Aws\Result adminUpdateAuthEventFeedback(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminUpdateAuthEventFeedbackAsync(array $args = []) + * @method \Aws\Result adminUpdateDeviceStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminUpdateDeviceStatusAsync(array $args = []) + * @method \Aws\Result adminUpdateUserAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminUpdateUserAttributesAsync(array $args = []) + * @method \Aws\Result adminUserGlobalSignOut(array $args = []) + * @method \GuzzleHttp\Promise\Promise adminUserGlobalSignOutAsync(array $args = []) + * @method \Aws\Result associateSoftwareToken(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateSoftwareTokenAsync(array $args = []) + * @method \Aws\Result changePassword(array $args = []) + * @method \GuzzleHttp\Promise\Promise changePasswordAsync(array $args = []) + * @method \Aws\Result confirmDevice(array $args = []) + * @method \GuzzleHttp\Promise\Promise confirmDeviceAsync(array $args = []) + * @method \Aws\Result confirmForgotPassword(array $args = []) + * @method \GuzzleHttp\Promise\Promise confirmForgotPasswordAsync(array $args = []) + * @method \Aws\Result confirmSignUp(array $args = []) + * @method \GuzzleHttp\Promise\Promise confirmSignUpAsync(array $args = []) + * @method \Aws\Result createGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createGroupAsync(array $args = []) + * @method \Aws\Result createIdentityProvider(array $args = []) + * @method \GuzzleHttp\Promise\Promise createIdentityProviderAsync(array $args = []) + * @method \Aws\Result createResourceServer(array $args = []) + * @method \GuzzleHttp\Promise\Promise createResourceServerAsync(array $args = []) + * @method \Aws\Result createUserImportJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise createUserImportJobAsync(array $args = []) + * @method \Aws\Result createUserPool(array $args = []) + * @method \GuzzleHttp\Promise\Promise createUserPoolAsync(array $args = []) + * @method \Aws\Result createUserPoolClient(array $args = []) + * @method \GuzzleHttp\Promise\Promise createUserPoolClientAsync(array $args = []) + * @method \Aws\Result createUserPoolDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise createUserPoolDomainAsync(array $args = []) + * @method \Aws\Result deleteGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteGroupAsync(array $args = []) + * @method \Aws\Result deleteIdentityProvider(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteIdentityProviderAsync(array $args = []) + * @method \Aws\Result deleteResourceServer(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteResourceServerAsync(array $args = []) + * @method \Aws\Result deleteUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserAsync(array $args = []) + * @method \Aws\Result deleteUserAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserAttributesAsync(array $args = []) + * @method \Aws\Result deleteUserPool(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserPoolAsync(array $args = []) + * @method \Aws\Result deleteUserPoolClient(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserPoolClientAsync(array $args = []) + * @method \Aws\Result deleteUserPoolDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserPoolDomainAsync(array $args = []) + * @method \Aws\Result describeIdentityProvider(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeIdentityProviderAsync(array $args = []) + * @method \Aws\Result describeResourceServer(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeResourceServerAsync(array $args = []) + * @method \Aws\Result describeRiskConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRiskConfigurationAsync(array $args = []) + * @method \Aws\Result describeUserImportJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeUserImportJobAsync(array $args = []) + * @method \Aws\Result describeUserPool(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeUserPoolAsync(array $args = []) + * @method \Aws\Result describeUserPoolClient(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeUserPoolClientAsync(array $args = []) + * @method \Aws\Result describeUserPoolDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeUserPoolDomainAsync(array $args = []) + * @method \Aws\Result forgetDevice(array $args = []) + * @method \GuzzleHttp\Promise\Promise forgetDeviceAsync(array $args = []) + * @method \Aws\Result forgotPassword(array $args = []) + * @method \GuzzleHttp\Promise\Promise forgotPasswordAsync(array $args = []) + * @method \Aws\Result getCSVHeader(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCSVHeaderAsync(array $args = []) + * @method \Aws\Result getDevice(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDeviceAsync(array $args = []) + * @method \Aws\Result getGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise getGroupAsync(array $args = []) + * @method \Aws\Result getIdentityProviderByIdentifier(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIdentityProviderByIdentifierAsync(array $args = []) + * @method \Aws\Result getSigningCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSigningCertificateAsync(array $args = []) + * @method \Aws\Result getUICustomization(array $args = []) + * @method \GuzzleHttp\Promise\Promise getUICustomizationAsync(array $args = []) + * @method \Aws\Result getUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise getUserAsync(array $args = []) + * @method \Aws\Result getUserAttributeVerificationCode(array $args = []) + * @method \GuzzleHttp\Promise\Promise getUserAttributeVerificationCodeAsync(array $args = []) + * @method \Aws\Result getUserPoolMfaConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise getUserPoolMfaConfigAsync(array $args = []) + * @method \Aws\Result globalSignOut(array $args = []) + * @method \GuzzleHttp\Promise\Promise globalSignOutAsync(array $args = []) + * @method \Aws\Result initiateAuth(array $args = []) + * @method \GuzzleHttp\Promise\Promise initiateAuthAsync(array $args = []) + * @method \Aws\Result listDevices(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDevicesAsync(array $args = []) + * @method \Aws\Result listGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise listGroupsAsync(array $args = []) + * @method \Aws\Result listIdentityProviders(array $args = []) + * @method \GuzzleHttp\Promise\Promise listIdentityProvidersAsync(array $args = []) + * @method \Aws\Result listResourceServers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listResourceServersAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result listUserImportJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUserImportJobsAsync(array $args = []) + * @method \Aws\Result listUserPoolClients(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUserPoolClientsAsync(array $args = []) + * @method \Aws\Result listUserPools(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUserPoolsAsync(array $args = []) + * @method \Aws\Result listUsers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUsersAsync(array $args = []) + * @method \Aws\Result listUsersInGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUsersInGroupAsync(array $args = []) + * @method \Aws\Result resendConfirmationCode(array $args = []) + * @method \GuzzleHttp\Promise\Promise resendConfirmationCodeAsync(array $args = []) + * @method \Aws\Result respondToAuthChallenge(array $args = []) + * @method \GuzzleHttp\Promise\Promise respondToAuthChallengeAsync(array $args = []) + * @method \Aws\Result setRiskConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise setRiskConfigurationAsync(array $args = []) + * @method \Aws\Result setUICustomization(array $args = []) + * @method \GuzzleHttp\Promise\Promise setUICustomizationAsync(array $args = []) + * @method \Aws\Result setUserMFAPreference(array $args = []) + * @method \GuzzleHttp\Promise\Promise setUserMFAPreferenceAsync(array $args = []) + * @method \Aws\Result setUserPoolMfaConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise setUserPoolMfaConfigAsync(array $args = []) + * @method \Aws\Result setUserSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise setUserSettingsAsync(array $args = []) + * @method \Aws\Result signUp(array $args = []) + * @method \GuzzleHttp\Promise\Promise signUpAsync(array $args = []) + * @method \Aws\Result startUserImportJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise startUserImportJobAsync(array $args = []) + * @method \Aws\Result stopUserImportJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopUserImportJobAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateAuthEventFeedback(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAuthEventFeedbackAsync(array $args = []) + * @method \Aws\Result updateDeviceStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDeviceStatusAsync(array $args = []) + * @method \Aws\Result updateGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateGroupAsync(array $args = []) + * @method \Aws\Result updateIdentityProvider(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateIdentityProviderAsync(array $args = []) + * @method \Aws\Result updateResourceServer(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateResourceServerAsync(array $args = []) + * @method \Aws\Result updateUserAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUserAttributesAsync(array $args = []) + * @method \Aws\Result updateUserPool(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUserPoolAsync(array $args = []) + * @method \Aws\Result updateUserPoolClient(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUserPoolClientAsync(array $args = []) + * @method \Aws\Result updateUserPoolDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUserPoolDomainAsync(array $args = []) + * @method \Aws\Result verifySoftwareToken(array $args = []) + * @method \GuzzleHttp\Promise\Promise verifySoftwareTokenAsync(array $args = []) + * @method \Aws\Result verifyUserAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise verifyUserAttributeAsync(array $args = []) + */ +class CognitoIdentityProviderClient extends AwsClient {} diff --git a/lib/aws/Aws/CognitoIdentityProvider/Exception/CognitoIdentityProviderException.php b/lib/aws/Aws/CognitoIdentityProvider/Exception/CognitoIdentityProviderException.php new file mode 100644 index 0000000..20cad82 --- /dev/null +++ b/lib/aws/Aws/CognitoIdentityProvider/Exception/CognitoIdentityProviderException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CognitoIdentityProvider\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Cognito Identity Provider** service. + */ +class CognitoIdentityProviderException extends AwsException {} diff --git a/lib/aws/Aws/CognitoSync/CognitoSyncClient.php b/lib/aws/Aws/CognitoSync/CognitoSyncClient.php new file mode 100644 index 0000000..631cc56 --- /dev/null +++ b/lib/aws/Aws/CognitoSync/CognitoSyncClient.php @@ -0,0 +1,44 @@ +<?php +namespace Aws\CognitoSync; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Cognito Sync** service. + * + * @method \Aws\Result bulkPublish(array $args = []) + * @method \GuzzleHttp\Promise\Promise bulkPublishAsync(array $args = []) + * @method \Aws\Result deleteDataset(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDatasetAsync(array $args = []) + * @method \Aws\Result describeDataset(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDatasetAsync(array $args = []) + * @method \Aws\Result describeIdentityPoolUsage(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeIdentityPoolUsageAsync(array $args = []) + * @method \Aws\Result describeIdentityUsage(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeIdentityUsageAsync(array $args = []) + * @method \Aws\Result getBulkPublishDetails(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBulkPublishDetailsAsync(array $args = []) + * @method \Aws\Result getCognitoEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCognitoEventsAsync(array $args = []) + * @method \Aws\Result getIdentityPoolConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIdentityPoolConfigurationAsync(array $args = []) + * @method \Aws\Result listDatasets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDatasetsAsync(array $args = []) + * @method \Aws\Result listIdentityPoolUsage(array $args = []) + * @method \GuzzleHttp\Promise\Promise listIdentityPoolUsageAsync(array $args = []) + * @method \Aws\Result listRecords(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRecordsAsync(array $args = []) + * @method \Aws\Result registerDevice(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerDeviceAsync(array $args = []) + * @method \Aws\Result setCognitoEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise setCognitoEventsAsync(array $args = []) + * @method \Aws\Result setIdentityPoolConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise setIdentityPoolConfigurationAsync(array $args = []) + * @method \Aws\Result subscribeToDataset(array $args = []) + * @method \GuzzleHttp\Promise\Promise subscribeToDatasetAsync(array $args = []) + * @method \Aws\Result unsubscribeFromDataset(array $args = []) + * @method \GuzzleHttp\Promise\Promise unsubscribeFromDatasetAsync(array $args = []) + * @method \Aws\Result updateRecords(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRecordsAsync(array $args = []) + */ +class CognitoSyncClient extends AwsClient {} diff --git a/lib/aws/Aws/CognitoSync/Exception/CognitoSyncException.php b/lib/aws/Aws/CognitoSync/Exception/CognitoSyncException.php new file mode 100644 index 0000000..8ecf0a0 --- /dev/null +++ b/lib/aws/Aws/CognitoSync/Exception/CognitoSyncException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CognitoSync\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon Cognito Sync service. + */ +class CognitoSyncException extends AwsException {} diff --git a/lib/aws/Aws/Command.php b/lib/aws/Aws/Command.php new file mode 100644 index 0000000..7bcdc13 --- /dev/null +++ b/lib/aws/Aws/Command.php @@ -0,0 +1,62 @@ +<?php +namespace Aws; + +/** + * AWS command object. + */ +class Command implements CommandInterface +{ + use HasDataTrait; + + /** @var string */ + private $name; + + /** @var HandlerList */ + private $handlerList; + + /** + * Accepts an associative array of command options, including: + * + * - @http: (array) Associative array of transfer options. + * + * @param string $name Name of the command + * @param array $args Arguments to pass to the command + * @param HandlerList $list Handler list + */ + public function __construct($name, array $args = [], HandlerList $list = null) + { + $this->name = $name; + $this->data = $args; + $this->handlerList = $list ?: new HandlerList(); + + if (!isset($this->data['@http'])) { + $this->data['@http'] = []; + } + } + + public function __clone() + { + $this->handlerList = clone $this->handlerList; + } + + 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/Aws/CommandInterface.php b/lib/aws/Aws/CommandInterface.php new file mode 100644 index 0000000..b35c75d --- /dev/null +++ b/lib/aws/Aws/CommandInterface.php @@ -0,0 +1,42 @@ +<?php +namespace Aws; + +/** + * A command object encapsulates the input parameters used to control the + * creation of a HTTP request and processing of a HTTP response. + * + * Using the toArray() method will return the input parameters of the command + * as an associative array. + */ +interface CommandInterface extends \ArrayAccess, \Countable, \IteratorAggregate +{ + /** + * Converts the command parameters to an array + * + * @return array + */ + public function toArray(); + + /** + * Get the name of the command + * + * @return string + */ + public function getName(); + + /** + * Check if the command has a parameter by name. + * + * @param string $name Name of the parameter to check + * + * @return bool + */ + public function hasParam($name); + + /** + * Get the handler list used to transfer the command. + * + * @return HandlerList + */ + public function getHandlerList(); +} diff --git a/lib/aws/Aws/CommandPool.php b/lib/aws/Aws/CommandPool.php new file mode 100644 index 0000000..2a101ee --- /dev/null +++ b/lib/aws/Aws/CommandPool.php @@ -0,0 +1,150 @@ +<?php +namespace Aws; + +use GuzzleHttp\Promise\PromisorInterface; +use GuzzleHttp\Promise\EachPromise; + +/** + * Sends and iterator of commands concurrently using a capped pool size. + * + * The pool will read command objects from an iterator until it is cancelled or + * until the iterator is consumed. + */ +class CommandPool implements PromisorInterface +{ + /** @var EachPromise */ + private $each; + + /** + * The CommandPool constructor accepts a hash of configuration options: + * + * - concurrency: (callable|int) Maximum number of commands to execute + * concurrently. Provide a function to resize the pool dynamically. The + * function will be provided the current number of pending requests and + * is expected to return an integer representing the new pool size limit. + * - before: (callable) function to invoke before sending each command. The + * before function accepts the command and the key of the iterator of the + * command. You can mutate the command as needed in the before function + * before sending the command. + * - fulfilled: (callable) Function to invoke when a promise is fulfilled. + * The function is provided the result object, id of the iterator that the + * result came from, and the aggregate promise that can be resolved/rejected + * if you need to short-circuit the pool. + * - rejected: (callable) Function to invoke when a promise is rejected. + * The function is provided an AwsException object, id of the iterator that + * the exception came from, and the aggregate promise that can be + * resolved/rejected if you need to short-circuit the pool. + * - preserve_iterator_keys: (bool) Retain the iterator key when generating + * the commands. + * + * @param AwsClientInterface $client Client used to execute commands. + * @param array|\Iterator $commands Iterable that yields commands. + * @param array $config Associative array of options. + */ + public function __construct( + AwsClientInterface $client, + $commands, + array $config = [] + ) { + if (!isset($config['concurrency'])) { + $config['concurrency'] = 25; + } + + $before = $this->getBefore($config); + $mapFn = function ($commands) use ($client, $before, $config) { + 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); + } + if (!empty($config['preserve_iterator_keys'])) { + yield $key => $client->executeAsync($command); + } else { + 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/Aws/Comprehend/ComprehendClient.php b/lib/aws/Aws/Comprehend/ComprehendClient.php new file mode 100644 index 0000000..432d062 --- /dev/null +++ b/lib/aws/Aws/Comprehend/ComprehendClient.php @@ -0,0 +1,99 @@ +<?php +namespace Aws\Comprehend; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Comprehend** service. + * @method \Aws\Result batchDetectDominantLanguage(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchDetectDominantLanguageAsync(array $args = []) + * @method \Aws\Result batchDetectEntities(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchDetectEntitiesAsync(array $args = []) + * @method \Aws\Result batchDetectKeyPhrases(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchDetectKeyPhrasesAsync(array $args = []) + * @method \Aws\Result batchDetectSentiment(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchDetectSentimentAsync(array $args = []) + * @method \Aws\Result batchDetectSyntax(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchDetectSyntaxAsync(array $args = []) + * @method \Aws\Result createDocumentClassifier(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDocumentClassifierAsync(array $args = []) + * @method \Aws\Result createEntityRecognizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise createEntityRecognizerAsync(array $args = []) + * @method \Aws\Result deleteDocumentClassifier(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDocumentClassifierAsync(array $args = []) + * @method \Aws\Result deleteEntityRecognizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteEntityRecognizerAsync(array $args = []) + * @method \Aws\Result describeDocumentClassificationJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDocumentClassificationJobAsync(array $args = []) + * @method \Aws\Result describeDocumentClassifier(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDocumentClassifierAsync(array $args = []) + * @method \Aws\Result describeDominantLanguageDetectionJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDominantLanguageDetectionJobAsync(array $args = []) + * @method \Aws\Result describeEntitiesDetectionJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEntitiesDetectionJobAsync(array $args = []) + * @method \Aws\Result describeEntityRecognizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEntityRecognizerAsync(array $args = []) + * @method \Aws\Result describeKeyPhrasesDetectionJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeKeyPhrasesDetectionJobAsync(array $args = []) + * @method \Aws\Result describeSentimentDetectionJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSentimentDetectionJobAsync(array $args = []) + * @method \Aws\Result describeTopicsDetectionJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTopicsDetectionJobAsync(array $args = []) + * @method \Aws\Result detectDominantLanguage(array $args = []) + * @method \GuzzleHttp\Promise\Promise detectDominantLanguageAsync(array $args = []) + * @method \Aws\Result detectEntities(array $args = []) + * @method \GuzzleHttp\Promise\Promise detectEntitiesAsync(array $args = []) + * @method \Aws\Result detectKeyPhrases(array $args = []) + * @method \GuzzleHttp\Promise\Promise detectKeyPhrasesAsync(array $args = []) + * @method \Aws\Result detectSentiment(array $args = []) + * @method \GuzzleHttp\Promise\Promise detectSentimentAsync(array $args = []) + * @method \Aws\Result detectSyntax(array $args = []) + * @method \GuzzleHttp\Promise\Promise detectSyntaxAsync(array $args = []) + * @method \Aws\Result listDocumentClassificationJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDocumentClassificationJobsAsync(array $args = []) + * @method \Aws\Result listDocumentClassifiers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDocumentClassifiersAsync(array $args = []) + * @method \Aws\Result listDominantLanguageDetectionJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDominantLanguageDetectionJobsAsync(array $args = []) + * @method \Aws\Result listEntitiesDetectionJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listEntitiesDetectionJobsAsync(array $args = []) + * @method \Aws\Result listEntityRecognizers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listEntityRecognizersAsync(array $args = []) + * @method \Aws\Result listKeyPhrasesDetectionJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listKeyPhrasesDetectionJobsAsync(array $args = []) + * @method \Aws\Result listSentimentDetectionJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSentimentDetectionJobsAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result listTopicsDetectionJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTopicsDetectionJobsAsync(array $args = []) + * @method \Aws\Result startDocumentClassificationJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise startDocumentClassificationJobAsync(array $args = []) + * @method \Aws\Result startDominantLanguageDetectionJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise startDominantLanguageDetectionJobAsync(array $args = []) + * @method \Aws\Result startEntitiesDetectionJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise startEntitiesDetectionJobAsync(array $args = []) + * @method \Aws\Result startKeyPhrasesDetectionJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise startKeyPhrasesDetectionJobAsync(array $args = []) + * @method \Aws\Result startSentimentDetectionJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise startSentimentDetectionJobAsync(array $args = []) + * @method \Aws\Result startTopicsDetectionJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise startTopicsDetectionJobAsync(array $args = []) + * @method \Aws\Result stopDominantLanguageDetectionJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopDominantLanguageDetectionJobAsync(array $args = []) + * @method \Aws\Result stopEntitiesDetectionJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopEntitiesDetectionJobAsync(array $args = []) + * @method \Aws\Result stopKeyPhrasesDetectionJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopKeyPhrasesDetectionJobAsync(array $args = []) + * @method \Aws\Result stopSentimentDetectionJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopSentimentDetectionJobAsync(array $args = []) + * @method \Aws\Result stopTrainingDocumentClassifier(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopTrainingDocumentClassifierAsync(array $args = []) + * @method \Aws\Result stopTrainingEntityRecognizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopTrainingEntityRecognizerAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + */ +class ComprehendClient extends AwsClient {} diff --git a/lib/aws/Aws/Comprehend/Exception/ComprehendException.php b/lib/aws/Aws/Comprehend/Exception/ComprehendException.php new file mode 100644 index 0000000..cf6145f --- /dev/null +++ b/lib/aws/Aws/Comprehend/Exception/ComprehendException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Comprehend\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Comprehend** service. + */ +class ComprehendException extends AwsException {} diff --git a/lib/aws/Aws/ComprehendMedical/ComprehendMedicalClient.php b/lib/aws/Aws/ComprehendMedical/ComprehendMedicalClient.php new file mode 100644 index 0000000..3e20bc9 --- /dev/null +++ b/lib/aws/Aws/ComprehendMedical/ComprehendMedicalClient.php @@ -0,0 +1,13 @@ +<?php +namespace Aws\ComprehendMedical; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Comprehend Medical** service. + * @method \Aws\Result detectEntities(array $args = []) + * @method \GuzzleHttp\Promise\Promise detectEntitiesAsync(array $args = []) + * @method \Aws\Result detectPHI(array $args = []) + * @method \GuzzleHttp\Promise\Promise detectPHIAsync(array $args = []) + */ +class ComprehendMedicalClient extends AwsClient {} diff --git a/lib/aws/Aws/ComprehendMedical/Exception/ComprehendMedicalException.php b/lib/aws/Aws/ComprehendMedical/Exception/ComprehendMedicalException.php new file mode 100644 index 0000000..091db6c --- /dev/null +++ b/lib/aws/Aws/ComprehendMedical/Exception/ComprehendMedicalException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\ComprehendMedical\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Comprehend Medical** service. + */ +class ComprehendMedicalException extends AwsException {} diff --git a/lib/aws/Aws/ConfigService/ConfigServiceClient.php b/lib/aws/Aws/ConfigService/ConfigServiceClient.php new file mode 100644 index 0000000..42b1322 --- /dev/null +++ b/lib/aws/Aws/ConfigService/ConfigServiceClient.php @@ -0,0 +1,122 @@ +<?php +namespace Aws\ConfigService; + +use Aws\AwsClient; + +/** + * This client is used to interact with AWS Config. + * + * @method \Aws\Result batchGetAggregateResourceConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetAggregateResourceConfigAsync(array $args = []) + * @method \Aws\Result batchGetResourceConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetResourceConfigAsync(array $args = []) + * @method \Aws\Result deleteAggregationAuthorization(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAggregationAuthorizationAsync(array $args = []) + * @method \Aws\Result deleteConfigRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteConfigRuleAsync(array $args = []) + * @method \Aws\Result deleteConfigurationAggregator(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteConfigurationAggregatorAsync(array $args = []) + * @method \Aws\Result deleteConfigurationRecorder(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteConfigurationRecorderAsync(array $args = []) + * @method \Aws\Result deleteDeliveryChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDeliveryChannelAsync(array $args = []) + * @method \Aws\Result deleteEvaluationResults(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteEvaluationResultsAsync(array $args = []) + * @method \Aws\Result deletePendingAggregationRequest(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePendingAggregationRequestAsync(array $args = []) + * @method \Aws\Result deleteRemediationConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRemediationConfigurationAsync(array $args = []) + * @method \Aws\Result deleteRetentionConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRetentionConfigurationAsync(array $args = []) + * @method \Aws\Result deliverConfigSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise deliverConfigSnapshotAsync(array $args = []) + * @method \Aws\Result describeAggregateComplianceByConfigRules(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAggregateComplianceByConfigRulesAsync(array $args = []) + * @method \Aws\Result describeAggregationAuthorizations(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAggregationAuthorizationsAsync(array $args = []) + * @method \Aws\Result describeComplianceByConfigRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeComplianceByConfigRuleAsync(array $args = []) + * @method \Aws\Result describeComplianceByResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeComplianceByResourceAsync(array $args = []) + * @method \Aws\Result describeConfigRuleEvaluationStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeConfigRuleEvaluationStatusAsync(array $args = []) + * @method \Aws\Result describeConfigRules(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeConfigRulesAsync(array $args = []) + * @method \Aws\Result describeConfigurationAggregatorSourcesStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeConfigurationAggregatorSourcesStatusAsync(array $args = []) + * @method \Aws\Result describeConfigurationAggregators(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeConfigurationAggregatorsAsync(array $args = []) + * @method \Aws\Result describeConfigurationRecorderStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeConfigurationRecorderStatusAsync(array $args = []) + * @method \Aws\Result describeConfigurationRecorders(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeConfigurationRecordersAsync(array $args = []) + * @method \Aws\Result describeDeliveryChannelStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDeliveryChannelStatusAsync(array $args = []) + * @method \Aws\Result describeDeliveryChannels(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDeliveryChannelsAsync(array $args = []) + * @method \Aws\Result describePendingAggregationRequests(array $args = []) + * @method \GuzzleHttp\Promise\Promise describePendingAggregationRequestsAsync(array $args = []) + * @method \Aws\Result describeRemediationConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRemediationConfigurationsAsync(array $args = []) + * @method \Aws\Result describeRemediationExecutionStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRemediationExecutionStatusAsync(array $args = []) + * @method \Aws\Result describeRetentionConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRetentionConfigurationsAsync(array $args = []) + * @method \Aws\Result getAggregateComplianceDetailsByConfigRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAggregateComplianceDetailsByConfigRuleAsync(array $args = []) + * @method \Aws\Result getAggregateConfigRuleComplianceSummary(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAggregateConfigRuleComplianceSummaryAsync(array $args = []) + * @method \Aws\Result getAggregateDiscoveredResourceCounts(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAggregateDiscoveredResourceCountsAsync(array $args = []) + * @method \Aws\Result getAggregateResourceConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAggregateResourceConfigAsync(array $args = []) + * @method \Aws\Result getComplianceDetailsByConfigRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise getComplianceDetailsByConfigRuleAsync(array $args = []) + * @method \Aws\Result getComplianceDetailsByResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise getComplianceDetailsByResourceAsync(array $args = []) + * @method \Aws\Result getComplianceSummaryByConfigRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise getComplianceSummaryByConfigRuleAsync(array $args = []) + * @method \Aws\Result getComplianceSummaryByResourceType(array $args = []) + * @method \GuzzleHttp\Promise\Promise getComplianceSummaryByResourceTypeAsync(array $args = []) + * @method \Aws\Result getDiscoveredResourceCounts(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDiscoveredResourceCountsAsync(array $args = []) + * @method \Aws\Result getResourceConfigHistory(array $args = []) + * @method \GuzzleHttp\Promise\Promise getResourceConfigHistoryAsync(array $args = []) + * @method \Aws\Result listAggregateDiscoveredResources(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAggregateDiscoveredResourcesAsync(array $args = []) + * @method \Aws\Result listDiscoveredResources(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDiscoveredResourcesAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result putAggregationAuthorization(array $args = []) + * @method \GuzzleHttp\Promise\Promise putAggregationAuthorizationAsync(array $args = []) + * @method \Aws\Result putConfigRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise putConfigRuleAsync(array $args = []) + * @method \Aws\Result putConfigurationAggregator(array $args = []) + * @method \GuzzleHttp\Promise\Promise putConfigurationAggregatorAsync(array $args = []) + * @method \Aws\Result putConfigurationRecorder(array $args = []) + * @method \GuzzleHttp\Promise\Promise putConfigurationRecorderAsync(array $args = []) + * @method \Aws\Result putDeliveryChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise putDeliveryChannelAsync(array $args = []) + * @method \Aws\Result putEvaluations(array $args = []) + * @method \GuzzleHttp\Promise\Promise putEvaluationsAsync(array $args = []) + * @method \Aws\Result putRemediationConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise putRemediationConfigurationsAsync(array $args = []) + * @method \Aws\Result putRetentionConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putRetentionConfigurationAsync(array $args = []) + * @method \Aws\Result selectResourceConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise selectResourceConfigAsync(array $args = []) + * @method \Aws\Result startConfigRulesEvaluation(array $args = []) + * @method \GuzzleHttp\Promise\Promise startConfigRulesEvaluationAsync(array $args = []) + * @method \Aws\Result startConfigurationRecorder(array $args = []) + * @method \GuzzleHttp\Promise\Promise startConfigurationRecorderAsync(array $args = []) + * @method \Aws\Result startRemediationExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise startRemediationExecutionAsync(array $args = []) + * @method \Aws\Result stopConfigurationRecorder(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopConfigurationRecorderAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + */ +class ConfigServiceClient extends AwsClient {} diff --git a/lib/aws/Aws/ConfigService/Exception/ConfigServiceException.php b/lib/aws/Aws/ConfigService/Exception/ConfigServiceException.php new file mode 100644 index 0000000..56dc44d --- /dev/null +++ b/lib/aws/Aws/ConfigService/Exception/ConfigServiceException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\ConfigService\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the AWS Config service. + */ +class ConfigServiceException extends AwsException {} diff --git a/lib/aws/Aws/Connect/ConnectClient.php b/lib/aws/Aws/Connect/ConnectClient.php new file mode 100644 index 0000000..8c3c4ec --- /dev/null +++ b/lib/aws/Aws/Connect/ConnectClient.php @@ -0,0 +1,51 @@ +<?php +namespace Aws\Connect; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Connect Service** service. + * @method \Aws\Result createUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise createUserAsync(array $args = []) + * @method \Aws\Result deleteUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserAsync(array $args = []) + * @method \Aws\Result describeUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeUserAsync(array $args = []) + * @method \Aws\Result describeUserHierarchyGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeUserHierarchyGroupAsync(array $args = []) + * @method \Aws\Result describeUserHierarchyStructure(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeUserHierarchyStructureAsync(array $args = []) + * @method \Aws\Result getContactAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise getContactAttributesAsync(array $args = []) + * @method \Aws\Result getCurrentMetricData(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCurrentMetricDataAsync(array $args = []) + * @method \Aws\Result getFederationToken(array $args = []) + * @method \GuzzleHttp\Promise\Promise getFederationTokenAsync(array $args = []) + * @method \Aws\Result getMetricData(array $args = []) + * @method \GuzzleHttp\Promise\Promise getMetricDataAsync(array $args = []) + * @method \Aws\Result listRoutingProfiles(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRoutingProfilesAsync(array $args = []) + * @method \Aws\Result listSecurityProfiles(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSecurityProfilesAsync(array $args = []) + * @method \Aws\Result listUserHierarchyGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUserHierarchyGroupsAsync(array $args = []) + * @method \Aws\Result listUsers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUsersAsync(array $args = []) + * @method \Aws\Result startOutboundVoiceContact(array $args = []) + * @method \GuzzleHttp\Promise\Promise startOutboundVoiceContactAsync(array $args = []) + * @method \Aws\Result stopContact(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopContactAsync(array $args = []) + * @method \Aws\Result updateContactAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateContactAttributesAsync(array $args = []) + * @method \Aws\Result updateUserHierarchy(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUserHierarchyAsync(array $args = []) + * @method \Aws\Result updateUserIdentityInfo(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUserIdentityInfoAsync(array $args = []) + * @method \Aws\Result updateUserPhoneConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUserPhoneConfigAsync(array $args = []) + * @method \Aws\Result updateUserRoutingProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUserRoutingProfileAsync(array $args = []) + * @method \Aws\Result updateUserSecurityProfiles(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUserSecurityProfilesAsync(array $args = []) + */ +class ConnectClient extends AwsClient {} diff --git a/lib/aws/Aws/Connect/Exception/ConnectException.php b/lib/aws/Aws/Connect/Exception/ConnectException.php new file mode 100644 index 0000000..d790f50 --- /dev/null +++ b/lib/aws/Aws/Connect/Exception/ConnectException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Connect\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Connect Service** service. + */ +class ConnectException extends AwsException {} diff --git a/lib/aws/Aws/CostExplorer/CostExplorerClient.php b/lib/aws/Aws/CostExplorer/CostExplorerClient.php new file mode 100644 index 0000000..4287ca0 --- /dev/null +++ b/lib/aws/Aws/CostExplorer/CostExplorerClient.php @@ -0,0 +1,23 @@ +<?php +namespace Aws\CostExplorer; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Cost Explorer Service** service. + * @method \Aws\Result getCostAndUsage(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCostAndUsageAsync(array $args = []) + * @method \Aws\Result getCostForecast(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCostForecastAsync(array $args = []) + * @method \Aws\Result getDimensionValues(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDimensionValuesAsync(array $args = []) + * @method \Aws\Result getReservationCoverage(array $args = []) + * @method \GuzzleHttp\Promise\Promise getReservationCoverageAsync(array $args = []) + * @method \Aws\Result getReservationPurchaseRecommendation(array $args = []) + * @method \GuzzleHttp\Promise\Promise getReservationPurchaseRecommendationAsync(array $args = []) + * @method \Aws\Result getReservationUtilization(array $args = []) + * @method \GuzzleHttp\Promise\Promise getReservationUtilizationAsync(array $args = []) + * @method \Aws\Result getTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTagsAsync(array $args = []) + */ +class CostExplorerClient extends AwsClient {} diff --git a/lib/aws/Aws/CostExplorer/Exception/CostExplorerException.php b/lib/aws/Aws/CostExplorer/Exception/CostExplorerException.php new file mode 100644 index 0000000..f366b18 --- /dev/null +++ b/lib/aws/Aws/CostExplorer/Exception/CostExplorerException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CostExplorer\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Cost Explorer Service** service. + */ +class CostExplorerException extends AwsException {} diff --git a/lib/aws/Aws/CostandUsageReportService/CostandUsageReportServiceClient.php b/lib/aws/Aws/CostandUsageReportService/CostandUsageReportServiceClient.php new file mode 100644 index 0000000..536b867 --- /dev/null +++ b/lib/aws/Aws/CostandUsageReportService/CostandUsageReportServiceClient.php @@ -0,0 +1,15 @@ +<?php +namespace Aws\CostandUsageReportService; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Cost and Usage Report Service** service. + * @method \Aws\Result deleteReportDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteReportDefinitionAsync(array $args = []) + * @method \Aws\Result describeReportDefinitions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReportDefinitionsAsync(array $args = []) + * @method \Aws\Result putReportDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise putReportDefinitionAsync(array $args = []) + */ +class CostandUsageReportServiceClient extends AwsClient {} diff --git a/lib/aws/Aws/CostandUsageReportService/Exception/CostandUsageReportServiceException.php b/lib/aws/Aws/CostandUsageReportService/Exception/CostandUsageReportServiceException.php new file mode 100644 index 0000000..012dc00 --- /dev/null +++ b/lib/aws/Aws/CostandUsageReportService/Exception/CostandUsageReportServiceException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\CostandUsageReportService\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Cost and Usage Report Service** service. + */ +class CostandUsageReportServiceException extends AwsException {} diff --git a/lib/aws/Aws/Credentials/AssumeRoleCredentialProvider.php b/lib/aws/Aws/Credentials/AssumeRoleCredentialProvider.php new file mode 100644 index 0000000..416d795 --- /dev/null +++ b/lib/aws/Aws/Credentials/AssumeRoleCredentialProvider.php @@ -0,0 +1,64 @@ +<?php +namespace Aws\Credentials; + +use Aws\Exception\CredentialsException; +use Aws\Result; +use Aws\Sts\StsClient; +use GuzzleHttp\Promise\PromiseInterface; + +/** + * Credential provider that provides credentials via assuming a role + * More Information, see: http://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sts-2011-06-15.html#assumerole + */ +class AssumeRoleCredentialProvider +{ + const ERROR_MSG = "Missing required 'AssumeRoleCredentialProvider' configuration option: "; + + /** @var StsClient */ + private $client; + + /** @var array */ + private $assumeRoleParams; + + /** + * The constructor requires following configure parameters: + * - client: a StsClient + * - assume_role_params: Parameters used to make assumeRole call + * + * @param array $config Configuration options + * @throws \InvalidArgumentException + */ + public function __construct(array $config = []) + { + if (!isset($config['assume_role_params'])) { + throw new \InvalidArgumentException(self::ERROR_MSG . "'assume_role_params'."); + } + + if (!isset($config['client'])) { + throw new \InvalidArgumentException(self::ERROR_MSG . "'client'."); + } + + $this->client = $config['client']; + $this->assumeRoleParams = $config['assume_role_params']; + } + + /** + * Loads assume role credentials. + * + * @return PromiseInterface + */ + public function __invoke() + { + $client = $this->client; + return $client->assumeRoleAsync($this->assumeRoleParams) + ->then(function (Result $result) { + return $this->client->createCredentials($result); + })->otherwise(function (\RuntimeException $exception) { + throw new CredentialsException( + "Error in retrieving assume role credentials.", + 0, + $exception + ); + }); + } +} diff --git a/lib/aws/Aws/Credentials/CredentialProvider.php b/lib/aws/Aws/Credentials/CredentialProvider.php new file mode 100644 index 0000000..8e17f14 --- /dev/null +++ b/lib/aws/Aws/Credentials/CredentialProvider.php @@ -0,0 +1,401 @@ +<?php +namespace Aws\Credentials; + +use Aws; +use Aws\CacheInterface; +use Aws\Exception\CredentialsException; +use GuzzleHttp\Promise; + +/** + * Credential providers are functions that accept no arguments and return a + * promise that is fulfilled with an {@see \Aws\Credentials\CredentialsInterface} + * or rejected with an {@see \Aws\Exception\CredentialsException}. + * + * <code> + * use Aws\Credentials\CredentialProvider; + * $provider = CredentialProvider::defaultProvider(); + * // Returns a CredentialsInterface or throws. + * $creds = $provider()->wait(); + * </code> + * + * 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. + * + * <code> + * // 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 environment 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(); + * </code> + */ +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, + * then checks for "profile default" profile in ~/.aws/config (which is + * the default profile of AWS CLI), then tries to make a GET Request to + * fetch credentials if Ecs environment variable is presented, and finally + * checks for EC2 instance profile credentials. + * + * This provider is automatically wrapped in a memoize function that caches + * previously provided credentials. + * + * @param array $config Optional array of ecs/instance profile credentials + * provider options. + * + * @return callable + */ + public static function defaultProvider(array $config = []) + { + $localCredentialProviders = self::localCredentialProviders(); + $remoteCredentialProviders = self::remoteCredentialProviders($config); + + return self::memoize( + call_user_func_array( + 'self::chain', + array_merge($localCredentialProviders, $remoteCredentialProviders) + ) + ); + } + + /** + * 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) + { + return function () use ($provider) { + static $result; + static $isConstant; + + // Constant credentials will be returned constantly. + if ($isConstant) { + return $result; + } + + // Create the initial promise that will be used as the cached value + // until it expires. + if (null === $result) { + $result = $provider(); + } + + // Return credentials that could expire and refresh when needed. + return $result + ->then(function (CredentialsInterface $creds) use ($provider, &$isConstant, &$result) { + // Determine if these are constant credentials. + if (!$creds->getExpiration()) { + $isConstant = true; + return $creds; + } + + // Refresh expired credentials. + if (!$creds->isExpired()) { + return $creds; + } + // Refresh the result and forward the promise. + return $result = $provider(); + }) + ->otherwise(function($reason) use (&$result) { + // Cleanup rejected promise. + $result = null; + return new Promise\RejectedPromise($reason); + }); + }; + } + + /** + * Wraps a credential provider and saves provided credentials in an + * instance of Aws\CacheInterface. Forwards calls when no credentials found + * in cache and updates cache with the results. + * + * Defaults to using a simple file-based cache when none provided. + * + * @param callable $provider Credentials provider function to wrap + * @param CacheInterface $cache Cache to store credentials + * @param string|null $cacheKey (optional) Cache key to use + * + * @return callable + */ + public static function cache( + callable $provider, + CacheInterface $cache, + $cacheKey = null + ) { + $cacheKey = $cacheKey ?: 'aws_cached_credentials'; + + return function () use ($provider, $cache, $cacheKey) { + $found = $cache->get($cacheKey); + if ($found instanceof CredentialsInterface && !$found->isExpired()) { + return Promise\promise_for($found); + } + + return $provider() + ->then(function (CredentialsInterface $creds) use ( + $cache, + $cacheKey + ) { + $cache->set( + $cacheKey, + $creds, + null === $creds->getExpiration() ? + 0 : $creds->getExpiration() - time() + ); + + return $creds; + }); + }; + } + + /** + * 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) ?: NULL) + ); + } + + 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); + } + + /** + * Credential provider that creates credentials using + * ecs credentials by a GET request, whose uri is specified + * by environment variable + * + * @param array $config Array of configuration data. + * + * @return EcsCredentialProvider + * @see Aws\Credentials\EcsCredentialProvider for $config details. + */ + public static function ecsCredentials(array $config = []) + { + return new EcsCredentialProvider($config); + } + + /** + * Credential provider that creates credentials using assume role + * + * @param array $config Array of configuration data + * @return callable + * @see Aws\Credentials\AssumeRoleCredentialProvider for $config details. + */ + public static function assumeRole(array $config=[]) + { + return new AssumeRoleCredentialProvider($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 in "~/.aws/credentials". + * @param string|null $filename If provided, uses a custom filename rather + * than looking in the home directory. + * + * @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 = \Aws\parse_ini_file($filename, true, INI_SCANNER_RAW); + 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)"); + } + + if (empty($data[$profile]['aws_session_token'])) { + $data[$profile]['aws_session_token'] + = isset($data[$profile]['aws_security_token']) + ? $data[$profile]['aws_security_token'] + : null; + } + + return Promise\promise_for( + new Credentials( + $data[$profile]['aws_access_key_id'], + $data[$profile]['aws_secret_access_key'], + $data[$profile]['aws_session_token'] + ) + ); + }; + } + + /** + * Local credential providers returns a list of local credential providers + * in following order: + * - credentials from environment variables + * - 'default' profile in '.aws/credentials' file + * - 'profile default' profile in '.aws/config' file + * + * @return array + */ + private static function localCredentialProviders() + { + return [ + self::env(), + self::ini(), + self::ini('profile default', self::getHomeDir() . '/.aws/config') + ]; + } + + /** + * Remote credential providers returns a list of credentials providers + * for the remote endpoints such as EC2 or ECS Roles. + * + * @param array $config Array of configuration data. + * + * @return array + * @see Aws\Credentials\InstanceProfileProvider for $config details. + * @see Aws\Credentials\EcsCredentialProvider for $config details. + */ + private static function remoteCredentialProviders(array $config = []) + { + if (!empty(getenv(EcsCredentialProvider::ENV_URI))) { + $providers['ecs'] = self::ecsCredentials($config); + } + $providers['instance'] = self::instanceProfile($config); + + if (isset($config['credentials']) + && $config['credentials'] instanceof CacheInterface + ) { + foreach ($providers as $key => $provider) { + $providers[$key] = self::cache( + $provider, + $config['credentials'], + 'aws_cached_' . $key . '_credentials' + ); + } + } + + return $providers; + } + + /** + * 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/Aws/Credentials/Credentials.php b/lib/aws/Aws/Credentials/Credentials.php new file mode 100644 index 0000000..bd2bdc9 --- /dev/null +++ b/lib/aws/Aws/Credentials/Credentials.php @@ -0,0 +1,91 @@ +<?php +namespace Aws\Credentials; + +/** + * Basic implementation of the AWS Credentials interface that allows callers to + * pass in the AWS Access Key and AWS Secret Access Key in the constructor. + */ +class Credentials implements CredentialsInterface, \Serializable +{ + private $key; + private $secret; + private $token; + private $expires; + + /** + * Constructs a new BasicAWSCredentials object, with the specified AWS + * access key and AWS secret key + * + * @param string $key AWS access key ID + * @param string $secret AWS secret access key + * @param string $token Security token to use + * @param int $expires UNIX timestamp for when credentials expire + */ + public function __construct($key, $secret, $token = null, $expires = null) + { + $this->key = trim($key); + $this->secret = trim($secret); + $this->token = $token; + $this->expires = $expires; + } + + public static function __set_state(array $state) + { + return new self( + $state['key'], + $state['secret'], + $state['token'], + $state['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 + ]; + } + + public function serialize() + { + return json_encode($this->toArray()); + } + + public function unserialize($serialized) + { + $data = json_decode($serialized, true); + + $this->key = $data['key']; + $this->secret = $data['secret']; + $this->token = $data['token']; + $this->expires = $data['expires']; + } +} diff --git a/lib/aws/Aws/Credentials/CredentialsInterface.php b/lib/aws/Aws/Credentials/CredentialsInterface.php new file mode 100644 index 0000000..86fac9d --- /dev/null +++ b/lib/aws/Aws/Credentials/CredentialsInterface.php @@ -0,0 +1,52 @@ +<?php +namespace Aws\Credentials; + +/** + * Provides access to the AWS credentials used for accessing AWS services: AWS + * access key ID, secret access key, and security token. These credentials are + * used to securely sign requests to AWS services. + */ +interface CredentialsInterface +{ + /** + * Returns the AWS access key ID for this credentials object. + * + * @return string + */ + public function getAccessKeyId(); + + /** + * Returns the AWS secret access key for this credentials object. + * + * @return string + */ + public function getSecretKey(); + + /** + * Get the associated security token if available + * + * @return string|null + */ + public function getSecurityToken(); + + /** + * Get the UNIX timestamp in which the credentials will expire + * + * @return int|null + */ + public function getExpiration(); + + /** + * Check if the credentials are expired + * + * @return bool + */ + public function isExpired(); + + /** + * Converts the credentials to an associative array. + * + * @return array + */ + public function toArray(); +} diff --git a/lib/aws/Aws/Credentials/EcsCredentialProvider.php b/lib/aws/Aws/Credentials/EcsCredentialProvider.php new file mode 100644 index 0000000..8a503e4 --- /dev/null +++ b/lib/aws/Aws/Credentials/EcsCredentialProvider.php @@ -0,0 +1,88 @@ +<?php +namespace Aws\Credentials; + +use Aws\Exception\CredentialsException; +use GuzzleHttp\Psr7\Request; +use GuzzleHttp\Promise\PromiseInterface; +use Psr\Http\Message\ResponseInterface; + +/** + * Credential provider that fetches credentials with GET request. + * ECS environment variable is used in constructing request URI. + */ +class EcsCredentialProvider +{ + const SERVER_URI = 'http://169.254.170.2'; + const ENV_URI = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"; + + /** @var callable */ + private $client; + + /** + * The constructor accepts following options: + * - timeout: (optional) Connection timeout, in seconds, default 1.0 + * - client: An EcsClient to make request from + * + * @param array $config Configuration options + */ + public function __construct(array $config = []) + { + $this->timeout = isset($config['timeout']) ? $config['timeout'] : 1.0; + $this->client = isset($config['client']) + ? $config['client'] + : \Aws\default_http_handler(); + } + + /** + * Load ECS credentials + * + * @return PromiseInterface + */ + public function __invoke() + { + $client = $this->client; + $request = new Request('GET', self::getEcsUri()); + return $client( + $request, + [ + 'timeout' => $this->timeout, + 'proxy' => '', + ] + )->then(function (ResponseInterface $response) { + $result = $this->decodeResult((string) $response->getBody()); + return new Credentials( + $result['AccessKeyId'], + $result['SecretAccessKey'], + $result['Token'], + strtotime($result['Expiration']) + ); + })->otherwise(function ($reason) { + $reason = is_array($reason) ? $reason['exception'] : $reason; + $msg = $reason->getMessage(); + throw new CredentialsException( + "Error retrieving credential from ECS ($msg)" + ); + }); + } + + /** + * Fetch credential URI from ECS environment variable + * + * @return string Returns ECS URI + */ + private function getEcsUri() + { + $creds_uri = getenv(self::ENV_URI); + return self::SERVER_URI . $creds_uri; + } + + private function decodeResult($response) + { + $result = json_decode($response, true); + + if (!isset($result['AccessKeyId'])) { + throw new CredentialsException('Unexpected ECS credential value'); + } + return $result; + } +} diff --git a/lib/aws/Aws/Credentials/InstanceProfileProvider.php b/lib/aws/Aws/Credentials/InstanceProfileProvider.php new file mode 100644 index 0000000..033b5ca --- /dev/null +++ b/lib/aws/Aws/Credentials/InstanceProfileProvider.php @@ -0,0 +1,118 @@ +<?php +namespace Aws\Credentials; + +use Aws\Exception\CredentialsException; +use Aws\Sdk; +use GuzzleHttp\Promise; +use GuzzleHttp\Psr7\Request; +use GuzzleHttp\Promise\PromiseInterface; +use Psr\Http\Message\ResponseInterface; + +/** + * Credential provider that provides credentials from the EC2 metadata server. + */ +class InstanceProfileProvider +{ + const SERVER_URI = 'http://169.254.169.254/latest/'; + const CRED_PATH = 'meta-data/iam/security-credentials/'; + + const ENV_DISABLE = 'AWS_EC2_METADATA_DISABLED'; + + /** @var string */ + private $profile; + + /** @var callable */ + private $client; + + /** + * The constructor accepts the following options: + * + * - timeout: Connection timeout, in seconds. + * - profile: Optional EC2 profile name, if known. + * + * @param array $config Configuration options. + */ + public function __construct(array $config = []) + { + $this->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) + { + $disabled = getenv(self::ENV_DISABLE) ?: false; + if (strcasecmp($disabled, 'true') === 0) { + throw new CredentialsException( + $this->createErrorMessage('EC2 metadata server access disabled') + ); + } + + $fn = $this->client; + $request = new Request('GET', self::SERVER_URI . $url); + $userAgent = 'aws-sdk-php/' . Sdk::VERSION; + if (defined('HHVM_VERSION')) { + $userAgent .= ' HHVM/' . HHVM_VERSION; + } + $userAgent .= ' ' . \Aws\default_user_agent(); + $request = $request->withHeader('User-Agent', $userAgent); + + 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) + ); + }); + } + + 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/Aws/Crypto/AbstractCryptoClient.php b/lib/aws/Aws/Crypto/AbstractCryptoClient.php new file mode 100644 index 0000000..17a9e9f --- /dev/null +++ b/lib/aws/Aws/Crypto/AbstractCryptoClient.php @@ -0,0 +1,113 @@ +<?php +namespace Aws\Crypto; + +use Aws\Crypto\Cipher\CipherMethod; +use Aws\Crypto\Cipher\Cbc; +use GuzzleHttp\Psr7\Stream; + +/** + * @internal + */ +abstract class AbstractCryptoClient +{ + public static $supportedCiphers = ['cbc', 'gcm']; + + /** + * Returns if the passed cipher name is supported for encryption by the SDK. + * + * @param string $cipherName The name of a cipher to verify is registered. + * + * @return bool If the cipher passed is in our supported list. + */ + public static function isSupportedCipher($cipherName) + { + return in_array($cipherName, self::$supportedCiphers); + } + + /** + * Returns an identifier recognizable by `openssl_*` functions, such as + * `aes-256-cbc` or `aes-128-ctr`. + * + * @param string $cipherName Name of the cipher being used for encrypting + * or decrypting. + * @param int $keySize Size of the encryption key, in bits, that will be + * used. + * + * @return string + */ + abstract protected function getCipherOpenSslName($cipherName, $keySize); + + /** + * Constructs a CipherMethod for the given name, initialized with the other + * data passed for use in encrypting or decrypting. + * + * @param string $cipherName Name of the cipher to generate for encrypting. + * @param string $iv Base Initialization Vector for the cipher. + * @param int $keySize Size of the encryption key, in bits, that will be + * used. + * + * @return CipherMethod + * + * @internal + */ + abstract protected function buildCipherMethod($cipherName, $iv, $keySize); + + /** + * Performs a reverse lookup to get the openssl_* cipher name from the + * AESName passed in from the MetadataEnvelope. + * + * @param $aesName + * + * @return string + * + * @internal + */ + abstract protected function getCipherFromAesName($aesName); + + /** + * Dependency to provide an interface for building an encryption stream for + * data given cipher details, metadata, and materials to do so. + * + * @param Stream $plaintext Plain-text data to be encrypted using the + * materials, algorithm, and data provided. + * @param array $cipherOptions Options for use in determining the cipher to + * be used for encrypting data. + * @param MaterialsProvider $provider A provider to supply and encrypt + * materials used in encryption. + * @param MetadataEnvelope $envelope A storage envelope for encryption + * metadata to be added to. + * + * @return AesStreamInterface + * + * @internal + */ + abstract public function encrypt( + Stream $plaintext, + array $cipherOptions, + MaterialsProvider $provider, + MetadataEnvelope $envelope + ); + + /** + * Dependency to provide an interface for building a decryption stream for + * cipher text given metadata and materials to do so. + * + * @param string $cipherText Plain-text data to be decrypted using the + * materials, algorithm, and data provided. + * @param MaterialsProvider $provider A provider to supply and encrypt + * materials used in encryption. + * @param MetadataEnvelope $envelope A storage envelope for encryption + * metadata to be read from. + * @param array $cipherOptions Additional verification options. + * + * @return AesStreamInterface + * + * @internal + */ + abstract public function decrypt( + $cipherText, + MaterialsProvider $provider, + MetadataEnvelope $envelope, + array $cipherOptions = [] + ); +} diff --git a/lib/aws/Aws/Crypto/AesDecryptingStream.php b/lib/aws/Aws/Crypto/AesDecryptingStream.php new file mode 100644 index 0000000..d6096c3 --- /dev/null +++ b/lib/aws/Aws/Crypto/AesDecryptingStream.php @@ -0,0 +1,144 @@ +<?php +namespace Aws\Crypto; + +use GuzzleHttp\Psr7\StreamDecoratorTrait; +use \LogicException; +use Psr\Http\Message\StreamInterface; +use Aws\Crypto\Cipher\CipherMethod; + +/** + * @internal Represents a stream of data to be decrypted with passed cipher. + */ +class AesDecryptingStream implements AesStreamInterface +{ + const BLOCK_SIZE = 16; // 128 bits + + use StreamDecoratorTrait; + + /** + * @var string + */ + private $buffer = ''; + + /** + * @var CipherMethod + */ + private $cipherMethod; + + /** + * @var string + */ + private $key; + + /** + * @var StreamInterface + */ + private $stream; + + /** + * @param StreamInterface $cipherText + * @param string $key + * @param CipherMethod $cipherMethod + */ + public function __construct( + StreamInterface $cipherText, + $key, + CipherMethod $cipherMethod + ) { + $this->stream = $cipherText; + $this->key = $key; + $this->cipherMethod = clone $cipherMethod; + } + + public function getOpenSslName() + { + return $this->cipherMethod->getOpenSslName(); + } + + public function getAesName() + { + return $this->cipherMethod->getAesName(); + } + + public function getCurrentIv() + { + return $this->cipherMethod->getCurrentIv(); + } + + public function getSize() + { + $plainTextSize = $this->stream->getSize(); + + if ($this->cipherMethod->requiresPadding()) { + // PKCS7 padding requires that between 1 and self::BLOCK_SIZE be + // added to the plaintext to make it an even number of blocks. The + // plaintext is between strlen($cipherText) - self::BLOCK_SIZE and + // strlen($cipherText) - 1 + return null; + } + + return $plainTextSize; + } + + public function isWritable() + { + return false; + } + + public function read($length) + { + if ($length > strlen($this->buffer)) { + $this->buffer .= $this->decryptBlock( + self::BLOCK_SIZE * ceil(($length - strlen($this->buffer)) / self::BLOCK_SIZE) + ); + } + + $data = substr($this->buffer, 0, $length); + $this->buffer = substr($this->buffer, $length); + + return $data ? $data : ''; + } + + public function seek($offset, $whence = SEEK_SET) + { + if ($offset === 0 && $whence === SEEK_SET) { + $this->buffer = ''; + $this->cipherMethod->seek(0, SEEK_SET); + $this->stream->seek(0, SEEK_SET); + } else { + throw new LogicException('AES encryption streams only support being' + . ' rewound, not arbitrary seeking.'); + } + } + + private function decryptBlock($length) + { + if ($this->stream->eof()) { + return ''; + } + + $cipherText = ''; + do { + $cipherText .= $this->stream->read($length - strlen($cipherText)); + } while (strlen($cipherText) < $length && !$this->stream->eof()); + + $options = OPENSSL_RAW_DATA; + if (!$this->stream->eof() + && $this->stream->getSize() !== $this->stream->tell() + ) { + $options |= OPENSSL_ZERO_PADDING; + } + + $plaintext = openssl_decrypt( + $cipherText, + $this->cipherMethod->getOpenSslName(), + $this->key, + $options, + $this->cipherMethod->getCurrentIv() + ); + + $this->cipherMethod->update($cipherText); + + return $plaintext; + } +} diff --git a/lib/aws/Aws/Crypto/AesEncryptingStream.php b/lib/aws/Aws/Crypto/AesEncryptingStream.php new file mode 100644 index 0000000..390a74c --- /dev/null +++ b/lib/aws/Aws/Crypto/AesEncryptingStream.php @@ -0,0 +1,150 @@ +<?php +namespace Aws\Crypto; + +use GuzzleHttp\Psr7\StreamDecoratorTrait; +use \LogicException; +use Psr\Http\Message\StreamInterface; +use Aws\Crypto\Cipher\CipherMethod; + +/** + * @internal Represents a stream of data to be encrypted with a passed cipher. + */ +class AesEncryptingStream implements AesStreamInterface +{ + const BLOCK_SIZE = 16; // 128 bits + + use StreamDecoratorTrait; + + /** + * @var string + */ + private $buffer = ''; + + /** + * @var CipherMethod + */ + private $cipherMethod; + + /** + * @var string + */ + private $key; + + /** + * @var StreamInterface + */ + private $stream; + + /** + * @param StreamInterface $plainText + * @param string $key + * @param CipherMethod $cipherMethod + */ + public function __construct( + StreamInterface $plainText, + $key, + CipherMethod $cipherMethod + ) { + $this->stream = $plainText; + $this->key = $key; + $this->cipherMethod = clone $cipherMethod; + } + + public function getOpenSslName() + { + return $this->cipherMethod->getOpenSslName(); + } + + public function getAesName() + { + return $this->cipherMethod->getAesName(); + } + + public function getCurrentIv() + { + return $this->cipherMethod->getCurrentIv(); + } + + public function getSize() + { + $plainTextSize = $this->stream->getSize(); + + if ($this->cipherMethod->requiresPadding() && $plainTextSize !== null) { + // PKCS7 padding requires that between 1 and self::BLOCK_SIZE be + // added to the plaintext to make it an even number of blocks. + $padding = self::BLOCK_SIZE - $plainTextSize % self::BLOCK_SIZE; + return $plainTextSize + $padding; + } + + return $plainTextSize; + } + + public function isWritable() + { + return false; + } + + public function read($length) + { + if ($length > strlen($this->buffer)) { + $this->buffer .= $this->encryptBlock( + self::BLOCK_SIZE * ceil(($length - strlen($this->buffer)) / self::BLOCK_SIZE) + ); + } + + $data = substr($this->buffer, 0, $length); + $this->buffer = substr($this->buffer, $length); + + return $data ? $data : ''; + } + + public function seek($offset, $whence = SEEK_SET) + { + if ($whence === SEEK_CUR) { + $offset = $this->tell() + $offset; + $whence = SEEK_SET; + } + + if ($whence === SEEK_SET) { + $this->buffer = ''; + $wholeBlockOffset + = (int) ($offset / self::BLOCK_SIZE) * self::BLOCK_SIZE; + $this->stream->seek($wholeBlockOffset); + $this->cipherMethod->seek($wholeBlockOffset); + $this->read($offset - $wholeBlockOffset); + } else { + throw new LogicException('Unrecognized whence.'); + } + } + + private function encryptBlock($length) + { + if ($this->stream->eof()) { + return ''; + } + + $plainText = ''; + do { + $plainText .= $this->stream->read($length - strlen($plainText)); + } while (strlen($plainText) < $length && !$this->stream->eof()); + + $options = OPENSSL_RAW_DATA; + if (!$this->stream->eof() + || $this->stream->getSize() !== $this->stream->tell() + ) { + $options |= OPENSSL_ZERO_PADDING; + } + + $cipherText = openssl_encrypt( + $plainText, + $this->cipherMethod->getOpenSslName(), + $this->key, + $options, + $this->cipherMethod->getCurrentIv() + ); + + $this->cipherMethod->update($cipherText); + + return $cipherText; + } +} diff --git a/lib/aws/Aws/Crypto/AesGcmDecryptingStream.php b/lib/aws/Aws/Crypto/AesGcmDecryptingStream.php new file mode 100644 index 0000000..40b4ba0 --- /dev/null +++ b/lib/aws/Aws/Crypto/AesGcmDecryptingStream.php @@ -0,0 +1,95 @@ +<?php +namespace Aws\Crypto; + +use GuzzleHttp\Psr7; +use GuzzleHttp\Psr7\StreamDecoratorTrait; +use Psr\Http\Message\StreamInterface; +use \RuntimeException; + +/** + * @internal Represents a stream of data to be gcm decrypted. + */ +class AesGcmDecryptingStream implements AesStreamInterface +{ + use StreamDecoratorTrait; + + private $aad; + + private $initializationVector; + + private $key; + + private $keySize; + + private $cipherText; + + private $tag; + + private $tagLength; + + /** + * @param StreamInterface $cipherText + * @param string $key + * @param string $initializationVector + * @param string $tag + * @param string $aad + * @param int $tagLength + * @param int $keySize + */ + public function __construct( + StreamInterface $cipherText, + $key, + $initializationVector, + $tag, + $aad = '', + $tagLength = 128, + $keySize = 256 + ) { + if (version_compare(PHP_VERSION, '7.1', '<')) { + throw new RuntimeException( + 'AES-GCM decryption is only supported in PHP 7.1 or greater' + ); + } + + $this->cipherText = $cipherText; + $this->key = $key; + $this->initializationVector = $initializationVector; + $this->tag = $tag; + $this->aad = $aad; + $this->tagLength = $tagLength; + $this->keySize = $keySize; + } + + public function getOpenSslName() + { + return "aes-{$this->keySize}-gcm"; + } + + public function getAesName() + { + return 'AES/GCM/NoPadding'; + } + + public function getCurrentIv() + { + return $this->initializationVector; + } + + public function createStream() + { + return Psr7\stream_for(openssl_decrypt( + (string) $this->cipherText, + $this->getOpenSslName(), + $this->key, + OPENSSL_RAW_DATA, + $this->initializationVector, + $this->tag, + $this->aad + )); + } + + public function isWritable() + { + return false; + } +} diff --git a/lib/aws/Aws/Crypto/AesGcmEncryptingStream.php b/lib/aws/Aws/Crypto/AesGcmEncryptingStream.php new file mode 100644 index 0000000..41d1e3f --- /dev/null +++ b/lib/aws/Aws/Crypto/AesGcmEncryptingStream.php @@ -0,0 +1,101 @@ +<?php +namespace Aws\Crypto; + +use GuzzleHttp\Psr7; +use GuzzleHttp\Psr7\StreamDecoratorTrait; +use Psr\Http\Message\StreamInterface; +use \RuntimeException; + +/** + * @internal Represents a stream of data to be gcm encrypted. + */ +class AesGcmEncryptingStream implements AesStreamInterface +{ + use StreamDecoratorTrait; + + private $aad; + + private $initializationVector; + + private $key; + + private $keySize; + + private $plaintext; + + private $tag = ''; + + private $tagLength; + + /** + * @param StreamInterface $plaintext + * @param string $key + * @param string $initializationVector + * @param string $aad + * @param int $tagLength + * @param int $keySize + */ + public function __construct( + StreamInterface $plaintext, + $key, + $initializationVector, + $aad = '', + $tagLength = 16, + $keySize = 256 + ) { + if (version_compare(PHP_VERSION, '7.1', '<')) { + throw new RuntimeException( + 'AES-GCM decryption is only supported in PHP 7.1 or greater' + ); + } + + $this->plaintext = $plaintext; + $this->key = $key; + $this->initializationVector = $initializationVector; + $this->aad = $aad; + $this->tagLength = $tagLength; + $this->keySize = $keySize; + } + + public function getOpenSslName() + { + return "aes-{$this->keySize}-gcm"; + } + + public function getAesName() + { + return 'AES/GCM/NoPadding'; + } + + public function getCurrentIv() + { + return $this->initializationVector; + } + + public function createStream() + { + return Psr7\stream_for(openssl_encrypt( + (string) $this->plaintext, + $this->getOpenSslName(), + $this->key, + OPENSSL_RAW_DATA, + $this->initializationVector, + $this->tag, + $this->aad, + $this->tagLength + )); + } + + /** + * @return string + */ + public function getTag() + { + return $this->tag; + } + + public function isWritable() + { + return false; + } +} diff --git a/lib/aws/Aws/Crypto/AesStreamInterface.php b/lib/aws/Aws/Crypto/AesStreamInterface.php new file mode 100644 index 0000000..ce7b85d --- /dev/null +++ b/lib/aws/Aws/Crypto/AesStreamInterface.php @@ -0,0 +1,30 @@ +<?php +namespace Aws\Crypto; + +use Psr\Http\Message\StreamInterface; + +interface AesStreamInterface extends StreamInterface +{ + /** + * Returns an identifier recognizable by `openssl_*` functions, such as + * `aes-256-cbc` or `aes-128-ctr`. + * + * @return string + */ + public function getOpenSslName(); + + /** + * Returns an AES recognizable name, such as 'AES/GCM/NoPadding'. + * + * @return string + */ + public function getAesName(); + + /** + * Returns the IV that should be used to initialize the next block in + * encrypt or decrypt. + * + * @return string + */ + public function getCurrentIv(); +} diff --git a/lib/aws/Aws/Crypto/Cipher/Cbc.php b/lib/aws/Aws/Crypto/Cipher/Cbc.php new file mode 100644 index 0000000..8ce6068 --- /dev/null +++ b/lib/aws/Aws/Crypto/Cipher/Cbc.php @@ -0,0 +1,82 @@ +<?php +namespace Aws\Crypto\Cipher; + +use \InvalidArgumentException; +use \LogicException; + +/** + * An implementation of the CBC cipher for use with an AesEncryptingStream or + * AesDecrypting stream. + */ +class Cbc implements CipherMethod +{ + const BLOCK_SIZE = 16; + + /** + * @var string + */ + private $baseIv; + + /** + * @var string + */ + private $iv; + + /** + * @var int + */ + private $keySize; + + /** + * @param string $iv Base Initialization Vector for the cipher. + * @param int $keySize Size of the encryption key, in bits, that will be + * used. + * + * @throws InvalidArgumentException Thrown if the passed iv does not match + * the iv length required by the cipher. + */ + public function __construct($iv, $keySize = 256) + { + $this->baseIv = $this->iv = $iv; + $this->keySize = $keySize; + + if (strlen($iv) !== openssl_cipher_iv_length($this->getOpenSslName())) { + throw new InvalidArgumentException('Invalid initialization vector'); + } + } + + public function getOpenSslName() + { + return "aes-{$this->keySize}-cbc"; + } + + public function getAesName() + { + return 'AES/CBC/PKCS5Padding'; + } + + public function getCurrentIv() + { + return $this->iv; + } + + public function requiresPadding() + { + return true; + } + + public function seek($offset, $whence = SEEK_SET) + { + if ($offset === 0 && $whence === SEEK_SET) { + $this->iv = $this->baseIv; + } else { + throw new LogicException('CBC initialization only support being' + . ' rewound, not arbitrary seeking.'); + } + } + + public function update($cipherTextBlock) + { + $this->iv = substr($cipherTextBlock, self::BLOCK_SIZE * -1); + } +} diff --git a/lib/aws/Aws/Crypto/Cipher/CipherBuilderTrait.php b/lib/aws/Aws/Crypto/Cipher/CipherBuilderTrait.php new file mode 100644 index 0000000..5647a0e --- /dev/null +++ b/lib/aws/Aws/Crypto/Cipher/CipherBuilderTrait.php @@ -0,0 +1,70 @@ +<?php +namespace Aws\Crypto\Cipher; + +trait CipherBuilderTrait +{ + /** + * Returns an identifier recognizable by `openssl_*` functions, such as + * `aes-256-cbc` or `aes-128-ctr`. + * + * @param string $cipherName Name of the cipher being used for encrypting + * or decrypting. + * @param int $keySize Size of the encryption key, in bits, that will be + * used. + * + * @return string + */ + protected function getCipherOpenSslName($cipherName, $keySize) + { + return "aes-{$keySize}-{$cipherName}"; + } + + /** + * Constructs a CipherMethod for the given name, initialized with the other + * data passed for use in encrypting or decrypting. + * + * @param string $cipherName Name of the cipher to generate for encrypting. + * @param string $iv Base Initialization Vector for the cipher. + * @param int $keySize Size of the encryption key, in bits, that will be + * used. + * + * @return CipherMethod + * + * @internal + */ + protected function buildCipherMethod($cipherName, $iv, $keySize) + { + switch ($cipherName) { + case 'cbc': + return new Cbc( + $iv, + $keySize + ); + default: + return null; + } + } + + /** + * Performs a reverse lookup to get the openssl_* cipher name from the + * AESName passed in from the MetadataEnvelope. + * + * @param $aesName + * + * @return string + * + * @internal + */ + protected function getCipherFromAesName($aesName) + { + switch ($aesName) { + case 'AES/GCM/NoPadding': + return 'gcm'; + case 'AES/CBC/PKCS5Padding': + return 'cbc'; + default: + throw new \RuntimeException('Unrecognized or unsupported' + . ' AESName for reverse lookup.'); + } + } +} \ No newline at end of file diff --git a/lib/aws/Aws/Crypto/Cipher/CipherMethod.php b/lib/aws/Aws/Crypto/Cipher/CipherMethod.php new file mode 100644 index 0000000..a99aaa7 --- /dev/null +++ b/lib/aws/Aws/Crypto/Cipher/CipherMethod.php @@ -0,0 +1,59 @@ +<?php +namespace Aws\Crypto\Cipher; + +interface CipherMethod +{ + /** + * Returns an identifier recognizable by `openssl_*` functions, such as + * `aes-256-cbc` or `aes-128-ctr`. + * + * @return string + */ + public function getOpenSslName(); + + /** + * Returns an AES recognizable name, such as 'AES/GCM/NoPadding'. + * + * @return string + */ + public function getAesName(); + + /** + * Returns the IV that should be used to initialize the next block in + * encrypt or decrypt. + * + * @return string + */ + public function getCurrentIv(); + + /** + * Indicates whether the cipher method used with this IV requires padding + * the final block to make sure the plaintext is evenly divisible by the + * block size. + * + * @return boolean + */ + public function requiresPadding(); + + /** + * Adjust the return of this::getCurrentIv to reflect a seek performed on + * the encryption stream using this IV object. + * + * @param int $offset + * @param int $whence + * + * @throws LogicException Thrown if the requested seek is not supported by + * this IV implementation. For example, a CBC IV + * only supports a full rewind ($offset === 0 && + * $whence === SEEK_SET) + */ + public function seek($offset, $whence = SEEK_SET); + + /** + * Take account of the last cipher text block to adjust the return of + * this::getCurrentIv + * + * @param string $cipherTextBlock + */ + public function update($cipherTextBlock); +} diff --git a/lib/aws/Aws/Crypto/DecryptionTrait.php b/lib/aws/Aws/Crypto/DecryptionTrait.php new file mode 100644 index 0000000..79a2798 --- /dev/null +++ b/lib/aws/Aws/Crypto/DecryptionTrait.php @@ -0,0 +1,179 @@ +<?php +namespace Aws\Crypto; + +use GuzzleHttp\Psr7; +use GuzzleHttp\Psr7\LimitStream; + +trait DecryptionTrait +{ + /** + * Dependency to reverse lookup the openssl_* cipher name from the AESName + * in the MetadataEnvelope. + * + * @param $aesName + * + * @return string + * + * @internal + */ + abstract protected function getCipherFromAesName($aesName); + + /** + * Dependency to generate a CipherMethod from a set of inputs for loading + * in to an AesDecryptingStream. + * + * @param string $cipherName Name of the cipher to generate for decrypting. + * @param string $iv Base Initialization Vector for the cipher. + * @param int $keySize Size of the encryption key, in bits, that will be + * used. + * + * @return Cipher\CipherMethod + * + * @internal + */ + abstract protected function buildCipherMethod($cipherName, $iv, $keySize); + + /** + * Builds an AesStreamInterface using cipher options loaded from the + * MetadataEnvelope and MaterialsProvider. + * + * @param string $cipherText Plain-text data to be encrypted using the + * materials, algorithm, and data provided. + * @param MaterialsProvider $provider A provider to supply and encrypt + * materials used in encryption. + * @param MetadataEnvelope $envelope A storage envelope for encryption + * metadata to be read from. + * @param array $cipherOptions Additional verification options. + * + * @return AesStreamInterface + * + * @throws \InvalidArgumentException Thrown when a value in $cipherOptions + * is not valid. + * + * @internal + */ + protected function decrypt( + $cipherText, + MaterialsProvider $provider, + MetadataEnvelope $envelope, + array $cipherOptions = [] + ) { + $cipherOptions['Iv'] = base64_decode( + $envelope[MetadataEnvelope::IV_HEADER] + ); + + $cipherOptions['TagLength'] = + $envelope[MetadataEnvelope::CRYPTO_TAG_LENGTH_HEADER] / 8; + + $cek = $provider->decryptCek( + base64_decode( + $envelope[MetadataEnvelope::CONTENT_KEY_V2_HEADER] + ), + json_decode( + $envelope[MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER], + true + ) + ); + $cipherOptions['KeySize'] = strlen($cek) * 8; + $cipherOptions['Cipher'] = $this->getCipherFromAesName( + $envelope[MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER] + ); + + $decryptionSteam = $this->getDecryptingStream( + $cipherText, + $cek, + $cipherOptions + ); + unset($cek); + + return $decryptionSteam; + } + + private function getTagFromCiphertextStream( + Psr7\Stream $cipherText, + $tagLength + ) { + $cipherTextSize = $cipherText->getSize(); + if ($cipherTextSize == null || $cipherTextSize <= 0) { + throw new \RuntimeException('Cannot decrypt a stream of unknown' + . ' size.'); + } + return (string) new LimitStream( + $cipherText, + $tagLength, + $cipherTextSize - $tagLength + ); + } + + private function getStrippedCiphertextStream( + Psr7\Stream $cipherText, + $tagLength + ) { + $cipherTextSize = $cipherText->getSize(); + if ($cipherTextSize == null || $cipherTextSize <= 0) { + throw new \RuntimeException('Cannot decrypt a stream of unknown' + . ' size.'); + } + return new LimitStream( + $cipherText, + $cipherTextSize - $tagLength, + 0 + ); + } + + /** + * Generates a stream that wraps the cipher text with the proper cipher and + * uses the content encryption key (CEK) to decrypt the data when read. + * + * @param string $cipherText Plain-text data to be encrypted using the + * materials, algorithm, and data provided. + * @param string $cek A content encryption key for use by the stream for + * encrypting the plaintext data. + * @param array $cipherOptions Options for use in determining the cipher to + * be used for encrypting data. + * + * @return AesStreamInterface + * + * @internal + */ + protected function getDecryptingStream( + $cipherText, + $cek, + $cipherOptions + ) { + $cipherTextStream = Psr7\stream_for($cipherText); + switch ($cipherOptions['Cipher']) { + case 'gcm': + $cipherOptions['Tag'] = $this->getTagFromCiphertextStream( + $cipherTextStream, + $cipherOptions['TagLength'] + ); + + return new AesGcmDecryptingStream( + $this->getStrippedCiphertextStream( + $cipherTextStream, + $cipherOptions['TagLength'] + ), + $cek, + $cipherOptions['Iv'], + $cipherOptions['Tag'], + $cipherOptions['Aad'] = isset($cipherOptions['Aad']) + ? $cipherOptions['Aad'] + : null, + $cipherOptions['TagLength'] ?: null, + $cipherOptions['KeySize'] + ); + default: + $cipherMethod = $this->buildCipherMethod( + $cipherOptions['Cipher'], + $cipherOptions['Iv'], + $cipherOptions['KeySize'] + ); + return new AesDecryptingStream( + $cipherTextStream, + $cek, + $cipherMethod + ); + } + } +} diff --git a/lib/aws/Aws/Crypto/EncryptionTrait.php b/lib/aws/Aws/Crypto/EncryptionTrait.php new file mode 100644 index 0000000..b92b340 --- /dev/null +++ b/lib/aws/Aws/Crypto/EncryptionTrait.php @@ -0,0 +1,186 @@ +<?php +namespace Aws\Crypto; + +use GuzzleHttp\Psr7; +use GuzzleHttp\Psr7\AppendStream; +use GuzzleHttp\Psr7\Stream; + +trait EncryptionTrait +{ + private static $allowedOptions = [ + 'Cipher' => true, + 'KeySize' => true, + 'Aad' => true, + ]; + + /** + * Dependency to generate a CipherMethod from a set of inputs for loading + * in to an AesEncryptingStream. + * + * @param string $cipherName Name of the cipher to generate for encrypting. + * @param string $iv Base Initialization Vector for the cipher. + * @param int $keySize Size of the encryption key, in bits, that will be + * used. + * + * @return Cipher\CipherMethod + * + * @internal + */ + abstract protected function buildCipherMethod($cipherName, $iv, $keySize); + + /** + * Builds an AesStreamInterface and populates encryption metadata into the + * supplied envelope. + * + * @param Stream $plaintext Plain-text data to be encrypted using the + * materials, algorithm, and data provided. + * @param array $cipherOptions Options for use in determining the cipher to + * be used for encrypting data. + * @param MaterialsProvider $provider A provider to supply and encrypt + * materials used in encryption. + * @param MetadataEnvelope $envelope A storage envelope for encryption + * metadata to be added to. + * + * @return AesStreamInterface + * + * @throws \InvalidArgumentException Thrown when a value in $cipherOptions + * is not valid. + * + * @internal + */ + protected function encrypt( + Stream $plaintext, + array $cipherOptions, + MaterialsProvider $provider, + MetadataEnvelope $envelope + ) { + $materialsDescription = $provider->getMaterialsDescription(); + + $cipherOptions = array_intersect_key( + $cipherOptions, + self::$allowedOptions + ); + + if (empty($cipherOptions['Cipher'])) { + throw new \InvalidArgumentException('An encryption cipher must be' + . ' specified in the "cipher_options".'); + } + + if (!self::isSupportedCipher($cipherOptions['Cipher'])) { + throw new \InvalidArgumentException('The cipher requested is not' + . ' supported by the SDK.'); + } + + if (empty($cipherOptions['KeySize'])) { + $cipherOptions['KeySize'] = 256; + } + if (!is_int($cipherOptions['KeySize'])) { + throw new \InvalidArgumentException('The cipher "KeySize" must be' + . ' an integer.'); + } + + if (!MaterialsProvider::isSupportedKeySize( + $cipherOptions['KeySize'] + )) { + throw new \InvalidArgumentException('The cipher "KeySize" requested' + . ' is not supported by AES (128, 192, or 256).'); + } + + $cipherOptions['Iv'] = $provider->generateIv( + $this->getCipherOpenSslName( + $cipherOptions['Cipher'], + $cipherOptions['KeySize'] + ) + ); + + $cek = $provider->generateCek($cipherOptions['KeySize']); + + list($encryptingStream, $aesName) = $this->getEncryptingStream( + $plaintext, + $cek, + $cipherOptions + ); + + // Populate envelope data + $envelope[MetadataEnvelope::CONTENT_KEY_V2_HEADER] = + $provider->encryptCek( + $cek, + $materialsDescription + ); + unset($cek); + + $envelope[MetadataEnvelope::IV_HEADER] = + base64_encode($cipherOptions['Iv']); + $envelope[MetadataEnvelope::KEY_WRAP_ALGORITHM_HEADER] = + $provider->getWrapAlgorithmName(); + $envelope[MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER] = $aesName; + $envelope[MetadataEnvelope::UNENCRYPTED_CONTENT_LENGTH_HEADER] = + strlen($plaintext); + $envelope[MetadataEnvelope::UNENCRYPTED_CONTENT_MD5_HEADER] = + base64_encode(md5($plaintext)); + $envelope[MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER] = + json_encode($materialsDescription); + if (!empty($cipherOptions['Tag'])) { + $envelope[MetadataEnvelope::CRYPTO_TAG_LENGTH_HEADER] = + strlen($cipherOptions['Tag']) * 8; + } + + return $encryptingStream; + } + + /** + * Generates a stream that wraps the plaintext with the proper cipher and + * uses the content encryption key (CEK) to encrypt the data when read. + * + * @param Stream $plaintext Plain-text data to be encrypted using the + * materials, algorithm, and data provided. + * @param string $cek A content encryption key for use by the stream for + * encrypting the plaintext data. + * @param array $cipherOptions Options for use in determining the cipher to + * be used for encrypting data. + * + * @return [AesStreamInterface, string] + * + * @internal + */ + protected function getEncryptingStream( + Stream $plaintext, + $cek, + &$cipherOptions + ) { + switch ($cipherOptions['Cipher']) { + case 'gcm': + $cipherOptions['TagLength'] = 16; + + $cipherTextStream = new AesGcmEncryptingStream( + $plaintext, + $cek, + $cipherOptions['Iv'], + $cipherOptions['Aad'] = isset($cipherOptions['Aad']) + ? $cipherOptions['Aad'] + : null, + $cipherOptions['TagLength'], + $cipherOptions['KeySize'] + ); + + $appendStream = new AppendStream([ + $cipherTextStream->createStream() + ]); + $cipherOptions['Tag'] = $cipherTextStream->getTag(); + $appendStream->addStream(Psr7\stream_for($cipherOptions['Tag'])); + return [$appendStream, $cipherTextStream->getAesName()]; + default: + $cipherMethod = $this->buildCipherMethod( + $cipherOptions['Cipher'], + $cipherOptions['Iv'], + $cipherOptions['KeySize'] + ); + $cipherTextStream = new AesEncryptingStream( + $plaintext, + $cek, + $cipherMethod + ); + return [$cipherTextStream, $cipherTextStream->getAesName()]; + } + } +} diff --git a/lib/aws/Aws/Crypto/KmsMaterialsProvider.php b/lib/aws/Aws/Crypto/KmsMaterialsProvider.php new file mode 100644 index 0000000..355191c --- /dev/null +++ b/lib/aws/Aws/Crypto/KmsMaterialsProvider.php @@ -0,0 +1,108 @@ +<?php +namespace Aws\Crypto; + +use Aws\Kms\KmsClient; + +/** + * Uses KMS to supply materials for encrypting and decrypting data. + */ +class KmsMaterialsProvider extends MaterialsProvider +{ + private $kmsClient; + private $kmsKeyId; + + /** + * @param KmsClient $kmsClient A KMS Client for use encrypting and + * decrypting keys. + * @param string $kmsKeyId The private KMS key id to be used for encrypting + * and decrypting keys. + */ + public function __construct( + KmsClient $kmsClient, + $kmsKeyId = null + ) { + $this->kmsClient = $kmsClient; + $this->kmsKeyId = $kmsKeyId; + } + + public function fromDecryptionEnvelope(MetadataEnvelope $envelope) + { + if (empty($envelope[MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER])) { + throw new \RuntimeException('Not able to detect kms_cmk_id from an' + . ' empty materials description.'); + } + + $materialsDescription = json_decode( + $envelope[MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER], + true + ); + if (empty($materialsDescription['kms_cmk_id'])) { + throw new \RuntimeException('Not able to detect kms_cmk_id from kms' + . ' materials description.'); + } + + return new KmsMaterialsProvider( + $this->kmsClient, + $materialsDescription['kms_cmk_id'] + ); + } + + /** + * The KMS key id for use in matching this Provider to its keys, + * consistently with other SDKs as 'kms_cmk_id'. + * + * @return array + */ + public function getMaterialsDescription() + { + return ['kms_cmk_id' => $this->kmsKeyId]; + } + + public function getWrapAlgorithmName() + { + return 'kms'; + } + + /** + * Takes a content encryption key (CEK) and description to return an encrypted + * key by using KMS' Encrypt API. + * + * @param string $unencryptedCek Key for use in encrypting other data + * that itself needs to be encrypted by the + * Provider. + * @param string $materialDescription Material Description for use in + * encrypting the $cek. + * + * @return string + */ + public function encryptCek($unencryptedCek, $materialDescription) + { + $encryptedDataKey = $this->kmsClient->encrypt([ + 'Plaintext' => $unencryptedCek, + 'KeyId' => $this->kmsKeyId, + 'EncryptionContext' => $materialDescription + ]); + return base64_encode($encryptedDataKey['CiphertextBlob']); + } + + /** + * Takes an encrypted content encryption key (CEK) and material description + * for use decrypting the key by using KMS' Decrypt API. + * + * @param string $encryptedCek Encrypted key to be decrypted by the Provider + * for use decrypting other data. + * @param string $materialDescription Material Description for use in + * encrypting the $cek. + * + * @return string + */ + public function decryptCek($encryptedCek, $materialDescription) + { + $result = $this->kmsClient->decrypt([ + 'CiphertextBlob' => $encryptedCek, + 'EncryptionContext' => $materialDescription + ]); + + return $result['Plaintext']; + } +} diff --git a/lib/aws/Aws/Crypto/MaterialsProvider.php b/lib/aws/Aws/Crypto/MaterialsProvider.php new file mode 100644 index 0000000..c1131b6 --- /dev/null +++ b/lib/aws/Aws/Crypto/MaterialsProvider.php @@ -0,0 +1,105 @@ +<?php +namespace Aws\Crypto; + +abstract class MaterialsProvider +{ + private static $supportedKeySizes = [ + 128 => true, + 192 => true, + 256 => true, + ]; + + /** + * Returns if the requested size is supported by AES. + * + * @param int $keySize Size of the requested key in bits. + * + * @return bool + */ + public static function isSupportedKeySize($keySize) + { + return isset(self::$supportedKeySizes[$keySize]); + } + + /** + * Performs further initialization of the MaterialsProvider based on the + * data inside the MetadataEnvelope. + * + * @param MetadataEnvelope $envelope A storage envelope for encryption + * metadata to be read from. + * + * @return MaterialsProvider + * + * @throws \RuntimeException Thrown when there is an empty or improperly + * formed materials description in the envelope. + * + * @internal + */ + abstract public function fromDecryptionEnvelope(MetadataEnvelope $envelope); + + /** + * Returns the material description for this Provider so it can be verified + * by encryption mechanisms. + * + * @return string + */ + abstract public function getMaterialsDescription(); + + /** + * Returns the wrap algorithm name for this Provider. + * + * @return string + */ + abstract public function getWrapAlgorithmName(); + + /** + * Takes a content encryption key (CEK) and description to return an + * encrypted key according to the Provider's specifications. + * + * @param string $unencryptedCek Key for use in encrypting other data + * that itself needs to be encrypted by the + * Provider. + * @param string $materialDescription Material Description for use in + * encrypting the $cek. + * + * @return string + */ + abstract public function encryptCek($unencryptedCek, $materialDescription); + + /** + * Takes an encrypted content encryption key (CEK) and material description + * for use decrypting the key according to the Provider's specifications. + * + * @param string $encryptedCek Encrypted key to be decrypted by the Provider + * for use decrypting other data. + * @param string $materialDescription Material Description for use in + * encrypting the $cek. + * + * @return string + */ + abstract public function decryptCek($encryptedCek, $materialDescription); + + /** + * @param string $keySize Length of a cipher key in bits for generating a + * random content encryption key (CEK). + * + * @return string + */ + public function generateCek($keySize) + { + return openssl_random_pseudo_bytes($keySize / 8); + } + + /** + * @param string $openSslName Cipher OpenSSL name to use for generating + * an initialization vector. + * + * @return string + */ + public function generateIv($openSslName) + { + return openssl_random_pseudo_bytes( + openssl_cipher_iv_length($openSslName) + ); + } +} diff --git a/lib/aws/Aws/Crypto/MetadataEnvelope.php b/lib/aws/Aws/Crypto/MetadataEnvelope.php new file mode 100644 index 0000000..8f6baf8 --- /dev/null +++ b/lib/aws/Aws/Crypto/MetadataEnvelope.php @@ -0,0 +1,57 @@ +<?php +namespace Aws\Crypto; + +use Aws\HasDataTrait; +use \ArrayAccess; +use \IteratorAggregate; +use \InvalidArgumentException; +use \JsonSerializable; + +/** + * Stores encryption metadata for reading and writing. + * + * @internal + */ +class MetadataEnvelope implements ArrayAccess, IteratorAggregate, JsonSerializable +{ + use HasDataTrait; + + const CONTENT_KEY_V2_HEADER = 'x-amz-key-v2'; + const IV_HEADER = 'x-amz-iv'; + const MATERIALS_DESCRIPTION_HEADER = 'x-amz-matdesc'; + const KEY_WRAP_ALGORITHM_HEADER = 'x-amz-wrap-alg'; + const CONTENT_CRYPTO_SCHEME_HEADER = 'x-amz-cek-alg'; + const CRYPTO_TAG_LENGTH_HEADER = 'x-amz-tag-len'; + const UNENCRYPTED_CONTENT_MD5_HEADER = 'x-amz-unencrypted-content-md5'; + const UNENCRYPTED_CONTENT_LENGTH_HEADER = 'x-amz-unencrypted-content-length'; + + private static $constants = []; + + public static function getConstantValues() + { + if (empty(self::$constants)) { + $reflection = new \ReflectionClass(static::class); + foreach (array_values($reflection->getConstants()) as $constant) { + self::$constants[$constant] = true; + } + } + + return array_keys(self::$constants); + } + + public function offsetSet($name, $value) + { + $constants = self::getConstantValues(); + if (is_null($name) || !in_array($name, $constants)) { + throw new InvalidArgumentException('MetadataEnvelope fields must' + . ' must match a predefined offset; use the header constants.'); + } + + $this->data[$name] = $value; + } + + public function jsonSerialize() + { + return $this->data; + } +} diff --git a/lib/aws/Aws/Crypto/MetadataStrategyInterface.php b/lib/aws/Aws/Crypto/MetadataStrategyInterface.php new file mode 100644 index 0000000..5270c7e --- /dev/null +++ b/lib/aws/Aws/Crypto/MetadataStrategyInterface.php @@ -0,0 +1,30 @@ +<?php +namespace Aws\Crypto; + +interface MetadataStrategyInterface +{ + /** + * Places the information in the MetadataEnvelope to the strategy specific + * location. Populates the PutObject arguments with any information + * necessary for loading. + * + * @param MetadataEnvelope $envelope Encryption data to save according to + * the strategy. + * @param array $args Starting arguments for PutObject. + * + * @return array Updated arguments for PutObject. + */ + public function save(MetadataEnvelope $envelope, array $args); + + /** + * Generates a MetadataEnvelope according to the specific strategy using the + * passed arguments. + * + * @param array $args Arguments from Command and Result that contains + * S3 Object information, relevant headers, and command + * configuration. + * + * @return MetadataEnvelope + */ + public function load(array $args); +} diff --git a/lib/aws/Aws/DAX/DAXClient.php b/lib/aws/Aws/DAX/DAXClient.php new file mode 100644 index 0000000..4dc67dd --- /dev/null +++ b/lib/aws/Aws/DAX/DAXClient.php @@ -0,0 +1,51 @@ +<?php +namespace Aws\DAX; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon DynamoDB Accelerator (DAX)** service. + * @method \Aws\Result createCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise createClusterAsync(array $args = []) + * @method \Aws\Result createParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createParameterGroupAsync(array $args = []) + * @method \Aws\Result createSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSubnetGroupAsync(array $args = []) + * @method \Aws\Result decreaseReplicationFactor(array $args = []) + * @method \GuzzleHttp\Promise\Promise decreaseReplicationFactorAsync(array $args = []) + * @method \Aws\Result deleteCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteClusterAsync(array $args = []) + * @method \Aws\Result deleteParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteParameterGroupAsync(array $args = []) + * @method \Aws\Result deleteSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSubnetGroupAsync(array $args = []) + * @method \Aws\Result describeClusters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeClustersAsync(array $args = []) + * @method \Aws\Result describeDefaultParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDefaultParametersAsync(array $args = []) + * @method \Aws\Result describeEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventsAsync(array $args = []) + * @method \Aws\Result describeParameterGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeParameterGroupsAsync(array $args = []) + * @method \Aws\Result describeParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeParametersAsync(array $args = []) + * @method \Aws\Result describeSubnetGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSubnetGroupsAsync(array $args = []) + * @method \Aws\Result increaseReplicationFactor(array $args = []) + * @method \GuzzleHttp\Promise\Promise increaseReplicationFactorAsync(array $args = []) + * @method \Aws\Result listTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsAsync(array $args = []) + * @method \Aws\Result rebootNode(array $args = []) + * @method \GuzzleHttp\Promise\Promise rebootNodeAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateClusterAsync(array $args = []) + * @method \Aws\Result updateParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateParameterGroupAsync(array $args = []) + * @method \Aws\Result updateSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSubnetGroupAsync(array $args = []) + */ +class DAXClient extends AwsClient {} diff --git a/lib/aws/Aws/DAX/Exception/DAXException.php b/lib/aws/Aws/DAX/Exception/DAXException.php new file mode 100644 index 0000000..21fa12d --- /dev/null +++ b/lib/aws/Aws/DAX/Exception/DAXException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\DAX\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon DynamoDB Accelerator (DAX)** service. + */ +class DAXException extends AwsException {} diff --git a/lib/aws/Aws/DLM/DLMClient.php b/lib/aws/Aws/DLM/DLMClient.php new file mode 100644 index 0000000..8036dce --- /dev/null +++ b/lib/aws/Aws/DLM/DLMClient.php @@ -0,0 +1,19 @@ +<?php +namespace Aws\DLM; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Data Lifecycle Manager** service. + * @method \Aws\Result createLifecyclePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLifecyclePolicyAsync(array $args = []) + * @method \Aws\Result deleteLifecyclePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLifecyclePolicyAsync(array $args = []) + * @method \Aws\Result getLifecyclePolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLifecyclePoliciesAsync(array $args = []) + * @method \Aws\Result getLifecyclePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLifecyclePolicyAsync(array $args = []) + * @method \Aws\Result updateLifecyclePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateLifecyclePolicyAsync(array $args = []) + */ +class DLMClient extends AwsClient {} diff --git a/lib/aws/Aws/DLM/Exception/DLMException.php b/lib/aws/Aws/DLM/Exception/DLMException.php new file mode 100644 index 0000000..7789d91 --- /dev/null +++ b/lib/aws/Aws/DLM/Exception/DLMException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\DLM\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Data Lifecycle Manager** service. + */ +class DLMException extends AwsException {} diff --git a/lib/aws/Aws/DataPipeline/DataPipelineClient.php b/lib/aws/Aws/DataPipeline/DataPipelineClient.php new file mode 100644 index 0000000..c778b3a --- /dev/null +++ b/lib/aws/Aws/DataPipeline/DataPipelineClient.php @@ -0,0 +1,48 @@ +<?php +namespace Aws\DataPipeline; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Data Pipeline** service. + * + * @method \Aws\Result activatePipeline(array $args = []) + * @method \GuzzleHttp\Promise\Promise activatePipelineAsync(array $args = []) + * @method \Aws\Result addTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsAsync(array $args = []) + * @method \Aws\Result createPipeline(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPipelineAsync(array $args = []) + * @method \Aws\Result deactivatePipeline(array $args = []) + * @method \GuzzleHttp\Promise\Promise deactivatePipelineAsync(array $args = []) + * @method \Aws\Result deletePipeline(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePipelineAsync(array $args = []) + * @method \Aws\Result describeObjects(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeObjectsAsync(array $args = []) + * @method \Aws\Result describePipelines(array $args = []) + * @method \GuzzleHttp\Promise\Promise describePipelinesAsync(array $args = []) + * @method \Aws\Result evaluateExpression(array $args = []) + * @method \GuzzleHttp\Promise\Promise evaluateExpressionAsync(array $args = []) + * @method \Aws\Result getPipelineDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPipelineDefinitionAsync(array $args = []) + * @method \Aws\Result listPipelines(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPipelinesAsync(array $args = []) + * @method \Aws\Result pollForTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise pollForTaskAsync(array $args = []) + * @method \Aws\Result putPipelineDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise putPipelineDefinitionAsync(array $args = []) + * @method \Aws\Result queryObjects(array $args = []) + * @method \GuzzleHttp\Promise\Promise queryObjectsAsync(array $args = []) + * @method \Aws\Result removeTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeTagsAsync(array $args = []) + * @method \Aws\Result reportTaskProgress(array $args = []) + * @method \GuzzleHttp\Promise\Promise reportTaskProgressAsync(array $args = []) + * @method \Aws\Result reportTaskRunnerHeartbeat(array $args = []) + * @method \GuzzleHttp\Promise\Promise reportTaskRunnerHeartbeatAsync(array $args = []) + * @method \Aws\Result setStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise setStatusAsync(array $args = []) + * @method \Aws\Result setTaskStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise setTaskStatusAsync(array $args = []) + * @method \Aws\Result validatePipelineDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise validatePipelineDefinitionAsync(array $args = []) + */ +class DataPipelineClient extends AwsClient {} diff --git a/lib/aws/Aws/DataPipeline/Exception/DataPipelineException.php b/lib/aws/Aws/DataPipeline/Exception/DataPipelineException.php new file mode 100644 index 0000000..a590e7c --- /dev/null +++ b/lib/aws/Aws/DataPipeline/Exception/DataPipelineException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\DataPipeline\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the AWS Data Pipeline service. + */ +class DataPipelineException extends AwsException {} diff --git a/lib/aws/Aws/DataSync/DataSyncClient.php b/lib/aws/Aws/DataSync/DataSyncClient.php new file mode 100644 index 0000000..2d6bb01 --- /dev/null +++ b/lib/aws/Aws/DataSync/DataSyncClient.php @@ -0,0 +1,59 @@ +<?php +namespace Aws\DataSync; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS DataSync** service. + * @method \Aws\Result cancelTaskExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelTaskExecutionAsync(array $args = []) + * @method \Aws\Result createAgent(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAgentAsync(array $args = []) + * @method \Aws\Result createLocationEfs(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLocationEfsAsync(array $args = []) + * @method \Aws\Result createLocationNfs(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLocationNfsAsync(array $args = []) + * @method \Aws\Result createLocationS3(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLocationS3Async(array $args = []) + * @method \Aws\Result createTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTaskAsync(array $args = []) + * @method \Aws\Result deleteAgent(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAgentAsync(array $args = []) + * @method \Aws\Result deleteLocation(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLocationAsync(array $args = []) + * @method \Aws\Result deleteTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTaskAsync(array $args = []) + * @method \Aws\Result describeAgent(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAgentAsync(array $args = []) + * @method \Aws\Result describeLocationEfs(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLocationEfsAsync(array $args = []) + * @method \Aws\Result describeLocationNfs(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLocationNfsAsync(array $args = []) + * @method \Aws\Result describeLocationS3(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLocationS3Async(array $args = []) + * @method \Aws\Result describeTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTaskAsync(array $args = []) + * @method \Aws\Result describeTaskExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTaskExecutionAsync(array $args = []) + * @method \Aws\Result listAgents(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAgentsAsync(array $args = []) + * @method \Aws\Result listLocations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listLocationsAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result listTaskExecutions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTaskExecutionsAsync(array $args = []) + * @method \Aws\Result listTasks(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTasksAsync(array $args = []) + * @method \Aws\Result startTaskExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise startTaskExecutionAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateAgent(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAgentAsync(array $args = []) + * @method \Aws\Result updateTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateTaskAsync(array $args = []) + */ +class DataSyncClient extends AwsClient {} diff --git a/lib/aws/Aws/DataSync/Exception/DataSyncException.php b/lib/aws/Aws/DataSync/Exception/DataSyncException.php new file mode 100644 index 0000000..4954bba --- /dev/null +++ b/lib/aws/Aws/DataSync/Exception/DataSyncException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\DataSync\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS DataSync** service. + */ +class DataSyncException extends AwsException {} diff --git a/lib/aws/Aws/DatabaseMigrationService/DatabaseMigrationServiceClient.php b/lib/aws/Aws/DatabaseMigrationService/DatabaseMigrationServiceClient.php new file mode 100644 index 0000000..7c570d0 --- /dev/null +++ b/lib/aws/Aws/DatabaseMigrationService/DatabaseMigrationServiceClient.php @@ -0,0 +1,101 @@ +<?php +namespace Aws\DatabaseMigrationService; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Database Migration Service** service. + * @method \Aws\Result addTagsToResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsToResourceAsync(array $args = []) + * @method \Aws\Result applyPendingMaintenanceAction(array $args = []) + * @method \GuzzleHttp\Promise\Promise applyPendingMaintenanceActionAsync(array $args = []) + * @method \Aws\Result createEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise createEndpointAsync(array $args = []) + * @method \Aws\Result createEventSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise createEventSubscriptionAsync(array $args = []) + * @method \Aws\Result createReplicationInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise createReplicationInstanceAsync(array $args = []) + * @method \Aws\Result createReplicationSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createReplicationSubnetGroupAsync(array $args = []) + * @method \Aws\Result createReplicationTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise createReplicationTaskAsync(array $args = []) + * @method \Aws\Result deleteCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCertificateAsync(array $args = []) + * @method \Aws\Result deleteEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteEndpointAsync(array $args = []) + * @method \Aws\Result deleteEventSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteEventSubscriptionAsync(array $args = []) + * @method \Aws\Result deleteReplicationInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteReplicationInstanceAsync(array $args = []) + * @method \Aws\Result deleteReplicationSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteReplicationSubnetGroupAsync(array $args = []) + * @method \Aws\Result deleteReplicationTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteReplicationTaskAsync(array $args = []) + * @method \Aws\Result describeAccountAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAccountAttributesAsync(array $args = []) + * @method \Aws\Result describeCertificates(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCertificatesAsync(array $args = []) + * @method \Aws\Result describeConnections(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeConnectionsAsync(array $args = []) + * @method \Aws\Result describeEndpointTypes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEndpointTypesAsync(array $args = []) + * @method \Aws\Result describeEndpoints(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEndpointsAsync(array $args = []) + * @method \Aws\Result describeEventCategories(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventCategoriesAsync(array $args = []) + * @method \Aws\Result describeEventSubscriptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventSubscriptionsAsync(array $args = []) + * @method \Aws\Result describeEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventsAsync(array $args = []) + * @method \Aws\Result describeOrderableReplicationInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeOrderableReplicationInstancesAsync(array $args = []) + * @method \Aws\Result describePendingMaintenanceActions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describePendingMaintenanceActionsAsync(array $args = []) + * @method \Aws\Result describeRefreshSchemasStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRefreshSchemasStatusAsync(array $args = []) + * @method \Aws\Result describeReplicationInstanceTaskLogs(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReplicationInstanceTaskLogsAsync(array $args = []) + * @method \Aws\Result describeReplicationInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReplicationInstancesAsync(array $args = []) + * @method \Aws\Result describeReplicationSubnetGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReplicationSubnetGroupsAsync(array $args = []) + * @method \Aws\Result describeReplicationTaskAssessmentResults(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReplicationTaskAssessmentResultsAsync(array $args = []) + * @method \Aws\Result describeReplicationTasks(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReplicationTasksAsync(array $args = []) + * @method \Aws\Result describeSchemas(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSchemasAsync(array $args = []) + * @method \Aws\Result describeTableStatistics(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTableStatisticsAsync(array $args = []) + * @method \Aws\Result importCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise importCertificateAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result modifyEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyEndpointAsync(array $args = []) + * @method \Aws\Result modifyEventSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyEventSubscriptionAsync(array $args = []) + * @method \Aws\Result modifyReplicationInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyReplicationInstanceAsync(array $args = []) + * @method \Aws\Result modifyReplicationSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyReplicationSubnetGroupAsync(array $args = []) + * @method \Aws\Result modifyReplicationTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyReplicationTaskAsync(array $args = []) + * @method \Aws\Result rebootReplicationInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise rebootReplicationInstanceAsync(array $args = []) + * @method \Aws\Result refreshSchemas(array $args = []) + * @method \GuzzleHttp\Promise\Promise refreshSchemasAsync(array $args = []) + * @method \Aws\Result reloadTables(array $args = []) + * @method \GuzzleHttp\Promise\Promise reloadTablesAsync(array $args = []) + * @method \Aws\Result removeTagsFromResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeTagsFromResourceAsync(array $args = []) + * @method \Aws\Result startReplicationTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise startReplicationTaskAsync(array $args = []) + * @method \Aws\Result startReplicationTaskAssessment(array $args = []) + * @method \GuzzleHttp\Promise\Promise startReplicationTaskAssessmentAsync(array $args = []) + * @method \Aws\Result stopReplicationTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopReplicationTaskAsync(array $args = []) + * @method \Aws\Result testConnection(array $args = []) + * @method \GuzzleHttp\Promise\Promise testConnectionAsync(array $args = []) + */ +class DatabaseMigrationServiceClient extends AwsClient {} diff --git a/lib/aws/Aws/DatabaseMigrationService/Exception/DatabaseMigrationServiceException.php b/lib/aws/Aws/DatabaseMigrationService/Exception/DatabaseMigrationServiceException.php new file mode 100644 index 0000000..854088d --- /dev/null +++ b/lib/aws/Aws/DatabaseMigrationService/Exception/DatabaseMigrationServiceException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\DatabaseMigrationService\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Database Migration Service** service. + */ +class DatabaseMigrationServiceException extends AwsException {} diff --git a/lib/aws/Aws/DeviceFarm/DeviceFarmClient.php b/lib/aws/Aws/DeviceFarm/DeviceFarmClient.php new file mode 100644 index 0000000..8c22b8c --- /dev/null +++ b/lib/aws/Aws/DeviceFarm/DeviceFarmClient.php @@ -0,0 +1,138 @@ +<?php +namespace Aws\DeviceFarm; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon DeviceFarm** service. + * + * @method \Aws\Result createDevicePool(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDevicePoolAsync(array $args = []) + * @method \Aws\Result createInstanceProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise createInstanceProfileAsync(array $args = []) + * @method \Aws\Result createNetworkProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise createNetworkProfileAsync(array $args = []) + * @method \Aws\Result createProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise createProjectAsync(array $args = []) + * @method \Aws\Result createRemoteAccessSession(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRemoteAccessSessionAsync(array $args = []) + * @method \Aws\Result createUpload(array $args = []) + * @method \GuzzleHttp\Promise\Promise createUploadAsync(array $args = []) + * @method \Aws\Result createVPCEConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise createVPCEConfigurationAsync(array $args = []) + * @method \Aws\Result deleteDevicePool(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDevicePoolAsync(array $args = []) + * @method \Aws\Result deleteInstanceProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteInstanceProfileAsync(array $args = []) + * @method \Aws\Result deleteNetworkProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteNetworkProfileAsync(array $args = []) + * @method \Aws\Result deleteProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteProjectAsync(array $args = []) + * @method \Aws\Result deleteRemoteAccessSession(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRemoteAccessSessionAsync(array $args = []) + * @method \Aws\Result deleteRun(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRunAsync(array $args = []) + * @method \Aws\Result deleteUpload(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUploadAsync(array $args = []) + * @method \Aws\Result deleteVPCEConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVPCEConfigurationAsync(array $args = []) + * @method \Aws\Result getAccountSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAccountSettingsAsync(array $args = []) + * @method \Aws\Result getDevice(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDeviceAsync(array $args = []) + * @method \Aws\Result getDeviceInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDeviceInstanceAsync(array $args = []) + * @method \Aws\Result getDevicePool(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDevicePoolAsync(array $args = []) + * @method \Aws\Result getDevicePoolCompatibility(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDevicePoolCompatibilityAsync(array $args = []) + * @method \Aws\Result getInstanceProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInstanceProfileAsync(array $args = []) + * @method \Aws\Result getJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise getJobAsync(array $args = []) + * @method \Aws\Result getNetworkProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise getNetworkProfileAsync(array $args = []) + * @method \Aws\Result getOfferingStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getOfferingStatusAsync(array $args = []) + * @method \Aws\Result getProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise getProjectAsync(array $args = []) + * @method \Aws\Result getRemoteAccessSession(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRemoteAccessSessionAsync(array $args = []) + * @method \Aws\Result getRun(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRunAsync(array $args = []) + * @method \Aws\Result getSuite(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSuiteAsync(array $args = []) + * @method \Aws\Result getTest(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTestAsync(array $args = []) + * @method \Aws\Result getUpload(array $args = []) + * @method \GuzzleHttp\Promise\Promise getUploadAsync(array $args = []) + * @method \Aws\Result getVPCEConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getVPCEConfigurationAsync(array $args = []) + * @method \Aws\Result installToRemoteAccessSession(array $args = []) + * @method \GuzzleHttp\Promise\Promise installToRemoteAccessSessionAsync(array $args = []) + * @method \Aws\Result listArtifacts(array $args = []) + * @method \GuzzleHttp\Promise\Promise listArtifactsAsync(array $args = []) + * @method \Aws\Result listDeviceInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDeviceInstancesAsync(array $args = []) + * @method \Aws\Result listDevicePools(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDevicePoolsAsync(array $args = []) + * @method \Aws\Result listDevices(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDevicesAsync(array $args = []) + * @method \Aws\Result listInstanceProfiles(array $args = []) + * @method \GuzzleHttp\Promise\Promise listInstanceProfilesAsync(array $args = []) + * @method \Aws\Result listJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listJobsAsync(array $args = []) + * @method \Aws\Result listNetworkProfiles(array $args = []) + * @method \GuzzleHttp\Promise\Promise listNetworkProfilesAsync(array $args = []) + * @method \Aws\Result listOfferingPromotions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listOfferingPromotionsAsync(array $args = []) + * @method \Aws\Result listOfferingTransactions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listOfferingTransactionsAsync(array $args = []) + * @method \Aws\Result listOfferings(array $args = []) + * @method \GuzzleHttp\Promise\Promise listOfferingsAsync(array $args = []) + * @method \Aws\Result listProjects(array $args = []) + * @method \GuzzleHttp\Promise\Promise listProjectsAsync(array $args = []) + * @method \Aws\Result listRemoteAccessSessions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRemoteAccessSessionsAsync(array $args = []) + * @method \Aws\Result listRuns(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRunsAsync(array $args = []) + * @method \Aws\Result listSamples(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSamplesAsync(array $args = []) + * @method \Aws\Result listSuites(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSuitesAsync(array $args = []) + * @method \Aws\Result listTests(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTestsAsync(array $args = []) + * @method \Aws\Result listUniqueProblems(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUniqueProblemsAsync(array $args = []) + * @method \Aws\Result listUploads(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUploadsAsync(array $args = []) + * @method \Aws\Result listVPCEConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listVPCEConfigurationsAsync(array $args = []) + * @method \Aws\Result purchaseOffering(array $args = []) + * @method \GuzzleHttp\Promise\Promise purchaseOfferingAsync(array $args = []) + * @method \Aws\Result renewOffering(array $args = []) + * @method \GuzzleHttp\Promise\Promise renewOfferingAsync(array $args = []) + * @method \Aws\Result scheduleRun(array $args = []) + * @method \GuzzleHttp\Promise\Promise scheduleRunAsync(array $args = []) + * @method \Aws\Result stopJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopJobAsync(array $args = []) + * @method \Aws\Result stopRemoteAccessSession(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopRemoteAccessSessionAsync(array $args = []) + * @method \Aws\Result stopRun(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopRunAsync(array $args = []) + * @method \Aws\Result updateDeviceInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDeviceInstanceAsync(array $args = []) + * @method \Aws\Result updateDevicePool(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDevicePoolAsync(array $args = []) + * @method \Aws\Result updateInstanceProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateInstanceProfileAsync(array $args = []) + * @method \Aws\Result updateNetworkProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateNetworkProfileAsync(array $args = []) + * @method \Aws\Result updateProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateProjectAsync(array $args = []) + * @method \Aws\Result updateUpload(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUploadAsync(array $args = []) + * @method \Aws\Result updateVPCEConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateVPCEConfigurationAsync(array $args = []) + */ +class DeviceFarmClient extends AwsClient {} \ No newline at end of file diff --git a/lib/aws/Aws/DeviceFarm/Exception/DeviceFarmException.php b/lib/aws/Aws/DeviceFarm/Exception/DeviceFarmException.php new file mode 100644 index 0000000..9e2fbbd --- /dev/null +++ b/lib/aws/Aws/DeviceFarm/Exception/DeviceFarmException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\DeviceFarm\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon DeviceFarm service. + */ +class DeviceFarmException extends AwsException {} \ No newline at end of file diff --git a/lib/aws/Aws/DirectConnect/DirectConnectClient.php b/lib/aws/Aws/DirectConnect/DirectConnectClient.php new file mode 100644 index 0000000..96422e6 --- /dev/null +++ b/lib/aws/Aws/DirectConnect/DirectConnectClient.php @@ -0,0 +1,110 @@ +<?php +namespace Aws\DirectConnect; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Direct Connect** service. + * + * @method \Aws\Result acceptDirectConnectGatewayAssociationProposal(array $args = []) + * @method \GuzzleHttp\Promise\Promise acceptDirectConnectGatewayAssociationProposalAsync(array $args = []) + * @method \Aws\Result allocateConnectionOnInterconnect(array $args = []) + * @method \GuzzleHttp\Promise\Promise allocateConnectionOnInterconnectAsync(array $args = []) + * @method \Aws\Result allocateHostedConnection(array $args = []) + * @method \GuzzleHttp\Promise\Promise allocateHostedConnectionAsync(array $args = []) + * @method \Aws\Result allocatePrivateVirtualInterface(array $args = []) + * @method \GuzzleHttp\Promise\Promise allocatePrivateVirtualInterfaceAsync(array $args = []) + * @method \Aws\Result allocatePublicVirtualInterface(array $args = []) + * @method \GuzzleHttp\Promise\Promise allocatePublicVirtualInterfaceAsync(array $args = []) + * @method \Aws\Result associateConnectionWithLag(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateConnectionWithLagAsync(array $args = []) + * @method \Aws\Result associateHostedConnection(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateHostedConnectionAsync(array $args = []) + * @method \Aws\Result associateVirtualInterface(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateVirtualInterfaceAsync(array $args = []) + * @method \Aws\Result confirmConnection(array $args = []) + * @method \GuzzleHttp\Promise\Promise confirmConnectionAsync(array $args = []) + * @method \Aws\Result confirmPrivateVirtualInterface(array $args = []) + * @method \GuzzleHttp\Promise\Promise confirmPrivateVirtualInterfaceAsync(array $args = []) + * @method \Aws\Result confirmPublicVirtualInterface(array $args = []) + * @method \GuzzleHttp\Promise\Promise confirmPublicVirtualInterfaceAsync(array $args = []) + * @method \Aws\Result createBGPPeer(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBGPPeerAsync(array $args = []) + * @method \Aws\Result createConnection(array $args = []) + * @method \GuzzleHttp\Promise\Promise createConnectionAsync(array $args = []) + * @method \Aws\Result createDirectConnectGateway(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDirectConnectGatewayAsync(array $args = []) + * @method \Aws\Result createDirectConnectGatewayAssociation(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDirectConnectGatewayAssociationAsync(array $args = []) + * @method \Aws\Result createDirectConnectGatewayAssociationProposal(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDirectConnectGatewayAssociationProposalAsync(array $args = []) + * @method \Aws\Result createInterconnect(array $args = []) + * @method \GuzzleHttp\Promise\Promise createInterconnectAsync(array $args = []) + * @method \Aws\Result createLag(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLagAsync(array $args = []) + * @method \Aws\Result createPrivateVirtualInterface(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPrivateVirtualInterfaceAsync(array $args = []) + * @method \Aws\Result createPublicVirtualInterface(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPublicVirtualInterfaceAsync(array $args = []) + * @method \Aws\Result deleteBGPPeer(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBGPPeerAsync(array $args = []) + * @method \Aws\Result deleteConnection(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteConnectionAsync(array $args = []) + * @method \Aws\Result deleteDirectConnectGateway(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDirectConnectGatewayAsync(array $args = []) + * @method \Aws\Result deleteDirectConnectGatewayAssociation(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDirectConnectGatewayAssociationAsync(array $args = []) + * @method \Aws\Result deleteDirectConnectGatewayAssociationProposal(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDirectConnectGatewayAssociationProposalAsync(array $args = []) + * @method \Aws\Result deleteInterconnect(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteInterconnectAsync(array $args = []) + * @method \Aws\Result deleteLag(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLagAsync(array $args = []) + * @method \Aws\Result deleteVirtualInterface(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVirtualInterfaceAsync(array $args = []) + * @method \Aws\Result describeConnectionLoa(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeConnectionLoaAsync(array $args = []) + * @method \Aws\Result describeConnections(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeConnectionsAsync(array $args = []) + * @method \Aws\Result describeConnectionsOnInterconnect(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeConnectionsOnInterconnectAsync(array $args = []) + * @method \Aws\Result describeDirectConnectGatewayAssociationProposals(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDirectConnectGatewayAssociationProposalsAsync(array $args = []) + * @method \Aws\Result describeDirectConnectGatewayAssociations(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDirectConnectGatewayAssociationsAsync(array $args = []) + * @method \Aws\Result describeDirectConnectGatewayAttachments(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDirectConnectGatewayAttachmentsAsync(array $args = []) + * @method \Aws\Result describeDirectConnectGateways(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDirectConnectGatewaysAsync(array $args = []) + * @method \Aws\Result describeHostedConnections(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeHostedConnectionsAsync(array $args = []) + * @method \Aws\Result describeInterconnectLoa(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeInterconnectLoaAsync(array $args = []) + * @method \Aws\Result describeInterconnects(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeInterconnectsAsync(array $args = []) + * @method \Aws\Result describeLags(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLagsAsync(array $args = []) + * @method \Aws\Result describeLoa(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLoaAsync(array $args = []) + * @method \Aws\Result describeLocations(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLocationsAsync(array $args = []) + * @method \Aws\Result describeTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTagsAsync(array $args = []) + * @method \Aws\Result describeVirtualGateways(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVirtualGatewaysAsync(array $args = []) + * @method \Aws\Result describeVirtualInterfaces(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVirtualInterfacesAsync(array $args = []) + * @method \Aws\Result disassociateConnectionFromLag(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateConnectionFromLagAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateDirectConnectGatewayAssociation(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDirectConnectGatewayAssociationAsync(array $args = []) + * @method \Aws\Result updateLag(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateLagAsync(array $args = []) + * @method \Aws\Result updateVirtualInterfaceAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateVirtualInterfaceAttributesAsync(array $args = []) + */ +class DirectConnectClient extends AwsClient {} diff --git a/lib/aws/Aws/DirectConnect/Exception/DirectConnectException.php b/lib/aws/Aws/DirectConnect/Exception/DirectConnectException.php new file mode 100644 index 0000000..7bc2f7a --- /dev/null +++ b/lib/aws/Aws/DirectConnect/Exception/DirectConnectException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\DirectConnect\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the AWS Direct Connect service. + */ +class DirectConnectException extends AwsException {} diff --git a/lib/aws/Aws/DirectoryService/DirectoryServiceClient.php b/lib/aws/Aws/DirectoryService/DirectoryServiceClient.php new file mode 100644 index 0000000..a31e674 --- /dev/null +++ b/lib/aws/Aws/DirectoryService/DirectoryServiceClient.php @@ -0,0 +1,110 @@ +<?php +namespace Aws\DirectoryService; + +use Aws\AwsClient; + +/** + * AWS Directory Service client + * + * @method \Aws\Result acceptSharedDirectory(array $args = []) + * @method \GuzzleHttp\Promise\Promise acceptSharedDirectoryAsync(array $args = []) + * @method \Aws\Result addIpRoutes(array $args = []) + * @method \GuzzleHttp\Promise\Promise addIpRoutesAsync(array $args = []) + * @method \Aws\Result addTagsToResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsToResourceAsync(array $args = []) + * @method \Aws\Result cancelSchemaExtension(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelSchemaExtensionAsync(array $args = []) + * @method \Aws\Result connectDirectory(array $args = []) + * @method \GuzzleHttp\Promise\Promise connectDirectoryAsync(array $args = []) + * @method \Aws\Result createAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAliasAsync(array $args = []) + * @method \Aws\Result createComputer(array $args = []) + * @method \GuzzleHttp\Promise\Promise createComputerAsync(array $args = []) + * @method \Aws\Result createConditionalForwarder(array $args = []) + * @method \GuzzleHttp\Promise\Promise createConditionalForwarderAsync(array $args = []) + * @method \Aws\Result createDirectory(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDirectoryAsync(array $args = []) + * @method \Aws\Result createLogSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLogSubscriptionAsync(array $args = []) + * @method \Aws\Result createMicrosoftAD(array $args = []) + * @method \GuzzleHttp\Promise\Promise createMicrosoftADAsync(array $args = []) + * @method \Aws\Result createSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSnapshotAsync(array $args = []) + * @method \Aws\Result createTrust(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTrustAsync(array $args = []) + * @method \Aws\Result deleteConditionalForwarder(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteConditionalForwarderAsync(array $args = []) + * @method \Aws\Result deleteDirectory(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDirectoryAsync(array $args = []) + * @method \Aws\Result deleteLogSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLogSubscriptionAsync(array $args = []) + * @method \Aws\Result deleteSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSnapshotAsync(array $args = []) + * @method \Aws\Result deleteTrust(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTrustAsync(array $args = []) + * @method \Aws\Result deregisterEventTopic(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterEventTopicAsync(array $args = []) + * @method \Aws\Result describeConditionalForwarders(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeConditionalForwardersAsync(array $args = []) + * @method \Aws\Result describeDirectories(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDirectoriesAsync(array $args = []) + * @method \Aws\Result describeDomainControllers(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDomainControllersAsync(array $args = []) + * @method \Aws\Result describeEventTopics(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventTopicsAsync(array $args = []) + * @method \Aws\Result describeSharedDirectories(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSharedDirectoriesAsync(array $args = []) + * @method \Aws\Result describeSnapshots(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSnapshotsAsync(array $args = []) + * @method \Aws\Result describeTrusts(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTrustsAsync(array $args = []) + * @method \Aws\Result disableRadius(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableRadiusAsync(array $args = []) + * @method \Aws\Result disableSso(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableSsoAsync(array $args = []) + * @method \Aws\Result enableRadius(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableRadiusAsync(array $args = []) + * @method \Aws\Result enableSso(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableSsoAsync(array $args = []) + * @method \Aws\Result getDirectoryLimits(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDirectoryLimitsAsync(array $args = []) + * @method \Aws\Result getSnapshotLimits(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSnapshotLimitsAsync(array $args = []) + * @method \Aws\Result listIpRoutes(array $args = []) + * @method \GuzzleHttp\Promise\Promise listIpRoutesAsync(array $args = []) + * @method \Aws\Result listLogSubscriptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listLogSubscriptionsAsync(array $args = []) + * @method \Aws\Result listSchemaExtensions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSchemaExtensionsAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result registerEventTopic(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerEventTopicAsync(array $args = []) + * @method \Aws\Result rejectSharedDirectory(array $args = []) + * @method \GuzzleHttp\Promise\Promise rejectSharedDirectoryAsync(array $args = []) + * @method \Aws\Result removeIpRoutes(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeIpRoutesAsync(array $args = []) + * @method \Aws\Result removeTagsFromResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeTagsFromResourceAsync(array $args = []) + * @method \Aws\Result resetUserPassword(array $args = []) + * @method \GuzzleHttp\Promise\Promise resetUserPasswordAsync(array $args = []) + * @method \Aws\Result restoreFromSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise restoreFromSnapshotAsync(array $args = []) + * @method \Aws\Result shareDirectory(array $args = []) + * @method \GuzzleHttp\Promise\Promise shareDirectoryAsync(array $args = []) + * @method \Aws\Result startSchemaExtension(array $args = []) + * @method \GuzzleHttp\Promise\Promise startSchemaExtensionAsync(array $args = []) + * @method \Aws\Result unshareDirectory(array $args = []) + * @method \GuzzleHttp\Promise\Promise unshareDirectoryAsync(array $args = []) + * @method \Aws\Result updateConditionalForwarder(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateConditionalForwarderAsync(array $args = []) + * @method \Aws\Result updateNumberOfDomainControllers(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateNumberOfDomainControllersAsync(array $args = []) + * @method \Aws\Result updateRadius(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRadiusAsync(array $args = []) + * @method \Aws\Result updateTrust(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateTrustAsync(array $args = []) + * @method \Aws\Result verifyTrust(array $args = []) + * @method \GuzzleHttp\Promise\Promise verifyTrustAsync(array $args = []) + */ +class DirectoryServiceClient extends AwsClient {} diff --git a/lib/aws/Aws/DirectoryService/Exception/DirectoryServiceException.php b/lib/aws/Aws/DirectoryService/Exception/DirectoryServiceException.php new file mode 100644 index 0000000..e6b72f5 --- /dev/null +++ b/lib/aws/Aws/DirectoryService/Exception/DirectoryServiceException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\DirectoryService\Exception; + +use Aws\Exception\AwsException; + +/** + * AWS Directory Service Exception + */ +class DirectoryServiceException extends AwsException {} diff --git a/lib/aws/Aws/DocDB/DocDBClient.php b/lib/aws/Aws/DocDB/DocDBClient.php new file mode 100644 index 0000000..b7da344 --- /dev/null +++ b/lib/aws/Aws/DocDB/DocDBClient.php @@ -0,0 +1,87 @@ +<?php +namespace Aws\DocDB; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon DocumentDB with MongoDB compatibility** service. + * @method \Aws\Result addTagsToResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsToResourceAsync(array $args = []) + * @method \Aws\Result applyPendingMaintenanceAction(array $args = []) + * @method \GuzzleHttp\Promise\Promise applyPendingMaintenanceActionAsync(array $args = []) + * @method \Aws\Result copyDBClusterParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise copyDBClusterParameterGroupAsync(array $args = []) + * @method \Aws\Result copyDBClusterSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise copyDBClusterSnapshotAsync(array $args = []) + * @method \Aws\Result createDBCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDBClusterAsync(array $args = []) + * @method \Aws\Result createDBClusterParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDBClusterParameterGroupAsync(array $args = []) + * @method \Aws\Result createDBClusterSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDBClusterSnapshotAsync(array $args = []) + * @method \Aws\Result createDBInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDBInstanceAsync(array $args = []) + * @method \Aws\Result createDBSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDBSubnetGroupAsync(array $args = []) + * @method \Aws\Result deleteDBCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDBClusterAsync(array $args = []) + * @method \Aws\Result deleteDBClusterParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDBClusterParameterGroupAsync(array $args = []) + * @method \Aws\Result deleteDBClusterSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDBClusterSnapshotAsync(array $args = []) + * @method \Aws\Result deleteDBInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDBInstanceAsync(array $args = []) + * @method \Aws\Result deleteDBSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDBSubnetGroupAsync(array $args = []) + * @method \Aws\Result describeDBClusterParameterGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBClusterParameterGroupsAsync(array $args = []) + * @method \Aws\Result describeDBClusterParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBClusterParametersAsync(array $args = []) + * @method \Aws\Result describeDBClusterSnapshotAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBClusterSnapshotAttributesAsync(array $args = []) + * @method \Aws\Result describeDBClusterSnapshots(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBClusterSnapshotsAsync(array $args = []) + * @method \Aws\Result describeDBClusters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBClustersAsync(array $args = []) + * @method \Aws\Result describeDBEngineVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBEngineVersionsAsync(array $args = []) + * @method \Aws\Result describeDBInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBInstancesAsync(array $args = []) + * @method \Aws\Result describeDBSubnetGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBSubnetGroupsAsync(array $args = []) + * @method \Aws\Result describeEngineDefaultClusterParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEngineDefaultClusterParametersAsync(array $args = []) + * @method \Aws\Result describeEventCategories(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventCategoriesAsync(array $args = []) + * @method \Aws\Result describeEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventsAsync(array $args = []) + * @method \Aws\Result describeOrderableDBInstanceOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeOrderableDBInstanceOptionsAsync(array $args = []) + * @method \Aws\Result describePendingMaintenanceActions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describePendingMaintenanceActionsAsync(array $args = []) + * @method \Aws\Result failoverDBCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise failoverDBClusterAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result modifyDBCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyDBClusterAsync(array $args = []) + * @method \Aws\Result modifyDBClusterParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyDBClusterParameterGroupAsync(array $args = []) + * @method \Aws\Result modifyDBClusterSnapshotAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyDBClusterSnapshotAttributeAsync(array $args = []) + * @method \Aws\Result modifyDBInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyDBInstanceAsync(array $args = []) + * @method \Aws\Result modifyDBSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyDBSubnetGroupAsync(array $args = []) + * @method \Aws\Result rebootDBInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise rebootDBInstanceAsync(array $args = []) + * @method \Aws\Result removeTagsFromResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeTagsFromResourceAsync(array $args = []) + * @method \Aws\Result resetDBClusterParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise resetDBClusterParameterGroupAsync(array $args = []) + * @method \Aws\Result restoreDBClusterFromSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise restoreDBClusterFromSnapshotAsync(array $args = []) + * @method \Aws\Result restoreDBClusterToPointInTime(array $args = []) + * @method \GuzzleHttp\Promise\Promise restoreDBClusterToPointInTimeAsync(array $args = []) + */ +class DocDBClient extends AwsClient {} diff --git a/lib/aws/Aws/DocDB/Exception/DocDBException.php b/lib/aws/Aws/DocDB/Exception/DocDBException.php new file mode 100644 index 0000000..046b0cf --- /dev/null +++ b/lib/aws/Aws/DocDB/Exception/DocDBException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\DocDB\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon DocumentDB with MongoDB compatibility** service. + */ +class DocDBException extends AwsException {} diff --git a/lib/aws/Aws/DoctrineCacheAdapter.php b/lib/aws/Aws/DoctrineCacheAdapter.php new file mode 100644 index 0000000..132a347 --- /dev/null +++ b/lib/aws/Aws/DoctrineCacheAdapter.php @@ -0,0 +1,55 @@ +<?php +namespace Aws; + +use Doctrine\Common\Cache\Cache; + +class DoctrineCacheAdapter implements CacheInterface, Cache +{ + /** @var Cache */ + private $cache; + + public function __construct(Cache $cache) + { + $this->cache = $cache; + } + + public function get($key) + { + return $this->cache->fetch($key); + } + + public function fetch($key) + { + return $this->get($key); + } + + public function set($key, $value, $ttl = 0) + { + return $this->cache->save($key, $value, $ttl); + } + + public function save($key, $value, $ttl = 0) + { + return $this->set($key, $value, $ttl); + } + + public function remove($key) + { + return $this->cache->delete($key); + } + + public function delete($key) + { + return $this->remove($key); + } + + public function contains($key) + { + return $this->cache->contains($key); + } + + public function getStats() + { + return $this->cache->getStats(); + } +} diff --git a/lib/aws/Aws/DynamoDb/BinaryValue.php b/lib/aws/Aws/DynamoDb/BinaryValue.php new file mode 100644 index 0000000..1b2965d --- /dev/null +++ b/lib/aws/Aws/DynamoDb/BinaryValue.php @@ -0,0 +1,36 @@ +<?php +namespace Aws\DynamoDb; + +use GuzzleHttp\Psr7; + +/** + * Special object to represent a DynamoDB binary (B) value. + */ +class BinaryValue implements \JsonSerializable +{ + /** @var string Binary value. */ + private $value; + + /** + * @param mixed $value A binary value compatible with Guzzle streams. + * + * @see GuzzleHttp\Stream\Stream::factory + */ + public function __construct($value) + { + if (!is_string($value)) { + $value = Psr7\stream_for($value); + } + $this->value = (string) $value; + } + + public function jsonSerialize() + { + return $this->value; + } + + public function __toString() + { + return $this->value; + } +} diff --git a/lib/aws/Aws/DynamoDb/DynamoDbClient.php b/lib/aws/Aws/DynamoDb/DynamoDbClient.php new file mode 100644 index 0000000..5d1b37a --- /dev/null +++ b/lib/aws/Aws/DynamoDb/DynamoDbClient.php @@ -0,0 +1,148 @@ +<?php +namespace Aws\DynamoDb; + +use Aws\Api\Parser\Crc32ValidatingParser; +use Aws\AwsClient; +use Aws\ClientResolver; +use Aws\Exception\AwsException; +use Aws\HandlerList; +use Aws\Middleware; +use Aws\RetryMiddleware; + +/** + * This client is used to interact with the **Amazon DynamoDB** service. + * + * @method \Aws\Result batchGetItem(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetItemAsync(array $args = []) + * @method \Aws\Result batchWriteItem(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchWriteItemAsync(array $args = []) + * @method \Aws\Result createTable(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTableAsync(array $args = []) + * @method \Aws\Result deleteItem(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteItemAsync(array $args = []) + * @method \Aws\Result deleteTable(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTableAsync(array $args = []) + * @method \Aws\Result describeTable(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTableAsync(array $args = []) + * @method \Aws\Result getItem(array $args = []) + * @method \GuzzleHttp\Promise\Promise getItemAsync(array $args = []) + * @method \Aws\Result listTables(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTablesAsync(array $args = []) + * @method \Aws\Result putItem(array $args = []) + * @method \GuzzleHttp\Promise\Promise putItemAsync(array $args = []) + * @method \Aws\Result query(array $args = []) + * @method \GuzzleHttp\Promise\Promise queryAsync(array $args = []) + * @method \Aws\Result scan(array $args = []) + * @method \GuzzleHttp\Promise\Promise scanAsync(array $args = []) + * @method \Aws\Result updateItem(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateItemAsync(array $args = []) + * @method \Aws\Result updateTable(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateTableAsync(array $args = []) + * @method \Aws\Result createBackup(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise createBackupAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result createGlobalTable(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise createGlobalTableAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result deleteBackup(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise deleteBackupAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result describeBackup(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise describeBackupAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result describeContinuousBackups(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise describeContinuousBackupsAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result describeEndpoints(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise describeEndpointsAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result describeGlobalTable(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise describeGlobalTableAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result describeGlobalTableSettings(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise describeGlobalTableSettingsAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result describeLimits(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise describeLimitsAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result describeTimeToLive(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise describeTimeToLiveAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result listBackups(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise listBackupsAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result listGlobalTables(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise listGlobalTablesAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result listTagsOfResource(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise listTagsOfResourceAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result restoreTableFromBackup(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise restoreTableFromBackupAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result restoreTableToPointInTime(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise restoreTableToPointInTimeAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result tagResource(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result transactGetItems(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise transactGetItemsAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result transactWriteItems(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise transactWriteItemsAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result untagResource(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result updateContinuousBackups(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise updateContinuousBackupsAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result updateGlobalTable(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise updateGlobalTableAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result updateGlobalTableSettings(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise updateGlobalTableSettingsAsync(array $args = []) (supported in versions 2012-08-10) + * @method \Aws\Result updateTimeToLive(array $args = []) (supported in versions 2012-08-10) + * @method \GuzzleHttp\Promise\Promise updateTimeToLiveAsync(array $args = []) (supported in versions 2012-08-10) + */ +class DynamoDbClient extends AwsClient +{ + public static function getArguments() + { + $args = parent::getArguments(); + $args['retries']['default'] = 10; + $args['retries']['fn'] = [__CLASS__, '_applyRetryConfig']; + $args['api_provider']['fn'] = [__CLASS__, '_applyApiProvider']; + + return $args; + } + + /** + * 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 = []) + { + $handler = SessionHandler::fromClient($this, $config); + $handler->register(); + + return $handler; + } + + /** @internal */ + public static function _applyRetryConfig($value, array &$args, HandlerList $list) + { + if (!$value) { + return; + } + + $list->appendSign( + Middleware::retry( + RetryMiddleware::createDefaultDecider( + $value, + ['errorCodes' => ['TransactionInProgressException']] + ), + function ($retries) { + return $retries + ? RetryMiddleware::exponentialDelay($retries) / 2 + : 0; + }, + isset($args['stats']['retries']) + ? (bool) $args['stats']['retries'] + : false + ), + 'retry' + ); + } + + /** @internal */ + public static function _applyApiProvider($value, array &$args, HandlerList $list) + { + ClientResolver::_apply_api_provider($value, $args, $list); + $args['parser'] = new Crc32ValidatingParser($args['parser']); + } +} diff --git a/lib/aws/Aws/DynamoDb/Exception/DynamoDbException.php b/lib/aws/Aws/DynamoDb/Exception/DynamoDbException.php new file mode 100644 index 0000000..0360388 --- /dev/null +++ b/lib/aws/Aws/DynamoDb/Exception/DynamoDbException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\DynamoDb\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon DynamoDB service. + */ +class DynamoDbException extends AwsException {} diff --git a/lib/aws/Aws/DynamoDb/LockingSessionConnection.php b/lib/aws/Aws/DynamoDb/LockingSessionConnection.php new file mode 100644 index 0000000..5bd9abc --- /dev/null +++ b/lib/aws/Aws/DynamoDb/LockingSessionConnection.php @@ -0,0 +1,62 @@ +<?php +namespace Aws\DynamoDb; + +use Aws\DynamoDb\Exception\DynamoDbException; + +/** + * The locking connection adds locking logic to the read operation. + */ +class LockingSessionConnection extends StandardSessionConnection +{ + public function __construct(DynamoDbClient $client, array $config = []) + { + parent::__construct($client, $config + [ + 'max_lock_wait_time' => 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(rand( + $this->config['min_lock_retry_microtime'], + $this->config['max_lock_retry_microtime'] + )); + } else { + break; + } + } + } + } +} diff --git a/lib/aws/Aws/DynamoDb/Marshaler.php b/lib/aws/Aws/DynamoDb/Marshaler.php new file mode 100644 index 0000000..397504f --- /dev/null +++ b/lib/aws/Aws/DynamoDb/Marshaler.php @@ -0,0 +1,324 @@ +<?php +namespace Aws\DynamoDb; + +use Psr\Http\Message\StreamInterface; + +/** + * Marshals and unmarshals JSON documents and PHP arrays into DynamoDB items. + */ +class Marshaler +{ + /** @var array Default options to merge into provided options. */ + private static $defaultOptions = [ + 'ignore_invalid' => 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); + } + + /** + * 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 Item formatted for DynamoDB. + * @throws \InvalidArgumentException if the JSON is invalid. + */ + public function marshalJson($json) + { + $data = json_decode($json); + if (!($data instanceof \stdClass)) { + throw new \InvalidArgumentException( + 'The JSON document must be valid and be an object at its root.' + ); + } + + return current($this->marshalValue($data)); + } + + /** + * 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 Item formatted for DynamoDB. + */ + public function marshalItem($item) + { + return current($this->marshalValue($item)); + } + + /** + * 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. + * + * @return array Attribute formatted for DynamoDB. + * @throws \UnexpectedValueException if the value cannot be marshaled. + */ + public function marshalValue($value) + { + $type = gettype($value); + + // 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 + ) { + 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); + } + + return [$previousType . 'S' => array_values(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'; + } + } + } + return [$dbType => $data]; + } + + // 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'); + } + + /** + * Unmarshal a document (item) from a DynamoDB operation result into a JSON + * document string. + * + * @param array $data Item/document from a DynamoDB result. + * @param int $jsonEncodeFlags Flags to use with `json_encode()`. + * + * @return string + */ + public function unmarshalJson(array $data, $jsonEncodeFlags = 0) + { + return json_encode( + $this->unmarshalValue(['M' => $data], true), + $jsonEncodeFlags + ); + } + + /** + * Unmarshal an item from a DynamoDB operation result into a native PHP + * array. If you set $mapAsObject to true, then a stdClass value will be + * returned instead. + * + * @param array $data Item from a DynamoDB result. + * @param bool $mapAsObject Whether maps should be represented as stdClass. + * + * @return array|\stdClass + */ + public function unmarshalItem(array $data, $mapAsObject = false) + { + return $this->unmarshalValue(['M' => $data], $mapAsObject); + } + + /** + * Unmarshal a value from a DynamoDB operation result into a native PHP + * value. Will return a scalar, array, or (if you set $mapAsObject to true) + * stdClass value. + * + * @param array $value Value from a DynamoDB result. + * @param bool $mapAsObject Whether maps should be represented as stdClass. + * + * @return mixed + * @throws \UnexpectedValueException + */ + public function unmarshalValue(array $value, $mapAsObject = false) + { + $type = key($value); + $value = $value[$type]; + switch ($type) { + case 'S': + case 'BOOL': + return $value; + case 'NULL': + return null; + case 'N': + if ($this->options['wrap_numbers']) { + return new NumberValue($value); + } + + // Use type coercion to unmarshal numbers to int/float. + return $value + 0; + case 'M': + if ($mapAsObject) { + $data = new \stdClass; + foreach ($value as $k => $v) { + $data->$k = $this->unmarshalValue($v, $mapAsObject); + } + return $data; + } + // NOBREAK: Unmarshal M the same way as L, for arrays. + case 'L': + foreach ($value as $k => $v) { + $value[$k] = $this->unmarshalValue($v, $mapAsObject); + } + return $value; + case 'B': + return new BinaryValue($value); + case 'SS': + case 'NS': + case 'BS': + foreach ($value as $k => $v) { + $value[$k] = $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; + } + + if ($this->options['nullify_invalid']) { + return ['NULL' => true]; + } + + throw new \UnexpectedValueException("Marshaling error: {$message}."); + } +} diff --git a/lib/aws/Aws/DynamoDb/NumberValue.php b/lib/aws/Aws/DynamoDb/NumberValue.php new file mode 100644 index 0000000..093143b --- /dev/null +++ b/lib/aws/Aws/DynamoDb/NumberValue.php @@ -0,0 +1,29 @@ +<?php +namespace Aws\DynamoDb; + +/** + * Special object to represent a DynamoDB Number (N) value. + */ +class NumberValue implements \JsonSerializable +{ + /** @var string Number value. */ + private $value; + + /** + * @param string|int|float $value A number value. + */ + public function __construct($value) + { + $this->value = (string) $value; + } + + public function jsonSerialize() + { + return $this->value; + } + + public function __toString() + { + return $this->value; + } +} diff --git a/lib/aws/Aws/DynamoDb/SessionConnectionInterface.php b/lib/aws/Aws/DynamoDb/SessionConnectionInterface.php new file mode 100644 index 0000000..0c46a7d --- /dev/null +++ b/lib/aws/Aws/DynamoDb/SessionConnectionInterface.php @@ -0,0 +1,45 @@ +<?php +namespace Aws\DynamoDb; + +/** + * The session connection provides the underlying logic for interacting with + * Amazon DynamoDB and performs all of the reading and writing operations. + */ +interface SessionConnectionInterface +{ + /** + * Reads session data from DynamoDB + * + * @param string $id Session ID + * + * @return array + */ + public function read($id); + + /** + * Writes session data to DynamoDB + * + * @param string $id Session ID + * @param string $data Serialized session data + * @param bool $isChanged Whether or not the data has changed + * + * @return bool + */ + public function write($id, $data, $isChanged); + + /** + * Deletes session record from DynamoDB + * + * @param string $id Session ID + * + * @return bool + */ + public function delete($id); + + /** + * Performs garbage collection on the sessions stored in the DynamoDB + * + * @return bool + */ + public function deleteExpired(); +} diff --git a/lib/aws/Aws/DynamoDb/SessionHandler.php b/lib/aws/Aws/DynamoDb/SessionHandler.php new file mode 100644 index 0000000..3382682 --- /dev/null +++ b/lib/aws/Aws/DynamoDb/SessionHandler.php @@ -0,0 +1,227 @@ +<?php +namespace Aws\DynamoDb; + +/** + * Provides an interface for using Amazon DynamoDB as a session store by hooking + * into PHP's session handler hooks. Once registered, You may use the native + * `$_SESSION` superglobal and session functions, and the sessions will be + * stored automatically in DynamoDB. DynamoDB is a great session storage + * solution due to its speed, scalability, and fault tolerance. + * + * For maximum performance, we recommend that you keep the size of your sessions + * small. Locking is disabled by default, since it can drive up latencies and + * costs under high traffic. Only turn it on if you need it. + * + * By far, the most expensive operation is garbage collection. Therefore, we + * encourage you to carefully consider your session garbage collection strategy. + * Note: the DynamoDB Session Handler does not allow garbage collection to be + * triggered randomly. You must run garbage collection manually or through other + * automated means using a cron job or similar scheduling technique. + */ +class SessionHandler implements \SessionHandlerInterface +{ + /** @var SessionConnectionInterface Session save logic.*/ + private $connection; + + /** @var string Session save path. */ + private $savePath; + + /** @var string Session name. */ + private $sessionName; + + /** @var string The last known session ID */ + private $openSessionId = ''; + + /** @var string Stores serialized data for tracking changes. */ + private $dataRead = ''; + + /** @var bool Keeps track of whether the session has been written. */ + private $sessionWritten = false; + + /** + * Creates a new DynamoDB Session Handler. + * + * The configuration array accepts the following array keys and values: + * - table_name: Name of table to store the sessions. + * - hash_key: Name of hash key in table. Default: "id". + * - session_lifetime: Lifetime of inactive sessions expiration. + * - consistent_read: Whether or not to use consistent reads. + * - batch_config: Batch options used for garbage collection. + * - locking: Whether or not to use session locking. + * - max_lock_wait_time: Max time (s) to wait for lock acquisition. + * - min_lock_retry_microtime: Min time (µs) to wait between lock attempts. + * - max_lock_retry_microtime: Max time (µs) to wait between lock attempts. + * + * @param DynamoDbClient $client Client for doing DynamoDB operations + * @param array $config Configuration for the Session Handler + * + * @return SessionHandler + */ + public static function fromClient(DynamoDbClient $client, array $config = []) + { + $config += ['locking' => false]; + if ($config['locking']) { + $connection = new LockingSessionConnection($client, $config); + } else { + $connection = new StandardSessionConnection($client, $config); + } + + return new static($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; + + return true; + } + + /** + * Close a session from writing. + * + * @return bool Success + */ + public function close() + { + $id = session_id(); + // Make sure the session is unlocked and the expiration time is updated, + // even if the write did not occur + if ($this->openSessionId !== $id || !$this->sessionWritten) { + $result = $this->connection->write($this->formatId($id), '', false); + $this->sessionWritten = (bool) $result; + } + + return $this->sessionWritten; + } + + /** + * Read a session stored in DynamoDB. + * + * @param string $id Session ID. + * + * @return string Session data. + */ + public function read($id) + { + $this->openSessionId = $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) + { + $changed = $id !== $this->openSessionId + || $data !== $this->dataRead; + $this->openSessionId = $id; + + // Write the session data using the selected locking strategy + $this->sessionWritten = $this->connection + ->write($this->formatId($id), $data, $changed); + + 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) + { + $this->openSessionId = $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/Aws/DynamoDb/SetValue.php b/lib/aws/Aws/DynamoDb/SetValue.php new file mode 100644 index 0000000..5bee62b --- /dev/null +++ b/lib/aws/Aws/DynamoDb/SetValue.php @@ -0,0 +1,44 @@ +<?php +namespace Aws\DynamoDb; + +/** + * Special object to represent a DynamoDB set (SS/NS/BS) value. + */ +class SetValue implements \JsonSerializable, \Countable, \IteratorAggregate +{ + /** @var array Values in the set as provided. */ + private $values; + + /** + * @param array $values Values in the set. + */ + public function __construct(array $values) + { + $this->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/Aws/DynamoDb/StandardSessionConnection.php b/lib/aws/Aws/DynamoDb/StandardSessionConnection.php new file mode 100644 index 0000000..4abff59 --- /dev/null +++ b/lib/aws/Aws/DynamoDb/StandardSessionConnection.php @@ -0,0 +1,149 @@ +<?php +namespace Aws\DynamoDb; + +use Aws\DynamoDb\Exception\DynamoDbException; + +/** + * The standard connection performs the read and write operations to DynamoDB. + */ +class StandardSessionConnection implements SessionConnectionInterface +{ + /** @var DynamoDbClient The DynamoDB client */ + protected $client; + + /** @var array The session handler config options */ + protected $config; + + /** + * @param DynamoDbClient $client DynamoDB client + * @param array $config Session handler config + */ + public function __construct(DynamoDbClient $client, array $config = []) + { + $this->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 $this->triggerError("Error writing session $id: {$e->getMessage()}"); + } + } + + public function delete($id) + { + try { + return (bool) $this->client->deleteItem([ + 'TableName' => $this->config['table_name'], + 'Key' => $this->formatKey($id), + ]); + } catch (DynamoDbException $e) { + return $this->triggerError("Error deleting session $id: {$e->getMessage()}"); + } + } + + 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]]; + } + + /** + * @param string $error + * + * @return bool + */ + protected function triggerError($error) + { + trigger_error($error, E_USER_WARNING); + + return false; + } +} diff --git a/lib/aws/Aws/DynamoDb/WriteRequestBatch.php b/lib/aws/Aws/DynamoDb/WriteRequestBatch.php new file mode 100644 index 0000000..c5e5eaf --- /dev/null +++ b/lib/aws/Aws/DynamoDb/WriteRequestBatch.php @@ -0,0 +1,266 @@ +<?php +namespace Aws\DynamoDb; + +use Aws\CommandInterface; +use Aws\CommandPool; +use Aws\Exception\AwsException; +use Aws\ResultInterface; + +/** + * The WriteRequestBatch is an object that is capable of efficiently sending + * DynamoDB BatchWriteItem requests from queued up put and delete item requests. + * requests. The batch attempts to send the requests with the fewest requests + * to DynamoDB as possible and also re-queues any unprocessed items to ensure + * that all items are sent. + */ +class WriteRequestBatch +{ + /** @var DynamoDbClient DynamoDB client used to perform write operations. */ + private $client; + + /** @var array Configuration options for the batch. */ + private $config; + + /** @var array Queue of pending put/delete requests in the batch. */ + private $queue; + + /** + * Creates a WriteRequestBatch object that is capable of efficiently sending + * DynamoDB BatchWriteItem requests from queued up Put and Delete requests. + * + * @param DynamoDbClient $client DynamoDB client used to send batches. + * @param array $config Batch configuration options. + * - table: (string) DynamoDB table used by the batch, this can be + * overridden for each individual put() or delete() call. + * - batch_size: (int) The size of each batch (default: 25). The batch + * size must be between 2 and 25. If you are sending batches of large + * items, you may consider lowering the batch size, otherwise, you + * should use 25. + * - pool_size: (int) This number dictates how many BatchWriteItem + * requests you would like to do in parallel. For example, if the + * "batch_size" is 25, and "pool_size" is 3, then you would send 3 + * BatchWriteItem requests at a time, each with 25 items. Please keep + * your throughput in mind when choosing the "pool_size" option. + * - autoflush: (bool) This option allows the batch to automatically + * flush once there are enough items (i.e., "batch_size" * "pool_size") + * in the queue. This defaults to true, so you must set this to false + * to stop autoflush. + * - before: (callable) Executed before every BatchWriteItem operation. + * It should accept an \Aws\CommandInterface object as its argument. + * - error: Executed if an error was encountered executing a, + * BatchWriteItem operation, otherwise errors are ignored. It should + * accept an \Aws\Exception\AwsException as its argument. + * + * @throws \InvalidArgumentException if the batch size is not between 2 and 25. + */ + public function __construct(DynamoDbClient $client, array $config = []) + { + // Apply defaults + $config += [ + 'table' => 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' => $request, + ]; + } + } + } + + /** + * 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/Aws/DynamoDbStreams/DynamoDbStreamsClient.php b/lib/aws/Aws/DynamoDbStreams/DynamoDbStreamsClient.php new file mode 100644 index 0000000..7c2cb42 --- /dev/null +++ b/lib/aws/Aws/DynamoDbStreams/DynamoDbStreamsClient.php @@ -0,0 +1,29 @@ +<?php +namespace Aws\DynamoDbStreams; + +use Aws\AwsClient; +use Aws\DynamoDb\DynamoDbClient; + +/** + * This client is used to interact with the **Amazon DynamoDb Streams** service. + * + * @method \Aws\Result describeStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStreamAsync(array $args = []) + * @method \Aws\Result getRecords(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRecordsAsync(array $args = []) + * @method \Aws\Result getShardIterator(array $args = []) + * @method \GuzzleHttp\Promise\Promise getShardIteratorAsync(array $args = []) + * @method \Aws\Result listStreams(array $args = []) + * @method \GuzzleHttp\Promise\Promise listStreamsAsync(array $args = []) + */ +class DynamoDbStreamsClient extends AwsClient +{ + public static function getArguments() + { + $args = parent::getArguments(); + $args['retries']['default'] = 11; + $args['retries']['fn'] = [DynamoDbClient::class, '_applyRetryConfig']; + + return $args; + } +} \ No newline at end of file diff --git a/lib/aws/Aws/DynamoDbStreams/Exception/DynamoDbStreamsException.php b/lib/aws/Aws/DynamoDbStreams/Exception/DynamoDbStreamsException.php new file mode 100644 index 0000000..ff73615 --- /dev/null +++ b/lib/aws/Aws/DynamoDbStreams/Exception/DynamoDbStreamsException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\DynamoDbStreams\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon DynamoDB Streams service. + */ +class DynamoDbStreamsException extends AwsException {} diff --git a/lib/aws/Aws/EKS/EKSClient.php b/lib/aws/Aws/EKS/EKSClient.php new file mode 100644 index 0000000..6accf98 --- /dev/null +++ b/lib/aws/Aws/EKS/EKSClient.php @@ -0,0 +1,25 @@ +<?php +namespace Aws\EKS; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Elastic Container Service for Kubernetes** service. + * @method \Aws\Result createCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise createClusterAsync(array $args = []) + * @method \Aws\Result deleteCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteClusterAsync(array $args = []) + * @method \Aws\Result describeCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeClusterAsync(array $args = []) + * @method \Aws\Result describeUpdate(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeUpdateAsync(array $args = []) + * @method \Aws\Result listClusters(array $args = []) + * @method \GuzzleHttp\Promise\Promise listClustersAsync(array $args = []) + * @method \Aws\Result listUpdates(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUpdatesAsync(array $args = []) + * @method \Aws\Result updateClusterConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateClusterConfigAsync(array $args = []) + * @method \Aws\Result updateClusterVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateClusterVersionAsync(array $args = []) + */ +class EKSClient extends AwsClient {} diff --git a/lib/aws/Aws/EKS/Exception/EKSException.php b/lib/aws/Aws/EKS/Exception/EKSException.php new file mode 100644 index 0000000..dd60d79 --- /dev/null +++ b/lib/aws/Aws/EKS/Exception/EKSException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\EKS\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Elastic Container Service for Kubernetes** service. + */ +class EKSException extends AwsException {} diff --git a/lib/aws/Aws/Ec2/Ec2Client.php b/lib/aws/Aws/Ec2/Ec2Client.php new file mode 100644 index 0000000..9a42c7f --- /dev/null +++ b/lib/aws/Aws/Ec2/Ec2Client.php @@ -0,0 +1,718 @@ +<?php +namespace Aws\Ec2; + +use Aws\AwsClient; +use Aws\Api\Service; +use Aws\Api\DocModel; +use Aws\Api\ApiProvider; +use Aws\PresignUrlMiddleware; + +/** + * Client used to interact with Amazon EC2. + * + * @method \Aws\Result acceptVpcPeeringConnection(array $args = []) + * @method \GuzzleHttp\Promise\Promise acceptVpcPeeringConnectionAsync(array $args = []) + * @method \Aws\Result allocateAddress(array $args = []) + * @method \GuzzleHttp\Promise\Promise allocateAddressAsync(array $args = []) + * @method \Aws\Result allocateHosts(array $args = []) + * @method \GuzzleHttp\Promise\Promise allocateHostsAsync(array $args = []) + * @method \Aws\Result assignPrivateIpAddresses(array $args = []) + * @method \GuzzleHttp\Promise\Promise assignPrivateIpAddressesAsync(array $args = []) + * @method \Aws\Result associateAddress(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateAddressAsync(array $args = []) + * @method \Aws\Result associateDhcpOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateDhcpOptionsAsync(array $args = []) + * @method \Aws\Result associateRouteTable(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateRouteTableAsync(array $args = []) + * @method \Aws\Result attachClassicLinkVpc(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachClassicLinkVpcAsync(array $args = []) + * @method \Aws\Result attachInternetGateway(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachInternetGatewayAsync(array $args = []) + * @method \Aws\Result attachNetworkInterface(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachNetworkInterfaceAsync(array $args = []) + * @method \Aws\Result attachVolume(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachVolumeAsync(array $args = []) + * @method \Aws\Result attachVpnGateway(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachVpnGatewayAsync(array $args = []) + * @method \Aws\Result authorizeSecurityGroupEgress(array $args = []) + * @method \GuzzleHttp\Promise\Promise authorizeSecurityGroupEgressAsync(array $args = []) + * @method \Aws\Result authorizeSecurityGroupIngress(array $args = []) + * @method \GuzzleHttp\Promise\Promise authorizeSecurityGroupIngressAsync(array $args = []) + * @method \Aws\Result bundleInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise bundleInstanceAsync(array $args = []) + * @method \Aws\Result cancelBundleTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelBundleTaskAsync(array $args = []) + * @method \Aws\Result cancelConversionTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelConversionTaskAsync(array $args = []) + * @method \Aws\Result cancelExportTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelExportTaskAsync(array $args = []) + * @method \Aws\Result cancelImportTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelImportTaskAsync(array $args = []) + * @method \Aws\Result cancelReservedInstancesListing(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelReservedInstancesListingAsync(array $args = []) + * @method \Aws\Result cancelSpotFleetRequests(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelSpotFleetRequestsAsync(array $args = []) + * @method \Aws\Result cancelSpotInstanceRequests(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelSpotInstanceRequestsAsync(array $args = []) + * @method \Aws\Result confirmProductInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise confirmProductInstanceAsync(array $args = []) + * @method \Aws\Result copyImage(array $args = []) + * @method \GuzzleHttp\Promise\Promise copyImageAsync(array $args = []) + * @method \Aws\Result copySnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise copySnapshotAsync(array $args = []) + * @method \Aws\Result createCustomerGateway(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCustomerGatewayAsync(array $args = []) + * @method \Aws\Result createDhcpOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDhcpOptionsAsync(array $args = []) + * @method \Aws\Result createFlowLogs(array $args = []) + * @method \GuzzleHttp\Promise\Promise createFlowLogsAsync(array $args = []) + * @method \Aws\Result createImage(array $args = []) + * @method \GuzzleHttp\Promise\Promise createImageAsync(array $args = []) + * @method \Aws\Result createInstanceExportTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise createInstanceExportTaskAsync(array $args = []) + * @method \Aws\Result createInternetGateway(array $args = []) + * @method \GuzzleHttp\Promise\Promise createInternetGatewayAsync(array $args = []) + * @method \Aws\Result createKeyPair(array $args = []) + * @method \GuzzleHttp\Promise\Promise createKeyPairAsync(array $args = []) + * @method \Aws\Result createNatGateway(array $args = []) + * @method \GuzzleHttp\Promise\Promise createNatGatewayAsync(array $args = []) + * @method \Aws\Result createNetworkAcl(array $args = []) + * @method \GuzzleHttp\Promise\Promise createNetworkAclAsync(array $args = []) + * @method \Aws\Result createNetworkAclEntry(array $args = []) + * @method \GuzzleHttp\Promise\Promise createNetworkAclEntryAsync(array $args = []) + * @method \Aws\Result createNetworkInterface(array $args = []) + * @method \GuzzleHttp\Promise\Promise createNetworkInterfaceAsync(array $args = []) + * @method \Aws\Result createPlacementGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPlacementGroupAsync(array $args = []) + * @method \Aws\Result createReservedInstancesListing(array $args = []) + * @method \GuzzleHttp\Promise\Promise createReservedInstancesListingAsync(array $args = []) + * @method \Aws\Result createRoute(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRouteAsync(array $args = []) + * @method \Aws\Result createRouteTable(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRouteTableAsync(array $args = []) + * @method \Aws\Result createSecurityGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSecurityGroupAsync(array $args = []) + * @method \Aws\Result createSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSnapshotAsync(array $args = []) + * @method \Aws\Result createSpotDatafeedSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSpotDatafeedSubscriptionAsync(array $args = []) + * @method \Aws\Result createSubnet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSubnetAsync(array $args = []) + * @method \Aws\Result createTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTagsAsync(array $args = []) + * @method \Aws\Result createVolume(array $args = []) + * @method \GuzzleHttp\Promise\Promise createVolumeAsync(array $args = []) + * @method \Aws\Result createVpc(array $args = []) + * @method \GuzzleHttp\Promise\Promise createVpcAsync(array $args = []) + * @method \Aws\Result createVpcEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise createVpcEndpointAsync(array $args = []) + * @method \Aws\Result createVpcPeeringConnection(array $args = []) + * @method \GuzzleHttp\Promise\Promise createVpcPeeringConnectionAsync(array $args = []) + * @method \Aws\Result createVpnConnection(array $args = []) + * @method \GuzzleHttp\Promise\Promise createVpnConnectionAsync(array $args = []) + * @method \Aws\Result createVpnConnectionRoute(array $args = []) + * @method \GuzzleHttp\Promise\Promise createVpnConnectionRouteAsync(array $args = []) + * @method \Aws\Result createVpnGateway(array $args = []) + * @method \GuzzleHttp\Promise\Promise createVpnGatewayAsync(array $args = []) + * @method \Aws\Result deleteCustomerGateway(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCustomerGatewayAsync(array $args = []) + * @method \Aws\Result deleteDhcpOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDhcpOptionsAsync(array $args = []) + * @method \Aws\Result deleteFlowLogs(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteFlowLogsAsync(array $args = []) + * @method \Aws\Result deleteInternetGateway(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteInternetGatewayAsync(array $args = []) + * @method \Aws\Result deleteKeyPair(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteKeyPairAsync(array $args = []) + * @method \Aws\Result deleteNatGateway(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteNatGatewayAsync(array $args = []) + * @method \Aws\Result deleteNetworkAcl(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteNetworkAclAsync(array $args = []) + * @method \Aws\Result deleteNetworkAclEntry(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteNetworkAclEntryAsync(array $args = []) + * @method \Aws\Result deleteNetworkInterface(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteNetworkInterfaceAsync(array $args = []) + * @method \Aws\Result deletePlacementGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePlacementGroupAsync(array $args = []) + * @method \Aws\Result deleteRoute(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRouteAsync(array $args = []) + * @method \Aws\Result deleteRouteTable(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRouteTableAsync(array $args = []) + * @method \Aws\Result deleteSecurityGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSecurityGroupAsync(array $args = []) + * @method \Aws\Result deleteSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSnapshotAsync(array $args = []) + * @method \Aws\Result deleteSpotDatafeedSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSpotDatafeedSubscriptionAsync(array $args = []) + * @method \Aws\Result deleteSubnet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSubnetAsync(array $args = []) + * @method \Aws\Result deleteTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTagsAsync(array $args = []) + * @method \Aws\Result deleteVolume(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVolumeAsync(array $args = []) + * @method \Aws\Result deleteVpc(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVpcAsync(array $args = []) + * @method \Aws\Result deleteVpcEndpoints(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVpcEndpointsAsync(array $args = []) + * @method \Aws\Result deleteVpcPeeringConnection(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVpcPeeringConnectionAsync(array $args = []) + * @method \Aws\Result deleteVpnConnection(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVpnConnectionAsync(array $args = []) + * @method \Aws\Result deleteVpnConnectionRoute(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVpnConnectionRouteAsync(array $args = []) + * @method \Aws\Result deleteVpnGateway(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVpnGatewayAsync(array $args = []) + * @method \Aws\Result deregisterImage(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterImageAsync(array $args = []) + * @method \Aws\Result describeAccountAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAccountAttributesAsync(array $args = []) + * @method \Aws\Result describeAddresses(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAddressesAsync(array $args = []) + * @method \Aws\Result describeAvailabilityZones(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAvailabilityZonesAsync(array $args = []) + * @method \Aws\Result describeBundleTasks(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeBundleTasksAsync(array $args = []) + * @method \Aws\Result describeClassicLinkInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeClassicLinkInstancesAsync(array $args = []) + * @method \Aws\Result describeConversionTasks(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeConversionTasksAsync(array $args = []) + * @method \Aws\Result describeCustomerGateways(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCustomerGatewaysAsync(array $args = []) + * @method \Aws\Result describeDhcpOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDhcpOptionsAsync(array $args = []) + * @method \Aws\Result describeExportTasks(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeExportTasksAsync(array $args = []) + * @method \Aws\Result describeFlowLogs(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeFlowLogsAsync(array $args = []) + * @method \Aws\Result describeHosts(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeHostsAsync(array $args = []) + * @method \Aws\Result describeIdFormat(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeIdFormatAsync(array $args = []) + * @method \Aws\Result describeImageAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeImageAttributeAsync(array $args = []) + * @method \Aws\Result describeImages(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeImagesAsync(array $args = []) + * @method \Aws\Result describeImportImageTasks(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeImportImageTasksAsync(array $args = []) + * @method \Aws\Result describeImportSnapshotTasks(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeImportSnapshotTasksAsync(array $args = []) + * @method \Aws\Result describeInstanceAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeInstanceAttributeAsync(array $args = []) + * @method \Aws\Result describeInstanceStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeInstanceStatusAsync(array $args = []) + * @method \Aws\Result describeInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeInstancesAsync(array $args = []) + * @method \Aws\Result describeInternetGateways(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeInternetGatewaysAsync(array $args = []) + * @method \Aws\Result describeKeyPairs(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeKeyPairsAsync(array $args = []) + * @method \Aws\Result describeMovingAddresses(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMovingAddressesAsync(array $args = []) + * @method \Aws\Result describeNatGateways(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeNatGatewaysAsync(array $args = []) + * @method \Aws\Result describeNetworkAcls(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeNetworkAclsAsync(array $args = []) + * @method \Aws\Result describeNetworkInterfaceAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeNetworkInterfaceAttributeAsync(array $args = []) + * @method \Aws\Result describeNetworkInterfaces(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeNetworkInterfacesAsync(array $args = []) + * @method \Aws\Result describePlacementGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describePlacementGroupsAsync(array $args = []) + * @method \Aws\Result describePrefixLists(array $args = []) + * @method \GuzzleHttp\Promise\Promise describePrefixListsAsync(array $args = []) + * @method \Aws\Result describeRegions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRegionsAsync(array $args = []) + * @method \Aws\Result describeReservedInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReservedInstancesAsync(array $args = []) + * @method \Aws\Result describeReservedInstancesListings(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReservedInstancesListingsAsync(array $args = []) + * @method \Aws\Result describeReservedInstancesModifications(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReservedInstancesModificationsAsync(array $args = []) + * @method \Aws\Result describeReservedInstancesOfferings(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReservedInstancesOfferingsAsync(array $args = []) + * @method \Aws\Result describeRouteTables(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRouteTablesAsync(array $args = []) + * @method \Aws\Result describeScheduledInstanceAvailability(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeScheduledInstanceAvailabilityAsync(array $args = []) + * @method \Aws\Result describeScheduledInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeScheduledInstancesAsync(array $args = []) + * @method \Aws\Result describeSecurityGroupReferences(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSecurityGroupReferencesAsync(array $args = []) + * @method \Aws\Result describeSecurityGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSecurityGroupsAsync(array $args = []) + * @method \Aws\Result describeSnapshotAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSnapshotAttributeAsync(array $args = []) + * @method \Aws\Result describeSnapshots(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSnapshotsAsync(array $args = []) + * @method \Aws\Result describeSpotDatafeedSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSpotDatafeedSubscriptionAsync(array $args = []) + * @method \Aws\Result describeSpotFleetInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSpotFleetInstancesAsync(array $args = []) + * @method \Aws\Result describeSpotFleetRequestHistory(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSpotFleetRequestHistoryAsync(array $args = []) + * @method \Aws\Result describeSpotFleetRequests(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSpotFleetRequestsAsync(array $args = []) + * @method \Aws\Result describeSpotInstanceRequests(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSpotInstanceRequestsAsync(array $args = []) + * @method \Aws\Result describeSpotPriceHistory(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSpotPriceHistoryAsync(array $args = []) + * @method \Aws\Result describeStaleSecurityGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStaleSecurityGroupsAsync(array $args = []) + * @method \Aws\Result describeSubnets(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSubnetsAsync(array $args = []) + * @method \Aws\Result describeTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTagsAsync(array $args = []) + * @method \Aws\Result describeVolumeAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVolumeAttributeAsync(array $args = []) + * @method \Aws\Result describeVolumeStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVolumeStatusAsync(array $args = []) + * @method \Aws\Result describeVolumes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVolumesAsync(array $args = []) + * @method \Aws\Result describeVpcAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVpcAttributeAsync(array $args = []) + * @method \Aws\Result describeVpcClassicLink(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVpcClassicLinkAsync(array $args = []) + * @method \Aws\Result describeVpcClassicLinkDnsSupport(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVpcClassicLinkDnsSupportAsync(array $args = []) + * @method \Aws\Result describeVpcEndpointServices(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVpcEndpointServicesAsync(array $args = []) + * @method \Aws\Result describeVpcEndpoints(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVpcEndpointsAsync(array $args = []) + * @method \Aws\Result describeVpcPeeringConnections(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVpcPeeringConnectionsAsync(array $args = []) + * @method \Aws\Result describeVpcs(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVpcsAsync(array $args = []) + * @method \Aws\Result describeVpnConnections(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVpnConnectionsAsync(array $args = []) + * @method \Aws\Result describeVpnGateways(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVpnGatewaysAsync(array $args = []) + * @method \Aws\Result detachClassicLinkVpc(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachClassicLinkVpcAsync(array $args = []) + * @method \Aws\Result detachInternetGateway(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachInternetGatewayAsync(array $args = []) + * @method \Aws\Result detachNetworkInterface(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachNetworkInterfaceAsync(array $args = []) + * @method \Aws\Result detachVolume(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachVolumeAsync(array $args = []) + * @method \Aws\Result detachVpnGateway(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachVpnGatewayAsync(array $args = []) + * @method \Aws\Result disableVgwRoutePropagation(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableVgwRoutePropagationAsync(array $args = []) + * @method \Aws\Result disableVpcClassicLink(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableVpcClassicLinkAsync(array $args = []) + * @method \Aws\Result disableVpcClassicLinkDnsSupport(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableVpcClassicLinkDnsSupportAsync(array $args = []) + * @method \Aws\Result disassociateAddress(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateAddressAsync(array $args = []) + * @method \Aws\Result disassociateRouteTable(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateRouteTableAsync(array $args = []) + * @method \Aws\Result enableVgwRoutePropagation(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableVgwRoutePropagationAsync(array $args = []) + * @method \Aws\Result enableVolumeIO(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableVolumeIOAsync(array $args = []) + * @method \Aws\Result enableVpcClassicLink(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableVpcClassicLinkAsync(array $args = []) + * @method \Aws\Result enableVpcClassicLinkDnsSupport(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableVpcClassicLinkDnsSupportAsync(array $args = []) + * @method \Aws\Result getConsoleOutput(array $args = []) + * @method \GuzzleHttp\Promise\Promise getConsoleOutputAsync(array $args = []) + * @method \Aws\Result getConsoleScreenshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise getConsoleScreenshotAsync(array $args = []) + * @method \Aws\Result getPasswordData(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPasswordDataAsync(array $args = []) + * @method \Aws\Result importImage(array $args = []) + * @method \GuzzleHttp\Promise\Promise importImageAsync(array $args = []) + * @method \Aws\Result importInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise importInstanceAsync(array $args = []) + * @method \Aws\Result importKeyPair(array $args = []) + * @method \GuzzleHttp\Promise\Promise importKeyPairAsync(array $args = []) + * @method \Aws\Result importSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise importSnapshotAsync(array $args = []) + * @method \Aws\Result importVolume(array $args = []) + * @method \GuzzleHttp\Promise\Promise importVolumeAsync(array $args = []) + * @method \Aws\Result modifyHosts(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyHostsAsync(array $args = []) + * @method \Aws\Result modifyIdFormat(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyIdFormatAsync(array $args = []) + * @method \Aws\Result modifyImageAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyImageAttributeAsync(array $args = []) + * @method \Aws\Result modifyInstanceAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyInstanceAttributeAsync(array $args = []) + * @method \Aws\Result modifyInstancePlacement(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyInstancePlacementAsync(array $args = []) + * @method \Aws\Result modifyNetworkInterfaceAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyNetworkInterfaceAttributeAsync(array $args = []) + * @method \Aws\Result modifyReservedInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyReservedInstancesAsync(array $args = []) + * @method \Aws\Result modifySnapshotAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifySnapshotAttributeAsync(array $args = []) + * @method \Aws\Result modifySpotFleetRequest(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifySpotFleetRequestAsync(array $args = []) + * @method \Aws\Result modifySubnetAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifySubnetAttributeAsync(array $args = []) + * @method \Aws\Result modifyVolumeAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyVolumeAttributeAsync(array $args = []) + * @method \Aws\Result modifyVpcAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyVpcAttributeAsync(array $args = []) + * @method \Aws\Result modifyVpcEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyVpcEndpointAsync(array $args = []) + * @method \Aws\Result modifyVpcPeeringConnectionOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyVpcPeeringConnectionOptionsAsync(array $args = []) + * @method \Aws\Result monitorInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise monitorInstancesAsync(array $args = []) + * @method \Aws\Result moveAddressToVpc(array $args = []) + * @method \GuzzleHttp\Promise\Promise moveAddressToVpcAsync(array $args = []) + * @method \Aws\Result purchaseReservedInstancesOffering(array $args = []) + * @method \GuzzleHttp\Promise\Promise purchaseReservedInstancesOfferingAsync(array $args = []) + * @method \Aws\Result purchaseScheduledInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise purchaseScheduledInstancesAsync(array $args = []) + * @method \Aws\Result rebootInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise rebootInstancesAsync(array $args = []) + * @method \Aws\Result registerImage(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerImageAsync(array $args = []) + * @method \Aws\Result rejectVpcPeeringConnection(array $args = []) + * @method \GuzzleHttp\Promise\Promise rejectVpcPeeringConnectionAsync(array $args = []) + * @method \Aws\Result releaseAddress(array $args = []) + * @method \GuzzleHttp\Promise\Promise releaseAddressAsync(array $args = []) + * @method \Aws\Result releaseHosts(array $args = []) + * @method \GuzzleHttp\Promise\Promise releaseHostsAsync(array $args = []) + * @method \Aws\Result replaceNetworkAclAssociation(array $args = []) + * @method \GuzzleHttp\Promise\Promise replaceNetworkAclAssociationAsync(array $args = []) + * @method \Aws\Result replaceNetworkAclEntry(array $args = []) + * @method \GuzzleHttp\Promise\Promise replaceNetworkAclEntryAsync(array $args = []) + * @method \Aws\Result replaceRoute(array $args = []) + * @method \GuzzleHttp\Promise\Promise replaceRouteAsync(array $args = []) + * @method \Aws\Result replaceRouteTableAssociation(array $args = []) + * @method \GuzzleHttp\Promise\Promise replaceRouteTableAssociationAsync(array $args = []) + * @method \Aws\Result reportInstanceStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise reportInstanceStatusAsync(array $args = []) + * @method \Aws\Result requestSpotFleet(array $args = []) + * @method \GuzzleHttp\Promise\Promise requestSpotFleetAsync(array $args = []) + * @method \Aws\Result requestSpotInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise requestSpotInstancesAsync(array $args = []) + * @method \Aws\Result resetImageAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise resetImageAttributeAsync(array $args = []) + * @method \Aws\Result resetInstanceAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise resetInstanceAttributeAsync(array $args = []) + * @method \Aws\Result resetNetworkInterfaceAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise resetNetworkInterfaceAttributeAsync(array $args = []) + * @method \Aws\Result resetSnapshotAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise resetSnapshotAttributeAsync(array $args = []) + * @method \Aws\Result restoreAddressToClassic(array $args = []) + * @method \GuzzleHttp\Promise\Promise restoreAddressToClassicAsync(array $args = []) + * @method \Aws\Result revokeSecurityGroupEgress(array $args = []) + * @method \GuzzleHttp\Promise\Promise revokeSecurityGroupEgressAsync(array $args = []) + * @method \Aws\Result revokeSecurityGroupIngress(array $args = []) + * @method \GuzzleHttp\Promise\Promise revokeSecurityGroupIngressAsync(array $args = []) + * @method \Aws\Result runInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise runInstancesAsync(array $args = []) + * @method \Aws\Result runScheduledInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise runScheduledInstancesAsync(array $args = []) + * @method \Aws\Result startInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise startInstancesAsync(array $args = []) + * @method \Aws\Result stopInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopInstancesAsync(array $args = []) + * @method \Aws\Result terminateInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise terminateInstancesAsync(array $args = []) + * @method \Aws\Result unassignPrivateIpAddresses(array $args = []) + * @method \GuzzleHttp\Promise\Promise unassignPrivateIpAddressesAsync(array $args = []) + * @method \Aws\Result unmonitorInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise unmonitorInstancesAsync(array $args = []) + * @method \Aws\Result describeHostReservationOfferings(array $args = []) (supported in versions 2016-04-01, 2016-09-15, 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeHostReservationOfferingsAsync(array $args = []) (supported in versions 2016-04-01, 2016-09-15, 2016-11-15) + * @method \Aws\Result describeHostReservations(array $args = []) (supported in versions 2016-04-01, 2016-09-15, 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeHostReservationsAsync(array $args = []) (supported in versions 2016-04-01, 2016-09-15, 2016-11-15) + * @method \Aws\Result describeIdentityIdFormat(array $args = []) (supported in versions 2016-04-01, 2016-09-15, 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeIdentityIdFormatAsync(array $args = []) (supported in versions 2016-04-01, 2016-09-15, 2016-11-15) + * @method \Aws\Result getHostReservationPurchasePreview(array $args = []) (supported in versions 2016-04-01, 2016-09-15, 2016-11-15) + * @method \GuzzleHttp\Promise\Promise getHostReservationPurchasePreviewAsync(array $args = []) (supported in versions 2016-04-01, 2016-09-15, 2016-11-15) + * @method \Aws\Result modifyIdentityIdFormat(array $args = []) (supported in versions 2016-04-01, 2016-09-15, 2016-11-15) + * @method \GuzzleHttp\Promise\Promise modifyIdentityIdFormatAsync(array $args = []) (supported in versions 2016-04-01, 2016-09-15, 2016-11-15) + * @method \Aws\Result purchaseHostReservation(array $args = []) (supported in versions 2016-04-01, 2016-09-15, 2016-11-15) + * @method \GuzzleHttp\Promise\Promise purchaseHostReservationAsync(array $args = []) (supported in versions 2016-04-01, 2016-09-15, 2016-11-15) + * @method \Aws\Result acceptReservedInstancesExchangeQuote(array $args = []) (supported in versions 2016-09-15, 2016-11-15) + * @method \GuzzleHttp\Promise\Promise acceptReservedInstancesExchangeQuoteAsync(array $args = []) (supported in versions 2016-09-15, 2016-11-15) + * @method \Aws\Result getReservedInstancesExchangeQuote(array $args = []) (supported in versions 2016-09-15, 2016-11-15) + * @method \GuzzleHttp\Promise\Promise getReservedInstancesExchangeQuoteAsync(array $args = []) (supported in versions 2016-09-15, 2016-11-15) + * @method \Aws\Result acceptTransitGatewayVpcAttachment(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise acceptTransitGatewayVpcAttachmentAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result acceptVpcEndpointConnections(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise acceptVpcEndpointConnectionsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result advertiseByoipCidr(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise advertiseByoipCidrAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result applySecurityGroupsToClientVpnTargetNetwork(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise applySecurityGroupsToClientVpnTargetNetworkAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result assignIpv6Addresses(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise assignIpv6AddressesAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result associateClientVpnTargetNetwork(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise associateClientVpnTargetNetworkAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result associateIamInstanceProfile(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise associateIamInstanceProfileAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result associateSubnetCidrBlock(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise associateSubnetCidrBlockAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result associateTransitGatewayRouteTable(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise associateTransitGatewayRouteTableAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result associateVpcCidrBlock(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise associateVpcCidrBlockAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result authorizeClientVpnIngress(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise authorizeClientVpnIngressAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result cancelCapacityReservation(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise cancelCapacityReservationAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result copyFpgaImage(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise copyFpgaImageAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result createCapacityReservation(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise createCapacityReservationAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result createClientVpnEndpoint(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise createClientVpnEndpointAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result createClientVpnRoute(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise createClientVpnRouteAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result createDefaultSubnet(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise createDefaultSubnetAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result createDefaultVpc(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise createDefaultVpcAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result createEgressOnlyInternetGateway(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise createEgressOnlyInternetGatewayAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result createFleet(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise createFleetAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result createFpgaImage(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise createFpgaImageAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result createLaunchTemplate(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise createLaunchTemplateAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result createLaunchTemplateVersion(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise createLaunchTemplateVersionAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result createNetworkInterfacePermission(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise createNetworkInterfacePermissionAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result createTransitGateway(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise createTransitGatewayAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result createTransitGatewayRoute(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise createTransitGatewayRouteAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result createTransitGatewayRouteTable(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise createTransitGatewayRouteTableAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result createTransitGatewayVpcAttachment(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise createTransitGatewayVpcAttachmentAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result createVpcEndpointConnectionNotification(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise createVpcEndpointConnectionNotificationAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result createVpcEndpointServiceConfiguration(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise createVpcEndpointServiceConfigurationAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result deleteClientVpnEndpoint(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise deleteClientVpnEndpointAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result deleteClientVpnRoute(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise deleteClientVpnRouteAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result deleteEgressOnlyInternetGateway(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise deleteEgressOnlyInternetGatewayAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result deleteFleets(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise deleteFleetsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result deleteFpgaImage(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise deleteFpgaImageAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result deleteLaunchTemplate(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise deleteLaunchTemplateAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result deleteLaunchTemplateVersions(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise deleteLaunchTemplateVersionsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result deleteNetworkInterfacePermission(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise deleteNetworkInterfacePermissionAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result deleteTransitGateway(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise deleteTransitGatewayAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result deleteTransitGatewayRoute(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise deleteTransitGatewayRouteAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result deleteTransitGatewayRouteTable(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise deleteTransitGatewayRouteTableAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result deleteTransitGatewayVpcAttachment(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise deleteTransitGatewayVpcAttachmentAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result deleteVpcEndpointConnectionNotifications(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise deleteVpcEndpointConnectionNotificationsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result deleteVpcEndpointServiceConfigurations(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise deleteVpcEndpointServiceConfigurationsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result deprovisionByoipCidr(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise deprovisionByoipCidrAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeAggregateIdFormat(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeAggregateIdFormatAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeByoipCidrs(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeByoipCidrsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeCapacityReservations(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeCapacityReservationsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeClientVpnAuthorizationRules(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeClientVpnAuthorizationRulesAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeClientVpnConnections(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeClientVpnConnectionsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeClientVpnEndpoints(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeClientVpnEndpointsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeClientVpnRoutes(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeClientVpnRoutesAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeClientVpnTargetNetworks(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeClientVpnTargetNetworksAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeEgressOnlyInternetGateways(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeEgressOnlyInternetGatewaysAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeElasticGpus(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeElasticGpusAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeFleetHistory(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeFleetHistoryAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeFleetInstances(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeFleetInstancesAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeFleets(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeFleetsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeFpgaImageAttribute(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeFpgaImageAttributeAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeFpgaImages(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeFpgaImagesAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeIamInstanceProfileAssociations(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeIamInstanceProfileAssociationsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeInstanceCreditSpecifications(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeInstanceCreditSpecificationsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeLaunchTemplateVersions(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeLaunchTemplateVersionsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeLaunchTemplates(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeLaunchTemplatesAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeNetworkInterfacePermissions(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeNetworkInterfacePermissionsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describePrincipalIdFormat(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describePrincipalIdFormatAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describePublicIpv4Pools(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describePublicIpv4PoolsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeTransitGatewayAttachments(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeTransitGatewayAttachmentsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeTransitGatewayRouteTables(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeTransitGatewayRouteTablesAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeTransitGatewayVpcAttachments(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeTransitGatewayVpcAttachmentsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeTransitGateways(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeTransitGatewaysAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeVolumesModifications(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeVolumesModificationsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeVpcEndpointConnectionNotifications(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeVpcEndpointConnectionNotificationsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeVpcEndpointConnections(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeVpcEndpointConnectionsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeVpcEndpointServiceConfigurations(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeVpcEndpointServiceConfigurationsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result describeVpcEndpointServicePermissions(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise describeVpcEndpointServicePermissionsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result disableTransitGatewayRouteTablePropagation(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise disableTransitGatewayRouteTablePropagationAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result disassociateClientVpnTargetNetwork(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise disassociateClientVpnTargetNetworkAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result disassociateIamInstanceProfile(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise disassociateIamInstanceProfileAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result disassociateSubnetCidrBlock(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise disassociateSubnetCidrBlockAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result disassociateTransitGatewayRouteTable(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise disassociateTransitGatewayRouteTableAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result disassociateVpcCidrBlock(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise disassociateVpcCidrBlockAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result enableTransitGatewayRouteTablePropagation(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise enableTransitGatewayRouteTablePropagationAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result exportClientVpnClientCertificateRevocationList(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise exportClientVpnClientCertificateRevocationListAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result exportClientVpnClientConfiguration(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise exportClientVpnClientConfigurationAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result exportTransitGatewayRoutes(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise exportTransitGatewayRoutesAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result getLaunchTemplateData(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise getLaunchTemplateDataAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result getTransitGatewayAttachmentPropagations(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise getTransitGatewayAttachmentPropagationsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result getTransitGatewayRouteTableAssociations(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise getTransitGatewayRouteTableAssociationsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result getTransitGatewayRouteTablePropagations(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise getTransitGatewayRouteTablePropagationsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result importClientVpnClientCertificateRevocationList(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise importClientVpnClientCertificateRevocationListAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result modifyCapacityReservation(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise modifyCapacityReservationAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result modifyClientVpnEndpoint(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise modifyClientVpnEndpointAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result modifyFleet(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise modifyFleetAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result modifyFpgaImageAttribute(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise modifyFpgaImageAttributeAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result modifyInstanceCapacityReservationAttributes(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise modifyInstanceCapacityReservationAttributesAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result modifyInstanceCreditSpecification(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise modifyInstanceCreditSpecificationAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result modifyInstanceEventStartTime(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise modifyInstanceEventStartTimeAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result modifyLaunchTemplate(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise modifyLaunchTemplateAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result modifyTransitGatewayVpcAttachment(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise modifyTransitGatewayVpcAttachmentAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result modifyVolume(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise modifyVolumeAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result modifyVpcEndpointConnectionNotification(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise modifyVpcEndpointConnectionNotificationAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result modifyVpcEndpointServiceConfiguration(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise modifyVpcEndpointServiceConfigurationAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result modifyVpcEndpointServicePermissions(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise modifyVpcEndpointServicePermissionsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result modifyVpcTenancy(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise modifyVpcTenancyAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result provisionByoipCidr(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise provisionByoipCidrAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result rejectTransitGatewayVpcAttachment(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise rejectTransitGatewayVpcAttachmentAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result rejectVpcEndpointConnections(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise rejectVpcEndpointConnectionsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result replaceIamInstanceProfileAssociation(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise replaceIamInstanceProfileAssociationAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result replaceTransitGatewayRoute(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise replaceTransitGatewayRouteAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result resetFpgaImageAttribute(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise resetFpgaImageAttributeAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result revokeClientVpnIngress(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise revokeClientVpnIngressAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result searchTransitGatewayRoutes(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise searchTransitGatewayRoutesAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result terminateClientVpnConnections(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise terminateClientVpnConnectionsAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result unassignIpv6Addresses(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise unassignIpv6AddressesAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result updateSecurityGroupRuleDescriptionsEgress(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise updateSecurityGroupRuleDescriptionsEgressAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result updateSecurityGroupRuleDescriptionsIngress(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise updateSecurityGroupRuleDescriptionsIngressAsync(array $args = []) (supported in versions 2016-11-15) + * @method \Aws\Result withdrawByoipCidr(array $args = []) (supported in versions 2016-11-15) + * @method \GuzzleHttp\Promise\Promise withdrawByoipCidrAsync(array $args = []) (supported in versions 2016-11-15) + */ +class Ec2Client extends AwsClient +{ + public function __construct(array $args) + { + $args['with_resolved'] = function (array $args) { + $this->getHandlerList()->appendInit( + PresignUrlMiddleware::wrap( + $this, + $args['endpoint_provider'], + [ + 'operations' => [ + 'CopySnapshot', + ], + 'service' => 'ec2', + 'presign_param' => 'PresignedUrl', + ] + ), + 'ec2.copy_snapshot' + ); + }; + + parent::__construct($args); + } + + /** + * @internal + * @codeCoverageIgnore + */ + public static function applyDocFilters(array $api, array $docs) + { + // Several copy snapshot parameters are optional. + $docs['shapes']['String']['refs']['CopySnapshotRequest$PresignedUrl'] + = '<div class="alert alert-info">The SDK will compute this value ' + . 'for you on your behalf.</div>'; + $docs['shapes']['String']['refs']['CopySnapshotRequest$DestinationRegion'] + = '<div class="alert alert-info">The SDK will populate this ' + . 'parameter on your behalf using the configured region value of ' + . 'the client.</div>'; + + return [ + new Service($api, ApiProvider::defaultProvider()), + new DocModel($docs) + ]; + } +} diff --git a/lib/aws/Aws/Ec2/Exception/Ec2Exception.php b/lib/aws/Aws/Ec2/Exception/Ec2Exception.php new file mode 100644 index 0000000..5932d19 --- /dev/null +++ b/lib/aws/Aws/Ec2/Exception/Ec2Exception.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Ec2\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon Elastic Compute Cloud service. + */ +class Ec2Exception extends AwsException {} diff --git a/lib/aws/Aws/Ecr/EcrClient.php b/lib/aws/Aws/Ecr/EcrClient.php new file mode 100644 index 0000000..e2bd283 --- /dev/null +++ b/lib/aws/Aws/Ecr/EcrClient.php @@ -0,0 +1,60 @@ +<?php +namespace Aws\Ecr; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon EC2 Container Registry** service. + * + * @method \Aws\Result batchCheckLayerAvailability(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchCheckLayerAvailabilityAsync(array $args = []) + * @method \Aws\Result batchDeleteImage(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchDeleteImageAsync(array $args = []) + * @method \Aws\Result batchGetImage(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetImageAsync(array $args = []) + * @method \Aws\Result completeLayerUpload(array $args = []) + * @method \GuzzleHttp\Promise\Promise completeLayerUploadAsync(array $args = []) + * @method \Aws\Result createRepository(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRepositoryAsync(array $args = []) + * @method \Aws\Result deleteLifecyclePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLifecyclePolicyAsync(array $args = []) + * @method \Aws\Result deleteRepository(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRepositoryAsync(array $args = []) + * @method \Aws\Result deleteRepositoryPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRepositoryPolicyAsync(array $args = []) + * @method \Aws\Result describeImages(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeImagesAsync(array $args = []) + * @method \Aws\Result describeRepositories(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRepositoriesAsync(array $args = []) + * @method \Aws\Result getAuthorizationToken(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAuthorizationTokenAsync(array $args = []) + * @method \Aws\Result getDownloadUrlForLayer(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDownloadUrlForLayerAsync(array $args = []) + * @method \Aws\Result getLifecyclePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLifecyclePolicyAsync(array $args = []) + * @method \Aws\Result getLifecyclePolicyPreview(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLifecyclePolicyPreviewAsync(array $args = []) + * @method \Aws\Result getRepositoryPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRepositoryPolicyAsync(array $args = []) + * @method \Aws\Result initiateLayerUpload(array $args = []) + * @method \GuzzleHttp\Promise\Promise initiateLayerUploadAsync(array $args = []) + * @method \Aws\Result listImages(array $args = []) + * @method \GuzzleHttp\Promise\Promise listImagesAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result putImage(array $args = []) + * @method \GuzzleHttp\Promise\Promise putImageAsync(array $args = []) + * @method \Aws\Result putLifecyclePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putLifecyclePolicyAsync(array $args = []) + * @method \Aws\Result setRepositoryPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise setRepositoryPolicyAsync(array $args = []) + * @method \Aws\Result startLifecyclePolicyPreview(array $args = []) + * @method \GuzzleHttp\Promise\Promise startLifecyclePolicyPreviewAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result uploadLayerPart(array $args = []) + * @method \GuzzleHttp\Promise\Promise uploadLayerPartAsync(array $args = []) + */ +class EcrClient extends AwsClient {} diff --git a/lib/aws/Aws/Ecr/Exception/EcrException.php b/lib/aws/Aws/Ecr/Exception/EcrException.php new file mode 100644 index 0000000..6241c50 --- /dev/null +++ b/lib/aws/Aws/Ecr/Exception/EcrException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Ecr\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon EC2 Container Registry** service. + */ +class EcrException extends AwsException {} diff --git a/lib/aws/Aws/Ecs/EcsClient.php b/lib/aws/Aws/Ecs/EcsClient.php new file mode 100644 index 0000000..ec64677 --- /dev/null +++ b/lib/aws/Aws/Ecs/EcsClient.php @@ -0,0 +1,96 @@ +<?php +namespace Aws\Ecs; + +use Aws\AwsClient; + +/** + * This client is used to interact with **Amazon ECS**. + * + * @method \Aws\Result createCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise createClusterAsync(array $args = []) + * @method \Aws\Result createService(array $args = []) + * @method \GuzzleHttp\Promise\Promise createServiceAsync(array $args = []) + * @method \Aws\Result createTaskSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTaskSetAsync(array $args = []) + * @method \Aws\Result deleteAccountSetting(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAccountSettingAsync(array $args = []) + * @method \Aws\Result deleteAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAttributesAsync(array $args = []) + * @method \Aws\Result deleteCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteClusterAsync(array $args = []) + * @method \Aws\Result deleteService(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteServiceAsync(array $args = []) + * @method \Aws\Result deleteTaskSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTaskSetAsync(array $args = []) + * @method \Aws\Result deregisterContainerInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterContainerInstanceAsync(array $args = []) + * @method \Aws\Result deregisterTaskDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterTaskDefinitionAsync(array $args = []) + * @method \Aws\Result describeClusters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeClustersAsync(array $args = []) + * @method \Aws\Result describeContainerInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeContainerInstancesAsync(array $args = []) + * @method \Aws\Result describeServices(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeServicesAsync(array $args = []) + * @method \Aws\Result describeTaskDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTaskDefinitionAsync(array $args = []) + * @method \Aws\Result describeTaskSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTaskSetsAsync(array $args = []) + * @method \Aws\Result describeTasks(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTasksAsync(array $args = []) + * @method \Aws\Result discoverPollEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise discoverPollEndpointAsync(array $args = []) + * @method \Aws\Result listAccountSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAccountSettingsAsync(array $args = []) + * @method \Aws\Result listAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAttributesAsync(array $args = []) + * @method \Aws\Result listClusters(array $args = []) + * @method \GuzzleHttp\Promise\Promise listClustersAsync(array $args = []) + * @method \Aws\Result listContainerInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise listContainerInstancesAsync(array $args = []) + * @method \Aws\Result listServices(array $args = []) + * @method \GuzzleHttp\Promise\Promise listServicesAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result listTaskDefinitionFamilies(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTaskDefinitionFamiliesAsync(array $args = []) + * @method \Aws\Result listTaskDefinitions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTaskDefinitionsAsync(array $args = []) + * @method \Aws\Result listTasks(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTasksAsync(array $args = []) + * @method \Aws\Result putAccountSetting(array $args = []) + * @method \GuzzleHttp\Promise\Promise putAccountSettingAsync(array $args = []) + * @method \Aws\Result putAccountSettingDefault(array $args = []) + * @method \GuzzleHttp\Promise\Promise putAccountSettingDefaultAsync(array $args = []) + * @method \Aws\Result putAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise putAttributesAsync(array $args = []) + * @method \Aws\Result registerContainerInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerContainerInstanceAsync(array $args = []) + * @method \Aws\Result registerTaskDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerTaskDefinitionAsync(array $args = []) + * @method \Aws\Result runTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise runTaskAsync(array $args = []) + * @method \Aws\Result startTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise startTaskAsync(array $args = []) + * @method \Aws\Result stopTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopTaskAsync(array $args = []) + * @method \Aws\Result submitContainerStateChange(array $args = []) + * @method \GuzzleHttp\Promise\Promise submitContainerStateChangeAsync(array $args = []) + * @method \Aws\Result submitTaskStateChange(array $args = []) + * @method \GuzzleHttp\Promise\Promise submitTaskStateChangeAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateContainerAgent(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateContainerAgentAsync(array $args = []) + * @method \Aws\Result updateContainerInstancesState(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateContainerInstancesStateAsync(array $args = []) + * @method \Aws\Result updateService(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateServiceAsync(array $args = []) + * @method \Aws\Result updateServicePrimaryTaskSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateServicePrimaryTaskSetAsync(array $args = []) + * @method \Aws\Result updateTaskSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateTaskSetAsync(array $args = []) + */ +class EcsClient extends AwsClient {} diff --git a/lib/aws/Aws/Ecs/Exception/EcsException.php b/lib/aws/Aws/Ecs/Exception/EcsException.php new file mode 100644 index 0000000..db2c822 --- /dev/null +++ b/lib/aws/Aws/Ecs/Exception/EcsException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Ecs\Exception; + +use Aws\Exception\AwsException; + +/** + * Amazon ECS exception. + */ +class EcsException extends AwsException {} diff --git a/lib/aws/Aws/Efs/EfsClient.php b/lib/aws/Aws/Efs/EfsClient.php new file mode 100644 index 0000000..bed92ae --- /dev/null +++ b/lib/aws/Aws/Efs/EfsClient.php @@ -0,0 +1,38 @@ +<?php +namespace Aws\Efs; + +use Aws\AwsClient; + +/** + * This client is used to interact with **Amazon EFS**. + * + * @method \Aws\Result createFileSystem(array $args = []) + * @method \GuzzleHttp\Promise\Promise createFileSystemAsync(array $args = []) + * @method \Aws\Result createMountTarget(array $args = []) + * @method \GuzzleHttp\Promise\Promise createMountTargetAsync(array $args = []) + * @method \Aws\Result createTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTagsAsync(array $args = []) + * @method \Aws\Result deleteFileSystem(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteFileSystemAsync(array $args = []) + * @method \Aws\Result deleteMountTarget(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteMountTargetAsync(array $args = []) + * @method \Aws\Result deleteTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTagsAsync(array $args = []) + * @method \Aws\Result describeFileSystems(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeFileSystemsAsync(array $args = []) + * @method \Aws\Result describeLifecycleConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLifecycleConfigurationAsync(array $args = []) + * @method \Aws\Result describeMountTargetSecurityGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMountTargetSecurityGroupsAsync(array $args = []) + * @method \Aws\Result describeMountTargets(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMountTargetsAsync(array $args = []) + * @method \Aws\Result describeTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTagsAsync(array $args = []) + * @method \Aws\Result modifyMountTargetSecurityGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyMountTargetSecurityGroupsAsync(array $args = []) + * @method \Aws\Result putLifecycleConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putLifecycleConfigurationAsync(array $args = []) + * @method \Aws\Result updateFileSystem(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateFileSystemAsync(array $args = []) + */ +class EfsClient extends AwsClient {} diff --git a/lib/aws/Aws/Efs/Exception/EfsException.php b/lib/aws/Aws/Efs/Exception/EfsException.php new file mode 100644 index 0000000..8880652 --- /dev/null +++ b/lib/aws/Aws/Efs/Exception/EfsException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Efs\Exception; + +use Aws\Exception\AwsException; + +/** + * Amazon EFS exception. + */ +class EfsException extends AwsException {} diff --git a/lib/aws/Aws/ElastiCache/ElastiCacheClient.php b/lib/aws/Aws/ElastiCache/ElastiCacheClient.php new file mode 100644 index 0000000..2a59fff --- /dev/null +++ b/lib/aws/Aws/ElastiCache/ElastiCacheClient.php @@ -0,0 +1,94 @@ +<?php +namespace Aws\ElastiCache; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon ElastiCache** service. + * + * @method \Aws\Result addTagsToResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsToResourceAsync(array $args = []) + * @method \Aws\Result authorizeCacheSecurityGroupIngress(array $args = []) + * @method \GuzzleHttp\Promise\Promise authorizeCacheSecurityGroupIngressAsync(array $args = []) + * @method \Aws\Result copySnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise copySnapshotAsync(array $args = []) + * @method \Aws\Result createCacheCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCacheClusterAsync(array $args = []) + * @method \Aws\Result createCacheParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCacheParameterGroupAsync(array $args = []) + * @method \Aws\Result createCacheSecurityGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCacheSecurityGroupAsync(array $args = []) + * @method \Aws\Result createCacheSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCacheSubnetGroupAsync(array $args = []) + * @method \Aws\Result createReplicationGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createReplicationGroupAsync(array $args = []) + * @method \Aws\Result createSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSnapshotAsync(array $args = []) + * @method \Aws\Result decreaseReplicaCount(array $args = []) + * @method \GuzzleHttp\Promise\Promise decreaseReplicaCountAsync(array $args = []) + * @method \Aws\Result deleteCacheCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCacheClusterAsync(array $args = []) + * @method \Aws\Result deleteCacheParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCacheParameterGroupAsync(array $args = []) + * @method \Aws\Result deleteCacheSecurityGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCacheSecurityGroupAsync(array $args = []) + * @method \Aws\Result deleteCacheSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCacheSubnetGroupAsync(array $args = []) + * @method \Aws\Result deleteReplicationGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteReplicationGroupAsync(array $args = []) + * @method \Aws\Result deleteSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSnapshotAsync(array $args = []) + * @method \Aws\Result describeCacheClusters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCacheClustersAsync(array $args = []) + * @method \Aws\Result describeCacheEngineVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCacheEngineVersionsAsync(array $args = []) + * @method \Aws\Result describeCacheParameterGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCacheParameterGroupsAsync(array $args = []) + * @method \Aws\Result describeCacheParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCacheParametersAsync(array $args = []) + * @method \Aws\Result describeCacheSecurityGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCacheSecurityGroupsAsync(array $args = []) + * @method \Aws\Result describeCacheSubnetGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCacheSubnetGroupsAsync(array $args = []) + * @method \Aws\Result describeEngineDefaultParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEngineDefaultParametersAsync(array $args = []) + * @method \Aws\Result describeEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventsAsync(array $args = []) + * @method \Aws\Result describeReplicationGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReplicationGroupsAsync(array $args = []) + * @method \Aws\Result describeReservedCacheNodes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReservedCacheNodesAsync(array $args = []) + * @method \Aws\Result describeReservedCacheNodesOfferings(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReservedCacheNodesOfferingsAsync(array $args = []) + * @method \Aws\Result describeSnapshots(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSnapshotsAsync(array $args = []) + * @method \Aws\Result increaseReplicaCount(array $args = []) + * @method \GuzzleHttp\Promise\Promise increaseReplicaCountAsync(array $args = []) + * @method \Aws\Result listAllowedNodeTypeModifications(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAllowedNodeTypeModificationsAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result modifyCacheCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyCacheClusterAsync(array $args = []) + * @method \Aws\Result modifyCacheParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyCacheParameterGroupAsync(array $args = []) + * @method \Aws\Result modifyCacheSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyCacheSubnetGroupAsync(array $args = []) + * @method \Aws\Result modifyReplicationGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyReplicationGroupAsync(array $args = []) + * @method \Aws\Result modifyReplicationGroupShardConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyReplicationGroupShardConfigurationAsync(array $args = []) + * @method \Aws\Result purchaseReservedCacheNodesOffering(array $args = []) + * @method \GuzzleHttp\Promise\Promise purchaseReservedCacheNodesOfferingAsync(array $args = []) + * @method \Aws\Result rebootCacheCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise rebootCacheClusterAsync(array $args = []) + * @method \Aws\Result removeTagsFromResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeTagsFromResourceAsync(array $args = []) + * @method \Aws\Result resetCacheParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise resetCacheParameterGroupAsync(array $args = []) + * @method \Aws\Result revokeCacheSecurityGroupIngress(array $args = []) + * @method \GuzzleHttp\Promise\Promise revokeCacheSecurityGroupIngressAsync(array $args = []) + * @method \Aws\Result testFailover(array $args = []) + * @method \GuzzleHttp\Promise\Promise testFailoverAsync(array $args = []) + */ +class ElastiCacheClient extends AwsClient {} diff --git a/lib/aws/Aws/ElastiCache/Exception/ElastiCacheException.php b/lib/aws/Aws/ElastiCache/Exception/ElastiCacheException.php new file mode 100644 index 0000000..148b8ca --- /dev/null +++ b/lib/aws/Aws/ElastiCache/Exception/ElastiCacheException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\ElastiCache\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon ElastiCache service. + */ +class ElastiCacheException extends AwsException {} diff --git a/lib/aws/Aws/ElasticBeanstalk/ElasticBeanstalkClient.php b/lib/aws/Aws/ElasticBeanstalk/ElasticBeanstalkClient.php new file mode 100644 index 0000000..4748f89 --- /dev/null +++ b/lib/aws/Aws/ElasticBeanstalk/ElasticBeanstalkClient.php @@ -0,0 +1,98 @@ +<?php +namespace Aws\ElasticBeanstalk; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Elastic Beanstalk** service. + * + * @method \Aws\Result abortEnvironmentUpdate(array $args = []) + * @method \GuzzleHttp\Promise\Promise abortEnvironmentUpdateAsync(array $args = []) + * @method \Aws\Result applyEnvironmentManagedAction(array $args = []) + * @method \GuzzleHttp\Promise\Promise applyEnvironmentManagedActionAsync(array $args = []) + * @method \Aws\Result checkDNSAvailability(array $args = []) + * @method \GuzzleHttp\Promise\Promise checkDNSAvailabilityAsync(array $args = []) + * @method \Aws\Result composeEnvironments(array $args = []) + * @method \GuzzleHttp\Promise\Promise composeEnvironmentsAsync(array $args = []) + * @method \Aws\Result createApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise createApplicationAsync(array $args = []) + * @method \Aws\Result createApplicationVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise createApplicationVersionAsync(array $args = []) + * @method \Aws\Result createConfigurationTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise createConfigurationTemplateAsync(array $args = []) + * @method \Aws\Result createEnvironment(array $args = []) + * @method \GuzzleHttp\Promise\Promise createEnvironmentAsync(array $args = []) + * @method \Aws\Result createPlatformVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPlatformVersionAsync(array $args = []) + * @method \Aws\Result createStorageLocation(array $args = []) + * @method \GuzzleHttp\Promise\Promise createStorageLocationAsync(array $args = []) + * @method \Aws\Result deleteApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApplicationAsync(array $args = []) + * @method \Aws\Result deleteApplicationVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApplicationVersionAsync(array $args = []) + * @method \Aws\Result deleteConfigurationTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteConfigurationTemplateAsync(array $args = []) + * @method \Aws\Result deleteEnvironmentConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteEnvironmentConfigurationAsync(array $args = []) + * @method \Aws\Result deletePlatformVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePlatformVersionAsync(array $args = []) + * @method \Aws\Result describeAccountAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAccountAttributesAsync(array $args = []) + * @method \Aws\Result describeApplicationVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeApplicationVersionsAsync(array $args = []) + * @method \Aws\Result describeApplications(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeApplicationsAsync(array $args = []) + * @method \Aws\Result describeConfigurationOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeConfigurationOptionsAsync(array $args = []) + * @method \Aws\Result describeConfigurationSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeConfigurationSettingsAsync(array $args = []) + * @method \Aws\Result describeEnvironmentHealth(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEnvironmentHealthAsync(array $args = []) + * @method \Aws\Result describeEnvironmentManagedActionHistory(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEnvironmentManagedActionHistoryAsync(array $args = []) + * @method \Aws\Result describeEnvironmentManagedActions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEnvironmentManagedActionsAsync(array $args = []) + * @method \Aws\Result describeEnvironmentResources(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEnvironmentResourcesAsync(array $args = []) + * @method \Aws\Result describeEnvironments(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEnvironmentsAsync(array $args = []) + * @method \Aws\Result describeEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventsAsync(array $args = []) + * @method \Aws\Result describeInstancesHealth(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeInstancesHealthAsync(array $args = []) + * @method \Aws\Result describePlatformVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise describePlatformVersionAsync(array $args = []) + * @method \Aws\Result listAvailableSolutionStacks(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAvailableSolutionStacksAsync(array $args = []) + * @method \Aws\Result listPlatformVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPlatformVersionsAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result rebuildEnvironment(array $args = []) + * @method \GuzzleHttp\Promise\Promise rebuildEnvironmentAsync(array $args = []) + * @method \Aws\Result requestEnvironmentInfo(array $args = []) + * @method \GuzzleHttp\Promise\Promise requestEnvironmentInfoAsync(array $args = []) + * @method \Aws\Result restartAppServer(array $args = []) + * @method \GuzzleHttp\Promise\Promise restartAppServerAsync(array $args = []) + * @method \Aws\Result retrieveEnvironmentInfo(array $args = []) + * @method \GuzzleHttp\Promise\Promise retrieveEnvironmentInfoAsync(array $args = []) + * @method \Aws\Result swapEnvironmentCNAMEs(array $args = []) + * @method \GuzzleHttp\Promise\Promise swapEnvironmentCNAMEsAsync(array $args = []) + * @method \Aws\Result terminateEnvironment(array $args = []) + * @method \GuzzleHttp\Promise\Promise terminateEnvironmentAsync(array $args = []) + * @method \Aws\Result updateApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateApplicationAsync(array $args = []) + * @method \Aws\Result updateApplicationResourceLifecycle(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateApplicationResourceLifecycleAsync(array $args = []) + * @method \Aws\Result updateApplicationVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateApplicationVersionAsync(array $args = []) + * @method \Aws\Result updateConfigurationTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateConfigurationTemplateAsync(array $args = []) + * @method \Aws\Result updateEnvironment(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateEnvironmentAsync(array $args = []) + * @method \Aws\Result updateTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateTagsForResourceAsync(array $args = []) + * @method \Aws\Result validateConfigurationSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise validateConfigurationSettingsAsync(array $args = []) + */ +class ElasticBeanstalkClient extends AwsClient {} diff --git a/lib/aws/Aws/ElasticBeanstalk/Exception/ElasticBeanstalkException.php b/lib/aws/Aws/ElasticBeanstalk/Exception/ElasticBeanstalkException.php new file mode 100644 index 0000000..4d595ad --- /dev/null +++ b/lib/aws/Aws/ElasticBeanstalk/Exception/ElasticBeanstalkException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\ElasticBeanstalk\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the AWS Elastic Beanstalk service. + */ +class ElasticBeanstalkException extends AwsException {} diff --git a/lib/aws/Aws/ElasticLoadBalancing/ElasticLoadBalancingClient.php b/lib/aws/Aws/ElasticLoadBalancing/ElasticLoadBalancingClient.php new file mode 100644 index 0000000..bfad0d5 --- /dev/null +++ b/lib/aws/Aws/ElasticLoadBalancing/ElasticLoadBalancingClient.php @@ -0,0 +1,68 @@ +<?php +namespace Aws\ElasticLoadBalancing; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Elastic Load Balancing** service. + * + * @method \Aws\Result addTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsAsync(array $args = []) + * @method \Aws\Result applySecurityGroupsToLoadBalancer(array $args = []) + * @method \GuzzleHttp\Promise\Promise applySecurityGroupsToLoadBalancerAsync(array $args = []) + * @method \Aws\Result attachLoadBalancerToSubnets(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachLoadBalancerToSubnetsAsync(array $args = []) + * @method \Aws\Result configureHealthCheck(array $args = []) + * @method \GuzzleHttp\Promise\Promise configureHealthCheckAsync(array $args = []) + * @method \Aws\Result createAppCookieStickinessPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAppCookieStickinessPolicyAsync(array $args = []) + * @method \Aws\Result createLBCookieStickinessPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLBCookieStickinessPolicyAsync(array $args = []) + * @method \Aws\Result createLoadBalancer(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLoadBalancerAsync(array $args = []) + * @method \Aws\Result createLoadBalancerListeners(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLoadBalancerListenersAsync(array $args = []) + * @method \Aws\Result createLoadBalancerPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLoadBalancerPolicyAsync(array $args = []) + * @method \Aws\Result deleteLoadBalancer(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLoadBalancerAsync(array $args = []) + * @method \Aws\Result deleteLoadBalancerListeners(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLoadBalancerListenersAsync(array $args = []) + * @method \Aws\Result deleteLoadBalancerPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLoadBalancerPolicyAsync(array $args = []) + * @method \Aws\Result deregisterInstancesFromLoadBalancer(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterInstancesFromLoadBalancerAsync(array $args = []) + * @method \Aws\Result describeAccountLimits(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAccountLimitsAsync(array $args = []) + * @method \Aws\Result describeInstanceHealth(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeInstanceHealthAsync(array $args = []) + * @method \Aws\Result describeLoadBalancerAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLoadBalancerAttributesAsync(array $args = []) + * @method \Aws\Result describeLoadBalancerPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLoadBalancerPoliciesAsync(array $args = []) + * @method \Aws\Result describeLoadBalancerPolicyTypes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLoadBalancerPolicyTypesAsync(array $args = []) + * @method \Aws\Result describeLoadBalancers(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLoadBalancersAsync(array $args = []) + * @method \Aws\Result describeTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTagsAsync(array $args = []) + * @method \Aws\Result detachLoadBalancerFromSubnets(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachLoadBalancerFromSubnetsAsync(array $args = []) + * @method \Aws\Result disableAvailabilityZonesForLoadBalancer(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableAvailabilityZonesForLoadBalancerAsync(array $args = []) + * @method \Aws\Result enableAvailabilityZonesForLoadBalancer(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableAvailabilityZonesForLoadBalancerAsync(array $args = []) + * @method \Aws\Result modifyLoadBalancerAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyLoadBalancerAttributesAsync(array $args = []) + * @method \Aws\Result registerInstancesWithLoadBalancer(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerInstancesWithLoadBalancerAsync(array $args = []) + * @method \Aws\Result removeTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeTagsAsync(array $args = []) + * @method \Aws\Result setLoadBalancerListenerSSLCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise setLoadBalancerListenerSSLCertificateAsync(array $args = []) + * @method \Aws\Result setLoadBalancerPoliciesForBackendServer(array $args = []) + * @method \GuzzleHttp\Promise\Promise setLoadBalancerPoliciesForBackendServerAsync(array $args = []) + * @method \Aws\Result setLoadBalancerPoliciesOfListener(array $args = []) + * @method \GuzzleHttp\Promise\Promise setLoadBalancerPoliciesOfListenerAsync(array $args = []) + */ +class ElasticLoadBalancingClient extends AwsClient {} diff --git a/lib/aws/Aws/ElasticLoadBalancing/Exception/ElasticLoadBalancingException.php b/lib/aws/Aws/ElasticLoadBalancing/Exception/ElasticLoadBalancingException.php new file mode 100644 index 0000000..f651431 --- /dev/null +++ b/lib/aws/Aws/ElasticLoadBalancing/Exception/ElasticLoadBalancingException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\ElasticLoadBalancing\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Elastic Load Balancing service. + */ +class ElasticLoadBalancingException extends AwsException {} diff --git a/lib/aws/Aws/ElasticLoadBalancingV2/ElasticLoadBalancingV2Client.php b/lib/aws/Aws/ElasticLoadBalancingV2/ElasticLoadBalancingV2Client.php new file mode 100644 index 0000000..bb252fb --- /dev/null +++ b/lib/aws/Aws/ElasticLoadBalancingV2/ElasticLoadBalancingV2Client.php @@ -0,0 +1,77 @@ +<?php +namespace Aws\ElasticLoadBalancingV2; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Elastic Load Balancing** service. + * @method \Aws\Result addListenerCertificates(array $args = []) + * @method \GuzzleHttp\Promise\Promise addListenerCertificatesAsync(array $args = []) + * @method \Aws\Result addTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsAsync(array $args = []) + * @method \Aws\Result createListener(array $args = []) + * @method \GuzzleHttp\Promise\Promise createListenerAsync(array $args = []) + * @method \Aws\Result createLoadBalancer(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLoadBalancerAsync(array $args = []) + * @method \Aws\Result createRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRuleAsync(array $args = []) + * @method \Aws\Result createTargetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTargetGroupAsync(array $args = []) + * @method \Aws\Result deleteListener(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteListenerAsync(array $args = []) + * @method \Aws\Result deleteLoadBalancer(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLoadBalancerAsync(array $args = []) + * @method \Aws\Result deleteRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRuleAsync(array $args = []) + * @method \Aws\Result deleteTargetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTargetGroupAsync(array $args = []) + * @method \Aws\Result deregisterTargets(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterTargetsAsync(array $args = []) + * @method \Aws\Result describeAccountLimits(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAccountLimitsAsync(array $args = []) + * @method \Aws\Result describeListenerCertificates(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeListenerCertificatesAsync(array $args = []) + * @method \Aws\Result describeListeners(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeListenersAsync(array $args = []) + * @method \Aws\Result describeLoadBalancerAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLoadBalancerAttributesAsync(array $args = []) + * @method \Aws\Result describeLoadBalancers(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLoadBalancersAsync(array $args = []) + * @method \Aws\Result describeRules(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRulesAsync(array $args = []) + * @method \Aws\Result describeSSLPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSSLPoliciesAsync(array $args = []) + * @method \Aws\Result describeTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTagsAsync(array $args = []) + * @method \Aws\Result describeTargetGroupAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTargetGroupAttributesAsync(array $args = []) + * @method \Aws\Result describeTargetGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTargetGroupsAsync(array $args = []) + * @method \Aws\Result describeTargetHealth(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTargetHealthAsync(array $args = []) + * @method \Aws\Result modifyListener(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyListenerAsync(array $args = []) + * @method \Aws\Result modifyLoadBalancerAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyLoadBalancerAttributesAsync(array $args = []) + * @method \Aws\Result modifyRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyRuleAsync(array $args = []) + * @method \Aws\Result modifyTargetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyTargetGroupAsync(array $args = []) + * @method \Aws\Result modifyTargetGroupAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyTargetGroupAttributesAsync(array $args = []) + * @method \Aws\Result registerTargets(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerTargetsAsync(array $args = []) + * @method \Aws\Result removeListenerCertificates(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeListenerCertificatesAsync(array $args = []) + * @method \Aws\Result removeTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeTagsAsync(array $args = []) + * @method \Aws\Result setIpAddressType(array $args = []) + * @method \GuzzleHttp\Promise\Promise setIpAddressTypeAsync(array $args = []) + * @method \Aws\Result setRulePriorities(array $args = []) + * @method \GuzzleHttp\Promise\Promise setRulePrioritiesAsync(array $args = []) + * @method \Aws\Result setSecurityGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise setSecurityGroupsAsync(array $args = []) + * @method \Aws\Result setSubnets(array $args = []) + * @method \GuzzleHttp\Promise\Promise setSubnetsAsync(array $args = []) + */ +class ElasticLoadBalancingV2Client extends AwsClient {} diff --git a/lib/aws/Aws/ElasticLoadBalancingV2/Exception/ElasticLoadBalancingV2Exception.php b/lib/aws/Aws/ElasticLoadBalancingV2/Exception/ElasticLoadBalancingV2Exception.php new file mode 100644 index 0000000..592cb51 --- /dev/null +++ b/lib/aws/Aws/ElasticLoadBalancingV2/Exception/ElasticLoadBalancingV2Exception.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\ElasticLoadBalancingV2\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Elastic Load Balancing** service. + */ +class ElasticLoadBalancingV2Exception extends AwsException {} diff --git a/lib/aws/Aws/ElasticTranscoder/ElasticTranscoderClient.php b/lib/aws/Aws/ElasticTranscoder/ElasticTranscoderClient.php new file mode 100644 index 0000000..c34662c --- /dev/null +++ b/lib/aws/Aws/ElasticTranscoder/ElasticTranscoderClient.php @@ -0,0 +1,44 @@ +<?php +namespace Aws\ElasticTranscoder; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Elastic Transcoder** service. + * + * @method \Aws\Result cancelJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelJobAsync(array $args = []) + * @method \Aws\Result createJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise createJobAsync(array $args = []) + * @method \Aws\Result createPipeline(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPipelineAsync(array $args = []) + * @method \Aws\Result createPreset(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPresetAsync(array $args = []) + * @method \Aws\Result deletePipeline(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePipelineAsync(array $args = []) + * @method \Aws\Result deletePreset(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePresetAsync(array $args = []) + * @method \Aws\Result listJobsByPipeline(array $args = []) + * @method \GuzzleHttp\Promise\Promise listJobsByPipelineAsync(array $args = []) + * @method \Aws\Result listJobsByStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise listJobsByStatusAsync(array $args = []) + * @method \Aws\Result listPipelines(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPipelinesAsync(array $args = []) + * @method \Aws\Result listPresets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPresetsAsync(array $args = []) + * @method \Aws\Result readJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise readJobAsync(array $args = []) + * @method \Aws\Result readPipeline(array $args = []) + * @method \GuzzleHttp\Promise\Promise readPipelineAsync(array $args = []) + * @method \Aws\Result readPreset(array $args = []) + * @method \GuzzleHttp\Promise\Promise readPresetAsync(array $args = []) + * @method \Aws\Result testRole(array $args = []) + * @method \GuzzleHttp\Promise\Promise testRoleAsync(array $args = []) + * @method \Aws\Result updatePipeline(array $args = []) + * @method \GuzzleHttp\Promise\Promise updatePipelineAsync(array $args = []) + * @method \Aws\Result updatePipelineNotifications(array $args = []) + * @method \GuzzleHttp\Promise\Promise updatePipelineNotificationsAsync(array $args = []) + * @method \Aws\Result updatePipelineStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise updatePipelineStatusAsync(array $args = []) + */ +class ElasticTranscoderClient extends AwsClient {} diff --git a/lib/aws/Aws/ElasticTranscoder/Exception/ElasticTranscoderException.php b/lib/aws/Aws/ElasticTranscoder/Exception/ElasticTranscoderException.php new file mode 100644 index 0000000..29a122f --- /dev/null +++ b/lib/aws/Aws/ElasticTranscoder/Exception/ElasticTranscoderException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\ElasticTranscoder\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon Elastic Transcoder service. + */ +class ElasticTranscoderException extends AwsException {} diff --git a/lib/aws/Aws/ElasticsearchService/ElasticsearchServiceClient.php b/lib/aws/Aws/ElasticsearchService/ElasticsearchServiceClient.php new file mode 100644 index 0000000..82f64b2 --- /dev/null +++ b/lib/aws/Aws/ElasticsearchService/ElasticsearchServiceClient.php @@ -0,0 +1,56 @@ +<?php +namespace Aws\ElasticsearchService; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Elasticsearch Service** service. + * + * @method \Aws\Result addTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsAsync(array $args = []) + * @method \Aws\Result cancelElasticsearchServiceSoftwareUpdate(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelElasticsearchServiceSoftwareUpdateAsync(array $args = []) + * @method \Aws\Result createElasticsearchDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise createElasticsearchDomainAsync(array $args = []) + * @method \Aws\Result deleteElasticsearchDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteElasticsearchDomainAsync(array $args = []) + * @method \Aws\Result deleteElasticsearchServiceRole(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteElasticsearchServiceRoleAsync(array $args = []) + * @method \Aws\Result describeElasticsearchDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeElasticsearchDomainAsync(array $args = []) + * @method \Aws\Result describeElasticsearchDomainConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeElasticsearchDomainConfigAsync(array $args = []) + * @method \Aws\Result describeElasticsearchDomains(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeElasticsearchDomainsAsync(array $args = []) + * @method \Aws\Result describeElasticsearchInstanceTypeLimits(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeElasticsearchInstanceTypeLimitsAsync(array $args = []) + * @method \Aws\Result describeReservedElasticsearchInstanceOfferings(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReservedElasticsearchInstanceOfferingsAsync(array $args = []) + * @method \Aws\Result describeReservedElasticsearchInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReservedElasticsearchInstancesAsync(array $args = []) + * @method \Aws\Result getCompatibleElasticsearchVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCompatibleElasticsearchVersionsAsync(array $args = []) + * @method \Aws\Result getUpgradeHistory(array $args = []) + * @method \GuzzleHttp\Promise\Promise getUpgradeHistoryAsync(array $args = []) + * @method \Aws\Result getUpgradeStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getUpgradeStatusAsync(array $args = []) + * @method \Aws\Result listDomainNames(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDomainNamesAsync(array $args = []) + * @method \Aws\Result listElasticsearchInstanceTypes(array $args = []) + * @method \GuzzleHttp\Promise\Promise listElasticsearchInstanceTypesAsync(array $args = []) + * @method \Aws\Result listElasticsearchVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listElasticsearchVersionsAsync(array $args = []) + * @method \Aws\Result listTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsAsync(array $args = []) + * @method \Aws\Result purchaseReservedElasticsearchInstanceOffering(array $args = []) + * @method \GuzzleHttp\Promise\Promise purchaseReservedElasticsearchInstanceOfferingAsync(array $args = []) + * @method \Aws\Result removeTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeTagsAsync(array $args = []) + * @method \Aws\Result startElasticsearchServiceSoftwareUpdate(array $args = []) + * @method \GuzzleHttp\Promise\Promise startElasticsearchServiceSoftwareUpdateAsync(array $args = []) + * @method \Aws\Result updateElasticsearchDomainConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateElasticsearchDomainConfigAsync(array $args = []) + * @method \Aws\Result upgradeElasticsearchDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise upgradeElasticsearchDomainAsync(array $args = []) + */ +class ElasticsearchServiceClient extends AwsClient {} diff --git a/lib/aws/Aws/ElasticsearchService/Exception/ElasticsearchServiceException.php b/lib/aws/Aws/ElasticsearchService/Exception/ElasticsearchServiceException.php new file mode 100644 index 0000000..fc3d6a5 --- /dev/null +++ b/lib/aws/Aws/ElasticsearchService/Exception/ElasticsearchServiceException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\ElasticsearchService\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Elasticsearch Service** service. + */ +class ElasticsearchServiceException extends AwsException {} diff --git a/lib/aws/Aws/Emr/EmrClient.php b/lib/aws/Aws/Emr/EmrClient.php new file mode 100644 index 0000000..0d33c8f --- /dev/null +++ b/lib/aws/Aws/Emr/EmrClient.php @@ -0,0 +1,64 @@ +<?php +namespace Aws\Emr; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Elastic MapReduce (Amazon EMR)** service. + * + * @method \Aws\Result addInstanceFleet(array $args = []) + * @method \GuzzleHttp\Promise\Promise addInstanceFleetAsync(array $args = []) + * @method \Aws\Result addInstanceGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise addInstanceGroupsAsync(array $args = []) + * @method \Aws\Result addJobFlowSteps(array $args = []) + * @method \GuzzleHttp\Promise\Promise addJobFlowStepsAsync(array $args = []) + * @method \Aws\Result addTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsAsync(array $args = []) + * @method \Aws\Result cancelSteps(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelStepsAsync(array $args = []) + * @method \Aws\Result createSecurityConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSecurityConfigurationAsync(array $args = []) + * @method \Aws\Result deleteSecurityConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSecurityConfigurationAsync(array $args = []) + * @method \Aws\Result describeCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeClusterAsync(array $args = []) + * @method \Aws\Result describeJobFlows(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeJobFlowsAsync(array $args = []) + * @method \Aws\Result describeSecurityConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSecurityConfigurationAsync(array $args = []) + * @method \Aws\Result describeStep(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStepAsync(array $args = []) + * @method \Aws\Result listBootstrapActions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBootstrapActionsAsync(array $args = []) + * @method \Aws\Result listClusters(array $args = []) + * @method \GuzzleHttp\Promise\Promise listClustersAsync(array $args = []) + * @method \Aws\Result listInstanceFleets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listInstanceFleetsAsync(array $args = []) + * @method \Aws\Result listInstanceGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise listInstanceGroupsAsync(array $args = []) + * @method \Aws\Result listInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise listInstancesAsync(array $args = []) + * @method \Aws\Result listSecurityConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSecurityConfigurationsAsync(array $args = []) + * @method \Aws\Result listSteps(array $args = []) + * @method \GuzzleHttp\Promise\Promise listStepsAsync(array $args = []) + * @method \Aws\Result modifyInstanceFleet(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyInstanceFleetAsync(array $args = []) + * @method \Aws\Result modifyInstanceGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyInstanceGroupsAsync(array $args = []) + * @method \Aws\Result putAutoScalingPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putAutoScalingPolicyAsync(array $args = []) + * @method \Aws\Result removeAutoScalingPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeAutoScalingPolicyAsync(array $args = []) + * @method \Aws\Result removeTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeTagsAsync(array $args = []) + * @method \Aws\Result runJobFlow(array $args = []) + * @method \GuzzleHttp\Promise\Promise runJobFlowAsync(array $args = []) + * @method \Aws\Result setTerminationProtection(array $args = []) + * @method \GuzzleHttp\Promise\Promise setTerminationProtectionAsync(array $args = []) + * @method \Aws\Result setVisibleToAllUsers(array $args = []) + * @method \GuzzleHttp\Promise\Promise setVisibleToAllUsersAsync(array $args = []) + * @method \Aws\Result terminateJobFlows(array $args = []) + * @method \GuzzleHttp\Promise\Promise terminateJobFlowsAsync(array $args = []) + */ +class EmrClient extends AwsClient {} diff --git a/lib/aws/Aws/Emr/Exception/EmrException.php b/lib/aws/Aws/Emr/Exception/EmrException.php new file mode 100644 index 0000000..7a45dc7 --- /dev/null +++ b/lib/aws/Aws/Emr/Exception/EmrException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Emr\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon Elastic MapReduce service. + */ +class EmrException extends AwsException {} diff --git a/lib/aws/Aws/Endpoint/EndpointProvider.php b/lib/aws/Aws/Endpoint/EndpointProvider.php new file mode 100644 index 0000000..ba53574 --- /dev/null +++ b/lib/aws/Aws/Endpoint/EndpointProvider.php @@ -0,0 +1,96 @@ +<?php +namespace Aws\Endpoint; + +use Aws\Exception\UnresolvedEndpointException; + +/** + * Endpoint providers. + * + * An endpoint provider is a function that accepts a hash of endpoint options, + * including but not limited to "service" and "region" key value pairs. The + * endpoint provider function returns a hash of endpoint data, which MUST + * include an "endpoint" key value pair that represents the resolved endpoint + * or NULL if an endpoint cannot be determined. + * + * You can wrap your calls to an endpoint provider with the + * {@see EndpointProvider::resolve} function to ensure that an endpoint hash is + * created. If an endpoint hash is not created, then the resolve() function + * will throw an {@see Aws\Exception\UnresolvedEndpointException}. + * + * use Aws\Endpoint\EndpointProvider; + * $provider = EndpointProvider::defaultProvider(); + * // Returns an array or NULL. + * $endpoint = $provider(['service' => '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. + * + * @deprecated Use an instance of \Aws\Endpoint\Partition instead. + * + * @return callable + */ + public static function defaultProvider() + { + return PartitionEndpointProvider::defaultProvider(); + } + + /** + * 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/Aws/Endpoint/Partition.php b/lib/aws/Aws/Endpoint/Partition.php new file mode 100644 index 0000000..47b9950 --- /dev/null +++ b/lib/aws/Aws/Endpoint/Partition.php @@ -0,0 +1,183 @@ +<?php +namespace Aws\Endpoint; + +use ArrayAccess; +use Aws\HasDataTrait; +use InvalidArgumentException as Iae; + +/** + * Default implementation of an AWS partition. + */ +final class Partition implements ArrayAccess, PartitionInterface +{ + use HasDataTrait; + + /** + * The partition constructor accepts the following options: + * + * - `partition`: (string, required) The partition name as specified in an + * ARN (e.g., `aws`) + * - `partitionName`: (string) The human readable name of the partition + * (e.g., "AWS Standard") + * - `dnsSuffix`: (string, required) The DNS suffix of the partition. This + * value is used to determine how endpoints in the partition are resolved. + * - `regionRegex`: (string) A PCRE regular expression that specifies the + * pattern that region names in the endpoint adhere to. + * - `regions`: (array, required) A map of the regions in the partition. + * Each key is the region as present in a hostname (e.g., `us-east-1`), + * and each value is a structure containing region information. + * - `defaults`: (array) A map of default key value pairs to apply to each + * endpoint of the partition. Any value in an `endpoint` definition will + * supersede any values specified in `defaults`. + * - `services`: (array, required) A map of service endpoint prefix name + * (the value found in a hostname) to information about the service. + * + * @param array $definition + * + * @throws Iae if any required options are missing + */ + public function __construct(array $definition) + { + foreach (['partition', 'regions', 'services', 'dnsSuffix'] as $key) { + if (!isset($definition[$key])) { + throw new Iae("Partition missing required $key field"); + } + } + + $this->data = $definition; + } + + public function getName() + { + return $this->data['partition']; + } + + public function isRegionMatch($region, $service) + { + if (isset($this->data['regions'][$region]) + || isset($this->data['services'][$service]['endpoints'][$region]) + ) { + return true; + } + + if (isset($this->data['regionRegex'])) { + return (bool) preg_match( + "@{$this->data['regionRegex']}@", + $region + ); + } + + return false; + } + + public function getAvailableEndpoints( + $service, + $allowNonRegionalEndpoints = false + ) { + if ($this->isServicePartitionGlobal($service)) { + return [$this->getPartitionEndpoint($service)]; + } + + if (isset($this->data['services'][$service]['endpoints'])) { + $serviceRegions = array_keys( + $this->data['services'][$service]['endpoints'] + ); + + return $allowNonRegionalEndpoints + ? $serviceRegions + : array_intersect($serviceRegions, array_keys( + $this->data['regions'] + )); + } + + return []; + } + + public function __invoke(array $args = []) + { + $service = isset($args['service']) ? $args['service'] : ''; + $region = isset($args['region']) ? $args['region'] : ''; + $scheme = isset($args['scheme']) ? $args['scheme'] : 'https'; + $data = $this->getEndpointData($service, $region); + + return [ + 'endpoint' => "{$scheme}://" . $this->formatEndpoint( + isset($data['hostname']) ? $data['hostname'] : '', + $service, + $region + ), + 'signatureVersion' => $this->getSignatureVersion($data), + 'signingRegion' => isset($data['credentialScope']['region']) + ? $data['credentialScope']['region'] + : $region, + 'signingName' => isset($data['credentialScope']['service']) + ? $data['credentialScope']['service'] + : $service, + ]; + } + + private function getEndpointData($service, $region) + { + + $resolved = $this->resolveRegion($service, $region); + $data = isset($this->data['services'][$service]['endpoints'][$resolved]) + ? $this->data['services'][$service]['endpoints'][$resolved] + : []; + $data += isset($this->data['services'][$service]['defaults']) + ? $this->data['services'][$service]['defaults'] + : []; + $data += isset($this->data['defaults']) + ? $this->data['defaults'] + : []; + + return $data; + } + + private function getSignatureVersion(array $data) + { + static $supportedBySdk = [ + 's3v4', + 'v4', + 'anonymous', + ]; + + $possibilities = array_intersect( + $supportedBySdk, + isset($data['signatureVersions']) + ? $data['signatureVersions'] + : ['v4'] + ); + + return array_shift($possibilities); + } + + private function resolveRegion($service, $region) + { + if ($this->isServicePartitionGlobal($service)) { + return $this->getPartitionEndpoint($service); + } + + return $region; + } + + private function isServicePartitionGlobal($service) + { + return isset($this->data['services'][$service]['isRegionalized']) + && false === $this->data['services'][$service]['isRegionalized'] + && isset($this->data['services'][$service]['partitionEndpoint']); + } + + private function getPartitionEndpoint($service) + { + return $this->data['services'][$service]['partitionEndpoint']; + } + + private function formatEndpoint($template, $service, $region) + { + return strtr($template, [ + '{service}' => $service, + '{region}' => $region, + '{dnsSuffix}' => $this->data['dnsSuffix'], + ]); + } +} diff --git a/lib/aws/Aws/Endpoint/PartitionEndpointProvider.php b/lib/aws/Aws/Endpoint/PartitionEndpointProvider.php new file mode 100644 index 0000000..3a6cbbc --- /dev/null +++ b/lib/aws/Aws/Endpoint/PartitionEndpointProvider.php @@ -0,0 +1,108 @@ +<?php +namespace Aws\Endpoint; + +use JmesPath\Env; + +class PartitionEndpointProvider +{ + /** @var Partition[] */ + private $partitions; + /** @var string */ + private $defaultPartition; + + public function __construct(array $partitions, $defaultPartition = 'aws') + { + $this->partitions = array_map(function (array $definition) { + return new Partition($definition); + }, array_values($partitions)); + $this->defaultPartition = $defaultPartition; + } + + public function __invoke(array $args = []) + { + $partition = $this->getPartition( + isset($args['region']) ? $args['region'] : '', + isset($args['service']) ? $args['service'] : '' + ); + + return $partition($args); + } + + /** + * Returns the partition containing the provided region or the default + * partition if no match is found. + * + * @param string $region + * @param string $service + * + * @return Partition + */ + public function getPartition($region, $service) + { + foreach ($this->partitions as $partition) { + if ($partition->isRegionMatch($region, $service)) { + return $partition; + } + } + + return $this->getPartitionByName($this->defaultPartition); + } + + /** + * Returns the partition with the provided name or null if no partition with + * the provided name can be found. + * + * @param string $name + * + * @return Partition|null + */ + public function getPartitionByName($name) + { + foreach ($this->partitions as $partition) { + if ($name === $partition->getName()) { + return $partition; + } + } + } + + /** + * Creates and returns the default SDK partition provider. + * + * @return PartitionEndpointProvider + */ + public static function defaultProvider() + { + $data = \Aws\load_compiled_json(__DIR__ . '/../data/endpoints.json'); + $prefixData = \Aws\load_compiled_json(__DIR__ . '/../data/endpoints_prefix_history.json'); + $mergedData = self::mergePrefixData($data, $prefixData); + + return new self($mergedData['partitions']); + } + + /** + * Copy endpoint data for other prefixes used by a given service + * + * @param $data + * @param $prefixData + * @return array + */ + public static function mergePrefixData($data, $prefixData) + { + $prefixGroups = $prefixData['prefix-groups']; + + foreach ($data["partitions"] as $index => $partition) { + foreach ($prefixGroups as $current => $old) { + $serviceData = Env::search("services.{$current}", $partition); + if (!empty($serviceData)) { + foreach ($old as $prefix) { + if (empty(Env::search("services.{$prefix}", $partition))) { + $data["partitions"][$index]["services"][$prefix] = $serviceData; + } + } + } + } + } + + return $data; + } +} diff --git a/lib/aws/Aws/Endpoint/PartitionInterface.php b/lib/aws/Aws/Endpoint/PartitionInterface.php new file mode 100644 index 0000000..0f2572d --- /dev/null +++ b/lib/aws/Aws/Endpoint/PartitionInterface.php @@ -0,0 +1,56 @@ +<?php +namespace Aws\Endpoint; + +/** + * Represents a section of the AWS cloud. + */ +interface PartitionInterface +{ + /** + * Returns the partition's short name, e.g., 'aws,' 'aws-cn,' or + * 'aws-us-gov.' + * + * @return string + */ + public function getName(); + + /** + * Determine if this partition contains the provided region. Include the + * name of the service to inspect non-regional endpoints + * + * @param string $region + * @param string $service + * + * @return bool + */ + public function isRegionMatch($region, $service); + + /** + * Return the endpoints supported by a given service. + * + * @param string $service Identifier of the service + * whose endpoints should be + * listed (e.g., 's3' or 'ses') + * @param bool $allowNonRegionalEndpoints Set to `true` to include + * endpoints that are not AWS + * regions (e.g., 'local' for + * DynamoDB or + * 'fips-us-gov-west-1' for S3) + * + * @return string[] + */ + public function getAvailableEndpoints( + $service, + $allowNonRegionalEndpoints = false + ); + + /** + * A partition must be invokable as an endpoint provider. + * + * @see EndpointProvider + * + * @param array $args + * @return array + */ + public function __invoke(array $args = []); +} diff --git a/lib/aws/Aws/Endpoint/PatternEndpointProvider.php b/lib/aws/Aws/Endpoint/PatternEndpointProvider.php new file mode 100644 index 0000000..c8867ee --- /dev/null +++ b/lib/aws/Aws/Endpoint/PatternEndpointProvider.php @@ -0,0 +1,51 @@ +<?php +namespace Aws\Endpoint; + +/** + * Provides endpoints based on an endpoint pattern configuration array. + */ +class PatternEndpointProvider +{ + /** @var array */ + private $patterns; + + /** + * @param array $patterns Hash of endpoint patterns mapping to endpoint + * configurations. + */ + public function __construct(array $patterns) + { + $this->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/Aws/EndpointDiscovery/Configuration.php b/lib/aws/Aws/EndpointDiscovery/Configuration.php new file mode 100644 index 0000000..dd7d8fb --- /dev/null +++ b/lib/aws/Aws/EndpointDiscovery/Configuration.php @@ -0,0 +1,48 @@ +<?php +namespace Aws\EndpointDiscovery; + +class Configuration implements ConfigurationInterface +{ + private $cacheLimit; + private $enabled; + + public function __construct($enabled, $cacheLimit = 1000) + { + $this->cacheLimit = filter_var($cacheLimit, FILTER_VALIDATE_INT); + if ($this->cacheLimit == false || $this->cacheLimit < 1) { + throw new \InvalidArgumentException( + "'cache_limit' value must be a positive integer." + ); + } + + // Unparsable $enabled flag errs on the side of disabling endpoint discovery + $this->enabled = filter_var($enabled, FILTER_VALIDATE_BOOLEAN); + } + + /** + * {@inheritdoc} + */ + public function isEnabled() + { + return $this->enabled; + } + + /** + * {@inheritdoc} + */ + public function getCacheLimit() + { + return $this->cacheLimit; + } + + /** + * {@inheritdoc} + */ + public function toArray() + { + return [ + 'enabled' => $this->isEnabled(), + 'cache_limit' => $this->getCacheLimit() + ]; + } +} diff --git a/lib/aws/Aws/EndpointDiscovery/ConfigurationInterface.php b/lib/aws/Aws/EndpointDiscovery/ConfigurationInterface.php new file mode 100644 index 0000000..3228d1d --- /dev/null +++ b/lib/aws/Aws/EndpointDiscovery/ConfigurationInterface.php @@ -0,0 +1,30 @@ +<?php +namespace Aws\EndpointDiscovery; + +/** + * Provides access to endpoint discovery configuration options: + * 'enabled', 'cache_limit' + */ +interface ConfigurationInterface +{ + /** + * Checks whether or not endpoint discovery is enabled. + * + * @return bool + */ + public function isEnabled(); + + /** + * Returns the cache limit, if available. + * + * @return string|null + */ + public function getCacheLimit(); + + /** + * Returns the configuration as an associative array + * + * @return array + */ + public function toArray(); +} diff --git a/lib/aws/Aws/EndpointDiscovery/ConfigurationProvider.php b/lib/aws/Aws/EndpointDiscovery/ConfigurationProvider.php new file mode 100644 index 0000000..8df802c --- /dev/null +++ b/lib/aws/Aws/EndpointDiscovery/ConfigurationProvider.php @@ -0,0 +1,333 @@ +<?php +namespace Aws\EndpointDiscovery; + +use Aws\CacheInterface; +use Aws\EndpointDiscovery\Exception\ConfigurationException; +use GuzzleHttp\Promise; +use GuzzleHttp\Promise\PromiseInterface; + +/** + * A configuration provider is a function that returns a promise that is + * fulfilled with a {@see \Aws\EndpointDiscovery\ConfigurationInterface} + * or rejected with an {@see \Aws\EndpointDiscovery\Exception\ConfigurationException}. + * + * <code> + * use Aws\EndpointDiscovery\ConfigurationProvider; + * $provider = ConfigurationProvider::defaultProvider(); + * // Returns a ConfigurationInterface or throws. + * $config = $provider()->wait(); + * </code> + * + * Configuration providers can be composed to create configuration using + * conditional logic that can create different configurations in different + * environments. You can compose multiple providers into a single provider using + * {@see Aws\EndpointDiscovery\ConfigurationProvider::chain}. This function + * accepts providers as variadic arguments and returns a new function that will + * invoke each provider until a successful configuration is returned. + * + * <code> + * // First try an INI file at this location. + * $a = ConfigurationProvider::ini(null, '/path/to/file.ini'); + * // Then try an INI file at this location. + * $b = ConfigurationProvider::ini(null, '/path/to/other-file.ini'); + * // Then try loading from environment variables. + * $c = ConfigurationProvider::env(); + * // Combine the three providers together. + * $composed = ConfigurationProvider::chain($a, $b, $c); + * // Returns a promise that is fulfilled with a configuration or throws. + * $promise = $composed(); + * // Wait on the configuration to resolve. + * $config = $promise->wait(); + * </code> + */ +class ConfigurationProvider +{ + const CACHE_KEY = 'aws_cached_endpoint_discovery_config'; + const DEFAULT_ENABLED = false; + const DEFAULT_CACHE_LIMIT = 1000; + const ENV_ENABLED = 'AWS_ENDPOINT_DISCOVERY_ENABLED'; + const ENV_ENABLED_ALT = 'AWS_ENABLE_ENDPOINT_DISCOVERY'; + const ENV_PROFILE = 'AWS_PROFILE'; + + /** + * Wraps a config provider and saves provided configuration in an + * instance of Aws\CacheInterface. Forwards calls when no config found + * in cache and updates cache with the results. + * + * @param callable $provider Configuration provider function to wrap + * @param CacheInterface $cache Cache to store credentials + * @param string|null $cacheKey (optional) Cache key to use + * + * @return callable + */ + public static function cache( + callable $provider, + CacheInterface $cache, + $cacheKey = null + ) { + $cacheKey = $cacheKey ?: self::CACHE_KEY; + + return function () use ($provider, $cache, $cacheKey) { + $found = $cache->get($cacheKey); + if ($found instanceof ConfigurationInterface) { + return Promise\promise_for($found); + } + + return $provider() + ->then(function (ConfigurationInterface $config) use ( + $cache, + $cacheKey + ) { + $cache->set($cacheKey, $config); + return $config; + }); + }; + } + + /** + * 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; + }; + } + + /** + * Create a default config provider that first checks for environment + * variables, then checks for a specified profile in ~/.aws/config, then + * checks for the "default" profile in ~/.aws/config, and failing those uses + * a default fallback set of configuration options. + * + * This provider is automatically wrapped in a memoize function that caches + * previously provided config options. + * + * @param array $config Optional array of ecs/instance profile credentials + * provider options. + * + * @return callable + */ + public static function defaultProvider(array $config = []) + { + $configProviders = [ + self::env(), + self::ini(), + self::fallback() + ]; + + $memo = self::memoize( + call_user_func_array('self::chain', $configProviders) + ); + + if (isset($config['endpoint_discovery']) + && $config['endpoint_discovery'] instanceof CacheInterface + ) { + return self::cache($memo, $config['endpoint_discovery'], self::CACHE_KEY); + } + + return $memo; + } + + /** + * Provider that creates config from environment variables. + * + * @param $cacheLimit + * @return callable + */ + public static function env($cacheLimit = self::DEFAULT_CACHE_LIMIT) + { + return function () use ($cacheLimit) { + // Use config from environment variables, if available + $enabled = getenv(self::ENV_ENABLED); + if ($enabled === false || $enabled === '') { + $enabled = getenv(self::ENV_ENABLED_ALT); + } + if ($enabled !== false && $enabled !== '') { + return Promise\promise_for( + new Configuration($enabled, $cacheLimit) + ); + } + + return self::reject('Could not find environment variable config' + . ' in ' . self::ENV_ENABLED); + }; + } + + /** + * Fallback config options when other sources are not set. + * + * @return callable + */ + public static function fallback() + { + return function () { + return Promise\promise_for( + new Configuration( + self::DEFAULT_ENABLED, + self::DEFAULT_CACHE_LIMIT + ) + ); + }; + } + + /** + * 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; + } + + /** + * Config provider that creates config 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 in "~/.aws/config". + * @param string|null $filename If provided, uses a custom filename rather + * than looking in the home directory. + * @param int $cacheLimit + * + * @return callable + */ + public static function ini( + $profile = null, + $filename = null, + $cacheLimit = self::DEFAULT_CACHE_LIMIT + ) { + $filename = $filename ?: (self::getHomeDir() . '/.aws/config'); + $profile = $profile ?: (getenv(self::ENV_PROFILE) ?: 'default'); + + return function () use ($profile, $filename, $cacheLimit) { + if (!is_readable($filename)) { + return self::reject("Cannot read configuration from $filename"); + } + $data = \Aws\parse_ini_file($filename, true); + if ($data === false) { + return self::reject("Invalid config file: $filename"); + } + if (!isset($data[$profile])) { + return self::reject("'$profile' not found in config file"); + } + if (!isset($data[$profile]['endpoint_discovery_enabled'])) { + return self::reject("Required endpoint discovery config values + not present in INI profile '{$profile}' ({$filename})"); + } + + return Promise\promise_for( + new Configuration( + $data[$profile]['endpoint_discovery_enabled'], + $cacheLimit + ) + ); + }; + } + + /** + * Wraps a config provider and caches previously provided configuration. + * + * Ensures that cached configuration is refreshed when it expires. + * + * @param callable $provider Config provider function to wrap. + * + * @return callable + */ + public static function memoize(callable $provider) + { + return function () use ($provider) { + static $result; + static $isConstant; + + // Constant config will be returned constantly. + if ($isConstant) { + return $result; + } + + // Create the initial promise that will be used as the cached value + // until it expires. + if (null === $result) { + $result = $provider(); + } + + // Return config and set flag that provider is already set + return $result + ->then(function (ConfigurationInterface $config) use (&$isConstant) { + $isConstant = true; + return $config; + }); + }; + } + + /** + * Reject promise with standardized exception. + * + * @param $msg + * @return Promise\RejectedPromise + */ + private static function reject($msg) + { + return new Promise\RejectedPromise(new ConfigurationException($msg)); + } + + /** + * Unwraps a configuration object in whatever valid form it is in, + * always returning a ConfigurationInterface object. + * + * @param mixed $config + * @return ConfigurationInterface + * @throws \InvalidArgumentException + */ + public static function unwrap($config) + { + if (is_callable($config)) { + $config = $config(); + } + if ($config instanceof PromiseInterface) { + $config = $config->wait(); + } + if ($config instanceof ConfigurationInterface) { + return $config; + } elseif (is_array($config) && isset($config['enabled'])) { + if (isset($config['cache_limit'])) { + return new Configuration( + $config['enabled'], + $config['cache_limit'] + ); + } + return new Configuration( + $config['enabled'], + self::DEFAULT_CACHE_LIMIT + ); + } + + throw new \InvalidArgumentException('Not a valid endpoint_discovery ' + . 'configuration argument.'); + } +} diff --git a/lib/aws/Aws/EndpointDiscovery/EndpointDiscoveryMiddleware.php b/lib/aws/Aws/EndpointDiscovery/EndpointDiscoveryMiddleware.php new file mode 100644 index 0000000..0b2d3a4 --- /dev/null +++ b/lib/aws/Aws/EndpointDiscovery/EndpointDiscoveryMiddleware.php @@ -0,0 +1,414 @@ +<?php +namespace Aws\EndpointDiscovery; + +use Aws\AwsClient; +use Aws\CacheInterface; +use Aws\CommandInterface; +use Aws\Credentials\CredentialsInterface; +use Aws\Exception\AwsException; +use Aws\Exception\UnresolvedEndpointException; +use Aws\LruArrayCache; +use Aws\Middleware; +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\UriInterface; + +class EndpointDiscoveryMiddleware +{ + /** + * @var CacheInterface + */ + private static $cache; + private static $discoveryCooldown = 60; + + private $args; + private $client; + private $config; + private $discoveryTimes = []; + private $nextHandler; + private $service; + + public static function wrap( + $client, + $args, + $config + ) { + return function (callable $handler) use ( + $client, + $args, + $config + ) { + return new static( + $handler, + $client, + $args, + $config + ); + }; + } + + public function __construct( + callable $handler, + AwsClient $client, + array $args, + $config + ) { + $this->nextHandler = $handler; + $this->client = $client; + $this->args = $args; + $this->service = $client->getApi(); + $this->config = $config; + } + + public function __invoke(CommandInterface $cmd, RequestInterface $request) + { + $nextHandler = $this->nextHandler; + $op = $this->service->getOperation($cmd->getName())->toArray(); + + // Continue only if endpointdiscovery trait is set + if (isset($op['endpointdiscovery'])) { + $config = ConfigurationProvider::unwrap($this->config); + $isRequired = !empty($op['endpointdiscovery']['required']); + + // Continue only if required by operation or enabled by config + if ($isRequired || $config->isEnabled()) { + if (isset($op['endpointoperation'])) { + throw new UnresolvedEndpointException('This operation is ' + . 'contradictorily marked both as using endpoint discovery ' + . 'and being the endpoint discovery operation. Please ' + . 'verify the accuracy of your model files.'); + } + + // Original endpoint may be used if discovery optional + $originalUri = $request->getUri(); + + $identifiers = $this->getIdentifiers($op); + + $cacheKey = $this->getCacheKey( + $this->client->getCredentials()->wait(), + $cmd, + $identifiers + ); + + // Check/create cache + if (!isset(self::$cache)) { + self::$cache = new LruArrayCache($config->getCacheLimit()); + } + + if (empty($endpointList = self::$cache->get($cacheKey))) { + $endpointList = new EndpointList([]); + } + $endpoint = $endpointList->getActive(); + + // Retrieve endpoints if there is no active endpoint + if (empty($endpoint)) { + try { + $endpoint = $this->discoverEndpoint( + $cacheKey, + $cmd, + $identifiers + ); + } catch (\Exception $e) { + // Use cached endpoint, expired or active, if any remain + $endpoint = $endpointList->getEndpoint(); + + if (empty($endpoint)) { + return $this->handleDiscoveryException( + $isRequired, + $originalUri, + $e, + $cmd, + $request + ); + } + } + } + + $request = $this->modifyRequest($request, $endpoint); + + $g = function ($value) use ( + $cacheKey, + $cmd, + $identifiers, + $isRequired, + $nextHandler, + $originalUri, + $request, + &$endpoint, + &$g + ) { + if ($value instanceof AwsException + && ( + $value->getAwsErrorCode() == 'InvalidEndpointException' + || $value->getStatusCode() == 421 + ) + ) { + return $this->handleInvalidEndpoint( + $cacheKey, + $cmd, + $identifiers, + $isRequired, + $originalUri, + $request, + $value, + $endpoint, + $g + ); + } + + return $value; + }; + + return $nextHandler($cmd, $request)->otherwise($g); + } + } + + return $nextHandler($cmd, $request); + } + + private function discoverEndpoint( + $cacheKey, + CommandInterface $cmd, + array $identifiers + ) { + $discCmd = $this->getDiscoveryCommand($cmd, $identifiers); + $this->discoveryTimes[$cacheKey] = time(); + $result = $this->client->execute($discCmd); + + if (isset($result['Endpoints'])) { + $endpointData = []; + foreach ($result['Endpoints'] as $datum) { + $endpointData[$datum['Address']] = time() + + ($datum['CachePeriodInMinutes'] * 60); + } + $endpointList = new EndpointList($endpointData); + self::$cache->set($cacheKey, $endpointList); + return $endpointList->getEndpoint(); + } + + throw new UnresolvedEndpointException('The endpoint discovery operation ' + . 'yielded a response that did not contain properly formatted ' + . 'endpoint data.'); + } + + private function getCacheKey( + CredentialsInterface $creds, + CommandInterface $cmd, + array $identifiers + ) { + $key = $this->service->getServiceName() . '_' . $creds->getAccessKeyId(); + if (!empty($identifiers)) { + $key .= '_' . $cmd->getName(); + foreach ($identifiers as $identifier) { + $key .= "_{$cmd[$identifier]}"; + } + } + + return $key; + } + + private function getDiscoveryCommand( + CommandInterface $cmd, + array $identifiers + ) { + foreach ($this->service->getOperations() as $op) { + if (isset($op['endpointoperation'])) { + $endpointOperation = $op->toArray()['name']; + break; + } + } + + if (!isset($endpointOperation)) { + throw new UnresolvedEndpointException('This command is set to use ' + . 'endpoint discovery, but no endpoint discovery operation was ' + . 'found. Please verify the accuracy of your model files.'); + } + + $params = []; + if (!empty($identifiers)) { + $params['Operation'] = $cmd->getName(); + $params['Identifiers'] = []; + foreach ($identifiers as $identifier) { + $params['Identifiers'][$identifier] = $cmd[$identifier]; + } + } + $command = $this->client->getCommand($endpointOperation, $params); + $command->getHandlerList()->appendBuild( + Middleware::mapRequest(function (RequestInterface $r) { + return $r->withHeader( + 'x-amz-api-version', + $this->service->getApiVersion() + ); + }), + 'x-amz-api-version-header' + ); + + return $command; + } + + private function getIdentifiers(array $operation) + { + $inputShape = $this->service->getShapeMap() + ->resolve($operation['input']) + ->toArray(); + $identifiers = []; + foreach ($inputShape['members'] as $key => $member) { + if (!empty($member['endpointdiscoveryid'])) { + $identifiers[] = $key; + } + } + return $identifiers; + } + + private function handleDiscoveryException( + $isRequired, + $originalUri, + \Exception $e, + CommandInterface $cmd, + RequestInterface $request + ) { + // If no cached endpoints and discovery required, + // throw exception + if ($isRequired) { + $message = 'The endpoint required for this service is currently ' + . 'unable to be retrieved, and your request can not be fulfilled ' + . 'unless you manually specify an endpoint.'; + throw new AwsException( + $message, + $cmd, + [ + 'code' => 'EndpointDiscoveryException', + 'message' => $message + ], + $e + ); + } + + // If discovery isn't required, use original endpoint + return $this->useOriginalUri( + $originalUri, + $cmd, + $request + ); + } + + private function handleInvalidEndpoint( + $cacheKey, + $cmd, + $identifiers, + $isRequired, + $originalUri, + $request, + $value, + &$endpoint, + &$g + ) { + $nextHandler = $this->nextHandler; + $endpointList = self::$cache->get($cacheKey); + if ($endpointList instanceof EndpointList) { + + // Remove invalid endpoint from cached list + $endpointList->remove($endpoint); + + // If possible, get another cached endpoint + $newEndpoint = $endpointList->getEndpoint(); + } + if (empty($newEndpoint)) { + + // If no more cached endpoints, make discovery call + // if none made within cooldown for given key + if (time() - $this->discoveryTimes[$cacheKey] + < self::$discoveryCooldown + ) { + + // If no more cached endpoints and it's required, + // fail with original exception + if ($isRequired) { + return $value; + } + + // Use original endpoint if not required + return $this->useOriginalUri( + $originalUri, + $cmd, + $request + ); + } + + $newEndpoint = $this->discoverEndpoint( + $cacheKey, + $cmd, + $identifiers + ); + } + $endpoint = $newEndpoint; + $request = $this->modifyRequest($request, $endpoint); + return $nextHandler($cmd, $request)->otherwise($g); + } + + private function modifyRequest(RequestInterface $request, $endpoint) + { + $parsed = $this->parseEndpoint($endpoint); + if (!empty($request->getHeader('User-Agent'))) { + $userAgent = $request->getHeader('User-Agent')[0]; + if (strpos($userAgent, 'endpoint-discovery') === false) { + $userAgent = $userAgent . ' endpoint-discovery'; + } + } else { + $userAgent = 'endpoint-discovery'; + } + + return $request + ->withUri( + $request->getUri() + ->withHost($parsed['host']) + ->withPath($parsed['path']) + ) + ->withHeader('User-Agent', $userAgent); + } + + /** + * Parses an endpoint returned from the discovery API into an array with + * 'host' and 'path' keys. + * + * @param $endpoint + * @return array + */ + private function parseEndpoint($endpoint) + { + $parsed = parse_url($endpoint); + + // parse_url() will correctly parse full URIs with schemes + if (isset($parsed['host'])) { + return $parsed; + } + + // parse_url() will put host & path in 'path' if scheme is not provided + if (isset($parsed['path'])) { + $split = explode('/', $parsed['path'], 2); + $parsed['host'] = $split[0]; + if (isset($split[1])) { + $parsed['path'] = $split[1]; + } else { + $parsed['path'] = ''; + } + return $parsed; + } + + throw new UnresolvedEndpointException("The supplied endpoint '" + . "{$endpoint}' is invalid."); + } + + private function useOriginalUri( + UriInterface $uri, + CommandInterface $cmd, + RequestInterface $request + ) { + $nextHandler = $this->nextHandler; + $endpoint = $uri->getHost() . $uri->getPath(); + $request = $this->modifyRequest( + $request, + $endpoint + ); + return $nextHandler($cmd, $request); + } +} diff --git a/lib/aws/Aws/EndpointDiscovery/EndpointList.php b/lib/aws/Aws/EndpointDiscovery/EndpointList.php new file mode 100644 index 0000000..80ccc47 --- /dev/null +++ b/lib/aws/Aws/EndpointDiscovery/EndpointList.php @@ -0,0 +1,85 @@ +<?php +namespace Aws\EndpointDiscovery; + +class EndpointList +{ + private $active; + private $expired = []; + + public function __construct(array $endpoints) + { + $this->active = $endpoints; + reset($this->active); + } + + /** + * Gets an active (unexpired) endpoint. Returns null if none found. + * + * @return null|string + */ + public function getActive() + { + if (count($this->active) < 1) { + return null; + } + while (time() > current($this->active)) { + $key = key($this->active); + $this->expired[$key] = current($this->active); + $this->increment($this->active); + unset($this->active[$key]); + if (count($this->active) < 1) { + return null; + } + } + $active = key($this->active); + $this->increment($this->active); + return $active; + } + + /** + * Gets an active endpoint if possible, then an expired endpoint if possible. + * Returns null if no endpoints found. + * + * @return null|string + */ + public function getEndpoint() + { + if (!empty($active = $this->getActive())) { + return $active; + } + return $this->getExpired(); + } + + /** + * Removes an endpoint from both lists. + * + * @param string $key + */ + public function remove($key) + { + unset($this->active[$key]); + unset($this->expired[$key]); + } + + /** + * Get an expired endpoint. Returns null if none found. + * + * @return null|string + */ + private function getExpired() + { + if (count($this->expired) < 1) { + return null; + } + $expired = key($this->expired); + $this->increment($this->expired); + return $expired; + } + + private function increment(&$array) + { + if (next($array) === false) { + reset($array); + } + } +} diff --git a/lib/aws/Aws/EndpointDiscovery/Exception/ConfigurationException.php b/lib/aws/Aws/EndpointDiscovery/Exception/ConfigurationException.php new file mode 100644 index 0000000..f87cdbf --- /dev/null +++ b/lib/aws/Aws/EndpointDiscovery/Exception/ConfigurationException.php @@ -0,0 +1,14 @@ +<?php +namespace Aws\EndpointDiscovery\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; + +/** + * Represents an error interacting with configuration for endpoint discovery + */ +class ConfigurationException extends \RuntimeException implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; +} diff --git a/lib/aws/Aws/EndpointParameterMiddleware.php b/lib/aws/Aws/EndpointParameterMiddleware.php new file mode 100644 index 0000000..b9d822a --- /dev/null +++ b/lib/aws/Aws/EndpointParameterMiddleware.php @@ -0,0 +1,84 @@ +<?php +namespace Aws; + +use Aws\Api\Service; +use Psr\Http\Message\RequestInterface; +use Psr\Log\InvalidArgumentException; + +/** + * Used to update the host based on a modeled endpoint trait + * + * IMPORTANT: this middleware must be added after the "build" step. + * + * @internal + */ +class EndpointParameterMiddleware +{ + + /** + * Create a middleware wrapper function + * + * @param Service $service + * @param array $args + * @return \Closure + */ + public static function wrap(Service $service) + { + return function (callable $handler) use ($service) { + return new self($handler, $service); + }; + } + + public function __construct(callable $nextHandler, Service $service) + { + $this->nextHandler = $nextHandler; + $this->service = $service; + } + + public function __invoke(CommandInterface $command, RequestInterface $request) + { + $nextHandler = $this->nextHandler; + + $operation = $this->service->getOperation($command->getName()); + + if (!empty($operation['endpoint']['hostPrefix'])) { + $prefix = $operation['endpoint']['hostPrefix']; + + // Captures endpoint parameters stored in the modeled host. + // These are denoted by enclosure in braces, i.e. '{param}' + preg_match_all("/\{([a-zA-Z0-9]+)}/", $prefix, $parameters); + + if (!empty($parameters[1])) { + + // Captured parameters without braces stored in $parameters[1], + // which should correspond to members in the Command object + foreach ($parameters[1] as $index => $parameter) { + if (empty($command[$parameter])) { + throw new \InvalidArgumentException( + "The parameter '{$parameter}' must be set and not empty." + ); + } + + // Captured parameters with braces stored in $parameters[0], + // which are replaced by their corresponding Command value + $prefix = str_replace( + $parameters[0][$index], + $command[$parameter], + $prefix + ); + } + } + + $uri = $request->getUri(); + $host = $prefix . $uri->getHost(); + if (!\Aws\is_valid_hostname($host)) { + throw new \InvalidArgumentException( + "The supplied parameters result in an invalid hostname: '{$host}'." + ); + } + $request = $request->withUri($uri->withHost($host)); + } + + return $nextHandler($command, $request); + } +} diff --git a/lib/aws/Aws/Exception/AwsException.php b/lib/aws/Aws/Exception/AwsException.php new file mode 100644 index 0000000..66900c6 --- /dev/null +++ b/lib/aws/Aws/Exception/AwsException.php @@ -0,0 +1,237 @@ +<?php +namespace Aws\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; +use Aws\ResponseContainerInterface; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\RequestInterface; +use Aws\CommandInterface; +use Aws\ResultInterface; + +/** + * Represents an AWS exception that is thrown when a command fails. + */ +class AwsException extends \RuntimeException implements + MonitoringEventsInterface, + ResponseContainerInterface +{ + use HasMonitoringEventsTrait; + + /** @var ResponseInterface */ + private $response; + private $request; + private $result; + private $command; + private $requestId; + private $errorType; + private $errorCode; + private $connectionError; + private $transferInfo; + private $errorMessage; + private $maxRetriesExceeded; + + + /** + * @param string $message Exception message + * @param CommandInterface $command + * @param array $context Exception context + * @param \Exception $previous Previous exception (if any) + */ + public function __construct( + $message, + CommandInterface $command, + array $context = [], + \Exception $previous = null + ) { + $this->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; + $this->transferInfo = isset($context['transfer_stats']) + ? $context['transfer_stats'] + : []; + $this->errorMessage = isset($context['message']) + ? $context['message'] + : null; + $this->monitoringEvents = []; + $this->maxRetriesExceeded = false; + 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 concise error message if any. + * + * @return string|null + */ + public function getAwsErrorMessage() + { + return $this->errorMessage; + } + + /** + * 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; + } + + /** + * Get all transfer information as an associative array if no $name + * argument is supplied, or gets a specific transfer statistic if + * a $name attribute is supplied (e.g., 'retries_attempted'). + * + * @param string $name Name of the transfer stat to retrieve + * + * @return mixed|null|array + */ + public function getTransferInfo($name = null) + { + if (!$name) { + return $this->transferInfo; + } + + return isset($this->transferInfo[$name]) + ? $this->transferInfo[$name] + : null; + } + + /** + * Replace the transfer information associated with an exception. + * + * @param array $info + */ + public function setTransferInfo(array $info) + { + $this->transferInfo = $info; + } + + /** + * Returns whether the max number of retries is exceeded. + * + * @return bool + */ + public function isMaxRetriesExceeded() + { + return $this->maxRetriesExceeded; + } + + /** + * Sets the flag for max number of retries exceeded. + */ + public function setMaxRetriesExceeded() + { + $this->maxRetriesExceeded = true; + } +} diff --git a/lib/aws/Aws/Exception/CouldNotCreateChecksumException.php b/lib/aws/Aws/Exception/CouldNotCreateChecksumException.php new file mode 100644 index 0000000..5c5f80e --- /dev/null +++ b/lib/aws/Aws/Exception/CouldNotCreateChecksumException.php @@ -0,0 +1,25 @@ +<?php +namespace Aws\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; + +class CouldNotCreateChecksumException extends \RuntimeException implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; + + public function __construct($algorithm, \Exception $previous = null) + { + $prefix = $algorithm === 'md5' ? "An" : "A"; + parent::__construct("{$prefix} {$algorithm} checksum could not be " + . "calculated for the provided upload body, because it was not " + . "seekable. To prevent this error you can either 1) include the " + . "ContentMD5 or ContentSHA256 parameters with your request, 2) " + . "use a seekable stream for the body, or 3) wrap the non-seekable " + . "stream in a GuzzleHttp\\Psr7\\CachingStream object. You " + . "should be careful though and remember that the CachingStream " + . "utilizes PHP temp streams. This means that the stream will be " + . "temporarily stored on the local disk.", 0, $previous); + } +} diff --git a/lib/aws/Aws/Exception/CredentialsException.php b/lib/aws/Aws/Exception/CredentialsException.php new file mode 100644 index 0000000..0801b62 --- /dev/null +++ b/lib/aws/Aws/Exception/CredentialsException.php @@ -0,0 +1,11 @@ +<?php +namespace Aws\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; + +class CredentialsException extends \RuntimeException implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; +} diff --git a/lib/aws/Aws/Exception/EventStreamDataException.php b/lib/aws/Aws/Exception/EventStreamDataException.php new file mode 100644 index 0000000..4078595 --- /dev/null +++ b/lib/aws/Aws/Exception/EventStreamDataException.php @@ -0,0 +1,38 @@ +<?php +namespace Aws\Exception; + +/** + * Represents an exception that was supplied via an EventStream. + */ +class EventStreamDataException extends \RuntimeException +{ + private $errorCode; + private $errorMessage; + + public function __construct($code, $message) + { + $this->errorCode = $code; + $this->errorMessage = $message; + parent::__construct($message); + } + + /** + * Get the AWS error code. + * + * @return string|null Returns null if no response was received + */ + public function getAwsErrorCode() + { + return $this->errorCode; + } + + /** + * Get the concise error message if any. + * + * @return string|null + */ + public function getAwsErrorMessage() + { + return $this->errorMessage; + } +} diff --git a/lib/aws/Aws/Exception/MultipartUploadException.php b/lib/aws/Aws/Exception/MultipartUploadException.php new file mode 100644 index 0000000..74e4ea2 --- /dev/null +++ b/lib/aws/Aws/Exception/MultipartUploadException.php @@ -0,0 +1,63 @@ +<?php +namespace Aws\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; +use Aws\Multipart\UploadState; + +class MultipartUploadException extends \RuntimeException implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; + + /** @var UploadState State of the erroneous transfer */ + private $state; + + /** + * @param UploadState $state Upload state at time of the exception. + * @param \Exception|array $prev Exception being thrown. + */ + public function __construct(UploadState $state, $prev = null) { + $msg = 'An exception occurred while performing a multipart upload'; + + if (is_array($prev)) { + $msg = strtr($msg, ['performing' => '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]); + } + $msg .= ": {$prev->getMessage()}"; + } + + 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/Aws/Exception/UnresolvedApiException.php b/lib/aws/Aws/Exception/UnresolvedApiException.php new file mode 100644 index 0000000..e204571 --- /dev/null +++ b/lib/aws/Aws/Exception/UnresolvedApiException.php @@ -0,0 +1,11 @@ +<?php +namespace Aws\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; + +class UnresolvedApiException extends \RuntimeException implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; +} diff --git a/lib/aws/Aws/Exception/UnresolvedEndpointException.php b/lib/aws/Aws/Exception/UnresolvedEndpointException.php new file mode 100644 index 0000000..77d7419 --- /dev/null +++ b/lib/aws/Aws/Exception/UnresolvedEndpointException.php @@ -0,0 +1,11 @@ +<?php +namespace Aws\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; + +class UnresolvedEndpointException extends \RuntimeException implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; +} diff --git a/lib/aws/Aws/Exception/UnresolvedSignatureException.php b/lib/aws/Aws/Exception/UnresolvedSignatureException.php new file mode 100644 index 0000000..a04674c --- /dev/null +++ b/lib/aws/Aws/Exception/UnresolvedSignatureException.php @@ -0,0 +1,11 @@ +<?php +namespace Aws\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; + +class UnresolvedSignatureException extends \RuntimeException implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; +} diff --git a/lib/aws/Aws/FMS/Exception/FMSException.php b/lib/aws/Aws/FMS/Exception/FMSException.php new file mode 100644 index 0000000..4b9f5af --- /dev/null +++ b/lib/aws/Aws/FMS/Exception/FMSException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\FMS\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Firewall Management Service** service. + */ +class FMSException extends AwsException {} diff --git a/lib/aws/Aws/FMS/FMSClient.php b/lib/aws/Aws/FMS/FMSClient.php new file mode 100644 index 0000000..e63089b --- /dev/null +++ b/lib/aws/Aws/FMS/FMSClient.php @@ -0,0 +1,37 @@ +<?php +namespace Aws\FMS; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Firewall Management Service** service. + * @method \Aws\Result associateAdminAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateAdminAccountAsync(array $args = []) + * @method \Aws\Result deleteNotificationChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteNotificationChannelAsync(array $args = []) + * @method \Aws\Result deletePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePolicyAsync(array $args = []) + * @method \Aws\Result disassociateAdminAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateAdminAccountAsync(array $args = []) + * @method \Aws\Result getAdminAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAdminAccountAsync(array $args = []) + * @method \Aws\Result getComplianceDetail(array $args = []) + * @method \GuzzleHttp\Promise\Promise getComplianceDetailAsync(array $args = []) + * @method \Aws\Result getNotificationChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise getNotificationChannelAsync(array $args = []) + * @method \Aws\Result getPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPolicyAsync(array $args = []) + * @method \Aws\Result getProtectionStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getProtectionStatusAsync(array $args = []) + * @method \Aws\Result listComplianceStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise listComplianceStatusAsync(array $args = []) + * @method \Aws\Result listMemberAccounts(array $args = []) + * @method \GuzzleHttp\Promise\Promise listMemberAccountsAsync(array $args = []) + * @method \Aws\Result listPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPoliciesAsync(array $args = []) + * @method \Aws\Result putNotificationChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise putNotificationChannelAsync(array $args = []) + * @method \Aws\Result putPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putPolicyAsync(array $args = []) + */ +class FMSClient extends AwsClient {} diff --git a/lib/aws/Aws/FSx/Exception/FSxException.php b/lib/aws/Aws/FSx/Exception/FSxException.php new file mode 100644 index 0000000..f659d1f --- /dev/null +++ b/lib/aws/Aws/FSx/Exception/FSxException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\FSx\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon FSx** service. + */ +class FSxException extends AwsException {} diff --git a/lib/aws/Aws/FSx/FSxClient.php b/lib/aws/Aws/FSx/FSxClient.php new file mode 100644 index 0000000..fa28ee6 --- /dev/null +++ b/lib/aws/Aws/FSx/FSxClient.php @@ -0,0 +1,31 @@ +<?php +namespace Aws\FSx; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon FSx** service. + * @method \Aws\Result createBackup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBackupAsync(array $args = []) + * @method \Aws\Result createFileSystem(array $args = []) + * @method \GuzzleHttp\Promise\Promise createFileSystemAsync(array $args = []) + * @method \Aws\Result createFileSystemFromBackup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createFileSystemFromBackupAsync(array $args = []) + * @method \Aws\Result deleteBackup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBackupAsync(array $args = []) + * @method \Aws\Result deleteFileSystem(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteFileSystemAsync(array $args = []) + * @method \Aws\Result describeBackups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeBackupsAsync(array $args = []) + * @method \Aws\Result describeFileSystems(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeFileSystemsAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateFileSystem(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateFileSystemAsync(array $args = []) + */ +class FSxClient extends AwsClient {} diff --git a/lib/aws/Aws/Firehose/Exception/FirehoseException.php b/lib/aws/Aws/Firehose/Exception/FirehoseException.php new file mode 100644 index 0000000..bfab3da --- /dev/null +++ b/lib/aws/Aws/Firehose/Exception/FirehoseException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Firehose\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Kinesis Firehose** service. + */ +class FirehoseException extends AwsException {} diff --git a/lib/aws/Aws/Firehose/FirehoseClient.php b/lib/aws/Aws/Firehose/FirehoseClient.php new file mode 100644 index 0000000..a918be4 --- /dev/null +++ b/lib/aws/Aws/Firehose/FirehoseClient.php @@ -0,0 +1,34 @@ +<?php +namespace Aws\Firehose; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Kinesis Firehose** service. + * + * @method \Aws\Result createDeliveryStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDeliveryStreamAsync(array $args = []) + * @method \Aws\Result deleteDeliveryStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDeliveryStreamAsync(array $args = []) + * @method \Aws\Result describeDeliveryStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDeliveryStreamAsync(array $args = []) + * @method \Aws\Result listDeliveryStreams(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDeliveryStreamsAsync(array $args = []) + * @method \Aws\Result listTagsForDeliveryStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForDeliveryStreamAsync(array $args = []) + * @method \Aws\Result putRecord(array $args = []) + * @method \GuzzleHttp\Promise\Promise putRecordAsync(array $args = []) + * @method \Aws\Result putRecordBatch(array $args = []) + * @method \GuzzleHttp\Promise\Promise putRecordBatchAsync(array $args = []) + * @method \Aws\Result startDeliveryStreamEncryption(array $args = []) + * @method \GuzzleHttp\Promise\Promise startDeliveryStreamEncryptionAsync(array $args = []) + * @method \Aws\Result stopDeliveryStreamEncryption(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopDeliveryStreamEncryptionAsync(array $args = []) + * @method \Aws\Result tagDeliveryStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagDeliveryStreamAsync(array $args = []) + * @method \Aws\Result untagDeliveryStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagDeliveryStreamAsync(array $args = []) + * @method \Aws\Result updateDestination(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDestinationAsync(array $args = []) + */ +class FirehoseClient extends AwsClient {} diff --git a/lib/aws/Aws/GameLift/Exception/GameLiftException.php b/lib/aws/Aws/GameLift/Exception/GameLiftException.php new file mode 100644 index 0000000..8f6fcbc --- /dev/null +++ b/lib/aws/Aws/GameLift/Exception/GameLiftException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\GameLift\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon GameLift** service. + */ +class GameLiftException extends AwsException {} diff --git a/lib/aws/Aws/GameLift/GameLiftClient.php b/lib/aws/Aws/GameLift/GameLiftClient.php new file mode 100644 index 0000000..b377966 --- /dev/null +++ b/lib/aws/Aws/GameLift/GameLiftClient.php @@ -0,0 +1,146 @@ +<?php +namespace Aws\GameLift; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon GameLift** service. + * + * @method \Aws\Result acceptMatch(array $args = []) + * @method \GuzzleHttp\Promise\Promise acceptMatchAsync(array $args = []) + * @method \Aws\Result createAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAliasAsync(array $args = []) + * @method \Aws\Result createBuild(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBuildAsync(array $args = []) + * @method \Aws\Result createFleet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createFleetAsync(array $args = []) + * @method \Aws\Result createGameSession(array $args = []) + * @method \GuzzleHttp\Promise\Promise createGameSessionAsync(array $args = []) + * @method \Aws\Result createGameSessionQueue(array $args = []) + * @method \GuzzleHttp\Promise\Promise createGameSessionQueueAsync(array $args = []) + * @method \Aws\Result createMatchmakingConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise createMatchmakingConfigurationAsync(array $args = []) + * @method \Aws\Result createMatchmakingRuleSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createMatchmakingRuleSetAsync(array $args = []) + * @method \Aws\Result createPlayerSession(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPlayerSessionAsync(array $args = []) + * @method \Aws\Result createPlayerSessions(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPlayerSessionsAsync(array $args = []) + * @method \Aws\Result createVpcPeeringAuthorization(array $args = []) + * @method \GuzzleHttp\Promise\Promise createVpcPeeringAuthorizationAsync(array $args = []) + * @method \Aws\Result createVpcPeeringConnection(array $args = []) + * @method \GuzzleHttp\Promise\Promise createVpcPeeringConnectionAsync(array $args = []) + * @method \Aws\Result deleteAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAliasAsync(array $args = []) + * @method \Aws\Result deleteBuild(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBuildAsync(array $args = []) + * @method \Aws\Result deleteFleet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteFleetAsync(array $args = []) + * @method \Aws\Result deleteGameSessionQueue(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteGameSessionQueueAsync(array $args = []) + * @method \Aws\Result deleteMatchmakingConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteMatchmakingConfigurationAsync(array $args = []) + * @method \Aws\Result deleteMatchmakingRuleSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteMatchmakingRuleSetAsync(array $args = []) + * @method \Aws\Result deleteScalingPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteScalingPolicyAsync(array $args = []) + * @method \Aws\Result deleteVpcPeeringAuthorization(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVpcPeeringAuthorizationAsync(array $args = []) + * @method \Aws\Result deleteVpcPeeringConnection(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVpcPeeringConnectionAsync(array $args = []) + * @method \Aws\Result describeAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAliasAsync(array $args = []) + * @method \Aws\Result describeBuild(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeBuildAsync(array $args = []) + * @method \Aws\Result describeEC2InstanceLimits(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEC2InstanceLimitsAsync(array $args = []) + * @method \Aws\Result describeFleetAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeFleetAttributesAsync(array $args = []) + * @method \Aws\Result describeFleetCapacity(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeFleetCapacityAsync(array $args = []) + * @method \Aws\Result describeFleetEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeFleetEventsAsync(array $args = []) + * @method \Aws\Result describeFleetPortSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeFleetPortSettingsAsync(array $args = []) + * @method \Aws\Result describeFleetUtilization(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeFleetUtilizationAsync(array $args = []) + * @method \Aws\Result describeGameSessionDetails(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeGameSessionDetailsAsync(array $args = []) + * @method \Aws\Result describeGameSessionPlacement(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeGameSessionPlacementAsync(array $args = []) + * @method \Aws\Result describeGameSessionQueues(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeGameSessionQueuesAsync(array $args = []) + * @method \Aws\Result describeGameSessions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeGameSessionsAsync(array $args = []) + * @method \Aws\Result describeInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeInstancesAsync(array $args = []) + * @method \Aws\Result describeMatchmaking(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMatchmakingAsync(array $args = []) + * @method \Aws\Result describeMatchmakingConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMatchmakingConfigurationsAsync(array $args = []) + * @method \Aws\Result describeMatchmakingRuleSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMatchmakingRuleSetsAsync(array $args = []) + * @method \Aws\Result describePlayerSessions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describePlayerSessionsAsync(array $args = []) + * @method \Aws\Result describeRuntimeConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRuntimeConfigurationAsync(array $args = []) + * @method \Aws\Result describeScalingPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeScalingPoliciesAsync(array $args = []) + * @method \Aws\Result describeVpcPeeringAuthorizations(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVpcPeeringAuthorizationsAsync(array $args = []) + * @method \Aws\Result describeVpcPeeringConnections(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVpcPeeringConnectionsAsync(array $args = []) + * @method \Aws\Result getGameSessionLogUrl(array $args = []) + * @method \GuzzleHttp\Promise\Promise getGameSessionLogUrlAsync(array $args = []) + * @method \Aws\Result getInstanceAccess(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInstanceAccessAsync(array $args = []) + * @method \Aws\Result listAliases(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAliasesAsync(array $args = []) + * @method \Aws\Result listBuilds(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBuildsAsync(array $args = []) + * @method \Aws\Result listFleets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listFleetsAsync(array $args = []) + * @method \Aws\Result putScalingPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putScalingPolicyAsync(array $args = []) + * @method \Aws\Result requestUploadCredentials(array $args = []) + * @method \GuzzleHttp\Promise\Promise requestUploadCredentialsAsync(array $args = []) + * @method \Aws\Result resolveAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise resolveAliasAsync(array $args = []) + * @method \Aws\Result searchGameSessions(array $args = []) + * @method \GuzzleHttp\Promise\Promise searchGameSessionsAsync(array $args = []) + * @method \Aws\Result startFleetActions(array $args = []) + * @method \GuzzleHttp\Promise\Promise startFleetActionsAsync(array $args = []) + * @method \Aws\Result startGameSessionPlacement(array $args = []) + * @method \GuzzleHttp\Promise\Promise startGameSessionPlacementAsync(array $args = []) + * @method \Aws\Result startMatchBackfill(array $args = []) + * @method \GuzzleHttp\Promise\Promise startMatchBackfillAsync(array $args = []) + * @method \Aws\Result startMatchmaking(array $args = []) + * @method \GuzzleHttp\Promise\Promise startMatchmakingAsync(array $args = []) + * @method \Aws\Result stopFleetActions(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopFleetActionsAsync(array $args = []) + * @method \Aws\Result stopGameSessionPlacement(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopGameSessionPlacementAsync(array $args = []) + * @method \Aws\Result stopMatchmaking(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopMatchmakingAsync(array $args = []) + * @method \Aws\Result updateAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAliasAsync(array $args = []) + * @method \Aws\Result updateBuild(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateBuildAsync(array $args = []) + * @method \Aws\Result updateFleetAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateFleetAttributesAsync(array $args = []) + * @method \Aws\Result updateFleetCapacity(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateFleetCapacityAsync(array $args = []) + * @method \Aws\Result updateFleetPortSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateFleetPortSettingsAsync(array $args = []) + * @method \Aws\Result updateGameSession(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateGameSessionAsync(array $args = []) + * @method \Aws\Result updateGameSessionQueue(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateGameSessionQueueAsync(array $args = []) + * @method \Aws\Result updateMatchmakingConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateMatchmakingConfigurationAsync(array $args = []) + * @method \Aws\Result updateRuntimeConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRuntimeConfigurationAsync(array $args = []) + * @method \Aws\Result validateMatchmakingRuleSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise validateMatchmakingRuleSetAsync(array $args = []) + */ +class GameLiftClient extends AwsClient {} diff --git a/lib/aws/Aws/Glacier/Exception/GlacierException.php b/lib/aws/Aws/Glacier/Exception/GlacierException.php new file mode 100644 index 0000000..ff78c0b --- /dev/null +++ b/lib/aws/Aws/Glacier/Exception/GlacierException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Glacier\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon Glacier service. + */ +class GlacierException extends AwsException {} diff --git a/lib/aws/Aws/Glacier/GlacierClient.php b/lib/aws/Aws/Glacier/GlacierClient.php new file mode 100644 index 0000000..d282313 --- /dev/null +++ b/lib/aws/Aws/Glacier/GlacierClient.php @@ -0,0 +1,251 @@ +<?php +namespace Aws\Glacier; + +use Aws\Api\ApiProvider; +use Aws\Api\DocModel; +use Aws\Api\Service; +use Aws\AwsClient; +use Aws\CommandInterface; +use Aws\Exception\CouldNotCreateChecksumException; +use Aws\HashingStream; +use Aws\Middleware; +use Aws\PhpHash; +use Psr\Http\Message\RequestInterface; + +/** + * This client is used to interact with the **Amazon Glacier** service. + * + * @method \Aws\Result abortMultipartUpload(array $args = []) + * @method \GuzzleHttp\Promise\Promise abortMultipartUploadAsync(array $args = []) + * @method \Aws\Result abortVaultLock(array $args = []) + * @method \GuzzleHttp\Promise\Promise abortVaultLockAsync(array $args = []) + * @method \Aws\Result addTagsToVault(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsToVaultAsync(array $args = []) + * @method \Aws\Result completeMultipartUpload(array $args = []) + * @method \GuzzleHttp\Promise\Promise completeMultipartUploadAsync(array $args = []) + * @method \Aws\Result completeVaultLock(array $args = []) + * @method \GuzzleHttp\Promise\Promise completeVaultLockAsync(array $args = []) + * @method \Aws\Result createVault(array $args = []) + * @method \GuzzleHttp\Promise\Promise createVaultAsync(array $args = []) + * @method \Aws\Result deleteArchive(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteArchiveAsync(array $args = []) + * @method \Aws\Result deleteVault(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVaultAsync(array $args = []) + * @method \Aws\Result deleteVaultAccessPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVaultAccessPolicyAsync(array $args = []) + * @method \Aws\Result deleteVaultNotifications(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVaultNotificationsAsync(array $args = []) + * @method \Aws\Result describeJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeJobAsync(array $args = []) + * @method \Aws\Result describeVault(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVaultAsync(array $args = []) + * @method \Aws\Result getDataRetrievalPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDataRetrievalPolicyAsync(array $args = []) + * @method \Aws\Result getJobOutput(array $args = []) + * @method \GuzzleHttp\Promise\Promise getJobOutputAsync(array $args = []) + * @method \Aws\Result getVaultAccessPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getVaultAccessPolicyAsync(array $args = []) + * @method \Aws\Result getVaultLock(array $args = []) + * @method \GuzzleHttp\Promise\Promise getVaultLockAsync(array $args = []) + * @method \Aws\Result getVaultNotifications(array $args = []) + * @method \GuzzleHttp\Promise\Promise getVaultNotificationsAsync(array $args = []) + * @method \Aws\Result initiateJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise initiateJobAsync(array $args = []) + * @method \Aws\Result initiateMultipartUpload(array $args = []) + * @method \GuzzleHttp\Promise\Promise initiateMultipartUploadAsync(array $args = []) + * @method \Aws\Result initiateVaultLock(array $args = []) + * @method \GuzzleHttp\Promise\Promise initiateVaultLockAsync(array $args = []) + * @method \Aws\Result listJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listJobsAsync(array $args = []) + * @method \Aws\Result listMultipartUploads(array $args = []) + * @method \GuzzleHttp\Promise\Promise listMultipartUploadsAsync(array $args = []) + * @method \Aws\Result listParts(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPartsAsync(array $args = []) + * @method \Aws\Result listProvisionedCapacity(array $args = []) + * @method \GuzzleHttp\Promise\Promise listProvisionedCapacityAsync(array $args = []) + * @method \Aws\Result listTagsForVault(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForVaultAsync(array $args = []) + * @method \Aws\Result listVaults(array $args = []) + * @method \GuzzleHttp\Promise\Promise listVaultsAsync(array $args = []) + * @method \Aws\Result purchaseProvisionedCapacity(array $args = []) + * @method \GuzzleHttp\Promise\Promise purchaseProvisionedCapacityAsync(array $args = []) + * @method \Aws\Result removeTagsFromVault(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeTagsFromVaultAsync(array $args = []) + * @method \Aws\Result setDataRetrievalPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise setDataRetrievalPolicyAsync(array $args = []) + * @method \Aws\Result setVaultAccessPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise setVaultAccessPolicyAsync(array $args = []) + * @method \Aws\Result setVaultNotifications(array $args = []) + * @method \GuzzleHttp\Promise\Promise setVaultNotificationsAsync(array $args = []) + * @method \Aws\Result uploadArchive(array $args = []) + * @method \GuzzleHttp\Promise\Promise uploadArchiveAsync(array $args = []) + * @method \Aws\Result uploadMultipartPart(array $args = []) + * @method \GuzzleHttp\Promise\Promise uploadMultipartPartAsync(array $args = []) + */ +class GlacierClient extends AwsClient +{ + public function __construct(array $args) + { + parent::__construct($args); + + // Setup middleware. + $stack = $this->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' + ); + } + + /** + * {@inheritdoc} + * + * 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 callable + * @throws CouldNotCreateChecksumException if the body is not seekable. + */ + private function getChecksumsMiddleware() + { + return function (callable $handler) { + return function ( + CommandInterface $command, + RequestInterface $request = null + ) use ($handler) { + // Accept "ContentSHA256" with a lowercase "c" to match other Glacier params. + if (!$command['ContentSHA256'] && $command['contentSHA256']) { + $command['ContentSHA256'] = $command['contentSHA256']; + unset($command['contentSHA256']); + } + + // If uploading, then make sure checksums are added. + $name = $command->getName(); + if (($name === 'UploadArchive' || $name === 'UploadMultipartPart') + && (!$command['checksum'] || !$command['ContentSHA256']) + ) { + $body = $request->getBody(); + if (!$body->isSeekable()) { + throw new CouldNotCreateChecksumException('sha256'); + } + + // 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']; + + // Add the ContentSHA256 parameter. + $docs['shapes']['ContentSHA256']['base'] = 'A SHA256 hash of the content of the request body'; + $api['shapes']['ContentSHA256'] = ['type' => 'string']; + $api['shapes']['UploadArchiveInput']['members']['contentSHA256'] = ['shape' => 'ContentSHA256']; + $api['shapes']['UploadMultipartPartInput']['members']['contentSHA256'] = ['shape' => 'ContentSHA256']; + + // Add information about "checksum" and "ContentSHA256" being optional. + $optional = '<div class="alert alert-info">The SDK will compute this value ' + . 'for you on your behalf if it is not supplied.</div>'; + $docs['shapes']['checksum']['append'] = $optional; + $docs['shapes']['ContentSHA256']['append'] = $optional; + + // Make "accountId" optional for all operations. + foreach ($api['operations'] as $operation) { + $inputShape =& $api['shapes'][$operation['input']['shape']]; + $accountIdIndex = array_search('accountId', $inputShape['required']); + unset($inputShape['required'][$accountIdIndex]); + } + // Add information about the default value for "accountId". + $optional = '<div class="alert alert-info">The SDK will set this value to "-" by default.</div>'; + foreach ($docs['shapes']['string']['refs'] as $name => &$ref) { + if (strpos($name, 'accountId')) { + $ref .= $optional; + } + } + + return [ + new Service($api, ApiProvider::defaultProvider()), + new DocModel($docs) + ]; + } +} diff --git a/lib/aws/Aws/Glacier/MultipartUploader.php b/lib/aws/Aws/Glacier/MultipartUploader.php new file mode 100644 index 0000000..46710cd --- /dev/null +++ b/lib/aws/Aws/Glacier/MultipartUploader.php @@ -0,0 +1,284 @@ +<?php +namespace Aws\Glacier; + +use Aws\CommandInterface; +use Aws\HashingStream; +use Aws\Multipart\AbstractUploader; +use Aws\Multipart\UploadState; +use Aws\PhpHash; +use Aws\ResultInterface; +use GuzzleHttp\Psr7; +use Psr\Http\Message\StreamInterface as Stream; + +/** + * Encapsulates the execution of a multipart upload to Glacier. + */ +class MultipartUploader extends AbstractUploader +{ + const PART_MIN_SIZE = 1048576; + + private static $validPartSizes = [ + 1048576, // 1 MB + 2097152, // 2 MB + 4194304, // 4 MB + 8388608, // 8 MB + 16777216, // 16 MB + 33554432, // 32 MB + 67108864, // 64 MB + 134217728, // 128 MB + 268435456, // 256 MB + 536870912, // 512 MB + 1073741824, // 1 GB + 2147483648, // 2 GB + 4294967296, // 4 GB + ]; + + /** + * Creates an UploadState object for a multipart upload by querying the + * service for the specified upload's information. + * + * @param GlacierClient $client GlacierClient object to use. + * @param string $vaultName Vault name for the multipart upload. + * @param string $uploadId Upload ID for the multipart upload. + * @param string $accountId Account ID for the multipart upload. + * + * @return UploadState + */ + public static function getStateFromService( + GlacierClient $client, + $vaultName, + $uploadId, + $accountId = '-' + ) { + $state = new UploadState([ + 'accountId' => $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). + * - prepare_data_source: (callable) Callback to invoke before starting the + * multipart upload workflow. The callback should have a function + * signature like `function () {...}`. + * - 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/Aws/Glacier/TreeHash.php b/lib/aws/Aws/Glacier/TreeHash.php new file mode 100644 index 0000000..9289725 --- /dev/null +++ b/lib/aws/Aws/Glacier/TreeHash.php @@ -0,0 +1,118 @@ +<?php +namespace Aws\Glacier; + +use Aws\HashInterface; + +/** + * Encapsulates the creation of a tree hash from streamed data + */ +class TreeHash implements HashInterface +{ + const MB = 1048576; + const EMPTY_HASH = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'; + + /** @var string Algorithm used for hashing. */ + private $algorithm; + + /** @var string Buffered data that has not yet been hashed. */ + private $buffer; + + /** @var array Binary checksums from which the tree hash is derived. */ + private $checksums = []; + + /** @var string Resulting hash in binary form. */ + private $hash; + + public function __construct($algorithm = 'sha256') + { + $this->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 (strlen($this->buffer) > 0) { + $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/Aws/GlobalAccelerator/Exception/GlobalAcceleratorException.php b/lib/aws/Aws/GlobalAccelerator/Exception/GlobalAcceleratorException.php new file mode 100644 index 0000000..efff6de --- /dev/null +++ b/lib/aws/Aws/GlobalAccelerator/Exception/GlobalAcceleratorException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\GlobalAccelerator\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Global Accelerator** service. + */ +class GlobalAcceleratorException extends AwsException {} diff --git a/lib/aws/Aws/GlobalAccelerator/GlobalAcceleratorClient.php b/lib/aws/Aws/GlobalAccelerator/GlobalAcceleratorClient.php new file mode 100644 index 0000000..71ffc9d --- /dev/null +++ b/lib/aws/Aws/GlobalAccelerator/GlobalAcceleratorClient.php @@ -0,0 +1,43 @@ +<?php +namespace Aws\GlobalAccelerator; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Global Accelerator** service. + * @method \Aws\Result createAccelerator(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAcceleratorAsync(array $args = []) + * @method \Aws\Result createEndpointGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createEndpointGroupAsync(array $args = []) + * @method \Aws\Result createListener(array $args = []) + * @method \GuzzleHttp\Promise\Promise createListenerAsync(array $args = []) + * @method \Aws\Result deleteAccelerator(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAcceleratorAsync(array $args = []) + * @method \Aws\Result deleteEndpointGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteEndpointGroupAsync(array $args = []) + * @method \Aws\Result deleteListener(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteListenerAsync(array $args = []) + * @method \Aws\Result describeAccelerator(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAcceleratorAsync(array $args = []) + * @method \Aws\Result describeAcceleratorAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAcceleratorAttributesAsync(array $args = []) + * @method \Aws\Result describeEndpointGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEndpointGroupAsync(array $args = []) + * @method \Aws\Result describeListener(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeListenerAsync(array $args = []) + * @method \Aws\Result listAccelerators(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAcceleratorsAsync(array $args = []) + * @method \Aws\Result listEndpointGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise listEndpointGroupsAsync(array $args = []) + * @method \Aws\Result listListeners(array $args = []) + * @method \GuzzleHttp\Promise\Promise listListenersAsync(array $args = []) + * @method \Aws\Result updateAccelerator(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAcceleratorAsync(array $args = []) + * @method \Aws\Result updateAcceleratorAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAcceleratorAttributesAsync(array $args = []) + * @method \Aws\Result updateEndpointGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateEndpointGroupAsync(array $args = []) + * @method \Aws\Result updateListener(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateListenerAsync(array $args = []) + */ +class GlobalAcceleratorClient extends AwsClient {} diff --git a/lib/aws/Aws/Glue/Exception/GlueException.php b/lib/aws/Aws/Glue/Exception/GlueException.php new file mode 100644 index 0000000..92aa32d --- /dev/null +++ b/lib/aws/Aws/Glue/Exception/GlueException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Glue\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Glue** service. + */ +class GlueException extends AwsException {} diff --git a/lib/aws/Aws/Glue/GlueClient.php b/lib/aws/Aws/Glue/GlueClient.php new file mode 100644 index 0000000..e5884e0 --- /dev/null +++ b/lib/aws/Aws/Glue/GlueClient.php @@ -0,0 +1,205 @@ +<?php +namespace Aws\Glue; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Glue** service. + * @method \Aws\Result batchCreatePartition(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchCreatePartitionAsync(array $args = []) + * @method \Aws\Result batchDeleteConnection(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchDeleteConnectionAsync(array $args = []) + * @method \Aws\Result batchDeletePartition(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchDeletePartitionAsync(array $args = []) + * @method \Aws\Result batchDeleteTable(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchDeleteTableAsync(array $args = []) + * @method \Aws\Result batchDeleteTableVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchDeleteTableVersionAsync(array $args = []) + * @method \Aws\Result batchGetCrawlers(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetCrawlersAsync(array $args = []) + * @method \Aws\Result batchGetDevEndpoints(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetDevEndpointsAsync(array $args = []) + * @method \Aws\Result batchGetJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetJobsAsync(array $args = []) + * @method \Aws\Result batchGetPartition(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetPartitionAsync(array $args = []) + * @method \Aws\Result batchGetTriggers(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetTriggersAsync(array $args = []) + * @method \Aws\Result batchStopJobRun(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchStopJobRunAsync(array $args = []) + * @method \Aws\Result createClassifier(array $args = []) + * @method \GuzzleHttp\Promise\Promise createClassifierAsync(array $args = []) + * @method \Aws\Result createConnection(array $args = []) + * @method \GuzzleHttp\Promise\Promise createConnectionAsync(array $args = []) + * @method \Aws\Result createCrawler(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCrawlerAsync(array $args = []) + * @method \Aws\Result createDatabase(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDatabaseAsync(array $args = []) + * @method \Aws\Result createDevEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDevEndpointAsync(array $args = []) + * @method \Aws\Result createJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise createJobAsync(array $args = []) + * @method \Aws\Result createPartition(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPartitionAsync(array $args = []) + * @method \Aws\Result createScript(array $args = []) + * @method \GuzzleHttp\Promise\Promise createScriptAsync(array $args = []) + * @method \Aws\Result createSecurityConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSecurityConfigurationAsync(array $args = []) + * @method \Aws\Result createTable(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTableAsync(array $args = []) + * @method \Aws\Result createTrigger(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTriggerAsync(array $args = []) + * @method \Aws\Result createUserDefinedFunction(array $args = []) + * @method \GuzzleHttp\Promise\Promise createUserDefinedFunctionAsync(array $args = []) + * @method \Aws\Result deleteClassifier(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteClassifierAsync(array $args = []) + * @method \Aws\Result deleteConnection(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteConnectionAsync(array $args = []) + * @method \Aws\Result deleteCrawler(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCrawlerAsync(array $args = []) + * @method \Aws\Result deleteDatabase(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDatabaseAsync(array $args = []) + * @method \Aws\Result deleteDevEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDevEndpointAsync(array $args = []) + * @method \Aws\Result deleteJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteJobAsync(array $args = []) + * @method \Aws\Result deletePartition(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePartitionAsync(array $args = []) + * @method \Aws\Result deleteResourcePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteResourcePolicyAsync(array $args = []) + * @method \Aws\Result deleteSecurityConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSecurityConfigurationAsync(array $args = []) + * @method \Aws\Result deleteTable(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTableAsync(array $args = []) + * @method \Aws\Result deleteTableVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTableVersionAsync(array $args = []) + * @method \Aws\Result deleteTrigger(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTriggerAsync(array $args = []) + * @method \Aws\Result deleteUserDefinedFunction(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserDefinedFunctionAsync(array $args = []) + * @method \Aws\Result getCatalogImportStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCatalogImportStatusAsync(array $args = []) + * @method \Aws\Result getClassifier(array $args = []) + * @method \GuzzleHttp\Promise\Promise getClassifierAsync(array $args = []) + * @method \Aws\Result getClassifiers(array $args = []) + * @method \GuzzleHttp\Promise\Promise getClassifiersAsync(array $args = []) + * @method \Aws\Result getConnection(array $args = []) + * @method \GuzzleHttp\Promise\Promise getConnectionAsync(array $args = []) + * @method \Aws\Result getConnections(array $args = []) + * @method \GuzzleHttp\Promise\Promise getConnectionsAsync(array $args = []) + * @method \Aws\Result getCrawler(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCrawlerAsync(array $args = []) + * @method \Aws\Result getCrawlerMetrics(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCrawlerMetricsAsync(array $args = []) + * @method \Aws\Result getCrawlers(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCrawlersAsync(array $args = []) + * @method \Aws\Result getDataCatalogEncryptionSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDataCatalogEncryptionSettingsAsync(array $args = []) + * @method \Aws\Result getDatabase(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDatabaseAsync(array $args = []) + * @method \Aws\Result getDatabases(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDatabasesAsync(array $args = []) + * @method \Aws\Result getDataflowGraph(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDataflowGraphAsync(array $args = []) + * @method \Aws\Result getDevEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDevEndpointAsync(array $args = []) + * @method \Aws\Result getDevEndpoints(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDevEndpointsAsync(array $args = []) + * @method \Aws\Result getJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise getJobAsync(array $args = []) + * @method \Aws\Result getJobRun(array $args = []) + * @method \GuzzleHttp\Promise\Promise getJobRunAsync(array $args = []) + * @method \Aws\Result getJobRuns(array $args = []) + * @method \GuzzleHttp\Promise\Promise getJobRunsAsync(array $args = []) + * @method \Aws\Result getJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise getJobsAsync(array $args = []) + * @method \Aws\Result getMapping(array $args = []) + * @method \GuzzleHttp\Promise\Promise getMappingAsync(array $args = []) + * @method \Aws\Result getPartition(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPartitionAsync(array $args = []) + * @method \Aws\Result getPartitions(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPartitionsAsync(array $args = []) + * @method \Aws\Result getPlan(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPlanAsync(array $args = []) + * @method \Aws\Result getResourcePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getResourcePolicyAsync(array $args = []) + * @method \Aws\Result getSecurityConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSecurityConfigurationAsync(array $args = []) + * @method \Aws\Result getSecurityConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSecurityConfigurationsAsync(array $args = []) + * @method \Aws\Result getTable(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTableAsync(array $args = []) + * @method \Aws\Result getTableVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTableVersionAsync(array $args = []) + * @method \Aws\Result getTableVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTableVersionsAsync(array $args = []) + * @method \Aws\Result getTables(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTablesAsync(array $args = []) + * @method \Aws\Result getTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTagsAsync(array $args = []) + * @method \Aws\Result getTrigger(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTriggerAsync(array $args = []) + * @method \Aws\Result getTriggers(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTriggersAsync(array $args = []) + * @method \Aws\Result getUserDefinedFunction(array $args = []) + * @method \GuzzleHttp\Promise\Promise getUserDefinedFunctionAsync(array $args = []) + * @method \Aws\Result getUserDefinedFunctions(array $args = []) + * @method \GuzzleHttp\Promise\Promise getUserDefinedFunctionsAsync(array $args = []) + * @method \Aws\Result importCatalogToGlue(array $args = []) + * @method \GuzzleHttp\Promise\Promise importCatalogToGlueAsync(array $args = []) + * @method \Aws\Result listCrawlers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listCrawlersAsync(array $args = []) + * @method \Aws\Result listDevEndpoints(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDevEndpointsAsync(array $args = []) + * @method \Aws\Result listJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listJobsAsync(array $args = []) + * @method \Aws\Result listTriggers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTriggersAsync(array $args = []) + * @method \Aws\Result putDataCatalogEncryptionSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise putDataCatalogEncryptionSettingsAsync(array $args = []) + * @method \Aws\Result putResourcePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putResourcePolicyAsync(array $args = []) + * @method \Aws\Result resetJobBookmark(array $args = []) + * @method \GuzzleHttp\Promise\Promise resetJobBookmarkAsync(array $args = []) + * @method \Aws\Result startCrawler(array $args = []) + * @method \GuzzleHttp\Promise\Promise startCrawlerAsync(array $args = []) + * @method \Aws\Result startCrawlerSchedule(array $args = []) + * @method \GuzzleHttp\Promise\Promise startCrawlerScheduleAsync(array $args = []) + * @method \Aws\Result startJobRun(array $args = []) + * @method \GuzzleHttp\Promise\Promise startJobRunAsync(array $args = []) + * @method \Aws\Result startTrigger(array $args = []) + * @method \GuzzleHttp\Promise\Promise startTriggerAsync(array $args = []) + * @method \Aws\Result stopCrawler(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopCrawlerAsync(array $args = []) + * @method \Aws\Result stopCrawlerSchedule(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopCrawlerScheduleAsync(array $args = []) + * @method \Aws\Result stopTrigger(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopTriggerAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateClassifier(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateClassifierAsync(array $args = []) + * @method \Aws\Result updateConnection(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateConnectionAsync(array $args = []) + * @method \Aws\Result updateCrawler(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateCrawlerAsync(array $args = []) + * @method \Aws\Result updateCrawlerSchedule(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateCrawlerScheduleAsync(array $args = []) + * @method \Aws\Result updateDatabase(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDatabaseAsync(array $args = []) + * @method \Aws\Result updateDevEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDevEndpointAsync(array $args = []) + * @method \Aws\Result updateJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateJobAsync(array $args = []) + * @method \Aws\Result updatePartition(array $args = []) + * @method \GuzzleHttp\Promise\Promise updatePartitionAsync(array $args = []) + * @method \Aws\Result updateTable(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateTableAsync(array $args = []) + * @method \Aws\Result updateTrigger(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateTriggerAsync(array $args = []) + * @method \Aws\Result updateUserDefinedFunction(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUserDefinedFunctionAsync(array $args = []) + */ +class GlueClient extends AwsClient {} diff --git a/lib/aws/Aws/Greengrass/Exception/GreengrassException.php b/lib/aws/Aws/Greengrass/Exception/GreengrassException.php new file mode 100644 index 0000000..78c57aa --- /dev/null +++ b/lib/aws/Aws/Greengrass/Exception/GreengrassException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Greengrass\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Greengrass** service. + */ +class GreengrassException extends AwsException {} diff --git a/lib/aws/Aws/Greengrass/GreengrassClient.php b/lib/aws/Aws/Greengrass/GreengrassClient.php new file mode 100644 index 0000000..3096154 --- /dev/null +++ b/lib/aws/Aws/Greengrass/GreengrassClient.php @@ -0,0 +1,189 @@ +<?php +namespace Aws\Greengrass; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Greengrass** service. + * @method \Aws\Result associateRoleToGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateRoleToGroupAsync(array $args = []) + * @method \Aws\Result associateServiceRoleToAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateServiceRoleToAccountAsync(array $args = []) + * @method \Aws\Result createConnectorDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise createConnectorDefinitionAsync(array $args = []) + * @method \Aws\Result createConnectorDefinitionVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise createConnectorDefinitionVersionAsync(array $args = []) + * @method \Aws\Result createCoreDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCoreDefinitionAsync(array $args = []) + * @method \Aws\Result createCoreDefinitionVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCoreDefinitionVersionAsync(array $args = []) + * @method \Aws\Result createDeployment(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDeploymentAsync(array $args = []) + * @method \Aws\Result createDeviceDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDeviceDefinitionAsync(array $args = []) + * @method \Aws\Result createDeviceDefinitionVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDeviceDefinitionVersionAsync(array $args = []) + * @method \Aws\Result createFunctionDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise createFunctionDefinitionAsync(array $args = []) + * @method \Aws\Result createFunctionDefinitionVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise createFunctionDefinitionVersionAsync(array $args = []) + * @method \Aws\Result createGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createGroupAsync(array $args = []) + * @method \Aws\Result createGroupCertificateAuthority(array $args = []) + * @method \GuzzleHttp\Promise\Promise createGroupCertificateAuthorityAsync(array $args = []) + * @method \Aws\Result createGroupVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise createGroupVersionAsync(array $args = []) + * @method \Aws\Result createLoggerDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLoggerDefinitionAsync(array $args = []) + * @method \Aws\Result createLoggerDefinitionVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLoggerDefinitionVersionAsync(array $args = []) + * @method \Aws\Result createResourceDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise createResourceDefinitionAsync(array $args = []) + * @method \Aws\Result createResourceDefinitionVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise createResourceDefinitionVersionAsync(array $args = []) + * @method \Aws\Result createSoftwareUpdateJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSoftwareUpdateJobAsync(array $args = []) + * @method \Aws\Result createSubscriptionDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSubscriptionDefinitionAsync(array $args = []) + * @method \Aws\Result createSubscriptionDefinitionVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSubscriptionDefinitionVersionAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result deleteConnectorDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteConnectorDefinitionAsync(array $args = []) + * @method \Aws\Result deleteCoreDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCoreDefinitionAsync(array $args = []) + * @method \Aws\Result deleteDeviceDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDeviceDefinitionAsync(array $args = []) + * @method \Aws\Result deleteFunctionDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteFunctionDefinitionAsync(array $args = []) + * @method \Aws\Result deleteGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteGroupAsync(array $args = []) + * @method \Aws\Result deleteLoggerDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLoggerDefinitionAsync(array $args = []) + * @method \Aws\Result deleteResourceDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteResourceDefinitionAsync(array $args = []) + * @method \Aws\Result deleteSubscriptionDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSubscriptionDefinitionAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result disassociateRoleFromGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateRoleFromGroupAsync(array $args = []) + * @method \Aws\Result disassociateServiceRoleFromAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateServiceRoleFromAccountAsync(array $args = []) + * @method \Aws\Result getAssociatedRole(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAssociatedRoleAsync(array $args = []) + * @method \Aws\Result getBulkDeploymentStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBulkDeploymentStatusAsync(array $args = []) + * @method \Aws\Result getConnectivityInfo(array $args = []) + * @method \GuzzleHttp\Promise\Promise getConnectivityInfoAsync(array $args = []) + * @method \Aws\Result getConnectorDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise getConnectorDefinitionAsync(array $args = []) + * @method \Aws\Result getConnectorDefinitionVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise getConnectorDefinitionVersionAsync(array $args = []) + * @method \Aws\Result getCoreDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCoreDefinitionAsync(array $args = []) + * @method \Aws\Result getCoreDefinitionVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCoreDefinitionVersionAsync(array $args = []) + * @method \Aws\Result getDeploymentStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDeploymentStatusAsync(array $args = []) + * @method \Aws\Result getDeviceDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDeviceDefinitionAsync(array $args = []) + * @method \Aws\Result getDeviceDefinitionVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDeviceDefinitionVersionAsync(array $args = []) + * @method \Aws\Result getFunctionDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise getFunctionDefinitionAsync(array $args = []) + * @method \Aws\Result getFunctionDefinitionVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise getFunctionDefinitionVersionAsync(array $args = []) + * @method \Aws\Result getGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise getGroupAsync(array $args = []) + * @method \Aws\Result getGroupCertificateAuthority(array $args = []) + * @method \GuzzleHttp\Promise\Promise getGroupCertificateAuthorityAsync(array $args = []) + * @method \Aws\Result getGroupCertificateConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getGroupCertificateConfigurationAsync(array $args = []) + * @method \Aws\Result getGroupVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise getGroupVersionAsync(array $args = []) + * @method \Aws\Result getLoggerDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLoggerDefinitionAsync(array $args = []) + * @method \Aws\Result getLoggerDefinitionVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLoggerDefinitionVersionAsync(array $args = []) + * @method \Aws\Result getResourceDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise getResourceDefinitionAsync(array $args = []) + * @method \Aws\Result getResourceDefinitionVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise getResourceDefinitionVersionAsync(array $args = []) + * @method \Aws\Result getServiceRoleForAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise getServiceRoleForAccountAsync(array $args = []) + * @method \Aws\Result getSubscriptionDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSubscriptionDefinitionAsync(array $args = []) + * @method \Aws\Result getSubscriptionDefinitionVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSubscriptionDefinitionVersionAsync(array $args = []) + * @method \Aws\Result listBulkDeploymentDetailedReports(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBulkDeploymentDetailedReportsAsync(array $args = []) + * @method \Aws\Result listBulkDeployments(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBulkDeploymentsAsync(array $args = []) + * @method \Aws\Result listConnectorDefinitionVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listConnectorDefinitionVersionsAsync(array $args = []) + * @method \Aws\Result listConnectorDefinitions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listConnectorDefinitionsAsync(array $args = []) + * @method \Aws\Result listCoreDefinitionVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listCoreDefinitionVersionsAsync(array $args = []) + * @method \Aws\Result listCoreDefinitions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listCoreDefinitionsAsync(array $args = []) + * @method \Aws\Result listDeployments(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDeploymentsAsync(array $args = []) + * @method \Aws\Result listDeviceDefinitionVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDeviceDefinitionVersionsAsync(array $args = []) + * @method \Aws\Result listDeviceDefinitions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDeviceDefinitionsAsync(array $args = []) + * @method \Aws\Result listFunctionDefinitionVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listFunctionDefinitionVersionsAsync(array $args = []) + * @method \Aws\Result listFunctionDefinitions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listFunctionDefinitionsAsync(array $args = []) + * @method \Aws\Result listGroupCertificateAuthorities(array $args = []) + * @method \GuzzleHttp\Promise\Promise listGroupCertificateAuthoritiesAsync(array $args = []) + * @method \Aws\Result listGroupVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listGroupVersionsAsync(array $args = []) + * @method \Aws\Result listGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise listGroupsAsync(array $args = []) + * @method \Aws\Result listLoggerDefinitionVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listLoggerDefinitionVersionsAsync(array $args = []) + * @method \Aws\Result listLoggerDefinitions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listLoggerDefinitionsAsync(array $args = []) + * @method \Aws\Result listResourceDefinitionVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listResourceDefinitionVersionsAsync(array $args = []) + * @method \Aws\Result listResourceDefinitions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listResourceDefinitionsAsync(array $args = []) + * @method \Aws\Result listSubscriptionDefinitionVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSubscriptionDefinitionVersionsAsync(array $args = []) + * @method \Aws\Result listSubscriptionDefinitions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSubscriptionDefinitionsAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result resetDeployments(array $args = []) + * @method \GuzzleHttp\Promise\Promise resetDeploymentsAsync(array $args = []) + * @method \Aws\Result startBulkDeployment(array $args = []) + * @method \GuzzleHttp\Promise\Promise startBulkDeploymentAsync(array $args = []) + * @method \Aws\Result stopBulkDeployment(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopBulkDeploymentAsync(array $args = []) + * @method \Aws\Result updateConnectivityInfo(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateConnectivityInfoAsync(array $args = []) + * @method \Aws\Result updateConnectorDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateConnectorDefinitionAsync(array $args = []) + * @method \Aws\Result updateCoreDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateCoreDefinitionAsync(array $args = []) + * @method \Aws\Result updateDeviceDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDeviceDefinitionAsync(array $args = []) + * @method \Aws\Result updateFunctionDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateFunctionDefinitionAsync(array $args = []) + * @method \Aws\Result updateGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateGroupAsync(array $args = []) + * @method \Aws\Result updateGroupCertificateConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateGroupCertificateConfigurationAsync(array $args = []) + * @method \Aws\Result updateLoggerDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateLoggerDefinitionAsync(array $args = []) + * @method \Aws\Result updateResourceDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateResourceDefinitionAsync(array $args = []) + * @method \Aws\Result updateSubscriptionDefinition(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSubscriptionDefinitionAsync(array $args = []) + */ +class GreengrassClient extends AwsClient {} diff --git a/lib/aws/Aws/GuardDuty/Exception/GuardDutyException.php b/lib/aws/Aws/GuardDuty/Exception/GuardDutyException.php new file mode 100644 index 0000000..a680ab9 --- /dev/null +++ b/lib/aws/Aws/GuardDuty/Exception/GuardDutyException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\GuardDuty\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon GuardDuty** service. + */ +class GuardDutyException extends AwsException {} diff --git a/lib/aws/Aws/GuardDuty/GuardDutyClient.php b/lib/aws/Aws/GuardDuty/GuardDutyClient.php new file mode 100644 index 0000000..fe7d7f5 --- /dev/null +++ b/lib/aws/Aws/GuardDuty/GuardDutyClient.php @@ -0,0 +1,93 @@ +<?php +namespace Aws\GuardDuty; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon GuardDuty** service. + * @method \Aws\Result acceptInvitation(array $args = []) + * @method \GuzzleHttp\Promise\Promise acceptInvitationAsync(array $args = []) + * @method \Aws\Result archiveFindings(array $args = []) + * @method \GuzzleHttp\Promise\Promise archiveFindingsAsync(array $args = []) + * @method \Aws\Result createDetector(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDetectorAsync(array $args = []) + * @method \Aws\Result createFilter(array $args = []) + * @method \GuzzleHttp\Promise\Promise createFilterAsync(array $args = []) + * @method \Aws\Result createIPSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createIPSetAsync(array $args = []) + * @method \Aws\Result createMembers(array $args = []) + * @method \GuzzleHttp\Promise\Promise createMembersAsync(array $args = []) + * @method \Aws\Result createSampleFindings(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSampleFindingsAsync(array $args = []) + * @method \Aws\Result createThreatIntelSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createThreatIntelSetAsync(array $args = []) + * @method \Aws\Result declineInvitations(array $args = []) + * @method \GuzzleHttp\Promise\Promise declineInvitationsAsync(array $args = []) + * @method \Aws\Result deleteDetector(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDetectorAsync(array $args = []) + * @method \Aws\Result deleteFilter(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteFilterAsync(array $args = []) + * @method \Aws\Result deleteIPSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteIPSetAsync(array $args = []) + * @method \Aws\Result deleteInvitations(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteInvitationsAsync(array $args = []) + * @method \Aws\Result deleteMembers(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteMembersAsync(array $args = []) + * @method \Aws\Result deleteThreatIntelSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteThreatIntelSetAsync(array $args = []) + * @method \Aws\Result disassociateFromMasterAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateFromMasterAccountAsync(array $args = []) + * @method \Aws\Result disassociateMembers(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateMembersAsync(array $args = []) + * @method \Aws\Result getDetector(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDetectorAsync(array $args = []) + * @method \Aws\Result getFilter(array $args = []) + * @method \GuzzleHttp\Promise\Promise getFilterAsync(array $args = []) + * @method \Aws\Result getFindings(array $args = []) + * @method \GuzzleHttp\Promise\Promise getFindingsAsync(array $args = []) + * @method \Aws\Result getFindingsStatistics(array $args = []) + * @method \GuzzleHttp\Promise\Promise getFindingsStatisticsAsync(array $args = []) + * @method \Aws\Result getIPSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIPSetAsync(array $args = []) + * @method \Aws\Result getInvitationsCount(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInvitationsCountAsync(array $args = []) + * @method \Aws\Result getMasterAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise getMasterAccountAsync(array $args = []) + * @method \Aws\Result getMembers(array $args = []) + * @method \GuzzleHttp\Promise\Promise getMembersAsync(array $args = []) + * @method \Aws\Result getThreatIntelSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getThreatIntelSetAsync(array $args = []) + * @method \Aws\Result inviteMembers(array $args = []) + * @method \GuzzleHttp\Promise\Promise inviteMembersAsync(array $args = []) + * @method \Aws\Result listDetectors(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDetectorsAsync(array $args = []) + * @method \Aws\Result listFilters(array $args = []) + * @method \GuzzleHttp\Promise\Promise listFiltersAsync(array $args = []) + * @method \Aws\Result listFindings(array $args = []) + * @method \GuzzleHttp\Promise\Promise listFindingsAsync(array $args = []) + * @method \Aws\Result listIPSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listIPSetsAsync(array $args = []) + * @method \Aws\Result listInvitations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listInvitationsAsync(array $args = []) + * @method \Aws\Result listMembers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listMembersAsync(array $args = []) + * @method \Aws\Result listThreatIntelSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listThreatIntelSetsAsync(array $args = []) + * @method \Aws\Result startMonitoringMembers(array $args = []) + * @method \GuzzleHttp\Promise\Promise startMonitoringMembersAsync(array $args = []) + * @method \Aws\Result stopMonitoringMembers(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopMonitoringMembersAsync(array $args = []) + * @method \Aws\Result unarchiveFindings(array $args = []) + * @method \GuzzleHttp\Promise\Promise unarchiveFindingsAsync(array $args = []) + * @method \Aws\Result updateDetector(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDetectorAsync(array $args = []) + * @method \Aws\Result updateFilter(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateFilterAsync(array $args = []) + * @method \Aws\Result updateFindingsFeedback(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateFindingsFeedbackAsync(array $args = []) + * @method \Aws\Result updateIPSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateIPSetAsync(array $args = []) + * @method \Aws\Result updateThreatIntelSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateThreatIntelSetAsync(array $args = []) + */ +class GuardDutyClient extends AwsClient {} diff --git a/lib/aws/Aws/Handler/GuzzleV5/GuzzleHandler.php b/lib/aws/Aws/Handler/GuzzleV5/GuzzleHandler.php new file mode 100644 index 0000000..7ab8756 --- /dev/null +++ b/lib/aws/Aws/Handler/GuzzleV5/GuzzleHandler.php @@ -0,0 +1,210 @@ +<?php +namespace Aws\Handler\GuzzleV5; + +use Exception; +use GuzzleHttp\Client; +use GuzzleHttp\ClientInterface; +use GuzzleHttp\Event\EndEvent; +use GuzzleHttp\Exception\ConnectException; +use GuzzleHttp\Exception\RequestException; +use GuzzleHttp\Message\ResponseInterface as GuzzleResponse; +use GuzzleHttp\Promise; +use GuzzleHttp\Psr7\Response as Psr7Response; +use GuzzleHttp\Stream\Stream; +use Psr\Http\Message\RequestInterface as Psr7Request; +use Psr\Http\Message\StreamInterface as Psr7StreamInterface; + +/** + * A request handler that sends PSR-7-compatible requests with Guzzle 5. + * + * The handler accepts a PSR-7 Request object and an array of transfer options + * and returns a Guzzle 6 Promise. The promise is either resolved with a + * PSR-7 Response object or rejected with an array of error data. + * + * @codeCoverageIgnore + */ +class GuzzleHandler +{ + private static $validOptions = [ + 'proxy' => true, + 'expect' => 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) use ($options) { + // If we got a 'sink' that's a path, set the response body to + // the contents of the file. This will build the resulting + // exception with more information. + if ($exception instanceof RequestException) { + if (isset($options['sink'])) { + if (!($options['sink'] instanceof Psr7StreamInterface)) { + $exception->getResponse()->setBody( + Stream::factory( + file_get_contents($options['sink']) + ) + ); + } + } + } + // Reject with information about the error. + return new Promise\RejectedPromise($this->prepareErrorData($exception)); + } + ); + } + + private function createGuzzleRequest(Psr7Request $psrRequest, array $options) + { + $ringConfig = []; + $statsCallback = isset($options['http_stats_receiver']) + ? $options['http_stats_receiver'] + : null; + unset($options['http_stats_receiver']); + + // 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 + ); + + if (is_callable($statsCallback)) { + $request->getEmitter()->on( + 'end', + function (EndEvent $event) use ($statsCallback) { + $statsCallback($event->getTransferInfo()); + } + ); + } + + // 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', + $request->getHeader('User-Agent') + . ' ' . 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/Aws/Handler/GuzzleV5/GuzzleStream.php b/lib/aws/Aws/Handler/GuzzleV5/GuzzleStream.php new file mode 100644 index 0000000..5de00b5 --- /dev/null +++ b/lib/aws/Aws/Handler/GuzzleV5/GuzzleStream.php @@ -0,0 +1,24 @@ +<?php +namespace Aws\Handler\GuzzleV5; + +use GuzzleHttp\Stream\StreamDecoratorTrait; +use GuzzleHttp\Stream\StreamInterface as GuzzleStreamInterface; +use Psr\Http\Message\StreamInterface as Psr7StreamInterface; + +/** + * Adapts a PSR-7 Stream to a Guzzle 5 Stream. + * + * @codeCoverageIgnore + */ +class GuzzleStream implements GuzzleStreamInterface +{ + use StreamDecoratorTrait; + + /** @var Psr7StreamInterface */ + private $stream; + + public function __construct(Psr7StreamInterface $stream) + { + $this->stream = $stream; + } +} diff --git a/lib/aws/Aws/Handler/GuzzleV5/PsrStream.php b/lib/aws/Aws/Handler/GuzzleV5/PsrStream.php new file mode 100644 index 0000000..cc07613 --- /dev/null +++ b/lib/aws/Aws/Handler/GuzzleV5/PsrStream.php @@ -0,0 +1,34 @@ +<?php +namespace Aws\Handler\GuzzleV5; + +use GuzzleHttp\Stream\StreamDecoratorTrait; +use GuzzleHttp\Stream\StreamInterface as GuzzleStreamInterface; +use Psr\Http\Message\StreamInterface as Psr7StreamInterface; + +/** + * Adapts a Guzzle 5 Stream to a PSR-7 Stream. + * + * @codeCoverageIgnore + */ +class PsrStream implements Psr7StreamInterface +{ + use StreamDecoratorTrait; + + /** @var GuzzleStreamInterface */ + private $stream; + + public function __construct(GuzzleStreamInterface $stream) + { + $this->stream = $stream; + } + + public function rewind() + { + $this->stream->seek(0); + } + + public function getContents() + { + return $this->stream->getContents(); + } +} diff --git a/lib/aws/Aws/Handler/GuzzleV6/GuzzleHandler.php b/lib/aws/Aws/Handler/GuzzleV6/GuzzleHandler.php new file mode 100644 index 0000000..6f1239c --- /dev/null +++ b/lib/aws/Aws/Handler/GuzzleV6/GuzzleHandler.php @@ -0,0 +1,85 @@ +<?php +namespace Aws\Handler\GuzzleV6; + +use Exception; +use GuzzleHttp\Exception\ConnectException; +use GuzzleHttp\Exception\RequestException; +use GuzzleHttp\Promise; +use GuzzleHttp\Client; +use GuzzleHttp\ClientInterface; +use GuzzleHttp\TransferStats; +use Psr\Http\Message\RequestInterface as Psr7Request; + +/** + * A request handler that sends PSR-7-compatible requests with Guzzle 6. + */ +class GuzzleHandler +{ + /** @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 = []) + { + $request = $request->withHeader( + 'User-Agent', + $request->getHeaderLine('User-Agent') + . ' ' . \GuzzleHttp\default_user_agent() + ); + + return $this->client->sendAsync($request, $this->parseOptions($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); + } + ); + } + + private function parseOptions(array $options) + { + if (isset($options['http_stats_receiver'])) { + $fn = $options['http_stats_receiver']; + unset($options['http_stats_receiver']); + + $prev = isset($options['on_stats']) + ? $options['on_stats'] + : null; + + $options['on_stats'] = static function ( + TransferStats $stats + ) use ($fn, $prev) { + if (is_callable($prev)) { + $prev($stats); + } + $transferStats = ['total_time' => $stats->getTransferTime()]; + $transferStats += $stats->getHandlerStats(); + $fn($transferStats); + }; + } + + return $options; + } +} diff --git a/lib/aws/Aws/HandlerList.php b/lib/aws/Aws/HandlerList.php new file mode 100644 index 0000000..a875fb5 --- /dev/null +++ b/lib/aws/Aws/HandlerList.php @@ -0,0 +1,451 @@ +<?php +namespace Aws; + +/** + * Builds a single handler function from zero or more middleware functions and + * a handler. The handler function is then used to send command objects and + * return a promise that is resolved with an AWS result object. + * + * The "front" of the list is invoked before the "end" of the list. You can add + * middleware to the front of the list using one of the "prepend" method, and + * the end of the list using one of the "append" method. The last function + * invoked in a handler list is the handler (a function that does not accept a + * next handler but rather is responsible for returning a promise that is + * fulfilled with an Aws\ResultInterface object). + * + * Handlers are ordered using a "step" that describes the step at which the + * SDK is when sending a command. The available steps are: + * + * - init: The command is being initialized, allowing you to do things like add + * default options. + * - validate: The command is being validated before it is serialized + * - build: The command is being serialized into an HTTP request. A middleware + * in this step MUST serialize an HTTP request and populate the "@request" + * parameter of a command with the request such that it is available to + * subsequent middleware. + * - sign: The request is being signed and prepared to be sent over the wire. + * + * Middleware can be registered with a name to allow you to easily add a + * middleware before or after another middleware by name. This also allows you + * to remove a middleware by name (in addition to removing by instance). + */ +class HandlerList implements \Countable +{ + const INIT = 'init'; + const VALIDATE = 'validate'; + const BUILD = 'build'; + const SIGN = 'sign'; + const ATTEMPT = 'attempt'; + + /** @var callable */ + private $handler; + + /** @var array */ + private $named = []; + + /** @var array */ + private $sorted; + + /** @var callable|null */ + private $interposeFn; + + /** @var array Steps (in reverse order) */ + private $steps = [ + self::ATTEMPT => [], + self::SIGN => [], + 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); + } + + /** + * Append a middleware to the attempt step. + * + * @param callable $middleware Middleware function to add. + * @param string $name Name of the middleware. + */ + public function appendAttempt(callable $middleware, $name = null) + { + $this->add(self::ATTEMPT, $name, $middleware); + } + + /** + * Prepend a middleware to the attempt step. + * + * @param callable $middleware Middleware function to add. + * @param string $name Name of the middleware. + */ + public function prependAttempt(callable $middleware, $name = null) + { + $this->add(self::ATTEMPT, $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]) + + count($this->steps[self::ATTEMPT]); + } + + /** + * 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})"; + } + + if (is_array($fn)) { + $ele = is_string($fn[0]) ? $fn[0] : get_class($fn[0]); + return "callable(['{$ele}', '{$fn[1]}'])"; + } + + 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/Aws/HasDataTrait.php b/lib/aws/Aws/HasDataTrait.php new file mode 100644 index 0000000..a2ff2df --- /dev/null +++ b/lib/aws/Aws/HasDataTrait.php @@ -0,0 +1,60 @@ +<?php +namespace Aws; + +/** + * Trait implementing ToArrayInterface, \ArrayAccess, \Countable, and + * \IteratorAggregate + */ +trait HasDataTrait +{ + /** @var array */ + private $data = []; + + public function getIterator() + { + return new \ArrayIterator($this->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/Aws/HasMonitoringEventsTrait.php b/lib/aws/Aws/HasMonitoringEventsTrait.php new file mode 100644 index 0000000..b28f0a4 --- /dev/null +++ b/lib/aws/Aws/HasMonitoringEventsTrait.php @@ -0,0 +1,39 @@ +<?php +namespace Aws; + + +trait HasMonitoringEventsTrait +{ + private $monitoringEvents = []; + + /** + * Get client-side monitoring events attached to this object. Each event is + * represented as an associative array within the returned array. + * + * @return array + */ + public function getMonitoringEvents() + { + return $this->monitoringEvents; + } + + /** + * Prepend a client-side monitoring event to this object's event list + * + * @param array $event + */ + public function prependMonitoringEvent(array $event) + { + array_unshift($this->monitoringEvents, $event); + } + + /** + * Append a client-side monitoring event to this object's event list + * + * @param array $event + */ + public function appendMonitoringEvent(array $event) + { + $this->monitoringEvents []= $event; + } +} diff --git a/lib/aws/Aws/HashInterface.php b/lib/aws/Aws/HashInterface.php new file mode 100644 index 0000000..6304e4d --- /dev/null +++ b/lib/aws/Aws/HashInterface.php @@ -0,0 +1,27 @@ +<?php +namespace Aws; + +/** + * Interface that allows implementing various incremental hashes. + */ +interface HashInterface +{ + /** + * Adds data to the hash. + * + * @param string $data Data to add to the hash + */ + public function update($data); + + /** + * Finalizes the incremental hash and returns the resulting digest. + * + * @return string + */ + public function complete(); + + /** + * Removes all data from the hash, effectively starting a new hash. + */ + public function reset(); +} diff --git a/lib/aws/Aws/HashingStream.php b/lib/aws/Aws/HashingStream.php new file mode 100644 index 0000000..779f3ac --- /dev/null +++ b/lib/aws/Aws/HashingStream.php @@ -0,0 +1,60 @@ +<?php +namespace Aws; + +use GuzzleHttp\Psr7\StreamDecoratorTrait; +use Psr\Http\Message\StreamInterface; + +/** + * Stream decorator that calculates a rolling hash of the stream as it is read. + */ +class HashingStream implements StreamInterface +{ + use StreamDecoratorTrait; + + /** @var HashInterface */ + private $hash; + + /** @var callable|null */ + private $callback; + + /** + * @param StreamInterface $stream Stream that is being read. + * @param HashInterface $hash Hash used to calculate checksum. + * @param callable $onComplete Optional function invoked when the + * hash calculation is completed. + */ + public function __construct( + StreamInterface $stream, + HashInterface $hash, + callable $onComplete = null + ) { + $this->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); + } + + // Seeking arbitrarily is not supported. + return false; + } +} diff --git a/lib/aws/Aws/Health/Exception/HealthException.php b/lib/aws/Aws/Health/Exception/HealthException.php new file mode 100644 index 0000000..b6983a6 --- /dev/null +++ b/lib/aws/Aws/Health/Exception/HealthException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Health\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Health APIs and Notifications** service. + */ +class HealthException extends AwsException {} diff --git a/lib/aws/Aws/Health/HealthClient.php b/lib/aws/Aws/Health/HealthClient.php new file mode 100644 index 0000000..5a17e93 --- /dev/null +++ b/lib/aws/Aws/Health/HealthClient.php @@ -0,0 +1,21 @@ +<?php +namespace Aws\Health; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Health APIs and Notifications** service. + * @method \Aws\Result describeAffectedEntities(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAffectedEntitiesAsync(array $args = []) + * @method \Aws\Result describeEntityAggregates(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEntityAggregatesAsync(array $args = []) + * @method \Aws\Result describeEventAggregates(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventAggregatesAsync(array $args = []) + * @method \Aws\Result describeEventDetails(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventDetailsAsync(array $args = []) + * @method \Aws\Result describeEventTypes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventTypesAsync(array $args = []) + * @method \Aws\Result describeEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventsAsync(array $args = []) + */ +class HealthClient extends AwsClient {} diff --git a/lib/aws/Aws/History.php b/lib/aws/Aws/History.php new file mode 100644 index 0000000..e594332 --- /dev/null +++ b/lib/aws/Aws/History.php @@ -0,0 +1,156 @@ +<?php +namespace Aws; + +use Psr\Http\Message\RequestInterface; +use Aws\Exception\AwsException; + +/** + * Represents a history container that is required when using the history + * middleware. + */ +class History implements \Countable, \IteratorAggregate +{ + private $maxEntries; + private $entries = array(); + + /** + * @param int $maxEntries Maximum number of entries to store. + */ + public function __construct($maxEntries = 10) + { + $this->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']; + } + + if (isset($last['exception'])) { + return $last['exception']; + } + + 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'); + } + + if (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/Aws/Iam/Exception/IamException.php b/lib/aws/Aws/Iam/Exception/IamException.php new file mode 100644 index 0000000..911a494 --- /dev/null +++ b/lib/aws/Aws/Iam/Exception/IamException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Iam\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the AWS Identity and Access Management service. + */ +class IamException extends AwsException {} diff --git a/lib/aws/Aws/Iam/IamClient.php b/lib/aws/Aws/Iam/IamClient.php new file mode 100644 index 0000000..00fe523 --- /dev/null +++ b/lib/aws/Aws/Iam/IamClient.php @@ -0,0 +1,284 @@ +<?php +namespace Aws\Iam; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Identity and Access Management (AWS IAM)** service. + * + * @method \Aws\Result addClientIDToOpenIDConnectProvider(array $args = []) + * @method \GuzzleHttp\Promise\Promise addClientIDToOpenIDConnectProviderAsync(array $args = []) + * @method \Aws\Result addRoleToInstanceProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise addRoleToInstanceProfileAsync(array $args = []) + * @method \Aws\Result addUserToGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise addUserToGroupAsync(array $args = []) + * @method \Aws\Result attachGroupPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachGroupPolicyAsync(array $args = []) + * @method \Aws\Result attachRolePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachRolePolicyAsync(array $args = []) + * @method \Aws\Result attachUserPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachUserPolicyAsync(array $args = []) + * @method \Aws\Result changePassword(array $args = []) + * @method \GuzzleHttp\Promise\Promise changePasswordAsync(array $args = []) + * @method \Aws\Result createAccessKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAccessKeyAsync(array $args = []) + * @method \Aws\Result createAccountAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAccountAliasAsync(array $args = []) + * @method \Aws\Result createGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createGroupAsync(array $args = []) + * @method \Aws\Result createInstanceProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise createInstanceProfileAsync(array $args = []) + * @method \Aws\Result createLoginProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLoginProfileAsync(array $args = []) + * @method \Aws\Result createOpenIDConnectProvider(array $args = []) + * @method \GuzzleHttp\Promise\Promise createOpenIDConnectProviderAsync(array $args = []) + * @method \Aws\Result createPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPolicyAsync(array $args = []) + * @method \Aws\Result createPolicyVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPolicyVersionAsync(array $args = []) + * @method \Aws\Result createRole(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRoleAsync(array $args = []) + * @method \Aws\Result createSAMLProvider(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSAMLProviderAsync(array $args = []) + * @method \Aws\Result createServiceLinkedRole(array $args = []) + * @method \GuzzleHttp\Promise\Promise createServiceLinkedRoleAsync(array $args = []) + * @method \Aws\Result createServiceSpecificCredential(array $args = []) + * @method \GuzzleHttp\Promise\Promise createServiceSpecificCredentialAsync(array $args = []) + * @method \Aws\Result createUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise createUserAsync(array $args = []) + * @method \Aws\Result createVirtualMFADevice(array $args = []) + * @method \GuzzleHttp\Promise\Promise createVirtualMFADeviceAsync(array $args = []) + * @method \Aws\Result deactivateMFADevice(array $args = []) + * @method \GuzzleHttp\Promise\Promise deactivateMFADeviceAsync(array $args = []) + * @method \Aws\Result deleteAccessKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAccessKeyAsync(array $args = []) + * @method \Aws\Result deleteAccountAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAccountAliasAsync(array $args = []) + * @method \Aws\Result deleteAccountPasswordPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAccountPasswordPolicyAsync(array $args = []) + * @method \Aws\Result deleteGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteGroupAsync(array $args = []) + * @method \Aws\Result deleteGroupPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteGroupPolicyAsync(array $args = []) + * @method \Aws\Result deleteInstanceProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteInstanceProfileAsync(array $args = []) + * @method \Aws\Result deleteLoginProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLoginProfileAsync(array $args = []) + * @method \Aws\Result deleteOpenIDConnectProvider(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteOpenIDConnectProviderAsync(array $args = []) + * @method \Aws\Result deletePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePolicyAsync(array $args = []) + * @method \Aws\Result deletePolicyVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePolicyVersionAsync(array $args = []) + * @method \Aws\Result deleteRole(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRoleAsync(array $args = []) + * @method \Aws\Result deleteRolePermissionsBoundary(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRolePermissionsBoundaryAsync(array $args = []) + * @method \Aws\Result deleteRolePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRolePolicyAsync(array $args = []) + * @method \Aws\Result deleteSAMLProvider(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSAMLProviderAsync(array $args = []) + * @method \Aws\Result deleteSSHPublicKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSSHPublicKeyAsync(array $args = []) + * @method \Aws\Result deleteServerCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteServerCertificateAsync(array $args = []) + * @method \Aws\Result deleteServiceLinkedRole(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteServiceLinkedRoleAsync(array $args = []) + * @method \Aws\Result deleteServiceSpecificCredential(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteServiceSpecificCredentialAsync(array $args = []) + * @method \Aws\Result deleteSigningCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSigningCertificateAsync(array $args = []) + * @method \Aws\Result deleteUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserAsync(array $args = []) + * @method \Aws\Result deleteUserPermissionsBoundary(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserPermissionsBoundaryAsync(array $args = []) + * @method \Aws\Result deleteUserPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserPolicyAsync(array $args = []) + * @method \Aws\Result deleteVirtualMFADevice(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVirtualMFADeviceAsync(array $args = []) + * @method \Aws\Result detachGroupPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachGroupPolicyAsync(array $args = []) + * @method \Aws\Result detachRolePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachRolePolicyAsync(array $args = []) + * @method \Aws\Result detachUserPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachUserPolicyAsync(array $args = []) + * @method \Aws\Result enableMFADevice(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableMFADeviceAsync(array $args = []) + * @method \Aws\Result generateCredentialReport(array $args = []) + * @method \GuzzleHttp\Promise\Promise generateCredentialReportAsync(array $args = []) + * @method \Aws\Result generateServiceLastAccessedDetails(array $args = []) + * @method \GuzzleHttp\Promise\Promise generateServiceLastAccessedDetailsAsync(array $args = []) + * @method \Aws\Result getAccessKeyLastUsed(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAccessKeyLastUsedAsync(array $args = []) + * @method \Aws\Result getAccountAuthorizationDetails(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAccountAuthorizationDetailsAsync(array $args = []) + * @method \Aws\Result getAccountPasswordPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAccountPasswordPolicyAsync(array $args = []) + * @method \Aws\Result getAccountSummary(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAccountSummaryAsync(array $args = []) + * @method \Aws\Result getContextKeysForCustomPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getContextKeysForCustomPolicyAsync(array $args = []) + * @method \Aws\Result getContextKeysForPrincipalPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getContextKeysForPrincipalPolicyAsync(array $args = []) + * @method \Aws\Result getCredentialReport(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCredentialReportAsync(array $args = []) + * @method \Aws\Result getGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise getGroupAsync(array $args = []) + * @method \Aws\Result getGroupPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getGroupPolicyAsync(array $args = []) + * @method \Aws\Result getInstanceProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInstanceProfileAsync(array $args = []) + * @method \Aws\Result getLoginProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLoginProfileAsync(array $args = []) + * @method \Aws\Result getOpenIDConnectProvider(array $args = []) + * @method \GuzzleHttp\Promise\Promise getOpenIDConnectProviderAsync(array $args = []) + * @method \Aws\Result getPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPolicyAsync(array $args = []) + * @method \Aws\Result getPolicyVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPolicyVersionAsync(array $args = []) + * @method \Aws\Result getRole(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRoleAsync(array $args = []) + * @method \Aws\Result getRolePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRolePolicyAsync(array $args = []) + * @method \Aws\Result getSAMLProvider(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSAMLProviderAsync(array $args = []) + * @method \Aws\Result getSSHPublicKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSSHPublicKeyAsync(array $args = []) + * @method \Aws\Result getServerCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise getServerCertificateAsync(array $args = []) + * @method \Aws\Result getServiceLastAccessedDetails(array $args = []) + * @method \GuzzleHttp\Promise\Promise getServiceLastAccessedDetailsAsync(array $args = []) + * @method \Aws\Result getServiceLastAccessedDetailsWithEntities(array $args = []) + * @method \GuzzleHttp\Promise\Promise getServiceLastAccessedDetailsWithEntitiesAsync(array $args = []) + * @method \Aws\Result getServiceLinkedRoleDeletionStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getServiceLinkedRoleDeletionStatusAsync(array $args = []) + * @method \Aws\Result getUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise getUserAsync(array $args = []) + * @method \Aws\Result getUserPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getUserPolicyAsync(array $args = []) + * @method \Aws\Result listAccessKeys(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAccessKeysAsync(array $args = []) + * @method \Aws\Result listAccountAliases(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAccountAliasesAsync(array $args = []) + * @method \Aws\Result listAttachedGroupPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAttachedGroupPoliciesAsync(array $args = []) + * @method \Aws\Result listAttachedRolePolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAttachedRolePoliciesAsync(array $args = []) + * @method \Aws\Result listAttachedUserPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAttachedUserPoliciesAsync(array $args = []) + * @method \Aws\Result listEntitiesForPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise listEntitiesForPolicyAsync(array $args = []) + * @method \Aws\Result listGroupPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise listGroupPoliciesAsync(array $args = []) + * @method \Aws\Result listGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise listGroupsAsync(array $args = []) + * @method \Aws\Result listGroupsForUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise listGroupsForUserAsync(array $args = []) + * @method \Aws\Result listInstanceProfiles(array $args = []) + * @method \GuzzleHttp\Promise\Promise listInstanceProfilesAsync(array $args = []) + * @method \Aws\Result listInstanceProfilesForRole(array $args = []) + * @method \GuzzleHttp\Promise\Promise listInstanceProfilesForRoleAsync(array $args = []) + * @method \Aws\Result listMFADevices(array $args = []) + * @method \GuzzleHttp\Promise\Promise listMFADevicesAsync(array $args = []) + * @method \Aws\Result listOpenIDConnectProviders(array $args = []) + * @method \GuzzleHttp\Promise\Promise listOpenIDConnectProvidersAsync(array $args = []) + * @method \Aws\Result listPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPoliciesAsync(array $args = []) + * @method \Aws\Result listPoliciesGrantingServiceAccess(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPoliciesGrantingServiceAccessAsync(array $args = []) + * @method \Aws\Result listPolicyVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPolicyVersionsAsync(array $args = []) + * @method \Aws\Result listRolePolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRolePoliciesAsync(array $args = []) + * @method \Aws\Result listRoleTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRoleTagsAsync(array $args = []) + * @method \Aws\Result listRoles(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRolesAsync(array $args = []) + * @method \Aws\Result listSAMLProviders(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSAMLProvidersAsync(array $args = []) + * @method \Aws\Result listSSHPublicKeys(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSSHPublicKeysAsync(array $args = []) + * @method \Aws\Result listServerCertificates(array $args = []) + * @method \GuzzleHttp\Promise\Promise listServerCertificatesAsync(array $args = []) + * @method \Aws\Result listServiceSpecificCredentials(array $args = []) + * @method \GuzzleHttp\Promise\Promise listServiceSpecificCredentialsAsync(array $args = []) + * @method \Aws\Result listSigningCertificates(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSigningCertificatesAsync(array $args = []) + * @method \Aws\Result listUserPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUserPoliciesAsync(array $args = []) + * @method \Aws\Result listUserTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUserTagsAsync(array $args = []) + * @method \Aws\Result listUsers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUsersAsync(array $args = []) + * @method \Aws\Result listVirtualMFADevices(array $args = []) + * @method \GuzzleHttp\Promise\Promise listVirtualMFADevicesAsync(array $args = []) + * @method \Aws\Result putGroupPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putGroupPolicyAsync(array $args = []) + * @method \Aws\Result putRolePermissionsBoundary(array $args = []) + * @method \GuzzleHttp\Promise\Promise putRolePermissionsBoundaryAsync(array $args = []) + * @method \Aws\Result putRolePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putRolePolicyAsync(array $args = []) + * @method \Aws\Result putUserPermissionsBoundary(array $args = []) + * @method \GuzzleHttp\Promise\Promise putUserPermissionsBoundaryAsync(array $args = []) + * @method \Aws\Result putUserPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putUserPolicyAsync(array $args = []) + * @method \Aws\Result removeClientIDFromOpenIDConnectProvider(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeClientIDFromOpenIDConnectProviderAsync(array $args = []) + * @method \Aws\Result removeRoleFromInstanceProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeRoleFromInstanceProfileAsync(array $args = []) + * @method \Aws\Result removeUserFromGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeUserFromGroupAsync(array $args = []) + * @method \Aws\Result resetServiceSpecificCredential(array $args = []) + * @method \GuzzleHttp\Promise\Promise resetServiceSpecificCredentialAsync(array $args = []) + * @method \Aws\Result resyncMFADevice(array $args = []) + * @method \GuzzleHttp\Promise\Promise resyncMFADeviceAsync(array $args = []) + * @method \Aws\Result setDefaultPolicyVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise setDefaultPolicyVersionAsync(array $args = []) + * @method \Aws\Result simulateCustomPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise simulateCustomPolicyAsync(array $args = []) + * @method \Aws\Result simulatePrincipalPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise simulatePrincipalPolicyAsync(array $args = []) + * @method \Aws\Result tagRole(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagRoleAsync(array $args = []) + * @method \Aws\Result tagUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagUserAsync(array $args = []) + * @method \Aws\Result untagRole(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagRoleAsync(array $args = []) + * @method \Aws\Result untagUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagUserAsync(array $args = []) + * @method \Aws\Result updateAccessKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAccessKeyAsync(array $args = []) + * @method \Aws\Result updateAccountPasswordPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAccountPasswordPolicyAsync(array $args = []) + * @method \Aws\Result updateAssumeRolePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAssumeRolePolicyAsync(array $args = []) + * @method \Aws\Result updateGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateGroupAsync(array $args = []) + * @method \Aws\Result updateLoginProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateLoginProfileAsync(array $args = []) + * @method \Aws\Result updateOpenIDConnectProviderThumbprint(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateOpenIDConnectProviderThumbprintAsync(array $args = []) + * @method \Aws\Result updateRole(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRoleAsync(array $args = []) + * @method \Aws\Result updateRoleDescription(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRoleDescriptionAsync(array $args = []) + * @method \Aws\Result updateSAMLProvider(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSAMLProviderAsync(array $args = []) + * @method \Aws\Result updateSSHPublicKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSSHPublicKeyAsync(array $args = []) + * @method \Aws\Result updateServerCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateServerCertificateAsync(array $args = []) + * @method \Aws\Result updateServiceSpecificCredential(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateServiceSpecificCredentialAsync(array $args = []) + * @method \Aws\Result updateSigningCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSigningCertificateAsync(array $args = []) + * @method \Aws\Result updateUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUserAsync(array $args = []) + * @method \Aws\Result uploadSSHPublicKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise uploadSSHPublicKeyAsync(array $args = []) + * @method \Aws\Result uploadServerCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise uploadServerCertificateAsync(array $args = []) + * @method \Aws\Result uploadSigningCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise uploadSigningCertificateAsync(array $args = []) + */ +class IamClient extends AwsClient {} diff --git a/lib/aws/Aws/IdempotencyTokenMiddleware.php b/lib/aws/Aws/IdempotencyTokenMiddleware.php new file mode 100644 index 0000000..dd0de42 --- /dev/null +++ b/lib/aws/Aws/IdempotencyTokenMiddleware.php @@ -0,0 +1,118 @@ +<?php +namespace Aws; + +use Aws\Api\Service; +use Psr\Http\Message\RequestInterface; + +/** + * @internal Middleware that auto fills parameters with `idempotencyToken` trait + */ +class IdempotencyTokenMiddleware +{ + /** @var Service */ + private $service; + /** @var string */ + private $bytesGenerator; + /** @var callable */ + private $nextHandler; + + /** + * Creates a middleware that populates operation parameter + * with trait 'idempotencyToken' enabled with a random UUIDv4 + * + * One of following functions needs to be available + * in order to generate random bytes used for UUID + * (SDK will attempt to utilize function in following order): + * - random_bytes (requires PHP 7.0 or above) + * - openssl_random_pseudo_bytes (requires 'openssl' module enabled) + * - mcrypt_create_iv (requires 'mcrypt' module enabled) + * + * You may also supply a custom bytes generator as an optional second + * parameter. + * + * @param \Aws\Api\Service $service + * @param callable|null $bytesGenerator + * + * @return callable + */ + public static function wrap( + Service $service, + callable $bytesGenerator = null + ) { + return function (callable $handler) use ($service, $bytesGenerator) { + return new self($handler, $service, $bytesGenerator); + }; + } + + public function __construct( + callable $nextHandler, + Service $service, + callable $bytesGenerator = null + ) { + $this->bytesGenerator = $bytesGenerator + ?: $this->findCompatibleRandomSource(); + $this->service = $service; + $this->nextHandler = $nextHandler; + } + + public function __invoke( + CommandInterface $command, + RequestInterface $request = null + ) { + $handler = $this->nextHandler; + if ($this->bytesGenerator) { + $operation = $this->service->getOperation($command->getName()); + $members = $operation->getInput()->getMembers(); + foreach ($members as $member => $value) { + if ($value['idempotencyToken']) { + $bytes = call_user_func($this->bytesGenerator, 16); + // populating UUIDv4 only when the parameter is not set + $command[$member] = $command[$member] + ?: $this->getUuidV4($bytes); + // only one member could have the trait enabled + break; + } + } + } + return $handler($command, $request); + } + + /** + * This function generates a random UUID v4 string, + * which is used as auto filled token value. + * + * @param string $bytes 16 bytes of pseudo-random bytes + * @return string + * More information about UUID v4, see: + * https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_.28random.29 + * https://tools.ietf.org/html/rfc4122#page-14 + */ + private static function getUuidV4($bytes) + { + // set version to 0100 + $bytes[6] = chr(ord($bytes[6]) & 0x0f | 0x40); + // set bits 6-7 to 10 + $bytes[8] = chr(ord($bytes[8]) & 0x3f | 0x80); + return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($bytes), 4)); + } + + /** + * This function decides the PHP function used in generating random bytes. + * + * @return callable|null + */ + private function findCompatibleRandomSource() + { + if (function_exists('random_bytes')) { + return 'random_bytes'; + } + + if (function_exists('openssl_random_pseudo_bytes')) { + return 'openssl_random_pseudo_bytes'; + } + + if (function_exists('mcrypt_create_iv')) { + return 'mcrypt_create_iv'; + } + } +} diff --git a/lib/aws/Aws/ImportExport/Exception/ImportExportException.php b/lib/aws/Aws/ImportExport/Exception/ImportExportException.php new file mode 100644 index 0000000..8b172d4 --- /dev/null +++ b/lib/aws/Aws/ImportExport/Exception/ImportExportException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\ImportExport\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Import/Export** service. + */ +class ImportExportException extends AwsException {} diff --git a/lib/aws/Aws/ImportExport/ImportExportClient.php b/lib/aws/Aws/ImportExport/ImportExportClient.php new file mode 100644 index 0000000..fadfd4c --- /dev/null +++ b/lib/aws/Aws/ImportExport/ImportExportClient.php @@ -0,0 +1,21 @@ +<?php +namespace Aws\ImportExport; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Import/Export** service. + * @method \Aws\Result cancelJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelJobAsync(array $args = []) + * @method \Aws\Result createJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise createJobAsync(array $args = []) + * @method \Aws\Result getShippingLabel(array $args = []) + * @method \GuzzleHttp\Promise\Promise getShippingLabelAsync(array $args = []) + * @method \Aws\Result getStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getStatusAsync(array $args = []) + * @method \Aws\Result listJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listJobsAsync(array $args = []) + * @method \Aws\Result updateJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateJobAsync(array $args = []) + */ +class ImportExportClient extends AwsClient {} diff --git a/lib/aws/Aws/Inspector/Exception/InspectorException.php b/lib/aws/Aws/Inspector/Exception/InspectorException.php new file mode 100644 index 0000000..4a17feb --- /dev/null +++ b/lib/aws/Aws/Inspector/Exception/InspectorException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Inspector\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Inspector** service. + */ +class InspectorException extends AwsException {} diff --git a/lib/aws/Aws/Inspector/InspectorClient.php b/lib/aws/Aws/Inspector/InspectorClient.php new file mode 100644 index 0000000..f266c5c --- /dev/null +++ b/lib/aws/Aws/Inspector/InspectorClient.php @@ -0,0 +1,84 @@ +<?php +namespace Aws\Inspector; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Inspector** service. + * + * @method \Aws\Result addAttributesToFindings(array $args = []) + * @method \GuzzleHttp\Promise\Promise addAttributesToFindingsAsync(array $args = []) + * @method \Aws\Result createAssessmentTarget(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAssessmentTargetAsync(array $args = []) + * @method \Aws\Result createAssessmentTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAssessmentTemplateAsync(array $args = []) + * @method \Aws\Result createExclusionsPreview(array $args = []) + * @method \GuzzleHttp\Promise\Promise createExclusionsPreviewAsync(array $args = []) + * @method \Aws\Result createResourceGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createResourceGroupAsync(array $args = []) + * @method \Aws\Result deleteAssessmentRun(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAssessmentRunAsync(array $args = []) + * @method \Aws\Result deleteAssessmentTarget(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAssessmentTargetAsync(array $args = []) + * @method \Aws\Result deleteAssessmentTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAssessmentTemplateAsync(array $args = []) + * @method \Aws\Result describeAssessmentRuns(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAssessmentRunsAsync(array $args = []) + * @method \Aws\Result describeAssessmentTargets(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAssessmentTargetsAsync(array $args = []) + * @method \Aws\Result describeAssessmentTemplates(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAssessmentTemplatesAsync(array $args = []) + * @method \Aws\Result describeCrossAccountAccessRole(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCrossAccountAccessRoleAsync(array $args = []) + * @method \Aws\Result describeExclusions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeExclusionsAsync(array $args = []) + * @method \Aws\Result describeFindings(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeFindingsAsync(array $args = []) + * @method \Aws\Result describeResourceGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeResourceGroupsAsync(array $args = []) + * @method \Aws\Result describeRulesPackages(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRulesPackagesAsync(array $args = []) + * @method \Aws\Result getAssessmentReport(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAssessmentReportAsync(array $args = []) + * @method \Aws\Result getExclusionsPreview(array $args = []) + * @method \GuzzleHttp\Promise\Promise getExclusionsPreviewAsync(array $args = []) + * @method \Aws\Result getTelemetryMetadata(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTelemetryMetadataAsync(array $args = []) + * @method \Aws\Result listAssessmentRunAgents(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAssessmentRunAgentsAsync(array $args = []) + * @method \Aws\Result listAssessmentRuns(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAssessmentRunsAsync(array $args = []) + * @method \Aws\Result listAssessmentTargets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAssessmentTargetsAsync(array $args = []) + * @method \Aws\Result listAssessmentTemplates(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAssessmentTemplatesAsync(array $args = []) + * @method \Aws\Result listEventSubscriptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listEventSubscriptionsAsync(array $args = []) + * @method \Aws\Result listExclusions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listExclusionsAsync(array $args = []) + * @method \Aws\Result listFindings(array $args = []) + * @method \GuzzleHttp\Promise\Promise listFindingsAsync(array $args = []) + * @method \Aws\Result listRulesPackages(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRulesPackagesAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result previewAgents(array $args = []) + * @method \GuzzleHttp\Promise\Promise previewAgentsAsync(array $args = []) + * @method \Aws\Result registerCrossAccountAccessRole(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerCrossAccountAccessRoleAsync(array $args = []) + * @method \Aws\Result removeAttributesFromFindings(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeAttributesFromFindingsAsync(array $args = []) + * @method \Aws\Result setTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise setTagsForResourceAsync(array $args = []) + * @method \Aws\Result startAssessmentRun(array $args = []) + * @method \GuzzleHttp\Promise\Promise startAssessmentRunAsync(array $args = []) + * @method \Aws\Result stopAssessmentRun(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopAssessmentRunAsync(array $args = []) + * @method \Aws\Result subscribeToEvent(array $args = []) + * @method \GuzzleHttp\Promise\Promise subscribeToEventAsync(array $args = []) + * @method \Aws\Result unsubscribeFromEvent(array $args = []) + * @method \GuzzleHttp\Promise\Promise unsubscribeFromEventAsync(array $args = []) + * @method \Aws\Result updateAssessmentTarget(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAssessmentTargetAsync(array $args = []) + */ +class InspectorClient extends AwsClient {} diff --git a/lib/aws/Aws/IoT1ClickDevicesService/Exception/IoT1ClickDevicesServiceException.php b/lib/aws/Aws/IoT1ClickDevicesService/Exception/IoT1ClickDevicesServiceException.php new file mode 100644 index 0000000..83ced61 --- /dev/null +++ b/lib/aws/Aws/IoT1ClickDevicesService/Exception/IoT1ClickDevicesServiceException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\IoT1ClickDevicesService\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS IoT 1-Click Devices Service** service. + */ +class IoT1ClickDevicesServiceException extends AwsException {} diff --git a/lib/aws/Aws/IoT1ClickDevicesService/IoT1ClickDevicesServiceClient.php b/lib/aws/Aws/IoT1ClickDevicesService/IoT1ClickDevicesServiceClient.php new file mode 100644 index 0000000..10a08a9 --- /dev/null +++ b/lib/aws/Aws/IoT1ClickDevicesService/IoT1ClickDevicesServiceClient.php @@ -0,0 +1,35 @@ +<?php +namespace Aws\IoT1ClickDevicesService; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS IoT 1-Click Devices Service** service. + * @method \Aws\Result claimDevicesByClaimCode(array $args = []) + * @method \GuzzleHttp\Promise\Promise claimDevicesByClaimCodeAsync(array $args = []) + * @method \Aws\Result describeDevice(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDeviceAsync(array $args = []) + * @method \Aws\Result finalizeDeviceClaim(array $args = []) + * @method \GuzzleHttp\Promise\Promise finalizeDeviceClaimAsync(array $args = []) + * @method \Aws\Result getDeviceMethods(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDeviceMethodsAsync(array $args = []) + * @method \Aws\Result initiateDeviceClaim(array $args = []) + * @method \GuzzleHttp\Promise\Promise initiateDeviceClaimAsync(array $args = []) + * @method \Aws\Result invokeDeviceMethod(array $args = []) + * @method \GuzzleHttp\Promise\Promise invokeDeviceMethodAsync(array $args = []) + * @method \Aws\Result listDeviceEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDeviceEventsAsync(array $args = []) + * @method \Aws\Result listDevices(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDevicesAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result unclaimDevice(array $args = []) + * @method \GuzzleHttp\Promise\Promise unclaimDeviceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateDeviceState(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDeviceStateAsync(array $args = []) + */ +class IoT1ClickDevicesServiceClient extends AwsClient {} diff --git a/lib/aws/Aws/IoT1ClickProjects/Exception/IoT1ClickProjectsException.php b/lib/aws/Aws/IoT1ClickProjects/Exception/IoT1ClickProjectsException.php new file mode 100644 index 0000000..afe87ae --- /dev/null +++ b/lib/aws/Aws/IoT1ClickProjects/Exception/IoT1ClickProjectsException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\IoT1ClickProjects\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS IoT 1-Click Projects Service** service. + */ +class IoT1ClickProjectsException extends AwsException {} diff --git a/lib/aws/Aws/IoT1ClickProjects/IoT1ClickProjectsClient.php b/lib/aws/Aws/IoT1ClickProjects/IoT1ClickProjectsClient.php new file mode 100644 index 0000000..448b337 --- /dev/null +++ b/lib/aws/Aws/IoT1ClickProjects/IoT1ClickProjectsClient.php @@ -0,0 +1,41 @@ +<?php +namespace Aws\IoT1ClickProjects; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS IoT 1-Click Projects Service** service. + * @method \Aws\Result associateDeviceWithPlacement(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateDeviceWithPlacementAsync(array $args = []) + * @method \Aws\Result createPlacement(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPlacementAsync(array $args = []) + * @method \Aws\Result createProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise createProjectAsync(array $args = []) + * @method \Aws\Result deletePlacement(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePlacementAsync(array $args = []) + * @method \Aws\Result deleteProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteProjectAsync(array $args = []) + * @method \Aws\Result describePlacement(array $args = []) + * @method \GuzzleHttp\Promise\Promise describePlacementAsync(array $args = []) + * @method \Aws\Result describeProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeProjectAsync(array $args = []) + * @method \Aws\Result disassociateDeviceFromPlacement(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateDeviceFromPlacementAsync(array $args = []) + * @method \Aws\Result getDevicesInPlacement(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDevicesInPlacementAsync(array $args = []) + * @method \Aws\Result listPlacements(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPlacementsAsync(array $args = []) + * @method \Aws\Result listProjects(array $args = []) + * @method \GuzzleHttp\Promise\Promise listProjectsAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updatePlacement(array $args = []) + * @method \GuzzleHttp\Promise\Promise updatePlacementAsync(array $args = []) + * @method \Aws\Result updateProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateProjectAsync(array $args = []) + */ +class IoT1ClickProjectsClient extends AwsClient {} diff --git a/lib/aws/Aws/IoTAnalytics/Exception/IoTAnalyticsException.php b/lib/aws/Aws/IoTAnalytics/Exception/IoTAnalyticsException.php new file mode 100644 index 0000000..1464295 --- /dev/null +++ b/lib/aws/Aws/IoTAnalytics/Exception/IoTAnalyticsException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\IoTAnalytics\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS IoT Analytics** service. + */ +class IoTAnalyticsException extends AwsException {} diff --git a/lib/aws/Aws/IoTAnalytics/IoTAnalyticsClient.php b/lib/aws/Aws/IoTAnalytics/IoTAnalyticsClient.php new file mode 100644 index 0000000..c9f1266 --- /dev/null +++ b/lib/aws/Aws/IoTAnalytics/IoTAnalyticsClient.php @@ -0,0 +1,77 @@ +<?php +namespace Aws\IoTAnalytics; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS IoT Analytics** service. + * @method \Aws\Result batchPutMessage(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchPutMessageAsync(array $args = []) + * @method \Aws\Result cancelPipelineReprocessing(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelPipelineReprocessingAsync(array $args = []) + * @method \Aws\Result createChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise createChannelAsync(array $args = []) + * @method \Aws\Result createDataset(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDatasetAsync(array $args = []) + * @method \Aws\Result createDatasetContent(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDatasetContentAsync(array $args = []) + * @method \Aws\Result createDatastore(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDatastoreAsync(array $args = []) + * @method \Aws\Result createPipeline(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPipelineAsync(array $args = []) + * @method \Aws\Result deleteChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteChannelAsync(array $args = []) + * @method \Aws\Result deleteDataset(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDatasetAsync(array $args = []) + * @method \Aws\Result deleteDatasetContent(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDatasetContentAsync(array $args = []) + * @method \Aws\Result deleteDatastore(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDatastoreAsync(array $args = []) + * @method \Aws\Result deletePipeline(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePipelineAsync(array $args = []) + * @method \Aws\Result describeChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeChannelAsync(array $args = []) + * @method \Aws\Result describeDataset(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDatasetAsync(array $args = []) + * @method \Aws\Result describeDatastore(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDatastoreAsync(array $args = []) + * @method \Aws\Result describeLoggingOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLoggingOptionsAsync(array $args = []) + * @method \Aws\Result describePipeline(array $args = []) + * @method \GuzzleHttp\Promise\Promise describePipelineAsync(array $args = []) + * @method \Aws\Result getDatasetContent(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDatasetContentAsync(array $args = []) + * @method \Aws\Result listChannels(array $args = []) + * @method \GuzzleHttp\Promise\Promise listChannelsAsync(array $args = []) + * @method \Aws\Result listDatasetContents(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDatasetContentsAsync(array $args = []) + * @method \Aws\Result listDatasets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDatasetsAsync(array $args = []) + * @method \Aws\Result listDatastores(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDatastoresAsync(array $args = []) + * @method \Aws\Result listPipelines(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPipelinesAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result putLoggingOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise putLoggingOptionsAsync(array $args = []) + * @method \Aws\Result runPipelineActivity(array $args = []) + * @method \GuzzleHttp\Promise\Promise runPipelineActivityAsync(array $args = []) + * @method \Aws\Result sampleChannelData(array $args = []) + * @method \GuzzleHttp\Promise\Promise sampleChannelDataAsync(array $args = []) + * @method \Aws\Result startPipelineReprocessing(array $args = []) + * @method \GuzzleHttp\Promise\Promise startPipelineReprocessingAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateChannelAsync(array $args = []) + * @method \Aws\Result updateDataset(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDatasetAsync(array $args = []) + * @method \Aws\Result updateDatastore(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDatastoreAsync(array $args = []) + * @method \Aws\Result updatePipeline(array $args = []) + * @method \GuzzleHttp\Promise\Promise updatePipelineAsync(array $args = []) + */ +class IoTAnalyticsClient extends AwsClient {} diff --git a/lib/aws/Aws/IoTJobsDataPlane/Exception/IoTJobsDataPlaneException.php b/lib/aws/Aws/IoTJobsDataPlane/Exception/IoTJobsDataPlaneException.php new file mode 100644 index 0000000..08e13df --- /dev/null +++ b/lib/aws/Aws/IoTJobsDataPlane/Exception/IoTJobsDataPlaneException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\IoTJobsDataPlane\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS IoT Jobs Data Plane** service. + */ +class IoTJobsDataPlaneException extends AwsException {} diff --git a/lib/aws/Aws/IoTJobsDataPlane/IoTJobsDataPlaneClient.php b/lib/aws/Aws/IoTJobsDataPlane/IoTJobsDataPlaneClient.php new file mode 100644 index 0000000..037d0ef --- /dev/null +++ b/lib/aws/Aws/IoTJobsDataPlane/IoTJobsDataPlaneClient.php @@ -0,0 +1,17 @@ +<?php +namespace Aws\IoTJobsDataPlane; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS IoT Jobs Data Plane** service. + * @method \Aws\Result describeJobExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeJobExecutionAsync(array $args = []) + * @method \Aws\Result getPendingJobExecutions(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPendingJobExecutionsAsync(array $args = []) + * @method \Aws\Result startNextPendingJobExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise startNextPendingJobExecutionAsync(array $args = []) + * @method \Aws\Result updateJobExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateJobExecutionAsync(array $args = []) + */ +class IoTJobsDataPlaneClient extends AwsClient {} diff --git a/lib/aws/Aws/Iot/Exception/IotException.php b/lib/aws/Aws/Iot/Exception/IotException.php new file mode 100644 index 0000000..8fff3e4 --- /dev/null +++ b/lib/aws/Aws/Iot/Exception/IotException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Iot\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS IoT** service. + */ +class IotException extends AwsException {} diff --git a/lib/aws/Aws/Iot/IotClient.php b/lib/aws/Aws/Iot/IotClient.php new file mode 100644 index 0000000..4c0a3da --- /dev/null +++ b/lib/aws/Aws/Iot/IotClient.php @@ -0,0 +1,344 @@ +<?php +namespace Aws\Iot; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS IoT** service. + * + * @method \Aws\Result acceptCertificateTransfer(array $args = []) + * @method \GuzzleHttp\Promise\Promise acceptCertificateTransferAsync(array $args = []) + * @method \Aws\Result addThingToBillingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise addThingToBillingGroupAsync(array $args = []) + * @method \Aws\Result addThingToThingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise addThingToThingGroupAsync(array $args = []) + * @method \Aws\Result associateTargetsWithJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateTargetsWithJobAsync(array $args = []) + * @method \Aws\Result attachPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachPolicyAsync(array $args = []) + * @method \Aws\Result attachPrincipalPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachPrincipalPolicyAsync(array $args = []) + * @method \Aws\Result attachSecurityProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachSecurityProfileAsync(array $args = []) + * @method \Aws\Result attachThingPrincipal(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachThingPrincipalAsync(array $args = []) + * @method \Aws\Result cancelAuditTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelAuditTaskAsync(array $args = []) + * @method \Aws\Result cancelCertificateTransfer(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelCertificateTransferAsync(array $args = []) + * @method \Aws\Result cancelJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelJobAsync(array $args = []) + * @method \Aws\Result cancelJobExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelJobExecutionAsync(array $args = []) + * @method \Aws\Result clearDefaultAuthorizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise clearDefaultAuthorizerAsync(array $args = []) + * @method \Aws\Result createAuthorizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAuthorizerAsync(array $args = []) + * @method \Aws\Result createBillingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBillingGroupAsync(array $args = []) + * @method \Aws\Result createCertificateFromCsr(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCertificateFromCsrAsync(array $args = []) + * @method \Aws\Result createDynamicThingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDynamicThingGroupAsync(array $args = []) + * @method \Aws\Result createJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise createJobAsync(array $args = []) + * @method \Aws\Result createKeysAndCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise createKeysAndCertificateAsync(array $args = []) + * @method \Aws\Result createOTAUpdate(array $args = []) + * @method \GuzzleHttp\Promise\Promise createOTAUpdateAsync(array $args = []) + * @method \Aws\Result createPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPolicyAsync(array $args = []) + * @method \Aws\Result createPolicyVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPolicyVersionAsync(array $args = []) + * @method \Aws\Result createRoleAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRoleAliasAsync(array $args = []) + * @method \Aws\Result createScheduledAudit(array $args = []) + * @method \GuzzleHttp\Promise\Promise createScheduledAuditAsync(array $args = []) + * @method \Aws\Result createSecurityProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSecurityProfileAsync(array $args = []) + * @method \Aws\Result createStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise createStreamAsync(array $args = []) + * @method \Aws\Result createThing(array $args = []) + * @method \GuzzleHttp\Promise\Promise createThingAsync(array $args = []) + * @method \Aws\Result createThingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createThingGroupAsync(array $args = []) + * @method \Aws\Result createThingType(array $args = []) + * @method \GuzzleHttp\Promise\Promise createThingTypeAsync(array $args = []) + * @method \Aws\Result createTopicRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTopicRuleAsync(array $args = []) + * @method \Aws\Result deleteAccountAuditConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAccountAuditConfigurationAsync(array $args = []) + * @method \Aws\Result deleteAuthorizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAuthorizerAsync(array $args = []) + * @method \Aws\Result deleteBillingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBillingGroupAsync(array $args = []) + * @method \Aws\Result deleteCACertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCACertificateAsync(array $args = []) + * @method \Aws\Result deleteCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCertificateAsync(array $args = []) + * @method \Aws\Result deleteDynamicThingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDynamicThingGroupAsync(array $args = []) + * @method \Aws\Result deleteJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteJobAsync(array $args = []) + * @method \Aws\Result deleteJobExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteJobExecutionAsync(array $args = []) + * @method \Aws\Result deleteOTAUpdate(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteOTAUpdateAsync(array $args = []) + * @method \Aws\Result deletePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePolicyAsync(array $args = []) + * @method \Aws\Result deletePolicyVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePolicyVersionAsync(array $args = []) + * @method \Aws\Result deleteRegistrationCode(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRegistrationCodeAsync(array $args = []) + * @method \Aws\Result deleteRoleAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRoleAliasAsync(array $args = []) + * @method \Aws\Result deleteScheduledAudit(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteScheduledAuditAsync(array $args = []) + * @method \Aws\Result deleteSecurityProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSecurityProfileAsync(array $args = []) + * @method \Aws\Result deleteStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteStreamAsync(array $args = []) + * @method \Aws\Result deleteThing(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteThingAsync(array $args = []) + * @method \Aws\Result deleteThingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteThingGroupAsync(array $args = []) + * @method \Aws\Result deleteThingType(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteThingTypeAsync(array $args = []) + * @method \Aws\Result deleteTopicRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTopicRuleAsync(array $args = []) + * @method \Aws\Result deleteV2LoggingLevel(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteV2LoggingLevelAsync(array $args = []) + * @method \Aws\Result deprecateThingType(array $args = []) + * @method \GuzzleHttp\Promise\Promise deprecateThingTypeAsync(array $args = []) + * @method \Aws\Result describeAccountAuditConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAccountAuditConfigurationAsync(array $args = []) + * @method \Aws\Result describeAuditTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAuditTaskAsync(array $args = []) + * @method \Aws\Result describeAuthorizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAuthorizerAsync(array $args = []) + * @method \Aws\Result describeBillingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeBillingGroupAsync(array $args = []) + * @method \Aws\Result describeCACertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCACertificateAsync(array $args = []) + * @method \Aws\Result describeCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCertificateAsync(array $args = []) + * @method \Aws\Result describeDefaultAuthorizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDefaultAuthorizerAsync(array $args = []) + * @method \Aws\Result describeEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEndpointAsync(array $args = []) + * @method \Aws\Result describeEventConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventConfigurationsAsync(array $args = []) + * @method \Aws\Result describeIndex(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeIndexAsync(array $args = []) + * @method \Aws\Result describeJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeJobAsync(array $args = []) + * @method \Aws\Result describeJobExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeJobExecutionAsync(array $args = []) + * @method \Aws\Result describeRoleAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRoleAliasAsync(array $args = []) + * @method \Aws\Result describeScheduledAudit(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeScheduledAuditAsync(array $args = []) + * @method \Aws\Result describeSecurityProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSecurityProfileAsync(array $args = []) + * @method \Aws\Result describeStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStreamAsync(array $args = []) + * @method \Aws\Result describeThing(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeThingAsync(array $args = []) + * @method \Aws\Result describeThingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeThingGroupAsync(array $args = []) + * @method \Aws\Result describeThingRegistrationTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeThingRegistrationTaskAsync(array $args = []) + * @method \Aws\Result describeThingType(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeThingTypeAsync(array $args = []) + * @method \Aws\Result detachPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachPolicyAsync(array $args = []) + * @method \Aws\Result detachPrincipalPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachPrincipalPolicyAsync(array $args = []) + * @method \Aws\Result detachSecurityProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachSecurityProfileAsync(array $args = []) + * @method \Aws\Result detachThingPrincipal(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachThingPrincipalAsync(array $args = []) + * @method \Aws\Result disableTopicRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableTopicRuleAsync(array $args = []) + * @method \Aws\Result enableTopicRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableTopicRuleAsync(array $args = []) + * @method \Aws\Result getEffectivePolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise getEffectivePoliciesAsync(array $args = []) + * @method \Aws\Result getIndexingConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIndexingConfigurationAsync(array $args = []) + * @method \Aws\Result getJobDocument(array $args = []) + * @method \GuzzleHttp\Promise\Promise getJobDocumentAsync(array $args = []) + * @method \Aws\Result getLoggingOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLoggingOptionsAsync(array $args = []) + * @method \Aws\Result getOTAUpdate(array $args = []) + * @method \GuzzleHttp\Promise\Promise getOTAUpdateAsync(array $args = []) + * @method \Aws\Result getPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPolicyAsync(array $args = []) + * @method \Aws\Result getPolicyVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPolicyVersionAsync(array $args = []) + * @method \Aws\Result getRegistrationCode(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRegistrationCodeAsync(array $args = []) + * @method \Aws\Result getStatistics(array $args = []) + * @method \GuzzleHttp\Promise\Promise getStatisticsAsync(array $args = []) + * @method \Aws\Result getTopicRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTopicRuleAsync(array $args = []) + * @method \Aws\Result getV2LoggingOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise getV2LoggingOptionsAsync(array $args = []) + * @method \Aws\Result listActiveViolations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listActiveViolationsAsync(array $args = []) + * @method \Aws\Result listAttachedPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAttachedPoliciesAsync(array $args = []) + * @method \Aws\Result listAuditFindings(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAuditFindingsAsync(array $args = []) + * @method \Aws\Result listAuditTasks(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAuditTasksAsync(array $args = []) + * @method \Aws\Result listAuthorizers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAuthorizersAsync(array $args = []) + * @method \Aws\Result listBillingGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBillingGroupsAsync(array $args = []) + * @method \Aws\Result listCACertificates(array $args = []) + * @method \GuzzleHttp\Promise\Promise listCACertificatesAsync(array $args = []) + * @method \Aws\Result listCertificates(array $args = []) + * @method \GuzzleHttp\Promise\Promise listCertificatesAsync(array $args = []) + * @method \Aws\Result listCertificatesByCA(array $args = []) + * @method \GuzzleHttp\Promise\Promise listCertificatesByCAAsync(array $args = []) + * @method \Aws\Result listIndices(array $args = []) + * @method \GuzzleHttp\Promise\Promise listIndicesAsync(array $args = []) + * @method \Aws\Result listJobExecutionsForJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise listJobExecutionsForJobAsync(array $args = []) + * @method \Aws\Result listJobExecutionsForThing(array $args = []) + * @method \GuzzleHttp\Promise\Promise listJobExecutionsForThingAsync(array $args = []) + * @method \Aws\Result listJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listJobsAsync(array $args = []) + * @method \Aws\Result listOTAUpdates(array $args = []) + * @method \GuzzleHttp\Promise\Promise listOTAUpdatesAsync(array $args = []) + * @method \Aws\Result listOutgoingCertificates(array $args = []) + * @method \GuzzleHttp\Promise\Promise listOutgoingCertificatesAsync(array $args = []) + * @method \Aws\Result listPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPoliciesAsync(array $args = []) + * @method \Aws\Result listPolicyPrincipals(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPolicyPrincipalsAsync(array $args = []) + * @method \Aws\Result listPolicyVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPolicyVersionsAsync(array $args = []) + * @method \Aws\Result listPrincipalPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPrincipalPoliciesAsync(array $args = []) + * @method \Aws\Result listPrincipalThings(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPrincipalThingsAsync(array $args = []) + * @method \Aws\Result listRoleAliases(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRoleAliasesAsync(array $args = []) + * @method \Aws\Result listScheduledAudits(array $args = []) + * @method \GuzzleHttp\Promise\Promise listScheduledAuditsAsync(array $args = []) + * @method \Aws\Result listSecurityProfiles(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSecurityProfilesAsync(array $args = []) + * @method \Aws\Result listSecurityProfilesForTarget(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSecurityProfilesForTargetAsync(array $args = []) + * @method \Aws\Result listStreams(array $args = []) + * @method \GuzzleHttp\Promise\Promise listStreamsAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result listTargetsForPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTargetsForPolicyAsync(array $args = []) + * @method \Aws\Result listTargetsForSecurityProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTargetsForSecurityProfileAsync(array $args = []) + * @method \Aws\Result listThingGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise listThingGroupsAsync(array $args = []) + * @method \Aws\Result listThingGroupsForThing(array $args = []) + * @method \GuzzleHttp\Promise\Promise listThingGroupsForThingAsync(array $args = []) + * @method \Aws\Result listThingPrincipals(array $args = []) + * @method \GuzzleHttp\Promise\Promise listThingPrincipalsAsync(array $args = []) + * @method \Aws\Result listThingRegistrationTaskReports(array $args = []) + * @method \GuzzleHttp\Promise\Promise listThingRegistrationTaskReportsAsync(array $args = []) + * @method \Aws\Result listThingRegistrationTasks(array $args = []) + * @method \GuzzleHttp\Promise\Promise listThingRegistrationTasksAsync(array $args = []) + * @method \Aws\Result listThingTypes(array $args = []) + * @method \GuzzleHttp\Promise\Promise listThingTypesAsync(array $args = []) + * @method \Aws\Result listThings(array $args = []) + * @method \GuzzleHttp\Promise\Promise listThingsAsync(array $args = []) + * @method \Aws\Result listThingsInBillingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise listThingsInBillingGroupAsync(array $args = []) + * @method \Aws\Result listThingsInThingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise listThingsInThingGroupAsync(array $args = []) + * @method \Aws\Result listTopicRules(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTopicRulesAsync(array $args = []) + * @method \Aws\Result listV2LoggingLevels(array $args = []) + * @method \GuzzleHttp\Promise\Promise listV2LoggingLevelsAsync(array $args = []) + * @method \Aws\Result listViolationEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise listViolationEventsAsync(array $args = []) + * @method \Aws\Result registerCACertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerCACertificateAsync(array $args = []) + * @method \Aws\Result registerCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerCertificateAsync(array $args = []) + * @method \Aws\Result registerThing(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerThingAsync(array $args = []) + * @method \Aws\Result rejectCertificateTransfer(array $args = []) + * @method \GuzzleHttp\Promise\Promise rejectCertificateTransferAsync(array $args = []) + * @method \Aws\Result removeThingFromBillingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeThingFromBillingGroupAsync(array $args = []) + * @method \Aws\Result removeThingFromThingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeThingFromThingGroupAsync(array $args = []) + * @method \Aws\Result replaceTopicRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise replaceTopicRuleAsync(array $args = []) + * @method \Aws\Result searchIndex(array $args = []) + * @method \GuzzleHttp\Promise\Promise searchIndexAsync(array $args = []) + * @method \Aws\Result setDefaultAuthorizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise setDefaultAuthorizerAsync(array $args = []) + * @method \Aws\Result setDefaultPolicyVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise setDefaultPolicyVersionAsync(array $args = []) + * @method \Aws\Result setLoggingOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise setLoggingOptionsAsync(array $args = []) + * @method \Aws\Result setV2LoggingLevel(array $args = []) + * @method \GuzzleHttp\Promise\Promise setV2LoggingLevelAsync(array $args = []) + * @method \Aws\Result setV2LoggingOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise setV2LoggingOptionsAsync(array $args = []) + * @method \Aws\Result startOnDemandAuditTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise startOnDemandAuditTaskAsync(array $args = []) + * @method \Aws\Result startThingRegistrationTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise startThingRegistrationTaskAsync(array $args = []) + * @method \Aws\Result stopThingRegistrationTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopThingRegistrationTaskAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result testAuthorization(array $args = []) + * @method \GuzzleHttp\Promise\Promise testAuthorizationAsync(array $args = []) + * @method \Aws\Result testInvokeAuthorizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise testInvokeAuthorizerAsync(array $args = []) + * @method \Aws\Result transferCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise transferCertificateAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateAccountAuditConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAccountAuditConfigurationAsync(array $args = []) + * @method \Aws\Result updateAuthorizer(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAuthorizerAsync(array $args = []) + * @method \Aws\Result updateBillingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateBillingGroupAsync(array $args = []) + * @method \Aws\Result updateCACertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateCACertificateAsync(array $args = []) + * @method \Aws\Result updateCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateCertificateAsync(array $args = []) + * @method \Aws\Result updateDynamicThingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDynamicThingGroupAsync(array $args = []) + * @method \Aws\Result updateEventConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateEventConfigurationsAsync(array $args = []) + * @method \Aws\Result updateIndexingConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateIndexingConfigurationAsync(array $args = []) + * @method \Aws\Result updateJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateJobAsync(array $args = []) + * @method \Aws\Result updateRoleAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRoleAliasAsync(array $args = []) + * @method \Aws\Result updateScheduledAudit(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateScheduledAuditAsync(array $args = []) + * @method \Aws\Result updateSecurityProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSecurityProfileAsync(array $args = []) + * @method \Aws\Result updateStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateStreamAsync(array $args = []) + * @method \Aws\Result updateThing(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateThingAsync(array $args = []) + * @method \Aws\Result updateThingGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateThingGroupAsync(array $args = []) + * @method \Aws\Result updateThingGroupsForThing(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateThingGroupsForThingAsync(array $args = []) + * @method \Aws\Result validateSecurityProfileBehaviors(array $args = []) + * @method \GuzzleHttp\Promise\Promise validateSecurityProfileBehaviorsAsync(array $args = []) + */ +class IotClient extends AwsClient {} diff --git a/lib/aws/Aws/IotDataPlane/Exception/IotDataPlaneException.php b/lib/aws/Aws/IotDataPlane/Exception/IotDataPlaneException.php new file mode 100644 index 0000000..18fee1f --- /dev/null +++ b/lib/aws/Aws/IotDataPlane/Exception/IotDataPlaneException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\IotDataPlane\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS IoT Data Plane** service. + */ +class IotDataPlaneException extends AwsException {} diff --git a/lib/aws/Aws/IotDataPlane/IotDataPlaneClient.php b/lib/aws/Aws/IotDataPlane/IotDataPlaneClient.php new file mode 100644 index 0000000..e391c93 --- /dev/null +++ b/lib/aws/Aws/IotDataPlane/IotDataPlaneClient.php @@ -0,0 +1,18 @@ +<?php +namespace Aws\IotDataPlane; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS IoT Data Plane** service. + * + * @method \Aws\Result deleteThingShadow(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteThingShadowAsync(array $args = []) + * @method \Aws\Result getThingShadow(array $args = []) + * @method \GuzzleHttp\Promise\Promise getThingShadowAsync(array $args = []) + * @method \Aws\Result publish(array $args = []) + * @method \GuzzleHttp\Promise\Promise publishAsync(array $args = []) + * @method \Aws\Result updateThingShadow(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateThingShadowAsync(array $args = []) + */ +class IotDataPlaneClient extends AwsClient {} diff --git a/lib/aws/Aws/JsonCompiler.php b/lib/aws/Aws/JsonCompiler.php new file mode 100644 index 0000000..5358b31 --- /dev/null +++ b/lib/aws/Aws/JsonCompiler.php @@ -0,0 +1,25 @@ +<?php +namespace Aws; + +/** + * Loads JSON files and compiles them into PHP arrays. + * + * @internal Please use json_decode instead. + * @deprecated + */ +class JsonCompiler +{ + const CACHE_ENV = 'AWS_PHP_CACHE_DIR'; + + /** + * 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) + { + return load_compiled_json($path); + } +} diff --git a/lib/aws/Aws/Kafka/Exception/KafkaException.php b/lib/aws/Aws/Kafka/Exception/KafkaException.php new file mode 100644 index 0000000..d32afec --- /dev/null +++ b/lib/aws/Aws/Kafka/Exception/KafkaException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Kafka\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Managed Streaming for Kafka** service. + */ +class KafkaException extends AwsException {} diff --git a/lib/aws/Aws/Kafka/KafkaClient.php b/lib/aws/Aws/Kafka/KafkaClient.php new file mode 100644 index 0000000..c536179 --- /dev/null +++ b/lib/aws/Aws/Kafka/KafkaClient.php @@ -0,0 +1,21 @@ +<?php +namespace Aws\Kafka; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Managed Streaming for Kafka** service. + * @method \Aws\Result createCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise createClusterAsync(array $args = []) + * @method \Aws\Result deleteCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteClusterAsync(array $args = []) + * @method \Aws\Result describeCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeClusterAsync(array $args = []) + * @method \Aws\Result getBootstrapBrokers(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBootstrapBrokersAsync(array $args = []) + * @method \Aws\Result listClusters(array $args = []) + * @method \GuzzleHttp\Promise\Promise listClustersAsync(array $args = []) + * @method \Aws\Result listNodes(array $args = []) + * @method \GuzzleHttp\Promise\Promise listNodesAsync(array $args = []) + */ +class KafkaClient extends AwsClient {} diff --git a/lib/aws/Aws/Kinesis/Exception/KinesisException.php b/lib/aws/Aws/Kinesis/Exception/KinesisException.php new file mode 100644 index 0000000..ab11d7a --- /dev/null +++ b/lib/aws/Aws/Kinesis/Exception/KinesisException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Kinesis\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon Kinesis service. + */ +class KinesisException extends AwsException {} diff --git a/lib/aws/Aws/Kinesis/KinesisClient.php b/lib/aws/Aws/Kinesis/KinesisClient.php new file mode 100644 index 0000000..0666f66 --- /dev/null +++ b/lib/aws/Aws/Kinesis/KinesisClient.php @@ -0,0 +1,64 @@ +<?php +namespace Aws\Kinesis; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Kinesis** service. + * + * @method \Aws\Result addTagsToStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsToStreamAsync(array $args = []) + * @method \Aws\Result createStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise createStreamAsync(array $args = []) + * @method \Aws\Result decreaseStreamRetentionPeriod(array $args = []) + * @method \GuzzleHttp\Promise\Promise decreaseStreamRetentionPeriodAsync(array $args = []) + * @method \Aws\Result deleteStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteStreamAsync(array $args = []) + * @method \Aws\Result deregisterStreamConsumer(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterStreamConsumerAsync(array $args = []) + * @method \Aws\Result describeLimits(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLimitsAsync(array $args = []) + * @method \Aws\Result describeStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStreamAsync(array $args = []) + * @method \Aws\Result describeStreamConsumer(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStreamConsumerAsync(array $args = []) + * @method \Aws\Result describeStreamSummary(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStreamSummaryAsync(array $args = []) + * @method \Aws\Result disableEnhancedMonitoring(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableEnhancedMonitoringAsync(array $args = []) + * @method \Aws\Result enableEnhancedMonitoring(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableEnhancedMonitoringAsync(array $args = []) + * @method \Aws\Result getRecords(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRecordsAsync(array $args = []) + * @method \Aws\Result getShardIterator(array $args = []) + * @method \GuzzleHttp\Promise\Promise getShardIteratorAsync(array $args = []) + * @method \Aws\Result increaseStreamRetentionPeriod(array $args = []) + * @method \GuzzleHttp\Promise\Promise increaseStreamRetentionPeriodAsync(array $args = []) + * @method \Aws\Result listShards(array $args = []) + * @method \GuzzleHttp\Promise\Promise listShardsAsync(array $args = []) + * @method \Aws\Result listStreamConsumers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listStreamConsumersAsync(array $args = []) + * @method \Aws\Result listStreams(array $args = []) + * @method \GuzzleHttp\Promise\Promise listStreamsAsync(array $args = []) + * @method \Aws\Result listTagsForStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForStreamAsync(array $args = []) + * @method \Aws\Result mergeShards(array $args = []) + * @method \GuzzleHttp\Promise\Promise mergeShardsAsync(array $args = []) + * @method \Aws\Result putRecord(array $args = []) + * @method \GuzzleHttp\Promise\Promise putRecordAsync(array $args = []) + * @method \Aws\Result putRecords(array $args = []) + * @method \GuzzleHttp\Promise\Promise putRecordsAsync(array $args = []) + * @method \Aws\Result registerStreamConsumer(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerStreamConsumerAsync(array $args = []) + * @method \Aws\Result removeTagsFromStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeTagsFromStreamAsync(array $args = []) + * @method \Aws\Result splitShard(array $args = []) + * @method \GuzzleHttp\Promise\Promise splitShardAsync(array $args = []) + * @method \Aws\Result startStreamEncryption(array $args = []) + * @method \GuzzleHttp\Promise\Promise startStreamEncryptionAsync(array $args = []) + * @method \Aws\Result stopStreamEncryption(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopStreamEncryptionAsync(array $args = []) + * @method \Aws\Result updateShardCount(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateShardCountAsync(array $args = []) + */ +class KinesisClient extends AwsClient {} diff --git a/lib/aws/Aws/KinesisAnalytics/Exception/KinesisAnalyticsException.php b/lib/aws/Aws/KinesisAnalytics/Exception/KinesisAnalyticsException.php new file mode 100644 index 0000000..2f29552 --- /dev/null +++ b/lib/aws/Aws/KinesisAnalytics/Exception/KinesisAnalyticsException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\KinesisAnalytics\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Kinesis Analytics** service. + */ +class KinesisAnalyticsException extends AwsException {} diff --git a/lib/aws/Aws/KinesisAnalytics/KinesisAnalyticsClient.php b/lib/aws/Aws/KinesisAnalytics/KinesisAnalyticsClient.php new file mode 100644 index 0000000..b8c0d54 --- /dev/null +++ b/lib/aws/Aws/KinesisAnalytics/KinesisAnalyticsClient.php @@ -0,0 +1,43 @@ +<?php +namespace Aws\KinesisAnalytics; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Kinesis Analytics** service. + * @method \Aws\Result addApplicationCloudWatchLoggingOption(array $args = []) + * @method \GuzzleHttp\Promise\Promise addApplicationCloudWatchLoggingOptionAsync(array $args = []) + * @method \Aws\Result addApplicationInput(array $args = []) + * @method \GuzzleHttp\Promise\Promise addApplicationInputAsync(array $args = []) + * @method \Aws\Result addApplicationInputProcessingConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise addApplicationInputProcessingConfigurationAsync(array $args = []) + * @method \Aws\Result addApplicationOutput(array $args = []) + * @method \GuzzleHttp\Promise\Promise addApplicationOutputAsync(array $args = []) + * @method \Aws\Result addApplicationReferenceDataSource(array $args = []) + * @method \GuzzleHttp\Promise\Promise addApplicationReferenceDataSourceAsync(array $args = []) + * @method \Aws\Result createApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise createApplicationAsync(array $args = []) + * @method \Aws\Result deleteApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApplicationAsync(array $args = []) + * @method \Aws\Result deleteApplicationCloudWatchLoggingOption(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApplicationCloudWatchLoggingOptionAsync(array $args = []) + * @method \Aws\Result deleteApplicationInputProcessingConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApplicationInputProcessingConfigurationAsync(array $args = []) + * @method \Aws\Result deleteApplicationOutput(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApplicationOutputAsync(array $args = []) + * @method \Aws\Result deleteApplicationReferenceDataSource(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApplicationReferenceDataSourceAsync(array $args = []) + * @method \Aws\Result describeApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeApplicationAsync(array $args = []) + * @method \Aws\Result discoverInputSchema(array $args = []) + * @method \GuzzleHttp\Promise\Promise discoverInputSchemaAsync(array $args = []) + * @method \Aws\Result listApplications(array $args = []) + * @method \GuzzleHttp\Promise\Promise listApplicationsAsync(array $args = []) + * @method \Aws\Result startApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise startApplicationAsync(array $args = []) + * @method \Aws\Result stopApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopApplicationAsync(array $args = []) + * @method \Aws\Result updateApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateApplicationAsync(array $args = []) + */ +class KinesisAnalyticsClient extends AwsClient {} diff --git a/lib/aws/Aws/KinesisAnalyticsV2/Exception/KinesisAnalyticsV2Exception.php b/lib/aws/Aws/KinesisAnalyticsV2/Exception/KinesisAnalyticsV2Exception.php new file mode 100644 index 0000000..affcc42 --- /dev/null +++ b/lib/aws/Aws/KinesisAnalyticsV2/Exception/KinesisAnalyticsV2Exception.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\KinesisAnalyticsV2\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Kinesis Analytics** service. + */ +class KinesisAnalyticsV2Exception extends AwsException {} diff --git a/lib/aws/Aws/KinesisAnalyticsV2/KinesisAnalyticsV2Client.php b/lib/aws/Aws/KinesisAnalyticsV2/KinesisAnalyticsV2Client.php new file mode 100644 index 0000000..f73fe5d --- /dev/null +++ b/lib/aws/Aws/KinesisAnalyticsV2/KinesisAnalyticsV2Client.php @@ -0,0 +1,51 @@ +<?php +namespace Aws\KinesisAnalyticsV2; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Kinesis Analytics** service. + * @method \Aws\Result addApplicationCloudWatchLoggingOption(array $args = []) + * @method \GuzzleHttp\Promise\Promise addApplicationCloudWatchLoggingOptionAsync(array $args = []) + * @method \Aws\Result addApplicationInput(array $args = []) + * @method \GuzzleHttp\Promise\Promise addApplicationInputAsync(array $args = []) + * @method \Aws\Result addApplicationInputProcessingConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise addApplicationInputProcessingConfigurationAsync(array $args = []) + * @method \Aws\Result addApplicationOutput(array $args = []) + * @method \GuzzleHttp\Promise\Promise addApplicationOutputAsync(array $args = []) + * @method \Aws\Result addApplicationReferenceDataSource(array $args = []) + * @method \GuzzleHttp\Promise\Promise addApplicationReferenceDataSourceAsync(array $args = []) + * @method \Aws\Result createApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise createApplicationAsync(array $args = []) + * @method \Aws\Result createApplicationSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise createApplicationSnapshotAsync(array $args = []) + * @method \Aws\Result deleteApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApplicationAsync(array $args = []) + * @method \Aws\Result deleteApplicationCloudWatchLoggingOption(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApplicationCloudWatchLoggingOptionAsync(array $args = []) + * @method \Aws\Result deleteApplicationInputProcessingConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApplicationInputProcessingConfigurationAsync(array $args = []) + * @method \Aws\Result deleteApplicationOutput(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApplicationOutputAsync(array $args = []) + * @method \Aws\Result deleteApplicationReferenceDataSource(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApplicationReferenceDataSourceAsync(array $args = []) + * @method \Aws\Result deleteApplicationSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApplicationSnapshotAsync(array $args = []) + * @method \Aws\Result describeApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeApplicationAsync(array $args = []) + * @method \Aws\Result describeApplicationSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeApplicationSnapshotAsync(array $args = []) + * @method \Aws\Result discoverInputSchema(array $args = []) + * @method \GuzzleHttp\Promise\Promise discoverInputSchemaAsync(array $args = []) + * @method \Aws\Result listApplicationSnapshots(array $args = []) + * @method \GuzzleHttp\Promise\Promise listApplicationSnapshotsAsync(array $args = []) + * @method \Aws\Result listApplications(array $args = []) + * @method \GuzzleHttp\Promise\Promise listApplicationsAsync(array $args = []) + * @method \Aws\Result startApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise startApplicationAsync(array $args = []) + * @method \Aws\Result stopApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopApplicationAsync(array $args = []) + * @method \Aws\Result updateApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateApplicationAsync(array $args = []) + */ +class KinesisAnalyticsV2Client extends AwsClient {} diff --git a/lib/aws/Aws/KinesisVideo/Exception/KinesisVideoException.php b/lib/aws/Aws/KinesisVideo/Exception/KinesisVideoException.php new file mode 100644 index 0000000..500ae7f --- /dev/null +++ b/lib/aws/Aws/KinesisVideo/Exception/KinesisVideoException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\KinesisVideo\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Kinesis Video Streams** service. + */ +class KinesisVideoException extends AwsException {} diff --git a/lib/aws/Aws/KinesisVideo/KinesisVideoClient.php b/lib/aws/Aws/KinesisVideo/KinesisVideoClient.php new file mode 100644 index 0000000..1effe95 --- /dev/null +++ b/lib/aws/Aws/KinesisVideo/KinesisVideoClient.php @@ -0,0 +1,29 @@ +<?php +namespace Aws\KinesisVideo; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Kinesis Video Streams** service. + * @method \Aws\Result createStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise createStreamAsync(array $args = []) + * @method \Aws\Result deleteStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteStreamAsync(array $args = []) + * @method \Aws\Result describeStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStreamAsync(array $args = []) + * @method \Aws\Result getDataEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDataEndpointAsync(array $args = []) + * @method \Aws\Result listStreams(array $args = []) + * @method \GuzzleHttp\Promise\Promise listStreamsAsync(array $args = []) + * @method \Aws\Result listTagsForStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForStreamAsync(array $args = []) + * @method \Aws\Result tagStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagStreamAsync(array $args = []) + * @method \Aws\Result untagStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagStreamAsync(array $args = []) + * @method \Aws\Result updateDataRetention(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDataRetentionAsync(array $args = []) + * @method \Aws\Result updateStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateStreamAsync(array $args = []) + */ +class KinesisVideoClient extends AwsClient {} diff --git a/lib/aws/Aws/KinesisVideoArchivedMedia/Exception/KinesisVideoArchivedMediaException.php b/lib/aws/Aws/KinesisVideoArchivedMedia/Exception/KinesisVideoArchivedMediaException.php new file mode 100644 index 0000000..c6b624f --- /dev/null +++ b/lib/aws/Aws/KinesisVideoArchivedMedia/Exception/KinesisVideoArchivedMediaException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\KinesisVideoArchivedMedia\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Kinesis Video Streams Archived Media** service. + */ +class KinesisVideoArchivedMediaException extends AwsException {} diff --git a/lib/aws/Aws/KinesisVideoArchivedMedia/KinesisVideoArchivedMediaClient.php b/lib/aws/Aws/KinesisVideoArchivedMedia/KinesisVideoArchivedMediaClient.php new file mode 100644 index 0000000..cc12df2 --- /dev/null +++ b/lib/aws/Aws/KinesisVideoArchivedMedia/KinesisVideoArchivedMediaClient.php @@ -0,0 +1,15 @@ +<?php +namespace Aws\KinesisVideoArchivedMedia; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Kinesis Video Streams Archived Media** service. + * @method \Aws\Result getHLSStreamingSessionURL(array $args = []) + * @method \GuzzleHttp\Promise\Promise getHLSStreamingSessionURLAsync(array $args = []) + * @method \Aws\Result getMediaForFragmentList(array $args = []) + * @method \GuzzleHttp\Promise\Promise getMediaForFragmentListAsync(array $args = []) + * @method \Aws\Result listFragments(array $args = []) + * @method \GuzzleHttp\Promise\Promise listFragmentsAsync(array $args = []) + */ +class KinesisVideoArchivedMediaClient extends AwsClient {} diff --git a/lib/aws/Aws/KinesisVideoMedia/Exception/KinesisVideoMediaException.php b/lib/aws/Aws/KinesisVideoMedia/Exception/KinesisVideoMediaException.php new file mode 100644 index 0000000..56aeddd --- /dev/null +++ b/lib/aws/Aws/KinesisVideoMedia/Exception/KinesisVideoMediaException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\KinesisVideoMedia\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Kinesis Video Streams Media** service. + */ +class KinesisVideoMediaException extends AwsException {} diff --git a/lib/aws/Aws/KinesisVideoMedia/KinesisVideoMediaClient.php b/lib/aws/Aws/KinesisVideoMedia/KinesisVideoMediaClient.php new file mode 100644 index 0000000..0c7fece --- /dev/null +++ b/lib/aws/Aws/KinesisVideoMedia/KinesisVideoMediaClient.php @@ -0,0 +1,11 @@ +<?php +namespace Aws\KinesisVideoMedia; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Kinesis Video Streams Media** service. + * @method \Aws\Result getMedia(array $args = []) + * @method \GuzzleHttp\Promise\Promise getMediaAsync(array $args = []) + */ +class KinesisVideoMediaClient extends AwsClient {} diff --git a/lib/aws/Aws/Kms/Exception/KmsException.php b/lib/aws/Aws/Kms/Exception/KmsException.php new file mode 100644 index 0000000..c70aa1b --- /dev/null +++ b/lib/aws/Aws/Kms/Exception/KmsException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Kms\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the AWS Key Management Service. + */ +class KmsException extends AwsException {} diff --git a/lib/aws/Aws/Kms/KmsClient.php b/lib/aws/Aws/Kms/KmsClient.php new file mode 100644 index 0000000..57a4388 --- /dev/null +++ b/lib/aws/Aws/Kms/KmsClient.php @@ -0,0 +1,92 @@ +<?php +namespace Aws\Kms; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Key Management Service**. + * + * @method \Aws\Result cancelKeyDeletion(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelKeyDeletionAsync(array $args = []) + * @method \Aws\Result connectCustomKeyStore(array $args = []) + * @method \GuzzleHttp\Promise\Promise connectCustomKeyStoreAsync(array $args = []) + * @method \Aws\Result createAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAliasAsync(array $args = []) + * @method \Aws\Result createCustomKeyStore(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCustomKeyStoreAsync(array $args = []) + * @method \Aws\Result createGrant(array $args = []) + * @method \GuzzleHttp\Promise\Promise createGrantAsync(array $args = []) + * @method \Aws\Result createKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise createKeyAsync(array $args = []) + * @method \Aws\Result decrypt(array $args = []) + * @method \GuzzleHttp\Promise\Promise decryptAsync(array $args = []) + * @method \Aws\Result deleteAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAliasAsync(array $args = []) + * @method \Aws\Result deleteCustomKeyStore(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCustomKeyStoreAsync(array $args = []) + * @method \Aws\Result deleteImportedKeyMaterial(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteImportedKeyMaterialAsync(array $args = []) + * @method \Aws\Result describeCustomKeyStores(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCustomKeyStoresAsync(array $args = []) + * @method \Aws\Result describeKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeKeyAsync(array $args = []) + * @method \Aws\Result disableKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableKeyAsync(array $args = []) + * @method \Aws\Result disableKeyRotation(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableKeyRotationAsync(array $args = []) + * @method \Aws\Result disconnectCustomKeyStore(array $args = []) + * @method \GuzzleHttp\Promise\Promise disconnectCustomKeyStoreAsync(array $args = []) + * @method \Aws\Result enableKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableKeyAsync(array $args = []) + * @method \Aws\Result enableKeyRotation(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableKeyRotationAsync(array $args = []) + * @method \Aws\Result encrypt(array $args = []) + * @method \GuzzleHttp\Promise\Promise encryptAsync(array $args = []) + * @method \Aws\Result generateDataKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise generateDataKeyAsync(array $args = []) + * @method \Aws\Result generateDataKeyWithoutPlaintext(array $args = []) + * @method \GuzzleHttp\Promise\Promise generateDataKeyWithoutPlaintextAsync(array $args = []) + * @method \Aws\Result generateRandom(array $args = []) + * @method \GuzzleHttp\Promise\Promise generateRandomAsync(array $args = []) + * @method \Aws\Result getKeyPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getKeyPolicyAsync(array $args = []) + * @method \Aws\Result getKeyRotationStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getKeyRotationStatusAsync(array $args = []) + * @method \Aws\Result getParametersForImport(array $args = []) + * @method \GuzzleHttp\Promise\Promise getParametersForImportAsync(array $args = []) + * @method \Aws\Result importKeyMaterial(array $args = []) + * @method \GuzzleHttp\Promise\Promise importKeyMaterialAsync(array $args = []) + * @method \Aws\Result listAliases(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAliasesAsync(array $args = []) + * @method \Aws\Result listGrants(array $args = []) + * @method \GuzzleHttp\Promise\Promise listGrantsAsync(array $args = []) + * @method \Aws\Result listKeyPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise listKeyPoliciesAsync(array $args = []) + * @method \Aws\Result listKeys(array $args = []) + * @method \GuzzleHttp\Promise\Promise listKeysAsync(array $args = []) + * @method \Aws\Result listResourceTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise listResourceTagsAsync(array $args = []) + * @method \Aws\Result listRetirableGrants(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRetirableGrantsAsync(array $args = []) + * @method \Aws\Result putKeyPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putKeyPolicyAsync(array $args = []) + * @method \Aws\Result reEncrypt(array $args = []) + * @method \GuzzleHttp\Promise\Promise reEncryptAsync(array $args = []) + * @method \Aws\Result retireGrant(array $args = []) + * @method \GuzzleHttp\Promise\Promise retireGrantAsync(array $args = []) + * @method \Aws\Result revokeGrant(array $args = []) + * @method \GuzzleHttp\Promise\Promise revokeGrantAsync(array $args = []) + * @method \Aws\Result scheduleKeyDeletion(array $args = []) + * @method \GuzzleHttp\Promise\Promise scheduleKeyDeletionAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAliasAsync(array $args = []) + * @method \Aws\Result updateCustomKeyStore(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateCustomKeyStoreAsync(array $args = []) + * @method \Aws\Result updateKeyDescription(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateKeyDescriptionAsync(array $args = []) + */ +class KmsClient extends AwsClient {} diff --git a/lib/aws/Aws/Lambda/Exception/LambdaException.php b/lib/aws/Aws/Lambda/Exception/LambdaException.php new file mode 100644 index 0000000..13ff495 --- /dev/null +++ b/lib/aws/Aws/Lambda/Exception/LambdaException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Lambda\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with AWS Lambda + */ +class LambdaException extends AwsException {} diff --git a/lib/aws/Aws/Lambda/LambdaClient.php b/lib/aws/Aws/Lambda/LambdaClient.php new file mode 100644 index 0000000..57486d2 --- /dev/null +++ b/lib/aws/Aws/Lambda/LambdaClient.php @@ -0,0 +1,121 @@ +<?php +namespace Aws\Lambda; + +use Aws\AwsClient; +use Aws\CommandInterface; +use Aws\Middleware; + +/** + * This client is used to interact with AWS Lambda + * + * @method \Aws\Result addLayerVersionPermission(array $args = []) + * @method \GuzzleHttp\Promise\Promise addLayerVersionPermissionAsync(array $args = []) + * @method \Aws\Result addPermission(array $args = []) + * @method \GuzzleHttp\Promise\Promise addPermissionAsync(array $args = []) + * @method \Aws\Result createAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAliasAsync(array $args = []) + * @method \Aws\Result createEventSourceMapping(array $args = []) + * @method \GuzzleHttp\Promise\Promise createEventSourceMappingAsync(array $args = []) + * @method \Aws\Result createFunction(array $args = []) + * @method \GuzzleHttp\Promise\Promise createFunctionAsync(array $args = []) + * @method \Aws\Result deleteAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAliasAsync(array $args = []) + * @method \Aws\Result deleteEventSourceMapping(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteEventSourceMappingAsync(array $args = []) + * @method \Aws\Result deleteFunction(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteFunctionAsync(array $args = []) + * @method \Aws\Result deleteFunctionConcurrency(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteFunctionConcurrencyAsync(array $args = []) + * @method \Aws\Result deleteLayerVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLayerVersionAsync(array $args = []) + * @method \Aws\Result getAccountSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAccountSettingsAsync(array $args = []) + * @method \Aws\Result getAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAliasAsync(array $args = []) + * @method \Aws\Result getEventSourceMapping(array $args = []) + * @method \GuzzleHttp\Promise\Promise getEventSourceMappingAsync(array $args = []) + * @method \Aws\Result getFunction(array $args = []) + * @method \GuzzleHttp\Promise\Promise getFunctionAsync(array $args = []) + * @method \Aws\Result getFunctionConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getFunctionConfigurationAsync(array $args = []) + * @method \Aws\Result getLayerVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLayerVersionAsync(array $args = []) + * @method \Aws\Result getLayerVersionPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLayerVersionPolicyAsync(array $args = []) + * @method \Aws\Result getPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPolicyAsync(array $args = []) + * @method \Aws\Result invoke(array $args = []) + * @method \GuzzleHttp\Promise\Promise invokeAsync(array $args = []) + * @method \Aws\Result invokeAsync(array $args = []) + * @method \GuzzleHttp\Promise\Promise invokeAsyncAsync(array $args = []) + * @method \Aws\Result listAliases(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAliasesAsync(array $args = []) + * @method \Aws\Result listEventSourceMappings(array $args = []) + * @method \GuzzleHttp\Promise\Promise listEventSourceMappingsAsync(array $args = []) + * @method \Aws\Result listFunctions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listFunctionsAsync(array $args = []) + * @method \Aws\Result listLayerVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listLayerVersionsAsync(array $args = []) + * @method \Aws\Result listLayers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listLayersAsync(array $args = []) + * @method \Aws\Result listTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsAsync(array $args = []) + * @method \Aws\Result listVersionsByFunction(array $args = []) + * @method \GuzzleHttp\Promise\Promise listVersionsByFunctionAsync(array $args = []) + * @method \Aws\Result publishLayerVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise publishLayerVersionAsync(array $args = []) + * @method \Aws\Result publishVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise publishVersionAsync(array $args = []) + * @method \Aws\Result putFunctionConcurrency(array $args = []) + * @method \GuzzleHttp\Promise\Promise putFunctionConcurrencyAsync(array $args = []) + * @method \Aws\Result removeLayerVersionPermission(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeLayerVersionPermissionAsync(array $args = []) + * @method \Aws\Result removePermission(array $args = []) + * @method \GuzzleHttp\Promise\Promise removePermissionAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAliasAsync(array $args = []) + * @method \Aws\Result updateEventSourceMapping(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateEventSourceMappingAsync(array $args = []) + * @method \Aws\Result updateFunctionCode(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateFunctionCodeAsync(array $args = []) + * @method \Aws\Result updateFunctionConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateFunctionConfigurationAsync(array $args = []) + */ +class LambdaClient extends AwsClient +{ + /** + * {@inheritdoc} + */ + public function __construct(array $args) + { + parent::__construct($args); + $list = $this->getHandlerList(); + if (extension_loaded('curl')) { + $list->appendInit($this->getDefaultCurlOptionsMiddleware()); + } + } + + /** + * Provides a middleware that sets default Curl options for the command + * + * @return callable + */ + public function getDefaultCurlOptionsMiddleware() + { + return Middleware::mapCommand(function (CommandInterface $cmd) { + $defaultCurlOptions = [ + CURLOPT_TCP_KEEPALIVE => 1, + ]; + if (!isset($cmd['@http']['curl'])) { + $cmd['@http']['curl'] = $defaultCurlOptions; + } else { + $cmd['@http']['curl'] += $defaultCurlOptions; + } + return $cmd; + }); + } +} diff --git a/lib/aws/Aws/LexModelBuildingService/Exception/LexModelBuildingServiceException.php b/lib/aws/Aws/LexModelBuildingService/Exception/LexModelBuildingServiceException.php new file mode 100644 index 0000000..c9e4109 --- /dev/null +++ b/lib/aws/Aws/LexModelBuildingService/Exception/LexModelBuildingServiceException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\LexModelBuildingService\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Lex Model Building Service** service. + */ +class LexModelBuildingServiceException extends AwsException {} diff --git a/lib/aws/Aws/LexModelBuildingService/LexModelBuildingServiceClient.php b/lib/aws/Aws/LexModelBuildingService/LexModelBuildingServiceClient.php new file mode 100644 index 0000000..0de45c4 --- /dev/null +++ b/lib/aws/Aws/LexModelBuildingService/LexModelBuildingServiceClient.php @@ -0,0 +1,81 @@ +<?php +namespace Aws\LexModelBuildingService; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Lex Model Building Service** service. + * @method \Aws\Result createBotVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBotVersionAsync(array $args = []) + * @method \Aws\Result createIntentVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise createIntentVersionAsync(array $args = []) + * @method \Aws\Result createSlotTypeVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSlotTypeVersionAsync(array $args = []) + * @method \Aws\Result deleteBot(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBotAsync(array $args = []) + * @method \Aws\Result deleteBotAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBotAliasAsync(array $args = []) + * @method \Aws\Result deleteBotChannelAssociation(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBotChannelAssociationAsync(array $args = []) + * @method \Aws\Result deleteBotVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBotVersionAsync(array $args = []) + * @method \Aws\Result deleteIntent(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteIntentAsync(array $args = []) + * @method \Aws\Result deleteIntentVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteIntentVersionAsync(array $args = []) + * @method \Aws\Result deleteSlotType(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSlotTypeAsync(array $args = []) + * @method \Aws\Result deleteSlotTypeVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSlotTypeVersionAsync(array $args = []) + * @method \Aws\Result deleteUtterances(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUtterancesAsync(array $args = []) + * @method \Aws\Result getBot(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBotAsync(array $args = []) + * @method \Aws\Result getBotAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBotAliasAsync(array $args = []) + * @method \Aws\Result getBotAliases(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBotAliasesAsync(array $args = []) + * @method \Aws\Result getBotChannelAssociation(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBotChannelAssociationAsync(array $args = []) + * @method \Aws\Result getBotChannelAssociations(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBotChannelAssociationsAsync(array $args = []) + * @method \Aws\Result getBotVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBotVersionsAsync(array $args = []) + * @method \Aws\Result getBots(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBotsAsync(array $args = []) + * @method \Aws\Result getBuiltinIntent(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBuiltinIntentAsync(array $args = []) + * @method \Aws\Result getBuiltinIntents(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBuiltinIntentsAsync(array $args = []) + * @method \Aws\Result getBuiltinSlotTypes(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBuiltinSlotTypesAsync(array $args = []) + * @method \Aws\Result getExport(array $args = []) + * @method \GuzzleHttp\Promise\Promise getExportAsync(array $args = []) + * @method \Aws\Result getImport(array $args = []) + * @method \GuzzleHttp\Promise\Promise getImportAsync(array $args = []) + * @method \Aws\Result getIntent(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIntentAsync(array $args = []) + * @method \Aws\Result getIntentVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIntentVersionsAsync(array $args = []) + * @method \Aws\Result getIntents(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIntentsAsync(array $args = []) + * @method \Aws\Result getSlotType(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSlotTypeAsync(array $args = []) + * @method \Aws\Result getSlotTypeVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSlotTypeVersionsAsync(array $args = []) + * @method \Aws\Result getSlotTypes(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSlotTypesAsync(array $args = []) + * @method \Aws\Result getUtterancesView(array $args = []) + * @method \GuzzleHttp\Promise\Promise getUtterancesViewAsync(array $args = []) + * @method \Aws\Result putBot(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBotAsync(array $args = []) + * @method \Aws\Result putBotAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBotAliasAsync(array $args = []) + * @method \Aws\Result putIntent(array $args = []) + * @method \GuzzleHttp\Promise\Promise putIntentAsync(array $args = []) + * @method \Aws\Result putSlotType(array $args = []) + * @method \GuzzleHttp\Promise\Promise putSlotTypeAsync(array $args = []) + * @method \Aws\Result startImport(array $args = []) + * @method \GuzzleHttp\Promise\Promise startImportAsync(array $args = []) + */ +class LexModelBuildingServiceClient extends AwsClient {} diff --git a/lib/aws/Aws/LexRuntimeService/Exception/LexRuntimeServiceException.php b/lib/aws/Aws/LexRuntimeService/Exception/LexRuntimeServiceException.php new file mode 100644 index 0000000..13f0482 --- /dev/null +++ b/lib/aws/Aws/LexRuntimeService/Exception/LexRuntimeServiceException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\LexRuntimeService\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Lex Runtime Service** service. + */ +class LexRuntimeServiceException extends AwsException {} diff --git a/lib/aws/Aws/LexRuntimeService/LexRuntimeServiceClient.php b/lib/aws/Aws/LexRuntimeService/LexRuntimeServiceClient.php new file mode 100644 index 0000000..1a374d4 --- /dev/null +++ b/lib/aws/Aws/LexRuntimeService/LexRuntimeServiceClient.php @@ -0,0 +1,13 @@ +<?php +namespace Aws\LexRuntimeService; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Lex Runtime Service** service. + * @method \Aws\Result postContent(array $args = []) + * @method \GuzzleHttp\Promise\Promise postContentAsync(array $args = []) + * @method \Aws\Result postText(array $args = []) + * @method \GuzzleHttp\Promise\Promise postTextAsync(array $args = []) + */ +class LexRuntimeServiceClient extends AwsClient {} diff --git a/lib/aws/Aws/LicenseManager/Exception/LicenseManagerException.php b/lib/aws/Aws/LicenseManager/Exception/LicenseManagerException.php new file mode 100644 index 0000000..4c86529 --- /dev/null +++ b/lib/aws/Aws/LicenseManager/Exception/LicenseManagerException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\LicenseManager\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS License Manager** service. + */ +class LicenseManagerException extends AwsException {} diff --git a/lib/aws/Aws/LicenseManager/LicenseManagerClient.php b/lib/aws/Aws/LicenseManager/LicenseManagerClient.php new file mode 100644 index 0000000..1eedfcb --- /dev/null +++ b/lib/aws/Aws/LicenseManager/LicenseManagerClient.php @@ -0,0 +1,39 @@ +<?php +namespace Aws\LicenseManager; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS License Manager** service. + * @method \Aws\Result createLicenseConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLicenseConfigurationAsync(array $args = []) + * @method \Aws\Result deleteLicenseConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLicenseConfigurationAsync(array $args = []) + * @method \Aws\Result getLicenseConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLicenseConfigurationAsync(array $args = []) + * @method \Aws\Result getServiceSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise getServiceSettingsAsync(array $args = []) + * @method \Aws\Result listAssociationsForLicenseConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAssociationsForLicenseConfigurationAsync(array $args = []) + * @method \Aws\Result listLicenseConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listLicenseConfigurationsAsync(array $args = []) + * @method \Aws\Result listLicenseSpecificationsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listLicenseSpecificationsForResourceAsync(array $args = []) + * @method \Aws\Result listResourceInventory(array $args = []) + * @method \GuzzleHttp\Promise\Promise listResourceInventoryAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result listUsageForLicenseConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUsageForLicenseConfigurationAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateLicenseConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateLicenseConfigurationAsync(array $args = []) + * @method \Aws\Result updateLicenseSpecificationsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateLicenseSpecificationsForResourceAsync(array $args = []) + * @method \Aws\Result updateServiceSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateServiceSettingsAsync(array $args = []) + */ +class LicenseManagerClient extends AwsClient {} diff --git a/lib/aws/Aws/Lightsail/Exception/LightsailException.php b/lib/aws/Aws/Lightsail/Exception/LightsailException.php new file mode 100644 index 0000000..2ed980e --- /dev/null +++ b/lib/aws/Aws/Lightsail/Exception/LightsailException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Lightsail\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Lightsail** service. + */ +class LightsailException extends AwsException {} diff --git a/lib/aws/Aws/Lightsail/LightsailClient.php b/lib/aws/Aws/Lightsail/LightsailClient.php new file mode 100644 index 0000000..27d20df --- /dev/null +++ b/lib/aws/Aws/Lightsail/LightsailClient.php @@ -0,0 +1,211 @@ +<?php +namespace Aws\Lightsail; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Lightsail** service. + * @method \Aws\Result allocateStaticIp(array $args = []) + * @method \GuzzleHttp\Promise\Promise allocateStaticIpAsync(array $args = []) + * @method \Aws\Result attachDisk(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachDiskAsync(array $args = []) + * @method \Aws\Result attachInstancesToLoadBalancer(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachInstancesToLoadBalancerAsync(array $args = []) + * @method \Aws\Result attachLoadBalancerTlsCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachLoadBalancerTlsCertificateAsync(array $args = []) + * @method \Aws\Result attachStaticIp(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachStaticIpAsync(array $args = []) + * @method \Aws\Result closeInstancePublicPorts(array $args = []) + * @method \GuzzleHttp\Promise\Promise closeInstancePublicPortsAsync(array $args = []) + * @method \Aws\Result copySnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise copySnapshotAsync(array $args = []) + * @method \Aws\Result createCloudFormationStack(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCloudFormationStackAsync(array $args = []) + * @method \Aws\Result createDisk(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDiskAsync(array $args = []) + * @method \Aws\Result createDiskFromSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDiskFromSnapshotAsync(array $args = []) + * @method \Aws\Result createDiskSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDiskSnapshotAsync(array $args = []) + * @method \Aws\Result createDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDomainAsync(array $args = []) + * @method \Aws\Result createDomainEntry(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDomainEntryAsync(array $args = []) + * @method \Aws\Result createInstanceSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise createInstanceSnapshotAsync(array $args = []) + * @method \Aws\Result createInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise createInstancesAsync(array $args = []) + * @method \Aws\Result createInstancesFromSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise createInstancesFromSnapshotAsync(array $args = []) + * @method \Aws\Result createKeyPair(array $args = []) + * @method \GuzzleHttp\Promise\Promise createKeyPairAsync(array $args = []) + * @method \Aws\Result createLoadBalancer(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLoadBalancerAsync(array $args = []) + * @method \Aws\Result createLoadBalancerTlsCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLoadBalancerTlsCertificateAsync(array $args = []) + * @method \Aws\Result createRelationalDatabase(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRelationalDatabaseAsync(array $args = []) + * @method \Aws\Result createRelationalDatabaseFromSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRelationalDatabaseFromSnapshotAsync(array $args = []) + * @method \Aws\Result createRelationalDatabaseSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRelationalDatabaseSnapshotAsync(array $args = []) + * @method \Aws\Result deleteDisk(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDiskAsync(array $args = []) + * @method \Aws\Result deleteDiskSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDiskSnapshotAsync(array $args = []) + * @method \Aws\Result deleteDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDomainAsync(array $args = []) + * @method \Aws\Result deleteDomainEntry(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDomainEntryAsync(array $args = []) + * @method \Aws\Result deleteInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteInstanceAsync(array $args = []) + * @method \Aws\Result deleteInstanceSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteInstanceSnapshotAsync(array $args = []) + * @method \Aws\Result deleteKeyPair(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteKeyPairAsync(array $args = []) + * @method \Aws\Result deleteKnownHostKeys(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteKnownHostKeysAsync(array $args = []) + * @method \Aws\Result deleteLoadBalancer(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLoadBalancerAsync(array $args = []) + * @method \Aws\Result deleteLoadBalancerTlsCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLoadBalancerTlsCertificateAsync(array $args = []) + * @method \Aws\Result deleteRelationalDatabase(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRelationalDatabaseAsync(array $args = []) + * @method \Aws\Result deleteRelationalDatabaseSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRelationalDatabaseSnapshotAsync(array $args = []) + * @method \Aws\Result detachDisk(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachDiskAsync(array $args = []) + * @method \Aws\Result detachInstancesFromLoadBalancer(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachInstancesFromLoadBalancerAsync(array $args = []) + * @method \Aws\Result detachStaticIp(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachStaticIpAsync(array $args = []) + * @method \Aws\Result downloadDefaultKeyPair(array $args = []) + * @method \GuzzleHttp\Promise\Promise downloadDefaultKeyPairAsync(array $args = []) + * @method \Aws\Result exportSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise exportSnapshotAsync(array $args = []) + * @method \Aws\Result getActiveNames(array $args = []) + * @method \GuzzleHttp\Promise\Promise getActiveNamesAsync(array $args = []) + * @method \Aws\Result getBlueprints(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBlueprintsAsync(array $args = []) + * @method \Aws\Result getBundles(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBundlesAsync(array $args = []) + * @method \Aws\Result getCloudFormationStackRecords(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCloudFormationStackRecordsAsync(array $args = []) + * @method \Aws\Result getDisk(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDiskAsync(array $args = []) + * @method \Aws\Result getDiskSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDiskSnapshotAsync(array $args = []) + * @method \Aws\Result getDiskSnapshots(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDiskSnapshotsAsync(array $args = []) + * @method \Aws\Result getDisks(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDisksAsync(array $args = []) + * @method \Aws\Result getDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDomainAsync(array $args = []) + * @method \Aws\Result getDomains(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDomainsAsync(array $args = []) + * @method \Aws\Result getExportSnapshotRecords(array $args = []) + * @method \GuzzleHttp\Promise\Promise getExportSnapshotRecordsAsync(array $args = []) + * @method \Aws\Result getInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInstanceAsync(array $args = []) + * @method \Aws\Result getInstanceAccessDetails(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInstanceAccessDetailsAsync(array $args = []) + * @method \Aws\Result getInstanceMetricData(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInstanceMetricDataAsync(array $args = []) + * @method \Aws\Result getInstancePortStates(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInstancePortStatesAsync(array $args = []) + * @method \Aws\Result getInstanceSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInstanceSnapshotAsync(array $args = []) + * @method \Aws\Result getInstanceSnapshots(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInstanceSnapshotsAsync(array $args = []) + * @method \Aws\Result getInstanceState(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInstanceStateAsync(array $args = []) + * @method \Aws\Result getInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInstancesAsync(array $args = []) + * @method \Aws\Result getKeyPair(array $args = []) + * @method \GuzzleHttp\Promise\Promise getKeyPairAsync(array $args = []) + * @method \Aws\Result getKeyPairs(array $args = []) + * @method \GuzzleHttp\Promise\Promise getKeyPairsAsync(array $args = []) + * @method \Aws\Result getLoadBalancer(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLoadBalancerAsync(array $args = []) + * @method \Aws\Result getLoadBalancerMetricData(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLoadBalancerMetricDataAsync(array $args = []) + * @method \Aws\Result getLoadBalancerTlsCertificates(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLoadBalancerTlsCertificatesAsync(array $args = []) + * @method \Aws\Result getLoadBalancers(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLoadBalancersAsync(array $args = []) + * @method \Aws\Result getOperation(array $args = []) + * @method \GuzzleHttp\Promise\Promise getOperationAsync(array $args = []) + * @method \Aws\Result getOperations(array $args = []) + * @method \GuzzleHttp\Promise\Promise getOperationsAsync(array $args = []) + * @method \Aws\Result getOperationsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise getOperationsForResourceAsync(array $args = []) + * @method \Aws\Result getRegions(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRegionsAsync(array $args = []) + * @method \Aws\Result getRelationalDatabase(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRelationalDatabaseAsync(array $args = []) + * @method \Aws\Result getRelationalDatabaseBlueprints(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRelationalDatabaseBlueprintsAsync(array $args = []) + * @method \Aws\Result getRelationalDatabaseBundles(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRelationalDatabaseBundlesAsync(array $args = []) + * @method \Aws\Result getRelationalDatabaseEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRelationalDatabaseEventsAsync(array $args = []) + * @method \Aws\Result getRelationalDatabaseLogEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRelationalDatabaseLogEventsAsync(array $args = []) + * @method \Aws\Result getRelationalDatabaseLogStreams(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRelationalDatabaseLogStreamsAsync(array $args = []) + * @method \Aws\Result getRelationalDatabaseMasterUserPassword(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRelationalDatabaseMasterUserPasswordAsync(array $args = []) + * @method \Aws\Result getRelationalDatabaseMetricData(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRelationalDatabaseMetricDataAsync(array $args = []) + * @method \Aws\Result getRelationalDatabaseParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRelationalDatabaseParametersAsync(array $args = []) + * @method \Aws\Result getRelationalDatabaseSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRelationalDatabaseSnapshotAsync(array $args = []) + * @method \Aws\Result getRelationalDatabaseSnapshots(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRelationalDatabaseSnapshotsAsync(array $args = []) + * @method \Aws\Result getRelationalDatabases(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRelationalDatabasesAsync(array $args = []) + * @method \Aws\Result getStaticIp(array $args = []) + * @method \GuzzleHttp\Promise\Promise getStaticIpAsync(array $args = []) + * @method \Aws\Result getStaticIps(array $args = []) + * @method \GuzzleHttp\Promise\Promise getStaticIpsAsync(array $args = []) + * @method \Aws\Result importKeyPair(array $args = []) + * @method \GuzzleHttp\Promise\Promise importKeyPairAsync(array $args = []) + * @method \Aws\Result isVpcPeered(array $args = []) + * @method \GuzzleHttp\Promise\Promise isVpcPeeredAsync(array $args = []) + * @method \Aws\Result openInstancePublicPorts(array $args = []) + * @method \GuzzleHttp\Promise\Promise openInstancePublicPortsAsync(array $args = []) + * @method \Aws\Result peerVpc(array $args = []) + * @method \GuzzleHttp\Promise\Promise peerVpcAsync(array $args = []) + * @method \Aws\Result putInstancePublicPorts(array $args = []) + * @method \GuzzleHttp\Promise\Promise putInstancePublicPortsAsync(array $args = []) + * @method \Aws\Result rebootInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise rebootInstanceAsync(array $args = []) + * @method \Aws\Result rebootRelationalDatabase(array $args = []) + * @method \GuzzleHttp\Promise\Promise rebootRelationalDatabaseAsync(array $args = []) + * @method \Aws\Result releaseStaticIp(array $args = []) + * @method \GuzzleHttp\Promise\Promise releaseStaticIpAsync(array $args = []) + * @method \Aws\Result startInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise startInstanceAsync(array $args = []) + * @method \Aws\Result startRelationalDatabase(array $args = []) + * @method \GuzzleHttp\Promise\Promise startRelationalDatabaseAsync(array $args = []) + * @method \Aws\Result stopInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopInstanceAsync(array $args = []) + * @method \Aws\Result stopRelationalDatabase(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopRelationalDatabaseAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result unpeerVpc(array $args = []) + * @method \GuzzleHttp\Promise\Promise unpeerVpcAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateDomainEntry(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDomainEntryAsync(array $args = []) + * @method \Aws\Result updateLoadBalancerAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateLoadBalancerAttributeAsync(array $args = []) + * @method \Aws\Result updateRelationalDatabase(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRelationalDatabaseAsync(array $args = []) + * @method \Aws\Result updateRelationalDatabaseParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRelationalDatabaseParametersAsync(array $args = []) + */ +class LightsailClient extends AwsClient {} diff --git a/lib/aws/Aws/LruArrayCache.php b/lib/aws/Aws/LruArrayCache.php new file mode 100644 index 0000000..aef2dd5 --- /dev/null +++ b/lib/aws/Aws/LruArrayCache.php @@ -0,0 +1,79 @@ +<?php +namespace Aws; + +/** + * Simple in-memory LRU cache that limits the number of cached entries. + * + * The LRU cache is implemented using PHP's ordered associative array. When + * accessing an element, the element is removed from the hash and re-added to + * ensure that recently used items are always at the end of the list while + * least recently used are at the beginning. When a value is added to the + * cache, if the number of cached items exceeds the allowed number, the first + * N number of items are removed from the array. + */ +class LruArrayCache implements CacheInterface, \Countable +{ + /** @var int */ + private $maxItems; + + /** @var array */ + private $items = array(); + + /** + * @param int $maxItems Maximum number of allowed cache items. + */ + public function __construct($maxItems = 1000) + { + $this->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]); + } + + public function count() + { + return count($this->items); + } +} diff --git a/lib/aws/Aws/MQ/Exception/MQException.php b/lib/aws/Aws/MQ/Exception/MQException.php new file mode 100644 index 0000000..ee3e64f --- /dev/null +++ b/lib/aws/Aws/MQ/Exception/MQException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\MQ\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AmazonMQ** service. + */ +class MQException extends AwsException {} diff --git a/lib/aws/Aws/MQ/MQClient.php b/lib/aws/Aws/MQ/MQClient.php new file mode 100644 index 0000000..9dfb3d5 --- /dev/null +++ b/lib/aws/Aws/MQ/MQClient.php @@ -0,0 +1,49 @@ +<?php +namespace Aws\MQ; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AmazonMQ** service. + * @method \Aws\Result createBroker(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBrokerAsync(array $args = []) + * @method \Aws\Result createConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise createConfigurationAsync(array $args = []) + * @method \Aws\Result createTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTagsAsync(array $args = []) + * @method \Aws\Result createUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise createUserAsync(array $args = []) + * @method \Aws\Result deleteBroker(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBrokerAsync(array $args = []) + * @method \Aws\Result deleteTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTagsAsync(array $args = []) + * @method \Aws\Result deleteUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserAsync(array $args = []) + * @method \Aws\Result describeBroker(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeBrokerAsync(array $args = []) + * @method \Aws\Result describeConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeConfigurationAsync(array $args = []) + * @method \Aws\Result describeConfigurationRevision(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeConfigurationRevisionAsync(array $args = []) + * @method \Aws\Result describeUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeUserAsync(array $args = []) + * @method \Aws\Result listBrokers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBrokersAsync(array $args = []) + * @method \Aws\Result listConfigurationRevisions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listConfigurationRevisionsAsync(array $args = []) + * @method \Aws\Result listConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listConfigurationsAsync(array $args = []) + * @method \Aws\Result listTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsAsync(array $args = []) + * @method \Aws\Result listUsers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUsersAsync(array $args = []) + * @method \Aws\Result rebootBroker(array $args = []) + * @method \GuzzleHttp\Promise\Promise rebootBrokerAsync(array $args = []) + * @method \Aws\Result updateBroker(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateBrokerAsync(array $args = []) + * @method \Aws\Result updateConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateConfigurationAsync(array $args = []) + * @method \Aws\Result updateUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUserAsync(array $args = []) + */ +class MQClient extends AwsClient {} diff --git a/lib/aws/Aws/MTurk/Exception/MTurkException.php b/lib/aws/Aws/MTurk/Exception/MTurkException.php new file mode 100644 index 0000000..1eb6fdf --- /dev/null +++ b/lib/aws/Aws/MTurk/Exception/MTurkException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\MTurk\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Mechanical Turk Requester Service** service. + */ +class MTurkException extends AwsException {} diff --git a/lib/aws/Aws/MTurk/MTurkClient.php b/lib/aws/Aws/MTurk/MTurkClient.php new file mode 100644 index 0000000..0ba074a --- /dev/null +++ b/lib/aws/Aws/MTurk/MTurkClient.php @@ -0,0 +1,87 @@ +<?php +namespace Aws\MTurk; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Mechanical Turk Requester Service** service. + * @method \Aws\Result acceptQualificationRequest(array $args = []) + * @method \GuzzleHttp\Promise\Promise acceptQualificationRequestAsync(array $args = []) + * @method \Aws\Result approveAssignment(array $args = []) + * @method \GuzzleHttp\Promise\Promise approveAssignmentAsync(array $args = []) + * @method \Aws\Result associateQualificationWithWorker(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateQualificationWithWorkerAsync(array $args = []) + * @method \Aws\Result createAdditionalAssignmentsForHIT(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAdditionalAssignmentsForHITAsync(array $args = []) + * @method \Aws\Result createHIT(array $args = []) + * @method \GuzzleHttp\Promise\Promise createHITAsync(array $args = []) + * @method \Aws\Result createHITType(array $args = []) + * @method \GuzzleHttp\Promise\Promise createHITTypeAsync(array $args = []) + * @method \Aws\Result createHITWithHITType(array $args = []) + * @method \GuzzleHttp\Promise\Promise createHITWithHITTypeAsync(array $args = []) + * @method \Aws\Result createQualificationType(array $args = []) + * @method \GuzzleHttp\Promise\Promise createQualificationTypeAsync(array $args = []) + * @method \Aws\Result createWorkerBlock(array $args = []) + * @method \GuzzleHttp\Promise\Promise createWorkerBlockAsync(array $args = []) + * @method \Aws\Result deleteHIT(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteHITAsync(array $args = []) + * @method \Aws\Result deleteQualificationType(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteQualificationTypeAsync(array $args = []) + * @method \Aws\Result deleteWorkerBlock(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteWorkerBlockAsync(array $args = []) + * @method \Aws\Result disassociateQualificationFromWorker(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateQualificationFromWorkerAsync(array $args = []) + * @method \Aws\Result getAccountBalance(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAccountBalanceAsync(array $args = []) + * @method \Aws\Result getAssignment(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAssignmentAsync(array $args = []) + * @method \Aws\Result getFileUploadURL(array $args = []) + * @method \GuzzleHttp\Promise\Promise getFileUploadURLAsync(array $args = []) + * @method \Aws\Result getHIT(array $args = []) + * @method \GuzzleHttp\Promise\Promise getHITAsync(array $args = []) + * @method \Aws\Result getQualificationScore(array $args = []) + * @method \GuzzleHttp\Promise\Promise getQualificationScoreAsync(array $args = []) + * @method \Aws\Result getQualificationType(array $args = []) + * @method \GuzzleHttp\Promise\Promise getQualificationTypeAsync(array $args = []) + * @method \Aws\Result listAssignmentsForHIT(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAssignmentsForHITAsync(array $args = []) + * @method \Aws\Result listBonusPayments(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBonusPaymentsAsync(array $args = []) + * @method \Aws\Result listHITs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listHITsAsync(array $args = []) + * @method \Aws\Result listHITsForQualificationType(array $args = []) + * @method \GuzzleHttp\Promise\Promise listHITsForQualificationTypeAsync(array $args = []) + * @method \Aws\Result listQualificationRequests(array $args = []) + * @method \GuzzleHttp\Promise\Promise listQualificationRequestsAsync(array $args = []) + * @method \Aws\Result listQualificationTypes(array $args = []) + * @method \GuzzleHttp\Promise\Promise listQualificationTypesAsync(array $args = []) + * @method \Aws\Result listReviewPolicyResultsForHIT(array $args = []) + * @method \GuzzleHttp\Promise\Promise listReviewPolicyResultsForHITAsync(array $args = []) + * @method \Aws\Result listReviewableHITs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listReviewableHITsAsync(array $args = []) + * @method \Aws\Result listWorkerBlocks(array $args = []) + * @method \GuzzleHttp\Promise\Promise listWorkerBlocksAsync(array $args = []) + * @method \Aws\Result listWorkersWithQualificationType(array $args = []) + * @method \GuzzleHttp\Promise\Promise listWorkersWithQualificationTypeAsync(array $args = []) + * @method \Aws\Result notifyWorkers(array $args = []) + * @method \GuzzleHttp\Promise\Promise notifyWorkersAsync(array $args = []) + * @method \Aws\Result rejectAssignment(array $args = []) + * @method \GuzzleHttp\Promise\Promise rejectAssignmentAsync(array $args = []) + * @method \Aws\Result rejectQualificationRequest(array $args = []) + * @method \GuzzleHttp\Promise\Promise rejectQualificationRequestAsync(array $args = []) + * @method \Aws\Result sendBonus(array $args = []) + * @method \GuzzleHttp\Promise\Promise sendBonusAsync(array $args = []) + * @method \Aws\Result sendTestEventNotification(array $args = []) + * @method \GuzzleHttp\Promise\Promise sendTestEventNotificationAsync(array $args = []) + * @method \Aws\Result updateExpirationForHIT(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateExpirationForHITAsync(array $args = []) + * @method \Aws\Result updateHITReviewStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateHITReviewStatusAsync(array $args = []) + * @method \Aws\Result updateHITTypeOfHIT(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateHITTypeOfHITAsync(array $args = []) + * @method \Aws\Result updateNotificationSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateNotificationSettingsAsync(array $args = []) + * @method \Aws\Result updateQualificationType(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateQualificationTypeAsync(array $args = []) + */ +class MTurkClient extends AwsClient {} diff --git a/lib/aws/Aws/MachineLearning/Exception/MachineLearningException.php b/lib/aws/Aws/MachineLearning/Exception/MachineLearningException.php new file mode 100644 index 0000000..6421ca8 --- /dev/null +++ b/lib/aws/Aws/MachineLearning/Exception/MachineLearningException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\MachineLearning\Exception; + +use Aws\Exception\AwsException; + +/** + * Amazon Machine Learning exception. + */ +class MachineLearningException extends AwsException {} diff --git a/lib/aws/Aws/MachineLearning/MachineLearningClient.php b/lib/aws/Aws/MachineLearning/MachineLearningClient.php new file mode 100644 index 0000000..72e5ae6 --- /dev/null +++ b/lib/aws/Aws/MachineLearning/MachineLearningClient.php @@ -0,0 +1,97 @@ +<?php +namespace Aws\MachineLearning; + +use Aws\AwsClient; +use Aws\CommandInterface; +use GuzzleHttp\Psr7\Uri; +use Psr\Http\Message\RequestInterface; + +/** + * Amazon Machine Learning client. + * + * @method \Aws\Result addTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsAsync(array $args = []) + * @method \Aws\Result createBatchPrediction(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBatchPredictionAsync(array $args = []) + * @method \Aws\Result createDataSourceFromRDS(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDataSourceFromRDSAsync(array $args = []) + * @method \Aws\Result createDataSourceFromRedshift(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDataSourceFromRedshiftAsync(array $args = []) + * @method \Aws\Result createDataSourceFromS3(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDataSourceFromS3Async(array $args = []) + * @method \Aws\Result createEvaluation(array $args = []) + * @method \GuzzleHttp\Promise\Promise createEvaluationAsync(array $args = []) + * @method \Aws\Result createMLModel(array $args = []) + * @method \GuzzleHttp\Promise\Promise createMLModelAsync(array $args = []) + * @method \Aws\Result createRealtimeEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRealtimeEndpointAsync(array $args = []) + * @method \Aws\Result deleteBatchPrediction(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBatchPredictionAsync(array $args = []) + * @method \Aws\Result deleteDataSource(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDataSourceAsync(array $args = []) + * @method \Aws\Result deleteEvaluation(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteEvaluationAsync(array $args = []) + * @method \Aws\Result deleteMLModel(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteMLModelAsync(array $args = []) + * @method \Aws\Result deleteRealtimeEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRealtimeEndpointAsync(array $args = []) + * @method \Aws\Result deleteTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTagsAsync(array $args = []) + * @method \Aws\Result describeBatchPredictions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeBatchPredictionsAsync(array $args = []) + * @method \Aws\Result describeDataSources(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDataSourcesAsync(array $args = []) + * @method \Aws\Result describeEvaluations(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEvaluationsAsync(array $args = []) + * @method \Aws\Result describeMLModels(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMLModelsAsync(array $args = []) + * @method \Aws\Result describeTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTagsAsync(array $args = []) + * @method \Aws\Result getBatchPrediction(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBatchPredictionAsync(array $args = []) + * @method \Aws\Result getDataSource(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDataSourceAsync(array $args = []) + * @method \Aws\Result getEvaluation(array $args = []) + * @method \GuzzleHttp\Promise\Promise getEvaluationAsync(array $args = []) + * @method \Aws\Result getMLModel(array $args = []) + * @method \GuzzleHttp\Promise\Promise getMLModelAsync(array $args = []) + * @method \Aws\Result predict(array $args = []) + * @method \GuzzleHttp\Promise\Promise predictAsync(array $args = []) + * @method \Aws\Result updateBatchPrediction(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateBatchPredictionAsync(array $args = []) + * @method \Aws\Result updateDataSource(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDataSourceAsync(array $args = []) + * @method \Aws\Result updateEvaluation(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateEvaluationAsync(array $args = []) + * @method \Aws\Result updateMLModel(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateMLModelAsync(array $args = []) + */ +class MachineLearningClient extends AwsClient +{ + public function __construct(array $config) + { + parent::__construct($config); + $list = $this->getHandlerList(); + $list->appendBuild($this->predictEndpoint(), 'ml.predict_endpoint'); + } + + /** + * Changes the endpoint of the Predict operation to the provided endpoint. + * + * @return callable + */ + private function predictEndpoint() + { + 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/Aws/Macie/Exception/MacieException.php b/lib/aws/Aws/Macie/Exception/MacieException.php new file mode 100644 index 0000000..825d802 --- /dev/null +++ b/lib/aws/Aws/Macie/Exception/MacieException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Macie\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Macie** service. + */ +class MacieException extends AwsException {} diff --git a/lib/aws/Aws/Macie/MacieClient.php b/lib/aws/Aws/Macie/MacieClient.php new file mode 100644 index 0000000..57d1888 --- /dev/null +++ b/lib/aws/Aws/Macie/MacieClient.php @@ -0,0 +1,23 @@ +<?php +namespace Aws\Macie; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Macie** service. + * @method \Aws\Result associateMemberAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateMemberAccountAsync(array $args = []) + * @method \Aws\Result associateS3Resources(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateS3ResourcesAsync(array $args = []) + * @method \Aws\Result disassociateMemberAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateMemberAccountAsync(array $args = []) + * @method \Aws\Result disassociateS3Resources(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateS3ResourcesAsync(array $args = []) + * @method \Aws\Result listMemberAccounts(array $args = []) + * @method \GuzzleHttp\Promise\Promise listMemberAccountsAsync(array $args = []) + * @method \Aws\Result listS3Resources(array $args = []) + * @method \GuzzleHttp\Promise\Promise listS3ResourcesAsync(array $args = []) + * @method \Aws\Result updateS3Resources(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateS3ResourcesAsync(array $args = []) + */ +class MacieClient extends AwsClient {} diff --git a/lib/aws/Aws/MarketplaceCommerceAnalytics/Exception/MarketplaceCommerceAnalyticsException.php b/lib/aws/Aws/MarketplaceCommerceAnalytics/Exception/MarketplaceCommerceAnalyticsException.php new file mode 100644 index 0000000..62e8926 --- /dev/null +++ b/lib/aws/Aws/MarketplaceCommerceAnalytics/Exception/MarketplaceCommerceAnalyticsException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\MarketplaceCommerceAnalytics\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Marketplace Commerce Analytics** service. + */ +class MarketplaceCommerceAnalyticsException extends AwsException {} diff --git a/lib/aws/Aws/MarketplaceCommerceAnalytics/MarketplaceCommerceAnalyticsClient.php b/lib/aws/Aws/MarketplaceCommerceAnalytics/MarketplaceCommerceAnalyticsClient.php new file mode 100644 index 0000000..1ef3bb1 --- /dev/null +++ b/lib/aws/Aws/MarketplaceCommerceAnalytics/MarketplaceCommerceAnalyticsClient.php @@ -0,0 +1,14 @@ +<?php +namespace Aws\MarketplaceCommerceAnalytics; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Marketplace Commerce Analytics** service. + * + * @method \Aws\Result generateDataSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise generateDataSetAsync(array $args = []) + * @method \Aws\Result startSupportDataExport(array $args = []) + * @method \GuzzleHttp\Promise\Promise startSupportDataExportAsync(array $args = []) + */ +class MarketplaceCommerceAnalyticsClient extends AwsClient {} diff --git a/lib/aws/Aws/MarketplaceEntitlementService/Exception/MarketplaceEntitlementServiceException.php b/lib/aws/Aws/MarketplaceEntitlementService/Exception/MarketplaceEntitlementServiceException.php new file mode 100644 index 0000000..c419033 --- /dev/null +++ b/lib/aws/Aws/MarketplaceEntitlementService/Exception/MarketplaceEntitlementServiceException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\MarketplaceEntitlementService\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Marketplace Entitlement Service** service. + */ +class MarketplaceEntitlementServiceException extends AwsException {} diff --git a/lib/aws/Aws/MarketplaceEntitlementService/MarketplaceEntitlementServiceClient.php b/lib/aws/Aws/MarketplaceEntitlementService/MarketplaceEntitlementServiceClient.php new file mode 100644 index 0000000..6fee0b3 --- /dev/null +++ b/lib/aws/Aws/MarketplaceEntitlementService/MarketplaceEntitlementServiceClient.php @@ -0,0 +1,11 @@ +<?php +namespace Aws\MarketplaceEntitlementService; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Marketplace Entitlement Service** service. + * @method \Aws\Result getEntitlements(array $args = []) + * @method \GuzzleHttp\Promise\Promise getEntitlementsAsync(array $args = []) + */ +class MarketplaceEntitlementServiceClient extends AwsClient {} diff --git a/lib/aws/Aws/MarketplaceMetering/Exception/MarketplaceMeteringException.php b/lib/aws/Aws/MarketplaceMetering/Exception/MarketplaceMeteringException.php new file mode 100644 index 0000000..f90580b --- /dev/null +++ b/lib/aws/Aws/MarketplaceMetering/Exception/MarketplaceMeteringException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\MarketplaceMetering\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWSMarketplace Metering** service. + */ +class MarketplaceMeteringException extends AwsException {} diff --git a/lib/aws/Aws/MarketplaceMetering/MarketplaceMeteringClient.php b/lib/aws/Aws/MarketplaceMetering/MarketplaceMeteringClient.php new file mode 100644 index 0000000..1f45ea6 --- /dev/null +++ b/lib/aws/Aws/MarketplaceMetering/MarketplaceMeteringClient.php @@ -0,0 +1,17 @@ +<?php +namespace Aws\MarketplaceMetering; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWSMarketplace Metering** service. + * @method \Aws\Result batchMeterUsage(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchMeterUsageAsync(array $args = []) + * @method \Aws\Result meterUsage(array $args = []) + * @method \GuzzleHttp\Promise\Promise meterUsageAsync(array $args = []) + * @method \Aws\Result registerUsage(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerUsageAsync(array $args = []) + * @method \Aws\Result resolveCustomer(array $args = []) + * @method \GuzzleHttp\Promise\Promise resolveCustomerAsync(array $args = []) + */ +class MarketplaceMeteringClient extends AwsClient {} diff --git a/lib/aws/Aws/MediaConnect/Exception/MediaConnectException.php b/lib/aws/Aws/MediaConnect/Exception/MediaConnectException.php new file mode 100644 index 0000000..5f1389f --- /dev/null +++ b/lib/aws/Aws/MediaConnect/Exception/MediaConnectException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\MediaConnect\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS MediaConnect** service. + */ +class MediaConnectException extends AwsException {} diff --git a/lib/aws/Aws/MediaConnect/MediaConnectClient.php b/lib/aws/Aws/MediaConnect/MediaConnectClient.php new file mode 100644 index 0000000..0520a43 --- /dev/null +++ b/lib/aws/Aws/MediaConnect/MediaConnectClient.php @@ -0,0 +1,43 @@ +<?php +namespace Aws\MediaConnect; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS MediaConnect** service. + * @method \Aws\Result addFlowOutputs(array $args = []) + * @method \GuzzleHttp\Promise\Promise addFlowOutputsAsync(array $args = []) + * @method \Aws\Result createFlow(array $args = []) + * @method \GuzzleHttp\Promise\Promise createFlowAsync(array $args = []) + * @method \Aws\Result deleteFlow(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteFlowAsync(array $args = []) + * @method \Aws\Result describeFlow(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeFlowAsync(array $args = []) + * @method \Aws\Result grantFlowEntitlements(array $args = []) + * @method \GuzzleHttp\Promise\Promise grantFlowEntitlementsAsync(array $args = []) + * @method \Aws\Result listEntitlements(array $args = []) + * @method \GuzzleHttp\Promise\Promise listEntitlementsAsync(array $args = []) + * @method \Aws\Result listFlows(array $args = []) + * @method \GuzzleHttp\Promise\Promise listFlowsAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result removeFlowOutput(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeFlowOutputAsync(array $args = []) + * @method \Aws\Result revokeFlowEntitlement(array $args = []) + * @method \GuzzleHttp\Promise\Promise revokeFlowEntitlementAsync(array $args = []) + * @method \Aws\Result startFlow(array $args = []) + * @method \GuzzleHttp\Promise\Promise startFlowAsync(array $args = []) + * @method \Aws\Result stopFlow(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopFlowAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateFlowEntitlement(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateFlowEntitlementAsync(array $args = []) + * @method \Aws\Result updateFlowOutput(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateFlowOutputAsync(array $args = []) + * @method \Aws\Result updateFlowSource(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateFlowSourceAsync(array $args = []) + */ +class MediaConnectClient extends AwsClient {} diff --git a/lib/aws/Aws/MediaConvert/Exception/MediaConvertException.php b/lib/aws/Aws/MediaConvert/Exception/MediaConvertException.php new file mode 100644 index 0000000..50d3c42 --- /dev/null +++ b/lib/aws/Aws/MediaConvert/Exception/MediaConvertException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\MediaConvert\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Elemental MediaConvert** service. + */ +class MediaConvertException extends AwsException {} diff --git a/lib/aws/Aws/MediaConvert/MediaConvertClient.php b/lib/aws/Aws/MediaConvert/MediaConvertClient.php new file mode 100644 index 0000000..00beddb --- /dev/null +++ b/lib/aws/Aws/MediaConvert/MediaConvertClient.php @@ -0,0 +1,59 @@ +<?php +namespace Aws\MediaConvert; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Elemental MediaConvert** service. + * @method \Aws\Result associateCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateCertificateAsync(array $args = []) + * @method \Aws\Result cancelJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelJobAsync(array $args = []) + * @method \Aws\Result createJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise createJobAsync(array $args = []) + * @method \Aws\Result createJobTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise createJobTemplateAsync(array $args = []) + * @method \Aws\Result createPreset(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPresetAsync(array $args = []) + * @method \Aws\Result createQueue(array $args = []) + * @method \GuzzleHttp\Promise\Promise createQueueAsync(array $args = []) + * @method \Aws\Result deleteJobTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteJobTemplateAsync(array $args = []) + * @method \Aws\Result deletePreset(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePresetAsync(array $args = []) + * @method \Aws\Result deleteQueue(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteQueueAsync(array $args = []) + * @method \Aws\Result describeEndpoints(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEndpointsAsync(array $args = []) + * @method \Aws\Result disassociateCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateCertificateAsync(array $args = []) + * @method \Aws\Result getJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise getJobAsync(array $args = []) + * @method \Aws\Result getJobTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise getJobTemplateAsync(array $args = []) + * @method \Aws\Result getPreset(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPresetAsync(array $args = []) + * @method \Aws\Result getQueue(array $args = []) + * @method \GuzzleHttp\Promise\Promise getQueueAsync(array $args = []) + * @method \Aws\Result listJobTemplates(array $args = []) + * @method \GuzzleHttp\Promise\Promise listJobTemplatesAsync(array $args = []) + * @method \Aws\Result listJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listJobsAsync(array $args = []) + * @method \Aws\Result listPresets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPresetsAsync(array $args = []) + * @method \Aws\Result listQueues(array $args = []) + * @method \GuzzleHttp\Promise\Promise listQueuesAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateJobTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateJobTemplateAsync(array $args = []) + * @method \Aws\Result updatePreset(array $args = []) + * @method \GuzzleHttp\Promise\Promise updatePresetAsync(array $args = []) + * @method \Aws\Result updateQueue(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateQueueAsync(array $args = []) + */ +class MediaConvertClient extends AwsClient {} diff --git a/lib/aws/Aws/MediaLive/Exception/MediaLiveException.php b/lib/aws/Aws/MediaLive/Exception/MediaLiveException.php new file mode 100644 index 0000000..1a95186 --- /dev/null +++ b/lib/aws/Aws/MediaLive/Exception/MediaLiveException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\MediaLive\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Elemental MediaLive** service. + */ +class MediaLiveException extends AwsException {} diff --git a/lib/aws/Aws/MediaLive/MediaLiveClient.php b/lib/aws/Aws/MediaLive/MediaLiveClient.php new file mode 100644 index 0000000..c8be69a --- /dev/null +++ b/lib/aws/Aws/MediaLive/MediaLiveClient.php @@ -0,0 +1,67 @@ +<?php +namespace Aws\MediaLive; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Elemental MediaLive** service. + * @method \Aws\Result batchUpdateSchedule(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchUpdateScheduleAsync(array $args = []) + * @method \Aws\Result createChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise createChannelAsync(array $args = []) + * @method \Aws\Result createInput(array $args = []) + * @method \GuzzleHttp\Promise\Promise createInputAsync(array $args = []) + * @method \Aws\Result createInputSecurityGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createInputSecurityGroupAsync(array $args = []) + * @method \Aws\Result createTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTagsAsync(array $args = []) + * @method \Aws\Result deleteChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteChannelAsync(array $args = []) + * @method \Aws\Result deleteInput(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteInputAsync(array $args = []) + * @method \Aws\Result deleteInputSecurityGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteInputSecurityGroupAsync(array $args = []) + * @method \Aws\Result deleteReservation(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteReservationAsync(array $args = []) + * @method \Aws\Result deleteTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTagsAsync(array $args = []) + * @method \Aws\Result describeChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeChannelAsync(array $args = []) + * @method \Aws\Result describeInput(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeInputAsync(array $args = []) + * @method \Aws\Result describeInputSecurityGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeInputSecurityGroupAsync(array $args = []) + * @method \Aws\Result describeOffering(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeOfferingAsync(array $args = []) + * @method \Aws\Result describeReservation(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReservationAsync(array $args = []) + * @method \Aws\Result describeSchedule(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeScheduleAsync(array $args = []) + * @method \Aws\Result listChannels(array $args = []) + * @method \GuzzleHttp\Promise\Promise listChannelsAsync(array $args = []) + * @method \Aws\Result listInputSecurityGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise listInputSecurityGroupsAsync(array $args = []) + * @method \Aws\Result listInputs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listInputsAsync(array $args = []) + * @method \Aws\Result listOfferings(array $args = []) + * @method \GuzzleHttp\Promise\Promise listOfferingsAsync(array $args = []) + * @method \Aws\Result listReservations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listReservationsAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result purchaseOffering(array $args = []) + * @method \GuzzleHttp\Promise\Promise purchaseOfferingAsync(array $args = []) + * @method \Aws\Result startChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise startChannelAsync(array $args = []) + * @method \Aws\Result stopChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopChannelAsync(array $args = []) + * @method \Aws\Result updateChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateChannelAsync(array $args = []) + * @method \Aws\Result updateInput(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateInputAsync(array $args = []) + * @method \Aws\Result updateInputSecurityGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateInputSecurityGroupAsync(array $args = []) + * @method \Aws\Result updateReservation(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateReservationAsync(array $args = []) + */ +class MediaLiveClient extends AwsClient {} diff --git a/lib/aws/Aws/MediaPackage/Exception/MediaPackageException.php b/lib/aws/Aws/MediaPackage/Exception/MediaPackageException.php new file mode 100644 index 0000000..042ba3d --- /dev/null +++ b/lib/aws/Aws/MediaPackage/Exception/MediaPackageException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\MediaPackage\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Elemental MediaPackage** service. + */ +class MediaPackageException extends AwsException {} diff --git a/lib/aws/Aws/MediaPackage/MediaPackageClient.php b/lib/aws/Aws/MediaPackage/MediaPackageClient.php new file mode 100644 index 0000000..a98844b --- /dev/null +++ b/lib/aws/Aws/MediaPackage/MediaPackageClient.php @@ -0,0 +1,39 @@ +<?php +namespace Aws\MediaPackage; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Elemental MediaPackage** service. + * @method \Aws\Result createChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise createChannelAsync(array $args = []) + * @method \Aws\Result createOriginEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise createOriginEndpointAsync(array $args = []) + * @method \Aws\Result deleteChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteChannelAsync(array $args = []) + * @method \Aws\Result deleteOriginEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteOriginEndpointAsync(array $args = []) + * @method \Aws\Result describeChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeChannelAsync(array $args = []) + * @method \Aws\Result describeOriginEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeOriginEndpointAsync(array $args = []) + * @method \Aws\Result listChannels(array $args = []) + * @method \GuzzleHttp\Promise\Promise listChannelsAsync(array $args = []) + * @method \Aws\Result listOriginEndpoints(array $args = []) + * @method \GuzzleHttp\Promise\Promise listOriginEndpointsAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result rotateChannelCredentials(array $args = []) + * @method \GuzzleHttp\Promise\Promise rotateChannelCredentialsAsync(array $args = []) + * @method \Aws\Result rotateIngestEndpointCredentials(array $args = []) + * @method \GuzzleHttp\Promise\Promise rotateIngestEndpointCredentialsAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateChannelAsync(array $args = []) + * @method \Aws\Result updateOriginEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateOriginEndpointAsync(array $args = []) + */ +class MediaPackageClient extends AwsClient {} diff --git a/lib/aws/Aws/MediaStore/Exception/MediaStoreException.php b/lib/aws/Aws/MediaStore/Exception/MediaStoreException.php new file mode 100644 index 0000000..16939e3 --- /dev/null +++ b/lib/aws/Aws/MediaStore/Exception/MediaStoreException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\MediaStore\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Elemental MediaStore** service. + */ +class MediaStoreException extends AwsException {} diff --git a/lib/aws/Aws/MediaStore/MediaStoreClient.php b/lib/aws/Aws/MediaStore/MediaStoreClient.php new file mode 100644 index 0000000..8acb274 --- /dev/null +++ b/lib/aws/Aws/MediaStore/MediaStoreClient.php @@ -0,0 +1,39 @@ +<?php +namespace Aws\MediaStore; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Elemental MediaStore** service. + * @method \Aws\Result createContainer(array $args = []) + * @method \GuzzleHttp\Promise\Promise createContainerAsync(array $args = []) + * @method \Aws\Result deleteContainer(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteContainerAsync(array $args = []) + * @method \Aws\Result deleteContainerPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteContainerPolicyAsync(array $args = []) + * @method \Aws\Result deleteCorsPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCorsPolicyAsync(array $args = []) + * @method \Aws\Result deleteLifecyclePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLifecyclePolicyAsync(array $args = []) + * @method \Aws\Result describeContainer(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeContainerAsync(array $args = []) + * @method \Aws\Result getContainerPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getContainerPolicyAsync(array $args = []) + * @method \Aws\Result getCorsPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCorsPolicyAsync(array $args = []) + * @method \Aws\Result getLifecyclePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLifecyclePolicyAsync(array $args = []) + * @method \Aws\Result listContainers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listContainersAsync(array $args = []) + * @method \Aws\Result putContainerPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putContainerPolicyAsync(array $args = []) + * @method \Aws\Result putCorsPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putCorsPolicyAsync(array $args = []) + * @method \Aws\Result putLifecyclePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putLifecyclePolicyAsync(array $args = []) + * @method \Aws\Result startAccessLogging(array $args = []) + * @method \GuzzleHttp\Promise\Promise startAccessLoggingAsync(array $args = []) + * @method \Aws\Result stopAccessLogging(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopAccessLoggingAsync(array $args = []) + */ +class MediaStoreClient extends AwsClient {} diff --git a/lib/aws/Aws/MediaStoreData/Exception/MediaStoreDataException.php b/lib/aws/Aws/MediaStoreData/Exception/MediaStoreDataException.php new file mode 100644 index 0000000..62e5b9a --- /dev/null +++ b/lib/aws/Aws/MediaStoreData/Exception/MediaStoreDataException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\MediaStoreData\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Elemental MediaStore Data Plane** service. + */ +class MediaStoreDataException extends AwsException {} diff --git a/lib/aws/Aws/MediaStoreData/MediaStoreDataClient.php b/lib/aws/Aws/MediaStoreData/MediaStoreDataClient.php new file mode 100644 index 0000000..5651cae --- /dev/null +++ b/lib/aws/Aws/MediaStoreData/MediaStoreDataClient.php @@ -0,0 +1,19 @@ +<?php +namespace Aws\MediaStoreData; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Elemental MediaStore Data Plane** service. + * @method \Aws\Result deleteObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteObjectAsync(array $args = []) + * @method \Aws\Result describeObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeObjectAsync(array $args = []) + * @method \Aws\Result getObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectAsync(array $args = []) + * @method \Aws\Result listItems(array $args = []) + * @method \GuzzleHttp\Promise\Promise listItemsAsync(array $args = []) + * @method \Aws\Result putObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise putObjectAsync(array $args = []) + */ +class MediaStoreDataClient extends AwsClient {} diff --git a/lib/aws/Aws/MediaTailor/Exception/MediaTailorException.php b/lib/aws/Aws/MediaTailor/Exception/MediaTailorException.php new file mode 100644 index 0000000..0598928 --- /dev/null +++ b/lib/aws/Aws/MediaTailor/Exception/MediaTailorException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\MediaTailor\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS MediaTailor** service. + */ +class MediaTailorException extends AwsException {} diff --git a/lib/aws/Aws/MediaTailor/MediaTailorClient.php b/lib/aws/Aws/MediaTailor/MediaTailorClient.php new file mode 100644 index 0000000..c36eeec --- /dev/null +++ b/lib/aws/Aws/MediaTailor/MediaTailorClient.php @@ -0,0 +1,23 @@ +<?php +namespace Aws\MediaTailor; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS MediaTailor** service. + * @method \Aws\Result deletePlaybackConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePlaybackConfigurationAsync(array $args = []) + * @method \Aws\Result getPlaybackConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPlaybackConfigurationAsync(array $args = []) + * @method \Aws\Result listPlaybackConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPlaybackConfigurationsAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result putPlaybackConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putPlaybackConfigurationAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + */ +class MediaTailorClient extends AwsClient {} diff --git a/lib/aws/Aws/Middleware.php b/lib/aws/Aws/Middleware.php new file mode 100644 index 0000000..fd64a42 --- /dev/null +++ b/lib/aws/Aws/Middleware.php @@ -0,0 +1,372 @@ +<?php +namespace Aws; + +use Aws\Api\Service; +use Aws\Api\Validator; +use Aws\Credentials\CredentialsInterface; +use Aws\Exception\AwsException; +use GuzzleHttp\Promise; +use GuzzleHttp\Psr7; +use GuzzleHttp\Psr7\LazyOpenStream; +use Psr\Http\Message\RequestInterface; + +final class Middleware +{ + /** + * Middleware used to allow a command parameter (e.g., "SourceFile") to + * be used to specify the source of data for an upload operation. + * + * @param Service $api + * @param string $bodyParameter + * @param string $sourceParameter + * + * @return callable + */ + public static function sourceFile( + Service $api, + $bodyParameter = 'Body', + $sourceParameter = 'SourceFile' + ) { + return function (callable $handler) use ( + $api, + $bodyParameter, + $sourceParameter + ) { + return function ( + CommandInterface $command, + RequestInterface $request = null) + use ( + $handler, + $api, + $bodyParameter, + $sourceParameter + ) { + $operation = $api->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 $validator = null) + { + $validator = $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. + * @param bool $stats Whether to collect statistics on retries and the + * associated delay. + * + * @return callable + */ + public static function retry( + callable $decider = null, + callable $delay = null, + $stats = false + ) { + $decider = $decider ?: RetryMiddleware::createDefaultDecider(); + $delay = $delay ?: [RetryMiddleware::class, 'exponentialDelay']; + + return function (callable $handler) use ($decider, $delay, $stats) { + return new RetryMiddleware($decider, $delay, $handler, $stats); + }; + } + /** + * Middleware wrapper function that adds an invocation id header to + * requests, which is only applied after the build step. + * + * This is a uniquely generated UUID to identify initial and subsequent + * retries as part of a complete request lifecycle. + * + * @return callable + */ + public static function invocationId() + { + return function (callable $handler) { + return function ( + CommandInterface $command, + RequestInterface $request + ) use ($handler){ + return $handler($command, $request->withHeader( + 'aws-sdk-invocation-id', + md5(uniqid(gethostname(), true)) + )); + }; + }; + } + /** + * 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); + }; + }; + } + + public static function timer() + { + return function (callable $handler) { + return function ( + CommandInterface $command, + RequestInterface $request = null + ) use ($handler) { + $start = microtime(true); + return $handler($command, $request) + ->then( + function (ResultInterface $res) use ($start) { + if (!isset($res['@metadata'])) { + $res['@metadata'] = []; + } + if (!isset($res['@metadata']['transferStats'])) { + $res['@metadata']['transferStats'] = []; + } + + $res['@metadata']['transferStats']['total_time'] + = microtime(true) - $start; + + return $res; + }, + function ($err) use ($start) { + if ($err instanceof AwsException) { + $err->setTransferInfo([ + 'total_time' => microtime(true) - $start, + ] + $err->getTransferInfo()); + } + return Promise\rejection_for($err); + } + ); + }; + }; + } +} diff --git a/lib/aws/Aws/MigrationHub/Exception/MigrationHubException.php b/lib/aws/Aws/MigrationHub/Exception/MigrationHubException.php new file mode 100644 index 0000000..4fc3c5d --- /dev/null +++ b/lib/aws/Aws/MigrationHub/Exception/MigrationHubException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\MigrationHub\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Migration Hub** service. + */ +class MigrationHubException extends AwsException {} diff --git a/lib/aws/Aws/MigrationHub/MigrationHubClient.php b/lib/aws/Aws/MigrationHub/MigrationHubClient.php new file mode 100644 index 0000000..954721b --- /dev/null +++ b/lib/aws/Aws/MigrationHub/MigrationHubClient.php @@ -0,0 +1,41 @@ +<?php +namespace Aws\MigrationHub; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Migration Hub** service. + * @method \Aws\Result associateCreatedArtifact(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateCreatedArtifactAsync(array $args = []) + * @method \Aws\Result associateDiscoveredResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateDiscoveredResourceAsync(array $args = []) + * @method \Aws\Result createProgressUpdateStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise createProgressUpdateStreamAsync(array $args = []) + * @method \Aws\Result deleteProgressUpdateStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteProgressUpdateStreamAsync(array $args = []) + * @method \Aws\Result describeApplicationState(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeApplicationStateAsync(array $args = []) + * @method \Aws\Result describeMigrationTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMigrationTaskAsync(array $args = []) + * @method \Aws\Result disassociateCreatedArtifact(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateCreatedArtifactAsync(array $args = []) + * @method \Aws\Result disassociateDiscoveredResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateDiscoveredResourceAsync(array $args = []) + * @method \Aws\Result importMigrationTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise importMigrationTaskAsync(array $args = []) + * @method \Aws\Result listCreatedArtifacts(array $args = []) + * @method \GuzzleHttp\Promise\Promise listCreatedArtifactsAsync(array $args = []) + * @method \Aws\Result listDiscoveredResources(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDiscoveredResourcesAsync(array $args = []) + * @method \Aws\Result listMigrationTasks(array $args = []) + * @method \GuzzleHttp\Promise\Promise listMigrationTasksAsync(array $args = []) + * @method \Aws\Result listProgressUpdateStreams(array $args = []) + * @method \GuzzleHttp\Promise\Promise listProgressUpdateStreamsAsync(array $args = []) + * @method \Aws\Result notifyApplicationState(array $args = []) + * @method \GuzzleHttp\Promise\Promise notifyApplicationStateAsync(array $args = []) + * @method \Aws\Result notifyMigrationTaskState(array $args = []) + * @method \GuzzleHttp\Promise\Promise notifyMigrationTaskStateAsync(array $args = []) + * @method \Aws\Result putResourceAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise putResourceAttributesAsync(array $args = []) + */ +class MigrationHubClient extends AwsClient {} diff --git a/lib/aws/Aws/Mobile/Exception/MobileException.php b/lib/aws/Aws/Mobile/Exception/MobileException.php new file mode 100644 index 0000000..f6ffd35 --- /dev/null +++ b/lib/aws/Aws/Mobile/Exception/MobileException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Mobile\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Mobile** service. + */ +class MobileException extends AwsException {} diff --git a/lib/aws/Aws/Mobile/MobileClient.php b/lib/aws/Aws/Mobile/MobileClient.php new file mode 100644 index 0000000..1a403f7 --- /dev/null +++ b/lib/aws/Aws/Mobile/MobileClient.php @@ -0,0 +1,27 @@ +<?php +namespace Aws\Mobile; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Mobile** service. + * @method \Aws\Result createProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise createProjectAsync(array $args = []) + * @method \Aws\Result deleteProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteProjectAsync(array $args = []) + * @method \Aws\Result describeBundle(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeBundleAsync(array $args = []) + * @method \Aws\Result describeProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeProjectAsync(array $args = []) + * @method \Aws\Result exportBundle(array $args = []) + * @method \GuzzleHttp\Promise\Promise exportBundleAsync(array $args = []) + * @method \Aws\Result exportProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise exportProjectAsync(array $args = []) + * @method \Aws\Result listBundles(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBundlesAsync(array $args = []) + * @method \Aws\Result listProjects(array $args = []) + * @method \GuzzleHttp\Promise\Promise listProjectsAsync(array $args = []) + * @method \Aws\Result updateProject(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateProjectAsync(array $args = []) + */ +class MobileClient extends AwsClient {} diff --git a/lib/aws/Aws/MockHandler.php b/lib/aws/Aws/MockHandler.php new file mode 100644 index 0000000..63a0394 --- /dev/null +++ b/lib/aws/Aws/MockHandler.php @@ -0,0 +1,145 @@ +<?php +namespace Aws; + +use Aws\Exception\AwsException; +use GuzzleHttp\Promise; +use GuzzleHttp\Promise\RejectedPromise; +use Psr\Http\Message\RequestInterface; + +/** + * Returns promises that are rejected or fulfilled using a queue of + * Aws\ResultInterface and Aws\Exception\AwsException objects. + */ +class MockHandler implements \Countable +{ + private $queue; + private $lastCommand; + private $lastRequest; + private $onFulfilled; + private $onRejected; + + /** + * The passed in value must be an array of {@see Aws\ResultInterface} or + * {@see AwsException} objects that acts as a queue of results or + * exceptions to return each time the handler is invoked. + * + * @param array $resultOrQueue + * @param callable $onFulfilled Callback to invoke when the return value is fulfilled. + * @param callable $onRejected Callback to invoke when the return value is rejected. + */ + public function __construct( + array $resultOrQueue = [], + callable $onFulfilled = null, + callable $onRejected = null + ) { + $this->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.'); + } + } + } + + /** + * Adds one or more \Exception or \Throwable to the queue + */ + public function appendException() + { + foreach (func_get_args() as $value) { + if ($value instanceof \Exception || $value instanceof \Throwable) { + $this->queue[] = $value; + } else { + throw new \InvalidArgumentException('Expected an \Exception or \Throwable.'); + } + } + } + + 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/Aws/MonitoringEventsInterface.php b/lib/aws/Aws/MonitoringEventsInterface.php new file mode 100644 index 0000000..3202c40 --- /dev/null +++ b/lib/aws/Aws/MonitoringEventsInterface.php @@ -0,0 +1,32 @@ +<?php +namespace Aws; + +/** + * Interface for adding and retrieving client-side monitoring events + */ +interface MonitoringEventsInterface +{ + + /** + * Get client-side monitoring events attached to this object. Each event is + * represented as an associative array within the returned array. + * + * @return array + */ + public function getMonitoringEvents(); + + /** + * Prepend a client-side monitoring event to this object's event list + * + * @param array $event + */ + public function prependMonitoringEvent(array $event); + + /** + * Append a client-side monitoring event to this object's event list + * + * @param array $event + */ + public function appendMonitoringEvent(array $event); + +} diff --git a/lib/aws/Aws/MultiRegionClient.php b/lib/aws/Aws/MultiRegionClient.php new file mode 100644 index 0000000..65388b7 --- /dev/null +++ b/lib/aws/Aws/MultiRegionClient.php @@ -0,0 +1,236 @@ +<?php +namespace Aws; + +use Aws\Endpoint\PartitionEndpointProvider; +use Aws\Endpoint\PartitionInterface; + +class MultiRegionClient implements AwsClientInterface +{ + use AwsClientTrait; + + /** @var AwsClientInterface[] A pool of clients keyed by region. */ + private $clientPool = []; + /** @var callable */ + private $factory; + /** @var PartitionInterface */ + private $partition; + /** @var array */ + private $args; + /** @var array */ + private $config; + /** @var HandlerList */ + private $handlerList; + + public static function getArguments() + { + $args = array_intersect_key( + ClientResolver::getDefaultArguments(), + ['service' => true, 'region' => true] + ); + $args['region']['required'] = false; + + return $args + [ + 'client_factory' => [ + 'type' => 'config', + 'valid' => ['callable'], + 'doc' => 'A callable that takes an array of client' + . ' configuration arguments and returns a regionalized' + . ' client.', + 'required' => true, + 'internal' => true, + 'default' => function (array $args) { + $namespace = manifest($args['service'])['namespace']; + $klass = "Aws\\{$namespace}\\{$namespace}Client"; + $region = isset($args['region']) ? $args['region'] : null; + + return function (array $args) use ($klass, $region) { + if ($region && empty($args['region'])) { + $args['region'] = $region; + } + + return new $klass($args); + }; + }, + ], + 'partition' => [ + 'type' => 'config', + 'valid' => ['string', PartitionInterface::class], + 'doc' => 'AWS partition to connect to. Valid partitions' + . ' include "aws," "aws-cn," and "aws-us-gov." Used to' + . ' restrict the scope of the mapRegions method.', + 'default' => function (array $args) { + $region = isset($args['region']) ? $args['region'] : ''; + return PartitionEndpointProvider::defaultProvider() + ->getPartition($region, $args['service']); + }, + 'fn' => function ($value, array &$args) { + if (is_string($value)) { + $value = PartitionEndpointProvider::defaultProvider() + ->getPartitionByName($value); + } + + if (!$value instanceof PartitionInterface) { + throw new \InvalidArgumentException('No valid partition' + . ' was provided. Provide a concrete partition or' + . ' the name of a partition (e.g., "aws," "aws-cn,"' + . ' or "aws-us-gov").' + ); + } + + $args['partition'] = $value; + $args['endpoint_provider'] = $value; + } + ], + ]; + } + + /** + * The multi-region client constructor accepts the following options: + * + * - client_factory: (callable) An optional callable that takes an array of + * client configuration arguments and returns a regionalized client. + * - partition: (Aws\Endpoint\Partition|string) AWS partition to connect to. + * Valid partitions include "aws," "aws-cn," and "aws-us-gov." Used to + * restrict the scope of the mapRegions method. + * - region: (string) Region to connect to when no override is provided. + * Used to create the default client factory and determine the appropriate + * AWS partition when present. + * + * @param array $args Client configuration arguments. + */ + public function __construct(array $args = []) + { + if (!isset($args['service'])) { + $args['service'] = $this->parseClass(); + } + + $this->handlerList = new HandlerList(function ( + CommandInterface $command + ) { + list($region, $args) = $this->getRegionFromArgs($command->toArray()); + $command = $this->getClientFromPool($region) + ->getCommand($command->getName(), $args); + return $this->executeAsync($command); + }); + + $argDefinitions = static::getArguments(); + $resolver = new ClientResolver($argDefinitions); + $args = $resolver->resolve($args, $this->handlerList); + $this->config = $args['config']; + $this->factory = $args['client_factory']; + $this->partition = $args['partition']; + $this->args = array_diff_key($args, $args['config']); + } + + /** + * Get the region to which the client is configured to send requests by + * default. + * + * @return string + */ + public function getRegion() + { + return $this->getClientFromPool()->getRegion(); + } + + /** + * Create a command for an operation name. + * + * Special keys may be set on the command to control how it behaves, + * including: + * + * - @http: Associative array of transfer specific options to apply to the + * request that is serialized for this command. Available keys include + * "proxy", "verify", "timeout", "connect_timeout", "debug", "delay", and + * "headers". + * - @region: The region to which the command should be sent. + * + * @param string $name Name of the operation to use in the command + * @param array $args Arguments to pass to the command + * + * @return CommandInterface + * @throws \InvalidArgumentException if no command can be found by name + */ + public function getCommand($name, array $args = []) + { + return new Command($name, $args, clone $this->getHandlerList()); + } + + public function getConfig($option = null) + { + if (null === $option) { + return $this->config; + } + + if (isset($this->config[$option])) { + return $this->config[$option]; + } + + return $this->getClientFromPool()->getConfig($option); + } + + public function getCredentials() + { + return $this->getClientFromPool()->getCredentials(); + } + + public function getHandlerList() + { + return $this->handlerList; + } + + public function getApi() + { + return $this->getClientFromPool()->getApi(); + } + + public function getEndpoint() + { + return $this->getClientFromPool()->getEndpoint(); + } + + /** + * @param string $region Omit this argument or pass in an empty string to + * allow the configured client factory to apply the + * region. + * + * @return AwsClientInterface + */ + protected function getClientFromPool($region = '') + { + if (empty($this->clientPool[$region])) { + $factory = $this->factory; + $this->clientPool[$region] = $factory( + array_replace($this->args, array_filter(['region' => $region])) + ); + } + + return $this->clientPool[$region]; + } + + /** + * Parse the class name and return the "service" name of the client. + * + * @return string + */ + private function parseClass() + { + $klass = get_class($this); + + if ($klass === __CLASS__) { + return ''; + } + + return strtolower(substr($klass, strrpos($klass, '\\') + 1, -17)); + } + + private function getRegionFromArgs(array $args) + { + $region = isset($args['@region']) + ? $args['@region'] + : $this->getRegion(); + unset($args['@region']); + + return [$region, $args]; + } +} diff --git a/lib/aws/Aws/Multipart/AbstractUploadManager.php b/lib/aws/Aws/Multipart/AbstractUploadManager.php new file mode 100644 index 0000000..9a53e94 --- /dev/null +++ b/lib/aws/Aws/Multipart/AbstractUploadManager.php @@ -0,0 +1,305 @@ +<?php +namespace Aws\Multipart; + +use Aws\AwsClientInterface as Client; +use Aws\CommandInterface; +use Aws\CommandPool; +use Aws\Exception\AwsException; +use Aws\Exception\MultipartUploadException; +use Aws\Result; +use Aws\ResultInterface; +use GuzzleHttp\Promise; +use GuzzleHttp\Promise\PromiseInterface; +use InvalidArgumentException as IAE; +use Psr\Http\Message\RequestInterface; + +/** + * Encapsulates the execution of a multipart upload to S3 or Glacier. + * + * @internal + */ +abstract class AbstractUploadManager implements Promise\PromisorInterface +{ + const DEFAULT_CONCURRENCY = 5; + + /** @var array Default values for base multipart configuration */ + private static $defaultConfig = [ + 'part_size' => null, + 'state' => null, + 'concurrency' => self::DEFAULT_CONCURRENCY, + 'prepare_data_source' => null, + 'before_initiate' => null, + 'before_upload' => null, + 'before_complete' => null, + 'exception_class' => 'Aws\Exception\MultipartUploadException', + ]; + + /** @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 UploadState State used to manage the upload. */ + protected $state; + + /** + * @param Client $client + * @param array $config + */ + public function __construct(Client $client, array $config = []) + { + $this->client = $client; + $this->info = $this->loadUploadWorkflowInfo(); + $this->config = $config + self::$defaultConfig; + $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.' + ); + } + + if (!$this->state->isInitiated()) { + // Execute the prepare callback. + if (is_callable($this->config["prepare_data_source"])) { + $this->config["prepare_data_source"](); + } + + $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 $this->config['exception_class']($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 $this->config['exception_class']($this->state, $e); + } + throw $e; + }); + } + + protected function getConfig() + { + return $this->config; + } + + /** + * 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(); + + /** + * 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; + } + + /** + * 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 + */ + protected 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 + */ + protected 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 a command. This can + * include the Body parameter, which is a limited stream (i.e., a Stream + * object, decorated with a LimitStream). + * + * @param callable $resultHandler + * + * @return \Generator + */ + abstract protected function getUploadCommands(callable $resultHandler); +} diff --git a/lib/aws/Aws/Multipart/AbstractUploader.php b/lib/aws/Aws/Multipart/AbstractUploader.php new file mode 100644 index 0000000..766fb16 --- /dev/null +++ b/lib/aws/Aws/Multipart/AbstractUploader.php @@ -0,0 +1,129 @@ +<?php +namespace Aws\Multipart; + +use Aws\AwsClientInterface as Client; +use GuzzleHttp\Psr7; +use InvalidArgumentException as IAE; +use Psr\Http\Message\StreamInterface as Stream; + +abstract class AbstractUploader extends AbstractUploadManager +{ + /** @var Stream Source of the data to be uploaded. */ + protected $source; + + /** + * @param Client $client + * @param mixed $source + * @param array $config + */ + public function __construct(Client $client, $source, array $config = []) + { + $this->source = $this->determineSource($source); + parent::__construct($client, $config); + } + + /** + * 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() + ); + } + + protected function getUploadCommands(callable $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()); + } + } + } + + /** + * 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); + + /** + * 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(); + } + + /** + * 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; + } +} diff --git a/lib/aws/Aws/Multipart/UploadState.php b/lib/aws/Aws/Multipart/UploadState.php new file mode 100644 index 0000000..4108c4f --- /dev/null +++ b/lib/aws/Aws/Multipart/UploadState.php @@ -0,0 +1,145 @@ +<?php +namespace Aws\Multipart; + +/** + * Representation of the multipart upload. + * + * This object keeps track of the state of the upload, including the status and + * which parts have been uploaded. + */ +class UploadState +{ + const CREATED = 0; + const INITIATED = 1; + const COMPLETED = 2; + + /** @var array Params used to identity the upload. */ + private $id; + + /** @var int Part size being used by the upload. */ + private $partSize; + + /** @var array Parts that have been uploaded. */ + private $uploadedParts = []; + + /** @var int Identifies the status the upload. */ + private $status = self::CREATED; + + /** + * @param array $id Params used to identity the upload. + */ + public function __construct(array $id) + { + $this->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/Aws/Neptune/Exception/NeptuneException.php b/lib/aws/Aws/Neptune/Exception/NeptuneException.php new file mode 100644 index 0000000..c8fd99b --- /dev/null +++ b/lib/aws/Aws/Neptune/Exception/NeptuneException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Neptune\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Neptune** service. + */ +class NeptuneException extends AwsException {} diff --git a/lib/aws/Aws/Neptune/NeptuneClient.php b/lib/aws/Aws/Neptune/NeptuneClient.php new file mode 100644 index 0000000..fd1ec88 --- /dev/null +++ b/lib/aws/Aws/Neptune/NeptuneClient.php @@ -0,0 +1,123 @@ +<?php +namespace Aws\Neptune; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Neptune** service. + * @method \Aws\Result addRoleToDBCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise addRoleToDBClusterAsync(array $args = []) + * @method \Aws\Result addSourceIdentifierToSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise addSourceIdentifierToSubscriptionAsync(array $args = []) + * @method \Aws\Result addTagsToResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsToResourceAsync(array $args = []) + * @method \Aws\Result applyPendingMaintenanceAction(array $args = []) + * @method \GuzzleHttp\Promise\Promise applyPendingMaintenanceActionAsync(array $args = []) + * @method \Aws\Result copyDBClusterParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise copyDBClusterParameterGroupAsync(array $args = []) + * @method \Aws\Result copyDBClusterSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise copyDBClusterSnapshotAsync(array $args = []) + * @method \Aws\Result copyDBParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise copyDBParameterGroupAsync(array $args = []) + * @method \Aws\Result createDBCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDBClusterAsync(array $args = []) + * @method \Aws\Result createDBClusterParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDBClusterParameterGroupAsync(array $args = []) + * @method \Aws\Result createDBClusterSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDBClusterSnapshotAsync(array $args = []) + * @method \Aws\Result createDBInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDBInstanceAsync(array $args = []) + * @method \Aws\Result createDBParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDBParameterGroupAsync(array $args = []) + * @method \Aws\Result createDBSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDBSubnetGroupAsync(array $args = []) + * @method \Aws\Result createEventSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise createEventSubscriptionAsync(array $args = []) + * @method \Aws\Result deleteDBCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDBClusterAsync(array $args = []) + * @method \Aws\Result deleteDBClusterParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDBClusterParameterGroupAsync(array $args = []) + * @method \Aws\Result deleteDBClusterSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDBClusterSnapshotAsync(array $args = []) + * @method \Aws\Result deleteDBInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDBInstanceAsync(array $args = []) + * @method \Aws\Result deleteDBParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDBParameterGroupAsync(array $args = []) + * @method \Aws\Result deleteDBSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDBSubnetGroupAsync(array $args = []) + * @method \Aws\Result deleteEventSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteEventSubscriptionAsync(array $args = []) + * @method \Aws\Result describeDBClusterParameterGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBClusterParameterGroupsAsync(array $args = []) + * @method \Aws\Result describeDBClusterParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBClusterParametersAsync(array $args = []) + * @method \Aws\Result describeDBClusterSnapshotAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBClusterSnapshotAttributesAsync(array $args = []) + * @method \Aws\Result describeDBClusterSnapshots(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBClusterSnapshotsAsync(array $args = []) + * @method \Aws\Result describeDBClusters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBClustersAsync(array $args = []) + * @method \Aws\Result describeDBEngineVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBEngineVersionsAsync(array $args = []) + * @method \Aws\Result describeDBInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBInstancesAsync(array $args = []) + * @method \Aws\Result describeDBParameterGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBParameterGroupsAsync(array $args = []) + * @method \Aws\Result describeDBParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBParametersAsync(array $args = []) + * @method \Aws\Result describeDBSubnetGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBSubnetGroupsAsync(array $args = []) + * @method \Aws\Result describeEngineDefaultClusterParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEngineDefaultClusterParametersAsync(array $args = []) + * @method \Aws\Result describeEngineDefaultParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEngineDefaultParametersAsync(array $args = []) + * @method \Aws\Result describeEventCategories(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventCategoriesAsync(array $args = []) + * @method \Aws\Result describeEventSubscriptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventSubscriptionsAsync(array $args = []) + * @method \Aws\Result describeEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventsAsync(array $args = []) + * @method \Aws\Result describeOrderableDBInstanceOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeOrderableDBInstanceOptionsAsync(array $args = []) + * @method \Aws\Result describePendingMaintenanceActions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describePendingMaintenanceActionsAsync(array $args = []) + * @method \Aws\Result describeValidDBInstanceModifications(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeValidDBInstanceModificationsAsync(array $args = []) + * @method \Aws\Result failoverDBCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise failoverDBClusterAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result modifyDBCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyDBClusterAsync(array $args = []) + * @method \Aws\Result modifyDBClusterParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyDBClusterParameterGroupAsync(array $args = []) + * @method \Aws\Result modifyDBClusterSnapshotAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyDBClusterSnapshotAttributeAsync(array $args = []) + * @method \Aws\Result modifyDBInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyDBInstanceAsync(array $args = []) + * @method \Aws\Result modifyDBParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyDBParameterGroupAsync(array $args = []) + * @method \Aws\Result modifyDBSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyDBSubnetGroupAsync(array $args = []) + * @method \Aws\Result modifyEventSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyEventSubscriptionAsync(array $args = []) + * @method \Aws\Result promoteReadReplicaDBCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise promoteReadReplicaDBClusterAsync(array $args = []) + * @method \Aws\Result rebootDBInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise rebootDBInstanceAsync(array $args = []) + * @method \Aws\Result removeRoleFromDBCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeRoleFromDBClusterAsync(array $args = []) + * @method \Aws\Result removeSourceIdentifierFromSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeSourceIdentifierFromSubscriptionAsync(array $args = []) + * @method \Aws\Result removeTagsFromResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeTagsFromResourceAsync(array $args = []) + * @method \Aws\Result resetDBClusterParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise resetDBClusterParameterGroupAsync(array $args = []) + * @method \Aws\Result resetDBParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise resetDBParameterGroupAsync(array $args = []) + * @method \Aws\Result restoreDBClusterFromSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise restoreDBClusterFromSnapshotAsync(array $args = []) + * @method \Aws\Result restoreDBClusterToPointInTime(array $args = []) + * @method \GuzzleHttp\Promise\Promise restoreDBClusterToPointInTimeAsync(array $args = []) + */ +class NeptuneClient extends AwsClient {} diff --git a/lib/aws/Aws/OpsWorks/Exception/OpsWorksException.php b/lib/aws/Aws/OpsWorks/Exception/OpsWorksException.php new file mode 100644 index 0000000..515fdf1 --- /dev/null +++ b/lib/aws/Aws/OpsWorks/Exception/OpsWorksException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\OpsWorks\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the AWS OpsWorks service. + */ +class OpsWorksException extends AwsException {} diff --git a/lib/aws/Aws/OpsWorks/OpsWorksClient.php b/lib/aws/Aws/OpsWorks/OpsWorksClient.php new file mode 100644 index 0000000..6651627 --- /dev/null +++ b/lib/aws/Aws/OpsWorks/OpsWorksClient.php @@ -0,0 +1,158 @@ +<?php +namespace Aws\OpsWorks; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS OpsWorks** service. + * + * @method \Aws\Result assignInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise assignInstanceAsync(array $args = []) + * @method \Aws\Result assignVolume(array $args = []) + * @method \GuzzleHttp\Promise\Promise assignVolumeAsync(array $args = []) + * @method \Aws\Result associateElasticIp(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateElasticIpAsync(array $args = []) + * @method \Aws\Result attachElasticLoadBalancer(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachElasticLoadBalancerAsync(array $args = []) + * @method \Aws\Result cloneStack(array $args = []) + * @method \GuzzleHttp\Promise\Promise cloneStackAsync(array $args = []) + * @method \Aws\Result createApp(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAppAsync(array $args = []) + * @method \Aws\Result createDeployment(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDeploymentAsync(array $args = []) + * @method \Aws\Result createInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise createInstanceAsync(array $args = []) + * @method \Aws\Result createLayer(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLayerAsync(array $args = []) + * @method \Aws\Result createStack(array $args = []) + * @method \GuzzleHttp\Promise\Promise createStackAsync(array $args = []) + * @method \Aws\Result createUserProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise createUserProfileAsync(array $args = []) + * @method \Aws\Result deleteApp(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAppAsync(array $args = []) + * @method \Aws\Result deleteInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteInstanceAsync(array $args = []) + * @method \Aws\Result deleteLayer(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLayerAsync(array $args = []) + * @method \Aws\Result deleteStack(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteStackAsync(array $args = []) + * @method \Aws\Result deleteUserProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserProfileAsync(array $args = []) + * @method \Aws\Result deregisterEcsCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterEcsClusterAsync(array $args = []) + * @method \Aws\Result deregisterElasticIp(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterElasticIpAsync(array $args = []) + * @method \Aws\Result deregisterInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterInstanceAsync(array $args = []) + * @method \Aws\Result deregisterRdsDbInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterRdsDbInstanceAsync(array $args = []) + * @method \Aws\Result deregisterVolume(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterVolumeAsync(array $args = []) + * @method \Aws\Result describeAgentVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAgentVersionsAsync(array $args = []) + * @method \Aws\Result describeApps(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAppsAsync(array $args = []) + * @method \Aws\Result describeCommands(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCommandsAsync(array $args = []) + * @method \Aws\Result describeDeployments(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDeploymentsAsync(array $args = []) + * @method \Aws\Result describeEcsClusters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEcsClustersAsync(array $args = []) + * @method \Aws\Result describeElasticIps(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeElasticIpsAsync(array $args = []) + * @method \Aws\Result describeElasticLoadBalancers(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeElasticLoadBalancersAsync(array $args = []) + * @method \Aws\Result describeInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeInstancesAsync(array $args = []) + * @method \Aws\Result describeLayers(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLayersAsync(array $args = []) + * @method \Aws\Result describeLoadBasedAutoScaling(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLoadBasedAutoScalingAsync(array $args = []) + * @method \Aws\Result describeMyUserProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMyUserProfileAsync(array $args = []) + * @method \Aws\Result describeOperatingSystems(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeOperatingSystemsAsync(array $args = []) + * @method \Aws\Result describePermissions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describePermissionsAsync(array $args = []) + * @method \Aws\Result describeRaidArrays(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRaidArraysAsync(array $args = []) + * @method \Aws\Result describeRdsDbInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRdsDbInstancesAsync(array $args = []) + * @method \Aws\Result describeServiceErrors(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeServiceErrorsAsync(array $args = []) + * @method \Aws\Result describeStackProvisioningParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStackProvisioningParametersAsync(array $args = []) + * @method \Aws\Result describeStackSummary(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStackSummaryAsync(array $args = []) + * @method \Aws\Result describeStacks(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStacksAsync(array $args = []) + * @method \Aws\Result describeTimeBasedAutoScaling(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTimeBasedAutoScalingAsync(array $args = []) + * @method \Aws\Result describeUserProfiles(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeUserProfilesAsync(array $args = []) + * @method \Aws\Result describeVolumes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVolumesAsync(array $args = []) + * @method \Aws\Result detachElasticLoadBalancer(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachElasticLoadBalancerAsync(array $args = []) + * @method \Aws\Result disassociateElasticIp(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateElasticIpAsync(array $args = []) + * @method \Aws\Result getHostnameSuggestion(array $args = []) + * @method \GuzzleHttp\Promise\Promise getHostnameSuggestionAsync(array $args = []) + * @method \Aws\Result grantAccess(array $args = []) + * @method \GuzzleHttp\Promise\Promise grantAccessAsync(array $args = []) + * @method \Aws\Result listTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsAsync(array $args = []) + * @method \Aws\Result rebootInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise rebootInstanceAsync(array $args = []) + * @method \Aws\Result registerEcsCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerEcsClusterAsync(array $args = []) + * @method \Aws\Result registerElasticIp(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerElasticIpAsync(array $args = []) + * @method \Aws\Result registerInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerInstanceAsync(array $args = []) + * @method \Aws\Result registerRdsDbInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerRdsDbInstanceAsync(array $args = []) + * @method \Aws\Result registerVolume(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerVolumeAsync(array $args = []) + * @method \Aws\Result setLoadBasedAutoScaling(array $args = []) + * @method \GuzzleHttp\Promise\Promise setLoadBasedAutoScalingAsync(array $args = []) + * @method \Aws\Result setPermission(array $args = []) + * @method \GuzzleHttp\Promise\Promise setPermissionAsync(array $args = []) + * @method \Aws\Result setTimeBasedAutoScaling(array $args = []) + * @method \GuzzleHttp\Promise\Promise setTimeBasedAutoScalingAsync(array $args = []) + * @method \Aws\Result startInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise startInstanceAsync(array $args = []) + * @method \Aws\Result startStack(array $args = []) + * @method \GuzzleHttp\Promise\Promise startStackAsync(array $args = []) + * @method \Aws\Result stopInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopInstanceAsync(array $args = []) + * @method \Aws\Result stopStack(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopStackAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result unassignInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise unassignInstanceAsync(array $args = []) + * @method \Aws\Result unassignVolume(array $args = []) + * @method \GuzzleHttp\Promise\Promise unassignVolumeAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateApp(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAppAsync(array $args = []) + * @method \Aws\Result updateElasticIp(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateElasticIpAsync(array $args = []) + * @method \Aws\Result updateInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateInstanceAsync(array $args = []) + * @method \Aws\Result updateLayer(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateLayerAsync(array $args = []) + * @method \Aws\Result updateMyUserProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateMyUserProfileAsync(array $args = []) + * @method \Aws\Result updateRdsDbInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRdsDbInstanceAsync(array $args = []) + * @method \Aws\Result updateStack(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateStackAsync(array $args = []) + * @method \Aws\Result updateUserProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUserProfileAsync(array $args = []) + * @method \Aws\Result updateVolume(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateVolumeAsync(array $args = []) + */ +class OpsWorksClient extends AwsClient {} diff --git a/lib/aws/Aws/OpsWorksCM/Exception/OpsWorksCMException.php b/lib/aws/Aws/OpsWorksCM/Exception/OpsWorksCMException.php new file mode 100644 index 0000000..56bcc82 --- /dev/null +++ b/lib/aws/Aws/OpsWorksCM/Exception/OpsWorksCMException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\OpsWorksCM\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS OpsWorks for Chef Automate** service. + */ +class OpsWorksCMException extends AwsException {} diff --git a/lib/aws/Aws/OpsWorksCM/OpsWorksCMClient.php b/lib/aws/Aws/OpsWorksCM/OpsWorksCMClient.php new file mode 100644 index 0000000..94c2ce3 --- /dev/null +++ b/lib/aws/Aws/OpsWorksCM/OpsWorksCMClient.php @@ -0,0 +1,41 @@ +<?php +namespace Aws\OpsWorksCM; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS OpsWorks for Chef Automate** service. + * @method \Aws\Result associateNode(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateNodeAsync(array $args = []) + * @method \Aws\Result createBackup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBackupAsync(array $args = []) + * @method \Aws\Result createServer(array $args = []) + * @method \GuzzleHttp\Promise\Promise createServerAsync(array $args = []) + * @method \Aws\Result deleteBackup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBackupAsync(array $args = []) + * @method \Aws\Result deleteServer(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteServerAsync(array $args = []) + * @method \Aws\Result describeAccountAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAccountAttributesAsync(array $args = []) + * @method \Aws\Result describeBackups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeBackupsAsync(array $args = []) + * @method \Aws\Result describeEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventsAsync(array $args = []) + * @method \Aws\Result describeNodeAssociationStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeNodeAssociationStatusAsync(array $args = []) + * @method \Aws\Result describeServers(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeServersAsync(array $args = []) + * @method \Aws\Result disassociateNode(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateNodeAsync(array $args = []) + * @method \Aws\Result exportServerEngineAttribute(array $args = []) + * @method \GuzzleHttp\Promise\Promise exportServerEngineAttributeAsync(array $args = []) + * @method \Aws\Result restoreServer(array $args = []) + * @method \GuzzleHttp\Promise\Promise restoreServerAsync(array $args = []) + * @method \Aws\Result startMaintenance(array $args = []) + * @method \GuzzleHttp\Promise\Promise startMaintenanceAsync(array $args = []) + * @method \Aws\Result updateServer(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateServerAsync(array $args = []) + * @method \Aws\Result updateServerEngineAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateServerEngineAttributesAsync(array $args = []) + */ +class OpsWorksCMClient extends AwsClient {} diff --git a/lib/aws/Aws/Organizations/Exception/OrganizationsException.php b/lib/aws/Aws/Organizations/Exception/OrganizationsException.php new file mode 100644 index 0000000..8e1c054 --- /dev/null +++ b/lib/aws/Aws/Organizations/Exception/OrganizationsException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Organizations\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Organizations** service. + */ +class OrganizationsException extends AwsException {} diff --git a/lib/aws/Aws/Organizations/OrganizationsClient.php b/lib/aws/Aws/Organizations/OrganizationsClient.php new file mode 100644 index 0000000..24904c3 --- /dev/null +++ b/lib/aws/Aws/Organizations/OrganizationsClient.php @@ -0,0 +1,93 @@ +<?php +namespace Aws\Organizations; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Organizations** service. + * @method \Aws\Result acceptHandshake(array $args = []) + * @method \GuzzleHttp\Promise\Promise acceptHandshakeAsync(array $args = []) + * @method \Aws\Result attachPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachPolicyAsync(array $args = []) + * @method \Aws\Result cancelHandshake(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelHandshakeAsync(array $args = []) + * @method \Aws\Result createAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAccountAsync(array $args = []) + * @method \Aws\Result createOrganization(array $args = []) + * @method \GuzzleHttp\Promise\Promise createOrganizationAsync(array $args = []) + * @method \Aws\Result createOrganizationalUnit(array $args = []) + * @method \GuzzleHttp\Promise\Promise createOrganizationalUnitAsync(array $args = []) + * @method \Aws\Result createPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPolicyAsync(array $args = []) + * @method \Aws\Result declineHandshake(array $args = []) + * @method \GuzzleHttp\Promise\Promise declineHandshakeAsync(array $args = []) + * @method \Aws\Result deleteOrganization(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteOrganizationAsync(array $args = []) + * @method \Aws\Result deleteOrganizationalUnit(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteOrganizationalUnitAsync(array $args = []) + * @method \Aws\Result deletePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePolicyAsync(array $args = []) + * @method \Aws\Result describeAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAccountAsync(array $args = []) + * @method \Aws\Result describeCreateAccountStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCreateAccountStatusAsync(array $args = []) + * @method \Aws\Result describeHandshake(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeHandshakeAsync(array $args = []) + * @method \Aws\Result describeOrganization(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeOrganizationAsync(array $args = []) + * @method \Aws\Result describeOrganizationalUnit(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeOrganizationalUnitAsync(array $args = []) + * @method \Aws\Result describePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise describePolicyAsync(array $args = []) + * @method \Aws\Result detachPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachPolicyAsync(array $args = []) + * @method \Aws\Result disableAWSServiceAccess(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableAWSServiceAccessAsync(array $args = []) + * @method \Aws\Result disablePolicyType(array $args = []) + * @method \GuzzleHttp\Promise\Promise disablePolicyTypeAsync(array $args = []) + * @method \Aws\Result enableAWSServiceAccess(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableAWSServiceAccessAsync(array $args = []) + * @method \Aws\Result enableAllFeatures(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableAllFeaturesAsync(array $args = []) + * @method \Aws\Result enablePolicyType(array $args = []) + * @method \GuzzleHttp\Promise\Promise enablePolicyTypeAsync(array $args = []) + * @method \Aws\Result inviteAccountToOrganization(array $args = []) + * @method \GuzzleHttp\Promise\Promise inviteAccountToOrganizationAsync(array $args = []) + * @method \Aws\Result leaveOrganization(array $args = []) + * @method \GuzzleHttp\Promise\Promise leaveOrganizationAsync(array $args = []) + * @method \Aws\Result listAWSServiceAccessForOrganization(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAWSServiceAccessForOrganizationAsync(array $args = []) + * @method \Aws\Result listAccounts(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAccountsAsync(array $args = []) + * @method \Aws\Result listAccountsForParent(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAccountsForParentAsync(array $args = []) + * @method \Aws\Result listChildren(array $args = []) + * @method \GuzzleHttp\Promise\Promise listChildrenAsync(array $args = []) + * @method \Aws\Result listCreateAccountStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise listCreateAccountStatusAsync(array $args = []) + * @method \Aws\Result listHandshakesForAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise listHandshakesForAccountAsync(array $args = []) + * @method \Aws\Result listHandshakesForOrganization(array $args = []) + * @method \GuzzleHttp\Promise\Promise listHandshakesForOrganizationAsync(array $args = []) + * @method \Aws\Result listOrganizationalUnitsForParent(array $args = []) + * @method \GuzzleHttp\Promise\Promise listOrganizationalUnitsForParentAsync(array $args = []) + * @method \Aws\Result listParents(array $args = []) + * @method \GuzzleHttp\Promise\Promise listParentsAsync(array $args = []) + * @method \Aws\Result listPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPoliciesAsync(array $args = []) + * @method \Aws\Result listPoliciesForTarget(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPoliciesForTargetAsync(array $args = []) + * @method \Aws\Result listRoots(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRootsAsync(array $args = []) + * @method \Aws\Result listTargetsForPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTargetsForPolicyAsync(array $args = []) + * @method \Aws\Result moveAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise moveAccountAsync(array $args = []) + * @method \Aws\Result removeAccountFromOrganization(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeAccountFromOrganizationAsync(array $args = []) + * @method \Aws\Result updateOrganizationalUnit(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateOrganizationalUnitAsync(array $args = []) + * @method \Aws\Result updatePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise updatePolicyAsync(array $args = []) + */ +class OrganizationsClient extends AwsClient {} diff --git a/lib/aws/Aws/PI/Exception/PIException.php b/lib/aws/Aws/PI/Exception/PIException.php new file mode 100644 index 0000000..2a565c9 --- /dev/null +++ b/lib/aws/Aws/PI/Exception/PIException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\PI\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Performance Insights** service. + */ +class PIException extends AwsException {} diff --git a/lib/aws/Aws/PI/PIClient.php b/lib/aws/Aws/PI/PIClient.php new file mode 100644 index 0000000..f1b5775 --- /dev/null +++ b/lib/aws/Aws/PI/PIClient.php @@ -0,0 +1,13 @@ +<?php +namespace Aws\PI; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Performance Insights** service. + * @method \Aws\Result describeDimensionKeys(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDimensionKeysAsync(array $args = []) + * @method \Aws\Result getResourceMetrics(array $args = []) + * @method \GuzzleHttp\Promise\Promise getResourceMetricsAsync(array $args = []) + */ +class PIClient extends AwsClient {} diff --git a/lib/aws/Aws/PhpHash.php b/lib/aws/Aws/PhpHash.php new file mode 100644 index 0000000..df1314a --- /dev/null +++ b/lib/aws/Aws/PhpHash.php @@ -0,0 +1,81 @@ +<?php +namespace Aws; + +/** + * Incremental hashing using PHP's hash functions. + */ +class PhpHash implements HashInterface +{ + /** @var resource|\HashContext */ + private $context; + + /** @var string */ + private $algo; + + /** @var array */ + private $options; + + /** @var string */ + private $hash; + + /** + * @param string $algo Hashing algorithm. One of PHP's hash_algos() + * return values (e.g. md5, sha1, etc...). + * @param array $options Associative array of hashing options: + * - key: Secret key used with the hashing algorithm. + * - base64: Set to true to base64 encode the value when complete. + */ + public function __construct($algo, array $options = []) + { + $this->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|\HashContext + */ + 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/Aws/Pinpoint/Exception/PinpointException.php b/lib/aws/Aws/Pinpoint/Exception/PinpointException.php new file mode 100644 index 0000000..54372da --- /dev/null +++ b/lib/aws/Aws/Pinpoint/Exception/PinpointException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Pinpoint\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Pinpoint** service. + */ +class PinpointException extends AwsException {} diff --git a/lib/aws/Aws/Pinpoint/PinpointClient.php b/lib/aws/Aws/Pinpoint/PinpointClient.php new file mode 100644 index 0000000..657a679 --- /dev/null +++ b/lib/aws/Aws/Pinpoint/PinpointClient.php @@ -0,0 +1,209 @@ +<?php +namespace Aws\Pinpoint; + +use Aws\Api\ApiProvider; +use Aws\Api\DocModel; +use Aws\Api\Service; +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Pinpoint** service. + * @method \Aws\Result createApp(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAppAsync(array $args = []) + * @method \Aws\Result createCampaign(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCampaignAsync(array $args = []) + * @method \Aws\Result createExportJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise createExportJobAsync(array $args = []) + * @method \Aws\Result createImportJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise createImportJobAsync(array $args = []) + * @method \Aws\Result createSegment(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSegmentAsync(array $args = []) + * @method \Aws\Result deleteAdmChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAdmChannelAsync(array $args = []) + * @method \Aws\Result deleteApnsChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApnsChannelAsync(array $args = []) + * @method \Aws\Result deleteApnsSandboxChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApnsSandboxChannelAsync(array $args = []) + * @method \Aws\Result deleteApnsVoipChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApnsVoipChannelAsync(array $args = []) + * @method \Aws\Result deleteApnsVoipSandboxChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApnsVoipSandboxChannelAsync(array $args = []) + * @method \Aws\Result deleteApp(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAppAsync(array $args = []) + * @method \Aws\Result deleteBaiduChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBaiduChannelAsync(array $args = []) + * @method \Aws\Result deleteCampaign(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCampaignAsync(array $args = []) + * @method \Aws\Result deleteEmailChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteEmailChannelAsync(array $args = []) + * @method \Aws\Result deleteEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteEndpointAsync(array $args = []) + * @method \Aws\Result deleteEventStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteEventStreamAsync(array $args = []) + * @method \Aws\Result deleteGcmChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteGcmChannelAsync(array $args = []) + * @method \Aws\Result deleteSegment(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSegmentAsync(array $args = []) + * @method \Aws\Result deleteSmsChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSmsChannelAsync(array $args = []) + * @method \Aws\Result deleteUserEndpoints(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserEndpointsAsync(array $args = []) + * @method \Aws\Result deleteVoiceChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVoiceChannelAsync(array $args = []) + * @method \Aws\Result getAdmChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAdmChannelAsync(array $args = []) + * @method \Aws\Result getApnsChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise getApnsChannelAsync(array $args = []) + * @method \Aws\Result getApnsSandboxChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise getApnsSandboxChannelAsync(array $args = []) + * @method \Aws\Result getApnsVoipChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise getApnsVoipChannelAsync(array $args = []) + * @method \Aws\Result getApnsVoipSandboxChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise getApnsVoipSandboxChannelAsync(array $args = []) + * @method \Aws\Result getApp(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAppAsync(array $args = []) + * @method \Aws\Result getApplicationSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise getApplicationSettingsAsync(array $args = []) + * @method \Aws\Result getApps(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAppsAsync(array $args = []) + * @method \Aws\Result getBaiduChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBaiduChannelAsync(array $args = []) + * @method \Aws\Result getCampaign(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCampaignAsync(array $args = []) + * @method \Aws\Result getCampaignActivities(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCampaignActivitiesAsync(array $args = []) + * @method \Aws\Result getCampaignVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCampaignVersionAsync(array $args = []) + * @method \Aws\Result getCampaignVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCampaignVersionsAsync(array $args = []) + * @method \Aws\Result getCampaigns(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCampaignsAsync(array $args = []) + * @method \Aws\Result getChannels(array $args = []) + * @method \GuzzleHttp\Promise\Promise getChannelsAsync(array $args = []) + * @method \Aws\Result getEmailChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise getEmailChannelAsync(array $args = []) + * @method \Aws\Result getEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise getEndpointAsync(array $args = []) + * @method \Aws\Result getEventStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise getEventStreamAsync(array $args = []) + * @method \Aws\Result getExportJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise getExportJobAsync(array $args = []) + * @method \Aws\Result getExportJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise getExportJobsAsync(array $args = []) + * @method \Aws\Result getGcmChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise getGcmChannelAsync(array $args = []) + * @method \Aws\Result getImportJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise getImportJobAsync(array $args = []) + * @method \Aws\Result getImportJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise getImportJobsAsync(array $args = []) + * @method \Aws\Result getSegment(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSegmentAsync(array $args = []) + * @method \Aws\Result getSegmentExportJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSegmentExportJobsAsync(array $args = []) + * @method \Aws\Result getSegmentImportJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSegmentImportJobsAsync(array $args = []) + * @method \Aws\Result getSegmentVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSegmentVersionAsync(array $args = []) + * @method \Aws\Result getSegmentVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSegmentVersionsAsync(array $args = []) + * @method \Aws\Result getSegments(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSegmentsAsync(array $args = []) + * @method \Aws\Result getSmsChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSmsChannelAsync(array $args = []) + * @method \Aws\Result getUserEndpoints(array $args = []) + * @method \GuzzleHttp\Promise\Promise getUserEndpointsAsync(array $args = []) + * @method \Aws\Result getVoiceChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise getVoiceChannelAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result phoneNumberValidate(array $args = []) + * @method \GuzzleHttp\Promise\Promise phoneNumberValidateAsync(array $args = []) + * @method \Aws\Result putEventStream(array $args = []) + * @method \GuzzleHttp\Promise\Promise putEventStreamAsync(array $args = []) + * @method \Aws\Result putEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise putEventsAsync(array $args = []) + * @method \Aws\Result removeAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeAttributesAsync(array $args = []) + * @method \Aws\Result sendMessages(array $args = []) + * @method \GuzzleHttp\Promise\Promise sendMessagesAsync(array $args = []) + * @method \Aws\Result sendUsersMessages(array $args = []) + * @method \GuzzleHttp\Promise\Promise sendUsersMessagesAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateAdmChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAdmChannelAsync(array $args = []) + * @method \Aws\Result updateApnsChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateApnsChannelAsync(array $args = []) + * @method \Aws\Result updateApnsSandboxChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateApnsSandboxChannelAsync(array $args = []) + * @method \Aws\Result updateApnsVoipChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateApnsVoipChannelAsync(array $args = []) + * @method \Aws\Result updateApnsVoipSandboxChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateApnsVoipSandboxChannelAsync(array $args = []) + * @method \Aws\Result updateApplicationSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateApplicationSettingsAsync(array $args = []) + * @method \Aws\Result updateBaiduChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateBaiduChannelAsync(array $args = []) + * @method \Aws\Result updateCampaign(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateCampaignAsync(array $args = []) + * @method \Aws\Result updateEmailChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateEmailChannelAsync(array $args = []) + * @method \Aws\Result updateEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateEndpointAsync(array $args = []) + * @method \Aws\Result updateEndpointsBatch(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateEndpointsBatchAsync(array $args = []) + * @method \Aws\Result updateGcmChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateGcmChannelAsync(array $args = []) + * @method \Aws\Result updateSegment(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSegmentAsync(array $args = []) + * @method \Aws\Result updateSmsChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSmsChannelAsync(array $args = []) + * @method \Aws\Result updateVoiceChannel(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateVoiceChannelAsync(array $args = []) + */ +class PinpointClient extends AwsClient +{ + private static $nameCollisionOverrides = [ + 'GetUserEndpoint' => 'GetEndpoint', + 'GetUserEndpointAsync' => 'GetEndpointAsync', + 'UpdateUserEndpoint' => 'UpdateEndpoint', + 'UpdateUserEndpointAsync' => 'UpdateEndpointAsync', + 'UpdateUserEndpointsBatch' => 'UpdateEndpointsBatch', + 'UpdateUserEndpointsBatchAsync' => 'UpdateEndpointsBatchAsync', + ]; + + public function __call($name, array $args) + { + // Overcomes a naming collision with `AwsClient::getEndpoint`. + if (isset(self::$nameCollisionOverrides[ucfirst($name)])) { + $name = self::$nameCollisionOverrides[ucfirst($name)]; + } + + return parent::__call($name, $args); + } + + /** + * @internal + * @codeCoverageIgnore + */ + public static function applyDocFilters(array $api, array $docs) + { + foreach (self::$nameCollisionOverrides as $overrideName => $operationName) { + if (substr($overrideName, -5) === 'Async') { + continue; + } + // Overcomes a naming collision with `AwsClient::getEndpoint`. + $api['operations'][$overrideName] = $api['operations'][$operationName]; + $docs['operations'][$overrideName] = $docs['operations'][$operationName]; + unset($api['operations'][$operationName], $docs['operations'][$operationName]); + } + ksort($api['operations']); + + return [ + new Service($api, ApiProvider::defaultProvider()), + new DocModel($docs) + ]; + } +} diff --git a/lib/aws/Aws/PinpointEmail/Exception/PinpointEmailException.php b/lib/aws/Aws/PinpointEmail/Exception/PinpointEmailException.php new file mode 100644 index 0000000..351735c --- /dev/null +++ b/lib/aws/Aws/PinpointEmail/Exception/PinpointEmailException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\PinpointEmail\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Pinpoint Email Service** service. + */ +class PinpointEmailException extends AwsException {} diff --git a/lib/aws/Aws/PinpointEmail/PinpointEmailClient.php b/lib/aws/Aws/PinpointEmail/PinpointEmailClient.php new file mode 100644 index 0000000..c94a754 --- /dev/null +++ b/lib/aws/Aws/PinpointEmail/PinpointEmailClient.php @@ -0,0 +1,89 @@ +<?php +namespace Aws\PinpointEmail; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Pinpoint Email Service** service. + * @method \Aws\Result createConfigurationSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createConfigurationSetAsync(array $args = []) + * @method \Aws\Result createConfigurationSetEventDestination(array $args = []) + * @method \GuzzleHttp\Promise\Promise createConfigurationSetEventDestinationAsync(array $args = []) + * @method \Aws\Result createDedicatedIpPool(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDedicatedIpPoolAsync(array $args = []) + * @method \Aws\Result createDeliverabilityTestReport(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDeliverabilityTestReportAsync(array $args = []) + * @method \Aws\Result createEmailIdentity(array $args = []) + * @method \GuzzleHttp\Promise\Promise createEmailIdentityAsync(array $args = []) + * @method \Aws\Result deleteConfigurationSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteConfigurationSetAsync(array $args = []) + * @method \Aws\Result deleteConfigurationSetEventDestination(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteConfigurationSetEventDestinationAsync(array $args = []) + * @method \Aws\Result deleteDedicatedIpPool(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDedicatedIpPoolAsync(array $args = []) + * @method \Aws\Result deleteEmailIdentity(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteEmailIdentityAsync(array $args = []) + * @method \Aws\Result getAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAccountAsync(array $args = []) + * @method \Aws\Result getBlacklistReports(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBlacklistReportsAsync(array $args = []) + * @method \Aws\Result getConfigurationSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getConfigurationSetAsync(array $args = []) + * @method \Aws\Result getConfigurationSetEventDestinations(array $args = []) + * @method \GuzzleHttp\Promise\Promise getConfigurationSetEventDestinationsAsync(array $args = []) + * @method \Aws\Result getDedicatedIp(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDedicatedIpAsync(array $args = []) + * @method \Aws\Result getDedicatedIps(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDedicatedIpsAsync(array $args = []) + * @method \Aws\Result getDeliverabilityDashboardOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDeliverabilityDashboardOptionsAsync(array $args = []) + * @method \Aws\Result getDeliverabilityTestReport(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDeliverabilityTestReportAsync(array $args = []) + * @method \Aws\Result getDomainStatisticsReport(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDomainStatisticsReportAsync(array $args = []) + * @method \Aws\Result getEmailIdentity(array $args = []) + * @method \GuzzleHttp\Promise\Promise getEmailIdentityAsync(array $args = []) + * @method \Aws\Result listConfigurationSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listConfigurationSetsAsync(array $args = []) + * @method \Aws\Result listDedicatedIpPools(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDedicatedIpPoolsAsync(array $args = []) + * @method \Aws\Result listDeliverabilityTestReports(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDeliverabilityTestReportsAsync(array $args = []) + * @method \Aws\Result listEmailIdentities(array $args = []) + * @method \GuzzleHttp\Promise\Promise listEmailIdentitiesAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result putAccountDedicatedIpWarmupAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise putAccountDedicatedIpWarmupAttributesAsync(array $args = []) + * @method \Aws\Result putAccountSendingAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise putAccountSendingAttributesAsync(array $args = []) + * @method \Aws\Result putConfigurationSetDeliveryOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise putConfigurationSetDeliveryOptionsAsync(array $args = []) + * @method \Aws\Result putConfigurationSetReputationOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise putConfigurationSetReputationOptionsAsync(array $args = []) + * @method \Aws\Result putConfigurationSetSendingOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise putConfigurationSetSendingOptionsAsync(array $args = []) + * @method \Aws\Result putConfigurationSetTrackingOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise putConfigurationSetTrackingOptionsAsync(array $args = []) + * @method \Aws\Result putDedicatedIpInPool(array $args = []) + * @method \GuzzleHttp\Promise\Promise putDedicatedIpInPoolAsync(array $args = []) + * @method \Aws\Result putDedicatedIpWarmupAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise putDedicatedIpWarmupAttributesAsync(array $args = []) + * @method \Aws\Result putDeliverabilityDashboardOption(array $args = []) + * @method \GuzzleHttp\Promise\Promise putDeliverabilityDashboardOptionAsync(array $args = []) + * @method \Aws\Result putEmailIdentityDkimAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise putEmailIdentityDkimAttributesAsync(array $args = []) + * @method \Aws\Result putEmailIdentityFeedbackAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise putEmailIdentityFeedbackAttributesAsync(array $args = []) + * @method \Aws\Result putEmailIdentityMailFromAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise putEmailIdentityMailFromAttributesAsync(array $args = []) + * @method \Aws\Result sendEmail(array $args = []) + * @method \GuzzleHttp\Promise\Promise sendEmailAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateConfigurationSetEventDestination(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateConfigurationSetEventDestinationAsync(array $args = []) + */ +class PinpointEmailClient extends AwsClient {} diff --git a/lib/aws/Aws/PinpointSMSVoice/Exception/PinpointSMSVoiceException.php b/lib/aws/Aws/PinpointSMSVoice/Exception/PinpointSMSVoiceException.php new file mode 100644 index 0000000..d41fb7d --- /dev/null +++ b/lib/aws/Aws/PinpointSMSVoice/Exception/PinpointSMSVoiceException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\PinpointSMSVoice\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Pinpoint SMS and Voice Service** service. + */ +class PinpointSMSVoiceException extends AwsException {} diff --git a/lib/aws/Aws/PinpointSMSVoice/PinpointSMSVoiceClient.php b/lib/aws/Aws/PinpointSMSVoice/PinpointSMSVoiceClient.php new file mode 100644 index 0000000..c926939 --- /dev/null +++ b/lib/aws/Aws/PinpointSMSVoice/PinpointSMSVoiceClient.php @@ -0,0 +1,25 @@ +<?php +namespace Aws\PinpointSMSVoice; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Pinpoint SMS and Voice Service** service. + * @method \Aws\Result createConfigurationSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createConfigurationSetAsync(array $args = []) + * @method \Aws\Result createConfigurationSetEventDestination(array $args = []) + * @method \GuzzleHttp\Promise\Promise createConfigurationSetEventDestinationAsync(array $args = []) + * @method \Aws\Result deleteConfigurationSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteConfigurationSetAsync(array $args = []) + * @method \Aws\Result deleteConfigurationSetEventDestination(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteConfigurationSetEventDestinationAsync(array $args = []) + * @method \Aws\Result getConfigurationSetEventDestinations(array $args = []) + * @method \GuzzleHttp\Promise\Promise getConfigurationSetEventDestinationsAsync(array $args = []) + * @method \Aws\Result listConfigurationSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listConfigurationSetsAsync(array $args = []) + * @method \Aws\Result sendVoiceMessage(array $args = []) + * @method \GuzzleHttp\Promise\Promise sendVoiceMessageAsync(array $args = []) + * @method \Aws\Result updateConfigurationSetEventDestination(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateConfigurationSetEventDestinationAsync(array $args = []) + */ +class PinpointSMSVoiceClient extends AwsClient {} diff --git a/lib/aws/Aws/Polly/Exception/PollyException.php b/lib/aws/Aws/Polly/Exception/PollyException.php new file mode 100644 index 0000000..7ecdc25 --- /dev/null +++ b/lib/aws/Aws/Polly/Exception/PollyException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Polly\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Polly** service. + */ +class PollyException extends AwsException {} diff --git a/lib/aws/Aws/Polly/PollyClient.php b/lib/aws/Aws/Polly/PollyClient.php new file mode 100644 index 0000000..1751e2f --- /dev/null +++ b/lib/aws/Aws/Polly/PollyClient.php @@ -0,0 +1,73 @@ +<?php +namespace Aws\Polly; + +use Aws\Api\Serializer\JsonBody; +use Aws\AwsClient; +use Aws\Signature\SignatureV4; +use GuzzleHttp\Psr7\Request; +use GuzzleHttp\Psr7\Uri; +use GuzzleHttp\Psr7; + +/** + * This client is used to interact with the **Amazon Polly** service. + * @method \Aws\Result deleteLexicon(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLexiconAsync(array $args = []) + * @method \Aws\Result describeVoices(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVoicesAsync(array $args = []) + * @method \Aws\Result getLexicon(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLexiconAsync(array $args = []) + * @method \Aws\Result getSpeechSynthesisTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSpeechSynthesisTaskAsync(array $args = []) + * @method \Aws\Result listLexicons(array $args = []) + * @method \GuzzleHttp\Promise\Promise listLexiconsAsync(array $args = []) + * @method \Aws\Result listSpeechSynthesisTasks(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSpeechSynthesisTasksAsync(array $args = []) + * @method \Aws\Result putLexicon(array $args = []) + * @method \GuzzleHttp\Promise\Promise putLexiconAsync(array $args = []) + * @method \Aws\Result startSpeechSynthesisTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise startSpeechSynthesisTaskAsync(array $args = []) + * @method \Aws\Result synthesizeSpeech(array $args = []) + * @method \GuzzleHttp\Promise\Promise synthesizeSpeechAsync(array $args = []) + */ +class PollyClient extends AwsClient +{ + /** @var JsonBody */ + private $formatter; + + /** + * Create a pre-signed URL for Polly operation `SynthesizeSpeech` + * + * @param array $args parameters array for `SynthesizeSpeech` + * More information @see Aws\Polly\PollyClient::SynthesizeSpeech + * + * @return string + */ + public function createSynthesizeSpeechPreSignedUrl(array $args) + { + $uri = new Uri($this->getEndpoint()); + $uri = $uri->withPath('/v1/speech'); + + // Formatting parameters follows rest-json protocol + $this->formatter = $this->formatter ?: new JsonBody($this->getApi()); + $queryArray = json_decode( + $this->formatter->build( + $this->getApi()->getOperation('SynthesizeSpeech')->getInput(), + $args + ), + true + ); + + // Mocking a 'GET' request in pre-signing the Url + $query = Psr7\build_query($queryArray); + $uri = $uri->withQuery($query); + + $request = new Request('GET', $uri); + $request = $request->withBody(Psr7\stream_for('')); + $signer = new SignatureV4('polly', $this->getRegion()); + return (string) $signer->presign( + $request, + $this->getCredentials()->wait(), + '+15 minutes' + )->getUri(); + } +} diff --git a/lib/aws/Aws/PresignUrlMiddleware.php b/lib/aws/Aws/PresignUrlMiddleware.php new file mode 100644 index 0000000..363b585 --- /dev/null +++ b/lib/aws/Aws/PresignUrlMiddleware.php @@ -0,0 +1,99 @@ +<?php +namespace Aws; + +use Aws\Signature\SignatureV4; +use Aws\Endpoint\EndpointProvider; +use GuzzleHttp\Psr7\Uri; +use Psr\Http\Message\RequestInterface; + +/** + * @internal Adds computed values to service operations that need presigned url. + */ +class PresignUrlMiddleware +{ + private $client; + private $endpointProvider; + private $nextHandler; + /** @var array names of operations that require presign url */ + private $commandPool; + /** @var string */ + private $serviceName; + /** @var string */ + private $presignParam; + /** @var bool */ + private $requireDifferentRegion; + + public function __construct( + array $options, + callable $endpointProvider, + AwsClientInterface $client, + callable $nextHandler + ) { + $this->endpointProvider = $endpointProvider; + $this->client = $client; + $this->nextHandler = $nextHandler; + $this->commandPool = $options['operations']; + $this->serviceName = $options['service']; + $this->presignParam = $options['presign_param']; + $this->requireDifferentRegion = !empty($options['require_different_region']); + } + + public static function wrap( + AwsClientInterface $client, + callable $endpointProvider, + array $options = [] + ) { + return function (callable $handler) use ($endpointProvider, $client, $options) { + $f = new PresignUrlMiddleware($options, $endpointProvider, $client, $handler); + return $f; + }; + } + + public function __invoke(CommandInterface $cmd, RequestInterface $request = null) + { + if (in_array($cmd->getName(), $this->commandPool) + && (!isset($cmd->{'__skip' . $cmd->getName()})) + ) { + $cmd['DestinationRegion'] = $this->client->getRegion(); + if (!$this->requireDifferentRegion + || (!empty($cmd['SourceRegion']) + && $cmd['SourceRegion'] !== $cmd['DestinationRegion']) + ) { + $cmd[$this->presignParam] = $this->createPresignedUrl($this->client, $cmd); + } + } + + $f = $this->nextHandler; + return $f($cmd, $request); + } + + private function createPresignedUrl( + AwsClientInterface $client, + CommandInterface $cmd + ) { + $cmdName = $cmd->getName(); + $newCmd = $client->getCommand($cmdName, $cmd->toArray()); + // Avoid infinite recursion by flagging the new command. + $newCmd->{'__skip' . $cmdName} = true; + + // Serialize a request for the operation. + $request = \Aws\serialize($newCmd); + // Create the new endpoint for the target endpoint. + $endpoint = EndpointProvider::resolve($this->endpointProvider, [ + 'region' => $cmd['SourceRegion'], + 'service' => $this->serviceName, + ])['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($this->serviceName, $cmd['SourceRegion']); + + return (string) $signer->presign( + SignatureV4::convertPostToGet($request), + $client->getCredentials()->wait(), + '+1 hour' + )->getUri(); + } +} diff --git a/lib/aws/Aws/Pricing/Exception/PricingException.php b/lib/aws/Aws/Pricing/Exception/PricingException.php new file mode 100644 index 0000000..0dcf122 --- /dev/null +++ b/lib/aws/Aws/Pricing/Exception/PricingException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Pricing\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Price List Service** service. + */ +class PricingException extends AwsException {} diff --git a/lib/aws/Aws/Pricing/PricingClient.php b/lib/aws/Aws/Pricing/PricingClient.php new file mode 100644 index 0000000..a11dc4f --- /dev/null +++ b/lib/aws/Aws/Pricing/PricingClient.php @@ -0,0 +1,15 @@ +<?php +namespace Aws\Pricing; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Price List Service** service. + * @method \Aws\Result describeServices(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeServicesAsync(array $args = []) + * @method \Aws\Result getAttributeValues(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAttributeValuesAsync(array $args = []) + * @method \Aws\Result getProducts(array $args = []) + * @method \GuzzleHttp\Promise\Promise getProductsAsync(array $args = []) + */ +class PricingClient extends AwsClient {} diff --git a/lib/aws/Aws/PsrCacheAdapter.php b/lib/aws/Aws/PsrCacheAdapter.php new file mode 100644 index 0000000..9dd2d94 --- /dev/null +++ b/lib/aws/Aws/PsrCacheAdapter.php @@ -0,0 +1,38 @@ +<?php +namespace Aws; + +use Psr\Cache\CacheItemPoolInterface; + +class PsrCacheAdapter implements CacheInterface +{ + /** @var CacheItemPoolInterface */ + private $pool; + + public function __construct(CacheItemPoolInterface $pool) + { + $this->pool = $pool; + } + + public function get($key) + { + $item = $this->pool->getItem($key); + + return $item->isHit() ? $item->get() : null; + } + + public function set($key, $value, $ttl = 0) + { + $item = $this->pool->getItem($key); + $item->set($value); + if ($ttl > 0) { + $item->expiresAfter($ttl); + } + + $this->pool->save($item); + } + + public function remove($key) + { + $this->pool->deleteItem($key); + } +} diff --git a/lib/aws/Aws/QuickSight/Exception/QuickSightException.php b/lib/aws/Aws/QuickSight/Exception/QuickSightException.php new file mode 100644 index 0000000..79838a7 --- /dev/null +++ b/lib/aws/Aws/QuickSight/Exception/QuickSightException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\QuickSight\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon QuickSight** service. + */ +class QuickSightException extends AwsException {} diff --git a/lib/aws/Aws/QuickSight/QuickSightClient.php b/lib/aws/Aws/QuickSight/QuickSightClient.php new file mode 100644 index 0000000..112b8e6 --- /dev/null +++ b/lib/aws/Aws/QuickSight/QuickSightClient.php @@ -0,0 +1,41 @@ +<?php +namespace Aws\QuickSight; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon QuickSight** service. + * @method \Aws\Result createGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createGroupAsync(array $args = []) + * @method \Aws\Result createGroupMembership(array $args = []) + * @method \GuzzleHttp\Promise\Promise createGroupMembershipAsync(array $args = []) + * @method \Aws\Result deleteGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteGroupAsync(array $args = []) + * @method \Aws\Result deleteGroupMembership(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteGroupMembershipAsync(array $args = []) + * @method \Aws\Result deleteUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserAsync(array $args = []) + * @method \Aws\Result deleteUserByPrincipalId(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserByPrincipalIdAsync(array $args = []) + * @method \Aws\Result describeGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeGroupAsync(array $args = []) + * @method \Aws\Result describeUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeUserAsync(array $args = []) + * @method \Aws\Result getDashboardEmbedUrl(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDashboardEmbedUrlAsync(array $args = []) + * @method \Aws\Result listGroupMemberships(array $args = []) + * @method \GuzzleHttp\Promise\Promise listGroupMembershipsAsync(array $args = []) + * @method \Aws\Result listGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise listGroupsAsync(array $args = []) + * @method \Aws\Result listUserGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUserGroupsAsync(array $args = []) + * @method \Aws\Result listUsers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUsersAsync(array $args = []) + * @method \Aws\Result registerUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerUserAsync(array $args = []) + * @method \Aws\Result updateGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateGroupAsync(array $args = []) + * @method \Aws\Result updateUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUserAsync(array $args = []) + */ +class QuickSightClient extends AwsClient {} diff --git a/lib/aws/Aws/RAM/Exception/RAMException.php b/lib/aws/Aws/RAM/Exception/RAMException.php new file mode 100644 index 0000000..2b26322 --- /dev/null +++ b/lib/aws/Aws/RAM/Exception/RAMException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\RAM\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Resource Access Manager** service. + */ +class RAMException extends AwsException {} diff --git a/lib/aws/Aws/RAM/RAMClient.php b/lib/aws/Aws/RAM/RAMClient.php new file mode 100644 index 0000000..efdd77c --- /dev/null +++ b/lib/aws/Aws/RAM/RAMClient.php @@ -0,0 +1,41 @@ +<?php +namespace Aws\RAM; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Resource Access Manager** service. + * @method \Aws\Result acceptResourceShareInvitation(array $args = []) + * @method \GuzzleHttp\Promise\Promise acceptResourceShareInvitationAsync(array $args = []) + * @method \Aws\Result associateResourceShare(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateResourceShareAsync(array $args = []) + * @method \Aws\Result createResourceShare(array $args = []) + * @method \GuzzleHttp\Promise\Promise createResourceShareAsync(array $args = []) + * @method \Aws\Result deleteResourceShare(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteResourceShareAsync(array $args = []) + * @method \Aws\Result disassociateResourceShare(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateResourceShareAsync(array $args = []) + * @method \Aws\Result enableSharingWithAwsOrganization(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableSharingWithAwsOrganizationAsync(array $args = []) + * @method \Aws\Result getResourcePolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise getResourcePoliciesAsync(array $args = []) + * @method \Aws\Result getResourceShareAssociations(array $args = []) + * @method \GuzzleHttp\Promise\Promise getResourceShareAssociationsAsync(array $args = []) + * @method \Aws\Result getResourceShareInvitations(array $args = []) + * @method \GuzzleHttp\Promise\Promise getResourceShareInvitationsAsync(array $args = []) + * @method \Aws\Result getResourceShares(array $args = []) + * @method \GuzzleHttp\Promise\Promise getResourceSharesAsync(array $args = []) + * @method \Aws\Result listPrincipals(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPrincipalsAsync(array $args = []) + * @method \Aws\Result listResources(array $args = []) + * @method \GuzzleHttp\Promise\Promise listResourcesAsync(array $args = []) + * @method \Aws\Result rejectResourceShareInvitation(array $args = []) + * @method \GuzzleHttp\Promise\Promise rejectResourceShareInvitationAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateResourceShare(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateResourceShareAsync(array $args = []) + */ +class RAMClient extends AwsClient {} diff --git a/lib/aws/Aws/RDSDataService/Exception/RDSDataServiceException.php b/lib/aws/Aws/RDSDataService/Exception/RDSDataServiceException.php new file mode 100644 index 0000000..eebd45f --- /dev/null +++ b/lib/aws/Aws/RDSDataService/Exception/RDSDataServiceException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\RDSDataService\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS RDS DataService** service. + */ +class RDSDataServiceException extends AwsException {} diff --git a/lib/aws/Aws/RDSDataService/RDSDataServiceClient.php b/lib/aws/Aws/RDSDataService/RDSDataServiceClient.php new file mode 100644 index 0000000..a58f43f --- /dev/null +++ b/lib/aws/Aws/RDSDataService/RDSDataServiceClient.php @@ -0,0 +1,11 @@ +<?php +namespace Aws\RDSDataService; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS RDS DataService** service. + * @method \Aws\Result executeSql(array $args = []) + * @method \GuzzleHttp\Promise\Promise executeSqlAsync(array $args = []) + */ +class RDSDataServiceClient extends AwsClient {} diff --git a/lib/aws/Aws/Rds/AuthTokenGenerator.php b/lib/aws/Aws/Rds/AuthTokenGenerator.php new file mode 100644 index 0000000..7f2fd45 --- /dev/null +++ b/lib/aws/Aws/Rds/AuthTokenGenerator.php @@ -0,0 +1,64 @@ +<?php +namespace Aws\Rds; + +use Aws\Credentials\CredentialsInterface; +use Aws\Credentials\Credentials; +use Aws\Signature\SignatureV4; +use GuzzleHttp\Psr7\Request; +use GuzzleHttp\Psr7\Uri; +use GuzzleHttp\Promise; +use Aws; + +/** + * Generates RDS auth tokens for use with IAM authentication. + */ +class AuthTokenGenerator +{ + + private $credentialProvider; + + /** + * The constructor takes an instance of Credentials or a CredentialProvider + * + * @param callable|Credentials $creds + */ + public function __construct($creds) + { + if ($creds instanceof CredentialsInterface) { + $promise = new Promise\FulfilledPromise($creds); + $this->credentialProvider = Aws\constantly($promise); + } else { + $this->credentialProvider = $creds; + } + } + + /** + * Create the token for database login + * + * @param string $endpoint The database hostname with port number specified + * (e.g., host:port) + * @param string $region The region where the database is located + * @param string $username The username to login as + * + * @return string Token generated + */ + public function createToken($endpoint, $region, $username) + { + $uri = new Uri($endpoint); + $uri = $uri->withPath('/'); + $uri = $uri->withQuery('Action=connect&DBUser=' . $username); + + $request = new Request('GET', $uri); + $signer = new SignatureV4('rds-db', $region); + $provider = $this->credentialProvider; + + $url = (string) $signer->presign( + $request, + $provider()->wait(), + '+15 minutes' + )->getUri(); + + // Remove 2 extra slash from the presigned url result + return substr($url, 2); + } +} diff --git a/lib/aws/Aws/Rds/Exception/RdsException.php b/lib/aws/Aws/Rds/Exception/RdsException.php new file mode 100644 index 0000000..7d58f89 --- /dev/null +++ b/lib/aws/Aws/Rds/Exception/RdsException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Rds\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon Relational Database Service. + */ +class RdsException extends AwsException {} diff --git a/lib/aws/Aws/Rds/RdsClient.php b/lib/aws/Aws/Rds/RdsClient.php new file mode 100644 index 0000000..4fcb6fb --- /dev/null +++ b/lib/aws/Aws/Rds/RdsClient.php @@ -0,0 +1,331 @@ +<?php +namespace Aws\Rds; + +use Aws\AwsClient; +use Aws\Api\Service; +use Aws\Api\DocModel; +use Aws\Api\ApiProvider; +use Aws\PresignUrlMiddleware; + +/** + * This client is used to interact with the **Amazon Relational Database Service (Amazon RDS)**. + * + * @method \Aws\Result addSourceIdentifierToSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise addSourceIdentifierToSubscriptionAsync(array $args = []) + * @method \Aws\Result addTagsToResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsToResourceAsync(array $args = []) + * @method \Aws\Result authorizeDBSecurityGroupIngress(array $args = []) + * @method \GuzzleHttp\Promise\Promise authorizeDBSecurityGroupIngressAsync(array $args = []) + * @method \Aws\Result copyDBParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise copyDBParameterGroupAsync(array $args = []) + * @method \Aws\Result copyDBSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise copyDBSnapshotAsync(array $args = []) + * @method \Aws\Result copyOptionGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise copyOptionGroupAsync(array $args = []) + * @method \Aws\Result createDBInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDBInstanceAsync(array $args = []) + * @method \Aws\Result createDBInstanceReadReplica(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDBInstanceReadReplicaAsync(array $args = []) + * @method \Aws\Result createDBParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDBParameterGroupAsync(array $args = []) + * @method \Aws\Result createDBSecurityGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDBSecurityGroupAsync(array $args = []) + * @method \Aws\Result createDBSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDBSnapshotAsync(array $args = []) + * @method \Aws\Result createDBSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDBSubnetGroupAsync(array $args = []) + * @method \Aws\Result createEventSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise createEventSubscriptionAsync(array $args = []) + * @method \Aws\Result createOptionGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createOptionGroupAsync(array $args = []) + * @method \Aws\Result deleteDBInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDBInstanceAsync(array $args = []) + * @method \Aws\Result deleteDBParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDBParameterGroupAsync(array $args = []) + * @method \Aws\Result deleteDBSecurityGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDBSecurityGroupAsync(array $args = []) + * @method \Aws\Result deleteDBSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDBSnapshotAsync(array $args = []) + * @method \Aws\Result deleteDBSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDBSubnetGroupAsync(array $args = []) + * @method \Aws\Result deleteEventSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteEventSubscriptionAsync(array $args = []) + * @method \Aws\Result deleteOptionGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteOptionGroupAsync(array $args = []) + * @method \Aws\Result describeDBEngineVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBEngineVersionsAsync(array $args = []) + * @method \Aws\Result describeDBInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBInstancesAsync(array $args = []) + * @method \Aws\Result describeDBLogFiles(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBLogFilesAsync(array $args = []) + * @method \Aws\Result describeDBParameterGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBParameterGroupsAsync(array $args = []) + * @method \Aws\Result describeDBParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBParametersAsync(array $args = []) + * @method \Aws\Result describeDBSecurityGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBSecurityGroupsAsync(array $args = []) + * @method \Aws\Result describeDBSnapshots(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBSnapshotsAsync(array $args = []) + * @method \Aws\Result describeDBSubnetGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDBSubnetGroupsAsync(array $args = []) + * @method \Aws\Result describeEngineDefaultParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEngineDefaultParametersAsync(array $args = []) + * @method \Aws\Result describeEventCategories(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventCategoriesAsync(array $args = []) + * @method \Aws\Result describeEventSubscriptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventSubscriptionsAsync(array $args = []) + * @method \Aws\Result describeEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventsAsync(array $args = []) + * @method \Aws\Result describeOptionGroupOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeOptionGroupOptionsAsync(array $args = []) + * @method \Aws\Result describeOptionGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeOptionGroupsAsync(array $args = []) + * @method \Aws\Result describeOrderableDBInstanceOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeOrderableDBInstanceOptionsAsync(array $args = []) + * @method \Aws\Result describeReservedDBInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReservedDBInstancesAsync(array $args = []) + * @method \Aws\Result describeReservedDBInstancesOfferings(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReservedDBInstancesOfferingsAsync(array $args = []) + * @method \Aws\Result downloadDBLogFilePortion(array $args = []) + * @method \GuzzleHttp\Promise\Promise downloadDBLogFilePortionAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result modifyDBInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyDBInstanceAsync(array $args = []) + * @method \Aws\Result modifyDBParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyDBParameterGroupAsync(array $args = []) + * @method \Aws\Result modifyDBSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyDBSubnetGroupAsync(array $args = []) + * @method \Aws\Result modifyEventSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyEventSubscriptionAsync(array $args = []) + * @method \Aws\Result modifyOptionGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyOptionGroupAsync(array $args = []) + * @method \Aws\Result promoteReadReplica(array $args = []) + * @method \GuzzleHttp\Promise\Promise promoteReadReplicaAsync(array $args = []) + * @method \Aws\Result purchaseReservedDBInstancesOffering(array $args = []) + * @method \GuzzleHttp\Promise\Promise purchaseReservedDBInstancesOfferingAsync(array $args = []) + * @method \Aws\Result rebootDBInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise rebootDBInstanceAsync(array $args = []) + * @method \Aws\Result removeSourceIdentifierFromSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeSourceIdentifierFromSubscriptionAsync(array $args = []) + * @method \Aws\Result removeTagsFromResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeTagsFromResourceAsync(array $args = []) + * @method \Aws\Result resetDBParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise resetDBParameterGroupAsync(array $args = []) + * @method \Aws\Result restoreDBInstanceFromDBSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise restoreDBInstanceFromDBSnapshotAsync(array $args = []) + * @method \Aws\Result restoreDBInstanceToPointInTime(array $args = []) + * @method \GuzzleHttp\Promise\Promise restoreDBInstanceToPointInTimeAsync(array $args = []) + * @method \Aws\Result revokeDBSecurityGroupIngress(array $args = []) + * @method \GuzzleHttp\Promise\Promise revokeDBSecurityGroupIngressAsync(array $args = []) + * @method \Aws\Result addRoleToDBCluster(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise addRoleToDBClusterAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result addRoleToDBInstance(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise addRoleToDBInstanceAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result applyPendingMaintenanceAction(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise applyPendingMaintenanceActionAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result backtrackDBCluster(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise backtrackDBClusterAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result copyDBClusterParameterGroup(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise copyDBClusterParameterGroupAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result copyDBClusterSnapshot(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise copyDBClusterSnapshotAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result createDBCluster(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise createDBClusterAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result createDBClusterEndpoint(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise createDBClusterEndpointAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result createDBClusterParameterGroup(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise createDBClusterParameterGroupAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result createDBClusterSnapshot(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise createDBClusterSnapshotAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result createGlobalCluster(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise createGlobalClusterAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result deleteDBCluster(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise deleteDBClusterAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result deleteDBClusterEndpoint(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise deleteDBClusterEndpointAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result deleteDBClusterParameterGroup(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise deleteDBClusterParameterGroupAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result deleteDBClusterSnapshot(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise deleteDBClusterSnapshotAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result deleteDBInstanceAutomatedBackup(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise deleteDBInstanceAutomatedBackupAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result deleteGlobalCluster(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise deleteGlobalClusterAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result describeAccountAttributes(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise describeAccountAttributesAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result describeCertificates(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise describeCertificatesAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result describeDBClusterBacktracks(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise describeDBClusterBacktracksAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result describeDBClusterEndpoints(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise describeDBClusterEndpointsAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result describeDBClusterParameterGroups(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise describeDBClusterParameterGroupsAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result describeDBClusterParameters(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise describeDBClusterParametersAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result describeDBClusterSnapshotAttributes(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise describeDBClusterSnapshotAttributesAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result describeDBClusterSnapshots(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise describeDBClusterSnapshotsAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result describeDBClusters(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise describeDBClustersAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result describeDBInstanceAutomatedBackups(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise describeDBInstanceAutomatedBackupsAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result describeDBSnapshotAttributes(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise describeDBSnapshotAttributesAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result describeEngineDefaultClusterParameters(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise describeEngineDefaultClusterParametersAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result describeGlobalClusters(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise describeGlobalClustersAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result describePendingMaintenanceActions(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise describePendingMaintenanceActionsAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result describeSourceRegions(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise describeSourceRegionsAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result describeValidDBInstanceModifications(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise describeValidDBInstanceModificationsAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result failoverDBCluster(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise failoverDBClusterAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result modifyCurrentDBClusterCapacity(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise modifyCurrentDBClusterCapacityAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result modifyDBCluster(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise modifyDBClusterAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result modifyDBClusterEndpoint(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise modifyDBClusterEndpointAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result modifyDBClusterParameterGroup(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise modifyDBClusterParameterGroupAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result modifyDBClusterSnapshotAttribute(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise modifyDBClusterSnapshotAttributeAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result modifyDBSnapshot(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise modifyDBSnapshotAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result modifyDBSnapshotAttribute(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise modifyDBSnapshotAttributeAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result modifyGlobalCluster(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise modifyGlobalClusterAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result promoteReadReplicaDBCluster(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise promoteReadReplicaDBClusterAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result removeFromGlobalCluster(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise removeFromGlobalClusterAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result removeRoleFromDBCluster(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise removeRoleFromDBClusterAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result removeRoleFromDBInstance(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise removeRoleFromDBInstanceAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result resetDBClusterParameterGroup(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise resetDBClusterParameterGroupAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result restoreDBClusterFromS3(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise restoreDBClusterFromS3Async(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result restoreDBClusterFromSnapshot(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise restoreDBClusterFromSnapshotAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result restoreDBClusterToPointInTime(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise restoreDBClusterToPointInTimeAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result restoreDBInstanceFromS3(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise restoreDBInstanceFromS3Async(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result startDBCluster(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise startDBClusterAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result startDBInstance(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise startDBInstanceAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result stopDBCluster(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise stopDBClusterAsync(array $args = []) (supported in versions 2014-10-31) + * @method \Aws\Result stopDBInstance(array $args = []) (supported in versions 2014-10-31) + * @method \GuzzleHttp\Promise\Promise stopDBInstanceAsync(array $args = []) (supported in versions 2014-10-31) + */ +class RdsClient extends AwsClient +{ + public function __construct(array $args) + { + $args['with_resolved'] = function (array $args) { + $this->getHandlerList()->appendInit( + PresignUrlMiddleware::wrap( + $this, + $args['endpoint_provider'], + [ + 'operations' => [ + 'CopyDBSnapshot', + 'CreateDBInstanceReadReplica', + 'CopyDBClusterSnapshot', + 'CreateDBCluster' + ], + 'service' => 'rds', + 'presign_param' => 'PreSignedUrl', + 'require_different_region' => true, + ] + ), + 'rds.presigner' + ); + }; + + parent::__construct($args); + } + + /** + * @internal + * @codeCoverageIgnore + */ + public static function applyDocFilters(array $api, array $docs) + { + // Add the SourceRegion parameter + $docs['shapes']['SourceRegion']['base'] = 'A required parameter that indicates ' + . 'the region that the DB snapshot will be copied from.'; + $api['shapes']['SourceRegion'] = ['type' => 'string']; + $api['shapes']['CopyDBSnapshotMessage']['members']['SourceRegion'] = ['shape' => 'SourceRegion']; + $api['shapes']['CreateDBInstanceReadReplicaMessage']['members']['SourceRegion'] = ['shape' => 'SourceRegion']; + + // Add the DestinationRegion parameter + $docs['shapes']['DestinationRegion']['base'] + = '<div class="alert alert-info">The SDK will populate this ' + . 'parameter on your behalf using the configured region value of ' + . 'the client.</div>'; + $api['shapes']['DestinationRegion'] = ['type' => 'string']; + $api['shapes']['CopyDBSnapshotMessage']['members']['DestinationRegion'] = ['shape' => 'DestinationRegion']; + $api['shapes']['CreateDBInstanceReadReplicaMessage']['members']['DestinationRegion'] = ['shape' => 'DestinationRegion']; + + // Several parameters in presign APIs are optional. + $docs['shapes']['String']['refs']['CopyDBSnapshotMessage$PreSignedUrl'] + = '<div class="alert alert-info">The SDK will compute this value ' + . 'for you on your behalf.</div>'; + $docs['shapes']['String']['refs']['CopyDBSnapshotMessage$DestinationRegion'] + = '<div class="alert alert-info">The SDK will populate this ' + . 'parameter on your behalf using the configured region value of ' + . 'the client.</div>'; + + // Several parameters in presign APIs are optional. + $docs['shapes']['String']['refs']['CreateDBInstanceReadReplicaMessage$PreSignedUrl'] + = '<div class="alert alert-info">The SDK will compute this value ' + . 'for you on your behalf.</div>'; + $docs['shapes']['String']['refs']['CreateDBInstanceReadReplicaMessage$DestinationRegion'] + = '<div class="alert alert-info">The SDK will populate this ' + . 'parameter on your behalf using the configured region value of ' + . 'the client.</div>'; + + if ($api['metadata']['apiVersion'] != '2014-09-01') { + $api['shapes']['CopyDBClusterSnapshotMessage']['members']['SourceRegion'] = ['shape' => 'SourceRegion']; + $api['shapes']['CreateDBClusterMessage']['members']['SourceRegion'] = ['shape' => 'SourceRegion']; + + $api['shapes']['CopyDBClusterSnapshotMessage']['members']['DestinationRegion'] = ['shape' => 'DestinationRegion']; + $api['shapes']['CreateDBClusterMessage']['members']['DestinationRegion'] = ['shape' => 'DestinationRegion']; + + // Several parameters in presign APIs are optional. + $docs['shapes']['String']['refs']['CopyDBClusterSnapshotMessage$PreSignedUrl'] + = '<div class="alert alert-info">The SDK will compute this value ' + . 'for you on your behalf.</div>'; + $docs['shapes']['String']['refs']['CopyDBClusterSnapshotMessage$DestinationRegion'] + = '<div class="alert alert-info">The SDK will populate this ' + . 'parameter on your behalf using the configured region value of ' + . 'the client.</div>'; + + // Several parameters in presign APIs are optional. + $docs['shapes']['String']['refs']['CreateDBClusterMessage$PreSignedUrl'] + = '<div class="alert alert-info">The SDK will compute this value ' + . 'for you on your behalf.</div>'; + $docs['shapes']['String']['refs']['CreateDBClusterMessage$DestinationRegion'] + = '<div class="alert alert-info">The SDK will populate this ' + . 'parameter on your behalf using the configured region value of ' + . 'the client.</div>'; + } + + return [ + new Service($api, ApiProvider::defaultProvider()), + new DocModel($docs) + ]; + } +} diff --git a/lib/aws/Aws/Redshift/Exception/RedshiftException.php b/lib/aws/Aws/Redshift/Exception/RedshiftException.php new file mode 100644 index 0000000..1910a5d --- /dev/null +++ b/lib/aws/Aws/Redshift/Exception/RedshiftException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Redshift\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon Redshift service. + */ +class RedshiftException extends AwsException {} diff --git a/lib/aws/Aws/Redshift/RedshiftClient.php b/lib/aws/Aws/Redshift/RedshiftClient.php new file mode 100644 index 0000000..59564b3 --- /dev/null +++ b/lib/aws/Aws/Redshift/RedshiftClient.php @@ -0,0 +1,172 @@ +<?php +namespace Aws\Redshift; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Redshift** service. + * + * @method \Aws\Result acceptReservedNodeExchange(array $args = []) + * @method \GuzzleHttp\Promise\Promise acceptReservedNodeExchangeAsync(array $args = []) + * @method \Aws\Result authorizeClusterSecurityGroupIngress(array $args = []) + * @method \GuzzleHttp\Promise\Promise authorizeClusterSecurityGroupIngressAsync(array $args = []) + * @method \Aws\Result authorizeSnapshotAccess(array $args = []) + * @method \GuzzleHttp\Promise\Promise authorizeSnapshotAccessAsync(array $args = []) + * @method \Aws\Result batchDeleteClusterSnapshots(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchDeleteClusterSnapshotsAsync(array $args = []) + * @method \Aws\Result batchModifyClusterSnapshots(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchModifyClusterSnapshotsAsync(array $args = []) + * @method \Aws\Result cancelResize(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelResizeAsync(array $args = []) + * @method \Aws\Result copyClusterSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise copyClusterSnapshotAsync(array $args = []) + * @method \Aws\Result createCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise createClusterAsync(array $args = []) + * @method \Aws\Result createClusterParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createClusterParameterGroupAsync(array $args = []) + * @method \Aws\Result createClusterSecurityGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createClusterSecurityGroupAsync(array $args = []) + * @method \Aws\Result createClusterSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise createClusterSnapshotAsync(array $args = []) + * @method \Aws\Result createClusterSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createClusterSubnetGroupAsync(array $args = []) + * @method \Aws\Result createEventSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise createEventSubscriptionAsync(array $args = []) + * @method \Aws\Result createHsmClientCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise createHsmClientCertificateAsync(array $args = []) + * @method \Aws\Result createHsmConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise createHsmConfigurationAsync(array $args = []) + * @method \Aws\Result createSnapshotCopyGrant(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSnapshotCopyGrantAsync(array $args = []) + * @method \Aws\Result createSnapshotSchedule(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSnapshotScheduleAsync(array $args = []) + * @method \Aws\Result createTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTagsAsync(array $args = []) + * @method \Aws\Result deleteCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteClusterAsync(array $args = []) + * @method \Aws\Result deleteClusterParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteClusterParameterGroupAsync(array $args = []) + * @method \Aws\Result deleteClusterSecurityGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteClusterSecurityGroupAsync(array $args = []) + * @method \Aws\Result deleteClusterSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteClusterSnapshotAsync(array $args = []) + * @method \Aws\Result deleteClusterSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteClusterSubnetGroupAsync(array $args = []) + * @method \Aws\Result deleteEventSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteEventSubscriptionAsync(array $args = []) + * @method \Aws\Result deleteHsmClientCertificate(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteHsmClientCertificateAsync(array $args = []) + * @method \Aws\Result deleteHsmConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteHsmConfigurationAsync(array $args = []) + * @method \Aws\Result deleteSnapshotCopyGrant(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSnapshotCopyGrantAsync(array $args = []) + * @method \Aws\Result deleteSnapshotSchedule(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSnapshotScheduleAsync(array $args = []) + * @method \Aws\Result deleteTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTagsAsync(array $args = []) + * @method \Aws\Result describeAccountAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAccountAttributesAsync(array $args = []) + * @method \Aws\Result describeClusterDbRevisions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeClusterDbRevisionsAsync(array $args = []) + * @method \Aws\Result describeClusterParameterGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeClusterParameterGroupsAsync(array $args = []) + * @method \Aws\Result describeClusterParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeClusterParametersAsync(array $args = []) + * @method \Aws\Result describeClusterSecurityGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeClusterSecurityGroupsAsync(array $args = []) + * @method \Aws\Result describeClusterSnapshots(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeClusterSnapshotsAsync(array $args = []) + * @method \Aws\Result describeClusterSubnetGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeClusterSubnetGroupsAsync(array $args = []) + * @method \Aws\Result describeClusterTracks(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeClusterTracksAsync(array $args = []) + * @method \Aws\Result describeClusterVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeClusterVersionsAsync(array $args = []) + * @method \Aws\Result describeClusters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeClustersAsync(array $args = []) + * @method \Aws\Result describeDefaultClusterParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDefaultClusterParametersAsync(array $args = []) + * @method \Aws\Result describeEventCategories(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventCategoriesAsync(array $args = []) + * @method \Aws\Result describeEventSubscriptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventSubscriptionsAsync(array $args = []) + * @method \Aws\Result describeEvents(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEventsAsync(array $args = []) + * @method \Aws\Result describeHsmClientCertificates(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeHsmClientCertificatesAsync(array $args = []) + * @method \Aws\Result describeHsmConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeHsmConfigurationsAsync(array $args = []) + * @method \Aws\Result describeLoggingStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLoggingStatusAsync(array $args = []) + * @method \Aws\Result describeOrderableClusterOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeOrderableClusterOptionsAsync(array $args = []) + * @method \Aws\Result describeReservedNodeOfferings(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReservedNodeOfferingsAsync(array $args = []) + * @method \Aws\Result describeReservedNodes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReservedNodesAsync(array $args = []) + * @method \Aws\Result describeResize(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeResizeAsync(array $args = []) + * @method \Aws\Result describeSnapshotCopyGrants(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSnapshotCopyGrantsAsync(array $args = []) + * @method \Aws\Result describeSnapshotSchedules(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSnapshotSchedulesAsync(array $args = []) + * @method \Aws\Result describeStorage(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStorageAsync(array $args = []) + * @method \Aws\Result describeTableRestoreStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTableRestoreStatusAsync(array $args = []) + * @method \Aws\Result describeTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTagsAsync(array $args = []) + * @method \Aws\Result disableLogging(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableLoggingAsync(array $args = []) + * @method \Aws\Result disableSnapshotCopy(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableSnapshotCopyAsync(array $args = []) + * @method \Aws\Result enableLogging(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableLoggingAsync(array $args = []) + * @method \Aws\Result enableSnapshotCopy(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableSnapshotCopyAsync(array $args = []) + * @method \Aws\Result getClusterCredentials(array $args = []) + * @method \GuzzleHttp\Promise\Promise getClusterCredentialsAsync(array $args = []) + * @method \Aws\Result getReservedNodeExchangeOfferings(array $args = []) + * @method \GuzzleHttp\Promise\Promise getReservedNodeExchangeOfferingsAsync(array $args = []) + * @method \Aws\Result modifyCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyClusterAsync(array $args = []) + * @method \Aws\Result modifyClusterDbRevision(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyClusterDbRevisionAsync(array $args = []) + * @method \Aws\Result modifyClusterIamRoles(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyClusterIamRolesAsync(array $args = []) + * @method \Aws\Result modifyClusterMaintenance(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyClusterMaintenanceAsync(array $args = []) + * @method \Aws\Result modifyClusterParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyClusterParameterGroupAsync(array $args = []) + * @method \Aws\Result modifyClusterSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyClusterSnapshotAsync(array $args = []) + * @method \Aws\Result modifyClusterSnapshotSchedule(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyClusterSnapshotScheduleAsync(array $args = []) + * @method \Aws\Result modifyClusterSubnetGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyClusterSubnetGroupAsync(array $args = []) + * @method \Aws\Result modifyEventSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyEventSubscriptionAsync(array $args = []) + * @method \Aws\Result modifySnapshotCopyRetentionPeriod(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifySnapshotCopyRetentionPeriodAsync(array $args = []) + * @method \Aws\Result modifySnapshotSchedule(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifySnapshotScheduleAsync(array $args = []) + * @method \Aws\Result purchaseReservedNodeOffering(array $args = []) + * @method \GuzzleHttp\Promise\Promise purchaseReservedNodeOfferingAsync(array $args = []) + * @method \Aws\Result rebootCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise rebootClusterAsync(array $args = []) + * @method \Aws\Result resetClusterParameterGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise resetClusterParameterGroupAsync(array $args = []) + * @method \Aws\Result resizeCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise resizeClusterAsync(array $args = []) + * @method \Aws\Result restoreFromClusterSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise restoreFromClusterSnapshotAsync(array $args = []) + * @method \Aws\Result restoreTableFromClusterSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise restoreTableFromClusterSnapshotAsync(array $args = []) + * @method \Aws\Result revokeClusterSecurityGroupIngress(array $args = []) + * @method \GuzzleHttp\Promise\Promise revokeClusterSecurityGroupIngressAsync(array $args = []) + * @method \Aws\Result revokeSnapshotAccess(array $args = []) + * @method \GuzzleHttp\Promise\Promise revokeSnapshotAccessAsync(array $args = []) + * @method \Aws\Result rotateEncryptionKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise rotateEncryptionKeyAsync(array $args = []) + */ +class RedshiftClient extends AwsClient {} diff --git a/lib/aws/Aws/Rekognition/Exception/RekognitionException.php b/lib/aws/Aws/Rekognition/Exception/RekognitionException.php new file mode 100644 index 0000000..18f3f39 --- /dev/null +++ b/lib/aws/Aws/Rekognition/Exception/RekognitionException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Rekognition\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Rekognition** service. + */ +class RekognitionException extends AwsException {} diff --git a/lib/aws/Aws/Rekognition/RekognitionClient.php b/lib/aws/Aws/Rekognition/RekognitionClient.php new file mode 100644 index 0000000..462d358 --- /dev/null +++ b/lib/aws/Aws/Rekognition/RekognitionClient.php @@ -0,0 +1,77 @@ +<?php +namespace Aws\Rekognition; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Rekognition** service. + * @method \Aws\Result compareFaces(array $args = []) + * @method \GuzzleHttp\Promise\Promise compareFacesAsync(array $args = []) + * @method \Aws\Result createCollection(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCollectionAsync(array $args = []) + * @method \Aws\Result createStreamProcessor(array $args = []) + * @method \GuzzleHttp\Promise\Promise createStreamProcessorAsync(array $args = []) + * @method \Aws\Result deleteCollection(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCollectionAsync(array $args = []) + * @method \Aws\Result deleteFaces(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteFacesAsync(array $args = []) + * @method \Aws\Result deleteStreamProcessor(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteStreamProcessorAsync(array $args = []) + * @method \Aws\Result describeCollection(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCollectionAsync(array $args = []) + * @method \Aws\Result describeStreamProcessor(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStreamProcessorAsync(array $args = []) + * @method \Aws\Result detectFaces(array $args = []) + * @method \GuzzleHttp\Promise\Promise detectFacesAsync(array $args = []) + * @method \Aws\Result detectLabels(array $args = []) + * @method \GuzzleHttp\Promise\Promise detectLabelsAsync(array $args = []) + * @method \Aws\Result detectModerationLabels(array $args = []) + * @method \GuzzleHttp\Promise\Promise detectModerationLabelsAsync(array $args = []) + * @method \Aws\Result detectText(array $args = []) + * @method \GuzzleHttp\Promise\Promise detectTextAsync(array $args = []) + * @method \Aws\Result getCelebrityInfo(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCelebrityInfoAsync(array $args = []) + * @method \Aws\Result getCelebrityRecognition(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCelebrityRecognitionAsync(array $args = []) + * @method \Aws\Result getContentModeration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getContentModerationAsync(array $args = []) + * @method \Aws\Result getFaceDetection(array $args = []) + * @method \GuzzleHttp\Promise\Promise getFaceDetectionAsync(array $args = []) + * @method \Aws\Result getFaceSearch(array $args = []) + * @method \GuzzleHttp\Promise\Promise getFaceSearchAsync(array $args = []) + * @method \Aws\Result getLabelDetection(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLabelDetectionAsync(array $args = []) + * @method \Aws\Result getPersonTracking(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPersonTrackingAsync(array $args = []) + * @method \Aws\Result indexFaces(array $args = []) + * @method \GuzzleHttp\Promise\Promise indexFacesAsync(array $args = []) + * @method \Aws\Result listCollections(array $args = []) + * @method \GuzzleHttp\Promise\Promise listCollectionsAsync(array $args = []) + * @method \Aws\Result listFaces(array $args = []) + * @method \GuzzleHttp\Promise\Promise listFacesAsync(array $args = []) + * @method \Aws\Result listStreamProcessors(array $args = []) + * @method \GuzzleHttp\Promise\Promise listStreamProcessorsAsync(array $args = []) + * @method \Aws\Result recognizeCelebrities(array $args = []) + * @method \GuzzleHttp\Promise\Promise recognizeCelebritiesAsync(array $args = []) + * @method \Aws\Result searchFaces(array $args = []) + * @method \GuzzleHttp\Promise\Promise searchFacesAsync(array $args = []) + * @method \Aws\Result searchFacesByImage(array $args = []) + * @method \GuzzleHttp\Promise\Promise searchFacesByImageAsync(array $args = []) + * @method \Aws\Result startCelebrityRecognition(array $args = []) + * @method \GuzzleHttp\Promise\Promise startCelebrityRecognitionAsync(array $args = []) + * @method \Aws\Result startContentModeration(array $args = []) + * @method \GuzzleHttp\Promise\Promise startContentModerationAsync(array $args = []) + * @method \Aws\Result startFaceDetection(array $args = []) + * @method \GuzzleHttp\Promise\Promise startFaceDetectionAsync(array $args = []) + * @method \Aws\Result startFaceSearch(array $args = []) + * @method \GuzzleHttp\Promise\Promise startFaceSearchAsync(array $args = []) + * @method \Aws\Result startLabelDetection(array $args = []) + * @method \GuzzleHttp\Promise\Promise startLabelDetectionAsync(array $args = []) + * @method \Aws\Result startPersonTracking(array $args = []) + * @method \GuzzleHttp\Promise\Promise startPersonTrackingAsync(array $args = []) + * @method \Aws\Result startStreamProcessor(array $args = []) + * @method \GuzzleHttp\Promise\Promise startStreamProcessorAsync(array $args = []) + * @method \Aws\Result stopStreamProcessor(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopStreamProcessorAsync(array $args = []) + */ +class RekognitionClient extends AwsClient {} diff --git a/lib/aws/Aws/ResourceGroups/Exception/ResourceGroupsException.php b/lib/aws/Aws/ResourceGroups/Exception/ResourceGroupsException.php new file mode 100644 index 0000000..66b8115 --- /dev/null +++ b/lib/aws/Aws/ResourceGroups/Exception/ResourceGroupsException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\ResourceGroups\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Resource Groups** service. + */ +class ResourceGroupsException extends AwsException {} diff --git a/lib/aws/Aws/ResourceGroups/ResourceGroupsClient.php b/lib/aws/Aws/ResourceGroups/ResourceGroupsClient.php new file mode 100644 index 0000000..96f0a33 --- /dev/null +++ b/lib/aws/Aws/ResourceGroups/ResourceGroupsClient.php @@ -0,0 +1,33 @@ +<?php +namespace Aws\ResourceGroups; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Resource Groups** service. + * @method \Aws\Result createGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createGroupAsync(array $args = []) + * @method \Aws\Result deleteGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteGroupAsync(array $args = []) + * @method \Aws\Result getGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise getGroupAsync(array $args = []) + * @method \Aws\Result getGroupQuery(array $args = []) + * @method \GuzzleHttp\Promise\Promise getGroupQueryAsync(array $args = []) + * @method \Aws\Result getTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTagsAsync(array $args = []) + * @method \Aws\Result listGroupResources(array $args = []) + * @method \GuzzleHttp\Promise\Promise listGroupResourcesAsync(array $args = []) + * @method \Aws\Result listGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise listGroupsAsync(array $args = []) + * @method \Aws\Result searchResources(array $args = []) + * @method \GuzzleHttp\Promise\Promise searchResourcesAsync(array $args = []) + * @method \Aws\Result tag(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagAsync(array $args = []) + * @method \Aws\Result untag(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagAsync(array $args = []) + * @method \Aws\Result updateGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateGroupAsync(array $args = []) + * @method \Aws\Result updateGroupQuery(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateGroupQueryAsync(array $args = []) + */ +class ResourceGroupsClient extends AwsClient {} diff --git a/lib/aws/Aws/ResourceGroupsTaggingAPI/Exception/ResourceGroupsTaggingAPIException.php b/lib/aws/Aws/ResourceGroupsTaggingAPI/Exception/ResourceGroupsTaggingAPIException.php new file mode 100644 index 0000000..d0b3d59 --- /dev/null +++ b/lib/aws/Aws/ResourceGroupsTaggingAPI/Exception/ResourceGroupsTaggingAPIException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\ResourceGroupsTaggingAPI\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Resource Groups Tagging API** service. + */ +class ResourceGroupsTaggingAPIException extends AwsException {} diff --git a/lib/aws/Aws/ResourceGroupsTaggingAPI/ResourceGroupsTaggingAPIClient.php b/lib/aws/Aws/ResourceGroupsTaggingAPI/ResourceGroupsTaggingAPIClient.php new file mode 100644 index 0000000..af86570 --- /dev/null +++ b/lib/aws/Aws/ResourceGroupsTaggingAPI/ResourceGroupsTaggingAPIClient.php @@ -0,0 +1,19 @@ +<?php +namespace Aws\ResourceGroupsTaggingAPI; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Resource Groups Tagging API** service. + * @method \Aws\Result getResources(array $args = []) + * @method \GuzzleHttp\Promise\Promise getResourcesAsync(array $args = []) + * @method \Aws\Result getTagKeys(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTagKeysAsync(array $args = []) + * @method \Aws\Result getTagValues(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTagValuesAsync(array $args = []) + * @method \Aws\Result tagResources(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourcesAsync(array $args = []) + * @method \Aws\Result untagResources(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourcesAsync(array $args = []) + */ +class ResourceGroupsTaggingAPIClient extends AwsClient {} diff --git a/lib/aws/Aws/ResponseContainerInterface.php b/lib/aws/Aws/ResponseContainerInterface.php new file mode 100644 index 0000000..ef2ae28 --- /dev/null +++ b/lib/aws/Aws/ResponseContainerInterface.php @@ -0,0 +1,13 @@ +<?php + +namespace Aws; + +interface ResponseContainerInterface +{ + /** + * Get the received HTTP response if any. + * + * @return ResponseInterface|null + */ + public function getResponse(); +} \ No newline at end of file diff --git a/lib/aws/Aws/Result.php b/lib/aws/Aws/Result.php new file mode 100644 index 0000000..0e3b373 --- /dev/null +++ b/lib/aws/Aws/Result.php @@ -0,0 +1,57 @@ +<?php +namespace Aws; + +use JmesPath\Env as JmesPath; + +/** + * AWS result. + */ +class Result implements ResultInterface, MonitoringEventsInterface +{ + use HasDataTrait; + use HasMonitoringEventsTrait; + + public function __construct(array $data = []) + { + $this->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 <<<EOT +Model Data +---------- +Data can be retrieved from the model object using the get() method of the +model (e.g., `\$result->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/Aws/ResultInterface.php b/lib/aws/Aws/ResultInterface.php new file mode 100644 index 0000000..18a166a --- /dev/null +++ b/lib/aws/Aws/ResultInterface.php @@ -0,0 +1,54 @@ +<?php +namespace Aws; + +/** + * Represents an AWS result object that is returned from executing an operation. + */ +interface ResultInterface extends \ArrayAccess, \IteratorAggregate, \Countable +{ + /** + * Provides debug information about the result object + * + * @return string + */ + public function __toString(); + + /** + * Convert the result to an array. + * + * @return array + */ + public function toArray(); + + /** + * Check if the model contains a key by name + * + * @param string $name Name of the key to retrieve + * + * @return bool + */ + public function hasKey($name); + + /** + * Get a specific key value from the result model. + * + * @param string $key Key to retrieve. + * + * @return mixed|null Value of the key or NULL if not found. + */ + public function get($key); + + /** + * Returns the result of executing a JMESPath expression on the contents + * of the Result model. + * + * $result = $client->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/Aws/ResultPaginator.php b/lib/aws/Aws/ResultPaginator.php new file mode 100644 index 0000000..62268aa --- /dev/null +++ b/lib/aws/Aws/ResultPaginator.php @@ -0,0 +1,169 @@ +<?php +namespace Aws; + +use GuzzleHttp\Promise; + +/** + * Iterator that yields each page of results of a pageable operation. + */ +class ResultPaginator implements \Iterator +{ + /** @var AwsClientInterface Client performing operations. */ + private $client; + + /** @var string Name of the operation being paginated. */ + private $operation; + + /** @var array Args for the operation. */ + private $args; + + /** @var array Configuration for the paginator. */ + private $config; + + /** @var Result Most recent result from the client. */ + private $result; + + /** @var string|array Next token to use for pagination. */ + private $nextToken; + + /** @var int Number of operations/requests performed. */ + private $requestCount = 0; + + /** + * @param AwsClientInterface $client + * @param string $operation + * @param array $args + * @param array $config + */ + public function __construct( + AwsClientInterface $client, + $operation, + array $args, + array $config + ) { + $this->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, array $nextToken = null) + { + return $this->client->getCommand($this->operation, array_merge($args, ($nextToken ?: []))); + } + + 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_scalar($this->config['output_token']) + ? [$this->config['input_token'] => $this->config['output_token']] + : array_combine($this->config['input_token'], $this->config['output_token']); + + return array_filter(array_map(function ($outputToken) use ($result) { + return $result->search($outputToken); + }, $nextToken)); + } +} diff --git a/lib/aws/Aws/RetryMiddleware.php b/lib/aws/Aws/RetryMiddleware.php new file mode 100644 index 0000000..8e11539 --- /dev/null +++ b/lib/aws/Aws/RetryMiddleware.php @@ -0,0 +1,315 @@ +<?php +namespace Aws; + +use Aws\Exception\AwsException; +use GuzzleHttp\Exception\RequestException; +use Psr\Http\Message\RequestInterface; +use GuzzleHttp\Promise\PromiseInterface; +use GuzzleHttp\Promise; + +/** + * @internal Middleware that retries failures. + */ +class RetryMiddleware +{ + private static $retryStatusCodes = [ + 500 => true, + 502 => true, + 503 => true, + 504 => true + ]; + + private static $retryCodes = [ + // Throttling error + 'RequestLimitExceeded' => true, + 'Throttling' => true, + 'ThrottlingException' => true, + 'ThrottledException' => true, + 'ProvisionedThroughputExceededException' => true, + 'RequestThrottled' => true, + 'BandwidthLimitExceeded' => true, + 'RequestThrottledException' => true, + ]; + + private $decider; + private $delay; + private $nextHandler; + private $collectStats; + + public function __construct( + callable $decider, + callable $delay, + callable $nextHandler, + $collectStats = false + ) { + $this->decider = $decider; + $this->delay = $delay; + $this->nextHandler = $nextHandler; + $this->collectStats = (bool) $collectStats; + } + + /** + * Creates a default AWS retry decider function. + * + * The optional $additionalRetryConfig parameter is an associative array + * that specifies additional retry conditions on top of the ones specified + * by default by the Aws\RetryMiddleware class, with the following keys: + * + * - errorCodes: (string[]) An indexed array of AWS exception codes to retry. + * Optional. + * - statusCodes: (int[]) An indexed array of HTTP status codes to retry. + * Optional. + * - curlErrors: (int[]) An indexed array of Curl error codes to retry. Note + * these should be valid Curl constants. Optional. + * + * @param int $maxRetries + * @param array $additionalRetryConfig + * @return callable + */ + public static function createDefaultDecider( + $maxRetries = 3, + $additionalRetryConfig = [] + ) { + $retryCurlErrors = []; + if (extension_loaded('curl')) { + $retryCurlErrors[CURLE_RECV_ERROR] = true; + } + + return function ( + $retries, + CommandInterface $command, + RequestInterface $request, + ResultInterface $result = null, + $error = null + ) use ($maxRetries, $retryCurlErrors, $additionalRetryConfig) { + // Allow command-level options to override this value + $maxRetries = null !== $command['@retries'] ? + $command['@retries'] + : $maxRetries; + + $isRetryable = self::isRetryable( + $result, + $error, + $retryCurlErrors, + $additionalRetryConfig + ); + + if ($retries >= $maxRetries) { + if (!empty($error) + && $error instanceof AwsException + && $isRetryable + ) { + $error->setMaxRetriesExceeded(); + } + return false; + } + + return $isRetryable; + }; + } + + private static function isRetryable( + $result, + $error, + $retryCurlErrors, + $additionalRetryConfig = [] + ) { + $errorCodes = self::$retryCodes; + if (!empty($additionalRetryConfig['errorCodes']) + && is_array($additionalRetryConfig['errorCodes']) + ) { + foreach($additionalRetryConfig['errorCodes'] as $code) { + $errorCodes[$code] = true; + } + } + + $statusCodes = self::$retryStatusCodes; + if (!empty($additionalRetryConfig['statusCodes']) + && is_array($additionalRetryConfig['statusCodes']) + ) { + foreach($additionalRetryConfig['statusCodes'] as $code) { + $statusCodes[$code] = true; + } + } + + if (!empty($additionalRetryConfig['curlErrors']) + && is_array($additionalRetryConfig['curlErrors']) + ) { + foreach($additionalRetryConfig['curlErrors'] as $code) { + $retryCurlErrors[$code] = true; + } + } + + if (!$error) { + return isset($statusCodes[$result['@metadata']['statusCode']]); + } + + if (!($error instanceof AwsException)) { + return false; + } + + if ($error->isConnectionError()) { + return true; + } + + if (isset($errorCodes[$error->getAwsErrorCode()])) { + return true; + } + + if (isset($statusCodes[$error->getStatusCode()])) { + return true; + } + + if (count($retryCurlErrors) + && ($previous = $error->getPrevious()) + && $previous instanceof RequestException + ) { + if (method_exists($previous, 'getHandlerContext')) { + $context = $previous->getHandlerContext(); + return !empty($context['errno']) + && isset($retryCurlErrors[$context['errno']]); + } + + $message = $previous->getMessage(); + foreach (array_keys($retryCurlErrors) as $curlError) { + if (strpos($message, 'cURL error ' . $curlError . ':') === 0) { + return true; + } + } + } + + return false; + } + + /** + * Delay function that calculates an exponential delay. + * + * Exponential backoff with jitter, 100ms base, 20 sec ceiling + * + * @param $retries - The number of retries that have already been attempted + * + * @return int + * + * @link https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/ + */ + public static function exponentialDelay($retries) + { + return mt_rand(0, (int) min(20000, (int) pow(2, $retries) * 100)); + } + + /** + * @param CommandInterface $command + * @param RequestInterface $request + * + * @return PromiseInterface + */ + public function __invoke( + CommandInterface $command, + RequestInterface $request = null + ) { + $retries = 0; + $requestStats = []; + $monitoringEvents = []; + $handler = $this->nextHandler; + $decider = $this->decider; + $delay = $this->delay; + + $request = $this->addRetryHeader($request, 0, 0); + + $g = function ($value) use ( + $handler, + $decider, + $delay, + $command, + $request, + &$retries, + &$requestStats, + &$monitoringEvents, + &$g + ) { + $this->updateHttpStats($value, $requestStats); + + if ($value instanceof MonitoringEventsInterface) { + $reversedEvents = array_reverse($monitoringEvents); + $monitoringEvents = array_merge($monitoringEvents, $value->getMonitoringEvents()); + foreach ($reversedEvents as $event) { + $value->prependMonitoringEvent($event); + } + } + if ($value instanceof \Exception || $value instanceof \Throwable) { + if (!$decider($retries, $command, $request, null, $value)) { + return Promise\rejection_for( + $this->bindStatsToReturn($value, $requestStats) + ); + } + } elseif ($value instanceof ResultInterface + && !$decider($retries, $command, $request, $value, null) + ) { + return $this->bindStatsToReturn($value, $requestStats); + } + + // Delay fn is called with 0, 1, ... so increment after the call. + $delayBy = $delay($retries++); + $command['@http']['delay'] = $delayBy; + if ($this->collectStats) { + $this->updateStats($retries, $delayBy, $requestStats); + } + + // Update retry header with retry count and delayBy + $request = $this->addRetryHeader($request, $retries, $delayBy); + + return $handler($command, $request)->then($g, $g); + }; + + return $handler($command, $request)->then($g, $g); + } + + private function addRetryHeader($request, $retries, $delayBy) + { + return $request->withHeader('aws-sdk-retry', "{$retries}/{$delayBy}"); + } + + private function updateStats($retries, $delay, array &$stats) + { + if (!isset($stats['total_retry_delay'])) { + $stats['total_retry_delay'] = 0; + } + + $stats['total_retry_delay'] += $delay; + $stats['retries_attempted'] = $retries; + } + + private function updateHttpStats($value, array &$stats) + { + if (empty($stats['http'])) { + $stats['http'] = []; + } + + if ($value instanceof AwsException) { + $resultStats = isset($value->getTransferInfo('http')[0]) + ? $value->getTransferInfo('http')[0] + : []; + $stats['http'] []= $resultStats; + } elseif ($value instanceof ResultInterface) { + $resultStats = isset($value['@metadata']['transferStats']['http'][0]) + ? $value['@metadata']['transferStats']['http'][0] + : []; + $stats['http'] []= $resultStats; + } + } + + private function bindStatsToReturn($return, array $stats) + { + if ($return instanceof ResultInterface) { + if (!isset($return['@metadata'])) { + $return['@metadata'] = []; + } + + $return['@metadata']['transferStats'] = $stats; + } elseif ($return instanceof AwsException) { + $return->setTransferInfo($stats); + } + + return $return; + } +} diff --git a/lib/aws/Aws/RoboMaker/Exception/RoboMakerException.php b/lib/aws/Aws/RoboMaker/Exception/RoboMakerException.php new file mode 100644 index 0000000..4cff3a8 --- /dev/null +++ b/lib/aws/Aws/RoboMaker/Exception/RoboMakerException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\RoboMaker\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS RoboMaker** service. + */ +class RoboMakerException extends AwsException {} diff --git a/lib/aws/Aws/RoboMaker/RoboMakerClient.php b/lib/aws/Aws/RoboMaker/RoboMakerClient.php new file mode 100644 index 0000000..ede8738 --- /dev/null +++ b/lib/aws/Aws/RoboMaker/RoboMakerClient.php @@ -0,0 +1,79 @@ +<?php +namespace Aws\RoboMaker; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS RoboMaker** service. + * @method \Aws\Result batchDescribeSimulationJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchDescribeSimulationJobAsync(array $args = []) + * @method \Aws\Result cancelSimulationJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelSimulationJobAsync(array $args = []) + * @method \Aws\Result createDeploymentJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDeploymentJobAsync(array $args = []) + * @method \Aws\Result createFleet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createFleetAsync(array $args = []) + * @method \Aws\Result createRobot(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRobotAsync(array $args = []) + * @method \Aws\Result createRobotApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRobotApplicationAsync(array $args = []) + * @method \Aws\Result createRobotApplicationVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRobotApplicationVersionAsync(array $args = []) + * @method \Aws\Result createSimulationApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSimulationApplicationAsync(array $args = []) + * @method \Aws\Result createSimulationApplicationVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSimulationApplicationVersionAsync(array $args = []) + * @method \Aws\Result createSimulationJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSimulationJobAsync(array $args = []) + * @method \Aws\Result deleteFleet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteFleetAsync(array $args = []) + * @method \Aws\Result deleteRobot(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRobotAsync(array $args = []) + * @method \Aws\Result deleteRobotApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRobotApplicationAsync(array $args = []) + * @method \Aws\Result deleteSimulationApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSimulationApplicationAsync(array $args = []) + * @method \Aws\Result deregisterRobot(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterRobotAsync(array $args = []) + * @method \Aws\Result describeDeploymentJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDeploymentJobAsync(array $args = []) + * @method \Aws\Result describeFleet(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeFleetAsync(array $args = []) + * @method \Aws\Result describeRobot(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRobotAsync(array $args = []) + * @method \Aws\Result describeRobotApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRobotApplicationAsync(array $args = []) + * @method \Aws\Result describeSimulationApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSimulationApplicationAsync(array $args = []) + * @method \Aws\Result describeSimulationJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSimulationJobAsync(array $args = []) + * @method \Aws\Result listDeploymentJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDeploymentJobsAsync(array $args = []) + * @method \Aws\Result listFleets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listFleetsAsync(array $args = []) + * @method \Aws\Result listRobotApplications(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRobotApplicationsAsync(array $args = []) + * @method \Aws\Result listRobots(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRobotsAsync(array $args = []) + * @method \Aws\Result listSimulationApplications(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSimulationApplicationsAsync(array $args = []) + * @method \Aws\Result listSimulationJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSimulationJobsAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result registerRobot(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerRobotAsync(array $args = []) + * @method \Aws\Result restartSimulationJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise restartSimulationJobAsync(array $args = []) + * @method \Aws\Result syncDeploymentJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise syncDeploymentJobAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateRobotApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRobotApplicationAsync(array $args = []) + * @method \Aws\Result updateSimulationApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSimulationApplicationAsync(array $args = []) + */ +class RoboMakerClient extends AwsClient {} diff --git a/lib/aws/Aws/Route53/Exception/Route53Exception.php b/lib/aws/Aws/Route53/Exception/Route53Exception.php new file mode 100644 index 0000000..5a0ace2 --- /dev/null +++ b/lib/aws/Aws/Route53/Exception/Route53Exception.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Route53\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon Route 53 service. + */ +class Route53Exception extends AwsException {} diff --git a/lib/aws/Aws/Route53/Route53Client.php b/lib/aws/Aws/Route53/Route53Client.php new file mode 100644 index 0000000..72eb5c8 --- /dev/null +++ b/lib/aws/Aws/Route53/Route53Client.php @@ -0,0 +1,152 @@ +<?php +namespace Aws\Route53; + +use Aws\AwsClient; +use Aws\CommandInterface; +use Psr\Http\Message\RequestInterface; + +/** + * This client is used to interact with the **Amazon Route 53** service. + * + * @method \Aws\Result associateVPCWithHostedZone(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateVPCWithHostedZoneAsync(array $args = []) + * @method \Aws\Result changeResourceRecordSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise changeResourceRecordSetsAsync(array $args = []) + * @method \Aws\Result changeTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise changeTagsForResourceAsync(array $args = []) + * @method \Aws\Result createHealthCheck(array $args = []) + * @method \GuzzleHttp\Promise\Promise createHealthCheckAsync(array $args = []) + * @method \Aws\Result createHostedZone(array $args = []) + * @method \GuzzleHttp\Promise\Promise createHostedZoneAsync(array $args = []) + * @method \Aws\Result createQueryLoggingConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise createQueryLoggingConfigAsync(array $args = []) + * @method \Aws\Result createReusableDelegationSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createReusableDelegationSetAsync(array $args = []) + * @method \Aws\Result createTrafficPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTrafficPolicyAsync(array $args = []) + * @method \Aws\Result createTrafficPolicyInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTrafficPolicyInstanceAsync(array $args = []) + * @method \Aws\Result createTrafficPolicyVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTrafficPolicyVersionAsync(array $args = []) + * @method \Aws\Result createVPCAssociationAuthorization(array $args = []) + * @method \GuzzleHttp\Promise\Promise createVPCAssociationAuthorizationAsync(array $args = []) + * @method \Aws\Result deleteHealthCheck(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteHealthCheckAsync(array $args = []) + * @method \Aws\Result deleteHostedZone(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteHostedZoneAsync(array $args = []) + * @method \Aws\Result deleteQueryLoggingConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteQueryLoggingConfigAsync(array $args = []) + * @method \Aws\Result deleteReusableDelegationSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteReusableDelegationSetAsync(array $args = []) + * @method \Aws\Result deleteTrafficPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTrafficPolicyAsync(array $args = []) + * @method \Aws\Result deleteTrafficPolicyInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTrafficPolicyInstanceAsync(array $args = []) + * @method \Aws\Result deleteVPCAssociationAuthorization(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVPCAssociationAuthorizationAsync(array $args = []) + * @method \Aws\Result disassociateVPCFromHostedZone(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateVPCFromHostedZoneAsync(array $args = []) + * @method \Aws\Result getAccountLimit(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAccountLimitAsync(array $args = []) + * @method \Aws\Result getChange(array $args = []) + * @method \GuzzleHttp\Promise\Promise getChangeAsync(array $args = []) + * @method \Aws\Result getCheckerIpRanges(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCheckerIpRangesAsync(array $args = []) + * @method \Aws\Result getGeoLocation(array $args = []) + * @method \GuzzleHttp\Promise\Promise getGeoLocationAsync(array $args = []) + * @method \Aws\Result getHealthCheck(array $args = []) + * @method \GuzzleHttp\Promise\Promise getHealthCheckAsync(array $args = []) + * @method \Aws\Result getHealthCheckCount(array $args = []) + * @method \GuzzleHttp\Promise\Promise getHealthCheckCountAsync(array $args = []) + * @method \Aws\Result getHealthCheckLastFailureReason(array $args = []) + * @method \GuzzleHttp\Promise\Promise getHealthCheckLastFailureReasonAsync(array $args = []) + * @method \Aws\Result getHealthCheckStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getHealthCheckStatusAsync(array $args = []) + * @method \Aws\Result getHostedZone(array $args = []) + * @method \GuzzleHttp\Promise\Promise getHostedZoneAsync(array $args = []) + * @method \Aws\Result getHostedZoneCount(array $args = []) + * @method \GuzzleHttp\Promise\Promise getHostedZoneCountAsync(array $args = []) + * @method \Aws\Result getHostedZoneLimit(array $args = []) + * @method \GuzzleHttp\Promise\Promise getHostedZoneLimitAsync(array $args = []) + * @method \Aws\Result getQueryLoggingConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise getQueryLoggingConfigAsync(array $args = []) + * @method \Aws\Result getReusableDelegationSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getReusableDelegationSetAsync(array $args = []) + * @method \Aws\Result getReusableDelegationSetLimit(array $args = []) + * @method \GuzzleHttp\Promise\Promise getReusableDelegationSetLimitAsync(array $args = []) + * @method \Aws\Result getTrafficPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTrafficPolicyAsync(array $args = []) + * @method \Aws\Result getTrafficPolicyInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTrafficPolicyInstanceAsync(array $args = []) + * @method \Aws\Result getTrafficPolicyInstanceCount(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTrafficPolicyInstanceCountAsync(array $args = []) + * @method \Aws\Result listGeoLocations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listGeoLocationsAsync(array $args = []) + * @method \Aws\Result listHealthChecks(array $args = []) + * @method \GuzzleHttp\Promise\Promise listHealthChecksAsync(array $args = []) + * @method \Aws\Result listHostedZones(array $args = []) + * @method \GuzzleHttp\Promise\Promise listHostedZonesAsync(array $args = []) + * @method \Aws\Result listHostedZonesByName(array $args = []) + * @method \GuzzleHttp\Promise\Promise listHostedZonesByNameAsync(array $args = []) + * @method \Aws\Result listQueryLoggingConfigs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listQueryLoggingConfigsAsync(array $args = []) + * @method \Aws\Result listResourceRecordSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listResourceRecordSetsAsync(array $args = []) + * @method \Aws\Result listReusableDelegationSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listReusableDelegationSetsAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result listTagsForResources(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourcesAsync(array $args = []) + * @method \Aws\Result listTrafficPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTrafficPoliciesAsync(array $args = []) + * @method \Aws\Result listTrafficPolicyInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTrafficPolicyInstancesAsync(array $args = []) + * @method \Aws\Result listTrafficPolicyInstancesByHostedZone(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTrafficPolicyInstancesByHostedZoneAsync(array $args = []) + * @method \Aws\Result listTrafficPolicyInstancesByPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTrafficPolicyInstancesByPolicyAsync(array $args = []) + * @method \Aws\Result listTrafficPolicyVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTrafficPolicyVersionsAsync(array $args = []) + * @method \Aws\Result listVPCAssociationAuthorizations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listVPCAssociationAuthorizationsAsync(array $args = []) + * @method \Aws\Result testDNSAnswer(array $args = []) + * @method \GuzzleHttp\Promise\Promise testDNSAnswerAsync(array $args = []) + * @method \Aws\Result updateHealthCheck(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateHealthCheckAsync(array $args = []) + * @method \Aws\Result updateHostedZoneComment(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateHostedZoneCommentAsync(array $args = []) + * @method \Aws\Result updateTrafficPolicyComment(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateTrafficPolicyCommentAsync(array $args = []) + * @method \Aws\Result updateTrafficPolicyInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateTrafficPolicyInstanceAsync(array $args = []) + */ +class Route53Client extends AwsClient +{ + public function __construct(array $args) + { + parent::__construct($args); + $this->getHandlerList()->appendInit($this->cleanIdFn(), 'route53.clean_id'); + } + + private function cleanIdFn() + { + return function (callable $handler) { + return function (CommandInterface $c, RequestInterface $r = null) use ($handler) { + foreach (['Id', 'HostedZoneId', 'DelegationSetId'] as $clean) { + if ($c->hasParam($clean)) { + $c[$clean] = $this->cleanId($c[$clean]); + } + } + return $handler($c, $r); + }; + }; + } + + private function cleanId($id) + { + static $toClean = ['/hostedzone/', '/change/', '/delegationset/']; + + return str_replace($toClean, '', $id); + } +} diff --git a/lib/aws/Aws/Route53Domains/Exception/Route53DomainsException.php b/lib/aws/Aws/Route53Domains/Exception/Route53DomainsException.php new file mode 100644 index 0000000..9874719 --- /dev/null +++ b/lib/aws/Aws/Route53Domains/Exception/Route53DomainsException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Route53Domains\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon Route 53 Domains service. + */ +class Route53DomainsException extends AwsException {} diff --git a/lib/aws/Aws/Route53Domains/Route53DomainsClient.php b/lib/aws/Aws/Route53Domains/Route53DomainsClient.php new file mode 100644 index 0000000..e478687 --- /dev/null +++ b/lib/aws/Aws/Route53Domains/Route53DomainsClient.php @@ -0,0 +1,58 @@ +<?php +namespace Aws\Route53Domains; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Route 53 Domains** service. + * + * @method \Aws\Result checkDomainAvailability(array $args = []) + * @method \GuzzleHttp\Promise\Promise checkDomainAvailabilityAsync(array $args = []) + * @method \Aws\Result checkDomainTransferability(array $args = []) + * @method \GuzzleHttp\Promise\Promise checkDomainTransferabilityAsync(array $args = []) + * @method \Aws\Result deleteTagsForDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTagsForDomainAsync(array $args = []) + * @method \Aws\Result disableDomainAutoRenew(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableDomainAutoRenewAsync(array $args = []) + * @method \Aws\Result disableDomainTransferLock(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableDomainTransferLockAsync(array $args = []) + * @method \Aws\Result enableDomainAutoRenew(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableDomainAutoRenewAsync(array $args = []) + * @method \Aws\Result enableDomainTransferLock(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableDomainTransferLockAsync(array $args = []) + * @method \Aws\Result getContactReachabilityStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getContactReachabilityStatusAsync(array $args = []) + * @method \Aws\Result getDomainDetail(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDomainDetailAsync(array $args = []) + * @method \Aws\Result getDomainSuggestions(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDomainSuggestionsAsync(array $args = []) + * @method \Aws\Result getOperationDetail(array $args = []) + * @method \GuzzleHttp\Promise\Promise getOperationDetailAsync(array $args = []) + * @method \Aws\Result listDomains(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDomainsAsync(array $args = []) + * @method \Aws\Result listOperations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listOperationsAsync(array $args = []) + * @method \Aws\Result listTagsForDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForDomainAsync(array $args = []) + * @method \Aws\Result registerDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerDomainAsync(array $args = []) + * @method \Aws\Result renewDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise renewDomainAsync(array $args = []) + * @method \Aws\Result resendContactReachabilityEmail(array $args = []) + * @method \GuzzleHttp\Promise\Promise resendContactReachabilityEmailAsync(array $args = []) + * @method \Aws\Result retrieveDomainAuthCode(array $args = []) + * @method \GuzzleHttp\Promise\Promise retrieveDomainAuthCodeAsync(array $args = []) + * @method \Aws\Result transferDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise transferDomainAsync(array $args = []) + * @method \Aws\Result updateDomainContact(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDomainContactAsync(array $args = []) + * @method \Aws\Result updateDomainContactPrivacy(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDomainContactPrivacyAsync(array $args = []) + * @method \Aws\Result updateDomainNameservers(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDomainNameserversAsync(array $args = []) + * @method \Aws\Result updateTagsForDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateTagsForDomainAsync(array $args = []) + * @method \Aws\Result viewBilling(array $args = []) + * @method \GuzzleHttp\Promise\Promise viewBillingAsync(array $args = []) + */ +class Route53DomainsClient extends AwsClient {} diff --git a/lib/aws/Aws/Route53Resolver/Exception/Route53ResolverException.php b/lib/aws/Aws/Route53Resolver/Exception/Route53ResolverException.php new file mode 100644 index 0000000..33b5a55 --- /dev/null +++ b/lib/aws/Aws/Route53Resolver/Exception/Route53ResolverException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Route53Resolver\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Route 53 Resolver** service. + */ +class Route53ResolverException extends AwsException {} diff --git a/lib/aws/Aws/Route53Resolver/Route53ResolverClient.php b/lib/aws/Aws/Route53Resolver/Route53ResolverClient.php new file mode 100644 index 0000000..86aeb2f --- /dev/null +++ b/lib/aws/Aws/Route53Resolver/Route53ResolverClient.php @@ -0,0 +1,53 @@ +<?php +namespace Aws\Route53Resolver; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Route 53 Resolver** service. + * @method \Aws\Result associateResolverEndpointIpAddress(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateResolverEndpointIpAddressAsync(array $args = []) + * @method \Aws\Result associateResolverRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateResolverRuleAsync(array $args = []) + * @method \Aws\Result createResolverEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise createResolverEndpointAsync(array $args = []) + * @method \Aws\Result createResolverRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise createResolverRuleAsync(array $args = []) + * @method \Aws\Result deleteResolverEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteResolverEndpointAsync(array $args = []) + * @method \Aws\Result deleteResolverRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteResolverRuleAsync(array $args = []) + * @method \Aws\Result disassociateResolverEndpointIpAddress(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateResolverEndpointIpAddressAsync(array $args = []) + * @method \Aws\Result disassociateResolverRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateResolverRuleAsync(array $args = []) + * @method \Aws\Result getResolverEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise getResolverEndpointAsync(array $args = []) + * @method \Aws\Result getResolverRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise getResolverRuleAsync(array $args = []) + * @method \Aws\Result getResolverRuleAssociation(array $args = []) + * @method \GuzzleHttp\Promise\Promise getResolverRuleAssociationAsync(array $args = []) + * @method \Aws\Result getResolverRulePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getResolverRulePolicyAsync(array $args = []) + * @method \Aws\Result listResolverEndpointIpAddresses(array $args = []) + * @method \GuzzleHttp\Promise\Promise listResolverEndpointIpAddressesAsync(array $args = []) + * @method \Aws\Result listResolverEndpoints(array $args = []) + * @method \GuzzleHttp\Promise\Promise listResolverEndpointsAsync(array $args = []) + * @method \Aws\Result listResolverRuleAssociations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listResolverRuleAssociationsAsync(array $args = []) + * @method \Aws\Result listResolverRules(array $args = []) + * @method \GuzzleHttp\Promise\Promise listResolverRulesAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result putResolverRulePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putResolverRulePolicyAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateResolverEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateResolverEndpointAsync(array $args = []) + * @method \Aws\Result updateResolverRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateResolverRuleAsync(array $args = []) + */ +class Route53ResolverClient extends AwsClient {} diff --git a/lib/aws/Aws/S3/AmbiguousSuccessParser.php b/lib/aws/Aws/S3/AmbiguousSuccessParser.php new file mode 100644 index 0000000..b3537a8 --- /dev/null +++ b/lib/aws/Aws/S3/AmbiguousSuccessParser.php @@ -0,0 +1,68 @@ +<?php +namespace Aws\S3; + +use Aws\Api\Parser\AbstractParser; +use Aws\Api\StructureShape; +use Aws\CommandInterface; +use Aws\Exception\AwsException; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\StreamInterface; + +/** + * Converts errors returned with a status code of 200 to a retryable error type. + * + * @internal + */ +class AmbiguousSuccessParser extends AbstractParser +{ + private static $ambiguousSuccesses = [ + 'UploadPartCopy' => true, + 'CopyObject' => true, + 'CompleteMultipartUpload' => true, + ]; + + /** @var callable */ + private $errorParser; + /** @var string */ + private $exceptionClass; + + public function __construct( + callable $parser, + callable $errorParser, + $exceptionClass = AwsException::class + ) { + $this->parser = $parser; + $this->errorParser = $errorParser; + $this->exceptionClass = $exceptionClass; + } + + public function __invoke( + CommandInterface $command, + ResponseInterface $response + ) { + if (200 === $response->getStatusCode() + && isset(self::$ambiguousSuccesses[$command->getName()]) + ) { + $errorParser = $this->errorParser; + $parsed = $errorParser($response); + if (isset($parsed['code']) && isset($parsed['message'])) { + throw new $this->exceptionClass( + $parsed['message'], + $command, + ['connection_error' => true] + ); + } + } + + $fn = $this->parser; + return $fn($command, $response); + } + + public function parseMemberFromStream( + StreamInterface $stream, + StructureShape $member, + $response + ) { + return $this->parser->parseMemberFromStream($stream, $member, $response); + } +} diff --git a/lib/aws/Aws/S3/ApplyChecksumMiddleware.php b/lib/aws/Aws/S3/ApplyChecksumMiddleware.php new file mode 100644 index 0000000..001da02 --- /dev/null +++ b/lib/aws/Aws/S3/ApplyChecksumMiddleware.php @@ -0,0 +1,78 @@ +<?php +namespace Aws\S3; + +use Aws\CommandInterface; +use GuzzleHttp\Psr7; +use Psr\Http\Message\RequestInterface; + +/** + * Apply required or optional MD5s to requests before sending. + * + * IMPORTANT: This middleware must be added after the "build" step. + * + * @internal + */ +class ApplyChecksumMiddleware +{ + private static $md5 = [ + 'DeleteObjects', + 'PutBucketCors', + 'PutBucketLifecycle', + 'PutBucketLifecycleConfiguration', + 'PutBucketPolicy', + 'PutBucketTagging', + 'PutBucketReplication', + 'PutObjectLegalHold', + 'PutObjectRetention', + 'PutObjectLockConfiguration', + ]; + + private static $sha256 = [ + 'PutObject', + 'UploadPart', + ]; + + 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 + ) { + $next = $this->nextHandler; + $name = $command->getName(); + $body = $request->getBody(); + + if (in_array($name, self::$md5) && !$request->hasHeader('Content-MD5')) { + // Set the content MD5 header for operations that require it. + $request = $request->withHeader( + 'Content-MD5', + base64_encode(Psr7\hash($body, 'md5', true)) + ); + } elseif (in_array($name, self::$sha256) && $command['ContentSHA256']) { + // Set the content hash header if provided in the parameters. + $request = $request->withHeader( + 'X-Amz-Content-Sha256', + $command['ContentSHA256'] + ); + } + + return $next($command, $request); + } +} diff --git a/lib/aws/Aws/S3/BatchDelete.php b/lib/aws/Aws/S3/BatchDelete.php new file mode 100644 index 0000000..5ee6a19 --- /dev/null +++ b/lib/aws/Aws/S3/BatchDelete.php @@ -0,0 +1,237 @@ +<?php +namespace Aws\S3; + +use Aws\AwsClientInterface; +use Aws\S3\Exception\DeleteMultipleObjectsException; +use GuzzleHttp\Promise; +use GuzzleHttp\Promise\PromisorInterface; +use GuzzleHttp\Promise\PromiseInterface; + +/** + * Efficiently deletes many objects from a single Amazon S3 bucket using an + * iterator that yields keys. Deletes are made using the DeleteObjects API + * operation. + * + * $s3 = new Aws\S3\Client([ + * 'region' => '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 = []; + if (is_array($result['Contents'])) { + 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 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/Aws/S3/BucketEndpointMiddleware.php b/lib/aws/Aws/S3/BucketEndpointMiddleware.php new file mode 100644 index 0000000..2e74b5f --- /dev/null +++ b/lib/aws/Aws/S3/BucketEndpointMiddleware.php @@ -0,0 +1,75 @@ +<?php +namespace Aws\S3; + +use Aws\CommandInterface; +use Psr\Http\Message\RequestInterface; + +/** + * Used to update the host used for S3 requests in the case of using a + * "bucket endpoint" or CNAME bucket. + * + * IMPORTANT: this middleware must be added after the "build" step. + * + * @internal + */ +class BucketEndpointMiddleware +{ + private static $exclusions = ['GetBucketLocation' => 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/Aws/S3/Crypto/CryptoParamsTrait.php b/lib/aws/Aws/S3/Crypto/CryptoParamsTrait.php new file mode 100644 index 0000000..57253a4 --- /dev/null +++ b/lib/aws/Aws/S3/Crypto/CryptoParamsTrait.php @@ -0,0 +1,75 @@ +<?php +namespace Aws\S3\Crypto; + +use Aws\Crypto\MaterialsProvider; +use Aws\Crypto\MetadataEnvelope; +use Aws\Crypto\MetadataStrategyInterface; + +trait CryptoParamsTrait +{ + protected function getMaterialsProvider(array $args) + { + if ($args['@MaterialsProvider'] instanceof MaterialsProvider) { + return $args['@MaterialsProvider']; + } + + throw new \InvalidArgumentException('An instance of MaterialsProvider' + . ' must be passed in the "MaterialsProvider" field.'); + } + + protected function getInstructionFileSuffix(array $args) + { + return !empty($args['@InstructionFileSuffix']) + ? $args['@InstructionFileSuffix'] + : $this->instructionFileSuffix; + } + + protected function determineGetObjectStrategy( + $result, + $instructionFileSuffix + ) { + if (isset($result['Metadata'][MetadataEnvelope::CONTENT_KEY_V2_HEADER])) { + return new HeadersMetadataStrategy(); + } + + return new InstructionFileMetadataStrategy( + $this->client, + $instructionFileSuffix + ); + } + + protected function getMetadataStrategy(array $args, $instructionFileSuffix) + { + if (!empty($args['@MetadataStrategy'])) { + if ($args['@MetadataStrategy'] instanceof MetadataStrategyInterface) { + return $args['@MetadataStrategy']; + } + + if (is_string($args['@MetadataStrategy'])) { + switch ($args['@MetadataStrategy']) { + case HeadersMetadataStrategy::class: + return new HeadersMetadataStrategy(); + case InstructionFileMetadataStrategy::class: + return new InstructionFileMetadataStrategy( + $this->client, + $instructionFileSuffix + ); + default: + throw new \InvalidArgumentException('Could not match the' + . ' specified string in "MetadataStrategy" to a' + . ' predefined strategy.'); + } + } else { + throw new \InvalidArgumentException('The metadata strategy that' + . ' was passed to "MetadataStrategy" was unrecognized.'); + } + } elseif ($instructionFileSuffix) { + return new InstructionFileMetadataStrategy( + $this->client, + $instructionFileSuffix + ); + } + + return null; + } +} diff --git a/lib/aws/Aws/S3/Crypto/HeadersMetadataStrategy.php b/lib/aws/Aws/S3/Crypto/HeadersMetadataStrategy.php new file mode 100644 index 0000000..405d982 --- /dev/null +++ b/lib/aws/Aws/S3/Crypto/HeadersMetadataStrategy.php @@ -0,0 +1,52 @@ +<?php +namespace Aws\S3\Crypto; + +use \Aws\Crypto\MetadataStrategyInterface; +use \Aws\Crypto\MetadataEnvelope; + +class HeadersMetadataStrategy implements MetadataStrategyInterface +{ + /** + * Places the information in the MetadataEnvelope in to the Meatadata for + * the PutObject request of the encrypted object. + * + * @param MetadataEnvelope $envelope Encryption data to save according to + * the strategy. + * @param array $args Arguments for PutObject that can be manipulated to + * store strategy related information. + * + * @return array Updated arguments for PutObject. + */ + public function save(MetadataEnvelope $envelope, array $args) + { + foreach ($envelope as $header=>$value) { + $args['Metadata'][$header] = $value; + } + + return $args; + } + + /** + * Generates a MetadataEnvelope according to the Metadata headers from the + * GetObject result. + * + * @param array $args Arguments from Command and Result that contains + * S3 Object information, relevant headers, and command + * configuration. + * + * @return MetadataEnvelope + */ + public function load(array $args) + { + $envelope = new MetadataEnvelope(); + $constantValues = MetadataEnvelope::getConstantValues(); + + foreach ($constantValues as $constant) { + if (!empty($args['Metadata'][$constant])) { + $envelope[$constant] = $args['Metadata'][$constant]; + } + } + + return $envelope; + } +} diff --git a/lib/aws/Aws/S3/Crypto/InstructionFileMetadataStrategy.php b/lib/aws/Aws/S3/Crypto/InstructionFileMetadataStrategy.php new file mode 100644 index 0000000..5065928 --- /dev/null +++ b/lib/aws/Aws/S3/Crypto/InstructionFileMetadataStrategy.php @@ -0,0 +1,90 @@ +<?php +namespace Aws\S3\Crypto; + +use \Aws\Crypto\MetadataStrategyInterface; +use \Aws\Crypto\MetadataEnvelope; +use \Aws\S3\S3Client; + +/** + * Stores and reads encryption MetadataEnvelope information in a file on Amazon + * S3. + * + * A file with the contents of a MetadataEnvelope will be created or read from + * alongside the base file on Amazon S3. The provided client will be used for + * reading or writing this object. A specified suffix (default of '.instruction' + * will be applied to each of the operations involved with the instruction file. + * + * If there is a failure after an instruction file has been uploaded, it will + * not be automatically deleted. + */ +class InstructionFileMetadataStrategy implements MetadataStrategyInterface +{ + const DEFAULT_FILE_SUFFIX = '.instruction'; + + private $client; + private $suffix; + + /** + * @param S3Client $client Client for use in uploading the instruction file. + * @param string|null $suffix Optional override suffix for instruction file + * object keys. + */ + public function __construct(S3Client $client, $suffix = null) + { + $this->suffix = empty($suffix) + ? self::DEFAULT_FILE_SUFFIX + : $suffix; + $this->client = $client; + } + + /** + * Places the information in the MetadataEnvelope to a location on S3. + * + * @param MetadataEnvelope $envelope Encryption data to save according to + * the strategy. + * @param array $args Starting arguments for PutObject, used for saving + * extra the instruction file. + * + * @return array Updated arguments for PutObject. + */ + public function save(MetadataEnvelope $envelope, array $args) + { + $this->client->putObject([ + 'Bucket' => $args['Bucket'], + 'Key' => $args['Key'] . $this->suffix, + 'Body' => json_encode($envelope) + ]); + + return $args; + } + + /** + * Uses the strategy's client to retrieve the instruction file from S3 and generates + * a MetadataEnvelope from its contents. + * + * @param array $args Arguments from Command and Result that contains + * S3 Object information, relevant headers, and command + * configuration. + * + * @return MetadataEnvelope + */ + public function load(array $args) + { + $result = $this->client->getObject([ + 'Bucket' => $args['Bucket'], + 'Key' => $args['Key'] . $this->suffix + ]); + + $metadataHeaders = json_decode($result['Body'], true); + $envelope = new MetadataEnvelope(); + $constantValues = MetadataEnvelope::getConstantValues(); + + foreach ($constantValues as $constant) { + if (!empty($metadataHeaders[$constant])) { + $envelope[$constant] = $metadataHeaders[$constant]; + } + } + + return $envelope; + } +} diff --git a/lib/aws/Aws/S3/Crypto/S3EncryptionClient.php b/lib/aws/Aws/S3/Crypto/S3EncryptionClient.php new file mode 100644 index 0000000..71e80b2 --- /dev/null +++ b/lib/aws/Aws/S3/Crypto/S3EncryptionClient.php @@ -0,0 +1,317 @@ +<?php +namespace Aws\S3\Crypto; + +use Aws\HashingStream; +use Aws\PhpHash; +use Aws\Crypto\AbstractCryptoClient; +use Aws\Crypto\EncryptionTrait; +use Aws\Crypto\DecryptionTrait; +use Aws\Crypto\MetadataEnvelope; +use Aws\Crypto\MaterialsProvider; +use Aws\Crypto\Cipher\CipherBuilderTrait; +use Aws\S3\S3Client; +use GuzzleHttp\Promise; +use GuzzleHttp\Promise\PromiseInterface; +use GuzzleHttp\Psr7; + +/** + * Provides a wrapper for an S3Client that supplies functionality to encrypt + * data on putObject[Async] calls and decrypt data on getObject[Async] calls. + */ +class S3EncryptionClient extends AbstractCryptoClient +{ + use EncryptionTrait, DecryptionTrait, CipherBuilderTrait, CryptoParamsTrait; + + private $client; + private $instructionFileSuffix; + + /** + * @param S3Client $client The S3Client to be used for true uploading and + * retrieving objects from S3 when using the + * encryption client. + * @param string|null $instructionFileSuffix Suffix for a client wide + * default when using instruction + * files for metadata storage. + */ + public function __construct( + S3Client $client, + $instructionFileSuffix = null + ) { + $this->client = $client; + $this->instructionFileSuffix = $instructionFileSuffix; + } + + private static function getDefaultStrategy() + { + return new HeadersMetadataStrategy(); + } + + /** + * Encrypts the data in the 'Body' field of $args and promises to upload it + * to the specified location on S3. + * + * @param array $args Arguments for encrypting an object and uploading it + * to S3 via PutObject. + * + * The required configuration arguments are as follows: + * + * - @MaterialsProvider: (MaterialsProvider) Provides Cek, Iv, and Cek + * encrypting/decrypting for encryption metadata. + * - @CipherOptions: (array) Cipher options for encrypting data. Only the + * Cipher option is required. Accepts the following: + * - Cipher: (string) cbc|gcm + * See also: AbstractCryptoClient::$supportedCiphers + * - KeySize: (int) 128|192|256 + * See also: MaterialsProvider::$supportedKeySizes + * - Aad: (string) Additional authentication data. This option is + * passed directly to OpenSSL when using gcm. It is ignored when + * using cbc. + * + * The optional configuration arguments are as follows: + * + * - @MetadataStrategy: (MetadataStrategy|string|null) Strategy for storing + * MetadataEnvelope information. Defaults to using a + * HeadersMetadataStrategy. Can either be a class implementing + * MetadataStrategy, a class name of a predefined strategy, or empty/null + * to default. + * - @InstructionFileSuffix: (string|null) Suffix used when writing to an + * instruction file if using an InstructionFileMetadataHandler. + * + * @return PromiseInterface + * + * @throws \InvalidArgumentException Thrown when arguments above are not + * passed or are passed incorrectly. + */ + public function putObjectAsync(array $args) + { + $provider = $this->getMaterialsProvider($args); + unset($args['@MaterialsProvider']); + + $instructionFileSuffix = $this->getInstructionFileSuffix($args); + unset($args['@InstructionFileSuffix']); + + $strategy = $this->getMetadataStrategy($args, $instructionFileSuffix); + unset($args['@MetadataStrategy']); + + $envelope = new MetadataEnvelope(); + + return Promise\promise_for($this->encrypt( + Psr7\stream_for($args['Body']), + $args['@CipherOptions'] ?: [], + $provider, + $envelope + ))->then( + function ($encryptedBodyStream) use ($args) { + $hash = new PhpHash('sha256'); + $hashingEncryptedBodyStream = new HashingStream( + $encryptedBodyStream, + $hash, + self::getContentShaDecorator($args) + ); + return [$hashingEncryptedBodyStream, $args]; + } + )->then( + function ($putObjectContents) use ($strategy, $envelope) { + list($bodyStream, $args) = $putObjectContents; + if ($strategy === null) { + $strategy = self::getDefaultStrategy(); + } + + $updatedArgs = $strategy->save($envelope, $args); + $updatedArgs['Body'] = $bodyStream; + return $updatedArgs; + } + )->then( + function ($args) { + unset($args['@CipherOptions']); + return $this->client->putObjectAsync($args); + } + ); + } + + private static function getContentShaDecorator(&$args) + { + return function ($hash) use (&$args) { + $args['ContentSHA256'] = bin2hex($hash); + }; + } + + /** + * Encrypts the data in the 'Body' field of $args and uploads it to the + * specified location on S3. + * + * @param array $args Arguments for encrypting an object and uploading it + * to S3 via PutObject. + * + * The required configuration arguments are as follows: + * + * - @MaterialsProvider: (MaterialsProvider) Provides Cek, Iv, and Cek + * encrypting/decrypting for encryption metadata. + * - @CipherOptions: (array) Cipher options for encrypting data. A Cipher + * is required. Accepts the following options: + * - Cipher: (string) cbc|gcm + * See also: AbstractCryptoClient::$supportedCiphers + * - KeySize: (int) 128|192|256 + * See also: MaterialsProvider::$supportedKeySizes + * - Aad: (string) Additional authentication data. This option is + * passed directly to OpenSSL when using gcm. It is ignored when + * using cbc. + * + * The optional configuration arguments are as follows: + * + * - @MetadataStrategy: (MetadataStrategy|string|null) Strategy for storing + * MetadataEnvelope information. Defaults to using a + * HeadersMetadataStrategy. Can either be a class implementing + * MetadataStrategy, a class name of a predefined strategy, or empty/null + * to default. + * - @InstructionFileSuffix: (string|null) Suffix used when writing to an + * instruction file if an using an InstructionFileMetadataHandler was + * determined. + * + * @return \Aws\Result PutObject call result with the details of uploading + * the encrypted file. + * + * @throws \InvalidArgumentException Thrown when arguments above are not + * passed or are passed incorrectly. + */ + public function putObject(array $args) + { + return $this->putObjectAsync($args)->wait(); + } + + /** + * Promises to retrieve an object from S3 and decrypt the data in the + * 'Body' field. + * + * @param array $args Arguments for retrieving an object from S3 via + * GetObject and decrypting it. + * + * The required configuration argument is as follows: + * + * - @MaterialsProvider: (MaterialsProvider) Provides Cek, Iv, and Cek + * encrypting/decrypting for decryption metadata. May have data loaded + * from the MetadataEnvelope upon decryption. + * + * The optional configuration arguments are as follows: + * + * - SaveAs: (string) The path to a file on disk to save the decrypted + * object data. This will be handled by file_put_contents instead of the + * Guzzle sink. + * + * - @MetadataStrategy: (MetadataStrategy|string|null) Strategy for reading + * MetadataEnvelope information. Defaults to determining based on object + * response headers. Can either be a class implementing MetadataStrategy, + * a class name of a predefined strategy, or empty/null to default. + * - @InstructionFileSuffix: (string) Suffix used when looking for an + * instruction file if an InstructionFileMetadataHandler is being used. + * - @CipherOptions: (array) Cipher options for decrypting data. A Cipher + * is required. Accepts the following options: + * - Aad: (string) Additional authentication data. This option is + * passed directly to OpenSSL when using gcm. It is ignored when + * using cbc. + * + * @return PromiseInterface + * + * @throws \InvalidArgumentException Thrown when required arguments are not + * passed or are passed incorrectly. + */ + public function getObjectAsync(array $args) + { + $provider = $this->getMaterialsProvider($args); + unset($args['@MaterialsProvider']); + + $instructionFileSuffix = $this->getInstructionFileSuffix($args); + unset($args['@InstructionFileSuffix']); + + $strategy = $this->getMetadataStrategy($args, $instructionFileSuffix); + unset($args['@MetadataStrategy']); + + $saveAs = null; + if (!empty($args['SaveAs'])) { + $saveAs = $args['SaveAs']; + } + + $promise = $this->client->getObjectAsync($args) + ->then( + function ($result) use ( + $provider, + $instructionFileSuffix, + $strategy, + $args + ) { + if ($strategy === null) { + $strategy = $this->determineGetObjectStrategy( + $result, + $instructionFileSuffix + ); + } + + $envelope = $strategy->load($args + [ + 'Metadata' => $result['Metadata'] + ]); + + $provider = $provider->fromDecryptionEnvelope($envelope); + + $result['Body'] = $this->decrypt( + $result['Body'], + $provider, + $envelope, + isset($args['@CipherOptions']) + ? $args['@CipherOptions'] + : [] + ); + return $result; + } + )->then( + function ($result) use ($saveAs) { + if (!empty($saveAs)) { + file_put_contents( + $saveAs, + (string)$result['Body'], + LOCK_EX + ); + } + return $result; + } + ); + + return $promise; + } + + /** + * Retrieves an object from S3 and decrypts the data in the 'Body' field. + * + * @param array $args Arguments for retrieving an object from S3 via + * GetObject and decrypting it. + * + * The required configuration argument is as follows: + * + * - @MaterialsProvider: (MaterialsProvider) Provides Cek, Iv, and Cek + * encrypting/decrypting for decryption metadata. May have data loaded + * from the MetadataEnvelope upon decryption. + * + * The optional configuration arguments are as follows: + * + * - SaveAs: (string) The path to a file on disk to save the decrypted + * object data. This will be handled by file_put_contents instead of the + * Guzzle sink. + * - @InstructionFileSuffix: (string|null) Suffix used when looking for an + * instruction file if an InstructionFileMetadataHandler was detected. + * - @CipherOptions: (array) Cipher options for encrypting data. A Cipher + * is required. Accepts the following options: + * - Aad: (string) Additional authentication data. This option is + * passed directly to OpenSSL when using gcm. It is ignored when + * using cbc. + * + * @return \Aws\Result GetObject call result with the 'Body' field + * wrapped in a decryption stream with its metadata + * information. + * + * @throws \InvalidArgumentException Thrown when arguments above are not + * passed or are passed incorrectly. + */ + public function getObject(array $args) + { + return $this->getObjectAsync($args)->wait(); + } +} diff --git a/lib/aws/Aws/S3/Crypto/S3EncryptionMultipartUploader.php b/lib/aws/Aws/S3/Crypto/S3EncryptionMultipartUploader.php new file mode 100644 index 0000000..d9f2e7d --- /dev/null +++ b/lib/aws/Aws/S3/Crypto/S3EncryptionMultipartUploader.php @@ -0,0 +1,157 @@ +<?php +namespace Aws\S3\Crypto; + +use Aws\Crypto\AbstractCryptoClient; +use Aws\Crypto\EncryptionTrait; +use Aws\Crypto\MetadataEnvelope; +use Aws\Crypto\Cipher\CipherBuilderTrait; +use Aws\S3\MultipartUploader; +use Aws\S3\S3ClientInterface; +use GuzzleHttp\Promise; + +/** + * Encapsulates the execution of a multipart upload of an encrypted object to S3. + */ +class S3EncryptionMultipartUploader extends MultipartUploader +{ + use EncryptionTrait, CipherBuilderTrait, CryptoParamsTrait; + + /** + * Returns if the passed cipher name is supported for encryption by the SDK. + * + * @param string $cipherName The name of a cipher to verify is registered. + * + * @return bool If the cipher passed is in our supported list. + */ + public static function isSupportedCipher($cipherName) + { + return in_array($cipherName, AbstractCryptoClient::$supportedCiphers); + } + + private $provider; + private $instructionFileSuffix; + private $strategy; + + /** + * Creates a multipart upload for an S3 object after encrypting it. + * + * The required configuration options are as follows: + * + * - @MaterialsProvider: (MaterialsProvider) Provides Cek, Iv, and Cek + * encrypting/decrypting for encryption metadata. + * - @CipherOptions: (array) Cipher options for encrypting data. A Cipher + * is required. Accepts the following options: + * - Cipher: (string) cbc|gcm + * See also: AbstractCryptoClient::$supportedCiphers + * - KeySize: (int) 128|192|256 + * See also: MaterialsProvider::$supportedKeySizes + * - Aad: (string) Additional authentication data. This option is + * passed directly to OpenSSL when using gcm. It is ignored when + * using cbc. + * - bucket: (string) Name of the bucket to which the object is + * being uploaded. + * - key: (string) Key to use for the object being uploaded. + * + * The optional configuration arguments are as follows: + * + * - @MetadataStrategy: (MetadataStrategy|string|null) Strategy for storing + * MetadataEnvelope information. Defaults to using a + * HeadersMetadataStrategy. Can either be a class implementing + * MetadataStrategy, a class name of a predefined strategy, or empty/null + * to default. + * - @InstructionFileSuffix: (string|null) Suffix used when writing to an + * instruction file if an using an InstructionFileMetadataHandler was + * determined. + * - 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) {...}`. + * - concurrency: (int, default=int(5)) Maximum number of concurrent + * `UploadPart` operations allowed during the multipart upload. + * - params: (array) An array of key/value parameters that will be applied + * to each of the sub-commands run by the uploader as a base. + * Auto-calculated options will override these parameters. If you need + * more granularity over parameters to each sub-command, use the before_* + * options detailed above to update the commands directly. + * - 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 S3ClientInterface $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( + S3ClientInterface $client, + $source, + array $config = [] + ) { + $this->client = $client; + $config['params'] = []; + if (!empty($config['bucket'])) { + $config['params']['Bucket'] = $config['bucket']; + } + if (!empty($config['key'])) { + $config['params']['Key'] = $config['key']; + } + + $this->provider = $this->getMaterialsProvider($config); + unset($config['@MaterialsProvider']); + + $this->instructionFileSuffix = $this->getInstructionFileSuffix($config); + unset($config['@InstructionFileSuffix']); + $this->strategy = $this->getMetadataStrategy( + $config, + $this->instructionFileSuffix + ); + if ($this->strategy === null) { + $this->strategy = self::getDefaultStrategy(); + } + unset($config['@MetadataStrategy']); + + $config['prepare_data_source'] = $this->getEncryptingDataPreparer(); + + parent::__construct($client, $source, $config); + } + + private static function getDefaultStrategy() + { + return new HeadersMetadataStrategy(); + } + + private function getEncryptingDataPreparer() + { + return function() { + // Defer encryption work until promise is executed + $envelope = new MetadataEnvelope(); + + list($this->source, $params) = Promise\promise_for($this->encrypt( + $this->source, + $this->config['@cipheroptions'] ?: [], + $this->provider, + $envelope + ))->then( + function ($bodyStream) use ($envelope) { + $params = $this->strategy->save( + $envelope, + $this->config['params'] + ); + return [$bodyStream, $params]; + } + )->wait(); + + $this->source->rewind(); + $this->config['params'] = $params; + }; + } +} \ No newline at end of file diff --git a/lib/aws/Aws/S3/Exception/DeleteMultipleObjectsException.php b/lib/aws/Aws/S3/Exception/DeleteMultipleObjectsException.php new file mode 100644 index 0000000..5b4c289 --- /dev/null +++ b/lib/aws/Aws/S3/Exception/DeleteMultipleObjectsException.php @@ -0,0 +1,68 @@ +<?php +namespace Aws\S3\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; + +/** + * Exception thrown when errors occur while deleting objects using a + * {@see S3\BatchDelete} object. + */ +class DeleteMultipleObjectsException extends \Exception implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; + + private $deleted = []; + private $errors = []; + + /** + * @param array $deleted Array of successfully deleted keys + * @param array $errors Array of errors that were encountered + */ + public function __construct(array $deleted, array $errors) + { + $this->deleted = array_values($deleted); + $this->errors = array_values($errors); + parent::__construct('Unable to delete certain keys when executing a' + . ' DeleteMultipleObjects request: ' + . self::createMessageFromErrors($errors)); + } + + /** + * Create a single error message from multiple errors. + * + * @param array $errors Errors encountered + * + * @return string + */ + public static function createMessageFromErrors(array $errors) + { + return "\n- " . implode("\n- ", array_map(function ($key) { + return json_encode($key); + }, $errors)); + } + + /** + * Get the errored objects + * + * @return array Returns an array of associative arrays, each containing + * a 'Code', 'Message', and 'Key' key. + */ + public function getErrors() + { + 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/Aws/S3/Exception/PermanentRedirectException.php b/lib/aws/Aws/S3/Exception/PermanentRedirectException.php new file mode 100644 index 0000000..67d916e --- /dev/null +++ b/lib/aws/Aws/S3/Exception/PermanentRedirectException.php @@ -0,0 +1,4 @@ +<?php +namespace Aws\S3\Exception; + +class PermanentRedirectException extends S3Exception {} diff --git a/lib/aws/Aws/S3/Exception/S3Exception.php b/lib/aws/Aws/S3/Exception/S3Exception.php new file mode 100644 index 0000000..7ee3caa --- /dev/null +++ b/lib/aws/Aws/S3/Exception/S3Exception.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\S3\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon Simple Storage Service. + */ +class S3Exception extends AwsException {} diff --git a/lib/aws/Aws/S3/Exception/S3MultipartUploadException.php b/lib/aws/Aws/S3/Exception/S3MultipartUploadException.php new file mode 100644 index 0000000..957e472 --- /dev/null +++ b/lib/aws/Aws/S3/Exception/S3MultipartUploadException.php @@ -0,0 +1,84 @@ +<?php +namespace Aws\S3\Exception; + +use Aws\CommandInterface; +use Aws\Exception\AwsException; +use Aws\Multipart\UploadState; + +class S3MultipartUploadException extends \Aws\Exception\MultipartUploadException +{ + /** @var string Bucket of the transfer object */ + private $bucket; + /** @var string Key of the transfer object */ + private $key; + /** @var string Source file name of the transfer object */ + private $filename; + + /** + * @param UploadState $state Upload state at time of the exception. + * @param \Exception|array $prev Exception being thrown. Could be an array of + * AwsExceptions being thrown when uploading parts + * for one object, or an instance of AwsException + * for a specific Multipart error being thrown in + * the MultipartUpload process. + */ + public function __construct(UploadState $state, $prev = null) { + if (is_array($prev) && $error = $prev[key($prev)]) { + $this->collectPathInfo($error->getCommand()); + } elseif ($prev instanceof AwsException) { + $this->collectPathInfo($prev->getCommand()); + } + parent::__construct($state, $prev); + } + + /** + * Get the Bucket information of the transfer object + * + * @return string|null Returns null when 'Bucket' information + * is unavailable. + */ + public function getBucket() + { + return $this->bucket; + } + + /** + * Get the Key information of the transfer object + * + * @return string|null Returns null when 'Key' information + * is unavailable. + */ + public function getKey() + { + return $this->key; + } + + /** + * Get the source file name of the transfer object + * + * @return string|null Returns null when metadata of the stream + * wrapped in 'Body' parameter is unavailable. + */ + public function getSourceFileName() + { + return $this->filename; + } + + /** + * Collect file path information when accessible. (Bucket, Key) + * + * @param CommandInterface $cmd + */ + private function collectPathInfo(CommandInterface $cmd) + { + if (empty($this->bucket) && isset($cmd['Bucket'])) { + $this->bucket = $cmd['Bucket']; + } + if (empty($this->key) && isset($cmd['Key'])) { + $this->key = $cmd['Key']; + } + if (empty($this->filename) && isset($cmd['Body'])) { + $this->filename = $cmd['Body']->getMetadata('uri'); + } + } +} diff --git a/lib/aws/Aws/S3/GetBucketLocationParser.php b/lib/aws/Aws/S3/GetBucketLocationParser.php new file mode 100644 index 0000000..94aee69 --- /dev/null +++ b/lib/aws/Aws/S3/GetBucketLocationParser.php @@ -0,0 +1,49 @@ +<?php +namespace Aws\S3; + +use Aws\Api\Parser\AbstractParser; +use Aws\Api\StructureShape; +use Aws\CommandInterface; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\StreamInterface; + +/** + * @internal Decorates a parser for the S3 service to correctly handle the + * GetBucketLocation operation. + */ +class GetBucketLocationParser extends AbstractParser +{ + /** + * @param callable $parser Parser to wrap. + */ + public function __construct(callable $parser) + { + $this->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; + } + + public function parseMemberFromStream( + StreamInterface $stream, + StructureShape $member, + $response + ) { + return $this->parser->parseMemberFromStream($stream, $member, $response); + } +} diff --git a/lib/aws/Aws/S3/MultipartCopy.php b/lib/aws/Aws/S3/MultipartCopy.php new file mode 100644 index 0000000..72cfe9f --- /dev/null +++ b/lib/aws/Aws/S3/MultipartCopy.php @@ -0,0 +1,183 @@ +<?php +namespace Aws\S3; + +use Aws\Multipart\AbstractUploadManager; +use Aws\ResultInterface; +use GuzzleHttp\Psr7; + +class MultipartCopy extends AbstractUploadManager +{ + use MultipartUploadingTrait; + + /** @var string */ + private $source; + /** @var ResultInterface */ + private $sourceMetadata; + + /** + * Creates a multipart upload for copying 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 `UploadPartCopy` + * 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. + * - params: (array) An array of key/value parameters that will be applied + * to each of the sub-commands run by the uploader as a base. + * Auto-calculated options will override these parameters. If you need + * more granularity over parameters to each sub-command, use the before_* + * options detailed above to update the commands directly. + * - 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. + * - source_metadata: (Aws\ResultInterface) An object that represents the + * result of executing a HeadObject command on the copy source. + * + * @param S3ClientInterface $client Client used for the upload. + * @param string $source Location of the data to be copied + * (in the form /<bucket>/<key>). + * @param array $config Configuration used to perform the upload. + */ + public function __construct( + S3ClientInterface $client, + $source, + array $config = [] + ) { + $this->source = '/' . ltrim($source, '/'); + parent::__construct($client, array_change_key_case($config) + [ + 'source_metadata' => null + ]); + } + + /** + * An alias of the self::upload method. + * + * @see self::upload + */ + public function copy() + { + return $this->upload(); + } + + protected function loadUploadWorkflowInfo() + { + return [ + 'command' => [ + 'initiate' => 'CreateMultipartUpload', + 'upload' => 'UploadPartCopy', + 'complete' => 'CompleteMultipartUpload', + ], + 'id' => [ + 'bucket' => 'Bucket', + 'key' => 'Key', + 'upload_id' => 'UploadId', + ], + 'part_num' => 'PartNumber', + ]; + } + + protected function getUploadCommands(callable $resultHandler) + { + $parts = ceil($this->getSourceSize() / $this->determinePartSize()); + + for ($partNumber = 1; $partNumber <= $parts; $partNumber++) { + // If we haven't already uploaded this part, yield a new part. + if (!$this->state->hasPartBeenUploaded($partNumber)) { + $command = $this->client->getCommand( + $this->info['command']['upload'], + $this->createPart($partNumber, $parts) + + $this->getState()->getId() + ); + $command->getHandlerList()->appendSign($resultHandler, 'mup'); + yield $command; + } + } + } + + private function createPart($partNumber, $partsCount) + { + $data = []; + + // Apply custom params to UploadPartCopy data + $config = $this->getConfig(); + $params = isset($config['params']) ? $config['params'] : []; + foreach ($params as $k => $v) { + $data[$k] = $v; + } + + $data['CopySource'] = $this->source; + $data['PartNumber'] = $partNumber; + + $defaultPartSize = $this->determinePartSize(); + $startByte = $defaultPartSize * ($partNumber - 1); + $data['ContentLength'] = $partNumber < $partsCount + ? $defaultPartSize + : $this->getSourceSize() - ($defaultPartSize * ($partsCount - 1)); + $endByte = $startByte + $data['ContentLength'] - 1; + $data['CopySourceRange'] = "bytes=$startByte-$endByte"; + + return $data; + } + + protected function extractETag(ResultInterface $result) + { + return $result->search('CopyPartResult.ETag'); + } + + protected function getSourceMimeType() + { + return $this->getSourceMetadata()['ContentType']; + } + + protected function getSourceSize() + { + return $this->getSourceMetadata()['ContentLength']; + } + + private function getSourceMetadata() + { + if (empty($this->sourceMetadata)) { + $this->sourceMetadata = $this->fetchSourceMetadata(); + } + + return $this->sourceMetadata; + } + + private function fetchSourceMetadata() + { + if ($this->config['source_metadata'] instanceof ResultInterface) { + return $this->config['source_metadata']; + } + + list($bucket, $key) = explode('/', ltrim($this->source, '/'), 2); + $headParams = [ + 'Bucket' => $bucket, + 'Key' => $key, + ]; + if (strpos($key, '?')) { + list($key, $query) = explode('?', $key, 2); + $headParams['Key'] = $key; + $query = Psr7\parse_query($query, false); + if (isset($query['versionId'])) { + $headParams['VersionId'] = $query['versionId']; + } + } + return $this->client->headObject($headParams); + } +} diff --git a/lib/aws/Aws/S3/MultipartUploader.php b/lib/aws/Aws/S3/MultipartUploader.php new file mode 100644 index 0000000..8644840 --- /dev/null +++ b/lib/aws/Aws/S3/MultipartUploader.php @@ -0,0 +1,168 @@ +<?php +namespace Aws\S3; + +use Aws\HashingStream; +use Aws\Multipart\AbstractUploader; +use Aws\PhpHash; +use Aws\ResultInterface; +use GuzzleHttp\Psr7; +use Psr\Http\Message\StreamInterface as Stream; +use Aws\S3\Exception\S3MultipartUploadException; + +/** + * Encapsulates the execution of a multipart upload to S3 or Glacier. + */ +class MultipartUploader extends AbstractUploader +{ + use MultipartUploadingTrait; + + const PART_MIN_SIZE = 5242880; + const PART_MAX_SIZE = 5368709120; + const PART_MAX_NUM = 10000; + + /** + * 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. + * - params: (array) An array of key/value parameters that will be applied + * to each of the sub-commands run by the uploader as a base. + * Auto-calculated options will override these parameters. If you need + * more granularity over parameters to each sub-command, use the before_* + * options detailed above to update the commands directly. + * - 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. + * - prepare_data_source: (callable) Callback to invoke before starting the + * multipart upload workflow. The callback should have a function + * signature like `function () {...}`. + * - 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 S3ClientInterface $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( + S3ClientInterface $client, + $source, + array $config = [] + ) { + parent::__construct($client, $source, array_change_key_case($config) + [ + 'bucket' => null, + 'key' => null, + 'exception_class' => S3MultipartUploadException::class, + ]); + } + + protected function loadUploadWorkflowInfo() + { + return [ + 'command' => [ + 'initiate' => 'CreateMultipartUpload', + 'upload' => 'UploadPart', + 'complete' => 'CompleteMultipartUpload', + ], + 'id' => [ + 'bucket' => 'Bucket', + 'key' => 'Key', + 'upload_id' => 'UploadId', + ], + 'part_num' => 'PartNumber', + ]; + } + + protected function createPart($seekable, $number) + { + // Initialize the array of part data that will be returned. + $data = []; + + // Apply custom params to UploadPart data + $config = $this->getConfig(); + $params = isset($config['params']) ? $config['params'] : []; + foreach ($params as $k => $v) { + $data[$k] = $v; + } + + $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); + } + + $contentLength = $body->getSize(); + + // Do not create a part if the body size is zero. + if ($contentLength === 0) { + return false; + } + + $body->seek(0); + $data['Body'] = $body; + $data['ContentLength'] = $contentLength; + + return $data; + } + + protected function extractETag(ResultInterface $result) + { + return $result['ETag']; + } + + protected function getSourceMimeType() + { + if ($uri = $this->source->getMetadata('uri')) { + return Psr7\mimetype_from_filename($uri) + ?: 'application/octet-stream'; + } + } + + protected function getSourceSize() + { + return $this->source->getSize(); + } + + /** + * 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'); + return new HashingStream($stream, $hash, function ($result) use (&$data) { + $data['ContentSHA256'] = bin2hex($result); + }); + } +} diff --git a/lib/aws/Aws/S3/MultipartUploadingTrait.php b/lib/aws/Aws/S3/MultipartUploadingTrait.php new file mode 100644 index 0000000..baccf58 --- /dev/null +++ b/lib/aws/Aws/S3/MultipartUploadingTrait.php @@ -0,0 +1,132 @@ +<?php +namespace Aws\S3; + +use Aws\CommandInterface; +use Aws\Multipart\UploadState; +use Aws\ResultInterface; + +trait MultipartUploadingTrait +{ + /** + * Creates an UploadState object for a multipart upload by querying the + * service for the specified upload's information. + * + * @param S3ClientInterface $client S3Client used for the upload. + * @param string $bucket Bucket for the multipart upload. + * @param string $key Object key for the multipart upload. + * @param string $uploadId Upload ID for the multipart upload. + * + * @return UploadState + */ + public static function getStateFromService( + S3ClientInterface $client, + $bucket, + $key, + $uploadId + ) { + $state = new UploadState([ + 'Bucket' => $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; + } + + protected function handleResult(CommandInterface $command, ResultInterface $result) + { + $this->getState()->markPartAsUploaded($command['PartNumber'], [ + 'PartNumber' => $command['PartNumber'], + 'ETag' => $this->extractETag($result), + ]); + } + + abstract protected function extractETag(ResultInterface $result); + + protected function getCompleteParams() + { + $config = $this->getConfig(); + $params = isset($config['params']) ? $config['params'] : []; + + $params['MultipartUpload'] = [ + 'Parts' => $this->getState()->getUploadedParts() + ]; + + return $params; + } + + protected function determinePartSize() + { + // Make sure the part size is set. + $partSize = $this->getConfig()['part_size'] ?: MultipartUploader::PART_MIN_SIZE; + + // Adjust the part size to be larger for known, x-large uploads. + if ($sourceSize = $this->getSourceSize()) { + $partSize = (int) max( + $partSize, + ceil($sourceSize / MultipartUploader::PART_MAX_NUM) + ); + } + + // Ensure that the part size follows the rules: 5 MB <= size <= 5 GB. + if ($partSize < MultipartUploader::PART_MIN_SIZE || $partSize > MultipartUploader::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 getInitiateParams() + { + $config = $this->getConfig(); + $params = isset($config['params']) ? $config['params'] : []; + + if (isset($config['acl'])) { + $params['ACL'] = $config['acl']; + } + + // Set the ContentType if not already present + if (empty($params['ContentType']) && $type = $this->getSourceMimeType()) { + $params['ContentType'] = $type; + } + + return $params; + } + + /** + * @return UploadState + */ + abstract protected function getState(); + + /** + * @return array + */ + abstract protected function getConfig(); + + /** + * @return int + */ + abstract protected function getSourceSize(); + + /** + * @return string|null + */ + abstract protected function getSourceMimeType(); +} diff --git a/lib/aws/Aws/S3/ObjectCopier.php b/lib/aws/Aws/S3/ObjectCopier.php new file mode 100644 index 0000000..25ee5b0 --- /dev/null +++ b/lib/aws/Aws/S3/ObjectCopier.php @@ -0,0 +1,150 @@ +<?php +namespace Aws\S3; + +use Aws\Exception\MultipartUploadException; +use Aws\Result; +use Aws\S3\Exception\S3Exception; +use GuzzleHttp\Promise\PromisorInterface; +use InvalidArgumentException; + +/** + * Copies objects from one S3 location to another, utilizing a multipart copy + * when appropriate. + */ +class ObjectCopier implements PromisorInterface +{ + const DEFAULT_MULTIPART_THRESHOLD = MultipartUploader::PART_MAX_SIZE; + + private $client; + private $source; + private $destination; + private $acl; + private $options; + + private static $defaults = [ + 'before_lookup' => null, + 'before_upload' => null, + 'concurrency' => 5, + 'mup_threshold' => self::DEFAULT_MULTIPART_THRESHOLD, + 'params' => [], + 'part_size' => null, + 'version_id' => null, + ]; + + /** + * @param S3ClientInterface $client The S3 Client used to execute + * the copy command(s). + * @param array $source The object to copy, specified as + * an array with a 'Bucket' and + * 'Key' keys. Provide a + * 'VersionID' key to copy a + * specified version of an object. + * @param array $destination The bucket and key to which to + * copy the $source, specified as + * an array with a 'Bucket' and + * 'Key' keys. + * @param string $acl ACL to apply to the copy + * (default: private). + * @param array $options Options used to configure the + * copy process. Options passed in + * through 'params' are added to + * the sub commands. + * + * @throws InvalidArgumentException + */ + public function __construct( + S3ClientInterface $client, + array $source, + array $destination, + $acl = 'private', + array $options = [] + ) { + $this->validateLocation($source); + $this->validateLocation($destination); + + $this->client = $client; + $this->source = $source; + $this->destination = $destination; + $this->acl = $acl; + $this->options = $options + self::$defaults; + } + + /** + * Perform the configured copy asynchronously. Returns a promise that is + * fulfilled with the result of the CompleteMultipartUpload or CopyObject + * operation or rejected with an exception. + */ + public function promise() + { + return \GuzzleHttp\Promise\coroutine(function () { + $headObjectCommand = $this->client->getCommand( + 'HeadObject', + $this->options['params'] + $this->source + ); + if (is_callable($this->options['before_lookup'])) { + $this->options['before_lookup']($headObjectCommand); + } + $objectStats = (yield $this->client->executeAsync( + $headObjectCommand + )); + + if ($objectStats['ContentLength'] > $this->options['mup_threshold']) { + $mup = new MultipartCopy( + $this->client, + $this->getSourcePath(), + ['source_metadata' => $objectStats, 'acl' => $this->acl] + + $this->destination + + $this->options + ); + + yield $mup->promise(); + } else { + $defaults = [ + 'ACL' => $this->acl, + 'MetadataDirective' => 'COPY', + 'CopySource' => $this->getSourcePath(), + ]; + + $params = array_diff_key($this->options, self::$defaults) + + $this->destination + $defaults + $this->options['params']; + + yield $this->client->executeAsync( + $this->client->getCommand('CopyObject', $params) + ); + } + }); + } + + /** + * Perform the configured copy synchronously. Returns the result of the + * CompleteMultipartUpload or CopyObject operation. + * + * @return Result + * + * @throws S3Exception + * @throws MultipartUploadException + */ + public function copy() + { + return $this->promise()->wait(); + } + + private function validateLocation(array $location) + { + if (empty($location['Bucket']) || empty($location['Key'])) { + throw new \InvalidArgumentException('Locations provided to an' + . ' Aws\S3\ObjectCopier must have a non-empty Bucket and Key'); + } + } + + private function getSourcePath() + { + $sourcePath = "/{$this->source['Bucket']}/" + . rawurlencode($this->source['Key']); + if (isset($this->source['VersionId'])) { + $sourcePath .= "?versionId={$this->source['VersionId']}"; + } + + return $sourcePath; + } +} diff --git a/lib/aws/Aws/S3/ObjectUploader.php b/lib/aws/Aws/S3/ObjectUploader.php new file mode 100644 index 0000000..6455def --- /dev/null +++ b/lib/aws/Aws/S3/ObjectUploader.php @@ -0,0 +1,140 @@ +<?php +namespace Aws\S3; + +use GuzzleHttp\Promise\PromisorInterface; +use GuzzleHttp\Psr7; +use Psr\Http\Message\StreamInterface; + +/** + * Uploads an object to S3, using a PutObject command or a multipart upload as + * appropriate. + */ +class ObjectUploader implements PromisorInterface +{ + const DEFAULT_MULTIPART_THRESHOLD = 16777216; + + private $client; + private $bucket; + private $key; + private $body; + private $acl; + private $options; + private static $defaults = [ + 'before_upload' => null, + 'concurrency' => 3, + 'mup_threshold' => self::DEFAULT_MULTIPART_THRESHOLD, + 'params' => [], + 'part_size' => null, + ]; + + /** + * @param S3ClientInterface $client The S3 Client used to execute + * the upload command(s). + * @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 copy + * (default: private). + * @param array $options Options used to configure the + * copy process. Options passed in + * through 'params' are added to + * the sub command(s). + */ + public function __construct( + S3ClientInterface $client, + $bucket, + $key, + $body, + $acl = 'private', + array $options = [] + ) { + $this->client = $client; + $this->bucket = $bucket; + $this->key = $key; + $this->body = Psr7\stream_for($body); + $this->acl = $acl; + $this->options = $options + self::$defaults; + } + + public function promise() + { + /** @var int $mup_threshold */ + $mup_threshold = $this->options['mup_threshold']; + if ($this->requiresMultipart($this->body, $mup_threshold)) { + // Perform a multipart upload. + return (new MultipartUploader($this->client, $this->body, [ + 'bucket' => $this->bucket, + 'key' => $this->key, + 'acl' => $this->acl + ] + $this->options))->promise(); + } + + // Perform a regular PutObject operation. + $command = $this->client->getCommand('PutObject', [ + 'Bucket' => $this->bucket, + 'Key' => $this->key, + 'Body' => $this->body, + 'ACL' => $this->acl, + ] + $this->options['params']); + if (is_callable($this->options['before_upload'])) { + $this->options['before_upload']($command); + } + return $this->client->executeAsync($command); + } + + public function upload() + { + return $this->promise()->wait(); + } + + /** + * 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 StreamInterface $body Stream representing the body. + * @param integer $threshold Minimum bytes before using Multipart. + * + * @return bool + */ + private function requiresMultipart(StreamInterface &$body, $threshold) + { + // If body size known, compare to threshold to determine if Multipart. + if ($body->getSize() !== null) { + return $body->getSize() >= $threshold; + } + + /** + * Handle the situation where the body size is unknown. + * Read up to 5MB into a buffer to determine how to upload the body. + * @var StreamInterface $buffer + */ + $buffer = Psr7\stream_for(); + Psr7\copy_to_stream($body, $buffer, MultipartUploader::PART_MIN_SIZE); + + // If body < 5MB, use PutObject with the buffer. + if ($buffer->getSize() < MultipartUploader::PART_MIN_SIZE) { + $buffer->seek(0); + $body = $buffer; + return false; + } + + // 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 true; + } +} diff --git a/lib/aws/Aws/S3/PermanentRedirectMiddleware.php b/lib/aws/Aws/S3/PermanentRedirectMiddleware.php new file mode 100644 index 0000000..eb4b8e3 --- /dev/null +++ b/lib/aws/Aws/S3/PermanentRedirectMiddleware.php @@ -0,0 +1,62 @@ +<?php +namespace Aws\S3; + +use Aws\CommandInterface; +use Aws\ResultInterface; +use Aws\S3\Exception\PermanentRedirectException; +use Psr\Http\Message\RequestInterface; + +/** + * Throws a PermanentRedirectException exception when a 301 redirect is + * encountered. + * + * @internal + */ +class PermanentRedirectMiddleware +{ + /** @var callable */ + private $nextHandler; + + /** + * Create a middleware wrapper function. + * + * @return callable + */ + public static function wrap() + { + return function (callable $handler) { + return new self($handler); + }; + } + + /** + * @param callable $nextHandler Next handler to invoke. + */ + public function __construct(callable $nextHandler) + { + $this->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/Aws/S3/PostObject.php b/lib/aws/Aws/S3/PostObject.php new file mode 100644 index 0000000..48913ea --- /dev/null +++ b/lib/aws/Aws/S3/PostObject.php @@ -0,0 +1,160 @@ +<?php +namespace Aws\S3; + +use Aws\Credentials\CredentialsInterface; +use GuzzleHttp\Psr7\Uri; + +/** + * @deprecated + */ +class PostObject +{ + private $client; + private $bucket; + private $formAttributes; + private $formInputs; + private $jsonPolicy; + + /** + * Constructs the PostObject. + * + * @param S3ClientInterface $client Client used with the POST object + * @param string $bucket Bucket to use + * @param array $formInputs Associative array of form input + * fields. + * @param string|array $jsonPolicy JSON encoded POST policy document. + * The policy will be base64 encoded + * and applied to the form on your + * behalf. + */ + public function __construct( + S3ClientInterface $client, + $bucket, + array $formInputs, + $jsonPolicy + ) { + $this->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 S3ClientInterface + */ + 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 ($this->client->getConfig('use_path_style_endpoint') === true + || ($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/Aws/S3/PostObjectV4.php b/lib/aws/Aws/S3/PostObjectV4.php new file mode 100644 index 0000000..3e377ba --- /dev/null +++ b/lib/aws/Aws/S3/PostObjectV4.php @@ -0,0 +1,195 @@ +<?php +namespace Aws\S3; + +use Aws\Credentials\CredentialsInterface; +use GuzzleHttp\Psr7\Uri; +use Aws\Signature\SignatureTrait; +use Aws\Signature\SignatureV4 as SignatureV4; +use Aws\Api\TimestampShape as TimestampShape; + +/** + * Encapsulates the logic for getting the data for an S3 object POST upload form + * + * @link http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html + * @link http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-post-example.html + */ +class PostObjectV4 +{ + use SignatureTrait; + + private $client; + private $bucket; + private $formAttributes; + private $formInputs; + + /** + * Constructs the PostObject. + * + * The options array accepts the following keys: + * @link http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html + * + * @param S3ClientInterface $client Client used with the POST object + * @param string $bucket Bucket to use + * @param array $formInputs Associative array of form input + * fields. + * @param array $options Policy condition options + * @param mixed $expiration Upload expiration time value. By + * default: 1 hour valid period. + */ + public function __construct( + S3ClientInterface $client, + $bucket, + array $formInputs, + array $options = [], + $expiration = '+1 hours' + ) { + $this->client = $client; + $this->bucket = $bucket; + + // setup form attributes + $this->formAttributes = [ + 'action' => $this->generateUri(), + 'method' => 'POST', + 'enctype' => 'multipart/form-data' + ]; + + $credentials = $this->client->getCredentials()->wait(); + + if ($securityToken = $credentials->getSecurityToken()) { + array_push($options, ['x-amz-security-token' => $securityToken]); + $formInputs['X-Amz-Security-Token'] = $securityToken; + } + + // setup basic policy + $policy = [ + 'expiration' => TimestampShape::format($expiration, 'iso8601'), + 'conditions' => $options, + ]; + + // setup basic formInputs + $this->formInputs = $formInputs + ['key' => '${filename}']; + + // finalize policy and signature + + $this->formInputs += $this->getPolicyAndSignature( + $credentials, + $policy + ); + } + + /** + * Gets the S3 client. + * + * @return S3ClientInterface + */ + 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; + } + + private function generateUri() + { + $uri = new Uri($this->client->getEndpoint()); + + if ($this->client->getConfig('use_path_style_endpoint') === true + || ($uri->getScheme() === 'https' + && strpos($this->bucket, '.') !== false) + ) { + // Use path-style URLs + $uri = $uri->withPath("/{$this->bucket}"); + } else { + // Use virtual-style URLs if haven't been set up already + if (strpos($uri->getHost(), $this->bucket . '.') !== 0) { + $uri = $uri->withHost($this->bucket . '.' . $uri->getHost()); + } + } + + return (string) $uri; + } + + protected function getPolicyAndSignature( + CredentialsInterface $credentials, + array $policy + ){ + $ldt = gmdate(SignatureV4::ISO8601_BASIC); + $sdt = substr($ldt, 0, 8); + $policy['conditions'][] = ['X-Amz-Date' => $ldt]; + + $region = $this->client->getRegion(); + $scope = $this->createScope($sdt, $region, 's3'); + $creds = "{$credentials->getAccessKeyId()}/$scope"; + $policy['conditions'][] = ['X-Amz-Credential' => $creds]; + + $policy['conditions'][] = ['X-Amz-Algorithm' => "AWS4-HMAC-SHA256"]; + + $jsonPolicy64 = base64_encode(json_encode($policy)); + $key = $this->getSigningKey( + $sdt, + $region, + 's3', + $credentials->getSecretKey() + ); + + return [ + 'X-Amz-Credential' => $creds, + 'X-Amz-Algorithm' => "AWS4-HMAC-SHA256", + 'X-Amz-Date' => $ldt, + 'Policy' => $jsonPolicy64, + 'X-Amz-Signature' => bin2hex( + hash_hmac('sha256', $jsonPolicy64, $key, true) + ), + ]; + } +} diff --git a/lib/aws/Aws/S3/PutObjectUrlMiddleware.php b/lib/aws/Aws/S3/PutObjectUrlMiddleware.php new file mode 100644 index 0000000..c7d6e9d --- /dev/null +++ b/lib/aws/Aws/S3/PutObjectUrlMiddleware.php @@ -0,0 +1,57 @@ +<?php +namespace Aws\S3; + +use Aws\CommandInterface; +use Aws\ResultInterface; +use Psr\Http\Message\RequestInterface; + +/** + * Injects ObjectURL into the result of the PutObject operation. + * + * @internal + */ +class PutObjectUrlMiddleware +{ + /** @var callable */ + private $nextHandler; + + /** + * Create a middleware wrapper function. + * + * @return callable + */ + public static function wrap() + { + return function (callable $handler) { + return new self($handler); + }; + } + + /** + * @param callable $nextHandler Next handler to invoke. + */ + public function __construct(callable $nextHandler) + { + $this->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/Aws/S3/RetryableMalformedResponseParser.php b/lib/aws/Aws/S3/RetryableMalformedResponseParser.php new file mode 100644 index 0000000..cbf75d3 --- /dev/null +++ b/lib/aws/Aws/S3/RetryableMalformedResponseParser.php @@ -0,0 +1,56 @@ +<?php +namespace Aws\S3; + +use Aws\Api\Parser\AbstractParser; +use Aws\Api\StructureShape; +use Aws\Api\Parser\Exception\ParserException; +use Aws\CommandInterface; +use Aws\Exception\AwsException; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\StreamInterface; + +/** + * Converts malformed responses to a retryable error type. + * + * @internal + */ +class RetryableMalformedResponseParser extends AbstractParser +{ + /** @var string */ + private $exceptionClass; + + public function __construct( + callable $parser, + $exceptionClass = AwsException::class + ) { + $this->parser = $parser; + $this->exceptionClass = $exceptionClass; + } + + public function __invoke( + CommandInterface $command, + ResponseInterface $response + ) { + $fn = $this->parser; + + try { + return $fn($command, $response); + } catch (ParserException $e) { + throw new $this->exceptionClass( + "Error parsing response for {$command->getName()}:" + . " AWS parsing error: {$e->getMessage()}", + $command, + ['connection_error' => true, 'exception' => $e], + $e + ); + } + } + + public function parseMemberFromStream( + StreamInterface $stream, + StructureShape $member, + $response + ) { + return $this->parser->parseMemberFromStream($stream, $member, $response); + } +} diff --git a/lib/aws/Aws/S3/S3Client.php b/lib/aws/Aws/S3/S3Client.php new file mode 100644 index 0000000..8ca3684 --- /dev/null +++ b/lib/aws/Aws/S3/S3Client.php @@ -0,0 +1,633 @@ +<?php +namespace Aws\S3; + +use Aws\Api\ApiProvider; +use Aws\Api\DocModel; +use Aws\Api\Service; +use Aws\AwsClient; +use Aws\ClientResolver; +use Aws\Command; +use Aws\Exception\AwsException; +use Aws\HandlerList; +use Aws\Middleware; +use Aws\RetryMiddleware; +use Aws\ResultInterface; +use Aws\CommandInterface; +use GuzzleHttp\Exception\RequestException; +use Psr\Http\Message\RequestInterface; + +/** + * Client used to interact with **Amazon Simple Storage Service (Amazon S3)**. + * + * @method \Aws\Result abortMultipartUpload(array $args = []) + * @method \GuzzleHttp\Promise\Promise abortMultipartUploadAsync(array $args = []) + * @method \Aws\Result completeMultipartUpload(array $args = []) + * @method \GuzzleHttp\Promise\Promise completeMultipartUploadAsync(array $args = []) + * @method \Aws\Result copyObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise copyObjectAsync(array $args = []) + * @method \Aws\Result createBucket(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBucketAsync(array $args = []) + * @method \Aws\Result createMultipartUpload(array $args = []) + * @method \GuzzleHttp\Promise\Promise createMultipartUploadAsync(array $args = []) + * @method \Aws\Result deleteBucket(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketAsync(array $args = []) + * @method \Aws\Result deleteBucketAnalyticsConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketAnalyticsConfigurationAsync(array $args = []) + * @method \Aws\Result deleteBucketCors(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketCorsAsync(array $args = []) + * @method \Aws\Result deleteBucketEncryption(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketEncryptionAsync(array $args = []) + * @method \Aws\Result deleteBucketInventoryConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketInventoryConfigurationAsync(array $args = []) + * @method \Aws\Result deleteBucketLifecycle(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketLifecycleAsync(array $args = []) + * @method \Aws\Result deleteBucketMetricsConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketMetricsConfigurationAsync(array $args = []) + * @method \Aws\Result deleteBucketPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketPolicyAsync(array $args = []) + * @method \Aws\Result deleteBucketReplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketReplicationAsync(array $args = []) + * @method \Aws\Result deleteBucketTagging(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketTaggingAsync(array $args = []) + * @method \Aws\Result deleteBucketWebsite(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketWebsiteAsync(array $args = []) + * @method \Aws\Result deleteObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteObjectAsync(array $args = []) + * @method \Aws\Result deleteObjectTagging(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteObjectTaggingAsync(array $args = []) + * @method \Aws\Result deleteObjects(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteObjectsAsync(array $args = []) + * @method \Aws\Result deletePublicAccessBlock(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePublicAccessBlockAsync(array $args = []) + * @method \Aws\Result getBucketAccelerateConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketAccelerateConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketAcl(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketAclAsync(array $args = []) + * @method \Aws\Result getBucketAnalyticsConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketAnalyticsConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketCors(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketCorsAsync(array $args = []) + * @method \Aws\Result getBucketEncryption(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketEncryptionAsync(array $args = []) + * @method \Aws\Result getBucketInventoryConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketInventoryConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketLifecycle(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketLifecycleAsync(array $args = []) + * @method \Aws\Result getBucketLifecycleConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketLifecycleConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketLocation(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketLocationAsync(array $args = []) + * @method \Aws\Result getBucketLogging(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketLoggingAsync(array $args = []) + * @method \Aws\Result getBucketMetricsConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketMetricsConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketNotification(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketNotificationAsync(array $args = []) + * @method \Aws\Result getBucketNotificationConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketNotificationConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketPolicyAsync(array $args = []) + * @method \Aws\Result getBucketPolicyStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketPolicyStatusAsync(array $args = []) + * @method \Aws\Result getBucketReplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketReplicationAsync(array $args = []) + * @method \Aws\Result getBucketRequestPayment(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketRequestPaymentAsync(array $args = []) + * @method \Aws\Result getBucketTagging(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketTaggingAsync(array $args = []) + * @method \Aws\Result getBucketVersioning(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketVersioningAsync(array $args = []) + * @method \Aws\Result getBucketWebsite(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketWebsiteAsync(array $args = []) + * @method \Aws\Result getObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectAsync(array $args = []) + * @method \Aws\Result getObjectAcl(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectAclAsync(array $args = []) + * @method \Aws\Result getObjectLegalHold(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectLegalHoldAsync(array $args = []) + * @method \Aws\Result getObjectLockConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectLockConfigurationAsync(array $args = []) + * @method \Aws\Result getObjectRetention(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectRetentionAsync(array $args = []) + * @method \Aws\Result getObjectTagging(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectTaggingAsync(array $args = []) + * @method \Aws\Result getObjectTorrent(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectTorrentAsync(array $args = []) + * @method \Aws\Result getPublicAccessBlock(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPublicAccessBlockAsync(array $args = []) + * @method \Aws\Result headBucket(array $args = []) + * @method \GuzzleHttp\Promise\Promise headBucketAsync(array $args = []) + * @method \Aws\Result headObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise headObjectAsync(array $args = []) + * @method \Aws\Result listBucketAnalyticsConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBucketAnalyticsConfigurationsAsync(array $args = []) + * @method \Aws\Result listBucketInventoryConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBucketInventoryConfigurationsAsync(array $args = []) + * @method \Aws\Result listBucketMetricsConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBucketMetricsConfigurationsAsync(array $args = []) + * @method \Aws\Result listBuckets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBucketsAsync(array $args = []) + * @method \Aws\Result listMultipartUploads(array $args = []) + * @method \GuzzleHttp\Promise\Promise listMultipartUploadsAsync(array $args = []) + * @method \Aws\Result listObjectVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listObjectVersionsAsync(array $args = []) + * @method \Aws\Result listObjects(array $args = []) + * @method \GuzzleHttp\Promise\Promise listObjectsAsync(array $args = []) + * @method \Aws\Result listObjectsV2(array $args = []) + * @method \GuzzleHttp\Promise\Promise listObjectsV2Async(array $args = []) + * @method \Aws\Result listParts(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPartsAsync(array $args = []) + * @method \Aws\Result putBucketAccelerateConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketAccelerateConfigurationAsync(array $args = []) + * @method \Aws\Result putBucketAcl(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketAclAsync(array $args = []) + * @method \Aws\Result putBucketAnalyticsConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketAnalyticsConfigurationAsync(array $args = []) + * @method \Aws\Result putBucketCors(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketCorsAsync(array $args = []) + * @method \Aws\Result putBucketEncryption(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketEncryptionAsync(array $args = []) + * @method \Aws\Result putBucketInventoryConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketInventoryConfigurationAsync(array $args = []) + * @method \Aws\Result putBucketLifecycle(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketLifecycleAsync(array $args = []) + * @method \Aws\Result putBucketLifecycleConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketLifecycleConfigurationAsync(array $args = []) + * @method \Aws\Result putBucketLogging(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketLoggingAsync(array $args = []) + * @method \Aws\Result putBucketMetricsConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketMetricsConfigurationAsync(array $args = []) + * @method \Aws\Result putBucketNotification(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketNotificationAsync(array $args = []) + * @method \Aws\Result putBucketNotificationConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketNotificationConfigurationAsync(array $args = []) + * @method \Aws\Result putBucketPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketPolicyAsync(array $args = []) + * @method \Aws\Result putBucketReplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketReplicationAsync(array $args = []) + * @method \Aws\Result putBucketRequestPayment(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketRequestPaymentAsync(array $args = []) + * @method \Aws\Result putBucketTagging(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketTaggingAsync(array $args = []) + * @method \Aws\Result putBucketVersioning(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketVersioningAsync(array $args = []) + * @method \Aws\Result putBucketWebsite(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketWebsiteAsync(array $args = []) + * @method \Aws\Result putObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise putObjectAsync(array $args = []) + * @method \Aws\Result putObjectAcl(array $args = []) + * @method \GuzzleHttp\Promise\Promise putObjectAclAsync(array $args = []) + * @method \Aws\Result putObjectLegalHold(array $args = []) + * @method \GuzzleHttp\Promise\Promise putObjectLegalHoldAsync(array $args = []) + * @method \Aws\Result putObjectLockConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putObjectLockConfigurationAsync(array $args = []) + * @method \Aws\Result putObjectRetention(array $args = []) + * @method \GuzzleHttp\Promise\Promise putObjectRetentionAsync(array $args = []) + * @method \Aws\Result putObjectTagging(array $args = []) + * @method \GuzzleHttp\Promise\Promise putObjectTaggingAsync(array $args = []) + * @method \Aws\Result putPublicAccessBlock(array $args = []) + * @method \GuzzleHttp\Promise\Promise putPublicAccessBlockAsync(array $args = []) + * @method \Aws\Result restoreObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise restoreObjectAsync(array $args = []) + * @method \Aws\Result selectObjectContent(array $args = []) + * @method \GuzzleHttp\Promise\Promise selectObjectContentAsync(array $args = []) + * @method \Aws\Result uploadPart(array $args = []) + * @method \GuzzleHttp\Promise\Promise uploadPartAsync(array $args = []) + * @method \Aws\Result uploadPartCopy(array $args = []) + * @method \GuzzleHttp\Promise\Promise uploadPartCopyAsync(array $args = []) + */ +class S3Client extends AwsClient implements S3ClientInterface +{ + use S3ClientTrait; + + public static function getArguments() + { + $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.', + ], + 'use_accelerate_endpoint' => [ + 'type' => 'config', + 'valid' => ['bool'], + 'doc' => 'Set to true to send requests to an S3 Accelerate' + . ' endpoint by default. Can be enabled or disabled on' + . ' individual operations by setting' + . ' \'@use_accelerate_endpoint\' to true or false. Note:' + . ' you must enable S3 Accelerate on a bucket before it can' + . ' be accessed via an Accelerate endpoint.', + 'default' => false, + ], + 'use_dual_stack_endpoint' => [ + 'type' => 'config', + 'valid' => ['bool'], + 'doc' => 'Set to true to send requests to an S3 Dual Stack' + . ' endpoint by default, which enables IPv6 Protocol.' + . ' Can be enabled or disabled on individual operations by setting' + . ' \'@use_dual_stack_endpoint\' to true or false.', + 'default' => false, + ], + 'use_path_style_endpoint' => [ + 'type' => 'config', + 'valid' => ['bool'], + 'doc' => 'Set to true to send requests to an S3 path style' + . ' endpoint by default.' + . ' Can be enabled or disabled on individual operations by setting' + . ' \'@use_path_style_endpoint\' to true or false.', + 'default' => false, + ], + ]; + } + + /** + * {@inheritdoc} + * + * In addition to the options available to + * {@see Aws\AwsClient::__construct}, S3Client accepts the following + * options: + * + * - 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. + * - use_accelerate_endpoint: (bool) Set to true to send requests to an S3 + * Accelerate endpoint by default. Can be enabled or disabled on + * individual operations by setting '@use_accelerate_endpoint' to true or + * false. Note: you must enable S3 Accelerate on a bucket before it can be + * accessed via an Accelerate endpoint. + * - use_dual_stack_endpoint: (bool) Set to true to send requests to an S3 + * Dual Stack endpoint by default, which enables IPv6 Protocol. + * Can be enabled or disabled on individual operations by setting + * '@use_dual_stack_endpoint\' to true or false. Note: + * you cannot use it together with an accelerate endpoint. + * - use_path_style_endpoint: (bool) Set to true to send requests to an S3 + * path style endpoint by default. + * Can be enabled or disabled on individual operations by setting + * '@use_path_style_endpoint\' to true or false. Note: + * you cannot use it together with an accelerate endpoint. + * + * @param array $args + */ + public function __construct(array $args) + { + parent::__construct($args); + $stack = $this->getHandlerList(); + $stack->appendInit(SSECMiddleware::wrap($this->getEndpoint()->getScheme()), 's3.ssec'); + $stack->appendBuild(ApplyChecksumMiddleware::wrap(), 's3.checksum'); + $stack->appendBuild( + Middleware::contentType(['PutObject', 'UploadPart']), + 's3.content_type' + ); + + + // Use the bucket style middleware when using a "bucket_endpoint" (for cnames) + if ($this->getConfig('bucket_endpoint')) { + $stack->appendBuild(BucketEndpointMiddleware::wrap(), 's3.bucket_endpoint'); + } else { + $stack->appendBuild( + S3EndpointMiddleware::wrap( + $this->getRegion(), + [ + 'dual_stack' => $this->getConfig('use_dual_stack_endpoint'), + 'accelerate' => $this->getConfig('use_accelerate_endpoint'), + 'path_style' => $this->getConfig('use_path_style_endpoint') + ] + ), + 's3.endpoint_middleware' + ); + } + + $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->getSaveAsParameter(), 's3.save_as'); + $stack->appendInit($this->getLocationConstraintMiddleware(), 's3.location'); + $stack->appendInit($this->getEncodingTypeMiddleware(), 's3.auto_encode'); + $stack->appendInit($this->getHeadObjectMiddleware(), 's3.head_object'); + } + + /** + * Determine if a string is a valid name for a DNS compatible Amazon S3 + * bucket. + * + * DNS compatible bucket names can be used as a subdomain in a URL (e.g., + * "<bucket>.s3.amazonaws.com"). + * + * @param string $bucket Bucket name to check. + * + * @return bool + */ + public static function isBucketDnsCompatible($bucket) + { + $bucketLen = strlen($bucket); + + 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); + } + + public function createPresignedRequest(CommandInterface $command, $expires) + { + $command = clone $command; + $command->getHandlerList()->remove('signer'); + + /** @var \Aws\Signature\SignatureInterface $signer */ + $signer = call_user_func( + $this->getSignatureProvider(), + $this->getConfig('signature_version'), + $this->getConfig('signing_name'), + $this->getConfig('signing_region') + ); + + return $signer->presign( + \Aws\serialize($command), + $this->getCredentials()->wait(), + $expires + ); + } + + public function getObjectUrl($bucket, $key) + { + $command = $this->getCommand('GetObject', [ + 'Bucket' => $bucket, + 'Key' => $key + ]); + + return (string) \Aws\serialize($command)->getUri(); + } + + /** + * Raw URL encode a key and allow for '/' characters + * + * @param string $key Key to encode + * + * @return string Returns the encoded key + */ + public static function encodeKey($key) + { + return str_replace('%2F', '/', rawurlencode($key)); + } + + /** + * Provides a middleware that removes the need to specify LocationConstraint on CreateBucket. + * + * @return \Closure + */ + private function getLocationConstraintMiddleware() + { + $region = $this->getRegion(); + return static function (callable $handler) use ($region) { + return function (Command $command, $request = null) use ($handler, $region) { + if ($command->getName() === 'CreateBucket') { + $locationConstraint = isset($command['CreateBucketConfiguration']['LocationConstraint']) + ? $command['CreateBucketConfiguration']['LocationConstraint'] + : null; + + if ($locationConstraint === 'us-east-1') { + unset($command['CreateBucketConfiguration']); + } elseif ('us-east-1' !== $region && empty($locationConstraint)) { + $command['CreateBucketConfiguration'] = ['LocationConstraint' => $region]; + } + } + + return $handler($command, $request); + }; + }; + } + + /** + * Provides a middleware that supports the `SaveAs` parameter. + * + * @return \Closure + */ + private function getSaveAsParameter() + { + return static function (callable $handler) { + return function (Command $command, $request = null) use ($handler) { + if ($command->getName() === 'GetObject' && isset($command['SaveAs'])) { + $command['@http']['sink'] = $command['SaveAs']; + unset($command['SaveAs']); + } + + return $handler($command, $request); + }; + }; + } + + /** + * Provides a middleware that disables content decoding on HeadObject + * commands. + * + * @return \Closure + */ + private function getHeadObjectMiddleware() + { + return static function (callable $handler) { + return function ( + CommandInterface $command, + RequestInterface $request = null + ) use ($handler) { + if ($command->getName() === 'HeadObject' + && !isset($command['@http']['decode_content']) + ) { + $command['@http']['decode_content'] = false; + } + + return $handler($command, $request); + }; + }; + } + + /** + * Provides a middleware that autopopulates the EncodingType parameter on + * ListObjects commands. + * + * @return \Closure + */ + private function getEncodingTypeMiddleware() + { + return static function (callable $handler) { + return function (Command $command, $request = null) use ($handler) { + $autoSet = false; + if ($command->getName() === 'ListObjects' + && empty($command['EncodingType']) + ) { + $command['EncodingType'] = 'url'; + $autoSet = true; + } + + return $handler($command, $request) + ->then(function (ResultInterface $result) use ($autoSet) { + if ($result['EncodingType'] === 'url' && $autoSet) { + static $topLevel = [ + 'Delimiter', + 'Marker', + 'NextMarker', + 'Prefix', + ]; + static $nested = [ + ['Contents', 'Key'], + ['CommonPrefixes', 'Prefix'], + ]; + + foreach ($topLevel as $key) { + if (isset($result[$key])) { + $result[$key] = urldecode($result[$key]); + } + } + foreach ($nested as $steps) { + if (isset($result[$steps[0]])) { + foreach ($result[$steps[0]] as $key => $part) { + if (isset($part[$steps[1]])) { + $result[$steps[0]][$key][$steps[1]] + = urldecode($part[$steps[1]]); + } + } + } + } + + } + + return $result; + }); + }; + }; + } + + /** @internal */ + public static function _applyRetryConfig($value, $_, HandlerList $list) + { + if (!$value) { + return; + } + + $decider = RetryMiddleware::createDefaultDecider($value); + $decider = function ($retries, $command, $request, $result, $error) use ($decider, $value) { + $maxRetries = null !== $command['@retries'] + ? $command['@retries'] + : $value; + + if ($decider($retries, $command, $request, $result, $error)) { + return true; + } + + if ($error instanceof AwsException + && $retries < $maxRetries + ) { + if ($error->getResponse() + && $error->getResponse()->getStatusCode() >= 400 + ) { + return strpos( + $error->getResponse()->getBody(), + 'Your socket connection to the server' + ) !== false; + } + + if ($error->getPrevious() instanceof RequestException) { + // All commands except CompleteMultipartUpload are + // idempotent and may be retried without worry if a + // networking error has occurred. + return $command->getName() !== 'CompleteMultipartUpload'; + } + } + + 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( + new AmbiguousSuccessParser( + new RetryableMalformedResponseParser( + $args['parser'], + $args['exception_class'] + ), + $args['error_parser'], + $args['exception_class'] + ) + ); + } + + /** + * @internal + * @codeCoverageIgnore + */ + public static function applyDocFilters(array $api, array $docs) + { + $b64 = '<div class="alert alert-info">This value will be base64 encoded on your behalf.</div>'; + $opt = '<div class="alert alert-info">This value will be computed for you it is not supplied.</div>'; + + // 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']; + + // Add the ContentSHA256 parameter. + $docs['shapes']['ContentSHA256']['base'] = 'A SHA256 hash of the body content of the request.'; + $api['shapes']['ContentSHA256'] = ['type' => 'string']; + $api['shapes']['PutObjectRequest']['members']['ContentSHA256'] = ['shape' => 'ContentSHA256']; + $api['shapes']['UploadPartRequest']['members']['ContentSHA256'] = ['shape' => 'ContentSHA256']; + unset($api['shapes']['PutObjectRequest']['members']['ContentMD5']); + unset($api['shapes']['UploadPartRequest']['members']['ContentMD5']); + $docs['shapes']['ContentSHA256']['append'] = $opt; + + // Add the SaveAs parameter. + $docs['shapes']['SaveAs']['base'] = 'The path to a file on disk to save the object data.'; + $api['shapes']['SaveAs'] = ['type' => 'string']; + $api['shapes']['GetObjectRequest']['members']['SaveAs'] = ['shape' => 'SaveAs']; + + // Several SSECustomerKey documentation updates. + $docs['shapes']['SSECustomerKey']['append'] = $b64; + $docs['shapes']['CopySourceSSECustomerKey']['append'] = $b64; + $docs['shapes']['SSECustomerKeyMd5']['append'] = $opt; + + // Add the ObjectURL to various output shapes and documentation. + $docs['shapes']['ObjectURL']['base'] = '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']; + + // 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'] = '<div class="alert alert-info">The value will be computed on ' + . 'your behalf.</div>'; + + return [ + new Service($api, ApiProvider::defaultProvider()), + new DocModel($docs) + ]; + } +} diff --git a/lib/aws/Aws/S3/S3ClientInterface.php b/lib/aws/Aws/S3/S3ClientInterface.php new file mode 100644 index 0000000..a75abd6 --- /dev/null +++ b/lib/aws/Aws/S3/S3ClientInterface.php @@ -0,0 +1,322 @@ +<?php +namespace Aws\S3; + +use Aws\AwsClientInterface; +use Aws\CommandInterface; +use Aws\ResultInterface; +use GuzzleHttp\Promise\PromiseInterface; +use Psr\Http\Message\RequestInterface; + +interface S3ClientInterface extends AwsClientInterface +{ + /** + * Create a pre-signed URL for the given S3 command object. + * + * @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 RequestInterface + */ + public function createPresignedRequest(CommandInterface $command, $expires); + + /** + * Returns the URL to an object identified by its bucket and key. + * + * 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 + * + * @return string The URL to the object + */ + public function getObjectUrl($bucket, $key); + + /** + * Determines whether or not a bucket exists by name. + * + * @param string $bucket The name of the bucket + * + * @return bool + */ + public function doesBucketExist($bucket); + + /** + * 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 available in the HeadObject + * operation (e.g., VersionId). + * + * @return bool + */ + public function doesObjectExist($bucket, $key, array $options = []); + + /** + * Register the Amazon S3 stream wrapper with this client instance. + */ + public function registerStreamWrapper(); + + /** + * 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. + * + * @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 deleteMatchingObjects( + $bucket, + $prefix = '', + $regex = '', + array $options = [] + ); + + /** + * 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. + * + * @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 + * + * @return PromiseInterface A promise that is settled when matching + * objects are deleted. + */ + public function deleteMatchingObjectsAsync( + $bucket, + $prefix = '', + $regex = '', + array $options = [] + ); + + /** + * 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 (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 = [] + ); + + /** + * Upload a file, stream, or string to a bucket asynchronously. + * + * @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 (default: private). + * @param array $options Options used to configure the upload process. + * + * @see self::upload + * @return PromiseInterface Returns a promise that will be fulfilled + * with the result of the upload. + */ + public function uploadAsync( + $bucket, + $key, + $body, + $acl = 'private', + array $options = [] + ); + + /** + * Copy an object of any size to a different location. + * + * If the upload size exceeds the maximum allowable size for direct S3 + * copying, a multipart copy will be used. + * + * 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(5)) Maximum number of concurrent + * `UploadPart` operations allowed during a multipart upload. + * - params: (array, default=array([])) Custom parameters to use with the + * upload. For single uploads, they must correspond to those used for the + * `CopyObject` 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 $fromBucket Bucket where the copy source resides. + * @param string $fromKey Key of the copy source. + * @param string $destBucket Bucket to which to copy the object. + * @param string $destKey Key to which to copy the object. + * @param string $acl ACL to apply to the copy (default: private). + * @param array $options Options used to configure the upload process. + * + * @see Aws\S3\MultipartCopy for more info about multipart uploads. + * @return ResultInterface Returns the result of the copy. + */ + public function copy( + $fromBucket, + $fromKey, + $destBucket, + $destKey, + $acl = 'private', + array $options = [] + ); + + /** + * Copy an object of any size to a different location asynchronously. + * + * @param string $fromBucket Bucket where the copy source resides. + * @param string $fromKey Key of the copy source. + * @param string $destBucket Bucket to which to copy the object. + * @param string $destKey Key to which to copy the object. + * @param string $acl ACL to apply to the copy (default: private). + * @param array $options Options used to configure the upload process. + * + * @see self::copy for more info about the parameters above. + * @return PromiseInterface Returns a promise that will be fulfilled + * with the result of the copy. + */ + public function copyAsync( + $fromBucket, + $fromKey, + $destBucket, + $destKey, + $acl = 'private', + array $options = [] + ); + + /** + * Recursively uploads all files in a given directory to a given bucket. + * + * @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 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 = [] + ); + + /** + * Recursively uploads all files in a given directory to a given bucket. + * + * @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 Options available in Aws\S3\Transfer::__construct + * + * @see Aws\S3\Transfer for more options and customization + * + * @return PromiseInterface A promise that is settled when the upload is + * complete. + */ + public function uploadDirectoryAsync( + $directory, + $bucket, + $keyPrefix = null, + array $options = [] + ); + + /** + * Downloads a bucket to the local filesystem + * + * @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 Options available in Aws\S3\Transfer::__construct + */ + public function downloadBucket( + $directory, + $bucket, + $keyPrefix = '', + array $options = [] + ); + + /** + * Downloads a bucket to the local filesystem + * + * @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 Options available in Aws\S3\Transfer::__construct + * + * @return PromiseInterface A promise that is settled when the download is + * complete. + */ + public function downloadBucketAsync( + $directory, + $bucket, + $keyPrefix = '', + array $options = [] + ); + + /** + * Returns the region in which a given bucket is located. + * + * @param string $bucketName + * + * @return string + */ + public function determineBucketRegion($bucketName); + + /** + * Returns a promise fulfilled with the region in which a given bucket is + * located. + * + * @param string $bucketName + * + * @return PromiseInterface + */ + public function determineBucketRegionAsync($bucketName); +} diff --git a/lib/aws/Aws/S3/S3ClientTrait.php b/lib/aws/Aws/S3/S3ClientTrait.php new file mode 100644 index 0000000..4b17f26 --- /dev/null +++ b/lib/aws/Aws/S3/S3ClientTrait.php @@ -0,0 +1,323 @@ +<?php +namespace Aws\S3; + +use Aws\Api\Parser\PayloadParserTrait; +use Aws\CommandInterface; +use Aws\Exception\AwsException; +use Aws\HandlerList; +use Aws\ResultInterface; +use Aws\S3\Exception\S3Exception; +use GuzzleHttp\Promise\PromiseInterface; +use GuzzleHttp\Promise\RejectedPromise; +use Psr\Http\Message\ResponseInterface; + +/** + * A trait providing S3-specific functionality. This is meant to be used in + * classes implementing \Aws\S3\S3ClientInterface + */ +trait S3ClientTrait +{ + use PayloadParserTrait; + + /** + * @see S3ClientInterface::upload() + */ + public function upload( + $bucket, + $key, + $body, + $acl = 'private', + array $options = [] + ) { + return $this + ->uploadAsync($bucket, $key, $body, $acl, $options) + ->wait(); + } + + /** + * @see S3ClientInterface::uploadAsync() + */ + public function uploadAsync( + $bucket, + $key, + $body, + $acl = 'private', + array $options = [] + ) { + return (new ObjectUploader($this, $bucket, $key, $body, $acl, $options)) + ->promise(); + } + + /** + * @see S3ClientInterface::copy() + */ + public function copy( + $fromB, + $fromK, + $destB, + $destK, + $acl = 'private', + array $opts = [] + ) { + return $this->copyAsync($fromB, $fromK, $destB, $destK, $acl, $opts) + ->wait(); + } + + /** + * @see S3ClientInterface::copyAsync() + */ + public function copyAsync( + $fromB, + $fromK, + $destB, + $destK, + $acl = 'private', + array $opts = [] + ) { + $source = [ + 'Bucket' => $fromB, + 'Key' => $fromK, + ]; + if (isset($opts['version_id'])) { + $source['VersionId'] = $opts['version_id']; + } + $destination = [ + 'Bucket' => $destB, + 'Key' => $destK + ]; + + return (new ObjectCopier($this, $source, $destination, $acl, $opts)) + ->promise(); + } + + /** + * @see S3ClientInterface::registerStreamWrapper() + */ + public function registerStreamWrapper() + { + StreamWrapper::register($this); + } + + /** + * @see S3ClientInterface::deleteMatchingObjects() + */ + public function deleteMatchingObjects( + $bucket, + $prefix = '', + $regex = '', + array $options = [] + ) { + $this->deleteMatchingObjectsAsync($bucket, $prefix, $regex, $options) + ->wait(); + } + + /** + * @see S3ClientInterface::deleteMatchingObjectsAsync() + */ + public function deleteMatchingObjectsAsync( + $bucket, + $prefix = '', + $regex = '', + array $options = [] + ) { + if (!$prefix && !$regex) { + return new RejectedPromise( + new \RuntimeException('A prefix or regex is required.') + ); + } + + $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']); + }); + } + + return BatchDelete::fromIterator($this, $bucket, $iter, $options) + ->promise(); + } + + /** + * @see S3ClientInterface::uploadDirectory() + */ + public function uploadDirectory( + $directory, + $bucket, + $keyPrefix = null, + array $options = [] + ) { + $this->uploadDirectoryAsync($directory, $bucket, $keyPrefix, $options) + ->wait(); + } + + /** + * @see S3ClientInterface::uploadDirectoryAsync() + */ + public function uploadDirectoryAsync( + $directory, + $bucket, + $keyPrefix = null, + array $options = [] + ) { + $d = "s3://$bucket" . ($keyPrefix ? '/' . ltrim($keyPrefix, '/') : ''); + return (new Transfer($this, $directory, $d, $options))->promise(); + } + + /** + * @see S3ClientInterface::downloadBucket() + */ + public function downloadBucket( + $directory, + $bucket, + $keyPrefix = '', + array $options = [] + ) { + $this->downloadBucketAsync($directory, $bucket, $keyPrefix, $options) + ->wait(); + } + + /** + * @see S3ClientInterface::downloadBucketAsync() + */ + public function downloadBucketAsync( + $directory, + $bucket, + $keyPrefix = '', + array $options = [] + ) { + $s = "s3://$bucket" . ($keyPrefix ? '/' . ltrim($keyPrefix, '/') : ''); + return (new Transfer($this, $s, $directory, $options))->promise(); + } + + /** + * @see S3ClientInterface::determineBucketRegion() + */ + public function determineBucketRegion($bucketName) + { + return $this->determineBucketRegionAsync($bucketName)->wait(); + } + + /** + * @see S3ClientInterface::determineBucketRegionAsync() + * + * @param string $bucketName + * + * @return PromiseInterface + */ + public function determineBucketRegionAsync($bucketName) + { + $command = $this->getCommand('HeadBucket', ['Bucket' => $bucketName]); + $handlerList = clone $this->getHandlerList(); + $handlerList->remove('s3.permanent_redirect'); + $handlerList->remove('signer'); + $handler = $handlerList->resolve(); + + return $handler($command) + ->then(static function (ResultInterface $result) { + return $result['@metadata']['headers']['x-amz-bucket-region']; + }, function (AwsException $e) { + $response = $e->getResponse(); + if ($response === null) { + throw $e; + } + + if ($e->getAwsErrorCode() === 'AuthorizationHeaderMalformed') { + $region = $this->determineBucketRegionFromExceptionBody( + $response + ); + if (!empty($region)) { + return $region; + } + throw $e; + } + + return $response->getHeaderLine('x-amz-bucket-region'); + }); + } + + private function determineBucketRegionFromExceptionBody(ResponseInterface $response) + { + try { + $element = $this->parseXml($response->getBody(), $response); + if (!empty($element->Region)) { + return (string)$element->Region; + } + } catch (\Exception $e) { + // Fallthrough on exceptions from parsing + } + return false; + } + + /** + * @see S3ClientInterface::doesBucketExist() + */ + public function doesBucketExist($bucket) + { + return $this->checkExistenceWithCommand( + $this->getCommand('HeadBucket', ['Bucket' => $bucket]) + ); + } + + /** + * @see S3ClientInterface::doesObjectExist() + */ + public function doesObjectExist($bucket, $key, array $options = []) + { + return $this->checkExistenceWithCommand( + $this->getCommand('HeadObject', [ + 'Bucket' => $bucket, + 'Key' => $key + ] + $options) + ); + } + + /** + * Determines whether or not a resource exists using a command + * + * @param CommandInterface $command Command used to poll for the resource + * + * @return bool + * @throws S3Exception|\Exception if there is an unhandled exception + */ + private function checkExistenceWithCommand(CommandInterface $command) + { + try { + $this->execute($command); + return true; + } catch (S3Exception $e) { + if ($e->getAwsErrorCode() == 'AccessDenied') { + return true; + } + if ($e->getStatusCode() >= 500) { + throw $e; + } + return false; + } + } + + /** + * @see S3ClientInterface::execute() + */ + abstract public function execute(CommandInterface $command); + + /** + * @see S3ClientInterface::getCommand() + */ + abstract public function getCommand($name, array $args = []); + + /** + * @see S3ClientInterface::getHandlerList() + * + * @return HandlerList + */ + abstract public function getHandlerList(); + + /** + * @see S3ClientInterface::getIterator() + * + * @return \Iterator + */ + abstract public function getIterator($name, array $args = []); +} diff --git a/lib/aws/Aws/S3/S3EndpointMiddleware.php b/lib/aws/Aws/S3/S3EndpointMiddleware.php new file mode 100644 index 0000000..a6bd27a --- /dev/null +++ b/lib/aws/Aws/S3/S3EndpointMiddleware.php @@ -0,0 +1,234 @@ +<?php +namespace Aws\S3; + +use Aws\CommandInterface; +use Psr\Http\Message\RequestInterface; + +/** + * Used to update the URL used for S3 requests to support: + * S3 Accelerate, S3 DualStack or Both. It will build to + * host style paths unless specified, including for S3 + * DualStack. + * + * IMPORTANT: this middleware must be added after the "build" step. + * + * @internal + */ +class S3EndpointMiddleware +{ + private static $exclusions = [ + 'CreateBucket' => true, + 'DeleteBucket' => true, + 'ListBuckets' => true, + ]; + + const NO_PATTERN = 0; + const DUALSTACK = 1; + const ACCELERATE = 2; + const ACCELERATE_DUALSTACK = 3; + const PATH_STYLE = 4; + const HOST_STYLE = 5; + + /** @var bool */ + private $accelerateByDefault; + /** @var bool */ + private $dualStackByDefault; + /** @var bool */ + private $pathStyleByDefault; + /** @var string */ + private $region; + /** @var callable */ + private $nextHandler; + + /** + * Create a middleware wrapper function + * + * @param string $region + * @param array $options + * + * @return callable + */ + public static function wrap($region, array $options) + { + return function (callable $handler) use ($region, $options) { + return new self($handler, $region, $options); + }; + } + + public function __construct( + callable $nextHandler, + $region, + array $options + ) { + $this->pathStyleByDefault = isset($options['path_style']) + ? (bool) $options['path_style'] : false; + $this->dualStackByDefault = isset($options['dual_stack']) + ? (bool) $options['dual_stack'] : false; + $this->accelerateByDefault = isset($options['accelerate']) + ? (bool) $options['accelerate'] : false; + $this->region = (string) $region; + $this->nextHandler = $nextHandler; + } + + public function __invoke(CommandInterface $command, RequestInterface $request) + { + switch ($this->endpointPatternDecider($command, $request)) { + case self::HOST_STYLE: + $request = $this->applyHostStyleEndpoint($command, $request); + break; + case self::NO_PATTERN: + case self::PATH_STYLE: + break; + case self::DUALSTACK: + $request = $this->applyDualStackEndpoint($command, $request); + break; + case self::ACCELERATE: + $request = $this->applyAccelerateEndpoint( + $command, + $request, + 's3-accelerate' + ); + break; + case self::ACCELERATE_DUALSTACK: + $request = $this->applyAccelerateEndpoint( + $command, + $request, + 's3-accelerate.dualstack' + ); + break; + } + + $nextHandler = $this->nextHandler; + return $nextHandler($command, $request); + } + + private static function isRequestHostStyleCompatible( + CommandInterface $command, + RequestInterface $request + ) { + return S3Client::isBucketDnsCompatible($command['Bucket']) + && ( + $request->getUri()->getScheme() === 'http' + || strpos($command['Bucket'], '.') === false + ); + } + + private function endpointPatternDecider( + CommandInterface $command, + RequestInterface $request + ) { + $accelerate = isset($command['@use_accelerate_endpoint']) + ? $command['@use_accelerate_endpoint'] : $this->accelerateByDefault; + $dualStack = isset($command['@use_dual_stack_endpoint']) + ? $command['@use_dual_stack_endpoint'] : $this->dualStackByDefault; + $pathStyle = isset($command['@use_path_style_endpoint']) + ? $command['@use_path_style_endpoint'] : $this->pathStyleByDefault; + + if ($accelerate && $dualStack) { + // When try to enable both for operations excluded from s3-accelerate, + // only dualstack endpoints will be enabled. + return $this->canAccelerate($command) + ? self::ACCELERATE_DUALSTACK + : self::DUALSTACK; + } + + if ($accelerate && $this->canAccelerate($command)) { + return self::ACCELERATE; + } + + if ($dualStack) { + return self::DUALSTACK; + } + + if (!$pathStyle + && self::isRequestHostStyleCompatible($command, $request) + ) { + return self::HOST_STYLE; + } + + return self::PATH_STYLE; + } + + private function canAccelerate(CommandInterface $command) + { + return empty(self::$exclusions[$command->getName()]) + && S3Client::isBucketDnsCompatible($command['Bucket']); + } + + private function getBucketStyleHost(CommandInterface $command, $host) + { + // For operations on the base host (e.g. ListBuckets) + if (!isset($command['Bucket'])) { + return $host; + } + + return "{$command['Bucket']}.{$host}"; + } + + private function applyHostStyleEndpoint( + CommandInterface $command, + RequestInterface $request + ) { + $uri = $request->getUri(); + $request = $request->withUri( + $uri->withHost($this->getBucketStyleHost( + $command, + $uri->getHost() + )) + ->withPath($this->getBucketlessPath( + $uri->getPath(), + $command + )) + ); + return $request; + } + + private function applyDualStackEndpoint( + CommandInterface $command, + RequestInterface $request + ) { + $request = $request->withUri( + $request->getUri() + ->withHost($this->getDualStackHost()) + ); + if (empty($command['@use_path_style_endpoint']) + && !$this->pathStyleByDefault + && self::isRequestHostStyleCompatible($command, $request) + ) { + $request = $this->applyHostStyleEndpoint($command, $request); + } + return $request; + } + + private function getDualStackHost() + { + return "s3.dualstack.{$this->region}.amazonaws.com"; + } + + private function applyAccelerateEndpoint( + CommandInterface $command, + RequestInterface $request, + $pattern + ) { + $request = $request->withUri( + $request->getUri() + ->withHost($this->getAccelerateHost($command, $pattern)) + ->withPath($this->getBucketlessPath( + $request->getUri()->getPath(), + $command + )) + ); + return $request; + } + + private function getAccelerateHost(CommandInterface $command, $pattern) + { + return "{$command['Bucket']}.{$pattern}.amazonaws.com"; + } + + private function getBucketlessPath($path, CommandInterface $command) + { + $pattern = '/^\\/' . preg_quote($command['Bucket'], '/') . '/'; + return preg_replace($pattern, '', $path) ?: '/'; + } +} diff --git a/lib/aws/Aws/S3/S3MultiRegionClient.php b/lib/aws/Aws/S3/S3MultiRegionClient.php new file mode 100644 index 0000000..4b097c3 --- /dev/null +++ b/lib/aws/Aws/S3/S3MultiRegionClient.php @@ -0,0 +1,339 @@ +<?php +namespace Aws\S3; + +use Aws\CacheInterface; +use Aws\CommandInterface; +use Aws\LruArrayCache; +use Aws\MultiRegionClient as BaseClient; +use Aws\Exception\AwsException; +use Aws\S3\Exception\PermanentRedirectException; +use GuzzleHttp\Promise; + +/** + * **Amazon Simple Storage Service** multi-region client. + * + * @method \Aws\Result abortMultipartUpload(array $args = []) + * @method \GuzzleHttp\Promise\Promise abortMultipartUploadAsync(array $args = []) + * @method \Aws\Result completeMultipartUpload(array $args = []) + * @method \GuzzleHttp\Promise\Promise completeMultipartUploadAsync(array $args = []) + * @method \Aws\Result copyObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise copyObjectAsync(array $args = []) + * @method \Aws\Result createBucket(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBucketAsync(array $args = []) + * @method \Aws\Result createMultipartUpload(array $args = []) + * @method \GuzzleHttp\Promise\Promise createMultipartUploadAsync(array $args = []) + * @method \Aws\Result deleteBucket(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketAsync(array $args = []) + * @method \Aws\Result deleteBucketAnalyticsConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketAnalyticsConfigurationAsync(array $args = []) + * @method \Aws\Result deleteBucketCors(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketCorsAsync(array $args = []) + * @method \Aws\Result deleteBucketEncryption(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketEncryptionAsync(array $args = []) + * @method \Aws\Result deleteBucketInventoryConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketInventoryConfigurationAsync(array $args = []) + * @method \Aws\Result deleteBucketLifecycle(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketLifecycleAsync(array $args = []) + * @method \Aws\Result deleteBucketMetricsConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketMetricsConfigurationAsync(array $args = []) + * @method \Aws\Result deleteBucketPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketPolicyAsync(array $args = []) + * @method \Aws\Result deleteBucketReplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketReplicationAsync(array $args = []) + * @method \Aws\Result deleteBucketTagging(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketTaggingAsync(array $args = []) + * @method \Aws\Result deleteBucketWebsite(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketWebsiteAsync(array $args = []) + * @method \Aws\Result deleteObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteObjectAsync(array $args = []) + * @method \Aws\Result deleteObjectTagging(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteObjectTaggingAsync(array $args = []) + * @method \Aws\Result deleteObjects(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteObjectsAsync(array $args = []) + * @method \Aws\Result deletePublicAccessBlock(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePublicAccessBlockAsync(array $args = []) + * @method \Aws\Result getBucketAccelerateConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketAccelerateConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketAcl(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketAclAsync(array $args = []) + * @method \Aws\Result getBucketAnalyticsConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketAnalyticsConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketCors(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketCorsAsync(array $args = []) + * @method \Aws\Result getBucketEncryption(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketEncryptionAsync(array $args = []) + * @method \Aws\Result getBucketInventoryConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketInventoryConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketLifecycle(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketLifecycleAsync(array $args = []) + * @method \Aws\Result getBucketLifecycleConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketLifecycleConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketLocation(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketLocationAsync(array $args = []) + * @method \Aws\Result getBucketLogging(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketLoggingAsync(array $args = []) + * @method \Aws\Result getBucketMetricsConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketMetricsConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketNotification(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketNotificationAsync(array $args = []) + * @method \Aws\Result getBucketNotificationConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketNotificationConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketPolicyAsync(array $args = []) + * @method \Aws\Result getBucketPolicyStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketPolicyStatusAsync(array $args = []) + * @method \Aws\Result getBucketReplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketReplicationAsync(array $args = []) + * @method \Aws\Result getBucketRequestPayment(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketRequestPaymentAsync(array $args = []) + * @method \Aws\Result getBucketTagging(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketTaggingAsync(array $args = []) + * @method \Aws\Result getBucketVersioning(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketVersioningAsync(array $args = []) + * @method \Aws\Result getBucketWebsite(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketWebsiteAsync(array $args = []) + * @method \Aws\Result getObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectAsync(array $args = []) + * @method \Aws\Result getObjectAcl(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectAclAsync(array $args = []) + * @method \Aws\Result getObjectLegalHold(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectLegalHoldAsync(array $args = []) + * @method \Aws\Result getObjectLockConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectLockConfigurationAsync(array $args = []) + * @method \Aws\Result getObjectRetention(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectRetentionAsync(array $args = []) + * @method \Aws\Result getObjectTagging(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectTaggingAsync(array $args = []) + * @method \Aws\Result getObjectTorrent(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectTorrentAsync(array $args = []) + * @method \Aws\Result getPublicAccessBlock(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPublicAccessBlockAsync(array $args = []) + * @method \Aws\Result headBucket(array $args = []) + * @method \GuzzleHttp\Promise\Promise headBucketAsync(array $args = []) + * @method \Aws\Result headObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise headObjectAsync(array $args = []) + * @method \Aws\Result listBucketAnalyticsConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBucketAnalyticsConfigurationsAsync(array $args = []) + * @method \Aws\Result listBucketInventoryConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBucketInventoryConfigurationsAsync(array $args = []) + * @method \Aws\Result listBucketMetricsConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBucketMetricsConfigurationsAsync(array $args = []) + * @method \Aws\Result listBuckets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBucketsAsync(array $args = []) + * @method \Aws\Result listMultipartUploads(array $args = []) + * @method \GuzzleHttp\Promise\Promise listMultipartUploadsAsync(array $args = []) + * @method \Aws\Result listObjectVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listObjectVersionsAsync(array $args = []) + * @method \Aws\Result listObjects(array $args = []) + * @method \GuzzleHttp\Promise\Promise listObjectsAsync(array $args = []) + * @method \Aws\Result listObjectsV2(array $args = []) + * @method \GuzzleHttp\Promise\Promise listObjectsV2Async(array $args = []) + * @method \Aws\Result listParts(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPartsAsync(array $args = []) + * @method \Aws\Result putBucketAccelerateConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketAccelerateConfigurationAsync(array $args = []) + * @method \Aws\Result putBucketAcl(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketAclAsync(array $args = []) + * @method \Aws\Result putBucketAnalyticsConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketAnalyticsConfigurationAsync(array $args = []) + * @method \Aws\Result putBucketCors(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketCorsAsync(array $args = []) + * @method \Aws\Result putBucketEncryption(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketEncryptionAsync(array $args = []) + * @method \Aws\Result putBucketInventoryConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketInventoryConfigurationAsync(array $args = []) + * @method \Aws\Result putBucketLifecycle(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketLifecycleAsync(array $args = []) + * @method \Aws\Result putBucketLifecycleConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketLifecycleConfigurationAsync(array $args = []) + * @method \Aws\Result putBucketLogging(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketLoggingAsync(array $args = []) + * @method \Aws\Result putBucketMetricsConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketMetricsConfigurationAsync(array $args = []) + * @method \Aws\Result putBucketNotification(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketNotificationAsync(array $args = []) + * @method \Aws\Result putBucketNotificationConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketNotificationConfigurationAsync(array $args = []) + * @method \Aws\Result putBucketPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketPolicyAsync(array $args = []) + * @method \Aws\Result putBucketReplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketReplicationAsync(array $args = []) + * @method \Aws\Result putBucketRequestPayment(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketRequestPaymentAsync(array $args = []) + * @method \Aws\Result putBucketTagging(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketTaggingAsync(array $args = []) + * @method \Aws\Result putBucketVersioning(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketVersioningAsync(array $args = []) + * @method \Aws\Result putBucketWebsite(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketWebsiteAsync(array $args = []) + * @method \Aws\Result putObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise putObjectAsync(array $args = []) + * @method \Aws\Result putObjectAcl(array $args = []) + * @method \GuzzleHttp\Promise\Promise putObjectAclAsync(array $args = []) + * @method \Aws\Result putObjectLegalHold(array $args = []) + * @method \GuzzleHttp\Promise\Promise putObjectLegalHoldAsync(array $args = []) + * @method \Aws\Result putObjectLockConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putObjectLockConfigurationAsync(array $args = []) + * @method \Aws\Result putObjectRetention(array $args = []) + * @method \GuzzleHttp\Promise\Promise putObjectRetentionAsync(array $args = []) + * @method \Aws\Result putObjectTagging(array $args = []) + * @method \GuzzleHttp\Promise\Promise putObjectTaggingAsync(array $args = []) + * @method \Aws\Result putPublicAccessBlock(array $args = []) + * @method \GuzzleHttp\Promise\Promise putPublicAccessBlockAsync(array $args = []) + * @method \Aws\Result restoreObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise restoreObjectAsync(array $args = []) + * @method \Aws\Result selectObjectContent(array $args = []) + * @method \GuzzleHttp\Promise\Promise selectObjectContentAsync(array $args = []) + * @method \Aws\Result uploadPart(array $args = []) + * @method \GuzzleHttp\Promise\Promise uploadPartAsync(array $args = []) + * @method \Aws\Result uploadPartCopy(array $args = []) + * @method \GuzzleHttp\Promise\Promise uploadPartCopyAsync(array $args = []) + */ +class S3MultiRegionClient extends BaseClient implements S3ClientInterface +{ + use S3ClientTrait; + + /** @var CacheInterface */ + private $cache; + + public static function getArguments() + { + $args = parent::getArguments(); + $regionDef = $args['region'] + ['default' => function (array &$args) { + $availableRegions = array_keys($args['partition']['regions']); + return end($availableRegions); + }]; + unset($args['region']); + + return $args + [ + 'bucket_region_cache' => [ + 'type' => 'config', + 'valid' => [CacheInterface::class], + 'doc' => 'Cache of regions in which given buckets are located.', + 'default' => function () { return new LruArrayCache; }, + ], + 'region' => $regionDef, + ]; + } + + public function __construct(array $args) + { + parent::__construct($args); + $this->cache = $this->getConfig('bucket_region_cache'); + + $this->getHandlerList()->prependInit( + $this->determineRegionMiddleware(), + 'determine_region' + ); + } + + private function determineRegionMiddleware() + { + return function (callable $handler) { + return function (CommandInterface $command) use ($handler) { + $cacheKey = $this->getCacheKey($command['Bucket']); + if ( + empty($command['@region']) && + $region = $this->cache->get($cacheKey) + ) { + $command['@region'] = $region; + } + + return Promise\coroutine(function () use ( + $handler, + $command, + $cacheKey + ) { + try { + yield $handler($command); + } catch (PermanentRedirectException $e) { + if (empty($command['Bucket'])) { + throw $e; + } + $result = $e->getResult(); + $region = null; + if (isset($result['@metadata']['headers']['x-amz-bucket-region'])) { + $region = $result['@metadata']['headers']['x-amz-bucket-region']; + $this->cache->set($cacheKey, $region); + } else { + $region = (yield $this->determineBucketRegionAsync( + $command['Bucket'] + )); + } + + $command['@region'] = $region; + yield $handler($command); + } catch (AwsException $e) { + if ($e->getAwsErrorCode() === 'AuthorizationHeaderMalformed') { + $region = $this->determineBucketRegionFromExceptionBody( + $e->getResponse() + ); + if (!empty($region)) { + $this->cache->set($cacheKey, $region); + + $command['@region'] = $region; + yield $handler($command); + } else { + throw $e; + } + } else { + throw $e; + } + } + }); + }; + }; + } + + public function createPresignedRequest(CommandInterface $command, $expires) + { + if (empty($command['Bucket'])) { + throw new \InvalidArgumentException('The S3\\MultiRegionClient' + . ' cannot create presigned requests for commands without a' + . ' specified bucket.'); + } + + /** @var S3ClientInterface $client */ + $client = $this->getClientFromPool( + $this->determineBucketRegion($command['Bucket']) + ); + return $client->createPresignedRequest( + $client->getCommand($command->getName(), $command->toArray()), + $expires + ); + } + + public function getObjectUrl($bucket, $key) + { + /** @var S3Client $regionalClient */ + $regionalClient = $this->getClientFromPool( + $this->determineBucketRegion($bucket) + ); + + return $regionalClient->getObjectUrl($bucket, $key); + } + + public function determineBucketRegionAsync($bucketName) + { + $cacheKey = $this->getCacheKey($bucketName); + if ($cached = $this->cache->get($cacheKey)) { + return Promise\promise_for($cached); + } + + /** @var S3ClientInterface $regionalClient */ + $regionalClient = $this->getClientFromPool(); + return $regionalClient->determineBucketRegionAsync($bucketName) + ->then( + function ($region) use ($cacheKey) { + $this->cache->set($cacheKey, $region); + + return $region; + } + ); + } + + private function getCacheKey($bucketName) + { + return "aws:s3:{$bucketName}:location"; + } +} diff --git a/lib/aws/Aws/S3/S3UriParser.php b/lib/aws/Aws/S3/S3UriParser.php new file mode 100644 index 0000000..d829509 --- /dev/null +++ b/lib/aws/Aws/S3/S3UriParser.php @@ -0,0 +1,133 @@ +<?php +namespace Aws\S3; + +use GuzzleHttp\Psr7; +use Psr\Http\Message\UriInterface; + +/** + * Extracts a region, bucket, key, and and if a URI is in path-style + */ +class S3UriParser +{ + private $pattern = '/^(.+\\.)?s3[.-]([A-Za-z0-9-]+)\\./'; + private $streamWrapperScheme = 's3'; + + private static $defaultResult = [ + 'path_style' => true, + 'bucket' => null, + 'key' => null, + 'region' => null + ]; + + /** + * Parses a URL or S3 StreamWrapper Uri (s3://) 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->getScheme() == $this->streamWrapperScheme) { + return $this->parseStreamWrapper($url); + } + + 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 parseStreamWrapper(UriInterface $url) + { + $result = self::$defaultResult; + $result['path_style'] = false; + + $result['bucket'] = $url->getHost(); + if ($url->getPath()) { + $key = ltrim($url->getPath(), '/ '); + if (!empty($key)) { + $result['key'] = $key; + } + } + + return $result; + } + + private function parseCustomEndpoint(UriInterface $url) + { + $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/Aws/S3/SSECMiddleware.php b/lib/aws/Aws/S3/SSECMiddleware.php new file mode 100644 index 0000000..9435a20 --- /dev/null +++ b/lib/aws/Aws/S3/SSECMiddleware.php @@ -0,0 +1,75 @@ +<?php +namespace Aws\S3; + +use Aws\CommandInterface; +use Psr\Http\Message\RequestInterface; + +/** + * Simplifies the SSE-C process by encoding and hashing the key. + * @internal + */ +class SSECMiddleware +{ + private $endpointScheme; + private $nextHandler; + + /** + * Provide the URI scheme of the client sending requests. + * + * @param string $endpointScheme URI scheme (http/https). + * + * @return callable + */ + public static function wrap($endpointScheme) + { + return function (callable $handler) use ($endpointScheme) { + return new self($endpointScheme, $handler); + }; + } + + public function __construct($endpointScheme, callable $nextHandler) + { + $this->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/Aws/S3/StreamWrapper.php b/lib/aws/Aws/S3/StreamWrapper.php new file mode 100644 index 0000000..fbf6183 --- /dev/null +++ b/lib/aws/Aws/S3/StreamWrapper.php @@ -0,0 +1,958 @@ +<?php +namespace Aws\S3; + +use Aws\CacheInterface; +use Aws\LruArrayCache; +use Aws\Result; +use Aws\S3\Exception\S3Exception; +use GuzzleHttp\Psr7; +use GuzzleHttp\Psr7\Stream; +use GuzzleHttp\Psr7\CachingStream; +use Psr\Http\Message\StreamInterface; + +/** + * Amazon S3 stream wrapper to use "s3://<bucket>/<key>" 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. + * + * 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). + * + * 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. + * + * # 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). + * + * 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 + */ +class StreamWrapper +{ + /** @var resource|null Stream context (this is set by PHP) */ + public $context; + + /** @var StreamInterface Underlying stream resource */ + private $body; + + /** @var int Size of the body that is opened */ + private $size; + + /** @var array Hash of opened stream parameters */ + private $params = []; + + /** @var string Mode in which the stream was opened */ + private $mode; + + /** @var \Iterator Iterator used with opendir() related calls */ + private $objectIterator; + + /** @var string The bucket that was opened when opendir() was called */ + private $openedBucket; + + /** @var string The prefix of the bucket that was opened with opendir() */ + private $openedBucketPrefix; + + /** @var string Opened bucket path */ + private $openedPath; + + /** @var CacheInterface Cache for object and dir lookups */ + private $cache; + + /** @var string The opened protocol (e.g., "s3") */ + private $protocol = 's3'; + + /** @var bool Keeps track of whether stream has been flushed since opening */ + private $isFlushed = false; + + /** + * Register the 's3://' stream wrapper + * + * @param S3ClientInterface $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( + S3ClientInterface $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_context_set_default($default); + } + + public function stream_close() + { + if ($this->body->getSize() === 0 && !($this->isFlushed)) { + $this->stream_flush(); + } + $this->body = $this->cache = null; + } + + public function stream_open($path, $mode, $options, &$opened_path) + { + $this->initProtocol($path); + $this->isFlushed = false; + $this->params = $this->getBucketKey($path); + $this->mode = rtrim($mode, 'bt'); + + if ($errors = $this->validate($path, $this->mode)) { + return $this->triggerError($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); + } + }); + } + + public function stream_eof() + { + return $this->body->eof(); + } + + public function stream_flush() + { + $this->isFlushed = true; + if ($this->mode == 'r') { + return false; + } + + 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 = Psr7\mimetype_from_filename($params['Key'])) + ) { + $params['ContentType'] = $type; + } + + $this->clearCacheKey("s3://{$params['Bucket']}/{$params['Key']}"); + return $this->boolCall(function () use ($params) { + return (bool) $this->getClient()->putObject($params); + }); + } + + public function stream_read($count) + { + return $this->body->read($count); + } + + public function stream_seek($offset, $whence = SEEK_SET) + { + return !$this->body->isSeekable() + ? false + : $this->boolCall(function () use ($offset, $whence) { + $this->body->seek($offset, $whence); + return true; + }); + } + + public function stream_tell() + { + return $this->boolCall(function() { return $this->body->tell(); }); + } + + public function stream_write($data) + { + return $this->body->write($data); + } + + public function unlink($path) + { + $this->initProtocol($path); + + return $this->boolCall(function () use ($path) { + $this->clearCacheKey($path); + $this->getClient()->deleteObject($this->withPath($path)); + return true; + }); + } + + public function stream_stat() + { + $stat = $this->getStatTemplate(); + $stat[7] = $stat['size'] = $this->getSize(); + $stat[2] = $stat['mode'] = $this->mode; + + return $stat; + } + + /** + * 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) + { + $this->initProtocol($path); + + // 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 ($value = $this->getCacheStorage()->get($path)) { + return $value; + } + + $stat = $this->createStat($path, $flags); + + if (is_array($stat)) { + $this->getCacheStorage()->set($path, $stat); + } + + return $stat; + } + + /** + * Parse the protocol out of the given path. + * + * @param $path + */ + private function initProtocol($path) + { + $parts = explode('://', $path, 2); + $this->protocol = $parts[0] ?: 's3'; + } + + private function createStat($path, $flags) + { + $this->initProtocol($path); + $parts = $this->withPath($path); + + if (!$parts['Key']) { + return $this->statDirectory($parts, $path, $flags); + } + + return $this->boolCall(function () use ($parts, $path) { + try { + $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); + } + + // Attempt to stat and cache regular object + return $this->formatUrlStat($result->toArray()); + } 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']) { + throw new \Exception("File or directory not found: $path"); + } + return $this->formatUrlStat($path); + } + }, $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. + * + * @return bool + * @link http://www.php.net/manual/en/streamwrapper.mkdir.php + */ + public function mkdir($path, $mode, $options) + { + $this->initProtocol($path); + $params = $this->withPath($path); + $this->clearCacheKey($path); + if (!$params['Bucket']) { + return false; + } + + if (!isset($params['ACL'])) { + $params['ACL'] = $this->determineAcl($mode); + } + + return empty($params['Key']) + ? $this->createBucket($path, $params) + : $this->createSubfolder($path, $params); + } + + public function rmdir($path, $options) + { + $this->initProtocol($path); + $this->clearCacheKey($path); + $params = $this->withPath($path); + $client = $this->getClient(); + + if (!$params['Bucket']) { + return $this->triggerError('You must specify a bucket'); + } + + return $this->boolCall(function () use ($params, $path, $client) { + if (!$params['Key']) { + $client->deleteBucket(['Bucket' => $params['Bucket']]); + return true; + } + return $this->deleteSubfolder($path, $params); + }); + } + + /** + * Support for opendir(). + * + * The opendir() method of the Amazon S3 stream wrapper supports a stream + * context option of "listFilter". listFilter must be a callable that + * accepts an associative array of object data and returns true if the + * object should be yielded when iterating the keys in a bucket. + * + * @param string $path The path to the directory + * (e.g. "s3://dir[</prefix>]") + * @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) + { + $this->initProtocol($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->openedBucketPrefix = $params['Key']; + + // 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 = \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) !== '/'); + } + ); + } + ); + + return true; + } + + /** + * Close the directory listing handles + * + * @return bool true on success + */ + public function dir_closedir() + { + $this->objectIterator = null; + gc_collect_cycles(); + + return true; + } + + /** + * This method is called in response to rewinddir() + * + * @return boolean true on success + */ + public function dir_rewinddir() + { + $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. + * @link http://www.php.net/manual/en/function.readdir.php + */ + public function dir_readdir() + { + // Skip empty result keys + if (!$this->objectIterator->valid()) { + return false; + } + + // 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. + $result = rtrim($cur['Prefix'], '/'); + $key = $this->formatKey($result); + $stat = $this->formatUrlStat($key); + } else { + $result = $cur['Key']; + $key = $this->formatKey($cur['Key']); + $stat = $this->formatUrlStat($cur); + } + + // Cache the object data for quick url_stat lookups used with + // RecursiveDirectoryIterator. + $this->getCacheStorage()->set($key, $stat); + $this->objectIterator->next(); + + // 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. + * + * @param string $path_from the path to the file to rename + * @param string $path_to the new path to the file + * + * @return bool true if file was successfully renamed + * @link http://www.php.net/manual/en/function.rename.php + */ + public function rename($path_from, $path_to) + { + // PHP will not allow rename across wrapper types, so we can safely + // assume $path_from and $path_to have the same protocol + $this->initProtocol($path_from); + $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'); + } + + return $this->boolCall(function () use ($partsFrom, $partsTo) { + $options = $this->getOptions(true); + // Copy the object and allow overriding default parameters if + // desired, but by default copy metadata + $this->getClient()->copy( + $partsFrom['Bucket'], + $partsFrom['Key'], + $partsTo['Bucket'], + $partsTo['Key'], + isset($options['acl']) ? $options['acl'] : 'private', + $options + ); + // Delete the original object + $this->getClient()->deleteObject([ + 'Bucket' => $partsFrom['Bucket'], + 'Key' => $partsFrom['Key'] + ] + $options); + return true; + }); + } + + public function stream_cast($cast_as) + { + return false; + } + + /** + * Validates the provided stream arguments for fopen and returns an array + * of errors. + */ + private function validate($path, $mode) + { + $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 + */ + private function getOptions($removeContextData = false) + { + // 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[$this->protocol]) + ? $options[$this->protocol] + : []; + } + + $default = stream_context_get_options(stream_context_get_default()); + $default = isset($default[$this->protocol]) + ? $default[$this->protocol] + : []; + $result = $this->params + $options + $default; + + if ($removeContextData) { + unset($result['client'], $result['seekable'], $result['cache']); + } + + return $result; + } + + /** + * Get a specific stream context option + * + * @param string $name Name of the option to retrieve + * + * @return mixed|null + */ + private function getOption($name) + { + $options = $this->getOptions(); + + return isset($options[$name]) ? $options[$name] : null; + } + + /** + * Gets the client from the stream context + * + * @return S3ClientInterface + * @throws \RuntimeException if no client has been configured + */ + private function getClient() + { + if (!$client = $this->getOption('client')) { + throw new \RuntimeException('No client in stream context'); + } + + return $client; + } + + private function getBucketKey($path) + { + // Remove the protocol + $parts = explode('://', $path); + // Get the bucket, key + $parts = explode('/', $parts[1], 2); + + return [ + 'Bucket' => $parts[0], + 'Key' => isset($parts[1]) ? $parts[1] : null + ]; + } + + /** + * Get the bucket and key from the passed path (e.g. s3://bucket/key) + * + * @param string $path Path passed to the stream wrapper + * + * @return array Hash of 'Bucket', 'Key', and custom params from the context + */ + private function withPath($path) + { + $params = $this->getOptions(true); + + return $this->getBucketKey($path) + $params; + } + + private function openReadStream() + { + $client = $this->getClient(); + $command = $client->getCommand('GetObject', $this->getOptions(true)); + $command['@http']['stream'] = true; + $result = $client->execute($command); + $this->size = $result['ContentLength']; + $this->body = $result['Body']; + + // Wrap the body in a caching entity body if seeking is allowed + if ($this->getOption('seekable') && !$this->body->isSeekable()) { + $this->body = new CachingStream($this->body); + } + + return true; + } + + private function openWriteStream() + { + $this->body = new Stream(fopen('php://temp', 'r+')); + return true; + } + + private function openAppendStream() + { + try { + // 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 + return $this->openWriteStream(); + } + } + + /** + * Trigger one or more errors + * + * @param string|array $errors Errors to trigger + * @param mixed $flags If set to STREAM_URL_STAT_QUIET, then no + * error or exception occurs + * + * @return bool Returns false + * @throws \RuntimeException if throw_errors is true + */ + private function triggerError($errors, $flags = null) + { + // This is triggered with things like file_exists() + if ($flags & STREAM_URL_STAT_QUIET) { + 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() + trigger_error(implode("\n", (array) $errors), E_USER_WARNING); + + return false; + } + + /** + * Prepare a url_stat result array + * + * @param string|array $result Data to add + * + * @return array Returns the modified url_stat result + */ + 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; + } + + /** + * Creates a bucket for the given parameters. + * + * @param string $path Stream wrapper path + * @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 ($this->getClient()->doesBucketExist($params['Bucket'])) { + return $this->triggerError("Bucket already exists: {$path}"); + } + + return $this->boolCall(function () use ($params, $path) { + $this->getClient()->createBucket($params); + $this->clearCacheKey($path); + return true; + }); + } + + /** + * Creates a pseudo-folder by creating an empty "/" suffixed key + * + * @param string $path Stream wrapper path + * @param array $params A result of StreamWrapper::withPath() + * + * @return bool + */ + 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 ($this->getClient()->doesObjectExist( + $params['Bucket'], + $params['Key']) + ) { + return $this->triggerError("Subfolder already exists: {$path}"); + } + + return $this->boolCall(function () use ($params, $path) { + $this->getClient()->putObject($params); + $this->clearCacheKey($path); + return true; + }); + } + + /** + * 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; + } + + /** + * Determine the most appropriate ACL based on a file mode. + * + * @param int $mode File mode + * + * @return string + */ + private function determineAcl($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, + ]; + } + + /** + * 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); + } + } + + /** + * @return LruArrayCache + */ + private function getCacheStorage() + { + if (!$this->cache) { + $this->cache = $this->getOption('cache') ?: new LruArrayCache(); + } + + 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); + } + + /** + * Returns the size of the opened object body. + * + * @return int|null + */ + private function getSize() + { + $size = $this->body->getSize(); + + return $size !== null ? $size : $this->size; + } +} diff --git a/lib/aws/Aws/S3/Transfer.php b/lib/aws/Aws/S3/Transfer.php new file mode 100644 index 0000000..1e11d3d --- /dev/null +++ b/lib/aws/Aws/S3/Transfer.php @@ -0,0 +1,428 @@ +<?php +namespace Aws\S3; + +use Aws; +use Aws\CommandInterface; +use Aws\Exception\AwsException; +use GuzzleHttp\Promise; +use GuzzleHttp\Promise\PromisorInterface; +use Iterator; + +/** + * Transfers files from the local filesystem to S3 or from S3 to the local + * filesystem. + * + * This class does not support copying from the local filesystem to somewhere + * else on the local filesystem or from one S3 bucket to another. + */ +class Transfer implements PromisorInterface +{ + private $client; + private $promise; + private $source; + private $sourceMetadata; + private $destination; + private $concurrency; + private $mupThreshold; + private $before; + private $s3Args = []; + + /** + * When providing the $source argument, you may provide a string referencing + * the path to a directory on disk to upload, an s3 scheme URI that contains + * the bucket and key (e.g., "s3://bucket/key"), or an \Iterator object + * that yields strings containing filenames that are the path to a file on + * disk or an s3 scheme URI. The "/key" portion of an s3 URI is optional. + * + * When providing an iterator for the $source argument, you must also + * provide a 'base_dir' key value pair in the $options argument. + * + * The $dest argument can be the path to a directory on disk or an s3 + * scheme URI (e.g., "s3://bucket/key"). + * + * The options array can contain the following key value pairs: + * + * - base_dir: (string) Base directory of the source, if $source is an + * iterator. If the $source option is not an array, then this option is + * ignored. + * - before: (callable) A callback to invoke before each transfer. The + * callback accepts a single argument: Aws\CommandInterface $command. + * The provided command will be either a GetObject, PutObject, + * InitiateMultipartUpload, or UploadPart command. + * - mup_threshold: (int) Size in bytes in which a multipart upload should + * be used instead of PutObject. Defaults to 20971520 (20 MB). + * - concurrency: (int, default=5) Number of files to upload concurrently. + * The ideal concurrency value will vary based on the number of files + * being uploaded and the average size of each file. Generally speaking, + * smaller files benefit from a higher concurrency while larger files + * will not. + * - debug: (bool) Set to true to print out debug information for + * transfers. Set to an fopen() resource to write to a specific stream + * rather than writing to STDOUT. + * + * @param S3ClientInterface $client Client used for transfers. + * @param string|Iterator $source Where the files are transferred from. + * @param string $dest Where the files are transferred to. + * @param array $options Hash of options. + */ + public function __construct( + S3ClientInterface $client, + $source, + $dest, + array $options = [] + ) { + $this->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->sourceMetadata = $this->prepareTarget($source); + $this->source = $source; + } elseif ($source instanceof Iterator) { + if (empty($options['base_dir'])) { + throw new \InvalidArgumentException('You must provide the source' + . ' argument as a string or provide the "base_dir" option.'); + } + + $this->sourceMetadata = $this->prepareTarget($options['base_dir']); + $this->source = $source; + } else { + throw new \InvalidArgumentException('source must be the path to a ' + . 'directory or an iterator that yields file names.'); + } + + // Validate schemes. + if ($this->sourceMetadata['scheme'] === $this->destination['scheme']) { + throw new \InvalidArgumentException("You cannot copy from" + . " {$this->sourceMetadata['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->sourceMetadata['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 UNIX-style directory separators and no trailing / + * + * @param string $path + * + * @return string + */ + private function normalizePath($path) + { + return rtrim(str_replace('\\', '/', $path), '/'); + } + + private function resolveUri($uri) + { + $resolved = []; + $sections = explode('/', $uri); + foreach ($sections as $section) { + if ($section === '.' || $section === '') { + continue; + } + if ($section === '..') { + array_pop($resolved); + } else { + $resolved []= $section; + } + } + + return ($uri[0] === '/' ? '/' : '') + . implode('/', $resolved); + } + + private function createDownloadPromise() + { + $parts = $this->getS3Args($this->sourceMetadata['path']); + $prefix = "s3://{$parts['Bucket']}/" + . (isset($parts['Key']) ? $parts['Key'] . '/' : ''); + + + $commands = []; + foreach ($this->getDownloadsIterator() as $object) { + // Prepare the sink. + $objectKey = preg_replace('/^' . preg_quote($prefix, '/') . '/', '', $object); + + $resolveSink = $this->destination['path'] . '/'; + if (isset($parts['Key']) && strpos($objectKey, $parts['Key']) !== 0) { + $resolveSink .= $parts['Key'] . '/'; + } + $resolveSink .= $objectKey; + $sink = $this->destination['path'] . '/' . $objectKey; + + $command = $this->client->getCommand( + 'GetObject', + $this->getS3Args($object) + ['@http' => ['sink' => $sink]] + ); + + if (strpos( + $this->resolveUri($resolveSink), + $this->destination['path'] + ) !== 0 + ) { + throw new AwsException( + 'Cannot download key ' . $objectKey + . ', its relative path resolves outside the' + . ' parent directory', $command); + } + + // Create the directory if needed. + $dir = dirname($sink); + if (!is_dir($dir) && !mkdir($dir, 0777, true)) { + throw new \RuntimeException("Could not create dir: {$dir}"); + } + + // Create the command. + $commands []= $command; + } + + // 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() + { + // Map each file into a promise that performs the actual transfer. + $files = \Aws\map($this->getUploadsIterator(), 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); + } + + /** @return Iterator */ + private function getUploadsIterator() + { + if (is_string($this->source)) { + return Aws\filter( + Aws\recursive_dir_iterator($this->sourceMetadata['path']), + function ($file) { return !is_dir($file); } + ); + } + + return $this->source; + } + + /** @return Iterator */ + private function getDownloadsIterator() + { + if (is_string($this->source)) { + $listArgs = $this->getS3Args($this->sourceMetadata['path']); + if (isset($listArgs['Key'])) { + $listArgs['Prefix'] = $listArgs['Key'] . '/'; + unset($listArgs['Key']); + } + + $files = $this->client + ->getPaginator('ListObjects', $listArgs) + ->search('Contents[].Key'); + $files = Aws\map($files, function ($key) use ($listArgs) { + return "s3://{$listArgs['Bucket']}/$key"; + }); + return Aws\filter($files, function ($key) { + return substr($key, -1, 1) !== '/'; + }); + } + + return $this->source; + } + + 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) + { + $filename = $this->normalizePath($filename); + $relative_file_path = ltrim( + preg_replace('#^' . preg_quote($this->sourceMetadata['path']) . '#', '', $filename), + '/\\' + ); + + if (isset($this->s3Args['Key'])) { + return rtrim($this->s3Args['Key'], '/').'/'.$relative_file_path; + } + + return $relative_file_path; + } + + private function addDebugToBefore($debug) + { + $before = $this->before; + $sourcePath = $this->sourceMetadata['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/Aws/S3Control/Exception/S3ControlException.php b/lib/aws/Aws/S3Control/Exception/S3ControlException.php new file mode 100644 index 0000000..eb005bf --- /dev/null +++ b/lib/aws/Aws/S3Control/Exception/S3ControlException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\S3Control\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS S3 Control** service. + */ +class S3ControlException extends AwsException {} diff --git a/lib/aws/Aws/S3Control/S3ControlClient.php b/lib/aws/Aws/S3Control/S3ControlClient.php new file mode 100644 index 0000000..2ccc90f --- /dev/null +++ b/lib/aws/Aws/S3Control/S3ControlClient.php @@ -0,0 +1,62 @@ +<?php +namespace Aws\S3Control; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS S3 Control** service. + * @method \Aws\Result deletePublicAccessBlock(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePublicAccessBlockAsync(array $args = []) + * @method \Aws\Result getPublicAccessBlock(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPublicAccessBlockAsync(array $args = []) + * @method \Aws\Result putPublicAccessBlock(array $args = []) + * @method \GuzzleHttp\Promise\Promise putPublicAccessBlockAsync(array $args = []) + */ +class S3ControlClient extends AwsClient +{ + public static function getArguments() + { + $args = parent::getArguments(); + return $args + [ + 'use_dual_stack_endpoint' => [ + 'type' => 'config', + 'valid' => ['bool'], + 'doc' => 'Set to true to send requests to an S3 Control Dual Stack' + . ' endpoint by default, which enables IPv6 Protocol.' + . ' Can be enabled or disabled on individual operations by setting' + . ' \'@use_dual_stack_endpoint\' to true or false.', + 'default' => false, + ], + ]; + } + + /** + * {@inheritdoc} + * + * In addition to the options available to + * {@see Aws\AwsClient::__construct}, S3ControlClient accepts the following + * option: + * + * - use_dual_stack_endpoint: (bool) Set to true to send requests to an S3 + * Control Dual Stack endpoint by default, which enables IPv6 Protocol. + * Can be enabled or disabled on individual operations by setting + * '@use_dual_stack_endpoint\' to true or false. Note: + * you cannot use it together with an accelerate endpoint. + * + * @param array $args + */ + public function __construct(array $args) + { + parent::__construct($args); + $stack = $this->getHandlerList(); + $stack->appendBuild( + S3ControlEndpointMiddleware::wrap( + $this->getRegion(), + [ + 'dual_stack' => $this->getConfig('use_dual_stack_endpoint'), + ] + ), + 's3control.endpoint_middleware' + ); + } +} diff --git a/lib/aws/Aws/S3Control/S3ControlEndpointMiddleware.php b/lib/aws/Aws/S3Control/S3ControlEndpointMiddleware.php new file mode 100644 index 0000000..5619687 --- /dev/null +++ b/lib/aws/Aws/S3Control/S3ControlEndpointMiddleware.php @@ -0,0 +1,121 @@ +<?php +namespace Aws\S3Control; + +use Aws\CommandInterface; +use Psr\Http\Message\RequestInterface; + +/** + * Used to update the URL used for S3 Control requests to support S3 Control + * DualStack. It will build to host style paths, including for S3 Control + * DualStack. + * + * IMPORTANT: this middleware must be added after the "build" step. + * + * @internal + */ +class S3ControlEndpointMiddleware +{ + const NO_PATTERN = 0; + const DUALSTACK = 1; + + /** @var bool */ + private $dualStackByDefault; + /** @var string */ + private $region; + /** @var callable */ + private $nextHandler; + + /** + * Create a middleware wrapper function + * + * @param string $region + * @param array $options + * + * @return callable + */ + public static function wrap($region, array $options) + { + return function (callable $handler) use ($region, $options) { + return new self($handler, $region, $options); + }; + } + + public function __construct( + callable $nextHandler, + $region, + array $options + ) { + $this->dualStackByDefault = isset($options['dual_stack']) + ? (bool) $options['dual_stack'] : false; + $this->region = (string) $region; + $this->nextHandler = $nextHandler; + } + + public function __invoke(CommandInterface $command, RequestInterface $request) + { + if ($this->isDualStackRequest($command, $request)) { + $request = $this->applyDualStackEndpoint($command, $request); + } + $request = $this->applyHostStyleEndpoint($command, $request) + ->withoutHeader('x-amz-account-id'); + unset($command['AccountId']); + + $nextHandler = $this->nextHandler; + return $nextHandler($command, $request); + } + + private function isDualStackRequest( + CommandInterface $command, + RequestInterface $request + ) { + return isset($command['@use_dual_stack_endpoint']) + ? $command['@use_dual_stack_endpoint'] : $this->dualStackByDefault; + } + + private function getDualStackHost($host) + { + $parts = explode(".{$this->region}.", $host); + return $parts[0] . ".dualstack.{$this->region}." . $parts[1]; + } + + private function applyDualStackEndpoint( + CommandInterface $command, + RequestInterface $request + ) { + $uri = $request->getUri(); + return $request->withUri( + $uri->withHost($this->getDualStackHost( + $uri->getHost() + )) + ); + } + + private function getAccountIdStyleHost(CommandInterface $command, $host) + { + return "{$command['AccountId']}.{$host}"; + } + + private function getAccountIdlessPath($path, CommandInterface $command) + { + $pattern = '/^\\/' . preg_quote($command['AccountId'], '/') . '/'; + return preg_replace($pattern, '', $path) ?: '/'; + } + + private function applyHostStyleEndpoint( + CommandInterface $command, + RequestInterface $request + ) { + $uri = $request->getUri(); + $request = $request->withUri( + $uri->withHost($this->getAccountIdStyleHost( + $command, + $uri->getHost() + )) + ->withPath($this->getAccountIdlessPath( + $uri->getPath(), + $command + )) + ); + return $request; + } +} diff --git a/lib/aws/Aws/SageMaker/Exception/SageMakerException.php b/lib/aws/Aws/SageMaker/Exception/SageMakerException.php new file mode 100644 index 0000000..b3f53e3 --- /dev/null +++ b/lib/aws/Aws/SageMaker/Exception/SageMakerException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\SageMaker\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon SageMaker Service** service. + */ +class SageMakerException extends AwsException {} diff --git a/lib/aws/Aws/SageMaker/SageMakerClient.php b/lib/aws/Aws/SageMaker/SageMakerClient.php new file mode 100644 index 0000000..2fa3715 --- /dev/null +++ b/lib/aws/Aws/SageMaker/SageMakerClient.php @@ -0,0 +1,159 @@ +<?php +namespace Aws\SageMaker; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon SageMaker Service** service. + * @method \Aws\Result addTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsAsync(array $args = []) + * @method \Aws\Result createAlgorithm(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAlgorithmAsync(array $args = []) + * @method \Aws\Result createCodeRepository(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCodeRepositoryAsync(array $args = []) + * @method \Aws\Result createCompilationJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCompilationJobAsync(array $args = []) + * @method \Aws\Result createEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise createEndpointAsync(array $args = []) + * @method \Aws\Result createEndpointConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise createEndpointConfigAsync(array $args = []) + * @method \Aws\Result createHyperParameterTuningJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise createHyperParameterTuningJobAsync(array $args = []) + * @method \Aws\Result createLabelingJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLabelingJobAsync(array $args = []) + * @method \Aws\Result createModel(array $args = []) + * @method \GuzzleHttp\Promise\Promise createModelAsync(array $args = []) + * @method \Aws\Result createModelPackage(array $args = []) + * @method \GuzzleHttp\Promise\Promise createModelPackageAsync(array $args = []) + * @method \Aws\Result createNotebookInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise createNotebookInstanceAsync(array $args = []) + * @method \Aws\Result createNotebookInstanceLifecycleConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise createNotebookInstanceLifecycleConfigAsync(array $args = []) + * @method \Aws\Result createPresignedNotebookInstanceUrl(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPresignedNotebookInstanceUrlAsync(array $args = []) + * @method \Aws\Result createTrainingJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTrainingJobAsync(array $args = []) + * @method \Aws\Result createTransformJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTransformJobAsync(array $args = []) + * @method \Aws\Result createWorkteam(array $args = []) + * @method \GuzzleHttp\Promise\Promise createWorkteamAsync(array $args = []) + * @method \Aws\Result deleteAlgorithm(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAlgorithmAsync(array $args = []) + * @method \Aws\Result deleteCodeRepository(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCodeRepositoryAsync(array $args = []) + * @method \Aws\Result deleteEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteEndpointAsync(array $args = []) + * @method \Aws\Result deleteEndpointConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteEndpointConfigAsync(array $args = []) + * @method \Aws\Result deleteModel(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteModelAsync(array $args = []) + * @method \Aws\Result deleteModelPackage(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteModelPackageAsync(array $args = []) + * @method \Aws\Result deleteNotebookInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteNotebookInstanceAsync(array $args = []) + * @method \Aws\Result deleteNotebookInstanceLifecycleConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteNotebookInstanceLifecycleConfigAsync(array $args = []) + * @method \Aws\Result deleteTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTagsAsync(array $args = []) + * @method \Aws\Result deleteWorkteam(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteWorkteamAsync(array $args = []) + * @method \Aws\Result describeAlgorithm(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAlgorithmAsync(array $args = []) + * @method \Aws\Result describeCodeRepository(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCodeRepositoryAsync(array $args = []) + * @method \Aws\Result describeCompilationJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCompilationJobAsync(array $args = []) + * @method \Aws\Result describeEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEndpointAsync(array $args = []) + * @method \Aws\Result describeEndpointConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEndpointConfigAsync(array $args = []) + * @method \Aws\Result describeHyperParameterTuningJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeHyperParameterTuningJobAsync(array $args = []) + * @method \Aws\Result describeLabelingJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeLabelingJobAsync(array $args = []) + * @method \Aws\Result describeModel(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeModelAsync(array $args = []) + * @method \Aws\Result describeModelPackage(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeModelPackageAsync(array $args = []) + * @method \Aws\Result describeNotebookInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeNotebookInstanceAsync(array $args = []) + * @method \Aws\Result describeNotebookInstanceLifecycleConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeNotebookInstanceLifecycleConfigAsync(array $args = []) + * @method \Aws\Result describeSubscribedWorkteam(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSubscribedWorkteamAsync(array $args = []) + * @method \Aws\Result describeTrainingJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTrainingJobAsync(array $args = []) + * @method \Aws\Result describeTransformJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTransformJobAsync(array $args = []) + * @method \Aws\Result describeWorkteam(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeWorkteamAsync(array $args = []) + * @method \Aws\Result getSearchSuggestions(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSearchSuggestionsAsync(array $args = []) + * @method \Aws\Result listAlgorithms(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAlgorithmsAsync(array $args = []) + * @method \Aws\Result listCodeRepositories(array $args = []) + * @method \GuzzleHttp\Promise\Promise listCodeRepositoriesAsync(array $args = []) + * @method \Aws\Result listCompilationJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listCompilationJobsAsync(array $args = []) + * @method \Aws\Result listEndpointConfigs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listEndpointConfigsAsync(array $args = []) + * @method \Aws\Result listEndpoints(array $args = []) + * @method \GuzzleHttp\Promise\Promise listEndpointsAsync(array $args = []) + * @method \Aws\Result listHyperParameterTuningJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listHyperParameterTuningJobsAsync(array $args = []) + * @method \Aws\Result listLabelingJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listLabelingJobsAsync(array $args = []) + * @method \Aws\Result listLabelingJobsForWorkteam(array $args = []) + * @method \GuzzleHttp\Promise\Promise listLabelingJobsForWorkteamAsync(array $args = []) + * @method \Aws\Result listModelPackages(array $args = []) + * @method \GuzzleHttp\Promise\Promise listModelPackagesAsync(array $args = []) + * @method \Aws\Result listModels(array $args = []) + * @method \GuzzleHttp\Promise\Promise listModelsAsync(array $args = []) + * @method \Aws\Result listNotebookInstanceLifecycleConfigs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listNotebookInstanceLifecycleConfigsAsync(array $args = []) + * @method \Aws\Result listNotebookInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise listNotebookInstancesAsync(array $args = []) + * @method \Aws\Result listSubscribedWorkteams(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSubscribedWorkteamsAsync(array $args = []) + * @method \Aws\Result listTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsAsync(array $args = []) + * @method \Aws\Result listTrainingJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTrainingJobsAsync(array $args = []) + * @method \Aws\Result listTrainingJobsForHyperParameterTuningJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTrainingJobsForHyperParameterTuningJobAsync(array $args = []) + * @method \Aws\Result listTransformJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTransformJobsAsync(array $args = []) + * @method \Aws\Result listWorkteams(array $args = []) + * @method \GuzzleHttp\Promise\Promise listWorkteamsAsync(array $args = []) + * @method \Aws\Result renderUiTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise renderUiTemplateAsync(array $args = []) + * @method \Aws\Result search(array $args = []) + * @method \GuzzleHttp\Promise\Promise searchAsync(array $args = []) + * @method \Aws\Result startNotebookInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise startNotebookInstanceAsync(array $args = []) + * @method \Aws\Result stopCompilationJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopCompilationJobAsync(array $args = []) + * @method \Aws\Result stopHyperParameterTuningJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopHyperParameterTuningJobAsync(array $args = []) + * @method \Aws\Result stopLabelingJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopLabelingJobAsync(array $args = []) + * @method \Aws\Result stopNotebookInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopNotebookInstanceAsync(array $args = []) + * @method \Aws\Result stopTrainingJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopTrainingJobAsync(array $args = []) + * @method \Aws\Result stopTransformJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopTransformJobAsync(array $args = []) + * @method \Aws\Result updateCodeRepository(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateCodeRepositoryAsync(array $args = []) + * @method \Aws\Result updateEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateEndpointAsync(array $args = []) + * @method \Aws\Result updateEndpointWeightsAndCapacities(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateEndpointWeightsAndCapacitiesAsync(array $args = []) + * @method \Aws\Result updateNotebookInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateNotebookInstanceAsync(array $args = []) + * @method \Aws\Result updateNotebookInstanceLifecycleConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateNotebookInstanceLifecycleConfigAsync(array $args = []) + * @method \Aws\Result updateWorkteam(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateWorkteamAsync(array $args = []) + */ +class SageMakerClient extends AwsClient {} diff --git a/lib/aws/Aws/SageMakerRuntime/Exception/SageMakerRuntimeException.php b/lib/aws/Aws/SageMakerRuntime/Exception/SageMakerRuntimeException.php new file mode 100644 index 0000000..da36ca9 --- /dev/null +++ b/lib/aws/Aws/SageMakerRuntime/Exception/SageMakerRuntimeException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\SageMakerRuntime\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon SageMaker Runtime** service. + */ +class SageMakerRuntimeException extends AwsException {} diff --git a/lib/aws/Aws/SageMakerRuntime/SageMakerRuntimeClient.php b/lib/aws/Aws/SageMakerRuntime/SageMakerRuntimeClient.php new file mode 100644 index 0000000..27c32bb --- /dev/null +++ b/lib/aws/Aws/SageMakerRuntime/SageMakerRuntimeClient.php @@ -0,0 +1,11 @@ +<?php +namespace Aws\SageMakerRuntime; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon SageMaker Runtime** service. + * @method \Aws\Result invokeEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise invokeEndpointAsync(array $args = []) + */ +class SageMakerRuntimeClient extends AwsClient {} diff --git a/lib/aws/Aws/Sdk.php b/lib/aws/Aws/Sdk.php new file mode 100644 index 0000000..2dfeaba --- /dev/null +++ b/lib/aws/Aws/Sdk.php @@ -0,0 +1,464 @@ +<?php +namespace Aws; + +/** + * Builds AWS clients based on configuration settings. + * + * @method \Aws\ACMPCA\ACMPCAClient createACMPCA(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionACMPCA(array $args = []) + * @method \Aws\Acm\AcmClient createAcm(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionAcm(array $args = []) + * @method \Aws\AlexaForBusiness\AlexaForBusinessClient createAlexaForBusiness(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionAlexaForBusiness(array $args = []) + * @method \Aws\Amplify\AmplifyClient createAmplify(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionAmplify(array $args = []) + * @method \Aws\ApiGateway\ApiGatewayClient createApiGateway(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionApiGateway(array $args = []) + * @method \Aws\ApiGatewayManagementApi\ApiGatewayManagementApiClient createApiGatewayManagementApi(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionApiGatewayManagementApi(array $args = []) + * @method \Aws\ApiGatewayV2\ApiGatewayV2Client createApiGatewayV2(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionApiGatewayV2(array $args = []) + * @method \Aws\AppMesh\AppMeshClient createAppMesh(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionAppMesh(array $args = []) + * @method \Aws\AppSync\AppSyncClient createAppSync(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionAppSync(array $args = []) + * @method \Aws\ApplicationAutoScaling\ApplicationAutoScalingClient createApplicationAutoScaling(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionApplicationAutoScaling(array $args = []) + * @method \Aws\ApplicationDiscoveryService\ApplicationDiscoveryServiceClient createApplicationDiscoveryService(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionApplicationDiscoveryService(array $args = []) + * @method \Aws\Appstream\AppstreamClient createAppstream(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionAppstream(array $args = []) + * @method \Aws\Athena\AthenaClient createAthena(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionAthena(array $args = []) + * @method \Aws\AutoScaling\AutoScalingClient createAutoScaling(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionAutoScaling(array $args = []) + * @method \Aws\AutoScalingPlans\AutoScalingPlansClient createAutoScalingPlans(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionAutoScalingPlans(array $args = []) + * @method \Aws\Backup\BackupClient createBackup(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionBackup(array $args = []) + * @method \Aws\Batch\BatchClient createBatch(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionBatch(array $args = []) + * @method \Aws\Budgets\BudgetsClient createBudgets(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionBudgets(array $args = []) + * @method \Aws\Chime\ChimeClient createChime(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionChime(array $args = []) + * @method \Aws\Cloud9\Cloud9Client createCloud9(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCloud9(array $args = []) + * @method \Aws\CloudDirectory\CloudDirectoryClient createCloudDirectory(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCloudDirectory(array $args = []) + * @method \Aws\CloudFormation\CloudFormationClient createCloudFormation(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCloudFormation(array $args = []) + * @method \Aws\CloudFront\CloudFrontClient createCloudFront(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCloudFront(array $args = []) + * @method \Aws\CloudHSMV2\CloudHSMV2Client createCloudHSMV2(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCloudHSMV2(array $args = []) + * @method \Aws\CloudHsm\CloudHsmClient createCloudHsm(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCloudHsm(array $args = []) + * @method \Aws\CloudSearch\CloudSearchClient createCloudSearch(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCloudSearch(array $args = []) + * @method \Aws\CloudSearchDomain\CloudSearchDomainClient createCloudSearchDomain(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCloudSearchDomain(array $args = []) + * @method \Aws\CloudTrail\CloudTrailClient createCloudTrail(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCloudTrail(array $args = []) + * @method \Aws\CloudWatch\CloudWatchClient createCloudWatch(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCloudWatch(array $args = []) + * @method \Aws\CloudWatchEvents\CloudWatchEventsClient createCloudWatchEvents(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCloudWatchEvents(array $args = []) + * @method \Aws\CloudWatchLogs\CloudWatchLogsClient createCloudWatchLogs(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCloudWatchLogs(array $args = []) + * @method \Aws\CodeBuild\CodeBuildClient createCodeBuild(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCodeBuild(array $args = []) + * @method \Aws\CodeCommit\CodeCommitClient createCodeCommit(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCodeCommit(array $args = []) + * @method \Aws\CodeDeploy\CodeDeployClient createCodeDeploy(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCodeDeploy(array $args = []) + * @method \Aws\CodePipeline\CodePipelineClient createCodePipeline(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCodePipeline(array $args = []) + * @method \Aws\CodeStar\CodeStarClient createCodeStar(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCodeStar(array $args = []) + * @method \Aws\CognitoIdentity\CognitoIdentityClient createCognitoIdentity(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCognitoIdentity(array $args = []) + * @method \Aws\CognitoIdentityProvider\CognitoIdentityProviderClient createCognitoIdentityProvider(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCognitoIdentityProvider(array $args = []) + * @method \Aws\CognitoSync\CognitoSyncClient createCognitoSync(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCognitoSync(array $args = []) + * @method \Aws\Comprehend\ComprehendClient createComprehend(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionComprehend(array $args = []) + * @method \Aws\ComprehendMedical\ComprehendMedicalClient createComprehendMedical(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionComprehendMedical(array $args = []) + * @method \Aws\ConfigService\ConfigServiceClient createConfigService(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionConfigService(array $args = []) + * @method \Aws\Connect\ConnectClient createConnect(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionConnect(array $args = []) + * @method \Aws\CostExplorer\CostExplorerClient createCostExplorer(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCostExplorer(array $args = []) + * @method \Aws\CostandUsageReportService\CostandUsageReportServiceClient createCostandUsageReportService(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionCostandUsageReportService(array $args = []) + * @method \Aws\DAX\DAXClient createDAX(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionDAX(array $args = []) + * @method \Aws\DLM\DLMClient createDLM(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionDLM(array $args = []) + * @method \Aws\DataPipeline\DataPipelineClient createDataPipeline(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionDataPipeline(array $args = []) + * @method \Aws\DataSync\DataSyncClient createDataSync(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionDataSync(array $args = []) + * @method \Aws\DatabaseMigrationService\DatabaseMigrationServiceClient createDatabaseMigrationService(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionDatabaseMigrationService(array $args = []) + * @method \Aws\DeviceFarm\DeviceFarmClient createDeviceFarm(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionDeviceFarm(array $args = []) + * @method \Aws\DirectConnect\DirectConnectClient createDirectConnect(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionDirectConnect(array $args = []) + * @method \Aws\DirectoryService\DirectoryServiceClient createDirectoryService(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionDirectoryService(array $args = []) + * @method \Aws\DocDB\DocDBClient createDocDB(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionDocDB(array $args = []) + * @method \Aws\DynamoDb\DynamoDbClient createDynamoDb(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionDynamoDb(array $args = []) + * @method \Aws\DynamoDbStreams\DynamoDbStreamsClient createDynamoDbStreams(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionDynamoDbStreams(array $args = []) + * @method \Aws\EKS\EKSClient createEKS(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionEKS(array $args = []) + * @method \Aws\Ec2\Ec2Client createEc2(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionEc2(array $args = []) + * @method \Aws\Ecr\EcrClient createEcr(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionEcr(array $args = []) + * @method \Aws\Ecs\EcsClient createEcs(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionEcs(array $args = []) + * @method \Aws\Efs\EfsClient createEfs(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionEfs(array $args = []) + * @method \Aws\ElastiCache\ElastiCacheClient createElastiCache(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionElastiCache(array $args = []) + * @method \Aws\ElasticBeanstalk\ElasticBeanstalkClient createElasticBeanstalk(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionElasticBeanstalk(array $args = []) + * @method \Aws\ElasticLoadBalancing\ElasticLoadBalancingClient createElasticLoadBalancing(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionElasticLoadBalancing(array $args = []) + * @method \Aws\ElasticLoadBalancingV2\ElasticLoadBalancingV2Client createElasticLoadBalancingV2(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionElasticLoadBalancingV2(array $args = []) + * @method \Aws\ElasticTranscoder\ElasticTranscoderClient createElasticTranscoder(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionElasticTranscoder(array $args = []) + * @method \Aws\ElasticsearchService\ElasticsearchServiceClient createElasticsearchService(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionElasticsearchService(array $args = []) + * @method \Aws\Emr\EmrClient createEmr(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionEmr(array $args = []) + * @method \Aws\FMS\FMSClient createFMS(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionFMS(array $args = []) + * @method \Aws\FSx\FSxClient createFSx(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionFSx(array $args = []) + * @method \Aws\Firehose\FirehoseClient createFirehose(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionFirehose(array $args = []) + * @method \Aws\GameLift\GameLiftClient createGameLift(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionGameLift(array $args = []) + * @method \Aws\Glacier\GlacierClient createGlacier(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionGlacier(array $args = []) + * @method \Aws\GlobalAccelerator\GlobalAcceleratorClient createGlobalAccelerator(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionGlobalAccelerator(array $args = []) + * @method \Aws\Glue\GlueClient createGlue(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionGlue(array $args = []) + * @method \Aws\Greengrass\GreengrassClient createGreengrass(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionGreengrass(array $args = []) + * @method \Aws\GuardDuty\GuardDutyClient createGuardDuty(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionGuardDuty(array $args = []) + * @method \Aws\Health\HealthClient createHealth(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionHealth(array $args = []) + * @method \Aws\Iam\IamClient createIam(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionIam(array $args = []) + * @method \Aws\ImportExport\ImportExportClient createImportExport(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionImportExport(array $args = []) + * @method \Aws\Inspector\InspectorClient createInspector(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionInspector(array $args = []) + * @method \Aws\IoT1ClickDevicesService\IoT1ClickDevicesServiceClient createIoT1ClickDevicesService(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionIoT1ClickDevicesService(array $args = []) + * @method \Aws\IoT1ClickProjects\IoT1ClickProjectsClient createIoT1ClickProjects(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionIoT1ClickProjects(array $args = []) + * @method \Aws\IoTAnalytics\IoTAnalyticsClient createIoTAnalytics(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionIoTAnalytics(array $args = []) + * @method \Aws\IoTJobsDataPlane\IoTJobsDataPlaneClient createIoTJobsDataPlane(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionIoTJobsDataPlane(array $args = []) + * @method \Aws\Iot\IotClient createIot(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionIot(array $args = []) + * @method \Aws\IotDataPlane\IotDataPlaneClient createIotDataPlane(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionIotDataPlane(array $args = []) + * @method \Aws\Kafka\KafkaClient createKafka(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionKafka(array $args = []) + * @method \Aws\Kinesis\KinesisClient createKinesis(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionKinesis(array $args = []) + * @method \Aws\KinesisAnalytics\KinesisAnalyticsClient createKinesisAnalytics(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionKinesisAnalytics(array $args = []) + * @method \Aws\KinesisAnalyticsV2\KinesisAnalyticsV2Client createKinesisAnalyticsV2(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionKinesisAnalyticsV2(array $args = []) + * @method \Aws\KinesisVideo\KinesisVideoClient createKinesisVideo(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionKinesisVideo(array $args = []) + * @method \Aws\KinesisVideoArchivedMedia\KinesisVideoArchivedMediaClient createKinesisVideoArchivedMedia(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionKinesisVideoArchivedMedia(array $args = []) + * @method \Aws\KinesisVideoMedia\KinesisVideoMediaClient createKinesisVideoMedia(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionKinesisVideoMedia(array $args = []) + * @method \Aws\Kms\KmsClient createKms(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionKms(array $args = []) + * @method \Aws\Lambda\LambdaClient createLambda(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionLambda(array $args = []) + * @method \Aws\LexModelBuildingService\LexModelBuildingServiceClient createLexModelBuildingService(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionLexModelBuildingService(array $args = []) + * @method \Aws\LexRuntimeService\LexRuntimeServiceClient createLexRuntimeService(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionLexRuntimeService(array $args = []) + * @method \Aws\LicenseManager\LicenseManagerClient createLicenseManager(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionLicenseManager(array $args = []) + * @method \Aws\Lightsail\LightsailClient createLightsail(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionLightsail(array $args = []) + * @method \Aws\MQ\MQClient createMQ(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionMQ(array $args = []) + * @method \Aws\MTurk\MTurkClient createMTurk(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionMTurk(array $args = []) + * @method \Aws\MachineLearning\MachineLearningClient createMachineLearning(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionMachineLearning(array $args = []) + * @method \Aws\Macie\MacieClient createMacie(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionMacie(array $args = []) + * @method \Aws\MarketplaceCommerceAnalytics\MarketplaceCommerceAnalyticsClient createMarketplaceCommerceAnalytics(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionMarketplaceCommerceAnalytics(array $args = []) + * @method \Aws\MarketplaceEntitlementService\MarketplaceEntitlementServiceClient createMarketplaceEntitlementService(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionMarketplaceEntitlementService(array $args = []) + * @method \Aws\MarketplaceMetering\MarketplaceMeteringClient createMarketplaceMetering(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionMarketplaceMetering(array $args = []) + * @method \Aws\MediaConnect\MediaConnectClient createMediaConnect(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionMediaConnect(array $args = []) + * @method \Aws\MediaConvert\MediaConvertClient createMediaConvert(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionMediaConvert(array $args = []) + * @method \Aws\MediaLive\MediaLiveClient createMediaLive(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionMediaLive(array $args = []) + * @method \Aws\MediaPackage\MediaPackageClient createMediaPackage(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionMediaPackage(array $args = []) + * @method \Aws\MediaStore\MediaStoreClient createMediaStore(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionMediaStore(array $args = []) + * @method \Aws\MediaStoreData\MediaStoreDataClient createMediaStoreData(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionMediaStoreData(array $args = []) + * @method \Aws\MediaTailor\MediaTailorClient createMediaTailor(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionMediaTailor(array $args = []) + * @method \Aws\MigrationHub\MigrationHubClient createMigrationHub(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionMigrationHub(array $args = []) + * @method \Aws\Mobile\MobileClient createMobile(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionMobile(array $args = []) + * @method \Aws\Neptune\NeptuneClient createNeptune(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionNeptune(array $args = []) + * @method \Aws\OpsWorks\OpsWorksClient createOpsWorks(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionOpsWorks(array $args = []) + * @method \Aws\OpsWorksCM\OpsWorksCMClient createOpsWorksCM(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionOpsWorksCM(array $args = []) + * @method \Aws\Organizations\OrganizationsClient createOrganizations(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionOrganizations(array $args = []) + * @method \Aws\PI\PIClient createPI(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionPI(array $args = []) + * @method \Aws\Pinpoint\PinpointClient createPinpoint(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionPinpoint(array $args = []) + * @method \Aws\PinpointEmail\PinpointEmailClient createPinpointEmail(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionPinpointEmail(array $args = []) + * @method \Aws\PinpointSMSVoice\PinpointSMSVoiceClient createPinpointSMSVoice(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionPinpointSMSVoice(array $args = []) + * @method \Aws\Polly\PollyClient createPolly(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionPolly(array $args = []) + * @method \Aws\Pricing\PricingClient createPricing(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionPricing(array $args = []) + * @method \Aws\QuickSight\QuickSightClient createQuickSight(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionQuickSight(array $args = []) + * @method \Aws\RAM\RAMClient createRAM(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionRAM(array $args = []) + * @method \Aws\RDSDataService\RDSDataServiceClient createRDSDataService(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionRDSDataService(array $args = []) + * @method \Aws\Rds\RdsClient createRds(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionRds(array $args = []) + * @method \Aws\Redshift\RedshiftClient createRedshift(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionRedshift(array $args = []) + * @method \Aws\Rekognition\RekognitionClient createRekognition(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionRekognition(array $args = []) + * @method \Aws\ResourceGroups\ResourceGroupsClient createResourceGroups(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionResourceGroups(array $args = []) + * @method \Aws\ResourceGroupsTaggingAPI\ResourceGroupsTaggingAPIClient createResourceGroupsTaggingAPI(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionResourceGroupsTaggingAPI(array $args = []) + * @method \Aws\RoboMaker\RoboMakerClient createRoboMaker(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionRoboMaker(array $args = []) + * @method \Aws\Route53\Route53Client createRoute53(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionRoute53(array $args = []) + * @method \Aws\Route53Domains\Route53DomainsClient createRoute53Domains(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionRoute53Domains(array $args = []) + * @method \Aws\Route53Resolver\Route53ResolverClient createRoute53Resolver(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionRoute53Resolver(array $args = []) + * @method \Aws\S3\S3Client createS3(array $args = []) + * @method \Aws\S3\S3MultiRegionClient createMultiRegionS3(array $args = []) + * @method \Aws\S3Control\S3ControlClient createS3Control(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionS3Control(array $args = []) + * @method \Aws\SageMaker\SageMakerClient createSageMaker(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionSageMaker(array $args = []) + * @method \Aws\SageMakerRuntime\SageMakerRuntimeClient createSageMakerRuntime(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionSageMakerRuntime(array $args = []) + * @method \Aws\SecretsManager\SecretsManagerClient createSecretsManager(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionSecretsManager(array $args = []) + * @method \Aws\SecurityHub\SecurityHubClient createSecurityHub(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionSecurityHub(array $args = []) + * @method \Aws\ServerlessApplicationRepository\ServerlessApplicationRepositoryClient createServerlessApplicationRepository(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionServerlessApplicationRepository(array $args = []) + * @method \Aws\ServiceCatalog\ServiceCatalogClient createServiceCatalog(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionServiceCatalog(array $args = []) + * @method \Aws\ServiceDiscovery\ServiceDiscoveryClient createServiceDiscovery(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionServiceDiscovery(array $args = []) + * @method \Aws\Ses\SesClient createSes(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionSes(array $args = []) + * @method \Aws\Sfn\SfnClient createSfn(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionSfn(array $args = []) + * @method \Aws\Shield\ShieldClient createShield(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionShield(array $args = []) + * @method \Aws\Sms\SmsClient createSms(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionSms(array $args = []) + * @method \Aws\SnowBall\SnowBallClient createSnowBall(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionSnowBall(array $args = []) + * @method \Aws\Sns\SnsClient createSns(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionSns(array $args = []) + * @method \Aws\Sqs\SqsClient createSqs(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionSqs(array $args = []) + * @method \Aws\Ssm\SsmClient createSsm(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionSsm(array $args = []) + * @method \Aws\StorageGateway\StorageGatewayClient createStorageGateway(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionStorageGateway(array $args = []) + * @method \Aws\Sts\StsClient createSts(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionSts(array $args = []) + * @method \Aws\Support\SupportClient createSupport(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionSupport(array $args = []) + * @method \Aws\Swf\SwfClient createSwf(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionSwf(array $args = []) + * @method \Aws\Textract\TextractClient createTextract(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionTextract(array $args = []) + * @method \Aws\TranscribeService\TranscribeServiceClient createTranscribeService(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionTranscribeService(array $args = []) + * @method \Aws\Transfer\TransferClient createTransfer(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionTransfer(array $args = []) + * @method \Aws\Translate\TranslateClient createTranslate(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionTranslate(array $args = []) + * @method \Aws\Waf\WafClient createWaf(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionWaf(array $args = []) + * @method \Aws\WafRegional\WafRegionalClient createWafRegional(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionWafRegional(array $args = []) + * @method \Aws\WorkDocs\WorkDocsClient createWorkDocs(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionWorkDocs(array $args = []) + * @method \Aws\WorkLink\WorkLinkClient createWorkLink(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionWorkLink(array $args = []) + * @method \Aws\WorkMail\WorkMailClient createWorkMail(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionWorkMail(array $args = []) + * @method \Aws\WorkSpaces\WorkSpacesClient createWorkSpaces(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionWorkSpaces(array $args = []) + * @method \Aws\XRay\XRayClient createXRay(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionXRay(array $args = []) + * @method \Aws\signer\signerClient createsigner(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionsigner(array $args = []) + */ +class Sdk +{ + const VERSION = '3.91.4'; + + /** @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\AwsClient::__construct 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) + { + $args = isset($args[0]) ? $args[0] : []; + if (strpos($name, 'createMultiRegion') === 0) { + return $this->createMultiRegionClient(substr($name, 17), $args); + } + + if (strpos($name, 'create') === 0) { + return $this->createClient(substr($name, 6), $args); + } + + throw new \BadMethodCallException("Unknown method: {$name}."); + } + + /** + * Get a client by name using an array of constructor options. + * + * @param string $name Service name or namespace (e.g., DynamoDb, s3). + * @param array $args Arguments to configure the client. + * + * @return AwsClientInterface + * @throws \InvalidArgumentException if any required options are missing or + * the service is not supported. + * @see Aws\AwsClient::__construct for a list of available options for args. + */ + public function createClient($name, array $args = []) + { + // Get information about the service from the manifest file. + $service = manifest($name); + $namespace = $service['namespace']; + + // Instantiate the client class. + $client = "Aws\\{$namespace}\\{$namespace}Client"; + return new $client($this->mergeArgs($namespace, $service, $args)); + } + + public function createMultiRegionClient($name, array $args = []) + { + // Get information about the service from the manifest file. + $service = manifest($name); + $namespace = $service['namespace']; + + $klass = "Aws\\{$namespace}\\{$namespace}MultiRegionClient"; + $klass = class_exists($klass) ? $klass : 'Aws\\MultiRegionClient'; + + return new $klass($this->mergeArgs($namespace, $service, $args)); + } + + /** + * Clone existing SDK instance with ability to pass an associative array + * of extra client settings. + * + * @param array $args + * + * @return self + */ + public function copy(array $args = []) + { + return new self($args + $this->args); + } + + private function mergeArgs($namespace, array $manifest, array $args = []) + { + // Merge provided args with stored, service-specific args. + if (isset($this->args[$namespace])) { + $args += $this->args[$namespace]; + } + + // Provide the endpoint prefix in the args. + if (!isset($args['service'])) { + $args['service'] = $manifest['endpoint']; + } + + return $args + $this->args; + } + + /** + * Determine the endpoint prefix from a client namespace. + * + * @param string $name Namespace name + * + * @return string + * @internal + * @deprecated Use the `\Aws\manifest()` function instead. + */ + public static function getEndpointPrefix($name) + { + return manifest($name)['endpoint']; + } +} diff --git a/lib/aws/Aws/SecretsManager/Exception/SecretsManagerException.php b/lib/aws/Aws/SecretsManager/Exception/SecretsManagerException.php new file mode 100644 index 0000000..4b50f58 --- /dev/null +++ b/lib/aws/Aws/SecretsManager/Exception/SecretsManagerException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\SecretsManager\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Secrets Manager** service. + */ +class SecretsManagerException extends AwsException {} diff --git a/lib/aws/Aws/SecretsManager/SecretsManagerClient.php b/lib/aws/Aws/SecretsManager/SecretsManagerClient.php new file mode 100644 index 0000000..6d44051 --- /dev/null +++ b/lib/aws/Aws/SecretsManager/SecretsManagerClient.php @@ -0,0 +1,45 @@ +<?php +namespace Aws\SecretsManager; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Secrets Manager** service. + * @method \Aws\Result cancelRotateSecret(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelRotateSecretAsync(array $args = []) + * @method \Aws\Result createSecret(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSecretAsync(array $args = []) + * @method \Aws\Result deleteResourcePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteResourcePolicyAsync(array $args = []) + * @method \Aws\Result deleteSecret(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSecretAsync(array $args = []) + * @method \Aws\Result describeSecret(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSecretAsync(array $args = []) + * @method \Aws\Result getRandomPassword(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRandomPasswordAsync(array $args = []) + * @method \Aws\Result getResourcePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getResourcePolicyAsync(array $args = []) + * @method \Aws\Result getSecretValue(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSecretValueAsync(array $args = []) + * @method \Aws\Result listSecretVersionIds(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSecretVersionIdsAsync(array $args = []) + * @method \Aws\Result listSecrets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSecretsAsync(array $args = []) + * @method \Aws\Result putResourcePolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putResourcePolicyAsync(array $args = []) + * @method \Aws\Result putSecretValue(array $args = []) + * @method \GuzzleHttp\Promise\Promise putSecretValueAsync(array $args = []) + * @method \Aws\Result restoreSecret(array $args = []) + * @method \GuzzleHttp\Promise\Promise restoreSecretAsync(array $args = []) + * @method \Aws\Result rotateSecret(array $args = []) + * @method \GuzzleHttp\Promise\Promise rotateSecretAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateSecret(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSecretAsync(array $args = []) + * @method \Aws\Result updateSecretVersionStage(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSecretVersionStageAsync(array $args = []) + */ +class SecretsManagerClient extends AwsClient {} diff --git a/lib/aws/Aws/SecurityHub/Exception/SecurityHubException.php b/lib/aws/Aws/SecurityHub/Exception/SecurityHubException.php new file mode 100644 index 0000000..7dc2fbc --- /dev/null +++ b/lib/aws/Aws/SecurityHub/Exception/SecurityHubException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\SecurityHub\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS SecurityHub** service. + */ +class SecurityHubException extends AwsException {} diff --git a/lib/aws/Aws/SecurityHub/SecurityHubClient.php b/lib/aws/Aws/SecurityHub/SecurityHubClient.php new file mode 100644 index 0000000..85c1c91 --- /dev/null +++ b/lib/aws/Aws/SecurityHub/SecurityHubClient.php @@ -0,0 +1,67 @@ +<?php +namespace Aws\SecurityHub; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS SecurityHub** service. + * @method \Aws\Result acceptInvitation(array $args = []) + * @method \GuzzleHttp\Promise\Promise acceptInvitationAsync(array $args = []) + * @method \Aws\Result batchDisableStandards(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchDisableStandardsAsync(array $args = []) + * @method \Aws\Result batchEnableStandards(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchEnableStandardsAsync(array $args = []) + * @method \Aws\Result batchImportFindings(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchImportFindingsAsync(array $args = []) + * @method \Aws\Result createInsight(array $args = []) + * @method \GuzzleHttp\Promise\Promise createInsightAsync(array $args = []) + * @method \Aws\Result createMembers(array $args = []) + * @method \GuzzleHttp\Promise\Promise createMembersAsync(array $args = []) + * @method \Aws\Result declineInvitations(array $args = []) + * @method \GuzzleHttp\Promise\Promise declineInvitationsAsync(array $args = []) + * @method \Aws\Result deleteInsight(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteInsightAsync(array $args = []) + * @method \Aws\Result deleteInvitations(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteInvitationsAsync(array $args = []) + * @method \Aws\Result deleteMembers(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteMembersAsync(array $args = []) + * @method \Aws\Result disableImportFindingsForProduct(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableImportFindingsForProductAsync(array $args = []) + * @method \Aws\Result disableSecurityHub(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableSecurityHubAsync(array $args = []) + * @method \Aws\Result disassociateFromMasterAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateFromMasterAccountAsync(array $args = []) + * @method \Aws\Result disassociateMembers(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateMembersAsync(array $args = []) + * @method \Aws\Result enableImportFindingsForProduct(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableImportFindingsForProductAsync(array $args = []) + * @method \Aws\Result enableSecurityHub(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableSecurityHubAsync(array $args = []) + * @method \Aws\Result getEnabledStandards(array $args = []) + * @method \GuzzleHttp\Promise\Promise getEnabledStandardsAsync(array $args = []) + * @method \Aws\Result getFindings(array $args = []) + * @method \GuzzleHttp\Promise\Promise getFindingsAsync(array $args = []) + * @method \Aws\Result getInsightResults(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInsightResultsAsync(array $args = []) + * @method \Aws\Result getInsights(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInsightsAsync(array $args = []) + * @method \Aws\Result getInvitationsCount(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInvitationsCountAsync(array $args = []) + * @method \Aws\Result getMasterAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise getMasterAccountAsync(array $args = []) + * @method \Aws\Result getMembers(array $args = []) + * @method \GuzzleHttp\Promise\Promise getMembersAsync(array $args = []) + * @method \Aws\Result inviteMembers(array $args = []) + * @method \GuzzleHttp\Promise\Promise inviteMembersAsync(array $args = []) + * @method \Aws\Result listEnabledProductsForImport(array $args = []) + * @method \GuzzleHttp\Promise\Promise listEnabledProductsForImportAsync(array $args = []) + * @method \Aws\Result listInvitations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listInvitationsAsync(array $args = []) + * @method \Aws\Result listMembers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listMembersAsync(array $args = []) + * @method \Aws\Result updateFindings(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateFindingsAsync(array $args = []) + * @method \Aws\Result updateInsight(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateInsightAsync(array $args = []) + */ +class SecurityHubClient extends AwsClient {} diff --git a/lib/aws/Aws/ServerlessApplicationRepository/Exception/ServerlessApplicationRepositoryException.php b/lib/aws/Aws/ServerlessApplicationRepository/Exception/ServerlessApplicationRepositoryException.php new file mode 100644 index 0000000..6cc0313 --- /dev/null +++ b/lib/aws/Aws/ServerlessApplicationRepository/Exception/ServerlessApplicationRepositoryException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\ServerlessApplicationRepository\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWSServerlessApplicationRepository** service. + */ +class ServerlessApplicationRepositoryException extends AwsException {} diff --git a/lib/aws/Aws/ServerlessApplicationRepository/ServerlessApplicationRepositoryClient.php b/lib/aws/Aws/ServerlessApplicationRepository/ServerlessApplicationRepositoryClient.php new file mode 100644 index 0000000..eabd8f5 --- /dev/null +++ b/lib/aws/Aws/ServerlessApplicationRepository/ServerlessApplicationRepositoryClient.php @@ -0,0 +1,35 @@ +<?php +namespace Aws\ServerlessApplicationRepository; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWSServerlessApplicationRepository** service. + * @method \Aws\Result createApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise createApplicationAsync(array $args = []) + * @method \Aws\Result createApplicationVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise createApplicationVersionAsync(array $args = []) + * @method \Aws\Result createCloudFormationChangeSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCloudFormationChangeSetAsync(array $args = []) + * @method \Aws\Result createCloudFormationTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCloudFormationTemplateAsync(array $args = []) + * @method \Aws\Result deleteApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteApplicationAsync(array $args = []) + * @method \Aws\Result getApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise getApplicationAsync(array $args = []) + * @method \Aws\Result getApplicationPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getApplicationPolicyAsync(array $args = []) + * @method \Aws\Result getCloudFormationTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCloudFormationTemplateAsync(array $args = []) + * @method \Aws\Result listApplicationDependencies(array $args = []) + * @method \GuzzleHttp\Promise\Promise listApplicationDependenciesAsync(array $args = []) + * @method \Aws\Result listApplicationVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listApplicationVersionsAsync(array $args = []) + * @method \Aws\Result listApplications(array $args = []) + * @method \GuzzleHttp\Promise\Promise listApplicationsAsync(array $args = []) + * @method \Aws\Result putApplicationPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putApplicationPolicyAsync(array $args = []) + * @method \Aws\Result updateApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateApplicationAsync(array $args = []) + */ +class ServerlessApplicationRepositoryClient extends AwsClient {} diff --git a/lib/aws/Aws/ServiceCatalog/Exception/ServiceCatalogException.php b/lib/aws/Aws/ServiceCatalog/Exception/ServiceCatalogException.php new file mode 100644 index 0000000..db64aa6 --- /dev/null +++ b/lib/aws/Aws/ServiceCatalog/Exception/ServiceCatalogException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\ServiceCatalog\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Service Catalog** service. + */ +class ServiceCatalogException extends AwsException {} diff --git a/lib/aws/Aws/ServiceCatalog/ServiceCatalogClient.php b/lib/aws/Aws/ServiceCatalog/ServiceCatalogClient.php new file mode 100644 index 0000000..3519ec0 --- /dev/null +++ b/lib/aws/Aws/ServiceCatalog/ServiceCatalogClient.php @@ -0,0 +1,163 @@ +<?php +namespace Aws\ServiceCatalog; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Service Catalog** service. + * @method \Aws\Result acceptPortfolioShare(array $args = []) + * @method \GuzzleHttp\Promise\Promise acceptPortfolioShareAsync(array $args = []) + * @method \Aws\Result associatePrincipalWithPortfolio(array $args = []) + * @method \GuzzleHttp\Promise\Promise associatePrincipalWithPortfolioAsync(array $args = []) + * @method \Aws\Result associateProductWithPortfolio(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateProductWithPortfolioAsync(array $args = []) + * @method \Aws\Result associateServiceActionWithProvisioningArtifact(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateServiceActionWithProvisioningArtifactAsync(array $args = []) + * @method \Aws\Result associateTagOptionWithResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateTagOptionWithResourceAsync(array $args = []) + * @method \Aws\Result batchAssociateServiceActionWithProvisioningArtifact(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchAssociateServiceActionWithProvisioningArtifactAsync(array $args = []) + * @method \Aws\Result batchDisassociateServiceActionFromProvisioningArtifact(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchDisassociateServiceActionFromProvisioningArtifactAsync(array $args = []) + * @method \Aws\Result copyProduct(array $args = []) + * @method \GuzzleHttp\Promise\Promise copyProductAsync(array $args = []) + * @method \Aws\Result createConstraint(array $args = []) + * @method \GuzzleHttp\Promise\Promise createConstraintAsync(array $args = []) + * @method \Aws\Result createPortfolio(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPortfolioAsync(array $args = []) + * @method \Aws\Result createPortfolioShare(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPortfolioShareAsync(array $args = []) + * @method \Aws\Result createProduct(array $args = []) + * @method \GuzzleHttp\Promise\Promise createProductAsync(array $args = []) + * @method \Aws\Result createProvisionedProductPlan(array $args = []) + * @method \GuzzleHttp\Promise\Promise createProvisionedProductPlanAsync(array $args = []) + * @method \Aws\Result createProvisioningArtifact(array $args = []) + * @method \GuzzleHttp\Promise\Promise createProvisioningArtifactAsync(array $args = []) + * @method \Aws\Result createServiceAction(array $args = []) + * @method \GuzzleHttp\Promise\Promise createServiceActionAsync(array $args = []) + * @method \Aws\Result createTagOption(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTagOptionAsync(array $args = []) + * @method \Aws\Result deleteConstraint(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteConstraintAsync(array $args = []) + * @method \Aws\Result deletePortfolio(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePortfolioAsync(array $args = []) + * @method \Aws\Result deletePortfolioShare(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePortfolioShareAsync(array $args = []) + * @method \Aws\Result deleteProduct(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteProductAsync(array $args = []) + * @method \Aws\Result deleteProvisionedProductPlan(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteProvisionedProductPlanAsync(array $args = []) + * @method \Aws\Result deleteProvisioningArtifact(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteProvisioningArtifactAsync(array $args = []) + * @method \Aws\Result deleteServiceAction(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteServiceActionAsync(array $args = []) + * @method \Aws\Result deleteTagOption(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTagOptionAsync(array $args = []) + * @method \Aws\Result describeConstraint(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeConstraintAsync(array $args = []) + * @method \Aws\Result describeCopyProductStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCopyProductStatusAsync(array $args = []) + * @method \Aws\Result describePortfolio(array $args = []) + * @method \GuzzleHttp\Promise\Promise describePortfolioAsync(array $args = []) + * @method \Aws\Result describePortfolioShareStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise describePortfolioShareStatusAsync(array $args = []) + * @method \Aws\Result describeProduct(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeProductAsync(array $args = []) + * @method \Aws\Result describeProductAsAdmin(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeProductAsAdminAsync(array $args = []) + * @method \Aws\Result describeProductView(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeProductViewAsync(array $args = []) + * @method \Aws\Result describeProvisionedProduct(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeProvisionedProductAsync(array $args = []) + * @method \Aws\Result describeProvisionedProductPlan(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeProvisionedProductPlanAsync(array $args = []) + * @method \Aws\Result describeProvisioningArtifact(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeProvisioningArtifactAsync(array $args = []) + * @method \Aws\Result describeProvisioningParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeProvisioningParametersAsync(array $args = []) + * @method \Aws\Result describeRecord(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRecordAsync(array $args = []) + * @method \Aws\Result describeServiceAction(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeServiceActionAsync(array $args = []) + * @method \Aws\Result describeTagOption(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTagOptionAsync(array $args = []) + * @method \Aws\Result disableAWSOrganizationsAccess(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableAWSOrganizationsAccessAsync(array $args = []) + * @method \Aws\Result disassociatePrincipalFromPortfolio(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociatePrincipalFromPortfolioAsync(array $args = []) + * @method \Aws\Result disassociateProductFromPortfolio(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateProductFromPortfolioAsync(array $args = []) + * @method \Aws\Result disassociateServiceActionFromProvisioningArtifact(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateServiceActionFromProvisioningArtifactAsync(array $args = []) + * @method \Aws\Result disassociateTagOptionFromResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateTagOptionFromResourceAsync(array $args = []) + * @method \Aws\Result enableAWSOrganizationsAccess(array $args = []) + * @method \GuzzleHttp\Promise\Promise enableAWSOrganizationsAccessAsync(array $args = []) + * @method \Aws\Result executeProvisionedProductPlan(array $args = []) + * @method \GuzzleHttp\Promise\Promise executeProvisionedProductPlanAsync(array $args = []) + * @method \Aws\Result executeProvisionedProductServiceAction(array $args = []) + * @method \GuzzleHttp\Promise\Promise executeProvisionedProductServiceActionAsync(array $args = []) + * @method \Aws\Result getAWSOrganizationsAccessStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAWSOrganizationsAccessStatusAsync(array $args = []) + * @method \Aws\Result listAcceptedPortfolioShares(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAcceptedPortfolioSharesAsync(array $args = []) + * @method \Aws\Result listConstraintsForPortfolio(array $args = []) + * @method \GuzzleHttp\Promise\Promise listConstraintsForPortfolioAsync(array $args = []) + * @method \Aws\Result listLaunchPaths(array $args = []) + * @method \GuzzleHttp\Promise\Promise listLaunchPathsAsync(array $args = []) + * @method \Aws\Result listOrganizationPortfolioAccess(array $args = []) + * @method \GuzzleHttp\Promise\Promise listOrganizationPortfolioAccessAsync(array $args = []) + * @method \Aws\Result listPortfolioAccess(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPortfolioAccessAsync(array $args = []) + * @method \Aws\Result listPortfolios(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPortfoliosAsync(array $args = []) + * @method \Aws\Result listPortfoliosForProduct(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPortfoliosForProductAsync(array $args = []) + * @method \Aws\Result listPrincipalsForPortfolio(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPrincipalsForPortfolioAsync(array $args = []) + * @method \Aws\Result listProvisionedProductPlans(array $args = []) + * @method \GuzzleHttp\Promise\Promise listProvisionedProductPlansAsync(array $args = []) + * @method \Aws\Result listProvisioningArtifacts(array $args = []) + * @method \GuzzleHttp\Promise\Promise listProvisioningArtifactsAsync(array $args = []) + * @method \Aws\Result listProvisioningArtifactsForServiceAction(array $args = []) + * @method \GuzzleHttp\Promise\Promise listProvisioningArtifactsForServiceActionAsync(array $args = []) + * @method \Aws\Result listRecordHistory(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRecordHistoryAsync(array $args = []) + * @method \Aws\Result listResourcesForTagOption(array $args = []) + * @method \GuzzleHttp\Promise\Promise listResourcesForTagOptionAsync(array $args = []) + * @method \Aws\Result listServiceActions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listServiceActionsAsync(array $args = []) + * @method \Aws\Result listServiceActionsForProvisioningArtifact(array $args = []) + * @method \GuzzleHttp\Promise\Promise listServiceActionsForProvisioningArtifactAsync(array $args = []) + * @method \Aws\Result listTagOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagOptionsAsync(array $args = []) + * @method \Aws\Result provisionProduct(array $args = []) + * @method \GuzzleHttp\Promise\Promise provisionProductAsync(array $args = []) + * @method \Aws\Result rejectPortfolioShare(array $args = []) + * @method \GuzzleHttp\Promise\Promise rejectPortfolioShareAsync(array $args = []) + * @method \Aws\Result scanProvisionedProducts(array $args = []) + * @method \GuzzleHttp\Promise\Promise scanProvisionedProductsAsync(array $args = []) + * @method \Aws\Result searchProducts(array $args = []) + * @method \GuzzleHttp\Promise\Promise searchProductsAsync(array $args = []) + * @method \Aws\Result searchProductsAsAdmin(array $args = []) + * @method \GuzzleHttp\Promise\Promise searchProductsAsAdminAsync(array $args = []) + * @method \Aws\Result searchProvisionedProducts(array $args = []) + * @method \GuzzleHttp\Promise\Promise searchProvisionedProductsAsync(array $args = []) + * @method \Aws\Result terminateProvisionedProduct(array $args = []) + * @method \GuzzleHttp\Promise\Promise terminateProvisionedProductAsync(array $args = []) + * @method \Aws\Result updateConstraint(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateConstraintAsync(array $args = []) + * @method \Aws\Result updatePortfolio(array $args = []) + * @method \GuzzleHttp\Promise\Promise updatePortfolioAsync(array $args = []) + * @method \Aws\Result updateProduct(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateProductAsync(array $args = []) + * @method \Aws\Result updateProvisionedProduct(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateProvisionedProductAsync(array $args = []) + * @method \Aws\Result updateProvisioningArtifact(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateProvisioningArtifactAsync(array $args = []) + * @method \Aws\Result updateServiceAction(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateServiceActionAsync(array $args = []) + * @method \Aws\Result updateTagOption(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateTagOptionAsync(array $args = []) + */ +class ServiceCatalogClient extends AwsClient {} diff --git a/lib/aws/Aws/ServiceDiscovery/Exception/ServiceDiscoveryException.php b/lib/aws/Aws/ServiceDiscovery/Exception/ServiceDiscoveryException.php new file mode 100644 index 0000000..9d20155 --- /dev/null +++ b/lib/aws/Aws/ServiceDiscovery/Exception/ServiceDiscoveryException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\ServiceDiscovery\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Route 53 Auto Naming** service. + */ +class ServiceDiscoveryException extends AwsException {} diff --git a/lib/aws/Aws/ServiceDiscovery/ServiceDiscoveryClient.php b/lib/aws/Aws/ServiceDiscovery/ServiceDiscoveryClient.php new file mode 100644 index 0000000..6386116 --- /dev/null +++ b/lib/aws/Aws/ServiceDiscovery/ServiceDiscoveryClient.php @@ -0,0 +1,49 @@ +<?php +namespace Aws\ServiceDiscovery; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Route 53 Auto Naming** service. + * @method \Aws\Result createHttpNamespace(array $args = []) + * @method \GuzzleHttp\Promise\Promise createHttpNamespaceAsync(array $args = []) + * @method \Aws\Result createPrivateDnsNamespace(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPrivateDnsNamespaceAsync(array $args = []) + * @method \Aws\Result createPublicDnsNamespace(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPublicDnsNamespaceAsync(array $args = []) + * @method \Aws\Result createService(array $args = []) + * @method \GuzzleHttp\Promise\Promise createServiceAsync(array $args = []) + * @method \Aws\Result deleteNamespace(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteNamespaceAsync(array $args = []) + * @method \Aws\Result deleteService(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteServiceAsync(array $args = []) + * @method \Aws\Result deregisterInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterInstanceAsync(array $args = []) + * @method \Aws\Result discoverInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise discoverInstancesAsync(array $args = []) + * @method \Aws\Result getInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInstanceAsync(array $args = []) + * @method \Aws\Result getInstancesHealthStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInstancesHealthStatusAsync(array $args = []) + * @method \Aws\Result getNamespace(array $args = []) + * @method \GuzzleHttp\Promise\Promise getNamespaceAsync(array $args = []) + * @method \Aws\Result getOperation(array $args = []) + * @method \GuzzleHttp\Promise\Promise getOperationAsync(array $args = []) + * @method \Aws\Result getService(array $args = []) + * @method \GuzzleHttp\Promise\Promise getServiceAsync(array $args = []) + * @method \Aws\Result listInstances(array $args = []) + * @method \GuzzleHttp\Promise\Promise listInstancesAsync(array $args = []) + * @method \Aws\Result listNamespaces(array $args = []) + * @method \GuzzleHttp\Promise\Promise listNamespacesAsync(array $args = []) + * @method \Aws\Result listOperations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listOperationsAsync(array $args = []) + * @method \Aws\Result listServices(array $args = []) + * @method \GuzzleHttp\Promise\Promise listServicesAsync(array $args = []) + * @method \Aws\Result registerInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerInstanceAsync(array $args = []) + * @method \Aws\Result updateInstanceCustomHealthStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateInstanceCustomHealthStatusAsync(array $args = []) + * @method \Aws\Result updateService(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateServiceAsync(array $args = []) + */ +class ServiceDiscoveryClient extends AwsClient {} diff --git a/lib/aws/Aws/Ses/Exception/SesException.php b/lib/aws/Aws/Ses/Exception/SesException.php new file mode 100644 index 0000000..9022498 --- /dev/null +++ b/lib/aws/Aws/Ses/Exception/SesException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Ses\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon Simple Email Service. + */ +class SesException extends AwsException {} diff --git a/lib/aws/Aws/Ses/SesClient.php b/lib/aws/Aws/Ses/SesClient.php new file mode 100644 index 0000000..cc907fb --- /dev/null +++ b/lib/aws/Aws/Ses/SesClient.php @@ -0,0 +1,191 @@ +<?php +namespace Aws\Ses; + +use Aws\Api\ApiProvider; +use Aws\Api\DocModel; +use Aws\Api\Service; +use Aws\Credentials\CredentialsInterface; + +/** + * This client is used to interact with the **Amazon Simple Email Service (Amazon SES)**. + * + * @method \Aws\Result cloneReceiptRuleSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise cloneReceiptRuleSetAsync(array $args = []) + * @method \Aws\Result createConfigurationSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createConfigurationSetAsync(array $args = []) + * @method \Aws\Result createConfigurationSetEventDestination(array $args = []) + * @method \GuzzleHttp\Promise\Promise createConfigurationSetEventDestinationAsync(array $args = []) + * @method \Aws\Result createConfigurationSetTrackingOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise createConfigurationSetTrackingOptionsAsync(array $args = []) + * @method \Aws\Result createCustomVerificationEmailTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCustomVerificationEmailTemplateAsync(array $args = []) + * @method \Aws\Result createReceiptFilter(array $args = []) + * @method \GuzzleHttp\Promise\Promise createReceiptFilterAsync(array $args = []) + * @method \Aws\Result createReceiptRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise createReceiptRuleAsync(array $args = []) + * @method \Aws\Result createReceiptRuleSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createReceiptRuleSetAsync(array $args = []) + * @method \Aws\Result createTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTemplateAsync(array $args = []) + * @method \Aws\Result deleteConfigurationSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteConfigurationSetAsync(array $args = []) + * @method \Aws\Result deleteConfigurationSetEventDestination(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteConfigurationSetEventDestinationAsync(array $args = []) + * @method \Aws\Result deleteConfigurationSetTrackingOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteConfigurationSetTrackingOptionsAsync(array $args = []) + * @method \Aws\Result deleteCustomVerificationEmailTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCustomVerificationEmailTemplateAsync(array $args = []) + * @method \Aws\Result deleteIdentity(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteIdentityAsync(array $args = []) + * @method \Aws\Result deleteIdentityPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteIdentityPolicyAsync(array $args = []) + * @method \Aws\Result deleteReceiptFilter(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteReceiptFilterAsync(array $args = []) + * @method \Aws\Result deleteReceiptRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteReceiptRuleAsync(array $args = []) + * @method \Aws\Result deleteReceiptRuleSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteReceiptRuleSetAsync(array $args = []) + * @method \Aws\Result deleteTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTemplateAsync(array $args = []) + * @method \Aws\Result deleteVerifiedEmailAddress(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVerifiedEmailAddressAsync(array $args = []) + * @method \Aws\Result describeActiveReceiptRuleSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeActiveReceiptRuleSetAsync(array $args = []) + * @method \Aws\Result describeConfigurationSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeConfigurationSetAsync(array $args = []) + * @method \Aws\Result describeReceiptRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReceiptRuleAsync(array $args = []) + * @method \Aws\Result describeReceiptRuleSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeReceiptRuleSetAsync(array $args = []) + * @method \Aws\Result getAccountSendingEnabled(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAccountSendingEnabledAsync(array $args = []) + * @method \Aws\Result getCustomVerificationEmailTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCustomVerificationEmailTemplateAsync(array $args = []) + * @method \Aws\Result getIdentityDkimAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIdentityDkimAttributesAsync(array $args = []) + * @method \Aws\Result getIdentityMailFromDomainAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIdentityMailFromDomainAttributesAsync(array $args = []) + * @method \Aws\Result getIdentityNotificationAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIdentityNotificationAttributesAsync(array $args = []) + * @method \Aws\Result getIdentityPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIdentityPoliciesAsync(array $args = []) + * @method \Aws\Result getIdentityVerificationAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIdentityVerificationAttributesAsync(array $args = []) + * @method \Aws\Result getSendQuota(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSendQuotaAsync(array $args = []) + * @method \Aws\Result getSendStatistics(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSendStatisticsAsync(array $args = []) + * @method \Aws\Result getTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTemplateAsync(array $args = []) + * @method \Aws\Result listConfigurationSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listConfigurationSetsAsync(array $args = []) + * @method \Aws\Result listCustomVerificationEmailTemplates(array $args = []) + * @method \GuzzleHttp\Promise\Promise listCustomVerificationEmailTemplatesAsync(array $args = []) + * @method \Aws\Result listIdentities(array $args = []) + * @method \GuzzleHttp\Promise\Promise listIdentitiesAsync(array $args = []) + * @method \Aws\Result listIdentityPolicies(array $args = []) + * @method \GuzzleHttp\Promise\Promise listIdentityPoliciesAsync(array $args = []) + * @method \Aws\Result listReceiptFilters(array $args = []) + * @method \GuzzleHttp\Promise\Promise listReceiptFiltersAsync(array $args = []) + * @method \Aws\Result listReceiptRuleSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listReceiptRuleSetsAsync(array $args = []) + * @method \Aws\Result listTemplates(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTemplatesAsync(array $args = []) + * @method \Aws\Result listVerifiedEmailAddresses(array $args = []) + * @method \GuzzleHttp\Promise\Promise listVerifiedEmailAddressesAsync(array $args = []) + * @method \Aws\Result putIdentityPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putIdentityPolicyAsync(array $args = []) + * @method \Aws\Result reorderReceiptRuleSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise reorderReceiptRuleSetAsync(array $args = []) + * @method \Aws\Result sendBounce(array $args = []) + * @method \GuzzleHttp\Promise\Promise sendBounceAsync(array $args = []) + * @method \Aws\Result sendBulkTemplatedEmail(array $args = []) + * @method \GuzzleHttp\Promise\Promise sendBulkTemplatedEmailAsync(array $args = []) + * @method \Aws\Result sendCustomVerificationEmail(array $args = []) + * @method \GuzzleHttp\Promise\Promise sendCustomVerificationEmailAsync(array $args = []) + * @method \Aws\Result sendEmail(array $args = []) + * @method \GuzzleHttp\Promise\Promise sendEmailAsync(array $args = []) + * @method \Aws\Result sendRawEmail(array $args = []) + * @method \GuzzleHttp\Promise\Promise sendRawEmailAsync(array $args = []) + * @method \Aws\Result sendTemplatedEmail(array $args = []) + * @method \GuzzleHttp\Promise\Promise sendTemplatedEmailAsync(array $args = []) + * @method \Aws\Result setActiveReceiptRuleSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise setActiveReceiptRuleSetAsync(array $args = []) + * @method \Aws\Result setIdentityDkimEnabled(array $args = []) + * @method \GuzzleHttp\Promise\Promise setIdentityDkimEnabledAsync(array $args = []) + * @method \Aws\Result setIdentityFeedbackForwardingEnabled(array $args = []) + * @method \GuzzleHttp\Promise\Promise setIdentityFeedbackForwardingEnabledAsync(array $args = []) + * @method \Aws\Result setIdentityHeadersInNotificationsEnabled(array $args = []) + * @method \GuzzleHttp\Promise\Promise setIdentityHeadersInNotificationsEnabledAsync(array $args = []) + * @method \Aws\Result setIdentityMailFromDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise setIdentityMailFromDomainAsync(array $args = []) + * @method \Aws\Result setIdentityNotificationTopic(array $args = []) + * @method \GuzzleHttp\Promise\Promise setIdentityNotificationTopicAsync(array $args = []) + * @method \Aws\Result setReceiptRulePosition(array $args = []) + * @method \GuzzleHttp\Promise\Promise setReceiptRulePositionAsync(array $args = []) + * @method \Aws\Result testRenderTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise testRenderTemplateAsync(array $args = []) + * @method \Aws\Result updateAccountSendingEnabled(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAccountSendingEnabledAsync(array $args = []) + * @method \Aws\Result updateConfigurationSetEventDestination(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateConfigurationSetEventDestinationAsync(array $args = []) + * @method \Aws\Result updateConfigurationSetReputationMetricsEnabled(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateConfigurationSetReputationMetricsEnabledAsync(array $args = []) + * @method \Aws\Result updateConfigurationSetSendingEnabled(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateConfigurationSetSendingEnabledAsync(array $args = []) + * @method \Aws\Result updateConfigurationSetTrackingOptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateConfigurationSetTrackingOptionsAsync(array $args = []) + * @method \Aws\Result updateCustomVerificationEmailTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateCustomVerificationEmailTemplateAsync(array $args = []) + * @method \Aws\Result updateReceiptRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateReceiptRuleAsync(array $args = []) + * @method \Aws\Result updateTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateTemplateAsync(array $args = []) + * @method \Aws\Result verifyDomainDkim(array $args = []) + * @method \GuzzleHttp\Promise\Promise verifyDomainDkimAsync(array $args = []) + * @method \Aws\Result verifyDomainIdentity(array $args = []) + * @method \GuzzleHttp\Promise\Promise verifyDomainIdentityAsync(array $args = []) + * @method \Aws\Result verifyEmailAddress(array $args = []) + * @method \GuzzleHttp\Promise\Promise verifyEmailAddressAsync(array $args = []) + * @method \Aws\Result verifyEmailIdentity(array $args = []) + * @method \GuzzleHttp\Promise\Promise verifyEmailIdentityAsync(array $args = []) + */ +class SesClient extends \Aws\AwsClient +{ + /** + * Create an SMTP password for a given IAM user's credentials. + * + * The SMTP username is the Access Key ID for the provided credentials. + * + * @link http://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-credentials.html#smtp-credentials-convert + * + * @param CredentialsInterface $creds + * + * @return string + */ + public static function generateSmtpPassword(CredentialsInterface $creds) + { + static $version = "\x02"; + static $algo = 'sha256'; + static $message = 'SendRawEmail'; + $signature = hash_hmac($algo, $message, $creds->getSecretKey(), true); + + return base64_encode($version . $signature); + } + + /** + * @internal + * @codeCoverageIgnore + */ + public static function applyDocFilters(array $api, array $docs) + { + $b64 = '<div class="alert alert-info">This value will be base64 encoded on your behalf.</div>'; + + $docs['shapes']['RawMessage']['append'] = $b64; + + return [ + new Service($api, ApiProvider::defaultProvider()), + new DocModel($docs) + ]; + } +} diff --git a/lib/aws/Aws/Sfn/Exception/SfnException.php b/lib/aws/Aws/Sfn/Exception/SfnException.php new file mode 100644 index 0000000..12368f8 --- /dev/null +++ b/lib/aws/Aws/Sfn/Exception/SfnException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Sfn\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Step Functions** service. + */ +class SfnException extends AwsException {} diff --git a/lib/aws/Aws/Sfn/SfnClient.php b/lib/aws/Aws/Sfn/SfnClient.php new file mode 100644 index 0000000..16961ff --- /dev/null +++ b/lib/aws/Aws/Sfn/SfnClient.php @@ -0,0 +1,53 @@ +<?php +namespace Aws\Sfn; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Step Functions** service. + * @method \Aws\Result createActivity(array $args = []) + * @method \GuzzleHttp\Promise\Promise createActivityAsync(array $args = []) + * @method \Aws\Result createStateMachine(array $args = []) + * @method \GuzzleHttp\Promise\Promise createStateMachineAsync(array $args = []) + * @method \Aws\Result deleteActivity(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteActivityAsync(array $args = []) + * @method \Aws\Result deleteStateMachine(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteStateMachineAsync(array $args = []) + * @method \Aws\Result describeActivity(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeActivityAsync(array $args = []) + * @method \Aws\Result describeExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeExecutionAsync(array $args = []) + * @method \Aws\Result describeStateMachine(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStateMachineAsync(array $args = []) + * @method \Aws\Result describeStateMachineForExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStateMachineForExecutionAsync(array $args = []) + * @method \Aws\Result getActivityTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise getActivityTaskAsync(array $args = []) + * @method \Aws\Result getExecutionHistory(array $args = []) + * @method \GuzzleHttp\Promise\Promise getExecutionHistoryAsync(array $args = []) + * @method \Aws\Result listActivities(array $args = []) + * @method \GuzzleHttp\Promise\Promise listActivitiesAsync(array $args = []) + * @method \Aws\Result listExecutions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listExecutionsAsync(array $args = []) + * @method \Aws\Result listStateMachines(array $args = []) + * @method \GuzzleHttp\Promise\Promise listStateMachinesAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result sendTaskFailure(array $args = []) + * @method \GuzzleHttp\Promise\Promise sendTaskFailureAsync(array $args = []) + * @method \Aws\Result sendTaskHeartbeat(array $args = []) + * @method \GuzzleHttp\Promise\Promise sendTaskHeartbeatAsync(array $args = []) + * @method \Aws\Result sendTaskSuccess(array $args = []) + * @method \GuzzleHttp\Promise\Promise sendTaskSuccessAsync(array $args = []) + * @method \Aws\Result startExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise startExecutionAsync(array $args = []) + * @method \Aws\Result stopExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopExecutionAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateStateMachine(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateStateMachineAsync(array $args = []) + */ +class SfnClient extends AwsClient {} diff --git a/lib/aws/Aws/Shield/Exception/ShieldException.php b/lib/aws/Aws/Shield/Exception/ShieldException.php new file mode 100644 index 0000000..3c1a5e1 --- /dev/null +++ b/lib/aws/Aws/Shield/Exception/ShieldException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Shield\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Shield** service. + */ +class ShieldException extends AwsException {} diff --git a/lib/aws/Aws/Shield/ShieldClient.php b/lib/aws/Aws/Shield/ShieldClient.php new file mode 100644 index 0000000..3d56bf5 --- /dev/null +++ b/lib/aws/Aws/Shield/ShieldClient.php @@ -0,0 +1,45 @@ +<?php +namespace Aws\Shield; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Shield** service. + * @method \Aws\Result associateDRTLogBucket(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateDRTLogBucketAsync(array $args = []) + * @method \Aws\Result associateDRTRole(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateDRTRoleAsync(array $args = []) + * @method \Aws\Result createProtection(array $args = []) + * @method \GuzzleHttp\Promise\Promise createProtectionAsync(array $args = []) + * @method \Aws\Result createSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSubscriptionAsync(array $args = []) + * @method \Aws\Result deleteProtection(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteProtectionAsync(array $args = []) + * @method \Aws\Result deleteSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSubscriptionAsync(array $args = []) + * @method \Aws\Result describeAttack(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAttackAsync(array $args = []) + * @method \Aws\Result describeDRTAccess(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDRTAccessAsync(array $args = []) + * @method \Aws\Result describeEmergencyContactSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEmergencyContactSettingsAsync(array $args = []) + * @method \Aws\Result describeProtection(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeProtectionAsync(array $args = []) + * @method \Aws\Result describeSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSubscriptionAsync(array $args = []) + * @method \Aws\Result disassociateDRTLogBucket(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateDRTLogBucketAsync(array $args = []) + * @method \Aws\Result disassociateDRTRole(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateDRTRoleAsync(array $args = []) + * @method \Aws\Result getSubscriptionState(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSubscriptionStateAsync(array $args = []) + * @method \Aws\Result listAttacks(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAttacksAsync(array $args = []) + * @method \Aws\Result listProtections(array $args = []) + * @method \GuzzleHttp\Promise\Promise listProtectionsAsync(array $args = []) + * @method \Aws\Result updateEmergencyContactSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateEmergencyContactSettingsAsync(array $args = []) + * @method \Aws\Result updateSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSubscriptionAsync(array $args = []) + */ +class ShieldClient extends AwsClient {} diff --git a/lib/aws/Aws/Signature/AnonymousSignature.php b/lib/aws/Aws/Signature/AnonymousSignature.php new file mode 100644 index 0000000..bb545e3 --- /dev/null +++ b/lib/aws/Aws/Signature/AnonymousSignature.php @@ -0,0 +1,26 @@ +<?php +namespace Aws\Signature; + +use Aws\Credentials\CredentialsInterface; +use Psr\Http\Message\RequestInterface; + +/** + * Provides anonymous client access (does not sign requests). + */ +class AnonymousSignature implements SignatureInterface +{ + public function signRequest( + RequestInterface $request, + CredentialsInterface $credentials + ) { + return $request; + } + + public function presign( + RequestInterface $request, + CredentialsInterface $credentials, + $expires + ) { + return $request; + } +} diff --git a/lib/aws/Aws/Signature/S3SignatureV4.php b/lib/aws/Aws/Signature/S3SignatureV4.php new file mode 100644 index 0000000..1055ce7 --- /dev/null +++ b/lib/aws/Aws/Signature/S3SignatureV4.php @@ -0,0 +1,68 @@ +<?php +namespace Aws\Signature; + +use Aws\Credentials\CredentialsInterface; +use Psr\Http\Message\RequestInterface; + +/** + * Amazon S3 signature version 4 support. + */ +class S3SignatureV4 extends SignatureV4 +{ + /** + * Always add a x-amz-content-sha-256 for data integrity. + */ + public function signRequest( + RequestInterface $request, + CredentialsInterface $credentials + ) { + if (!$request->hasHeader('x-amz-content-sha256')) { + $request = $request->withHeader( + 'X-Amz-Content-Sha256', + $this->getPayload($request) + ); + } + + return parent::signRequest($request, $credentials); + } + + /** + * Always add a x-amz-content-sha-256 for data integrity. + */ + public function presign( + RequestInterface $request, + CredentialsInterface $credentials, + $expires, + array $options = [] + ) { + if (!$request->hasHeader('x-amz-content-sha256')) { + $request = $request->withHeader( + 'X-Amz-Content-Sha256', + $this->getPresignedPayload($request) + ); + } + + return parent::presign($request, $credentials, $expires, $options); + } + + /** + * Override used to allow pre-signed URLs to be created for an + * in-determinate request payload. + */ + protected function getPresignedPayload(RequestInterface $request) + { + return SignatureV4::UNSIGNED_PAYLOAD; + } + + /** + * Amazon S3 does not double-encode the path component in the canonical request + */ + protected function createCanonicalizedPath($path) + { + // Only remove one slash in case of keys that have a preceding slash + if (substr($path, 0, 1) === '/') { + $path = substr($path, 1); + } + return '/' . $path; + } +} diff --git a/lib/aws/Aws/Signature/SignatureInterface.php b/lib/aws/Aws/Signature/SignatureInterface.php new file mode 100644 index 0000000..9626181 --- /dev/null +++ b/lib/aws/Aws/Signature/SignatureInterface.php @@ -0,0 +1,44 @@ +<?php +namespace Aws\Signature; + +use Aws\Credentials\CredentialsInterface; +use Psr\Http\Message\RequestInterface; + +/** + * Interface used to provide interchangeable strategies for signing requests + * using the various AWS signature protocols. + */ +interface SignatureInterface +{ + /** + * Signs the specified request with an AWS signing protocol by using the + * provided AWS account credentials and adding the required headers to the + * request. + * + * @param RequestInterface $request Request to sign + * @param CredentialsInterface $credentials Signing credentials + * + * @return RequestInterface Returns the modified request. + */ + public function signRequest( + RequestInterface $request, + CredentialsInterface $credentials + ); + + /** + * Create a pre-signed request. + * + * @param RequestInterface $request Request to sign + * @param CredentialsInterface $credentials Credentials used to sign + * @param int|string|\DateTime $expires The time at which the URL should + * expire. This can be a Unix timestamp, a PHP DateTime object, or a + * string that can be evaluated by strtotime. + * + * @return RequestInterface + */ + public function presign( + RequestInterface $request, + CredentialsInterface $credentials, + $expires + ); +} diff --git a/lib/aws/Aws/Signature/SignatureProvider.php b/lib/aws/Aws/Signature/SignatureProvider.php new file mode 100644 index 0000000..70dfae3 --- /dev/null +++ b/lib/aws/Aws/Signature/SignatureProvider.php @@ -0,0 +1,131 @@ +<?php +namespace Aws\Signature; + +use Aws\Exception\UnresolvedSignatureException; + +/** + * Signature providers. + * + * A signature provider is a function that accepts a version, service, and + * region and returns a {@see SignatureInterface} object on success or NULL if + * no signature can be created from the provided arguments. + * + * You can wrap your calls to a signature provider with the + * {@see SignatureProvider::resolve} function to ensure that a signature object + * is created. If a signature object is not created, then the resolve() + * function will throw a {@see Aws\Exception\UnresolvedSignatureException}. + * + * use Aws\Signature\SignatureProvider; + * $provider = SignatureProvider::defaultProvider(); + * // Returns a SignatureInterface or NULL. + * $signer = $provider('v4', 's3', 'us-west-2'); + * // Returns a SignatureInterface or throws. + * $signer = SignatureProvider::resolve($provider, 'no', 's3', 'foo'); + * + * 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 = SignatureProvider::defaultProvider(); + * $b = function ($version, $service, $region) { + * if ($version === 'foo') { + * return new MyFooSignature(); + * } + * }; + * $c = \Aws\or_chain($a, $b); + * $signer = $c('v4', 'abc', '123'); // $a handles this. + * $signer = $c('foo', 'abc', '123'); // $b handles this. + * $nullValue = $c('???', 'abc', '123'); // Neither can handle this. + */ +class SignatureProvider +{ + private static $s3v4SignedServices = [ + 's3' => true, + 's3control' => true, + ]; + + /** + * Resolves and signature provider and ensures a non-null return value. + * + * @param callable $provider Provider function to invoke. + * @param string $version Signature version. + * @param string $service Service name. + * @param string $region Region name. + * + * @return SignatureInterface + * @throws UnresolvedSignatureException + */ + public static function resolve(callable $provider, $version, $service, $region) + { + $result = $provider($version, $service, $region); + if ($result instanceof SignatureInterface) { + return $result; + } + + throw new UnresolvedSignatureException( + "Unable to resolve a signature for $version/$service/$region.\n" + . "Valid signature versions include v4 and anonymous." + ); + } + + /** + * Default SDK signature provider. + * + * @return callable + */ + public static function defaultProvider() + { + return self::memoize(self::version()); + } + + /** + * Creates a signature provider that caches previously created signature + * objects. The computed cache key is the concatenation of the version, + * service, and region. + * + * @param callable $provider Signature provider to wrap. + * + * @return callable + */ + public static function memoize(callable $provider) + { + $cache = []; + return function ($version, $service, $region) use (&$cache, $provider) { + $key = "($version)($service)($region)"; + if (!isset($cache[$key])) { + $cache[$key] = $provider($version, $service, $region); + } + return $cache[$key]; + }; + } + + /** + * Creates signature objects from known signature versions. + * + * This provider currently recognizes the following signature versions: + * + * - v4: Signature version 4. + * - anonymous: Does not sign requests. + * + * @return callable + */ + public static function version() + { + return function ($version, $service, $region) { + switch ($version) { + case 's3v4': + case 'v4': + return !empty(self::$s3v4SignedServices[$service]) + ? new S3SignatureV4($service, $region) + : new SignatureV4($service, $region); + case 'v4-unsigned-body': + return new SignatureV4($service, $region, ['unsigned-body' => 'true']); + case 'anonymous': + return new AnonymousSignature(); + default: + return null; + } + }; + } +} diff --git a/lib/aws/Aws/Signature/SignatureTrait.php b/lib/aws/Aws/Signature/SignatureTrait.php new file mode 100644 index 0000000..d18899f --- /dev/null +++ b/lib/aws/Aws/Signature/SignatureTrait.php @@ -0,0 +1,49 @@ +<?php +namespace Aws\Signature; + +/** + * Provides signature calculation for SignatureV4. + */ +trait SignatureTrait +{ + /** @var array Cache of previously signed values */ + private $cache = []; + + /** @var int Size of the hash cache */ + private $cacheSize = 0; + + private function createScope($shortDate, $region, $service) + { + return "$shortDate/$region/$service/aws4_request"; + } + + 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]; + } +} diff --git a/lib/aws/Aws/Signature/SignatureV4.php b/lib/aws/Aws/Signature/SignatureV4.php new file mode 100644 index 0000000..0bf7522 --- /dev/null +++ b/lib/aws/Aws/Signature/SignatureV4.php @@ -0,0 +1,412 @@ +<?php +namespace Aws\Signature; + +use Aws\Credentials\CredentialsInterface; +use Aws\Exception\CouldNotCreateChecksumException; +use GuzzleHttp\Psr7; +use Psr\Http\Message\RequestInterface; + +/** + * Signature Version 4 + * @link http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html + */ +class SignatureV4 implements SignatureInterface +{ + use SignatureTrait; + const ISO8601_BASIC = 'Ymd\THis\Z'; + const UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD'; + const AMZ_CONTENT_SHA256_HEADER = 'X-Amz-Content-Sha256'; + + /** @var string */ + private $service; + + /** @var string */ + private $region; + + /** @var bool */ + private $unsigned; + + /** + * 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. + * + * @return array + */ + private function getHeaderBlacklist() + { + return [ + '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, + 'x-amzn-trace-id' => true, + 'aws-sdk-invocation-id' => true, + 'aws-sdk-retry' => true, + ]; + } + + /** + * @param string $service Service name to use when signing + * @param string $region Region name to use when signing + * @param array $options Array of configuration options used when signing + * - unsigned-body: Flag to make request have unsigned payload. + * Unsigned body is used primarily for streaming requests. + */ + public function __construct($service, $region, array $options = []) + { + $this->service = $service; + $this->region = $region; + $this->unsigned = isset($options['unsigned-body']) ? $options['unsigned-body'] : false; + } + + 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); + + if ($payload == self::UNSIGNED_PAYLOAD) { + $parsed['headers'][self::AMZ_CONTENT_SHA256_HEADER] = [$payload]; + } + + $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); + } + + /** + * Get the headers that were used to pre-sign the request. + * Used for the X-Amz-SignedHeaders header. + * + * @param array $headers + * @return array + */ + private function getPresignHeaders(array $headers) + { + $presignHeaders = []; + $blacklist = $this->getHeaderBlacklist(); + foreach ($headers as $name => $value) { + $lName = strtolower($name); + if (!isset($blacklist[$lName]) + && $name !== self::AMZ_CONTENT_SHA256_HEADER + ) { + $presignHeaders[] = $lName; + } + } + return $presignHeaders; + } + + public function presign( + RequestInterface $request, + CredentialsInterface $credentials, + $expires, + array $options = [] + ) { + + $startTimestamp = isset($options['start_time']) + ? $this->convertToTimestamp($options['start_time'], null) + : time(); + + $expiresTimestamp = $this->convertToTimestamp($expires, $startTimestamp); + + $parsed = $this->createPresignedRequest($request, $credentials); + $payload = $this->getPresignedPayload($request); + $httpDate = gmdate(self::ISO8601_BASIC, $startTimestamp); + $shortDate = substr($httpDate, 0, 8); + $scope = $this->createScope($shortDate, $this->region, $this->service); + $credential = $credentials->getAccessKeyId() . '/' . $scope; + if ($credentials->getSecurityToken()) { + unset($parsed['headers']['X-Amz-Security-Token']); + } + $parsed['query']['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256'; + $parsed['query']['X-Amz-Credential'] = $credential; + $parsed['query']['X-Amz-Date'] = gmdate('Ymd\THis\Z', $startTimestamp); + $parsed['query']['X-Amz-SignedHeaders'] = implode(';', $this->getPresignHeaders($parsed['headers'])); + $parsed['query']['X-Amz-Expires'] = $this->convertExpires($expiresTimestamp, $startTimestamp); + $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) + { + if ($this->unsigned && $request->getUri()->getScheme() == 'https') { + return self::UNSIGNED_PAYLOAD; + } + // Calculate the request signature payload + if ($request->hasHeader(self::AMZ_CONTENT_SHA256_HEADER)) { + // Handle streaming operations (e.g. Glacier.UploadArchive) + return $request->getHeaderLine(self::AMZ_CONTENT_SHA256_HEADER); + } + + 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); + } + + protected function createCanonicalizedPath($path) + { + $doubleEncoded = rawurlencode(ltrim($path, '/')); + + return '/' . str_replace('%2F', '/', $doubleEncoded); + } + + 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) + { + $blacklist = $this->getHeaderBlacklist(); + + // Normalize the path as required by SigV4 + $canon = $parsedRequest['method'] . "\n" + . $this->createCanonicalizedPath($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 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 convertToTimestamp($dateValue, $relativeTimeBase = null) + { + if ($dateValue instanceof \DateTimeInterface) { + $timestamp = $dateValue->getTimestamp(); + } elseif (!is_numeric($dateValue)) { + $timestamp = strtotime($dateValue, + $relativeTimeBase === null ? time() : $relativeTimeBase + ); + } else { + $timestamp = $dateValue; + } + + return $timestamp; + } + + private function convertExpires($expiresTimestamp, $startTimestamp) + { + $duration = $expiresTimestamp - $startTimestamp; + + // 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 moveHeadersToQuery(array $parsedRequest) + { + foreach ($parsedRequest['headers'] as $name => $header) { + $lname = strtolower($name); + if (substr($lname, 0, 5) == 'x-amz') { + $parsedRequest['query'][$name] = $header; + } + $blacklist = $this->getHeaderBlacklist(); + if (isset($blacklist[$lname]) + || $lname === strtolower(self::AMZ_CONTENT_SHA256_HEADER) + ) { + 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/Aws/Sms/Exception/SmsException.php b/lib/aws/Aws/Sms/Exception/SmsException.php new file mode 100644 index 0000000..2da68c2 --- /dev/null +++ b/lib/aws/Aws/Sms/Exception/SmsException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Sms\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Server Migration Service** service. + */ +class SmsException extends AwsException {} diff --git a/lib/aws/Aws/Sms/SmsClient.php b/lib/aws/Aws/Sms/SmsClient.php new file mode 100644 index 0000000..dd35342 --- /dev/null +++ b/lib/aws/Aws/Sms/SmsClient.php @@ -0,0 +1,65 @@ +<?php +namespace Aws\Sms; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Server Migration Service** service. + * @method \Aws\Result createApp(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAppAsync(array $args = []) + * @method \Aws\Result createReplicationJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise createReplicationJobAsync(array $args = []) + * @method \Aws\Result deleteApp(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAppAsync(array $args = []) + * @method \Aws\Result deleteAppLaunchConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAppLaunchConfigurationAsync(array $args = []) + * @method \Aws\Result deleteAppReplicationConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAppReplicationConfigurationAsync(array $args = []) + * @method \Aws\Result deleteReplicationJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteReplicationJobAsync(array $args = []) + * @method \Aws\Result deleteServerCatalog(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteServerCatalogAsync(array $args = []) + * @method \Aws\Result disassociateConnector(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateConnectorAsync(array $args = []) + * @method \Aws\Result generateChangeSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise generateChangeSetAsync(array $args = []) + * @method \Aws\Result generateTemplate(array $args = []) + * @method \GuzzleHttp\Promise\Promise generateTemplateAsync(array $args = []) + * @method \Aws\Result getApp(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAppAsync(array $args = []) + * @method \Aws\Result getAppLaunchConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAppLaunchConfigurationAsync(array $args = []) + * @method \Aws\Result getAppReplicationConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAppReplicationConfigurationAsync(array $args = []) + * @method \Aws\Result getConnectors(array $args = []) + * @method \GuzzleHttp\Promise\Promise getConnectorsAsync(array $args = []) + * @method \Aws\Result getReplicationJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise getReplicationJobsAsync(array $args = []) + * @method \Aws\Result getReplicationRuns(array $args = []) + * @method \GuzzleHttp\Promise\Promise getReplicationRunsAsync(array $args = []) + * @method \Aws\Result getServers(array $args = []) + * @method \GuzzleHttp\Promise\Promise getServersAsync(array $args = []) + * @method \Aws\Result importServerCatalog(array $args = []) + * @method \GuzzleHttp\Promise\Promise importServerCatalogAsync(array $args = []) + * @method \Aws\Result launchApp(array $args = []) + * @method \GuzzleHttp\Promise\Promise launchAppAsync(array $args = []) + * @method \Aws\Result listApps(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAppsAsync(array $args = []) + * @method \Aws\Result putAppLaunchConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putAppLaunchConfigurationAsync(array $args = []) + * @method \Aws\Result putAppReplicationConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putAppReplicationConfigurationAsync(array $args = []) + * @method \Aws\Result startAppReplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise startAppReplicationAsync(array $args = []) + * @method \Aws\Result startOnDemandReplicationRun(array $args = []) + * @method \GuzzleHttp\Promise\Promise startOnDemandReplicationRunAsync(array $args = []) + * @method \Aws\Result stopAppReplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopAppReplicationAsync(array $args = []) + * @method \Aws\Result terminateApp(array $args = []) + * @method \GuzzleHttp\Promise\Promise terminateAppAsync(array $args = []) + * @method \Aws\Result updateApp(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAppAsync(array $args = []) + * @method \Aws\Result updateReplicationJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateReplicationJobAsync(array $args = []) + */ +class SmsClient extends AwsClient {} diff --git a/lib/aws/Aws/SnowBall/Exception/SnowBallException.php b/lib/aws/Aws/SnowBall/Exception/SnowBallException.php new file mode 100644 index 0000000..12d0c0b --- /dev/null +++ b/lib/aws/Aws/SnowBall/Exception/SnowBallException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\SnowBall\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Import/Export Snowball** service. + */ +class SnowBallException extends AwsException {} diff --git a/lib/aws/Aws/SnowBall/SnowBallClient.php b/lib/aws/Aws/SnowBall/SnowBallClient.php new file mode 100644 index 0000000..15e2a80 --- /dev/null +++ b/lib/aws/Aws/SnowBall/SnowBallClient.php @@ -0,0 +1,45 @@ +<?php +namespace Aws\SnowBall; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Import/Export Snowball** service. + * @method \Aws\Result cancelCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelClusterAsync(array $args = []) + * @method \Aws\Result cancelJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelJobAsync(array $args = []) + * @method \Aws\Result createAddress(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAddressAsync(array $args = []) + * @method \Aws\Result createCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise createClusterAsync(array $args = []) + * @method \Aws\Result createJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise createJobAsync(array $args = []) + * @method \Aws\Result describeAddress(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAddressAsync(array $args = []) + * @method \Aws\Result describeAddresses(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAddressesAsync(array $args = []) + * @method \Aws\Result describeCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeClusterAsync(array $args = []) + * @method \Aws\Result describeJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeJobAsync(array $args = []) + * @method \Aws\Result getJobManifest(array $args = []) + * @method \GuzzleHttp\Promise\Promise getJobManifestAsync(array $args = []) + * @method \Aws\Result getJobUnlockCode(array $args = []) + * @method \GuzzleHttp\Promise\Promise getJobUnlockCodeAsync(array $args = []) + * @method \Aws\Result getSnowballUsage(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSnowballUsageAsync(array $args = []) + * @method \Aws\Result listClusterJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listClusterJobsAsync(array $args = []) + * @method \Aws\Result listClusters(array $args = []) + * @method \GuzzleHttp\Promise\Promise listClustersAsync(array $args = []) + * @method \Aws\Result listCompatibleImages(array $args = []) + * @method \GuzzleHttp\Promise\Promise listCompatibleImagesAsync(array $args = []) + * @method \Aws\Result listJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listJobsAsync(array $args = []) + * @method \Aws\Result updateCluster(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateClusterAsync(array $args = []) + * @method \Aws\Result updateJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateJobAsync(array $args = []) + */ +class SnowBallClient extends AwsClient {} diff --git a/lib/aws/Aws/Sns/Exception/InvalidSnsMessageException.php b/lib/aws/Aws/Sns/Exception/InvalidSnsMessageException.php new file mode 100644 index 0000000..289c13b --- /dev/null +++ b/lib/aws/Aws/Sns/Exception/InvalidSnsMessageException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Sns\Exception; + +/** + * Runtime exception thrown by the SNS Message Validator. + */ +class InvalidSnsMessageException extends \RuntimeException +{ +} diff --git a/lib/aws/Aws/Sns/Exception/SnsException.php b/lib/aws/Aws/Sns/Exception/SnsException.php new file mode 100644 index 0000000..cc2c245 --- /dev/null +++ b/lib/aws/Aws/Sns/Exception/SnsException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Sns\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon Simple Notification Service. + */ +class SnsException extends AwsException {} diff --git a/lib/aws/Aws/Sns/Message.php b/lib/aws/Aws/Sns/Message.php new file mode 100644 index 0000000..5c8ec26 --- /dev/null +++ b/lib/aws/Aws/Sns/Message.php @@ -0,0 +1,156 @@ +<?php +namespace Aws\Sns; + +use Psr\Http\Message\RequestInterface; + +/** + * Represents an SNS message received over http(s). + */ +class Message implements \ArrayAccess, \IteratorAggregate +{ + private static $requiredKeys = [ + 'Message', + 'MessageId', + 'Timestamp', + 'TopicArn', + 'Type', + 'Signature', + ['SigningCertURL', 'SigningCertUrl'], + 'SignatureVersion', + ]; + + private static $subscribeKeys = [ + ['SubscribeURL', 'SubscribeUrl'], + 'Token' + ]; + + /** @var array The message data */ + private $data; + + /** + * Creates a Message object from the raw POST data + * + * @return Message + * @throws \RuntimeException If the POST data is absent, or not a valid JSON document + */ + public static function fromRawPostData() + { + // Make sure the SNS-provided header exists. + if (!isset($_SERVER['HTTP_X_AMZ_SNS_MESSAGE_TYPE'])) { + throw new \RuntimeException('SNS message type header not provided.'); + } + + // Read the raw POST data and JSON-decode it into a message. + return self::fromJsonString(file_get_contents('php://input')); + } + + /** + * Creates a Message object from a PSR-7 Request or ServerRequest object. + * + * @param RequestInterface $request + * @return Message + */ + public static function fromPsrRequest(RequestInterface $request) + { + return self::fromJsonString($request->getBody()); + } + + /** + * Creates a Message object from a JSON-decodable string. + * + * @param string $requestBody + * @return Message + */ + private static function fromJsonString($requestBody) + { + $data = json_decode($requestBody, true); + if (JSON_ERROR_NONE !== json_last_error() || !is_array($data)) { + throw new \RuntimeException('Invalid POST data.'); + } + + return new Message($data); + } + + /** + * Creates a Message object from an array of raw message data. + * + * @param array $data The message data. + * + * @throws \InvalidArgumentException If a valid type is not provided or + * there are other required keys missing. + */ + public function __construct(array $data) + { + // Ensure that all the required keys for the message's type are present. + $this->validateRequiredKeys($data, self::$requiredKeys); + if ($data['Type'] === 'SubscriptionConfirmation' + || $data['Type'] === 'UnsubscribeConfirmation' + ) { + $this->validateRequiredKeys($data, self::$subscribeKeys); + } + + $this->data = $data; + } + + public function getIterator() + { + return new \ArrayIterator($this->data); + } + + public function offsetExists($key) + { + return isset($this->data[$key]); + } + + public function offsetGet($key) + { + return isset($this->data[$key]) ? $this->data[$key] : null; + } + + public function offsetSet($key, $value) + { + $this->data[$key] = $value; + } + + public function offsetUnset($key) + { + unset($this->data[$key]); + } + + /** + * Get all the message data as a plain array. + * + * @return array + */ + public function toArray() + { + return $this->data; + } + + private function validateRequiredKeys(array $data, array $keys) + { + foreach ($keys as $key) { + $keyIsArray = is_array($key); + if (!$keyIsArray) { + $found = isset($data[$key]); + } else { + $found = false; + foreach ($key as $keyOption) { + if (isset($data[$keyOption])) { + $found = true; + break; + } + } + } + + if (!$found) { + if ($keyIsArray) { + $key = $key[0]; + } + throw new \InvalidArgumentException( + "\"{$key}\" is required to verify the SNS Message." + ); + } + } + } +} diff --git a/lib/aws/Aws/Sns/MessageValidator.php b/lib/aws/Aws/Sns/MessageValidator.php new file mode 100644 index 0000000..e8ba872 --- /dev/null +++ b/lib/aws/Aws/Sns/MessageValidator.php @@ -0,0 +1,190 @@ +<?php +namespace Aws\Sns; + +use Aws\Sns\Exception\InvalidSnsMessageException; + +/** + * Uses openssl to verify SNS messages to ensure that they were sent by AWS. + */ +class MessageValidator +{ + const SIGNATURE_VERSION_1 = '1'; + + /** + * @var callable Callable used to download the certificate content. + */ + private $certClient; + + /** @var string */ + private $hostPattern; + + /** + * @var string A pattern that will match all regional SNS endpoints, e.g.: + * - sns.<region>.amazonaws.com (AWS) + * - sns.us-gov-west-1.amazonaws.com (AWS GovCloud) + * - sns.cn-north-1.amazonaws.com.cn (AWS China) + */ + private static $defaultHostPattern + = '/^sns\.[a-zA-Z0-9\-]{3,}\.amazonaws\.com(\.cn)?$/'; + + private static function isLambdaStyle(Message $message) + { + return isset($message['SigningCertUrl']); + } + + private static function convertLambdaMessage(Message $lambdaMessage) + { + $keyReplacements = [ + 'SigningCertUrl' => 'SigningCertURL', + 'SubscribeUrl' => 'SubscribeURL', + 'UnsubscribeUrl' => 'UnsubscribeURL', + ]; + + $message = clone $lambdaMessage; + foreach ($keyReplacements as $lambdaKey => $canonicalKey) { + if (isset($message[$lambdaKey])) { + $message[$canonicalKey] = $message[$lambdaKey]; + unset($message[$lambdaKey]); + } + } + + return $message; + } + + /** + * Constructs the Message Validator object and ensures that openssl is + * installed. + * + * @param callable $certClient Callable used to download the certificate. + * Should have the following function signature: + * `function (string $certUrl) : string $certContent` + * @param string $hostNamePattern + */ + public function __construct( + callable $certClient = null, + $hostNamePattern = '' + ) { + $this->certClient = $certClient ?: 'file_get_contents'; + $this->hostPattern = $hostNamePattern ?: self::$defaultHostPattern; + } + + /** + * Validates a message from SNS to ensure that it was delivered by AWS. + * + * @param Message $message Message to validate. + * + * @throws InvalidSnsMessageException If the cert cannot be retrieved or its + * source verified, or the message + * signature is invalid. + */ + public function validate(Message $message) + { + if (self::isLambdaStyle($message)) { + $message = self::convertLambdaMessage($message); + } + + // Get the certificate. + $this->validateUrl($message['SigningCertURL']); + $certificate = call_user_func($this->certClient, $message['SigningCertURL']); + if ($certificate === false) { + throw new InvalidSnsMessageException( + "Cannot get the certificate from \"{$message['SigningCertURL']}\"." + ); + } + + // Extract the public key. + $key = openssl_get_publickey($certificate); + if (!$key) { + throw new InvalidSnsMessageException( + 'Cannot get the public key from the certificate.' + ); + } + + // Verify the signature of the message. + $content = $this->getStringToSign($message); + $signature = base64_decode($message['Signature']); + if (openssl_verify($content, $signature, $key, OPENSSL_ALGO_SHA1) != 1) { + throw new InvalidSnsMessageException( + '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. + * + * @param Message $message The message to validate + * + * @return bool + */ + public function isValid(Message $message) + { + try { + $this->validate($message); + return true; + } catch (InvalidSnsMessageException $e) { + return false; + } + } + + /** + * Builds string-to-sign according to the SNS message spec. + * + * @param Message $message Message for which to build the string-to-sign. + * + * @return string + * @link http://docs.aws.amazon.com/sns/latest/gsg/SendMessageToHttp.verify.signature.html + */ + public function getStringToSign(Message $message) + { + static $signableKeys = [ + 'Message', + 'MessageId', + 'Subject', + 'SubscribeURL', + 'Timestamp', + 'Token', + 'TopicArn', + 'Type', + ]; + + if ($message['SignatureVersion'] !== self::SIGNATURE_VERSION_1) { + throw new InvalidSnsMessageException( + "The SignatureVersion \"{$message['SignatureVersion']}\" is not supported." + ); + } + + $stringToSign = ''; + foreach ($signableKeys as $key) { + if (isset($message[$key])) { + $stringToSign .= "{$key}\n{$message[$key]}\n"; + } + } + + return $stringToSign; + } + + /** + * Ensures that the URL of the certificate is one belonging to AWS, and not + * just something from the amazonaws domain, which could include S3 buckets. + * + * @param string $url Certificate URL + * + * @throws InvalidSnsMessageException if the cert url is invalid. + */ + private function validateUrl($url) + { + $parsed = parse_url($url); + if (empty($parsed['scheme']) + || empty($parsed['host']) + || $parsed['scheme'] !== 'https' + || substr($url, -4) !== '.pem' + || !preg_match($this->hostPattern, $parsed['host']) + ) { + throw new InvalidSnsMessageException( + 'The certificate is located on an invalid domain.' + ); + } + } +} diff --git a/lib/aws/Aws/Sns/SnsClient.php b/lib/aws/Aws/Sns/SnsClient.php new file mode 100644 index 0000000..5d86526 --- /dev/null +++ b/lib/aws/Aws/Sns/SnsClient.php @@ -0,0 +1,70 @@ +<?php +namespace Aws\Sns; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Simple Notification Service (Amazon SNS)**. + * + * @method \Aws\Result addPermission(array $args = []) + * @method \GuzzleHttp\Promise\Promise addPermissionAsync(array $args = []) + * @method \Aws\Result checkIfPhoneNumberIsOptedOut(array $args = []) + * @method \GuzzleHttp\Promise\Promise checkIfPhoneNumberIsOptedOutAsync(array $args = []) + * @method \Aws\Result confirmSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise confirmSubscriptionAsync(array $args = []) + * @method \Aws\Result createPlatformApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPlatformApplicationAsync(array $args = []) + * @method \Aws\Result createPlatformEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPlatformEndpointAsync(array $args = []) + * @method \Aws\Result createTopic(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTopicAsync(array $args = []) + * @method \Aws\Result deleteEndpoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteEndpointAsync(array $args = []) + * @method \Aws\Result deletePlatformApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePlatformApplicationAsync(array $args = []) + * @method \Aws\Result deleteTopic(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTopicAsync(array $args = []) + * @method \Aws\Result getEndpointAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise getEndpointAttributesAsync(array $args = []) + * @method \Aws\Result getPlatformApplicationAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPlatformApplicationAttributesAsync(array $args = []) + * @method \Aws\Result getSMSAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSMSAttributesAsync(array $args = []) + * @method \Aws\Result getSubscriptionAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSubscriptionAttributesAsync(array $args = []) + * @method \Aws\Result getTopicAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTopicAttributesAsync(array $args = []) + * @method \Aws\Result listEndpointsByPlatformApplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise listEndpointsByPlatformApplicationAsync(array $args = []) + * @method \Aws\Result listPhoneNumbersOptedOut(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPhoneNumbersOptedOutAsync(array $args = []) + * @method \Aws\Result listPlatformApplications(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPlatformApplicationsAsync(array $args = []) + * @method \Aws\Result listSubscriptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSubscriptionsAsync(array $args = []) + * @method \Aws\Result listSubscriptionsByTopic(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSubscriptionsByTopicAsync(array $args = []) + * @method \Aws\Result listTopics(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTopicsAsync(array $args = []) + * @method \Aws\Result optInPhoneNumber(array $args = []) + * @method \GuzzleHttp\Promise\Promise optInPhoneNumberAsync(array $args = []) + * @method \Aws\Result publish(array $args = []) + * @method \GuzzleHttp\Promise\Promise publishAsync(array $args = []) + * @method \Aws\Result removePermission(array $args = []) + * @method \GuzzleHttp\Promise\Promise removePermissionAsync(array $args = []) + * @method \Aws\Result setEndpointAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise setEndpointAttributesAsync(array $args = []) + * @method \Aws\Result setPlatformApplicationAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise setPlatformApplicationAttributesAsync(array $args = []) + * @method \Aws\Result setSMSAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise setSMSAttributesAsync(array $args = []) + * @method \Aws\Result setSubscriptionAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise setSubscriptionAttributesAsync(array $args = []) + * @method \Aws\Result setTopicAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise setTopicAttributesAsync(array $args = []) + * @method \Aws\Result subscribe(array $args = []) + * @method \GuzzleHttp\Promise\Promise subscribeAsync(array $args = []) + * @method \Aws\Result unsubscribe(array $args = []) + * @method \GuzzleHttp\Promise\Promise unsubscribeAsync(array $args = []) + */ +class SnsClient extends AwsClient {} diff --git a/lib/aws/Aws/Sqs/Exception/SqsException.php b/lib/aws/Aws/Sqs/Exception/SqsException.php new file mode 100644 index 0000000..e122c0d --- /dev/null +++ b/lib/aws/Aws/Sqs/Exception/SqsException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Sqs\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon Simple Queue Service. + */ +class SqsException extends AwsException {} diff --git a/lib/aws/Aws/Sqs/SqsClient.php b/lib/aws/Aws/Sqs/SqsClient.php new file mode 100644 index 0000000..2a4da3c --- /dev/null +++ b/lib/aws/Aws/Sqs/SqsClient.php @@ -0,0 +1,256 @@ +<?php +namespace Aws\Sqs; + +use Aws\AwsClient; +use Aws\CommandInterface; +use Aws\Sqs\Exception\SqsException; +use GuzzleHttp\Psr7\Uri; +use GuzzleHttp\Psr7\UriResolver; +use Psr\Http\Message\RequestInterface; + +/** + * Client used to interact Amazon Simple Queue Service (Amazon SQS) + * + * @method \Aws\Result addPermission(array $args = []) + * @method \GuzzleHttp\Promise\Promise addPermissionAsync(array $args = []) + * @method \Aws\Result changeMessageVisibility(array $args = []) + * @method \GuzzleHttp\Promise\Promise changeMessageVisibilityAsync(array $args = []) + * @method \Aws\Result changeMessageVisibilityBatch(array $args = []) + * @method \GuzzleHttp\Promise\Promise changeMessageVisibilityBatchAsync(array $args = []) + * @method \Aws\Result createQueue(array $args = []) + * @method \GuzzleHttp\Promise\Promise createQueueAsync(array $args = []) + * @method \Aws\Result deleteMessage(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteMessageAsync(array $args = []) + * @method \Aws\Result deleteMessageBatch(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteMessageBatchAsync(array $args = []) + * @method \Aws\Result deleteQueue(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteQueueAsync(array $args = []) + * @method \Aws\Result getQueueAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise getQueueAttributesAsync(array $args = []) + * @method \Aws\Result getQueueUrl(array $args = []) + * @method \GuzzleHttp\Promise\Promise getQueueUrlAsync(array $args = []) + * @method \Aws\Result listDeadLetterSourceQueues(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDeadLetterSourceQueuesAsync(array $args = []) + * @method \Aws\Result listQueueTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise listQueueTagsAsync(array $args = []) + * @method \Aws\Result listQueues(array $args = []) + * @method \GuzzleHttp\Promise\Promise listQueuesAsync(array $args = []) + * @method \Aws\Result purgeQueue(array $args = []) + * @method \GuzzleHttp\Promise\Promise purgeQueueAsync(array $args = []) + * @method \Aws\Result receiveMessage(array $args = []) + * @method \GuzzleHttp\Promise\Promise receiveMessageAsync(array $args = []) + * @method \Aws\Result removePermission(array $args = []) + * @method \GuzzleHttp\Promise\Promise removePermissionAsync(array $args = []) + * @method \Aws\Result sendMessage(array $args = []) + * @method \GuzzleHttp\Promise\Promise sendMessageAsync(array $args = []) + * @method \Aws\Result sendMessageBatch(array $args = []) + * @method \GuzzleHttp\Promise\Promise sendMessageBatchAsync(array $args = []) + * @method \Aws\Result setQueueAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise setQueueAttributesAsync(array $args = []) + * @method \Aws\Result tagQueue(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagQueueAsync(array $args = []) + * @method \Aws\Result untagQueue(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagQueueAsync(array $args = []) + */ +class SqsClient extends AwsClient +{ + public function __construct(array $config) + { + 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. + * + * @return string An ARN representation of the queue URL. + */ + public function getQueueArn($queueUrl) + { + $queueArn = strtr($queueUrl, array( + 'http://' => 'arn:aws:', + 'https://' => 'arn:aws:', + '.amazonaws.com' => '', + '/' => ':', + '.' => ':', + )); + + // Cope with SQS' .fifo / :fifo arn inconsistency + if (substr($queueArn, -5) === ':fifo') { + $queueArn = substr_replace($queueArn, '.fifo', -5); + } + return $queueArn; + } + + /** + * 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')) { + $r = $r->withUri(UriResolver::resolve( + $r->getUri(), + new Uri($c['QueueUrl']) + )); + } + return $handler($c, $r); + }; + }; + } + + /** + * Calculates the expected md5 hash of message attributes according to the encoding + * scheme detailed in SQS documentation. + * + * @param array $message Message containing attributes for validation. + * Retrieved when using MessageAttributeNames on + * ReceiveMessage. + * + * @return string|null The md5 hash of the message attributes according to + * the encoding scheme. Returns null when there are no + * attributes. + * @link http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-attributes.html#message-attributes-items-validation + */ + private static function calculateMessageAttributesMd5($message) + { + if (empty($message['MessageAttributes']) + || !is_array($message['MessageAttributes']) + ) { + return null; + } + + ksort($message['MessageAttributes']); + $attributeValues = ""; + foreach ($message['MessageAttributes'] as $name => $details) { + $attributeValues .= self::getEncodedStringPiece($name); + $attributeValues .= self::getEncodedStringPiece($details['DataType']); + if (substr($details['DataType'], 0, 6) === 'Binary') { + $attributeValues .= pack('c', 0x02); + $attributeValues .= self::getEncodedBinaryPiece( + $details['BinaryValue'] + ); + } else { + $attributeValues .= pack('c', 0x01); + $attributeValues .= self::getEncodedStringPiece( + $details['StringValue'] + ); + } + } + + return md5($attributeValues); + } + + private static function calculateBodyMd5($message) + { + return md5($message['Body']); + } + + private static function getEncodedStringPiece($piece) + { + $utf8Piece = iconv( + mb_detect_encoding($piece, mb_detect_order(), true), + "UTF-8", + $piece + ); + return self::getFourBytePieceLength($utf8Piece) . $utf8Piece; + } + + private static function getEncodedBinaryPiece($piece) + { + return self::getFourBytePieceLength($piece) . $piece; + } + + private static function getFourBytePieceLength($piece) + { + return pack('N', (int)strlen($piece)); + } + + /** + * Validates ReceiveMessage body and message attribute 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) { + $bodyMd5 = self::calculateBodyMd5($msg); + if (isset($msg['MD5OfBody']) + && $bodyMd5 !== $msg['MD5OfBody'] + ) { + throw new SqsException( + sprintf( + 'MD5 mismatch. Expected %s, found %s', + $msg['MD5OfBody'], + $bodyMd5 + ), + $c, + [ + 'code' => 'ClientChecksumMismatch', + 'request' => $r + ] + ); + } + + if (isset($msg['MD5OfMessageAttributes'])) { + $messageAttributesMd5 = self::calculateMessageAttributesMd5($msg); + if ($messageAttributesMd5 !== $msg['MD5OfMessageAttributes']) { + throw new SqsException( + sprintf( + 'Attribute MD5 mismatch. Expected %s, found %s', + $msg['MD5OfMessageAttributes'], + $messageAttributesMd5 + ? $messageAttributesMd5 + : 'No Attributes' + ), + $c, + [ + 'code' => 'ClientChecksumMismatch', + 'request' => $r + ] + ); + } + } else if (isset($msg['MessageAttributes'])) { + throw new SqsException( + sprintf( + 'No Attribute MD5 found. Expected %s', + self::calculateMessageAttributesMd5($msg) + ), + $c, + [ + 'code' => 'ClientChecksumMismatch', + 'request' => $r + ] + ); + } + } + return $result; + } + ); + }; + }; + } +} diff --git a/lib/aws/Aws/Ssm/Exception/SsmException.php b/lib/aws/Aws/Ssm/Exception/SsmException.php new file mode 100644 index 0000000..123441d --- /dev/null +++ b/lib/aws/Aws/Ssm/Exception/SsmException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Ssm\Exception; + +use Aws\Exception\AwsException; + +/** + * Amazon EC2 Simple Systems Manager exception. + */ +class SsmException extends AwsException {} diff --git a/lib/aws/Aws/Ssm/SsmClient.php b/lib/aws/Aws/Ssm/SsmClient.php new file mode 100644 index 0000000..9e498c0 --- /dev/null +++ b/lib/aws/Aws/Ssm/SsmClient.php @@ -0,0 +1,238 @@ +<?php +namespace Aws\Ssm; + +use Aws\AwsClient; + +/** + * Amazon EC2 Simple Systems Manager client. + * + * @method \Aws\Result addTagsToResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsToResourceAsync(array $args = []) + * @method \Aws\Result cancelCommand(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelCommandAsync(array $args = []) + * @method \Aws\Result cancelMaintenanceWindowExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelMaintenanceWindowExecutionAsync(array $args = []) + * @method \Aws\Result createActivation(array $args = []) + * @method \GuzzleHttp\Promise\Promise createActivationAsync(array $args = []) + * @method \Aws\Result createAssociation(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAssociationAsync(array $args = []) + * @method \Aws\Result createAssociationBatch(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAssociationBatchAsync(array $args = []) + * @method \Aws\Result createDocument(array $args = []) + * @method \GuzzleHttp\Promise\Promise createDocumentAsync(array $args = []) + * @method \Aws\Result createMaintenanceWindow(array $args = []) + * @method \GuzzleHttp\Promise\Promise createMaintenanceWindowAsync(array $args = []) + * @method \Aws\Result createPatchBaseline(array $args = []) + * @method \GuzzleHttp\Promise\Promise createPatchBaselineAsync(array $args = []) + * @method \Aws\Result createResourceDataSync(array $args = []) + * @method \GuzzleHttp\Promise\Promise createResourceDataSyncAsync(array $args = []) + * @method \Aws\Result deleteActivation(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteActivationAsync(array $args = []) + * @method \Aws\Result deleteAssociation(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAssociationAsync(array $args = []) + * @method \Aws\Result deleteDocument(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDocumentAsync(array $args = []) + * @method \Aws\Result deleteInventory(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteInventoryAsync(array $args = []) + * @method \Aws\Result deleteMaintenanceWindow(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteMaintenanceWindowAsync(array $args = []) + * @method \Aws\Result deleteParameter(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteParameterAsync(array $args = []) + * @method \Aws\Result deleteParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteParametersAsync(array $args = []) + * @method \Aws\Result deletePatchBaseline(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePatchBaselineAsync(array $args = []) + * @method \Aws\Result deleteResourceDataSync(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteResourceDataSyncAsync(array $args = []) + * @method \Aws\Result deregisterManagedInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterManagedInstanceAsync(array $args = []) + * @method \Aws\Result deregisterPatchBaselineForPatchGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterPatchBaselineForPatchGroupAsync(array $args = []) + * @method \Aws\Result deregisterTargetFromMaintenanceWindow(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterTargetFromMaintenanceWindowAsync(array $args = []) + * @method \Aws\Result deregisterTaskFromMaintenanceWindow(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterTaskFromMaintenanceWindowAsync(array $args = []) + * @method \Aws\Result describeActivations(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeActivationsAsync(array $args = []) + * @method \Aws\Result describeAssociation(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAssociationAsync(array $args = []) + * @method \Aws\Result describeAssociationExecutionTargets(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAssociationExecutionTargetsAsync(array $args = []) + * @method \Aws\Result describeAssociationExecutions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAssociationExecutionsAsync(array $args = []) + * @method \Aws\Result describeAutomationExecutions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAutomationExecutionsAsync(array $args = []) + * @method \Aws\Result describeAutomationStepExecutions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAutomationStepExecutionsAsync(array $args = []) + * @method \Aws\Result describeAvailablePatches(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAvailablePatchesAsync(array $args = []) + * @method \Aws\Result describeDocument(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDocumentAsync(array $args = []) + * @method \Aws\Result describeDocumentPermission(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDocumentPermissionAsync(array $args = []) + * @method \Aws\Result describeEffectiveInstanceAssociations(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEffectiveInstanceAssociationsAsync(array $args = []) + * @method \Aws\Result describeEffectivePatchesForPatchBaseline(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeEffectivePatchesForPatchBaselineAsync(array $args = []) + * @method \Aws\Result describeInstanceAssociationsStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeInstanceAssociationsStatusAsync(array $args = []) + * @method \Aws\Result describeInstanceInformation(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeInstanceInformationAsync(array $args = []) + * @method \Aws\Result describeInstancePatchStates(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeInstancePatchStatesAsync(array $args = []) + * @method \Aws\Result describeInstancePatchStatesForPatchGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeInstancePatchStatesForPatchGroupAsync(array $args = []) + * @method \Aws\Result describeInstancePatches(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeInstancePatchesAsync(array $args = []) + * @method \Aws\Result describeInventoryDeletions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeInventoryDeletionsAsync(array $args = []) + * @method \Aws\Result describeMaintenanceWindowExecutionTaskInvocations(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMaintenanceWindowExecutionTaskInvocationsAsync(array $args = []) + * @method \Aws\Result describeMaintenanceWindowExecutionTasks(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMaintenanceWindowExecutionTasksAsync(array $args = []) + * @method \Aws\Result describeMaintenanceWindowExecutions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMaintenanceWindowExecutionsAsync(array $args = []) + * @method \Aws\Result describeMaintenanceWindowSchedule(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMaintenanceWindowScheduleAsync(array $args = []) + * @method \Aws\Result describeMaintenanceWindowTargets(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMaintenanceWindowTargetsAsync(array $args = []) + * @method \Aws\Result describeMaintenanceWindowTasks(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMaintenanceWindowTasksAsync(array $args = []) + * @method \Aws\Result describeMaintenanceWindows(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMaintenanceWindowsAsync(array $args = []) + * @method \Aws\Result describeMaintenanceWindowsForTarget(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMaintenanceWindowsForTargetAsync(array $args = []) + * @method \Aws\Result describeParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeParametersAsync(array $args = []) + * @method \Aws\Result describePatchBaselines(array $args = []) + * @method \GuzzleHttp\Promise\Promise describePatchBaselinesAsync(array $args = []) + * @method \Aws\Result describePatchGroupState(array $args = []) + * @method \GuzzleHttp\Promise\Promise describePatchGroupStateAsync(array $args = []) + * @method \Aws\Result describePatchGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describePatchGroupsAsync(array $args = []) + * @method \Aws\Result describeSessions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSessionsAsync(array $args = []) + * @method \Aws\Result getAutomationExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise getAutomationExecutionAsync(array $args = []) + * @method \Aws\Result getCommandInvocation(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCommandInvocationAsync(array $args = []) + * @method \Aws\Result getConnectionStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getConnectionStatusAsync(array $args = []) + * @method \Aws\Result getDefaultPatchBaseline(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDefaultPatchBaselineAsync(array $args = []) + * @method \Aws\Result getDeployablePatchSnapshotForInstance(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDeployablePatchSnapshotForInstanceAsync(array $args = []) + * @method \Aws\Result getDocument(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDocumentAsync(array $args = []) + * @method \Aws\Result getInventory(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInventoryAsync(array $args = []) + * @method \Aws\Result getInventorySchema(array $args = []) + * @method \GuzzleHttp\Promise\Promise getInventorySchemaAsync(array $args = []) + * @method \Aws\Result getMaintenanceWindow(array $args = []) + * @method \GuzzleHttp\Promise\Promise getMaintenanceWindowAsync(array $args = []) + * @method \Aws\Result getMaintenanceWindowExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise getMaintenanceWindowExecutionAsync(array $args = []) + * @method \Aws\Result getMaintenanceWindowExecutionTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise getMaintenanceWindowExecutionTaskAsync(array $args = []) + * @method \Aws\Result getMaintenanceWindowExecutionTaskInvocation(array $args = []) + * @method \GuzzleHttp\Promise\Promise getMaintenanceWindowExecutionTaskInvocationAsync(array $args = []) + * @method \Aws\Result getMaintenanceWindowTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise getMaintenanceWindowTaskAsync(array $args = []) + * @method \Aws\Result getParameter(array $args = []) + * @method \GuzzleHttp\Promise\Promise getParameterAsync(array $args = []) + * @method \Aws\Result getParameterHistory(array $args = []) + * @method \GuzzleHttp\Promise\Promise getParameterHistoryAsync(array $args = []) + * @method \Aws\Result getParameters(array $args = []) + * @method \GuzzleHttp\Promise\Promise getParametersAsync(array $args = []) + * @method \Aws\Result getParametersByPath(array $args = []) + * @method \GuzzleHttp\Promise\Promise getParametersByPathAsync(array $args = []) + * @method \Aws\Result getPatchBaseline(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPatchBaselineAsync(array $args = []) + * @method \Aws\Result getPatchBaselineForPatchGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPatchBaselineForPatchGroupAsync(array $args = []) + * @method \Aws\Result getServiceSetting(array $args = []) + * @method \GuzzleHttp\Promise\Promise getServiceSettingAsync(array $args = []) + * @method \Aws\Result labelParameterVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise labelParameterVersionAsync(array $args = []) + * @method \Aws\Result listAssociationVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAssociationVersionsAsync(array $args = []) + * @method \Aws\Result listAssociations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAssociationsAsync(array $args = []) + * @method \Aws\Result listCommandInvocations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listCommandInvocationsAsync(array $args = []) + * @method \Aws\Result listCommands(array $args = []) + * @method \GuzzleHttp\Promise\Promise listCommandsAsync(array $args = []) + * @method \Aws\Result listComplianceItems(array $args = []) + * @method \GuzzleHttp\Promise\Promise listComplianceItemsAsync(array $args = []) + * @method \Aws\Result listComplianceSummaries(array $args = []) + * @method \GuzzleHttp\Promise\Promise listComplianceSummariesAsync(array $args = []) + * @method \Aws\Result listDocumentVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDocumentVersionsAsync(array $args = []) + * @method \Aws\Result listDocuments(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDocumentsAsync(array $args = []) + * @method \Aws\Result listInventoryEntries(array $args = []) + * @method \GuzzleHttp\Promise\Promise listInventoryEntriesAsync(array $args = []) + * @method \Aws\Result listResourceComplianceSummaries(array $args = []) + * @method \GuzzleHttp\Promise\Promise listResourceComplianceSummariesAsync(array $args = []) + * @method \Aws\Result listResourceDataSync(array $args = []) + * @method \GuzzleHttp\Promise\Promise listResourceDataSyncAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result modifyDocumentPermission(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyDocumentPermissionAsync(array $args = []) + * @method \Aws\Result putComplianceItems(array $args = []) + * @method \GuzzleHttp\Promise\Promise putComplianceItemsAsync(array $args = []) + * @method \Aws\Result putInventory(array $args = []) + * @method \GuzzleHttp\Promise\Promise putInventoryAsync(array $args = []) + * @method \Aws\Result putParameter(array $args = []) + * @method \GuzzleHttp\Promise\Promise putParameterAsync(array $args = []) + * @method \Aws\Result registerDefaultPatchBaseline(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerDefaultPatchBaselineAsync(array $args = []) + * @method \Aws\Result registerPatchBaselineForPatchGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerPatchBaselineForPatchGroupAsync(array $args = []) + * @method \Aws\Result registerTargetWithMaintenanceWindow(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerTargetWithMaintenanceWindowAsync(array $args = []) + * @method \Aws\Result registerTaskWithMaintenanceWindow(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerTaskWithMaintenanceWindowAsync(array $args = []) + * @method \Aws\Result removeTagsFromResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeTagsFromResourceAsync(array $args = []) + * @method \Aws\Result resetServiceSetting(array $args = []) + * @method \GuzzleHttp\Promise\Promise resetServiceSettingAsync(array $args = []) + * @method \Aws\Result resumeSession(array $args = []) + * @method \GuzzleHttp\Promise\Promise resumeSessionAsync(array $args = []) + * @method \Aws\Result sendAutomationSignal(array $args = []) + * @method \GuzzleHttp\Promise\Promise sendAutomationSignalAsync(array $args = []) + * @method \Aws\Result sendCommand(array $args = []) + * @method \GuzzleHttp\Promise\Promise sendCommandAsync(array $args = []) + * @method \Aws\Result startAssociationsOnce(array $args = []) + * @method \GuzzleHttp\Promise\Promise startAssociationsOnceAsync(array $args = []) + * @method \Aws\Result startAutomationExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise startAutomationExecutionAsync(array $args = []) + * @method \Aws\Result startSession(array $args = []) + * @method \GuzzleHttp\Promise\Promise startSessionAsync(array $args = []) + * @method \Aws\Result stopAutomationExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopAutomationExecutionAsync(array $args = []) + * @method \Aws\Result terminateSession(array $args = []) + * @method \GuzzleHttp\Promise\Promise terminateSessionAsync(array $args = []) + * @method \Aws\Result updateAssociation(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAssociationAsync(array $args = []) + * @method \Aws\Result updateAssociationStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAssociationStatusAsync(array $args = []) + * @method \Aws\Result updateDocument(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDocumentAsync(array $args = []) + * @method \Aws\Result updateDocumentDefaultVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDocumentDefaultVersionAsync(array $args = []) + * @method \Aws\Result updateMaintenanceWindow(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateMaintenanceWindowAsync(array $args = []) + * @method \Aws\Result updateMaintenanceWindowTarget(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateMaintenanceWindowTargetAsync(array $args = []) + * @method \Aws\Result updateMaintenanceWindowTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateMaintenanceWindowTaskAsync(array $args = []) + * @method \Aws\Result updateManagedInstanceRole(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateManagedInstanceRoleAsync(array $args = []) + * @method \Aws\Result updatePatchBaseline(array $args = []) + * @method \GuzzleHttp\Promise\Promise updatePatchBaselineAsync(array $args = []) + * @method \Aws\Result updateServiceSetting(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateServiceSettingAsync(array $args = []) + */ +class SsmClient extends AwsClient {} diff --git a/lib/aws/Aws/StorageGateway/Exception/StorageGatewayException.php b/lib/aws/Aws/StorageGateway/Exception/StorageGatewayException.php new file mode 100644 index 0000000..9243027 --- /dev/null +++ b/lib/aws/Aws/StorageGateway/Exception/StorageGatewayException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\StorageGateway\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the AWS Storage Gateway service. + */ +class StorageGatewayException extends AwsException {} diff --git a/lib/aws/Aws/StorageGateway/StorageGatewayClient.php b/lib/aws/Aws/StorageGateway/StorageGatewayClient.php new file mode 100644 index 0000000..4a4d156 --- /dev/null +++ b/lib/aws/Aws/StorageGateway/StorageGatewayClient.php @@ -0,0 +1,152 @@ +<?php +namespace Aws\StorageGateway; + +use Aws\AwsClient; + +/** + * AWS Storage Gateway client. + * + * @method \Aws\Result activateGateway(array $args = []) + * @method \GuzzleHttp\Promise\Promise activateGatewayAsync(array $args = []) + * @method \Aws\Result addCache(array $args = []) + * @method \GuzzleHttp\Promise\Promise addCacheAsync(array $args = []) + * @method \Aws\Result addTagsToResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise addTagsToResourceAsync(array $args = []) + * @method \Aws\Result addUploadBuffer(array $args = []) + * @method \GuzzleHttp\Promise\Promise addUploadBufferAsync(array $args = []) + * @method \Aws\Result addWorkingStorage(array $args = []) + * @method \GuzzleHttp\Promise\Promise addWorkingStorageAsync(array $args = []) + * @method \Aws\Result attachVolume(array $args = []) + * @method \GuzzleHttp\Promise\Promise attachVolumeAsync(array $args = []) + * @method \Aws\Result cancelArchival(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelArchivalAsync(array $args = []) + * @method \Aws\Result cancelRetrieval(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelRetrievalAsync(array $args = []) + * @method \Aws\Result createCachediSCSIVolume(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCachediSCSIVolumeAsync(array $args = []) + * @method \Aws\Result createNFSFileShare(array $args = []) + * @method \GuzzleHttp\Promise\Promise createNFSFileShareAsync(array $args = []) + * @method \Aws\Result createSMBFileShare(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSMBFileShareAsync(array $args = []) + * @method \Aws\Result createSnapshot(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSnapshotAsync(array $args = []) + * @method \Aws\Result createSnapshotFromVolumeRecoveryPoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSnapshotFromVolumeRecoveryPointAsync(array $args = []) + * @method \Aws\Result createStorediSCSIVolume(array $args = []) + * @method \GuzzleHttp\Promise\Promise createStorediSCSIVolumeAsync(array $args = []) + * @method \Aws\Result createTapeWithBarcode(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTapeWithBarcodeAsync(array $args = []) + * @method \Aws\Result createTapes(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTapesAsync(array $args = []) + * @method \Aws\Result deleteBandwidthRateLimit(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBandwidthRateLimitAsync(array $args = []) + * @method \Aws\Result deleteChapCredentials(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteChapCredentialsAsync(array $args = []) + * @method \Aws\Result deleteFileShare(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteFileShareAsync(array $args = []) + * @method \Aws\Result deleteGateway(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteGatewayAsync(array $args = []) + * @method \Aws\Result deleteSnapshotSchedule(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSnapshotScheduleAsync(array $args = []) + * @method \Aws\Result deleteTape(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTapeAsync(array $args = []) + * @method \Aws\Result deleteTapeArchive(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTapeArchiveAsync(array $args = []) + * @method \Aws\Result deleteVolume(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVolumeAsync(array $args = []) + * @method \Aws\Result describeBandwidthRateLimit(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeBandwidthRateLimitAsync(array $args = []) + * @method \Aws\Result describeCache(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCacheAsync(array $args = []) + * @method \Aws\Result describeCachediSCSIVolumes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCachediSCSIVolumesAsync(array $args = []) + * @method \Aws\Result describeChapCredentials(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeChapCredentialsAsync(array $args = []) + * @method \Aws\Result describeGatewayInformation(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeGatewayInformationAsync(array $args = []) + * @method \Aws\Result describeMaintenanceStartTime(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeMaintenanceStartTimeAsync(array $args = []) + * @method \Aws\Result describeNFSFileShares(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeNFSFileSharesAsync(array $args = []) + * @method \Aws\Result describeSMBFileShares(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSMBFileSharesAsync(array $args = []) + * @method \Aws\Result describeSMBSettings(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSMBSettingsAsync(array $args = []) + * @method \Aws\Result describeSnapshotSchedule(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSnapshotScheduleAsync(array $args = []) + * @method \Aws\Result describeStorediSCSIVolumes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeStorediSCSIVolumesAsync(array $args = []) + * @method \Aws\Result describeTapeArchives(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTapeArchivesAsync(array $args = []) + * @method \Aws\Result describeTapeRecoveryPoints(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTapeRecoveryPointsAsync(array $args = []) + * @method \Aws\Result describeTapes(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTapesAsync(array $args = []) + * @method \Aws\Result describeUploadBuffer(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeUploadBufferAsync(array $args = []) + * @method \Aws\Result describeVTLDevices(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeVTLDevicesAsync(array $args = []) + * @method \Aws\Result describeWorkingStorage(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeWorkingStorageAsync(array $args = []) + * @method \Aws\Result detachVolume(array $args = []) + * @method \GuzzleHttp\Promise\Promise detachVolumeAsync(array $args = []) + * @method \Aws\Result disableGateway(array $args = []) + * @method \GuzzleHttp\Promise\Promise disableGatewayAsync(array $args = []) + * @method \Aws\Result joinDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise joinDomainAsync(array $args = []) + * @method \Aws\Result listFileShares(array $args = []) + * @method \GuzzleHttp\Promise\Promise listFileSharesAsync(array $args = []) + * @method \Aws\Result listGateways(array $args = []) + * @method \GuzzleHttp\Promise\Promise listGatewaysAsync(array $args = []) + * @method \Aws\Result listLocalDisks(array $args = []) + * @method \GuzzleHttp\Promise\Promise listLocalDisksAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result listTapes(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTapesAsync(array $args = []) + * @method \Aws\Result listVolumeInitiators(array $args = []) + * @method \GuzzleHttp\Promise\Promise listVolumeInitiatorsAsync(array $args = []) + * @method \Aws\Result listVolumeRecoveryPoints(array $args = []) + * @method \GuzzleHttp\Promise\Promise listVolumeRecoveryPointsAsync(array $args = []) + * @method \Aws\Result listVolumes(array $args = []) + * @method \GuzzleHttp\Promise\Promise listVolumesAsync(array $args = []) + * @method \Aws\Result notifyWhenUploaded(array $args = []) + * @method \GuzzleHttp\Promise\Promise notifyWhenUploadedAsync(array $args = []) + * @method \Aws\Result refreshCache(array $args = []) + * @method \GuzzleHttp\Promise\Promise refreshCacheAsync(array $args = []) + * @method \Aws\Result removeTagsFromResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeTagsFromResourceAsync(array $args = []) + * @method \Aws\Result resetCache(array $args = []) + * @method \GuzzleHttp\Promise\Promise resetCacheAsync(array $args = []) + * @method \Aws\Result retrieveTapeArchive(array $args = []) + * @method \GuzzleHttp\Promise\Promise retrieveTapeArchiveAsync(array $args = []) + * @method \Aws\Result retrieveTapeRecoveryPoint(array $args = []) + * @method \GuzzleHttp\Promise\Promise retrieveTapeRecoveryPointAsync(array $args = []) + * @method \Aws\Result setLocalConsolePassword(array $args = []) + * @method \GuzzleHttp\Promise\Promise setLocalConsolePasswordAsync(array $args = []) + * @method \Aws\Result setSMBGuestPassword(array $args = []) + * @method \GuzzleHttp\Promise\Promise setSMBGuestPasswordAsync(array $args = []) + * @method \Aws\Result shutdownGateway(array $args = []) + * @method \GuzzleHttp\Promise\Promise shutdownGatewayAsync(array $args = []) + * @method \Aws\Result startGateway(array $args = []) + * @method \GuzzleHttp\Promise\Promise startGatewayAsync(array $args = []) + * @method \Aws\Result updateBandwidthRateLimit(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateBandwidthRateLimitAsync(array $args = []) + * @method \Aws\Result updateChapCredentials(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateChapCredentialsAsync(array $args = []) + * @method \Aws\Result updateGatewayInformation(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateGatewayInformationAsync(array $args = []) + * @method \Aws\Result updateGatewaySoftwareNow(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateGatewaySoftwareNowAsync(array $args = []) + * @method \Aws\Result updateMaintenanceStartTime(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateMaintenanceStartTimeAsync(array $args = []) + * @method \Aws\Result updateNFSFileShare(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateNFSFileShareAsync(array $args = []) + * @method \Aws\Result updateSMBFileShare(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSMBFileShareAsync(array $args = []) + * @method \Aws\Result updateSnapshotSchedule(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSnapshotScheduleAsync(array $args = []) + * @method \Aws\Result updateVTLDeviceType(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateVTLDeviceTypeAsync(array $args = []) + */ +class StorageGatewayClient extends AwsClient {} diff --git a/lib/aws/Aws/Sts/Exception/StsException.php b/lib/aws/Aws/Sts/Exception/StsException.php new file mode 100644 index 0000000..81cff40 --- /dev/null +++ b/lib/aws/Aws/Sts/Exception/StsException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Sts\Exception; + +use Aws\Exception\AwsException; + +/** + * AWS Security Token Service exception. + */ +class StsException extends AwsException {} diff --git a/lib/aws/Aws/Sts/StsClient.php b/lib/aws/Aws/Sts/StsClient.php new file mode 100644 index 0000000..794ebbd --- /dev/null +++ b/lib/aws/Aws/Sts/StsClient.php @@ -0,0 +1,53 @@ +<?php +namespace Aws\Sts; + +use Aws\AwsClient; +use Aws\Result; +use Aws\Credentials\Credentials; + +/** + * This client is used to interact with the **AWS Security Token Service (AWS STS)**. + * + * @method \Aws\Result assumeRole(array $args = []) + * @method \GuzzleHttp\Promise\Promise assumeRoleAsync(array $args = []) + * @method \Aws\Result assumeRoleWithSAML(array $args = []) + * @method \GuzzleHttp\Promise\Promise assumeRoleWithSAMLAsync(array $args = []) + * @method \Aws\Result assumeRoleWithWebIdentity(array $args = []) + * @method \GuzzleHttp\Promise\Promise assumeRoleWithWebIdentityAsync(array $args = []) + * @method \Aws\Result decodeAuthorizationMessage(array $args = []) + * @method \GuzzleHttp\Promise\Promise decodeAuthorizationMessageAsync(array $args = []) + * @method \Aws\Result getCallerIdentity(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCallerIdentityAsync(array $args = []) + * @method \Aws\Result getFederationToken(array $args = []) + * @method \GuzzleHttp\Promise\Promise getFederationTokenAsync(array $args = []) + * @method \Aws\Result getSessionToken(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSessionTokenAsync(array $args = []) + */ +class StsClient extends AwsClient +{ + /** + * Creates credentials from the result of an STS operations + * + * @param Result $result Result of an STS operation + * + * @return Credentials + * @throws \InvalidArgumentException if the result contains no credentials + */ + public function createCredentials(Result $result) + { + if (!$result->hasKey('Credentials')) { + throw new \InvalidArgumentException('Result contains no credentials'); + } + + $c = $result['Credentials']; + + return new Credentials( + $c['AccessKeyId'], + $c['SecretAccessKey'], + isset($c['SessionToken']) ? $c['SessionToken'] : null, + isset($c['Expiration']) && $c['Expiration'] instanceof \DateTimeInterface + ? (int) $c['Expiration']->format('U') + : null + ); + } +} diff --git a/lib/aws/Aws/Support/Exception/SupportException.php b/lib/aws/Aws/Support/Exception/SupportException.php new file mode 100644 index 0000000..662172b --- /dev/null +++ b/lib/aws/Aws/Support/Exception/SupportException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Support\Exception; + +use Aws\Exception\AwsException; + +/** + * AWS Support service exception. + */ +class SupportException extends AwsException {} diff --git a/lib/aws/Aws/Support/SupportClient.php b/lib/aws/Aws/Support/SupportClient.php new file mode 100644 index 0000000..8649876 --- /dev/null +++ b/lib/aws/Aws/Support/SupportClient.php @@ -0,0 +1,38 @@ +<?php +namespace Aws\Support; + +use Aws\AwsClient; + +/** + * AWS Support client. + * + * @method \Aws\Result addAttachmentsToSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise addAttachmentsToSetAsync(array $args = []) + * @method \Aws\Result addCommunicationToCase(array $args = []) + * @method \GuzzleHttp\Promise\Promise addCommunicationToCaseAsync(array $args = []) + * @method \Aws\Result createCase(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCaseAsync(array $args = []) + * @method \Aws\Result describeAttachment(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAttachmentAsync(array $args = []) + * @method \Aws\Result describeCases(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCasesAsync(array $args = []) + * @method \Aws\Result describeCommunications(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCommunicationsAsync(array $args = []) + * @method \Aws\Result describeServices(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeServicesAsync(array $args = []) + * @method \Aws\Result describeSeverityLevels(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSeverityLevelsAsync(array $args = []) + * @method \Aws\Result describeTrustedAdvisorCheckRefreshStatuses(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTrustedAdvisorCheckRefreshStatusesAsync(array $args = []) + * @method \Aws\Result describeTrustedAdvisorCheckResult(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTrustedAdvisorCheckResultAsync(array $args = []) + * @method \Aws\Result describeTrustedAdvisorCheckSummaries(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTrustedAdvisorCheckSummariesAsync(array $args = []) + * @method \Aws\Result describeTrustedAdvisorChecks(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTrustedAdvisorChecksAsync(array $args = []) + * @method \Aws\Result refreshTrustedAdvisorCheck(array $args = []) + * @method \GuzzleHttp\Promise\Promise refreshTrustedAdvisorCheckAsync(array $args = []) + * @method \Aws\Result resolveCase(array $args = []) + * @method \GuzzleHttp\Promise\Promise resolveCaseAsync(array $args = []) + */ +class SupportClient extends AwsClient {} diff --git a/lib/aws/Aws/Swf/Exception/SwfException.php b/lib/aws/Aws/Swf/Exception/SwfException.php new file mode 100644 index 0000000..4e636a6 --- /dev/null +++ b/lib/aws/Aws/Swf/Exception/SwfException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Swf\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the Amazon Simple Workflow Service. + */ +class SwfException extends AwsException {} diff --git a/lib/aws/Aws/Swf/SwfClient.php b/lib/aws/Aws/Swf/SwfClient.php new file mode 100644 index 0000000..06a3636 --- /dev/null +++ b/lib/aws/Aws/Swf/SwfClient.php @@ -0,0 +1,72 @@ +<?php +namespace Aws\Swf; + +use Aws\AwsClient; + +/** + * Amazon Simple Workflow Service (Amazon SWF) client. + * + * @method \Aws\Result countClosedWorkflowExecutions(array $args = []) + * @method \GuzzleHttp\Promise\Promise countClosedWorkflowExecutionsAsync(array $args = []) + * @method \Aws\Result countOpenWorkflowExecutions(array $args = []) + * @method \GuzzleHttp\Promise\Promise countOpenWorkflowExecutionsAsync(array $args = []) + * @method \Aws\Result countPendingActivityTasks(array $args = []) + * @method \GuzzleHttp\Promise\Promise countPendingActivityTasksAsync(array $args = []) + * @method \Aws\Result countPendingDecisionTasks(array $args = []) + * @method \GuzzleHttp\Promise\Promise countPendingDecisionTasksAsync(array $args = []) + * @method \Aws\Result deprecateActivityType(array $args = []) + * @method \GuzzleHttp\Promise\Promise deprecateActivityTypeAsync(array $args = []) + * @method \Aws\Result deprecateDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise deprecateDomainAsync(array $args = []) + * @method \Aws\Result deprecateWorkflowType(array $args = []) + * @method \GuzzleHttp\Promise\Promise deprecateWorkflowTypeAsync(array $args = []) + * @method \Aws\Result describeActivityType(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeActivityTypeAsync(array $args = []) + * @method \Aws\Result describeDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDomainAsync(array $args = []) + * @method \Aws\Result describeWorkflowExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeWorkflowExecutionAsync(array $args = []) + * @method \Aws\Result describeWorkflowType(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeWorkflowTypeAsync(array $args = []) + * @method \Aws\Result getWorkflowExecutionHistory(array $args = []) + * @method \GuzzleHttp\Promise\Promise getWorkflowExecutionHistoryAsync(array $args = []) + * @method \Aws\Result listActivityTypes(array $args = []) + * @method \GuzzleHttp\Promise\Promise listActivityTypesAsync(array $args = []) + * @method \Aws\Result listClosedWorkflowExecutions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listClosedWorkflowExecutionsAsync(array $args = []) + * @method \Aws\Result listDomains(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDomainsAsync(array $args = []) + * @method \Aws\Result listOpenWorkflowExecutions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listOpenWorkflowExecutionsAsync(array $args = []) + * @method \Aws\Result listWorkflowTypes(array $args = []) + * @method \GuzzleHttp\Promise\Promise listWorkflowTypesAsync(array $args = []) + * @method \Aws\Result pollForActivityTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise pollForActivityTaskAsync(array $args = []) + * @method \Aws\Result pollForDecisionTask(array $args = []) + * @method \GuzzleHttp\Promise\Promise pollForDecisionTaskAsync(array $args = []) + * @method \Aws\Result recordActivityTaskHeartbeat(array $args = []) + * @method \GuzzleHttp\Promise\Promise recordActivityTaskHeartbeatAsync(array $args = []) + * @method \Aws\Result registerActivityType(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerActivityTypeAsync(array $args = []) + * @method \Aws\Result registerDomain(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerDomainAsync(array $args = []) + * @method \Aws\Result registerWorkflowType(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerWorkflowTypeAsync(array $args = []) + * @method \Aws\Result requestCancelWorkflowExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise requestCancelWorkflowExecutionAsync(array $args = []) + * @method \Aws\Result respondActivityTaskCanceled(array $args = []) + * @method \GuzzleHttp\Promise\Promise respondActivityTaskCanceledAsync(array $args = []) + * @method \Aws\Result respondActivityTaskCompleted(array $args = []) + * @method \GuzzleHttp\Promise\Promise respondActivityTaskCompletedAsync(array $args = []) + * @method \Aws\Result respondActivityTaskFailed(array $args = []) + * @method \GuzzleHttp\Promise\Promise respondActivityTaskFailedAsync(array $args = []) + * @method \Aws\Result respondDecisionTaskCompleted(array $args = []) + * @method \GuzzleHttp\Promise\Promise respondDecisionTaskCompletedAsync(array $args = []) + * @method \Aws\Result signalWorkflowExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise signalWorkflowExecutionAsync(array $args = []) + * @method \Aws\Result startWorkflowExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise startWorkflowExecutionAsync(array $args = []) + * @method \Aws\Result terminateWorkflowExecution(array $args = []) + * @method \GuzzleHttp\Promise\Promise terminateWorkflowExecutionAsync(array $args = []) + */ +class SwfClient extends AwsClient {} diff --git a/lib/aws/Aws/Textract/Exception/TextractException.php b/lib/aws/Aws/Textract/Exception/TextractException.php new file mode 100644 index 0000000..20fc8de --- /dev/null +++ b/lib/aws/Aws/Textract/Exception/TextractException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Textract\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Textract** service. + */ +class TextractException extends AwsException {} diff --git a/lib/aws/Aws/Textract/TextractClient.php b/lib/aws/Aws/Textract/TextractClient.php new file mode 100644 index 0000000..03d6133 --- /dev/null +++ b/lib/aws/Aws/Textract/TextractClient.php @@ -0,0 +1,21 @@ +<?php +namespace Aws\Textract; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Textract** service. + * @method \Aws\Result analyzeDocument(array $args = []) + * @method \GuzzleHttp\Promise\Promise analyzeDocumentAsync(array $args = []) + * @method \Aws\Result detectDocumentText(array $args = []) + * @method \GuzzleHttp\Promise\Promise detectDocumentTextAsync(array $args = []) + * @method \Aws\Result getDocumentAnalysis(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDocumentAnalysisAsync(array $args = []) + * @method \Aws\Result getDocumentTextDetection(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDocumentTextDetectionAsync(array $args = []) + * @method \Aws\Result startDocumentAnalysis(array $args = []) + * @method \GuzzleHttp\Promise\Promise startDocumentAnalysisAsync(array $args = []) + * @method \Aws\Result startDocumentTextDetection(array $args = []) + * @method \GuzzleHttp\Promise\Promise startDocumentTextDetectionAsync(array $args = []) + */ +class TextractClient extends AwsClient {} diff --git a/lib/aws/Aws/TraceMiddleware.php b/lib/aws/Aws/TraceMiddleware.php new file mode 100644 index 0000000..8d9ed3c --- /dev/null +++ b/lib/aws/Aws/TraceMiddleware.php @@ -0,0 +1,314 @@ +<?php +namespace Aws; + +use Aws\Exception\AwsException; +use GuzzleHttp\Promise\RejectedPromise; +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\StreamInterface; + +/** + * Traces state changes between middlewares. + */ +class TraceMiddleware +{ + private $prevOutput; + private $prevInput; + private $config; + + private static $authHeaders = [ + 'X-Amz-Security-Token' => '[TOKEN]', + ]; + + private static $authStrings = [ + // S3Signature + '/AWSAccessKeyId=[A-Z0-9]{20}&/i' => 'AWSAccessKeyId=[KEY]&', + // SignatureV4 Signature and S3Signature + '/Signature=.+/i' => 'Signature=[SIGNATURE]', + // SignatureV4 access key ID + '/Credential=[A-Z0-9]{20}\//i' => 'Credential=[KEY]/', + // S3 signatures + '/AWS [A-Z0-9]{20}:.+/' => 'AWS AKI[KEY]:[SIGNATURE]', + // STS Presigned URLs + '/X-Amz-Security-Token=[^&]+/i' => 'X-Amz-Security-Token=[TOKEN]', + // Crypto *Stream Keys + '/\["key.{27,36}Stream.{9}\]=>\s+.{7}\d{2}\) "\X{16,64}"/U' => '["key":[CONTENT KEY]]', + ]; + + /** + * Configuration array can contain the following key value pairs. + * + * - logfn: (callable) Function that is invoked with log messages. By + * default, PHP's "echo" function will be utilized. + * - 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). + * - auth_strings: (array) A mapping of authentication string regular + * expressions to scrubbed strings. These mappings are passed directly to + * preg_replace (e.g., preg_replace($key, $value, $debugOutput) if + * "scrub_auth" is set to true. + * - auth_headers: (array) A mapping of header names known to contain + * sensitive data to what the scrubbed value should be. The value of any + * headers contained in this array will be replaced with the if + * "scrub_auth" is set to true. + */ + public function __construct(array $config = []) + { + $this->config = $config + [ + 'logfn' => function ($value) { echo $value; }, + 'stream_size' => 524288, + 'scrub_auth' => true, + 'http' => true, + 'auth_strings' => [], + 'auth_headers' => [], + ]; + + $this->config['auth_strings'] += self::$authStrings; + $this->config['auth_headers'] += self::$authHeaders; + } + + 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' => $this->redactHeaders($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' => $this->redactHeaders($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; + } + + if (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; + } + + if ($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']) { + foreach ($this->config['auth_strings'] as $pattern => $replacement) { + $value = preg_replace_callback( + $pattern, + function ($matches) use ($replacement) { + return $replacement; + }, + $value + ); + } + } + + call_user_func($this->config['logfn'], $value); + } + + private function redactHeaders(array $headers) + { + if ($this->config['scrub_auth']) { + $headers = $this->config['auth_headers'] + $headers; + } + + return $headers; + } +} diff --git a/lib/aws/Aws/TranscribeService/Exception/TranscribeServiceException.php b/lib/aws/Aws/TranscribeService/Exception/TranscribeServiceException.php new file mode 100644 index 0000000..7c9c48f --- /dev/null +++ b/lib/aws/Aws/TranscribeService/Exception/TranscribeServiceException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\TranscribeService\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Transcribe Service** service. + */ +class TranscribeServiceException extends AwsException {} diff --git a/lib/aws/Aws/TranscribeService/TranscribeServiceClient.php b/lib/aws/Aws/TranscribeService/TranscribeServiceClient.php new file mode 100644 index 0000000..532b79a --- /dev/null +++ b/lib/aws/Aws/TranscribeService/TranscribeServiceClient.php @@ -0,0 +1,27 @@ +<?php +namespace Aws\TranscribeService; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Transcribe Service** service. + * @method \Aws\Result createVocabulary(array $args = []) + * @method \GuzzleHttp\Promise\Promise createVocabularyAsync(array $args = []) + * @method \Aws\Result deleteTranscriptionJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTranscriptionJobAsync(array $args = []) + * @method \Aws\Result deleteVocabulary(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteVocabularyAsync(array $args = []) + * @method \Aws\Result getTranscriptionJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTranscriptionJobAsync(array $args = []) + * @method \Aws\Result getVocabulary(array $args = []) + * @method \GuzzleHttp\Promise\Promise getVocabularyAsync(array $args = []) + * @method \Aws\Result listTranscriptionJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTranscriptionJobsAsync(array $args = []) + * @method \Aws\Result listVocabularies(array $args = []) + * @method \GuzzleHttp\Promise\Promise listVocabulariesAsync(array $args = []) + * @method \Aws\Result startTranscriptionJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise startTranscriptionJobAsync(array $args = []) + * @method \Aws\Result updateVocabulary(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateVocabularyAsync(array $args = []) + */ +class TranscribeServiceClient extends AwsClient {} diff --git a/lib/aws/Aws/Transfer/Exception/TransferException.php b/lib/aws/Aws/Transfer/Exception/TransferException.php new file mode 100644 index 0000000..eac6c8f --- /dev/null +++ b/lib/aws/Aws/Transfer/Exception/TransferException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Transfer\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Transfer for SFTP** service. + */ +class TransferException extends AwsException {} diff --git a/lib/aws/Aws/Transfer/TransferClient.php b/lib/aws/Aws/Transfer/TransferClient.php new file mode 100644 index 0000000..70cec18 --- /dev/null +++ b/lib/aws/Aws/Transfer/TransferClient.php @@ -0,0 +1,45 @@ +<?php +namespace Aws\Transfer; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Transfer for SFTP** service. + * @method \Aws\Result createServer(array $args = []) + * @method \GuzzleHttp\Promise\Promise createServerAsync(array $args = []) + * @method \Aws\Result createUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise createUserAsync(array $args = []) + * @method \Aws\Result deleteServer(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteServerAsync(array $args = []) + * @method \Aws\Result deleteSshPublicKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSshPublicKeyAsync(array $args = []) + * @method \Aws\Result deleteUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserAsync(array $args = []) + * @method \Aws\Result describeServer(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeServerAsync(array $args = []) + * @method \Aws\Result describeUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeUserAsync(array $args = []) + * @method \Aws\Result importSshPublicKey(array $args = []) + * @method \GuzzleHttp\Promise\Promise importSshPublicKeyAsync(array $args = []) + * @method \Aws\Result listServers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listServersAsync(array $args = []) + * @method \Aws\Result listTagsForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) + * @method \Aws\Result listUsers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUsersAsync(array $args = []) + * @method \Aws\Result startServer(array $args = []) + * @method \GuzzleHttp\Promise\Promise startServerAsync(array $args = []) + * @method \Aws\Result stopServer(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopServerAsync(array $args = []) + * @method \Aws\Result tagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) + * @method \Aws\Result testIdentityProvider(array $args = []) + * @method \GuzzleHttp\Promise\Promise testIdentityProviderAsync(array $args = []) + * @method \Aws\Result untagResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) + * @method \Aws\Result updateServer(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateServerAsync(array $args = []) + * @method \Aws\Result updateUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUserAsync(array $args = []) + */ +class TransferClient extends AwsClient {} diff --git a/lib/aws/Aws/Translate/Exception/TranslateException.php b/lib/aws/Aws/Translate/Exception/TranslateException.php new file mode 100644 index 0000000..616ebfb --- /dev/null +++ b/lib/aws/Aws/Translate/Exception/TranslateException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Translate\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon Translate** service. + */ +class TranslateException extends AwsException {} diff --git a/lib/aws/Aws/Translate/TranslateClient.php b/lib/aws/Aws/Translate/TranslateClient.php new file mode 100644 index 0000000..1b208d8 --- /dev/null +++ b/lib/aws/Aws/Translate/TranslateClient.php @@ -0,0 +1,19 @@ +<?php +namespace Aws\Translate; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon Translate** service. + * @method \Aws\Result deleteTerminology(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTerminologyAsync(array $args = []) + * @method \Aws\Result getTerminology(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTerminologyAsync(array $args = []) + * @method \Aws\Result importTerminology(array $args = []) + * @method \GuzzleHttp\Promise\Promise importTerminologyAsync(array $args = []) + * @method \Aws\Result listTerminologies(array $args = []) + * @method \GuzzleHttp\Promise\Promise listTerminologiesAsync(array $args = []) + * @method \Aws\Result translateText(array $args = []) + * @method \GuzzleHttp\Promise\Promise translateTextAsync(array $args = []) + */ +class TranslateClient extends AwsClient {} diff --git a/lib/aws/Aws/Waf/Exception/WafException.php b/lib/aws/Aws/Waf/Exception/WafException.php new file mode 100644 index 0000000..9a2c44f --- /dev/null +++ b/lib/aws/Aws/Waf/Exception/WafException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\Waf\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS WAF** service. + */ +class WafException extends AwsException {} diff --git a/lib/aws/Aws/Waf/WafClient.php b/lib/aws/Aws/Waf/WafClient.php new file mode 100644 index 0000000..7e771be --- /dev/null +++ b/lib/aws/Aws/Waf/WafClient.php @@ -0,0 +1,156 @@ +<?php +namespace Aws\Waf; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS WAF** service. + * + * @method \Aws\Result createByteMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createByteMatchSetAsync(array $args = []) + * @method \Aws\Result createGeoMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createGeoMatchSetAsync(array $args = []) + * @method \Aws\Result createIPSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createIPSetAsync(array $args = []) + * @method \Aws\Result createRateBasedRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRateBasedRuleAsync(array $args = []) + * @method \Aws\Result createRegexMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRegexMatchSetAsync(array $args = []) + * @method \Aws\Result createRegexPatternSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRegexPatternSetAsync(array $args = []) + * @method \Aws\Result createRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRuleAsync(array $args = []) + * @method \Aws\Result createRuleGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRuleGroupAsync(array $args = []) + * @method \Aws\Result createSizeConstraintSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSizeConstraintSetAsync(array $args = []) + * @method \Aws\Result createSqlInjectionMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSqlInjectionMatchSetAsync(array $args = []) + * @method \Aws\Result createWebACL(array $args = []) + * @method \GuzzleHttp\Promise\Promise createWebACLAsync(array $args = []) + * @method \Aws\Result createXssMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createXssMatchSetAsync(array $args = []) + * @method \Aws\Result deleteByteMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteByteMatchSetAsync(array $args = []) + * @method \Aws\Result deleteGeoMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteGeoMatchSetAsync(array $args = []) + * @method \Aws\Result deleteIPSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteIPSetAsync(array $args = []) + * @method \Aws\Result deleteLoggingConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLoggingConfigurationAsync(array $args = []) + * @method \Aws\Result deletePermissionPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePermissionPolicyAsync(array $args = []) + * @method \Aws\Result deleteRateBasedRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRateBasedRuleAsync(array $args = []) + * @method \Aws\Result deleteRegexMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRegexMatchSetAsync(array $args = []) + * @method \Aws\Result deleteRegexPatternSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRegexPatternSetAsync(array $args = []) + * @method \Aws\Result deleteRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRuleAsync(array $args = []) + * @method \Aws\Result deleteRuleGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRuleGroupAsync(array $args = []) + * @method \Aws\Result deleteSizeConstraintSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSizeConstraintSetAsync(array $args = []) + * @method \Aws\Result deleteSqlInjectionMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSqlInjectionMatchSetAsync(array $args = []) + * @method \Aws\Result deleteWebACL(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteWebACLAsync(array $args = []) + * @method \Aws\Result deleteXssMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteXssMatchSetAsync(array $args = []) + * @method \Aws\Result getByteMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getByteMatchSetAsync(array $args = []) + * @method \Aws\Result getChangeToken(array $args = []) + * @method \GuzzleHttp\Promise\Promise getChangeTokenAsync(array $args = []) + * @method \Aws\Result getChangeTokenStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getChangeTokenStatusAsync(array $args = []) + * @method \Aws\Result getGeoMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getGeoMatchSetAsync(array $args = []) + * @method \Aws\Result getIPSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIPSetAsync(array $args = []) + * @method \Aws\Result getLoggingConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLoggingConfigurationAsync(array $args = []) + * @method \Aws\Result getPermissionPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPermissionPolicyAsync(array $args = []) + * @method \Aws\Result getRateBasedRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRateBasedRuleAsync(array $args = []) + * @method \Aws\Result getRateBasedRuleManagedKeys(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRateBasedRuleManagedKeysAsync(array $args = []) + * @method \Aws\Result getRegexMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRegexMatchSetAsync(array $args = []) + * @method \Aws\Result getRegexPatternSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRegexPatternSetAsync(array $args = []) + * @method \Aws\Result getRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRuleAsync(array $args = []) + * @method \Aws\Result getRuleGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRuleGroupAsync(array $args = []) + * @method \Aws\Result getSampledRequests(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSampledRequestsAsync(array $args = []) + * @method \Aws\Result getSizeConstraintSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSizeConstraintSetAsync(array $args = []) + * @method \Aws\Result getSqlInjectionMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSqlInjectionMatchSetAsync(array $args = []) + * @method \Aws\Result getWebACL(array $args = []) + * @method \GuzzleHttp\Promise\Promise getWebACLAsync(array $args = []) + * @method \Aws\Result getXssMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getXssMatchSetAsync(array $args = []) + * @method \Aws\Result listActivatedRulesInRuleGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise listActivatedRulesInRuleGroupAsync(array $args = []) + * @method \Aws\Result listByteMatchSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listByteMatchSetsAsync(array $args = []) + * @method \Aws\Result listGeoMatchSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listGeoMatchSetsAsync(array $args = []) + * @method \Aws\Result listIPSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listIPSetsAsync(array $args = []) + * @method \Aws\Result listLoggingConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listLoggingConfigurationsAsync(array $args = []) + * @method \Aws\Result listRateBasedRules(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRateBasedRulesAsync(array $args = []) + * @method \Aws\Result listRegexMatchSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRegexMatchSetsAsync(array $args = []) + * @method \Aws\Result listRegexPatternSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRegexPatternSetsAsync(array $args = []) + * @method \Aws\Result listRuleGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRuleGroupsAsync(array $args = []) + * @method \Aws\Result listRules(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRulesAsync(array $args = []) + * @method \Aws\Result listSizeConstraintSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSizeConstraintSetsAsync(array $args = []) + * @method \Aws\Result listSqlInjectionMatchSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSqlInjectionMatchSetsAsync(array $args = []) + * @method \Aws\Result listSubscribedRuleGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSubscribedRuleGroupsAsync(array $args = []) + * @method \Aws\Result listWebACLs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listWebACLsAsync(array $args = []) + * @method \Aws\Result listXssMatchSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listXssMatchSetsAsync(array $args = []) + * @method \Aws\Result putLoggingConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putLoggingConfigurationAsync(array $args = []) + * @method \Aws\Result putPermissionPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putPermissionPolicyAsync(array $args = []) + * @method \Aws\Result updateByteMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateByteMatchSetAsync(array $args = []) + * @method \Aws\Result updateGeoMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateGeoMatchSetAsync(array $args = []) + * @method \Aws\Result updateIPSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateIPSetAsync(array $args = []) + * @method \Aws\Result updateRateBasedRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRateBasedRuleAsync(array $args = []) + * @method \Aws\Result updateRegexMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRegexMatchSetAsync(array $args = []) + * @method \Aws\Result updateRegexPatternSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRegexPatternSetAsync(array $args = []) + * @method \Aws\Result updateRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRuleAsync(array $args = []) + * @method \Aws\Result updateRuleGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRuleGroupAsync(array $args = []) + * @method \Aws\Result updateSizeConstraintSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSizeConstraintSetAsync(array $args = []) + * @method \Aws\Result updateSqlInjectionMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSqlInjectionMatchSetAsync(array $args = []) + * @method \Aws\Result updateWebACL(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateWebACLAsync(array $args = []) + * @method \Aws\Result updateXssMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateXssMatchSetAsync(array $args = []) + */ +class WafClient extends AwsClient {} diff --git a/lib/aws/Aws/WafRegional/Exception/WafRegionalException.php b/lib/aws/Aws/WafRegional/Exception/WafRegionalException.php new file mode 100644 index 0000000..e687e91 --- /dev/null +++ b/lib/aws/Aws/WafRegional/Exception/WafRegionalException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\WafRegional\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS WAF Regional** service. + */ +class WafRegionalException extends AwsException {} diff --git a/lib/aws/Aws/WafRegional/WafRegionalClient.php b/lib/aws/Aws/WafRegional/WafRegionalClient.php new file mode 100644 index 0000000..9109416 --- /dev/null +++ b/lib/aws/Aws/WafRegional/WafRegionalClient.php @@ -0,0 +1,163 @@ +<?php +namespace Aws\WafRegional; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS WAF Regional** service. + * @method \Aws\Result associateWebACL(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateWebACLAsync(array $args = []) + * @method \Aws\Result createByteMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createByteMatchSetAsync(array $args = []) + * @method \Aws\Result createGeoMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createGeoMatchSetAsync(array $args = []) + * @method \Aws\Result createIPSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createIPSetAsync(array $args = []) + * @method \Aws\Result createRateBasedRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRateBasedRuleAsync(array $args = []) + * @method \Aws\Result createRegexMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRegexMatchSetAsync(array $args = []) + * @method \Aws\Result createRegexPatternSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRegexPatternSetAsync(array $args = []) + * @method \Aws\Result createRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRuleAsync(array $args = []) + * @method \Aws\Result createRuleGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createRuleGroupAsync(array $args = []) + * @method \Aws\Result createSizeConstraintSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSizeConstraintSetAsync(array $args = []) + * @method \Aws\Result createSqlInjectionMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSqlInjectionMatchSetAsync(array $args = []) + * @method \Aws\Result createWebACL(array $args = []) + * @method \GuzzleHttp\Promise\Promise createWebACLAsync(array $args = []) + * @method \Aws\Result createXssMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createXssMatchSetAsync(array $args = []) + * @method \Aws\Result deleteByteMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteByteMatchSetAsync(array $args = []) + * @method \Aws\Result deleteGeoMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteGeoMatchSetAsync(array $args = []) + * @method \Aws\Result deleteIPSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteIPSetAsync(array $args = []) + * @method \Aws\Result deleteLoggingConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLoggingConfigurationAsync(array $args = []) + * @method \Aws\Result deletePermissionPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePermissionPolicyAsync(array $args = []) + * @method \Aws\Result deleteRateBasedRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRateBasedRuleAsync(array $args = []) + * @method \Aws\Result deleteRegexMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRegexMatchSetAsync(array $args = []) + * @method \Aws\Result deleteRegexPatternSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRegexPatternSetAsync(array $args = []) + * @method \Aws\Result deleteRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRuleAsync(array $args = []) + * @method \Aws\Result deleteRuleGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteRuleGroupAsync(array $args = []) + * @method \Aws\Result deleteSizeConstraintSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSizeConstraintSetAsync(array $args = []) + * @method \Aws\Result deleteSqlInjectionMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSqlInjectionMatchSetAsync(array $args = []) + * @method \Aws\Result deleteWebACL(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteWebACLAsync(array $args = []) + * @method \Aws\Result deleteXssMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteXssMatchSetAsync(array $args = []) + * @method \Aws\Result disassociateWebACL(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateWebACLAsync(array $args = []) + * @method \Aws\Result getByteMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getByteMatchSetAsync(array $args = []) + * @method \Aws\Result getChangeToken(array $args = []) + * @method \GuzzleHttp\Promise\Promise getChangeTokenAsync(array $args = []) + * @method \Aws\Result getChangeTokenStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getChangeTokenStatusAsync(array $args = []) + * @method \Aws\Result getGeoMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getGeoMatchSetAsync(array $args = []) + * @method \Aws\Result getIPSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getIPSetAsync(array $args = []) + * @method \Aws\Result getLoggingConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getLoggingConfigurationAsync(array $args = []) + * @method \Aws\Result getPermissionPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPermissionPolicyAsync(array $args = []) + * @method \Aws\Result getRateBasedRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRateBasedRuleAsync(array $args = []) + * @method \Aws\Result getRateBasedRuleManagedKeys(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRateBasedRuleManagedKeysAsync(array $args = []) + * @method \Aws\Result getRegexMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRegexMatchSetAsync(array $args = []) + * @method \Aws\Result getRegexPatternSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRegexPatternSetAsync(array $args = []) + * @method \Aws\Result getRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRuleAsync(array $args = []) + * @method \Aws\Result getRuleGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise getRuleGroupAsync(array $args = []) + * @method \Aws\Result getSampledRequests(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSampledRequestsAsync(array $args = []) + * @method \Aws\Result getSizeConstraintSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSizeConstraintSetAsync(array $args = []) + * @method \Aws\Result getSqlInjectionMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSqlInjectionMatchSetAsync(array $args = []) + * @method \Aws\Result getWebACL(array $args = []) + * @method \GuzzleHttp\Promise\Promise getWebACLAsync(array $args = []) + * @method \Aws\Result getWebACLForResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise getWebACLForResourceAsync(array $args = []) + * @method \Aws\Result getXssMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise getXssMatchSetAsync(array $args = []) + * @method \Aws\Result listActivatedRulesInRuleGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise listActivatedRulesInRuleGroupAsync(array $args = []) + * @method \Aws\Result listByteMatchSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listByteMatchSetsAsync(array $args = []) + * @method \Aws\Result listGeoMatchSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listGeoMatchSetsAsync(array $args = []) + * @method \Aws\Result listIPSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listIPSetsAsync(array $args = []) + * @method \Aws\Result listLoggingConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listLoggingConfigurationsAsync(array $args = []) + * @method \Aws\Result listRateBasedRules(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRateBasedRulesAsync(array $args = []) + * @method \Aws\Result listRegexMatchSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRegexMatchSetsAsync(array $args = []) + * @method \Aws\Result listRegexPatternSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRegexPatternSetsAsync(array $args = []) + * @method \Aws\Result listResourcesForWebACL(array $args = []) + * @method \GuzzleHttp\Promise\Promise listResourcesForWebACLAsync(array $args = []) + * @method \Aws\Result listRuleGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRuleGroupsAsync(array $args = []) + * @method \Aws\Result listRules(array $args = []) + * @method \GuzzleHttp\Promise\Promise listRulesAsync(array $args = []) + * @method \Aws\Result listSizeConstraintSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSizeConstraintSetsAsync(array $args = []) + * @method \Aws\Result listSqlInjectionMatchSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSqlInjectionMatchSetsAsync(array $args = []) + * @method \Aws\Result listSubscribedRuleGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSubscribedRuleGroupsAsync(array $args = []) + * @method \Aws\Result listWebACLs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listWebACLsAsync(array $args = []) + * @method \Aws\Result listXssMatchSets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listXssMatchSetsAsync(array $args = []) + * @method \Aws\Result putLoggingConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putLoggingConfigurationAsync(array $args = []) + * @method \Aws\Result putPermissionPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putPermissionPolicyAsync(array $args = []) + * @method \Aws\Result updateByteMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateByteMatchSetAsync(array $args = []) + * @method \Aws\Result updateGeoMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateGeoMatchSetAsync(array $args = []) + * @method \Aws\Result updateIPSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateIPSetAsync(array $args = []) + * @method \Aws\Result updateRateBasedRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRateBasedRuleAsync(array $args = []) + * @method \Aws\Result updateRegexMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRegexMatchSetAsync(array $args = []) + * @method \Aws\Result updateRegexPatternSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRegexPatternSetAsync(array $args = []) + * @method \Aws\Result updateRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRuleAsync(array $args = []) + * @method \Aws\Result updateRuleGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRuleGroupAsync(array $args = []) + * @method \Aws\Result updateSizeConstraintSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSizeConstraintSetAsync(array $args = []) + * @method \Aws\Result updateSqlInjectionMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSqlInjectionMatchSetAsync(array $args = []) + * @method \Aws\Result updateWebACL(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateWebACLAsync(array $args = []) + * @method \Aws\Result updateXssMatchSet(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateXssMatchSetAsync(array $args = []) + */ +class WafRegionalClient extends AwsClient {} diff --git a/lib/aws/Aws/Waiter.php b/lib/aws/Aws/Waiter.php new file mode 100644 index 0000000..465cfc7 --- /dev/null +++ b/lib/aws/Aws/Waiter.php @@ -0,0 +1,262 @@ +<?php +namespace Aws; + +use Aws\Exception\AwsException; +use GuzzleHttp\Promise; +use GuzzleHttp\Promise\PromisorInterface; +use GuzzleHttp\Promise\RejectedPromise; + +/** + * "Waiters" are associated with an AWS resource (e.g., EC2 instance), and poll + * that resource and until it is in a particular state. + + * The Waiter object produces a promise that is either a.) resolved once the + * waiting conditions are met, or b.) rejected if the waiting conditions cannot + * be met or has exceeded the number of allowed attempts at meeting the + * conditions. You can use waiters in a blocking or non-blocking way, depending + * on whether you call wait() on the promise. + + * The configuration for the waiter must include information about the operation + * and the conditions for wait completion. + */ +class Waiter implements PromisorInterface +{ + /** @var AwsClientInterface Client used to execute each attempt. */ + private $client; + + /** @var string Name of the waiter. */ + private $name; + + /** @var array Params to use with each attempt operation. */ + private $args; + + /** @var array Waiter configuration. */ + private $config; + + /** @var array Default configuration options. */ + private static $defaults = ['initDelay' => 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']) ?: []; + return in_array($acceptor['expected'], $actuals); + } + + /** + * @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']; + } + + if ($result instanceof AwsException && $response = $result->getResponse()) { + return $acceptor['expected'] == $response->getStatusCode(); + } + + return false; + } + + /** + * @param Result $result Result or exception. + * @param array $acceptor Acceptor configuration being checked. + * + * @return bool + */ + private function matchesError($result, array $acceptor) + { + if ($result instanceof AwsException) { + return $result->isConnectionError() + || $result->getAwsErrorCode() == $acceptor['expected']; + } + + return false; + } +} diff --git a/lib/aws/Aws/WorkDocs/Exception/WorkDocsException.php b/lib/aws/Aws/WorkDocs/Exception/WorkDocsException.php new file mode 100644 index 0000000..d58f0da --- /dev/null +++ b/lib/aws/Aws/WorkDocs/Exception/WorkDocsException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\WorkDocs\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon WorkDocs** service. + */ +class WorkDocsException extends AwsException {} diff --git a/lib/aws/Aws/WorkDocs/WorkDocsClient.php b/lib/aws/Aws/WorkDocs/WorkDocsClient.php new file mode 100644 index 0000000..74b9a04 --- /dev/null +++ b/lib/aws/Aws/WorkDocs/WorkDocsClient.php @@ -0,0 +1,91 @@ +<?php +namespace Aws\WorkDocs; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon WorkDocs** service. + * @method \Aws\Result abortDocumentVersionUpload(array $args = []) + * @method \GuzzleHttp\Promise\Promise abortDocumentVersionUploadAsync(array $args = []) + * @method \Aws\Result activateUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise activateUserAsync(array $args = []) + * @method \Aws\Result addResourcePermissions(array $args = []) + * @method \GuzzleHttp\Promise\Promise addResourcePermissionsAsync(array $args = []) + * @method \Aws\Result createComment(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCommentAsync(array $args = []) + * @method \Aws\Result createCustomMetadata(array $args = []) + * @method \GuzzleHttp\Promise\Promise createCustomMetadataAsync(array $args = []) + * @method \Aws\Result createFolder(array $args = []) + * @method \GuzzleHttp\Promise\Promise createFolderAsync(array $args = []) + * @method \Aws\Result createLabels(array $args = []) + * @method \GuzzleHttp\Promise\Promise createLabelsAsync(array $args = []) + * @method \Aws\Result createNotificationSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise createNotificationSubscriptionAsync(array $args = []) + * @method \Aws\Result createUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise createUserAsync(array $args = []) + * @method \Aws\Result deactivateUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise deactivateUserAsync(array $args = []) + * @method \Aws\Result deleteComment(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCommentAsync(array $args = []) + * @method \Aws\Result deleteCustomMetadata(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteCustomMetadataAsync(array $args = []) + * @method \Aws\Result deleteDocument(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteDocumentAsync(array $args = []) + * @method \Aws\Result deleteFolder(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteFolderAsync(array $args = []) + * @method \Aws\Result deleteFolderContents(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteFolderContentsAsync(array $args = []) + * @method \Aws\Result deleteLabels(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteLabelsAsync(array $args = []) + * @method \Aws\Result deleteNotificationSubscription(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteNotificationSubscriptionAsync(array $args = []) + * @method \Aws\Result deleteUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserAsync(array $args = []) + * @method \Aws\Result describeActivities(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeActivitiesAsync(array $args = []) + * @method \Aws\Result describeComments(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCommentsAsync(array $args = []) + * @method \Aws\Result describeDocumentVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDocumentVersionsAsync(array $args = []) + * @method \Aws\Result describeFolderContents(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeFolderContentsAsync(array $args = []) + * @method \Aws\Result describeGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeGroupsAsync(array $args = []) + * @method \Aws\Result describeNotificationSubscriptions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeNotificationSubscriptionsAsync(array $args = []) + * @method \Aws\Result describeResourcePermissions(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeResourcePermissionsAsync(array $args = []) + * @method \Aws\Result describeRootFolders(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeRootFoldersAsync(array $args = []) + * @method \Aws\Result describeUsers(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeUsersAsync(array $args = []) + * @method \Aws\Result getCurrentUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise getCurrentUserAsync(array $args = []) + * @method \Aws\Result getDocument(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDocumentAsync(array $args = []) + * @method \Aws\Result getDocumentPath(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDocumentPathAsync(array $args = []) + * @method \Aws\Result getDocumentVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDocumentVersionAsync(array $args = []) + * @method \Aws\Result getFolder(array $args = []) + * @method \GuzzleHttp\Promise\Promise getFolderAsync(array $args = []) + * @method \Aws\Result getFolderPath(array $args = []) + * @method \GuzzleHttp\Promise\Promise getFolderPathAsync(array $args = []) + * @method \Aws\Result getResources(array $args = []) + * @method \GuzzleHttp\Promise\Promise getResourcesAsync(array $args = []) + * @method \Aws\Result initiateDocumentVersionUpload(array $args = []) + * @method \GuzzleHttp\Promise\Promise initiateDocumentVersionUploadAsync(array $args = []) + * @method \Aws\Result removeAllResourcePermissions(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeAllResourcePermissionsAsync(array $args = []) + * @method \Aws\Result removeResourcePermission(array $args = []) + * @method \GuzzleHttp\Promise\Promise removeResourcePermissionAsync(array $args = []) + * @method \Aws\Result updateDocument(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDocumentAsync(array $args = []) + * @method \Aws\Result updateDocumentVersion(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDocumentVersionAsync(array $args = []) + * @method \Aws\Result updateFolder(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateFolderAsync(array $args = []) + * @method \Aws\Result updateUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateUserAsync(array $args = []) + */ +class WorkDocsClient extends AwsClient {} diff --git a/lib/aws/Aws/WorkLink/Exception/WorkLinkException.php b/lib/aws/Aws/WorkLink/Exception/WorkLinkException.php new file mode 100644 index 0000000..6696675 --- /dev/null +++ b/lib/aws/Aws/WorkLink/Exception/WorkLinkException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\WorkLink\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon WorkLink** service. + */ +class WorkLinkException extends AwsException {} diff --git a/lib/aws/Aws/WorkLink/WorkLinkClient.php b/lib/aws/Aws/WorkLink/WorkLinkClient.php new file mode 100644 index 0000000..1cdcb67 --- /dev/null +++ b/lib/aws/Aws/WorkLink/WorkLinkClient.php @@ -0,0 +1,49 @@ +<?php +namespace Aws\WorkLink; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon WorkLink** service. + * @method \Aws\Result associateWebsiteCertificateAuthority(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateWebsiteCertificateAuthorityAsync(array $args = []) + * @method \Aws\Result createFleet(array $args = []) + * @method \GuzzleHttp\Promise\Promise createFleetAsync(array $args = []) + * @method \Aws\Result deleteFleet(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteFleetAsync(array $args = []) + * @method \Aws\Result describeAuditStreamConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAuditStreamConfigurationAsync(array $args = []) + * @method \Aws\Result describeCompanyNetworkConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeCompanyNetworkConfigurationAsync(array $args = []) + * @method \Aws\Result describeDevice(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDeviceAsync(array $args = []) + * @method \Aws\Result describeDevicePolicyConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeDevicePolicyConfigurationAsync(array $args = []) + * @method \Aws\Result describeFleetMetadata(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeFleetMetadataAsync(array $args = []) + * @method \Aws\Result describeIdentityProviderConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeIdentityProviderConfigurationAsync(array $args = []) + * @method \Aws\Result describeWebsiteCertificateAuthority(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeWebsiteCertificateAuthorityAsync(array $args = []) + * @method \Aws\Result disassociateWebsiteCertificateAuthority(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateWebsiteCertificateAuthorityAsync(array $args = []) + * @method \Aws\Result listDevices(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDevicesAsync(array $args = []) + * @method \Aws\Result listFleets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listFleetsAsync(array $args = []) + * @method \Aws\Result listWebsiteCertificateAuthorities(array $args = []) + * @method \GuzzleHttp\Promise\Promise listWebsiteCertificateAuthoritiesAsync(array $args = []) + * @method \Aws\Result signOutUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise signOutUserAsync(array $args = []) + * @method \Aws\Result updateAuditStreamConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateAuditStreamConfigurationAsync(array $args = []) + * @method \Aws\Result updateCompanyNetworkConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateCompanyNetworkConfigurationAsync(array $args = []) + * @method \Aws\Result updateDevicePolicyConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateDevicePolicyConfigurationAsync(array $args = []) + * @method \Aws\Result updateFleetMetadata(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateFleetMetadataAsync(array $args = []) + * @method \Aws\Result updateIdentityProviderConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateIdentityProviderConfigurationAsync(array $args = []) + */ +class WorkLinkClient extends AwsClient {} diff --git a/lib/aws/Aws/WorkMail/Exception/WorkMailException.php b/lib/aws/Aws/WorkMail/Exception/WorkMailException.php new file mode 100644 index 0000000..aba5d26 --- /dev/null +++ b/lib/aws/Aws/WorkMail/Exception/WorkMailException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\WorkMail\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **Amazon WorkMail** service. + */ +class WorkMailException extends AwsException {} diff --git a/lib/aws/Aws/WorkMail/WorkMailClient.php b/lib/aws/Aws/WorkMail/WorkMailClient.php new file mode 100644 index 0000000..9d52cd3 --- /dev/null +++ b/lib/aws/Aws/WorkMail/WorkMailClient.php @@ -0,0 +1,71 @@ +<?php +namespace Aws\WorkMail; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **Amazon WorkMail** service. + * @method \Aws\Result associateDelegateToResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateDelegateToResourceAsync(array $args = []) + * @method \Aws\Result associateMemberToGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateMemberToGroupAsync(array $args = []) + * @method \Aws\Result createAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise createAliasAsync(array $args = []) + * @method \Aws\Result createGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createGroupAsync(array $args = []) + * @method \Aws\Result createResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise createResourceAsync(array $args = []) + * @method \Aws\Result createUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise createUserAsync(array $args = []) + * @method \Aws\Result deleteAlias(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteAliasAsync(array $args = []) + * @method \Aws\Result deleteGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteGroupAsync(array $args = []) + * @method \Aws\Result deleteMailboxPermissions(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteMailboxPermissionsAsync(array $args = []) + * @method \Aws\Result deleteResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteResourceAsync(array $args = []) + * @method \Aws\Result deleteUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteUserAsync(array $args = []) + * @method \Aws\Result deregisterFromWorkMail(array $args = []) + * @method \GuzzleHttp\Promise\Promise deregisterFromWorkMailAsync(array $args = []) + * @method \Aws\Result describeGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeGroupAsync(array $args = []) + * @method \Aws\Result describeOrganization(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeOrganizationAsync(array $args = []) + * @method \Aws\Result describeResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeResourceAsync(array $args = []) + * @method \Aws\Result describeUser(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeUserAsync(array $args = []) + * @method \Aws\Result disassociateDelegateFromResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateDelegateFromResourceAsync(array $args = []) + * @method \Aws\Result disassociateMemberFromGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateMemberFromGroupAsync(array $args = []) + * @method \Aws\Result listAliases(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAliasesAsync(array $args = []) + * @method \Aws\Result listGroupMembers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listGroupMembersAsync(array $args = []) + * @method \Aws\Result listGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise listGroupsAsync(array $args = []) + * @method \Aws\Result listMailboxPermissions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listMailboxPermissionsAsync(array $args = []) + * @method \Aws\Result listOrganizations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listOrganizationsAsync(array $args = []) + * @method \Aws\Result listResourceDelegates(array $args = []) + * @method \GuzzleHttp\Promise\Promise listResourceDelegatesAsync(array $args = []) + * @method \Aws\Result listResources(array $args = []) + * @method \GuzzleHttp\Promise\Promise listResourcesAsync(array $args = []) + * @method \Aws\Result listUsers(array $args = []) + * @method \GuzzleHttp\Promise\Promise listUsersAsync(array $args = []) + * @method \Aws\Result putMailboxPermissions(array $args = []) + * @method \GuzzleHttp\Promise\Promise putMailboxPermissionsAsync(array $args = []) + * @method \Aws\Result registerToWorkMail(array $args = []) + * @method \GuzzleHttp\Promise\Promise registerToWorkMailAsync(array $args = []) + * @method \Aws\Result resetPassword(array $args = []) + * @method \GuzzleHttp\Promise\Promise resetPasswordAsync(array $args = []) + * @method \Aws\Result updatePrimaryEmailAddress(array $args = []) + * @method \GuzzleHttp\Promise\Promise updatePrimaryEmailAddressAsync(array $args = []) + * @method \Aws\Result updateResource(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateResourceAsync(array $args = []) + */ +class WorkMailClient extends AwsClient {} diff --git a/lib/aws/Aws/WorkSpaces/Exception/WorkSpacesException.php b/lib/aws/Aws/WorkSpaces/Exception/WorkSpacesException.php new file mode 100644 index 0000000..6de9e6b --- /dev/null +++ b/lib/aws/Aws/WorkSpaces/Exception/WorkSpacesException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\WorkSpaces\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error while interacting with Amazon WorkSpaces. + */ +class WorkSpacesException extends AwsException {} diff --git a/lib/aws/Aws/WorkSpaces/WorkSpacesClient.php b/lib/aws/Aws/WorkSpaces/WorkSpacesClient.php new file mode 100644 index 0000000..55c677d --- /dev/null +++ b/lib/aws/Aws/WorkSpaces/WorkSpacesClient.php @@ -0,0 +1,74 @@ +<?php +namespace Aws\WorkSpaces; + +use Aws\AwsClient; + +/** + * Amazon WorkSpaces client. + * + * @method \Aws\Result associateIpGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise associateIpGroupsAsync(array $args = []) + * @method \Aws\Result authorizeIpRules(array $args = []) + * @method \GuzzleHttp\Promise\Promise authorizeIpRulesAsync(array $args = []) + * @method \Aws\Result createIpGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createIpGroupAsync(array $args = []) + * @method \Aws\Result createTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise createTagsAsync(array $args = []) + * @method \Aws\Result createWorkspaces(array $args = []) + * @method \GuzzleHttp\Promise\Promise createWorkspacesAsync(array $args = []) + * @method \Aws\Result deleteIpGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteIpGroupAsync(array $args = []) + * @method \Aws\Result deleteTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteTagsAsync(array $args = []) + * @method \Aws\Result deleteWorkspaceImage(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteWorkspaceImageAsync(array $args = []) + * @method \Aws\Result describeAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAccountAsync(array $args = []) + * @method \Aws\Result describeAccountModifications(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeAccountModificationsAsync(array $args = []) + * @method \Aws\Result describeClientProperties(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeClientPropertiesAsync(array $args = []) + * @method \Aws\Result describeIpGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeIpGroupsAsync(array $args = []) + * @method \Aws\Result describeTags(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeTagsAsync(array $args = []) + * @method \Aws\Result describeWorkspaceBundles(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeWorkspaceBundlesAsync(array $args = []) + * @method \Aws\Result describeWorkspaceDirectories(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeWorkspaceDirectoriesAsync(array $args = []) + * @method \Aws\Result describeWorkspaceImages(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeWorkspaceImagesAsync(array $args = []) + * @method \Aws\Result describeWorkspaces(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeWorkspacesAsync(array $args = []) + * @method \Aws\Result describeWorkspacesConnectionStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeWorkspacesConnectionStatusAsync(array $args = []) + * @method \Aws\Result disassociateIpGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise disassociateIpGroupsAsync(array $args = []) + * @method \Aws\Result importWorkspaceImage(array $args = []) + * @method \GuzzleHttp\Promise\Promise importWorkspaceImageAsync(array $args = []) + * @method \Aws\Result listAvailableManagementCidrRanges(array $args = []) + * @method \GuzzleHttp\Promise\Promise listAvailableManagementCidrRangesAsync(array $args = []) + * @method \Aws\Result modifyAccount(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyAccountAsync(array $args = []) + * @method \Aws\Result modifyClientProperties(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyClientPropertiesAsync(array $args = []) + * @method \Aws\Result modifyWorkspaceProperties(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyWorkspacePropertiesAsync(array $args = []) + * @method \Aws\Result modifyWorkspaceState(array $args = []) + * @method \GuzzleHttp\Promise\Promise modifyWorkspaceStateAsync(array $args = []) + * @method \Aws\Result rebootWorkspaces(array $args = []) + * @method \GuzzleHttp\Promise\Promise rebootWorkspacesAsync(array $args = []) + * @method \Aws\Result rebuildWorkspaces(array $args = []) + * @method \GuzzleHttp\Promise\Promise rebuildWorkspacesAsync(array $args = []) + * @method \Aws\Result revokeIpRules(array $args = []) + * @method \GuzzleHttp\Promise\Promise revokeIpRulesAsync(array $args = []) + * @method \Aws\Result startWorkspaces(array $args = []) + * @method \GuzzleHttp\Promise\Promise startWorkspacesAsync(array $args = []) + * @method \Aws\Result stopWorkspaces(array $args = []) + * @method \GuzzleHttp\Promise\Promise stopWorkspacesAsync(array $args = []) + * @method \Aws\Result terminateWorkspaces(array $args = []) + * @method \GuzzleHttp\Promise\Promise terminateWorkspacesAsync(array $args = []) + * @method \Aws\Result updateRulesOfIpGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateRulesOfIpGroupAsync(array $args = []) + */ +class WorkSpacesClient extends AwsClient {} diff --git a/lib/aws/Aws/WrappedHttpHandler.php b/lib/aws/Aws/WrappedHttpHandler.php new file mode 100644 index 0000000..bd1e061 --- /dev/null +++ b/lib/aws/Aws/WrappedHttpHandler.php @@ -0,0 +1,203 @@ +<?php +namespace Aws; + +use Aws\Api\Parser\Exception\ParserException; +use GuzzleHttp\Promise; +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; + +/** + * Converts an HTTP handler into a Command HTTP handler. + * + * HTTP handlers have the following signature: + * function(RequestInterface $request, array $options) : PromiseInterface + * + * The promise returned form an HTTP handler must resolve to a PSR-7 response + * object when fulfilled or an error array when rejected. The error array + * can contain the following data: + * + * - exception: (required, Exception) Exception that was encountered. + * - response: (ResponseInterface) PSR-7 response that was received (if a + * response) was received. + * - connection_error: (bool) True if the error is the result of failing to + * connect. + */ +class WrappedHttpHandler +{ + private $httpHandler; + private $parser; + private $errorParser; + private $exceptionClass; + private $collectStats; + + /** + * @param callable $httpHandler Function that accepts a request and array + * of request options and returns a promise + * that fulfills with a response or rejects + * with an error array. + * @param callable $parser Function that accepts a response object + * and returns an AWS result object. + * @param callable $errorParser Function that parses a response object + * into AWS error data. + * @param string $exceptionClass Exception class to throw. + * @param bool $collectStats Whether to collect HTTP transfer + * information. + */ + public function __construct( + callable $httpHandler, + callable $parser, + callable $errorParser, + $exceptionClass = 'Aws\Exception\AwsException', + $collectStats = false + ) { + $this->httpHandler = $httpHandler; + $this->parser = $parser; + $this->errorParser = $errorParser; + $this->exceptionClass = $exceptionClass; + $this->collectStats = $collectStats; + } + + /** + * 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; + $options = $command['@http'] ?: []; + $stats = []; + if ($this->collectStats || !empty($options['collect_stats'])) { + $options['http_stats_receiver'] = static function ( + array $transferStats + ) use (&$stats) { + $stats = $transferStats; + }; + } elseif (isset($options['http_stats_receiver'])) { + throw new \InvalidArgumentException('Providing a custom HTTP stats' + . ' receiver to Aws\WrappedHttpHandler is not supported.'); + } + + return Promise\promise_for($fn($request, $options)) + ->then( + function ( + ResponseInterface $res + ) use ($command, $request, &$stats) { + return $this->parseResponse($command, $request, $res, $stats); + }, + function ($err) use ($request, $command, &$stats) { + if (is_array($err)) { + $err = $this->parseError( + $err, + $request, + $command, + $stats + ); + } + return new Promise\RejectedPromise($err); + } + ); + } + + /** + * @param CommandInterface $command + * @param RequestInterface $request + * @param ResponseInterface $response + * @param array $stats + * + * @return ResultInterface + */ + private function parseResponse( + CommandInterface $command, + RequestInterface $request, + ResponseInterface $response, + array $stats + ) { + $parser = $this->parser; + $status = $response->getStatusCode(); + $result = $status < 300 + ? $parser($command, $response) + : new Result(); + + $metadata = [ + 'statusCode' => $status, + 'effectiveUri' => (string) $request->getUri(), + 'headers' => [], + 'transferStats' => [], + ]; + if (!empty($stats)) { + $metadata['transferStats']['http'] = [$stats]; + } + + // 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. + * @param array $stats Transfer statistics + * + * @return \Exception + */ + private function parseError( + array $err, + RequestInterface $request, + CommandInterface $command, + array $stats + ) { + 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 { + try { + $parts = call_user_func($this->errorParser, $err['response']); + $serviceError .= " {$parts['code']} ({$parts['type']}): " + . "{$parts['message']} - " . $err['response']->getBody(); + } catch (ParserException $e) { + $parts = []; + $serviceError .= ' Unable to parse error information from ' + . "response - {$e->getMessage()}"; + } + + $parts['response'] = $err['response']; + } + + $parts['exception'] = $err['exception']; + $parts['request'] = $request; + $parts['connection_error'] = !empty($err['connection_error']); + $parts['transfer_stats'] = $stats; + + 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/Aws/XRay/Exception/XRayException.php b/lib/aws/Aws/XRay/Exception/XRayException.php new file mode 100644 index 0000000..0e52d10 --- /dev/null +++ b/lib/aws/Aws/XRay/Exception/XRayException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\XRay\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS X-Ray** service. + */ +class XRayException extends AwsException {} diff --git a/lib/aws/Aws/XRay/XRayClient.php b/lib/aws/Aws/XRay/XRayClient.php new file mode 100644 index 0000000..ff24324 --- /dev/null +++ b/lib/aws/Aws/XRay/XRayClient.php @@ -0,0 +1,47 @@ +<?php +namespace Aws\XRay; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS X-Ray** service. + * @method \Aws\Result batchGetTraces(array $args = []) + * @method \GuzzleHttp\Promise\Promise batchGetTracesAsync(array $args = []) + * @method \Aws\Result createGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise createGroupAsync(array $args = []) + * @method \Aws\Result createSamplingRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSamplingRuleAsync(array $args = []) + * @method \Aws\Result deleteGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteGroupAsync(array $args = []) + * @method \Aws\Result deleteSamplingRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteSamplingRuleAsync(array $args = []) + * @method \Aws\Result getEncryptionConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise getEncryptionConfigAsync(array $args = []) + * @method \Aws\Result getGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise getGroupAsync(array $args = []) + * @method \Aws\Result getGroups(array $args = []) + * @method \GuzzleHttp\Promise\Promise getGroupsAsync(array $args = []) + * @method \Aws\Result getSamplingRules(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSamplingRulesAsync(array $args = []) + * @method \Aws\Result getSamplingStatisticSummaries(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSamplingStatisticSummariesAsync(array $args = []) + * @method \Aws\Result getSamplingTargets(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSamplingTargetsAsync(array $args = []) + * @method \Aws\Result getServiceGraph(array $args = []) + * @method \GuzzleHttp\Promise\Promise getServiceGraphAsync(array $args = []) + * @method \Aws\Result getTraceGraph(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTraceGraphAsync(array $args = []) + * @method \Aws\Result getTraceSummaries(array $args = []) + * @method \GuzzleHttp\Promise\Promise getTraceSummariesAsync(array $args = []) + * @method \Aws\Result putEncryptionConfig(array $args = []) + * @method \GuzzleHttp\Promise\Promise putEncryptionConfigAsync(array $args = []) + * @method \Aws\Result putTelemetryRecords(array $args = []) + * @method \GuzzleHttp\Promise\Promise putTelemetryRecordsAsync(array $args = []) + * @method \Aws\Result putTraceSegments(array $args = []) + * @method \GuzzleHttp\Promise\Promise putTraceSegmentsAsync(array $args = []) + * @method \Aws\Result updateGroup(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateGroupAsync(array $args = []) + * @method \Aws\Result updateSamplingRule(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateSamplingRuleAsync(array $args = []) + */ +class XRayClient extends AwsClient {} diff --git a/lib/aws/Aws/data/acm-pca/2017-08-22/api-2.json.php b/lib/aws/Aws/data/acm-pca/2017-08-22/api-2.json.php new file mode 100644 index 0000000..a70e42f --- /dev/null +++ b/lib/aws/Aws/data/acm-pca/2017-08-22/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/acm-pca/2017-08-22/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-08-22', 'endpointPrefix' => 'acm-pca', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'ACM-PCA', 'serviceFullName' => 'AWS Certificate Manager Private Certificate Authority', 'serviceId' => 'ACM PCA', 'signatureVersion' => 'v4', 'targetPrefix' => 'ACMPrivateCA', 'uid' => 'acm-pca-2017-08-22', ], 'operations' => [ 'CreateCertificateAuthority' => [ 'name' => 'CreateCertificateAuthority', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCertificateAuthorityRequest', ], 'output' => [ 'shape' => 'CreateCertificateAuthorityResponse', ], 'errors' => [ [ 'shape' => 'InvalidArgsException', ], [ 'shape' => 'InvalidPolicyException', ], [ 'shape' => 'InvalidTagException', ], [ 'shape' => 'LimitExceededException', ], ], 'idempotent' => true, ], 'CreateCertificateAuthorityAuditReport' => [ 'name' => 'CreateCertificateAuthorityAuditReport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCertificateAuthorityAuditReportRequest', ], 'output' => [ 'shape' => 'CreateCertificateAuthorityAuditReportResponse', ], 'errors' => [ [ 'shape' => 'RequestInProgressException', ], [ 'shape' => 'RequestFailedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidArgsException', ], [ 'shape' => 'InvalidStateException', ], ], 'idempotent' => true, ], 'CreatePermission' => [ 'name' => 'CreatePermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePermissionRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'PermissionAlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'RequestFailedException', ], ], ], 'DeleteCertificateAuthority' => [ 'name' => 'DeleteCertificateAuthority', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCertificateAuthorityRequest', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidStateException', ], ], ], 'DeletePermission' => [ 'name' => 'DeletePermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePermissionRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'RequestFailedException', ], ], ], 'DescribeCertificateAuthority' => [ 'name' => 'DescribeCertificateAuthority', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCertificateAuthorityRequest', ], 'output' => [ 'shape' => 'DescribeCertificateAuthorityResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArnException', ], ], ], 'DescribeCertificateAuthorityAuditReport' => [ 'name' => 'DescribeCertificateAuthorityAuditReport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCertificateAuthorityAuditReportRequest', ], 'output' => [ 'shape' => 'DescribeCertificateAuthorityAuditReportResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidArgsException', ], ], ], 'GetCertificate' => [ 'name' => 'GetCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCertificateRequest', ], 'output' => [ 'shape' => 'GetCertificateResponse', ], 'errors' => [ [ 'shape' => 'RequestInProgressException', ], [ 'shape' => 'RequestFailedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidStateException', ], ], ], 'GetCertificateAuthorityCertificate' => [ 'name' => 'GetCertificateAuthorityCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCertificateAuthorityCertificateRequest', ], 'output' => [ 'shape' => 'GetCertificateAuthorityCertificateResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'InvalidArnException', ], ], ], 'GetCertificateAuthorityCsr' => [ 'name' => 'GetCertificateAuthorityCsr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCertificateAuthorityCsrRequest', ], 'output' => [ 'shape' => 'GetCertificateAuthorityCsrResponse', ], 'errors' => [ [ 'shape' => 'RequestInProgressException', ], [ 'shape' => 'RequestFailedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidStateException', ], ], ], 'ImportCertificateAuthorityCertificate' => [ 'name' => 'ImportCertificateAuthorityCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportCertificateAuthorityCertificateRequest', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'RequestInProgressException', ], [ 'shape' => 'RequestFailedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'MalformedCertificateException', ], [ 'shape' => 'CertificateMismatchException', ], ], ], 'IssueCertificate' => [ 'name' => 'IssueCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'IssueCertificateRequest', ], 'output' => [ 'shape' => 'IssueCertificateResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidArgsException', ], [ 'shape' => 'MalformedCSRException', ], ], 'idempotent' => true, ], 'ListCertificateAuthorities' => [ 'name' => 'ListCertificateAuthorities', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListCertificateAuthoritiesRequest', ], 'output' => [ 'shape' => 'ListCertificateAuthoritiesResponse', ], 'errors' => [ [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListPermissions' => [ 'name' => 'ListPermissions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListPermissionsRequest', ], 'output' => [ 'shape' => 'ListPermissionsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'RequestFailedException', ], ], ], 'ListTags' => [ 'name' => 'ListTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsRequest', ], 'output' => [ 'shape' => 'ListTagsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArnException', ], ], ], 'RestoreCertificateAuthority' => [ 'name' => 'RestoreCertificateAuthority', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreCertificateAuthorityRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'InvalidArnException', ], ], ], 'RevokeCertificate' => [ 'name' => 'RevokeCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RevokeCertificateRequest', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'RequestAlreadyProcessedException', ], [ 'shape' => 'RequestInProgressException', ], [ 'shape' => 'RequestFailedException', ], ], ], 'TagCertificateAuthority' => [ 'name' => 'TagCertificateAuthority', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagCertificateAuthorityRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'InvalidTagException', ], [ 'shape' => 'TooManyTagsException', ], ], ], 'UntagCertificateAuthority' => [ 'name' => 'UntagCertificateAuthority', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagCertificateAuthorityRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'InvalidTagException', ], ], ], 'UpdateCertificateAuthority' => [ 'name' => 'UpdateCertificateAuthority', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateCertificateAuthorityRequest', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArgsException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'InvalidPolicyException', ], ], ], ], 'shapes' => [ 'ASN1Subject' => [ 'type' => 'structure', 'members' => [ 'Country' => [ 'shape' => 'CountryCodeString', ], 'Organization' => [ 'shape' => 'String64', ], 'OrganizationalUnit' => [ 'shape' => 'String64', ], 'DistinguishedNameQualifier' => [ 'shape' => 'DistinguishedNameQualifierString', ], 'State' => [ 'shape' => 'String128', ], 'CommonName' => [ 'shape' => 'String64', ], 'SerialNumber' => [ 'shape' => 'String64', ], 'Locality' => [ 'shape' => 'String128', ], 'Title' => [ 'shape' => 'String64', ], 'Surname' => [ 'shape' => 'String40', ], 'GivenName' => [ 'shape' => 'String16', ], 'Initials' => [ 'shape' => 'String5', ], 'Pseudonym' => [ 'shape' => 'String128', ], 'GenerationQualifier' => [ 'shape' => 'String3', ], ], ], 'AccountId' => [ 'type' => 'string', 'max' => 12, 'min' => 12, 'pattern' => '[0-9]+', ], 'ActionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ActionType', ], 'max' => 3, 'min' => 1, ], 'ActionType' => [ 'type' => 'string', 'enum' => [ 'IssueCertificate', 'GetCertificate', 'ListPermissions', ], ], 'Arn' => [ 'type' => 'string', 'max' => 200, 'min' => 5, 'pattern' => 'arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=/,.@-]+)*', ], 'AuditReportId' => [ 'type' => 'string', 'max' => 36, 'min' => 36, 'pattern' => '[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}', ], 'AuditReportResponseFormat' => [ 'type' => 'string', 'enum' => [ 'JSON', 'CSV', ], ], 'AuditReportStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'SUCCESS', 'FAILED', ], ], 'Boolean' => [ 'type' => 'boolean', ], 'CertificateAuthorities' => [ 'type' => 'list', 'member' => [ 'shape' => 'CertificateAuthority', ], ], 'CertificateAuthority' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'CreatedAt' => [ 'shape' => 'TStamp', ], 'LastStateChangeAt' => [ 'shape' => 'TStamp', ], 'Type' => [ 'shape' => 'CertificateAuthorityType', ], 'Serial' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'CertificateAuthorityStatus', ], 'NotBefore' => [ 'shape' => 'TStamp', ], 'NotAfter' => [ 'shape' => 'TStamp', ], 'FailureReason' => [ 'shape' => 'FailureReason', ], 'CertificateAuthorityConfiguration' => [ 'shape' => 'CertificateAuthorityConfiguration', ], 'RevocationConfiguration' => [ 'shape' => 'RevocationConfiguration', ], 'RestorableUntil' => [ 'shape' => 'TStamp', ], ], ], 'CertificateAuthorityConfiguration' => [ 'type' => 'structure', 'required' => [ 'KeyAlgorithm', 'SigningAlgorithm', 'Subject', ], 'members' => [ 'KeyAlgorithm' => [ 'shape' => 'KeyAlgorithm', ], 'SigningAlgorithm' => [ 'shape' => 'SigningAlgorithm', ], 'Subject' => [ 'shape' => 'ASN1Subject', ], ], ], 'CertificateAuthorityStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'PENDING_CERTIFICATE', 'ACTIVE', 'DELETED', 'DISABLED', 'EXPIRED', 'FAILED', ], ], 'CertificateAuthorityType' => [ 'type' => 'string', 'enum' => [ 'SUBORDINATE', ], ], 'CertificateBody' => [ 'type' => 'string', ], 'CertificateBodyBlob' => [ 'type' => 'blob', 'max' => 32768, 'min' => 1, ], 'CertificateChain' => [ 'type' => 'string', ], 'CertificateChainBlob' => [ 'type' => 'blob', 'max' => 2097152, 'min' => 0, ], 'CertificateMismatchException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'CountryCodeString' => [ 'type' => 'string', 'pattern' => '[A-Za-z]{2}', ], 'CreateCertificateAuthorityAuditReportRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateAuthorityArn', 'S3BucketName', 'AuditReportResponseFormat', ], 'members' => [ 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], 'S3BucketName' => [ 'shape' => 'String', ], 'AuditReportResponseFormat' => [ 'shape' => 'AuditReportResponseFormat', ], ], ], 'CreateCertificateAuthorityAuditReportResponse' => [ 'type' => 'structure', 'members' => [ 'AuditReportId' => [ 'shape' => 'AuditReportId', ], 'S3Key' => [ 'shape' => 'String', ], ], ], 'CreateCertificateAuthorityRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateAuthorityConfiguration', 'CertificateAuthorityType', ], 'members' => [ 'CertificateAuthorityConfiguration' => [ 'shape' => 'CertificateAuthorityConfiguration', ], 'RevocationConfiguration' => [ 'shape' => 'RevocationConfiguration', ], 'CertificateAuthorityType' => [ 'shape' => 'CertificateAuthorityType', ], 'IdempotencyToken' => [ 'shape' => 'IdempotencyToken', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateCertificateAuthorityResponse' => [ 'type' => 'structure', 'members' => [ 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], ], ], 'CreatePermissionRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateAuthorityArn', 'Principal', 'Actions', ], 'members' => [ 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], 'Principal' => [ 'shape' => 'Principal', ], 'SourceAccount' => [ 'shape' => 'AccountId', ], 'Actions' => [ 'shape' => 'ActionList', ], ], ], 'CrlConfiguration' => [ 'type' => 'structure', 'required' => [ 'Enabled', ], 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'box' => true, ], 'ExpirationInDays' => [ 'shape' => 'Integer1To5000', 'box' => true, ], 'CustomCname' => [ 'shape' => 'String253', ], 'S3BucketName' => [ 'shape' => 'String3To255', ], ], ], 'CsrBlob' => [ 'type' => 'blob', 'max' => 32768, 'min' => 1, ], 'CsrBody' => [ 'type' => 'string', ], 'DeleteCertificateAuthorityRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateAuthorityArn', ], 'members' => [ 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], 'PermanentDeletionTimeInDays' => [ 'shape' => 'PermanentDeletionTimeInDays', ], ], ], 'DeletePermissionRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateAuthorityArn', 'Principal', ], 'members' => [ 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], 'Principal' => [ 'shape' => 'Principal', ], 'SourceAccount' => [ 'shape' => 'AccountId', ], ], ], 'DescribeCertificateAuthorityAuditReportRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateAuthorityArn', 'AuditReportId', ], 'members' => [ 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], 'AuditReportId' => [ 'shape' => 'AuditReportId', ], ], ], 'DescribeCertificateAuthorityAuditReportResponse' => [ 'type' => 'structure', 'members' => [ 'AuditReportStatus' => [ 'shape' => 'AuditReportStatus', ], 'S3BucketName' => [ 'shape' => 'String', ], 'S3Key' => [ 'shape' => 'String', ], 'CreatedAt' => [ 'shape' => 'TStamp', ], ], ], 'DescribeCertificateAuthorityRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateAuthorityArn', ], 'members' => [ 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], ], ], 'DescribeCertificateAuthorityResponse' => [ 'type' => 'structure', 'members' => [ 'CertificateAuthority' => [ 'shape' => 'CertificateAuthority', ], ], ], 'DistinguishedNameQualifierString' => [ 'type' => 'string', 'max' => 64, 'min' => 0, 'pattern' => '[a-zA-Z0-9\'()+-.?:/= ]*', ], 'FailureReason' => [ 'type' => 'string', 'enum' => [ 'REQUEST_TIMED_OUT', 'UNSUPPORTED_ALGORITHM', 'OTHER', ], ], 'GetCertificateAuthorityCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateAuthorityArn', ], 'members' => [ 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], ], ], 'GetCertificateAuthorityCertificateResponse' => [ 'type' => 'structure', 'members' => [ 'Certificate' => [ 'shape' => 'CertificateBody', ], 'CertificateChain' => [ 'shape' => 'CertificateChain', ], ], ], 'GetCertificateAuthorityCsrRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateAuthorityArn', ], 'members' => [ 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], ], ], 'GetCertificateAuthorityCsrResponse' => [ 'type' => 'structure', 'members' => [ 'Csr' => [ 'shape' => 'CsrBody', ], ], ], 'GetCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateAuthorityArn', 'CertificateArn', ], 'members' => [ 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], 'CertificateArn' => [ 'shape' => 'Arn', ], ], ], 'GetCertificateResponse' => [ 'type' => 'structure', 'members' => [ 'Certificate' => [ 'shape' => 'CertificateBody', ], 'CertificateChain' => [ 'shape' => 'CertificateChain', ], ], ], 'IdempotencyToken' => [ 'type' => 'string', 'max' => 36, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]*', ], 'ImportCertificateAuthorityCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateAuthorityArn', 'Certificate', 'CertificateChain', ], 'members' => [ 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], 'Certificate' => [ 'shape' => 'CertificateBodyBlob', ], 'CertificateChain' => [ 'shape' => 'CertificateChainBlob', ], ], ], 'Integer1To5000' => [ 'type' => 'integer', 'max' => 5000, 'min' => 1, ], 'InvalidArgsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidArnException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidPolicyException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidStateException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidTagException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'IssueCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateAuthorityArn', 'Csr', 'SigningAlgorithm', 'Validity', ], 'members' => [ 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], 'Csr' => [ 'shape' => 'CsrBlob', ], 'SigningAlgorithm' => [ 'shape' => 'SigningAlgorithm', ], 'Validity' => [ 'shape' => 'Validity', ], 'IdempotencyToken' => [ 'shape' => 'IdempotencyToken', ], ], ], 'IssueCertificateResponse' => [ 'type' => 'structure', 'members' => [ 'CertificateArn' => [ 'shape' => 'Arn', ], ], ], 'KeyAlgorithm' => [ 'type' => 'string', 'enum' => [ 'RSA_2048', 'RSA_4096', 'EC_prime256v1', 'EC_secp384r1', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ListCertificateAuthoritiesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListCertificateAuthoritiesResponse' => [ 'type' => 'structure', 'members' => [ 'CertificateAuthorities' => [ 'shape' => 'CertificateAuthorities', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPermissionsRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateAuthorityArn', ], 'members' => [ 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListPermissionsResponse' => [ 'type' => 'structure', 'members' => [ 'Permissions' => [ 'shape' => 'PermissionList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateAuthorityArn', ], 'members' => [ 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListTagsResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'MalformedCSRException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'MalformedCertificateException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'MaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'NextToken' => [ 'type' => 'string', 'max' => 500, 'min' => 1, ], 'PermanentDeletionTimeInDays' => [ 'type' => 'integer', 'max' => 30, 'min' => 7, ], 'Permission' => [ 'type' => 'structure', 'members' => [ 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], 'CreatedAt' => [ 'shape' => 'TStamp', ], 'Principal' => [ 'shape' => 'String', ], 'SourceAccount' => [ 'shape' => 'String', ], 'Actions' => [ 'shape' => 'ActionList', ], 'Policy' => [ 'shape' => 'String', ], ], ], 'PermissionAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'PermissionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Permission', ], 'min' => 0, ], 'PositiveLong' => [ 'type' => 'long', 'min' => 1, ], 'Principal' => [ 'type' => 'string', 'max' => 128, 'min' => 0, 'pattern' => '^[^*]+$', ], 'RequestAlreadyProcessedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'RequestFailedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'RequestInProgressException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'RestoreCertificateAuthorityRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateAuthorityArn', ], 'members' => [ 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], ], ], 'RevocationConfiguration' => [ 'type' => 'structure', 'members' => [ 'CrlConfiguration' => [ 'shape' => 'CrlConfiguration', ], ], ], 'RevocationReason' => [ 'type' => 'string', 'enum' => [ 'UNSPECIFIED', 'KEY_COMPROMISE', 'CERTIFICATE_AUTHORITY_COMPROMISE', 'AFFILIATION_CHANGED', 'SUPERSEDED', 'CESSATION_OF_OPERATION', 'PRIVILEGE_WITHDRAWN', 'A_A_COMPROMISE', ], ], 'RevokeCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateAuthorityArn', 'CertificateSerial', 'RevocationReason', ], 'members' => [ 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], 'CertificateSerial' => [ 'shape' => 'String128', ], 'RevocationReason' => [ 'shape' => 'RevocationReason', ], ], ], 'SigningAlgorithm' => [ 'type' => 'string', 'enum' => [ 'SHA256WITHECDSA', 'SHA384WITHECDSA', 'SHA512WITHECDSA', 'SHA256WITHRSA', 'SHA384WITHRSA', 'SHA512WITHRSA', ], ], 'String' => [ 'type' => 'string', ], 'String128' => [ 'type' => 'string', 'max' => 128, 'min' => 0, ], 'String16' => [ 'type' => 'string', 'max' => 16, 'min' => 0, ], 'String253' => [ 'type' => 'string', 'max' => 253, 'min' => 0, ], 'String3' => [ 'type' => 'string', 'max' => 3, 'min' => 0, ], 'String3To255' => [ 'type' => 'string', 'max' => 255, 'min' => 3, ], 'String40' => [ 'type' => 'string', 'max' => 40, 'min' => 0, ], 'String5' => [ 'type' => 'string', 'max' => 5, 'min' => 0, ], 'String64' => [ 'type' => 'string', 'max' => 64, 'min' => 0, ], 'TStamp' => [ 'type' => 'timestamp', ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagCertificateAuthorityRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateAuthorityArn', 'Tags', ], 'members' => [ 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 50, 'min' => 1, ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TooManyTagsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'UntagCertificateAuthorityRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateAuthorityArn', 'Tags', ], 'members' => [ 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'UpdateCertificateAuthorityRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateAuthorityArn', ], 'members' => [ 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], 'RevocationConfiguration' => [ 'shape' => 'RevocationConfiguration', ], 'Status' => [ 'shape' => 'CertificateAuthorityStatus', ], ], ], 'Validity' => [ 'type' => 'structure', 'required' => [ 'Value', 'Type', ], 'members' => [ 'Value' => [ 'shape' => 'PositiveLong', 'box' => true, ], 'Type' => [ 'shape' => 'ValidityPeriodType', ], ], ], 'ValidityPeriodType' => [ 'type' => 'string', 'enum' => [ 'END_DATE', 'ABSOLUTE', 'DAYS', 'MONTHS', 'YEARS', ], ], ],]; diff --git a/lib/aws/Aws/data/acm-pca/2017-08-22/paginators-1.json.php b/lib/aws/Aws/data/acm-pca/2017-08-22/paginators-1.json.php new file mode 100644 index 0000000..92a82b4 --- /dev/null +++ b/lib/aws/Aws/data/acm-pca/2017-08-22/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/acm-pca/2017-08-22/paginators-1.json +return [ 'pagination' => [ 'ListCertificateAuthorities' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'CertificateAuthorities', ], 'ListPermissions' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Permissions', ], 'ListTags' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Tags', ], ],]; diff --git a/lib/aws/Aws/data/acm-pca/2017-08-22/waiters-2.json.php b/lib/aws/Aws/data/acm-pca/2017-08-22/waiters-2.json.php new file mode 100644 index 0000000..817a2f9 --- /dev/null +++ b/lib/aws/Aws/data/acm-pca/2017-08-22/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/acm-pca/2017-08-22/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'CertificateAuthorityCSRCreated' => [ 'description' => 'Wait until a Certificate Authority CSR is created', 'operation' => 'GetCertificateAuthorityCsr', 'delay' => 3, 'maxAttempts' => 60, 'acceptors' => [ [ 'state' => 'success', 'matcher' => 'status', 'expected' => 200, ], [ 'state' => 'retry', 'matcher' => 'error', 'expected' => 'RequestInProgressException', ], ], ], 'CertificateIssued' => [ 'description' => 'Wait until a certificate is issued', 'operation' => 'GetCertificate', 'delay' => 3, 'maxAttempts' => 60, 'acceptors' => [ [ 'state' => 'success', 'matcher' => 'status', 'expected' => 200, ], [ 'state' => 'retry', 'matcher' => 'error', 'expected' => 'RequestInProgressException', ], ], ], 'AuditReportCreated' => [ 'description' => 'Wait until a Audit Report is created', 'operation' => 'DescribeCertificateAuthorityAuditReport', 'delay' => 3, 'maxAttempts' => 60, 'acceptors' => [ [ 'state' => 'success', 'matcher' => 'path', 'argument' => 'AuditReportStatus', 'expected' => 'SUCCESS', ], [ 'state' => 'failure', 'matcher' => 'path', 'argument' => 'AuditReportStatus', 'expected' => 'FAILED', ], ], ], ],]; diff --git a/lib/aws/Aws/data/acm/2015-12-08/api-2.json.php b/lib/aws/Aws/data/acm/2015-12-08/api-2.json.php new file mode 100644 index 0000000..beafd72 --- /dev/null +++ b/lib/aws/Aws/data/acm/2015-12-08/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/acm/2015-12-08/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-12-08', 'endpointPrefix' => 'acm', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'ACM', 'serviceFullName' => 'AWS Certificate Manager', 'serviceId' => 'ACM', 'signatureVersion' => 'v4', 'targetPrefix' => 'CertificateManager', 'uid' => 'acm-2015-12-08', ], 'operations' => [ 'AddTagsToCertificate' => [ 'name' => 'AddTagsToCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddTagsToCertificateRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidTagException', ], [ 'shape' => 'TooManyTagsException', ], ], ], 'DeleteCertificate' => [ 'name' => 'DeleteCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCertificateRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArnException', ], ], ], 'DescribeCertificate' => [ 'name' => 'DescribeCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCertificateRequest', ], 'output' => [ 'shape' => 'DescribeCertificateResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArnException', ], ], ], 'ExportCertificate' => [ 'name' => 'ExportCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExportCertificateRequest', ], 'output' => [ 'shape' => 'ExportCertificateResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'RequestInProgressException', ], [ 'shape' => 'InvalidArnException', ], ], ], 'GetCertificate' => [ 'name' => 'GetCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCertificateRequest', ], 'output' => [ 'shape' => 'GetCertificateResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'RequestInProgressException', ], [ 'shape' => 'InvalidArnException', ], ], ], 'ImportCertificate' => [ 'name' => 'ImportCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportCertificateRequest', ], 'output' => [ 'shape' => 'ImportCertificateResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'ListCertificates' => [ 'name' => 'ListCertificates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListCertificatesRequest', ], 'output' => [ 'shape' => 'ListCertificatesResponse', ], 'errors' => [ [ 'shape' => 'InvalidArgsException', ], ], ], 'ListTagsForCertificate' => [ 'name' => 'ListTagsForCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForCertificateRequest', ], 'output' => [ 'shape' => 'ListTagsForCertificateResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArnException', ], ], ], 'RemoveTagsFromCertificate' => [ 'name' => 'RemoveTagsFromCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveTagsFromCertificateRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidTagException', ], ], ], 'RenewCertificate' => [ 'name' => 'RenewCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RenewCertificateRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArnException', ], ], ], 'RequestCertificate' => [ 'name' => 'RequestCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RequestCertificateRequest', ], 'output' => [ 'shape' => 'RequestCertificateResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidDomainValidationOptionsException', ], [ 'shape' => 'InvalidArnException', ], ], ], 'ResendValidationEmail' => [ 'name' => 'ResendValidationEmail', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResendValidationEmailRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidDomainValidationOptionsException', ], ], ], 'UpdateCertificateOptions' => [ 'name' => 'UpdateCertificateOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateCertificateOptionsRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'InvalidArnException', ], ], ], ], 'shapes' => [ 'AddTagsToCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateArn', 'Tags', ], 'members' => [ 'CertificateArn' => [ 'shape' => 'Arn', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'Arn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => 'arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=,.@-]+)*', ], 'CertificateBody' => [ 'type' => 'string', 'max' => 32768, 'min' => 1, 'pattern' => '-{5}BEGIN CERTIFICATE-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END CERTIFICATE-{5}(\\u000D?\\u000A)?', ], 'CertificateBodyBlob' => [ 'type' => 'blob', 'max' => 32768, 'min' => 1, ], 'CertificateChain' => [ 'type' => 'string', 'max' => 2097152, 'min' => 1, 'pattern' => '(-{5}BEGIN CERTIFICATE-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END CERTIFICATE-{5}\\u000D?\\u000A)*-{5}BEGIN CERTIFICATE-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END CERTIFICATE-{5}(\\u000D?\\u000A)?', ], 'CertificateChainBlob' => [ 'type' => 'blob', 'max' => 2097152, 'min' => 1, ], 'CertificateDetail' => [ 'type' => 'structure', 'members' => [ 'CertificateArn' => [ 'shape' => 'Arn', ], 'DomainName' => [ 'shape' => 'DomainNameString', ], 'SubjectAlternativeNames' => [ 'shape' => 'DomainList', ], 'DomainValidationOptions' => [ 'shape' => 'DomainValidationList', ], 'Serial' => [ 'shape' => 'String', ], 'Subject' => [ 'shape' => 'String', ], 'Issuer' => [ 'shape' => 'String', ], 'CreatedAt' => [ 'shape' => 'TStamp', ], 'IssuedAt' => [ 'shape' => 'TStamp', ], 'ImportedAt' => [ 'shape' => 'TStamp', ], 'Status' => [ 'shape' => 'CertificateStatus', ], 'RevokedAt' => [ 'shape' => 'TStamp', ], 'RevocationReason' => [ 'shape' => 'RevocationReason', ], 'NotBefore' => [ 'shape' => 'TStamp', ], 'NotAfter' => [ 'shape' => 'TStamp', ], 'KeyAlgorithm' => [ 'shape' => 'KeyAlgorithm', ], 'SignatureAlgorithm' => [ 'shape' => 'String', ], 'InUseBy' => [ 'shape' => 'InUseList', ], 'FailureReason' => [ 'shape' => 'FailureReason', ], 'Type' => [ 'shape' => 'CertificateType', ], 'RenewalSummary' => [ 'shape' => 'RenewalSummary', ], 'KeyUsages' => [ 'shape' => 'KeyUsageList', ], 'ExtendedKeyUsages' => [ 'shape' => 'ExtendedKeyUsageList', ], 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], 'RenewalEligibility' => [ 'shape' => 'RenewalEligibility', ], 'Options' => [ 'shape' => 'CertificateOptions', ], ], ], 'CertificateOptions' => [ 'type' => 'structure', 'members' => [ 'CertificateTransparencyLoggingPreference' => [ 'shape' => 'CertificateTransparencyLoggingPreference', ], ], ], 'CertificateStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING_VALIDATION', 'ISSUED', 'INACTIVE', 'EXPIRED', 'VALIDATION_TIMED_OUT', 'REVOKED', 'FAILED', ], ], 'CertificateStatuses' => [ 'type' => 'list', 'member' => [ 'shape' => 'CertificateStatus', ], ], 'CertificateSummary' => [ 'type' => 'structure', 'members' => [ 'CertificateArn' => [ 'shape' => 'Arn', ], 'DomainName' => [ 'shape' => 'DomainNameString', ], ], ], 'CertificateSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CertificateSummary', ], ], 'CertificateTransparencyLoggingPreference' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'CertificateType' => [ 'type' => 'string', 'enum' => [ 'IMPORTED', 'AMAZON_ISSUED', 'PRIVATE', ], ], 'DeleteCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateArn', ], 'members' => [ 'CertificateArn' => [ 'shape' => 'Arn', ], ], ], 'DescribeCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateArn', ], 'members' => [ 'CertificateArn' => [ 'shape' => 'Arn', ], ], ], 'DescribeCertificateResponse' => [ 'type' => 'structure', 'members' => [ 'Certificate' => [ 'shape' => 'CertificateDetail', ], ], ], 'DomainList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DomainNameString', ], 'max' => 100, 'min' => 1, ], 'DomainNameString' => [ 'type' => 'string', 'max' => 253, 'min' => 1, 'pattern' => '^(\\*\\.)?(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])$', ], 'DomainStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING_VALIDATION', 'SUCCESS', 'FAILED', ], ], 'DomainValidation' => [ 'type' => 'structure', 'required' => [ 'DomainName', ], 'members' => [ 'DomainName' => [ 'shape' => 'DomainNameString', ], 'ValidationEmails' => [ 'shape' => 'ValidationEmailList', ], 'ValidationDomain' => [ 'shape' => 'DomainNameString', ], 'ValidationStatus' => [ 'shape' => 'DomainStatus', ], 'ResourceRecord' => [ 'shape' => 'ResourceRecord', ], 'ValidationMethod' => [ 'shape' => 'ValidationMethod', ], ], ], 'DomainValidationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DomainValidation', ], 'max' => 1000, 'min' => 1, ], 'DomainValidationOption' => [ 'type' => 'structure', 'required' => [ 'DomainName', 'ValidationDomain', ], 'members' => [ 'DomainName' => [ 'shape' => 'DomainNameString', ], 'ValidationDomain' => [ 'shape' => 'DomainNameString', ], ], ], 'DomainValidationOptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DomainValidationOption', ], 'max' => 100, 'min' => 1, ], 'ExportCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateArn', 'Passphrase', ], 'members' => [ 'CertificateArn' => [ 'shape' => 'Arn', ], 'Passphrase' => [ 'shape' => 'PassphraseBlob', ], ], ], 'ExportCertificateResponse' => [ 'type' => 'structure', 'members' => [ 'Certificate' => [ 'shape' => 'CertificateBody', ], 'CertificateChain' => [ 'shape' => 'CertificateChain', ], 'PrivateKey' => [ 'shape' => 'PrivateKey', ], ], ], 'ExtendedKeyUsage' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'ExtendedKeyUsageName', ], 'OID' => [ 'shape' => 'String', ], ], ], 'ExtendedKeyUsageFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExtendedKeyUsageName', ], ], 'ExtendedKeyUsageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExtendedKeyUsage', ], ], 'ExtendedKeyUsageName' => [ 'type' => 'string', 'enum' => [ 'TLS_WEB_SERVER_AUTHENTICATION', 'TLS_WEB_CLIENT_AUTHENTICATION', 'CODE_SIGNING', 'EMAIL_PROTECTION', 'TIME_STAMPING', 'OCSP_SIGNING', 'IPSEC_END_SYSTEM', 'IPSEC_TUNNEL', 'IPSEC_USER', 'ANY', 'NONE', 'CUSTOM', ], ], 'FailureReason' => [ 'type' => 'string', 'enum' => [ 'NO_AVAILABLE_CONTACTS', 'ADDITIONAL_VERIFICATION_REQUIRED', 'DOMAIN_NOT_ALLOWED', 'INVALID_PUBLIC_DOMAIN', 'DOMAIN_VALIDATION_DENIED', 'CAA_ERROR', 'PCA_LIMIT_EXCEEDED', 'PCA_INVALID_ARN', 'PCA_INVALID_STATE', 'PCA_REQUEST_FAILED', 'PCA_RESOURCE_NOT_FOUND', 'PCA_INVALID_ARGS', 'PCA_INVALID_DURATION', 'PCA_ACCESS_DENIED', 'OTHER', ], ], 'Filters' => [ 'type' => 'structure', 'members' => [ 'extendedKeyUsage' => [ 'shape' => 'ExtendedKeyUsageFilterList', ], 'keyUsage' => [ 'shape' => 'KeyUsageFilterList', ], 'keyTypes' => [ 'shape' => 'KeyAlgorithmList', ], ], ], 'GetCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateArn', ], 'members' => [ 'CertificateArn' => [ 'shape' => 'Arn', ], ], ], 'GetCertificateResponse' => [ 'type' => 'structure', 'members' => [ 'Certificate' => [ 'shape' => 'CertificateBody', ], 'CertificateChain' => [ 'shape' => 'CertificateChain', ], ], ], 'IdempotencyToken' => [ 'type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '\\w+', ], 'ImportCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'Certificate', 'PrivateKey', ], 'members' => [ 'CertificateArn' => [ 'shape' => 'Arn', ], 'Certificate' => [ 'shape' => 'CertificateBodyBlob', ], 'PrivateKey' => [ 'shape' => 'PrivateKeyBlob', ], 'CertificateChain' => [ 'shape' => 'CertificateChainBlob', ], ], ], 'ImportCertificateResponse' => [ 'type' => 'structure', 'members' => [ 'CertificateArn' => [ 'shape' => 'Arn', ], ], ], 'InUseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'InvalidArgsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidArnException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidDomainValidationOptionsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidStateException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidTagException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'KeyAlgorithm' => [ 'type' => 'string', 'enum' => [ 'RSA_2048', 'RSA_1024', 'RSA_4096', 'EC_prime256v1', 'EC_secp384r1', 'EC_secp521r1', ], ], 'KeyAlgorithmList' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyAlgorithm', ], ], 'KeyUsage' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'KeyUsageName', ], ], ], 'KeyUsageFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyUsageName', ], ], 'KeyUsageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyUsage', ], ], 'KeyUsageName' => [ 'type' => 'string', 'enum' => [ 'DIGITAL_SIGNATURE', 'NON_REPUDIATION', 'KEY_ENCIPHERMENT', 'DATA_ENCIPHERMENT', 'KEY_AGREEMENT', 'CERTIFICATE_SIGNING', 'CRL_SIGNING', 'ENCIPHER_ONLY', 'DECIPHER_ONLY', 'ANY', 'CUSTOM', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ListCertificatesRequest' => [ 'type' => 'structure', 'members' => [ 'CertificateStatuses' => [ 'shape' => 'CertificateStatuses', ], 'Includes' => [ 'shape' => 'Filters', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxItems' => [ 'shape' => 'MaxItems', ], ], ], 'ListCertificatesResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'CertificateSummaryList' => [ 'shape' => 'CertificateSummaryList', ], ], ], 'ListTagsForCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateArn', ], 'members' => [ 'CertificateArn' => [ 'shape' => 'Arn', ], ], ], 'ListTagsForCertificateResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], ], ], 'MaxItems' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'NextToken' => [ 'type' => 'string', 'max' => 320, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]*', ], 'PassphraseBlob' => [ 'type' => 'blob', 'max' => 128, 'min' => 4, 'sensitive' => true, ], 'PrivateKey' => [ 'type' => 'string', 'max' => 524288, 'min' => 1, 'pattern' => '-{5}BEGIN PRIVATE KEY-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END PRIVATE KEY-{5}(\\u000D?\\u000A)?', 'sensitive' => true, ], 'PrivateKeyBlob' => [ 'type' => 'blob', 'max' => 524288, 'min' => 1, 'sensitive' => true, ], 'RecordType' => [ 'type' => 'string', 'enum' => [ 'CNAME', ], ], 'RemoveTagsFromCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateArn', 'Tags', ], 'members' => [ 'CertificateArn' => [ 'shape' => 'Arn', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'RenewCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateArn', ], 'members' => [ 'CertificateArn' => [ 'shape' => 'Arn', ], ], ], 'RenewalEligibility' => [ 'type' => 'string', 'enum' => [ 'ELIGIBLE', 'INELIGIBLE', ], ], 'RenewalStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING_AUTO_RENEWAL', 'PENDING_VALIDATION', 'SUCCESS', 'FAILED', ], ], 'RenewalSummary' => [ 'type' => 'structure', 'required' => [ 'RenewalStatus', 'DomainValidationOptions', 'UpdatedAt', ], 'members' => [ 'RenewalStatus' => [ 'shape' => 'RenewalStatus', ], 'DomainValidationOptions' => [ 'shape' => 'DomainValidationList', ], 'RenewalStatusReason' => [ 'shape' => 'FailureReason', ], 'UpdatedAt' => [ 'shape' => 'TStamp', ], ], ], 'RequestCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'DomainName', ], 'members' => [ 'DomainName' => [ 'shape' => 'DomainNameString', ], 'ValidationMethod' => [ 'shape' => 'ValidationMethod', ], 'SubjectAlternativeNames' => [ 'shape' => 'DomainList', ], 'IdempotencyToken' => [ 'shape' => 'IdempotencyToken', ], 'DomainValidationOptions' => [ 'shape' => 'DomainValidationOptionList', ], 'Options' => [ 'shape' => 'CertificateOptions', ], 'CertificateAuthorityArn' => [ 'shape' => 'Arn', ], ], ], 'RequestCertificateResponse' => [ 'type' => 'structure', 'members' => [ 'CertificateArn' => [ 'shape' => 'Arn', ], ], ], 'RequestInProgressException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResendValidationEmailRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateArn', 'Domain', 'ValidationDomain', ], 'members' => [ 'CertificateArn' => [ 'shape' => 'Arn', ], 'Domain' => [ 'shape' => 'DomainNameString', ], 'ValidationDomain' => [ 'shape' => 'DomainNameString', ], ], ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResourceRecord' => [ 'type' => 'structure', 'required' => [ 'Name', 'Type', 'Value', ], 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Type' => [ 'shape' => 'RecordType', ], 'Value' => [ 'shape' => 'String', ], ], ], 'RevocationReason' => [ 'type' => 'string', 'enum' => [ 'UNSPECIFIED', 'KEY_COMPROMISE', 'CA_COMPROMISE', 'AFFILIATION_CHANGED', 'SUPERCEDED', 'CESSATION_OF_OPERATION', 'CERTIFICATE_HOLD', 'REMOVE_FROM_CRL', 'PRIVILEGE_WITHDRAWN', 'A_A_COMPROMISE', ], ], 'String' => [ 'type' => 'string', ], 'TStamp' => [ 'type' => 'timestamp', ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]*', ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 50, 'min' => 1, ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]*', ], 'TooManyTagsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'UpdateCertificateOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateArn', 'Options', ], 'members' => [ 'CertificateArn' => [ 'shape' => 'Arn', ], 'Options' => [ 'shape' => 'CertificateOptions', ], ], ], 'ValidationEmailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ValidationMethod' => [ 'type' => 'string', 'enum' => [ 'EMAIL', 'DNS', ], ], ],]; diff --git a/lib/aws/Aws/data/acm/2015-12-08/paginators-1.json.php b/lib/aws/Aws/data/acm/2015-12-08/paginators-1.json.php new file mode 100644 index 0000000..e23886d --- /dev/null +++ b/lib/aws/Aws/data/acm/2015-12-08/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/acm/2015-12-08/paginators-1.json +return [ 'pagination' => [ 'ListCertificates' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxItems', 'output_token' => 'NextToken', 'result_key' => 'CertificateSummaryList', ], ],]; diff --git a/lib/aws/Aws/data/acm/2015-12-08/smoke.json.php b/lib/aws/Aws/data/acm/2015-12-08/smoke.json.php new file mode 100644 index 0000000..6db2ea9 --- /dev/null +++ b/lib/aws/Aws/data/acm/2015-12-08/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/acm/2015-12-08/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListCertificates', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'GetCertificate', 'input' => [ 'CertificateArn' => 'arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/acm/2015-12-08/waiters-2.json.php b/lib/aws/Aws/data/acm/2015-12-08/waiters-2.json.php new file mode 100644 index 0000000..1c8a500 --- /dev/null +++ b/lib/aws/Aws/data/acm/2015-12-08/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/acm/2015-12-08/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'CertificateValidated' => [ 'delay' => 60, 'maxAttempts' => 40, 'operation' => 'DescribeCertificate', 'acceptors' => [ [ 'matcher' => 'pathAll', 'expected' => 'SUCCESS', 'argument' => 'Certificate.DomainValidationOptions[].ValidationStatus', 'state' => 'success', ], [ 'matcher' => 'pathAny', 'expected' => 'PENDING_VALIDATION', 'argument' => 'Certificate.DomainValidationOptions[].ValidationStatus', 'state' => 'retry', ], [ 'matcher' => 'path', 'expected' => 'FAILED', 'argument' => 'Certificate.Status', 'state' => 'failure', ], [ 'matcher' => 'error', 'expected' => 'ResourceNotFoundException', 'state' => 'failure', ], ], ], ],]; diff --git a/lib/aws/Aws/data/alexaforbusiness/2017-11-09/api-2.json.php b/lib/aws/Aws/data/alexaforbusiness/2017-11-09/api-2.json.php new file mode 100644 index 0000000..489cccc --- /dev/null +++ b/lib/aws/Aws/data/alexaforbusiness/2017-11-09/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/alexaforbusiness/2017-11-09/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-11-09', 'endpointPrefix' => 'a4b', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Alexa For Business', 'serviceId' => 'Alexa For Business', 'signatureVersion' => 'v4', 'targetPrefix' => 'AlexaForBusiness', 'uid' => 'alexaforbusiness-2017-11-09', ], 'operations' => [ 'ApproveSkill' => [ 'name' => 'ApproveSkill', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ApproveSkillRequest', ], 'output' => [ 'shape' => 'ApproveSkillResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'AssociateContactWithAddressBook' => [ 'name' => 'AssociateContactWithAddressBook', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateContactWithAddressBookRequest', ], 'output' => [ 'shape' => 'AssociateContactWithAddressBookResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], ], ], 'AssociateDeviceWithRoom' => [ 'name' => 'AssociateDeviceWithRoom', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateDeviceWithRoomRequest', ], 'output' => [ 'shape' => 'AssociateDeviceWithRoomResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'DeviceNotRegisteredException', ], ], ], 'AssociateSkillGroupWithRoom' => [ 'name' => 'AssociateSkillGroupWithRoom', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateSkillGroupWithRoomRequest', ], 'output' => [ 'shape' => 'AssociateSkillGroupWithRoomResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], ], ], 'AssociateSkillWithSkillGroup' => [ 'name' => 'AssociateSkillWithSkillGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateSkillWithSkillGroupRequest', ], 'output' => [ 'shape' => 'AssociateSkillWithSkillGroupResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'SkillNotLinkedException', ], ], ], 'AssociateSkillWithUsers' => [ 'name' => 'AssociateSkillWithUsers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateSkillWithUsersRequest', ], 'output' => [ 'shape' => 'AssociateSkillWithUsersResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], ], ], 'CreateAddressBook' => [ 'name' => 'CreateAddressBook', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAddressBookRequest', ], 'output' => [ 'shape' => 'CreateAddressBookResponse', ], 'errors' => [ [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateBusinessReportSchedule' => [ 'name' => 'CreateBusinessReportSchedule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateBusinessReportScheduleRequest', ], 'output' => [ 'shape' => 'CreateBusinessReportScheduleResponse', ], 'errors' => [ [ 'shape' => 'AlreadyExistsException', ], ], ], 'CreateConferenceProvider' => [ 'name' => 'CreateConferenceProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateConferenceProviderRequest', ], 'output' => [ 'shape' => 'CreateConferenceProviderResponse', ], 'errors' => [ [ 'shape' => 'AlreadyExistsException', ], ], ], 'CreateContact' => [ 'name' => 'CreateContact', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateContactRequest', ], 'output' => [ 'shape' => 'CreateContactResponse', ], 'errors' => [ [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateProfile' => [ 'name' => 'CreateProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateProfileRequest', ], 'output' => [ 'shape' => 'CreateProfileResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'CreateRoom' => [ 'name' => 'CreateRoom', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRoomRequest', ], 'output' => [ 'shape' => 'CreateRoomResponse', ], 'errors' => [ [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateSkillGroup' => [ 'name' => 'CreateSkillGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSkillGroupRequest', ], 'output' => [ 'shape' => 'CreateSkillGroupResponse', ], 'errors' => [ [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'CreateUser' => [ 'name' => 'CreateUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateUserRequest', ], 'output' => [ 'shape' => 'CreateUserResponse', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'DeleteAddressBook' => [ 'name' => 'DeleteAddressBook', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAddressBookRequest', ], 'output' => [ 'shape' => 'DeleteAddressBookResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'DeleteBusinessReportSchedule' => [ 'name' => 'DeleteBusinessReportSchedule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteBusinessReportScheduleRequest', ], 'output' => [ 'shape' => 'DeleteBusinessReportScheduleResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'DeleteConferenceProvider' => [ 'name' => 'DeleteConferenceProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteConferenceProviderRequest', ], 'output' => [ 'shape' => 'DeleteConferenceProviderResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'DeleteContact' => [ 'name' => 'DeleteContact', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteContactRequest', ], 'output' => [ 'shape' => 'DeleteContactResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'DeleteDevice' => [ 'name' => 'DeleteDevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDeviceRequest', ], 'output' => [ 'shape' => 'DeleteDeviceResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidCertificateAuthorityException', ], ], ], 'DeleteProfile' => [ 'name' => 'DeleteProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteProfileRequest', ], 'output' => [ 'shape' => 'DeleteProfileResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'DeleteRoom' => [ 'name' => 'DeleteRoom', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRoomRequest', ], 'output' => [ 'shape' => 'DeleteRoomResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'DeleteRoomSkillParameter' => [ 'name' => 'DeleteRoomSkillParameter', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRoomSkillParameterRequest', ], 'output' => [ 'shape' => 'DeleteRoomSkillParameterResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], ], ], 'DeleteSkillAuthorization' => [ 'name' => 'DeleteSkillAuthorization', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSkillAuthorizationRequest', ], 'output' => [ 'shape' => 'DeleteSkillAuthorizationResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'DeleteSkillGroup' => [ 'name' => 'DeleteSkillGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSkillGroupRequest', ], 'output' => [ 'shape' => 'DeleteSkillGroupResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'DeleteUser' => [ 'name' => 'DeleteUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteUserRequest', ], 'output' => [ 'shape' => 'DeleteUserResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'DisassociateContactFromAddressBook' => [ 'name' => 'DisassociateContactFromAddressBook', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateContactFromAddressBookRequest', ], 'output' => [ 'shape' => 'DisassociateContactFromAddressBookResponse', ], ], 'DisassociateDeviceFromRoom' => [ 'name' => 'DisassociateDeviceFromRoom', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateDeviceFromRoomRequest', ], 'output' => [ 'shape' => 'DisassociateDeviceFromRoomResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'DeviceNotRegisteredException', ], ], ], 'DisassociateSkillFromSkillGroup' => [ 'name' => 'DisassociateSkillFromSkillGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateSkillFromSkillGroupRequest', ], 'output' => [ 'shape' => 'DisassociateSkillFromSkillGroupResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], ], ], 'DisassociateSkillFromUsers' => [ 'name' => 'DisassociateSkillFromUsers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateSkillFromUsersRequest', ], 'output' => [ 'shape' => 'DisassociateSkillFromUsersResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], ], ], 'DisassociateSkillGroupFromRoom' => [ 'name' => 'DisassociateSkillGroupFromRoom', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateSkillGroupFromRoomRequest', ], 'output' => [ 'shape' => 'DisassociateSkillGroupFromRoomResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], ], ], 'ForgetSmartHomeAppliances' => [ 'name' => 'ForgetSmartHomeAppliances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ForgetSmartHomeAppliancesRequest', ], 'output' => [ 'shape' => 'ForgetSmartHomeAppliancesResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'GetAddressBook' => [ 'name' => 'GetAddressBook', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAddressBookRequest', ], 'output' => [ 'shape' => 'GetAddressBookResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'GetConferencePreference' => [ 'name' => 'GetConferencePreference', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetConferencePreferenceRequest', ], 'output' => [ 'shape' => 'GetConferencePreferenceResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'GetConferenceProvider' => [ 'name' => 'GetConferenceProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetConferenceProviderRequest', ], 'output' => [ 'shape' => 'GetConferenceProviderResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'GetContact' => [ 'name' => 'GetContact', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetContactRequest', ], 'output' => [ 'shape' => 'GetContactResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'GetDevice' => [ 'name' => 'GetDevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDeviceRequest', ], 'output' => [ 'shape' => 'GetDeviceResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'GetInvitationConfiguration' => [ 'name' => 'GetInvitationConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInvitationConfigurationRequest', ], 'output' => [ 'shape' => 'GetInvitationConfigurationResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'GetProfile' => [ 'name' => 'GetProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetProfileRequest', ], 'output' => [ 'shape' => 'GetProfileResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'GetRoom' => [ 'name' => 'GetRoom', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRoomRequest', ], 'output' => [ 'shape' => 'GetRoomResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'GetRoomSkillParameter' => [ 'name' => 'GetRoomSkillParameter', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRoomSkillParameterRequest', ], 'output' => [ 'shape' => 'GetRoomSkillParameterResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'GetSkillGroup' => [ 'name' => 'GetSkillGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSkillGroupRequest', ], 'output' => [ 'shape' => 'GetSkillGroupResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'ListBusinessReportSchedules' => [ 'name' => 'ListBusinessReportSchedules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListBusinessReportSchedulesRequest', ], 'output' => [ 'shape' => 'ListBusinessReportSchedulesResponse', ], ], 'ListConferenceProviders' => [ 'name' => 'ListConferenceProviders', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListConferenceProvidersRequest', ], 'output' => [ 'shape' => 'ListConferenceProvidersResponse', ], ], 'ListDeviceEvents' => [ 'name' => 'ListDeviceEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDeviceEventsRequest', ], 'output' => [ 'shape' => 'ListDeviceEventsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'ListSkills' => [ 'name' => 'ListSkills', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSkillsRequest', ], 'output' => [ 'shape' => 'ListSkillsResponse', ], ], 'ListSkillsStoreCategories' => [ 'name' => 'ListSkillsStoreCategories', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSkillsStoreCategoriesRequest', ], 'output' => [ 'shape' => 'ListSkillsStoreCategoriesResponse', ], ], 'ListSkillsStoreSkillsByCategory' => [ 'name' => 'ListSkillsStoreSkillsByCategory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSkillsStoreSkillsByCategoryRequest', ], 'output' => [ 'shape' => 'ListSkillsStoreSkillsByCategoryResponse', ], ], 'ListSmartHomeAppliances' => [ 'name' => 'ListSmartHomeAppliances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSmartHomeAppliancesRequest', ], 'output' => [ 'shape' => 'ListSmartHomeAppliancesResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'ListTags' => [ 'name' => 'ListTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsRequest', ], 'output' => [ 'shape' => 'ListTagsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'PutConferencePreference' => [ 'name' => 'PutConferencePreference', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutConferencePreferenceRequest', ], 'output' => [ 'shape' => 'PutConferencePreferenceResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'PutInvitationConfiguration' => [ 'name' => 'PutInvitationConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutInvitationConfigurationRequest', ], 'output' => [ 'shape' => 'PutInvitationConfigurationResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'PutRoomSkillParameter' => [ 'name' => 'PutRoomSkillParameter', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutRoomSkillParameterRequest', ], 'output' => [ 'shape' => 'PutRoomSkillParameterResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], ], ], 'PutSkillAuthorization' => [ 'name' => 'PutSkillAuthorization', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutSkillAuthorizationRequest', ], 'output' => [ 'shape' => 'PutSkillAuthorizationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'RegisterAVSDevice' => [ 'name' => 'RegisterAVSDevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterAVSDeviceRequest', ], 'output' => [ 'shape' => 'RegisterAVSDeviceResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidDeviceException', ], ], ], 'RejectSkill' => [ 'name' => 'RejectSkill', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectSkillRequest', ], 'output' => [ 'shape' => 'RejectSkillResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], ], ], 'ResolveRoom' => [ 'name' => 'ResolveRoom', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResolveRoomRequest', ], 'output' => [ 'shape' => 'ResolveRoomResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'RevokeInvitation' => [ 'name' => 'RevokeInvitation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RevokeInvitationRequest', ], 'output' => [ 'shape' => 'RevokeInvitationResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'SearchAddressBooks' => [ 'name' => 'SearchAddressBooks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchAddressBooksRequest', ], 'output' => [ 'shape' => 'SearchAddressBooksResponse', ], ], 'SearchContacts' => [ 'name' => 'SearchContacts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchContactsRequest', ], 'output' => [ 'shape' => 'SearchContactsResponse', ], ], 'SearchDevices' => [ 'name' => 'SearchDevices', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchDevicesRequest', ], 'output' => [ 'shape' => 'SearchDevicesResponse', ], ], 'SearchProfiles' => [ 'name' => 'SearchProfiles', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchProfilesRequest', ], 'output' => [ 'shape' => 'SearchProfilesResponse', ], ], 'SearchRooms' => [ 'name' => 'SearchRooms', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchRoomsRequest', ], 'output' => [ 'shape' => 'SearchRoomsResponse', ], ], 'SearchSkillGroups' => [ 'name' => 'SearchSkillGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchSkillGroupsRequest', ], 'output' => [ 'shape' => 'SearchSkillGroupsResponse', ], ], 'SearchUsers' => [ 'name' => 'SearchUsers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchUsersRequest', ], 'output' => [ 'shape' => 'SearchUsersResponse', ], ], 'SendInvitation' => [ 'name' => 'SendInvitation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SendInvitationRequest', ], 'output' => [ 'shape' => 'SendInvitationResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidUserStatusException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'StartDeviceSync' => [ 'name' => 'StartDeviceSync', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartDeviceSyncRequest', ], 'output' => [ 'shape' => 'StartDeviceSyncResponse', ], 'errors' => [ [ 'shape' => 'DeviceNotRegisteredException', ], ], ], 'StartSmartHomeApplianceDiscovery' => [ 'name' => 'StartSmartHomeApplianceDiscovery', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartSmartHomeApplianceDiscoveryRequest', ], 'output' => [ 'shape' => 'StartSmartHomeApplianceDiscoveryResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'UpdateAddressBook' => [ 'name' => 'UpdateAddressBook', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateAddressBookRequest', ], 'output' => [ 'shape' => 'UpdateAddressBookResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'NameInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'UpdateBusinessReportSchedule' => [ 'name' => 'UpdateBusinessReportSchedule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateBusinessReportScheduleRequest', ], 'output' => [ 'shape' => 'UpdateBusinessReportScheduleResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'UpdateConferenceProvider' => [ 'name' => 'UpdateConferenceProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateConferenceProviderRequest', ], 'output' => [ 'shape' => 'UpdateConferenceProviderResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], ], ], 'UpdateContact' => [ 'name' => 'UpdateContact', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateContactRequest', ], 'output' => [ 'shape' => 'UpdateContactResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'UpdateDevice' => [ 'name' => 'UpdateDevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateDeviceRequest', ], 'output' => [ 'shape' => 'UpdateDeviceResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'DeviceNotRegisteredException', ], ], ], 'UpdateProfile' => [ 'name' => 'UpdateProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateProfileRequest', ], 'output' => [ 'shape' => 'UpdateProfileResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'NameInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'UpdateRoom' => [ 'name' => 'UpdateRoom', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRoomRequest', ], 'output' => [ 'shape' => 'UpdateRoomResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'NameInUseException', ], ], ], 'UpdateSkillGroup' => [ 'name' => 'UpdateSkillGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSkillGroupRequest', ], 'output' => [ 'shape' => 'UpdateSkillGroupResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'NameInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], ], 'shapes' => [ 'Address' => [ 'type' => 'string', 'max' => 500, 'min' => 1, ], 'AddressBook' => [ 'type' => 'structure', 'members' => [ 'AddressBookArn' => [ 'shape' => 'Arn', ], 'Name' => [ 'shape' => 'AddressBookName', ], 'Description' => [ 'shape' => 'AddressBookDescription', ], ], ], 'AddressBookData' => [ 'type' => 'structure', 'members' => [ 'AddressBookArn' => [ 'shape' => 'Arn', ], 'Name' => [ 'shape' => 'AddressBookName', ], 'Description' => [ 'shape' => 'AddressBookDescription', ], ], ], 'AddressBookDataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AddressBookData', ], ], 'AddressBookDescription' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*', ], 'AddressBookName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*', ], 'AlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'AmazonId' => [ 'type' => 'string', 'pattern' => '[a-zA-Z0-9]{1,18}', ], 'ApplianceDescription' => [ 'type' => 'string', ], 'ApplianceFriendlyName' => [ 'type' => 'string', ], 'ApplianceManufacturerName' => [ 'type' => 'string', ], 'ApproveSkillRequest' => [ 'type' => 'structure', 'required' => [ 'SkillId', ], 'members' => [ 'SkillId' => [ 'shape' => 'SkillId', ], ], ], 'ApproveSkillResponse' => [ 'type' => 'structure', 'members' => [], ], 'Arn' => [ 'type' => 'string', 'pattern' => 'arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}', ], 'AssociateContactWithAddressBookRequest' => [ 'type' => 'structure', 'required' => [ 'ContactArn', 'AddressBookArn', ], 'members' => [ 'ContactArn' => [ 'shape' => 'Arn', ], 'AddressBookArn' => [ 'shape' => 'Arn', ], ], ], 'AssociateContactWithAddressBookResponse' => [ 'type' => 'structure', 'members' => [], ], 'AssociateDeviceWithRoomRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceArn' => [ 'shape' => 'Arn', ], 'RoomArn' => [ 'shape' => 'Arn', ], ], ], 'AssociateDeviceWithRoomResponse' => [ 'type' => 'structure', 'members' => [], ], 'AssociateSkillGroupWithRoomRequest' => [ 'type' => 'structure', 'members' => [ 'SkillGroupArn' => [ 'shape' => 'Arn', ], 'RoomArn' => [ 'shape' => 'Arn', ], ], ], 'AssociateSkillGroupWithRoomResponse' => [ 'type' => 'structure', 'members' => [], ], 'AssociateSkillWithSkillGroupRequest' => [ 'type' => 'structure', 'required' => [ 'SkillId', ], 'members' => [ 'SkillGroupArn' => [ 'shape' => 'Arn', ], 'SkillId' => [ 'shape' => 'SkillId', ], ], ], 'AssociateSkillWithSkillGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'AssociateSkillWithUsersRequest' => [ 'type' => 'structure', 'required' => [ 'SkillId', ], 'members' => [ 'SkillId' => [ 'shape' => 'SkillId', ], ], ], 'AssociateSkillWithUsersResponse' => [ 'type' => 'structure', 'members' => [], ], 'AuthorizationResult' => [ 'type' => 'map', 'key' => [ 'shape' => 'Key', ], 'value' => [ 'shape' => 'Value', ], 'sensitive' => true, ], 'Boolean' => [ 'type' => 'boolean', ], 'BulletPoint' => [ 'type' => 'string', ], 'BulletPoints' => [ 'type' => 'list', 'member' => [ 'shape' => 'BulletPoint', ], ], 'BusinessReport' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'BusinessReportStatus', ], 'FailureCode' => [ 'shape' => 'BusinessReportFailureCode', ], 'S3Location' => [ 'shape' => 'BusinessReportS3Location', ], 'DeliveryTime' => [ 'shape' => 'Timestamp', ], 'DownloadUrl' => [ 'shape' => 'BusinessReportDownloadUrl', ], ], ], 'BusinessReportContentRange' => [ 'type' => 'structure', 'members' => [ 'Interval' => [ 'shape' => 'BusinessReportInterval', ], ], ], 'BusinessReportDownloadUrl' => [ 'type' => 'string', ], 'BusinessReportFailureCode' => [ 'type' => 'string', 'enum' => [ 'ACCESS_DENIED', 'NO_SUCH_BUCKET', 'INTERNAL_FAILURE', ], ], 'BusinessReportFormat' => [ 'type' => 'string', 'enum' => [ 'CSV', 'CSV_ZIP', ], ], 'BusinessReportInterval' => [ 'type' => 'string', 'enum' => [ 'ONE_DAY', 'ONE_WEEK', ], ], 'BusinessReportRecurrence' => [ 'type' => 'structure', 'members' => [ 'StartDate' => [ 'shape' => 'Date', ], ], ], 'BusinessReportS3Location' => [ 'type' => 'structure', 'members' => [ 'Path' => [ 'shape' => 'BusinessReportS3Path', ], 'BucketName' => [ 'shape' => 'CustomerS3BucketName', ], ], ], 'BusinessReportS3Path' => [ 'type' => 'string', ], 'BusinessReportSchedule' => [ 'type' => 'structure', 'members' => [ 'ScheduleArn' => [ 'shape' => 'Arn', ], 'ScheduleName' => [ 'shape' => 'BusinessReportScheduleName', ], 'S3BucketName' => [ 'shape' => 'CustomerS3BucketName', ], 'S3KeyPrefix' => [ 'shape' => 'S3KeyPrefix', ], 'Format' => [ 'shape' => 'BusinessReportFormat', ], 'ContentRange' => [ 'shape' => 'BusinessReportContentRange', ], 'Recurrence' => [ 'shape' => 'BusinessReportRecurrence', ], 'LastBusinessReport' => [ 'shape' => 'BusinessReport', ], ], ], 'BusinessReportScheduleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BusinessReportSchedule', ], ], 'BusinessReportScheduleName' => [ 'type' => 'string', 'max' => 64, 'min' => 0, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*', ], 'BusinessReportStatus' => [ 'type' => 'string', 'enum' => [ 'RUNNING', 'SUCCEEDED', 'FAILED', ], ], 'Category' => [ 'type' => 'structure', 'members' => [ 'CategoryId' => [ 'shape' => 'CategoryId', ], 'CategoryName' => [ 'shape' => 'CategoryName', ], ], ], 'CategoryId' => [ 'type' => 'long', 'min' => 1, ], 'CategoryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Category', ], ], 'CategoryName' => [ 'type' => 'string', ], 'ClientId' => [ 'type' => 'string', 'pattern' => '^\\S+{1,256}$', ], 'ClientRequestToken' => [ 'type' => 'string', 'max' => 150, 'min' => 10, 'pattern' => '[a-zA-Z0-9][a-zA-Z0-9_-]*', ], 'CommsProtocol' => [ 'type' => 'string', 'enum' => [ 'SIP', 'SIPS', 'H323', ], ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ConferencePreference' => [ 'type' => 'structure', 'members' => [ 'DefaultConferenceProviderArn' => [ 'shape' => 'Arn', ], ], ], 'ConferenceProvider' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'Name' => [ 'shape' => 'ConferenceProviderName', ], 'Type' => [ 'shape' => 'ConferenceProviderType', ], 'IPDialIn' => [ 'shape' => 'IPDialIn', ], 'PSTNDialIn' => [ 'shape' => 'PSTNDialIn', ], 'MeetingSetting' => [ 'shape' => 'MeetingSetting', ], ], ], 'ConferenceProviderName' => [ 'type' => 'string', 'max' => 50, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*', ], 'ConferenceProviderType' => [ 'type' => 'string', 'enum' => [ 'CHIME', 'BLUEJEANS', 'FUZE', 'GOOGLE_HANGOUTS', 'POLYCOM', 'RINGCENTRAL', 'SKYPE_FOR_BUSINESS', 'WEBEX', 'ZOOM', 'CUSTOM', ], ], 'ConferenceProvidersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConferenceProvider', ], ], 'ConnectionStatus' => [ 'type' => 'string', 'enum' => [ 'ONLINE', 'OFFLINE', ], ], 'Contact' => [ 'type' => 'structure', 'members' => [ 'ContactArn' => [ 'shape' => 'Arn', ], 'DisplayName' => [ 'shape' => 'ContactName', ], 'FirstName' => [ 'shape' => 'ContactName', ], 'LastName' => [ 'shape' => 'ContactName', ], 'PhoneNumber' => [ 'shape' => 'E164PhoneNumber', ], ], ], 'ContactData' => [ 'type' => 'structure', 'members' => [ 'ContactArn' => [ 'shape' => 'Arn', ], 'DisplayName' => [ 'shape' => 'ContactName', ], 'FirstName' => [ 'shape' => 'ContactName', ], 'LastName' => [ 'shape' => 'ContactName', ], 'PhoneNumber' => [ 'shape' => 'E164PhoneNumber', ], ], ], 'ContactDataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContactData', ], ], 'ContactName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*', ], 'CountryCode' => [ 'type' => 'string', 'pattern' => '\\d{1,3}', ], 'CreateAddressBookRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'AddressBookName', ], 'Description' => [ 'shape' => 'AddressBookDescription', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'CreateAddressBookResponse' => [ 'type' => 'structure', 'members' => [ 'AddressBookArn' => [ 'shape' => 'Arn', ], ], ], 'CreateBusinessReportScheduleRequest' => [ 'type' => 'structure', 'required' => [ 'Format', 'ContentRange', ], 'members' => [ 'ScheduleName' => [ 'shape' => 'BusinessReportScheduleName', ], 'S3BucketName' => [ 'shape' => 'CustomerS3BucketName', ], 'S3KeyPrefix' => [ 'shape' => 'S3KeyPrefix', ], 'Format' => [ 'shape' => 'BusinessReportFormat', ], 'ContentRange' => [ 'shape' => 'BusinessReportContentRange', ], 'Recurrence' => [ 'shape' => 'BusinessReportRecurrence', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'CreateBusinessReportScheduleResponse' => [ 'type' => 'structure', 'members' => [ 'ScheduleArn' => [ 'shape' => 'Arn', ], ], ], 'CreateConferenceProviderRequest' => [ 'type' => 'structure', 'required' => [ 'ConferenceProviderName', 'ConferenceProviderType', 'MeetingSetting', ], 'members' => [ 'ConferenceProviderName' => [ 'shape' => 'ConferenceProviderName', ], 'ConferenceProviderType' => [ 'shape' => 'ConferenceProviderType', ], 'IPDialIn' => [ 'shape' => 'IPDialIn', ], 'PSTNDialIn' => [ 'shape' => 'PSTNDialIn', ], 'MeetingSetting' => [ 'shape' => 'MeetingSetting', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'CreateConferenceProviderResponse' => [ 'type' => 'structure', 'members' => [ 'ConferenceProviderArn' => [ 'shape' => 'Arn', ], ], ], 'CreateContactRequest' => [ 'type' => 'structure', 'required' => [ 'FirstName', ], 'members' => [ 'DisplayName' => [ 'shape' => 'ContactName', ], 'FirstName' => [ 'shape' => 'ContactName', ], 'LastName' => [ 'shape' => 'ContactName', ], 'PhoneNumber' => [ 'shape' => 'E164PhoneNumber', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'CreateContactResponse' => [ 'type' => 'structure', 'members' => [ 'ContactArn' => [ 'shape' => 'Arn', ], ], ], 'CreateProfileRequest' => [ 'type' => 'structure', 'required' => [ 'ProfileName', 'Timezone', 'Address', 'DistanceUnit', 'TemperatureUnit', 'WakeWord', ], 'members' => [ 'ProfileName' => [ 'shape' => 'ProfileName', ], 'Timezone' => [ 'shape' => 'Timezone', ], 'Address' => [ 'shape' => 'Address', ], 'DistanceUnit' => [ 'shape' => 'DistanceUnit', ], 'TemperatureUnit' => [ 'shape' => 'TemperatureUnit', ], 'WakeWord' => [ 'shape' => 'WakeWord', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'SetupModeDisabled' => [ 'shape' => 'Boolean', ], 'MaxVolumeLimit' => [ 'shape' => 'MaxVolumeLimit', ], 'PSTNEnabled' => [ 'shape' => 'Boolean', ], ], ], 'CreateProfileResponse' => [ 'type' => 'structure', 'members' => [ 'ProfileArn' => [ 'shape' => 'Arn', ], ], ], 'CreateRoomRequest' => [ 'type' => 'structure', 'required' => [ 'RoomName', ], 'members' => [ 'RoomName' => [ 'shape' => 'RoomName', ], 'Description' => [ 'shape' => 'RoomDescription', ], 'ProfileArn' => [ 'shape' => 'Arn', ], 'ProviderCalendarId' => [ 'shape' => 'ProviderCalendarId', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateRoomResponse' => [ 'type' => 'structure', 'members' => [ 'RoomArn' => [ 'shape' => 'Arn', ], ], ], 'CreateSkillGroupRequest' => [ 'type' => 'structure', 'required' => [ 'SkillGroupName', ], 'members' => [ 'SkillGroupName' => [ 'shape' => 'SkillGroupName', ], 'Description' => [ 'shape' => 'SkillGroupDescription', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'CreateSkillGroupResponse' => [ 'type' => 'structure', 'members' => [ 'SkillGroupArn' => [ 'shape' => 'Arn', ], ], ], 'CreateUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserId', ], 'members' => [ 'UserId' => [ 'shape' => 'user_UserId', ], 'FirstName' => [ 'shape' => 'user_FirstName', ], 'LastName' => [ 'shape' => 'user_LastName', ], 'Email' => [ 'shape' => 'Email', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateUserResponse' => [ 'type' => 'structure', 'members' => [ 'UserArn' => [ 'shape' => 'Arn', ], ], ], 'CustomerS3BucketName' => [ 'type' => 'string', 'pattern' => '[a-z0-9-\\.]{3,63}', ], 'Date' => [ 'type' => 'string', 'pattern' => '^\\d{4}\\-(0?[1-9]|1[012])\\-(0?[1-9]|[12][0-9]|3[01])$', ], 'DeleteAddressBookRequest' => [ 'type' => 'structure', 'required' => [ 'AddressBookArn', ], 'members' => [ 'AddressBookArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteAddressBookResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteBusinessReportScheduleRequest' => [ 'type' => 'structure', 'required' => [ 'ScheduleArn', ], 'members' => [ 'ScheduleArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteBusinessReportScheduleResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteConferenceProviderRequest' => [ 'type' => 'structure', 'required' => [ 'ConferenceProviderArn', ], 'members' => [ 'ConferenceProviderArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteConferenceProviderResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteContactRequest' => [ 'type' => 'structure', 'required' => [ 'ContactArn', ], 'members' => [ 'ContactArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteContactResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'DeviceArn', ], 'members' => [ 'DeviceArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteDeviceResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteProfileRequest' => [ 'type' => 'structure', 'members' => [ 'ProfileArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteProfileResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteRoomRequest' => [ 'type' => 'structure', 'members' => [ 'RoomArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteRoomResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteRoomSkillParameterRequest' => [ 'type' => 'structure', 'required' => [ 'SkillId', 'ParameterKey', ], 'members' => [ 'RoomArn' => [ 'shape' => 'Arn', ], 'SkillId' => [ 'shape' => 'SkillId', ], 'ParameterKey' => [ 'shape' => 'RoomSkillParameterKey', ], ], ], 'DeleteRoomSkillParameterResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteSkillAuthorizationRequest' => [ 'type' => 'structure', 'required' => [ 'SkillId', ], 'members' => [ 'SkillId' => [ 'shape' => 'SkillId', ], 'RoomArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteSkillAuthorizationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteSkillGroupRequest' => [ 'type' => 'structure', 'members' => [ 'SkillGroupArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteSkillGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteUserRequest' => [ 'type' => 'structure', 'required' => [ 'EnrollmentId', ], 'members' => [ 'UserArn' => [ 'shape' => 'Arn', ], 'EnrollmentId' => [ 'shape' => 'EnrollmentId', ], ], ], 'DeleteUserResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeveloperInfo' => [ 'type' => 'structure', 'members' => [ 'DeveloperName' => [ 'shape' => 'DeveloperName', ], 'PrivacyPolicy' => [ 'shape' => 'PrivacyPolicy', ], 'Email' => [ 'shape' => 'Email', ], 'Url' => [ 'shape' => 'Url', ], ], ], 'DeveloperName' => [ 'type' => 'string', ], 'Device' => [ 'type' => 'structure', 'members' => [ 'DeviceArn' => [ 'shape' => 'Arn', ], 'DeviceSerialNumber' => [ 'shape' => 'DeviceSerialNumber', ], 'DeviceType' => [ 'shape' => 'DeviceType', ], 'DeviceName' => [ 'shape' => 'DeviceName', ], 'SoftwareVersion' => [ 'shape' => 'SoftwareVersion', ], 'MacAddress' => [ 'shape' => 'MacAddress', ], 'RoomArn' => [ 'shape' => 'Arn', ], 'DeviceStatus' => [ 'shape' => 'DeviceStatus', ], 'DeviceStatusInfo' => [ 'shape' => 'DeviceStatusInfo', ], ], ], 'DeviceData' => [ 'type' => 'structure', 'members' => [ 'DeviceArn' => [ 'shape' => 'Arn', ], 'DeviceSerialNumber' => [ 'shape' => 'DeviceSerialNumber', ], 'DeviceType' => [ 'shape' => 'DeviceType', ], 'DeviceName' => [ 'shape' => 'DeviceName', ], 'SoftwareVersion' => [ 'shape' => 'SoftwareVersion', ], 'MacAddress' => [ 'shape' => 'MacAddress', ], 'DeviceStatus' => [ 'shape' => 'DeviceStatus', ], 'RoomArn' => [ 'shape' => 'Arn', ], 'RoomName' => [ 'shape' => 'RoomName', ], 'DeviceStatusInfo' => [ 'shape' => 'DeviceStatusInfo', ], ], ], 'DeviceDataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeviceData', ], ], 'DeviceEvent' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'DeviceEventType', ], 'Value' => [ 'shape' => 'DeviceEventValue', ], 'Timestamp' => [ 'shape' => 'Timestamp', ], ], ], 'DeviceEventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeviceEvent', ], ], 'DeviceEventType' => [ 'type' => 'string', 'enum' => [ 'CONNECTION_STATUS', 'DEVICE_STATUS', ], ], 'DeviceEventValue' => [ 'type' => 'string', ], 'DeviceName' => [ 'type' => 'string', 'max' => 100, 'min' => 2, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*', ], 'DeviceNotRegisteredException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'DeviceSerialNumber' => [ 'type' => 'string', 'pattern' => '[a-zA-Z0-9]{1,200}', ], 'DeviceSerialNumberForAVS' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9]{1,50}$', ], 'DeviceStatus' => [ 'type' => 'string', 'enum' => [ 'READY', 'PENDING', 'WAS_OFFLINE', 'DEREGISTERED', ], ], 'DeviceStatusDetail' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'DeviceStatusDetailCode', ], ], ], 'DeviceStatusDetailCode' => [ 'type' => 'string', 'enum' => [ 'DEVICE_SOFTWARE_UPDATE_NEEDED', 'DEVICE_WAS_OFFLINE', ], ], 'DeviceStatusDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeviceStatusDetail', ], ], 'DeviceStatusInfo' => [ 'type' => 'structure', 'members' => [ 'DeviceStatusDetails' => [ 'shape' => 'DeviceStatusDetails', ], 'ConnectionStatus' => [ 'shape' => 'ConnectionStatus', ], ], ], 'DeviceType' => [ 'type' => 'string', 'pattern' => '[a-zA-Z0-9]{1,200}', ], 'DisassociateContactFromAddressBookRequest' => [ 'type' => 'structure', 'required' => [ 'ContactArn', 'AddressBookArn', ], 'members' => [ 'ContactArn' => [ 'shape' => 'Arn', ], 'AddressBookArn' => [ 'shape' => 'Arn', ], ], ], 'DisassociateContactFromAddressBookResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateDeviceFromRoomRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceArn' => [ 'shape' => 'Arn', ], ], ], 'DisassociateDeviceFromRoomResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateSkillFromSkillGroupRequest' => [ 'type' => 'structure', 'required' => [ 'SkillId', ], 'members' => [ 'SkillGroupArn' => [ 'shape' => 'Arn', ], 'SkillId' => [ 'shape' => 'SkillId', ], ], ], 'DisassociateSkillFromSkillGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateSkillFromUsersRequest' => [ 'type' => 'structure', 'required' => [ 'SkillId', ], 'members' => [ 'SkillId' => [ 'shape' => 'SkillId', ], ], ], 'DisassociateSkillFromUsersResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateSkillGroupFromRoomRequest' => [ 'type' => 'structure', 'members' => [ 'SkillGroupArn' => [ 'shape' => 'Arn', ], 'RoomArn' => [ 'shape' => 'Arn', ], ], ], 'DisassociateSkillGroupFromRoomResponse' => [ 'type' => 'structure', 'members' => [], ], 'DistanceUnit' => [ 'type' => 'string', 'enum' => [ 'METRIC', 'IMPERIAL', ], ], 'E164PhoneNumber' => [ 'type' => 'string', 'pattern' => '^\\+\\d{8,}$', 'sensitive' => true, ], 'Email' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '([0-9a-zA-Z]([+-.\\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9})', ], 'EnablementType' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'PENDING', ], ], 'EnablementTypeFilter' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'PENDING', ], ], 'EndUserLicenseAgreement' => [ 'type' => 'string', ], 'Endpoint' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'EnrollmentId' => [ 'type' => 'string', 'max' => 128, 'min' => 0, ], 'EnrollmentStatus' => [ 'type' => 'string', 'enum' => [ 'INITIALIZED', 'PENDING', 'REGISTERED', 'DISASSOCIATING', 'DEREGISTERING', ], ], 'ErrorMessage' => [ 'type' => 'string', ], 'Feature' => [ 'type' => 'string', 'enum' => [ 'BLUETOOTH', 'VOLUME', 'NOTIFICATIONS', 'LISTS', 'SKILLS', 'ALL', ], ], 'Features' => [ 'type' => 'list', 'member' => [ 'shape' => 'Feature', ], ], 'Filter' => [ 'type' => 'structure', 'required' => [ 'Key', 'Values', ], 'members' => [ 'Key' => [ 'shape' => 'FilterKey', ], 'Values' => [ 'shape' => 'FilterValueList', ], ], ], 'FilterKey' => [ 'type' => 'string', 'max' => 500, 'min' => 1, ], 'FilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Filter', ], 'max' => 25, ], 'FilterValue' => [ 'type' => 'string', 'max' => 500, 'min' => 1, ], 'FilterValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FilterValue', ], 'max' => 5, ], 'ForgetSmartHomeAppliancesRequest' => [ 'type' => 'structure', 'required' => [ 'RoomArn', ], 'members' => [ 'RoomArn' => [ 'shape' => 'Arn', ], ], ], 'ForgetSmartHomeAppliancesResponse' => [ 'type' => 'structure', 'members' => [], ], 'GenericKeyword' => [ 'type' => 'string', ], 'GenericKeywords' => [ 'type' => 'list', 'member' => [ 'shape' => 'GenericKeyword', ], ], 'GetAddressBookRequest' => [ 'type' => 'structure', 'required' => [ 'AddressBookArn', ], 'members' => [ 'AddressBookArn' => [ 'shape' => 'Arn', ], ], ], 'GetAddressBookResponse' => [ 'type' => 'structure', 'members' => [ 'AddressBook' => [ 'shape' => 'AddressBook', ], ], ], 'GetConferencePreferenceRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetConferencePreferenceResponse' => [ 'type' => 'structure', 'members' => [ 'Preference' => [ 'shape' => 'ConferencePreference', ], ], ], 'GetConferenceProviderRequest' => [ 'type' => 'structure', 'required' => [ 'ConferenceProviderArn', ], 'members' => [ 'ConferenceProviderArn' => [ 'shape' => 'Arn', ], ], ], 'GetConferenceProviderResponse' => [ 'type' => 'structure', 'members' => [ 'ConferenceProvider' => [ 'shape' => 'ConferenceProvider', ], ], ], 'GetContactRequest' => [ 'type' => 'structure', 'required' => [ 'ContactArn', ], 'members' => [ 'ContactArn' => [ 'shape' => 'Arn', ], ], ], 'GetContactResponse' => [ 'type' => 'structure', 'members' => [ 'Contact' => [ 'shape' => 'Contact', ], ], ], 'GetDeviceRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceArn' => [ 'shape' => 'Arn', ], ], ], 'GetDeviceResponse' => [ 'type' => 'structure', 'members' => [ 'Device' => [ 'shape' => 'Device', ], ], ], 'GetInvitationConfigurationRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetInvitationConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'OrganizationName' => [ 'shape' => 'OrganizationName', ], 'ContactEmail' => [ 'shape' => 'Email', ], 'PrivateSkillIds' => [ 'shape' => 'ShortSkillIdList', ], ], ], 'GetProfileRequest' => [ 'type' => 'structure', 'members' => [ 'ProfileArn' => [ 'shape' => 'Arn', ], ], ], 'GetProfileResponse' => [ 'type' => 'structure', 'members' => [ 'Profile' => [ 'shape' => 'Profile', ], ], ], 'GetRoomRequest' => [ 'type' => 'structure', 'members' => [ 'RoomArn' => [ 'shape' => 'Arn', ], ], ], 'GetRoomResponse' => [ 'type' => 'structure', 'members' => [ 'Room' => [ 'shape' => 'Room', ], ], ], 'GetRoomSkillParameterRequest' => [ 'type' => 'structure', 'required' => [ 'SkillId', 'ParameterKey', ], 'members' => [ 'RoomArn' => [ 'shape' => 'Arn', ], 'SkillId' => [ 'shape' => 'SkillId', ], 'ParameterKey' => [ 'shape' => 'RoomSkillParameterKey', ], ], ], 'GetRoomSkillParameterResponse' => [ 'type' => 'structure', 'members' => [ 'RoomSkillParameter' => [ 'shape' => 'RoomSkillParameter', ], ], ], 'GetSkillGroupRequest' => [ 'type' => 'structure', 'members' => [ 'SkillGroupArn' => [ 'shape' => 'Arn', ], ], ], 'GetSkillGroupResponse' => [ 'type' => 'structure', 'members' => [ 'SkillGroup' => [ 'shape' => 'SkillGroup', ], ], ], 'IPDialIn' => [ 'type' => 'structure', 'required' => [ 'Endpoint', 'CommsProtocol', ], 'members' => [ 'Endpoint' => [ 'shape' => 'Endpoint', ], 'CommsProtocol' => [ 'shape' => 'CommsProtocol', ], ], ], 'IconUrl' => [ 'type' => 'string', ], 'InvalidCertificateAuthorityException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidDeviceException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidUserStatusException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvocationPhrase' => [ 'type' => 'string', ], 'Key' => [ 'type' => 'string', 'min' => 1, ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ListBusinessReportSchedulesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListBusinessReportSchedulesResponse' => [ 'type' => 'structure', 'members' => [ 'BusinessReportSchedules' => [ 'shape' => 'BusinessReportScheduleList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListConferenceProvidersRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListConferenceProvidersResponse' => [ 'type' => 'structure', 'members' => [ 'ConferenceProviders' => [ 'shape' => 'ConferenceProvidersList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDeviceEventsRequest' => [ 'type' => 'structure', 'required' => [ 'DeviceArn', ], 'members' => [ 'DeviceArn' => [ 'shape' => 'Arn', ], 'EventType' => [ 'shape' => 'DeviceEventType', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListDeviceEventsResponse' => [ 'type' => 'structure', 'members' => [ 'DeviceEvents' => [ 'shape' => 'DeviceEventList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListSkillsRequest' => [ 'type' => 'structure', 'members' => [ 'SkillGroupArn' => [ 'shape' => 'Arn', ], 'EnablementType' => [ 'shape' => 'EnablementTypeFilter', ], 'SkillType' => [ 'shape' => 'SkillTypeFilter', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'SkillListMaxResults', ], ], ], 'ListSkillsResponse' => [ 'type' => 'structure', 'members' => [ 'SkillSummaries' => [ 'shape' => 'SkillSummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListSkillsStoreCategoriesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListSkillsStoreCategoriesResponse' => [ 'type' => 'structure', 'members' => [ 'CategoryList' => [ 'shape' => 'CategoryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListSkillsStoreSkillsByCategoryRequest' => [ 'type' => 'structure', 'required' => [ 'CategoryId', ], 'members' => [ 'CategoryId' => [ 'shape' => 'CategoryId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'SkillListMaxResults', ], ], ], 'ListSkillsStoreSkillsByCategoryResponse' => [ 'type' => 'structure', 'members' => [ 'SkillsStoreSkills' => [ 'shape' => 'SkillsStoreSkillList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListSmartHomeAppliancesRequest' => [ 'type' => 'structure', 'required' => [ 'RoomArn', ], 'members' => [ 'RoomArn' => [ 'shape' => 'Arn', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListSmartHomeAppliancesResponse' => [ 'type' => 'structure', 'members' => [ 'SmartHomeAppliances' => [ 'shape' => 'SmartHomeApplianceList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsRequest' => [ 'type' => 'structure', 'required' => [ 'Arn', ], 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListTagsResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'MacAddress' => [ 'type' => 'string', ], 'MaxResults' => [ 'type' => 'integer', 'max' => 50, 'min' => 1, ], 'MaxVolumeLimit' => [ 'type' => 'integer', ], 'MeetingSetting' => [ 'type' => 'structure', 'required' => [ 'RequirePin', ], 'members' => [ 'RequirePin' => [ 'shape' => 'RequirePin', ], ], ], 'NameInUseException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'NewInThisVersionBulletPoints' => [ 'type' => 'list', 'member' => [ 'shape' => 'BulletPoint', ], ], 'NextToken' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'OneClickIdDelay' => [ 'type' => 'string', 'max' => 2, 'min' => 1, ], 'OneClickPinDelay' => [ 'type' => 'string', 'max' => 2, 'min' => 1, ], 'OrganizationName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '([A-Za-z\\-\' 0-9._]|\\p{IsLetter})*', ], 'OutboundPhoneNumber' => [ 'type' => 'string', 'pattern' => '\\d{10}', ], 'PSTNDialIn' => [ 'type' => 'structure', 'required' => [ 'CountryCode', 'PhoneNumber', 'OneClickIdDelay', 'OneClickPinDelay', ], 'members' => [ 'CountryCode' => [ 'shape' => 'CountryCode', ], 'PhoneNumber' => [ 'shape' => 'OutboundPhoneNumber', ], 'OneClickIdDelay' => [ 'shape' => 'OneClickIdDelay', ], 'OneClickPinDelay' => [ 'shape' => 'OneClickPinDelay', ], ], ], 'PrivacyPolicy' => [ 'type' => 'string', ], 'ProductDescription' => [ 'type' => 'string', ], 'ProductId' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9_]{1,256}$', ], 'Profile' => [ 'type' => 'structure', 'members' => [ 'ProfileArn' => [ 'shape' => 'Arn', ], 'ProfileName' => [ 'shape' => 'ProfileName', ], 'IsDefault' => [ 'shape' => 'Boolean', ], 'Address' => [ 'shape' => 'Address', ], 'Timezone' => [ 'shape' => 'Timezone', ], 'DistanceUnit' => [ 'shape' => 'DistanceUnit', ], 'TemperatureUnit' => [ 'shape' => 'TemperatureUnit', ], 'WakeWord' => [ 'shape' => 'WakeWord', ], 'SetupModeDisabled' => [ 'shape' => 'Boolean', ], 'MaxVolumeLimit' => [ 'shape' => 'MaxVolumeLimit', ], 'PSTNEnabled' => [ 'shape' => 'Boolean', ], 'AddressBookArn' => [ 'shape' => 'Arn', ], ], ], 'ProfileData' => [ 'type' => 'structure', 'members' => [ 'ProfileArn' => [ 'shape' => 'Arn', ], 'ProfileName' => [ 'shape' => 'ProfileName', ], 'IsDefault' => [ 'shape' => 'Boolean', ], 'Address' => [ 'shape' => 'Address', ], 'Timezone' => [ 'shape' => 'Timezone', ], 'DistanceUnit' => [ 'shape' => 'DistanceUnit', ], 'TemperatureUnit' => [ 'shape' => 'TemperatureUnit', ], 'WakeWord' => [ 'shape' => 'WakeWord', ], ], ], 'ProfileDataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProfileData', ], ], 'ProfileName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*', ], 'ProviderCalendarId' => [ 'type' => 'string', 'max' => 100, 'min' => 0, ], 'PutConferencePreferenceRequest' => [ 'type' => 'structure', 'required' => [ 'ConferencePreference', ], 'members' => [ 'ConferencePreference' => [ 'shape' => 'ConferencePreference', ], ], ], 'PutConferencePreferenceResponse' => [ 'type' => 'structure', 'members' => [], ], 'PutInvitationConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationName', ], 'members' => [ 'OrganizationName' => [ 'shape' => 'OrganizationName', ], 'ContactEmail' => [ 'shape' => 'Email', ], 'PrivateSkillIds' => [ 'shape' => 'ShortSkillIdList', ], ], ], 'PutInvitationConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'PutRoomSkillParameterRequest' => [ 'type' => 'structure', 'required' => [ 'SkillId', 'RoomSkillParameter', ], 'members' => [ 'RoomArn' => [ 'shape' => 'Arn', ], 'SkillId' => [ 'shape' => 'SkillId', ], 'RoomSkillParameter' => [ 'shape' => 'RoomSkillParameter', ], ], ], 'PutRoomSkillParameterResponse' => [ 'type' => 'structure', 'members' => [], ], 'PutSkillAuthorizationRequest' => [ 'type' => 'structure', 'required' => [ 'AuthorizationResult', 'SkillId', ], 'members' => [ 'AuthorizationResult' => [ 'shape' => 'AuthorizationResult', ], 'SkillId' => [ 'shape' => 'SkillId', ], 'RoomArn' => [ 'shape' => 'Arn', ], ], ], 'PutSkillAuthorizationResponse' => [ 'type' => 'structure', 'members' => [], ], 'RegisterAVSDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'ClientId', 'UserCode', 'ProductId', 'DeviceSerialNumber', 'AmazonId', ], 'members' => [ 'ClientId' => [ 'shape' => 'ClientId', ], 'UserCode' => [ 'shape' => 'UserCode', ], 'ProductId' => [ 'shape' => 'ProductId', ], 'DeviceSerialNumber' => [ 'shape' => 'DeviceSerialNumberForAVS', ], 'AmazonId' => [ 'shape' => 'AmazonId', ], ], ], 'RegisterAVSDeviceResponse' => [ 'type' => 'structure', 'members' => [ 'DeviceArn' => [ 'shape' => 'Arn', ], ], ], 'RejectSkillRequest' => [ 'type' => 'structure', 'required' => [ 'SkillId', ], 'members' => [ 'SkillId' => [ 'shape' => 'SkillId', ], ], ], 'RejectSkillResponse' => [ 'type' => 'structure', 'members' => [], ], 'ReleaseDate' => [ 'type' => 'string', ], 'RequirePin' => [ 'type' => 'string', 'enum' => [ 'YES', 'NO', 'OPTIONAL', ], ], 'ResolveRoomRequest' => [ 'type' => 'structure', 'required' => [ 'UserId', 'SkillId', ], 'members' => [ 'UserId' => [ 'shape' => 'UserId', ], 'SkillId' => [ 'shape' => 'SkillId', ], ], ], 'ResolveRoomResponse' => [ 'type' => 'structure', 'members' => [ 'RoomArn' => [ 'shape' => 'Arn', ], 'RoomName' => [ 'shape' => 'RoomName', ], 'RoomSkillParameters' => [ 'shape' => 'RoomSkillParameters', ], ], ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', ], ], 'exception' => true, ], 'ReviewKey' => [ 'type' => 'string', ], 'ReviewValue' => [ 'type' => 'string', ], 'Reviews' => [ 'type' => 'map', 'key' => [ 'shape' => 'ReviewKey', ], 'value' => [ 'shape' => 'ReviewValue', ], ], 'RevokeInvitationRequest' => [ 'type' => 'structure', 'members' => [ 'UserArn' => [ 'shape' => 'Arn', ], 'EnrollmentId' => [ 'shape' => 'EnrollmentId', ], ], ], 'RevokeInvitationResponse' => [ 'type' => 'structure', 'members' => [], ], 'Room' => [ 'type' => 'structure', 'members' => [ 'RoomArn' => [ 'shape' => 'Arn', ], 'RoomName' => [ 'shape' => 'RoomName', ], 'Description' => [ 'shape' => 'RoomDescription', ], 'ProviderCalendarId' => [ 'shape' => 'ProviderCalendarId', ], 'ProfileArn' => [ 'shape' => 'Arn', ], ], ], 'RoomData' => [ 'type' => 'structure', 'members' => [ 'RoomArn' => [ 'shape' => 'Arn', ], 'RoomName' => [ 'shape' => 'RoomName', ], 'Description' => [ 'shape' => 'RoomDescription', ], 'ProviderCalendarId' => [ 'shape' => 'ProviderCalendarId', ], 'ProfileArn' => [ 'shape' => 'Arn', ], 'ProfileName' => [ 'shape' => 'ProfileName', ], ], ], 'RoomDataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RoomData', ], ], 'RoomDescription' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*', ], 'RoomName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*', ], 'RoomSkillParameter' => [ 'type' => 'structure', 'required' => [ 'ParameterKey', 'ParameterValue', ], 'members' => [ 'ParameterKey' => [ 'shape' => 'RoomSkillParameterKey', ], 'ParameterValue' => [ 'shape' => 'RoomSkillParameterValue', ], ], ], 'RoomSkillParameterKey' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'RoomSkillParameterValue' => [ 'type' => 'string', 'max' => 512, 'min' => 1, ], 'RoomSkillParameters' => [ 'type' => 'list', 'member' => [ 'shape' => 'RoomSkillParameter', ], ], 'S3KeyPrefix' => [ 'type' => 'string', 'max' => 100, 'min' => 0, 'pattern' => '[A-Za-z0-9!_\\-\\.\\*\'()/]*', ], 'SampleUtterances' => [ 'type' => 'list', 'member' => [ 'shape' => 'Utterance', ], ], 'SearchAddressBooksRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', ], 'SortCriteria' => [ 'shape' => 'SortList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'SearchAddressBooksResponse' => [ 'type' => 'structure', 'members' => [ 'AddressBooks' => [ 'shape' => 'AddressBookDataList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'TotalCount' => [ 'shape' => 'TotalCount', ], ], ], 'SearchContactsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', ], 'SortCriteria' => [ 'shape' => 'SortList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'SearchContactsResponse' => [ 'type' => 'structure', 'members' => [ 'Contacts' => [ 'shape' => 'ContactDataList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'TotalCount' => [ 'shape' => 'TotalCount', ], ], ], 'SearchDevicesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'Filters' => [ 'shape' => 'FilterList', ], 'SortCriteria' => [ 'shape' => 'SortList', ], ], ], 'SearchDevicesResponse' => [ 'type' => 'structure', 'members' => [ 'Devices' => [ 'shape' => 'DeviceDataList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'TotalCount' => [ 'shape' => 'TotalCount', ], ], ], 'SearchProfilesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'Filters' => [ 'shape' => 'FilterList', ], 'SortCriteria' => [ 'shape' => 'SortList', ], ], ], 'SearchProfilesResponse' => [ 'type' => 'structure', 'members' => [ 'Profiles' => [ 'shape' => 'ProfileDataList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'TotalCount' => [ 'shape' => 'TotalCount', ], ], ], 'SearchRoomsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'Filters' => [ 'shape' => 'FilterList', ], 'SortCriteria' => [ 'shape' => 'SortList', ], ], ], 'SearchRoomsResponse' => [ 'type' => 'structure', 'members' => [ 'Rooms' => [ 'shape' => 'RoomDataList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'TotalCount' => [ 'shape' => 'TotalCount', ], ], ], 'SearchSkillGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'Filters' => [ 'shape' => 'FilterList', ], 'SortCriteria' => [ 'shape' => 'SortList', ], ], ], 'SearchSkillGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'SkillGroups' => [ 'shape' => 'SkillGroupDataList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'TotalCount' => [ 'shape' => 'TotalCount', ], ], ], 'SearchUsersRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'Filters' => [ 'shape' => 'FilterList', ], 'SortCriteria' => [ 'shape' => 'SortList', ], ], ], 'SearchUsersResponse' => [ 'type' => 'structure', 'members' => [ 'Users' => [ 'shape' => 'UserDataList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'TotalCount' => [ 'shape' => 'TotalCount', ], ], ], 'SendInvitationRequest' => [ 'type' => 'structure', 'members' => [ 'UserArn' => [ 'shape' => 'Arn', ], ], ], 'SendInvitationResponse' => [ 'type' => 'structure', 'members' => [], ], 'ShortDescription' => [ 'type' => 'string', ], 'ShortSkillIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SkillId', ], 'max' => 3, 'min' => 0, ], 'SkillDetails' => [ 'type' => 'structure', 'members' => [ 'ProductDescription' => [ 'shape' => 'ProductDescription', ], 'InvocationPhrase' => [ 'shape' => 'InvocationPhrase', ], 'ReleaseDate' => [ 'shape' => 'ReleaseDate', ], 'EndUserLicenseAgreement' => [ 'shape' => 'EndUserLicenseAgreement', ], 'GenericKeywords' => [ 'shape' => 'GenericKeywords', ], 'BulletPoints' => [ 'shape' => 'BulletPoints', ], 'NewInThisVersionBulletPoints' => [ 'shape' => 'NewInThisVersionBulletPoints', ], 'SkillTypes' => [ 'shape' => 'SkillTypes', ], 'Reviews' => [ 'shape' => 'Reviews', ], 'DeveloperInfo' => [ 'shape' => 'DeveloperInfo', ], ], ], 'SkillGroup' => [ 'type' => 'structure', 'members' => [ 'SkillGroupArn' => [ 'shape' => 'Arn', ], 'SkillGroupName' => [ 'shape' => 'SkillGroupName', ], 'Description' => [ 'shape' => 'SkillGroupDescription', ], ], ], 'SkillGroupData' => [ 'type' => 'structure', 'members' => [ 'SkillGroupArn' => [ 'shape' => 'Arn', ], 'SkillGroupName' => [ 'shape' => 'SkillGroupName', ], 'Description' => [ 'shape' => 'SkillGroupDescription', ], ], ], 'SkillGroupDataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SkillGroupData', ], ], 'SkillGroupDescription' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*', ], 'SkillGroupName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*', ], 'SkillId' => [ 'type' => 'string', 'pattern' => '(^amzn1\\.ask\\.skill\\.[0-9a-f\\-]{1,200})|(^amzn1\\.echo-sdk-ams\\.app\\.[0-9a-f\\-]{1,200})', ], 'SkillListMaxResults' => [ 'type' => 'integer', 'max' => 10, 'min' => 1, ], 'SkillName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*', ], 'SkillNotLinkedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'SkillStoreType' => [ 'type' => 'string', ], 'SkillSummary' => [ 'type' => 'structure', 'members' => [ 'SkillId' => [ 'shape' => 'SkillId', ], 'SkillName' => [ 'shape' => 'SkillName', ], 'SupportsLinking' => [ 'shape' => 'boolean', ], 'EnablementType' => [ 'shape' => 'EnablementType', ], 'SkillType' => [ 'shape' => 'SkillType', ], ], ], 'SkillSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SkillSummary', ], ], 'SkillType' => [ 'type' => 'string', 'enum' => [ 'PUBLIC', 'PRIVATE', ], 'max' => 100, 'min' => 1, 'pattern' => '[a-zA-Z0-9][a-zA-Z0-9_-]*', ], 'SkillTypeFilter' => [ 'type' => 'string', 'enum' => [ 'PUBLIC', 'PRIVATE', 'ALL', ], ], 'SkillTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'SkillStoreType', ], ], 'SkillsStoreSkill' => [ 'type' => 'structure', 'members' => [ 'SkillId' => [ 'shape' => 'SkillId', ], 'SkillName' => [ 'shape' => 'SkillName', ], 'ShortDescription' => [ 'shape' => 'ShortDescription', ], 'IconUrl' => [ 'shape' => 'IconUrl', ], 'SampleUtterances' => [ 'shape' => 'SampleUtterances', ], 'SkillDetails' => [ 'shape' => 'SkillDetails', ], 'SupportsLinking' => [ 'shape' => 'boolean', ], ], ], 'SkillsStoreSkillList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SkillsStoreSkill', ], ], 'SmartHomeAppliance' => [ 'type' => 'structure', 'members' => [ 'FriendlyName' => [ 'shape' => 'ApplianceFriendlyName', ], 'Description' => [ 'shape' => 'ApplianceDescription', ], 'ManufacturerName' => [ 'shape' => 'ApplianceManufacturerName', ], ], ], 'SmartHomeApplianceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SmartHomeAppliance', ], ], 'SoftwareVersion' => [ 'type' => 'string', ], 'Sort' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'SortKey', ], 'Value' => [ 'shape' => 'SortValue', ], ], ], 'SortKey' => [ 'type' => 'string', 'max' => 500, 'min' => 1, ], 'SortList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Sort', ], 'max' => 25, ], 'SortValue' => [ 'type' => 'string', 'enum' => [ 'ASC', 'DESC', ], ], 'StartDeviceSyncRequest' => [ 'type' => 'structure', 'required' => [ 'Features', ], 'members' => [ 'RoomArn' => [ 'shape' => 'Arn', ], 'DeviceArn' => [ 'shape' => 'Arn', ], 'Features' => [ 'shape' => 'Features', ], ], ], 'StartDeviceSyncResponse' => [ 'type' => 'structure', 'members' => [], ], 'StartSmartHomeApplianceDiscoveryRequest' => [ 'type' => 'structure', 'required' => [ 'RoomArn', ], 'members' => [ 'RoomArn' => [ 'shape' => 'Arn', ], ], ], 'StartSmartHomeApplianceDiscoveryResponse' => [ 'type' => 'structure', 'members' => [], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Arn', 'Tags', ], 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TemperatureUnit' => [ 'type' => 'string', 'enum' => [ 'FAHRENHEIT', 'CELSIUS', ], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'Timezone' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'TotalCount' => [ 'type' => 'integer', ], 'UnauthorizedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Arn', 'TagKeys', ], 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateAddressBookRequest' => [ 'type' => 'structure', 'required' => [ 'AddressBookArn', ], 'members' => [ 'AddressBookArn' => [ 'shape' => 'Arn', ], 'Name' => [ 'shape' => 'AddressBookName', ], 'Description' => [ 'shape' => 'AddressBookDescription', ], ], ], 'UpdateAddressBookResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateBusinessReportScheduleRequest' => [ 'type' => 'structure', 'required' => [ 'ScheduleArn', ], 'members' => [ 'ScheduleArn' => [ 'shape' => 'Arn', ], 'S3BucketName' => [ 'shape' => 'CustomerS3BucketName', ], 'S3KeyPrefix' => [ 'shape' => 'S3KeyPrefix', ], 'Format' => [ 'shape' => 'BusinessReportFormat', ], 'ScheduleName' => [ 'shape' => 'BusinessReportScheduleName', ], 'Recurrence' => [ 'shape' => 'BusinessReportRecurrence', ], ], ], 'UpdateBusinessReportScheduleResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateConferenceProviderRequest' => [ 'type' => 'structure', 'required' => [ 'ConferenceProviderArn', 'ConferenceProviderType', 'MeetingSetting', ], 'members' => [ 'ConferenceProviderArn' => [ 'shape' => 'Arn', ], 'ConferenceProviderType' => [ 'shape' => 'ConferenceProviderType', ], 'IPDialIn' => [ 'shape' => 'IPDialIn', ], 'PSTNDialIn' => [ 'shape' => 'PSTNDialIn', ], 'MeetingSetting' => [ 'shape' => 'MeetingSetting', ], ], ], 'UpdateConferenceProviderResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateContactRequest' => [ 'type' => 'structure', 'required' => [ 'ContactArn', ], 'members' => [ 'ContactArn' => [ 'shape' => 'Arn', ], 'DisplayName' => [ 'shape' => 'ContactName', ], 'FirstName' => [ 'shape' => 'ContactName', ], 'LastName' => [ 'shape' => 'ContactName', ], 'PhoneNumber' => [ 'shape' => 'E164PhoneNumber', ], ], ], 'UpdateContactResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateDeviceRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceArn' => [ 'shape' => 'Arn', ], 'DeviceName' => [ 'shape' => 'DeviceName', ], ], ], 'UpdateDeviceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateProfileRequest' => [ 'type' => 'structure', 'members' => [ 'ProfileArn' => [ 'shape' => 'Arn', ], 'ProfileName' => [ 'shape' => 'ProfileName', ], 'IsDefault' => [ 'shape' => 'Boolean', ], 'Timezone' => [ 'shape' => 'Timezone', ], 'Address' => [ 'shape' => 'Address', ], 'DistanceUnit' => [ 'shape' => 'DistanceUnit', ], 'TemperatureUnit' => [ 'shape' => 'TemperatureUnit', ], 'WakeWord' => [ 'shape' => 'WakeWord', ], 'SetupModeDisabled' => [ 'shape' => 'Boolean', ], 'MaxVolumeLimit' => [ 'shape' => 'MaxVolumeLimit', ], 'PSTNEnabled' => [ 'shape' => 'Boolean', ], ], ], 'UpdateProfileResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateRoomRequest' => [ 'type' => 'structure', 'members' => [ 'RoomArn' => [ 'shape' => 'Arn', ], 'RoomName' => [ 'shape' => 'RoomName', ], 'Description' => [ 'shape' => 'RoomDescription', ], 'ProviderCalendarId' => [ 'shape' => 'ProviderCalendarId', ], 'ProfileArn' => [ 'shape' => 'Arn', ], ], ], 'UpdateRoomResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateSkillGroupRequest' => [ 'type' => 'structure', 'members' => [ 'SkillGroupArn' => [ 'shape' => 'Arn', ], 'SkillGroupName' => [ 'shape' => 'SkillGroupName', ], 'Description' => [ 'shape' => 'SkillGroupDescription', ], ], ], 'UpdateSkillGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'Url' => [ 'type' => 'string', ], 'UserCode' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'UserData' => [ 'type' => 'structure', 'members' => [ 'UserArn' => [ 'shape' => 'Arn', ], 'FirstName' => [ 'shape' => 'user_FirstName', ], 'LastName' => [ 'shape' => 'user_LastName', ], 'Email' => [ 'shape' => 'Email', ], 'EnrollmentStatus' => [ 'shape' => 'EnrollmentStatus', ], 'EnrollmentId' => [ 'shape' => 'EnrollmentId', ], ], ], 'UserDataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserData', ], ], 'UserId' => [ 'type' => 'string', 'pattern' => 'amzn1\\.[A-Za-z0-9+-\\/=.]{1,300}', ], 'Utterance' => [ 'type' => 'string', ], 'Value' => [ 'type' => 'string', 'min' => 1, ], 'WakeWord' => [ 'type' => 'string', 'enum' => [ 'ALEXA', 'AMAZON', 'ECHO', 'COMPUTER', ], ], 'boolean' => [ 'type' => 'boolean', ], 'user_FirstName' => [ 'type' => 'string', 'max' => 30, 'min' => 0, 'pattern' => '([A-Za-z\\-\' 0-9._]|\\p{IsLetter})*', ], 'user_LastName' => [ 'type' => 'string', 'max' => 30, 'min' => 0, 'pattern' => '([A-Za-z\\-\' 0-9._]|\\p{IsLetter})*', ], 'user_UserId' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9@_+.-]*', ], ],]; diff --git a/lib/aws/Aws/data/alexaforbusiness/2017-11-09/paginators-1.json.php b/lib/aws/Aws/data/alexaforbusiness/2017-11-09/paginators-1.json.php new file mode 100644 index 0000000..ff0c8a8 --- /dev/null +++ b/lib/aws/Aws/data/alexaforbusiness/2017-11-09/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/alexaforbusiness/2017-11-09/paginators-1.json +return [ 'pagination' => [ 'ListBusinessReportSchedules' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListConferenceProviders' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListDeviceEvents' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListSkills' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListSkillsStoreCategories' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListSkillsStoreSkillsByCategory' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListSmartHomeAppliances' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListTags' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'SearchAddressBooks' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'SearchContacts' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'SearchDevices' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'SearchProfiles' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'SearchRooms' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'SearchSkillGroups' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'SearchUsers' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/amplify/2017-07-25/api-2.json.php b/lib/aws/Aws/data/amplify/2017-07-25/api-2.json.php new file mode 100644 index 0000000..df0f8a1 --- /dev/null +++ b/lib/aws/Aws/data/amplify/2017-07-25/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/amplify/2017-07-25/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-07-25', 'endpointPrefix' => 'amplify', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'Amplify', 'serviceFullName' => 'AWS Amplify', 'serviceId' => 'Amplify', 'signatureVersion' => 'v4', 'signingName' => 'amplify', 'uid' => 'amplify-2017-07-25', ], 'operations' => [ 'CreateApp' => [ 'name' => 'CreateApp', 'http' => [ 'method' => 'POST', 'requestUri' => '/apps', ], 'input' => [ 'shape' => 'CreateAppRequest', ], 'output' => [ 'shape' => 'CreateAppResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'DependentServiceFailureException', ], ], ], 'CreateBranch' => [ 'name' => 'CreateBranch', 'http' => [ 'method' => 'POST', 'requestUri' => '/apps/{appId}/branches', ], 'input' => [ 'shape' => 'CreateBranchRequest', ], 'output' => [ 'shape' => 'CreateBranchResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'DependentServiceFailureException', ], ], ], 'CreateDomainAssociation' => [ 'name' => 'CreateDomainAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/apps/{appId}/domains', ], 'input' => [ 'shape' => 'CreateDomainAssociationRequest', ], 'output' => [ 'shape' => 'CreateDomainAssociationResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'DependentServiceFailureException', ], ], ], 'DeleteApp' => [ 'name' => 'DeleteApp', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/apps/{appId}', ], 'input' => [ 'shape' => 'DeleteAppRequest', ], 'output' => [ 'shape' => 'DeleteAppResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'DependentServiceFailureException', ], ], ], 'DeleteBranch' => [ 'name' => 'DeleteBranch', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/apps/{appId}/branches/{branchName}', ], 'input' => [ 'shape' => 'DeleteBranchRequest', ], 'output' => [ 'shape' => 'DeleteBranchResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'DependentServiceFailureException', ], ], ], 'DeleteDomainAssociation' => [ 'name' => 'DeleteDomainAssociation', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/apps/{appId}/domains/{domainName}', ], 'input' => [ 'shape' => 'DeleteDomainAssociationRequest', ], 'output' => [ 'shape' => 'DeleteDomainAssociationResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'DependentServiceFailureException', ], ], ], 'DeleteJob' => [ 'name' => 'DeleteJob', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/apps/{appId}/branches/{branchName}/jobs/{jobId}', ], 'input' => [ 'shape' => 'DeleteJobRequest', ], 'output' => [ 'shape' => 'DeleteJobResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'GetApp' => [ 'name' => 'GetApp', 'http' => [ 'method' => 'GET', 'requestUri' => '/apps/{appId}', ], 'input' => [ 'shape' => 'GetAppRequest', ], 'output' => [ 'shape' => 'GetAppResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'GetBranch' => [ 'name' => 'GetBranch', 'http' => [ 'method' => 'GET', 'requestUri' => '/apps/{appId}/branches/{branchName}', ], 'input' => [ 'shape' => 'GetBranchRequest', ], 'output' => [ 'shape' => 'GetBranchResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'GetDomainAssociation' => [ 'name' => 'GetDomainAssociation', 'http' => [ 'method' => 'GET', 'requestUri' => '/apps/{appId}/domains/{domainName}', ], 'input' => [ 'shape' => 'GetDomainAssociationRequest', ], 'output' => [ 'shape' => 'GetDomainAssociationResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'GetJob' => [ 'name' => 'GetJob', 'http' => [ 'method' => 'GET', 'requestUri' => '/apps/{appId}/branches/{branchName}/jobs/{jobId}', ], 'input' => [ 'shape' => 'GetJobRequest', ], 'output' => [ 'shape' => 'GetJobResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'ListApps' => [ 'name' => 'ListApps', 'http' => [ 'method' => 'GET', 'requestUri' => '/apps', ], 'input' => [ 'shape' => 'ListAppsRequest', ], 'output' => [ 'shape' => 'ListAppsResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListBranches' => [ 'name' => 'ListBranches', 'http' => [ 'method' => 'GET', 'requestUri' => '/apps/{appId}/branches', ], 'input' => [ 'shape' => 'ListBranchesRequest', ], 'output' => [ 'shape' => 'ListBranchesResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListDomainAssociations' => [ 'name' => 'ListDomainAssociations', 'http' => [ 'method' => 'GET', 'requestUri' => '/apps/{appId}/domains', ], 'input' => [ 'shape' => 'ListDomainAssociationsRequest', ], 'output' => [ 'shape' => 'ListDomainAssociationsResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListJobs' => [ 'name' => 'ListJobs', 'http' => [ 'method' => 'GET', 'requestUri' => '/apps/{appId}/branches/{branchName}/jobs', ], 'input' => [ 'shape' => 'ListJobsRequest', ], 'output' => [ 'shape' => 'ListJobsResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'StartJob' => [ 'name' => 'StartJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/apps/{appId}/branches/{branchName}/jobs', ], 'input' => [ 'shape' => 'StartJobRequest', ], 'output' => [ 'shape' => 'StartJobResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'StopJob' => [ 'name' => 'StopJob', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/apps/{appId}/branches/{branchName}/jobs/{jobId}/stop', ], 'input' => [ 'shape' => 'StopJobRequest', ], 'output' => [ 'shape' => 'StopJobResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'UpdateApp' => [ 'name' => 'UpdateApp', 'http' => [ 'method' => 'POST', 'requestUri' => '/apps/{appId}', ], 'input' => [ 'shape' => 'UpdateAppRequest', ], 'output' => [ 'shape' => 'UpdateAppResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'UpdateBranch' => [ 'name' => 'UpdateBranch', 'http' => [ 'method' => 'POST', 'requestUri' => '/apps/{appId}/branches/{branchName}', ], 'input' => [ 'shape' => 'UpdateBranchRequest', ], 'output' => [ 'shape' => 'UpdateBranchResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'DependentServiceFailureException', ], ], ], 'UpdateDomainAssociation' => [ 'name' => 'UpdateDomainAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/apps/{appId}/domains/{domainName}', ], 'input' => [ 'shape' => 'UpdateDomainAssociationRequest', ], 'output' => [ 'shape' => 'UpdateDomainAssociationResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'DependentServiceFailureException', ], ], ], ], 'shapes' => [ 'ActiveJobId' => [ 'type' => 'string', 'max' => 1000, ], 'App' => [ 'type' => 'structure', 'required' => [ 'appId', 'appArn', 'name', 'description', 'repository', 'platform', 'createTime', 'updateTime', 'environmentVariables', 'defaultDomain', 'enableBranchAutoBuild', 'enableBasicAuth', ], 'members' => [ 'appId' => [ 'shape' => 'AppId', ], 'appArn' => [ 'shape' => 'AppArn', ], 'name' => [ 'shape' => 'Name', ], 'tags' => [ 'shape' => 'Tags', ], 'description' => [ 'shape' => 'Description', ], 'repository' => [ 'shape' => 'Repository', ], 'platform' => [ 'shape' => 'Platform', ], 'createTime' => [ 'shape' => 'CreateTime', ], 'updateTime' => [ 'shape' => 'UpdateTime', ], 'iamServiceRoleArn' => [ 'shape' => 'ServiceRoleArn', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariables', ], 'defaultDomain' => [ 'shape' => 'DefaultDomain', ], 'enableBranchAutoBuild' => [ 'shape' => 'EnableBranchAutoBuild', ], 'enableBasicAuth' => [ 'shape' => 'EnableBasicAuth', ], 'basicAuthCredentials' => [ 'shape' => 'BasicAuthCredentials', ], 'customRules' => [ 'shape' => 'CustomRules', ], 'productionBranch' => [ 'shape' => 'ProductionBranch', ], 'buildSpec' => [ 'shape' => 'BuildSpec', ], ], ], 'AppArn' => [ 'type' => 'string', 'max' => 1000, ], 'AppId' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'Apps' => [ 'type' => 'list', 'member' => [ 'shape' => 'App', ], ], 'ArtifactsUrl' => [ 'type' => 'string', 'max' => 1000, ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'BasicAuthCredentials' => [ 'type' => 'string', 'max' => 2000, ], 'Branch' => [ 'type' => 'structure', 'required' => [ 'branchArn', 'branchName', 'description', 'stage', 'enableNotification', 'createTime', 'updateTime', 'environmentVariables', 'enableAutoBuild', 'customDomains', 'framework', 'activeJobId', 'totalNumberOfJobs', 'enableBasicAuth', 'ttl', ], 'members' => [ 'branchArn' => [ 'shape' => 'BranchArn', ], 'branchName' => [ 'shape' => 'BranchName', ], 'description' => [ 'shape' => 'Description', ], 'tags' => [ 'shape' => 'Tags', ], 'stage' => [ 'shape' => 'Stage', ], 'displayName' => [ 'shape' => 'DisplayName', ], 'enableNotification' => [ 'shape' => 'EnableNotification', ], 'createTime' => [ 'shape' => 'CreateTime', ], 'updateTime' => [ 'shape' => 'UpdateTime', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariables', ], 'enableAutoBuild' => [ 'shape' => 'EnableAutoBuild', ], 'customDomains' => [ 'shape' => 'CustomDomains', ], 'framework' => [ 'shape' => 'Framework', ], 'activeJobId' => [ 'shape' => 'ActiveJobId', ], 'totalNumberOfJobs' => [ 'shape' => 'TotalNumberOfJobs', ], 'enableBasicAuth' => [ 'shape' => 'EnableBasicAuth', ], 'thumbnailUrl' => [ 'shape' => 'ThumbnailUrl', ], 'basicAuthCredentials' => [ 'shape' => 'BasicAuthCredentials', ], 'buildSpec' => [ 'shape' => 'BuildSpec', ], 'ttl' => [ 'shape' => 'TTL', ], ], ], 'BranchArn' => [ 'type' => 'string', 'max' => 1000, ], 'BranchName' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'Branches' => [ 'type' => 'list', 'member' => [ 'shape' => 'Branch', ], 'max' => 255, ], 'BuildSpec' => [ 'type' => 'string', 'max' => 25000, 'min' => 1, ], 'CertificateVerificationDNSRecord' => [ 'type' => 'string', 'max' => 1000, ], 'CommitId' => [ 'type' => 'string', 'max' => 255, ], 'CommitMessage' => [ 'type' => 'string', 'max' => 10000, ], 'CommitTime' => [ 'type' => 'timestamp', ], 'Condition' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'CreateAppRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'repository', 'platform', 'oauthToken', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Description', ], 'repository' => [ 'shape' => 'Repository', ], 'platform' => [ 'shape' => 'Platform', ], 'iamServiceRoleArn' => [ 'shape' => 'ServiceRoleArn', ], 'oauthToken' => [ 'shape' => 'OauthToken', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariables', ], 'enableBranchAutoBuild' => [ 'shape' => 'EnableBranchAutoBuild', ], 'enableBasicAuth' => [ 'shape' => 'EnableBasicAuth', ], 'basicAuthCredentials' => [ 'shape' => 'BasicAuthCredentials', ], 'customRules' => [ 'shape' => 'CustomRules', ], 'tags' => [ 'shape' => 'Tags', ], 'buildSpec' => [ 'shape' => 'BuildSpec', ], ], ], 'CreateAppResult' => [ 'type' => 'structure', 'required' => [ 'app', ], 'members' => [ 'app' => [ 'shape' => 'App', ], ], ], 'CreateBranchRequest' => [ 'type' => 'structure', 'required' => [ 'appId', 'branchName', ], 'members' => [ 'appId' => [ 'shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId', ], 'branchName' => [ 'shape' => 'BranchName', ], 'description' => [ 'shape' => 'Description', ], 'stage' => [ 'shape' => 'Stage', ], 'framework' => [ 'shape' => 'Framework', ], 'enableNotification' => [ 'shape' => 'EnableNotification', ], 'enableAutoBuild' => [ 'shape' => 'EnableAutoBuild', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariables', ], 'basicAuthCredentials' => [ 'shape' => 'BasicAuthCredentials', ], 'enableBasicAuth' => [ 'shape' => 'EnableBasicAuth', ], 'tags' => [ 'shape' => 'Tags', ], 'buildSpec' => [ 'shape' => 'BuildSpec', ], 'ttl' => [ 'shape' => 'TTL', ], ], ], 'CreateBranchResult' => [ 'type' => 'structure', 'required' => [ 'branch', ], 'members' => [ 'branch' => [ 'shape' => 'Branch', ], ], ], 'CreateDomainAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'appId', 'domainName', 'subDomainSettings', ], 'members' => [ 'appId' => [ 'shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId', ], 'domainName' => [ 'shape' => 'DomainName', ], 'enableAutoSubDomain' => [ 'shape' => 'EnableAutoSubDomain', ], 'subDomainSettings' => [ 'shape' => 'SubDomainSettings', ], ], ], 'CreateDomainAssociationResult' => [ 'type' => 'structure', 'required' => [ 'domainAssociation', ], 'members' => [ 'domainAssociation' => [ 'shape' => 'DomainAssociation', ], ], ], 'CreateTime' => [ 'type' => 'timestamp', ], 'CustomDomain' => [ 'type' => 'string', 'max' => 255, ], 'CustomDomains' => [ 'type' => 'list', 'member' => [ 'shape' => 'CustomDomain', ], 'max' => 255, ], 'CustomRule' => [ 'type' => 'structure', 'required' => [ 'source', 'target', ], 'members' => [ 'source' => [ 'shape' => 'Source', ], 'target' => [ 'shape' => 'Target', ], 'status' => [ 'shape' => 'Status', ], 'condition' => [ 'shape' => 'Condition', ], ], ], 'CustomRules' => [ 'type' => 'list', 'member' => [ 'shape' => 'CustomRule', ], ], 'DNSRecord' => [ 'type' => 'string', 'max' => 1000, ], 'DefaultDomain' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, ], 'DeleteAppRequest' => [ 'type' => 'structure', 'required' => [ 'appId', ], 'members' => [ 'appId' => [ 'shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId', ], ], ], 'DeleteAppResult' => [ 'type' => 'structure', 'required' => [ 'app', ], 'members' => [ 'app' => [ 'shape' => 'App', ], ], ], 'DeleteBranchRequest' => [ 'type' => 'structure', 'required' => [ 'appId', 'branchName', ], 'members' => [ 'appId' => [ 'shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId', ], 'branchName' => [ 'shape' => 'BranchName', 'location' => 'uri', 'locationName' => 'branchName', ], ], ], 'DeleteBranchResult' => [ 'type' => 'structure', 'required' => [ 'branch', ], 'members' => [ 'branch' => [ 'shape' => 'Branch', ], ], ], 'DeleteDomainAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'appId', 'domainName', ], 'members' => [ 'appId' => [ 'shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId', ], 'domainName' => [ 'shape' => 'DomainName', 'location' => 'uri', 'locationName' => 'domainName', ], ], ], 'DeleteDomainAssociationResult' => [ 'type' => 'structure', 'required' => [ 'domainAssociation', ], 'members' => [ 'domainAssociation' => [ 'shape' => 'DomainAssociation', ], ], ], 'DeleteJobRequest' => [ 'type' => 'structure', 'required' => [ 'appId', 'branchName', 'jobId', ], 'members' => [ 'appId' => [ 'shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId', ], 'branchName' => [ 'shape' => 'BranchName', 'location' => 'uri', 'locationName' => 'branchName', ], 'jobId' => [ 'shape' => 'JobId', 'location' => 'uri', 'locationName' => 'jobId', ], ], ], 'DeleteJobResult' => [ 'type' => 'structure', 'required' => [ 'jobSummary', ], 'members' => [ 'jobSummary' => [ 'shape' => 'JobSummary', ], ], ], 'DependentServiceFailureException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 503, ], 'exception' => true, ], 'Description' => [ 'type' => 'string', 'max' => 1000, ], 'DisplayName' => [ 'type' => 'string', 'max' => 255, ], 'DomainAssociation' => [ 'type' => 'structure', 'required' => [ 'domainAssociationArn', 'domainName', 'enableAutoSubDomain', 'domainStatus', 'statusReason', 'certificateVerificationDNSRecord', 'subDomains', ], 'members' => [ 'domainAssociationArn' => [ 'shape' => 'DomainAssociationArn', ], 'domainName' => [ 'shape' => 'DomainName', ], 'enableAutoSubDomain' => [ 'shape' => 'EnableAutoSubDomain', ], 'domainStatus' => [ 'shape' => 'DomainStatus', ], 'statusReason' => [ 'shape' => 'StatusReason', ], 'certificateVerificationDNSRecord' => [ 'shape' => 'CertificateVerificationDNSRecord', ], 'subDomains' => [ 'shape' => 'SubDomains', ], ], ], 'DomainAssociationArn' => [ 'type' => 'string', 'max' => 1000, ], 'DomainAssociations' => [ 'type' => 'list', 'member' => [ 'shape' => 'DomainAssociation', ], 'max' => 255, ], 'DomainName' => [ 'type' => 'string', 'max' => 255, ], 'DomainPrefix' => [ 'type' => 'string', 'max' => 255, ], 'DomainStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING_VERIFICATION', 'IN_PROGRESS', 'AVAILABLE', 'PENDING_DEPLOYMENT', 'FAILED', ], ], 'EnableAutoBuild' => [ 'type' => 'boolean', ], 'EnableAutoSubDomain' => [ 'type' => 'boolean', ], 'EnableBasicAuth' => [ 'type' => 'boolean', ], 'EnableBranchAutoBuild' => [ 'type' => 'boolean', ], 'EnableNotification' => [ 'type' => 'boolean', ], 'EndTime' => [ 'type' => 'timestamp', ], 'EnvKey' => [ 'type' => 'string', 'max' => 255, ], 'EnvValue' => [ 'type' => 'string', 'max' => 1000, ], 'EnvironmentVariables' => [ 'type' => 'map', 'key' => [ 'shape' => 'EnvKey', ], 'value' => [ 'shape' => 'EnvValue', ], ], 'ErrorMessage' => [ 'type' => 'string', 'max' => 255, ], 'Framework' => [ 'type' => 'string', 'max' => 255, ], 'GetAppRequest' => [ 'type' => 'structure', 'required' => [ 'appId', ], 'members' => [ 'appId' => [ 'shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId', ], ], ], 'GetAppResult' => [ 'type' => 'structure', 'required' => [ 'app', ], 'members' => [ 'app' => [ 'shape' => 'App', ], ], ], 'GetBranchRequest' => [ 'type' => 'structure', 'required' => [ 'appId', 'branchName', ], 'members' => [ 'appId' => [ 'shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId', ], 'branchName' => [ 'shape' => 'BranchName', 'location' => 'uri', 'locationName' => 'branchName', ], ], ], 'GetBranchResult' => [ 'type' => 'structure', 'required' => [ 'branch', ], 'members' => [ 'branch' => [ 'shape' => 'Branch', ], ], ], 'GetDomainAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'appId', 'domainName', ], 'members' => [ 'appId' => [ 'shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId', ], 'domainName' => [ 'shape' => 'DomainName', 'location' => 'uri', 'locationName' => 'domainName', ], ], ], 'GetDomainAssociationResult' => [ 'type' => 'structure', 'required' => [ 'domainAssociation', ], 'members' => [ 'domainAssociation' => [ 'shape' => 'DomainAssociation', ], ], ], 'GetJobRequest' => [ 'type' => 'structure', 'required' => [ 'appId', 'branchName', 'jobId', ], 'members' => [ 'appId' => [ 'shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId', ], 'branchName' => [ 'shape' => 'BranchName', 'location' => 'uri', 'locationName' => 'branchName', ], 'jobId' => [ 'shape' => 'JobId', 'location' => 'uri', 'locationName' => 'jobId', ], ], ], 'GetJobResult' => [ 'type' => 'structure', 'required' => [ 'job', ], 'members' => [ 'job' => [ 'shape' => 'Job', ], ], ], 'InternalFailureException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'Job' => [ 'type' => 'structure', 'required' => [ 'summary', 'steps', ], 'members' => [ 'summary' => [ 'shape' => 'JobSummary', ], 'steps' => [ 'shape' => 'Steps', ], ], ], 'JobArn' => [ 'type' => 'string', 'max' => 1000, ], 'JobId' => [ 'type' => 'string', 'max' => 255, ], 'JobReason' => [ 'type' => 'string', 'max' => 255, ], 'JobStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'PROVISIONING', 'RUNNING', 'FAILED', 'SUCCEED', 'CANCELLING', 'CANCELLED', ], ], 'JobSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'JobSummary', ], ], 'JobSummary' => [ 'type' => 'structure', 'required' => [ 'jobArn', 'jobId', 'commitId', 'commitMessage', 'commitTime', 'startTime', 'status', 'jobType', ], 'members' => [ 'jobArn' => [ 'shape' => 'JobArn', ], 'jobId' => [ 'shape' => 'JobId', ], 'commitId' => [ 'shape' => 'CommitId', ], 'commitMessage' => [ 'shape' => 'CommitMessage', ], 'commitTime' => [ 'shape' => 'CommitTime', ], 'startTime' => [ 'shape' => 'StartTime', ], 'status' => [ 'shape' => 'JobStatus', ], 'endTime' => [ 'shape' => 'EndTime', ], 'jobType' => [ 'shape' => 'JobType', ], ], ], 'JobType' => [ 'type' => 'string', 'enum' => [ 'RELEASE', 'RETRY', 'WEB_HOOK', ], 'max' => 10, ], 'LastDeployTime' => [ 'type' => 'timestamp', ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'ListAppsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListAppsResult' => [ 'type' => 'structure', 'required' => [ 'apps', ], 'members' => [ 'apps' => [ 'shape' => 'Apps', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListBranchesRequest' => [ 'type' => 'structure', 'required' => [ 'appId', ], 'members' => [ 'appId' => [ 'shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListBranchesResult' => [ 'type' => 'structure', 'required' => [ 'branches', ], 'members' => [ 'branches' => [ 'shape' => 'Branches', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDomainAssociationsRequest' => [ 'type' => 'structure', 'required' => [ 'appId', ], 'members' => [ 'appId' => [ 'shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListDomainAssociationsResult' => [ 'type' => 'structure', 'required' => [ 'domainAssociations', ], 'members' => [ 'domainAssociations' => [ 'shape' => 'DomainAssociations', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListJobsRequest' => [ 'type' => 'structure', 'required' => [ 'appId', 'branchName', ], 'members' => [ 'appId' => [ 'shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId', ], 'branchName' => [ 'shape' => 'BranchName', 'location' => 'uri', 'locationName' => 'branchName', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListJobsResult' => [ 'type' => 'structure', 'required' => [ 'jobSummaries', ], 'members' => [ 'jobSummaries' => [ 'shape' => 'JobSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'LogUrl' => [ 'type' => 'string', 'max' => 1000, ], 'MaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'Name' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'NextToken' => [ 'type' => 'string', 'max' => 2000, ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'OauthToken' => [ 'type' => 'string', 'max' => 100, ], 'Platform' => [ 'type' => 'string', 'enum' => [ 'IOS', 'ANDROID', 'WEB', 'REACT_NATIVE', ], ], 'ProductionBranch' => [ 'type' => 'structure', 'members' => [ 'lastDeployTime' => [ 'shape' => 'LastDeployTime', ], 'status' => [ 'shape' => 'Status', ], 'thumbnailUrl' => [ 'shape' => 'ThumbnailUrl', ], 'branchName' => [ 'shape' => 'BranchName', ], ], ], 'Repository' => [ 'type' => 'string', 'max' => 1000, ], 'Screenshots' => [ 'type' => 'map', 'key' => [ 'shape' => 'ThumbnailName', ], 'value' => [ 'shape' => 'ThumbnailUrl', ], ], 'ServiceRoleArn' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, ], 'Source' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'Stage' => [ 'type' => 'string', 'enum' => [ 'PRODUCTION', 'BETA', 'DEVELOPMENT', 'EXPERIMENTAL', ], ], 'StartJobRequest' => [ 'type' => 'structure', 'required' => [ 'appId', 'branchName', 'jobType', ], 'members' => [ 'appId' => [ 'shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId', ], 'branchName' => [ 'shape' => 'BranchName', 'location' => 'uri', 'locationName' => 'branchName', ], 'jobId' => [ 'shape' => 'JobId', ], 'jobType' => [ 'shape' => 'JobType', ], 'jobReason' => [ 'shape' => 'JobReason', ], 'commitId' => [ 'shape' => 'CommitId', ], 'commitMessage' => [ 'shape' => 'CommitMessage', ], 'commitTime' => [ 'shape' => 'CommitTime', ], ], ], 'StartJobResult' => [ 'type' => 'structure', 'required' => [ 'jobSummary', ], 'members' => [ 'jobSummary' => [ 'shape' => 'JobSummary', ], ], ], 'StartTime' => [ 'type' => 'timestamp', ], 'Status' => [ 'type' => 'string', 'max' => 3, 'min' => 3, ], 'StatusReason' => [ 'type' => 'string', 'max' => 1000, ], 'Step' => [ 'type' => 'structure', 'required' => [ 'stepName', 'startTime', 'status', 'endTime', ], 'members' => [ 'stepName' => [ 'shape' => 'StepName', ], 'startTime' => [ 'shape' => 'StartTime', ], 'status' => [ 'shape' => 'JobStatus', ], 'endTime' => [ 'shape' => 'EndTime', ], 'logUrl' => [ 'shape' => 'LogUrl', ], 'artifactsUrl' => [ 'shape' => 'ArtifactsUrl', ], 'screenshots' => [ 'shape' => 'Screenshots', ], ], ], 'StepName' => [ 'type' => 'string', 'max' => 255, ], 'Steps' => [ 'type' => 'list', 'member' => [ 'shape' => 'Step', ], ], 'StopJobRequest' => [ 'type' => 'structure', 'required' => [ 'appId', 'branchName', 'jobId', ], 'members' => [ 'appId' => [ 'shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId', ], 'branchName' => [ 'shape' => 'BranchName', 'location' => 'uri', 'locationName' => 'branchName', ], 'jobId' => [ 'shape' => 'JobId', 'location' => 'uri', 'locationName' => 'jobId', ], ], ], 'StopJobResult' => [ 'type' => 'structure', 'required' => [ 'jobSummary', ], 'members' => [ 'jobSummary' => [ 'shape' => 'JobSummary', ], ], ], 'SubDomain' => [ 'type' => 'structure', 'required' => [ 'subDomainSetting', 'verified', 'dnsRecord', ], 'members' => [ 'subDomainSetting' => [ 'shape' => 'SubDomainSetting', ], 'verified' => [ 'shape' => 'Verified', ], 'dnsRecord' => [ 'shape' => 'DNSRecord', ], ], ], 'SubDomainSetting' => [ 'type' => 'structure', 'required' => [ 'prefix', 'branchName', ], 'members' => [ 'prefix' => [ 'shape' => 'DomainPrefix', ], 'branchName' => [ 'shape' => 'BranchName', ], ], ], 'SubDomainSettings' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubDomainSetting', ], 'max' => 255, ], 'SubDomains' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubDomain', ], 'max' => 255, ], 'TTL' => [ 'type' => 'string', ], 'TagKey' => [ 'type' => 'string', 'max' => 1000, ], 'TagValue' => [ 'type' => 'string', 'max' => 1000, ], 'Tags' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], ], 'Target' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'ThumbnailName' => [ 'type' => 'string', 'max' => 256, ], 'ThumbnailUrl' => [ 'type' => 'string', 'max' => 2000, 'min' => 1, ], 'TotalNumberOfJobs' => [ 'type' => 'string', 'max' => 1000, ], 'UnauthorizedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 401, ], 'exception' => true, ], 'UpdateAppRequest' => [ 'type' => 'structure', 'required' => [ 'appId', ], 'members' => [ 'appId' => [ 'shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId', ], 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Description', ], 'platform' => [ 'shape' => 'Platform', ], 'iamServiceRoleArn' => [ 'shape' => 'ServiceRoleArn', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariables', ], 'enableBranchAutoBuild' => [ 'shape' => 'EnableAutoBuild', ], 'enableBasicAuth' => [ 'shape' => 'EnableBasicAuth', ], 'basicAuthCredentials' => [ 'shape' => 'BasicAuthCredentials', ], 'customRules' => [ 'shape' => 'CustomRules', ], 'buildSpec' => [ 'shape' => 'BuildSpec', ], ], ], 'UpdateAppResult' => [ 'type' => 'structure', 'required' => [ 'app', ], 'members' => [ 'app' => [ 'shape' => 'App', ], ], ], 'UpdateBranchRequest' => [ 'type' => 'structure', 'required' => [ 'appId', 'branchName', ], 'members' => [ 'appId' => [ 'shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId', ], 'branchName' => [ 'shape' => 'BranchName', 'location' => 'uri', 'locationName' => 'branchName', ], 'description' => [ 'shape' => 'Description', ], 'framework' => [ 'shape' => 'Framework', ], 'stage' => [ 'shape' => 'Stage', ], 'enableNotification' => [ 'shape' => 'EnableNotification', ], 'enableAutoBuild' => [ 'shape' => 'EnableAutoBuild', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariables', ], 'basicAuthCredentials' => [ 'shape' => 'BasicAuthCredentials', ], 'enableBasicAuth' => [ 'shape' => 'EnableBasicAuth', ], 'buildSpec' => [ 'shape' => 'BuildSpec', ], 'ttl' => [ 'shape' => 'TTL', ], ], ], 'UpdateBranchResult' => [ 'type' => 'structure', 'required' => [ 'branch', ], 'members' => [ 'branch' => [ 'shape' => 'Branch', ], ], ], 'UpdateDomainAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'appId', 'domainName', 'subDomainSettings', ], 'members' => [ 'appId' => [ 'shape' => 'AppId', 'location' => 'uri', 'locationName' => 'appId', ], 'domainName' => [ 'shape' => 'DomainName', 'location' => 'uri', 'locationName' => 'domainName', ], 'enableAutoSubDomain' => [ 'shape' => 'EnableAutoSubDomain', ], 'subDomainSettings' => [ 'shape' => 'SubDomainSettings', ], ], ], 'UpdateDomainAssociationResult' => [ 'type' => 'structure', 'required' => [ 'domainAssociation', ], 'members' => [ 'domainAssociation' => [ 'shape' => 'DomainAssociation', ], ], ], 'UpdateTime' => [ 'type' => 'timestamp', ], 'Verified' => [ 'type' => 'boolean', ], ],]; diff --git a/lib/aws/Aws/data/amplify/2017-07-25/paginators-1.json.php b/lib/aws/Aws/data/amplify/2017-07-25/paginators-1.json.php new file mode 100644 index 0000000..0c1f93c --- /dev/null +++ b/lib/aws/Aws/data/amplify/2017-07-25/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/amplify/2017-07-25/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/apigateway/2015-07-09/api-2.json.php b/lib/aws/Aws/data/apigateway/2015-07-09/api-2.json.php new file mode 100644 index 0000000..6062638 --- /dev/null +++ b/lib/aws/Aws/data/apigateway/2015-07-09/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/apigateway/2015-07-09/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-07-09', 'endpointPrefix' => 'apigateway', 'protocol' => 'rest-json', 'serviceFullName' => 'Amazon API Gateway', 'serviceId' => 'API Gateway', 'signatureVersion' => 'v4', 'uid' => 'apigateway-2015-07-09', ], 'operations' => [ 'CreateApiKey' => [ 'name' => 'CreateApiKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/apikeys', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateApiKeyRequest', ], 'output' => [ 'shape' => 'ApiKey', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'CreateAuthorizer' => [ 'name' => 'CreateAuthorizer', 'http' => [ 'method' => 'POST', 'requestUri' => '/restapis/{restapi_id}/authorizers', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateAuthorizerRequest', ], 'output' => [ 'shape' => 'Authorizer', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateBasePathMapping' => [ 'name' => 'CreateBasePathMapping', 'http' => [ 'method' => 'POST', 'requestUri' => '/domainnames/{domain_name}/basepathmappings', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateBasePathMappingRequest', ], 'output' => [ 'shape' => 'BasePathMapping', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateDeployment' => [ 'name' => 'CreateDeployment', 'http' => [ 'method' => 'POST', 'requestUri' => '/restapis/{restapi_id}/deployments', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDeploymentRequest', ], 'output' => [ 'shape' => 'Deployment', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'CreateDocumentationPart' => [ 'name' => 'CreateDocumentationPart', 'http' => [ 'method' => 'POST', 'requestUri' => '/restapis/{restapi_id}/documentation/parts', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDocumentationPartRequest', ], 'output' => [ 'shape' => 'DocumentationPart', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateDocumentationVersion' => [ 'name' => 'CreateDocumentationVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/restapis/{restapi_id}/documentation/versions', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDocumentationVersionRequest', ], 'output' => [ 'shape' => 'DocumentationVersion', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateDomainName' => [ 'name' => 'CreateDomainName', 'http' => [ 'method' => 'POST', 'requestUri' => '/domainnames', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDomainNameRequest', ], 'output' => [ 'shape' => 'DomainName', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateModel' => [ 'name' => 'CreateModel', 'http' => [ 'method' => 'POST', 'requestUri' => '/restapis/{restapi_id}/models', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateModelRequest', ], 'output' => [ 'shape' => 'Model', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateRequestValidator' => [ 'name' => 'CreateRequestValidator', 'http' => [ 'method' => 'POST', 'requestUri' => '/restapis/{restapi_id}/requestvalidators', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateRequestValidatorRequest', ], 'output' => [ 'shape' => 'RequestValidator', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateResource' => [ 'name' => 'CreateResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/restapis/{restapi_id}/resources/{parent_id}', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateResourceRequest', ], 'output' => [ 'shape' => 'Resource', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateRestApi' => [ 'name' => 'CreateRestApi', 'http' => [ 'method' => 'POST', 'requestUri' => '/restapis', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateRestApiRequest', ], 'output' => [ 'shape' => 'RestApi', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateStage' => [ 'name' => 'CreateStage', 'http' => [ 'method' => 'POST', 'requestUri' => '/restapis/{restapi_id}/stages', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStageRequest', ], 'output' => [ 'shape' => 'Stage', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateUsagePlan' => [ 'name' => 'CreateUsagePlan', 'http' => [ 'method' => 'POST', 'requestUri' => '/usageplans', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateUsagePlanRequest', ], 'output' => [ 'shape' => 'UsagePlan', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'NotFoundException', ], ], ], 'CreateUsagePlanKey' => [ 'name' => 'CreateUsagePlanKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/usageplans/{usageplanId}/keys', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateUsagePlanKeyRequest', ], 'output' => [ 'shape' => 'UsagePlanKey', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateVpcLink' => [ 'name' => 'CreateVpcLink', 'http' => [ 'method' => 'POST', 'requestUri' => '/vpclinks', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateVpcLinkRequest', ], 'output' => [ 'shape' => 'VpcLink', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteApiKey' => [ 'name' => 'DeleteApiKey', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/apikeys/{api_Key}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteApiKeyRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteAuthorizer' => [ 'name' => 'DeleteAuthorizer', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/restapis/{restapi_id}/authorizers/{authorizer_id}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteAuthorizerRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'DeleteBasePathMapping' => [ 'name' => 'DeleteBasePathMapping', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/domainnames/{domain_name}/basepathmappings/{base_path}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteBasePathMappingRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteClientCertificate' => [ 'name' => 'DeleteClientCertificate', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/clientcertificates/{clientcertificate_id}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteClientCertificateRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], ], ], 'DeleteDeployment' => [ 'name' => 'DeleteDeployment', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/restapis/{restapi_id}/deployments/{deployment_id}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteDeploymentRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteDocumentationPart' => [ 'name' => 'DeleteDocumentationPart', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/restapis/{restapi_id}/documentation/parts/{part_id}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteDocumentationPartRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'BadRequestException', ], ], ], 'DeleteDocumentationVersion' => [ 'name' => 'DeleteDocumentationVersion', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/restapis/{restapi_id}/documentation/versions/{doc_version}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteDocumentationVersionRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteDomainName' => [ 'name' => 'DeleteDomainName', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/domainnames/{domain_name}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteDomainNameRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteGatewayResponse' => [ 'name' => 'DeleteGatewayResponse', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/restapis/{restapi_id}/gatewayresponses/{response_type}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteGatewayResponseRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'DeleteIntegration' => [ 'name' => 'DeleteIntegration', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteIntegrationRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'DeleteIntegrationResponse' => [ 'name' => 'DeleteIntegrationResponse', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteIntegrationResponseRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'DeleteMethod' => [ 'name' => 'DeleteMethod', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteMethodRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'DeleteMethodResponse' => [ 'name' => 'DeleteMethodResponse', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteMethodResponseRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'DeleteModel' => [ 'name' => 'DeleteModel', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/restapis/{restapi_id}/models/{model_name}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteModelRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'DeleteRequestValidator' => [ 'name' => 'DeleteRequestValidator', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/restapis/{restapi_id}/requestvalidators/{requestvalidator_id}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteRequestValidatorRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'DeleteResource' => [ 'name' => 'DeleteResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/restapis/{restapi_id}/resources/{resource_id}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteResourceRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteRestApi' => [ 'name' => 'DeleteRestApi', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/restapis/{restapi_id}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteRestApiRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'DeleteStage' => [ 'name' => 'DeleteStage', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/restapis/{restapi_id}/stages/{stage_name}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteStageRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'DeleteUsagePlan' => [ 'name' => 'DeleteUsagePlan', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/usageplans/{usageplanId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteUsagePlanRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], ], ], 'DeleteUsagePlanKey' => [ 'name' => 'DeleteUsagePlanKey', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/usageplans/{usageplanId}/keys/{keyId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteUsagePlanKeyRequest', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteVpcLink' => [ 'name' => 'DeleteVpcLink', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/vpclinks/{vpclink_id}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteVpcLinkRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'FlushStageAuthorizersCache' => [ 'name' => 'FlushStageAuthorizersCache', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/restapis/{restapi_id}/stages/{stage_name}/cache/authorizers', 'responseCode' => 202, ], 'input' => [ 'shape' => 'FlushStageAuthorizersCacheRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'FlushStageCache' => [ 'name' => 'FlushStageCache', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/restapis/{restapi_id}/stages/{stage_name}/cache/data', 'responseCode' => 202, ], 'input' => [ 'shape' => 'FlushStageCacheRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GenerateClientCertificate' => [ 'name' => 'GenerateClientCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/clientcertificates', 'responseCode' => 201, ], 'input' => [ 'shape' => 'GenerateClientCertificateRequest', ], 'output' => [ 'shape' => 'ClientCertificate', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'GetAccount' => [ 'name' => 'GetAccount', 'http' => [ 'method' => 'GET', 'requestUri' => '/account', ], 'input' => [ 'shape' => 'GetAccountRequest', ], 'output' => [ 'shape' => 'Account', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetApiKey' => [ 'name' => 'GetApiKey', 'http' => [ 'method' => 'GET', 'requestUri' => '/apikeys/{api_Key}', ], 'input' => [ 'shape' => 'GetApiKeyRequest', ], 'output' => [ 'shape' => 'ApiKey', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetApiKeys' => [ 'name' => 'GetApiKeys', 'http' => [ 'method' => 'GET', 'requestUri' => '/apikeys', ], 'input' => [ 'shape' => 'GetApiKeysRequest', ], 'output' => [ 'shape' => 'ApiKeys', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetAuthorizer' => [ 'name' => 'GetAuthorizer', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/authorizers/{authorizer_id}', ], 'input' => [ 'shape' => 'GetAuthorizerRequest', ], 'output' => [ 'shape' => 'Authorizer', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetAuthorizers' => [ 'name' => 'GetAuthorizers', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/authorizers', ], 'input' => [ 'shape' => 'GetAuthorizersRequest', ], 'output' => [ 'shape' => 'Authorizers', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetBasePathMapping' => [ 'name' => 'GetBasePathMapping', 'http' => [ 'method' => 'GET', 'requestUri' => '/domainnames/{domain_name}/basepathmappings/{base_path}', ], 'input' => [ 'shape' => 'GetBasePathMappingRequest', ], 'output' => [ 'shape' => 'BasePathMapping', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetBasePathMappings' => [ 'name' => 'GetBasePathMappings', 'http' => [ 'method' => 'GET', 'requestUri' => '/domainnames/{domain_name}/basepathmappings', ], 'input' => [ 'shape' => 'GetBasePathMappingsRequest', ], 'output' => [ 'shape' => 'BasePathMappings', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetClientCertificate' => [ 'name' => 'GetClientCertificate', 'http' => [ 'method' => 'GET', 'requestUri' => '/clientcertificates/{clientcertificate_id}', ], 'input' => [ 'shape' => 'GetClientCertificateRequest', ], 'output' => [ 'shape' => 'ClientCertificate', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetClientCertificates' => [ 'name' => 'GetClientCertificates', 'http' => [ 'method' => 'GET', 'requestUri' => '/clientcertificates', ], 'input' => [ 'shape' => 'GetClientCertificatesRequest', ], 'output' => [ 'shape' => 'ClientCertificates', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetDeployment' => [ 'name' => 'GetDeployment', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/deployments/{deployment_id}', ], 'input' => [ 'shape' => 'GetDeploymentRequest', ], 'output' => [ 'shape' => 'Deployment', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'GetDeployments' => [ 'name' => 'GetDeployments', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/deployments', ], 'input' => [ 'shape' => 'GetDeploymentsRequest', ], 'output' => [ 'shape' => 'Deployments', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'GetDocumentationPart' => [ 'name' => 'GetDocumentationPart', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/documentation/parts/{part_id}', ], 'input' => [ 'shape' => 'GetDocumentationPartRequest', ], 'output' => [ 'shape' => 'DocumentationPart', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetDocumentationParts' => [ 'name' => 'GetDocumentationParts', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/documentation/parts', ], 'input' => [ 'shape' => 'GetDocumentationPartsRequest', ], 'output' => [ 'shape' => 'DocumentationParts', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetDocumentationVersion' => [ 'name' => 'GetDocumentationVersion', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/documentation/versions/{doc_version}', ], 'input' => [ 'shape' => 'GetDocumentationVersionRequest', ], 'output' => [ 'shape' => 'DocumentationVersion', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetDocumentationVersions' => [ 'name' => 'GetDocumentationVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/documentation/versions', ], 'input' => [ 'shape' => 'GetDocumentationVersionsRequest', ], 'output' => [ 'shape' => 'DocumentationVersions', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetDomainName' => [ 'name' => 'GetDomainName', 'http' => [ 'method' => 'GET', 'requestUri' => '/domainnames/{domain_name}', ], 'input' => [ 'shape' => 'GetDomainNameRequest', ], 'output' => [ 'shape' => 'DomainName', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetDomainNames' => [ 'name' => 'GetDomainNames', 'http' => [ 'method' => 'GET', 'requestUri' => '/domainnames', ], 'input' => [ 'shape' => 'GetDomainNamesRequest', ], 'output' => [ 'shape' => 'DomainNames', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetExport' => [ 'name' => 'GetExport', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/stages/{stage_name}/exports/{export_type}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetExportRequest', ], 'output' => [ 'shape' => 'ExportResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetGatewayResponse' => [ 'name' => 'GetGatewayResponse', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/gatewayresponses/{response_type}', ], 'input' => [ 'shape' => 'GetGatewayResponseRequest', ], 'output' => [ 'shape' => 'GatewayResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetGatewayResponses' => [ 'name' => 'GetGatewayResponses', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/gatewayresponses', ], 'input' => [ 'shape' => 'GetGatewayResponsesRequest', ], 'output' => [ 'shape' => 'GatewayResponses', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetIntegration' => [ 'name' => 'GetIntegration', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration', ], 'input' => [ 'shape' => 'GetIntegrationRequest', ], 'output' => [ 'shape' => 'Integration', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetIntegrationResponse' => [ 'name' => 'GetIntegrationResponse', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}', ], 'input' => [ 'shape' => 'GetIntegrationResponseRequest', ], 'output' => [ 'shape' => 'IntegrationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetMethod' => [ 'name' => 'GetMethod', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}', ], 'input' => [ 'shape' => 'GetMethodRequest', ], 'output' => [ 'shape' => 'Method', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetMethodResponse' => [ 'name' => 'GetMethodResponse', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}', ], 'input' => [ 'shape' => 'GetMethodResponseRequest', ], 'output' => [ 'shape' => 'MethodResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetModel' => [ 'name' => 'GetModel', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/models/{model_name}', ], 'input' => [ 'shape' => 'GetModelRequest', ], 'output' => [ 'shape' => 'Model', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetModelTemplate' => [ 'name' => 'GetModelTemplate', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/models/{model_name}/default_template', ], 'input' => [ 'shape' => 'GetModelTemplateRequest', ], 'output' => [ 'shape' => 'Template', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetModels' => [ 'name' => 'GetModels', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/models', ], 'input' => [ 'shape' => 'GetModelsRequest', ], 'output' => [ 'shape' => 'Models', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetRequestValidator' => [ 'name' => 'GetRequestValidator', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/requestvalidators/{requestvalidator_id}', ], 'input' => [ 'shape' => 'GetRequestValidatorRequest', ], 'output' => [ 'shape' => 'RequestValidator', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetRequestValidators' => [ 'name' => 'GetRequestValidators', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/requestvalidators', ], 'input' => [ 'shape' => 'GetRequestValidatorsRequest', ], 'output' => [ 'shape' => 'RequestValidators', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetResource' => [ 'name' => 'GetResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/resources/{resource_id}', ], 'input' => [ 'shape' => 'GetResourceRequest', ], 'output' => [ 'shape' => 'Resource', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetResources' => [ 'name' => 'GetResources', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/resources', ], 'input' => [ 'shape' => 'GetResourcesRequest', ], 'output' => [ 'shape' => 'Resources', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetRestApi' => [ 'name' => 'GetRestApi', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}', ], 'input' => [ 'shape' => 'GetRestApiRequest', ], 'output' => [ 'shape' => 'RestApi', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetRestApis' => [ 'name' => 'GetRestApis', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis', ], 'input' => [ 'shape' => 'GetRestApisRequest', ], 'output' => [ 'shape' => 'RestApis', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetSdk' => [ 'name' => 'GetSdk', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/stages/{stage_name}/sdks/{sdk_type}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetSdkRequest', ], 'output' => [ 'shape' => 'SdkResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetSdkType' => [ 'name' => 'GetSdkType', 'http' => [ 'method' => 'GET', 'requestUri' => '/sdktypes/{sdktype_id}', ], 'input' => [ 'shape' => 'GetSdkTypeRequest', ], 'output' => [ 'shape' => 'SdkType', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetSdkTypes' => [ 'name' => 'GetSdkTypes', 'http' => [ 'method' => 'GET', 'requestUri' => '/sdktypes', ], 'input' => [ 'shape' => 'GetSdkTypesRequest', ], 'output' => [ 'shape' => 'SdkTypes', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetStage' => [ 'name' => 'GetStage', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/stages/{stage_name}', ], 'input' => [ 'shape' => 'GetStageRequest', ], 'output' => [ 'shape' => 'Stage', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetStages' => [ 'name' => 'GetStages', 'http' => [ 'method' => 'GET', 'requestUri' => '/restapis/{restapi_id}/stages', ], 'input' => [ 'shape' => 'GetStagesRequest', ], 'output' => [ 'shape' => 'Stages', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetTags' => [ 'name' => 'GetTags', 'http' => [ 'method' => 'GET', 'requestUri' => '/tags/{resource_arn}', ], 'input' => [ 'shape' => 'GetTagsRequest', ], 'output' => [ 'shape' => 'Tags', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'GetUsage' => [ 'name' => 'GetUsage', 'http' => [ 'method' => 'GET', 'requestUri' => '/usageplans/{usageplanId}/usage', ], 'input' => [ 'shape' => 'GetUsageRequest', ], 'output' => [ 'shape' => 'Usage', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetUsagePlan' => [ 'name' => 'GetUsagePlan', 'http' => [ 'method' => 'GET', 'requestUri' => '/usageplans/{usageplanId}', ], 'input' => [ 'shape' => 'GetUsagePlanRequest', ], 'output' => [ 'shape' => 'UsagePlan', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetUsagePlanKey' => [ 'name' => 'GetUsagePlanKey', 'http' => [ 'method' => 'GET', 'requestUri' => '/usageplans/{usageplanId}/keys/{keyId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetUsagePlanKeyRequest', ], 'output' => [ 'shape' => 'UsagePlanKey', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetUsagePlanKeys' => [ 'name' => 'GetUsagePlanKeys', 'http' => [ 'method' => 'GET', 'requestUri' => '/usageplans/{usageplanId}/keys', ], 'input' => [ 'shape' => 'GetUsagePlanKeysRequest', ], 'output' => [ 'shape' => 'UsagePlanKeys', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetUsagePlans' => [ 'name' => 'GetUsagePlans', 'http' => [ 'method' => 'GET', 'requestUri' => '/usageplans', ], 'input' => [ 'shape' => 'GetUsagePlansRequest', ], 'output' => [ 'shape' => 'UsagePlans', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'NotFoundException', ], ], ], 'GetVpcLink' => [ 'name' => 'GetVpcLink', 'http' => [ 'method' => 'GET', 'requestUri' => '/vpclinks/{vpclink_id}', ], 'input' => [ 'shape' => 'GetVpcLinkRequest', ], 'output' => [ 'shape' => 'VpcLink', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetVpcLinks' => [ 'name' => 'GetVpcLinks', 'http' => [ 'method' => 'GET', 'requestUri' => '/vpclinks', ], 'input' => [ 'shape' => 'GetVpcLinksRequest', ], 'output' => [ 'shape' => 'VpcLinks', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ImportApiKeys' => [ 'name' => 'ImportApiKeys', 'http' => [ 'method' => 'POST', 'requestUri' => '/apikeys?mode=import', 'responseCode' => 201, ], 'input' => [ 'shape' => 'ImportApiKeysRequest', ], 'output' => [ 'shape' => 'ApiKeyIds', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'ImportDocumentationParts' => [ 'name' => 'ImportDocumentationParts', 'http' => [ 'method' => 'PUT', 'requestUri' => '/restapis/{restapi_id}/documentation/parts', ], 'input' => [ 'shape' => 'ImportDocumentationPartsRequest', ], 'output' => [ 'shape' => 'DocumentationPartIds', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ImportRestApi' => [ 'name' => 'ImportRestApi', 'http' => [ 'method' => 'POST', 'requestUri' => '/restapis?mode=import', 'responseCode' => 201, ], 'input' => [ 'shape' => 'ImportRestApiRequest', ], 'output' => [ 'shape' => 'RestApi', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'PutGatewayResponse' => [ 'name' => 'PutGatewayResponse', 'http' => [ 'method' => 'PUT', 'requestUri' => '/restapis/{restapi_id}/gatewayresponses/{response_type}', 'responseCode' => 201, ], 'input' => [ 'shape' => 'PutGatewayResponseRequest', ], 'output' => [ 'shape' => 'GatewayResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'PutIntegration' => [ 'name' => 'PutIntegration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration', 'responseCode' => 201, ], 'input' => [ 'shape' => 'PutIntegrationRequest', ], 'output' => [ 'shape' => 'Integration', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'PutIntegrationResponse' => [ 'name' => 'PutIntegrationResponse', 'http' => [ 'method' => 'PUT', 'requestUri' => '/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}', 'responseCode' => 201, ], 'input' => [ 'shape' => 'PutIntegrationResponseRequest', ], 'output' => [ 'shape' => 'IntegrationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'PutMethod' => [ 'name' => 'PutMethod', 'http' => [ 'method' => 'PUT', 'requestUri' => '/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}', 'responseCode' => 201, ], 'input' => [ 'shape' => 'PutMethodRequest', ], 'output' => [ 'shape' => 'Method', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'PutMethodResponse' => [ 'name' => 'PutMethodResponse', 'http' => [ 'method' => 'PUT', 'requestUri' => '/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}', 'responseCode' => 201, ], 'input' => [ 'shape' => 'PutMethodResponseRequest', ], 'output' => [ 'shape' => 'MethodResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'PutRestApi' => [ 'name' => 'PutRestApi', 'http' => [ 'method' => 'PUT', 'requestUri' => '/restapis/{restapi_id}', ], 'input' => [ 'shape' => 'PutRestApiRequest', ], 'output' => [ 'shape' => 'RestApi', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'PUT', 'requestUri' => '/tags/{resource_arn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ConflictException', ], ], ], 'TestInvokeAuthorizer' => [ 'name' => 'TestInvokeAuthorizer', 'http' => [ 'method' => 'POST', 'requestUri' => '/restapis/{restapi_id}/authorizers/{authorizer_id}', ], 'input' => [ 'shape' => 'TestInvokeAuthorizerRequest', ], 'output' => [ 'shape' => 'TestInvokeAuthorizerResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'TestInvokeMethod' => [ 'name' => 'TestInvokeMethod', 'http' => [ 'method' => 'POST', 'requestUri' => '/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}', ], 'input' => [ 'shape' => 'TestInvokeMethodRequest', ], 'output' => [ 'shape' => 'TestInvokeMethodResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/tags/{resource_arn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateAccount' => [ 'name' => 'UpdateAccount', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/account', ], 'input' => [ 'shape' => 'UpdateAccountRequest', ], 'output' => [ 'shape' => 'Account', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateApiKey' => [ 'name' => 'UpdateApiKey', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/apikeys/{api_Key}', ], 'input' => [ 'shape' => 'UpdateApiKeyRequest', ], 'output' => [ 'shape' => 'ApiKey', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateAuthorizer' => [ 'name' => 'UpdateAuthorizer', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/restapis/{restapi_id}/authorizers/{authorizer_id}', ], 'input' => [ 'shape' => 'UpdateAuthorizerRequest', ], 'output' => [ 'shape' => 'Authorizer', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateBasePathMapping' => [ 'name' => 'UpdateBasePathMapping', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/domainnames/{domain_name}/basepathmappings/{base_path}', ], 'input' => [ 'shape' => 'UpdateBasePathMappingRequest', ], 'output' => [ 'shape' => 'BasePathMapping', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateClientCertificate' => [ 'name' => 'UpdateClientCertificate', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/clientcertificates/{clientcertificate_id}', ], 'input' => [ 'shape' => 'UpdateClientCertificateRequest', ], 'output' => [ 'shape' => 'ClientCertificate', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], ], ], 'UpdateDeployment' => [ 'name' => 'UpdateDeployment', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/restapis/{restapi_id}/deployments/{deployment_id}', ], 'input' => [ 'shape' => 'UpdateDeploymentRequest', ], 'output' => [ 'shape' => 'Deployment', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'UpdateDocumentationPart' => [ 'name' => 'UpdateDocumentationPart', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/restapis/{restapi_id}/documentation/parts/{part_id}', ], 'input' => [ 'shape' => 'UpdateDocumentationPartRequest', ], 'output' => [ 'shape' => 'DocumentationPart', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateDocumentationVersion' => [ 'name' => 'UpdateDocumentationVersion', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/restapis/{restapi_id}/documentation/versions/{doc_version}', ], 'input' => [ 'shape' => 'UpdateDocumentationVersionRequest', ], 'output' => [ 'shape' => 'DocumentationVersion', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateDomainName' => [ 'name' => 'UpdateDomainName', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/domainnames/{domain_name}', ], 'input' => [ 'shape' => 'UpdateDomainNameRequest', ], 'output' => [ 'shape' => 'DomainName', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateGatewayResponse' => [ 'name' => 'UpdateGatewayResponse', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/restapis/{restapi_id}/gatewayresponses/{response_type}', ], 'input' => [ 'shape' => 'UpdateGatewayResponseRequest', ], 'output' => [ 'shape' => 'GatewayResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateIntegration' => [ 'name' => 'UpdateIntegration', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration', ], 'input' => [ 'shape' => 'UpdateIntegrationRequest', ], 'output' => [ 'shape' => 'Integration', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateIntegrationResponse' => [ 'name' => 'UpdateIntegrationResponse', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}', ], 'input' => [ 'shape' => 'UpdateIntegrationResponseRequest', ], 'output' => [ 'shape' => 'IntegrationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateMethod' => [ 'name' => 'UpdateMethod', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}', ], 'input' => [ 'shape' => 'UpdateMethodRequest', ], 'output' => [ 'shape' => 'Method', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateMethodResponse' => [ 'name' => 'UpdateMethodResponse', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}', 'responseCode' => 201, ], 'input' => [ 'shape' => 'UpdateMethodResponseRequest', ], 'output' => [ 'shape' => 'MethodResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateModel' => [ 'name' => 'UpdateModel', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/restapis/{restapi_id}/models/{model_name}', ], 'input' => [ 'shape' => 'UpdateModelRequest', ], 'output' => [ 'shape' => 'Model', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateRequestValidator' => [ 'name' => 'UpdateRequestValidator', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/restapis/{restapi_id}/requestvalidators/{requestvalidator_id}', ], 'input' => [ 'shape' => 'UpdateRequestValidatorRequest', ], 'output' => [ 'shape' => 'RequestValidator', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateResource' => [ 'name' => 'UpdateResource', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/restapis/{restapi_id}/resources/{resource_id}', ], 'input' => [ 'shape' => 'UpdateResourceRequest', ], 'output' => [ 'shape' => 'Resource', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateRestApi' => [ 'name' => 'UpdateRestApi', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/restapis/{restapi_id}', ], 'input' => [ 'shape' => 'UpdateRestApiRequest', ], 'output' => [ 'shape' => 'RestApi', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateStage' => [ 'name' => 'UpdateStage', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/restapis/{restapi_id}/stages/{stage_name}', ], 'input' => [ 'shape' => 'UpdateStageRequest', ], 'output' => [ 'shape' => 'Stage', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateUsage' => [ 'name' => 'UpdateUsage', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/usageplans/{usageplanId}/keys/{keyId}/usage', ], 'input' => [ 'shape' => 'UpdateUsageRequest', ], 'output' => [ 'shape' => 'Usage', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], ], ], 'UpdateUsagePlan' => [ 'name' => 'UpdateUsagePlan', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/usageplans/{usageplanId}', ], 'input' => [ 'shape' => 'UpdateUsagePlanRequest', ], 'output' => [ 'shape' => 'UsagePlan', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateVpcLink' => [ 'name' => 'UpdateVpcLink', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/vpclinks/{vpclink_id}', ], 'input' => [ 'shape' => 'UpdateVpcLinkRequest', ], 'output' => [ 'shape' => 'VpcLink', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], ], 'shapes' => [ 'AccessLogSettings' => [ 'type' => 'structure', 'members' => [ 'format' => [ 'shape' => 'String', ], 'destinationArn' => [ 'shape' => 'String', ], ], ], 'Account' => [ 'type' => 'structure', 'members' => [ 'cloudwatchRoleArn' => [ 'shape' => 'String', ], 'throttleSettings' => [ 'shape' => 'ThrottleSettings', ], 'features' => [ 'shape' => 'ListOfString', ], 'apiKeyVersion' => [ 'shape' => 'String', ], ], ], 'ApiKey' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], 'name' => [ 'shape' => 'String', ], 'customerId' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'enabled' => [ 'shape' => 'Boolean', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'lastUpdatedDate' => [ 'shape' => 'Timestamp', ], 'stageKeys' => [ 'shape' => 'ListOfString', ], ], ], 'ApiKeyIds' => [ 'type' => 'structure', 'members' => [ 'ids' => [ 'shape' => 'ListOfString', ], 'warnings' => [ 'shape' => 'ListOfString', ], ], ], 'ApiKeySourceType' => [ 'type' => 'string', 'enum' => [ 'HEADER', 'AUTHORIZER', ], ], 'ApiKeys' => [ 'type' => 'structure', 'members' => [ 'warnings' => [ 'shape' => 'ListOfString', ], 'position' => [ 'shape' => 'String', ], 'items' => [ 'shape' => 'ListOfApiKey', 'locationName' => 'item', ], ], ], 'ApiKeysFormat' => [ 'type' => 'string', 'enum' => [ 'csv', ], ], 'ApiStage' => [ 'type' => 'structure', 'members' => [ 'apiId' => [ 'shape' => 'String', ], 'stage' => [ 'shape' => 'String', ], 'throttle' => [ 'shape' => 'MapOfApiStageThrottleSettings', ], ], ], 'Authorizer' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'name' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'AuthorizerType', ], 'providerARNs' => [ 'shape' => 'ListOfARNs', ], 'authType' => [ 'shape' => 'String', ], 'authorizerUri' => [ 'shape' => 'String', ], 'authorizerCredentials' => [ 'shape' => 'String', ], 'identitySource' => [ 'shape' => 'String', ], 'identityValidationExpression' => [ 'shape' => 'String', ], 'authorizerResultTtlInSeconds' => [ 'shape' => 'NullableInteger', ], ], ], 'AuthorizerType' => [ 'type' => 'string', 'enum' => [ 'TOKEN', 'REQUEST', 'COGNITO_USER_POOLS', ], ], 'Authorizers' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', ], 'items' => [ 'shape' => 'ListOfAuthorizer', 'locationName' => 'item', ], ], ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'BasePathMapping' => [ 'type' => 'structure', 'members' => [ 'basePath' => [ 'shape' => 'String', ], 'restApiId' => [ 'shape' => 'String', ], 'stage' => [ 'shape' => 'String', ], ], ], 'BasePathMappings' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', ], 'items' => [ 'shape' => 'ListOfBasePathMapping', 'locationName' => 'item', ], ], ], 'Blob' => [ 'type' => 'blob', ], 'Boolean' => [ 'type' => 'boolean', ], 'CacheClusterSize' => [ 'type' => 'string', 'enum' => [ '0.5', '1.6', '6.1', '13.5', '28.4', '58.2', '118', '237', ], ], 'CacheClusterStatus' => [ 'type' => 'string', 'enum' => [ 'CREATE_IN_PROGRESS', 'AVAILABLE', 'DELETE_IN_PROGRESS', 'NOT_AVAILABLE', 'FLUSH_IN_PROGRESS', ], ], 'CanarySettings' => [ 'type' => 'structure', 'members' => [ 'percentTraffic' => [ 'shape' => 'Double', ], 'deploymentId' => [ 'shape' => 'String', ], 'stageVariableOverrides' => [ 'shape' => 'MapOfStringToString', ], 'useStageCache' => [ 'shape' => 'Boolean', ], ], ], 'ClientCertificate' => [ 'type' => 'structure', 'members' => [ 'clientCertificateId' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'pemEncodedCertificate' => [ 'shape' => 'String', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'expirationDate' => [ 'shape' => 'Timestamp', ], ], ], 'ClientCertificates' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', ], 'items' => [ 'shape' => 'ListOfClientCertificate', 'locationName' => 'item', ], ], ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'ConnectionType' => [ 'type' => 'string', 'enum' => [ 'INTERNET', 'VPC_LINK', ], ], 'ContentHandlingStrategy' => [ 'type' => 'string', 'enum' => [ 'CONVERT_TO_BINARY', 'CONVERT_TO_TEXT', ], ], 'CreateApiKeyRequest' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'enabled' => [ 'shape' => 'Boolean', ], 'generateDistinctId' => [ 'shape' => 'Boolean', ], 'value' => [ 'shape' => 'String', ], 'stageKeys' => [ 'shape' => 'ListOfStageKeys', ], 'customerId' => [ 'shape' => 'String', ], ], ], 'CreateAuthorizerRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'name', 'type', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'name' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'AuthorizerType', ], 'providerARNs' => [ 'shape' => 'ListOfARNs', ], 'authType' => [ 'shape' => 'String', ], 'authorizerUri' => [ 'shape' => 'String', ], 'authorizerCredentials' => [ 'shape' => 'String', ], 'identitySource' => [ 'shape' => 'String', ], 'identityValidationExpression' => [ 'shape' => 'String', ], 'authorizerResultTtlInSeconds' => [ 'shape' => 'NullableInteger', ], ], ], 'CreateBasePathMappingRequest' => [ 'type' => 'structure', 'required' => [ 'domainName', 'restApiId', ], 'members' => [ 'domainName' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'domain_name', ], 'basePath' => [ 'shape' => 'String', ], 'restApiId' => [ 'shape' => 'String', ], 'stage' => [ 'shape' => 'String', ], ], ], 'CreateDeploymentRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'stageName' => [ 'shape' => 'String', ], 'stageDescription' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'cacheClusterEnabled' => [ 'shape' => 'NullableBoolean', ], 'cacheClusterSize' => [ 'shape' => 'CacheClusterSize', ], 'variables' => [ 'shape' => 'MapOfStringToString', ], 'canarySettings' => [ 'shape' => 'DeploymentCanarySettings', ], 'tracingEnabled' => [ 'shape' => 'NullableBoolean', ], ], ], 'CreateDocumentationPartRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'location', 'properties', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'location' => [ 'shape' => 'DocumentationPartLocation', ], 'properties' => [ 'shape' => 'String', ], ], ], 'CreateDocumentationVersionRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'documentationVersion', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'documentationVersion' => [ 'shape' => 'String', ], 'stageName' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], ], ], 'CreateDomainNameRequest' => [ 'type' => 'structure', 'required' => [ 'domainName', ], 'members' => [ 'domainName' => [ 'shape' => 'String', ], 'certificateName' => [ 'shape' => 'String', ], 'certificateBody' => [ 'shape' => 'String', ], 'certificatePrivateKey' => [ 'shape' => 'String', ], 'certificateChain' => [ 'shape' => 'String', ], 'certificateArn' => [ 'shape' => 'String', ], 'regionalCertificateName' => [ 'shape' => 'String', ], 'regionalCertificateArn' => [ 'shape' => 'String', ], 'endpointConfiguration' => [ 'shape' => 'EndpointConfiguration', ], ], ], 'CreateModelRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'name', 'contentType', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'name' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'schema' => [ 'shape' => 'String', ], 'contentType' => [ 'shape' => 'String', ], ], ], 'CreateRequestValidatorRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'name' => [ 'shape' => 'String', ], 'validateRequestBody' => [ 'shape' => 'Boolean', ], 'validateRequestParameters' => [ 'shape' => 'Boolean', ], ], ], 'CreateResourceRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'parentId', 'pathPart', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'parentId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'parent_id', ], 'pathPart' => [ 'shape' => 'String', ], ], ], 'CreateRestApiRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'version' => [ 'shape' => 'String', ], 'cloneFrom' => [ 'shape' => 'String', ], 'binaryMediaTypes' => [ 'shape' => 'ListOfString', ], 'minimumCompressionSize' => [ 'shape' => 'NullableInteger', ], 'apiKeySource' => [ 'shape' => 'ApiKeySourceType', ], 'endpointConfiguration' => [ 'shape' => 'EndpointConfiguration', ], 'policy' => [ 'shape' => 'String', ], ], ], 'CreateStageRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'stageName', 'deploymentId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'stageName' => [ 'shape' => 'String', ], 'deploymentId' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'cacheClusterEnabled' => [ 'shape' => 'Boolean', ], 'cacheClusterSize' => [ 'shape' => 'CacheClusterSize', ], 'variables' => [ 'shape' => 'MapOfStringToString', ], 'documentationVersion' => [ 'shape' => 'String', ], 'canarySettings' => [ 'shape' => 'CanarySettings', ], 'tracingEnabled' => [ 'shape' => 'Boolean', ], 'tags' => [ 'shape' => 'MapOfStringToString', ], ], ], 'CreateUsagePlanKeyRequest' => [ 'type' => 'structure', 'required' => [ 'usagePlanId', 'keyId', 'keyType', ], 'members' => [ 'usagePlanId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'usageplanId', ], 'keyId' => [ 'shape' => 'String', ], 'keyType' => [ 'shape' => 'String', ], ], ], 'CreateUsagePlanRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'apiStages' => [ 'shape' => 'ListOfApiStage', ], 'throttle' => [ 'shape' => 'ThrottleSettings', ], 'quota' => [ 'shape' => 'QuotaSettings', ], ], ], 'CreateVpcLinkRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'targetArns', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'targetArns' => [ 'shape' => 'ListOfString', ], ], ], 'DeleteApiKeyRequest' => [ 'type' => 'structure', 'required' => [ 'apiKey', ], 'members' => [ 'apiKey' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'api_Key', ], ], ], 'DeleteAuthorizerRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'authorizerId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'authorizerId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'authorizer_id', ], ], ], 'DeleteBasePathMappingRequest' => [ 'type' => 'structure', 'required' => [ 'domainName', 'basePath', ], 'members' => [ 'domainName' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'domain_name', ], 'basePath' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'base_path', ], ], ], 'DeleteClientCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'clientCertificateId', ], 'members' => [ 'clientCertificateId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'clientcertificate_id', ], ], ], 'DeleteDeploymentRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'deploymentId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'deploymentId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'deployment_id', ], ], ], 'DeleteDocumentationPartRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'documentationPartId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'documentationPartId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'part_id', ], ], ], 'DeleteDocumentationVersionRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'documentationVersion', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'documentationVersion' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'doc_version', ], ], ], 'DeleteDomainNameRequest' => [ 'type' => 'structure', 'required' => [ 'domainName', ], 'members' => [ 'domainName' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'domain_name', ], ], ], 'DeleteGatewayResponseRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'responseType', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'responseType' => [ 'shape' => 'GatewayResponseType', 'location' => 'uri', 'locationName' => 'response_type', ], ], ], 'DeleteIntegrationRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'resourceId', 'httpMethod', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'resourceId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_id', ], 'httpMethod' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'http_method', ], ], ], 'DeleteIntegrationResponseRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'resourceId', 'httpMethod', 'statusCode', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'resourceId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_id', ], 'httpMethod' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'http_method', ], 'statusCode' => [ 'shape' => 'StatusCode', 'location' => 'uri', 'locationName' => 'status_code', ], ], ], 'DeleteMethodRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'resourceId', 'httpMethod', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'resourceId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_id', ], 'httpMethod' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'http_method', ], ], ], 'DeleteMethodResponseRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'resourceId', 'httpMethod', 'statusCode', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'resourceId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_id', ], 'httpMethod' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'http_method', ], 'statusCode' => [ 'shape' => 'StatusCode', 'location' => 'uri', 'locationName' => 'status_code', ], ], ], 'DeleteModelRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'modelName', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'modelName' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'model_name', ], ], ], 'DeleteRequestValidatorRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'requestValidatorId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'requestValidatorId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'requestvalidator_id', ], ], ], 'DeleteResourceRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'resourceId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'resourceId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_id', ], ], ], 'DeleteRestApiRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], ], ], 'DeleteStageRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'stageName', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'stageName' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'stage_name', ], ], ], 'DeleteUsagePlanKeyRequest' => [ 'type' => 'structure', 'required' => [ 'usagePlanId', 'keyId', ], 'members' => [ 'usagePlanId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'usageplanId', ], 'keyId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'keyId', ], ], ], 'DeleteUsagePlanRequest' => [ 'type' => 'structure', 'required' => [ 'usagePlanId', ], 'members' => [ 'usagePlanId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'usageplanId', ], ], ], 'DeleteVpcLinkRequest' => [ 'type' => 'structure', 'required' => [ 'vpcLinkId', ], 'members' => [ 'vpcLinkId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'vpclink_id', ], ], ], 'Deployment' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'apiSummary' => [ 'shape' => 'PathToMapOfMethodSnapshot', ], ], ], 'DeploymentCanarySettings' => [ 'type' => 'structure', 'members' => [ 'percentTraffic' => [ 'shape' => 'Double', ], 'stageVariableOverrides' => [ 'shape' => 'MapOfStringToString', ], 'useStageCache' => [ 'shape' => 'Boolean', ], ], ], 'Deployments' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', ], 'items' => [ 'shape' => 'ListOfDeployment', 'locationName' => 'item', ], ], ], 'DocumentationPart' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'location' => [ 'shape' => 'DocumentationPartLocation', ], 'properties' => [ 'shape' => 'String', ], ], ], 'DocumentationPartIds' => [ 'type' => 'structure', 'members' => [ 'ids' => [ 'shape' => 'ListOfString', ], 'warnings' => [ 'shape' => 'ListOfString', ], ], ], 'DocumentationPartLocation' => [ 'type' => 'structure', 'required' => [ 'type', ], 'members' => [ 'type' => [ 'shape' => 'DocumentationPartType', ], 'path' => [ 'shape' => 'String', ], 'method' => [ 'shape' => 'String', ], 'statusCode' => [ 'shape' => 'DocumentationPartLocationStatusCode', ], 'name' => [ 'shape' => 'String', ], ], ], 'DocumentationPartLocationStatusCode' => [ 'type' => 'string', 'pattern' => '^([1-5]\\d\\d|\\*|\\s*)$', ], 'DocumentationPartType' => [ 'type' => 'string', 'enum' => [ 'API', 'AUTHORIZER', 'MODEL', 'RESOURCE', 'METHOD', 'PATH_PARAMETER', 'QUERY_PARAMETER', 'REQUEST_HEADER', 'REQUEST_BODY', 'RESPONSE', 'RESPONSE_HEADER', 'RESPONSE_BODY', ], ], 'DocumentationParts' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', ], 'items' => [ 'shape' => 'ListOfDocumentationPart', 'locationName' => 'item', ], ], ], 'DocumentationVersion' => [ 'type' => 'structure', 'members' => [ 'version' => [ 'shape' => 'String', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'description' => [ 'shape' => 'String', ], ], ], 'DocumentationVersions' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', ], 'items' => [ 'shape' => 'ListOfDocumentationVersion', 'locationName' => 'item', ], ], ], 'DomainName' => [ 'type' => 'structure', 'members' => [ 'domainName' => [ 'shape' => 'String', ], 'certificateName' => [ 'shape' => 'String', ], 'certificateArn' => [ 'shape' => 'String', ], 'certificateUploadDate' => [ 'shape' => 'Timestamp', ], 'regionalDomainName' => [ 'shape' => 'String', ], 'regionalHostedZoneId' => [ 'shape' => 'String', ], 'regionalCertificateName' => [ 'shape' => 'String', ], 'regionalCertificateArn' => [ 'shape' => 'String', ], 'distributionDomainName' => [ 'shape' => 'String', ], 'distributionHostedZoneId' => [ 'shape' => 'String', ], 'endpointConfiguration' => [ 'shape' => 'EndpointConfiguration', ], ], ], 'DomainNames' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', ], 'items' => [ 'shape' => 'ListOfDomainName', 'locationName' => 'item', ], ], ], 'Double' => [ 'type' => 'double', ], 'EndpointConfiguration' => [ 'type' => 'structure', 'members' => [ 'types' => [ 'shape' => 'ListOfEndpointType', ], ], ], 'EndpointType' => [ 'type' => 'string', 'enum' => [ 'REGIONAL', 'EDGE', 'PRIVATE', ], ], 'ExportResponse' => [ 'type' => 'structure', 'members' => [ 'contentType' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'Content-Type', ], 'contentDisposition' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'Content-Disposition', ], 'body' => [ 'shape' => 'Blob', ], ], 'payload' => 'body', ], 'FlushStageAuthorizersCacheRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'stageName', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'stageName' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'stage_name', ], ], ], 'FlushStageCacheRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'stageName', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'stageName' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'stage_name', ], ], ], 'GatewayResponse' => [ 'type' => 'structure', 'members' => [ 'responseType' => [ 'shape' => 'GatewayResponseType', ], 'statusCode' => [ 'shape' => 'StatusCode', ], 'responseParameters' => [ 'shape' => 'MapOfStringToString', ], 'responseTemplates' => [ 'shape' => 'MapOfStringToString', ], 'defaultResponse' => [ 'shape' => 'Boolean', ], ], ], 'GatewayResponseType' => [ 'type' => 'string', 'enum' => [ 'DEFAULT_4XX', 'DEFAULT_5XX', 'RESOURCE_NOT_FOUND', 'UNAUTHORIZED', 'INVALID_API_KEY', 'ACCESS_DENIED', 'AUTHORIZER_FAILURE', 'AUTHORIZER_CONFIGURATION_ERROR', 'INVALID_SIGNATURE', 'EXPIRED_TOKEN', 'MISSING_AUTHENTICATION_TOKEN', 'INTEGRATION_FAILURE', 'INTEGRATION_TIMEOUT', 'API_CONFIGURATION_ERROR', 'UNSUPPORTED_MEDIA_TYPE', 'BAD_REQUEST_PARAMETERS', 'BAD_REQUEST_BODY', 'REQUEST_TOO_LARGE', 'THROTTLED', 'QUOTA_EXCEEDED', ], ], 'GatewayResponses' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', ], 'items' => [ 'shape' => 'ListOfGatewayResponse', 'locationName' => 'item', ], ], ], 'GenerateClientCertificateRequest' => [ 'type' => 'structure', 'members' => [ 'description' => [ 'shape' => 'String', ], ], ], 'GetAccountRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetApiKeyRequest' => [ 'type' => 'structure', 'required' => [ 'apiKey', ], 'members' => [ 'apiKey' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'api_Key', ], 'includeValue' => [ 'shape' => 'NullableBoolean', 'location' => 'querystring', 'locationName' => 'includeValue', ], ], ], 'GetApiKeysRequest' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'position', ], 'limit' => [ 'shape' => 'NullableInteger', 'location' => 'querystring', 'locationName' => 'limit', ], 'nameQuery' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'name', ], 'customerId' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'customerId', ], 'includeValues' => [ 'shape' => 'NullableBoolean', 'location' => 'querystring', 'locationName' => 'includeValues', ], ], ], 'GetAuthorizerRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'authorizerId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'authorizerId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'authorizer_id', ], ], ], 'GetAuthorizersRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'position' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'position', ], 'limit' => [ 'shape' => 'NullableInteger', 'location' => 'querystring', 'locationName' => 'limit', ], ], ], 'GetBasePathMappingRequest' => [ 'type' => 'structure', 'required' => [ 'domainName', 'basePath', ], 'members' => [ 'domainName' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'domain_name', ], 'basePath' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'base_path', ], ], ], 'GetBasePathMappingsRequest' => [ 'type' => 'structure', 'required' => [ 'domainName', ], 'members' => [ 'domainName' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'domain_name', ], 'position' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'position', ], 'limit' => [ 'shape' => 'NullableInteger', 'location' => 'querystring', 'locationName' => 'limit', ], ], ], 'GetClientCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'clientCertificateId', ], 'members' => [ 'clientCertificateId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'clientcertificate_id', ], ], ], 'GetClientCertificatesRequest' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'position', ], 'limit' => [ 'shape' => 'NullableInteger', 'location' => 'querystring', 'locationName' => 'limit', ], ], ], 'GetDeploymentRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'deploymentId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'deploymentId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'deployment_id', ], 'embed' => [ 'shape' => 'ListOfString', 'location' => 'querystring', 'locationName' => 'embed', ], ], ], 'GetDeploymentsRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'position' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'position', ], 'limit' => [ 'shape' => 'NullableInteger', 'location' => 'querystring', 'locationName' => 'limit', ], ], ], 'GetDocumentationPartRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'documentationPartId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'documentationPartId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'part_id', ], ], ], 'GetDocumentationPartsRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'type' => [ 'shape' => 'DocumentationPartType', 'location' => 'querystring', 'locationName' => 'type', ], 'nameQuery' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'name', ], 'path' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'path', ], 'position' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'position', ], 'limit' => [ 'shape' => 'NullableInteger', 'location' => 'querystring', 'locationName' => 'limit', ], 'locationStatus' => [ 'shape' => 'LocationStatusType', 'location' => 'querystring', 'locationName' => 'locationStatus', ], ], ], 'GetDocumentationVersionRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'documentationVersion', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'documentationVersion' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'doc_version', ], ], ], 'GetDocumentationVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'position' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'position', ], 'limit' => [ 'shape' => 'NullableInteger', 'location' => 'querystring', 'locationName' => 'limit', ], ], ], 'GetDomainNameRequest' => [ 'type' => 'structure', 'required' => [ 'domainName', ], 'members' => [ 'domainName' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'domain_name', ], ], ], 'GetDomainNamesRequest' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'position', ], 'limit' => [ 'shape' => 'NullableInteger', 'location' => 'querystring', 'locationName' => 'limit', ], ], ], 'GetExportRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'stageName', 'exportType', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'stageName' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'stage_name', ], 'exportType' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'export_type', ], 'parameters' => [ 'shape' => 'MapOfStringToString', 'location' => 'querystring', ], 'accepts' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'Accept', ], ], ], 'GetGatewayResponseRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'responseType', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'responseType' => [ 'shape' => 'GatewayResponseType', 'location' => 'uri', 'locationName' => 'response_type', ], ], ], 'GetGatewayResponsesRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'position' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'position', ], 'limit' => [ 'shape' => 'NullableInteger', 'location' => 'querystring', 'locationName' => 'limit', ], ], ], 'GetIntegrationRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'resourceId', 'httpMethod', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'resourceId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_id', ], 'httpMethod' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'http_method', ], ], ], 'GetIntegrationResponseRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'resourceId', 'httpMethod', 'statusCode', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'resourceId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_id', ], 'httpMethod' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'http_method', ], 'statusCode' => [ 'shape' => 'StatusCode', 'location' => 'uri', 'locationName' => 'status_code', ], ], ], 'GetMethodRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'resourceId', 'httpMethod', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'resourceId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_id', ], 'httpMethod' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'http_method', ], ], ], 'GetMethodResponseRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'resourceId', 'httpMethod', 'statusCode', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'resourceId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_id', ], 'httpMethod' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'http_method', ], 'statusCode' => [ 'shape' => 'StatusCode', 'location' => 'uri', 'locationName' => 'status_code', ], ], ], 'GetModelRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'modelName', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'modelName' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'model_name', ], 'flatten' => [ 'shape' => 'Boolean', 'location' => 'querystring', 'locationName' => 'flatten', ], ], ], 'GetModelTemplateRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'modelName', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'modelName' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'model_name', ], ], ], 'GetModelsRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'position' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'position', ], 'limit' => [ 'shape' => 'NullableInteger', 'location' => 'querystring', 'locationName' => 'limit', ], ], ], 'GetRequestValidatorRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'requestValidatorId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'requestValidatorId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'requestvalidator_id', ], ], ], 'GetRequestValidatorsRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'position' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'position', ], 'limit' => [ 'shape' => 'NullableInteger', 'location' => 'querystring', 'locationName' => 'limit', ], ], ], 'GetResourceRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'resourceId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'resourceId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_id', ], 'embed' => [ 'shape' => 'ListOfString', 'location' => 'querystring', 'locationName' => 'embed', ], ], ], 'GetResourcesRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'position' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'position', ], 'limit' => [ 'shape' => 'NullableInteger', 'location' => 'querystring', 'locationName' => 'limit', ], 'embed' => [ 'shape' => 'ListOfString', 'location' => 'querystring', 'locationName' => 'embed', ], ], ], 'GetRestApiRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], ], ], 'GetRestApisRequest' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'position', ], 'limit' => [ 'shape' => 'NullableInteger', 'location' => 'querystring', 'locationName' => 'limit', ], ], ], 'GetSdkRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'stageName', 'sdkType', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'stageName' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'stage_name', ], 'sdkType' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'sdk_type', ], 'parameters' => [ 'shape' => 'MapOfStringToString', 'location' => 'querystring', ], ], ], 'GetSdkTypeRequest' => [ 'type' => 'structure', 'required' => [ 'id', ], 'members' => [ 'id' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'sdktype_id', ], ], ], 'GetSdkTypesRequest' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'position', ], 'limit' => [ 'shape' => 'NullableInteger', 'location' => 'querystring', 'locationName' => 'limit', ], ], ], 'GetStageRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'stageName', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'stageName' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'stage_name', ], ], ], 'GetStagesRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'deploymentId' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'deploymentId', ], ], ], 'GetTagsRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_arn', ], 'position' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'position', ], 'limit' => [ 'shape' => 'NullableInteger', 'location' => 'querystring', 'locationName' => 'limit', ], ], ], 'GetUsagePlanKeyRequest' => [ 'type' => 'structure', 'required' => [ 'usagePlanId', 'keyId', ], 'members' => [ 'usagePlanId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'usageplanId', ], 'keyId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'keyId', ], ], ], 'GetUsagePlanKeysRequest' => [ 'type' => 'structure', 'required' => [ 'usagePlanId', ], 'members' => [ 'usagePlanId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'usageplanId', ], 'position' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'position', ], 'limit' => [ 'shape' => 'NullableInteger', 'location' => 'querystring', 'locationName' => 'limit', ], 'nameQuery' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'name', ], ], ], 'GetUsagePlanRequest' => [ 'type' => 'structure', 'required' => [ 'usagePlanId', ], 'members' => [ 'usagePlanId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'usageplanId', ], ], ], 'GetUsagePlansRequest' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'position', ], 'keyId' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'keyId', ], 'limit' => [ 'shape' => 'NullableInteger', 'location' => 'querystring', 'locationName' => 'limit', ], ], ], 'GetUsageRequest' => [ 'type' => 'structure', 'required' => [ 'usagePlanId', 'startDate', 'endDate', ], 'members' => [ 'usagePlanId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'usageplanId', ], 'keyId' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'keyId', ], 'startDate' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'startDate', ], 'endDate' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'endDate', ], 'position' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'position', ], 'limit' => [ 'shape' => 'NullableInteger', 'location' => 'querystring', 'locationName' => 'limit', ], ], ], 'GetVpcLinkRequest' => [ 'type' => 'structure', 'required' => [ 'vpcLinkId', ], 'members' => [ 'vpcLinkId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'vpclink_id', ], ], ], 'GetVpcLinksRequest' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'position', ], 'limit' => [ 'shape' => 'NullableInteger', 'location' => 'querystring', 'locationName' => 'limit', ], ], ], 'ImportApiKeysRequest' => [ 'type' => 'structure', 'required' => [ 'body', 'format', ], 'members' => [ 'body' => [ 'shape' => 'Blob', ], 'format' => [ 'shape' => 'ApiKeysFormat', 'location' => 'querystring', 'locationName' => 'format', ], 'failOnWarnings' => [ 'shape' => 'Boolean', 'location' => 'querystring', 'locationName' => 'failonwarnings', ], ], 'payload' => 'body', ], 'ImportDocumentationPartsRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'body', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'mode' => [ 'shape' => 'PutMode', 'location' => 'querystring', 'locationName' => 'mode', ], 'failOnWarnings' => [ 'shape' => 'Boolean', 'location' => 'querystring', 'locationName' => 'failonwarnings', ], 'body' => [ 'shape' => 'Blob', ], ], 'payload' => 'body', ], 'ImportRestApiRequest' => [ 'type' => 'structure', 'required' => [ 'body', ], 'members' => [ 'failOnWarnings' => [ 'shape' => 'Boolean', 'location' => 'querystring', 'locationName' => 'failonwarnings', ], 'parameters' => [ 'shape' => 'MapOfStringToString', 'location' => 'querystring', ], 'body' => [ 'shape' => 'Blob', ], ], 'payload' => 'body', ], 'Integer' => [ 'type' => 'integer', ], 'Integration' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'IntegrationType', ], 'httpMethod' => [ 'shape' => 'String', ], 'uri' => [ 'shape' => 'String', ], 'connectionType' => [ 'shape' => 'ConnectionType', ], 'connectionId' => [ 'shape' => 'String', ], 'credentials' => [ 'shape' => 'String', ], 'requestParameters' => [ 'shape' => 'MapOfStringToString', ], 'requestTemplates' => [ 'shape' => 'MapOfStringToString', ], 'passthroughBehavior' => [ 'shape' => 'String', ], 'contentHandling' => [ 'shape' => 'ContentHandlingStrategy', ], 'timeoutInMillis' => [ 'shape' => 'Integer', ], 'cacheNamespace' => [ 'shape' => 'String', ], 'cacheKeyParameters' => [ 'shape' => 'ListOfString', ], 'integrationResponses' => [ 'shape' => 'MapOfIntegrationResponse', ], ], ], 'IntegrationResponse' => [ 'type' => 'structure', 'members' => [ 'statusCode' => [ 'shape' => 'StatusCode', ], 'selectionPattern' => [ 'shape' => 'String', ], 'responseParameters' => [ 'shape' => 'MapOfStringToString', ], 'responseTemplates' => [ 'shape' => 'MapOfStringToString', ], 'contentHandling' => [ 'shape' => 'ContentHandlingStrategy', ], ], ], 'IntegrationType' => [ 'type' => 'string', 'enum' => [ 'HTTP', 'AWS', 'MOCK', 'HTTP_PROXY', 'AWS_PROXY', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'retryAfterSeconds' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'Retry-After', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'ListOfARNs' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProviderARN', ], ], 'ListOfApiKey' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApiKey', ], ], 'ListOfApiStage' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApiStage', ], ], 'ListOfAuthorizer' => [ 'type' => 'list', 'member' => [ 'shape' => 'Authorizer', ], ], 'ListOfBasePathMapping' => [ 'type' => 'list', 'member' => [ 'shape' => 'BasePathMapping', ], ], 'ListOfClientCertificate' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClientCertificate', ], ], 'ListOfDeployment' => [ 'type' => 'list', 'member' => [ 'shape' => 'Deployment', ], ], 'ListOfDocumentationPart' => [ 'type' => 'list', 'member' => [ 'shape' => 'DocumentationPart', ], ], 'ListOfDocumentationVersion' => [ 'type' => 'list', 'member' => [ 'shape' => 'DocumentationVersion', ], ], 'ListOfDomainName' => [ 'type' => 'list', 'member' => [ 'shape' => 'DomainName', ], ], 'ListOfEndpointType' => [ 'type' => 'list', 'member' => [ 'shape' => 'EndpointType', ], ], 'ListOfGatewayResponse' => [ 'type' => 'list', 'member' => [ 'shape' => 'GatewayResponse', ], ], 'ListOfLong' => [ 'type' => 'list', 'member' => [ 'shape' => 'Long', ], ], 'ListOfModel' => [ 'type' => 'list', 'member' => [ 'shape' => 'Model', ], ], 'ListOfPatchOperation' => [ 'type' => 'list', 'member' => [ 'shape' => 'PatchOperation', ], ], 'ListOfRequestValidator' => [ 'type' => 'list', 'member' => [ 'shape' => 'RequestValidator', ], ], 'ListOfResource' => [ 'type' => 'list', 'member' => [ 'shape' => 'Resource', ], ], 'ListOfRestApi' => [ 'type' => 'list', 'member' => [ 'shape' => 'RestApi', ], ], 'ListOfSdkConfigurationProperty' => [ 'type' => 'list', 'member' => [ 'shape' => 'SdkConfigurationProperty', ], ], 'ListOfSdkType' => [ 'type' => 'list', 'member' => [ 'shape' => 'SdkType', ], ], 'ListOfStage' => [ 'type' => 'list', 'member' => [ 'shape' => 'Stage', ], ], 'ListOfStageKeys' => [ 'type' => 'list', 'member' => [ 'shape' => 'StageKey', ], ], 'ListOfString' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ListOfUsage' => [ 'type' => 'list', 'member' => [ 'shape' => 'ListOfLong', ], ], 'ListOfUsagePlan' => [ 'type' => 'list', 'member' => [ 'shape' => 'UsagePlan', ], ], 'ListOfUsagePlanKey' => [ 'type' => 'list', 'member' => [ 'shape' => 'UsagePlanKey', ], ], 'ListOfVpcLink' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcLink', ], ], 'LocationStatusType' => [ 'type' => 'string', 'enum' => [ 'DOCUMENTED', 'UNDOCUMENTED', ], ], 'Long' => [ 'type' => 'long', ], 'MapOfApiStageThrottleSettings' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'ThrottleSettings', ], ], 'MapOfIntegrationResponse' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'IntegrationResponse', ], ], 'MapOfKeyUsages' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'ListOfUsage', ], ], 'MapOfMethod' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'Method', ], ], 'MapOfMethodResponse' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'MethodResponse', ], ], 'MapOfMethodSettings' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'MethodSetting', ], ], 'MapOfMethodSnapshot' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'MethodSnapshot', ], ], 'MapOfStringToBoolean' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'NullableBoolean', ], ], 'MapOfStringToList' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'ListOfString', ], ], 'MapOfStringToString' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'Method' => [ 'type' => 'structure', 'members' => [ 'httpMethod' => [ 'shape' => 'String', ], 'authorizationType' => [ 'shape' => 'String', ], 'authorizerId' => [ 'shape' => 'String', ], 'apiKeyRequired' => [ 'shape' => 'NullableBoolean', ], 'requestValidatorId' => [ 'shape' => 'String', ], 'operationName' => [ 'shape' => 'String', ], 'requestParameters' => [ 'shape' => 'MapOfStringToBoolean', ], 'requestModels' => [ 'shape' => 'MapOfStringToString', ], 'methodResponses' => [ 'shape' => 'MapOfMethodResponse', ], 'methodIntegration' => [ 'shape' => 'Integration', ], 'authorizationScopes' => [ 'shape' => 'ListOfString', ], ], ], 'MethodResponse' => [ 'type' => 'structure', 'members' => [ 'statusCode' => [ 'shape' => 'StatusCode', ], 'responseParameters' => [ 'shape' => 'MapOfStringToBoolean', ], 'responseModels' => [ 'shape' => 'MapOfStringToString', ], ], ], 'MethodSetting' => [ 'type' => 'structure', 'members' => [ 'metricsEnabled' => [ 'shape' => 'Boolean', ], 'loggingLevel' => [ 'shape' => 'String', ], 'dataTraceEnabled' => [ 'shape' => 'Boolean', ], 'throttlingBurstLimit' => [ 'shape' => 'Integer', ], 'throttlingRateLimit' => [ 'shape' => 'Double', ], 'cachingEnabled' => [ 'shape' => 'Boolean', ], 'cacheTtlInSeconds' => [ 'shape' => 'Integer', ], 'cacheDataEncrypted' => [ 'shape' => 'Boolean', ], 'requireAuthorizationForCacheControl' => [ 'shape' => 'Boolean', ], 'unauthorizedCacheControlHeaderStrategy' => [ 'shape' => 'UnauthorizedCacheControlHeaderStrategy', ], ], ], 'MethodSnapshot' => [ 'type' => 'structure', 'members' => [ 'authorizationType' => [ 'shape' => 'String', ], 'apiKeyRequired' => [ 'shape' => 'Boolean', ], ], ], 'Model' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'name' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'schema' => [ 'shape' => 'String', ], 'contentType' => [ 'shape' => 'String', ], ], ], 'Models' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', ], 'items' => [ 'shape' => 'ListOfModel', 'locationName' => 'item', ], ], ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'NullableBoolean' => [ 'type' => 'boolean', ], 'NullableInteger' => [ 'type' => 'integer', ], 'Op' => [ 'type' => 'string', 'enum' => [ 'add', 'remove', 'replace', 'move', 'copy', 'test', ], ], 'PatchOperation' => [ 'type' => 'structure', 'members' => [ 'op' => [ 'shape' => 'Op', ], 'path' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], 'from' => [ 'shape' => 'String', ], ], ], 'PathToMapOfMethodSnapshot' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'MapOfMethodSnapshot', ], ], 'ProviderARN' => [ 'type' => 'string', ], 'PutGatewayResponseRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'responseType', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'responseType' => [ 'shape' => 'GatewayResponseType', 'location' => 'uri', 'locationName' => 'response_type', ], 'statusCode' => [ 'shape' => 'StatusCode', ], 'responseParameters' => [ 'shape' => 'MapOfStringToString', ], 'responseTemplates' => [ 'shape' => 'MapOfStringToString', ], ], ], 'PutIntegrationRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'resourceId', 'httpMethod', 'type', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'resourceId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_id', ], 'httpMethod' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'http_method', ], 'type' => [ 'shape' => 'IntegrationType', ], 'integrationHttpMethod' => [ 'shape' => 'String', 'locationName' => 'httpMethod', ], 'uri' => [ 'shape' => 'String', ], 'connectionType' => [ 'shape' => 'ConnectionType', ], 'connectionId' => [ 'shape' => 'String', ], 'credentials' => [ 'shape' => 'String', ], 'requestParameters' => [ 'shape' => 'MapOfStringToString', ], 'requestTemplates' => [ 'shape' => 'MapOfStringToString', ], 'passthroughBehavior' => [ 'shape' => 'String', ], 'cacheNamespace' => [ 'shape' => 'String', ], 'cacheKeyParameters' => [ 'shape' => 'ListOfString', ], 'contentHandling' => [ 'shape' => 'ContentHandlingStrategy', ], 'timeoutInMillis' => [ 'shape' => 'NullableInteger', ], ], ], 'PutIntegrationResponseRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'resourceId', 'httpMethod', 'statusCode', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'resourceId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_id', ], 'httpMethod' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'http_method', ], 'statusCode' => [ 'shape' => 'StatusCode', 'location' => 'uri', 'locationName' => 'status_code', ], 'selectionPattern' => [ 'shape' => 'String', ], 'responseParameters' => [ 'shape' => 'MapOfStringToString', ], 'responseTemplates' => [ 'shape' => 'MapOfStringToString', ], 'contentHandling' => [ 'shape' => 'ContentHandlingStrategy', ], ], ], 'PutMethodRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'resourceId', 'httpMethod', 'authorizationType', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'resourceId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_id', ], 'httpMethod' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'http_method', ], 'authorizationType' => [ 'shape' => 'String', ], 'authorizerId' => [ 'shape' => 'String', ], 'apiKeyRequired' => [ 'shape' => 'Boolean', ], 'operationName' => [ 'shape' => 'String', ], 'requestParameters' => [ 'shape' => 'MapOfStringToBoolean', ], 'requestModels' => [ 'shape' => 'MapOfStringToString', ], 'requestValidatorId' => [ 'shape' => 'String', ], 'authorizationScopes' => [ 'shape' => 'ListOfString', ], ], ], 'PutMethodResponseRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'resourceId', 'httpMethod', 'statusCode', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'resourceId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_id', ], 'httpMethod' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'http_method', ], 'statusCode' => [ 'shape' => 'StatusCode', 'location' => 'uri', 'locationName' => 'status_code', ], 'responseParameters' => [ 'shape' => 'MapOfStringToBoolean', ], 'responseModels' => [ 'shape' => 'MapOfStringToString', ], ], ], 'PutMode' => [ 'type' => 'string', 'enum' => [ 'merge', 'overwrite', ], ], 'PutRestApiRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'body', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'mode' => [ 'shape' => 'PutMode', 'location' => 'querystring', 'locationName' => 'mode', ], 'failOnWarnings' => [ 'shape' => 'Boolean', 'location' => 'querystring', 'locationName' => 'failonwarnings', ], 'parameters' => [ 'shape' => 'MapOfStringToString', 'location' => 'querystring', ], 'body' => [ 'shape' => 'Blob', ], ], 'payload' => 'body', ], 'QuotaPeriodType' => [ 'type' => 'string', 'enum' => [ 'DAY', 'WEEK', 'MONTH', ], ], 'QuotaSettings' => [ 'type' => 'structure', 'members' => [ 'limit' => [ 'shape' => 'Integer', ], 'offset' => [ 'shape' => 'Integer', ], 'period' => [ 'shape' => 'QuotaPeriodType', ], ], ], 'RequestValidator' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'name' => [ 'shape' => 'String', ], 'validateRequestBody' => [ 'shape' => 'Boolean', ], 'validateRequestParameters' => [ 'shape' => 'Boolean', ], ], ], 'RequestValidators' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', ], 'items' => [ 'shape' => 'ListOfRequestValidator', 'locationName' => 'item', ], ], ], 'Resource' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'parentId' => [ 'shape' => 'String', ], 'pathPart' => [ 'shape' => 'String', ], 'path' => [ 'shape' => 'String', ], 'resourceMethods' => [ 'shape' => 'MapOfMethod', ], ], ], 'Resources' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', ], 'items' => [ 'shape' => 'ListOfResource', 'locationName' => 'item', ], ], ], 'RestApi' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'name' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'version' => [ 'shape' => 'String', ], 'warnings' => [ 'shape' => 'ListOfString', ], 'binaryMediaTypes' => [ 'shape' => 'ListOfString', ], 'minimumCompressionSize' => [ 'shape' => 'NullableInteger', ], 'apiKeySource' => [ 'shape' => 'ApiKeySourceType', ], 'endpointConfiguration' => [ 'shape' => 'EndpointConfiguration', ], 'policy' => [ 'shape' => 'String', ], ], ], 'RestApis' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', ], 'items' => [ 'shape' => 'ListOfRestApi', 'locationName' => 'item', ], ], ], 'SdkConfigurationProperty' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'friendlyName' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'required' => [ 'shape' => 'Boolean', ], 'defaultValue' => [ 'shape' => 'String', ], ], ], 'SdkResponse' => [ 'type' => 'structure', 'members' => [ 'contentType' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'Content-Type', ], 'contentDisposition' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'Content-Disposition', ], 'body' => [ 'shape' => 'Blob', ], ], 'payload' => 'body', ], 'SdkType' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'friendlyName' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'configurationProperties' => [ 'shape' => 'ListOfSdkConfigurationProperty', ], ], ], 'SdkTypes' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', ], 'items' => [ 'shape' => 'ListOfSdkType', 'locationName' => 'item', ], ], ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'retryAfterSeconds' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'Retry-After', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 503, ], 'exception' => true, 'fault' => true, ], 'Stage' => [ 'type' => 'structure', 'members' => [ 'deploymentId' => [ 'shape' => 'String', ], 'clientCertificateId' => [ 'shape' => 'String', ], 'stageName' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'cacheClusterEnabled' => [ 'shape' => 'Boolean', ], 'cacheClusterSize' => [ 'shape' => 'CacheClusterSize', ], 'cacheClusterStatus' => [ 'shape' => 'CacheClusterStatus', ], 'methodSettings' => [ 'shape' => 'MapOfMethodSettings', ], 'variables' => [ 'shape' => 'MapOfStringToString', ], 'documentationVersion' => [ 'shape' => 'String', ], 'accessLogSettings' => [ 'shape' => 'AccessLogSettings', ], 'canarySettings' => [ 'shape' => 'CanarySettings', ], 'tracingEnabled' => [ 'shape' => 'Boolean', ], 'webAclArn' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'MapOfStringToString', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'lastUpdatedDate' => [ 'shape' => 'Timestamp', ], ], ], 'StageKey' => [ 'type' => 'structure', 'members' => [ 'restApiId' => [ 'shape' => 'String', ], 'stageName' => [ 'shape' => 'String', ], ], ], 'Stages' => [ 'type' => 'structure', 'members' => [ 'item' => [ 'shape' => 'ListOfStage', ], ], ], 'StatusCode' => [ 'type' => 'string', 'pattern' => '[1-5]\\d\\d', ], 'String' => [ 'type' => 'string', ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tags', ], 'members' => [ 'resourceArn' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_arn', ], 'tags' => [ 'shape' => 'MapOfStringToString', ], ], ], 'Tags' => [ 'type' => 'structure', 'members' => [ 'tags' => [ 'shape' => 'MapOfStringToString', ], ], ], 'Template' => [ 'type' => 'structure', 'members' => [ 'value' => [ 'shape' => 'String', ], ], ], 'TestInvokeAuthorizerRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'authorizerId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'authorizerId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'authorizer_id', ], 'headers' => [ 'shape' => 'MapOfStringToString', ], 'multiValueHeaders' => [ 'shape' => 'MapOfStringToList', ], 'pathWithQueryString' => [ 'shape' => 'String', ], 'body' => [ 'shape' => 'String', ], 'stageVariables' => [ 'shape' => 'MapOfStringToString', ], 'additionalContext' => [ 'shape' => 'MapOfStringToString', ], ], ], 'TestInvokeAuthorizerResponse' => [ 'type' => 'structure', 'members' => [ 'clientStatus' => [ 'shape' => 'Integer', ], 'log' => [ 'shape' => 'String', ], 'latency' => [ 'shape' => 'Long', ], 'principalId' => [ 'shape' => 'String', ], 'policy' => [ 'shape' => 'String', ], 'authorization' => [ 'shape' => 'MapOfStringToList', ], 'claims' => [ 'shape' => 'MapOfStringToString', ], ], ], 'TestInvokeMethodRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'resourceId', 'httpMethod', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'resourceId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_id', ], 'httpMethod' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'http_method', ], 'pathWithQueryString' => [ 'shape' => 'String', ], 'body' => [ 'shape' => 'String', ], 'headers' => [ 'shape' => 'MapOfStringToString', ], 'multiValueHeaders' => [ 'shape' => 'MapOfStringToList', ], 'clientCertificateId' => [ 'shape' => 'String', ], 'stageVariables' => [ 'shape' => 'MapOfStringToString', ], ], ], 'TestInvokeMethodResponse' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'Integer', ], 'body' => [ 'shape' => 'String', ], 'headers' => [ 'shape' => 'MapOfStringToString', ], 'multiValueHeaders' => [ 'shape' => 'MapOfStringToList', ], 'log' => [ 'shape' => 'String', ], 'latency' => [ 'shape' => 'Long', ], ], ], 'ThrottleSettings' => [ 'type' => 'structure', 'members' => [ 'burstLimit' => [ 'shape' => 'Integer', ], 'rateLimit' => [ 'shape' => 'Double', ], ], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'retryAfterSeconds' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'Retry-After', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'UnauthorizedCacheControlHeaderStrategy' => [ 'type' => 'string', 'enum' => [ 'FAIL_WITH_403', 'SUCCEED_WITH_RESPONSE_HEADER', 'SUCCEED_WITHOUT_RESPONSE_HEADER', ], ], 'UnauthorizedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 401, ], 'exception' => true, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tagKeys', ], 'members' => [ 'resourceArn' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_arn', ], 'tagKeys' => [ 'shape' => 'ListOfString', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], ], 'UpdateAccountRequest' => [ 'type' => 'structure', 'members' => [ 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateApiKeyRequest' => [ 'type' => 'structure', 'required' => [ 'apiKey', ], 'members' => [ 'apiKey' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'api_Key', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateAuthorizerRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'authorizerId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'authorizerId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'authorizer_id', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateBasePathMappingRequest' => [ 'type' => 'structure', 'required' => [ 'domainName', 'basePath', ], 'members' => [ 'domainName' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'domain_name', ], 'basePath' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'base_path', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateClientCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'clientCertificateId', ], 'members' => [ 'clientCertificateId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'clientcertificate_id', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateDeploymentRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'deploymentId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'deploymentId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'deployment_id', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateDocumentationPartRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'documentationPartId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'documentationPartId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'part_id', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateDocumentationVersionRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'documentationVersion', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'documentationVersion' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'doc_version', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateDomainNameRequest' => [ 'type' => 'structure', 'required' => [ 'domainName', ], 'members' => [ 'domainName' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'domain_name', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateGatewayResponseRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'responseType', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'responseType' => [ 'shape' => 'GatewayResponseType', 'location' => 'uri', 'locationName' => 'response_type', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateIntegrationRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'resourceId', 'httpMethod', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'resourceId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_id', ], 'httpMethod' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'http_method', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateIntegrationResponseRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'resourceId', 'httpMethod', 'statusCode', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'resourceId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_id', ], 'httpMethod' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'http_method', ], 'statusCode' => [ 'shape' => 'StatusCode', 'location' => 'uri', 'locationName' => 'status_code', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateMethodRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'resourceId', 'httpMethod', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'resourceId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_id', ], 'httpMethod' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'http_method', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateMethodResponseRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'resourceId', 'httpMethod', 'statusCode', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'resourceId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_id', ], 'httpMethod' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'http_method', ], 'statusCode' => [ 'shape' => 'StatusCode', 'location' => 'uri', 'locationName' => 'status_code', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateModelRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'modelName', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'modelName' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'model_name', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateRequestValidatorRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'requestValidatorId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'requestValidatorId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'requestvalidator_id', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateResourceRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'resourceId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'resourceId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'resource_id', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateRestApiRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateStageRequest' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'stageName', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'restapi_id', ], 'stageName' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'stage_name', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateUsagePlanRequest' => [ 'type' => 'structure', 'required' => [ 'usagePlanId', ], 'members' => [ 'usagePlanId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'usageplanId', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateUsageRequest' => [ 'type' => 'structure', 'required' => [ 'usagePlanId', 'keyId', ], 'members' => [ 'usagePlanId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'usageplanId', ], 'keyId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'keyId', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'UpdateVpcLinkRequest' => [ 'type' => 'structure', 'required' => [ 'vpcLinkId', ], 'members' => [ 'vpcLinkId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'vpclink_id', ], 'patchOperations' => [ 'shape' => 'ListOfPatchOperation', ], ], ], 'Usage' => [ 'type' => 'structure', 'members' => [ 'usagePlanId' => [ 'shape' => 'String', ], 'startDate' => [ 'shape' => 'String', ], 'endDate' => [ 'shape' => 'String', ], 'position' => [ 'shape' => 'String', ], 'items' => [ 'shape' => 'MapOfKeyUsages', 'locationName' => 'values', ], ], ], 'UsagePlan' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'name' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'apiStages' => [ 'shape' => 'ListOfApiStage', ], 'throttle' => [ 'shape' => 'ThrottleSettings', ], 'quota' => [ 'shape' => 'QuotaSettings', ], 'productCode' => [ 'shape' => 'String', ], ], ], 'UsagePlanKey' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], 'name' => [ 'shape' => 'String', ], ], ], 'UsagePlanKeys' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', ], 'items' => [ 'shape' => 'ListOfUsagePlanKey', 'locationName' => 'item', ], ], ], 'UsagePlans' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', ], 'items' => [ 'shape' => 'ListOfUsagePlan', 'locationName' => 'item', ], ], ], 'VpcLink' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'name' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'targetArns' => [ 'shape' => 'ListOfString', ], 'status' => [ 'shape' => 'VpcLinkStatus', ], 'statusMessage' => [ 'shape' => 'String', ], ], ], 'VpcLinkStatus' => [ 'type' => 'string', 'enum' => [ 'AVAILABLE', 'PENDING', 'DELETING', 'FAILED', ], ], 'VpcLinks' => [ 'type' => 'structure', 'members' => [ 'position' => [ 'shape' => 'String', ], 'items' => [ 'shape' => 'ListOfVpcLink', 'locationName' => 'item', ], ], ], ],]; diff --git a/lib/aws/Aws/data/apigateway/2015-07-09/paginators-1.json.php b/lib/aws/Aws/data/apigateway/2015-07-09/paginators-1.json.php new file mode 100644 index 0000000..9cebc9a --- /dev/null +++ b/lib/aws/Aws/data/apigateway/2015-07-09/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/apigateway/2015-07-09/paginators-1.json +return [ 'pagination' => [ 'GetApiKeys' => [ 'input_token' => 'position', 'limit_key' => 'limit', 'output_token' => 'position', 'result_key' => 'items', ], 'GetBasePathMappings' => [ 'input_token' => 'position', 'limit_key' => 'limit', 'output_token' => 'position', 'result_key' => 'items', ], 'GetClientCertificates' => [ 'input_token' => 'position', 'limit_key' => 'limit', 'output_token' => 'position', 'result_key' => 'items', ], 'GetDeployments' => [ 'input_token' => 'position', 'limit_key' => 'limit', 'output_token' => 'position', 'result_key' => 'items', ], 'GetDomainNames' => [ 'input_token' => 'position', 'limit_key' => 'limit', 'output_token' => 'position', 'result_key' => 'items', ], 'GetModels' => [ 'input_token' => 'position', 'limit_key' => 'limit', 'output_token' => 'position', 'result_key' => 'items', ], 'GetResources' => [ 'input_token' => 'position', 'limit_key' => 'limit', 'output_token' => 'position', 'result_key' => 'items', ], 'GetRestApis' => [ 'input_token' => 'position', 'limit_key' => 'limit', 'output_token' => 'position', 'result_key' => 'items', ], 'GetUsage' => [ 'input_token' => 'position', 'limit_key' => 'limit', 'output_token' => 'position', 'result_key' => 'items', ], 'GetUsagePlanKeys' => [ 'input_token' => 'position', 'limit_key' => 'limit', 'output_token' => 'position', 'result_key' => 'items', ], 'GetUsagePlans' => [ 'input_token' => 'position', 'limit_key' => 'limit', 'output_token' => 'position', 'result_key' => 'items', ], 'GetVpcLinks' => [ 'input_token' => 'position', 'limit_key' => 'limit', 'output_token' => 'position', 'result_key' => 'items', ], ],]; diff --git a/lib/aws/Aws/data/apigateway/2015-07-09/smoke.json.php b/lib/aws/Aws/data/apigateway/2015-07-09/smoke.json.php new file mode 100644 index 0000000..b82ddf2 --- /dev/null +++ b/lib/aws/Aws/data/apigateway/2015-07-09/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/apigateway/2015-07-09/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'GetDomainNames', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'CreateUsagePlanKey', 'input' => [ 'usagePlanId' => 'foo', 'keyId' => 'bar', 'keyType' => 'fixx', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/apigatewaymanagementapi/2018-11-29/api-2.json.php b/lib/aws/Aws/data/apigatewaymanagementapi/2018-11-29/api-2.json.php new file mode 100644 index 0000000..33a6b30 --- /dev/null +++ b/lib/aws/Aws/data/apigatewaymanagementapi/2018-11-29/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/apigatewaymanagementapi/2018-11-29/api-2.json +return [ 'metadata' => [ 'apiVersion' => '2018-11-29', 'endpointPrefix' => 'execute-api', 'signingName' => 'execute-api', 'serviceFullName' => 'AmazonApiGatewayManagementApi', 'serviceId' => 'ApiGatewayManagementApi', 'protocol' => 'rest-json', 'jsonVersion' => '1.1', 'uid' => 'apigatewaymanagementapi-2018-11-29', 'signatureVersion' => 'v4', ], 'operations' => [ 'PostToConnection' => [ 'name' => 'PostToConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/@connections/{connectionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PostToConnectionRequest', ], 'errors' => [ [ 'shape' => 'GoneException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'PayloadTooLargeException', ], [ 'shape' => 'ForbiddenException', ], ], ], ], 'shapes' => [ 'Data' => [ 'type' => 'blob', 'max' => 131072, ], 'ForbiddenException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, 'error' => [ 'httpStatusCode' => 403, ], ], 'GoneException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, 'error' => [ 'httpStatusCode' => 410, ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, 'error' => [ 'httpStatusCode' => 429, ], ], 'PayloadTooLargeException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 413, ], ], 'PostToConnectionRequest' => [ 'type' => 'structure', 'members' => [ 'Data' => [ 'shape' => 'Data', ], 'ConnectionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'connectionId', ], ], 'required' => [ 'ConnectionId', 'Data', ], 'payload' => 'Data', ], '__string' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/apigatewaymanagementapi/2018-11-29/paginators-1.json.php b/lib/aws/Aws/data/apigatewaymanagementapi/2018-11-29/paginators-1.json.php new file mode 100644 index 0000000..04cc411 --- /dev/null +++ b/lib/aws/Aws/data/apigatewaymanagementapi/2018-11-29/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/apigatewaymanagementapi/2018-11-29/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/apigatewayv2/2018-11-29/api-2.json.php b/lib/aws/Aws/data/apigatewayv2/2018-11-29/api-2.json.php new file mode 100644 index 0000000..a39c0d9 --- /dev/null +++ b/lib/aws/Aws/data/apigatewayv2/2018-11-29/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/apigatewayv2/2018-11-29/api-2.json +return [ 'metadata' => [ 'apiVersion' => '2018-11-29', 'endpointPrefix' => 'apigateway', 'signingName' => 'apigateway', 'serviceFullName' => 'AmazonApiGatewayV2', 'serviceId' => 'ApiGatewayV2', 'protocol' => 'rest-json', 'jsonVersion' => '1.1', 'uid' => 'apigatewayv2-2018-11-29', 'signatureVersion' => 'v4', ], 'operations' => [ 'CreateApi' => [ 'name' => 'CreateApi', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/apis', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateApiRequest', ], 'output' => [ 'shape' => 'CreateApiResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'CreateApiMapping' => [ 'name' => 'CreateApiMapping', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/domainnames/{domainName}/apimappings', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateApiMappingRequest', ], 'output' => [ 'shape' => 'CreateApiMappingResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'CreateAuthorizer' => [ 'name' => 'CreateAuthorizer', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/apis/{apiId}/authorizers', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateAuthorizerRequest', ], 'output' => [ 'shape' => 'CreateAuthorizerResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'CreateDeployment' => [ 'name' => 'CreateDeployment', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/apis/{apiId}/deployments', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDeploymentRequest', ], 'output' => [ 'shape' => 'CreateDeploymentResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'CreateDomainName' => [ 'name' => 'CreateDomainName', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/domainnames', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDomainNameRequest', ], 'output' => [ 'shape' => 'CreateDomainNameResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'CreateIntegration' => [ 'name' => 'CreateIntegration', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/apis/{apiId}/integrations', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateIntegrationRequest', ], 'output' => [ 'shape' => 'CreateIntegrationResult', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'CreateIntegrationResponse' => [ 'name' => 'CreateIntegrationResponse', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/apis/{apiId}/integrations/{integrationId}/integrationresponses', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateIntegrationResponseRequest', ], 'output' => [ 'shape' => 'CreateIntegrationResponseResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'CreateModel' => [ 'name' => 'CreateModel', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/apis/{apiId}/models', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateModelRequest', ], 'output' => [ 'shape' => 'CreateModelResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'CreateRoute' => [ 'name' => 'CreateRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/apis/{apiId}/routes', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateRouteRequest', ], 'output' => [ 'shape' => 'CreateRouteResult', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'CreateRouteResponse' => [ 'name' => 'CreateRouteResponse', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/apis/{apiId}/routes/{routeId}/routeresponses', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateRouteResponseRequest', ], 'output' => [ 'shape' => 'CreateRouteResponseResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'CreateStage' => [ 'name' => 'CreateStage', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/apis/{apiId}/stages', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStageRequest', ], 'output' => [ 'shape' => 'CreateStageResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'DeleteApi' => [ 'name' => 'DeleteApi', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v2/apis/{apiId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteApiRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteApiMapping' => [ 'name' => 'DeleteApiMapping', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v2/domainnames/{domainName}/apimappings/{apiMappingId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteApiMappingRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'DeleteAuthorizer' => [ 'name' => 'DeleteAuthorizer', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v2/apis/{apiId}/authorizers/{authorizerId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteAuthorizerRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteDeployment' => [ 'name' => 'DeleteDeployment', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v2/apis/{apiId}/deployments/{deploymentId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDeploymentRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteDomainName' => [ 'name' => 'DeleteDomainName', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v2/domainnames/{domainName}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDomainNameRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteIntegration' => [ 'name' => 'DeleteIntegration', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v2/apis/{apiId}/integrations/{integrationId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteIntegrationRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteIntegrationResponse' => [ 'name' => 'DeleteIntegrationResponse', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v2/apis/{apiId}/integrations/{integrationId}/integrationresponses/{integrationResponseId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteIntegrationResponseRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteModel' => [ 'name' => 'DeleteModel', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v2/apis/{apiId}/models/{modelId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteModelRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteRoute' => [ 'name' => 'DeleteRoute', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v2/apis/{apiId}/routes/{routeId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteRouteRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteRouteResponse' => [ 'name' => 'DeleteRouteResponse', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v2/apis/{apiId}/routes/{routeId}/routeresponses/{routeResponseId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteRouteResponseRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteStage' => [ 'name' => 'DeleteStage', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v2/apis/{apiId}/stages/{stageName}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteStageRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetApi' => [ 'name' => 'GetApi', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/apis/{apiId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetApiRequest', ], 'output' => [ 'shape' => 'GetApiResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetApiMapping' => [ 'name' => 'GetApiMapping', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/domainnames/{domainName}/apimappings/{apiMappingId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetApiMappingRequest', ], 'output' => [ 'shape' => 'GetApiMappingResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetApiMappings' => [ 'name' => 'GetApiMappings', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/domainnames/{domainName}/apimappings', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetApiMappingsRequest', ], 'output' => [ 'shape' => 'GetApiMappingsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetApis' => [ 'name' => 'GetApis', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/apis', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetApisRequest', ], 'output' => [ 'shape' => 'GetApisResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetAuthorizer' => [ 'name' => 'GetAuthorizer', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/apis/{apiId}/authorizers/{authorizerId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetAuthorizerRequest', ], 'output' => [ 'shape' => 'GetAuthorizerResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetAuthorizers' => [ 'name' => 'GetAuthorizers', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/apis/{apiId}/authorizers', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetAuthorizersRequest', ], 'output' => [ 'shape' => 'GetAuthorizersResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetDeployment' => [ 'name' => 'GetDeployment', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/apis/{apiId}/deployments/{deploymentId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetDeploymentRequest', ], 'output' => [ 'shape' => 'GetDeploymentResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetDeployments' => [ 'name' => 'GetDeployments', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/apis/{apiId}/deployments', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetDeploymentsRequest', ], 'output' => [ 'shape' => 'GetDeploymentsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetDomainName' => [ 'name' => 'GetDomainName', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/domainnames/{domainName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetDomainNameRequest', ], 'output' => [ 'shape' => 'GetDomainNameResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetDomainNames' => [ 'name' => 'GetDomainNames', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/domainnames', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetDomainNamesRequest', ], 'output' => [ 'shape' => 'GetDomainNamesResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetIntegration' => [ 'name' => 'GetIntegration', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/apis/{apiId}/integrations/{integrationId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetIntegrationRequest', ], 'output' => [ 'shape' => 'GetIntegrationResult', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetIntegrationResponse' => [ 'name' => 'GetIntegrationResponse', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/apis/{apiId}/integrations/{integrationId}/integrationresponses/{integrationResponseId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetIntegrationResponseRequest', ], 'output' => [ 'shape' => 'GetIntegrationResponseResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetIntegrationResponses' => [ 'name' => 'GetIntegrationResponses', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/apis/{apiId}/integrations/{integrationId}/integrationresponses', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetIntegrationResponsesRequest', ], 'output' => [ 'shape' => 'GetIntegrationResponsesResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetIntegrations' => [ 'name' => 'GetIntegrations', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/apis/{apiId}/integrations', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetIntegrationsRequest', ], 'output' => [ 'shape' => 'GetIntegrationsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetModel' => [ 'name' => 'GetModel', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/apis/{apiId}/models/{modelId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetModelRequest', ], 'output' => [ 'shape' => 'GetModelResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetModelTemplate' => [ 'name' => 'GetModelTemplate', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/apis/{apiId}/models/{modelId}/template', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetModelTemplateRequest', ], 'output' => [ 'shape' => 'GetModelTemplateResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetModels' => [ 'name' => 'GetModels', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/apis/{apiId}/models', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetModelsRequest', ], 'output' => [ 'shape' => 'GetModelsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetRoute' => [ 'name' => 'GetRoute', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/apis/{apiId}/routes/{routeId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetRouteRequest', ], 'output' => [ 'shape' => 'GetRouteResult', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetRouteResponse' => [ 'name' => 'GetRouteResponse', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/apis/{apiId}/routes/{routeId}/routeresponses/{routeResponseId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetRouteResponseRequest', ], 'output' => [ 'shape' => 'GetRouteResponseResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetRouteResponses' => [ 'name' => 'GetRouteResponses', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/apis/{apiId}/routes/{routeId}/routeresponses', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetRouteResponsesRequest', ], 'output' => [ 'shape' => 'GetRouteResponsesResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetRoutes' => [ 'name' => 'GetRoutes', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/apis/{apiId}/routes', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetRoutesRequest', ], 'output' => [ 'shape' => 'GetRoutesResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetStage' => [ 'name' => 'GetStage', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/apis/{apiId}/stages/{stageName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetStageRequest', ], 'output' => [ 'shape' => 'GetStageResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetStages' => [ 'name' => 'GetStages', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/apis/{apiId}/stages', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetStagesRequest', ], 'output' => [ 'shape' => 'GetStagesResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'UpdateApi' => [ 'name' => 'UpdateApi', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/v2/apis/{apiId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateApiRequest', ], 'output' => [ 'shape' => 'UpdateApiResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateApiMapping' => [ 'name' => 'UpdateApiMapping', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/v2/domainnames/{domainName}/apimappings/{apiMappingId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateApiMappingRequest', ], 'output' => [ 'shape' => 'UpdateApiMappingResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateAuthorizer' => [ 'name' => 'UpdateAuthorizer', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/v2/apis/{apiId}/authorizers/{authorizerId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateAuthorizerRequest', ], 'output' => [ 'shape' => 'UpdateAuthorizerResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateDeployment' => [ 'name' => 'UpdateDeployment', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/v2/apis/{apiId}/deployments/{deploymentId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateDeploymentRequest', ], 'output' => [ 'shape' => 'UpdateDeploymentResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateDomainName' => [ 'name' => 'UpdateDomainName', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/v2/domainnames/{domainName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateDomainNameRequest', ], 'output' => [ 'shape' => 'UpdateDomainNameResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateIntegration' => [ 'name' => 'UpdateIntegration', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/v2/apis/{apiId}/integrations/{integrationId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateIntegrationRequest', ], 'output' => [ 'shape' => 'UpdateIntegrationResult', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateIntegrationResponse' => [ 'name' => 'UpdateIntegrationResponse', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/v2/apis/{apiId}/integrations/{integrationId}/integrationresponses/{integrationResponseId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateIntegrationResponseRequest', ], 'output' => [ 'shape' => 'UpdateIntegrationResponseResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateModel' => [ 'name' => 'UpdateModel', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/v2/apis/{apiId}/models/{modelId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateModelRequest', ], 'output' => [ 'shape' => 'UpdateModelResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateRoute' => [ 'name' => 'UpdateRoute', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/v2/apis/{apiId}/routes/{routeId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateRouteRequest', ], 'output' => [ 'shape' => 'UpdateRouteResult', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateRouteResponse' => [ 'name' => 'UpdateRouteResponse', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/v2/apis/{apiId}/routes/{routeId}/routeresponses/{routeResponseId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateRouteResponseRequest', ], 'output' => [ 'shape' => 'UpdateRouteResponseResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateStage' => [ 'name' => 'UpdateStage', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/v2/apis/{apiId}/stages/{stageName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateStageRequest', ], 'output' => [ 'shape' => 'UpdateStageResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], ], ], ], 'shapes' => [ 'AccessLogSettings' => [ 'type' => 'structure', 'members' => [ 'DestinationArn' => [ 'shape' => 'Arn', 'locationName' => 'destinationArn', ], 'Format' => [ 'shape' => 'StringWithLengthBetween1And1024', 'locationName' => 'format', ], ], ], 'Api' => [ 'type' => 'structure', 'members' => [ 'ApiEndpoint' => [ 'shape' => '__string', 'locationName' => 'apiEndpoint', ], 'ApiId' => [ 'shape' => 'Id', 'locationName' => 'apiId', ], 'ApiKeySelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'apiKeySelectionExpression', ], 'CreatedDate' => [ 'shape' => '__timestampIso8601', 'locationName' => 'createdDate', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'DisableSchemaValidation' => [ 'shape' => '__boolean', 'locationName' => 'disableSchemaValidation', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'ProtocolType' => [ 'shape' => 'ProtocolType', 'locationName' => 'protocolType', ], 'RouteSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'routeSelectionExpression', ], 'Version' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'version', ], 'Warnings' => [ 'shape' => '__listOf__string', 'locationName' => 'warnings', ], ], 'required' => [ 'RouteSelectionExpression', 'ProtocolType', 'Name', ], ], 'ApiMapping' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => 'Id', 'locationName' => 'apiId', ], 'ApiMappingId' => [ 'shape' => 'Id', 'locationName' => 'apiMappingId', ], 'ApiMappingKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'apiMappingKey', ], 'Stage' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stage', ], ], 'required' => [ 'Stage', 'ApiId', ], ], 'ApiMappings' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfApiMapping', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'Apis' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfApi', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'Arn' => [ 'type' => 'string', ], 'AuthorizationScopes' => [ 'type' => 'list', 'member' => [ 'shape' => 'StringWithLengthBetween1And64', ], ], 'AuthorizationType' => [ 'type' => 'string', 'enum' => [ 'NONE', 'AWS_IAM', 'CUSTOM', ], ], 'Authorizer' => [ 'type' => 'structure', 'members' => [ 'AuthorizerCredentialsArn' => [ 'shape' => 'Arn', 'locationName' => 'authorizerCredentialsArn', ], 'AuthorizerId' => [ 'shape' => 'Id', 'locationName' => 'authorizerId', ], 'AuthorizerResultTtlInSeconds' => [ 'shape' => 'IntegerWithLengthBetween0And3600', 'locationName' => 'authorizerResultTtlInSeconds', ], 'AuthorizerType' => [ 'shape' => 'AuthorizerType', 'locationName' => 'authorizerType', ], 'AuthorizerUri' => [ 'shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'authorizerUri', ], 'IdentitySource' => [ 'shape' => 'IdentitySourceList', 'locationName' => 'identitySource', ], 'IdentityValidationExpression' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'identityValidationExpression', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'ProviderArns' => [ 'shape' => 'ProviderArnList', 'locationName' => 'providerArns', ], ], 'required' => [ 'Name', ], ], 'AuthorizerType' => [ 'type' => 'string', 'enum' => [ 'REQUEST', ], ], 'Authorizers' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfAuthorizer', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 400, ], ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 409, ], ], 'ConnectionType' => [ 'type' => 'string', 'enum' => [ 'INTERNET', 'VPC_LINK', ], ], 'ContentHandlingStrategy' => [ 'type' => 'string', 'enum' => [ 'CONVERT_TO_BINARY', 'CONVERT_TO_TEXT', ], ], 'CreateApiInput' => [ 'type' => 'structure', 'members' => [ 'ApiKeySelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'apiKeySelectionExpression', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'DisableSchemaValidation' => [ 'shape' => '__boolean', 'locationName' => 'disableSchemaValidation', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'ProtocolType' => [ 'shape' => 'ProtocolType', 'locationName' => 'protocolType', ], 'RouteSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'routeSelectionExpression', ], 'Version' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'version', ], ], 'required' => [ 'RouteSelectionExpression', 'ProtocolType', 'Name', ], ], 'CreateApiMappingInput' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => 'Id', 'locationName' => 'apiId', ], 'ApiMappingKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'apiMappingKey', ], 'Stage' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stage', ], ], 'required' => [ 'Stage', 'ApiId', ], ], 'CreateApiMappingRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => 'Id', 'locationName' => 'apiId', ], 'ApiMappingKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'apiMappingKey', ], 'DomainName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'domainName', ], 'Stage' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stage', ], ], 'required' => [ 'DomainName', 'Stage', 'ApiId', ], ], 'CreateApiMappingResponse' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => 'Id', 'locationName' => 'apiId', ], 'ApiMappingId' => [ 'shape' => 'Id', 'locationName' => 'apiMappingId', ], 'ApiMappingKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'apiMappingKey', ], 'Stage' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stage', ], ], ], 'CreateApiRequest' => [ 'type' => 'structure', 'members' => [ 'ApiKeySelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'apiKeySelectionExpression', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'DisableSchemaValidation' => [ 'shape' => '__boolean', 'locationName' => 'disableSchemaValidation', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'ProtocolType' => [ 'shape' => 'ProtocolType', 'locationName' => 'protocolType', ], 'RouteSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'routeSelectionExpression', ], 'Version' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'version', ], ], 'required' => [ 'RouteSelectionExpression', 'ProtocolType', 'Name', ], ], 'CreateApiResponse' => [ 'type' => 'structure', 'members' => [ 'ApiEndpoint' => [ 'shape' => '__string', 'locationName' => 'apiEndpoint', ], 'ApiId' => [ 'shape' => 'Id', 'locationName' => 'apiId', ], 'ApiKeySelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'apiKeySelectionExpression', ], 'CreatedDate' => [ 'shape' => '__timestampIso8601', 'locationName' => 'createdDate', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'DisableSchemaValidation' => [ 'shape' => '__boolean', 'locationName' => 'disableSchemaValidation', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'ProtocolType' => [ 'shape' => 'ProtocolType', 'locationName' => 'protocolType', ], 'RouteSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'routeSelectionExpression', ], 'Version' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'version', ], 'Warnings' => [ 'shape' => '__listOf__string', 'locationName' => 'warnings', ], ], ], 'CreateAuthorizerInput' => [ 'type' => 'structure', 'members' => [ 'AuthorizerCredentialsArn' => [ 'shape' => 'Arn', 'locationName' => 'authorizerCredentialsArn', ], 'AuthorizerResultTtlInSeconds' => [ 'shape' => 'IntegerWithLengthBetween0And3600', 'locationName' => 'authorizerResultTtlInSeconds', ], 'AuthorizerType' => [ 'shape' => 'AuthorizerType', 'locationName' => 'authorizerType', ], 'AuthorizerUri' => [ 'shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'authorizerUri', ], 'IdentitySource' => [ 'shape' => 'IdentitySourceList', 'locationName' => 'identitySource', ], 'IdentityValidationExpression' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'identityValidationExpression', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'ProviderArns' => [ 'shape' => 'ProviderArnList', 'locationName' => 'providerArns', ], ], 'required' => [ 'AuthorizerUri', 'AuthorizerType', 'IdentitySource', 'Name', ], ], 'CreateAuthorizerRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'AuthorizerCredentialsArn' => [ 'shape' => 'Arn', 'locationName' => 'authorizerCredentialsArn', ], 'AuthorizerResultTtlInSeconds' => [ 'shape' => 'IntegerWithLengthBetween0And3600', 'locationName' => 'authorizerResultTtlInSeconds', ], 'AuthorizerType' => [ 'shape' => 'AuthorizerType', 'locationName' => 'authorizerType', ], 'AuthorizerUri' => [ 'shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'authorizerUri', ], 'IdentitySource' => [ 'shape' => 'IdentitySourceList', 'locationName' => 'identitySource', ], 'IdentityValidationExpression' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'identityValidationExpression', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'ProviderArns' => [ 'shape' => 'ProviderArnList', 'locationName' => 'providerArns', ], ], 'required' => [ 'ApiId', 'AuthorizerUri', 'AuthorizerType', 'IdentitySource', 'Name', ], ], 'CreateAuthorizerResponse' => [ 'type' => 'structure', 'members' => [ 'AuthorizerCredentialsArn' => [ 'shape' => 'Arn', 'locationName' => 'authorizerCredentialsArn', ], 'AuthorizerId' => [ 'shape' => 'Id', 'locationName' => 'authorizerId', ], 'AuthorizerResultTtlInSeconds' => [ 'shape' => 'IntegerWithLengthBetween0And3600', 'locationName' => 'authorizerResultTtlInSeconds', ], 'AuthorizerType' => [ 'shape' => 'AuthorizerType', 'locationName' => 'authorizerType', ], 'AuthorizerUri' => [ 'shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'authorizerUri', ], 'IdentitySource' => [ 'shape' => 'IdentitySourceList', 'locationName' => 'identitySource', ], 'IdentityValidationExpression' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'identityValidationExpression', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'ProviderArns' => [ 'shape' => 'ProviderArnList', 'locationName' => 'providerArns', ], ], ], 'CreateDeploymentInput' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'StageName' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stageName', ], ], ], 'CreateDeploymentRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'StageName' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stageName', ], ], 'required' => [ 'ApiId', ], ], 'CreateDeploymentResponse' => [ 'type' => 'structure', 'members' => [ 'CreatedDate' => [ 'shape' => '__timestampIso8601', 'locationName' => 'createdDate', ], 'DeploymentId' => [ 'shape' => 'Id', 'locationName' => 'deploymentId', ], 'DeploymentStatus' => [ 'shape' => 'DeploymentStatus', 'locationName' => 'deploymentStatus', ], 'DeploymentStatusMessage' => [ 'shape' => '__string', 'locationName' => 'deploymentStatusMessage', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], ], ], 'CreateDomainNameInput' => [ 'type' => 'structure', 'members' => [ 'DomainName' => [ 'shape' => 'StringWithLengthBetween1And512', 'locationName' => 'domainName', ], 'DomainNameConfigurations' => [ 'shape' => 'DomainNameConfigurations', 'locationName' => 'domainNameConfigurations', ], ], 'required' => [ 'DomainName', ], ], 'CreateDomainNameRequest' => [ 'type' => 'structure', 'members' => [ 'DomainName' => [ 'shape' => 'StringWithLengthBetween1And512', 'locationName' => 'domainName', ], 'DomainNameConfigurations' => [ 'shape' => 'DomainNameConfigurations', 'locationName' => 'domainNameConfigurations', ], ], 'required' => [ 'DomainName', ], ], 'CreateDomainNameResponse' => [ 'type' => 'structure', 'members' => [ 'ApiMappingSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'apiMappingSelectionExpression', ], 'DomainName' => [ 'shape' => 'StringWithLengthBetween1And512', 'locationName' => 'domainName', ], 'DomainNameConfigurations' => [ 'shape' => 'DomainNameConfigurations', 'locationName' => 'domainNameConfigurations', ], ], ], 'CreateIntegrationInput' => [ 'type' => 'structure', 'members' => [ 'ConnectionId' => [ 'shape' => 'StringWithLengthBetween1And1024', 'locationName' => 'connectionId', ], 'ConnectionType' => [ 'shape' => 'ConnectionType', 'locationName' => 'connectionType', ], 'ContentHandlingStrategy' => [ 'shape' => 'ContentHandlingStrategy', 'locationName' => 'contentHandlingStrategy', ], 'CredentialsArn' => [ 'shape' => 'Arn', 'locationName' => 'credentialsArn', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'IntegrationMethod' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'integrationMethod', ], 'IntegrationType' => [ 'shape' => 'IntegrationType', 'locationName' => 'integrationType', ], 'IntegrationUri' => [ 'shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'integrationUri', ], 'PassthroughBehavior' => [ 'shape' => 'PassthroughBehavior', 'locationName' => 'passthroughBehavior', ], 'RequestParameters' => [ 'shape' => 'IntegrationParameters', 'locationName' => 'requestParameters', ], 'RequestTemplates' => [ 'shape' => 'TemplateMap', 'locationName' => 'requestTemplates', ], 'TemplateSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression', ], 'TimeoutInMillis' => [ 'shape' => 'IntegerWithLengthBetween50And29000', 'locationName' => 'timeoutInMillis', ], ], 'required' => [ 'IntegrationType', ], ], 'CreateIntegrationRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'ConnectionId' => [ 'shape' => 'StringWithLengthBetween1And1024', 'locationName' => 'connectionId', ], 'ConnectionType' => [ 'shape' => 'ConnectionType', 'locationName' => 'connectionType', ], 'ContentHandlingStrategy' => [ 'shape' => 'ContentHandlingStrategy', 'locationName' => 'contentHandlingStrategy', ], 'CredentialsArn' => [ 'shape' => 'Arn', 'locationName' => 'credentialsArn', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'IntegrationMethod' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'integrationMethod', ], 'IntegrationType' => [ 'shape' => 'IntegrationType', 'locationName' => 'integrationType', ], 'IntegrationUri' => [ 'shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'integrationUri', ], 'PassthroughBehavior' => [ 'shape' => 'PassthroughBehavior', 'locationName' => 'passthroughBehavior', ], 'RequestParameters' => [ 'shape' => 'IntegrationParameters', 'locationName' => 'requestParameters', ], 'RequestTemplates' => [ 'shape' => 'TemplateMap', 'locationName' => 'requestTemplates', ], 'TemplateSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression', ], 'TimeoutInMillis' => [ 'shape' => 'IntegerWithLengthBetween50And29000', 'locationName' => 'timeoutInMillis', ], ], 'required' => [ 'ApiId', 'IntegrationType', ], ], 'CreateIntegrationResult' => [ 'type' => 'structure', 'members' => [ 'ConnectionId' => [ 'shape' => 'StringWithLengthBetween1And1024', 'locationName' => 'connectionId', ], 'ConnectionType' => [ 'shape' => 'ConnectionType', 'locationName' => 'connectionType', ], 'ContentHandlingStrategy' => [ 'shape' => 'ContentHandlingStrategy', 'locationName' => 'contentHandlingStrategy', ], 'CredentialsArn' => [ 'shape' => 'Arn', 'locationName' => 'credentialsArn', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'IntegrationId' => [ 'shape' => 'Id', 'locationName' => 'integrationId', ], 'IntegrationMethod' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'integrationMethod', ], 'IntegrationResponseSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'integrationResponseSelectionExpression', ], 'IntegrationType' => [ 'shape' => 'IntegrationType', 'locationName' => 'integrationType', ], 'IntegrationUri' => [ 'shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'integrationUri', ], 'PassthroughBehavior' => [ 'shape' => 'PassthroughBehavior', 'locationName' => 'passthroughBehavior', ], 'RequestParameters' => [ 'shape' => 'IntegrationParameters', 'locationName' => 'requestParameters', ], 'RequestTemplates' => [ 'shape' => 'TemplateMap', 'locationName' => 'requestTemplates', ], 'TemplateSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression', ], 'TimeoutInMillis' => [ 'shape' => 'IntegerWithLengthBetween50And29000', 'locationName' => 'timeoutInMillis', ], ], ], 'CreateIntegrationResponseInput' => [ 'type' => 'structure', 'members' => [ 'ContentHandlingStrategy' => [ 'shape' => 'ContentHandlingStrategy', 'locationName' => 'contentHandlingStrategy', ], 'IntegrationResponseKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'integrationResponseKey', ], 'ResponseParameters' => [ 'shape' => 'IntegrationParameters', 'locationName' => 'responseParameters', ], 'ResponseTemplates' => [ 'shape' => 'TemplateMap', 'locationName' => 'responseTemplates', ], 'TemplateSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression', ], ], 'required' => [ 'IntegrationResponseKey', ], ], 'CreateIntegrationResponseRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'ContentHandlingStrategy' => [ 'shape' => 'ContentHandlingStrategy', 'locationName' => 'contentHandlingStrategy', ], 'IntegrationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'integrationId', ], 'IntegrationResponseKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'integrationResponseKey', ], 'ResponseParameters' => [ 'shape' => 'IntegrationParameters', 'locationName' => 'responseParameters', ], 'ResponseTemplates' => [ 'shape' => 'TemplateMap', 'locationName' => 'responseTemplates', ], 'TemplateSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression', ], ], 'required' => [ 'ApiId', 'IntegrationId', 'IntegrationResponseKey', ], ], 'CreateIntegrationResponseResponse' => [ 'type' => 'structure', 'members' => [ 'ContentHandlingStrategy' => [ 'shape' => 'ContentHandlingStrategy', 'locationName' => 'contentHandlingStrategy', ], 'IntegrationResponseId' => [ 'shape' => 'Id', 'locationName' => 'integrationResponseId', ], 'IntegrationResponseKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'integrationResponseKey', ], 'ResponseParameters' => [ 'shape' => 'IntegrationParameters', 'locationName' => 'responseParameters', ], 'ResponseTemplates' => [ 'shape' => 'TemplateMap', 'locationName' => 'responseTemplates', ], 'TemplateSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression', ], ], ], 'CreateModelInput' => [ 'type' => 'structure', 'members' => [ 'ContentType' => [ 'shape' => 'StringWithLengthBetween1And256', 'locationName' => 'contentType', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'Schema' => [ 'shape' => 'StringWithLengthBetween0And32K', 'locationName' => 'schema', ], ], 'required' => [ 'Schema', 'Name', ], ], 'CreateModelRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'ContentType' => [ 'shape' => 'StringWithLengthBetween1And256', 'locationName' => 'contentType', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'Schema' => [ 'shape' => 'StringWithLengthBetween0And32K', 'locationName' => 'schema', ], ], 'required' => [ 'ApiId', 'Schema', 'Name', ], ], 'CreateModelResponse' => [ 'type' => 'structure', 'members' => [ 'ContentType' => [ 'shape' => 'StringWithLengthBetween1And256', 'locationName' => 'contentType', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'ModelId' => [ 'shape' => 'Id', 'locationName' => 'modelId', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'Schema' => [ 'shape' => 'StringWithLengthBetween0And32K', 'locationName' => 'schema', ], ], ], 'CreateRouteInput' => [ 'type' => 'structure', 'members' => [ 'ApiKeyRequired' => [ 'shape' => '__boolean', 'locationName' => 'apiKeyRequired', ], 'AuthorizationScopes' => [ 'shape' => 'AuthorizationScopes', 'locationName' => 'authorizationScopes', ], 'AuthorizationType' => [ 'shape' => 'AuthorizationType', 'locationName' => 'authorizationType', ], 'AuthorizerId' => [ 'shape' => 'Id', 'locationName' => 'authorizerId', ], 'ModelSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'modelSelectionExpression', ], 'OperationName' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'operationName', ], 'RequestModels' => [ 'shape' => 'RouteModels', 'locationName' => 'requestModels', ], 'RequestParameters' => [ 'shape' => 'RouteParameters', 'locationName' => 'requestParameters', ], 'RouteKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'routeKey', ], 'RouteResponseSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'routeResponseSelectionExpression', ], 'Target' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'target', ], ], 'required' => [ 'RouteKey', ], ], 'CreateRouteRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'ApiKeyRequired' => [ 'shape' => '__boolean', 'locationName' => 'apiKeyRequired', ], 'AuthorizationScopes' => [ 'shape' => 'AuthorizationScopes', 'locationName' => 'authorizationScopes', ], 'AuthorizationType' => [ 'shape' => 'AuthorizationType', 'locationName' => 'authorizationType', ], 'AuthorizerId' => [ 'shape' => 'Id', 'locationName' => 'authorizerId', ], 'ModelSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'modelSelectionExpression', ], 'OperationName' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'operationName', ], 'RequestModels' => [ 'shape' => 'RouteModels', 'locationName' => 'requestModels', ], 'RequestParameters' => [ 'shape' => 'RouteParameters', 'locationName' => 'requestParameters', ], 'RouteKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'routeKey', ], 'RouteResponseSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'routeResponseSelectionExpression', ], 'Target' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'target', ], ], 'required' => [ 'ApiId', 'RouteKey', ], ], 'CreateRouteResult' => [ 'type' => 'structure', 'members' => [ 'ApiKeyRequired' => [ 'shape' => '__boolean', 'locationName' => 'apiKeyRequired', ], 'AuthorizationScopes' => [ 'shape' => 'AuthorizationScopes', 'locationName' => 'authorizationScopes', ], 'AuthorizationType' => [ 'shape' => 'AuthorizationType', 'locationName' => 'authorizationType', ], 'AuthorizerId' => [ 'shape' => 'Id', 'locationName' => 'authorizerId', ], 'ModelSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'modelSelectionExpression', ], 'OperationName' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'operationName', ], 'RequestModels' => [ 'shape' => 'RouteModels', 'locationName' => 'requestModels', ], 'RequestParameters' => [ 'shape' => 'RouteParameters', 'locationName' => 'requestParameters', ], 'RouteId' => [ 'shape' => 'Id', 'locationName' => 'routeId', ], 'RouteKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'routeKey', ], 'RouteResponseSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'routeResponseSelectionExpression', ], 'Target' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'target', ], ], ], 'CreateRouteResponseInput' => [ 'type' => 'structure', 'members' => [ 'ModelSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'modelSelectionExpression', ], 'ResponseModels' => [ 'shape' => 'RouteModels', 'locationName' => 'responseModels', ], 'ResponseParameters' => [ 'shape' => 'RouteParameters', 'locationName' => 'responseParameters', ], 'RouteResponseKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'routeResponseKey', ], ], 'required' => [ 'RouteResponseKey', ], ], 'CreateRouteResponseRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'ModelSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'modelSelectionExpression', ], 'ResponseModels' => [ 'shape' => 'RouteModels', 'locationName' => 'responseModels', ], 'ResponseParameters' => [ 'shape' => 'RouteParameters', 'locationName' => 'responseParameters', ], 'RouteId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'routeId', ], 'RouteResponseKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'routeResponseKey', ], ], 'required' => [ 'ApiId', 'RouteId', 'RouteResponseKey', ], ], 'CreateRouteResponseResponse' => [ 'type' => 'structure', 'members' => [ 'ModelSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'modelSelectionExpression', ], 'ResponseModels' => [ 'shape' => 'RouteModels', 'locationName' => 'responseModels', ], 'ResponseParameters' => [ 'shape' => 'RouteParameters', 'locationName' => 'responseParameters', ], 'RouteResponseId' => [ 'shape' => 'Id', 'locationName' => 'routeResponseId', ], 'RouteResponseKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'routeResponseKey', ], ], ], 'CreateStageInput' => [ 'type' => 'structure', 'members' => [ 'AccessLogSettings' => [ 'shape' => 'AccessLogSettings', 'locationName' => 'accessLogSettings', ], 'ClientCertificateId' => [ 'shape' => 'Id', 'locationName' => 'clientCertificateId', ], 'DefaultRouteSettings' => [ 'shape' => 'RouteSettings', 'locationName' => 'defaultRouteSettings', ], 'DeploymentId' => [ 'shape' => 'Id', 'locationName' => 'deploymentId', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'RouteSettings' => [ 'shape' => 'RouteSettingsMap', 'locationName' => 'routeSettings', ], 'StageName' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stageName', ], 'StageVariables' => [ 'shape' => 'StageVariablesMap', 'locationName' => 'stageVariables', ], ], 'required' => [ 'StageName', ], ], 'CreateStageRequest' => [ 'type' => 'structure', 'members' => [ 'AccessLogSettings' => [ 'shape' => 'AccessLogSettings', 'locationName' => 'accessLogSettings', ], 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'ClientCertificateId' => [ 'shape' => 'Id', 'locationName' => 'clientCertificateId', ], 'DefaultRouteSettings' => [ 'shape' => 'RouteSettings', 'locationName' => 'defaultRouteSettings', ], 'DeploymentId' => [ 'shape' => 'Id', 'locationName' => 'deploymentId', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'RouteSettings' => [ 'shape' => 'RouteSettingsMap', 'locationName' => 'routeSettings', ], 'StageName' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stageName', ], 'StageVariables' => [ 'shape' => 'StageVariablesMap', 'locationName' => 'stageVariables', ], ], 'required' => [ 'ApiId', 'StageName', ], ], 'CreateStageResponse' => [ 'type' => 'structure', 'members' => [ 'AccessLogSettings' => [ 'shape' => 'AccessLogSettings', 'locationName' => 'accessLogSettings', ], 'ClientCertificateId' => [ 'shape' => 'Id', 'locationName' => 'clientCertificateId', ], 'CreatedDate' => [ 'shape' => '__timestampIso8601', 'locationName' => 'createdDate', ], 'DefaultRouteSettings' => [ 'shape' => 'RouteSettings', 'locationName' => 'defaultRouteSettings', ], 'DeploymentId' => [ 'shape' => 'Id', 'locationName' => 'deploymentId', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'LastUpdatedDate' => [ 'shape' => '__timestampIso8601', 'locationName' => 'lastUpdatedDate', ], 'RouteSettings' => [ 'shape' => 'RouteSettingsMap', 'locationName' => 'routeSettings', ], 'StageName' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stageName', ], 'StageVariables' => [ 'shape' => 'StageVariablesMap', 'locationName' => 'stageVariables', ], ], ], 'DeleteApiMappingRequest' => [ 'type' => 'structure', 'members' => [ 'ApiMappingId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiMappingId', ], 'DomainName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'domainName', ], ], 'required' => [ 'ApiMappingId', 'DomainName', ], ], 'DeleteApiRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], ], 'required' => [ 'ApiId', ], ], 'DeleteAuthorizerRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'AuthorizerId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'authorizerId', ], ], 'required' => [ 'AuthorizerId', 'ApiId', ], ], 'DeleteDeploymentRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'DeploymentId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'deploymentId', ], ], 'required' => [ 'ApiId', 'DeploymentId', ], ], 'DeleteDomainNameRequest' => [ 'type' => 'structure', 'members' => [ 'DomainName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'domainName', ], ], 'required' => [ 'DomainName', ], ], 'DeleteIntegrationRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'IntegrationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'integrationId', ], ], 'required' => [ 'ApiId', 'IntegrationId', ], ], 'DeleteIntegrationResponseRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'IntegrationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'integrationId', ], 'IntegrationResponseId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'integrationResponseId', ], ], 'required' => [ 'ApiId', 'IntegrationResponseId', 'IntegrationId', ], ], 'DeleteModelRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'ModelId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'modelId', ], ], 'required' => [ 'ModelId', 'ApiId', ], ], 'DeleteRouteRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'RouteId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'routeId', ], ], 'required' => [ 'ApiId', 'RouteId', ], ], 'DeleteRouteResponseRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'RouteId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'routeId', ], 'RouteResponseId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'routeResponseId', ], ], 'required' => [ 'RouteResponseId', 'ApiId', 'RouteId', ], ], 'DeleteStageRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'StageName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'stageName', ], ], 'required' => [ 'StageName', 'ApiId', ], ], 'Deployment' => [ 'type' => 'structure', 'members' => [ 'CreatedDate' => [ 'shape' => '__timestampIso8601', 'locationName' => 'createdDate', ], 'DeploymentId' => [ 'shape' => 'Id', 'locationName' => 'deploymentId', ], 'DeploymentStatus' => [ 'shape' => 'DeploymentStatus', 'locationName' => 'deploymentStatus', ], 'DeploymentStatusMessage' => [ 'shape' => '__string', 'locationName' => 'deploymentStatusMessage', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], ], ], 'DeploymentStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'FAILED', 'DEPLOYED', ], ], 'Deployments' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfDeployment', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DomainName' => [ 'type' => 'structure', 'members' => [ 'ApiMappingSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'apiMappingSelectionExpression', ], 'DomainName' => [ 'shape' => 'StringWithLengthBetween1And512', 'locationName' => 'domainName', ], 'DomainNameConfigurations' => [ 'shape' => 'DomainNameConfigurations', 'locationName' => 'domainNameConfigurations', ], ], 'required' => [ 'DomainName', ], ], 'DomainNameConfiguration' => [ 'type' => 'structure', 'members' => [ 'ApiGatewayDomainName' => [ 'shape' => '__string', 'locationName' => 'apiGatewayDomainName', ], 'CertificateArn' => [ 'shape' => 'Arn', 'locationName' => 'certificateArn', ], 'CertificateName' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'certificateName', ], 'CertificateUploadDate' => [ 'shape' => '__timestampIso8601', 'locationName' => 'certificateUploadDate', ], 'EndpointType' => [ 'shape' => 'EndpointType', 'locationName' => 'endpointType', ], 'HostedZoneId' => [ 'shape' => '__string', 'locationName' => 'hostedZoneId', ], ], ], 'DomainNameConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'DomainNameConfiguration', ], ], 'DomainNames' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfDomainName', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'EndpointType' => [ 'type' => 'string', 'enum' => [ 'REGIONAL', 'EDGE', ], ], 'GetApiMappingRequest' => [ 'type' => 'structure', 'members' => [ 'ApiMappingId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiMappingId', ], 'DomainName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'domainName', ], ], 'required' => [ 'ApiMappingId', 'DomainName', ], ], 'GetApiMappingResponse' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => 'Id', 'locationName' => 'apiId', ], 'ApiMappingId' => [ 'shape' => 'Id', 'locationName' => 'apiMappingId', ], 'ApiMappingKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'apiMappingKey', ], 'Stage' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stage', ], ], ], 'GetApiMappingsRequest' => [ 'type' => 'structure', 'members' => [ 'DomainName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'domainName', ], 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], 'required' => [ 'DomainName', ], ], 'GetApiMappingsResponse' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfApiMapping', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetApiRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], ], 'required' => [ 'ApiId', ], ], 'GetApiResponse' => [ 'type' => 'structure', 'members' => [ 'ApiEndpoint' => [ 'shape' => '__string', 'locationName' => 'apiEndpoint', ], 'ApiId' => [ 'shape' => 'Id', 'locationName' => 'apiId', ], 'ApiKeySelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'apiKeySelectionExpression', ], 'CreatedDate' => [ 'shape' => '__timestampIso8601', 'locationName' => 'createdDate', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'DisableSchemaValidation' => [ 'shape' => '__boolean', 'locationName' => 'disableSchemaValidation', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'ProtocolType' => [ 'shape' => 'ProtocolType', 'locationName' => 'protocolType', ], 'RouteSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'routeSelectionExpression', ], 'Version' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'version', ], 'Warnings' => [ 'shape' => '__listOf__string', 'locationName' => 'warnings', ], ], ], 'GetApisRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'GetApisResponse' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfApi', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetAuthorizerRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'AuthorizerId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'authorizerId', ], ], 'required' => [ 'AuthorizerId', 'ApiId', ], ], 'GetAuthorizerResponse' => [ 'type' => 'structure', 'members' => [ 'AuthorizerCredentialsArn' => [ 'shape' => 'Arn', 'locationName' => 'authorizerCredentialsArn', ], 'AuthorizerId' => [ 'shape' => 'Id', 'locationName' => 'authorizerId', ], 'AuthorizerResultTtlInSeconds' => [ 'shape' => 'IntegerWithLengthBetween0And3600', 'locationName' => 'authorizerResultTtlInSeconds', ], 'AuthorizerType' => [ 'shape' => 'AuthorizerType', 'locationName' => 'authorizerType', ], 'AuthorizerUri' => [ 'shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'authorizerUri', ], 'IdentitySource' => [ 'shape' => 'IdentitySourceList', 'locationName' => 'identitySource', ], 'IdentityValidationExpression' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'identityValidationExpression', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'ProviderArns' => [ 'shape' => 'ProviderArnList', 'locationName' => 'providerArns', ], ], ], 'GetAuthorizersRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], 'required' => [ 'ApiId', ], ], 'GetAuthorizersResponse' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfAuthorizer', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetDeploymentRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'DeploymentId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'deploymentId', ], ], 'required' => [ 'ApiId', 'DeploymentId', ], ], 'GetDeploymentResponse' => [ 'type' => 'structure', 'members' => [ 'CreatedDate' => [ 'shape' => '__timestampIso8601', 'locationName' => 'createdDate', ], 'DeploymentId' => [ 'shape' => 'Id', 'locationName' => 'deploymentId', ], 'DeploymentStatus' => [ 'shape' => 'DeploymentStatus', 'locationName' => 'deploymentStatus', ], 'DeploymentStatusMessage' => [ 'shape' => '__string', 'locationName' => 'deploymentStatusMessage', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], ], ], 'GetDeploymentsRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], 'required' => [ 'ApiId', ], ], 'GetDeploymentsResponse' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfDeployment', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetDomainNameRequest' => [ 'type' => 'structure', 'members' => [ 'DomainName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'domainName', ], ], 'required' => [ 'DomainName', ], ], 'GetDomainNameResponse' => [ 'type' => 'structure', 'members' => [ 'ApiMappingSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'apiMappingSelectionExpression', ], 'DomainName' => [ 'shape' => 'StringWithLengthBetween1And512', 'locationName' => 'domainName', ], 'DomainNameConfigurations' => [ 'shape' => 'DomainNameConfigurations', 'locationName' => 'domainNameConfigurations', ], ], ], 'GetDomainNamesRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'GetDomainNamesResponse' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfDomainName', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIntegrationRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'IntegrationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'integrationId', ], ], 'required' => [ 'ApiId', 'IntegrationId', ], ], 'GetIntegrationResult' => [ 'type' => 'structure', 'members' => [ 'ConnectionId' => [ 'shape' => 'StringWithLengthBetween1And1024', 'locationName' => 'connectionId', ], 'ConnectionType' => [ 'shape' => 'ConnectionType', 'locationName' => 'connectionType', ], 'ContentHandlingStrategy' => [ 'shape' => 'ContentHandlingStrategy', 'locationName' => 'contentHandlingStrategy', ], 'CredentialsArn' => [ 'shape' => 'Arn', 'locationName' => 'credentialsArn', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'IntegrationId' => [ 'shape' => 'Id', 'locationName' => 'integrationId', ], 'IntegrationMethod' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'integrationMethod', ], 'IntegrationResponseSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'integrationResponseSelectionExpression', ], 'IntegrationType' => [ 'shape' => 'IntegrationType', 'locationName' => 'integrationType', ], 'IntegrationUri' => [ 'shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'integrationUri', ], 'PassthroughBehavior' => [ 'shape' => 'PassthroughBehavior', 'locationName' => 'passthroughBehavior', ], 'RequestParameters' => [ 'shape' => 'IntegrationParameters', 'locationName' => 'requestParameters', ], 'RequestTemplates' => [ 'shape' => 'TemplateMap', 'locationName' => 'requestTemplates', ], 'TemplateSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression', ], 'TimeoutInMillis' => [ 'shape' => 'IntegerWithLengthBetween50And29000', 'locationName' => 'timeoutInMillis', ], ], ], 'GetIntegrationResponseRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'IntegrationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'integrationId', ], 'IntegrationResponseId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'integrationResponseId', ], ], 'required' => [ 'ApiId', 'IntegrationResponseId', 'IntegrationId', ], ], 'GetIntegrationResponseResponse' => [ 'type' => 'structure', 'members' => [ 'ContentHandlingStrategy' => [ 'shape' => 'ContentHandlingStrategy', 'locationName' => 'contentHandlingStrategy', ], 'IntegrationResponseId' => [ 'shape' => 'Id', 'locationName' => 'integrationResponseId', ], 'IntegrationResponseKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'integrationResponseKey', ], 'ResponseParameters' => [ 'shape' => 'IntegrationParameters', 'locationName' => 'responseParameters', ], 'ResponseTemplates' => [ 'shape' => 'TemplateMap', 'locationName' => 'responseTemplates', ], 'TemplateSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression', ], ], ], 'GetIntegrationResponsesRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'IntegrationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'integrationId', ], 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], 'required' => [ 'IntegrationId', 'ApiId', ], ], 'GetIntegrationResponsesResponse' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfIntegrationResponse', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIntegrationsRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], 'required' => [ 'ApiId', ], ], 'GetIntegrationsResponse' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfIntegration', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetModelRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'ModelId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'modelId', ], ], 'required' => [ 'ModelId', 'ApiId', ], ], 'GetModelResponse' => [ 'type' => 'structure', 'members' => [ 'ContentType' => [ 'shape' => 'StringWithLengthBetween1And256', 'locationName' => 'contentType', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'ModelId' => [ 'shape' => 'Id', 'locationName' => 'modelId', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'Schema' => [ 'shape' => 'StringWithLengthBetween0And32K', 'locationName' => 'schema', ], ], ], 'GetModelTemplateRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'ModelId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'modelId', ], ], 'required' => [ 'ModelId', 'ApiId', ], ], 'GetModelTemplateResponse' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => '__string', 'locationName' => 'value', ], ], ], 'GetModelsRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], 'required' => [ 'ApiId', ], ], 'GetModelsResponse' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfModel', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetRouteRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'RouteId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'routeId', ], ], 'required' => [ 'ApiId', 'RouteId', ], ], 'GetRouteResult' => [ 'type' => 'structure', 'members' => [ 'ApiKeyRequired' => [ 'shape' => '__boolean', 'locationName' => 'apiKeyRequired', ], 'AuthorizationScopes' => [ 'shape' => 'AuthorizationScopes', 'locationName' => 'authorizationScopes', ], 'AuthorizationType' => [ 'shape' => 'AuthorizationType', 'locationName' => 'authorizationType', ], 'AuthorizerId' => [ 'shape' => 'Id', 'locationName' => 'authorizerId', ], 'ModelSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'modelSelectionExpression', ], 'OperationName' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'operationName', ], 'RequestModels' => [ 'shape' => 'RouteModels', 'locationName' => 'requestModels', ], 'RequestParameters' => [ 'shape' => 'RouteParameters', 'locationName' => 'requestParameters', ], 'RouteId' => [ 'shape' => 'Id', 'locationName' => 'routeId', ], 'RouteKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'routeKey', ], 'RouteResponseSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'routeResponseSelectionExpression', ], 'Target' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'target', ], ], ], 'GetRouteResponseRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'RouteId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'routeId', ], 'RouteResponseId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'routeResponseId', ], ], 'required' => [ 'RouteResponseId', 'ApiId', 'RouteId', ], ], 'GetRouteResponseResponse' => [ 'type' => 'structure', 'members' => [ 'ModelSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'modelSelectionExpression', ], 'ResponseModels' => [ 'shape' => 'RouteModels', 'locationName' => 'responseModels', ], 'ResponseParameters' => [ 'shape' => 'RouteParameters', 'locationName' => 'responseParameters', ], 'RouteResponseId' => [ 'shape' => 'Id', 'locationName' => 'routeResponseId', ], 'RouteResponseKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'routeResponseKey', ], ], ], 'GetRouteResponsesRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'RouteId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'routeId', ], ], 'required' => [ 'RouteId', 'ApiId', ], ], 'GetRouteResponsesResponse' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfRouteResponse', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetRoutesRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], 'required' => [ 'ApiId', ], ], 'GetRoutesResponse' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfRoute', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetStageRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'StageName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'stageName', ], ], 'required' => [ 'StageName', 'ApiId', ], ], 'GetStageResponse' => [ 'type' => 'structure', 'members' => [ 'AccessLogSettings' => [ 'shape' => 'AccessLogSettings', 'locationName' => 'accessLogSettings', ], 'ClientCertificateId' => [ 'shape' => 'Id', 'locationName' => 'clientCertificateId', ], 'CreatedDate' => [ 'shape' => '__timestampIso8601', 'locationName' => 'createdDate', ], 'DefaultRouteSettings' => [ 'shape' => 'RouteSettings', 'locationName' => 'defaultRouteSettings', ], 'DeploymentId' => [ 'shape' => 'Id', 'locationName' => 'deploymentId', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'LastUpdatedDate' => [ 'shape' => '__timestampIso8601', 'locationName' => 'lastUpdatedDate', ], 'RouteSettings' => [ 'shape' => 'RouteSettingsMap', 'locationName' => 'routeSettings', ], 'StageName' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stageName', ], 'StageVariables' => [ 'shape' => 'StageVariablesMap', 'locationName' => 'stageVariables', ], ], ], 'GetStagesRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], 'required' => [ 'ApiId', ], ], 'GetStagesResponse' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfStage', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'Id' => [ 'type' => 'string', ], 'IdentitySourceList' => [ 'type' => 'list', 'member' => [ 'shape' => '__string', ], ], 'IntegerWithLengthBetween0And3600' => [ 'type' => 'integer', 'min' => 0, 'max' => 3600, ], 'IntegerWithLengthBetween50And29000' => [ 'type' => 'integer', 'min' => 50, 'max' => 29000, ], 'Integration' => [ 'type' => 'structure', 'members' => [ 'ConnectionId' => [ 'shape' => 'StringWithLengthBetween1And1024', 'locationName' => 'connectionId', ], 'ConnectionType' => [ 'shape' => 'ConnectionType', 'locationName' => 'connectionType', ], 'ContentHandlingStrategy' => [ 'shape' => 'ContentHandlingStrategy', 'locationName' => 'contentHandlingStrategy', ], 'CredentialsArn' => [ 'shape' => 'Arn', 'locationName' => 'credentialsArn', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'IntegrationId' => [ 'shape' => 'Id', 'locationName' => 'integrationId', ], 'IntegrationMethod' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'integrationMethod', ], 'IntegrationResponseSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'integrationResponseSelectionExpression', ], 'IntegrationType' => [ 'shape' => 'IntegrationType', 'locationName' => 'integrationType', ], 'IntegrationUri' => [ 'shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'integrationUri', ], 'PassthroughBehavior' => [ 'shape' => 'PassthroughBehavior', 'locationName' => 'passthroughBehavior', ], 'RequestParameters' => [ 'shape' => 'IntegrationParameters', 'locationName' => 'requestParameters', ], 'RequestTemplates' => [ 'shape' => 'TemplateMap', 'locationName' => 'requestTemplates', ], 'TemplateSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression', ], 'TimeoutInMillis' => [ 'shape' => 'IntegerWithLengthBetween50And29000', 'locationName' => 'timeoutInMillis', ], ], ], 'IntegrationParameters' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'StringWithLengthBetween1And512', ], ], 'IntegrationResponse' => [ 'type' => 'structure', 'members' => [ 'ContentHandlingStrategy' => [ 'shape' => 'ContentHandlingStrategy', 'locationName' => 'contentHandlingStrategy', ], 'IntegrationResponseId' => [ 'shape' => 'Id', 'locationName' => 'integrationResponseId', ], 'IntegrationResponseKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'integrationResponseKey', ], 'ResponseParameters' => [ 'shape' => 'IntegrationParameters', 'locationName' => 'responseParameters', ], 'ResponseTemplates' => [ 'shape' => 'TemplateMap', 'locationName' => 'responseTemplates', ], 'TemplateSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression', ], ], 'required' => [ 'IntegrationResponseKey', ], ], 'IntegrationResponses' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfIntegrationResponse', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'IntegrationType' => [ 'type' => 'string', 'enum' => [ 'AWS', 'HTTP', 'MOCK', 'HTTP_PROXY', 'AWS_PROXY', ], ], 'Integrations' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfIntegration', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'LimitType' => [ 'shape' => '__string', 'locationName' => 'limitType', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], ], 'LoggingLevel' => [ 'type' => 'string', 'enum' => [ 'ERROR', 'INFO', 'false', ], ], 'Model' => [ 'type' => 'structure', 'members' => [ 'ContentType' => [ 'shape' => 'StringWithLengthBetween1And256', 'locationName' => 'contentType', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'ModelId' => [ 'shape' => 'Id', 'locationName' => 'modelId', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'Schema' => [ 'shape' => 'StringWithLengthBetween0And32K', 'locationName' => 'schema', ], ], 'required' => [ 'Name', ], ], 'Models' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfModel', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'NextToken' => [ 'type' => 'string', ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], 'ResourceType' => [ 'shape' => '__string', 'locationName' => 'resourceType', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 404, ], ], 'ParameterConstraints' => [ 'type' => 'structure', 'members' => [ 'Required' => [ 'shape' => '__boolean', 'locationName' => 'required', ], ], ], 'PassthroughBehavior' => [ 'type' => 'string', 'enum' => [ 'WHEN_NO_MATCH', 'NEVER', 'WHEN_NO_TEMPLATES', ], ], 'ProtocolType' => [ 'type' => 'string', 'enum' => [ 'WEBSOCKET', ], ], 'ProviderArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Arn', ], ], 'Route' => [ 'type' => 'structure', 'members' => [ 'ApiKeyRequired' => [ 'shape' => '__boolean', 'locationName' => 'apiKeyRequired', ], 'AuthorizationScopes' => [ 'shape' => 'AuthorizationScopes', 'locationName' => 'authorizationScopes', ], 'AuthorizationType' => [ 'shape' => 'AuthorizationType', 'locationName' => 'authorizationType', ], 'AuthorizerId' => [ 'shape' => 'Id', 'locationName' => 'authorizerId', ], 'ModelSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'modelSelectionExpression', ], 'OperationName' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'operationName', ], 'RequestModels' => [ 'shape' => 'RouteModels', 'locationName' => 'requestModels', ], 'RequestParameters' => [ 'shape' => 'RouteParameters', 'locationName' => 'requestParameters', ], 'RouteId' => [ 'shape' => 'Id', 'locationName' => 'routeId', ], 'RouteKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'routeKey', ], 'RouteResponseSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'routeResponseSelectionExpression', ], 'Target' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'target', ], ], 'required' => [ 'RouteKey', ], ], 'RouteModels' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'StringWithLengthBetween1And128', ], ], 'RouteParameters' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'ParameterConstraints', ], ], 'RouteResponse' => [ 'type' => 'structure', 'members' => [ 'ModelSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'modelSelectionExpression', ], 'ResponseModels' => [ 'shape' => 'RouteModels', 'locationName' => 'responseModels', ], 'ResponseParameters' => [ 'shape' => 'RouteParameters', 'locationName' => 'responseParameters', ], 'RouteResponseId' => [ 'shape' => 'Id', 'locationName' => 'routeResponseId', ], 'RouteResponseKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'routeResponseKey', ], ], 'required' => [ 'RouteResponseKey', ], ], 'RouteResponses' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfRouteResponse', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'RouteSettings' => [ 'type' => 'structure', 'members' => [ 'DataTraceEnabled' => [ 'shape' => '__boolean', 'locationName' => 'dataTraceEnabled', ], 'DetailedMetricsEnabled' => [ 'shape' => '__boolean', 'locationName' => 'detailedMetricsEnabled', ], 'LoggingLevel' => [ 'shape' => 'LoggingLevel', 'locationName' => 'loggingLevel', ], 'ThrottlingBurstLimit' => [ 'shape' => '__integer', 'locationName' => 'throttlingBurstLimit', ], 'ThrottlingRateLimit' => [ 'shape' => '__double', 'locationName' => 'throttlingRateLimit', ], ], ], 'RouteSettingsMap' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'RouteSettings', ], ], 'Routes' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfRoute', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'SelectionExpression' => [ 'type' => 'string', ], 'SelectionKey' => [ 'type' => 'string', ], 'Stage' => [ 'type' => 'structure', 'members' => [ 'AccessLogSettings' => [ 'shape' => 'AccessLogSettings', 'locationName' => 'accessLogSettings', ], 'ClientCertificateId' => [ 'shape' => 'Id', 'locationName' => 'clientCertificateId', ], 'CreatedDate' => [ 'shape' => '__timestampIso8601', 'locationName' => 'createdDate', ], 'DefaultRouteSettings' => [ 'shape' => 'RouteSettings', 'locationName' => 'defaultRouteSettings', ], 'DeploymentId' => [ 'shape' => 'Id', 'locationName' => 'deploymentId', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'LastUpdatedDate' => [ 'shape' => '__timestampIso8601', 'locationName' => 'lastUpdatedDate', ], 'RouteSettings' => [ 'shape' => 'RouteSettingsMap', 'locationName' => 'routeSettings', ], 'StageName' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stageName', ], 'StageVariables' => [ 'shape' => 'StageVariablesMap', 'locationName' => 'stageVariables', ], ], 'required' => [ 'StageName', ], ], 'StageVariablesMap' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'StringWithLengthBetween0And2048', ], ], 'Stages' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfStage', 'locationName' => 'items', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'StringWithLengthBetween0And1024' => [ 'type' => 'string', ], 'StringWithLengthBetween0And2048' => [ 'type' => 'string', ], 'StringWithLengthBetween0And32K' => [ 'type' => 'string', ], 'StringWithLengthBetween1And1024' => [ 'type' => 'string', ], 'StringWithLengthBetween1And128' => [ 'type' => 'string', ], 'StringWithLengthBetween1And256' => [ 'type' => 'string', ], 'StringWithLengthBetween1And512' => [ 'type' => 'string', ], 'StringWithLengthBetween1And64' => [ 'type' => 'string', ], 'Template' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => '__string', 'locationName' => 'value', ], ], ], 'TemplateMap' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'StringWithLengthBetween0And32K', ], ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'LimitType' => [ 'shape' => '__string', 'locationName' => 'limitType', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 429, ], ], 'UpdateApiInput' => [ 'type' => 'structure', 'members' => [ 'ApiKeySelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'apiKeySelectionExpression', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'DisableSchemaValidation' => [ 'shape' => '__boolean', 'locationName' => 'disableSchemaValidation', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'RouteSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'routeSelectionExpression', ], 'Version' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'version', ], ], ], 'UpdateApiMappingInput' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => 'Id', 'locationName' => 'apiId', ], 'ApiMappingKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'apiMappingKey', ], 'Stage' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stage', ], ], ], 'UpdateApiMappingRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => 'Id', 'locationName' => 'apiId', ], 'ApiMappingId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiMappingId', ], 'ApiMappingKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'apiMappingKey', ], 'DomainName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'domainName', ], 'Stage' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stage', ], ], 'required' => [ 'ApiMappingId', 'ApiId', 'DomainName', ], ], 'UpdateApiMappingResponse' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => 'Id', 'locationName' => 'apiId', ], 'ApiMappingId' => [ 'shape' => 'Id', 'locationName' => 'apiMappingId', ], 'ApiMappingKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'apiMappingKey', ], 'Stage' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stage', ], ], ], 'UpdateApiRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'ApiKeySelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'apiKeySelectionExpression', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'DisableSchemaValidation' => [ 'shape' => '__boolean', 'locationName' => 'disableSchemaValidation', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'RouteSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'routeSelectionExpression', ], 'Version' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'version', ], ], 'required' => [ 'ApiId', ], ], 'UpdateApiResponse' => [ 'type' => 'structure', 'members' => [ 'ApiEndpoint' => [ 'shape' => '__string', 'locationName' => 'apiEndpoint', ], 'ApiId' => [ 'shape' => 'Id', 'locationName' => 'apiId', ], 'ApiKeySelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'apiKeySelectionExpression', ], 'CreatedDate' => [ 'shape' => '__timestampIso8601', 'locationName' => 'createdDate', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'DisableSchemaValidation' => [ 'shape' => '__boolean', 'locationName' => 'disableSchemaValidation', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'ProtocolType' => [ 'shape' => 'ProtocolType', 'locationName' => 'protocolType', ], 'RouteSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'routeSelectionExpression', ], 'Version' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'version', ], 'Warnings' => [ 'shape' => '__listOf__string', 'locationName' => 'warnings', ], ], ], 'UpdateAuthorizerInput' => [ 'type' => 'structure', 'members' => [ 'AuthorizerCredentialsArn' => [ 'shape' => 'Arn', 'locationName' => 'authorizerCredentialsArn', ], 'AuthorizerResultTtlInSeconds' => [ 'shape' => 'IntegerWithLengthBetween0And3600', 'locationName' => 'authorizerResultTtlInSeconds', ], 'AuthorizerType' => [ 'shape' => 'AuthorizerType', 'locationName' => 'authorizerType', ], 'AuthorizerUri' => [ 'shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'authorizerUri', ], 'IdentitySource' => [ 'shape' => 'IdentitySourceList', 'locationName' => 'identitySource', ], 'IdentityValidationExpression' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'identityValidationExpression', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'ProviderArns' => [ 'shape' => 'ProviderArnList', 'locationName' => 'providerArns', ], ], ], 'UpdateAuthorizerRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'AuthorizerCredentialsArn' => [ 'shape' => 'Arn', 'locationName' => 'authorizerCredentialsArn', ], 'AuthorizerId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'authorizerId', ], 'AuthorizerResultTtlInSeconds' => [ 'shape' => 'IntegerWithLengthBetween0And3600', 'locationName' => 'authorizerResultTtlInSeconds', ], 'AuthorizerType' => [ 'shape' => 'AuthorizerType', 'locationName' => 'authorizerType', ], 'AuthorizerUri' => [ 'shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'authorizerUri', ], 'IdentitySource' => [ 'shape' => 'IdentitySourceList', 'locationName' => 'identitySource', ], 'IdentityValidationExpression' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'identityValidationExpression', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'ProviderArns' => [ 'shape' => 'ProviderArnList', 'locationName' => 'providerArns', ], ], 'required' => [ 'AuthorizerId', 'ApiId', ], ], 'UpdateAuthorizerResponse' => [ 'type' => 'structure', 'members' => [ 'AuthorizerCredentialsArn' => [ 'shape' => 'Arn', 'locationName' => 'authorizerCredentialsArn', ], 'AuthorizerId' => [ 'shape' => 'Id', 'locationName' => 'authorizerId', ], 'AuthorizerResultTtlInSeconds' => [ 'shape' => 'IntegerWithLengthBetween0And3600', 'locationName' => 'authorizerResultTtlInSeconds', ], 'AuthorizerType' => [ 'shape' => 'AuthorizerType', 'locationName' => 'authorizerType', ], 'AuthorizerUri' => [ 'shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'authorizerUri', ], 'IdentitySource' => [ 'shape' => 'IdentitySourceList', 'locationName' => 'identitySource', ], 'IdentityValidationExpression' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'identityValidationExpression', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'ProviderArns' => [ 'shape' => 'ProviderArnList', 'locationName' => 'providerArns', ], ], ], 'UpdateDeploymentInput' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], ], ], 'UpdateDeploymentRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'DeploymentId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'deploymentId', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], ], 'required' => [ 'ApiId', 'DeploymentId', ], ], 'UpdateDeploymentResponse' => [ 'type' => 'structure', 'members' => [ 'CreatedDate' => [ 'shape' => '__timestampIso8601', 'locationName' => 'createdDate', ], 'DeploymentId' => [ 'shape' => 'Id', 'locationName' => 'deploymentId', ], 'DeploymentStatus' => [ 'shape' => 'DeploymentStatus', 'locationName' => 'deploymentStatus', ], 'DeploymentStatusMessage' => [ 'shape' => '__string', 'locationName' => 'deploymentStatusMessage', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], ], ], 'UpdateDomainNameInput' => [ 'type' => 'structure', 'members' => [ 'DomainNameConfigurations' => [ 'shape' => 'DomainNameConfigurations', 'locationName' => 'domainNameConfigurations', ], ], ], 'UpdateDomainNameRequest' => [ 'type' => 'structure', 'members' => [ 'DomainName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'domainName', ], 'DomainNameConfigurations' => [ 'shape' => 'DomainNameConfigurations', 'locationName' => 'domainNameConfigurations', ], ], 'required' => [ 'DomainName', ], ], 'UpdateDomainNameResponse' => [ 'type' => 'structure', 'members' => [ 'ApiMappingSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'apiMappingSelectionExpression', ], 'DomainName' => [ 'shape' => 'StringWithLengthBetween1And512', 'locationName' => 'domainName', ], 'DomainNameConfigurations' => [ 'shape' => 'DomainNameConfigurations', 'locationName' => 'domainNameConfigurations', ], ], ], 'UpdateIntegrationInput' => [ 'type' => 'structure', 'members' => [ 'ConnectionId' => [ 'shape' => 'StringWithLengthBetween1And1024', 'locationName' => 'connectionId', ], 'ConnectionType' => [ 'shape' => 'ConnectionType', 'locationName' => 'connectionType', ], 'ContentHandlingStrategy' => [ 'shape' => 'ContentHandlingStrategy', 'locationName' => 'contentHandlingStrategy', ], 'CredentialsArn' => [ 'shape' => 'Arn', 'locationName' => 'credentialsArn', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'IntegrationMethod' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'integrationMethod', ], 'IntegrationType' => [ 'shape' => 'IntegrationType', 'locationName' => 'integrationType', ], 'IntegrationUri' => [ 'shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'integrationUri', ], 'PassthroughBehavior' => [ 'shape' => 'PassthroughBehavior', 'locationName' => 'passthroughBehavior', ], 'RequestParameters' => [ 'shape' => 'IntegrationParameters', 'locationName' => 'requestParameters', ], 'RequestTemplates' => [ 'shape' => 'TemplateMap', 'locationName' => 'requestTemplates', ], 'TemplateSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression', ], 'TimeoutInMillis' => [ 'shape' => 'IntegerWithLengthBetween50And29000', 'locationName' => 'timeoutInMillis', ], ], ], 'UpdateIntegrationRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'ConnectionId' => [ 'shape' => 'StringWithLengthBetween1And1024', 'locationName' => 'connectionId', ], 'ConnectionType' => [ 'shape' => 'ConnectionType', 'locationName' => 'connectionType', ], 'ContentHandlingStrategy' => [ 'shape' => 'ContentHandlingStrategy', 'locationName' => 'contentHandlingStrategy', ], 'CredentialsArn' => [ 'shape' => 'Arn', 'locationName' => 'credentialsArn', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'IntegrationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'integrationId', ], 'IntegrationMethod' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'integrationMethod', ], 'IntegrationType' => [ 'shape' => 'IntegrationType', 'locationName' => 'integrationType', ], 'IntegrationUri' => [ 'shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'integrationUri', ], 'PassthroughBehavior' => [ 'shape' => 'PassthroughBehavior', 'locationName' => 'passthroughBehavior', ], 'RequestParameters' => [ 'shape' => 'IntegrationParameters', 'locationName' => 'requestParameters', ], 'RequestTemplates' => [ 'shape' => 'TemplateMap', 'locationName' => 'requestTemplates', ], 'TemplateSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression', ], 'TimeoutInMillis' => [ 'shape' => 'IntegerWithLengthBetween50And29000', 'locationName' => 'timeoutInMillis', ], ], 'required' => [ 'ApiId', 'IntegrationId', ], ], 'UpdateIntegrationResult' => [ 'type' => 'structure', 'members' => [ 'ConnectionId' => [ 'shape' => 'StringWithLengthBetween1And1024', 'locationName' => 'connectionId', ], 'ConnectionType' => [ 'shape' => 'ConnectionType', 'locationName' => 'connectionType', ], 'ContentHandlingStrategy' => [ 'shape' => 'ContentHandlingStrategy', 'locationName' => 'contentHandlingStrategy', ], 'CredentialsArn' => [ 'shape' => 'Arn', 'locationName' => 'credentialsArn', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'IntegrationId' => [ 'shape' => 'Id', 'locationName' => 'integrationId', ], 'IntegrationMethod' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'integrationMethod', ], 'IntegrationResponseSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'integrationResponseSelectionExpression', ], 'IntegrationType' => [ 'shape' => 'IntegrationType', 'locationName' => 'integrationType', ], 'IntegrationUri' => [ 'shape' => 'UriWithLengthBetween1And2048', 'locationName' => 'integrationUri', ], 'PassthroughBehavior' => [ 'shape' => 'PassthroughBehavior', 'locationName' => 'passthroughBehavior', ], 'RequestParameters' => [ 'shape' => 'IntegrationParameters', 'locationName' => 'requestParameters', ], 'RequestTemplates' => [ 'shape' => 'TemplateMap', 'locationName' => 'requestTemplates', ], 'TemplateSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression', ], 'TimeoutInMillis' => [ 'shape' => 'IntegerWithLengthBetween50And29000', 'locationName' => 'timeoutInMillis', ], ], ], 'UpdateIntegrationResponseInput' => [ 'type' => 'structure', 'members' => [ 'ContentHandlingStrategy' => [ 'shape' => 'ContentHandlingStrategy', 'locationName' => 'contentHandlingStrategy', ], 'IntegrationResponseKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'integrationResponseKey', ], 'ResponseParameters' => [ 'shape' => 'IntegrationParameters', 'locationName' => 'responseParameters', ], 'ResponseTemplates' => [ 'shape' => 'TemplateMap', 'locationName' => 'responseTemplates', ], 'TemplateSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression', ], ], ], 'UpdateIntegrationResponseRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'ContentHandlingStrategy' => [ 'shape' => 'ContentHandlingStrategy', 'locationName' => 'contentHandlingStrategy', ], 'IntegrationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'integrationId', ], 'IntegrationResponseId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'integrationResponseId', ], 'IntegrationResponseKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'integrationResponseKey', ], 'ResponseParameters' => [ 'shape' => 'IntegrationParameters', 'locationName' => 'responseParameters', ], 'ResponseTemplates' => [ 'shape' => 'TemplateMap', 'locationName' => 'responseTemplates', ], 'TemplateSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression', ], ], 'required' => [ 'ApiId', 'IntegrationResponseId', 'IntegrationId', ], ], 'UpdateIntegrationResponseResponse' => [ 'type' => 'structure', 'members' => [ 'ContentHandlingStrategy' => [ 'shape' => 'ContentHandlingStrategy', 'locationName' => 'contentHandlingStrategy', ], 'IntegrationResponseId' => [ 'shape' => 'Id', 'locationName' => 'integrationResponseId', ], 'IntegrationResponseKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'integrationResponseKey', ], 'ResponseParameters' => [ 'shape' => 'IntegrationParameters', 'locationName' => 'responseParameters', ], 'ResponseTemplates' => [ 'shape' => 'TemplateMap', 'locationName' => 'responseTemplates', ], 'TemplateSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'templateSelectionExpression', ], ], ], 'UpdateModelInput' => [ 'type' => 'structure', 'members' => [ 'ContentType' => [ 'shape' => 'StringWithLengthBetween1And256', 'locationName' => 'contentType', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'Schema' => [ 'shape' => 'StringWithLengthBetween0And32K', 'locationName' => 'schema', ], ], ], 'UpdateModelRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'ContentType' => [ 'shape' => 'StringWithLengthBetween1And256', 'locationName' => 'contentType', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'ModelId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'modelId', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'Schema' => [ 'shape' => 'StringWithLengthBetween0And32K', 'locationName' => 'schema', ], ], 'required' => [ 'ModelId', 'ApiId', ], ], 'UpdateModelResponse' => [ 'type' => 'structure', 'members' => [ 'ContentType' => [ 'shape' => 'StringWithLengthBetween1And256', 'locationName' => 'contentType', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'ModelId' => [ 'shape' => 'Id', 'locationName' => 'modelId', ], 'Name' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'name', ], 'Schema' => [ 'shape' => 'StringWithLengthBetween0And32K', 'locationName' => 'schema', ], ], ], 'UpdateRouteInput' => [ 'type' => 'structure', 'members' => [ 'ApiKeyRequired' => [ 'shape' => '__boolean', 'locationName' => 'apiKeyRequired', ], 'AuthorizationScopes' => [ 'shape' => 'AuthorizationScopes', 'locationName' => 'authorizationScopes', ], 'AuthorizationType' => [ 'shape' => 'AuthorizationType', 'locationName' => 'authorizationType', ], 'AuthorizerId' => [ 'shape' => 'Id', 'locationName' => 'authorizerId', ], 'ModelSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'modelSelectionExpression', ], 'OperationName' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'operationName', ], 'RequestModels' => [ 'shape' => 'RouteModels', 'locationName' => 'requestModels', ], 'RequestParameters' => [ 'shape' => 'RouteParameters', 'locationName' => 'requestParameters', ], 'RouteKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'routeKey', ], 'RouteResponseSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'routeResponseSelectionExpression', ], 'Target' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'target', ], ], ], 'UpdateRouteRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'ApiKeyRequired' => [ 'shape' => '__boolean', 'locationName' => 'apiKeyRequired', ], 'AuthorizationScopes' => [ 'shape' => 'AuthorizationScopes', 'locationName' => 'authorizationScopes', ], 'AuthorizationType' => [ 'shape' => 'AuthorizationType', 'locationName' => 'authorizationType', ], 'AuthorizerId' => [ 'shape' => 'Id', 'locationName' => 'authorizerId', ], 'ModelSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'modelSelectionExpression', ], 'OperationName' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'operationName', ], 'RequestModels' => [ 'shape' => 'RouteModels', 'locationName' => 'requestModels', ], 'RequestParameters' => [ 'shape' => 'RouteParameters', 'locationName' => 'requestParameters', ], 'RouteId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'routeId', ], 'RouteKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'routeKey', ], 'RouteResponseSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'routeResponseSelectionExpression', ], 'Target' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'target', ], ], 'required' => [ 'ApiId', 'RouteId', ], ], 'UpdateRouteResult' => [ 'type' => 'structure', 'members' => [ 'ApiKeyRequired' => [ 'shape' => '__boolean', 'locationName' => 'apiKeyRequired', ], 'AuthorizationScopes' => [ 'shape' => 'AuthorizationScopes', 'locationName' => 'authorizationScopes', ], 'AuthorizationType' => [ 'shape' => 'AuthorizationType', 'locationName' => 'authorizationType', ], 'AuthorizerId' => [ 'shape' => 'Id', 'locationName' => 'authorizerId', ], 'ModelSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'modelSelectionExpression', ], 'OperationName' => [ 'shape' => 'StringWithLengthBetween1And64', 'locationName' => 'operationName', ], 'RequestModels' => [ 'shape' => 'RouteModels', 'locationName' => 'requestModels', ], 'RequestParameters' => [ 'shape' => 'RouteParameters', 'locationName' => 'requestParameters', ], 'RouteId' => [ 'shape' => 'Id', 'locationName' => 'routeId', ], 'RouteKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'routeKey', ], 'RouteResponseSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'routeResponseSelectionExpression', ], 'Target' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'target', ], ], ], 'UpdateRouteResponseInput' => [ 'type' => 'structure', 'members' => [ 'ModelSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'modelSelectionExpression', ], 'ResponseModels' => [ 'shape' => 'RouteModels', 'locationName' => 'responseModels', ], 'ResponseParameters' => [ 'shape' => 'RouteParameters', 'locationName' => 'responseParameters', ], 'RouteResponseKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'routeResponseKey', ], ], ], 'UpdateRouteResponseRequest' => [ 'type' => 'structure', 'members' => [ 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'ModelSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'modelSelectionExpression', ], 'ResponseModels' => [ 'shape' => 'RouteModels', 'locationName' => 'responseModels', ], 'ResponseParameters' => [ 'shape' => 'RouteParameters', 'locationName' => 'responseParameters', ], 'RouteId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'routeId', ], 'RouteResponseId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'routeResponseId', ], 'RouteResponseKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'routeResponseKey', ], ], 'required' => [ 'RouteResponseId', 'ApiId', 'RouteId', ], ], 'UpdateRouteResponseResponse' => [ 'type' => 'structure', 'members' => [ 'ModelSelectionExpression' => [ 'shape' => 'SelectionExpression', 'locationName' => 'modelSelectionExpression', ], 'ResponseModels' => [ 'shape' => 'RouteModels', 'locationName' => 'responseModels', ], 'ResponseParameters' => [ 'shape' => 'RouteParameters', 'locationName' => 'responseParameters', ], 'RouteResponseId' => [ 'shape' => 'Id', 'locationName' => 'routeResponseId', ], 'RouteResponseKey' => [ 'shape' => 'SelectionKey', 'locationName' => 'routeResponseKey', ], ], ], 'UpdateStageInput' => [ 'type' => 'structure', 'members' => [ 'AccessLogSettings' => [ 'shape' => 'AccessLogSettings', 'locationName' => 'accessLogSettings', ], 'ClientCertificateId' => [ 'shape' => 'Id', 'locationName' => 'clientCertificateId', ], 'DefaultRouteSettings' => [ 'shape' => 'RouteSettings', 'locationName' => 'defaultRouteSettings', ], 'DeploymentId' => [ 'shape' => 'Id', 'locationName' => 'deploymentId', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'RouteSettings' => [ 'shape' => 'RouteSettingsMap', 'locationName' => 'routeSettings', ], 'StageVariables' => [ 'shape' => 'StageVariablesMap', 'locationName' => 'stageVariables', ], ], ], 'UpdateStageRequest' => [ 'type' => 'structure', 'members' => [ 'AccessLogSettings' => [ 'shape' => 'AccessLogSettings', 'locationName' => 'accessLogSettings', ], 'ApiId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'apiId', ], 'ClientCertificateId' => [ 'shape' => 'Id', 'locationName' => 'clientCertificateId', ], 'DefaultRouteSettings' => [ 'shape' => 'RouteSettings', 'locationName' => 'defaultRouteSettings', ], 'DeploymentId' => [ 'shape' => 'Id', 'locationName' => 'deploymentId', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'RouteSettings' => [ 'shape' => 'RouteSettingsMap', 'locationName' => 'routeSettings', ], 'StageName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'stageName', ], 'StageVariables' => [ 'shape' => 'StageVariablesMap', 'locationName' => 'stageVariables', ], ], 'required' => [ 'StageName', 'ApiId', ], ], 'UpdateStageResponse' => [ 'type' => 'structure', 'members' => [ 'AccessLogSettings' => [ 'shape' => 'AccessLogSettings', 'locationName' => 'accessLogSettings', ], 'ClientCertificateId' => [ 'shape' => 'Id', 'locationName' => 'clientCertificateId', ], 'CreatedDate' => [ 'shape' => '__timestampIso8601', 'locationName' => 'createdDate', ], 'DefaultRouteSettings' => [ 'shape' => 'RouteSettings', 'locationName' => 'defaultRouteSettings', ], 'DeploymentId' => [ 'shape' => 'Id', 'locationName' => 'deploymentId', ], 'Description' => [ 'shape' => 'StringWithLengthBetween0And1024', 'locationName' => 'description', ], 'LastUpdatedDate' => [ 'shape' => '__timestampIso8601', 'locationName' => 'lastUpdatedDate', ], 'RouteSettings' => [ 'shape' => 'RouteSettingsMap', 'locationName' => 'routeSettings', ], 'StageName' => [ 'shape' => 'StringWithLengthBetween1And128', 'locationName' => 'stageName', ], 'StageVariables' => [ 'shape' => 'StageVariablesMap', 'locationName' => 'stageVariables', ], ], ], 'UriWithLengthBetween1And2048' => [ 'type' => 'string', ], '__boolean' => [ 'type' => 'boolean', ], '__double' => [ 'type' => 'double', ], '__integer' => [ 'type' => 'integer', ], '__listOfApi' => [ 'type' => 'list', 'member' => [ 'shape' => 'Api', ], ], '__listOfApiMapping' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApiMapping', ], ], '__listOfAuthorizer' => [ 'type' => 'list', 'member' => [ 'shape' => 'Authorizer', ], ], '__listOfDeployment' => [ 'type' => 'list', 'member' => [ 'shape' => 'Deployment', ], ], '__listOfDomainName' => [ 'type' => 'list', 'member' => [ 'shape' => 'DomainName', ], ], '__listOfIntegration' => [ 'type' => 'list', 'member' => [ 'shape' => 'Integration', ], ], '__listOfIntegrationResponse' => [ 'type' => 'list', 'member' => [ 'shape' => 'IntegrationResponse', ], ], '__listOfModel' => [ 'type' => 'list', 'member' => [ 'shape' => 'Model', ], ], '__listOfRoute' => [ 'type' => 'list', 'member' => [ 'shape' => 'Route', ], ], '__listOfRouteResponse' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteResponse', ], ], '__listOfStage' => [ 'type' => 'list', 'member' => [ 'shape' => 'Stage', ], ], '__listOf__string' => [ 'type' => 'list', 'member' => [ 'shape' => '__string', ], ], '__long' => [ 'type' => 'long', ], '__string' => [ 'type' => 'string', ], '__timestampIso8601' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], '__timestampUnix' => [ 'type' => 'timestamp', 'timestampFormat' => 'unixTimestamp', ], ], 'authorizers' => [ 'authorization_strategy' => [ 'name' => 'authorization_strategy', 'type' => 'provided', 'placement' => [ 'location' => 'header', 'name' => 'Authorization', ], ], ],]; diff --git a/lib/aws/Aws/data/apigatewayv2/2018-11-29/paginators-1.json.php b/lib/aws/Aws/data/apigatewayv2/2018-11-29/paginators-1.json.php new file mode 100644 index 0000000..2884bbe --- /dev/null +++ b/lib/aws/Aws/data/apigatewayv2/2018-11-29/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/apigatewayv2/2018-11-29/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/application-autoscaling/2016-02-06/api-2.json.php b/lib/aws/Aws/data/application-autoscaling/2016-02-06/api-2.json.php new file mode 100644 index 0000000..f4de00e --- /dev/null +++ b/lib/aws/Aws/data/application-autoscaling/2016-02-06/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/application-autoscaling/2016-02-06/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-02-06', 'endpointPrefix' => 'autoscaling', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Application Auto Scaling', 'serviceId' => 'Application Auto Scaling', 'signatureVersion' => 'v4', 'signingName' => 'application-autoscaling', 'targetPrefix' => 'AnyScaleFrontendService', 'uid' => 'application-autoscaling-2016-02-06', ], 'operations' => [ 'DeleteScalingPolicy' => [ 'name' => 'DeleteScalingPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteScalingPolicyRequest', ], 'output' => [ 'shape' => 'DeleteScalingPolicyResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ObjectNotFoundException', ], [ 'shape' => 'ConcurrentUpdateException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DeleteScheduledAction' => [ 'name' => 'DeleteScheduledAction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteScheduledActionRequest', ], 'output' => [ 'shape' => 'DeleteScheduledActionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ObjectNotFoundException', ], [ 'shape' => 'ConcurrentUpdateException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DeregisterScalableTarget' => [ 'name' => 'DeregisterScalableTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterScalableTargetRequest', ], 'output' => [ 'shape' => 'DeregisterScalableTargetResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ObjectNotFoundException', ], [ 'shape' => 'ConcurrentUpdateException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DescribeScalableTargets' => [ 'name' => 'DescribeScalableTargets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScalableTargetsRequest', ], 'output' => [ 'shape' => 'DescribeScalableTargetsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ConcurrentUpdateException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DescribeScalingActivities' => [ 'name' => 'DescribeScalingActivities', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScalingActivitiesRequest', ], 'output' => [ 'shape' => 'DescribeScalingActivitiesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ConcurrentUpdateException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DescribeScalingPolicies' => [ 'name' => 'DescribeScalingPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScalingPoliciesRequest', ], 'output' => [ 'shape' => 'DescribeScalingPoliciesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'FailedResourceAccessException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ConcurrentUpdateException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DescribeScheduledActions' => [ 'name' => 'DescribeScheduledActions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScheduledActionsRequest', ], 'output' => [ 'shape' => 'DescribeScheduledActionsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ConcurrentUpdateException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'PutScalingPolicy' => [ 'name' => 'PutScalingPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutScalingPolicyRequest', ], 'output' => [ 'shape' => 'PutScalingPolicyResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ObjectNotFoundException', ], [ 'shape' => 'ConcurrentUpdateException', ], [ 'shape' => 'FailedResourceAccessException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'PutScheduledAction' => [ 'name' => 'PutScheduledAction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutScheduledActionRequest', ], 'output' => [ 'shape' => 'PutScheduledActionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ObjectNotFoundException', ], [ 'shape' => 'ConcurrentUpdateException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'RegisterScalableTarget' => [ 'name' => 'RegisterScalableTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterScalableTargetRequest', ], 'output' => [ 'shape' => 'RegisterScalableTargetResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ConcurrentUpdateException', ], [ 'shape' => 'InternalServiceException', ], ], ], ], 'shapes' => [ 'AdjustmentType' => [ 'type' => 'string', 'enum' => [ 'ChangeInCapacity', 'PercentChangeInCapacity', 'ExactCapacity', ], ], 'Alarm' => [ 'type' => 'structure', 'required' => [ 'AlarmName', 'AlarmARN', ], 'members' => [ 'AlarmName' => [ 'shape' => 'ResourceId', ], 'AlarmARN' => [ 'shape' => 'ResourceId', ], ], ], 'Alarms' => [ 'type' => 'list', 'member' => [ 'shape' => 'Alarm', ], ], 'ConcurrentUpdateException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'Cooldown' => [ 'type' => 'integer', ], 'CustomizedMetricSpecification' => [ 'type' => 'structure', 'required' => [ 'MetricName', 'Namespace', 'Statistic', ], 'members' => [ 'MetricName' => [ 'shape' => 'MetricName', ], 'Namespace' => [ 'shape' => 'MetricNamespace', ], 'Dimensions' => [ 'shape' => 'MetricDimensions', ], 'Statistic' => [ 'shape' => 'MetricStatistic', ], 'Unit' => [ 'shape' => 'MetricUnit', ], ], ], 'DeleteScalingPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'PolicyName', 'ServiceNamespace', 'ResourceId', 'ScalableDimension', ], 'members' => [ 'PolicyName' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'ServiceNamespace' => [ 'shape' => 'ServiceNamespace', ], 'ResourceId' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'ScalableDimension' => [ 'shape' => 'ScalableDimension', ], ], ], 'DeleteScalingPolicyResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteScheduledActionRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceNamespace', 'ScheduledActionName', 'ResourceId', 'ScalableDimension', ], 'members' => [ 'ServiceNamespace' => [ 'shape' => 'ServiceNamespace', ], 'ScheduledActionName' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'ResourceId' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'ScalableDimension' => [ 'shape' => 'ScalableDimension', ], ], ], 'DeleteScheduledActionResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeregisterScalableTargetRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceNamespace', 'ResourceId', 'ScalableDimension', ], 'members' => [ 'ServiceNamespace' => [ 'shape' => 'ServiceNamespace', ], 'ResourceId' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'ScalableDimension' => [ 'shape' => 'ScalableDimension', ], ], ], 'DeregisterScalableTargetResponse' => [ 'type' => 'structure', 'members' => [], ], 'DescribeScalableTargetsRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceNamespace', ], 'members' => [ 'ServiceNamespace' => [ 'shape' => 'ServiceNamespace', ], 'ResourceIds' => [ 'shape' => 'ResourceIdsMaxLen1600', ], 'ScalableDimension' => [ 'shape' => 'ScalableDimension', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'XmlString', ], ], ], 'DescribeScalableTargetsResponse' => [ 'type' => 'structure', 'members' => [ 'ScalableTargets' => [ 'shape' => 'ScalableTargets', ], 'NextToken' => [ 'shape' => 'XmlString', ], ], ], 'DescribeScalingActivitiesRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceNamespace', ], 'members' => [ 'ServiceNamespace' => [ 'shape' => 'ServiceNamespace', ], 'ResourceId' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'ScalableDimension' => [ 'shape' => 'ScalableDimension', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'XmlString', ], ], ], 'DescribeScalingActivitiesResponse' => [ 'type' => 'structure', 'members' => [ 'ScalingActivities' => [ 'shape' => 'ScalingActivities', ], 'NextToken' => [ 'shape' => 'XmlString', ], ], ], 'DescribeScalingPoliciesRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceNamespace', ], 'members' => [ 'PolicyNames' => [ 'shape' => 'ResourceIdsMaxLen1600', ], 'ServiceNamespace' => [ 'shape' => 'ServiceNamespace', ], 'ResourceId' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'ScalableDimension' => [ 'shape' => 'ScalableDimension', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'XmlString', ], ], ], 'DescribeScalingPoliciesResponse' => [ 'type' => 'structure', 'members' => [ 'ScalingPolicies' => [ 'shape' => 'ScalingPolicies', ], 'NextToken' => [ 'shape' => 'XmlString', ], ], ], 'DescribeScheduledActionsRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceNamespace', ], 'members' => [ 'ScheduledActionNames' => [ 'shape' => 'ResourceIdsMaxLen1600', ], 'ServiceNamespace' => [ 'shape' => 'ServiceNamespace', ], 'ResourceId' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'ScalableDimension' => [ 'shape' => 'ScalableDimension', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'XmlString', ], ], ], 'DescribeScheduledActionsResponse' => [ 'type' => 'structure', 'members' => [ 'ScheduledActions' => [ 'shape' => 'ScheduledActions', ], 'NextToken' => [ 'shape' => 'XmlString', ], ], ], 'DisableScaleIn' => [ 'type' => 'boolean', ], 'ErrorMessage' => [ 'type' => 'string', ], 'FailedResourceAccessException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InternalServiceException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'MaxResults' => [ 'type' => 'integer', ], 'MetricAggregationType' => [ 'type' => 'string', 'enum' => [ 'Average', 'Minimum', 'Maximum', ], ], 'MetricDimension' => [ 'type' => 'structure', 'required' => [ 'Name', 'Value', ], 'members' => [ 'Name' => [ 'shape' => 'MetricDimensionName', ], 'Value' => [ 'shape' => 'MetricDimensionValue', ], ], ], 'MetricDimensionName' => [ 'type' => 'string', ], 'MetricDimensionValue' => [ 'type' => 'string', ], 'MetricDimensions' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricDimension', ], ], 'MetricName' => [ 'type' => 'string', ], 'MetricNamespace' => [ 'type' => 'string', ], 'MetricScale' => [ 'type' => 'double', ], 'MetricStatistic' => [ 'type' => 'string', 'enum' => [ 'Average', 'Minimum', 'Maximum', 'SampleCount', 'Sum', ], ], 'MetricType' => [ 'type' => 'string', 'enum' => [ 'DynamoDBReadCapacityUtilization', 'DynamoDBWriteCapacityUtilization', 'ALBRequestCountPerTarget', 'RDSReaderAverageCPUUtilization', 'RDSReaderAverageDatabaseConnections', 'EC2SpotFleetRequestAverageCPUUtilization', 'EC2SpotFleetRequestAverageNetworkIn', 'EC2SpotFleetRequestAverageNetworkOut', 'SageMakerVariantInvocationsPerInstance', 'ECSServiceAverageCPUUtilization', 'ECSServiceAverageMemoryUtilization', ], ], 'MetricUnit' => [ 'type' => 'string', ], 'MinAdjustmentMagnitude' => [ 'type' => 'integer', ], 'ObjectNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'PolicyName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '\\p{Print}+', ], 'PolicyType' => [ 'type' => 'string', 'enum' => [ 'StepScaling', 'TargetTrackingScaling', ], ], 'PredefinedMetricSpecification' => [ 'type' => 'structure', 'required' => [ 'PredefinedMetricType', ], 'members' => [ 'PredefinedMetricType' => [ 'shape' => 'MetricType', ], 'ResourceLabel' => [ 'shape' => 'ResourceLabel', ], ], ], 'PutScalingPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'PolicyName', 'ServiceNamespace', 'ResourceId', 'ScalableDimension', ], 'members' => [ 'PolicyName' => [ 'shape' => 'PolicyName', ], 'ServiceNamespace' => [ 'shape' => 'ServiceNamespace', ], 'ResourceId' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'ScalableDimension' => [ 'shape' => 'ScalableDimension', ], 'PolicyType' => [ 'shape' => 'PolicyType', ], 'StepScalingPolicyConfiguration' => [ 'shape' => 'StepScalingPolicyConfiguration', ], 'TargetTrackingScalingPolicyConfiguration' => [ 'shape' => 'TargetTrackingScalingPolicyConfiguration', ], ], ], 'PutScalingPolicyResponse' => [ 'type' => 'structure', 'required' => [ 'PolicyARN', ], 'members' => [ 'PolicyARN' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'Alarms' => [ 'shape' => 'Alarms', ], ], ], 'PutScheduledActionRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceNamespace', 'ScheduledActionName', 'ResourceId', 'ScalableDimension', ], 'members' => [ 'ServiceNamespace' => [ 'shape' => 'ServiceNamespace', ], 'Schedule' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'ScheduledActionName' => [ 'shape' => 'ScheduledActionName', ], 'ResourceId' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'ScalableDimension' => [ 'shape' => 'ScalableDimension', ], 'StartTime' => [ 'shape' => 'TimestampType', ], 'EndTime' => [ 'shape' => 'TimestampType', ], 'ScalableTargetAction' => [ 'shape' => 'ScalableTargetAction', ], ], ], 'PutScheduledActionResponse' => [ 'type' => 'structure', 'members' => [], ], 'RegisterScalableTargetRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceNamespace', 'ResourceId', 'ScalableDimension', ], 'members' => [ 'ServiceNamespace' => [ 'shape' => 'ServiceNamespace', ], 'ResourceId' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'ScalableDimension' => [ 'shape' => 'ScalableDimension', ], 'MinCapacity' => [ 'shape' => 'ResourceCapacity', ], 'MaxCapacity' => [ 'shape' => 'ResourceCapacity', ], 'RoleARN' => [ 'shape' => 'ResourceIdMaxLen1600', ], ], ], 'RegisterScalableTargetResponse' => [ 'type' => 'structure', 'members' => [], ], 'ResourceCapacity' => [ 'type' => 'integer', ], 'ResourceId' => [ 'type' => 'string', 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'ResourceIdMaxLen1600' => [ 'type' => 'string', 'max' => 1600, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'ResourceIdsMaxLen1600' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceIdMaxLen1600', ], ], 'ResourceLabel' => [ 'type' => 'string', 'max' => 1023, 'min' => 1, ], 'ScalableDimension' => [ 'type' => 'string', 'enum' => [ 'ecs:service:DesiredCount', 'ec2:spot-fleet-request:TargetCapacity', 'elasticmapreduce:instancegroup:InstanceCount', 'appstream:fleet:DesiredCapacity', 'dynamodb:table:ReadCapacityUnits', 'dynamodb:table:WriteCapacityUnits', 'dynamodb:index:ReadCapacityUnits', 'dynamodb:index:WriteCapacityUnits', 'rds:cluster:ReadReplicaCount', 'sagemaker:variant:DesiredInstanceCount', 'custom-resource:ResourceType:Property', ], ], 'ScalableTarget' => [ 'type' => 'structure', 'required' => [ 'ServiceNamespace', 'ResourceId', 'ScalableDimension', 'MinCapacity', 'MaxCapacity', 'RoleARN', 'CreationTime', ], 'members' => [ 'ServiceNamespace' => [ 'shape' => 'ServiceNamespace', ], 'ResourceId' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'ScalableDimension' => [ 'shape' => 'ScalableDimension', ], 'MinCapacity' => [ 'shape' => 'ResourceCapacity', ], 'MaxCapacity' => [ 'shape' => 'ResourceCapacity', ], 'RoleARN' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'CreationTime' => [ 'shape' => 'TimestampType', ], ], ], 'ScalableTargetAction' => [ 'type' => 'structure', 'members' => [ 'MinCapacity' => [ 'shape' => 'ResourceCapacity', ], 'MaxCapacity' => [ 'shape' => 'ResourceCapacity', ], ], ], 'ScalableTargets' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScalableTarget', ], ], 'ScalingActivities' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScalingActivity', ], ], 'ScalingActivity' => [ 'type' => 'structure', 'required' => [ 'ActivityId', 'ServiceNamespace', 'ResourceId', 'ScalableDimension', 'Description', 'Cause', 'StartTime', 'StatusCode', ], 'members' => [ 'ActivityId' => [ 'shape' => 'ResourceId', ], 'ServiceNamespace' => [ 'shape' => 'ServiceNamespace', ], 'ResourceId' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'ScalableDimension' => [ 'shape' => 'ScalableDimension', ], 'Description' => [ 'shape' => 'XmlString', ], 'Cause' => [ 'shape' => 'XmlString', ], 'StartTime' => [ 'shape' => 'TimestampType', ], 'EndTime' => [ 'shape' => 'TimestampType', ], 'StatusCode' => [ 'shape' => 'ScalingActivityStatusCode', ], 'StatusMessage' => [ 'shape' => 'XmlString', ], 'Details' => [ 'shape' => 'XmlString', ], ], ], 'ScalingActivityStatusCode' => [ 'type' => 'string', 'enum' => [ 'Pending', 'InProgress', 'Successful', 'Overridden', 'Unfulfilled', 'Failed', ], ], 'ScalingAdjustment' => [ 'type' => 'integer', ], 'ScalingPolicies' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScalingPolicy', ], ], 'ScalingPolicy' => [ 'type' => 'structure', 'required' => [ 'PolicyARN', 'PolicyName', 'ServiceNamespace', 'ResourceId', 'ScalableDimension', 'PolicyType', 'CreationTime', ], 'members' => [ 'PolicyARN' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'PolicyName' => [ 'shape' => 'PolicyName', ], 'ServiceNamespace' => [ 'shape' => 'ServiceNamespace', ], 'ResourceId' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'ScalableDimension' => [ 'shape' => 'ScalableDimension', ], 'PolicyType' => [ 'shape' => 'PolicyType', ], 'StepScalingPolicyConfiguration' => [ 'shape' => 'StepScalingPolicyConfiguration', ], 'TargetTrackingScalingPolicyConfiguration' => [ 'shape' => 'TargetTrackingScalingPolicyConfiguration', ], 'Alarms' => [ 'shape' => 'Alarms', ], 'CreationTime' => [ 'shape' => 'TimestampType', ], ], ], 'ScheduledAction' => [ 'type' => 'structure', 'required' => [ 'ScheduledActionName', 'ScheduledActionARN', 'ServiceNamespace', 'Schedule', 'ResourceId', 'CreationTime', ], 'members' => [ 'ScheduledActionName' => [ 'shape' => 'ScheduledActionName', ], 'ScheduledActionARN' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'ServiceNamespace' => [ 'shape' => 'ServiceNamespace', ], 'Schedule' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'ResourceId' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'ScalableDimension' => [ 'shape' => 'ScalableDimension', ], 'StartTime' => [ 'shape' => 'TimestampType', ], 'EndTime' => [ 'shape' => 'TimestampType', ], 'ScalableTargetAction' => [ 'shape' => 'ScalableTargetAction', ], 'CreationTime' => [ 'shape' => 'TimestampType', ], ], ], 'ScheduledActionName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '(?!((^[ ]+.*)|(.*([\\u0000-\\u001f]|[\\u007f-\\u009f]|[:/|])+.*)|(.*[ ]+$))).+', ], 'ScheduledActions' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledAction', ], ], 'ServiceNamespace' => [ 'type' => 'string', 'enum' => [ 'ecs', 'elasticmapreduce', 'ec2', 'appstream', 'dynamodb', 'rds', 'sagemaker', 'custom-resource', ], ], 'StepAdjustment' => [ 'type' => 'structure', 'required' => [ 'ScalingAdjustment', ], 'members' => [ 'MetricIntervalLowerBound' => [ 'shape' => 'MetricScale', ], 'MetricIntervalUpperBound' => [ 'shape' => 'MetricScale', ], 'ScalingAdjustment' => [ 'shape' => 'ScalingAdjustment', ], ], ], 'StepAdjustments' => [ 'type' => 'list', 'member' => [ 'shape' => 'StepAdjustment', ], ], 'StepScalingPolicyConfiguration' => [ 'type' => 'structure', 'members' => [ 'AdjustmentType' => [ 'shape' => 'AdjustmentType', ], 'StepAdjustments' => [ 'shape' => 'StepAdjustments', ], 'MinAdjustmentMagnitude' => [ 'shape' => 'MinAdjustmentMagnitude', ], 'Cooldown' => [ 'shape' => 'Cooldown', ], 'MetricAggregationType' => [ 'shape' => 'MetricAggregationType', ], ], ], 'TargetTrackingScalingPolicyConfiguration' => [ 'type' => 'structure', 'required' => [ 'TargetValue', ], 'members' => [ 'TargetValue' => [ 'shape' => 'MetricScale', ], 'PredefinedMetricSpecification' => [ 'shape' => 'PredefinedMetricSpecification', ], 'CustomizedMetricSpecification' => [ 'shape' => 'CustomizedMetricSpecification', ], 'ScaleOutCooldown' => [ 'shape' => 'Cooldown', ], 'ScaleInCooldown' => [ 'shape' => 'Cooldown', ], 'DisableScaleIn' => [ 'shape' => 'DisableScaleIn', ], ], ], 'TimestampType' => [ 'type' => 'timestamp', ], 'ValidationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'XmlString' => [ 'type' => 'string', 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], ],]; diff --git a/lib/aws/Aws/data/application-autoscaling/2016-02-06/paginators-1.json.php b/lib/aws/Aws/data/application-autoscaling/2016-02-06/paginators-1.json.php new file mode 100644 index 0000000..ca81c82 --- /dev/null +++ b/lib/aws/Aws/data/application-autoscaling/2016-02-06/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/application-autoscaling/2016-02-06/paginators-1.json +return [ 'pagination' => [ 'DescribeScalableTargets' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'ScalableTargets', ], 'DescribeScalingActivities' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'ScalingActivities', ], 'DescribeScalingPolicies' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'ScalingPolicies', ], ],]; diff --git a/lib/aws/Aws/data/application-autoscaling/2016-02-06/smoke.json.php b/lib/aws/Aws/data/application-autoscaling/2016-02-06/smoke.json.php new file mode 100644 index 0000000..700fb2e --- /dev/null +++ b/lib/aws/Aws/data/application-autoscaling/2016-02-06/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/application-autoscaling/2016-02-06/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeScalableTargets', 'input' => [ 'ServiceNamespace' => 'ec2', ], 'errorExpectedFromService' => false, ], ],]; diff --git a/lib/aws/Aws/data/appmesh/2018-10-01/api-2.json.php b/lib/aws/Aws/data/appmesh/2018-10-01/api-2.json.php new file mode 100644 index 0000000..4f33a6d --- /dev/null +++ b/lib/aws/Aws/data/appmesh/2018-10-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/appmesh/2018-10-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-10-01', 'endpointPrefix' => 'appmesh', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceFullName' => 'AWS App Mesh', 'serviceId' => 'App Mesh', 'signatureVersion' => 'v4', 'signingName' => 'appmesh', 'uid' => 'appmesh-2018-10-01', ], 'operations' => [ 'CreateMesh' => [ 'name' => 'CreateMesh', 'http' => [ 'method' => 'PUT', 'requestUri' => '/meshes', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateMeshInput', ], 'output' => [ 'shape' => 'CreateMeshOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'CreateRoute' => [ 'name' => 'CreateRoute', 'http' => [ 'method' => 'PUT', 'requestUri' => '/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateRouteInput', ], 'output' => [ 'shape' => 'CreateRouteOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'CreateVirtualNode' => [ 'name' => 'CreateVirtualNode', 'http' => [ 'method' => 'PUT', 'requestUri' => '/meshes/{meshName}/virtualNodes', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateVirtualNodeInput', ], 'output' => [ 'shape' => 'CreateVirtualNodeOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'CreateVirtualRouter' => [ 'name' => 'CreateVirtualRouter', 'http' => [ 'method' => 'PUT', 'requestUri' => '/meshes/{meshName}/virtualRouters', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateVirtualRouterInput', ], 'output' => [ 'shape' => 'CreateVirtualRouterOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'DeleteMesh' => [ 'name' => 'DeleteMesh', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/meshes/{meshName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteMeshInput', ], 'output' => [ 'shape' => 'DeleteMeshOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'DeleteRoute' => [ 'name' => 'DeleteRoute', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteRouteInput', ], 'output' => [ 'shape' => 'DeleteRouteOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'DeleteVirtualNode' => [ 'name' => 'DeleteVirtualNode', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/meshes/{meshName}/virtualNodes/{virtualNodeName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteVirtualNodeInput', ], 'output' => [ 'shape' => 'DeleteVirtualNodeOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'DeleteVirtualRouter' => [ 'name' => 'DeleteVirtualRouter', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/meshes/{meshName}/virtualRouters/{virtualRouterName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteVirtualRouterInput', ], 'output' => [ 'shape' => 'DeleteVirtualRouterOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'DescribeMesh' => [ 'name' => 'DescribeMesh', 'http' => [ 'method' => 'GET', 'requestUri' => '/meshes/{meshName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeMeshInput', ], 'output' => [ 'shape' => 'DescribeMeshOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeRoute' => [ 'name' => 'DescribeRoute', 'http' => [ 'method' => 'GET', 'requestUri' => '/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeRouteInput', ], 'output' => [ 'shape' => 'DescribeRouteOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeVirtualNode' => [ 'name' => 'DescribeVirtualNode', 'http' => [ 'method' => 'GET', 'requestUri' => '/meshes/{meshName}/virtualNodes/{virtualNodeName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeVirtualNodeInput', ], 'output' => [ 'shape' => 'DescribeVirtualNodeOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeVirtualRouter' => [ 'name' => 'DescribeVirtualRouter', 'http' => [ 'method' => 'GET', 'requestUri' => '/meshes/{meshName}/virtualRouters/{virtualRouterName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeVirtualRouterInput', ], 'output' => [ 'shape' => 'DescribeVirtualRouterOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListMeshes' => [ 'name' => 'ListMeshes', 'http' => [ 'method' => 'GET', 'requestUri' => '/meshes', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListMeshesInput', ], 'output' => [ 'shape' => 'ListMeshesOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListRoutes' => [ 'name' => 'ListRoutes', 'http' => [ 'method' => 'GET', 'requestUri' => '/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListRoutesInput', ], 'output' => [ 'shape' => 'ListRoutesOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListVirtualNodes' => [ 'name' => 'ListVirtualNodes', 'http' => [ 'method' => 'GET', 'requestUri' => '/meshes/{meshName}/virtualNodes', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListVirtualNodesInput', ], 'output' => [ 'shape' => 'ListVirtualNodesOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListVirtualRouters' => [ 'name' => 'ListVirtualRouters', 'http' => [ 'method' => 'GET', 'requestUri' => '/meshes/{meshName}/virtualRouters', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListVirtualRoutersInput', ], 'output' => [ 'shape' => 'ListVirtualRoutersOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateRoute' => [ 'name' => 'UpdateRoute', 'http' => [ 'method' => 'PUT', 'requestUri' => '/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateRouteInput', ], 'output' => [ 'shape' => 'UpdateRouteOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'UpdateVirtualNode' => [ 'name' => 'UpdateVirtualNode', 'http' => [ 'method' => 'PUT', 'requestUri' => '/meshes/{meshName}/virtualNodes/{virtualNodeName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateVirtualNodeInput', ], 'output' => [ 'shape' => 'UpdateVirtualNodeOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'UpdateVirtualRouter' => [ 'name' => 'UpdateVirtualRouter', 'http' => [ 'method' => 'PUT', 'requestUri' => '/meshes/{meshName}/virtualRouters/{virtualRouterName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateVirtualRouterInput', ], 'output' => [ 'shape' => 'UpdateVirtualRouterOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], ], 'shapes' => [ 'ServiceName' => [ 'type' => 'string', ], 'InternalServerErrorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'InternalServerErrorException', 'httpStatusCode' => 500, 'fault' => true, ], ], 'HealthCheckThreshold' => [ 'type' => 'integer', 'min' => 2, 'max' => 10, ], 'DeleteMeshOutput' => [ 'type' => 'structure', 'members' => [ 'mesh' => [ 'shape' => 'MeshData', ], ], 'payload' => 'mesh', ], 'Long' => [ 'type' => 'long', 'box' => true, ], 'ForbiddenException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'ForbiddenException', 'httpStatusCode' => 403, 'senderFault' => true, ], ], 'UpdateVirtualRouterOutput' => [ 'type' => 'structure', 'members' => [ 'virtualRouter' => [ 'shape' => 'VirtualRouterData', ], ], 'payload' => 'virtualRouter', ], 'MeshStatusCode' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DELETED', 'INACTIVE', ], ], 'PortNumber' => [ 'type' => 'integer', 'min' => 1, 'max' => 65535, ], 'WeightedTarget' => [ 'type' => 'structure', 'members' => [ 'virtualNode' => [ 'shape' => 'ResourceName', ], 'weight' => [ 'shape' => 'PercentInt', ], ], ], 'VirtualNodeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VirtualNodeRef', ], ], 'CreateRouteOutput' => [ 'type' => 'structure', 'members' => [ 'route' => [ 'shape' => 'RouteData', ], ], 'payload' => 'route', ], 'RouteList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteRef', ], ], 'DeleteVirtualNodeInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'virtualNodeName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'virtualNodeName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualNodeName', ], ], ], 'ListVirtualRoutersLimit' => [ 'type' => 'integer', 'box' => true, 'min' => 1, 'max' => 100, ], 'DnsServiceDiscovery' => [ 'type' => 'structure', 'members' => [ 'serviceName' => [ 'shape' => 'ServiceName', ], ], ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'ConflictException', 'httpStatusCode' => 409, 'senderFault' => true, ], ], 'HealthCheckIntervalMillis' => [ 'type' => 'long', 'box' => true, 'min' => 5000, 'max' => 300000, ], 'VirtualNodeRef' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'meshName' => [ 'shape' => 'ResourceName', ], 'virtualNodeName' => [ 'shape' => 'ResourceName', ], ], ], 'DescribeRouteOutput' => [ 'type' => 'structure', 'members' => [ 'route' => [ 'shape' => 'RouteData', ], ], 'payload' => 'route', ], 'ServiceDiscovery' => [ 'type' => 'structure', 'members' => [ 'dns' => [ 'shape' => 'DnsServiceDiscovery', ], ], ], 'MeshStatus' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'MeshStatusCode', ], ], ], 'VirtualNodeData' => [ 'type' => 'structure', 'required' => [ 'meshName', 'virtualNodeName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', ], 'metadata' => [ 'shape' => 'ResourceMetadata', ], 'spec' => [ 'shape' => 'VirtualNodeSpec', ], 'status' => [ 'shape' => 'VirtualNodeStatus', ], 'virtualNodeName' => [ 'shape' => 'ResourceName', ], ], ], 'VirtualNodeSpec' => [ 'type' => 'structure', 'members' => [ 'backends' => [ 'shape' => 'Backends', ], 'listeners' => [ 'shape' => 'Listeners', ], 'serviceDiscovery' => [ 'shape' => 'ServiceDiscovery', ], ], ], 'ServiceNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceName', ], 'max' => 10, ], 'MeshRef' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'meshName' => [ 'shape' => 'ResourceName', ], ], ], 'DescribeVirtualRouterInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'virtualRouterName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName', ], ], ], 'DescribeVirtualRouterOutput' => [ 'type' => 'structure', 'members' => [ 'virtualRouter' => [ 'shape' => 'VirtualRouterData', ], ], 'payload' => 'virtualRouter', ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'LimitExceededException', 'httpStatusCode' => 400, 'senderFault' => true, ], ], 'UpdateRouteOutput' => [ 'type' => 'structure', 'members' => [ 'route' => [ 'shape' => 'RouteData', ], ], 'payload' => 'route', ], 'HttpRouteAction' => [ 'type' => 'structure', 'members' => [ 'weightedTargets' => [ 'shape' => 'WeightedTargets', ], ], ], 'CreateVirtualRouterOutput' => [ 'type' => 'structure', 'members' => [ 'virtualRouter' => [ 'shape' => 'VirtualRouterData', ], ], 'payload' => 'virtualRouter', ], 'HealthCheckTimeoutMillis' => [ 'type' => 'long', 'box' => true, 'min' => 2000, 'max' => 60000, ], 'CreateVirtualRouterInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'spec', 'virtualRouterName', ], 'members' => [ 'clientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'spec' => [ 'shape' => 'VirtualRouterSpec', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', ], ], ], 'RouteStatus' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'RouteStatusCode', ], ], ], 'ListMeshesInput' => [ 'type' => 'structure', 'members' => [ 'limit' => [ 'shape' => 'ListMeshesLimit', 'location' => 'querystring', 'locationName' => 'limit', ], 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'VirtualRouterStatus' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'VirtualRouterStatusCode', ], ], ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'TooManyRequestsException', 'httpStatusCode' => 429, 'senderFault' => true, ], ], 'ListMeshesOutput' => [ 'type' => 'structure', 'required' => [ 'meshes', ], 'members' => [ 'meshes' => [ 'shape' => 'MeshList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'DescribeVirtualNodeOutput' => [ 'type' => 'structure', 'members' => [ 'virtualNode' => [ 'shape' => 'VirtualNodeData', ], ], 'payload' => 'virtualNode', ], 'CreateMeshOutput' => [ 'type' => 'structure', 'members' => [ 'mesh' => [ 'shape' => 'MeshData', ], ], 'payload' => 'mesh', ], 'ResourceName' => [ 'type' => 'string', 'min' => 1, 'max' => 255, ], 'RouteData' => [ 'type' => 'structure', 'required' => [ 'meshName', 'routeName', 'virtualRouterName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', ], 'metadata' => [ 'shape' => 'ResourceMetadata', ], 'routeName' => [ 'shape' => 'ResourceName', ], 'spec' => [ 'shape' => 'RouteSpec', ], 'status' => [ 'shape' => 'RouteStatus', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', ], ], ], 'Arn' => [ 'type' => 'string', ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'NotFoundException', 'httpStatusCode' => 404, 'senderFault' => true, ], ], 'UpdateVirtualNodeInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'spec', 'virtualNodeName', ], 'members' => [ 'clientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'spec' => [ 'shape' => 'VirtualNodeSpec', ], 'virtualNodeName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualNodeName', ], ], ], 'DeleteRouteInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'routeName', 'virtualRouterName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'routeName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'routeName', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName', ], ], ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'ServiceUnavailableException', 'httpStatusCode' => 503, 'fault' => true, ], ], 'Listeners' => [ 'type' => 'list', 'member' => [ 'shape' => 'Listener', ], ], 'ListRoutesInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'virtualRouterName', ], 'members' => [ 'limit' => [ 'shape' => 'ListRoutesLimit', 'location' => 'querystring', 'locationName' => 'limit', ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName', ], ], ], 'HttpRoute' => [ 'type' => 'structure', 'members' => [ 'action' => [ 'shape' => 'HttpRouteAction', ], 'match' => [ 'shape' => 'HttpRouteMatch', ], ], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'ListRoutesOutput' => [ 'type' => 'structure', 'required' => [ 'routes', ], 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'routes' => [ 'shape' => 'RouteList', ], ], ], 'RouteSpec' => [ 'type' => 'structure', 'members' => [ 'httpRoute' => [ 'shape' => 'HttpRoute', ], ], ], 'DescribeVirtualNodeInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'virtualNodeName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'virtualNodeName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualNodeName', ], ], ], 'VirtualRouterRef' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'meshName' => [ 'shape' => 'ResourceName', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', ], ], ], 'VirtualRouterStatusCode' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DELETED', 'INACTIVE', ], ], 'ListVirtualNodesOutput' => [ 'type' => 'structure', 'required' => [ 'virtualNodes', ], 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'virtualNodes' => [ 'shape' => 'VirtualNodeList', ], ], ], 'DeleteVirtualNodeOutput' => [ 'type' => 'structure', 'members' => [ 'virtualNode' => [ 'shape' => 'VirtualNodeData', ], ], 'payload' => 'virtualNode', ], 'UpdateVirtualRouterInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'spec', 'virtualRouterName', ], 'members' => [ 'clientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'spec' => [ 'shape' => 'VirtualRouterSpec', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName', ], ], ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'ResourceInUseException', 'httpStatusCode' => 409, 'senderFault' => true, ], ], 'DescribeRouteInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'routeName', 'virtualRouterName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'routeName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'routeName', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName', ], ], ], 'ListVirtualRoutersOutput' => [ 'type' => 'structure', 'required' => [ 'virtualRouters', ], 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'virtualRouters' => [ 'shape' => 'VirtualRouterList', ], ], ], 'CreateVirtualNodeOutput' => [ 'type' => 'structure', 'members' => [ 'virtualNode' => [ 'shape' => 'VirtualNodeData', ], ], 'payload' => 'virtualNode', ], 'DeleteVirtualRouterOutput' => [ 'type' => 'structure', 'members' => [ 'virtualRouter' => [ 'shape' => 'VirtualRouterData', ], ], 'payload' => 'virtualRouter', ], 'ListRoutesLimit' => [ 'type' => 'integer', 'box' => true, 'min' => 1, 'max' => 100, ], 'PortProtocol' => [ 'type' => 'string', 'enum' => [ 'http', 'tcp', ], ], 'MeshList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MeshRef', ], ], 'ResourceMetadata' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'lastUpdatedAt' => [ 'shape' => 'Timestamp', ], 'uid' => [ 'shape' => 'String', ], 'version' => [ 'shape' => 'Long', ], ], ], 'CreateMeshInput' => [ 'type' => 'structure', 'required' => [ 'meshName', ], 'members' => [ 'clientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'meshName' => [ 'shape' => 'ResourceName', ], ], ], 'PortMapping' => [ 'type' => 'structure', 'members' => [ 'port' => [ 'shape' => 'PortNumber', ], 'protocol' => [ 'shape' => 'PortProtocol', ], ], ], 'VirtualNodeStatusCode' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DELETED', 'INACTIVE', ], ], 'DeleteVirtualRouterInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'virtualRouterName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName', ], ], ], 'VirtualRouterSpec' => [ 'type' => 'structure', 'members' => [ 'serviceNames' => [ 'shape' => 'ServiceNames', ], ], ], 'UpdateRouteInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'routeName', 'spec', 'virtualRouterName', ], 'members' => [ 'clientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'routeName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'routeName', ], 'spec' => [ 'shape' => 'RouteSpec', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName', ], ], ], 'PercentInt' => [ 'type' => 'integer', 'min' => 0, 'max' => 100, ], 'ListMeshesLimit' => [ 'type' => 'integer', 'box' => true, 'min' => 1, 'max' => 100, ], 'DescribeMeshInput' => [ 'type' => 'structure', 'required' => [ 'meshName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], ], ], 'DescribeMeshOutput' => [ 'type' => 'structure', 'members' => [ 'mesh' => [ 'shape' => 'MeshData', ], ], 'payload' => 'mesh', ], 'VirtualRouterData' => [ 'type' => 'structure', 'required' => [ 'meshName', 'virtualRouterName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', ], 'metadata' => [ 'shape' => 'ResourceMetadata', ], 'spec' => [ 'shape' => 'VirtualRouterSpec', ], 'status' => [ 'shape' => 'VirtualRouterStatus', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', ], ], ], 'VirtualRouterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VirtualRouterRef', ], ], 'Listener' => [ 'type' => 'structure', 'members' => [ 'healthCheck' => [ 'shape' => 'HealthCheckPolicy', ], 'portMapping' => [ 'shape' => 'PortMapping', ], ], ], 'String' => [ 'type' => 'string', ], 'HealthCheckPolicy' => [ 'type' => 'structure', 'required' => [ 'healthyThreshold', 'intervalMillis', 'protocol', 'timeoutMillis', 'unhealthyThreshold', ], 'members' => [ 'healthyThreshold' => [ 'shape' => 'HealthCheckThreshold', ], 'intervalMillis' => [ 'shape' => 'HealthCheckIntervalMillis', ], 'path' => [ 'shape' => 'String', ], 'port' => [ 'shape' => 'PortNumber', ], 'protocol' => [ 'shape' => 'PortProtocol', ], 'timeoutMillis' => [ 'shape' => 'HealthCheckTimeoutMillis', ], 'unhealthyThreshold' => [ 'shape' => 'HealthCheckThreshold', ], ], ], 'ListVirtualRoutersInput' => [ 'type' => 'structure', 'required' => [ 'meshName', ], 'members' => [ 'limit' => [ 'shape' => 'ListVirtualRoutersLimit', 'location' => 'querystring', 'locationName' => 'limit', ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'CreateVirtualNodeInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'spec', 'virtualNodeName', ], 'members' => [ 'clientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'spec' => [ 'shape' => 'VirtualNodeSpec', ], 'virtualNodeName' => [ 'shape' => 'ResourceName', ], ], ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'BadRequestException', 'httpStatusCode' => 400, 'senderFault' => true, ], ], 'MeshData' => [ 'type' => 'structure', 'required' => [ 'meshName', 'metadata', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', ], 'metadata' => [ 'shape' => 'ResourceMetadata', ], 'status' => [ 'shape' => 'MeshStatus', ], ], ], 'ListVirtualNodesLimit' => [ 'type' => 'integer', 'box' => true, 'min' => 1, 'max' => 100, ], 'WeightedTargets' => [ 'type' => 'list', 'member' => [ 'shape' => 'WeightedTarget', ], ], 'DeleteMeshInput' => [ 'type' => 'structure', 'required' => [ 'meshName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], ], ], 'HttpRouteMatch' => [ 'type' => 'structure', 'members' => [ 'prefix' => [ 'shape' => 'String', ], ], ], 'DeleteRouteOutput' => [ 'type' => 'structure', 'members' => [ 'route' => [ 'shape' => 'RouteData', ], ], 'payload' => 'route', ], 'Backends' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceName', ], ], 'CreateRouteInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'routeName', 'spec', 'virtualRouterName', ], 'members' => [ 'clientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'routeName' => [ 'shape' => 'ResourceName', ], 'spec' => [ 'shape' => 'RouteSpec', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName', ], ], ], 'VirtualNodeStatus' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'VirtualNodeStatusCode', ], ], ], 'ListVirtualNodesInput' => [ 'type' => 'structure', 'required' => [ 'meshName', ], 'members' => [ 'limit' => [ 'shape' => 'ListVirtualNodesLimit', 'location' => 'querystring', 'locationName' => 'limit', ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'RouteRef' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'meshName' => [ 'shape' => 'ResourceName', ], 'routeName' => [ 'shape' => 'ResourceName', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', ], ], ], 'RouteStatusCode' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DELETED', 'INACTIVE', ], ], 'UpdateVirtualNodeOutput' => [ 'type' => 'structure', 'members' => [ 'virtualNode' => [ 'shape' => 'VirtualNodeData', ], ], 'payload' => 'virtualNode', ], ],]; diff --git a/lib/aws/Aws/data/appmesh/2018-10-01/paginators-1.json.php b/lib/aws/Aws/data/appmesh/2018-10-01/paginators-1.json.php new file mode 100644 index 0000000..6d921c2 --- /dev/null +++ b/lib/aws/Aws/data/appmesh/2018-10-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/appmesh/2018-10-01/paginators-1.json +return [ 'pagination' => [ 'ListMeshes' => [ 'input_token' => 'nextToken', 'limit_key' => 'limit', 'output_token' => 'nextToken', 'result_key' => 'meshes', ], 'ListRoutes' => [ 'input_token' => 'nextToken', 'limit_key' => 'limit', 'output_token' => 'nextToken', 'result_key' => 'routes', ], 'ListVirtualNodes' => [ 'input_token' => 'nextToken', 'limit_key' => 'limit', 'output_token' => 'nextToken', 'result_key' => 'virtualNodes', ], 'ListVirtualRouters' => [ 'input_token' => 'nextToken', 'limit_key' => 'limit', 'output_token' => 'nextToken', 'result_key' => 'virtualRouters', ], ],]; diff --git a/lib/aws/Aws/data/appmesh/2019-01-25/api-2.json.php b/lib/aws/Aws/data/appmesh/2019-01-25/api-2.json.php new file mode 100644 index 0000000..91aefa2 --- /dev/null +++ b/lib/aws/Aws/data/appmesh/2019-01-25/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/appmesh/2019-01-25/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2019-01-25', 'endpointPrefix' => 'appmesh', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceFullName' => 'AWS App Mesh', 'serviceId' => 'App Mesh', 'signatureVersion' => 'v4', 'signingName' => 'appmesh', 'uid' => 'appmesh-2019-01-25', ], 'operations' => [ 'CreateMesh' => [ 'name' => 'CreateMesh', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v20190125/meshes', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateMeshInput', ], 'output' => [ 'shape' => 'CreateMeshOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'CreateRoute' => [ 'name' => 'CreateRoute', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateRouteInput', ], 'output' => [ 'shape' => 'CreateRouteOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'CreateVirtualNode' => [ 'name' => 'CreateVirtualNode', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v20190125/meshes/{meshName}/virtualNodes', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateVirtualNodeInput', ], 'output' => [ 'shape' => 'CreateVirtualNodeOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'CreateVirtualRouter' => [ 'name' => 'CreateVirtualRouter', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v20190125/meshes/{meshName}/virtualRouters', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateVirtualRouterInput', ], 'output' => [ 'shape' => 'CreateVirtualRouterOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'CreateVirtualService' => [ 'name' => 'CreateVirtualService', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v20190125/meshes/{meshName}/virtualServices', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateVirtualServiceInput', ], 'output' => [ 'shape' => 'CreateVirtualServiceOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'DeleteMesh' => [ 'name' => 'DeleteMesh', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v20190125/meshes/{meshName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteMeshInput', ], 'output' => [ 'shape' => 'DeleteMeshOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'DeleteRoute' => [ 'name' => 'DeleteRoute', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteRouteInput', ], 'output' => [ 'shape' => 'DeleteRouteOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'DeleteVirtualNode' => [ 'name' => 'DeleteVirtualNode', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v20190125/meshes/{meshName}/virtualNodes/{virtualNodeName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteVirtualNodeInput', ], 'output' => [ 'shape' => 'DeleteVirtualNodeOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'DeleteVirtualRouter' => [ 'name' => 'DeleteVirtualRouter', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v20190125/meshes/{meshName}/virtualRouters/{virtualRouterName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteVirtualRouterInput', ], 'output' => [ 'shape' => 'DeleteVirtualRouterOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'DeleteVirtualService' => [ 'name' => 'DeleteVirtualService', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v20190125/meshes/{meshName}/virtualServices/{virtualServiceName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteVirtualServiceInput', ], 'output' => [ 'shape' => 'DeleteVirtualServiceOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'DescribeMesh' => [ 'name' => 'DescribeMesh', 'http' => [ 'method' => 'GET', 'requestUri' => '/v20190125/meshes/{meshName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeMeshInput', ], 'output' => [ 'shape' => 'DescribeMeshOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeRoute' => [ 'name' => 'DescribeRoute', 'http' => [ 'method' => 'GET', 'requestUri' => '/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeRouteInput', ], 'output' => [ 'shape' => 'DescribeRouteOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeVirtualNode' => [ 'name' => 'DescribeVirtualNode', 'http' => [ 'method' => 'GET', 'requestUri' => '/v20190125/meshes/{meshName}/virtualNodes/{virtualNodeName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeVirtualNodeInput', ], 'output' => [ 'shape' => 'DescribeVirtualNodeOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeVirtualRouter' => [ 'name' => 'DescribeVirtualRouter', 'http' => [ 'method' => 'GET', 'requestUri' => '/v20190125/meshes/{meshName}/virtualRouters/{virtualRouterName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeVirtualRouterInput', ], 'output' => [ 'shape' => 'DescribeVirtualRouterOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeVirtualService' => [ 'name' => 'DescribeVirtualService', 'http' => [ 'method' => 'GET', 'requestUri' => '/v20190125/meshes/{meshName}/virtualServices/{virtualServiceName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeVirtualServiceInput', ], 'output' => [ 'shape' => 'DescribeVirtualServiceOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListMeshes' => [ 'name' => 'ListMeshes', 'http' => [ 'method' => 'GET', 'requestUri' => '/v20190125/meshes', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListMeshesInput', ], 'output' => [ 'shape' => 'ListMeshesOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListRoutes' => [ 'name' => 'ListRoutes', 'http' => [ 'method' => 'GET', 'requestUri' => '/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListRoutesInput', ], 'output' => [ 'shape' => 'ListRoutesOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/v20190125/tags', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTagsForResourceInput', ], 'output' => [ 'shape' => 'ListTagsForResourceOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ListVirtualNodes' => [ 'name' => 'ListVirtualNodes', 'http' => [ 'method' => 'GET', 'requestUri' => '/v20190125/meshes/{meshName}/virtualNodes', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListVirtualNodesInput', ], 'output' => [ 'shape' => 'ListVirtualNodesOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListVirtualRouters' => [ 'name' => 'ListVirtualRouters', 'http' => [ 'method' => 'GET', 'requestUri' => '/v20190125/meshes/{meshName}/virtualRouters', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListVirtualRoutersInput', ], 'output' => [ 'shape' => 'ListVirtualRoutersOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListVirtualServices' => [ 'name' => 'ListVirtualServices', 'http' => [ 'method' => 'GET', 'requestUri' => '/v20190125/meshes/{meshName}/virtualServices', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListVirtualServicesInput', ], 'output' => [ 'shape' => 'ListVirtualServicesOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v20190125/tag', 'responseCode' => 200, ], 'input' => [ 'shape' => 'TagResourceInput', ], 'output' => [ 'shape' => 'TagResourceOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyTagsException', ], ], 'idempotent' => true, ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v20190125/untag', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UntagResourceInput', ], 'output' => [ 'shape' => 'UntagResourceOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'UpdateMesh' => [ 'name' => 'UpdateMesh', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v20190125/meshes/{meshName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateMeshInput', ], 'output' => [ 'shape' => 'UpdateMeshOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'UpdateRoute' => [ 'name' => 'UpdateRoute', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateRouteInput', ], 'output' => [ 'shape' => 'UpdateRouteOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'UpdateVirtualNode' => [ 'name' => 'UpdateVirtualNode', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v20190125/meshes/{meshName}/virtualNodes/{virtualNodeName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateVirtualNodeInput', ], 'output' => [ 'shape' => 'UpdateVirtualNodeOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'UpdateVirtualRouter' => [ 'name' => 'UpdateVirtualRouter', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v20190125/meshes/{meshName}/virtualRouters/{virtualRouterName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateVirtualRouterInput', ], 'output' => [ 'shape' => 'UpdateVirtualRouterOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'UpdateVirtualService' => [ 'name' => 'UpdateVirtualService', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v20190125/meshes/{meshName}/virtualServices/{virtualServiceName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateVirtualServiceInput', ], 'output' => [ 'shape' => 'UpdateVirtualServiceOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], ], 'shapes' => [ 'VirtualRouterListener' => [ 'type' => 'structure', 'required' => [ 'portMapping', ], 'members' => [ 'portMapping' => [ 'shape' => 'PortMapping', ], ], ], 'UpdateVirtualNodeInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'spec', 'virtualNodeName', ], 'members' => [ 'clientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'spec' => [ 'shape' => 'VirtualNodeSpec', ], 'virtualNodeName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualNodeName', ], ], ], 'DeleteMeshInput' => [ 'type' => 'structure', 'required' => [ 'meshName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], ], ], 'CreateVirtualServiceInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'spec', 'virtualServiceName', ], 'members' => [ 'clientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'spec' => [ 'shape' => 'VirtualServiceSpec', ], 'tags' => [ 'shape' => 'TagList', ], 'virtualServiceName' => [ 'shape' => 'ServiceName', ], ], ], 'VirtualRouterStatusCode' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DELETED', 'INACTIVE', ], ], 'UpdateVirtualRouterInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'spec', 'virtualRouterName', ], 'members' => [ 'clientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'spec' => [ 'shape' => 'VirtualRouterSpec', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName', ], ], ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'min' => 0, 'max' => 50, ], 'ListTagsForResourceInput' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'limit' => [ 'shape' => 'TagsLimit', 'location' => 'querystring', 'locationName' => 'limit', ], 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'resourceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'resourceArn', ], ], ], 'CreateVirtualNodeOutput' => [ 'type' => 'structure', 'required' => [ 'virtualNode', ], 'members' => [ 'virtualNode' => [ 'shape' => 'VirtualNodeData', ], ], 'payload' => 'virtualNode', ], 'Logging' => [ 'type' => 'structure', 'members' => [ 'accessLog' => [ 'shape' => 'AccessLog', ], ], ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'ServiceUnavailableException', 'httpStatusCode' => 503, 'fault' => true, ], ], 'Long' => [ 'type' => 'long', 'box' => true, ], 'UpdateVirtualRouterOutput' => [ 'type' => 'structure', 'required' => [ 'virtualRouter', ], 'members' => [ 'virtualRouter' => [ 'shape' => 'VirtualRouterData', ], ], 'payload' => 'virtualRouter', ], 'DescribeMeshOutput' => [ 'type' => 'structure', 'required' => [ 'mesh', ], 'members' => [ 'mesh' => [ 'shape' => 'MeshData', ], ], 'payload' => 'mesh', ], 'DeleteVirtualRouterInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'virtualRouterName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName', ], ], ], 'ListVirtualRoutersOutput' => [ 'type' => 'structure', 'required' => [ 'virtualRouters', ], 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'virtualRouters' => [ 'shape' => 'VirtualRouterList', ], ], ], 'DescribeRouteInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'routeName', 'virtualRouterName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'routeName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'routeName', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName', ], ], ], 'DeleteRouteOutput' => [ 'type' => 'structure', 'required' => [ 'route', ], 'members' => [ 'route' => [ 'shape' => 'RouteData', ], ], 'payload' => 'route', ], 'ResourceMetadata' => [ 'type' => 'structure', 'required' => [ 'arn', 'createdAt', 'lastUpdatedAt', 'uid', 'version', ], 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'lastUpdatedAt' => [ 'shape' => 'Timestamp', ], 'uid' => [ 'shape' => 'String', ], 'version' => [ 'shape' => 'Long', ], ], ], 'Listeners' => [ 'type' => 'list', 'member' => [ 'shape' => 'Listener', ], 'min' => 0, 'max' => 1, ], 'Backends' => [ 'type' => 'list', 'member' => [ 'shape' => 'Backend', ], 'min' => 0, 'max' => 25, ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'ResourceInUseException', 'httpStatusCode' => 409, 'senderFault' => true, ], ], 'PortProtocol' => [ 'type' => 'string', 'enum' => [ 'http', 'tcp', ], ], 'UpdateVirtualNodeOutput' => [ 'type' => 'structure', 'required' => [ 'virtualNode', ], 'members' => [ 'virtualNode' => [ 'shape' => 'VirtualNodeData', ], ], 'payload' => 'virtualNode', ], 'ListRoutesOutput' => [ 'type' => 'structure', 'required' => [ 'routes', ], 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'routes' => [ 'shape' => 'RouteList', ], ], ], 'VirtualServiceBackend' => [ 'type' => 'structure', 'required' => [ 'virtualServiceName', ], 'members' => [ 'virtualServiceName' => [ 'shape' => 'ServiceName', ], ], ], 'VirtualNodeStatusCode' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DELETED', 'INACTIVE', ], ], 'ServiceName' => [ 'type' => 'string', ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'BadRequestException', 'httpStatusCode' => 400, 'senderFault' => true, ], ], 'UpdateVirtualServiceInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'spec', 'virtualServiceName', ], 'members' => [ 'clientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'spec' => [ 'shape' => 'VirtualServiceSpec', ], 'virtualServiceName' => [ 'shape' => 'ServiceName', 'location' => 'uri', 'locationName' => 'virtualServiceName', ], ], ], 'HealthCheckThreshold' => [ 'type' => 'integer', 'min' => 2, 'max' => 10, ], 'UpdateRouteOutput' => [ 'type' => 'structure', 'required' => [ 'route', ], 'members' => [ 'route' => [ 'shape' => 'RouteData', ], ], 'payload' => 'route', ], 'PercentInt' => [ 'type' => 'integer', 'min' => 0, 'max' => 100, ], 'TagValue' => [ 'type' => 'string', 'min' => 0, 'max' => 256, ], 'HttpRouteAction' => [ 'type' => 'structure', 'required' => [ 'weightedTargets', ], 'members' => [ 'weightedTargets' => [ 'shape' => 'WeightedTargets', ], ], ], 'ListRoutesInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'virtualRouterName', ], 'members' => [ 'limit' => [ 'shape' => 'ListRoutesLimit', 'location' => 'querystring', 'locationName' => 'limit', ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName', ], ], ], 'HealthCheckPolicy' => [ 'type' => 'structure', 'required' => [ 'healthyThreshold', 'intervalMillis', 'protocol', 'timeoutMillis', 'unhealthyThreshold', ], 'members' => [ 'healthyThreshold' => [ 'shape' => 'HealthCheckThreshold', ], 'intervalMillis' => [ 'shape' => 'HealthCheckIntervalMillis', ], 'path' => [ 'shape' => 'String', ], 'port' => [ 'shape' => 'PortNumber', ], 'protocol' => [ 'shape' => 'PortProtocol', ], 'timeoutMillis' => [ 'shape' => 'HealthCheckTimeoutMillis', ], 'unhealthyThreshold' => [ 'shape' => 'HealthCheckThreshold', ], ], ], 'VirtualServiceRef' => [ 'type' => 'structure', 'required' => [ 'arn', 'meshName', 'virtualServiceName', ], 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'meshName' => [ 'shape' => 'ResourceName', ], 'virtualServiceName' => [ 'shape' => 'ServiceName', ], ], ], 'EgressFilter' => [ 'type' => 'structure', 'required' => [ 'type', ], 'members' => [ 'type' => [ 'shape' => 'EgressFilterType', ], ], ], 'VirtualServiceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VirtualServiceRef', ], ], 'VirtualNodeStatus' => [ 'type' => 'structure', 'required' => [ 'status', ], 'members' => [ 'status' => [ 'shape' => 'VirtualNodeStatusCode', ], ], ], 'VirtualRouterRef' => [ 'type' => 'structure', 'required' => [ 'arn', 'meshName', 'virtualRouterName', ], 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'meshName' => [ 'shape' => 'ResourceName', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', ], ], ], 'VirtualServiceData' => [ 'type' => 'structure', 'required' => [ 'meshName', 'metadata', 'spec', 'status', 'virtualServiceName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', ], 'metadata' => [ 'shape' => 'ResourceMetadata', ], 'spec' => [ 'shape' => 'VirtualServiceSpec', ], 'status' => [ 'shape' => 'VirtualServiceStatus', ], 'virtualServiceName' => [ 'shape' => 'ServiceName', ], ], ], 'DescribeVirtualServiceOutput' => [ 'type' => 'structure', 'required' => [ 'virtualService', ], 'members' => [ 'virtualService' => [ 'shape' => 'VirtualServiceData', ], ], 'payload' => 'virtualService', ], 'FilePath' => [ 'type' => 'string', 'min' => 1, 'max' => 255, ], 'VirtualNodeRef' => [ 'type' => 'structure', 'required' => [ 'arn', 'meshName', 'virtualNodeName', ], 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'meshName' => [ 'shape' => 'ResourceName', ], 'virtualNodeName' => [ 'shape' => 'ResourceName', ], ], ], 'CreateMeshInput' => [ 'type' => 'structure', 'required' => [ 'meshName', ], 'members' => [ 'clientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'meshName' => [ 'shape' => 'ResourceName', ], 'spec' => [ 'shape' => 'MeshSpec', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'DescribeVirtualNodeOutput' => [ 'type' => 'structure', 'required' => [ 'virtualNode', ], 'members' => [ 'virtualNode' => [ 'shape' => 'VirtualNodeData', ], ], 'payload' => 'virtualNode', ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'LimitExceededException', 'httpStatusCode' => 400, 'senderFault' => true, ], ], 'UpdateMeshOutput' => [ 'type' => 'structure', 'required' => [ 'mesh', ], 'members' => [ 'mesh' => [ 'shape' => 'MeshData', ], ], 'payload' => 'mesh', ], 'CreateRouteOutput' => [ 'type' => 'structure', 'required' => [ 'route', ], 'members' => [ 'route' => [ 'shape' => 'RouteData', ], ], 'payload' => 'route', ], 'DnsServiceDiscovery' => [ 'type' => 'structure', 'required' => [ 'hostname', ], 'members' => [ 'hostname' => [ 'shape' => 'Hostname', ], ], ], 'DescribeVirtualServiceInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'virtualServiceName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'virtualServiceName' => [ 'shape' => 'ServiceName', 'location' => 'uri', 'locationName' => 'virtualServiceName', ], ], ], 'ListVirtualServicesLimit' => [ 'type' => 'integer', 'box' => true, 'min' => 1, 'max' => 100, ], 'DeleteRouteInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'routeName', 'virtualRouterName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'routeName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'routeName', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName', ], ], ], 'VirtualNodeData' => [ 'type' => 'structure', 'required' => [ 'meshName', 'metadata', 'spec', 'status', 'virtualNodeName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', ], 'metadata' => [ 'shape' => 'ResourceMetadata', ], 'spec' => [ 'shape' => 'VirtualNodeSpec', ], 'status' => [ 'shape' => 'VirtualNodeStatus', ], 'virtualNodeName' => [ 'shape' => 'ResourceName', ], ], ], 'UntagResourceOutput' => [ 'type' => 'structure', 'members' => [], ], 'VirtualServiceSpec' => [ 'type' => 'structure', 'members' => [ 'provider' => [ 'shape' => 'VirtualServiceProvider', ], ], ], 'Backend' => [ 'type' => 'structure', 'members' => [ 'virtualService' => [ 'shape' => 'VirtualServiceBackend', ], ], ], 'ListVirtualRoutersLimit' => [ 'type' => 'integer', 'box' => true, 'min' => 1, 'max' => 100, ], 'HealthCheckIntervalMillis' => [ 'type' => 'long', 'box' => true, 'min' => 5000, 'max' => 300000, ], 'VirtualRouterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VirtualRouterRef', ], ], 'ListMeshesInput' => [ 'type' => 'structure', 'members' => [ 'limit' => [ 'shape' => 'ListMeshesLimit', 'location' => 'querystring', 'locationName' => 'limit', ], 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'Arn' => [ 'type' => 'string', ], 'TcpRoute' => [ 'type' => 'structure', 'required' => [ 'action', ], 'members' => [ 'action' => [ 'shape' => 'TcpRouteAction', ], ], ], 'VirtualNodeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VirtualNodeRef', ], ], 'ListVirtualRoutersInput' => [ 'type' => 'structure', 'required' => [ 'meshName', ], 'members' => [ 'limit' => [ 'shape' => 'ListVirtualRoutersLimit', 'location' => 'querystring', 'locationName' => 'limit', ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'VirtualRouterData' => [ 'type' => 'structure', 'required' => [ 'meshName', 'metadata', 'spec', 'status', 'virtualRouterName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', ], 'metadata' => [ 'shape' => 'ResourceMetadata', ], 'spec' => [ 'shape' => 'VirtualRouterSpec', ], 'status' => [ 'shape' => 'VirtualRouterStatus', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', ], ], ], 'UpdateMeshInput' => [ 'type' => 'structure', 'required' => [ 'meshName', ], 'members' => [ 'clientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'spec' => [ 'shape' => 'MeshSpec', ], ], ], 'ListVirtualServicesInput' => [ 'type' => 'structure', 'required' => [ 'meshName', ], 'members' => [ 'limit' => [ 'shape' => 'ListVirtualServicesLimit', 'location' => 'querystring', 'locationName' => 'limit', ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'CreateVirtualRouterInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'spec', 'virtualRouterName', ], 'members' => [ 'clientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'spec' => [ 'shape' => 'VirtualRouterSpec', ], 'tags' => [ 'shape' => 'TagList', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', ], ], ], 'AccessLog' => [ 'type' => 'structure', 'members' => [ 'file' => [ 'shape' => 'FileAccessLog', ], ], ], 'ListVirtualNodesInput' => [ 'type' => 'structure', 'required' => [ 'meshName', ], 'members' => [ 'limit' => [ 'shape' => 'ListVirtualNodesLimit', 'location' => 'querystring', 'locationName' => 'limit', ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'DescribeVirtualRouterOutput' => [ 'type' => 'structure', 'required' => [ 'virtualRouter', ], 'members' => [ 'virtualRouter' => [ 'shape' => 'VirtualRouterData', ], ], 'payload' => 'virtualRouter', ], 'CreateMeshOutput' => [ 'type' => 'structure', 'required' => [ 'mesh', ], 'members' => [ 'mesh' => [ 'shape' => 'MeshData', ], ], 'payload' => 'mesh', ], 'CreateVirtualRouterOutput' => [ 'type' => 'structure', 'required' => [ 'virtualRouter', ], 'members' => [ 'virtualRouter' => [ 'shape' => 'VirtualRouterData', ], ], 'payload' => 'virtualRouter', ], 'VirtualServiceStatus' => [ 'type' => 'structure', 'required' => [ 'status', ], 'members' => [ 'status' => [ 'shape' => 'VirtualServiceStatusCode', ], ], ], 'ListVirtualNodesLimit' => [ 'type' => 'integer', 'box' => true, 'min' => 1, 'max' => 100, ], 'HealthCheckTimeoutMillis' => [ 'type' => 'long', 'box' => true, 'min' => 2000, 'max' => 60000, ], 'ListMeshesLimit' => [ 'type' => 'integer', 'box' => true, 'min' => 1, 'max' => 100, ], 'ResourceName' => [ 'type' => 'string', 'min' => 1, 'max' => 255, ], 'VirtualRouterSpec' => [ 'type' => 'structure', 'required' => [ 'listeners', ], 'members' => [ 'listeners' => [ 'shape' => 'VirtualRouterListeners', ], ], ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'TooManyRequestsException', 'httpStatusCode' => 429, 'senderFault' => true, ], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'VirtualNodeSpec' => [ 'type' => 'structure', 'members' => [ 'backends' => [ 'shape' => 'Backends', ], 'listeners' => [ 'shape' => 'Listeners', ], 'logging' => [ 'shape' => 'Logging', ], 'serviceDiscovery' => [ 'shape' => 'ServiceDiscovery', ], ], ], 'ListMeshesOutput' => [ 'type' => 'structure', 'required' => [ 'meshes', ], 'members' => [ 'meshes' => [ 'shape' => 'MeshList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'VirtualRouterListeners' => [ 'type' => 'list', 'member' => [ 'shape' => 'VirtualRouterListener', ], 'min' => 1, 'max' => 1, ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'ConflictException', 'httpStatusCode' => 409, 'senderFault' => true, ], ], 'DescribeRouteOutput' => [ 'type' => 'structure', 'required' => [ 'route', ], 'members' => [ 'route' => [ 'shape' => 'RouteData', ], ], 'payload' => 'route', ], 'HttpRouteMatch' => [ 'type' => 'structure', 'required' => [ 'prefix', ], 'members' => [ 'prefix' => [ 'shape' => 'String', ], ], ], 'MeshList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MeshRef', ], ], 'TagRef' => [ 'type' => 'structure', 'required' => [ 'key', ], 'members' => [ 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], ], ], 'MeshRef' => [ 'type' => 'structure', 'required' => [ 'arn', 'meshName', ], 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'meshName' => [ 'shape' => 'ResourceName', ], ], ], 'MeshStatusCode' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DELETED', 'INACTIVE', ], ], 'PortMapping' => [ 'type' => 'structure', 'required' => [ 'port', 'protocol', ], 'members' => [ 'port' => [ 'shape' => 'PortNumber', ], 'protocol' => [ 'shape' => 'PortProtocol', ], ], ], 'MeshData' => [ 'type' => 'structure', 'required' => [ 'meshName', 'metadata', 'spec', 'status', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', ], 'metadata' => [ 'shape' => 'ResourceMetadata', ], 'spec' => [ 'shape' => 'MeshSpec', ], 'status' => [ 'shape' => 'MeshStatus', ], ], ], 'VirtualRouterStatus' => [ 'type' => 'structure', 'required' => [ 'status', ], 'members' => [ 'status' => [ 'shape' => 'VirtualRouterStatusCode', ], ], ], 'ListVirtualServicesOutput' => [ 'type' => 'structure', 'required' => [ 'virtualServices', ], 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'virtualServices' => [ 'shape' => 'VirtualServiceList', ], ], ], 'WeightedTarget' => [ 'type' => 'structure', 'required' => [ 'virtualNode', 'weight', ], 'members' => [ 'virtualNode' => [ 'shape' => 'ResourceName', ], 'weight' => [ 'shape' => 'PercentInt', ], ], ], 'TcpRouteAction' => [ 'type' => 'structure', 'required' => [ 'weightedTargets', ], 'members' => [ 'weightedTargets' => [ 'shape' => 'WeightedTargets', ], ], ], 'DescribeVirtualNodeInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'virtualNodeName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'virtualNodeName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualNodeName', ], ], ], 'RouteStatus' => [ 'type' => 'structure', 'required' => [ 'status', ], 'members' => [ 'status' => [ 'shape' => 'RouteStatusCode', ], ], ], 'RouteRef' => [ 'type' => 'structure', 'required' => [ 'arn', 'meshName', 'routeName', 'virtualRouterName', ], 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'meshName' => [ 'shape' => 'ResourceName', ], 'routeName' => [ 'shape' => 'ResourceName', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', ], ], ], 'Listener' => [ 'type' => 'structure', 'required' => [ 'portMapping', ], 'members' => [ 'healthCheck' => [ 'shape' => 'HealthCheckPolicy', ], 'portMapping' => [ 'shape' => 'PortMapping', ], ], ], 'DeleteVirtualNodeInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'virtualNodeName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'virtualNodeName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualNodeName', ], ], ], 'RouteData' => [ 'type' => 'structure', 'required' => [ 'meshName', 'metadata', 'routeName', 'spec', 'status', 'virtualRouterName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', ], 'metadata' => [ 'shape' => 'ResourceMetadata', ], 'routeName' => [ 'shape' => 'ResourceName', ], 'spec' => [ 'shape' => 'RouteSpec', ], 'status' => [ 'shape' => 'RouteStatus', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', ], ], ], 'RouteStatusCode' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DELETED', 'INACTIVE', ], ], 'ListRoutesLimit' => [ 'type' => 'integer', 'box' => true, 'min' => 1, 'max' => 100, ], 'DeleteVirtualServiceOutput' => [ 'type' => 'structure', 'required' => [ 'virtualService', ], 'members' => [ 'virtualService' => [ 'shape' => 'VirtualServiceData', ], ], 'payload' => 'virtualService', ], 'VirtualNodeServiceProvider' => [ 'type' => 'structure', 'required' => [ 'virtualNodeName', ], 'members' => [ 'virtualNodeName' => [ 'shape' => 'ResourceName', ], ], ], 'InternalServerErrorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'InternalServerErrorException', 'httpStatusCode' => 500, 'fault' => true, ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagRef', ], 'min' => 0, 'max' => 50, ], 'DescribeVirtualRouterInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'virtualRouterName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName', ], ], ], 'TagResourceOutput' => [ 'type' => 'structure', 'members' => [], ], 'RouteList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteRef', ], ], 'ForbiddenException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'ForbiddenException', 'httpStatusCode' => 403, 'senderFault' => true, ], ], 'TooManyTagsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'TooManyTagsException', 'httpStatusCode' => 400, 'senderFault' => true, ], ], 'DeleteMeshOutput' => [ 'type' => 'structure', 'required' => [ 'mesh', ], 'members' => [ 'mesh' => [ 'shape' => 'MeshData', ], ], 'payload' => 'mesh', ], 'EgressFilterType' => [ 'type' => 'string', 'enum' => [ 'ALLOW_ALL', 'DROP_ALL', ], ], 'Hostname' => [ 'type' => 'string', ], 'PortNumber' => [ 'type' => 'integer', 'min' => 1, 'max' => 65535, ], 'TagResourceInput' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tags', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'resourceArn', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateRouteInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'routeName', 'spec', 'virtualRouterName', ], 'members' => [ 'clientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'routeName' => [ 'shape' => 'ResourceName', ], 'spec' => [ 'shape' => 'RouteSpec', ], 'tags' => [ 'shape' => 'TagList', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName', ], ], ], 'WeightedTargets' => [ 'type' => 'list', 'member' => [ 'shape' => 'WeightedTarget', ], 'min' => 1, 'max' => 10, ], 'VirtualServiceProvider' => [ 'type' => 'structure', 'members' => [ 'virtualNode' => [ 'shape' => 'VirtualNodeServiceProvider', ], 'virtualRouter' => [ 'shape' => 'VirtualRouterServiceProvider', ], ], ], 'String' => [ 'type' => 'string', ], 'UpdateVirtualServiceOutput' => [ 'type' => 'structure', 'required' => [ 'virtualService', ], 'members' => [ 'virtualService' => [ 'shape' => 'VirtualServiceData', ], ], 'payload' => 'virtualService', ], 'UpdateRouteInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'routeName', 'spec', 'virtualRouterName', ], 'members' => [ 'clientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'routeName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'routeName', ], 'spec' => [ 'shape' => 'RouteSpec', ], 'virtualRouterName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName', ], ], ], 'MeshStatus' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'MeshStatusCode', ], ], ], 'CreateVirtualNodeInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'spec', 'virtualNodeName', ], 'members' => [ 'clientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'spec' => [ 'shape' => 'VirtualNodeSpec', ], 'tags' => [ 'shape' => 'TagList', ], 'virtualNodeName' => [ 'shape' => 'ResourceName', ], ], ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'NotFoundException', 'httpStatusCode' => 404, 'senderFault' => true, ], ], 'RouteSpec' => [ 'type' => 'structure', 'members' => [ 'httpRoute' => [ 'shape' => 'HttpRoute', ], 'tcpRoute' => [ 'shape' => 'TcpRoute', ], ], ], 'HttpRoute' => [ 'type' => 'structure', 'required' => [ 'action', 'match', ], 'members' => [ 'action' => [ 'shape' => 'HttpRouteAction', ], 'match' => [ 'shape' => 'HttpRouteMatch', ], ], ], 'DescribeMeshInput' => [ 'type' => 'structure', 'required' => [ 'meshName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], ], ], 'MeshSpec' => [ 'type' => 'structure', 'members' => [ 'egressFilter' => [ 'shape' => 'EgressFilter', ], ], ], 'CreateVirtualServiceOutput' => [ 'type' => 'structure', 'required' => [ 'virtualService', ], 'members' => [ 'virtualService' => [ 'shape' => 'VirtualServiceData', ], ], 'payload' => 'virtualService', ], 'FileAccessLog' => [ 'type' => 'structure', 'required' => [ 'path', ], 'members' => [ 'path' => [ 'shape' => 'FilePath', ], ], ], 'VirtualRouterServiceProvider' => [ 'type' => 'structure', 'required' => [ 'virtualRouterName', ], 'members' => [ 'virtualRouterName' => [ 'shape' => 'ResourceName', ], ], ], 'DeleteVirtualServiceInput' => [ 'type' => 'structure', 'required' => [ 'meshName', 'virtualServiceName', ], 'members' => [ 'meshName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName', ], 'virtualServiceName' => [ 'shape' => 'ServiceName', 'location' => 'uri', 'locationName' => 'virtualServiceName', ], ], ], 'ListTagsForResourceOutput' => [ 'type' => 'structure', 'required' => [ 'tags', ], 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'ServiceDiscovery' => [ 'type' => 'structure', 'members' => [ 'dns' => [ 'shape' => 'DnsServiceDiscovery', ], ], ], 'ListVirtualNodesOutput' => [ 'type' => 'structure', 'required' => [ 'virtualNodes', ], 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'virtualNodes' => [ 'shape' => 'VirtualNodeList', ], ], ], 'UntagResourceInput' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tagKeys', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'resourceArn', ], 'tagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'DeleteVirtualRouterOutput' => [ 'type' => 'structure', 'required' => [ 'virtualRouter', ], 'members' => [ 'virtualRouter' => [ 'shape' => 'VirtualRouterData', ], ], 'payload' => 'virtualRouter', ], 'TagsLimit' => [ 'type' => 'integer', 'box' => true, 'min' => 1, 'max' => 50, ], 'TagKey' => [ 'type' => 'string', 'min' => 1, 'max' => 128, ], 'VirtualServiceStatusCode' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DELETED', 'INACTIVE', ], ], 'DeleteVirtualNodeOutput' => [ 'type' => 'structure', 'required' => [ 'virtualNode', ], 'members' => [ 'virtualNode' => [ 'shape' => 'VirtualNodeData', ], ], 'payload' => 'virtualNode', ], ],]; diff --git a/lib/aws/Aws/data/appmesh/2019-01-25/paginators-1.json.php b/lib/aws/Aws/data/appmesh/2019-01-25/paginators-1.json.php new file mode 100644 index 0000000..4aaf571 --- /dev/null +++ b/lib/aws/Aws/data/appmesh/2019-01-25/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/appmesh/2019-01-25/paginators-1.json +return [ 'pagination' => [ 'ListMeshes' => [ 'input_token' => 'nextToken', 'limit_key' => 'limit', 'output_token' => 'nextToken', 'result_key' => 'meshes', ], 'ListRoutes' => [ 'input_token' => 'nextToken', 'limit_key' => 'limit', 'output_token' => 'nextToken', 'result_key' => 'routes', ], 'ListTagsForResource' => [ 'input_token' => 'nextToken', 'limit_key' => 'limit', 'output_token' => 'nextToken', 'result_key' => 'tags', ], 'ListVirtualNodes' => [ 'input_token' => 'nextToken', 'limit_key' => 'limit', 'output_token' => 'nextToken', 'result_key' => 'virtualNodes', ], 'ListVirtualRouters' => [ 'input_token' => 'nextToken', 'limit_key' => 'limit', 'output_token' => 'nextToken', 'result_key' => 'virtualRouters', ], 'ListVirtualServices' => [ 'input_token' => 'nextToken', 'limit_key' => 'limit', 'output_token' => 'nextToken', 'result_key' => 'virtualServices', ], ],]; diff --git a/lib/aws/Aws/data/appstream/2016-12-01/api-2.json.php b/lib/aws/Aws/data/appstream/2016-12-01/api-2.json.php new file mode 100644 index 0000000..75ee68e --- /dev/null +++ b/lib/aws/Aws/data/appstream/2016-12-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/appstream/2016-12-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-12-01', 'endpointPrefix' => 'appstream2', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Amazon AppStream', 'serviceId' => 'AppStream', 'signatureVersion' => 'v4', 'signingName' => 'appstream', 'targetPrefix' => 'PhotonAdminProxyService', 'uid' => 'appstream-2016-12-01', ], 'operations' => [ 'AssociateFleet' => [ 'name' => 'AssociateFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateFleetRequest', ], 'output' => [ 'shape' => 'AssociateFleetResult', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidAccountStatusException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'IncompatibleImageException', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'BatchAssociateUserStack' => [ 'name' => 'BatchAssociateUserStack', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchAssociateUserStackRequest', ], 'output' => [ 'shape' => 'BatchAssociateUserStackResult', ], 'errors' => [ [ 'shape' => 'OperationNotPermittedException', ], ], ], 'BatchDisassociateUserStack' => [ 'name' => 'BatchDisassociateUserStack', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchDisassociateUserStackRequest', ], 'output' => [ 'shape' => 'BatchDisassociateUserStackResult', ], ], 'CopyImage' => [ 'name' => 'CopyImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyImageRequest', ], 'output' => [ 'shape' => 'CopyImageResponse', ], 'errors' => [ [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceNotAvailableException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidAccountStatusException', ], [ 'shape' => 'IncompatibleImageException', ], ], ], 'CreateDirectoryConfig' => [ 'name' => 'CreateDirectoryConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDirectoryConfigRequest', ], 'output' => [ 'shape' => 'CreateDirectoryConfigResult', ], 'errors' => [ [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidAccountStatusException', ], ], ], 'CreateFleet' => [ 'name' => 'CreateFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateFleetRequest', ], 'output' => [ 'shape' => 'CreateFleetResult', ], 'errors' => [ [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'ResourceNotAvailableException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidAccountStatusException', ], [ 'shape' => 'InvalidRoleException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidParameterCombinationException', ], [ 'shape' => 'IncompatibleImageException', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'CreateImageBuilder' => [ 'name' => 'CreateImageBuilder', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateImageBuilderRequest', ], 'output' => [ 'shape' => 'CreateImageBuilderResult', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidAccountStatusException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'ResourceNotAvailableException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRoleException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidParameterCombinationException', ], [ 'shape' => 'IncompatibleImageException', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'CreateImageBuilderStreamingURL' => [ 'name' => 'CreateImageBuilderStreamingURL', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateImageBuilderStreamingURLRequest', ], 'output' => [ 'shape' => 'CreateImageBuilderStreamingURLResult', ], 'errors' => [ [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'CreateStack' => [ 'name' => 'CreateStack', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateStackRequest', ], 'output' => [ 'shape' => 'CreateStackResult', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidAccountStatusException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidRoleException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'CreateStreamingURL' => [ 'name' => 'CreateStreamingURL', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateStreamingURLRequest', ], 'output' => [ 'shape' => 'CreateStreamingURLResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceNotAvailableException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'CreateUser' => [ 'name' => 'CreateUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateUserRequest', ], 'output' => [ 'shape' => 'CreateUserResult', ], 'errors' => [ [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'InvalidAccountStatusException', ], [ 'shape' => 'InvalidParameterCombinationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'DeleteDirectoryConfig' => [ 'name' => 'DeleteDirectoryConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDirectoryConfigRequest', ], 'output' => [ 'shape' => 'DeleteDirectoryConfigResult', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeleteFleet' => [ 'name' => 'DeleteFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteFleetRequest', ], 'output' => [ 'shape' => 'DeleteFleetResult', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'DeleteImage' => [ 'name' => 'DeleteImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteImageRequest', ], 'output' => [ 'shape' => 'DeleteImageResult', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'DeleteImageBuilder' => [ 'name' => 'DeleteImageBuilder', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteImageBuilderRequest', ], 'output' => [ 'shape' => 'DeleteImageBuilderResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'DeleteImagePermissions' => [ 'name' => 'DeleteImagePermissions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteImagePermissionsRequest', ], 'output' => [ 'shape' => 'DeleteImagePermissionsResult', ], 'errors' => [ [ 'shape' => 'ResourceNotAvailableException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeleteStack' => [ 'name' => 'DeleteStack', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteStackRequest', ], 'output' => [ 'shape' => 'DeleteStackResult', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'DeleteUser' => [ 'name' => 'DeleteUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteUserRequest', ], 'output' => [ 'shape' => 'DeleteUserResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeDirectoryConfigs' => [ 'name' => 'DescribeDirectoryConfigs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDirectoryConfigsRequest', ], 'output' => [ 'shape' => 'DescribeDirectoryConfigsResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeFleets' => [ 'name' => 'DescribeFleets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFleetsRequest', ], 'output' => [ 'shape' => 'DescribeFleetsResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeImageBuilders' => [ 'name' => 'DescribeImageBuilders', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImageBuildersRequest', ], 'output' => [ 'shape' => 'DescribeImageBuildersResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeImagePermissions' => [ 'name' => 'DescribeImagePermissions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImagePermissionsRequest', ], 'output' => [ 'shape' => 'DescribeImagePermissionsResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeImages' => [ 'name' => 'DescribeImages', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImagesRequest', ], 'output' => [ 'shape' => 'DescribeImagesResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterCombinationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeSessions' => [ 'name' => 'DescribeSessions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSessionsRequest', ], 'output' => [ 'shape' => 'DescribeSessionsResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DescribeStacks' => [ 'name' => 'DescribeStacks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStacksRequest', ], 'output' => [ 'shape' => 'DescribeStacksResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeUserStackAssociations' => [ 'name' => 'DescribeUserStackAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeUserStackAssociationsRequest', ], 'output' => [ 'shape' => 'DescribeUserStackAssociationsResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DescribeUsers' => [ 'name' => 'DescribeUsers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeUsersRequest', ], 'output' => [ 'shape' => 'DescribeUsersResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DisableUser' => [ 'name' => 'DisableUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableUserRequest', ], 'output' => [ 'shape' => 'DisableUserResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DisassociateFleet' => [ 'name' => 'DisassociateFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateFleetRequest', ], 'output' => [ 'shape' => 'DisassociateFleetResult', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'EnableUser' => [ 'name' => 'EnableUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableUserRequest', ], 'output' => [ 'shape' => 'EnableUserResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidAccountStatusException', ], ], ], 'ExpireSession' => [ 'name' => 'ExpireSession', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExpireSessionRequest', ], 'output' => [ 'shape' => 'ExpireSessionResult', ], ], 'ListAssociatedFleets' => [ 'name' => 'ListAssociatedFleets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAssociatedFleetsRequest', ], 'output' => [ 'shape' => 'ListAssociatedFleetsResult', ], ], 'ListAssociatedStacks' => [ 'name' => 'ListAssociatedStacks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAssociatedStacksRequest', ], 'output' => [ 'shape' => 'ListAssociatedStacksResult', ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'StartFleet' => [ 'name' => 'StartFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartFleetRequest', ], 'output' => [ 'shape' => 'StartFleetResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidAccountStatusException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'StartImageBuilder' => [ 'name' => 'StartImageBuilder', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartImageBuilderRequest', ], 'output' => [ 'shape' => 'StartImageBuilderResult', ], 'errors' => [ [ 'shape' => 'ResourceNotAvailableException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidAccountStatusException', ], [ 'shape' => 'IncompatibleImageException', ], ], ], 'StopFleet' => [ 'name' => 'StopFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopFleetRequest', ], 'output' => [ 'shape' => 'StopFleetResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'StopImageBuilder' => [ 'name' => 'StopImageBuilder', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopImageBuilderRequest', ], 'output' => [ 'shape' => 'StopImageBuilderResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidAccountStatusException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateDirectoryConfig' => [ 'name' => 'UpdateDirectoryConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateDirectoryConfigRequest', ], 'output' => [ 'shape' => 'UpdateDirectoryConfigResult', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'UpdateFleet' => [ 'name' => 'UpdateFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateFleetRequest', ], 'output' => [ 'shape' => 'UpdateFleetResult', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidAccountStatusException', ], [ 'shape' => 'InvalidRoleException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceNotAvailableException', ], [ 'shape' => 'InvalidParameterCombinationException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'IncompatibleImageException', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'UpdateImagePermissions' => [ 'name' => 'UpdateImagePermissions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateImagePermissionsRequest', ], 'output' => [ 'shape' => 'UpdateImagePermissionsResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceNotAvailableException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'UpdateStack' => [ 'name' => 'UpdateStack', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateStackRequest', ], 'output' => [ 'shape' => 'UpdateStackResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidRoleException', ], [ 'shape' => 'InvalidParameterCombinationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidAccountStatusException', ], [ 'shape' => 'IncompatibleImageException', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], ], 'shapes' => [ 'AccountName' => [ 'type' => 'string', 'min' => 1, 'sensitive' => true, ], 'AccountPassword' => [ 'type' => 'string', 'max' => 127, 'min' => 1, 'sensitive' => true, ], 'Action' => [ 'type' => 'string', 'enum' => [ 'CLIPBOARD_COPY_FROM_LOCAL_DEVICE', 'CLIPBOARD_COPY_TO_LOCAL_DEVICE', 'FILE_UPLOAD', 'FILE_DOWNLOAD', 'PRINTING_TO_LOCAL_DEVICE', ], ], 'Application' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'DisplayName' => [ 'shape' => 'String', ], 'IconURL' => [ 'shape' => 'String', ], 'LaunchPath' => [ 'shape' => 'String', ], 'LaunchParameters' => [ 'shape' => 'String', ], 'Enabled' => [ 'shape' => 'Boolean', ], 'Metadata' => [ 'shape' => 'Metadata', ], ], ], 'ApplicationSettings' => [ 'type' => 'structure', 'required' => [ 'Enabled', ], 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'SettingsGroup' => [ 'shape' => 'SettingsGroup', ], ], ], 'ApplicationSettingsResponse' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'SettingsGroup' => [ 'shape' => 'SettingsGroup', ], 'S3BucketName' => [ 'shape' => 'String', ], ], ], 'Applications' => [ 'type' => 'list', 'member' => [ 'shape' => 'Application', ], ], 'AppstreamAgentVersion' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], '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,1023}$', ], 'ArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Arn', ], ], 'AssociateFleetRequest' => [ 'type' => 'structure', 'required' => [ 'FleetName', 'StackName', ], 'members' => [ 'FleetName' => [ 'shape' => 'String', ], 'StackName' => [ 'shape' => 'String', ], ], ], 'AssociateFleetResult' => [ 'type' => 'structure', 'members' => [], ], 'AuthenticationType' => [ 'type' => 'string', 'enum' => [ 'API', 'SAML', 'USERPOOL', ], ], 'AwsAccountId' => [ 'type' => 'string', 'pattern' => '^\\d+$', ], 'AwsAccountIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AwsAccountId', ], 'max' => 5, 'min' => 1, ], 'BatchAssociateUserStackRequest' => [ 'type' => 'structure', 'required' => [ 'UserStackAssociations', ], 'members' => [ 'UserStackAssociations' => [ 'shape' => 'UserStackAssociationList', ], ], ], 'BatchAssociateUserStackResult' => [ 'type' => 'structure', 'members' => [ 'errors' => [ 'shape' => 'UserStackAssociationErrorList', ], ], ], 'BatchDisassociateUserStackRequest' => [ 'type' => 'structure', 'required' => [ 'UserStackAssociations', ], 'members' => [ 'UserStackAssociations' => [ 'shape' => 'UserStackAssociationList', ], ], ], 'BatchDisassociateUserStackResult' => [ 'type' => 'structure', 'members' => [ 'errors' => [ 'shape' => 'UserStackAssociationErrorList', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'BooleanObject' => [ 'type' => 'boolean', ], 'ComputeCapacity' => [ 'type' => 'structure', 'required' => [ 'DesiredInstances', ], 'members' => [ 'DesiredInstances' => [ 'shape' => 'Integer', ], ], ], 'ComputeCapacityStatus' => [ 'type' => 'structure', 'required' => [ 'Desired', ], 'members' => [ 'Desired' => [ 'shape' => 'Integer', ], 'Running' => [ 'shape' => 'Integer', ], 'InUse' => [ 'shape' => 'Integer', ], 'Available' => [ 'shape' => 'Integer', ], ], ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'CopyImageRequest' => [ 'type' => 'structure', 'required' => [ 'SourceImageName', 'DestinationImageName', 'DestinationRegion', ], 'members' => [ 'SourceImageName' => [ 'shape' => 'Name', ], 'DestinationImageName' => [ 'shape' => 'Name', ], 'DestinationRegion' => [ 'shape' => 'RegionName', ], 'DestinationImageDescription' => [ 'shape' => 'Description', ], ], ], 'CopyImageResponse' => [ 'type' => 'structure', 'members' => [ 'DestinationImageName' => [ 'shape' => 'Name', ], ], ], 'CreateDirectoryConfigRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryName', 'OrganizationalUnitDistinguishedNames', 'ServiceAccountCredentials', ], 'members' => [ 'DirectoryName' => [ 'shape' => 'DirectoryName', ], 'OrganizationalUnitDistinguishedNames' => [ 'shape' => 'OrganizationalUnitDistinguishedNamesList', ], 'ServiceAccountCredentials' => [ 'shape' => 'ServiceAccountCredentials', ], ], ], 'CreateDirectoryConfigResult' => [ 'type' => 'structure', 'members' => [ 'DirectoryConfig' => [ 'shape' => 'DirectoryConfig', ], ], ], 'CreateFleetRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'InstanceType', 'ComputeCapacity', ], 'members' => [ 'Name' => [ 'shape' => 'Name', ], 'ImageName' => [ 'shape' => 'String', ], 'ImageArn' => [ 'shape' => 'Arn', ], 'InstanceType' => [ 'shape' => 'String', ], 'FleetType' => [ 'shape' => 'FleetType', ], 'ComputeCapacity' => [ 'shape' => 'ComputeCapacity', ], 'VpcConfig' => [ 'shape' => 'VpcConfig', ], 'MaxUserDurationInSeconds' => [ 'shape' => 'Integer', ], 'DisconnectTimeoutInSeconds' => [ 'shape' => 'Integer', ], 'Description' => [ 'shape' => 'Description', ], 'DisplayName' => [ 'shape' => 'DisplayName', ], 'EnableDefaultInternetAccess' => [ 'shape' => 'BooleanObject', ], 'DomainJoinInfo' => [ 'shape' => 'DomainJoinInfo', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'CreateFleetResult' => [ 'type' => 'structure', 'members' => [ 'Fleet' => [ 'shape' => 'Fleet', ], ], ], 'CreateImageBuilderRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'InstanceType', ], 'members' => [ 'Name' => [ 'shape' => 'Name', ], 'ImageName' => [ 'shape' => 'String', ], 'ImageArn' => [ 'shape' => 'Arn', ], 'InstanceType' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'Description', ], 'DisplayName' => [ 'shape' => 'DisplayName', ], 'VpcConfig' => [ 'shape' => 'VpcConfig', ], 'EnableDefaultInternetAccess' => [ 'shape' => 'BooleanObject', ], 'DomainJoinInfo' => [ 'shape' => 'DomainJoinInfo', ], 'AppstreamAgentVersion' => [ 'shape' => 'AppstreamAgentVersion', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'CreateImageBuilderResult' => [ 'type' => 'structure', 'members' => [ 'ImageBuilder' => [ 'shape' => 'ImageBuilder', ], ], ], 'CreateImageBuilderStreamingURLRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Validity' => [ 'shape' => 'Long', ], ], ], 'CreateImageBuilderStreamingURLResult' => [ 'type' => 'structure', 'members' => [ 'StreamingURL' => [ 'shape' => 'String', ], 'Expires' => [ 'shape' => 'Timestamp', ], ], ], 'CreateStackRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'Name', ], 'Description' => [ 'shape' => 'Description', ], 'DisplayName' => [ 'shape' => 'DisplayName', ], 'StorageConnectors' => [ 'shape' => 'StorageConnectorList', ], 'RedirectURL' => [ 'shape' => 'RedirectURL', ], 'FeedbackURL' => [ 'shape' => 'FeedbackURL', ], 'UserSettings' => [ 'shape' => 'UserSettingList', ], 'ApplicationSettings' => [ 'shape' => 'ApplicationSettings', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'CreateStackResult' => [ 'type' => 'structure', 'members' => [ 'Stack' => [ 'shape' => 'Stack', ], ], ], 'CreateStreamingURLRequest' => [ 'type' => 'structure', 'required' => [ 'StackName', 'FleetName', 'UserId', ], 'members' => [ 'StackName' => [ 'shape' => 'String', ], 'FleetName' => [ 'shape' => 'String', ], 'UserId' => [ 'shape' => 'StreamingUrlUserId', ], 'ApplicationId' => [ 'shape' => 'String', ], 'Validity' => [ 'shape' => 'Long', ], 'SessionContext' => [ 'shape' => 'String', ], ], ], 'CreateStreamingURLResult' => [ 'type' => 'structure', 'members' => [ 'StreamingURL' => [ 'shape' => 'String', ], 'Expires' => [ 'shape' => 'Timestamp', ], ], ], 'CreateUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserName', 'AuthenticationType', ], 'members' => [ 'UserName' => [ 'shape' => 'Username', ], 'MessageAction' => [ 'shape' => 'MessageAction', ], 'FirstName' => [ 'shape' => 'UserAttributeValue', ], 'LastName' => [ 'shape' => 'UserAttributeValue', ], 'AuthenticationType' => [ 'shape' => 'AuthenticationType', ], ], ], 'CreateUserResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteDirectoryConfigRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryName', ], 'members' => [ 'DirectoryName' => [ 'shape' => 'DirectoryName', ], ], ], 'DeleteDirectoryConfigResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteFleetRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'String', ], ], ], 'DeleteFleetResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteImageBuilderRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'Name', ], ], ], 'DeleteImageBuilderResult' => [ 'type' => 'structure', 'members' => [ 'ImageBuilder' => [ 'shape' => 'ImageBuilder', ], ], ], 'DeleteImagePermissionsRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'SharedAccountId', ], 'members' => [ 'Name' => [ 'shape' => 'Name', ], 'SharedAccountId' => [ 'shape' => 'AwsAccountId', ], ], ], 'DeleteImagePermissionsResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteImageRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'Name', ], ], ], 'DeleteImageResult' => [ 'type' => 'structure', 'members' => [ 'Image' => [ 'shape' => 'Image', ], ], ], 'DeleteStackRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'String', ], ], ], 'DeleteStackResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserName', 'AuthenticationType', ], 'members' => [ 'UserName' => [ 'shape' => 'Username', ], 'AuthenticationType' => [ 'shape' => 'AuthenticationType', ], ], ], 'DeleteUserResult' => [ 'type' => 'structure', 'members' => [], ], 'DescribeDirectoryConfigsRequest' => [ 'type' => 'structure', 'members' => [ 'DirectoryNames' => [ 'shape' => 'DirectoryNameList', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeDirectoryConfigsResult' => [ 'type' => 'structure', 'members' => [ 'DirectoryConfigs' => [ 'shape' => 'DirectoryConfigList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeFleetsRequest' => [ 'type' => 'structure', 'members' => [ 'Names' => [ 'shape' => 'StringList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeFleetsResult' => [ 'type' => 'structure', 'members' => [ 'Fleets' => [ 'shape' => 'FleetList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeImageBuildersRequest' => [ 'type' => 'structure', 'members' => [ 'Names' => [ 'shape' => 'StringList', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeImageBuildersResult' => [ 'type' => 'structure', 'members' => [ 'ImageBuilders' => [ 'shape' => 'ImageBuilderList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeImagePermissionsRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'Name', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'SharedAwsAccountIds' => [ 'shape' => 'AwsAccountIdList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeImagePermissionsResult' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'Name', ], 'SharedImagePermissionsList' => [ 'shape' => 'SharedImagePermissionsList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeImagesMaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 25, 'min' => 0, ], 'DescribeImagesRequest' => [ 'type' => 'structure', 'members' => [ 'Names' => [ 'shape' => 'StringList', ], 'Arns' => [ 'shape' => 'ArnList', ], 'Type' => [ 'shape' => 'VisibilityType', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeImagesMaxResults', ], ], ], 'DescribeImagesResult' => [ 'type' => 'structure', 'members' => [ 'Images' => [ 'shape' => 'ImageList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeSessionsRequest' => [ 'type' => 'structure', 'required' => [ 'StackName', 'FleetName', ], 'members' => [ 'StackName' => [ 'shape' => 'String', ], 'FleetName' => [ 'shape' => 'String', ], 'UserId' => [ 'shape' => 'UserId', ], 'NextToken' => [ 'shape' => 'String', ], 'Limit' => [ 'shape' => 'Integer', ], 'AuthenticationType' => [ 'shape' => 'AuthenticationType', ], ], ], 'DescribeSessionsResult' => [ 'type' => 'structure', 'members' => [ 'Sessions' => [ 'shape' => 'SessionList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeStacksRequest' => [ 'type' => 'structure', 'members' => [ 'Names' => [ 'shape' => 'StringList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeStacksResult' => [ 'type' => 'structure', 'members' => [ 'Stacks' => [ 'shape' => 'StackList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeUserStackAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'StackName' => [ 'shape' => 'String', ], 'UserName' => [ 'shape' => 'Username', ], 'AuthenticationType' => [ 'shape' => 'AuthenticationType', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeUserStackAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'UserStackAssociations' => [ 'shape' => 'UserStackAssociationList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeUsersRequest' => [ 'type' => 'structure', 'required' => [ 'AuthenticationType', ], 'members' => [ 'AuthenticationType' => [ 'shape' => 'AuthenticationType', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeUsersResult' => [ 'type' => 'structure', 'members' => [ 'Users' => [ 'shape' => 'UserList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'Description' => [ 'type' => 'string', 'max' => 256, ], 'DirectoryConfig' => [ 'type' => 'structure', 'required' => [ 'DirectoryName', ], 'members' => [ 'DirectoryName' => [ 'shape' => 'DirectoryName', ], 'OrganizationalUnitDistinguishedNames' => [ 'shape' => 'OrganizationalUnitDistinguishedNamesList', ], 'ServiceAccountCredentials' => [ 'shape' => 'ServiceAccountCredentials', ], 'CreatedTime' => [ 'shape' => 'Timestamp', ], ], ], 'DirectoryConfigList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DirectoryConfig', ], ], 'DirectoryName' => [ 'type' => 'string', ], 'DirectoryNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DirectoryName', ], ], 'DisableUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserName', 'AuthenticationType', ], 'members' => [ 'UserName' => [ 'shape' => 'Username', ], 'AuthenticationType' => [ 'shape' => 'AuthenticationType', ], ], ], 'DisableUserResult' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateFleetRequest' => [ 'type' => 'structure', 'required' => [ 'FleetName', 'StackName', ], 'members' => [ 'FleetName' => [ 'shape' => 'String', ], 'StackName' => [ 'shape' => 'String', ], ], ], 'DisassociateFleetResult' => [ 'type' => 'structure', 'members' => [], ], 'DisplayName' => [ 'type' => 'string', 'max' => 100, ], 'Domain' => [ 'type' => 'string', 'max' => 64, ], 'DomainJoinInfo' => [ 'type' => 'structure', 'members' => [ 'DirectoryName' => [ 'shape' => 'DirectoryName', ], 'OrganizationalUnitDistinguishedName' => [ 'shape' => 'OrganizationalUnitDistinguishedName', ], ], ], 'DomainList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Domain', ], 'max' => 10, ], 'EnableUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserName', 'AuthenticationType', ], 'members' => [ 'UserName' => [ 'shape' => 'Username', ], 'AuthenticationType' => [ 'shape' => 'AuthenticationType', ], ], ], 'EnableUserResult' => [ 'type' => 'structure', 'members' => [], ], 'ErrorMessage' => [ 'type' => 'string', ], 'ExpireSessionRequest' => [ 'type' => 'structure', 'required' => [ 'SessionId', ], 'members' => [ 'SessionId' => [ 'shape' => 'String', ], ], ], 'ExpireSessionResult' => [ 'type' => 'structure', 'members' => [], ], 'FeedbackURL' => [ 'type' => 'string', 'max' => 1000, ], 'Fleet' => [ 'type' => 'structure', 'required' => [ 'Arn', 'Name', 'InstanceType', 'ComputeCapacityStatus', 'State', ], 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'Name' => [ 'shape' => 'String', ], 'DisplayName' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'ImageName' => [ 'shape' => 'String', ], 'ImageArn' => [ 'shape' => 'Arn', ], 'InstanceType' => [ 'shape' => 'String', ], 'FleetType' => [ 'shape' => 'FleetType', ], 'ComputeCapacityStatus' => [ 'shape' => 'ComputeCapacityStatus', ], 'MaxUserDurationInSeconds' => [ 'shape' => 'Integer', ], 'DisconnectTimeoutInSeconds' => [ 'shape' => 'Integer', ], 'State' => [ 'shape' => 'FleetState', ], 'VpcConfig' => [ 'shape' => 'VpcConfig', ], 'CreatedTime' => [ 'shape' => 'Timestamp', ], 'FleetErrors' => [ 'shape' => 'FleetErrors', ], 'EnableDefaultInternetAccess' => [ 'shape' => 'BooleanObject', ], 'DomainJoinInfo' => [ 'shape' => 'DomainJoinInfo', ], ], ], 'FleetAttribute' => [ 'type' => 'string', 'enum' => [ 'VPC_CONFIGURATION', 'VPC_CONFIGURATION_SECURITY_GROUP_IDS', 'DOMAIN_JOIN_INFO', ], ], 'FleetAttributes' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetAttribute', ], ], 'FleetError' => [ 'type' => 'structure', 'members' => [ 'ErrorCode' => [ 'shape' => 'FleetErrorCode', ], 'ErrorMessage' => [ 'shape' => 'String', ], ], ], 'FleetErrorCode' => [ 'type' => 'string', 'enum' => [ 'IAM_SERVICE_ROLE_MISSING_ENI_DESCRIBE_ACTION', 'IAM_SERVICE_ROLE_MISSING_ENI_CREATE_ACTION', 'IAM_SERVICE_ROLE_MISSING_ENI_DELETE_ACTION', 'NETWORK_INTERFACE_LIMIT_EXCEEDED', 'INTERNAL_SERVICE_ERROR', 'IAM_SERVICE_ROLE_IS_MISSING', 'SUBNET_HAS_INSUFFICIENT_IP_ADDRESSES', 'IAM_SERVICE_ROLE_MISSING_DESCRIBE_SUBNET_ACTION', 'SUBNET_NOT_FOUND', 'IMAGE_NOT_FOUND', 'INVALID_SUBNET_CONFIGURATION', 'SECURITY_GROUPS_NOT_FOUND', 'IGW_NOT_ATTACHED', 'IAM_SERVICE_ROLE_MISSING_DESCRIBE_SECURITY_GROUPS_ACTION', 'DOMAIN_JOIN_ERROR_FILE_NOT_FOUND', 'DOMAIN_JOIN_ERROR_ACCESS_DENIED', 'DOMAIN_JOIN_ERROR_LOGON_FAILURE', 'DOMAIN_JOIN_ERROR_INVALID_PARAMETER', 'DOMAIN_JOIN_ERROR_MORE_DATA', 'DOMAIN_JOIN_ERROR_NO_SUCH_DOMAIN', 'DOMAIN_JOIN_ERROR_NOT_SUPPORTED', 'DOMAIN_JOIN_NERR_INVALID_WORKGROUP_NAME', 'DOMAIN_JOIN_NERR_WORKSTATION_NOT_STARTED', 'DOMAIN_JOIN_ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED', 'DOMAIN_JOIN_NERR_PASSWORD_EXPIRED', 'DOMAIN_JOIN_INTERNAL_SERVICE_ERROR', ], ], 'FleetErrors' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetError', ], ], 'FleetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Fleet', ], ], 'FleetState' => [ 'type' => 'string', 'enum' => [ 'STARTING', 'RUNNING', 'STOPPING', 'STOPPED', ], ], 'FleetType' => [ 'type' => 'string', 'enum' => [ 'ALWAYS_ON', 'ON_DEMAND', ], ], 'Image' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Arn' => [ 'shape' => 'Arn', ], 'BaseImageArn' => [ 'shape' => 'Arn', ], 'DisplayName' => [ 'shape' => 'String', ], 'State' => [ 'shape' => 'ImageState', ], 'Visibility' => [ 'shape' => 'VisibilityType', ], 'ImageBuilderSupported' => [ 'shape' => 'Boolean', ], 'Platform' => [ 'shape' => 'PlatformType', ], 'Description' => [ 'shape' => 'String', ], 'StateChangeReason' => [ 'shape' => 'ImageStateChangeReason', ], 'Applications' => [ 'shape' => 'Applications', ], 'CreatedTime' => [ 'shape' => 'Timestamp', ], 'PublicBaseImageReleasedDate' => [ 'shape' => 'Timestamp', ], 'AppstreamAgentVersion' => [ 'shape' => 'AppstreamAgentVersion', ], 'ImagePermissions' => [ 'shape' => 'ImagePermissions', ], ], ], 'ImageBuilder' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Arn' => [ 'shape' => 'Arn', ], 'ImageArn' => [ 'shape' => 'Arn', ], 'Description' => [ 'shape' => 'String', ], 'DisplayName' => [ 'shape' => 'String', ], 'VpcConfig' => [ 'shape' => 'VpcConfig', ], 'InstanceType' => [ 'shape' => 'String', ], 'Platform' => [ 'shape' => 'PlatformType', ], 'State' => [ 'shape' => 'ImageBuilderState', ], 'StateChangeReason' => [ 'shape' => 'ImageBuilderStateChangeReason', ], 'CreatedTime' => [ 'shape' => 'Timestamp', ], 'EnableDefaultInternetAccess' => [ 'shape' => 'BooleanObject', ], 'DomainJoinInfo' => [ 'shape' => 'DomainJoinInfo', ], 'ImageBuilderErrors' => [ 'shape' => 'ResourceErrors', ], 'AppstreamAgentVersion' => [ 'shape' => 'AppstreamAgentVersion', ], ], ], 'ImageBuilderList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageBuilder', ], ], 'ImageBuilderState' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'UPDATING_AGENT', 'RUNNING', 'STOPPING', 'STOPPED', 'REBOOTING', 'SNAPSHOTTING', 'DELETING', 'FAILED', ], ], 'ImageBuilderStateChangeReason' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ImageBuilderStateChangeReasonCode', ], 'Message' => [ 'shape' => 'String', ], ], ], 'ImageBuilderStateChangeReasonCode' => [ 'type' => 'string', 'enum' => [ 'INTERNAL_ERROR', 'IMAGE_UNAVAILABLE', ], ], 'ImageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Image', ], ], 'ImagePermissions' => [ 'type' => 'structure', 'members' => [ 'allowFleet' => [ 'shape' => 'BooleanObject', ], 'allowImageBuilder' => [ 'shape' => 'BooleanObject', ], ], ], 'ImageState' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'AVAILABLE', 'FAILED', 'COPYING', 'DELETING', ], ], 'ImageStateChangeReason' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ImageStateChangeReasonCode', ], 'Message' => [ 'shape' => 'String', ], ], ], 'ImageStateChangeReasonCode' => [ 'type' => 'string', 'enum' => [ 'INTERNAL_ERROR', 'IMAGE_BUILDER_NOT_AVAILABLE', 'IMAGE_COPY_FAILURE', ], ], 'IncompatibleImageException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'Integer' => [ 'type' => 'integer', ], 'InvalidAccountStatusException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidParameterCombinationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidRoleException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ListAssociatedFleetsRequest' => [ 'type' => 'structure', 'required' => [ 'StackName', ], 'members' => [ 'StackName' => [ 'shape' => 'String', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListAssociatedFleetsResult' => [ 'type' => 'structure', 'members' => [ 'Names' => [ 'shape' => 'StringList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListAssociatedStacksRequest' => [ 'type' => 'structure', 'required' => [ 'FleetName', ], 'members' => [ 'FleetName' => [ 'shape' => 'String', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListAssociatedStacksResult' => [ 'type' => 'structure', 'members' => [ 'Names' => [ 'shape' => 'StringList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'Arn', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'Tags', ], ], ], 'Long' => [ 'type' => 'long', ], 'MaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 500, 'min' => 0, ], 'MessageAction' => [ 'type' => 'string', 'enum' => [ 'SUPPRESS', 'RESEND', ], ], 'Metadata' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'Name' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$', ], 'NetworkAccessConfiguration' => [ 'type' => 'structure', 'members' => [ 'EniPrivateIpAddress' => [ 'shape' => 'String', ], 'EniId' => [ 'shape' => 'String', ], ], ], 'OperationNotPermittedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'OrganizationalUnitDistinguishedName' => [ 'type' => 'string', 'max' => 2000, ], 'OrganizationalUnitDistinguishedNamesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OrganizationalUnitDistinguishedName', ], ], 'Permission' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'PlatformType' => [ 'type' => 'string', 'enum' => [ 'WINDOWS', ], ], 'RedirectURL' => [ 'type' => 'string', 'max' => 1000, ], 'RegionName' => [ 'type' => 'string', 'max' => 32, 'min' => 1, ], 'ResourceAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ResourceError' => [ 'type' => 'structure', 'members' => [ 'ErrorCode' => [ 'shape' => 'FleetErrorCode', ], 'ErrorMessage' => [ 'shape' => 'String', ], 'ErrorTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'ResourceErrors' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceError', ], ], 'ResourceIdentifier' => [ 'type' => 'string', 'min' => 1, ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ResourceNotAvailableException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'SecurityGroupIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], 'max' => 5, ], 'ServiceAccountCredentials' => [ 'type' => 'structure', 'required' => [ 'AccountName', 'AccountPassword', ], 'members' => [ 'AccountName' => [ 'shape' => 'AccountName', ], 'AccountPassword' => [ 'shape' => 'AccountPassword', ], ], ], 'Session' => [ 'type' => 'structure', 'required' => [ 'Id', 'UserId', 'StackName', 'FleetName', 'State', ], 'members' => [ 'Id' => [ 'shape' => 'String', ], 'UserId' => [ 'shape' => 'UserId', ], 'StackName' => [ 'shape' => 'String', ], 'FleetName' => [ 'shape' => 'String', ], 'State' => [ 'shape' => 'SessionState', ], 'ConnectionState' => [ 'shape' => 'SessionConnectionState', ], 'StartTime' => [ 'shape' => 'Timestamp', ], 'MaxExpirationTime' => [ 'shape' => 'Timestamp', ], 'AuthenticationType' => [ 'shape' => 'AuthenticationType', ], 'NetworkAccessConfiguration' => [ 'shape' => 'NetworkAccessConfiguration', ], ], ], 'SessionConnectionState' => [ 'type' => 'string', 'enum' => [ 'CONNECTED', 'NOT_CONNECTED', ], ], 'SessionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Session', ], ], 'SessionState' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'PENDING', 'EXPIRED', ], ], 'SettingsGroup' => [ 'type' => 'string', 'max' => 100, ], 'SharedImagePermissions' => [ 'type' => 'structure', 'required' => [ 'sharedAccountId', 'imagePermissions', ], 'members' => [ 'sharedAccountId' => [ 'shape' => 'AwsAccountId', ], 'imagePermissions' => [ 'shape' => 'ImagePermissions', ], ], ], 'SharedImagePermissionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SharedImagePermissions', ], ], 'Stack' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'Name' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'DisplayName' => [ 'shape' => 'String', ], 'CreatedTime' => [ 'shape' => 'Timestamp', ], 'StorageConnectors' => [ 'shape' => 'StorageConnectorList', ], 'RedirectURL' => [ 'shape' => 'RedirectURL', ], 'FeedbackURL' => [ 'shape' => 'FeedbackURL', ], 'StackErrors' => [ 'shape' => 'StackErrors', ], 'UserSettings' => [ 'shape' => 'UserSettingList', ], 'ApplicationSettings' => [ 'shape' => 'ApplicationSettingsResponse', ], ], ], 'StackAttribute' => [ 'type' => 'string', 'enum' => [ 'STORAGE_CONNECTORS', 'STORAGE_CONNECTOR_HOMEFOLDERS', 'STORAGE_CONNECTOR_GOOGLE_DRIVE', 'STORAGE_CONNECTOR_ONE_DRIVE', 'REDIRECT_URL', 'FEEDBACK_URL', 'THEME_NAME', 'USER_SETTINGS', ], ], 'StackAttributes' => [ 'type' => 'list', 'member' => [ 'shape' => 'StackAttribute', ], ], 'StackError' => [ 'type' => 'structure', 'members' => [ 'ErrorCode' => [ 'shape' => 'StackErrorCode', ], 'ErrorMessage' => [ 'shape' => 'String', ], ], ], 'StackErrorCode' => [ 'type' => 'string', 'enum' => [ 'STORAGE_CONNECTOR_ERROR', 'INTERNAL_SERVICE_ERROR', ], ], 'StackErrors' => [ 'type' => 'list', 'member' => [ 'shape' => 'StackError', ], ], 'StackList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Stack', ], ], 'StartFleetRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'String', ], ], ], 'StartFleetResult' => [ 'type' => 'structure', 'members' => [], ], 'StartImageBuilderRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'String', ], 'AppstreamAgentVersion' => [ 'shape' => 'AppstreamAgentVersion', ], ], ], 'StartImageBuilderResult' => [ 'type' => 'structure', 'members' => [ 'ImageBuilder' => [ 'shape' => 'ImageBuilder', ], ], ], 'StopFleetRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'String', ], ], ], 'StopFleetResult' => [ 'type' => 'structure', 'members' => [], ], 'StopImageBuilderRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'String', ], ], ], 'StopImageBuilderResult' => [ 'type' => 'structure', 'members' => [ 'ImageBuilder' => [ 'shape' => 'ImageBuilder', ], ], ], 'StorageConnector' => [ 'type' => 'structure', 'required' => [ 'ConnectorType', ], 'members' => [ 'ConnectorType' => [ 'shape' => 'StorageConnectorType', ], 'ResourceIdentifier' => [ 'shape' => 'ResourceIdentifier', ], 'Domains' => [ 'shape' => 'DomainList', ], ], ], 'StorageConnectorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'StorageConnector', ], ], 'StorageConnectorType' => [ 'type' => 'string', 'enum' => [ 'HOMEFOLDERS', 'GOOGLE_DRIVE', 'ONE_DRIVE', ], ], 'StreamingUrlUserId' => [ 'type' => 'string', 'max' => 32, 'min' => 2, 'pattern' => '[\\w+=,.@-]*', ], 'String' => [ 'type' => 'string', 'min' => 1, ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'SubnetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^(^(?!aws:).[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 50, 'min' => 1, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Tags', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'Arn', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'Tags' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], 'max' => 50, 'min' => 1, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagKeys', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'Arn', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateDirectoryConfigRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryName', ], 'members' => [ 'DirectoryName' => [ 'shape' => 'DirectoryName', ], 'OrganizationalUnitDistinguishedNames' => [ 'shape' => 'OrganizationalUnitDistinguishedNamesList', ], 'ServiceAccountCredentials' => [ 'shape' => 'ServiceAccountCredentials', ], ], ], 'UpdateDirectoryConfigResult' => [ 'type' => 'structure', 'members' => [ 'DirectoryConfig' => [ 'shape' => 'DirectoryConfig', ], ], ], 'UpdateFleetRequest' => [ 'type' => 'structure', 'members' => [ 'ImageName' => [ 'shape' => 'String', ], 'ImageArn' => [ 'shape' => 'Arn', ], 'Name' => [ 'shape' => 'String', ], 'InstanceType' => [ 'shape' => 'String', ], 'ComputeCapacity' => [ 'shape' => 'ComputeCapacity', ], 'VpcConfig' => [ 'shape' => 'VpcConfig', ], 'MaxUserDurationInSeconds' => [ 'shape' => 'Integer', ], 'DisconnectTimeoutInSeconds' => [ 'shape' => 'Integer', ], 'DeleteVpcConfig' => [ 'shape' => 'Boolean', 'deprecated' => true, ], 'Description' => [ 'shape' => 'Description', ], 'DisplayName' => [ 'shape' => 'DisplayName', ], 'EnableDefaultInternetAccess' => [ 'shape' => 'BooleanObject', ], 'DomainJoinInfo' => [ 'shape' => 'DomainJoinInfo', ], 'AttributesToDelete' => [ 'shape' => 'FleetAttributes', ], ], ], 'UpdateFleetResult' => [ 'type' => 'structure', 'members' => [ 'Fleet' => [ 'shape' => 'Fleet', ], ], ], 'UpdateImagePermissionsRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'SharedAccountId', 'ImagePermissions', ], 'members' => [ 'Name' => [ 'shape' => 'Name', ], 'SharedAccountId' => [ 'shape' => 'AwsAccountId', ], 'ImagePermissions' => [ 'shape' => 'ImagePermissions', ], ], ], 'UpdateImagePermissionsResult' => [ 'type' => 'structure', 'members' => [], ], 'UpdateStackRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'DisplayName' => [ 'shape' => 'DisplayName', ], 'Description' => [ 'shape' => 'Description', ], 'Name' => [ 'shape' => 'String', ], 'StorageConnectors' => [ 'shape' => 'StorageConnectorList', ], 'DeleteStorageConnectors' => [ 'shape' => 'Boolean', 'deprecated' => true, ], 'RedirectURL' => [ 'shape' => 'RedirectURL', ], 'FeedbackURL' => [ 'shape' => 'FeedbackURL', ], 'AttributesToDelete' => [ 'shape' => 'StackAttributes', ], 'UserSettings' => [ 'shape' => 'UserSettingList', ], 'ApplicationSettings' => [ 'shape' => 'ApplicationSettings', ], ], ], 'UpdateStackResult' => [ 'type' => 'structure', 'members' => [ 'Stack' => [ 'shape' => 'Stack', ], ], ], 'User' => [ 'type' => 'structure', 'required' => [ 'AuthenticationType', ], 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'UserName' => [ 'shape' => 'Username', ], 'Enabled' => [ 'shape' => 'Boolean', ], 'Status' => [ 'shape' => 'String', ], 'FirstName' => [ 'shape' => 'UserAttributeValue', ], 'LastName' => [ 'shape' => 'UserAttributeValue', ], 'CreatedTime' => [ 'shape' => 'Timestamp', ], 'AuthenticationType' => [ 'shape' => 'AuthenticationType', ], ], ], 'UserAttributeValue' => [ 'type' => 'string', 'max' => 2048, 'pattern' => '^[A-Za-z0-9_\\-\\s]+$', 'sensitive' => true, ], 'UserId' => [ 'type' => 'string', 'max' => 32, 'min' => 2, ], 'UserList' => [ 'type' => 'list', 'member' => [ 'shape' => 'User', ], ], 'UserSetting' => [ 'type' => 'structure', 'required' => [ 'Action', 'Permission', ], 'members' => [ 'Action' => [ 'shape' => 'Action', ], 'Permission' => [ 'shape' => 'Permission', ], ], ], 'UserSettingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserSetting', ], 'min' => 1, ], 'UserStackAssociation' => [ 'type' => 'structure', 'required' => [ 'StackName', 'UserName', 'AuthenticationType', ], 'members' => [ 'StackName' => [ 'shape' => 'String', ], 'UserName' => [ 'shape' => 'Username', ], 'AuthenticationType' => [ 'shape' => 'AuthenticationType', ], 'SendEmailNotification' => [ 'shape' => 'Boolean', ], ], ], 'UserStackAssociationError' => [ 'type' => 'structure', 'members' => [ 'UserStackAssociation' => [ 'shape' => 'UserStackAssociation', ], 'ErrorCode' => [ 'shape' => 'UserStackAssociationErrorCode', ], 'ErrorMessage' => [ 'shape' => 'String', ], ], ], 'UserStackAssociationErrorCode' => [ 'type' => 'string', 'enum' => [ 'STACK_NOT_FOUND', 'USER_NAME_NOT_FOUND', 'INTERNAL_ERROR', ], ], 'UserStackAssociationErrorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserStackAssociationError', ], ], 'UserStackAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserStackAssociation', ], ], 'Username' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+', 'sensitive' => true, ], 'VisibilityType' => [ 'type' => 'string', 'enum' => [ 'PUBLIC', 'PRIVATE', 'SHARED', ], ], 'VpcConfig' => [ 'type' => 'structure', 'members' => [ 'SubnetIds' => [ 'shape' => 'SubnetIdList', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIdList', ], ], ], ],]; diff --git a/lib/aws/Aws/data/appstream/2016-12-01/paginators-1.json.php b/lib/aws/Aws/data/appstream/2016-12-01/paginators-1.json.php new file mode 100644 index 0000000..fe260c0 --- /dev/null +++ b/lib/aws/Aws/data/appstream/2016-12-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/appstream/2016-12-01/paginators-1.json +return [ 'pagination' => [ 'DescribeImagePermissions' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'DescribeImages' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/appstream/2016-12-01/smoke.json.php b/lib/aws/Aws/data/appstream/2016-12-01/smoke.json.php new file mode 100644 index 0000000..69241bc --- /dev/null +++ b/lib/aws/Aws/data/appstream/2016-12-01/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/appstream/2016-12-01/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeStacks', 'input' => [], 'errorExpectedFromService' => false, ], ],]; diff --git a/lib/aws/Aws/data/appstream/2016-12-01/waiters-2.json.php b/lib/aws/Aws/data/appstream/2016-12-01/waiters-2.json.php new file mode 100644 index 0000000..ca5e812 --- /dev/null +++ b/lib/aws/Aws/data/appstream/2016-12-01/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/appstream/2016-12-01/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'FleetStarted' => [ 'delay' => 30, 'maxAttempts' => 40, 'operation' => 'DescribeFleets', 'acceptors' => [ [ 'state' => 'success', 'matcher' => 'pathAll', 'argument' => 'Fleets[].State', 'expected' => 'ACTIVE', ], [ 'state' => 'failure', 'matcher' => 'pathAny', 'argument' => 'Fleets[].State', 'expected' => 'PENDING_DEACTIVATE', ], [ 'state' => 'failure', 'matcher' => 'pathAny', 'argument' => 'Fleets[].State', 'expected' => 'INACTIVE', ], ], ], 'FleetStopped' => [ 'delay' => 30, 'maxAttempts' => 40, 'operation' => 'DescribeFleets', 'acceptors' => [ [ 'state' => 'success', 'matcher' => 'pathAll', 'argument' => 'Fleets[].State', 'expected' => 'INACTIVE', ], [ 'state' => 'failure', 'matcher' => 'pathAny', 'argument' => 'Fleets[].State', 'expected' => 'PENDING_ACTIVATE', ], [ 'state' => 'failure', 'matcher' => 'pathAny', 'argument' => 'Fleets[].State', 'expected' => 'ACTIVE', ], ], ], ],]; diff --git a/lib/aws/Aws/data/appsync/2017-07-25/api-2.json.php b/lib/aws/Aws/data/appsync/2017-07-25/api-2.json.php new file mode 100644 index 0000000..f4dbccd --- /dev/null +++ b/lib/aws/Aws/data/appsync/2017-07-25/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/appsync/2017-07-25/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-07-25', 'endpointPrefix' => 'appsync', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'AWSAppSync', 'serviceFullName' => 'AWS AppSync', 'serviceId' => 'AppSync', 'signatureVersion' => 'v4', 'signingName' => 'appsync', 'uid' => 'appsync-2017-07-25', ], 'operations' => [ 'CreateApiKey' => [ 'name' => 'CreateApiKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apis/{apiId}/apikeys', ], 'input' => [ 'shape' => 'CreateApiKeyRequest', ], 'output' => [ 'shape' => 'CreateApiKeyResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ApiKeyLimitExceededException', ], [ 'shape' => 'ApiKeyValidityOutOfBoundsException', ], ], ], 'CreateDataSource' => [ 'name' => 'CreateDataSource', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apis/{apiId}/datasources', ], 'input' => [ 'shape' => 'CreateDataSourceRequest', ], 'output' => [ 'shape' => 'CreateDataSourceResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'CreateFunction' => [ 'name' => 'CreateFunction', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apis/{apiId}/functions', ], 'input' => [ 'shape' => 'CreateFunctionRequest', ], 'output' => [ 'shape' => 'CreateFunctionResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'CreateGraphqlApi' => [ 'name' => 'CreateGraphqlApi', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apis', ], 'input' => [ 'shape' => 'CreateGraphqlApiRequest', ], 'output' => [ 'shape' => 'CreateGraphqlApiResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ApiLimitExceededException', ], ], ], 'CreateResolver' => [ 'name' => 'CreateResolver', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apis/{apiId}/types/{typeName}/resolvers', ], 'input' => [ 'shape' => 'CreateResolverRequest', ], 'output' => [ 'shape' => 'CreateResolverResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'CreateType' => [ 'name' => 'CreateType', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apis/{apiId}/types', ], 'input' => [ 'shape' => 'CreateTypeRequest', ], 'output' => [ 'shape' => 'CreateTypeResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DeleteApiKey' => [ 'name' => 'DeleteApiKey', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apis/{apiId}/apikeys/{id}', ], 'input' => [ 'shape' => 'DeleteApiKeyRequest', ], 'output' => [ 'shape' => 'DeleteApiKeyResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DeleteDataSource' => [ 'name' => 'DeleteDataSource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apis/{apiId}/datasources/{name}', ], 'input' => [ 'shape' => 'DeleteDataSourceRequest', ], 'output' => [ 'shape' => 'DeleteDataSourceResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DeleteFunction' => [ 'name' => 'DeleteFunction', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apis/{apiId}/functions/{functionId}', ], 'input' => [ 'shape' => 'DeleteFunctionRequest', ], 'output' => [ 'shape' => 'DeleteFunctionResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DeleteGraphqlApi' => [ 'name' => 'DeleteGraphqlApi', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apis/{apiId}', ], 'input' => [ 'shape' => 'DeleteGraphqlApiRequest', ], 'output' => [ 'shape' => 'DeleteGraphqlApiResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DeleteResolver' => [ 'name' => 'DeleteResolver', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}', ], 'input' => [ 'shape' => 'DeleteResolverRequest', ], 'output' => [ 'shape' => 'DeleteResolverResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DeleteType' => [ 'name' => 'DeleteType', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apis/{apiId}/types/{typeName}', ], 'input' => [ 'shape' => 'DeleteTypeRequest', ], 'output' => [ 'shape' => 'DeleteTypeResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'GetDataSource' => [ 'name' => 'GetDataSource', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apis/{apiId}/datasources/{name}', ], 'input' => [ 'shape' => 'GetDataSourceRequest', ], 'output' => [ 'shape' => 'GetDataSourceResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'GetFunction' => [ 'name' => 'GetFunction', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apis/{apiId}/functions/{functionId}', ], 'input' => [ 'shape' => 'GetFunctionRequest', ], 'output' => [ 'shape' => 'GetFunctionResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], ], ], 'GetGraphqlApi' => [ 'name' => 'GetGraphqlApi', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apis/{apiId}', ], 'input' => [ 'shape' => 'GetGraphqlApiRequest', ], 'output' => [ 'shape' => 'GetGraphqlApiResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'GetIntrospectionSchema' => [ 'name' => 'GetIntrospectionSchema', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apis/{apiId}/schema', ], 'input' => [ 'shape' => 'GetIntrospectionSchemaRequest', ], 'output' => [ 'shape' => 'GetIntrospectionSchemaResponse', ], 'errors' => [ [ 'shape' => 'GraphQLSchemaException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'GetResolver' => [ 'name' => 'GetResolver', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}', ], 'input' => [ 'shape' => 'GetResolverRequest', ], 'output' => [ 'shape' => 'GetResolverResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], ], ], 'GetSchemaCreationStatus' => [ 'name' => 'GetSchemaCreationStatus', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apis/{apiId}/schemacreation', ], 'input' => [ 'shape' => 'GetSchemaCreationStatusRequest', ], 'output' => [ 'shape' => 'GetSchemaCreationStatusResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'GetType' => [ 'name' => 'GetType', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apis/{apiId}/types/{typeName}', ], 'input' => [ 'shape' => 'GetTypeRequest', ], 'output' => [ 'shape' => 'GetTypeResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListApiKeys' => [ 'name' => 'ListApiKeys', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apis/{apiId}/apikeys', ], 'input' => [ 'shape' => 'ListApiKeysRequest', ], 'output' => [ 'shape' => 'ListApiKeysResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListDataSources' => [ 'name' => 'ListDataSources', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apis/{apiId}/datasources', ], 'input' => [ 'shape' => 'ListDataSourcesRequest', ], 'output' => [ 'shape' => 'ListDataSourcesResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListFunctions' => [ 'name' => 'ListFunctions', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apis/{apiId}/functions', ], 'input' => [ 'shape' => 'ListFunctionsRequest', ], 'output' => [ 'shape' => 'ListFunctionsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListGraphqlApis' => [ 'name' => 'ListGraphqlApis', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apis', ], 'input' => [ 'shape' => 'ListGraphqlApisRequest', ], 'output' => [ 'shape' => 'ListGraphqlApisResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListResolvers' => [ 'name' => 'ListResolvers', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apis/{apiId}/types/{typeName}/resolvers', ], 'input' => [ 'shape' => 'ListResolversRequest', ], 'output' => [ 'shape' => 'ListResolversResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListResolversByFunction' => [ 'name' => 'ListResolversByFunction', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apis/{apiId}/functions/{functionId}/resolvers', ], 'input' => [ 'shape' => 'ListResolversByFunctionRequest', ], 'output' => [ 'shape' => 'ListResolversByFunctionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListTypes' => [ 'name' => 'ListTypes', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apis/{apiId}/types', ], 'input' => [ 'shape' => 'ListTypesRequest', ], 'output' => [ 'shape' => 'ListTypesResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'StartSchemaCreation' => [ 'name' => 'StartSchemaCreation', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apis/{apiId}/schemacreation', ], 'input' => [ 'shape' => 'StartSchemaCreationRequest', ], 'output' => [ 'shape' => 'StartSchemaCreationResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'UpdateApiKey' => [ 'name' => 'UpdateApiKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apis/{apiId}/apikeys/{id}', ], 'input' => [ 'shape' => 'UpdateApiKeyRequest', ], 'output' => [ 'shape' => 'UpdateApiKeyResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ApiKeyValidityOutOfBoundsException', ], ], ], 'UpdateDataSource' => [ 'name' => 'UpdateDataSource', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apis/{apiId}/datasources/{name}', ], 'input' => [ 'shape' => 'UpdateDataSourceRequest', ], 'output' => [ 'shape' => 'UpdateDataSourceResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'UpdateFunction' => [ 'name' => 'UpdateFunction', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apis/{apiId}/functions/{functionId}', ], 'input' => [ 'shape' => 'UpdateFunctionRequest', ], 'output' => [ 'shape' => 'UpdateFunctionResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'UpdateGraphqlApi' => [ 'name' => 'UpdateGraphqlApi', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apis/{apiId}', ], 'input' => [ 'shape' => 'UpdateGraphqlApiRequest', ], 'output' => [ 'shape' => 'UpdateGraphqlApiResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'UpdateResolver' => [ 'name' => 'UpdateResolver', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}', ], 'input' => [ 'shape' => 'UpdateResolverRequest', ], 'output' => [ 'shape' => 'UpdateResolverResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'UpdateType' => [ 'name' => 'UpdateType', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apis/{apiId}/types/{typeName}', ], 'input' => [ 'shape' => 'UpdateTypeRequest', ], 'output' => [ 'shape' => 'UpdateTypeResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], ], 'shapes' => [ 'ApiKey' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'expires' => [ 'shape' => 'Long', ], ], ], 'ApiKeyLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ApiKeyValidityOutOfBoundsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ApiKeys' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApiKey', ], ], 'ApiLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'AuthenticationType' => [ 'type' => 'string', 'enum' => [ 'API_KEY', 'AWS_IAM', 'AMAZON_COGNITO_USER_POOLS', 'OPENID_CONNECT', ], ], 'AuthorizationConfig' => [ 'type' => 'structure', 'required' => [ 'authorizationType', ], 'members' => [ 'authorizationType' => [ 'shape' => 'AuthorizationType', ], 'awsIamConfig' => [ 'shape' => 'AwsIamConfig', ], ], ], 'AuthorizationType' => [ 'type' => 'string', 'enum' => [ 'AWS_IAM', ], ], 'AwsIamConfig' => [ 'type' => 'structure', 'members' => [ 'signingRegion' => [ 'shape' => 'String', ], 'signingServiceName' => [ 'shape' => 'String', ], ], ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'Blob' => [ 'type' => 'blob', ], 'Boolean' => [ 'type' => 'boolean', ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'CreateApiKeyRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'description' => [ 'shape' => 'String', ], 'expires' => [ 'shape' => 'Long', ], ], ], 'CreateApiKeyResponse' => [ 'type' => 'structure', 'members' => [ 'apiKey' => [ 'shape' => 'ApiKey', ], ], ], 'CreateDataSourceRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'name', 'type', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'name' => [ 'shape' => 'ResourceName', ], 'description' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'DataSourceType', ], 'serviceRoleArn' => [ 'shape' => 'String', ], 'dynamodbConfig' => [ 'shape' => 'DynamodbDataSourceConfig', ], 'lambdaConfig' => [ 'shape' => 'LambdaDataSourceConfig', ], 'elasticsearchConfig' => [ 'shape' => 'ElasticsearchDataSourceConfig', ], 'httpConfig' => [ 'shape' => 'HttpDataSourceConfig', ], 'relationalDatabaseConfig' => [ 'shape' => 'RelationalDatabaseDataSourceConfig', ], ], ], 'CreateDataSourceResponse' => [ 'type' => 'structure', 'members' => [ 'dataSource' => [ 'shape' => 'DataSource', ], ], ], 'CreateFunctionRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'name', 'dataSourceName', 'requestMappingTemplate', 'functionVersion', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'name' => [ 'shape' => 'ResourceName', ], 'description' => [ 'shape' => 'String', ], 'dataSourceName' => [ 'shape' => 'ResourceName', ], 'requestMappingTemplate' => [ 'shape' => 'MappingTemplate', ], 'responseMappingTemplate' => [ 'shape' => 'MappingTemplate', ], 'functionVersion' => [ 'shape' => 'String', ], ], ], 'CreateFunctionResponse' => [ 'type' => 'structure', 'members' => [ 'functionConfiguration' => [ 'shape' => 'FunctionConfiguration', ], ], ], 'CreateGraphqlApiRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'authenticationType', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'logConfig' => [ 'shape' => 'LogConfig', ], 'authenticationType' => [ 'shape' => 'AuthenticationType', ], 'userPoolConfig' => [ 'shape' => 'UserPoolConfig', ], 'openIDConnectConfig' => [ 'shape' => 'OpenIDConnectConfig', ], ], ], 'CreateGraphqlApiResponse' => [ 'type' => 'structure', 'members' => [ 'graphqlApi' => [ 'shape' => 'GraphqlApi', ], ], ], 'CreateResolverRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'typeName', 'fieldName', 'requestMappingTemplate', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'typeName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'typeName', ], 'fieldName' => [ 'shape' => 'ResourceName', ], 'dataSourceName' => [ 'shape' => 'ResourceName', ], 'requestMappingTemplate' => [ 'shape' => 'MappingTemplate', ], 'responseMappingTemplate' => [ 'shape' => 'MappingTemplate', ], 'kind' => [ 'shape' => 'ResolverKind', ], 'pipelineConfig' => [ 'shape' => 'PipelineConfig', ], ], ], 'CreateResolverResponse' => [ 'type' => 'structure', 'members' => [ 'resolver' => [ 'shape' => 'Resolver', ], ], ], 'CreateTypeRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'definition', 'format', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'definition' => [ 'shape' => 'String', ], 'format' => [ 'shape' => 'TypeDefinitionFormat', ], ], ], 'CreateTypeResponse' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'Type', ], ], ], 'DataSource' => [ 'type' => 'structure', 'members' => [ 'dataSourceArn' => [ 'shape' => 'String', ], 'name' => [ 'shape' => 'ResourceName', ], 'description' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'DataSourceType', ], 'serviceRoleArn' => [ 'shape' => 'String', ], 'dynamodbConfig' => [ 'shape' => 'DynamodbDataSourceConfig', ], 'lambdaConfig' => [ 'shape' => 'LambdaDataSourceConfig', ], 'elasticsearchConfig' => [ 'shape' => 'ElasticsearchDataSourceConfig', ], 'httpConfig' => [ 'shape' => 'HttpDataSourceConfig', ], 'relationalDatabaseConfig' => [ 'shape' => 'RelationalDatabaseDataSourceConfig', ], ], ], 'DataSourceType' => [ 'type' => 'string', 'enum' => [ 'AWS_LAMBDA', 'AMAZON_DYNAMODB', 'AMAZON_ELASTICSEARCH', 'NONE', 'HTTP', 'RELATIONAL_DATABASE', ], ], 'DataSources' => [ 'type' => 'list', 'member' => [ 'shape' => 'DataSource', ], ], 'DefaultAction' => [ 'type' => 'string', 'enum' => [ 'ALLOW', 'DENY', ], ], 'DeleteApiKeyRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'id', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'id' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'id', ], ], ], 'DeleteApiKeyResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteDataSourceRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'name', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'name' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'name', ], ], ], 'DeleteDataSourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteFunctionRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'functionId', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'functionId' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'functionId', ], ], ], 'DeleteFunctionResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteGraphqlApiRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], ], ], 'DeleteGraphqlApiResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteResolverRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'typeName', 'fieldName', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'typeName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'typeName', ], 'fieldName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'fieldName', ], ], ], 'DeleteResolverResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteTypeRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'typeName', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'typeName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'typeName', ], ], ], 'DeleteTypeResponse' => [ 'type' => 'structure', 'members' => [], ], 'DynamodbDataSourceConfig' => [ 'type' => 'structure', 'required' => [ 'tableName', 'awsRegion', ], 'members' => [ 'tableName' => [ 'shape' => 'String', ], 'awsRegion' => [ 'shape' => 'String', ], 'useCallerCredentials' => [ 'shape' => 'Boolean', ], ], ], 'ElasticsearchDataSourceConfig' => [ 'type' => 'structure', 'required' => [ 'endpoint', 'awsRegion', ], 'members' => [ 'endpoint' => [ 'shape' => 'String', ], 'awsRegion' => [ 'shape' => 'String', ], ], ], 'ErrorMessage' => [ 'type' => 'string', ], 'FieldLogLevel' => [ 'type' => 'string', 'enum' => [ 'NONE', 'ERROR', 'ALL', ], ], 'FunctionConfiguration' => [ 'type' => 'structure', 'members' => [ 'functionId' => [ 'shape' => 'String', ], 'functionArn' => [ 'shape' => 'String', ], 'name' => [ 'shape' => 'ResourceName', ], 'description' => [ 'shape' => 'String', ], 'dataSourceName' => [ 'shape' => 'ResourceName', ], 'requestMappingTemplate' => [ 'shape' => 'MappingTemplate', ], 'responseMappingTemplate' => [ 'shape' => 'MappingTemplate', ], 'functionVersion' => [ 'shape' => 'String', ], ], ], 'Functions' => [ 'type' => 'list', 'member' => [ 'shape' => 'FunctionConfiguration', ], ], 'FunctionsIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'GetDataSourceRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'name', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'name' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'name', ], ], ], 'GetDataSourceResponse' => [ 'type' => 'structure', 'members' => [ 'dataSource' => [ 'shape' => 'DataSource', ], ], ], 'GetFunctionRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'functionId', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'functionId' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'functionId', ], ], ], 'GetFunctionResponse' => [ 'type' => 'structure', 'members' => [ 'functionConfiguration' => [ 'shape' => 'FunctionConfiguration', ], ], ], 'GetGraphqlApiRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], ], ], 'GetGraphqlApiResponse' => [ 'type' => 'structure', 'members' => [ 'graphqlApi' => [ 'shape' => 'GraphqlApi', ], ], ], 'GetIntrospectionSchemaRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'format', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'format' => [ 'shape' => 'OutputType', 'location' => 'querystring', 'locationName' => 'format', ], ], ], 'GetIntrospectionSchemaResponse' => [ 'type' => 'structure', 'members' => [ 'schema' => [ 'shape' => 'Blob', ], ], 'payload' => 'schema', ], 'GetResolverRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'typeName', 'fieldName', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'typeName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'typeName', ], 'fieldName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'fieldName', ], ], ], 'GetResolverResponse' => [ 'type' => 'structure', 'members' => [ 'resolver' => [ 'shape' => 'Resolver', ], ], ], 'GetSchemaCreationStatusRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], ], ], 'GetSchemaCreationStatusResponse' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'SchemaStatus', ], 'details' => [ 'shape' => 'String', ], ], ], 'GetTypeRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'typeName', 'format', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'typeName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'typeName', ], 'format' => [ 'shape' => 'TypeDefinitionFormat', 'location' => 'querystring', 'locationName' => 'format', ], ], ], 'GetTypeResponse' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'Type', ], ], ], 'GraphQLSchemaException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'GraphqlApi' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ResourceName', ], 'apiId' => [ 'shape' => 'String', ], 'authenticationType' => [ 'shape' => 'AuthenticationType', ], 'logConfig' => [ 'shape' => 'LogConfig', ], 'userPoolConfig' => [ 'shape' => 'UserPoolConfig', ], 'openIDConnectConfig' => [ 'shape' => 'OpenIDConnectConfig', ], 'arn' => [ 'shape' => 'String', ], 'uris' => [ 'shape' => 'MapOfStringToString', ], ], ], 'GraphqlApis' => [ 'type' => 'list', 'member' => [ 'shape' => 'GraphqlApi', ], ], 'HttpDataSourceConfig' => [ 'type' => 'structure', 'members' => [ 'endpoint' => [ 'shape' => 'String', ], 'authorizationConfig' => [ 'shape' => 'AuthorizationConfig', ], ], ], 'InternalFailureException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'LambdaDataSourceConfig' => [ 'type' => 'structure', 'required' => [ 'lambdaFunctionArn', ], 'members' => [ 'lambdaFunctionArn' => [ 'shape' => 'String', ], ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'ListApiKeysRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'nextToken' => [ 'shape' => 'PaginationToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListApiKeysResponse' => [ 'type' => 'structure', 'members' => [ 'apiKeys' => [ 'shape' => 'ApiKeys', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListDataSourcesRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'nextToken' => [ 'shape' => 'PaginationToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListDataSourcesResponse' => [ 'type' => 'structure', 'members' => [ 'dataSources' => [ 'shape' => 'DataSources', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListFunctionsRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'nextToken' => [ 'shape' => 'PaginationToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListFunctionsResponse' => [ 'type' => 'structure', 'members' => [ 'functions' => [ 'shape' => 'Functions', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListGraphqlApisRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'PaginationToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListGraphqlApisResponse' => [ 'type' => 'structure', 'members' => [ 'graphqlApis' => [ 'shape' => 'GraphqlApis', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListResolversByFunctionRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'functionId', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'functionId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'functionId', ], 'nextToken' => [ 'shape' => 'PaginationToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListResolversByFunctionResponse' => [ 'type' => 'structure', 'members' => [ 'resolvers' => [ 'shape' => 'Resolvers', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListResolversRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'typeName', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'typeName' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'typeName', ], 'nextToken' => [ 'shape' => 'PaginationToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListResolversResponse' => [ 'type' => 'structure', 'members' => [ 'resolvers' => [ 'shape' => 'Resolvers', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListTypesRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'format', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'format' => [ 'shape' => 'TypeDefinitionFormat', 'location' => 'querystring', 'locationName' => 'format', ], 'nextToken' => [ 'shape' => 'PaginationToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListTypesResponse' => [ 'type' => 'structure', 'members' => [ 'types' => [ 'shape' => 'TypeList', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'LogConfig' => [ 'type' => 'structure', 'required' => [ 'fieldLogLevel', 'cloudWatchLogsRoleArn', ], 'members' => [ 'fieldLogLevel' => [ 'shape' => 'FieldLogLevel', ], 'cloudWatchLogsRoleArn' => [ 'shape' => 'String', ], ], ], 'Long' => [ 'type' => 'long', ], 'MapOfStringToString' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'MappingTemplate' => [ 'type' => 'string', 'max' => 65536, 'min' => 1, ], 'MaxResults' => [ 'type' => 'integer', 'max' => 25, 'min' => 0, ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'OpenIDConnectConfig' => [ 'type' => 'structure', 'required' => [ 'issuer', ], 'members' => [ 'issuer' => [ 'shape' => 'String', ], 'clientId' => [ 'shape' => 'String', ], 'iatTTL' => [ 'shape' => 'Long', ], 'authTTL' => [ 'shape' => 'Long', ], ], ], 'OutputType' => [ 'type' => 'string', 'enum' => [ 'SDL', 'JSON', ], ], 'PaginationToken' => [ 'type' => 'string', 'pattern' => '[\\\\S]+', ], 'PipelineConfig' => [ 'type' => 'structure', 'members' => [ 'functions' => [ 'shape' => 'FunctionsIds', ], ], ], 'RdsHttpEndpointConfig' => [ 'type' => 'structure', 'members' => [ 'awsRegion' => [ 'shape' => 'String', ], 'dbClusterIdentifier' => [ 'shape' => 'String', ], 'databaseName' => [ 'shape' => 'String', ], 'schema' => [ 'shape' => 'String', ], 'awsSecretStoreArn' => [ 'shape' => 'String', ], ], ], 'RelationalDatabaseDataSourceConfig' => [ 'type' => 'structure', 'members' => [ 'relationalDatabaseSourceType' => [ 'shape' => 'RelationalDatabaseSourceType', ], 'rdsHttpEndpointConfig' => [ 'shape' => 'RdsHttpEndpointConfig', ], ], ], 'RelationalDatabaseSourceType' => [ 'type' => 'string', 'enum' => [ 'RDS_HTTP_ENDPOINT', ], ], 'Resolver' => [ 'type' => 'structure', 'members' => [ 'typeName' => [ 'shape' => 'ResourceName', ], 'fieldName' => [ 'shape' => 'ResourceName', ], 'dataSourceName' => [ 'shape' => 'ResourceName', ], 'resolverArn' => [ 'shape' => 'String', ], 'requestMappingTemplate' => [ 'shape' => 'MappingTemplate', ], 'responseMappingTemplate' => [ 'shape' => 'MappingTemplate', ], 'kind' => [ 'shape' => 'ResolverKind', ], 'pipelineConfig' => [ 'shape' => 'PipelineConfig', ], ], ], 'ResolverKind' => [ 'type' => 'string', 'enum' => [ 'UNIT', 'PIPELINE', ], ], 'Resolvers' => [ 'type' => 'list', 'member' => [ 'shape' => 'Resolver', ], ], 'ResourceName' => [ 'type' => 'string', 'pattern' => '[_A-Za-z][_0-9A-Za-z]*', ], 'SchemaStatus' => [ 'type' => 'string', 'enum' => [ 'PROCESSING', 'ACTIVE', 'DELETING', ], ], 'StartSchemaCreationRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'definition', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'definition' => [ 'shape' => 'Blob', ], ], ], 'StartSchemaCreationResponse' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'SchemaStatus', ], ], ], 'String' => [ 'type' => 'string', ], 'Type' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ResourceName', ], 'description' => [ 'shape' => 'String', ], 'arn' => [ 'shape' => 'String', ], 'definition' => [ 'shape' => 'String', ], 'format' => [ 'shape' => 'TypeDefinitionFormat', ], ], ], 'TypeDefinitionFormat' => [ 'type' => 'string', 'enum' => [ 'SDL', 'JSON', ], ], 'TypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Type', ], ], 'UnauthorizedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 401, ], 'exception' => true, ], 'UpdateApiKeyRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'id', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'id' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'id', ], 'description' => [ 'shape' => 'String', ], 'expires' => [ 'shape' => 'Long', ], ], ], 'UpdateApiKeyResponse' => [ 'type' => 'structure', 'members' => [ 'apiKey' => [ 'shape' => 'ApiKey', ], ], ], 'UpdateDataSourceRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'name', 'type', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'name' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'name', ], 'description' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'DataSourceType', ], 'serviceRoleArn' => [ 'shape' => 'String', ], 'dynamodbConfig' => [ 'shape' => 'DynamodbDataSourceConfig', ], 'lambdaConfig' => [ 'shape' => 'LambdaDataSourceConfig', ], 'elasticsearchConfig' => [ 'shape' => 'ElasticsearchDataSourceConfig', ], 'httpConfig' => [ 'shape' => 'HttpDataSourceConfig', ], 'relationalDatabaseConfig' => [ 'shape' => 'RelationalDatabaseDataSourceConfig', ], ], ], 'UpdateDataSourceResponse' => [ 'type' => 'structure', 'members' => [ 'dataSource' => [ 'shape' => 'DataSource', ], ], ], 'UpdateFunctionRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'name', 'functionId', 'dataSourceName', 'requestMappingTemplate', 'functionVersion', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'name' => [ 'shape' => 'ResourceName', ], 'description' => [ 'shape' => 'String', ], 'functionId' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'functionId', ], 'dataSourceName' => [ 'shape' => 'ResourceName', ], 'requestMappingTemplate' => [ 'shape' => 'MappingTemplate', ], 'responseMappingTemplate' => [ 'shape' => 'MappingTemplate', ], 'functionVersion' => [ 'shape' => 'String', ], ], ], 'UpdateFunctionResponse' => [ 'type' => 'structure', 'members' => [ 'functionConfiguration' => [ 'shape' => 'FunctionConfiguration', ], ], ], 'UpdateGraphqlApiRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'name', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'name' => [ 'shape' => 'String', ], 'logConfig' => [ 'shape' => 'LogConfig', ], 'authenticationType' => [ 'shape' => 'AuthenticationType', ], 'userPoolConfig' => [ 'shape' => 'UserPoolConfig', ], 'openIDConnectConfig' => [ 'shape' => 'OpenIDConnectConfig', ], ], ], 'UpdateGraphqlApiResponse' => [ 'type' => 'structure', 'members' => [ 'graphqlApi' => [ 'shape' => 'GraphqlApi', ], ], ], 'UpdateResolverRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'typeName', 'fieldName', 'requestMappingTemplate', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'typeName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'typeName', ], 'fieldName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'fieldName', ], 'dataSourceName' => [ 'shape' => 'ResourceName', ], 'requestMappingTemplate' => [ 'shape' => 'MappingTemplate', ], 'responseMappingTemplate' => [ 'shape' => 'MappingTemplate', ], 'kind' => [ 'shape' => 'ResolverKind', ], 'pipelineConfig' => [ 'shape' => 'PipelineConfig', ], ], ], 'UpdateResolverResponse' => [ 'type' => 'structure', 'members' => [ 'resolver' => [ 'shape' => 'Resolver', ], ], ], 'UpdateTypeRequest' => [ 'type' => 'structure', 'required' => [ 'apiId', 'typeName', 'format', ], 'members' => [ 'apiId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'apiId', ], 'typeName' => [ 'shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'typeName', ], 'definition' => [ 'shape' => 'String', ], 'format' => [ 'shape' => 'TypeDefinitionFormat', ], ], ], 'UpdateTypeResponse' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'Type', ], ], ], 'UserPoolConfig' => [ 'type' => 'structure', 'required' => [ 'userPoolId', 'awsRegion', 'defaultAction', ], 'members' => [ 'userPoolId' => [ 'shape' => 'String', ], 'awsRegion' => [ 'shape' => 'String', ], 'defaultAction' => [ 'shape' => 'DefaultAction', ], 'appIdClientRegex' => [ 'shape' => 'String', ], ], ], ],]; diff --git a/lib/aws/Aws/data/appsync/2017-07-25/paginators-1.json.php b/lib/aws/Aws/data/appsync/2017-07-25/paginators-1.json.php new file mode 100644 index 0000000..3c3b432 --- /dev/null +++ b/lib/aws/Aws/data/appsync/2017-07-25/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/appsync/2017-07-25/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/athena/2017-05-18/api-2.json.php b/lib/aws/Aws/data/athena/2017-05-18/api-2.json.php new file mode 100644 index 0000000..a998014 --- /dev/null +++ b/lib/aws/Aws/data/athena/2017-05-18/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/athena/2017-05-18/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-05-18', 'endpointPrefix' => 'athena', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Amazon Athena', 'serviceId' => 'Athena', 'signatureVersion' => 'v4', 'targetPrefix' => 'AmazonAthena', 'uid' => 'athena-2017-05-18', ], 'operations' => [ 'BatchGetNamedQuery' => [ 'name' => 'BatchGetNamedQuery', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetNamedQueryInput', ], 'output' => [ 'shape' => 'BatchGetNamedQueryOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'BatchGetQueryExecution' => [ 'name' => 'BatchGetQueryExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetQueryExecutionInput', ], 'output' => [ 'shape' => 'BatchGetQueryExecutionOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'CreateNamedQuery' => [ 'name' => 'CreateNamedQuery', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNamedQueryInput', ], 'output' => [ 'shape' => 'CreateNamedQueryOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], 'idempotent' => true, ], 'CreateWorkGroup' => [ 'name' => 'CreateWorkGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateWorkGroupInput', ], 'output' => [ 'shape' => 'CreateWorkGroupOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DeleteNamedQuery' => [ 'name' => 'DeleteNamedQuery', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNamedQueryInput', ], 'output' => [ 'shape' => 'DeleteNamedQueryOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], 'idempotent' => true, ], 'DeleteWorkGroup' => [ 'name' => 'DeleteWorkGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteWorkGroupInput', ], 'output' => [ 'shape' => 'DeleteWorkGroupOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], 'idempotent' => true, ], 'GetNamedQuery' => [ 'name' => 'GetNamedQuery', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetNamedQueryInput', ], 'output' => [ 'shape' => 'GetNamedQueryOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'GetQueryExecution' => [ 'name' => 'GetQueryExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetQueryExecutionInput', ], 'output' => [ 'shape' => 'GetQueryExecutionOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'GetQueryResults' => [ 'name' => 'GetQueryResults', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetQueryResultsInput', ], 'output' => [ 'shape' => 'GetQueryResultsOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'GetWorkGroup' => [ 'name' => 'GetWorkGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetWorkGroupInput', ], 'output' => [ 'shape' => 'GetWorkGroupOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ListNamedQueries' => [ 'name' => 'ListNamedQueries', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListNamedQueriesInput', ], 'output' => [ 'shape' => 'ListNamedQueriesOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ListQueryExecutions' => [ 'name' => 'ListQueryExecutions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListQueryExecutionsInput', ], 'output' => [ 'shape' => 'ListQueryExecutionsOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceInput', ], 'output' => [ 'shape' => 'ListTagsForResourceOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListWorkGroups' => [ 'name' => 'ListWorkGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListWorkGroupsInput', ], 'output' => [ 'shape' => 'ListWorkGroupsOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'StartQueryExecution' => [ 'name' => 'StartQueryExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartQueryExecutionInput', ], 'output' => [ 'shape' => 'StartQueryExecutionOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'idempotent' => true, ], 'StopQueryExecution' => [ 'name' => 'StopQueryExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopQueryExecutionInput', ], 'output' => [ 'shape' => 'StopQueryExecutionOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], 'idempotent' => true, ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceInput', ], 'output' => [ 'shape' => 'TagResourceOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceInput', ], 'output' => [ 'shape' => 'UntagResourceOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateWorkGroup' => [ 'name' => 'UpdateWorkGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateWorkGroupInput', ], 'output' => [ 'shape' => 'UpdateWorkGroupOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], ], 'shapes' => [ 'AmazonResourceName' => [ 'type' => 'string', 'max' => 1011, 'min' => 1, ], 'BatchGetNamedQueryInput' => [ 'type' => 'structure', 'required' => [ 'NamedQueryIds', ], 'members' => [ 'NamedQueryIds' => [ 'shape' => 'NamedQueryIdList', ], ], ], 'BatchGetNamedQueryOutput' => [ 'type' => 'structure', 'members' => [ 'NamedQueries' => [ 'shape' => 'NamedQueryList', ], 'UnprocessedNamedQueryIds' => [ 'shape' => 'UnprocessedNamedQueryIdList', ], ], ], 'BatchGetQueryExecutionInput' => [ 'type' => 'structure', 'required' => [ 'QueryExecutionIds', ], 'members' => [ 'QueryExecutionIds' => [ 'shape' => 'QueryExecutionIdList', ], ], ], 'BatchGetQueryExecutionOutput' => [ 'type' => 'structure', 'members' => [ 'QueryExecutions' => [ 'shape' => 'QueryExecutionList', ], 'UnprocessedQueryExecutionIds' => [ 'shape' => 'UnprocessedQueryExecutionIdList', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'BoxedBoolean' => [ 'type' => 'boolean', ], 'BytesScannedCutoffValue' => [ 'type' => 'long', 'min' => 10000000, ], 'ColumnInfo' => [ 'type' => 'structure', 'required' => [ 'Name', 'Type', ], 'members' => [ 'CatalogName' => [ 'shape' => 'String', ], 'SchemaName' => [ 'shape' => 'String', ], 'TableName' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], 'Label' => [ 'shape' => 'String', ], 'Type' => [ 'shape' => 'String', ], 'Precision' => [ 'shape' => 'Integer', ], 'Scale' => [ 'shape' => 'Integer', ], 'Nullable' => [ 'shape' => 'ColumnNullable', ], 'CaseSensitive' => [ 'shape' => 'Boolean', ], ], ], 'ColumnInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ColumnInfo', ], ], 'ColumnNullable' => [ 'type' => 'string', 'enum' => [ 'NOT_NULL', 'NULLABLE', 'UNKNOWN', ], ], 'CreateNamedQueryInput' => [ 'type' => 'structure', 'required' => [ 'Name', 'Database', 'QueryString', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Description' => [ 'shape' => 'DescriptionString', ], 'Database' => [ 'shape' => 'DatabaseString', ], 'QueryString' => [ 'shape' => 'QueryString', ], 'ClientRequestToken' => [ 'shape' => 'IdempotencyToken', 'idempotencyToken' => true, ], 'WorkGroup' => [ 'shape' => 'WorkGroupName', ], ], ], 'CreateNamedQueryOutput' => [ 'type' => 'structure', 'members' => [ 'NamedQueryId' => [ 'shape' => 'NamedQueryId', ], ], ], 'CreateWorkGroupInput' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'WorkGroupName', ], 'Configuration' => [ 'shape' => 'WorkGroupConfiguration', ], 'Description' => [ 'shape' => 'WorkGroupDescriptionString', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateWorkGroupOutput' => [ 'type' => 'structure', 'members' => [], ], 'DatabaseString' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'Date' => [ 'type' => 'timestamp', ], 'Datum' => [ 'type' => 'structure', 'members' => [ 'VarCharValue' => [ 'shape' => 'datumString', ], ], ], 'DeleteNamedQueryInput' => [ 'type' => 'structure', 'required' => [ 'NamedQueryId', ], 'members' => [ 'NamedQueryId' => [ 'shape' => 'NamedQueryId', 'idempotencyToken' => true, ], ], ], 'DeleteNamedQueryOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeleteWorkGroupInput' => [ 'type' => 'structure', 'required' => [ 'WorkGroup', ], 'members' => [ 'WorkGroup' => [ 'shape' => 'WorkGroupName', ], 'RecursiveDeleteOption' => [ 'shape' => 'BoxedBoolean', ], ], ], 'DeleteWorkGroupOutput' => [ 'type' => 'structure', 'members' => [], ], 'DescriptionString' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'EncryptionConfiguration' => [ 'type' => 'structure', 'required' => [ 'EncryptionOption', ], 'members' => [ 'EncryptionOption' => [ 'shape' => 'EncryptionOption', ], 'KmsKey' => [ 'shape' => 'String', ], ], ], 'EncryptionOption' => [ 'type' => 'string', 'enum' => [ 'SSE_S3', 'SSE_KMS', 'CSE_KMS', ], ], 'ErrorCode' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'ErrorMessage' => [ 'type' => 'string', ], 'GetNamedQueryInput' => [ 'type' => 'structure', 'required' => [ 'NamedQueryId', ], 'members' => [ 'NamedQueryId' => [ 'shape' => 'NamedQueryId', ], ], ], 'GetNamedQueryOutput' => [ 'type' => 'structure', 'members' => [ 'NamedQuery' => [ 'shape' => 'NamedQuery', ], ], ], 'GetQueryExecutionInput' => [ 'type' => 'structure', 'required' => [ 'QueryExecutionId', ], 'members' => [ 'QueryExecutionId' => [ 'shape' => 'QueryExecutionId', ], ], ], 'GetQueryExecutionOutput' => [ 'type' => 'structure', 'members' => [ 'QueryExecution' => [ 'shape' => 'QueryExecution', ], ], ], 'GetQueryResultsInput' => [ 'type' => 'structure', 'required' => [ 'QueryExecutionId', ], 'members' => [ 'QueryExecutionId' => [ 'shape' => 'QueryExecutionId', ], 'NextToken' => [ 'shape' => 'Token', ], 'MaxResults' => [ 'shape' => 'MaxQueryResults', ], ], ], 'GetQueryResultsOutput' => [ 'type' => 'structure', 'members' => [ 'UpdateCount' => [ 'shape' => 'Long', ], 'ResultSet' => [ 'shape' => 'ResultSet', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'GetWorkGroupInput' => [ 'type' => 'structure', 'required' => [ 'WorkGroup', ], 'members' => [ 'WorkGroup' => [ 'shape' => 'WorkGroupName', ], ], ], 'GetWorkGroupOutput' => [ 'type' => 'structure', 'members' => [ 'WorkGroup' => [ 'shape' => 'WorkGroup', ], ], ], 'IdempotencyToken' => [ 'type' => 'string', 'max' => 128, 'min' => 32, ], 'Integer' => [ 'type' => 'integer', ], 'InternalServerException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, 'fault' => true, ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'AthenaErrorCode' => [ 'shape' => 'ErrorCode', ], 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ListNamedQueriesInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'Token', ], 'MaxResults' => [ 'shape' => 'MaxNamedQueriesCount', ], 'WorkGroup' => [ 'shape' => 'WorkGroupName', ], ], ], 'ListNamedQueriesOutput' => [ 'type' => 'structure', 'members' => [ 'NamedQueryIds' => [ 'shape' => 'NamedQueryIdList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'ListQueryExecutionsInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'Token', ], 'MaxResults' => [ 'shape' => 'MaxQueryExecutionsCount', ], 'WorkGroup' => [ 'shape' => 'WorkGroupName', ], ], ], 'ListQueryExecutionsOutput' => [ 'type' => 'structure', 'members' => [ 'QueryExecutionIds' => [ 'shape' => 'QueryExecutionIdList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'ListTagsForResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'AmazonResourceName', ], 'NextToken' => [ 'shape' => 'Token', ], 'MaxResults' => [ 'shape' => 'MaxTagsCount', ], ], ], 'ListTagsForResourceOutput' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'ListWorkGroupsInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'Token', ], 'MaxResults' => [ 'shape' => 'MaxWorkGroupsCount', ], ], ], 'ListWorkGroupsOutput' => [ 'type' => 'structure', 'members' => [ 'WorkGroups' => [ 'shape' => 'WorkGroupsList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'Long' => [ 'type' => 'long', ], 'MaxNamedQueriesCount' => [ 'type' => 'integer', 'box' => true, 'max' => 50, 'min' => 0, ], 'MaxQueryExecutionsCount' => [ 'type' => 'integer', 'box' => true, 'max' => 50, 'min' => 0, ], 'MaxQueryResults' => [ 'type' => 'integer', 'box' => true, 'max' => 1000, 'min' => 0, ], 'MaxTagsCount' => [ 'type' => 'integer', 'box' => true, 'min' => 75, ], 'MaxWorkGroupsCount' => [ 'type' => 'integer', 'box' => true, 'max' => 50, 'min' => 1, ], 'NameString' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'NamedQuery' => [ 'type' => 'structure', 'required' => [ 'Name', 'Database', 'QueryString', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Description' => [ 'shape' => 'DescriptionString', ], 'Database' => [ 'shape' => 'DatabaseString', ], 'QueryString' => [ 'shape' => 'QueryString', ], 'NamedQueryId' => [ 'shape' => 'NamedQueryId', ], 'WorkGroup' => [ 'shape' => 'WorkGroupName', ], ], ], 'NamedQueryId' => [ 'type' => 'string', ], 'NamedQueryIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NamedQueryId', ], 'max' => 50, 'min' => 1, ], 'NamedQueryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NamedQuery', ], ], 'QueryExecution' => [ 'type' => 'structure', 'members' => [ 'QueryExecutionId' => [ 'shape' => 'QueryExecutionId', ], 'Query' => [ 'shape' => 'QueryString', ], 'StatementType' => [ 'shape' => 'StatementType', ], 'ResultConfiguration' => [ 'shape' => 'ResultConfiguration', ], 'QueryExecutionContext' => [ 'shape' => 'QueryExecutionContext', ], 'Status' => [ 'shape' => 'QueryExecutionStatus', ], 'Statistics' => [ 'shape' => 'QueryExecutionStatistics', ], 'WorkGroup' => [ 'shape' => 'WorkGroupName', ], ], ], 'QueryExecutionContext' => [ 'type' => 'structure', 'members' => [ 'Database' => [ 'shape' => 'DatabaseString', ], ], ], 'QueryExecutionId' => [ 'type' => 'string', ], 'QueryExecutionIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'QueryExecutionId', ], 'max' => 50, 'min' => 1, ], 'QueryExecutionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'QueryExecution', ], ], 'QueryExecutionState' => [ 'type' => 'string', 'enum' => [ 'QUEUED', 'RUNNING', 'SUCCEEDED', 'FAILED', 'CANCELLED', ], ], 'QueryExecutionStatistics' => [ 'type' => 'structure', 'members' => [ 'EngineExecutionTimeInMillis' => [ 'shape' => 'Long', ], 'DataScannedInBytes' => [ 'shape' => 'Long', ], ], ], 'QueryExecutionStatus' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'QueryExecutionState', ], 'StateChangeReason' => [ 'shape' => 'String', ], 'SubmissionDateTime' => [ 'shape' => 'Date', ], 'CompletionDateTime' => [ 'shape' => 'Date', ], ], ], 'QueryString' => [ 'type' => 'string', 'max' => 262144, 'min' => 1, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], 'ResourceName' => [ 'shape' => 'AmazonResourceName', ], ], 'exception' => true, ], 'ResultConfiguration' => [ 'type' => 'structure', 'members' => [ 'OutputLocation' => [ 'shape' => 'String', ], 'EncryptionConfiguration' => [ 'shape' => 'EncryptionConfiguration', ], ], ], 'ResultConfigurationUpdates' => [ 'type' => 'structure', 'members' => [ 'OutputLocation' => [ 'shape' => 'String', ], 'RemoveOutputLocation' => [ 'shape' => 'BoxedBoolean', ], 'EncryptionConfiguration' => [ 'shape' => 'EncryptionConfiguration', ], 'RemoveEncryptionConfiguration' => [ 'shape' => 'BoxedBoolean', ], ], ], 'ResultSet' => [ 'type' => 'structure', 'members' => [ 'Rows' => [ 'shape' => 'RowList', ], 'ResultSetMetadata' => [ 'shape' => 'ResultSetMetadata', ], ], ], 'ResultSetMetadata' => [ 'type' => 'structure', 'members' => [ 'ColumnInfo' => [ 'shape' => 'ColumnInfoList', ], ], ], 'Row' => [ 'type' => 'structure', 'members' => [ 'Data' => [ 'shape' => 'datumList', ], ], ], 'RowList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Row', ], ], 'StartQueryExecutionInput' => [ 'type' => 'structure', 'required' => [ 'QueryString', ], 'members' => [ 'QueryString' => [ 'shape' => 'QueryString', ], 'ClientRequestToken' => [ 'shape' => 'IdempotencyToken', 'idempotencyToken' => true, ], 'QueryExecutionContext' => [ 'shape' => 'QueryExecutionContext', ], 'ResultConfiguration' => [ 'shape' => 'ResultConfiguration', ], 'WorkGroup' => [ 'shape' => 'WorkGroupName', ], ], ], 'StartQueryExecutionOutput' => [ 'type' => 'structure', 'members' => [ 'QueryExecutionId' => [ 'shape' => 'QueryExecutionId', ], ], ], 'StatementType' => [ 'type' => 'string', 'enum' => [ 'DDL', 'DML', 'UTILITY', ], ], 'StopQueryExecutionInput' => [ 'type' => 'structure', 'required' => [ 'QueryExecutionId', ], 'members' => [ 'QueryExecutionId' => [ 'shape' => 'QueryExecutionId', 'idempotencyToken' => true, ], ], ], 'StopQueryExecutionOutput' => [ 'type' => 'structure', 'members' => [], ], 'String' => [ 'type' => 'string', ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', 'Tags', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'AmazonResourceName', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceOutput' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'ThrottleReason' => [ 'type' => 'string', 'enum' => [ 'CONCURRENT_QUERY_LIMIT_EXCEEDED', ], ], 'Token' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], 'Reason' => [ 'shape' => 'ThrottleReason', ], ], 'exception' => true, ], 'UnprocessedNamedQueryId' => [ 'type' => 'structure', 'members' => [ 'NamedQueryId' => [ 'shape' => 'NamedQueryId', ], 'ErrorCode' => [ 'shape' => 'ErrorCode', ], 'ErrorMessage' => [ 'shape' => 'ErrorMessage', ], ], ], 'UnprocessedNamedQueryIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UnprocessedNamedQueryId', ], ], 'UnprocessedQueryExecutionId' => [ 'type' => 'structure', 'members' => [ 'QueryExecutionId' => [ 'shape' => 'QueryExecutionId', ], 'ErrorCode' => [ 'shape' => 'ErrorCode', ], 'ErrorMessage' => [ 'shape' => 'ErrorMessage', ], ], ], 'UnprocessedQueryExecutionIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UnprocessedQueryExecutionId', ], ], 'UntagResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', 'TagKeys', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'AmazonResourceName', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagResourceOutput' => [ 'type' => 'structure', 'members' => [], ], 'UpdateWorkGroupInput' => [ 'type' => 'structure', 'required' => [ 'WorkGroup', ], 'members' => [ 'WorkGroup' => [ 'shape' => 'WorkGroupName', ], 'Description' => [ 'shape' => 'WorkGroupDescriptionString', ], 'ConfigurationUpdates' => [ 'shape' => 'WorkGroupConfigurationUpdates', ], 'State' => [ 'shape' => 'WorkGroupState', ], ], ], 'UpdateWorkGroupOutput' => [ 'type' => 'structure', 'members' => [], ], 'WorkGroup' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'WorkGroupName', ], 'State' => [ 'shape' => 'WorkGroupState', ], 'Configuration' => [ 'shape' => 'WorkGroupConfiguration', ], 'Description' => [ 'shape' => 'WorkGroupDescriptionString', ], 'CreationTime' => [ 'shape' => 'Date', ], ], ], 'WorkGroupConfiguration' => [ 'type' => 'structure', 'members' => [ 'ResultConfiguration' => [ 'shape' => 'ResultConfiguration', ], 'EnforceWorkGroupConfiguration' => [ 'shape' => 'BoxedBoolean', ], 'PublishCloudWatchMetricsEnabled' => [ 'shape' => 'BoxedBoolean', ], 'BytesScannedCutoffPerQuery' => [ 'shape' => 'BytesScannedCutoffValue', ], ], ], 'WorkGroupConfigurationUpdates' => [ 'type' => 'structure', 'members' => [ 'EnforceWorkGroupConfiguration' => [ 'shape' => 'BoxedBoolean', ], 'ResultConfigurationUpdates' => [ 'shape' => 'ResultConfigurationUpdates', ], 'PublishCloudWatchMetricsEnabled' => [ 'shape' => 'BoxedBoolean', ], 'BytesScannedCutoffPerQuery' => [ 'shape' => 'BytesScannedCutoffValue', ], 'RemoveBytesScannedCutoffPerQuery' => [ 'shape' => 'BoxedBoolean', ], ], ], 'WorkGroupDescriptionString' => [ 'type' => 'string', 'max' => 1024, 'min' => 0, ], 'WorkGroupName' => [ 'type' => 'string', 'pattern' => '[a-zA-z0-9._-]{1,128}', ], 'WorkGroupState' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'WorkGroupSummary' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'WorkGroupName', ], 'State' => [ 'shape' => 'WorkGroupState', ], 'Description' => [ 'shape' => 'WorkGroupDescriptionString', ], 'CreationTime' => [ 'shape' => 'Date', ], ], ], 'WorkGroupsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WorkGroupSummary', ], 'max' => 50, 'min' => 0, ], 'datumList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Datum', ], ], 'datumString' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/athena/2017-05-18/paginators-1.json.php b/lib/aws/Aws/data/athena/2017-05-18/paginators-1.json.php new file mode 100644 index 0000000..9d1efb3 --- /dev/null +++ b/lib/aws/Aws/data/athena/2017-05-18/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/athena/2017-05-18/paginators-1.json +return [ 'pagination' => [ 'GetQueryResults' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListNamedQueries' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListQueryExecutions' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListWorkGroups' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/athena/2017-05-18/smoke.json.php b/lib/aws/Aws/data/athena/2017-05-18/smoke.json.php new file mode 100644 index 0000000..4afd458 --- /dev/null +++ b/lib/aws/Aws/data/athena/2017-05-18/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/athena/2017-05-18/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListNamedQueries', 'input' => [], 'errorExpectedFromService' => false, ], ],]; diff --git a/lib/aws/Aws/data/autoscaling-plans/2018-01-06/api-2.json.php b/lib/aws/Aws/data/autoscaling-plans/2018-01-06/api-2.json.php new file mode 100644 index 0000000..fad0b01 --- /dev/null +++ b/lib/aws/Aws/data/autoscaling-plans/2018-01-06/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/autoscaling-plans/2018-01-06/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-01-06', 'endpointPrefix' => 'autoscaling', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWS Auto Scaling Plans', 'serviceId' => 'Auto Scaling Plans', 'signatureVersion' => 'v4', 'signingName' => 'autoscaling-plans', 'targetPrefix' => 'AnyScaleScalingPlannerFrontendService', 'uid' => 'autoscaling-plans-2018-01-06', ], 'operations' => [ 'CreateScalingPlan' => [ 'name' => 'CreateScalingPlan', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateScalingPlanRequest', ], 'output' => [ 'shape' => 'CreateScalingPlanResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ConcurrentUpdateException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DeleteScalingPlan' => [ 'name' => 'DeleteScalingPlan', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteScalingPlanRequest', ], 'output' => [ 'shape' => 'DeleteScalingPlanResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ObjectNotFoundException', ], [ 'shape' => 'ConcurrentUpdateException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DescribeScalingPlanResources' => [ 'name' => 'DescribeScalingPlanResources', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScalingPlanResourcesRequest', ], 'output' => [ 'shape' => 'DescribeScalingPlanResourcesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ConcurrentUpdateException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DescribeScalingPlans' => [ 'name' => 'DescribeScalingPlans', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScalingPlansRequest', ], 'output' => [ 'shape' => 'DescribeScalingPlansResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ConcurrentUpdateException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'GetScalingPlanResourceForecastData' => [ 'name' => 'GetScalingPlanResourceForecastData', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetScalingPlanResourceForecastDataRequest', ], 'output' => [ 'shape' => 'GetScalingPlanResourceForecastDataResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'UpdateScalingPlan' => [ 'name' => 'UpdateScalingPlan', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateScalingPlanRequest', ], 'output' => [ 'shape' => 'UpdateScalingPlanResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConcurrentUpdateException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'ObjectNotFoundException', ], ], ], ], 'shapes' => [ 'ApplicationSource' => [ 'type' => 'structure', 'members' => [ 'CloudFormationStackARN' => [ 'shape' => 'XmlString', ], 'TagFilters' => [ 'shape' => 'TagFilters', ], ], ], 'ApplicationSources' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApplicationSource', ], ], 'ConcurrentUpdateException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'Cooldown' => [ 'type' => 'integer', ], 'CreateScalingPlanRequest' => [ 'type' => 'structure', 'required' => [ 'ScalingPlanName', 'ApplicationSource', 'ScalingInstructions', ], 'members' => [ 'ScalingPlanName' => [ 'shape' => 'ScalingPlanName', ], 'ApplicationSource' => [ 'shape' => 'ApplicationSource', ], 'ScalingInstructions' => [ 'shape' => 'ScalingInstructions', ], ], ], 'CreateScalingPlanResponse' => [ 'type' => 'structure', 'required' => [ 'ScalingPlanVersion', ], 'members' => [ 'ScalingPlanVersion' => [ 'shape' => 'ScalingPlanVersion', ], ], ], 'CustomizedLoadMetricSpecification' => [ 'type' => 'structure', 'required' => [ 'MetricName', 'Namespace', 'Statistic', ], 'members' => [ 'MetricName' => [ 'shape' => 'MetricName', ], 'Namespace' => [ 'shape' => 'MetricNamespace', ], 'Dimensions' => [ 'shape' => 'MetricDimensions', ], 'Statistic' => [ 'shape' => 'MetricStatistic', ], 'Unit' => [ 'shape' => 'MetricUnit', ], ], ], 'CustomizedScalingMetricSpecification' => [ 'type' => 'structure', 'required' => [ 'MetricName', 'Namespace', 'Statistic', ], 'members' => [ 'MetricName' => [ 'shape' => 'MetricName', ], 'Namespace' => [ 'shape' => 'MetricNamespace', ], 'Dimensions' => [ 'shape' => 'MetricDimensions', ], 'Statistic' => [ 'shape' => 'MetricStatistic', ], 'Unit' => [ 'shape' => 'MetricUnit', ], ], ], 'Datapoint' => [ 'type' => 'structure', 'members' => [ 'Timestamp' => [ 'shape' => 'TimestampType', ], 'Value' => [ 'shape' => 'MetricScale', ], ], ], 'Datapoints' => [ 'type' => 'list', 'member' => [ 'shape' => 'Datapoint', ], ], 'DeleteScalingPlanRequest' => [ 'type' => 'structure', 'required' => [ 'ScalingPlanName', 'ScalingPlanVersion', ], 'members' => [ 'ScalingPlanName' => [ 'shape' => 'ScalingPlanName', ], 'ScalingPlanVersion' => [ 'shape' => 'ScalingPlanVersion', ], ], ], 'DeleteScalingPlanResponse' => [ 'type' => 'structure', 'members' => [], ], 'DescribeScalingPlanResourcesRequest' => [ 'type' => 'structure', 'required' => [ 'ScalingPlanName', 'ScalingPlanVersion', ], 'members' => [ 'ScalingPlanName' => [ 'shape' => 'ScalingPlanName', ], 'ScalingPlanVersion' => [ 'shape' => 'ScalingPlanVersion', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeScalingPlanResourcesResponse' => [ 'type' => 'structure', 'members' => [ 'ScalingPlanResources' => [ 'shape' => 'ScalingPlanResources', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeScalingPlansRequest' => [ 'type' => 'structure', 'members' => [ 'ScalingPlanNames' => [ 'shape' => 'ScalingPlanNames', ], 'ScalingPlanVersion' => [ 'shape' => 'ScalingPlanVersion', ], 'ApplicationSources' => [ 'shape' => 'ApplicationSources', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeScalingPlansResponse' => [ 'type' => 'structure', 'members' => [ 'ScalingPlans' => [ 'shape' => 'ScalingPlans', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DisableDynamicScaling' => [ 'type' => 'boolean', ], 'DisableScaleIn' => [ 'type' => 'boolean', ], 'ErrorMessage' => [ 'type' => 'string', ], 'ForecastDataType' => [ 'type' => 'string', 'enum' => [ 'CapacityForecast', 'LoadForecast', 'ScheduledActionMinCapacity', 'ScheduledActionMaxCapacity', ], ], 'GetScalingPlanResourceForecastDataRequest' => [ 'type' => 'structure', 'required' => [ 'ScalingPlanName', 'ScalingPlanVersion', 'ServiceNamespace', 'ResourceId', 'ScalableDimension', 'ForecastDataType', 'StartTime', 'EndTime', ], 'members' => [ 'ScalingPlanName' => [ 'shape' => 'ScalingPlanName', ], 'ScalingPlanVersion' => [ 'shape' => 'ScalingPlanVersion', ], 'ServiceNamespace' => [ 'shape' => 'ServiceNamespace', ], 'ResourceId' => [ 'shape' => 'XmlString', ], 'ScalableDimension' => [ 'shape' => 'ScalableDimension', ], 'ForecastDataType' => [ 'shape' => 'ForecastDataType', ], 'StartTime' => [ 'shape' => 'TimestampType', ], 'EndTime' => [ 'shape' => 'TimestampType', ], ], ], 'GetScalingPlanResourceForecastDataResponse' => [ 'type' => 'structure', 'required' => [ 'Datapoints', ], 'members' => [ 'Datapoints' => [ 'shape' => 'Datapoints', ], ], ], 'InternalServiceException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'LoadMetricType' => [ 'type' => 'string', 'enum' => [ 'ASGTotalCPUUtilization', 'ASGTotalNetworkIn', 'ASGTotalNetworkOut', 'ALBTargetGroupRequestCount', ], ], 'MaxResults' => [ 'type' => 'integer', ], 'MetricDimension' => [ 'type' => 'structure', 'required' => [ 'Name', 'Value', ], 'members' => [ 'Name' => [ 'shape' => 'MetricDimensionName', ], 'Value' => [ 'shape' => 'MetricDimensionValue', ], ], ], 'MetricDimensionName' => [ 'type' => 'string', ], 'MetricDimensionValue' => [ 'type' => 'string', ], 'MetricDimensions' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricDimension', ], ], 'MetricName' => [ 'type' => 'string', ], 'MetricNamespace' => [ 'type' => 'string', ], 'MetricScale' => [ 'type' => 'double', ], 'MetricStatistic' => [ 'type' => 'string', 'enum' => [ 'Average', 'Minimum', 'Maximum', 'SampleCount', 'Sum', ], ], 'MetricUnit' => [ 'type' => 'string', ], 'NextToken' => [ 'type' => 'string', ], 'ObjectNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'PolicyName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '\\p{Print}+', ], 'PolicyType' => [ 'type' => 'string', 'enum' => [ 'TargetTrackingScaling', ], ], 'PredefinedLoadMetricSpecification' => [ 'type' => 'structure', 'required' => [ 'PredefinedLoadMetricType', ], 'members' => [ 'PredefinedLoadMetricType' => [ 'shape' => 'LoadMetricType', ], 'ResourceLabel' => [ 'shape' => 'ResourceLabel', ], ], ], 'PredefinedScalingMetricSpecification' => [ 'type' => 'structure', 'required' => [ 'PredefinedScalingMetricType', ], 'members' => [ 'PredefinedScalingMetricType' => [ 'shape' => 'ScalingMetricType', ], 'ResourceLabel' => [ 'shape' => 'ResourceLabel', ], ], ], 'PredictiveScalingMaxCapacityBehavior' => [ 'type' => 'string', 'enum' => [ 'SetForecastCapacityToMaxCapacity', 'SetMaxCapacityToForecastCapacity', 'SetMaxCapacityAboveForecastCapacity', ], ], 'PredictiveScalingMode' => [ 'type' => 'string', 'enum' => [ 'ForecastAndScale', 'ForecastOnly', ], ], 'ResourceCapacity' => [ 'type' => 'integer', ], 'ResourceIdMaxLen1600' => [ 'type' => 'string', 'max' => 1600, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'ResourceLabel' => [ 'type' => 'string', 'max' => 1023, 'min' => 1, ], 'ScalableDimension' => [ 'type' => 'string', 'enum' => [ 'autoscaling:autoScalingGroup:DesiredCapacity', 'ecs:service:DesiredCount', 'ec2:spot-fleet-request:TargetCapacity', 'rds:cluster:ReadReplicaCount', 'dynamodb:table:ReadCapacityUnits', 'dynamodb:table:WriteCapacityUnits', 'dynamodb:index:ReadCapacityUnits', 'dynamodb:index:WriteCapacityUnits', ], ], 'ScalingInstruction' => [ 'type' => 'structure', 'required' => [ 'ServiceNamespace', 'ResourceId', 'ScalableDimension', 'MinCapacity', 'MaxCapacity', 'TargetTrackingConfigurations', ], 'members' => [ 'ServiceNamespace' => [ 'shape' => 'ServiceNamespace', ], 'ResourceId' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'ScalableDimension' => [ 'shape' => 'ScalableDimension', ], 'MinCapacity' => [ 'shape' => 'ResourceCapacity', ], 'MaxCapacity' => [ 'shape' => 'ResourceCapacity', ], 'TargetTrackingConfigurations' => [ 'shape' => 'TargetTrackingConfigurations', ], 'PredefinedLoadMetricSpecification' => [ 'shape' => 'PredefinedLoadMetricSpecification', ], 'CustomizedLoadMetricSpecification' => [ 'shape' => 'CustomizedLoadMetricSpecification', ], 'ScheduledActionBufferTime' => [ 'shape' => 'ScheduledActionBufferTime', ], 'PredictiveScalingMaxCapacityBehavior' => [ 'shape' => 'PredictiveScalingMaxCapacityBehavior', ], 'PredictiveScalingMaxCapacityBuffer' => [ 'shape' => 'ResourceCapacity', ], 'PredictiveScalingMode' => [ 'shape' => 'PredictiveScalingMode', ], 'ScalingPolicyUpdateBehavior' => [ 'shape' => 'ScalingPolicyUpdateBehavior', ], 'DisableDynamicScaling' => [ 'shape' => 'DisableDynamicScaling', ], ], ], 'ScalingInstructions' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScalingInstruction', ], ], 'ScalingMetricType' => [ 'type' => 'string', 'enum' => [ 'ASGAverageCPUUtilization', 'ASGAverageNetworkIn', 'ASGAverageNetworkOut', 'DynamoDBReadCapacityUtilization', 'DynamoDBWriteCapacityUtilization', 'ECSServiceAverageCPUUtilization', 'ECSServiceAverageMemoryUtilization', 'ALBRequestCountPerTarget', 'RDSReaderAverageCPUUtilization', 'RDSReaderAverageDatabaseConnections', 'EC2SpotFleetRequestAverageCPUUtilization', 'EC2SpotFleetRequestAverageNetworkIn', 'EC2SpotFleetRequestAverageNetworkOut', ], ], 'ScalingPlan' => [ 'type' => 'structure', 'required' => [ 'ScalingPlanName', 'ScalingPlanVersion', 'ApplicationSource', 'ScalingInstructions', 'StatusCode', ], 'members' => [ 'ScalingPlanName' => [ 'shape' => 'ScalingPlanName', ], 'ScalingPlanVersion' => [ 'shape' => 'ScalingPlanVersion', ], 'ApplicationSource' => [ 'shape' => 'ApplicationSource', ], 'ScalingInstructions' => [ 'shape' => 'ScalingInstructions', ], 'StatusCode' => [ 'shape' => 'ScalingPlanStatusCode', ], 'StatusMessage' => [ 'shape' => 'XmlString', ], 'StatusStartTime' => [ 'shape' => 'TimestampType', ], 'CreationTime' => [ 'shape' => 'TimestampType', ], ], ], 'ScalingPlanName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\p{Print}&&[^|:/]]+', ], 'ScalingPlanNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScalingPlanName', ], ], 'ScalingPlanResource' => [ 'type' => 'structure', 'required' => [ 'ScalingPlanName', 'ScalingPlanVersion', 'ServiceNamespace', 'ResourceId', 'ScalableDimension', 'ScalingStatusCode', ], 'members' => [ 'ScalingPlanName' => [ 'shape' => 'ScalingPlanName', ], 'ScalingPlanVersion' => [ 'shape' => 'ScalingPlanVersion', ], 'ServiceNamespace' => [ 'shape' => 'ServiceNamespace', ], 'ResourceId' => [ 'shape' => 'ResourceIdMaxLen1600', ], 'ScalableDimension' => [ 'shape' => 'ScalableDimension', ], 'ScalingPolicies' => [ 'shape' => 'ScalingPolicies', ], 'ScalingStatusCode' => [ 'shape' => 'ScalingStatusCode', ], 'ScalingStatusMessage' => [ 'shape' => 'XmlString', ], ], ], 'ScalingPlanResources' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScalingPlanResource', ], ], 'ScalingPlanStatusCode' => [ 'type' => 'string', 'enum' => [ 'Active', 'ActiveWithProblems', 'CreationInProgress', 'CreationFailed', 'DeletionInProgress', 'DeletionFailed', 'UpdateInProgress', 'UpdateFailed', ], ], 'ScalingPlanVersion' => [ 'type' => 'long', ], 'ScalingPlans' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScalingPlan', ], ], 'ScalingPolicies' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScalingPolicy', ], ], 'ScalingPolicy' => [ 'type' => 'structure', 'required' => [ 'PolicyName', 'PolicyType', ], 'members' => [ 'PolicyName' => [ 'shape' => 'PolicyName', ], 'PolicyType' => [ 'shape' => 'PolicyType', ], 'TargetTrackingConfiguration' => [ 'shape' => 'TargetTrackingConfiguration', ], ], ], 'ScalingPolicyUpdateBehavior' => [ 'type' => 'string', 'enum' => [ 'KeepExternalPolicies', 'ReplaceExternalPolicies', ], ], 'ScalingStatusCode' => [ 'type' => 'string', 'enum' => [ 'Inactive', 'PartiallyActive', 'Active', ], ], 'ScheduledActionBufferTime' => [ 'type' => 'integer', 'min' => 0, ], 'ServiceNamespace' => [ 'type' => 'string', 'enum' => [ 'autoscaling', 'ecs', 'ec2', 'rds', 'dynamodb', ], ], 'TagFilter' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'XmlStringMaxLen128', ], 'Values' => [ 'shape' => 'TagValues', ], ], ], 'TagFilters' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagFilter', ], ], 'TagValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'XmlStringMaxLen256', ], ], 'TargetTrackingConfiguration' => [ 'type' => 'structure', 'required' => [ 'TargetValue', ], 'members' => [ 'PredefinedScalingMetricSpecification' => [ 'shape' => 'PredefinedScalingMetricSpecification', ], 'CustomizedScalingMetricSpecification' => [ 'shape' => 'CustomizedScalingMetricSpecification', ], 'TargetValue' => [ 'shape' => 'MetricScale', ], 'DisableScaleIn' => [ 'shape' => 'DisableScaleIn', ], 'ScaleOutCooldown' => [ 'shape' => 'Cooldown', ], 'ScaleInCooldown' => [ 'shape' => 'Cooldown', ], 'EstimatedInstanceWarmup' => [ 'shape' => 'Cooldown', ], ], ], 'TargetTrackingConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetTrackingConfiguration', ], ], 'TimestampType' => [ 'type' => 'timestamp', ], 'UpdateScalingPlanRequest' => [ 'type' => 'structure', 'required' => [ 'ScalingPlanName', 'ScalingPlanVersion', ], 'members' => [ 'ScalingPlanName' => [ 'shape' => 'ScalingPlanName', ], 'ScalingPlanVersion' => [ 'shape' => 'ScalingPlanVersion', ], 'ApplicationSource' => [ 'shape' => 'ApplicationSource', ], 'ScalingInstructions' => [ 'shape' => 'ScalingInstructions', ], ], ], 'UpdateScalingPlanResponse' => [ 'type' => 'structure', 'members' => [], ], 'ValidationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'XmlString' => [ 'type' => 'string', 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'XmlStringMaxLen128' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'XmlStringMaxLen256' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], ],]; diff --git a/lib/aws/Aws/data/autoscaling-plans/2018-01-06/paginators-1.json.php b/lib/aws/Aws/data/autoscaling-plans/2018-01-06/paginators-1.json.php new file mode 100644 index 0000000..5c25f72 --- /dev/null +++ b/lib/aws/Aws/data/autoscaling-plans/2018-01-06/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/autoscaling-plans/2018-01-06/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/autoscaling/2011-01-01/api-2.json.php b/lib/aws/Aws/data/autoscaling/2011-01-01/api-2.json.php new file mode 100644 index 0000000..6a96618 --- /dev/null +++ b/lib/aws/Aws/data/autoscaling/2011-01-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/autoscaling/2011-01-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2011-01-01', 'endpointPrefix' => 'autoscaling', 'protocol' => 'query', 'serviceFullName' => 'Auto Scaling', 'serviceId' => 'Auto Scaling', 'signatureVersion' => 'v4', 'uid' => 'autoscaling-2011-01-01', 'xmlNamespace' => 'http://autoscaling.amazonaws.com/doc/2011-01-01/', ], 'operations' => [ 'AttachInstances' => [ 'name' => 'AttachInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachInstancesQuery', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], [ 'shape' => 'ServiceLinkedRoleFailure', ], ], ], 'AttachLoadBalancerTargetGroups' => [ 'name' => 'AttachLoadBalancerTargetGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachLoadBalancerTargetGroupsType', ], 'output' => [ 'shape' => 'AttachLoadBalancerTargetGroupsResultType', 'resultWrapper' => 'AttachLoadBalancerTargetGroupsResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], [ 'shape' => 'ServiceLinkedRoleFailure', ], ], ], 'AttachLoadBalancers' => [ 'name' => 'AttachLoadBalancers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachLoadBalancersType', ], 'output' => [ 'shape' => 'AttachLoadBalancersResultType', 'resultWrapper' => 'AttachLoadBalancersResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], [ 'shape' => 'ServiceLinkedRoleFailure', ], ], ], 'BatchDeleteScheduledAction' => [ 'name' => 'BatchDeleteScheduledAction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchDeleteScheduledActionType', ], 'output' => [ 'shape' => 'BatchDeleteScheduledActionAnswer', 'resultWrapper' => 'BatchDeleteScheduledActionResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'BatchPutScheduledUpdateGroupAction' => [ 'name' => 'BatchPutScheduledUpdateGroupAction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchPutScheduledUpdateGroupActionType', ], 'output' => [ 'shape' => 'BatchPutScheduledUpdateGroupActionAnswer', 'resultWrapper' => 'BatchPutScheduledUpdateGroupActionResult', ], 'errors' => [ [ 'shape' => 'AlreadyExistsFault', ], [ 'shape' => 'LimitExceededFault', ], [ 'shape' => 'ResourceContentionFault', ], ], ], 'CompleteLifecycleAction' => [ 'name' => 'CompleteLifecycleAction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CompleteLifecycleActionType', ], 'output' => [ 'shape' => 'CompleteLifecycleActionAnswer', 'resultWrapper' => 'CompleteLifecycleActionResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'CreateAutoScalingGroup' => [ 'name' => 'CreateAutoScalingGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAutoScalingGroupType', ], 'errors' => [ [ 'shape' => 'AlreadyExistsFault', ], [ 'shape' => 'LimitExceededFault', ], [ 'shape' => 'ResourceContentionFault', ], [ 'shape' => 'ServiceLinkedRoleFailure', ], ], ], 'CreateLaunchConfiguration' => [ 'name' => 'CreateLaunchConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLaunchConfigurationType', ], 'errors' => [ [ 'shape' => 'AlreadyExistsFault', ], [ 'shape' => 'LimitExceededFault', ], [ 'shape' => 'ResourceContentionFault', ], ], ], 'CreateOrUpdateTags' => [ 'name' => 'CreateOrUpdateTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateOrUpdateTagsType', ], 'errors' => [ [ 'shape' => 'LimitExceededFault', ], [ 'shape' => 'AlreadyExistsFault', ], [ 'shape' => 'ResourceContentionFault', ], [ 'shape' => 'ResourceInUseFault', ], ], ], 'DeleteAutoScalingGroup' => [ 'name' => 'DeleteAutoScalingGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAutoScalingGroupType', ], 'errors' => [ [ 'shape' => 'ScalingActivityInProgressFault', ], [ 'shape' => 'ResourceInUseFault', ], [ 'shape' => 'ResourceContentionFault', ], ], ], 'DeleteLaunchConfiguration' => [ 'name' => 'DeleteLaunchConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'LaunchConfigurationNameType', ], 'errors' => [ [ 'shape' => 'ResourceInUseFault', ], [ 'shape' => 'ResourceContentionFault', ], ], ], 'DeleteLifecycleHook' => [ 'name' => 'DeleteLifecycleHook', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLifecycleHookType', ], 'output' => [ 'shape' => 'DeleteLifecycleHookAnswer', 'resultWrapper' => 'DeleteLifecycleHookResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'DeleteNotificationConfiguration' => [ 'name' => 'DeleteNotificationConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNotificationConfigurationType', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'DeletePolicy' => [ 'name' => 'DeletePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePolicyType', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], [ 'shape' => 'ServiceLinkedRoleFailure', ], ], ], 'DeleteScheduledAction' => [ 'name' => 'DeleteScheduledAction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteScheduledActionType', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'DeleteTags' => [ 'name' => 'DeleteTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTagsType', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], [ 'shape' => 'ResourceInUseFault', ], ], ], 'DescribeAccountLimits' => [ 'name' => 'DescribeAccountLimits', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'DescribeAccountLimitsAnswer', 'resultWrapper' => 'DescribeAccountLimitsResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'DescribeAdjustmentTypes' => [ 'name' => 'DescribeAdjustmentTypes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'DescribeAdjustmentTypesAnswer', 'resultWrapper' => 'DescribeAdjustmentTypesResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'DescribeAutoScalingGroups' => [ 'name' => 'DescribeAutoScalingGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AutoScalingGroupNamesType', ], 'output' => [ 'shape' => 'AutoScalingGroupsType', 'resultWrapper' => 'DescribeAutoScalingGroupsResult', ], 'errors' => [ [ 'shape' => 'InvalidNextToken', ], [ 'shape' => 'ResourceContentionFault', ], ], ], 'DescribeAutoScalingInstances' => [ 'name' => 'DescribeAutoScalingInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAutoScalingInstancesType', ], 'output' => [ 'shape' => 'AutoScalingInstancesType', 'resultWrapper' => 'DescribeAutoScalingInstancesResult', ], 'errors' => [ [ 'shape' => 'InvalidNextToken', ], [ 'shape' => 'ResourceContentionFault', ], ], ], 'DescribeAutoScalingNotificationTypes' => [ 'name' => 'DescribeAutoScalingNotificationTypes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'DescribeAutoScalingNotificationTypesAnswer', 'resultWrapper' => 'DescribeAutoScalingNotificationTypesResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'DescribeLaunchConfigurations' => [ 'name' => 'DescribeLaunchConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'LaunchConfigurationNamesType', ], 'output' => [ 'shape' => 'LaunchConfigurationsType', 'resultWrapper' => 'DescribeLaunchConfigurationsResult', ], 'errors' => [ [ 'shape' => 'InvalidNextToken', ], [ 'shape' => 'ResourceContentionFault', ], ], ], 'DescribeLifecycleHookTypes' => [ 'name' => 'DescribeLifecycleHookTypes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'DescribeLifecycleHookTypesAnswer', 'resultWrapper' => 'DescribeLifecycleHookTypesResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'DescribeLifecycleHooks' => [ 'name' => 'DescribeLifecycleHooks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLifecycleHooksType', ], 'output' => [ 'shape' => 'DescribeLifecycleHooksAnswer', 'resultWrapper' => 'DescribeLifecycleHooksResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'DescribeLoadBalancerTargetGroups' => [ 'name' => 'DescribeLoadBalancerTargetGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLoadBalancerTargetGroupsRequest', ], 'output' => [ 'shape' => 'DescribeLoadBalancerTargetGroupsResponse', 'resultWrapper' => 'DescribeLoadBalancerTargetGroupsResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'DescribeLoadBalancers' => [ 'name' => 'DescribeLoadBalancers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLoadBalancersRequest', ], 'output' => [ 'shape' => 'DescribeLoadBalancersResponse', 'resultWrapper' => 'DescribeLoadBalancersResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'DescribeMetricCollectionTypes' => [ 'name' => 'DescribeMetricCollectionTypes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'DescribeMetricCollectionTypesAnswer', 'resultWrapper' => 'DescribeMetricCollectionTypesResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'DescribeNotificationConfigurations' => [ 'name' => 'DescribeNotificationConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNotificationConfigurationsType', ], 'output' => [ 'shape' => 'DescribeNotificationConfigurationsAnswer', 'resultWrapper' => 'DescribeNotificationConfigurationsResult', ], 'errors' => [ [ 'shape' => 'InvalidNextToken', ], [ 'shape' => 'ResourceContentionFault', ], ], ], 'DescribePolicies' => [ 'name' => 'DescribePolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePoliciesType', ], 'output' => [ 'shape' => 'PoliciesType', 'resultWrapper' => 'DescribePoliciesResult', ], 'errors' => [ [ 'shape' => 'InvalidNextToken', ], [ 'shape' => 'ResourceContentionFault', ], [ 'shape' => 'ServiceLinkedRoleFailure', ], ], ], 'DescribeScalingActivities' => [ 'name' => 'DescribeScalingActivities', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScalingActivitiesType', ], 'output' => [ 'shape' => 'ActivitiesType', 'resultWrapper' => 'DescribeScalingActivitiesResult', ], 'errors' => [ [ 'shape' => 'InvalidNextToken', ], [ 'shape' => 'ResourceContentionFault', ], ], ], 'DescribeScalingProcessTypes' => [ 'name' => 'DescribeScalingProcessTypes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'ProcessesType', 'resultWrapper' => 'DescribeScalingProcessTypesResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'DescribeScheduledActions' => [ 'name' => 'DescribeScheduledActions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScheduledActionsType', ], 'output' => [ 'shape' => 'ScheduledActionsType', 'resultWrapper' => 'DescribeScheduledActionsResult', ], 'errors' => [ [ 'shape' => 'InvalidNextToken', ], [ 'shape' => 'ResourceContentionFault', ], ], ], 'DescribeTags' => [ 'name' => 'DescribeTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTagsType', ], 'output' => [ 'shape' => 'TagsType', 'resultWrapper' => 'DescribeTagsResult', ], 'errors' => [ [ 'shape' => 'InvalidNextToken', ], [ 'shape' => 'ResourceContentionFault', ], ], ], 'DescribeTerminationPolicyTypes' => [ 'name' => 'DescribeTerminationPolicyTypes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'DescribeTerminationPolicyTypesAnswer', 'resultWrapper' => 'DescribeTerminationPolicyTypesResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'DetachInstances' => [ 'name' => 'DetachInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachInstancesQuery', ], 'output' => [ 'shape' => 'DetachInstancesAnswer', 'resultWrapper' => 'DetachInstancesResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'DetachLoadBalancerTargetGroups' => [ 'name' => 'DetachLoadBalancerTargetGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachLoadBalancerTargetGroupsType', ], 'output' => [ 'shape' => 'DetachLoadBalancerTargetGroupsResultType', 'resultWrapper' => 'DetachLoadBalancerTargetGroupsResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'DetachLoadBalancers' => [ 'name' => 'DetachLoadBalancers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachLoadBalancersType', ], 'output' => [ 'shape' => 'DetachLoadBalancersResultType', 'resultWrapper' => 'DetachLoadBalancersResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'DisableMetricsCollection' => [ 'name' => 'DisableMetricsCollection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableMetricsCollectionQuery', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'EnableMetricsCollection' => [ 'name' => 'EnableMetricsCollection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableMetricsCollectionQuery', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'EnterStandby' => [ 'name' => 'EnterStandby', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnterStandbyQuery', ], 'output' => [ 'shape' => 'EnterStandbyAnswer', 'resultWrapper' => 'EnterStandbyResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'ExecutePolicy' => [ 'name' => 'ExecutePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExecutePolicyType', ], 'errors' => [ [ 'shape' => 'ScalingActivityInProgressFault', ], [ 'shape' => 'ResourceContentionFault', ], ], ], 'ExitStandby' => [ 'name' => 'ExitStandby', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExitStandbyQuery', ], 'output' => [ 'shape' => 'ExitStandbyAnswer', 'resultWrapper' => 'ExitStandbyResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'PutLifecycleHook' => [ 'name' => 'PutLifecycleHook', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutLifecycleHookType', ], 'output' => [ 'shape' => 'PutLifecycleHookAnswer', 'resultWrapper' => 'PutLifecycleHookResult', ], 'errors' => [ [ 'shape' => 'LimitExceededFault', ], [ 'shape' => 'ResourceContentionFault', ], ], ], 'PutNotificationConfiguration' => [ 'name' => 'PutNotificationConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutNotificationConfigurationType', ], 'errors' => [ [ 'shape' => 'LimitExceededFault', ], [ 'shape' => 'ResourceContentionFault', ], [ 'shape' => 'ServiceLinkedRoleFailure', ], ], ], 'PutScalingPolicy' => [ 'name' => 'PutScalingPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutScalingPolicyType', ], 'output' => [ 'shape' => 'PolicyARNType', 'resultWrapper' => 'PutScalingPolicyResult', ], 'errors' => [ [ 'shape' => 'LimitExceededFault', ], [ 'shape' => 'ResourceContentionFault', ], [ 'shape' => 'ServiceLinkedRoleFailure', ], ], ], 'PutScheduledUpdateGroupAction' => [ 'name' => 'PutScheduledUpdateGroupAction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutScheduledUpdateGroupActionType', ], 'errors' => [ [ 'shape' => 'AlreadyExistsFault', ], [ 'shape' => 'LimitExceededFault', ], [ 'shape' => 'ResourceContentionFault', ], ], ], 'RecordLifecycleActionHeartbeat' => [ 'name' => 'RecordLifecycleActionHeartbeat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RecordLifecycleActionHeartbeatType', ], 'output' => [ 'shape' => 'RecordLifecycleActionHeartbeatAnswer', 'resultWrapper' => 'RecordLifecycleActionHeartbeatResult', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'ResumeProcesses' => [ 'name' => 'ResumeProcesses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ScalingProcessQuery', ], 'errors' => [ [ 'shape' => 'ResourceInUseFault', ], [ 'shape' => 'ResourceContentionFault', ], ], ], 'SetDesiredCapacity' => [ 'name' => 'SetDesiredCapacity', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetDesiredCapacityType', ], 'errors' => [ [ 'shape' => 'ScalingActivityInProgressFault', ], [ 'shape' => 'ResourceContentionFault', ], ], ], 'SetInstanceHealth' => [ 'name' => 'SetInstanceHealth', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetInstanceHealthQuery', ], 'errors' => [ [ 'shape' => 'ResourceContentionFault', ], ], ], 'SetInstanceProtection' => [ 'name' => 'SetInstanceProtection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetInstanceProtectionQuery', ], 'output' => [ 'shape' => 'SetInstanceProtectionAnswer', 'resultWrapper' => 'SetInstanceProtectionResult', ], 'errors' => [ [ 'shape' => 'LimitExceededFault', ], [ 'shape' => 'ResourceContentionFault', ], ], ], 'SuspendProcesses' => [ 'name' => 'SuspendProcesses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ScalingProcessQuery', ], 'errors' => [ [ 'shape' => 'ResourceInUseFault', ], [ 'shape' => 'ResourceContentionFault', ], ], ], 'TerminateInstanceInAutoScalingGroup' => [ 'name' => 'TerminateInstanceInAutoScalingGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TerminateInstanceInAutoScalingGroupType', ], 'output' => [ 'shape' => 'ActivityType', 'resultWrapper' => 'TerminateInstanceInAutoScalingGroupResult', ], 'errors' => [ [ 'shape' => 'ScalingActivityInProgressFault', ], [ 'shape' => 'ResourceContentionFault', ], ], ], 'UpdateAutoScalingGroup' => [ 'name' => 'UpdateAutoScalingGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateAutoScalingGroupType', ], 'errors' => [ [ 'shape' => 'ScalingActivityInProgressFault', ], [ 'shape' => 'ResourceContentionFault', ], [ 'shape' => 'ServiceLinkedRoleFailure', ], ], ], ], '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', 'max' => 255, 'min' => 1, 'pattern' => '[A-Za-z0-9\\-_\\/]+', ], 'AssociatePublicIpAddress' => [ 'type' => 'boolean', ], 'AttachInstancesQuery' => [ 'type' => 'structure', 'required' => [ 'AutoScalingGroupName', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIds', ], 'AutoScalingGroupName' => [ 'shape' => 'ResourceName', ], ], ], 'AttachLoadBalancerTargetGroupsResultType' => [ 'type' => 'structure', 'members' => [], ], 'AttachLoadBalancerTargetGroupsType' => [ 'type' => 'structure', 'required' => [ 'AutoScalingGroupName', 'TargetGroupARNs', ], 'members' => [ 'AutoScalingGroupName' => [ 'shape' => 'ResourceName', ], 'TargetGroupARNs' => [ 'shape' => 'TargetGroupARNs', ], ], ], 'AttachLoadBalancersResultType' => [ 'type' => 'structure', 'members' => [], ], 'AttachLoadBalancersType' => [ 'type' => 'structure', 'required' => [ 'AutoScalingGroupName', 'LoadBalancerNames', ], 'members' => [ 'AutoScalingGroupName' => [ 'shape' => 'ResourceName', ], 'LoadBalancerNames' => [ 'shape' => 'LoadBalancerNames', ], ], ], 'AutoScalingGroup' => [ 'type' => 'structure', 'required' => [ 'AutoScalingGroupName', 'MinSize', 'MaxSize', 'DesiredCapacity', 'DefaultCooldown', 'AvailabilityZones', 'HealthCheckType', 'CreatedTime', ], 'members' => [ 'AutoScalingGroupName' => [ 'shape' => 'XmlStringMaxLen255', ], 'AutoScalingGroupARN' => [ 'shape' => 'ResourceName', ], 'LaunchConfigurationName' => [ 'shape' => 'XmlStringMaxLen255', ], 'LaunchTemplate' => [ 'shape' => 'LaunchTemplateSpecification', ], 'MixedInstancesPolicy' => [ 'shape' => 'MixedInstancesPolicy', ], 'MinSize' => [ 'shape' => 'AutoScalingGroupMinSize', ], 'MaxSize' => [ 'shape' => 'AutoScalingGroupMaxSize', ], 'DesiredCapacity' => [ 'shape' => 'AutoScalingGroupDesiredCapacity', ], 'DefaultCooldown' => [ 'shape' => 'Cooldown', ], 'AvailabilityZones' => [ 'shape' => 'AvailabilityZones', ], 'LoadBalancerNames' => [ 'shape' => 'LoadBalancerNames', ], 'TargetGroupARNs' => [ 'shape' => 'TargetGroupARNs', ], 'HealthCheckType' => [ 'shape' => 'XmlStringMaxLen32', ], 'HealthCheckGracePeriod' => [ 'shape' => 'HealthCheckGracePeriod', ], 'Instances' => [ 'shape' => 'Instances', ], 'CreatedTime' => [ 'shape' => 'TimestampType', ], 'SuspendedProcesses' => [ 'shape' => 'SuspendedProcesses', ], 'PlacementGroup' => [ 'shape' => 'XmlStringMaxLen255', ], 'VPCZoneIdentifier' => [ 'shape' => 'XmlStringMaxLen2047', ], 'EnabledMetrics' => [ 'shape' => 'EnabledMetrics', ], 'Status' => [ 'shape' => 'XmlStringMaxLen255', ], 'Tags' => [ 'shape' => 'TagDescriptionList', ], 'TerminationPolicies' => [ 'shape' => 'TerminationPolicies', ], 'NewInstancesProtectedFromScaleIn' => [ 'shape' => 'InstanceProtected', ], 'ServiceLinkedRoleARN' => [ 'shape' => 'ResourceName', ], ], ], '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', 'ProtectedFromScaleIn', ], 'members' => [ 'InstanceId' => [ 'shape' => 'XmlStringMaxLen19', ], 'AutoScalingGroupName' => [ 'shape' => 'XmlStringMaxLen255', ], 'AvailabilityZone' => [ 'shape' => 'XmlStringMaxLen255', ], 'LifecycleState' => [ 'shape' => 'XmlStringMaxLen32', ], 'HealthStatus' => [ 'shape' => 'XmlStringMaxLen32', ], 'LaunchConfigurationName' => [ 'shape' => 'XmlStringMaxLen255', ], 'LaunchTemplate' => [ 'shape' => 'LaunchTemplateSpecification', ], 'ProtectedFromScaleIn' => [ 'shape' => 'InstanceProtected', ], ], ], '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, ], 'BatchDeleteScheduledActionAnswer' => [ 'type' => 'structure', 'members' => [ 'FailedScheduledActions' => [ 'shape' => 'FailedScheduledUpdateGroupActionRequests', ], ], ], 'BatchDeleteScheduledActionType' => [ 'type' => 'structure', 'required' => [ 'AutoScalingGroupName', 'ScheduledActionNames', ], 'members' => [ 'AutoScalingGroupName' => [ 'shape' => 'ResourceName', ], 'ScheduledActionNames' => [ 'shape' => 'ScheduledActionNames', ], ], ], 'BatchPutScheduledUpdateGroupActionAnswer' => [ 'type' => 'structure', 'members' => [ 'FailedScheduledUpdateGroupActions' => [ 'shape' => 'FailedScheduledUpdateGroupActionRequests', ], ], ], 'BatchPutScheduledUpdateGroupActionType' => [ 'type' => 'structure', 'required' => [ 'AutoScalingGroupName', 'ScheduledUpdateGroupActions', ], 'members' => [ 'AutoScalingGroupName' => [ 'shape' => 'ResourceName', ], 'ScheduledUpdateGroupActions' => [ 'shape' => 'ScheduledUpdateGroupActionRequests', ], ], ], 'BlockDeviceEbsDeleteOnTermination' => [ 'type' => 'boolean', ], 'BlockDeviceEbsEncrypted' => [ 'type' => 'boolean', ], 'BlockDeviceEbsIops' => [ 'type' => 'integer', 'max' => 20000, 'min' => 100, ], 'BlockDeviceEbsVolumeSize' => [ 'type' => 'integer', 'max' => 16384, 'min' => 1, ], 'BlockDeviceEbsVolumeType' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], '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', 'LifecycleActionResult', ], 'members' => [ 'LifecycleHookName' => [ 'shape' => 'AsciiStringMaxLen255', ], 'AutoScalingGroupName' => [ 'shape' => 'ResourceName', ], 'LifecycleActionToken' => [ 'shape' => 'LifecycleActionToken', ], 'LifecycleActionResult' => [ 'shape' => 'LifecycleActionResult', ], 'InstanceId' => [ 'shape' => 'XmlStringMaxLen19', ], ], ], 'Cooldown' => [ 'type' => 'integer', ], 'CreateAutoScalingGroupType' => [ 'type' => 'structure', 'required' => [ 'AutoScalingGroupName', 'MinSize', 'MaxSize', ], 'members' => [ 'AutoScalingGroupName' => [ 'shape' => 'XmlStringMaxLen255', ], 'LaunchConfigurationName' => [ 'shape' => 'ResourceName', ], 'LaunchTemplate' => [ 'shape' => 'LaunchTemplateSpecification', ], 'MixedInstancesPolicy' => [ 'shape' => 'MixedInstancesPolicy', ], 'InstanceId' => [ 'shape' => 'XmlStringMaxLen19', ], 'MinSize' => [ 'shape' => 'AutoScalingGroupMinSize', ], 'MaxSize' => [ 'shape' => 'AutoScalingGroupMaxSize', ], 'DesiredCapacity' => [ 'shape' => 'AutoScalingGroupDesiredCapacity', ], 'DefaultCooldown' => [ 'shape' => 'Cooldown', ], 'AvailabilityZones' => [ 'shape' => 'AvailabilityZones', ], 'LoadBalancerNames' => [ 'shape' => 'LoadBalancerNames', ], 'TargetGroupARNs' => [ 'shape' => 'TargetGroupARNs', ], 'HealthCheckType' => [ 'shape' => 'XmlStringMaxLen32', ], 'HealthCheckGracePeriod' => [ 'shape' => 'HealthCheckGracePeriod', ], 'PlacementGroup' => [ 'shape' => 'XmlStringMaxLen255', ], 'VPCZoneIdentifier' => [ 'shape' => 'XmlStringMaxLen2047', ], 'TerminationPolicies' => [ 'shape' => 'TerminationPolicies', ], 'NewInstancesProtectedFromScaleIn' => [ 'shape' => 'InstanceProtected', ], 'LifecycleHookSpecificationList' => [ 'shape' => 'LifecycleHookSpecifications', ], 'Tags' => [ 'shape' => 'Tags', ], 'ServiceLinkedRoleARN' => [ 'shape' => 'ResourceName', ], ], ], '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' => 'XmlStringMaxLen19', ], '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', ], ], ], 'CustomizedMetricSpecification' => [ 'type' => 'structure', 'required' => [ 'MetricName', 'Namespace', 'Statistic', ], 'members' => [ 'MetricName' => [ 'shape' => 'MetricName', ], 'Namespace' => [ 'shape' => 'MetricNamespace', ], 'Dimensions' => [ 'shape' => 'MetricDimensions', ], 'Statistic' => [ 'shape' => 'MetricStatistic', ], 'Unit' => [ 'shape' => 'MetricUnit', ], ], ], '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' => [ 'AutoScalingGroupName', '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', ], 'NumberOfAutoScalingGroups' => [ 'shape' => 'NumberOfAutoScalingGroups', ], 'NumberOfLaunchConfigurations' => [ 'shape' => 'NumberOfLaunchConfigurations', ], ], ], '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', ], ], ], 'DescribeLoadBalancerTargetGroupsRequest' => [ 'type' => 'structure', 'required' => [ 'AutoScalingGroupName', ], 'members' => [ 'AutoScalingGroupName' => [ 'shape' => 'ResourceName', ], 'NextToken' => [ 'shape' => 'XmlString', ], 'MaxRecords' => [ 'shape' => 'MaxRecords', ], ], ], 'DescribeLoadBalancerTargetGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'LoadBalancerTargetGroups' => [ 'shape' => 'LoadBalancerTargetGroupStates', ], 'NextToken' => [ 'shape' => 'XmlString', ], ], ], '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', ], 'PolicyTypes' => [ 'shape' => 'PolicyTypes', ], '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', ], ], ], 'DetachLoadBalancerTargetGroupsResultType' => [ 'type' => 'structure', 'members' => [], ], 'DetachLoadBalancerTargetGroupsType' => [ 'type' => 'structure', 'required' => [ 'AutoScalingGroupName', 'TargetGroupARNs', ], 'members' => [ 'AutoScalingGroupName' => [ 'shape' => 'ResourceName', ], 'TargetGroupARNs' => [ 'shape' => 'TargetGroupARNs', ], ], ], 'DetachLoadBalancersResultType' => [ 'type' => 'structure', 'members' => [], ], 'DetachLoadBalancersType' => [ 'type' => 'structure', 'required' => [ 'AutoScalingGroupName', 'LoadBalancerNames', ], 'members' => [ 'AutoScalingGroupName' => [ 'shape' => 'ResourceName', ], 'LoadBalancerNames' => [ 'shape' => 'LoadBalancerNames', ], ], ], 'DisableMetricsCollectionQuery' => [ 'type' => 'structure', 'required' => [ 'AutoScalingGroupName', ], 'members' => [ 'AutoScalingGroupName' => [ 'shape' => 'ResourceName', ], 'Metrics' => [ 'shape' => 'Metrics', ], ], ], 'DisableScaleIn' => [ 'type' => 'boolean', ], 'Ebs' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'XmlStringMaxLen255', ], 'VolumeSize' => [ 'shape' => 'BlockDeviceEbsVolumeSize', ], 'VolumeType' => [ 'shape' => 'BlockDeviceEbsVolumeType', ], 'DeleteOnTermination' => [ 'shape' => 'BlockDeviceEbsDeleteOnTermination', ], 'Iops' => [ 'shape' => 'BlockDeviceEbsIops', ], 'Encrypted' => [ 'shape' => 'BlockDeviceEbsEncrypted', ], ], ], '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', ], ], ], 'EstimatedInstanceWarmup' => [ 'type' => 'integer', ], 'ExecutePolicyType' => [ 'type' => 'structure', 'required' => [ 'PolicyName', ], 'members' => [ 'AutoScalingGroupName' => [ 'shape' => 'ResourceName', ], 'PolicyName' => [ 'shape' => 'ResourceName', ], 'HonorCooldown' => [ 'shape' => 'HonorCooldown', ], 'MetricValue' => [ 'shape' => 'MetricScale', ], 'BreachThreshold' => [ 'shape' => 'MetricScale', ], ], ], 'ExitStandbyAnswer' => [ 'type' => 'structure', 'members' => [ 'Activities' => [ 'shape' => 'Activities', ], ], ], 'ExitStandbyQuery' => [ 'type' => 'structure', 'required' => [ 'AutoScalingGroupName', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIds', ], 'AutoScalingGroupName' => [ 'shape' => 'ResourceName', ], ], ], 'FailedScheduledUpdateGroupActionRequest' => [ 'type' => 'structure', 'required' => [ 'ScheduledActionName', ], 'members' => [ 'ScheduledActionName' => [ 'shape' => 'XmlStringMaxLen255', ], 'ErrorCode' => [ 'shape' => 'XmlStringMaxLen64', ], 'ErrorMessage' => [ 'shape' => 'XmlString', ], ], ], 'FailedScheduledUpdateGroupActionRequests' => [ 'type' => 'list', 'member' => [ 'shape' => 'FailedScheduledUpdateGroupActionRequest', ], ], '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', 'ProtectedFromScaleIn', ], 'members' => [ 'InstanceId' => [ 'shape' => 'XmlStringMaxLen19', ], 'AvailabilityZone' => [ 'shape' => 'XmlStringMaxLen255', ], 'LifecycleState' => [ 'shape' => 'LifecycleState', ], 'HealthStatus' => [ 'shape' => 'XmlStringMaxLen32', ], 'LaunchConfigurationName' => [ 'shape' => 'XmlStringMaxLen255', ], 'LaunchTemplate' => [ 'shape' => 'LaunchTemplateSpecification', ], 'ProtectedFromScaleIn' => [ 'shape' => 'InstanceProtected', ], ], ], 'InstanceIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'XmlStringMaxLen19', ], ], 'InstanceMonitoring' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'MonitoringEnabled', ], ], ], 'InstanceProtected' => [ 'type' => 'boolean', ], 'Instances' => [ 'type' => 'list', 'member' => [ 'shape' => 'Instance', ], ], 'InstancesDistribution' => [ 'type' => 'structure', 'members' => [ 'OnDemandAllocationStrategy' => [ 'shape' => 'XmlString', ], 'OnDemandBaseCapacity' => [ 'shape' => 'OnDemandBaseCapacity', ], 'OnDemandPercentageAboveBaseCapacity' => [ 'shape' => 'OnDemandPercentageAboveBaseCapacity', ], 'SpotAllocationStrategy' => [ 'shape' => 'XmlString', ], 'SpotInstancePools' => [ 'shape' => 'SpotInstancePools', ], 'SpotMaxPrice' => [ 'shape' => 'MixedInstanceSpotPrice', ], ], ], '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', ], ], ], 'LaunchTemplate' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateSpecification' => [ 'shape' => 'LaunchTemplateSpecification', ], 'Overrides' => [ 'shape' => 'Overrides', ], ], ], 'LaunchTemplateName' => [ 'type' => 'string', 'max' => 128, 'min' => 3, 'pattern' => '[a-zA-Z0-9\\(\\)\\.-/_]+', ], 'LaunchTemplateOverrides' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'XmlStringMaxLen255', ], ], ], 'LaunchTemplateSpecification' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'XmlStringMaxLen255', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', ], 'Version' => [ 'shape' => 'XmlStringMaxLen255', ], ], ], 'LifecycleActionResult' => [ 'type' => 'string', ], 'LifecycleActionToken' => [ 'type' => 'string', 'max' => 36, 'min' => 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', ], 'max' => 50, ], 'LifecycleHookSpecification' => [ 'type' => 'structure', 'required' => [ 'LifecycleHookName', 'LifecycleTransition', ], 'members' => [ 'LifecycleHookName' => [ 'shape' => 'AsciiStringMaxLen255', ], 'LifecycleTransition' => [ 'shape' => 'LifecycleTransition', ], 'NotificationMetadata' => [ 'shape' => 'XmlStringMaxLen1023', ], 'HeartbeatTimeout' => [ 'shape' => 'HeartbeatTimeout', ], 'DefaultResult' => [ 'shape' => 'LifecycleActionResult', ], 'NotificationTargetARN' => [ 'shape' => 'NotificationTargetResourceName', ], 'RoleARN' => [ 'shape' => 'ResourceName', ], ], ], 'LifecycleHookSpecifications' => [ 'type' => 'list', 'member' => [ 'shape' => 'LifecycleHookSpecification', ], ], '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', ], ], 'LoadBalancerTargetGroupState' => [ 'type' => 'structure', 'members' => [ 'LoadBalancerTargetGroupARN' => [ 'shape' => 'XmlStringMaxLen511', ], 'State' => [ 'shape' => 'XmlStringMaxLen255', ], ], ], 'LoadBalancerTargetGroupStates' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadBalancerTargetGroupState', ], ], 'MaxNumberOfAutoScalingGroups' => [ 'type' => 'integer', ], 'MaxNumberOfLaunchConfigurations' => [ 'type' => 'integer', ], 'MaxRecords' => [ 'type' => 'integer', ], 'MetricCollectionType' => [ 'type' => 'structure', 'members' => [ 'Metric' => [ 'shape' => 'XmlStringMaxLen255', ], ], ], 'MetricCollectionTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricCollectionType', ], ], 'MetricDimension' => [ 'type' => 'structure', 'required' => [ 'Name', 'Value', ], 'members' => [ 'Name' => [ 'shape' => 'MetricDimensionName', ], 'Value' => [ 'shape' => 'MetricDimensionValue', ], ], ], 'MetricDimensionName' => [ 'type' => 'string', ], 'MetricDimensionValue' => [ 'type' => 'string', ], 'MetricDimensions' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricDimension', ], ], 'MetricGranularityType' => [ 'type' => 'structure', 'members' => [ 'Granularity' => [ 'shape' => 'XmlStringMaxLen255', ], ], ], 'MetricGranularityTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricGranularityType', ], ], 'MetricName' => [ 'type' => 'string', ], 'MetricNamespace' => [ 'type' => 'string', ], 'MetricScale' => [ 'type' => 'double', ], 'MetricStatistic' => [ 'type' => 'string', 'enum' => [ 'Average', 'Minimum', 'Maximum', 'SampleCount', 'Sum', ], ], 'MetricType' => [ 'type' => 'string', 'enum' => [ 'ASGAverageCPUUtilization', 'ASGAverageNetworkIn', 'ASGAverageNetworkOut', 'ALBRequestCountPerTarget', ], ], 'MetricUnit' => [ 'type' => 'string', ], 'Metrics' => [ 'type' => 'list', 'member' => [ 'shape' => 'XmlStringMaxLen255', ], ], 'MinAdjustmentMagnitude' => [ 'type' => 'integer', ], 'MinAdjustmentStep' => [ 'type' => 'integer', 'deprecated' => true, ], 'MixedInstanceSpotPrice' => [ 'type' => 'string', 'max' => 255, 'min' => 0, ], 'MixedInstancesPolicy' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplate' => [ 'shape' => 'LaunchTemplate', ], 'InstancesDistribution' => [ 'shape' => 'InstancesDistribution', ], ], ], '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', ], ], 'NotificationTargetResourceName' => [ 'type' => 'string', 'max' => 1600, 'min' => 0, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'NumberOfAutoScalingGroups' => [ 'type' => 'integer', ], 'NumberOfLaunchConfigurations' => [ 'type' => 'integer', ], 'OnDemandBaseCapacity' => [ 'type' => 'integer', ], 'OnDemandPercentageAboveBaseCapacity' => [ 'type' => 'integer', ], 'Overrides' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateOverrides', ], ], 'PoliciesType' => [ 'type' => 'structure', 'members' => [ 'ScalingPolicies' => [ 'shape' => 'ScalingPolicies', ], 'NextToken' => [ 'shape' => 'XmlString', ], ], ], 'PolicyARNType' => [ 'type' => 'structure', 'members' => [ 'PolicyARN' => [ 'shape' => 'ResourceName', ], 'Alarms' => [ 'shape' => 'Alarms', ], ], ], 'PolicyIncrement' => [ 'type' => 'integer', ], 'PolicyNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceName', ], ], 'PolicyTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'XmlStringMaxLen64', ], ], 'PredefinedMetricSpecification' => [ 'type' => 'structure', 'required' => [ 'PredefinedMetricType', ], 'members' => [ 'PredefinedMetricType' => [ 'shape' => 'MetricType', ], 'ResourceLabel' => [ 'shape' => 'XmlStringMaxLen1023', ], ], ], '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', ], 'ProtectedFromScaleIn' => [ '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' => 'NotificationTargetResourceName', ], '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', ], 'members' => [ 'AutoScalingGroupName' => [ 'shape' => 'ResourceName', ], 'PolicyName' => [ 'shape' => 'XmlStringMaxLen255', ], 'PolicyType' => [ 'shape' => 'XmlStringMaxLen64', ], 'AdjustmentType' => [ 'shape' => 'XmlStringMaxLen255', ], 'MinAdjustmentStep' => [ 'shape' => 'MinAdjustmentStep', ], 'MinAdjustmentMagnitude' => [ 'shape' => 'MinAdjustmentMagnitude', ], 'ScalingAdjustment' => [ 'shape' => 'PolicyIncrement', ], 'Cooldown' => [ 'shape' => 'Cooldown', ], 'MetricAggregationType' => [ 'shape' => 'XmlStringMaxLen32', ], 'StepAdjustments' => [ 'shape' => 'StepAdjustments', ], 'EstimatedInstanceWarmup' => [ 'shape' => 'EstimatedInstanceWarmup', ], 'TargetTrackingConfiguration' => [ 'shape' => 'TargetTrackingConfiguration', ], ], ], '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', ], 'members' => [ 'LifecycleHookName' => [ 'shape' => 'AsciiStringMaxLen255', ], 'AutoScalingGroupName' => [ 'shape' => 'ResourceName', ], 'LifecycleActionToken' => [ 'shape' => 'LifecycleActionToken', ], 'InstanceId' => [ 'shape' => 'XmlStringMaxLen19', ], ], ], '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', 'max' => 1600, 'min' => 1, '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' => [ 'PendingSpotBidPlacement', 'WaitingForSpotInstanceRequestId', 'WaitingForSpotInstanceId', 'WaitingForInstanceId', 'PreInService', 'InProgress', 'WaitingForELBConnectionDraining', 'MidLifecycleAction', 'WaitingForInstanceWarmup', 'Successful', 'Failed', 'Cancelled', ], ], 'ScalingPolicies' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScalingPolicy', ], ], 'ScalingPolicy' => [ 'type' => 'structure', 'members' => [ 'AutoScalingGroupName' => [ 'shape' => 'XmlStringMaxLen255', ], 'PolicyName' => [ 'shape' => 'XmlStringMaxLen255', ], 'PolicyARN' => [ 'shape' => 'ResourceName', ], 'PolicyType' => [ 'shape' => 'XmlStringMaxLen64', ], 'AdjustmentType' => [ 'shape' => 'XmlStringMaxLen255', ], 'MinAdjustmentStep' => [ 'shape' => 'MinAdjustmentStep', ], 'MinAdjustmentMagnitude' => [ 'shape' => 'MinAdjustmentMagnitude', ], 'ScalingAdjustment' => [ 'shape' => 'PolicyIncrement', ], 'Cooldown' => [ 'shape' => 'Cooldown', ], 'StepAdjustments' => [ 'shape' => 'StepAdjustments', ], 'MetricAggregationType' => [ 'shape' => 'XmlStringMaxLen32', ], 'EstimatedInstanceWarmup' => [ 'shape' => 'EstimatedInstanceWarmup', ], 'Alarms' => [ 'shape' => 'Alarms', ], 'TargetTrackingConfiguration' => [ 'shape' => 'TargetTrackingConfiguration', ], ], ], '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', ], ], ], 'ScheduledUpdateGroupActionRequest' => [ 'type' => 'structure', 'required' => [ 'ScheduledActionName', ], 'members' => [ 'ScheduledActionName' => [ 'shape' => 'XmlStringMaxLen255', ], 'StartTime' => [ 'shape' => 'TimestampType', ], 'EndTime' => [ 'shape' => 'TimestampType', ], 'Recurrence' => [ 'shape' => 'XmlStringMaxLen255', ], 'MinSize' => [ 'shape' => 'AutoScalingGroupMinSize', ], 'MaxSize' => [ 'shape' => 'AutoScalingGroupMaxSize', ], 'DesiredCapacity' => [ 'shape' => 'AutoScalingGroupDesiredCapacity', ], ], ], 'ScheduledUpdateGroupActionRequests' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledUpdateGroupActionRequest', ], ], 'ScheduledUpdateGroupActions' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledUpdateGroupAction', ], ], 'SecurityGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'XmlString', ], ], 'ServiceLinkedRoleFailure' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'XmlStringMaxLen255', ], ], 'error' => [ 'code' => 'ServiceLinkedRoleFailure', 'httpStatusCode' => 500, 'senderFault' => true, ], 'exception' => true, ], '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' => 'XmlStringMaxLen19', ], 'HealthStatus' => [ 'shape' => 'XmlStringMaxLen32', ], 'ShouldRespectGracePeriod' => [ 'shape' => 'ShouldRespectGracePeriod', ], ], ], 'SetInstanceProtectionAnswer' => [ 'type' => 'structure', 'members' => [], ], 'SetInstanceProtectionQuery' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', 'AutoScalingGroupName', 'ProtectedFromScaleIn', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIds', ], 'AutoScalingGroupName' => [ 'shape' => 'ResourceName', ], 'ProtectedFromScaleIn' => [ 'shape' => 'ProtectedFromScaleIn', ], ], ], 'ShouldDecrementDesiredCapacity' => [ 'type' => 'boolean', ], 'ShouldRespectGracePeriod' => [ 'type' => 'boolean', ], 'SpotInstancePools' => [ 'type' => 'integer', ], 'SpotPrice' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'StepAdjustment' => [ 'type' => 'structure', 'required' => [ 'ScalingAdjustment', ], 'members' => [ 'MetricIntervalLowerBound' => [ 'shape' => 'MetricScale', ], 'MetricIntervalUpperBound' => [ 'shape' => 'MetricScale', ], 'ScalingAdjustment' => [ 'shape' => 'PolicyIncrement', ], ], ], 'StepAdjustments' => [ 'type' => 'list', 'member' => [ 'shape' => 'StepAdjustment', ], ], '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', 'max' => 128, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, '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', ], ], ], 'TargetGroupARNs' => [ 'type' => 'list', 'member' => [ 'shape' => 'XmlStringMaxLen511', ], ], 'TargetTrackingConfiguration' => [ 'type' => 'structure', 'required' => [ 'TargetValue', ], 'members' => [ 'PredefinedMetricSpecification' => [ 'shape' => 'PredefinedMetricSpecification', ], 'CustomizedMetricSpecification' => [ 'shape' => 'CustomizedMetricSpecification', ], 'TargetValue' => [ 'shape' => 'MetricScale', ], 'DisableScaleIn' => [ 'shape' => 'DisableScaleIn', ], ], ], 'TerminateInstanceInAutoScalingGroupType' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'ShouldDecrementDesiredCapacity', ], 'members' => [ 'InstanceId' => [ 'shape' => 'XmlStringMaxLen19', ], 'ShouldDecrementDesiredCapacity' => [ 'shape' => 'ShouldDecrementDesiredCapacity', ], ], ], 'TerminationPolicies' => [ 'type' => 'list', 'member' => [ 'shape' => 'XmlStringMaxLen1600', ], ], 'TimestampType' => [ 'type' => 'timestamp', ], 'UpdateAutoScalingGroupType' => [ 'type' => 'structure', 'required' => [ 'AutoScalingGroupName', ], 'members' => [ 'AutoScalingGroupName' => [ 'shape' => 'ResourceName', ], 'LaunchConfigurationName' => [ 'shape' => 'ResourceName', ], 'LaunchTemplate' => [ 'shape' => 'LaunchTemplateSpecification', ], 'MixedInstancesPolicy' => [ 'shape' => 'MixedInstancesPolicy', ], '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' => 'XmlStringMaxLen2047', ], 'TerminationPolicies' => [ 'shape' => 'TerminationPolicies', ], 'NewInstancesProtectedFromScaleIn' => [ 'shape' => 'InstanceProtected', ], 'ServiceLinkedRoleARN' => [ 'shape' => 'ResourceName', ], ], ], 'Values' => [ 'type' => 'list', 'member' => [ 'shape' => 'XmlString', ], ], 'XmlString' => [ 'type' => 'string', 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'XmlStringMaxLen1023' => [ 'type' => 'string', 'max' => 1023, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'XmlStringMaxLen1600' => [ 'type' => 'string', 'max' => 1600, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'XmlStringMaxLen19' => [ 'type' => 'string', 'max' => 19, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'XmlStringMaxLen2047' => [ 'type' => 'string', 'max' => 2047, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'XmlStringMaxLen255' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'XmlStringMaxLen32' => [ 'type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'XmlStringMaxLen511' => [ 'type' => 'string', 'max' => 511, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'XmlStringMaxLen64' => [ 'type' => 'string', 'max' => 64, 'min' => 1, '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/Aws/data/autoscaling/2011-01-01/paginators-1.json.php b/lib/aws/Aws/data/autoscaling/2011-01-01/paginators-1.json.php new file mode 100644 index 0000000..d182796 --- /dev/null +++ b/lib/aws/Aws/data/autoscaling/2011-01-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/autoscaling/2011-01-01/paginators-1.json +return [ 'pagination' => [ 'DescribeAutoScalingGroups' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxRecords', 'output_token' => 'NextToken', 'result_key' => 'AutoScalingGroups', ], 'DescribeAutoScalingInstances' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxRecords', 'output_token' => 'NextToken', 'result_key' => 'AutoScalingInstances', ], 'DescribeLaunchConfigurations' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxRecords', 'output_token' => 'NextToken', 'result_key' => 'LaunchConfigurations', ], 'DescribeNotificationConfigurations' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxRecords', 'output_token' => 'NextToken', 'result_key' => 'NotificationConfigurations', ], 'DescribePolicies' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxRecords', 'output_token' => 'NextToken', 'result_key' => 'ScalingPolicies', ], 'DescribeScalingActivities' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxRecords', 'output_token' => 'NextToken', 'result_key' => 'Activities', ], 'DescribeScheduledActions' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxRecords', 'output_token' => 'NextToken', 'result_key' => 'ScheduledUpdateGroupActions', ], 'DescribeTags' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxRecords', 'output_token' => 'NextToken', 'result_key' => 'Tags', ], ],]; diff --git a/lib/aws/Aws/data/autoscaling/2011-01-01/smoke.json.php b/lib/aws/Aws/data/autoscaling/2011-01-01/smoke.json.php new file mode 100644 index 0000000..ac230c9 --- /dev/null +++ b/lib/aws/Aws/data/autoscaling/2011-01-01/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/autoscaling/2011-01-01/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeScalingProcessTypes', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'CreateLaunchConfiguration', 'input' => [ 'LaunchConfigurationName' => 'hello, world', 'ImageId' => 'ami-12345678', 'InstanceType' => 'm1.small', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/autoscaling/2011-01-01/waiters-2.json.php b/lib/aws/Aws/data/autoscaling/2011-01-01/waiters-2.json.php new file mode 100644 index 0000000..94b369a --- /dev/null +++ b/lib/aws/Aws/data/autoscaling/2011-01-01/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/autoscaling/2011-01-01/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'GroupExists' => [ 'acceptors' => [ [ 'argument' => 'length(AutoScalingGroups) > `0`', 'expected' => true, 'matcher' => 'path', 'state' => 'success', ], [ 'argument' => 'length(AutoScalingGroups) > `0`', 'expected' => false, 'matcher' => 'path', 'state' => 'retry', ], ], 'delay' => 5, 'maxAttempts' => 10, 'operation' => 'DescribeAutoScalingGroups', ], 'GroupInService' => [ 'acceptors' => [ [ 'argument' => 'contains(AutoScalingGroups[].[length(Instances[?LifecycleState==\'InService\']) >= MinSize][], `false`)', 'expected' => false, 'matcher' => 'path', 'state' => 'success', ], [ 'argument' => 'contains(AutoScalingGroups[].[length(Instances[?LifecycleState==\'InService\']) >= MinSize][], `false`)', 'expected' => true, 'matcher' => 'path', 'state' => 'retry', ], ], 'delay' => 15, 'maxAttempts' => 40, 'operation' => 'DescribeAutoScalingGroups', ], 'GroupNotExists' => [ 'acceptors' => [ [ 'argument' => 'length(AutoScalingGroups) > `0`', 'expected' => false, 'matcher' => 'path', 'state' => 'success', ], [ 'argument' => 'length(AutoScalingGroups) > `0`', 'expected' => true, 'matcher' => 'path', 'state' => 'retry', ], ], 'delay' => 15, 'maxAttempts' => 40, 'operation' => 'DescribeAutoScalingGroups', ], ],]; diff --git a/lib/aws/Aws/data/backup/2018-11-15/api-2.json.php b/lib/aws/Aws/data/backup/2018-11-15/api-2.json.php new file mode 100644 index 0000000..4f0801f --- /dev/null +++ b/lib/aws/Aws/data/backup/2018-11-15/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/backup/2018-11-15/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-11-15', 'endpointPrefix' => 'backup', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceFullName' => 'AWS Backup', 'serviceId' => 'Backup', 'signatureVersion' => 'v4', 'uid' => 'backup-2018-11-15', ], 'operations' => [ 'CreateBackupPlan' => [ 'name' => 'CreateBackupPlan', 'http' => [ 'method' => 'PUT', 'requestUri' => '/backup/plans/', ], 'input' => [ 'shape' => 'CreateBackupPlanInput', ], 'output' => [ 'shape' => 'CreateBackupPlanOutput', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'CreateBackupSelection' => [ 'name' => 'CreateBackupSelection', 'http' => [ 'method' => 'PUT', 'requestUri' => '/backup/plans/{backupPlanId}/selections/', ], 'input' => [ 'shape' => 'CreateBackupSelectionInput', ], 'output' => [ 'shape' => 'CreateBackupSelectionOutput', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'CreateBackupVault' => [ 'name' => 'CreateBackupVault', 'http' => [ 'method' => 'PUT', 'requestUri' => '/backup-vaults/{backupVaultName}', ], 'input' => [ 'shape' => 'CreateBackupVaultInput', ], 'output' => [ 'shape' => 'CreateBackupVaultOutput', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AlreadyExistsException', ], ], 'idempotent' => true, ], 'DeleteBackupPlan' => [ 'name' => 'DeleteBackupPlan', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/backup/plans/{backupPlanId}', ], 'input' => [ 'shape' => 'DeleteBackupPlanInput', ], 'output' => [ 'shape' => 'DeleteBackupPlanOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DeleteBackupSelection' => [ 'name' => 'DeleteBackupSelection', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/backup/plans/{backupPlanId}/selections/{selectionId}', ], 'input' => [ 'shape' => 'DeleteBackupSelectionInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeleteBackupVault' => [ 'name' => 'DeleteBackupVault', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/backup-vaults/{backupVaultName}', ], 'input' => [ 'shape' => 'DeleteBackupVaultInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DeleteBackupVaultAccessPolicy' => [ 'name' => 'DeleteBackupVaultAccessPolicy', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/backup-vaults/{backupVaultName}/access-policy', ], 'input' => [ 'shape' => 'DeleteBackupVaultAccessPolicyInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'DeleteBackupVaultNotifications' => [ 'name' => 'DeleteBackupVaultNotifications', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/backup-vaults/{backupVaultName}/notification-configuration', ], 'input' => [ 'shape' => 'DeleteBackupVaultNotificationsInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'DeleteRecoveryPoint' => [ 'name' => 'DeleteRecoveryPoint', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/backup-vaults/{backupVaultName}/recovery-points/{recoveryPointArn}', ], 'input' => [ 'shape' => 'DeleteRecoveryPointInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InvalidRequestException', ], ], 'idempotent' => true, ], 'DescribeBackupJob' => [ 'name' => 'DescribeBackupJob', 'http' => [ 'method' => 'GET', 'requestUri' => '/backup-jobs/{backupJobId}', ], 'input' => [ 'shape' => 'DescribeBackupJobInput', ], 'output' => [ 'shape' => 'DescribeBackupJobOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'DependencyFailureException', ], ], 'idempotent' => true, ], 'DescribeBackupVault' => [ 'name' => 'DescribeBackupVault', 'http' => [ 'method' => 'GET', 'requestUri' => '/backup-vaults/{backupVaultName}', ], 'input' => [ 'shape' => 'DescribeBackupVaultInput', ], 'output' => [ 'shape' => 'DescribeBackupVaultOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'DescribeProtectedResource' => [ 'name' => 'DescribeProtectedResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/resources/{resourceArn}', ], 'input' => [ 'shape' => 'DescribeProtectedResourceInput', ], 'output' => [ 'shape' => 'DescribeProtectedResourceOutput', ], 'errors' => [ [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ResourceNotFoundException', ], ], 'idempotent' => true, ], 'DescribeRecoveryPoint' => [ 'name' => 'DescribeRecoveryPoint', 'http' => [ 'method' => 'GET', 'requestUri' => '/backup-vaults/{backupVaultName}/recovery-points/{recoveryPointArn}', ], 'input' => [ 'shape' => 'DescribeRecoveryPointInput', ], 'output' => [ 'shape' => 'DescribeRecoveryPointOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'DescribeRestoreJob' => [ 'name' => 'DescribeRestoreJob', 'http' => [ 'method' => 'GET', 'requestUri' => '/restore-jobs/{restoreJobId}', ], 'input' => [ 'shape' => 'DescribeRestoreJobInput', ], 'output' => [ 'shape' => 'DescribeRestoreJobOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'DependencyFailureException', ], ], 'idempotent' => true, ], 'ExportBackupPlanTemplate' => [ 'name' => 'ExportBackupPlanTemplate', 'http' => [ 'method' => 'GET', 'requestUri' => '/backup/plans/{backupPlanId}/toTemplate/', ], 'input' => [ 'shape' => 'ExportBackupPlanTemplateInput', ], 'output' => [ 'shape' => 'ExportBackupPlanTemplateOutput', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'GetBackupPlan' => [ 'name' => 'GetBackupPlan', 'http' => [ 'method' => 'GET', 'requestUri' => '/backup/plans/{backupPlanId}/', ], 'input' => [ 'shape' => 'GetBackupPlanInput', ], 'output' => [ 'shape' => 'GetBackupPlanOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'GetBackupPlanFromJSON' => [ 'name' => 'GetBackupPlanFromJSON', 'http' => [ 'method' => 'POST', 'requestUri' => '/backup/template/json/toPlan', ], 'input' => [ 'shape' => 'GetBackupPlanFromJSONInput', ], 'output' => [ 'shape' => 'GetBackupPlanFromJSONOutput', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'GetBackupPlanFromTemplate' => [ 'name' => 'GetBackupPlanFromTemplate', 'http' => [ 'method' => 'GET', 'requestUri' => '/backup/template/plans/{templateId}/toPlan', ], 'input' => [ 'shape' => 'GetBackupPlanFromTemplateInput', ], 'output' => [ 'shape' => 'GetBackupPlanFromTemplateOutput', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'GetBackupSelection' => [ 'name' => 'GetBackupSelection', 'http' => [ 'method' => 'GET', 'requestUri' => '/backup/plans/{backupPlanId}/selections/{selectionId}', ], 'input' => [ 'shape' => 'GetBackupSelectionInput', ], 'output' => [ 'shape' => 'GetBackupSelectionOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'GetBackupVaultAccessPolicy' => [ 'name' => 'GetBackupVaultAccessPolicy', 'http' => [ 'method' => 'GET', 'requestUri' => '/backup-vaults/{backupVaultName}/access-policy', ], 'input' => [ 'shape' => 'GetBackupVaultAccessPolicyInput', ], 'output' => [ 'shape' => 'GetBackupVaultAccessPolicyOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'GetBackupVaultNotifications' => [ 'name' => 'GetBackupVaultNotifications', 'http' => [ 'method' => 'GET', 'requestUri' => '/backup-vaults/{backupVaultName}/notification-configuration', ], 'input' => [ 'shape' => 'GetBackupVaultNotificationsInput', ], 'output' => [ 'shape' => 'GetBackupVaultNotificationsOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'GetRecoveryPointRestoreMetadata' => [ 'name' => 'GetRecoveryPointRestoreMetadata', 'http' => [ 'method' => 'GET', 'requestUri' => '/backup-vaults/{backupVaultName}/recovery-points/{recoveryPointArn}/restore-metadata', ], 'input' => [ 'shape' => 'GetRecoveryPointRestoreMetadataInput', ], 'output' => [ 'shape' => 'GetRecoveryPointRestoreMetadataOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'GetSupportedResourceTypes' => [ 'name' => 'GetSupportedResourceTypes', 'http' => [ 'method' => 'GET', 'requestUri' => '/supported-resource-types', ], 'output' => [ 'shape' => 'GetSupportedResourceTypesOutput', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ListBackupJobs' => [ 'name' => 'ListBackupJobs', 'http' => [ 'method' => 'GET', 'requestUri' => '/backup-jobs/', ], 'input' => [ 'shape' => 'ListBackupJobsInput', ], 'output' => [ 'shape' => 'ListBackupJobsOutput', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'ListBackupPlanTemplates' => [ 'name' => 'ListBackupPlanTemplates', 'http' => [ 'method' => 'GET', 'requestUri' => '/backup/template/plans', ], 'input' => [ 'shape' => 'ListBackupPlanTemplatesInput', ], 'output' => [ 'shape' => 'ListBackupPlanTemplatesOutput', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListBackupPlanVersions' => [ 'name' => 'ListBackupPlanVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/backup/plans/{backupPlanId}/versions/', ], 'input' => [ 'shape' => 'ListBackupPlanVersionsInput', ], 'output' => [ 'shape' => 'ListBackupPlanVersionsOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'ListBackupPlans' => [ 'name' => 'ListBackupPlans', 'http' => [ 'method' => 'GET', 'requestUri' => '/backup/plans/', ], 'input' => [ 'shape' => 'ListBackupPlansInput', ], 'output' => [ 'shape' => 'ListBackupPlansOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'ListBackupSelections' => [ 'name' => 'ListBackupSelections', 'http' => [ 'method' => 'GET', 'requestUri' => '/backup/plans/{backupPlanId}/selections/', ], 'input' => [ 'shape' => 'ListBackupSelectionsInput', ], 'output' => [ 'shape' => 'ListBackupSelectionsOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'ListBackupVaults' => [ 'name' => 'ListBackupVaults', 'http' => [ 'method' => 'GET', 'requestUri' => '/backup-vaults/', ], 'input' => [ 'shape' => 'ListBackupVaultsInput', ], 'output' => [ 'shape' => 'ListBackupVaultsOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'ListProtectedResources' => [ 'name' => 'ListProtectedResources', 'http' => [ 'method' => 'GET', 'requestUri' => '/resources/', ], 'input' => [ 'shape' => 'ListProtectedResourcesInput', ], 'output' => [ 'shape' => 'ListProtectedResourcesOutput', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'ListRecoveryPointsByBackupVault' => [ 'name' => 'ListRecoveryPointsByBackupVault', 'http' => [ 'method' => 'GET', 'requestUri' => '/backup-vaults/{backupVaultName}/recovery-points/', ], 'input' => [ 'shape' => 'ListRecoveryPointsByBackupVaultInput', ], 'output' => [ 'shape' => 'ListRecoveryPointsByBackupVaultOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'ListRecoveryPointsByResource' => [ 'name' => 'ListRecoveryPointsByResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/resources/{resourceArn}/recovery-points/', ], 'input' => [ 'shape' => 'ListRecoveryPointsByResourceInput', ], 'output' => [ 'shape' => 'ListRecoveryPointsByResourceOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'ListRestoreJobs' => [ 'name' => 'ListRestoreJobs', 'http' => [ 'method' => 'GET', 'requestUri' => '/restore-jobs/', ], 'input' => [ 'shape' => 'ListRestoreJobsInput', ], 'output' => [ 'shape' => 'ListRestoreJobsOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'ListTags' => [ 'name' => 'ListTags', 'http' => [ 'method' => 'GET', 'requestUri' => '/tags/{resourceArn}/', ], 'input' => [ 'shape' => 'ListTagsInput', ], 'output' => [ 'shape' => 'ListTagsOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'PutBackupVaultAccessPolicy' => [ 'name' => 'PutBackupVaultAccessPolicy', 'http' => [ 'method' => 'PUT', 'requestUri' => '/backup-vaults/{backupVaultName}/access-policy', ], 'input' => [ 'shape' => 'PutBackupVaultAccessPolicyInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'PutBackupVaultNotifications' => [ 'name' => 'PutBackupVaultNotifications', 'http' => [ 'method' => 'PUT', 'requestUri' => '/backup-vaults/{backupVaultName}/notification-configuration', ], 'input' => [ 'shape' => 'PutBackupVaultNotificationsInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'StartBackupJob' => [ 'name' => 'StartBackupJob', 'http' => [ 'method' => 'PUT', 'requestUri' => '/backup-jobs', ], 'input' => [ 'shape' => 'StartBackupJobInput', ], 'output' => [ 'shape' => 'StartBackupJobOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'LimitExceededException', ], ], 'idempotent' => true, ], 'StartRestoreJob' => [ 'name' => 'StartRestoreJob', 'http' => [ 'method' => 'PUT', 'requestUri' => '/restore-jobs', ], 'input' => [ 'shape' => 'StartRestoreJobInput', ], 'output' => [ 'shape' => 'StartRestoreJobOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'StopBackupJob' => [ 'name' => 'StopBackupJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/backup-jobs/{backupJobId}', ], 'input' => [ 'shape' => 'StopBackupJobInput', ], 'errors' => [ [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/tags/{resourceArn}', ], 'input' => [ 'shape' => 'TagResourceInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'LimitExceededException', ], ], 'idempotent' => true, ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/untag/{resourceArn}', ], 'input' => [ 'shape' => 'UntagResourceInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'UpdateBackupPlan' => [ 'name' => 'UpdateBackupPlan', 'http' => [ 'method' => 'POST', 'requestUri' => '/backup/plans/{backupPlanId}', ], 'input' => [ 'shape' => 'UpdateBackupPlanInput', ], 'output' => [ 'shape' => 'UpdateBackupPlanOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], 'UpdateRecoveryPointLifecycle' => [ 'name' => 'UpdateRecoveryPointLifecycle', 'http' => [ 'method' => 'POST', 'requestUri' => '/backup-vaults/{backupVaultName}/recovery-points/{recoveryPointArn}', ], 'input' => [ 'shape' => 'UpdateRecoveryPointLifecycleInput', ], 'output' => [ 'shape' => 'UpdateRecoveryPointLifecycleOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], 'idempotent' => true, ], ], 'shapes' => [ 'ARN' => [ 'type' => 'string', ], 'AlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'string', ], 'Message' => [ 'shape' => 'string', ], 'CreatorRequestId' => [ 'shape' => 'string', ], 'Arn' => [ 'shape' => 'string', ], 'Type' => [ 'shape' => 'string', ], 'Context' => [ 'shape' => 'string', ], ], 'exception' => true, ], 'BackupJob' => [ 'type' => 'structure', 'members' => [ 'BackupJobId' => [ 'shape' => 'string', ], 'BackupVaultName' => [ 'shape' => 'BackupVaultName', ], 'BackupVaultArn' => [ 'shape' => 'ARN', ], 'RecoveryPointArn' => [ 'shape' => 'ARN', ], 'ResourceArn' => [ 'shape' => 'ARN', ], 'CreationDate' => [ 'shape' => 'timestamp', ], 'CompletionDate' => [ 'shape' => 'timestamp', ], 'State' => [ 'shape' => 'BackupJobState', ], 'StatusMessage' => [ 'shape' => 'string', ], 'PercentDone' => [ 'shape' => 'string', ], 'BackupSizeInBytes' => [ 'shape' => 'Long', ], 'IamRoleArn' => [ 'shape' => 'IAMRoleArn', ], 'CreatedBy' => [ 'shape' => 'RecoveryPointCreator', ], 'ExpectedCompletionDate' => [ 'shape' => 'timestamp', ], 'StartBy' => [ 'shape' => 'timestamp', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], 'BytesTransferred' => [ 'shape' => 'Long', ], ], ], 'BackupJobState' => [ 'type' => 'string', 'enum' => [ 'CREATED', 'PENDING', 'RUNNING', 'ABORTING', 'ABORTED', 'COMPLETED', 'FAILED', 'EXPIRED', ], ], 'BackupJobsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BackupJob', ], ], 'BackupPlan' => [ 'type' => 'structure', 'required' => [ 'BackupPlanName', 'Rules', ], 'members' => [ 'BackupPlanName' => [ 'shape' => 'BackupPlanName', ], 'Rules' => [ 'shape' => 'BackupRules', ], ], ], 'BackupPlanInput' => [ 'type' => 'structure', 'required' => [ 'BackupPlanName', 'Rules', ], 'members' => [ 'BackupPlanName' => [ 'shape' => 'BackupPlanName', ], 'Rules' => [ 'shape' => 'BackupRulesInput', ], ], ], 'BackupPlanName' => [ 'type' => 'string', ], 'BackupPlanTemplatesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BackupPlanTemplatesListMember', ], ], 'BackupPlanTemplatesListMember' => [ 'type' => 'structure', 'members' => [ 'BackupPlanTemplateId' => [ 'shape' => 'string', ], 'BackupPlanTemplateName' => [ 'shape' => 'string', ], ], ], 'BackupPlanVersionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BackupPlansListMember', ], ], 'BackupPlansList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BackupPlansListMember', ], ], 'BackupPlansListMember' => [ 'type' => 'structure', 'members' => [ 'BackupPlanArn' => [ 'shape' => 'ARN', ], 'BackupPlanId' => [ 'shape' => 'string', ], 'CreationDate' => [ 'shape' => 'timestamp', ], 'DeletionDate' => [ 'shape' => 'timestamp', ], 'VersionId' => [ 'shape' => 'string', ], 'BackupPlanName' => [ 'shape' => 'BackupPlanName', ], 'CreatorRequestId' => [ 'shape' => 'string', ], 'LastExecutionDate' => [ 'shape' => 'timestamp', ], ], ], 'BackupRule' => [ 'type' => 'structure', 'required' => [ 'RuleName', 'TargetBackupVaultName', ], 'members' => [ 'RuleName' => [ 'shape' => 'BackupRuleName', ], 'TargetBackupVaultName' => [ 'shape' => 'BackupVaultName', ], 'ScheduleExpression' => [ 'shape' => 'CronExpression', ], 'StartWindowMinutes' => [ 'shape' => 'WindowMinutes', ], 'CompletionWindowMinutes' => [ 'shape' => 'WindowMinutes', ], 'Lifecycle' => [ 'shape' => 'Lifecycle', ], 'RecoveryPointTags' => [ 'shape' => 'Tags', ], 'RuleId' => [ 'shape' => 'string', ], ], ], 'BackupRuleInput' => [ 'type' => 'structure', 'required' => [ 'RuleName', 'TargetBackupVaultName', ], 'members' => [ 'RuleName' => [ 'shape' => 'BackupRuleName', ], 'TargetBackupVaultName' => [ 'shape' => 'BackupVaultName', ], 'ScheduleExpression' => [ 'shape' => 'CronExpression', ], 'StartWindowMinutes' => [ 'shape' => 'WindowMinutes', ], 'CompletionWindowMinutes' => [ 'shape' => 'WindowMinutes', ], 'Lifecycle' => [ 'shape' => 'Lifecycle', ], 'RecoveryPointTags' => [ 'shape' => 'Tags', ], ], ], 'BackupRuleName' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9\\-\\_\\.]{1,50}$', ], 'BackupRules' => [ 'type' => 'list', 'member' => [ 'shape' => 'BackupRule', ], ], 'BackupRulesInput' => [ 'type' => 'list', 'member' => [ 'shape' => 'BackupRuleInput', ], ], 'BackupSelection' => [ 'type' => 'structure', 'required' => [ 'SelectionName', 'IamRoleArn', ], 'members' => [ 'SelectionName' => [ 'shape' => 'BackupSelectionName', ], 'IamRoleArn' => [ 'shape' => 'IAMRoleArn', ], 'Resources' => [ 'shape' => 'ResourceArns', ], 'ListOfTags' => [ 'shape' => 'ListOfTags', ], ], ], 'BackupSelectionName' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9\\-\\_\\.]{1,50}$', ], 'BackupSelectionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BackupSelectionsListMember', ], ], 'BackupSelectionsListMember' => [ 'type' => 'structure', 'members' => [ 'SelectionId' => [ 'shape' => 'string', ], 'SelectionName' => [ 'shape' => 'BackupSelectionName', ], 'BackupPlanId' => [ 'shape' => 'string', ], 'CreationDate' => [ 'shape' => 'timestamp', ], 'CreatorRequestId' => [ 'shape' => 'string', ], 'IamRoleArn' => [ 'shape' => 'IAMRoleArn', ], ], ], 'BackupVaultEvent' => [ 'type' => 'string', 'enum' => [ 'BACKUP_JOB_STARTED', 'BACKUP_JOB_COMPLETED', 'RESTORE_JOB_STARTED', 'RESTORE_JOB_COMPLETED', 'RECOVERY_POINT_MODIFIED', 'BACKUP_PLAN_CREATED', 'BACKUP_PLAN_MODIFIED', ], ], 'BackupVaultEvents' => [ 'type' => 'list', 'member' => [ 'shape' => 'BackupVaultEvent', ], ], 'BackupVaultList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BackupVaultListMember', ], ], 'BackupVaultListMember' => [ 'type' => 'structure', 'members' => [ 'BackupVaultName' => [ 'shape' => 'BackupVaultName', ], 'BackupVaultArn' => [ 'shape' => 'ARN', ], 'CreationDate' => [ 'shape' => 'timestamp', ], 'EncryptionKeyArn' => [ 'shape' => 'ARN', ], 'CreatorRequestId' => [ 'shape' => 'string', ], 'NumberOfRecoveryPoints' => [ 'shape' => 'long', ], ], ], 'BackupVaultName' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9\\-\\_\\.]{1,50}$', ], 'Boolean' => [ 'type' => 'boolean', ], 'CalculatedLifecycle' => [ 'type' => 'structure', 'members' => [ 'MoveToColdStorageAt' => [ 'shape' => 'timestamp', ], 'DeleteAt' => [ 'shape' => 'timestamp', ], ], ], 'Condition' => [ 'type' => 'structure', 'required' => [ 'ConditionType', 'ConditionKey', 'ConditionValue', ], 'members' => [ 'ConditionType' => [ 'shape' => 'ConditionType', ], 'ConditionKey' => [ 'shape' => 'ConditionKey', ], 'ConditionValue' => [ 'shape' => 'ConditionValue', ], ], ], 'ConditionKey' => [ 'type' => 'string', ], 'ConditionType' => [ 'type' => 'string', 'enum' => [ 'STRINGEQUALS', ], ], 'ConditionValue' => [ 'type' => 'string', ], 'CreateBackupPlanInput' => [ 'type' => 'structure', 'required' => [ 'BackupPlan', ], 'members' => [ 'BackupPlan' => [ 'shape' => 'BackupPlanInput', ], 'BackupPlanTags' => [ 'shape' => 'Tags', ], 'CreatorRequestId' => [ 'shape' => 'string', ], ], ], 'CreateBackupPlanOutput' => [ 'type' => 'structure', 'members' => [ 'BackupPlanId' => [ 'shape' => 'string', ], 'BackupPlanArn' => [ 'shape' => 'ARN', ], 'CreationDate' => [ 'shape' => 'timestamp', ], 'VersionId' => [ 'shape' => 'string', ], ], ], 'CreateBackupSelectionInput' => [ 'type' => 'structure', 'required' => [ 'BackupPlanId', 'BackupSelection', ], 'members' => [ 'BackupPlanId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'backupPlanId', ], 'BackupSelection' => [ 'shape' => 'BackupSelection', ], 'CreatorRequestId' => [ 'shape' => 'string', ], ], ], 'CreateBackupSelectionOutput' => [ 'type' => 'structure', 'members' => [ 'SelectionId' => [ 'shape' => 'string', ], 'BackupPlanId' => [ 'shape' => 'string', ], 'CreationDate' => [ 'shape' => 'timestamp', ], ], ], 'CreateBackupVaultInput' => [ 'type' => 'structure', 'required' => [ 'BackupVaultName', ], 'members' => [ 'BackupVaultName' => [ 'shape' => 'BackupVaultName', 'location' => 'uri', 'locationName' => 'backupVaultName', ], 'BackupVaultTags' => [ 'shape' => 'Tags', ], 'EncryptionKeyArn' => [ 'shape' => 'ARN', ], 'CreatorRequestId' => [ 'shape' => 'string', ], ], ], 'CreateBackupVaultOutput' => [ 'type' => 'structure', 'members' => [ 'BackupVaultName' => [ 'shape' => 'BackupVaultName', ], 'BackupVaultArn' => [ 'shape' => 'ARN', ], 'CreationDate' => [ 'shape' => 'timestamp', ], ], ], 'CronExpression' => [ 'type' => 'string', ], 'DeleteBackupPlanInput' => [ 'type' => 'structure', 'required' => [ 'BackupPlanId', ], 'members' => [ 'BackupPlanId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'backupPlanId', ], ], ], 'DeleteBackupPlanOutput' => [ 'type' => 'structure', 'members' => [ 'BackupPlanId' => [ 'shape' => 'string', ], 'BackupPlanArn' => [ 'shape' => 'ARN', ], 'DeletionDate' => [ 'shape' => 'timestamp', ], 'VersionId' => [ 'shape' => 'string', ], ], ], 'DeleteBackupSelectionInput' => [ 'type' => 'structure', 'required' => [ 'BackupPlanId', 'SelectionId', ], 'members' => [ 'BackupPlanId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'backupPlanId', ], 'SelectionId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'selectionId', ], ], ], 'DeleteBackupVaultAccessPolicyInput' => [ 'type' => 'structure', 'required' => [ 'BackupVaultName', ], 'members' => [ 'BackupVaultName' => [ 'shape' => 'BackupVaultName', 'location' => 'uri', 'locationName' => 'backupVaultName', ], ], ], 'DeleteBackupVaultInput' => [ 'type' => 'structure', 'required' => [ 'BackupVaultName', ], 'members' => [ 'BackupVaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'backupVaultName', ], ], ], 'DeleteBackupVaultNotificationsInput' => [ 'type' => 'structure', 'required' => [ 'BackupVaultName', ], 'members' => [ 'BackupVaultName' => [ 'shape' => 'BackupVaultName', 'location' => 'uri', 'locationName' => 'backupVaultName', ], ], ], 'DeleteRecoveryPointInput' => [ 'type' => 'structure', 'required' => [ 'BackupVaultName', 'RecoveryPointArn', ], 'members' => [ 'BackupVaultName' => [ 'shape' => 'BackupVaultName', 'location' => 'uri', 'locationName' => 'backupVaultName', ], 'RecoveryPointArn' => [ 'shape' => 'ARN', 'location' => 'uri', 'locationName' => 'recoveryPointArn', ], ], ], 'DependencyFailureException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'string', ], 'Message' => [ 'shape' => 'string', ], 'Type' => [ 'shape' => 'string', ], 'Context' => [ 'shape' => 'string', ], ], 'exception' => true, 'fault' => true, ], 'DescribeBackupJobInput' => [ 'type' => 'structure', 'required' => [ 'BackupJobId', ], 'members' => [ 'BackupJobId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'backupJobId', ], ], ], 'DescribeBackupJobOutput' => [ 'type' => 'structure', 'members' => [ 'BackupJobId' => [ 'shape' => 'string', ], 'BackupVaultName' => [ 'shape' => 'BackupVaultName', ], 'BackupVaultArn' => [ 'shape' => 'ARN', ], 'RecoveryPointArn' => [ 'shape' => 'ARN', ], 'ResourceArn' => [ 'shape' => 'ARN', ], 'CreationDate' => [ 'shape' => 'timestamp', ], 'CompletionDate' => [ 'shape' => 'timestamp', ], 'State' => [ 'shape' => 'BackupJobState', ], 'StatusMessage' => [ 'shape' => 'string', ], 'PercentDone' => [ 'shape' => 'string', ], 'BackupSizeInBytes' => [ 'shape' => 'Long', ], 'IamRoleArn' => [ 'shape' => 'IAMRoleArn', ], 'CreatedBy' => [ 'shape' => 'RecoveryPointCreator', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], 'BytesTransferred' => [ 'shape' => 'Long', ], 'ExpectedCompletionDate' => [ 'shape' => 'timestamp', ], 'StartBy' => [ 'shape' => 'timestamp', ], ], ], 'DescribeBackupVaultInput' => [ 'type' => 'structure', 'required' => [ 'BackupVaultName', ], 'members' => [ 'BackupVaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'backupVaultName', ], ], ], 'DescribeBackupVaultOutput' => [ 'type' => 'structure', 'members' => [ 'BackupVaultName' => [ 'shape' => 'string', ], 'BackupVaultArn' => [ 'shape' => 'ARN', ], 'EncryptionKeyArn' => [ 'shape' => 'ARN', ], 'CreationDate' => [ 'shape' => 'timestamp', ], 'CreatorRequestId' => [ 'shape' => 'string', ], 'NumberOfRecoveryPoints' => [ 'shape' => 'long', ], ], ], 'DescribeProtectedResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ARN', 'location' => 'uri', 'locationName' => 'resourceArn', ], ], ], 'DescribeProtectedResourceOutput' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => 'ARN', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], 'LastBackupTime' => [ 'shape' => 'timestamp', ], ], ], 'DescribeRecoveryPointInput' => [ 'type' => 'structure', 'required' => [ 'BackupVaultName', 'RecoveryPointArn', ], 'members' => [ 'BackupVaultName' => [ 'shape' => 'BackupVaultName', 'location' => 'uri', 'locationName' => 'backupVaultName', ], 'RecoveryPointArn' => [ 'shape' => 'ARN', 'location' => 'uri', 'locationName' => 'recoveryPointArn', ], ], ], 'DescribeRecoveryPointOutput' => [ 'type' => 'structure', 'members' => [ 'RecoveryPointArn' => [ 'shape' => 'ARN', ], 'BackupVaultName' => [ 'shape' => 'BackupVaultName', ], 'BackupVaultArn' => [ 'shape' => 'ARN', ], 'ResourceArn' => [ 'shape' => 'ARN', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], 'CreatedBy' => [ 'shape' => 'RecoveryPointCreator', ], 'IamRoleArn' => [ 'shape' => 'IAMRoleArn', ], 'Status' => [ 'shape' => 'RecoveryPointStatus', ], 'CreationDate' => [ 'shape' => 'timestamp', ], 'CompletionDate' => [ 'shape' => 'timestamp', ], 'BackupSizeInBytes' => [ 'shape' => 'Long', ], 'CalculatedLifecycle' => [ 'shape' => 'CalculatedLifecycle', ], 'Lifecycle' => [ 'shape' => 'Lifecycle', ], 'EncryptionKeyArn' => [ 'shape' => 'ARN', ], 'IsEncrypted' => [ 'shape' => 'boolean', ], 'StorageClass' => [ 'shape' => 'StorageClass', ], 'LastRestoreTime' => [ 'shape' => 'timestamp', ], ], ], 'DescribeRestoreJobInput' => [ 'type' => 'structure', 'required' => [ 'RestoreJobId', ], 'members' => [ 'RestoreJobId' => [ 'shape' => 'RestoreJobId', 'location' => 'uri', 'locationName' => 'restoreJobId', ], ], ], 'DescribeRestoreJobOutput' => [ 'type' => 'structure', 'members' => [ 'RestoreJobId' => [ 'shape' => 'string', ], 'RecoveryPointArn' => [ 'shape' => 'ARN', ], 'CreationDate' => [ 'shape' => 'timestamp', ], 'CompletionDate' => [ 'shape' => 'timestamp', ], 'Status' => [ 'shape' => 'RestoreJobStatus', ], 'StatusMessage' => [ 'shape' => 'string', ], 'PercentDone' => [ 'shape' => 'string', ], 'BackupSizeInBytes' => [ 'shape' => 'Long', ], 'IamRoleArn' => [ 'shape' => 'IAMRoleArn', ], 'ExpectedCompletionTimeMinutes' => [ 'shape' => 'Long', ], 'CreatedResourceArn' => [ 'shape' => 'ARN', ], ], ], 'ExportBackupPlanTemplateInput' => [ 'type' => 'structure', 'required' => [ 'BackupPlanId', ], 'members' => [ 'BackupPlanId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'backupPlanId', ], ], ], 'ExportBackupPlanTemplateOutput' => [ 'type' => 'structure', 'members' => [ 'BackupPlanTemplateJson' => [ 'shape' => 'string', ], ], ], 'GetBackupPlanFromJSONInput' => [ 'type' => 'structure', 'required' => [ 'BackupPlanTemplateJson', ], 'members' => [ 'BackupPlanTemplateJson' => [ 'shape' => 'string', ], ], ], 'GetBackupPlanFromJSONOutput' => [ 'type' => 'structure', 'members' => [ 'BackupPlan' => [ 'shape' => 'BackupPlan', ], ], ], 'GetBackupPlanFromTemplateInput' => [ 'type' => 'structure', 'required' => [ 'BackupPlanTemplateId', ], 'members' => [ 'BackupPlanTemplateId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'templateId', ], ], ], 'GetBackupPlanFromTemplateOutput' => [ 'type' => 'structure', 'members' => [ 'BackupPlanDocument' => [ 'shape' => 'BackupPlan', ], ], ], 'GetBackupPlanInput' => [ 'type' => 'structure', 'required' => [ 'BackupPlanId', ], 'members' => [ 'BackupPlanId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'backupPlanId', ], 'VersionId' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'versionId', ], ], ], 'GetBackupPlanOutput' => [ 'type' => 'structure', 'members' => [ 'BackupPlan' => [ 'shape' => 'BackupPlan', ], 'BackupPlanId' => [ 'shape' => 'string', ], 'BackupPlanArn' => [ 'shape' => 'ARN', ], 'VersionId' => [ 'shape' => 'string', ], 'CreatorRequestId' => [ 'shape' => 'string', ], 'CreationDate' => [ 'shape' => 'timestamp', ], 'DeletionDate' => [ 'shape' => 'timestamp', ], 'LastExecutionDate' => [ 'shape' => 'timestamp', ], ], ], 'GetBackupSelectionInput' => [ 'type' => 'structure', 'required' => [ 'BackupPlanId', 'SelectionId', ], 'members' => [ 'BackupPlanId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'backupPlanId', ], 'SelectionId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'selectionId', ], ], ], 'GetBackupSelectionOutput' => [ 'type' => 'structure', 'members' => [ 'BackupSelection' => [ 'shape' => 'BackupSelection', ], 'SelectionId' => [ 'shape' => 'string', ], 'BackupPlanId' => [ 'shape' => 'string', ], 'CreationDate' => [ 'shape' => 'timestamp', ], 'CreatorRequestId' => [ 'shape' => 'string', ], ], ], 'GetBackupVaultAccessPolicyInput' => [ 'type' => 'structure', 'required' => [ 'BackupVaultName', ], 'members' => [ 'BackupVaultName' => [ 'shape' => 'BackupVaultName', 'location' => 'uri', 'locationName' => 'backupVaultName', ], ], ], 'GetBackupVaultAccessPolicyOutput' => [ 'type' => 'structure', 'members' => [ 'BackupVaultName' => [ 'shape' => 'BackupVaultName', ], 'BackupVaultArn' => [ 'shape' => 'ARN', ], 'Policy' => [ 'shape' => 'IAMPolicy', ], ], ], 'GetBackupVaultNotificationsInput' => [ 'type' => 'structure', 'required' => [ 'BackupVaultName', ], 'members' => [ 'BackupVaultName' => [ 'shape' => 'BackupVaultName', 'location' => 'uri', 'locationName' => 'backupVaultName', ], ], ], 'GetBackupVaultNotificationsOutput' => [ 'type' => 'structure', 'members' => [ 'BackupVaultName' => [ 'shape' => 'BackupVaultName', ], 'BackupVaultArn' => [ 'shape' => 'ARN', ], 'SNSTopicArn' => [ 'shape' => 'ARN', ], 'BackupVaultEvents' => [ 'shape' => 'BackupVaultEvents', ], ], ], 'GetRecoveryPointRestoreMetadataInput' => [ 'type' => 'structure', 'required' => [ 'BackupVaultName', 'RecoveryPointArn', ], 'members' => [ 'BackupVaultName' => [ 'shape' => 'BackupVaultName', 'location' => 'uri', 'locationName' => 'backupVaultName', ], 'RecoveryPointArn' => [ 'shape' => 'ARN', 'location' => 'uri', 'locationName' => 'recoveryPointArn', ], ], ], 'GetRecoveryPointRestoreMetadataOutput' => [ 'type' => 'structure', 'members' => [ 'BackupVaultArn' => [ 'shape' => 'ARN', ], 'RecoveryPointArn' => [ 'shape' => 'ARN', ], 'RestoreMetadata' => [ 'shape' => 'Metadata', ], ], ], 'GetSupportedResourceTypesOutput' => [ 'type' => 'structure', 'members' => [ 'ResourceTypes' => [ 'shape' => 'ResourceTypes', ], ], ], 'IAMPolicy' => [ 'type' => 'string', ], 'IAMRoleArn' => [ 'type' => 'string', ], 'InvalidParameterValueException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'string', ], 'Message' => [ 'shape' => 'string', ], 'Type' => [ 'shape' => 'string', ], 'Context' => [ 'shape' => 'string', ], ], 'exception' => true, ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'string', ], 'Message' => [ 'shape' => 'string', ], 'Type' => [ 'shape' => 'string', ], 'Context' => [ 'shape' => 'string', ], ], 'exception' => true, ], 'Lifecycle' => [ 'type' => 'structure', 'members' => [ 'MoveToColdStorageAfterDays' => [ 'shape' => 'Long', ], 'DeleteAfterDays' => [ 'shape' => 'Long', ], ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'string', ], 'Message' => [ 'shape' => 'string', ], 'Type' => [ 'shape' => 'string', ], 'Context' => [ 'shape' => 'string', ], ], 'exception' => true, ], 'ListBackupJobsInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'ByResourceArn' => [ 'shape' => 'ARN', 'location' => 'querystring', 'locationName' => 'resourceArn', ], 'ByState' => [ 'shape' => 'BackupJobState', 'location' => 'querystring', 'locationName' => 'state', ], 'ByBackupVaultName' => [ 'shape' => 'BackupVaultName', 'location' => 'querystring', 'locationName' => 'backupVaultName', ], 'ByCreatedBefore' => [ 'shape' => 'timestamp', 'location' => 'querystring', 'locationName' => 'createdBefore', ], 'ByCreatedAfter' => [ 'shape' => 'timestamp', 'location' => 'querystring', 'locationName' => 'createdAfter', ], 'ByResourceType' => [ 'shape' => 'ResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], ], ], 'ListBackupJobsOutput' => [ 'type' => 'structure', 'members' => [ 'BackupJobs' => [ 'shape' => 'BackupJobsList', ], 'NextToken' => [ 'shape' => 'string', ], ], ], 'ListBackupPlanTemplatesInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListBackupPlanTemplatesOutput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'string', ], 'BackupPlanTemplatesList' => [ 'shape' => 'BackupPlanTemplatesList', ], ], ], 'ListBackupPlanVersionsInput' => [ 'type' => 'structure', 'required' => [ 'BackupPlanId', ], 'members' => [ 'BackupPlanId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'backupPlanId', ], 'NextToken' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListBackupPlanVersionsOutput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'string', ], 'BackupPlanVersionsList' => [ 'shape' => 'BackupPlanVersionsList', ], ], ], 'ListBackupPlansInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'IncludeDeleted' => [ 'shape' => 'Boolean', 'location' => 'querystring', 'locationName' => 'includeDeleted', ], ], ], 'ListBackupPlansOutput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'string', ], 'BackupPlansList' => [ 'shape' => 'BackupPlansList', ], ], ], 'ListBackupSelectionsInput' => [ 'type' => 'structure', 'required' => [ 'BackupPlanId', ], 'members' => [ 'BackupPlanId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'backupPlanId', ], 'NextToken' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListBackupSelectionsOutput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'string', ], 'BackupSelectionsList' => [ 'shape' => 'BackupSelectionsList', ], ], ], 'ListBackupVaultsInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListBackupVaultsOutput' => [ 'type' => 'structure', 'members' => [ 'BackupVaultList' => [ 'shape' => 'BackupVaultList', ], 'NextToken' => [ 'shape' => 'string', ], ], ], 'ListOfTags' => [ 'type' => 'list', 'member' => [ 'shape' => 'Condition', ], ], 'ListProtectedResourcesInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListProtectedResourcesOutput' => [ 'type' => 'structure', 'members' => [ 'Results' => [ 'shape' => 'ProtectedResourcesList', ], 'NextToken' => [ 'shape' => 'string', ], ], ], 'ListRecoveryPointsByBackupVaultInput' => [ 'type' => 'structure', 'required' => [ 'BackupVaultName', ], 'members' => [ 'BackupVaultName' => [ 'shape' => 'BackupVaultName', 'location' => 'uri', 'locationName' => 'backupVaultName', ], 'NextToken' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'ByResourceArn' => [ 'shape' => 'ARN', 'location' => 'querystring', 'locationName' => 'resourceArn', ], 'ByResourceType' => [ 'shape' => 'ResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], 'ByBackupPlanId' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'backupPlanId', ], 'ByCreatedBefore' => [ 'shape' => 'timestamp', 'location' => 'querystring', 'locationName' => 'createdBefore', ], 'ByCreatedAfter' => [ 'shape' => 'timestamp', 'location' => 'querystring', 'locationName' => 'createdAfter', ], ], ], 'ListRecoveryPointsByBackupVaultOutput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'string', ], 'RecoveryPoints' => [ 'shape' => 'RecoveryPointByBackupVaultList', ], ], ], 'ListRecoveryPointsByResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ARN', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'NextToken' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListRecoveryPointsByResourceOutput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'string', ], 'RecoveryPoints' => [ 'shape' => 'RecoveryPointByResourceList', ], ], ], 'ListRestoreJobsInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListRestoreJobsOutput' => [ 'type' => 'structure', 'members' => [ 'RestoreJobs' => [ 'shape' => 'RestoreJobsList', ], 'NextToken' => [ 'shape' => 'string', ], ], ], 'ListTagsInput' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ARN', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'NextToken' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListTagsOutput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'string', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'Long' => [ 'type' => 'long', ], 'MaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'Metadata' => [ 'type' => 'map', 'key' => [ 'shape' => 'MetadataKey', ], 'value' => [ 'shape' => 'MetadataValue', ], ], 'MetadataKey' => [ 'type' => 'string', ], 'MetadataValue' => [ 'type' => 'string', ], 'MissingParameterValueException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'string', ], 'Message' => [ 'shape' => 'string', ], 'Type' => [ 'shape' => 'string', ], 'Context' => [ 'shape' => 'string', ], ], 'exception' => true, ], 'ProtectedResource' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => 'ARN', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], 'LastBackupTime' => [ 'shape' => 'timestamp', ], ], ], 'ProtectedResourcesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProtectedResource', ], ], 'PutBackupVaultAccessPolicyInput' => [ 'type' => 'structure', 'required' => [ 'BackupVaultName', ], 'members' => [ 'BackupVaultName' => [ 'shape' => 'BackupVaultName', 'location' => 'uri', 'locationName' => 'backupVaultName', ], 'Policy' => [ 'shape' => 'IAMPolicy', ], ], ], 'PutBackupVaultNotificationsInput' => [ 'type' => 'structure', 'required' => [ 'BackupVaultName', 'SNSTopicArn', 'BackupVaultEvents', ], 'members' => [ 'BackupVaultName' => [ 'shape' => 'BackupVaultName', 'location' => 'uri', 'locationName' => 'backupVaultName', ], 'SNSTopicArn' => [ 'shape' => 'ARN', ], 'BackupVaultEvents' => [ 'shape' => 'BackupVaultEvents', ], ], ], 'RecoveryPointByBackupVault' => [ 'type' => 'structure', 'members' => [ 'RecoveryPointArn' => [ 'shape' => 'ARN', ], 'BackupVaultName' => [ 'shape' => 'BackupVaultName', ], 'BackupVaultArn' => [ 'shape' => 'ARN', ], 'ResourceArn' => [ 'shape' => 'ARN', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], 'CreatedBy' => [ 'shape' => 'RecoveryPointCreator', ], 'IamRoleArn' => [ 'shape' => 'IAMRoleArn', ], 'Status' => [ 'shape' => 'RecoveryPointStatus', ], 'CreationDate' => [ 'shape' => 'timestamp', ], 'CompletionDate' => [ 'shape' => 'timestamp', ], 'BackupSizeInBytes' => [ 'shape' => 'Long', ], 'CalculatedLifecycle' => [ 'shape' => 'CalculatedLifecycle', ], 'Lifecycle' => [ 'shape' => 'Lifecycle', ], 'EncryptionKeyArn' => [ 'shape' => 'ARN', ], 'IsEncrypted' => [ 'shape' => 'boolean', ], 'LastRestoreTime' => [ 'shape' => 'timestamp', ], ], ], 'RecoveryPointByBackupVaultList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RecoveryPointByBackupVault', ], ], 'RecoveryPointByResource' => [ 'type' => 'structure', 'members' => [ 'RecoveryPointArn' => [ 'shape' => 'ARN', ], 'CreationDate' => [ 'shape' => 'timestamp', ], 'Status' => [ 'shape' => 'RecoveryPointStatus', ], 'EncryptionKeyArn' => [ 'shape' => 'ARN', ], 'BackupSizeBytes' => [ 'shape' => 'Long', ], 'BackupVaultName' => [ 'shape' => 'BackupVaultName', ], ], ], 'RecoveryPointByResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RecoveryPointByResource', ], ], 'RecoveryPointCreator' => [ 'type' => 'structure', 'members' => [ 'BackupPlanId' => [ 'shape' => 'string', ], 'BackupPlanArn' => [ 'shape' => 'ARN', ], 'BackupPlanVersion' => [ 'shape' => 'string', ], 'BackupRuleId' => [ 'shape' => 'string', ], ], ], 'RecoveryPointStatus' => [ 'type' => 'string', 'enum' => [ 'COMPLETED', 'PARTIAL', 'DELETING', 'EXPIRED', ], ], 'ResourceArns' => [ 'type' => 'list', 'member' => [ 'shape' => 'ARN', ], ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'string', ], 'Message' => [ 'shape' => 'string', ], 'Type' => [ 'shape' => 'string', ], 'Context' => [ 'shape' => 'string', ], ], 'exception' => true, ], 'ResourceType' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9\\-\\_\\.]{1,50}$', ], 'ResourceTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceType', ], ], 'RestoreJobId' => [ 'type' => 'string', ], 'RestoreJobStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'RUNNING', 'COMPLETED', 'ABORTED', 'FAILED', ], ], 'RestoreJobsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RestoreJobsListMember', ], ], 'RestoreJobsListMember' => [ 'type' => 'structure', 'members' => [ 'RestoreJobId' => [ 'shape' => 'string', ], 'RecoveryPointArn' => [ 'shape' => 'ARN', ], 'CreationDate' => [ 'shape' => 'timestamp', ], 'CompletionDate' => [ 'shape' => 'timestamp', ], 'Status' => [ 'shape' => 'RestoreJobStatus', ], 'StatusMessage' => [ 'shape' => 'string', ], 'PercentDone' => [ 'shape' => 'string', ], 'BackupSizeInBytes' => [ 'shape' => 'Long', ], 'IamRoleArn' => [ 'shape' => 'IAMRoleArn', ], 'ExpectedCompletionTimeMinutes' => [ 'shape' => 'Long', ], 'CreatedResourceArn' => [ 'shape' => 'ARN', ], ], ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'string', ], 'Message' => [ 'shape' => 'string', ], 'Type' => [ 'shape' => 'string', ], 'Context' => [ 'shape' => 'string', ], ], 'exception' => true, 'fault' => true, ], 'StartBackupJobInput' => [ 'type' => 'structure', 'required' => [ 'BackupVaultName', 'ResourceArn', 'IamRoleArn', ], 'members' => [ 'BackupVaultName' => [ 'shape' => 'BackupVaultName', ], 'ResourceArn' => [ 'shape' => 'ARN', ], 'IamRoleArn' => [ 'shape' => 'IAMRoleArn', ], 'IdempotencyToken' => [ 'shape' => 'string', ], 'StartWindowMinutes' => [ 'shape' => 'WindowMinutes', ], 'CompleteWindowMinutes' => [ 'shape' => 'WindowMinutes', ], 'Lifecycle' => [ 'shape' => 'Lifecycle', ], 'RecoveryPointTags' => [ 'shape' => 'Tags', ], ], ], 'StartBackupJobOutput' => [ 'type' => 'structure', 'members' => [ 'BackupJobId' => [ 'shape' => 'string', ], 'RecoveryPointArn' => [ 'shape' => 'ARN', ], 'CreationDate' => [ 'shape' => 'timestamp', ], ], ], 'StartRestoreJobInput' => [ 'type' => 'structure', 'required' => [ 'RecoveryPointArn', 'Metadata', 'IamRoleArn', ], 'members' => [ 'RecoveryPointArn' => [ 'shape' => 'ARN', ], 'Metadata' => [ 'shape' => 'Metadata', ], 'IamRoleArn' => [ 'shape' => 'IAMRoleArn', ], 'IdempotencyToken' => [ 'shape' => 'string', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], ], ], 'StartRestoreJobOutput' => [ 'type' => 'structure', 'members' => [ 'RestoreJobId' => [ 'shape' => 'RestoreJobId', ], ], ], 'StopBackupJobInput' => [ 'type' => 'structure', 'required' => [ 'BackupJobId', ], 'members' => [ 'BackupJobId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'backupJobId', ], ], ], 'StorageClass' => [ 'type' => 'string', 'enum' => [ 'WARM', 'COLD', 'DELETED', ], ], 'TagKey' => [ 'type' => 'string', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'string', ], 'sensitive' => true, ], 'TagResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Tags', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ARN', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'TagValue' => [ 'type' => 'string', ], 'Tags' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], 'sensitive' => true, ], 'UntagResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagKeyList', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ARN', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'TagKeyList' => [ 'shape' => 'TagKeyList', ], ], ], 'UpdateBackupPlanInput' => [ 'type' => 'structure', 'required' => [ 'BackupPlanId', 'BackupPlan', ], 'members' => [ 'BackupPlanId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'backupPlanId', ], 'BackupPlan' => [ 'shape' => 'BackupPlanInput', ], ], ], 'UpdateBackupPlanOutput' => [ 'type' => 'structure', 'members' => [ 'BackupPlanId' => [ 'shape' => 'string', ], 'BackupPlanArn' => [ 'shape' => 'ARN', ], 'CreationDate' => [ 'shape' => 'timestamp', ], 'VersionId' => [ 'shape' => 'string', ], ], ], 'UpdateRecoveryPointLifecycleInput' => [ 'type' => 'structure', 'required' => [ 'BackupVaultName', 'RecoveryPointArn', ], 'members' => [ 'BackupVaultName' => [ 'shape' => 'BackupVaultName', 'location' => 'uri', 'locationName' => 'backupVaultName', ], 'RecoveryPointArn' => [ 'shape' => 'ARN', 'location' => 'uri', 'locationName' => 'recoveryPointArn', ], 'Lifecycle' => [ 'shape' => 'Lifecycle', ], ], ], 'UpdateRecoveryPointLifecycleOutput' => [ 'type' => 'structure', 'members' => [ 'BackupVaultArn' => [ 'shape' => 'ARN', ], 'RecoveryPointArn' => [ 'shape' => 'ARN', ], 'Lifecycle' => [ 'shape' => 'Lifecycle', ], 'CalculatedLifecycle' => [ 'shape' => 'CalculatedLifecycle', ], ], ], 'WindowMinutes' => [ 'type' => 'long', ], 'boolean' => [ 'type' => 'boolean', ], 'long' => [ 'type' => 'long', ], 'string' => [ 'type' => 'string', ], 'timestamp' => [ 'type' => 'timestamp', ], ],]; diff --git a/lib/aws/Aws/data/backup/2018-11-15/paginators-1.json.php b/lib/aws/Aws/data/backup/2018-11-15/paginators-1.json.php new file mode 100644 index 0000000..2025005 --- /dev/null +++ b/lib/aws/Aws/data/backup/2018-11-15/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/backup/2018-11-15/paginators-1.json +return [ 'pagination' => [ 'ListBackupJobs' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListBackupPlanTemplates' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListBackupPlanVersions' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListBackupPlans' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListBackupSelections' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListBackupVaults' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListProtectedResources' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListRecoveryPointsByBackupVault' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListRecoveryPointsByResource' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListRestoreJobs' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListTags' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/batch/2016-08-10/api-2.json.php b/lib/aws/Aws/data/batch/2016-08-10/api-2.json.php new file mode 100644 index 0000000..2e1ddb0 --- /dev/null +++ b/lib/aws/Aws/data/batch/2016-08-10/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/batch/2016-08-10/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-08-10', 'endpointPrefix' => 'batch', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'AWS Batch', 'serviceFullName' => 'AWS Batch', 'serviceId' => 'Batch', 'signatureVersion' => 'v4', 'uid' => 'batch-2016-08-10', ], 'operations' => [ 'CancelJob' => [ 'name' => 'CancelJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/canceljob', ], 'input' => [ 'shape' => 'CancelJobRequest', ], 'output' => [ 'shape' => 'CancelJobResponse', ], 'errors' => [ [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], ], ], 'CreateComputeEnvironment' => [ 'name' => 'CreateComputeEnvironment', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/createcomputeenvironment', ], 'input' => [ 'shape' => 'CreateComputeEnvironmentRequest', ], 'output' => [ 'shape' => 'CreateComputeEnvironmentResponse', ], 'errors' => [ [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], ], ], 'CreateJobQueue' => [ 'name' => 'CreateJobQueue', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/createjobqueue', ], 'input' => [ 'shape' => 'CreateJobQueueRequest', ], 'output' => [ 'shape' => 'CreateJobQueueResponse', ], 'errors' => [ [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], ], ], 'DeleteComputeEnvironment' => [ 'name' => 'DeleteComputeEnvironment', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/deletecomputeenvironment', ], 'input' => [ 'shape' => 'DeleteComputeEnvironmentRequest', ], 'output' => [ 'shape' => 'DeleteComputeEnvironmentResponse', ], 'errors' => [ [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], ], ], 'DeleteJobQueue' => [ 'name' => 'DeleteJobQueue', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/deletejobqueue', ], 'input' => [ 'shape' => 'DeleteJobQueueRequest', ], 'output' => [ 'shape' => 'DeleteJobQueueResponse', ], 'errors' => [ [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], ], ], 'DeregisterJobDefinition' => [ 'name' => 'DeregisterJobDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/deregisterjobdefinition', ], 'input' => [ 'shape' => 'DeregisterJobDefinitionRequest', ], 'output' => [ 'shape' => 'DeregisterJobDefinitionResponse', ], 'errors' => [ [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], ], ], 'DescribeComputeEnvironments' => [ 'name' => 'DescribeComputeEnvironments', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/describecomputeenvironments', ], 'input' => [ 'shape' => 'DescribeComputeEnvironmentsRequest', ], 'output' => [ 'shape' => 'DescribeComputeEnvironmentsResponse', ], 'errors' => [ [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], ], ], 'DescribeJobDefinitions' => [ 'name' => 'DescribeJobDefinitions', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/describejobdefinitions', ], 'input' => [ 'shape' => 'DescribeJobDefinitionsRequest', ], 'output' => [ 'shape' => 'DescribeJobDefinitionsResponse', ], 'errors' => [ [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], ], ], 'DescribeJobQueues' => [ 'name' => 'DescribeJobQueues', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/describejobqueues', ], 'input' => [ 'shape' => 'DescribeJobQueuesRequest', ], 'output' => [ 'shape' => 'DescribeJobQueuesResponse', ], 'errors' => [ [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], ], ], 'DescribeJobs' => [ 'name' => 'DescribeJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/describejobs', ], 'input' => [ 'shape' => 'DescribeJobsRequest', ], 'output' => [ 'shape' => 'DescribeJobsResponse', ], 'errors' => [ [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], ], ], 'ListJobs' => [ 'name' => 'ListJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/listjobs', ], 'input' => [ 'shape' => 'ListJobsRequest', ], 'output' => [ 'shape' => 'ListJobsResponse', ], 'errors' => [ [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], ], ], 'RegisterJobDefinition' => [ 'name' => 'RegisterJobDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/registerjobdefinition', ], 'input' => [ 'shape' => 'RegisterJobDefinitionRequest', ], 'output' => [ 'shape' => 'RegisterJobDefinitionResponse', ], 'errors' => [ [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], ], ], 'SubmitJob' => [ 'name' => 'SubmitJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/submitjob', ], 'input' => [ 'shape' => 'SubmitJobRequest', ], 'output' => [ 'shape' => 'SubmitJobResponse', ], 'errors' => [ [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], ], ], 'TerminateJob' => [ 'name' => 'TerminateJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/terminatejob', ], 'input' => [ 'shape' => 'TerminateJobRequest', ], 'output' => [ 'shape' => 'TerminateJobResponse', ], 'errors' => [ [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], ], ], 'UpdateComputeEnvironment' => [ 'name' => 'UpdateComputeEnvironment', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/updatecomputeenvironment', ], 'input' => [ 'shape' => 'UpdateComputeEnvironmentRequest', ], 'output' => [ 'shape' => 'UpdateComputeEnvironmentResponse', ], 'errors' => [ [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], ], ], 'UpdateJobQueue' => [ 'name' => 'UpdateJobQueue', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/updatejobqueue', ], 'input' => [ 'shape' => 'UpdateJobQueueRequest', ], 'output' => [ 'shape' => 'UpdateJobQueueResponse', ], 'errors' => [ [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], ], ], ], 'shapes' => [ 'ArrayJobDependency' => [ 'type' => 'string', 'enum' => [ 'N_TO_N', 'SEQUENTIAL', ], ], 'ArrayJobStatusSummary' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'Integer', ], ], 'ArrayProperties' => [ 'type' => 'structure', 'members' => [ 'size' => [ 'shape' => 'Integer', ], ], ], 'ArrayPropertiesDetail' => [ 'type' => 'structure', 'members' => [ 'statusSummary' => [ 'shape' => 'ArrayJobStatusSummary', ], 'size' => [ 'shape' => 'Integer', ], 'index' => [ 'shape' => 'Integer', ], ], ], 'ArrayPropertiesSummary' => [ 'type' => 'structure', 'members' => [ 'size' => [ 'shape' => 'Integer', ], 'index' => [ 'shape' => 'Integer', ], ], ], 'AttemptContainerDetail' => [ 'type' => 'structure', 'members' => [ 'containerInstanceArn' => [ 'shape' => 'String', ], 'taskArn' => [ 'shape' => 'String', ], 'exitCode' => [ 'shape' => 'Integer', ], 'reason' => [ 'shape' => 'String', ], 'logStreamName' => [ 'shape' => 'String', ], 'networkInterfaces' => [ 'shape' => 'NetworkInterfaceList', ], ], ], 'AttemptDetail' => [ 'type' => 'structure', 'members' => [ 'container' => [ 'shape' => 'AttemptContainerDetail', ], 'startedAt' => [ 'shape' => 'Long', ], 'stoppedAt' => [ 'shape' => 'Long', ], 'statusReason' => [ 'shape' => 'String', ], ], ], 'AttemptDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttemptDetail', ], ], 'Boolean' => [ 'type' => 'boolean', ], 'CEState' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'CEStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'UPDATING', 'DELETING', 'DELETED', 'VALID', 'INVALID', ], ], 'CEType' => [ 'type' => 'string', 'enum' => [ 'MANAGED', 'UNMANAGED', ], ], 'CRType' => [ 'type' => 'string', 'enum' => [ 'EC2', 'SPOT', ], ], 'CancelJobRequest' => [ 'type' => 'structure', 'required' => [ 'jobId', 'reason', ], 'members' => [ 'jobId' => [ 'shape' => 'String', ], 'reason' => [ 'shape' => 'String', ], ], ], 'CancelJobResponse' => [ 'type' => 'structure', 'members' => [], ], 'ClientException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ComputeEnvironmentDetail' => [ 'type' => 'structure', 'required' => [ 'computeEnvironmentName', 'computeEnvironmentArn', 'ecsClusterArn', ], 'members' => [ 'computeEnvironmentName' => [ 'shape' => 'String', ], 'computeEnvironmentArn' => [ 'shape' => 'String', ], 'ecsClusterArn' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'CEType', ], 'state' => [ 'shape' => 'CEState', ], 'status' => [ 'shape' => 'CEStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'computeResources' => [ 'shape' => 'ComputeResource', ], 'serviceRole' => [ 'shape' => 'String', ], ], ], 'ComputeEnvironmentDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ComputeEnvironmentDetail', ], ], 'ComputeEnvironmentOrder' => [ 'type' => 'structure', 'required' => [ 'order', 'computeEnvironment', ], 'members' => [ 'order' => [ 'shape' => 'Integer', ], 'computeEnvironment' => [ 'shape' => 'String', ], ], ], 'ComputeEnvironmentOrders' => [ 'type' => 'list', 'member' => [ 'shape' => 'ComputeEnvironmentOrder', ], ], 'ComputeResource' => [ 'type' => 'structure', 'required' => [ 'type', 'minvCpus', 'maxvCpus', 'instanceTypes', 'subnets', 'instanceRole', ], 'members' => [ 'type' => [ 'shape' => 'CRType', ], 'minvCpus' => [ 'shape' => 'Integer', ], 'maxvCpus' => [ 'shape' => 'Integer', ], 'desiredvCpus' => [ 'shape' => 'Integer', ], 'instanceTypes' => [ 'shape' => 'StringList', ], 'imageId' => [ 'shape' => 'String', ], 'subnets' => [ 'shape' => 'StringList', ], 'securityGroupIds' => [ 'shape' => 'StringList', ], 'ec2KeyPair' => [ 'shape' => 'String', ], 'instanceRole' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'TagsMap', ], 'placementGroup' => [ 'shape' => 'String', ], 'bidPercentage' => [ 'shape' => 'Integer', ], 'spotIamFleetRole' => [ 'shape' => 'String', ], 'launchTemplate' => [ 'shape' => 'LaunchTemplateSpecification', ], ], ], 'ComputeResourceUpdate' => [ 'type' => 'structure', 'members' => [ 'minvCpus' => [ 'shape' => 'Integer', ], 'maxvCpus' => [ 'shape' => 'Integer', ], 'desiredvCpus' => [ 'shape' => 'Integer', ], ], ], 'ContainerDetail' => [ 'type' => 'structure', 'members' => [ 'image' => [ 'shape' => 'String', ], 'vcpus' => [ 'shape' => 'Integer', ], 'memory' => [ 'shape' => 'Integer', ], 'command' => [ 'shape' => 'StringList', ], 'jobRoleArn' => [ 'shape' => 'String', ], 'volumes' => [ 'shape' => 'Volumes', ], 'environment' => [ 'shape' => 'EnvironmentVariables', ], 'mountPoints' => [ 'shape' => 'MountPoints', ], 'readonlyRootFilesystem' => [ 'shape' => 'Boolean', ], 'ulimits' => [ 'shape' => 'Ulimits', ], 'privileged' => [ 'shape' => 'Boolean', ], 'user' => [ 'shape' => 'String', ], 'exitCode' => [ 'shape' => 'Integer', ], 'reason' => [ 'shape' => 'String', ], 'containerInstanceArn' => [ 'shape' => 'String', ], 'taskArn' => [ 'shape' => 'String', ], 'logStreamName' => [ 'shape' => 'String', ], 'instanceType' => [ 'shape' => 'String', ], 'networkInterfaces' => [ 'shape' => 'NetworkInterfaceList', ], 'resourceRequirements' => [ 'shape' => 'ResourceRequirements', ], ], ], 'ContainerOverrides' => [ 'type' => 'structure', 'members' => [ 'vcpus' => [ 'shape' => 'Integer', ], 'memory' => [ 'shape' => 'Integer', ], 'command' => [ 'shape' => 'StringList', ], 'instanceType' => [ 'shape' => 'String', ], 'environment' => [ 'shape' => 'EnvironmentVariables', ], 'resourceRequirements' => [ 'shape' => 'ResourceRequirements', ], ], ], 'ContainerProperties' => [ 'type' => 'structure', 'members' => [ 'image' => [ 'shape' => 'String', ], 'vcpus' => [ 'shape' => 'Integer', ], 'memory' => [ 'shape' => 'Integer', ], 'command' => [ 'shape' => 'StringList', ], 'jobRoleArn' => [ 'shape' => 'String', ], 'volumes' => [ 'shape' => 'Volumes', ], 'environment' => [ 'shape' => 'EnvironmentVariables', ], 'mountPoints' => [ 'shape' => 'MountPoints', ], 'readonlyRootFilesystem' => [ 'shape' => 'Boolean', ], 'privileged' => [ 'shape' => 'Boolean', ], 'ulimits' => [ 'shape' => 'Ulimits', ], 'user' => [ 'shape' => 'String', ], 'instanceType' => [ 'shape' => 'String', ], 'resourceRequirements' => [ 'shape' => 'ResourceRequirements', ], ], ], 'ContainerSummary' => [ 'type' => 'structure', 'members' => [ 'exitCode' => [ 'shape' => 'Integer', ], 'reason' => [ 'shape' => 'String', ], ], ], 'CreateComputeEnvironmentRequest' => [ 'type' => 'structure', 'required' => [ 'computeEnvironmentName', 'type', 'serviceRole', ], 'members' => [ 'computeEnvironmentName' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'CEType', ], 'state' => [ 'shape' => 'CEState', ], 'computeResources' => [ 'shape' => 'ComputeResource', ], 'serviceRole' => [ 'shape' => 'String', ], ], ], 'CreateComputeEnvironmentResponse' => [ 'type' => 'structure', 'members' => [ 'computeEnvironmentName' => [ 'shape' => 'String', ], 'computeEnvironmentArn' => [ 'shape' => 'String', ], ], ], 'CreateJobQueueRequest' => [ 'type' => 'structure', 'required' => [ 'jobQueueName', 'priority', 'computeEnvironmentOrder', ], 'members' => [ 'jobQueueName' => [ 'shape' => 'String', ], 'state' => [ 'shape' => 'JQState', ], 'priority' => [ 'shape' => 'Integer', ], 'computeEnvironmentOrder' => [ 'shape' => 'ComputeEnvironmentOrders', ], ], ], 'CreateJobQueueResponse' => [ 'type' => 'structure', 'required' => [ 'jobQueueName', 'jobQueueArn', ], 'members' => [ 'jobQueueName' => [ 'shape' => 'String', ], 'jobQueueArn' => [ 'shape' => 'String', ], ], ], 'DeleteComputeEnvironmentRequest' => [ 'type' => 'structure', 'required' => [ 'computeEnvironment', ], 'members' => [ 'computeEnvironment' => [ 'shape' => 'String', ], ], ], 'DeleteComputeEnvironmentResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteJobQueueRequest' => [ 'type' => 'structure', 'required' => [ 'jobQueue', ], 'members' => [ 'jobQueue' => [ 'shape' => 'String', ], ], ], 'DeleteJobQueueResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeregisterJobDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'jobDefinition', ], 'members' => [ 'jobDefinition' => [ 'shape' => 'String', ], ], ], 'DeregisterJobDefinitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'DescribeComputeEnvironmentsRequest' => [ 'type' => 'structure', 'members' => [ 'computeEnvironments' => [ 'shape' => 'StringList', ], 'maxResults' => [ 'shape' => 'Integer', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'DescribeComputeEnvironmentsResponse' => [ 'type' => 'structure', 'members' => [ 'computeEnvironments' => [ 'shape' => 'ComputeEnvironmentDetailList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'DescribeJobDefinitionsRequest' => [ 'type' => 'structure', 'members' => [ 'jobDefinitions' => [ 'shape' => 'StringList', ], 'maxResults' => [ 'shape' => 'Integer', ], 'jobDefinitionName' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'String', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'DescribeJobDefinitionsResponse' => [ 'type' => 'structure', 'members' => [ 'jobDefinitions' => [ 'shape' => 'JobDefinitionList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'DescribeJobQueuesRequest' => [ 'type' => 'structure', 'members' => [ 'jobQueues' => [ 'shape' => 'StringList', ], 'maxResults' => [ 'shape' => 'Integer', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'DescribeJobQueuesResponse' => [ 'type' => 'structure', 'members' => [ 'jobQueues' => [ 'shape' => 'JobQueueDetailList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'DescribeJobsRequest' => [ 'type' => 'structure', 'required' => [ 'jobs', ], 'members' => [ 'jobs' => [ 'shape' => 'StringList', ], ], ], 'DescribeJobsResponse' => [ 'type' => 'structure', 'members' => [ 'jobs' => [ 'shape' => 'JobDetailList', ], ], ], 'EnvironmentVariables' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyValuePair', ], ], 'Host' => [ 'type' => 'structure', 'members' => [ 'sourcePath' => [ 'shape' => 'String', ], ], ], 'Integer' => [ 'type' => 'integer', ], 'JQState' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'JQStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'UPDATING', 'DELETING', 'DELETED', 'VALID', 'INVALID', ], ], 'JobDefinition' => [ 'type' => 'structure', 'required' => [ 'jobDefinitionName', 'jobDefinitionArn', 'revision', 'type', ], 'members' => [ 'jobDefinitionName' => [ 'shape' => 'String', ], 'jobDefinitionArn' => [ 'shape' => 'String', ], 'revision' => [ 'shape' => 'Integer', ], 'status' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'String', ], 'parameters' => [ 'shape' => 'ParametersMap', ], 'retryStrategy' => [ 'shape' => 'RetryStrategy', ], 'containerProperties' => [ 'shape' => 'ContainerProperties', ], 'timeout' => [ 'shape' => 'JobTimeout', ], 'nodeProperties' => [ 'shape' => 'NodeProperties', ], ], ], 'JobDefinitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'JobDefinition', ], ], 'JobDefinitionType' => [ 'type' => 'string', 'enum' => [ 'container', 'multinode', ], ], 'JobDependency' => [ 'type' => 'structure', 'members' => [ 'jobId' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'ArrayJobDependency', ], ], ], 'JobDependencyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'JobDependency', ], ], 'JobDetail' => [ 'type' => 'structure', 'required' => [ 'jobName', 'jobId', 'jobQueue', 'status', 'startedAt', 'jobDefinition', ], 'members' => [ 'jobName' => [ 'shape' => 'String', ], 'jobId' => [ 'shape' => 'String', ], 'jobQueue' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'JobStatus', ], 'attempts' => [ 'shape' => 'AttemptDetails', ], 'statusReason' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'Long', ], 'retryStrategy' => [ 'shape' => 'RetryStrategy', ], 'startedAt' => [ 'shape' => 'Long', ], 'stoppedAt' => [ 'shape' => 'Long', ], 'dependsOn' => [ 'shape' => 'JobDependencyList', ], 'jobDefinition' => [ 'shape' => 'String', ], 'parameters' => [ 'shape' => 'ParametersMap', ], 'container' => [ 'shape' => 'ContainerDetail', ], 'nodeDetails' => [ 'shape' => 'NodeDetails', ], 'nodeProperties' => [ 'shape' => 'NodeProperties', ], 'arrayProperties' => [ 'shape' => 'ArrayPropertiesDetail', ], 'timeout' => [ 'shape' => 'JobTimeout', ], ], ], 'JobDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'JobDetail', ], ], 'JobQueueDetail' => [ 'type' => 'structure', 'required' => [ 'jobQueueName', 'jobQueueArn', 'state', 'priority', 'computeEnvironmentOrder', ], 'members' => [ 'jobQueueName' => [ 'shape' => 'String', ], 'jobQueueArn' => [ 'shape' => 'String', ], 'state' => [ 'shape' => 'JQState', ], 'status' => [ 'shape' => 'JQStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'priority' => [ 'shape' => 'Integer', ], 'computeEnvironmentOrder' => [ 'shape' => 'ComputeEnvironmentOrders', ], ], ], 'JobQueueDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'JobQueueDetail', ], ], 'JobStatus' => [ 'type' => 'string', 'enum' => [ 'SUBMITTED', 'PENDING', 'RUNNABLE', 'STARTING', 'RUNNING', 'SUCCEEDED', 'FAILED', ], ], 'JobSummary' => [ 'type' => 'structure', 'required' => [ 'jobId', 'jobName', ], 'members' => [ 'jobId' => [ 'shape' => 'String', ], 'jobName' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'Long', ], 'status' => [ 'shape' => 'JobStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'startedAt' => [ 'shape' => 'Long', ], 'stoppedAt' => [ 'shape' => 'Long', ], 'container' => [ 'shape' => 'ContainerSummary', ], 'arrayProperties' => [ 'shape' => 'ArrayPropertiesSummary', ], 'nodeProperties' => [ 'shape' => 'NodePropertiesSummary', ], ], ], 'JobSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'JobSummary', ], ], 'JobTimeout' => [ 'type' => 'structure', 'members' => [ 'attemptDurationSeconds' => [ 'shape' => 'Integer', ], ], ], 'KeyValuePair' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], ], 'LaunchTemplateSpecification' => [ 'type' => 'structure', 'members' => [ 'launchTemplateId' => [ 'shape' => 'String', ], 'launchTemplateName' => [ 'shape' => 'String', ], 'version' => [ 'shape' => 'String', ], ], ], 'ListJobsRequest' => [ 'type' => 'structure', 'members' => [ 'jobQueue' => [ 'shape' => 'String', ], 'arrayJobId' => [ 'shape' => 'String', ], 'multiNodeJobId' => [ 'shape' => 'String', ], 'jobStatus' => [ 'shape' => 'JobStatus', ], 'maxResults' => [ 'shape' => 'Integer', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListJobsResponse' => [ 'type' => 'structure', 'required' => [ 'jobSummaryList', ], 'members' => [ 'jobSummaryList' => [ 'shape' => 'JobSummaryList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'Long' => [ 'type' => 'long', ], 'MountPoint' => [ 'type' => 'structure', 'members' => [ 'containerPath' => [ 'shape' => 'String', ], 'readOnly' => [ 'shape' => 'Boolean', ], 'sourceVolume' => [ 'shape' => 'String', ], ], ], 'MountPoints' => [ 'type' => 'list', 'member' => [ 'shape' => 'MountPoint', ], ], 'NetworkInterface' => [ 'type' => 'structure', 'members' => [ 'attachmentId' => [ 'shape' => 'String', ], 'ipv6Address' => [ 'shape' => 'String', ], 'privateIpv4Address' => [ 'shape' => 'String', ], ], ], 'NetworkInterfaceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterface', ], ], 'NodeDetails' => [ 'type' => 'structure', 'members' => [ 'nodeIndex' => [ 'shape' => 'Integer', ], 'isMainNode' => [ 'shape' => 'Boolean', ], ], ], 'NodeOverrides' => [ 'type' => 'structure', 'members' => [ 'numNodes' => [ 'shape' => 'Integer', ], 'nodePropertyOverrides' => [ 'shape' => 'NodePropertyOverrides', ], ], ], 'NodeProperties' => [ 'type' => 'structure', 'required' => [ 'numNodes', 'mainNode', 'nodeRangeProperties', ], 'members' => [ 'numNodes' => [ 'shape' => 'Integer', ], 'mainNode' => [ 'shape' => 'Integer', ], 'nodeRangeProperties' => [ 'shape' => 'NodeRangeProperties', ], ], ], 'NodePropertiesSummary' => [ 'type' => 'structure', 'members' => [ 'isMainNode' => [ 'shape' => 'Boolean', ], 'numNodes' => [ 'shape' => 'Integer', ], 'nodeIndex' => [ 'shape' => 'Integer', ], ], ], 'NodePropertyOverride' => [ 'type' => 'structure', 'required' => [ 'targetNodes', ], 'members' => [ 'targetNodes' => [ 'shape' => 'String', ], 'containerOverrides' => [ 'shape' => 'ContainerOverrides', ], ], ], 'NodePropertyOverrides' => [ 'type' => 'list', 'member' => [ 'shape' => 'NodePropertyOverride', ], ], 'NodeRangeProperties' => [ 'type' => 'list', 'member' => [ 'shape' => 'NodeRangeProperty', ], ], 'NodeRangeProperty' => [ 'type' => 'structure', 'required' => [ 'targetNodes', ], 'members' => [ 'targetNodes' => [ 'shape' => 'String', ], 'container' => [ 'shape' => 'ContainerProperties', ], ], ], 'ParametersMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'RegisterJobDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'jobDefinitionName', 'type', ], 'members' => [ 'jobDefinitionName' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'JobDefinitionType', ], 'parameters' => [ 'shape' => 'ParametersMap', ], 'containerProperties' => [ 'shape' => 'ContainerProperties', ], 'nodeProperties' => [ 'shape' => 'NodeProperties', ], 'retryStrategy' => [ 'shape' => 'RetryStrategy', ], 'timeout' => [ 'shape' => 'JobTimeout', ], ], ], 'RegisterJobDefinitionResponse' => [ 'type' => 'structure', 'required' => [ 'jobDefinitionName', 'jobDefinitionArn', 'revision', ], 'members' => [ 'jobDefinitionName' => [ 'shape' => 'String', ], 'jobDefinitionArn' => [ 'shape' => 'String', ], 'revision' => [ 'shape' => 'Integer', ], ], ], 'ResourceRequirement' => [ 'type' => 'structure', 'required' => [ 'value', 'type', ], 'members' => [ 'value' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'ResourceType', ], ], ], 'ResourceRequirements' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceRequirement', ], ], 'ResourceType' => [ 'type' => 'string', 'enum' => [ 'GPU', ], ], 'RetryStrategy' => [ 'type' => 'structure', 'members' => [ 'attempts' => [ 'shape' => 'Integer', ], ], ], 'ServerException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'String' => [ 'type' => 'string', ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'SubmitJobRequest' => [ 'type' => 'structure', 'required' => [ 'jobName', 'jobQueue', 'jobDefinition', ], 'members' => [ 'jobName' => [ 'shape' => 'String', ], 'jobQueue' => [ 'shape' => 'String', ], 'arrayProperties' => [ 'shape' => 'ArrayProperties', ], 'dependsOn' => [ 'shape' => 'JobDependencyList', ], 'jobDefinition' => [ 'shape' => 'String', ], 'parameters' => [ 'shape' => 'ParametersMap', ], 'containerOverrides' => [ 'shape' => 'ContainerOverrides', ], 'nodeOverrides' => [ 'shape' => 'NodeOverrides', ], 'retryStrategy' => [ 'shape' => 'RetryStrategy', ], 'timeout' => [ 'shape' => 'JobTimeout', ], ], ], 'SubmitJobResponse' => [ 'type' => 'structure', 'required' => [ 'jobName', 'jobId', ], 'members' => [ 'jobName' => [ 'shape' => 'String', ], 'jobId' => [ 'shape' => 'String', ], ], ], 'TagsMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'TerminateJobRequest' => [ 'type' => 'structure', 'required' => [ 'jobId', 'reason', ], 'members' => [ 'jobId' => [ 'shape' => 'String', ], 'reason' => [ 'shape' => 'String', ], ], ], 'TerminateJobResponse' => [ 'type' => 'structure', 'members' => [], ], 'Ulimit' => [ 'type' => 'structure', 'required' => [ 'hardLimit', 'name', 'softLimit', ], 'members' => [ 'hardLimit' => [ 'shape' => 'Integer', ], 'name' => [ 'shape' => 'String', ], 'softLimit' => [ 'shape' => 'Integer', ], ], ], 'Ulimits' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ulimit', ], ], 'UpdateComputeEnvironmentRequest' => [ 'type' => 'structure', 'required' => [ 'computeEnvironment', ], 'members' => [ 'computeEnvironment' => [ 'shape' => 'String', ], 'state' => [ 'shape' => 'CEState', ], 'computeResources' => [ 'shape' => 'ComputeResourceUpdate', ], 'serviceRole' => [ 'shape' => 'String', ], ], ], 'UpdateComputeEnvironmentResponse' => [ 'type' => 'structure', 'members' => [ 'computeEnvironmentName' => [ 'shape' => 'String', ], 'computeEnvironmentArn' => [ 'shape' => 'String', ], ], ], 'UpdateJobQueueRequest' => [ 'type' => 'structure', 'required' => [ 'jobQueue', ], 'members' => [ 'jobQueue' => [ 'shape' => 'String', ], 'state' => [ 'shape' => 'JQState', ], 'priority' => [ 'shape' => 'Integer', ], 'computeEnvironmentOrder' => [ 'shape' => 'ComputeEnvironmentOrders', ], ], ], 'UpdateJobQueueResponse' => [ 'type' => 'structure', 'members' => [ 'jobQueueName' => [ 'shape' => 'String', ], 'jobQueueArn' => [ 'shape' => 'String', ], ], ], 'Volume' => [ 'type' => 'structure', 'members' => [ 'host' => [ 'shape' => 'Host', ], 'name' => [ 'shape' => 'String', ], ], ], 'Volumes' => [ 'type' => 'list', 'member' => [ 'shape' => 'Volume', ], ], ],]; diff --git a/lib/aws/Aws/data/batch/2016-08-10/paginators-1.json.php b/lib/aws/Aws/data/batch/2016-08-10/paginators-1.json.php new file mode 100644 index 0000000..7c1985a --- /dev/null +++ b/lib/aws/Aws/data/batch/2016-08-10/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/batch/2016-08-10/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/batch/2016-08-10/smoke.json.php b/lib/aws/Aws/data/batch/2016-08-10/smoke.json.php new file mode 100644 index 0000000..e3aa487 --- /dev/null +++ b/lib/aws/Aws/data/batch/2016-08-10/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/batch/2016-08-10/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeComputeEnvironments', 'input' => [], 'errorExpectedFromService' => false, ], ],]; diff --git a/lib/aws/Aws/data/budgets/2016-10-20/api-2.json.php b/lib/aws/Aws/data/budgets/2016-10-20/api-2.json.php new file mode 100644 index 0000000..cb03f19 --- /dev/null +++ b/lib/aws/Aws/data/budgets/2016-10-20/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/budgets/2016-10-20/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-10-20', 'endpointPrefix' => 'budgets', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'AWSBudgets', 'serviceFullName' => 'AWS Budgets', 'serviceId' => 'Budgets', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWSBudgetServiceGateway', 'uid' => 'budgets-2016-10-20', ], 'operations' => [ 'CreateBudget' => [ 'name' => 'CreateBudget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateBudgetRequest', ], 'output' => [ 'shape' => 'CreateBudgetResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'CreationLimitExceededException', ], [ 'shape' => 'DuplicateRecordException', ], ], ], 'CreateNotification' => [ 'name' => 'CreateNotification', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNotificationRequest', ], 'output' => [ 'shape' => 'CreateNotificationResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'CreationLimitExceededException', ], [ 'shape' => 'DuplicateRecordException', ], ], ], 'CreateSubscriber' => [ 'name' => 'CreateSubscriber', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSubscriberRequest', ], 'output' => [ 'shape' => 'CreateSubscriberResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'CreationLimitExceededException', ], [ 'shape' => 'DuplicateRecordException', ], [ 'shape' => 'NotFoundException', ], ], ], 'DeleteBudget' => [ 'name' => 'DeleteBudget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteBudgetRequest', ], 'output' => [ 'shape' => 'DeleteBudgetResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotFoundException', ], ], ], 'DeleteNotification' => [ 'name' => 'DeleteNotification', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNotificationRequest', ], 'output' => [ 'shape' => 'DeleteNotificationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotFoundException', ], ], ], 'DeleteSubscriber' => [ 'name' => 'DeleteSubscriber', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSubscriberRequest', ], 'output' => [ 'shape' => 'DeleteSubscriberResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotFoundException', ], ], ], 'DescribeBudget' => [ 'name' => 'DescribeBudget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeBudgetRequest', ], 'output' => [ 'shape' => 'DescribeBudgetResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotFoundException', ], ], ], 'DescribeBudgetPerformanceHistory' => [ 'name' => 'DescribeBudgetPerformanceHistory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeBudgetPerformanceHistoryRequest', ], 'output' => [ 'shape' => 'DescribeBudgetPerformanceHistoryResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ExpiredNextTokenException', ], ], ], 'DescribeBudgets' => [ 'name' => 'DescribeBudgets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeBudgetsRequest', ], 'output' => [ 'shape' => 'DescribeBudgetsResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ExpiredNextTokenException', ], ], ], 'DescribeNotificationsForBudget' => [ 'name' => 'DescribeNotificationsForBudget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNotificationsForBudgetRequest', ], 'output' => [ 'shape' => 'DescribeNotificationsForBudgetResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ExpiredNextTokenException', ], ], ], 'DescribeSubscribersForNotification' => [ 'name' => 'DescribeSubscribersForNotification', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSubscribersForNotificationRequest', ], 'output' => [ 'shape' => 'DescribeSubscribersForNotificationResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ExpiredNextTokenException', ], ], ], 'UpdateBudget' => [ 'name' => 'UpdateBudget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateBudgetRequest', ], 'output' => [ 'shape' => 'UpdateBudgetResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotFoundException', ], ], ], 'UpdateNotification' => [ 'name' => 'UpdateNotification', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateNotificationRequest', ], 'output' => [ 'shape' => 'UpdateNotificationResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DuplicateRecordException', ], ], ], 'UpdateSubscriber' => [ 'name' => 'UpdateSubscriber', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSubscriberRequest', ], 'output' => [ 'shape' => 'UpdateSubscriberResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DuplicateRecordException', ], ], ], ], 'shapes' => [ 'AccountId' => [ 'type' => 'string', 'max' => 12, 'min' => 12, 'pattern' => '\\d{12}', ], 'Budget' => [ 'type' => 'structure', 'required' => [ 'BudgetName', 'TimeUnit', 'BudgetType', ], 'members' => [ 'BudgetName' => [ 'shape' => 'BudgetName', ], 'BudgetLimit' => [ 'shape' => 'Spend', ], 'CostFilters' => [ 'shape' => 'CostFilters', ], 'CostTypes' => [ 'shape' => 'CostTypes', ], 'TimeUnit' => [ 'shape' => 'TimeUnit', ], 'TimePeriod' => [ 'shape' => 'TimePeriod', ], 'CalculatedSpend' => [ 'shape' => 'CalculatedSpend', ], 'BudgetType' => [ 'shape' => 'BudgetType', ], 'LastUpdatedTime' => [ 'shape' => 'GenericTimestamp', ], ], ], 'BudgetName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[^:\\\\]+', ], 'BudgetPerformanceHistory' => [ 'type' => 'structure', 'members' => [ 'BudgetName' => [ 'shape' => 'BudgetName', ], 'BudgetType' => [ 'shape' => 'BudgetType', ], 'CostFilters' => [ 'shape' => 'CostFilters', ], 'CostTypes' => [ 'shape' => 'CostTypes', ], 'TimeUnit' => [ 'shape' => 'TimeUnit', ], 'BudgetedAndActualAmountsList' => [ 'shape' => 'BudgetedAndActualAmountsList', ], ], ], 'BudgetType' => [ 'type' => 'string', 'enum' => [ 'USAGE', 'COST', 'RI_UTILIZATION', 'RI_COVERAGE', ], ], 'BudgetedAndActualAmounts' => [ 'type' => 'structure', 'members' => [ 'BudgetedAmount' => [ 'shape' => 'Spend', ], 'ActualAmount' => [ 'shape' => 'Spend', ], 'TimePeriod' => [ 'shape' => 'TimePeriod', ], ], ], 'BudgetedAndActualAmountsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BudgetedAndActualAmounts', ], ], 'Budgets' => [ 'type' => 'list', 'member' => [ 'shape' => 'Budget', ], ], 'CalculatedSpend' => [ 'type' => 'structure', 'required' => [ 'ActualSpend', ], 'members' => [ 'ActualSpend' => [ 'shape' => 'Spend', ], 'ForecastedSpend' => [ 'shape' => 'Spend', ], ], ], 'ComparisonOperator' => [ 'type' => 'string', 'enum' => [ 'GREATER_THAN', 'LESS_THAN', 'EQUAL_TO', ], ], 'CostFilters' => [ 'type' => 'map', 'key' => [ 'shape' => 'GenericString', ], 'value' => [ 'shape' => 'DimensionValues', ], ], 'CostTypes' => [ 'type' => 'structure', 'members' => [ 'IncludeTax' => [ 'shape' => 'NullableBoolean', ], 'IncludeSubscription' => [ 'shape' => 'NullableBoolean', ], 'UseBlended' => [ 'shape' => 'NullableBoolean', ], 'IncludeRefund' => [ 'shape' => 'NullableBoolean', ], 'IncludeCredit' => [ 'shape' => 'NullableBoolean', ], 'IncludeUpfront' => [ 'shape' => 'NullableBoolean', ], 'IncludeRecurring' => [ 'shape' => 'NullableBoolean', ], 'IncludeOtherSubscription' => [ 'shape' => 'NullableBoolean', ], 'IncludeSupport' => [ 'shape' => 'NullableBoolean', ], 'IncludeDiscount' => [ 'shape' => 'NullableBoolean', ], 'UseAmortized' => [ 'shape' => 'NullableBoolean', ], ], ], 'CreateBudgetRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'Budget', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'Budget' => [ 'shape' => 'Budget', ], 'NotificationsWithSubscribers' => [ 'shape' => 'NotificationWithSubscribersList', ], ], ], 'CreateBudgetResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateNotificationRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'BudgetName', 'Notification', 'Subscribers', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'BudgetName' => [ 'shape' => 'BudgetName', ], 'Notification' => [ 'shape' => 'Notification', ], 'Subscribers' => [ 'shape' => 'Subscribers', ], ], ], 'CreateNotificationResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateSubscriberRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'BudgetName', 'Notification', 'Subscriber', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'BudgetName' => [ 'shape' => 'BudgetName', ], 'Notification' => [ 'shape' => 'Notification', ], 'Subscriber' => [ 'shape' => 'Subscriber', ], ], ], 'CreateSubscriberResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreationLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'DeleteBudgetRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'BudgetName', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'BudgetName' => [ 'shape' => 'BudgetName', ], ], ], 'DeleteBudgetResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteNotificationRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'BudgetName', 'Notification', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'BudgetName' => [ 'shape' => 'BudgetName', ], 'Notification' => [ 'shape' => 'Notification', ], ], ], 'DeleteNotificationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteSubscriberRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'BudgetName', 'Notification', 'Subscriber', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'BudgetName' => [ 'shape' => 'BudgetName', ], 'Notification' => [ 'shape' => 'Notification', ], 'Subscriber' => [ 'shape' => 'Subscriber', ], ], ], 'DeleteSubscriberResponse' => [ 'type' => 'structure', 'members' => [], ], 'DescribeBudgetPerformanceHistoryRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'BudgetName', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'BudgetName' => [ 'shape' => 'BudgetName', ], 'TimePeriod' => [ 'shape' => 'TimePeriod', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'DescribeBudgetPerformanceHistoryResponse' => [ 'type' => 'structure', 'members' => [ 'BudgetPerformanceHistory' => [ 'shape' => 'BudgetPerformanceHistory', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'DescribeBudgetRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'BudgetName', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'BudgetName' => [ 'shape' => 'BudgetName', ], ], ], 'DescribeBudgetResponse' => [ 'type' => 'structure', 'members' => [ 'Budget' => [ 'shape' => 'Budget', ], ], ], 'DescribeBudgetsRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'DescribeBudgetsResponse' => [ 'type' => 'structure', 'members' => [ 'Budgets' => [ 'shape' => 'Budgets', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'DescribeNotificationsForBudgetRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'BudgetName', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'BudgetName' => [ 'shape' => 'BudgetName', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'DescribeNotificationsForBudgetResponse' => [ 'type' => 'structure', 'members' => [ 'Notifications' => [ 'shape' => 'Notifications', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'DescribeSubscribersForNotificationRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'BudgetName', 'Notification', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'BudgetName' => [ 'shape' => 'BudgetName', ], 'Notification' => [ 'shape' => 'Notification', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'DescribeSubscribersForNotificationResponse' => [ 'type' => 'structure', 'members' => [ 'Subscribers' => [ 'shape' => 'Subscribers', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'DimensionValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'GenericString', ], ], 'DuplicateRecordException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'ExpiredNextTokenException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'GenericString' => [ 'type' => 'string', 'max' => 2147483647, 'min' => 0, 'pattern' => '.*', ], 'GenericTimestamp' => [ 'type' => 'timestamp', ], 'InternalErrorException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'MaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'Notification' => [ 'type' => 'structure', 'required' => [ 'NotificationType', 'ComparisonOperator', 'Threshold', ], 'members' => [ 'NotificationType' => [ 'shape' => 'NotificationType', ], 'ComparisonOperator' => [ 'shape' => 'ComparisonOperator', ], 'Threshold' => [ 'shape' => 'NotificationThreshold', ], 'ThresholdType' => [ 'shape' => 'ThresholdType', ], 'NotificationState' => [ 'shape' => 'NotificationState', ], ], ], 'NotificationState' => [ 'type' => 'string', 'enum' => [ 'OK', 'ALARM', ], ], 'NotificationThreshold' => [ 'type' => 'double', 'max' => 1000000000, 'min' => 0, ], 'NotificationType' => [ 'type' => 'string', 'enum' => [ 'ACTUAL', 'FORECASTED', ], ], 'NotificationWithSubscribers' => [ 'type' => 'structure', 'required' => [ 'Notification', 'Subscribers', ], 'members' => [ 'Notification' => [ 'shape' => 'Notification', ], 'Subscribers' => [ 'shape' => 'Subscribers', ], ], ], 'NotificationWithSubscribersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NotificationWithSubscribers', ], 'max' => 5, ], 'Notifications' => [ 'type' => 'list', 'member' => [ 'shape' => 'Notification', ], ], 'NullableBoolean' => [ 'type' => 'boolean', 'box' => true, ], 'NumericValue' => [ 'type' => 'string', 'max' => 2147483647, 'min' => 1, 'pattern' => '([0-9]*\\.)?[0-9]+', ], 'Spend' => [ 'type' => 'structure', 'required' => [ 'Amount', 'Unit', ], 'members' => [ 'Amount' => [ 'shape' => 'NumericValue', ], 'Unit' => [ 'shape' => 'UnitValue', ], ], ], 'Subscriber' => [ 'type' => 'structure', 'required' => [ 'SubscriptionType', 'Address', ], 'members' => [ 'SubscriptionType' => [ 'shape' => 'SubscriptionType', ], 'Address' => [ 'shape' => 'SubscriberAddress', ], ], ], 'SubscriberAddress' => [ 'type' => 'string', 'max' => 2147483647, 'min' => 1, 'pattern' => '.*', 'sensitive' => true, ], 'Subscribers' => [ 'type' => 'list', 'member' => [ 'shape' => 'Subscriber', ], 'max' => 11, 'min' => 1, ], 'SubscriptionType' => [ 'type' => 'string', 'enum' => [ 'SNS', 'EMAIL', ], ], 'ThresholdType' => [ 'type' => 'string', 'enum' => [ 'PERCENTAGE', 'ABSOLUTE_VALUE', ], ], 'TimePeriod' => [ 'type' => 'structure', 'members' => [ 'Start' => [ 'shape' => 'GenericTimestamp', ], 'End' => [ 'shape' => 'GenericTimestamp', ], ], ], 'TimeUnit' => [ 'type' => 'string', 'enum' => [ 'DAILY', 'MONTHLY', 'QUARTERLY', 'ANNUALLY', ], ], 'UnitValue' => [ 'type' => 'string', 'max' => 2147483647, 'min' => 1, 'pattern' => '.*', ], 'UpdateBudgetRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'NewBudget', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'NewBudget' => [ 'shape' => 'Budget', ], ], ], 'UpdateBudgetResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateNotificationRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'BudgetName', 'OldNotification', 'NewNotification', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'BudgetName' => [ 'shape' => 'BudgetName', ], 'OldNotification' => [ 'shape' => 'Notification', ], 'NewNotification' => [ 'shape' => 'Notification', ], ], ], 'UpdateNotificationResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateSubscriberRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'BudgetName', 'Notification', 'OldSubscriber', 'NewSubscriber', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'BudgetName' => [ 'shape' => 'BudgetName', ], 'Notification' => [ 'shape' => 'Notification', ], 'OldSubscriber' => [ 'shape' => 'Subscriber', ], 'NewSubscriber' => [ 'shape' => 'Subscriber', ], ], ], 'UpdateSubscriberResponse' => [ 'type' => 'structure', 'members' => [], ], 'errorMessage' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/budgets/2016-10-20/paginators-1.json.php b/lib/aws/Aws/data/budgets/2016-10-20/paginators-1.json.php new file mode 100644 index 0000000..ebfa78d --- /dev/null +++ b/lib/aws/Aws/data/budgets/2016-10-20/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/budgets/2016-10-20/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/ce/2017-10-25/api-2.json.php b/lib/aws/Aws/data/ce/2017-10-25/api-2.json.php new file mode 100644 index 0000000..22b136d --- /dev/null +++ b/lib/aws/Aws/data/ce/2017-10-25/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ce/2017-10-25/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-10-25', 'endpointPrefix' => 'ce', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'AWS Cost Explorer', 'serviceFullName' => 'AWS Cost Explorer Service', 'serviceId' => 'Cost Explorer', 'signatureVersion' => 'v4', 'signingName' => 'ce', 'targetPrefix' => 'AWSInsightsIndexService', 'uid' => 'ce-2017-10-25', ], 'operations' => [ 'GetCostAndUsage' => [ 'name' => 'GetCostAndUsage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCostAndUsageRequest', ], 'output' => [ 'shape' => 'GetCostAndUsageResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'BillExpirationException', ], [ 'shape' => 'DataUnavailableException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'RequestChangedException', ], ], ], 'GetCostForecast' => [ 'name' => 'GetCostForecast', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCostForecastRequest', ], 'output' => [ 'shape' => 'GetCostForecastResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'DataUnavailableException', ], ], ], 'GetDimensionValues' => [ 'name' => 'GetDimensionValues', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDimensionValuesRequest', ], 'output' => [ 'shape' => 'GetDimensionValuesResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'BillExpirationException', ], [ 'shape' => 'DataUnavailableException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'RequestChangedException', ], ], ], 'GetReservationCoverage' => [ 'name' => 'GetReservationCoverage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetReservationCoverageRequest', ], 'output' => [ 'shape' => 'GetReservationCoverageResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'DataUnavailableException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'GetReservationPurchaseRecommendation' => [ 'name' => 'GetReservationPurchaseRecommendation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetReservationPurchaseRecommendationRequest', ], 'output' => [ 'shape' => 'GetReservationPurchaseRecommendationResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'DataUnavailableException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'GetReservationUtilization' => [ 'name' => 'GetReservationUtilization', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetReservationUtilizationRequest', ], 'output' => [ 'shape' => 'GetReservationUtilizationResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'DataUnavailableException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'GetTags' => [ 'name' => 'GetTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTagsRequest', ], 'output' => [ 'shape' => 'GetTagsResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'BillExpirationException', ], [ 'shape' => 'DataUnavailableException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'RequestChangedException', ], ], ], ], 'shapes' => [ 'AccountScope' => [ 'type' => 'string', 'enum' => [ 'PAYER', 'LINKED', ], ], 'AmortizedRecurringFee' => [ 'type' => 'string', ], 'AmortizedUpfrontFee' => [ 'type' => 'string', ], 'AttributeType' => [ 'type' => 'string', ], 'AttributeValue' => [ 'type' => 'string', ], 'Attributes' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttributeType', ], 'value' => [ 'shape' => 'AttributeValue', ], ], 'BillExpirationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'Context' => [ 'type' => 'string', 'enum' => [ 'COST_AND_USAGE', 'RESERVATIONS', ], ], 'Coverage' => [ 'type' => 'structure', 'members' => [ 'CoverageHours' => [ 'shape' => 'CoverageHours', ], 'CoverageNormalizedUnits' => [ 'shape' => 'CoverageNormalizedUnits', ], 'CoverageCost' => [ 'shape' => 'CoverageCost', ], ], ], 'CoverageByTime' => [ 'type' => 'structure', 'members' => [ 'TimePeriod' => [ 'shape' => 'DateInterval', ], 'Groups' => [ 'shape' => 'ReservationCoverageGroups', ], 'Total' => [ 'shape' => 'Coverage', ], ], ], 'CoverageCost' => [ 'type' => 'structure', 'members' => [ 'OnDemandCost' => [ 'shape' => 'OnDemandCost', ], ], ], 'CoverageHours' => [ 'type' => 'structure', 'members' => [ 'OnDemandHours' => [ 'shape' => 'OnDemandHours', ], 'ReservedHours' => [ 'shape' => 'ReservedHours', ], 'TotalRunningHours' => [ 'shape' => 'TotalRunningHours', ], 'CoverageHoursPercentage' => [ 'shape' => 'CoverageHoursPercentage', ], ], ], 'CoverageHoursPercentage' => [ 'type' => 'string', ], 'CoverageNormalizedUnits' => [ 'type' => 'structure', 'members' => [ 'OnDemandNormalizedUnits' => [ 'shape' => 'OnDemandNormalizedUnits', ], 'ReservedNormalizedUnits' => [ 'shape' => 'ReservedNormalizedUnits', ], 'TotalRunningNormalizedUnits' => [ 'shape' => 'TotalRunningNormalizedUnits', ], 'CoverageNormalizedUnitsPercentage' => [ 'shape' => 'CoverageNormalizedUnitsPercentage', ], ], ], 'CoverageNormalizedUnitsPercentage' => [ 'type' => 'string', ], 'CoveragesByTime' => [ 'type' => 'list', 'member' => [ 'shape' => 'CoverageByTime', ], ], 'DataUnavailableException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'DateInterval' => [ 'type' => 'structure', 'required' => [ 'Start', 'End', ], 'members' => [ 'Start' => [ 'shape' => 'YearMonthDay', ], 'End' => [ 'shape' => 'YearMonthDay', ], ], ], 'Dimension' => [ 'type' => 'string', 'enum' => [ 'AZ', 'INSTANCE_TYPE', 'LINKED_ACCOUNT', 'OPERATION', 'PURCHASE_TYPE', 'REGION', 'SERVICE', 'USAGE_TYPE', 'USAGE_TYPE_GROUP', 'RECORD_TYPE', 'OPERATING_SYSTEM', 'TENANCY', 'SCOPE', 'PLATFORM', 'SUBSCRIPTION_ID', 'LEGAL_ENTITY_NAME', 'DEPLOYMENT_OPTION', 'DATABASE_ENGINE', 'CACHE_ENGINE', 'INSTANCE_TYPE_FAMILY', 'BILLING_ENTITY', 'RESERVATION_ID', ], ], 'DimensionValues' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'Dimension', ], 'Values' => [ 'shape' => 'Values', ], ], ], 'DimensionValuesWithAttributes' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Value', ], 'Attributes' => [ 'shape' => 'Attributes', ], ], ], 'DimensionValuesWithAttributesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DimensionValuesWithAttributes', ], ], 'EC2InstanceDetails' => [ 'type' => 'structure', 'members' => [ 'Family' => [ 'shape' => 'GenericString', ], 'InstanceType' => [ 'shape' => 'GenericString', ], 'Region' => [ 'shape' => 'GenericString', ], 'AvailabilityZone' => [ 'shape' => 'GenericString', ], 'Platform' => [ 'shape' => 'GenericString', ], 'Tenancy' => [ 'shape' => 'GenericString', ], 'CurrentGeneration' => [ 'shape' => 'GenericBoolean', ], 'SizeFlexEligible' => [ 'shape' => 'GenericBoolean', ], ], ], 'EC2Specification' => [ 'type' => 'structure', 'members' => [ 'OfferingClass' => [ 'shape' => 'OfferingClass', ], ], ], 'ESInstanceDetails' => [ 'type' => 'structure', 'members' => [ 'InstanceClass' => [ 'shape' => 'GenericString', ], 'InstanceSize' => [ 'shape' => 'GenericString', ], 'Region' => [ 'shape' => 'GenericString', ], 'CurrentGeneration' => [ 'shape' => 'GenericBoolean', ], 'SizeFlexEligible' => [ 'shape' => 'GenericBoolean', ], ], ], 'ElastiCacheInstanceDetails' => [ 'type' => 'structure', 'members' => [ 'Family' => [ 'shape' => 'GenericString', ], 'NodeType' => [ 'shape' => 'GenericString', ], 'Region' => [ 'shape' => 'GenericString', ], 'ProductDescription' => [ 'shape' => 'GenericString', ], 'CurrentGeneration' => [ 'shape' => 'GenericBoolean', ], 'SizeFlexEligible' => [ 'shape' => 'GenericBoolean', ], ], ], 'Entity' => [ 'type' => 'string', ], 'ErrorMessage' => [ 'type' => 'string', ], 'Estimated' => [ 'type' => 'boolean', ], 'Expression' => [ 'type' => 'structure', 'members' => [ 'Or' => [ 'shape' => 'Expressions', ], 'And' => [ 'shape' => 'Expressions', ], 'Not' => [ 'shape' => 'Expression', ], 'Dimensions' => [ 'shape' => 'DimensionValues', ], 'Tags' => [ 'shape' => 'TagValues', ], ], ], 'Expressions' => [ 'type' => 'list', 'member' => [ 'shape' => 'Expression', ], ], 'ForecastResult' => [ 'type' => 'structure', 'members' => [ 'TimePeriod' => [ 'shape' => 'DateInterval', ], 'MeanValue' => [ 'shape' => 'GenericString', ], 'PredictionIntervalLowerBound' => [ 'shape' => 'GenericString', ], 'PredictionIntervalUpperBound' => [ 'shape' => 'GenericString', ], ], ], 'ForecastResultsByTime' => [ 'type' => 'list', 'member' => [ 'shape' => 'ForecastResult', ], ], 'GenericBoolean' => [ 'type' => 'boolean', ], 'GenericString' => [ 'type' => 'string', ], 'GetCostAndUsageRequest' => [ 'type' => 'structure', 'required' => [ 'TimePeriod', ], 'members' => [ 'TimePeriod' => [ 'shape' => 'DateInterval', ], 'Granularity' => [ 'shape' => 'Granularity', ], 'Filter' => [ 'shape' => 'Expression', ], 'Metrics' => [ 'shape' => 'MetricNames', ], 'GroupBy' => [ 'shape' => 'GroupDefinitions', ], 'NextPageToken' => [ 'shape' => 'NextPageToken', ], ], ], 'GetCostAndUsageResponse' => [ 'type' => 'structure', 'members' => [ 'NextPageToken' => [ 'shape' => 'NextPageToken', ], 'GroupDefinitions' => [ 'shape' => 'GroupDefinitions', ], 'ResultsByTime' => [ 'shape' => 'ResultsByTime', ], ], ], 'GetCostForecastRequest' => [ 'type' => 'structure', 'required' => [ 'TimePeriod', 'Metric', 'Granularity', ], 'members' => [ 'TimePeriod' => [ 'shape' => 'DateInterval', ], 'Metric' => [ 'shape' => 'Metric', ], 'Granularity' => [ 'shape' => 'Granularity', ], 'Filter' => [ 'shape' => 'Expression', ], 'PredictionIntervalLevel' => [ 'shape' => 'PredictionIntervalLevel', ], ], ], 'GetCostForecastResponse' => [ 'type' => 'structure', 'members' => [ 'Total' => [ 'shape' => 'MetricValue', ], 'ForecastResultsByTime' => [ 'shape' => 'ForecastResultsByTime', ], ], ], 'GetDimensionValuesRequest' => [ 'type' => 'structure', 'required' => [ 'TimePeriod', 'Dimension', ], 'members' => [ 'SearchString' => [ 'shape' => 'SearchString', ], 'TimePeriod' => [ 'shape' => 'DateInterval', ], 'Dimension' => [ 'shape' => 'Dimension', ], 'Context' => [ 'shape' => 'Context', ], 'NextPageToken' => [ 'shape' => 'NextPageToken', ], ], ], 'GetDimensionValuesResponse' => [ 'type' => 'structure', 'required' => [ 'DimensionValues', 'ReturnSize', 'TotalSize', ], 'members' => [ 'DimensionValues' => [ 'shape' => 'DimensionValuesWithAttributesList', ], 'ReturnSize' => [ 'shape' => 'PageSize', ], 'TotalSize' => [ 'shape' => 'PageSize', ], 'NextPageToken' => [ 'shape' => 'NextPageToken', ], ], ], 'GetReservationCoverageRequest' => [ 'type' => 'structure', 'required' => [ 'TimePeriod', ], 'members' => [ 'TimePeriod' => [ 'shape' => 'DateInterval', ], 'GroupBy' => [ 'shape' => 'GroupDefinitions', ], 'Granularity' => [ 'shape' => 'Granularity', ], 'Filter' => [ 'shape' => 'Expression', ], 'Metrics' => [ 'shape' => 'MetricNames', ], 'NextPageToken' => [ 'shape' => 'NextPageToken', ], ], ], 'GetReservationCoverageResponse' => [ 'type' => 'structure', 'required' => [ 'CoveragesByTime', ], 'members' => [ 'CoveragesByTime' => [ 'shape' => 'CoveragesByTime', ], 'Total' => [ 'shape' => 'Coverage', ], 'NextPageToken' => [ 'shape' => 'NextPageToken', ], ], ], 'GetReservationPurchaseRecommendationRequest' => [ 'type' => 'structure', 'required' => [ 'Service', ], 'members' => [ 'AccountId' => [ 'shape' => 'GenericString', ], 'Service' => [ 'shape' => 'GenericString', ], 'AccountScope' => [ 'shape' => 'AccountScope', ], 'LookbackPeriodInDays' => [ 'shape' => 'LookbackPeriodInDays', ], 'TermInYears' => [ 'shape' => 'TermInYears', ], 'PaymentOption' => [ 'shape' => 'PaymentOption', ], 'ServiceSpecification' => [ 'shape' => 'ServiceSpecification', ], 'PageSize' => [ 'shape' => 'NonNegativeInteger', ], 'NextPageToken' => [ 'shape' => 'NextPageToken', ], ], ], 'GetReservationPurchaseRecommendationResponse' => [ 'type' => 'structure', 'members' => [ 'Metadata' => [ 'shape' => 'ReservationPurchaseRecommendationMetadata', ], 'Recommendations' => [ 'shape' => 'ReservationPurchaseRecommendations', ], 'NextPageToken' => [ 'shape' => 'NextPageToken', ], ], ], 'GetReservationUtilizationRequest' => [ 'type' => 'structure', 'required' => [ 'TimePeriod', ], 'members' => [ 'TimePeriod' => [ 'shape' => 'DateInterval', ], 'GroupBy' => [ 'shape' => 'GroupDefinitions', ], 'Granularity' => [ 'shape' => 'Granularity', ], 'Filter' => [ 'shape' => 'Expression', ], 'NextPageToken' => [ 'shape' => 'NextPageToken', ], ], ], 'GetReservationUtilizationResponse' => [ 'type' => 'structure', 'required' => [ 'UtilizationsByTime', ], 'members' => [ 'UtilizationsByTime' => [ 'shape' => 'UtilizationsByTime', ], 'Total' => [ 'shape' => 'ReservationAggregates', ], 'NextPageToken' => [ 'shape' => 'NextPageToken', ], ], ], 'GetTagsRequest' => [ 'type' => 'structure', 'required' => [ 'TimePeriod', ], 'members' => [ 'SearchString' => [ 'shape' => 'SearchString', ], 'TimePeriod' => [ 'shape' => 'DateInterval', ], 'TagKey' => [ 'shape' => 'TagKey', ], 'NextPageToken' => [ 'shape' => 'NextPageToken', ], ], ], 'GetTagsResponse' => [ 'type' => 'structure', 'required' => [ 'Tags', 'ReturnSize', 'TotalSize', ], 'members' => [ 'NextPageToken' => [ 'shape' => 'NextPageToken', ], 'Tags' => [ 'shape' => 'TagList', ], 'ReturnSize' => [ 'shape' => 'PageSize', ], 'TotalSize' => [ 'shape' => 'PageSize', ], ], ], 'Granularity' => [ 'type' => 'string', 'enum' => [ 'DAILY', 'MONTHLY', 'HOURLY', ], ], 'Group' => [ 'type' => 'structure', 'members' => [ 'Keys' => [ 'shape' => 'Keys', ], 'Metrics' => [ 'shape' => 'Metrics', ], ], ], 'GroupDefinition' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'GroupDefinitionType', ], 'Key' => [ 'shape' => 'GroupDefinitionKey', ], ], ], 'GroupDefinitionKey' => [ 'type' => 'string', ], 'GroupDefinitionType' => [ 'type' => 'string', 'enum' => [ 'DIMENSION', 'TAG', ], ], 'GroupDefinitions' => [ 'type' => 'list', 'member' => [ 'shape' => 'GroupDefinition', ], ], 'Groups' => [ 'type' => 'list', 'member' => [ 'shape' => 'Group', ], ], 'InstanceDetails' => [ 'type' => 'structure', 'members' => [ 'EC2InstanceDetails' => [ 'shape' => 'EC2InstanceDetails', ], 'RDSInstanceDetails' => [ 'shape' => 'RDSInstanceDetails', ], 'RedshiftInstanceDetails' => [ 'shape' => 'RedshiftInstanceDetails', ], 'ElastiCacheInstanceDetails' => [ 'shape' => 'ElastiCacheInstanceDetails', ], 'ESInstanceDetails' => [ 'shape' => 'ESInstanceDetails', ], ], ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'Key' => [ 'type' => 'string', ], 'Keys' => [ 'type' => 'list', 'member' => [ 'shape' => 'Key', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'LookbackPeriodInDays' => [ 'type' => 'string', 'enum' => [ 'SEVEN_DAYS', 'THIRTY_DAYS', 'SIXTY_DAYS', ], ], 'Metric' => [ 'type' => 'string', 'enum' => [ 'BLENDED_COST', 'UNBLENDED_COST', 'AMORTIZED_COST', 'NET_UNBLENDED_COST', 'NET_AMORTIZED_COST', 'USAGE_QUANTITY', 'NORMALIZED_USAGE_AMOUNT', ], ], 'MetricAmount' => [ 'type' => 'string', ], 'MetricName' => [ 'type' => 'string', ], 'MetricNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricName', ], ], 'MetricUnit' => [ 'type' => 'string', ], 'MetricValue' => [ 'type' => 'structure', 'members' => [ 'Amount' => [ 'shape' => 'MetricAmount', ], 'Unit' => [ 'shape' => 'MetricUnit', ], ], ], 'Metrics' => [ 'type' => 'map', 'key' => [ 'shape' => 'MetricName', ], 'value' => [ 'shape' => 'MetricValue', ], ], 'NetRISavings' => [ 'type' => 'string', ], 'NextPageToken' => [ 'type' => 'string', ], 'NonNegativeInteger' => [ 'type' => 'integer', 'min' => 0, ], 'OfferingClass' => [ 'type' => 'string', 'enum' => [ 'STANDARD', 'CONVERTIBLE', ], ], 'OnDemandCost' => [ 'type' => 'string', ], 'OnDemandCostOfRIHoursUsed' => [ 'type' => 'string', ], 'OnDemandHours' => [ 'type' => 'string', ], 'OnDemandNormalizedUnits' => [ 'type' => 'string', ], 'PageSize' => [ 'type' => 'integer', ], 'PaymentOption' => [ 'type' => 'string', 'enum' => [ 'NO_UPFRONT', 'PARTIAL_UPFRONT', 'ALL_UPFRONT', 'LIGHT_UTILIZATION', 'MEDIUM_UTILIZATION', 'HEAVY_UTILIZATION', ], ], 'PredictionIntervalLevel' => [ 'type' => 'integer', 'max' => 99, 'min' => 51, ], 'PurchasedHours' => [ 'type' => 'string', ], 'PurchasedUnits' => [ 'type' => 'string', ], 'RDSInstanceDetails' => [ 'type' => 'structure', 'members' => [ 'Family' => [ 'shape' => 'GenericString', ], 'InstanceType' => [ 'shape' => 'GenericString', ], 'Region' => [ 'shape' => 'GenericString', ], 'DatabaseEngine' => [ 'shape' => 'GenericString', ], 'DatabaseEdition' => [ 'shape' => 'GenericString', ], 'DeploymentOption' => [ 'shape' => 'GenericString', ], 'LicenseModel' => [ 'shape' => 'GenericString', ], 'CurrentGeneration' => [ 'shape' => 'GenericBoolean', ], 'SizeFlexEligible' => [ 'shape' => 'GenericBoolean', ], ], ], 'RedshiftInstanceDetails' => [ 'type' => 'structure', 'members' => [ 'Family' => [ 'shape' => 'GenericString', ], 'NodeType' => [ 'shape' => 'GenericString', ], 'Region' => [ 'shape' => 'GenericString', ], 'CurrentGeneration' => [ 'shape' => 'GenericBoolean', ], 'SizeFlexEligible' => [ 'shape' => 'GenericBoolean', ], ], ], 'RequestChangedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ReservationAggregates' => [ 'type' => 'structure', 'members' => [ 'UtilizationPercentage' => [ 'shape' => 'UtilizationPercentage', ], 'UtilizationPercentageInUnits' => [ 'shape' => 'UtilizationPercentageInUnits', ], 'PurchasedHours' => [ 'shape' => 'PurchasedHours', ], 'PurchasedUnits' => [ 'shape' => 'PurchasedUnits', ], 'TotalActualHours' => [ 'shape' => 'TotalActualHours', ], 'TotalActualUnits' => [ 'shape' => 'TotalActualUnits', ], 'UnusedHours' => [ 'shape' => 'UnusedHours', ], 'UnusedUnits' => [ 'shape' => 'UnusedUnits', ], 'OnDemandCostOfRIHoursUsed' => [ 'shape' => 'OnDemandCostOfRIHoursUsed', ], 'NetRISavings' => [ 'shape' => 'NetRISavings', ], 'TotalPotentialRISavings' => [ 'shape' => 'TotalPotentialRISavings', ], 'AmortizedUpfrontFee' => [ 'shape' => 'AmortizedUpfrontFee', ], 'AmortizedRecurringFee' => [ 'shape' => 'AmortizedRecurringFee', ], 'TotalAmortizedFee' => [ 'shape' => 'TotalAmortizedFee', ], ], ], 'ReservationCoverageGroup' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'Attributes', ], 'Coverage' => [ 'shape' => 'Coverage', ], ], ], 'ReservationCoverageGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservationCoverageGroup', ], ], 'ReservationGroupKey' => [ 'type' => 'string', ], 'ReservationGroupValue' => [ 'type' => 'string', ], 'ReservationPurchaseRecommendation' => [ 'type' => 'structure', 'members' => [ 'AccountScope' => [ 'shape' => 'AccountScope', ], 'LookbackPeriodInDays' => [ 'shape' => 'LookbackPeriodInDays', ], 'TermInYears' => [ 'shape' => 'TermInYears', ], 'PaymentOption' => [ 'shape' => 'PaymentOption', ], 'ServiceSpecification' => [ 'shape' => 'ServiceSpecification', ], 'RecommendationDetails' => [ 'shape' => 'ReservationPurchaseRecommendationDetails', ], 'RecommendationSummary' => [ 'shape' => 'ReservationPurchaseRecommendationSummary', ], ], ], 'ReservationPurchaseRecommendationDetail' => [ 'type' => 'structure', 'members' => [ 'AccountId' => [ 'shape' => 'GenericString', ], 'InstanceDetails' => [ 'shape' => 'InstanceDetails', ], 'RecommendedNumberOfInstancesToPurchase' => [ 'shape' => 'GenericString', ], 'RecommendedNormalizedUnitsToPurchase' => [ 'shape' => 'GenericString', ], 'MinimumNumberOfInstancesUsedPerHour' => [ 'shape' => 'GenericString', ], 'MinimumNormalizedUnitsUsedPerHour' => [ 'shape' => 'GenericString', ], 'MaximumNumberOfInstancesUsedPerHour' => [ 'shape' => 'GenericString', ], 'MaximumNormalizedUnitsUsedPerHour' => [ 'shape' => 'GenericString', ], 'AverageNumberOfInstancesUsedPerHour' => [ 'shape' => 'GenericString', ], 'AverageNormalizedUnitsUsedPerHour' => [ 'shape' => 'GenericString', ], 'AverageUtilization' => [ 'shape' => 'GenericString', ], 'EstimatedBreakEvenInMonths' => [ 'shape' => 'GenericString', ], 'CurrencyCode' => [ 'shape' => 'GenericString', ], 'EstimatedMonthlySavingsAmount' => [ 'shape' => 'GenericString', ], 'EstimatedMonthlySavingsPercentage' => [ 'shape' => 'GenericString', ], 'EstimatedMonthlyOnDemandCost' => [ 'shape' => 'GenericString', ], 'EstimatedReservationCostForLookbackPeriod' => [ 'shape' => 'GenericString', ], 'UpfrontCost' => [ 'shape' => 'GenericString', ], 'RecurringStandardMonthlyCost' => [ 'shape' => 'GenericString', ], ], ], 'ReservationPurchaseRecommendationDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservationPurchaseRecommendationDetail', ], ], 'ReservationPurchaseRecommendationMetadata' => [ 'type' => 'structure', 'members' => [ 'RecommendationId' => [ 'shape' => 'GenericString', ], 'GenerationTimestamp' => [ 'shape' => 'GenericString', ], ], ], 'ReservationPurchaseRecommendationSummary' => [ 'type' => 'structure', 'members' => [ 'TotalEstimatedMonthlySavingsAmount' => [ 'shape' => 'GenericString', ], 'TotalEstimatedMonthlySavingsPercentage' => [ 'shape' => 'GenericString', ], 'CurrencyCode' => [ 'shape' => 'GenericString', ], ], ], 'ReservationPurchaseRecommendations' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservationPurchaseRecommendation', ], ], 'ReservationUtilizationGroup' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'ReservationGroupKey', ], 'Value' => [ 'shape' => 'ReservationGroupValue', ], 'Attributes' => [ 'shape' => 'Attributes', ], 'Utilization' => [ 'shape' => 'ReservationAggregates', ], ], ], 'ReservationUtilizationGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservationUtilizationGroup', ], ], 'ReservedHours' => [ 'type' => 'string', ], 'ReservedNormalizedUnits' => [ 'type' => 'string', ], 'ResultByTime' => [ 'type' => 'structure', 'members' => [ 'TimePeriod' => [ 'shape' => 'DateInterval', ], 'Total' => [ 'shape' => 'Metrics', ], 'Groups' => [ 'shape' => 'Groups', ], 'Estimated' => [ 'shape' => 'Estimated', ], ], ], 'ResultsByTime' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResultByTime', ], ], 'SearchString' => [ 'type' => 'string', ], 'ServiceSpecification' => [ 'type' => 'structure', 'members' => [ 'EC2Specification' => [ 'shape' => 'EC2Specification', ], ], ], 'TagKey' => [ 'type' => 'string', ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Entity', ], ], 'TagValues' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Values' => [ 'shape' => 'Values', ], ], ], 'TermInYears' => [ 'type' => 'string', 'enum' => [ 'ONE_YEAR', 'THREE_YEARS', ], ], 'TotalActualHours' => [ 'type' => 'string', ], 'TotalActualUnits' => [ 'type' => 'string', ], 'TotalAmortizedFee' => [ 'type' => 'string', ], 'TotalPotentialRISavings' => [ 'type' => 'string', ], 'TotalRunningHours' => [ 'type' => 'string', ], 'TotalRunningNormalizedUnits' => [ 'type' => 'string', ], 'UnusedHours' => [ 'type' => 'string', ], 'UnusedUnits' => [ 'type' => 'string', ], 'UtilizationByTime' => [ 'type' => 'structure', 'members' => [ 'TimePeriod' => [ 'shape' => 'DateInterval', ], 'Groups' => [ 'shape' => 'ReservationUtilizationGroups', ], 'Total' => [ 'shape' => 'ReservationAggregates', ], ], ], 'UtilizationPercentage' => [ 'type' => 'string', ], 'UtilizationPercentageInUnits' => [ 'type' => 'string', ], 'UtilizationsByTime' => [ 'type' => 'list', 'member' => [ 'shape' => 'UtilizationByTime', ], ], 'Value' => [ 'type' => 'string', ], 'Values' => [ 'type' => 'list', 'member' => [ 'shape' => 'Value', ], ], 'YearMonthDay' => [ 'type' => 'string', 'pattern' => '(\\d{4}-\\d{2}-\\d{2})(T\\d{2}:\\d{2}:\\d{2}Z)?', ], ],]; diff --git a/lib/aws/Aws/data/ce/2017-10-25/paginators-1.json.php b/lib/aws/Aws/data/ce/2017-10-25/paginators-1.json.php new file mode 100644 index 0000000..5ebdca9 --- /dev/null +++ b/lib/aws/Aws/data/ce/2017-10-25/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ce/2017-10-25/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/chime/2018-05-01/api-2.json.php b/lib/aws/Aws/data/chime/2018-05-01/api-2.json.php new file mode 100644 index 0000000..7e65a10 --- /dev/null +++ b/lib/aws/Aws/data/chime/2018-05-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/chime/2018-05-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-05-01', 'endpointPrefix' => 'chime', 'protocol' => 'rest-json', 'serviceFullName' => 'Amazon Chime', 'serviceId' => 'Chime', 'signatureVersion' => 'v4', 'uid' => 'chime-2018-05-01', ], 'operations' => [ 'AssociatePhoneNumberWithUser' => [ 'name' => 'AssociatePhoneNumberWithUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/accounts/{accountId}/users/{userId}?operation=associate-phone-number', 'responseCode' => 200, ], 'input' => [ 'shape' => 'AssociatePhoneNumberWithUserRequest', ], 'output' => [ 'shape' => 'AssociatePhoneNumberWithUserResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'AssociatePhoneNumbersWithVoiceConnector' => [ 'name' => 'AssociatePhoneNumbersWithVoiceConnector', 'http' => [ 'method' => 'POST', 'requestUri' => '/voice-connectors/{voiceConnectorId}?operation=associate-phone-numbers', 'responseCode' => 200, ], 'input' => [ 'shape' => 'AssociatePhoneNumbersWithVoiceConnectorRequest', ], 'output' => [ 'shape' => 'AssociatePhoneNumbersWithVoiceConnectorResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'BatchDeletePhoneNumber' => [ 'name' => 'BatchDeletePhoneNumber', 'http' => [ 'method' => 'POST', 'requestUri' => '/phone-numbers?operation=batch-delete', 'responseCode' => 200, ], 'input' => [ 'shape' => 'BatchDeletePhoneNumberRequest', ], 'output' => [ 'shape' => 'BatchDeletePhoneNumberResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'BatchSuspendUser' => [ 'name' => 'BatchSuspendUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/accounts/{accountId}/users?operation=suspend', 'responseCode' => 200, ], 'input' => [ 'shape' => 'BatchSuspendUserRequest', ], 'output' => [ 'shape' => 'BatchSuspendUserResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'BatchUnsuspendUser' => [ 'name' => 'BatchUnsuspendUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/accounts/{accountId}/users?operation=unsuspend', 'responseCode' => 200, ], 'input' => [ 'shape' => 'BatchUnsuspendUserRequest', ], 'output' => [ 'shape' => 'BatchUnsuspendUserResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'BatchUpdatePhoneNumber' => [ 'name' => 'BatchUpdatePhoneNumber', 'http' => [ 'method' => 'POST', 'requestUri' => '/phone-numbers?operation=batch-update', 'responseCode' => 200, ], 'input' => [ 'shape' => 'BatchUpdatePhoneNumberRequest', ], 'output' => [ 'shape' => 'BatchUpdatePhoneNumberResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'BatchUpdateUser' => [ 'name' => 'BatchUpdateUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/accounts/{accountId}/users', 'responseCode' => 200, ], 'input' => [ 'shape' => 'BatchUpdateUserRequest', ], 'output' => [ 'shape' => 'BatchUpdateUserResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'CreateAccount' => [ 'name' => 'CreateAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/accounts', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateAccountRequest', ], 'output' => [ 'shape' => 'CreateAccountResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'CreatePhoneNumberOrder' => [ 'name' => 'CreatePhoneNumberOrder', 'http' => [ 'method' => 'POST', 'requestUri' => '/phone-number-orders', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreatePhoneNumberOrderRequest', ], 'output' => [ 'shape' => 'CreatePhoneNumberOrderResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'CreateVoiceConnector' => [ 'name' => 'CreateVoiceConnector', 'http' => [ 'method' => 'POST', 'requestUri' => '/voice-connectors', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateVoiceConnectorRequest', ], 'output' => [ 'shape' => 'CreateVoiceConnectorResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteAccount' => [ 'name' => 'DeleteAccount', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/accounts/{accountId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteAccountRequest', ], 'output' => [ 'shape' => 'DeleteAccountResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'UnprocessableEntityException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeletePhoneNumber' => [ 'name' => 'DeletePhoneNumber', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/phone-numbers/{phoneNumberId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeletePhoneNumberRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteVoiceConnector' => [ 'name' => 'DeleteVoiceConnector', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/voice-connectors/{voiceConnectorId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteVoiceConnectorRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteVoiceConnectorOrigination' => [ 'name' => 'DeleteVoiceConnectorOrigination', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/voice-connectors/{voiceConnectorId}/origination', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteVoiceConnectorOriginationRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteVoiceConnectorTermination' => [ 'name' => 'DeleteVoiceConnectorTermination', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/voice-connectors/{voiceConnectorId}/termination', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteVoiceConnectorTerminationRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteVoiceConnectorTerminationCredentials' => [ 'name' => 'DeleteVoiceConnectorTerminationCredentials', 'http' => [ 'method' => 'POST', 'requestUri' => '/voice-connectors/{voiceConnectorId}/termination/credentials?operation=delete', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteVoiceConnectorTerminationCredentialsRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DisassociatePhoneNumberFromUser' => [ 'name' => 'DisassociatePhoneNumberFromUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/accounts/{accountId}/users/{userId}?operation=disassociate-phone-number', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DisassociatePhoneNumberFromUserRequest', ], 'output' => [ 'shape' => 'DisassociatePhoneNumberFromUserResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DisassociatePhoneNumbersFromVoiceConnector' => [ 'name' => 'DisassociatePhoneNumbersFromVoiceConnector', 'http' => [ 'method' => 'POST', 'requestUri' => '/voice-connectors/{voiceConnectorId}?operation=disassociate-phone-numbers', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DisassociatePhoneNumbersFromVoiceConnectorRequest', ], 'output' => [ 'shape' => 'DisassociatePhoneNumbersFromVoiceConnectorResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetAccount' => [ 'name' => 'GetAccount', 'http' => [ 'method' => 'GET', 'requestUri' => '/accounts/{accountId}', ], 'input' => [ 'shape' => 'GetAccountRequest', ], 'output' => [ 'shape' => 'GetAccountResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetAccountSettings' => [ 'name' => 'GetAccountSettings', 'http' => [ 'method' => 'GET', 'requestUri' => '/accounts/{accountId}/settings', ], 'input' => [ 'shape' => 'GetAccountSettingsRequest', ], 'output' => [ 'shape' => 'GetAccountSettingsResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetGlobalSettings' => [ 'name' => 'GetGlobalSettings', 'http' => [ 'method' => 'GET', 'requestUri' => '/settings', 'responseCode' => 200, ], 'output' => [ 'shape' => 'GetGlobalSettingsResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetPhoneNumber' => [ 'name' => 'GetPhoneNumber', 'http' => [ 'method' => 'GET', 'requestUri' => '/phone-numbers/{phoneNumberId}', ], 'input' => [ 'shape' => 'GetPhoneNumberRequest', ], 'output' => [ 'shape' => 'GetPhoneNumberResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetPhoneNumberOrder' => [ 'name' => 'GetPhoneNumberOrder', 'http' => [ 'method' => 'GET', 'requestUri' => '/phone-number-orders/{phoneNumberOrderId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPhoneNumberOrderRequest', ], 'output' => [ 'shape' => 'GetPhoneNumberOrderResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetUser' => [ 'name' => 'GetUser', 'http' => [ 'method' => 'GET', 'requestUri' => '/accounts/{accountId}/users/{userId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetUserRequest', ], 'output' => [ 'shape' => 'GetUserResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetUserSettings' => [ 'name' => 'GetUserSettings', 'http' => [ 'method' => 'GET', 'requestUri' => '/accounts/{accountId}/users/{userId}/settings', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetUserSettingsRequest', ], 'output' => [ 'shape' => 'GetUserSettingsResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetVoiceConnector' => [ 'name' => 'GetVoiceConnector', 'http' => [ 'method' => 'GET', 'requestUri' => '/voice-connectors/{voiceConnectorId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetVoiceConnectorRequest', ], 'output' => [ 'shape' => 'GetVoiceConnectorResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetVoiceConnectorOrigination' => [ 'name' => 'GetVoiceConnectorOrigination', 'http' => [ 'method' => 'GET', 'requestUri' => '/voice-connectors/{voiceConnectorId}/origination', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetVoiceConnectorOriginationRequest', ], 'output' => [ 'shape' => 'GetVoiceConnectorOriginationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetVoiceConnectorTermination' => [ 'name' => 'GetVoiceConnectorTermination', 'http' => [ 'method' => 'GET', 'requestUri' => '/voice-connectors/{voiceConnectorId}/termination', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetVoiceConnectorTerminationRequest', ], 'output' => [ 'shape' => 'GetVoiceConnectorTerminationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetVoiceConnectorTerminationHealth' => [ 'name' => 'GetVoiceConnectorTerminationHealth', 'http' => [ 'method' => 'GET', 'requestUri' => '/voice-connectors/{voiceConnectorId}/termination/health', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetVoiceConnectorTerminationHealthRequest', ], 'output' => [ 'shape' => 'GetVoiceConnectorTerminationHealthResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'InviteUsers' => [ 'name' => 'InviteUsers', 'http' => [ 'method' => 'POST', 'requestUri' => '/accounts/{accountId}/users?operation=add', 'responseCode' => 201, ], 'input' => [ 'shape' => 'InviteUsersRequest', ], 'output' => [ 'shape' => 'InviteUsersResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListAccounts' => [ 'name' => 'ListAccounts', 'http' => [ 'method' => 'GET', 'requestUri' => '/accounts', ], 'input' => [ 'shape' => 'ListAccountsRequest', ], 'output' => [ 'shape' => 'ListAccountsResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListPhoneNumberOrders' => [ 'name' => 'ListPhoneNumberOrders', 'http' => [ 'method' => 'GET', 'requestUri' => '/phone-number-orders', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPhoneNumberOrdersRequest', ], 'output' => [ 'shape' => 'ListPhoneNumberOrdersResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListPhoneNumbers' => [ 'name' => 'ListPhoneNumbers', 'http' => [ 'method' => 'GET', 'requestUri' => '/phone-numbers', ], 'input' => [ 'shape' => 'ListPhoneNumbersRequest', ], 'output' => [ 'shape' => 'ListPhoneNumbersResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListUsers' => [ 'name' => 'ListUsers', 'http' => [ 'method' => 'GET', 'requestUri' => '/accounts/{accountId}/users', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListUsersRequest', ], 'output' => [ 'shape' => 'ListUsersResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListVoiceConnectorTerminationCredentials' => [ 'name' => 'ListVoiceConnectorTerminationCredentials', 'http' => [ 'method' => 'GET', 'requestUri' => '/voice-connectors/{voiceConnectorId}/termination/credentials', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListVoiceConnectorTerminationCredentialsRequest', ], 'output' => [ 'shape' => 'ListVoiceConnectorTerminationCredentialsResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListVoiceConnectors' => [ 'name' => 'ListVoiceConnectors', 'http' => [ 'method' => 'GET', 'requestUri' => '/voice-connectors', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListVoiceConnectorsRequest', ], 'output' => [ 'shape' => 'ListVoiceConnectorsResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'LogoutUser' => [ 'name' => 'LogoutUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/accounts/{accountId}/users/{userId}?operation=logout', 'responseCode' => 204, ], 'input' => [ 'shape' => 'LogoutUserRequest', ], 'output' => [ 'shape' => 'LogoutUserResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'PutVoiceConnectorOrigination' => [ 'name' => 'PutVoiceConnectorOrigination', 'http' => [ 'method' => 'PUT', 'requestUri' => '/voice-connectors/{voiceConnectorId}/origination', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PutVoiceConnectorOriginationRequest', ], 'output' => [ 'shape' => 'PutVoiceConnectorOriginationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'PutVoiceConnectorTermination' => [ 'name' => 'PutVoiceConnectorTermination', 'http' => [ 'method' => 'PUT', 'requestUri' => '/voice-connectors/{voiceConnectorId}/termination', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PutVoiceConnectorTerminationRequest', ], 'output' => [ 'shape' => 'PutVoiceConnectorTerminationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'PutVoiceConnectorTerminationCredentials' => [ 'name' => 'PutVoiceConnectorTerminationCredentials', 'http' => [ 'method' => 'POST', 'requestUri' => '/voice-connectors/{voiceConnectorId}/termination/credentials?operation=put', 'responseCode' => 204, ], 'input' => [ 'shape' => 'PutVoiceConnectorTerminationCredentialsRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ResetPersonalPIN' => [ 'name' => 'ResetPersonalPIN', 'http' => [ 'method' => 'POST', 'requestUri' => '/accounts/{accountId}/users/{userId}?operation=reset-personal-pin', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ResetPersonalPINRequest', ], 'output' => [ 'shape' => 'ResetPersonalPINResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'RestorePhoneNumber' => [ 'name' => 'RestorePhoneNumber', 'http' => [ 'method' => 'POST', 'requestUri' => '/phone-numbers/{phoneNumberId}?operation=restore', 'responseCode' => 200, ], 'input' => [ 'shape' => 'RestorePhoneNumberRequest', ], 'output' => [ 'shape' => 'RestorePhoneNumberResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'SearchAvailablePhoneNumbers' => [ 'name' => 'SearchAvailablePhoneNumbers', 'http' => [ 'method' => 'GET', 'requestUri' => '/search?type=phone-numbers', ], 'input' => [ 'shape' => 'SearchAvailablePhoneNumbersRequest', ], 'output' => [ 'shape' => 'SearchAvailablePhoneNumbersResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UpdateAccount' => [ 'name' => 'UpdateAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/accounts/{accountId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateAccountRequest', ], 'output' => [ 'shape' => 'UpdateAccountResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UpdateAccountSettings' => [ 'name' => 'UpdateAccountSettings', 'http' => [ 'method' => 'PUT', 'requestUri' => '/accounts/{accountId}/settings', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateAccountSettingsRequest', ], 'output' => [ 'shape' => 'UpdateAccountSettingsResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UpdateGlobalSettings' => [ 'name' => 'UpdateGlobalSettings', 'http' => [ 'method' => 'PUT', 'requestUri' => '/settings', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateGlobalSettingsRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UpdatePhoneNumber' => [ 'name' => 'UpdatePhoneNumber', 'http' => [ 'method' => 'POST', 'requestUri' => '/phone-numbers/{phoneNumberId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdatePhoneNumberRequest', ], 'output' => [ 'shape' => 'UpdatePhoneNumberResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UpdateUser' => [ 'name' => 'UpdateUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/accounts/{accountId}/users/{userId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateUserRequest', ], 'output' => [ 'shape' => 'UpdateUserResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UpdateUserSettings' => [ 'name' => 'UpdateUserSettings', 'http' => [ 'method' => 'PUT', 'requestUri' => '/accounts/{accountId}/users/{userId}/settings', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateUserSettingsRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UpdateVoiceConnector' => [ 'name' => 'UpdateVoiceConnector', 'http' => [ 'method' => 'PUT', 'requestUri' => '/voice-connectors/{voiceConnectorId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateVoiceConnectorRequest', ], 'output' => [ 'shape' => 'UpdateVoiceConnectorResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ThrottledClientException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], ], 'shapes' => [ 'Account' => [ 'type' => 'structure', 'required' => [ 'AwsAccountId', 'AccountId', 'Name', ], 'members' => [ 'AwsAccountId' => [ 'shape' => 'String', ], 'AccountId' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], 'AccountType' => [ 'shape' => 'AccountType', ], 'CreatedTimestamp' => [ 'shape' => 'Iso8601Timestamp', ], 'DefaultLicense' => [ 'shape' => 'License', ], 'SupportedLicenses' => [ 'shape' => 'LicenseList', ], ], ], 'AccountList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Account', ], ], 'AccountName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '.*\\S.*', ], 'AccountSettings' => [ 'type' => 'structure', 'members' => [ 'DisableRemoteControl' => [ 'shape' => 'Boolean', ], 'EnableDialOut' => [ 'shape' => 'Boolean', ], ], ], 'AccountType' => [ 'type' => 'string', 'enum' => [ 'Team', 'EnterpriseDirectory', 'EnterpriseLWA', 'EnterpriseOIDC', ], ], 'AssociatePhoneNumberWithUserRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'UserId', 'E164PhoneNumber', ], 'members' => [ 'AccountId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'accountId', ], 'UserId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'userId', ], 'E164PhoneNumber' => [ 'shape' => 'E164PhoneNumber', ], ], ], 'AssociatePhoneNumberWithUserResponse' => [ 'type' => 'structure', 'members' => [], ], 'AssociatePhoneNumbersWithVoiceConnectorRequest' => [ 'type' => 'structure', 'required' => [ 'VoiceConnectorId', ], 'members' => [ 'VoiceConnectorId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'voiceConnectorId', ], 'E164PhoneNumbers' => [ 'shape' => 'E164PhoneNumberList', ], ], ], 'AssociatePhoneNumbersWithVoiceConnectorResponse' => [ 'type' => 'structure', 'members' => [ 'PhoneNumberErrors' => [ 'shape' => 'PhoneNumberErrorList', ], ], ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ErrorCode', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'BatchDeletePhoneNumberRequest' => [ 'type' => 'structure', 'required' => [ 'PhoneNumberIds', ], 'members' => [ 'PhoneNumberIds' => [ 'shape' => 'NonEmptyStringList', ], ], ], 'BatchDeletePhoneNumberResponse' => [ 'type' => 'structure', 'members' => [ 'PhoneNumberErrors' => [ 'shape' => 'PhoneNumberErrorList', ], ], ], 'BatchSuspendUserRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'UserIdList', ], 'members' => [ 'AccountId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'accountId', ], 'UserIdList' => [ 'shape' => 'UserIdList', ], ], ], 'BatchSuspendUserResponse' => [ 'type' => 'structure', 'members' => [ 'UserErrors' => [ 'shape' => 'UserErrorList', ], ], ], 'BatchUnsuspendUserRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'UserIdList', ], 'members' => [ 'AccountId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'accountId', ], 'UserIdList' => [ 'shape' => 'UserIdList', ], ], ], 'BatchUnsuspendUserResponse' => [ 'type' => 'structure', 'members' => [ 'UserErrors' => [ 'shape' => 'UserErrorList', ], ], ], 'BatchUpdatePhoneNumberRequest' => [ 'type' => 'structure', 'required' => [ 'UpdatePhoneNumberRequestItems', ], 'members' => [ 'UpdatePhoneNumberRequestItems' => [ 'shape' => 'UpdatePhoneNumberRequestItemList', ], ], ], 'BatchUpdatePhoneNumberResponse' => [ 'type' => 'structure', 'members' => [ 'PhoneNumberErrors' => [ 'shape' => 'PhoneNumberErrorList', ], ], ], 'BatchUpdateUserRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'UpdateUserRequestItems', ], 'members' => [ 'AccountId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'accountId', ], 'UpdateUserRequestItems' => [ 'shape' => 'UpdateUserRequestItemList', ], ], ], 'BatchUpdateUserResponse' => [ 'type' => 'structure', 'members' => [ 'UserErrors' => [ 'shape' => 'UserErrorList', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'BusinessCallingSettings' => [ 'type' => 'structure', 'members' => [ 'CdrBucket' => [ 'shape' => 'String', 'box' => true, ], ], ], 'CallingRegion' => [ 'type' => 'string', ], 'CallingRegionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CallingRegion', ], ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ErrorCode', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'CpsLimit' => [ 'type' => 'integer', 'min' => 1, ], 'CreateAccountRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'AccountName', ], ], ], 'CreateAccountResponse' => [ 'type' => 'structure', 'members' => [ 'Account' => [ 'shape' => 'Account', ], ], ], 'CreatePhoneNumberOrderRequest' => [ 'type' => 'structure', 'required' => [ 'ProductType', 'E164PhoneNumbers', ], 'members' => [ 'ProductType' => [ 'shape' => 'PhoneNumberProductType', ], 'E164PhoneNumbers' => [ 'shape' => 'E164PhoneNumberList', ], ], ], 'CreatePhoneNumberOrderResponse' => [ 'type' => 'structure', 'members' => [ 'PhoneNumberOrder' => [ 'shape' => 'PhoneNumberOrder', ], ], ], 'CreateVoiceConnectorRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'RequireEncryption', ], 'members' => [ 'Name' => [ 'shape' => 'VoiceConnectorName', ], 'RequireEncryption' => [ 'shape' => 'Boolean', ], ], ], 'CreateVoiceConnectorResponse' => [ 'type' => 'structure', 'members' => [ 'VoiceConnector' => [ 'shape' => 'VoiceConnector', ], ], ], 'Credential' => [ 'type' => 'structure', 'members' => [ 'Username' => [ 'shape' => 'SensitiveString', ], 'Password' => [ 'shape' => 'SensitiveString', ], ], ], 'CredentialList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Credential', ], ], 'DeleteAccountRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', ], 'members' => [ 'AccountId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'accountId', ], ], ], 'DeleteAccountResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeletePhoneNumberRequest' => [ 'type' => 'structure', 'required' => [ 'PhoneNumberId', ], 'members' => [ 'PhoneNumberId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'phoneNumberId', ], ], ], 'DeleteVoiceConnectorOriginationRequest' => [ 'type' => 'structure', 'required' => [ 'VoiceConnectorId', ], 'members' => [ 'VoiceConnectorId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'voiceConnectorId', ], ], ], 'DeleteVoiceConnectorRequest' => [ 'type' => 'structure', 'required' => [ 'VoiceConnectorId', ], 'members' => [ 'VoiceConnectorId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'voiceConnectorId', ], ], ], 'DeleteVoiceConnectorTerminationCredentialsRequest' => [ 'type' => 'structure', 'required' => [ 'VoiceConnectorId', ], 'members' => [ 'VoiceConnectorId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'voiceConnectorId', ], 'Usernames' => [ 'shape' => 'SensitiveStringList', ], ], ], 'DeleteVoiceConnectorTerminationRequest' => [ 'type' => 'structure', 'required' => [ 'VoiceConnectorId', ], 'members' => [ 'VoiceConnectorId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'voiceConnectorId', ], ], ], 'DisassociatePhoneNumberFromUserRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'UserId', ], 'members' => [ 'AccountId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'accountId', ], 'UserId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'userId', ], ], ], 'DisassociatePhoneNumberFromUserResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociatePhoneNumbersFromVoiceConnectorRequest' => [ 'type' => 'structure', 'required' => [ 'VoiceConnectorId', ], 'members' => [ 'VoiceConnectorId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'voiceConnectorId', ], 'E164PhoneNumbers' => [ 'shape' => 'E164PhoneNumberList', ], ], ], 'DisassociatePhoneNumbersFromVoiceConnectorResponse' => [ 'type' => 'structure', 'members' => [ 'PhoneNumberErrors' => [ 'shape' => 'PhoneNumberErrorList', ], ], ], 'E164PhoneNumber' => [ 'type' => 'string', 'pattern' => '^\\+?[1-9]\\d{1,14}$', 'sensitive' => true, ], 'E164PhoneNumberList' => [ 'type' => 'list', 'member' => [ 'shape' => 'E164PhoneNumber', ], ], 'EmailAddress' => [ 'type' => 'string', 'pattern' => '.+@.+\\..+', 'sensitive' => true, ], 'EmailStatus' => [ 'type' => 'string', 'enum' => [ 'NotSent', 'Sent', 'Failed', ], ], 'ErrorCode' => [ 'type' => 'string', 'enum' => [ 'Unauthorized', 'Forbidden', 'NotFound', 'BadRequest', 'Conflict', 'ServiceFailure', 'ServiceUnavailable', 'Unprocessable', 'Throttled', 'PreconditionFailed', ], ], 'ForbiddenException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ErrorCode', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, ], 'GetAccountRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', ], 'members' => [ 'AccountId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'accountId', ], ], ], 'GetAccountResponse' => [ 'type' => 'structure', 'members' => [ 'Account' => [ 'shape' => 'Account', ], ], ], 'GetAccountSettingsRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', ], 'members' => [ 'AccountId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'accountId', ], ], ], 'GetAccountSettingsResponse' => [ 'type' => 'structure', 'members' => [ 'AccountSettings' => [ 'shape' => 'AccountSettings', ], ], ], 'GetGlobalSettingsResponse' => [ 'type' => 'structure', 'members' => [ 'BusinessCalling' => [ 'shape' => 'BusinessCallingSettings', ], 'VoiceConnector' => [ 'shape' => 'VoiceConnectorSettings', ], ], ], 'GetPhoneNumberOrderRequest' => [ 'type' => 'structure', 'required' => [ 'PhoneNumberOrderId', ], 'members' => [ 'PhoneNumberOrderId' => [ 'shape' => 'GuidString', 'location' => 'uri', 'locationName' => 'phoneNumberOrderId', ], ], ], 'GetPhoneNumberOrderResponse' => [ 'type' => 'structure', 'members' => [ 'PhoneNumberOrder' => [ 'shape' => 'PhoneNumberOrder', ], ], ], 'GetPhoneNumberRequest' => [ 'type' => 'structure', 'required' => [ 'PhoneNumberId', ], 'members' => [ 'PhoneNumberId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'phoneNumberId', ], ], ], 'GetPhoneNumberResponse' => [ 'type' => 'structure', 'members' => [ 'PhoneNumber' => [ 'shape' => 'PhoneNumber', ], ], ], 'GetUserRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'UserId', ], 'members' => [ 'AccountId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'accountId', ], 'UserId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'userId', ], ], ], 'GetUserResponse' => [ 'type' => 'structure', 'members' => [ 'User' => [ 'shape' => 'User', ], ], ], 'GetUserSettingsRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'UserId', ], 'members' => [ 'AccountId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'accountId', ], 'UserId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'userId', ], ], ], 'GetUserSettingsResponse' => [ 'type' => 'structure', 'members' => [ 'UserSettings' => [ 'shape' => 'UserSettings', ], ], ], 'GetVoiceConnectorOriginationRequest' => [ 'type' => 'structure', 'required' => [ 'VoiceConnectorId', ], 'members' => [ 'VoiceConnectorId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'voiceConnectorId', ], ], ], 'GetVoiceConnectorOriginationResponse' => [ 'type' => 'structure', 'members' => [ 'Origination' => [ 'shape' => 'Origination', ], ], ], 'GetVoiceConnectorRequest' => [ 'type' => 'structure', 'required' => [ 'VoiceConnectorId', ], 'members' => [ 'VoiceConnectorId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'voiceConnectorId', ], ], ], 'GetVoiceConnectorResponse' => [ 'type' => 'structure', 'members' => [ 'VoiceConnector' => [ 'shape' => 'VoiceConnector', ], ], ], 'GetVoiceConnectorTerminationHealthRequest' => [ 'type' => 'structure', 'required' => [ 'VoiceConnectorId', ], 'members' => [ 'VoiceConnectorId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'voiceConnectorId', ], ], ], 'GetVoiceConnectorTerminationHealthResponse' => [ 'type' => 'structure', 'members' => [ 'TerminationHealth' => [ 'shape' => 'TerminationHealth', ], ], ], 'GetVoiceConnectorTerminationRequest' => [ 'type' => 'structure', 'required' => [ 'VoiceConnectorId', ], 'members' => [ 'VoiceConnectorId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'voiceConnectorId', ], ], ], 'GetVoiceConnectorTerminationResponse' => [ 'type' => 'structure', 'members' => [ 'Termination' => [ 'shape' => 'Termination', ], ], ], 'GuidString' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}', ], 'Invite' => [ 'type' => 'structure', 'members' => [ 'InviteId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'InviteStatus', ], 'EmailAddress' => [ 'shape' => 'EmailAddress', ], 'EmailStatus' => [ 'shape' => 'EmailStatus', ], ], ], 'InviteList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Invite', ], ], 'InviteStatus' => [ 'type' => 'string', 'enum' => [ 'Pending', 'Accepted', 'Failed', ], ], 'InviteUsersRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'UserEmailList', ], 'members' => [ 'AccountId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'accountId', ], 'UserEmailList' => [ 'shape' => 'UserEmailList', ], ], ], 'InviteUsersResponse' => [ 'type' => 'structure', 'members' => [ 'Invites' => [ 'shape' => 'InviteList', ], ], ], 'Iso8601Timestamp' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], 'License' => [ 'type' => 'string', 'enum' => [ 'Basic', 'Plus', 'Pro', 'ProTrial', ], ], 'LicenseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'License', ], ], 'ListAccountsRequest' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'AccountName', 'location' => 'querystring', 'locationName' => 'name', ], 'UserEmail' => [ 'shape' => 'EmailAddress', 'location' => 'querystring', 'locationName' => 'user-email', ], 'NextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'next-token', ], 'MaxResults' => [ 'shape' => 'ProfileServiceMaxResults', 'location' => 'querystring', 'locationName' => 'max-results', ], ], ], 'ListAccountsResponse' => [ 'type' => 'structure', 'members' => [ 'Accounts' => [ 'shape' => 'AccountList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListPhoneNumberOrdersRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'next-token', ], 'MaxResults' => [ 'shape' => 'ResultMax', 'location' => 'querystring', 'locationName' => 'max-results', ], ], ], 'ListPhoneNumberOrdersResponse' => [ 'type' => 'structure', 'members' => [ 'PhoneNumberOrders' => [ 'shape' => 'PhoneNumberOrderList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListPhoneNumbersRequest' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'PhoneNumberStatus', 'location' => 'querystring', 'locationName' => 'status', ], 'ProductType' => [ 'shape' => 'PhoneNumberProductType', 'location' => 'querystring', 'locationName' => 'product-type', ], 'FilterName' => [ 'shape' => 'PhoneNumberAssociationName', 'location' => 'querystring', 'locationName' => 'filter-name', ], 'FilterValue' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'filter-value', ], 'MaxResults' => [ 'shape' => 'ResultMax', 'location' => 'querystring', 'locationName' => 'max-results', ], 'NextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'next-token', ], ], ], 'ListPhoneNumbersResponse' => [ 'type' => 'structure', 'members' => [ 'PhoneNumbers' => [ 'shape' => 'PhoneNumberList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListUsersRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', ], 'members' => [ 'AccountId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'accountId', ], 'UserEmail' => [ 'shape' => 'EmailAddress', 'location' => 'querystring', 'locationName' => 'user-email', ], 'MaxResults' => [ 'shape' => 'ProfileServiceMaxResults', 'location' => 'querystring', 'locationName' => 'max-results', ], 'NextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'next-token', ], ], ], 'ListUsersResponse' => [ 'type' => 'structure', 'members' => [ 'Users' => [ 'shape' => 'UserList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListVoiceConnectorTerminationCredentialsRequest' => [ 'type' => 'structure', 'required' => [ 'VoiceConnectorId', ], 'members' => [ 'VoiceConnectorId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'voiceConnectorId', ], ], ], 'ListVoiceConnectorTerminationCredentialsResponse' => [ 'type' => 'structure', 'members' => [ 'Usernames' => [ 'shape' => 'SensitiveStringList', ], ], ], 'ListVoiceConnectorsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'next-token', ], 'MaxResults' => [ 'shape' => 'ResultMax', 'location' => 'querystring', 'locationName' => 'max-results', ], ], ], 'ListVoiceConnectorsResponse' => [ 'type' => 'structure', 'members' => [ 'VoiceConnectors' => [ 'shape' => 'VoiceConnectorList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'LogoutUserRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'UserId', ], 'members' => [ 'AccountId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'accountId', ], 'UserId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'userId', ], ], ], 'LogoutUserResponse' => [ 'type' => 'structure', 'members' => [], ], 'NonEmptyString' => [ 'type' => 'string', 'pattern' => '.*\\S.*', ], 'NonEmptyStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], 'min' => 1, ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ErrorCode', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'NullableBoolean' => [ 'type' => 'boolean', ], 'OrderedPhoneNumber' => [ 'type' => 'structure', 'members' => [ 'E164PhoneNumber' => [ 'shape' => 'E164PhoneNumber', ], 'Status' => [ 'shape' => 'OrderedPhoneNumberStatus', ], ], ], 'OrderedPhoneNumberList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OrderedPhoneNumber', ], ], 'OrderedPhoneNumberStatus' => [ 'type' => 'string', 'enum' => [ 'Processing', 'Acquired', 'Failed', ], ], 'Origination' => [ 'type' => 'structure', 'members' => [ 'Routes' => [ 'shape' => 'OriginationRouteList', ], 'Disabled' => [ 'shape' => 'Boolean', ], ], ], 'OriginationRoute' => [ 'type' => 'structure', 'members' => [ 'Host' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'Port', ], 'Protocol' => [ 'shape' => 'OriginationRouteProtocol', ], 'Priority' => [ 'shape' => 'OriginationRoutePriority', ], 'Weight' => [ 'shape' => 'OriginationRouteWeight', ], ], ], 'OriginationRouteList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OriginationRoute', ], ], 'OriginationRoutePriority' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'OriginationRouteProtocol' => [ 'type' => 'string', 'enum' => [ 'TCP', 'UDP', ], ], 'OriginationRouteWeight' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'PhoneNumber' => [ 'type' => 'structure', 'members' => [ 'PhoneNumberId' => [ 'shape' => 'String', ], 'E164PhoneNumber' => [ 'shape' => 'E164PhoneNumber', ], 'ProductType' => [ 'shape' => 'PhoneNumberProductType', ], 'Status' => [ 'shape' => 'PhoneNumberStatus', ], 'Capabilities' => [ 'shape' => 'PhoneNumberCapabilities', ], 'Associations' => [ 'shape' => 'PhoneNumberAssociationList', ], 'CreatedTimestamp' => [ 'shape' => 'Iso8601Timestamp', ], 'UpdatedTimestamp' => [ 'shape' => 'Iso8601Timestamp', ], 'DeletionTimestamp' => [ 'shape' => 'Iso8601Timestamp', ], ], ], 'PhoneNumberAssociation' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'PhoneNumberAssociationName', ], 'AssociatedTimestamp' => [ 'shape' => 'Iso8601Timestamp', ], ], ], 'PhoneNumberAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PhoneNumberAssociation', ], ], 'PhoneNumberAssociationName' => [ 'type' => 'string', 'enum' => [ 'AccountId', 'UserId', 'VoiceConnectorId', ], ], 'PhoneNumberCapabilities' => [ 'type' => 'structure', 'members' => [ 'InboundCall' => [ 'shape' => 'NullableBoolean', ], 'OutboundCall' => [ 'shape' => 'NullableBoolean', ], 'InboundSMS' => [ 'shape' => 'NullableBoolean', ], 'OutboundSMS' => [ 'shape' => 'NullableBoolean', ], 'InboundMMS' => [ 'shape' => 'NullableBoolean', ], 'OutboundMMS' => [ 'shape' => 'NullableBoolean', ], ], ], 'PhoneNumberError' => [ 'type' => 'structure', 'members' => [ 'PhoneNumberId' => [ 'shape' => 'NonEmptyString', ], 'ErrorCode' => [ 'shape' => 'ErrorCode', ], 'ErrorMessage' => [ 'shape' => 'String', ], ], ], 'PhoneNumberErrorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PhoneNumberError', ], ], 'PhoneNumberList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PhoneNumber', ], ], 'PhoneNumberMaxResults' => [ 'type' => 'integer', 'max' => 500, 'min' => 1, ], 'PhoneNumberOrder' => [ 'type' => 'structure', 'members' => [ 'PhoneNumberOrderId' => [ 'shape' => 'GuidString', ], 'ProductType' => [ 'shape' => 'PhoneNumberProductType', ], 'Status' => [ 'shape' => 'PhoneNumberOrderStatus', ], 'OrderedPhoneNumbers' => [ 'shape' => 'OrderedPhoneNumberList', ], 'CreatedTimestamp' => [ 'shape' => 'Iso8601Timestamp', ], 'UpdatedTimestamp' => [ 'shape' => 'Iso8601Timestamp', ], ], ], 'PhoneNumberOrderList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PhoneNumberOrder', ], ], 'PhoneNumberOrderStatus' => [ 'type' => 'string', 'enum' => [ 'Processing', 'Successful', 'Failed', 'Partial', ], ], 'PhoneNumberProductType' => [ 'type' => 'string', 'enum' => [ 'BusinessCalling', 'VoiceConnector', ], ], 'PhoneNumberStatus' => [ 'type' => 'string', 'enum' => [ 'AcquireInProgress', 'AcquireFailed', 'Unassigned', 'Assigned', 'ReleaseInProgress', 'DeleteInProgress', 'ReleaseFailed', 'DeleteFailed', ], ], 'Port' => [ 'type' => 'integer', 'max' => 65535, 'min' => 0, ], 'ProfileServiceMaxResults' => [ 'type' => 'integer', 'max' => 200, 'min' => 1, ], 'PutVoiceConnectorOriginationRequest' => [ 'type' => 'structure', 'required' => [ 'VoiceConnectorId', 'Origination', ], 'members' => [ 'VoiceConnectorId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'voiceConnectorId', ], 'Origination' => [ 'shape' => 'Origination', ], ], ], 'PutVoiceConnectorOriginationResponse' => [ 'type' => 'structure', 'members' => [ 'Origination' => [ 'shape' => 'Origination', ], ], ], 'PutVoiceConnectorTerminationCredentialsRequest' => [ 'type' => 'structure', 'required' => [ 'VoiceConnectorId', ], 'members' => [ 'VoiceConnectorId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'voiceConnectorId', ], 'Credentials' => [ 'shape' => 'CredentialList', ], ], ], 'PutVoiceConnectorTerminationRequest' => [ 'type' => 'structure', 'required' => [ 'VoiceConnectorId', 'Termination', ], 'members' => [ 'VoiceConnectorId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'voiceConnectorId', ], 'Termination' => [ 'shape' => 'Termination', ], ], ], 'PutVoiceConnectorTerminationResponse' => [ 'type' => 'structure', 'members' => [ 'Termination' => [ 'shape' => 'Termination', ], ], ], 'RegistrationStatus' => [ 'type' => 'string', 'enum' => [ 'Unregistered', 'Registered', 'Suspended', ], ], 'ResetPersonalPINRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'UserId', ], 'members' => [ 'AccountId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'accountId', ], 'UserId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'userId', ], ], ], 'ResetPersonalPINResponse' => [ 'type' => 'structure', 'members' => [ 'User' => [ 'shape' => 'User', ], ], ], 'RestorePhoneNumberRequest' => [ 'type' => 'structure', 'required' => [ 'PhoneNumberId', ], 'members' => [ 'PhoneNumberId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'phoneNumberId', ], ], ], 'RestorePhoneNumberResponse' => [ 'type' => 'structure', 'members' => [ 'PhoneNumber' => [ 'shape' => 'PhoneNumber', ], ], ], 'ResultMax' => [ 'type' => 'integer', 'max' => 99, 'min' => 1, ], 'SearchAvailablePhoneNumbersRequest' => [ 'type' => 'structure', 'members' => [ 'AreaCode' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'area-code', ], 'City' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'city', ], 'Country' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'country', ], 'State' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'state', ], 'MaxResults' => [ 'shape' => 'PhoneNumberMaxResults', 'location' => 'querystring', 'locationName' => 'max-results', ], 'NextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'next-token', ], ], ], 'SearchAvailablePhoneNumbersResponse' => [ 'type' => 'structure', 'members' => [ 'E164PhoneNumbers' => [ 'shape' => 'E164PhoneNumberList', ], ], ], 'SensitiveString' => [ 'type' => 'string', 'sensitive' => true, ], 'SensitiveStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SensitiveString', ], ], 'ServiceFailureException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ErrorCode', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ErrorCode', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 503, ], 'exception' => true, 'fault' => true, ], 'String' => [ 'type' => 'string', ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'TelephonySettings' => [ 'type' => 'structure', 'required' => [ 'InboundCalling', 'OutboundCalling', 'SMS', ], 'members' => [ 'InboundCalling' => [ 'shape' => 'Boolean', ], 'OutboundCalling' => [ 'shape' => 'Boolean', ], 'SMS' => [ 'shape' => 'Boolean', ], ], ], 'Termination' => [ 'type' => 'structure', 'members' => [ 'CpsLimit' => [ 'shape' => 'CpsLimit', ], 'DefaultPhoneNumber' => [ 'shape' => 'E164PhoneNumber', ], 'CallingRegions' => [ 'shape' => 'CallingRegionList', ], 'CidrAllowedList' => [ 'shape' => 'StringList', ], 'Disabled' => [ 'shape' => 'Boolean', ], ], ], 'TerminationHealth' => [ 'type' => 'structure', 'members' => [ 'Timestamp' => [ 'shape' => 'Iso8601Timestamp', ], 'Source' => [ 'shape' => 'String', ], ], ], 'ThrottledClientException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ErrorCode', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'UnauthorizedClientException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ErrorCode', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 401, ], 'exception' => true, ], 'UnprocessableEntityException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ErrorCode', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 422, ], 'exception' => true, ], 'UpdateAccountRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', ], 'members' => [ 'AccountId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'accountId', ], 'Name' => [ 'shape' => 'AccountName', ], ], ], 'UpdateAccountResponse' => [ 'type' => 'structure', 'members' => [ 'Account' => [ 'shape' => 'Account', ], ], ], 'UpdateAccountSettingsRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'AccountSettings', ], 'members' => [ 'AccountId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'accountId', ], 'AccountSettings' => [ 'shape' => 'AccountSettings', ], ], ], 'UpdateAccountSettingsResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateGlobalSettingsRequest' => [ 'type' => 'structure', 'required' => [ 'BusinessCalling', 'VoiceConnector', ], 'members' => [ 'BusinessCalling' => [ 'shape' => 'BusinessCallingSettings', ], 'VoiceConnector' => [ 'shape' => 'VoiceConnectorSettings', ], ], ], 'UpdatePhoneNumberRequest' => [ 'type' => 'structure', 'required' => [ 'PhoneNumberId', ], 'members' => [ 'PhoneNumberId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'phoneNumberId', ], 'ProductType' => [ 'shape' => 'PhoneNumberProductType', ], ], ], 'UpdatePhoneNumberRequestItem' => [ 'type' => 'structure', 'required' => [ 'PhoneNumberId', ], 'members' => [ 'PhoneNumberId' => [ 'shape' => 'NonEmptyString', ], 'ProductType' => [ 'shape' => 'PhoneNumberProductType', ], ], ], 'UpdatePhoneNumberRequestItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UpdatePhoneNumberRequestItem', ], ], 'UpdatePhoneNumberResponse' => [ 'type' => 'structure', 'members' => [ 'PhoneNumber' => [ 'shape' => 'PhoneNumber', ], ], ], 'UpdateUserRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'UserId', ], 'members' => [ 'AccountId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'accountId', ], 'UserId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'userId', ], 'LicenseType' => [ 'shape' => 'License', ], ], ], 'UpdateUserRequestItem' => [ 'type' => 'structure', 'required' => [ 'UserId', ], 'members' => [ 'UserId' => [ 'shape' => 'NonEmptyString', ], 'LicenseType' => [ 'shape' => 'License', ], ], ], 'UpdateUserRequestItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UpdateUserRequestItem', ], 'max' => 20, ], 'UpdateUserResponse' => [ 'type' => 'structure', 'members' => [ 'User' => [ 'shape' => 'User', ], ], ], 'UpdateUserSettingsRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'UserId', 'UserSettings', ], 'members' => [ 'AccountId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'accountId', ], 'UserId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'userId', ], 'UserSettings' => [ 'shape' => 'UserSettings', ], ], ], 'UpdateVoiceConnectorRequest' => [ 'type' => 'structure', 'required' => [ 'VoiceConnectorId', 'Name', 'RequireEncryption', ], 'members' => [ 'VoiceConnectorId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'voiceConnectorId', ], 'Name' => [ 'shape' => 'VoiceConnectorName', ], 'RequireEncryption' => [ 'shape' => 'Boolean', ], ], ], 'UpdateVoiceConnectorResponse' => [ 'type' => 'structure', 'members' => [ 'VoiceConnector' => [ 'shape' => 'VoiceConnector', ], ], ], 'User' => [ 'type' => 'structure', 'required' => [ 'UserId', ], 'members' => [ 'UserId' => [ 'shape' => 'String', ], 'AccountId' => [ 'shape' => 'String', ], 'PrimaryEmail' => [ 'shape' => 'EmailAddress', ], 'PrimaryProvisionedNumber' => [ 'shape' => 'SensitiveString', ], 'DisplayName' => [ 'shape' => 'SensitiveString', ], 'LicenseType' => [ 'shape' => 'License', ], 'UserRegistrationStatus' => [ 'shape' => 'RegistrationStatus', ], 'UserInvitationStatus' => [ 'shape' => 'InviteStatus', ], 'RegisteredOn' => [ 'shape' => 'Iso8601Timestamp', ], 'InvitedOn' => [ 'shape' => 'Iso8601Timestamp', ], 'PersonalPIN' => [ 'shape' => 'String', ], ], ], 'UserEmailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EmailAddress', ], 'max' => 50, ], 'UserError' => [ 'type' => 'structure', 'members' => [ 'UserId' => [ 'shape' => 'NonEmptyString', ], 'ErrorCode' => [ 'shape' => 'ErrorCode', ], 'ErrorMessage' => [ 'shape' => 'String', ], ], ], 'UserErrorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserError', ], ], 'UserIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonEmptyString', ], 'max' => 50, ], 'UserList' => [ 'type' => 'list', 'member' => [ 'shape' => 'User', ], ], 'UserSettings' => [ 'type' => 'structure', 'required' => [ 'Telephony', ], 'members' => [ 'Telephony' => [ 'shape' => 'TelephonySettings', ], ], ], 'VoiceConnector' => [ 'type' => 'structure', 'members' => [ 'VoiceConnectorId' => [ 'shape' => 'NonEmptyString', ], 'Name' => [ 'shape' => 'VoiceConnectorName', ], 'OutboundHostName' => [ 'shape' => 'String', ], 'RequireEncryption' => [ 'shape' => 'Boolean', ], 'CreatedTimestamp' => [ 'shape' => 'Iso8601Timestamp', ], 'UpdatedTimestamp' => [ 'shape' => 'Iso8601Timestamp', ], ], ], 'VoiceConnectorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VoiceConnector', ], ], 'VoiceConnectorName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'VoiceConnectorSettings' => [ 'type' => 'structure', 'members' => [ 'CdrBucket' => [ 'shape' => 'String', 'box' => true, ], ], ], ],]; diff --git a/lib/aws/Aws/data/chime/2018-05-01/paginators-1.json.php b/lib/aws/Aws/data/chime/2018-05-01/paginators-1.json.php new file mode 100644 index 0000000..a55f102 --- /dev/null +++ b/lib/aws/Aws/data/chime/2018-05-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/chime/2018-05-01/paginators-1.json +return [ 'pagination' => [ 'ListAccounts' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListPhoneNumberOrders' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListPhoneNumbers' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListUsers' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListVoiceConnectors' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/cloud9/2017-09-23/api-2.json.php b/lib/aws/Aws/data/cloud9/2017-09-23/api-2.json.php new file mode 100644 index 0000000..d4a0a18 --- /dev/null +++ b/lib/aws/Aws/data/cloud9/2017-09-23/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloud9/2017-09-23/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-09-23', 'endpointPrefix' => 'cloud9', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWS Cloud9', 'serviceId' => 'Cloud9', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWSCloud9WorkspaceManagementService', 'uid' => 'cloud9-2017-09-23', ], 'operations' => [ 'CreateEnvironmentEC2' => [ 'name' => 'CreateEnvironmentEC2', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateEnvironmentEC2Request', ], 'output' => [ 'shape' => 'CreateEnvironmentEC2Result', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerErrorException', ], ], 'idempotent' => true, ], 'CreateEnvironmentMembership' => [ 'name' => 'CreateEnvironmentMembership', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateEnvironmentMembershipRequest', ], 'output' => [ 'shape' => 'CreateEnvironmentMembershipResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerErrorException', ], ], 'idempotent' => true, ], 'DeleteEnvironment' => [ 'name' => 'DeleteEnvironment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteEnvironmentRequest', ], 'output' => [ 'shape' => 'DeleteEnvironmentResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerErrorException', ], ], 'idempotent' => true, ], 'DeleteEnvironmentMembership' => [ 'name' => 'DeleteEnvironmentMembership', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteEnvironmentMembershipRequest', ], 'output' => [ 'shape' => 'DeleteEnvironmentMembershipResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerErrorException', ], ], 'idempotent' => true, ], 'DescribeEnvironmentMemberships' => [ 'name' => 'DescribeEnvironmentMemberships', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEnvironmentMembershipsRequest', ], 'output' => [ 'shape' => 'DescribeEnvironmentMembershipsResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'DescribeEnvironmentStatus' => [ 'name' => 'DescribeEnvironmentStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEnvironmentStatusRequest', ], 'output' => [ 'shape' => 'DescribeEnvironmentStatusResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'DescribeEnvironments' => [ 'name' => 'DescribeEnvironments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEnvironmentsRequest', ], 'output' => [ 'shape' => 'DescribeEnvironmentsResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'ListEnvironments' => [ 'name' => 'ListEnvironments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListEnvironmentsRequest', ], 'output' => [ 'shape' => 'ListEnvironmentsResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'UpdateEnvironment' => [ 'name' => 'UpdateEnvironment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateEnvironmentRequest', ], 'output' => [ 'shape' => 'UpdateEnvironmentResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerErrorException', ], ], 'idempotent' => true, ], 'UpdateEnvironmentMembership' => [ 'name' => 'UpdateEnvironmentMembership', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateEnvironmentMembershipRequest', ], 'output' => [ 'shape' => 'UpdateEnvironmentMembershipResult', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerErrorException', ], ], 'idempotent' => true, ], ], 'shapes' => [ 'AutomaticStopTimeMinutes' => [ 'type' => 'integer', 'box' => true, 'max' => 20160, ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'BoundedEnvironmentIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnvironmentId', ], 'max' => 25, 'min' => 1, ], 'ClientRequestToken' => [ 'type' => 'string', 'pattern' => '[\\x20-\\x7E]{10,128}', ], 'ConflictException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'CreateEnvironmentEC2Request' => [ 'type' => 'structure', 'required' => [ 'name', 'instanceType', ], 'members' => [ 'name' => [ 'shape' => 'EnvironmentName', ], 'description' => [ 'shape' => 'EnvironmentDescription', ], 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', ], 'instanceType' => [ 'shape' => 'InstanceType', ], 'subnetId' => [ 'shape' => 'SubnetId', ], 'automaticStopTimeMinutes' => [ 'shape' => 'AutomaticStopTimeMinutes', ], 'ownerArn' => [ 'shape' => 'UserArn', ], ], ], 'CreateEnvironmentEC2Result' => [ 'type' => 'structure', 'members' => [ 'environmentId' => [ 'shape' => 'EnvironmentId', ], ], ], 'CreateEnvironmentMembershipRequest' => [ 'type' => 'structure', 'required' => [ 'environmentId', 'userArn', 'permissions', ], 'members' => [ 'environmentId' => [ 'shape' => 'EnvironmentId', ], 'userArn' => [ 'shape' => 'UserArn', ], 'permissions' => [ 'shape' => 'MemberPermissions', ], ], ], 'CreateEnvironmentMembershipResult' => [ 'type' => 'structure', 'members' => [ 'membership' => [ 'shape' => 'EnvironmentMember', ], ], ], 'DeleteEnvironmentMembershipRequest' => [ 'type' => 'structure', 'required' => [ 'environmentId', 'userArn', ], 'members' => [ 'environmentId' => [ 'shape' => 'EnvironmentId', ], 'userArn' => [ 'shape' => 'UserArn', ], ], ], 'DeleteEnvironmentMembershipResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteEnvironmentRequest' => [ 'type' => 'structure', 'required' => [ 'environmentId', ], 'members' => [ 'environmentId' => [ 'shape' => 'EnvironmentId', ], ], ], 'DeleteEnvironmentResult' => [ 'type' => 'structure', 'members' => [], ], 'DescribeEnvironmentMembershipsRequest' => [ 'type' => 'structure', 'members' => [ 'userArn' => [ 'shape' => 'UserArn', ], 'environmentId' => [ 'shape' => 'EnvironmentId', ], 'permissions' => [ 'shape' => 'PermissionsList', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'DescribeEnvironmentMembershipsResult' => [ 'type' => 'structure', 'members' => [ 'memberships' => [ 'shape' => 'EnvironmentMembersList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'DescribeEnvironmentStatusRequest' => [ 'type' => 'structure', 'required' => [ 'environmentId', ], 'members' => [ 'environmentId' => [ 'shape' => 'EnvironmentId', ], ], ], 'DescribeEnvironmentStatusResult' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'EnvironmentStatus', ], 'message' => [ 'shape' => 'String', ], ], ], 'DescribeEnvironmentsRequest' => [ 'type' => 'structure', 'required' => [ 'environmentIds', ], 'members' => [ 'environmentIds' => [ 'shape' => 'BoundedEnvironmentIdList', ], ], ], 'DescribeEnvironmentsResult' => [ 'type' => 'structure', 'members' => [ 'environments' => [ 'shape' => 'EnvironmentList', ], ], ], 'Environment' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'EnvironmentId', ], 'name' => [ 'shape' => 'EnvironmentName', ], 'description' => [ 'shape' => 'EnvironmentDescription', ], 'type' => [ 'shape' => 'EnvironmentType', ], 'arn' => [ 'shape' => 'String', ], 'ownerArn' => [ 'shape' => 'String', ], 'lifecycle' => [ 'shape' => 'EnvironmentLifecycle', ], ], ], 'EnvironmentDescription' => [ 'type' => 'string', 'max' => 200, 'sensitive' => true, ], 'EnvironmentId' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9]{8,32}$', ], 'EnvironmentIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnvironmentId', ], ], 'EnvironmentLifecycle' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'EnvironmentLifecycleStatus', ], 'reason' => [ 'shape' => 'String', ], 'failureResource' => [ 'shape' => 'String', ], ], ], 'EnvironmentLifecycleStatus' => [ 'type' => 'string', 'enum' => [ 'CREATED', 'DELETING', 'DELETE_FAILED', ], ], 'EnvironmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Environment', ], ], 'EnvironmentMember' => [ 'type' => 'structure', 'members' => [ 'permissions' => [ 'shape' => 'Permissions', ], 'userId' => [ 'shape' => 'String', ], 'userArn' => [ 'shape' => 'UserArn', ], 'environmentId' => [ 'shape' => 'EnvironmentId', ], 'lastAccess' => [ 'shape' => 'Timestamp', ], ], ], 'EnvironmentMembersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnvironmentMember', ], ], 'EnvironmentName' => [ 'type' => 'string', 'max' => 60, 'min' => 1, ], 'EnvironmentStatus' => [ 'type' => 'string', 'enum' => [ 'error', 'creating', 'connecting', 'ready', 'stopping', 'stopped', 'deleting', ], ], 'EnvironmentType' => [ 'type' => 'string', 'enum' => [ 'ssh', 'ec2', ], ], 'ForbiddenException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InstanceType' => [ 'type' => 'string', 'max' => 20, 'min' => 5, 'pattern' => '^[a-z][1-9][.][a-z0-9]+$', ], 'InternalServerErrorException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, 'fault' => true, ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ListEnvironmentsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListEnvironmentsResult' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'environmentIds' => [ 'shape' => 'EnvironmentIdList', ], ], ], 'MaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 25, 'min' => 0, ], 'MemberPermissions' => [ 'type' => 'string', 'enum' => [ 'read-write', 'read-only', ], ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Permissions' => [ 'type' => 'string', 'enum' => [ 'owner', 'read-write', 'read-only', ], ], 'PermissionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Permissions', ], ], 'String' => [ 'type' => 'string', ], 'SubnetId' => [ 'type' => 'string', 'max' => 30, 'min' => 5, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'UpdateEnvironmentMembershipRequest' => [ 'type' => 'structure', 'required' => [ 'environmentId', 'userArn', 'permissions', ], 'members' => [ 'environmentId' => [ 'shape' => 'EnvironmentId', ], 'userArn' => [ 'shape' => 'UserArn', ], 'permissions' => [ 'shape' => 'MemberPermissions', ], ], ], 'UpdateEnvironmentMembershipResult' => [ 'type' => 'structure', 'members' => [ 'membership' => [ 'shape' => 'EnvironmentMember', ], ], ], 'UpdateEnvironmentRequest' => [ 'type' => 'structure', 'required' => [ 'environmentId', ], 'members' => [ 'environmentId' => [ 'shape' => 'EnvironmentId', ], 'name' => [ 'shape' => 'EnvironmentName', ], 'description' => [ 'shape' => 'EnvironmentDescription', ], ], ], 'UpdateEnvironmentResult' => [ 'type' => 'structure', 'members' => [], ], 'UserArn' => [ 'type' => 'string', 'pattern' => 'arn:aws:(iam|sts)::\\d+:(root|user|federated-user|assumed-role)\\/?\\S*', ], ],]; diff --git a/lib/aws/Aws/data/cloud9/2017-09-23/paginators-1.json.php b/lib/aws/Aws/data/cloud9/2017-09-23/paginators-1.json.php new file mode 100644 index 0000000..80f7fec --- /dev/null +++ b/lib/aws/Aws/data/cloud9/2017-09-23/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloud9/2017-09-23/paginators-1.json +return [ 'pagination' => [ 'DescribeEnvironmentMemberships' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListEnvironments' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], ],]; diff --git a/lib/aws/Aws/data/clouddirectory/2016-05-10/api-2.json.php b/lib/aws/Aws/data/clouddirectory/2016-05-10/api-2.json.php new file mode 100644 index 0000000..7d22dfe --- /dev/null +++ b/lib/aws/Aws/data/clouddirectory/2016-05-10/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/clouddirectory/2016-05-10/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-05-10', 'endpointPrefix' => 'clouddirectory', 'protocol' => 'rest-json', 'serviceFullName' => 'Amazon CloudDirectory', 'signatureVersion' => 'v4', 'signingName' => 'clouddirectory', 'uid' => 'clouddirectory-2016-05-10', ], 'operations' => [ 'AddFacetToObject' => [ 'name' => 'AddFacetToObject', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/facets', 'responseCode' => 200, ], 'input' => [ 'shape' => 'AddFacetToObjectRequest', ], 'output' => [ 'shape' => 'AddFacetToObjectResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'ApplySchema' => [ 'name' => 'ApplySchema', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/apply', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ApplySchemaRequest', ], 'output' => [ 'shape' => 'ApplySchemaResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidAttachmentException', ], ], ], 'AttachObject' => [ 'name' => 'AttachObject', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/attach', 'responseCode' => 200, ], 'input' => [ 'shape' => 'AttachObjectRequest', ], 'output' => [ 'shape' => 'AttachObjectResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LinkNameAlreadyInUseException', ], [ 'shape' => 'InvalidAttachmentException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'AttachPolicy' => [ 'name' => 'AttachPolicy', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/policy/attach', 'responseCode' => 200, ], 'input' => [ 'shape' => 'AttachPolicyRequest', ], 'output' => [ 'shape' => 'AttachPolicyResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotPolicyException', ], ], ], 'AttachToIndex' => [ 'name' => 'AttachToIndex', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/index/attach', 'responseCode' => 200, ], 'input' => [ 'shape' => 'AttachToIndexRequest', ], 'output' => [ 'shape' => 'AttachToIndexResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'InvalidAttachmentException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LinkNameAlreadyInUseException', ], [ 'shape' => 'IndexedAttributeMissingException', ], [ 'shape' => 'NotIndexException', ], ], ], 'AttachTypedLink' => [ 'name' => 'AttachTypedLink', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/attach', 'responseCode' => 200, ], 'input' => [ 'shape' => 'AttachTypedLinkRequest', ], 'output' => [ 'shape' => 'AttachTypedLinkResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidAttachmentException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'BatchRead' => [ 'name' => 'BatchRead', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/batchread', 'responseCode' => 200, ], 'input' => [ 'shape' => 'BatchReadRequest', ], 'output' => [ 'shape' => 'BatchReadResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], ], ], 'BatchWrite' => [ 'name' => 'BatchWrite', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/batchwrite', 'responseCode' => 200, ], 'input' => [ 'shape' => 'BatchWriteRequest', ], 'output' => [ 'shape' => 'BatchWriteResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'BatchWriteException', ], ], ], 'CreateDirectory' => [ 'name' => 'CreateDirectory', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/directory/create', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateDirectoryRequest', ], 'output' => [ 'shape' => 'CreateDirectoryResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryAlreadyExistsException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'CreateFacet' => [ 'name' => 'CreateFacet', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/facet/create', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateFacetRequest', ], 'output' => [ 'shape' => 'CreateFacetResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetAlreadyExistsException', ], [ 'shape' => 'InvalidRuleException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'CreateIndex' => [ 'name' => 'CreateIndex', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/index', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateIndexRequest', ], 'output' => [ 'shape' => 'CreateIndexResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetValidationException', ], [ 'shape' => 'LinkNameAlreadyInUseException', ], [ 'shape' => 'UnsupportedIndexTypeException', ], ], ], 'CreateObject' => [ 'name' => 'CreateObject', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/object', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateObjectRequest', ], 'output' => [ 'shape' => 'CreateObjectResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetValidationException', ], [ 'shape' => 'LinkNameAlreadyInUseException', ], [ 'shape' => 'UnsupportedIndexTypeException', ], ], ], 'CreateSchema' => [ 'name' => 'CreateSchema', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/create', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateSchemaRequest', ], 'output' => [ 'shape' => 'CreateSchemaResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'SchemaAlreadyExistsException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreateTypedLinkFacet' => [ 'name' => 'CreateTypedLinkFacet', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/facet/create', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateTypedLinkFacetRequest', ], 'output' => [ 'shape' => 'CreateTypedLinkFacetResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetAlreadyExistsException', ], [ 'shape' => 'InvalidRuleException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'DeleteDirectory' => [ 'name' => 'DeleteDirectory', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/directory', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteDirectoryRequest', ], 'output' => [ 'shape' => 'DeleteDirectoryResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'DirectoryNotDisabledException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryDeletedException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'InvalidArnException', ], ], ], 'DeleteFacet' => [ 'name' => 'DeleteFacet', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/facet/delete', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteFacetRequest', ], 'output' => [ 'shape' => 'DeleteFacetResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetNotFoundException', ], [ 'shape' => 'FacetInUseException', ], ], ], 'DeleteObject' => [ 'name' => 'DeleteObject', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/delete', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteObjectRequest', ], 'output' => [ 'shape' => 'DeleteObjectResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ObjectNotDetachedException', ], ], ], 'DeleteSchema' => [ 'name' => 'DeleteSchema', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteSchemaRequest', ], 'output' => [ 'shape' => 'DeleteSchemaResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'StillContainsLinksException', ], ], ], 'DeleteTypedLinkFacet' => [ 'name' => 'DeleteTypedLinkFacet', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/facet/delete', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteTypedLinkFacetRequest', ], 'output' => [ 'shape' => 'DeleteTypedLinkFacetResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetNotFoundException', ], ], ], 'DetachFromIndex' => [ 'name' => 'DetachFromIndex', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/index/detach', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DetachFromIndexRequest', ], 'output' => [ 'shape' => 'DetachFromIndexResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ObjectAlreadyDetachedException', ], [ 'shape' => 'NotIndexException', ], ], ], 'DetachObject' => [ 'name' => 'DetachObject', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/detach', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DetachObjectRequest', ], 'output' => [ 'shape' => 'DetachObjectResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotNodeException', ], ], ], 'DetachPolicy' => [ 'name' => 'DetachPolicy', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/policy/detach', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DetachPolicyRequest', ], 'output' => [ 'shape' => 'DetachPolicyResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotPolicyException', ], ], ], 'DetachTypedLink' => [ 'name' => 'DetachTypedLink', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/detach', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DetachTypedLinkRequest', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'DisableDirectory' => [ 'name' => 'DisableDirectory', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/directory/disable', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DisableDirectoryRequest', ], 'output' => [ 'shape' => 'DisableDirectoryResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'DirectoryDeletedException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'InvalidArnException', ], ], ], 'EnableDirectory' => [ 'name' => 'EnableDirectory', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/directory/enable', 'responseCode' => 200, ], 'input' => [ 'shape' => 'EnableDirectoryRequest', ], 'output' => [ 'shape' => 'EnableDirectoryResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'DirectoryDeletedException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'InvalidArnException', ], ], ], 'GetAppliedSchemaVersion' => [ 'name' => 'GetAppliedSchemaVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/getappliedschema', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetAppliedSchemaVersionRequest', ], 'output' => [ 'shape' => 'GetAppliedSchemaVersionResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'GetDirectory' => [ 'name' => 'GetDirectory', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/directory/get', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetDirectoryRequest', ], 'output' => [ 'shape' => 'GetDirectoryResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'GetFacet' => [ 'name' => 'GetFacet', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/facet', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetFacetRequest', ], 'output' => [ 'shape' => 'GetFacetResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetNotFoundException', ], ], ], 'GetLinkAttributes' => [ 'name' => 'GetLinkAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/attributes/get', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetLinkAttributesRequest', ], 'output' => [ 'shape' => 'GetLinkAttributesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'GetObjectAttributes' => [ 'name' => 'GetObjectAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/attributes/get', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetObjectAttributesRequest', ], 'output' => [ 'shape' => 'GetObjectAttributesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'GetObjectInformation' => [ 'name' => 'GetObjectInformation', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/information', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetObjectInformationRequest', ], 'output' => [ 'shape' => 'GetObjectInformationResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'GetSchemaAsJson' => [ 'name' => 'GetSchemaAsJson', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/json', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetSchemaAsJsonRequest', ], 'output' => [ 'shape' => 'GetSchemaAsJsonResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'GetTypedLinkFacetInformation' => [ 'name' => 'GetTypedLinkFacetInformation', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/facet/get', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetTypedLinkFacetInformationRequest', ], 'output' => [ 'shape' => 'GetTypedLinkFacetInformationResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'FacetNotFoundException', ], ], ], 'ListAppliedSchemaArns' => [ 'name' => 'ListAppliedSchemaArns', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/applied', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListAppliedSchemaArnsRequest', ], 'output' => [ 'shape' => 'ListAppliedSchemaArnsResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListAttachedIndices' => [ 'name' => 'ListAttachedIndices', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/indices', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListAttachedIndicesRequest', ], 'output' => [ 'shape' => 'ListAttachedIndicesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListDevelopmentSchemaArns' => [ 'name' => 'ListDevelopmentSchemaArns', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/development', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDevelopmentSchemaArnsRequest', ], 'output' => [ 'shape' => 'ListDevelopmentSchemaArnsResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListDirectories' => [ 'name' => 'ListDirectories', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/directory/list', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDirectoriesRequest', ], 'output' => [ 'shape' => 'ListDirectoriesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListFacetAttributes' => [ 'name' => 'ListFacetAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/facet/attributes', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListFacetAttributesRequest', ], 'output' => [ 'shape' => 'ListFacetAttributesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListFacetNames' => [ 'name' => 'ListFacetNames', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/facet/list', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListFacetNamesRequest', ], 'output' => [ 'shape' => 'ListFacetNamesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListIncomingTypedLinks' => [ 'name' => 'ListIncomingTypedLinks', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/incoming', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListIncomingTypedLinksRequest', ], 'output' => [ 'shape' => 'ListIncomingTypedLinksResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'ListIndex' => [ 'name' => 'ListIndex', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/index/targets', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListIndexRequest', ], 'output' => [ 'shape' => 'ListIndexResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'FacetValidationException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotIndexException', ], ], ], 'ListObjectAttributes' => [ 'name' => 'ListObjectAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/attributes', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListObjectAttributesRequest', ], 'output' => [ 'shape' => 'ListObjectAttributesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'ListObjectChildren' => [ 'name' => 'ListObjectChildren', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/children', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListObjectChildrenRequest', ], 'output' => [ 'shape' => 'ListObjectChildrenResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'NotNodeException', ], ], ], 'ListObjectParentPaths' => [ 'name' => 'ListObjectParentPaths', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/parentpaths', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListObjectParentPathsRequest', ], 'output' => [ 'shape' => 'ListObjectParentPathsResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListObjectParents' => [ 'name' => 'ListObjectParents', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/parent', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListObjectParentsRequest', ], 'output' => [ 'shape' => 'ListObjectParentsResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'CannotListParentOfRootException', ], ], ], 'ListObjectPolicies' => [ 'name' => 'ListObjectPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/policy', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListObjectPoliciesRequest', ], 'output' => [ 'shape' => 'ListObjectPoliciesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListOutgoingTypedLinks' => [ 'name' => 'ListOutgoingTypedLinks', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/outgoing', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListOutgoingTypedLinksRequest', ], 'output' => [ 'shape' => 'ListOutgoingTypedLinksResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'ListPolicyAttachments' => [ 'name' => 'ListPolicyAttachments', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/policy/attachment', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPolicyAttachmentsRequest', ], 'output' => [ 'shape' => 'ListPolicyAttachmentsResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotPolicyException', ], ], ], 'ListPublishedSchemaArns' => [ 'name' => 'ListPublishedSchemaArns', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/published', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPublishedSchemaArnsRequest', ], 'output' => [ 'shape' => 'ListPublishedSchemaArnsResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/tags', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidTaggingRequestException', ], ], ], 'ListTypedLinkFacetAttributes' => [ 'name' => 'ListTypedLinkFacetAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/facet/attributes', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTypedLinkFacetAttributesRequest', ], 'output' => [ 'shape' => 'ListTypedLinkFacetAttributesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListTypedLinkFacetNames' => [ 'name' => 'ListTypedLinkFacetNames', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/facet/list', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTypedLinkFacetNamesRequest', ], 'output' => [ 'shape' => 'ListTypedLinkFacetNamesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'LookupPolicy' => [ 'name' => 'LookupPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/policy/lookup', 'responseCode' => 200, ], 'input' => [ 'shape' => 'LookupPolicyRequest', ], 'output' => [ 'shape' => 'LookupPolicyResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'PublishSchema' => [ 'name' => 'PublishSchema', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/publish', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PublishSchemaRequest', ], 'output' => [ 'shape' => 'PublishSchemaResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'SchemaAlreadyPublishedException', ], ], ], 'PutSchemaFromJson' => [ 'name' => 'PutSchemaFromJson', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/json', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PutSchemaFromJsonRequest', ], 'output' => [ 'shape' => 'PutSchemaFromJsonResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidSchemaDocException', ], [ 'shape' => 'InvalidRuleException', ], ], ], 'RemoveFacetFromObject' => [ 'name' => 'RemoveFacetFromObject', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/facets/delete', 'responseCode' => 200, ], 'input' => [ 'shape' => 'RemoveFacetFromObjectRequest', ], 'output' => [ 'shape' => 'RemoveFacetFromObjectResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/tags/add', 'responseCode' => 200, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidTaggingRequestException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/tags/remove', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidTaggingRequestException', ], ], ], 'UpdateFacet' => [ 'name' => 'UpdateFacet', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/facet', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateFacetRequest', ], 'output' => [ 'shape' => 'UpdateFacetResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidFacetUpdateException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetNotFoundException', ], [ 'shape' => 'InvalidRuleException', ], ], ], 'UpdateLinkAttributes' => [ 'name' => 'UpdateLinkAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/attributes/update', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateLinkAttributesRequest', ], 'output' => [ 'shape' => 'UpdateLinkAttributesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'UpdateObjectAttributes' => [ 'name' => 'UpdateObjectAttributes', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/update', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateObjectAttributesRequest', ], 'output' => [ 'shape' => 'UpdateObjectAttributesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LinkNameAlreadyInUseException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'UpdateSchema' => [ 'name' => 'UpdateSchema', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/update', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateSchemaRequest', ], 'output' => [ 'shape' => 'UpdateSchemaResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateTypedLinkFacet' => [ 'name' => 'UpdateTypedLinkFacet', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/facet', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateTypedLinkFacetRequest', ], 'output' => [ 'shape' => 'UpdateTypedLinkFacetResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'FacetValidationException', ], [ 'shape' => 'InvalidFacetUpdateException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetNotFoundException', ], [ 'shape' => 'InvalidRuleException', ], ], ], 'UpgradeAppliedSchema' => [ 'name' => 'UpgradeAppliedSchema', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/upgradeapplied', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpgradeAppliedSchemaRequest', ], 'output' => [ 'shape' => 'UpgradeAppliedSchemaResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleSchemaException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidAttachmentException', ], ], ], 'UpgradePublishedSchema' => [ 'name' => 'UpgradePublishedSchema', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/upgradepublished', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpgradePublishedSchemaRequest', ], 'output' => [ 'shape' => 'UpgradePublishedSchemaResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleSchemaException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidAttachmentException', ], [ 'shape' => 'LimitExceededException', ], ], ], ], 'shapes' => [ 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, ], 'AddFacetToObjectRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'SchemaFacet', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'SchemaFacet' => [ 'shape' => 'SchemaFacet', ], 'ObjectAttributeList' => [ 'shape' => 'AttributeKeyAndValueList', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'AddFacetToObjectResponse' => [ 'type' => 'structure', 'members' => [], ], 'ApplySchemaRequest' => [ 'type' => 'structure', 'required' => [ 'PublishedSchemaArn', 'DirectoryArn', ], 'members' => [ 'PublishedSchemaArn' => [ 'shape' => 'Arn', ], 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], ], ], 'ApplySchemaResponse' => [ 'type' => 'structure', 'members' => [ 'AppliedSchemaArn' => [ 'shape' => 'Arn', ], 'DirectoryArn' => [ 'shape' => 'Arn', ], ], ], 'Arn' => [ 'type' => 'string', ], 'Arns' => [ 'type' => 'list', 'member' => [ 'shape' => 'Arn', ], ], 'AttachObjectRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ParentReference', 'ChildReference', 'LinkName', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ParentReference' => [ 'shape' => 'ObjectReference', ], 'ChildReference' => [ 'shape' => 'ObjectReference', ], 'LinkName' => [ 'shape' => 'LinkName', ], ], ], 'AttachObjectResponse' => [ 'type' => 'structure', 'members' => [ 'AttachedObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'AttachPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'PolicyReference', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'PolicyReference' => [ 'shape' => 'ObjectReference', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'AttachPolicyResponse' => [ 'type' => 'structure', 'members' => [], ], 'AttachToIndexRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'IndexReference', 'TargetReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'IndexReference' => [ 'shape' => 'ObjectReference', ], 'TargetReference' => [ 'shape' => 'ObjectReference', ], ], ], 'AttachToIndexResponse' => [ 'type' => 'structure', 'members' => [ 'AttachedObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'AttachTypedLinkRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'SourceObjectReference', 'TargetObjectReference', 'TypedLinkFacet', 'Attributes', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'SourceObjectReference' => [ 'shape' => 'ObjectReference', ], 'TargetObjectReference' => [ 'shape' => 'ObjectReference', ], 'TypedLinkFacet' => [ 'shape' => 'TypedLinkSchemaAndFacetName', ], 'Attributes' => [ 'shape' => 'AttributeNameAndValueList', ], ], ], 'AttachTypedLinkResponse' => [ 'type' => 'structure', 'members' => [ 'TypedLinkSpecifier' => [ 'shape' => 'TypedLinkSpecifier', ], ], ], 'AttributeKey' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'FacetName', 'Name', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', ], 'FacetName' => [ 'shape' => 'FacetName', ], 'Name' => [ 'shape' => 'AttributeName', ], ], ], 'AttributeKeyAndValue' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'AttributeKey', ], 'Value' => [ 'shape' => 'TypedAttributeValue', ], ], ], 'AttributeKeyAndValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeKeyAndValue', ], ], 'AttributeKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeKey', ], ], 'AttributeName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '^[a-zA-Z0-9._-]*$', ], 'AttributeNameAndValue' => [ 'type' => 'structure', 'required' => [ 'AttributeName', 'Value', ], 'members' => [ 'AttributeName' => [ 'shape' => 'AttributeName', ], 'Value' => [ 'shape' => 'TypedAttributeValue', ], ], ], 'AttributeNameAndValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeNameAndValue', ], ], 'AttributeNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeName', ], ], 'BatchAddFacetToObject' => [ 'type' => 'structure', 'required' => [ 'SchemaFacet', 'ObjectAttributeList', 'ObjectReference', ], 'members' => [ 'SchemaFacet' => [ 'shape' => 'SchemaFacet', ], 'ObjectAttributeList' => [ 'shape' => 'AttributeKeyAndValueList', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'BatchAddFacetToObjectResponse' => [ 'type' => 'structure', 'members' => [], ], 'BatchAttachObject' => [ 'type' => 'structure', 'required' => [ 'ParentReference', 'ChildReference', 'LinkName', ], 'members' => [ 'ParentReference' => [ 'shape' => 'ObjectReference', ], 'ChildReference' => [ 'shape' => 'ObjectReference', ], 'LinkName' => [ 'shape' => 'LinkName', ], ], ], 'BatchAttachObjectResponse' => [ 'type' => 'structure', 'members' => [ 'attachedObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'BatchAttachPolicy' => [ 'type' => 'structure', 'required' => [ 'PolicyReference', 'ObjectReference', ], 'members' => [ 'PolicyReference' => [ 'shape' => 'ObjectReference', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'BatchAttachPolicyResponse' => [ 'type' => 'structure', 'members' => [], ], 'BatchAttachToIndex' => [ 'type' => 'structure', 'required' => [ 'IndexReference', 'TargetReference', ], 'members' => [ 'IndexReference' => [ 'shape' => 'ObjectReference', ], 'TargetReference' => [ 'shape' => 'ObjectReference', ], ], ], 'BatchAttachToIndexResponse' => [ 'type' => 'structure', 'members' => [ 'AttachedObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'BatchAttachTypedLink' => [ 'type' => 'structure', 'required' => [ 'SourceObjectReference', 'TargetObjectReference', 'TypedLinkFacet', 'Attributes', ], 'members' => [ 'SourceObjectReference' => [ 'shape' => 'ObjectReference', ], 'TargetObjectReference' => [ 'shape' => 'ObjectReference', ], 'TypedLinkFacet' => [ 'shape' => 'TypedLinkSchemaAndFacetName', ], 'Attributes' => [ 'shape' => 'AttributeNameAndValueList', ], ], ], 'BatchAttachTypedLinkResponse' => [ 'type' => 'structure', 'members' => [ 'TypedLinkSpecifier' => [ 'shape' => 'TypedLinkSpecifier', ], ], ], 'BatchCreateIndex' => [ 'type' => 'structure', 'required' => [ 'OrderedIndexedAttributeList', 'IsUnique', ], 'members' => [ 'OrderedIndexedAttributeList' => [ 'shape' => 'AttributeKeyList', ], 'IsUnique' => [ 'shape' => 'Bool', ], 'ParentReference' => [ 'shape' => 'ObjectReference', ], 'LinkName' => [ 'shape' => 'LinkName', ], 'BatchReferenceName' => [ 'shape' => 'BatchReferenceName', ], ], ], 'BatchCreateIndexResponse' => [ 'type' => 'structure', 'members' => [ 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'BatchCreateObject' => [ 'type' => 'structure', 'required' => [ 'SchemaFacet', 'ObjectAttributeList', ], 'members' => [ 'SchemaFacet' => [ 'shape' => 'SchemaFacetList', ], 'ObjectAttributeList' => [ 'shape' => 'AttributeKeyAndValueList', ], 'ParentReference' => [ 'shape' => 'ObjectReference', ], 'LinkName' => [ 'shape' => 'LinkName', ], 'BatchReferenceName' => [ 'shape' => 'BatchReferenceName', ], ], ], 'BatchCreateObjectResponse' => [ 'type' => 'structure', 'members' => [ 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'BatchDeleteObject' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'BatchDeleteObjectResponse' => [ 'type' => 'structure', 'members' => [], ], 'BatchDetachFromIndex' => [ 'type' => 'structure', 'required' => [ 'IndexReference', 'TargetReference', ], 'members' => [ 'IndexReference' => [ 'shape' => 'ObjectReference', ], 'TargetReference' => [ 'shape' => 'ObjectReference', ], ], ], 'BatchDetachFromIndexResponse' => [ 'type' => 'structure', 'members' => [ 'DetachedObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'BatchDetachObject' => [ 'type' => 'structure', 'required' => [ 'ParentReference', 'LinkName', ], 'members' => [ 'ParentReference' => [ 'shape' => 'ObjectReference', ], 'LinkName' => [ 'shape' => 'LinkName', ], 'BatchReferenceName' => [ 'shape' => 'BatchReferenceName', ], ], ], 'BatchDetachObjectResponse' => [ 'type' => 'structure', 'members' => [ 'detachedObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'BatchDetachPolicy' => [ 'type' => 'structure', 'required' => [ 'PolicyReference', 'ObjectReference', ], 'members' => [ 'PolicyReference' => [ 'shape' => 'ObjectReference', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'BatchDetachPolicyResponse' => [ 'type' => 'structure', 'members' => [], ], 'BatchDetachTypedLink' => [ 'type' => 'structure', 'required' => [ 'TypedLinkSpecifier', ], 'members' => [ 'TypedLinkSpecifier' => [ 'shape' => 'TypedLinkSpecifier', ], ], ], 'BatchDetachTypedLinkResponse' => [ 'type' => 'structure', 'members' => [], ], 'BatchGetLinkAttributes' => [ 'type' => 'structure', 'required' => [ 'TypedLinkSpecifier', 'AttributeNames', ], 'members' => [ 'TypedLinkSpecifier' => [ 'shape' => 'TypedLinkSpecifier', ], 'AttributeNames' => [ 'shape' => 'AttributeNameList', ], ], ], 'BatchGetLinkAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'AttributeKeyAndValueList', ], ], ], 'BatchGetObjectAttributes' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', 'SchemaFacet', 'AttributeNames', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'SchemaFacet' => [ 'shape' => 'SchemaFacet', ], 'AttributeNames' => [ 'shape' => 'AttributeNameList', ], ], ], 'BatchGetObjectAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'AttributeKeyAndValueList', ], ], ], 'BatchGetObjectInformation' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'BatchGetObjectInformationResponse' => [ 'type' => 'structure', 'members' => [ 'SchemaFacets' => [ 'shape' => 'SchemaFacetList', ], 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'BatchListAttachedIndices' => [ 'type' => 'structure', 'required' => [ 'TargetReference', ], 'members' => [ 'TargetReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'BatchListAttachedIndicesResponse' => [ 'type' => 'structure', 'members' => [ 'IndexAttachments' => [ 'shape' => 'IndexAttachmentList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchListIncomingTypedLinks' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'FilterAttributeRanges' => [ 'shape' => 'TypedLinkAttributeRangeList', ], 'FilterTypedLink' => [ 'shape' => 'TypedLinkSchemaAndFacetName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'BatchListIncomingTypedLinksResponse' => [ 'type' => 'structure', 'members' => [ 'LinkSpecifiers' => [ 'shape' => 'TypedLinkSpecifierList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchListIndex' => [ 'type' => 'structure', 'required' => [ 'IndexReference', ], 'members' => [ 'RangesOnIndexedValues' => [ 'shape' => 'ObjectAttributeRangeList', ], 'IndexReference' => [ 'shape' => 'ObjectReference', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchListIndexResponse' => [ 'type' => 'structure', 'members' => [ 'IndexAttachments' => [ 'shape' => 'IndexAttachmentList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchListObjectAttributes' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'FacetFilter' => [ 'shape' => 'SchemaFacet', ], ], ], 'BatchListObjectAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'AttributeKeyAndValueList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchListObjectChildren' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'BatchListObjectChildrenResponse' => [ 'type' => 'structure', 'members' => [ 'Children' => [ 'shape' => 'LinkNameToObjectIdentifierMap', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchListObjectParentPaths' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'BatchListObjectParentPathsResponse' => [ 'type' => 'structure', 'members' => [ 'PathToObjectIdentifiersList' => [ 'shape' => 'PathToObjectIdentifiersList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchListObjectPolicies' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'BatchListObjectPoliciesResponse' => [ 'type' => 'structure', 'members' => [ 'AttachedPolicyIds' => [ 'shape' => 'ObjectIdentifierList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchListOutgoingTypedLinks' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'FilterAttributeRanges' => [ 'shape' => 'TypedLinkAttributeRangeList', ], 'FilterTypedLink' => [ 'shape' => 'TypedLinkSchemaAndFacetName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'BatchListOutgoingTypedLinksResponse' => [ 'type' => 'structure', 'members' => [ 'TypedLinkSpecifiers' => [ 'shape' => 'TypedLinkSpecifierList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchListPolicyAttachments' => [ 'type' => 'structure', 'required' => [ 'PolicyReference', ], 'members' => [ 'PolicyReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'BatchListPolicyAttachmentsResponse' => [ 'type' => 'structure', 'members' => [ 'ObjectIdentifiers' => [ 'shape' => 'ObjectIdentifierList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchLookupPolicy' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'BatchLookupPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'PolicyToPathList' => [ 'shape' => 'PolicyToPathList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchOperationIndex' => [ 'type' => 'integer', ], 'BatchReadException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'BatchReadExceptionType', ], 'Message' => [ 'shape' => 'ExceptionMessage', ], ], ], 'BatchReadExceptionType' => [ 'type' => 'string', 'enum' => [ 'ValidationException', 'InvalidArnException', 'ResourceNotFoundException', 'InvalidNextTokenException', 'AccessDeniedException', 'NotNodeException', 'FacetValidationException', 'CannotListParentOfRootException', 'NotIndexException', 'NotPolicyException', 'DirectoryNotEnabledException', 'LimitExceededException', 'InternalServiceException', ], ], 'BatchReadOperation' => [ 'type' => 'structure', 'members' => [ 'ListObjectAttributes' => [ 'shape' => 'BatchListObjectAttributes', ], 'ListObjectChildren' => [ 'shape' => 'BatchListObjectChildren', ], 'ListAttachedIndices' => [ 'shape' => 'BatchListAttachedIndices', ], 'ListObjectParentPaths' => [ 'shape' => 'BatchListObjectParentPaths', ], 'GetObjectInformation' => [ 'shape' => 'BatchGetObjectInformation', ], 'GetObjectAttributes' => [ 'shape' => 'BatchGetObjectAttributes', ], 'ListObjectPolicies' => [ 'shape' => 'BatchListObjectPolicies', ], 'ListPolicyAttachments' => [ 'shape' => 'BatchListPolicyAttachments', ], 'LookupPolicy' => [ 'shape' => 'BatchLookupPolicy', ], 'ListIndex' => [ 'shape' => 'BatchListIndex', ], 'ListOutgoingTypedLinks' => [ 'shape' => 'BatchListOutgoingTypedLinks', ], 'ListIncomingTypedLinks' => [ 'shape' => 'BatchListIncomingTypedLinks', ], 'GetLinkAttributes' => [ 'shape' => 'BatchGetLinkAttributes', ], ], ], 'BatchReadOperationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BatchReadOperation', ], ], 'BatchReadOperationResponse' => [ 'type' => 'structure', 'members' => [ 'SuccessfulResponse' => [ 'shape' => 'BatchReadSuccessfulResponse', ], 'ExceptionResponse' => [ 'shape' => 'BatchReadException', ], ], ], 'BatchReadOperationResponseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BatchReadOperationResponse', ], ], 'BatchReadRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'Operations', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Operations' => [ 'shape' => 'BatchReadOperationList', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', 'location' => 'header', 'locationName' => 'x-amz-consistency-level', ], ], ], 'BatchReadResponse' => [ 'type' => 'structure', 'members' => [ 'Responses' => [ 'shape' => 'BatchReadOperationResponseList', ], ], ], 'BatchReadSuccessfulResponse' => [ 'type' => 'structure', 'members' => [ 'ListObjectAttributes' => [ 'shape' => 'BatchListObjectAttributesResponse', ], 'ListObjectChildren' => [ 'shape' => 'BatchListObjectChildrenResponse', ], 'GetObjectInformation' => [ 'shape' => 'BatchGetObjectInformationResponse', ], 'GetObjectAttributes' => [ 'shape' => 'BatchGetObjectAttributesResponse', ], 'ListAttachedIndices' => [ 'shape' => 'BatchListAttachedIndicesResponse', ], 'ListObjectParentPaths' => [ 'shape' => 'BatchListObjectParentPathsResponse', ], 'ListObjectPolicies' => [ 'shape' => 'BatchListObjectPoliciesResponse', ], 'ListPolicyAttachments' => [ 'shape' => 'BatchListPolicyAttachmentsResponse', ], 'LookupPolicy' => [ 'shape' => 'BatchLookupPolicyResponse', ], 'ListIndex' => [ 'shape' => 'BatchListIndexResponse', ], 'ListOutgoingTypedLinks' => [ 'shape' => 'BatchListOutgoingTypedLinksResponse', ], 'ListIncomingTypedLinks' => [ 'shape' => 'BatchListIncomingTypedLinksResponse', ], 'GetLinkAttributes' => [ 'shape' => 'BatchGetLinkAttributesResponse', ], ], ], 'BatchReferenceName' => [ 'type' => 'string', ], 'BatchRemoveFacetFromObject' => [ 'type' => 'structure', 'required' => [ 'SchemaFacet', 'ObjectReference', ], 'members' => [ 'SchemaFacet' => [ 'shape' => 'SchemaFacet', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'BatchRemoveFacetFromObjectResponse' => [ 'type' => 'structure', 'members' => [], ], 'BatchUpdateLinkAttributes' => [ 'type' => 'structure', 'required' => [ 'TypedLinkSpecifier', 'AttributeUpdates', ], 'members' => [ 'TypedLinkSpecifier' => [ 'shape' => 'TypedLinkSpecifier', ], 'AttributeUpdates' => [ 'shape' => 'LinkAttributeUpdateList', ], ], ], 'BatchUpdateLinkAttributesResponse' => [ 'type' => 'structure', 'members' => [], ], 'BatchUpdateObjectAttributes' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', 'AttributeUpdates', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'AttributeUpdates' => [ 'shape' => 'ObjectAttributeUpdateList', ], ], ], 'BatchUpdateObjectAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'BatchWriteException' => [ 'type' => 'structure', 'members' => [ 'Index' => [ 'shape' => 'BatchOperationIndex', ], 'Type' => [ 'shape' => 'BatchWriteExceptionType', ], 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'BatchWriteExceptionType' => [ 'type' => 'string', 'enum' => [ 'InternalServiceException', 'ValidationException', 'InvalidArnException', 'LinkNameAlreadyInUseException', 'StillContainsLinksException', 'FacetValidationException', 'ObjectNotDetachedException', 'ResourceNotFoundException', 'AccessDeniedException', 'InvalidAttachmentException', 'NotIndexException', 'NotNodeException', 'IndexedAttributeMissingException', 'ObjectAlreadyDetachedException', 'NotPolicyException', 'DirectoryNotEnabledException', 'LimitExceededException', 'UnsupportedIndexTypeException', ], ], 'BatchWriteOperation' => [ 'type' => 'structure', 'members' => [ 'CreateObject' => [ 'shape' => 'BatchCreateObject', ], 'AttachObject' => [ 'shape' => 'BatchAttachObject', ], 'DetachObject' => [ 'shape' => 'BatchDetachObject', ], 'UpdateObjectAttributes' => [ 'shape' => 'BatchUpdateObjectAttributes', ], 'DeleteObject' => [ 'shape' => 'BatchDeleteObject', ], 'AddFacetToObject' => [ 'shape' => 'BatchAddFacetToObject', ], 'RemoveFacetFromObject' => [ 'shape' => 'BatchRemoveFacetFromObject', ], 'AttachPolicy' => [ 'shape' => 'BatchAttachPolicy', ], 'DetachPolicy' => [ 'shape' => 'BatchDetachPolicy', ], 'CreateIndex' => [ 'shape' => 'BatchCreateIndex', ], 'AttachToIndex' => [ 'shape' => 'BatchAttachToIndex', ], 'DetachFromIndex' => [ 'shape' => 'BatchDetachFromIndex', ], 'AttachTypedLink' => [ 'shape' => 'BatchAttachTypedLink', ], 'DetachTypedLink' => [ 'shape' => 'BatchDetachTypedLink', ], 'UpdateLinkAttributes' => [ 'shape' => 'BatchUpdateLinkAttributes', ], ], ], 'BatchWriteOperationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BatchWriteOperation', ], ], 'BatchWriteOperationResponse' => [ 'type' => 'structure', 'members' => [ 'CreateObject' => [ 'shape' => 'BatchCreateObjectResponse', ], 'AttachObject' => [ 'shape' => 'BatchAttachObjectResponse', ], 'DetachObject' => [ 'shape' => 'BatchDetachObjectResponse', ], 'UpdateObjectAttributes' => [ 'shape' => 'BatchUpdateObjectAttributesResponse', ], 'DeleteObject' => [ 'shape' => 'BatchDeleteObjectResponse', ], 'AddFacetToObject' => [ 'shape' => 'BatchAddFacetToObjectResponse', ], 'RemoveFacetFromObject' => [ 'shape' => 'BatchRemoveFacetFromObjectResponse', ], 'AttachPolicy' => [ 'shape' => 'BatchAttachPolicyResponse', ], 'DetachPolicy' => [ 'shape' => 'BatchDetachPolicyResponse', ], 'CreateIndex' => [ 'shape' => 'BatchCreateIndexResponse', ], 'AttachToIndex' => [ 'shape' => 'BatchAttachToIndexResponse', ], 'DetachFromIndex' => [ 'shape' => 'BatchDetachFromIndexResponse', ], 'AttachTypedLink' => [ 'shape' => 'BatchAttachTypedLinkResponse', ], 'DetachTypedLink' => [ 'shape' => 'BatchDetachTypedLinkResponse', ], 'UpdateLinkAttributes' => [ 'shape' => 'BatchUpdateLinkAttributesResponse', ], ], ], 'BatchWriteOperationResponseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BatchWriteOperationResponse', ], ], 'BatchWriteRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'Operations', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Operations' => [ 'shape' => 'BatchWriteOperationList', ], ], ], 'BatchWriteResponse' => [ 'type' => 'structure', 'members' => [ 'Responses' => [ 'shape' => 'BatchWriteOperationResponseList', ], ], ], 'BinaryAttributeValue' => [ 'type' => 'blob', ], 'Bool' => [ 'type' => 'boolean', ], 'BooleanAttributeValue' => [ 'type' => 'boolean', ], 'CannotListParentOfRootException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ConsistencyLevel' => [ 'type' => 'string', 'enum' => [ 'SERIALIZABLE', 'EVENTUAL', ], ], 'CreateDirectoryRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'SchemaArn', ], 'members' => [ 'Name' => [ 'shape' => 'DirectoryName', ], 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], ], ], 'CreateDirectoryResponse' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'Name', 'ObjectIdentifier', 'AppliedSchemaArn', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'DirectoryArn', ], 'Name' => [ 'shape' => 'DirectoryName', ], 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], 'AppliedSchemaArn' => [ 'shape' => 'Arn', ], ], ], 'CreateFacetRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Name', 'ObjectType', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Name' => [ 'shape' => 'FacetName', ], 'Attributes' => [ 'shape' => 'FacetAttributeList', ], 'ObjectType' => [ 'shape' => 'ObjectType', ], ], ], 'CreateFacetResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateIndexRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'OrderedIndexedAttributeList', 'IsUnique', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'OrderedIndexedAttributeList' => [ 'shape' => 'AttributeKeyList', ], 'IsUnique' => [ 'shape' => 'Bool', ], 'ParentReference' => [ 'shape' => 'ObjectReference', ], 'LinkName' => [ 'shape' => 'LinkName', ], ], ], 'CreateIndexResponse' => [ 'type' => 'structure', 'members' => [ 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'CreateObjectRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'SchemaFacets', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'SchemaFacets' => [ 'shape' => 'SchemaFacetList', ], 'ObjectAttributeList' => [ 'shape' => 'AttributeKeyAndValueList', ], 'ParentReference' => [ 'shape' => 'ObjectReference', ], 'LinkName' => [ 'shape' => 'LinkName', ], ], ], 'CreateObjectResponse' => [ 'type' => 'structure', 'members' => [ 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'CreateSchemaRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'SchemaName', ], ], ], 'CreateSchemaResponse' => [ 'type' => 'structure', 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', ], ], ], 'CreateTypedLinkFacetRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Facet', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Facet' => [ 'shape' => 'TypedLinkFacet', ], ], ], 'CreateTypedLinkFacetResponse' => [ 'type' => 'structure', 'members' => [], ], 'Date' => [ 'type' => 'timestamp', ], 'DatetimeAttributeValue' => [ 'type' => 'timestamp', ], 'DeleteDirectoryRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], ], ], 'DeleteDirectoryResponse' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteFacetRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Name', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Name' => [ 'shape' => 'FacetName', ], ], ], 'DeleteFacetResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteObjectRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'DeleteObjectResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteSchemaRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], ], ], 'DeleteSchemaResponse' => [ 'type' => 'structure', 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteTypedLinkFacetRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Name', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Name' => [ 'shape' => 'TypedLinkName', ], ], ], 'DeleteTypedLinkFacetResponse' => [ 'type' => 'structure', 'members' => [], ], 'DetachFromIndexRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'IndexReference', 'TargetReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'IndexReference' => [ 'shape' => 'ObjectReference', ], 'TargetReference' => [ 'shape' => 'ObjectReference', ], ], ], 'DetachFromIndexResponse' => [ 'type' => 'structure', 'members' => [ 'DetachedObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'DetachObjectRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ParentReference', 'LinkName', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ParentReference' => [ 'shape' => 'ObjectReference', ], 'LinkName' => [ 'shape' => 'LinkName', ], ], ], 'DetachObjectResponse' => [ 'type' => 'structure', 'members' => [ 'DetachedObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'DetachPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'PolicyReference', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'PolicyReference' => [ 'shape' => 'ObjectReference', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'DetachPolicyResponse' => [ 'type' => 'structure', 'members' => [], ], 'DetachTypedLinkRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'TypedLinkSpecifier', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'TypedLinkSpecifier' => [ 'shape' => 'TypedLinkSpecifier', ], ], ], 'Directory' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'DirectoryName', ], 'DirectoryArn' => [ 'shape' => 'DirectoryArn', ], 'State' => [ 'shape' => 'DirectoryState', ], 'CreationDateTime' => [ 'shape' => 'Date', ], ], ], 'DirectoryAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'DirectoryArn' => [ 'type' => 'string', ], 'DirectoryDeletedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'DirectoryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Directory', ], ], 'DirectoryName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '^[a-zA-Z0-9._-]*$', ], 'DirectoryNotDisabledException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'DirectoryNotEnabledException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'DirectoryState' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', 'DELETED', ], ], 'DisableDirectoryRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], ], ], 'DisableDirectoryResponse' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', ], ], ], 'EnableDirectoryRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], ], ], 'EnableDirectoryResponse' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', ], ], ], 'ExceptionMessage' => [ 'type' => 'string', ], 'Facet' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'FacetName', ], 'ObjectType' => [ 'shape' => 'ObjectType', ], ], ], 'FacetAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'FacetAttribute' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'AttributeName', ], 'AttributeDefinition' => [ 'shape' => 'FacetAttributeDefinition', ], 'AttributeReference' => [ 'shape' => 'FacetAttributeReference', ], 'RequiredBehavior' => [ 'shape' => 'RequiredAttributeBehavior', ], ], ], 'FacetAttributeDefinition' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'FacetAttributeType', ], 'DefaultValue' => [ 'shape' => 'TypedAttributeValue', ], 'IsImmutable' => [ 'shape' => 'Bool', ], 'Rules' => [ 'shape' => 'RuleMap', ], ], ], 'FacetAttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FacetAttribute', ], ], 'FacetAttributeReference' => [ 'type' => 'structure', 'required' => [ 'TargetFacetName', 'TargetAttributeName', ], 'members' => [ 'TargetFacetName' => [ 'shape' => 'FacetName', ], 'TargetAttributeName' => [ 'shape' => 'AttributeName', ], ], ], 'FacetAttributeType' => [ 'type' => 'string', 'enum' => [ 'STRING', 'BINARY', 'BOOLEAN', 'NUMBER', 'DATETIME', ], ], 'FacetAttributeUpdate' => [ 'type' => 'structure', 'members' => [ 'Attribute' => [ 'shape' => 'FacetAttribute', ], 'Action' => [ 'shape' => 'UpdateActionType', ], ], ], 'FacetAttributeUpdateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FacetAttributeUpdate', ], ], 'FacetInUseException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'FacetName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '^[a-zA-Z0-9._-]*$', ], 'FacetNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FacetName', ], ], 'FacetNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'FacetValidationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'GetAppliedSchemaVersionRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', ], ], ], 'GetAppliedSchemaVersionResponse' => [ 'type' => 'structure', 'members' => [ 'AppliedSchemaArn' => [ 'shape' => 'Arn', ], ], ], 'GetDirectoryRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'DirectoryArn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], ], ], 'GetDirectoryResponse' => [ 'type' => 'structure', 'required' => [ 'Directory', ], 'members' => [ 'Directory' => [ 'shape' => 'Directory', ], ], ], 'GetFacetRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Name', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Name' => [ 'shape' => 'FacetName', ], ], ], 'GetFacetResponse' => [ 'type' => 'structure', 'members' => [ 'Facet' => [ 'shape' => 'Facet', ], ], ], 'GetLinkAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'TypedLinkSpecifier', 'AttributeNames', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'TypedLinkSpecifier' => [ 'shape' => 'TypedLinkSpecifier', ], 'AttributeNames' => [ 'shape' => 'AttributeNameList', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', ], ], ], 'GetLinkAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'AttributeKeyAndValueList', ], ], ], 'GetObjectAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', 'SchemaFacet', 'AttributeNames', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', 'location' => 'header', 'locationName' => 'x-amz-consistency-level', ], 'SchemaFacet' => [ 'shape' => 'SchemaFacet', ], 'AttributeNames' => [ 'shape' => 'AttributeNameList', ], ], ], 'GetObjectAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'AttributeKeyAndValueList', ], ], ], 'GetObjectInformationRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', 'location' => 'header', 'locationName' => 'x-amz-consistency-level', ], ], ], 'GetObjectInformationResponse' => [ 'type' => 'structure', 'members' => [ 'SchemaFacets' => [ 'shape' => 'SchemaFacetList', ], 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'GetSchemaAsJsonRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], ], ], 'GetSchemaAsJsonResponse' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'SchemaName', ], 'Document' => [ 'shape' => 'SchemaJsonDocument', ], ], ], 'GetTypedLinkFacetInformationRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Name', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Name' => [ 'shape' => 'TypedLinkName', ], ], ], 'GetTypedLinkFacetInformationResponse' => [ 'type' => 'structure', 'members' => [ 'IdentityAttributeOrder' => [ 'shape' => 'AttributeNameList', ], ], ], 'IncompatibleSchemaException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'IndexAttachment' => [ 'type' => 'structure', 'members' => [ 'IndexedAttributes' => [ 'shape' => 'AttributeKeyAndValueList', ], 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'IndexAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IndexAttachment', ], ], 'IndexedAttributeMissingException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InternalServiceException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, ], 'InvalidArnException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidAttachmentException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidFacetUpdateException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidRuleException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidSchemaDocException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidTaggingRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'LinkAttributeAction' => [ 'type' => 'structure', 'members' => [ 'AttributeActionType' => [ 'shape' => 'UpdateActionType', ], 'AttributeUpdateValue' => [ 'shape' => 'TypedAttributeValue', ], ], ], 'LinkAttributeUpdate' => [ 'type' => 'structure', 'members' => [ 'AttributeKey' => [ 'shape' => 'AttributeKey', ], 'AttributeAction' => [ 'shape' => 'LinkAttributeAction', ], ], ], 'LinkAttributeUpdateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LinkAttributeUpdate', ], ], 'LinkName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[^\\/\\[\\]\\(\\):\\{\\}#@!?\\s\\\\;]+', ], 'LinkNameAlreadyInUseException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'LinkNameToObjectIdentifierMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'LinkName', ], 'value' => [ 'shape' => 'ObjectIdentifier', ], ], 'ListAppliedSchemaArnsRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', ], 'SchemaArn' => [ 'shape' => 'Arn', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'ListAppliedSchemaArnsResponse' => [ 'type' => 'structure', 'members' => [ 'SchemaArns' => [ 'shape' => 'Arns', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListAttachedIndicesRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'TargetReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'TargetReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', 'location' => 'header', 'locationName' => 'x-amz-consistency-level', ], ], ], 'ListAttachedIndicesResponse' => [ 'type' => 'structure', 'members' => [ 'IndexAttachments' => [ 'shape' => 'IndexAttachmentList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDevelopmentSchemaArnsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'ListDevelopmentSchemaArnsResponse' => [ 'type' => 'structure', 'members' => [ 'SchemaArns' => [ 'shape' => 'Arns', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDirectoriesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'state' => [ 'shape' => 'DirectoryState', ], ], ], 'ListDirectoriesResponse' => [ 'type' => 'structure', 'required' => [ 'Directories', ], 'members' => [ 'Directories' => [ 'shape' => 'DirectoryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListFacetAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Name', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Name' => [ 'shape' => 'FacetName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'ListFacetAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'FacetAttributeList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListFacetNamesRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'ListFacetNamesResponse' => [ 'type' => 'structure', 'members' => [ 'FacetNames' => [ 'shape' => 'FacetNameList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListIncomingTypedLinksRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'FilterAttributeRanges' => [ 'shape' => 'TypedLinkAttributeRangeList', ], 'FilterTypedLink' => [ 'shape' => 'TypedLinkSchemaAndFacetName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', ], ], ], 'ListIncomingTypedLinksResponse' => [ 'type' => 'structure', 'members' => [ 'LinkSpecifiers' => [ 'shape' => 'TypedLinkSpecifierList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListIndexRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'IndexReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'RangesOnIndexedValues' => [ 'shape' => 'ObjectAttributeRangeList', ], 'IndexReference' => [ 'shape' => 'ObjectReference', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', 'location' => 'header', 'locationName' => 'x-amz-consistency-level', ], ], ], 'ListIndexResponse' => [ 'type' => 'structure', 'members' => [ 'IndexAttachments' => [ 'shape' => 'IndexAttachmentList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListObjectAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', 'location' => 'header', 'locationName' => 'x-amz-consistency-level', ], 'FacetFilter' => [ 'shape' => 'SchemaFacet', ], ], ], 'ListObjectAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'AttributeKeyAndValueList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListObjectChildrenRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', 'location' => 'header', 'locationName' => 'x-amz-consistency-level', ], ], ], 'ListObjectChildrenResponse' => [ 'type' => 'structure', 'members' => [ 'Children' => [ 'shape' => 'LinkNameToObjectIdentifierMap', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListObjectParentPathsRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'ListObjectParentPathsResponse' => [ 'type' => 'structure', 'members' => [ 'PathToObjectIdentifiersList' => [ 'shape' => 'PathToObjectIdentifiersList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListObjectParentsRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', 'location' => 'header', 'locationName' => 'x-amz-consistency-level', ], ], ], 'ListObjectParentsResponse' => [ 'type' => 'structure', 'members' => [ 'Parents' => [ 'shape' => 'ObjectIdentifierToLinkNameMap', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListObjectPoliciesRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', 'location' => 'header', 'locationName' => 'x-amz-consistency-level', ], ], ], 'ListObjectPoliciesResponse' => [ 'type' => 'structure', 'members' => [ 'AttachedPolicyIds' => [ 'shape' => 'ObjectIdentifierList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListOutgoingTypedLinksRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'FilterAttributeRanges' => [ 'shape' => 'TypedLinkAttributeRangeList', ], 'FilterTypedLink' => [ 'shape' => 'TypedLinkSchemaAndFacetName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', ], ], ], 'ListOutgoingTypedLinksResponse' => [ 'type' => 'structure', 'members' => [ 'TypedLinkSpecifiers' => [ 'shape' => 'TypedLinkSpecifierList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPolicyAttachmentsRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'PolicyReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'PolicyReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', 'location' => 'header', 'locationName' => 'x-amz-consistency-level', ], ], ], 'ListPolicyAttachmentsResponse' => [ 'type' => 'structure', 'members' => [ 'ObjectIdentifiers' => [ 'shape' => 'ObjectIdentifierList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPublishedSchemaArnsRequest' => [ 'type' => 'structure', 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'ListPublishedSchemaArnsResponse' => [ 'type' => 'structure', 'members' => [ 'SchemaArns' => [ 'shape' => 'Arns', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'Arn', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'TagsNumberResults', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTypedLinkFacetAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Name', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Name' => [ 'shape' => 'TypedLinkName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'ListTypedLinkFacetAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'TypedLinkAttributeDefinitionList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTypedLinkFacetNamesRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'ListTypedLinkFacetNamesResponse' => [ 'type' => 'structure', 'members' => [ 'FacetNames' => [ 'shape' => 'TypedLinkNameList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'LookupPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'LookupPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'PolicyToPathList' => [ 'shape' => 'PolicyToPathList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'NextToken' => [ 'type' => 'string', ], 'NotIndexException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'NotNodeException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'NotPolicyException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'NumberAttributeValue' => [ 'type' => 'string', ], 'NumberResults' => [ 'type' => 'integer', 'min' => 1, ], 'ObjectAlreadyDetachedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ObjectAttributeAction' => [ 'type' => 'structure', 'members' => [ 'ObjectAttributeActionType' => [ 'shape' => 'UpdateActionType', ], 'ObjectAttributeUpdateValue' => [ 'shape' => 'TypedAttributeValue', ], ], ], 'ObjectAttributeRange' => [ 'type' => 'structure', 'members' => [ 'AttributeKey' => [ 'shape' => 'AttributeKey', ], 'Range' => [ 'shape' => 'TypedAttributeValueRange', ], ], ], 'ObjectAttributeRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ObjectAttributeRange', ], ], 'ObjectAttributeUpdate' => [ 'type' => 'structure', 'members' => [ 'ObjectAttributeKey' => [ 'shape' => 'AttributeKey', ], 'ObjectAttributeAction' => [ 'shape' => 'ObjectAttributeAction', ], ], ], 'ObjectAttributeUpdateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ObjectAttributeUpdate', ], ], 'ObjectIdentifier' => [ 'type' => 'string', ], 'ObjectIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ObjectIdentifier', ], ], 'ObjectIdentifierToLinkNameMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'ObjectIdentifier', ], 'value' => [ 'shape' => 'LinkName', ], ], 'ObjectNotDetachedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ObjectReference' => [ 'type' => 'structure', 'members' => [ 'Selector' => [ 'shape' => 'SelectorObjectReference', ], ], ], 'ObjectType' => [ 'type' => 'string', 'enum' => [ 'NODE', 'LEAF_NODE', 'POLICY', 'INDEX', ], ], 'PathString' => [ 'type' => 'string', ], 'PathToObjectIdentifiers' => [ 'type' => 'structure', 'members' => [ 'Path' => [ 'shape' => 'PathString', ], 'ObjectIdentifiers' => [ 'shape' => 'ObjectIdentifierList', ], ], ], 'PathToObjectIdentifiersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PathToObjectIdentifiers', ], ], 'PolicyAttachment' => [ 'type' => 'structure', 'members' => [ 'PolicyId' => [ 'shape' => 'ObjectIdentifier', ], 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], 'PolicyType' => [ 'shape' => 'PolicyType', ], ], ], 'PolicyAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyAttachment', ], ], 'PolicyToPath' => [ 'type' => 'structure', 'members' => [ 'Path' => [ 'shape' => 'PathString', ], 'Policies' => [ 'shape' => 'PolicyAttachmentList', ], ], ], 'PolicyToPathList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyToPath', ], ], 'PolicyType' => [ 'type' => 'string', ], 'PublishSchemaRequest' => [ 'type' => 'structure', 'required' => [ 'DevelopmentSchemaArn', 'Version', ], 'members' => [ 'DevelopmentSchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Version' => [ 'shape' => 'Version', ], 'MinorVersion' => [ 'shape' => 'Version', ], 'Name' => [ 'shape' => 'SchemaName', ], ], ], 'PublishSchemaResponse' => [ 'type' => 'structure', 'members' => [ 'PublishedSchemaArn' => [ 'shape' => 'Arn', ], ], ], 'PutSchemaFromJsonRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Document', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Document' => [ 'shape' => 'SchemaJsonDocument', ], ], ], 'PutSchemaFromJsonResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], ], ], 'RangeMode' => [ 'type' => 'string', 'enum' => [ 'FIRST', 'LAST', 'LAST_BEFORE_MISSING_VALUES', 'INCLUSIVE', 'EXCLUSIVE', ], ], 'RemoveFacetFromObjectRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'SchemaFacet', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'SchemaFacet' => [ 'shape' => 'SchemaFacet', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'RemoveFacetFromObjectResponse' => [ 'type' => 'structure', 'members' => [], ], 'RequiredAttributeBehavior' => [ 'type' => 'string', 'enum' => [ 'REQUIRED_ALWAYS', 'NOT_REQUIRED', ], ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'RetryableConflictException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'Rule' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'RuleType', ], 'Parameters' => [ 'shape' => 'RuleParameterMap', ], ], ], 'RuleKey' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '^[a-zA-Z0-9._-]*$', ], 'RuleMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'RuleKey', ], 'value' => [ 'shape' => 'Rule', ], ], 'RuleParameterKey' => [ 'type' => 'string', ], 'RuleParameterMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'RuleParameterKey', ], 'value' => [ 'shape' => 'RuleParameterValue', ], ], 'RuleParameterValue' => [ 'type' => 'string', ], 'RuleType' => [ 'type' => 'string', 'enum' => [ 'BINARY_LENGTH', 'NUMBER_COMPARISON', 'STRING_FROM_SET', 'STRING_LENGTH', ], ], 'SchemaAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'SchemaAlreadyPublishedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'SchemaFacet' => [ 'type' => 'structure', 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', ], 'FacetName' => [ 'shape' => 'FacetName', ], ], ], 'SchemaFacetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SchemaFacet', ], ], 'SchemaJsonDocument' => [ 'type' => 'string', ], 'SchemaName' => [ 'type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '^[a-zA-Z0-9._-]*$', ], 'SelectorObjectReference' => [ 'type' => 'string', ], 'StillContainsLinksException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'StringAttributeValue' => [ 'type' => 'string', ], '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', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Tags', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'Arn', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', ], 'TagsNumberResults' => [ 'type' => 'integer', 'min' => 50, ], 'TypedAttributeValue' => [ 'type' => 'structure', 'members' => [ 'StringValue' => [ 'shape' => 'StringAttributeValue', ], 'BinaryValue' => [ 'shape' => 'BinaryAttributeValue', ], 'BooleanValue' => [ 'shape' => 'BooleanAttributeValue', ], 'NumberValue' => [ 'shape' => 'NumberAttributeValue', ], 'DatetimeValue' => [ 'shape' => 'DatetimeAttributeValue', ], ], ], 'TypedAttributeValueRange' => [ 'type' => 'structure', 'required' => [ 'StartMode', 'EndMode', ], 'members' => [ 'StartMode' => [ 'shape' => 'RangeMode', ], 'StartValue' => [ 'shape' => 'TypedAttributeValue', ], 'EndMode' => [ 'shape' => 'RangeMode', ], 'EndValue' => [ 'shape' => 'TypedAttributeValue', ], ], ], 'TypedLinkAttributeDefinition' => [ 'type' => 'structure', 'required' => [ 'Name', 'Type', 'RequiredBehavior', ], 'members' => [ 'Name' => [ 'shape' => 'AttributeName', ], 'Type' => [ 'shape' => 'FacetAttributeType', ], 'DefaultValue' => [ 'shape' => 'TypedAttributeValue', ], 'IsImmutable' => [ 'shape' => 'Bool', ], 'Rules' => [ 'shape' => 'RuleMap', ], 'RequiredBehavior' => [ 'shape' => 'RequiredAttributeBehavior', ], ], ], 'TypedLinkAttributeDefinitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TypedLinkAttributeDefinition', ], ], 'TypedLinkAttributeRange' => [ 'type' => 'structure', 'required' => [ 'Range', ], 'members' => [ 'AttributeName' => [ 'shape' => 'AttributeName', ], 'Range' => [ 'shape' => 'TypedAttributeValueRange', ], ], ], 'TypedLinkAttributeRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TypedLinkAttributeRange', ], ], 'TypedLinkFacet' => [ 'type' => 'structure', 'required' => [ 'Name', 'Attributes', 'IdentityAttributeOrder', ], 'members' => [ 'Name' => [ 'shape' => 'TypedLinkName', ], 'Attributes' => [ 'shape' => 'TypedLinkAttributeDefinitionList', ], 'IdentityAttributeOrder' => [ 'shape' => 'AttributeNameList', ], ], ], 'TypedLinkFacetAttributeUpdate' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'Action', ], 'members' => [ 'Attribute' => [ 'shape' => 'TypedLinkAttributeDefinition', ], 'Action' => [ 'shape' => 'UpdateActionType', ], ], ], 'TypedLinkFacetAttributeUpdateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TypedLinkFacetAttributeUpdate', ], ], 'TypedLinkName' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9._-]*$', ], 'TypedLinkNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TypedLinkName', ], ], 'TypedLinkSchemaAndFacetName' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'TypedLinkName', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', ], 'TypedLinkName' => [ 'shape' => 'TypedLinkName', ], ], ], 'TypedLinkSpecifier' => [ 'type' => 'structure', 'required' => [ 'TypedLinkFacet', 'SourceObjectReference', 'TargetObjectReference', 'IdentityAttributeValues', ], 'members' => [ 'TypedLinkFacet' => [ 'shape' => 'TypedLinkSchemaAndFacetName', ], 'SourceObjectReference' => [ 'shape' => 'ObjectReference', ], 'TargetObjectReference' => [ 'shape' => 'ObjectReference', ], 'IdentityAttributeValues' => [ 'shape' => 'AttributeNameAndValueList', ], ], ], 'TypedLinkSpecifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TypedLinkSpecifier', ], ], 'UnsupportedIndexTypeException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagKeys', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'Arn', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateActionType' => [ 'type' => 'string', 'enum' => [ 'CREATE_OR_UPDATE', 'DELETE', ], ], 'UpdateFacetRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Name', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Name' => [ 'shape' => 'FacetName', ], 'AttributeUpdates' => [ 'shape' => 'FacetAttributeUpdateList', ], 'ObjectType' => [ 'shape' => 'ObjectType', ], ], ], 'UpdateFacetResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateLinkAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'TypedLinkSpecifier', 'AttributeUpdates', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'TypedLinkSpecifier' => [ 'shape' => 'TypedLinkSpecifier', ], 'AttributeUpdates' => [ 'shape' => 'LinkAttributeUpdateList', ], ], ], 'UpdateLinkAttributesResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateObjectAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', 'AttributeUpdates', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'AttributeUpdates' => [ 'shape' => 'ObjectAttributeUpdateList', ], ], ], 'UpdateObjectAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'UpdateSchemaRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Name', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Name' => [ 'shape' => 'SchemaName', ], ], ], 'UpdateSchemaResponse' => [ 'type' => 'structure', 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', ], ], ], 'UpdateTypedLinkFacetRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Name', 'AttributeUpdates', 'IdentityAttributeOrder', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Name' => [ 'shape' => 'TypedLinkName', ], 'AttributeUpdates' => [ 'shape' => 'TypedLinkFacetAttributeUpdateList', ], 'IdentityAttributeOrder' => [ 'shape' => 'AttributeNameList', ], ], ], 'UpdateTypedLinkFacetResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpgradeAppliedSchemaRequest' => [ 'type' => 'structure', 'required' => [ 'PublishedSchemaArn', 'DirectoryArn', ], 'members' => [ 'PublishedSchemaArn' => [ 'shape' => 'Arn', ], 'DirectoryArn' => [ 'shape' => 'Arn', ], 'DryRun' => [ 'shape' => 'Bool', ], ], ], 'UpgradeAppliedSchemaResponse' => [ 'type' => 'structure', 'members' => [ 'UpgradedSchemaArn' => [ 'shape' => 'Arn', ], 'DirectoryArn' => [ 'shape' => 'Arn', ], ], ], 'UpgradePublishedSchemaRequest' => [ 'type' => 'structure', 'required' => [ 'DevelopmentSchemaArn', 'PublishedSchemaArn', 'MinorVersion', ], 'members' => [ 'DevelopmentSchemaArn' => [ 'shape' => 'Arn', ], 'PublishedSchemaArn' => [ 'shape' => 'Arn', ], 'MinorVersion' => [ 'shape' => 'Version', ], 'DryRun' => [ 'shape' => 'Bool', ], ], ], 'UpgradePublishedSchemaResponse' => [ 'type' => 'structure', 'members' => [ 'UpgradedSchemaArn' => [ 'shape' => 'Arn', ], ], ], 'ValidationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'Version' => [ 'type' => 'string', 'max' => 10, 'min' => 1, 'pattern' => '^[a-zA-Z0-9._-]*$', ], ],]; diff --git a/lib/aws/Aws/data/clouddirectory/2016-05-10/paginators-1.json.php b/lib/aws/Aws/data/clouddirectory/2016-05-10/paginators-1.json.php new file mode 100644 index 0000000..8eac6c3 --- /dev/null +++ b/lib/aws/Aws/data/clouddirectory/2016-05-10/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/clouddirectory/2016-05-10/paginators-1.json +return [ 'pagination' => [ 'ListAppliedSchemaArns' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListAttachedIndices' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListDevelopmentSchemaArns' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListDirectories' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListFacetAttributes' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListFacetNames' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListIndex' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListObjectAttributes' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListObjectChildren' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListObjectParentPaths' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListObjectParents' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListObjectPolicies' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListPolicyAttachments' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListPublishedSchemaArns' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListTagsForResource' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListTypedLinkFacetAttributes' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListTypedLinkFacetNames' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'LookupPolicy' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/clouddirectory/2017-01-11/api-2.json.php b/lib/aws/Aws/data/clouddirectory/2017-01-11/api-2.json.php new file mode 100644 index 0000000..4e16c76 --- /dev/null +++ b/lib/aws/Aws/data/clouddirectory/2017-01-11/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/clouddirectory/2017-01-11/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-01-11', 'endpointPrefix' => 'clouddirectory', 'protocol' => 'rest-json', 'serviceFullName' => 'Amazon CloudDirectory', 'serviceId' => 'CloudDirectory', 'signatureVersion' => 'v4', 'signingName' => 'clouddirectory', 'uid' => 'clouddirectory-2017-01-11', ], 'operations' => [ 'AddFacetToObject' => [ 'name' => 'AddFacetToObject', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/facets', 'responseCode' => 200, ], 'input' => [ 'shape' => 'AddFacetToObjectRequest', ], 'output' => [ 'shape' => 'AddFacetToObjectResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'ApplySchema' => [ 'name' => 'ApplySchema', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/apply', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ApplySchemaRequest', ], 'output' => [ 'shape' => 'ApplySchemaResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'SchemaAlreadyExistsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidAttachmentException', ], ], ], 'AttachObject' => [ 'name' => 'AttachObject', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/attach', 'responseCode' => 200, ], 'input' => [ 'shape' => 'AttachObjectRequest', ], 'output' => [ 'shape' => 'AttachObjectResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LinkNameAlreadyInUseException', ], [ 'shape' => 'InvalidAttachmentException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'AttachPolicy' => [ 'name' => 'AttachPolicy', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/policy/attach', 'responseCode' => 200, ], 'input' => [ 'shape' => 'AttachPolicyRequest', ], 'output' => [ 'shape' => 'AttachPolicyResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotPolicyException', ], ], ], 'AttachToIndex' => [ 'name' => 'AttachToIndex', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/index/attach', 'responseCode' => 200, ], 'input' => [ 'shape' => 'AttachToIndexRequest', ], 'output' => [ 'shape' => 'AttachToIndexResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'InvalidAttachmentException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LinkNameAlreadyInUseException', ], [ 'shape' => 'IndexedAttributeMissingException', ], [ 'shape' => 'NotIndexException', ], ], ], 'AttachTypedLink' => [ 'name' => 'AttachTypedLink', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/attach', 'responseCode' => 200, ], 'input' => [ 'shape' => 'AttachTypedLinkRequest', ], 'output' => [ 'shape' => 'AttachTypedLinkResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidAttachmentException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'BatchRead' => [ 'name' => 'BatchRead', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/batchread', 'responseCode' => 200, ], 'input' => [ 'shape' => 'BatchReadRequest', ], 'output' => [ 'shape' => 'BatchReadResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], ], ], 'BatchWrite' => [ 'name' => 'BatchWrite', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/batchwrite', 'responseCode' => 200, ], 'input' => [ 'shape' => 'BatchWriteRequest', ], 'output' => [ 'shape' => 'BatchWriteResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'BatchWriteException', ], ], ], 'CreateDirectory' => [ 'name' => 'CreateDirectory', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/directory/create', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateDirectoryRequest', ], 'output' => [ 'shape' => 'CreateDirectoryResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryAlreadyExistsException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'CreateFacet' => [ 'name' => 'CreateFacet', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/facet/create', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateFacetRequest', ], 'output' => [ 'shape' => 'CreateFacetResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetAlreadyExistsException', ], [ 'shape' => 'InvalidRuleException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'CreateIndex' => [ 'name' => 'CreateIndex', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/index', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateIndexRequest', ], 'output' => [ 'shape' => 'CreateIndexResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetValidationException', ], [ 'shape' => 'LinkNameAlreadyInUseException', ], [ 'shape' => 'UnsupportedIndexTypeException', ], ], ], 'CreateObject' => [ 'name' => 'CreateObject', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/object', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateObjectRequest', ], 'output' => [ 'shape' => 'CreateObjectResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetValidationException', ], [ 'shape' => 'LinkNameAlreadyInUseException', ], [ 'shape' => 'UnsupportedIndexTypeException', ], ], ], 'CreateSchema' => [ 'name' => 'CreateSchema', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/create', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateSchemaRequest', ], 'output' => [ 'shape' => 'CreateSchemaResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'SchemaAlreadyExistsException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreateTypedLinkFacet' => [ 'name' => 'CreateTypedLinkFacet', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/facet/create', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateTypedLinkFacetRequest', ], 'output' => [ 'shape' => 'CreateTypedLinkFacetResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetAlreadyExistsException', ], [ 'shape' => 'InvalidRuleException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'DeleteDirectory' => [ 'name' => 'DeleteDirectory', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/directory', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteDirectoryRequest', ], 'output' => [ 'shape' => 'DeleteDirectoryResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'DirectoryNotDisabledException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryDeletedException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'InvalidArnException', ], ], ], 'DeleteFacet' => [ 'name' => 'DeleteFacet', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/facet/delete', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteFacetRequest', ], 'output' => [ 'shape' => 'DeleteFacetResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetNotFoundException', ], [ 'shape' => 'FacetInUseException', ], ], ], 'DeleteObject' => [ 'name' => 'DeleteObject', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/delete', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteObjectRequest', ], 'output' => [ 'shape' => 'DeleteObjectResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ObjectNotDetachedException', ], ], ], 'DeleteSchema' => [ 'name' => 'DeleteSchema', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteSchemaRequest', ], 'output' => [ 'shape' => 'DeleteSchemaResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'StillContainsLinksException', ], ], ], 'DeleteTypedLinkFacet' => [ 'name' => 'DeleteTypedLinkFacet', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/facet/delete', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteTypedLinkFacetRequest', ], 'output' => [ 'shape' => 'DeleteTypedLinkFacetResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetNotFoundException', ], ], ], 'DetachFromIndex' => [ 'name' => 'DetachFromIndex', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/index/detach', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DetachFromIndexRequest', ], 'output' => [ 'shape' => 'DetachFromIndexResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ObjectAlreadyDetachedException', ], [ 'shape' => 'NotIndexException', ], ], ], 'DetachObject' => [ 'name' => 'DetachObject', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/detach', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DetachObjectRequest', ], 'output' => [ 'shape' => 'DetachObjectResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotNodeException', ], ], ], 'DetachPolicy' => [ 'name' => 'DetachPolicy', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/policy/detach', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DetachPolicyRequest', ], 'output' => [ 'shape' => 'DetachPolicyResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotPolicyException', ], ], ], 'DetachTypedLink' => [ 'name' => 'DetachTypedLink', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/detach', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DetachTypedLinkRequest', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'DisableDirectory' => [ 'name' => 'DisableDirectory', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/directory/disable', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DisableDirectoryRequest', ], 'output' => [ 'shape' => 'DisableDirectoryResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'DirectoryDeletedException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'InvalidArnException', ], ], ], 'EnableDirectory' => [ 'name' => 'EnableDirectory', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/directory/enable', 'responseCode' => 200, ], 'input' => [ 'shape' => 'EnableDirectoryRequest', ], 'output' => [ 'shape' => 'EnableDirectoryResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'DirectoryDeletedException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'InvalidArnException', ], ], ], 'GetAppliedSchemaVersion' => [ 'name' => 'GetAppliedSchemaVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/getappliedschema', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetAppliedSchemaVersionRequest', ], 'output' => [ 'shape' => 'GetAppliedSchemaVersionResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'GetDirectory' => [ 'name' => 'GetDirectory', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/directory/get', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetDirectoryRequest', ], 'output' => [ 'shape' => 'GetDirectoryResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'GetFacet' => [ 'name' => 'GetFacet', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/facet', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetFacetRequest', ], 'output' => [ 'shape' => 'GetFacetResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetNotFoundException', ], ], ], 'GetLinkAttributes' => [ 'name' => 'GetLinkAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/attributes/get', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetLinkAttributesRequest', ], 'output' => [ 'shape' => 'GetLinkAttributesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'GetObjectAttributes' => [ 'name' => 'GetObjectAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/attributes/get', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetObjectAttributesRequest', ], 'output' => [ 'shape' => 'GetObjectAttributesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'GetObjectInformation' => [ 'name' => 'GetObjectInformation', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/information', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetObjectInformationRequest', ], 'output' => [ 'shape' => 'GetObjectInformationResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'GetSchemaAsJson' => [ 'name' => 'GetSchemaAsJson', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/json', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetSchemaAsJsonRequest', ], 'output' => [ 'shape' => 'GetSchemaAsJsonResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'GetTypedLinkFacetInformation' => [ 'name' => 'GetTypedLinkFacetInformation', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/facet/get', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetTypedLinkFacetInformationRequest', ], 'output' => [ 'shape' => 'GetTypedLinkFacetInformationResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'FacetNotFoundException', ], ], ], 'ListAppliedSchemaArns' => [ 'name' => 'ListAppliedSchemaArns', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/applied', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListAppliedSchemaArnsRequest', ], 'output' => [ 'shape' => 'ListAppliedSchemaArnsResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListAttachedIndices' => [ 'name' => 'ListAttachedIndices', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/indices', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListAttachedIndicesRequest', ], 'output' => [ 'shape' => 'ListAttachedIndicesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListDevelopmentSchemaArns' => [ 'name' => 'ListDevelopmentSchemaArns', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/development', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDevelopmentSchemaArnsRequest', ], 'output' => [ 'shape' => 'ListDevelopmentSchemaArnsResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListDirectories' => [ 'name' => 'ListDirectories', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/directory/list', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDirectoriesRequest', ], 'output' => [ 'shape' => 'ListDirectoriesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListFacetAttributes' => [ 'name' => 'ListFacetAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/facet/attributes', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListFacetAttributesRequest', ], 'output' => [ 'shape' => 'ListFacetAttributesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListFacetNames' => [ 'name' => 'ListFacetNames', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/facet/list', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListFacetNamesRequest', ], 'output' => [ 'shape' => 'ListFacetNamesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListIncomingTypedLinks' => [ 'name' => 'ListIncomingTypedLinks', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/incoming', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListIncomingTypedLinksRequest', ], 'output' => [ 'shape' => 'ListIncomingTypedLinksResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'ListIndex' => [ 'name' => 'ListIndex', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/index/targets', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListIndexRequest', ], 'output' => [ 'shape' => 'ListIndexResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'FacetValidationException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotIndexException', ], ], ], 'ListManagedSchemaArns' => [ 'name' => 'ListManagedSchemaArns', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/managed', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListManagedSchemaArnsRequest', ], 'output' => [ 'shape' => 'ListManagedSchemaArnsResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListObjectAttributes' => [ 'name' => 'ListObjectAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/attributes', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListObjectAttributesRequest', ], 'output' => [ 'shape' => 'ListObjectAttributesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'ListObjectChildren' => [ 'name' => 'ListObjectChildren', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/children', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListObjectChildrenRequest', ], 'output' => [ 'shape' => 'ListObjectChildrenResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'NotNodeException', ], ], ], 'ListObjectParentPaths' => [ 'name' => 'ListObjectParentPaths', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/parentpaths', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListObjectParentPathsRequest', ], 'output' => [ 'shape' => 'ListObjectParentPathsResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListObjectParents' => [ 'name' => 'ListObjectParents', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/parent', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListObjectParentsRequest', ], 'output' => [ 'shape' => 'ListObjectParentsResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'CannotListParentOfRootException', ], ], ], 'ListObjectPolicies' => [ 'name' => 'ListObjectPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/policy', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListObjectPoliciesRequest', ], 'output' => [ 'shape' => 'ListObjectPoliciesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListOutgoingTypedLinks' => [ 'name' => 'ListOutgoingTypedLinks', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/outgoing', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListOutgoingTypedLinksRequest', ], 'output' => [ 'shape' => 'ListOutgoingTypedLinksResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'ListPolicyAttachments' => [ 'name' => 'ListPolicyAttachments', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/policy/attachment', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPolicyAttachmentsRequest', ], 'output' => [ 'shape' => 'ListPolicyAttachmentsResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotPolicyException', ], ], ], 'ListPublishedSchemaArns' => [ 'name' => 'ListPublishedSchemaArns', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/published', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPublishedSchemaArnsRequest', ], 'output' => [ 'shape' => 'ListPublishedSchemaArnsResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/tags', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidTaggingRequestException', ], ], ], 'ListTypedLinkFacetAttributes' => [ 'name' => 'ListTypedLinkFacetAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/facet/attributes', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTypedLinkFacetAttributesRequest', ], 'output' => [ 'shape' => 'ListTypedLinkFacetAttributesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListTypedLinkFacetNames' => [ 'name' => 'ListTypedLinkFacetNames', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/facet/list', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTypedLinkFacetNamesRequest', ], 'output' => [ 'shape' => 'ListTypedLinkFacetNamesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'LookupPolicy' => [ 'name' => 'LookupPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/policy/lookup', 'responseCode' => 200, ], 'input' => [ 'shape' => 'LookupPolicyRequest', ], 'output' => [ 'shape' => 'LookupPolicyResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'PublishSchema' => [ 'name' => 'PublishSchema', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/publish', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PublishSchemaRequest', ], 'output' => [ 'shape' => 'PublishSchemaResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'SchemaAlreadyPublishedException', ], ], ], 'PutSchemaFromJson' => [ 'name' => 'PutSchemaFromJson', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/json', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PutSchemaFromJsonRequest', ], 'output' => [ 'shape' => 'PutSchemaFromJsonResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidSchemaDocException', ], [ 'shape' => 'InvalidRuleException', ], ], ], 'RemoveFacetFromObject' => [ 'name' => 'RemoveFacetFromObject', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/facets/delete', 'responseCode' => 200, ], 'input' => [ 'shape' => 'RemoveFacetFromObjectRequest', ], 'output' => [ 'shape' => 'RemoveFacetFromObjectResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/tags/add', 'responseCode' => 200, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidTaggingRequestException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/tags/remove', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidTaggingRequestException', ], ], ], 'UpdateFacet' => [ 'name' => 'UpdateFacet', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/facet', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateFacetRequest', ], 'output' => [ 'shape' => 'UpdateFacetResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidFacetUpdateException', ], [ 'shape' => 'FacetValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetNotFoundException', ], [ 'shape' => 'InvalidRuleException', ], ], ], 'UpdateLinkAttributes' => [ 'name' => 'UpdateLinkAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/attributes/update', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateLinkAttributesRequest', ], 'output' => [ 'shape' => 'UpdateLinkAttributesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'UpdateObjectAttributes' => [ 'name' => 'UpdateObjectAttributes', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/object/update', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateObjectAttributesRequest', ], 'output' => [ 'shape' => 'UpdateObjectAttributesResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DirectoryNotEnabledException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LinkNameAlreadyInUseException', ], [ 'shape' => 'FacetValidationException', ], ], ], 'UpdateSchema' => [ 'name' => 'UpdateSchema', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/update', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateSchemaRequest', ], 'output' => [ 'shape' => 'UpdateSchemaResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateTypedLinkFacet' => [ 'name' => 'UpdateTypedLinkFacet', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/typedlink/facet', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateTypedLinkFacetRequest', ], 'output' => [ 'shape' => 'UpdateTypedLinkFacetResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'FacetValidationException', ], [ 'shape' => 'InvalidFacetUpdateException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'FacetNotFoundException', ], [ 'shape' => 'InvalidRuleException', ], ], ], 'UpgradeAppliedSchema' => [ 'name' => 'UpgradeAppliedSchema', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/upgradeapplied', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpgradeAppliedSchemaRequest', ], 'output' => [ 'shape' => 'UpgradeAppliedSchemaResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleSchemaException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidAttachmentException', ], [ 'shape' => 'SchemaAlreadyExistsException', ], ], ], 'UpgradePublishedSchema' => [ 'name' => 'UpgradePublishedSchema', 'http' => [ 'method' => 'PUT', 'requestUri' => '/amazonclouddirectory/2017-01-11/schema/upgradepublished', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpgradePublishedSchemaRequest', ], 'output' => [ 'shape' => 'UpgradePublishedSchemaResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'RetryableConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleSchemaException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidAttachmentException', ], [ 'shape' => 'LimitExceededException', ], ], ], ], 'shapes' => [ 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, ], 'AddFacetToObjectRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'SchemaFacet', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'SchemaFacet' => [ 'shape' => 'SchemaFacet', ], 'ObjectAttributeList' => [ 'shape' => 'AttributeKeyAndValueList', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'AddFacetToObjectResponse' => [ 'type' => 'structure', 'members' => [], ], 'ApplySchemaRequest' => [ 'type' => 'structure', 'required' => [ 'PublishedSchemaArn', 'DirectoryArn', ], 'members' => [ 'PublishedSchemaArn' => [ 'shape' => 'Arn', ], 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], ], ], 'ApplySchemaResponse' => [ 'type' => 'structure', 'members' => [ 'AppliedSchemaArn' => [ 'shape' => 'Arn', ], 'DirectoryArn' => [ 'shape' => 'Arn', ], ], ], 'Arn' => [ 'type' => 'string', ], 'Arns' => [ 'type' => 'list', 'member' => [ 'shape' => 'Arn', ], ], 'AttachObjectRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ParentReference', 'ChildReference', 'LinkName', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ParentReference' => [ 'shape' => 'ObjectReference', ], 'ChildReference' => [ 'shape' => 'ObjectReference', ], 'LinkName' => [ 'shape' => 'LinkName', ], ], ], 'AttachObjectResponse' => [ 'type' => 'structure', 'members' => [ 'AttachedObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'AttachPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'PolicyReference', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'PolicyReference' => [ 'shape' => 'ObjectReference', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'AttachPolicyResponse' => [ 'type' => 'structure', 'members' => [], ], 'AttachToIndexRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'IndexReference', 'TargetReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'IndexReference' => [ 'shape' => 'ObjectReference', ], 'TargetReference' => [ 'shape' => 'ObjectReference', ], ], ], 'AttachToIndexResponse' => [ 'type' => 'structure', 'members' => [ 'AttachedObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'AttachTypedLinkRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'SourceObjectReference', 'TargetObjectReference', 'TypedLinkFacet', 'Attributes', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'SourceObjectReference' => [ 'shape' => 'ObjectReference', ], 'TargetObjectReference' => [ 'shape' => 'ObjectReference', ], 'TypedLinkFacet' => [ 'shape' => 'TypedLinkSchemaAndFacetName', ], 'Attributes' => [ 'shape' => 'AttributeNameAndValueList', ], ], ], 'AttachTypedLinkResponse' => [ 'type' => 'structure', 'members' => [ 'TypedLinkSpecifier' => [ 'shape' => 'TypedLinkSpecifier', ], ], ], 'AttributeKey' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'FacetName', 'Name', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', ], 'FacetName' => [ 'shape' => 'FacetName', ], 'Name' => [ 'shape' => 'AttributeName', ], ], ], 'AttributeKeyAndValue' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'AttributeKey', ], 'Value' => [ 'shape' => 'TypedAttributeValue', ], ], ], 'AttributeKeyAndValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeKeyAndValue', ], ], 'AttributeKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeKey', ], ], 'AttributeName' => [ 'type' => 'string', 'max' => 230, 'min' => 1, 'pattern' => '^[a-zA-Z0-9._:-]*$', ], 'AttributeNameAndValue' => [ 'type' => 'structure', 'required' => [ 'AttributeName', 'Value', ], 'members' => [ 'AttributeName' => [ 'shape' => 'AttributeName', ], 'Value' => [ 'shape' => 'TypedAttributeValue', ], ], ], 'AttributeNameAndValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeNameAndValue', ], ], 'AttributeNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeName', ], ], 'BatchAddFacetToObject' => [ 'type' => 'structure', 'required' => [ 'SchemaFacet', 'ObjectAttributeList', 'ObjectReference', ], 'members' => [ 'SchemaFacet' => [ 'shape' => 'SchemaFacet', ], 'ObjectAttributeList' => [ 'shape' => 'AttributeKeyAndValueList', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'BatchAddFacetToObjectResponse' => [ 'type' => 'structure', 'members' => [], ], 'BatchAttachObject' => [ 'type' => 'structure', 'required' => [ 'ParentReference', 'ChildReference', 'LinkName', ], 'members' => [ 'ParentReference' => [ 'shape' => 'ObjectReference', ], 'ChildReference' => [ 'shape' => 'ObjectReference', ], 'LinkName' => [ 'shape' => 'LinkName', ], ], ], 'BatchAttachObjectResponse' => [ 'type' => 'structure', 'members' => [ 'attachedObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'BatchAttachPolicy' => [ 'type' => 'structure', 'required' => [ 'PolicyReference', 'ObjectReference', ], 'members' => [ 'PolicyReference' => [ 'shape' => 'ObjectReference', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'BatchAttachPolicyResponse' => [ 'type' => 'structure', 'members' => [], ], 'BatchAttachToIndex' => [ 'type' => 'structure', 'required' => [ 'IndexReference', 'TargetReference', ], 'members' => [ 'IndexReference' => [ 'shape' => 'ObjectReference', ], 'TargetReference' => [ 'shape' => 'ObjectReference', ], ], ], 'BatchAttachToIndexResponse' => [ 'type' => 'structure', 'members' => [ 'AttachedObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'BatchAttachTypedLink' => [ 'type' => 'structure', 'required' => [ 'SourceObjectReference', 'TargetObjectReference', 'TypedLinkFacet', 'Attributes', ], 'members' => [ 'SourceObjectReference' => [ 'shape' => 'ObjectReference', ], 'TargetObjectReference' => [ 'shape' => 'ObjectReference', ], 'TypedLinkFacet' => [ 'shape' => 'TypedLinkSchemaAndFacetName', ], 'Attributes' => [ 'shape' => 'AttributeNameAndValueList', ], ], ], 'BatchAttachTypedLinkResponse' => [ 'type' => 'structure', 'members' => [ 'TypedLinkSpecifier' => [ 'shape' => 'TypedLinkSpecifier', ], ], ], 'BatchCreateIndex' => [ 'type' => 'structure', 'required' => [ 'OrderedIndexedAttributeList', 'IsUnique', ], 'members' => [ 'OrderedIndexedAttributeList' => [ 'shape' => 'AttributeKeyList', ], 'IsUnique' => [ 'shape' => 'Bool', ], 'ParentReference' => [ 'shape' => 'ObjectReference', ], 'LinkName' => [ 'shape' => 'LinkName', ], 'BatchReferenceName' => [ 'shape' => 'BatchReferenceName', ], ], ], 'BatchCreateIndexResponse' => [ 'type' => 'structure', 'members' => [ 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'BatchCreateObject' => [ 'type' => 'structure', 'required' => [ 'SchemaFacet', 'ObjectAttributeList', ], 'members' => [ 'SchemaFacet' => [ 'shape' => 'SchemaFacetList', ], 'ObjectAttributeList' => [ 'shape' => 'AttributeKeyAndValueList', ], 'ParentReference' => [ 'shape' => 'ObjectReference', ], 'LinkName' => [ 'shape' => 'LinkName', ], 'BatchReferenceName' => [ 'shape' => 'BatchReferenceName', ], ], ], 'BatchCreateObjectResponse' => [ 'type' => 'structure', 'members' => [ 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'BatchDeleteObject' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'BatchDeleteObjectResponse' => [ 'type' => 'structure', 'members' => [], ], 'BatchDetachFromIndex' => [ 'type' => 'structure', 'required' => [ 'IndexReference', 'TargetReference', ], 'members' => [ 'IndexReference' => [ 'shape' => 'ObjectReference', ], 'TargetReference' => [ 'shape' => 'ObjectReference', ], ], ], 'BatchDetachFromIndexResponse' => [ 'type' => 'structure', 'members' => [ 'DetachedObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'BatchDetachObject' => [ 'type' => 'structure', 'required' => [ 'ParentReference', 'LinkName', ], 'members' => [ 'ParentReference' => [ 'shape' => 'ObjectReference', ], 'LinkName' => [ 'shape' => 'LinkName', ], 'BatchReferenceName' => [ 'shape' => 'BatchReferenceName', ], ], ], 'BatchDetachObjectResponse' => [ 'type' => 'structure', 'members' => [ 'detachedObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'BatchDetachPolicy' => [ 'type' => 'structure', 'required' => [ 'PolicyReference', 'ObjectReference', ], 'members' => [ 'PolicyReference' => [ 'shape' => 'ObjectReference', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'BatchDetachPolicyResponse' => [ 'type' => 'structure', 'members' => [], ], 'BatchDetachTypedLink' => [ 'type' => 'structure', 'required' => [ 'TypedLinkSpecifier', ], 'members' => [ 'TypedLinkSpecifier' => [ 'shape' => 'TypedLinkSpecifier', ], ], ], 'BatchDetachTypedLinkResponse' => [ 'type' => 'structure', 'members' => [], ], 'BatchGetLinkAttributes' => [ 'type' => 'structure', 'required' => [ 'TypedLinkSpecifier', 'AttributeNames', ], 'members' => [ 'TypedLinkSpecifier' => [ 'shape' => 'TypedLinkSpecifier', ], 'AttributeNames' => [ 'shape' => 'AttributeNameList', ], ], ], 'BatchGetLinkAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'AttributeKeyAndValueList', ], ], ], 'BatchGetObjectAttributes' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', 'SchemaFacet', 'AttributeNames', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'SchemaFacet' => [ 'shape' => 'SchemaFacet', ], 'AttributeNames' => [ 'shape' => 'AttributeNameList', ], ], ], 'BatchGetObjectAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'AttributeKeyAndValueList', ], ], ], 'BatchGetObjectInformation' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'BatchGetObjectInformationResponse' => [ 'type' => 'structure', 'members' => [ 'SchemaFacets' => [ 'shape' => 'SchemaFacetList', ], 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'BatchListAttachedIndices' => [ 'type' => 'structure', 'required' => [ 'TargetReference', ], 'members' => [ 'TargetReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'BatchListAttachedIndicesResponse' => [ 'type' => 'structure', 'members' => [ 'IndexAttachments' => [ 'shape' => 'IndexAttachmentList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchListIncomingTypedLinks' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'FilterAttributeRanges' => [ 'shape' => 'TypedLinkAttributeRangeList', ], 'FilterTypedLink' => [ 'shape' => 'TypedLinkSchemaAndFacetName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'BatchListIncomingTypedLinksResponse' => [ 'type' => 'structure', 'members' => [ 'LinkSpecifiers' => [ 'shape' => 'TypedLinkSpecifierList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchListIndex' => [ 'type' => 'structure', 'required' => [ 'IndexReference', ], 'members' => [ 'RangesOnIndexedValues' => [ 'shape' => 'ObjectAttributeRangeList', ], 'IndexReference' => [ 'shape' => 'ObjectReference', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchListIndexResponse' => [ 'type' => 'structure', 'members' => [ 'IndexAttachments' => [ 'shape' => 'IndexAttachmentList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchListObjectAttributes' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'FacetFilter' => [ 'shape' => 'SchemaFacet', ], ], ], 'BatchListObjectAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'AttributeKeyAndValueList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchListObjectChildren' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'BatchListObjectChildrenResponse' => [ 'type' => 'structure', 'members' => [ 'Children' => [ 'shape' => 'LinkNameToObjectIdentifierMap', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchListObjectParentPaths' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'BatchListObjectParentPathsResponse' => [ 'type' => 'structure', 'members' => [ 'PathToObjectIdentifiersList' => [ 'shape' => 'PathToObjectIdentifiersList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchListObjectParents' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'BatchListObjectParentsResponse' => [ 'type' => 'structure', 'members' => [ 'ParentLinks' => [ 'shape' => 'ObjectIdentifierAndLinkNameList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchListObjectPolicies' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'BatchListObjectPoliciesResponse' => [ 'type' => 'structure', 'members' => [ 'AttachedPolicyIds' => [ 'shape' => 'ObjectIdentifierList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchListOutgoingTypedLinks' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'FilterAttributeRanges' => [ 'shape' => 'TypedLinkAttributeRangeList', ], 'FilterTypedLink' => [ 'shape' => 'TypedLinkSchemaAndFacetName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'BatchListOutgoingTypedLinksResponse' => [ 'type' => 'structure', 'members' => [ 'TypedLinkSpecifiers' => [ 'shape' => 'TypedLinkSpecifierList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchListPolicyAttachments' => [ 'type' => 'structure', 'required' => [ 'PolicyReference', ], 'members' => [ 'PolicyReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'BatchListPolicyAttachmentsResponse' => [ 'type' => 'structure', 'members' => [ 'ObjectIdentifiers' => [ 'shape' => 'ObjectIdentifierList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchLookupPolicy' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'BatchLookupPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'PolicyToPathList' => [ 'shape' => 'PolicyToPathList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'BatchOperationIndex' => [ 'type' => 'integer', ], 'BatchReadException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'BatchReadExceptionType', ], 'Message' => [ 'shape' => 'ExceptionMessage', ], ], ], 'BatchReadExceptionType' => [ 'type' => 'string', 'enum' => [ 'ValidationException', 'InvalidArnException', 'ResourceNotFoundException', 'InvalidNextTokenException', 'AccessDeniedException', 'NotNodeException', 'FacetValidationException', 'CannotListParentOfRootException', 'NotIndexException', 'NotPolicyException', 'DirectoryNotEnabledException', 'LimitExceededException', 'InternalServiceException', ], ], 'BatchReadOperation' => [ 'type' => 'structure', 'members' => [ 'ListObjectAttributes' => [ 'shape' => 'BatchListObjectAttributes', ], 'ListObjectChildren' => [ 'shape' => 'BatchListObjectChildren', ], 'ListAttachedIndices' => [ 'shape' => 'BatchListAttachedIndices', ], 'ListObjectParentPaths' => [ 'shape' => 'BatchListObjectParentPaths', ], 'GetObjectInformation' => [ 'shape' => 'BatchGetObjectInformation', ], 'GetObjectAttributes' => [ 'shape' => 'BatchGetObjectAttributes', ], 'ListObjectParents' => [ 'shape' => 'BatchListObjectParents', ], 'ListObjectPolicies' => [ 'shape' => 'BatchListObjectPolicies', ], 'ListPolicyAttachments' => [ 'shape' => 'BatchListPolicyAttachments', ], 'LookupPolicy' => [ 'shape' => 'BatchLookupPolicy', ], 'ListIndex' => [ 'shape' => 'BatchListIndex', ], 'ListOutgoingTypedLinks' => [ 'shape' => 'BatchListOutgoingTypedLinks', ], 'ListIncomingTypedLinks' => [ 'shape' => 'BatchListIncomingTypedLinks', ], 'GetLinkAttributes' => [ 'shape' => 'BatchGetLinkAttributes', ], ], ], 'BatchReadOperationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BatchReadOperation', ], ], 'BatchReadOperationResponse' => [ 'type' => 'structure', 'members' => [ 'SuccessfulResponse' => [ 'shape' => 'BatchReadSuccessfulResponse', ], 'ExceptionResponse' => [ 'shape' => 'BatchReadException', ], ], ], 'BatchReadOperationResponseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BatchReadOperationResponse', ], ], 'BatchReadRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'Operations', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Operations' => [ 'shape' => 'BatchReadOperationList', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', 'location' => 'header', 'locationName' => 'x-amz-consistency-level', ], ], ], 'BatchReadResponse' => [ 'type' => 'structure', 'members' => [ 'Responses' => [ 'shape' => 'BatchReadOperationResponseList', ], ], ], 'BatchReadSuccessfulResponse' => [ 'type' => 'structure', 'members' => [ 'ListObjectAttributes' => [ 'shape' => 'BatchListObjectAttributesResponse', ], 'ListObjectChildren' => [ 'shape' => 'BatchListObjectChildrenResponse', ], 'GetObjectInformation' => [ 'shape' => 'BatchGetObjectInformationResponse', ], 'GetObjectAttributes' => [ 'shape' => 'BatchGetObjectAttributesResponse', ], 'ListAttachedIndices' => [ 'shape' => 'BatchListAttachedIndicesResponse', ], 'ListObjectParentPaths' => [ 'shape' => 'BatchListObjectParentPathsResponse', ], 'ListObjectPolicies' => [ 'shape' => 'BatchListObjectPoliciesResponse', ], 'ListPolicyAttachments' => [ 'shape' => 'BatchListPolicyAttachmentsResponse', ], 'LookupPolicy' => [ 'shape' => 'BatchLookupPolicyResponse', ], 'ListIndex' => [ 'shape' => 'BatchListIndexResponse', ], 'ListOutgoingTypedLinks' => [ 'shape' => 'BatchListOutgoingTypedLinksResponse', ], 'ListIncomingTypedLinks' => [ 'shape' => 'BatchListIncomingTypedLinksResponse', ], 'GetLinkAttributes' => [ 'shape' => 'BatchGetLinkAttributesResponse', ], 'ListObjectParents' => [ 'shape' => 'BatchListObjectParentsResponse', ], ], ], 'BatchReferenceName' => [ 'type' => 'string', ], 'BatchRemoveFacetFromObject' => [ 'type' => 'structure', 'required' => [ 'SchemaFacet', 'ObjectReference', ], 'members' => [ 'SchemaFacet' => [ 'shape' => 'SchemaFacet', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'BatchRemoveFacetFromObjectResponse' => [ 'type' => 'structure', 'members' => [], ], 'BatchUpdateLinkAttributes' => [ 'type' => 'structure', 'required' => [ 'TypedLinkSpecifier', 'AttributeUpdates', ], 'members' => [ 'TypedLinkSpecifier' => [ 'shape' => 'TypedLinkSpecifier', ], 'AttributeUpdates' => [ 'shape' => 'LinkAttributeUpdateList', ], ], ], 'BatchUpdateLinkAttributesResponse' => [ 'type' => 'structure', 'members' => [], ], 'BatchUpdateObjectAttributes' => [ 'type' => 'structure', 'required' => [ 'ObjectReference', 'AttributeUpdates', ], 'members' => [ 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'AttributeUpdates' => [ 'shape' => 'ObjectAttributeUpdateList', ], ], ], 'BatchUpdateObjectAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'BatchWriteException' => [ 'type' => 'structure', 'members' => [ 'Index' => [ 'shape' => 'BatchOperationIndex', ], 'Type' => [ 'shape' => 'BatchWriteExceptionType', ], 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'BatchWriteExceptionType' => [ 'type' => 'string', 'enum' => [ 'InternalServiceException', 'ValidationException', 'InvalidArnException', 'LinkNameAlreadyInUseException', 'StillContainsLinksException', 'FacetValidationException', 'ObjectNotDetachedException', 'ResourceNotFoundException', 'AccessDeniedException', 'InvalidAttachmentException', 'NotIndexException', 'NotNodeException', 'IndexedAttributeMissingException', 'ObjectAlreadyDetachedException', 'NotPolicyException', 'DirectoryNotEnabledException', 'LimitExceededException', 'UnsupportedIndexTypeException', ], ], 'BatchWriteOperation' => [ 'type' => 'structure', 'members' => [ 'CreateObject' => [ 'shape' => 'BatchCreateObject', ], 'AttachObject' => [ 'shape' => 'BatchAttachObject', ], 'DetachObject' => [ 'shape' => 'BatchDetachObject', ], 'UpdateObjectAttributes' => [ 'shape' => 'BatchUpdateObjectAttributes', ], 'DeleteObject' => [ 'shape' => 'BatchDeleteObject', ], 'AddFacetToObject' => [ 'shape' => 'BatchAddFacetToObject', ], 'RemoveFacetFromObject' => [ 'shape' => 'BatchRemoveFacetFromObject', ], 'AttachPolicy' => [ 'shape' => 'BatchAttachPolicy', ], 'DetachPolicy' => [ 'shape' => 'BatchDetachPolicy', ], 'CreateIndex' => [ 'shape' => 'BatchCreateIndex', ], 'AttachToIndex' => [ 'shape' => 'BatchAttachToIndex', ], 'DetachFromIndex' => [ 'shape' => 'BatchDetachFromIndex', ], 'AttachTypedLink' => [ 'shape' => 'BatchAttachTypedLink', ], 'DetachTypedLink' => [ 'shape' => 'BatchDetachTypedLink', ], 'UpdateLinkAttributes' => [ 'shape' => 'BatchUpdateLinkAttributes', ], ], ], 'BatchWriteOperationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BatchWriteOperation', ], ], 'BatchWriteOperationResponse' => [ 'type' => 'structure', 'members' => [ 'CreateObject' => [ 'shape' => 'BatchCreateObjectResponse', ], 'AttachObject' => [ 'shape' => 'BatchAttachObjectResponse', ], 'DetachObject' => [ 'shape' => 'BatchDetachObjectResponse', ], 'UpdateObjectAttributes' => [ 'shape' => 'BatchUpdateObjectAttributesResponse', ], 'DeleteObject' => [ 'shape' => 'BatchDeleteObjectResponse', ], 'AddFacetToObject' => [ 'shape' => 'BatchAddFacetToObjectResponse', ], 'RemoveFacetFromObject' => [ 'shape' => 'BatchRemoveFacetFromObjectResponse', ], 'AttachPolicy' => [ 'shape' => 'BatchAttachPolicyResponse', ], 'DetachPolicy' => [ 'shape' => 'BatchDetachPolicyResponse', ], 'CreateIndex' => [ 'shape' => 'BatchCreateIndexResponse', ], 'AttachToIndex' => [ 'shape' => 'BatchAttachToIndexResponse', ], 'DetachFromIndex' => [ 'shape' => 'BatchDetachFromIndexResponse', ], 'AttachTypedLink' => [ 'shape' => 'BatchAttachTypedLinkResponse', ], 'DetachTypedLink' => [ 'shape' => 'BatchDetachTypedLinkResponse', ], 'UpdateLinkAttributes' => [ 'shape' => 'BatchUpdateLinkAttributesResponse', ], ], ], 'BatchWriteOperationResponseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BatchWriteOperationResponse', ], ], 'BatchWriteRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'Operations', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Operations' => [ 'shape' => 'BatchWriteOperationList', ], ], ], 'BatchWriteResponse' => [ 'type' => 'structure', 'members' => [ 'Responses' => [ 'shape' => 'BatchWriteOperationResponseList', ], ], ], 'BinaryAttributeValue' => [ 'type' => 'blob', ], 'Bool' => [ 'type' => 'boolean', ], 'BooleanAttributeValue' => [ 'type' => 'boolean', ], 'CannotListParentOfRootException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ConsistencyLevel' => [ 'type' => 'string', 'enum' => [ 'SERIALIZABLE', 'EVENTUAL', ], ], 'CreateDirectoryRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'SchemaArn', ], 'members' => [ 'Name' => [ 'shape' => 'DirectoryName', ], 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], ], ], 'CreateDirectoryResponse' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'Name', 'ObjectIdentifier', 'AppliedSchemaArn', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'DirectoryArn', ], 'Name' => [ 'shape' => 'DirectoryName', ], 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], 'AppliedSchemaArn' => [ 'shape' => 'Arn', ], ], ], 'CreateFacetRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Name', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Name' => [ 'shape' => 'FacetName', ], 'Attributes' => [ 'shape' => 'FacetAttributeList', ], 'ObjectType' => [ 'shape' => 'ObjectType', ], 'FacetStyle' => [ 'shape' => 'FacetStyle', ], ], ], 'CreateFacetResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateIndexRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'OrderedIndexedAttributeList', 'IsUnique', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'OrderedIndexedAttributeList' => [ 'shape' => 'AttributeKeyList', ], 'IsUnique' => [ 'shape' => 'Bool', ], 'ParentReference' => [ 'shape' => 'ObjectReference', ], 'LinkName' => [ 'shape' => 'LinkName', ], ], ], 'CreateIndexResponse' => [ 'type' => 'structure', 'members' => [ 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'CreateObjectRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'SchemaFacets', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'SchemaFacets' => [ 'shape' => 'SchemaFacetList', ], 'ObjectAttributeList' => [ 'shape' => 'AttributeKeyAndValueList', ], 'ParentReference' => [ 'shape' => 'ObjectReference', ], 'LinkName' => [ 'shape' => 'LinkName', ], ], ], 'CreateObjectResponse' => [ 'type' => 'structure', 'members' => [ 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'CreateSchemaRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'SchemaName', ], ], ], 'CreateSchemaResponse' => [ 'type' => 'structure', 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', ], ], ], 'CreateTypedLinkFacetRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Facet', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Facet' => [ 'shape' => 'TypedLinkFacet', ], ], ], 'CreateTypedLinkFacetResponse' => [ 'type' => 'structure', 'members' => [], ], 'Date' => [ 'type' => 'timestamp', ], 'DatetimeAttributeValue' => [ 'type' => 'timestamp', ], 'DeleteDirectoryRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], ], ], 'DeleteDirectoryResponse' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteFacetRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Name', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Name' => [ 'shape' => 'FacetName', ], ], ], 'DeleteFacetResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteObjectRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'DeleteObjectResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteSchemaRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], ], ], 'DeleteSchemaResponse' => [ 'type' => 'structure', 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteTypedLinkFacetRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Name', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Name' => [ 'shape' => 'TypedLinkName', ], ], ], 'DeleteTypedLinkFacetResponse' => [ 'type' => 'structure', 'members' => [], ], 'DetachFromIndexRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'IndexReference', 'TargetReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'IndexReference' => [ 'shape' => 'ObjectReference', ], 'TargetReference' => [ 'shape' => 'ObjectReference', ], ], ], 'DetachFromIndexResponse' => [ 'type' => 'structure', 'members' => [ 'DetachedObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'DetachObjectRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ParentReference', 'LinkName', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ParentReference' => [ 'shape' => 'ObjectReference', ], 'LinkName' => [ 'shape' => 'LinkName', ], ], ], 'DetachObjectResponse' => [ 'type' => 'structure', 'members' => [ 'DetachedObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'DetachPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'PolicyReference', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'PolicyReference' => [ 'shape' => 'ObjectReference', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'DetachPolicyResponse' => [ 'type' => 'structure', 'members' => [], ], 'DetachTypedLinkRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'TypedLinkSpecifier', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'TypedLinkSpecifier' => [ 'shape' => 'TypedLinkSpecifier', ], ], ], 'Directory' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'DirectoryName', ], 'DirectoryArn' => [ 'shape' => 'DirectoryArn', ], 'State' => [ 'shape' => 'DirectoryState', ], 'CreationDateTime' => [ 'shape' => 'Date', ], ], ], 'DirectoryAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'DirectoryArn' => [ 'type' => 'string', ], 'DirectoryDeletedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'DirectoryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Directory', ], ], 'DirectoryName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '^[a-zA-Z0-9._-]*$', ], 'DirectoryNotDisabledException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'DirectoryNotEnabledException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'DirectoryState' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', 'DELETED', ], ], 'DisableDirectoryRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], ], ], 'DisableDirectoryResponse' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', ], ], ], 'EnableDirectoryRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], ], ], 'EnableDirectoryResponse' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', ], ], ], 'ExceptionMessage' => [ 'type' => 'string', ], 'Facet' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'FacetName', ], 'ObjectType' => [ 'shape' => 'ObjectType', ], 'FacetStyle' => [ 'shape' => 'FacetStyle', ], ], ], 'FacetAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'FacetAttribute' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'AttributeName', ], 'AttributeDefinition' => [ 'shape' => 'FacetAttributeDefinition', ], 'AttributeReference' => [ 'shape' => 'FacetAttributeReference', ], 'RequiredBehavior' => [ 'shape' => 'RequiredAttributeBehavior', ], ], ], 'FacetAttributeDefinition' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'FacetAttributeType', ], 'DefaultValue' => [ 'shape' => 'TypedAttributeValue', ], 'IsImmutable' => [ 'shape' => 'Bool', ], 'Rules' => [ 'shape' => 'RuleMap', ], ], ], 'FacetAttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FacetAttribute', ], ], 'FacetAttributeReference' => [ 'type' => 'structure', 'required' => [ 'TargetFacetName', 'TargetAttributeName', ], 'members' => [ 'TargetFacetName' => [ 'shape' => 'FacetName', ], 'TargetAttributeName' => [ 'shape' => 'AttributeName', ], ], ], 'FacetAttributeType' => [ 'type' => 'string', 'enum' => [ 'STRING', 'BINARY', 'BOOLEAN', 'NUMBER', 'DATETIME', 'VARIANT', ], ], 'FacetAttributeUpdate' => [ 'type' => 'structure', 'members' => [ 'Attribute' => [ 'shape' => 'FacetAttribute', ], 'Action' => [ 'shape' => 'UpdateActionType', ], ], ], 'FacetAttributeUpdateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FacetAttributeUpdate', ], ], 'FacetInUseException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'FacetName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '^[a-zA-Z0-9._-]*$', ], 'FacetNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FacetName', ], ], 'FacetNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'FacetStyle' => [ 'type' => 'string', 'enum' => [ 'STATIC', 'DYNAMIC', ], ], 'FacetValidationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'GetAppliedSchemaVersionRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', ], ], ], 'GetAppliedSchemaVersionResponse' => [ 'type' => 'structure', 'members' => [ 'AppliedSchemaArn' => [ 'shape' => 'Arn', ], ], ], 'GetDirectoryRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'DirectoryArn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], ], ], 'GetDirectoryResponse' => [ 'type' => 'structure', 'required' => [ 'Directory', ], 'members' => [ 'Directory' => [ 'shape' => 'Directory', ], ], ], 'GetFacetRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Name', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Name' => [ 'shape' => 'FacetName', ], ], ], 'GetFacetResponse' => [ 'type' => 'structure', 'members' => [ 'Facet' => [ 'shape' => 'Facet', ], ], ], 'GetLinkAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'TypedLinkSpecifier', 'AttributeNames', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'TypedLinkSpecifier' => [ 'shape' => 'TypedLinkSpecifier', ], 'AttributeNames' => [ 'shape' => 'AttributeNameList', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', ], ], ], 'GetLinkAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'AttributeKeyAndValueList', ], ], ], 'GetObjectAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', 'SchemaFacet', 'AttributeNames', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', 'location' => 'header', 'locationName' => 'x-amz-consistency-level', ], 'SchemaFacet' => [ 'shape' => 'SchemaFacet', ], 'AttributeNames' => [ 'shape' => 'AttributeNameList', ], ], ], 'GetObjectAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'AttributeKeyAndValueList', ], ], ], 'GetObjectInformationRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', 'location' => 'header', 'locationName' => 'x-amz-consistency-level', ], ], ], 'GetObjectInformationResponse' => [ 'type' => 'structure', 'members' => [ 'SchemaFacets' => [ 'shape' => 'SchemaFacetList', ], 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'GetSchemaAsJsonRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], ], ], 'GetSchemaAsJsonResponse' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'SchemaName', ], 'Document' => [ 'shape' => 'SchemaJsonDocument', ], ], ], 'GetTypedLinkFacetInformationRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Name', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Name' => [ 'shape' => 'TypedLinkName', ], ], ], 'GetTypedLinkFacetInformationResponse' => [ 'type' => 'structure', 'members' => [ 'IdentityAttributeOrder' => [ 'shape' => 'AttributeNameList', ], ], ], 'IncompatibleSchemaException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'IndexAttachment' => [ 'type' => 'structure', 'members' => [ 'IndexedAttributes' => [ 'shape' => 'AttributeKeyAndValueList', ], 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'IndexAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IndexAttachment', ], ], 'IndexedAttributeMissingException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InternalServiceException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, ], 'InvalidArnException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidAttachmentException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidFacetUpdateException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidRuleException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidSchemaDocException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidTaggingRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'LinkAttributeAction' => [ 'type' => 'structure', 'members' => [ 'AttributeActionType' => [ 'shape' => 'UpdateActionType', ], 'AttributeUpdateValue' => [ 'shape' => 'TypedAttributeValue', ], ], ], 'LinkAttributeUpdate' => [ 'type' => 'structure', 'members' => [ 'AttributeKey' => [ 'shape' => 'AttributeKey', ], 'AttributeAction' => [ 'shape' => 'LinkAttributeAction', ], ], ], 'LinkAttributeUpdateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LinkAttributeUpdate', ], ], 'LinkName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[^\\/\\[\\]\\(\\):\\{\\}#@!?\\s\\\\;]+', ], 'LinkNameAlreadyInUseException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'LinkNameToObjectIdentifierMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'LinkName', ], 'value' => [ 'shape' => 'ObjectIdentifier', ], ], 'ListAppliedSchemaArnsRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', ], 'SchemaArn' => [ 'shape' => 'Arn', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'ListAppliedSchemaArnsResponse' => [ 'type' => 'structure', 'members' => [ 'SchemaArns' => [ 'shape' => 'Arns', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListAttachedIndicesRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'TargetReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'TargetReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', 'location' => 'header', 'locationName' => 'x-amz-consistency-level', ], ], ], 'ListAttachedIndicesResponse' => [ 'type' => 'structure', 'members' => [ 'IndexAttachments' => [ 'shape' => 'IndexAttachmentList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDevelopmentSchemaArnsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'ListDevelopmentSchemaArnsResponse' => [ 'type' => 'structure', 'members' => [ 'SchemaArns' => [ 'shape' => 'Arns', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDirectoriesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'state' => [ 'shape' => 'DirectoryState', ], ], ], 'ListDirectoriesResponse' => [ 'type' => 'structure', 'required' => [ 'Directories', ], 'members' => [ 'Directories' => [ 'shape' => 'DirectoryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListFacetAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Name', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Name' => [ 'shape' => 'FacetName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'ListFacetAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'FacetAttributeList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListFacetNamesRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'ListFacetNamesResponse' => [ 'type' => 'structure', 'members' => [ 'FacetNames' => [ 'shape' => 'FacetNameList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListIncomingTypedLinksRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'FilterAttributeRanges' => [ 'shape' => 'TypedLinkAttributeRangeList', ], 'FilterTypedLink' => [ 'shape' => 'TypedLinkSchemaAndFacetName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', ], ], ], 'ListIncomingTypedLinksResponse' => [ 'type' => 'structure', 'members' => [ 'LinkSpecifiers' => [ 'shape' => 'TypedLinkSpecifierList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListIndexRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'IndexReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'RangesOnIndexedValues' => [ 'shape' => 'ObjectAttributeRangeList', ], 'IndexReference' => [ 'shape' => 'ObjectReference', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', 'location' => 'header', 'locationName' => 'x-amz-consistency-level', ], ], ], 'ListIndexResponse' => [ 'type' => 'structure', 'members' => [ 'IndexAttachments' => [ 'shape' => 'IndexAttachmentList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListManagedSchemaArnsRequest' => [ 'type' => 'structure', 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'ListManagedSchemaArnsResponse' => [ 'type' => 'structure', 'members' => [ 'SchemaArns' => [ 'shape' => 'Arns', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListObjectAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', 'location' => 'header', 'locationName' => 'x-amz-consistency-level', ], 'FacetFilter' => [ 'shape' => 'SchemaFacet', ], ], ], 'ListObjectAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'AttributeKeyAndValueList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListObjectChildrenRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', 'location' => 'header', 'locationName' => 'x-amz-consistency-level', ], ], ], 'ListObjectChildrenResponse' => [ 'type' => 'structure', 'members' => [ 'Children' => [ 'shape' => 'LinkNameToObjectIdentifierMap', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListObjectParentPathsRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'ListObjectParentPathsResponse' => [ 'type' => 'structure', 'members' => [ 'PathToObjectIdentifiersList' => [ 'shape' => 'PathToObjectIdentifiersList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListObjectParentsRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', 'location' => 'header', 'locationName' => 'x-amz-consistency-level', ], 'IncludeAllLinksToEachParent' => [ 'shape' => 'Bool', ], ], ], 'ListObjectParentsResponse' => [ 'type' => 'structure', 'members' => [ 'Parents' => [ 'shape' => 'ObjectIdentifierToLinkNameMap', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'ParentLinks' => [ 'shape' => 'ObjectIdentifierAndLinkNameList', ], ], ], 'ListObjectPoliciesRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', 'location' => 'header', 'locationName' => 'x-amz-consistency-level', ], ], ], 'ListObjectPoliciesResponse' => [ 'type' => 'structure', 'members' => [ 'AttachedPolicyIds' => [ 'shape' => 'ObjectIdentifierList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListOutgoingTypedLinksRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'FilterAttributeRanges' => [ 'shape' => 'TypedLinkAttributeRangeList', ], 'FilterTypedLink' => [ 'shape' => 'TypedLinkSchemaAndFacetName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', ], ], ], 'ListOutgoingTypedLinksResponse' => [ 'type' => 'structure', 'members' => [ 'TypedLinkSpecifiers' => [ 'shape' => 'TypedLinkSpecifierList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPolicyAttachmentsRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'PolicyReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'PolicyReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], 'ConsistencyLevel' => [ 'shape' => 'ConsistencyLevel', 'location' => 'header', 'locationName' => 'x-amz-consistency-level', ], ], ], 'ListPolicyAttachmentsResponse' => [ 'type' => 'structure', 'members' => [ 'ObjectIdentifiers' => [ 'shape' => 'ObjectIdentifierList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPublishedSchemaArnsRequest' => [ 'type' => 'structure', 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'ListPublishedSchemaArnsResponse' => [ 'type' => 'structure', 'members' => [ 'SchemaArns' => [ 'shape' => 'Arns', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'Arn', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'TagsNumberResults', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTypedLinkFacetAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Name', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Name' => [ 'shape' => 'TypedLinkName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'ListTypedLinkFacetAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'TypedLinkAttributeDefinitionList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTypedLinkFacetNamesRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'ListTypedLinkFacetNamesResponse' => [ 'type' => 'structure', 'members' => [ 'FacetNames' => [ 'shape' => 'TypedLinkNameList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'LookupPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'NumberResults', ], ], ], 'LookupPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'PolicyToPathList' => [ 'shape' => 'PolicyToPathList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'NextToken' => [ 'type' => 'string', ], 'NotIndexException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'NotNodeException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'NotPolicyException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'NumberAttributeValue' => [ 'type' => 'string', ], 'NumberResults' => [ 'type' => 'integer', 'min' => 1, ], 'ObjectAlreadyDetachedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ObjectAttributeAction' => [ 'type' => 'structure', 'members' => [ 'ObjectAttributeActionType' => [ 'shape' => 'UpdateActionType', ], 'ObjectAttributeUpdateValue' => [ 'shape' => 'TypedAttributeValue', ], ], ], 'ObjectAttributeRange' => [ 'type' => 'structure', 'members' => [ 'AttributeKey' => [ 'shape' => 'AttributeKey', ], 'Range' => [ 'shape' => 'TypedAttributeValueRange', ], ], ], 'ObjectAttributeRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ObjectAttributeRange', ], ], 'ObjectAttributeUpdate' => [ 'type' => 'structure', 'members' => [ 'ObjectAttributeKey' => [ 'shape' => 'AttributeKey', ], 'ObjectAttributeAction' => [ 'shape' => 'ObjectAttributeAction', ], ], ], 'ObjectAttributeUpdateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ObjectAttributeUpdate', ], ], 'ObjectIdentifier' => [ 'type' => 'string', ], 'ObjectIdentifierAndLinkNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ObjectIdentifierAndLinkNameTuple', ], ], 'ObjectIdentifierAndLinkNameTuple' => [ 'type' => 'structure', 'members' => [ 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], 'LinkName' => [ 'shape' => 'LinkName', ], ], ], 'ObjectIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ObjectIdentifier', ], ], 'ObjectIdentifierToLinkNameMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'ObjectIdentifier', ], 'value' => [ 'shape' => 'LinkName', ], ], 'ObjectNotDetachedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ObjectReference' => [ 'type' => 'structure', 'members' => [ 'Selector' => [ 'shape' => 'SelectorObjectReference', ], ], ], 'ObjectType' => [ 'type' => 'string', 'enum' => [ 'NODE', 'LEAF_NODE', 'POLICY', 'INDEX', ], ], 'PathString' => [ 'type' => 'string', ], 'PathToObjectIdentifiers' => [ 'type' => 'structure', 'members' => [ 'Path' => [ 'shape' => 'PathString', ], 'ObjectIdentifiers' => [ 'shape' => 'ObjectIdentifierList', ], ], ], 'PathToObjectIdentifiersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PathToObjectIdentifiers', ], ], 'PolicyAttachment' => [ 'type' => 'structure', 'members' => [ 'PolicyId' => [ 'shape' => 'ObjectIdentifier', ], 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], 'PolicyType' => [ 'shape' => 'PolicyType', ], ], ], 'PolicyAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyAttachment', ], ], 'PolicyToPath' => [ 'type' => 'structure', 'members' => [ 'Path' => [ 'shape' => 'PathString', ], 'Policies' => [ 'shape' => 'PolicyAttachmentList', ], ], ], 'PolicyToPathList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyToPath', ], ], 'PolicyType' => [ 'type' => 'string', ], 'PublishSchemaRequest' => [ 'type' => 'structure', 'required' => [ 'DevelopmentSchemaArn', 'Version', ], 'members' => [ 'DevelopmentSchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Version' => [ 'shape' => 'Version', ], 'MinorVersion' => [ 'shape' => 'Version', ], 'Name' => [ 'shape' => 'SchemaName', ], ], ], 'PublishSchemaResponse' => [ 'type' => 'structure', 'members' => [ 'PublishedSchemaArn' => [ 'shape' => 'Arn', ], ], ], 'PutSchemaFromJsonRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Document', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Document' => [ 'shape' => 'SchemaJsonDocument', ], ], ], 'PutSchemaFromJsonResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], ], ], 'RangeMode' => [ 'type' => 'string', 'enum' => [ 'FIRST', 'LAST', 'LAST_BEFORE_MISSING_VALUES', 'INCLUSIVE', 'EXCLUSIVE', ], ], 'RemoveFacetFromObjectRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'SchemaFacet', 'ObjectReference', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'SchemaFacet' => [ 'shape' => 'SchemaFacet', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], ], ], 'RemoveFacetFromObjectResponse' => [ 'type' => 'structure', 'members' => [], ], 'RequiredAttributeBehavior' => [ 'type' => 'string', 'enum' => [ 'REQUIRED_ALWAYS', 'NOT_REQUIRED', ], ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'RetryableConflictException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'Rule' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'RuleType', ], 'Parameters' => [ 'shape' => 'RuleParameterMap', ], ], ], 'RuleKey' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '^[a-zA-Z0-9._-]*$', ], 'RuleMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'RuleKey', ], 'value' => [ 'shape' => 'Rule', ], ], 'RuleParameterKey' => [ 'type' => 'string', ], 'RuleParameterMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'RuleParameterKey', ], 'value' => [ 'shape' => 'RuleParameterValue', ], ], 'RuleParameterValue' => [ 'type' => 'string', ], 'RuleType' => [ 'type' => 'string', 'enum' => [ 'BINARY_LENGTH', 'NUMBER_COMPARISON', 'STRING_FROM_SET', 'STRING_LENGTH', ], ], 'SchemaAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'SchemaAlreadyPublishedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'SchemaFacet' => [ 'type' => 'structure', 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', ], 'FacetName' => [ 'shape' => 'FacetName', ], ], ], 'SchemaFacetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SchemaFacet', ], ], 'SchemaJsonDocument' => [ 'type' => 'string', ], 'SchemaName' => [ 'type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '^[a-zA-Z0-9._-]*$', ], 'SelectorObjectReference' => [ 'type' => 'string', ], 'StillContainsLinksException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'StringAttributeValue' => [ 'type' => 'string', ], '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', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Tags', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'Arn', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', ], 'TagsNumberResults' => [ 'type' => 'integer', 'min' => 50, ], 'TypedAttributeValue' => [ 'type' => 'structure', 'members' => [ 'StringValue' => [ 'shape' => 'StringAttributeValue', ], 'BinaryValue' => [ 'shape' => 'BinaryAttributeValue', ], 'BooleanValue' => [ 'shape' => 'BooleanAttributeValue', ], 'NumberValue' => [ 'shape' => 'NumberAttributeValue', ], 'DatetimeValue' => [ 'shape' => 'DatetimeAttributeValue', ], ], ], 'TypedAttributeValueRange' => [ 'type' => 'structure', 'required' => [ 'StartMode', 'EndMode', ], 'members' => [ 'StartMode' => [ 'shape' => 'RangeMode', ], 'StartValue' => [ 'shape' => 'TypedAttributeValue', ], 'EndMode' => [ 'shape' => 'RangeMode', ], 'EndValue' => [ 'shape' => 'TypedAttributeValue', ], ], ], 'TypedLinkAttributeDefinition' => [ 'type' => 'structure', 'required' => [ 'Name', 'Type', 'RequiredBehavior', ], 'members' => [ 'Name' => [ 'shape' => 'AttributeName', ], 'Type' => [ 'shape' => 'FacetAttributeType', ], 'DefaultValue' => [ 'shape' => 'TypedAttributeValue', ], 'IsImmutable' => [ 'shape' => 'Bool', ], 'Rules' => [ 'shape' => 'RuleMap', ], 'RequiredBehavior' => [ 'shape' => 'RequiredAttributeBehavior', ], ], ], 'TypedLinkAttributeDefinitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TypedLinkAttributeDefinition', ], ], 'TypedLinkAttributeRange' => [ 'type' => 'structure', 'required' => [ 'Range', ], 'members' => [ 'AttributeName' => [ 'shape' => 'AttributeName', ], 'Range' => [ 'shape' => 'TypedAttributeValueRange', ], ], ], 'TypedLinkAttributeRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TypedLinkAttributeRange', ], ], 'TypedLinkFacet' => [ 'type' => 'structure', 'required' => [ 'Name', 'Attributes', 'IdentityAttributeOrder', ], 'members' => [ 'Name' => [ 'shape' => 'TypedLinkName', ], 'Attributes' => [ 'shape' => 'TypedLinkAttributeDefinitionList', ], 'IdentityAttributeOrder' => [ 'shape' => 'AttributeNameList', ], ], ], 'TypedLinkFacetAttributeUpdate' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'Action', ], 'members' => [ 'Attribute' => [ 'shape' => 'TypedLinkAttributeDefinition', ], 'Action' => [ 'shape' => 'UpdateActionType', ], ], ], 'TypedLinkFacetAttributeUpdateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TypedLinkFacetAttributeUpdate', ], ], 'TypedLinkName' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9._-]*$', ], 'TypedLinkNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TypedLinkName', ], ], 'TypedLinkSchemaAndFacetName' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'TypedLinkName', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', ], 'TypedLinkName' => [ 'shape' => 'TypedLinkName', ], ], ], 'TypedLinkSpecifier' => [ 'type' => 'structure', 'required' => [ 'TypedLinkFacet', 'SourceObjectReference', 'TargetObjectReference', 'IdentityAttributeValues', ], 'members' => [ 'TypedLinkFacet' => [ 'shape' => 'TypedLinkSchemaAndFacetName', ], 'SourceObjectReference' => [ 'shape' => 'ObjectReference', ], 'TargetObjectReference' => [ 'shape' => 'ObjectReference', ], 'IdentityAttributeValues' => [ 'shape' => 'AttributeNameAndValueList', ], ], ], 'TypedLinkSpecifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TypedLinkSpecifier', ], ], 'UnsupportedIndexTypeException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagKeys', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'Arn', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateActionType' => [ 'type' => 'string', 'enum' => [ 'CREATE_OR_UPDATE', 'DELETE', ], ], 'UpdateFacetRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Name', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Name' => [ 'shape' => 'FacetName', ], 'AttributeUpdates' => [ 'shape' => 'FacetAttributeUpdateList', ], 'ObjectType' => [ 'shape' => 'ObjectType', ], ], ], 'UpdateFacetResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateLinkAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'TypedLinkSpecifier', 'AttributeUpdates', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'TypedLinkSpecifier' => [ 'shape' => 'TypedLinkSpecifier', ], 'AttributeUpdates' => [ 'shape' => 'LinkAttributeUpdateList', ], ], ], 'UpdateLinkAttributesResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateObjectAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryArn', 'ObjectReference', 'AttributeUpdates', ], 'members' => [ 'DirectoryArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'ObjectReference' => [ 'shape' => 'ObjectReference', ], 'AttributeUpdates' => [ 'shape' => 'ObjectAttributeUpdateList', ], ], ], 'UpdateObjectAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'ObjectIdentifier' => [ 'shape' => 'ObjectIdentifier', ], ], ], 'UpdateSchemaRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Name', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Name' => [ 'shape' => 'SchemaName', ], ], ], 'UpdateSchemaResponse' => [ 'type' => 'structure', 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', ], ], ], 'UpdateTypedLinkFacetRequest' => [ 'type' => 'structure', 'required' => [ 'SchemaArn', 'Name', 'AttributeUpdates', 'IdentityAttributeOrder', ], 'members' => [ 'SchemaArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'x-amz-data-partition', ], 'Name' => [ 'shape' => 'TypedLinkName', ], 'AttributeUpdates' => [ 'shape' => 'TypedLinkFacetAttributeUpdateList', ], 'IdentityAttributeOrder' => [ 'shape' => 'AttributeNameList', ], ], ], 'UpdateTypedLinkFacetResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpgradeAppliedSchemaRequest' => [ 'type' => 'structure', 'required' => [ 'PublishedSchemaArn', 'DirectoryArn', ], 'members' => [ 'PublishedSchemaArn' => [ 'shape' => 'Arn', ], 'DirectoryArn' => [ 'shape' => 'Arn', ], 'DryRun' => [ 'shape' => 'Bool', ], ], ], 'UpgradeAppliedSchemaResponse' => [ 'type' => 'structure', 'members' => [ 'UpgradedSchemaArn' => [ 'shape' => 'Arn', ], 'DirectoryArn' => [ 'shape' => 'Arn', ], ], ], 'UpgradePublishedSchemaRequest' => [ 'type' => 'structure', 'required' => [ 'DevelopmentSchemaArn', 'PublishedSchemaArn', 'MinorVersion', ], 'members' => [ 'DevelopmentSchemaArn' => [ 'shape' => 'Arn', ], 'PublishedSchemaArn' => [ 'shape' => 'Arn', ], 'MinorVersion' => [ 'shape' => 'Version', ], 'DryRun' => [ 'shape' => 'Bool', ], ], ], 'UpgradePublishedSchemaResponse' => [ 'type' => 'structure', 'members' => [ 'UpgradedSchemaArn' => [ 'shape' => 'Arn', ], ], ], 'ValidationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'Version' => [ 'type' => 'string', 'max' => 10, 'min' => 1, 'pattern' => '^[a-zA-Z0-9._-]*$', ], ],]; diff --git a/lib/aws/Aws/data/clouddirectory/2017-01-11/paginators-1.json.php b/lib/aws/Aws/data/clouddirectory/2017-01-11/paginators-1.json.php new file mode 100644 index 0000000..5e14165 --- /dev/null +++ b/lib/aws/Aws/data/clouddirectory/2017-01-11/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/clouddirectory/2017-01-11/paginators-1.json +return [ 'pagination' => [ 'ListAppliedSchemaArns' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListAttachedIndices' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListDevelopmentSchemaArns' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListDirectories' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListFacetAttributes' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListFacetNames' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListIndex' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListManagedSchemaArns' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListObjectAttributes' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListObjectChildren' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListObjectParentPaths' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListObjectParents' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListObjectPolicies' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListPolicyAttachments' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListPublishedSchemaArns' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListTagsForResource' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListTypedLinkFacetAttributes' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListTypedLinkFacetNames' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'LookupPolicy' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/cloudformation/2010-05-15/api-2.json.php b/lib/aws/Aws/data/cloudformation/2010-05-15/api-2.json.php new file mode 100644 index 0000000..f757d2d --- /dev/null +++ b/lib/aws/Aws/data/cloudformation/2010-05-15/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudformation/2010-05-15/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2010-05-15', 'endpointPrefix' => 'cloudformation', 'protocol' => 'query', 'serviceFullName' => 'AWS CloudFormation', 'serviceId' => 'CloudFormation', 'signatureVersion' => 'v4', 'uid' => 'cloudformation-2010-05-15', 'xmlNamespace' => 'http://cloudformation.amazonaws.com/doc/2010-05-15/', ], 'operations' => [ 'CancelUpdateStack' => [ 'name' => 'CancelUpdateStack', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelUpdateStackInput', ], 'errors' => [ [ 'shape' => 'TokenAlreadyExistsException', ], ], ], 'ContinueUpdateRollback' => [ 'name' => 'ContinueUpdateRollback', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ContinueUpdateRollbackInput', ], 'output' => [ 'shape' => 'ContinueUpdateRollbackOutput', 'resultWrapper' => 'ContinueUpdateRollbackResult', ], 'errors' => [ [ 'shape' => 'TokenAlreadyExistsException', ], ], ], 'CreateChangeSet' => [ 'name' => 'CreateChangeSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateChangeSetInput', ], 'output' => [ 'shape' => 'CreateChangeSetOutput', 'resultWrapper' => 'CreateChangeSetResult', ], 'errors' => [ [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'InsufficientCapabilitiesException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateStack' => [ 'name' => 'CreateStack', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateStackInput', ], 'output' => [ 'shape' => 'CreateStackOutput', 'resultWrapper' => 'CreateStackResult', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'TokenAlreadyExistsException', ], [ 'shape' => 'InsufficientCapabilitiesException', ], ], ], 'CreateStackInstances' => [ 'name' => 'CreateStackInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateStackInstancesInput', ], 'output' => [ 'shape' => 'CreateStackInstancesOutput', 'resultWrapper' => 'CreateStackInstancesResult', ], 'errors' => [ [ 'shape' => 'StackSetNotFoundException', ], [ 'shape' => 'OperationInProgressException', ], [ 'shape' => 'OperationIdAlreadyExistsException', ], [ 'shape' => 'StaleRequestException', ], [ 'shape' => 'InvalidOperationException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateStackSet' => [ 'name' => 'CreateStackSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateStackSetInput', ], 'output' => [ 'shape' => 'CreateStackSetOutput', 'resultWrapper' => 'CreateStackSetResult', ], 'errors' => [ [ 'shape' => 'NameAlreadyExistsException', ], [ 'shape' => 'CreatedButModifiedException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'DeleteChangeSet' => [ 'name' => 'DeleteChangeSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteChangeSetInput', ], 'output' => [ 'shape' => 'DeleteChangeSetOutput', 'resultWrapper' => 'DeleteChangeSetResult', ], 'errors' => [ [ 'shape' => 'InvalidChangeSetStatusException', ], ], ], 'DeleteStack' => [ 'name' => 'DeleteStack', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteStackInput', ], 'errors' => [ [ 'shape' => 'TokenAlreadyExistsException', ], ], ], 'DeleteStackInstances' => [ 'name' => 'DeleteStackInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteStackInstancesInput', ], 'output' => [ 'shape' => 'DeleteStackInstancesOutput', 'resultWrapper' => 'DeleteStackInstancesResult', ], 'errors' => [ [ 'shape' => 'StackSetNotFoundException', ], [ 'shape' => 'OperationInProgressException', ], [ 'shape' => 'OperationIdAlreadyExistsException', ], [ 'shape' => 'StaleRequestException', ], [ 'shape' => 'InvalidOperationException', ], ], ], 'DeleteStackSet' => [ 'name' => 'DeleteStackSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteStackSetInput', ], 'output' => [ 'shape' => 'DeleteStackSetOutput', 'resultWrapper' => 'DeleteStackSetResult', ], 'errors' => [ [ 'shape' => 'StackSetNotEmptyException', ], [ 'shape' => 'OperationInProgressException', ], ], ], 'DescribeAccountLimits' => [ 'name' => 'DescribeAccountLimits', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAccountLimitsInput', ], 'output' => [ 'shape' => 'DescribeAccountLimitsOutput', 'resultWrapper' => 'DescribeAccountLimitsResult', ], ], 'DescribeChangeSet' => [ 'name' => 'DescribeChangeSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeChangeSetInput', ], 'output' => [ 'shape' => 'DescribeChangeSetOutput', 'resultWrapper' => 'DescribeChangeSetResult', ], 'errors' => [ [ 'shape' => 'ChangeSetNotFoundException', ], ], ], 'DescribeStackDriftDetectionStatus' => [ 'name' => 'DescribeStackDriftDetectionStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStackDriftDetectionStatusInput', ], 'output' => [ 'shape' => 'DescribeStackDriftDetectionStatusOutput', 'resultWrapper' => 'DescribeStackDriftDetectionStatusResult', ], ], 'DescribeStackEvents' => [ 'name' => 'DescribeStackEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStackEventsInput', ], 'output' => [ 'shape' => 'DescribeStackEventsOutput', 'resultWrapper' => 'DescribeStackEventsResult', ], ], 'DescribeStackInstance' => [ 'name' => 'DescribeStackInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStackInstanceInput', ], 'output' => [ 'shape' => 'DescribeStackInstanceOutput', 'resultWrapper' => 'DescribeStackInstanceResult', ], 'errors' => [ [ 'shape' => 'StackSetNotFoundException', ], [ 'shape' => 'StackInstanceNotFoundException', ], ], ], 'DescribeStackResource' => [ 'name' => 'DescribeStackResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStackResourceInput', ], 'output' => [ 'shape' => 'DescribeStackResourceOutput', 'resultWrapper' => 'DescribeStackResourceResult', ], ], 'DescribeStackResourceDrifts' => [ 'name' => 'DescribeStackResourceDrifts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStackResourceDriftsInput', ], 'output' => [ 'shape' => 'DescribeStackResourceDriftsOutput', 'resultWrapper' => 'DescribeStackResourceDriftsResult', ], ], 'DescribeStackResources' => [ 'name' => 'DescribeStackResources', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStackResourcesInput', ], 'output' => [ 'shape' => 'DescribeStackResourcesOutput', 'resultWrapper' => 'DescribeStackResourcesResult', ], ], 'DescribeStackSet' => [ 'name' => 'DescribeStackSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStackSetInput', ], 'output' => [ 'shape' => 'DescribeStackSetOutput', 'resultWrapper' => 'DescribeStackSetResult', ], 'errors' => [ [ 'shape' => 'StackSetNotFoundException', ], ], ], 'DescribeStackSetOperation' => [ 'name' => 'DescribeStackSetOperation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStackSetOperationInput', ], 'output' => [ 'shape' => 'DescribeStackSetOperationOutput', 'resultWrapper' => 'DescribeStackSetOperationResult', ], 'errors' => [ [ 'shape' => 'StackSetNotFoundException', ], [ 'shape' => 'OperationNotFoundException', ], ], ], 'DescribeStacks' => [ 'name' => 'DescribeStacks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStacksInput', ], 'output' => [ 'shape' => 'DescribeStacksOutput', 'resultWrapper' => 'DescribeStacksResult', ], ], 'DetectStackDrift' => [ 'name' => 'DetectStackDrift', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetectStackDriftInput', ], 'output' => [ 'shape' => 'DetectStackDriftOutput', 'resultWrapper' => 'DetectStackDriftResult', ], ], 'DetectStackResourceDrift' => [ 'name' => 'DetectStackResourceDrift', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetectStackResourceDriftInput', ], 'output' => [ 'shape' => 'DetectStackResourceDriftOutput', 'resultWrapper' => 'DetectStackResourceDriftResult', ], ], 'EstimateTemplateCost' => [ 'name' => 'EstimateTemplateCost', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EstimateTemplateCostInput', ], 'output' => [ 'shape' => 'EstimateTemplateCostOutput', 'resultWrapper' => 'EstimateTemplateCostResult', ], ], 'ExecuteChangeSet' => [ 'name' => 'ExecuteChangeSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExecuteChangeSetInput', ], 'output' => [ 'shape' => 'ExecuteChangeSetOutput', 'resultWrapper' => 'ExecuteChangeSetResult', ], 'errors' => [ [ 'shape' => 'InvalidChangeSetStatusException', ], [ 'shape' => 'ChangeSetNotFoundException', ], [ 'shape' => 'InsufficientCapabilitiesException', ], [ 'shape' => 'TokenAlreadyExistsException', ], ], ], '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', ], 'errors' => [ [ 'shape' => 'ChangeSetNotFoundException', ], ], ], 'GetTemplateSummary' => [ 'name' => 'GetTemplateSummary', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTemplateSummaryInput', ], 'output' => [ 'shape' => 'GetTemplateSummaryOutput', 'resultWrapper' => 'GetTemplateSummaryResult', ], 'errors' => [ [ 'shape' => 'StackSetNotFoundException', ], ], ], 'ListChangeSets' => [ 'name' => 'ListChangeSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListChangeSetsInput', ], 'output' => [ 'shape' => 'ListChangeSetsOutput', 'resultWrapper' => 'ListChangeSetsResult', ], ], 'ListExports' => [ 'name' => 'ListExports', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListExportsInput', ], 'output' => [ 'shape' => 'ListExportsOutput', 'resultWrapper' => 'ListExportsResult', ], ], 'ListImports' => [ 'name' => 'ListImports', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListImportsInput', ], 'output' => [ 'shape' => 'ListImportsOutput', 'resultWrapper' => 'ListImportsResult', ], ], 'ListStackInstances' => [ 'name' => 'ListStackInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListStackInstancesInput', ], 'output' => [ 'shape' => 'ListStackInstancesOutput', 'resultWrapper' => 'ListStackInstancesResult', ], 'errors' => [ [ 'shape' => 'StackSetNotFoundException', ], ], ], 'ListStackResources' => [ 'name' => 'ListStackResources', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListStackResourcesInput', ], 'output' => [ 'shape' => 'ListStackResourcesOutput', 'resultWrapper' => 'ListStackResourcesResult', ], ], 'ListStackSetOperationResults' => [ 'name' => 'ListStackSetOperationResults', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListStackSetOperationResultsInput', ], 'output' => [ 'shape' => 'ListStackSetOperationResultsOutput', 'resultWrapper' => 'ListStackSetOperationResultsResult', ], 'errors' => [ [ 'shape' => 'StackSetNotFoundException', ], [ 'shape' => 'OperationNotFoundException', ], ], ], 'ListStackSetOperations' => [ 'name' => 'ListStackSetOperations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListStackSetOperationsInput', ], 'output' => [ 'shape' => 'ListStackSetOperationsOutput', 'resultWrapper' => 'ListStackSetOperationsResult', ], 'errors' => [ [ 'shape' => 'StackSetNotFoundException', ], ], ], 'ListStackSets' => [ 'name' => 'ListStackSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListStackSetsInput', ], 'output' => [ 'shape' => 'ListStackSetsOutput', 'resultWrapper' => 'ListStackSetsResult', ], ], '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', ], ], 'StopStackSetOperation' => [ 'name' => 'StopStackSetOperation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopStackSetOperationInput', ], 'output' => [ 'shape' => 'StopStackSetOperationOutput', 'resultWrapper' => 'StopStackSetOperationResult', ], 'errors' => [ [ 'shape' => 'StackSetNotFoundException', ], [ 'shape' => 'OperationNotFoundException', ], [ 'shape' => 'InvalidOperationException', ], ], ], 'UpdateStack' => [ 'name' => 'UpdateStack', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateStackInput', ], 'output' => [ 'shape' => 'UpdateStackOutput', 'resultWrapper' => 'UpdateStackResult', ], 'errors' => [ [ 'shape' => 'InsufficientCapabilitiesException', ], [ 'shape' => 'TokenAlreadyExistsException', ], ], ], 'UpdateStackInstances' => [ 'name' => 'UpdateStackInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateStackInstancesInput', ], 'output' => [ 'shape' => 'UpdateStackInstancesOutput', 'resultWrapper' => 'UpdateStackInstancesResult', ], 'errors' => [ [ 'shape' => 'StackSetNotFoundException', ], [ 'shape' => 'StackInstanceNotFoundException', ], [ 'shape' => 'OperationInProgressException', ], [ 'shape' => 'OperationIdAlreadyExistsException', ], [ 'shape' => 'StaleRequestException', ], [ 'shape' => 'InvalidOperationException', ], ], ], 'UpdateStackSet' => [ 'name' => 'UpdateStackSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateStackSetInput', ], 'output' => [ 'shape' => 'UpdateStackSetOutput', 'resultWrapper' => 'UpdateStackSetResult', ], 'errors' => [ [ 'shape' => 'StackSetNotFoundException', ], [ 'shape' => 'OperationInProgressException', ], [ 'shape' => 'OperationIdAlreadyExistsException', ], [ 'shape' => 'StaleRequestException', ], [ 'shape' => 'InvalidOperationException', ], [ 'shape' => 'StackInstanceNotFoundException', ], ], ], 'UpdateTerminationProtection' => [ 'name' => 'UpdateTerminationProtection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateTerminationProtectionInput', ], 'output' => [ 'shape' => 'UpdateTerminationProtectionOutput', 'resultWrapper' => 'UpdateTerminationProtectionResult', ], ], 'ValidateTemplate' => [ 'name' => 'ValidateTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ValidateTemplateInput', ], 'output' => [ 'shape' => 'ValidateTemplateOutput', 'resultWrapper' => 'ValidateTemplateResult', ], ], ], 'shapes' => [ 'Account' => [ 'type' => 'string', 'pattern' => '[0-9]{12}', ], 'AccountGateResult' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'AccountGateStatus', ], 'StatusReason' => [ 'shape' => 'AccountGateStatusReason', ], ], ], 'AccountGateStatus' => [ 'type' => 'string', 'enum' => [ 'SUCCEEDED', 'FAILED', 'SKIPPED', ], ], 'AccountGateStatusReason' => [ 'type' => 'string', ], 'AccountLimit' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'LimitName', ], 'Value' => [ 'shape' => 'LimitValue', ], ], ], 'AccountLimitList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountLimit', ], ], 'AccountList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Account', ], ], 'AllowedValue' => [ 'type' => 'string', ], 'AllowedValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedValue', ], ], 'AlreadyExistsException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'AlreadyExistsException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'Arn' => [ 'type' => 'string', ], 'BoxedInteger' => [ 'type' => 'integer', 'box' => true, ], 'BoxedMaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'CancelUpdateStackInput' => [ 'type' => 'structure', 'required' => [ 'StackName', ], 'members' => [ 'StackName' => [ 'shape' => 'StackName', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', ], ], ], 'Capabilities' => [ 'type' => 'list', 'member' => [ 'shape' => 'Capability', ], ], 'CapabilitiesReason' => [ 'type' => 'string', ], 'Capability' => [ 'type' => 'string', 'enum' => [ 'CAPABILITY_IAM', 'CAPABILITY_NAMED_IAM', 'CAPABILITY_AUTO_EXPAND', ], ], 'CausingEntity' => [ 'type' => 'string', ], 'Change' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'ChangeType', ], 'ResourceChange' => [ 'shape' => 'ResourceChange', ], ], ], 'ChangeAction' => [ 'type' => 'string', 'enum' => [ 'Add', 'Modify', 'Remove', ], ], 'ChangeSetId' => [ 'type' => 'string', 'min' => 1, 'pattern' => 'arn:[-a-zA-Z0-9:/]*', ], 'ChangeSetName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z][-a-zA-Z0-9]*', ], 'ChangeSetNameOrId' => [ 'type' => 'string', 'max' => 1600, 'min' => 1, 'pattern' => '[a-zA-Z][-a-zA-Z0-9]*|arn:[-a-zA-Z0-9:/]*', ], 'ChangeSetNotFoundException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'ChangeSetNotFound', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'ChangeSetStatus' => [ 'type' => 'string', 'enum' => [ 'CREATE_PENDING', 'CREATE_IN_PROGRESS', 'CREATE_COMPLETE', 'DELETE_COMPLETE', 'FAILED', ], ], 'ChangeSetStatusReason' => [ 'type' => 'string', ], 'ChangeSetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ChangeSetSummary', ], ], 'ChangeSetSummary' => [ 'type' => 'structure', 'members' => [ 'StackId' => [ 'shape' => 'StackId', ], 'StackName' => [ 'shape' => 'StackName', ], 'ChangeSetId' => [ 'shape' => 'ChangeSetId', ], 'ChangeSetName' => [ 'shape' => 'ChangeSetName', ], 'ExecutionStatus' => [ 'shape' => 'ExecutionStatus', ], 'Status' => [ 'shape' => 'ChangeSetStatus', ], 'StatusReason' => [ 'shape' => 'ChangeSetStatusReason', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], 'Description' => [ 'shape' => 'Description', ], ], ], 'ChangeSetType' => [ 'type' => 'string', 'enum' => [ 'CREATE', 'UPDATE', ], ], 'ChangeSource' => [ 'type' => 'string', 'enum' => [ 'ResourceReference', 'ParameterReference', 'ResourceAttribute', 'DirectModification', 'Automatic', ], ], 'ChangeType' => [ 'type' => 'string', 'enum' => [ 'Resource', ], ], 'Changes' => [ 'type' => 'list', 'member' => [ 'shape' => 'Change', ], ], 'ClientRequestToken' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9][-a-zA-Z0-9]*', ], 'ClientToken' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'ContinueUpdateRollbackInput' => [ 'type' => 'structure', 'required' => [ 'StackName', ], 'members' => [ 'StackName' => [ 'shape' => 'StackNameOrId', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], 'ResourcesToSkip' => [ 'shape' => 'ResourcesToSkip', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', ], ], ], 'ContinueUpdateRollbackOutput' => [ 'type' => 'structure', 'members' => [], ], 'CreateChangeSetInput' => [ 'type' => 'structure', 'required' => [ 'StackName', 'ChangeSetName', ], 'members' => [ 'StackName' => [ 'shape' => 'StackNameOrId', ], 'TemplateBody' => [ 'shape' => 'TemplateBody', ], 'TemplateURL' => [ 'shape' => 'TemplateURL', ], 'UsePreviousTemplate' => [ 'shape' => 'UsePreviousTemplate', ], 'Parameters' => [ 'shape' => 'Parameters', ], 'Capabilities' => [ 'shape' => 'Capabilities', ], 'ResourceTypes' => [ 'shape' => 'ResourceTypes', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], 'RollbackConfiguration' => [ 'shape' => 'RollbackConfiguration', ], 'NotificationARNs' => [ 'shape' => 'NotificationARNs', ], 'Tags' => [ 'shape' => 'Tags', ], 'ChangeSetName' => [ 'shape' => 'ChangeSetName', ], 'ClientToken' => [ 'shape' => 'ClientToken', ], 'Description' => [ 'shape' => 'Description', ], 'ChangeSetType' => [ 'shape' => 'ChangeSetType', ], ], ], 'CreateChangeSetOutput' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ChangeSetId', ], 'StackId' => [ 'shape' => 'StackId', ], ], ], 'CreateStackInput' => [ 'type' => 'structure', 'required' => [ 'StackName', ], 'members' => [ 'StackName' => [ 'shape' => 'StackName', ], 'TemplateBody' => [ 'shape' => 'TemplateBody', ], 'TemplateURL' => [ 'shape' => 'TemplateURL', ], 'Parameters' => [ 'shape' => 'Parameters', ], 'DisableRollback' => [ 'shape' => 'DisableRollback', ], 'RollbackConfiguration' => [ 'shape' => 'RollbackConfiguration', ], 'TimeoutInMinutes' => [ 'shape' => 'TimeoutMinutes', ], 'NotificationARNs' => [ 'shape' => 'NotificationARNs', ], 'Capabilities' => [ 'shape' => 'Capabilities', ], 'ResourceTypes' => [ 'shape' => 'ResourceTypes', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], 'OnFailure' => [ 'shape' => 'OnFailure', ], 'StackPolicyBody' => [ 'shape' => 'StackPolicyBody', ], 'StackPolicyURL' => [ 'shape' => 'StackPolicyURL', ], 'Tags' => [ 'shape' => 'Tags', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', ], 'EnableTerminationProtection' => [ 'shape' => 'EnableTerminationProtection', ], ], ], 'CreateStackInstancesInput' => [ 'type' => 'structure', 'required' => [ 'StackSetName', 'Accounts', 'Regions', ], 'members' => [ 'StackSetName' => [ 'shape' => 'StackSetName', ], 'Accounts' => [ 'shape' => 'AccountList', ], 'Regions' => [ 'shape' => 'RegionList', ], 'ParameterOverrides' => [ 'shape' => 'Parameters', ], 'OperationPreferences' => [ 'shape' => 'StackSetOperationPreferences', ], 'OperationId' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'CreateStackInstancesOutput' => [ 'type' => 'structure', 'members' => [ 'OperationId' => [ 'shape' => 'ClientRequestToken', ], ], ], 'CreateStackOutput' => [ 'type' => 'structure', 'members' => [ 'StackId' => [ 'shape' => 'StackId', ], ], ], 'CreateStackSetInput' => [ 'type' => 'structure', 'required' => [ 'StackSetName', ], 'members' => [ 'StackSetName' => [ 'shape' => 'StackSetName', ], 'Description' => [ 'shape' => 'Description', ], 'TemplateBody' => [ 'shape' => 'TemplateBody', ], 'TemplateURL' => [ 'shape' => 'TemplateURL', ], 'Parameters' => [ 'shape' => 'Parameters', ], 'Capabilities' => [ 'shape' => 'Capabilities', ], 'Tags' => [ 'shape' => 'Tags', ], 'AdministrationRoleARN' => [ 'shape' => 'RoleARN', ], 'ExecutionRoleName' => [ 'shape' => 'ExecutionRoleName', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'CreateStackSetOutput' => [ 'type' => 'structure', 'members' => [ 'StackSetId' => [ 'shape' => 'StackSetId', ], ], ], 'CreatedButModifiedException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'CreatedButModifiedException', 'httpStatusCode' => 409, 'senderFault' => true, ], 'exception' => true, ], 'CreationTime' => [ 'type' => 'timestamp', ], 'DeleteChangeSetInput' => [ 'type' => 'structure', 'required' => [ 'ChangeSetName', ], 'members' => [ 'ChangeSetName' => [ 'shape' => 'ChangeSetNameOrId', ], 'StackName' => [ 'shape' => 'StackNameOrId', ], ], ], 'DeleteChangeSetOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeleteStackInput' => [ 'type' => 'structure', 'required' => [ 'StackName', ], 'members' => [ 'StackName' => [ 'shape' => 'StackName', ], 'RetainResources' => [ 'shape' => 'RetainResources', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', ], ], ], 'DeleteStackInstancesInput' => [ 'type' => 'structure', 'required' => [ 'StackSetName', 'Accounts', 'Regions', 'RetainStacks', ], 'members' => [ 'StackSetName' => [ 'shape' => 'StackSetName', ], 'Accounts' => [ 'shape' => 'AccountList', ], 'Regions' => [ 'shape' => 'RegionList', ], 'OperationPreferences' => [ 'shape' => 'StackSetOperationPreferences', ], 'RetainStacks' => [ 'shape' => 'RetainStacks', ], 'OperationId' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'DeleteStackInstancesOutput' => [ 'type' => 'structure', 'members' => [ 'OperationId' => [ 'shape' => 'ClientRequestToken', ], ], ], 'DeleteStackSetInput' => [ 'type' => 'structure', 'required' => [ 'StackSetName', ], 'members' => [ 'StackSetName' => [ 'shape' => 'StackSetName', ], ], ], 'DeleteStackSetOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeletionTime' => [ 'type' => 'timestamp', ], 'DescribeAccountLimitsInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeAccountLimitsOutput' => [ 'type' => 'structure', 'members' => [ 'AccountLimits' => [ 'shape' => 'AccountLimitList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeChangeSetInput' => [ 'type' => 'structure', 'required' => [ 'ChangeSetName', ], 'members' => [ 'ChangeSetName' => [ 'shape' => 'ChangeSetNameOrId', ], 'StackName' => [ 'shape' => 'StackNameOrId', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeChangeSetOutput' => [ 'type' => 'structure', 'members' => [ 'ChangeSetName' => [ 'shape' => 'ChangeSetName', ], 'ChangeSetId' => [ 'shape' => 'ChangeSetId', ], 'StackId' => [ 'shape' => 'StackId', ], 'StackName' => [ 'shape' => 'StackName', ], 'Description' => [ 'shape' => 'Description', ], 'Parameters' => [ 'shape' => 'Parameters', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], 'ExecutionStatus' => [ 'shape' => 'ExecutionStatus', ], 'Status' => [ 'shape' => 'ChangeSetStatus', ], 'StatusReason' => [ 'shape' => 'ChangeSetStatusReason', ], 'NotificationARNs' => [ 'shape' => 'NotificationARNs', ], 'RollbackConfiguration' => [ 'shape' => 'RollbackConfiguration', ], 'Capabilities' => [ 'shape' => 'Capabilities', ], 'Tags' => [ 'shape' => 'Tags', ], 'Changes' => [ 'shape' => 'Changes', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeStackDriftDetectionStatusInput' => [ 'type' => 'structure', 'required' => [ 'StackDriftDetectionId', ], 'members' => [ 'StackDriftDetectionId' => [ 'shape' => 'StackDriftDetectionId', ], ], ], 'DescribeStackDriftDetectionStatusOutput' => [ 'type' => 'structure', 'required' => [ 'StackId', 'StackDriftDetectionId', 'DetectionStatus', 'Timestamp', ], 'members' => [ 'StackId' => [ 'shape' => 'StackId', ], 'StackDriftDetectionId' => [ 'shape' => 'StackDriftDetectionId', ], 'StackDriftStatus' => [ 'shape' => 'StackDriftStatus', ], 'DetectionStatus' => [ 'shape' => 'StackDriftDetectionStatus', ], 'DetectionStatusReason' => [ 'shape' => 'StackDriftDetectionStatusReason', ], 'DriftedStackResourceCount' => [ 'shape' => 'BoxedInteger', ], 'Timestamp' => [ 'shape' => 'Timestamp', ], ], ], 'DescribeStackEventsInput' => [ 'type' => 'structure', 'members' => [ 'StackName' => [ 'shape' => 'StackName', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeStackEventsOutput' => [ 'type' => 'structure', 'members' => [ 'StackEvents' => [ 'shape' => 'StackEvents', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeStackInstanceInput' => [ 'type' => 'structure', 'required' => [ 'StackSetName', 'StackInstanceAccount', 'StackInstanceRegion', ], 'members' => [ 'StackSetName' => [ 'shape' => 'StackSetName', ], 'StackInstanceAccount' => [ 'shape' => 'Account', ], 'StackInstanceRegion' => [ 'shape' => 'Region', ], ], ], 'DescribeStackInstanceOutput' => [ 'type' => 'structure', 'members' => [ 'StackInstance' => [ 'shape' => 'StackInstance', ], ], ], 'DescribeStackResourceDriftsInput' => [ 'type' => 'structure', 'required' => [ 'StackName', ], 'members' => [ 'StackName' => [ 'shape' => 'StackNameOrId', ], 'StackResourceDriftStatusFilters' => [ 'shape' => 'StackResourceDriftStatusFilters', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'BoxedMaxResults', ], ], ], 'DescribeStackResourceDriftsOutput' => [ 'type' => 'structure', 'required' => [ 'StackResourceDrifts', ], 'members' => [ 'StackResourceDrifts' => [ 'shape' => 'StackResourceDrifts', ], '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', ], ], ], 'DescribeStackSetInput' => [ 'type' => 'structure', 'required' => [ 'StackSetName', ], 'members' => [ 'StackSetName' => [ 'shape' => 'StackSetName', ], ], ], 'DescribeStackSetOperationInput' => [ 'type' => 'structure', 'required' => [ 'StackSetName', 'OperationId', ], 'members' => [ 'StackSetName' => [ 'shape' => 'StackSetName', ], 'OperationId' => [ 'shape' => 'ClientRequestToken', ], ], ], 'DescribeStackSetOperationOutput' => [ 'type' => 'structure', 'members' => [ 'StackSetOperation' => [ 'shape' => 'StackSetOperation', ], ], ], 'DescribeStackSetOutput' => [ 'type' => 'structure', 'members' => [ 'StackSet' => [ 'shape' => 'StackSet', ], ], ], 'DescribeStacksInput' => [ 'type' => 'structure', 'members' => [ 'StackName' => [ 'shape' => 'StackName', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeStacksOutput' => [ 'type' => 'structure', 'members' => [ 'Stacks' => [ 'shape' => 'Stacks', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'Description' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'DetectStackDriftInput' => [ 'type' => 'structure', 'required' => [ 'StackName', ], 'members' => [ 'StackName' => [ 'shape' => 'StackNameOrId', ], 'LogicalResourceIds' => [ 'shape' => 'LogicalResourceIds', ], ], ], 'DetectStackDriftOutput' => [ 'type' => 'structure', 'required' => [ 'StackDriftDetectionId', ], 'members' => [ 'StackDriftDetectionId' => [ 'shape' => 'StackDriftDetectionId', ], ], ], 'DetectStackResourceDriftInput' => [ 'type' => 'structure', 'required' => [ 'StackName', 'LogicalResourceId', ], 'members' => [ 'StackName' => [ 'shape' => 'StackNameOrId', ], 'LogicalResourceId' => [ 'shape' => 'LogicalResourceId', ], ], ], 'DetectStackResourceDriftOutput' => [ 'type' => 'structure', 'required' => [ 'StackResourceDrift', ], 'members' => [ 'StackResourceDrift' => [ 'shape' => 'StackResourceDrift', ], ], ], 'DifferenceType' => [ 'type' => 'string', 'enum' => [ 'ADD', 'REMOVE', 'NOT_EQUAL', ], ], 'DisableRollback' => [ 'type' => 'boolean', ], 'EnableTerminationProtection' => [ 'type' => 'boolean', ], 'EstimateTemplateCostInput' => [ 'type' => 'structure', 'members' => [ 'TemplateBody' => [ 'shape' => 'TemplateBody', ], 'TemplateURL' => [ 'shape' => 'TemplateURL', ], 'Parameters' => [ 'shape' => 'Parameters', ], ], ], 'EstimateTemplateCostOutput' => [ 'type' => 'structure', 'members' => [ 'Url' => [ 'shape' => 'Url', ], ], ], 'EvaluationType' => [ 'type' => 'string', 'enum' => [ 'Static', 'Dynamic', ], ], 'EventId' => [ 'type' => 'string', ], 'ExecuteChangeSetInput' => [ 'type' => 'structure', 'required' => [ 'ChangeSetName', ], 'members' => [ 'ChangeSetName' => [ 'shape' => 'ChangeSetNameOrId', ], 'StackName' => [ 'shape' => 'StackNameOrId', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', ], ], ], 'ExecuteChangeSetOutput' => [ 'type' => 'structure', 'members' => [], ], 'ExecutionRoleName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z_0-9+=,.@-]+', ], 'ExecutionStatus' => [ 'type' => 'string', 'enum' => [ 'UNAVAILABLE', 'AVAILABLE', 'EXECUTE_IN_PROGRESS', 'EXECUTE_COMPLETE', 'EXECUTE_FAILED', 'OBSOLETE', ], ], 'Export' => [ 'type' => 'structure', 'members' => [ 'ExportingStackId' => [ 'shape' => 'StackId', ], 'Name' => [ 'shape' => 'ExportName', ], 'Value' => [ 'shape' => 'ExportValue', ], ], ], 'ExportName' => [ 'type' => 'string', ], 'ExportValue' => [ 'type' => 'string', ], 'Exports' => [ 'type' => 'list', 'member' => [ 'shape' => 'Export', ], ], 'FailureToleranceCount' => [ 'type' => 'integer', 'min' => 0, ], 'FailureTolerancePercentage' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'GetStackPolicyInput' => [ 'type' => 'structure', 'required' => [ 'StackName', ], 'members' => [ 'StackName' => [ 'shape' => 'StackName', ], ], ], 'GetStackPolicyOutput' => [ 'type' => 'structure', 'members' => [ 'StackPolicyBody' => [ 'shape' => 'StackPolicyBody', ], ], ], 'GetTemplateInput' => [ 'type' => 'structure', 'members' => [ 'StackName' => [ 'shape' => 'StackName', ], 'ChangeSetName' => [ 'shape' => 'ChangeSetNameOrId', ], 'TemplateStage' => [ 'shape' => 'TemplateStage', ], ], ], 'GetTemplateOutput' => [ 'type' => 'structure', 'members' => [ 'TemplateBody' => [ 'shape' => 'TemplateBody', ], 'StagesAvailable' => [ 'shape' => 'StageList', ], ], ], 'GetTemplateSummaryInput' => [ 'type' => 'structure', 'members' => [ 'TemplateBody' => [ 'shape' => 'TemplateBody', ], 'TemplateURL' => [ 'shape' => 'TemplateURL', ], 'StackName' => [ 'shape' => 'StackNameOrId', ], 'StackSetName' => [ 'shape' => 'StackSetNameOrId', ], ], ], 'GetTemplateSummaryOutput' => [ 'type' => 'structure', 'members' => [ 'Parameters' => [ 'shape' => 'ParameterDeclarations', ], 'Description' => [ 'shape' => 'Description', ], 'Capabilities' => [ 'shape' => 'Capabilities', ], 'CapabilitiesReason' => [ 'shape' => 'CapabilitiesReason', ], 'ResourceTypes' => [ 'shape' => 'ResourceTypes', ], 'Version' => [ 'shape' => 'Version', ], 'Metadata' => [ 'shape' => 'Metadata', ], 'DeclaredTransforms' => [ 'shape' => 'TransformsList', ], ], ], 'Imports' => [ 'type' => 'list', 'member' => [ 'shape' => 'StackName', ], ], 'InsufficientCapabilitiesException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InsufficientCapabilitiesException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidChangeSetStatusException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidChangeSetStatus', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidOperationException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidOperationException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'Key' => [ 'type' => 'string', ], 'LastUpdatedTime' => [ 'type' => 'timestamp', ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'LimitExceededException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'LimitName' => [ 'type' => 'string', ], 'LimitValue' => [ 'type' => 'integer', ], 'ListChangeSetsInput' => [ 'type' => 'structure', 'required' => [ 'StackName', ], 'members' => [ 'StackName' => [ 'shape' => 'StackNameOrId', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListChangeSetsOutput' => [ 'type' => 'structure', 'members' => [ 'Summaries' => [ 'shape' => 'ChangeSetSummaries', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListExportsInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListExportsOutput' => [ 'type' => 'structure', 'members' => [ 'Exports' => [ 'shape' => 'Exports', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListImportsInput' => [ 'type' => 'structure', 'required' => [ 'ExportName', ], 'members' => [ 'ExportName' => [ 'shape' => 'ExportName', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListImportsOutput' => [ 'type' => 'structure', 'members' => [ 'Imports' => [ 'shape' => 'Imports', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListStackInstancesInput' => [ 'type' => 'structure', 'required' => [ 'StackSetName', ], 'members' => [ 'StackSetName' => [ 'shape' => 'StackSetName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'StackInstanceAccount' => [ 'shape' => 'Account', ], 'StackInstanceRegion' => [ 'shape' => 'Region', ], ], ], 'ListStackInstancesOutput' => [ 'type' => 'structure', 'members' => [ 'Summaries' => [ 'shape' => 'StackInstanceSummaries', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListStackResourcesInput' => [ 'type' => 'structure', 'required' => [ 'StackName', ], 'members' => [ 'StackName' => [ 'shape' => 'StackName', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListStackResourcesOutput' => [ 'type' => 'structure', 'members' => [ 'StackResourceSummaries' => [ 'shape' => 'StackResourceSummaries', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListStackSetOperationResultsInput' => [ 'type' => 'structure', 'required' => [ 'StackSetName', 'OperationId', ], 'members' => [ 'StackSetName' => [ 'shape' => 'StackSetName', ], 'OperationId' => [ 'shape' => 'ClientRequestToken', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListStackSetOperationResultsOutput' => [ 'type' => 'structure', 'members' => [ 'Summaries' => [ 'shape' => 'StackSetOperationResultSummaries', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListStackSetOperationsInput' => [ 'type' => 'structure', 'required' => [ 'StackSetName', ], 'members' => [ 'StackSetName' => [ 'shape' => 'StackSetName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListStackSetOperationsOutput' => [ 'type' => 'structure', 'members' => [ 'Summaries' => [ 'shape' => 'StackSetOperationSummaries', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListStackSetsInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'Status' => [ 'shape' => 'StackSetStatus', ], ], ], 'ListStackSetsOutput' => [ 'type' => 'structure', 'members' => [ 'Summaries' => [ 'shape' => 'StackSetSummaries', ], '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', ], 'LogicalResourceIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'LogicalResourceId', ], 'max' => 200, 'min' => 1, ], 'MaxConcurrentCount' => [ 'type' => 'integer', 'min' => 1, ], 'MaxConcurrentPercentage' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'MaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'Metadata' => [ 'type' => 'string', ], 'MonitoringTimeInMinutes' => [ 'type' => 'integer', 'max' => 180, 'min' => 0, ], 'NameAlreadyExistsException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'NameAlreadyExistsException', 'httpStatusCode' => 409, 'senderFault' => true, ], 'exception' => true, ], 'NextToken' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'NoEcho' => [ 'type' => 'boolean', ], 'NotificationARN' => [ 'type' => 'string', ], 'NotificationARNs' => [ 'type' => 'list', 'member' => [ 'shape' => 'NotificationARN', ], 'max' => 5, ], 'OnFailure' => [ 'type' => 'string', 'enum' => [ 'DO_NOTHING', 'ROLLBACK', 'DELETE', ], ], 'OperationIdAlreadyExistsException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'OperationIdAlreadyExistsException', 'httpStatusCode' => 409, 'senderFault' => true, ], 'exception' => true, ], 'OperationInProgressException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'OperationInProgressException', 'httpStatusCode' => 409, 'senderFault' => true, ], 'exception' => true, ], 'OperationNotFoundException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'OperationNotFoundException', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'Output' => [ 'type' => 'structure', 'members' => [ 'OutputKey' => [ 'shape' => 'OutputKey', ], 'OutputValue' => [ 'shape' => 'OutputValue', ], 'Description' => [ 'shape' => 'Description', ], 'ExportName' => [ 'shape' => 'ExportName', ], ], ], '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', ], 'ResolvedValue' => [ 'shape' => 'ParameterValue', ], ], ], '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', ], 'PhysicalResourceIdContext' => [ 'type' => 'list', 'member' => [ 'shape' => 'PhysicalResourceIdContextKeyValuePair', ], 'max' => 5, ], 'PhysicalResourceIdContextKeyValuePair' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'Key', ], 'Value' => [ 'shape' => 'Value', ], ], ], 'Properties' => [ 'type' => 'string', ], 'PropertyDifference' => [ 'type' => 'structure', 'required' => [ 'PropertyPath', 'ExpectedValue', 'ActualValue', 'DifferenceType', ], 'members' => [ 'PropertyPath' => [ 'shape' => 'PropertyPath', ], 'ExpectedValue' => [ 'shape' => 'PropertyValue', ], 'ActualValue' => [ 'shape' => 'PropertyValue', ], 'DifferenceType' => [ 'shape' => 'DifferenceType', ], ], ], 'PropertyDifferences' => [ 'type' => 'list', 'member' => [ 'shape' => 'PropertyDifference', ], ], 'PropertyName' => [ 'type' => 'string', ], 'PropertyPath' => [ 'type' => 'string', ], 'PropertyValue' => [ 'type' => 'string', ], 'Reason' => [ 'type' => 'string', ], 'Region' => [ 'type' => 'string', ], 'RegionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Region', ], ], 'Replacement' => [ 'type' => 'string', 'enum' => [ 'True', 'False', 'Conditional', ], ], 'RequiresRecreation' => [ 'type' => 'string', 'enum' => [ 'Never', 'Conditionally', 'Always', ], ], 'ResourceAttribute' => [ 'type' => 'string', 'enum' => [ 'Properties', 'Metadata', 'CreationPolicy', 'UpdatePolicy', 'DeletionPolicy', 'Tags', ], ], 'ResourceChange' => [ 'type' => 'structure', 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'LogicalResourceId' => [ 'shape' => 'LogicalResourceId', ], 'PhysicalResourceId' => [ 'shape' => 'PhysicalResourceId', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], 'Replacement' => [ 'shape' => 'Replacement', ], 'Scope' => [ 'shape' => 'Scope', ], 'Details' => [ 'shape' => 'ResourceChangeDetails', ], ], ], 'ResourceChangeDetail' => [ 'type' => 'structure', 'members' => [ 'Target' => [ 'shape' => 'ResourceTargetDefinition', ], 'Evaluation' => [ 'shape' => 'EvaluationType', ], 'ChangeSource' => [ 'shape' => 'ChangeSource', ], 'CausingEntity' => [ 'shape' => 'CausingEntity', ], ], ], 'ResourceChangeDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceChangeDetail', ], ], 'ResourceProperties' => [ 'type' => 'string', ], 'ResourceSignalStatus' => [ 'type' => 'string', 'enum' => [ 'SUCCESS', 'FAILURE', ], ], 'ResourceSignalUniqueId' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], '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', ], 'ResourceTargetDefinition' => [ 'type' => 'structure', 'members' => [ 'Attribute' => [ 'shape' => 'ResourceAttribute', ], 'Name' => [ 'shape' => 'PropertyName', ], 'RequiresRecreation' => [ 'shape' => 'RequiresRecreation', ], ], ], 'ResourceToSkip' => [ 'type' => 'string', 'pattern' => '[a-zA-Z0-9]+|[a-zA-Z][-a-zA-Z0-9]*\\.[a-zA-Z0-9]+', ], 'ResourceType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'ResourceTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceType', ], ], 'ResourcesToSkip' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceToSkip', ], ], 'RetainResources' => [ 'type' => 'list', 'member' => [ 'shape' => 'LogicalResourceId', ], ], 'RetainStacks' => [ 'type' => 'boolean', ], 'RetainStacksNullable' => [ 'type' => 'boolean', ], 'RoleARN' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, ], 'RollbackConfiguration' => [ 'type' => 'structure', 'members' => [ 'RollbackTriggers' => [ 'shape' => 'RollbackTriggers', ], 'MonitoringTimeInMinutes' => [ 'shape' => 'MonitoringTimeInMinutes', ], ], ], 'RollbackTrigger' => [ 'type' => 'structure', 'required' => [ 'Arn', 'Type', ], 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'Type' => [ 'shape' => 'Type', ], ], ], 'RollbackTriggers' => [ 'type' => 'list', 'member' => [ 'shape' => 'RollbackTrigger', ], 'max' => 5, ], 'Scope' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceAttribute', ], ], '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', ], 'ChangeSetId' => [ 'shape' => 'ChangeSetId', ], 'Description' => [ 'shape' => 'Description', ], 'Parameters' => [ 'shape' => 'Parameters', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], 'DeletionTime' => [ 'shape' => 'DeletionTime', ], 'LastUpdatedTime' => [ 'shape' => 'LastUpdatedTime', ], 'RollbackConfiguration' => [ 'shape' => 'RollbackConfiguration', ], 'StackStatus' => [ 'shape' => 'StackStatus', ], 'StackStatusReason' => [ 'shape' => 'StackStatusReason', ], 'DisableRollback' => [ 'shape' => 'DisableRollback', ], 'NotificationARNs' => [ 'shape' => 'NotificationARNs', ], 'TimeoutInMinutes' => [ 'shape' => 'TimeoutMinutes', ], 'Capabilities' => [ 'shape' => 'Capabilities', ], 'Outputs' => [ 'shape' => 'Outputs', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], 'Tags' => [ 'shape' => 'Tags', ], 'EnableTerminationProtection' => [ 'shape' => 'EnableTerminationProtection', ], 'ParentId' => [ 'shape' => 'StackId', ], 'RootId' => [ 'shape' => 'StackId', ], 'DriftInformation' => [ 'shape' => 'StackDriftInformation', ], ], ], 'StackDriftDetectionId' => [ 'type' => 'string', 'max' => 36, 'min' => 1, ], 'StackDriftDetectionStatus' => [ 'type' => 'string', 'enum' => [ 'DETECTION_IN_PROGRESS', 'DETECTION_FAILED', 'DETECTION_COMPLETE', ], ], 'StackDriftDetectionStatusReason' => [ 'type' => 'string', ], 'StackDriftInformation' => [ 'type' => 'structure', 'required' => [ 'StackDriftStatus', ], 'members' => [ 'StackDriftStatus' => [ 'shape' => 'StackDriftStatus', ], 'LastCheckTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'StackDriftInformationSummary' => [ 'type' => 'structure', 'required' => [ 'StackDriftStatus', ], 'members' => [ 'StackDriftStatus' => [ 'shape' => 'StackDriftStatus', ], 'LastCheckTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'StackDriftStatus' => [ 'type' => 'string', 'enum' => [ 'DRIFTED', 'IN_SYNC', 'UNKNOWN', 'NOT_CHECKED', ], ], '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', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', ], ], ], 'StackEvents' => [ 'type' => 'list', 'member' => [ 'shape' => 'StackEvent', ], ], 'StackId' => [ 'type' => 'string', ], 'StackInstance' => [ 'type' => 'structure', 'members' => [ 'StackSetId' => [ 'shape' => 'StackSetId', ], 'Region' => [ 'shape' => 'Region', ], 'Account' => [ 'shape' => 'Account', ], 'StackId' => [ 'shape' => 'StackId', ], 'ParameterOverrides' => [ 'shape' => 'Parameters', ], 'Status' => [ 'shape' => 'StackInstanceStatus', ], 'StatusReason' => [ 'shape' => 'Reason', ], ], ], 'StackInstanceNotFoundException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'StackInstanceNotFoundException', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'StackInstanceStatus' => [ 'type' => 'string', 'enum' => [ 'CURRENT', 'OUTDATED', 'INOPERABLE', ], ], 'StackInstanceSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'StackInstanceSummary', ], ], 'StackInstanceSummary' => [ 'type' => 'structure', 'members' => [ 'StackSetId' => [ 'shape' => 'StackSetId', ], 'Region' => [ 'shape' => 'Region', ], 'Account' => [ 'shape' => 'Account', ], 'StackId' => [ 'shape' => 'StackId', ], 'Status' => [ 'shape' => 'StackInstanceStatus', ], 'StatusReason' => [ 'shape' => 'Reason', ], ], ], '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', 'max' => 16384, 'min' => 1, ], 'StackPolicyDuringUpdateBody' => [ 'type' => 'string', 'max' => 16384, 'min' => 1, ], 'StackPolicyDuringUpdateURL' => [ 'type' => 'string', 'max' => 1350, 'min' => 1, ], 'StackPolicyURL' => [ 'type' => 'string', 'max' => 1350, 'min' => 1, ], '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', ], 'DriftInformation' => [ 'shape' => 'StackResourceDriftInformation', ], ], ], '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', ], 'DriftInformation' => [ 'shape' => 'StackResourceDriftInformation', ], ], ], 'StackResourceDrift' => [ 'type' => 'structure', 'required' => [ 'StackId', 'LogicalResourceId', 'ResourceType', 'StackResourceDriftStatus', 'Timestamp', ], 'members' => [ 'StackId' => [ 'shape' => 'StackId', ], 'LogicalResourceId' => [ 'shape' => 'LogicalResourceId', ], 'PhysicalResourceId' => [ 'shape' => 'PhysicalResourceId', ], 'PhysicalResourceIdContext' => [ 'shape' => 'PhysicalResourceIdContext', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], 'ExpectedProperties' => [ 'shape' => 'Properties', ], 'ActualProperties' => [ 'shape' => 'Properties', ], 'PropertyDifferences' => [ 'shape' => 'PropertyDifferences', ], 'StackResourceDriftStatus' => [ 'shape' => 'StackResourceDriftStatus', ], 'Timestamp' => [ 'shape' => 'Timestamp', ], ], ], 'StackResourceDriftInformation' => [ 'type' => 'structure', 'required' => [ 'StackResourceDriftStatus', ], 'members' => [ 'StackResourceDriftStatus' => [ 'shape' => 'StackResourceDriftStatus', ], 'LastCheckTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'StackResourceDriftInformationSummary' => [ 'type' => 'structure', 'required' => [ 'StackResourceDriftStatus', ], 'members' => [ 'StackResourceDriftStatus' => [ 'shape' => 'StackResourceDriftStatus', ], 'LastCheckTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'StackResourceDriftStatus' => [ 'type' => 'string', 'enum' => [ 'IN_SYNC', 'MODIFIED', 'DELETED', 'NOT_CHECKED', ], ], 'StackResourceDriftStatusFilters' => [ 'type' => 'list', 'member' => [ 'shape' => 'StackResourceDriftStatus', ], 'max' => 4, 'min' => 1, ], 'StackResourceDrifts' => [ 'type' => 'list', 'member' => [ 'shape' => 'StackResourceDrift', ], ], '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', ], 'DriftInformation' => [ 'shape' => 'StackResourceDriftInformationSummary', ], ], ], 'StackResources' => [ 'type' => 'list', 'member' => [ 'shape' => 'StackResource', ], ], 'StackSet' => [ 'type' => 'structure', 'members' => [ 'StackSetName' => [ 'shape' => 'StackSetName', ], 'StackSetId' => [ 'shape' => 'StackSetId', ], 'Description' => [ 'shape' => 'Description', ], 'Status' => [ 'shape' => 'StackSetStatus', ], 'TemplateBody' => [ 'shape' => 'TemplateBody', ], 'Parameters' => [ 'shape' => 'Parameters', ], 'Capabilities' => [ 'shape' => 'Capabilities', ], 'Tags' => [ 'shape' => 'Tags', ], 'StackSetARN' => [ 'shape' => 'StackSetARN', ], 'AdministrationRoleARN' => [ 'shape' => 'RoleARN', ], 'ExecutionRoleName' => [ 'shape' => 'ExecutionRoleName', ], ], ], 'StackSetARN' => [ 'type' => 'string', ], 'StackSetId' => [ 'type' => 'string', ], 'StackSetName' => [ 'type' => 'string', ], 'StackSetNameOrId' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][-a-zA-Z0-9]*(?::[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12})?', ], 'StackSetNotEmptyException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'StackSetNotEmptyException', 'httpStatusCode' => 409, 'senderFault' => true, ], 'exception' => true, ], 'StackSetNotFoundException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'StackSetNotFoundException', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'StackSetOperation' => [ 'type' => 'structure', 'members' => [ 'OperationId' => [ 'shape' => 'ClientRequestToken', ], 'StackSetId' => [ 'shape' => 'StackSetId', ], 'Action' => [ 'shape' => 'StackSetOperationAction', ], 'Status' => [ 'shape' => 'StackSetOperationStatus', ], 'OperationPreferences' => [ 'shape' => 'StackSetOperationPreferences', ], 'RetainStacks' => [ 'shape' => 'RetainStacksNullable', ], 'AdministrationRoleARN' => [ 'shape' => 'RoleARN', ], 'ExecutionRoleName' => [ 'shape' => 'ExecutionRoleName', ], 'CreationTimestamp' => [ 'shape' => 'Timestamp', ], 'EndTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'StackSetOperationAction' => [ 'type' => 'string', 'enum' => [ 'CREATE', 'UPDATE', 'DELETE', ], ], 'StackSetOperationPreferences' => [ 'type' => 'structure', 'members' => [ 'RegionOrder' => [ 'shape' => 'RegionList', ], 'FailureToleranceCount' => [ 'shape' => 'FailureToleranceCount', ], 'FailureTolerancePercentage' => [ 'shape' => 'FailureTolerancePercentage', ], 'MaxConcurrentCount' => [ 'shape' => 'MaxConcurrentCount', ], 'MaxConcurrentPercentage' => [ 'shape' => 'MaxConcurrentPercentage', ], ], ], 'StackSetOperationResultStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'RUNNING', 'SUCCEEDED', 'FAILED', 'CANCELLED', ], ], 'StackSetOperationResultSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'StackSetOperationResultSummary', ], ], 'StackSetOperationResultSummary' => [ 'type' => 'structure', 'members' => [ 'Account' => [ 'shape' => 'Account', ], 'Region' => [ 'shape' => 'Region', ], 'Status' => [ 'shape' => 'StackSetOperationResultStatus', ], 'StatusReason' => [ 'shape' => 'Reason', ], 'AccountGateResult' => [ 'shape' => 'AccountGateResult', ], ], ], 'StackSetOperationStatus' => [ 'type' => 'string', 'enum' => [ 'RUNNING', 'SUCCEEDED', 'FAILED', 'STOPPING', 'STOPPED', ], ], 'StackSetOperationSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'StackSetOperationSummary', ], ], 'StackSetOperationSummary' => [ 'type' => 'structure', 'members' => [ 'OperationId' => [ 'shape' => 'ClientRequestToken', ], 'Action' => [ 'shape' => 'StackSetOperationAction', ], 'Status' => [ 'shape' => 'StackSetOperationStatus', ], 'CreationTimestamp' => [ 'shape' => 'Timestamp', ], 'EndTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'StackSetStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DELETED', ], ], 'StackSetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'StackSetSummary', ], ], 'StackSetSummary' => [ 'type' => 'structure', 'members' => [ 'StackSetName' => [ 'shape' => 'StackSetName', ], 'StackSetId' => [ 'shape' => 'StackSetId', ], 'Description' => [ 'shape' => 'Description', ], 'Status' => [ 'shape' => 'StackSetStatus', ], ], ], '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', 'REVIEW_IN_PROGRESS', ], ], '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', ], 'ParentId' => [ 'shape' => 'StackId', ], 'RootId' => [ 'shape' => 'StackId', ], 'DriftInformation' => [ 'shape' => 'StackDriftInformationSummary', ], ], ], 'Stacks' => [ 'type' => 'list', 'member' => [ 'shape' => 'Stack', ], ], 'StageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TemplateStage', ], ], 'StaleRequestException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'StaleRequestException', 'httpStatusCode' => 409, 'senderFault' => true, ], 'exception' => true, ], 'StopStackSetOperationInput' => [ 'type' => 'structure', 'required' => [ 'StackSetName', 'OperationId', ], 'members' => [ 'StackSetName' => [ 'shape' => 'StackSetName', ], 'OperationId' => [ 'shape' => 'ClientRequestToken', ], ], ], 'StopStackSetOperationOutput' => [ 'type' => 'structure', 'members' => [], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'Tags' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 50, ], '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', ], ], 'TemplateStage' => [ 'type' => 'string', 'enum' => [ 'Original', 'Processed', ], ], 'TemplateURL' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'TimeoutMinutes' => [ 'type' => 'integer', 'min' => 1, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TokenAlreadyExistsException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'TokenAlreadyExistsException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'TransformName' => [ 'type' => 'string', ], 'TransformsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransformName', ], ], 'Type' => [ 'type' => 'string', ], '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', ], 'ResourceTypes' => [ 'shape' => 'ResourceTypes', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], 'RollbackConfiguration' => [ 'shape' => 'RollbackConfiguration', ], 'StackPolicyBody' => [ 'shape' => 'StackPolicyBody', ], 'StackPolicyURL' => [ 'shape' => 'StackPolicyURL', ], 'NotificationARNs' => [ 'shape' => 'NotificationARNs', ], 'Tags' => [ 'shape' => 'Tags', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', ], ], ], 'UpdateStackInstancesInput' => [ 'type' => 'structure', 'required' => [ 'StackSetName', 'Accounts', 'Regions', ], 'members' => [ 'StackSetName' => [ 'shape' => 'StackSetNameOrId', ], 'Accounts' => [ 'shape' => 'AccountList', ], 'Regions' => [ 'shape' => 'RegionList', ], 'ParameterOverrides' => [ 'shape' => 'Parameters', ], 'OperationPreferences' => [ 'shape' => 'StackSetOperationPreferences', ], 'OperationId' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'UpdateStackInstancesOutput' => [ 'type' => 'structure', 'members' => [ 'OperationId' => [ 'shape' => 'ClientRequestToken', ], ], ], 'UpdateStackOutput' => [ 'type' => 'structure', 'members' => [ 'StackId' => [ 'shape' => 'StackId', ], ], ], 'UpdateStackSetInput' => [ 'type' => 'structure', 'required' => [ 'StackSetName', ], 'members' => [ 'StackSetName' => [ 'shape' => 'StackSetName', ], 'Description' => [ 'shape' => 'Description', ], 'TemplateBody' => [ 'shape' => 'TemplateBody', ], 'TemplateURL' => [ 'shape' => 'TemplateURL', ], 'UsePreviousTemplate' => [ 'shape' => 'UsePreviousTemplate', ], 'Parameters' => [ 'shape' => 'Parameters', ], 'Capabilities' => [ 'shape' => 'Capabilities', ], 'Tags' => [ 'shape' => 'Tags', ], 'OperationPreferences' => [ 'shape' => 'StackSetOperationPreferences', ], 'AdministrationRoleARN' => [ 'shape' => 'RoleARN', ], 'ExecutionRoleName' => [ 'shape' => 'ExecutionRoleName', ], 'OperationId' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'Accounts' => [ 'shape' => 'AccountList', ], 'Regions' => [ 'shape' => 'RegionList', ], ], ], 'UpdateStackSetOutput' => [ 'type' => 'structure', 'members' => [ 'OperationId' => [ 'shape' => 'ClientRequestToken', ], ], ], 'UpdateTerminationProtectionInput' => [ 'type' => 'structure', 'required' => [ 'EnableTerminationProtection', 'StackName', ], 'members' => [ 'EnableTerminationProtection' => [ 'shape' => 'EnableTerminationProtection', ], 'StackName' => [ 'shape' => 'StackNameOrId', ], ], ], 'UpdateTerminationProtectionOutput' => [ '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', ], 'DeclaredTransforms' => [ 'shape' => 'TransformsList', ], ], ], 'Value' => [ 'type' => 'string', ], 'Version' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/cloudformation/2010-05-15/paginators-1.json.php b/lib/aws/Aws/data/cloudformation/2010-05-15/paginators-1.json.php new file mode 100644 index 0000000..cace8d3 --- /dev/null +++ b/lib/aws/Aws/data/cloudformation/2010-05-15/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudformation/2010-05-15/paginators-1.json +return [ 'pagination' => [ 'DescribeStackEvents' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'result_key' => 'StackEvents', ], 'DescribeStackResourceDrifts' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'DescribeStackResources' => [ 'result_key' => 'StackResources', ], 'DescribeStacks' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'result_key' => 'Stacks', ], 'ListExports' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'result_key' => 'Exports', ], 'ListImports' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'result_key' => 'Imports', ], '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/Aws/data/cloudformation/2010-05-15/waiters-2.json.php b/lib/aws/Aws/data/cloudformation/2010-05-15/waiters-2.json.php new file mode 100644 index 0000000..28121af --- /dev/null +++ b/lib/aws/Aws/data/cloudformation/2010-05-15/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudformation/2010-05-15/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'StackExists' => [ 'delay' => 5, 'operation' => 'DescribeStacks', 'maxAttempts' => 20, 'acceptors' => [ [ 'matcher' => 'status', 'expected' => 200, 'state' => 'success', ], [ 'matcher' => 'error', 'expected' => 'ValidationError', 'state' => 'retry', ], ], ], 'StackCreateComplete' => [ 'delay' => 30, 'operation' => 'DescribeStacks', 'maxAttempts' => 120, 'description' => 'Wait until stack status is CREATE_COMPLETE.', 'acceptors' => [ [ 'argument' => 'Stacks[].StackStatus', 'expected' => 'CREATE_COMPLETE', 'matcher' => 'pathAll', 'state' => 'success', ], [ 'argument' => 'Stacks[].StackStatus', 'expected' => 'CREATE_FAILED', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'Stacks[].StackStatus', 'expected' => 'DELETE_COMPLETE', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'Stacks[].StackStatus', 'expected' => 'DELETE_FAILED', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'Stacks[].StackStatus', 'expected' => 'ROLLBACK_FAILED', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'Stacks[].StackStatus', 'expected' => 'ROLLBACK_COMPLETE', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'expected' => 'ValidationError', 'matcher' => 'error', 'state' => 'failure', ], ], ], 'StackDeleteComplete' => [ 'delay' => 30, 'operation' => 'DescribeStacks', 'maxAttempts' => 120, 'description' => 'Wait until stack status is DELETE_COMPLETE.', 'acceptors' => [ [ 'argument' => 'Stacks[].StackStatus', 'expected' => 'DELETE_COMPLETE', 'matcher' => 'pathAll', 'state' => 'success', ], [ 'expected' => 'ValidationError', 'matcher' => 'error', 'state' => 'success', ], [ 'argument' => 'Stacks[].StackStatus', 'expected' => 'DELETE_FAILED', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'Stacks[].StackStatus', 'expected' => 'CREATE_FAILED', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'Stacks[].StackStatus', 'expected' => 'ROLLBACK_FAILED', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'Stacks[].StackStatus', 'expected' => 'UPDATE_ROLLBACK_FAILED', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'Stacks[].StackStatus', 'expected' => 'UPDATE_ROLLBACK_IN_PROGRESS', 'matcher' => 'pathAny', 'state' => 'failure', ], ], ], 'StackUpdateComplete' => [ 'delay' => 30, 'maxAttempts' => 120, 'operation' => 'DescribeStacks', 'description' => 'Wait until stack status is UPDATE_COMPLETE.', 'acceptors' => [ [ 'argument' => 'Stacks[].StackStatus', 'expected' => 'UPDATE_COMPLETE', 'matcher' => 'pathAll', 'state' => 'success', ], [ 'expected' => 'UPDATE_FAILED', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'Stacks[].StackStatus', ], [ 'argument' => 'Stacks[].StackStatus', 'expected' => 'UPDATE_ROLLBACK_FAILED', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'expected' => 'UPDATE_ROLLBACK_COMPLETE', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'Stacks[].StackStatus', ], [ 'expected' => 'ValidationError', 'matcher' => 'error', 'state' => 'failure', ], ], ], 'ChangeSetCreateComplete' => [ 'delay' => 30, 'operation' => 'DescribeChangeSet', 'maxAttempts' => 120, 'description' => 'Wait until change set status is CREATE_COMPLETE.', 'acceptors' => [ [ 'argument' => 'Status', 'expected' => 'CREATE_COMPLETE', 'matcher' => 'path', 'state' => 'success', ], [ 'argument' => 'Status', 'expected' => 'FAILED', 'matcher' => 'path', 'state' => 'failure', ], [ 'expected' => 'ValidationError', 'matcher' => 'error', 'state' => 'failure', ], ], ], ],]; diff --git a/lib/aws/Aws/data/cloudfront/2015-07-27/api-2.json.php b/lib/aws/Aws/data/cloudfront/2015-07-27/api-2.json.php new file mode 100644 index 0000000..cae91c5 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2015-07-27/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2015-07-27/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-07-27', 'endpointPrefix' => 'cloudfront', 'globalEndpoint' => 'cloudfront.amazonaws.com', 'protocol' => 'rest-xml', 'serviceAbbreviation' => 'CloudFront', 'serviceFullName' => 'Amazon CloudFront', 'signatureVersion' => 'v4', ], 'operations' => [ 'CreateCloudFrontOriginAccessIdentity' => [ 'name' => 'CreateCloudFrontOriginAccessIdentity2015_07_27', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-07-27/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' => 'CreateDistribution2015_07_27', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-07-27/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' => 'InvalidMinimumProtocolVersion', '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, ], [ 'shape' => 'InvalidTTLOrder', 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], [ 'shape' => 'InvalidWebACLId', 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], ], ], 'CreateInvalidation' => [ 'name' => 'CreateInvalidation2015_07_27', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-07-27/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' => 'CreateStreamingDistribution2015_07_27', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-07-27/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' => 'DeleteCloudFrontOriginAccessIdentity2015_07_27', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2015-07-27/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' => 'DeleteDistribution2015_07_27', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2015-07-27/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' => 'DeleteStreamingDistribution2015_07_27', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2015-07-27/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' => 'GetCloudFrontOriginAccessIdentity2015_07_27', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-07-27/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' => 'GetCloudFrontOriginAccessIdentityConfig2015_07_27', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-07-27/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' => 'GetDistribution2015_07_27', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-07-27/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' => 'GetDistributionConfig2015_07_27', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-07-27/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' => 'GetInvalidation2015_07_27', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-07-27/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' => 'GetStreamingDistribution2015_07_27', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-07-27/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' => 'GetStreamingDistributionConfig2015_07_27', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-07-27/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' => 'ListCloudFrontOriginAccessIdentities2015_07_27', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-07-27/origin-access-identity/cloudfront', ], 'input' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesRequest', ], 'output' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], ], ], 'ListDistributions' => [ 'name' => 'ListDistributions2015_07_27', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-07-27/distribution', ], 'input' => [ 'shape' => 'ListDistributionsRequest', ], 'output' => [ 'shape' => 'ListDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], ], ], 'ListDistributionsByWebACLId' => [ 'name' => 'ListDistributionsByWebACLId2015_07_27', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-07-27/distributionsByWebACLId/{WebACLId}', ], 'input' => [ 'shape' => 'ListDistributionsByWebACLIdRequest', ], 'output' => [ 'shape' => 'ListDistributionsByWebACLIdResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], [ 'shape' => 'InvalidWebACLId', 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], ], ], 'ListInvalidations' => [ 'name' => 'ListInvalidations2015_07_27', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-07-27/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' => 'ListStreamingDistributions2015_07_27', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-07-27/streaming-distribution', ], 'input' => [ 'shape' => 'ListStreamingDistributionsRequest', ], 'output' => [ 'shape' => 'ListStreamingDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], ], ], 'UpdateCloudFrontOriginAccessIdentity' => [ 'name' => 'UpdateCloudFrontOriginAccessIdentity2015_07_27', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2015-07-27/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' => 'UpdateDistribution2015_07_27', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2015-07-27/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' => 'InvalidMinimumProtocolVersion', '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' => 'InvalidTTLOrder', 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], [ 'shape' => 'InvalidWebACLId', 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], ], ], 'UpdateStreamingDistribution' => [ 'name' => 'UpdateStreamingDistribution2015_07_27', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2015-07-27/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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], ], ], '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', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2015-07-27/', ], ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2015-07-27/', ], ], ], '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', 'locationName' => 'InvalidationBatch', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2015-07-27/', ], ], ], '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', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2015-07-27/', ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], ], ], 'DeleteCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], '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', ], 'WebACLId' => [ 'shape' => 'string', ], ], ], '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', 'WebACLId', ], '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', ], 'WebACLId' => [ 'shape' => 'string', ], ], ], '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', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityConfigResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentityConfig' => [ 'shape' => 'CloudFrontOriginAccessIdentityConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentityConfig', ], 'GetCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentity' => [ 'shape' => 'CloudFrontOriginAccessIdentity', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentity', ], 'GetDistributionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'DistributionConfig' => [ 'shape' => 'DistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'DistributionConfig', ], 'GetDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetStreamingDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'StreamingDistributionConfig', ], 'GetStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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, ], 'InvalidMinimumProtocolVersion' => [ '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, ], 'InvalidTTLOrder' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidViewerCertificate' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidWebACLId' => [ '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', ], 'ListDistributionsByWebACLIdRequest' => [ 'type' => 'structure', 'required' => [ 'WebACLId', ], 'members' => [ 'Marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'MaxItems', ], 'WebACLId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'WebACLId', ], ], ], 'ListDistributionsByWebACLIdResult' => [ 'type' => 'structure', 'members' => [ 'DistributionList' => [ 'shape' => 'DistributionList', ], ], 'payload' => 'DistributionList', ], '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', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2015-07-27/', ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2015-07-27/', ], ], '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', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2015-07-27/', ], ], '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/Aws/data/cloudfront/2015-07-27/paginators-1.json.php b/lib/aws/Aws/data/cloudfront/2015-07-27/paginators-1.json.php new file mode 100644 index 0000000..39c0229 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2015-07-27/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2015-07-27/paginators-1.json +return [ 'pagination' => [ 'ListCloudFrontOriginAccessIdentities' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'CloudFrontOriginAccessIdentityList.IsTruncated', 'output_token' => 'CloudFrontOriginAccessIdentityList.NextMarker', 'result_key' => 'CloudFrontOriginAccessIdentityList.Items', ], 'ListDistributions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'DistributionList.IsTruncated', 'output_token' => 'DistributionList.NextMarker', 'result_key' => 'DistributionList.Items', ], 'ListInvalidations' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'InvalidationList.IsTruncated', 'output_token' => 'InvalidationList.NextMarker', 'result_key' => 'InvalidationList.Items', ], 'ListStreamingDistributions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'StreamingDistributionList.IsTruncated', 'output_token' => 'StreamingDistributionList.NextMarker', 'result_key' => 'StreamingDistributionList.Items', ], ],]; diff --git a/lib/aws/Aws/data/cloudfront/2015-07-27/waiters-2.json.php b/lib/aws/Aws/data/cloudfront/2015-07-27/waiters-2.json.php new file mode 100644 index 0000000..6bc3c9e --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2015-07-27/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2015-07-27/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'DistributionDeployed' => [ 'acceptors' => [ [ 'argument' => 'Distribution.Status', 'expected' => 'Deployed', 'matcher' => 'path', 'state' => 'success', ], ], 'delay' => 60, 'description' => 'Wait until a distribution is deployed.', 'maxAttempts' => 25, 'operation' => 'GetDistribution', ], 'InvalidationCompleted' => [ 'acceptors' => [ [ 'argument' => 'Invalidation.Status', 'expected' => 'Completed', 'matcher' => 'path', 'state' => 'success', ], ], 'delay' => 20, 'description' => 'Wait until an invalidation has completed.', 'maxAttempts' => 30, 'operation' => 'GetInvalidation', ], 'StreamingDistributionDeployed' => [ 'acceptors' => [ [ 'argument' => 'StreamingDistribution.Status', 'expected' => 'Deployed', 'matcher' => 'path', 'state' => 'success', ], ], 'delay' => 60, 'description' => 'Wait until a streaming distribution is deployed.', 'maxAttempts' => 25, 'operation' => 'GetStreamingDistribution', ], ],]; diff --git a/lib/aws/Aws/data/cloudfront/2016-01-28/api-2.json.php b/lib/aws/Aws/data/cloudfront/2016-01-28/api-2.json.php new file mode 100644 index 0000000..c327516 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-01-28/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-01-28/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'uid' => 'cloudfront-2016-01-28', 'apiVersion' => '2016-01-28', 'endpointPrefix' => 'cloudfront', 'globalEndpoint' => 'cloudfront.amazonaws.com', 'protocol' => 'rest-xml', 'serviceAbbreviation' => 'CloudFront', 'serviceFullName' => 'Amazon CloudFront', 'signatureVersion' => 'v4', ], 'operations' => [ 'CreateCloudFrontOriginAccessIdentity' => [ 'name' => 'CreateCloudFrontOriginAccessIdentity2016_01_28', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-01-28/origin-access-identity/cloudfront', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'CreateCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'CloudFrontOriginAccessIdentityAlreadyExists', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyCloudFrontOriginAccessIdentities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateDistribution' => [ 'name' => 'CreateDistribution2016_01_28', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-01-28/distribution', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDistributionRequest', ], 'output' => [ 'shape' => 'CreateDistributionResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'DistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'TooManyDistributions', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidProtocolSettings', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], ], ], 'CreateInvalidation' => [ 'name' => 'CreateInvalidation2016_01_28', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-01-28/distribution/{DistributionId}/invalidation', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateInvalidationRequest', ], 'output' => [ 'shape' => 'CreateInvalidationResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'BatchTooLarge', ], [ 'shape' => 'TooManyInvalidationsInProgress', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateStreamingDistribution' => [ 'name' => 'CreateStreamingDistribution2016_01_28', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-01-28/streaming-distribution', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStreamingDistributionRequest', ], 'output' => [ 'shape' => 'CreateStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'StreamingDistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'TooManyStreamingDistributions', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'DeleteCloudFrontOriginAccessIdentity' => [ 'name' => 'DeleteCloudFrontOriginAccessIdentity2016_01_28', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2016-01-28/origin-access-identity/cloudfront/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteCloudFrontOriginAccessIdentityRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'CloudFrontOriginAccessIdentityInUse', ], ], ], 'DeleteDistribution' => [ 'name' => 'DeleteDistribution2016_01_28', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2016-01-28/distribution/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDistributionRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'DistributionNotDisabled', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'DeleteStreamingDistribution' => [ 'name' => 'DeleteStreamingDistribution2016_01_28', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2016-01-28/streaming-distribution/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteStreamingDistributionRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'StreamingDistributionNotDisabled', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'GetCloudFrontOriginAccessIdentity' => [ 'name' => 'GetCloudFrontOriginAccessIdentity2016_01_28', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-01-28/origin-access-identity/cloudfront/{Id}', ], 'input' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetCloudFrontOriginAccessIdentityConfig' => [ 'name' => 'GetCloudFrontOriginAccessIdentityConfig2016_01_28', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-01-28/origin-access-identity/cloudfront/{Id}/config', ], 'input' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityConfigRequest', ], 'output' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetDistribution' => [ 'name' => 'GetDistribution2016_01_28', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-01-28/distribution/{Id}', ], 'input' => [ 'shape' => 'GetDistributionRequest', ], 'output' => [ 'shape' => 'GetDistributionResult', ], 'errors' => [ [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetDistributionConfig' => [ 'name' => 'GetDistributionConfig2016_01_28', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-01-28/distribution/{Id}/config', ], 'input' => [ 'shape' => 'GetDistributionConfigRequest', ], 'output' => [ 'shape' => 'GetDistributionConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetInvalidation' => [ 'name' => 'GetInvalidation2016_01_28', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-01-28/distribution/{DistributionId}/invalidation/{Id}', ], 'input' => [ 'shape' => 'GetInvalidationRequest', ], 'output' => [ 'shape' => 'GetInvalidationResult', ], 'errors' => [ [ 'shape' => 'NoSuchInvalidation', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetStreamingDistribution' => [ 'name' => 'GetStreamingDistribution2016_01_28', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-01-28/streaming-distribution/{Id}', ], 'input' => [ 'shape' => 'GetStreamingDistributionRequest', ], 'output' => [ 'shape' => 'GetStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetStreamingDistributionConfig' => [ 'name' => 'GetStreamingDistributionConfig2016_01_28', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-01-28/streaming-distribution/{Id}/config', ], 'input' => [ 'shape' => 'GetStreamingDistributionConfigRequest', ], 'output' => [ 'shape' => 'GetStreamingDistributionConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'ListCloudFrontOriginAccessIdentities' => [ 'name' => 'ListCloudFrontOriginAccessIdentities2016_01_28', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-01-28/origin-access-identity/cloudfront', ], 'input' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesRequest', ], 'output' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListDistributions' => [ 'name' => 'ListDistributions2016_01_28', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-01-28/distribution', ], 'input' => [ 'shape' => 'ListDistributionsRequest', ], 'output' => [ 'shape' => 'ListDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListDistributionsByWebACLId' => [ 'name' => 'ListDistributionsByWebACLId2016_01_28', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-01-28/distributionsByWebACLId/{WebACLId}', ], 'input' => [ 'shape' => 'ListDistributionsByWebACLIdRequest', ], 'output' => [ 'shape' => 'ListDistributionsByWebACLIdResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidWebACLId', ], ], ], 'ListInvalidations' => [ 'name' => 'ListInvalidations2016_01_28', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-01-28/distribution/{DistributionId}/invalidation', ], 'input' => [ 'shape' => 'ListInvalidationsRequest', ], 'output' => [ 'shape' => 'ListInvalidationsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'ListStreamingDistributions' => [ 'name' => 'ListStreamingDistributions2016_01_28', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-01-28/streaming-distribution', ], 'input' => [ 'shape' => 'ListStreamingDistributionsRequest', ], 'output' => [ 'shape' => 'ListStreamingDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'UpdateCloudFrontOriginAccessIdentity' => [ 'name' => 'UpdateCloudFrontOriginAccessIdentity2016_01_28', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2016-01-28/origin-access-identity/cloudfront/{Id}/config', ], 'input' => [ 'shape' => 'UpdateCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'UpdateCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'UpdateDistribution' => [ 'name' => 'UpdateDistribution2016_01_28', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2016-01-28/distribution/{Id}/config', ], 'input' => [ 'shape' => 'UpdateDistributionRequest', ], 'output' => [ 'shape' => 'UpdateDistributionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], ], ], 'UpdateStreamingDistribution' => [ 'name' => 'UpdateStreamingDistribution2016_01_28', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2016-01-28/streaming-distribution/{Id}/config', ], 'input' => [ 'shape' => 'UpdateStreamingDistributionRequest', ], 'output' => [ 'shape' => 'UpdateStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InconsistentQuantities', ], ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], 'Compress' => [ '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', ], ], ], 'CertificateSource' => [ 'type' => 'string', 'enum' => [ 'cloudfront', 'iam', 'acm', ], ], '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', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-01-28/', ], ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-01-28/', ], ], ], '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', 'locationName' => 'InvalidationBatch', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-01-28/', ], ], ], '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', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-01-28/', ], ], ], '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', ], ], ], 'CustomHeaders' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'OriginCustomHeadersList', ], ], ], 'CustomOriginConfig' => [ 'type' => 'structure', 'required' => [ 'HTTPPort', 'HTTPSPort', 'OriginProtocolPolicy', ], 'members' => [ 'HTTPPort' => [ 'shape' => 'integer', ], 'HTTPSPort' => [ 'shape' => 'integer', ], 'OriginProtocolPolicy' => [ 'shape' => 'OriginProtocolPolicy', ], 'OriginSslProtocols' => [ 'shape' => 'OriginSslProtocols', ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], 'Compress' => [ 'shape' => 'boolean', ], ], ], 'DeleteCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], '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', ], 'WebACLId' => [ 'shape' => 'string', ], ], ], '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', 'WebACLId', ], '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', ], 'WebACLId' => [ 'shape' => 'string', ], ], ], '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', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityConfigResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentityConfig' => [ 'shape' => 'CloudFrontOriginAccessIdentityConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentityConfig', ], 'GetCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentity' => [ 'shape' => 'CloudFrontOriginAccessIdentity', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentity', ], 'GetDistributionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'DistributionConfig' => [ 'shape' => 'DistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'DistributionConfig', ], 'GetDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetStreamingDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'StreamingDistributionConfig', ], 'GetStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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, ], 'InvalidMinimumProtocolVersion' => [ '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, ], 'InvalidTTLOrder' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidViewerCertificate' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidWebACLId' => [ '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', ], 'ListDistributionsByWebACLIdRequest' => [ 'type' => 'structure', 'required' => [ 'WebACLId', ], 'members' => [ 'Marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'MaxItems', ], 'WebACLId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'WebACLId', ], ], ], 'ListDistributionsByWebACLIdResult' => [ 'type' => 'structure', 'members' => [ 'DistributionList' => [ 'shape' => 'DistributionList', ], ], 'payload' => 'DistributionList', ], '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', ], 'CustomHeaders' => [ 'shape' => 'CustomHeaders', ], 'S3OriginConfig' => [ 'shape' => 'S3OriginConfig', ], 'CustomOriginConfig' => [ 'shape' => 'CustomOriginConfig', ], ], ], 'OriginCustomHeader' => [ 'type' => 'structure', 'required' => [ 'HeaderName', 'HeaderValue', ], 'members' => [ 'HeaderName' => [ 'shape' => 'string', ], 'HeaderValue' => [ 'shape' => 'string', ], ], ], 'OriginCustomHeadersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OriginCustomHeader', 'locationName' => 'OriginCustomHeader', ], ], 'OriginList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Origin', 'locationName' => 'Origin', ], 'min' => 1, ], 'OriginProtocolPolicy' => [ 'type' => 'string', 'enum' => [ 'http-only', 'match-viewer', 'https-only', ], ], 'OriginSslProtocols' => [ 'type' => 'structure', 'required' => [ 'Quantity', 'Items', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'SslProtocolsList', ], ], ], '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', ], ], 'SslProtocol' => [ 'type' => 'string', 'enum' => [ 'SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2', ], ], 'SslProtocolsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SslProtocol', 'locationName' => 'SslProtocol', ], ], '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, ], 'TooManyOriginCustomHeaders' => [ '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', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-01-28/', ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-01-28/', ], ], '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', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-01-28/', ], ], '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' => [ 'CloudFrontDefaultCertificate' => [ 'shape' => 'boolean', ], 'IAMCertificateId' => [ 'shape' => 'string', ], 'ACMCertificateArn' => [ 'shape' => 'string', ], 'SSLSupportMethod' => [ 'shape' => 'SSLSupportMethod', ], 'MinimumProtocolVersion' => [ 'shape' => 'MinimumProtocolVersion', ], 'Certificate' => [ 'shape' => 'string', 'deprecated' => true, ], 'CertificateSource' => [ 'shape' => 'CertificateSource', 'deprecated' => true, ], ], ], '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/Aws/data/cloudfront/2016-01-28/paginators-1.json.php b/lib/aws/Aws/data/cloudfront/2016-01-28/paginators-1.json.php new file mode 100644 index 0000000..c9fb6b7 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-01-28/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-01-28/paginators-1.json +return [ '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/Aws/data/cloudfront/2016-01-28/waiters-2.json.php b/lib/aws/Aws/data/cloudfront/2016-01-28/waiters-2.json.php new file mode 100644 index 0000000..7642b31 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-01-28/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-01-28/waiters-2.json +return [ '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/Aws/data/cloudfront/2016-08-01/api-2.json.php b/lib/aws/Aws/data/cloudfront/2016-08-01/api-2.json.php new file mode 100644 index 0000000..3ba9773 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-08-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-08-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'uid' => 'cloudfront-2016-08-01', 'apiVersion' => '2016-08-01', 'endpointPrefix' => 'cloudfront', 'globalEndpoint' => 'cloudfront.amazonaws.com', 'protocol' => 'rest-xml', 'serviceAbbreviation' => 'CloudFront', 'serviceFullName' => 'Amazon CloudFront', 'signatureVersion' => 'v4', ], 'operations' => [ 'CreateCloudFrontOriginAccessIdentity' => [ 'name' => 'CreateCloudFrontOriginAccessIdentity2016_08_01', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-08-01/origin-access-identity/cloudfront', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'CreateCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'CloudFrontOriginAccessIdentityAlreadyExists', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyCloudFrontOriginAccessIdentities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateDistribution' => [ 'name' => 'CreateDistribution2016_08_01', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-08-01/distribution', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDistributionRequest', ], 'output' => [ 'shape' => 'CreateDistributionResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'DistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'TooManyDistributions', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidProtocolSettings', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], ], ], 'CreateDistributionWithTags' => [ 'name' => 'CreateDistributionWithTags2016_08_01', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-08-01/distribution?WithTags', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDistributionWithTagsRequest', ], 'output' => [ 'shape' => 'CreateDistributionWithTagsResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'DistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'TooManyDistributions', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidProtocolSettings', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'InvalidTagging', ], ], ], 'CreateInvalidation' => [ 'name' => 'CreateInvalidation2016_08_01', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-08-01/distribution/{DistributionId}/invalidation', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateInvalidationRequest', ], 'output' => [ 'shape' => 'CreateInvalidationResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'BatchTooLarge', ], [ 'shape' => 'TooManyInvalidationsInProgress', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateStreamingDistribution' => [ 'name' => 'CreateStreamingDistribution2016_08_01', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-08-01/streaming-distribution', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStreamingDistributionRequest', ], 'output' => [ 'shape' => 'CreateStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'StreamingDistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'TooManyStreamingDistributions', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateStreamingDistributionWithTags' => [ 'name' => 'CreateStreamingDistributionWithTags2016_08_01', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-08-01/streaming-distribution?WithTags', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStreamingDistributionWithTagsRequest', ], 'output' => [ 'shape' => 'CreateStreamingDistributionWithTagsResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'StreamingDistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'TooManyStreamingDistributions', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidTagging', ], ], ], 'DeleteCloudFrontOriginAccessIdentity' => [ 'name' => 'DeleteCloudFrontOriginAccessIdentity2016_08_01', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2016-08-01/origin-access-identity/cloudfront/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteCloudFrontOriginAccessIdentityRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'CloudFrontOriginAccessIdentityInUse', ], ], ], 'DeleteDistribution' => [ 'name' => 'DeleteDistribution2016_08_01', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2016-08-01/distribution/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDistributionRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'DistributionNotDisabled', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'DeleteStreamingDistribution' => [ 'name' => 'DeleteStreamingDistribution2016_08_01', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2016-08-01/streaming-distribution/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteStreamingDistributionRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'StreamingDistributionNotDisabled', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'GetCloudFrontOriginAccessIdentity' => [ 'name' => 'GetCloudFrontOriginAccessIdentity2016_08_01', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-01/origin-access-identity/cloudfront/{Id}', ], 'input' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetCloudFrontOriginAccessIdentityConfig' => [ 'name' => 'GetCloudFrontOriginAccessIdentityConfig2016_08_01', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-01/origin-access-identity/cloudfront/{Id}/config', ], 'input' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityConfigRequest', ], 'output' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetDistribution' => [ 'name' => 'GetDistribution2016_08_01', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-01/distribution/{Id}', ], 'input' => [ 'shape' => 'GetDistributionRequest', ], 'output' => [ 'shape' => 'GetDistributionResult', ], 'errors' => [ [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetDistributionConfig' => [ 'name' => 'GetDistributionConfig2016_08_01', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-01/distribution/{Id}/config', ], 'input' => [ 'shape' => 'GetDistributionConfigRequest', ], 'output' => [ 'shape' => 'GetDistributionConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetInvalidation' => [ 'name' => 'GetInvalidation2016_08_01', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-01/distribution/{DistributionId}/invalidation/{Id}', ], 'input' => [ 'shape' => 'GetInvalidationRequest', ], 'output' => [ 'shape' => 'GetInvalidationResult', ], 'errors' => [ [ 'shape' => 'NoSuchInvalidation', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetStreamingDistribution' => [ 'name' => 'GetStreamingDistribution2016_08_01', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-01/streaming-distribution/{Id}', ], 'input' => [ 'shape' => 'GetStreamingDistributionRequest', ], 'output' => [ 'shape' => 'GetStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetStreamingDistributionConfig' => [ 'name' => 'GetStreamingDistributionConfig2016_08_01', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-01/streaming-distribution/{Id}/config', ], 'input' => [ 'shape' => 'GetStreamingDistributionConfigRequest', ], 'output' => [ 'shape' => 'GetStreamingDistributionConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'ListCloudFrontOriginAccessIdentities' => [ 'name' => 'ListCloudFrontOriginAccessIdentities2016_08_01', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-01/origin-access-identity/cloudfront', ], 'input' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesRequest', ], 'output' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListDistributions' => [ 'name' => 'ListDistributions2016_08_01', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-01/distribution', ], 'input' => [ 'shape' => 'ListDistributionsRequest', ], 'output' => [ 'shape' => 'ListDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListDistributionsByWebACLId' => [ 'name' => 'ListDistributionsByWebACLId2016_08_01', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-01/distributionsByWebACLId/{WebACLId}', ], 'input' => [ 'shape' => 'ListDistributionsByWebACLIdRequest', ], 'output' => [ 'shape' => 'ListDistributionsByWebACLIdResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidWebACLId', ], ], ], 'ListInvalidations' => [ 'name' => 'ListInvalidations2016_08_01', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-01/distribution/{DistributionId}/invalidation', ], 'input' => [ 'shape' => 'ListInvalidationsRequest', ], 'output' => [ 'shape' => 'ListInvalidationsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'ListStreamingDistributions' => [ 'name' => 'ListStreamingDistributions2016_08_01', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-01/streaming-distribution', ], 'input' => [ 'shape' => 'ListStreamingDistributionsRequest', ], 'output' => [ 'shape' => 'ListStreamingDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource2016_08_01', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-01/tagging', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'TagResource' => [ 'name' => 'TagResource2016_08_01', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-08-01/tagging?Operation=Tag', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource2016_08_01', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-08-01/tagging?Operation=Untag', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'UpdateCloudFrontOriginAccessIdentity' => [ 'name' => 'UpdateCloudFrontOriginAccessIdentity2016_08_01', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2016-08-01/origin-access-identity/cloudfront/{Id}/config', ], 'input' => [ 'shape' => 'UpdateCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'UpdateCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'UpdateDistribution' => [ 'name' => 'UpdateDistribution2016_08_01', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2016-08-01/distribution/{Id}/config', ], 'input' => [ 'shape' => 'UpdateDistributionRequest', ], 'output' => [ 'shape' => 'UpdateDistributionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], ], ], 'UpdateStreamingDistribution' => [ 'name' => 'UpdateStreamingDistribution2016_08_01', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2016-08-01/streaming-distribution/{Id}/config', ], 'input' => [ 'shape' => 'UpdateStreamingDistributionRequest', ], 'output' => [ 'shape' => 'UpdateStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InconsistentQuantities', ], ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], 'Compress' => [ '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', ], ], ], 'CertificateSource' => [ 'type' => 'string', 'enum' => [ 'cloudfront', 'iam', 'acm', ], ], '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', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-01/', ], ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-01/', ], ], ], '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', ], 'CreateDistributionWithTagsRequest' => [ 'type' => 'structure', 'required' => [ 'DistributionConfigWithTags', ], 'members' => [ 'DistributionConfigWithTags' => [ 'shape' => 'DistributionConfigWithTags', 'locationName' => 'DistributionConfigWithTags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-01/', ], ], ], 'payload' => 'DistributionConfigWithTags', ], 'CreateDistributionWithTagsResult' => [ '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', 'locationName' => 'InvalidationBatch', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-01/', ], ], ], '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', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-01/', ], ], ], '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', ], 'CreateStreamingDistributionWithTagsRequest' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfigWithTags', ], 'members' => [ 'StreamingDistributionConfigWithTags' => [ 'shape' => 'StreamingDistributionConfigWithTags', 'locationName' => 'StreamingDistributionConfigWithTags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-01/', ], ], ], 'payload' => 'StreamingDistributionConfigWithTags', ], 'CreateStreamingDistributionWithTagsResult' => [ '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', ], ], ], 'CustomHeaders' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'OriginCustomHeadersList', ], ], ], 'CustomOriginConfig' => [ 'type' => 'structure', 'required' => [ 'HTTPPort', 'HTTPSPort', 'OriginProtocolPolicy', ], 'members' => [ 'HTTPPort' => [ 'shape' => 'integer', ], 'HTTPSPort' => [ 'shape' => 'integer', ], 'OriginProtocolPolicy' => [ 'shape' => 'OriginProtocolPolicy', ], 'OriginSslProtocols' => [ 'shape' => 'OriginSslProtocols', ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], 'Compress' => [ 'shape' => 'boolean', ], ], ], 'DeleteCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'Distribution' => [ 'type' => 'structure', 'required' => [ 'Id', 'ARN', 'Status', 'LastModifiedTime', 'InProgressInvalidationBatches', 'DomainName', 'ActiveTrustedSigners', 'DistributionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], 'WebACLId' => [ 'shape' => 'string', ], ], ], 'DistributionConfigWithTags' => [ 'type' => 'structure', 'required' => [ 'DistributionConfig', 'Tags', ], 'members' => [ 'DistributionConfig' => [ 'shape' => 'DistributionConfig', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], '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', 'ARN', 'Status', 'LastModifiedTime', 'DomainName', 'Aliases', 'Origins', 'DefaultCacheBehavior', 'CacheBehaviors', 'CustomErrorResponses', 'Comment', 'PriceClass', 'Enabled', 'ViewerCertificate', 'Restrictions', 'WebACLId', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], 'WebACLId' => [ 'shape' => 'string', ], ], ], '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', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityConfigResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentityConfig' => [ 'shape' => 'CloudFrontOriginAccessIdentityConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentityConfig', ], 'GetCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentity' => [ 'shape' => 'CloudFrontOriginAccessIdentity', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentity', ], 'GetDistributionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'DistributionConfig' => [ 'shape' => 'DistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'DistributionConfig', ], 'GetDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetStreamingDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'StreamingDistributionConfig', ], 'GetStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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, ], 'InvalidMinimumProtocolVersion' => [ '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, ], 'InvalidTTLOrder' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidTagging' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidViewerCertificate' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidWebACLId' => [ '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', ], 'ListDistributionsByWebACLIdRequest' => [ 'type' => 'structure', 'required' => [ 'WebACLId', ], 'members' => [ 'Marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'MaxItems', ], 'WebACLId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'WebACLId', ], ], ], 'ListDistributionsByWebACLIdResult' => [ 'type' => 'structure', 'members' => [ 'DistributionList' => [ 'shape' => 'DistributionList', ], ], 'payload' => 'DistributionList', ], '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', ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], ], ], 'ListTagsForResourceResult' => [ 'type' => 'structure', 'required' => [ 'Tags', ], 'members' => [ 'Tags' => [ 'shape' => 'Tags', ], ], 'payload' => 'Tags', ], '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, ], 'NoSuchResource' => [ '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', ], 'CustomHeaders' => [ 'shape' => 'CustomHeaders', ], 'S3OriginConfig' => [ 'shape' => 'S3OriginConfig', ], 'CustomOriginConfig' => [ 'shape' => 'CustomOriginConfig', ], ], ], 'OriginCustomHeader' => [ 'type' => 'structure', 'required' => [ 'HeaderName', 'HeaderValue', ], 'members' => [ 'HeaderName' => [ 'shape' => 'string', ], 'HeaderValue' => [ 'shape' => 'string', ], ], ], 'OriginCustomHeadersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OriginCustomHeader', 'locationName' => 'OriginCustomHeader', ], ], 'OriginList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Origin', 'locationName' => 'Origin', ], 'min' => 1, ], 'OriginProtocolPolicy' => [ 'type' => 'string', 'enum' => [ 'http-only', 'match-viewer', 'https-only', ], ], 'OriginSslProtocols' => [ 'type' => 'structure', 'required' => [ 'Quantity', 'Items', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'SslProtocolsList', ], ], ], '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', ], ], 'ResourceARN' => [ 'type' => 'string', 'pattern' => 'arn:aws:cloudfront::[0-9]+:.*', ], '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', ], ], 'SslProtocol' => [ 'type' => 'string', 'enum' => [ 'SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2', ], ], 'SslProtocolsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SslProtocol', 'locationName' => 'SslProtocol', ], ], 'StreamingDistribution' => [ 'type' => 'structure', 'required' => [ 'Id', 'ARN', 'Status', 'DomainName', 'ActiveTrustedSigners', 'StreamingDistributionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], ], ], 'StreamingDistributionConfigWithTags' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfig', 'Tags', ], 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], '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', 'ARN', 'Status', 'LastModifiedTime', 'DomainName', 'S3Origin', 'Aliases', 'TrustedSigners', 'Comment', 'PriceClass', 'Enabled', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', 'locationName' => 'Key', ], ], 'TagKeys' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'TagKeyList', ], ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', 'locationName' => 'Tag', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'Tags', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'Tags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-01/', ], ], ], 'payload' => 'Tags', ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'Tags' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'TagList', ], ], ], '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, ], 'TooManyOriginCustomHeaders' => [ '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', ], ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'TagKeys', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], 'TagKeys' => [ 'shape' => 'TagKeys', 'locationName' => 'TagKeys', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-01/', ], ], ], 'payload' => 'TagKeys', ], 'UpdateCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'CloudFrontOriginAccessIdentityConfig', 'Id', ], 'members' => [ 'CloudFrontOriginAccessIdentityConfig' => [ 'shape' => 'CloudFrontOriginAccessIdentityConfig', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-01/', ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-01/', ], ], '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', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-01/', ], ], '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' => [ 'CloudFrontDefaultCertificate' => [ 'shape' => 'boolean', ], 'IAMCertificateId' => [ 'shape' => 'string', ], 'ACMCertificateArn' => [ 'shape' => 'string', ], 'SSLSupportMethod' => [ 'shape' => 'SSLSupportMethod', ], 'MinimumProtocolVersion' => [ 'shape' => 'MinimumProtocolVersion', ], 'Certificate' => [ 'shape' => 'string', 'deprecated' => true, ], 'CertificateSource' => [ 'shape' => 'CertificateSource', 'deprecated' => true, ], ], ], '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/Aws/data/cloudfront/2016-08-01/paginators-1.json.php b/lib/aws/Aws/data/cloudfront/2016-08-01/paginators-1.json.php new file mode 100644 index 0000000..2331e05 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-08-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-08-01/paginators-1.json +return [ '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/Aws/data/cloudfront/2016-08-01/waiters-2.json.php b/lib/aws/Aws/data/cloudfront/2016-08-01/waiters-2.json.php new file mode 100644 index 0000000..df82e93 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-08-01/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-08-01/waiters-2.json +return [ '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/Aws/data/cloudfront/2016-08-20/api-2.json.php b/lib/aws/Aws/data/cloudfront/2016-08-20/api-2.json.php new file mode 100644 index 0000000..73978b8 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-08-20/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-08-20/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'uid' => 'cloudfront-2016-08-20', 'apiVersion' => '2016-08-20', 'endpointPrefix' => 'cloudfront', 'globalEndpoint' => 'cloudfront.amazonaws.com', 'protocol' => 'rest-xml', 'serviceAbbreviation' => 'CloudFront', 'serviceFullName' => 'Amazon CloudFront', 'signatureVersion' => 'v4', ], 'operations' => [ 'CreateCloudFrontOriginAccessIdentity' => [ 'name' => 'CreateCloudFrontOriginAccessIdentity2016_08_20', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-08-20/origin-access-identity/cloudfront', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'CreateCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'CloudFrontOriginAccessIdentityAlreadyExists', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyCloudFrontOriginAccessIdentities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateDistribution' => [ 'name' => 'CreateDistribution2016_08_20', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-08-20/distribution', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDistributionRequest', ], 'output' => [ 'shape' => 'CreateDistributionResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'DistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'TooManyDistributions', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidProtocolSettings', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], ], ], 'CreateDistributionWithTags' => [ 'name' => 'CreateDistributionWithTags2016_08_20', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-08-20/distribution?WithTags', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDistributionWithTagsRequest', ], 'output' => [ 'shape' => 'CreateDistributionWithTagsResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'DistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'TooManyDistributions', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidProtocolSettings', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], ], ], 'CreateInvalidation' => [ 'name' => 'CreateInvalidation2016_08_20', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-08-20/distribution/{DistributionId}/invalidation', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateInvalidationRequest', ], 'output' => [ 'shape' => 'CreateInvalidationResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'BatchTooLarge', ], [ 'shape' => 'TooManyInvalidationsInProgress', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateStreamingDistribution' => [ 'name' => 'CreateStreamingDistribution2016_08_20', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-08-20/streaming-distribution', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStreamingDistributionRequest', ], 'output' => [ 'shape' => 'CreateStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'StreamingDistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'TooManyStreamingDistributions', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateStreamingDistributionWithTags' => [ 'name' => 'CreateStreamingDistributionWithTags2016_08_20', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-08-20/streaming-distribution?WithTags', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStreamingDistributionWithTagsRequest', ], 'output' => [ 'shape' => 'CreateStreamingDistributionWithTagsResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'StreamingDistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'TooManyStreamingDistributions', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidTagging', ], ], ], 'DeleteCloudFrontOriginAccessIdentity' => [ 'name' => 'DeleteCloudFrontOriginAccessIdentity2016_08_20', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2016-08-20/origin-access-identity/cloudfront/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteCloudFrontOriginAccessIdentityRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'CloudFrontOriginAccessIdentityInUse', ], ], ], 'DeleteDistribution' => [ 'name' => 'DeleteDistribution2016_08_20', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2016-08-20/distribution/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDistributionRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'DistributionNotDisabled', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'DeleteStreamingDistribution' => [ 'name' => 'DeleteStreamingDistribution2016_08_20', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2016-08-20/streaming-distribution/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteStreamingDistributionRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'StreamingDistributionNotDisabled', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'GetCloudFrontOriginAccessIdentity' => [ 'name' => 'GetCloudFrontOriginAccessIdentity2016_08_20', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-20/origin-access-identity/cloudfront/{Id}', ], 'input' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetCloudFrontOriginAccessIdentityConfig' => [ 'name' => 'GetCloudFrontOriginAccessIdentityConfig2016_08_20', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-20/origin-access-identity/cloudfront/{Id}/config', ], 'input' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityConfigRequest', ], 'output' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetDistribution' => [ 'name' => 'GetDistribution2016_08_20', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-20/distribution/{Id}', ], 'input' => [ 'shape' => 'GetDistributionRequest', ], 'output' => [ 'shape' => 'GetDistributionResult', ], 'errors' => [ [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetDistributionConfig' => [ 'name' => 'GetDistributionConfig2016_08_20', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-20/distribution/{Id}/config', ], 'input' => [ 'shape' => 'GetDistributionConfigRequest', ], 'output' => [ 'shape' => 'GetDistributionConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetInvalidation' => [ 'name' => 'GetInvalidation2016_08_20', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-20/distribution/{DistributionId}/invalidation/{Id}', ], 'input' => [ 'shape' => 'GetInvalidationRequest', ], 'output' => [ 'shape' => 'GetInvalidationResult', ], 'errors' => [ [ 'shape' => 'NoSuchInvalidation', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetStreamingDistribution' => [ 'name' => 'GetStreamingDistribution2016_08_20', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-20/streaming-distribution/{Id}', ], 'input' => [ 'shape' => 'GetStreamingDistributionRequest', ], 'output' => [ 'shape' => 'GetStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetStreamingDistributionConfig' => [ 'name' => 'GetStreamingDistributionConfig2016_08_20', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-20/streaming-distribution/{Id}/config', ], 'input' => [ 'shape' => 'GetStreamingDistributionConfigRequest', ], 'output' => [ 'shape' => 'GetStreamingDistributionConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'ListCloudFrontOriginAccessIdentities' => [ 'name' => 'ListCloudFrontOriginAccessIdentities2016_08_20', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-20/origin-access-identity/cloudfront', ], 'input' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesRequest', ], 'output' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListDistributions' => [ 'name' => 'ListDistributions2016_08_20', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-20/distribution', ], 'input' => [ 'shape' => 'ListDistributionsRequest', ], 'output' => [ 'shape' => 'ListDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListDistributionsByWebACLId' => [ 'name' => 'ListDistributionsByWebACLId2016_08_20', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-20/distributionsByWebACLId/{WebACLId}', ], 'input' => [ 'shape' => 'ListDistributionsByWebACLIdRequest', ], 'output' => [ 'shape' => 'ListDistributionsByWebACLIdResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidWebACLId', ], ], ], 'ListInvalidations' => [ 'name' => 'ListInvalidations2016_08_20', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-20/distribution/{DistributionId}/invalidation', ], 'input' => [ 'shape' => 'ListInvalidationsRequest', ], 'output' => [ 'shape' => 'ListInvalidationsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'ListStreamingDistributions' => [ 'name' => 'ListStreamingDistributions2016_08_20', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-20/streaming-distribution', ], 'input' => [ 'shape' => 'ListStreamingDistributionsRequest', ], 'output' => [ 'shape' => 'ListStreamingDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource2016_08_20', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-20/tagging', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'TagResource' => [ 'name' => 'TagResource2016_08_20', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-08-20/tagging?Operation=Tag', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource2016_08_20', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-08-20/tagging?Operation=Untag', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'UpdateCloudFrontOriginAccessIdentity' => [ 'name' => 'UpdateCloudFrontOriginAccessIdentity2016_08_20', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2016-08-20/origin-access-identity/cloudfront/{Id}/config', ], 'input' => [ 'shape' => 'UpdateCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'UpdateCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'UpdateDistribution' => [ 'name' => 'UpdateDistribution2016_08_20', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2016-08-20/distribution/{Id}/config', ], 'input' => [ 'shape' => 'UpdateDistributionRequest', ], 'output' => [ 'shape' => 'UpdateDistributionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], ], ], 'UpdateStreamingDistribution' => [ 'name' => 'UpdateStreamingDistribution2016_08_20', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2016-08-20/streaming-distribution/{Id}/config', ], 'input' => [ 'shape' => 'UpdateStreamingDistributionRequest', ], 'output' => [ 'shape' => 'UpdateStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InconsistentQuantities', ], ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], 'Compress' => [ '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', ], ], ], 'CertificateSource' => [ 'type' => 'string', 'enum' => [ 'cloudfront', 'iam', 'acm', ], ], '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', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-20/', ], ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-20/', ], ], ], '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', ], 'CreateDistributionWithTagsRequest' => [ 'type' => 'structure', 'required' => [ 'DistributionConfigWithTags', ], 'members' => [ 'DistributionConfigWithTags' => [ 'shape' => 'DistributionConfigWithTags', 'locationName' => 'DistributionConfigWithTags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-20/', ], ], ], 'payload' => 'DistributionConfigWithTags', ], 'CreateDistributionWithTagsResult' => [ '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', 'locationName' => 'InvalidationBatch', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-20/', ], ], ], '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', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-20/', ], ], ], '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', ], 'CreateStreamingDistributionWithTagsRequest' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfigWithTags', ], 'members' => [ 'StreamingDistributionConfigWithTags' => [ 'shape' => 'StreamingDistributionConfigWithTags', 'locationName' => 'StreamingDistributionConfigWithTags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-20/', ], ], ], 'payload' => 'StreamingDistributionConfigWithTags', ], 'CreateStreamingDistributionWithTagsResult' => [ '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', ], ], ], 'CustomHeaders' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'OriginCustomHeadersList', ], ], ], 'CustomOriginConfig' => [ 'type' => 'structure', 'required' => [ 'HTTPPort', 'HTTPSPort', 'OriginProtocolPolicy', ], 'members' => [ 'HTTPPort' => [ 'shape' => 'integer', ], 'HTTPSPort' => [ 'shape' => 'integer', ], 'OriginProtocolPolicy' => [ 'shape' => 'OriginProtocolPolicy', ], 'OriginSslProtocols' => [ 'shape' => 'OriginSslProtocols', ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], 'Compress' => [ 'shape' => 'boolean', ], ], ], 'DeleteCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'Distribution' => [ 'type' => 'structure', 'required' => [ 'Id', 'ARN', 'Status', 'LastModifiedTime', 'InProgressInvalidationBatches', 'DomainName', 'ActiveTrustedSigners', 'DistributionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], 'WebACLId' => [ 'shape' => 'string', ], ], ], 'DistributionConfigWithTags' => [ 'type' => 'structure', 'required' => [ 'DistributionConfig', 'Tags', ], 'members' => [ 'DistributionConfig' => [ 'shape' => 'DistributionConfig', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], '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', 'ARN', 'Status', 'LastModifiedTime', 'DomainName', 'Aliases', 'Origins', 'DefaultCacheBehavior', 'CacheBehaviors', 'CustomErrorResponses', 'Comment', 'PriceClass', 'Enabled', 'ViewerCertificate', 'Restrictions', 'WebACLId', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], 'WebACLId' => [ 'shape' => 'string', ], ], ], 'DistributionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DistributionSummary', 'locationName' => 'DistributionSummary', ], ], 'ForwardedValues' => [ 'type' => 'structure', 'required' => [ 'QueryString', 'Cookies', ], 'members' => [ 'QueryString' => [ 'shape' => 'boolean', ], 'Cookies' => [ 'shape' => 'CookiePreference', ], 'Headers' => [ 'shape' => 'Headers', ], 'QueryStringCacheKeys' => [ 'shape' => 'QueryStringCacheKeys', ], ], ], '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', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityConfigResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentityConfig' => [ 'shape' => 'CloudFrontOriginAccessIdentityConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentityConfig', ], 'GetCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentity' => [ 'shape' => 'CloudFrontOriginAccessIdentity', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentity', ], 'GetDistributionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'DistributionConfig' => [ 'shape' => 'DistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'DistributionConfig', ], 'GetDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetStreamingDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'StreamingDistributionConfig', ], 'GetStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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, ], 'InvalidMinimumProtocolVersion' => [ '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, ], 'InvalidQueryStringParameters' => [ '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, ], 'InvalidTTLOrder' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidTagging' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidViewerCertificate' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidWebACLId' => [ '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', ], 'ListDistributionsByWebACLIdRequest' => [ 'type' => 'structure', 'required' => [ 'WebACLId', ], 'members' => [ 'Marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'MaxItems', ], 'WebACLId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'WebACLId', ], ], ], 'ListDistributionsByWebACLIdResult' => [ 'type' => 'structure', 'members' => [ 'DistributionList' => [ 'shape' => 'DistributionList', ], ], 'payload' => 'DistributionList', ], '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', ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], ], ], 'ListTagsForResourceResult' => [ 'type' => 'structure', 'required' => [ 'Tags', ], 'members' => [ 'Tags' => [ 'shape' => 'Tags', ], ], 'payload' => 'Tags', ], '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, ], 'NoSuchResource' => [ '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', ], 'CustomHeaders' => [ 'shape' => 'CustomHeaders', ], 'S3OriginConfig' => [ 'shape' => 'S3OriginConfig', ], 'CustomOriginConfig' => [ 'shape' => 'CustomOriginConfig', ], ], ], 'OriginCustomHeader' => [ 'type' => 'structure', 'required' => [ 'HeaderName', 'HeaderValue', ], 'members' => [ 'HeaderName' => [ 'shape' => 'string', ], 'HeaderValue' => [ 'shape' => 'string', ], ], ], 'OriginCustomHeadersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OriginCustomHeader', 'locationName' => 'OriginCustomHeader', ], ], 'OriginList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Origin', 'locationName' => 'Origin', ], 'min' => 1, ], 'OriginProtocolPolicy' => [ 'type' => 'string', 'enum' => [ 'http-only', 'match-viewer', 'https-only', ], ], 'OriginSslProtocols' => [ 'type' => 'structure', 'required' => [ 'Quantity', 'Items', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'SslProtocolsList', ], ], ], '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', ], ], 'QueryStringCacheKeys' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'QueryStringCacheKeysList', ], ], ], 'QueryStringCacheKeysList' => [ 'type' => 'list', 'member' => [ 'shape' => 'string', 'locationName' => 'Name', ], ], 'ResourceARN' => [ 'type' => 'string', 'pattern' => 'arn:aws:cloudfront::[0-9]+:.*', ], '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', ], ], 'SslProtocol' => [ 'type' => 'string', 'enum' => [ 'SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2', ], ], 'SslProtocolsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SslProtocol', 'locationName' => 'SslProtocol', ], ], 'StreamingDistribution' => [ 'type' => 'structure', 'required' => [ 'Id', 'ARN', 'Status', 'DomainName', 'ActiveTrustedSigners', 'StreamingDistributionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], ], ], 'StreamingDistributionConfigWithTags' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfig', 'Tags', ], 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], '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', 'ARN', 'Status', 'LastModifiedTime', 'DomainName', 'S3Origin', 'Aliases', 'TrustedSigners', 'Comment', 'PriceClass', 'Enabled', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', 'locationName' => 'Key', ], ], 'TagKeys' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'TagKeyList', ], ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', 'locationName' => 'Tag', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'Tags', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'Tags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-20/', ], ], ], 'payload' => 'Tags', ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'Tags' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'TagList', ], ], ], '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, ], 'TooManyOriginCustomHeaders' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyOrigins' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyQueryStringParameters' => [ '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', ], ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'TagKeys', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], 'TagKeys' => [ 'shape' => 'TagKeys', 'locationName' => 'TagKeys', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-20/', ], ], ], 'payload' => 'TagKeys', ], 'UpdateCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'CloudFrontOriginAccessIdentityConfig', 'Id', ], 'members' => [ 'CloudFrontOriginAccessIdentityConfig' => [ 'shape' => 'CloudFrontOriginAccessIdentityConfig', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-20/', ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-20/', ], ], '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', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-08-20/', ], ], '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' => [ 'CloudFrontDefaultCertificate' => [ 'shape' => 'boolean', ], 'IAMCertificateId' => [ 'shape' => 'string', ], 'ACMCertificateArn' => [ 'shape' => 'string', ], 'SSLSupportMethod' => [ 'shape' => 'SSLSupportMethod', ], 'MinimumProtocolVersion' => [ 'shape' => 'MinimumProtocolVersion', ], 'Certificate' => [ 'shape' => 'string', 'deprecated' => true, ], 'CertificateSource' => [ 'shape' => 'CertificateSource', 'deprecated' => true, ], ], ], '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/Aws/data/cloudfront/2016-08-20/paginators-1.json.php b/lib/aws/Aws/data/cloudfront/2016-08-20/paginators-1.json.php new file mode 100644 index 0000000..f95601b --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-08-20/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-08-20/paginators-1.json +return [ '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/Aws/data/cloudfront/2016-08-20/waiters-2.json.php b/lib/aws/Aws/data/cloudfront/2016-08-20/waiters-2.json.php new file mode 100644 index 0000000..c8a6895 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-08-20/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-08-20/waiters-2.json +return [ '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/Aws/data/cloudfront/2016-09-07/api-2.json.php b/lib/aws/Aws/data/cloudfront/2016-09-07/api-2.json.php new file mode 100644 index 0000000..6c75877 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-09-07/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-09-07/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'uid' => 'cloudfront-2016-09-07', 'apiVersion' => '2016-09-07', 'endpointPrefix' => 'cloudfront', 'globalEndpoint' => 'cloudfront.amazonaws.com', 'protocol' => 'rest-xml', 'serviceAbbreviation' => 'CloudFront', 'serviceFullName' => 'Amazon CloudFront', 'signatureVersion' => 'v4', ], 'operations' => [ 'CreateCloudFrontOriginAccessIdentity' => [ 'name' => 'CreateCloudFrontOriginAccessIdentity2016_09_07', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-09-07/origin-access-identity/cloudfront', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'CreateCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'CloudFrontOriginAccessIdentityAlreadyExists', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyCloudFrontOriginAccessIdentities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateDistribution' => [ 'name' => 'CreateDistribution2016_09_07', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-09-07/distribution', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDistributionRequest', ], 'output' => [ 'shape' => 'CreateDistributionResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'DistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'TooManyDistributions', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidProtocolSettings', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], ], ], 'CreateDistributionWithTags' => [ 'name' => 'CreateDistributionWithTags2016_09_07', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-09-07/distribution?WithTags', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDistributionWithTagsRequest', ], 'output' => [ 'shape' => 'CreateDistributionWithTagsResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'DistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'TooManyDistributions', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidProtocolSettings', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], ], ], 'CreateInvalidation' => [ 'name' => 'CreateInvalidation2016_09_07', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-09-07/distribution/{DistributionId}/invalidation', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateInvalidationRequest', ], 'output' => [ 'shape' => 'CreateInvalidationResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'BatchTooLarge', ], [ 'shape' => 'TooManyInvalidationsInProgress', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateStreamingDistribution' => [ 'name' => 'CreateStreamingDistribution2016_09_07', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-09-07/streaming-distribution', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStreamingDistributionRequest', ], 'output' => [ 'shape' => 'CreateStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'StreamingDistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'TooManyStreamingDistributions', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateStreamingDistributionWithTags' => [ 'name' => 'CreateStreamingDistributionWithTags2016_09_07', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-09-07/streaming-distribution?WithTags', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStreamingDistributionWithTagsRequest', ], 'output' => [ 'shape' => 'CreateStreamingDistributionWithTagsResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'StreamingDistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'TooManyStreamingDistributions', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidTagging', ], ], ], 'DeleteCloudFrontOriginAccessIdentity' => [ 'name' => 'DeleteCloudFrontOriginAccessIdentity2016_09_07', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2016-09-07/origin-access-identity/cloudfront/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteCloudFrontOriginAccessIdentityRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'CloudFrontOriginAccessIdentityInUse', ], ], ], 'DeleteDistribution' => [ 'name' => 'DeleteDistribution2016_09_07', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2016-09-07/distribution/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDistributionRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'DistributionNotDisabled', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'DeleteStreamingDistribution' => [ 'name' => 'DeleteStreamingDistribution2016_09_07', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2016-09-07/streaming-distribution/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteStreamingDistributionRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'StreamingDistributionNotDisabled', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'GetCloudFrontOriginAccessIdentity' => [ 'name' => 'GetCloudFrontOriginAccessIdentity2016_09_07', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-07/origin-access-identity/cloudfront/{Id}', ], 'input' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetCloudFrontOriginAccessIdentityConfig' => [ 'name' => 'GetCloudFrontOriginAccessIdentityConfig2016_09_07', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-07/origin-access-identity/cloudfront/{Id}/config', ], 'input' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityConfigRequest', ], 'output' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetDistribution' => [ 'name' => 'GetDistribution2016_09_07', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-07/distribution/{Id}', ], 'input' => [ 'shape' => 'GetDistributionRequest', ], 'output' => [ 'shape' => 'GetDistributionResult', ], 'errors' => [ [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetDistributionConfig' => [ 'name' => 'GetDistributionConfig2016_09_07', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-07/distribution/{Id}/config', ], 'input' => [ 'shape' => 'GetDistributionConfigRequest', ], 'output' => [ 'shape' => 'GetDistributionConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetInvalidation' => [ 'name' => 'GetInvalidation2016_09_07', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-07/distribution/{DistributionId}/invalidation/{Id}', ], 'input' => [ 'shape' => 'GetInvalidationRequest', ], 'output' => [ 'shape' => 'GetInvalidationResult', ], 'errors' => [ [ 'shape' => 'NoSuchInvalidation', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetStreamingDistribution' => [ 'name' => 'GetStreamingDistribution2016_09_07', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-07/streaming-distribution/{Id}', ], 'input' => [ 'shape' => 'GetStreamingDistributionRequest', ], 'output' => [ 'shape' => 'GetStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetStreamingDistributionConfig' => [ 'name' => 'GetStreamingDistributionConfig2016_09_07', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-07/streaming-distribution/{Id}/config', ], 'input' => [ 'shape' => 'GetStreamingDistributionConfigRequest', ], 'output' => [ 'shape' => 'GetStreamingDistributionConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'ListCloudFrontOriginAccessIdentities' => [ 'name' => 'ListCloudFrontOriginAccessIdentities2016_09_07', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-07/origin-access-identity/cloudfront', ], 'input' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesRequest', ], 'output' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListDistributions' => [ 'name' => 'ListDistributions2016_09_07', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-07/distribution', ], 'input' => [ 'shape' => 'ListDistributionsRequest', ], 'output' => [ 'shape' => 'ListDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListDistributionsByWebACLId' => [ 'name' => 'ListDistributionsByWebACLId2016_09_07', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-07/distributionsByWebACLId/{WebACLId}', ], 'input' => [ 'shape' => 'ListDistributionsByWebACLIdRequest', ], 'output' => [ 'shape' => 'ListDistributionsByWebACLIdResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidWebACLId', ], ], ], 'ListInvalidations' => [ 'name' => 'ListInvalidations2016_09_07', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-07/distribution/{DistributionId}/invalidation', ], 'input' => [ 'shape' => 'ListInvalidationsRequest', ], 'output' => [ 'shape' => 'ListInvalidationsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'ListStreamingDistributions' => [ 'name' => 'ListStreamingDistributions2016_09_07', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-07/streaming-distribution', ], 'input' => [ 'shape' => 'ListStreamingDistributionsRequest', ], 'output' => [ 'shape' => 'ListStreamingDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource2016_09_07', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-07/tagging', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'TagResource' => [ 'name' => 'TagResource2016_09_07', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-09-07/tagging?Operation=Tag', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource2016_09_07', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-09-07/tagging?Operation=Untag', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'UpdateCloudFrontOriginAccessIdentity' => [ 'name' => 'UpdateCloudFrontOriginAccessIdentity2016_09_07', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2016-09-07/origin-access-identity/cloudfront/{Id}/config', ], 'input' => [ 'shape' => 'UpdateCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'UpdateCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'UpdateDistribution' => [ 'name' => 'UpdateDistribution2016_09_07', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2016-09-07/distribution/{Id}/config', ], 'input' => [ 'shape' => 'UpdateDistributionRequest', ], 'output' => [ 'shape' => 'UpdateDistributionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], ], ], 'UpdateStreamingDistribution' => [ 'name' => 'UpdateStreamingDistribution2016_09_07', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2016-09-07/streaming-distribution/{Id}/config', ], 'input' => [ 'shape' => 'UpdateStreamingDistributionRequest', ], 'output' => [ 'shape' => 'UpdateStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InconsistentQuantities', ], ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], 'Compress' => [ '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', ], ], ], 'CertificateSource' => [ 'type' => 'string', 'enum' => [ 'cloudfront', 'iam', 'acm', ], ], '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', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-07/', ], ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-07/', ], ], ], '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', ], 'CreateDistributionWithTagsRequest' => [ 'type' => 'structure', 'required' => [ 'DistributionConfigWithTags', ], 'members' => [ 'DistributionConfigWithTags' => [ 'shape' => 'DistributionConfigWithTags', 'locationName' => 'DistributionConfigWithTags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-07/', ], ], ], 'payload' => 'DistributionConfigWithTags', ], 'CreateDistributionWithTagsResult' => [ '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', 'locationName' => 'InvalidationBatch', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-07/', ], ], ], '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', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-07/', ], ], ], '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', ], 'CreateStreamingDistributionWithTagsRequest' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfigWithTags', ], 'members' => [ 'StreamingDistributionConfigWithTags' => [ 'shape' => 'StreamingDistributionConfigWithTags', 'locationName' => 'StreamingDistributionConfigWithTags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-07/', ], ], ], 'payload' => 'StreamingDistributionConfigWithTags', ], 'CreateStreamingDistributionWithTagsResult' => [ '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', ], ], ], 'CustomHeaders' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'OriginCustomHeadersList', ], ], ], 'CustomOriginConfig' => [ 'type' => 'structure', 'required' => [ 'HTTPPort', 'HTTPSPort', 'OriginProtocolPolicy', ], 'members' => [ 'HTTPPort' => [ 'shape' => 'integer', ], 'HTTPSPort' => [ 'shape' => 'integer', ], 'OriginProtocolPolicy' => [ 'shape' => 'OriginProtocolPolicy', ], 'OriginSslProtocols' => [ 'shape' => 'OriginSslProtocols', ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], 'Compress' => [ 'shape' => 'boolean', ], ], ], 'DeleteCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'Distribution' => [ 'type' => 'structure', 'required' => [ 'Id', 'ARN', 'Status', 'LastModifiedTime', 'InProgressInvalidationBatches', 'DomainName', 'ActiveTrustedSigners', 'DistributionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], 'WebACLId' => [ 'shape' => 'string', ], 'HttpVersion' => [ 'shape' => 'HttpVersion', ], ], ], 'DistributionConfigWithTags' => [ 'type' => 'structure', 'required' => [ 'DistributionConfig', 'Tags', ], 'members' => [ 'DistributionConfig' => [ 'shape' => 'DistributionConfig', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], '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', 'ARN', 'Status', 'LastModifiedTime', 'DomainName', 'Aliases', 'Origins', 'DefaultCacheBehavior', 'CacheBehaviors', 'CustomErrorResponses', 'Comment', 'PriceClass', 'Enabled', 'ViewerCertificate', 'Restrictions', 'WebACLId', 'HttpVersion', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], 'WebACLId' => [ 'shape' => 'string', ], 'HttpVersion' => [ 'shape' => 'HttpVersion', ], ], ], 'DistributionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DistributionSummary', 'locationName' => 'DistributionSummary', ], ], 'ForwardedValues' => [ 'type' => 'structure', 'required' => [ 'QueryString', 'Cookies', ], 'members' => [ 'QueryString' => [ 'shape' => 'boolean', ], 'Cookies' => [ 'shape' => 'CookiePreference', ], 'Headers' => [ 'shape' => 'Headers', ], 'QueryStringCacheKeys' => [ 'shape' => 'QueryStringCacheKeys', ], ], ], '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', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityConfigResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentityConfig' => [ 'shape' => 'CloudFrontOriginAccessIdentityConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentityConfig', ], 'GetCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentity' => [ 'shape' => 'CloudFrontOriginAccessIdentity', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentity', ], 'GetDistributionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'DistributionConfig' => [ 'shape' => 'DistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'DistributionConfig', ], 'GetDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetStreamingDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'StreamingDistributionConfig', ], 'GetStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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', ], ], ], 'HttpVersion' => [ 'type' => 'string', 'enum' => [ 'http1.1', 'http2', ], ], '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, ], 'InvalidMinimumProtocolVersion' => [ '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, ], 'InvalidQueryStringParameters' => [ '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, ], 'InvalidTTLOrder' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidTagging' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidViewerCertificate' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidWebACLId' => [ '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', ], 'ListDistributionsByWebACLIdRequest' => [ 'type' => 'structure', 'required' => [ 'WebACLId', ], 'members' => [ 'Marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'MaxItems', ], 'WebACLId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'WebACLId', ], ], ], 'ListDistributionsByWebACLIdResult' => [ 'type' => 'structure', 'members' => [ 'DistributionList' => [ 'shape' => 'DistributionList', ], ], 'payload' => 'DistributionList', ], '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', ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], ], ], 'ListTagsForResourceResult' => [ 'type' => 'structure', 'required' => [ 'Tags', ], 'members' => [ 'Tags' => [ 'shape' => 'Tags', ], ], 'payload' => 'Tags', ], '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, ], 'NoSuchResource' => [ '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', ], 'CustomHeaders' => [ 'shape' => 'CustomHeaders', ], 'S3OriginConfig' => [ 'shape' => 'S3OriginConfig', ], 'CustomOriginConfig' => [ 'shape' => 'CustomOriginConfig', ], ], ], 'OriginCustomHeader' => [ 'type' => 'structure', 'required' => [ 'HeaderName', 'HeaderValue', ], 'members' => [ 'HeaderName' => [ 'shape' => 'string', ], 'HeaderValue' => [ 'shape' => 'string', ], ], ], 'OriginCustomHeadersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OriginCustomHeader', 'locationName' => 'OriginCustomHeader', ], ], 'OriginList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Origin', 'locationName' => 'Origin', ], 'min' => 1, ], 'OriginProtocolPolicy' => [ 'type' => 'string', 'enum' => [ 'http-only', 'match-viewer', 'https-only', ], ], 'OriginSslProtocols' => [ 'type' => 'structure', 'required' => [ 'Quantity', 'Items', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'SslProtocolsList', ], ], ], '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', ], ], 'QueryStringCacheKeys' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'QueryStringCacheKeysList', ], ], ], 'QueryStringCacheKeysList' => [ 'type' => 'list', 'member' => [ 'shape' => 'string', 'locationName' => 'Name', ], ], 'ResourceARN' => [ 'type' => 'string', 'pattern' => 'arn:aws:cloudfront::[0-9]+:.*', ], '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', ], ], 'SslProtocol' => [ 'type' => 'string', 'enum' => [ 'SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2', ], ], 'SslProtocolsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SslProtocol', 'locationName' => 'SslProtocol', ], ], 'StreamingDistribution' => [ 'type' => 'structure', 'required' => [ 'Id', 'ARN', 'Status', 'DomainName', 'ActiveTrustedSigners', 'StreamingDistributionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], ], ], 'StreamingDistributionConfigWithTags' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfig', 'Tags', ], 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], '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', 'ARN', 'Status', 'LastModifiedTime', 'DomainName', 'S3Origin', 'Aliases', 'TrustedSigners', 'Comment', 'PriceClass', 'Enabled', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', 'locationName' => 'Key', ], ], 'TagKeys' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'TagKeyList', ], ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', 'locationName' => 'Tag', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'Tags', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'Tags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-07/', ], ], ], 'payload' => 'Tags', ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'Tags' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'TagList', ], ], ], '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, ], 'TooManyOriginCustomHeaders' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyOrigins' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyQueryStringParameters' => [ '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', ], ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'TagKeys', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], 'TagKeys' => [ 'shape' => 'TagKeys', 'locationName' => 'TagKeys', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-07/', ], ], ], 'payload' => 'TagKeys', ], 'UpdateCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'CloudFrontOriginAccessIdentityConfig', 'Id', ], 'members' => [ 'CloudFrontOriginAccessIdentityConfig' => [ 'shape' => 'CloudFrontOriginAccessIdentityConfig', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-07/', ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-07/', ], ], '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', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-07/', ], ], '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' => [ 'CloudFrontDefaultCertificate' => [ 'shape' => 'boolean', ], 'IAMCertificateId' => [ 'shape' => 'string', ], 'ACMCertificateArn' => [ 'shape' => 'string', ], 'SSLSupportMethod' => [ 'shape' => 'SSLSupportMethod', ], 'MinimumProtocolVersion' => [ 'shape' => 'MinimumProtocolVersion', ], 'Certificate' => [ 'shape' => 'string', 'deprecated' => true, ], 'CertificateSource' => [ 'shape' => 'CertificateSource', 'deprecated' => true, ], ], ], '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/Aws/data/cloudfront/2016-09-07/paginators-1.json.php b/lib/aws/Aws/data/cloudfront/2016-09-07/paginators-1.json.php new file mode 100644 index 0000000..37d727c --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-09-07/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-09-07/paginators-1.json +return [ '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/Aws/data/cloudfront/2016-09-07/waiters-1.json.php b/lib/aws/Aws/data/cloudfront/2016-09-07/waiters-1.json.php new file mode 100644 index 0000000..1f7abe5 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-09-07/waiters-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-09-07/waiters-1.json +return [ 'waiters' => [ '__default__' => [ 'success_type' => 'output', 'success_path' => 'Status', ], 'StreamingDistributionDeployed' => [ 'operation' => 'GetStreamingDistribution', 'description' => 'Wait until a streaming distribution is deployed.', 'interval' => 60, 'max_attempts' => 25, 'success_value' => 'Deployed', ], 'DistributionDeployed' => [ 'operation' => 'GetDistribution', 'description' => 'Wait until a distribution is deployed.', 'interval' => 60, 'max_attempts' => 25, 'success_value' => 'Deployed', ], 'InvalidationCompleted' => [ 'operation' => 'GetInvalidation', 'description' => 'Wait until an invalidation has completed.', 'interval' => 20, 'max_attempts' => 30, 'success_value' => 'Completed', ], ],]; diff --git a/lib/aws/Aws/data/cloudfront/2016-09-07/waiters-2.json.php b/lib/aws/Aws/data/cloudfront/2016-09-07/waiters-2.json.php new file mode 100644 index 0000000..db476be --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-09-07/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-09-07/waiters-2.json +return [ '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/Aws/data/cloudfront/2016-09-29/api-2.json.php b/lib/aws/Aws/data/cloudfront/2016-09-29/api-2.json.php new file mode 100644 index 0000000..157bd3b --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-09-29/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-09-29/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-09-29', 'endpointPrefix' => 'cloudfront', 'globalEndpoint' => 'cloudfront.amazonaws.com', 'protocol' => 'rest-xml', 'serviceAbbreviation' => 'CloudFront', 'serviceFullName' => 'Amazon CloudFront', 'signatureVersion' => 'v4', 'uid' => 'cloudfront-2016-09-07', ], 'operations' => [ 'CreateCloudFrontOriginAccessIdentity' => [ 'name' => 'CreateCloudFrontOriginAccessIdentity2016_09_29', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-09-29/origin-access-identity/cloudfront', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'CreateCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'CloudFrontOriginAccessIdentityAlreadyExists', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyCloudFrontOriginAccessIdentities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateDistribution' => [ 'name' => 'CreateDistribution2016_09_29', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-09-29/distribution', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDistributionRequest', ], 'output' => [ 'shape' => 'CreateDistributionResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'DistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'TooManyDistributions', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidProtocolSettings', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], ], ], 'CreateDistributionWithTags' => [ 'name' => 'CreateDistributionWithTags2016_09_29', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-09-29/distribution?WithTags', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDistributionWithTagsRequest', ], 'output' => [ 'shape' => 'CreateDistributionWithTagsResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'DistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'TooManyDistributions', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidProtocolSettings', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], ], ], 'CreateInvalidation' => [ 'name' => 'CreateInvalidation2016_09_29', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-09-29/distribution/{DistributionId}/invalidation', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateInvalidationRequest', ], 'output' => [ 'shape' => 'CreateInvalidationResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'BatchTooLarge', ], [ 'shape' => 'TooManyInvalidationsInProgress', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateStreamingDistribution' => [ 'name' => 'CreateStreamingDistribution2016_09_29', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-09-29/streaming-distribution', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStreamingDistributionRequest', ], 'output' => [ 'shape' => 'CreateStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'StreamingDistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'TooManyStreamingDistributions', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateStreamingDistributionWithTags' => [ 'name' => 'CreateStreamingDistributionWithTags2016_09_29', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-09-29/streaming-distribution?WithTags', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStreamingDistributionWithTagsRequest', ], 'output' => [ 'shape' => 'CreateStreamingDistributionWithTagsResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'StreamingDistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'TooManyStreamingDistributions', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidTagging', ], ], ], 'DeleteCloudFrontOriginAccessIdentity' => [ 'name' => 'DeleteCloudFrontOriginAccessIdentity2016_09_29', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2016-09-29/origin-access-identity/cloudfront/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteCloudFrontOriginAccessIdentityRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'CloudFrontOriginAccessIdentityInUse', ], ], ], 'DeleteDistribution' => [ 'name' => 'DeleteDistribution2016_09_29', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2016-09-29/distribution/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDistributionRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'DistributionNotDisabled', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'DeleteStreamingDistribution' => [ 'name' => 'DeleteStreamingDistribution2016_09_29', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2016-09-29/streaming-distribution/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteStreamingDistributionRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'StreamingDistributionNotDisabled', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'GetCloudFrontOriginAccessIdentity' => [ 'name' => 'GetCloudFrontOriginAccessIdentity2016_09_29', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-29/origin-access-identity/cloudfront/{Id}', ], 'input' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetCloudFrontOriginAccessIdentityConfig' => [ 'name' => 'GetCloudFrontOriginAccessIdentityConfig2016_09_29', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-29/origin-access-identity/cloudfront/{Id}/config', ], 'input' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityConfigRequest', ], 'output' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetDistribution' => [ 'name' => 'GetDistribution2016_09_29', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-29/distribution/{Id}', ], 'input' => [ 'shape' => 'GetDistributionRequest', ], 'output' => [ 'shape' => 'GetDistributionResult', ], 'errors' => [ [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetDistributionConfig' => [ 'name' => 'GetDistributionConfig2016_09_29', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-29/distribution/{Id}/config', ], 'input' => [ 'shape' => 'GetDistributionConfigRequest', ], 'output' => [ 'shape' => 'GetDistributionConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetInvalidation' => [ 'name' => 'GetInvalidation2016_09_29', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-29/distribution/{DistributionId}/invalidation/{Id}', ], 'input' => [ 'shape' => 'GetInvalidationRequest', ], 'output' => [ 'shape' => 'GetInvalidationResult', ], 'errors' => [ [ 'shape' => 'NoSuchInvalidation', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetStreamingDistribution' => [ 'name' => 'GetStreamingDistribution2016_09_29', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-29/streaming-distribution/{Id}', ], 'input' => [ 'shape' => 'GetStreamingDistributionRequest', ], 'output' => [ 'shape' => 'GetStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetStreamingDistributionConfig' => [ 'name' => 'GetStreamingDistributionConfig2016_09_29', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-29/streaming-distribution/{Id}/config', ], 'input' => [ 'shape' => 'GetStreamingDistributionConfigRequest', ], 'output' => [ 'shape' => 'GetStreamingDistributionConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'ListCloudFrontOriginAccessIdentities' => [ 'name' => 'ListCloudFrontOriginAccessIdentities2016_09_29', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-29/origin-access-identity/cloudfront', ], 'input' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesRequest', ], 'output' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListDistributions' => [ 'name' => 'ListDistributions2016_09_29', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-29/distribution', ], 'input' => [ 'shape' => 'ListDistributionsRequest', ], 'output' => [ 'shape' => 'ListDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListDistributionsByWebACLId' => [ 'name' => 'ListDistributionsByWebACLId2016_09_29', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-29/distributionsByWebACLId/{WebACLId}', ], 'input' => [ 'shape' => 'ListDistributionsByWebACLIdRequest', ], 'output' => [ 'shape' => 'ListDistributionsByWebACLIdResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidWebACLId', ], ], ], 'ListInvalidations' => [ 'name' => 'ListInvalidations2016_09_29', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-29/distribution/{DistributionId}/invalidation', ], 'input' => [ 'shape' => 'ListInvalidationsRequest', ], 'output' => [ 'shape' => 'ListInvalidationsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'ListStreamingDistributions' => [ 'name' => 'ListStreamingDistributions2016_09_29', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-29/streaming-distribution', ], 'input' => [ 'shape' => 'ListStreamingDistributionsRequest', ], 'output' => [ 'shape' => 'ListStreamingDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource2016_09_29', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-09-29/tagging', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'TagResource' => [ 'name' => 'TagResource2016_09_29', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-09-29/tagging?Operation=Tag', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource2016_09_29', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-09-29/tagging?Operation=Untag', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'UpdateCloudFrontOriginAccessIdentity' => [ 'name' => 'UpdateCloudFrontOriginAccessIdentity2016_09_29', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2016-09-29/origin-access-identity/cloudfront/{Id}/config', ], 'input' => [ 'shape' => 'UpdateCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'UpdateCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'UpdateDistribution' => [ 'name' => 'UpdateDistribution2016_09_29', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2016-09-29/distribution/{Id}/config', ], 'input' => [ 'shape' => 'UpdateDistributionRequest', ], 'output' => [ 'shape' => 'UpdateDistributionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], ], ], 'UpdateStreamingDistribution' => [ 'name' => 'UpdateStreamingDistribution2016_09_29', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2016-09-29/streaming-distribution/{Id}/config', ], 'input' => [ 'shape' => 'UpdateStreamingDistributionRequest', ], 'output' => [ 'shape' => 'UpdateStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InconsistentQuantities', ], ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], 'Compress' => [ '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', ], ], ], 'CertificateSource' => [ 'type' => 'string', 'enum' => [ 'cloudfront', 'iam', 'acm', ], ], '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', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-29/', ], ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-29/', ], ], ], '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', ], 'CreateDistributionWithTagsRequest' => [ 'type' => 'structure', 'required' => [ 'DistributionConfigWithTags', ], 'members' => [ 'DistributionConfigWithTags' => [ 'shape' => 'DistributionConfigWithTags', 'locationName' => 'DistributionConfigWithTags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-29/', ], ], ], 'payload' => 'DistributionConfigWithTags', ], 'CreateDistributionWithTagsResult' => [ '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', 'locationName' => 'InvalidationBatch', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-29/', ], ], ], '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', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-29/', ], ], ], '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', ], 'CreateStreamingDistributionWithTagsRequest' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfigWithTags', ], 'members' => [ 'StreamingDistributionConfigWithTags' => [ 'shape' => 'StreamingDistributionConfigWithTags', 'locationName' => 'StreamingDistributionConfigWithTags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-29/', ], ], ], 'payload' => 'StreamingDistributionConfigWithTags', ], 'CreateStreamingDistributionWithTagsResult' => [ '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', ], ], ], 'CustomHeaders' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'OriginCustomHeadersList', ], ], ], 'CustomOriginConfig' => [ 'type' => 'structure', 'required' => [ 'HTTPPort', 'HTTPSPort', 'OriginProtocolPolicy', ], 'members' => [ 'HTTPPort' => [ 'shape' => 'integer', ], 'HTTPSPort' => [ 'shape' => 'integer', ], 'OriginProtocolPolicy' => [ 'shape' => 'OriginProtocolPolicy', ], 'OriginSslProtocols' => [ 'shape' => 'OriginSslProtocols', ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], 'Compress' => [ 'shape' => 'boolean', ], ], ], 'DeleteCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'Distribution' => [ 'type' => 'structure', 'required' => [ 'Id', 'ARN', 'Status', 'LastModifiedTime', 'InProgressInvalidationBatches', 'DomainName', 'ActiveTrustedSigners', 'DistributionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], 'WebACLId' => [ 'shape' => 'string', ], 'HttpVersion' => [ 'shape' => 'HttpVersion', ], 'IsIPV6Enabled' => [ 'shape' => 'boolean', ], ], ], 'DistributionConfigWithTags' => [ 'type' => 'structure', 'required' => [ 'DistributionConfig', 'Tags', ], 'members' => [ 'DistributionConfig' => [ 'shape' => 'DistributionConfig', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], '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', 'ARN', 'Status', 'LastModifiedTime', 'DomainName', 'Aliases', 'Origins', 'DefaultCacheBehavior', 'CacheBehaviors', 'CustomErrorResponses', 'Comment', 'PriceClass', 'Enabled', 'ViewerCertificate', 'Restrictions', 'WebACLId', 'HttpVersion', 'IsIPV6Enabled', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], 'WebACLId' => [ 'shape' => 'string', ], 'HttpVersion' => [ 'shape' => 'HttpVersion', ], 'IsIPV6Enabled' => [ 'shape' => 'boolean', ], ], ], 'DistributionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DistributionSummary', 'locationName' => 'DistributionSummary', ], ], 'ForwardedValues' => [ 'type' => 'structure', 'required' => [ 'QueryString', 'Cookies', ], 'members' => [ 'QueryString' => [ 'shape' => 'boolean', ], 'Cookies' => [ 'shape' => 'CookiePreference', ], 'Headers' => [ 'shape' => 'Headers', ], 'QueryStringCacheKeys' => [ 'shape' => 'QueryStringCacheKeys', ], ], ], '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', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityConfigResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentityConfig' => [ 'shape' => 'CloudFrontOriginAccessIdentityConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentityConfig', ], 'GetCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentity' => [ 'shape' => 'CloudFrontOriginAccessIdentity', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentity', ], 'GetDistributionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'DistributionConfig' => [ 'shape' => 'DistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'DistributionConfig', ], 'GetDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetStreamingDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'StreamingDistributionConfig', ], 'GetStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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', ], ], ], 'HttpVersion' => [ 'type' => 'string', 'enum' => [ 'http1.1', 'http2', ], ], '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, ], 'InvalidMinimumProtocolVersion' => [ '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, ], 'InvalidQueryStringParameters' => [ '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, ], 'InvalidTTLOrder' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidTagging' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidViewerCertificate' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidWebACLId' => [ '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', ], 'ListDistributionsByWebACLIdRequest' => [ 'type' => 'structure', 'required' => [ 'WebACLId', ], 'members' => [ 'Marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'MaxItems', ], 'WebACLId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'WebACLId', ], ], ], 'ListDistributionsByWebACLIdResult' => [ 'type' => 'structure', 'members' => [ 'DistributionList' => [ 'shape' => 'DistributionList', ], ], 'payload' => 'DistributionList', ], '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', ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], ], ], 'ListTagsForResourceResult' => [ 'type' => 'structure', 'required' => [ 'Tags', ], 'members' => [ 'Tags' => [ 'shape' => 'Tags', ], ], 'payload' => 'Tags', ], '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, ], 'NoSuchResource' => [ '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', ], 'CustomHeaders' => [ 'shape' => 'CustomHeaders', ], 'S3OriginConfig' => [ 'shape' => 'S3OriginConfig', ], 'CustomOriginConfig' => [ 'shape' => 'CustomOriginConfig', ], ], ], 'OriginCustomHeader' => [ 'type' => 'structure', 'required' => [ 'HeaderName', 'HeaderValue', ], 'members' => [ 'HeaderName' => [ 'shape' => 'string', ], 'HeaderValue' => [ 'shape' => 'string', ], ], ], 'OriginCustomHeadersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OriginCustomHeader', 'locationName' => 'OriginCustomHeader', ], ], 'OriginList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Origin', 'locationName' => 'Origin', ], 'min' => 1, ], 'OriginProtocolPolicy' => [ 'type' => 'string', 'enum' => [ 'http-only', 'match-viewer', 'https-only', ], ], 'OriginSslProtocols' => [ 'type' => 'structure', 'required' => [ 'Quantity', 'Items', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'SslProtocolsList', ], ], ], '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', ], ], 'QueryStringCacheKeys' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'QueryStringCacheKeysList', ], ], ], 'QueryStringCacheKeysList' => [ 'type' => 'list', 'member' => [ 'shape' => 'string', 'locationName' => 'Name', ], ], 'ResourceARN' => [ 'type' => 'string', 'pattern' => 'arn:aws:cloudfront::[0-9]+:.*', ], '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', ], ], 'SslProtocol' => [ 'type' => 'string', 'enum' => [ 'SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2', ], ], 'SslProtocolsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SslProtocol', 'locationName' => 'SslProtocol', ], ], 'StreamingDistribution' => [ 'type' => 'structure', 'required' => [ 'Id', 'ARN', 'Status', 'DomainName', 'ActiveTrustedSigners', 'StreamingDistributionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], ], ], 'StreamingDistributionConfigWithTags' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfig', 'Tags', ], 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], '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', 'ARN', 'Status', 'LastModifiedTime', 'DomainName', 'S3Origin', 'Aliases', 'TrustedSigners', 'Comment', 'PriceClass', 'Enabled', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', 'locationName' => 'Key', ], ], 'TagKeys' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'TagKeyList', ], ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', 'locationName' => 'Tag', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'Tags', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'Tags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-29/', ], ], ], 'payload' => 'Tags', ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'Tags' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'TagList', ], ], ], '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, ], 'TooManyOriginCustomHeaders' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyOrigins' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyQueryStringParameters' => [ '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', ], ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'TagKeys', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], 'TagKeys' => [ 'shape' => 'TagKeys', 'locationName' => 'TagKeys', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-29/', ], ], ], 'payload' => 'TagKeys', ], 'UpdateCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'CloudFrontOriginAccessIdentityConfig', 'Id', ], 'members' => [ 'CloudFrontOriginAccessIdentityConfig' => [ 'shape' => 'CloudFrontOriginAccessIdentityConfig', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-29/', ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-29/', ], ], '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', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-09-29/', ], ], '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' => [ 'CloudFrontDefaultCertificate' => [ 'shape' => 'boolean', ], 'IAMCertificateId' => [ 'shape' => 'string', ], 'ACMCertificateArn' => [ 'shape' => 'string', ], 'SSLSupportMethod' => [ 'shape' => 'SSLSupportMethod', ], 'MinimumProtocolVersion' => [ 'shape' => 'MinimumProtocolVersion', ], 'Certificate' => [ 'shape' => 'string', 'deprecated' => true, ], 'CertificateSource' => [ 'shape' => 'CertificateSource', 'deprecated' => true, ], ], ], '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/Aws/data/cloudfront/2016-09-29/paginators-1.json.php b/lib/aws/Aws/data/cloudfront/2016-09-29/paginators-1.json.php new file mode 100644 index 0000000..28cc066 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-09-29/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-09-29/paginators-1.json +return [ '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/Aws/data/cloudfront/2016-09-29/waiters-1.json.php b/lib/aws/Aws/data/cloudfront/2016-09-29/waiters-1.json.php new file mode 100644 index 0000000..1f2ba5b --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-09-29/waiters-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-09-29/waiters-1.json +return [ 'waiters' => [ '__default__' => [ 'success_type' => 'output', 'success_path' => 'Status', ], 'StreamingDistributionDeployed' => [ 'operation' => 'GetStreamingDistribution', 'description' => 'Wait until a streaming distribution is deployed.', 'interval' => 60, 'max_attempts' => 25, 'success_value' => 'Deployed', ], 'DistributionDeployed' => [ 'operation' => 'GetDistribution', 'description' => 'Wait until a distribution is deployed.', 'interval' => 60, 'max_attempts' => 25, 'success_value' => 'Deployed', ], 'InvalidationCompleted' => [ 'operation' => 'GetInvalidation', 'description' => 'Wait until an invalidation has completed.', 'interval' => 20, 'max_attempts' => 30, 'success_value' => 'Completed', ], ],]; diff --git a/lib/aws/Aws/data/cloudfront/2016-09-29/waiters-2.json.php b/lib/aws/Aws/data/cloudfront/2016-09-29/waiters-2.json.php new file mode 100644 index 0000000..216b139 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-09-29/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-09-29/waiters-2.json +return [ '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/Aws/data/cloudfront/2016-11-25/api-2.json.php b/lib/aws/Aws/data/cloudfront/2016-11-25/api-2.json.php new file mode 100644 index 0000000..ac37a36 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-11-25/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-11-25/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-11-25', 'endpointPrefix' => 'cloudfront', 'globalEndpoint' => 'cloudfront.amazonaws.com', 'protocol' => 'rest-xml', 'serviceAbbreviation' => 'CloudFront', 'serviceFullName' => 'Amazon CloudFront', 'signatureVersion' => 'v4', 'uid' => 'cloudfront-2016-11-25', ], 'operations' => [ 'CreateCloudFrontOriginAccessIdentity' => [ 'name' => 'CreateCloudFrontOriginAccessIdentity2016_11_25', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-11-25/origin-access-identity/cloudfront', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'CreateCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'CloudFrontOriginAccessIdentityAlreadyExists', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyCloudFrontOriginAccessIdentities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateDistribution' => [ 'name' => 'CreateDistribution2016_11_25', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-11-25/distribution', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDistributionRequest', ], 'output' => [ 'shape' => 'CreateDistributionResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'DistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'TooManyDistributions', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidProtocolSettings', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], [ 'shape' => 'TooManyDistributionsWithLambdaAssociations', ], [ 'shape' => 'TooManyLambdaFunctionAssociations', ], [ 'shape' => 'InvalidLambdaFunctionAssociation', ], ], ], 'CreateDistributionWithTags' => [ 'name' => 'CreateDistributionWithTags2016_11_25', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-11-25/distribution?WithTags', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDistributionWithTagsRequest', ], 'output' => [ 'shape' => 'CreateDistributionWithTagsResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'DistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'TooManyDistributions', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidProtocolSettings', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], [ 'shape' => 'TooManyDistributionsWithLambdaAssociations', ], [ 'shape' => 'TooManyLambdaFunctionAssociations', ], [ 'shape' => 'InvalidLambdaFunctionAssociation', ], ], ], 'CreateInvalidation' => [ 'name' => 'CreateInvalidation2016_11_25', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-11-25/distribution/{DistributionId}/invalidation', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateInvalidationRequest', ], 'output' => [ 'shape' => 'CreateInvalidationResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'BatchTooLarge', ], [ 'shape' => 'TooManyInvalidationsInProgress', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateStreamingDistribution' => [ 'name' => 'CreateStreamingDistribution2016_11_25', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-11-25/streaming-distribution', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStreamingDistributionRequest', ], 'output' => [ 'shape' => 'CreateStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'StreamingDistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'TooManyStreamingDistributions', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateStreamingDistributionWithTags' => [ 'name' => 'CreateStreamingDistributionWithTags2016_11_25', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-11-25/streaming-distribution?WithTags', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStreamingDistributionWithTagsRequest', ], 'output' => [ 'shape' => 'CreateStreamingDistributionWithTagsResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'StreamingDistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'TooManyStreamingDistributions', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidTagging', ], ], ], 'DeleteCloudFrontOriginAccessIdentity' => [ 'name' => 'DeleteCloudFrontOriginAccessIdentity2016_11_25', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2016-11-25/origin-access-identity/cloudfront/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteCloudFrontOriginAccessIdentityRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'CloudFrontOriginAccessIdentityInUse', ], ], ], 'DeleteDistribution' => [ 'name' => 'DeleteDistribution2016_11_25', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2016-11-25/distribution/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDistributionRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'DistributionNotDisabled', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'DeleteStreamingDistribution' => [ 'name' => 'DeleteStreamingDistribution2016_11_25', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2016-11-25/streaming-distribution/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteStreamingDistributionRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'StreamingDistributionNotDisabled', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'GetCloudFrontOriginAccessIdentity' => [ 'name' => 'GetCloudFrontOriginAccessIdentity2016_11_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-11-25/origin-access-identity/cloudfront/{Id}', ], 'input' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetCloudFrontOriginAccessIdentityConfig' => [ 'name' => 'GetCloudFrontOriginAccessIdentityConfig2016_11_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-11-25/origin-access-identity/cloudfront/{Id}/config', ], 'input' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityConfigRequest', ], 'output' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetDistribution' => [ 'name' => 'GetDistribution2016_11_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-11-25/distribution/{Id}', ], 'input' => [ 'shape' => 'GetDistributionRequest', ], 'output' => [ 'shape' => 'GetDistributionResult', ], 'errors' => [ [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetDistributionConfig' => [ 'name' => 'GetDistributionConfig2016_11_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-11-25/distribution/{Id}/config', ], 'input' => [ 'shape' => 'GetDistributionConfigRequest', ], 'output' => [ 'shape' => 'GetDistributionConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetInvalidation' => [ 'name' => 'GetInvalidation2016_11_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-11-25/distribution/{DistributionId}/invalidation/{Id}', ], 'input' => [ 'shape' => 'GetInvalidationRequest', ], 'output' => [ 'shape' => 'GetInvalidationResult', ], 'errors' => [ [ 'shape' => 'NoSuchInvalidation', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetStreamingDistribution' => [ 'name' => 'GetStreamingDistribution2016_11_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-11-25/streaming-distribution/{Id}', ], 'input' => [ 'shape' => 'GetStreamingDistributionRequest', ], 'output' => [ 'shape' => 'GetStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetStreamingDistributionConfig' => [ 'name' => 'GetStreamingDistributionConfig2016_11_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-11-25/streaming-distribution/{Id}/config', ], 'input' => [ 'shape' => 'GetStreamingDistributionConfigRequest', ], 'output' => [ 'shape' => 'GetStreamingDistributionConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'ListCloudFrontOriginAccessIdentities' => [ 'name' => 'ListCloudFrontOriginAccessIdentities2016_11_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-11-25/origin-access-identity/cloudfront', ], 'input' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesRequest', ], 'output' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListDistributions' => [ 'name' => 'ListDistributions2016_11_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-11-25/distribution', ], 'input' => [ 'shape' => 'ListDistributionsRequest', ], 'output' => [ 'shape' => 'ListDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListDistributionsByWebACLId' => [ 'name' => 'ListDistributionsByWebACLId2016_11_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-11-25/distributionsByWebACLId/{WebACLId}', ], 'input' => [ 'shape' => 'ListDistributionsByWebACLIdRequest', ], 'output' => [ 'shape' => 'ListDistributionsByWebACLIdResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidWebACLId', ], ], ], 'ListInvalidations' => [ 'name' => 'ListInvalidations2016_11_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-11-25/distribution/{DistributionId}/invalidation', ], 'input' => [ 'shape' => 'ListInvalidationsRequest', ], 'output' => [ 'shape' => 'ListInvalidationsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'ListStreamingDistributions' => [ 'name' => 'ListStreamingDistributions2016_11_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-11-25/streaming-distribution', ], 'input' => [ 'shape' => 'ListStreamingDistributionsRequest', ], 'output' => [ 'shape' => 'ListStreamingDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource2016_11_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-11-25/tagging', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'TagResource' => [ 'name' => 'TagResource2016_11_25', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-11-25/tagging?Operation=Tag', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource2016_11_25', 'http' => [ 'method' => 'POST', 'requestUri' => '/2016-11-25/tagging?Operation=Untag', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'UpdateCloudFrontOriginAccessIdentity' => [ 'name' => 'UpdateCloudFrontOriginAccessIdentity2016_11_25', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2016-11-25/origin-access-identity/cloudfront/{Id}/config', ], 'input' => [ 'shape' => 'UpdateCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'UpdateCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'UpdateDistribution' => [ 'name' => 'UpdateDistribution2016_11_25', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2016-11-25/distribution/{Id}/config', ], 'input' => [ 'shape' => 'UpdateDistributionRequest', ], 'output' => [ 'shape' => 'UpdateDistributionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], [ 'shape' => 'TooManyDistributionsWithLambdaAssociations', ], [ 'shape' => 'TooManyLambdaFunctionAssociations', ], [ 'shape' => 'InvalidLambdaFunctionAssociation', ], ], ], 'UpdateStreamingDistribution' => [ 'name' => 'UpdateStreamingDistribution2016_11_25', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2016-11-25/streaming-distribution/{Id}/config', ], 'input' => [ 'shape' => 'UpdateStreamingDistributionRequest', ], 'output' => [ 'shape' => 'UpdateStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InconsistentQuantities', ], ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], 'Compress' => [ 'shape' => 'boolean', ], 'LambdaFunctionAssociations' => [ 'shape' => 'LambdaFunctionAssociations', ], ], ], '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', ], ], ], 'CertificateSource' => [ 'type' => 'string', 'enum' => [ 'cloudfront', 'iam', 'acm', ], ], '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', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-11-25/', ], ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-11-25/', ], ], ], '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', ], 'CreateDistributionWithTagsRequest' => [ 'type' => 'structure', 'required' => [ 'DistributionConfigWithTags', ], 'members' => [ 'DistributionConfigWithTags' => [ 'shape' => 'DistributionConfigWithTags', 'locationName' => 'DistributionConfigWithTags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-11-25/', ], ], ], 'payload' => 'DistributionConfigWithTags', ], 'CreateDistributionWithTagsResult' => [ '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', 'locationName' => 'InvalidationBatch', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-11-25/', ], ], ], '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', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-11-25/', ], ], ], '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', ], 'CreateStreamingDistributionWithTagsRequest' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfigWithTags', ], 'members' => [ 'StreamingDistributionConfigWithTags' => [ 'shape' => 'StreamingDistributionConfigWithTags', 'locationName' => 'StreamingDistributionConfigWithTags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-11-25/', ], ], ], 'payload' => 'StreamingDistributionConfigWithTags', ], 'CreateStreamingDistributionWithTagsResult' => [ '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', ], ], ], 'CustomHeaders' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'OriginCustomHeadersList', ], ], ], 'CustomOriginConfig' => [ 'type' => 'structure', 'required' => [ 'HTTPPort', 'HTTPSPort', 'OriginProtocolPolicy', ], 'members' => [ 'HTTPPort' => [ 'shape' => 'integer', ], 'HTTPSPort' => [ 'shape' => 'integer', ], 'OriginProtocolPolicy' => [ 'shape' => 'OriginProtocolPolicy', ], 'OriginSslProtocols' => [ 'shape' => 'OriginSslProtocols', ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], 'Compress' => [ 'shape' => 'boolean', ], 'LambdaFunctionAssociations' => [ 'shape' => 'LambdaFunctionAssociations', ], ], ], 'DeleteCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'Distribution' => [ 'type' => 'structure', 'required' => [ 'Id', 'ARN', 'Status', 'LastModifiedTime', 'InProgressInvalidationBatches', 'DomainName', 'ActiveTrustedSigners', 'DistributionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], 'WebACLId' => [ 'shape' => 'string', ], 'HttpVersion' => [ 'shape' => 'HttpVersion', ], 'IsIPV6Enabled' => [ 'shape' => 'boolean', ], ], ], 'DistributionConfigWithTags' => [ 'type' => 'structure', 'required' => [ 'DistributionConfig', 'Tags', ], 'members' => [ 'DistributionConfig' => [ 'shape' => 'DistributionConfig', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], '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', 'ARN', 'Status', 'LastModifiedTime', 'DomainName', 'Aliases', 'Origins', 'DefaultCacheBehavior', 'CacheBehaviors', 'CustomErrorResponses', 'Comment', 'PriceClass', 'Enabled', 'ViewerCertificate', 'Restrictions', 'WebACLId', 'HttpVersion', 'IsIPV6Enabled', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], 'WebACLId' => [ 'shape' => 'string', ], 'HttpVersion' => [ 'shape' => 'HttpVersion', ], 'IsIPV6Enabled' => [ 'shape' => 'boolean', ], ], ], 'DistributionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DistributionSummary', 'locationName' => 'DistributionSummary', ], ], 'EventType' => [ 'type' => 'string', 'enum' => [ 'viewer-request', 'viewer-response', 'origin-request', 'origin-response', ], ], 'ForwardedValues' => [ 'type' => 'structure', 'required' => [ 'QueryString', 'Cookies', ], 'members' => [ 'QueryString' => [ 'shape' => 'boolean', ], 'Cookies' => [ 'shape' => 'CookiePreference', ], 'Headers' => [ 'shape' => 'Headers', ], 'QueryStringCacheKeys' => [ 'shape' => 'QueryStringCacheKeys', ], ], ], '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', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityConfigResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentityConfig' => [ 'shape' => 'CloudFrontOriginAccessIdentityConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentityConfig', ], 'GetCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentity' => [ 'shape' => 'CloudFrontOriginAccessIdentity', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentity', ], 'GetDistributionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'DistributionConfig' => [ 'shape' => 'DistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'DistributionConfig', ], 'GetDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetStreamingDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'StreamingDistributionConfig', ], 'GetStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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', ], ], ], 'HttpVersion' => [ 'type' => 'string', 'enum' => [ 'http1.1', 'http2', ], ], '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, ], 'InvalidLambdaFunctionAssociation' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidLocationCode' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidMinimumProtocolVersion' => [ '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, ], 'InvalidQueryStringParameters' => [ '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, ], 'InvalidTTLOrder' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidTagging' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidViewerCertificate' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidWebACLId' => [ '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', ], ], ], 'LambdaFunctionAssociation' => [ 'type' => 'structure', 'members' => [ 'LambdaFunctionARN' => [ 'shape' => 'string', ], 'EventType' => [ 'shape' => 'EventType', ], ], ], 'LambdaFunctionAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LambdaFunctionAssociation', 'locationName' => 'LambdaFunctionAssociation', ], ], 'LambdaFunctionAssociations' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'LambdaFunctionAssociationList', ], ], ], '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', ], 'ListDistributionsByWebACLIdRequest' => [ 'type' => 'structure', 'required' => [ 'WebACLId', ], 'members' => [ 'Marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'MaxItems', ], 'WebACLId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'WebACLId', ], ], ], 'ListDistributionsByWebACLIdResult' => [ 'type' => 'structure', 'members' => [ 'DistributionList' => [ 'shape' => 'DistributionList', ], ], 'payload' => 'DistributionList', ], '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', ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], ], ], 'ListTagsForResourceResult' => [ 'type' => 'structure', 'required' => [ 'Tags', ], 'members' => [ 'Tags' => [ 'shape' => 'Tags', ], ], 'payload' => 'Tags', ], '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, ], 'NoSuchResource' => [ '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', ], 'CustomHeaders' => [ 'shape' => 'CustomHeaders', ], 'S3OriginConfig' => [ 'shape' => 'S3OriginConfig', ], 'CustomOriginConfig' => [ 'shape' => 'CustomOriginConfig', ], ], ], 'OriginCustomHeader' => [ 'type' => 'structure', 'required' => [ 'HeaderName', 'HeaderValue', ], 'members' => [ 'HeaderName' => [ 'shape' => 'string', ], 'HeaderValue' => [ 'shape' => 'string', ], ], ], 'OriginCustomHeadersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OriginCustomHeader', 'locationName' => 'OriginCustomHeader', ], ], 'OriginList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Origin', 'locationName' => 'Origin', ], 'min' => 1, ], 'OriginProtocolPolicy' => [ 'type' => 'string', 'enum' => [ 'http-only', 'match-viewer', 'https-only', ], ], 'OriginSslProtocols' => [ 'type' => 'structure', 'required' => [ 'Quantity', 'Items', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'SslProtocolsList', ], ], ], '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', ], ], 'QueryStringCacheKeys' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'QueryStringCacheKeysList', ], ], ], 'QueryStringCacheKeysList' => [ 'type' => 'list', 'member' => [ 'shape' => 'string', 'locationName' => 'Name', ], ], 'ResourceARN' => [ 'type' => 'string', 'pattern' => 'arn:aws:cloudfront::[0-9]+:.*', ], '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', ], ], 'SslProtocol' => [ 'type' => 'string', 'enum' => [ 'SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2', ], ], 'SslProtocolsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SslProtocol', 'locationName' => 'SslProtocol', ], ], 'StreamingDistribution' => [ 'type' => 'structure', 'required' => [ 'Id', 'ARN', 'Status', 'DomainName', 'ActiveTrustedSigners', 'StreamingDistributionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], ], ], 'StreamingDistributionConfigWithTags' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfig', 'Tags', ], 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], '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', 'ARN', 'Status', 'LastModifiedTime', 'DomainName', 'S3Origin', 'Aliases', 'TrustedSigners', 'Comment', 'PriceClass', 'Enabled', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', 'locationName' => 'Key', ], ], 'TagKeys' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'TagKeyList', ], ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', 'locationName' => 'Tag', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'Tags', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'Tags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-11-25/', ], ], ], 'payload' => 'Tags', ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'Tags' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'TagList', ], ], ], '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, ], 'TooManyDistributionsWithLambdaAssociations' => [ '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, ], 'TooManyLambdaFunctionAssociations' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyOriginCustomHeaders' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyOrigins' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyQueryStringParameters' => [ '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', ], ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'TagKeys', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], 'TagKeys' => [ 'shape' => 'TagKeys', 'locationName' => 'TagKeys', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-11-25/', ], ], ], 'payload' => 'TagKeys', ], 'UpdateCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'CloudFrontOriginAccessIdentityConfig', 'Id', ], 'members' => [ 'CloudFrontOriginAccessIdentityConfig' => [ 'shape' => 'CloudFrontOriginAccessIdentityConfig', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-11-25/', ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-11-25/', ], ], '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', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2016-11-25/', ], ], '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' => [ 'CloudFrontDefaultCertificate' => [ 'shape' => 'boolean', ], 'IAMCertificateId' => [ 'shape' => 'string', ], 'ACMCertificateArn' => [ 'shape' => 'string', ], 'SSLSupportMethod' => [ 'shape' => 'SSLSupportMethod', ], 'MinimumProtocolVersion' => [ 'shape' => 'MinimumProtocolVersion', ], 'Certificate' => [ 'shape' => 'string', 'deprecated' => true, ], 'CertificateSource' => [ 'shape' => 'CertificateSource', 'deprecated' => true, ], ], ], '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/Aws/data/cloudfront/2016-11-25/paginators-1.json.php b/lib/aws/Aws/data/cloudfront/2016-11-25/paginators-1.json.php new file mode 100644 index 0000000..f52e8ff --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-11-25/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-11-25/paginators-1.json +return [ '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/Aws/data/cloudfront/2016-11-25/waiters-1.json.php b/lib/aws/Aws/data/cloudfront/2016-11-25/waiters-1.json.php new file mode 100644 index 0000000..fc680be --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-11-25/waiters-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-11-25/waiters-1.json +return [ 'waiters' => [ '__default__' => [ 'success_type' => 'output', 'success_path' => 'Status', ], 'StreamingDistributionDeployed' => [ 'operation' => 'GetStreamingDistribution', 'description' => 'Wait until a streaming distribution is deployed.', 'interval' => 60, 'max_attempts' => 25, 'success_value' => 'Deployed', ], 'DistributionDeployed' => [ 'operation' => 'GetDistribution', 'description' => 'Wait until a distribution is deployed.', 'interval' => 60, 'max_attempts' => 25, 'success_value' => 'Deployed', ], 'InvalidationCompleted' => [ 'operation' => 'GetInvalidation', 'description' => 'Wait until an invalidation has completed.', 'interval' => 20, 'max_attempts' => 30, 'success_value' => 'Completed', ], ],]; diff --git a/lib/aws/Aws/data/cloudfront/2016-11-25/waiters-2.json.php b/lib/aws/Aws/data/cloudfront/2016-11-25/waiters-2.json.php new file mode 100644 index 0000000..6fe0a55 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2016-11-25/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2016-11-25/waiters-2.json +return [ '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/Aws/data/cloudfront/2017-03-25/api-2.json.php b/lib/aws/Aws/data/cloudfront/2017-03-25/api-2.json.php new file mode 100644 index 0000000..92cbd39 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2017-03-25/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2017-03-25/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-03-25', 'endpointPrefix' => 'cloudfront', 'globalEndpoint' => 'cloudfront.amazonaws.com', 'protocol' => 'rest-xml', 'serviceAbbreviation' => 'CloudFront', 'serviceFullName' => 'Amazon CloudFront', 'signatureVersion' => 'v4', 'uid' => 'cloudfront-2017-03-25', ], 'operations' => [ 'CreateCloudFrontOriginAccessIdentity' => [ 'name' => 'CreateCloudFrontOriginAccessIdentity2017_03_25', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-03-25/origin-access-identity/cloudfront', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'CreateCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'CloudFrontOriginAccessIdentityAlreadyExists', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyCloudFrontOriginAccessIdentities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateDistribution' => [ 'name' => 'CreateDistribution2017_03_25', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-03-25/distribution', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDistributionRequest', ], 'output' => [ 'shape' => 'CreateDistributionResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'DistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'TooManyDistributions', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidProtocolSettings', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], [ 'shape' => 'TooManyDistributionsWithLambdaAssociations', ], [ 'shape' => 'TooManyLambdaFunctionAssociations', ], [ 'shape' => 'InvalidLambdaFunctionAssociation', ], [ 'shape' => 'InvalidOriginReadTimeout', ], [ 'shape' => 'InvalidOriginKeepaliveTimeout', ], ], ], 'CreateDistributionWithTags' => [ 'name' => 'CreateDistributionWithTags2017_03_25', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-03-25/distribution?WithTags', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDistributionWithTagsRequest', ], 'output' => [ 'shape' => 'CreateDistributionWithTagsResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'DistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'TooManyDistributions', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidProtocolSettings', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], [ 'shape' => 'TooManyDistributionsWithLambdaAssociations', ], [ 'shape' => 'TooManyLambdaFunctionAssociations', ], [ 'shape' => 'InvalidLambdaFunctionAssociation', ], [ 'shape' => 'InvalidOriginReadTimeout', ], [ 'shape' => 'InvalidOriginKeepaliveTimeout', ], ], ], 'CreateInvalidation' => [ 'name' => 'CreateInvalidation2017_03_25', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-03-25/distribution/{DistributionId}/invalidation', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateInvalidationRequest', ], 'output' => [ 'shape' => 'CreateInvalidationResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'BatchTooLarge', ], [ 'shape' => 'TooManyInvalidationsInProgress', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateStreamingDistribution' => [ 'name' => 'CreateStreamingDistribution2017_03_25', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-03-25/streaming-distribution', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStreamingDistributionRequest', ], 'output' => [ 'shape' => 'CreateStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'StreamingDistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'TooManyStreamingDistributions', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateStreamingDistributionWithTags' => [ 'name' => 'CreateStreamingDistributionWithTags2017_03_25', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-03-25/streaming-distribution?WithTags', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStreamingDistributionWithTagsRequest', ], 'output' => [ 'shape' => 'CreateStreamingDistributionWithTagsResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'StreamingDistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'TooManyStreamingDistributions', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidTagging', ], ], ], 'DeleteCloudFrontOriginAccessIdentity' => [ 'name' => 'DeleteCloudFrontOriginAccessIdentity2017_03_25', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2017-03-25/origin-access-identity/cloudfront/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteCloudFrontOriginAccessIdentityRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'CloudFrontOriginAccessIdentityInUse', ], ], ], 'DeleteDistribution' => [ 'name' => 'DeleteDistribution2017_03_25', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2017-03-25/distribution/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDistributionRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'DistributionNotDisabled', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'DeleteServiceLinkedRole' => [ 'name' => 'DeleteServiceLinkedRole2017_03_25', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2017-03-25/service-linked-role/{RoleName}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteServiceLinkedRoleRequest', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'ResourceInUse', ], [ 'shape' => 'NoSuchResource', ], ], ], 'DeleteStreamingDistribution' => [ 'name' => 'DeleteStreamingDistribution2017_03_25', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2017-03-25/streaming-distribution/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteStreamingDistributionRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'StreamingDistributionNotDisabled', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'GetCloudFrontOriginAccessIdentity' => [ 'name' => 'GetCloudFrontOriginAccessIdentity2017_03_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-03-25/origin-access-identity/cloudfront/{Id}', ], 'input' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetCloudFrontOriginAccessIdentityConfig' => [ 'name' => 'GetCloudFrontOriginAccessIdentityConfig2017_03_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-03-25/origin-access-identity/cloudfront/{Id}/config', ], 'input' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityConfigRequest', ], 'output' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetDistribution' => [ 'name' => 'GetDistribution2017_03_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-03-25/distribution/{Id}', ], 'input' => [ 'shape' => 'GetDistributionRequest', ], 'output' => [ 'shape' => 'GetDistributionResult', ], 'errors' => [ [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetDistributionConfig' => [ 'name' => 'GetDistributionConfig2017_03_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-03-25/distribution/{Id}/config', ], 'input' => [ 'shape' => 'GetDistributionConfigRequest', ], 'output' => [ 'shape' => 'GetDistributionConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetInvalidation' => [ 'name' => 'GetInvalidation2017_03_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-03-25/distribution/{DistributionId}/invalidation/{Id}', ], 'input' => [ 'shape' => 'GetInvalidationRequest', ], 'output' => [ 'shape' => 'GetInvalidationResult', ], 'errors' => [ [ 'shape' => 'NoSuchInvalidation', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetStreamingDistribution' => [ 'name' => 'GetStreamingDistribution2017_03_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-03-25/streaming-distribution/{Id}', ], 'input' => [ 'shape' => 'GetStreamingDistributionRequest', ], 'output' => [ 'shape' => 'GetStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetStreamingDistributionConfig' => [ 'name' => 'GetStreamingDistributionConfig2017_03_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-03-25/streaming-distribution/{Id}/config', ], 'input' => [ 'shape' => 'GetStreamingDistributionConfigRequest', ], 'output' => [ 'shape' => 'GetStreamingDistributionConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'ListCloudFrontOriginAccessIdentities' => [ 'name' => 'ListCloudFrontOriginAccessIdentities2017_03_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-03-25/origin-access-identity/cloudfront', ], 'input' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesRequest', ], 'output' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListDistributions' => [ 'name' => 'ListDistributions2017_03_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-03-25/distribution', ], 'input' => [ 'shape' => 'ListDistributionsRequest', ], 'output' => [ 'shape' => 'ListDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListDistributionsByWebACLId' => [ 'name' => 'ListDistributionsByWebACLId2017_03_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-03-25/distributionsByWebACLId/{WebACLId}', ], 'input' => [ 'shape' => 'ListDistributionsByWebACLIdRequest', ], 'output' => [ 'shape' => 'ListDistributionsByWebACLIdResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidWebACLId', ], ], ], 'ListInvalidations' => [ 'name' => 'ListInvalidations2017_03_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-03-25/distribution/{DistributionId}/invalidation', ], 'input' => [ 'shape' => 'ListInvalidationsRequest', ], 'output' => [ 'shape' => 'ListInvalidationsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'ListStreamingDistributions' => [ 'name' => 'ListStreamingDistributions2017_03_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-03-25/streaming-distribution', ], 'input' => [ 'shape' => 'ListStreamingDistributionsRequest', ], 'output' => [ 'shape' => 'ListStreamingDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource2017_03_25', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-03-25/tagging', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'TagResource' => [ 'name' => 'TagResource2017_03_25', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-03-25/tagging?Operation=Tag', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource2017_03_25', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-03-25/tagging?Operation=Untag', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'UpdateCloudFrontOriginAccessIdentity' => [ 'name' => 'UpdateCloudFrontOriginAccessIdentity2017_03_25', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2017-03-25/origin-access-identity/cloudfront/{Id}/config', ], 'input' => [ 'shape' => 'UpdateCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'UpdateCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'UpdateDistribution' => [ 'name' => 'UpdateDistribution2017_03_25', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2017-03-25/distribution/{Id}/config', ], 'input' => [ 'shape' => 'UpdateDistributionRequest', ], 'output' => [ 'shape' => 'UpdateDistributionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], [ 'shape' => 'TooManyDistributionsWithLambdaAssociations', ], [ 'shape' => 'TooManyLambdaFunctionAssociations', ], [ 'shape' => 'InvalidLambdaFunctionAssociation', ], [ 'shape' => 'InvalidOriginReadTimeout', ], [ 'shape' => 'InvalidOriginKeepaliveTimeout', ], ], ], 'UpdateStreamingDistribution' => [ 'name' => 'UpdateStreamingDistribution2017_03_25', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2017-03-25/streaming-distribution/{Id}/config', ], 'input' => [ 'shape' => 'UpdateStreamingDistributionRequest', ], 'output' => [ 'shape' => 'UpdateStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InconsistentQuantities', ], ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], 'Compress' => [ 'shape' => 'boolean', ], 'LambdaFunctionAssociations' => [ 'shape' => 'LambdaFunctionAssociations', ], ], ], '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', ], ], ], 'CertificateSource' => [ 'type' => 'string', 'enum' => [ 'cloudfront', 'iam', 'acm', ], ], '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', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-03-25/', ], ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-03-25/', ], ], ], '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', ], 'CreateDistributionWithTagsRequest' => [ 'type' => 'structure', 'required' => [ 'DistributionConfigWithTags', ], 'members' => [ 'DistributionConfigWithTags' => [ 'shape' => 'DistributionConfigWithTags', 'locationName' => 'DistributionConfigWithTags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-03-25/', ], ], ], 'payload' => 'DistributionConfigWithTags', ], 'CreateDistributionWithTagsResult' => [ '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', 'locationName' => 'InvalidationBatch', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-03-25/', ], ], ], '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', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-03-25/', ], ], ], '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', ], 'CreateStreamingDistributionWithTagsRequest' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfigWithTags', ], 'members' => [ 'StreamingDistributionConfigWithTags' => [ 'shape' => 'StreamingDistributionConfigWithTags', 'locationName' => 'StreamingDistributionConfigWithTags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-03-25/', ], ], ], 'payload' => 'StreamingDistributionConfigWithTags', ], 'CreateStreamingDistributionWithTagsResult' => [ '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', ], ], ], 'CustomHeaders' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'OriginCustomHeadersList', ], ], ], 'CustomOriginConfig' => [ 'type' => 'structure', 'required' => [ 'HTTPPort', 'HTTPSPort', 'OriginProtocolPolicy', ], 'members' => [ 'HTTPPort' => [ 'shape' => 'integer', ], 'HTTPSPort' => [ 'shape' => 'integer', ], 'OriginProtocolPolicy' => [ 'shape' => 'OriginProtocolPolicy', ], 'OriginSslProtocols' => [ 'shape' => 'OriginSslProtocols', ], 'OriginReadTimeout' => [ 'shape' => 'integer', ], 'OriginKeepaliveTimeout' => [ 'shape' => 'integer', ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], 'Compress' => [ 'shape' => 'boolean', ], 'LambdaFunctionAssociations' => [ 'shape' => 'LambdaFunctionAssociations', ], ], ], 'DeleteCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteServiceLinkedRoleRequest' => [ 'type' => 'structure', 'required' => [ 'RoleName', ], 'members' => [ 'RoleName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'RoleName', ], ], ], 'DeleteStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'Distribution' => [ 'type' => 'structure', 'required' => [ 'Id', 'ARN', 'Status', 'LastModifiedTime', 'InProgressInvalidationBatches', 'DomainName', 'ActiveTrustedSigners', 'DistributionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], 'WebACLId' => [ 'shape' => 'string', ], 'HttpVersion' => [ 'shape' => 'HttpVersion', ], 'IsIPV6Enabled' => [ 'shape' => 'boolean', ], ], ], 'DistributionConfigWithTags' => [ 'type' => 'structure', 'required' => [ 'DistributionConfig', 'Tags', ], 'members' => [ 'DistributionConfig' => [ 'shape' => 'DistributionConfig', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], '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', 'ARN', 'Status', 'LastModifiedTime', 'DomainName', 'Aliases', 'Origins', 'DefaultCacheBehavior', 'CacheBehaviors', 'CustomErrorResponses', 'Comment', 'PriceClass', 'Enabled', 'ViewerCertificate', 'Restrictions', 'WebACLId', 'HttpVersion', 'IsIPV6Enabled', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], 'WebACLId' => [ 'shape' => 'string', ], 'HttpVersion' => [ 'shape' => 'HttpVersion', ], 'IsIPV6Enabled' => [ 'shape' => 'boolean', ], ], ], 'DistributionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DistributionSummary', 'locationName' => 'DistributionSummary', ], ], 'EventType' => [ 'type' => 'string', 'enum' => [ 'viewer-request', 'viewer-response', 'origin-request', 'origin-response', ], ], 'ForwardedValues' => [ 'type' => 'structure', 'required' => [ 'QueryString', 'Cookies', ], 'members' => [ 'QueryString' => [ 'shape' => 'boolean', ], 'Cookies' => [ 'shape' => 'CookiePreference', ], 'Headers' => [ 'shape' => 'Headers', ], 'QueryStringCacheKeys' => [ 'shape' => 'QueryStringCacheKeys', ], ], ], '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', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityConfigResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentityConfig' => [ 'shape' => 'CloudFrontOriginAccessIdentityConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentityConfig', ], 'GetCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentity' => [ 'shape' => 'CloudFrontOriginAccessIdentity', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentity', ], 'GetDistributionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'DistributionConfig' => [ 'shape' => 'DistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'DistributionConfig', ], 'GetDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetStreamingDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'StreamingDistributionConfig', ], 'GetStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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', ], ], ], 'HttpVersion' => [ 'type' => 'string', 'enum' => [ 'http1.1', 'http2', ], ], '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, ], 'InvalidLambdaFunctionAssociation' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidLocationCode' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidMinimumProtocolVersion' => [ '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, ], 'InvalidOriginKeepaliveTimeout' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidOriginReadTimeout' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidProtocolSettings' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidQueryStringParameters' => [ '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, ], 'InvalidTTLOrder' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidTagging' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidViewerCertificate' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidWebACLId' => [ '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', ], ], ], 'LambdaFunctionAssociation' => [ 'type' => 'structure', 'members' => [ 'LambdaFunctionARN' => [ 'shape' => 'string', ], 'EventType' => [ 'shape' => 'EventType', ], ], ], 'LambdaFunctionAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LambdaFunctionAssociation', 'locationName' => 'LambdaFunctionAssociation', ], ], 'LambdaFunctionAssociations' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'LambdaFunctionAssociationList', ], ], ], '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', ], 'ListDistributionsByWebACLIdRequest' => [ 'type' => 'structure', 'required' => [ 'WebACLId', ], 'members' => [ 'Marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'MaxItems', ], 'WebACLId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'WebACLId', ], ], ], 'ListDistributionsByWebACLIdResult' => [ 'type' => 'structure', 'members' => [ 'DistributionList' => [ 'shape' => 'DistributionList', ], ], 'payload' => 'DistributionList', ], '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', ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], ], ], 'ListTagsForResourceResult' => [ 'type' => 'structure', 'required' => [ 'Tags', ], 'members' => [ 'Tags' => [ 'shape' => 'Tags', ], ], 'payload' => 'Tags', ], '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', 'TLSv1_2016', 'TLSv1.1_2016', 'TLSv1.2_2018', ], ], '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, ], 'NoSuchResource' => [ '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', ], 'CustomHeaders' => [ 'shape' => 'CustomHeaders', ], 'S3OriginConfig' => [ 'shape' => 'S3OriginConfig', ], 'CustomOriginConfig' => [ 'shape' => 'CustomOriginConfig', ], ], ], 'OriginCustomHeader' => [ 'type' => 'structure', 'required' => [ 'HeaderName', 'HeaderValue', ], 'members' => [ 'HeaderName' => [ 'shape' => 'string', ], 'HeaderValue' => [ 'shape' => 'string', ], ], ], 'OriginCustomHeadersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OriginCustomHeader', 'locationName' => 'OriginCustomHeader', ], ], 'OriginList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Origin', 'locationName' => 'Origin', ], 'min' => 1, ], 'OriginProtocolPolicy' => [ 'type' => 'string', 'enum' => [ 'http-only', 'match-viewer', 'https-only', ], ], 'OriginSslProtocols' => [ 'type' => 'structure', 'required' => [ 'Quantity', 'Items', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'SslProtocolsList', ], ], ], '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', ], ], 'QueryStringCacheKeys' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'QueryStringCacheKeysList', ], ], ], 'QueryStringCacheKeysList' => [ 'type' => 'list', 'member' => [ 'shape' => 'string', 'locationName' => 'Name', ], ], 'ResourceARN' => [ 'type' => 'string', 'pattern' => 'arn:aws:cloudfront::[0-9]+:.*', ], 'ResourceInUse' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], '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', ], ], 'SslProtocol' => [ 'type' => 'string', 'enum' => [ 'SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2', ], ], 'SslProtocolsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SslProtocol', 'locationName' => 'SslProtocol', ], ], 'StreamingDistribution' => [ 'type' => 'structure', 'required' => [ 'Id', 'ARN', 'Status', 'DomainName', 'ActiveTrustedSigners', 'StreamingDistributionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], ], ], 'StreamingDistributionConfigWithTags' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfig', 'Tags', ], 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], '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', 'ARN', 'Status', 'LastModifiedTime', 'DomainName', 'S3Origin', 'Aliases', 'TrustedSigners', 'Comment', 'PriceClass', 'Enabled', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', 'locationName' => 'Key', ], ], 'TagKeys' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'TagKeyList', ], ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', 'locationName' => 'Tag', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'Tags', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'Tags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-03-25/', ], ], ], 'payload' => 'Tags', ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'Tags' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'TagList', ], ], ], '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, ], 'TooManyDistributionsWithLambdaAssociations' => [ '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, ], 'TooManyLambdaFunctionAssociations' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyOriginCustomHeaders' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyOrigins' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyQueryStringParameters' => [ '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', ], ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'TagKeys', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], 'TagKeys' => [ 'shape' => 'TagKeys', 'locationName' => 'TagKeys', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-03-25/', ], ], ], 'payload' => 'TagKeys', ], 'UpdateCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'CloudFrontOriginAccessIdentityConfig', 'Id', ], 'members' => [ 'CloudFrontOriginAccessIdentityConfig' => [ 'shape' => 'CloudFrontOriginAccessIdentityConfig', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-03-25/', ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-03-25/', ], ], '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', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-03-25/', ], ], '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' => [ 'CloudFrontDefaultCertificate' => [ 'shape' => 'boolean', ], 'IAMCertificateId' => [ 'shape' => 'string', ], 'ACMCertificateArn' => [ 'shape' => 'string', ], 'SSLSupportMethod' => [ 'shape' => 'SSLSupportMethod', ], 'MinimumProtocolVersion' => [ 'shape' => 'MinimumProtocolVersion', ], 'Certificate' => [ 'shape' => 'string', 'deprecated' => true, ], 'CertificateSource' => [ 'shape' => 'CertificateSource', 'deprecated' => true, ], ], ], '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/Aws/data/cloudfront/2017-03-25/paginators-1.json.php b/lib/aws/Aws/data/cloudfront/2017-03-25/paginators-1.json.php new file mode 100644 index 0000000..87fedcd --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2017-03-25/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2017-03-25/paginators-1.json +return [ 'pagination' => [ 'ListCloudFrontOriginAccessIdentities' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'CloudFrontOriginAccessIdentityList.IsTruncated', 'output_token' => 'CloudFrontOriginAccessIdentityList.NextMarker', 'result_key' => 'CloudFrontOriginAccessIdentityList.Items', ], 'ListDistributions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'DistributionList.IsTruncated', 'output_token' => 'DistributionList.NextMarker', 'result_key' => 'DistributionList.Items', ], 'ListInvalidations' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'InvalidationList.IsTruncated', 'output_token' => 'InvalidationList.NextMarker', 'result_key' => 'InvalidationList.Items', ], 'ListStreamingDistributions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'StreamingDistributionList.IsTruncated', 'output_token' => 'StreamingDistributionList.NextMarker', 'result_key' => 'StreamingDistributionList.Items', ], ],]; diff --git a/lib/aws/Aws/data/cloudfront/2017-03-25/waiters-1.json.php b/lib/aws/Aws/data/cloudfront/2017-03-25/waiters-1.json.php new file mode 100644 index 0000000..687c681 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2017-03-25/waiters-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2017-03-25/waiters-1.json +return [ 'waiters' => [ '__default__' => [ 'success_type' => 'output', 'success_path' => 'Status', ], 'StreamingDistributionDeployed' => [ 'operation' => 'GetStreamingDistribution', 'description' => 'Wait until a streaming distribution is deployed.', 'interval' => 60, 'max_attempts' => 25, 'success_value' => 'Deployed', ], 'DistributionDeployed' => [ 'operation' => 'GetDistribution', 'description' => 'Wait until a distribution is deployed.', 'interval' => 60, 'max_attempts' => 25, 'success_value' => 'Deployed', ], 'InvalidationCompleted' => [ 'operation' => 'GetInvalidation', 'description' => 'Wait until an invalidation has completed.', 'interval' => 20, 'max_attempts' => 30, 'success_value' => 'Completed', ], ],]; diff --git a/lib/aws/Aws/data/cloudfront/2017-03-25/waiters-2.json.php b/lib/aws/Aws/data/cloudfront/2017-03-25/waiters-2.json.php new file mode 100644 index 0000000..9caa1cf --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2017-03-25/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2017-03-25/waiters-2.json +return [ '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/Aws/data/cloudfront/2017-10-30/api-2.json.php b/lib/aws/Aws/data/cloudfront/2017-10-30/api-2.json.php new file mode 100644 index 0000000..835b162 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2017-10-30/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2017-10-30/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-10-30', 'endpointPrefix' => 'cloudfront', 'globalEndpoint' => 'cloudfront.amazonaws.com', 'protocol' => 'rest-xml', 'serviceAbbreviation' => 'CloudFront', 'serviceFullName' => 'Amazon CloudFront', 'serviceId' => 'CloudFront', 'signatureVersion' => 'v4', 'uid' => 'cloudfront-2017-10-30', ], 'operations' => [ 'CreateCloudFrontOriginAccessIdentity' => [ 'name' => 'CreateCloudFrontOriginAccessIdentity2017_10_30', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-10-30/origin-access-identity/cloudfront', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'CreateCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'CloudFrontOriginAccessIdentityAlreadyExists', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyCloudFrontOriginAccessIdentities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateDistribution' => [ 'name' => 'CreateDistribution2017_10_30', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-10-30/distribution', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDistributionRequest', ], 'output' => [ 'shape' => 'CreateDistributionResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'DistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'TooManyDistributions', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidProtocolSettings', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], [ 'shape' => 'TooManyDistributionsWithLambdaAssociations', ], [ 'shape' => 'TooManyLambdaFunctionAssociations', ], [ 'shape' => 'InvalidLambdaFunctionAssociation', ], [ 'shape' => 'InvalidOriginReadTimeout', ], [ 'shape' => 'InvalidOriginKeepaliveTimeout', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], [ 'shape' => 'IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior', ], [ 'shape' => 'TooManyDistributionsAssociatedToFieldLevelEncryptionConfig', ], ], ], 'CreateDistributionWithTags' => [ 'name' => 'CreateDistributionWithTags2017_10_30', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-10-30/distribution?WithTags', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDistributionWithTagsRequest', ], 'output' => [ 'shape' => 'CreateDistributionWithTagsResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'DistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'TooManyDistributions', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidProtocolSettings', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], [ 'shape' => 'TooManyDistributionsWithLambdaAssociations', ], [ 'shape' => 'TooManyLambdaFunctionAssociations', ], [ 'shape' => 'InvalidLambdaFunctionAssociation', ], [ 'shape' => 'InvalidOriginReadTimeout', ], [ 'shape' => 'InvalidOriginKeepaliveTimeout', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], [ 'shape' => 'IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior', ], [ 'shape' => 'TooManyDistributionsAssociatedToFieldLevelEncryptionConfig', ], ], ], 'CreateFieldLevelEncryptionConfig' => [ 'name' => 'CreateFieldLevelEncryptionConfig2017_10_30', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-10-30/field-level-encryption', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateFieldLevelEncryptionConfigRequest', ], 'output' => [ 'shape' => 'CreateFieldLevelEncryptionConfigResult', ], 'errors' => [ [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchFieldLevelEncryptionProfile', ], [ 'shape' => 'FieldLevelEncryptionConfigAlreadyExists', ], [ 'shape' => 'TooManyFieldLevelEncryptionConfigs', ], [ 'shape' => 'TooManyFieldLevelEncryptionQueryArgProfiles', ], [ 'shape' => 'TooManyFieldLevelEncryptionContentTypeProfiles', ], [ 'shape' => 'QueryArgProfileEmpty', ], ], ], 'CreateFieldLevelEncryptionProfile' => [ 'name' => 'CreateFieldLevelEncryptionProfile2017_10_30', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-10-30/field-level-encryption-profile', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateFieldLevelEncryptionProfileRequest', ], 'output' => [ 'shape' => 'CreateFieldLevelEncryptionProfileResult', ], 'errors' => [ [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchPublicKey', ], [ 'shape' => 'FieldLevelEncryptionProfileAlreadyExists', ], [ 'shape' => 'FieldLevelEncryptionProfileSizeExceeded', ], [ 'shape' => 'TooManyFieldLevelEncryptionProfiles', ], [ 'shape' => 'TooManyFieldLevelEncryptionEncryptionEntities', ], [ 'shape' => 'TooManyFieldLevelEncryptionFieldPatterns', ], ], ], 'CreateInvalidation' => [ 'name' => 'CreateInvalidation2017_10_30', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-10-30/distribution/{DistributionId}/invalidation', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateInvalidationRequest', ], 'output' => [ 'shape' => 'CreateInvalidationResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'BatchTooLarge', ], [ 'shape' => 'TooManyInvalidationsInProgress', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreatePublicKey' => [ 'name' => 'CreatePublicKey2017_10_30', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-10-30/public-key', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreatePublicKeyRequest', ], 'output' => [ 'shape' => 'CreatePublicKeyResult', ], 'errors' => [ [ 'shape' => 'PublicKeyAlreadyExists', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'TooManyPublicKeys', ], ], ], 'CreateStreamingDistribution' => [ 'name' => 'CreateStreamingDistribution2017_10_30', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-10-30/streaming-distribution', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStreamingDistributionRequest', ], 'output' => [ 'shape' => 'CreateStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'StreamingDistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'TooManyStreamingDistributions', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateStreamingDistributionWithTags' => [ 'name' => 'CreateStreamingDistributionWithTags2017_10_30', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-10-30/streaming-distribution?WithTags', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStreamingDistributionWithTagsRequest', ], 'output' => [ 'shape' => 'CreateStreamingDistributionWithTagsResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'StreamingDistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'TooManyStreamingDistributions', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidTagging', ], ], ], 'DeleteCloudFrontOriginAccessIdentity' => [ 'name' => 'DeleteCloudFrontOriginAccessIdentity2017_10_30', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2017-10-30/origin-access-identity/cloudfront/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteCloudFrontOriginAccessIdentityRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'CloudFrontOriginAccessIdentityInUse', ], ], ], 'DeleteDistribution' => [ 'name' => 'DeleteDistribution2017_10_30', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2017-10-30/distribution/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDistributionRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'DistributionNotDisabled', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'DeleteFieldLevelEncryptionConfig' => [ 'name' => 'DeleteFieldLevelEncryptionConfig2017_10_30', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2017-10-30/field-level-encryption/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteFieldLevelEncryptionConfigRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'FieldLevelEncryptionConfigInUse', ], ], ], 'DeleteFieldLevelEncryptionProfile' => [ 'name' => 'DeleteFieldLevelEncryptionProfile2017_10_30', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2017-10-30/field-level-encryption-profile/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteFieldLevelEncryptionProfileRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchFieldLevelEncryptionProfile', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'FieldLevelEncryptionProfileInUse', ], ], ], 'DeletePublicKey' => [ 'name' => 'DeletePublicKey2017_10_30', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2017-10-30/public-key/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeletePublicKeyRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'PublicKeyInUse', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchPublicKey', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'DeleteStreamingDistribution' => [ 'name' => 'DeleteStreamingDistribution2017_10_30', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2017-10-30/streaming-distribution/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteStreamingDistributionRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'StreamingDistributionNotDisabled', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'GetCloudFrontOriginAccessIdentity' => [ 'name' => 'GetCloudFrontOriginAccessIdentity2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/origin-access-identity/cloudfront/{Id}', ], 'input' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetCloudFrontOriginAccessIdentityConfig' => [ 'name' => 'GetCloudFrontOriginAccessIdentityConfig2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/origin-access-identity/cloudfront/{Id}/config', ], 'input' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityConfigRequest', ], 'output' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetDistribution' => [ 'name' => 'GetDistribution2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/distribution/{Id}', ], 'input' => [ 'shape' => 'GetDistributionRequest', ], 'output' => [ 'shape' => 'GetDistributionResult', ], 'errors' => [ [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetDistributionConfig' => [ 'name' => 'GetDistributionConfig2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/distribution/{Id}/config', ], 'input' => [ 'shape' => 'GetDistributionConfigRequest', ], 'output' => [ 'shape' => 'GetDistributionConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetFieldLevelEncryption' => [ 'name' => 'GetFieldLevelEncryption2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/field-level-encryption/{Id}', ], 'input' => [ 'shape' => 'GetFieldLevelEncryptionRequest', ], 'output' => [ 'shape' => 'GetFieldLevelEncryptionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], ], ], 'GetFieldLevelEncryptionConfig' => [ 'name' => 'GetFieldLevelEncryptionConfig2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/field-level-encryption/{Id}/config', ], 'input' => [ 'shape' => 'GetFieldLevelEncryptionConfigRequest', ], 'output' => [ 'shape' => 'GetFieldLevelEncryptionConfigResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], ], ], 'GetFieldLevelEncryptionProfile' => [ 'name' => 'GetFieldLevelEncryptionProfile2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/field-level-encryption-profile/{Id}', ], 'input' => [ 'shape' => 'GetFieldLevelEncryptionProfileRequest', ], 'output' => [ 'shape' => 'GetFieldLevelEncryptionProfileResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'NoSuchFieldLevelEncryptionProfile', ], ], ], 'GetFieldLevelEncryptionProfileConfig' => [ 'name' => 'GetFieldLevelEncryptionProfileConfig2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/field-level-encryption-profile/{Id}/config', ], 'input' => [ 'shape' => 'GetFieldLevelEncryptionProfileConfigRequest', ], 'output' => [ 'shape' => 'GetFieldLevelEncryptionProfileConfigResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'NoSuchFieldLevelEncryptionProfile', ], ], ], 'GetInvalidation' => [ 'name' => 'GetInvalidation2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/distribution/{DistributionId}/invalidation/{Id}', ], 'input' => [ 'shape' => 'GetInvalidationRequest', ], 'output' => [ 'shape' => 'GetInvalidationResult', ], 'errors' => [ [ 'shape' => 'NoSuchInvalidation', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetPublicKey' => [ 'name' => 'GetPublicKey2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/public-key/{Id}', ], 'input' => [ 'shape' => 'GetPublicKeyRequest', ], 'output' => [ 'shape' => 'GetPublicKeyResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'NoSuchPublicKey', ], ], ], 'GetPublicKeyConfig' => [ 'name' => 'GetPublicKeyConfig2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/public-key/{Id}/config', ], 'input' => [ 'shape' => 'GetPublicKeyConfigRequest', ], 'output' => [ 'shape' => 'GetPublicKeyConfigResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'NoSuchPublicKey', ], ], ], 'GetStreamingDistribution' => [ 'name' => 'GetStreamingDistribution2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/streaming-distribution/{Id}', ], 'input' => [ 'shape' => 'GetStreamingDistributionRequest', ], 'output' => [ 'shape' => 'GetStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetStreamingDistributionConfig' => [ 'name' => 'GetStreamingDistributionConfig2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/streaming-distribution/{Id}/config', ], 'input' => [ 'shape' => 'GetStreamingDistributionConfigRequest', ], 'output' => [ 'shape' => 'GetStreamingDistributionConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'ListCloudFrontOriginAccessIdentities' => [ 'name' => 'ListCloudFrontOriginAccessIdentities2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/origin-access-identity/cloudfront', ], 'input' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesRequest', ], 'output' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListDistributions' => [ 'name' => 'ListDistributions2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/distribution', ], 'input' => [ 'shape' => 'ListDistributionsRequest', ], 'output' => [ 'shape' => 'ListDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListDistributionsByWebACLId' => [ 'name' => 'ListDistributionsByWebACLId2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/distributionsByWebACLId/{WebACLId}', ], 'input' => [ 'shape' => 'ListDistributionsByWebACLIdRequest', ], 'output' => [ 'shape' => 'ListDistributionsByWebACLIdResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidWebACLId', ], ], ], 'ListFieldLevelEncryptionConfigs' => [ 'name' => 'ListFieldLevelEncryptionConfigs2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/field-level-encryption', ], 'input' => [ 'shape' => 'ListFieldLevelEncryptionConfigsRequest', ], 'output' => [ 'shape' => 'ListFieldLevelEncryptionConfigsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListFieldLevelEncryptionProfiles' => [ 'name' => 'ListFieldLevelEncryptionProfiles2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/field-level-encryption-profile', ], 'input' => [ 'shape' => 'ListFieldLevelEncryptionProfilesRequest', ], 'output' => [ 'shape' => 'ListFieldLevelEncryptionProfilesResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListInvalidations' => [ 'name' => 'ListInvalidations2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/distribution/{DistributionId}/invalidation', ], 'input' => [ 'shape' => 'ListInvalidationsRequest', ], 'output' => [ 'shape' => 'ListInvalidationsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'ListPublicKeys' => [ 'name' => 'ListPublicKeys2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/public-key', ], 'input' => [ 'shape' => 'ListPublicKeysRequest', ], 'output' => [ 'shape' => 'ListPublicKeysResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListStreamingDistributions' => [ 'name' => 'ListStreamingDistributions2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/streaming-distribution', ], 'input' => [ 'shape' => 'ListStreamingDistributionsRequest', ], 'output' => [ 'shape' => 'ListStreamingDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource2017_10_30', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-10-30/tagging', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'TagResource' => [ 'name' => 'TagResource2017_10_30', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-10-30/tagging?Operation=Tag', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource2017_10_30', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-10-30/tagging?Operation=Untag', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'UpdateCloudFrontOriginAccessIdentity' => [ 'name' => 'UpdateCloudFrontOriginAccessIdentity2017_10_30', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2017-10-30/origin-access-identity/cloudfront/{Id}/config', ], 'input' => [ 'shape' => 'UpdateCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'UpdateCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'UpdateDistribution' => [ 'name' => 'UpdateDistribution2017_10_30', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2017-10-30/distribution/{Id}/config', ], 'input' => [ 'shape' => 'UpdateDistributionRequest', ], 'output' => [ 'shape' => 'UpdateDistributionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], [ 'shape' => 'TooManyDistributionsWithLambdaAssociations', ], [ 'shape' => 'TooManyLambdaFunctionAssociations', ], [ 'shape' => 'InvalidLambdaFunctionAssociation', ], [ 'shape' => 'InvalidOriginReadTimeout', ], [ 'shape' => 'InvalidOriginKeepaliveTimeout', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], [ 'shape' => 'IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior', ], [ 'shape' => 'TooManyDistributionsAssociatedToFieldLevelEncryptionConfig', ], ], ], 'UpdateFieldLevelEncryptionConfig' => [ 'name' => 'UpdateFieldLevelEncryptionConfig2017_10_30', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2017-10-30/field-level-encryption/{Id}/config', ], 'input' => [ 'shape' => 'UpdateFieldLevelEncryptionConfigRequest', ], 'output' => [ 'shape' => 'UpdateFieldLevelEncryptionConfigResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchFieldLevelEncryptionProfile', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyFieldLevelEncryptionQueryArgProfiles', ], [ 'shape' => 'TooManyFieldLevelEncryptionContentTypeProfiles', ], [ 'shape' => 'QueryArgProfileEmpty', ], ], ], 'UpdateFieldLevelEncryptionProfile' => [ 'name' => 'UpdateFieldLevelEncryptionProfile2017_10_30', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2017-10-30/field-level-encryption-profile/{Id}/config', ], 'input' => [ 'shape' => 'UpdateFieldLevelEncryptionProfileRequest', ], 'output' => [ 'shape' => 'UpdateFieldLevelEncryptionProfileResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'FieldLevelEncryptionProfileAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchPublicKey', ], [ 'shape' => 'NoSuchFieldLevelEncryptionProfile', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'FieldLevelEncryptionProfileSizeExceeded', ], [ 'shape' => 'TooManyFieldLevelEncryptionEncryptionEntities', ], [ 'shape' => 'TooManyFieldLevelEncryptionFieldPatterns', ], ], ], 'UpdatePublicKey' => [ 'name' => 'UpdatePublicKey2017_10_30', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2017-10-30/public-key/{Id}/config', ], 'input' => [ 'shape' => 'UpdatePublicKeyRequest', ], 'output' => [ 'shape' => 'UpdatePublicKeyResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CannotChangeImmutablePublicKeyFields', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'NoSuchPublicKey', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'UpdateStreamingDistribution' => [ 'name' => 'UpdateStreamingDistribution2017_10_30', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2017-10-30/streaming-distribution/{Id}/config', ], 'input' => [ 'shape' => 'UpdateStreamingDistributionRequest', ], 'output' => [ 'shape' => 'UpdateStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InconsistentQuantities', ], ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], 'Compress' => [ 'shape' => 'boolean', ], 'LambdaFunctionAssociations' => [ 'shape' => 'LambdaFunctionAssociations', ], 'FieldLevelEncryptionId' => [ 'shape' => 'string', ], ], ], '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', ], ], ], 'CannotChangeImmutablePublicKeyFields' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'CertificateSource' => [ 'type' => 'string', 'enum' => [ 'cloudfront', 'iam', 'acm', ], ], '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', ], ], 'ContentTypeProfile' => [ 'type' => 'structure', 'required' => [ 'Format', 'ContentType', ], 'members' => [ 'Format' => [ 'shape' => 'Format', ], 'ProfileId' => [ 'shape' => 'string', ], 'ContentType' => [ 'shape' => 'string', ], ], ], 'ContentTypeProfileConfig' => [ 'type' => 'structure', 'required' => [ 'ForwardWhenContentTypeIsUnknown', ], 'members' => [ 'ForwardWhenContentTypeIsUnknown' => [ 'shape' => 'boolean', ], 'ContentTypeProfiles' => [ 'shape' => 'ContentTypeProfiles', ], ], ], 'ContentTypeProfileList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContentTypeProfile', 'locationName' => 'ContentTypeProfile', ], ], 'ContentTypeProfiles' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'ContentTypeProfileList', ], ], ], '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', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-10-30/', ], ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-10-30/', ], ], ], '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', ], 'CreateDistributionWithTagsRequest' => [ 'type' => 'structure', 'required' => [ 'DistributionConfigWithTags', ], 'members' => [ 'DistributionConfigWithTags' => [ 'shape' => 'DistributionConfigWithTags', 'locationName' => 'DistributionConfigWithTags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-10-30/', ], ], ], 'payload' => 'DistributionConfigWithTags', ], 'CreateDistributionWithTagsResult' => [ 'type' => 'structure', 'members' => [ 'Distribution' => [ 'shape' => 'Distribution', ], 'Location' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'Location', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'Distribution', ], 'CreateFieldLevelEncryptionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'FieldLevelEncryptionConfig', ], 'members' => [ 'FieldLevelEncryptionConfig' => [ 'shape' => 'FieldLevelEncryptionConfig', 'locationName' => 'FieldLevelEncryptionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-10-30/', ], ], ], 'payload' => 'FieldLevelEncryptionConfig', ], 'CreateFieldLevelEncryptionConfigResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryption' => [ 'shape' => 'FieldLevelEncryption', ], 'Location' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'Location', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryption', ], 'CreateFieldLevelEncryptionProfileRequest' => [ 'type' => 'structure', 'required' => [ 'FieldLevelEncryptionProfileConfig', ], 'members' => [ 'FieldLevelEncryptionProfileConfig' => [ 'shape' => 'FieldLevelEncryptionProfileConfig', 'locationName' => 'FieldLevelEncryptionProfileConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-10-30/', ], ], ], 'payload' => 'FieldLevelEncryptionProfileConfig', ], 'CreateFieldLevelEncryptionProfileResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionProfile' => [ 'shape' => 'FieldLevelEncryptionProfile', ], 'Location' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'Location', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryptionProfile', ], 'CreateInvalidationRequest' => [ 'type' => 'structure', 'required' => [ 'DistributionId', 'InvalidationBatch', ], 'members' => [ 'DistributionId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'DistributionId', ], 'InvalidationBatch' => [ 'shape' => 'InvalidationBatch', 'locationName' => 'InvalidationBatch', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-10-30/', ], ], ], 'payload' => 'InvalidationBatch', ], 'CreateInvalidationResult' => [ 'type' => 'structure', 'members' => [ 'Location' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'Location', ], 'Invalidation' => [ 'shape' => 'Invalidation', ], ], 'payload' => 'Invalidation', ], 'CreatePublicKeyRequest' => [ 'type' => 'structure', 'required' => [ 'PublicKeyConfig', ], 'members' => [ 'PublicKeyConfig' => [ 'shape' => 'PublicKeyConfig', 'locationName' => 'PublicKeyConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-10-30/', ], ], ], 'payload' => 'PublicKeyConfig', ], 'CreatePublicKeyResult' => [ 'type' => 'structure', 'members' => [ 'PublicKey' => [ 'shape' => 'PublicKey', ], 'Location' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'Location', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'PublicKey', ], 'CreateStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfig', ], 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-10-30/', ], ], ], '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', ], 'CreateStreamingDistributionWithTagsRequest' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfigWithTags', ], 'members' => [ 'StreamingDistributionConfigWithTags' => [ 'shape' => 'StreamingDistributionConfigWithTags', 'locationName' => 'StreamingDistributionConfigWithTags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-10-30/', ], ], ], 'payload' => 'StreamingDistributionConfigWithTags', ], 'CreateStreamingDistributionWithTagsResult' => [ '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', ], ], ], 'CustomHeaders' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'OriginCustomHeadersList', ], ], ], 'CustomOriginConfig' => [ 'type' => 'structure', 'required' => [ 'HTTPPort', 'HTTPSPort', 'OriginProtocolPolicy', ], 'members' => [ 'HTTPPort' => [ 'shape' => 'integer', ], 'HTTPSPort' => [ 'shape' => 'integer', ], 'OriginProtocolPolicy' => [ 'shape' => 'OriginProtocolPolicy', ], 'OriginSslProtocols' => [ 'shape' => 'OriginSslProtocols', ], 'OriginReadTimeout' => [ 'shape' => 'integer', ], 'OriginKeepaliveTimeout' => [ 'shape' => 'integer', ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], 'Compress' => [ 'shape' => 'boolean', ], 'LambdaFunctionAssociations' => [ 'shape' => 'LambdaFunctionAssociations', ], 'FieldLevelEncryptionId' => [ 'shape' => 'string', ], ], ], 'DeleteCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteFieldLevelEncryptionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteFieldLevelEncryptionProfileRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeletePublicKeyRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'Distribution' => [ 'type' => 'structure', 'required' => [ 'Id', 'ARN', 'Status', 'LastModifiedTime', 'InProgressInvalidationBatches', 'DomainName', 'ActiveTrustedSigners', 'DistributionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], 'WebACLId' => [ 'shape' => 'string', ], 'HttpVersion' => [ 'shape' => 'HttpVersion', ], 'IsIPV6Enabled' => [ 'shape' => 'boolean', ], ], ], 'DistributionConfigWithTags' => [ 'type' => 'structure', 'required' => [ 'DistributionConfig', 'Tags', ], 'members' => [ 'DistributionConfig' => [ 'shape' => 'DistributionConfig', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], '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', 'ARN', 'Status', 'LastModifiedTime', 'DomainName', 'Aliases', 'Origins', 'DefaultCacheBehavior', 'CacheBehaviors', 'CustomErrorResponses', 'Comment', 'PriceClass', 'Enabled', 'ViewerCertificate', 'Restrictions', 'WebACLId', 'HttpVersion', 'IsIPV6Enabled', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], 'WebACLId' => [ 'shape' => 'string', ], 'HttpVersion' => [ 'shape' => 'HttpVersion', ], 'IsIPV6Enabled' => [ 'shape' => 'boolean', ], ], ], 'DistributionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DistributionSummary', 'locationName' => 'DistributionSummary', ], ], 'EncryptionEntities' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'EncryptionEntityList', ], ], ], 'EncryptionEntity' => [ 'type' => 'structure', 'required' => [ 'PublicKeyId', 'ProviderId', 'FieldPatterns', ], 'members' => [ 'PublicKeyId' => [ 'shape' => 'string', ], 'ProviderId' => [ 'shape' => 'string', ], 'FieldPatterns' => [ 'shape' => 'FieldPatterns', ], ], ], 'EncryptionEntityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EncryptionEntity', 'locationName' => 'EncryptionEntity', ], ], 'EventType' => [ 'type' => 'string', 'enum' => [ 'viewer-request', 'viewer-response', 'origin-request', 'origin-response', ], ], 'FieldLevelEncryption' => [ 'type' => 'structure', 'required' => [ 'Id', 'LastModifiedTime', 'FieldLevelEncryptionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'LastModifiedTime' => [ 'shape' => 'timestamp', ], 'FieldLevelEncryptionConfig' => [ 'shape' => 'FieldLevelEncryptionConfig', ], ], ], 'FieldLevelEncryptionConfig' => [ 'type' => 'structure', 'required' => [ 'CallerReference', ], 'members' => [ 'CallerReference' => [ 'shape' => 'string', ], 'Comment' => [ 'shape' => 'string', ], 'QueryArgProfileConfig' => [ 'shape' => 'QueryArgProfileConfig', ], 'ContentTypeProfileConfig' => [ 'shape' => 'ContentTypeProfileConfig', ], ], ], 'FieldLevelEncryptionConfigAlreadyExists' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'FieldLevelEncryptionConfigInUse' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'FieldLevelEncryptionList' => [ 'type' => 'structure', 'required' => [ 'MaxItems', 'Quantity', ], 'members' => [ 'NextMarker' => [ 'shape' => 'string', ], 'MaxItems' => [ 'shape' => 'integer', ], 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'FieldLevelEncryptionSummaryList', ], ], ], 'FieldLevelEncryptionProfile' => [ 'type' => 'structure', 'required' => [ 'Id', 'LastModifiedTime', 'FieldLevelEncryptionProfileConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'LastModifiedTime' => [ 'shape' => 'timestamp', ], 'FieldLevelEncryptionProfileConfig' => [ 'shape' => 'FieldLevelEncryptionProfileConfig', ], ], ], 'FieldLevelEncryptionProfileAlreadyExists' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'FieldLevelEncryptionProfileConfig' => [ 'type' => 'structure', 'required' => [ 'Name', 'CallerReference', 'EncryptionEntities', ], 'members' => [ 'Name' => [ 'shape' => 'string', ], 'CallerReference' => [ 'shape' => 'string', ], 'Comment' => [ 'shape' => 'string', ], 'EncryptionEntities' => [ 'shape' => 'EncryptionEntities', ], ], ], 'FieldLevelEncryptionProfileInUse' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'FieldLevelEncryptionProfileList' => [ 'type' => 'structure', 'required' => [ 'MaxItems', 'Quantity', ], 'members' => [ 'NextMarker' => [ 'shape' => 'string', ], 'MaxItems' => [ 'shape' => 'integer', ], 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'FieldLevelEncryptionProfileSummaryList', ], ], ], 'FieldLevelEncryptionProfileSizeExceeded' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'FieldLevelEncryptionProfileSummary' => [ 'type' => 'structure', 'required' => [ 'Id', 'LastModifiedTime', 'Name', 'EncryptionEntities', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'LastModifiedTime' => [ 'shape' => 'timestamp', ], 'Name' => [ 'shape' => 'string', ], 'EncryptionEntities' => [ 'shape' => 'EncryptionEntities', ], 'Comment' => [ 'shape' => 'string', ], ], ], 'FieldLevelEncryptionProfileSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FieldLevelEncryptionProfileSummary', 'locationName' => 'FieldLevelEncryptionProfileSummary', ], ], 'FieldLevelEncryptionSummary' => [ 'type' => 'structure', 'required' => [ 'Id', 'LastModifiedTime', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'LastModifiedTime' => [ 'shape' => 'timestamp', ], 'Comment' => [ 'shape' => 'string', ], 'QueryArgProfileConfig' => [ 'shape' => 'QueryArgProfileConfig', ], 'ContentTypeProfileConfig' => [ 'shape' => 'ContentTypeProfileConfig', ], ], ], 'FieldLevelEncryptionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FieldLevelEncryptionSummary', 'locationName' => 'FieldLevelEncryptionSummary', ], ], 'FieldPatternList' => [ 'type' => 'list', 'member' => [ 'shape' => 'string', 'locationName' => 'FieldPattern', ], ], 'FieldPatterns' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'FieldPatternList', ], ], ], 'Format' => [ 'type' => 'string', 'enum' => [ 'URLEncoded', ], ], 'ForwardedValues' => [ 'type' => 'structure', 'required' => [ 'QueryString', 'Cookies', ], 'members' => [ 'QueryString' => [ 'shape' => 'boolean', ], 'Cookies' => [ 'shape' => 'CookiePreference', ], 'Headers' => [ 'shape' => 'Headers', ], 'QueryStringCacheKeys' => [ 'shape' => 'QueryStringCacheKeys', ], ], ], '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', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityConfigResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentityConfig' => [ 'shape' => 'CloudFrontOriginAccessIdentityConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentityConfig', ], 'GetCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentity' => [ 'shape' => 'CloudFrontOriginAccessIdentity', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentity', ], 'GetDistributionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'DistributionConfig' => [ 'shape' => 'DistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'DistributionConfig', ], 'GetDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetDistributionResult' => [ 'type' => 'structure', 'members' => [ 'Distribution' => [ 'shape' => 'Distribution', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'Distribution', ], 'GetFieldLevelEncryptionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetFieldLevelEncryptionConfigResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionConfig' => [ 'shape' => 'FieldLevelEncryptionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryptionConfig', ], 'GetFieldLevelEncryptionProfileConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetFieldLevelEncryptionProfileConfigResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionProfileConfig' => [ 'shape' => 'FieldLevelEncryptionProfileConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryptionProfileConfig', ], 'GetFieldLevelEncryptionProfileRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetFieldLevelEncryptionProfileResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionProfile' => [ 'shape' => 'FieldLevelEncryptionProfile', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryptionProfile', ], 'GetFieldLevelEncryptionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetFieldLevelEncryptionResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryption' => [ 'shape' => 'FieldLevelEncryption', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryption', ], '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', ], 'GetPublicKeyConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetPublicKeyConfigResult' => [ 'type' => 'structure', 'members' => [ 'PublicKeyConfig' => [ 'shape' => 'PublicKeyConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'PublicKeyConfig', ], 'GetPublicKeyRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetPublicKeyResult' => [ 'type' => 'structure', 'members' => [ 'PublicKey' => [ 'shape' => 'PublicKey', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'PublicKey', ], 'GetStreamingDistributionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetStreamingDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'StreamingDistributionConfig', ], 'GetStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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', ], ], ], 'HttpVersion' => [ 'type' => 'string', 'enum' => [ 'http1.1', 'http2', ], ], 'IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], '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, ], 'InvalidLambdaFunctionAssociation' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidLocationCode' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidMinimumProtocolVersion' => [ '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, ], 'InvalidOriginKeepaliveTimeout' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidOriginReadTimeout' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidProtocolSettings' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidQueryStringParameters' => [ '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, ], 'InvalidTTLOrder' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidTagging' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidViewerCertificate' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidWebACLId' => [ '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', ], ], ], 'LambdaFunctionARN' => [ 'type' => 'string', ], 'LambdaFunctionAssociation' => [ 'type' => 'structure', 'required' => [ 'LambdaFunctionARN', 'EventType', ], 'members' => [ 'LambdaFunctionARN' => [ 'shape' => 'LambdaFunctionARN', ], 'EventType' => [ 'shape' => 'EventType', ], ], ], 'LambdaFunctionAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LambdaFunctionAssociation', 'locationName' => 'LambdaFunctionAssociation', ], ], 'LambdaFunctionAssociations' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'LambdaFunctionAssociationList', ], ], ], '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', ], 'ListDistributionsByWebACLIdRequest' => [ 'type' => 'structure', 'required' => [ 'WebACLId', ], 'members' => [ 'Marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'MaxItems', ], 'WebACLId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'WebACLId', ], ], ], 'ListDistributionsByWebACLIdResult' => [ 'type' => 'structure', 'members' => [ 'DistributionList' => [ 'shape' => 'DistributionList', ], ], 'payload' => 'DistributionList', ], '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', ], 'ListFieldLevelEncryptionConfigsRequest' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'MaxItems', ], ], ], 'ListFieldLevelEncryptionConfigsResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionList' => [ 'shape' => 'FieldLevelEncryptionList', ], ], 'payload' => 'FieldLevelEncryptionList', ], 'ListFieldLevelEncryptionProfilesRequest' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'MaxItems', ], ], ], 'ListFieldLevelEncryptionProfilesResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionProfileList' => [ 'shape' => 'FieldLevelEncryptionProfileList', ], ], 'payload' => 'FieldLevelEncryptionProfileList', ], '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', ], 'ListPublicKeysRequest' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'MaxItems', ], ], ], 'ListPublicKeysResult' => [ 'type' => 'structure', 'members' => [ 'PublicKeyList' => [ 'shape' => 'PublicKeyList', ], ], 'payload' => 'PublicKeyList', ], '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', ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], ], ], 'ListTagsForResourceResult' => [ 'type' => 'structure', 'required' => [ 'Tags', ], 'members' => [ 'Tags' => [ 'shape' => 'Tags', ], ], 'payload' => 'Tags', ], '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', 'TLSv1_2016', 'TLSv1.1_2016', 'TLSv1.2_2018', ], ], '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, ], 'NoSuchFieldLevelEncryptionConfig' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'NoSuchFieldLevelEncryptionProfile' => [ '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, ], 'NoSuchPublicKey' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'NoSuchResource' => [ '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', ], 'CustomHeaders' => [ 'shape' => 'CustomHeaders', ], 'S3OriginConfig' => [ 'shape' => 'S3OriginConfig', ], 'CustomOriginConfig' => [ 'shape' => 'CustomOriginConfig', ], ], ], 'OriginCustomHeader' => [ 'type' => 'structure', 'required' => [ 'HeaderName', 'HeaderValue', ], 'members' => [ 'HeaderName' => [ 'shape' => 'string', ], 'HeaderValue' => [ 'shape' => 'string', ], ], ], 'OriginCustomHeadersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OriginCustomHeader', 'locationName' => 'OriginCustomHeader', ], ], 'OriginList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Origin', 'locationName' => 'Origin', ], 'min' => 1, ], 'OriginProtocolPolicy' => [ 'type' => 'string', 'enum' => [ 'http-only', 'match-viewer', 'https-only', ], ], 'OriginSslProtocols' => [ 'type' => 'structure', 'required' => [ 'Quantity', 'Items', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'SslProtocolsList', ], ], ], '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', ], ], 'PublicKey' => [ 'type' => 'structure', 'required' => [ 'Id', 'CreatedTime', 'PublicKeyConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'CreatedTime' => [ 'shape' => 'timestamp', ], 'PublicKeyConfig' => [ 'shape' => 'PublicKeyConfig', ], ], ], 'PublicKeyAlreadyExists' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'PublicKeyConfig' => [ 'type' => 'structure', 'required' => [ 'CallerReference', 'Name', 'EncodedKey', ], 'members' => [ 'CallerReference' => [ 'shape' => 'string', ], 'Name' => [ 'shape' => 'string', ], 'EncodedKey' => [ 'shape' => 'string', ], 'Comment' => [ 'shape' => 'string', ], ], ], 'PublicKeyInUse' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'PublicKeyList' => [ 'type' => 'structure', 'required' => [ 'MaxItems', 'Quantity', ], 'members' => [ 'NextMarker' => [ 'shape' => 'string', ], 'MaxItems' => [ 'shape' => 'integer', ], 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'PublicKeySummaryList', ], ], ], 'PublicKeySummary' => [ 'type' => 'structure', 'required' => [ 'Id', 'Name', 'CreatedTime', 'EncodedKey', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'Name' => [ 'shape' => 'string', ], 'CreatedTime' => [ 'shape' => 'timestamp', ], 'EncodedKey' => [ 'shape' => 'string', ], 'Comment' => [ 'shape' => 'string', ], ], ], 'PublicKeySummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PublicKeySummary', 'locationName' => 'PublicKeySummary', ], ], 'QueryArgProfile' => [ 'type' => 'structure', 'required' => [ 'QueryArg', 'ProfileId', ], 'members' => [ 'QueryArg' => [ 'shape' => 'string', ], 'ProfileId' => [ 'shape' => 'string', ], ], ], 'QueryArgProfileConfig' => [ 'type' => 'structure', 'required' => [ 'ForwardWhenQueryArgProfileIsUnknown', ], 'members' => [ 'ForwardWhenQueryArgProfileIsUnknown' => [ 'shape' => 'boolean', ], 'QueryArgProfiles' => [ 'shape' => 'QueryArgProfiles', ], ], ], 'QueryArgProfileEmpty' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'QueryArgProfileList' => [ 'type' => 'list', 'member' => [ 'shape' => 'QueryArgProfile', 'locationName' => 'QueryArgProfile', ], ], 'QueryArgProfiles' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'QueryArgProfileList', ], ], ], 'QueryStringCacheKeys' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'QueryStringCacheKeysList', ], ], ], 'QueryStringCacheKeysList' => [ 'type' => 'list', 'member' => [ 'shape' => 'string', 'locationName' => 'Name', ], ], 'ResourceARN' => [ 'type' => 'string', 'pattern' => 'arn:aws:cloudfront::[0-9]+:.*', ], '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', ], ], 'SslProtocol' => [ 'type' => 'string', 'enum' => [ 'SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2', ], ], 'SslProtocolsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SslProtocol', 'locationName' => 'SslProtocol', ], ], 'StreamingDistribution' => [ 'type' => 'structure', 'required' => [ 'Id', 'ARN', 'Status', 'DomainName', 'ActiveTrustedSigners', 'StreamingDistributionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], ], ], 'StreamingDistributionConfigWithTags' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfig', 'Tags', ], 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], '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', 'ARN', 'Status', 'LastModifiedTime', 'DomainName', 'S3Origin', 'Aliases', 'TrustedSigners', 'Comment', 'PriceClass', 'Enabled', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', 'locationName' => 'Key', ], ], 'TagKeys' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'TagKeyList', ], ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', 'locationName' => 'Tag', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'Tags', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'Tags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-10-30/', ], ], ], 'payload' => 'Tags', ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'Tags' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'TagList', ], ], ], '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, ], 'TooManyDistributionsAssociatedToFieldLevelEncryptionConfig' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyDistributionsWithLambdaAssociations' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyFieldLevelEncryptionConfigs' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyFieldLevelEncryptionContentTypeProfiles' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyFieldLevelEncryptionEncryptionEntities' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyFieldLevelEncryptionFieldPatterns' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyFieldLevelEncryptionProfiles' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyFieldLevelEncryptionQueryArgProfiles' => [ '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, ], 'TooManyLambdaFunctionAssociations' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyOriginCustomHeaders' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyOrigins' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyPublicKeys' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyQueryStringParameters' => [ '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', ], ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'TagKeys', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], 'TagKeys' => [ 'shape' => 'TagKeys', 'locationName' => 'TagKeys', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-10-30/', ], ], ], 'payload' => 'TagKeys', ], 'UpdateCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'CloudFrontOriginAccessIdentityConfig', 'Id', ], 'members' => [ 'CloudFrontOriginAccessIdentityConfig' => [ 'shape' => 'CloudFrontOriginAccessIdentityConfig', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-10-30/', ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-10-30/', ], ], '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', ], 'UpdateFieldLevelEncryptionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'FieldLevelEncryptionConfig', 'Id', ], 'members' => [ 'FieldLevelEncryptionConfig' => [ 'shape' => 'FieldLevelEncryptionConfig', 'locationName' => 'FieldLevelEncryptionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-10-30/', ], ], 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], 'payload' => 'FieldLevelEncryptionConfig', ], 'UpdateFieldLevelEncryptionConfigResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryption' => [ 'shape' => 'FieldLevelEncryption', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryption', ], 'UpdateFieldLevelEncryptionProfileRequest' => [ 'type' => 'structure', 'required' => [ 'FieldLevelEncryptionProfileConfig', 'Id', ], 'members' => [ 'FieldLevelEncryptionProfileConfig' => [ 'shape' => 'FieldLevelEncryptionProfileConfig', 'locationName' => 'FieldLevelEncryptionProfileConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-10-30/', ], ], 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], 'payload' => 'FieldLevelEncryptionProfileConfig', ], 'UpdateFieldLevelEncryptionProfileResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionProfile' => [ 'shape' => 'FieldLevelEncryptionProfile', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryptionProfile', ], 'UpdatePublicKeyRequest' => [ 'type' => 'structure', 'required' => [ 'PublicKeyConfig', 'Id', ], 'members' => [ 'PublicKeyConfig' => [ 'shape' => 'PublicKeyConfig', 'locationName' => 'PublicKeyConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-10-30/', ], ], 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], 'payload' => 'PublicKeyConfig', ], 'UpdatePublicKeyResult' => [ 'type' => 'structure', 'members' => [ 'PublicKey' => [ 'shape' => 'PublicKey', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'PublicKey', ], 'UpdateStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfig', 'Id', ], 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2017-10-30/', ], ], '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' => [ 'CloudFrontDefaultCertificate' => [ 'shape' => 'boolean', ], 'IAMCertificateId' => [ 'shape' => 'string', ], 'ACMCertificateArn' => [ 'shape' => 'string', ], 'SSLSupportMethod' => [ 'shape' => 'SSLSupportMethod', ], 'MinimumProtocolVersion' => [ 'shape' => 'MinimumProtocolVersion', ], 'Certificate' => [ 'shape' => 'string', 'deprecated' => true, ], 'CertificateSource' => [ 'shape' => 'CertificateSource', 'deprecated' => true, ], ], ], '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/Aws/data/cloudfront/2017-10-30/paginators-1.json.php b/lib/aws/Aws/data/cloudfront/2017-10-30/paginators-1.json.php new file mode 100644 index 0000000..4f22fca --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2017-10-30/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2017-10-30/paginators-1.json +return [ 'pagination' => [ 'ListCloudFrontOriginAccessIdentities' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'CloudFrontOriginAccessIdentityList.IsTruncated', 'output_token' => 'CloudFrontOriginAccessIdentityList.NextMarker', 'result_key' => 'CloudFrontOriginAccessIdentityList.Items', ], 'ListDistributions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'DistributionList.IsTruncated', 'output_token' => 'DistributionList.NextMarker', 'result_key' => 'DistributionList.Items', ], 'ListInvalidations' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'InvalidationList.IsTruncated', 'output_token' => 'InvalidationList.NextMarker', 'result_key' => 'InvalidationList.Items', ], 'ListStreamingDistributions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'StreamingDistributionList.IsTruncated', 'output_token' => 'StreamingDistributionList.NextMarker', 'result_key' => 'StreamingDistributionList.Items', ], ],]; diff --git a/lib/aws/Aws/data/cloudfront/2017-10-30/smoke.json.php b/lib/aws/Aws/data/cloudfront/2017-10-30/smoke.json.php new file mode 100644 index 0000000..e3c58d9 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2017-10-30/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2017-10-30/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-east-1', 'testCases' => [ [ 'operationName' => 'ListCloudFrontOriginAccessIdentities', 'input' => [ 'MaxItems' => '1', ], 'errorExpectedFromService' => false, ], [ 'operationName' => 'GetDistribution', 'input' => [ 'Id' => 'fake-id', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/cloudfront/2017-10-30/waiters-1.json.php b/lib/aws/Aws/data/cloudfront/2017-10-30/waiters-1.json.php new file mode 100644 index 0000000..c8d04de --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2017-10-30/waiters-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2017-10-30/waiters-1.json +return [ 'waiters' => [ '__default__' => [ 'success_type' => 'output', 'success_path' => 'Status', ], 'StreamingDistributionDeployed' => [ 'operation' => 'GetStreamingDistribution', 'description' => 'Wait until a streaming distribution is deployed.', 'interval' => 60, 'max_attempts' => 25, 'success_value' => 'Deployed', ], 'DistributionDeployed' => [ 'operation' => 'GetDistribution', 'description' => 'Wait until a distribution is deployed.', 'interval' => 60, 'max_attempts' => 25, 'success_value' => 'Deployed', ], 'InvalidationCompleted' => [ 'operation' => 'GetInvalidation', 'description' => 'Wait until an invalidation has completed.', 'interval' => 20, 'max_attempts' => 30, 'success_value' => 'Completed', ], ],]; diff --git a/lib/aws/Aws/data/cloudfront/2017-10-30/waiters-2.json.php b/lib/aws/Aws/data/cloudfront/2017-10-30/waiters-2.json.php new file mode 100644 index 0000000..9cffd62 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2017-10-30/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2017-10-30/waiters-2.json +return [ '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/Aws/data/cloudfront/2018-06-18/api-2.json.php b/lib/aws/Aws/data/cloudfront/2018-06-18/api-2.json.php new file mode 100644 index 0000000..f054c1d --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2018-06-18/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2018-06-18/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-06-18', 'endpointPrefix' => 'cloudfront', 'globalEndpoint' => 'cloudfront.amazonaws.com', 'protocol' => 'rest-xml', 'serviceAbbreviation' => 'CloudFront', 'serviceFullName' => 'Amazon CloudFront', 'serviceId' => 'CloudFront', 'signatureVersion' => 'v4', 'uid' => 'cloudfront-2018-06-18', ], 'operations' => [ 'CreateCloudFrontOriginAccessIdentity' => [ 'name' => 'CreateCloudFrontOriginAccessIdentity2018_06_18', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-06-18/origin-access-identity/cloudfront', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'CreateCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'CloudFrontOriginAccessIdentityAlreadyExists', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyCloudFrontOriginAccessIdentities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateDistribution' => [ 'name' => 'CreateDistribution2018_06_18', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-06-18/distribution', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDistributionRequest', ], 'output' => [ 'shape' => 'CreateDistributionResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'DistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'TooManyDistributions', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidProtocolSettings', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], [ 'shape' => 'TooManyDistributionsWithLambdaAssociations', ], [ 'shape' => 'TooManyLambdaFunctionAssociations', ], [ 'shape' => 'InvalidLambdaFunctionAssociation', ], [ 'shape' => 'InvalidOriginReadTimeout', ], [ 'shape' => 'InvalidOriginKeepaliveTimeout', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], [ 'shape' => 'IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior', ], [ 'shape' => 'TooManyDistributionsAssociatedToFieldLevelEncryptionConfig', ], ], ], 'CreateDistributionWithTags' => [ 'name' => 'CreateDistributionWithTags2018_06_18', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-06-18/distribution?WithTags', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDistributionWithTagsRequest', ], 'output' => [ 'shape' => 'CreateDistributionWithTagsResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'DistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'TooManyDistributions', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidProtocolSettings', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], [ 'shape' => 'TooManyDistributionsWithLambdaAssociations', ], [ 'shape' => 'TooManyLambdaFunctionAssociations', ], [ 'shape' => 'InvalidLambdaFunctionAssociation', ], [ 'shape' => 'InvalidOriginReadTimeout', ], [ 'shape' => 'InvalidOriginKeepaliveTimeout', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], [ 'shape' => 'IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior', ], [ 'shape' => 'TooManyDistributionsAssociatedToFieldLevelEncryptionConfig', ], ], ], 'CreateFieldLevelEncryptionConfig' => [ 'name' => 'CreateFieldLevelEncryptionConfig2018_06_18', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-06-18/field-level-encryption', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateFieldLevelEncryptionConfigRequest', ], 'output' => [ 'shape' => 'CreateFieldLevelEncryptionConfigResult', ], 'errors' => [ [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchFieldLevelEncryptionProfile', ], [ 'shape' => 'FieldLevelEncryptionConfigAlreadyExists', ], [ 'shape' => 'TooManyFieldLevelEncryptionConfigs', ], [ 'shape' => 'TooManyFieldLevelEncryptionQueryArgProfiles', ], [ 'shape' => 'TooManyFieldLevelEncryptionContentTypeProfiles', ], [ 'shape' => 'QueryArgProfileEmpty', ], ], ], 'CreateFieldLevelEncryptionProfile' => [ 'name' => 'CreateFieldLevelEncryptionProfile2018_06_18', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-06-18/field-level-encryption-profile', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateFieldLevelEncryptionProfileRequest', ], 'output' => [ 'shape' => 'CreateFieldLevelEncryptionProfileResult', ], 'errors' => [ [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchPublicKey', ], [ 'shape' => 'FieldLevelEncryptionProfileAlreadyExists', ], [ 'shape' => 'FieldLevelEncryptionProfileSizeExceeded', ], [ 'shape' => 'TooManyFieldLevelEncryptionProfiles', ], [ 'shape' => 'TooManyFieldLevelEncryptionEncryptionEntities', ], [ 'shape' => 'TooManyFieldLevelEncryptionFieldPatterns', ], ], ], 'CreateInvalidation' => [ 'name' => 'CreateInvalidation2018_06_18', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-06-18/distribution/{DistributionId}/invalidation', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateInvalidationRequest', ], 'output' => [ 'shape' => 'CreateInvalidationResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'BatchTooLarge', ], [ 'shape' => 'TooManyInvalidationsInProgress', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreatePublicKey' => [ 'name' => 'CreatePublicKey2018_06_18', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-06-18/public-key', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreatePublicKeyRequest', ], 'output' => [ 'shape' => 'CreatePublicKeyResult', ], 'errors' => [ [ 'shape' => 'PublicKeyAlreadyExists', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'TooManyPublicKeys', ], ], ], 'CreateStreamingDistribution' => [ 'name' => 'CreateStreamingDistribution2018_06_18', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-06-18/streaming-distribution', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStreamingDistributionRequest', ], 'output' => [ 'shape' => 'CreateStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'StreamingDistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'TooManyStreamingDistributions', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateStreamingDistributionWithTags' => [ 'name' => 'CreateStreamingDistributionWithTags2018_06_18', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-06-18/streaming-distribution?WithTags', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStreamingDistributionWithTagsRequest', ], 'output' => [ 'shape' => 'CreateStreamingDistributionWithTagsResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'StreamingDistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'TooManyStreamingDistributions', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidTagging', ], ], ], 'DeleteCloudFrontOriginAccessIdentity' => [ 'name' => 'DeleteCloudFrontOriginAccessIdentity2018_06_18', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2018-06-18/origin-access-identity/cloudfront/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteCloudFrontOriginAccessIdentityRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'CloudFrontOriginAccessIdentityInUse', ], ], ], 'DeleteDistribution' => [ 'name' => 'DeleteDistribution2018_06_18', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2018-06-18/distribution/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDistributionRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'DistributionNotDisabled', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'DeleteFieldLevelEncryptionConfig' => [ 'name' => 'DeleteFieldLevelEncryptionConfig2018_06_18', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2018-06-18/field-level-encryption/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteFieldLevelEncryptionConfigRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'FieldLevelEncryptionConfigInUse', ], ], ], 'DeleteFieldLevelEncryptionProfile' => [ 'name' => 'DeleteFieldLevelEncryptionProfile2018_06_18', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2018-06-18/field-level-encryption-profile/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteFieldLevelEncryptionProfileRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchFieldLevelEncryptionProfile', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'FieldLevelEncryptionProfileInUse', ], ], ], 'DeletePublicKey' => [ 'name' => 'DeletePublicKey2018_06_18', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2018-06-18/public-key/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeletePublicKeyRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'PublicKeyInUse', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchPublicKey', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'DeleteStreamingDistribution' => [ 'name' => 'DeleteStreamingDistribution2018_06_18', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2018-06-18/streaming-distribution/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteStreamingDistributionRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'StreamingDistributionNotDisabled', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'GetCloudFrontOriginAccessIdentity' => [ 'name' => 'GetCloudFrontOriginAccessIdentity2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/origin-access-identity/cloudfront/{Id}', ], 'input' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetCloudFrontOriginAccessIdentityConfig' => [ 'name' => 'GetCloudFrontOriginAccessIdentityConfig2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/origin-access-identity/cloudfront/{Id}/config', ], 'input' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityConfigRequest', ], 'output' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetDistribution' => [ 'name' => 'GetDistribution2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/distribution/{Id}', ], 'input' => [ 'shape' => 'GetDistributionRequest', ], 'output' => [ 'shape' => 'GetDistributionResult', ], 'errors' => [ [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetDistributionConfig' => [ 'name' => 'GetDistributionConfig2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/distribution/{Id}/config', ], 'input' => [ 'shape' => 'GetDistributionConfigRequest', ], 'output' => [ 'shape' => 'GetDistributionConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetFieldLevelEncryption' => [ 'name' => 'GetFieldLevelEncryption2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/field-level-encryption/{Id}', ], 'input' => [ 'shape' => 'GetFieldLevelEncryptionRequest', ], 'output' => [ 'shape' => 'GetFieldLevelEncryptionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], ], ], 'GetFieldLevelEncryptionConfig' => [ 'name' => 'GetFieldLevelEncryptionConfig2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/field-level-encryption/{Id}/config', ], 'input' => [ 'shape' => 'GetFieldLevelEncryptionConfigRequest', ], 'output' => [ 'shape' => 'GetFieldLevelEncryptionConfigResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], ], ], 'GetFieldLevelEncryptionProfile' => [ 'name' => 'GetFieldLevelEncryptionProfile2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/field-level-encryption-profile/{Id}', ], 'input' => [ 'shape' => 'GetFieldLevelEncryptionProfileRequest', ], 'output' => [ 'shape' => 'GetFieldLevelEncryptionProfileResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'NoSuchFieldLevelEncryptionProfile', ], ], ], 'GetFieldLevelEncryptionProfileConfig' => [ 'name' => 'GetFieldLevelEncryptionProfileConfig2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/field-level-encryption-profile/{Id}/config', ], 'input' => [ 'shape' => 'GetFieldLevelEncryptionProfileConfigRequest', ], 'output' => [ 'shape' => 'GetFieldLevelEncryptionProfileConfigResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'NoSuchFieldLevelEncryptionProfile', ], ], ], 'GetInvalidation' => [ 'name' => 'GetInvalidation2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/distribution/{DistributionId}/invalidation/{Id}', ], 'input' => [ 'shape' => 'GetInvalidationRequest', ], 'output' => [ 'shape' => 'GetInvalidationResult', ], 'errors' => [ [ 'shape' => 'NoSuchInvalidation', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetPublicKey' => [ 'name' => 'GetPublicKey2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/public-key/{Id}', ], 'input' => [ 'shape' => 'GetPublicKeyRequest', ], 'output' => [ 'shape' => 'GetPublicKeyResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'NoSuchPublicKey', ], ], ], 'GetPublicKeyConfig' => [ 'name' => 'GetPublicKeyConfig2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/public-key/{Id}/config', ], 'input' => [ 'shape' => 'GetPublicKeyConfigRequest', ], 'output' => [ 'shape' => 'GetPublicKeyConfigResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'NoSuchPublicKey', ], ], ], 'GetStreamingDistribution' => [ 'name' => 'GetStreamingDistribution2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/streaming-distribution/{Id}', ], 'input' => [ 'shape' => 'GetStreamingDistributionRequest', ], 'output' => [ 'shape' => 'GetStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetStreamingDistributionConfig' => [ 'name' => 'GetStreamingDistributionConfig2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/streaming-distribution/{Id}/config', ], 'input' => [ 'shape' => 'GetStreamingDistributionConfigRequest', ], 'output' => [ 'shape' => 'GetStreamingDistributionConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'ListCloudFrontOriginAccessIdentities' => [ 'name' => 'ListCloudFrontOriginAccessIdentities2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/origin-access-identity/cloudfront', ], 'input' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesRequest', ], 'output' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListDistributions' => [ 'name' => 'ListDistributions2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/distribution', ], 'input' => [ 'shape' => 'ListDistributionsRequest', ], 'output' => [ 'shape' => 'ListDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListDistributionsByWebACLId' => [ 'name' => 'ListDistributionsByWebACLId2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/distributionsByWebACLId/{WebACLId}', ], 'input' => [ 'shape' => 'ListDistributionsByWebACLIdRequest', ], 'output' => [ 'shape' => 'ListDistributionsByWebACLIdResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidWebACLId', ], ], ], 'ListFieldLevelEncryptionConfigs' => [ 'name' => 'ListFieldLevelEncryptionConfigs2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/field-level-encryption', ], 'input' => [ 'shape' => 'ListFieldLevelEncryptionConfigsRequest', ], 'output' => [ 'shape' => 'ListFieldLevelEncryptionConfigsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListFieldLevelEncryptionProfiles' => [ 'name' => 'ListFieldLevelEncryptionProfiles2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/field-level-encryption-profile', ], 'input' => [ 'shape' => 'ListFieldLevelEncryptionProfilesRequest', ], 'output' => [ 'shape' => 'ListFieldLevelEncryptionProfilesResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListInvalidations' => [ 'name' => 'ListInvalidations2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/distribution/{DistributionId}/invalidation', ], 'input' => [ 'shape' => 'ListInvalidationsRequest', ], 'output' => [ 'shape' => 'ListInvalidationsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'ListPublicKeys' => [ 'name' => 'ListPublicKeys2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/public-key', ], 'input' => [ 'shape' => 'ListPublicKeysRequest', ], 'output' => [ 'shape' => 'ListPublicKeysResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListStreamingDistributions' => [ 'name' => 'ListStreamingDistributions2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/streaming-distribution', ], 'input' => [ 'shape' => 'ListStreamingDistributionsRequest', ], 'output' => [ 'shape' => 'ListStreamingDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource2018_06_18', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-06-18/tagging', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'TagResource' => [ 'name' => 'TagResource2018_06_18', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-06-18/tagging?Operation=Tag', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource2018_06_18', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-06-18/tagging?Operation=Untag', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'UpdateCloudFrontOriginAccessIdentity' => [ 'name' => 'UpdateCloudFrontOriginAccessIdentity2018_06_18', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2018-06-18/origin-access-identity/cloudfront/{Id}/config', ], 'input' => [ 'shape' => 'UpdateCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'UpdateCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'UpdateDistribution' => [ 'name' => 'UpdateDistribution2018_06_18', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2018-06-18/distribution/{Id}/config', ], 'input' => [ 'shape' => 'UpdateDistributionRequest', ], 'output' => [ 'shape' => 'UpdateDistributionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], [ 'shape' => 'TooManyDistributionsWithLambdaAssociations', ], [ 'shape' => 'TooManyLambdaFunctionAssociations', ], [ 'shape' => 'InvalidLambdaFunctionAssociation', ], [ 'shape' => 'InvalidOriginReadTimeout', ], [ 'shape' => 'InvalidOriginKeepaliveTimeout', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], [ 'shape' => 'IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior', ], [ 'shape' => 'TooManyDistributionsAssociatedToFieldLevelEncryptionConfig', ], ], ], 'UpdateFieldLevelEncryptionConfig' => [ 'name' => 'UpdateFieldLevelEncryptionConfig2018_06_18', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2018-06-18/field-level-encryption/{Id}/config', ], 'input' => [ 'shape' => 'UpdateFieldLevelEncryptionConfigRequest', ], 'output' => [ 'shape' => 'UpdateFieldLevelEncryptionConfigResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchFieldLevelEncryptionProfile', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyFieldLevelEncryptionQueryArgProfiles', ], [ 'shape' => 'TooManyFieldLevelEncryptionContentTypeProfiles', ], [ 'shape' => 'QueryArgProfileEmpty', ], ], ], 'UpdateFieldLevelEncryptionProfile' => [ 'name' => 'UpdateFieldLevelEncryptionProfile2018_06_18', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2018-06-18/field-level-encryption-profile/{Id}/config', ], 'input' => [ 'shape' => 'UpdateFieldLevelEncryptionProfileRequest', ], 'output' => [ 'shape' => 'UpdateFieldLevelEncryptionProfileResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'FieldLevelEncryptionProfileAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchPublicKey', ], [ 'shape' => 'NoSuchFieldLevelEncryptionProfile', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'FieldLevelEncryptionProfileSizeExceeded', ], [ 'shape' => 'TooManyFieldLevelEncryptionEncryptionEntities', ], [ 'shape' => 'TooManyFieldLevelEncryptionFieldPatterns', ], ], ], 'UpdatePublicKey' => [ 'name' => 'UpdatePublicKey2018_06_18', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2018-06-18/public-key/{Id}/config', ], 'input' => [ 'shape' => 'UpdatePublicKeyRequest', ], 'output' => [ 'shape' => 'UpdatePublicKeyResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CannotChangeImmutablePublicKeyFields', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'NoSuchPublicKey', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'UpdateStreamingDistribution' => [ 'name' => 'UpdateStreamingDistribution2018_06_18', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2018-06-18/streaming-distribution/{Id}/config', ], 'input' => [ 'shape' => 'UpdateStreamingDistributionRequest', ], 'output' => [ 'shape' => 'UpdateStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InconsistentQuantities', ], ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], 'Compress' => [ 'shape' => 'boolean', ], 'LambdaFunctionAssociations' => [ 'shape' => 'LambdaFunctionAssociations', ], 'FieldLevelEncryptionId' => [ 'shape' => 'string', ], ], ], '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', ], ], ], 'CannotChangeImmutablePublicKeyFields' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'CertificateSource' => [ 'type' => 'string', 'enum' => [ 'cloudfront', 'iam', 'acm', ], ], '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', ], ], 'ContentTypeProfile' => [ 'type' => 'structure', 'required' => [ 'Format', 'ContentType', ], 'members' => [ 'Format' => [ 'shape' => 'Format', ], 'ProfileId' => [ 'shape' => 'string', ], 'ContentType' => [ 'shape' => 'string', ], ], ], 'ContentTypeProfileConfig' => [ 'type' => 'structure', 'required' => [ 'ForwardWhenContentTypeIsUnknown', ], 'members' => [ 'ForwardWhenContentTypeIsUnknown' => [ 'shape' => 'boolean', ], 'ContentTypeProfiles' => [ 'shape' => 'ContentTypeProfiles', ], ], ], 'ContentTypeProfileList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContentTypeProfile', 'locationName' => 'ContentTypeProfile', ], ], 'ContentTypeProfiles' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'ContentTypeProfileList', ], ], ], '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', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-06-18/', ], ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-06-18/', ], ], ], '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', ], 'CreateDistributionWithTagsRequest' => [ 'type' => 'structure', 'required' => [ 'DistributionConfigWithTags', ], 'members' => [ 'DistributionConfigWithTags' => [ 'shape' => 'DistributionConfigWithTags', 'locationName' => 'DistributionConfigWithTags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-06-18/', ], ], ], 'payload' => 'DistributionConfigWithTags', ], 'CreateDistributionWithTagsResult' => [ 'type' => 'structure', 'members' => [ 'Distribution' => [ 'shape' => 'Distribution', ], 'Location' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'Location', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'Distribution', ], 'CreateFieldLevelEncryptionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'FieldLevelEncryptionConfig', ], 'members' => [ 'FieldLevelEncryptionConfig' => [ 'shape' => 'FieldLevelEncryptionConfig', 'locationName' => 'FieldLevelEncryptionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-06-18/', ], ], ], 'payload' => 'FieldLevelEncryptionConfig', ], 'CreateFieldLevelEncryptionConfigResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryption' => [ 'shape' => 'FieldLevelEncryption', ], 'Location' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'Location', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryption', ], 'CreateFieldLevelEncryptionProfileRequest' => [ 'type' => 'structure', 'required' => [ 'FieldLevelEncryptionProfileConfig', ], 'members' => [ 'FieldLevelEncryptionProfileConfig' => [ 'shape' => 'FieldLevelEncryptionProfileConfig', 'locationName' => 'FieldLevelEncryptionProfileConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-06-18/', ], ], ], 'payload' => 'FieldLevelEncryptionProfileConfig', ], 'CreateFieldLevelEncryptionProfileResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionProfile' => [ 'shape' => 'FieldLevelEncryptionProfile', ], 'Location' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'Location', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryptionProfile', ], 'CreateInvalidationRequest' => [ 'type' => 'structure', 'required' => [ 'DistributionId', 'InvalidationBatch', ], 'members' => [ 'DistributionId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'DistributionId', ], 'InvalidationBatch' => [ 'shape' => 'InvalidationBatch', 'locationName' => 'InvalidationBatch', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-06-18/', ], ], ], 'payload' => 'InvalidationBatch', ], 'CreateInvalidationResult' => [ 'type' => 'structure', 'members' => [ 'Location' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'Location', ], 'Invalidation' => [ 'shape' => 'Invalidation', ], ], 'payload' => 'Invalidation', ], 'CreatePublicKeyRequest' => [ 'type' => 'structure', 'required' => [ 'PublicKeyConfig', ], 'members' => [ 'PublicKeyConfig' => [ 'shape' => 'PublicKeyConfig', 'locationName' => 'PublicKeyConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-06-18/', ], ], ], 'payload' => 'PublicKeyConfig', ], 'CreatePublicKeyResult' => [ 'type' => 'structure', 'members' => [ 'PublicKey' => [ 'shape' => 'PublicKey', ], 'Location' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'Location', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'PublicKey', ], 'CreateStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfig', ], 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-06-18/', ], ], ], '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', ], 'CreateStreamingDistributionWithTagsRequest' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfigWithTags', ], 'members' => [ 'StreamingDistributionConfigWithTags' => [ 'shape' => 'StreamingDistributionConfigWithTags', 'locationName' => 'StreamingDistributionConfigWithTags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-06-18/', ], ], ], 'payload' => 'StreamingDistributionConfigWithTags', ], 'CreateStreamingDistributionWithTagsResult' => [ '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', ], ], ], 'CustomHeaders' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'OriginCustomHeadersList', ], ], ], 'CustomOriginConfig' => [ 'type' => 'structure', 'required' => [ 'HTTPPort', 'HTTPSPort', 'OriginProtocolPolicy', ], 'members' => [ 'HTTPPort' => [ 'shape' => 'integer', ], 'HTTPSPort' => [ 'shape' => 'integer', ], 'OriginProtocolPolicy' => [ 'shape' => 'OriginProtocolPolicy', ], 'OriginSslProtocols' => [ 'shape' => 'OriginSslProtocols', ], 'OriginReadTimeout' => [ 'shape' => 'integer', ], 'OriginKeepaliveTimeout' => [ 'shape' => 'integer', ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], 'Compress' => [ 'shape' => 'boolean', ], 'LambdaFunctionAssociations' => [ 'shape' => 'LambdaFunctionAssociations', ], 'FieldLevelEncryptionId' => [ 'shape' => 'string', ], ], ], 'DeleteCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteFieldLevelEncryptionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteFieldLevelEncryptionProfileRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeletePublicKeyRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'Distribution' => [ 'type' => 'structure', 'required' => [ 'Id', 'ARN', 'Status', 'LastModifiedTime', 'InProgressInvalidationBatches', 'DomainName', 'ActiveTrustedSigners', 'DistributionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], 'WebACLId' => [ 'shape' => 'string', ], 'HttpVersion' => [ 'shape' => 'HttpVersion', ], 'IsIPV6Enabled' => [ 'shape' => 'boolean', ], ], ], 'DistributionConfigWithTags' => [ 'type' => 'structure', 'required' => [ 'DistributionConfig', 'Tags', ], 'members' => [ 'DistributionConfig' => [ 'shape' => 'DistributionConfig', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], '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', 'ARN', 'Status', 'LastModifiedTime', 'DomainName', 'Aliases', 'Origins', 'DefaultCacheBehavior', 'CacheBehaviors', 'CustomErrorResponses', 'Comment', 'PriceClass', 'Enabled', 'ViewerCertificate', 'Restrictions', 'WebACLId', 'HttpVersion', 'IsIPV6Enabled', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], 'WebACLId' => [ 'shape' => 'string', ], 'HttpVersion' => [ 'shape' => 'HttpVersion', ], 'IsIPV6Enabled' => [ 'shape' => 'boolean', ], ], ], 'DistributionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DistributionSummary', 'locationName' => 'DistributionSummary', ], ], 'EncryptionEntities' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'EncryptionEntityList', ], ], ], 'EncryptionEntity' => [ 'type' => 'structure', 'required' => [ 'PublicKeyId', 'ProviderId', 'FieldPatterns', ], 'members' => [ 'PublicKeyId' => [ 'shape' => 'string', ], 'ProviderId' => [ 'shape' => 'string', ], 'FieldPatterns' => [ 'shape' => 'FieldPatterns', ], ], ], 'EncryptionEntityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EncryptionEntity', 'locationName' => 'EncryptionEntity', ], ], 'EventType' => [ 'type' => 'string', 'enum' => [ 'viewer-request', 'viewer-response', 'origin-request', 'origin-response', ], ], 'FieldLevelEncryption' => [ 'type' => 'structure', 'required' => [ 'Id', 'LastModifiedTime', 'FieldLevelEncryptionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'LastModifiedTime' => [ 'shape' => 'timestamp', ], 'FieldLevelEncryptionConfig' => [ 'shape' => 'FieldLevelEncryptionConfig', ], ], ], 'FieldLevelEncryptionConfig' => [ 'type' => 'structure', 'required' => [ 'CallerReference', ], 'members' => [ 'CallerReference' => [ 'shape' => 'string', ], 'Comment' => [ 'shape' => 'string', ], 'QueryArgProfileConfig' => [ 'shape' => 'QueryArgProfileConfig', ], 'ContentTypeProfileConfig' => [ 'shape' => 'ContentTypeProfileConfig', ], ], ], 'FieldLevelEncryptionConfigAlreadyExists' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'FieldLevelEncryptionConfigInUse' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'FieldLevelEncryptionList' => [ 'type' => 'structure', 'required' => [ 'MaxItems', 'Quantity', ], 'members' => [ 'NextMarker' => [ 'shape' => 'string', ], 'MaxItems' => [ 'shape' => 'integer', ], 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'FieldLevelEncryptionSummaryList', ], ], ], 'FieldLevelEncryptionProfile' => [ 'type' => 'structure', 'required' => [ 'Id', 'LastModifiedTime', 'FieldLevelEncryptionProfileConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'LastModifiedTime' => [ 'shape' => 'timestamp', ], 'FieldLevelEncryptionProfileConfig' => [ 'shape' => 'FieldLevelEncryptionProfileConfig', ], ], ], 'FieldLevelEncryptionProfileAlreadyExists' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'FieldLevelEncryptionProfileConfig' => [ 'type' => 'structure', 'required' => [ 'Name', 'CallerReference', 'EncryptionEntities', ], 'members' => [ 'Name' => [ 'shape' => 'string', ], 'CallerReference' => [ 'shape' => 'string', ], 'Comment' => [ 'shape' => 'string', ], 'EncryptionEntities' => [ 'shape' => 'EncryptionEntities', ], ], ], 'FieldLevelEncryptionProfileInUse' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'FieldLevelEncryptionProfileList' => [ 'type' => 'structure', 'required' => [ 'MaxItems', 'Quantity', ], 'members' => [ 'NextMarker' => [ 'shape' => 'string', ], 'MaxItems' => [ 'shape' => 'integer', ], 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'FieldLevelEncryptionProfileSummaryList', ], ], ], 'FieldLevelEncryptionProfileSizeExceeded' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'FieldLevelEncryptionProfileSummary' => [ 'type' => 'structure', 'required' => [ 'Id', 'LastModifiedTime', 'Name', 'EncryptionEntities', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'LastModifiedTime' => [ 'shape' => 'timestamp', ], 'Name' => [ 'shape' => 'string', ], 'EncryptionEntities' => [ 'shape' => 'EncryptionEntities', ], 'Comment' => [ 'shape' => 'string', ], ], ], 'FieldLevelEncryptionProfileSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FieldLevelEncryptionProfileSummary', 'locationName' => 'FieldLevelEncryptionProfileSummary', ], ], 'FieldLevelEncryptionSummary' => [ 'type' => 'structure', 'required' => [ 'Id', 'LastModifiedTime', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'LastModifiedTime' => [ 'shape' => 'timestamp', ], 'Comment' => [ 'shape' => 'string', ], 'QueryArgProfileConfig' => [ 'shape' => 'QueryArgProfileConfig', ], 'ContentTypeProfileConfig' => [ 'shape' => 'ContentTypeProfileConfig', ], ], ], 'FieldLevelEncryptionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FieldLevelEncryptionSummary', 'locationName' => 'FieldLevelEncryptionSummary', ], ], 'FieldPatternList' => [ 'type' => 'list', 'member' => [ 'shape' => 'string', 'locationName' => 'FieldPattern', ], ], 'FieldPatterns' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'FieldPatternList', ], ], ], 'Format' => [ 'type' => 'string', 'enum' => [ 'URLEncoded', ], ], 'ForwardedValues' => [ 'type' => 'structure', 'required' => [ 'QueryString', 'Cookies', ], 'members' => [ 'QueryString' => [ 'shape' => 'boolean', ], 'Cookies' => [ 'shape' => 'CookiePreference', ], 'Headers' => [ 'shape' => 'Headers', ], 'QueryStringCacheKeys' => [ 'shape' => 'QueryStringCacheKeys', ], ], ], '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', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityConfigResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentityConfig' => [ 'shape' => 'CloudFrontOriginAccessIdentityConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentityConfig', ], 'GetCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentity' => [ 'shape' => 'CloudFrontOriginAccessIdentity', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentity', ], 'GetDistributionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'DistributionConfig' => [ 'shape' => 'DistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'DistributionConfig', ], 'GetDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetDistributionResult' => [ 'type' => 'structure', 'members' => [ 'Distribution' => [ 'shape' => 'Distribution', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'Distribution', ], 'GetFieldLevelEncryptionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetFieldLevelEncryptionConfigResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionConfig' => [ 'shape' => 'FieldLevelEncryptionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryptionConfig', ], 'GetFieldLevelEncryptionProfileConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetFieldLevelEncryptionProfileConfigResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionProfileConfig' => [ 'shape' => 'FieldLevelEncryptionProfileConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryptionProfileConfig', ], 'GetFieldLevelEncryptionProfileRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetFieldLevelEncryptionProfileResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionProfile' => [ 'shape' => 'FieldLevelEncryptionProfile', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryptionProfile', ], 'GetFieldLevelEncryptionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetFieldLevelEncryptionResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryption' => [ 'shape' => 'FieldLevelEncryption', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryption', ], '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', ], 'GetPublicKeyConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetPublicKeyConfigResult' => [ 'type' => 'structure', 'members' => [ 'PublicKeyConfig' => [ 'shape' => 'PublicKeyConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'PublicKeyConfig', ], 'GetPublicKeyRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetPublicKeyResult' => [ 'type' => 'structure', 'members' => [ 'PublicKey' => [ 'shape' => 'PublicKey', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'PublicKey', ], 'GetStreamingDistributionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetStreamingDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'StreamingDistributionConfig', ], 'GetStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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', ], ], ], 'HttpVersion' => [ 'type' => 'string', 'enum' => [ 'http1.1', 'http2', ], ], 'IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], '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, ], 'InvalidLambdaFunctionAssociation' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidLocationCode' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidMinimumProtocolVersion' => [ '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, ], 'InvalidOriginKeepaliveTimeout' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidOriginReadTimeout' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidProtocolSettings' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidQueryStringParameters' => [ '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, ], 'InvalidTTLOrder' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidTagging' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidViewerCertificate' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidWebACLId' => [ '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', ], ], ], 'LambdaFunctionARN' => [ 'type' => 'string', ], 'LambdaFunctionAssociation' => [ 'type' => 'structure', 'required' => [ 'LambdaFunctionARN', 'EventType', ], 'members' => [ 'LambdaFunctionARN' => [ 'shape' => 'LambdaFunctionARN', ], 'EventType' => [ 'shape' => 'EventType', ], 'IncludeBody' => [ 'shape' => 'boolean', ], ], ], 'LambdaFunctionAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LambdaFunctionAssociation', 'locationName' => 'LambdaFunctionAssociation', ], ], 'LambdaFunctionAssociations' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'LambdaFunctionAssociationList', ], ], ], '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', ], 'ListDistributionsByWebACLIdRequest' => [ 'type' => 'structure', 'required' => [ 'WebACLId', ], 'members' => [ 'Marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'MaxItems', ], 'WebACLId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'WebACLId', ], ], ], 'ListDistributionsByWebACLIdResult' => [ 'type' => 'structure', 'members' => [ 'DistributionList' => [ 'shape' => 'DistributionList', ], ], 'payload' => 'DistributionList', ], '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', ], 'ListFieldLevelEncryptionConfigsRequest' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'MaxItems', ], ], ], 'ListFieldLevelEncryptionConfigsResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionList' => [ 'shape' => 'FieldLevelEncryptionList', ], ], 'payload' => 'FieldLevelEncryptionList', ], 'ListFieldLevelEncryptionProfilesRequest' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'MaxItems', ], ], ], 'ListFieldLevelEncryptionProfilesResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionProfileList' => [ 'shape' => 'FieldLevelEncryptionProfileList', ], ], 'payload' => 'FieldLevelEncryptionProfileList', ], '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', ], 'ListPublicKeysRequest' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'MaxItems', ], ], ], 'ListPublicKeysResult' => [ 'type' => 'structure', 'members' => [ 'PublicKeyList' => [ 'shape' => 'PublicKeyList', ], ], 'payload' => 'PublicKeyList', ], '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', ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], ], ], 'ListTagsForResourceResult' => [ 'type' => 'structure', 'required' => [ 'Tags', ], 'members' => [ 'Tags' => [ 'shape' => 'Tags', ], ], 'payload' => 'Tags', ], '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', 'TLSv1_2016', 'TLSv1.1_2016', 'TLSv1.2_2018', ], ], '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, ], 'NoSuchFieldLevelEncryptionConfig' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'NoSuchFieldLevelEncryptionProfile' => [ '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, ], 'NoSuchPublicKey' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'NoSuchResource' => [ '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', ], 'CustomHeaders' => [ 'shape' => 'CustomHeaders', ], 'S3OriginConfig' => [ 'shape' => 'S3OriginConfig', ], 'CustomOriginConfig' => [ 'shape' => 'CustomOriginConfig', ], ], ], 'OriginCustomHeader' => [ 'type' => 'structure', 'required' => [ 'HeaderName', 'HeaderValue', ], 'members' => [ 'HeaderName' => [ 'shape' => 'string', ], 'HeaderValue' => [ 'shape' => 'string', ], ], ], 'OriginCustomHeadersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OriginCustomHeader', 'locationName' => 'OriginCustomHeader', ], ], 'OriginList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Origin', 'locationName' => 'Origin', ], 'min' => 1, ], 'OriginProtocolPolicy' => [ 'type' => 'string', 'enum' => [ 'http-only', 'match-viewer', 'https-only', ], ], 'OriginSslProtocols' => [ 'type' => 'structure', 'required' => [ 'Quantity', 'Items', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'SslProtocolsList', ], ], ], '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', ], ], 'PublicKey' => [ 'type' => 'structure', 'required' => [ 'Id', 'CreatedTime', 'PublicKeyConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'CreatedTime' => [ 'shape' => 'timestamp', ], 'PublicKeyConfig' => [ 'shape' => 'PublicKeyConfig', ], ], ], 'PublicKeyAlreadyExists' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'PublicKeyConfig' => [ 'type' => 'structure', 'required' => [ 'CallerReference', 'Name', 'EncodedKey', ], 'members' => [ 'CallerReference' => [ 'shape' => 'string', ], 'Name' => [ 'shape' => 'string', ], 'EncodedKey' => [ 'shape' => 'string', ], 'Comment' => [ 'shape' => 'string', ], ], ], 'PublicKeyInUse' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'PublicKeyList' => [ 'type' => 'structure', 'required' => [ 'MaxItems', 'Quantity', ], 'members' => [ 'NextMarker' => [ 'shape' => 'string', ], 'MaxItems' => [ 'shape' => 'integer', ], 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'PublicKeySummaryList', ], ], ], 'PublicKeySummary' => [ 'type' => 'structure', 'required' => [ 'Id', 'Name', 'CreatedTime', 'EncodedKey', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'Name' => [ 'shape' => 'string', ], 'CreatedTime' => [ 'shape' => 'timestamp', ], 'EncodedKey' => [ 'shape' => 'string', ], 'Comment' => [ 'shape' => 'string', ], ], ], 'PublicKeySummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PublicKeySummary', 'locationName' => 'PublicKeySummary', ], ], 'QueryArgProfile' => [ 'type' => 'structure', 'required' => [ 'QueryArg', 'ProfileId', ], 'members' => [ 'QueryArg' => [ 'shape' => 'string', ], 'ProfileId' => [ 'shape' => 'string', ], ], ], 'QueryArgProfileConfig' => [ 'type' => 'structure', 'required' => [ 'ForwardWhenQueryArgProfileIsUnknown', ], 'members' => [ 'ForwardWhenQueryArgProfileIsUnknown' => [ 'shape' => 'boolean', ], 'QueryArgProfiles' => [ 'shape' => 'QueryArgProfiles', ], ], ], 'QueryArgProfileEmpty' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'QueryArgProfileList' => [ 'type' => 'list', 'member' => [ 'shape' => 'QueryArgProfile', 'locationName' => 'QueryArgProfile', ], ], 'QueryArgProfiles' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'QueryArgProfileList', ], ], ], 'QueryStringCacheKeys' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'QueryStringCacheKeysList', ], ], ], 'QueryStringCacheKeysList' => [ 'type' => 'list', 'member' => [ 'shape' => 'string', 'locationName' => 'Name', ], ], 'ResourceARN' => [ 'type' => 'string', 'pattern' => 'arn:aws:cloudfront::[0-9]+:.*', ], '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', ], ], 'SslProtocol' => [ 'type' => 'string', 'enum' => [ 'SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2', ], ], 'SslProtocolsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SslProtocol', 'locationName' => 'SslProtocol', ], ], 'StreamingDistribution' => [ 'type' => 'structure', 'required' => [ 'Id', 'ARN', 'Status', 'DomainName', 'ActiveTrustedSigners', 'StreamingDistributionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], ], ], 'StreamingDistributionConfigWithTags' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfig', 'Tags', ], 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], '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', 'ARN', 'Status', 'LastModifiedTime', 'DomainName', 'S3Origin', 'Aliases', 'TrustedSigners', 'Comment', 'PriceClass', 'Enabled', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', 'locationName' => 'Key', ], ], 'TagKeys' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'TagKeyList', ], ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', 'locationName' => 'Tag', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'Tags', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'Tags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-06-18/', ], ], ], 'payload' => 'Tags', ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'Tags' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'TagList', ], ], ], '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, ], 'TooManyDistributionsAssociatedToFieldLevelEncryptionConfig' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyDistributionsWithLambdaAssociations' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyFieldLevelEncryptionConfigs' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyFieldLevelEncryptionContentTypeProfiles' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyFieldLevelEncryptionEncryptionEntities' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyFieldLevelEncryptionFieldPatterns' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyFieldLevelEncryptionProfiles' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyFieldLevelEncryptionQueryArgProfiles' => [ '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, ], 'TooManyLambdaFunctionAssociations' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyOriginCustomHeaders' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyOrigins' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyPublicKeys' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyQueryStringParameters' => [ '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', ], ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'TagKeys', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], 'TagKeys' => [ 'shape' => 'TagKeys', 'locationName' => 'TagKeys', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-06-18/', ], ], ], 'payload' => 'TagKeys', ], 'UpdateCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'CloudFrontOriginAccessIdentityConfig', 'Id', ], 'members' => [ 'CloudFrontOriginAccessIdentityConfig' => [ 'shape' => 'CloudFrontOriginAccessIdentityConfig', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-06-18/', ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-06-18/', ], ], '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', ], 'UpdateFieldLevelEncryptionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'FieldLevelEncryptionConfig', 'Id', ], 'members' => [ 'FieldLevelEncryptionConfig' => [ 'shape' => 'FieldLevelEncryptionConfig', 'locationName' => 'FieldLevelEncryptionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-06-18/', ], ], 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], 'payload' => 'FieldLevelEncryptionConfig', ], 'UpdateFieldLevelEncryptionConfigResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryption' => [ 'shape' => 'FieldLevelEncryption', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryption', ], 'UpdateFieldLevelEncryptionProfileRequest' => [ 'type' => 'structure', 'required' => [ 'FieldLevelEncryptionProfileConfig', 'Id', ], 'members' => [ 'FieldLevelEncryptionProfileConfig' => [ 'shape' => 'FieldLevelEncryptionProfileConfig', 'locationName' => 'FieldLevelEncryptionProfileConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-06-18/', ], ], 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], 'payload' => 'FieldLevelEncryptionProfileConfig', ], 'UpdateFieldLevelEncryptionProfileResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionProfile' => [ 'shape' => 'FieldLevelEncryptionProfile', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryptionProfile', ], 'UpdatePublicKeyRequest' => [ 'type' => 'structure', 'required' => [ 'PublicKeyConfig', 'Id', ], 'members' => [ 'PublicKeyConfig' => [ 'shape' => 'PublicKeyConfig', 'locationName' => 'PublicKeyConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-06-18/', ], ], 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], 'payload' => 'PublicKeyConfig', ], 'UpdatePublicKeyResult' => [ 'type' => 'structure', 'members' => [ 'PublicKey' => [ 'shape' => 'PublicKey', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'PublicKey', ], 'UpdateStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfig', 'Id', ], 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-06-18/', ], ], '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' => [ 'CloudFrontDefaultCertificate' => [ 'shape' => 'boolean', ], 'IAMCertificateId' => [ 'shape' => 'string', ], 'ACMCertificateArn' => [ 'shape' => 'string', ], 'SSLSupportMethod' => [ 'shape' => 'SSLSupportMethod', ], 'MinimumProtocolVersion' => [ 'shape' => 'MinimumProtocolVersion', ], 'Certificate' => [ 'shape' => 'string', 'deprecated' => true, ], 'CertificateSource' => [ 'shape' => 'CertificateSource', 'deprecated' => true, ], ], ], '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/Aws/data/cloudfront/2018-06-18/paginators-1.json.php b/lib/aws/Aws/data/cloudfront/2018-06-18/paginators-1.json.php new file mode 100644 index 0000000..61f860c --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2018-06-18/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2018-06-18/paginators-1.json +return [ 'pagination' => [ 'ListCloudFrontOriginAccessIdentities' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'CloudFrontOriginAccessIdentityList.IsTruncated', 'output_token' => 'CloudFrontOriginAccessIdentityList.NextMarker', 'result_key' => 'CloudFrontOriginAccessIdentityList.Items', ], 'ListDistributions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'DistributionList.IsTruncated', 'output_token' => 'DistributionList.NextMarker', 'result_key' => 'DistributionList.Items', ], 'ListInvalidations' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'InvalidationList.IsTruncated', 'output_token' => 'InvalidationList.NextMarker', 'result_key' => 'InvalidationList.Items', ], 'ListStreamingDistributions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'StreamingDistributionList.IsTruncated', 'output_token' => 'StreamingDistributionList.NextMarker', 'result_key' => 'StreamingDistributionList.Items', ], ],]; diff --git a/lib/aws/Aws/data/cloudfront/2018-06-18/smoke.json.php b/lib/aws/Aws/data/cloudfront/2018-06-18/smoke.json.php new file mode 100644 index 0000000..3fd962b --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2018-06-18/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2018-06-18/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-east-1', 'testCases' => [ [ 'operationName' => 'ListCloudFrontOriginAccessIdentities', 'input' => [ 'MaxItems' => '1', ], 'errorExpectedFromService' => false, ], [ 'operationName' => 'GetDistribution', 'input' => [ 'Id' => 'fake-id', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/cloudfront/2018-06-18/waiters-1.json.php b/lib/aws/Aws/data/cloudfront/2018-06-18/waiters-1.json.php new file mode 100644 index 0000000..20f082d --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2018-06-18/waiters-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2018-06-18/waiters-1.json +return [ 'waiters' => [ '__default__' => [ 'success_type' => 'output', 'success_path' => 'Status', ], 'StreamingDistributionDeployed' => [ 'operation' => 'GetStreamingDistribution', 'description' => 'Wait until a streaming distribution is deployed.', 'interval' => 60, 'max_attempts' => 25, 'success_value' => 'Deployed', ], 'DistributionDeployed' => [ 'operation' => 'GetDistribution', 'description' => 'Wait until a distribution is deployed.', 'interval' => 60, 'max_attempts' => 25, 'success_value' => 'Deployed', ], 'InvalidationCompleted' => [ 'operation' => 'GetInvalidation', 'description' => 'Wait until an invalidation has completed.', 'interval' => 20, 'max_attempts' => 30, 'success_value' => 'Completed', ], ],]; diff --git a/lib/aws/Aws/data/cloudfront/2018-06-18/waiters-2.json.php b/lib/aws/Aws/data/cloudfront/2018-06-18/waiters-2.json.php new file mode 100644 index 0000000..d0070a5 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2018-06-18/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2018-06-18/waiters-2.json +return [ '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/Aws/data/cloudfront/2018-11-05/api-2.json.php b/lib/aws/Aws/data/cloudfront/2018-11-05/api-2.json.php new file mode 100644 index 0000000..24972d3 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2018-11-05/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2018-11-05/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-11-05', 'endpointPrefix' => 'cloudfront', 'globalEndpoint' => 'cloudfront.amazonaws.com', 'protocol' => 'rest-xml', 'serviceAbbreviation' => 'CloudFront', 'serviceFullName' => 'Amazon CloudFront', 'serviceId' => 'CloudFront', 'signatureVersion' => 'v4', 'uid' => 'cloudfront-2018-11-05', ], 'operations' => [ 'CreateCloudFrontOriginAccessIdentity' => [ 'name' => 'CreateCloudFrontOriginAccessIdentity2018_11_05', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-11-05/origin-access-identity/cloudfront', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'CreateCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'CloudFrontOriginAccessIdentityAlreadyExists', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyCloudFrontOriginAccessIdentities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateDistribution' => [ 'name' => 'CreateDistribution2018_11_05', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-11-05/distribution', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDistributionRequest', ], 'output' => [ 'shape' => 'CreateDistributionResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'DistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'TooManyDistributions', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyOriginGroupsPerDistribution', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidProtocolSettings', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], [ 'shape' => 'TooManyDistributionsWithLambdaAssociations', ], [ 'shape' => 'TooManyLambdaFunctionAssociations', ], [ 'shape' => 'InvalidLambdaFunctionAssociation', ], [ 'shape' => 'InvalidOriginReadTimeout', ], [ 'shape' => 'InvalidOriginKeepaliveTimeout', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], [ 'shape' => 'IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior', ], [ 'shape' => 'TooManyDistributionsAssociatedToFieldLevelEncryptionConfig', ], ], ], 'CreateDistributionWithTags' => [ 'name' => 'CreateDistributionWithTags2018_11_05', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-11-05/distribution?WithTags', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDistributionWithTagsRequest', ], 'output' => [ 'shape' => 'CreateDistributionWithTagsResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'DistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'TooManyDistributions', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyOriginGroupsPerDistribution', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidProtocolSettings', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], [ 'shape' => 'TooManyDistributionsWithLambdaAssociations', ], [ 'shape' => 'TooManyLambdaFunctionAssociations', ], [ 'shape' => 'InvalidLambdaFunctionAssociation', ], [ 'shape' => 'InvalidOriginReadTimeout', ], [ 'shape' => 'InvalidOriginKeepaliveTimeout', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], [ 'shape' => 'IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior', ], [ 'shape' => 'TooManyDistributionsAssociatedToFieldLevelEncryptionConfig', ], ], ], 'CreateFieldLevelEncryptionConfig' => [ 'name' => 'CreateFieldLevelEncryptionConfig2018_11_05', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-11-05/field-level-encryption', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateFieldLevelEncryptionConfigRequest', ], 'output' => [ 'shape' => 'CreateFieldLevelEncryptionConfigResult', ], 'errors' => [ [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchFieldLevelEncryptionProfile', ], [ 'shape' => 'FieldLevelEncryptionConfigAlreadyExists', ], [ 'shape' => 'TooManyFieldLevelEncryptionConfigs', ], [ 'shape' => 'TooManyFieldLevelEncryptionQueryArgProfiles', ], [ 'shape' => 'TooManyFieldLevelEncryptionContentTypeProfiles', ], [ 'shape' => 'QueryArgProfileEmpty', ], ], ], 'CreateFieldLevelEncryptionProfile' => [ 'name' => 'CreateFieldLevelEncryptionProfile2018_11_05', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-11-05/field-level-encryption-profile', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateFieldLevelEncryptionProfileRequest', ], 'output' => [ 'shape' => 'CreateFieldLevelEncryptionProfileResult', ], 'errors' => [ [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchPublicKey', ], [ 'shape' => 'FieldLevelEncryptionProfileAlreadyExists', ], [ 'shape' => 'FieldLevelEncryptionProfileSizeExceeded', ], [ 'shape' => 'TooManyFieldLevelEncryptionProfiles', ], [ 'shape' => 'TooManyFieldLevelEncryptionEncryptionEntities', ], [ 'shape' => 'TooManyFieldLevelEncryptionFieldPatterns', ], ], ], 'CreateInvalidation' => [ 'name' => 'CreateInvalidation2018_11_05', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-11-05/distribution/{DistributionId}/invalidation', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateInvalidationRequest', ], 'output' => [ 'shape' => 'CreateInvalidationResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'BatchTooLarge', ], [ 'shape' => 'TooManyInvalidationsInProgress', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreatePublicKey' => [ 'name' => 'CreatePublicKey2018_11_05', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-11-05/public-key', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreatePublicKeyRequest', ], 'output' => [ 'shape' => 'CreatePublicKeyResult', ], 'errors' => [ [ 'shape' => 'PublicKeyAlreadyExists', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'TooManyPublicKeys', ], ], ], 'CreateStreamingDistribution' => [ 'name' => 'CreateStreamingDistribution2018_11_05', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-11-05/streaming-distribution', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStreamingDistributionRequest', ], 'output' => [ 'shape' => 'CreateStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'StreamingDistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'TooManyStreamingDistributions', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'CreateStreamingDistributionWithTags' => [ 'name' => 'CreateStreamingDistributionWithTags2018_11_05', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-11-05/streaming-distribution?WithTags', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateStreamingDistributionWithTagsRequest', ], 'output' => [ 'shape' => 'CreateStreamingDistributionWithTagsResult', ], 'errors' => [ [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'StreamingDistributionAlreadyExists', ], [ 'shape' => 'InvalidOrigin', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'TooManyStreamingDistributions', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidTagging', ], ], ], 'DeleteCloudFrontOriginAccessIdentity' => [ 'name' => 'DeleteCloudFrontOriginAccessIdentity2018_11_05', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2018-11-05/origin-access-identity/cloudfront/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteCloudFrontOriginAccessIdentityRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'CloudFrontOriginAccessIdentityInUse', ], ], ], 'DeleteDistribution' => [ 'name' => 'DeleteDistribution2018_11_05', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2018-11-05/distribution/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDistributionRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'DistributionNotDisabled', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'DeleteFieldLevelEncryptionConfig' => [ 'name' => 'DeleteFieldLevelEncryptionConfig2018_11_05', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2018-11-05/field-level-encryption/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteFieldLevelEncryptionConfigRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'FieldLevelEncryptionConfigInUse', ], ], ], 'DeleteFieldLevelEncryptionProfile' => [ 'name' => 'DeleteFieldLevelEncryptionProfile2018_11_05', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2018-11-05/field-level-encryption-profile/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteFieldLevelEncryptionProfileRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchFieldLevelEncryptionProfile', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'FieldLevelEncryptionProfileInUse', ], ], ], 'DeletePublicKey' => [ 'name' => 'DeletePublicKey2018_11_05', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2018-11-05/public-key/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeletePublicKeyRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'PublicKeyInUse', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchPublicKey', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'DeleteStreamingDistribution' => [ 'name' => 'DeleteStreamingDistribution2018_11_05', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2018-11-05/streaming-distribution/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteStreamingDistributionRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'StreamingDistributionNotDisabled', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'GetCloudFrontOriginAccessIdentity' => [ 'name' => 'GetCloudFrontOriginAccessIdentity2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/origin-access-identity/cloudfront/{Id}', ], 'input' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetCloudFrontOriginAccessIdentityConfig' => [ 'name' => 'GetCloudFrontOriginAccessIdentityConfig2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/origin-access-identity/cloudfront/{Id}/config', ], 'input' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityConfigRequest', ], 'output' => [ 'shape' => 'GetCloudFrontOriginAccessIdentityConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetDistribution' => [ 'name' => 'GetDistribution2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/distribution/{Id}', ], 'input' => [ 'shape' => 'GetDistributionRequest', ], 'output' => [ 'shape' => 'GetDistributionResult', ], 'errors' => [ [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetDistributionConfig' => [ 'name' => 'GetDistributionConfig2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/distribution/{Id}/config', ], 'input' => [ 'shape' => 'GetDistributionConfigRequest', ], 'output' => [ 'shape' => 'GetDistributionConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetFieldLevelEncryption' => [ 'name' => 'GetFieldLevelEncryption2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/field-level-encryption/{Id}', ], 'input' => [ 'shape' => 'GetFieldLevelEncryptionRequest', ], 'output' => [ 'shape' => 'GetFieldLevelEncryptionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], ], ], 'GetFieldLevelEncryptionConfig' => [ 'name' => 'GetFieldLevelEncryptionConfig2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/field-level-encryption/{Id}/config', ], 'input' => [ 'shape' => 'GetFieldLevelEncryptionConfigRequest', ], 'output' => [ 'shape' => 'GetFieldLevelEncryptionConfigResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], ], ], 'GetFieldLevelEncryptionProfile' => [ 'name' => 'GetFieldLevelEncryptionProfile2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/field-level-encryption-profile/{Id}', ], 'input' => [ 'shape' => 'GetFieldLevelEncryptionProfileRequest', ], 'output' => [ 'shape' => 'GetFieldLevelEncryptionProfileResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'NoSuchFieldLevelEncryptionProfile', ], ], ], 'GetFieldLevelEncryptionProfileConfig' => [ 'name' => 'GetFieldLevelEncryptionProfileConfig2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/field-level-encryption-profile/{Id}/config', ], 'input' => [ 'shape' => 'GetFieldLevelEncryptionProfileConfigRequest', ], 'output' => [ 'shape' => 'GetFieldLevelEncryptionProfileConfigResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'NoSuchFieldLevelEncryptionProfile', ], ], ], 'GetInvalidation' => [ 'name' => 'GetInvalidation2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/distribution/{DistributionId}/invalidation/{Id}', ], 'input' => [ 'shape' => 'GetInvalidationRequest', ], 'output' => [ 'shape' => 'GetInvalidationResult', ], 'errors' => [ [ 'shape' => 'NoSuchInvalidation', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetPublicKey' => [ 'name' => 'GetPublicKey2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/public-key/{Id}', ], 'input' => [ 'shape' => 'GetPublicKeyRequest', ], 'output' => [ 'shape' => 'GetPublicKeyResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'NoSuchPublicKey', ], ], ], 'GetPublicKeyConfig' => [ 'name' => 'GetPublicKeyConfig2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/public-key/{Id}/config', ], 'input' => [ 'shape' => 'GetPublicKeyConfigRequest', ], 'output' => [ 'shape' => 'GetPublicKeyConfigResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'NoSuchPublicKey', ], ], ], 'GetStreamingDistribution' => [ 'name' => 'GetStreamingDistribution2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/streaming-distribution/{Id}', ], 'input' => [ 'shape' => 'GetStreamingDistributionRequest', ], 'output' => [ 'shape' => 'GetStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'GetStreamingDistributionConfig' => [ 'name' => 'GetStreamingDistributionConfig2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/streaming-distribution/{Id}/config', ], 'input' => [ 'shape' => 'GetStreamingDistributionConfigRequest', ], 'output' => [ 'shape' => 'GetStreamingDistributionConfigResult', ], 'errors' => [ [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'ListCloudFrontOriginAccessIdentities' => [ 'name' => 'ListCloudFrontOriginAccessIdentities2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/origin-access-identity/cloudfront', ], 'input' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesRequest', ], 'output' => [ 'shape' => 'ListCloudFrontOriginAccessIdentitiesResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListDistributions' => [ 'name' => 'ListDistributions2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/distribution', ], 'input' => [ 'shape' => 'ListDistributionsRequest', ], 'output' => [ 'shape' => 'ListDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListDistributionsByWebACLId' => [ 'name' => 'ListDistributionsByWebACLId2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/distributionsByWebACLId/{WebACLId}', ], 'input' => [ 'shape' => 'ListDistributionsByWebACLIdRequest', ], 'output' => [ 'shape' => 'ListDistributionsByWebACLIdResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidWebACLId', ], ], ], 'ListFieldLevelEncryptionConfigs' => [ 'name' => 'ListFieldLevelEncryptionConfigs2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/field-level-encryption', ], 'input' => [ 'shape' => 'ListFieldLevelEncryptionConfigsRequest', ], 'output' => [ 'shape' => 'ListFieldLevelEncryptionConfigsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListFieldLevelEncryptionProfiles' => [ 'name' => 'ListFieldLevelEncryptionProfiles2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/field-level-encryption-profile', ], 'input' => [ 'shape' => 'ListFieldLevelEncryptionProfilesRequest', ], 'output' => [ 'shape' => 'ListFieldLevelEncryptionProfilesResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListInvalidations' => [ 'name' => 'ListInvalidations2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/distribution/{DistributionId}/invalidation', ], 'input' => [ 'shape' => 'ListInvalidationsRequest', ], 'output' => [ 'shape' => 'ListInvalidationsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'AccessDenied', ], ], ], 'ListPublicKeys' => [ 'name' => 'ListPublicKeys2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/public-key', ], 'input' => [ 'shape' => 'ListPublicKeysRequest', ], 'output' => [ 'shape' => 'ListPublicKeysResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListStreamingDistributions' => [ 'name' => 'ListStreamingDistributions2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/streaming-distribution', ], 'input' => [ 'shape' => 'ListStreamingDistributionsRequest', ], 'output' => [ 'shape' => 'ListStreamingDistributionsResult', ], 'errors' => [ [ 'shape' => 'InvalidArgument', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource2018_11_05', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-11-05/tagging', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'TagResource' => [ 'name' => 'TagResource2018_11_05', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-11-05/tagging?Operation=Tag', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource2018_11_05', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-11-05/tagging?Operation=Untag', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidTagging', ], [ 'shape' => 'NoSuchResource', ], ], ], 'UpdateCloudFrontOriginAccessIdentity' => [ 'name' => 'UpdateCloudFrontOriginAccessIdentity2018_11_05', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2018-11-05/origin-access-identity/cloudfront/{Id}/config', ], 'input' => [ 'shape' => 'UpdateCloudFrontOriginAccessIdentityRequest', ], 'output' => [ 'shape' => 'UpdateCloudFrontOriginAccessIdentityResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchCloudFrontOriginAccessIdentity', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InconsistentQuantities', ], ], ], 'UpdateDistribution' => [ 'name' => 'UpdateDistribution2018_11_05', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2018-11-05/distribution/{Id}/config', ], 'input' => [ 'shape' => 'UpdateDistributionRequest', ], 'output' => [ 'shape' => 'UpdateDistributionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchDistribution', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyDistributionCNAMEs', ], [ 'shape' => 'InvalidDefaultRootObject', ], [ 'shape' => 'InvalidRelativePath', ], [ 'shape' => 'InvalidErrorCode', ], [ 'shape' => 'InvalidResponseCode', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InvalidViewerCertificate', ], [ 'shape' => 'InvalidMinimumProtocolVersion', ], [ 'shape' => 'InvalidRequiredProtocol', ], [ 'shape' => 'NoSuchOrigin', ], [ 'shape' => 'TooManyOrigins', ], [ 'shape' => 'TooManyOriginGroupsPerDistribution', ], [ 'shape' => 'TooManyCacheBehaviors', ], [ 'shape' => 'TooManyCookieNamesInWhiteList', ], [ 'shape' => 'InvalidForwardCookies', ], [ 'shape' => 'TooManyHeadersInForwardedValues', ], [ 'shape' => 'InvalidHeadersForS3Origin', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'TooManyCertificates', ], [ 'shape' => 'InvalidLocationCode', ], [ 'shape' => 'InvalidGeoRestrictionParameter', ], [ 'shape' => 'InvalidTTLOrder', ], [ 'shape' => 'InvalidWebACLId', ], [ 'shape' => 'TooManyOriginCustomHeaders', ], [ 'shape' => 'TooManyQueryStringParameters', ], [ 'shape' => 'InvalidQueryStringParameters', ], [ 'shape' => 'TooManyDistributionsWithLambdaAssociations', ], [ 'shape' => 'TooManyLambdaFunctionAssociations', ], [ 'shape' => 'InvalidLambdaFunctionAssociation', ], [ 'shape' => 'InvalidOriginReadTimeout', ], [ 'shape' => 'InvalidOriginKeepaliveTimeout', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], [ 'shape' => 'IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior', ], [ 'shape' => 'TooManyDistributionsAssociatedToFieldLevelEncryptionConfig', ], ], ], 'UpdateFieldLevelEncryptionConfig' => [ 'name' => 'UpdateFieldLevelEncryptionConfig2018_11_05', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2018-11-05/field-level-encryption/{Id}/config', ], 'input' => [ 'shape' => 'UpdateFieldLevelEncryptionConfigRequest', ], 'output' => [ 'shape' => 'UpdateFieldLevelEncryptionConfigResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchFieldLevelEncryptionProfile', ], [ 'shape' => 'NoSuchFieldLevelEncryptionConfig', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyFieldLevelEncryptionQueryArgProfiles', ], [ 'shape' => 'TooManyFieldLevelEncryptionContentTypeProfiles', ], [ 'shape' => 'QueryArgProfileEmpty', ], ], ], 'UpdateFieldLevelEncryptionProfile' => [ 'name' => 'UpdateFieldLevelEncryptionProfile2018_11_05', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2018-11-05/field-level-encryption-profile/{Id}/config', ], 'input' => [ 'shape' => 'UpdateFieldLevelEncryptionProfileRequest', ], 'output' => [ 'shape' => 'UpdateFieldLevelEncryptionProfileResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'FieldLevelEncryptionProfileAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InconsistentQuantities', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'NoSuchPublicKey', ], [ 'shape' => 'NoSuchFieldLevelEncryptionProfile', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'FieldLevelEncryptionProfileSizeExceeded', ], [ 'shape' => 'TooManyFieldLevelEncryptionEncryptionEntities', ], [ 'shape' => 'TooManyFieldLevelEncryptionFieldPatterns', ], ], ], 'UpdatePublicKey' => [ 'name' => 'UpdatePublicKey2018_11_05', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2018-11-05/public-key/{Id}/config', ], 'input' => [ 'shape' => 'UpdatePublicKeyRequest', ], 'output' => [ 'shape' => 'UpdatePublicKeyResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CannotChangeImmutablePublicKeyFields', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'NoSuchPublicKey', ], [ 'shape' => 'PreconditionFailed', ], ], ], 'UpdateStreamingDistribution' => [ 'name' => 'UpdateStreamingDistribution2018_11_05', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2018-11-05/streaming-distribution/{Id}/config', ], 'input' => [ 'shape' => 'UpdateStreamingDistributionRequest', ], 'output' => [ 'shape' => 'UpdateStreamingDistributionResult', ], 'errors' => [ [ 'shape' => 'AccessDenied', ], [ 'shape' => 'CNAMEAlreadyExists', ], [ 'shape' => 'IllegalUpdate', ], [ 'shape' => 'InvalidIfMatchVersion', ], [ 'shape' => 'MissingBody', ], [ 'shape' => 'NoSuchStreamingDistribution', ], [ 'shape' => 'PreconditionFailed', ], [ 'shape' => 'TooManyStreamingDistributionCNAMEs', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidOriginAccessIdentity', ], [ 'shape' => 'TooManyTrustedSigners', ], [ 'shape' => 'TrustedSignerDoesNotExist', ], [ 'shape' => 'InconsistentQuantities', ], ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], 'Compress' => [ 'shape' => 'boolean', ], 'LambdaFunctionAssociations' => [ 'shape' => 'LambdaFunctionAssociations', ], 'FieldLevelEncryptionId' => [ 'shape' => 'string', ], ], ], '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', ], ], ], 'CannotChangeImmutablePublicKeyFields' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'CertificateSource' => [ 'type' => 'string', 'enum' => [ 'cloudfront', 'iam', 'acm', ], ], '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', ], ], 'ContentTypeProfile' => [ 'type' => 'structure', 'required' => [ 'Format', 'ContentType', ], 'members' => [ 'Format' => [ 'shape' => 'Format', ], 'ProfileId' => [ 'shape' => 'string', ], 'ContentType' => [ 'shape' => 'string', ], ], ], 'ContentTypeProfileConfig' => [ 'type' => 'structure', 'required' => [ 'ForwardWhenContentTypeIsUnknown', ], 'members' => [ 'ForwardWhenContentTypeIsUnknown' => [ 'shape' => 'boolean', ], 'ContentTypeProfiles' => [ 'shape' => 'ContentTypeProfiles', ], ], ], 'ContentTypeProfileList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContentTypeProfile', 'locationName' => 'ContentTypeProfile', ], ], 'ContentTypeProfiles' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'ContentTypeProfileList', ], ], ], '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', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-11-05/', ], ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-11-05/', ], ], ], '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', ], 'CreateDistributionWithTagsRequest' => [ 'type' => 'structure', 'required' => [ 'DistributionConfigWithTags', ], 'members' => [ 'DistributionConfigWithTags' => [ 'shape' => 'DistributionConfigWithTags', 'locationName' => 'DistributionConfigWithTags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-11-05/', ], ], ], 'payload' => 'DistributionConfigWithTags', ], 'CreateDistributionWithTagsResult' => [ 'type' => 'structure', 'members' => [ 'Distribution' => [ 'shape' => 'Distribution', ], 'Location' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'Location', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'Distribution', ], 'CreateFieldLevelEncryptionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'FieldLevelEncryptionConfig', ], 'members' => [ 'FieldLevelEncryptionConfig' => [ 'shape' => 'FieldLevelEncryptionConfig', 'locationName' => 'FieldLevelEncryptionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-11-05/', ], ], ], 'payload' => 'FieldLevelEncryptionConfig', ], 'CreateFieldLevelEncryptionConfigResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryption' => [ 'shape' => 'FieldLevelEncryption', ], 'Location' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'Location', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryption', ], 'CreateFieldLevelEncryptionProfileRequest' => [ 'type' => 'structure', 'required' => [ 'FieldLevelEncryptionProfileConfig', ], 'members' => [ 'FieldLevelEncryptionProfileConfig' => [ 'shape' => 'FieldLevelEncryptionProfileConfig', 'locationName' => 'FieldLevelEncryptionProfileConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-11-05/', ], ], ], 'payload' => 'FieldLevelEncryptionProfileConfig', ], 'CreateFieldLevelEncryptionProfileResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionProfile' => [ 'shape' => 'FieldLevelEncryptionProfile', ], 'Location' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'Location', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryptionProfile', ], 'CreateInvalidationRequest' => [ 'type' => 'structure', 'required' => [ 'DistributionId', 'InvalidationBatch', ], 'members' => [ 'DistributionId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'DistributionId', ], 'InvalidationBatch' => [ 'shape' => 'InvalidationBatch', 'locationName' => 'InvalidationBatch', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-11-05/', ], ], ], 'payload' => 'InvalidationBatch', ], 'CreateInvalidationResult' => [ 'type' => 'structure', 'members' => [ 'Location' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'Location', ], 'Invalidation' => [ 'shape' => 'Invalidation', ], ], 'payload' => 'Invalidation', ], 'CreatePublicKeyRequest' => [ 'type' => 'structure', 'required' => [ 'PublicKeyConfig', ], 'members' => [ 'PublicKeyConfig' => [ 'shape' => 'PublicKeyConfig', 'locationName' => 'PublicKeyConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-11-05/', ], ], ], 'payload' => 'PublicKeyConfig', ], 'CreatePublicKeyResult' => [ 'type' => 'structure', 'members' => [ 'PublicKey' => [ 'shape' => 'PublicKey', ], 'Location' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'Location', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'PublicKey', ], 'CreateStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfig', ], 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-11-05/', ], ], ], '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', ], 'CreateStreamingDistributionWithTagsRequest' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfigWithTags', ], 'members' => [ 'StreamingDistributionConfigWithTags' => [ 'shape' => 'StreamingDistributionConfigWithTags', 'locationName' => 'StreamingDistributionConfigWithTags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-11-05/', ], ], ], 'payload' => 'StreamingDistributionConfigWithTags', ], 'CreateStreamingDistributionWithTagsResult' => [ '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', ], ], ], 'CustomHeaders' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'OriginCustomHeadersList', ], ], ], 'CustomOriginConfig' => [ 'type' => 'structure', 'required' => [ 'HTTPPort', 'HTTPSPort', 'OriginProtocolPolicy', ], 'members' => [ 'HTTPPort' => [ 'shape' => 'integer', ], 'HTTPSPort' => [ 'shape' => 'integer', ], 'OriginProtocolPolicy' => [ 'shape' => 'OriginProtocolPolicy', ], 'OriginSslProtocols' => [ 'shape' => 'OriginSslProtocols', ], 'OriginReadTimeout' => [ 'shape' => 'integer', ], 'OriginKeepaliveTimeout' => [ 'shape' => 'integer', ], ], ], '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', ], 'DefaultTTL' => [ 'shape' => 'long', ], 'MaxTTL' => [ 'shape' => 'long', ], 'Compress' => [ 'shape' => 'boolean', ], 'LambdaFunctionAssociations' => [ 'shape' => 'LambdaFunctionAssociations', ], 'FieldLevelEncryptionId' => [ 'shape' => 'string', ], ], ], 'DeleteCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteFieldLevelEncryptionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteFieldLevelEncryptionProfileRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeletePublicKeyRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'DeleteStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], ], 'Distribution' => [ 'type' => 'structure', 'required' => [ 'Id', 'ARN', 'Status', 'LastModifiedTime', 'InProgressInvalidationBatches', 'DomainName', 'ActiveTrustedSigners', 'DistributionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], 'OriginGroups' => [ 'shape' => 'OriginGroups', ], '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', ], 'WebACLId' => [ 'shape' => 'string', ], 'HttpVersion' => [ 'shape' => 'HttpVersion', ], 'IsIPV6Enabled' => [ 'shape' => 'boolean', ], ], ], 'DistributionConfigWithTags' => [ 'type' => 'structure', 'required' => [ 'DistributionConfig', 'Tags', ], 'members' => [ 'DistributionConfig' => [ 'shape' => 'DistributionConfig', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], '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', 'ARN', 'Status', 'LastModifiedTime', 'DomainName', 'Aliases', 'Origins', 'DefaultCacheBehavior', 'CacheBehaviors', 'CustomErrorResponses', 'Comment', 'PriceClass', 'Enabled', 'ViewerCertificate', 'Restrictions', 'WebACLId', 'HttpVersion', 'IsIPV6Enabled', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ 'shape' => 'string', ], 'Status' => [ 'shape' => 'string', ], 'LastModifiedTime' => [ 'shape' => 'timestamp', ], 'DomainName' => [ 'shape' => 'string', ], 'Aliases' => [ 'shape' => 'Aliases', ], 'Origins' => [ 'shape' => 'Origins', ], 'OriginGroups' => [ 'shape' => 'OriginGroups', ], 'DefaultCacheBehavior' => [ 'shape' => 'DefaultCacheBehavior', ], 'CacheBehaviors' => [ 'shape' => 'CacheBehaviors', ], 'CustomErrorResponses' => [ 'shape' => 'CustomErrorResponses', ], 'Comment' => [ 'shape' => 'string', ], 'PriceClass' => [ 'shape' => 'PriceClass', ], 'Enabled' => [ 'shape' => 'boolean', ], 'ViewerCertificate' => [ 'shape' => 'ViewerCertificate', ], 'Restrictions' => [ 'shape' => 'Restrictions', ], 'WebACLId' => [ 'shape' => 'string', ], 'HttpVersion' => [ 'shape' => 'HttpVersion', ], 'IsIPV6Enabled' => [ 'shape' => 'boolean', ], ], ], 'DistributionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DistributionSummary', 'locationName' => 'DistributionSummary', ], ], 'EncryptionEntities' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'EncryptionEntityList', ], ], ], 'EncryptionEntity' => [ 'type' => 'structure', 'required' => [ 'PublicKeyId', 'ProviderId', 'FieldPatterns', ], 'members' => [ 'PublicKeyId' => [ 'shape' => 'string', ], 'ProviderId' => [ 'shape' => 'string', ], 'FieldPatterns' => [ 'shape' => 'FieldPatterns', ], ], ], 'EncryptionEntityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EncryptionEntity', 'locationName' => 'EncryptionEntity', ], ], 'EventType' => [ 'type' => 'string', 'enum' => [ 'viewer-request', 'viewer-response', 'origin-request', 'origin-response', ], ], 'FieldLevelEncryption' => [ 'type' => 'structure', 'required' => [ 'Id', 'LastModifiedTime', 'FieldLevelEncryptionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'LastModifiedTime' => [ 'shape' => 'timestamp', ], 'FieldLevelEncryptionConfig' => [ 'shape' => 'FieldLevelEncryptionConfig', ], ], ], 'FieldLevelEncryptionConfig' => [ 'type' => 'structure', 'required' => [ 'CallerReference', ], 'members' => [ 'CallerReference' => [ 'shape' => 'string', ], 'Comment' => [ 'shape' => 'string', ], 'QueryArgProfileConfig' => [ 'shape' => 'QueryArgProfileConfig', ], 'ContentTypeProfileConfig' => [ 'shape' => 'ContentTypeProfileConfig', ], ], ], 'FieldLevelEncryptionConfigAlreadyExists' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'FieldLevelEncryptionConfigInUse' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'FieldLevelEncryptionList' => [ 'type' => 'structure', 'required' => [ 'MaxItems', 'Quantity', ], 'members' => [ 'NextMarker' => [ 'shape' => 'string', ], 'MaxItems' => [ 'shape' => 'integer', ], 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'FieldLevelEncryptionSummaryList', ], ], ], 'FieldLevelEncryptionProfile' => [ 'type' => 'structure', 'required' => [ 'Id', 'LastModifiedTime', 'FieldLevelEncryptionProfileConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'LastModifiedTime' => [ 'shape' => 'timestamp', ], 'FieldLevelEncryptionProfileConfig' => [ 'shape' => 'FieldLevelEncryptionProfileConfig', ], ], ], 'FieldLevelEncryptionProfileAlreadyExists' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'FieldLevelEncryptionProfileConfig' => [ 'type' => 'structure', 'required' => [ 'Name', 'CallerReference', 'EncryptionEntities', ], 'members' => [ 'Name' => [ 'shape' => 'string', ], 'CallerReference' => [ 'shape' => 'string', ], 'Comment' => [ 'shape' => 'string', ], 'EncryptionEntities' => [ 'shape' => 'EncryptionEntities', ], ], ], 'FieldLevelEncryptionProfileInUse' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'FieldLevelEncryptionProfileList' => [ 'type' => 'structure', 'required' => [ 'MaxItems', 'Quantity', ], 'members' => [ 'NextMarker' => [ 'shape' => 'string', ], 'MaxItems' => [ 'shape' => 'integer', ], 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'FieldLevelEncryptionProfileSummaryList', ], ], ], 'FieldLevelEncryptionProfileSizeExceeded' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'FieldLevelEncryptionProfileSummary' => [ 'type' => 'structure', 'required' => [ 'Id', 'LastModifiedTime', 'Name', 'EncryptionEntities', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'LastModifiedTime' => [ 'shape' => 'timestamp', ], 'Name' => [ 'shape' => 'string', ], 'EncryptionEntities' => [ 'shape' => 'EncryptionEntities', ], 'Comment' => [ 'shape' => 'string', ], ], ], 'FieldLevelEncryptionProfileSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FieldLevelEncryptionProfileSummary', 'locationName' => 'FieldLevelEncryptionProfileSummary', ], ], 'FieldLevelEncryptionSummary' => [ 'type' => 'structure', 'required' => [ 'Id', 'LastModifiedTime', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'LastModifiedTime' => [ 'shape' => 'timestamp', ], 'Comment' => [ 'shape' => 'string', ], 'QueryArgProfileConfig' => [ 'shape' => 'QueryArgProfileConfig', ], 'ContentTypeProfileConfig' => [ 'shape' => 'ContentTypeProfileConfig', ], ], ], 'FieldLevelEncryptionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FieldLevelEncryptionSummary', 'locationName' => 'FieldLevelEncryptionSummary', ], ], 'FieldPatternList' => [ 'type' => 'list', 'member' => [ 'shape' => 'string', 'locationName' => 'FieldPattern', ], ], 'FieldPatterns' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'FieldPatternList', ], ], ], 'Format' => [ 'type' => 'string', 'enum' => [ 'URLEncoded', ], ], 'ForwardedValues' => [ 'type' => 'structure', 'required' => [ 'QueryString', 'Cookies', ], 'members' => [ 'QueryString' => [ 'shape' => 'boolean', ], 'Cookies' => [ 'shape' => 'CookiePreference', ], 'Headers' => [ 'shape' => 'Headers', ], 'QueryStringCacheKeys' => [ 'shape' => 'QueryStringCacheKeys', ], ], ], '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', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityConfigResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentityConfig' => [ 'shape' => 'CloudFrontOriginAccessIdentityConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentityConfig', ], 'GetCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetCloudFrontOriginAccessIdentityResult' => [ 'type' => 'structure', 'members' => [ 'CloudFrontOriginAccessIdentity' => [ 'shape' => 'CloudFrontOriginAccessIdentity', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'CloudFrontOriginAccessIdentity', ], 'GetDistributionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'DistributionConfig' => [ 'shape' => 'DistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'DistributionConfig', ], 'GetDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetDistributionResult' => [ 'type' => 'structure', 'members' => [ 'Distribution' => [ 'shape' => 'Distribution', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'Distribution', ], 'GetFieldLevelEncryptionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetFieldLevelEncryptionConfigResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionConfig' => [ 'shape' => 'FieldLevelEncryptionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryptionConfig', ], 'GetFieldLevelEncryptionProfileConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetFieldLevelEncryptionProfileConfigResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionProfileConfig' => [ 'shape' => 'FieldLevelEncryptionProfileConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryptionProfileConfig', ], 'GetFieldLevelEncryptionProfileRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetFieldLevelEncryptionProfileResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionProfile' => [ 'shape' => 'FieldLevelEncryptionProfile', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryptionProfile', ], 'GetFieldLevelEncryptionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetFieldLevelEncryptionResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryption' => [ 'shape' => 'FieldLevelEncryption', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryption', ], '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', ], 'GetPublicKeyConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetPublicKeyConfigResult' => [ 'type' => 'structure', 'members' => [ 'PublicKeyConfig' => [ 'shape' => 'PublicKeyConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'PublicKeyConfig', ], 'GetPublicKeyRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetPublicKeyResult' => [ 'type' => 'structure', 'members' => [ 'PublicKey' => [ 'shape' => 'PublicKey', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'PublicKey', ], 'GetStreamingDistributionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetStreamingDistributionConfigResult' => [ 'type' => 'structure', 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'StreamingDistributionConfig', ], 'GetStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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', ], ], ], 'HttpVersion' => [ 'type' => 'string', 'enum' => [ 'http1.1', 'http2', ], ], 'IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], '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, ], 'InvalidLambdaFunctionAssociation' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidLocationCode' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidMinimumProtocolVersion' => [ '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, ], 'InvalidOriginKeepaliveTimeout' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidOriginReadTimeout' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidProtocolSettings' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidQueryStringParameters' => [ '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, ], 'InvalidTTLOrder' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidTagging' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidViewerCertificate' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidWebACLId' => [ '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', ], ], ], 'LambdaFunctionARN' => [ 'type' => 'string', ], 'LambdaFunctionAssociation' => [ 'type' => 'structure', 'required' => [ 'LambdaFunctionARN', 'EventType', ], 'members' => [ 'LambdaFunctionARN' => [ 'shape' => 'LambdaFunctionARN', ], 'EventType' => [ 'shape' => 'EventType', ], 'IncludeBody' => [ 'shape' => 'boolean', ], ], ], 'LambdaFunctionAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LambdaFunctionAssociation', 'locationName' => 'LambdaFunctionAssociation', ], ], 'LambdaFunctionAssociations' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'LambdaFunctionAssociationList', ], ], ], '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', ], 'ListDistributionsByWebACLIdRequest' => [ 'type' => 'structure', 'required' => [ 'WebACLId', ], 'members' => [ 'Marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'MaxItems', ], 'WebACLId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'WebACLId', ], ], ], 'ListDistributionsByWebACLIdResult' => [ 'type' => 'structure', 'members' => [ 'DistributionList' => [ 'shape' => 'DistributionList', ], ], 'payload' => 'DistributionList', ], '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', ], 'ListFieldLevelEncryptionConfigsRequest' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'MaxItems', ], ], ], 'ListFieldLevelEncryptionConfigsResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionList' => [ 'shape' => 'FieldLevelEncryptionList', ], ], 'payload' => 'FieldLevelEncryptionList', ], 'ListFieldLevelEncryptionProfilesRequest' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'MaxItems', ], ], ], 'ListFieldLevelEncryptionProfilesResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionProfileList' => [ 'shape' => 'FieldLevelEncryptionProfileList', ], ], 'payload' => 'FieldLevelEncryptionProfileList', ], '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', ], 'ListPublicKeysRequest' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'MaxItems', ], ], ], 'ListPublicKeysResult' => [ 'type' => 'structure', 'members' => [ 'PublicKeyList' => [ 'shape' => 'PublicKeyList', ], ], 'payload' => 'PublicKeyList', ], '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', ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], ], ], 'ListTagsForResourceResult' => [ 'type' => 'structure', 'required' => [ 'Tags', ], 'members' => [ 'Tags' => [ 'shape' => 'Tags', ], ], 'payload' => 'Tags', ], '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', 'TLSv1_2016', 'TLSv1.1_2016', 'TLSv1.2_2018', ], ], '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, ], 'NoSuchFieldLevelEncryptionConfig' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'NoSuchFieldLevelEncryptionProfile' => [ '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, ], 'NoSuchPublicKey' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'NoSuchResource' => [ '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', ], 'CustomHeaders' => [ 'shape' => 'CustomHeaders', ], 'S3OriginConfig' => [ 'shape' => 'S3OriginConfig', ], 'CustomOriginConfig' => [ 'shape' => 'CustomOriginConfig', ], ], ], 'OriginCustomHeader' => [ 'type' => 'structure', 'required' => [ 'HeaderName', 'HeaderValue', ], 'members' => [ 'HeaderName' => [ 'shape' => 'string', ], 'HeaderValue' => [ 'shape' => 'string', ], ], ], 'OriginCustomHeadersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OriginCustomHeader', 'locationName' => 'OriginCustomHeader', ], ], 'OriginGroup' => [ 'type' => 'structure', 'required' => [ 'Id', 'FailoverCriteria', 'Members', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'FailoverCriteria' => [ 'shape' => 'OriginGroupFailoverCriteria', ], 'Members' => [ 'shape' => 'OriginGroupMembers', ], ], ], 'OriginGroupFailoverCriteria' => [ 'type' => 'structure', 'required' => [ 'StatusCodes', ], 'members' => [ 'StatusCodes' => [ 'shape' => 'StatusCodes', ], ], ], 'OriginGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OriginGroup', 'locationName' => 'OriginGroup', ], ], 'OriginGroupMember' => [ 'type' => 'structure', 'required' => [ 'OriginId', ], 'members' => [ 'OriginId' => [ 'shape' => 'string', ], ], ], 'OriginGroupMemberList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OriginGroupMember', 'locationName' => 'OriginGroupMember', ], 'max' => 2, 'min' => 2, ], 'OriginGroupMembers' => [ 'type' => 'structure', 'required' => [ 'Quantity', 'Items', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'OriginGroupMemberList', ], ], ], 'OriginGroups' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'OriginGroupList', ], ], ], 'OriginList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Origin', 'locationName' => 'Origin', ], 'min' => 1, ], 'OriginProtocolPolicy' => [ 'type' => 'string', 'enum' => [ 'http-only', 'match-viewer', 'https-only', ], ], 'OriginSslProtocols' => [ 'type' => 'structure', 'required' => [ 'Quantity', 'Items', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'SslProtocolsList', ], ], ], 'Origins' => [ 'type' => 'structure', 'required' => [ 'Quantity', 'Items', ], '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', ], ], 'PublicKey' => [ 'type' => 'structure', 'required' => [ 'Id', 'CreatedTime', 'PublicKeyConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'CreatedTime' => [ 'shape' => 'timestamp', ], 'PublicKeyConfig' => [ 'shape' => 'PublicKeyConfig', ], ], ], 'PublicKeyAlreadyExists' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'PublicKeyConfig' => [ 'type' => 'structure', 'required' => [ 'CallerReference', 'Name', 'EncodedKey', ], 'members' => [ 'CallerReference' => [ 'shape' => 'string', ], 'Name' => [ 'shape' => 'string', ], 'EncodedKey' => [ 'shape' => 'string', ], 'Comment' => [ 'shape' => 'string', ], ], ], 'PublicKeyInUse' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'PublicKeyList' => [ 'type' => 'structure', 'required' => [ 'MaxItems', 'Quantity', ], 'members' => [ 'NextMarker' => [ 'shape' => 'string', ], 'MaxItems' => [ 'shape' => 'integer', ], 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'PublicKeySummaryList', ], ], ], 'PublicKeySummary' => [ 'type' => 'structure', 'required' => [ 'Id', 'Name', 'CreatedTime', 'EncodedKey', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'Name' => [ 'shape' => 'string', ], 'CreatedTime' => [ 'shape' => 'timestamp', ], 'EncodedKey' => [ 'shape' => 'string', ], 'Comment' => [ 'shape' => 'string', ], ], ], 'PublicKeySummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PublicKeySummary', 'locationName' => 'PublicKeySummary', ], ], 'QueryArgProfile' => [ 'type' => 'structure', 'required' => [ 'QueryArg', 'ProfileId', ], 'members' => [ 'QueryArg' => [ 'shape' => 'string', ], 'ProfileId' => [ 'shape' => 'string', ], ], ], 'QueryArgProfileConfig' => [ 'type' => 'structure', 'required' => [ 'ForwardWhenQueryArgProfileIsUnknown', ], 'members' => [ 'ForwardWhenQueryArgProfileIsUnknown' => [ 'shape' => 'boolean', ], 'QueryArgProfiles' => [ 'shape' => 'QueryArgProfiles', ], ], ], 'QueryArgProfileEmpty' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'QueryArgProfileList' => [ 'type' => 'list', 'member' => [ 'shape' => 'QueryArgProfile', 'locationName' => 'QueryArgProfile', ], ], 'QueryArgProfiles' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'QueryArgProfileList', ], ], ], 'QueryStringCacheKeys' => [ 'type' => 'structure', 'required' => [ 'Quantity', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'QueryStringCacheKeysList', ], ], ], 'QueryStringCacheKeysList' => [ 'type' => 'list', 'member' => [ 'shape' => 'string', 'locationName' => 'Name', ], ], 'ResourceARN' => [ 'type' => 'string', 'pattern' => 'arn:aws:cloudfront::[0-9]+:.*', ], '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', ], ], 'SslProtocol' => [ 'type' => 'string', 'enum' => [ 'SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2', ], ], 'SslProtocolsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SslProtocol', 'locationName' => 'SslProtocol', ], ], 'StatusCodeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'integer', 'locationName' => 'StatusCode', ], 'min' => 1, ], 'StatusCodes' => [ 'type' => 'structure', 'required' => [ 'Quantity', 'Items', ], 'members' => [ 'Quantity' => [ 'shape' => 'integer', ], 'Items' => [ 'shape' => 'StatusCodeList', ], ], ], 'StreamingDistribution' => [ 'type' => 'structure', 'required' => [ 'Id', 'ARN', 'Status', 'DomainName', 'ActiveTrustedSigners', 'StreamingDistributionConfig', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], ], ], 'StreamingDistributionConfigWithTags' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfig', 'Tags', ], 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], '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', 'ARN', 'Status', 'LastModifiedTime', 'DomainName', 'S3Origin', 'Aliases', 'TrustedSigners', 'Comment', 'PriceClass', 'Enabled', ], 'members' => [ 'Id' => [ 'shape' => 'string', ], 'ARN' => [ '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', ], ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', 'locationName' => 'Key', ], ], 'TagKeys' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'TagKeyList', ], ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', 'locationName' => 'Tag', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'Tags', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'Tags', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-11-05/', ], ], ], 'payload' => 'Tags', ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'Tags' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'TagList', ], ], ], '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, ], 'TooManyDistributionsAssociatedToFieldLevelEncryptionConfig' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyDistributionsWithLambdaAssociations' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyFieldLevelEncryptionConfigs' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyFieldLevelEncryptionContentTypeProfiles' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyFieldLevelEncryptionEncryptionEntities' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyFieldLevelEncryptionFieldPatterns' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyFieldLevelEncryptionProfiles' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyFieldLevelEncryptionQueryArgProfiles' => [ '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, ], 'TooManyLambdaFunctionAssociations' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyOriginCustomHeaders' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyOriginGroupsPerDistribution' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyOrigins' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyPublicKeys' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyQueryStringParameters' => [ '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', ], ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'TagKeys', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceARN', 'location' => 'querystring', 'locationName' => 'Resource', ], 'TagKeys' => [ 'shape' => 'TagKeys', 'locationName' => 'TagKeys', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-11-05/', ], ], ], 'payload' => 'TagKeys', ], 'UpdateCloudFrontOriginAccessIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'CloudFrontOriginAccessIdentityConfig', 'Id', ], 'members' => [ 'CloudFrontOriginAccessIdentityConfig' => [ 'shape' => 'CloudFrontOriginAccessIdentityConfig', 'locationName' => 'CloudFrontOriginAccessIdentityConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-11-05/', ], ], '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', 'locationName' => 'DistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-11-05/', ], ], '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', ], 'UpdateFieldLevelEncryptionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'FieldLevelEncryptionConfig', 'Id', ], 'members' => [ 'FieldLevelEncryptionConfig' => [ 'shape' => 'FieldLevelEncryptionConfig', 'locationName' => 'FieldLevelEncryptionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-11-05/', ], ], 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], 'payload' => 'FieldLevelEncryptionConfig', ], 'UpdateFieldLevelEncryptionConfigResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryption' => [ 'shape' => 'FieldLevelEncryption', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryption', ], 'UpdateFieldLevelEncryptionProfileRequest' => [ 'type' => 'structure', 'required' => [ 'FieldLevelEncryptionProfileConfig', 'Id', ], 'members' => [ 'FieldLevelEncryptionProfileConfig' => [ 'shape' => 'FieldLevelEncryptionProfileConfig', 'locationName' => 'FieldLevelEncryptionProfileConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-11-05/', ], ], 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], 'payload' => 'FieldLevelEncryptionProfileConfig', ], 'UpdateFieldLevelEncryptionProfileResult' => [ 'type' => 'structure', 'members' => [ 'FieldLevelEncryptionProfile' => [ 'shape' => 'FieldLevelEncryptionProfile', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'FieldLevelEncryptionProfile', ], 'UpdatePublicKeyRequest' => [ 'type' => 'structure', 'required' => [ 'PublicKeyConfig', 'Id', ], 'members' => [ 'PublicKeyConfig' => [ 'shape' => 'PublicKeyConfig', 'locationName' => 'PublicKeyConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-11-05/', ], ], 'Id' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'Id', ], 'IfMatch' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'If-Match', ], ], 'payload' => 'PublicKeyConfig', ], 'UpdatePublicKeyResult' => [ 'type' => 'structure', 'members' => [ 'PublicKey' => [ 'shape' => 'PublicKey', ], 'ETag' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'ETag', ], ], 'payload' => 'PublicKey', ], 'UpdateStreamingDistributionRequest' => [ 'type' => 'structure', 'required' => [ 'StreamingDistributionConfig', 'Id', ], 'members' => [ 'StreamingDistributionConfig' => [ 'shape' => 'StreamingDistributionConfig', 'locationName' => 'StreamingDistributionConfig', 'xmlNamespace' => [ 'uri' => 'http://cloudfront.amazonaws.com/doc/2018-11-05/', ], ], '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' => [ 'CloudFrontDefaultCertificate' => [ 'shape' => 'boolean', ], 'IAMCertificateId' => [ 'shape' => 'string', ], 'ACMCertificateArn' => [ 'shape' => 'string', ], 'SSLSupportMethod' => [ 'shape' => 'SSLSupportMethod', ], 'MinimumProtocolVersion' => [ 'shape' => 'MinimumProtocolVersion', ], 'Certificate' => [ 'shape' => 'string', 'deprecated' => true, ], 'CertificateSource' => [ 'shape' => 'CertificateSource', 'deprecated' => true, ], ], ], '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/Aws/data/cloudfront/2018-11-05/paginators-1.json.php b/lib/aws/Aws/data/cloudfront/2018-11-05/paginators-1.json.php new file mode 100644 index 0000000..09497cb --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2018-11-05/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2018-11-05/paginators-1.json +return [ 'pagination' => [ 'ListCloudFrontOriginAccessIdentities' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'CloudFrontOriginAccessIdentityList.IsTruncated', 'output_token' => 'CloudFrontOriginAccessIdentityList.NextMarker', 'result_key' => 'CloudFrontOriginAccessIdentityList.Items', ], 'ListDistributions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'DistributionList.IsTruncated', 'output_token' => 'DistributionList.NextMarker', 'result_key' => 'DistributionList.Items', ], 'ListInvalidations' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'InvalidationList.IsTruncated', 'output_token' => 'InvalidationList.NextMarker', 'result_key' => 'InvalidationList.Items', ], 'ListStreamingDistributions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'StreamingDistributionList.IsTruncated', 'output_token' => 'StreamingDistributionList.NextMarker', 'result_key' => 'StreamingDistributionList.Items', ], ],]; diff --git a/lib/aws/Aws/data/cloudfront/2018-11-05/smoke.json.php b/lib/aws/Aws/data/cloudfront/2018-11-05/smoke.json.php new file mode 100644 index 0000000..2061d8b --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2018-11-05/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2018-11-05/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-east-1', 'testCases' => [ [ 'operationName' => 'ListCloudFrontOriginAccessIdentities', 'input' => [ 'MaxItems' => '1', ], 'errorExpectedFromService' => false, ], [ 'operationName' => 'GetDistribution', 'input' => [ 'Id' => 'fake-id', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/cloudfront/2018-11-05/waiters-1.json.php b/lib/aws/Aws/data/cloudfront/2018-11-05/waiters-1.json.php new file mode 100644 index 0000000..a2e6b0f --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2018-11-05/waiters-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2018-11-05/waiters-1.json +return [ 'waiters' => [ '__default__' => [ 'success_type' => 'output', 'success_path' => 'Status', ], 'StreamingDistributionDeployed' => [ 'operation' => 'GetStreamingDistribution', 'description' => 'Wait until a streaming distribution is deployed.', 'interval' => 60, 'max_attempts' => 25, 'success_value' => 'Deployed', ], 'DistributionDeployed' => [ 'operation' => 'GetDistribution', 'description' => 'Wait until a distribution is deployed.', 'interval' => 60, 'max_attempts' => 25, 'success_value' => 'Deployed', ], 'InvalidationCompleted' => [ 'operation' => 'GetInvalidation', 'description' => 'Wait until an invalidation has completed.', 'interval' => 20, 'max_attempts' => 30, 'success_value' => 'Completed', ], ],]; diff --git a/lib/aws/Aws/data/cloudfront/2018-11-05/waiters-2.json.php b/lib/aws/Aws/data/cloudfront/2018-11-05/waiters-2.json.php new file mode 100644 index 0000000..1454658 --- /dev/null +++ b/lib/aws/Aws/data/cloudfront/2018-11-05/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudfront/2018-11-05/waiters-2.json +return [ '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/Aws/data/cloudhsm/2014-05-30/api-2.json.php b/lib/aws/Aws/data/cloudhsm/2014-05-30/api-2.json.php new file mode 100644 index 0000000..d02e4d8 --- /dev/null +++ b/lib/aws/Aws/data/cloudhsm/2014-05-30/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudhsm/2014-05-30/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2014-05-30', 'endpointPrefix' => 'cloudhsm', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'CloudHSM', 'serviceFullName' => 'Amazon CloudHSM', 'serviceId' => 'CloudHSM', 'signatureVersion' => 'v4', 'targetPrefix' => 'CloudHsmFrontendService', 'uid' => 'cloudhsm-2014-05-30', ], 'operations' => [ 'AddTagsToResource' => [ 'name' => 'AddTagsToResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddTagsToResourceRequest', ], 'output' => [ 'shape' => 'AddTagsToResourceResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInternalException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'CreateHapg' => [ 'name' => 'CreateHapg', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateHapgRequest', ], 'output' => [ 'shape' => 'CreateHapgResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInternalException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'CreateHsm' => [ 'name' => 'CreateHsm', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateHsmRequest', ], 'output' => [ 'shape' => 'CreateHsmResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInternalException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'CreateLunaClient' => [ 'name' => 'CreateLunaClient', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLunaClientRequest', ], 'output' => [ 'shape' => 'CreateLunaClientResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInternalException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DeleteHapg' => [ 'name' => 'DeleteHapg', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteHapgRequest', ], 'output' => [ 'shape' => 'DeleteHapgResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInternalException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DeleteHsm' => [ 'name' => 'DeleteHsm', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteHsmRequest', ], 'output' => [ 'shape' => 'DeleteHsmResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInternalException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DeleteLunaClient' => [ 'name' => 'DeleteLunaClient', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLunaClientRequest', ], 'output' => [ 'shape' => 'DeleteLunaClientResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInternalException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DescribeHapg' => [ 'name' => 'DescribeHapg', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHapgRequest', ], 'output' => [ 'shape' => 'DescribeHapgResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInternalException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DescribeHsm' => [ 'name' => 'DescribeHsm', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHsmRequest', ], 'output' => [ 'shape' => 'DescribeHsmResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInternalException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DescribeLunaClient' => [ 'name' => 'DescribeLunaClient', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLunaClientRequest', ], 'output' => [ 'shape' => 'DescribeLunaClientResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInternalException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'GetConfig' => [ 'name' => 'GetConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetConfigRequest', ], 'output' => [ 'shape' => 'GetConfigResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInternalException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ListAvailableZones' => [ 'name' => 'ListAvailableZones', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAvailableZonesRequest', ], 'output' => [ 'shape' => 'ListAvailableZonesResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInternalException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ListHapgs' => [ 'name' => 'ListHapgs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListHapgsRequest', ], 'output' => [ 'shape' => 'ListHapgsResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInternalException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ListHsms' => [ 'name' => 'ListHsms', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListHsmsRequest', ], 'output' => [ 'shape' => 'ListHsmsResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInternalException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ListLunaClients' => [ 'name' => 'ListLunaClients', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListLunaClientsRequest', ], 'output' => [ 'shape' => 'ListLunaClientsResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInternalException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInternalException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ModifyHapg' => [ 'name' => 'ModifyHapg', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyHapgRequest', ], 'output' => [ 'shape' => 'ModifyHapgResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInternalException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ModifyHsm' => [ 'name' => 'ModifyHsm', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyHsmRequest', ], 'output' => [ 'shape' => 'ModifyHsmResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInternalException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ModifyLunaClient' => [ 'name' => 'ModifyLunaClient', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyLunaClientRequest', ], 'output' => [ 'shape' => 'ModifyLunaClientResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmServiceException', ], ], ], 'RemoveTagsFromResource' => [ 'name' => 'RemoveTagsFromResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveTagsFromResourceRequest', ], 'output' => [ 'shape' => 'RemoveTagsFromResourceResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInternalException', ], [ 'shape' => 'InvalidRequestException', ], ], ], ], 'shapes' => [ 'AZ' => [ 'type' => 'string', 'pattern' => '[a-zA-Z0-9\\-]*', ], 'AZList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AZ', ], ], 'AddTagsToResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagList', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'String', ], 'TagList' => [ 'shape' => 'TagList', ], ], ], 'AddTagsToResourceResponse' => [ 'type' => 'structure', 'required' => [ 'Status', ], 'members' => [ 'Status' => [ 'shape' => 'String', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'Certificate' => [ 'type' => 'string', 'max' => 2400, 'min' => 600, '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', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'String', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'required' => [ 'TagList', ], 'members' => [ 'TagList' => [ 'shape' => 'TagList', ], ], ], '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{6,12}', ], 'PartitionSerialList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PartitionSerial', ], ], 'RemoveTagsFromResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagKeyList', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'String', ], 'TagKeyList' => [ 'shape' => 'TagKeyList', ], ], ], 'RemoveTagsFromResourceResponse' => [ 'type' => 'structure', 'required' => [ 'Status', ], 'members' => [ 'Status' => [ 'shape' => 'String', ], ], ], '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', ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'Timestamp' => [ 'type' => 'string', 'pattern' => '\\d*', ], 'VpcId' => [ 'type' => 'string', 'pattern' => 'vpc-[0-9a-f]{8}', ], ],]; diff --git a/lib/aws/Aws/data/cloudhsm/2014-05-30/paginators-1.json.php b/lib/aws/Aws/data/cloudhsm/2014-05-30/paginators-1.json.php new file mode 100644 index 0000000..dd3a16c --- /dev/null +++ b/lib/aws/Aws/data/cloudhsm/2014-05-30/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudhsm/2014-05-30/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/cloudhsmv2/2017-04-28/api-2.json.php b/lib/aws/Aws/data/cloudhsmv2/2017-04-28/api-2.json.php new file mode 100644 index 0000000..e522732 --- /dev/null +++ b/lib/aws/Aws/data/cloudhsmv2/2017-04-28/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudhsmv2/2017-04-28/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-04-28', 'endpointPrefix' => 'cloudhsmv2', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'CloudHSM V2', 'serviceFullName' => 'AWS CloudHSM V2', 'serviceId' => 'CloudHSM V2', 'signatureVersion' => 'v4', 'signingName' => 'cloudhsm', 'targetPrefix' => 'BaldrApiService', 'uid' => 'cloudhsmv2-2017-04-28', ], 'operations' => [ 'CopyBackupToRegion' => [ 'name' => 'CopyBackupToRegion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyBackupToRegionRequest', ], 'output' => [ 'shape' => 'CopyBackupToRegionResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmInternalFailureException', ], [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmResourceNotFoundException', ], [ 'shape' => 'CloudHsmInvalidRequestException', ], [ 'shape' => 'CloudHsmAccessDeniedException', ], ], ], 'CreateCluster' => [ 'name' => 'CreateCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateClusterRequest', ], 'output' => [ 'shape' => 'CreateClusterResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmInternalFailureException', ], [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmResourceNotFoundException', ], [ 'shape' => 'CloudHsmInvalidRequestException', ], [ 'shape' => 'CloudHsmAccessDeniedException', ], ], ], 'CreateHsm' => [ 'name' => 'CreateHsm', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateHsmRequest', ], 'output' => [ 'shape' => 'CreateHsmResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmInternalFailureException', ], [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInvalidRequestException', ], [ 'shape' => 'CloudHsmResourceNotFoundException', ], [ 'shape' => 'CloudHsmAccessDeniedException', ], ], ], 'DeleteBackup' => [ 'name' => 'DeleteBackup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteBackupRequest', ], 'output' => [ 'shape' => 'DeleteBackupResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmInternalFailureException', ], [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmResourceNotFoundException', ], [ 'shape' => 'CloudHsmInvalidRequestException', ], [ 'shape' => 'CloudHsmAccessDeniedException', ], ], ], 'DeleteCluster' => [ 'name' => 'DeleteCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteClusterRequest', ], 'output' => [ 'shape' => 'DeleteClusterResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmInternalFailureException', ], [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmResourceNotFoundException', ], [ 'shape' => 'CloudHsmInvalidRequestException', ], [ 'shape' => 'CloudHsmAccessDeniedException', ], ], ], 'DeleteHsm' => [ 'name' => 'DeleteHsm', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteHsmRequest', ], 'output' => [ 'shape' => 'DeleteHsmResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmInternalFailureException', ], [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmResourceNotFoundException', ], [ 'shape' => 'CloudHsmInvalidRequestException', ], [ 'shape' => 'CloudHsmAccessDeniedException', ], ], ], 'DescribeBackups' => [ 'name' => 'DescribeBackups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeBackupsRequest', ], 'output' => [ 'shape' => 'DescribeBackupsResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmInternalFailureException', ], [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmResourceNotFoundException', ], [ 'shape' => 'CloudHsmInvalidRequestException', ], [ 'shape' => 'CloudHsmAccessDeniedException', ], ], ], 'DescribeClusters' => [ 'name' => 'DescribeClusters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClustersRequest', ], 'output' => [ 'shape' => 'DescribeClustersResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmInternalFailureException', ], [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmInvalidRequestException', ], [ 'shape' => 'CloudHsmAccessDeniedException', ], ], ], 'InitializeCluster' => [ 'name' => 'InitializeCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'InitializeClusterRequest', ], 'output' => [ 'shape' => 'InitializeClusterResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmInternalFailureException', ], [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmResourceNotFoundException', ], [ 'shape' => 'CloudHsmInvalidRequestException', ], [ 'shape' => 'CloudHsmAccessDeniedException', ], ], ], 'ListTags' => [ 'name' => 'ListTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsRequest', ], 'output' => [ 'shape' => 'ListTagsResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmInternalFailureException', ], [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmResourceNotFoundException', ], [ 'shape' => 'CloudHsmInvalidRequestException', ], [ 'shape' => 'CloudHsmAccessDeniedException', ], ], ], 'RestoreBackup' => [ 'name' => 'RestoreBackup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreBackupRequest', ], 'output' => [ 'shape' => 'RestoreBackupResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmInternalFailureException', ], [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmResourceNotFoundException', ], [ 'shape' => 'CloudHsmInvalidRequestException', ], [ 'shape' => 'CloudHsmAccessDeniedException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmInternalFailureException', ], [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmResourceNotFoundException', ], [ 'shape' => 'CloudHsmInvalidRequestException', ], [ 'shape' => 'CloudHsmAccessDeniedException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmInternalFailureException', ], [ 'shape' => 'CloudHsmServiceException', ], [ 'shape' => 'CloudHsmResourceNotFoundException', ], [ 'shape' => 'CloudHsmInvalidRequestException', ], [ 'shape' => 'CloudHsmAccessDeniedException', ], ], ], ], 'shapes' => [ 'Backup' => [ 'type' => 'structure', 'required' => [ 'BackupId', ], 'members' => [ 'BackupId' => [ 'shape' => 'BackupId', ], 'BackupState' => [ 'shape' => 'BackupState', ], 'ClusterId' => [ 'shape' => 'ClusterId', ], 'CreateTimestamp' => [ 'shape' => 'Timestamp', ], 'CopyTimestamp' => [ 'shape' => 'Timestamp', ], 'SourceRegion' => [ 'shape' => 'Region', ], 'SourceBackup' => [ 'shape' => 'BackupId', ], 'SourceCluster' => [ 'shape' => 'ClusterId', ], 'DeleteTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'BackupId' => [ 'type' => 'string', 'pattern' => 'backup-[2-7a-zA-Z]{11,16}', ], 'BackupPolicy' => [ 'type' => 'string', 'enum' => [ 'DEFAULT', ], ], 'BackupState' => [ 'type' => 'string', 'enum' => [ 'CREATE_IN_PROGRESS', 'READY', 'DELETED', 'PENDING_DELETION', ], ], 'Backups' => [ 'type' => 'list', 'member' => [ 'shape' => 'Backup', ], ], 'Boolean' => [ 'type' => 'boolean', ], 'Cert' => [ 'type' => 'string', 'max' => 5000, 'pattern' => '[a-zA-Z0-9+-/=\\s]*', ], 'Certificates' => [ 'type' => 'structure', 'members' => [ 'ClusterCsr' => [ 'shape' => 'Cert', ], 'HsmCertificate' => [ 'shape' => 'Cert', ], 'AwsHardwareCertificate' => [ 'shape' => 'Cert', ], 'ManufacturerHardwareCertificate' => [ 'shape' => 'Cert', ], 'ClusterCertificate' => [ 'shape' => 'Cert', ], ], ], 'CloudHsmAccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'CloudHsmInternalFailureException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, 'fault' => true, ], 'CloudHsmInvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'CloudHsmResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'CloudHsmServiceException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'Cluster' => [ 'type' => 'structure', 'members' => [ 'BackupPolicy' => [ 'shape' => 'BackupPolicy', ], 'ClusterId' => [ 'shape' => 'ClusterId', ], 'CreateTimestamp' => [ 'shape' => 'Timestamp', ], 'Hsms' => [ 'shape' => 'Hsms', ], 'HsmType' => [ 'shape' => 'HsmType', ], 'PreCoPassword' => [ 'shape' => 'PreCoPassword', ], 'SecurityGroup' => [ 'shape' => 'SecurityGroup', ], 'SourceBackupId' => [ 'shape' => 'BackupId', ], 'State' => [ 'shape' => 'ClusterState', ], 'StateMessage' => [ 'shape' => 'StateMessage', ], 'SubnetMapping' => [ 'shape' => 'ExternalSubnetMapping', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'Certificates' => [ 'shape' => 'Certificates', ], ], ], 'ClusterId' => [ 'type' => 'string', 'pattern' => 'cluster-[2-7a-zA-Z]{11,16}', ], 'ClusterState' => [ 'type' => 'string', 'enum' => [ 'CREATE_IN_PROGRESS', 'UNINITIALIZED', 'INITIALIZE_IN_PROGRESS', 'INITIALIZED', 'ACTIVE', 'UPDATE_IN_PROGRESS', 'DELETE_IN_PROGRESS', 'DELETED', 'DEGRADED', ], ], 'Clusters' => [ 'type' => 'list', 'member' => [ 'shape' => 'Cluster', ], ], 'CopyBackupToRegionRequest' => [ 'type' => 'structure', 'required' => [ 'DestinationRegion', 'BackupId', ], 'members' => [ 'DestinationRegion' => [ 'shape' => 'Region', ], 'BackupId' => [ 'shape' => 'BackupId', ], ], ], 'CopyBackupToRegionResponse' => [ 'type' => 'structure', 'members' => [ 'DestinationBackup' => [ 'shape' => 'DestinationBackup', ], ], ], 'CreateClusterRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetIds', 'HsmType', ], 'members' => [ 'SubnetIds' => [ 'shape' => 'SubnetIds', ], 'HsmType' => [ 'shape' => 'HsmType', ], 'SourceBackupId' => [ 'shape' => 'BackupId', ], ], ], 'CreateClusterResponse' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], 'CreateHsmRequest' => [ 'type' => 'structure', 'required' => [ 'ClusterId', 'AvailabilityZone', ], 'members' => [ 'ClusterId' => [ 'shape' => 'ClusterId', ], 'AvailabilityZone' => [ 'shape' => 'ExternalAz', ], 'IpAddress' => [ 'shape' => 'IpAddress', ], ], ], 'CreateHsmResponse' => [ 'type' => 'structure', 'members' => [ 'Hsm' => [ 'shape' => 'Hsm', ], ], ], 'DeleteBackupRequest' => [ 'type' => 'structure', 'required' => [ 'BackupId', ], 'members' => [ 'BackupId' => [ 'shape' => 'BackupId', ], ], ], 'DeleteBackupResponse' => [ 'type' => 'structure', 'members' => [ 'Backup' => [ 'shape' => 'Backup', ], ], ], 'DeleteClusterRequest' => [ 'type' => 'structure', 'required' => [ 'ClusterId', ], 'members' => [ 'ClusterId' => [ 'shape' => 'ClusterId', ], ], ], 'DeleteClusterResponse' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], 'DeleteHsmRequest' => [ 'type' => 'structure', 'required' => [ 'ClusterId', ], 'members' => [ 'ClusterId' => [ 'shape' => 'ClusterId', ], 'HsmId' => [ 'shape' => 'HsmId', ], 'EniId' => [ 'shape' => 'EniId', ], 'EniIp' => [ 'shape' => 'IpAddress', ], ], ], 'DeleteHsmResponse' => [ 'type' => 'structure', 'members' => [ 'HsmId' => [ 'shape' => 'HsmId', ], ], ], 'DescribeBackupsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxSize', ], 'Filters' => [ 'shape' => 'Filters', ], 'SortAscending' => [ 'shape' => 'Boolean', ], ], ], 'DescribeBackupsResponse' => [ 'type' => 'structure', 'members' => [ 'Backups' => [ 'shape' => 'Backups', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeClustersRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'Filters', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxSize', ], ], ], 'DescribeClustersResponse' => [ 'type' => 'structure', 'members' => [ 'Clusters' => [ 'shape' => 'Clusters', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DestinationBackup' => [ 'type' => 'structure', 'members' => [ 'CreateTimestamp' => [ 'shape' => 'Timestamp', ], 'SourceRegion' => [ 'shape' => 'Region', ], 'SourceBackup' => [ 'shape' => 'BackupId', ], 'SourceCluster' => [ 'shape' => 'ClusterId', ], ], ], 'EniId' => [ 'type' => 'string', 'pattern' => 'eni-[0-9a-fA-F]{8,17}', ], 'ExternalAz' => [ 'type' => 'string', 'pattern' => '[a-z]{2}(-(gov))?-(east|west|north|south|central){1,2}-\\d[a-z]', ], 'ExternalSubnetMapping' => [ 'type' => 'map', 'key' => [ 'shape' => 'ExternalAz', ], 'value' => [ 'shape' => 'SubnetId', ], ], 'Field' => [ 'type' => 'string', 'pattern' => '[a-zA-Z0-9_-]+', ], 'Filters' => [ 'type' => 'map', 'key' => [ 'shape' => 'Field', ], 'value' => [ 'shape' => 'Strings', ], ], 'Hsm' => [ 'type' => 'structure', 'required' => [ 'HsmId', ], 'members' => [ 'AvailabilityZone' => [ 'shape' => 'ExternalAz', ], 'ClusterId' => [ 'shape' => 'ClusterId', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'EniId' => [ 'shape' => 'EniId', ], 'EniIp' => [ 'shape' => 'IpAddress', ], 'HsmId' => [ 'shape' => 'HsmId', ], 'State' => [ 'shape' => 'HsmState', ], 'StateMessage' => [ 'shape' => 'String', ], ], ], 'HsmId' => [ 'type' => 'string', 'pattern' => 'hsm-[2-7a-zA-Z]{11,16}', ], 'HsmState' => [ 'type' => 'string', 'enum' => [ 'CREATE_IN_PROGRESS', 'ACTIVE', 'DEGRADED', 'DELETE_IN_PROGRESS', 'DELETED', ], ], 'HsmType' => [ 'type' => 'string', 'pattern' => '(hsm1\\.medium)', ], 'Hsms' => [ 'type' => 'list', 'member' => [ 'shape' => 'Hsm', ], ], 'InitializeClusterRequest' => [ 'type' => 'structure', 'required' => [ 'ClusterId', 'SignedCert', 'TrustAnchor', ], 'members' => [ 'ClusterId' => [ 'shape' => 'ClusterId', ], 'SignedCert' => [ 'shape' => 'Cert', ], 'TrustAnchor' => [ 'shape' => 'Cert', ], ], ], 'InitializeClusterResponse' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'ClusterState', ], 'StateMessage' => [ 'shape' => 'StateMessage', ], ], ], 'IpAddress' => [ 'type' => 'string', 'pattern' => '\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}', ], 'ListTagsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', ], 'members' => [ 'ResourceId' => [ 'shape' => 'ClusterId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxSize', ], ], ], 'ListTagsResponse' => [ 'type' => 'structure', 'required' => [ 'TagList', ], 'members' => [ 'TagList' => [ 'shape' => 'TagList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'MaxSize' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'NextToken' => [ 'type' => 'string', 'max' => 256, 'pattern' => '.*', ], 'PreCoPassword' => [ 'type' => 'string', 'max' => 32, 'min' => 7, ], 'Region' => [ 'type' => 'string', 'pattern' => '[a-z]{2}(-(gov))?-(east|west|north|south|central){1,2}-\\d', ], 'RestoreBackupRequest' => [ 'type' => 'structure', 'required' => [ 'BackupId', ], 'members' => [ 'BackupId' => [ 'shape' => 'BackupId', ], ], ], 'RestoreBackupResponse' => [ 'type' => 'structure', 'members' => [ 'Backup' => [ 'shape' => 'Backup', ], ], ], 'SecurityGroup' => [ 'type' => 'string', 'pattern' => 'sg-[0-9a-fA-F]', ], 'StateMessage' => [ 'type' => 'string', 'max' => 300, 'pattern' => '.*', ], 'String' => [ 'type' => 'string', ], 'Strings' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'SubnetId' => [ 'type' => 'string', 'pattern' => 'subnet-[0-9a-fA-F]{8,17}', ], 'SubnetIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', ], 'max' => 10, 'min' => 1, ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 50, 'min' => 1, ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 50, 'min' => 1, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', 'TagList', ], 'members' => [ 'ResourceId' => [ 'shape' => 'ClusterId', ], 'TagList' => [ 'shape' => 'TagList', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'Timestamp' => [ 'type' => 'timestamp', ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', 'TagKeyList', ], 'members' => [ 'ResourceId' => [ 'shape' => 'ClusterId', ], 'TagKeyList' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'VpcId' => [ 'type' => 'string', 'pattern' => 'vpc-[0-9a-fA-F]', ], 'errorMessage' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/cloudhsmv2/2017-04-28/paginators-1.json.php b/lib/aws/Aws/data/cloudhsmv2/2017-04-28/paginators-1.json.php new file mode 100644 index 0000000..1edbc96 --- /dev/null +++ b/lib/aws/Aws/data/cloudhsmv2/2017-04-28/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudhsmv2/2017-04-28/paginators-1.json +return [ 'pagination' => [ 'DescribeBackups' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'DescribeClusters' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListTags' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/cloudhsmv2/2017-04-28/smoke.json.php b/lib/aws/Aws/data/cloudhsmv2/2017-04-28/smoke.json.php new file mode 100644 index 0000000..a09fbf9 --- /dev/null +++ b/lib/aws/Aws/data/cloudhsmv2/2017-04-28/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudhsmv2/2017-04-28/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeClusters', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'ListTags', 'input' => [ 'ResourceId' => 'bogus-arn', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/cloudsearch/2013-01-01/api-2.json.php b/lib/aws/Aws/data/cloudsearch/2013-01-01/api-2.json.php new file mode 100644 index 0000000..c5b3a58 --- /dev/null +++ b/lib/aws/Aws/data/cloudsearch/2013-01-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudsearch/2013-01-01/api-2.json +return [ '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', 'uid' => 'cloudsearch-2013-01-01', ], '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/Aws/data/cloudsearch/2013-01-01/paginators-1.json.php b/lib/aws/Aws/data/cloudsearch/2013-01-01/paginators-1.json.php new file mode 100644 index 0000000..1c9670c --- /dev/null +++ b/lib/aws/Aws/data/cloudsearch/2013-01-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudsearch/2013-01-01/paginators-1.json +return [ '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/Aws/data/cloudsearchdomain/2013-01-01/api-2.json.php b/lib/aws/Aws/data/cloudsearchdomain/2013-01-01/api-2.json.php new file mode 100644 index 0000000..e68e775 --- /dev/null +++ b/lib/aws/Aws/data/cloudsearchdomain/2013-01-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudsearchdomain/2013-01-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2013-01-01', 'endpointPrefix' => 'cloudsearchdomain', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceFullName' => 'Amazon CloudSearch Domain', 'signatureVersion' => 'v4', 'signingName' => 'cloudsearch', 'uid' => 'cloudsearchdomain-2013-01-01', ], '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', ], ], ], 'Suggest' => [ 'name' => 'Suggest', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-01-01/suggest?format=sdk&pretty=true', ], 'input' => [ 'shape' => 'SuggestRequest', ], 'output' => [ 'shape' => 'SuggestResponse', ], 'errors' => [ [ 'shape' => 'SearchException', ], ], ], 'UploadDocuments' => [ 'name' => 'UploadDocuments', 'http' => [ 'method' => 'POST', 'requestUri' => '/2013-01-01/documents/batch?format=sdk', ], 'input' => [ 'shape' => 'UploadDocumentsRequest', ], 'output' => [ 'shape' => 'UploadDocumentsResponse', ], 'errors' => [ [ 'shape' => 'DocumentServiceException', ], ], ], ], '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', ], ], 'Double' => [ 'type' => 'double', ], 'Expr' => [ 'type' => 'string', ], 'Exprs' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'Facet' => [ 'type' => 'string', ], 'Facets' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'BucketInfo', ], ], 'FieldStats' => [ 'type' => 'structure', 'members' => [ 'min' => [ 'shape' => 'String', ], 'max' => [ 'shape' => 'String', ], 'count' => [ 'shape' => 'Long', ], 'missing' => [ 'shape' => 'Long', ], 'sum' => [ 'shape' => 'Double', ], 'sumOfSquares' => [ 'shape' => 'Double', ], 'mean' => [ 'shape' => 'String', ], 'stddev' => [ 'shape' => 'Double', ], ], ], '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', ], 'stats' => [ 'shape' => 'Stat', 'location' => 'querystring', 'locationName' => 'stats', ], ], ], 'SearchResponse' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'SearchStatus', ], 'hits' => [ 'shape' => 'Hits', ], 'facets' => [ 'shape' => 'Facets', ], 'stats' => [ 'shape' => 'Stats', ], ], ], 'SearchStatus' => [ 'type' => 'structure', 'members' => [ 'timems' => [ 'shape' => 'Long', ], 'rid' => [ 'shape' => 'String', ], ], ], 'Size' => [ 'type' => 'long', ], 'Sort' => [ 'type' => 'string', ], 'Start' => [ 'type' => 'long', ], 'Stat' => [ 'type' => 'string', ], 'Stats' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'FieldStats', ], ], '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/Aws/data/cloudtrail/2013-11-01/api-2.json.php b/lib/aws/Aws/data/cloudtrail/2013-11-01/api-2.json.php new file mode 100644 index 0000000..bb26846 --- /dev/null +++ b/lib/aws/Aws/data/cloudtrail/2013-11-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudtrail/2013-11-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2013-11-01', 'endpointPrefix' => 'cloudtrail', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'CloudTrail', 'serviceFullName' => 'AWS CloudTrail', 'serviceId' => 'CloudTrail', 'signatureVersion' => 'v4', 'targetPrefix' => 'com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101', 'uid' => 'cloudtrail-2013-11-01', ], 'operations' => [ 'AddTags' => [ 'name' => 'AddTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddTagsRequest', ], 'output' => [ 'shape' => 'AddTagsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'CloudTrailARNInvalidException', ], [ 'shape' => 'ResourceTypeNotSupportedException', ], [ 'shape' => 'TagsLimitExceededException', ], [ 'shape' => 'InvalidTrailNameException', ], [ 'shape' => 'InvalidTagParameterException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'NotOrganizationMasterAccountException', ], ], 'idempotent' => true, ], 'CreateTrail' => [ 'name' => 'CreateTrail', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTrailRequest', ], 'output' => [ 'shape' => 'CreateTrailResponse', ], 'errors' => [ [ 'shape' => 'MaximumNumberOfTrailsExceededException', ], [ 'shape' => 'TrailAlreadyExistsException', ], [ 'shape' => 'S3BucketDoesNotExistException', ], [ 'shape' => 'InsufficientS3BucketPolicyException', ], [ 'shape' => 'InsufficientSnsTopicPolicyException', ], [ 'shape' => 'InsufficientEncryptionPolicyException', ], [ 'shape' => 'InvalidS3BucketNameException', ], [ 'shape' => 'InvalidS3PrefixException', ], [ 'shape' => 'InvalidSnsTopicNameException', ], [ 'shape' => 'InvalidKmsKeyIdException', ], [ 'shape' => 'InvalidTrailNameException', ], [ 'shape' => 'TrailNotProvidedException', ], [ 'shape' => 'InvalidParameterCombinationException', ], [ 'shape' => 'KmsKeyNotFoundException', ], [ 'shape' => 'KmsKeyDisabledException', ], [ 'shape' => 'KmsException', ], [ 'shape' => 'InvalidCloudWatchLogsLogGroupArnException', ], [ 'shape' => 'InvalidCloudWatchLogsRoleArnException', ], [ 'shape' => 'CloudWatchLogsDeliveryUnavailableException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'CloudTrailAccessNotEnabledException', ], [ 'shape' => 'InsufficientDependencyServiceAccessPermissionException', ], [ 'shape' => 'NotOrganizationMasterAccountException', ], [ 'shape' => 'OrganizationsNotInUseException', ], [ 'shape' => 'OrganizationNotInAllFeaturesModeException', ], ], 'idempotent' => true, ], 'DeleteTrail' => [ 'name' => 'DeleteTrail', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTrailRequest', ], 'output' => [ 'shape' => 'DeleteTrailResponse', ], 'errors' => [ [ 'shape' => 'TrailNotFoundException', ], [ 'shape' => 'InvalidTrailNameException', ], [ 'shape' => 'InvalidHomeRegionException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'NotOrganizationMasterAccountException', ], [ 'shape' => 'InsufficientDependencyServiceAccessPermissionException', ], ], 'idempotent' => true, ], 'DescribeTrails' => [ 'name' => 'DescribeTrails', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTrailsRequest', ], 'output' => [ 'shape' => 'DescribeTrailsResponse', ], 'errors' => [ [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'OperationNotPermittedException', ], ], 'idempotent' => true, ], 'GetEventSelectors' => [ 'name' => 'GetEventSelectors', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetEventSelectorsRequest', ], 'output' => [ 'shape' => 'GetEventSelectorsResponse', ], 'errors' => [ [ 'shape' => 'TrailNotFoundException', ], [ 'shape' => 'InvalidTrailNameException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'OperationNotPermittedException', ], ], 'idempotent' => true, ], 'GetTrailStatus' => [ 'name' => 'GetTrailStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTrailStatusRequest', ], 'output' => [ 'shape' => 'GetTrailStatusResponse', ], 'errors' => [ [ 'shape' => 'TrailNotFoundException', ], [ 'shape' => 'InvalidTrailNameException', ], ], 'idempotent' => true, ], 'ListPublicKeys' => [ 'name' => 'ListPublicKeys', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListPublicKeysRequest', ], 'output' => [ 'shape' => 'ListPublicKeysResponse', ], 'errors' => [ [ 'shape' => 'InvalidTimeRangeException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'InvalidTokenException', ], ], 'idempotent' => true, ], 'ListTags' => [ 'name' => 'ListTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsRequest', ], 'output' => [ 'shape' => 'ListTagsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'CloudTrailARNInvalidException', ], [ 'shape' => 'ResourceTypeNotSupportedException', ], [ 'shape' => 'InvalidTrailNameException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'InvalidTokenException', ], ], 'idempotent' => true, ], 'LookupEvents' => [ 'name' => 'LookupEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'LookupEventsRequest', ], 'output' => [ 'shape' => 'LookupEventsResponse', ], 'errors' => [ [ 'shape' => 'InvalidLookupAttributesException', ], [ 'shape' => 'InvalidTimeRangeException', ], [ 'shape' => 'InvalidMaxResultsException', ], [ 'shape' => 'InvalidNextTokenException', ], ], 'idempotent' => true, ], 'PutEventSelectors' => [ 'name' => 'PutEventSelectors', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutEventSelectorsRequest', ], 'output' => [ 'shape' => 'PutEventSelectorsResponse', ], 'errors' => [ [ 'shape' => 'TrailNotFoundException', ], [ 'shape' => 'InvalidTrailNameException', ], [ 'shape' => 'InvalidHomeRegionException', ], [ 'shape' => 'InvalidEventSelectorsException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'NotOrganizationMasterAccountException', ], [ 'shape' => 'InsufficientDependencyServiceAccessPermissionException', ], ], 'idempotent' => true, ], 'RemoveTags' => [ 'name' => 'RemoveTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveTagsRequest', ], 'output' => [ 'shape' => 'RemoveTagsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'CloudTrailARNInvalidException', ], [ 'shape' => 'ResourceTypeNotSupportedException', ], [ 'shape' => 'InvalidTrailNameException', ], [ 'shape' => 'InvalidTagParameterException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'NotOrganizationMasterAccountException', ], ], 'idempotent' => true, ], 'StartLogging' => [ 'name' => 'StartLogging', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartLoggingRequest', ], 'output' => [ 'shape' => 'StartLoggingResponse', ], 'errors' => [ [ 'shape' => 'TrailNotFoundException', ], [ 'shape' => 'InvalidTrailNameException', ], [ 'shape' => 'InvalidHomeRegionException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'NotOrganizationMasterAccountException', ], [ 'shape' => 'InsufficientDependencyServiceAccessPermissionException', ], ], 'idempotent' => true, ], 'StopLogging' => [ 'name' => 'StopLogging', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopLoggingRequest', ], 'output' => [ 'shape' => 'StopLoggingResponse', ], 'errors' => [ [ 'shape' => 'TrailNotFoundException', ], [ 'shape' => 'InvalidTrailNameException', ], [ 'shape' => 'InvalidHomeRegionException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'NotOrganizationMasterAccountException', ], [ 'shape' => 'InsufficientDependencyServiceAccessPermissionException', ], ], 'idempotent' => true, ], 'UpdateTrail' => [ 'name' => 'UpdateTrail', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateTrailRequest', ], 'output' => [ 'shape' => 'UpdateTrailResponse', ], 'errors' => [ [ 'shape' => 'S3BucketDoesNotExistException', ], [ 'shape' => 'InsufficientS3BucketPolicyException', ], [ 'shape' => 'InsufficientSnsTopicPolicyException', ], [ 'shape' => 'InsufficientEncryptionPolicyException', ], [ 'shape' => 'TrailNotFoundException', ], [ 'shape' => 'InvalidS3BucketNameException', ], [ 'shape' => 'InvalidS3PrefixException', ], [ 'shape' => 'InvalidSnsTopicNameException', ], [ 'shape' => 'InvalidKmsKeyIdException', ], [ 'shape' => 'InvalidTrailNameException', ], [ 'shape' => 'TrailNotProvidedException', ], [ 'shape' => 'InvalidParameterCombinationException', ], [ 'shape' => 'InvalidHomeRegionException', ], [ 'shape' => 'KmsKeyNotFoundException', ], [ 'shape' => 'KmsKeyDisabledException', ], [ 'shape' => 'KmsException', ], [ 'shape' => 'InvalidCloudWatchLogsLogGroupArnException', ], [ 'shape' => 'InvalidCloudWatchLogsRoleArnException', ], [ 'shape' => 'CloudWatchLogsDeliveryUnavailableException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'CloudTrailAccessNotEnabledException', ], [ 'shape' => 'InsufficientDependencyServiceAccessPermissionException', ], [ 'shape' => 'OrganizationsNotInUseException', ], [ 'shape' => 'NotOrganizationMasterAccountException', ], [ 'shape' => 'OrganizationNotInAllFeaturesModeException', ], ], 'idempotent' => true, ], ], 'shapes' => [ 'AddTagsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', ], 'members' => [ 'ResourceId' => [ 'shape' => 'String', ], 'TagsList' => [ 'shape' => 'TagsList', ], ], ], 'AddTagsResponse' => [ 'type' => 'structure', 'members' => [], ], 'Boolean' => [ 'type' => 'boolean', ], 'ByteBuffer' => [ 'type' => 'blob', ], 'CloudTrailARNInvalidException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'CloudTrailAccessNotEnabledException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'CloudWatchLogsDeliveryUnavailableException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'CreateTrailRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'S3BucketName', ], 'members' => [ 'Name' => [ 'shape' => 'String', ], 'S3BucketName' => [ 'shape' => 'String', ], 'S3KeyPrefix' => [ 'shape' => 'String', ], 'SnsTopicName' => [ 'shape' => 'String', ], 'IncludeGlobalServiceEvents' => [ 'shape' => 'Boolean', ], 'IsMultiRegionTrail' => [ 'shape' => 'Boolean', ], 'EnableLogFileValidation' => [ 'shape' => 'Boolean', ], 'CloudWatchLogsLogGroupArn' => [ 'shape' => 'String', ], 'CloudWatchLogsRoleArn' => [ 'shape' => 'String', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'IsOrganizationTrail' => [ 'shape' => 'Boolean', ], ], ], 'CreateTrailResponse' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'S3BucketName' => [ 'shape' => 'String', ], 'S3KeyPrefix' => [ 'shape' => 'String', ], 'SnsTopicName' => [ 'shape' => 'String', 'deprecated' => true, ], 'SnsTopicARN' => [ 'shape' => 'String', ], 'IncludeGlobalServiceEvents' => [ 'shape' => 'Boolean', ], 'IsMultiRegionTrail' => [ 'shape' => 'Boolean', ], 'TrailARN' => [ 'shape' => 'String', ], 'LogFileValidationEnabled' => [ 'shape' => 'Boolean', ], 'CloudWatchLogsLogGroupArn' => [ 'shape' => 'String', ], 'CloudWatchLogsRoleArn' => [ 'shape' => 'String', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'IsOrganizationTrail' => [ 'shape' => 'Boolean', ], ], ], 'DataResource' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Values' => [ 'shape' => 'DataResourceValues', ], ], ], 'DataResourceValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'DataResources' => [ 'type' => 'list', 'member' => [ 'shape' => 'DataResource', ], ], 'Date' => [ 'type' => 'timestamp', ], 'DeleteTrailRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'String', ], ], ], 'DeleteTrailResponse' => [ 'type' => 'structure', 'members' => [], ], 'DescribeTrailsRequest' => [ 'type' => 'structure', 'members' => [ 'trailNameList' => [ 'shape' => 'TrailNameList', ], 'includeShadowTrails' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTrailsResponse' => [ 'type' => 'structure', 'members' => [ 'trailList' => [ 'shape' => 'TrailList', ], ], ], 'Event' => [ 'type' => 'structure', 'members' => [ 'EventId' => [ 'shape' => 'String', ], 'EventName' => [ 'shape' => 'String', ], 'ReadOnly' => [ 'shape' => 'String', ], 'AccessKeyId' => [ 'shape' => 'String', ], 'EventTime' => [ 'shape' => 'Date', ], 'EventSource' => [ 'shape' => 'String', ], 'Username' => [ 'shape' => 'String', ], 'Resources' => [ 'shape' => 'ResourceList', ], 'CloudTrailEvent' => [ 'shape' => 'String', ], ], ], 'EventSelector' => [ 'type' => 'structure', 'members' => [ 'ReadWriteType' => [ 'shape' => 'ReadWriteType', ], 'IncludeManagementEvents' => [ 'shape' => 'Boolean', ], 'DataResources' => [ 'shape' => 'DataResources', ], ], ], 'EventSelectors' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventSelector', ], ], 'EventsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Event', ], ], 'GetEventSelectorsRequest' => [ 'type' => 'structure', 'required' => [ 'TrailName', ], 'members' => [ 'TrailName' => [ 'shape' => 'String', ], ], ], 'GetEventSelectorsResponse' => [ 'type' => 'structure', 'members' => [ 'TrailARN' => [ 'shape' => 'String', ], 'EventSelectors' => [ 'shape' => 'EventSelectors', ], ], ], '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', ], 'LatestDigestDeliveryTime' => [ 'shape' => 'Date', ], 'LatestDigestDeliveryError' => [ 'shape' => 'String', ], 'LatestDeliveryAttemptTime' => [ 'shape' => 'String', ], 'LatestNotificationAttemptTime' => [ 'shape' => 'String', ], 'LatestNotificationAttemptSucceeded' => [ 'shape' => 'String', ], 'LatestDeliveryAttemptSucceeded' => [ 'shape' => 'String', ], 'TimeLoggingStarted' => [ 'shape' => 'String', ], 'TimeLoggingStopped' => [ 'shape' => 'String', ], ], ], 'InsufficientDependencyServiceAccessPermissionException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InsufficientEncryptionPolicyException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InsufficientS3BucketPolicyException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InsufficientSnsTopicPolicyException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidCloudWatchLogsLogGroupArnException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidCloudWatchLogsRoleArnException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidEventSelectorsException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidHomeRegionException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidKmsKeyIdException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidLookupAttributesException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidMaxResultsException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidParameterCombinationException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidS3BucketNameException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidS3PrefixException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidSnsTopicNameException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidTagParameterException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidTimeRangeException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidTokenException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidTrailNameException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'KmsException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'KmsKeyDisabledException' => [ 'type' => 'structure', 'members' => [], 'deprecated' => true, 'exception' => true, ], 'KmsKeyNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ListPublicKeysRequest' => [ 'type' => 'structure', 'members' => [ 'StartTime' => [ 'shape' => 'Date', ], 'EndTime' => [ 'shape' => 'Date', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListPublicKeysResponse' => [ 'type' => 'structure', 'members' => [ 'PublicKeyList' => [ 'shape' => 'PublicKeyList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListTagsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIdList', ], 'members' => [ 'ResourceIdList' => [ 'shape' => 'ResourceIdList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListTagsResponse' => [ 'type' => 'structure', 'members' => [ 'ResourceTagList' => [ 'shape' => 'ResourceTagList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'LookupAttribute' => [ 'type' => 'structure', 'required' => [ 'AttributeKey', 'AttributeValue', ], 'members' => [ 'AttributeKey' => [ 'shape' => 'LookupAttributeKey', ], 'AttributeValue' => [ 'shape' => 'String', ], ], ], 'LookupAttributeKey' => [ 'type' => 'string', 'enum' => [ 'EventId', 'EventName', 'ReadOnly', 'Username', 'ResourceType', 'ResourceName', 'EventSource', 'AccessKeyId', ], ], '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', 'max' => 50, 'min' => 1, ], 'MaximumNumberOfTrailsExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'NextToken' => [ 'type' => 'string', ], 'NotOrganizationMasterAccountException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'OperationNotPermittedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'OrganizationNotInAllFeaturesModeException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'OrganizationsNotInUseException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'PublicKey' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'ByteBuffer', ], 'ValidityStartTime' => [ 'shape' => 'Date', ], 'ValidityEndTime' => [ 'shape' => 'Date', ], 'Fingerprint' => [ 'shape' => 'String', ], ], ], 'PublicKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PublicKey', ], ], 'PutEventSelectorsRequest' => [ 'type' => 'structure', 'required' => [ 'TrailName', 'EventSelectors', ], 'members' => [ 'TrailName' => [ 'shape' => 'String', ], 'EventSelectors' => [ 'shape' => 'EventSelectors', ], ], ], 'PutEventSelectorsResponse' => [ 'type' => 'structure', 'members' => [ 'TrailARN' => [ 'shape' => 'String', ], 'EventSelectors' => [ 'shape' => 'EventSelectors', ], ], ], 'ReadWriteType' => [ 'type' => 'string', 'enum' => [ 'ReadOnly', 'WriteOnly', 'All', ], ], 'RemoveTagsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', ], 'members' => [ 'ResourceId' => [ 'shape' => 'String', ], 'TagsList' => [ 'shape' => 'TagsList', ], ], ], 'RemoveTagsResponse' => [ 'type' => 'structure', 'members' => [], ], 'Resource' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'String', ], 'ResourceName' => [ 'shape' => 'String', ], ], ], 'ResourceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Resource', ], ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ResourceTag' => [ 'type' => 'structure', 'members' => [ 'ResourceId' => [ 'shape' => 'String', ], 'TagsList' => [ 'shape' => 'TagsList', ], ], ], 'ResourceTagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceTag', ], ], 'ResourceTypeNotSupportedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'S3BucketDoesNotExistException' => [ 'type' => 'structure', 'members' => [], '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', ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'Key' => [ 'shape' => 'String', ], 'Value' => [ 'shape' => 'String', ], ], ], 'TagsLimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'TagsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'Trail' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'S3BucketName' => [ 'shape' => 'String', ], 'S3KeyPrefix' => [ 'shape' => 'String', ], 'SnsTopicName' => [ 'shape' => 'String', 'deprecated' => true, ], 'SnsTopicARN' => [ 'shape' => 'String', ], 'IncludeGlobalServiceEvents' => [ 'shape' => 'Boolean', ], 'IsMultiRegionTrail' => [ 'shape' => 'Boolean', ], 'HomeRegion' => [ 'shape' => 'String', ], 'TrailARN' => [ 'shape' => 'String', ], 'LogFileValidationEnabled' => [ 'shape' => 'Boolean', ], 'CloudWatchLogsLogGroupArn' => [ 'shape' => 'String', ], 'CloudWatchLogsRoleArn' => [ 'shape' => 'String', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'HasCustomEventSelectors' => [ 'shape' => 'Boolean', ], 'IsOrganizationTrail' => [ 'shape' => 'Boolean', ], ], ], 'TrailAlreadyExistsException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'TrailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Trail', ], ], 'TrailNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'TrailNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'TrailNotProvidedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'UnsupportedOperationException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'UpdateTrailRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'String', ], 'S3BucketName' => [ 'shape' => 'String', ], 'S3KeyPrefix' => [ 'shape' => 'String', ], 'SnsTopicName' => [ 'shape' => 'String', ], 'IncludeGlobalServiceEvents' => [ 'shape' => 'Boolean', ], 'IsMultiRegionTrail' => [ 'shape' => 'Boolean', ], 'EnableLogFileValidation' => [ 'shape' => 'Boolean', ], 'CloudWatchLogsLogGroupArn' => [ 'shape' => 'String', ], 'CloudWatchLogsRoleArn' => [ 'shape' => 'String', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'IsOrganizationTrail' => [ 'shape' => 'Boolean', ], ], ], 'UpdateTrailResponse' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'S3BucketName' => [ 'shape' => 'String', ], 'S3KeyPrefix' => [ 'shape' => 'String', ], 'SnsTopicName' => [ 'shape' => 'String', 'deprecated' => true, ], 'SnsTopicARN' => [ 'shape' => 'String', ], 'IncludeGlobalServiceEvents' => [ 'shape' => 'Boolean', ], 'IsMultiRegionTrail' => [ 'shape' => 'Boolean', ], 'TrailARN' => [ 'shape' => 'String', ], 'LogFileValidationEnabled' => [ 'shape' => 'Boolean', ], 'CloudWatchLogsLogGroupArn' => [ 'shape' => 'String', ], 'CloudWatchLogsRoleArn' => [ 'shape' => 'String', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'IsOrganizationTrail' => [ 'shape' => 'Boolean', ], ], ], ],]; diff --git a/lib/aws/Aws/data/cloudtrail/2013-11-01/paginators-1.json.php b/lib/aws/Aws/data/cloudtrail/2013-11-01/paginators-1.json.php new file mode 100644 index 0000000..e53d4af --- /dev/null +++ b/lib/aws/Aws/data/cloudtrail/2013-11-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudtrail/2013-11-01/paginators-1.json +return [ 'pagination' => [ 'DescribeTrails' => [ 'result_key' => 'trailList', ], 'LookupEvents' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Events', ], ],]; diff --git a/lib/aws/Aws/data/cloudtrail/2013-11-01/smoke.json.php b/lib/aws/Aws/data/cloudtrail/2013-11-01/smoke.json.php new file mode 100644 index 0000000..f9844cb --- /dev/null +++ b/lib/aws/Aws/data/cloudtrail/2013-11-01/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cloudtrail/2013-11-01/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeTrails', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DeleteTrail', 'input' => [ 'Name' => 'faketrail', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/codebuild/2016-10-06/api-2.json.php b/lib/aws/Aws/data/codebuild/2016-10-06/api-2.json.php new file mode 100644 index 0000000..34dbf5d --- /dev/null +++ b/lib/aws/Aws/data/codebuild/2016-10-06/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/codebuild/2016-10-06/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-10-06', 'endpointPrefix' => 'codebuild', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWS CodeBuild', 'serviceId' => 'CodeBuild', 'signatureVersion' => 'v4', 'targetPrefix' => 'CodeBuild_20161006', 'uid' => 'codebuild-2016-10-06', ], 'operations' => [ 'BatchDeleteBuilds' => [ 'name' => 'BatchDeleteBuilds', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchDeleteBuildsInput', ], 'output' => [ 'shape' => 'BatchDeleteBuildsOutput', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], ], ], 'BatchGetBuilds' => [ 'name' => 'BatchGetBuilds', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetBuildsInput', ], 'output' => [ 'shape' => 'BatchGetBuildsOutput', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], ], ], 'BatchGetProjects' => [ 'name' => 'BatchGetProjects', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetProjectsInput', ], 'output' => [ 'shape' => 'BatchGetProjectsOutput', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], ], ], 'CreateProject' => [ 'name' => 'CreateProject', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateProjectInput', ], 'output' => [ 'shape' => 'CreateProjectOutput', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'AccountLimitExceededException', ], ], ], 'CreateWebhook' => [ 'name' => 'CreateWebhook', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateWebhookInput', ], 'output' => [ 'shape' => 'CreateWebhookOutput', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'OAuthProviderException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeleteProject' => [ 'name' => 'DeleteProject', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteProjectInput', ], 'output' => [ 'shape' => 'DeleteProjectOutput', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], ], ], 'DeleteSourceCredentials' => [ 'name' => 'DeleteSourceCredentials', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSourceCredentialsInput', ], 'output' => [ 'shape' => 'DeleteSourceCredentialsOutput', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeleteWebhook' => [ 'name' => 'DeleteWebhook', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteWebhookInput', ], 'output' => [ 'shape' => 'DeleteWebhookOutput', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'OAuthProviderException', ], ], ], 'ImportSourceCredentials' => [ 'name' => 'ImportSourceCredentials', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportSourceCredentialsInput', ], 'output' => [ 'shape' => 'ImportSourceCredentialsOutput', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccountLimitExceededException', ], ], ], 'InvalidateProjectCache' => [ 'name' => 'InvalidateProjectCache', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'InvalidateProjectCacheInput', ], 'output' => [ 'shape' => 'InvalidateProjectCacheOutput', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListBuilds' => [ 'name' => 'ListBuilds', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListBuildsInput', ], 'output' => [ 'shape' => 'ListBuildsOutput', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], ], ], 'ListBuildsForProject' => [ 'name' => 'ListBuildsForProject', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListBuildsForProjectInput', ], 'output' => [ 'shape' => 'ListBuildsForProjectOutput', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListCuratedEnvironmentImages' => [ 'name' => 'ListCuratedEnvironmentImages', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListCuratedEnvironmentImagesInput', ], 'output' => [ 'shape' => 'ListCuratedEnvironmentImagesOutput', ], ], 'ListProjects' => [ 'name' => 'ListProjects', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListProjectsInput', ], 'output' => [ 'shape' => 'ListProjectsOutput', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], ], ], 'ListSourceCredentials' => [ 'name' => 'ListSourceCredentials', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSourceCredentialsInput', ], 'output' => [ 'shape' => 'ListSourceCredentialsOutput', ], ], 'StartBuild' => [ 'name' => 'StartBuild', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartBuildInput', ], 'output' => [ 'shape' => 'StartBuildOutput', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccountLimitExceededException', ], ], ], 'StopBuild' => [ 'name' => 'StopBuild', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopBuildInput', ], 'output' => [ 'shape' => 'StopBuildOutput', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateProject' => [ 'name' => 'UpdateProject', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateProjectInput', ], 'output' => [ 'shape' => 'UpdateProjectOutput', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateWebhook' => [ 'name' => 'UpdateWebhook', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateWebhookInput', ], 'output' => [ 'shape' => 'UpdateWebhookOutput', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'OAuthProviderException', ], ], ], ], 'shapes' => [ 'AccountLimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ArtifactNamespace' => [ 'type' => 'string', 'enum' => [ 'NONE', 'BUILD_ID', ], ], 'ArtifactPackaging' => [ 'type' => 'string', 'enum' => [ 'NONE', 'ZIP', ], ], 'ArtifactsType' => [ 'type' => 'string', 'enum' => [ 'CODEPIPELINE', 'S3', 'NO_ARTIFACTS', ], ], 'AuthType' => [ 'type' => 'string', 'enum' => [ 'OAUTH', 'BASIC_AUTH', 'PERSONAL_ACCESS_TOKEN', ], ], 'BatchDeleteBuildsInput' => [ 'type' => 'structure', 'required' => [ 'ids', ], 'members' => [ 'ids' => [ 'shape' => 'BuildIds', ], ], ], 'BatchDeleteBuildsOutput' => [ 'type' => 'structure', 'members' => [ 'buildsDeleted' => [ 'shape' => 'BuildIds', ], 'buildsNotDeleted' => [ 'shape' => 'BuildsNotDeleted', ], ], ], 'BatchGetBuildsInput' => [ 'type' => 'structure', 'required' => [ 'ids', ], 'members' => [ 'ids' => [ 'shape' => 'BuildIds', ], ], ], 'BatchGetBuildsOutput' => [ 'type' => 'structure', 'members' => [ 'builds' => [ 'shape' => 'Builds', ], 'buildsNotFound' => [ 'shape' => 'BuildIds', ], ], ], 'BatchGetProjectsInput' => [ 'type' => 'structure', 'required' => [ 'names', ], 'members' => [ 'names' => [ 'shape' => 'ProjectNames', ], ], ], 'BatchGetProjectsOutput' => [ 'type' => 'structure', 'members' => [ 'projects' => [ 'shape' => 'Projects', ], 'projectsNotFound' => [ 'shape' => 'ProjectNames', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'Build' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'NonEmptyString', ], 'arn' => [ 'shape' => 'NonEmptyString', ], 'startTime' => [ 'shape' => 'Timestamp', ], 'endTime' => [ 'shape' => 'Timestamp', ], 'currentPhase' => [ 'shape' => 'String', ], 'buildStatus' => [ 'shape' => 'StatusType', ], 'sourceVersion' => [ 'shape' => 'NonEmptyString', ], 'resolvedSourceVersion' => [ 'shape' => 'NonEmptyString', ], 'projectName' => [ 'shape' => 'NonEmptyString', ], 'phases' => [ 'shape' => 'BuildPhases', ], 'source' => [ 'shape' => 'ProjectSource', ], 'secondarySources' => [ 'shape' => 'ProjectSources', ], 'secondarySourceVersions' => [ 'shape' => 'ProjectSecondarySourceVersions', ], 'artifacts' => [ 'shape' => 'BuildArtifacts', ], 'secondaryArtifacts' => [ 'shape' => 'BuildArtifactsList', ], 'cache' => [ 'shape' => 'ProjectCache', ], 'environment' => [ 'shape' => 'ProjectEnvironment', ], 'serviceRole' => [ 'shape' => 'NonEmptyString', ], 'logs' => [ 'shape' => 'LogsLocation', ], 'timeoutInMinutes' => [ 'shape' => 'WrapperInt', ], 'queuedTimeoutInMinutes' => [ 'shape' => 'WrapperInt', ], 'buildComplete' => [ 'shape' => 'Boolean', ], 'initiator' => [ 'shape' => 'String', ], 'vpcConfig' => [ 'shape' => 'VpcConfig', ], 'networkInterface' => [ 'shape' => 'NetworkInterface', ], 'encryptionKey' => [ 'shape' => 'NonEmptyString', ], ], ], 'BuildArtifacts' => [ 'type' => 'structure', 'members' => [ 'location' => [ 'shape' => 'String', ], 'sha256sum' => [ 'shape' => 'String', ], 'md5sum' => [ 'shape' => 'String', ], 'overrideArtifactName' => [ 'shape' => 'WrapperBoolean', ], 'encryptionDisabled' => [ 'shape' => 'WrapperBoolean', ], 'artifactIdentifier' => [ 'shape' => 'String', ], ], ], 'BuildArtifactsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BuildArtifacts', ], 'max' => 12, 'min' => 0, ], 'BuildIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonEmptyString', ], 'max' => 100, 'min' => 1, ], 'BuildNotDeleted' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'NonEmptyString', ], 'statusCode' => [ 'shape' => 'String', ], ], ], 'BuildPhase' => [ 'type' => 'structure', 'members' => [ 'phaseType' => [ 'shape' => 'BuildPhaseType', ], 'phaseStatus' => [ 'shape' => 'StatusType', ], 'startTime' => [ 'shape' => 'Timestamp', ], 'endTime' => [ 'shape' => 'Timestamp', ], 'durationInSeconds' => [ 'shape' => 'WrapperLong', ], 'contexts' => [ 'shape' => 'PhaseContexts', ], ], ], 'BuildPhaseType' => [ 'type' => 'string', 'enum' => [ 'SUBMITTED', 'QUEUED', 'PROVISIONING', 'DOWNLOAD_SOURCE', 'INSTALL', 'PRE_BUILD', 'BUILD', 'POST_BUILD', 'UPLOAD_ARTIFACTS', 'FINALIZING', 'COMPLETED', ], ], 'BuildPhases' => [ 'type' => 'list', 'member' => [ 'shape' => 'BuildPhase', ], ], 'Builds' => [ 'type' => 'list', 'member' => [ 'shape' => 'Build', ], ], 'BuildsNotDeleted' => [ 'type' => 'list', 'member' => [ 'shape' => 'BuildNotDeleted', ], ], 'CacheMode' => [ 'type' => 'string', 'enum' => [ 'LOCAL_DOCKER_LAYER_CACHE', 'LOCAL_SOURCE_CACHE', 'LOCAL_CUSTOM_CACHE', ], ], 'CacheType' => [ 'type' => 'string', 'enum' => [ 'NO_CACHE', 'S3', 'LOCAL', ], ], 'CloudWatchLogsConfig' => [ 'type' => 'structure', 'required' => [ 'status', ], 'members' => [ 'status' => [ 'shape' => 'LogsConfigStatusType', ], 'groupName' => [ 'shape' => 'String', ], 'streamName' => [ 'shape' => 'String', ], ], ], 'ComputeType' => [ 'type' => 'string', 'enum' => [ 'BUILD_GENERAL1_SMALL', 'BUILD_GENERAL1_MEDIUM', 'BUILD_GENERAL1_LARGE', ], ], 'CreateProjectInput' => [ 'type' => 'structure', 'required' => [ 'name', 'source', 'artifacts', 'environment', 'serviceRole', ], 'members' => [ 'name' => [ 'shape' => 'ProjectName', ], 'description' => [ 'shape' => 'ProjectDescription', ], 'source' => [ 'shape' => 'ProjectSource', ], 'secondarySources' => [ 'shape' => 'ProjectSources', ], 'artifacts' => [ 'shape' => 'ProjectArtifacts', ], 'secondaryArtifacts' => [ 'shape' => 'ProjectArtifactsList', ], 'cache' => [ 'shape' => 'ProjectCache', ], 'environment' => [ 'shape' => 'ProjectEnvironment', ], 'serviceRole' => [ 'shape' => 'NonEmptyString', ], 'timeoutInMinutes' => [ 'shape' => 'TimeOut', ], 'queuedTimeoutInMinutes' => [ 'shape' => 'TimeOut', ], 'encryptionKey' => [ 'shape' => 'NonEmptyString', ], 'tags' => [ 'shape' => 'TagList', ], 'vpcConfig' => [ 'shape' => 'VpcConfig', ], 'badgeEnabled' => [ 'shape' => 'WrapperBoolean', ], 'logsConfig' => [ 'shape' => 'LogsConfig', ], ], ], 'CreateProjectOutput' => [ 'type' => 'structure', 'members' => [ 'project' => [ 'shape' => 'Project', ], ], ], 'CreateWebhookInput' => [ 'type' => 'structure', 'required' => [ 'projectName', ], 'members' => [ 'projectName' => [ 'shape' => 'ProjectName', ], 'branchFilter' => [ 'shape' => 'String', ], 'filterGroups' => [ 'shape' => 'FilterGroups', ], ], ], 'CreateWebhookOutput' => [ 'type' => 'structure', 'members' => [ 'webhook' => [ 'shape' => 'Webhook', ], ], ], 'CredentialProviderType' => [ 'type' => 'string', 'enum' => [ 'SECRETS_MANAGER', ], ], 'DeleteProjectInput' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'NonEmptyString', ], ], ], 'DeleteProjectOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeleteSourceCredentialsInput' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'NonEmptyString', ], ], ], 'DeleteSourceCredentialsOutput' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'NonEmptyString', ], ], ], 'DeleteWebhookInput' => [ 'type' => 'structure', 'required' => [ 'projectName', ], 'members' => [ 'projectName' => [ 'shape' => 'ProjectName', ], ], ], 'DeleteWebhookOutput' => [ 'type' => 'structure', 'members' => [], ], 'EnvironmentImage' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'versions' => [ 'shape' => 'ImageVersions', ], ], ], 'EnvironmentImages' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnvironmentImage', ], ], 'EnvironmentLanguage' => [ 'type' => 'structure', 'members' => [ 'language' => [ 'shape' => 'LanguageType', ], 'images' => [ 'shape' => 'EnvironmentImages', ], ], ], 'EnvironmentLanguages' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnvironmentLanguage', ], ], 'EnvironmentPlatform' => [ 'type' => 'structure', 'members' => [ 'platform' => [ 'shape' => 'PlatformType', ], 'languages' => [ 'shape' => 'EnvironmentLanguages', ], ], ], 'EnvironmentPlatforms' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnvironmentPlatform', ], ], 'EnvironmentType' => [ 'type' => 'string', 'enum' => [ 'WINDOWS_CONTAINER', 'LINUX_CONTAINER', ], ], 'EnvironmentVariable' => [ 'type' => 'structure', 'required' => [ 'name', 'value', ], 'members' => [ 'name' => [ 'shape' => 'NonEmptyString', ], 'value' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'EnvironmentVariableType', ], ], ], 'EnvironmentVariableType' => [ 'type' => 'string', 'enum' => [ 'PLAINTEXT', 'PARAMETER_STORE', ], ], 'EnvironmentVariables' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnvironmentVariable', ], ], 'FilterGroup' => [ 'type' => 'list', 'member' => [ 'shape' => 'WebhookFilter', ], ], 'FilterGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'FilterGroup', ], ], 'GitCloneDepth' => [ 'type' => 'integer', 'min' => 0, ], 'GitSubmodulesConfig' => [ 'type' => 'structure', 'required' => [ 'fetchSubmodules', ], 'members' => [ 'fetchSubmodules' => [ 'shape' => 'WrapperBoolean', ], ], ], 'ImagePullCredentialsType' => [ 'type' => 'string', 'enum' => [ 'CODEBUILD', 'SERVICE_ROLE', ], ], 'ImageVersions' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ImportSourceCredentialsInput' => [ 'type' => 'structure', 'required' => [ 'token', 'serverType', 'authType', ], 'members' => [ 'username' => [ 'shape' => 'NonEmptyString', ], 'token' => [ 'shape' => 'SensitiveNonEmptyString', ], 'serverType' => [ 'shape' => 'ServerType', ], 'authType' => [ 'shape' => 'AuthType', ], ], ], 'ImportSourceCredentialsOutput' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'NonEmptyString', ], ], ], 'InvalidInputException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidateProjectCacheInput' => [ 'type' => 'structure', 'required' => [ 'projectName', ], 'members' => [ 'projectName' => [ 'shape' => 'NonEmptyString', ], ], ], 'InvalidateProjectCacheOutput' => [ 'type' => 'structure', 'members' => [], ], 'KeyInput' => [ 'type' => 'string', 'max' => 127, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=@+\\-]*)$', ], 'LanguageType' => [ 'type' => 'string', 'enum' => [ 'JAVA', 'PYTHON', 'NODE_JS', 'RUBY', 'GOLANG', 'DOCKER', 'ANDROID', 'DOTNET', 'BASE', 'PHP', ], ], 'ListBuildsForProjectInput' => [ 'type' => 'structure', 'required' => [ 'projectName', ], 'members' => [ 'projectName' => [ 'shape' => 'NonEmptyString', ], 'sortOrder' => [ 'shape' => 'SortOrderType', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListBuildsForProjectOutput' => [ 'type' => 'structure', 'members' => [ 'ids' => [ 'shape' => 'BuildIds', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListBuildsInput' => [ 'type' => 'structure', 'members' => [ 'sortOrder' => [ 'shape' => 'SortOrderType', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListBuildsOutput' => [ 'type' => 'structure', 'members' => [ 'ids' => [ 'shape' => 'BuildIds', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListCuratedEnvironmentImagesInput' => [ 'type' => 'structure', 'members' => [], ], 'ListCuratedEnvironmentImagesOutput' => [ 'type' => 'structure', 'members' => [ 'platforms' => [ 'shape' => 'EnvironmentPlatforms', ], ], ], 'ListProjectsInput' => [ 'type' => 'structure', 'members' => [ 'sortBy' => [ 'shape' => 'ProjectSortByType', ], 'sortOrder' => [ 'shape' => 'SortOrderType', ], 'nextToken' => [ 'shape' => 'NonEmptyString', ], ], ], 'ListProjectsOutput' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'projects' => [ 'shape' => 'ProjectNames', ], ], ], 'ListSourceCredentialsInput' => [ 'type' => 'structure', 'members' => [], ], 'ListSourceCredentialsOutput' => [ 'type' => 'structure', 'members' => [ 'sourceCredentialsInfos' => [ 'shape' => 'SourceCredentialsInfos', ], ], ], 'LogsConfig' => [ 'type' => 'structure', 'members' => [ 'cloudWatchLogs' => [ 'shape' => 'CloudWatchLogsConfig', ], 's3Logs' => [ 'shape' => 'S3LogsConfig', ], ], ], 'LogsConfigStatusType' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'LogsLocation' => [ 'type' => 'structure', 'members' => [ 'groupName' => [ 'shape' => 'String', ], 'streamName' => [ 'shape' => 'String', ], 'deepLink' => [ 'shape' => 'String', ], 's3DeepLink' => [ 'shape' => 'String', ], 'cloudWatchLogs' => [ 'shape' => 'CloudWatchLogsConfig', ], 's3Logs' => [ 'shape' => 'S3LogsConfig', ], ], ], 'NetworkInterface' => [ 'type' => 'structure', 'members' => [ 'subnetId' => [ 'shape' => 'NonEmptyString', ], 'networkInterfaceId' => [ 'shape' => 'NonEmptyString', ], ], ], 'NonEmptyString' => [ 'type' => 'string', 'min' => 1, ], 'OAuthProviderException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'PhaseContext' => [ 'type' => 'structure', 'members' => [ 'statusCode' => [ 'shape' => 'String', ], 'message' => [ 'shape' => 'String', ], ], ], 'PhaseContexts' => [ 'type' => 'list', 'member' => [ 'shape' => 'PhaseContext', ], ], 'PlatformType' => [ 'type' => 'string', 'enum' => [ 'DEBIAN', 'AMAZON_LINUX', 'UBUNTU', 'WINDOWS_SERVER', ], ], 'Project' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ProjectName', ], 'arn' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'ProjectDescription', ], 'source' => [ 'shape' => 'ProjectSource', ], 'secondarySources' => [ 'shape' => 'ProjectSources', ], 'artifacts' => [ 'shape' => 'ProjectArtifacts', ], 'secondaryArtifacts' => [ 'shape' => 'ProjectArtifactsList', ], 'cache' => [ 'shape' => 'ProjectCache', ], 'environment' => [ 'shape' => 'ProjectEnvironment', ], 'serviceRole' => [ 'shape' => 'NonEmptyString', ], 'timeoutInMinutes' => [ 'shape' => 'TimeOut', ], 'queuedTimeoutInMinutes' => [ 'shape' => 'TimeOut', ], 'encryptionKey' => [ 'shape' => 'NonEmptyString', ], 'tags' => [ 'shape' => 'TagList', ], 'created' => [ 'shape' => 'Timestamp', ], 'lastModified' => [ 'shape' => 'Timestamp', ], 'webhook' => [ 'shape' => 'Webhook', ], 'vpcConfig' => [ 'shape' => 'VpcConfig', ], 'badge' => [ 'shape' => 'ProjectBadge', ], 'logsConfig' => [ 'shape' => 'LogsConfig', ], ], ], 'ProjectArtifacts' => [ 'type' => 'structure', 'required' => [ 'type', ], 'members' => [ 'type' => [ 'shape' => 'ArtifactsType', ], 'location' => [ 'shape' => 'String', ], 'path' => [ 'shape' => 'String', ], 'namespaceType' => [ 'shape' => 'ArtifactNamespace', ], 'name' => [ 'shape' => 'String', ], 'packaging' => [ 'shape' => 'ArtifactPackaging', ], 'overrideArtifactName' => [ 'shape' => 'WrapperBoolean', ], 'encryptionDisabled' => [ 'shape' => 'WrapperBoolean', ], 'artifactIdentifier' => [ 'shape' => 'String', ], ], ], 'ProjectArtifactsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProjectArtifacts', ], 'max' => 12, 'min' => 0, ], 'ProjectBadge' => [ 'type' => 'structure', 'members' => [ 'badgeEnabled' => [ 'shape' => 'Boolean', ], 'badgeRequestUrl' => [ 'shape' => 'String', ], ], ], 'ProjectCache' => [ 'type' => 'structure', 'required' => [ 'type', ], 'members' => [ 'type' => [ 'shape' => 'CacheType', ], 'location' => [ 'shape' => 'String', ], 'modes' => [ 'shape' => 'ProjectCacheModes', ], ], ], 'ProjectCacheModes' => [ 'type' => 'list', 'member' => [ 'shape' => 'CacheMode', ], ], 'ProjectDescription' => [ 'type' => 'string', 'max' => 255, 'min' => 0, ], 'ProjectEnvironment' => [ 'type' => 'structure', 'required' => [ 'type', 'image', 'computeType', ], 'members' => [ 'type' => [ 'shape' => 'EnvironmentType', ], 'image' => [ 'shape' => 'NonEmptyString', ], 'computeType' => [ 'shape' => 'ComputeType', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariables', ], 'privilegedMode' => [ 'shape' => 'WrapperBoolean', ], 'certificate' => [ 'shape' => 'String', ], 'registryCredential' => [ 'shape' => 'RegistryCredential', ], 'imagePullCredentialsType' => [ 'shape' => 'ImagePullCredentialsType', ], ], ], 'ProjectName' => [ 'type' => 'string', 'max' => 255, 'min' => 2, 'pattern' => '[A-Za-z0-9][A-Za-z0-9\\-_]{1,254}', ], 'ProjectNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonEmptyString', ], 'max' => 100, 'min' => 1, ], 'ProjectSecondarySourceVersions' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProjectSourceVersion', ], 'max' => 12, 'min' => 0, ], 'ProjectSortByType' => [ 'type' => 'string', 'enum' => [ 'NAME', 'CREATED_TIME', 'LAST_MODIFIED_TIME', ], ], 'ProjectSource' => [ 'type' => 'structure', 'required' => [ 'type', ], 'members' => [ 'type' => [ 'shape' => 'SourceType', ], 'location' => [ 'shape' => 'String', ], 'gitCloneDepth' => [ 'shape' => 'GitCloneDepth', ], 'gitSubmodulesConfig' => [ 'shape' => 'GitSubmodulesConfig', ], 'buildspec' => [ 'shape' => 'String', ], 'auth' => [ 'shape' => 'SourceAuth', ], 'reportBuildStatus' => [ 'shape' => 'WrapperBoolean', ], 'insecureSsl' => [ 'shape' => 'WrapperBoolean', ], 'sourceIdentifier' => [ 'shape' => 'String', ], ], ], 'ProjectSourceVersion' => [ 'type' => 'structure', 'required' => [ 'sourceIdentifier', 'sourceVersion', ], 'members' => [ 'sourceIdentifier' => [ 'shape' => 'String', ], 'sourceVersion' => [ 'shape' => 'String', ], ], ], 'ProjectSources' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProjectSource', ], 'max' => 12, 'min' => 0, ], 'Projects' => [ 'type' => 'list', 'member' => [ 'shape' => 'Project', ], ], 'RegistryCredential' => [ 'type' => 'structure', 'required' => [ 'credential', 'credentialProvider', ], 'members' => [ 'credential' => [ 'shape' => 'NonEmptyString', ], 'credentialProvider' => [ 'shape' => 'CredentialProviderType', ], ], ], 'ResourceAlreadyExistsException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'S3LogsConfig' => [ 'type' => 'structure', 'required' => [ 'status', ], 'members' => [ 'status' => [ 'shape' => 'LogsConfigStatusType', ], 'location' => [ 'shape' => 'String', ], 'encryptionDisabled' => [ 'shape' => 'WrapperBoolean', ], ], ], 'SecurityGroupIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonEmptyString', ], 'max' => 5, ], 'SensitiveNonEmptyString' => [ 'type' => 'string', 'min' => 1, 'sensitive' => true, ], 'ServerType' => [ 'type' => 'string', 'enum' => [ 'GITHUB', 'BITBUCKET', 'GITHUB_ENTERPRISE', ], ], 'SortOrderType' => [ 'type' => 'string', 'enum' => [ 'ASCENDING', 'DESCENDING', ], ], 'SourceAuth' => [ 'type' => 'structure', 'required' => [ 'type', ], 'members' => [ 'type' => [ 'shape' => 'SourceAuthType', ], 'resource' => [ 'shape' => 'String', ], ], ], 'SourceAuthType' => [ 'type' => 'string', 'enum' => [ 'OAUTH', ], ], 'SourceCredentialsInfo' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'NonEmptyString', ], 'serverType' => [ 'shape' => 'ServerType', ], 'authType' => [ 'shape' => 'AuthType', ], ], ], 'SourceCredentialsInfos' => [ 'type' => 'list', 'member' => [ 'shape' => 'SourceCredentialsInfo', ], ], 'SourceType' => [ 'type' => 'string', 'enum' => [ 'CODECOMMIT', 'CODEPIPELINE', 'GITHUB', 'S3', 'BITBUCKET', 'GITHUB_ENTERPRISE', 'NO_SOURCE', ], ], 'StartBuildInput' => [ 'type' => 'structure', 'required' => [ 'projectName', ], 'members' => [ 'projectName' => [ 'shape' => 'NonEmptyString', ], 'secondarySourcesOverride' => [ 'shape' => 'ProjectSources', ], 'secondarySourcesVersionOverride' => [ 'shape' => 'ProjectSecondarySourceVersions', ], 'sourceVersion' => [ 'shape' => 'String', ], 'artifactsOverride' => [ 'shape' => 'ProjectArtifacts', ], 'secondaryArtifactsOverride' => [ 'shape' => 'ProjectArtifactsList', ], 'environmentVariablesOverride' => [ 'shape' => 'EnvironmentVariables', ], 'sourceTypeOverride' => [ 'shape' => 'SourceType', ], 'sourceLocationOverride' => [ 'shape' => 'String', ], 'sourceAuthOverride' => [ 'shape' => 'SourceAuth', ], 'gitCloneDepthOverride' => [ 'shape' => 'GitCloneDepth', ], 'gitSubmodulesConfigOverride' => [ 'shape' => 'GitSubmodulesConfig', ], 'buildspecOverride' => [ 'shape' => 'String', ], 'insecureSslOverride' => [ 'shape' => 'WrapperBoolean', ], 'reportBuildStatusOverride' => [ 'shape' => 'WrapperBoolean', ], 'environmentTypeOverride' => [ 'shape' => 'EnvironmentType', ], 'imageOverride' => [ 'shape' => 'NonEmptyString', ], 'computeTypeOverride' => [ 'shape' => 'ComputeType', ], 'certificateOverride' => [ 'shape' => 'String', ], 'cacheOverride' => [ 'shape' => 'ProjectCache', ], 'serviceRoleOverride' => [ 'shape' => 'NonEmptyString', ], 'privilegedModeOverride' => [ 'shape' => 'WrapperBoolean', ], 'timeoutInMinutesOverride' => [ 'shape' => 'TimeOut', ], 'queuedTimeoutInMinutesOverride' => [ 'shape' => 'TimeOut', ], 'idempotencyToken' => [ 'shape' => 'String', ], 'logsConfigOverride' => [ 'shape' => 'LogsConfig', ], 'registryCredentialOverride' => [ 'shape' => 'RegistryCredential', ], 'imagePullCredentialsTypeOverride' => [ 'shape' => 'ImagePullCredentialsType', ], ], ], 'StartBuildOutput' => [ 'type' => 'structure', 'members' => [ 'build' => [ 'shape' => 'Build', ], ], ], 'StatusType' => [ 'type' => 'string', 'enum' => [ 'SUCCEEDED', 'FAILED', 'FAULT', 'TIMED_OUT', 'IN_PROGRESS', 'STOPPED', ], ], 'StopBuildInput' => [ 'type' => 'structure', 'required' => [ 'id', ], 'members' => [ 'id' => [ 'shape' => 'NonEmptyString', ], ], ], 'StopBuildOutput' => [ 'type' => 'structure', 'members' => [ 'build' => [ 'shape' => 'Build', ], ], ], 'String' => [ 'type' => 'string', ], 'Subnets' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonEmptyString', ], 'max' => 16, ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'key' => [ 'shape' => 'KeyInput', ], 'value' => [ 'shape' => 'ValueInput', ], ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 50, 'min' => 0, ], 'TimeOut' => [ 'type' => 'integer', 'max' => 480, 'min' => 5, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'UpdateProjectInput' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'NonEmptyString', ], 'description' => [ 'shape' => 'ProjectDescription', ], 'source' => [ 'shape' => 'ProjectSource', ], 'secondarySources' => [ 'shape' => 'ProjectSources', ], 'artifacts' => [ 'shape' => 'ProjectArtifacts', ], 'secondaryArtifacts' => [ 'shape' => 'ProjectArtifactsList', ], 'cache' => [ 'shape' => 'ProjectCache', ], 'environment' => [ 'shape' => 'ProjectEnvironment', ], 'serviceRole' => [ 'shape' => 'NonEmptyString', ], 'timeoutInMinutes' => [ 'shape' => 'TimeOut', ], 'queuedTimeoutInMinutes' => [ 'shape' => 'TimeOut', ], 'encryptionKey' => [ 'shape' => 'NonEmptyString', ], 'tags' => [ 'shape' => 'TagList', ], 'vpcConfig' => [ 'shape' => 'VpcConfig', ], 'badgeEnabled' => [ 'shape' => 'WrapperBoolean', ], 'logsConfig' => [ 'shape' => 'LogsConfig', ], ], ], 'UpdateProjectOutput' => [ 'type' => 'structure', 'members' => [ 'project' => [ 'shape' => 'Project', ], ], ], 'UpdateWebhookInput' => [ 'type' => 'structure', 'required' => [ 'projectName', ], 'members' => [ 'projectName' => [ 'shape' => 'ProjectName', ], 'branchFilter' => [ 'shape' => 'String', ], 'rotateSecret' => [ 'shape' => 'Boolean', ], 'filterGroups' => [ 'shape' => 'FilterGroups', ], ], ], 'UpdateWebhookOutput' => [ 'type' => 'structure', 'members' => [ 'webhook' => [ 'shape' => 'Webhook', ], ], ], 'ValueInput' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=@+\\-]*)$', ], 'VpcConfig' => [ 'type' => 'structure', 'members' => [ 'vpcId' => [ 'shape' => 'NonEmptyString', ], 'subnets' => [ 'shape' => 'Subnets', ], 'securityGroupIds' => [ 'shape' => 'SecurityGroupIds', ], ], ], 'Webhook' => [ 'type' => 'structure', 'members' => [ 'url' => [ 'shape' => 'NonEmptyString', ], 'payloadUrl' => [ 'shape' => 'NonEmptyString', ], 'secret' => [ 'shape' => 'NonEmptyString', ], 'branchFilter' => [ 'shape' => 'String', ], 'filterGroups' => [ 'shape' => 'FilterGroups', ], 'lastModifiedSecret' => [ 'shape' => 'Timestamp', ], ], ], 'WebhookFilter' => [ 'type' => 'structure', 'required' => [ 'type', 'pattern', ], 'members' => [ 'type' => [ 'shape' => 'WebhookFilterType', ], 'pattern' => [ 'shape' => 'String', ], 'excludeMatchedPattern' => [ 'shape' => 'WrapperBoolean', ], ], ], 'WebhookFilterType' => [ 'type' => 'string', 'enum' => [ 'EVENT', 'BASE_REF', 'HEAD_REF', 'ACTOR_ACCOUNT_ID', 'FILE_PATH', ], ], 'WrapperBoolean' => [ 'type' => 'boolean', ], 'WrapperInt' => [ 'type' => 'integer', ], 'WrapperLong' => [ 'type' => 'long', ], ],]; diff --git a/lib/aws/Aws/data/codebuild/2016-10-06/paginators-1.json.php b/lib/aws/Aws/data/codebuild/2016-10-06/paginators-1.json.php new file mode 100644 index 0000000..31155c1 --- /dev/null +++ b/lib/aws/Aws/data/codebuild/2016-10-06/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/codebuild/2016-10-06/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/codebuild/2016-10-06/smoke.json.php b/lib/aws/Aws/data/codebuild/2016-10-06/smoke.json.php new file mode 100644 index 0000000..c2bc24c --- /dev/null +++ b/lib/aws/Aws/data/codebuild/2016-10-06/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/codebuild/2016-10-06/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListBuilds', 'input' => [], 'errorExpectedFromService' => false, ], ],]; diff --git a/lib/aws/Aws/data/codecommit/2015-04-13/api-2.json.php b/lib/aws/Aws/data/codecommit/2015-04-13/api-2.json.php new file mode 100644 index 0000000..84e8430 --- /dev/null +++ b/lib/aws/Aws/data/codecommit/2015-04-13/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/codecommit/2015-04-13/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-04-13', 'endpointPrefix' => 'codecommit', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'CodeCommit', 'serviceFullName' => 'AWS CodeCommit', 'serviceId' => 'CodeCommit', 'signatureVersion' => 'v4', 'targetPrefix' => 'CodeCommit_20150413', 'uid' => 'codecommit-2015-04-13', ], 'operations' => [ 'BatchGetRepositories' => [ 'name' => 'BatchGetRepositories', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetRepositoriesInput', ], 'output' => [ 'shape' => 'BatchGetRepositoriesOutput', ], 'errors' => [ [ 'shape' => 'RepositoryNamesRequiredException', ], [ 'shape' => 'MaximumRepositoryNamesExceededException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'CreateBranch' => [ 'name' => 'CreateBranch', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateBranchInput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'BranchNameRequiredException', ], [ 'shape' => 'BranchNameExistsException', ], [ 'shape' => 'InvalidBranchNameException', ], [ 'shape' => 'CommitIdRequiredException', ], [ 'shape' => 'CommitDoesNotExistException', ], [ 'shape' => 'InvalidCommitIdException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'CreateCommit' => [ 'name' => 'CreateCommit', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCommitInput', ], 'output' => [ 'shape' => 'CreateCommitOutput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'ParentCommitIdRequiredException', ], [ 'shape' => 'InvalidParentCommitIdException', ], [ 'shape' => 'ParentCommitDoesNotExistException', ], [ 'shape' => 'ParentCommitIdOutdatedException', ], [ 'shape' => 'BranchNameRequiredException', ], [ 'shape' => 'InvalidBranchNameException', ], [ 'shape' => 'BranchDoesNotExistException', ], [ 'shape' => 'BranchNameIsTagNameException', ], [ 'shape' => 'FileEntryRequiredException', ], [ 'shape' => 'MaximumFileEntriesExceededException', ], [ 'shape' => 'PutFileEntryConflictException', ], [ 'shape' => 'SourceFileOrContentRequiredException', ], [ 'shape' => 'FileContentAndSourceFileSpecifiedException', ], [ 'shape' => 'PathRequiredException', ], [ 'shape' => 'InvalidPathException', ], [ 'shape' => 'SamePathRequestException', ], [ 'shape' => 'FileDoesNotExistException', ], [ 'shape' => 'FileContentSizeLimitExceededException', ], [ 'shape' => 'FolderContentSizeLimitExceededException', ], [ 'shape' => 'InvalidDeletionParameterException', ], [ 'shape' => 'RestrictedSourceFileException', ], [ 'shape' => 'FileModeRequiredException', ], [ 'shape' => 'InvalidFileModeException', ], [ 'shape' => 'NameLengthExceededException', ], [ 'shape' => 'InvalidEmailException', ], [ 'shape' => 'CommitMessageLengthExceededException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], [ 'shape' => 'NoChangeException', ], [ 'shape' => 'FileNameConflictsWithDirectoryNameException', ], [ 'shape' => 'DirectoryNameConflictsWithFileNameException', ], [ 'shape' => 'FilePathConflictsWithSubmodulePathException', ], ], ], 'CreatePullRequest' => [ 'name' => 'CreatePullRequest', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePullRequestInput', ], 'output' => [ 'shape' => 'CreatePullRequestOutput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], [ 'shape' => 'ClientRequestTokenRequiredException', ], [ 'shape' => 'InvalidClientRequestTokenException', ], [ 'shape' => 'IdempotencyParameterMismatchException', ], [ 'shape' => 'ReferenceNameRequiredException', ], [ 'shape' => 'InvalidReferenceNameException', ], [ 'shape' => 'ReferenceDoesNotExistException', ], [ 'shape' => 'ReferenceTypeNotSupportedException', ], [ 'shape' => 'TitleRequiredException', ], [ 'shape' => 'InvalidTitleException', ], [ 'shape' => 'InvalidDescriptionException', ], [ 'shape' => 'TargetsRequiredException', ], [ 'shape' => 'InvalidTargetsException', ], [ 'shape' => 'TargetRequiredException', ], [ 'shape' => 'InvalidTargetException', ], [ 'shape' => 'MultipleRepositoriesInPullRequestException', ], [ 'shape' => 'MaximumOpenPullRequestsExceededException', ], [ 'shape' => 'SourceAndDestinationAreSameException', ], ], ], 'CreateRepository' => [ 'name' => 'CreateRepository', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRepositoryInput', ], 'output' => [ 'shape' => 'CreateRepositoryOutput', ], 'errors' => [ [ 'shape' => 'RepositoryNameExistsException', ], [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'InvalidRepositoryDescriptionException', ], [ 'shape' => 'RepositoryLimitExceededException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'DeleteBranch' => [ 'name' => 'DeleteBranch', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteBranchInput', ], 'output' => [ 'shape' => 'DeleteBranchOutput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'BranchNameRequiredException', ], [ 'shape' => 'InvalidBranchNameException', ], [ 'shape' => 'DefaultBranchCannotBeDeletedException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'DeleteCommentContent' => [ 'name' => 'DeleteCommentContent', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCommentContentInput', ], 'output' => [ 'shape' => 'DeleteCommentContentOutput', ], 'errors' => [ [ 'shape' => 'CommentDoesNotExistException', ], [ 'shape' => 'CommentIdRequiredException', ], [ 'shape' => 'InvalidCommentIdException', ], [ 'shape' => 'CommentDeletedException', ], ], ], 'DeleteFile' => [ 'name' => 'DeleteFile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteFileInput', ], 'output' => [ 'shape' => 'DeleteFileOutput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'ParentCommitIdRequiredException', ], [ 'shape' => 'InvalidParentCommitIdException', ], [ 'shape' => 'ParentCommitDoesNotExistException', ], [ 'shape' => 'ParentCommitIdOutdatedException', ], [ 'shape' => 'PathRequiredException', ], [ 'shape' => 'InvalidPathException', ], [ 'shape' => 'FileDoesNotExistException', ], [ 'shape' => 'BranchNameRequiredException', ], [ 'shape' => 'InvalidBranchNameException', ], [ 'shape' => 'BranchDoesNotExistException', ], [ 'shape' => 'BranchNameIsTagNameException', ], [ 'shape' => 'NameLengthExceededException', ], [ 'shape' => 'InvalidEmailException', ], [ 'shape' => 'CommitMessageLengthExceededException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'DeleteRepository' => [ 'name' => 'DeleteRepository', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRepositoryInput', ], 'output' => [ 'shape' => 'DeleteRepositoryOutput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'DescribePullRequestEvents' => [ 'name' => 'DescribePullRequestEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePullRequestEventsInput', ], 'output' => [ 'shape' => 'DescribePullRequestEventsOutput', ], 'errors' => [ [ 'shape' => 'PullRequestDoesNotExistException', ], [ 'shape' => 'InvalidPullRequestIdException', ], [ 'shape' => 'PullRequestIdRequiredException', ], [ 'shape' => 'InvalidPullRequestEventTypeException', ], [ 'shape' => 'InvalidActorArnException', ], [ 'shape' => 'ActorDoesNotExistException', ], [ 'shape' => 'InvalidMaxResultsException', ], [ 'shape' => 'InvalidContinuationTokenException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'GetBlob' => [ 'name' => 'GetBlob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetBlobInput', ], 'output' => [ 'shape' => 'GetBlobOutput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'BlobIdRequiredException', ], [ 'shape' => 'InvalidBlobIdException', ], [ 'shape' => 'BlobIdDoesNotExistException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], [ 'shape' => 'FileTooLargeException', ], ], ], 'GetBranch' => [ 'name' => 'GetBranch', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetBranchInput', ], 'output' => [ 'shape' => 'GetBranchOutput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'BranchNameRequiredException', ], [ 'shape' => 'InvalidBranchNameException', ], [ 'shape' => 'BranchDoesNotExistException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'GetComment' => [ 'name' => 'GetComment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCommentInput', ], 'output' => [ 'shape' => 'GetCommentOutput', ], 'errors' => [ [ 'shape' => 'CommentDoesNotExistException', ], [ 'shape' => 'CommentIdRequiredException', ], [ 'shape' => 'InvalidCommentIdException', ], [ 'shape' => 'CommentDeletedException', ], ], ], 'GetCommentsForComparedCommit' => [ 'name' => 'GetCommentsForComparedCommit', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCommentsForComparedCommitInput', ], 'output' => [ 'shape' => 'GetCommentsForComparedCommitOutput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'CommitIdRequiredException', ], [ 'shape' => 'InvalidCommitIdException', ], [ 'shape' => 'CommitDoesNotExistException', ], [ 'shape' => 'InvalidMaxResultsException', ], [ 'shape' => 'InvalidContinuationTokenException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'GetCommentsForPullRequest' => [ 'name' => 'GetCommentsForPullRequest', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCommentsForPullRequestInput', ], 'output' => [ 'shape' => 'GetCommentsForPullRequestOutput', ], 'errors' => [ [ 'shape' => 'PullRequestIdRequiredException', ], [ 'shape' => 'PullRequestDoesNotExistException', ], [ 'shape' => 'InvalidPullRequestIdException', ], [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'CommitIdRequiredException', ], [ 'shape' => 'InvalidCommitIdException', ], [ 'shape' => 'CommitDoesNotExistException', ], [ 'shape' => 'InvalidMaxResultsException', ], [ 'shape' => 'InvalidContinuationTokenException', ], [ 'shape' => 'RepositoryNotAssociatedWithPullRequestException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'GetCommit' => [ 'name' => 'GetCommit', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCommitInput', ], 'output' => [ 'shape' => 'GetCommitOutput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'CommitIdRequiredException', ], [ 'shape' => 'InvalidCommitIdException', ], [ 'shape' => 'CommitIdDoesNotExistException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'GetDifferences' => [ 'name' => 'GetDifferences', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDifferencesInput', ], 'output' => [ 'shape' => 'GetDifferencesOutput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'InvalidContinuationTokenException', ], [ 'shape' => 'InvalidMaxResultsException', ], [ 'shape' => 'InvalidCommitIdException', ], [ 'shape' => 'CommitRequiredException', ], [ 'shape' => 'InvalidCommitException', ], [ 'shape' => 'CommitDoesNotExistException', ], [ 'shape' => 'InvalidPathException', ], [ 'shape' => 'PathDoesNotExistException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'GetFile' => [ 'name' => 'GetFile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetFileInput', ], 'output' => [ 'shape' => 'GetFileOutput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'InvalidCommitException', ], [ 'shape' => 'CommitDoesNotExistException', ], [ 'shape' => 'PathRequiredException', ], [ 'shape' => 'InvalidPathException', ], [ 'shape' => 'FileDoesNotExistException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], [ 'shape' => 'FileTooLargeException', ], ], ], 'GetFolder' => [ 'name' => 'GetFolder', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetFolderInput', ], 'output' => [ 'shape' => 'GetFolderOutput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'InvalidCommitException', ], [ 'shape' => 'CommitDoesNotExistException', ], [ 'shape' => 'PathRequiredException', ], [ 'shape' => 'InvalidPathException', ], [ 'shape' => 'FolderDoesNotExistException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'GetMergeConflicts' => [ 'name' => 'GetMergeConflicts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetMergeConflictsInput', ], 'output' => [ 'shape' => 'GetMergeConflictsOutput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'MergeOptionRequiredException', ], [ 'shape' => 'InvalidMergeOptionException', ], [ 'shape' => 'InvalidDestinationCommitSpecifierException', ], [ 'shape' => 'InvalidSourceCommitSpecifierException', ], [ 'shape' => 'CommitRequiredException', ], [ 'shape' => 'CommitDoesNotExistException', ], [ 'shape' => 'InvalidCommitException', ], [ 'shape' => 'TipsDivergenceExceededException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'GetPullRequest' => [ 'name' => 'GetPullRequest', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPullRequestInput', ], 'output' => [ 'shape' => 'GetPullRequestOutput', ], 'errors' => [ [ 'shape' => 'PullRequestDoesNotExistException', ], [ 'shape' => 'InvalidPullRequestIdException', ], [ 'shape' => 'PullRequestIdRequiredException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'GetRepository' => [ 'name' => 'GetRepository', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRepositoryInput', ], 'output' => [ 'shape' => 'GetRepositoryOutput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'GetRepositoryTriggers' => [ 'name' => 'GetRepositoryTriggers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRepositoryTriggersInput', ], 'output' => [ 'shape' => 'GetRepositoryTriggersOutput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'ListBranches' => [ 'name' => 'ListBranches', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListBranchesInput', ], 'output' => [ 'shape' => 'ListBranchesOutput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], [ 'shape' => 'InvalidContinuationTokenException', ], ], ], 'ListPullRequests' => [ 'name' => 'ListPullRequests', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListPullRequestsInput', ], 'output' => [ 'shape' => 'ListPullRequestsOutput', ], 'errors' => [ [ 'shape' => 'InvalidPullRequestStatusException', ], [ 'shape' => 'InvalidAuthorArnException', ], [ 'shape' => 'AuthorDoesNotExistException', ], [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'InvalidMaxResultsException', ], [ 'shape' => 'InvalidContinuationTokenException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'ListRepositories' => [ 'name' => 'ListRepositories', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRepositoriesInput', ], 'output' => [ 'shape' => 'ListRepositoriesOutput', ], 'errors' => [ [ 'shape' => 'InvalidSortByException', ], [ 'shape' => 'InvalidOrderException', ], [ 'shape' => 'InvalidContinuationTokenException', ], ], ], 'MergePullRequestByFastForward' => [ 'name' => 'MergePullRequestByFastForward', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'MergePullRequestByFastForwardInput', ], 'output' => [ 'shape' => 'MergePullRequestByFastForwardOutput', ], 'errors' => [ [ 'shape' => 'ManualMergeRequiredException', ], [ 'shape' => 'PullRequestAlreadyClosedException', ], [ 'shape' => 'PullRequestDoesNotExistException', ], [ 'shape' => 'InvalidPullRequestIdException', ], [ 'shape' => 'PullRequestIdRequiredException', ], [ 'shape' => 'TipOfSourceReferenceIsDifferentException', ], [ 'shape' => 'ReferenceDoesNotExistException', ], [ 'shape' => 'InvalidCommitIdException', ], [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'PostCommentForComparedCommit' => [ 'name' => 'PostCommentForComparedCommit', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PostCommentForComparedCommitInput', ], 'output' => [ 'shape' => 'PostCommentForComparedCommitOutput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'ClientRequestTokenRequiredException', ], [ 'shape' => 'InvalidClientRequestTokenException', ], [ 'shape' => 'IdempotencyParameterMismatchException', ], [ 'shape' => 'CommentContentRequiredException', ], [ 'shape' => 'CommentContentSizeLimitExceededException', ], [ 'shape' => 'InvalidFileLocationException', ], [ 'shape' => 'InvalidRelativeFileVersionEnumException', ], [ 'shape' => 'PathRequiredException', ], [ 'shape' => 'InvalidFilePositionException', ], [ 'shape' => 'CommitIdRequiredException', ], [ 'shape' => 'InvalidCommitIdException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], [ 'shape' => 'BeforeCommitIdAndAfterCommitIdAreSameException', ], [ 'shape' => 'CommitDoesNotExistException', ], [ 'shape' => 'InvalidPathException', ], [ 'shape' => 'PathDoesNotExistException', ], ], 'idempotent' => true, ], 'PostCommentForPullRequest' => [ 'name' => 'PostCommentForPullRequest', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PostCommentForPullRequestInput', ], 'output' => [ 'shape' => 'PostCommentForPullRequestOutput', ], 'errors' => [ [ 'shape' => 'PullRequestDoesNotExistException', ], [ 'shape' => 'InvalidPullRequestIdException', ], [ 'shape' => 'PullRequestIdRequiredException', ], [ 'shape' => 'RepositoryNotAssociatedWithPullRequestException', ], [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'ClientRequestTokenRequiredException', ], [ 'shape' => 'InvalidClientRequestTokenException', ], [ 'shape' => 'IdempotencyParameterMismatchException', ], [ 'shape' => 'CommentContentRequiredException', ], [ 'shape' => 'CommentContentSizeLimitExceededException', ], [ 'shape' => 'InvalidFileLocationException', ], [ 'shape' => 'InvalidRelativeFileVersionEnumException', ], [ 'shape' => 'PathRequiredException', ], [ 'shape' => 'InvalidFilePositionException', ], [ 'shape' => 'CommitIdRequiredException', ], [ 'shape' => 'InvalidCommitIdException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], [ 'shape' => 'CommitDoesNotExistException', ], [ 'shape' => 'InvalidPathException', ], [ 'shape' => 'PathDoesNotExistException', ], [ 'shape' => 'PathRequiredException', ], [ 'shape' => 'BeforeCommitIdAndAfterCommitIdAreSameException', ], ], 'idempotent' => true, ], 'PostCommentReply' => [ 'name' => 'PostCommentReply', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PostCommentReplyInput', ], 'output' => [ 'shape' => 'PostCommentReplyOutput', ], 'errors' => [ [ 'shape' => 'ClientRequestTokenRequiredException', ], [ 'shape' => 'InvalidClientRequestTokenException', ], [ 'shape' => 'IdempotencyParameterMismatchException', ], [ 'shape' => 'CommentContentRequiredException', ], [ 'shape' => 'CommentContentSizeLimitExceededException', ], [ 'shape' => 'CommentDoesNotExistException', ], [ 'shape' => 'CommentIdRequiredException', ], [ 'shape' => 'InvalidCommentIdException', ], ], 'idempotent' => true, ], 'PutFile' => [ 'name' => 'PutFile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutFileInput', ], 'output' => [ 'shape' => 'PutFileOutput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'ParentCommitIdRequiredException', ], [ 'shape' => 'InvalidParentCommitIdException', ], [ 'shape' => 'ParentCommitDoesNotExistException', ], [ 'shape' => 'ParentCommitIdOutdatedException', ], [ 'shape' => 'FileContentRequiredException', ], [ 'shape' => 'FileContentSizeLimitExceededException', ], [ 'shape' => 'FolderContentSizeLimitExceededException', ], [ 'shape' => 'PathRequiredException', ], [ 'shape' => 'InvalidPathException', ], [ 'shape' => 'BranchNameRequiredException', ], [ 'shape' => 'InvalidBranchNameException', ], [ 'shape' => 'BranchDoesNotExistException', ], [ 'shape' => 'BranchNameIsTagNameException', ], [ 'shape' => 'InvalidFileModeException', ], [ 'shape' => 'NameLengthExceededException', ], [ 'shape' => 'InvalidEmailException', ], [ 'shape' => 'CommitMessageLengthExceededException', ], [ 'shape' => 'InvalidDeletionParameterException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], [ 'shape' => 'SameFileContentException', ], [ 'shape' => 'FileNameConflictsWithDirectoryNameException', ], [ 'shape' => 'DirectoryNameConflictsWithFileNameException', ], [ 'shape' => 'FilePathConflictsWithSubmodulePathException', ], ], ], 'PutRepositoryTriggers' => [ 'name' => 'PutRepositoryTriggers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutRepositoryTriggersInput', ], 'output' => [ 'shape' => 'PutRepositoryTriggersOutput', ], 'errors' => [ [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'RepositoryTriggersListRequiredException', ], [ 'shape' => 'MaximumRepositoryTriggersExceededException', ], [ 'shape' => 'InvalidRepositoryTriggerNameException', ], [ 'shape' => 'InvalidRepositoryTriggerDestinationArnException', ], [ 'shape' => 'InvalidRepositoryTriggerRegionException', ], [ 'shape' => 'InvalidRepositoryTriggerCustomDataException', ], [ 'shape' => 'MaximumBranchesExceededException', ], [ 'shape' => 'InvalidRepositoryTriggerBranchNameException', ], [ 'shape' => 'InvalidRepositoryTriggerEventsException', ], [ 'shape' => 'RepositoryTriggerNameRequiredException', ], [ 'shape' => 'RepositoryTriggerDestinationArnRequiredException', ], [ 'shape' => 'RepositoryTriggerBranchNameListRequiredException', ], [ 'shape' => 'RepositoryTriggerEventsListRequiredException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'TestRepositoryTriggers' => [ 'name' => 'TestRepositoryTriggers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TestRepositoryTriggersInput', ], 'output' => [ 'shape' => 'TestRepositoryTriggersOutput', ], 'errors' => [ [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'RepositoryTriggersListRequiredException', ], [ 'shape' => 'MaximumRepositoryTriggersExceededException', ], [ 'shape' => 'InvalidRepositoryTriggerNameException', ], [ 'shape' => 'InvalidRepositoryTriggerDestinationArnException', ], [ 'shape' => 'InvalidRepositoryTriggerRegionException', ], [ 'shape' => 'InvalidRepositoryTriggerCustomDataException', ], [ 'shape' => 'MaximumBranchesExceededException', ], [ 'shape' => 'InvalidRepositoryTriggerBranchNameException', ], [ 'shape' => 'InvalidRepositoryTriggerEventsException', ], [ 'shape' => 'RepositoryTriggerNameRequiredException', ], [ 'shape' => 'RepositoryTriggerDestinationArnRequiredException', ], [ 'shape' => 'RepositoryTriggerBranchNameListRequiredException', ], [ 'shape' => 'RepositoryTriggerEventsListRequiredException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'UpdateComment' => [ 'name' => 'UpdateComment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateCommentInput', ], 'output' => [ 'shape' => 'UpdateCommentOutput', ], 'errors' => [ [ 'shape' => 'CommentContentRequiredException', ], [ 'shape' => 'CommentContentSizeLimitExceededException', ], [ 'shape' => 'CommentDoesNotExistException', ], [ 'shape' => 'CommentIdRequiredException', ], [ 'shape' => 'InvalidCommentIdException', ], [ 'shape' => 'CommentNotCreatedByCallerException', ], [ 'shape' => 'CommentDeletedException', ], ], ], 'UpdateDefaultBranch' => [ 'name' => 'UpdateDefaultBranch', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateDefaultBranchInput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'BranchNameRequiredException', ], [ 'shape' => 'InvalidBranchNameException', ], [ 'shape' => 'BranchDoesNotExistException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'UpdatePullRequestDescription' => [ 'name' => 'UpdatePullRequestDescription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdatePullRequestDescriptionInput', ], 'output' => [ 'shape' => 'UpdatePullRequestDescriptionOutput', ], 'errors' => [ [ 'shape' => 'PullRequestDoesNotExistException', ], [ 'shape' => 'InvalidPullRequestIdException', ], [ 'shape' => 'PullRequestIdRequiredException', ], [ 'shape' => 'InvalidDescriptionException', ], [ 'shape' => 'PullRequestAlreadyClosedException', ], ], ], 'UpdatePullRequestStatus' => [ 'name' => 'UpdatePullRequestStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdatePullRequestStatusInput', ], 'output' => [ 'shape' => 'UpdatePullRequestStatusOutput', ], 'errors' => [ [ 'shape' => 'PullRequestDoesNotExistException', ], [ 'shape' => 'InvalidPullRequestIdException', ], [ 'shape' => 'PullRequestIdRequiredException', ], [ 'shape' => 'InvalidPullRequestStatusUpdateException', ], [ 'shape' => 'InvalidPullRequestStatusException', ], [ 'shape' => 'PullRequestStatusRequiredException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'UpdatePullRequestTitle' => [ 'name' => 'UpdatePullRequestTitle', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdatePullRequestTitleInput', ], 'output' => [ 'shape' => 'UpdatePullRequestTitleOutput', ], 'errors' => [ [ 'shape' => 'PullRequestDoesNotExistException', ], [ 'shape' => 'InvalidPullRequestIdException', ], [ 'shape' => 'PullRequestIdRequiredException', ], [ 'shape' => 'TitleRequiredException', ], [ 'shape' => 'InvalidTitleException', ], [ 'shape' => 'PullRequestAlreadyClosedException', ], ], ], 'UpdateRepositoryDescription' => [ 'name' => 'UpdateRepositoryDescription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRepositoryDescriptionInput', ], 'errors' => [ [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'InvalidRepositoryNameException', ], [ 'shape' => 'InvalidRepositoryDescriptionException', ], [ 'shape' => 'EncryptionIntegrityChecksFailedException', ], [ 'shape' => 'EncryptionKeyAccessDeniedException', ], [ 'shape' => 'EncryptionKeyDisabledException', ], [ 'shape' => 'EncryptionKeyNotFoundException', ], [ 'shape' => 'EncryptionKeyUnavailableException', ], ], ], 'UpdateRepositoryName' => [ 'name' => 'UpdateRepositoryName', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRepositoryNameInput', ], 'errors' => [ [ 'shape' => 'RepositoryDoesNotExistException', ], [ 'shape' => 'RepositoryNameExistsException', ], [ 'shape' => 'RepositoryNameRequiredException', ], [ 'shape' => 'InvalidRepositoryNameException', ], ], ], ], 'shapes' => [ 'AccountId' => [ 'type' => 'string', ], 'ActorDoesNotExistException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'AdditionalData' => [ 'type' => 'string', ], 'Arn' => [ 'type' => 'string', ], 'AuthorDoesNotExistException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'BatchGetRepositoriesInput' => [ 'type' => 'structure', 'required' => [ 'repositoryNames', ], 'members' => [ 'repositoryNames' => [ 'shape' => 'RepositoryNameList', ], ], ], 'BatchGetRepositoriesOutput' => [ 'type' => 'structure', 'members' => [ 'repositories' => [ 'shape' => 'RepositoryMetadataList', ], 'repositoriesNotFound' => [ 'shape' => 'RepositoryNotFoundList', ], ], ], 'BeforeCommitIdAndAfterCommitIdAreSameException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'BlobIdDoesNotExistException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'BlobIdRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'BlobMetadata' => [ 'type' => 'structure', 'members' => [ 'blobId' => [ 'shape' => 'ObjectId', ], 'path' => [ 'shape' => 'Path', ], 'mode' => [ 'shape' => 'Mode', ], ], ], 'BranchDoesNotExistException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'BranchInfo' => [ 'type' => 'structure', 'members' => [ 'branchName' => [ 'shape' => 'BranchName', ], 'commitId' => [ 'shape' => 'CommitId', ], ], ], 'BranchName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'BranchNameExistsException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'BranchNameIsTagNameException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'BranchNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BranchName', ], ], 'BranchNameRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ChangeTypeEnum' => [ 'type' => 'string', 'enum' => [ 'A', 'M', 'D', ], ], 'ClientRequestToken' => [ 'type' => 'string', ], 'ClientRequestTokenRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'CloneUrlHttp' => [ 'type' => 'string', ], 'CloneUrlSsh' => [ 'type' => 'string', ], 'Comment' => [ 'type' => 'structure', 'members' => [ 'commentId' => [ 'shape' => 'CommentId', ], 'content' => [ 'shape' => 'Content', ], 'inReplyTo' => [ 'shape' => 'CommentId', ], 'creationDate' => [ 'shape' => 'CreationDate', ], 'lastModifiedDate' => [ 'shape' => 'LastModifiedDate', ], 'authorArn' => [ 'shape' => 'Arn', ], 'deleted' => [ 'shape' => 'IsCommentDeleted', ], 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', ], ], ], 'CommentContentRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'CommentContentSizeLimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'CommentDeletedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'CommentDoesNotExistException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'CommentId' => [ 'type' => 'string', ], 'CommentIdRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'CommentNotCreatedByCallerException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Comments' => [ 'type' => 'list', 'member' => [ 'shape' => 'Comment', ], ], 'CommentsForComparedCommit' => [ 'type' => 'structure', 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'beforeCommitId' => [ 'shape' => 'CommitId', ], 'afterCommitId' => [ 'shape' => 'CommitId', ], 'beforeBlobId' => [ 'shape' => 'ObjectId', ], 'afterBlobId' => [ 'shape' => 'ObjectId', ], 'location' => [ 'shape' => 'Location', ], 'comments' => [ 'shape' => 'Comments', ], ], ], 'CommentsForComparedCommitData' => [ 'type' => 'list', 'member' => [ 'shape' => 'CommentsForComparedCommit', ], ], 'CommentsForPullRequest' => [ 'type' => 'structure', 'members' => [ 'pullRequestId' => [ 'shape' => 'PullRequestId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'beforeCommitId' => [ 'shape' => 'CommitId', ], 'afterCommitId' => [ 'shape' => 'CommitId', ], 'beforeBlobId' => [ 'shape' => 'ObjectId', ], 'afterBlobId' => [ 'shape' => 'ObjectId', ], 'location' => [ 'shape' => 'Location', ], 'comments' => [ 'shape' => 'Comments', ], ], ], 'CommentsForPullRequestData' => [ 'type' => 'list', 'member' => [ 'shape' => 'CommentsForPullRequest', ], ], 'Commit' => [ 'type' => 'structure', 'members' => [ 'commitId' => [ 'shape' => 'ObjectId', ], 'treeId' => [ 'shape' => 'ObjectId', ], 'parents' => [ 'shape' => 'ParentList', ], 'message' => [ 'shape' => 'Message', ], 'author' => [ 'shape' => 'UserInfo', ], 'committer' => [ 'shape' => 'UserInfo', ], 'additionalData' => [ 'shape' => 'AdditionalData', ], ], ], 'CommitDoesNotExistException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'CommitId' => [ 'type' => 'string', ], 'CommitIdDoesNotExistException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'CommitIdRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'CommitMessageLengthExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'CommitName' => [ 'type' => 'string', ], 'CommitRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Content' => [ 'type' => 'string', ], 'CreateBranchInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'branchName', 'commitId', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'branchName' => [ 'shape' => 'BranchName', ], 'commitId' => [ 'shape' => 'CommitId', ], ], ], 'CreateCommitInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'branchName', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'branchName' => [ 'shape' => 'BranchName', ], 'parentCommitId' => [ 'shape' => 'CommitId', ], 'authorName' => [ 'shape' => 'Name', ], 'email' => [ 'shape' => 'Email', ], 'commitMessage' => [ 'shape' => 'Message', ], 'keepEmptyFolders' => [ 'shape' => 'KeepEmptyFolders', ], 'putFiles' => [ 'shape' => 'PutFileEntries', ], 'deleteFiles' => [ 'shape' => 'DeleteFileEntries', ], 'setFileModes' => [ 'shape' => 'SetFileModeEntries', ], ], ], 'CreateCommitOutput' => [ 'type' => 'structure', 'members' => [ 'commitId' => [ 'shape' => 'ObjectId', ], 'treeId' => [ 'shape' => 'ObjectId', ], 'filesAdded' => [ 'shape' => 'FilesMetadata', ], 'filesUpdated' => [ 'shape' => 'FilesMetadata', ], 'filesDeleted' => [ 'shape' => 'FilesMetadata', ], ], ], 'CreatePullRequestInput' => [ 'type' => 'structure', 'required' => [ 'title', 'targets', ], 'members' => [ 'title' => [ 'shape' => 'Title', ], 'description' => [ 'shape' => 'Description', ], 'targets' => [ 'shape' => 'TargetList', ], 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'CreatePullRequestOutput' => [ 'type' => 'structure', 'required' => [ 'pullRequest', ], 'members' => [ 'pullRequest' => [ 'shape' => 'PullRequest', ], ], ], 'CreateRepositoryInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'repositoryDescription' => [ 'shape' => 'RepositoryDescription', ], ], ], 'CreateRepositoryOutput' => [ 'type' => 'structure', 'members' => [ 'repositoryMetadata' => [ 'shape' => 'RepositoryMetadata', ], ], ], 'CreationDate' => [ 'type' => 'timestamp', ], 'Date' => [ 'type' => 'string', ], 'DefaultBranchCannotBeDeletedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'DeleteBranchInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'branchName', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'branchName' => [ 'shape' => 'BranchName', ], ], ], 'DeleteBranchOutput' => [ 'type' => 'structure', 'members' => [ 'deletedBranch' => [ 'shape' => 'BranchInfo', ], ], ], 'DeleteCommentContentInput' => [ 'type' => 'structure', 'required' => [ 'commentId', ], 'members' => [ 'commentId' => [ 'shape' => 'CommentId', ], ], ], 'DeleteCommentContentOutput' => [ 'type' => 'structure', 'members' => [ 'comment' => [ 'shape' => 'Comment', ], ], ], 'DeleteFileEntries' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeleteFileEntry', ], ], 'DeleteFileEntry' => [ 'type' => 'structure', 'required' => [ 'filePath', ], 'members' => [ 'filePath' => [ 'shape' => 'Path', ], ], ], 'DeleteFileInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'branchName', 'filePath', 'parentCommitId', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'branchName' => [ 'shape' => 'BranchName', ], 'filePath' => [ 'shape' => 'Path', ], 'parentCommitId' => [ 'shape' => 'CommitId', ], 'keepEmptyFolders' => [ 'shape' => 'KeepEmptyFolders', ], 'commitMessage' => [ 'shape' => 'Message', ], 'name' => [ 'shape' => 'Name', ], 'email' => [ 'shape' => 'Email', ], ], ], 'DeleteFileOutput' => [ 'type' => 'structure', 'required' => [ 'commitId', 'blobId', 'treeId', 'filePath', ], 'members' => [ 'commitId' => [ 'shape' => 'ObjectId', ], 'blobId' => [ 'shape' => 'ObjectId', ], 'treeId' => [ 'shape' => 'ObjectId', ], 'filePath' => [ 'shape' => 'Path', ], ], ], 'DeleteRepositoryInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], ], ], 'DeleteRepositoryOutput' => [ 'type' => 'structure', 'members' => [ 'repositoryId' => [ 'shape' => 'RepositoryId', ], ], ], 'DescribePullRequestEventsInput' => [ 'type' => 'structure', 'required' => [ 'pullRequestId', ], 'members' => [ 'pullRequestId' => [ 'shape' => 'PullRequestId', ], 'pullRequestEventType' => [ 'shape' => 'PullRequestEventType', ], 'actorArn' => [ 'shape' => 'Arn', ], 'nextToken' => [ 'shape' => 'NextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'DescribePullRequestEventsOutput' => [ 'type' => 'structure', 'required' => [ 'pullRequestEvents', ], 'members' => [ 'pullRequestEvents' => [ 'shape' => 'PullRequestEventList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'Description' => [ 'type' => 'string', 'max' => 10240, ], 'Difference' => [ 'type' => 'structure', 'members' => [ 'beforeBlob' => [ 'shape' => 'BlobMetadata', ], 'afterBlob' => [ 'shape' => 'BlobMetadata', ], 'changeType' => [ 'shape' => 'ChangeTypeEnum', ], ], ], 'DifferenceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Difference', ], ], 'DirectoryNameConflictsWithFileNameException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Email' => [ 'type' => 'string', ], 'EncryptionIntegrityChecksFailedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, 'fault' => true, ], 'EncryptionKeyAccessDeniedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'EncryptionKeyDisabledException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'EncryptionKeyNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'EncryptionKeyUnavailableException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'EventDate' => [ 'type' => 'timestamp', ], 'File' => [ 'type' => 'structure', 'members' => [ 'blobId' => [ 'shape' => 'ObjectId', ], 'absolutePath' => [ 'shape' => 'Path', ], 'relativePath' => [ 'shape' => 'Path', ], 'fileMode' => [ 'shape' => 'FileModeTypeEnum', ], ], ], 'FileContent' => [ 'type' => 'blob', 'max' => 6291456, ], 'FileContentAndSourceFileSpecifiedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'FileContentRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'FileContentSizeLimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'FileDoesNotExistException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'FileEntryRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'FileList' => [ 'type' => 'list', 'member' => [ 'shape' => 'File', ], ], 'FileMetadata' => [ 'type' => 'structure', 'members' => [ 'absolutePath' => [ 'shape' => 'Path', ], 'blobId' => [ 'shape' => 'ObjectId', ], 'fileMode' => [ 'shape' => 'FileModeTypeEnum', ], ], ], 'FileModeRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'FileModeTypeEnum' => [ 'type' => 'string', 'enum' => [ 'EXECUTABLE', 'NORMAL', 'SYMLINK', ], ], 'FileNameConflictsWithDirectoryNameException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'FilePathConflictsWithSubmodulePathException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'FileTooLargeException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'FilesMetadata' => [ 'type' => 'list', 'member' => [ 'shape' => 'FileMetadata', ], ], 'Folder' => [ 'type' => 'structure', 'members' => [ 'treeId' => [ 'shape' => 'ObjectId', ], 'absolutePath' => [ 'shape' => 'Path', ], 'relativePath' => [ 'shape' => 'Path', ], ], ], 'FolderContentSizeLimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'FolderDoesNotExistException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'FolderList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Folder', ], ], 'GetBlobInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'blobId', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'blobId' => [ 'shape' => 'ObjectId', ], ], ], 'GetBlobOutput' => [ 'type' => 'structure', 'required' => [ 'content', ], 'members' => [ 'content' => [ 'shape' => 'blob', ], ], ], 'GetBranchInput' => [ 'type' => 'structure', 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'branchName' => [ 'shape' => 'BranchName', ], ], ], 'GetBranchOutput' => [ 'type' => 'structure', 'members' => [ 'branch' => [ 'shape' => 'BranchInfo', ], ], ], 'GetCommentInput' => [ 'type' => 'structure', 'required' => [ 'commentId', ], 'members' => [ 'commentId' => [ 'shape' => 'CommentId', ], ], ], 'GetCommentOutput' => [ 'type' => 'structure', 'members' => [ 'comment' => [ 'shape' => 'Comment', ], ], ], 'GetCommentsForComparedCommitInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'afterCommitId', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'beforeCommitId' => [ 'shape' => 'CommitId', ], 'afterCommitId' => [ 'shape' => 'CommitId', ], 'nextToken' => [ 'shape' => 'NextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'GetCommentsForComparedCommitOutput' => [ 'type' => 'structure', 'members' => [ 'commentsForComparedCommitData' => [ 'shape' => 'CommentsForComparedCommitData', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetCommentsForPullRequestInput' => [ 'type' => 'structure', 'required' => [ 'pullRequestId', ], 'members' => [ 'pullRequestId' => [ 'shape' => 'PullRequestId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'beforeCommitId' => [ 'shape' => 'CommitId', ], 'afterCommitId' => [ 'shape' => 'CommitId', ], 'nextToken' => [ 'shape' => 'NextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'GetCommentsForPullRequestOutput' => [ 'type' => 'structure', 'members' => [ 'commentsForPullRequestData' => [ 'shape' => 'CommentsForPullRequestData', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetCommitInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'commitId', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'commitId' => [ 'shape' => 'ObjectId', ], ], ], 'GetCommitOutput' => [ 'type' => 'structure', 'required' => [ 'commit', ], 'members' => [ 'commit' => [ 'shape' => 'Commit', ], ], ], 'GetDifferencesInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'afterCommitSpecifier', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'beforeCommitSpecifier' => [ 'shape' => 'CommitName', ], 'afterCommitSpecifier' => [ 'shape' => 'CommitName', ], 'beforePath' => [ 'shape' => 'Path', ], 'afterPath' => [ 'shape' => 'Path', ], 'MaxResults' => [ 'shape' => 'Limit', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetDifferencesOutput' => [ 'type' => 'structure', 'members' => [ 'differences' => [ 'shape' => 'DifferenceList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetFileInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'filePath', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'commitSpecifier' => [ 'shape' => 'CommitName', ], 'filePath' => [ 'shape' => 'Path', ], ], ], 'GetFileOutput' => [ 'type' => 'structure', 'required' => [ 'commitId', 'blobId', 'filePath', 'fileMode', 'fileSize', 'fileContent', ], 'members' => [ 'commitId' => [ 'shape' => 'ObjectId', ], 'blobId' => [ 'shape' => 'ObjectId', ], 'filePath' => [ 'shape' => 'Path', ], 'fileMode' => [ 'shape' => 'FileModeTypeEnum', ], 'fileSize' => [ 'shape' => 'ObjectSize', ], 'fileContent' => [ 'shape' => 'FileContent', ], ], ], 'GetFolderInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'folderPath', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'commitSpecifier' => [ 'shape' => 'CommitName', ], 'folderPath' => [ 'shape' => 'Path', ], ], ], 'GetFolderOutput' => [ 'type' => 'structure', 'required' => [ 'commitId', 'folderPath', ], 'members' => [ 'commitId' => [ 'shape' => 'ObjectId', ], 'folderPath' => [ 'shape' => 'Path', ], 'treeId' => [ 'shape' => 'ObjectId', ], 'subFolders' => [ 'shape' => 'FolderList', ], 'files' => [ 'shape' => 'FileList', ], 'symbolicLinks' => [ 'shape' => 'SymbolicLinkList', ], 'subModules' => [ 'shape' => 'SubModuleList', ], ], ], 'GetMergeConflictsInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'destinationCommitSpecifier', 'sourceCommitSpecifier', 'mergeOption', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'destinationCommitSpecifier' => [ 'shape' => 'CommitName', ], 'sourceCommitSpecifier' => [ 'shape' => 'CommitName', ], 'mergeOption' => [ 'shape' => 'MergeOptionTypeEnum', ], ], ], 'GetMergeConflictsOutput' => [ 'type' => 'structure', 'required' => [ 'mergeable', 'destinationCommitId', 'sourceCommitId', ], 'members' => [ 'mergeable' => [ 'shape' => 'IsMergeable', ], 'destinationCommitId' => [ 'shape' => 'CommitId', ], 'sourceCommitId' => [ 'shape' => 'CommitId', ], ], ], 'GetPullRequestInput' => [ 'type' => 'structure', 'required' => [ 'pullRequestId', ], 'members' => [ 'pullRequestId' => [ 'shape' => 'PullRequestId', ], ], ], 'GetPullRequestOutput' => [ 'type' => 'structure', 'required' => [ 'pullRequest', ], 'members' => [ 'pullRequest' => [ 'shape' => 'PullRequest', ], ], ], 'GetRepositoryInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], ], ], 'GetRepositoryOutput' => [ 'type' => 'structure', 'members' => [ 'repositoryMetadata' => [ 'shape' => 'RepositoryMetadata', ], ], ], 'GetRepositoryTriggersInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], ], ], 'GetRepositoryTriggersOutput' => [ 'type' => 'structure', 'members' => [ 'configurationId' => [ 'shape' => 'RepositoryTriggersConfigurationId', ], 'triggers' => [ 'shape' => 'RepositoryTriggersList', ], ], ], 'IdempotencyParameterMismatchException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidActorArnException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidAuthorArnException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidBlobIdException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidBranchNameException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidClientRequestTokenException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidCommentIdException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidCommitException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidCommitIdException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidContinuationTokenException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidDeletionParameterException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidDescriptionException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidDestinationCommitSpecifierException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidEmailException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidFileLocationException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidFileModeException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidFilePositionException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidMaxResultsException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidMergeOptionException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidOrderException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidParentCommitIdException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidPathException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidPullRequestEventTypeException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidPullRequestIdException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidPullRequestStatusException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidPullRequestStatusUpdateException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidReferenceNameException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidRelativeFileVersionEnumException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidRepositoryDescriptionException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidRepositoryNameException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidRepositoryTriggerBranchNameException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidRepositoryTriggerCustomDataException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidRepositoryTriggerDestinationArnException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidRepositoryTriggerEventsException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidRepositoryTriggerNameException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidRepositoryTriggerRegionException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidSortByException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidSourceCommitSpecifierException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidTargetException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidTargetsException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidTitleException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'IsCommentDeleted' => [ 'type' => 'boolean', ], 'IsMergeable' => [ 'type' => 'boolean', ], 'IsMerged' => [ 'type' => 'boolean', ], 'IsMove' => [ 'type' => 'boolean', ], 'KeepEmptyFolders' => [ 'type' => 'boolean', ], 'LastModifiedDate' => [ 'type' => 'timestamp', ], 'Limit' => [ 'type' => 'integer', 'box' => true, ], 'ListBranchesInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListBranchesOutput' => [ 'type' => 'structure', 'members' => [ 'branches' => [ 'shape' => 'BranchNameList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPullRequestsInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'authorArn' => [ 'shape' => 'Arn', ], 'pullRequestStatus' => [ 'shape' => 'PullRequestStatusEnum', ], 'nextToken' => [ 'shape' => 'NextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListPullRequestsOutput' => [ 'type' => 'structure', 'required' => [ 'pullRequestIds', ], 'members' => [ 'pullRequestIds' => [ 'shape' => 'PullRequestIdList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListRepositoriesInput' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', ], 'sortBy' => [ 'shape' => 'SortByEnum', ], 'order' => [ 'shape' => 'OrderEnum', ], ], ], 'ListRepositoriesOutput' => [ 'type' => 'structure', 'members' => [ 'repositories' => [ 'shape' => 'RepositoryNameIdPairList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'Location' => [ 'type' => 'structure', 'members' => [ 'filePath' => [ 'shape' => 'Path', ], 'filePosition' => [ 'shape' => 'Position', ], 'relativeFileVersion' => [ 'shape' => 'RelativeFileVersionEnum', ], ], ], 'ManualMergeRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'MaxResults' => [ 'type' => 'integer', ], 'MaximumBranchesExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'MaximumFileEntriesExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'MaximumOpenPullRequestsExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'MaximumRepositoryNamesExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'MaximumRepositoryTriggersExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'MergeMetadata' => [ 'type' => 'structure', 'members' => [ 'isMerged' => [ 'shape' => 'IsMerged', ], 'mergedBy' => [ 'shape' => 'Arn', ], ], ], 'MergeOptionRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'MergeOptionTypeEnum' => [ 'type' => 'string', 'enum' => [ 'FAST_FORWARD_MERGE', ], ], 'MergePullRequestByFastForwardInput' => [ 'type' => 'structure', 'required' => [ 'pullRequestId', 'repositoryName', ], 'members' => [ 'pullRequestId' => [ 'shape' => 'PullRequestId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'sourceCommitId' => [ 'shape' => 'CommitId', ], ], ], 'MergePullRequestByFastForwardOutput' => [ 'type' => 'structure', 'members' => [ 'pullRequest' => [ 'shape' => 'PullRequest', ], ], ], 'Message' => [ 'type' => 'string', ], 'Mode' => [ 'type' => 'string', ], 'MultipleRepositoriesInPullRequestException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Name' => [ 'type' => 'string', ], 'NameLengthExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'NextToken' => [ 'type' => 'string', ], 'NoChangeException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ObjectId' => [ 'type' => 'string', ], 'ObjectSize' => [ 'type' => 'long', ], 'OrderEnum' => [ 'type' => 'string', 'enum' => [ 'ascending', 'descending', ], ], 'ParentCommitDoesNotExistException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ParentCommitIdOutdatedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ParentCommitIdRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ParentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ObjectId', ], ], 'Path' => [ 'type' => 'string', ], 'PathDoesNotExistException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'PathRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Position' => [ 'type' => 'long', ], 'PostCommentForComparedCommitInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'afterCommitId', 'content', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'beforeCommitId' => [ 'shape' => 'CommitId', ], 'afterCommitId' => [ 'shape' => 'CommitId', ], 'location' => [ 'shape' => 'Location', ], 'content' => [ 'shape' => 'Content', ], 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'PostCommentForComparedCommitOutput' => [ 'type' => 'structure', 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'beforeCommitId' => [ 'shape' => 'CommitId', ], 'afterCommitId' => [ 'shape' => 'CommitId', ], 'beforeBlobId' => [ 'shape' => 'ObjectId', ], 'afterBlobId' => [ 'shape' => 'ObjectId', ], 'location' => [ 'shape' => 'Location', ], 'comment' => [ 'shape' => 'Comment', ], ], ], 'PostCommentForPullRequestInput' => [ 'type' => 'structure', 'required' => [ 'pullRequestId', 'repositoryName', 'beforeCommitId', 'afterCommitId', 'content', ], 'members' => [ 'pullRequestId' => [ 'shape' => 'PullRequestId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'beforeCommitId' => [ 'shape' => 'CommitId', ], 'afterCommitId' => [ 'shape' => 'CommitId', ], 'location' => [ 'shape' => 'Location', ], 'content' => [ 'shape' => 'Content', ], 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'PostCommentForPullRequestOutput' => [ 'type' => 'structure', 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'pullRequestId' => [ 'shape' => 'PullRequestId', ], 'beforeCommitId' => [ 'shape' => 'CommitId', ], 'afterCommitId' => [ 'shape' => 'CommitId', ], 'beforeBlobId' => [ 'shape' => 'ObjectId', ], 'afterBlobId' => [ 'shape' => 'ObjectId', ], 'location' => [ 'shape' => 'Location', ], 'comment' => [ 'shape' => 'Comment', ], ], ], 'PostCommentReplyInput' => [ 'type' => 'structure', 'required' => [ 'inReplyTo', 'content', ], 'members' => [ 'inReplyTo' => [ 'shape' => 'CommentId', ], 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'content' => [ 'shape' => 'Content', ], ], ], 'PostCommentReplyOutput' => [ 'type' => 'structure', 'members' => [ 'comment' => [ 'shape' => 'Comment', ], ], ], 'PullRequest' => [ 'type' => 'structure', 'members' => [ 'pullRequestId' => [ 'shape' => 'PullRequestId', ], 'title' => [ 'shape' => 'Title', ], 'description' => [ 'shape' => 'Description', ], 'lastActivityDate' => [ 'shape' => 'LastModifiedDate', ], 'creationDate' => [ 'shape' => 'CreationDate', ], 'pullRequestStatus' => [ 'shape' => 'PullRequestStatusEnum', ], 'authorArn' => [ 'shape' => 'Arn', ], 'pullRequestTargets' => [ 'shape' => 'PullRequestTargetList', ], 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', ], ], ], 'PullRequestAlreadyClosedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'PullRequestCreatedEventMetadata' => [ 'type' => 'structure', 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'sourceCommitId' => [ 'shape' => 'CommitId', ], 'destinationCommitId' => [ 'shape' => 'CommitId', ], 'mergeBase' => [ 'shape' => 'CommitId', ], ], ], 'PullRequestDoesNotExistException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'PullRequestEvent' => [ 'type' => 'structure', 'members' => [ 'pullRequestId' => [ 'shape' => 'PullRequestId', ], 'eventDate' => [ 'shape' => 'EventDate', ], 'pullRequestEventType' => [ 'shape' => 'PullRequestEventType', ], 'actorArn' => [ 'shape' => 'Arn', ], 'pullRequestCreatedEventMetadata' => [ 'shape' => 'PullRequestCreatedEventMetadata', ], 'pullRequestStatusChangedEventMetadata' => [ 'shape' => 'PullRequestStatusChangedEventMetadata', ], 'pullRequestSourceReferenceUpdatedEventMetadata' => [ 'shape' => 'PullRequestSourceReferenceUpdatedEventMetadata', ], 'pullRequestMergedStateChangedEventMetadata' => [ 'shape' => 'PullRequestMergedStateChangedEventMetadata', ], ], ], 'PullRequestEventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PullRequestEvent', ], ], 'PullRequestEventType' => [ 'type' => 'string', 'enum' => [ 'PULL_REQUEST_CREATED', 'PULL_REQUEST_STATUS_CHANGED', 'PULL_REQUEST_SOURCE_REFERENCE_UPDATED', 'PULL_REQUEST_MERGE_STATE_CHANGED', ], ], 'PullRequestId' => [ 'type' => 'string', ], 'PullRequestIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PullRequestId', ], ], 'PullRequestIdRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'PullRequestMergedStateChangedEventMetadata' => [ 'type' => 'structure', 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'destinationReference' => [ 'shape' => 'ReferenceName', ], 'mergeMetadata' => [ 'shape' => 'MergeMetadata', ], ], ], 'PullRequestSourceReferenceUpdatedEventMetadata' => [ 'type' => 'structure', 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'beforeCommitId' => [ 'shape' => 'CommitId', ], 'afterCommitId' => [ 'shape' => 'CommitId', ], 'mergeBase' => [ 'shape' => 'CommitId', ], ], ], 'PullRequestStatusChangedEventMetadata' => [ 'type' => 'structure', 'members' => [ 'pullRequestStatus' => [ 'shape' => 'PullRequestStatusEnum', ], ], ], 'PullRequestStatusEnum' => [ 'type' => 'string', 'enum' => [ 'OPEN', 'CLOSED', ], ], 'PullRequestStatusRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'PullRequestTarget' => [ 'type' => 'structure', 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'sourceReference' => [ 'shape' => 'ReferenceName', ], 'destinationReference' => [ 'shape' => 'ReferenceName', ], 'destinationCommit' => [ 'shape' => 'CommitId', ], 'sourceCommit' => [ 'shape' => 'CommitId', ], 'mergeBase' => [ 'shape' => 'CommitId', ], 'mergeMetadata' => [ 'shape' => 'MergeMetadata', ], ], ], 'PullRequestTargetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PullRequestTarget', ], ], 'PutFileEntries' => [ 'type' => 'list', 'member' => [ 'shape' => 'PutFileEntry', ], ], 'PutFileEntry' => [ 'type' => 'structure', 'required' => [ 'filePath', ], 'members' => [ 'filePath' => [ 'shape' => 'Path', ], 'fileMode' => [ 'shape' => 'FileModeTypeEnum', ], 'fileContent' => [ 'shape' => 'FileContent', ], 'sourceFile' => [ 'shape' => 'SourceFileSpecifier', ], ], ], 'PutFileEntryConflictException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'PutFileInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'branchName', 'fileContent', 'filePath', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'branchName' => [ 'shape' => 'BranchName', ], 'fileContent' => [ 'shape' => 'FileContent', ], 'filePath' => [ 'shape' => 'Path', ], 'fileMode' => [ 'shape' => 'FileModeTypeEnum', ], 'parentCommitId' => [ 'shape' => 'CommitId', ], 'commitMessage' => [ 'shape' => 'Message', ], 'name' => [ 'shape' => 'Name', ], 'email' => [ 'shape' => 'Email', ], ], ], 'PutFileOutput' => [ 'type' => 'structure', 'required' => [ 'commitId', 'blobId', 'treeId', ], 'members' => [ 'commitId' => [ 'shape' => 'ObjectId', ], 'blobId' => [ 'shape' => 'ObjectId', ], 'treeId' => [ 'shape' => 'ObjectId', ], ], ], 'PutRepositoryTriggersInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'triggers', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'triggers' => [ 'shape' => 'RepositoryTriggersList', ], ], ], 'PutRepositoryTriggersOutput' => [ 'type' => 'structure', 'members' => [ 'configurationId' => [ 'shape' => 'RepositoryTriggersConfigurationId', ], ], ], 'ReferenceDoesNotExistException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ReferenceName' => [ 'type' => 'string', ], 'ReferenceNameRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ReferenceTypeNotSupportedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'RelativeFileVersionEnum' => [ 'type' => 'string', 'enum' => [ 'BEFORE', 'AFTER', ], ], 'RepositoryDescription' => [ 'type' => 'string', 'max' => 1000, ], 'RepositoryDoesNotExistException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'RepositoryId' => [ 'type' => 'string', ], 'RepositoryLimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'RepositoryMetadata' => [ 'type' => 'structure', 'members' => [ 'accountId' => [ 'shape' => 'AccountId', ], 'repositoryId' => [ 'shape' => 'RepositoryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'repositoryDescription' => [ 'shape' => 'RepositoryDescription', ], 'defaultBranch' => [ 'shape' => 'BranchName', ], 'lastModifiedDate' => [ 'shape' => 'LastModifiedDate', ], 'creationDate' => [ 'shape' => 'CreationDate', ], 'cloneUrlHttp' => [ 'shape' => 'CloneUrlHttp', ], 'cloneUrlSsh' => [ 'shape' => 'CloneUrlSsh', ], 'Arn' => [ 'shape' => 'Arn', ], ], ], 'RepositoryMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RepositoryMetadata', ], ], 'RepositoryName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[\\w\\.-]+', ], 'RepositoryNameExistsException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'RepositoryNameIdPair' => [ 'type' => 'structure', 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'repositoryId' => [ 'shape' => 'RepositoryId', ], ], ], 'RepositoryNameIdPairList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RepositoryNameIdPair', ], ], 'RepositoryNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RepositoryName', ], ], 'RepositoryNameRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'RepositoryNamesRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'RepositoryNotAssociatedWithPullRequestException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'RepositoryNotFoundList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RepositoryName', ], ], 'RepositoryTrigger' => [ 'type' => 'structure', 'required' => [ 'name', 'destinationArn', 'events', ], 'members' => [ 'name' => [ 'shape' => 'RepositoryTriggerName', ], 'destinationArn' => [ 'shape' => 'Arn', ], 'customData' => [ 'shape' => 'RepositoryTriggerCustomData', ], 'branches' => [ 'shape' => 'BranchNameList', ], 'events' => [ 'shape' => 'RepositoryTriggerEventList', ], ], ], 'RepositoryTriggerBranchNameListRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'RepositoryTriggerCustomData' => [ 'type' => 'string', ], 'RepositoryTriggerDestinationArnRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'RepositoryTriggerEventEnum' => [ 'type' => 'string', 'enum' => [ 'all', 'updateReference', 'createReference', 'deleteReference', ], ], 'RepositoryTriggerEventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RepositoryTriggerEventEnum', ], ], 'RepositoryTriggerEventsListRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'RepositoryTriggerExecutionFailure' => [ 'type' => 'structure', 'members' => [ 'trigger' => [ 'shape' => 'RepositoryTriggerName', ], 'failureMessage' => [ 'shape' => 'RepositoryTriggerExecutionFailureMessage', ], ], ], 'RepositoryTriggerExecutionFailureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RepositoryTriggerExecutionFailure', ], ], 'RepositoryTriggerExecutionFailureMessage' => [ 'type' => 'string', ], 'RepositoryTriggerName' => [ 'type' => 'string', ], 'RepositoryTriggerNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RepositoryTriggerName', ], ], 'RepositoryTriggerNameRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'RepositoryTriggersConfigurationId' => [ 'type' => 'string', ], 'RepositoryTriggersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RepositoryTrigger', ], ], 'RepositoryTriggersListRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'RestrictedSourceFileException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'SameFileContentException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'SamePathRequestException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'SetFileModeEntries' => [ 'type' => 'list', 'member' => [ 'shape' => 'SetFileModeEntry', ], ], 'SetFileModeEntry' => [ 'type' => 'structure', 'required' => [ 'filePath', 'fileMode', ], 'members' => [ 'filePath' => [ 'shape' => 'Path', ], 'fileMode' => [ 'shape' => 'FileModeTypeEnum', ], ], ], 'SortByEnum' => [ 'type' => 'string', 'enum' => [ 'repositoryName', 'lastModifiedDate', ], ], 'SourceAndDestinationAreSameException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'SourceFileOrContentRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'SourceFileSpecifier' => [ 'type' => 'structure', 'required' => [ 'filePath', ], 'members' => [ 'filePath' => [ 'shape' => 'Path', ], 'isMove' => [ 'shape' => 'IsMove', ], ], ], 'SubModule' => [ 'type' => 'structure', 'members' => [ 'commitId' => [ 'shape' => 'ObjectId', ], 'absolutePath' => [ 'shape' => 'Path', ], 'relativePath' => [ 'shape' => 'Path', ], ], ], 'SubModuleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubModule', ], ], 'SymbolicLink' => [ 'type' => 'structure', 'members' => [ 'blobId' => [ 'shape' => 'ObjectId', ], 'absolutePath' => [ 'shape' => 'Path', ], 'relativePath' => [ 'shape' => 'Path', ], 'fileMode' => [ 'shape' => 'FileModeTypeEnum', ], ], ], 'SymbolicLinkList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SymbolicLink', ], ], 'Target' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'sourceReference', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'sourceReference' => [ 'shape' => 'ReferenceName', ], 'destinationReference' => [ 'shape' => 'ReferenceName', ], ], ], 'TargetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Target', ], ], 'TargetRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'TargetsRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'TestRepositoryTriggersInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'triggers', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'triggers' => [ 'shape' => 'RepositoryTriggersList', ], ], ], 'TestRepositoryTriggersOutput' => [ 'type' => 'structure', 'members' => [ 'successfulExecutions' => [ 'shape' => 'RepositoryTriggerNameList', ], 'failedExecutions' => [ 'shape' => 'RepositoryTriggerExecutionFailureList', ], ], ], 'TipOfSourceReferenceIsDifferentException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'TipsDivergenceExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Title' => [ 'type' => 'string', 'max' => 150, ], 'TitleRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'UpdateCommentInput' => [ 'type' => 'structure', 'required' => [ 'commentId', 'content', ], 'members' => [ 'commentId' => [ 'shape' => 'CommentId', ], 'content' => [ 'shape' => 'Content', ], ], ], 'UpdateCommentOutput' => [ 'type' => 'structure', 'members' => [ 'comment' => [ 'shape' => 'Comment', ], ], ], 'UpdateDefaultBranchInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'defaultBranchName', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'defaultBranchName' => [ 'shape' => 'BranchName', ], ], ], 'UpdatePullRequestDescriptionInput' => [ 'type' => 'structure', 'required' => [ 'pullRequestId', 'description', ], 'members' => [ 'pullRequestId' => [ 'shape' => 'PullRequestId', ], 'description' => [ 'shape' => 'Description', ], ], ], 'UpdatePullRequestDescriptionOutput' => [ 'type' => 'structure', 'required' => [ 'pullRequest', ], 'members' => [ 'pullRequest' => [ 'shape' => 'PullRequest', ], ], ], 'UpdatePullRequestStatusInput' => [ 'type' => 'structure', 'required' => [ 'pullRequestId', 'pullRequestStatus', ], 'members' => [ 'pullRequestId' => [ 'shape' => 'PullRequestId', ], 'pullRequestStatus' => [ 'shape' => 'PullRequestStatusEnum', ], ], ], 'UpdatePullRequestStatusOutput' => [ 'type' => 'structure', 'required' => [ 'pullRequest', ], 'members' => [ 'pullRequest' => [ 'shape' => 'PullRequest', ], ], ], 'UpdatePullRequestTitleInput' => [ 'type' => 'structure', 'required' => [ 'pullRequestId', 'title', ], 'members' => [ 'pullRequestId' => [ 'shape' => 'PullRequestId', ], 'title' => [ 'shape' => 'Title', ], ], ], 'UpdatePullRequestTitleOutput' => [ 'type' => 'structure', 'required' => [ 'pullRequest', ], 'members' => [ 'pullRequest' => [ 'shape' => 'PullRequest', ], ], ], 'UpdateRepositoryDescriptionInput' => [ 'type' => 'structure', 'required' => [ 'repositoryName', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'repositoryDescription' => [ 'shape' => 'RepositoryDescription', ], ], ], 'UpdateRepositoryNameInput' => [ 'type' => 'structure', 'required' => [ 'oldName', 'newName', ], 'members' => [ 'oldName' => [ 'shape' => 'RepositoryName', ], 'newName' => [ 'shape' => 'RepositoryName', ], ], ], 'UserInfo' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'Name', ], 'email' => [ 'shape' => 'Email', ], 'date' => [ 'shape' => 'Date', ], ], ], 'blob' => [ 'type' => 'blob', ], ],]; diff --git a/lib/aws/Aws/data/codecommit/2015-04-13/paginators-1.json.php b/lib/aws/Aws/data/codecommit/2015-04-13/paginators-1.json.php new file mode 100644 index 0000000..6fbbba9 --- /dev/null +++ b/lib/aws/Aws/data/codecommit/2015-04-13/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/codecommit/2015-04-13/paginators-1.json +return [ 'pagination' => [ 'DescribePullRequestEvents' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', ], 'GetCommentsForComparedCommit' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', ], 'GetCommentsForPullRequest' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', ], 'GetDifferences' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'ListBranches' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'result_key' => 'branches', ], 'ListPullRequests' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', ], 'ListRepositories' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'result_key' => 'repositories', ], ],]; diff --git a/lib/aws/Aws/data/codecommit/2015-04-13/smoke.json.php b/lib/aws/Aws/data/codecommit/2015-04-13/smoke.json.php new file mode 100644 index 0000000..0374438 --- /dev/null +++ b/lib/aws/Aws/data/codecommit/2015-04-13/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/codecommit/2015-04-13/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListRepositories', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'ListBranches', 'input' => [ 'repositoryName' => 'fake-repo', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/codedeploy/2014-10-06/api-2.json.php b/lib/aws/Aws/data/codedeploy/2014-10-06/api-2.json.php new file mode 100644 index 0000000..c7026ed --- /dev/null +++ b/lib/aws/Aws/data/codedeploy/2014-10-06/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/codedeploy/2014-10-06/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2014-10-06', 'endpointPrefix' => 'codedeploy', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'CodeDeploy', 'serviceFullName' => 'AWS CodeDeploy', 'serviceId' => 'CodeDeploy', 'signatureVersion' => 'v4', 'targetPrefix' => 'CodeDeploy_20141006', 'uid' => 'codedeploy-2014-10-06', ], 'operations' => [ 'AddTagsToOnPremisesInstances' => [ 'name' => 'AddTagsToOnPremisesInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddTagsToOnPremisesInstancesInput', ], 'errors' => [ [ 'shape' => 'InstanceNameRequiredException', ], [ 'shape' => 'InvalidInstanceNameException', ], [ 'shape' => 'TagRequiredException', ], [ 'shape' => 'InvalidTagException', ], [ 'shape' => 'TagLimitExceededException', ], [ 'shape' => 'InstanceLimitExceededException', ], [ 'shape' => 'InstanceNotRegisteredException', ], ], ], 'BatchGetApplicationRevisions' => [ 'name' => 'BatchGetApplicationRevisions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetApplicationRevisionsInput', ], 'output' => [ 'shape' => 'BatchGetApplicationRevisionsOutput', ], 'errors' => [ [ 'shape' => 'ApplicationDoesNotExistException', ], [ 'shape' => 'ApplicationNameRequiredException', ], [ 'shape' => 'InvalidApplicationNameException', ], [ 'shape' => 'RevisionRequiredException', ], [ 'shape' => 'InvalidRevisionException', ], [ 'shape' => 'BatchLimitExceededException', ], ], ], 'BatchGetApplications' => [ 'name' => 'BatchGetApplications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetApplicationsInput', ], 'output' => [ 'shape' => 'BatchGetApplicationsOutput', ], 'errors' => [ [ 'shape' => 'ApplicationNameRequiredException', ], [ 'shape' => 'InvalidApplicationNameException', ], [ 'shape' => 'ApplicationDoesNotExistException', ], [ 'shape' => 'BatchLimitExceededException', ], ], ], 'BatchGetDeploymentGroups' => [ 'name' => 'BatchGetDeploymentGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetDeploymentGroupsInput', ], 'output' => [ 'shape' => 'BatchGetDeploymentGroupsOutput', ], 'errors' => [ [ 'shape' => 'ApplicationNameRequiredException', ], [ 'shape' => 'InvalidApplicationNameException', ], [ 'shape' => 'ApplicationDoesNotExistException', ], [ 'shape' => 'DeploymentGroupNameRequiredException', ], [ 'shape' => 'InvalidDeploymentGroupNameException', ], [ 'shape' => 'BatchLimitExceededException', ], [ 'shape' => 'DeploymentConfigDoesNotExistException', ], ], ], 'BatchGetDeploymentInstances' => [ 'name' => 'BatchGetDeploymentInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetDeploymentInstancesInput', ], 'output' => [ 'shape' => 'BatchGetDeploymentInstancesOutput', ], 'errors' => [ [ 'shape' => 'DeploymentIdRequiredException', ], [ 'shape' => 'DeploymentDoesNotExistException', ], [ 'shape' => 'InstanceIdRequiredException', ], [ 'shape' => 'InvalidDeploymentIdException', ], [ 'shape' => 'InvalidInstanceNameException', ], [ 'shape' => 'BatchLimitExceededException', ], [ 'shape' => 'InvalidComputePlatformException', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is deprecated, use BatchGetDeploymentTargets instead.', ], 'BatchGetDeploymentTargets' => [ 'name' => 'BatchGetDeploymentTargets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetDeploymentTargetsInput', ], 'output' => [ 'shape' => 'BatchGetDeploymentTargetsOutput', ], 'errors' => [ [ 'shape' => 'InvalidDeploymentIdException', ], [ 'shape' => 'DeploymentIdRequiredException', ], [ 'shape' => 'DeploymentDoesNotExistException', ], [ 'shape' => 'DeploymentTargetIdRequiredException', ], [ 'shape' => 'InvalidDeploymentTargetIdException', ], [ 'shape' => 'DeploymentTargetDoesNotExistException', ], [ 'shape' => 'DeploymentTargetListSizeExceededException', ], ], ], 'BatchGetDeployments' => [ 'name' => 'BatchGetDeployments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetDeploymentsInput', ], 'output' => [ 'shape' => 'BatchGetDeploymentsOutput', ], 'errors' => [ [ 'shape' => 'DeploymentIdRequiredException', ], [ 'shape' => 'InvalidDeploymentIdException', ], [ 'shape' => 'BatchLimitExceededException', ], ], ], 'BatchGetOnPremisesInstances' => [ 'name' => 'BatchGetOnPremisesInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetOnPremisesInstancesInput', ], 'output' => [ 'shape' => 'BatchGetOnPremisesInstancesOutput', ], 'errors' => [ [ 'shape' => 'InstanceNameRequiredException', ], [ 'shape' => 'InvalidInstanceNameException', ], [ 'shape' => 'BatchLimitExceededException', ], ], ], 'ContinueDeployment' => [ 'name' => 'ContinueDeployment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ContinueDeploymentInput', ], 'errors' => [ [ 'shape' => 'DeploymentIdRequiredException', ], [ 'shape' => 'DeploymentDoesNotExistException', ], [ 'shape' => 'DeploymentAlreadyCompletedException', ], [ 'shape' => 'InvalidDeploymentIdException', ], [ 'shape' => 'DeploymentIsNotInReadyStateException', ], [ 'shape' => 'UnsupportedActionForDeploymentTypeException', ], [ 'shape' => 'InvalidDeploymentWaitTypeException', ], [ 'shape' => 'InvalidDeploymentStatusException', ], ], ], 'CreateApplication' => [ 'name' => 'CreateApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateApplicationInput', ], 'output' => [ 'shape' => 'CreateApplicationOutput', ], 'errors' => [ [ 'shape' => 'ApplicationNameRequiredException', ], [ 'shape' => 'InvalidApplicationNameException', ], [ 'shape' => 'ApplicationAlreadyExistsException', ], [ 'shape' => 'ApplicationLimitExceededException', ], [ 'shape' => 'InvalidComputePlatformException', ], ], ], 'CreateDeployment' => [ 'name' => 'CreateDeployment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDeploymentInput', ], 'output' => [ 'shape' => 'CreateDeploymentOutput', ], 'errors' => [ [ 'shape' => 'ApplicationNameRequiredException', ], [ 'shape' => 'InvalidApplicationNameException', ], [ 'shape' => 'ApplicationDoesNotExistException', ], [ 'shape' => 'DeploymentGroupNameRequiredException', ], [ 'shape' => 'InvalidDeploymentGroupNameException', ], [ 'shape' => 'DeploymentGroupDoesNotExistException', ], [ 'shape' => 'RevisionRequiredException', ], [ 'shape' => 'RevisionDoesNotExistException', ], [ 'shape' => 'InvalidRevisionException', ], [ 'shape' => 'InvalidDeploymentConfigNameException', ], [ 'shape' => 'DeploymentConfigDoesNotExistException', ], [ 'shape' => 'DescriptionTooLongException', ], [ 'shape' => 'DeploymentLimitExceededException', ], [ 'shape' => 'InvalidTargetInstancesException', ], [ 'shape' => 'InvalidAutoRollbackConfigException', ], [ 'shape' => 'InvalidLoadBalancerInfoException', ], [ 'shape' => 'InvalidFileExistsBehaviorException', ], [ 'shape' => 'InvalidRoleException', ], [ 'shape' => 'InvalidAutoScalingGroupException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InvalidUpdateOutdatedInstancesOnlyValueException', ], [ 'shape' => 'InvalidIgnoreApplicationStopFailuresValueException', ], [ 'shape' => 'InvalidGitHubAccountTokenException', ], ], ], 'CreateDeploymentConfig' => [ 'name' => 'CreateDeploymentConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDeploymentConfigInput', ], 'output' => [ 'shape' => 'CreateDeploymentConfigOutput', ], 'errors' => [ [ 'shape' => 'InvalidDeploymentConfigNameException', ], [ 'shape' => 'DeploymentConfigNameRequiredException', ], [ 'shape' => 'DeploymentConfigAlreadyExistsException', ], [ 'shape' => 'InvalidMinimumHealthyHostValueException', ], [ 'shape' => 'DeploymentConfigLimitExceededException', ], [ 'shape' => 'InvalidComputePlatformException', ], [ 'shape' => 'InvalidTrafficRoutingConfigurationException', ], ], ], 'CreateDeploymentGroup' => [ 'name' => 'CreateDeploymentGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDeploymentGroupInput', ], 'output' => [ 'shape' => 'CreateDeploymentGroupOutput', ], 'errors' => [ [ 'shape' => 'ApplicationNameRequiredException', ], [ 'shape' => 'InvalidApplicationNameException', ], [ 'shape' => 'ApplicationDoesNotExistException', ], [ 'shape' => 'DeploymentGroupNameRequiredException', ], [ 'shape' => 'InvalidDeploymentGroupNameException', ], [ 'shape' => 'DeploymentGroupAlreadyExistsException', ], [ 'shape' => 'InvalidEC2TagException', ], [ 'shape' => 'InvalidTagException', ], [ 'shape' => 'InvalidAutoScalingGroupException', ], [ 'shape' => 'InvalidDeploymentConfigNameException', ], [ 'shape' => 'DeploymentConfigDoesNotExistException', ], [ 'shape' => 'RoleRequiredException', ], [ 'shape' => 'InvalidRoleException', ], [ 'shape' => 'DeploymentGroupLimitExceededException', ], [ 'shape' => 'LifecycleHookLimitExceededException', ], [ 'shape' => 'InvalidTriggerConfigException', ], [ 'shape' => 'TriggerTargetsLimitExceededException', ], [ 'shape' => 'InvalidAlarmConfigException', ], [ 'shape' => 'AlarmsLimitExceededException', ], [ 'shape' => 'InvalidAutoRollbackConfigException', ], [ 'shape' => 'InvalidLoadBalancerInfoException', ], [ 'shape' => 'InvalidDeploymentStyleException', ], [ 'shape' => 'InvalidBlueGreenDeploymentConfigurationException', ], [ 'shape' => 'InvalidEC2TagCombinationException', ], [ 'shape' => 'InvalidOnPremisesTagCombinationException', ], [ 'shape' => 'TagSetListLimitExceededException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InvalidECSServiceException', ], [ 'shape' => 'InvalidTargetGroupPairException', ], [ 'shape' => 'ECSServiceMappingLimitExceededException', ], ], ], 'DeleteApplication' => [ 'name' => 'DeleteApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteApplicationInput', ], 'errors' => [ [ 'shape' => 'ApplicationNameRequiredException', ], [ 'shape' => 'InvalidApplicationNameException', ], ], ], 'DeleteDeploymentConfig' => [ 'name' => 'DeleteDeploymentConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDeploymentConfigInput', ], 'errors' => [ [ 'shape' => 'InvalidDeploymentConfigNameException', ], [ 'shape' => 'DeploymentConfigNameRequiredException', ], [ 'shape' => 'DeploymentConfigInUseException', ], [ 'shape' => 'InvalidOperationException', ], ], ], 'DeleteDeploymentGroup' => [ 'name' => 'DeleteDeploymentGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDeploymentGroupInput', ], 'output' => [ 'shape' => 'DeleteDeploymentGroupOutput', ], 'errors' => [ [ 'shape' => 'ApplicationNameRequiredException', ], [ 'shape' => 'InvalidApplicationNameException', ], [ 'shape' => 'DeploymentGroupNameRequiredException', ], [ 'shape' => 'InvalidDeploymentGroupNameException', ], [ 'shape' => 'InvalidRoleException', ], ], ], 'DeleteGitHubAccountToken' => [ 'name' => 'DeleteGitHubAccountToken', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteGitHubAccountTokenInput', ], 'output' => [ 'shape' => 'DeleteGitHubAccountTokenOutput', ], 'errors' => [ [ 'shape' => 'GitHubAccountTokenNameRequiredException', ], [ 'shape' => 'GitHubAccountTokenDoesNotExistException', ], [ 'shape' => 'InvalidGitHubAccountTokenNameException', ], [ 'shape' => 'ResourceValidationException', ], [ 'shape' => 'OperationNotSupportedException', ], ], ], 'DeregisterOnPremisesInstance' => [ 'name' => 'DeregisterOnPremisesInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterOnPremisesInstanceInput', ], 'errors' => [ [ 'shape' => 'InstanceNameRequiredException', ], [ 'shape' => 'InvalidInstanceNameException', ], ], ], 'GetApplication' => [ 'name' => 'GetApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetApplicationInput', ], 'output' => [ 'shape' => 'GetApplicationOutput', ], 'errors' => [ [ 'shape' => 'ApplicationNameRequiredException', ], [ 'shape' => 'InvalidApplicationNameException', ], [ 'shape' => 'ApplicationDoesNotExistException', ], ], ], 'GetApplicationRevision' => [ 'name' => 'GetApplicationRevision', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetApplicationRevisionInput', ], 'output' => [ 'shape' => 'GetApplicationRevisionOutput', ], 'errors' => [ [ 'shape' => 'ApplicationDoesNotExistException', ], [ 'shape' => 'ApplicationNameRequiredException', ], [ 'shape' => 'InvalidApplicationNameException', ], [ 'shape' => 'RevisionDoesNotExistException', ], [ 'shape' => 'RevisionRequiredException', ], [ 'shape' => 'InvalidRevisionException', ], ], ], 'GetDeployment' => [ 'name' => 'GetDeployment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDeploymentInput', ], 'output' => [ 'shape' => 'GetDeploymentOutput', ], 'errors' => [ [ 'shape' => 'DeploymentIdRequiredException', ], [ 'shape' => 'InvalidDeploymentIdException', ], [ 'shape' => 'DeploymentDoesNotExistException', ], ], ], 'GetDeploymentConfig' => [ 'name' => 'GetDeploymentConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDeploymentConfigInput', ], 'output' => [ 'shape' => 'GetDeploymentConfigOutput', ], 'errors' => [ [ 'shape' => 'InvalidDeploymentConfigNameException', ], [ 'shape' => 'DeploymentConfigNameRequiredException', ], [ 'shape' => 'DeploymentConfigDoesNotExistException', ], [ 'shape' => 'InvalidComputePlatformException', ], ], ], 'GetDeploymentGroup' => [ 'name' => 'GetDeploymentGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDeploymentGroupInput', ], 'output' => [ 'shape' => 'GetDeploymentGroupOutput', ], 'errors' => [ [ 'shape' => 'ApplicationNameRequiredException', ], [ 'shape' => 'InvalidApplicationNameException', ], [ 'shape' => 'ApplicationDoesNotExistException', ], [ 'shape' => 'DeploymentGroupNameRequiredException', ], [ 'shape' => 'InvalidDeploymentGroupNameException', ], [ 'shape' => 'DeploymentGroupDoesNotExistException', ], [ 'shape' => 'DeploymentConfigDoesNotExistException', ], ], ], 'GetDeploymentInstance' => [ 'name' => 'GetDeploymentInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDeploymentInstanceInput', ], 'output' => [ 'shape' => 'GetDeploymentInstanceOutput', ], 'errors' => [ [ 'shape' => 'DeploymentIdRequiredException', ], [ 'shape' => 'DeploymentDoesNotExistException', ], [ 'shape' => 'InstanceIdRequiredException', ], [ 'shape' => 'InvalidDeploymentIdException', ], [ 'shape' => 'InstanceDoesNotExistException', ], [ 'shape' => 'InvalidInstanceNameException', ], [ 'shape' => 'InvalidComputePlatformException', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is deprecated, use GetDeploymentTarget instead.', ], 'GetDeploymentTarget' => [ 'name' => 'GetDeploymentTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDeploymentTargetInput', ], 'output' => [ 'shape' => 'GetDeploymentTargetOutput', ], 'errors' => [ [ 'shape' => 'InvalidDeploymentIdException', ], [ 'shape' => 'DeploymentIdRequiredException', ], [ 'shape' => 'DeploymentDoesNotExistException', ], [ 'shape' => 'DeploymentTargetIdRequiredException', ], [ 'shape' => 'InvalidDeploymentTargetIdException', ], [ 'shape' => 'DeploymentTargetDoesNotExistException', ], [ 'shape' => 'InvalidInstanceNameException', ], ], ], 'GetOnPremisesInstance' => [ 'name' => 'GetOnPremisesInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetOnPremisesInstanceInput', ], 'output' => [ 'shape' => 'GetOnPremisesInstanceOutput', ], 'errors' => [ [ 'shape' => 'InstanceNameRequiredException', ], [ 'shape' => 'InstanceNotRegisteredException', ], [ 'shape' => 'InvalidInstanceNameException', ], ], ], 'ListApplicationRevisions' => [ 'name' => 'ListApplicationRevisions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListApplicationRevisionsInput', ], 'output' => [ 'shape' => 'ListApplicationRevisionsOutput', ], 'errors' => [ [ 'shape' => 'ApplicationDoesNotExistException', ], [ 'shape' => 'ApplicationNameRequiredException', ], [ 'shape' => 'InvalidApplicationNameException', ], [ 'shape' => 'InvalidSortByException', ], [ 'shape' => 'InvalidSortOrderException', ], [ 'shape' => 'InvalidBucketNameFilterException', ], [ 'shape' => 'InvalidKeyPrefixFilterException', ], [ 'shape' => 'BucketNameFilterRequiredException', ], [ 'shape' => 'InvalidDeployedStateFilterException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListApplications' => [ 'name' => 'ListApplications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListApplicationsInput', ], 'output' => [ 'shape' => 'ListApplicationsOutput', ], 'errors' => [ [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListDeploymentConfigs' => [ 'name' => 'ListDeploymentConfigs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDeploymentConfigsInput', ], 'output' => [ 'shape' => 'ListDeploymentConfigsOutput', ], 'errors' => [ [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListDeploymentGroups' => [ 'name' => 'ListDeploymentGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDeploymentGroupsInput', ], 'output' => [ 'shape' => 'ListDeploymentGroupsOutput', ], 'errors' => [ [ 'shape' => 'ApplicationNameRequiredException', ], [ 'shape' => 'InvalidApplicationNameException', ], [ 'shape' => 'ApplicationDoesNotExistException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListDeploymentInstances' => [ 'name' => 'ListDeploymentInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDeploymentInstancesInput', ], 'output' => [ 'shape' => 'ListDeploymentInstancesOutput', ], 'errors' => [ [ 'shape' => 'DeploymentIdRequiredException', ], [ 'shape' => 'DeploymentDoesNotExistException', ], [ 'shape' => 'DeploymentNotStartedException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidDeploymentIdException', ], [ 'shape' => 'InvalidInstanceStatusException', ], [ 'shape' => 'InvalidInstanceTypeException', ], [ 'shape' => 'InvalidDeploymentInstanceTypeException', ], [ 'shape' => 'InvalidTargetFilterNameException', ], [ 'shape' => 'InvalidComputePlatformException', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is deprecated, use ListDeploymentTargets instead.', ], 'ListDeploymentTargets' => [ 'name' => 'ListDeploymentTargets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDeploymentTargetsInput', ], 'output' => [ 'shape' => 'ListDeploymentTargetsOutput', ], 'errors' => [ [ 'shape' => 'DeploymentIdRequiredException', ], [ 'shape' => 'DeploymentDoesNotExistException', ], [ 'shape' => 'DeploymentNotStartedException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidDeploymentIdException', ], [ 'shape' => 'InvalidInstanceStatusException', ], [ 'shape' => 'InvalidInstanceTypeException', ], [ 'shape' => 'InvalidDeploymentInstanceTypeException', ], ], ], 'ListDeployments' => [ 'name' => 'ListDeployments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDeploymentsInput', ], 'output' => [ 'shape' => 'ListDeploymentsOutput', ], 'errors' => [ [ 'shape' => 'ApplicationNameRequiredException', ], [ 'shape' => 'InvalidApplicationNameException', ], [ 'shape' => 'ApplicationDoesNotExistException', ], [ 'shape' => 'InvalidDeploymentGroupNameException', ], [ 'shape' => 'DeploymentGroupDoesNotExistException', ], [ 'shape' => 'DeploymentGroupNameRequiredException', ], [ 'shape' => 'InvalidTimeRangeException', ], [ 'shape' => 'InvalidDeploymentStatusException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListGitHubAccountTokenNames' => [ 'name' => 'ListGitHubAccountTokenNames', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListGitHubAccountTokenNamesInput', ], 'output' => [ 'shape' => 'ListGitHubAccountTokenNamesOutput', ], 'errors' => [ [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ResourceValidationException', ], [ 'shape' => 'OperationNotSupportedException', ], ], ], 'ListOnPremisesInstances' => [ 'name' => 'ListOnPremisesInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListOnPremisesInstancesInput', ], 'output' => [ 'shape' => 'ListOnPremisesInstancesOutput', ], 'errors' => [ [ 'shape' => 'InvalidRegistrationStatusException', ], [ 'shape' => 'InvalidTagFilterException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'PutLifecycleEventHookExecutionStatus' => [ 'name' => 'PutLifecycleEventHookExecutionStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutLifecycleEventHookExecutionStatusInput', ], 'output' => [ 'shape' => 'PutLifecycleEventHookExecutionStatusOutput', ], 'errors' => [ [ 'shape' => 'InvalidLifecycleEventHookExecutionStatusException', ], [ 'shape' => 'InvalidLifecycleEventHookExecutionIdException', ], [ 'shape' => 'LifecycleEventAlreadyCompletedException', ], [ 'shape' => 'DeploymentIdRequiredException', ], [ 'shape' => 'DeploymentDoesNotExistException', ], [ 'shape' => 'InvalidDeploymentIdException', ], [ 'shape' => 'UnsupportedActionForDeploymentTypeException', ], ], ], 'RegisterApplicationRevision' => [ 'name' => 'RegisterApplicationRevision', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterApplicationRevisionInput', ], 'errors' => [ [ 'shape' => 'ApplicationDoesNotExistException', ], [ 'shape' => 'ApplicationNameRequiredException', ], [ 'shape' => 'InvalidApplicationNameException', ], [ 'shape' => 'DescriptionTooLongException', ], [ 'shape' => 'RevisionRequiredException', ], [ 'shape' => 'InvalidRevisionException', ], ], ], 'RegisterOnPremisesInstance' => [ 'name' => 'RegisterOnPremisesInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterOnPremisesInstanceInput', ], 'errors' => [ [ 'shape' => 'InstanceNameAlreadyRegisteredException', ], [ 'shape' => 'IamArnRequiredException', ], [ 'shape' => 'IamSessionArnAlreadyRegisteredException', ], [ 'shape' => 'IamUserArnAlreadyRegisteredException', ], [ 'shape' => 'InstanceNameRequiredException', ], [ 'shape' => 'IamUserArnRequiredException', ], [ 'shape' => 'InvalidInstanceNameException', ], [ 'shape' => 'InvalidIamSessionArnException', ], [ 'shape' => 'InvalidIamUserArnException', ], [ 'shape' => 'MultipleIamArnsProvidedException', ], ], ], 'RemoveTagsFromOnPremisesInstances' => [ 'name' => 'RemoveTagsFromOnPremisesInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveTagsFromOnPremisesInstancesInput', ], 'errors' => [ [ 'shape' => 'InstanceNameRequiredException', ], [ 'shape' => 'InvalidInstanceNameException', ], [ 'shape' => 'TagRequiredException', ], [ 'shape' => 'InvalidTagException', ], [ 'shape' => 'TagLimitExceededException', ], [ 'shape' => 'InstanceLimitExceededException', ], [ 'shape' => 'InstanceNotRegisteredException', ], ], ], 'SkipWaitTimeForInstanceTermination' => [ 'name' => 'SkipWaitTimeForInstanceTermination', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SkipWaitTimeForInstanceTerminationInput', ], 'errors' => [ [ 'shape' => 'DeploymentIdRequiredException', ], [ 'shape' => 'DeploymentDoesNotExistException', ], [ 'shape' => 'DeploymentAlreadyCompletedException', ], [ 'shape' => 'InvalidDeploymentIdException', ], [ 'shape' => 'DeploymentNotStartedException', ], [ 'shape' => 'UnsupportedActionForDeploymentTypeException', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is deprecated, use ContinueDeployment with DeploymentWaitType instead.', ], 'StopDeployment' => [ 'name' => 'StopDeployment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopDeploymentInput', ], 'output' => [ 'shape' => 'StopDeploymentOutput', ], 'errors' => [ [ 'shape' => 'DeploymentIdRequiredException', ], [ 'shape' => 'DeploymentDoesNotExistException', ], [ 'shape' => 'DeploymentGroupDoesNotExistException', ], [ 'shape' => 'DeploymentAlreadyCompletedException', ], [ 'shape' => 'InvalidDeploymentIdException', ], ], ], 'UpdateApplication' => [ 'name' => 'UpdateApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateApplicationInput', ], 'errors' => [ [ 'shape' => 'ApplicationNameRequiredException', ], [ 'shape' => 'InvalidApplicationNameException', ], [ 'shape' => 'ApplicationAlreadyExistsException', ], [ 'shape' => 'ApplicationDoesNotExistException', ], ], ], 'UpdateDeploymentGroup' => [ 'name' => 'UpdateDeploymentGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateDeploymentGroupInput', ], 'output' => [ 'shape' => 'UpdateDeploymentGroupOutput', ], 'errors' => [ [ 'shape' => 'ApplicationNameRequiredException', ], [ 'shape' => 'InvalidApplicationNameException', ], [ 'shape' => 'ApplicationDoesNotExistException', ], [ 'shape' => 'InvalidDeploymentGroupNameException', ], [ 'shape' => 'DeploymentGroupAlreadyExistsException', ], [ 'shape' => 'DeploymentGroupNameRequiredException', ], [ 'shape' => 'DeploymentGroupDoesNotExistException', ], [ 'shape' => 'InvalidEC2TagException', ], [ 'shape' => 'InvalidTagException', ], [ 'shape' => 'InvalidAutoScalingGroupException', ], [ 'shape' => 'InvalidDeploymentConfigNameException', ], [ 'shape' => 'DeploymentConfigDoesNotExistException', ], [ 'shape' => 'InvalidRoleException', ], [ 'shape' => 'LifecycleHookLimitExceededException', ], [ 'shape' => 'InvalidTriggerConfigException', ], [ 'shape' => 'TriggerTargetsLimitExceededException', ], [ 'shape' => 'InvalidAlarmConfigException', ], [ 'shape' => 'AlarmsLimitExceededException', ], [ 'shape' => 'InvalidAutoRollbackConfigException', ], [ 'shape' => 'InvalidLoadBalancerInfoException', ], [ 'shape' => 'InvalidDeploymentStyleException', ], [ 'shape' => 'InvalidBlueGreenDeploymentConfigurationException', ], [ 'shape' => 'InvalidEC2TagCombinationException', ], [ 'shape' => 'InvalidOnPremisesTagCombinationException', ], [ 'shape' => 'TagSetListLimitExceededException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InvalidECSServiceException', ], [ 'shape' => 'InvalidTargetGroupPairException', ], [ 'shape' => 'ECSServiceMappingLimitExceededException', ], ], ], ], 'shapes' => [ 'AddTagsToOnPremisesInstancesInput' => [ 'type' => 'structure', 'required' => [ 'tags', 'instanceNames', ], 'members' => [ 'tags' => [ 'shape' => 'TagList', ], 'instanceNames' => [ 'shape' => 'InstanceNameList', ], ], ], 'AdditionalDeploymentStatusInfo' => [ 'type' => 'string', 'deprecated' => true, 'deprecatedMessage' => 'AdditionalDeploymentStatusInfo is deprecated, use DeploymentStatusMessageList instead.', ], 'Alarm' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'AlarmName', ], ], ], 'AlarmConfiguration' => [ 'type' => 'structure', 'members' => [ 'enabled' => [ 'shape' => 'Boolean', ], 'ignorePollAlarmFailure' => [ 'shape' => 'Boolean', ], 'alarms' => [ 'shape' => 'AlarmList', ], ], ], 'AlarmList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Alarm', ], ], 'AlarmName' => [ 'type' => 'string', ], 'AlarmsLimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'AppSpecContent' => [ 'type' => 'structure', 'members' => [ 'content' => [ 'shape' => 'RawStringContent', ], 'sha256' => [ 'shape' => 'RawStringSha256', ], ], ], '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', ], 'gitHubAccountName' => [ 'shape' => 'GitHubAccountTokenName', ], 'computePlatform' => [ 'shape' => 'ComputePlatform', ], ], ], 'ApplicationLimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ApplicationName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], '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', ], ], 'AutoRollbackConfiguration' => [ 'type' => 'structure', 'members' => [ 'enabled' => [ 'shape' => 'Boolean', ], 'events' => [ 'shape' => 'AutoRollbackEventsList', ], ], ], 'AutoRollbackEvent' => [ 'type' => 'string', 'enum' => [ 'DEPLOYMENT_FAILURE', 'DEPLOYMENT_STOP_ON_ALARM', 'DEPLOYMENT_STOP_ON_REQUEST', ], ], 'AutoRollbackEventsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AutoRollbackEvent', ], ], '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', ], ], 'BatchGetApplicationRevisionsInput' => [ 'type' => 'structure', 'required' => [ 'applicationName', 'revisions', ], 'members' => [ 'applicationName' => [ 'shape' => 'ApplicationName', ], 'revisions' => [ 'shape' => 'RevisionLocationList', ], ], ], 'BatchGetApplicationRevisionsOutput' => [ 'type' => 'structure', 'members' => [ 'applicationName' => [ 'shape' => 'ApplicationName', ], 'errorMessage' => [ 'shape' => 'ErrorMessage', ], 'revisions' => [ 'shape' => 'RevisionInfoList', ], ], ], 'BatchGetApplicationsInput' => [ 'type' => 'structure', 'required' => [ 'applicationNames', ], 'members' => [ 'applicationNames' => [ 'shape' => 'ApplicationsList', ], ], ], 'BatchGetApplicationsOutput' => [ 'type' => 'structure', 'members' => [ 'applicationsInfo' => [ 'shape' => 'ApplicationsInfoList', ], ], ], 'BatchGetDeploymentGroupsInput' => [ 'type' => 'structure', 'required' => [ 'applicationName', 'deploymentGroupNames', ], 'members' => [ 'applicationName' => [ 'shape' => 'ApplicationName', ], 'deploymentGroupNames' => [ 'shape' => 'DeploymentGroupsList', ], ], ], 'BatchGetDeploymentGroupsOutput' => [ 'type' => 'structure', 'members' => [ 'deploymentGroupsInfo' => [ 'shape' => 'DeploymentGroupInfoList', ], 'errorMessage' => [ 'shape' => 'ErrorMessage', ], ], ], 'BatchGetDeploymentInstancesInput' => [ 'type' => 'structure', 'required' => [ 'deploymentId', 'instanceIds', ], 'members' => [ 'deploymentId' => [ 'shape' => 'DeploymentId', ], 'instanceIds' => [ 'shape' => 'InstancesList', ], ], ], 'BatchGetDeploymentInstancesOutput' => [ 'type' => 'structure', 'members' => [ 'instancesSummary' => [ 'shape' => 'InstanceSummaryList', ], 'errorMessage' => [ 'shape' => 'ErrorMessage', ], ], ], 'BatchGetDeploymentTargetsInput' => [ 'type' => 'structure', 'members' => [ 'deploymentId' => [ 'shape' => 'DeploymentId', ], 'targetIds' => [ 'shape' => 'TargetIdList', ], ], ], 'BatchGetDeploymentTargetsOutput' => [ 'type' => 'structure', 'members' => [ 'deploymentTargets' => [ 'shape' => 'DeploymentTargetList', ], ], ], 'BatchGetDeploymentsInput' => [ 'type' => 'structure', 'required' => [ 'deploymentIds', ], 'members' => [ 'deploymentIds' => [ 'shape' => 'DeploymentsList', ], ], ], 'BatchGetDeploymentsOutput' => [ 'type' => 'structure', 'members' => [ 'deploymentsInfo' => [ 'shape' => 'DeploymentsInfoList', ], ], ], 'BatchGetOnPremisesInstancesInput' => [ 'type' => 'structure', 'required' => [ 'instanceNames', ], 'members' => [ 'instanceNames' => [ 'shape' => 'InstanceNameList', ], ], ], 'BatchGetOnPremisesInstancesOutput' => [ 'type' => 'structure', 'members' => [ 'instanceInfos' => [ 'shape' => 'InstanceInfoList', ], ], ], 'BatchLimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'BlueGreenDeploymentConfiguration' => [ 'type' => 'structure', 'members' => [ 'terminateBlueInstancesOnDeploymentSuccess' => [ 'shape' => 'BlueInstanceTerminationOption', ], 'deploymentReadyOption' => [ 'shape' => 'DeploymentReadyOption', ], 'greenFleetProvisioningOption' => [ 'shape' => 'GreenFleetProvisioningOption', ], ], ], 'BlueInstanceTerminationOption' => [ 'type' => 'structure', 'members' => [ 'action' => [ 'shape' => 'InstanceAction', ], 'terminationWaitTimeInMinutes' => [ 'shape' => 'Duration', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'BucketNameFilterRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'BundleType' => [ 'type' => 'string', 'enum' => [ 'tar', 'tgz', 'zip', 'YAML', 'JSON', ], ], 'CommitId' => [ 'type' => 'string', ], 'ComputePlatform' => [ 'type' => 'string', 'enum' => [ 'Server', 'Lambda', 'ECS', ], ], 'ContinueDeploymentInput' => [ 'type' => 'structure', 'members' => [ 'deploymentId' => [ 'shape' => 'DeploymentId', ], 'deploymentWaitType' => [ 'shape' => 'DeploymentWaitType', ], ], ], 'CreateApplicationInput' => [ 'type' => 'structure', 'required' => [ 'applicationName', ], 'members' => [ 'applicationName' => [ 'shape' => 'ApplicationName', ], 'computePlatform' => [ 'shape' => 'ComputePlatform', ], ], ], 'CreateApplicationOutput' => [ 'type' => 'structure', 'members' => [ 'applicationId' => [ 'shape' => 'ApplicationId', ], ], ], 'CreateDeploymentConfigInput' => [ 'type' => 'structure', 'required' => [ 'deploymentConfigName', ], 'members' => [ 'deploymentConfigName' => [ 'shape' => 'DeploymentConfigName', ], 'minimumHealthyHosts' => [ 'shape' => 'MinimumHealthyHosts', ], 'trafficRoutingConfig' => [ 'shape' => 'TrafficRoutingConfig', ], 'computePlatform' => [ 'shape' => 'ComputePlatform', ], ], ], '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', ], 'triggerConfigurations' => [ 'shape' => 'TriggerConfigList', ], 'alarmConfiguration' => [ 'shape' => 'AlarmConfiguration', ], 'autoRollbackConfiguration' => [ 'shape' => 'AutoRollbackConfiguration', ], 'deploymentStyle' => [ 'shape' => 'DeploymentStyle', ], 'blueGreenDeploymentConfiguration' => [ 'shape' => 'BlueGreenDeploymentConfiguration', ], 'loadBalancerInfo' => [ 'shape' => 'LoadBalancerInfo', ], 'ec2TagSet' => [ 'shape' => 'EC2TagSet', ], 'ecsServices' => [ 'shape' => 'ECSServiceList', ], 'onPremisesTagSet' => [ 'shape' => 'OnPremisesTagSet', ], ], ], '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', ], 'targetInstances' => [ 'shape' => 'TargetInstances', ], 'autoRollbackConfiguration' => [ 'shape' => 'AutoRollbackConfiguration', ], 'updateOutdatedInstancesOnly' => [ 'shape' => 'Boolean', ], 'fileExistsBehavior' => [ 'shape' => 'FileExistsBehavior', ], ], ], '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', ], ], ], 'DeleteGitHubAccountTokenInput' => [ 'type' => 'structure', 'members' => [ 'tokenName' => [ 'shape' => 'GitHubAccountTokenName', ], ], ], 'DeleteGitHubAccountTokenOutput' => [ 'type' => 'structure', 'members' => [ 'tokenName' => [ 'shape' => 'GitHubAccountTokenName', ], ], ], 'DeploymentAlreadyCompletedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'DeploymentAlreadyStartedException' => [ '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', ], 'computePlatform' => [ 'shape' => 'ComputePlatform', ], 'trafficRoutingConfig' => [ 'shape' => 'TrafficRoutingConfig', ], ], ], 'DeploymentConfigLimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'DeploymentConfigName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'DeploymentConfigNameRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'DeploymentConfigsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeploymentConfigName', ], ], 'DeploymentCreator' => [ 'type' => 'string', 'enum' => [ 'user', 'autoscaling', 'codeDeployRollback', ], ], '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', ], 'triggerConfigurations' => [ 'shape' => 'TriggerConfigList', ], 'alarmConfiguration' => [ 'shape' => 'AlarmConfiguration', ], 'autoRollbackConfiguration' => [ 'shape' => 'AutoRollbackConfiguration', ], 'deploymentStyle' => [ 'shape' => 'DeploymentStyle', ], 'blueGreenDeploymentConfiguration' => [ 'shape' => 'BlueGreenDeploymentConfiguration', ], 'loadBalancerInfo' => [ 'shape' => 'LoadBalancerInfo', ], 'lastSuccessfulDeployment' => [ 'shape' => 'LastDeploymentInfo', ], 'lastAttemptedDeployment' => [ 'shape' => 'LastDeploymentInfo', ], 'ec2TagSet' => [ 'shape' => 'EC2TagSet', ], 'onPremisesTagSet' => [ 'shape' => 'OnPremisesTagSet', ], 'computePlatform' => [ 'shape' => 'ComputePlatform', ], 'ecsServices' => [ 'shape' => 'ECSServiceList', ], ], ], 'DeploymentGroupInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeploymentGroupInfo', ], ], 'DeploymentGroupLimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'DeploymentGroupName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], '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', ], 'previousRevision' => [ 'shape' => 'RevisionLocation', ], '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', ], 'autoRollbackConfiguration' => [ 'shape' => 'AutoRollbackConfiguration', ], 'updateOutdatedInstancesOnly' => [ 'shape' => 'Boolean', ], 'rollbackInfo' => [ 'shape' => 'RollbackInfo', ], 'deploymentStyle' => [ 'shape' => 'DeploymentStyle', ], 'targetInstances' => [ 'shape' => 'TargetInstances', ], 'instanceTerminationWaitTimeStarted' => [ 'shape' => 'Boolean', ], 'blueGreenDeploymentConfiguration' => [ 'shape' => 'BlueGreenDeploymentConfiguration', ], 'loadBalancerInfo' => [ 'shape' => 'LoadBalancerInfo', ], 'additionalDeploymentStatusInfo' => [ 'shape' => 'AdditionalDeploymentStatusInfo', ], 'fileExistsBehavior' => [ 'shape' => 'FileExistsBehavior', ], 'deploymentStatusMessages' => [ 'shape' => 'DeploymentStatusMessageList', ], 'computePlatform' => [ 'shape' => 'ComputePlatform', ], ], ], 'DeploymentIsNotInReadyStateException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'DeploymentLimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'DeploymentNotStartedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'DeploymentOption' => [ 'type' => 'string', 'enum' => [ 'WITH_TRAFFIC_CONTROL', 'WITHOUT_TRAFFIC_CONTROL', ], ], 'DeploymentOverview' => [ 'type' => 'structure', 'members' => [ 'Pending' => [ 'shape' => 'InstanceCount', ], 'InProgress' => [ 'shape' => 'InstanceCount', ], 'Succeeded' => [ 'shape' => 'InstanceCount', ], 'Failed' => [ 'shape' => 'InstanceCount', ], 'Skipped' => [ 'shape' => 'InstanceCount', ], 'Ready' => [ 'shape' => 'InstanceCount', ], ], ], 'DeploymentReadyAction' => [ 'type' => 'string', 'enum' => [ 'CONTINUE_DEPLOYMENT', 'STOP_DEPLOYMENT', ], ], 'DeploymentReadyOption' => [ 'type' => 'structure', 'members' => [ 'actionOnTimeout' => [ 'shape' => 'DeploymentReadyAction', ], 'waitTimeInMinutes' => [ 'shape' => 'Duration', ], ], ], 'DeploymentStatus' => [ 'type' => 'string', 'enum' => [ 'Created', 'Queued', 'InProgress', 'Succeeded', 'Failed', 'Stopped', 'Ready', ], ], 'DeploymentStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeploymentStatus', ], ], 'DeploymentStatusMessageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ErrorMessage', ], ], 'DeploymentStyle' => [ 'type' => 'structure', 'members' => [ 'deploymentType' => [ 'shape' => 'DeploymentType', ], 'deploymentOption' => [ 'shape' => 'DeploymentOption', ], ], ], 'DeploymentTarget' => [ 'type' => 'structure', 'members' => [ 'deploymentTargetType' => [ 'shape' => 'DeploymentTargetType', ], 'instanceTarget' => [ 'shape' => 'InstanceTarget', ], 'lambdaTarget' => [ 'shape' => 'LambdaTarget', ], 'ecsTarget' => [ 'shape' => 'ECSTarget', ], ], ], 'DeploymentTargetDoesNotExistException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'DeploymentTargetIdRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'DeploymentTargetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeploymentTarget', ], ], 'DeploymentTargetListSizeExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'DeploymentTargetType' => [ 'type' => 'string', 'enum' => [ 'InstanceTarget', 'LambdaTarget', 'ECSTarget', ], ], 'DeploymentType' => [ 'type' => 'string', 'enum' => [ 'IN_PLACE', 'BLUE_GREEN', ], ], 'DeploymentWaitType' => [ 'type' => 'string', 'enum' => [ 'READY_WAIT', 'TERMINATION_WAIT', ], ], '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', ], ], ], 'Duration' => [ 'type' => 'integer', ], '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', ], ], 'EC2TagSet' => [ 'type' => 'structure', 'members' => [ 'ec2TagSetList' => [ 'shape' => 'EC2TagSetList', ], ], ], 'EC2TagSetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EC2TagFilterList', ], ], 'ECSClusterName' => [ 'type' => 'string', ], 'ECSService' => [ 'type' => 'structure', 'members' => [ 'serviceName' => [ 'shape' => 'ECSServiceName', ], 'clusterName' => [ 'shape' => 'ECSClusterName', ], ], ], 'ECSServiceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ECSService', ], ], 'ECSServiceMappingLimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ECSServiceName' => [ 'type' => 'string', ], 'ECSTarget' => [ 'type' => 'structure', 'members' => [ 'deploymentId' => [ 'shape' => 'DeploymentId', ], 'targetId' => [ 'shape' => 'TargetId', ], 'targetArn' => [ 'shape' => 'TargetArn', ], 'lastUpdatedAt' => [ 'shape' => 'Time', ], 'lifecycleEvents' => [ 'shape' => 'LifecycleEventList', ], 'status' => [ 'shape' => 'TargetStatus', ], 'taskSetsInfo' => [ 'shape' => 'ECSTaskSetList', ], ], ], 'ECSTaskSet' => [ 'type' => 'structure', 'members' => [ 'identifer' => [ 'shape' => 'ECSTaskSetIdentifier', ], 'desiredCount' => [ 'shape' => 'ECSTaskSetCount', ], 'pendingCount' => [ 'shape' => 'ECSTaskSetCount', ], 'runningCount' => [ 'shape' => 'ECSTaskSetCount', ], 'status' => [ 'shape' => 'ECSTaskSetStatus', ], 'trafficWeight' => [ 'shape' => 'TrafficWeight', ], 'targetGroup' => [ 'shape' => 'TargetGroupInfo', ], 'taskSetLabel' => [ 'shape' => 'TargetLabel', ], ], ], 'ECSTaskSetCount' => [ 'type' => 'long', ], 'ECSTaskSetIdentifier' => [ 'type' => 'string', ], 'ECSTaskSetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ECSTaskSet', ], ], 'ECSTaskSetStatus' => [ 'type' => 'string', ], 'ELBInfo' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ELBName', ], ], ], 'ELBInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ELBInfo', ], ], 'ELBName' => [ 'type' => 'string', ], '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', 'ALARM_ACTIVE', 'AGENT_ISSUE', 'AUTO_SCALING_IAM_ROLE_PERMISSIONS', 'AUTO_SCALING_CONFIGURATION', 'MANUAL_STOP', 'MISSING_BLUE_GREEN_DEPLOYMENT_CONFIGURATION', 'MISSING_ELB_INFORMATION', 'MISSING_GITHUB_TOKEN', 'ELASTIC_LOAD_BALANCING_INVALID', 'ELB_INVALID_INSTANCE', 'INVALID_LAMBDA_CONFIGURATION', 'INVALID_LAMBDA_FUNCTION', 'HOOK_EXECUTION_FAILURE', 'AUTOSCALING_VALIDATION_ERROR', 'INVALID_ECS_SERVICE', 'ECS_UPDATE_ERROR', 'INVALID_REVISION', ], ], 'ErrorInformation' => [ 'type' => 'structure', 'members' => [ 'code' => [ 'shape' => 'ErrorCode', ], 'message' => [ 'shape' => 'ErrorMessage', ], ], ], 'ErrorMessage' => [ 'type' => 'string', ], 'FileExistsBehavior' => [ 'type' => 'string', 'enum' => [ 'DISALLOW', 'OVERWRITE', 'RETAIN', ], ], 'FilterValue' => [ 'type' => 'string', ], 'FilterValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FilterValue', ], ], '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', ], ], ], 'GetDeploymentTargetInput' => [ 'type' => 'structure', 'members' => [ 'deploymentId' => [ 'shape' => 'DeploymentId', ], 'targetId' => [ 'shape' => 'TargetId', ], ], ], 'GetDeploymentTargetOutput' => [ 'type' => 'structure', 'members' => [ 'deploymentTarget' => [ 'shape' => 'DeploymentTarget', ], ], ], 'GetOnPremisesInstanceInput' => [ 'type' => 'structure', 'required' => [ 'instanceName', ], 'members' => [ 'instanceName' => [ 'shape' => 'InstanceName', ], ], ], 'GetOnPremisesInstanceOutput' => [ 'type' => 'structure', 'members' => [ 'instanceInfo' => [ 'shape' => 'InstanceInfo', ], ], ], 'GitHubAccountTokenDoesNotExistException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'GitHubAccountTokenName' => [ 'type' => 'string', ], 'GitHubAccountTokenNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GitHubAccountTokenName', ], ], 'GitHubAccountTokenNameRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'GitHubLocation' => [ 'type' => 'structure', 'members' => [ 'repository' => [ 'shape' => 'Repository', ], 'commitId' => [ 'shape' => 'CommitId', ], ], ], 'GreenFleetProvisioningAction' => [ 'type' => 'string', 'enum' => [ 'DISCOVER_EXISTING', 'COPY_AUTO_SCALING_GROUP', ], ], 'GreenFleetProvisioningOption' => [ 'type' => 'structure', 'members' => [ 'action' => [ 'shape' => 'GreenFleetProvisioningAction', ], ], ], 'IamArnRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'IamSessionArn' => [ 'type' => 'string', ], 'IamSessionArnAlreadyRegisteredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'IamUserArn' => [ 'type' => 'string', ], 'IamUserArnAlreadyRegisteredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'IamUserArnRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InstanceAction' => [ 'type' => 'string', 'enum' => [ 'TERMINATE', 'KEEP_ALIVE', ], ], 'InstanceArn' => [ 'type' => 'string', ], 'InstanceCount' => [ 'type' => 'long', ], 'InstanceDoesNotExistException' => [ 'type' => 'structure', 'members' => [], 'deprecated' => true, 'deprecatedMessage' => 'This exception is deprecated, use DeploymentTargetDoesNotExistException instead.', 'exception' => true, ], 'InstanceId' => [ 'type' => 'string', ], 'InstanceIdRequiredException' => [ 'type' => 'structure', 'members' => [], 'deprecated' => true, 'deprecatedMessage' => 'This exception is deprecated, use DeploymentTargetIdRequiredException instead.', 'exception' => true, ], 'InstanceInfo' => [ 'type' => 'structure', 'members' => [ 'instanceName' => [ 'shape' => 'InstanceName', ], 'iamSessionArn' => [ 'shape' => 'IamSessionArn', ], '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', 'deprecated' => true, 'deprecatedMessage' => 'InstanceStatus is deprecated, use TargetStatus instead.', 'enum' => [ 'Pending', 'InProgress', 'Succeeded', 'Failed', 'Skipped', 'Unknown', 'Ready', ], ], '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', ], 'instanceType' => [ 'shape' => 'InstanceType', ], ], 'deprecated' => true, 'deprecatedMessage' => 'InstanceSummary is deprecated, use DeploymentTarget instead.', ], 'InstanceSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceSummary', ], ], 'InstanceTarget' => [ 'type' => 'structure', 'members' => [ 'deploymentId' => [ 'shape' => 'DeploymentId', ], 'targetId' => [ 'shape' => 'TargetId', ], 'targetArn' => [ 'shape' => 'TargetArn', ], 'status' => [ 'shape' => 'TargetStatus', ], 'lastUpdatedAt' => [ 'shape' => 'Time', ], 'lifecycleEvents' => [ 'shape' => 'LifecycleEventList', ], 'instanceLabel' => [ 'shape' => 'TargetLabel', ], ], ], 'InstanceType' => [ 'type' => 'string', 'enum' => [ 'Blue', 'Green', ], ], 'InstanceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceType', ], ], 'InstancesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceId', ], ], 'InvalidAlarmConfigException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidApplicationNameException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidAutoRollbackConfigException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidAutoScalingGroupException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidBlueGreenDeploymentConfigurationException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidBucketNameFilterException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidComputePlatformException' => [ '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, ], 'InvalidDeploymentInstanceTypeException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidDeploymentStatusException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidDeploymentStyleException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidDeploymentTargetIdException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidDeploymentWaitTypeException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidEC2TagCombinationException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidEC2TagException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidECSServiceException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidFileExistsBehaviorException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidGitHubAccountTokenException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidGitHubAccountTokenNameException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidIamSessionArnException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidIamUserArnException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidIgnoreApplicationStopFailuresValueException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidInputException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidInstanceIdException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidInstanceNameException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidInstanceStatusException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidInstanceTypeException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidKeyPrefixFilterException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidLifecycleEventHookExecutionIdException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidLifecycleEventHookExecutionStatusException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidLoadBalancerInfoException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidMinimumHealthyHostValueException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidOnPremisesTagCombinationException' => [ '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, ], 'InvalidTargetException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidTargetFilterNameException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidTargetGroupPairException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidTargetInstancesException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidTimeRangeException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidTrafficRoutingConfigurationException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidTriggerConfigException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidUpdateOutdatedInstancesOnlyValueException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Key' => [ 'type' => 'string', ], 'LambdaTarget' => [ 'type' => 'structure', 'members' => [ 'deploymentId' => [ 'shape' => 'DeploymentId', ], 'targetId' => [ 'shape' => 'TargetId', ], 'targetArn' => [ 'shape' => 'TargetArn', ], 'status' => [ 'shape' => 'TargetStatus', ], 'lastUpdatedAt' => [ 'shape' => 'Time', ], 'lifecycleEvents' => [ 'shape' => 'LifecycleEventList', ], ], ], 'LastDeploymentInfo' => [ 'type' => 'structure', 'members' => [ 'deploymentId' => [ 'shape' => 'DeploymentId', ], 'status' => [ 'shape' => 'DeploymentStatus', ], 'endTime' => [ 'shape' => 'Timestamp', ], 'createTime' => [ 'shape' => 'Timestamp', ], ], ], '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', ], ], ], 'LifecycleEventAlreadyCompletedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'LifecycleEventHookExecutionId' => [ 'type' => 'string', ], 'LifecycleEventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LifecycleEvent', ], ], 'LifecycleEventName' => [ 'type' => 'string', ], 'LifecycleEventStatus' => [ 'type' => 'string', 'enum' => [ 'Pending', 'InProgress', 'Succeeded', 'Failed', 'Skipped', 'Unknown', ], ], 'LifecycleHookLimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], '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', ], 'instanceTypeFilter' => [ 'shape' => 'InstanceTypeList', ], ], ], 'ListDeploymentInstancesOutput' => [ 'type' => 'structure', 'members' => [ 'instancesList' => [ 'shape' => 'InstancesList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDeploymentTargetsInput' => [ 'type' => 'structure', 'members' => [ 'deploymentId' => [ 'shape' => 'DeploymentId', ], 'nextToken' => [ 'shape' => 'NextToken', ], 'targetFilters' => [ 'shape' => 'TargetFilters', ], ], ], 'ListDeploymentTargetsOutput' => [ 'type' => 'structure', 'members' => [ 'targetIds' => [ 'shape' => 'TargetIdList', ], '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', ], ], ], 'ListGitHubAccountTokenNamesInput' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListGitHubAccountTokenNamesOutput' => [ 'type' => 'structure', 'members' => [ 'tokenNameList' => [ 'shape' => 'GitHubAccountTokenNameList', ], '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', ], ], 'ListenerArn' => [ 'type' => 'string', ], 'ListenerArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ListenerArn', ], ], 'LoadBalancerInfo' => [ 'type' => 'structure', 'members' => [ 'elbInfoList' => [ 'shape' => 'ELBInfoList', ], 'targetGroupInfoList' => [ 'shape' => 'TargetGroupInfoList', ], 'targetGroupPairInfoList' => [ 'shape' => 'TargetGroupPairInfoList', ], ], ], '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', ], 'MultipleIamArnsProvidedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'NextToken' => [ 'type' => 'string', ], 'NullableBoolean' => [ 'type' => 'boolean', ], 'OnPremisesTagSet' => [ 'type' => 'structure', 'members' => [ 'onPremisesTagSetList' => [ 'shape' => 'OnPremisesTagSetList', ], ], ], 'OnPremisesTagSetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagFilterList', ], ], 'OperationNotSupportedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Percentage' => [ 'type' => 'integer', ], 'PutLifecycleEventHookExecutionStatusInput' => [ 'type' => 'structure', 'members' => [ 'deploymentId' => [ 'shape' => 'DeploymentId', ], 'lifecycleEventHookExecutionId' => [ 'shape' => 'LifecycleEventHookExecutionId', ], 'status' => [ 'shape' => 'LifecycleEventStatus', ], ], ], 'PutLifecycleEventHookExecutionStatusOutput' => [ 'type' => 'structure', 'members' => [ 'lifecycleEventHookExecutionId' => [ 'shape' => 'LifecycleEventHookExecutionId', ], ], ], 'RawString' => [ 'type' => 'structure', 'members' => [ 'content' => [ 'shape' => 'RawStringContent', ], 'sha256' => [ 'shape' => 'RawStringSha256', ], ], 'deprecated' => true, 'deprecatedMessage' => 'RawString and String revision type are deprecated, use AppSpecContent type instead.', ], 'RawStringContent' => [ 'type' => 'string', ], 'RawStringSha256' => [ 'type' => 'string', ], 'RegisterApplicationRevisionInput' => [ 'type' => 'structure', 'required' => [ 'applicationName', 'revision', ], 'members' => [ 'applicationName' => [ 'shape' => 'ApplicationName', ], 'description' => [ 'shape' => 'Description', ], 'revision' => [ 'shape' => 'RevisionLocation', ], ], ], 'RegisterOnPremisesInstanceInput' => [ 'type' => 'structure', 'required' => [ 'instanceName', ], 'members' => [ 'instanceName' => [ 'shape' => 'InstanceName', ], 'iamSessionArn' => [ 'shape' => 'IamSessionArn', ], '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', ], 'ResourceValidationException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'RevisionDoesNotExistException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'RevisionInfo' => [ 'type' => 'structure', 'members' => [ 'revisionLocation' => [ 'shape' => 'RevisionLocation', ], 'genericRevisionInfo' => [ 'shape' => 'GenericRevisionInfo', ], ], ], 'RevisionInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RevisionInfo', ], ], 'RevisionLocation' => [ 'type' => 'structure', 'members' => [ 'revisionType' => [ 'shape' => 'RevisionLocationType', ], 's3Location' => [ 'shape' => 'S3Location', ], 'gitHubLocation' => [ 'shape' => 'GitHubLocation', ], 'string' => [ 'shape' => 'RawString', ], 'appSpecContent' => [ 'shape' => 'AppSpecContent', ], ], ], 'RevisionLocationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RevisionLocation', ], ], 'RevisionLocationType' => [ 'type' => 'string', 'enum' => [ 'S3', 'GitHub', 'String', 'AppSpecContent', ], ], 'RevisionRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Role' => [ 'type' => 'string', ], 'RoleRequiredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'RollbackInfo' => [ 'type' => 'structure', 'members' => [ 'rollbackDeploymentId' => [ 'shape' => 'DeploymentId', ], 'rollbackTriggeringDeploymentId' => [ 'shape' => 'DeploymentId', ], 'rollbackMessage' => [ 'shape' => 'Description', ], ], ], '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', ], 'SkipWaitTimeForInstanceTerminationInput' => [ 'type' => 'structure', 'members' => [ 'deploymentId' => [ 'shape' => 'DeploymentId', ], ], ], 'SortOrder' => [ 'type' => 'string', 'enum' => [ 'ascending', 'descending', ], ], 'StopDeploymentInput' => [ 'type' => 'structure', 'required' => [ 'deploymentId', ], 'members' => [ 'deploymentId' => [ 'shape' => 'DeploymentId', ], 'autoRollbackEnabled' => [ 'shape' => 'NullableBoolean', ], ], ], '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, ], 'TagSetListLimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'TargetArn' => [ 'type' => 'string', ], 'TargetFilterName' => [ 'type' => 'string', 'enum' => [ 'TargetStatus', 'ServerInstanceLabel', ], ], 'TargetFilters' => [ 'type' => 'map', 'key' => [ 'shape' => 'TargetFilterName', ], 'value' => [ 'shape' => 'FilterValueList', ], ], 'TargetGroupInfo' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'TargetGroupName', ], ], ], 'TargetGroupInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetGroupInfo', ], ], 'TargetGroupName' => [ 'type' => 'string', ], 'TargetGroupPairInfo' => [ 'type' => 'structure', 'members' => [ 'targetGroups' => [ 'shape' => 'TargetGroupInfoList', ], 'prodTrafficRoute' => [ 'shape' => 'TrafficRoute', ], 'testTrafficRoute' => [ 'shape' => 'TrafficRoute', ], ], ], 'TargetGroupPairInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetGroupPairInfo', ], ], 'TargetId' => [ 'type' => 'string', ], 'TargetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetId', ], ], 'TargetInstances' => [ 'type' => 'structure', 'members' => [ 'tagFilters' => [ 'shape' => 'EC2TagFilterList', ], 'autoScalingGroups' => [ 'shape' => 'AutoScalingGroupNameList', ], 'ec2TagSet' => [ 'shape' => 'EC2TagSet', ], ], ], 'TargetLabel' => [ 'type' => 'string', 'enum' => [ 'Blue', 'Green', ], ], 'TargetStatus' => [ 'type' => 'string', 'enum' => [ 'Pending', 'InProgress', 'Succeeded', 'Failed', 'Skipped', 'Unknown', 'Ready', ], ], 'ThrottlingException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Time' => [ 'type' => 'timestamp', ], 'TimeBasedCanary' => [ 'type' => 'structure', 'members' => [ 'canaryPercentage' => [ 'shape' => 'Percentage', ], 'canaryInterval' => [ 'shape' => 'WaitTimeInMins', ], ], ], 'TimeBasedLinear' => [ 'type' => 'structure', 'members' => [ 'linearPercentage' => [ 'shape' => 'Percentage', ], 'linearInterval' => [ 'shape' => 'WaitTimeInMins', ], ], ], 'TimeRange' => [ 'type' => 'structure', 'members' => [ 'start' => [ 'shape' => 'Timestamp', ], 'end' => [ 'shape' => 'Timestamp', ], ], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TrafficRoute' => [ 'type' => 'structure', 'members' => [ 'listenerArns' => [ 'shape' => 'ListenerArnList', ], ], ], 'TrafficRoutingConfig' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'TrafficRoutingType', ], 'timeBasedCanary' => [ 'shape' => 'TimeBasedCanary', ], 'timeBasedLinear' => [ 'shape' => 'TimeBasedLinear', ], ], ], 'TrafficRoutingType' => [ 'type' => 'string', 'enum' => [ 'TimeBasedCanary', 'TimeBasedLinear', 'AllAtOnce', ], ], 'TrafficWeight' => [ 'type' => 'double', ], 'TriggerConfig' => [ 'type' => 'structure', 'members' => [ 'triggerName' => [ 'shape' => 'TriggerName', ], 'triggerTargetArn' => [ 'shape' => 'TriggerTargetArn', ], 'triggerEvents' => [ 'shape' => 'TriggerEventTypeList', ], ], ], 'TriggerConfigList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TriggerConfig', ], ], 'TriggerEventType' => [ 'type' => 'string', 'enum' => [ 'DeploymentStart', 'DeploymentSuccess', 'DeploymentFailure', 'DeploymentStop', 'DeploymentRollback', 'DeploymentReady', 'InstanceStart', 'InstanceSuccess', 'InstanceFailure', 'InstanceReady', ], ], 'TriggerEventTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TriggerEventType', ], ], 'TriggerName' => [ 'type' => 'string', ], 'TriggerTargetArn' => [ 'type' => 'string', ], 'TriggerTargetsLimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'UnsupportedActionForDeploymentTypeException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], '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', ], 'triggerConfigurations' => [ 'shape' => 'TriggerConfigList', ], 'alarmConfiguration' => [ 'shape' => 'AlarmConfiguration', ], 'autoRollbackConfiguration' => [ 'shape' => 'AutoRollbackConfiguration', ], 'deploymentStyle' => [ 'shape' => 'DeploymentStyle', ], 'blueGreenDeploymentConfiguration' => [ 'shape' => 'BlueGreenDeploymentConfiguration', ], 'loadBalancerInfo' => [ 'shape' => 'LoadBalancerInfo', ], 'ec2TagSet' => [ 'shape' => 'EC2TagSet', ], 'ecsServices' => [ 'shape' => 'ECSServiceList', ], 'onPremisesTagSet' => [ 'shape' => 'OnPremisesTagSet', ], ], ], 'UpdateDeploymentGroupOutput' => [ 'type' => 'structure', 'members' => [ 'hooksNotCleanedUp' => [ 'shape' => 'AutoScalingGroupList', ], ], ], 'Value' => [ 'type' => 'string', ], 'VersionId' => [ 'type' => 'string', ], 'WaitTimeInMins' => [ 'type' => 'integer', ], ],]; diff --git a/lib/aws/Aws/data/codedeploy/2014-10-06/paginators-1.json.php b/lib/aws/Aws/data/codedeploy/2014-10-06/paginators-1.json.php new file mode 100644 index 0000000..53f83a2 --- /dev/null +++ b/lib/aws/Aws/data/codedeploy/2014-10-06/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/codedeploy/2014-10-06/paginators-1.json +return [ '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/Aws/data/codedeploy/2014-10-06/smoke.json.php b/lib/aws/Aws/data/codedeploy/2014-10-06/smoke.json.php new file mode 100644 index 0000000..28c843b --- /dev/null +++ b/lib/aws/Aws/data/codedeploy/2014-10-06/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/codedeploy/2014-10-06/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListApplications', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'GetDeployment', 'input' => [ 'deploymentId' => 'd-USUAELQEX', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/codedeploy/2014-10-06/waiters-1.json.php b/lib/aws/Aws/data/codedeploy/2014-10-06/waiters-1.json.php new file mode 100644 index 0000000..08d03c4 --- /dev/null +++ b/lib/aws/Aws/data/codedeploy/2014-10-06/waiters-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/codedeploy/2014-10-06/waiters-1.json +return [ 'version' => 2, 'waiters' => [ 'DeploymentSuccessful' => [ 'delay' => 15, 'operation' => 'GetDeployment', 'maxAttempts' => 120, 'acceptors' => [ [ 'expected' => 'Succeeded', 'matcher' => 'path', 'state' => 'success', 'argument' => 'deploymentInfo.status', ], [ 'expected' => 'Failed', 'matcher' => 'path', 'state' => 'failure', 'argument' => 'deploymentInfo.status', ], [ 'expected' => 'Stopped', 'matcher' => 'path', 'state' => 'failure', 'argument' => 'deploymentInfo.status', ], ], ], ],]; diff --git a/lib/aws/Aws/data/codedeploy/2014-10-06/waiters-2.json.php b/lib/aws/Aws/data/codedeploy/2014-10-06/waiters-2.json.php new file mode 100644 index 0000000..560ad97 --- /dev/null +++ b/lib/aws/Aws/data/codedeploy/2014-10-06/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/codedeploy/2014-10-06/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'DeploymentSuccessful' => [ 'delay' => 15, 'operation' => 'GetDeployment', 'maxAttempts' => 120, 'acceptors' => [ [ 'expected' => 'Succeeded', 'matcher' => 'path', 'state' => 'success', 'argument' => 'deploymentInfo.status', ], [ 'expected' => 'Failed', 'matcher' => 'path', 'state' => 'failure', 'argument' => 'deploymentInfo.status', ], [ 'expected' => 'Stopped', 'matcher' => 'path', 'state' => 'failure', 'argument' => 'deploymentInfo.status', ], ], ], ],]; diff --git a/lib/aws/Aws/data/codepipeline/2015-07-09/api-2.json.php b/lib/aws/Aws/data/codepipeline/2015-07-09/api-2.json.php new file mode 100644 index 0000000..4df1656 --- /dev/null +++ b/lib/aws/Aws/data/codepipeline/2015-07-09/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/codepipeline/2015-07-09/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-07-09', 'endpointPrefix' => 'codepipeline', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'CodePipeline', 'serviceFullName' => 'AWS CodePipeline', 'serviceId' => 'CodePipeline', 'signatureVersion' => 'v4', 'targetPrefix' => 'CodePipeline_20150709', 'uid' => 'codepipeline-2015-07-09', ], 'operations' => [ 'AcknowledgeJob' => [ 'name' => 'AcknowledgeJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcknowledgeJobInput', ], 'output' => [ 'shape' => 'AcknowledgeJobOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidNonceException', ], [ 'shape' => 'JobNotFoundException', ], ], ], 'AcknowledgeThirdPartyJob' => [ 'name' => 'AcknowledgeThirdPartyJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcknowledgeThirdPartyJobInput', ], 'output' => [ 'shape' => 'AcknowledgeThirdPartyJobOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidNonceException', ], [ 'shape' => 'JobNotFoundException', ], [ 'shape' => 'InvalidClientTokenException', ], ], ], 'CreateCustomActionType' => [ 'name' => 'CreateCustomActionType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCustomActionTypeInput', ], 'output' => [ 'shape' => 'CreateCustomActionTypeOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreatePipeline' => [ 'name' => 'CreatePipeline', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePipelineInput', ], 'output' => [ 'shape' => 'CreatePipelineOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'PipelineNameInUseException', ], [ 'shape' => 'InvalidStageDeclarationException', ], [ 'shape' => 'InvalidActionDeclarationException', ], [ 'shape' => 'InvalidBlockerDeclarationException', ], [ 'shape' => 'InvalidStructureException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'DeleteCustomActionType' => [ 'name' => 'DeleteCustomActionType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCustomActionTypeInput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], ], ], 'DeletePipeline' => [ 'name' => 'DeletePipeline', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePipelineInput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], ], ], 'DeleteWebhook' => [ 'name' => 'DeleteWebhook', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteWebhookInput', ], 'output' => [ 'shape' => 'DeleteWebhookOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], ], ], 'DeregisterWebhookWithThirdParty' => [ 'name' => 'DeregisterWebhookWithThirdParty', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterWebhookWithThirdPartyInput', ], 'output' => [ 'shape' => 'DeregisterWebhookWithThirdPartyOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'WebhookNotFoundException', ], ], ], 'DisableStageTransition' => [ 'name' => 'DisableStageTransition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableStageTransitionInput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'PipelineNotFoundException', ], [ 'shape' => 'StageNotFoundException', ], ], ], 'EnableStageTransition' => [ 'name' => 'EnableStageTransition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableStageTransitionInput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'PipelineNotFoundException', ], [ 'shape' => 'StageNotFoundException', ], ], ], 'GetJobDetails' => [ 'name' => 'GetJobDetails', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetJobDetailsInput', ], 'output' => [ 'shape' => 'GetJobDetailsOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'JobNotFoundException', ], ], ], 'GetPipeline' => [ 'name' => 'GetPipeline', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPipelineInput', ], 'output' => [ 'shape' => 'GetPipelineOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'PipelineNotFoundException', ], [ 'shape' => 'PipelineVersionNotFoundException', ], ], ], 'GetPipelineExecution' => [ 'name' => 'GetPipelineExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPipelineExecutionInput', ], 'output' => [ 'shape' => 'GetPipelineExecutionOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'PipelineNotFoundException', ], [ 'shape' => 'PipelineExecutionNotFoundException', ], ], ], 'GetPipelineState' => [ 'name' => 'GetPipelineState', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPipelineStateInput', ], 'output' => [ 'shape' => 'GetPipelineStateOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'PipelineNotFoundException', ], ], ], 'GetThirdPartyJobDetails' => [ 'name' => 'GetThirdPartyJobDetails', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetThirdPartyJobDetailsInput', ], 'output' => [ 'shape' => 'GetThirdPartyJobDetailsOutput', ], 'errors' => [ [ 'shape' => 'JobNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidClientTokenException', ], [ 'shape' => 'InvalidJobException', ], ], ], 'ListActionExecutions' => [ 'name' => 'ListActionExecutions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListActionExecutionsInput', ], 'output' => [ 'shape' => 'ListActionExecutionsOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'PipelineNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'PipelineExecutionNotFoundException', ], ], ], 'ListActionTypes' => [ 'name' => 'ListActionTypes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListActionTypesInput', ], 'output' => [ 'shape' => 'ListActionTypesOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListPipelineExecutions' => [ 'name' => 'ListPipelineExecutions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListPipelineExecutionsInput', ], 'output' => [ 'shape' => 'ListPipelineExecutionsOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'PipelineNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListPipelines' => [ 'name' => 'ListPipelines', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListPipelinesInput', ], 'output' => [ 'shape' => 'ListPipelinesOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListWebhooks' => [ 'name' => 'ListWebhooks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListWebhooksInput', ], 'output' => [ 'shape' => 'ListWebhooksOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'PollForJobs' => [ 'name' => 'PollForJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PollForJobsInput', ], 'output' => [ 'shape' => 'PollForJobsOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ActionTypeNotFoundException', ], ], ], 'PollForThirdPartyJobs' => [ 'name' => 'PollForThirdPartyJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PollForThirdPartyJobsInput', ], 'output' => [ 'shape' => 'PollForThirdPartyJobsOutput', ], 'errors' => [ [ 'shape' => 'ActionTypeNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'PutActionRevision' => [ 'name' => 'PutActionRevision', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutActionRevisionInput', ], 'output' => [ 'shape' => 'PutActionRevisionOutput', ], 'errors' => [ [ 'shape' => 'PipelineNotFoundException', ], [ 'shape' => 'StageNotFoundException', ], [ 'shape' => 'ActionNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'PutApprovalResult' => [ 'name' => 'PutApprovalResult', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutApprovalResultInput', ], 'output' => [ 'shape' => 'PutApprovalResultOutput', ], 'errors' => [ [ 'shape' => 'InvalidApprovalTokenException', ], [ 'shape' => 'ApprovalAlreadyCompletedException', ], [ 'shape' => 'PipelineNotFoundException', ], [ 'shape' => 'StageNotFoundException', ], [ 'shape' => 'ActionNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'PutJobFailureResult' => [ 'name' => 'PutJobFailureResult', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutJobFailureResultInput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'JobNotFoundException', ], [ 'shape' => 'InvalidJobStateException', ], ], ], 'PutJobSuccessResult' => [ 'name' => 'PutJobSuccessResult', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutJobSuccessResultInput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'JobNotFoundException', ], [ 'shape' => 'InvalidJobStateException', ], ], ], 'PutThirdPartyJobFailureResult' => [ 'name' => 'PutThirdPartyJobFailureResult', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutThirdPartyJobFailureResultInput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'JobNotFoundException', ], [ 'shape' => 'InvalidJobStateException', ], [ 'shape' => 'InvalidClientTokenException', ], ], ], 'PutThirdPartyJobSuccessResult' => [ 'name' => 'PutThirdPartyJobSuccessResult', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutThirdPartyJobSuccessResultInput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'JobNotFoundException', ], [ 'shape' => 'InvalidJobStateException', ], [ 'shape' => 'InvalidClientTokenException', ], ], ], 'PutWebhook' => [ 'name' => 'PutWebhook', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutWebhookInput', ], 'output' => [ 'shape' => 'PutWebhookOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidWebhookFilterPatternException', ], [ 'shape' => 'InvalidWebhookAuthenticationParametersException', ], [ 'shape' => 'PipelineNotFoundException', ], ], ], 'RegisterWebhookWithThirdParty' => [ 'name' => 'RegisterWebhookWithThirdParty', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterWebhookWithThirdPartyInput', ], 'output' => [ 'shape' => 'RegisterWebhookWithThirdPartyOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'WebhookNotFoundException', ], ], ], 'RetryStageExecution' => [ 'name' => 'RetryStageExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RetryStageExecutionInput', ], 'output' => [ 'shape' => 'RetryStageExecutionOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'PipelineNotFoundException', ], [ 'shape' => 'StageNotFoundException', ], [ 'shape' => 'StageNotRetryableException', ], [ 'shape' => 'NotLatestPipelineExecutionException', ], ], ], 'StartPipelineExecution' => [ 'name' => 'StartPipelineExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartPipelineExecutionInput', ], 'output' => [ 'shape' => 'StartPipelineExecutionOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'PipelineNotFoundException', ], ], ], 'UpdatePipeline' => [ 'name' => 'UpdatePipeline', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdatePipelineInput', ], 'output' => [ 'shape' => 'UpdatePipelineOutput', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidStageDeclarationException', ], [ 'shape' => 'InvalidActionDeclarationException', ], [ 'shape' => 'InvalidBlockerDeclarationException', ], [ 'shape' => 'InvalidStructureException', ], [ 'shape' => 'LimitExceededException', ], ], ], ], 'shapes' => [ 'AWSRegionName' => [ 'type' => 'string', 'max' => 30, 'min' => 4, ], 'AWSSessionCredentials' => [ 'type' => 'structure', 'required' => [ 'accessKeyId', 'secretAccessKey', 'sessionToken', ], 'members' => [ 'accessKeyId' => [ 'shape' => 'AccessKeyId', ], 'secretAccessKey' => [ 'shape' => 'SecretAccessKey', ], 'sessionToken' => [ 'shape' => 'SessionToken', ], ], 'sensitive' => true, ], 'AccessKeyId' => [ 'type' => 'string', ], 'AccountId' => [ 'type' => 'string', 'pattern' => '[0-9]{12}', ], 'AcknowledgeJobInput' => [ 'type' => 'structure', 'required' => [ 'jobId', 'nonce', ], 'members' => [ 'jobId' => [ 'shape' => 'JobId', ], 'nonce' => [ 'shape' => 'Nonce', ], ], ], 'AcknowledgeJobOutput' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'JobStatus', ], ], ], 'AcknowledgeThirdPartyJobInput' => [ 'type' => 'structure', 'required' => [ 'jobId', 'nonce', 'clientToken', ], 'members' => [ 'jobId' => [ 'shape' => 'ThirdPartyJobId', ], 'nonce' => [ 'shape' => 'Nonce', ], 'clientToken' => [ 'shape' => 'ClientToken', ], ], ], 'AcknowledgeThirdPartyJobOutput' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'JobStatus', ], ], ], 'ActionCategory' => [ 'type' => 'string', 'enum' => [ 'Source', 'Build', 'Deploy', 'Test', 'Invoke', 'Approval', ], ], 'ActionConfiguration' => [ 'type' => 'structure', 'members' => [ 'configuration' => [ 'shape' => 'ActionConfigurationMap', ], ], ], 'ActionConfigurationKey' => [ 'type' => 'string', 'max' => 50, 'min' => 1, ], 'ActionConfigurationMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'ActionConfigurationKey', ], 'value' => [ 'shape' => 'ActionConfigurationValue', ], ], 'ActionConfigurationProperty' => [ 'type' => 'structure', 'required' => [ 'name', 'required', 'key', 'secret', ], 'members' => [ 'name' => [ 'shape' => 'ActionConfigurationKey', ], 'required' => [ 'shape' => 'Boolean', ], 'key' => [ 'shape' => 'Boolean', ], 'secret' => [ 'shape' => 'Boolean', ], 'queryable' => [ 'shape' => 'Boolean', ], 'description' => [ 'shape' => 'Description', ], 'type' => [ 'shape' => 'ActionConfigurationPropertyType', ], ], ], 'ActionConfigurationPropertyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ActionConfigurationProperty', ], 'max' => 10, ], 'ActionConfigurationPropertyType' => [ 'type' => 'string', 'enum' => [ 'String', 'Number', 'Boolean', ], ], 'ActionConfigurationQueryableValue' => [ 'type' => 'string', 'max' => 50, 'min' => 1, 'pattern' => '[a-zA-Z0-9_-]+', ], 'ActionConfigurationValue' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, ], 'ActionContext' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ActionName', ], ], ], 'ActionDeclaration' => [ 'type' => 'structure', 'required' => [ 'name', 'actionTypeId', ], 'members' => [ 'name' => [ 'shape' => 'ActionName', ], 'actionTypeId' => [ 'shape' => 'ActionTypeId', ], 'runOrder' => [ 'shape' => 'ActionRunOrder', ], 'configuration' => [ 'shape' => 'ActionConfigurationMap', ], 'outputArtifacts' => [ 'shape' => 'OutputArtifactList', ], 'inputArtifacts' => [ 'shape' => 'InputArtifactList', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'region' => [ 'shape' => 'AWSRegionName', ], ], ], 'ActionExecution' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'ActionExecutionStatus', ], 'summary' => [ 'shape' => 'ExecutionSummary', ], 'lastStatusChange' => [ 'shape' => 'Timestamp', ], 'token' => [ 'shape' => 'ActionExecutionToken', ], 'lastUpdatedBy' => [ 'shape' => 'LastUpdatedBy', ], 'externalExecutionId' => [ 'shape' => 'ExecutionId', ], 'externalExecutionUrl' => [ 'shape' => 'Url', ], 'percentComplete' => [ 'shape' => 'Percentage', ], 'errorDetails' => [ 'shape' => 'ErrorDetails', ], ], ], 'ActionExecutionDetail' => [ 'type' => 'structure', 'members' => [ 'pipelineExecutionId' => [ 'shape' => 'PipelineExecutionId', ], 'actionExecutionId' => [ 'shape' => 'ActionExecutionId', ], 'pipelineVersion' => [ 'shape' => 'PipelineVersion', ], 'stageName' => [ 'shape' => 'StageName', ], 'actionName' => [ 'shape' => 'ActionName', ], 'startTime' => [ 'shape' => 'Timestamp', ], 'lastUpdateTime' => [ 'shape' => 'Timestamp', ], 'status' => [ 'shape' => 'ActionExecutionStatus', ], 'input' => [ 'shape' => 'ActionExecutionInput', ], 'output' => [ 'shape' => 'ActionExecutionOutput', ], ], ], 'ActionExecutionDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ActionExecutionDetail', ], ], 'ActionExecutionFilter' => [ 'type' => 'structure', 'members' => [ 'pipelineExecutionId' => [ 'shape' => 'PipelineExecutionId', ], ], ], 'ActionExecutionId' => [ 'type' => 'string', ], 'ActionExecutionInput' => [ 'type' => 'structure', 'members' => [ 'actionTypeId' => [ 'shape' => 'ActionTypeId', ], 'configuration' => [ 'shape' => 'ActionConfigurationMap', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'region' => [ 'shape' => 'AWSRegionName', ], 'inputArtifacts' => [ 'shape' => 'ArtifactDetailList', ], ], ], 'ActionExecutionOutput' => [ 'type' => 'structure', 'members' => [ 'outputArtifacts' => [ 'shape' => 'ArtifactDetailList', ], 'executionResult' => [ 'shape' => 'ActionExecutionResult', ], ], ], 'ActionExecutionResult' => [ 'type' => 'structure', 'members' => [ 'externalExecutionId' => [ 'shape' => 'ExternalExecutionId', ], 'externalExecutionSummary' => [ 'shape' => 'ExternalExecutionSummary', ], 'externalExecutionUrl' => [ 'shape' => 'Url', ], ], ], 'ActionExecutionStatus' => [ 'type' => 'string', 'enum' => [ 'InProgress', 'Succeeded', 'Failed', ], ], 'ActionExecutionToken' => [ 'type' => 'string', ], 'ActionName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[A-Za-z0-9.@\\-_]+', ], 'ActionNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ActionOwner' => [ 'type' => 'string', 'enum' => [ 'AWS', 'ThirdParty', 'Custom', ], ], 'ActionProvider' => [ 'type' => 'string', 'max' => 25, 'min' => 1, 'pattern' => '[0-9A-Za-z_-]+', ], 'ActionRevision' => [ 'type' => 'structure', 'required' => [ 'revisionId', 'revisionChangeId', 'created', ], 'members' => [ 'revisionId' => [ 'shape' => 'Revision', ], 'revisionChangeId' => [ 'shape' => 'RevisionChangeIdentifier', ], 'created' => [ 'shape' => 'Timestamp', ], ], ], 'ActionRunOrder' => [ 'type' => 'integer', 'max' => 999, 'min' => 1, ], 'ActionState' => [ 'type' => 'structure', 'members' => [ 'actionName' => [ 'shape' => 'ActionName', ], 'currentRevision' => [ 'shape' => 'ActionRevision', ], 'latestExecution' => [ 'shape' => 'ActionExecution', ], 'entityUrl' => [ 'shape' => 'Url', ], 'revisionUrl' => [ 'shape' => 'Url', ], ], ], 'ActionStateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ActionState', ], ], 'ActionType' => [ 'type' => 'structure', 'required' => [ 'id', 'inputArtifactDetails', 'outputArtifactDetails', ], 'members' => [ 'id' => [ 'shape' => 'ActionTypeId', ], 'settings' => [ 'shape' => 'ActionTypeSettings', ], 'actionConfigurationProperties' => [ 'shape' => 'ActionConfigurationPropertyList', ], 'inputArtifactDetails' => [ 'shape' => 'ArtifactDetails', ], 'outputArtifactDetails' => [ 'shape' => 'ArtifactDetails', ], ], ], 'ActionTypeId' => [ 'type' => 'structure', 'required' => [ 'category', 'owner', 'provider', 'version', ], 'members' => [ 'category' => [ 'shape' => 'ActionCategory', ], 'owner' => [ 'shape' => 'ActionOwner', ], 'provider' => [ 'shape' => 'ActionProvider', ], 'version' => [ 'shape' => 'Version', ], ], ], 'ActionTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ActionType', ], ], 'ActionTypeNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ActionTypeSettings' => [ 'type' => 'structure', 'members' => [ 'thirdPartyConfigurationUrl' => [ 'shape' => 'Url', ], 'entityUrlTemplate' => [ 'shape' => 'UrlTemplate', ], 'executionUrlTemplate' => [ 'shape' => 'UrlTemplate', ], 'revisionUrlTemplate' => [ 'shape' => 'UrlTemplate', ], ], ], 'ApprovalAlreadyCompletedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ApprovalResult' => [ 'type' => 'structure', 'required' => [ 'summary', 'status', ], 'members' => [ 'summary' => [ 'shape' => 'ApprovalSummary', ], 'status' => [ 'shape' => 'ApprovalStatus', ], ], ], 'ApprovalStatus' => [ 'type' => 'string', 'enum' => [ 'Approved', 'Rejected', ], ], 'ApprovalSummary' => [ 'type' => 'string', 'max' => 512, 'min' => 0, ], 'ApprovalToken' => [ 'type' => 'string', 'pattern' => '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}', ], 'Artifact' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ArtifactName', ], 'revision' => [ 'shape' => 'Revision', ], 'location' => [ 'shape' => 'ArtifactLocation', ], ], ], 'ArtifactDetail' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ArtifactName', ], 's3location' => [ 'shape' => 'S3Location', ], ], ], 'ArtifactDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ArtifactDetail', ], ], 'ArtifactDetails' => [ 'type' => 'structure', 'required' => [ 'minimumCount', 'maximumCount', ], 'members' => [ 'minimumCount' => [ 'shape' => 'MinimumArtifactCount', ], 'maximumCount' => [ 'shape' => 'MaximumArtifactCount', ], ], ], 'ArtifactList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Artifact', ], ], 'ArtifactLocation' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'ArtifactLocationType', ], 's3Location' => [ 'shape' => 'S3ArtifactLocation', ], ], ], 'ArtifactLocationType' => [ 'type' => 'string', 'enum' => [ 'S3', ], ], 'ArtifactName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[a-zA-Z0-9_\\-]+', ], 'ArtifactRevision' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ArtifactName', ], 'revisionId' => [ 'shape' => 'Revision', ], 'revisionChangeIdentifier' => [ 'shape' => 'RevisionChangeIdentifier', ], 'revisionSummary' => [ 'shape' => 'RevisionSummary', ], 'created' => [ 'shape' => 'Timestamp', ], 'revisionUrl' => [ 'shape' => 'Url', ], ], ], 'ArtifactRevisionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ArtifactRevision', ], ], 'ArtifactStore' => [ 'type' => 'structure', 'required' => [ 'type', 'location', ], 'members' => [ 'type' => [ 'shape' => 'ArtifactStoreType', ], 'location' => [ 'shape' => 'ArtifactStoreLocation', ], 'encryptionKey' => [ 'shape' => 'EncryptionKey', ], ], ], 'ArtifactStoreLocation' => [ 'type' => 'string', 'max' => 63, 'min' => 3, 'pattern' => '[a-zA-Z0-9\\-\\.]+', ], 'ArtifactStoreMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'AWSRegionName', ], 'value' => [ 'shape' => 'ArtifactStore', ], ], 'ArtifactStoreType' => [ 'type' => 'string', 'enum' => [ 'S3', ], ], 'BlockerDeclaration' => [ 'type' => 'structure', 'required' => [ 'name', 'type', ], 'members' => [ 'name' => [ 'shape' => 'BlockerName', ], 'type' => [ 'shape' => 'BlockerType', ], ], ], 'BlockerName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'BlockerType' => [ 'type' => 'string', 'enum' => [ 'Schedule', ], ], 'Boolean' => [ 'type' => 'boolean', ], 'ClientId' => [ 'type' => 'string', 'pattern' => '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}', ], 'ClientRequestToken' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[a-zA-Z0-9-]+$', ], 'ClientToken' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'Code' => [ 'type' => 'string', ], 'ContinuationToken' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'CreateCustomActionTypeInput' => [ 'type' => 'structure', 'required' => [ 'category', 'provider', 'version', 'inputArtifactDetails', 'outputArtifactDetails', ], 'members' => [ 'category' => [ 'shape' => 'ActionCategory', ], 'provider' => [ 'shape' => 'ActionProvider', ], 'version' => [ 'shape' => 'Version', ], 'settings' => [ 'shape' => 'ActionTypeSettings', ], 'configurationProperties' => [ 'shape' => 'ActionConfigurationPropertyList', ], 'inputArtifactDetails' => [ 'shape' => 'ArtifactDetails', ], 'outputArtifactDetails' => [ 'shape' => 'ArtifactDetails', ], ], ], 'CreateCustomActionTypeOutput' => [ 'type' => 'structure', 'required' => [ 'actionType', ], 'members' => [ 'actionType' => [ 'shape' => 'ActionType', ], ], ], 'CreatePipelineInput' => [ 'type' => 'structure', 'required' => [ 'pipeline', ], 'members' => [ 'pipeline' => [ 'shape' => 'PipelineDeclaration', ], ], ], 'CreatePipelineOutput' => [ 'type' => 'structure', 'members' => [ 'pipeline' => [ 'shape' => 'PipelineDeclaration', ], ], ], 'CurrentRevision' => [ 'type' => 'structure', 'required' => [ 'revision', 'changeIdentifier', ], 'members' => [ 'revision' => [ 'shape' => 'Revision', ], 'changeIdentifier' => [ 'shape' => 'RevisionChangeIdentifier', ], 'created' => [ 'shape' => 'Time', ], 'revisionSummary' => [ 'shape' => 'RevisionSummary', ], ], ], 'DeleteCustomActionTypeInput' => [ 'type' => 'structure', 'required' => [ 'category', 'provider', 'version', ], 'members' => [ 'category' => [ 'shape' => 'ActionCategory', ], 'provider' => [ 'shape' => 'ActionProvider', ], 'version' => [ 'shape' => 'Version', ], ], ], 'DeletePipelineInput' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'PipelineName', ], ], ], 'DeleteWebhookInput' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'WebhookName', ], ], ], 'DeleteWebhookOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeregisterWebhookWithThirdPartyInput' => [ 'type' => 'structure', 'members' => [ 'webhookName' => [ 'shape' => 'WebhookName', ], ], ], 'DeregisterWebhookWithThirdPartyOutput' => [ 'type' => 'structure', 'members' => [], ], 'Description' => [ 'type' => 'string', 'max' => 160, 'min' => 1, ], 'DisableStageTransitionInput' => [ 'type' => 'structure', 'required' => [ 'pipelineName', 'stageName', 'transitionType', 'reason', ], 'members' => [ 'pipelineName' => [ 'shape' => 'PipelineName', ], 'stageName' => [ 'shape' => 'StageName', ], 'transitionType' => [ 'shape' => 'StageTransitionType', ], 'reason' => [ 'shape' => 'DisabledReason', ], ], ], 'DisabledReason' => [ 'type' => 'string', 'max' => 300, 'min' => 1, 'pattern' => '[a-zA-Z0-9!@ \\(\\)\\.\\*\\?\\-]+', ], 'EnableStageTransitionInput' => [ 'type' => 'structure', 'required' => [ 'pipelineName', 'stageName', 'transitionType', ], 'members' => [ 'pipelineName' => [ 'shape' => 'PipelineName', ], 'stageName' => [ 'shape' => 'StageName', ], 'transitionType' => [ 'shape' => 'StageTransitionType', ], ], ], 'Enabled' => [ 'type' => 'boolean', ], 'EncryptionKey' => [ 'type' => 'structure', 'required' => [ 'id', 'type', ], 'members' => [ 'id' => [ 'shape' => 'EncryptionKeyId', ], 'type' => [ 'shape' => 'EncryptionKeyType', ], ], ], 'EncryptionKeyId' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'EncryptionKeyType' => [ 'type' => 'string', 'enum' => [ 'KMS', ], ], 'ErrorDetails' => [ 'type' => 'structure', 'members' => [ 'code' => [ 'shape' => 'Code', ], 'message' => [ 'shape' => 'Message', ], ], ], 'ExecutionDetails' => [ 'type' => 'structure', 'members' => [ 'summary' => [ 'shape' => 'ExecutionSummary', ], 'externalExecutionId' => [ 'shape' => 'ExecutionId', ], 'percentComplete' => [ 'shape' => 'Percentage', ], ], ], 'ExecutionId' => [ 'type' => 'string', 'max' => 1500, 'min' => 1, ], 'ExecutionSummary' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'ExternalExecutionId' => [ 'type' => 'string', ], 'ExternalExecutionSummary' => [ 'type' => 'string', ], 'FailureDetails' => [ 'type' => 'structure', 'required' => [ 'type', 'message', ], 'members' => [ 'type' => [ 'shape' => 'FailureType', ], 'message' => [ 'shape' => 'Message', ], 'externalExecutionId' => [ 'shape' => 'ExecutionId', ], ], ], 'FailureType' => [ 'type' => 'string', 'enum' => [ 'JobFailed', 'ConfigurationError', 'PermissionError', 'RevisionOutOfSync', 'RevisionUnavailable', 'SystemUnavailable', ], ], 'GetJobDetailsInput' => [ 'type' => 'structure', 'required' => [ 'jobId', ], 'members' => [ 'jobId' => [ 'shape' => 'JobId', ], ], ], 'GetJobDetailsOutput' => [ 'type' => 'structure', 'members' => [ 'jobDetails' => [ 'shape' => 'JobDetails', ], ], ], 'GetPipelineExecutionInput' => [ 'type' => 'structure', 'required' => [ 'pipelineName', 'pipelineExecutionId', ], 'members' => [ 'pipelineName' => [ 'shape' => 'PipelineName', ], 'pipelineExecutionId' => [ 'shape' => 'PipelineExecutionId', ], ], ], 'GetPipelineExecutionOutput' => [ 'type' => 'structure', 'members' => [ 'pipelineExecution' => [ 'shape' => 'PipelineExecution', ], ], ], 'GetPipelineInput' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'PipelineName', ], 'version' => [ 'shape' => 'PipelineVersion', ], ], ], 'GetPipelineOutput' => [ 'type' => 'structure', 'members' => [ 'pipeline' => [ 'shape' => 'PipelineDeclaration', ], 'metadata' => [ 'shape' => 'PipelineMetadata', ], ], ], 'GetPipelineStateInput' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'PipelineName', ], ], ], 'GetPipelineStateOutput' => [ 'type' => 'structure', 'members' => [ 'pipelineName' => [ 'shape' => 'PipelineName', ], 'pipelineVersion' => [ 'shape' => 'PipelineVersion', ], 'stageStates' => [ 'shape' => 'StageStateList', ], 'created' => [ 'shape' => 'Timestamp', ], 'updated' => [ 'shape' => 'Timestamp', ], ], ], 'GetThirdPartyJobDetailsInput' => [ 'type' => 'structure', 'required' => [ 'jobId', 'clientToken', ], 'members' => [ 'jobId' => [ 'shape' => 'ThirdPartyJobId', ], 'clientToken' => [ 'shape' => 'ClientToken', ], ], ], 'GetThirdPartyJobDetailsOutput' => [ 'type' => 'structure', 'members' => [ 'jobDetails' => [ 'shape' => 'ThirdPartyJobDetails', ], ], ], 'InputArtifact' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'ArtifactName', ], ], ], 'InputArtifactList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InputArtifact', ], ], 'InvalidActionDeclarationException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidApprovalTokenException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidBlockerDeclarationException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidClientTokenException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidJobException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidJobStateException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidNonceException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidStageDeclarationException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidStructureException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidWebhookAuthenticationParametersException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidWebhookFilterPatternException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Job' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'JobId', ], 'data' => [ 'shape' => 'JobData', ], 'nonce' => [ 'shape' => 'Nonce', ], 'accountId' => [ 'shape' => 'AccountId', ], ], ], 'JobData' => [ 'type' => 'structure', 'members' => [ 'actionTypeId' => [ 'shape' => 'ActionTypeId', ], 'actionConfiguration' => [ 'shape' => 'ActionConfiguration', ], 'pipelineContext' => [ 'shape' => 'PipelineContext', ], 'inputArtifacts' => [ 'shape' => 'ArtifactList', ], 'outputArtifacts' => [ 'shape' => 'ArtifactList', ], 'artifactCredentials' => [ 'shape' => 'AWSSessionCredentials', ], 'continuationToken' => [ 'shape' => 'ContinuationToken', ], 'encryptionKey' => [ 'shape' => 'EncryptionKey', ], ], ], 'JobDetails' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'JobId', ], 'data' => [ 'shape' => 'JobData', ], 'accountId' => [ 'shape' => 'AccountId', ], ], ], 'JobId' => [ 'type' => 'string', 'pattern' => '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}', ], 'JobList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Job', ], ], 'JobNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'JobStatus' => [ 'type' => 'string', 'enum' => [ 'Created', 'Queued', 'Dispatched', 'InProgress', 'TimedOut', 'Succeeded', 'Failed', ], ], 'JsonPath' => [ 'type' => 'string', 'max' => 150, 'min' => 1, ], 'LastChangedAt' => [ 'type' => 'timestamp', ], 'LastChangedBy' => [ 'type' => 'string', ], 'LastUpdatedBy' => [ 'type' => 'string', ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ListActionExecutionsInput' => [ 'type' => 'structure', 'required' => [ 'pipelineName', ], 'members' => [ 'pipelineName' => [ 'shape' => 'PipelineName', ], 'filter' => [ 'shape' => 'ActionExecutionFilter', ], 'maxResults' => [ 'shape' => 'MaxResults', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListActionExecutionsOutput' => [ 'type' => 'structure', 'members' => [ 'actionExecutionDetails' => [ 'shape' => 'ActionExecutionDetailList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListActionTypesInput' => [ 'type' => 'structure', 'members' => [ 'actionOwnerFilter' => [ 'shape' => 'ActionOwner', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListActionTypesOutput' => [ 'type' => 'structure', 'required' => [ 'actionTypes', ], 'members' => [ 'actionTypes' => [ 'shape' => 'ActionTypeList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPipelineExecutionsInput' => [ 'type' => 'structure', 'required' => [ 'pipelineName', ], 'members' => [ 'pipelineName' => [ 'shape' => 'PipelineName', ], 'maxResults' => [ 'shape' => 'MaxResults', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPipelineExecutionsOutput' => [ 'type' => 'structure', 'members' => [ 'pipelineExecutionSummaries' => [ 'shape' => 'PipelineExecutionSummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPipelinesInput' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPipelinesOutput' => [ 'type' => 'structure', 'members' => [ 'pipelines' => [ 'shape' => 'PipelineList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListWebhookItem' => [ 'type' => 'structure', 'required' => [ 'definition', 'url', ], 'members' => [ 'definition' => [ 'shape' => 'WebhookDefinition', ], 'url' => [ 'shape' => 'WebhookUrl', ], 'errorMessage' => [ 'shape' => 'WebhookErrorMessage', ], 'errorCode' => [ 'shape' => 'WebhookErrorCode', ], 'lastTriggered' => [ 'shape' => 'WebhookLastTriggered', ], 'arn' => [ 'shape' => 'WebhookArn', ], ], ], 'ListWebhooksInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListWebhooksOutput' => [ 'type' => 'structure', 'members' => [ 'webhooks' => [ 'shape' => 'WebhookList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'MatchEquals' => [ 'type' => 'string', 'max' => 150, 'min' => 1, ], 'MaxBatchSize' => [ 'type' => 'integer', 'min' => 1, ], 'MaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'MaximumArtifactCount' => [ 'type' => 'integer', 'max' => 5, 'min' => 0, ], 'Message' => [ 'type' => 'string', 'max' => 5000, 'min' => 1, ], 'MinimumArtifactCount' => [ 'type' => 'integer', 'max' => 5, 'min' => 0, ], 'NextToken' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'Nonce' => [ 'type' => 'string', 'max' => 50, 'min' => 1, ], 'NotLatestPipelineExecutionException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'OutputArtifact' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'ArtifactName', ], ], ], 'OutputArtifactList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OutputArtifact', ], ], 'Percentage' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'PipelineArn' => [ 'type' => 'string', 'pattern' => 'arn:aws(-[\\w]+)*:codepipeline:.+:[0-9]{12}:.+', ], 'PipelineContext' => [ 'type' => 'structure', 'members' => [ 'pipelineName' => [ 'shape' => 'PipelineName', ], 'stage' => [ 'shape' => 'StageContext', ], 'action' => [ 'shape' => 'ActionContext', ], ], ], 'PipelineDeclaration' => [ 'type' => 'structure', 'required' => [ 'name', 'roleArn', 'stages', ], 'members' => [ 'name' => [ 'shape' => 'PipelineName', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'artifactStore' => [ 'shape' => 'ArtifactStore', ], 'artifactStores' => [ 'shape' => 'ArtifactStoreMap', ], 'stages' => [ 'shape' => 'PipelineStageDeclarationList', ], 'version' => [ 'shape' => 'PipelineVersion', ], ], ], 'PipelineExecution' => [ 'type' => 'structure', 'members' => [ 'pipelineName' => [ 'shape' => 'PipelineName', ], 'pipelineVersion' => [ 'shape' => 'PipelineVersion', ], 'pipelineExecutionId' => [ 'shape' => 'PipelineExecutionId', ], 'status' => [ 'shape' => 'PipelineExecutionStatus', ], 'artifactRevisions' => [ 'shape' => 'ArtifactRevisionList', ], ], ], 'PipelineExecutionId' => [ 'type' => 'string', 'pattern' => '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}', ], 'PipelineExecutionNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'PipelineExecutionStatus' => [ 'type' => 'string', 'enum' => [ 'InProgress', 'Succeeded', 'Superseded', 'Failed', ], ], 'PipelineExecutionSummary' => [ 'type' => 'structure', 'members' => [ 'pipelineExecutionId' => [ 'shape' => 'PipelineExecutionId', ], 'status' => [ 'shape' => 'PipelineExecutionStatus', ], 'startTime' => [ 'shape' => 'Timestamp', ], 'lastUpdateTime' => [ 'shape' => 'Timestamp', ], 'sourceRevisions' => [ 'shape' => 'SourceRevisionList', ], ], ], 'PipelineExecutionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PipelineExecutionSummary', ], ], 'PipelineList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PipelineSummary', ], ], 'PipelineMetadata' => [ 'type' => 'structure', 'members' => [ 'pipelineArn' => [ 'shape' => 'PipelineArn', ], 'created' => [ 'shape' => 'Timestamp', ], 'updated' => [ 'shape' => 'Timestamp', ], ], ], 'PipelineName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[A-Za-z0-9.@\\-_]+', ], 'PipelineNameInUseException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'PipelineNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'PipelineStageDeclarationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'StageDeclaration', ], ], 'PipelineSummary' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'PipelineName', ], 'version' => [ 'shape' => 'PipelineVersion', ], 'created' => [ 'shape' => 'Timestamp', ], 'updated' => [ 'shape' => 'Timestamp', ], ], ], 'PipelineVersion' => [ 'type' => 'integer', 'min' => 1, ], 'PipelineVersionNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'PollForJobsInput' => [ 'type' => 'structure', 'required' => [ 'actionTypeId', ], 'members' => [ 'actionTypeId' => [ 'shape' => 'ActionTypeId', ], 'maxBatchSize' => [ 'shape' => 'MaxBatchSize', ], 'queryParam' => [ 'shape' => 'QueryParamMap', ], ], ], 'PollForJobsOutput' => [ 'type' => 'structure', 'members' => [ 'jobs' => [ 'shape' => 'JobList', ], ], ], 'PollForThirdPartyJobsInput' => [ 'type' => 'structure', 'required' => [ 'actionTypeId', ], 'members' => [ 'actionTypeId' => [ 'shape' => 'ActionTypeId', ], 'maxBatchSize' => [ 'shape' => 'MaxBatchSize', ], ], ], 'PollForThirdPartyJobsOutput' => [ 'type' => 'structure', 'members' => [ 'jobs' => [ 'shape' => 'ThirdPartyJobList', ], ], ], 'PutActionRevisionInput' => [ 'type' => 'structure', 'required' => [ 'pipelineName', 'stageName', 'actionName', 'actionRevision', ], 'members' => [ 'pipelineName' => [ 'shape' => 'PipelineName', ], 'stageName' => [ 'shape' => 'StageName', ], 'actionName' => [ 'shape' => 'ActionName', ], 'actionRevision' => [ 'shape' => 'ActionRevision', ], ], ], 'PutActionRevisionOutput' => [ 'type' => 'structure', 'members' => [ 'newRevision' => [ 'shape' => 'Boolean', ], 'pipelineExecutionId' => [ 'shape' => 'PipelineExecutionId', ], ], ], 'PutApprovalResultInput' => [ 'type' => 'structure', 'required' => [ 'pipelineName', 'stageName', 'actionName', 'result', 'token', ], 'members' => [ 'pipelineName' => [ 'shape' => 'PipelineName', ], 'stageName' => [ 'shape' => 'StageName', ], 'actionName' => [ 'shape' => 'ActionName', ], 'result' => [ 'shape' => 'ApprovalResult', ], 'token' => [ 'shape' => 'ApprovalToken', ], ], ], 'PutApprovalResultOutput' => [ 'type' => 'structure', 'members' => [ 'approvedAt' => [ 'shape' => 'Timestamp', ], ], ], 'PutJobFailureResultInput' => [ 'type' => 'structure', 'required' => [ 'jobId', 'failureDetails', ], 'members' => [ 'jobId' => [ 'shape' => 'JobId', ], 'failureDetails' => [ 'shape' => 'FailureDetails', ], ], ], 'PutJobSuccessResultInput' => [ 'type' => 'structure', 'required' => [ 'jobId', ], 'members' => [ 'jobId' => [ 'shape' => 'JobId', ], 'currentRevision' => [ 'shape' => 'CurrentRevision', ], 'continuationToken' => [ 'shape' => 'ContinuationToken', ], 'executionDetails' => [ 'shape' => 'ExecutionDetails', ], ], ], 'PutThirdPartyJobFailureResultInput' => [ 'type' => 'structure', 'required' => [ 'jobId', 'clientToken', 'failureDetails', ], 'members' => [ 'jobId' => [ 'shape' => 'ThirdPartyJobId', ], 'clientToken' => [ 'shape' => 'ClientToken', ], 'failureDetails' => [ 'shape' => 'FailureDetails', ], ], ], 'PutThirdPartyJobSuccessResultInput' => [ 'type' => 'structure', 'required' => [ 'jobId', 'clientToken', ], 'members' => [ 'jobId' => [ 'shape' => 'ThirdPartyJobId', ], 'clientToken' => [ 'shape' => 'ClientToken', ], 'currentRevision' => [ 'shape' => 'CurrentRevision', ], 'continuationToken' => [ 'shape' => 'ContinuationToken', ], 'executionDetails' => [ 'shape' => 'ExecutionDetails', ], ], ], 'PutWebhookInput' => [ 'type' => 'structure', 'required' => [ 'webhook', ], 'members' => [ 'webhook' => [ 'shape' => 'WebhookDefinition', ], ], ], 'PutWebhookOutput' => [ 'type' => 'structure', 'members' => [ 'webhook' => [ 'shape' => 'ListWebhookItem', ], ], ], 'QueryParamMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'ActionConfigurationKey', ], 'value' => [ 'shape' => 'ActionConfigurationQueryableValue', ], 'max' => 1, 'min' => 0, ], 'RegisterWebhookWithThirdPartyInput' => [ 'type' => 'structure', 'members' => [ 'webhookName' => [ 'shape' => 'WebhookName', ], ], ], 'RegisterWebhookWithThirdPartyOutput' => [ 'type' => 'structure', 'members' => [], ], 'RetryStageExecutionInput' => [ 'type' => 'structure', 'required' => [ 'pipelineName', 'stageName', 'pipelineExecutionId', 'retryMode', ], 'members' => [ 'pipelineName' => [ 'shape' => 'PipelineName', ], 'stageName' => [ 'shape' => 'StageName', ], 'pipelineExecutionId' => [ 'shape' => 'PipelineExecutionId', ], 'retryMode' => [ 'shape' => 'StageRetryMode', ], ], ], 'RetryStageExecutionOutput' => [ 'type' => 'structure', 'members' => [ 'pipelineExecutionId' => [ 'shape' => 'PipelineExecutionId', ], ], ], 'Revision' => [ 'type' => 'string', 'max' => 1500, 'min' => 1, ], 'RevisionChangeIdentifier' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'RevisionSummary' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'RoleArn' => [ 'type' => 'string', 'max' => 1024, 'pattern' => 'arn:aws(-[\\w]+)*:iam::[0-9]{12}:role/.*', ], 'S3ArtifactLocation' => [ 'type' => 'structure', 'required' => [ 'bucketName', 'objectKey', ], 'members' => [ 'bucketName' => [ 'shape' => 'S3BucketName', ], 'objectKey' => [ 'shape' => 'S3ObjectKey', ], ], ], 'S3Bucket' => [ 'type' => 'string', 'max' => 63, 'min' => 3, ], 'S3BucketName' => [ 'type' => 'string', ], 'S3Key' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'S3Location' => [ 'type' => 'structure', 'members' => [ 'bucket' => [ 'shape' => 'S3Bucket', ], 'key' => [ 'shape' => 'S3Key', ], ], ], 'S3ObjectKey' => [ 'type' => 'string', ], 'SecretAccessKey' => [ 'type' => 'string', ], 'SessionToken' => [ 'type' => 'string', ], 'SourceRevision' => [ 'type' => 'structure', 'required' => [ 'actionName', ], 'members' => [ 'actionName' => [ 'shape' => 'ActionName', ], 'revisionId' => [ 'shape' => 'Revision', ], 'revisionSummary' => [ 'shape' => 'RevisionSummary', ], 'revisionUrl' => [ 'shape' => 'Url', ], ], ], 'SourceRevisionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SourceRevision', ], ], 'StageActionDeclarationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ActionDeclaration', ], ], 'StageBlockerDeclarationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BlockerDeclaration', ], ], 'StageContext' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'StageName', ], ], ], 'StageDeclaration' => [ 'type' => 'structure', 'required' => [ 'name', 'actions', ], 'members' => [ 'name' => [ 'shape' => 'StageName', ], 'blockers' => [ 'shape' => 'StageBlockerDeclarationList', ], 'actions' => [ 'shape' => 'StageActionDeclarationList', ], ], ], 'StageExecution' => [ 'type' => 'structure', 'required' => [ 'pipelineExecutionId', 'status', ], 'members' => [ 'pipelineExecutionId' => [ 'shape' => 'PipelineExecutionId', ], 'status' => [ 'shape' => 'StageExecutionStatus', ], ], ], 'StageExecutionStatus' => [ 'type' => 'string', 'enum' => [ 'InProgress', 'Failed', 'Succeeded', ], ], 'StageName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[A-Za-z0-9.@\\-_]+', ], 'StageNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'StageNotRetryableException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'StageRetryMode' => [ 'type' => 'string', 'enum' => [ 'FAILED_ACTIONS', ], ], 'StageState' => [ 'type' => 'structure', 'members' => [ 'stageName' => [ 'shape' => 'StageName', ], 'inboundTransitionState' => [ 'shape' => 'TransitionState', ], 'actionStates' => [ 'shape' => 'ActionStateList', ], 'latestExecution' => [ 'shape' => 'StageExecution', ], ], ], 'StageStateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'StageState', ], ], 'StageTransitionType' => [ 'type' => 'string', 'enum' => [ 'Inbound', 'Outbound', ], ], 'StartPipelineExecutionInput' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'PipelineName', ], 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'StartPipelineExecutionOutput' => [ 'type' => 'structure', 'members' => [ 'pipelineExecutionId' => [ 'shape' => 'PipelineExecutionId', ], ], ], 'ThirdPartyJob' => [ 'type' => 'structure', 'members' => [ 'clientId' => [ 'shape' => 'ClientId', ], 'jobId' => [ 'shape' => 'JobId', ], ], ], 'ThirdPartyJobData' => [ 'type' => 'structure', 'members' => [ 'actionTypeId' => [ 'shape' => 'ActionTypeId', ], 'actionConfiguration' => [ 'shape' => 'ActionConfiguration', ], 'pipelineContext' => [ 'shape' => 'PipelineContext', ], 'inputArtifacts' => [ 'shape' => 'ArtifactList', ], 'outputArtifacts' => [ 'shape' => 'ArtifactList', ], 'artifactCredentials' => [ 'shape' => 'AWSSessionCredentials', ], 'continuationToken' => [ 'shape' => 'ContinuationToken', ], 'encryptionKey' => [ 'shape' => 'EncryptionKey', ], ], ], 'ThirdPartyJobDetails' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'ThirdPartyJobId', ], 'data' => [ 'shape' => 'ThirdPartyJobData', ], 'nonce' => [ 'shape' => 'Nonce', ], ], ], 'ThirdPartyJobId' => [ 'type' => 'string', 'max' => 512, 'min' => 1, ], 'ThirdPartyJobList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ThirdPartyJob', ], ], 'Time' => [ 'type' => 'timestamp', ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TransitionState' => [ 'type' => 'structure', 'members' => [ 'enabled' => [ 'shape' => 'Enabled', ], 'lastChangedBy' => [ 'shape' => 'LastChangedBy', ], 'lastChangedAt' => [ 'shape' => 'LastChangedAt', ], 'disabledReason' => [ 'shape' => 'DisabledReason', ], ], ], 'UpdatePipelineInput' => [ 'type' => 'structure', 'required' => [ 'pipeline', ], 'members' => [ 'pipeline' => [ 'shape' => 'PipelineDeclaration', ], ], ], 'UpdatePipelineOutput' => [ 'type' => 'structure', 'members' => [ 'pipeline' => [ 'shape' => 'PipelineDeclaration', ], ], ], 'Url' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'UrlTemplate' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'ValidationException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Version' => [ 'type' => 'string', 'max' => 9, 'min' => 1, 'pattern' => '[0-9A-Za-z_-]+', ], 'WebhookArn' => [ 'type' => 'string', ], 'WebhookAuthConfiguration' => [ 'type' => 'structure', 'members' => [ 'AllowedIPRange' => [ 'shape' => 'WebhookAuthConfigurationAllowedIPRange', ], 'SecretToken' => [ 'shape' => 'WebhookAuthConfigurationSecretToken', ], ], ], 'WebhookAuthConfigurationAllowedIPRange' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'WebhookAuthConfigurationSecretToken' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'WebhookAuthenticationType' => [ 'type' => 'string', 'enum' => [ 'GITHUB_HMAC', 'IP', 'UNAUTHENTICATED', ], ], 'WebhookDefinition' => [ 'type' => 'structure', 'required' => [ 'name', 'targetPipeline', 'targetAction', 'filters', 'authentication', 'authenticationConfiguration', ], 'members' => [ 'name' => [ 'shape' => 'WebhookName', ], 'targetPipeline' => [ 'shape' => 'PipelineName', ], 'targetAction' => [ 'shape' => 'ActionName', ], 'filters' => [ 'shape' => 'WebhookFilters', ], 'authentication' => [ 'shape' => 'WebhookAuthenticationType', ], 'authenticationConfiguration' => [ 'shape' => 'WebhookAuthConfiguration', ], ], ], 'WebhookErrorCode' => [ 'type' => 'string', ], 'WebhookErrorMessage' => [ 'type' => 'string', ], 'WebhookFilterRule' => [ 'type' => 'structure', 'required' => [ 'jsonPath', ], 'members' => [ 'jsonPath' => [ 'shape' => 'JsonPath', ], 'matchEquals' => [ 'shape' => 'MatchEquals', ], ], ], 'WebhookFilters' => [ 'type' => 'list', 'member' => [ 'shape' => 'WebhookFilterRule', ], 'max' => 5, ], 'WebhookLastTriggered' => [ 'type' => 'timestamp', ], 'WebhookList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ListWebhookItem', ], ], 'WebhookName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[A-Za-z0-9.@\\-_]+', ], 'WebhookNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'WebhookUrl' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, ], ],]; diff --git a/lib/aws/Aws/data/codepipeline/2015-07-09/paginators-1.json.php b/lib/aws/Aws/data/codepipeline/2015-07-09/paginators-1.json.php new file mode 100644 index 0000000..9ecdf87 --- /dev/null +++ b/lib/aws/Aws/data/codepipeline/2015-07-09/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/codepipeline/2015-07-09/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/codepipeline/2015-07-09/smoke.json.php b/lib/aws/Aws/data/codepipeline/2015-07-09/smoke.json.php new file mode 100644 index 0000000..a41b2c1 --- /dev/null +++ b/lib/aws/Aws/data/codepipeline/2015-07-09/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/codepipeline/2015-07-09/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListPipelines', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'GetPipeline', 'input' => [ 'name' => 'fake-pipeline', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/codestar/2017-04-19/api-2.json.php b/lib/aws/Aws/data/codestar/2017-04-19/api-2.json.php new file mode 100644 index 0000000..fd6acb8 --- /dev/null +++ b/lib/aws/Aws/data/codestar/2017-04-19/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/codestar/2017-04-19/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-04-19', 'endpointPrefix' => 'codestar', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'CodeStar', 'serviceFullName' => 'AWS CodeStar', 'serviceId' => 'CodeStar', 'signatureVersion' => 'v4', 'targetPrefix' => 'CodeStar_20170419', 'uid' => 'codestar-2017-04-19', ], 'operations' => [ 'AssociateTeamMember' => [ 'name' => 'AssociateTeamMember', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateTeamMemberRequest', ], 'output' => [ 'shape' => 'AssociateTeamMemberResult', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ProjectNotFoundException', ], [ 'shape' => 'TeamMemberAlreadyAssociatedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidServiceRoleException', ], [ 'shape' => 'ProjectConfigurationException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'CreateProject' => [ 'name' => 'CreateProject', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateProjectRequest', ], 'output' => [ 'shape' => 'CreateProjectResult', ], 'errors' => [ [ 'shape' => 'ProjectAlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ProjectCreationFailedException', ], [ 'shape' => 'InvalidServiceRoleException', ], [ 'shape' => 'ProjectConfigurationException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'CreateUserProfile' => [ 'name' => 'CreateUserProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateUserProfileRequest', ], 'output' => [ 'shape' => 'CreateUserProfileResult', ], 'errors' => [ [ 'shape' => 'UserProfileAlreadyExistsException', ], [ 'shape' => 'ValidationException', ], ], ], 'DeleteProject' => [ 'name' => 'DeleteProject', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteProjectRequest', ], 'output' => [ 'shape' => 'DeleteProjectResult', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidServiceRoleException', ], ], ], 'DeleteUserProfile' => [ 'name' => 'DeleteUserProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteUserProfileRequest', ], 'output' => [ 'shape' => 'DeleteUserProfileResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], ], ], 'DescribeProject' => [ 'name' => 'DescribeProject', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeProjectRequest', ], 'output' => [ 'shape' => 'DescribeProjectResult', ], 'errors' => [ [ 'shape' => 'ProjectNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidServiceRoleException', ], [ 'shape' => 'ProjectConfigurationException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'DescribeUserProfile' => [ 'name' => 'DescribeUserProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeUserProfileRequest', ], 'output' => [ 'shape' => 'DescribeUserProfileResult', ], 'errors' => [ [ 'shape' => 'UserProfileNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'DisassociateTeamMember' => [ 'name' => 'DisassociateTeamMember', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateTeamMemberRequest', ], 'output' => [ 'shape' => 'DisassociateTeamMemberResult', ], 'errors' => [ [ 'shape' => 'ProjectNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidServiceRoleException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'ListProjects' => [ 'name' => 'ListProjects', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListProjectsRequest', ], 'output' => [ 'shape' => 'ListProjectsResult', ], 'errors' => [ [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ValidationException', ], ], ], 'ListResources' => [ 'name' => 'ListResources', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListResourcesRequest', ], 'output' => [ 'shape' => 'ListResourcesResult', ], 'errors' => [ [ 'shape' => 'ProjectNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ValidationException', ], ], ], 'ListTagsForProject' => [ 'name' => 'ListTagsForProject', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForProjectRequest', ], 'output' => [ 'shape' => 'ListTagsForProjectResult', ], 'errors' => [ [ 'shape' => 'ProjectNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListTeamMembers' => [ 'name' => 'ListTeamMembers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTeamMembersRequest', ], 'output' => [ 'shape' => 'ListTeamMembersResult', ], 'errors' => [ [ 'shape' => 'ProjectNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ValidationException', ], ], ], 'ListUserProfiles' => [ 'name' => 'ListUserProfiles', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListUserProfilesRequest', ], 'output' => [ 'shape' => 'ListUserProfilesResult', ], 'errors' => [ [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ValidationException', ], ], ], 'TagProject' => [ 'name' => 'TagProject', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagProjectRequest', ], 'output' => [ 'shape' => 'TagProjectResult', ], 'errors' => [ [ 'shape' => 'ProjectNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'UntagProject' => [ 'name' => 'UntagProject', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagProjectRequest', ], 'output' => [ 'shape' => 'UntagProjectResult', ], 'errors' => [ [ 'shape' => 'ProjectNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'UpdateProject' => [ 'name' => 'UpdateProject', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateProjectRequest', ], 'output' => [ 'shape' => 'UpdateProjectResult', ], 'errors' => [ [ 'shape' => 'ProjectNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'UpdateTeamMember' => [ 'name' => 'UpdateTeamMember', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateTeamMemberRequest', ], 'output' => [ 'shape' => 'UpdateTeamMemberResult', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ProjectNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidServiceRoleException', ], [ 'shape' => 'ProjectConfigurationException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'TeamMemberNotFoundException', ], ], ], 'UpdateUserProfile' => [ 'name' => 'UpdateUserProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateUserProfileRequest', ], 'output' => [ 'shape' => 'UpdateUserProfileResult', ], 'errors' => [ [ 'shape' => 'UserProfileNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], ], 'shapes' => [ 'AssociateTeamMemberRequest' => [ 'type' => 'structure', 'required' => [ 'projectId', 'userArn', 'projectRole', ], 'members' => [ 'projectId' => [ 'shape' => 'ProjectId', ], 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', ], 'userArn' => [ 'shape' => 'UserArn', ], 'projectRole' => [ 'shape' => 'Role', ], 'remoteAccessAllowed' => [ 'shape' => 'RemoteAccessAllowed', 'box' => true, ], ], ], 'AssociateTeamMemberResult' => [ 'type' => 'structure', 'members' => [ 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', ], ], ], 'BucketKey' => [ 'type' => 'string', ], 'BucketName' => [ 'type' => 'string', 'max' => 63, 'min' => 3, ], 'ClientRequestToken' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^[\\w:/-]+$', ], 'Code' => [ 'type' => 'structure', 'required' => [ 'source', 'destination', ], 'members' => [ 'source' => [ 'shape' => 'CodeSource', ], 'destination' => [ 'shape' => 'CodeDestination', ], ], ], 'CodeCommitCodeDestination' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'RepositoryName', ], ], ], 'CodeDestination' => [ 'type' => 'structure', 'members' => [ 'codeCommit' => [ 'shape' => 'CodeCommitCodeDestination', ], 'gitHub' => [ 'shape' => 'GitHubCodeDestination', ], ], ], 'CodeSource' => [ 'type' => 'structure', 'required' => [ 's3', ], 'members' => [ 's3' => [ 'shape' => 'S3Location', ], ], ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'CreateProjectRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'id', ], 'members' => [ 'name' => [ 'shape' => 'ProjectName', ], 'id' => [ 'shape' => 'ProjectId', ], 'description' => [ 'shape' => 'ProjectDescription', ], 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', ], 'sourceCode' => [ 'shape' => 'SourceCode', ], 'toolchain' => [ 'shape' => 'Toolchain', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'CreateProjectResult' => [ 'type' => 'structure', 'required' => [ 'id', 'arn', ], 'members' => [ 'id' => [ 'shape' => 'ProjectId', ], 'arn' => [ 'shape' => 'ProjectArn', ], 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', ], 'projectTemplateId' => [ 'shape' => 'ProjectTemplateId', ], ], ], 'CreateUserProfileRequest' => [ 'type' => 'structure', 'required' => [ 'userArn', 'displayName', 'emailAddress', ], 'members' => [ 'userArn' => [ 'shape' => 'UserArn', ], 'displayName' => [ 'shape' => 'UserProfileDisplayName', ], 'emailAddress' => [ 'shape' => 'Email', ], 'sshPublicKey' => [ 'shape' => 'SshPublicKey', ], ], ], 'CreateUserProfileResult' => [ 'type' => 'structure', 'required' => [ 'userArn', ], 'members' => [ 'userArn' => [ 'shape' => 'UserArn', ], 'displayName' => [ 'shape' => 'UserProfileDisplayName', ], 'emailAddress' => [ 'shape' => 'Email', ], 'sshPublicKey' => [ 'shape' => 'SshPublicKey', ], 'createdTimestamp' => [ 'shape' => 'CreatedTimestamp', ], 'lastModifiedTimestamp' => [ 'shape' => 'LastModifiedTimestamp', ], ], ], 'CreatedTimestamp' => [ 'type' => 'timestamp', ], 'DeleteProjectRequest' => [ 'type' => 'structure', 'required' => [ 'id', ], 'members' => [ 'id' => [ 'shape' => 'ProjectId', ], 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', ], 'deleteStack' => [ 'shape' => 'DeleteStack', ], ], ], 'DeleteProjectResult' => [ 'type' => 'structure', 'members' => [ 'stackId' => [ 'shape' => 'StackId', ], 'projectArn' => [ 'shape' => 'ProjectArn', ], ], ], 'DeleteStack' => [ 'type' => 'boolean', ], 'DeleteUserProfileRequest' => [ 'type' => 'structure', 'required' => [ 'userArn', ], 'members' => [ 'userArn' => [ 'shape' => 'UserArn', ], ], ], 'DeleteUserProfileResult' => [ 'type' => 'structure', 'required' => [ 'userArn', ], 'members' => [ 'userArn' => [ 'shape' => 'UserArn', ], ], ], 'DescribeProjectRequest' => [ 'type' => 'structure', 'required' => [ 'id', ], 'members' => [ 'id' => [ 'shape' => 'ProjectId', ], ], ], 'DescribeProjectResult' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ProjectName', ], 'id' => [ 'shape' => 'ProjectId', ], 'arn' => [ 'shape' => 'ProjectArn', ], 'description' => [ 'shape' => 'ProjectDescription', ], 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', ], 'createdTimeStamp' => [ 'shape' => 'CreatedTimestamp', ], 'stackId' => [ 'shape' => 'StackId', ], 'projectTemplateId' => [ 'shape' => 'ProjectTemplateId', ], 'status' => [ 'shape' => 'ProjectStatus', ], ], ], 'DescribeUserProfileRequest' => [ 'type' => 'structure', 'required' => [ 'userArn', ], 'members' => [ 'userArn' => [ 'shape' => 'UserArn', ], ], ], 'DescribeUserProfileResult' => [ 'type' => 'structure', 'required' => [ 'userArn', 'createdTimestamp', 'lastModifiedTimestamp', ], 'members' => [ 'userArn' => [ 'shape' => 'UserArn', ], 'displayName' => [ 'shape' => 'UserProfileDisplayName', ], 'emailAddress' => [ 'shape' => 'Email', ], 'sshPublicKey' => [ 'shape' => 'SshPublicKey', ], 'createdTimestamp' => [ 'shape' => 'CreatedTimestamp', ], 'lastModifiedTimestamp' => [ 'shape' => 'LastModifiedTimestamp', ], ], ], 'DisassociateTeamMemberRequest' => [ 'type' => 'structure', 'required' => [ 'projectId', 'userArn', ], 'members' => [ 'projectId' => [ 'shape' => 'ProjectId', ], 'userArn' => [ 'shape' => 'UserArn', ], ], ], 'DisassociateTeamMemberResult' => [ 'type' => 'structure', 'members' => [], ], 'Email' => [ 'type' => 'string', 'max' => 128, 'min' => 3, 'pattern' => '^[\\w-.+]+@[\\w-.+]+$', 'sensitive' => true, ], 'GitHubCodeDestination' => [ 'type' => 'structure', 'required' => [ 'name', 'type', 'owner', 'privateRepository', 'issuesEnabled', 'token', ], 'members' => [ 'name' => [ 'shape' => 'RepositoryName', ], 'description' => [ 'shape' => 'RepositoryDescription', ], 'type' => [ 'shape' => 'RepositoryType', ], 'owner' => [ 'shape' => 'RepositoryOwner', ], 'privateRepository' => [ 'shape' => 'RepositoryIsPrivate', ], 'issuesEnabled' => [ 'shape' => 'RepositoryEnableIssues', ], 'token' => [ 'shape' => 'GitHubPersonalToken', ], ], ], 'GitHubPersonalToken' => [ 'type' => 'string', 'min' => 1, 'sensitive' => true, ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidServiceRoleException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'LastModifiedTimestamp' => [ 'type' => 'timestamp', ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ListProjectsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], ], ], 'ListProjectsResult' => [ 'type' => 'structure', 'required' => [ 'projects', ], 'members' => [ 'projects' => [ 'shape' => 'ProjectsList', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListResourcesRequest' => [ 'type' => 'structure', 'required' => [ 'projectId', ], 'members' => [ 'projectId' => [ 'shape' => 'ProjectId', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], ], ], 'ListResourcesResult' => [ 'type' => 'structure', 'members' => [ 'resources' => [ 'shape' => 'ResourcesResult', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListTagsForProjectRequest' => [ 'type' => 'structure', 'required' => [ 'id', ], 'members' => [ 'id' => [ 'shape' => 'ProjectId', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], ], ], 'ListTagsForProjectResult' => [ 'type' => 'structure', 'members' => [ 'tags' => [ 'shape' => 'Tags', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListTeamMembersRequest' => [ 'type' => 'structure', 'required' => [ 'projectId', ], 'members' => [ 'projectId' => [ 'shape' => 'ProjectId', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], ], ], 'ListTeamMembersResult' => [ 'type' => 'structure', 'required' => [ 'teamMembers', ], 'members' => [ 'teamMembers' => [ 'shape' => 'TeamMemberResult', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListUserProfilesRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], ], ], 'ListUserProfilesResult' => [ 'type' => 'structure', 'required' => [ 'userProfiles', ], 'members' => [ 'userProfiles' => [ 'shape' => 'UserProfilesList', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'MaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'PaginationToken' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => '^[\\w/+=]+$', ], 'ProjectAlreadyExistsException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ProjectArn' => [ 'type' => 'string', 'pattern' => '^arn:aws[^:\\s]*:codestar:[^:\\s]+:[0-9]{12}:project\\/[a-z]([a-z0-9|-])+$', ], 'ProjectConfigurationException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ProjectCreationFailedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ProjectDescription' => [ 'type' => 'string', 'max' => 1024, 'pattern' => '^$|^\\S(.*\\S)?$', 'sensitive' => true, ], 'ProjectId' => [ 'type' => 'string', 'max' => 15, 'min' => 2, 'pattern' => '^[a-z][a-z0-9-]+$', ], 'ProjectName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '^\\S(.*\\S)?$', 'sensitive' => true, ], 'ProjectNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ProjectStatus' => [ 'type' => 'structure', 'required' => [ 'state', ], 'members' => [ 'state' => [ 'shape' => 'State', ], 'reason' => [ 'shape' => 'Reason', ], ], ], 'ProjectSummary' => [ 'type' => 'structure', 'members' => [ 'projectId' => [ 'shape' => 'ProjectId', ], 'projectArn' => [ 'shape' => 'ProjectArn', ], ], ], 'ProjectTemplateId' => [ 'type' => 'string', 'min' => 1, 'pattern' => '^arn:aws[^:\\s]{0,5}:codestar:[^:\\s]+::project-template(\\/(github|codecommit))?\\/[a-z0-9-]+$', ], 'ProjectsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProjectSummary', ], ], 'Reason' => [ 'type' => 'string', 'max' => 1024, 'pattern' => '^$|^\\S(.*\\S)?$', ], 'RemoteAccessAllowed' => [ 'type' => 'boolean', ], 'RepositoryDescription' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, 'pattern' => '^\\S(.*\\S)?$', ], 'RepositoryEnableIssues' => [ 'type' => 'boolean', ], 'RepositoryIsPrivate' => [ 'type' => 'boolean', ], 'RepositoryName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '^\\S[\\w.-]*$', ], 'RepositoryOwner' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '^\\S(.*\\S)?$', ], 'RepositoryType' => [ 'type' => 'string', 'pattern' => '^(user|organization|User|Organization)$', ], 'Resource' => [ 'type' => 'structure', 'required' => [ 'id', ], 'members' => [ 'id' => [ 'shape' => 'ResourceId', ], ], ], 'ResourceId' => [ 'type' => 'string', 'min' => 11, 'pattern' => '^arn\\:aws\\:\\S.*\\:.*', ], 'ResourcesResult' => [ 'type' => 'list', 'member' => [ 'shape' => 'Resource', ], ], 'Role' => [ 'type' => 'string', 'pattern' => '^(Owner|Viewer|Contributor)$', ], 'RoleArn' => [ 'type' => 'string', 'max' => 1224, 'min' => 1, ], 'S3Location' => [ 'type' => 'structure', 'members' => [ 'bucketName' => [ 'shape' => 'BucketName', ], 'bucketKey' => [ 'shape' => 'BucketKey', ], ], ], 'SourceCode' => [ 'type' => 'list', 'member' => [ 'shape' => 'Code', ], ], 'SshPublicKey' => [ 'type' => 'string', 'max' => 16384, 'pattern' => '^[\\t\\r\\n\\u0020-\\u00FF]*$', ], 'StackId' => [ 'type' => 'string', 'pattern' => '^arn:aws[^:\\s]*:cloudformation:[^:\\s]+:[0-9]{12}:stack\\/[^:\\s]+\\/[^:\\s]+$', ], 'State' => [ 'type' => 'string', 'pattern' => '^(CreateInProgress|CreateComplete|CreateFailed|DeleteComplete|DeleteFailed|DeleteInProgress|UpdateComplete|UpdateInProgress|UpdateFailed|Unknown)$', ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeys' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagProjectRequest' => [ 'type' => 'structure', 'required' => [ 'id', 'tags', ], 'members' => [ 'id' => [ 'shape' => 'ProjectId', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'TagProjectResult' => [ 'type' => 'structure', 'members' => [ 'tags' => [ 'shape' => 'Tags', ], ], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'Tags' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], ], 'TeamMember' => [ 'type' => 'structure', 'required' => [ 'userArn', 'projectRole', ], 'members' => [ 'userArn' => [ 'shape' => 'UserArn', ], 'projectRole' => [ 'shape' => 'Role', ], 'remoteAccessAllowed' => [ 'shape' => 'RemoteAccessAllowed', 'box' => true, ], ], ], 'TeamMemberAlreadyAssociatedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'TeamMemberNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'TeamMemberResult' => [ 'type' => 'list', 'member' => [ 'shape' => 'TeamMember', ], ], 'TemplateParameterKey' => [ 'type' => 'string', 'max' => 30, 'min' => 1, 'pattern' => '^\\S(.*\\S)?$', ], 'TemplateParameterMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TemplateParameterKey', ], 'value' => [ 'shape' => 'TemplateParameterValue', ], 'max' => 25, ], 'TemplateParameterValue' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '^\\S(.*\\S)?$', 'sensitive' => true, ], 'Toolchain' => [ 'type' => 'structure', 'required' => [ 'source', ], 'members' => [ 'source' => [ 'shape' => 'ToolchainSource', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'stackParameters' => [ 'shape' => 'TemplateParameterMap', ], ], ], 'ToolchainSource' => [ 'type' => 'structure', 'required' => [ 's3', ], 'members' => [ 's3' => [ 'shape' => 'S3Location', ], ], ], 'UntagProjectRequest' => [ 'type' => 'structure', 'required' => [ 'id', 'tags', ], 'members' => [ 'id' => [ 'shape' => 'ProjectId', ], 'tags' => [ 'shape' => 'TagKeys', ], ], ], 'UntagProjectResult' => [ 'type' => 'structure', 'members' => [], ], 'UpdateProjectRequest' => [ 'type' => 'structure', 'required' => [ 'id', ], 'members' => [ 'id' => [ 'shape' => 'ProjectId', ], 'name' => [ 'shape' => 'ProjectName', ], 'description' => [ 'shape' => 'ProjectDescription', ], ], ], 'UpdateProjectResult' => [ 'type' => 'structure', 'members' => [], ], 'UpdateTeamMemberRequest' => [ 'type' => 'structure', 'required' => [ 'projectId', 'userArn', ], 'members' => [ 'projectId' => [ 'shape' => 'ProjectId', ], 'userArn' => [ 'shape' => 'UserArn', ], 'projectRole' => [ 'shape' => 'Role', ], 'remoteAccessAllowed' => [ 'shape' => 'RemoteAccessAllowed', 'box' => true, ], ], ], 'UpdateTeamMemberResult' => [ 'type' => 'structure', 'members' => [ 'userArn' => [ 'shape' => 'UserArn', ], 'projectRole' => [ 'shape' => 'Role', ], 'remoteAccessAllowed' => [ 'shape' => 'RemoteAccessAllowed', 'box' => true, ], ], ], 'UpdateUserProfileRequest' => [ 'type' => 'structure', 'required' => [ 'userArn', ], 'members' => [ 'userArn' => [ 'shape' => 'UserArn', ], 'displayName' => [ 'shape' => 'UserProfileDisplayName', ], 'emailAddress' => [ 'shape' => 'Email', ], 'sshPublicKey' => [ 'shape' => 'SshPublicKey', ], ], ], 'UpdateUserProfileResult' => [ 'type' => 'structure', 'required' => [ 'userArn', ], 'members' => [ 'userArn' => [ 'shape' => 'UserArn', ], 'displayName' => [ 'shape' => 'UserProfileDisplayName', ], 'emailAddress' => [ 'shape' => 'Email', ], 'sshPublicKey' => [ 'shape' => 'SshPublicKey', ], 'createdTimestamp' => [ 'shape' => 'CreatedTimestamp', ], 'lastModifiedTimestamp' => [ 'shape' => 'LastModifiedTimestamp', ], ], ], 'UserArn' => [ 'type' => 'string', 'max' => 95, 'min' => 32, 'pattern' => '^arn:aws:iam::\\d{12}:user(?:(\\u002F)|(\\u002F[\\u0021-\\u007E]+\\u002F))[\\w+=,.@-]+$', ], 'UserProfileAlreadyExistsException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'UserProfileDisplayName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '^\\S(.*\\S)?$', 'sensitive' => true, ], 'UserProfileNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'UserProfileSummary' => [ 'type' => 'structure', 'members' => [ 'userArn' => [ 'shape' => 'UserArn', ], 'displayName' => [ 'shape' => 'UserProfileDisplayName', ], 'emailAddress' => [ 'shape' => 'Email', ], 'sshPublicKey' => [ 'shape' => 'SshPublicKey', ], ], ], 'UserProfilesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserProfileSummary', ], ], 'ValidationException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], ],]; diff --git a/lib/aws/Aws/data/codestar/2017-04-19/paginators-1.json.php b/lib/aws/Aws/data/codestar/2017-04-19/paginators-1.json.php new file mode 100644 index 0000000..f1b0928 --- /dev/null +++ b/lib/aws/Aws/data/codestar/2017-04-19/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/codestar/2017-04-19/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/codestar/2017-04-19/smoke.json.php b/lib/aws/Aws/data/codestar/2017-04-19/smoke.json.php new file mode 100644 index 0000000..dbeb94a --- /dev/null +++ b/lib/aws/Aws/data/codestar/2017-04-19/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/codestar/2017-04-19/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListProjects', 'input' => [], 'errorExpectedFromService' => false, ], ],]; diff --git a/lib/aws/Aws/data/cognito-identity/2014-06-30/api-2.json.php b/lib/aws/Aws/data/cognito-identity/2014-06-30/api-2.json.php new file mode 100644 index 0000000..3ce85bc --- /dev/null +++ b/lib/aws/Aws/data/cognito-identity/2014-06-30/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cognito-identity/2014-06-30/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2014-06-30', 'endpointPrefix' => 'cognito-identity', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Amazon Cognito Identity', 'serviceId' => 'Cognito Identity', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWSCognitoIdentityService', 'uid' => 'cognito-identity-2014-06-30', ], 'operations' => [ 'CreateIdentityPool' => [ 'name' => 'CreateIdentityPool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIdentityPoolInput', ], 'output' => [ 'shape' => 'IdentityPool', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'DeleteIdentities' => [ 'name' => 'DeleteIdentities', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIdentitiesInput', ], 'output' => [ 'shape' => 'DeleteIdentitiesResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'DeleteIdentityPool' => [ 'name' => 'DeleteIdentityPool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIdentityPoolInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'DescribeIdentity' => [ 'name' => 'DescribeIdentity', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIdentityInput', ], 'output' => [ 'shape' => 'IdentityDescription', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'DescribeIdentityPool' => [ 'name' => 'DescribeIdentityPool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIdentityPoolInput', ], 'output' => [ 'shape' => 'IdentityPool', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'GetCredentialsForIdentity' => [ 'name' => 'GetCredentialsForIdentity', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCredentialsForIdentityInput', ], 'output' => [ 'shape' => 'GetCredentialsForIdentityResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidIdentityPoolConfigurationException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'ExternalServiceException', ], ], ], 'GetId' => [ 'name' => 'GetId', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIdInput', ], 'output' => [ 'shape' => 'GetIdResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ExternalServiceException', ], ], ], 'GetIdentityPoolRoles' => [ 'name' => 'GetIdentityPoolRoles', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIdentityPoolRolesInput', ], 'output' => [ 'shape' => 'GetIdentityPoolRolesResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'GetOpenIdToken' => [ 'name' => 'GetOpenIdToken', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetOpenIdTokenInput', ], 'output' => [ 'shape' => 'GetOpenIdTokenResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'ExternalServiceException', ], ], ], 'GetOpenIdTokenForDeveloperIdentity' => [ 'name' => 'GetOpenIdTokenForDeveloperIdentity', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetOpenIdTokenForDeveloperIdentityInput', ], 'output' => [ 'shape' => 'GetOpenIdTokenForDeveloperIdentityResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'DeveloperUserAlreadyRegisteredException', ], ], ], 'ListIdentities' => [ 'name' => 'ListIdentities', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListIdentitiesInput', ], 'output' => [ 'shape' => 'ListIdentitiesResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'ListIdentityPools' => [ 'name' => 'ListIdentityPools', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListIdentityPoolsInput', ], 'output' => [ 'shape' => 'ListIdentityPoolsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceInput', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'LookupDeveloperIdentity' => [ 'name' => 'LookupDeveloperIdentity', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'LookupDeveloperIdentityInput', ], 'output' => [ 'shape' => 'LookupDeveloperIdentityResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'MergeDeveloperIdentities' => [ 'name' => 'MergeDeveloperIdentities', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'MergeDeveloperIdentitiesInput', ], 'output' => [ 'shape' => 'MergeDeveloperIdentitiesResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'SetIdentityPoolRoles' => [ 'name' => 'SetIdentityPoolRoles', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetIdentityPoolRolesInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceInput', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'UnlinkDeveloperIdentity' => [ 'name' => 'UnlinkDeveloperIdentity', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnlinkDeveloperIdentityInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'UnlinkIdentity' => [ 'name' => 'UnlinkIdentity', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnlinkIdentityInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'ExternalServiceException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceInput', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'UpdateIdentityPool' => [ 'name' => 'UpdateIdentityPool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'IdentityPool', ], 'output' => [ 'shape' => 'IdentityPool', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'LimitExceededException', ], ], ], ], 'shapes' => [ 'ARNString' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, ], 'AccessKeyString' => [ 'type' => 'string', ], 'AccountId' => [ 'type' => 'string', 'max' => 15, 'min' => 1, 'pattern' => '\\d+', ], 'AmbiguousRoleResolutionType' => [ 'type' => 'string', 'enum' => [ 'AuthenticatedRole', 'Deny', ], ], 'ClaimName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+', ], 'ClaimValue' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'CognitoIdentityProvider' => [ 'type' => 'structure', 'members' => [ 'ProviderName' => [ 'shape' => 'CognitoIdentityProviderName', ], 'ClientId' => [ 'shape' => 'CognitoIdentityProviderClientId', ], 'ServerSideTokenCheck' => [ 'shape' => 'CognitoIdentityProviderTokenCheck', 'box' => true, ], ], ], 'CognitoIdentityProviderClientId' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w_]+', ], 'CognitoIdentityProviderList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CognitoIdentityProvider', ], ], 'CognitoIdentityProviderName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w._:/-]+', ], 'CognitoIdentityProviderTokenCheck' => [ 'type' => 'boolean', ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'CreateIdentityPoolInput' => [ 'type' => 'structure', 'required' => [ 'IdentityPoolName', 'AllowUnauthenticatedIdentities', ], 'members' => [ 'IdentityPoolName' => [ 'shape' => 'IdentityPoolName', ], 'AllowUnauthenticatedIdentities' => [ 'shape' => 'IdentityPoolUnauthenticated', ], 'SupportedLoginProviders' => [ 'shape' => 'IdentityProviders', ], 'DeveloperProviderName' => [ 'shape' => 'DeveloperProviderName', ], 'OpenIdConnectProviderARNs' => [ 'shape' => 'OIDCProviderList', ], 'CognitoIdentityProviders' => [ 'shape' => 'CognitoIdentityProviderList', ], 'SamlProviderARNs' => [ 'shape' => 'SAMLProviderList', ], 'IdentityPoolTags' => [ 'shape' => 'IdentityPoolTagsType', ], ], ], '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', 'max' => 128, 'min' => 1, 'pattern' => '[\\w._-]+', ], 'DeveloperUserAlreadyRegisteredException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'DeveloperUserIdentifier' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'DeveloperUserIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeveloperUserIdentifier', ], ], 'ErrorCode' => [ 'type' => 'string', 'enum' => [ 'AccessDenied', 'InternalServerError', ], ], 'ExternalServiceException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'GetCredentialsForIdentityInput' => [ 'type' => 'structure', 'required' => [ 'IdentityId', ], 'members' => [ 'IdentityId' => [ 'shape' => 'IdentityId', ], 'Logins' => [ 'shape' => 'LoginsMap', ], 'CustomRoleArn' => [ 'shape' => 'ARNString', ], ], ], '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', ], 'RoleMappings' => [ 'shape' => 'RoleMappingMap', ], ], ], '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', 'max' => 55, 'min' => 1, 'pattern' => '[\\w-]+:[0-9a-f-]+', ], 'IdentityIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IdentityId', ], 'max' => 60, 'min' => 1, ], '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', ], 'CognitoIdentityProviders' => [ 'shape' => 'CognitoIdentityProviderList', ], 'SamlProviderARNs' => [ 'shape' => 'SAMLProviderList', ], 'IdentityPoolTags' => [ 'shape' => 'IdentityPoolTagsType', ], ], ], 'IdentityPoolId' => [ 'type' => 'string', 'max' => 55, 'min' => 1, 'pattern' => '[\\w-]+:[0-9a-f-]+', ], 'IdentityPoolName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w ]+', ], 'IdentityPoolShortDescription' => [ 'type' => 'structure', 'members' => [ 'IdentityPoolId' => [ 'shape' => 'IdentityPoolId', ], 'IdentityPoolName' => [ 'shape' => 'IdentityPoolName', ], ], ], 'IdentityPoolTagsListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKeysType', ], ], 'IdentityPoolTagsType' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKeysType', ], 'value' => [ 'shape' => 'TagValueType', ], ], 'IdentityPoolUnauthenticated' => [ 'type' => 'boolean', ], 'IdentityPoolsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IdentityPoolShortDescription', ], ], 'IdentityProviderId' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w.;_/-]+', ], 'IdentityProviderName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'IdentityProviderToken' => [ 'type' => 'string', 'max' => 50000, 'min' => 1, ], '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', ], ], 'exception' => true, ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], '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', ], ], ], 'ListTagsForResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ARNString', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'IdentityPoolTagsType', ], ], ], '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', ], ], ], 'MappingRule' => [ 'type' => 'structure', 'required' => [ 'Claim', 'MatchType', 'Value', 'RoleARN', ], 'members' => [ 'Claim' => [ 'shape' => 'ClaimName', ], 'MatchType' => [ 'shape' => 'MappingRuleMatchType', ], 'Value' => [ 'shape' => 'ClaimValue', ], 'RoleARN' => [ 'shape' => 'ARNString', ], ], ], 'MappingRuleMatchType' => [ 'type' => 'string', 'enum' => [ 'Equals', 'Contains', 'StartsWith', 'NotEqual', ], ], 'MappingRulesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MappingRule', ], 'max' => 25, 'min' => 1, ], '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', ], ], 'exception' => true, ], 'OIDCProviderList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ARNString', ], ], 'OIDCToken' => [ 'type' => 'string', ], 'PaginationKey' => [ 'type' => 'string', 'min' => 1, 'pattern' => '[\\S]+', ], 'QueryLimit' => [ 'type' => 'integer', 'max' => 60, 'min' => 1, ], 'ResourceConflictException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'RoleMapping' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'RoleMappingType', ], 'AmbiguousRoleResolution' => [ 'shape' => 'AmbiguousRoleResolutionType', ], 'RulesConfiguration' => [ 'shape' => 'RulesConfigurationType', ], ], ], 'RoleMappingMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'IdentityProviderName', ], 'value' => [ 'shape' => 'RoleMapping', ], 'max' => 10, ], 'RoleMappingType' => [ 'type' => 'string', 'enum' => [ 'Token', 'Rules', ], ], 'RoleType' => [ 'type' => 'string', 'pattern' => '(un)?authenticated', ], 'RolesMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'RoleType', ], 'value' => [ 'shape' => 'ARNString', ], 'max' => 2, ], 'RulesConfigurationType' => [ 'type' => 'structure', 'required' => [ 'Rules', ], 'members' => [ 'Rules' => [ 'shape' => 'MappingRulesList', ], ], ], 'SAMLProviderList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ARNString', ], ], 'SecretKeyString' => [ 'type' => 'string', ], 'SessionTokenString' => [ 'type' => 'string', ], 'SetIdentityPoolRolesInput' => [ 'type' => 'structure', 'required' => [ 'IdentityPoolId', 'Roles', ], 'members' => [ 'IdentityPoolId' => [ 'shape' => 'IdentityPoolId', ], 'Roles' => [ 'shape' => 'RolesMap', ], 'RoleMappings' => [ 'shape' => 'RoleMappingMap', ], ], ], 'String' => [ 'type' => 'string', ], 'TagKeysType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ARNString', ], 'Tags' => [ 'shape' => 'IdentityPoolTagsType', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValueType' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'TokenDuration' => [ 'type' => 'long', 'max' => 86400, 'min' => 1, ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], '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, ], 'UntagResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ARNString', ], 'TagKeys' => [ 'shape' => 'IdentityPoolTagsListType', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], ],]; diff --git a/lib/aws/Aws/data/cognito-identity/2014-06-30/paginators-1.json.php b/lib/aws/Aws/data/cognito-identity/2014-06-30/paginators-1.json.php new file mode 100644 index 0000000..39fed8b --- /dev/null +++ b/lib/aws/Aws/data/cognito-identity/2014-06-30/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cognito-identity/2014-06-30/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/cognito-idp/2016-04-18/api-2.json.php b/lib/aws/Aws/data/cognito-idp/2016-04-18/api-2.json.php new file mode 100644 index 0000000..81c60b3 --- /dev/null +++ b/lib/aws/Aws/data/cognito-idp/2016-04-18/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cognito-idp/2016-04-18/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-04-18', 'endpointPrefix' => 'cognito-idp', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Amazon Cognito Identity Provider', 'serviceId' => 'Cognito Identity Provider', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWSCognitoIdentityProviderService', 'uid' => 'cognito-idp-2016-04-18', ], 'operations' => [ 'AddCustomAttributes' => [ 'name' => 'AddCustomAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddCustomAttributesRequest', ], 'output' => [ 'shape' => 'AddCustomAttributesResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserImportInProgressException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminAddUserToGroup' => [ 'name' => 'AdminAddUserToGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminAddUserToGroupRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminConfirmSignUp' => [ 'name' => 'AdminConfirmSignUp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminConfirmSignUpRequest', ], 'output' => [ 'shape' => 'AdminConfirmSignUpResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'UnexpectedLambdaException', ], [ 'shape' => 'UserLambdaValidationException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyFailedAttemptsException', ], [ 'shape' => 'InvalidLambdaResponseException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminCreateUser' => [ 'name' => 'AdminCreateUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminCreateUserRequest', ], 'output' => [ 'shape' => 'AdminCreateUserResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UsernameExistsException', ], [ 'shape' => 'InvalidPasswordException', ], [ 'shape' => 'CodeDeliveryFailureException', ], [ 'shape' => 'UnexpectedLambdaException', ], [ 'shape' => 'UserLambdaValidationException', ], [ 'shape' => 'InvalidLambdaResponseException', ], [ 'shape' => 'PreconditionNotMetException', ], [ 'shape' => 'InvalidSmsRoleAccessPolicyException', ], [ 'shape' => 'InvalidSmsRoleTrustRelationshipException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UnsupportedUserStateException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminDeleteUser' => [ 'name' => 'AdminDeleteUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminDeleteUserRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminDeleteUserAttributes' => [ 'name' => 'AdminDeleteUserAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminDeleteUserAttributesRequest', ], 'output' => [ 'shape' => 'AdminDeleteUserAttributesResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminDisableProviderForUser' => [ 'name' => 'AdminDisableProviderForUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminDisableProviderForUserRequest', ], 'output' => [ 'shape' => 'AdminDisableProviderForUserResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'AliasExistsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminDisableUser' => [ 'name' => 'AdminDisableUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminDisableUserRequest', ], 'output' => [ 'shape' => 'AdminDisableUserResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminEnableUser' => [ 'name' => 'AdminEnableUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminEnableUserRequest', ], 'output' => [ 'shape' => 'AdminEnableUserResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminForgetDevice' => [ 'name' => 'AdminForgetDevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminForgetDeviceRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidUserPoolConfigurationException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminGetDevice' => [ 'name' => 'AdminGetDevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminGetDeviceRequest', ], 'output' => [ 'shape' => 'AdminGetDeviceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidUserPoolConfigurationException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotAuthorizedException', ], ], ], 'AdminGetUser' => [ 'name' => 'AdminGetUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminGetUserRequest', ], 'output' => [ 'shape' => 'AdminGetUserResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminInitiateAuth' => [ 'name' => 'AdminInitiateAuth', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminInitiateAuthRequest', ], 'output' => [ 'shape' => 'AdminInitiateAuthResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'UnexpectedLambdaException', ], [ 'shape' => 'InvalidUserPoolConfigurationException', ], [ 'shape' => 'UserLambdaValidationException', ], [ 'shape' => 'InvalidLambdaResponseException', ], [ 'shape' => 'MFAMethodNotFoundException', ], [ 'shape' => 'InvalidSmsRoleAccessPolicyException', ], [ 'shape' => 'InvalidSmsRoleTrustRelationshipException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], ], ], 'AdminLinkProviderForUser' => [ 'name' => 'AdminLinkProviderForUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminLinkProviderForUserRequest', ], 'output' => [ 'shape' => 'AdminLinkProviderForUserResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'AliasExistsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminListDevices' => [ 'name' => 'AdminListDevices', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminListDevicesRequest', ], 'output' => [ 'shape' => 'AdminListDevicesResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidUserPoolConfigurationException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotAuthorizedException', ], ], ], 'AdminListGroupsForUser' => [ 'name' => 'AdminListGroupsForUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminListGroupsForUserRequest', ], 'output' => [ 'shape' => 'AdminListGroupsForUserResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminListUserAuthEvents' => [ 'name' => 'AdminListUserAuthEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminListUserAuthEventsRequest', ], 'output' => [ 'shape' => 'AdminListUserAuthEventsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserPoolAddOnNotEnabledException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminRemoveUserFromGroup' => [ 'name' => 'AdminRemoveUserFromGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminRemoveUserFromGroupRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminResetUserPassword' => [ 'name' => 'AdminResetUserPassword', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminResetUserPasswordRequest', ], 'output' => [ 'shape' => 'AdminResetUserPasswordResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'UnexpectedLambdaException', ], [ 'shape' => 'UserLambdaValidationException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InvalidLambdaResponseException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'InvalidSmsRoleAccessPolicyException', ], [ 'shape' => 'InvalidEmailRoleAccessPolicyException', ], [ 'shape' => 'InvalidSmsRoleTrustRelationshipException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminRespondToAuthChallenge' => [ 'name' => 'AdminRespondToAuthChallenge', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminRespondToAuthChallengeRequest', ], 'output' => [ 'shape' => 'AdminRespondToAuthChallengeResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'CodeMismatchException', ], [ 'shape' => 'ExpiredCodeException', ], [ 'shape' => 'UnexpectedLambdaException', ], [ 'shape' => 'InvalidPasswordException', ], [ 'shape' => 'UserLambdaValidationException', ], [ 'shape' => 'InvalidLambdaResponseException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidUserPoolConfigurationException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'MFAMethodNotFoundException', ], [ 'shape' => 'InvalidSmsRoleAccessPolicyException', ], [ 'shape' => 'InvalidSmsRoleTrustRelationshipException', ], [ 'shape' => 'AliasExistsException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'SoftwareTokenMFANotFoundException', ], ], ], 'AdminSetUserMFAPreference' => [ 'name' => 'AdminSetUserMFAPreference', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminSetUserMFAPreferenceRequest', ], 'output' => [ 'shape' => 'AdminSetUserMFAPreferenceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminSetUserSettings' => [ 'name' => 'AdminSetUserSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminSetUserSettingsRequest', ], 'output' => [ 'shape' => 'AdminSetUserSettingsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminUpdateAuthEventFeedback' => [ 'name' => 'AdminUpdateAuthEventFeedback', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminUpdateAuthEventFeedbackRequest', ], 'output' => [ 'shape' => 'AdminUpdateAuthEventFeedbackResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserPoolAddOnNotEnabledException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminUpdateDeviceStatus' => [ 'name' => 'AdminUpdateDeviceStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminUpdateDeviceStatusRequest', ], 'output' => [ 'shape' => 'AdminUpdateDeviceStatusResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidUserPoolConfigurationException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminUpdateUserAttributes' => [ 'name' => 'AdminUpdateUserAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminUpdateUserAttributesRequest', ], 'output' => [ 'shape' => 'AdminUpdateUserAttributesResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'UnexpectedLambdaException', ], [ 'shape' => 'UserLambdaValidationException', ], [ 'shape' => 'InvalidLambdaResponseException', ], [ 'shape' => 'AliasExistsException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AdminUserGlobalSignOut' => [ 'name' => 'AdminUserGlobalSignOut', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdminUserGlobalSignOutRequest', ], 'output' => [ 'shape' => 'AdminUserGlobalSignOutResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'AssociateSoftwareToken' => [ 'name' => 'AssociateSoftwareToken', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateSoftwareTokenRequest', ], 'output' => [ 'shape' => 'AssociateSoftwareTokenResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'SoftwareTokenMFANotFoundException', ], ], ], 'ChangePassword' => [ 'name' => 'ChangePassword', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ChangePasswordRequest', ], 'output' => [ 'shape' => 'ChangePasswordResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidPasswordException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InternalErrorException', ], ], 'authtype' => 'none', ], 'ConfirmDevice' => [ 'name' => 'ConfirmDevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ConfirmDeviceRequest', ], 'output' => [ 'shape' => 'ConfirmDeviceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InvalidPasswordException', ], [ 'shape' => 'InvalidLambdaResponseException', ], [ 'shape' => 'UsernameExistsException', ], [ 'shape' => 'InvalidUserPoolConfigurationException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'ConfirmForgotPassword' => [ 'name' => 'ConfirmForgotPassword', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ConfirmForgotPasswordRequest', ], 'output' => [ 'shape' => 'ConfirmForgotPasswordResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'UnexpectedLambdaException', ], [ 'shape' => 'UserLambdaValidationException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidPasswordException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'CodeMismatchException', ], [ 'shape' => 'ExpiredCodeException', ], [ 'shape' => 'TooManyFailedAttemptsException', ], [ 'shape' => 'InvalidLambdaResponseException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InternalErrorException', ], ], 'authtype' => 'none', ], 'ConfirmSignUp' => [ 'name' => 'ConfirmSignUp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ConfirmSignUpRequest', ], 'output' => [ 'shape' => 'ConfirmSignUpResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'UnexpectedLambdaException', ], [ 'shape' => 'UserLambdaValidationException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyFailedAttemptsException', ], [ 'shape' => 'CodeMismatchException', ], [ 'shape' => 'ExpiredCodeException', ], [ 'shape' => 'InvalidLambdaResponseException', ], [ 'shape' => 'AliasExistsException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], 'authtype' => 'none', ], 'CreateGroup' => [ 'name' => 'CreateGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateGroupRequest', ], 'output' => [ 'shape' => 'CreateGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'GroupExistsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'CreateIdentityProvider' => [ 'name' => 'CreateIdentityProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIdentityProviderRequest', ], 'output' => [ 'shape' => 'CreateIdentityProviderResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'DuplicateProviderException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'CreateResourceServer' => [ 'name' => 'CreateResourceServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateResourceServerRequest', ], 'output' => [ 'shape' => 'CreateResourceServerResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'CreateUserImportJob' => [ 'name' => 'CreateUserImportJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateUserImportJobRequest', ], 'output' => [ 'shape' => 'CreateUserImportJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'PreconditionNotMetException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'CreateUserPool' => [ 'name' => 'CreateUserPool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateUserPoolRequest', ], 'output' => [ 'shape' => 'CreateUserPoolResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidSmsRoleAccessPolicyException', ], [ 'shape' => 'InvalidSmsRoleTrustRelationshipException', ], [ 'shape' => 'InvalidEmailRoleAccessPolicyException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserPoolTaggingException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'CreateUserPoolClient' => [ 'name' => 'CreateUserPoolClient', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateUserPoolClientRequest', ], 'output' => [ 'shape' => 'CreateUserPoolClientResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'ScopeDoesNotExistException', ], [ 'shape' => 'InvalidOAuthFlowException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'CreateUserPoolDomain' => [ 'name' => 'CreateUserPoolDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateUserPoolDomainRequest', ], 'output' => [ 'shape' => 'CreateUserPoolDomainResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'DeleteGroup' => [ 'name' => 'DeleteGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteGroupRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'DeleteIdentityProvider' => [ 'name' => 'DeleteIdentityProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIdentityProviderRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'UnsupportedIdentityProviderException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'DeleteResourceServer' => [ 'name' => 'DeleteResourceServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteResourceServerRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'DeleteUser' => [ 'name' => 'DeleteUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteUserRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InternalErrorException', ], ], 'authtype' => 'none', ], 'DeleteUserAttributes' => [ 'name' => 'DeleteUserAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteUserAttributesRequest', ], 'output' => [ 'shape' => 'DeleteUserAttributesResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InternalErrorException', ], ], 'authtype' => 'none', ], 'DeleteUserPool' => [ 'name' => 'DeleteUserPool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteUserPoolRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserImportInProgressException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'DeleteUserPoolClient' => [ 'name' => 'DeleteUserPoolClient', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteUserPoolClientRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'DeleteUserPoolDomain' => [ 'name' => 'DeleteUserPoolDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteUserPoolDomainRequest', ], 'output' => [ 'shape' => 'DeleteUserPoolDomainResponse', ], 'errors' => [ [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'DescribeIdentityProvider' => [ 'name' => 'DescribeIdentityProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIdentityProviderRequest', ], 'output' => [ 'shape' => 'DescribeIdentityProviderResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'DescribeResourceServer' => [ 'name' => 'DescribeResourceServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeResourceServerRequest', ], 'output' => [ 'shape' => 'DescribeResourceServerResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'DescribeRiskConfiguration' => [ 'name' => 'DescribeRiskConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRiskConfigurationRequest', ], 'output' => [ 'shape' => 'DescribeRiskConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserPoolAddOnNotEnabledException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'DescribeUserImportJob' => [ 'name' => 'DescribeUserImportJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeUserImportJobRequest', ], 'output' => [ 'shape' => 'DescribeUserImportJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'DescribeUserPool' => [ 'name' => 'DescribeUserPool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeUserPoolRequest', ], 'output' => [ 'shape' => 'DescribeUserPoolResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserPoolTaggingException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'DescribeUserPoolClient' => [ 'name' => 'DescribeUserPoolClient', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeUserPoolClientRequest', ], 'output' => [ 'shape' => 'DescribeUserPoolClientResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'DescribeUserPoolDomain' => [ 'name' => 'DescribeUserPoolDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeUserPoolDomainRequest', ], 'output' => [ 'shape' => 'DescribeUserPoolDomainResponse', ], 'errors' => [ [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'ForgetDevice' => [ 'name' => 'ForgetDevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ForgetDeviceRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidUserPoolConfigurationException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'ForgotPassword' => [ 'name' => 'ForgotPassword', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ForgotPasswordRequest', ], 'output' => [ 'shape' => 'ForgotPasswordResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'UnexpectedLambdaException', ], [ 'shape' => 'UserLambdaValidationException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InvalidLambdaResponseException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidSmsRoleAccessPolicyException', ], [ 'shape' => 'InvalidSmsRoleTrustRelationshipException', ], [ 'shape' => 'InvalidEmailRoleAccessPolicyException', ], [ 'shape' => 'CodeDeliveryFailureException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InternalErrorException', ], ], 'authtype' => 'none', ], 'GetCSVHeader' => [ 'name' => 'GetCSVHeader', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCSVHeaderRequest', ], 'output' => [ 'shape' => 'GetCSVHeaderResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'GetDevice' => [ 'name' => 'GetDevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDeviceRequest', ], 'output' => [ 'shape' => 'GetDeviceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidUserPoolConfigurationException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'GetGroup' => [ 'name' => 'GetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetGroupRequest', ], 'output' => [ 'shape' => 'GetGroupResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'GetIdentityProviderByIdentifier' => [ 'name' => 'GetIdentityProviderByIdentifier', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIdentityProviderByIdentifierRequest', ], 'output' => [ 'shape' => 'GetIdentityProviderByIdentifierResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'GetSigningCertificate' => [ 'name' => 'GetSigningCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSigningCertificateRequest', ], 'output' => [ 'shape' => 'GetSigningCertificateResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'GetUICustomization' => [ 'name' => 'GetUICustomization', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetUICustomizationRequest', ], 'output' => [ 'shape' => 'GetUICustomizationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'GetUser' => [ 'name' => 'GetUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetUserRequest', ], 'output' => [ 'shape' => 'GetUserResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InternalErrorException', ], ], 'authtype' => 'none', ], 'GetUserAttributeVerificationCode' => [ 'name' => 'GetUserAttributeVerificationCode', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetUserAttributeVerificationCodeRequest', ], 'output' => [ 'shape' => 'GetUserAttributeVerificationCodeResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UnexpectedLambdaException', ], [ 'shape' => 'UserLambdaValidationException', ], [ 'shape' => 'InvalidLambdaResponseException', ], [ 'shape' => 'InvalidSmsRoleAccessPolicyException', ], [ 'shape' => 'InvalidSmsRoleTrustRelationshipException', ], [ 'shape' => 'InvalidEmailRoleAccessPolicyException', ], [ 'shape' => 'CodeDeliveryFailureException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InternalErrorException', ], ], 'authtype' => 'none', ], 'GetUserPoolMfaConfig' => [ 'name' => 'GetUserPoolMfaConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetUserPoolMfaConfigRequest', ], 'output' => [ 'shape' => 'GetUserPoolMfaConfigResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'GlobalSignOut' => [ 'name' => 'GlobalSignOut', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GlobalSignOutRequest', ], 'output' => [ 'shape' => 'GlobalSignOutResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'InitiateAuth' => [ 'name' => 'InitiateAuth', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'InitiateAuthRequest', ], 'output' => [ 'shape' => 'InitiateAuthResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'UnexpectedLambdaException', ], [ 'shape' => 'InvalidUserPoolConfigurationException', ], [ 'shape' => 'UserLambdaValidationException', ], [ 'shape' => 'InvalidLambdaResponseException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'ListDevices' => [ 'name' => 'ListDevices', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDevicesRequest', ], 'output' => [ 'shape' => 'ListDevicesResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InvalidUserPoolConfigurationException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'ListGroups' => [ 'name' => 'ListGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListGroupsRequest', ], 'output' => [ 'shape' => 'ListGroupsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'ListIdentityProviders' => [ 'name' => 'ListIdentityProviders', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListIdentityProvidersRequest', ], 'output' => [ 'shape' => 'ListIdentityProvidersResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'ListResourceServers' => [ 'name' => 'ListResourceServers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListResourceServersRequest', ], 'output' => [ 'shape' => 'ListResourceServersResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'ListUserImportJobs' => [ 'name' => 'ListUserImportJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListUserImportJobsRequest', ], 'output' => [ 'shape' => 'ListUserImportJobsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'ListUserPoolClients' => [ 'name' => 'ListUserPoolClients', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListUserPoolClientsRequest', ], 'output' => [ 'shape' => 'ListUserPoolClientsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'ListUserPools' => [ 'name' => 'ListUserPools', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListUserPoolsRequest', ], 'output' => [ 'shape' => 'ListUserPoolsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'ListUsers' => [ 'name' => 'ListUsers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListUsersRequest', ], 'output' => [ 'shape' => 'ListUsersResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'ListUsersInGroup' => [ 'name' => 'ListUsersInGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListUsersInGroupRequest', ], 'output' => [ 'shape' => 'ListUsersInGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'ResendConfirmationCode' => [ 'name' => 'ResendConfirmationCode', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResendConfirmationCodeRequest', ], 'output' => [ 'shape' => 'ResendConfirmationCodeResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'UnexpectedLambdaException', ], [ 'shape' => 'UserLambdaValidationException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InvalidLambdaResponseException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidSmsRoleAccessPolicyException', ], [ 'shape' => 'InvalidSmsRoleTrustRelationshipException', ], [ 'shape' => 'InvalidEmailRoleAccessPolicyException', ], [ 'shape' => 'CodeDeliveryFailureException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], 'authtype' => 'none', ], 'RespondToAuthChallenge' => [ 'name' => 'RespondToAuthChallenge', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RespondToAuthChallengeRequest', ], 'output' => [ 'shape' => 'RespondToAuthChallengeResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'CodeMismatchException', ], [ 'shape' => 'ExpiredCodeException', ], [ 'shape' => 'UnexpectedLambdaException', ], [ 'shape' => 'UserLambdaValidationException', ], [ 'shape' => 'InvalidPasswordException', ], [ 'shape' => 'InvalidLambdaResponseException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidUserPoolConfigurationException', ], [ 'shape' => 'MFAMethodNotFoundException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InvalidSmsRoleAccessPolicyException', ], [ 'shape' => 'InvalidSmsRoleTrustRelationshipException', ], [ 'shape' => 'AliasExistsException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'SoftwareTokenMFANotFoundException', ], ], ], 'SetRiskConfiguration' => [ 'name' => 'SetRiskConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetRiskConfigurationRequest', ], 'output' => [ 'shape' => 'SetRiskConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserPoolAddOnNotEnabledException', ], [ 'shape' => 'CodeDeliveryFailureException', ], [ 'shape' => 'InvalidEmailRoleAccessPolicyException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'SetUICustomization' => [ 'name' => 'SetUICustomization', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetUICustomizationRequest', ], 'output' => [ 'shape' => 'SetUICustomizationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'SetUserMFAPreference' => [ 'name' => 'SetUserMFAPreference', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetUserMFAPreferenceRequest', ], 'output' => [ 'shape' => 'SetUserMFAPreferenceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'SetUserPoolMfaConfig' => [ 'name' => 'SetUserPoolMfaConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetUserPoolMfaConfigRequest', ], 'output' => [ 'shape' => 'SetUserPoolMfaConfigResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidSmsRoleAccessPolicyException', ], [ 'shape' => 'InvalidSmsRoleTrustRelationshipException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'SetUserSettings' => [ 'name' => 'SetUserSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetUserSettingsRequest', ], 'output' => [ 'shape' => 'SetUserSettingsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InternalErrorException', ], ], 'authtype' => 'none', ], 'SignUp' => [ 'name' => 'SignUp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SignUpRequest', ], 'output' => [ 'shape' => 'SignUpResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'UnexpectedLambdaException', ], [ 'shape' => 'UserLambdaValidationException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InvalidPasswordException', ], [ 'shape' => 'InvalidLambdaResponseException', ], [ 'shape' => 'UsernameExistsException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidSmsRoleAccessPolicyException', ], [ 'shape' => 'InvalidSmsRoleTrustRelationshipException', ], [ 'shape' => 'InvalidEmailRoleAccessPolicyException', ], [ 'shape' => 'CodeDeliveryFailureException', ], ], 'authtype' => 'none', ], 'StartUserImportJob' => [ 'name' => 'StartUserImportJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartUserImportJobRequest', ], 'output' => [ 'shape' => 'StartUserImportJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'PreconditionNotMetException', ], [ 'shape' => 'NotAuthorizedException', ], ], ], 'StopUserImportJob' => [ 'name' => 'StopUserImportJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopUserImportJobRequest', ], 'output' => [ 'shape' => 'StopUserImportJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'PreconditionNotMetException', ], [ 'shape' => 'NotAuthorizedException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'UpdateAuthEventFeedback' => [ 'name' => 'UpdateAuthEventFeedback', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateAuthEventFeedbackRequest', ], 'output' => [ 'shape' => 'UpdateAuthEventFeedbackResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserPoolAddOnNotEnabledException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'UpdateDeviceStatus' => [ 'name' => 'UpdateDeviceStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateDeviceStatusRequest', ], 'output' => [ 'shape' => 'UpdateDeviceStatusResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InvalidUserPoolConfigurationException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'UpdateGroup' => [ 'name' => 'UpdateGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateGroupRequest', ], 'output' => [ 'shape' => 'UpdateGroupResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'UpdateIdentityProvider' => [ 'name' => 'UpdateIdentityProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateIdentityProviderRequest', ], 'output' => [ 'shape' => 'UpdateIdentityProviderResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'UnsupportedIdentityProviderException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'UpdateResourceServer' => [ 'name' => 'UpdateResourceServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateResourceServerRequest', ], 'output' => [ 'shape' => 'UpdateResourceServerResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'UpdateUserAttributes' => [ 'name' => 'UpdateUserAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateUserAttributesRequest', ], 'output' => [ 'shape' => 'UpdateUserAttributesResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'CodeMismatchException', ], [ 'shape' => 'ExpiredCodeException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UnexpectedLambdaException', ], [ 'shape' => 'UserLambdaValidationException', ], [ 'shape' => 'InvalidLambdaResponseException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'AliasExistsException', ], [ 'shape' => 'InvalidSmsRoleAccessPolicyException', ], [ 'shape' => 'InvalidSmsRoleTrustRelationshipException', ], [ 'shape' => 'InvalidEmailRoleAccessPolicyException', ], [ 'shape' => 'CodeDeliveryFailureException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InternalErrorException', ], ], 'authtype' => 'none', ], 'UpdateUserPool' => [ 'name' => 'UpdateUserPool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateUserPoolRequest', ], 'output' => [ 'shape' => 'UpdateUserPoolResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UserImportInProgressException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidSmsRoleAccessPolicyException', ], [ 'shape' => 'InvalidSmsRoleTrustRelationshipException', ], [ 'shape' => 'UserPoolTaggingException', ], [ 'shape' => 'InvalidEmailRoleAccessPolicyException', ], ], ], 'UpdateUserPoolClient' => [ 'name' => 'UpdateUserPoolClient', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateUserPoolClientRequest', ], 'output' => [ 'shape' => 'UpdateUserPoolClientResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'ScopeDoesNotExistException', ], [ 'shape' => 'InvalidOAuthFlowException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'UpdateUserPoolDomain' => [ 'name' => 'UpdateUserPoolDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateUserPoolDomainRequest', ], 'output' => [ 'shape' => 'UpdateUserPoolDomainResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'VerifySoftwareToken' => [ 'name' => 'VerifySoftwareToken', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'VerifySoftwareTokenRequest', ], 'output' => [ 'shape' => 'VerifySoftwareTokenResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidUserPoolConfigurationException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'EnableSoftwareTokenMFAException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'SoftwareTokenMFANotFoundException', ], [ 'shape' => 'CodeMismatchException', ], ], ], 'VerifyUserAttribute' => [ 'name' => 'VerifyUserAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'VerifyUserAttributeRequest', ], 'output' => [ 'shape' => 'VerifyUserAttributeResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'CodeMismatchException', ], [ 'shape' => 'ExpiredCodeException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'PasswordResetRequiredException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'UserNotConfirmedException', ], [ 'shape' => 'InternalErrorException', ], ], 'authtype' => 'none', ], ], 'shapes' => [ 'AWSAccountIdType' => [ 'type' => 'string', ], 'AccountTakeoverActionNotifyType' => [ 'type' => 'boolean', ], 'AccountTakeoverActionType' => [ 'type' => 'structure', 'required' => [ 'Notify', 'EventAction', ], 'members' => [ 'Notify' => [ 'shape' => 'AccountTakeoverActionNotifyType', ], 'EventAction' => [ 'shape' => 'AccountTakeoverEventActionType', ], ], ], 'AccountTakeoverActionsType' => [ 'type' => 'structure', 'members' => [ 'LowAction' => [ 'shape' => 'AccountTakeoverActionType', ], 'MediumAction' => [ 'shape' => 'AccountTakeoverActionType', ], 'HighAction' => [ 'shape' => 'AccountTakeoverActionType', ], ], ], 'AccountTakeoverEventActionType' => [ 'type' => 'string', 'enum' => [ 'BLOCK', 'MFA_IF_CONFIGURED', 'MFA_REQUIRED', 'NO_ACTION', ], ], 'AccountTakeoverRiskConfigurationType' => [ 'type' => 'structure', 'required' => [ 'Actions', ], 'members' => [ 'NotifyConfiguration' => [ 'shape' => 'NotifyConfigurationType', ], 'Actions' => [ 'shape' => 'AccountTakeoverActionsType', ], ], ], 'AddCustomAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'CustomAttributes', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'CustomAttributes' => [ 'shape' => 'CustomAttributesListType', ], ], ], 'AddCustomAttributesResponse' => [ 'type' => 'structure', 'members' => [], ], 'AdminAddUserToGroupRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Username', 'GroupName', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'GroupName' => [ 'shape' => 'GroupNameType', ], ], ], 'AdminConfirmSignUpRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Username', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Username' => [ 'shape' => 'UsernameType', ], ], ], 'AdminConfirmSignUpResponse' => [ 'type' => 'structure', 'members' => [], ], 'AdminCreateUserConfigType' => [ 'type' => 'structure', 'members' => [ 'AllowAdminCreateUserOnly' => [ 'shape' => 'BooleanType', ], 'UnusedAccountValidityDays' => [ 'shape' => 'AdminCreateUserUnusedAccountValidityDaysType', ], 'InviteMessageTemplate' => [ 'shape' => 'MessageTemplateType', ], ], ], 'AdminCreateUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Username', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'UserAttributes' => [ 'shape' => 'AttributeListType', ], 'ValidationData' => [ 'shape' => 'AttributeListType', ], 'TemporaryPassword' => [ 'shape' => 'PasswordType', ], 'ForceAliasCreation' => [ 'shape' => 'ForceAliasCreation', ], 'MessageAction' => [ 'shape' => 'MessageActionType', ], 'DesiredDeliveryMediums' => [ 'shape' => 'DeliveryMediumListType', ], ], ], 'AdminCreateUserResponse' => [ 'type' => 'structure', 'members' => [ 'User' => [ 'shape' => 'UserType', ], ], ], 'AdminCreateUserUnusedAccountValidityDaysType' => [ 'type' => 'integer', 'max' => 365, 'min' => 0, ], 'AdminDeleteUserAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Username', 'UserAttributeNames', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'UserAttributeNames' => [ 'shape' => 'AttributeNameListType', ], ], ], 'AdminDeleteUserAttributesResponse' => [ 'type' => 'structure', 'members' => [], ], 'AdminDeleteUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Username', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Username' => [ 'shape' => 'UsernameType', ], ], ], 'AdminDisableProviderForUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'User', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'StringType', ], 'User' => [ 'shape' => 'ProviderUserIdentifierType', ], ], ], 'AdminDisableProviderForUserResponse' => [ 'type' => 'structure', 'members' => [], ], 'AdminDisableUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Username', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Username' => [ 'shape' => 'UsernameType', ], ], ], 'AdminDisableUserResponse' => [ 'type' => 'structure', 'members' => [], ], 'AdminEnableUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Username', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Username' => [ 'shape' => 'UsernameType', ], ], ], 'AdminEnableUserResponse' => [ 'type' => 'structure', 'members' => [], ], 'AdminForgetDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Username', 'DeviceKey', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'DeviceKey' => [ 'shape' => 'DeviceKeyType', ], ], ], 'AdminGetDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'DeviceKey', 'UserPoolId', 'Username', ], 'members' => [ 'DeviceKey' => [ 'shape' => 'DeviceKeyType', ], 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Username' => [ 'shape' => 'UsernameType', ], ], ], 'AdminGetDeviceResponse' => [ 'type' => 'structure', 'required' => [ 'Device', ], 'members' => [ 'Device' => [ 'shape' => 'DeviceType', ], ], ], 'AdminGetUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Username', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Username' => [ 'shape' => 'UsernameType', ], ], ], 'AdminGetUserResponse' => [ 'type' => 'structure', 'required' => [ 'Username', ], 'members' => [ 'Username' => [ 'shape' => 'UsernameType', ], 'UserAttributes' => [ 'shape' => 'AttributeListType', ], 'UserCreateDate' => [ 'shape' => 'DateType', ], 'UserLastModifiedDate' => [ 'shape' => 'DateType', ], 'Enabled' => [ 'shape' => 'BooleanType', ], 'UserStatus' => [ 'shape' => 'UserStatusType', ], 'MFAOptions' => [ 'shape' => 'MFAOptionListType', ], 'PreferredMfaSetting' => [ 'shape' => 'StringType', ], 'UserMFASettingList' => [ 'shape' => 'UserMFASettingListType', ], ], ], 'AdminInitiateAuthRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'ClientId', 'AuthFlow', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'ClientId' => [ 'shape' => 'ClientIdType', ], 'AuthFlow' => [ 'shape' => 'AuthFlowType', ], 'AuthParameters' => [ 'shape' => 'AuthParametersType', ], 'ClientMetadata' => [ 'shape' => 'ClientMetadataType', ], 'AnalyticsMetadata' => [ 'shape' => 'AnalyticsMetadataType', ], 'ContextData' => [ 'shape' => 'ContextDataType', ], ], ], 'AdminInitiateAuthResponse' => [ 'type' => 'structure', 'members' => [ 'ChallengeName' => [ 'shape' => 'ChallengeNameType', ], 'Session' => [ 'shape' => 'SessionType', ], 'ChallengeParameters' => [ 'shape' => 'ChallengeParametersType', ], 'AuthenticationResult' => [ 'shape' => 'AuthenticationResultType', ], ], ], 'AdminLinkProviderForUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'DestinationUser', 'SourceUser', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'StringType', ], 'DestinationUser' => [ 'shape' => 'ProviderUserIdentifierType', ], 'SourceUser' => [ 'shape' => 'ProviderUserIdentifierType', ], ], ], 'AdminLinkProviderForUserResponse' => [ 'type' => 'structure', 'members' => [], ], 'AdminListDevicesRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Username', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'Limit' => [ 'shape' => 'QueryLimitType', ], 'PaginationToken' => [ 'shape' => 'SearchPaginationTokenType', ], ], ], 'AdminListDevicesResponse' => [ 'type' => 'structure', 'members' => [ 'Devices' => [ 'shape' => 'DeviceListType', ], 'PaginationToken' => [ 'shape' => 'SearchPaginationTokenType', ], ], ], 'AdminListGroupsForUserRequest' => [ 'type' => 'structure', 'required' => [ 'Username', 'UserPoolId', ], 'members' => [ 'Username' => [ 'shape' => 'UsernameType', ], 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Limit' => [ 'shape' => 'QueryLimitType', ], 'NextToken' => [ 'shape' => 'PaginationKey', ], ], ], 'AdminListGroupsForUserResponse' => [ 'type' => 'structure', 'members' => [ 'Groups' => [ 'shape' => 'GroupListType', ], 'NextToken' => [ 'shape' => 'PaginationKey', ], ], ], 'AdminListUserAuthEventsRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Username', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'MaxResults' => [ 'shape' => 'QueryLimitType', ], 'NextToken' => [ 'shape' => 'PaginationKey', ], ], ], 'AdminListUserAuthEventsResponse' => [ 'type' => 'structure', 'members' => [ 'AuthEvents' => [ 'shape' => 'AuthEventsType', ], 'NextToken' => [ 'shape' => 'PaginationKey', ], ], ], 'AdminRemoveUserFromGroupRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Username', 'GroupName', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'GroupName' => [ 'shape' => 'GroupNameType', ], ], ], 'AdminResetUserPasswordRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Username', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Username' => [ 'shape' => 'UsernameType', ], ], ], 'AdminResetUserPasswordResponse' => [ 'type' => 'structure', 'members' => [], ], 'AdminRespondToAuthChallengeRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'ClientId', 'ChallengeName', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'ClientId' => [ 'shape' => 'ClientIdType', ], 'ChallengeName' => [ 'shape' => 'ChallengeNameType', ], 'ChallengeResponses' => [ 'shape' => 'ChallengeResponsesType', ], 'Session' => [ 'shape' => 'SessionType', ], 'AnalyticsMetadata' => [ 'shape' => 'AnalyticsMetadataType', ], 'ContextData' => [ 'shape' => 'ContextDataType', ], ], ], 'AdminRespondToAuthChallengeResponse' => [ 'type' => 'structure', 'members' => [ 'ChallengeName' => [ 'shape' => 'ChallengeNameType', ], 'Session' => [ 'shape' => 'SessionType', ], 'ChallengeParameters' => [ 'shape' => 'ChallengeParametersType', ], 'AuthenticationResult' => [ 'shape' => 'AuthenticationResultType', ], ], ], 'AdminSetUserMFAPreferenceRequest' => [ 'type' => 'structure', 'required' => [ 'Username', 'UserPoolId', ], 'members' => [ 'SMSMfaSettings' => [ 'shape' => 'SMSMfaSettingsType', ], 'SoftwareTokenMfaSettings' => [ 'shape' => 'SoftwareTokenMfaSettingsType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], ], ], 'AdminSetUserMFAPreferenceResponse' => [ 'type' => 'structure', 'members' => [], ], 'AdminSetUserSettingsRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Username', 'MFAOptions', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'MFAOptions' => [ 'shape' => 'MFAOptionListType', ], ], ], 'AdminSetUserSettingsResponse' => [ 'type' => 'structure', 'members' => [], ], 'AdminUpdateAuthEventFeedbackRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Username', 'EventId', 'FeedbackValue', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'EventId' => [ 'shape' => 'EventIdType', ], 'FeedbackValue' => [ 'shape' => 'FeedbackValueType', ], ], ], 'AdminUpdateAuthEventFeedbackResponse' => [ 'type' => 'structure', 'members' => [], ], 'AdminUpdateDeviceStatusRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Username', 'DeviceKey', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'DeviceKey' => [ 'shape' => 'DeviceKeyType', ], 'DeviceRememberedStatus' => [ 'shape' => 'DeviceRememberedStatusType', ], ], ], 'AdminUpdateDeviceStatusResponse' => [ 'type' => 'structure', 'members' => [], ], 'AdminUpdateUserAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Username', 'UserAttributes', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'UserAttributes' => [ 'shape' => 'AttributeListType', ], ], ], 'AdminUpdateUserAttributesResponse' => [ 'type' => 'structure', 'members' => [], ], 'AdminUserGlobalSignOutRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Username', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Username' => [ 'shape' => 'UsernameType', ], ], ], 'AdminUserGlobalSignOutResponse' => [ 'type' => 'structure', 'members' => [], ], 'AdvancedSecurityModeType' => [ 'type' => 'string', 'enum' => [ 'OFF', 'AUDIT', 'ENFORCED', ], ], 'AliasAttributeType' => [ 'type' => 'string', 'enum' => [ 'phone_number', 'email', 'preferred_username', ], ], 'AliasAttributesListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'AliasAttributeType', ], ], 'AliasExistsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'AnalyticsConfigurationType' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'RoleArn', 'ExternalId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'HexStringType', ], 'RoleArn' => [ 'shape' => 'ArnType', ], 'ExternalId' => [ 'shape' => 'StringType', ], 'UserDataShared' => [ 'shape' => 'BooleanType', ], ], ], 'AnalyticsMetadataType' => [ 'type' => 'structure', 'members' => [ 'AnalyticsEndpointId' => [ 'shape' => 'StringType', ], ], ], 'ArnType' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => 'arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?', ], 'AssociateSoftwareTokenRequest' => [ 'type' => 'structure', 'members' => [ 'AccessToken' => [ 'shape' => 'TokenModelType', ], 'Session' => [ 'shape' => 'SessionType', ], ], ], 'AssociateSoftwareTokenResponse' => [ 'type' => 'structure', 'members' => [ 'SecretCode' => [ 'shape' => 'SecretCodeType', ], 'Session' => [ 'shape' => 'SessionType', ], ], ], 'AttributeDataType' => [ 'type' => 'string', 'enum' => [ 'String', 'Number', 'DateTime', 'Boolean', ], ], 'AttributeListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeType', ], ], 'AttributeMappingKeyType' => [ 'type' => 'string', 'max' => 32, 'min' => 1, ], 'AttributeMappingType' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttributeMappingKeyType', ], 'value' => [ 'shape' => 'StringType', ], ], 'AttributeNameListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeNameType', ], ], 'AttributeNameType' => [ 'type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+', ], 'AttributeType' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'AttributeNameType', ], 'Value' => [ 'shape' => 'AttributeValueType', ], ], ], 'AttributeValueType' => [ 'type' => 'string', 'max' => 2048, 'sensitive' => true, ], 'AuthEventType' => [ 'type' => 'structure', 'members' => [ 'EventId' => [ 'shape' => 'StringType', ], 'EventType' => [ 'shape' => 'EventType', ], 'CreationDate' => [ 'shape' => 'DateType', ], 'EventResponse' => [ 'shape' => 'EventResponseType', ], 'EventRisk' => [ 'shape' => 'EventRiskType', ], 'ChallengeResponses' => [ 'shape' => 'ChallengeResponseListType', ], 'EventContextData' => [ 'shape' => 'EventContextDataType', ], 'EventFeedback' => [ 'shape' => 'EventFeedbackType', ], ], ], 'AuthEventsType' => [ 'type' => 'list', 'member' => [ 'shape' => 'AuthEventType', ], ], 'AuthFlowType' => [ 'type' => 'string', 'enum' => [ 'USER_SRP_AUTH', 'REFRESH_TOKEN_AUTH', 'REFRESH_TOKEN', 'CUSTOM_AUTH', 'ADMIN_NO_SRP_AUTH', 'USER_PASSWORD_AUTH', ], ], 'AuthParametersType' => [ 'type' => 'map', 'key' => [ 'shape' => 'StringType', ], 'value' => [ 'shape' => 'StringType', ], ], 'AuthenticationResultType' => [ 'type' => 'structure', 'members' => [ 'AccessToken' => [ 'shape' => 'TokenModelType', ], 'ExpiresIn' => [ 'shape' => 'IntegerType', ], 'TokenType' => [ 'shape' => 'StringType', ], 'RefreshToken' => [ 'shape' => 'TokenModelType', ], 'IdToken' => [ 'shape' => 'TokenModelType', ], 'NewDeviceMetadata' => [ 'shape' => 'NewDeviceMetadataType', ], ], ], 'BlockedIPRangeListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'StringType', ], 'max' => 20, ], 'BooleanType' => [ 'type' => 'boolean', ], 'CSSType' => [ 'type' => 'string', ], 'CSSVersionType' => [ 'type' => 'string', ], 'CallbackURLsListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'RedirectUrlType', ], 'max' => 100, 'min' => 0, ], 'ChallengeName' => [ 'type' => 'string', 'enum' => [ 'Password', 'Mfa', ], ], 'ChallengeNameType' => [ 'type' => 'string', 'enum' => [ 'SMS_MFA', 'SOFTWARE_TOKEN_MFA', 'SELECT_MFA_TYPE', 'MFA_SETUP', 'PASSWORD_VERIFIER', 'CUSTOM_CHALLENGE', 'DEVICE_SRP_AUTH', 'DEVICE_PASSWORD_VERIFIER', 'ADMIN_NO_SRP_AUTH', 'NEW_PASSWORD_REQUIRED', ], ], 'ChallengeParametersType' => [ 'type' => 'map', 'key' => [ 'shape' => 'StringType', ], 'value' => [ 'shape' => 'StringType', ], ], 'ChallengeResponse' => [ 'type' => 'string', 'enum' => [ 'Success', 'Failure', ], ], 'ChallengeResponseListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ChallengeResponseType', ], ], 'ChallengeResponseType' => [ 'type' => 'structure', 'members' => [ 'ChallengeName' => [ 'shape' => 'ChallengeName', ], 'ChallengeResponse' => [ 'shape' => 'ChallengeResponse', ], ], ], 'ChallengeResponsesType' => [ 'type' => 'map', 'key' => [ 'shape' => 'StringType', ], 'value' => [ 'shape' => 'StringType', ], ], 'ChangePasswordRequest' => [ 'type' => 'structure', 'required' => [ 'PreviousPassword', 'ProposedPassword', 'AccessToken', ], 'members' => [ 'PreviousPassword' => [ 'shape' => 'PasswordType', ], 'ProposedPassword' => [ 'shape' => 'PasswordType', ], 'AccessToken' => [ 'shape' => 'TokenModelType', ], ], ], 'ChangePasswordResponse' => [ 'type' => 'structure', 'members' => [], ], 'ClientIdType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w+]+', 'sensitive' => true, ], 'ClientMetadataType' => [ 'type' => 'map', 'key' => [ 'shape' => 'StringType', ], 'value' => [ 'shape' => 'StringType', ], ], 'ClientNameType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w\\s+=,.@-]+', ], 'ClientPermissionListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClientPermissionType', ], ], 'ClientPermissionType' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'ClientSecretType' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[\\w+]+', 'sensitive' => true, ], 'CodeDeliveryDetailsListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'CodeDeliveryDetailsType', ], ], 'CodeDeliveryDetailsType' => [ 'type' => 'structure', 'members' => [ 'Destination' => [ 'shape' => 'StringType', ], 'DeliveryMedium' => [ 'shape' => 'DeliveryMediumType', ], 'AttributeName' => [ 'shape' => 'AttributeNameType', ], ], ], 'CodeDeliveryFailureException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'CodeMismatchException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'CompletionMessageType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w]+', ], 'CompromisedCredentialsActionsType' => [ 'type' => 'structure', 'required' => [ 'EventAction', ], 'members' => [ 'EventAction' => [ 'shape' => 'CompromisedCredentialsEventActionType', ], ], ], 'CompromisedCredentialsEventActionType' => [ 'type' => 'string', 'enum' => [ 'BLOCK', 'NO_ACTION', ], ], 'CompromisedCredentialsRiskConfigurationType' => [ 'type' => 'structure', 'required' => [ 'Actions', ], 'members' => [ 'EventFilter' => [ 'shape' => 'EventFiltersType', ], 'Actions' => [ 'shape' => 'CompromisedCredentialsActionsType', ], ], ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'ConfirmDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'AccessToken', 'DeviceKey', ], 'members' => [ 'AccessToken' => [ 'shape' => 'TokenModelType', ], 'DeviceKey' => [ 'shape' => 'DeviceKeyType', ], 'DeviceSecretVerifierConfig' => [ 'shape' => 'DeviceSecretVerifierConfigType', ], 'DeviceName' => [ 'shape' => 'DeviceNameType', ], ], ], 'ConfirmDeviceResponse' => [ 'type' => 'structure', 'members' => [ 'UserConfirmationNecessary' => [ 'shape' => 'BooleanType', ], ], ], 'ConfirmForgotPasswordRequest' => [ 'type' => 'structure', 'required' => [ 'ClientId', 'Username', 'ConfirmationCode', 'Password', ], 'members' => [ 'ClientId' => [ 'shape' => 'ClientIdType', ], 'SecretHash' => [ 'shape' => 'SecretHashType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'ConfirmationCode' => [ 'shape' => 'ConfirmationCodeType', ], 'Password' => [ 'shape' => 'PasswordType', ], 'AnalyticsMetadata' => [ 'shape' => 'AnalyticsMetadataType', ], 'UserContextData' => [ 'shape' => 'UserContextDataType', ], ], ], 'ConfirmForgotPasswordResponse' => [ 'type' => 'structure', 'members' => [], ], 'ConfirmSignUpRequest' => [ 'type' => 'structure', 'required' => [ 'ClientId', 'Username', 'ConfirmationCode', ], 'members' => [ 'ClientId' => [ 'shape' => 'ClientIdType', ], 'SecretHash' => [ 'shape' => 'SecretHashType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'ConfirmationCode' => [ 'shape' => 'ConfirmationCodeType', ], 'ForceAliasCreation' => [ 'shape' => 'ForceAliasCreation', ], 'AnalyticsMetadata' => [ 'shape' => 'AnalyticsMetadataType', ], 'UserContextData' => [ 'shape' => 'UserContextDataType', ], ], ], 'ConfirmSignUpResponse' => [ 'type' => 'structure', 'members' => [], ], 'ConfirmationCodeType' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '[\\S]+', ], 'ContextDataType' => [ 'type' => 'structure', 'required' => [ 'IpAddress', 'ServerName', 'ServerPath', 'HttpHeaders', ], 'members' => [ 'IpAddress' => [ 'shape' => 'StringType', ], 'ServerName' => [ 'shape' => 'StringType', ], 'ServerPath' => [ 'shape' => 'StringType', ], 'HttpHeaders' => [ 'shape' => 'HttpHeaderList', ], 'EncodedData' => [ 'shape' => 'StringType', ], ], ], 'CreateGroupRequest' => [ 'type' => 'structure', 'required' => [ 'GroupName', 'UserPoolId', ], 'members' => [ 'GroupName' => [ 'shape' => 'GroupNameType', ], 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Description' => [ 'shape' => 'DescriptionType', ], 'RoleArn' => [ 'shape' => 'ArnType', ], 'Precedence' => [ 'shape' => 'PrecedenceType', ], ], ], 'CreateGroupResponse' => [ 'type' => 'structure', 'members' => [ 'Group' => [ 'shape' => 'GroupType', ], ], ], 'CreateIdentityProviderRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'ProviderName', 'ProviderType', 'ProviderDetails', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'ProviderName' => [ 'shape' => 'ProviderNameTypeV1', ], 'ProviderType' => [ 'shape' => 'IdentityProviderTypeType', ], 'ProviderDetails' => [ 'shape' => 'ProviderDetailsType', ], 'AttributeMapping' => [ 'shape' => 'AttributeMappingType', ], 'IdpIdentifiers' => [ 'shape' => 'IdpIdentifiersListType', ], ], ], 'CreateIdentityProviderResponse' => [ 'type' => 'structure', 'required' => [ 'IdentityProvider', ], 'members' => [ 'IdentityProvider' => [ 'shape' => 'IdentityProviderType', ], ], ], 'CreateResourceServerRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Identifier', 'Name', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Identifier' => [ 'shape' => 'ResourceServerIdentifierType', ], 'Name' => [ 'shape' => 'ResourceServerNameType', ], 'Scopes' => [ 'shape' => 'ResourceServerScopeListType', ], ], ], 'CreateResourceServerResponse' => [ 'type' => 'structure', 'required' => [ 'ResourceServer', ], 'members' => [ 'ResourceServer' => [ 'shape' => 'ResourceServerType', ], ], ], 'CreateUserImportJobRequest' => [ 'type' => 'structure', 'required' => [ 'JobName', 'UserPoolId', 'CloudWatchLogsRoleArn', ], 'members' => [ 'JobName' => [ 'shape' => 'UserImportJobNameType', ], 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'CloudWatchLogsRoleArn' => [ 'shape' => 'ArnType', ], ], ], 'CreateUserImportJobResponse' => [ 'type' => 'structure', 'members' => [ 'UserImportJob' => [ 'shape' => 'UserImportJobType', ], ], ], 'CreateUserPoolClientRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'ClientName', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'ClientName' => [ 'shape' => 'ClientNameType', ], 'GenerateSecret' => [ 'shape' => 'GenerateSecret', ], 'RefreshTokenValidity' => [ 'shape' => 'RefreshTokenValidityType', ], 'ReadAttributes' => [ 'shape' => 'ClientPermissionListType', ], 'WriteAttributes' => [ 'shape' => 'ClientPermissionListType', ], 'ExplicitAuthFlows' => [ 'shape' => 'ExplicitAuthFlowsListType', ], 'SupportedIdentityProviders' => [ 'shape' => 'SupportedIdentityProvidersListType', ], 'CallbackURLs' => [ 'shape' => 'CallbackURLsListType', ], 'LogoutURLs' => [ 'shape' => 'LogoutURLsListType', ], 'DefaultRedirectURI' => [ 'shape' => 'RedirectUrlType', ], 'AllowedOAuthFlows' => [ 'shape' => 'OAuthFlowsType', ], 'AllowedOAuthScopes' => [ 'shape' => 'ScopeListType', ], 'AllowedOAuthFlowsUserPoolClient' => [ 'shape' => 'BooleanType', ], 'AnalyticsConfiguration' => [ 'shape' => 'AnalyticsConfigurationType', ], ], ], 'CreateUserPoolClientResponse' => [ 'type' => 'structure', 'members' => [ 'UserPoolClient' => [ 'shape' => 'UserPoolClientType', ], ], ], 'CreateUserPoolDomainRequest' => [ 'type' => 'structure', 'required' => [ 'Domain', 'UserPoolId', ], 'members' => [ 'Domain' => [ 'shape' => 'DomainType', ], 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'CustomDomainConfig' => [ 'shape' => 'CustomDomainConfigType', ], ], ], 'CreateUserPoolDomainResponse' => [ 'type' => 'structure', 'members' => [ 'CloudFrontDomain' => [ 'shape' => 'DomainType', ], ], ], 'CreateUserPoolRequest' => [ 'type' => 'structure', 'required' => [ 'PoolName', ], 'members' => [ 'PoolName' => [ 'shape' => 'UserPoolNameType', ], 'Policies' => [ 'shape' => 'UserPoolPolicyType', ], 'LambdaConfig' => [ 'shape' => 'LambdaConfigType', ], 'AutoVerifiedAttributes' => [ 'shape' => 'VerifiedAttributesListType', ], 'AliasAttributes' => [ 'shape' => 'AliasAttributesListType', ], 'UsernameAttributes' => [ 'shape' => 'UsernameAttributesListType', ], 'SmsVerificationMessage' => [ 'shape' => 'SmsVerificationMessageType', ], 'EmailVerificationMessage' => [ 'shape' => 'EmailVerificationMessageType', ], 'EmailVerificationSubject' => [ 'shape' => 'EmailVerificationSubjectType', ], 'VerificationMessageTemplate' => [ 'shape' => 'VerificationMessageTemplateType', ], 'SmsAuthenticationMessage' => [ 'shape' => 'SmsVerificationMessageType', ], 'MfaConfiguration' => [ 'shape' => 'UserPoolMfaType', ], 'DeviceConfiguration' => [ 'shape' => 'DeviceConfigurationType', ], 'EmailConfiguration' => [ 'shape' => 'EmailConfigurationType', ], 'SmsConfiguration' => [ 'shape' => 'SmsConfigurationType', ], 'UserPoolTags' => [ 'shape' => 'UserPoolTagsType', ], 'AdminCreateUserConfig' => [ 'shape' => 'AdminCreateUserConfigType', ], 'Schema' => [ 'shape' => 'SchemaAttributesListType', ], 'UserPoolAddOns' => [ 'shape' => 'UserPoolAddOnsType', ], ], ], 'CreateUserPoolResponse' => [ 'type' => 'structure', 'members' => [ 'UserPool' => [ 'shape' => 'UserPoolType', ], ], ], 'CustomAttributeNameType' => [ 'type' => 'string', 'max' => 20, 'min' => 1, 'pattern' => '[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+', ], 'CustomAttributesListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'SchemaAttributeType', ], 'max' => 25, 'min' => 1, ], 'CustomDomainConfigType' => [ 'type' => 'structure', 'required' => [ 'CertificateArn', ], 'members' => [ 'CertificateArn' => [ 'shape' => 'ArnType', ], ], ], 'DateType' => [ 'type' => 'timestamp', ], 'DefaultEmailOptionType' => [ 'type' => 'string', 'enum' => [ 'CONFIRM_WITH_LINK', 'CONFIRM_WITH_CODE', ], ], 'DeleteGroupRequest' => [ 'type' => 'structure', 'required' => [ 'GroupName', 'UserPoolId', ], 'members' => [ 'GroupName' => [ 'shape' => 'GroupNameType', ], 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], ], ], 'DeleteIdentityProviderRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'ProviderName', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'ProviderName' => [ 'shape' => 'ProviderNameType', ], ], ], 'DeleteResourceServerRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Identifier', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Identifier' => [ 'shape' => 'ResourceServerIdentifierType', ], ], ], 'DeleteUserAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'UserAttributeNames', 'AccessToken', ], 'members' => [ 'UserAttributeNames' => [ 'shape' => 'AttributeNameListType', ], 'AccessToken' => [ 'shape' => 'TokenModelType', ], ], ], 'DeleteUserAttributesResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteUserPoolClientRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'ClientId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'ClientId' => [ 'shape' => 'ClientIdType', ], ], ], 'DeleteUserPoolDomainRequest' => [ 'type' => 'structure', 'required' => [ 'Domain', 'UserPoolId', ], 'members' => [ 'Domain' => [ 'shape' => 'DomainType', ], 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], ], ], 'DeleteUserPoolDomainResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteUserPoolRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], ], ], 'DeleteUserRequest' => [ 'type' => 'structure', 'required' => [ 'AccessToken', ], 'members' => [ 'AccessToken' => [ 'shape' => 'TokenModelType', ], ], ], 'DeliveryMediumListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeliveryMediumType', ], ], 'DeliveryMediumType' => [ 'type' => 'string', 'enum' => [ 'SMS', 'EMAIL', ], ], 'DescribeIdentityProviderRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'ProviderName', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'ProviderName' => [ 'shape' => 'ProviderNameType', ], ], ], 'DescribeIdentityProviderResponse' => [ 'type' => 'structure', 'required' => [ 'IdentityProvider', ], 'members' => [ 'IdentityProvider' => [ 'shape' => 'IdentityProviderType', ], ], ], 'DescribeResourceServerRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Identifier', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Identifier' => [ 'shape' => 'ResourceServerIdentifierType', ], ], ], 'DescribeResourceServerResponse' => [ 'type' => 'structure', 'required' => [ 'ResourceServer', ], 'members' => [ 'ResourceServer' => [ 'shape' => 'ResourceServerType', ], ], ], 'DescribeRiskConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'ClientId' => [ 'shape' => 'ClientIdType', ], ], ], 'DescribeRiskConfigurationResponse' => [ 'type' => 'structure', 'required' => [ 'RiskConfiguration', ], 'members' => [ 'RiskConfiguration' => [ 'shape' => 'RiskConfigurationType', ], ], ], 'DescribeUserImportJobRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'JobId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'JobId' => [ 'shape' => 'UserImportJobIdType', ], ], ], 'DescribeUserImportJobResponse' => [ 'type' => 'structure', 'members' => [ 'UserImportJob' => [ 'shape' => 'UserImportJobType', ], ], ], 'DescribeUserPoolClientRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'ClientId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'ClientId' => [ 'shape' => 'ClientIdType', ], ], ], 'DescribeUserPoolClientResponse' => [ 'type' => 'structure', 'members' => [ 'UserPoolClient' => [ 'shape' => 'UserPoolClientType', ], ], ], 'DescribeUserPoolDomainRequest' => [ 'type' => 'structure', 'required' => [ 'Domain', ], 'members' => [ 'Domain' => [ 'shape' => 'DomainType', ], ], ], 'DescribeUserPoolDomainResponse' => [ 'type' => 'structure', 'members' => [ 'DomainDescription' => [ 'shape' => 'DomainDescriptionType', ], ], ], 'DescribeUserPoolRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], ], ], 'DescribeUserPoolResponse' => [ 'type' => 'structure', 'members' => [ 'UserPool' => [ 'shape' => 'UserPoolType', ], ], ], 'DescriptionType' => [ 'type' => 'string', 'max' => 2048, ], 'DeviceConfigurationType' => [ 'type' => 'structure', 'members' => [ 'ChallengeRequiredOnNewDevice' => [ 'shape' => 'BooleanType', ], 'DeviceOnlyRememberedOnUserPrompt' => [ 'shape' => 'BooleanType', ], ], ], 'DeviceKeyType' => [ 'type' => 'string', 'max' => 55, 'min' => 1, 'pattern' => '[\\w-]+_[0-9a-f-]+', ], 'DeviceListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeviceType', ], ], 'DeviceNameType' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'DeviceRememberedStatusType' => [ 'type' => 'string', 'enum' => [ 'remembered', 'not_remembered', ], ], 'DeviceSecretVerifierConfigType' => [ 'type' => 'structure', 'members' => [ 'PasswordVerifier' => [ 'shape' => 'StringType', ], 'Salt' => [ 'shape' => 'StringType', ], ], ], 'DeviceType' => [ 'type' => 'structure', 'members' => [ 'DeviceKey' => [ 'shape' => 'DeviceKeyType', ], 'DeviceAttributes' => [ 'shape' => 'AttributeListType', ], 'DeviceCreateDate' => [ 'shape' => 'DateType', ], 'DeviceLastModifiedDate' => [ 'shape' => 'DateType', ], 'DeviceLastAuthenticatedDate' => [ 'shape' => 'DateType', ], ], ], 'DomainDescriptionType' => [ 'type' => 'structure', 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'AWSAccountId' => [ 'shape' => 'AWSAccountIdType', ], 'Domain' => [ 'shape' => 'DomainType', ], 'S3Bucket' => [ 'shape' => 'S3BucketType', ], 'CloudFrontDistribution' => [ 'shape' => 'StringType', ], 'Version' => [ 'shape' => 'DomainVersionType', ], 'Status' => [ 'shape' => 'DomainStatusType', ], 'CustomDomainConfig' => [ 'shape' => 'CustomDomainConfigType', ], ], ], 'DomainStatusType' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'DELETING', 'UPDATING', 'ACTIVE', 'FAILED', ], ], 'DomainType' => [ 'type' => 'string', 'max' => 63, 'min' => 1, 'pattern' => '^[a-z0-9](?:[a-z0-9\\-]{0,61}[a-z0-9])?$', ], 'DomainVersionType' => [ 'type' => 'string', 'max' => 20, 'min' => 1, ], 'DuplicateProviderException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'EmailAddressType' => [ 'type' => 'string', 'pattern' => '[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+@[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+', ], 'EmailConfigurationType' => [ 'type' => 'structure', 'members' => [ 'SourceArn' => [ 'shape' => 'ArnType', ], 'ReplyToEmailAddress' => [ 'shape' => 'EmailAddressType', ], ], ], 'EmailNotificationBodyType' => [ 'type' => 'string', 'max' => 20000, 'min' => 6, 'pattern' => '[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]+', ], 'EmailNotificationSubjectType' => [ 'type' => 'string', 'max' => 140, 'min' => 1, 'pattern' => '[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+', ], 'EmailVerificationMessageByLinkType' => [ 'type' => 'string', 'max' => 20000, 'min' => 6, 'pattern' => '[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*\\{##[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*##\\}[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*', ], 'EmailVerificationMessageType' => [ 'type' => 'string', 'max' => 20000, 'min' => 6, 'pattern' => '[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*\\{####\\}[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*', ], 'EmailVerificationSubjectByLinkType' => [ 'type' => 'string', 'max' => 140, 'min' => 1, 'pattern' => '[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+', ], 'EmailVerificationSubjectType' => [ 'type' => 'string', 'max' => 140, 'min' => 1, 'pattern' => '[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+', ], 'EnableSoftwareTokenMFAException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'EventContextDataType' => [ 'type' => 'structure', 'members' => [ 'IpAddress' => [ 'shape' => 'StringType', ], 'DeviceName' => [ 'shape' => 'StringType', ], 'Timezone' => [ 'shape' => 'StringType', ], 'City' => [ 'shape' => 'StringType', ], 'Country' => [ 'shape' => 'StringType', ], ], ], 'EventFeedbackType' => [ 'type' => 'structure', 'required' => [ 'FeedbackValue', 'Provider', ], 'members' => [ 'FeedbackValue' => [ 'shape' => 'FeedbackValueType', ], 'Provider' => [ 'shape' => 'StringType', ], 'FeedbackDate' => [ 'shape' => 'DateType', ], ], ], 'EventFilterType' => [ 'type' => 'string', 'enum' => [ 'SIGN_IN', 'PASSWORD_CHANGE', 'SIGN_UP', ], ], 'EventFiltersType' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventFilterType', ], ], 'EventIdType' => [ 'type' => 'string', 'max' => 50, 'min' => 1, 'pattern' => '[\\w+-]+', ], 'EventResponseType' => [ 'type' => 'string', 'enum' => [ 'Success', 'Failure', ], ], 'EventRiskType' => [ 'type' => 'structure', 'members' => [ 'RiskDecision' => [ 'shape' => 'RiskDecisionType', ], 'RiskLevel' => [ 'shape' => 'RiskLevelType', ], ], ], 'EventType' => [ 'type' => 'string', 'enum' => [ 'SignIn', 'SignUp', 'ForgotPassword', ], ], 'ExpiredCodeException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'ExplicitAuthFlowsListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExplicitAuthFlowsType', ], ], 'ExplicitAuthFlowsType' => [ 'type' => 'string', 'enum' => [ 'ADMIN_NO_SRP_AUTH', 'CUSTOM_AUTH_FLOW_ONLY', 'USER_PASSWORD_AUTH', ], ], 'FeedbackValueType' => [ 'type' => 'string', 'enum' => [ 'Valid', 'Invalid', ], ], 'ForceAliasCreation' => [ 'type' => 'boolean', ], 'ForgetDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'DeviceKey', ], 'members' => [ 'AccessToken' => [ 'shape' => 'TokenModelType', ], 'DeviceKey' => [ 'shape' => 'DeviceKeyType', ], ], ], 'ForgotPasswordRequest' => [ 'type' => 'structure', 'required' => [ 'ClientId', 'Username', ], 'members' => [ 'ClientId' => [ 'shape' => 'ClientIdType', ], 'SecretHash' => [ 'shape' => 'SecretHashType', ], 'UserContextData' => [ 'shape' => 'UserContextDataType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'AnalyticsMetadata' => [ 'shape' => 'AnalyticsMetadataType', ], ], ], 'ForgotPasswordResponse' => [ 'type' => 'structure', 'members' => [ 'CodeDeliveryDetails' => [ 'shape' => 'CodeDeliveryDetailsType', ], ], ], 'GenerateSecret' => [ 'type' => 'boolean', ], 'GetCSVHeaderRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], ], ], 'GetCSVHeaderResponse' => [ 'type' => 'structure', 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'CSVHeader' => [ 'shape' => 'ListOfStringTypes', ], ], ], 'GetDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'DeviceKey', ], 'members' => [ 'DeviceKey' => [ 'shape' => 'DeviceKeyType', ], 'AccessToken' => [ 'shape' => 'TokenModelType', ], ], ], 'GetDeviceResponse' => [ 'type' => 'structure', 'required' => [ 'Device', ], 'members' => [ 'Device' => [ 'shape' => 'DeviceType', ], ], ], 'GetGroupRequest' => [ 'type' => 'structure', 'required' => [ 'GroupName', 'UserPoolId', ], 'members' => [ 'GroupName' => [ 'shape' => 'GroupNameType', ], 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], ], ], 'GetGroupResponse' => [ 'type' => 'structure', 'members' => [ 'Group' => [ 'shape' => 'GroupType', ], ], ], 'GetIdentityProviderByIdentifierRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'IdpIdentifier', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'IdpIdentifier' => [ 'shape' => 'IdpIdentifierType', ], ], ], 'GetIdentityProviderByIdentifierResponse' => [ 'type' => 'structure', 'required' => [ 'IdentityProvider', ], 'members' => [ 'IdentityProvider' => [ 'shape' => 'IdentityProviderType', ], ], ], 'GetSigningCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], ], ], 'GetSigningCertificateResponse' => [ 'type' => 'structure', 'members' => [ 'Certificate' => [ 'shape' => 'StringType', ], ], ], 'GetUICustomizationRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'ClientId' => [ 'shape' => 'ClientIdType', ], ], ], 'GetUICustomizationResponse' => [ 'type' => 'structure', 'required' => [ 'UICustomization', ], 'members' => [ 'UICustomization' => [ 'shape' => 'UICustomizationType', ], ], ], 'GetUserAttributeVerificationCodeRequest' => [ 'type' => 'structure', 'required' => [ 'AccessToken', 'AttributeName', ], 'members' => [ 'AccessToken' => [ 'shape' => 'TokenModelType', ], 'AttributeName' => [ 'shape' => 'AttributeNameType', ], ], ], 'GetUserAttributeVerificationCodeResponse' => [ 'type' => 'structure', 'members' => [ 'CodeDeliveryDetails' => [ 'shape' => 'CodeDeliveryDetailsType', ], ], ], 'GetUserPoolMfaConfigRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], ], ], 'GetUserPoolMfaConfigResponse' => [ 'type' => 'structure', 'members' => [ 'SmsMfaConfiguration' => [ 'shape' => 'SmsMfaConfigType', ], 'SoftwareTokenMfaConfiguration' => [ 'shape' => 'SoftwareTokenMfaConfigType', ], 'MfaConfiguration' => [ 'shape' => 'UserPoolMfaType', ], ], ], 'GetUserRequest' => [ 'type' => 'structure', 'required' => [ 'AccessToken', ], 'members' => [ 'AccessToken' => [ 'shape' => 'TokenModelType', ], ], ], 'GetUserResponse' => [ 'type' => 'structure', 'required' => [ 'Username', 'UserAttributes', ], 'members' => [ 'Username' => [ 'shape' => 'UsernameType', ], 'UserAttributes' => [ 'shape' => 'AttributeListType', ], 'MFAOptions' => [ 'shape' => 'MFAOptionListType', ], 'PreferredMfaSetting' => [ 'shape' => 'StringType', ], 'UserMFASettingList' => [ 'shape' => 'UserMFASettingListType', ], ], ], 'GlobalSignOutRequest' => [ 'type' => 'structure', 'required' => [ 'AccessToken', ], 'members' => [ 'AccessToken' => [ 'shape' => 'TokenModelType', ], ], ], 'GlobalSignOutResponse' => [ 'type' => 'structure', 'members' => [], ], 'GroupExistsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'GroupListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'GroupType', ], ], 'GroupNameType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+', ], 'GroupType' => [ 'type' => 'structure', 'members' => [ 'GroupName' => [ 'shape' => 'GroupNameType', ], 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Description' => [ 'shape' => 'DescriptionType', ], 'RoleArn' => [ 'shape' => 'ArnType', ], 'Precedence' => [ 'shape' => 'PrecedenceType', ], 'LastModifiedDate' => [ 'shape' => 'DateType', ], 'CreationDate' => [ 'shape' => 'DateType', ], ], ], 'HexStringType' => [ 'type' => 'string', 'pattern' => '^[0-9a-fA-F]+$', ], 'HttpHeader' => [ 'type' => 'structure', 'members' => [ 'headerName' => [ 'shape' => 'StringType', ], 'headerValue' => [ 'shape' => 'StringType', ], ], ], 'HttpHeaderList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HttpHeader', ], ], 'IdentityProviderType' => [ 'type' => 'structure', 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'ProviderName' => [ 'shape' => 'ProviderNameType', ], 'ProviderType' => [ 'shape' => 'IdentityProviderTypeType', ], 'ProviderDetails' => [ 'shape' => 'ProviderDetailsType', ], 'AttributeMapping' => [ 'shape' => 'AttributeMappingType', ], 'IdpIdentifiers' => [ 'shape' => 'IdpIdentifiersListType', ], 'LastModifiedDate' => [ 'shape' => 'DateType', ], 'CreationDate' => [ 'shape' => 'DateType', ], ], ], 'IdentityProviderTypeType' => [ 'type' => 'string', 'enum' => [ 'SAML', 'Facebook', 'Google', 'LoginWithAmazon', 'OIDC', ], ], 'IdpIdentifierType' => [ 'type' => 'string', 'max' => 40, 'min' => 1, 'pattern' => '[\\w\\s+=.@-]+', ], 'IdpIdentifiersListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'IdpIdentifierType', ], 'max' => 50, 'min' => 0, ], 'ImageFileType' => [ 'type' => 'blob', ], 'ImageUrlType' => [ 'type' => 'string', ], 'InitiateAuthRequest' => [ 'type' => 'structure', 'required' => [ 'AuthFlow', 'ClientId', ], 'members' => [ 'AuthFlow' => [ 'shape' => 'AuthFlowType', ], 'AuthParameters' => [ 'shape' => 'AuthParametersType', ], 'ClientMetadata' => [ 'shape' => 'ClientMetadataType', ], 'ClientId' => [ 'shape' => 'ClientIdType', ], 'AnalyticsMetadata' => [ 'shape' => 'AnalyticsMetadataType', ], 'UserContextData' => [ 'shape' => 'UserContextDataType', ], ], ], 'InitiateAuthResponse' => [ 'type' => 'structure', 'members' => [ 'ChallengeName' => [ 'shape' => 'ChallengeNameType', ], 'Session' => [ 'shape' => 'SessionType', ], 'ChallengeParameters' => [ 'shape' => 'ChallengeParametersType', ], 'AuthenticationResult' => [ 'shape' => 'AuthenticationResultType', ], ], ], 'IntegerType' => [ 'type' => 'integer', ], 'InternalErrorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, 'fault' => true, ], 'InvalidEmailRoleAccessPolicyException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'InvalidLambdaResponseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'InvalidOAuthFlowException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'InvalidPasswordException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'InvalidSmsRoleAccessPolicyException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'InvalidSmsRoleTrustRelationshipException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'InvalidUserPoolConfigurationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'LambdaConfigType' => [ 'type' => 'structure', 'members' => [ 'PreSignUp' => [ 'shape' => 'ArnType', ], 'CustomMessage' => [ 'shape' => 'ArnType', ], 'PostConfirmation' => [ 'shape' => 'ArnType', ], 'PreAuthentication' => [ 'shape' => 'ArnType', ], 'PostAuthentication' => [ 'shape' => 'ArnType', ], 'DefineAuthChallenge' => [ 'shape' => 'ArnType', ], 'CreateAuthChallenge' => [ 'shape' => 'ArnType', ], 'VerifyAuthChallengeResponse' => [ 'shape' => 'ArnType', ], 'PreTokenGeneration' => [ 'shape' => 'ArnType', ], 'UserMigration' => [ 'shape' => 'ArnType', ], ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'ListDevicesRequest' => [ 'type' => 'structure', 'required' => [ 'AccessToken', ], 'members' => [ 'AccessToken' => [ 'shape' => 'TokenModelType', ], 'Limit' => [ 'shape' => 'QueryLimitType', ], 'PaginationToken' => [ 'shape' => 'SearchPaginationTokenType', ], ], ], 'ListDevicesResponse' => [ 'type' => 'structure', 'members' => [ 'Devices' => [ 'shape' => 'DeviceListType', ], 'PaginationToken' => [ 'shape' => 'SearchPaginationTokenType', ], ], ], 'ListGroupsRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Limit' => [ 'shape' => 'QueryLimitType', ], 'NextToken' => [ 'shape' => 'PaginationKey', ], ], ], 'ListGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'Groups' => [ 'shape' => 'GroupListType', ], 'NextToken' => [ 'shape' => 'PaginationKey', ], ], ], 'ListIdentityProvidersRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'MaxResults' => [ 'shape' => 'ListProvidersLimitType', ], 'NextToken' => [ 'shape' => 'PaginationKeyType', ], ], ], 'ListIdentityProvidersResponse' => [ 'type' => 'structure', 'required' => [ 'Providers', ], 'members' => [ 'Providers' => [ 'shape' => 'ProvidersListType', ], 'NextToken' => [ 'shape' => 'PaginationKeyType', ], ], ], 'ListOfStringTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'StringType', ], ], 'ListProvidersLimitType' => [ 'type' => 'integer', 'max' => 60, 'min' => 1, ], 'ListResourceServersLimitType' => [ 'type' => 'integer', 'max' => 50, 'min' => 1, ], 'ListResourceServersRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'MaxResults' => [ 'shape' => 'ListResourceServersLimitType', ], 'NextToken' => [ 'shape' => 'PaginationKeyType', ], ], ], 'ListResourceServersResponse' => [ 'type' => 'structure', 'required' => [ 'ResourceServers', ], 'members' => [ 'ResourceServers' => [ 'shape' => 'ResourceServersListType', ], 'NextToken' => [ 'shape' => 'PaginationKeyType', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ArnType', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'UserPoolTagsType', ], ], ], 'ListUserImportJobsRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'MaxResults', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'MaxResults' => [ 'shape' => 'PoolQueryLimitType', ], 'PaginationToken' => [ 'shape' => 'PaginationKeyType', ], ], ], 'ListUserImportJobsResponse' => [ 'type' => 'structure', 'members' => [ 'UserImportJobs' => [ 'shape' => 'UserImportJobsListType', ], 'PaginationToken' => [ 'shape' => 'PaginationKeyType', ], ], ], 'ListUserPoolClientsRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'MaxResults' => [ 'shape' => 'QueryLimit', ], 'NextToken' => [ 'shape' => 'PaginationKey', ], ], ], 'ListUserPoolClientsResponse' => [ 'type' => 'structure', 'members' => [ 'UserPoolClients' => [ 'shape' => 'UserPoolClientListType', ], 'NextToken' => [ 'shape' => 'PaginationKey', ], ], ], 'ListUserPoolsRequest' => [ 'type' => 'structure', 'required' => [ 'MaxResults', ], 'members' => [ 'NextToken' => [ 'shape' => 'PaginationKeyType', ], 'MaxResults' => [ 'shape' => 'PoolQueryLimitType', ], ], ], 'ListUserPoolsResponse' => [ 'type' => 'structure', 'members' => [ 'UserPools' => [ 'shape' => 'UserPoolListType', ], 'NextToken' => [ 'shape' => 'PaginationKeyType', ], ], ], 'ListUsersInGroupRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'GroupName', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'GroupName' => [ 'shape' => 'GroupNameType', ], 'Limit' => [ 'shape' => 'QueryLimitType', ], 'NextToken' => [ 'shape' => 'PaginationKey', ], ], ], 'ListUsersInGroupResponse' => [ 'type' => 'structure', 'members' => [ 'Users' => [ 'shape' => 'UsersListType', ], 'NextToken' => [ 'shape' => 'PaginationKey', ], ], ], 'ListUsersRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'AttributesToGet' => [ 'shape' => 'SearchedAttributeNamesListType', ], 'Limit' => [ 'shape' => 'QueryLimitType', ], 'PaginationToken' => [ 'shape' => 'SearchPaginationTokenType', ], 'Filter' => [ 'shape' => 'UserFilterType', ], ], ], 'ListUsersResponse' => [ 'type' => 'structure', 'members' => [ 'Users' => [ 'shape' => 'UsersListType', ], 'PaginationToken' => [ 'shape' => 'SearchPaginationTokenType', ], ], ], 'LogoutURLsListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'RedirectUrlType', ], 'max' => 100, 'min' => 0, ], 'LongType' => [ 'type' => 'long', ], 'MFAMethodNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'MFAOptionListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'MFAOptionType', ], ], 'MFAOptionType' => [ 'type' => 'structure', 'members' => [ 'DeliveryMedium' => [ 'shape' => 'DeliveryMediumType', ], 'AttributeName' => [ 'shape' => 'AttributeNameType', ], ], ], 'MessageActionType' => [ 'type' => 'string', 'enum' => [ 'RESEND', 'SUPPRESS', ], ], 'MessageTemplateType' => [ 'type' => 'structure', 'members' => [ 'SMSMessage' => [ 'shape' => 'SmsVerificationMessageType', ], 'EmailMessage' => [ 'shape' => 'EmailVerificationMessageType', ], 'EmailSubject' => [ 'shape' => 'EmailVerificationSubjectType', ], ], ], 'MessageType' => [ 'type' => 'string', ], 'NewDeviceMetadataType' => [ 'type' => 'structure', 'members' => [ 'DeviceKey' => [ 'shape' => 'DeviceKeyType', ], 'DeviceGroupKey' => [ 'shape' => 'StringType', ], ], ], 'NotAuthorizedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'NotifyConfigurationType' => [ 'type' => 'structure', 'required' => [ 'SourceArn', ], 'members' => [ 'From' => [ 'shape' => 'StringType', ], 'ReplyTo' => [ 'shape' => 'StringType', ], 'SourceArn' => [ 'shape' => 'ArnType', ], 'BlockEmail' => [ 'shape' => 'NotifyEmailType', ], 'NoActionEmail' => [ 'shape' => 'NotifyEmailType', ], 'MfaEmail' => [ 'shape' => 'NotifyEmailType', ], ], ], 'NotifyEmailType' => [ 'type' => 'structure', 'required' => [ 'Subject', ], 'members' => [ 'Subject' => [ 'shape' => 'EmailNotificationSubjectType', ], 'HtmlBody' => [ 'shape' => 'EmailNotificationBodyType', ], 'TextBody' => [ 'shape' => 'EmailNotificationBodyType', ], ], ], 'NumberAttributeConstraintsType' => [ 'type' => 'structure', 'members' => [ 'MinValue' => [ 'shape' => 'StringType', ], 'MaxValue' => [ 'shape' => 'StringType', ], ], ], 'OAuthFlowType' => [ 'type' => 'string', 'enum' => [ 'code', 'implicit', 'client_credentials', ], ], 'OAuthFlowsType' => [ 'type' => 'list', 'member' => [ 'shape' => 'OAuthFlowType', ], 'max' => 3, 'min' => 0, ], 'PaginationKey' => [ 'type' => 'string', 'min' => 1, 'pattern' => '[\\S]+', ], 'PaginationKeyType' => [ 'type' => 'string', 'min' => 1, 'pattern' => '[\\S]+', ], 'PasswordPolicyMinLengthType' => [ 'type' => 'integer', 'max' => 99, 'min' => 6, ], 'PasswordPolicyType' => [ 'type' => 'structure', 'members' => [ 'MinimumLength' => [ 'shape' => 'PasswordPolicyMinLengthType', ], 'RequireUppercase' => [ 'shape' => 'BooleanType', ], 'RequireLowercase' => [ 'shape' => 'BooleanType', ], 'RequireNumbers' => [ 'shape' => 'BooleanType', ], 'RequireSymbols' => [ 'shape' => 'BooleanType', ], ], ], 'PasswordResetRequiredException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'PasswordType' => [ 'type' => 'string', 'max' => 256, 'min' => 6, 'pattern' => '[\\S]+', 'sensitive' => true, ], 'PoolQueryLimitType' => [ 'type' => 'integer', 'max' => 60, 'min' => 1, ], 'PreSignedUrlType' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'PrecedenceType' => [ 'type' => 'integer', 'min' => 0, ], 'PreconditionNotMetException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'ProviderDescription' => [ 'type' => 'structure', 'members' => [ 'ProviderName' => [ 'shape' => 'ProviderNameType', ], 'ProviderType' => [ 'shape' => 'IdentityProviderTypeType', ], 'LastModifiedDate' => [ 'shape' => 'DateType', ], 'CreationDate' => [ 'shape' => 'DateType', ], ], ], 'ProviderDetailsType' => [ 'type' => 'map', 'key' => [ 'shape' => 'StringType', ], 'value' => [ 'shape' => 'StringType', ], ], 'ProviderNameType' => [ 'type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+', ], 'ProviderNameTypeV1' => [ 'type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '[^_][\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}][^_]+', ], 'ProviderUserIdentifierType' => [ 'type' => 'structure', 'members' => [ 'ProviderName' => [ 'shape' => 'ProviderNameType', ], 'ProviderAttributeName' => [ 'shape' => 'StringType', ], 'ProviderAttributeValue' => [ 'shape' => 'StringType', ], ], ], 'ProvidersListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProviderDescription', ], 'max' => 50, 'min' => 0, ], 'QueryLimit' => [ 'type' => 'integer', 'max' => 60, 'min' => 1, ], 'QueryLimitType' => [ 'type' => 'integer', 'max' => 60, 'min' => 0, ], 'RedirectUrlType' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+', ], 'RefreshTokenValidityType' => [ 'type' => 'integer', 'max' => 3650, 'min' => 0, ], 'ResendConfirmationCodeRequest' => [ 'type' => 'structure', 'required' => [ 'ClientId', 'Username', ], 'members' => [ 'ClientId' => [ 'shape' => 'ClientIdType', ], 'SecretHash' => [ 'shape' => 'SecretHashType', ], 'UserContextData' => [ 'shape' => 'UserContextDataType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'AnalyticsMetadata' => [ 'shape' => 'AnalyticsMetadataType', ], ], ], 'ResendConfirmationCodeResponse' => [ 'type' => 'structure', 'members' => [ 'CodeDeliveryDetails' => [ 'shape' => 'CodeDeliveryDetailsType', ], ], ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'ResourceServerIdentifierType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[\\x21\\x23-\\x5B\\x5D-\\x7E]+', ], 'ResourceServerNameType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[\\w\\s+=,.@-]+', ], 'ResourceServerScopeDescriptionType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'ResourceServerScopeListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceServerScopeType', ], 'max' => 25, ], 'ResourceServerScopeNameType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[\\x21\\x23-\\x2E\\x30-\\x5B\\x5D-\\x7E]+', ], 'ResourceServerScopeType' => [ 'type' => 'structure', 'required' => [ 'ScopeName', 'ScopeDescription', ], 'members' => [ 'ScopeName' => [ 'shape' => 'ResourceServerScopeNameType', ], 'ScopeDescription' => [ 'shape' => 'ResourceServerScopeDescriptionType', ], ], ], 'ResourceServerType' => [ 'type' => 'structure', 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Identifier' => [ 'shape' => 'ResourceServerIdentifierType', ], 'Name' => [ 'shape' => 'ResourceServerNameType', ], 'Scopes' => [ 'shape' => 'ResourceServerScopeListType', ], ], ], 'ResourceServersListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceServerType', ], ], 'RespondToAuthChallengeRequest' => [ 'type' => 'structure', 'required' => [ 'ClientId', 'ChallengeName', ], 'members' => [ 'ClientId' => [ 'shape' => 'ClientIdType', ], 'ChallengeName' => [ 'shape' => 'ChallengeNameType', ], 'Session' => [ 'shape' => 'SessionType', ], 'ChallengeResponses' => [ 'shape' => 'ChallengeResponsesType', ], 'AnalyticsMetadata' => [ 'shape' => 'AnalyticsMetadataType', ], 'UserContextData' => [ 'shape' => 'UserContextDataType', ], ], ], 'RespondToAuthChallengeResponse' => [ 'type' => 'structure', 'members' => [ 'ChallengeName' => [ 'shape' => 'ChallengeNameType', ], 'Session' => [ 'shape' => 'SessionType', ], 'ChallengeParameters' => [ 'shape' => 'ChallengeParametersType', ], 'AuthenticationResult' => [ 'shape' => 'AuthenticationResultType', ], ], ], 'RiskConfigurationType' => [ 'type' => 'structure', 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'ClientId' => [ 'shape' => 'ClientIdType', ], 'CompromisedCredentialsRiskConfiguration' => [ 'shape' => 'CompromisedCredentialsRiskConfigurationType', ], 'AccountTakeoverRiskConfiguration' => [ 'shape' => 'AccountTakeoverRiskConfigurationType', ], 'RiskExceptionConfiguration' => [ 'shape' => 'RiskExceptionConfigurationType', ], 'LastModifiedDate' => [ 'shape' => 'DateType', ], ], ], 'RiskDecisionType' => [ 'type' => 'string', 'enum' => [ 'NoRisk', 'AccountTakeover', 'Block', ], ], 'RiskExceptionConfigurationType' => [ 'type' => 'structure', 'members' => [ 'BlockedIPRangeList' => [ 'shape' => 'BlockedIPRangeListType', ], 'SkippedIPRangeList' => [ 'shape' => 'SkippedIPRangeListType', ], ], ], 'RiskLevelType' => [ 'type' => 'string', 'enum' => [ 'Low', 'Medium', 'High', ], ], 'S3BucketType' => [ 'type' => 'string', 'max' => 1024, 'min' => 3, 'pattern' => '^[0-9A-Za-z\\.\\-_]*(?<!\\.)$', ], 'SMSMfaSettingsType' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'BooleanType', ], 'PreferredMfa' => [ 'shape' => 'BooleanType', ], ], ], 'SchemaAttributeType' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'CustomAttributeNameType', ], 'AttributeDataType' => [ 'shape' => 'AttributeDataType', ], 'DeveloperOnlyAttribute' => [ 'shape' => 'BooleanType', 'box' => true, ], 'Mutable' => [ 'shape' => 'BooleanType', 'box' => true, ], 'Required' => [ 'shape' => 'BooleanType', 'box' => true, ], 'NumberAttributeConstraints' => [ 'shape' => 'NumberAttributeConstraintsType', ], 'StringAttributeConstraints' => [ 'shape' => 'StringAttributeConstraintsType', ], ], ], 'SchemaAttributesListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'SchemaAttributeType', ], 'max' => 50, 'min' => 1, ], 'ScopeDoesNotExistException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'ScopeListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScopeType', ], 'max' => 25, ], 'ScopeType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[\\x21\\x23-\\x5B\\x5D-\\x7E]+', ], 'SearchPaginationTokenType' => [ 'type' => 'string', 'min' => 1, 'pattern' => '[\\S]+', ], 'SearchedAttributeNamesListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeNameType', ], ], 'SecretCodeType' => [ 'type' => 'string', 'min' => 16, 'pattern' => '[A-Za-z0-9]+', 'sensitive' => true, ], 'SecretHashType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w+=/]+', 'sensitive' => true, ], 'SessionType' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, ], 'SetRiskConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'ClientId' => [ 'shape' => 'ClientIdType', ], 'CompromisedCredentialsRiskConfiguration' => [ 'shape' => 'CompromisedCredentialsRiskConfigurationType', ], 'AccountTakeoverRiskConfiguration' => [ 'shape' => 'AccountTakeoverRiskConfigurationType', ], 'RiskExceptionConfiguration' => [ 'shape' => 'RiskExceptionConfigurationType', ], ], ], 'SetRiskConfigurationResponse' => [ 'type' => 'structure', 'required' => [ 'RiskConfiguration', ], 'members' => [ 'RiskConfiguration' => [ 'shape' => 'RiskConfigurationType', ], ], ], 'SetUICustomizationRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'ClientId' => [ 'shape' => 'ClientIdType', ], 'CSS' => [ 'shape' => 'CSSType', ], 'ImageFile' => [ 'shape' => 'ImageFileType', ], ], ], 'SetUICustomizationResponse' => [ 'type' => 'structure', 'required' => [ 'UICustomization', ], 'members' => [ 'UICustomization' => [ 'shape' => 'UICustomizationType', ], ], ], 'SetUserMFAPreferenceRequest' => [ 'type' => 'structure', 'required' => [ 'AccessToken', ], 'members' => [ 'SMSMfaSettings' => [ 'shape' => 'SMSMfaSettingsType', ], 'SoftwareTokenMfaSettings' => [ 'shape' => 'SoftwareTokenMfaSettingsType', ], 'AccessToken' => [ 'shape' => 'TokenModelType', ], ], ], 'SetUserMFAPreferenceResponse' => [ 'type' => 'structure', 'members' => [], ], 'SetUserPoolMfaConfigRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'SmsMfaConfiguration' => [ 'shape' => 'SmsMfaConfigType', ], 'SoftwareTokenMfaConfiguration' => [ 'shape' => 'SoftwareTokenMfaConfigType', ], 'MfaConfiguration' => [ 'shape' => 'UserPoolMfaType', ], ], ], 'SetUserPoolMfaConfigResponse' => [ 'type' => 'structure', 'members' => [ 'SmsMfaConfiguration' => [ 'shape' => 'SmsMfaConfigType', ], 'SoftwareTokenMfaConfiguration' => [ 'shape' => 'SoftwareTokenMfaConfigType', ], 'MfaConfiguration' => [ 'shape' => 'UserPoolMfaType', ], ], ], 'SetUserSettingsRequest' => [ 'type' => 'structure', 'required' => [ 'AccessToken', 'MFAOptions', ], 'members' => [ 'AccessToken' => [ 'shape' => 'TokenModelType', ], 'MFAOptions' => [ 'shape' => 'MFAOptionListType', ], ], ], 'SetUserSettingsResponse' => [ 'type' => 'structure', 'members' => [], ], 'SignUpRequest' => [ 'type' => 'structure', 'required' => [ 'ClientId', 'Username', 'Password', ], 'members' => [ 'ClientId' => [ 'shape' => 'ClientIdType', ], 'SecretHash' => [ 'shape' => 'SecretHashType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'Password' => [ 'shape' => 'PasswordType', ], 'UserAttributes' => [ 'shape' => 'AttributeListType', ], 'ValidationData' => [ 'shape' => 'AttributeListType', ], 'AnalyticsMetadata' => [ 'shape' => 'AnalyticsMetadataType', ], 'UserContextData' => [ 'shape' => 'UserContextDataType', ], ], ], 'SignUpResponse' => [ 'type' => 'structure', 'required' => [ 'UserConfirmed', 'UserSub', ], 'members' => [ 'UserConfirmed' => [ 'shape' => 'BooleanType', ], 'CodeDeliveryDetails' => [ 'shape' => 'CodeDeliveryDetailsType', ], 'UserSub' => [ 'shape' => 'StringType', ], ], ], 'SkippedIPRangeListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'StringType', ], 'max' => 20, ], 'SmsConfigurationType' => [ 'type' => 'structure', 'required' => [ 'SnsCallerArn', ], 'members' => [ 'SnsCallerArn' => [ 'shape' => 'ArnType', ], 'ExternalId' => [ 'shape' => 'StringType', ], ], ], 'SmsMfaConfigType' => [ 'type' => 'structure', 'members' => [ 'SmsAuthenticationMessage' => [ 'shape' => 'SmsVerificationMessageType', ], 'SmsConfiguration' => [ 'shape' => 'SmsConfigurationType', ], ], ], 'SmsVerificationMessageType' => [ 'type' => 'string', 'max' => 140, 'min' => 6, 'pattern' => '.*\\{####\\}.*', ], 'SoftwareTokenMFANotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'SoftwareTokenMFAUserCodeType' => [ 'type' => 'string', 'max' => 6, 'min' => 6, 'pattern' => '[0-9]+', ], 'SoftwareTokenMfaConfigType' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'BooleanType', ], ], ], 'SoftwareTokenMfaSettingsType' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'BooleanType', ], 'PreferredMfa' => [ 'shape' => 'BooleanType', ], ], ], 'StartUserImportJobRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'JobId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'JobId' => [ 'shape' => 'UserImportJobIdType', ], ], ], 'StartUserImportJobResponse' => [ 'type' => 'structure', 'members' => [ 'UserImportJob' => [ 'shape' => 'UserImportJobType', ], ], ], 'StatusType' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'StopUserImportJobRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'JobId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'JobId' => [ 'shape' => 'UserImportJobIdType', ], ], ], 'StopUserImportJobResponse' => [ 'type' => 'structure', 'members' => [ 'UserImportJob' => [ 'shape' => 'UserImportJobType', ], ], ], 'StringAttributeConstraintsType' => [ 'type' => 'structure', 'members' => [ 'MinLength' => [ 'shape' => 'StringType', ], 'MaxLength' => [ 'shape' => 'StringType', ], ], ], 'StringType' => [ 'type' => 'string', ], 'SupportedIdentityProvidersListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProviderNameType', ], ], 'TagKeysType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ArnType', ], 'Tags' => [ 'shape' => 'UserPoolTagsType', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValueType' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'TokenModelType' => [ 'type' => 'string', 'pattern' => '[A-Za-z0-9-_=.]+', 'sensitive' => true, ], 'TooManyFailedAttemptsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'UICustomizationType' => [ 'type' => 'structure', 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'ClientId' => [ 'shape' => 'ClientIdType', ], 'ImageUrl' => [ 'shape' => 'ImageUrlType', ], 'CSS' => [ 'shape' => 'CSSType', ], 'CSSVersion' => [ 'shape' => 'CSSVersionType', ], 'LastModifiedDate' => [ 'shape' => 'DateType', ], 'CreationDate' => [ 'shape' => 'DateType', ], ], ], 'UnexpectedLambdaException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'UnsupportedIdentityProviderException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'UnsupportedUserStateException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ArnType', ], 'TagKeys' => [ 'shape' => 'UserPoolTagsListType', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateAuthEventFeedbackRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Username', 'EventId', 'FeedbackToken', 'FeedbackValue', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'EventId' => [ 'shape' => 'EventIdType', ], 'FeedbackToken' => [ 'shape' => 'TokenModelType', ], 'FeedbackValue' => [ 'shape' => 'FeedbackValueType', ], ], ], 'UpdateAuthEventFeedbackResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateDeviceStatusRequest' => [ 'type' => 'structure', 'required' => [ 'AccessToken', 'DeviceKey', ], 'members' => [ 'AccessToken' => [ 'shape' => 'TokenModelType', ], 'DeviceKey' => [ 'shape' => 'DeviceKeyType', ], 'DeviceRememberedStatus' => [ 'shape' => 'DeviceRememberedStatusType', ], ], ], 'UpdateDeviceStatusResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateGroupRequest' => [ 'type' => 'structure', 'required' => [ 'GroupName', 'UserPoolId', ], 'members' => [ 'GroupName' => [ 'shape' => 'GroupNameType', ], 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Description' => [ 'shape' => 'DescriptionType', ], 'RoleArn' => [ 'shape' => 'ArnType', ], 'Precedence' => [ 'shape' => 'PrecedenceType', ], ], ], 'UpdateGroupResponse' => [ 'type' => 'structure', 'members' => [ 'Group' => [ 'shape' => 'GroupType', ], ], ], 'UpdateIdentityProviderRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'ProviderName', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'ProviderName' => [ 'shape' => 'ProviderNameType', ], 'ProviderDetails' => [ 'shape' => 'ProviderDetailsType', ], 'AttributeMapping' => [ 'shape' => 'AttributeMappingType', ], 'IdpIdentifiers' => [ 'shape' => 'IdpIdentifiersListType', ], ], ], 'UpdateIdentityProviderResponse' => [ 'type' => 'structure', 'required' => [ 'IdentityProvider', ], 'members' => [ 'IdentityProvider' => [ 'shape' => 'IdentityProviderType', ], ], ], 'UpdateResourceServerRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'Identifier', 'Name', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Identifier' => [ 'shape' => 'ResourceServerIdentifierType', ], 'Name' => [ 'shape' => 'ResourceServerNameType', ], 'Scopes' => [ 'shape' => 'ResourceServerScopeListType', ], ], ], 'UpdateResourceServerResponse' => [ 'type' => 'structure', 'required' => [ 'ResourceServer', ], 'members' => [ 'ResourceServer' => [ 'shape' => 'ResourceServerType', ], ], ], 'UpdateUserAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'UserAttributes', 'AccessToken', ], 'members' => [ 'UserAttributes' => [ 'shape' => 'AttributeListType', ], 'AccessToken' => [ 'shape' => 'TokenModelType', ], ], ], 'UpdateUserAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'CodeDeliveryDetailsList' => [ 'shape' => 'CodeDeliveryDetailsListType', ], ], ], 'UpdateUserPoolClientRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', 'ClientId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'ClientId' => [ 'shape' => 'ClientIdType', ], 'ClientName' => [ 'shape' => 'ClientNameType', ], 'RefreshTokenValidity' => [ 'shape' => 'RefreshTokenValidityType', ], 'ReadAttributes' => [ 'shape' => 'ClientPermissionListType', ], 'WriteAttributes' => [ 'shape' => 'ClientPermissionListType', ], 'ExplicitAuthFlows' => [ 'shape' => 'ExplicitAuthFlowsListType', ], 'SupportedIdentityProviders' => [ 'shape' => 'SupportedIdentityProvidersListType', ], 'CallbackURLs' => [ 'shape' => 'CallbackURLsListType', ], 'LogoutURLs' => [ 'shape' => 'LogoutURLsListType', ], 'DefaultRedirectURI' => [ 'shape' => 'RedirectUrlType', ], 'AllowedOAuthFlows' => [ 'shape' => 'OAuthFlowsType', ], 'AllowedOAuthScopes' => [ 'shape' => 'ScopeListType', ], 'AllowedOAuthFlowsUserPoolClient' => [ 'shape' => 'BooleanType', ], 'AnalyticsConfiguration' => [ 'shape' => 'AnalyticsConfigurationType', ], ], ], 'UpdateUserPoolClientResponse' => [ 'type' => 'structure', 'members' => [ 'UserPoolClient' => [ 'shape' => 'UserPoolClientType', ], ], ], 'UpdateUserPoolDomainRequest' => [ 'type' => 'structure', 'required' => [ 'Domain', 'UserPoolId', 'CustomDomainConfig', ], 'members' => [ 'Domain' => [ 'shape' => 'DomainType', ], 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'CustomDomainConfig' => [ 'shape' => 'CustomDomainConfigType', ], ], ], 'UpdateUserPoolDomainResponse' => [ 'type' => 'structure', 'members' => [ 'CloudFrontDomain' => [ 'shape' => 'DomainType', ], ], ], 'UpdateUserPoolRequest' => [ 'type' => 'structure', 'required' => [ 'UserPoolId', ], 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'Policies' => [ 'shape' => 'UserPoolPolicyType', ], 'LambdaConfig' => [ 'shape' => 'LambdaConfigType', ], 'AutoVerifiedAttributes' => [ 'shape' => 'VerifiedAttributesListType', ], 'SmsVerificationMessage' => [ 'shape' => 'SmsVerificationMessageType', ], 'EmailVerificationMessage' => [ 'shape' => 'EmailVerificationMessageType', ], 'EmailVerificationSubject' => [ 'shape' => 'EmailVerificationSubjectType', ], 'VerificationMessageTemplate' => [ 'shape' => 'VerificationMessageTemplateType', ], 'SmsAuthenticationMessage' => [ 'shape' => 'SmsVerificationMessageType', ], 'MfaConfiguration' => [ 'shape' => 'UserPoolMfaType', ], 'DeviceConfiguration' => [ 'shape' => 'DeviceConfigurationType', ], 'EmailConfiguration' => [ 'shape' => 'EmailConfigurationType', ], 'SmsConfiguration' => [ 'shape' => 'SmsConfigurationType', ], 'UserPoolTags' => [ 'shape' => 'UserPoolTagsType', ], 'AdminCreateUserConfig' => [ 'shape' => 'AdminCreateUserConfigType', ], 'UserPoolAddOns' => [ 'shape' => 'UserPoolAddOnsType', ], ], ], 'UpdateUserPoolResponse' => [ 'type' => 'structure', 'members' => [], ], 'UserContextDataType' => [ 'type' => 'structure', 'members' => [ 'EncodedData' => [ 'shape' => 'StringType', ], ], ], 'UserFilterType' => [ 'type' => 'string', 'max' => 256, ], 'UserImportInProgressException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'UserImportJobIdType' => [ 'type' => 'string', 'max' => 55, 'min' => 1, 'pattern' => 'import-[0-9a-zA-Z-]+', ], 'UserImportJobNameType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w\\s+=,.@-]+', ], 'UserImportJobStatusType' => [ 'type' => 'string', 'enum' => [ 'Created', 'Pending', 'InProgress', 'Stopping', 'Expired', 'Stopped', 'Failed', 'Succeeded', ], ], 'UserImportJobType' => [ 'type' => 'structure', 'members' => [ 'JobName' => [ 'shape' => 'UserImportJobNameType', ], 'JobId' => [ 'shape' => 'UserImportJobIdType', ], 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'PreSignedUrl' => [ 'shape' => 'PreSignedUrlType', ], 'CreationDate' => [ 'shape' => 'DateType', ], 'StartDate' => [ 'shape' => 'DateType', ], 'CompletionDate' => [ 'shape' => 'DateType', ], 'Status' => [ 'shape' => 'UserImportJobStatusType', ], 'CloudWatchLogsRoleArn' => [ 'shape' => 'ArnType', ], 'ImportedUsers' => [ 'shape' => 'LongType', ], 'SkippedUsers' => [ 'shape' => 'LongType', ], 'FailedUsers' => [ 'shape' => 'LongType', ], 'CompletionMessage' => [ 'shape' => 'CompletionMessageType', ], ], ], 'UserImportJobsListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserImportJobType', ], 'max' => 50, 'min' => 1, ], 'UserLambdaValidationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'UserMFASettingListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'StringType', ], ], 'UserNotConfirmedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'UserNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'UserPoolAddOnNotEnabledException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'UserPoolAddOnsType' => [ 'type' => 'structure', 'required' => [ 'AdvancedSecurityMode', ], 'members' => [ 'AdvancedSecurityMode' => [ 'shape' => 'AdvancedSecurityModeType', ], ], ], 'UserPoolClientDescription' => [ 'type' => 'structure', 'members' => [ 'ClientId' => [ 'shape' => 'ClientIdType', ], 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'ClientName' => [ 'shape' => 'ClientNameType', ], ], ], 'UserPoolClientListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserPoolClientDescription', ], ], 'UserPoolClientType' => [ 'type' => 'structure', 'members' => [ 'UserPoolId' => [ 'shape' => 'UserPoolIdType', ], 'ClientName' => [ 'shape' => 'ClientNameType', ], 'ClientId' => [ 'shape' => 'ClientIdType', ], 'ClientSecret' => [ 'shape' => 'ClientSecretType', ], 'LastModifiedDate' => [ 'shape' => 'DateType', ], 'CreationDate' => [ 'shape' => 'DateType', ], 'RefreshTokenValidity' => [ 'shape' => 'RefreshTokenValidityType', ], 'ReadAttributes' => [ 'shape' => 'ClientPermissionListType', ], 'WriteAttributes' => [ 'shape' => 'ClientPermissionListType', ], 'ExplicitAuthFlows' => [ 'shape' => 'ExplicitAuthFlowsListType', ], 'SupportedIdentityProviders' => [ 'shape' => 'SupportedIdentityProvidersListType', ], 'CallbackURLs' => [ 'shape' => 'CallbackURLsListType', ], 'LogoutURLs' => [ 'shape' => 'LogoutURLsListType', ], 'DefaultRedirectURI' => [ 'shape' => 'RedirectUrlType', ], 'AllowedOAuthFlows' => [ 'shape' => 'OAuthFlowsType', ], 'AllowedOAuthScopes' => [ 'shape' => 'ScopeListType', ], 'AllowedOAuthFlowsUserPoolClient' => [ 'shape' => 'BooleanType', 'box' => true, ], 'AnalyticsConfiguration' => [ 'shape' => 'AnalyticsConfigurationType', ], ], ], 'UserPoolDescriptionType' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'UserPoolIdType', ], 'Name' => [ 'shape' => 'UserPoolNameType', ], 'LambdaConfig' => [ 'shape' => 'LambdaConfigType', ], 'Status' => [ 'shape' => 'StatusType', ], 'LastModifiedDate' => [ 'shape' => 'DateType', ], 'CreationDate' => [ 'shape' => 'DateType', ], ], ], 'UserPoolIdType' => [ 'type' => 'string', 'max' => 55, 'min' => 1, 'pattern' => '[\\w-]+_[0-9a-zA-Z]+', ], 'UserPoolListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserPoolDescriptionType', ], ], 'UserPoolMfaType' => [ 'type' => 'string', 'enum' => [ 'OFF', 'ON', 'OPTIONAL', ], ], 'UserPoolNameType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w\\s+=,.@-]+', ], 'UserPoolPolicyType' => [ 'type' => 'structure', 'members' => [ 'PasswordPolicy' => [ 'shape' => 'PasswordPolicyType', ], ], ], 'UserPoolTaggingException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'UserPoolTagsListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKeysType', ], ], 'UserPoolTagsType' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKeysType', ], 'value' => [ 'shape' => 'TagValueType', ], ], 'UserPoolType' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'UserPoolIdType', ], 'Name' => [ 'shape' => 'UserPoolNameType', ], 'Policies' => [ 'shape' => 'UserPoolPolicyType', ], 'LambdaConfig' => [ 'shape' => 'LambdaConfigType', ], 'Status' => [ 'shape' => 'StatusType', ], 'LastModifiedDate' => [ 'shape' => 'DateType', ], 'CreationDate' => [ 'shape' => 'DateType', ], 'SchemaAttributes' => [ 'shape' => 'SchemaAttributesListType', ], 'AutoVerifiedAttributes' => [ 'shape' => 'VerifiedAttributesListType', ], 'AliasAttributes' => [ 'shape' => 'AliasAttributesListType', ], 'UsernameAttributes' => [ 'shape' => 'UsernameAttributesListType', ], 'SmsVerificationMessage' => [ 'shape' => 'SmsVerificationMessageType', ], 'EmailVerificationMessage' => [ 'shape' => 'EmailVerificationMessageType', ], 'EmailVerificationSubject' => [ 'shape' => 'EmailVerificationSubjectType', ], 'VerificationMessageTemplate' => [ 'shape' => 'VerificationMessageTemplateType', ], 'SmsAuthenticationMessage' => [ 'shape' => 'SmsVerificationMessageType', ], 'MfaConfiguration' => [ 'shape' => 'UserPoolMfaType', ], 'DeviceConfiguration' => [ 'shape' => 'DeviceConfigurationType', ], 'EstimatedNumberOfUsers' => [ 'shape' => 'IntegerType', ], 'EmailConfiguration' => [ 'shape' => 'EmailConfigurationType', ], 'SmsConfiguration' => [ 'shape' => 'SmsConfigurationType', ], 'UserPoolTags' => [ 'shape' => 'UserPoolTagsType', ], 'SmsConfigurationFailure' => [ 'shape' => 'StringType', ], 'EmailConfigurationFailure' => [ 'shape' => 'StringType', ], 'Domain' => [ 'shape' => 'DomainType', ], 'CustomDomain' => [ 'shape' => 'DomainType', ], 'AdminCreateUserConfig' => [ 'shape' => 'AdminCreateUserConfigType', ], 'UserPoolAddOns' => [ 'shape' => 'UserPoolAddOnsType', ], 'Arn' => [ 'shape' => 'ArnType', ], ], ], 'UserStatusType' => [ 'type' => 'string', 'enum' => [ 'UNCONFIRMED', 'CONFIRMED', 'ARCHIVED', 'COMPROMISED', 'UNKNOWN', 'RESET_REQUIRED', 'FORCE_CHANGE_PASSWORD', ], ], 'UserType' => [ 'type' => 'structure', 'members' => [ 'Username' => [ 'shape' => 'UsernameType', ], 'Attributes' => [ 'shape' => 'AttributeListType', ], 'UserCreateDate' => [ 'shape' => 'DateType', ], 'UserLastModifiedDate' => [ 'shape' => 'DateType', ], 'Enabled' => [ 'shape' => 'BooleanType', ], 'UserStatus' => [ 'shape' => 'UserStatusType', ], 'MFAOptions' => [ 'shape' => 'MFAOptionListType', ], ], ], 'UsernameAttributeType' => [ 'type' => 'string', 'enum' => [ 'phone_number', 'email', ], ], 'UsernameAttributesListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'UsernameAttributeType', ], ], 'UsernameExistsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'MessageType', ], ], 'exception' => true, ], 'UsernameType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+', 'sensitive' => true, ], 'UsersListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserType', ], ], 'VerificationMessageTemplateType' => [ 'type' => 'structure', 'members' => [ 'SmsMessage' => [ 'shape' => 'SmsVerificationMessageType', ], 'EmailMessage' => [ 'shape' => 'EmailVerificationMessageType', ], 'EmailSubject' => [ 'shape' => 'EmailVerificationSubjectType', ], 'EmailMessageByLink' => [ 'shape' => 'EmailVerificationMessageByLinkType', ], 'EmailSubjectByLink' => [ 'shape' => 'EmailVerificationSubjectByLinkType', ], 'DefaultEmailOption' => [ 'shape' => 'DefaultEmailOptionType', ], ], ], 'VerifiedAttributeType' => [ 'type' => 'string', 'enum' => [ 'phone_number', 'email', ], ], 'VerifiedAttributesListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAttributeType', ], ], 'VerifySoftwareTokenRequest' => [ 'type' => 'structure', 'required' => [ 'UserCode', ], 'members' => [ 'AccessToken' => [ 'shape' => 'TokenModelType', ], 'Session' => [ 'shape' => 'SessionType', ], 'UserCode' => [ 'shape' => 'SoftwareTokenMFAUserCodeType', ], 'FriendlyDeviceName' => [ 'shape' => 'StringType', ], ], ], 'VerifySoftwareTokenResponse' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'VerifySoftwareTokenResponseType', ], 'Session' => [ 'shape' => 'SessionType', ], ], ], 'VerifySoftwareTokenResponseType' => [ 'type' => 'string', 'enum' => [ 'SUCCESS', 'ERROR', ], ], 'VerifyUserAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'AccessToken', 'AttributeName', 'Code', ], 'members' => [ 'AccessToken' => [ 'shape' => 'TokenModelType', ], 'AttributeName' => [ 'shape' => 'AttributeNameType', ], 'Code' => [ 'shape' => 'ConfirmationCodeType', ], ], ], 'VerifyUserAttributeResponse' => [ 'type' => 'structure', 'members' => [], ], ],]; diff --git a/lib/aws/Aws/data/cognito-idp/2016-04-18/paginators-1.json.php b/lib/aws/Aws/data/cognito-idp/2016-04-18/paginators-1.json.php new file mode 100644 index 0000000..73b4ad0 --- /dev/null +++ b/lib/aws/Aws/data/cognito-idp/2016-04-18/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cognito-idp/2016-04-18/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/cognito-idp/2016-04-18/smoke.json.php b/lib/aws/Aws/data/cognito-idp/2016-04-18/smoke.json.php new file mode 100644 index 0000000..8155e2a --- /dev/null +++ b/lib/aws/Aws/data/cognito-idp/2016-04-18/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cognito-idp/2016-04-18/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListUserPools', 'input' => [ 'MaxResults' => 10, ], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeUserPool', 'input' => [ 'UserPoolId' => 'us-east-1:aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/cognito-sync/2014-06-30/api-2.json.php b/lib/aws/Aws/data/cognito-sync/2014-06-30/api-2.json.php new file mode 100644 index 0000000..269df8d --- /dev/null +++ b/lib/aws/Aws/data/cognito-sync/2014-06-30/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cognito-sync/2014-06-30/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2014-06-30', 'endpointPrefix' => 'cognito-sync', 'jsonVersion' => '1.1', 'serviceFullName' => 'Amazon Cognito Sync', 'signatureVersion' => 'v4', 'protocol' => 'rest-json', 'uid' => 'cognito-sync-2014-06-30', ], '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, ], [ 'shape' => 'ConcurrentModificationException', 'error' => [ 'code' => 'ConcurrentModification', 'httpStatusCode' => 400, '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', ], ], ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'code' => 'ConcurrentModification', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], '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' => 55, 'pattern' => '[\\w-]+:[0-9a-f-]+', ], 'IdentityPoolId' => [ 'type' => 'string', 'min' => 1, 'max' => 55, '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/Aws/data/comprehend/2017-11-27/api-2.json.php b/lib/aws/Aws/data/comprehend/2017-11-27/api-2.json.php new file mode 100644 index 0000000..88823a9 --- /dev/null +++ b/lib/aws/Aws/data/comprehend/2017-11-27/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/comprehend/2017-11-27/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-11-27', 'endpointPrefix' => 'comprehend', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Amazon Comprehend', 'serviceId' => 'Comprehend', 'signatureVersion' => 'v4', 'signingName' => 'comprehend', 'targetPrefix' => 'Comprehend_20171127', 'uid' => 'comprehend-2017-11-27', ], 'operations' => [ 'BatchDetectDominantLanguage' => [ 'name' => 'BatchDetectDominantLanguage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchDetectDominantLanguageRequest', ], 'output' => [ 'shape' => 'BatchDetectDominantLanguageResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TextSizeLimitExceededException', ], [ 'shape' => 'BatchSizeLimitExceededException', ], [ 'shape' => 'InternalServerException', ], ], ], 'BatchDetectEntities' => [ 'name' => 'BatchDetectEntities', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchDetectEntitiesRequest', ], 'output' => [ 'shape' => 'BatchDetectEntitiesResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TextSizeLimitExceededException', ], [ 'shape' => 'UnsupportedLanguageException', ], [ 'shape' => 'BatchSizeLimitExceededException', ], [ 'shape' => 'InternalServerException', ], ], ], 'BatchDetectKeyPhrases' => [ 'name' => 'BatchDetectKeyPhrases', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchDetectKeyPhrasesRequest', ], 'output' => [ 'shape' => 'BatchDetectKeyPhrasesResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TextSizeLimitExceededException', ], [ 'shape' => 'UnsupportedLanguageException', ], [ 'shape' => 'BatchSizeLimitExceededException', ], [ 'shape' => 'InternalServerException', ], ], ], 'BatchDetectSentiment' => [ 'name' => 'BatchDetectSentiment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchDetectSentimentRequest', ], 'output' => [ 'shape' => 'BatchDetectSentimentResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TextSizeLimitExceededException', ], [ 'shape' => 'UnsupportedLanguageException', ], [ 'shape' => 'BatchSizeLimitExceededException', ], [ 'shape' => 'InternalServerException', ], ], ], 'BatchDetectSyntax' => [ 'name' => 'BatchDetectSyntax', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchDetectSyntaxRequest', ], 'output' => [ 'shape' => 'BatchDetectSyntaxResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TextSizeLimitExceededException', ], [ 'shape' => 'UnsupportedLanguageException', ], [ 'shape' => 'BatchSizeLimitExceededException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateDocumentClassifier' => [ 'name' => 'CreateDocumentClassifier', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDocumentClassifierRequest', ], 'output' => [ 'shape' => 'CreateDocumentClassifierResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'TooManyTagsException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'UnsupportedLanguageException', ], [ 'shape' => 'KmsKeyValidationException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateEntityRecognizer' => [ 'name' => 'CreateEntityRecognizer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateEntityRecognizerRequest', ], 'output' => [ 'shape' => 'CreateEntityRecognizerResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'TooManyTagsException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'UnsupportedLanguageException', ], [ 'shape' => 'KmsKeyValidationException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DeleteDocumentClassifier' => [ 'name' => 'DeleteDocumentClassifier', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDocumentClassifierRequest', ], 'output' => [ 'shape' => 'DeleteDocumentClassifierResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceUnavailableException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DeleteEntityRecognizer' => [ 'name' => 'DeleteEntityRecognizer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteEntityRecognizerRequest', ], 'output' => [ 'shape' => 'DeleteEntityRecognizerResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceUnavailableException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DescribeDocumentClassificationJob' => [ 'name' => 'DescribeDocumentClassificationJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDocumentClassificationJobRequest', ], 'output' => [ 'shape' => 'DescribeDocumentClassificationJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'JobNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DescribeDocumentClassifier' => [ 'name' => 'DescribeDocumentClassifier', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDocumentClassifierRequest', ], 'output' => [ 'shape' => 'DescribeDocumentClassifierResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DescribeDominantLanguageDetectionJob' => [ 'name' => 'DescribeDominantLanguageDetectionJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDominantLanguageDetectionJobRequest', ], 'output' => [ 'shape' => 'DescribeDominantLanguageDetectionJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'JobNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DescribeEntitiesDetectionJob' => [ 'name' => 'DescribeEntitiesDetectionJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEntitiesDetectionJobRequest', ], 'output' => [ 'shape' => 'DescribeEntitiesDetectionJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'JobNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DescribeEntityRecognizer' => [ 'name' => 'DescribeEntityRecognizer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEntityRecognizerRequest', ], 'output' => [ 'shape' => 'DescribeEntityRecognizerResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DescribeKeyPhrasesDetectionJob' => [ 'name' => 'DescribeKeyPhrasesDetectionJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeKeyPhrasesDetectionJobRequest', ], 'output' => [ 'shape' => 'DescribeKeyPhrasesDetectionJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'JobNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DescribeSentimentDetectionJob' => [ 'name' => 'DescribeSentimentDetectionJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSentimentDetectionJobRequest', ], 'output' => [ 'shape' => 'DescribeSentimentDetectionJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'JobNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DescribeTopicsDetectionJob' => [ 'name' => 'DescribeTopicsDetectionJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTopicsDetectionJobRequest', ], 'output' => [ 'shape' => 'DescribeTopicsDetectionJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'JobNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DetectDominantLanguage' => [ 'name' => 'DetectDominantLanguage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetectDominantLanguageRequest', ], 'output' => [ 'shape' => 'DetectDominantLanguageResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TextSizeLimitExceededException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DetectEntities' => [ 'name' => 'DetectEntities', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetectEntitiesRequest', ], 'output' => [ 'shape' => 'DetectEntitiesResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TextSizeLimitExceededException', ], [ 'shape' => 'UnsupportedLanguageException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DetectKeyPhrases' => [ 'name' => 'DetectKeyPhrases', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetectKeyPhrasesRequest', ], 'output' => [ 'shape' => 'DetectKeyPhrasesResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TextSizeLimitExceededException', ], [ 'shape' => 'UnsupportedLanguageException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DetectSentiment' => [ 'name' => 'DetectSentiment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetectSentimentRequest', ], 'output' => [ 'shape' => 'DetectSentimentResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TextSizeLimitExceededException', ], [ 'shape' => 'UnsupportedLanguageException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DetectSyntax' => [ 'name' => 'DetectSyntax', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetectSyntaxRequest', ], 'output' => [ 'shape' => 'DetectSyntaxResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TextSizeLimitExceededException', ], [ 'shape' => 'UnsupportedLanguageException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ListDocumentClassificationJobs' => [ 'name' => 'ListDocumentClassificationJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDocumentClassificationJobsRequest', ], 'output' => [ 'shape' => 'ListDocumentClassificationJobsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidFilterException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ListDocumentClassifiers' => [ 'name' => 'ListDocumentClassifiers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDocumentClassifiersRequest', ], 'output' => [ 'shape' => 'ListDocumentClassifiersResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidFilterException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ListDominantLanguageDetectionJobs' => [ 'name' => 'ListDominantLanguageDetectionJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDominantLanguageDetectionJobsRequest', ], 'output' => [ 'shape' => 'ListDominantLanguageDetectionJobsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidFilterException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ListEntitiesDetectionJobs' => [ 'name' => 'ListEntitiesDetectionJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListEntitiesDetectionJobsRequest', ], 'output' => [ 'shape' => 'ListEntitiesDetectionJobsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidFilterException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ListEntityRecognizers' => [ 'name' => 'ListEntityRecognizers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListEntityRecognizersRequest', ], 'output' => [ 'shape' => 'ListEntityRecognizersResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidFilterException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ListKeyPhrasesDetectionJobs' => [ 'name' => 'ListKeyPhrasesDetectionJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListKeyPhrasesDetectionJobsRequest', ], 'output' => [ 'shape' => 'ListKeyPhrasesDetectionJobsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidFilterException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ListSentimentDetectionJobs' => [ 'name' => 'ListSentimentDetectionJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSentimentDetectionJobsRequest', ], 'output' => [ 'shape' => 'ListSentimentDetectionJobsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidFilterException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ListTopicsDetectionJobs' => [ 'name' => 'ListTopicsDetectionJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTopicsDetectionJobsRequest', ], 'output' => [ 'shape' => 'ListTopicsDetectionJobsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidFilterException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StartDocumentClassificationJob' => [ 'name' => 'StartDocumentClassificationJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartDocumentClassificationJobRequest', ], 'output' => [ 'shape' => 'StartDocumentClassificationJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceUnavailableException', ], [ 'shape' => 'KmsKeyValidationException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StartDominantLanguageDetectionJob' => [ 'name' => 'StartDominantLanguageDetectionJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartDominantLanguageDetectionJobRequest', ], 'output' => [ 'shape' => 'StartDominantLanguageDetectionJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'KmsKeyValidationException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StartEntitiesDetectionJob' => [ 'name' => 'StartEntitiesDetectionJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartEntitiesDetectionJobRequest', ], 'output' => [ 'shape' => 'StartEntitiesDetectionJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceUnavailableException', ], [ 'shape' => 'KmsKeyValidationException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StartKeyPhrasesDetectionJob' => [ 'name' => 'StartKeyPhrasesDetectionJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartKeyPhrasesDetectionJobRequest', ], 'output' => [ 'shape' => 'StartKeyPhrasesDetectionJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'KmsKeyValidationException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StartSentimentDetectionJob' => [ 'name' => 'StartSentimentDetectionJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartSentimentDetectionJobRequest', ], 'output' => [ 'shape' => 'StartSentimentDetectionJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'KmsKeyValidationException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StartTopicsDetectionJob' => [ 'name' => 'StartTopicsDetectionJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartTopicsDetectionJobRequest', ], 'output' => [ 'shape' => 'StartTopicsDetectionJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'KmsKeyValidationException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StopDominantLanguageDetectionJob' => [ 'name' => 'StopDominantLanguageDetectionJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopDominantLanguageDetectionJobRequest', ], 'output' => [ 'shape' => 'StopDominantLanguageDetectionJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'JobNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StopEntitiesDetectionJob' => [ 'name' => 'StopEntitiesDetectionJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopEntitiesDetectionJobRequest', ], 'output' => [ 'shape' => 'StopEntitiesDetectionJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'JobNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StopKeyPhrasesDetectionJob' => [ 'name' => 'StopKeyPhrasesDetectionJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopKeyPhrasesDetectionJobRequest', ], 'output' => [ 'shape' => 'StopKeyPhrasesDetectionJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'JobNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StopSentimentDetectionJob' => [ 'name' => 'StopSentimentDetectionJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopSentimentDetectionJobRequest', ], 'output' => [ 'shape' => 'StopSentimentDetectionJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'JobNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StopTrainingDocumentClassifier' => [ 'name' => 'StopTrainingDocumentClassifier', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopTrainingDocumentClassifierRequest', ], 'output' => [ 'shape' => 'StopTrainingDocumentClassifierResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StopTrainingEntityRecognizer' => [ 'name' => 'StopTrainingEntityRecognizer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopTrainingEntityRecognizerRequest', ], 'output' => [ 'shape' => 'StopTrainingEntityRecognizerResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyTagsException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'TooManyTagKeysException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], ], 'shapes' => [ 'AnyLengthString' => [ 'type' => 'string', ], 'BatchDetectDominantLanguageItemResult' => [ 'type' => 'structure', 'members' => [ 'Index' => [ 'shape' => 'Integer', ], 'Languages' => [ 'shape' => 'ListOfDominantLanguages', ], ], ], 'BatchDetectDominantLanguageRequest' => [ 'type' => 'structure', 'required' => [ 'TextList', ], 'members' => [ 'TextList' => [ 'shape' => 'StringList', ], ], ], 'BatchDetectDominantLanguageResponse' => [ 'type' => 'structure', 'required' => [ 'ResultList', 'ErrorList', ], 'members' => [ 'ResultList' => [ 'shape' => 'ListOfDetectDominantLanguageResult', ], 'ErrorList' => [ 'shape' => 'BatchItemErrorList', ], ], ], 'BatchDetectEntitiesItemResult' => [ 'type' => 'structure', 'members' => [ 'Index' => [ 'shape' => 'Integer', ], 'Entities' => [ 'shape' => 'ListOfEntities', ], ], ], 'BatchDetectEntitiesRequest' => [ 'type' => 'structure', 'required' => [ 'TextList', 'LanguageCode', ], 'members' => [ 'TextList' => [ 'shape' => 'StringList', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], ], ], 'BatchDetectEntitiesResponse' => [ 'type' => 'structure', 'required' => [ 'ResultList', 'ErrorList', ], 'members' => [ 'ResultList' => [ 'shape' => 'ListOfDetectEntitiesResult', ], 'ErrorList' => [ 'shape' => 'BatchItemErrorList', ], ], ], 'BatchDetectKeyPhrasesItemResult' => [ 'type' => 'structure', 'members' => [ 'Index' => [ 'shape' => 'Integer', ], 'KeyPhrases' => [ 'shape' => 'ListOfKeyPhrases', ], ], ], 'BatchDetectKeyPhrasesRequest' => [ 'type' => 'structure', 'required' => [ 'TextList', 'LanguageCode', ], 'members' => [ 'TextList' => [ 'shape' => 'StringList', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], ], ], 'BatchDetectKeyPhrasesResponse' => [ 'type' => 'structure', 'required' => [ 'ResultList', 'ErrorList', ], 'members' => [ 'ResultList' => [ 'shape' => 'ListOfDetectKeyPhrasesResult', ], 'ErrorList' => [ 'shape' => 'BatchItemErrorList', ], ], ], 'BatchDetectSentimentItemResult' => [ 'type' => 'structure', 'members' => [ 'Index' => [ 'shape' => 'Integer', ], 'Sentiment' => [ 'shape' => 'SentimentType', ], 'SentimentScore' => [ 'shape' => 'SentimentScore', ], ], ], 'BatchDetectSentimentRequest' => [ 'type' => 'structure', 'required' => [ 'TextList', 'LanguageCode', ], 'members' => [ 'TextList' => [ 'shape' => 'StringList', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], ], ], 'BatchDetectSentimentResponse' => [ 'type' => 'structure', 'required' => [ 'ResultList', 'ErrorList', ], 'members' => [ 'ResultList' => [ 'shape' => 'ListOfDetectSentimentResult', ], 'ErrorList' => [ 'shape' => 'BatchItemErrorList', ], ], ], 'BatchDetectSyntaxItemResult' => [ 'type' => 'structure', 'members' => [ 'Index' => [ 'shape' => 'Integer', ], 'SyntaxTokens' => [ 'shape' => 'ListOfSyntaxTokens', ], ], ], 'BatchDetectSyntaxRequest' => [ 'type' => 'structure', 'required' => [ 'TextList', 'LanguageCode', ], 'members' => [ 'TextList' => [ 'shape' => 'StringList', ], 'LanguageCode' => [ 'shape' => 'SyntaxLanguageCode', ], ], ], 'BatchDetectSyntaxResponse' => [ 'type' => 'structure', 'required' => [ 'ResultList', 'ErrorList', ], 'members' => [ 'ResultList' => [ 'shape' => 'ListOfDetectSyntaxResult', ], 'ErrorList' => [ 'shape' => 'BatchItemErrorList', ], ], ], 'BatchItemError' => [ 'type' => 'structure', 'members' => [ 'Index' => [ 'shape' => 'Integer', ], 'ErrorCode' => [ 'shape' => 'String', ], 'ErrorMessage' => [ 'shape' => 'String', ], ], ], 'BatchItemErrorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BatchItemError', ], ], 'BatchSizeLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ClassifierEvaluationMetrics' => [ 'type' => 'structure', 'members' => [ 'Accuracy' => [ 'shape' => 'Double', ], 'Precision' => [ 'shape' => 'Double', ], 'Recall' => [ 'shape' => 'Double', ], 'F1Score' => [ 'shape' => 'Double', ], ], ], 'ClassifierMetadata' => [ 'type' => 'structure', 'members' => [ 'NumberOfLabels' => [ 'shape' => 'Integer', ], 'NumberOfTrainedDocuments' => [ 'shape' => 'Integer', ], 'NumberOfTestDocuments' => [ 'shape' => 'Integer', ], 'EvaluationMetrics' => [ 'shape' => 'ClassifierEvaluationMetrics', ], ], ], 'ClientRequestTokenString' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '^[a-zA-Z0-9-]+$', ], 'ComprehendArn' => [ 'type' => 'string', 'max' => 256, 'pattern' => 'arn:aws(-[^:]+)?:comprehend:[a-zA-Z0-9-]*:[0-9]{12}:[a-zA-Z0-9-]{1,64}/[a-zA-Z0-9](-*[a-zA-Z0-9])*', ], 'ComprehendArnName' => [ 'type' => 'string', 'max' => 63, 'pattern' => '^[a-zA-Z0-9](-*[a-zA-Z0-9])*', ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'CreateDocumentClassifierRequest' => [ 'type' => 'structure', 'required' => [ 'DocumentClassifierName', 'DataAccessRoleArn', 'InputDataConfig', 'LanguageCode', ], 'members' => [ 'DocumentClassifierName' => [ 'shape' => 'ComprehendArnName', ], 'DataAccessRoleArn' => [ 'shape' => 'IamRoleArn', ], 'Tags' => [ 'shape' => 'TagList', ], 'InputDataConfig' => [ 'shape' => 'DocumentClassifierInputDataConfig', ], 'OutputDataConfig' => [ 'shape' => 'DocumentClassifierOutputDataConfig', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestTokenString', 'idempotencyToken' => true, ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'VolumeKmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'CreateDocumentClassifierResponse' => [ 'type' => 'structure', 'members' => [ 'DocumentClassifierArn' => [ 'shape' => 'DocumentClassifierArn', ], ], ], 'CreateEntityRecognizerRequest' => [ 'type' => 'structure', 'required' => [ 'RecognizerName', 'DataAccessRoleArn', 'InputDataConfig', 'LanguageCode', ], 'members' => [ 'RecognizerName' => [ 'shape' => 'ComprehendArnName', ], 'DataAccessRoleArn' => [ 'shape' => 'IamRoleArn', ], 'Tags' => [ 'shape' => 'TagList', ], 'InputDataConfig' => [ 'shape' => 'EntityRecognizerInputDataConfig', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestTokenString', 'idempotencyToken' => true, ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'VolumeKmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'CreateEntityRecognizerResponse' => [ 'type' => 'structure', 'members' => [ 'EntityRecognizerArn' => [ 'shape' => 'EntityRecognizerArn', ], ], ], 'DeleteDocumentClassifierRequest' => [ 'type' => 'structure', 'required' => [ 'DocumentClassifierArn', ], 'members' => [ 'DocumentClassifierArn' => [ 'shape' => 'DocumentClassifierArn', ], ], ], 'DeleteDocumentClassifierResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteEntityRecognizerRequest' => [ 'type' => 'structure', 'required' => [ 'EntityRecognizerArn', ], 'members' => [ 'EntityRecognizerArn' => [ 'shape' => 'EntityRecognizerArn', ], ], ], 'DeleteEntityRecognizerResponse' => [ 'type' => 'structure', 'members' => [], ], 'DescribeDocumentClassificationJobRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'DescribeDocumentClassificationJobResponse' => [ 'type' => 'structure', 'members' => [ 'DocumentClassificationJobProperties' => [ 'shape' => 'DocumentClassificationJobProperties', ], ], ], 'DescribeDocumentClassifierRequest' => [ 'type' => 'structure', 'required' => [ 'DocumentClassifierArn', ], 'members' => [ 'DocumentClassifierArn' => [ 'shape' => 'DocumentClassifierArn', ], ], ], 'DescribeDocumentClassifierResponse' => [ 'type' => 'structure', 'members' => [ 'DocumentClassifierProperties' => [ 'shape' => 'DocumentClassifierProperties', ], ], ], 'DescribeDominantLanguageDetectionJobRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'DescribeDominantLanguageDetectionJobResponse' => [ 'type' => 'structure', 'members' => [ 'DominantLanguageDetectionJobProperties' => [ 'shape' => 'DominantLanguageDetectionJobProperties', ], ], ], 'DescribeEntitiesDetectionJobRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'DescribeEntitiesDetectionJobResponse' => [ 'type' => 'structure', 'members' => [ 'EntitiesDetectionJobProperties' => [ 'shape' => 'EntitiesDetectionJobProperties', ], ], ], 'DescribeEntityRecognizerRequest' => [ 'type' => 'structure', 'required' => [ 'EntityRecognizerArn', ], 'members' => [ 'EntityRecognizerArn' => [ 'shape' => 'EntityRecognizerArn', ], ], ], 'DescribeEntityRecognizerResponse' => [ 'type' => 'structure', 'members' => [ 'EntityRecognizerProperties' => [ 'shape' => 'EntityRecognizerProperties', ], ], ], 'DescribeKeyPhrasesDetectionJobRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'DescribeKeyPhrasesDetectionJobResponse' => [ 'type' => 'structure', 'members' => [ 'KeyPhrasesDetectionJobProperties' => [ 'shape' => 'KeyPhrasesDetectionJobProperties', ], ], ], 'DescribeSentimentDetectionJobRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'DescribeSentimentDetectionJobResponse' => [ 'type' => 'structure', 'members' => [ 'SentimentDetectionJobProperties' => [ 'shape' => 'SentimentDetectionJobProperties', ], ], ], 'DescribeTopicsDetectionJobRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'DescribeTopicsDetectionJobResponse' => [ 'type' => 'structure', 'members' => [ 'TopicsDetectionJobProperties' => [ 'shape' => 'TopicsDetectionJobProperties', ], ], ], 'DetectDominantLanguageRequest' => [ 'type' => 'structure', 'required' => [ 'Text', ], 'members' => [ 'Text' => [ 'shape' => 'String', ], ], ], 'DetectDominantLanguageResponse' => [ 'type' => 'structure', 'members' => [ 'Languages' => [ 'shape' => 'ListOfDominantLanguages', ], ], ], 'DetectEntitiesRequest' => [ 'type' => 'structure', 'required' => [ 'Text', 'LanguageCode', ], 'members' => [ 'Text' => [ 'shape' => 'String', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], ], ], 'DetectEntitiesResponse' => [ 'type' => 'structure', 'members' => [ 'Entities' => [ 'shape' => 'ListOfEntities', ], ], ], 'DetectKeyPhrasesRequest' => [ 'type' => 'structure', 'required' => [ 'Text', 'LanguageCode', ], 'members' => [ 'Text' => [ 'shape' => 'String', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], ], ], 'DetectKeyPhrasesResponse' => [ 'type' => 'structure', 'members' => [ 'KeyPhrases' => [ 'shape' => 'ListOfKeyPhrases', ], ], ], 'DetectSentimentRequest' => [ 'type' => 'structure', 'required' => [ 'Text', 'LanguageCode', ], 'members' => [ 'Text' => [ 'shape' => 'String', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], ], ], 'DetectSentimentResponse' => [ 'type' => 'structure', 'members' => [ 'Sentiment' => [ 'shape' => 'SentimentType', ], 'SentimentScore' => [ 'shape' => 'SentimentScore', ], ], ], 'DetectSyntaxRequest' => [ 'type' => 'structure', 'required' => [ 'Text', 'LanguageCode', ], 'members' => [ 'Text' => [ 'shape' => 'String', ], 'LanguageCode' => [ 'shape' => 'SyntaxLanguageCode', ], ], ], 'DetectSyntaxResponse' => [ 'type' => 'structure', 'members' => [ 'SyntaxTokens' => [ 'shape' => 'ListOfSyntaxTokens', ], ], ], 'DocumentClassificationJobFilter' => [ 'type' => 'structure', 'members' => [ 'JobName' => [ 'shape' => 'JobName', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], 'SubmitTimeBefore' => [ 'shape' => 'Timestamp', ], 'SubmitTimeAfter' => [ 'shape' => 'Timestamp', ], ], ], 'DocumentClassificationJobProperties' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'JobName' => [ 'shape' => 'JobName', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], 'Message' => [ 'shape' => 'AnyLengthString', ], 'SubmitTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], 'DocumentClassifierArn' => [ 'shape' => 'DocumentClassifierArn', ], 'InputDataConfig' => [ 'shape' => 'InputDataConfig', ], 'OutputDataConfig' => [ 'shape' => 'OutputDataConfig', ], 'DataAccessRoleArn' => [ 'shape' => 'IamRoleArn', ], 'VolumeKmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'DocumentClassificationJobPropertiesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DocumentClassificationJobProperties', ], ], 'DocumentClassifierArn' => [ 'type' => 'string', 'max' => 256, 'pattern' => 'arn:aws(-[^:]+)?:comprehend:[a-zA-Z0-9-]*:[0-9]{12}:document-classifier/[a-zA-Z0-9](-*[a-zA-Z0-9])*', ], 'DocumentClassifierFilter' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ModelStatus', ], 'SubmitTimeBefore' => [ 'shape' => 'Timestamp', ], 'SubmitTimeAfter' => [ 'shape' => 'Timestamp', ], ], ], 'DocumentClassifierInputDataConfig' => [ 'type' => 'structure', 'required' => [ 'S3Uri', ], 'members' => [ 'S3Uri' => [ 'shape' => 'S3Uri', ], ], ], 'DocumentClassifierOutputDataConfig' => [ 'type' => 'structure', 'members' => [ 'S3Uri' => [ 'shape' => 'S3Uri', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'DocumentClassifierProperties' => [ 'type' => 'structure', 'members' => [ 'DocumentClassifierArn' => [ 'shape' => 'DocumentClassifierArn', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'Status' => [ 'shape' => 'ModelStatus', ], 'Message' => [ 'shape' => 'AnyLengthString', ], 'SubmitTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], 'TrainingStartTime' => [ 'shape' => 'Timestamp', ], 'TrainingEndTime' => [ 'shape' => 'Timestamp', ], 'InputDataConfig' => [ 'shape' => 'DocumentClassifierInputDataConfig', ], 'OutputDataConfig' => [ 'shape' => 'DocumentClassifierOutputDataConfig', ], 'ClassifierMetadata' => [ 'shape' => 'ClassifierMetadata', ], 'DataAccessRoleArn' => [ 'shape' => 'IamRoleArn', ], 'VolumeKmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'DocumentClassifierPropertiesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DocumentClassifierProperties', ], ], 'DominantLanguage' => [ 'type' => 'structure', 'members' => [ 'LanguageCode' => [ 'shape' => 'String', ], 'Score' => [ 'shape' => 'Float', ], ], ], 'DominantLanguageDetectionJobFilter' => [ 'type' => 'structure', 'members' => [ 'JobName' => [ 'shape' => 'JobName', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], 'SubmitTimeBefore' => [ 'shape' => 'Timestamp', ], 'SubmitTimeAfter' => [ 'shape' => 'Timestamp', ], ], ], 'DominantLanguageDetectionJobProperties' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'JobName' => [ 'shape' => 'JobName', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], 'Message' => [ 'shape' => 'AnyLengthString', ], 'SubmitTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], 'InputDataConfig' => [ 'shape' => 'InputDataConfig', ], 'OutputDataConfig' => [ 'shape' => 'OutputDataConfig', ], 'DataAccessRoleArn' => [ 'shape' => 'IamRoleArn', ], 'VolumeKmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'DominantLanguageDetectionJobPropertiesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DominantLanguageDetectionJobProperties', ], ], 'Double' => [ 'type' => 'double', ], 'EntitiesDetectionJobFilter' => [ 'type' => 'structure', 'members' => [ 'JobName' => [ 'shape' => 'JobName', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], 'SubmitTimeBefore' => [ 'shape' => 'Timestamp', ], 'SubmitTimeAfter' => [ 'shape' => 'Timestamp', ], ], ], 'EntitiesDetectionJobProperties' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'JobName' => [ 'shape' => 'JobName', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], 'Message' => [ 'shape' => 'AnyLengthString', ], 'SubmitTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], 'EntityRecognizerArn' => [ 'shape' => 'EntityRecognizerArn', ], 'InputDataConfig' => [ 'shape' => 'InputDataConfig', ], 'OutputDataConfig' => [ 'shape' => 'OutputDataConfig', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'DataAccessRoleArn' => [ 'shape' => 'IamRoleArn', ], 'VolumeKmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'EntitiesDetectionJobPropertiesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EntitiesDetectionJobProperties', ], ], 'Entity' => [ 'type' => 'structure', 'members' => [ 'Score' => [ 'shape' => 'Float', ], 'Type' => [ 'shape' => 'EntityType', ], 'Text' => [ 'shape' => 'String', ], 'BeginOffset' => [ 'shape' => 'Integer', ], 'EndOffset' => [ 'shape' => 'Integer', ], ], ], 'EntityRecognizerAnnotations' => [ 'type' => 'structure', 'required' => [ 'S3Uri', ], 'members' => [ 'S3Uri' => [ 'shape' => 'S3Uri', ], ], ], 'EntityRecognizerArn' => [ 'type' => 'string', 'max' => 256, 'pattern' => 'arn:aws(-[^:]+)?:comprehend:[a-zA-Z0-9-]*:[0-9]{12}:entity-recognizer/[a-zA-Z0-9](-*[a-zA-Z0-9])*', ], 'EntityRecognizerDocuments' => [ 'type' => 'structure', 'required' => [ 'S3Uri', ], 'members' => [ 'S3Uri' => [ 'shape' => 'S3Uri', ], ], ], 'EntityRecognizerEntityList' => [ 'type' => 'structure', 'required' => [ 'S3Uri', ], 'members' => [ 'S3Uri' => [ 'shape' => 'S3Uri', ], ], ], 'EntityRecognizerEvaluationMetrics' => [ 'type' => 'structure', 'members' => [ 'Precision' => [ 'shape' => 'Double', ], 'Recall' => [ 'shape' => 'Double', ], 'F1Score' => [ 'shape' => 'Double', ], ], ], 'EntityRecognizerFilter' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ModelStatus', ], 'SubmitTimeBefore' => [ 'shape' => 'Timestamp', ], 'SubmitTimeAfter' => [ 'shape' => 'Timestamp', ], ], ], 'EntityRecognizerInputDataConfig' => [ 'type' => 'structure', 'required' => [ 'EntityTypes', 'Documents', ], 'members' => [ 'EntityTypes' => [ 'shape' => 'EntityTypesList', ], 'Documents' => [ 'shape' => 'EntityRecognizerDocuments', ], 'Annotations' => [ 'shape' => 'EntityRecognizerAnnotations', ], 'EntityList' => [ 'shape' => 'EntityRecognizerEntityList', ], ], ], 'EntityRecognizerMetadata' => [ 'type' => 'structure', 'members' => [ 'NumberOfTrainedDocuments' => [ 'shape' => 'Integer', ], 'NumberOfTestDocuments' => [ 'shape' => 'Integer', ], 'EvaluationMetrics' => [ 'shape' => 'EntityRecognizerEvaluationMetrics', ], 'EntityTypes' => [ 'shape' => 'EntityRecognizerMetadataEntityTypesList', ], ], ], 'EntityRecognizerMetadataEntityTypesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EntityRecognizerMetadataEntityTypesListItem', ], ], 'EntityRecognizerMetadataEntityTypesListItem' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'AnyLengthString', ], ], ], 'EntityRecognizerProperties' => [ 'type' => 'structure', 'members' => [ 'EntityRecognizerArn' => [ 'shape' => 'EntityRecognizerArn', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'Status' => [ 'shape' => 'ModelStatus', ], 'Message' => [ 'shape' => 'AnyLengthString', ], 'SubmitTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], 'TrainingStartTime' => [ 'shape' => 'Timestamp', ], 'TrainingEndTime' => [ 'shape' => 'Timestamp', ], 'InputDataConfig' => [ 'shape' => 'EntityRecognizerInputDataConfig', ], 'RecognizerMetadata' => [ 'shape' => 'EntityRecognizerMetadata', ], 'DataAccessRoleArn' => [ 'shape' => 'IamRoleArn', ], 'VolumeKmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'EntityRecognizerPropertiesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EntityRecognizerProperties', ], ], 'EntityType' => [ 'type' => 'string', 'enum' => [ 'PERSON', 'LOCATION', 'ORGANIZATION', 'COMMERCIAL_ITEM', 'EVENT', 'DATE', 'QUANTITY', 'TITLE', 'OTHER', ], ], 'EntityTypeName' => [ 'type' => 'string', 'max' => 64, 'pattern' => '[_A-Z0-9]+', ], 'EntityTypesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EntityTypesListItem', ], ], 'EntityTypesListItem' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'EntityTypeName', ], ], ], 'Float' => [ 'type' => 'float', ], 'IamRoleArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => 'arn:aws(-[^:]+)?:iam::[0-9]{12}:role/.+', ], 'InputDataConfig' => [ 'type' => 'structure', 'required' => [ 'S3Uri', ], 'members' => [ 'S3Uri' => [ 'shape' => 'S3Uri', ], 'InputFormat' => [ 'shape' => 'InputFormat', ], ], ], 'InputFormat' => [ 'type' => 'string', 'enum' => [ 'ONE_DOC_PER_FILE', 'ONE_DOC_PER_LINE', ], ], 'Integer' => [ 'type' => 'integer', ], 'InternalServerException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, 'fault' => true, ], 'InvalidFilterException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'JobId' => [ 'type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$', ], 'JobName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$', ], 'JobNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'JobStatus' => [ 'type' => 'string', 'enum' => [ 'SUBMITTED', 'IN_PROGRESS', 'COMPLETED', 'FAILED', 'STOP_REQUESTED', 'STOPPED', ], ], 'KeyPhrase' => [ 'type' => 'structure', 'members' => [ 'Score' => [ 'shape' => 'Float', ], 'Text' => [ 'shape' => 'String', ], 'BeginOffset' => [ 'shape' => 'Integer', ], 'EndOffset' => [ 'shape' => 'Integer', ], ], ], 'KeyPhrasesDetectionJobFilter' => [ 'type' => 'structure', 'members' => [ 'JobName' => [ 'shape' => 'JobName', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], 'SubmitTimeBefore' => [ 'shape' => 'Timestamp', ], 'SubmitTimeAfter' => [ 'shape' => 'Timestamp', ], ], ], 'KeyPhrasesDetectionJobProperties' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'JobName' => [ 'shape' => 'JobName', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], 'Message' => [ 'shape' => 'AnyLengthString', ], 'SubmitTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], 'InputDataConfig' => [ 'shape' => 'InputDataConfig', ], 'OutputDataConfig' => [ 'shape' => 'OutputDataConfig', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'DataAccessRoleArn' => [ 'shape' => 'IamRoleArn', ], 'VolumeKmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'KeyPhrasesDetectionJobPropertiesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyPhrasesDetectionJobProperties', ], ], 'KmsKeyId' => [ 'type' => 'string', 'max' => 2048, ], 'KmsKeyValidationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'LanguageCode' => [ 'type' => 'string', 'enum' => [ 'en', 'es', 'fr', 'de', 'it', 'pt', ], ], 'ListDocumentClassificationJobsRequest' => [ 'type' => 'structure', 'members' => [ 'Filter' => [ 'shape' => 'DocumentClassificationJobFilter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'MaxResultsInteger', ], ], ], 'ListDocumentClassificationJobsResponse' => [ 'type' => 'structure', 'members' => [ 'DocumentClassificationJobPropertiesList' => [ 'shape' => 'DocumentClassificationJobPropertiesList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListDocumentClassifiersRequest' => [ 'type' => 'structure', 'members' => [ 'Filter' => [ 'shape' => 'DocumentClassifierFilter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'MaxResultsInteger', ], ], ], 'ListDocumentClassifiersResponse' => [ 'type' => 'structure', 'members' => [ 'DocumentClassifierPropertiesList' => [ 'shape' => 'DocumentClassifierPropertiesList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListDominantLanguageDetectionJobsRequest' => [ 'type' => 'structure', 'members' => [ 'Filter' => [ 'shape' => 'DominantLanguageDetectionJobFilter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'MaxResultsInteger', ], ], ], 'ListDominantLanguageDetectionJobsResponse' => [ 'type' => 'structure', 'members' => [ 'DominantLanguageDetectionJobPropertiesList' => [ 'shape' => 'DominantLanguageDetectionJobPropertiesList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListEntitiesDetectionJobsRequest' => [ 'type' => 'structure', 'members' => [ 'Filter' => [ 'shape' => 'EntitiesDetectionJobFilter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'MaxResultsInteger', ], ], ], 'ListEntitiesDetectionJobsResponse' => [ 'type' => 'structure', 'members' => [ 'EntitiesDetectionJobPropertiesList' => [ 'shape' => 'EntitiesDetectionJobPropertiesList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListEntityRecognizersRequest' => [ 'type' => 'structure', 'members' => [ 'Filter' => [ 'shape' => 'EntityRecognizerFilter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'MaxResultsInteger', ], ], ], 'ListEntityRecognizersResponse' => [ 'type' => 'structure', 'members' => [ 'EntityRecognizerPropertiesList' => [ 'shape' => 'EntityRecognizerPropertiesList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListKeyPhrasesDetectionJobsRequest' => [ 'type' => 'structure', 'members' => [ 'Filter' => [ 'shape' => 'KeyPhrasesDetectionJobFilter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'MaxResultsInteger', ], ], ], 'ListKeyPhrasesDetectionJobsResponse' => [ 'type' => 'structure', 'members' => [ 'KeyPhrasesDetectionJobPropertiesList' => [ 'shape' => 'KeyPhrasesDetectionJobPropertiesList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListOfDetectDominantLanguageResult' => [ 'type' => 'list', 'member' => [ 'shape' => 'BatchDetectDominantLanguageItemResult', ], ], 'ListOfDetectEntitiesResult' => [ 'type' => 'list', 'member' => [ 'shape' => 'BatchDetectEntitiesItemResult', ], ], 'ListOfDetectKeyPhrasesResult' => [ 'type' => 'list', 'member' => [ 'shape' => 'BatchDetectKeyPhrasesItemResult', ], ], 'ListOfDetectSentimentResult' => [ 'type' => 'list', 'member' => [ 'shape' => 'BatchDetectSentimentItemResult', ], ], 'ListOfDetectSyntaxResult' => [ 'type' => 'list', 'member' => [ 'shape' => 'BatchDetectSyntaxItemResult', ], ], 'ListOfDominantLanguages' => [ 'type' => 'list', 'member' => [ 'shape' => 'DominantLanguage', ], ], 'ListOfEntities' => [ 'type' => 'list', 'member' => [ 'shape' => 'Entity', ], ], 'ListOfKeyPhrases' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyPhrase', ], ], 'ListOfSyntaxTokens' => [ 'type' => 'list', 'member' => [ 'shape' => 'SyntaxToken', ], ], 'ListSentimentDetectionJobsRequest' => [ 'type' => 'structure', 'members' => [ 'Filter' => [ 'shape' => 'SentimentDetectionJobFilter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'MaxResultsInteger', ], ], ], 'ListSentimentDetectionJobsResponse' => [ 'type' => 'structure', 'members' => [ 'SentimentDetectionJobPropertiesList' => [ 'shape' => 'SentimentDetectionJobPropertiesList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ComprehendArn', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => 'ComprehendArn', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'ListTopicsDetectionJobsRequest' => [ 'type' => 'structure', 'members' => [ 'Filter' => [ 'shape' => 'TopicsDetectionJobFilter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'MaxResultsInteger', ], ], ], 'ListTopicsDetectionJobsResponse' => [ 'type' => 'structure', 'members' => [ 'TopicsDetectionJobPropertiesList' => [ 'shape' => 'TopicsDetectionJobPropertiesList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'MaxResultsInteger' => [ 'type' => 'integer', 'max' => 500, 'min' => 1, ], 'ModelStatus' => [ 'type' => 'string', 'enum' => [ 'SUBMITTED', 'TRAINING', 'DELETING', 'STOP_REQUESTED', 'STOPPED', 'IN_ERROR', 'TRAINED', ], ], 'NumberOfTopicsInteger' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'OutputDataConfig' => [ 'type' => 'structure', 'required' => [ 'S3Uri', ], 'members' => [ 'S3Uri' => [ 'shape' => 'S3Uri', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'PartOfSpeechTag' => [ 'type' => 'structure', 'members' => [ 'Tag' => [ 'shape' => 'PartOfSpeechTagType', ], 'Score' => [ 'shape' => 'Float', ], ], ], 'PartOfSpeechTagType' => [ 'type' => 'string', 'enum' => [ 'ADJ', 'ADP', 'ADV', 'AUX', 'CONJ', 'CCONJ', 'DET', 'INTJ', 'NOUN', 'NUM', 'O', 'PART', 'PRON', 'PROPN', 'PUNCT', 'SCONJ', 'SYM', 'VERB', ], ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResourceLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResourceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'S3Uri' => [ 'type' => 'string', 'max' => 1024, 'pattern' => 's3://[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9](/.*)?', ], 'SentimentDetectionJobFilter' => [ 'type' => 'structure', 'members' => [ 'JobName' => [ 'shape' => 'JobName', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], 'SubmitTimeBefore' => [ 'shape' => 'Timestamp', ], 'SubmitTimeAfter' => [ 'shape' => 'Timestamp', ], ], ], 'SentimentDetectionJobProperties' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'JobName' => [ 'shape' => 'JobName', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], 'Message' => [ 'shape' => 'AnyLengthString', ], 'SubmitTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], 'InputDataConfig' => [ 'shape' => 'InputDataConfig', ], 'OutputDataConfig' => [ 'shape' => 'OutputDataConfig', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'DataAccessRoleArn' => [ 'shape' => 'IamRoleArn', ], 'VolumeKmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'SentimentDetectionJobPropertiesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SentimentDetectionJobProperties', ], ], 'SentimentScore' => [ 'type' => 'structure', 'members' => [ 'Positive' => [ 'shape' => 'Float', ], 'Negative' => [ 'shape' => 'Float', ], 'Neutral' => [ 'shape' => 'Float', ], 'Mixed' => [ 'shape' => 'Float', ], ], ], 'SentimentType' => [ 'type' => 'string', 'enum' => [ 'POSITIVE', 'NEGATIVE', 'NEUTRAL', 'MIXED', ], ], 'StartDocumentClassificationJobRequest' => [ 'type' => 'structure', 'required' => [ 'DocumentClassifierArn', 'InputDataConfig', 'OutputDataConfig', 'DataAccessRoleArn', ], 'members' => [ 'JobName' => [ 'shape' => 'JobName', ], 'DocumentClassifierArn' => [ 'shape' => 'DocumentClassifierArn', ], 'InputDataConfig' => [ 'shape' => 'InputDataConfig', ], 'OutputDataConfig' => [ 'shape' => 'OutputDataConfig', ], 'DataAccessRoleArn' => [ 'shape' => 'IamRoleArn', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestTokenString', 'idempotencyToken' => true, ], 'VolumeKmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'StartDocumentClassificationJobResponse' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], ], ], 'StartDominantLanguageDetectionJobRequest' => [ 'type' => 'structure', 'required' => [ 'InputDataConfig', 'OutputDataConfig', 'DataAccessRoleArn', ], 'members' => [ 'InputDataConfig' => [ 'shape' => 'InputDataConfig', ], 'OutputDataConfig' => [ 'shape' => 'OutputDataConfig', ], 'DataAccessRoleArn' => [ 'shape' => 'IamRoleArn', ], 'JobName' => [ 'shape' => 'JobName', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestTokenString', 'idempotencyToken' => true, ], 'VolumeKmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'StartDominantLanguageDetectionJobResponse' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], ], ], 'StartEntitiesDetectionJobRequest' => [ 'type' => 'structure', 'required' => [ 'InputDataConfig', 'OutputDataConfig', 'DataAccessRoleArn', 'LanguageCode', ], 'members' => [ 'InputDataConfig' => [ 'shape' => 'InputDataConfig', ], 'OutputDataConfig' => [ 'shape' => 'OutputDataConfig', ], 'DataAccessRoleArn' => [ 'shape' => 'IamRoleArn', ], 'JobName' => [ 'shape' => 'JobName', ], 'EntityRecognizerArn' => [ 'shape' => 'EntityRecognizerArn', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestTokenString', 'idempotencyToken' => true, ], 'VolumeKmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'StartEntitiesDetectionJobResponse' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], ], ], 'StartKeyPhrasesDetectionJobRequest' => [ 'type' => 'structure', 'required' => [ 'InputDataConfig', 'OutputDataConfig', 'DataAccessRoleArn', 'LanguageCode', ], 'members' => [ 'InputDataConfig' => [ 'shape' => 'InputDataConfig', ], 'OutputDataConfig' => [ 'shape' => 'OutputDataConfig', ], 'DataAccessRoleArn' => [ 'shape' => 'IamRoleArn', ], 'JobName' => [ 'shape' => 'JobName', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestTokenString', 'idempotencyToken' => true, ], 'VolumeKmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'StartKeyPhrasesDetectionJobResponse' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], ], ], 'StartSentimentDetectionJobRequest' => [ 'type' => 'structure', 'required' => [ 'InputDataConfig', 'OutputDataConfig', 'DataAccessRoleArn', 'LanguageCode', ], 'members' => [ 'InputDataConfig' => [ 'shape' => 'InputDataConfig', ], 'OutputDataConfig' => [ 'shape' => 'OutputDataConfig', ], 'DataAccessRoleArn' => [ 'shape' => 'IamRoleArn', ], 'JobName' => [ 'shape' => 'JobName', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestTokenString', 'idempotencyToken' => true, ], 'VolumeKmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'StartSentimentDetectionJobResponse' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], ], ], 'StartTopicsDetectionJobRequest' => [ 'type' => 'structure', 'required' => [ 'InputDataConfig', 'OutputDataConfig', 'DataAccessRoleArn', ], 'members' => [ 'InputDataConfig' => [ 'shape' => 'InputDataConfig', ], 'OutputDataConfig' => [ 'shape' => 'OutputDataConfig', ], 'DataAccessRoleArn' => [ 'shape' => 'IamRoleArn', ], 'JobName' => [ 'shape' => 'JobName', ], 'NumberOfTopics' => [ 'shape' => 'NumberOfTopicsInteger', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestTokenString', 'idempotencyToken' => true, ], 'VolumeKmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'StartTopicsDetectionJobResponse' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], ], ], 'StopDominantLanguageDetectionJobRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'StopDominantLanguageDetectionJobResponse' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], ], ], 'StopEntitiesDetectionJobRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'StopEntitiesDetectionJobResponse' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], ], ], 'StopKeyPhrasesDetectionJobRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'StopKeyPhrasesDetectionJobResponse' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], ], ], 'StopSentimentDetectionJobRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'StopSentimentDetectionJobResponse' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], ], ], 'StopTrainingDocumentClassifierRequest' => [ 'type' => 'structure', 'required' => [ 'DocumentClassifierArn', ], 'members' => [ 'DocumentClassifierArn' => [ 'shape' => 'DocumentClassifierArn', ], ], ], 'StopTrainingDocumentClassifierResponse' => [ 'type' => 'structure', 'members' => [], ], 'StopTrainingEntityRecognizerRequest' => [ 'type' => 'structure', 'required' => [ 'EntityRecognizerArn', ], 'members' => [ 'EntityRecognizerArn' => [ 'shape' => 'EntityRecognizerArn', ], ], ], 'StopTrainingEntityRecognizerResponse' => [ 'type' => 'structure', 'members' => [], ], 'String' => [ 'type' => 'string', 'min' => 1, ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'SyntaxLanguageCode' => [ 'type' => 'string', 'enum' => [ 'en', 'es', 'fr', 'de', 'it', 'pt', ], ], 'SyntaxToken' => [ 'type' => 'structure', 'members' => [ 'TokenId' => [ 'shape' => 'Integer', ], 'Text' => [ 'shape' => 'String', ], 'BeginOffset' => [ 'shape' => 'Integer', ], 'EndOffset' => [ 'shape' => 'Integer', ], 'PartOfSpeech' => [ 'shape' => 'PartOfSpeechTag', ], ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Tags', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ComprehendArn', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'TextSizeLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'TooManyTagKeysException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'TooManyTagsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'TopicsDetectionJobFilter' => [ 'type' => 'structure', 'members' => [ 'JobName' => [ 'shape' => 'JobName', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], 'SubmitTimeBefore' => [ 'shape' => 'Timestamp', ], 'SubmitTimeAfter' => [ 'shape' => 'Timestamp', ], ], ], 'TopicsDetectionJobProperties' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'JobName' => [ 'shape' => 'JobName', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], 'Message' => [ 'shape' => 'AnyLengthString', ], 'SubmitTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], 'InputDataConfig' => [ 'shape' => 'InputDataConfig', ], 'OutputDataConfig' => [ 'shape' => 'OutputDataConfig', ], 'NumberOfTopics' => [ 'shape' => 'Integer', ], 'DataAccessRoleArn' => [ 'shape' => 'IamRoleArn', ], 'VolumeKmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'TopicsDetectionJobPropertiesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TopicsDetectionJobProperties', ], ], 'UnsupportedLanguageException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagKeys', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ComprehendArn', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], ],]; diff --git a/lib/aws/Aws/data/comprehend/2017-11-27/paginators-1.json.php b/lib/aws/Aws/data/comprehend/2017-11-27/paginators-1.json.php new file mode 100644 index 0000000..0db1a6b --- /dev/null +++ b/lib/aws/Aws/data/comprehend/2017-11-27/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/comprehend/2017-11-27/paginators-1.json +return [ 'pagination' => [ 'ListDominantLanguageDetectionJobs' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListEntitiesDetectionJobs' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListKeyPhrasesDetectionJobs' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListSentimentDetectionJobs' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListTopicsDetectionJobs' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/comprehendmedical/2018-10-30/api-2.json.php b/lib/aws/Aws/data/comprehendmedical/2018-10-30/api-2.json.php new file mode 100644 index 0000000..b49f8de --- /dev/null +++ b/lib/aws/Aws/data/comprehendmedical/2018-10-30/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/comprehendmedical/2018-10-30/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-10-30', 'endpointPrefix' => 'comprehendmedical', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'ComprehendMedical', 'serviceFullName' => 'AWS Comprehend Medical', 'serviceId' => 'ComprehendMedical', 'signatureVersion' => 'v4', 'signingName' => 'comprehendmedical', 'targetPrefix' => 'ComprehendMedical_20181030', 'uid' => 'comprehendmedical-2018-10-30', ], 'operations' => [ 'DetectEntities' => [ 'name' => 'DetectEntities', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetectEntitiesRequest', ], 'output' => [ 'shape' => 'DetectEntitiesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidEncodingException', ], [ 'shape' => 'TextSizeLimitExceededException', ], ], ], 'DetectPHI' => [ 'name' => 'DetectPHI', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetectPHIRequest', ], 'output' => [ 'shape' => 'DetectPHIResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidEncodingException', ], [ 'shape' => 'TextSizeLimitExceededException', ], ], ], ], 'shapes' => [ 'Attribute' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'EntitySubType', ], 'Score' => [ 'shape' => 'Float', ], 'RelationshipScore' => [ 'shape' => 'Float', ], 'Id' => [ 'shape' => 'Integer', ], 'BeginOffset' => [ 'shape' => 'Integer', ], 'EndOffset' => [ 'shape' => 'Integer', ], 'Text' => [ 'shape' => 'String', ], 'Traits' => [ 'shape' => 'TraitList', ], ], ], 'AttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Attribute', ], ], 'AttributeName' => [ 'type' => 'string', 'enum' => [ 'SIGN', 'SYMPTOM', 'DIAGNOSIS', 'NEGATION', ], ], 'BoundedLengthString' => [ 'type' => 'string', 'max' => 20000, 'min' => 1, ], 'DetectEntitiesRequest' => [ 'type' => 'structure', 'required' => [ 'Text', ], 'members' => [ 'Text' => [ 'shape' => 'BoundedLengthString', ], ], ], 'DetectEntitiesResponse' => [ 'type' => 'structure', 'required' => [ 'Entities', ], 'members' => [ 'Entities' => [ 'shape' => 'EntityList', ], 'UnmappedAttributes' => [ 'shape' => 'UnmappedAttributeList', ], 'PaginationToken' => [ 'shape' => 'String', ], ], ], 'DetectPHIRequest' => [ 'type' => 'structure', 'required' => [ 'Text', ], 'members' => [ 'Text' => [ 'shape' => 'BoundedLengthString', ], ], ], 'DetectPHIResponse' => [ 'type' => 'structure', 'required' => [ 'Entities', ], 'members' => [ 'Entities' => [ 'shape' => 'EntityList', ], 'PaginationToken' => [ 'shape' => 'String', ], ], ], 'Entity' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'Integer', ], 'BeginOffset' => [ 'shape' => 'Integer', ], 'EndOffset' => [ 'shape' => 'Integer', ], 'Score' => [ 'shape' => 'Float', ], 'Text' => [ 'shape' => 'String', ], 'Category' => [ 'shape' => 'EntityType', ], 'Type' => [ 'shape' => 'EntitySubType', ], 'Traits' => [ 'shape' => 'TraitList', ], 'Attributes' => [ 'shape' => 'AttributeList', ], ], ], 'EntityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Entity', ], ], 'EntitySubType' => [ 'type' => 'string', 'enum' => [ 'NAME', 'DOSAGE', 'ROUTE_OR_MODE', 'FORM', 'FREQUENCY', 'DURATION', 'GENERIC_NAME', 'BRAND_NAME', 'STRENGTH', 'RATE', 'ACUITY', 'TEST_NAME', 'TEST_VALUE', 'TEST_UNITS', 'PROCEDURE_NAME', 'TREATMENT_NAME', 'DATE', 'AGE', 'CONTACT_POINT', 'EMAIL', 'IDENTIFIER', 'URL', 'ADDRESS', 'PROFESSION', 'SYSTEM_ORGAN_SITE', 'DIRECTION', 'QUALITY', 'QUANTITY', ], ], 'EntityType' => [ 'type' => 'string', 'enum' => [ 'MEDICATION', 'MEDICAL_CONDITION', 'PROTECTED_HEALTH_INFORMATION', 'TEST_TREATMENT_PROCEDURE', 'ANATOMY', ], ], 'Float' => [ 'type' => 'float', ], 'Integer' => [ 'type' => 'integer', ], 'InternalServerException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, 'fault' => true, ], 'InvalidEncodingException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'String' => [ 'type' => 'string', 'min' => 1, ], 'TextSizeLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'Trait' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'AttributeName', ], 'Score' => [ 'shape' => 'Float', ], ], ], 'TraitList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Trait', ], ], 'UnmappedAttribute' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'EntityType', ], 'Attribute' => [ 'shape' => 'Attribute', ], ], ], 'UnmappedAttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UnmappedAttribute', ], ], ],]; diff --git a/lib/aws/Aws/data/comprehendmedical/2018-10-30/paginators-1.json.php b/lib/aws/Aws/data/comprehendmedical/2018-10-30/paginators-1.json.php new file mode 100644 index 0000000..943c96b --- /dev/null +++ b/lib/aws/Aws/data/comprehendmedical/2018-10-30/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/comprehendmedical/2018-10-30/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/config/2014-11-12/api-2.json.php b/lib/aws/Aws/data/config/2014-11-12/api-2.json.php new file mode 100644 index 0000000..13b8119 --- /dev/null +++ b/lib/aws/Aws/data/config/2014-11-12/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/config/2014-11-12/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2014-11-12', 'endpointPrefix' => 'config', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'Config Service', 'serviceFullName' => 'AWS Config', 'serviceId' => 'Config Service', 'signatureVersion' => 'v4', 'targetPrefix' => 'StarlingDoveService', 'uid' => 'config-2014-11-12', ], 'operations' => [ 'BatchGetAggregateResourceConfig' => [ 'name' => 'BatchGetAggregateResourceConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetAggregateResourceConfigRequest', ], 'output' => [ 'shape' => 'BatchGetAggregateResourceConfigResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'NoSuchConfigurationAggregatorException', ], ], ], 'BatchGetResourceConfig' => [ 'name' => 'BatchGetResourceConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetResourceConfigRequest', ], 'output' => [ 'shape' => 'BatchGetResourceConfigResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'NoAvailableConfigurationRecorderException', ], ], ], 'DeleteAggregationAuthorization' => [ 'name' => 'DeleteAggregationAuthorization', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAggregationAuthorizationRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], ], ], 'DeleteConfigRule' => [ 'name' => 'DeleteConfigRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteConfigRuleRequest', ], 'errors' => [ [ 'shape' => 'NoSuchConfigRuleException', ], [ 'shape' => 'ResourceInUseException', ], ], ], 'DeleteConfigurationAggregator' => [ 'name' => 'DeleteConfigurationAggregator', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteConfigurationAggregatorRequest', ], 'errors' => [ [ 'shape' => 'NoSuchConfigurationAggregatorException', ], ], ], 'DeleteConfigurationRecorder' => [ 'name' => 'DeleteConfigurationRecorder', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteConfigurationRecorderRequest', ], 'errors' => [ [ 'shape' => 'NoSuchConfigurationRecorderException', ], ], ], 'DeleteDeliveryChannel' => [ 'name' => 'DeleteDeliveryChannel', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDeliveryChannelRequest', ], 'errors' => [ [ 'shape' => 'NoSuchDeliveryChannelException', ], [ 'shape' => 'LastDeliveryChannelDeleteFailedException', ], ], ], 'DeleteEvaluationResults' => [ 'name' => 'DeleteEvaluationResults', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteEvaluationResultsRequest', ], 'output' => [ 'shape' => 'DeleteEvaluationResultsResponse', ], 'errors' => [ [ 'shape' => 'NoSuchConfigRuleException', ], [ 'shape' => 'ResourceInUseException', ], ], ], 'DeletePendingAggregationRequest' => [ 'name' => 'DeletePendingAggregationRequest', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePendingAggregationRequestRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], ], ], 'DeleteRemediationConfiguration' => [ 'name' => 'DeleteRemediationConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRemediationConfigurationRequest', ], 'output' => [ 'shape' => 'DeleteRemediationConfigurationResponse', ], 'errors' => [ [ 'shape' => 'NoSuchRemediationConfigurationException', ], ], ], 'DeleteRetentionConfiguration' => [ 'name' => 'DeleteRetentionConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRetentionConfigurationRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'NoSuchRetentionConfigurationException', ], ], ], 'DeliverConfigSnapshot' => [ 'name' => 'DeliverConfigSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeliverConfigSnapshotRequest', ], 'output' => [ 'shape' => 'DeliverConfigSnapshotResponse', ], 'errors' => [ [ 'shape' => 'NoSuchDeliveryChannelException', ], [ 'shape' => 'NoAvailableConfigurationRecorderException', ], [ 'shape' => 'NoRunningConfigurationRecorderException', ], ], ], 'DescribeAggregateComplianceByConfigRules' => [ 'name' => 'DescribeAggregateComplianceByConfigRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAggregateComplianceByConfigRulesRequest', ], 'output' => [ 'shape' => 'DescribeAggregateComplianceByConfigRulesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidLimitException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'NoSuchConfigurationAggregatorException', ], ], ], 'DescribeAggregationAuthorizations' => [ 'name' => 'DescribeAggregationAuthorizations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAggregationAuthorizationsRequest', ], 'output' => [ 'shape' => 'DescribeAggregationAuthorizationsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidLimitException', ], ], ], 'DescribeComplianceByConfigRule' => [ 'name' => 'DescribeComplianceByConfigRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeComplianceByConfigRuleRequest', ], 'output' => [ 'shape' => 'DescribeComplianceByConfigRuleResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'NoSuchConfigRuleException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'DescribeComplianceByResource' => [ 'name' => 'DescribeComplianceByResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeComplianceByResourceRequest', ], 'output' => [ 'shape' => 'DescribeComplianceByResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'DescribeConfigRuleEvaluationStatus' => [ 'name' => 'DescribeConfigRuleEvaluationStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeConfigRuleEvaluationStatusRequest', ], 'output' => [ 'shape' => 'DescribeConfigRuleEvaluationStatusResponse', ], 'errors' => [ [ 'shape' => 'NoSuchConfigRuleException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'DescribeConfigRules' => [ 'name' => 'DescribeConfigRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeConfigRulesRequest', ], 'output' => [ 'shape' => 'DescribeConfigRulesResponse', ], 'errors' => [ [ 'shape' => 'NoSuchConfigRuleException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'DescribeConfigurationAggregatorSourcesStatus' => [ 'name' => 'DescribeConfigurationAggregatorSourcesStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeConfigurationAggregatorSourcesStatusRequest', ], 'output' => [ 'shape' => 'DescribeConfigurationAggregatorSourcesStatusResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'NoSuchConfigurationAggregatorException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidLimitException', ], ], ], 'DescribeConfigurationAggregators' => [ 'name' => 'DescribeConfigurationAggregators', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeConfigurationAggregatorsRequest', ], 'output' => [ 'shape' => 'DescribeConfigurationAggregatorsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'NoSuchConfigurationAggregatorException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidLimitException', ], ], ], 'DescribeConfigurationRecorderStatus' => [ 'name' => 'DescribeConfigurationRecorderStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeConfigurationRecorderStatusRequest', ], 'output' => [ 'shape' => 'DescribeConfigurationRecorderStatusResponse', ], 'errors' => [ [ 'shape' => 'NoSuchConfigurationRecorderException', ], ], ], 'DescribeConfigurationRecorders' => [ 'name' => 'DescribeConfigurationRecorders', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeConfigurationRecordersRequest', ], 'output' => [ 'shape' => 'DescribeConfigurationRecordersResponse', ], 'errors' => [ [ 'shape' => 'NoSuchConfigurationRecorderException', ], ], ], 'DescribeDeliveryChannelStatus' => [ 'name' => 'DescribeDeliveryChannelStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDeliveryChannelStatusRequest', ], 'output' => [ 'shape' => 'DescribeDeliveryChannelStatusResponse', ], 'errors' => [ [ 'shape' => 'NoSuchDeliveryChannelException', ], ], ], 'DescribeDeliveryChannels' => [ 'name' => 'DescribeDeliveryChannels', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDeliveryChannelsRequest', ], 'output' => [ 'shape' => 'DescribeDeliveryChannelsResponse', ], 'errors' => [ [ 'shape' => 'NoSuchDeliveryChannelException', ], ], ], 'DescribePendingAggregationRequests' => [ 'name' => 'DescribePendingAggregationRequests', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePendingAggregationRequestsRequest', ], 'output' => [ 'shape' => 'DescribePendingAggregationRequestsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidLimitException', ], ], ], 'DescribeRemediationConfigurations' => [ 'name' => 'DescribeRemediationConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRemediationConfigurationsRequest', ], 'output' => [ 'shape' => 'DescribeRemediationConfigurationsResponse', ], ], 'DescribeRemediationExecutionStatus' => [ 'name' => 'DescribeRemediationExecutionStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRemediationExecutionStatusRequest', ], 'output' => [ 'shape' => 'DescribeRemediationExecutionStatusResponse', ], 'errors' => [ [ 'shape' => 'NoSuchRemediationConfigurationException', ], ], ], 'DescribeRetentionConfigurations' => [ 'name' => 'DescribeRetentionConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRetentionConfigurationsRequest', ], 'output' => [ 'shape' => 'DescribeRetentionConfigurationsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'NoSuchRetentionConfigurationException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'GetAggregateComplianceDetailsByConfigRule' => [ 'name' => 'GetAggregateComplianceDetailsByConfigRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAggregateComplianceDetailsByConfigRuleRequest', ], 'output' => [ 'shape' => 'GetAggregateComplianceDetailsByConfigRuleResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidLimitException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'NoSuchConfigurationAggregatorException', ], ], ], 'GetAggregateConfigRuleComplianceSummary' => [ 'name' => 'GetAggregateConfigRuleComplianceSummary', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAggregateConfigRuleComplianceSummaryRequest', ], 'output' => [ 'shape' => 'GetAggregateConfigRuleComplianceSummaryResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidLimitException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'NoSuchConfigurationAggregatorException', ], ], ], 'GetAggregateDiscoveredResourceCounts' => [ 'name' => 'GetAggregateDiscoveredResourceCounts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAggregateDiscoveredResourceCountsRequest', ], 'output' => [ 'shape' => 'GetAggregateDiscoveredResourceCountsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidLimitException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'NoSuchConfigurationAggregatorException', ], ], ], 'GetAggregateResourceConfig' => [ 'name' => 'GetAggregateResourceConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAggregateResourceConfigRequest', ], 'output' => [ 'shape' => 'GetAggregateResourceConfigResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'NoSuchConfigurationAggregatorException', ], [ 'shape' => 'OversizedConfigurationItemException', ], [ 'shape' => 'ResourceNotDiscoveredException', ], ], ], 'GetComplianceDetailsByConfigRule' => [ 'name' => 'GetComplianceDetailsByConfigRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetComplianceDetailsByConfigRuleRequest', ], 'output' => [ 'shape' => 'GetComplianceDetailsByConfigRuleResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'NoSuchConfigRuleException', ], ], ], 'GetComplianceDetailsByResource' => [ 'name' => 'GetComplianceDetailsByResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetComplianceDetailsByResourceRequest', ], 'output' => [ 'shape' => 'GetComplianceDetailsByResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], ], ], 'GetComplianceSummaryByConfigRule' => [ 'name' => 'GetComplianceSummaryByConfigRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'GetComplianceSummaryByConfigRuleResponse', ], ], 'GetComplianceSummaryByResourceType' => [ 'name' => 'GetComplianceSummaryByResourceType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetComplianceSummaryByResourceTypeRequest', ], 'output' => [ 'shape' => 'GetComplianceSummaryByResourceTypeResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], ], ], 'GetDiscoveredResourceCounts' => [ 'name' => 'GetDiscoveredResourceCounts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDiscoveredResourceCountsRequest', ], 'output' => [ 'shape' => 'GetDiscoveredResourceCountsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidLimitException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'GetResourceConfigHistory' => [ 'name' => 'GetResourceConfigHistory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetResourceConfigHistoryRequest', ], 'output' => [ 'shape' => 'GetResourceConfigHistoryResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidTimeRangeException', ], [ 'shape' => 'InvalidLimitException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'NoAvailableConfigurationRecorderException', ], [ 'shape' => 'ResourceNotDiscoveredException', ], ], ], 'ListAggregateDiscoveredResources' => [ 'name' => 'ListAggregateDiscoveredResources', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAggregateDiscoveredResourcesRequest', ], 'output' => [ 'shape' => 'ListAggregateDiscoveredResourcesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidLimitException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'NoSuchConfigurationAggregatorException', ], ], ], 'ListDiscoveredResources' => [ 'name' => 'ListDiscoveredResources', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDiscoveredResourcesRequest', ], 'output' => [ 'shape' => 'ListDiscoveredResourcesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidLimitException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'NoAvailableConfigurationRecorderException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidLimitException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'PutAggregationAuthorization' => [ 'name' => 'PutAggregationAuthorization', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutAggregationAuthorizationRequest', ], 'output' => [ 'shape' => 'PutAggregationAuthorizationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], ], ], 'PutConfigRule' => [ 'name' => 'PutConfigRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutConfigRuleRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MaxNumberOfConfigRulesExceededException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InsufficientPermissionsException', ], [ 'shape' => 'NoAvailableConfigurationRecorderException', ], ], ], 'PutConfigurationAggregator' => [ 'name' => 'PutConfigurationAggregator', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutConfigurationAggregatorRequest', ], 'output' => [ 'shape' => 'PutConfigurationAggregatorResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidRoleException', ], [ 'shape' => 'OrganizationAccessDeniedException', ], [ 'shape' => 'NoAvailableOrganizationException', ], [ 'shape' => 'OrganizationAllFeaturesNotEnabledException', ], ], ], 'PutConfigurationRecorder' => [ 'name' => 'PutConfigurationRecorder', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutConfigurationRecorderRequest', ], 'errors' => [ [ 'shape' => 'MaxNumberOfConfigurationRecordersExceededException', ], [ 'shape' => 'InvalidConfigurationRecorderNameException', ], [ 'shape' => 'InvalidRoleException', ], [ 'shape' => 'InvalidRecordingGroupException', ], ], ], 'PutDeliveryChannel' => [ 'name' => 'PutDeliveryChannel', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutDeliveryChannelRequest', ], 'errors' => [ [ 'shape' => 'MaxNumberOfDeliveryChannelsExceededException', ], [ 'shape' => 'NoAvailableConfigurationRecorderException', ], [ 'shape' => 'InvalidDeliveryChannelNameException', ], [ 'shape' => 'NoSuchBucketException', ], [ 'shape' => 'InvalidS3KeyPrefixException', ], [ 'shape' => 'InvalidSNSTopicARNException', ], [ 'shape' => 'InsufficientDeliveryPolicyException', ], ], ], 'PutEvaluations' => [ 'name' => 'PutEvaluations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutEvaluationsRequest', ], 'output' => [ 'shape' => 'PutEvaluationsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidResultTokenException', ], [ 'shape' => 'NoSuchConfigRuleException', ], ], ], 'PutRemediationConfigurations' => [ 'name' => 'PutRemediationConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutRemediationConfigurationsRequest', ], 'output' => [ 'shape' => 'PutRemediationConfigurationsResponse', ], 'errors' => [ [ 'shape' => 'InsufficientPermissionsException', ], [ 'shape' => 'InvalidParameterValueException', ], ], ], 'PutRetentionConfiguration' => [ 'name' => 'PutRetentionConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutRetentionConfigurationRequest', ], 'output' => [ 'shape' => 'PutRetentionConfigurationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MaxNumberOfRetentionConfigurationsExceededException', ], ], ], 'SelectResourceConfig' => [ 'name' => 'SelectResourceConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SelectResourceConfigRequest', ], 'output' => [ 'shape' => 'SelectResourceConfigResponse', ], 'errors' => [ [ 'shape' => 'InvalidExpressionException', ], [ 'shape' => 'InvalidLimitException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'StartConfigRulesEvaluation' => [ 'name' => 'StartConfigRulesEvaluation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartConfigRulesEvaluationRequest', ], 'output' => [ 'shape' => 'StartConfigRulesEvaluationResponse', ], 'errors' => [ [ 'shape' => 'NoSuchConfigRuleException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidParameterValueException', ], ], ], 'StartConfigurationRecorder' => [ 'name' => 'StartConfigurationRecorder', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartConfigurationRecorderRequest', ], 'errors' => [ [ 'shape' => 'NoSuchConfigurationRecorderException', ], [ 'shape' => 'NoAvailableDeliveryChannelException', ], ], ], 'StartRemediationExecution' => [ 'name' => 'StartRemediationExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartRemediationExecutionRequest', ], 'output' => [ 'shape' => 'StartRemediationExecutionResponse', ], 'errors' => [ [ 'shape' => 'InsufficientPermissionsException', ], [ 'shape' => 'NoSuchRemediationConfigurationException', ], ], ], 'StopConfigurationRecorder' => [ 'name' => 'StopConfigurationRecorder', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopConfigurationRecorderRequest', ], 'errors' => [ [ 'shape' => 'NoSuchConfigurationRecorderException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyTagsException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], ], 'shapes' => [ 'ARN' => [ 'type' => 'string', ], 'AccountAggregationSource' => [ 'type' => 'structure', 'required' => [ 'AccountIds', ], 'members' => [ 'AccountIds' => [ 'shape' => 'AccountAggregationSourceAccountList', ], 'AllAwsRegions' => [ 'shape' => 'Boolean', ], 'AwsRegions' => [ 'shape' => 'AggregatorRegionList', ], ], ], 'AccountAggregationSourceAccountList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountId', ], 'min' => 1, ], 'AccountAggregationSourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountAggregationSource', ], 'max' => 1, 'min' => 0, ], 'AccountId' => [ 'type' => 'string', 'pattern' => '\\d{12}', ], 'AggregateComplianceByConfigRule' => [ 'type' => 'structure', 'members' => [ 'ConfigRuleName' => [ 'shape' => 'ConfigRuleName', ], 'Compliance' => [ 'shape' => 'Compliance', ], 'AccountId' => [ 'shape' => 'AccountId', ], 'AwsRegion' => [ 'shape' => 'AwsRegion', ], ], ], 'AggregateComplianceByConfigRuleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AggregateComplianceByConfigRule', ], ], 'AggregateComplianceCount' => [ 'type' => 'structure', 'members' => [ 'GroupName' => [ 'shape' => 'StringWithCharLimit256', ], 'ComplianceSummary' => [ 'shape' => 'ComplianceSummary', ], ], ], 'AggregateComplianceCountList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AggregateComplianceCount', ], ], 'AggregateEvaluationResult' => [ 'type' => 'structure', 'members' => [ 'EvaluationResultIdentifier' => [ 'shape' => 'EvaluationResultIdentifier', ], 'ComplianceType' => [ 'shape' => 'ComplianceType', ], 'ResultRecordedTime' => [ 'shape' => 'Date', ], 'ConfigRuleInvokedTime' => [ 'shape' => 'Date', ], 'Annotation' => [ 'shape' => 'StringWithCharLimit256', ], 'AccountId' => [ 'shape' => 'AccountId', ], 'AwsRegion' => [ 'shape' => 'AwsRegion', ], ], ], 'AggregateEvaluationResultList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AggregateEvaluationResult', ], ], 'AggregateResourceIdentifier' => [ 'type' => 'structure', 'required' => [ 'SourceAccountId', 'SourceRegion', 'ResourceId', 'ResourceType', ], 'members' => [ 'SourceAccountId' => [ 'shape' => 'AccountId', ], 'SourceRegion' => [ 'shape' => 'AwsRegion', ], 'ResourceId' => [ 'shape' => 'ResourceId', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], 'ResourceName' => [ 'shape' => 'ResourceName', ], ], ], 'AggregatedSourceStatus' => [ 'type' => 'structure', 'members' => [ 'SourceId' => [ 'shape' => 'String', ], 'SourceType' => [ 'shape' => 'AggregatedSourceType', ], 'AwsRegion' => [ 'shape' => 'AwsRegion', ], 'LastUpdateStatus' => [ 'shape' => 'AggregatedSourceStatusType', ], 'LastUpdateTime' => [ 'shape' => 'Date', ], 'LastErrorCode' => [ 'shape' => 'String', ], 'LastErrorMessage' => [ 'shape' => 'String', ], ], ], 'AggregatedSourceStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AggregatedSourceStatus', ], ], 'AggregatedSourceStatusType' => [ 'type' => 'string', 'enum' => [ 'FAILED', 'SUCCEEDED', 'OUTDATED', ], ], 'AggregatedSourceStatusTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AggregatedSourceStatusType', ], 'min' => 1, ], 'AggregatedSourceType' => [ 'type' => 'string', 'enum' => [ 'ACCOUNT', 'ORGANIZATION', ], ], 'AggregationAuthorization' => [ 'type' => 'structure', 'members' => [ 'AggregationAuthorizationArn' => [ 'shape' => 'String', ], 'AuthorizedAccountId' => [ 'shape' => 'AccountId', ], 'AuthorizedAwsRegion' => [ 'shape' => 'AwsRegion', ], 'CreationTime' => [ 'shape' => 'Date', ], ], ], 'AggregationAuthorizationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AggregationAuthorization', ], ], 'AggregatorRegionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], 'min' => 1, ], 'AllSupported' => [ 'type' => 'boolean', ], 'AmazonResourceName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'AvailabilityZone' => [ 'type' => 'string', ], 'AwsRegion' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'BaseConfigurationItem' => [ 'type' => 'structure', 'members' => [ 'version' => [ 'shape' => 'Version', ], 'accountId' => [ 'shape' => 'AccountId', ], 'configurationItemCaptureTime' => [ 'shape' => 'ConfigurationItemCaptureTime', ], 'configurationItemStatus' => [ 'shape' => 'ConfigurationItemStatus', ], 'configurationStateId' => [ 'shape' => 'ConfigurationStateId', ], 'arn' => [ 'shape' => 'ARN', ], 'resourceType' => [ 'shape' => 'ResourceType', ], 'resourceId' => [ 'shape' => 'ResourceId', ], 'resourceName' => [ 'shape' => 'ResourceName', ], 'awsRegion' => [ 'shape' => 'AwsRegion', ], 'availabilityZone' => [ 'shape' => 'AvailabilityZone', ], 'resourceCreationTime' => [ 'shape' => 'ResourceCreationTime', ], 'configuration' => [ 'shape' => 'Configuration', ], 'supplementaryConfiguration' => [ 'shape' => 'SupplementaryConfiguration', ], ], ], 'BaseConfigurationItems' => [ 'type' => 'list', 'member' => [ 'shape' => 'BaseConfigurationItem', ], ], 'BaseResourceId' => [ 'type' => 'string', 'max' => 768, 'min' => 1, ], 'BatchGetAggregateResourceConfigRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationAggregatorName', 'ResourceIdentifiers', ], 'members' => [ 'ConfigurationAggregatorName' => [ 'shape' => 'ConfigurationAggregatorName', ], 'ResourceIdentifiers' => [ 'shape' => 'ResourceIdentifiersList', ], ], ], 'BatchGetAggregateResourceConfigResponse' => [ 'type' => 'structure', 'members' => [ 'BaseConfigurationItems' => [ 'shape' => 'BaseConfigurationItems', ], 'UnprocessedResourceIdentifiers' => [ 'shape' => 'UnprocessedResourceIdentifierList', ], ], ], 'BatchGetResourceConfigRequest' => [ 'type' => 'structure', 'required' => [ 'resourceKeys', ], 'members' => [ 'resourceKeys' => [ 'shape' => 'ResourceKeys', ], ], ], 'BatchGetResourceConfigResponse' => [ 'type' => 'structure', 'members' => [ 'baseConfigurationItems' => [ 'shape' => 'BaseConfigurationItems', ], 'unprocessedResourceKeys' => [ 'shape' => 'ResourceKeys', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'ChannelName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'ChronologicalOrder' => [ 'type' => 'string', 'enum' => [ 'Reverse', 'Forward', ], ], 'Compliance' => [ 'type' => 'structure', 'members' => [ 'ComplianceType' => [ 'shape' => 'ComplianceType', ], 'ComplianceContributorCount' => [ 'shape' => 'ComplianceContributorCount', ], ], ], 'ComplianceByConfigRule' => [ 'type' => 'structure', 'members' => [ 'ConfigRuleName' => [ 'shape' => 'StringWithCharLimit64', ], 'Compliance' => [ 'shape' => 'Compliance', ], ], ], 'ComplianceByConfigRules' => [ 'type' => 'list', 'member' => [ 'shape' => 'ComplianceByConfigRule', ], ], 'ComplianceByResource' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'StringWithCharLimit256', ], 'ResourceId' => [ 'shape' => 'BaseResourceId', ], 'Compliance' => [ 'shape' => 'Compliance', ], ], ], 'ComplianceByResources' => [ 'type' => 'list', 'member' => [ 'shape' => 'ComplianceByResource', ], ], 'ComplianceContributorCount' => [ 'type' => 'structure', 'members' => [ 'CappedCount' => [ 'shape' => 'Integer', ], 'CapExceeded' => [ 'shape' => 'Boolean', ], ], ], 'ComplianceResourceTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'StringWithCharLimit256', ], 'max' => 100, 'min' => 0, ], 'ComplianceSummariesByResourceType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ComplianceSummaryByResourceType', ], ], 'ComplianceSummary' => [ 'type' => 'structure', 'members' => [ 'CompliantResourceCount' => [ 'shape' => 'ComplianceContributorCount', ], 'NonCompliantResourceCount' => [ 'shape' => 'ComplianceContributorCount', ], 'ComplianceSummaryTimestamp' => [ 'shape' => 'Date', ], ], ], 'ComplianceSummaryByResourceType' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'StringWithCharLimit256', ], 'ComplianceSummary' => [ 'shape' => 'ComplianceSummary', ], ], ], 'ComplianceType' => [ 'type' => 'string', 'enum' => [ 'COMPLIANT', 'NON_COMPLIANT', 'NOT_APPLICABLE', 'INSUFFICIENT_DATA', ], ], 'ComplianceTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'ComplianceType', ], 'max' => 3, 'min' => 0, ], 'ConfigExportDeliveryInfo' => [ 'type' => 'structure', 'members' => [ 'lastStatus' => [ 'shape' => 'DeliveryStatus', ], 'lastErrorCode' => [ 'shape' => 'String', ], 'lastErrorMessage' => [ 'shape' => 'String', ], 'lastAttemptTime' => [ 'shape' => 'Date', ], 'lastSuccessfulTime' => [ 'shape' => 'Date', ], 'nextDeliveryTime' => [ 'shape' => 'Date', ], ], ], 'ConfigRule' => [ 'type' => 'structure', 'required' => [ 'Source', ], 'members' => [ 'ConfigRuleName' => [ 'shape' => 'StringWithCharLimit64', ], 'ConfigRuleArn' => [ 'shape' => 'String', ], 'ConfigRuleId' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'EmptiableStringWithCharLimit256', ], 'Scope' => [ 'shape' => 'Scope', ], 'Source' => [ 'shape' => 'Source', ], 'InputParameters' => [ 'shape' => 'StringWithCharLimit1024', ], 'MaximumExecutionFrequency' => [ 'shape' => 'MaximumExecutionFrequency', ], 'ConfigRuleState' => [ 'shape' => 'ConfigRuleState', ], 'CreatedBy' => [ 'shape' => 'StringWithCharLimit256', ], ], ], 'ConfigRuleComplianceFilters' => [ 'type' => 'structure', 'members' => [ 'ConfigRuleName' => [ 'shape' => 'ConfigRuleName', ], 'ComplianceType' => [ 'shape' => 'ComplianceType', ], 'AccountId' => [ 'shape' => 'AccountId', ], 'AwsRegion' => [ 'shape' => 'AwsRegion', ], ], ], 'ConfigRuleComplianceSummaryFilters' => [ 'type' => 'structure', 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'AwsRegion' => [ 'shape' => 'AwsRegion', ], ], ], 'ConfigRuleComplianceSummaryGroupKey' => [ 'type' => 'string', 'enum' => [ 'ACCOUNT_ID', 'AWS_REGION', ], ], 'ConfigRuleEvaluationStatus' => [ 'type' => 'structure', 'members' => [ 'ConfigRuleName' => [ 'shape' => 'StringWithCharLimit64', ], 'ConfigRuleArn' => [ 'shape' => 'String', ], 'ConfigRuleId' => [ 'shape' => 'String', ], 'LastSuccessfulInvocationTime' => [ 'shape' => 'Date', ], 'LastFailedInvocationTime' => [ 'shape' => 'Date', ], 'LastSuccessfulEvaluationTime' => [ 'shape' => 'Date', ], 'LastFailedEvaluationTime' => [ 'shape' => 'Date', ], 'FirstActivatedTime' => [ 'shape' => 'Date', ], 'LastErrorCode' => [ 'shape' => 'String', ], 'LastErrorMessage' => [ 'shape' => 'String', ], 'FirstEvaluationStarted' => [ 'shape' => 'Boolean', ], ], ], 'ConfigRuleEvaluationStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigRuleEvaluationStatus', ], ], 'ConfigRuleName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'ConfigRuleNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'StringWithCharLimit64', ], 'max' => 25, 'min' => 0, ], 'ConfigRuleState' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DELETING', 'DELETING_RESULTS', 'EVALUATING', ], ], 'ConfigRules' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigRule', ], ], 'ConfigSnapshotDeliveryProperties' => [ 'type' => 'structure', 'members' => [ 'deliveryFrequency' => [ 'shape' => 'MaximumExecutionFrequency', ], ], ], 'ConfigStreamDeliveryInfo' => [ 'type' => 'structure', 'members' => [ 'lastStatus' => [ 'shape' => 'DeliveryStatus', ], 'lastErrorCode' => [ 'shape' => 'String', ], 'lastErrorMessage' => [ 'shape' => 'String', ], 'lastStatusChangeTime' => [ 'shape' => 'Date', ], ], ], 'Configuration' => [ 'type' => 'string', ], 'ConfigurationAggregator' => [ 'type' => 'structure', 'members' => [ 'ConfigurationAggregatorName' => [ 'shape' => 'ConfigurationAggregatorName', ], 'ConfigurationAggregatorArn' => [ 'shape' => 'ConfigurationAggregatorArn', ], 'AccountAggregationSources' => [ 'shape' => 'AccountAggregationSourceList', ], 'OrganizationAggregationSource' => [ 'shape' => 'OrganizationAggregationSource', ], 'CreationTime' => [ 'shape' => 'Date', ], 'LastUpdatedTime' => [ 'shape' => 'Date', ], ], ], 'ConfigurationAggregatorArn' => [ 'type' => 'string', 'pattern' => 'arn:aws[a-z\\-]*:config:[a-z\\-\\d]+:\\d+:config-aggregator/config-aggregator-[a-z\\d]+', ], 'ConfigurationAggregatorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationAggregator', ], ], 'ConfigurationAggregatorName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[\\w\\-]+', ], 'ConfigurationAggregatorNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationAggregatorName', ], 'max' => 10, 'min' => 0, ], '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', ], 'resourceName' => [ 'shape' => 'ResourceName', ], 'awsRegion' => [ 'shape' => 'AwsRegion', ], 'availabilityZone' => [ 'shape' => 'AvailabilityZone', ], 'resourceCreationTime' => [ 'shape' => 'ResourceCreationTime', ], 'tags' => [ 'shape' => 'Tags', ], 'relatedEvents' => [ 'shape' => 'RelatedEventList', ], 'relationships' => [ 'shape' => 'RelationshipList', ], 'configuration' => [ 'shape' => 'Configuration', ], 'supplementaryConfiguration' => [ 'shape' => 'SupplementaryConfiguration', ], ], ], 'ConfigurationItemCaptureTime' => [ 'type' => 'timestamp', ], 'ConfigurationItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationItem', ], ], 'ConfigurationItemMD5Hash' => [ 'type' => 'string', ], 'ConfigurationItemStatus' => [ 'type' => 'string', 'enum' => [ 'OK', 'ResourceDiscovered', 'ResourceNotRecorded', 'ResourceDeleted', 'ResourceDeletedNotRecorded', ], ], 'ConfigurationRecorder' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'RecorderName', ], 'roleARN' => [ 'shape' => 'String', ], 'recordingGroup' => [ 'shape' => 'RecordingGroup', ], ], ], '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', ], 'DeleteAggregationAuthorizationRequest' => [ 'type' => 'structure', 'required' => [ 'AuthorizedAccountId', 'AuthorizedAwsRegion', ], 'members' => [ 'AuthorizedAccountId' => [ 'shape' => 'AccountId', ], 'AuthorizedAwsRegion' => [ 'shape' => 'AwsRegion', ], ], ], 'DeleteConfigRuleRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigRuleName', ], 'members' => [ 'ConfigRuleName' => [ 'shape' => 'StringWithCharLimit64', ], ], ], 'DeleteConfigurationAggregatorRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationAggregatorName', ], 'members' => [ 'ConfigurationAggregatorName' => [ 'shape' => 'ConfigurationAggregatorName', ], ], ], 'DeleteConfigurationRecorderRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationRecorderName', ], 'members' => [ 'ConfigurationRecorderName' => [ 'shape' => 'RecorderName', ], ], ], 'DeleteDeliveryChannelRequest' => [ 'type' => 'structure', 'required' => [ 'DeliveryChannelName', ], 'members' => [ 'DeliveryChannelName' => [ 'shape' => 'ChannelName', ], ], ], 'DeleteEvaluationResultsRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigRuleName', ], 'members' => [ 'ConfigRuleName' => [ 'shape' => 'StringWithCharLimit64', ], ], ], 'DeleteEvaluationResultsResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeletePendingAggregationRequestRequest' => [ 'type' => 'structure', 'required' => [ 'RequesterAccountId', 'RequesterAwsRegion', ], 'members' => [ 'RequesterAccountId' => [ 'shape' => 'AccountId', ], 'RequesterAwsRegion' => [ 'shape' => 'AwsRegion', ], ], ], 'DeleteRemediationConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigRuleName', ], 'members' => [ 'ConfigRuleName' => [ 'shape' => 'StringWithCharLimit64', ], 'ResourceType' => [ 'shape' => 'String', ], ], ], 'DeleteRemediationConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteRetentionConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'RetentionConfigurationName', ], 'members' => [ 'RetentionConfigurationName' => [ 'shape' => 'RetentionConfigurationName', ], ], ], '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', ], 'configSnapshotDeliveryProperties' => [ 'shape' => 'ConfigSnapshotDeliveryProperties', ], ], ], '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', ], ], 'DescribeAggregateComplianceByConfigRulesRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationAggregatorName', ], 'members' => [ 'ConfigurationAggregatorName' => [ 'shape' => 'ConfigurationAggregatorName', ], 'Filters' => [ 'shape' => 'ConfigRuleComplianceFilters', ], 'Limit' => [ 'shape' => 'GroupByAPILimit', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeAggregateComplianceByConfigRulesResponse' => [ 'type' => 'structure', 'members' => [ 'AggregateComplianceByConfigRules' => [ 'shape' => 'AggregateComplianceByConfigRuleList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeAggregationAuthorizationsRequest' => [ 'type' => 'structure', 'members' => [ 'Limit' => [ 'shape' => 'Limit', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeAggregationAuthorizationsResponse' => [ 'type' => 'structure', 'members' => [ 'AggregationAuthorizations' => [ 'shape' => 'AggregationAuthorizationList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeComplianceByConfigRuleRequest' => [ 'type' => 'structure', 'members' => [ 'ConfigRuleNames' => [ 'shape' => 'ConfigRuleNames', ], 'ComplianceTypes' => [ 'shape' => 'ComplianceTypes', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeComplianceByConfigRuleResponse' => [ 'type' => 'structure', 'members' => [ 'ComplianceByConfigRules' => [ 'shape' => 'ComplianceByConfigRules', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeComplianceByResourceRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'StringWithCharLimit256', ], 'ResourceId' => [ 'shape' => 'BaseResourceId', ], 'ComplianceTypes' => [ 'shape' => 'ComplianceTypes', ], 'Limit' => [ 'shape' => 'Limit', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeComplianceByResourceResponse' => [ 'type' => 'structure', 'members' => [ 'ComplianceByResources' => [ 'shape' => 'ComplianceByResources', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeConfigRuleEvaluationStatusRequest' => [ 'type' => 'structure', 'members' => [ 'ConfigRuleNames' => [ 'shape' => 'ConfigRuleNames', ], 'NextToken' => [ 'shape' => 'String', ], 'Limit' => [ 'shape' => 'RuleLimit', ], ], ], 'DescribeConfigRuleEvaluationStatusResponse' => [ 'type' => 'structure', 'members' => [ 'ConfigRulesEvaluationStatus' => [ 'shape' => 'ConfigRuleEvaluationStatusList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeConfigRulesRequest' => [ 'type' => 'structure', 'members' => [ 'ConfigRuleNames' => [ 'shape' => 'ConfigRuleNames', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeConfigRulesResponse' => [ 'type' => 'structure', 'members' => [ 'ConfigRules' => [ 'shape' => 'ConfigRules', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeConfigurationAggregatorSourcesStatusRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationAggregatorName', ], 'members' => [ 'ConfigurationAggregatorName' => [ 'shape' => 'ConfigurationAggregatorName', ], 'UpdateStatus' => [ 'shape' => 'AggregatedSourceStatusTypeList', ], 'NextToken' => [ 'shape' => 'String', ], 'Limit' => [ 'shape' => 'Limit', ], ], ], 'DescribeConfigurationAggregatorSourcesStatusResponse' => [ 'type' => 'structure', 'members' => [ 'AggregatedSourceStatusList' => [ 'shape' => 'AggregatedSourceStatusList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeConfigurationAggregatorsRequest' => [ 'type' => 'structure', 'members' => [ 'ConfigurationAggregatorNames' => [ 'shape' => 'ConfigurationAggregatorNameList', ], 'NextToken' => [ 'shape' => 'String', ], 'Limit' => [ 'shape' => 'Limit', ], ], ], 'DescribeConfigurationAggregatorsResponse' => [ 'type' => 'structure', 'members' => [ 'ConfigurationAggregators' => [ 'shape' => 'ConfigurationAggregatorList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], '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', ], ], ], 'DescribePendingAggregationRequestsLimit' => [ 'type' => 'integer', 'max' => 20, 'min' => 0, ], 'DescribePendingAggregationRequestsRequest' => [ 'type' => 'structure', 'members' => [ 'Limit' => [ 'shape' => 'DescribePendingAggregationRequestsLimit', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribePendingAggregationRequestsResponse' => [ 'type' => 'structure', 'members' => [ 'PendingAggregationRequests' => [ 'shape' => 'PendingAggregationRequestList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeRemediationConfigurationsRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigRuleNames', ], 'members' => [ 'ConfigRuleNames' => [ 'shape' => 'ConfigRuleNames', ], ], ], 'DescribeRemediationConfigurationsResponse' => [ 'type' => 'structure', 'members' => [ 'RemediationConfigurations' => [ 'shape' => 'RemediationConfigurations', ], ], ], 'DescribeRemediationExecutionStatusRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigRuleName', ], 'members' => [ 'ConfigRuleName' => [ 'shape' => 'StringWithCharLimit64', ], 'ResourceKeys' => [ 'shape' => 'ResourceKeys', ], 'Limit' => [ 'shape' => 'Limit', ], 'NextToken' => [ 'shape' => 'StringWithCharLimit256', ], ], ], 'DescribeRemediationExecutionStatusResponse' => [ 'type' => 'structure', 'members' => [ 'RemediationExecutionStatuses' => [ 'shape' => 'RemediationExecutionStatuses', ], 'NextToken' => [ 'shape' => 'StringWithCharLimit256', ], ], ], 'DescribeRetentionConfigurationsRequest' => [ 'type' => 'structure', 'members' => [ 'RetentionConfigurationNames' => [ 'shape' => 'RetentionConfigurationNameList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeRetentionConfigurationsResponse' => [ 'type' => 'structure', 'members' => [ 'RetentionConfigurations' => [ 'shape' => 'RetentionConfigurationList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DiscoveredResourceIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AggregateResourceIdentifier', ], ], 'EarlierTime' => [ 'type' => 'timestamp', ], 'EmptiableStringWithCharLimit256' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'Evaluation' => [ 'type' => 'structure', 'required' => [ 'ComplianceResourceType', 'ComplianceResourceId', 'ComplianceType', 'OrderingTimestamp', ], 'members' => [ 'ComplianceResourceType' => [ 'shape' => 'StringWithCharLimit256', ], 'ComplianceResourceId' => [ 'shape' => 'BaseResourceId', ], 'ComplianceType' => [ 'shape' => 'ComplianceType', ], 'Annotation' => [ 'shape' => 'StringWithCharLimit256', ], 'OrderingTimestamp' => [ 'shape' => 'OrderingTimestamp', ], ], ], 'EvaluationResult' => [ 'type' => 'structure', 'members' => [ 'EvaluationResultIdentifier' => [ 'shape' => 'EvaluationResultIdentifier', ], 'ComplianceType' => [ 'shape' => 'ComplianceType', ], 'ResultRecordedTime' => [ 'shape' => 'Date', ], 'ConfigRuleInvokedTime' => [ 'shape' => 'Date', ], 'Annotation' => [ 'shape' => 'StringWithCharLimit256', ], 'ResultToken' => [ 'shape' => 'String', ], ], ], 'EvaluationResultIdentifier' => [ 'type' => 'structure', 'members' => [ 'EvaluationResultQualifier' => [ 'shape' => 'EvaluationResultQualifier', ], 'OrderingTimestamp' => [ 'shape' => 'Date', ], ], ], 'EvaluationResultQualifier' => [ 'type' => 'structure', 'members' => [ 'ConfigRuleName' => [ 'shape' => 'StringWithCharLimit64', ], 'ResourceType' => [ 'shape' => 'StringWithCharLimit256', ], 'ResourceId' => [ 'shape' => 'BaseResourceId', ], ], ], 'EvaluationResults' => [ 'type' => 'list', 'member' => [ 'shape' => 'EvaluationResult', ], ], 'Evaluations' => [ 'type' => 'list', 'member' => [ 'shape' => 'Evaluation', ], 'max' => 100, 'min' => 0, ], 'EventSource' => [ 'type' => 'string', 'enum' => [ 'aws.config', ], ], 'Expression' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, ], 'FailedRemediationBatch' => [ 'type' => 'structure', 'members' => [ 'FailureMessage' => [ 'shape' => 'String', ], 'FailedItems' => [ 'shape' => 'RemediationConfigurations', ], ], ], 'FailedRemediationBatches' => [ 'type' => 'list', 'member' => [ 'shape' => 'FailedRemediationBatch', ], ], 'FieldInfo' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'FieldName', ], ], ], 'FieldInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FieldInfo', ], ], 'FieldName' => [ 'type' => 'string', ], 'GetAggregateComplianceDetailsByConfigRuleRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationAggregatorName', 'ConfigRuleName', 'AccountId', 'AwsRegion', ], 'members' => [ 'ConfigurationAggregatorName' => [ 'shape' => 'ConfigurationAggregatorName', ], 'ConfigRuleName' => [ 'shape' => 'ConfigRuleName', ], 'AccountId' => [ 'shape' => 'AccountId', ], 'AwsRegion' => [ 'shape' => 'AwsRegion', ], 'ComplianceType' => [ 'shape' => 'ComplianceType', ], 'Limit' => [ 'shape' => 'Limit', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetAggregateComplianceDetailsByConfigRuleResponse' => [ 'type' => 'structure', 'members' => [ 'AggregateEvaluationResults' => [ 'shape' => 'AggregateEvaluationResultList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetAggregateConfigRuleComplianceSummaryRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationAggregatorName', ], 'members' => [ 'ConfigurationAggregatorName' => [ 'shape' => 'ConfigurationAggregatorName', ], 'Filters' => [ 'shape' => 'ConfigRuleComplianceSummaryFilters', ], 'GroupByKey' => [ 'shape' => 'ConfigRuleComplianceSummaryGroupKey', ], 'Limit' => [ 'shape' => 'GroupByAPILimit', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetAggregateConfigRuleComplianceSummaryResponse' => [ 'type' => 'structure', 'members' => [ 'GroupByKey' => [ 'shape' => 'StringWithCharLimit256', ], 'AggregateComplianceCounts' => [ 'shape' => 'AggregateComplianceCountList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetAggregateDiscoveredResourceCountsRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationAggregatorName', ], 'members' => [ 'ConfigurationAggregatorName' => [ 'shape' => 'ConfigurationAggregatorName', ], 'Filters' => [ 'shape' => 'ResourceCountFilters', ], 'GroupByKey' => [ 'shape' => 'ResourceCountGroupKey', ], 'Limit' => [ 'shape' => 'GroupByAPILimit', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetAggregateDiscoveredResourceCountsResponse' => [ 'type' => 'structure', 'required' => [ 'TotalDiscoveredResources', ], 'members' => [ 'TotalDiscoveredResources' => [ 'shape' => 'Long', ], 'GroupByKey' => [ 'shape' => 'StringWithCharLimit256', ], 'GroupedResourceCounts' => [ 'shape' => 'GroupedResourceCountList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetAggregateResourceConfigRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationAggregatorName', 'ResourceIdentifier', ], 'members' => [ 'ConfigurationAggregatorName' => [ 'shape' => 'ConfigurationAggregatorName', ], 'ResourceIdentifier' => [ 'shape' => 'AggregateResourceIdentifier', ], ], ], 'GetAggregateResourceConfigResponse' => [ 'type' => 'structure', 'members' => [ 'ConfigurationItem' => [ 'shape' => 'ConfigurationItem', ], ], ], 'GetComplianceDetailsByConfigRuleRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigRuleName', ], 'members' => [ 'ConfigRuleName' => [ 'shape' => 'StringWithCharLimit64', ], 'ComplianceTypes' => [ 'shape' => 'ComplianceTypes', ], 'Limit' => [ 'shape' => 'Limit', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetComplianceDetailsByConfigRuleResponse' => [ 'type' => 'structure', 'members' => [ 'EvaluationResults' => [ 'shape' => 'EvaluationResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetComplianceDetailsByResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceType', 'ResourceId', ], 'members' => [ 'ResourceType' => [ 'shape' => 'StringWithCharLimit256', ], 'ResourceId' => [ 'shape' => 'BaseResourceId', ], 'ComplianceTypes' => [ 'shape' => 'ComplianceTypes', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'GetComplianceDetailsByResourceResponse' => [ 'type' => 'structure', 'members' => [ 'EvaluationResults' => [ 'shape' => 'EvaluationResults', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'GetComplianceSummaryByConfigRuleResponse' => [ 'type' => 'structure', 'members' => [ 'ComplianceSummary' => [ 'shape' => 'ComplianceSummary', ], ], ], 'GetComplianceSummaryByResourceTypeRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceTypes' => [ 'shape' => 'ResourceTypes', ], ], ], 'GetComplianceSummaryByResourceTypeResponse' => [ 'type' => 'structure', 'members' => [ 'ComplianceSummariesByResourceType' => [ 'shape' => 'ComplianceSummariesByResourceType', ], ], ], 'GetDiscoveredResourceCountsRequest' => [ 'type' => 'structure', 'members' => [ 'resourceTypes' => [ 'shape' => 'ResourceTypes', ], 'limit' => [ 'shape' => 'Limit', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetDiscoveredResourceCountsResponse' => [ 'type' => 'structure', 'members' => [ 'totalDiscoveredResources' => [ 'shape' => 'Long', ], 'resourceCounts' => [ 'shape' => 'ResourceCounts', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], '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', ], ], ], 'GroupByAPILimit' => [ 'type' => 'integer', 'max' => 1000, 'min' => 0, ], 'GroupedResourceCount' => [ 'type' => 'structure', 'required' => [ 'GroupName', 'ResourceCount', ], 'members' => [ 'GroupName' => [ 'shape' => 'StringWithCharLimit256', ], 'ResourceCount' => [ 'shape' => 'Long', ], ], ], 'GroupedResourceCountList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GroupedResourceCount', ], ], 'IncludeGlobalResourceTypes' => [ 'type' => 'boolean', ], 'InsufficientDeliveryPolicyException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InsufficientPermissionsException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Integer' => [ 'type' => 'integer', ], 'InvalidConfigurationRecorderNameException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidDeliveryChannelNameException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidExpressionException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidLimitException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidParameterValueException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidRecordingGroupException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidResultTokenException' => [ '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', 'max' => 100, 'min' => 0, ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ListAggregateDiscoveredResourcesRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationAggregatorName', 'ResourceType', ], 'members' => [ 'ConfigurationAggregatorName' => [ 'shape' => 'ConfigurationAggregatorName', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], 'Filters' => [ 'shape' => 'ResourceFilters', ], 'Limit' => [ 'shape' => 'Limit', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListAggregateDiscoveredResourcesResponse' => [ 'type' => 'structure', 'members' => [ 'ResourceIdentifiers' => [ 'shape' => 'DiscoveredResourceIdentifierList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDiscoveredResourcesRequest' => [ 'type' => 'structure', 'required' => [ 'resourceType', ], 'members' => [ 'resourceType' => [ 'shape' => 'ResourceType', ], 'resourceIds' => [ 'shape' => 'ResourceIdList', ], 'resourceName' => [ 'shape' => 'ResourceName', ], 'limit' => [ 'shape' => 'Limit', ], 'includeDeletedResources' => [ 'shape' => 'Boolean', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDiscoveredResourcesResponse' => [ 'type' => 'structure', 'members' => [ 'resourceIdentifiers' => [ 'shape' => 'ResourceIdentifierList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'AmazonResourceName', ], 'Limit' => [ 'shape' => 'Limit', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'Long' => [ 'type' => 'long', ], 'MaxNumberOfConfigRulesExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'MaxNumberOfConfigurationRecordersExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'MaxNumberOfDeliveryChannelsExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'MaxNumberOfRetentionConfigurationsExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'MaximumExecutionFrequency' => [ 'type' => 'string', 'enum' => [ 'One_Hour', 'Three_Hours', 'Six_Hours', 'Twelve_Hours', 'TwentyFour_Hours', ], ], 'MessageType' => [ 'type' => 'string', 'enum' => [ 'ConfigurationItemChangeNotification', 'ConfigurationSnapshotDeliveryCompleted', 'ScheduledNotification', 'OversizedConfigurationItemChangeNotification', ], ], 'Name' => [ 'type' => 'string', ], 'NextToken' => [ 'type' => 'string', ], 'NoAvailableConfigurationRecorderException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'NoAvailableDeliveryChannelException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'NoAvailableOrganizationException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'NoRunningConfigurationRecorderException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'NoSuchBucketException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'NoSuchConfigRuleException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'NoSuchConfigurationAggregatorException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'NoSuchConfigurationRecorderException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'NoSuchDeliveryChannelException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'NoSuchRemediationConfigurationException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'NoSuchRetentionConfigurationException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'OrderingTimestamp' => [ 'type' => 'timestamp', ], 'OrganizationAccessDeniedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'OrganizationAggregationSource' => [ 'type' => 'structure', 'required' => [ 'RoleArn', ], 'members' => [ 'RoleArn' => [ 'shape' => 'String', ], 'AwsRegions' => [ 'shape' => 'AggregatorRegionList', ], 'AllAwsRegions' => [ 'shape' => 'Boolean', ], ], ], 'OrganizationAllFeaturesNotEnabledException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'OversizedConfigurationItemException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Owner' => [ 'type' => 'string', 'enum' => [ 'CUSTOM_LAMBDA', 'AWS', ], ], 'PendingAggregationRequest' => [ 'type' => 'structure', 'members' => [ 'RequesterAccountId' => [ 'shape' => 'AccountId', ], 'RequesterAwsRegion' => [ 'shape' => 'AwsRegion', ], ], ], 'PendingAggregationRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PendingAggregationRequest', ], ], 'PutAggregationAuthorizationRequest' => [ 'type' => 'structure', 'required' => [ 'AuthorizedAccountId', 'AuthorizedAwsRegion', ], 'members' => [ 'AuthorizedAccountId' => [ 'shape' => 'AccountId', ], 'AuthorizedAwsRegion' => [ 'shape' => 'AwsRegion', ], ], ], 'PutAggregationAuthorizationResponse' => [ 'type' => 'structure', 'members' => [ 'AggregationAuthorization' => [ 'shape' => 'AggregationAuthorization', ], ], ], 'PutConfigRuleRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigRule', ], 'members' => [ 'ConfigRule' => [ 'shape' => 'ConfigRule', ], ], ], 'PutConfigurationAggregatorRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationAggregatorName', ], 'members' => [ 'ConfigurationAggregatorName' => [ 'shape' => 'ConfigurationAggregatorName', ], 'AccountAggregationSources' => [ 'shape' => 'AccountAggregationSourceList', ], 'OrganizationAggregationSource' => [ 'shape' => 'OrganizationAggregationSource', ], ], ], 'PutConfigurationAggregatorResponse' => [ 'type' => 'structure', 'members' => [ 'ConfigurationAggregator' => [ 'shape' => 'ConfigurationAggregator', ], ], ], 'PutConfigurationRecorderRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationRecorder', ], 'members' => [ 'ConfigurationRecorder' => [ 'shape' => 'ConfigurationRecorder', ], ], ], 'PutDeliveryChannelRequest' => [ 'type' => 'structure', 'required' => [ 'DeliveryChannel', ], 'members' => [ 'DeliveryChannel' => [ 'shape' => 'DeliveryChannel', ], ], ], 'PutEvaluationsRequest' => [ 'type' => 'structure', 'required' => [ 'ResultToken', ], 'members' => [ 'Evaluations' => [ 'shape' => 'Evaluations', ], 'ResultToken' => [ 'shape' => 'String', ], 'TestMode' => [ 'shape' => 'Boolean', ], ], ], 'PutEvaluationsResponse' => [ 'type' => 'structure', 'members' => [ 'FailedEvaluations' => [ 'shape' => 'Evaluations', ], ], ], 'PutRemediationConfigurationsRequest' => [ 'type' => 'structure', 'required' => [ 'RemediationConfigurations', ], 'members' => [ 'RemediationConfigurations' => [ 'shape' => 'RemediationConfigurations', ], ], ], 'PutRemediationConfigurationsResponse' => [ 'type' => 'structure', 'members' => [ 'FailedBatches' => [ 'shape' => 'FailedRemediationBatches', ], ], ], 'PutRetentionConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'RetentionPeriodInDays', ], 'members' => [ 'RetentionPeriodInDays' => [ 'shape' => 'RetentionPeriodInDays', ], ], ], 'PutRetentionConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'RetentionConfiguration' => [ 'shape' => 'RetentionConfiguration', ], ], ], 'QueryInfo' => [ 'type' => 'structure', 'members' => [ 'SelectFields' => [ 'shape' => 'FieldInfoList', ], ], ], 'RecorderName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'RecorderStatus' => [ 'type' => 'string', 'enum' => [ 'Pending', 'Success', 'Failure', ], ], 'RecordingGroup' => [ 'type' => 'structure', 'members' => [ 'allSupported' => [ 'shape' => 'AllSupported', ], 'includeGlobalResourceTypes' => [ 'shape' => 'IncludeGlobalResourceTypes', ], 'resourceTypes' => [ 'shape' => 'ResourceTypeList', ], ], ], 'ReevaluateConfigRuleNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'StringWithCharLimit64', ], 'max' => 25, 'min' => 1, ], 'RelatedEvent' => [ 'type' => 'string', ], 'RelatedEventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RelatedEvent', ], ], 'Relationship' => [ 'type' => 'structure', 'members' => [ 'resourceType' => [ 'shape' => 'ResourceType', ], 'resourceId' => [ 'shape' => 'ResourceId', ], 'resourceName' => [ 'shape' => 'ResourceName', ], 'relationshipName' => [ 'shape' => 'RelationshipName', ], ], ], 'RelationshipList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Relationship', ], ], 'RelationshipName' => [ 'type' => 'string', ], 'RemediationConfiguration' => [ 'type' => 'structure', 'required' => [ 'ConfigRuleName', 'TargetType', 'TargetId', ], 'members' => [ 'ConfigRuleName' => [ 'shape' => 'StringWithCharLimit64', ], 'TargetType' => [ 'shape' => 'RemediationTargetType', ], 'TargetId' => [ 'shape' => 'StringWithCharLimit256', ], 'TargetVersion' => [ 'shape' => 'String', ], 'Parameters' => [ 'shape' => 'RemediationParameters', ], 'ResourceType' => [ 'shape' => 'String', ], ], ], 'RemediationConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'RemediationConfiguration', ], 'max' => 25, 'min' => 0, ], 'RemediationExecutionState' => [ 'type' => 'string', 'enum' => [ 'QUEUED', 'IN_PROGRESS', 'SUCCEEDED', 'FAILED', ], ], 'RemediationExecutionStatus' => [ 'type' => 'structure', 'members' => [ 'ResourceKey' => [ 'shape' => 'ResourceKey', ], 'State' => [ 'shape' => 'RemediationExecutionState', ], 'StepDetails' => [ 'shape' => 'RemediationExecutionSteps', ], 'InvocationTime' => [ 'shape' => 'Date', ], 'LastUpdatedTime' => [ 'shape' => 'Date', ], ], ], 'RemediationExecutionStatuses' => [ 'type' => 'list', 'member' => [ 'shape' => 'RemediationExecutionStatus', ], ], 'RemediationExecutionStep' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'State' => [ 'shape' => 'RemediationExecutionStepState', ], 'ErrorMessage' => [ 'shape' => 'String', ], 'StartTime' => [ 'shape' => 'Date', ], 'StopTime' => [ 'shape' => 'Date', ], ], ], 'RemediationExecutionStepState' => [ 'type' => 'string', 'enum' => [ 'SUCCEEDED', 'PENDING', 'FAILED', ], ], 'RemediationExecutionSteps' => [ 'type' => 'list', 'member' => [ 'shape' => 'RemediationExecutionStep', ], ], 'RemediationParameterValue' => [ 'type' => 'structure', 'members' => [ 'ResourceValue' => [ 'shape' => 'ResourceValue', ], 'StaticValue' => [ 'shape' => 'StaticValue', ], ], ], 'RemediationParameters' => [ 'type' => 'map', 'key' => [ 'shape' => 'StringWithCharLimit256', ], 'value' => [ 'shape' => 'RemediationParameterValue', ], 'max' => 25, 'min' => 0, ], 'RemediationTargetType' => [ 'type' => 'string', 'enum' => [ 'SSM_DOCUMENT', ], ], 'ResourceCount' => [ 'type' => 'structure', 'members' => [ 'resourceType' => [ 'shape' => 'ResourceType', ], 'count' => [ 'shape' => 'Long', ], ], ], 'ResourceCountFilters' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ResourceType', ], 'AccountId' => [ 'shape' => 'AccountId', ], 'Region' => [ 'shape' => 'AwsRegion', ], ], ], 'ResourceCountGroupKey' => [ 'type' => 'string', 'enum' => [ 'RESOURCE_TYPE', 'ACCOUNT_ID', 'AWS_REGION', ], ], 'ResourceCounts' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceCount', ], ], 'ResourceCreationTime' => [ 'type' => 'timestamp', ], 'ResourceDeletionTime' => [ 'type' => 'timestamp', ], 'ResourceFilters' => [ 'type' => 'structure', 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'ResourceId' => [ 'shape' => 'ResourceId', ], 'ResourceName' => [ 'shape' => 'ResourceName', ], 'Region' => [ 'shape' => 'AwsRegion', ], ], ], 'ResourceId' => [ 'type' => 'string', 'max' => 768, 'min' => 1, ], 'ResourceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceId', ], ], 'ResourceIdentifier' => [ 'type' => 'structure', 'members' => [ 'resourceType' => [ 'shape' => 'ResourceType', ], 'resourceId' => [ 'shape' => 'ResourceId', ], 'resourceName' => [ 'shape' => 'ResourceName', ], 'resourceDeletionTime' => [ 'shape' => 'ResourceDeletionTime', ], ], ], 'ResourceIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceIdentifier', ], ], 'ResourceIdentifiersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AggregateResourceIdentifier', ], 'max' => 100, 'min' => 1, ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ResourceKey' => [ 'type' => 'structure', 'required' => [ 'resourceType', 'resourceId', ], 'members' => [ 'resourceType' => [ 'shape' => 'ResourceType', ], 'resourceId' => [ 'shape' => 'ResourceId', ], ], ], 'ResourceKeys' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceKey', ], 'max' => 100, 'min' => 1, ], 'ResourceName' => [ 'type' => 'string', ], 'ResourceNotDiscoveredException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ResourceType' => [ 'type' => 'string', 'enum' => [ 'AWS::EC2::CustomerGateway', 'AWS::EC2::EIP', 'AWS::EC2::Host', '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', 'AWS::IAM::Group', 'AWS::IAM::Policy', 'AWS::IAM::Role', 'AWS::IAM::User', 'AWS::ACM::Certificate', 'AWS::RDS::DBInstance', 'AWS::RDS::DBSubnetGroup', 'AWS::RDS::DBSecurityGroup', 'AWS::RDS::DBSnapshot', 'AWS::RDS::EventSubscription', 'AWS::ElasticLoadBalancingV2::LoadBalancer', 'AWS::S3::Bucket', 'AWS::SSM::ManagedInstanceInventory', 'AWS::Redshift::Cluster', 'AWS::Redshift::ClusterSnapshot', 'AWS::Redshift::ClusterParameterGroup', 'AWS::Redshift::ClusterSecurityGroup', 'AWS::Redshift::ClusterSubnetGroup', 'AWS::Redshift::EventSubscription', 'AWS::CloudWatch::Alarm', 'AWS::CloudFormation::Stack', 'AWS::DynamoDB::Table', 'AWS::AutoScaling::AutoScalingGroup', 'AWS::AutoScaling::LaunchConfiguration', 'AWS::AutoScaling::ScalingPolicy', 'AWS::AutoScaling::ScheduledAction', 'AWS::CodeBuild::Project', 'AWS::WAF::RateBasedRule', 'AWS::WAF::Rule', 'AWS::WAF::WebACL', 'AWS::WAFRegional::RateBasedRule', 'AWS::WAFRegional::Rule', 'AWS::WAFRegional::WebACL', 'AWS::CloudFront::Distribution', 'AWS::CloudFront::StreamingDistribution', 'AWS::WAF::RuleGroup', 'AWS::WAFRegional::RuleGroup', 'AWS::Lambda::Function', 'AWS::ElasticBeanstalk::Application', 'AWS::ElasticBeanstalk::ApplicationVersion', 'AWS::ElasticBeanstalk::Environment', 'AWS::ElasticLoadBalancing::LoadBalancer', 'AWS::XRay::EncryptionConfig', 'AWS::SSM::AssociationCompliance', 'AWS::SSM::PatchCompliance', 'AWS::Shield::Protection', 'AWS::ShieldRegional::Protection', 'AWS::Config::ResourceCompliance', 'AWS::CodePipeline::Pipeline', ], ], 'ResourceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceType', ], ], 'ResourceTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'StringWithCharLimit256', ], 'max' => 20, 'min' => 0, ], 'ResourceValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'ResourceValueType', ], ], ], 'ResourceValueType' => [ 'type' => 'string', 'enum' => [ 'RESOURCE_ID', ], ], 'Results' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'RetentionConfiguration' => [ 'type' => 'structure', 'required' => [ 'Name', 'RetentionPeriodInDays', ], 'members' => [ 'Name' => [ 'shape' => 'RetentionConfigurationName', ], 'RetentionPeriodInDays' => [ 'shape' => 'RetentionPeriodInDays', ], ], ], 'RetentionConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RetentionConfiguration', ], ], 'RetentionConfigurationName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[\\w\\-]+', ], 'RetentionConfigurationNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RetentionConfigurationName', ], 'max' => 1, 'min' => 0, ], 'RetentionPeriodInDays' => [ 'type' => 'integer', 'max' => 2557, 'min' => 30, ], 'RuleLimit' => [ 'type' => 'integer', 'max' => 50, 'min' => 0, ], 'Scope' => [ 'type' => 'structure', 'members' => [ 'ComplianceResourceTypes' => [ 'shape' => 'ComplianceResourceTypes', ], 'TagKey' => [ 'shape' => 'StringWithCharLimit128', ], 'TagValue' => [ 'shape' => 'StringWithCharLimit256', ], 'ComplianceResourceId' => [ 'shape' => 'BaseResourceId', ], ], ], 'SelectResourceConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Expression', ], 'members' => [ 'Expression' => [ 'shape' => 'Expression', ], 'Limit' => [ 'shape' => 'Limit', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'SelectResourceConfigResponse' => [ 'type' => 'structure', 'members' => [ 'Results' => [ 'shape' => 'Results', ], 'QueryInfo' => [ 'shape' => 'QueryInfo', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'Source' => [ 'type' => 'structure', 'required' => [ 'Owner', 'SourceIdentifier', ], 'members' => [ 'Owner' => [ 'shape' => 'Owner', ], 'SourceIdentifier' => [ 'shape' => 'StringWithCharLimit256', ], 'SourceDetails' => [ 'shape' => 'SourceDetails', ], ], ], 'SourceDetail' => [ 'type' => 'structure', 'members' => [ 'EventSource' => [ 'shape' => 'EventSource', ], 'MessageType' => [ 'shape' => 'MessageType', ], 'MaximumExecutionFrequency' => [ 'shape' => 'MaximumExecutionFrequency', ], ], ], 'SourceDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'SourceDetail', ], 'max' => 25, 'min' => 0, ], 'StartConfigRulesEvaluationRequest' => [ 'type' => 'structure', 'members' => [ 'ConfigRuleNames' => [ 'shape' => 'ReevaluateConfigRuleNames', ], ], ], 'StartConfigRulesEvaluationResponse' => [ 'type' => 'structure', 'members' => [], ], 'StartConfigurationRecorderRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationRecorderName', ], 'members' => [ 'ConfigurationRecorderName' => [ 'shape' => 'RecorderName', ], ], ], 'StartRemediationExecutionRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigRuleName', 'ResourceKeys', ], 'members' => [ 'ConfigRuleName' => [ 'shape' => 'StringWithCharLimit64', ], 'ResourceKeys' => [ 'shape' => 'ResourceKeys', ], ], ], 'StartRemediationExecutionResponse' => [ 'type' => 'structure', 'members' => [ 'FailureMessage' => [ 'shape' => 'String', ], 'FailedItems' => [ 'shape' => 'ResourceKeys', ], ], ], 'StaticParameterValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'StringWithCharLimit256', ], 'max' => 25, 'min' => 0, ], 'StaticValue' => [ 'type' => 'structure', 'members' => [ 'Values' => [ 'shape' => 'StaticParameterValues', ], ], ], 'StopConfigurationRecorderRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationRecorderName', ], 'members' => [ 'ConfigurationRecorderName' => [ 'shape' => 'RecorderName', ], ], ], 'String' => [ 'type' => 'string', ], 'StringWithCharLimit1024' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'StringWithCharLimit128' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'StringWithCharLimit256' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'StringWithCharLimit64' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'SupplementaryConfiguration' => [ 'type' => 'map', 'key' => [ 'shape' => 'SupplementaryConfigurationName', ], 'value' => [ 'shape' => 'SupplementaryConfigurationValue', ], ], 'SupplementaryConfigurationName' => [ 'type' => 'string', ], 'SupplementaryConfigurationValue' => [ 'type' => 'string', ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 50, 'min' => 1, ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 50, 'min' => 1, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Tags', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'AmazonResourceName', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'Tags' => [ 'type' => 'map', 'key' => [ 'shape' => 'Name', ], 'value' => [ 'shape' => 'Value', ], ], 'TooManyTagsException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'UnprocessedResourceIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AggregateResourceIdentifier', ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagKeys', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'AmazonResourceName', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'ValidationException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Value' => [ 'type' => 'string', ], 'Version' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/config/2014-11-12/paginators-1.json.php b/lib/aws/Aws/data/config/2014-11-12/paginators-1.json.php new file mode 100644 index 0000000..4bb8906 --- /dev/null +++ b/lib/aws/Aws/data/config/2014-11-12/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/config/2014-11-12/paginators-1.json +return [ 'pagination' => [ 'DescribeRemediationExecutionStatus' => [ 'input_token' => 'NextToken', 'limit_key' => 'Limit', 'output_token' => 'NextToken', 'result_key' => 'RemediationExecutionStatuses', ], 'GetResourceConfigHistory' => [ 'input_token' => 'nextToken', 'limit_key' => 'limit', 'output_token' => 'nextToken', 'result_key' => 'configurationItems', ], ],]; diff --git a/lib/aws/Aws/data/config/2014-11-12/smoke.json.php b/lib/aws/Aws/data/config/2014-11-12/smoke.json.php new file mode 100644 index 0000000..97dc5a2 --- /dev/null +++ b/lib/aws/Aws/data/config/2014-11-12/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/config/2014-11-12/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeConfigurationRecorders', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'GetResourceConfigHistory', 'input' => [ 'resourceType' => 'fake-type', 'resourceId' => 'fake-id', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/connect/2017-08-08/api-2.json.php b/lib/aws/Aws/data/connect/2017-08-08/api-2.json.php new file mode 100644 index 0000000..97d349e --- /dev/null +++ b/lib/aws/Aws/data/connect/2017-08-08/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/connect/2017-08-08/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-08-08', 'endpointPrefix' => 'connect', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'Amazon Connect', 'serviceFullName' => 'Amazon Connect Service', 'serviceId' => 'Connect', 'signatureVersion' => 'v4', 'signingName' => 'connect', 'uid' => 'connect-2017-08-08', ], 'operations' => [ 'CreateUser' => [ 'name' => 'CreateUser', 'http' => [ 'method' => 'PUT', 'requestUri' => '/users/{InstanceId}', ], 'input' => [ 'shape' => 'CreateUserRequest', ], 'output' => [ 'shape' => 'CreateUserResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'DuplicateResourceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DeleteUser' => [ 'name' => 'DeleteUser', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/users/{InstanceId}/{UserId}', ], 'input' => [ 'shape' => 'DeleteUserRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DescribeUser' => [ 'name' => 'DescribeUser', 'http' => [ 'method' => 'GET', 'requestUri' => '/users/{InstanceId}/{UserId}', ], 'input' => [ 'shape' => 'DescribeUserRequest', ], 'output' => [ 'shape' => 'DescribeUserResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DescribeUserHierarchyGroup' => [ 'name' => 'DescribeUserHierarchyGroup', 'http' => [ 'method' => 'GET', 'requestUri' => '/user-hierarchy-groups/{InstanceId}/{HierarchyGroupId}', ], 'input' => [ 'shape' => 'DescribeUserHierarchyGroupRequest', ], 'output' => [ 'shape' => 'DescribeUserHierarchyGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DescribeUserHierarchyStructure' => [ 'name' => 'DescribeUserHierarchyStructure', 'http' => [ 'method' => 'GET', 'requestUri' => '/user-hierarchy-structure/{InstanceId}', ], 'input' => [ 'shape' => 'DescribeUserHierarchyStructureRequest', ], 'output' => [ 'shape' => 'DescribeUserHierarchyStructureResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'GetContactAttributes' => [ 'name' => 'GetContactAttributes', 'http' => [ 'method' => 'GET', 'requestUri' => '/contact/attributes/{InstanceId}/{InitialContactId}', ], 'input' => [ 'shape' => 'GetContactAttributesRequest', ], 'output' => [ 'shape' => 'GetContactAttributesResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'GetCurrentMetricData' => [ 'name' => 'GetCurrentMetricData', 'http' => [ 'method' => 'POST', 'requestUri' => '/metrics/current/{InstanceId}', ], 'input' => [ 'shape' => 'GetCurrentMetricDataRequest', ], 'output' => [ 'shape' => 'GetCurrentMetricDataResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'GetFederationToken' => [ 'name' => 'GetFederationToken', 'http' => [ 'method' => 'GET', 'requestUri' => '/user/federate/{InstanceId}', ], 'input' => [ 'shape' => 'GetFederationTokenRequest', ], 'output' => [ 'shape' => 'GetFederationTokenResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'UserNotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'DuplicateResourceException', ], ], ], 'GetMetricData' => [ 'name' => 'GetMetricData', 'http' => [ 'method' => 'POST', 'requestUri' => '/metrics/historical/{InstanceId}', ], 'input' => [ 'shape' => 'GetMetricDataRequest', ], 'output' => [ 'shape' => 'GetMetricDataResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListRoutingProfiles' => [ 'name' => 'ListRoutingProfiles', 'http' => [ 'method' => 'GET', 'requestUri' => '/routing-profiles-summary/{InstanceId}', ], 'input' => [ 'shape' => 'ListRoutingProfilesRequest', ], 'output' => [ 'shape' => 'ListRoutingProfilesResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'ListSecurityProfiles' => [ 'name' => 'ListSecurityProfiles', 'http' => [ 'method' => 'GET', 'requestUri' => '/security-profiles-summary/{InstanceId}', ], 'input' => [ 'shape' => 'ListSecurityProfilesRequest', ], 'output' => [ 'shape' => 'ListSecurityProfilesResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'ListUserHierarchyGroups' => [ 'name' => 'ListUserHierarchyGroups', 'http' => [ 'method' => 'GET', 'requestUri' => '/user-hierarchy-groups-summary/{InstanceId}', ], 'input' => [ 'shape' => 'ListUserHierarchyGroupsRequest', ], 'output' => [ 'shape' => 'ListUserHierarchyGroupsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'ListUsers' => [ 'name' => 'ListUsers', 'http' => [ 'method' => 'GET', 'requestUri' => '/users-summary/{InstanceId}', ], 'input' => [ 'shape' => 'ListUsersRequest', ], 'output' => [ 'shape' => 'ListUsersResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'StartOutboundVoiceContact' => [ 'name' => 'StartOutboundVoiceContact', 'http' => [ 'method' => 'PUT', 'requestUri' => '/contact/outbound-voice', ], 'input' => [ 'shape' => 'StartOutboundVoiceContactRequest', ], 'output' => [ 'shape' => 'StartOutboundVoiceContactResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'DestinationNotAllowedException', ], [ 'shape' => 'OutboundContactNotPermittedException', ], ], ], 'StopContact' => [ 'name' => 'StopContact', 'http' => [ 'method' => 'POST', 'requestUri' => '/contact/stop', ], 'input' => [ 'shape' => 'StopContactRequest', ], 'output' => [ 'shape' => 'StopContactResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ContactNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'UpdateContactAttributes' => [ 'name' => 'UpdateContactAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/contact/attributes', ], 'input' => [ 'shape' => 'UpdateContactAttributesRequest', ], 'output' => [ 'shape' => 'UpdateContactAttributesResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'UpdateUserHierarchy' => [ 'name' => 'UpdateUserHierarchy', 'http' => [ 'method' => 'POST', 'requestUri' => '/users/{InstanceId}/{UserId}/hierarchy', ], 'input' => [ 'shape' => 'UpdateUserHierarchyRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'UpdateUserIdentityInfo' => [ 'name' => 'UpdateUserIdentityInfo', 'http' => [ 'method' => 'POST', 'requestUri' => '/users/{InstanceId}/{UserId}/identity-info', ], 'input' => [ 'shape' => 'UpdateUserIdentityInfoRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'UpdateUserPhoneConfig' => [ 'name' => 'UpdateUserPhoneConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/users/{InstanceId}/{UserId}/phone-config', ], 'input' => [ 'shape' => 'UpdateUserPhoneConfigRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'UpdateUserRoutingProfile' => [ 'name' => 'UpdateUserRoutingProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/users/{InstanceId}/{UserId}/routing-profile', ], 'input' => [ 'shape' => 'UpdateUserRoutingProfileRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'UpdateUserSecurityProfiles' => [ 'name' => 'UpdateUserSecurityProfiles', 'http' => [ 'method' => 'POST', 'requestUri' => '/users/{InstanceId}/{UserId}/security-profiles', ], 'input' => [ 'shape' => 'UpdateUserSecurityProfilesRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceException', ], ], ], ], 'shapes' => [ 'ARN' => [ 'type' => 'string', ], 'AfterContactWorkTimeLimit' => [ 'type' => 'integer', 'min' => 0, ], 'AgentFirstName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'AgentLastName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'AgentUsername' => [ 'type' => 'string', 'max' => 20, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\_\\-\\.]+', ], 'AttributeName' => [ 'type' => 'string', 'max' => 32767, 'min' => 1, ], 'AttributeValue' => [ 'type' => 'string', 'max' => 32767, 'min' => 0, ], 'Attributes' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttributeName', ], 'value' => [ 'shape' => 'AttributeValue', ], ], 'AutoAccept' => [ 'type' => 'boolean', ], 'Channel' => [ 'type' => 'string', 'enum' => [ 'VOICE', ], ], 'Channels' => [ 'type' => 'list', 'member' => [ 'shape' => 'Channel', ], 'max' => 1, ], 'ClientToken' => [ 'type' => 'string', 'max' => 500, ], 'Comparison' => [ 'type' => 'string', 'enum' => [ 'LT', ], ], 'ContactFlowId' => [ 'type' => 'string', 'max' => 500, ], 'ContactId' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'ContactNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 410, ], 'exception' => true, ], 'CreateUserRequest' => [ 'type' => 'structure', 'required' => [ 'Username', 'PhoneConfig', 'SecurityProfileIds', 'RoutingProfileId', 'InstanceId', ], 'members' => [ 'Username' => [ 'shape' => 'AgentUsername', ], 'Password' => [ 'shape' => 'Password', ], 'IdentityInfo' => [ 'shape' => 'UserIdentityInfo', ], 'PhoneConfig' => [ 'shape' => 'UserPhoneConfig', ], 'DirectoryUserId' => [ 'shape' => 'DirectoryUserId', ], 'SecurityProfileIds' => [ 'shape' => 'SecurityProfileIds', ], 'RoutingProfileId' => [ 'shape' => 'RoutingProfileId', ], 'HierarchyGroupId' => [ 'shape' => 'HierarchyGroupId', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'location' => 'uri', 'locationName' => 'InstanceId', ], ], ], 'CreateUserResponse' => [ 'type' => 'structure', 'members' => [ 'UserId' => [ 'shape' => 'UserId', ], 'UserArn' => [ 'shape' => 'ARN', ], ], ], 'Credentials' => [ 'type' => 'structure', 'members' => [ 'AccessToken' => [ 'shape' => 'SecurityToken', ], 'AccessTokenExpiration' => [ 'shape' => 'timestamp', ], 'RefreshToken' => [ 'shape' => 'SecurityToken', ], 'RefreshTokenExpiration' => [ 'shape' => 'timestamp', ], ], ], 'CurrentMetric' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'CurrentMetricName', ], 'Unit' => [ 'shape' => 'Unit', ], ], ], 'CurrentMetricData' => [ 'type' => 'structure', 'members' => [ 'Metric' => [ 'shape' => 'CurrentMetric', ], 'Value' => [ 'shape' => 'Value', 'box' => true, ], ], ], 'CurrentMetricDataCollections' => [ 'type' => 'list', 'member' => [ 'shape' => 'CurrentMetricData', ], ], 'CurrentMetricName' => [ 'type' => 'string', 'enum' => [ 'AGENTS_ONLINE', 'AGENTS_AVAILABLE', 'AGENTS_ON_CALL', 'AGENTS_NON_PRODUCTIVE', 'AGENTS_AFTER_CONTACT_WORK', 'AGENTS_ERROR', 'AGENTS_STAFFED', 'CONTACTS_IN_QUEUE', 'OLDEST_CONTACT_AGE', 'CONTACTS_SCHEDULED', ], ], 'CurrentMetricResult' => [ 'type' => 'structure', 'members' => [ 'Dimensions' => [ 'shape' => 'Dimensions', ], 'Collections' => [ 'shape' => 'CurrentMetricDataCollections', ], ], ], 'CurrentMetricResults' => [ 'type' => 'list', 'member' => [ 'shape' => 'CurrentMetricResult', ], ], 'CurrentMetrics' => [ 'type' => 'list', 'member' => [ 'shape' => 'CurrentMetric', ], ], 'DeleteUserRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'UserId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'location' => 'uri', 'locationName' => 'InstanceId', ], 'UserId' => [ 'shape' => 'UserId', 'location' => 'uri', 'locationName' => 'UserId', ], ], ], 'DescribeUserHierarchyGroupRequest' => [ 'type' => 'structure', 'required' => [ 'HierarchyGroupId', 'InstanceId', ], 'members' => [ 'HierarchyGroupId' => [ 'shape' => 'HierarchyGroupId', 'location' => 'uri', 'locationName' => 'HierarchyGroupId', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'location' => 'uri', 'locationName' => 'InstanceId', ], ], ], 'DescribeUserHierarchyGroupResponse' => [ 'type' => 'structure', 'members' => [ 'HierarchyGroup' => [ 'shape' => 'HierarchyGroup', ], ], ], 'DescribeUserHierarchyStructureRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'location' => 'uri', 'locationName' => 'InstanceId', ], ], ], 'DescribeUserHierarchyStructureResponse' => [ 'type' => 'structure', 'members' => [ 'HierarchyStructure' => [ 'shape' => 'HierarchyStructure', ], ], ], 'DescribeUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserId', 'InstanceId', ], 'members' => [ 'UserId' => [ 'shape' => 'UserId', 'location' => 'uri', 'locationName' => 'UserId', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'location' => 'uri', 'locationName' => 'InstanceId', ], ], ], 'DescribeUserResponse' => [ 'type' => 'structure', 'members' => [ 'User' => [ 'shape' => 'User', ], ], ], 'DestinationNotAllowedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, ], 'Dimensions' => [ 'type' => 'structure', 'members' => [ 'Queue' => [ 'shape' => 'QueueReference', ], 'Channel' => [ 'shape' => 'Channel', ], ], ], 'DirectoryUserId' => [ 'type' => 'string', ], 'DuplicateResourceException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'Email' => [ 'type' => 'string', ], 'Filters' => [ 'type' => 'structure', 'members' => [ 'Queues' => [ 'shape' => 'Queues', ], 'Channels' => [ 'shape' => 'Channels', ], ], ], 'GetContactAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'InitialContactId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'location' => 'uri', 'locationName' => 'InstanceId', ], 'InitialContactId' => [ 'shape' => 'ContactId', 'location' => 'uri', 'locationName' => 'InitialContactId', ], ], ], 'GetContactAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'Attributes', ], ], ], 'GetCurrentMetricDataRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'Filters', 'CurrentMetrics', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'location' => 'uri', 'locationName' => 'InstanceId', ], 'Filters' => [ 'shape' => 'Filters', ], 'Groupings' => [ 'shape' => 'Groupings', ], 'CurrentMetrics' => [ 'shape' => 'CurrentMetrics', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResult100', 'box' => true, ], ], ], 'GetCurrentMetricDataResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MetricResults' => [ 'shape' => 'CurrentMetricResults', ], 'DataSnapshotTime' => [ 'shape' => 'timestamp', ], ], ], 'GetFederationTokenRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'location' => 'uri', 'locationName' => 'InstanceId', ], ], ], 'GetFederationTokenResponse' => [ 'type' => 'structure', 'members' => [ 'Credentials' => [ 'shape' => 'Credentials', ], ], ], 'GetMetricDataRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'StartTime', 'EndTime', 'Filters', 'HistoricalMetrics', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'location' => 'uri', 'locationName' => 'InstanceId', ], 'StartTime' => [ 'shape' => 'timestamp', ], 'EndTime' => [ 'shape' => 'timestamp', ], 'Filters' => [ 'shape' => 'Filters', ], 'Groupings' => [ 'shape' => 'Groupings', ], 'HistoricalMetrics' => [ 'shape' => 'HistoricalMetrics', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResult100', 'box' => true, ], ], ], 'GetMetricDataResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MetricResults' => [ 'shape' => 'HistoricalMetricResults', ], ], ], 'Grouping' => [ 'type' => 'string', 'enum' => [ 'QUEUE', 'CHANNEL', ], ], 'Groupings' => [ 'type' => 'list', 'member' => [ 'shape' => 'Grouping', ], 'max' => 2, ], 'HierarchyGroup' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'HierarchyGroupId', ], 'Arn' => [ 'shape' => 'ARN', ], 'Name' => [ 'shape' => 'HierarchyGroupName', ], 'LevelId' => [ 'shape' => 'HierarchyLevelId', ], 'HierarchyPath' => [ 'shape' => 'HierarchyPath', ], ], ], 'HierarchyGroupId' => [ 'type' => 'string', ], 'HierarchyGroupName' => [ 'type' => 'string', ], 'HierarchyGroupSummary' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'HierarchyGroupId', ], 'Arn' => [ 'shape' => 'ARN', ], 'Name' => [ 'shape' => 'HierarchyGroupName', ], ], ], 'HierarchyGroupSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HierarchyGroupSummary', ], ], 'HierarchyLevel' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'HierarchyLevelId', ], 'Arn' => [ 'shape' => 'ARN', ], 'Name' => [ 'shape' => 'HierarchyLevelName', ], ], ], 'HierarchyLevelId' => [ 'type' => 'string', ], 'HierarchyLevelName' => [ 'type' => 'string', ], 'HierarchyPath' => [ 'type' => 'structure', 'members' => [ 'LevelOne' => [ 'shape' => 'HierarchyGroupSummary', ], 'LevelTwo' => [ 'shape' => 'HierarchyGroupSummary', ], 'LevelThree' => [ 'shape' => 'HierarchyGroupSummary', ], 'LevelFour' => [ 'shape' => 'HierarchyGroupSummary', ], 'LevelFive' => [ 'shape' => 'HierarchyGroupSummary', ], ], ], 'HierarchyStructure' => [ 'type' => 'structure', 'members' => [ 'LevelOne' => [ 'shape' => 'HierarchyLevel', ], 'LevelTwo' => [ 'shape' => 'HierarchyLevel', ], 'LevelThree' => [ 'shape' => 'HierarchyLevel', ], 'LevelFour' => [ 'shape' => 'HierarchyLevel', ], 'LevelFive' => [ 'shape' => 'HierarchyLevel', ], ], ], 'HistoricalMetric' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'HistoricalMetricName', ], 'Threshold' => [ 'shape' => 'Threshold', 'box' => true, ], 'Statistic' => [ 'shape' => 'Statistic', ], 'Unit' => [ 'shape' => 'Unit', ], ], ], 'HistoricalMetricData' => [ 'type' => 'structure', 'members' => [ 'Metric' => [ 'shape' => 'HistoricalMetric', ], 'Value' => [ 'shape' => 'Value', 'box' => true, ], ], ], 'HistoricalMetricDataCollections' => [ 'type' => 'list', 'member' => [ 'shape' => 'HistoricalMetricData', ], ], 'HistoricalMetricName' => [ 'type' => 'string', 'enum' => [ 'CONTACTS_QUEUED', 'CONTACTS_HANDLED', 'CONTACTS_ABANDONED', 'CONTACTS_CONSULTED', 'CONTACTS_AGENT_HUNG_UP_FIRST', 'CONTACTS_HANDLED_INCOMING', 'CONTACTS_HANDLED_OUTBOUND', 'CONTACTS_HOLD_ABANDONS', 'CONTACTS_TRANSFERRED_IN', 'CONTACTS_TRANSFERRED_OUT', 'CONTACTS_TRANSFERRED_IN_FROM_QUEUE', 'CONTACTS_TRANSFERRED_OUT_FROM_QUEUE', 'CONTACTS_MISSED', 'CALLBACK_CONTACTS_HANDLED', 'API_CONTACTS_HANDLED', 'OCCUPANCY', 'HANDLE_TIME', 'AFTER_CONTACT_WORK_TIME', 'QUEUED_TIME', 'ABANDON_TIME', 'QUEUE_ANSWER_TIME', 'HOLD_TIME', 'INTERACTION_TIME', 'INTERACTION_AND_HOLD_TIME', 'SERVICE_LEVEL', ], ], 'HistoricalMetricResult' => [ 'type' => 'structure', 'members' => [ 'Dimensions' => [ 'shape' => 'Dimensions', ], 'Collections' => [ 'shape' => 'HistoricalMetricDataCollections', ], ], ], 'HistoricalMetricResults' => [ 'type' => 'list', 'member' => [ 'shape' => 'HistoricalMetricResult', ], ], 'HistoricalMetrics' => [ 'type' => 'list', 'member' => [ 'shape' => 'HistoricalMetric', ], ], 'InstanceId' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'InternalServiceException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'ListRoutingProfilesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'location' => 'uri', 'locationName' => 'InstanceId', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResult1000', 'box' => true, 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListRoutingProfilesResponse' => [ 'type' => 'structure', 'members' => [ 'RoutingProfileSummaryList' => [ 'shape' => 'RoutingProfileSummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListSecurityProfilesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'location' => 'uri', 'locationName' => 'InstanceId', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResult1000', 'box' => true, 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListSecurityProfilesResponse' => [ 'type' => 'structure', 'members' => [ 'SecurityProfileSummaryList' => [ 'shape' => 'SecurityProfileSummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListUserHierarchyGroupsRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'location' => 'uri', 'locationName' => 'InstanceId', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResult1000', 'box' => true, 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListUserHierarchyGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'UserHierarchyGroupSummaryList' => [ 'shape' => 'HierarchyGroupSummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListUsersRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'location' => 'uri', 'locationName' => 'InstanceId', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResult1000', 'box' => true, 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListUsersResponse' => [ 'type' => 'structure', 'members' => [ 'UserSummaryList' => [ 'shape' => 'UserSummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'MaxResult100' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'MaxResult1000' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'Message' => [ 'type' => 'string', ], 'NextToken' => [ 'type' => 'string', ], 'OutboundContactNotPermittedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, ], 'Password' => [ 'type' => 'string', 'pattern' => '/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d\\S]{8,64}$/', ], 'PhoneNumber' => [ 'type' => 'string', ], 'PhoneType' => [ 'type' => 'string', 'enum' => [ 'SOFT_PHONE', 'DESK_PHONE', ], ], 'QueueId' => [ 'type' => 'string', ], 'QueueReference' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'QueueId', ], 'Arn' => [ 'shape' => 'ARN', ], ], ], 'Queues' => [ 'type' => 'list', 'member' => [ 'shape' => 'QueueId', ], 'max' => 100, 'min' => 1, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'RoutingProfileId' => [ 'type' => 'string', ], 'RoutingProfileName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'RoutingProfileSummary' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'RoutingProfileId', ], 'Arn' => [ 'shape' => 'ARN', ], 'Name' => [ 'shape' => 'RoutingProfileName', ], ], ], 'RoutingProfileSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RoutingProfileSummary', ], ], 'SecurityProfileId' => [ 'type' => 'string', ], 'SecurityProfileIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityProfileId', ], 'max' => 10, 'min' => 1, ], 'SecurityProfileName' => [ 'type' => 'string', ], 'SecurityProfileSummary' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'SecurityProfileId', ], 'Arn' => [ 'shape' => 'ARN', ], 'Name' => [ 'shape' => 'SecurityProfileName', ], ], ], 'SecurityProfileSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityProfileSummary', ], ], 'SecurityToken' => [ 'type' => 'string', 'sensitive' => true, ], 'StartOutboundVoiceContactRequest' => [ 'type' => 'structure', 'required' => [ 'DestinationPhoneNumber', 'ContactFlowId', 'InstanceId', ], 'members' => [ 'DestinationPhoneNumber' => [ 'shape' => 'PhoneNumber', ], 'ContactFlowId' => [ 'shape' => 'ContactFlowId', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'ClientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'SourcePhoneNumber' => [ 'shape' => 'PhoneNumber', ], 'QueueId' => [ 'shape' => 'QueueId', ], 'Attributes' => [ 'shape' => 'Attributes', ], ], ], 'StartOutboundVoiceContactResponse' => [ 'type' => 'structure', 'members' => [ 'ContactId' => [ 'shape' => 'ContactId', ], ], ], 'Statistic' => [ 'type' => 'string', 'enum' => [ 'SUM', 'MAX', 'AVG', ], ], 'StopContactRequest' => [ 'type' => 'structure', 'required' => [ 'ContactId', 'InstanceId', ], 'members' => [ 'ContactId' => [ 'shape' => 'ContactId', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], ], ], 'StopContactResponse' => [ 'type' => 'structure', 'members' => [], ], 'Threshold' => [ 'type' => 'structure', 'members' => [ 'Comparison' => [ 'shape' => 'Comparison', ], 'ThresholdValue' => [ 'shape' => 'ThresholdValue', 'box' => true, ], ], ], 'ThresholdValue' => [ 'type' => 'double', ], 'ThrottlingException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'Unit' => [ 'type' => 'string', 'enum' => [ 'SECONDS', 'COUNT', 'PERCENT', ], ], 'UpdateContactAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'InitialContactId', 'InstanceId', 'Attributes', ], 'members' => [ 'InitialContactId' => [ 'shape' => 'ContactId', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'Attributes' => [ 'shape' => 'Attributes', ], ], ], 'UpdateContactAttributesResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateUserHierarchyRequest' => [ 'type' => 'structure', 'required' => [ 'UserId', 'InstanceId', ], 'members' => [ 'HierarchyGroupId' => [ 'shape' => 'HierarchyGroupId', ], 'UserId' => [ 'shape' => 'UserId', 'location' => 'uri', 'locationName' => 'UserId', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'location' => 'uri', 'locationName' => 'InstanceId', ], ], ], 'UpdateUserIdentityInfoRequest' => [ 'type' => 'structure', 'required' => [ 'IdentityInfo', 'UserId', 'InstanceId', ], 'members' => [ 'IdentityInfo' => [ 'shape' => 'UserIdentityInfo', ], 'UserId' => [ 'shape' => 'UserId', 'location' => 'uri', 'locationName' => 'UserId', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'location' => 'uri', 'locationName' => 'InstanceId', ], ], ], 'UpdateUserPhoneConfigRequest' => [ 'type' => 'structure', 'required' => [ 'PhoneConfig', 'UserId', 'InstanceId', ], 'members' => [ 'PhoneConfig' => [ 'shape' => 'UserPhoneConfig', ], 'UserId' => [ 'shape' => 'UserId', 'location' => 'uri', 'locationName' => 'UserId', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'location' => 'uri', 'locationName' => 'InstanceId', ], ], ], 'UpdateUserRoutingProfileRequest' => [ 'type' => 'structure', 'required' => [ 'RoutingProfileId', 'UserId', 'InstanceId', ], 'members' => [ 'RoutingProfileId' => [ 'shape' => 'RoutingProfileId', ], 'UserId' => [ 'shape' => 'UserId', 'location' => 'uri', 'locationName' => 'UserId', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'location' => 'uri', 'locationName' => 'InstanceId', ], ], ], 'UpdateUserSecurityProfilesRequest' => [ 'type' => 'structure', 'required' => [ 'SecurityProfileIds', 'UserId', 'InstanceId', ], 'members' => [ 'SecurityProfileIds' => [ 'shape' => 'SecurityProfileIds', ], 'UserId' => [ 'shape' => 'UserId', 'location' => 'uri', 'locationName' => 'UserId', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'location' => 'uri', 'locationName' => 'InstanceId', ], ], ], 'User' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'UserId', ], 'Arn' => [ 'shape' => 'ARN', ], 'Username' => [ 'shape' => 'AgentUsername', ], 'IdentityInfo' => [ 'shape' => 'UserIdentityInfo', ], 'PhoneConfig' => [ 'shape' => 'UserPhoneConfig', ], 'DirectoryUserId' => [ 'shape' => 'DirectoryUserId', ], 'SecurityProfileIds' => [ 'shape' => 'SecurityProfileIds', ], 'RoutingProfileId' => [ 'shape' => 'RoutingProfileId', ], 'HierarchyGroupId' => [ 'shape' => 'HierarchyGroupId', ], ], ], 'UserId' => [ 'type' => 'string', ], 'UserIdentityInfo' => [ 'type' => 'structure', 'members' => [ 'FirstName' => [ 'shape' => 'AgentFirstName', ], 'LastName' => [ 'shape' => 'AgentLastName', ], 'Email' => [ 'shape' => 'Email', ], ], ], 'UserNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'UserPhoneConfig' => [ 'type' => 'structure', 'required' => [ 'PhoneType', ], 'members' => [ 'PhoneType' => [ 'shape' => 'PhoneType', ], 'AutoAccept' => [ 'shape' => 'AutoAccept', ], 'AfterContactWorkTimeLimit' => [ 'shape' => 'AfterContactWorkTimeLimit', ], 'DeskPhoneNumber' => [ 'shape' => 'PhoneNumber', ], ], ], 'UserSummary' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'UserId', ], 'Arn' => [ 'shape' => 'ARN', ], 'Username' => [ 'shape' => 'AgentUsername', ], ], ], 'UserSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserSummary', ], ], 'Value' => [ 'type' => 'double', ], 'timestamp' => [ 'type' => 'timestamp', ], ],]; diff --git a/lib/aws/Aws/data/connect/2017-08-08/paginators-1.json.php b/lib/aws/Aws/data/connect/2017-08-08/paginators-1.json.php new file mode 100644 index 0000000..a047990 --- /dev/null +++ b/lib/aws/Aws/data/connect/2017-08-08/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/connect/2017-08-08/paginators-1.json +return [ 'pagination' => [ 'GetCurrentMetricData' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'GetMetricData' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/cur/2017-01-06/api-2.json.php b/lib/aws/Aws/data/cur/2017-01-06/api-2.json.php new file mode 100644 index 0000000..b2a8c56 --- /dev/null +++ b/lib/aws/Aws/data/cur/2017-01-06/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cur/2017-01-06/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-01-06', 'endpointPrefix' => 'cur', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWS Cost and Usage Report Service', 'serviceId' => 'Cost and Usage Report Service', 'signatureVersion' => 'v4', 'signingName' => 'cur', 'targetPrefix' => 'AWSOrigamiServiceGatewayService', 'uid' => 'cur-2017-01-06', ], 'operations' => [ 'DeleteReportDefinition' => [ 'name' => 'DeleteReportDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteReportDefinitionRequest', ], 'output' => [ 'shape' => 'DeleteReportDefinitionResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'ValidationException', ], ], ], 'DescribeReportDefinitions' => [ 'name' => 'DescribeReportDefinitions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReportDefinitionsRequest', ], 'output' => [ 'shape' => 'DescribeReportDefinitionsResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], ], ], 'PutReportDefinition' => [ 'name' => 'PutReportDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutReportDefinitionRequest', ], 'output' => [ 'shape' => 'PutReportDefinitionResponse', ], 'errors' => [ [ 'shape' => 'DuplicateReportNameException', ], [ 'shape' => 'ReportLimitReachedException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'ValidationException', ], ], ], ], 'shapes' => [ 'AWSRegion' => [ 'type' => 'string', 'enum' => [ 'us-east-1', 'us-west-1', 'us-west-2', 'eu-central-1', 'eu-west-1', 'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1', 'eu-north-1', 'ap-northeast-3', ], ], 'AdditionalArtifact' => [ 'type' => 'string', 'enum' => [ 'REDSHIFT', 'QUICKSIGHT', 'ATHENA', ], ], 'AdditionalArtifactList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AdditionalArtifact', ], ], 'CompressionFormat' => [ 'type' => 'string', 'enum' => [ 'ZIP', 'GZIP', 'Parquet', ], ], 'DeleteReportDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'ReportName' => [ 'shape' => 'ReportName', ], ], ], 'DeleteReportDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'ResponseMessage' => [ 'shape' => 'DeleteResponseMessage', ], ], ], 'DeleteResponseMessage' => [ 'type' => 'string', ], 'DescribeReportDefinitionsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'DescribeReportDefinitionsResponse' => [ 'type' => 'structure', 'members' => [ 'ReportDefinitions' => [ 'shape' => 'ReportDefinitionList', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'DuplicateReportNameException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ErrorMessage' => [ 'type' => 'string', ], 'GenericString' => [ 'type' => 'string', ], 'InternalErrorException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, 'fault' => true, ], 'MaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 5, 'min' => 5, ], 'PutReportDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'ReportDefinition', ], 'members' => [ 'ReportDefinition' => [ 'shape' => 'ReportDefinition', ], ], ], 'PutReportDefinitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'RefreshClosedReports' => [ 'type' => 'boolean', 'box' => true, ], 'ReportDefinition' => [ 'type' => 'structure', 'required' => [ 'ReportName', 'TimeUnit', 'Format', 'Compression', 'AdditionalSchemaElements', 'S3Bucket', 'S3Prefix', 'S3Region', ], 'members' => [ 'ReportName' => [ 'shape' => 'ReportName', ], 'TimeUnit' => [ 'shape' => 'TimeUnit', ], 'Format' => [ 'shape' => 'ReportFormat', ], 'Compression' => [ 'shape' => 'CompressionFormat', ], 'AdditionalSchemaElements' => [ 'shape' => 'SchemaElementList', ], 'S3Bucket' => [ 'shape' => 'S3Bucket', ], 'S3Prefix' => [ 'shape' => 'S3Prefix', ], 'S3Region' => [ 'shape' => 'AWSRegion', ], 'AdditionalArtifacts' => [ 'shape' => 'AdditionalArtifactList', ], 'RefreshClosedReports' => [ 'shape' => 'RefreshClosedReports', ], 'ReportVersioning' => [ 'shape' => 'ReportVersioning', ], ], ], 'ReportDefinitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReportDefinition', ], ], 'ReportFormat' => [ 'type' => 'string', 'enum' => [ 'textORcsv', 'Parquet', ], ], 'ReportLimitReachedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ReportName' => [ 'type' => 'string', 'max' => 256, 'pattern' => '[0-9A-Za-z!\\-_.*\\\'()]+', ], 'ReportVersioning' => [ 'type' => 'string', 'enum' => [ 'CREATE_NEW_REPORT', 'OVERWRITE_REPORT', ], ], 'S3Bucket' => [ 'type' => 'string', 'max' => 256, ], 'S3Prefix' => [ 'type' => 'string', 'max' => 256, 'pattern' => '[0-9A-Za-z!\\-_.*\\\'()/]*', ], 'SchemaElement' => [ 'type' => 'string', 'enum' => [ 'RESOURCES', ], ], 'SchemaElementList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SchemaElement', ], ], 'TimeUnit' => [ 'type' => 'string', 'enum' => [ 'HOURLY', 'DAILY', ], ], 'ValidationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], ],]; diff --git a/lib/aws/Aws/data/cur/2017-01-06/paginators-1.json.php b/lib/aws/Aws/data/cur/2017-01-06/paginators-1.json.php new file mode 100644 index 0000000..d906ae0 --- /dev/null +++ b/lib/aws/Aws/data/cur/2017-01-06/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cur/2017-01-06/paginators-1.json +return [ 'pagination' => [ 'DescribeReportDefinitions' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/cur/2017-01-06/smoke.json.php b/lib/aws/Aws/data/cur/2017-01-06/smoke.json.php new file mode 100644 index 0000000..a7e1d1a --- /dev/null +++ b/lib/aws/Aws/data/cur/2017-01-06/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/cur/2017-01-06/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-east-1', 'testCases' => [ [ 'operationName' => 'DescribeReportDefinitions', 'input' => [], 'errorExpectedFromService' => false, ], ],]; diff --git a/lib/aws/Aws/data/data.iot/2015-05-28/api-2.json.php b/lib/aws/Aws/data/data.iot/2015-05-28/api-2.json.php new file mode 100644 index 0000000..8127b69 --- /dev/null +++ b/lib/aws/Aws/data/data.iot/2015-05-28/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/data.iot/2015-05-28/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'uid' => 'iot-data-2015-05-28', 'apiVersion' => '2015-05-28', 'endpointPrefix' => 'data.iot', 'protocol' => 'rest-json', 'serviceFullName' => 'AWS IoT Data Plane', 'signatureVersion' => 'v4', 'signingName' => 'iotdata', ], 'operations' => [ 'DeleteThingShadow' => [ 'name' => 'DeleteThingShadow', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/things/{thingName}/shadow', ], 'input' => [ 'shape' => 'DeleteThingShadowRequest', ], 'output' => [ 'shape' => 'DeleteThingShadowResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'UnsupportedDocumentEncodingException', ], ], ], 'GetThingShadow' => [ 'name' => 'GetThingShadow', 'http' => [ 'method' => 'GET', 'requestUri' => '/things/{thingName}/shadow', ], 'input' => [ 'shape' => 'GetThingShadowRequest', ], 'output' => [ 'shape' => 'GetThingShadowResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'UnsupportedDocumentEncodingException', ], ], ], 'Publish' => [ 'name' => 'Publish', 'http' => [ 'method' => 'POST', 'requestUri' => '/topics/{topic}', ], 'input' => [ 'shape' => 'PublishRequest', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'MethodNotAllowedException', ], ], ], 'UpdateThingShadow' => [ 'name' => 'UpdateThingShadow', 'http' => [ 'method' => 'POST', 'requestUri' => '/things/{thingName}/shadow', ], 'input' => [ 'shape' => 'UpdateThingShadowRequest', ], 'output' => [ 'shape' => 'UpdateThingShadowResponse', ], 'errors' => [ [ 'shape' => 'ConflictException', ], [ 'shape' => 'RequestEntityTooLargeException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'UnsupportedDocumentEncodingException', ], ], ], ], 'shapes' => [ 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'DeleteThingShadowRequest' => [ 'type' => 'structure', 'required' => [ 'thingName', ], 'members' => [ 'thingName' => [ 'shape' => 'ThingName', 'location' => 'uri', 'locationName' => 'thingName', ], ], ], 'DeleteThingShadowResponse' => [ 'type' => 'structure', 'required' => [ 'payload', ], 'members' => [ 'payload' => [ 'shape' => 'JsonDocument', ], ], 'payload' => 'payload', ], 'ErrorMessage' => [ 'type' => 'string', ], 'GetThingShadowRequest' => [ 'type' => 'structure', 'required' => [ 'thingName', ], 'members' => [ 'thingName' => [ 'shape' => 'ThingName', 'location' => 'uri', 'locationName' => 'thingName', ], ], ], 'GetThingShadowResponse' => [ 'type' => 'structure', 'members' => [ 'payload' => [ 'shape' => 'JsonDocument', ], ], 'payload' => 'payload', ], 'InternalFailureException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'JsonDocument' => [ 'type' => 'blob', ], 'MethodNotAllowedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 405, ], 'exception' => true, ], 'Payload' => [ 'type' => 'blob', ], 'PublishRequest' => [ 'type' => 'structure', 'required' => [ 'topic', ], 'members' => [ 'topic' => [ 'shape' => 'Topic', 'location' => 'uri', 'locationName' => 'topic', ], 'qos' => [ 'shape' => 'Qos', 'location' => 'querystring', 'locationName' => 'qos', ], 'payload' => [ 'shape' => 'Payload', ], ], 'payload' => 'payload', ], 'Qos' => [ 'type' => 'integer', 'max' => 1, 'min' => 0, ], 'RequestEntityTooLargeException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 413, ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 503, ], 'exception' => true, 'fault' => true, ], 'ThingName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9_-]+', ], 'ThrottlingException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'Topic' => [ 'type' => 'string', ], 'UnauthorizedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 401, ], 'exception' => true, ], 'UnsupportedDocumentEncodingException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 415, ], 'exception' => true, ], 'UpdateThingShadowRequest' => [ 'type' => 'structure', 'required' => [ 'thingName', 'payload', ], 'members' => [ 'thingName' => [ 'shape' => 'ThingName', 'location' => 'uri', 'locationName' => 'thingName', ], 'payload' => [ 'shape' => 'JsonDocument', ], ], 'payload' => 'payload', ], 'UpdateThingShadowResponse' => [ 'type' => 'structure', 'members' => [ 'payload' => [ 'shape' => 'JsonDocument', ], ], 'payload' => 'payload', ], 'errorMessage' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/datapipeline/2012-10-29/api-2.json.php b/lib/aws/Aws/data/datapipeline/2012-10-29/api-2.json.php new file mode 100644 index 0000000..e200421 --- /dev/null +++ b/lib/aws/Aws/data/datapipeline/2012-10-29/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/datapipeline/2012-10-29/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2012-10-29', 'endpointPrefix' => 'datapipeline', 'jsonVersion' => '1.1', 'serviceFullName' => 'AWS Data Pipeline', 'signatureVersion' => 'v4', 'targetPrefix' => 'DataPipeline', 'protocol' => 'json', 'uid' => 'datapipeline-2012-10-29', ], '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/Aws/data/datapipeline/2012-10-29/paginators-1.json.php b/lib/aws/Aws/data/datapipeline/2012-10-29/paginators-1.json.php new file mode 100644 index 0000000..8ec259b --- /dev/null +++ b/lib/aws/Aws/data/datapipeline/2012-10-29/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/datapipeline/2012-10-29/paginators-1.json +return [ '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/Aws/data/datasync/2018-11-09/api-2.json.php b/lib/aws/Aws/data/datasync/2018-11-09/api-2.json.php new file mode 100644 index 0000000..348c49e --- /dev/null +++ b/lib/aws/Aws/data/datasync/2018-11-09/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/datasync/2018-11-09/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-11-09', 'endpointPrefix' => 'datasync', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'DataSync', 'serviceFullName' => 'AWS DataSync', 'serviceId' => 'DataSync', 'signatureVersion' => 'v4', 'signingName' => 'datasync', 'targetPrefix' => 'FmrsService', 'uid' => 'datasync-2018-11-09', ], 'operations' => [ 'CancelTaskExecution' => [ 'name' => 'CancelTaskExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelTaskExecutionRequest', ], 'output' => [ 'shape' => 'CancelTaskExecutionResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'CreateAgent' => [ 'name' => 'CreateAgent', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAgentRequest', ], 'output' => [ 'shape' => 'CreateAgentResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'CreateLocationEfs' => [ 'name' => 'CreateLocationEfs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLocationEfsRequest', ], 'output' => [ 'shape' => 'CreateLocationEfsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'CreateLocationNfs' => [ 'name' => 'CreateLocationNfs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLocationNfsRequest', ], 'output' => [ 'shape' => 'CreateLocationNfsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'CreateLocationS3' => [ 'name' => 'CreateLocationS3', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLocationS3Request', ], 'output' => [ 'shape' => 'CreateLocationS3Response', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'CreateTask' => [ 'name' => 'CreateTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTaskRequest', ], 'output' => [ 'shape' => 'CreateTaskResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'DeleteAgent' => [ 'name' => 'DeleteAgent', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAgentRequest', ], 'output' => [ 'shape' => 'DeleteAgentResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'DeleteLocation' => [ 'name' => 'DeleteLocation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLocationRequest', ], 'output' => [ 'shape' => 'DeleteLocationResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'DeleteTask' => [ 'name' => 'DeleteTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTaskRequest', ], 'output' => [ 'shape' => 'DeleteTaskResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'DescribeAgent' => [ 'name' => 'DescribeAgent', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAgentRequest', ], 'output' => [ 'shape' => 'DescribeAgentResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'DescribeLocationEfs' => [ 'name' => 'DescribeLocationEfs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLocationEfsRequest', ], 'output' => [ 'shape' => 'DescribeLocationEfsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'DescribeLocationNfs' => [ 'name' => 'DescribeLocationNfs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLocationNfsRequest', ], 'output' => [ 'shape' => 'DescribeLocationNfsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'DescribeLocationS3' => [ 'name' => 'DescribeLocationS3', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLocationS3Request', ], 'output' => [ 'shape' => 'DescribeLocationS3Response', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'DescribeTask' => [ 'name' => 'DescribeTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTaskRequest', ], 'output' => [ 'shape' => 'DescribeTaskResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'DescribeTaskExecution' => [ 'name' => 'DescribeTaskExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTaskExecutionRequest', ], 'output' => [ 'shape' => 'DescribeTaskExecutionResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'ListAgents' => [ 'name' => 'ListAgents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAgentsRequest', ], 'output' => [ 'shape' => 'ListAgentsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'ListLocations' => [ 'name' => 'ListLocations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListLocationsRequest', ], 'output' => [ 'shape' => 'ListLocationsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'ListTaskExecutions' => [ 'name' => 'ListTaskExecutions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTaskExecutionsRequest', ], 'output' => [ 'shape' => 'ListTaskExecutionsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'ListTasks' => [ 'name' => 'ListTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTasksRequest', ], 'output' => [ 'shape' => 'ListTasksResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'StartTaskExecution' => [ 'name' => 'StartTaskExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartTaskExecutionRequest', ], 'output' => [ 'shape' => 'StartTaskExecutionResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'UpdateAgent' => [ 'name' => 'UpdateAgent', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateAgentRequest', ], 'output' => [ 'shape' => 'UpdateAgentResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'UpdateTask' => [ 'name' => 'UpdateTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateTaskRequest', ], 'output' => [ 'shape' => 'UpdateTaskResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], ], 'shapes' => [ 'ActivationKey' => [ 'type' => 'string', 'max' => 29, 'pattern' => '[A-Z0-9]{5}(-[A-Z0-9]{5}){4}', ], 'AgentArn' => [ 'type' => 'string', 'max' => 128, 'pattern' => '^arn:(aws|aws-cn):datasync:[a-z\\-0-9]+:[0-9]{12}:agent/agent-[0-9a-z]{17}$', ], 'AgentArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AgentArn', ], 'max' => 64, 'min' => 1, ], 'AgentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AgentListEntry', ], ], 'AgentListEntry' => [ 'type' => 'structure', 'members' => [ 'AgentArn' => [ 'shape' => 'AgentArn', ], 'Name' => [ 'shape' => 'TagValue', ], 'Status' => [ 'shape' => 'AgentStatus', ], ], ], 'AgentStatus' => [ 'type' => 'string', 'enum' => [ 'ONLINE', 'OFFLINE', ], ], 'Atime' => [ 'type' => 'string', 'enum' => [ 'NONE', 'BEST_EFFORT', ], ], 'BytesPerSecond' => [ 'type' => 'long', 'min' => -1, ], 'CancelTaskExecutionRequest' => [ 'type' => 'structure', 'required' => [ 'TaskExecutionArn', ], 'members' => [ 'TaskExecutionArn' => [ 'shape' => 'TaskExecutionArn', ], ], ], 'CancelTaskExecutionResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateAgentRequest' => [ 'type' => 'structure', 'required' => [ 'ActivationKey', ], 'members' => [ 'ActivationKey' => [ 'shape' => 'ActivationKey', ], 'AgentName' => [ 'shape' => 'TagValue', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateAgentResponse' => [ 'type' => 'structure', 'members' => [ 'AgentArn' => [ 'shape' => 'AgentArn', ], ], ], 'CreateLocationEfsRequest' => [ 'type' => 'structure', 'required' => [ 'Subdirectory', 'EfsFilesystemArn', 'Ec2Config', ], 'members' => [ 'Subdirectory' => [ 'shape' => 'Subdirectory', ], 'EfsFilesystemArn' => [ 'shape' => 'EfsFilesystemArn', ], 'Ec2Config' => [ 'shape' => 'Ec2Config', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateLocationEfsResponse' => [ 'type' => 'structure', 'members' => [ 'LocationArn' => [ 'shape' => 'LocationArn', ], ], ], 'CreateLocationNfsRequest' => [ 'type' => 'structure', 'required' => [ 'Subdirectory', 'ServerHostname', 'OnPremConfig', ], 'members' => [ 'Subdirectory' => [ 'shape' => 'Subdirectory', ], 'ServerHostname' => [ 'shape' => 'ServerHostname', ], 'OnPremConfig' => [ 'shape' => 'OnPremConfig', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateLocationNfsResponse' => [ 'type' => 'structure', 'members' => [ 'LocationArn' => [ 'shape' => 'LocationArn', ], ], ], 'CreateLocationS3Request' => [ 'type' => 'structure', 'required' => [ 'Subdirectory', 'S3BucketArn', 'S3Config', ], 'members' => [ 'Subdirectory' => [ 'shape' => 'Subdirectory', ], 'S3BucketArn' => [ 'shape' => 'S3BucketArn', ], 'S3Config' => [ 'shape' => 'S3Config', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateLocationS3Response' => [ 'type' => 'structure', 'members' => [ 'LocationArn' => [ 'shape' => 'LocationArn', ], ], ], 'CreateTaskRequest' => [ 'type' => 'structure', 'required' => [ 'SourceLocationArn', 'DestinationLocationArn', ], 'members' => [ 'SourceLocationArn' => [ 'shape' => 'LocationArn', ], 'DestinationLocationArn' => [ 'shape' => 'LocationArn', ], 'CloudWatchLogGroupArn' => [ 'shape' => 'LogGroupArn', ], 'Name' => [ 'shape' => 'TagValue', ], 'Options' => [ 'shape' => 'Options', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateTaskResponse' => [ 'type' => 'structure', 'members' => [ 'TaskArn' => [ 'shape' => 'TaskArn', ], ], ], 'DeleteAgentRequest' => [ 'type' => 'structure', 'required' => [ 'AgentArn', ], 'members' => [ 'AgentArn' => [ 'shape' => 'AgentArn', ], ], ], 'DeleteAgentResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteLocationRequest' => [ 'type' => 'structure', 'required' => [ 'LocationArn', ], 'members' => [ 'LocationArn' => [ 'shape' => 'LocationArn', ], ], ], 'DeleteLocationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteTaskRequest' => [ 'type' => 'structure', 'required' => [ 'TaskArn', ], 'members' => [ 'TaskArn' => [ 'shape' => 'TaskArn', ], ], ], 'DeleteTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'DescribeAgentRequest' => [ 'type' => 'structure', 'required' => [ 'AgentArn', ], 'members' => [ 'AgentArn' => [ 'shape' => 'AgentArn', ], ], ], 'DescribeAgentResponse' => [ 'type' => 'structure', 'members' => [ 'AgentArn' => [ 'shape' => 'AgentArn', ], 'Name' => [ 'shape' => 'TagValue', ], 'Status' => [ 'shape' => 'AgentStatus', ], 'LastConnectionTime' => [ 'shape' => 'Time', ], 'CreationTime' => [ 'shape' => 'Time', ], ], ], 'DescribeLocationEfsRequest' => [ 'type' => 'structure', 'required' => [ 'LocationArn', ], 'members' => [ 'LocationArn' => [ 'shape' => 'LocationArn', ], ], ], 'DescribeLocationEfsResponse' => [ 'type' => 'structure', 'members' => [ 'LocationArn' => [ 'shape' => 'LocationArn', ], 'LocationUri' => [ 'shape' => 'LocationUri', ], 'Ec2Config' => [ 'shape' => 'Ec2Config', ], 'CreationTime' => [ 'shape' => 'Time', ], ], ], 'DescribeLocationNfsRequest' => [ 'type' => 'structure', 'required' => [ 'LocationArn', ], 'members' => [ 'LocationArn' => [ 'shape' => 'LocationArn', ], ], ], 'DescribeLocationNfsResponse' => [ 'type' => 'structure', 'members' => [ 'LocationArn' => [ 'shape' => 'LocationArn', ], 'LocationUri' => [ 'shape' => 'LocationUri', ], 'OnPremConfig' => [ 'shape' => 'OnPremConfig', ], 'CreationTime' => [ 'shape' => 'Time', ], ], ], 'DescribeLocationS3Request' => [ 'type' => 'structure', 'required' => [ 'LocationArn', ], 'members' => [ 'LocationArn' => [ 'shape' => 'LocationArn', ], ], ], 'DescribeLocationS3Response' => [ 'type' => 'structure', 'members' => [ 'LocationArn' => [ 'shape' => 'LocationArn', ], 'LocationUri' => [ 'shape' => 'LocationUri', ], 'S3Config' => [ 'shape' => 'S3Config', ], 'CreationTime' => [ 'shape' => 'Time', ], ], ], 'DescribeTaskExecutionRequest' => [ 'type' => 'structure', 'required' => [ 'TaskExecutionArn', ], 'members' => [ 'TaskExecutionArn' => [ 'shape' => 'TaskExecutionArn', ], ], ], 'DescribeTaskExecutionResponse' => [ 'type' => 'structure', 'members' => [ 'TaskExecutionArn' => [ 'shape' => 'TaskExecutionArn', ], 'Status' => [ 'shape' => 'TaskExecutionStatus', ], 'Options' => [ 'shape' => 'Options', ], 'StartTime' => [ 'shape' => 'Time', ], 'EstimatedFilesToTransfer' => [ 'shape' => 'long', ], 'EstimatedBytesToTransfer' => [ 'shape' => 'long', ], 'FilesTransferred' => [ 'shape' => 'long', ], 'BytesWritten' => [ 'shape' => 'long', ], 'BytesTransferred' => [ 'shape' => 'long', ], 'Result' => [ 'shape' => 'TaskExecutionResultDetail', ], ], ], 'DescribeTaskRequest' => [ 'type' => 'structure', 'required' => [ 'TaskArn', ], 'members' => [ 'TaskArn' => [ 'shape' => 'TaskArn', ], ], ], 'DescribeTaskResponse' => [ 'type' => 'structure', 'members' => [ 'TaskArn' => [ 'shape' => 'TaskArn', ], 'Status' => [ 'shape' => 'TaskStatus', ], 'Name' => [ 'shape' => 'TagValue', ], 'CurrentTaskExecutionArn' => [ 'shape' => 'TaskExecutionArn', ], 'SourceLocationArn' => [ 'shape' => 'LocationArn', ], 'DestinationLocationArn' => [ 'shape' => 'LocationArn', ], 'CloudWatchLogGroupArn' => [ 'shape' => 'LogGroupArn', ], 'Options' => [ 'shape' => 'Options', ], 'ErrorCode' => [ 'shape' => 'string', ], 'ErrorDetail' => [ 'shape' => 'string', ], 'CreationTime' => [ 'shape' => 'Time', ], ], ], 'Duration' => [ 'type' => 'long', 'min' => 0, ], 'Ec2Config' => [ 'type' => 'structure', 'required' => [ 'SubnetArn', 'SecurityGroupArns', ], 'members' => [ 'SubnetArn' => [ 'shape' => 'Ec2SubnetArn', ], 'SecurityGroupArns' => [ 'shape' => 'Ec2SecurityGroupArnList', ], ], ], 'Ec2SecurityGroupArn' => [ 'type' => 'string', 'max' => 128, 'pattern' => '^arn:(aws|aws-cn):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/.*$', ], 'Ec2SecurityGroupArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ec2SecurityGroupArn', ], 'max' => 5, 'min' => 1, ], 'Ec2SubnetArn' => [ 'type' => 'string', 'max' => 128, 'pattern' => '^arn:(aws|aws-cn):ec2:[a-z\\-0-9]*:[0-9]{12}:subnet/.*$', ], 'EfsFilesystemArn' => [ 'type' => 'string', 'max' => 128, 'pattern' => '^arn:(aws|aws-cn):elasticfilesystem:[a-z\\-0-9]*:[0-9]{12}:file-system/fs-.*$', ], 'Gid' => [ 'type' => 'string', 'enum' => [ 'NONE', 'INT_VALUE', 'NAME', 'BOTH', ], ], 'IamRoleArn' => [ 'type' => 'string', 'max' => 2048, 'pattern' => '^arn:(aws|aws-cn):iam::[0-9]{12}:role/.*$', ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], 'errorCode' => [ 'shape' => 'string', ], ], 'exception' => true, ], 'ListAgentsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListAgentsResponse' => [ 'type' => 'structure', 'members' => [ 'Agents' => [ 'shape' => 'AgentList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListLocationsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListLocationsResponse' => [ 'type' => 'structure', 'members' => [ 'Locations' => [ 'shape' => 'LocationList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'TaggableResourceArn', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTaskExecutionsRequest' => [ 'type' => 'structure', 'members' => [ 'TaskArn' => [ 'shape' => 'TaskArn', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTaskExecutionsResponse' => [ 'type' => 'structure', 'members' => [ 'TaskExecutions' => [ 'shape' => 'TaskExecutionList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTasksRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTasksResponse' => [ 'type' => 'structure', 'members' => [ 'Tasks' => [ 'shape' => 'TaskList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'LocationArn' => [ 'type' => 'string', 'max' => 128, 'pattern' => '^arn:(aws|aws-cn):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$', ], 'LocationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocationListEntry', ], ], 'LocationListEntry' => [ 'type' => 'structure', 'members' => [ 'LocationArn' => [ 'shape' => 'LocationArn', ], 'LocationUri' => [ 'shape' => 'LocationUri', ], ], ], 'LocationUri' => [ 'type' => 'string', 'pattern' => '(efs|nfs|s3)://[a-zA-Z0-9.\\-]+', ], 'LogGroupArn' => [ 'type' => 'string', 'max' => 562, 'pattern' => '^arn:(aws|aws-cn):logs:[a-z\\-0-9]*:[0-9]{12}:log-group:([^:\\*]*)$', ], 'MaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'Mtime' => [ 'type' => 'string', 'enum' => [ 'NONE', 'PRESERVE', ], ], 'NextToken' => [ 'type' => 'string', 'max' => 93, 'pattern' => '[a-zA-Z0-9=_-]+', ], 'OnPremConfig' => [ 'type' => 'structure', 'required' => [ 'AgentArns', ], 'members' => [ 'AgentArns' => [ 'shape' => 'AgentArnList', ], ], ], 'Options' => [ 'type' => 'structure', 'members' => [ 'VerifyMode' => [ 'shape' => 'VerifyMode', ], 'Atime' => [ 'shape' => 'Atime', ], 'Mtime' => [ 'shape' => 'Mtime', ], 'Uid' => [ 'shape' => 'Uid', ], 'Gid' => [ 'shape' => 'Gid', ], 'PreserveDeletedFiles' => [ 'shape' => 'PreserveDeletedFiles', ], 'PreserveDevices' => [ 'shape' => 'PreserveDevices', ], 'PosixPermissions' => [ 'shape' => 'PosixPermissions', ], 'BytesPerSecond' => [ 'shape' => 'BytesPerSecond', ], ], ], 'PhaseStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'SUCCESS', 'ERROR', ], ], 'PosixPermissions' => [ 'type' => 'string', 'enum' => [ 'NONE', 'BEST_EFFORT', 'PRESERVE', ], ], 'PreserveDeletedFiles' => [ 'type' => 'string', 'enum' => [ 'PRESERVE', 'REMOVE', ], ], 'PreserveDevices' => [ 'type' => 'string', 'enum' => [ 'NONE', 'PRESERVE', ], ], 'S3BucketArn' => [ 'type' => 'string', 'max' => 76, 'pattern' => '^arn:(aws|aws-cn):s3:::([^/]*)$', ], 'S3Config' => [ 'type' => 'structure', 'required' => [ 'BucketAccessRoleArn', ], 'members' => [ 'BucketAccessRoleArn' => [ 'shape' => 'IamRoleArn', ], ], ], 'ServerHostname' => [ 'type' => 'string', 'max' => 255, 'pattern' => '^(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9])$', ], 'StartTaskExecutionRequest' => [ 'type' => 'structure', 'required' => [ 'TaskArn', ], 'members' => [ 'TaskArn' => [ 'shape' => 'TaskArn', ], 'OverrideOptions' => [ 'shape' => 'Options', ], ], ], 'StartTaskExecutionResponse' => [ 'type' => 'structure', 'members' => [ 'TaskExecutionArn' => [ 'shape' => 'TaskExecutionArn', ], ], ], 'Subdirectory' => [ 'type' => 'string', 'max' => 4096, 'pattern' => '^[a-zA-Z0-9_\\-\\./]+$', ], 'TagKey' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^[a-zA-Z0-9\\s+=._:/-]{1,128}$', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 50, 'min' => 1, ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagListEntry', ], 'max' => 55, 'min' => 0, ], 'TagListEntry' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Tags', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'TaggableResourceArn', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^[a-zA-Z0-9\\s+=._:/-]{1,256}$', ], 'TaggableResourceArn' => [ 'type' => 'string', 'max' => 128, 'pattern' => '^arn:(aws|aws-cn):datasync:[a-z\\-0-9]+:[0-9]{12}:(agent|task|location)/(agent|task|loc)-[0-9a-z]{17}$', ], 'TaskArn' => [ 'type' => 'string', 'max' => 128, 'pattern' => '^arn:(aws|aws-cn):datasync:[a-z\\-0-9]*:[0-9]{12}:task/task-[0-9a-f]{17}$', ], 'TaskExecutionArn' => [ 'type' => 'string', 'max' => 128, 'pattern' => '^arn:(aws|aws-cn):datasync:[a-z\\-0-9]*:[0-9]{12}:task/task-[0-9a-f]{17}/execution/exec-[0-9a-f]{17}$', ], 'TaskExecutionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskExecutionListEntry', ], ], 'TaskExecutionListEntry' => [ 'type' => 'structure', 'members' => [ 'TaskExecutionArn' => [ 'shape' => 'TaskExecutionArn', ], 'Status' => [ 'shape' => 'TaskExecutionStatus', ], ], ], 'TaskExecutionResultDetail' => [ 'type' => 'structure', 'members' => [ 'PrepareDuration' => [ 'shape' => 'Duration', ], 'PrepareStatus' => [ 'shape' => 'PhaseStatus', ], 'TransferDuration' => [ 'shape' => 'Duration', ], 'TransferStatus' => [ 'shape' => 'PhaseStatus', ], 'VerifyDuration' => [ 'shape' => 'Duration', ], 'VerifyStatus' => [ 'shape' => 'PhaseStatus', ], 'ErrorCode' => [ 'shape' => 'string', ], 'ErrorDetail' => [ 'shape' => 'string', ], ], ], 'TaskExecutionStatus' => [ 'type' => 'string', 'enum' => [ 'LAUNCHING', 'PREPARING', 'TRANSFERRING', 'VERIFYING', 'SUCCESS', 'ERROR', ], ], 'TaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskListEntry', ], ], 'TaskListEntry' => [ 'type' => 'structure', 'members' => [ 'TaskArn' => [ 'shape' => 'TaskArn', ], 'Status' => [ 'shape' => 'TaskStatus', ], 'Name' => [ 'shape' => 'TagValue', ], ], ], 'TaskStatus' => [ 'type' => 'string', 'enum' => [ 'AVAILABLE', 'CREATING', 'RUNNING', 'UNAVAILABLE', ], ], 'Time' => [ 'type' => 'timestamp', ], 'Uid' => [ 'type' => 'string', 'enum' => [ 'NONE', 'INT_VALUE', 'NAME', 'BOTH', ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Keys', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'TaggableResourceArn', ], 'Keys' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateAgentRequest' => [ 'type' => 'structure', 'required' => [ 'AgentArn', ], 'members' => [ 'AgentArn' => [ 'shape' => 'AgentArn', ], 'Name' => [ 'shape' => 'TagValue', ], ], ], 'UpdateAgentResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateTaskRequest' => [ 'type' => 'structure', 'required' => [ 'TaskArn', ], 'members' => [ 'TaskArn' => [ 'shape' => 'TaskArn', ], 'Options' => [ 'shape' => 'Options', ], 'Name' => [ 'shape' => 'TagValue', ], ], ], 'UpdateTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'VerifyMode' => [ 'type' => 'string', 'enum' => [ 'POINT_IN_TIME_CONSISTENT', 'NONE', ], ], 'long' => [ 'type' => 'long', ], 'string' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/datasync/2018-11-09/paginators-1.json.php b/lib/aws/Aws/data/datasync/2018-11-09/paginators-1.json.php new file mode 100644 index 0000000..41ed0e6 --- /dev/null +++ b/lib/aws/Aws/data/datasync/2018-11-09/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/datasync/2018-11-09/paginators-1.json +return [ 'pagination' => [ 'ListAgents' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListLocations' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListTagsForResource' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListTaskExecutions' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListTasks' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/dax/2017-04-19/api-2.json.php b/lib/aws/Aws/data/dax/2017-04-19/api-2.json.php new file mode 100644 index 0000000..13f7863 --- /dev/null +++ b/lib/aws/Aws/data/dax/2017-04-19/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/dax/2017-04-19/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-04-19', 'endpointPrefix' => 'dax', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'Amazon DAX', 'serviceFullName' => 'Amazon DynamoDB Accelerator (DAX)', 'serviceId' => 'DAX', 'signatureVersion' => 'v4', 'targetPrefix' => 'AmazonDAXV3', 'uid' => 'dax-2017-04-19', ], 'operations' => [ 'CreateCluster' => [ 'name' => 'CreateCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateClusterRequest', ], 'output' => [ 'shape' => 'CreateClusterResponse', ], 'errors' => [ [ 'shape' => 'ClusterAlreadyExistsFault', ], [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'InsufficientClusterCapacityFault', ], [ 'shape' => 'SubnetGroupNotFoundFault', ], [ 'shape' => 'InvalidParameterGroupStateFault', ], [ 'shape' => 'ParameterGroupNotFoundFault', ], [ 'shape' => 'ClusterQuotaForCustomerExceededFault', ], [ 'shape' => 'NodeQuotaForClusterExceededFault', ], [ 'shape' => 'NodeQuotaForCustomerExceededFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'TagQuotaPerResourceExceeded', ], [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'CreateParameterGroup' => [ 'name' => 'CreateParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateParameterGroupRequest', ], 'output' => [ 'shape' => 'CreateParameterGroupResponse', ], 'errors' => [ [ 'shape' => 'ParameterGroupQuotaExceededFault', ], [ 'shape' => 'ParameterGroupAlreadyExistsFault', ], [ 'shape' => 'InvalidParameterGroupStateFault', ], [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'CreateSubnetGroup' => [ 'name' => 'CreateSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSubnetGroupRequest', ], 'output' => [ 'shape' => 'CreateSubnetGroupResponse', ], 'errors' => [ [ 'shape' => 'SubnetGroupAlreadyExistsFault', ], [ 'shape' => 'SubnetGroupQuotaExceededFault', ], [ 'shape' => 'SubnetQuotaExceededFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], ], ], 'DecreaseReplicationFactor' => [ 'name' => 'DecreaseReplicationFactor', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DecreaseReplicationFactorRequest', ], 'output' => [ 'shape' => 'DecreaseReplicationFactorResponse', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'NodeNotFoundFault', ], [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DeleteCluster' => [ 'name' => 'DeleteCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteClusterRequest', ], 'output' => [ 'shape' => 'DeleteClusterResponse', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DeleteParameterGroup' => [ 'name' => 'DeleteParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteParameterGroupRequest', ], 'output' => [ 'shape' => 'DeleteParameterGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterGroupStateFault', ], [ 'shape' => 'ParameterGroupNotFoundFault', ], [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DeleteSubnetGroup' => [ 'name' => 'DeleteSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSubnetGroupRequest', ], 'output' => [ 'shape' => 'DeleteSubnetGroupResponse', ], 'errors' => [ [ 'shape' => 'SubnetGroupInUseFault', ], [ 'shape' => 'SubnetGroupNotFoundFault', ], [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], ], ], 'DescribeClusters' => [ 'name' => 'DescribeClusters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClustersRequest', ], 'output' => [ 'shape' => 'DescribeClustersResponse', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DescribeDefaultParameters' => [ 'name' => 'DescribeDefaultParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDefaultParametersRequest', ], 'output' => [ 'shape' => 'DescribeDefaultParametersResponse', ], 'errors' => [ [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DescribeEvents' => [ 'name' => 'DescribeEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEventsRequest', ], 'output' => [ 'shape' => 'DescribeEventsResponse', ], 'errors' => [ [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DescribeParameterGroups' => [ 'name' => 'DescribeParameterGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeParameterGroupsRequest', ], 'output' => [ 'shape' => 'DescribeParameterGroupsResponse', ], 'errors' => [ [ 'shape' => 'ParameterGroupNotFoundFault', ], [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DescribeParameters' => [ 'name' => 'DescribeParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeParametersRequest', ], 'output' => [ 'shape' => 'DescribeParametersResponse', ], 'errors' => [ [ 'shape' => 'ParameterGroupNotFoundFault', ], [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DescribeSubnetGroups' => [ 'name' => 'DescribeSubnetGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSubnetGroupsRequest', ], 'output' => [ 'shape' => 'DescribeSubnetGroupsResponse', ], 'errors' => [ [ 'shape' => 'SubnetGroupNotFoundFault', ], [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], ], ], 'IncreaseReplicationFactor' => [ 'name' => 'IncreaseReplicationFactor', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'IncreaseReplicationFactorRequest', ], 'output' => [ 'shape' => 'IncreaseReplicationFactorResponse', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'InsufficientClusterCapacityFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'NodeQuotaForClusterExceededFault', ], [ 'shape' => 'NodeQuotaForCustomerExceededFault', ], [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'ListTags' => [ 'name' => 'ListTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsRequest', ], 'output' => [ 'shape' => 'ListTagsResponse', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'InvalidARNFault', ], [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'RebootNode' => [ 'name' => 'RebootNode', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RebootNodeRequest', ], 'output' => [ 'shape' => 'RebootNodeResponse', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'NodeNotFoundFault', ], [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'TagQuotaPerResourceExceeded', ], [ 'shape' => 'InvalidARNFault', ], [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'InvalidARNFault', ], [ 'shape' => 'TagNotFoundFault', ], [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'UpdateCluster' => [ 'name' => 'UpdateCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateClusterRequest', ], 'output' => [ 'shape' => 'UpdateClusterResponse', ], 'errors' => [ [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'InvalidParameterGroupStateFault', ], [ 'shape' => 'ParameterGroupNotFoundFault', ], [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'UpdateParameterGroup' => [ 'name' => 'UpdateParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateParameterGroupRequest', ], 'output' => [ 'shape' => 'UpdateParameterGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterGroupStateFault', ], [ 'shape' => 'ParameterGroupNotFoundFault', ], [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'UpdateSubnetGroup' => [ 'name' => 'UpdateSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSubnetGroupRequest', ], 'output' => [ 'shape' => 'UpdateSubnetGroupResponse', ], 'errors' => [ [ 'shape' => 'SubnetGroupNotFoundFault', ], [ 'shape' => 'SubnetQuotaExceededFault', ], [ 'shape' => 'SubnetInUse', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], ], ], ], 'shapes' => [ 'AvailabilityZoneList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'AwsQueryErrorMessage' => [ 'type' => 'string', ], 'ChangeType' => [ 'type' => 'string', 'enum' => [ 'IMMEDIATE', 'REQUIRES_REBOOT', ], ], 'Cluster' => [ 'type' => 'structure', 'members' => [ 'ClusterName' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'ClusterArn' => [ 'shape' => 'String', ], 'TotalNodes' => [ 'shape' => 'IntegerOptional', ], 'ActiveNodes' => [ 'shape' => 'IntegerOptional', ], 'NodeType' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], 'ClusterDiscoveryEndpoint' => [ 'shape' => 'Endpoint', ], 'NodeIdsToRemove' => [ 'shape' => 'NodeIdentifierList', ], 'Nodes' => [ 'shape' => 'NodeList', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'String', ], 'NotificationConfiguration' => [ 'shape' => 'NotificationConfiguration', ], 'SubnetGroup' => [ 'shape' => 'String', ], 'SecurityGroups' => [ 'shape' => 'SecurityGroupMembershipList', ], 'IamRoleArn' => [ 'shape' => 'String', ], 'ParameterGroup' => [ 'shape' => 'ParameterGroupStatus', ], 'SSEDescription' => [ 'shape' => 'SSEDescription', ], ], ], 'ClusterAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ClusterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Cluster', ], ], 'ClusterNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ClusterNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ClusterQuotaForCustomerExceededFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'CreateClusterRequest' => [ 'type' => 'structure', 'required' => [ 'ClusterName', 'NodeType', 'ReplicationFactor', 'IamRoleArn', ], 'members' => [ 'ClusterName' => [ 'shape' => 'String', ], 'NodeType' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'ReplicationFactor' => [ 'shape' => 'Integer', ], 'AvailabilityZones' => [ 'shape' => 'AvailabilityZoneList', ], 'SubnetGroupName' => [ 'shape' => 'String', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIdentifierList', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'String', ], 'NotificationTopicArn' => [ 'shape' => 'String', ], 'IamRoleArn' => [ 'shape' => 'String', ], 'ParameterGroupName' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], 'SSESpecification' => [ 'shape' => 'SSESpecification', ], ], ], 'CreateClusterResponse' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], 'CreateParameterGroupRequest' => [ 'type' => 'structure', 'required' => [ 'ParameterGroupName', ], 'members' => [ 'ParameterGroupName' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], ], ], 'CreateParameterGroupResponse' => [ 'type' => 'structure', 'members' => [ 'ParameterGroup' => [ 'shape' => 'ParameterGroup', ], ], ], 'CreateSubnetGroupRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetGroupName', 'SubnetIds', ], 'members' => [ 'SubnetGroupName' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'SubnetIds' => [ 'shape' => 'SubnetIdentifierList', ], ], ], 'CreateSubnetGroupResponse' => [ 'type' => 'structure', 'members' => [ 'SubnetGroup' => [ 'shape' => 'SubnetGroup', ], ], ], 'DecreaseReplicationFactorRequest' => [ 'type' => 'structure', 'required' => [ 'ClusterName', 'NewReplicationFactor', ], 'members' => [ 'ClusterName' => [ 'shape' => 'String', ], 'NewReplicationFactor' => [ 'shape' => 'Integer', ], 'AvailabilityZones' => [ 'shape' => 'AvailabilityZoneList', ], 'NodeIdsToRemove' => [ 'shape' => 'NodeIdentifierList', ], ], ], 'DecreaseReplicationFactorResponse' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], 'DeleteClusterRequest' => [ 'type' => 'structure', 'required' => [ 'ClusterName', ], 'members' => [ 'ClusterName' => [ 'shape' => 'String', ], ], ], 'DeleteClusterResponse' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], 'DeleteParameterGroupRequest' => [ 'type' => 'structure', 'required' => [ 'ParameterGroupName', ], 'members' => [ 'ParameterGroupName' => [ 'shape' => 'String', ], ], ], 'DeleteParameterGroupResponse' => [ 'type' => 'structure', 'members' => [ 'DeletionMessage' => [ 'shape' => 'String', ], ], ], 'DeleteSubnetGroupRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetGroupName', ], 'members' => [ 'SubnetGroupName' => [ 'shape' => 'String', ], ], ], 'DeleteSubnetGroupResponse' => [ 'type' => 'structure', 'members' => [ 'DeletionMessage' => [ 'shape' => 'String', ], ], ], 'DescribeClustersRequest' => [ 'type' => 'structure', 'members' => [ 'ClusterNames' => [ 'shape' => 'ClusterNameList', ], 'MaxResults' => [ 'shape' => 'IntegerOptional', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeClustersResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], 'Clusters' => [ 'shape' => 'ClusterList', ], ], ], 'DescribeDefaultParametersRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'IntegerOptional', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeDefaultParametersResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], 'Parameters' => [ 'shape' => 'ParameterList', ], ], ], 'DescribeEventsRequest' => [ 'type' => 'structure', 'members' => [ 'SourceName' => [ 'shape' => 'String', ], 'SourceType' => [ 'shape' => 'SourceType', ], 'StartTime' => [ 'shape' => 'TStamp', ], 'EndTime' => [ 'shape' => 'TStamp', ], 'Duration' => [ 'shape' => 'IntegerOptional', ], 'MaxResults' => [ 'shape' => 'IntegerOptional', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeEventsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], 'Events' => [ 'shape' => 'EventList', ], ], ], 'DescribeParameterGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'ParameterGroupNames' => [ 'shape' => 'ParameterGroupNameList', ], 'MaxResults' => [ 'shape' => 'IntegerOptional', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeParameterGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], 'ParameterGroups' => [ 'shape' => 'ParameterGroupList', ], ], ], 'DescribeParametersRequest' => [ 'type' => 'structure', 'required' => [ 'ParameterGroupName', ], 'members' => [ 'ParameterGroupName' => [ 'shape' => 'String', ], 'Source' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'IntegerOptional', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeParametersResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], 'Parameters' => [ 'shape' => 'ParameterList', ], ], ], 'DescribeSubnetGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'SubnetGroupNames' => [ 'shape' => 'SubnetGroupNameList', ], 'MaxResults' => [ 'shape' => 'IntegerOptional', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeSubnetGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], 'SubnetGroups' => [ 'shape' => 'SubnetGroupList', ], ], ], 'Endpoint' => [ 'type' => 'structure', 'members' => [ 'Address' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'Integer', ], ], ], 'Event' => [ 'type' => 'structure', 'members' => [ 'SourceName' => [ 'shape' => 'String', ], 'SourceType' => [ 'shape' => 'SourceType', ], 'Message' => [ 'shape' => 'String', ], 'Date' => [ 'shape' => 'TStamp', ], ], ], 'EventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Event', ], ], 'IncreaseReplicationFactorRequest' => [ 'type' => 'structure', 'required' => [ 'ClusterName', 'NewReplicationFactor', ], 'members' => [ 'ClusterName' => [ 'shape' => 'String', ], 'NewReplicationFactor' => [ 'shape' => 'Integer', ], 'AvailabilityZones' => [ 'shape' => 'AvailabilityZoneList', ], ], ], 'IncreaseReplicationFactorResponse' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], 'InsufficientClusterCapacityFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Integer' => [ 'type' => 'integer', ], 'IntegerOptional' => [ 'type' => 'integer', ], 'InvalidARNFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidClusterStateFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidParameterCombinationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'AwsQueryErrorMessage', ], ], 'exception' => true, 'synthetic' => true, ], 'InvalidParameterGroupStateFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidParameterValueException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'AwsQueryErrorMessage', ], ], 'exception' => true, 'synthetic' => true, ], 'InvalidSubnet' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidVPCNetworkStateFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'IsModifiable' => [ 'type' => 'string', 'enum' => [ 'TRUE', 'FALSE', 'CONDITIONAL', ], ], 'KeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ListTagsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceName', ], 'members' => [ 'ResourceName' => [ 'shape' => 'String', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListTagsResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'Node' => [ 'type' => 'structure', 'members' => [ 'NodeId' => [ 'shape' => 'String', ], 'Endpoint' => [ 'shape' => 'Endpoint', ], 'NodeCreateTime' => [ 'shape' => 'TStamp', ], 'AvailabilityZone' => [ 'shape' => 'String', ], 'NodeStatus' => [ 'shape' => 'String', ], 'ParameterGroupStatus' => [ 'shape' => 'String', ], ], ], 'NodeIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'NodeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Node', ], ], 'NodeNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'NodeQuotaForClusterExceededFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'NodeQuotaForCustomerExceededFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'NodeTypeSpecificValue' => [ 'type' => 'structure', 'members' => [ 'NodeType' => [ 'shape' => 'String', ], 'Value' => [ 'shape' => 'String', ], ], ], 'NodeTypeSpecificValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NodeTypeSpecificValue', ], ], 'NotificationConfiguration' => [ 'type' => 'structure', 'members' => [ 'TopicArn' => [ 'shape' => 'String', ], 'TopicStatus' => [ 'shape' => 'String', ], ], ], 'Parameter' => [ 'type' => 'structure', 'members' => [ 'ParameterName' => [ 'shape' => 'String', ], 'ParameterType' => [ 'shape' => 'ParameterType', ], 'ParameterValue' => [ 'shape' => 'String', ], 'NodeTypeSpecificValues' => [ 'shape' => 'NodeTypeSpecificValueList', ], 'Description' => [ 'shape' => 'String', ], 'Source' => [ 'shape' => 'String', ], 'DataType' => [ 'shape' => 'String', ], 'AllowedValues' => [ 'shape' => 'String', ], 'IsModifiable' => [ 'shape' => 'IsModifiable', ], 'ChangeType' => [ 'shape' => 'ChangeType', ], ], ], 'ParameterGroup' => [ 'type' => 'structure', 'members' => [ 'ParameterGroupName' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], ], ], 'ParameterGroupAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ParameterGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParameterGroup', ], ], 'ParameterGroupNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ParameterGroupNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ParameterGroupQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ParameterGroupStatus' => [ 'type' => 'structure', 'members' => [ 'ParameterGroupName' => [ 'shape' => 'String', ], 'ParameterApplyStatus' => [ 'shape' => 'String', ], 'NodeIdsToReboot' => [ 'shape' => 'NodeIdentifierList', ], ], ], 'ParameterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Parameter', ], ], 'ParameterNameValue' => [ 'type' => 'structure', 'members' => [ 'ParameterName' => [ 'shape' => 'String', ], 'ParameterValue' => [ 'shape' => 'String', ], ], ], 'ParameterNameValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParameterNameValue', ], ], 'ParameterType' => [ 'type' => 'string', 'enum' => [ 'DEFAULT', 'NODE_TYPE_SPECIFIC', ], ], 'RebootNodeRequest' => [ 'type' => 'structure', 'required' => [ 'ClusterName', 'NodeId', ], 'members' => [ 'ClusterName' => [ 'shape' => 'String', ], 'NodeId' => [ 'shape' => 'String', ], ], ], 'RebootNodeResponse' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], 'SSEDescription' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'SSEStatus', ], ], ], 'SSEEnabled' => [ 'type' => 'boolean', ], 'SSESpecification' => [ 'type' => 'structure', 'required' => [ 'Enabled', ], 'members' => [ 'Enabled' => [ 'shape' => 'SSEEnabled', ], ], ], 'SSEStatus' => [ 'type' => 'string', 'enum' => [ 'ENABLING', 'ENABLED', 'DISABLING', 'DISABLED', ], ], 'SecurityGroupIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'SecurityGroupMembership' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupIdentifier' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], ], ], 'SecurityGroupMembershipList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupMembership', ], ], 'ServiceLinkedRoleNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'SourceType' => [ 'type' => 'string', 'enum' => [ 'CLUSTER', 'PARAMETER_GROUP', 'SUBNET_GROUP', ], ], 'String' => [ 'type' => 'string', ], 'Subnet' => [ 'type' => 'structure', 'members' => [ 'SubnetIdentifier' => [ 'shape' => 'String', ], 'SubnetAvailabilityZone' => [ 'shape' => 'String', ], ], ], 'SubnetGroup' => [ 'type' => 'structure', 'members' => [ 'SubnetGroupName' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'VpcId' => [ 'shape' => 'String', ], 'Subnets' => [ 'shape' => 'SubnetList', ], ], ], 'SubnetGroupAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'SubnetGroupInUseFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'SubnetGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetGroup', ], ], 'SubnetGroupNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'SubnetGroupNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'SubnetGroupQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'SubnetIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'SubnetInUse' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'SubnetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Subnet', ], ], 'SubnetQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'TStamp' => [ 'type' => 'timestamp', ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', ], 'Value' => [ 'shape' => 'String', ], ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'TagQuotaPerResourceExceeded' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceName', 'Tags', ], 'members' => [ 'ResourceName' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceName', 'TagKeys', ], 'members' => [ 'ResourceName' => [ 'shape' => 'String', ], 'TagKeys' => [ 'shape' => 'KeyList', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], ], ], 'UpdateClusterRequest' => [ 'type' => 'structure', 'required' => [ 'ClusterName', ], 'members' => [ 'ClusterName' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'String', ], 'NotificationTopicArn' => [ 'shape' => 'String', ], 'NotificationTopicStatus' => [ 'shape' => 'String', ], 'ParameterGroupName' => [ 'shape' => 'String', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIdentifierList', ], ], ], 'UpdateClusterResponse' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], 'UpdateParameterGroupRequest' => [ 'type' => 'structure', 'required' => [ 'ParameterGroupName', 'ParameterNameValues', ], 'members' => [ 'ParameterGroupName' => [ 'shape' => 'String', ], 'ParameterNameValues' => [ 'shape' => 'ParameterNameValueList', ], ], ], 'UpdateParameterGroupResponse' => [ 'type' => 'structure', 'members' => [ 'ParameterGroup' => [ 'shape' => 'ParameterGroup', ], ], ], 'UpdateSubnetGroupRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetGroupName', ], 'members' => [ 'SubnetGroupName' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'SubnetIds' => [ 'shape' => 'SubnetIdentifierList', ], ], ], 'UpdateSubnetGroupResponse' => [ 'type' => 'structure', 'members' => [ 'SubnetGroup' => [ 'shape' => 'SubnetGroup', ], ], ], ],]; diff --git a/lib/aws/Aws/data/dax/2017-04-19/paginators-1.json.php b/lib/aws/Aws/data/dax/2017-04-19/paginators-1.json.php new file mode 100644 index 0000000..65f89c8 --- /dev/null +++ b/lib/aws/Aws/data/dax/2017-04-19/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/dax/2017-04-19/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/devicefarm/2015-06-23/api-2.json.php b/lib/aws/Aws/data/devicefarm/2015-06-23/api-2.json.php new file mode 100644 index 0000000..db71192 --- /dev/null +++ b/lib/aws/Aws/data/devicefarm/2015-06-23/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/devicefarm/2015-06-23/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-06-23', 'endpointPrefix' => 'devicefarm', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWS Device Farm', 'serviceId' => 'Device Farm', 'signatureVersion' => 'v4', 'targetPrefix' => 'DeviceFarm_20150623', 'uid' => 'devicefarm-2015-06-23', ], 'operations' => [ 'CreateDevicePool' => [ 'name' => 'CreateDevicePool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDevicePoolRequest', ], 'output' => [ 'shape' => 'CreateDevicePoolResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'CreateInstanceProfile' => [ 'name' => 'CreateInstanceProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateInstanceProfileRequest', ], 'output' => [ 'shape' => 'CreateInstanceProfileResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'CreateNetworkProfile' => [ 'name' => 'CreateNetworkProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNetworkProfileRequest', ], 'output' => [ 'shape' => 'CreateNetworkProfileResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'CreateProject' => [ 'name' => 'CreateProject', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateProjectRequest', ], 'output' => [ 'shape' => 'CreateProjectResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'CreateRemoteAccessSession' => [ 'name' => 'CreateRemoteAccessSession', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRemoteAccessSessionRequest', ], 'output' => [ 'shape' => 'CreateRemoteAccessSessionResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'CreateUpload' => [ 'name' => 'CreateUpload', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateUploadRequest', ], 'output' => [ 'shape' => 'CreateUploadResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'CreateVPCEConfiguration' => [ 'name' => 'CreateVPCEConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVPCEConfigurationRequest', ], 'output' => [ 'shape' => 'CreateVPCEConfigurationResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'DeleteDevicePool' => [ 'name' => 'DeleteDevicePool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDevicePoolRequest', ], 'output' => [ 'shape' => 'DeleteDevicePoolResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'DeleteInstanceProfile' => [ 'name' => 'DeleteInstanceProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteInstanceProfileRequest', ], 'output' => [ 'shape' => 'DeleteInstanceProfileResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'DeleteNetworkProfile' => [ 'name' => 'DeleteNetworkProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNetworkProfileRequest', ], 'output' => [ 'shape' => 'DeleteNetworkProfileResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'DeleteProject' => [ 'name' => 'DeleteProject', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteProjectRequest', ], 'output' => [ 'shape' => 'DeleteProjectResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'DeleteRemoteAccessSession' => [ 'name' => 'DeleteRemoteAccessSession', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRemoteAccessSessionRequest', ], 'output' => [ 'shape' => 'DeleteRemoteAccessSessionResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'DeleteRun' => [ 'name' => 'DeleteRun', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRunRequest', ], 'output' => [ 'shape' => 'DeleteRunResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'DeleteUpload' => [ 'name' => 'DeleteUpload', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteUploadRequest', ], 'output' => [ 'shape' => 'DeleteUploadResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'DeleteVPCEConfiguration' => [ 'name' => 'DeleteVPCEConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVPCEConfigurationRequest', ], 'output' => [ 'shape' => 'DeleteVPCEConfigurationResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceAccountException', ], [ 'shape' => 'InvalidOperationException', ], ], ], 'GetAccountSettings' => [ 'name' => 'GetAccountSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAccountSettingsRequest', ], 'output' => [ 'shape' => 'GetAccountSettingsResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'GetDevice' => [ 'name' => 'GetDevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDeviceRequest', ], 'output' => [ 'shape' => 'GetDeviceResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'GetDeviceInstance' => [ 'name' => 'GetDeviceInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDeviceInstanceRequest', ], 'output' => [ 'shape' => 'GetDeviceInstanceResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'GetDevicePool' => [ 'name' => 'GetDevicePool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDevicePoolRequest', ], 'output' => [ 'shape' => 'GetDevicePoolResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'GetDevicePoolCompatibility' => [ 'name' => 'GetDevicePoolCompatibility', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDevicePoolCompatibilityRequest', ], 'output' => [ 'shape' => 'GetDevicePoolCompatibilityResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'GetInstanceProfile' => [ 'name' => 'GetInstanceProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstanceProfileRequest', ], 'output' => [ 'shape' => 'GetInstanceProfileResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'GetJob' => [ 'name' => 'GetJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetJobRequest', ], 'output' => [ 'shape' => 'GetJobResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'GetNetworkProfile' => [ 'name' => 'GetNetworkProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetNetworkProfileRequest', ], 'output' => [ 'shape' => 'GetNetworkProfileResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'GetOfferingStatus' => [ 'name' => 'GetOfferingStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetOfferingStatusRequest', ], 'output' => [ 'shape' => 'GetOfferingStatusResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'NotEligibleException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'GetProject' => [ 'name' => 'GetProject', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetProjectRequest', ], 'output' => [ 'shape' => 'GetProjectResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'GetRemoteAccessSession' => [ 'name' => 'GetRemoteAccessSession', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRemoteAccessSessionRequest', ], 'output' => [ 'shape' => 'GetRemoteAccessSessionResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'GetRun' => [ 'name' => 'GetRun', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRunRequest', ], 'output' => [ 'shape' => 'GetRunResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'GetSuite' => [ 'name' => 'GetSuite', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSuiteRequest', ], 'output' => [ 'shape' => 'GetSuiteResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'GetTest' => [ 'name' => 'GetTest', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTestRequest', ], 'output' => [ 'shape' => 'GetTestResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'GetUpload' => [ 'name' => 'GetUpload', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetUploadRequest', ], 'output' => [ 'shape' => 'GetUploadResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'GetVPCEConfiguration' => [ 'name' => 'GetVPCEConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetVPCEConfigurationRequest', ], 'output' => [ 'shape' => 'GetVPCEConfigurationResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'InstallToRemoteAccessSession' => [ 'name' => 'InstallToRemoteAccessSession', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'InstallToRemoteAccessSessionRequest', ], 'output' => [ 'shape' => 'InstallToRemoteAccessSessionResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'ListArtifacts' => [ 'name' => 'ListArtifacts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListArtifactsRequest', ], 'output' => [ 'shape' => 'ListArtifactsResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'ListDeviceInstances' => [ 'name' => 'ListDeviceInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDeviceInstancesRequest', ], 'output' => [ 'shape' => 'ListDeviceInstancesResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'ListDevicePools' => [ 'name' => 'ListDevicePools', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDevicePoolsRequest', ], 'output' => [ 'shape' => 'ListDevicePoolsResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'ListDevices' => [ 'name' => 'ListDevices', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDevicesRequest', ], 'output' => [ 'shape' => 'ListDevicesResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'ListInstanceProfiles' => [ 'name' => 'ListInstanceProfiles', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListInstanceProfilesRequest', ], 'output' => [ 'shape' => 'ListInstanceProfilesResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'ListJobs' => [ 'name' => 'ListJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListJobsRequest', ], 'output' => [ 'shape' => 'ListJobsResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'ListNetworkProfiles' => [ 'name' => 'ListNetworkProfiles', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListNetworkProfilesRequest', ], 'output' => [ 'shape' => 'ListNetworkProfilesResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'ListOfferingPromotions' => [ 'name' => 'ListOfferingPromotions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListOfferingPromotionsRequest', ], 'output' => [ 'shape' => 'ListOfferingPromotionsResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'NotEligibleException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'ListOfferingTransactions' => [ 'name' => 'ListOfferingTransactions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListOfferingTransactionsRequest', ], 'output' => [ 'shape' => 'ListOfferingTransactionsResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'NotEligibleException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'ListOfferings' => [ 'name' => 'ListOfferings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListOfferingsRequest', ], 'output' => [ 'shape' => 'ListOfferingsResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'NotEligibleException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'ListProjects' => [ 'name' => 'ListProjects', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListProjectsRequest', ], 'output' => [ 'shape' => 'ListProjectsResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'ListRemoteAccessSessions' => [ 'name' => 'ListRemoteAccessSessions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRemoteAccessSessionsRequest', ], 'output' => [ 'shape' => 'ListRemoteAccessSessionsResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'ListRuns' => [ 'name' => 'ListRuns', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRunsRequest', ], 'output' => [ 'shape' => 'ListRunsResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'ListSamples' => [ 'name' => 'ListSamples', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSamplesRequest', ], 'output' => [ 'shape' => 'ListSamplesResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'ListSuites' => [ 'name' => 'ListSuites', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSuitesRequest', ], 'output' => [ 'shape' => 'ListSuitesResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'ListTests' => [ 'name' => 'ListTests', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTestsRequest', ], 'output' => [ 'shape' => 'ListTestsResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'ListUniqueProblems' => [ 'name' => 'ListUniqueProblems', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListUniqueProblemsRequest', ], 'output' => [ 'shape' => 'ListUniqueProblemsResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'ListUploads' => [ 'name' => 'ListUploads', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListUploadsRequest', ], 'output' => [ 'shape' => 'ListUploadsResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'ListVPCEConfigurations' => [ 'name' => 'ListVPCEConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListVPCEConfigurationsRequest', ], 'output' => [ 'shape' => 'ListVPCEConfigurationsResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'PurchaseOffering' => [ 'name' => 'PurchaseOffering', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseOfferingRequest', ], 'output' => [ 'shape' => 'PurchaseOfferingResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'NotEligibleException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'RenewOffering' => [ 'name' => 'RenewOffering', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RenewOfferingRequest', ], 'output' => [ 'shape' => 'RenewOfferingResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'NotEligibleException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'ScheduleRun' => [ 'name' => 'ScheduleRun', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ScheduleRunRequest', ], 'output' => [ 'shape' => 'ScheduleRunResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'IdempotencyException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'StopJob' => [ 'name' => 'StopJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopJobRequest', ], 'output' => [ 'shape' => 'StopJobResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'StopRemoteAccessSession' => [ 'name' => 'StopRemoteAccessSession', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopRemoteAccessSessionRequest', ], 'output' => [ 'shape' => 'StopRemoteAccessSessionResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'StopRun' => [ 'name' => 'StopRun', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopRunRequest', ], 'output' => [ 'shape' => 'StopRunResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'UpdateDeviceInstance' => [ 'name' => 'UpdateDeviceInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateDeviceInstanceRequest', ], 'output' => [ 'shape' => 'UpdateDeviceInstanceResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'UpdateDevicePool' => [ 'name' => 'UpdateDevicePool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateDevicePoolRequest', ], 'output' => [ 'shape' => 'UpdateDevicePoolResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'UpdateInstanceProfile' => [ 'name' => 'UpdateInstanceProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateInstanceProfileRequest', ], 'output' => [ 'shape' => 'UpdateInstanceProfileResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'UpdateNetworkProfile' => [ 'name' => 'UpdateNetworkProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateNetworkProfileRequest', ], 'output' => [ 'shape' => 'UpdateNetworkProfileResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'UpdateProject' => [ 'name' => 'UpdateProject', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateProjectRequest', ], 'output' => [ 'shape' => 'UpdateProjectResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'UpdateUpload' => [ 'name' => 'UpdateUpload', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateUploadRequest', ], 'output' => [ 'shape' => 'UpdateUploadResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceAccountException', ], ], ], 'UpdateVPCEConfiguration' => [ 'name' => 'UpdateVPCEConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateVPCEConfigurationRequest', ], 'output' => [ 'shape' => 'UpdateVPCEConfigurationResult', ], 'errors' => [ [ 'shape' => 'ArgumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceAccountException', ], [ 'shape' => 'InvalidOperationException', ], ], ], ], 'shapes' => [ 'AWSAccountNumber' => [ 'type' => 'string', 'max' => 16, 'min' => 2, ], 'AccountSettings' => [ 'type' => 'structure', 'members' => [ 'awsAccountNumber' => [ 'shape' => 'AWSAccountNumber', ], 'unmeteredDevices' => [ 'shape' => 'PurchasedDevicesMap', ], 'unmeteredRemoteAccessDevices' => [ 'shape' => 'PurchasedDevicesMap', ], 'maxJobTimeoutMinutes' => [ 'shape' => 'JobTimeoutMinutes', ], 'trialMinutes' => [ 'shape' => 'TrialMinutes', ], 'maxSlots' => [ 'shape' => 'MaxSlotMap', ], 'defaultJobTimeoutMinutes' => [ 'shape' => 'JobTimeoutMinutes', ], 'skipAppResign' => [ 'shape' => 'SkipAppResign', ], ], ], 'AccountsCleanup' => [ 'type' => 'boolean', ], 'AmazonResourceName' => [ 'type' => 'string', 'min' => 32, ], 'AmazonResourceNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'AmazonResourceName', ], ], 'AndroidPaths' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'AppPackagesCleanup' => [ 'type' => 'boolean', ], 'ArgumentException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'Artifact' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], 'type' => [ 'shape' => 'ArtifactType', ], 'extension' => [ 'shape' => 'String', ], 'url' => [ 'shape' => 'URL', ], ], ], 'ArtifactCategory' => [ 'type' => 'string', 'enum' => [ 'SCREENSHOT', 'FILE', 'LOG', ], ], 'ArtifactType' => [ 'type' => 'string', 'enum' => [ 'UNKNOWN', 'SCREENSHOT', 'DEVICE_LOG', 'MESSAGE_LOG', 'VIDEO_LOG', 'RESULT_LOG', 'SERVICE_LOG', 'WEBKIT_LOG', 'INSTRUMENTATION_OUTPUT', 'EXERCISER_MONKEY_OUTPUT', 'CALABASH_JSON_OUTPUT', 'CALABASH_PRETTY_OUTPUT', 'CALABASH_STANDARD_OUTPUT', 'CALABASH_JAVA_XML_OUTPUT', 'AUTOMATION_OUTPUT', 'APPIUM_SERVER_OUTPUT', 'APPIUM_JAVA_OUTPUT', 'APPIUM_JAVA_XML_OUTPUT', 'APPIUM_PYTHON_OUTPUT', 'APPIUM_PYTHON_XML_OUTPUT', 'EXPLORER_EVENT_LOG', 'EXPLORER_SUMMARY_LOG', 'APPLICATION_CRASH_REPORT', 'XCTEST_LOG', 'VIDEO', 'CUSTOMER_ARTIFACT', 'CUSTOMER_ARTIFACT_LOG', 'TESTSPEC_OUTPUT', ], ], 'Artifacts' => [ 'type' => 'list', 'member' => [ 'shape' => 'Artifact', ], ], 'BillingMethod' => [ 'type' => 'string', 'enum' => [ 'METERED', 'UNMETERED', ], ], 'Boolean' => [ 'type' => 'boolean', ], 'CPU' => [ 'type' => 'structure', 'members' => [ 'frequency' => [ 'shape' => 'String', ], 'architecture' => [ 'shape' => 'String', ], 'clock' => [ 'shape' => 'Double', ], ], ], 'ClientId' => [ 'type' => 'string', 'max' => 64, 'min' => 0, ], 'ContentType' => [ 'type' => 'string', 'max' => 64, 'min' => 0, ], 'Counters' => [ 'type' => 'structure', 'members' => [ 'total' => [ 'shape' => 'Integer', ], 'passed' => [ 'shape' => 'Integer', ], 'failed' => [ 'shape' => 'Integer', ], 'warned' => [ 'shape' => 'Integer', ], 'errored' => [ 'shape' => 'Integer', ], 'stopped' => [ 'shape' => 'Integer', ], 'skipped' => [ 'shape' => 'Integer', ], ], ], 'CreateDevicePoolRequest' => [ 'type' => 'structure', 'required' => [ 'projectArn', 'name', 'rules', ], 'members' => [ 'projectArn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Message', ], 'rules' => [ 'shape' => 'Rules', ], 'maxDevices' => [ 'shape' => 'Integer', ], ], ], 'CreateDevicePoolResult' => [ 'type' => 'structure', 'members' => [ 'devicePool' => [ 'shape' => 'DevicePool', ], ], ], 'CreateInstanceProfileRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Message', ], 'packageCleanup' => [ 'shape' => 'Boolean', ], 'excludeAppPackagesFromCleanup' => [ 'shape' => 'PackageIds', ], 'rebootAfterUse' => [ 'shape' => 'Boolean', ], ], ], 'CreateInstanceProfileResult' => [ 'type' => 'structure', 'members' => [ 'instanceProfile' => [ 'shape' => 'InstanceProfile', ], ], ], 'CreateNetworkProfileRequest' => [ 'type' => 'structure', 'required' => [ 'projectArn', 'name', ], 'members' => [ 'projectArn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Message', ], 'type' => [ 'shape' => 'NetworkProfileType', ], 'uplinkBandwidthBits' => [ 'shape' => 'Long', ], 'downlinkBandwidthBits' => [ 'shape' => 'Long', ], 'uplinkDelayMs' => [ 'shape' => 'Long', ], 'downlinkDelayMs' => [ 'shape' => 'Long', ], 'uplinkJitterMs' => [ 'shape' => 'Long', ], 'downlinkJitterMs' => [ 'shape' => 'Long', ], 'uplinkLossPercent' => [ 'shape' => 'PercentInteger', ], 'downlinkLossPercent' => [ 'shape' => 'PercentInteger', ], ], ], 'CreateNetworkProfileResult' => [ 'type' => 'structure', 'members' => [ 'networkProfile' => [ 'shape' => 'NetworkProfile', ], ], ], 'CreateProjectRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'defaultJobTimeoutMinutes' => [ 'shape' => 'JobTimeoutMinutes', ], ], ], 'CreateProjectResult' => [ 'type' => 'structure', 'members' => [ 'project' => [ 'shape' => 'Project', ], ], ], 'CreateRemoteAccessSessionConfiguration' => [ 'type' => 'structure', 'members' => [ 'billingMethod' => [ 'shape' => 'BillingMethod', ], 'vpceConfigurationArns' => [ 'shape' => 'AmazonResourceNames', ], ], ], 'CreateRemoteAccessSessionRequest' => [ 'type' => 'structure', 'required' => [ 'projectArn', 'deviceArn', ], 'members' => [ 'projectArn' => [ 'shape' => 'AmazonResourceName', ], 'deviceArn' => [ 'shape' => 'AmazonResourceName', ], 'instanceArn' => [ 'shape' => 'AmazonResourceName', ], 'sshPublicKey' => [ 'shape' => 'SshPublicKey', ], 'remoteDebugEnabled' => [ 'shape' => 'Boolean', ], 'remoteRecordEnabled' => [ 'shape' => 'Boolean', ], 'remoteRecordAppArn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], 'clientId' => [ 'shape' => 'ClientId', ], 'configuration' => [ 'shape' => 'CreateRemoteAccessSessionConfiguration', ], 'interactionMode' => [ 'shape' => 'InteractionMode', ], 'skipAppResign' => [ 'shape' => 'Boolean', ], ], ], 'CreateRemoteAccessSessionResult' => [ 'type' => 'structure', 'members' => [ 'remoteAccessSession' => [ 'shape' => 'RemoteAccessSession', ], ], ], 'CreateUploadRequest' => [ 'type' => 'structure', 'required' => [ 'projectArn', 'name', 'type', ], 'members' => [ 'projectArn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], 'type' => [ 'shape' => 'UploadType', ], 'contentType' => [ 'shape' => 'ContentType', ], ], ], 'CreateUploadResult' => [ 'type' => 'structure', 'members' => [ 'upload' => [ 'shape' => 'Upload', ], ], ], 'CreateVPCEConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'vpceConfigurationName', 'vpceServiceName', 'serviceDnsName', ], 'members' => [ 'vpceConfigurationName' => [ 'shape' => 'VPCEConfigurationName', ], 'vpceServiceName' => [ 'shape' => 'VPCEServiceName', ], 'serviceDnsName' => [ 'shape' => 'ServiceDnsName', ], 'vpceConfigurationDescription' => [ 'shape' => 'VPCEConfigurationDescription', ], ], ], 'CreateVPCEConfigurationResult' => [ 'type' => 'structure', 'members' => [ 'vpceConfiguration' => [ 'shape' => 'VPCEConfiguration', ], ], ], 'CurrencyCode' => [ 'type' => 'string', 'enum' => [ 'USD', ], ], 'CustomerArtifactPaths' => [ 'type' => 'structure', 'members' => [ 'iosPaths' => [ 'shape' => 'IosPaths', ], 'androidPaths' => [ 'shape' => 'AndroidPaths', ], 'deviceHostPaths' => [ 'shape' => 'DeviceHostPaths', ], ], ], 'DateTime' => [ 'type' => 'timestamp', ], 'DeleteDevicePoolRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'DeleteDevicePoolResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteInstanceProfileRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'DeleteInstanceProfileResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteNetworkProfileRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'DeleteNetworkProfileResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteProjectRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'DeleteProjectResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteRemoteAccessSessionRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'DeleteRemoteAccessSessionResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteRunRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'DeleteRunResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteUploadRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'DeleteUploadResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteVPCEConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'DeleteVPCEConfigurationResult' => [ 'type' => 'structure', 'members' => [], ], 'Device' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], 'manufacturer' => [ 'shape' => 'String', ], 'model' => [ 'shape' => 'String', ], 'modelId' => [ 'shape' => 'String', ], 'formFactor' => [ 'shape' => 'DeviceFormFactor', ], 'platform' => [ 'shape' => 'DevicePlatform', ], 'os' => [ 'shape' => 'String', ], 'cpu' => [ 'shape' => 'CPU', ], 'resolution' => [ 'shape' => 'Resolution', ], 'heapSize' => [ 'shape' => 'Long', ], 'memory' => [ 'shape' => 'Long', ], 'image' => [ 'shape' => 'String', ], 'carrier' => [ 'shape' => 'String', ], 'radio' => [ 'shape' => 'String', ], 'remoteAccessEnabled' => [ 'shape' => 'Boolean', ], 'remoteDebugEnabled' => [ 'shape' => 'Boolean', ], 'fleetType' => [ 'shape' => 'String', ], 'fleetName' => [ 'shape' => 'String', ], 'instances' => [ 'shape' => 'DeviceInstances', ], 'availability' => [ 'shape' => 'DeviceAvailability', ], ], ], 'DeviceAttribute' => [ 'type' => 'string', 'enum' => [ 'ARN', 'PLATFORM', 'FORM_FACTOR', 'MANUFACTURER', 'REMOTE_ACCESS_ENABLED', 'REMOTE_DEBUG_ENABLED', 'APPIUM_VERSION', 'INSTANCE_ARN', 'INSTANCE_LABELS', 'FLEET_TYPE', 'OS_VERSION', 'MODEL', 'AVAILABILITY', ], ], 'DeviceAvailability' => [ 'type' => 'string', 'enum' => [ 'TEMPORARY_NOT_AVAILABLE', 'BUSY', 'AVAILABLE', 'HIGHLY_AVAILABLE', ], ], 'DeviceFilter' => [ 'type' => 'structure', 'members' => [ 'attribute' => [ 'shape' => 'DeviceFilterAttribute', ], 'operator' => [ 'shape' => 'RuleOperator', ], 'values' => [ 'shape' => 'DeviceFilterValues', ], ], ], 'DeviceFilterAttribute' => [ 'type' => 'string', 'enum' => [ 'ARN', 'PLATFORM', 'OS_VERSION', 'MODEL', 'AVAILABILITY', 'FORM_FACTOR', 'MANUFACTURER', 'REMOTE_ACCESS_ENABLED', 'REMOTE_DEBUG_ENABLED', 'INSTANCE_ARN', 'INSTANCE_LABELS', 'FLEET_TYPE', ], ], 'DeviceFilterValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'DeviceFilters' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeviceFilter', ], ], 'DeviceFormFactor' => [ 'type' => 'string', 'enum' => [ 'PHONE', 'TABLET', ], ], 'DeviceHostPaths' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'DeviceInstance' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'deviceArn' => [ 'shape' => 'AmazonResourceName', ], 'labels' => [ 'shape' => 'InstanceLabels', ], 'status' => [ 'shape' => 'InstanceStatus', ], 'udid' => [ 'shape' => 'String', ], 'instanceProfile' => [ 'shape' => 'InstanceProfile', ], ], ], 'DeviceInstances' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeviceInstance', ], ], 'DeviceMinutes' => [ 'type' => 'structure', 'members' => [ 'total' => [ 'shape' => 'Double', ], 'metered' => [ 'shape' => 'Double', ], 'unmetered' => [ 'shape' => 'Double', ], ], ], 'DevicePlatform' => [ 'type' => 'string', 'enum' => [ 'ANDROID', 'IOS', ], ], 'DevicePool' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Message', ], 'type' => [ 'shape' => 'DevicePoolType', ], 'rules' => [ 'shape' => 'Rules', ], 'maxDevices' => [ 'shape' => 'Integer', ], ], ], 'DevicePoolCompatibilityResult' => [ 'type' => 'structure', 'members' => [ 'device' => [ 'shape' => 'Device', ], 'compatible' => [ 'shape' => 'Boolean', ], 'incompatibilityMessages' => [ 'shape' => 'IncompatibilityMessages', ], ], ], 'DevicePoolCompatibilityResults' => [ 'type' => 'list', 'member' => [ 'shape' => 'DevicePoolCompatibilityResult', ], ], 'DevicePoolType' => [ 'type' => 'string', 'enum' => [ 'CURATED', 'PRIVATE', ], ], 'DevicePools' => [ 'type' => 'list', 'member' => [ 'shape' => 'DevicePool', ], ], 'DeviceSelectionConfiguration' => [ 'type' => 'structure', 'required' => [ 'filters', 'maxDevices', ], 'members' => [ 'filters' => [ 'shape' => 'DeviceFilters', ], 'maxDevices' => [ 'shape' => 'Integer', ], ], ], 'DeviceSelectionResult' => [ 'type' => 'structure', 'members' => [ 'filters' => [ 'shape' => 'DeviceFilters', ], 'matchedDevicesCount' => [ 'shape' => 'Integer', ], 'maxDevices' => [ 'shape' => 'Integer', ], ], ], 'Devices' => [ 'type' => 'list', 'member' => [ 'shape' => 'Device', ], ], 'Double' => [ 'type' => 'double', ], 'ExecutionConfiguration' => [ 'type' => 'structure', 'members' => [ 'jobTimeoutMinutes' => [ 'shape' => 'JobTimeoutMinutes', ], 'accountsCleanup' => [ 'shape' => 'AccountsCleanup', ], 'appPackagesCleanup' => [ 'shape' => 'AppPackagesCleanup', ], 'videoCapture' => [ 'shape' => 'VideoCapture', ], 'skipAppResign' => [ 'shape' => 'SkipAppResign', ], ], ], 'ExecutionResult' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'PASSED', 'WARNED', 'FAILED', 'SKIPPED', 'ERRORED', 'STOPPED', ], ], 'ExecutionResultCode' => [ 'type' => 'string', 'enum' => [ 'PARSING_FAILED', 'VPC_ENDPOINT_SETUP_FAILED', ], ], 'ExecutionStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'PENDING_CONCURRENCY', 'PENDING_DEVICE', 'PROCESSING', 'SCHEDULING', 'PREPARING', 'RUNNING', 'COMPLETED', 'STOPPING', ], ], 'Filter' => [ 'type' => 'string', 'max' => 8192, 'min' => 0, ], 'GetAccountSettingsRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetAccountSettingsResult' => [ 'type' => 'structure', 'members' => [ 'accountSettings' => [ 'shape' => 'AccountSettings', ], ], ], 'GetDeviceInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'GetDeviceInstanceResult' => [ 'type' => 'structure', 'members' => [ 'deviceInstance' => [ 'shape' => 'DeviceInstance', ], ], ], 'GetDevicePoolCompatibilityRequest' => [ 'type' => 'structure', 'required' => [ 'devicePoolArn', ], 'members' => [ 'devicePoolArn' => [ 'shape' => 'AmazonResourceName', ], 'appArn' => [ 'shape' => 'AmazonResourceName', ], 'testType' => [ 'shape' => 'TestType', ], 'test' => [ 'shape' => 'ScheduleRunTest', ], 'configuration' => [ 'shape' => 'ScheduleRunConfiguration', ], ], ], 'GetDevicePoolCompatibilityResult' => [ 'type' => 'structure', 'members' => [ 'compatibleDevices' => [ 'shape' => 'DevicePoolCompatibilityResults', ], 'incompatibleDevices' => [ 'shape' => 'DevicePoolCompatibilityResults', ], ], ], 'GetDevicePoolRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'GetDevicePoolResult' => [ 'type' => 'structure', 'members' => [ 'devicePool' => [ 'shape' => 'DevicePool', ], ], ], 'GetDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'GetDeviceResult' => [ 'type' => 'structure', 'members' => [ 'device' => [ 'shape' => 'Device', ], ], ], 'GetInstanceProfileRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'GetInstanceProfileResult' => [ 'type' => 'structure', 'members' => [ 'instanceProfile' => [ 'shape' => 'InstanceProfile', ], ], ], 'GetJobRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'GetJobResult' => [ 'type' => 'structure', 'members' => [ 'job' => [ 'shape' => 'Job', ], ], ], 'GetNetworkProfileRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'GetNetworkProfileResult' => [ 'type' => 'structure', 'members' => [ 'networkProfile' => [ 'shape' => 'NetworkProfile', ], ], ], 'GetOfferingStatusRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'GetOfferingStatusResult' => [ 'type' => 'structure', 'members' => [ 'current' => [ 'shape' => 'OfferingStatusMap', ], 'nextPeriod' => [ 'shape' => 'OfferingStatusMap', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'GetProjectRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'GetProjectResult' => [ 'type' => 'structure', 'members' => [ 'project' => [ 'shape' => 'Project', ], ], ], 'GetRemoteAccessSessionRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'GetRemoteAccessSessionResult' => [ 'type' => 'structure', 'members' => [ 'remoteAccessSession' => [ 'shape' => 'RemoteAccessSession', ], ], ], 'GetRunRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'GetRunResult' => [ 'type' => 'structure', 'members' => [ 'run' => [ 'shape' => 'Run', ], ], ], 'GetSuiteRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'GetSuiteResult' => [ 'type' => 'structure', 'members' => [ 'suite' => [ 'shape' => 'Suite', ], ], ], 'GetTestRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'GetTestResult' => [ 'type' => 'structure', 'members' => [ 'test' => [ 'shape' => 'Test', ], ], ], 'GetUploadRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'GetUploadResult' => [ 'type' => 'structure', 'members' => [ 'upload' => [ 'shape' => 'Upload', ], ], ], 'GetVPCEConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'GetVPCEConfigurationResult' => [ 'type' => 'structure', 'members' => [ 'vpceConfiguration' => [ 'shape' => 'VPCEConfiguration', ], ], ], 'HostAddress' => [ 'type' => 'string', 'max' => 1024, ], 'IdempotencyException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'IncompatibilityMessage' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'Message', ], 'type' => [ 'shape' => 'DeviceAttribute', ], ], ], 'IncompatibilityMessages' => [ 'type' => 'list', 'member' => [ 'shape' => 'IncompatibilityMessage', ], ], 'InstallToRemoteAccessSessionRequest' => [ 'type' => 'structure', 'required' => [ 'remoteAccessSessionArn', 'appArn', ], 'members' => [ 'remoteAccessSessionArn' => [ 'shape' => 'AmazonResourceName', ], 'appArn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'InstallToRemoteAccessSessionResult' => [ 'type' => 'structure', 'members' => [ 'appUpload' => [ 'shape' => 'Upload', ], ], ], 'InstanceLabels' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'InstanceProfile' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'packageCleanup' => [ 'shape' => 'Boolean', ], 'excludeAppPackagesFromCleanup' => [ 'shape' => 'PackageIds', ], 'rebootAfterUse' => [ 'shape' => 'Boolean', ], 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Message', ], ], ], 'InstanceProfiles' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceProfile', ], ], 'InstanceStatus' => [ 'type' => 'string', 'enum' => [ 'IN_USE', 'PREPARING', 'AVAILABLE', 'NOT_AVAILABLE', ], ], 'Integer' => [ 'type' => 'integer', ], 'InteractionMode' => [ 'type' => 'string', 'enum' => [ 'INTERACTIVE', 'NO_VIDEO', 'VIDEO_ONLY', ], 'max' => 64, 'min' => 0, ], 'InvalidOperationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'IosPaths' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'Job' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], 'type' => [ 'shape' => 'TestType', ], 'created' => [ 'shape' => 'DateTime', ], 'status' => [ 'shape' => 'ExecutionStatus', ], 'result' => [ 'shape' => 'ExecutionResult', ], 'started' => [ 'shape' => 'DateTime', ], 'stopped' => [ 'shape' => 'DateTime', ], 'counters' => [ 'shape' => 'Counters', ], 'message' => [ 'shape' => 'Message', ], 'device' => [ 'shape' => 'Device', ], 'instanceArn' => [ 'shape' => 'AmazonResourceName', ], 'deviceMinutes' => [ 'shape' => 'DeviceMinutes', ], 'videoEndpoint' => [ 'shape' => 'String', ], 'videoCapture' => [ 'shape' => 'VideoCapture', ], ], ], 'JobTimeoutMinutes' => [ 'type' => 'integer', ], 'Jobs' => [ 'type' => 'list', 'member' => [ 'shape' => 'Job', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'ListArtifactsRequest' => [ 'type' => 'structure', 'required' => [ 'arn', 'type', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'type' => [ 'shape' => 'ArtifactCategory', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListArtifactsResult' => [ 'type' => 'structure', 'members' => [ 'artifacts' => [ 'shape' => 'Artifacts', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListDeviceInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'Integer', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListDeviceInstancesResult' => [ 'type' => 'structure', 'members' => [ 'deviceInstances' => [ 'shape' => 'DeviceInstances', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListDevicePoolsRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'type' => [ 'shape' => 'DevicePoolType', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListDevicePoolsResult' => [ 'type' => 'structure', 'members' => [ 'devicePools' => [ 'shape' => 'DevicePools', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListDevicesRequest' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], 'filters' => [ 'shape' => 'DeviceFilters', ], ], ], 'ListDevicesResult' => [ 'type' => 'structure', 'members' => [ 'devices' => [ 'shape' => 'Devices', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListInstanceProfilesRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'Integer', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListInstanceProfilesResult' => [ 'type' => 'structure', 'members' => [ 'instanceProfiles' => [ 'shape' => 'InstanceProfiles', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListJobsRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListJobsResult' => [ 'type' => 'structure', 'members' => [ 'jobs' => [ 'shape' => 'Jobs', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListNetworkProfilesRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'type' => [ 'shape' => 'NetworkProfileType', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListNetworkProfilesResult' => [ 'type' => 'structure', 'members' => [ 'networkProfiles' => [ 'shape' => 'NetworkProfiles', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListOfferingPromotionsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListOfferingPromotionsResult' => [ 'type' => 'structure', 'members' => [ 'offeringPromotions' => [ 'shape' => 'OfferingPromotions', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListOfferingTransactionsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListOfferingTransactionsResult' => [ 'type' => 'structure', 'members' => [ 'offeringTransactions' => [ 'shape' => 'OfferingTransactions', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListOfferingsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListOfferingsResult' => [ 'type' => 'structure', 'members' => [ 'offerings' => [ 'shape' => 'Offerings', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListProjectsRequest' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListProjectsResult' => [ 'type' => 'structure', 'members' => [ 'projects' => [ 'shape' => 'Projects', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListRemoteAccessSessionsRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListRemoteAccessSessionsResult' => [ 'type' => 'structure', 'members' => [ 'remoteAccessSessions' => [ 'shape' => 'RemoteAccessSessions', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListRunsRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListRunsResult' => [ 'type' => 'structure', 'members' => [ 'runs' => [ 'shape' => 'Runs', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListSamplesRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListSamplesResult' => [ 'type' => 'structure', 'members' => [ 'samples' => [ 'shape' => 'Samples', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListSuitesRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListSuitesResult' => [ 'type' => 'structure', 'members' => [ 'suites' => [ 'shape' => 'Suites', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListTestsRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListTestsResult' => [ 'type' => 'structure', 'members' => [ 'tests' => [ 'shape' => 'Tests', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListUniqueProblemsRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListUniqueProblemsResult' => [ 'type' => 'structure', 'members' => [ 'uniqueProblems' => [ 'shape' => 'UniqueProblemsByExecutionResultMap', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListUploadsRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'type' => [ 'shape' => 'UploadType', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListUploadsResult' => [ 'type' => 'structure', 'members' => [ 'uploads' => [ 'shape' => 'Uploads', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListVPCEConfigurationsRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'Integer', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListVPCEConfigurationsResult' => [ 'type' => 'structure', 'members' => [ 'vpceConfigurations' => [ 'shape' => 'VPCEConfigurations', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'Location' => [ 'type' => 'structure', 'required' => [ 'latitude', 'longitude', ], 'members' => [ 'latitude' => [ 'shape' => 'Double', ], 'longitude' => [ 'shape' => 'Double', ], ], ], 'Long' => [ 'type' => 'long', ], 'MaxSlotMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'Integer', ], ], 'Message' => [ 'type' => 'string', 'max' => 16384, 'min' => 0, ], 'Metadata' => [ 'type' => 'string', 'max' => 8192, 'min' => 0, ], 'MonetaryAmount' => [ 'type' => 'structure', 'members' => [ 'amount' => [ 'shape' => 'Double', ], 'currencyCode' => [ 'shape' => 'CurrencyCode', ], ], ], 'Name' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'NetworkProfile' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Message', ], 'type' => [ 'shape' => 'NetworkProfileType', ], 'uplinkBandwidthBits' => [ 'shape' => 'Long', ], 'downlinkBandwidthBits' => [ 'shape' => 'Long', ], 'uplinkDelayMs' => [ 'shape' => 'Long', ], 'downlinkDelayMs' => [ 'shape' => 'Long', ], 'uplinkJitterMs' => [ 'shape' => 'Long', ], 'downlinkJitterMs' => [ 'shape' => 'Long', ], 'uplinkLossPercent' => [ 'shape' => 'PercentInteger', ], 'downlinkLossPercent' => [ 'shape' => 'PercentInteger', ], ], ], 'NetworkProfileType' => [ 'type' => 'string', 'enum' => [ 'CURATED', 'PRIVATE', ], ], 'NetworkProfiles' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkProfile', ], ], 'NotEligibleException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'Offering' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'OfferingIdentifier', ], 'description' => [ 'shape' => 'Message', ], 'type' => [ 'shape' => 'OfferingType', ], 'platform' => [ 'shape' => 'DevicePlatform', ], 'recurringCharges' => [ 'shape' => 'RecurringCharges', ], ], ], 'OfferingIdentifier' => [ 'type' => 'string', 'min' => 32, ], 'OfferingPromotion' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'OfferingPromotionIdentifier', ], 'description' => [ 'shape' => 'Message', ], ], ], 'OfferingPromotionIdentifier' => [ 'type' => 'string', 'min' => 4, ], 'OfferingPromotions' => [ 'type' => 'list', 'member' => [ 'shape' => 'OfferingPromotion', ], ], 'OfferingStatus' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'OfferingTransactionType', ], 'offering' => [ 'shape' => 'Offering', ], 'quantity' => [ 'shape' => 'Integer', ], 'effectiveOn' => [ 'shape' => 'DateTime', ], ], ], 'OfferingStatusMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'OfferingIdentifier', ], 'value' => [ 'shape' => 'OfferingStatus', ], ], 'OfferingTransaction' => [ 'type' => 'structure', 'members' => [ 'offeringStatus' => [ 'shape' => 'OfferingStatus', ], 'transactionId' => [ 'shape' => 'TransactionIdentifier', ], 'offeringPromotionId' => [ 'shape' => 'OfferingPromotionIdentifier', ], 'createdOn' => [ 'shape' => 'DateTime', ], 'cost' => [ 'shape' => 'MonetaryAmount', ], ], ], 'OfferingTransactionType' => [ 'type' => 'string', 'enum' => [ 'PURCHASE', 'RENEW', 'SYSTEM', ], ], 'OfferingTransactions' => [ 'type' => 'list', 'member' => [ 'shape' => 'OfferingTransaction', ], ], 'OfferingType' => [ 'type' => 'string', 'enum' => [ 'RECURRING', ], ], 'Offerings' => [ 'type' => 'list', 'member' => [ 'shape' => 'Offering', ], ], 'PackageIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'PaginationToken' => [ 'type' => 'string', 'max' => 1024, 'min' => 4, ], 'PercentInteger' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'Problem' => [ 'type' => 'structure', 'members' => [ 'run' => [ 'shape' => 'ProblemDetail', ], 'job' => [ 'shape' => 'ProblemDetail', ], 'suite' => [ 'shape' => 'ProblemDetail', ], 'test' => [ 'shape' => 'ProblemDetail', ], 'device' => [ 'shape' => 'Device', ], 'result' => [ 'shape' => 'ExecutionResult', ], 'message' => [ 'shape' => 'Message', ], ], ], 'ProblemDetail' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], ], ], 'Problems' => [ 'type' => 'list', 'member' => [ 'shape' => 'Problem', ], ], 'Project' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], 'defaultJobTimeoutMinutes' => [ 'shape' => 'JobTimeoutMinutes', ], 'created' => [ 'shape' => 'DateTime', ], ], ], 'Projects' => [ 'type' => 'list', 'member' => [ 'shape' => 'Project', ], ], 'PurchaseOfferingRequest' => [ 'type' => 'structure', 'members' => [ 'offeringId' => [ 'shape' => 'OfferingIdentifier', ], 'quantity' => [ 'shape' => 'Integer', ], 'offeringPromotionId' => [ 'shape' => 'OfferingPromotionIdentifier', ], ], ], 'PurchaseOfferingResult' => [ 'type' => 'structure', 'members' => [ 'offeringTransaction' => [ 'shape' => 'OfferingTransaction', ], ], ], 'PurchasedDevicesMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'DevicePlatform', ], 'value' => [ 'shape' => 'Integer', ], ], 'Radios' => [ 'type' => 'structure', 'members' => [ 'wifi' => [ 'shape' => 'Boolean', ], 'bluetooth' => [ 'shape' => 'Boolean', ], 'nfc' => [ 'shape' => 'Boolean', ], 'gps' => [ 'shape' => 'Boolean', ], ], ], 'RecurringCharge' => [ 'type' => 'structure', 'members' => [ 'cost' => [ 'shape' => 'MonetaryAmount', ], 'frequency' => [ 'shape' => 'RecurringChargeFrequency', ], ], ], 'RecurringChargeFrequency' => [ 'type' => 'string', 'enum' => [ 'MONTHLY', ], ], 'RecurringCharges' => [ 'type' => 'list', 'member' => [ 'shape' => 'RecurringCharge', ], ], 'RemoteAccessSession' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], 'created' => [ 'shape' => 'DateTime', ], 'status' => [ 'shape' => 'ExecutionStatus', ], 'result' => [ 'shape' => 'ExecutionResult', ], 'message' => [ 'shape' => 'Message', ], 'started' => [ 'shape' => 'DateTime', ], 'stopped' => [ 'shape' => 'DateTime', ], 'device' => [ 'shape' => 'Device', ], 'instanceArn' => [ 'shape' => 'AmazonResourceName', ], 'remoteDebugEnabled' => [ 'shape' => 'Boolean', ], 'remoteRecordEnabled' => [ 'shape' => 'Boolean', ], 'remoteRecordAppArn' => [ 'shape' => 'AmazonResourceName', ], 'hostAddress' => [ 'shape' => 'HostAddress', ], 'clientId' => [ 'shape' => 'ClientId', ], 'billingMethod' => [ 'shape' => 'BillingMethod', ], 'deviceMinutes' => [ 'shape' => 'DeviceMinutes', ], 'endpoint' => [ 'shape' => 'String', ], 'deviceUdid' => [ 'shape' => 'String', ], 'interactionMode' => [ 'shape' => 'InteractionMode', ], 'skipAppResign' => [ 'shape' => 'SkipAppResign', ], ], ], 'RemoteAccessSessions' => [ 'type' => 'list', 'member' => [ 'shape' => 'RemoteAccessSession', ], ], 'RenewOfferingRequest' => [ 'type' => 'structure', 'members' => [ 'offeringId' => [ 'shape' => 'OfferingIdentifier', ], 'quantity' => [ 'shape' => 'Integer', ], ], ], 'RenewOfferingResult' => [ 'type' => 'structure', 'members' => [ 'offeringTransaction' => [ 'shape' => 'OfferingTransaction', ], ], ], 'Resolution' => [ 'type' => 'structure', 'members' => [ 'width' => [ 'shape' => 'Integer', ], 'height' => [ 'shape' => 'Integer', ], ], ], 'Rule' => [ 'type' => 'structure', 'members' => [ 'attribute' => [ 'shape' => 'DeviceAttribute', ], 'operator' => [ 'shape' => 'RuleOperator', ], 'value' => [ 'shape' => 'String', ], ], ], 'RuleOperator' => [ 'type' => 'string', 'enum' => [ 'EQUALS', 'LESS_THAN', 'LESS_THAN_OR_EQUALS', 'GREATER_THAN', 'GREATER_THAN_OR_EQUALS', 'IN', 'NOT_IN', 'CONTAINS', ], ], 'Rules' => [ 'type' => 'list', 'member' => [ 'shape' => 'Rule', ], ], 'Run' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], 'type' => [ 'shape' => 'TestType', ], 'platform' => [ 'shape' => 'DevicePlatform', ], 'created' => [ 'shape' => 'DateTime', ], 'status' => [ 'shape' => 'ExecutionStatus', ], 'result' => [ 'shape' => 'ExecutionResult', ], 'started' => [ 'shape' => 'DateTime', ], 'stopped' => [ 'shape' => 'DateTime', ], 'counters' => [ 'shape' => 'Counters', ], 'message' => [ 'shape' => 'Message', ], 'totalJobs' => [ 'shape' => 'Integer', ], 'completedJobs' => [ 'shape' => 'Integer', ], 'billingMethod' => [ 'shape' => 'BillingMethod', ], 'deviceMinutes' => [ 'shape' => 'DeviceMinutes', ], 'networkProfile' => [ 'shape' => 'NetworkProfile', ], 'parsingResultUrl' => [ 'shape' => 'String', ], 'resultCode' => [ 'shape' => 'ExecutionResultCode', ], 'seed' => [ 'shape' => 'Integer', ], 'appUpload' => [ 'shape' => 'AmazonResourceName', ], 'eventCount' => [ 'shape' => 'Integer', ], 'jobTimeoutMinutes' => [ 'shape' => 'JobTimeoutMinutes', ], 'devicePoolArn' => [ 'shape' => 'AmazonResourceName', ], 'locale' => [ 'shape' => 'String', ], 'radios' => [ 'shape' => 'Radios', ], 'location' => [ 'shape' => 'Location', ], 'customerArtifactPaths' => [ 'shape' => 'CustomerArtifactPaths', ], 'webUrl' => [ 'shape' => 'String', ], 'skipAppResign' => [ 'shape' => 'SkipAppResign', ], 'testSpecArn' => [ 'shape' => 'AmazonResourceName', ], 'deviceSelectionResult' => [ 'shape' => 'DeviceSelectionResult', ], ], ], 'Runs' => [ 'type' => 'list', 'member' => [ 'shape' => 'Run', ], ], 'Sample' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'type' => [ 'shape' => 'SampleType', ], 'url' => [ 'shape' => 'URL', ], ], ], 'SampleType' => [ 'type' => 'string', 'enum' => [ 'CPU', 'MEMORY', 'THREADS', 'RX_RATE', 'TX_RATE', 'RX', 'TX', 'NATIVE_FRAMES', 'NATIVE_FPS', 'NATIVE_MIN_DRAWTIME', 'NATIVE_AVG_DRAWTIME', 'NATIVE_MAX_DRAWTIME', 'OPENGL_FRAMES', 'OPENGL_FPS', 'OPENGL_MIN_DRAWTIME', 'OPENGL_AVG_DRAWTIME', 'OPENGL_MAX_DRAWTIME', ], ], 'Samples' => [ 'type' => 'list', 'member' => [ 'shape' => 'Sample', ], ], 'ScheduleRunConfiguration' => [ 'type' => 'structure', 'members' => [ 'extraDataPackageArn' => [ 'shape' => 'AmazonResourceName', ], 'networkProfileArn' => [ 'shape' => 'AmazonResourceName', ], 'locale' => [ 'shape' => 'String', ], 'location' => [ 'shape' => 'Location', ], 'vpceConfigurationArns' => [ 'shape' => 'AmazonResourceNames', ], 'customerArtifactPaths' => [ 'shape' => 'CustomerArtifactPaths', ], 'radios' => [ 'shape' => 'Radios', ], 'auxiliaryApps' => [ 'shape' => 'AmazonResourceNames', ], 'billingMethod' => [ 'shape' => 'BillingMethod', ], ], ], 'ScheduleRunRequest' => [ 'type' => 'structure', 'required' => [ 'projectArn', 'test', ], 'members' => [ 'projectArn' => [ 'shape' => 'AmazonResourceName', ], 'appArn' => [ 'shape' => 'AmazonResourceName', ], 'devicePoolArn' => [ 'shape' => 'AmazonResourceName', ], 'deviceSelectionConfiguration' => [ 'shape' => 'DeviceSelectionConfiguration', ], 'name' => [ 'shape' => 'Name', ], 'test' => [ 'shape' => 'ScheduleRunTest', ], 'configuration' => [ 'shape' => 'ScheduleRunConfiguration', ], 'executionConfiguration' => [ 'shape' => 'ExecutionConfiguration', ], ], ], 'ScheduleRunResult' => [ 'type' => 'structure', 'members' => [ 'run' => [ 'shape' => 'Run', ], ], ], 'ScheduleRunTest' => [ 'type' => 'structure', 'required' => [ 'type', ], 'members' => [ 'type' => [ 'shape' => 'TestType', ], 'testPackageArn' => [ 'shape' => 'AmazonResourceName', ], 'testSpecArn' => [ 'shape' => 'AmazonResourceName', ], 'filter' => [ 'shape' => 'Filter', ], 'parameters' => [ 'shape' => 'TestParameters', ], ], ], 'ServiceAccountException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'ServiceDnsName' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'SkipAppResign' => [ 'type' => 'boolean', ], 'SshPublicKey' => [ 'type' => 'string', 'max' => 8192, 'min' => 0, ], 'StopJobRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'StopJobResult' => [ 'type' => 'structure', 'members' => [ 'job' => [ 'shape' => 'Job', ], ], ], 'StopRemoteAccessSessionRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'StopRemoteAccessSessionResult' => [ 'type' => 'structure', 'members' => [ 'remoteAccessSession' => [ 'shape' => 'RemoteAccessSession', ], ], ], 'StopRunRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'StopRunResult' => [ 'type' => 'structure', 'members' => [ 'run' => [ 'shape' => 'Run', ], ], ], 'String' => [ 'type' => 'string', ], 'Suite' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], 'type' => [ 'shape' => 'TestType', ], 'created' => [ 'shape' => 'DateTime', ], 'status' => [ 'shape' => 'ExecutionStatus', ], 'result' => [ 'shape' => 'ExecutionResult', ], 'started' => [ 'shape' => 'DateTime', ], 'stopped' => [ 'shape' => 'DateTime', ], 'counters' => [ 'shape' => 'Counters', ], 'message' => [ 'shape' => 'Message', ], 'deviceMinutes' => [ 'shape' => 'DeviceMinutes', ], ], ], 'Suites' => [ 'type' => 'list', 'member' => [ 'shape' => 'Suite', ], ], 'Test' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], 'type' => [ 'shape' => 'TestType', ], 'created' => [ 'shape' => 'DateTime', ], 'status' => [ 'shape' => 'ExecutionStatus', ], 'result' => [ 'shape' => 'ExecutionResult', ], 'started' => [ 'shape' => 'DateTime', ], 'stopped' => [ 'shape' => 'DateTime', ], 'counters' => [ 'shape' => 'Counters', ], 'message' => [ 'shape' => 'Message', ], 'deviceMinutes' => [ 'shape' => 'DeviceMinutes', ], ], ], 'TestParameters' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'TestType' => [ 'type' => 'string', 'enum' => [ 'BUILTIN_FUZZ', 'BUILTIN_EXPLORER', 'WEB_PERFORMANCE_PROFILE', 'APPIUM_JAVA_JUNIT', 'APPIUM_JAVA_TESTNG', 'APPIUM_PYTHON', 'APPIUM_NODE', 'APPIUM_RUBY', 'APPIUM_WEB_JAVA_JUNIT', 'APPIUM_WEB_JAVA_TESTNG', 'APPIUM_WEB_PYTHON', 'APPIUM_WEB_NODE', 'APPIUM_WEB_RUBY', 'CALABASH', 'INSTRUMENTATION', 'UIAUTOMATION', 'UIAUTOMATOR', 'XCTEST', 'XCTEST_UI', 'REMOTE_ACCESS_RECORD', 'REMOTE_ACCESS_REPLAY', ], ], 'Tests' => [ 'type' => 'list', 'member' => [ 'shape' => 'Test', ], ], 'TransactionIdentifier' => [ 'type' => 'string', 'min' => 32, ], 'TrialMinutes' => [ 'type' => 'structure', 'members' => [ 'total' => [ 'shape' => 'Double', ], 'remaining' => [ 'shape' => 'Double', ], ], ], 'URL' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'UniqueProblem' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'Message', ], 'problems' => [ 'shape' => 'Problems', ], ], ], 'UniqueProblems' => [ 'type' => 'list', 'member' => [ 'shape' => 'UniqueProblem', ], ], 'UniqueProblemsByExecutionResultMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'ExecutionResult', ], 'value' => [ 'shape' => 'UniqueProblems', ], ], 'UpdateDeviceInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'profileArn' => [ 'shape' => 'AmazonResourceName', ], 'labels' => [ 'shape' => 'InstanceLabels', ], ], ], 'UpdateDeviceInstanceResult' => [ 'type' => 'structure', 'members' => [ 'deviceInstance' => [ 'shape' => 'DeviceInstance', ], ], ], 'UpdateDevicePoolRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Message', ], 'rules' => [ 'shape' => 'Rules', ], 'maxDevices' => [ 'shape' => 'Integer', ], 'clearMaxDevices' => [ 'shape' => 'Boolean', ], ], ], 'UpdateDevicePoolResult' => [ 'type' => 'structure', 'members' => [ 'devicePool' => [ 'shape' => 'DevicePool', ], ], ], 'UpdateInstanceProfileRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Message', ], 'packageCleanup' => [ 'shape' => 'Boolean', ], 'excludeAppPackagesFromCleanup' => [ 'shape' => 'PackageIds', ], 'rebootAfterUse' => [ 'shape' => 'Boolean', ], ], ], 'UpdateInstanceProfileResult' => [ 'type' => 'structure', 'members' => [ 'instanceProfile' => [ 'shape' => 'InstanceProfile', ], ], ], 'UpdateNetworkProfileRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Message', ], 'type' => [ 'shape' => 'NetworkProfileType', ], 'uplinkBandwidthBits' => [ 'shape' => 'Long', ], 'downlinkBandwidthBits' => [ 'shape' => 'Long', ], 'uplinkDelayMs' => [ 'shape' => 'Long', ], 'downlinkDelayMs' => [ 'shape' => 'Long', ], 'uplinkJitterMs' => [ 'shape' => 'Long', ], 'downlinkJitterMs' => [ 'shape' => 'Long', ], 'uplinkLossPercent' => [ 'shape' => 'PercentInteger', ], 'downlinkLossPercent' => [ 'shape' => 'PercentInteger', ], ], ], 'UpdateNetworkProfileResult' => [ 'type' => 'structure', 'members' => [ 'networkProfile' => [ 'shape' => 'NetworkProfile', ], ], ], 'UpdateProjectRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], 'defaultJobTimeoutMinutes' => [ 'shape' => 'JobTimeoutMinutes', ], ], ], 'UpdateProjectResult' => [ 'type' => 'structure', 'members' => [ 'project' => [ 'shape' => 'Project', ], ], ], 'UpdateUploadRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], 'contentType' => [ 'shape' => 'ContentType', ], 'editContent' => [ 'shape' => 'Boolean', ], ], ], 'UpdateUploadResult' => [ 'type' => 'structure', 'members' => [ 'upload' => [ 'shape' => 'Upload', ], ], ], 'UpdateVPCEConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'vpceConfigurationName' => [ 'shape' => 'VPCEConfigurationName', ], 'vpceServiceName' => [ 'shape' => 'VPCEServiceName', ], 'serviceDnsName' => [ 'shape' => 'ServiceDnsName', ], 'vpceConfigurationDescription' => [ 'shape' => 'VPCEConfigurationDescription', ], ], ], 'UpdateVPCEConfigurationResult' => [ 'type' => 'structure', 'members' => [ 'vpceConfiguration' => [ 'shape' => 'VPCEConfiguration', ], ], ], 'Upload' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'name' => [ 'shape' => 'Name', ], 'created' => [ 'shape' => 'DateTime', ], 'type' => [ 'shape' => 'UploadType', ], 'status' => [ 'shape' => 'UploadStatus', ], 'url' => [ 'shape' => 'URL', ], 'metadata' => [ 'shape' => 'Metadata', ], 'contentType' => [ 'shape' => 'ContentType', ], 'message' => [ 'shape' => 'Message', ], 'category' => [ 'shape' => 'UploadCategory', ], ], ], 'UploadCategory' => [ 'type' => 'string', 'enum' => [ 'CURATED', 'PRIVATE', ], ], 'UploadStatus' => [ 'type' => 'string', 'enum' => [ 'INITIALIZED', 'PROCESSING', 'SUCCEEDED', 'FAILED', ], ], 'UploadType' => [ 'type' => 'string', 'enum' => [ 'ANDROID_APP', 'IOS_APP', 'WEB_APP', 'EXTERNAL_DATA', 'APPIUM_JAVA_JUNIT_TEST_PACKAGE', 'APPIUM_JAVA_TESTNG_TEST_PACKAGE', 'APPIUM_PYTHON_TEST_PACKAGE', 'APPIUM_NODE_TEST_PACKAGE', 'APPIUM_RUBY_TEST_PACKAGE', 'APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE', 'APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE', 'APPIUM_WEB_PYTHON_TEST_PACKAGE', 'APPIUM_WEB_NODE_TEST_PACKAGE', 'APPIUM_WEB_RUBY_TEST_PACKAGE', 'CALABASH_TEST_PACKAGE', 'INSTRUMENTATION_TEST_PACKAGE', 'UIAUTOMATION_TEST_PACKAGE', 'UIAUTOMATOR_TEST_PACKAGE', 'XCTEST_TEST_PACKAGE', 'XCTEST_UI_TEST_PACKAGE', 'APPIUM_JAVA_JUNIT_TEST_SPEC', 'APPIUM_JAVA_TESTNG_TEST_SPEC', 'APPIUM_PYTHON_TEST_SPEC', 'APPIUM_NODE_TEST_SPEC', 'APPIUM_RUBY_TEST_SPEC', 'APPIUM_WEB_JAVA_JUNIT_TEST_SPEC', 'APPIUM_WEB_JAVA_TESTNG_TEST_SPEC', 'APPIUM_WEB_PYTHON_TEST_SPEC', 'APPIUM_WEB_NODE_TEST_SPEC', 'APPIUM_WEB_RUBY_TEST_SPEC', 'INSTRUMENTATION_TEST_SPEC', 'XCTEST_UI_TEST_SPEC', ], ], 'Uploads' => [ 'type' => 'list', 'member' => [ 'shape' => 'Upload', ], ], 'VPCEConfiguration' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'AmazonResourceName', ], 'vpceConfigurationName' => [ 'shape' => 'VPCEConfigurationName', ], 'vpceServiceName' => [ 'shape' => 'VPCEServiceName', ], 'serviceDnsName' => [ 'shape' => 'ServiceDnsName', ], 'vpceConfigurationDescription' => [ 'shape' => 'VPCEConfigurationDescription', ], ], ], 'VPCEConfigurationDescription' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'VPCEConfigurationName' => [ 'type' => 'string', 'max' => 1024, 'min' => 0, ], 'VPCEConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'VPCEConfiguration', ], ], 'VPCEServiceName' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'VideoCapture' => [ 'type' => 'boolean', ], ],]; diff --git a/lib/aws/Aws/data/devicefarm/2015-06-23/paginators-1.json.php b/lib/aws/Aws/data/devicefarm/2015-06-23/paginators-1.json.php new file mode 100644 index 0000000..a88d703 --- /dev/null +++ b/lib/aws/Aws/data/devicefarm/2015-06-23/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/devicefarm/2015-06-23/paginators-1.json +return [ 'pagination' => [ 'GetOfferingStatus' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'result_key' => [ 'current', 'nextPeriod', ], ], 'ListArtifacts' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'result_key' => 'artifacts', ], 'ListDevicePools' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'result_key' => 'devicePools', ], 'ListDevices' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'result_key' => 'devices', ], 'ListJobs' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'result_key' => 'jobs', ], 'ListOfferingTransactions' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'result_key' => 'offeringTransactions', ], 'ListOfferings' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'result_key' => 'offerings', ], 'ListProjects' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'result_key' => 'projects', ], 'ListRuns' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'result_key' => 'runs', ], 'ListSamples' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'result_key' => 'samples', ], 'ListSuites' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'result_key' => 'suites', ], 'ListTests' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'result_key' => 'tests', ], 'ListUniqueProblems' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'result_key' => 'uniqueProblems', ], 'ListUploads' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'result_key' => 'uploads', ], ],]; diff --git a/lib/aws/Aws/data/devicefarm/2015-06-23/smoke.json.php b/lib/aws/Aws/data/devicefarm/2015-06-23/smoke.json.php new file mode 100644 index 0000000..455eaca --- /dev/null +++ b/lib/aws/Aws/data/devicefarm/2015-06-23/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/devicefarm/2015-06-23/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListDevices', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'GetDevice', 'input' => [ 'arn' => 'arn:aws:devicefarm:us-west-2::device:000000000000000000000000fake-arn', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/directconnect/2012-10-25/api-2.json.php b/lib/aws/Aws/data/directconnect/2012-10-25/api-2.json.php new file mode 100644 index 0000000..22f4c5d --- /dev/null +++ b/lib/aws/Aws/data/directconnect/2012-10-25/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/directconnect/2012-10-25/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2012-10-25', 'endpointPrefix' => 'directconnect', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWS Direct Connect', 'serviceId' => 'Direct Connect', 'signatureVersion' => 'v4', 'targetPrefix' => 'OvertureService', 'uid' => 'directconnect-2012-10-25', ], 'operations' => [ 'AcceptDirectConnectGatewayAssociationProposal' => [ 'name' => 'AcceptDirectConnectGatewayAssociationProposal', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptDirectConnectGatewayAssociationProposalRequest', ], 'output' => [ 'shape' => 'AcceptDirectConnectGatewayAssociationProposalResult', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'AllocateConnectionOnInterconnect' => [ 'name' => 'AllocateConnectionOnInterconnect', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AllocateConnectionOnInterconnectRequest', ], 'output' => [ 'shape' => 'Connection', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], 'deprecated' => true, ], 'AllocateHostedConnection' => [ 'name' => 'AllocateHostedConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AllocateHostedConnectionRequest', ], 'output' => [ 'shape' => 'Connection', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'AllocatePrivateVirtualInterface' => [ 'name' => 'AllocatePrivateVirtualInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AllocatePrivateVirtualInterfaceRequest', ], 'output' => [ 'shape' => 'VirtualInterface', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'AllocatePublicVirtualInterface' => [ 'name' => 'AllocatePublicVirtualInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AllocatePublicVirtualInterfaceRequest', ], 'output' => [ 'shape' => 'VirtualInterface', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'AssociateConnectionWithLag' => [ 'name' => 'AssociateConnectionWithLag', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateConnectionWithLagRequest', ], 'output' => [ 'shape' => 'Connection', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'AssociateHostedConnection' => [ 'name' => 'AssociateHostedConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateHostedConnectionRequest', ], 'output' => [ 'shape' => 'Connection', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'AssociateVirtualInterface' => [ 'name' => 'AssociateVirtualInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateVirtualInterfaceRequest', ], 'output' => [ 'shape' => 'VirtualInterface', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'ConfirmConnection' => [ 'name' => 'ConfirmConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ConfirmConnectionRequest', ], 'output' => [ 'shape' => 'ConfirmConnectionResponse', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'ConfirmPrivateVirtualInterface' => [ 'name' => 'ConfirmPrivateVirtualInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ConfirmPrivateVirtualInterfaceRequest', ], 'output' => [ 'shape' => 'ConfirmPrivateVirtualInterfaceResponse', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'ConfirmPublicVirtualInterface' => [ 'name' => 'ConfirmPublicVirtualInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ConfirmPublicVirtualInterfaceRequest', ], 'output' => [ 'shape' => 'ConfirmPublicVirtualInterfaceResponse', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'CreateBGPPeer' => [ 'name' => 'CreateBGPPeer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateBGPPeerRequest', ], 'output' => [ 'shape' => 'CreateBGPPeerResponse', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'CreateConnection' => [ 'name' => 'CreateConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateConnectionRequest', ], 'output' => [ 'shape' => 'Connection', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'CreateDirectConnectGateway' => [ 'name' => 'CreateDirectConnectGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDirectConnectGatewayRequest', ], 'output' => [ 'shape' => 'CreateDirectConnectGatewayResult', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'CreateDirectConnectGatewayAssociation' => [ 'name' => 'CreateDirectConnectGatewayAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDirectConnectGatewayAssociationRequest', ], 'output' => [ 'shape' => 'CreateDirectConnectGatewayAssociationResult', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'CreateDirectConnectGatewayAssociationProposal' => [ 'name' => 'CreateDirectConnectGatewayAssociationProposal', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDirectConnectGatewayAssociationProposalRequest', ], 'output' => [ 'shape' => 'CreateDirectConnectGatewayAssociationProposalResult', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'CreateInterconnect' => [ 'name' => 'CreateInterconnect', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateInterconnectRequest', ], 'output' => [ 'shape' => 'Interconnect', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'CreateLag' => [ 'name' => 'CreateLag', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLagRequest', ], 'output' => [ 'shape' => 'Lag', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'CreatePrivateVirtualInterface' => [ 'name' => 'CreatePrivateVirtualInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePrivateVirtualInterfaceRequest', ], 'output' => [ 'shape' => 'VirtualInterface', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'CreatePublicVirtualInterface' => [ 'name' => 'CreatePublicVirtualInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePublicVirtualInterfaceRequest', ], 'output' => [ 'shape' => 'VirtualInterface', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DeleteBGPPeer' => [ 'name' => 'DeleteBGPPeer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteBGPPeerRequest', ], 'output' => [ 'shape' => 'DeleteBGPPeerResponse', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DeleteConnection' => [ 'name' => 'DeleteConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteConnectionRequest', ], 'output' => [ 'shape' => 'Connection', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DeleteDirectConnectGateway' => [ 'name' => 'DeleteDirectConnectGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDirectConnectGatewayRequest', ], 'output' => [ 'shape' => 'DeleteDirectConnectGatewayResult', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DeleteDirectConnectGatewayAssociation' => [ 'name' => 'DeleteDirectConnectGatewayAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDirectConnectGatewayAssociationRequest', ], 'output' => [ 'shape' => 'DeleteDirectConnectGatewayAssociationResult', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DeleteDirectConnectGatewayAssociationProposal' => [ 'name' => 'DeleteDirectConnectGatewayAssociationProposal', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDirectConnectGatewayAssociationProposalRequest', ], 'output' => [ 'shape' => 'DeleteDirectConnectGatewayAssociationProposalResult', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DeleteInterconnect' => [ 'name' => 'DeleteInterconnect', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteInterconnectRequest', ], 'output' => [ 'shape' => 'DeleteInterconnectResponse', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DeleteLag' => [ 'name' => 'DeleteLag', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLagRequest', ], 'output' => [ 'shape' => 'Lag', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DeleteVirtualInterface' => [ 'name' => 'DeleteVirtualInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVirtualInterfaceRequest', ], 'output' => [ 'shape' => 'DeleteVirtualInterfaceResponse', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DescribeConnectionLoa' => [ 'name' => 'DescribeConnectionLoa', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeConnectionLoaRequest', ], 'output' => [ 'shape' => 'DescribeConnectionLoaResponse', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], 'deprecated' => true, ], 'DescribeConnections' => [ 'name' => 'DescribeConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeConnectionsRequest', ], 'output' => [ 'shape' => 'Connections', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DescribeConnectionsOnInterconnect' => [ 'name' => 'DescribeConnectionsOnInterconnect', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeConnectionsOnInterconnectRequest', ], 'output' => [ 'shape' => 'Connections', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], 'deprecated' => true, ], 'DescribeDirectConnectGatewayAssociationProposals' => [ 'name' => 'DescribeDirectConnectGatewayAssociationProposals', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDirectConnectGatewayAssociationProposalsRequest', ], 'output' => [ 'shape' => 'DescribeDirectConnectGatewayAssociationProposalsResult', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DescribeDirectConnectGatewayAssociations' => [ 'name' => 'DescribeDirectConnectGatewayAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDirectConnectGatewayAssociationsRequest', ], 'output' => [ 'shape' => 'DescribeDirectConnectGatewayAssociationsResult', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DescribeDirectConnectGatewayAttachments' => [ 'name' => 'DescribeDirectConnectGatewayAttachments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDirectConnectGatewayAttachmentsRequest', ], 'output' => [ 'shape' => 'DescribeDirectConnectGatewayAttachmentsResult', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DescribeDirectConnectGateways' => [ 'name' => 'DescribeDirectConnectGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDirectConnectGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeDirectConnectGatewaysResult', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DescribeHostedConnections' => [ 'name' => 'DescribeHostedConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHostedConnectionsRequest', ], 'output' => [ 'shape' => 'Connections', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DescribeInterconnectLoa' => [ 'name' => 'DescribeInterconnectLoa', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInterconnectLoaRequest', ], 'output' => [ 'shape' => 'DescribeInterconnectLoaResponse', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], 'deprecated' => true, ], 'DescribeInterconnects' => [ 'name' => 'DescribeInterconnects', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInterconnectsRequest', ], 'output' => [ 'shape' => 'Interconnects', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DescribeLags' => [ 'name' => 'DescribeLags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLagsRequest', ], 'output' => [ 'shape' => 'Lags', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DescribeLoa' => [ 'name' => 'DescribeLoa', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLoaRequest', ], 'output' => [ 'shape' => 'Loa', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DescribeLocations' => [ 'name' => 'DescribeLocations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'Locations', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DescribeTags' => [ 'name' => 'DescribeTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTagsRequest', ], 'output' => [ 'shape' => 'DescribeTagsResponse', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DescribeVirtualGateways' => [ 'name' => 'DescribeVirtualGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'VirtualGateways', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DescribeVirtualInterfaces' => [ 'name' => 'DescribeVirtualInterfaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVirtualInterfacesRequest', ], 'output' => [ 'shape' => 'VirtualInterfaces', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'DisassociateConnectionFromLag' => [ 'name' => 'DisassociateConnectionFromLag', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateConnectionFromLagRequest', ], 'output' => [ 'shape' => 'Connection', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'DuplicateTagKeysException', ], [ 'shape' => 'TooManyTagsException', ], [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'UpdateDirectConnectGatewayAssociation' => [ 'name' => 'UpdateDirectConnectGatewayAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateDirectConnectGatewayAssociationRequest', ], 'output' => [ 'shape' => 'UpdateDirectConnectGatewayAssociationResult', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'UpdateLag' => [ 'name' => 'UpdateLag', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateLagRequest', ], 'output' => [ 'shape' => 'Lag', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], 'UpdateVirtualInterfaceAttributes' => [ 'name' => 'UpdateVirtualInterfaceAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateVirtualInterfaceAttributesRequest', ], 'output' => [ 'shape' => 'VirtualInterface', ], 'errors' => [ [ 'shape' => 'DirectConnectServerException', ], [ 'shape' => 'DirectConnectClientException', ], ], ], ], 'shapes' => [ 'ASN' => [ 'type' => 'integer', ], 'AcceptDirectConnectGatewayAssociationProposalRequest' => [ 'type' => 'structure', 'required' => [ 'directConnectGatewayId', 'proposalId', 'associatedGatewayOwnerAccount', ], 'members' => [ 'directConnectGatewayId' => [ 'shape' => 'DirectConnectGatewayId', ], 'proposalId' => [ 'shape' => 'DirectConnectGatewayAssociationProposalId', ], 'associatedGatewayOwnerAccount' => [ 'shape' => 'OwnerAccount', ], 'overrideAllowedPrefixesToDirectConnectGateway' => [ 'shape' => 'RouteFilterPrefixList', ], ], ], 'AcceptDirectConnectGatewayAssociationProposalResult' => [ 'type' => 'structure', 'members' => [ 'directConnectGatewayAssociation' => [ 'shape' => 'DirectConnectGatewayAssociation', ], ], ], 'AddressFamily' => [ 'type' => 'string', 'enum' => [ 'ipv4', 'ipv6', ], ], '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', ], ], ], 'AllocateHostedConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'connectionId', 'ownerAccount', 'bandwidth', 'connectionName', 'vlan', ], 'members' => [ 'connectionId' => [ 'shape' => 'ConnectionId', ], 'ownerAccount' => [ 'shape' => 'OwnerAccount', ], 'bandwidth' => [ 'shape' => 'Bandwidth', ], 'connectionName' => [ 'shape' => 'ConnectionName', ], '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', ], 'AssociateConnectionWithLagRequest' => [ 'type' => 'structure', 'required' => [ 'connectionId', 'lagId', ], 'members' => [ 'connectionId' => [ 'shape' => 'ConnectionId', ], 'lagId' => [ 'shape' => 'LagId', ], ], ], 'AssociateHostedConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'connectionId', 'parentConnectionId', ], 'members' => [ 'connectionId' => [ 'shape' => 'ConnectionId', ], 'parentConnectionId' => [ 'shape' => 'ConnectionId', ], ], ], 'AssociateVirtualInterfaceRequest' => [ 'type' => 'structure', 'required' => [ 'virtualInterfaceId', 'connectionId', ], 'members' => [ 'virtualInterfaceId' => [ 'shape' => 'VirtualInterfaceId', ], 'connectionId' => [ 'shape' => 'ConnectionId', ], ], ], 'AssociatedGateway' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'GatewayIdentifier', ], 'type' => [ 'shape' => 'GatewayType', ], 'ownerAccount' => [ 'shape' => 'OwnerAccount', ], 'region' => [ 'shape' => 'Region', ], ], ], 'AssociatedGatewayId' => [ 'type' => 'string', ], 'AvailablePortSpeeds' => [ 'type' => 'list', 'member' => [ 'shape' => 'PortSpeed', ], ], 'AwsDevice' => [ 'type' => 'string', 'deprecated' => true, ], 'AwsDeviceV2' => [ 'type' => 'string', ], 'BGPAuthKey' => [ 'type' => 'string', ], 'BGPPeer' => [ 'type' => 'structure', 'members' => [ 'bgpPeerId' => [ 'shape' => 'BGPPeerId', ], 'asn' => [ 'shape' => 'ASN', ], 'authKey' => [ 'shape' => 'BGPAuthKey', ], 'addressFamily' => [ 'shape' => 'AddressFamily', ], 'amazonAddress' => [ 'shape' => 'AmazonAddress', ], 'customerAddress' => [ 'shape' => 'CustomerAddress', ], 'bgpPeerState' => [ 'shape' => 'BGPPeerState', ], 'bgpStatus' => [ 'shape' => 'BGPStatus', ], 'awsDeviceV2' => [ 'shape' => 'AwsDeviceV2', ], ], ], 'BGPPeerId' => [ 'type' => 'string', ], 'BGPPeerList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BGPPeer', ], ], 'BGPPeerState' => [ 'type' => 'string', 'enum' => [ 'verifying', 'pending', 'available', 'deleting', 'deleted', ], ], 'BGPStatus' => [ 'type' => 'string', 'enum' => [ 'up', 'down', 'unknown', ], ], 'Bandwidth' => [ 'type' => 'string', ], 'BooleanFlag' => [ 'type' => 'boolean', ], 'CIDR' => [ 'type' => 'string', ], 'ConfirmConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'connectionId', ], 'members' => [ 'connectionId' => [ 'shape' => 'ConnectionId', ], ], ], 'ConfirmConnectionResponse' => [ 'type' => 'structure', 'members' => [ 'connectionState' => [ 'shape' => 'ConnectionState', ], ], ], 'ConfirmPrivateVirtualInterfaceRequest' => [ 'type' => 'structure', 'required' => [ 'virtualInterfaceId', ], 'members' => [ 'virtualInterfaceId' => [ 'shape' => 'VirtualInterfaceId', ], 'virtualGatewayId' => [ 'shape' => 'VirtualGatewayId', ], 'directConnectGatewayId' => [ 'shape' => 'DirectConnectGatewayId', ], ], ], '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', ], 'loaIssueTime' => [ 'shape' => 'LoaIssueTime', ], 'lagId' => [ 'shape' => 'LagId', ], 'awsDevice' => [ 'shape' => 'AwsDevice', ], 'jumboFrameCapable' => [ 'shape' => 'JumboFrameCapable', ], 'awsDeviceV2' => [ 'shape' => 'AwsDeviceV2', ], 'hasLogicalRedundancy' => [ 'shape' => 'HasLogicalRedundancy', ], ], ], 'ConnectionId' => [ 'type' => 'string', ], 'ConnectionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Connection', ], ], 'ConnectionName' => [ 'type' => 'string', ], 'ConnectionState' => [ 'type' => 'string', 'enum' => [ 'ordering', 'requested', 'pending', 'available', 'down', 'deleting', 'deleted', 'rejected', 'unknown', ], ], 'Connections' => [ 'type' => 'structure', 'members' => [ 'connections' => [ 'shape' => 'ConnectionList', ], ], ], 'Count' => [ 'type' => 'integer', ], 'CreateBGPPeerRequest' => [ 'type' => 'structure', 'members' => [ 'virtualInterfaceId' => [ 'shape' => 'VirtualInterfaceId', ], 'newBGPPeer' => [ 'shape' => 'NewBGPPeer', ], ], ], 'CreateBGPPeerResponse' => [ 'type' => 'structure', 'members' => [ 'virtualInterface' => [ 'shape' => 'VirtualInterface', ], ], ], 'CreateConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'location', 'bandwidth', 'connectionName', ], 'members' => [ 'location' => [ 'shape' => 'LocationCode', ], 'bandwidth' => [ 'shape' => 'Bandwidth', ], 'connectionName' => [ 'shape' => 'ConnectionName', ], 'lagId' => [ 'shape' => 'LagId', ], ], ], 'CreateDirectConnectGatewayAssociationProposalRequest' => [ 'type' => 'structure', 'required' => [ 'directConnectGatewayId', 'directConnectGatewayOwnerAccount', 'gatewayId', ], 'members' => [ 'directConnectGatewayId' => [ 'shape' => 'DirectConnectGatewayId', ], 'directConnectGatewayOwnerAccount' => [ 'shape' => 'OwnerAccount', ], 'gatewayId' => [ 'shape' => 'GatewayIdToAssociate', ], 'addAllowedPrefixesToDirectConnectGateway' => [ 'shape' => 'RouteFilterPrefixList', ], 'removeAllowedPrefixesToDirectConnectGateway' => [ 'shape' => 'RouteFilterPrefixList', ], ], ], 'CreateDirectConnectGatewayAssociationProposalResult' => [ 'type' => 'structure', 'members' => [ 'directConnectGatewayAssociationProposal' => [ 'shape' => 'DirectConnectGatewayAssociationProposal', ], ], ], 'CreateDirectConnectGatewayAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'directConnectGatewayId', ], 'members' => [ 'directConnectGatewayId' => [ 'shape' => 'DirectConnectGatewayId', ], 'gatewayId' => [ 'shape' => 'GatewayIdToAssociate', ], 'addAllowedPrefixesToDirectConnectGateway' => [ 'shape' => 'RouteFilterPrefixList', ], 'virtualGatewayId' => [ 'shape' => 'VirtualGatewayId', ], ], ], 'CreateDirectConnectGatewayAssociationResult' => [ 'type' => 'structure', 'members' => [ 'directConnectGatewayAssociation' => [ 'shape' => 'DirectConnectGatewayAssociation', ], ], ], 'CreateDirectConnectGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'directConnectGatewayName', ], 'members' => [ 'directConnectGatewayName' => [ 'shape' => 'DirectConnectGatewayName', ], 'amazonSideAsn' => [ 'shape' => 'LongAsn', ], ], ], 'CreateDirectConnectGatewayResult' => [ 'type' => 'structure', 'members' => [ 'directConnectGateway' => [ 'shape' => 'DirectConnectGateway', ], ], ], 'CreateInterconnectRequest' => [ 'type' => 'structure', 'required' => [ 'interconnectName', 'bandwidth', 'location', ], 'members' => [ 'interconnectName' => [ 'shape' => 'InterconnectName', ], 'bandwidth' => [ 'shape' => 'Bandwidth', ], 'location' => [ 'shape' => 'LocationCode', ], 'lagId' => [ 'shape' => 'LagId', ], ], ], 'CreateLagRequest' => [ 'type' => 'structure', 'required' => [ 'numberOfConnections', 'location', 'connectionsBandwidth', 'lagName', ], 'members' => [ 'numberOfConnections' => [ 'shape' => 'Count', ], 'location' => [ 'shape' => 'LocationCode', ], 'connectionsBandwidth' => [ 'shape' => 'Bandwidth', ], 'lagName' => [ 'shape' => 'LagName', ], 'connectionId' => [ 'shape' => 'ConnectionId', ], ], ], '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', ], 'DeleteBGPPeerRequest' => [ 'type' => 'structure', 'members' => [ 'virtualInterfaceId' => [ 'shape' => 'VirtualInterfaceId', ], 'asn' => [ 'shape' => 'ASN', ], 'customerAddress' => [ 'shape' => 'CustomerAddress', ], 'bgpPeerId' => [ 'shape' => 'BGPPeerId', ], ], ], 'DeleteBGPPeerResponse' => [ 'type' => 'structure', 'members' => [ 'virtualInterface' => [ 'shape' => 'VirtualInterface', ], ], ], 'DeleteConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'connectionId', ], 'members' => [ 'connectionId' => [ 'shape' => 'ConnectionId', ], ], ], 'DeleteDirectConnectGatewayAssociationProposalRequest' => [ 'type' => 'structure', 'required' => [ 'proposalId', ], 'members' => [ 'proposalId' => [ 'shape' => 'DirectConnectGatewayAssociationProposalId', ], ], ], 'DeleteDirectConnectGatewayAssociationProposalResult' => [ 'type' => 'structure', 'members' => [ 'directConnectGatewayAssociationProposal' => [ 'shape' => 'DirectConnectGatewayAssociationProposal', ], ], ], 'DeleteDirectConnectGatewayAssociationRequest' => [ 'type' => 'structure', 'members' => [ 'associationId' => [ 'shape' => 'DirectConnectGatewayAssociationId', ], 'directConnectGatewayId' => [ 'shape' => 'DirectConnectGatewayId', ], 'virtualGatewayId' => [ 'shape' => 'VirtualGatewayId', ], ], ], 'DeleteDirectConnectGatewayAssociationResult' => [ 'type' => 'structure', 'members' => [ 'directConnectGatewayAssociation' => [ 'shape' => 'DirectConnectGatewayAssociation', ], ], ], 'DeleteDirectConnectGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'directConnectGatewayId', ], 'members' => [ 'directConnectGatewayId' => [ 'shape' => 'DirectConnectGatewayId', ], ], ], 'DeleteDirectConnectGatewayResult' => [ 'type' => 'structure', 'members' => [ 'directConnectGateway' => [ 'shape' => 'DirectConnectGateway', ], ], ], 'DeleteInterconnectRequest' => [ 'type' => 'structure', 'required' => [ 'interconnectId', ], 'members' => [ 'interconnectId' => [ 'shape' => 'InterconnectId', ], ], ], 'DeleteInterconnectResponse' => [ 'type' => 'structure', 'members' => [ 'interconnectState' => [ 'shape' => 'InterconnectState', ], ], ], 'DeleteLagRequest' => [ 'type' => 'structure', 'required' => [ 'lagId', ], 'members' => [ 'lagId' => [ 'shape' => 'LagId', ], ], ], 'DeleteVirtualInterfaceRequest' => [ 'type' => 'structure', 'required' => [ 'virtualInterfaceId', ], 'members' => [ 'virtualInterfaceId' => [ 'shape' => 'VirtualInterfaceId', ], ], ], 'DeleteVirtualInterfaceResponse' => [ 'type' => 'structure', 'members' => [ 'virtualInterfaceState' => [ 'shape' => 'VirtualInterfaceState', ], ], ], 'DescribeConnectionLoaRequest' => [ 'type' => 'structure', 'required' => [ 'connectionId', ], 'members' => [ 'connectionId' => [ 'shape' => 'ConnectionId', ], 'providerName' => [ 'shape' => 'ProviderName', ], 'loaContentType' => [ 'shape' => 'LoaContentType', ], ], ], 'DescribeConnectionLoaResponse' => [ 'type' => 'structure', 'members' => [ 'loa' => [ 'shape' => 'Loa', ], ], ], 'DescribeConnectionsOnInterconnectRequest' => [ 'type' => 'structure', 'required' => [ 'interconnectId', ], 'members' => [ 'interconnectId' => [ 'shape' => 'InterconnectId', ], ], ], 'DescribeConnectionsRequest' => [ 'type' => 'structure', 'members' => [ 'connectionId' => [ 'shape' => 'ConnectionId', ], ], ], 'DescribeDirectConnectGatewayAssociationProposalsRequest' => [ 'type' => 'structure', 'members' => [ 'directConnectGatewayId' => [ 'shape' => 'DirectConnectGatewayId', ], 'proposalId' => [ 'shape' => 'DirectConnectGatewayAssociationProposalId', ], 'associatedGatewayId' => [ 'shape' => 'AssociatedGatewayId', ], 'maxResults' => [ 'shape' => 'MaxResultSetSize', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'DescribeDirectConnectGatewayAssociationProposalsResult' => [ 'type' => 'structure', 'members' => [ 'directConnectGatewayAssociationProposals' => [ 'shape' => 'DirectConnectGatewayAssociationProposalList', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'DescribeDirectConnectGatewayAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'associationId' => [ 'shape' => 'DirectConnectGatewayAssociationId', ], 'associatedGatewayId' => [ 'shape' => 'AssociatedGatewayId', ], 'directConnectGatewayId' => [ 'shape' => 'DirectConnectGatewayId', ], 'maxResults' => [ 'shape' => 'MaxResultSetSize', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], 'virtualGatewayId' => [ 'shape' => 'VirtualGatewayId', ], ], ], 'DescribeDirectConnectGatewayAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'directConnectGatewayAssociations' => [ 'shape' => 'DirectConnectGatewayAssociationList', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'DescribeDirectConnectGatewayAttachmentsRequest' => [ 'type' => 'structure', 'members' => [ 'directConnectGatewayId' => [ 'shape' => 'DirectConnectGatewayId', ], 'virtualInterfaceId' => [ 'shape' => 'VirtualInterfaceId', ], 'maxResults' => [ 'shape' => 'MaxResultSetSize', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'DescribeDirectConnectGatewayAttachmentsResult' => [ 'type' => 'structure', 'members' => [ 'directConnectGatewayAttachments' => [ 'shape' => 'DirectConnectGatewayAttachmentList', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'DescribeDirectConnectGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'directConnectGatewayId' => [ 'shape' => 'DirectConnectGatewayId', ], 'maxResults' => [ 'shape' => 'MaxResultSetSize', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'DescribeDirectConnectGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'directConnectGateways' => [ 'shape' => 'DirectConnectGatewayList', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'DescribeHostedConnectionsRequest' => [ 'type' => 'structure', 'required' => [ 'connectionId', ], 'members' => [ 'connectionId' => [ 'shape' => 'ConnectionId', ], ], ], 'DescribeInterconnectLoaRequest' => [ 'type' => 'structure', 'required' => [ 'interconnectId', ], 'members' => [ 'interconnectId' => [ 'shape' => 'InterconnectId', ], 'providerName' => [ 'shape' => 'ProviderName', ], 'loaContentType' => [ 'shape' => 'LoaContentType', ], ], ], 'DescribeInterconnectLoaResponse' => [ 'type' => 'structure', 'members' => [ 'loa' => [ 'shape' => 'Loa', ], ], ], 'DescribeInterconnectsRequest' => [ 'type' => 'structure', 'members' => [ 'interconnectId' => [ 'shape' => 'InterconnectId', ], ], ], 'DescribeLagsRequest' => [ 'type' => 'structure', 'members' => [ 'lagId' => [ 'shape' => 'LagId', ], ], ], 'DescribeLoaRequest' => [ 'type' => 'structure', 'required' => [ 'connectionId', ], 'members' => [ 'connectionId' => [ 'shape' => 'ConnectionId', ], 'providerName' => [ 'shape' => 'ProviderName', ], 'loaContentType' => [ 'shape' => 'LoaContentType', ], ], ], 'DescribeTagsRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArns', ], 'members' => [ 'resourceArns' => [ 'shape' => 'ResourceArnList', ], ], ], 'DescribeTagsResponse' => [ 'type' => 'structure', 'members' => [ 'resourceTags' => [ 'shape' => 'ResourceTagList', ], ], ], 'DescribeVirtualInterfacesRequest' => [ 'type' => 'structure', 'members' => [ 'connectionId' => [ 'shape' => 'ConnectionId', ], 'virtualInterfaceId' => [ 'shape' => 'VirtualInterfaceId', ], ], ], 'DirectConnectClientException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'DirectConnectGateway' => [ 'type' => 'structure', 'members' => [ 'directConnectGatewayId' => [ 'shape' => 'DirectConnectGatewayId', ], 'directConnectGatewayName' => [ 'shape' => 'DirectConnectGatewayName', ], 'amazonSideAsn' => [ 'shape' => 'LongAsn', ], 'ownerAccount' => [ 'shape' => 'OwnerAccount', ], 'directConnectGatewayState' => [ 'shape' => 'DirectConnectGatewayState', ], 'stateChangeError' => [ 'shape' => 'StateChangeError', ], ], ], 'DirectConnectGatewayAssociation' => [ 'type' => 'structure', 'members' => [ 'directConnectGatewayId' => [ 'shape' => 'DirectConnectGatewayId', ], 'directConnectGatewayOwnerAccount' => [ 'shape' => 'OwnerAccount', ], 'associationState' => [ 'shape' => 'DirectConnectGatewayAssociationState', ], 'stateChangeError' => [ 'shape' => 'StateChangeError', ], 'associatedGateway' => [ 'shape' => 'AssociatedGateway', ], 'associationId' => [ 'shape' => 'DirectConnectGatewayAssociationId', ], 'allowedPrefixesToDirectConnectGateway' => [ 'shape' => 'RouteFilterPrefixList', ], 'virtualGatewayId' => [ 'shape' => 'VirtualGatewayId', ], 'virtualGatewayRegion' => [ 'shape' => 'VirtualGatewayRegion', ], 'virtualGatewayOwnerAccount' => [ 'shape' => 'OwnerAccount', ], ], ], 'DirectConnectGatewayAssociationId' => [ 'type' => 'string', ], 'DirectConnectGatewayAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DirectConnectGatewayAssociation', ], ], 'DirectConnectGatewayAssociationProposal' => [ 'type' => 'structure', 'members' => [ 'proposalId' => [ 'shape' => 'DirectConnectGatewayAssociationProposalId', ], 'directConnectGatewayId' => [ 'shape' => 'DirectConnectGatewayId', ], 'directConnectGatewayOwnerAccount' => [ 'shape' => 'OwnerAccount', ], 'proposalState' => [ 'shape' => 'DirectConnectGatewayAssociationProposalState', ], 'associatedGateway' => [ 'shape' => 'AssociatedGateway', ], 'existingAllowedPrefixesToDirectConnectGateway' => [ 'shape' => 'RouteFilterPrefixList', ], 'requestedAllowedPrefixesToDirectConnectGateway' => [ 'shape' => 'RouteFilterPrefixList', ], ], ], 'DirectConnectGatewayAssociationProposalId' => [ 'type' => 'string', ], 'DirectConnectGatewayAssociationProposalList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DirectConnectGatewayAssociationProposal', ], ], 'DirectConnectGatewayAssociationProposalState' => [ 'type' => 'string', 'enum' => [ 'requested', 'accepted', 'deleted', ], ], 'DirectConnectGatewayAssociationState' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'disassociating', 'disassociated', 'updating', ], ], 'DirectConnectGatewayAttachment' => [ 'type' => 'structure', 'members' => [ 'directConnectGatewayId' => [ 'shape' => 'DirectConnectGatewayId', ], 'virtualInterfaceId' => [ 'shape' => 'VirtualInterfaceId', ], 'virtualInterfaceRegion' => [ 'shape' => 'VirtualInterfaceRegion', ], 'virtualInterfaceOwnerAccount' => [ 'shape' => 'OwnerAccount', ], 'attachmentState' => [ 'shape' => 'DirectConnectGatewayAttachmentState', ], 'stateChangeError' => [ 'shape' => 'StateChangeError', ], ], ], 'DirectConnectGatewayAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DirectConnectGatewayAttachment', ], ], 'DirectConnectGatewayAttachmentState' => [ 'type' => 'string', 'enum' => [ 'attaching', 'attached', 'detaching', 'detached', ], ], 'DirectConnectGatewayId' => [ 'type' => 'string', ], 'DirectConnectGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DirectConnectGateway', ], ], 'DirectConnectGatewayName' => [ 'type' => 'string', ], 'DirectConnectGatewayState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'DirectConnectServerException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'DisassociateConnectionFromLagRequest' => [ 'type' => 'structure', 'required' => [ 'connectionId', 'lagId', ], 'members' => [ 'connectionId' => [ 'shape' => 'ConnectionId', ], 'lagId' => [ 'shape' => 'LagId', ], ], ], 'DuplicateTagKeysException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ErrorMessage' => [ 'type' => 'string', ], 'GatewayIdToAssociate' => [ 'type' => 'string', ], 'GatewayIdentifier' => [ 'type' => 'string', ], 'GatewayType' => [ 'type' => 'string', 'enum' => [ 'virtualPrivateGateway', ], ], 'HasLogicalRedundancy' => [ 'type' => 'string', 'enum' => [ 'unknown', 'yes', 'no', ], ], 'Interconnect' => [ 'type' => 'structure', 'members' => [ 'interconnectId' => [ 'shape' => 'InterconnectId', ], 'interconnectName' => [ 'shape' => 'InterconnectName', ], 'interconnectState' => [ 'shape' => 'InterconnectState', ], 'region' => [ 'shape' => 'Region', ], 'location' => [ 'shape' => 'LocationCode', ], 'bandwidth' => [ 'shape' => 'Bandwidth', ], 'loaIssueTime' => [ 'shape' => 'LoaIssueTime', ], 'lagId' => [ 'shape' => 'LagId', ], 'awsDevice' => [ 'shape' => 'AwsDevice', ], 'jumboFrameCapable' => [ 'shape' => 'JumboFrameCapable', ], 'awsDeviceV2' => [ 'shape' => 'AwsDeviceV2', ], 'hasLogicalRedundancy' => [ 'shape' => 'HasLogicalRedundancy', ], ], ], 'InterconnectId' => [ 'type' => 'string', ], 'InterconnectList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Interconnect', ], ], 'InterconnectName' => [ 'type' => 'string', ], 'InterconnectState' => [ 'type' => 'string', 'enum' => [ 'requested', 'pending', 'available', 'down', 'deleting', 'deleted', 'unknown', ], ], 'Interconnects' => [ 'type' => 'structure', 'members' => [ 'interconnects' => [ 'shape' => 'InterconnectList', ], ], ], 'JumboFrameCapable' => [ 'type' => 'boolean', ], 'Lag' => [ 'type' => 'structure', 'members' => [ 'connectionsBandwidth' => [ 'shape' => 'Bandwidth', ], 'numberOfConnections' => [ 'shape' => 'Count', ], 'lagId' => [ 'shape' => 'LagId', ], 'ownerAccount' => [ 'shape' => 'OwnerAccount', ], 'lagName' => [ 'shape' => 'LagName', ], 'lagState' => [ 'shape' => 'LagState', ], 'location' => [ 'shape' => 'LocationCode', ], 'region' => [ 'shape' => 'Region', ], 'minimumLinks' => [ 'shape' => 'Count', ], 'awsDevice' => [ 'shape' => 'AwsDevice', ], 'awsDeviceV2' => [ 'shape' => 'AwsDeviceV2', ], 'connections' => [ 'shape' => 'ConnectionList', ], 'allowsHostedConnections' => [ 'shape' => 'BooleanFlag', ], 'jumboFrameCapable' => [ 'shape' => 'JumboFrameCapable', ], 'hasLogicalRedundancy' => [ 'shape' => 'HasLogicalRedundancy', ], ], ], 'LagId' => [ 'type' => 'string', ], 'LagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Lag', ], ], 'LagName' => [ 'type' => 'string', ], 'LagState' => [ 'type' => 'string', 'enum' => [ 'requested', 'pending', 'available', 'down', 'deleting', 'deleted', 'unknown', ], ], 'Lags' => [ 'type' => 'structure', 'members' => [ 'lags' => [ 'shape' => 'LagList', ], ], ], 'Loa' => [ 'type' => 'structure', 'members' => [ 'loaContent' => [ 'shape' => 'LoaContent', ], 'loaContentType' => [ 'shape' => 'LoaContentType', ], ], ], 'LoaContent' => [ 'type' => 'blob', ], 'LoaContentType' => [ 'type' => 'string', 'enum' => [ 'application/pdf', ], ], 'LoaIssueTime' => [ 'type' => 'timestamp', ], 'Location' => [ 'type' => 'structure', 'members' => [ 'locationCode' => [ 'shape' => 'LocationCode', ], 'locationName' => [ 'shape' => 'LocationName', ], 'region' => [ 'shape' => 'Region', ], 'availablePortSpeeds' => [ 'shape' => 'AvailablePortSpeeds', ], ], ], 'LocationCode' => [ 'type' => 'string', ], 'LocationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Location', ], ], 'LocationName' => [ 'type' => 'string', ], 'Locations' => [ 'type' => 'structure', 'members' => [ 'locations' => [ 'shape' => 'LocationList', ], ], ], 'LongAsn' => [ 'type' => 'long', ], 'MTU' => [ 'type' => 'integer', ], 'MaxResultSetSize' => [ 'type' => 'integer', 'box' => true, ], 'NewBGPPeer' => [ 'type' => 'structure', 'members' => [ 'asn' => [ 'shape' => 'ASN', ], 'authKey' => [ 'shape' => 'BGPAuthKey', ], 'addressFamily' => [ 'shape' => 'AddressFamily', ], 'amazonAddress' => [ 'shape' => 'AmazonAddress', ], 'customerAddress' => [ 'shape' => 'CustomerAddress', ], ], ], 'NewPrivateVirtualInterface' => [ 'type' => 'structure', 'required' => [ 'virtualInterfaceName', 'vlan', 'asn', ], 'members' => [ 'virtualInterfaceName' => [ 'shape' => 'VirtualInterfaceName', ], 'vlan' => [ 'shape' => 'VLAN', ], 'asn' => [ 'shape' => 'ASN', ], 'mtu' => [ 'shape' => 'MTU', ], 'authKey' => [ 'shape' => 'BGPAuthKey', ], 'amazonAddress' => [ 'shape' => 'AmazonAddress', ], 'customerAddress' => [ 'shape' => 'CustomerAddress', ], 'addressFamily' => [ 'shape' => 'AddressFamily', ], 'virtualGatewayId' => [ 'shape' => 'VirtualGatewayId', ], 'directConnectGatewayId' => [ 'shape' => 'DirectConnectGatewayId', ], ], ], 'NewPrivateVirtualInterfaceAllocation' => [ 'type' => 'structure', 'required' => [ 'virtualInterfaceName', 'vlan', 'asn', ], 'members' => [ 'virtualInterfaceName' => [ 'shape' => 'VirtualInterfaceName', ], 'vlan' => [ 'shape' => 'VLAN', ], 'asn' => [ 'shape' => 'ASN', ], 'mtu' => [ 'shape' => 'MTU', ], 'authKey' => [ 'shape' => 'BGPAuthKey', ], 'amazonAddress' => [ 'shape' => 'AmazonAddress', ], 'addressFamily' => [ 'shape' => 'AddressFamily', ], 'customerAddress' => [ 'shape' => 'CustomerAddress', ], ], ], 'NewPublicVirtualInterface' => [ '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', ], 'addressFamily' => [ 'shape' => 'AddressFamily', ], 'routeFilterPrefixes' => [ 'shape' => 'RouteFilterPrefixList', ], ], ], 'NewPublicVirtualInterfaceAllocation' => [ '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', ], 'addressFamily' => [ 'shape' => 'AddressFamily', ], 'routeFilterPrefixes' => [ 'shape' => 'RouteFilterPrefixList', ], ], ], 'OwnerAccount' => [ 'type' => 'string', ], 'PaginationToken' => [ 'type' => 'string', ], 'PartnerName' => [ 'type' => 'string', ], 'PortSpeed' => [ 'type' => 'string', ], 'ProviderName' => [ 'type' => 'string', ], 'Region' => [ 'type' => 'string', ], 'ResourceArn' => [ 'type' => 'string', ], 'ResourceArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceArn', ], ], 'ResourceTag' => [ 'type' => 'structure', 'members' => [ 'resourceArn' => [ 'shape' => 'ResourceArn', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'ResourceTagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceTag', ], ], 'RouteFilterPrefix' => [ 'type' => 'structure', 'members' => [ 'cidr' => [ 'shape' => 'CIDR', ], ], ], 'RouteFilterPrefixList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteFilterPrefix', ], ], 'RouterConfig' => [ 'type' => 'string', ], 'StateChangeError' => [ 'type' => 'string', ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'key', ], 'members' => [ 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'min' => 1, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tags', ], 'members' => [ 'resourceArn' => [ 'shape' => 'ResourceArn', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TooManyTagsException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tagKeys', ], 'members' => [ 'resourceArn' => [ 'shape' => 'ResourceArn', ], 'tagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateDirectConnectGatewayAssociationRequest' => [ 'type' => 'structure', 'members' => [ 'associationId' => [ 'shape' => 'DirectConnectGatewayAssociationId', ], 'addAllowedPrefixesToDirectConnectGateway' => [ 'shape' => 'RouteFilterPrefixList', ], 'removeAllowedPrefixesToDirectConnectGateway' => [ 'shape' => 'RouteFilterPrefixList', ], ], ], 'UpdateDirectConnectGatewayAssociationResult' => [ 'type' => 'structure', 'members' => [ 'directConnectGatewayAssociation' => [ 'shape' => 'DirectConnectGatewayAssociation', ], ], ], 'UpdateLagRequest' => [ 'type' => 'structure', 'required' => [ 'lagId', ], 'members' => [ 'lagId' => [ 'shape' => 'LagId', ], 'lagName' => [ 'shape' => 'LagName', ], 'minimumLinks' => [ 'shape' => 'Count', ], ], ], 'UpdateVirtualInterfaceAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'virtualInterfaceId', ], 'members' => [ 'virtualInterfaceId' => [ 'shape' => 'VirtualInterfaceId', ], 'mtu' => [ 'shape' => 'MTU', ], ], ], 'VLAN' => [ 'type' => 'integer', ], 'VirtualGateway' => [ 'type' => 'structure', 'members' => [ 'virtualGatewayId' => [ 'shape' => 'VirtualGatewayId', ], 'virtualGatewayState' => [ 'shape' => 'VirtualGatewayState', ], ], ], 'VirtualGatewayId' => [ 'type' => 'string', 'deprecated' => true, ], 'VirtualGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VirtualGateway', ], ], 'VirtualGatewayRegion' => [ 'type' => 'string', 'deprecated' => true, ], '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', ], 'amazonSideAsn' => [ 'shape' => 'LongAsn', ], 'authKey' => [ 'shape' => 'BGPAuthKey', ], 'amazonAddress' => [ 'shape' => 'AmazonAddress', ], 'customerAddress' => [ 'shape' => 'CustomerAddress', ], 'addressFamily' => [ 'shape' => 'AddressFamily', ], 'virtualInterfaceState' => [ 'shape' => 'VirtualInterfaceState', ], 'customerRouterConfig' => [ 'shape' => 'RouterConfig', ], 'mtu' => [ 'shape' => 'MTU', ], 'jumboFrameCapable' => [ 'shape' => 'JumboFrameCapable', ], 'virtualGatewayId' => [ 'shape' => 'VirtualGatewayId', ], 'directConnectGatewayId' => [ 'shape' => 'DirectConnectGatewayId', ], 'routeFilterPrefixes' => [ 'shape' => 'RouteFilterPrefixList', ], 'bgpPeers' => [ 'shape' => 'BGPPeerList', ], 'region' => [ 'shape' => 'Region', ], 'awsDeviceV2' => [ 'shape' => 'AwsDeviceV2', ], ], ], 'VirtualInterfaceId' => [ 'type' => 'string', ], 'VirtualInterfaceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VirtualInterface', ], ], 'VirtualInterfaceName' => [ 'type' => 'string', ], 'VirtualInterfaceRegion' => [ 'type' => 'string', ], 'VirtualInterfaceState' => [ 'type' => 'string', 'enum' => [ 'confirming', 'verifying', 'pending', 'available', 'down', 'deleting', 'deleted', 'rejected', 'unknown', ], ], 'VirtualInterfaceType' => [ 'type' => 'string', ], 'VirtualInterfaces' => [ 'type' => 'structure', 'members' => [ 'virtualInterfaces' => [ 'shape' => 'VirtualInterfaceList', ], ], ], ],]; diff --git a/lib/aws/Aws/data/directconnect/2012-10-25/paginators-1.json.php b/lib/aws/Aws/data/directconnect/2012-10-25/paginators-1.json.php new file mode 100644 index 0000000..2a305e8 --- /dev/null +++ b/lib/aws/Aws/data/directconnect/2012-10-25/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/directconnect/2012-10-25/paginators-1.json +return [ '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/Aws/data/directconnect/2012-10-25/smoke.json.php b/lib/aws/Aws/data/directconnect/2012-10-25/smoke.json.php new file mode 100644 index 0000000..ce6f8dc --- /dev/null +++ b/lib/aws/Aws/data/directconnect/2012-10-25/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/directconnect/2012-10-25/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeConnections', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeConnections', 'input' => [ 'connectionId' => 'fake-connection', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/discovery/2015-11-01/api-2.json.php b/lib/aws/Aws/data/discovery/2015-11-01/api-2.json.php new file mode 100644 index 0000000..2baeade --- /dev/null +++ b/lib/aws/Aws/data/discovery/2015-11-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/discovery/2015-11-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-11-01', 'endpointPrefix' => 'discovery', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWS Application Discovery Service', 'serviceId' => 'Application Discovery Service', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWSPoseidonService_V2015_11_01', 'uid' => 'discovery-2015-11-01', ], 'operations' => [ 'AssociateConfigurationItemsToApplication' => [ 'name' => 'AssociateConfigurationItemsToApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateConfigurationItemsToApplicationRequest', ], 'output' => [ 'shape' => 'AssociateConfigurationItemsToApplicationResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], ], ], 'BatchDeleteImportData' => [ 'name' => 'BatchDeleteImportData', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchDeleteImportDataRequest', ], 'output' => [ 'shape' => 'BatchDeleteImportDataResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], ], ], 'CreateApplication' => [ 'name' => 'CreateApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateApplicationRequest', ], 'output' => [ 'shape' => 'CreateApplicationResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], ], ], 'CreateTags' => [ 'name' => 'CreateTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTagsRequest', ], 'output' => [ 'shape' => 'CreateTagsResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], ], ], 'DeleteApplications' => [ 'name' => 'DeleteApplications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteApplicationsRequest', ], 'output' => [ 'shape' => 'DeleteApplicationsResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], ], ], 'DeleteTags' => [ 'name' => 'DeleteTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTagsRequest', ], 'output' => [ 'shape' => 'DeleteTagsResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], ], ], 'DescribeAgents' => [ 'name' => 'DescribeAgents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAgentsRequest', ], 'output' => [ 'shape' => 'DescribeAgentsResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], ], ], 'DescribeConfigurations' => [ 'name' => 'DescribeConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeConfigurationsRequest', ], 'output' => [ 'shape' => 'DescribeConfigurationsResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], ], ], 'DescribeContinuousExports' => [ 'name' => 'DescribeContinuousExports', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeContinuousExportsRequest', ], 'output' => [ 'shape' => 'DescribeContinuousExportsResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeExportConfigurations' => [ 'name' => 'DescribeExportConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeExportConfigurationsRequest', ], 'output' => [ 'shape' => 'DescribeExportConfigurationsResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], ], 'deprecated' => true, ], 'DescribeExportTasks' => [ 'name' => 'DescribeExportTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeExportTasksRequest', ], 'output' => [ 'shape' => 'DescribeExportTasksResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], ], ], 'DescribeImportTasks' => [ 'name' => 'DescribeImportTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImportTasksRequest', ], 'output' => [ 'shape' => 'DescribeImportTasksResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], ], ], 'DescribeTags' => [ 'name' => 'DescribeTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTagsRequest', ], 'output' => [ 'shape' => 'DescribeTagsResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], ], ], 'DisassociateConfigurationItemsFromApplication' => [ 'name' => 'DisassociateConfigurationItemsFromApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateConfigurationItemsFromApplicationRequest', ], 'output' => [ 'shape' => 'DisassociateConfigurationItemsFromApplicationResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], ], ], 'ExportConfigurations' => [ 'name' => 'ExportConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'ExportConfigurationsResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], [ 'shape' => 'OperationNotPermittedException', ], ], 'deprecated' => true, ], 'GetDiscoverySummary' => [ 'name' => 'GetDiscoverySummary', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDiscoverySummaryRequest', ], 'output' => [ 'shape' => 'GetDiscoverySummaryResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], ], ], 'ListConfigurations' => [ 'name' => 'ListConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListConfigurationsRequest', ], 'output' => [ 'shape' => 'ListConfigurationsResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], ], ], 'ListServerNeighbors' => [ 'name' => 'ListServerNeighbors', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListServerNeighborsRequest', ], 'output' => [ 'shape' => 'ListServerNeighborsResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], ], ], 'StartContinuousExport' => [ 'name' => 'StartContinuousExport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartContinuousExportRequest', ], 'output' => [ 'shape' => 'StartContinuousExportResponse', ], 'errors' => [ [ 'shape' => 'ConflictErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'ResourceInUseException', ], ], ], 'StartDataCollectionByAgentIds' => [ 'name' => 'StartDataCollectionByAgentIds', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartDataCollectionByAgentIdsRequest', ], 'output' => [ 'shape' => 'StartDataCollectionByAgentIdsResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], ], ], 'StartExportTask' => [ 'name' => 'StartExportTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartExportTaskRequest', ], 'output' => [ 'shape' => 'StartExportTaskResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'StartImportTask' => [ 'name' => 'StartImportTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartImportTaskRequest', ], 'output' => [ 'shape' => 'StartImportTaskResponse', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], ], ], 'StopContinuousExport' => [ 'name' => 'StopContinuousExport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopContinuousExportRequest', ], 'output' => [ 'shape' => 'StopContinuousExportResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], ], ], 'StopDataCollectionByAgentIds' => [ 'name' => 'StopDataCollectionByAgentIds', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopDataCollectionByAgentIdsRequest', ], 'output' => [ 'shape' => 'StopDataCollectionByAgentIdsResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], ], ], 'UpdateApplication' => [ 'name' => 'UpdateApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateApplicationRequest', ], 'output' => [ 'shape' => 'UpdateApplicationResponse', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalErrorException', ], ], ], ], 'shapes' => [ 'AgentConfigurationStatus' => [ 'type' => 'structure', 'members' => [ 'agentId' => [ 'shape' => 'String', ], 'operationSucceeded' => [ 'shape' => 'Boolean', ], 'description' => [ 'shape' => 'String', ], ], ], 'AgentConfigurationStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AgentConfigurationStatus', ], ], 'AgentId' => [ 'type' => 'string', ], 'AgentIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'AgentId', ], ], 'AgentInfo' => [ 'type' => 'structure', 'members' => [ 'agentId' => [ 'shape' => 'AgentId', ], 'hostName' => [ 'shape' => 'String', ], 'agentNetworkInfoList' => [ 'shape' => 'AgentNetworkInfoList', ], 'connectorId' => [ 'shape' => 'String', ], 'version' => [ 'shape' => 'String', ], 'health' => [ 'shape' => 'AgentStatus', ], 'lastHealthPingTime' => [ 'shape' => 'String', ], 'collectionStatus' => [ 'shape' => 'String', ], 'agentType' => [ 'shape' => 'String', ], 'registeredTime' => [ 'shape' => 'String', ], ], ], 'AgentNetworkInfo' => [ 'type' => 'structure', 'members' => [ 'ipAddress' => [ 'shape' => 'String', ], 'macAddress' => [ 'shape' => 'String', ], ], ], 'AgentNetworkInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AgentNetworkInfo', ], ], 'AgentStatus' => [ 'type' => 'string', 'enum' => [ 'HEALTHY', 'UNHEALTHY', 'RUNNING', 'UNKNOWN', 'BLACKLISTED', 'SHUTDOWN', ], ], 'AgentsInfo' => [ 'type' => 'list', 'member' => [ 'shape' => 'AgentInfo', ], ], 'ApplicationId' => [ 'type' => 'string', ], 'ApplicationIdsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApplicationId', ], ], 'AssociateConfigurationItemsToApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'applicationConfigurationId', 'configurationIds', ], 'members' => [ 'applicationConfigurationId' => [ 'shape' => 'ApplicationId', ], 'configurationIds' => [ 'shape' => 'ConfigurationIdList', ], ], ], 'AssociateConfigurationItemsToApplicationResponse' => [ 'type' => 'structure', 'members' => [], ], 'AuthorizationErrorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'BatchDeleteImportDataError' => [ 'type' => 'structure', 'members' => [ 'importTaskId' => [ 'shape' => 'ImportTaskIdentifier', ], 'errorCode' => [ 'shape' => 'BatchDeleteImportDataErrorCode', ], 'errorDescription' => [ 'shape' => 'BatchDeleteImportDataErrorDescription', ], ], ], 'BatchDeleteImportDataErrorCode' => [ 'type' => 'string', 'enum' => [ 'NOT_FOUND', 'INTERNAL_SERVER_ERROR', ], ], 'BatchDeleteImportDataErrorDescription' => [ 'type' => 'string', ], 'BatchDeleteImportDataErrorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BatchDeleteImportDataError', ], ], 'BatchDeleteImportDataRequest' => [ 'type' => 'structure', 'required' => [ 'importTaskIds', ], 'members' => [ 'importTaskIds' => [ 'shape' => 'ToDeleteIdentifierList', ], ], ], 'BatchDeleteImportDataResponse' => [ 'type' => 'structure', 'members' => [ 'errors' => [ 'shape' => 'BatchDeleteImportDataErrorList', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'BoxedInteger' => [ 'type' => 'integer', 'box' => true, ], 'ClientRequestToken' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'Condition' => [ 'type' => 'string', ], 'Configuration' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'ConfigurationId' => [ 'type' => 'string', ], 'ConfigurationIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationId', ], ], 'ConfigurationItemType' => [ 'type' => 'string', 'enum' => [ 'SERVER', 'PROCESS', 'CONNECTION', 'APPLICATION', ], ], 'ConfigurationTag' => [ 'type' => 'structure', 'members' => [ 'configurationType' => [ 'shape' => 'ConfigurationItemType', ], 'configurationId' => [ 'shape' => 'ConfigurationId', ], 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], 'timeOfCreation' => [ 'shape' => 'TimeStamp', ], ], ], 'ConfigurationTagSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationTag', ], ], 'Configurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'Configuration', ], ], 'ConfigurationsDownloadUrl' => [ 'type' => 'string', ], 'ConfigurationsExportId' => [ 'type' => 'string', ], 'ConflictErrorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'ContinuousExportDescription' => [ 'type' => 'structure', 'members' => [ 'exportId' => [ 'shape' => 'ConfigurationsExportId', ], 'status' => [ 'shape' => 'ContinuousExportStatus', ], 'statusDetail' => [ 'shape' => 'StringMax255', ], 's3Bucket' => [ 'shape' => 'S3Bucket', ], 'startTime' => [ 'shape' => 'TimeStamp', ], 'stopTime' => [ 'shape' => 'TimeStamp', ], 'dataSource' => [ 'shape' => 'DataSource', ], 'schemaStorageConfig' => [ 'shape' => 'SchemaStorageConfig', ], ], ], 'ContinuousExportDescriptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContinuousExportDescription', ], ], 'ContinuousExportIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationsExportId', ], ], 'ContinuousExportStatus' => [ 'type' => 'string', 'enum' => [ 'START_IN_PROGRESS', 'START_FAILED', 'ACTIVE', 'ERROR', 'STOP_IN_PROGRESS', 'STOP_FAILED', 'INACTIVE', ], ], 'CreateApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], ], ], 'CreateApplicationResponse' => [ 'type' => 'structure', 'members' => [ 'configurationId' => [ 'shape' => 'String', ], ], ], 'CreateTagsRequest' => [ 'type' => 'structure', 'required' => [ 'configurationIds', 'tags', ], 'members' => [ 'configurationIds' => [ 'shape' => 'ConfigurationIdList', ], 'tags' => [ 'shape' => 'TagSet', ], ], ], 'CreateTagsResponse' => [ 'type' => 'structure', 'members' => [], ], 'CustomerAgentInfo' => [ 'type' => 'structure', 'required' => [ 'activeAgents', 'healthyAgents', 'blackListedAgents', 'shutdownAgents', 'unhealthyAgents', 'totalAgents', 'unknownAgents', ], 'members' => [ 'activeAgents' => [ 'shape' => 'Integer', ], 'healthyAgents' => [ 'shape' => 'Integer', ], 'blackListedAgents' => [ 'shape' => 'Integer', ], 'shutdownAgents' => [ 'shape' => 'Integer', ], 'unhealthyAgents' => [ 'shape' => 'Integer', ], 'totalAgents' => [ 'shape' => 'Integer', ], 'unknownAgents' => [ 'shape' => 'Integer', ], ], ], 'CustomerConnectorInfo' => [ 'type' => 'structure', 'required' => [ 'activeConnectors', 'healthyConnectors', 'blackListedConnectors', 'shutdownConnectors', 'unhealthyConnectors', 'totalConnectors', 'unknownConnectors', ], 'members' => [ 'activeConnectors' => [ 'shape' => 'Integer', ], 'healthyConnectors' => [ 'shape' => 'Integer', ], 'blackListedConnectors' => [ 'shape' => 'Integer', ], 'shutdownConnectors' => [ 'shape' => 'Integer', ], 'unhealthyConnectors' => [ 'shape' => 'Integer', ], 'totalConnectors' => [ 'shape' => 'Integer', ], 'unknownConnectors' => [ 'shape' => 'Integer', ], ], ], 'DataSource' => [ 'type' => 'string', 'enum' => [ 'AGENT', ], ], 'DatabaseName' => [ 'type' => 'string', 'max' => 252, 'min' => 1, ], 'DeleteApplicationsRequest' => [ 'type' => 'structure', 'required' => [ 'configurationIds', ], 'members' => [ 'configurationIds' => [ 'shape' => 'ApplicationIdsList', ], ], ], 'DeleteApplicationsResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteTagsRequest' => [ 'type' => 'structure', 'required' => [ 'configurationIds', ], 'members' => [ 'configurationIds' => [ 'shape' => 'ConfigurationIdList', ], 'tags' => [ 'shape' => 'TagSet', ], ], ], 'DeleteTagsResponse' => [ 'type' => 'structure', 'members' => [], ], 'DescribeAgentsRequest' => [ 'type' => 'structure', 'members' => [ 'agentIds' => [ 'shape' => 'AgentIds', ], 'filters' => [ 'shape' => 'Filters', ], 'maxResults' => [ 'shape' => 'Integer', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeAgentsResponse' => [ 'type' => 'structure', 'members' => [ 'agentsInfo' => [ 'shape' => 'AgentsInfo', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeConfigurationsAttribute' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'DescribeConfigurationsAttributes' => [ 'type' => 'list', 'member' => [ 'shape' => 'DescribeConfigurationsAttribute', ], ], 'DescribeConfigurationsRequest' => [ 'type' => 'structure', 'required' => [ 'configurationIds', ], 'members' => [ 'configurationIds' => [ 'shape' => 'ConfigurationIdList', ], ], ], 'DescribeConfigurationsResponse' => [ 'type' => 'structure', 'members' => [ 'configurations' => [ 'shape' => 'DescribeConfigurationsAttributes', ], ], ], 'DescribeContinuousExportsMaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'DescribeContinuousExportsRequest' => [ 'type' => 'structure', 'members' => [ 'exportIds' => [ 'shape' => 'ContinuousExportIds', ], 'maxResults' => [ 'shape' => 'DescribeContinuousExportsMaxResults', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeContinuousExportsResponse' => [ 'type' => 'structure', 'members' => [ 'descriptions' => [ 'shape' => 'ContinuousExportDescriptions', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeExportConfigurationsRequest' => [ 'type' => 'structure', 'members' => [ 'exportIds' => [ 'shape' => 'ExportIds', ], 'maxResults' => [ 'shape' => 'Integer', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeExportConfigurationsResponse' => [ 'type' => 'structure', 'members' => [ 'exportsInfo' => [ 'shape' => 'ExportsInfo', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeExportTasksRequest' => [ 'type' => 'structure', 'members' => [ 'exportIds' => [ 'shape' => 'ExportIds', ], 'filters' => [ 'shape' => 'ExportFilters', ], 'maxResults' => [ 'shape' => 'Integer', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeExportTasksResponse' => [ 'type' => 'structure', 'members' => [ 'exportsInfo' => [ 'shape' => 'ExportsInfo', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeImportTasksFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportTaskFilter', ], ], 'DescribeImportTasksMaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'DescribeImportTasksRequest' => [ 'type' => 'structure', 'members' => [ 'filters' => [ 'shape' => 'DescribeImportTasksFilterList', ], 'maxResults' => [ 'shape' => 'DescribeImportTasksMaxResults', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeImportTasksResponse' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', ], 'tasks' => [ 'shape' => 'ImportTaskList', ], ], ], 'DescribeTagsRequest' => [ 'type' => 'structure', 'members' => [ 'filters' => [ 'shape' => 'TagFilters', ], 'maxResults' => [ 'shape' => 'Integer', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeTagsResponse' => [ 'type' => 'structure', 'members' => [ 'tags' => [ 'shape' => 'ConfigurationTagSet', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'DisassociateConfigurationItemsFromApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'applicationConfigurationId', 'configurationIds', ], 'members' => [ 'applicationConfigurationId' => [ 'shape' => 'ApplicationId', ], 'configurationIds' => [ 'shape' => 'ConfigurationIdList', ], ], ], 'DisassociateConfigurationItemsFromApplicationResponse' => [ 'type' => 'structure', 'members' => [], ], 'ExportConfigurationsResponse' => [ 'type' => 'structure', 'members' => [ 'exportId' => [ 'shape' => 'ConfigurationsExportId', ], ], ], 'ExportDataFormat' => [ 'type' => 'string', 'enum' => [ 'CSV', 'GRAPHML', ], ], 'ExportDataFormats' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExportDataFormat', ], ], 'ExportFilter' => [ 'type' => 'structure', 'required' => [ 'name', 'values', 'condition', ], 'members' => [ 'name' => [ 'shape' => 'FilterName', ], 'values' => [ 'shape' => 'FilterValues', ], 'condition' => [ 'shape' => 'Condition', ], ], ], 'ExportFilters' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExportFilter', ], ], 'ExportIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationsExportId', ], ], 'ExportInfo' => [ 'type' => 'structure', 'required' => [ 'exportId', 'exportStatus', 'statusMessage', 'exportRequestTime', ], 'members' => [ 'exportId' => [ 'shape' => 'ConfigurationsExportId', ], 'exportStatus' => [ 'shape' => 'ExportStatus', ], 'statusMessage' => [ 'shape' => 'ExportStatusMessage', ], 'configurationsDownloadUrl' => [ 'shape' => 'ConfigurationsDownloadUrl', ], 'exportRequestTime' => [ 'shape' => 'ExportRequestTime', ], 'isTruncated' => [ 'shape' => 'Boolean', ], 'requestedStartTime' => [ 'shape' => 'TimeStamp', ], 'requestedEndTime' => [ 'shape' => 'TimeStamp', ], ], ], 'ExportRequestTime' => [ 'type' => 'timestamp', ], 'ExportStatus' => [ 'type' => 'string', 'enum' => [ 'FAILED', 'SUCCEEDED', 'IN_PROGRESS', ], ], 'ExportStatusMessage' => [ 'type' => 'string', ], 'ExportsInfo' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExportInfo', ], ], 'Filter' => [ 'type' => 'structure', 'required' => [ 'name', 'values', 'condition', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'values' => [ 'shape' => 'FilterValues', ], 'condition' => [ 'shape' => 'Condition', ], ], ], 'FilterName' => [ 'type' => 'string', ], 'FilterValue' => [ 'type' => 'string', ], 'FilterValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'FilterValue', ], ], 'Filters' => [ 'type' => 'list', 'member' => [ 'shape' => 'Filter', ], ], 'GetDiscoverySummaryRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetDiscoverySummaryResponse' => [ 'type' => 'structure', 'members' => [ 'servers' => [ 'shape' => 'Long', ], 'applications' => [ 'shape' => 'Long', ], 'serversMappedToApplications' => [ 'shape' => 'Long', ], 'serversMappedtoTags' => [ 'shape' => 'Long', ], 'agentSummary' => [ 'shape' => 'CustomerAgentInfo', ], 'connectorSummary' => [ 'shape' => 'CustomerConnectorInfo', ], ], ], 'ImportStatus' => [ 'type' => 'string', 'enum' => [ 'IMPORT_IN_PROGRESS', 'IMPORT_COMPLETE', 'IMPORT_FAILED', 'IMPORT_FAILED_SERVER_LIMIT_EXCEEDED', 'IMPORT_FAILED_RECORD_LIMIT_EXCEEDED', 'DELETE_IN_PROGRESS', 'DELETE_COMPLETE', 'DELETE_FAILED', 'DELETE_FAILED_LIMIT_EXCEEDED', ], ], 'ImportTask' => [ 'type' => 'structure', 'members' => [ 'importTaskId' => [ 'shape' => 'ImportTaskIdentifier', ], 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', ], 'name' => [ 'shape' => 'ImportTaskName', ], 'importUrl' => [ 'shape' => 'ImportURL', ], 'status' => [ 'shape' => 'ImportStatus', ], 'importRequestTime' => [ 'shape' => 'TimeStamp', ], 'importCompletionTime' => [ 'shape' => 'TimeStamp', ], 'importDeletedTime' => [ 'shape' => 'TimeStamp', ], 'serverImportSuccess' => [ 'shape' => 'Integer', ], 'serverImportFailure' => [ 'shape' => 'Integer', ], 'applicationImportSuccess' => [ 'shape' => 'Integer', ], 'applicationImportFailure' => [ 'shape' => 'Integer', ], 'errorsAndFailedEntriesZip' => [ 'shape' => 'S3PresignedUrl', ], ], ], 'ImportTaskFilter' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ImportTaskFilterName', ], 'values' => [ 'shape' => 'ImportTaskFilterValueList', ], ], ], 'ImportTaskFilterName' => [ 'type' => 'string', 'enum' => [ 'IMPORT_TASK_ID', 'STATUS', 'NAME', ], ], 'ImportTaskFilterValue' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'ImportTaskFilterValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportTaskFilterValue', ], 'max' => 100, 'min' => 1, ], 'ImportTaskIdentifier' => [ 'type' => 'string', ], 'ImportTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportTask', ], ], 'ImportTaskName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'ImportURL' => [ 'type' => 'string', 'max' => 4000, 'min' => 1, ], 'Integer' => [ 'type' => 'integer', ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'InvalidParameterValueException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'ListConfigurationsRequest' => [ 'type' => 'structure', 'required' => [ 'configurationType', ], 'members' => [ 'configurationType' => [ 'shape' => 'ConfigurationItemType', ], 'filters' => [ 'shape' => 'Filters', ], 'maxResults' => [ 'shape' => 'Integer', ], 'nextToken' => [ 'shape' => 'NextToken', ], 'orderBy' => [ 'shape' => 'OrderByList', ], ], ], 'ListConfigurationsResponse' => [ 'type' => 'structure', 'members' => [ 'configurations' => [ 'shape' => 'Configurations', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListServerNeighborsRequest' => [ 'type' => 'structure', 'required' => [ 'configurationId', ], 'members' => [ 'configurationId' => [ 'shape' => 'ConfigurationId', ], 'portInformationNeeded' => [ 'shape' => 'Boolean', ], 'neighborConfigurationIds' => [ 'shape' => 'ConfigurationIdList', ], 'maxResults' => [ 'shape' => 'Integer', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListServerNeighborsResponse' => [ 'type' => 'structure', 'required' => [ 'neighbors', ], 'members' => [ 'neighbors' => [ 'shape' => 'NeighborDetailsList', ], 'nextToken' => [ 'shape' => 'String', ], 'knownDependencyCount' => [ 'shape' => 'Long', ], ], ], 'Long' => [ 'type' => 'long', ], 'Message' => [ 'type' => 'string', ], 'NeighborConnectionDetail' => [ 'type' => 'structure', 'required' => [ 'sourceServerId', 'destinationServerId', 'connectionsCount', ], 'members' => [ 'sourceServerId' => [ 'shape' => 'ConfigurationId', ], 'destinationServerId' => [ 'shape' => 'ConfigurationId', ], 'destinationPort' => [ 'shape' => 'BoxedInteger', ], 'transportProtocol' => [ 'shape' => 'String', ], 'connectionsCount' => [ 'shape' => 'Long', ], ], ], 'NeighborDetailsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NeighborConnectionDetail', ], ], 'NextToken' => [ 'type' => 'string', ], 'OperationNotPermittedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'OrderByElement' => [ 'type' => 'structure', 'required' => [ 'fieldName', ], 'members' => [ 'fieldName' => [ 'shape' => 'String', ], 'sortOrder' => [ 'shape' => 'orderString', ], ], ], 'OrderByList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OrderByElement', ], ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'S3Bucket' => [ 'type' => 'string', ], 'S3PresignedUrl' => [ 'type' => 'string', ], 'SchemaStorageConfig' => [ 'type' => 'map', 'key' => [ 'shape' => 'DatabaseName', ], 'value' => [ 'shape' => 'String', ], ], 'ServerInternalErrorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'Message', ], ], 'exception' => true, 'fault' => true, ], 'StartContinuousExportRequest' => [ 'type' => 'structure', 'members' => [], ], 'StartContinuousExportResponse' => [ 'type' => 'structure', 'members' => [ 'exportId' => [ 'shape' => 'ConfigurationsExportId', ], 's3Bucket' => [ 'shape' => 'S3Bucket', ], 'startTime' => [ 'shape' => 'TimeStamp', ], 'dataSource' => [ 'shape' => 'DataSource', ], 'schemaStorageConfig' => [ 'shape' => 'SchemaStorageConfig', ], ], ], 'StartDataCollectionByAgentIdsRequest' => [ 'type' => 'structure', 'required' => [ 'agentIds', ], 'members' => [ 'agentIds' => [ 'shape' => 'AgentIds', ], ], ], 'StartDataCollectionByAgentIdsResponse' => [ 'type' => 'structure', 'members' => [ 'agentsConfigurationStatus' => [ 'shape' => 'AgentConfigurationStatusList', ], ], ], 'StartExportTaskRequest' => [ 'type' => 'structure', 'members' => [ 'exportDataFormat' => [ 'shape' => 'ExportDataFormats', ], 'filters' => [ 'shape' => 'ExportFilters', ], 'startTime' => [ 'shape' => 'TimeStamp', ], 'endTime' => [ 'shape' => 'TimeStamp', ], ], ], 'StartExportTaskResponse' => [ 'type' => 'structure', 'members' => [ 'exportId' => [ 'shape' => 'ConfigurationsExportId', ], ], ], 'StartImportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'importUrl', ], 'members' => [ 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'name' => [ 'shape' => 'ImportTaskName', ], 'importUrl' => [ 'shape' => 'ImportURL', ], ], ], 'StartImportTaskResponse' => [ 'type' => 'structure', 'members' => [ 'task' => [ 'shape' => 'ImportTask', ], ], ], 'StopContinuousExportRequest' => [ 'type' => 'structure', 'required' => [ 'exportId', ], 'members' => [ 'exportId' => [ 'shape' => 'ConfigurationsExportId', ], ], ], 'StopContinuousExportResponse' => [ 'type' => 'structure', 'members' => [ 'startTime' => [ 'shape' => 'TimeStamp', ], 'stopTime' => [ 'shape' => 'TimeStamp', ], ], ], 'StopDataCollectionByAgentIdsRequest' => [ 'type' => 'structure', 'required' => [ 'agentIds', ], 'members' => [ 'agentIds' => [ 'shape' => 'AgentIds', ], ], ], 'StopDataCollectionByAgentIdsResponse' => [ 'type' => 'structure', 'members' => [ 'agentsConfigurationStatus' => [ 'shape' => 'AgentConfigurationStatusList', ], ], ], 'String' => [ 'type' => 'string', ], 'StringMax255' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'key', 'value', ], 'members' => [ 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], ], ], 'TagFilter' => [ 'type' => 'structure', 'required' => [ 'name', 'values', ], 'members' => [ 'name' => [ 'shape' => 'FilterName', ], 'values' => [ 'shape' => 'FilterValues', ], ], ], 'TagFilters' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagFilter', ], ], 'TagKey' => [ 'type' => 'string', ], 'TagSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagValue' => [ 'type' => 'string', ], 'TimeStamp' => [ 'type' => 'timestamp', ], 'ToDeleteIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportTaskIdentifier', ], 'max' => 10, 'min' => 1, ], 'UpdateApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'configurationId', ], 'members' => [ 'configurationId' => [ 'shape' => 'ApplicationId', ], 'name' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], ], ], 'UpdateApplicationResponse' => [ 'type' => 'structure', 'members' => [], ], 'orderString' => [ 'type' => 'string', 'enum' => [ 'ASC', 'DESC', ], ], ],]; diff --git a/lib/aws/Aws/data/discovery/2015-11-01/paginators-1.json.php b/lib/aws/Aws/data/discovery/2015-11-01/paginators-1.json.php new file mode 100644 index 0000000..e627ebc --- /dev/null +++ b/lib/aws/Aws/data/discovery/2015-11-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/discovery/2015-11-01/paginators-1.json +return [ 'pagination' => [ 'DescribeContinuousExports' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'DescribeImportTasks' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], ],]; diff --git a/lib/aws/Aws/data/discovery/2015-11-01/smoke.json.php b/lib/aws/Aws/data/discovery/2015-11-01/smoke.json.php new file mode 100644 index 0000000..bda742b --- /dev/null +++ b/lib/aws/Aws/data/discovery/2015-11-01/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/discovery/2015-11-01/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeAgents', 'input' => [], 'errorExpectedFromService' => false, ], ],]; diff --git a/lib/aws/Aws/data/dlm/2018-01-12/api-2.json.php b/lib/aws/Aws/data/dlm/2018-01-12/api-2.json.php new file mode 100644 index 0000000..b7440d4 --- /dev/null +++ b/lib/aws/Aws/data/dlm/2018-01-12/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/dlm/2018-01-12/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-01-12', 'endpointPrefix' => 'dlm', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'Amazon DLM', 'serviceFullName' => 'Amazon Data Lifecycle Manager', 'serviceId' => 'DLM', 'signatureVersion' => 'v4', 'signingName' => 'dlm', 'uid' => 'dlm-2018-01-12', ], 'operations' => [ 'CreateLifecyclePolicy' => [ 'name' => 'CreateLifecyclePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/policies', ], 'input' => [ 'shape' => 'CreateLifecyclePolicyRequest', ], 'output' => [ 'shape' => 'CreateLifecyclePolicyResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DeleteLifecyclePolicy' => [ 'name' => 'DeleteLifecyclePolicy', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/policies/{policyId}/', ], 'input' => [ 'shape' => 'DeleteLifecyclePolicyRequest', ], 'output' => [ 'shape' => 'DeleteLifecyclePolicyResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'GetLifecyclePolicies' => [ 'name' => 'GetLifecyclePolicies', 'http' => [ 'method' => 'GET', 'requestUri' => '/policies', ], 'input' => [ 'shape' => 'GetLifecyclePoliciesRequest', ], 'output' => [ 'shape' => 'GetLifecyclePoliciesResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'GetLifecyclePolicy' => [ 'name' => 'GetLifecyclePolicy', 'http' => [ 'method' => 'GET', 'requestUri' => '/policies/{policyId}/', ], 'input' => [ 'shape' => 'GetLifecyclePolicyRequest', ], 'output' => [ 'shape' => 'GetLifecyclePolicyResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'UpdateLifecyclePolicy' => [ 'name' => 'UpdateLifecyclePolicy', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/policies/{policyId}', ], 'input' => [ 'shape' => 'UpdateLifecyclePolicyRequest', ], 'output' => [ 'shape' => 'UpdateLifecyclePolicyResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'LimitExceededException', ], ], ], ], 'shapes' => [ 'CopyTags' => [ 'type' => 'boolean', ], 'Count' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'CreateLifecyclePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'ExecutionRoleArn', 'Description', 'State', 'PolicyDetails', ], 'members' => [ 'ExecutionRoleArn' => [ 'shape' => 'ExecutionRoleArn', ], 'Description' => [ 'shape' => 'PolicyDescription', ], 'State' => [ 'shape' => 'SettablePolicyStateValues', ], 'PolicyDetails' => [ 'shape' => 'PolicyDetails', ], ], ], 'CreateLifecyclePolicyResponse' => [ 'type' => 'structure', 'members' => [ 'PolicyId' => [ 'shape' => 'PolicyId', ], ], ], 'CreateRule' => [ 'type' => 'structure', 'required' => [ 'Interval', 'IntervalUnit', ], 'members' => [ 'Interval' => [ 'shape' => 'Interval', ], 'IntervalUnit' => [ 'shape' => 'IntervalUnitValues', ], 'Times' => [ 'shape' => 'TimesList', ], ], ], 'DeleteLifecyclePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'PolicyId', ], 'members' => [ 'PolicyId' => [ 'shape' => 'PolicyId', 'location' => 'uri', 'locationName' => 'policyId', ], ], ], 'DeleteLifecyclePolicyResponse' => [ 'type' => 'structure', 'members' => [], ], 'ErrorCode' => [ 'type' => 'string', ], 'ErrorMessage' => [ 'type' => 'string', ], 'ExecutionRoleArn' => [ 'type' => 'string', ], 'GetLifecyclePoliciesRequest' => [ 'type' => 'structure', 'members' => [ 'PolicyIds' => [ 'shape' => 'PolicyIdList', 'location' => 'querystring', 'locationName' => 'policyIds', ], 'State' => [ 'shape' => 'GettablePolicyStateValues', 'location' => 'querystring', 'locationName' => 'state', ], 'ResourceTypes' => [ 'shape' => 'ResourceTypeValuesList', 'location' => 'querystring', 'locationName' => 'resourceTypes', ], 'TargetTags' => [ 'shape' => 'TargetTagsFilterList', 'location' => 'querystring', 'locationName' => 'targetTags', ], 'TagsToAdd' => [ 'shape' => 'TagsToAddFilterList', 'location' => 'querystring', 'locationName' => 'tagsToAdd', ], ], ], 'GetLifecyclePoliciesResponse' => [ 'type' => 'structure', 'members' => [ 'Policies' => [ 'shape' => 'LifecyclePolicySummaryList', ], ], ], 'GetLifecyclePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'PolicyId', ], 'members' => [ 'PolicyId' => [ 'shape' => 'PolicyId', 'location' => 'uri', 'locationName' => 'policyId', ], ], ], 'GetLifecyclePolicyResponse' => [ 'type' => 'structure', 'members' => [ 'Policy' => [ 'shape' => 'LifecyclePolicy', ], ], ], 'GettablePolicyStateValues' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', 'ERROR', ], ], 'InternalServerException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], 'Code' => [ 'shape' => 'ErrorCode', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, ], 'Interval' => [ 'type' => 'integer', 'min' => 1, ], 'IntervalUnitValues' => [ 'type' => 'string', 'enum' => [ 'HOURS', ], ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], 'Code' => [ 'shape' => 'ErrorCode', ], 'RequiredParameters' => [ 'shape' => 'ParameterList', ], 'MutuallyExclusiveParameters' => [ 'shape' => 'ParameterList', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'LifecyclePolicy' => [ 'type' => 'structure', 'members' => [ 'PolicyId' => [ 'shape' => 'PolicyId', ], 'Description' => [ 'shape' => 'PolicyDescription', ], 'State' => [ 'shape' => 'GettablePolicyStateValues', ], 'ExecutionRoleArn' => [ 'shape' => 'ExecutionRoleArn', ], 'DateCreated' => [ 'shape' => 'Timestamp', ], 'DateModified' => [ 'shape' => 'Timestamp', ], 'PolicyDetails' => [ 'shape' => 'PolicyDetails', ], ], ], 'LifecyclePolicySummary' => [ 'type' => 'structure', 'members' => [ 'PolicyId' => [ 'shape' => 'PolicyId', ], 'Description' => [ 'shape' => 'PolicyDescription', ], 'State' => [ 'shape' => 'GettablePolicyStateValues', ], ], ], 'LifecyclePolicySummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LifecyclePolicySummary', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], 'Code' => [ 'shape' => 'ErrorCode', ], 'ResourceType' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'Parameter' => [ 'type' => 'string', ], 'ParameterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Parameter', ], ], 'PolicyDescription' => [ 'type' => 'string', 'max' => 500, 'min' => 0, ], 'PolicyDetails' => [ 'type' => 'structure', 'members' => [ 'ResourceTypes' => [ 'shape' => 'ResourceTypeValuesList', ], 'TargetTags' => [ 'shape' => 'TargetTagList', ], 'Schedules' => [ 'shape' => 'ScheduleList', ], ], ], 'PolicyId' => [ 'type' => 'string', ], 'PolicyIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyId', ], ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], 'Code' => [ 'shape' => 'ErrorCode', ], 'ResourceType' => [ 'shape' => 'String', ], 'ResourceIds' => [ 'shape' => 'PolicyIdList', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'ResourceTypeValues' => [ 'type' => 'string', 'enum' => [ 'VOLUME', ], ], 'ResourceTypeValuesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceTypeValues', ], 'max' => 1, 'min' => 1, ], 'RetainRule' => [ 'type' => 'structure', 'required' => [ 'Count', ], 'members' => [ 'Count' => [ 'shape' => 'Count', ], ], ], 'Schedule' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'ScheduleName', ], 'CopyTags' => [ 'shape' => 'CopyTags', ], 'TagsToAdd' => [ 'shape' => 'TagsToAddList', ], 'CreateRule' => [ 'shape' => 'CreateRule', ], 'RetainRule' => [ 'shape' => 'RetainRule', ], ], ], 'ScheduleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Schedule', ], 'max' => 1, 'min' => 1, ], 'ScheduleName' => [ 'type' => 'string', 'max' => 500, 'min' => 0, ], 'SettablePolicyStateValues' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'String' => [ 'type' => 'string', ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'String', ], 'Value' => [ 'shape' => 'String', ], ], ], 'TagFilter' => [ 'type' => 'string', ], 'TagsToAddFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagFilter', ], 'max' => 50, 'min' => 0, ], 'TagsToAddList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 50, 'min' => 0, ], 'TargetTagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 50, 'min' => 1, ], 'TargetTagsFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagFilter', ], 'max' => 50, 'min' => 1, ], 'Time' => [ 'type' => 'string', 'pattern' => '^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$', ], 'TimesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Time', ], 'max' => 1, ], 'Timestamp' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], 'UpdateLifecyclePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'PolicyId', ], 'members' => [ 'PolicyId' => [ 'shape' => 'PolicyId', 'location' => 'uri', 'locationName' => 'policyId', ], 'ExecutionRoleArn' => [ 'shape' => 'ExecutionRoleArn', ], 'State' => [ 'shape' => 'SettablePolicyStateValues', ], 'Description' => [ 'shape' => 'PolicyDescription', ], 'PolicyDetails' => [ 'shape' => 'PolicyDetails', ], ], ], 'UpdateLifecyclePolicyResponse' => [ 'type' => 'structure', 'members' => [], ], ],]; diff --git a/lib/aws/Aws/data/dlm/2018-01-12/paginators-1.json.php b/lib/aws/Aws/data/dlm/2018-01-12/paginators-1.json.php new file mode 100644 index 0000000..f17eb0c --- /dev/null +++ b/lib/aws/Aws/data/dlm/2018-01-12/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/dlm/2018-01-12/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/dms/2016-01-01/api-2.json.php b/lib/aws/Aws/data/dms/2016-01-01/api-2.json.php new file mode 100644 index 0000000..5be07f3 --- /dev/null +++ b/lib/aws/Aws/data/dms/2016-01-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/dms/2016-01-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-01-01', 'endpointPrefix' => 'dms', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWS Database Migration Service', 'serviceId' => 'Database Migration Service', 'signatureVersion' => 'v4', 'targetPrefix' => 'AmazonDMSv20160101', 'uid' => 'dms-2016-01-01', ], 'operations' => [ 'AddTagsToResource' => [ 'name' => 'AddTagsToResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddTagsToResourceMessage', ], 'output' => [ 'shape' => 'AddTagsToResourceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], ], ], 'ApplyPendingMaintenanceAction' => [ 'name' => 'ApplyPendingMaintenanceAction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ApplyPendingMaintenanceActionMessage', ], 'output' => [ 'shape' => 'ApplyPendingMaintenanceActionResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], ], ], 'CreateEndpoint' => [ 'name' => 'CreateEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateEndpointMessage', ], 'output' => [ 'shape' => 'CreateEndpointResponse', ], 'errors' => [ [ 'shape' => 'KMSKeyNotAccessibleFault', ], [ 'shape' => 'ResourceAlreadyExistsFault', ], [ 'shape' => 'ResourceQuotaExceededFault', ], [ 'shape' => 'InvalidResourceStateFault', ], [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'AccessDeniedFault', ], ], ], 'CreateEventSubscription' => [ 'name' => 'CreateEventSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateEventSubscriptionMessage', ], 'output' => [ 'shape' => 'CreateEventSubscriptionResponse', ], 'errors' => [ [ 'shape' => 'ResourceQuotaExceededFault', ], [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'ResourceAlreadyExistsFault', ], [ 'shape' => 'SNSInvalidTopicFault', ], [ 'shape' => 'SNSNoAuthorizationFault', ], [ 'shape' => 'KMSAccessDeniedFault', ], [ 'shape' => 'KMSDisabledFault', ], [ 'shape' => 'KMSInvalidStateFault', ], [ 'shape' => 'KMSNotFoundFault', ], [ 'shape' => 'KMSThrottlingFault', ], ], ], 'CreateReplicationInstance' => [ 'name' => 'CreateReplicationInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateReplicationInstanceMessage', ], 'output' => [ 'shape' => 'CreateReplicationInstanceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedFault', ], [ 'shape' => 'ResourceAlreadyExistsFault', ], [ 'shape' => 'InsufficientResourceCapacityFault', ], [ 'shape' => 'ResourceQuotaExceededFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'ReplicationSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidResourceStateFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], ], ], 'CreateReplicationSubnetGroup' => [ 'name' => 'CreateReplicationSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateReplicationSubnetGroupMessage', ], 'output' => [ 'shape' => 'CreateReplicationSubnetGroupResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedFault', ], [ 'shape' => 'ResourceAlreadyExistsFault', ], [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'ResourceQuotaExceededFault', ], [ 'shape' => 'ReplicationSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidSubnet', ], ], ], 'CreateReplicationTask' => [ 'name' => 'CreateReplicationTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateReplicationTaskMessage', ], 'output' => [ 'shape' => 'CreateReplicationTaskResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedFault', ], [ 'shape' => 'InvalidResourceStateFault', ], [ 'shape' => 'ResourceAlreadyExistsFault', ], [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], [ 'shape' => 'ResourceQuotaExceededFault', ], ], ], 'DeleteCertificate' => [ 'name' => 'DeleteCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCertificateMessage', ], 'output' => [ 'shape' => 'DeleteCertificateResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'InvalidResourceStateFault', ], ], ], 'DeleteEndpoint' => [ 'name' => 'DeleteEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteEndpointMessage', ], 'output' => [ 'shape' => 'DeleteEndpointResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'InvalidResourceStateFault', ], ], ], 'DeleteEventSubscription' => [ 'name' => 'DeleteEventSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteEventSubscriptionMessage', ], 'output' => [ 'shape' => 'DeleteEventSubscriptionResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'InvalidResourceStateFault', ], ], ], 'DeleteReplicationInstance' => [ 'name' => 'DeleteReplicationInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteReplicationInstanceMessage', ], 'output' => [ 'shape' => 'DeleteReplicationInstanceResponse', ], 'errors' => [ [ 'shape' => 'InvalidResourceStateFault', ], [ 'shape' => 'ResourceNotFoundFault', ], ], ], 'DeleteReplicationSubnetGroup' => [ 'name' => 'DeleteReplicationSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteReplicationSubnetGroupMessage', ], 'output' => [ 'shape' => 'DeleteReplicationSubnetGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidResourceStateFault', ], [ 'shape' => 'ResourceNotFoundFault', ], ], ], 'DeleteReplicationTask' => [ 'name' => 'DeleteReplicationTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteReplicationTaskMessage', ], 'output' => [ 'shape' => 'DeleteReplicationTaskResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'InvalidResourceStateFault', ], ], ], 'DescribeAccountAttributes' => [ 'name' => 'DescribeAccountAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAccountAttributesMessage', ], 'output' => [ 'shape' => 'DescribeAccountAttributesResponse', ], ], 'DescribeCertificates' => [ 'name' => 'DescribeCertificates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCertificatesMessage', ], 'output' => [ 'shape' => 'DescribeCertificatesResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], ], ], 'DescribeConnections' => [ 'name' => 'DescribeConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeConnectionsMessage', ], 'output' => [ 'shape' => 'DescribeConnectionsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], ], ], 'DescribeEndpointTypes' => [ 'name' => 'DescribeEndpointTypes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEndpointTypesMessage', ], 'output' => [ 'shape' => 'DescribeEndpointTypesResponse', ], ], 'DescribeEndpoints' => [ 'name' => 'DescribeEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEndpointsMessage', ], 'output' => [ 'shape' => 'DescribeEndpointsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], ], ], 'DescribeEventCategories' => [ 'name' => 'DescribeEventCategories', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEventCategoriesMessage', ], 'output' => [ 'shape' => 'DescribeEventCategoriesResponse', ], ], 'DescribeEventSubscriptions' => [ 'name' => 'DescribeEventSubscriptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEventSubscriptionsMessage', ], 'output' => [ 'shape' => 'DescribeEventSubscriptionsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], ], ], 'DescribeEvents' => [ 'name' => 'DescribeEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEventsMessage', ], 'output' => [ 'shape' => 'DescribeEventsResponse', ], ], 'DescribeOrderableReplicationInstances' => [ 'name' => 'DescribeOrderableReplicationInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeOrderableReplicationInstancesMessage', ], 'output' => [ 'shape' => 'DescribeOrderableReplicationInstancesResponse', ], ], 'DescribePendingMaintenanceActions' => [ 'name' => 'DescribePendingMaintenanceActions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePendingMaintenanceActionsMessage', ], 'output' => [ 'shape' => 'DescribePendingMaintenanceActionsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], ], ], 'DescribeRefreshSchemasStatus' => [ 'name' => 'DescribeRefreshSchemasStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRefreshSchemasStatusMessage', ], 'output' => [ 'shape' => 'DescribeRefreshSchemasStatusResponse', ], 'errors' => [ [ 'shape' => 'InvalidResourceStateFault', ], [ 'shape' => 'ResourceNotFoundFault', ], ], ], 'DescribeReplicationInstanceTaskLogs' => [ 'name' => 'DescribeReplicationInstanceTaskLogs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReplicationInstanceTaskLogsMessage', ], 'output' => [ 'shape' => 'DescribeReplicationInstanceTaskLogsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'InvalidResourceStateFault', ], ], ], 'DescribeReplicationInstances' => [ 'name' => 'DescribeReplicationInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReplicationInstancesMessage', ], 'output' => [ 'shape' => 'DescribeReplicationInstancesResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], ], ], 'DescribeReplicationSubnetGroups' => [ 'name' => 'DescribeReplicationSubnetGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReplicationSubnetGroupsMessage', ], 'output' => [ 'shape' => 'DescribeReplicationSubnetGroupsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], ], ], 'DescribeReplicationTaskAssessmentResults' => [ 'name' => 'DescribeReplicationTaskAssessmentResults', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReplicationTaskAssessmentResultsMessage', ], 'output' => [ 'shape' => 'DescribeReplicationTaskAssessmentResultsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], ], ], 'DescribeReplicationTasks' => [ 'name' => 'DescribeReplicationTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReplicationTasksMessage', ], 'output' => [ 'shape' => 'DescribeReplicationTasksResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], ], ], 'DescribeSchemas' => [ 'name' => 'DescribeSchemas', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSchemasMessage', ], 'output' => [ 'shape' => 'DescribeSchemasResponse', ], 'errors' => [ [ 'shape' => 'InvalidResourceStateFault', ], [ 'shape' => 'ResourceNotFoundFault', ], ], ], 'DescribeTableStatistics' => [ 'name' => 'DescribeTableStatistics', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTableStatisticsMessage', ], 'output' => [ 'shape' => 'DescribeTableStatisticsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'InvalidResourceStateFault', ], ], ], 'ImportCertificate' => [ 'name' => 'ImportCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportCertificateMessage', ], 'output' => [ 'shape' => 'ImportCertificateResponse', ], 'errors' => [ [ 'shape' => 'ResourceAlreadyExistsFault', ], [ 'shape' => 'InvalidCertificateFault', ], [ 'shape' => 'ResourceQuotaExceededFault', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceMessage', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], ], ], 'ModifyEndpoint' => [ 'name' => 'ModifyEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyEndpointMessage', ], 'output' => [ 'shape' => 'ModifyEndpointResponse', ], 'errors' => [ [ 'shape' => 'InvalidResourceStateFault', ], [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'ResourceAlreadyExistsFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], [ 'shape' => 'AccessDeniedFault', ], ], ], 'ModifyEventSubscription' => [ 'name' => 'ModifyEventSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyEventSubscriptionMessage', ], 'output' => [ 'shape' => 'ModifyEventSubscriptionResponse', ], 'errors' => [ [ 'shape' => 'ResourceQuotaExceededFault', ], [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'SNSInvalidTopicFault', ], [ 'shape' => 'SNSNoAuthorizationFault', ], [ 'shape' => 'KMSAccessDeniedFault', ], [ 'shape' => 'KMSDisabledFault', ], [ 'shape' => 'KMSInvalidStateFault', ], [ 'shape' => 'KMSNotFoundFault', ], [ 'shape' => 'KMSThrottlingFault', ], ], ], 'ModifyReplicationInstance' => [ 'name' => 'ModifyReplicationInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyReplicationInstanceMessage', ], 'output' => [ 'shape' => 'ModifyReplicationInstanceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedFault', ], [ 'shape' => 'InvalidResourceStateFault', ], [ 'shape' => 'ResourceAlreadyExistsFault', ], [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'InsufficientResourceCapacityFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'UpgradeDependencyFailureFault', ], ], ], 'ModifyReplicationSubnetGroup' => [ 'name' => 'ModifyReplicationSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyReplicationSubnetGroupMessage', ], 'output' => [ 'shape' => 'ModifyReplicationSubnetGroupResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedFault', ], [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'ResourceQuotaExceededFault', ], [ 'shape' => 'SubnetAlreadyInUse', ], [ 'shape' => 'ReplicationSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidSubnet', ], ], ], 'ModifyReplicationTask' => [ 'name' => 'ModifyReplicationTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyReplicationTaskMessage', ], 'output' => [ 'shape' => 'ModifyReplicationTaskResponse', ], 'errors' => [ [ 'shape' => 'InvalidResourceStateFault', ], [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'ResourceAlreadyExistsFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], ], ], 'RebootReplicationInstance' => [ 'name' => 'RebootReplicationInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RebootReplicationInstanceMessage', ], 'output' => [ 'shape' => 'RebootReplicationInstanceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'InvalidResourceStateFault', ], ], ], 'RefreshSchemas' => [ 'name' => 'RefreshSchemas', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RefreshSchemasMessage', ], 'output' => [ 'shape' => 'RefreshSchemasResponse', ], 'errors' => [ [ 'shape' => 'InvalidResourceStateFault', ], [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], [ 'shape' => 'ResourceQuotaExceededFault', ], ], ], 'ReloadTables' => [ 'name' => 'ReloadTables', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReloadTablesMessage', ], 'output' => [ 'shape' => 'ReloadTablesResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'InvalidResourceStateFault', ], ], ], 'RemoveTagsFromResource' => [ 'name' => 'RemoveTagsFromResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveTagsFromResourceMessage', ], 'output' => [ 'shape' => 'RemoveTagsFromResourceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], ], ], 'StartReplicationTask' => [ 'name' => 'StartReplicationTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartReplicationTaskMessage', ], 'output' => [ 'shape' => 'StartReplicationTaskResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'InvalidResourceStateFault', ], [ 'shape' => 'AccessDeniedFault', ], ], ], 'StartReplicationTaskAssessment' => [ 'name' => 'StartReplicationTaskAssessment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartReplicationTaskAssessmentMessage', ], 'output' => [ 'shape' => 'StartReplicationTaskAssessmentResponse', ], 'errors' => [ [ 'shape' => 'InvalidResourceStateFault', ], [ 'shape' => 'ResourceNotFoundFault', ], ], ], 'StopReplicationTask' => [ 'name' => 'StopReplicationTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopReplicationTaskMessage', ], 'output' => [ 'shape' => 'StopReplicationTaskResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'InvalidResourceStateFault', ], ], ], 'TestConnection' => [ 'name' => 'TestConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TestConnectionMessage', ], 'output' => [ 'shape' => 'TestConnectionResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'InvalidResourceStateFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], [ 'shape' => 'ResourceQuotaExceededFault', ], ], ], ], 'shapes' => [ 'AccessDeniedFault' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'AccountQuota' => [ 'type' => 'structure', 'members' => [ 'AccountQuotaName' => [ 'shape' => 'String', ], 'Used' => [ 'shape' => 'Long', ], 'Max' => [ 'shape' => 'Long', ], ], ], 'AccountQuotaList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountQuota', ], ], 'AddTagsToResourceMessage' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Tags', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'AddTagsToResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'ApplyPendingMaintenanceActionMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationInstanceArn', 'ApplyAction', 'OptInType', ], 'members' => [ 'ReplicationInstanceArn' => [ 'shape' => 'String', ], 'ApplyAction' => [ 'shape' => 'String', ], 'OptInType' => [ 'shape' => 'String', ], ], ], 'ApplyPendingMaintenanceActionResponse' => [ 'type' => 'structure', 'members' => [ 'ResourcePendingMaintenanceActions' => [ 'shape' => 'ResourcePendingMaintenanceActions', ], ], ], 'AuthMechanismValue' => [ 'type' => 'string', 'enum' => [ 'default', 'mongodb_cr', 'scram_sha_1', ], ], 'AuthTypeValue' => [ 'type' => 'string', 'enum' => [ 'no', 'password', ], ], 'AvailabilityZone' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], ], ], 'AvailabilityZonesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'Boolean' => [ 'type' => 'boolean', ], 'BooleanOptional' => [ 'type' => 'boolean', ], 'Certificate' => [ 'type' => 'structure', 'members' => [ 'CertificateIdentifier' => [ 'shape' => 'String', ], 'CertificateCreationDate' => [ 'shape' => 'TStamp', ], 'CertificatePem' => [ 'shape' => 'String', ], 'CertificateWallet' => [ 'shape' => 'CertificateWallet', ], 'CertificateArn' => [ 'shape' => 'String', ], 'CertificateOwner' => [ 'shape' => 'String', ], 'ValidFromDate' => [ 'shape' => 'TStamp', ], 'ValidToDate' => [ 'shape' => 'TStamp', ], 'SigningAlgorithm' => [ 'shape' => 'String', ], 'KeyLength' => [ 'shape' => 'IntegerOptional', ], ], ], 'CertificateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Certificate', ], ], 'CertificateWallet' => [ 'type' => 'blob', ], 'CompressionTypeValue' => [ 'type' => 'string', 'enum' => [ 'none', 'gzip', ], ], 'Connection' => [ 'type' => 'structure', 'members' => [ 'ReplicationInstanceArn' => [ 'shape' => 'String', ], 'EndpointArn' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], 'LastFailureMessage' => [ 'shape' => 'String', ], 'EndpointIdentifier' => [ 'shape' => 'String', ], 'ReplicationInstanceIdentifier' => [ 'shape' => 'String', ], ], ], 'ConnectionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Connection', ], ], 'CreateEndpointMessage' => [ 'type' => 'structure', 'required' => [ 'EndpointIdentifier', 'EndpointType', 'EngineName', ], 'members' => [ 'EndpointIdentifier' => [ 'shape' => 'String', ], 'EndpointType' => [ 'shape' => 'ReplicationEndpointTypeValue', ], 'EngineName' => [ 'shape' => 'String', ], 'Username' => [ 'shape' => 'String', ], 'Password' => [ 'shape' => 'SecretString', ], 'ServerName' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'DatabaseName' => [ 'shape' => 'String', ], 'ExtraConnectionAttributes' => [ 'shape' => 'String', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], 'CertificateArn' => [ 'shape' => 'String', ], 'SslMode' => [ 'shape' => 'DmsSslModeValue', ], 'ServiceAccessRoleArn' => [ 'shape' => 'String', ], 'ExternalTableDefinition' => [ 'shape' => 'String', ], 'DynamoDbSettings' => [ 'shape' => 'DynamoDbSettings', ], 'S3Settings' => [ 'shape' => 'S3Settings', ], 'DmsTransferSettings' => [ 'shape' => 'DmsTransferSettings', ], 'MongoDbSettings' => [ 'shape' => 'MongoDbSettings', ], 'KinesisSettings' => [ 'shape' => 'KinesisSettings', ], 'ElasticsearchSettings' => [ 'shape' => 'ElasticsearchSettings', ], 'RedshiftSettings' => [ 'shape' => 'RedshiftSettings', ], ], ], 'CreateEndpointResponse' => [ 'type' => 'structure', 'members' => [ 'Endpoint' => [ 'shape' => 'Endpoint', ], ], ], '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', ], ], ], 'CreateEventSubscriptionResponse' => [ 'type' => 'structure', 'members' => [ 'EventSubscription' => [ 'shape' => 'EventSubscription', ], ], ], 'CreateReplicationInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationInstanceIdentifier', 'ReplicationInstanceClass', ], 'members' => [ 'ReplicationInstanceIdentifier' => [ 'shape' => 'String', ], 'AllocatedStorage' => [ 'shape' => 'IntegerOptional', ], 'ReplicationInstanceClass' => [ 'shape' => 'String', ], 'VpcSecurityGroupIds' => [ 'shape' => 'VpcSecurityGroupIdList', ], 'AvailabilityZone' => [ 'shape' => 'String', ], 'ReplicationSubnetGroupIdentifier' => [ 'shape' => 'String', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'String', ], 'MultiAZ' => [ 'shape' => 'BooleanOptional', ], 'EngineVersion' => [ 'shape' => 'String', ], 'AutoMinorVersionUpgrade' => [ 'shape' => 'BooleanOptional', ], 'Tags' => [ 'shape' => 'TagList', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'PubliclyAccessible' => [ 'shape' => 'BooleanOptional', ], 'DnsNameServers' => [ 'shape' => 'String', ], ], ], 'CreateReplicationInstanceResponse' => [ 'type' => 'structure', 'members' => [ 'ReplicationInstance' => [ 'shape' => 'ReplicationInstance', ], ], ], 'CreateReplicationSubnetGroupMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationSubnetGroupIdentifier', 'ReplicationSubnetGroupDescription', 'SubnetIds', ], 'members' => [ 'ReplicationSubnetGroupIdentifier' => [ 'shape' => 'String', ], 'ReplicationSubnetGroupDescription' => [ 'shape' => 'String', ], 'SubnetIds' => [ 'shape' => 'SubnetIdentifierList', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateReplicationSubnetGroupResponse' => [ 'type' => 'structure', 'members' => [ 'ReplicationSubnetGroup' => [ 'shape' => 'ReplicationSubnetGroup', ], ], ], 'CreateReplicationTaskMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationTaskIdentifier', 'SourceEndpointArn', 'TargetEndpointArn', 'ReplicationInstanceArn', 'MigrationType', 'TableMappings', ], 'members' => [ 'ReplicationTaskIdentifier' => [ 'shape' => 'String', ], 'SourceEndpointArn' => [ 'shape' => 'String', ], 'TargetEndpointArn' => [ 'shape' => 'String', ], 'ReplicationInstanceArn' => [ 'shape' => 'String', ], 'MigrationType' => [ 'shape' => 'MigrationTypeValue', ], 'TableMappings' => [ 'shape' => 'String', ], 'ReplicationTaskSettings' => [ 'shape' => 'String', ], 'CdcStartTime' => [ 'shape' => 'TStamp', ], 'CdcStartPosition' => [ 'shape' => 'String', ], 'CdcStopPosition' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateReplicationTaskResponse' => [ 'type' => 'structure', 'members' => [ 'ReplicationTask' => [ 'shape' => 'ReplicationTask', ], ], ], 'DataFormatValue' => [ 'type' => 'string', 'enum' => [ 'csv', 'parquet', ], ], 'DeleteCertificateMessage' => [ 'type' => 'structure', 'required' => [ 'CertificateArn', ], 'members' => [ 'CertificateArn' => [ 'shape' => 'String', ], ], ], 'DeleteCertificateResponse' => [ 'type' => 'structure', 'members' => [ 'Certificate' => [ 'shape' => 'Certificate', ], ], ], 'DeleteEndpointMessage' => [ 'type' => 'structure', 'required' => [ 'EndpointArn', ], 'members' => [ 'EndpointArn' => [ 'shape' => 'String', ], ], ], 'DeleteEndpointResponse' => [ 'type' => 'structure', 'members' => [ 'Endpoint' => [ 'shape' => 'Endpoint', ], ], ], 'DeleteEventSubscriptionMessage' => [ 'type' => 'structure', 'required' => [ 'SubscriptionName', ], 'members' => [ 'SubscriptionName' => [ 'shape' => 'String', ], ], ], 'DeleteEventSubscriptionResponse' => [ 'type' => 'structure', 'members' => [ 'EventSubscription' => [ 'shape' => 'EventSubscription', ], ], ], 'DeleteReplicationInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationInstanceArn', ], 'members' => [ 'ReplicationInstanceArn' => [ 'shape' => 'String', ], ], ], 'DeleteReplicationInstanceResponse' => [ 'type' => 'structure', 'members' => [ 'ReplicationInstance' => [ 'shape' => 'ReplicationInstance', ], ], ], 'DeleteReplicationSubnetGroupMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationSubnetGroupIdentifier', ], 'members' => [ 'ReplicationSubnetGroupIdentifier' => [ 'shape' => 'String', ], ], ], 'DeleteReplicationSubnetGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteReplicationTaskMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationTaskArn', ], 'members' => [ 'ReplicationTaskArn' => [ 'shape' => 'String', ], ], ], 'DeleteReplicationTaskResponse' => [ 'type' => 'structure', 'members' => [ 'ReplicationTask' => [ 'shape' => 'ReplicationTask', ], ], ], 'DescribeAccountAttributesMessage' => [ 'type' => 'structure', 'members' => [], ], 'DescribeAccountAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'AccountQuotas' => [ 'shape' => 'AccountQuotaList', ], ], ], 'DescribeCertificatesMessage' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeCertificatesResponse' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'Certificates' => [ 'shape' => 'CertificateList', ], ], ], 'DescribeConnectionsMessage' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeConnectionsResponse' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'Connections' => [ 'shape' => 'ConnectionList', ], ], ], 'DescribeEndpointTypesMessage' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeEndpointTypesResponse' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'SupportedEndpointTypes' => [ 'shape' => 'SupportedEndpointTypeList', ], ], ], 'DescribeEndpointsMessage' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeEndpointsResponse' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'Endpoints' => [ 'shape' => 'EndpointList', ], ], ], 'DescribeEventCategoriesMessage' => [ 'type' => 'structure', 'members' => [ 'SourceType' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], ], ], 'DescribeEventCategoriesResponse' => [ 'type' => 'structure', 'members' => [ 'EventCategoryGroupList' => [ 'shape' => 'EventCategoryGroupList', ], ], ], 'DescribeEventSubscriptionsMessage' => [ 'type' => 'structure', 'members' => [ 'SubscriptionName' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeEventSubscriptionsResponse' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'EventSubscriptionsList' => [ 'shape' => 'EventSubscriptionsList', ], ], ], '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', ], ], ], 'DescribeEventsResponse' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'Events' => [ 'shape' => 'EventList', ], ], ], 'DescribeOrderableReplicationInstancesMessage' => [ 'type' => 'structure', 'members' => [ 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeOrderableReplicationInstancesResponse' => [ 'type' => 'structure', 'members' => [ 'OrderableReplicationInstances' => [ 'shape' => 'OrderableReplicationInstanceList', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribePendingMaintenanceActionsMessage' => [ 'type' => 'structure', 'members' => [ 'ReplicationInstanceArn' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'Marker' => [ 'shape' => 'String', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], ], ], 'DescribePendingMaintenanceActionsResponse' => [ 'type' => 'structure', 'members' => [ 'PendingMaintenanceActions' => [ 'shape' => 'PendingMaintenanceActions', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeRefreshSchemasStatusMessage' => [ 'type' => 'structure', 'required' => [ 'EndpointArn', ], 'members' => [ 'EndpointArn' => [ 'shape' => 'String', ], ], ], 'DescribeRefreshSchemasStatusResponse' => [ 'type' => 'structure', 'members' => [ 'RefreshSchemasStatus' => [ 'shape' => 'RefreshSchemasStatus', ], ], ], 'DescribeReplicationInstanceTaskLogsMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationInstanceArn', ], 'members' => [ 'ReplicationInstanceArn' => [ 'shape' => 'String', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeReplicationInstanceTaskLogsResponse' => [ 'type' => 'structure', 'members' => [ 'ReplicationInstanceArn' => [ 'shape' => 'String', ], 'ReplicationInstanceTaskLogs' => [ 'shape' => 'ReplicationInstanceTaskLogsList', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeReplicationInstancesMessage' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeReplicationInstancesResponse' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'ReplicationInstances' => [ 'shape' => 'ReplicationInstanceList', ], ], ], 'DescribeReplicationSubnetGroupsMessage' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeReplicationSubnetGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'ReplicationSubnetGroups' => [ 'shape' => 'ReplicationSubnetGroups', ], ], ], 'DescribeReplicationTaskAssessmentResultsMessage' => [ 'type' => 'structure', 'members' => [ 'ReplicationTaskArn' => [ 'shape' => 'String', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeReplicationTaskAssessmentResultsResponse' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'BucketName' => [ 'shape' => 'String', ], 'ReplicationTaskAssessmentResults' => [ 'shape' => 'ReplicationTaskAssessmentResultList', ], ], ], 'DescribeReplicationTasksMessage' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], 'WithoutSettings' => [ 'shape' => 'BooleanOptional', ], ], ], 'DescribeReplicationTasksResponse' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'ReplicationTasks' => [ 'shape' => 'ReplicationTaskList', ], ], ], 'DescribeSchemasMessage' => [ 'type' => 'structure', 'required' => [ 'EndpointArn', ], 'members' => [ 'EndpointArn' => [ 'shape' => 'String', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeSchemasResponse' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'Schemas' => [ 'shape' => 'SchemaList', ], ], ], 'DescribeTableStatisticsMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationTaskArn', ], 'members' => [ 'ReplicationTaskArn' => [ 'shape' => 'String', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], ], ], 'DescribeTableStatisticsResponse' => [ 'type' => 'structure', 'members' => [ 'ReplicationTaskArn' => [ 'shape' => 'String', ], 'TableStatistics' => [ 'shape' => 'TableStatisticsList', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DmsSslModeValue' => [ 'type' => 'string', 'enum' => [ 'none', 'require', 'verify-ca', 'verify-full', ], ], 'DmsTransferSettings' => [ 'type' => 'structure', 'members' => [ 'ServiceAccessRoleArn' => [ 'shape' => 'String', ], 'BucketName' => [ 'shape' => 'String', ], ], ], 'DynamoDbSettings' => [ 'type' => 'structure', 'required' => [ 'ServiceAccessRoleArn', ], 'members' => [ 'ServiceAccessRoleArn' => [ 'shape' => 'String', ], ], ], 'ElasticsearchSettings' => [ 'type' => 'structure', 'required' => [ 'ServiceAccessRoleArn', 'EndpointUri', ], 'members' => [ 'ServiceAccessRoleArn' => [ 'shape' => 'String', ], 'EndpointUri' => [ 'shape' => 'String', ], 'FullLoadErrorPercentage' => [ 'shape' => 'IntegerOptional', ], 'ErrorRetryDuration' => [ 'shape' => 'IntegerOptional', ], ], ], 'EncodingTypeValue' => [ 'type' => 'string', 'enum' => [ 'plain', 'plain-dictionary', 'rle-dictionary', ], ], 'EncryptionModeValue' => [ 'type' => 'string', 'enum' => [ 'sse-s3', 'sse-kms', ], ], 'Endpoint' => [ 'type' => 'structure', 'members' => [ 'EndpointIdentifier' => [ 'shape' => 'String', ], 'EndpointType' => [ 'shape' => 'ReplicationEndpointTypeValue', ], 'EngineName' => [ 'shape' => 'String', ], 'EngineDisplayName' => [ 'shape' => 'String', ], 'Username' => [ 'shape' => 'String', ], 'ServerName' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'DatabaseName' => [ 'shape' => 'String', ], 'ExtraConnectionAttributes' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'EndpointArn' => [ 'shape' => 'String', ], 'CertificateArn' => [ 'shape' => 'String', ], 'SslMode' => [ 'shape' => 'DmsSslModeValue', ], 'ServiceAccessRoleArn' => [ 'shape' => 'String', ], 'ExternalTableDefinition' => [ 'shape' => 'String', ], 'ExternalId' => [ 'shape' => 'String', ], 'DynamoDbSettings' => [ 'shape' => 'DynamoDbSettings', ], 'S3Settings' => [ 'shape' => 'S3Settings', ], 'DmsTransferSettings' => [ 'shape' => 'DmsTransferSettings', ], 'MongoDbSettings' => [ 'shape' => 'MongoDbSettings', ], 'KinesisSettings' => [ 'shape' => 'KinesisSettings', ], 'ElasticsearchSettings' => [ 'shape' => 'ElasticsearchSettings', ], 'RedshiftSettings' => [ 'shape' => 'RedshiftSettings', ], ], ], 'EndpointList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Endpoint', ], ], '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', ], ], 'EventCategoryGroup' => [ 'type' => 'structure', 'members' => [ 'SourceType' => [ 'shape' => 'String', ], 'EventCategories' => [ 'shape' => 'EventCategoriesList', ], ], ], 'EventCategoryGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventCategoryGroup', ], ], 'EventList' => [ 'type' => 'list', 'member' => [ 'shape' => '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', ], ], ], 'EventSubscriptionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventSubscription', ], ], 'ExceptionMessage' => [ 'type' => 'string', ], 'Filter' => [ 'type' => 'structure', 'required' => [ 'Name', 'Values', ], 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Values' => [ 'shape' => 'FilterValueList', ], ], ], 'FilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Filter', ], ], 'FilterValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ImportCertificateMessage' => [ 'type' => 'structure', 'required' => [ 'CertificateIdentifier', ], 'members' => [ 'CertificateIdentifier' => [ 'shape' => 'String', ], 'CertificatePem' => [ 'shape' => 'String', ], 'CertificateWallet' => [ 'shape' => 'CertificateWallet', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'ImportCertificateResponse' => [ 'type' => 'structure', 'members' => [ 'Certificate' => [ 'shape' => 'Certificate', ], ], ], 'InsufficientResourceCapacityFault' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'Integer' => [ 'type' => 'integer', ], 'IntegerOptional' => [ 'type' => 'integer', ], 'InvalidCertificateFault' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'InvalidResourceStateFault' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'InvalidSubnet' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'KMSAccessDeniedFault' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'KMSDisabledFault' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'KMSInvalidStateFault' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'KMSKeyNotAccessibleFault' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'KMSNotFoundFault' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'KMSThrottlingFault' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'KeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'KinesisSettings' => [ 'type' => 'structure', 'members' => [ 'StreamArn' => [ 'shape' => 'String', ], 'MessageFormat' => [ 'shape' => 'MessageFormatValue', ], 'ServiceAccessRoleArn' => [ 'shape' => 'String', ], ], ], 'ListTagsForResourceMessage' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'String', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'TagList' => [ 'shape' => 'TagList', ], ], ], 'Long' => [ 'type' => 'long', ], 'MessageFormatValue' => [ 'type' => 'string', 'enum' => [ 'json', ], ], 'MigrationTypeValue' => [ 'type' => 'string', 'enum' => [ 'full-load', 'cdc', 'full-load-and-cdc', ], ], 'ModifyEndpointMessage' => [ 'type' => 'structure', 'required' => [ 'EndpointArn', ], 'members' => [ 'EndpointArn' => [ 'shape' => 'String', ], 'EndpointIdentifier' => [ 'shape' => 'String', ], 'EndpointType' => [ 'shape' => 'ReplicationEndpointTypeValue', ], 'EngineName' => [ 'shape' => 'String', ], 'Username' => [ 'shape' => 'String', ], 'Password' => [ 'shape' => 'SecretString', ], 'ServerName' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'DatabaseName' => [ 'shape' => 'String', ], 'ExtraConnectionAttributes' => [ 'shape' => 'String', ], 'CertificateArn' => [ 'shape' => 'String', ], 'SslMode' => [ 'shape' => 'DmsSslModeValue', ], 'ServiceAccessRoleArn' => [ 'shape' => 'String', ], 'ExternalTableDefinition' => [ 'shape' => 'String', ], 'DynamoDbSettings' => [ 'shape' => 'DynamoDbSettings', ], 'S3Settings' => [ 'shape' => 'S3Settings', ], 'DmsTransferSettings' => [ 'shape' => 'DmsTransferSettings', ], 'MongoDbSettings' => [ 'shape' => 'MongoDbSettings', ], 'KinesisSettings' => [ 'shape' => 'KinesisSettings', ], 'ElasticsearchSettings' => [ 'shape' => 'ElasticsearchSettings', ], 'RedshiftSettings' => [ 'shape' => 'RedshiftSettings', ], ], ], 'ModifyEndpointResponse' => [ 'type' => 'structure', 'members' => [ 'Endpoint' => [ 'shape' => 'Endpoint', ], ], ], 'ModifyEventSubscriptionMessage' => [ 'type' => 'structure', 'required' => [ 'SubscriptionName', ], 'members' => [ 'SubscriptionName' => [ 'shape' => 'String', ], 'SnsTopicArn' => [ 'shape' => 'String', ], 'SourceType' => [ 'shape' => 'String', ], 'EventCategories' => [ 'shape' => 'EventCategoriesList', ], 'Enabled' => [ 'shape' => 'BooleanOptional', ], ], ], 'ModifyEventSubscriptionResponse' => [ 'type' => 'structure', 'members' => [ 'EventSubscription' => [ 'shape' => 'EventSubscription', ], ], ], 'ModifyReplicationInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationInstanceArn', ], 'members' => [ 'ReplicationInstanceArn' => [ 'shape' => 'String', ], 'AllocatedStorage' => [ 'shape' => 'IntegerOptional', ], 'ApplyImmediately' => [ 'shape' => 'Boolean', ], 'ReplicationInstanceClass' => [ 'shape' => 'String', ], 'VpcSecurityGroupIds' => [ 'shape' => 'VpcSecurityGroupIdList', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'String', ], 'MultiAZ' => [ 'shape' => 'BooleanOptional', ], 'EngineVersion' => [ 'shape' => 'String', ], 'AllowMajorVersionUpgrade' => [ 'shape' => 'Boolean', ], 'AutoMinorVersionUpgrade' => [ 'shape' => 'BooleanOptional', ], 'ReplicationInstanceIdentifier' => [ 'shape' => 'String', ], ], ], 'ModifyReplicationInstanceResponse' => [ 'type' => 'structure', 'members' => [ 'ReplicationInstance' => [ 'shape' => 'ReplicationInstance', ], ], ], 'ModifyReplicationSubnetGroupMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationSubnetGroupIdentifier', 'SubnetIds', ], 'members' => [ 'ReplicationSubnetGroupIdentifier' => [ 'shape' => 'String', ], 'ReplicationSubnetGroupDescription' => [ 'shape' => 'String', ], 'SubnetIds' => [ 'shape' => 'SubnetIdentifierList', ], ], ], 'ModifyReplicationSubnetGroupResponse' => [ 'type' => 'structure', 'members' => [ 'ReplicationSubnetGroup' => [ 'shape' => 'ReplicationSubnetGroup', ], ], ], 'ModifyReplicationTaskMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationTaskArn', ], 'members' => [ 'ReplicationTaskArn' => [ 'shape' => 'String', ], 'ReplicationTaskIdentifier' => [ 'shape' => 'String', ], 'MigrationType' => [ 'shape' => 'MigrationTypeValue', ], 'TableMappings' => [ 'shape' => 'String', ], 'ReplicationTaskSettings' => [ 'shape' => 'String', ], 'CdcStartTime' => [ 'shape' => 'TStamp', ], 'CdcStartPosition' => [ 'shape' => 'String', ], 'CdcStopPosition' => [ 'shape' => 'String', ], ], ], 'ModifyReplicationTaskResponse' => [ 'type' => 'structure', 'members' => [ 'ReplicationTask' => [ 'shape' => 'ReplicationTask', ], ], ], 'MongoDbSettings' => [ 'type' => 'structure', 'members' => [ 'Username' => [ 'shape' => 'String', ], 'Password' => [ 'shape' => 'SecretString', ], 'ServerName' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'DatabaseName' => [ 'shape' => 'String', ], 'AuthType' => [ 'shape' => 'AuthTypeValue', ], 'AuthMechanism' => [ 'shape' => 'AuthMechanismValue', ], 'NestingLevel' => [ 'shape' => 'NestingLevelValue', ], 'ExtractDocId' => [ 'shape' => 'String', ], 'DocsToInvestigate' => [ 'shape' => 'String', ], 'AuthSource' => [ 'shape' => 'String', ], 'KmsKeyId' => [ 'shape' => 'String', ], ], ], 'NestingLevelValue' => [ 'type' => 'string', 'enum' => [ 'none', 'one', ], ], 'OrderableReplicationInstance' => [ 'type' => 'structure', 'members' => [ 'EngineVersion' => [ 'shape' => 'String', ], 'ReplicationInstanceClass' => [ 'shape' => 'String', ], 'StorageType' => [ 'shape' => 'String', ], 'MinAllocatedStorage' => [ 'shape' => 'Integer', ], 'MaxAllocatedStorage' => [ 'shape' => 'Integer', ], 'DefaultAllocatedStorage' => [ 'shape' => 'Integer', ], 'IncludedAllocatedStorage' => [ 'shape' => 'Integer', ], 'AvailabilityZones' => [ 'shape' => 'AvailabilityZonesList', ], ], ], 'OrderableReplicationInstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OrderableReplicationInstance', ], ], 'ParquetVersionValue' => [ 'type' => 'string', 'enum' => [ 'parquet-1-0', 'parquet-2-0', ], ], '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', ], ], 'PendingMaintenanceActions' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourcePendingMaintenanceActions', ], ], 'RebootReplicationInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationInstanceArn', ], 'members' => [ 'ReplicationInstanceArn' => [ 'shape' => 'String', ], 'ForceFailover' => [ 'shape' => 'BooleanOptional', ], ], ], 'RebootReplicationInstanceResponse' => [ 'type' => 'structure', 'members' => [ 'ReplicationInstance' => [ 'shape' => 'ReplicationInstance', ], ], ], 'RedshiftSettings' => [ 'type' => 'structure', 'members' => [ 'AcceptAnyDate' => [ 'shape' => 'BooleanOptional', ], 'AfterConnectScript' => [ 'shape' => 'String', ], 'BucketFolder' => [ 'shape' => 'String', ], 'BucketName' => [ 'shape' => 'String', ], 'ConnectionTimeout' => [ 'shape' => 'IntegerOptional', ], 'DatabaseName' => [ 'shape' => 'String', ], 'DateFormat' => [ 'shape' => 'String', ], 'EmptyAsNull' => [ 'shape' => 'BooleanOptional', ], 'EncryptionMode' => [ 'shape' => 'EncryptionModeValue', ], 'FileTransferUploadStreams' => [ 'shape' => 'IntegerOptional', ], 'LoadTimeout' => [ 'shape' => 'IntegerOptional', ], 'MaxFileSize' => [ 'shape' => 'IntegerOptional', ], 'Password' => [ 'shape' => 'SecretString', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'RemoveQuotes' => [ 'shape' => 'BooleanOptional', ], 'ReplaceInvalidChars' => [ 'shape' => 'String', ], 'ReplaceChars' => [ 'shape' => 'String', ], 'ServerName' => [ 'shape' => 'String', ], 'ServiceAccessRoleArn' => [ 'shape' => 'String', ], 'ServerSideEncryptionKmsKeyId' => [ 'shape' => 'String', ], 'TimeFormat' => [ 'shape' => 'String', ], 'TrimBlanks' => [ 'shape' => 'BooleanOptional', ], 'TruncateColumns' => [ 'shape' => 'BooleanOptional', ], 'Username' => [ 'shape' => 'String', ], 'WriteBufferSize' => [ 'shape' => 'IntegerOptional', ], ], ], 'RefreshSchemasMessage' => [ 'type' => 'structure', 'required' => [ 'EndpointArn', 'ReplicationInstanceArn', ], 'members' => [ 'EndpointArn' => [ 'shape' => 'String', ], 'ReplicationInstanceArn' => [ 'shape' => 'String', ], ], ], 'RefreshSchemasResponse' => [ 'type' => 'structure', 'members' => [ 'RefreshSchemasStatus' => [ 'shape' => 'RefreshSchemasStatus', ], ], ], 'RefreshSchemasStatus' => [ 'type' => 'structure', 'members' => [ 'EndpointArn' => [ 'shape' => 'String', ], 'ReplicationInstanceArn' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'RefreshSchemasStatusTypeValue', ], 'LastRefreshDate' => [ 'shape' => 'TStamp', ], 'LastFailureMessage' => [ 'shape' => 'String', ], ], ], 'RefreshSchemasStatusTypeValue' => [ 'type' => 'string', 'enum' => [ 'successful', 'failed', 'refreshing', ], ], 'ReloadOptionValue' => [ 'type' => 'string', 'enum' => [ 'data-reload', 'validate-only', ], ], 'ReloadTablesMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationTaskArn', 'TablesToReload', ], 'members' => [ 'ReplicationTaskArn' => [ 'shape' => 'String', ], 'TablesToReload' => [ 'shape' => 'TableListToReload', ], 'ReloadOption' => [ 'shape' => 'ReloadOptionValue', ], ], ], 'ReloadTablesResponse' => [ 'type' => 'structure', 'members' => [ 'ReplicationTaskArn' => [ 'shape' => 'String', ], ], ], 'RemoveTagsFromResourceMessage' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagKeys', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'String', ], 'TagKeys' => [ 'shape' => 'KeyList', ], ], ], 'RemoveTagsFromResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'ReplicationEndpointTypeValue' => [ 'type' => 'string', 'enum' => [ 'source', 'target', ], ], 'ReplicationInstance' => [ 'type' => 'structure', 'members' => [ 'ReplicationInstanceIdentifier' => [ 'shape' => 'String', ], 'ReplicationInstanceClass' => [ 'shape' => 'String', ], 'ReplicationInstanceStatus' => [ 'shape' => 'String', ], 'AllocatedStorage' => [ 'shape' => 'Integer', ], 'InstanceCreateTime' => [ 'shape' => 'TStamp', ], 'VpcSecurityGroups' => [ 'shape' => 'VpcSecurityGroupMembershipList', ], 'AvailabilityZone' => [ 'shape' => 'String', ], 'ReplicationSubnetGroup' => [ 'shape' => 'ReplicationSubnetGroup', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'String', ], 'PendingModifiedValues' => [ 'shape' => 'ReplicationPendingModifiedValues', ], 'MultiAZ' => [ 'shape' => 'Boolean', ], 'EngineVersion' => [ 'shape' => 'String', ], 'AutoMinorVersionUpgrade' => [ 'shape' => 'Boolean', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'ReplicationInstanceArn' => [ 'shape' => 'String', ], 'ReplicationInstancePublicIpAddress' => [ 'shape' => 'String', 'deprecated' => true, ], 'ReplicationInstancePrivateIpAddress' => [ 'shape' => 'String', 'deprecated' => true, ], 'ReplicationInstancePublicIpAddresses' => [ 'shape' => 'ReplicationInstancePublicIpAddressList', ], 'ReplicationInstancePrivateIpAddresses' => [ 'shape' => 'ReplicationInstancePrivateIpAddressList', ], 'PubliclyAccessible' => [ 'shape' => 'Boolean', ], 'SecondaryAvailabilityZone' => [ 'shape' => 'String', ], 'FreeUntil' => [ 'shape' => 'TStamp', ], 'DnsNameServers' => [ 'shape' => 'String', ], ], ], 'ReplicationInstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReplicationInstance', ], ], 'ReplicationInstancePrivateIpAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ReplicationInstancePublicIpAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ReplicationInstanceTaskLog' => [ 'type' => 'structure', 'members' => [ 'ReplicationTaskName' => [ 'shape' => 'String', ], 'ReplicationTaskArn' => [ 'shape' => 'String', ], 'ReplicationInstanceTaskLogSize' => [ 'shape' => 'Long', ], ], ], 'ReplicationInstanceTaskLogsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReplicationInstanceTaskLog', ], ], 'ReplicationPendingModifiedValues' => [ 'type' => 'structure', 'members' => [ 'ReplicationInstanceClass' => [ 'shape' => 'String', ], 'AllocatedStorage' => [ 'shape' => 'IntegerOptional', ], 'MultiAZ' => [ 'shape' => 'BooleanOptional', ], 'EngineVersion' => [ 'shape' => 'String', ], ], ], 'ReplicationSubnetGroup' => [ 'type' => 'structure', 'members' => [ 'ReplicationSubnetGroupIdentifier' => [ 'shape' => 'String', ], 'ReplicationSubnetGroupDescription' => [ 'shape' => 'String', ], 'VpcId' => [ 'shape' => 'String', ], 'SubnetGroupStatus' => [ 'shape' => 'String', ], 'Subnets' => [ 'shape' => 'SubnetList', ], ], ], 'ReplicationSubnetGroupDoesNotCoverEnoughAZs' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'ReplicationSubnetGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReplicationSubnetGroup', ], ], 'ReplicationTask' => [ 'type' => 'structure', 'members' => [ 'ReplicationTaskIdentifier' => [ 'shape' => 'String', ], 'SourceEndpointArn' => [ 'shape' => 'String', ], 'TargetEndpointArn' => [ 'shape' => 'String', ], 'ReplicationInstanceArn' => [ 'shape' => 'String', ], 'MigrationType' => [ 'shape' => 'MigrationTypeValue', ], 'TableMappings' => [ 'shape' => 'String', ], 'ReplicationTaskSettings' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], 'LastFailureMessage' => [ 'shape' => 'String', ], 'StopReason' => [ 'shape' => 'String', ], 'ReplicationTaskCreationDate' => [ 'shape' => 'TStamp', ], 'ReplicationTaskStartDate' => [ 'shape' => 'TStamp', ], 'CdcStartPosition' => [ 'shape' => 'String', ], 'CdcStopPosition' => [ 'shape' => 'String', ], 'RecoveryCheckpoint' => [ 'shape' => 'String', ], 'ReplicationTaskArn' => [ 'shape' => 'String', ], 'ReplicationTaskStats' => [ 'shape' => 'ReplicationTaskStats', ], ], ], 'ReplicationTaskAssessmentResult' => [ 'type' => 'structure', 'members' => [ 'ReplicationTaskIdentifier' => [ 'shape' => 'String', ], 'ReplicationTaskArn' => [ 'shape' => 'String', ], 'ReplicationTaskLastAssessmentDate' => [ 'shape' => 'TStamp', ], 'AssessmentStatus' => [ 'shape' => 'String', ], 'AssessmentResultsFile' => [ 'shape' => 'String', ], 'AssessmentResults' => [ 'shape' => 'String', ], 'S3ObjectUrl' => [ 'shape' => 'String', ], ], ], 'ReplicationTaskAssessmentResultList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReplicationTaskAssessmentResult', ], ], 'ReplicationTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReplicationTask', ], ], 'ReplicationTaskStats' => [ 'type' => 'structure', 'members' => [ 'FullLoadProgressPercent' => [ 'shape' => 'Integer', ], 'ElapsedTimeMillis' => [ 'shape' => 'Long', ], 'TablesLoaded' => [ 'shape' => 'Integer', ], 'TablesLoading' => [ 'shape' => 'Integer', ], 'TablesQueued' => [ 'shape' => 'Integer', ], 'TablesErrored' => [ 'shape' => 'Integer', ], ], ], 'ResourceAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], 'resourceArn' => [ 'shape' => 'ResourceArn', ], ], 'exception' => true, ], 'ResourceArn' => [ 'type' => 'string', ], 'ResourceNotFoundFault' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'ResourcePendingMaintenanceActions' => [ 'type' => 'structure', 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'String', ], 'PendingMaintenanceActionDetails' => [ 'shape' => 'PendingMaintenanceActionDetails', ], ], ], 'ResourceQuotaExceededFault' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'S3Settings' => [ 'type' => 'structure', 'members' => [ 'ServiceAccessRoleArn' => [ 'shape' => 'String', ], 'ExternalTableDefinition' => [ 'shape' => 'String', ], 'CsvRowDelimiter' => [ 'shape' => 'String', ], 'CsvDelimiter' => [ 'shape' => 'String', ], 'BucketFolder' => [ 'shape' => 'String', ], 'BucketName' => [ 'shape' => 'String', ], 'CompressionType' => [ 'shape' => 'CompressionTypeValue', ], 'EncryptionMode' => [ 'shape' => 'EncryptionModeValue', ], 'ServerSideEncryptionKmsKeyId' => [ 'shape' => 'String', ], 'DataFormat' => [ 'shape' => 'DataFormatValue', ], 'EncodingType' => [ 'shape' => 'EncodingTypeValue', ], 'DictPageSizeLimit' => [ 'shape' => 'IntegerOptional', ], 'RowGroupLength' => [ 'shape' => 'IntegerOptional', ], 'DataPageSize' => [ 'shape' => 'IntegerOptional', ], 'ParquetVersion' => [ 'shape' => 'ParquetVersionValue', ], 'EnableStatistics' => [ 'shape' => 'BooleanOptional', ], 'CdcInsertsOnly' => [ 'shape' => 'BooleanOptional', ], ], ], 'SNSInvalidTopicFault' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'SNSNoAuthorizationFault' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'SchemaList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'SecretString' => [ 'type' => 'string', 'sensitive' => true, ], 'SourceIdsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'SourceType' => [ 'type' => 'string', 'enum' => [ 'replication-instance', ], ], 'StartReplicationTaskAssessmentMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationTaskArn', ], 'members' => [ 'ReplicationTaskArn' => [ 'shape' => 'String', ], ], ], 'StartReplicationTaskAssessmentResponse' => [ 'type' => 'structure', 'members' => [ 'ReplicationTask' => [ 'shape' => 'ReplicationTask', ], ], ], 'StartReplicationTaskMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationTaskArn', 'StartReplicationTaskType', ], 'members' => [ 'ReplicationTaskArn' => [ 'shape' => 'String', ], 'StartReplicationTaskType' => [ 'shape' => 'StartReplicationTaskTypeValue', ], 'CdcStartTime' => [ 'shape' => 'TStamp', ], 'CdcStartPosition' => [ 'shape' => 'String', ], 'CdcStopPosition' => [ 'shape' => 'String', ], ], ], 'StartReplicationTaskResponse' => [ 'type' => 'structure', 'members' => [ 'ReplicationTask' => [ 'shape' => 'ReplicationTask', ], ], ], 'StartReplicationTaskTypeValue' => [ 'type' => 'string', 'enum' => [ 'start-replication', 'resume-processing', 'reload-target', ], ], 'StopReplicationTaskMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationTaskArn', ], 'members' => [ 'ReplicationTaskArn' => [ 'shape' => 'String', ], ], ], 'StopReplicationTaskResponse' => [ 'type' => 'structure', 'members' => [ 'ReplicationTask' => [ 'shape' => 'ReplicationTask', ], ], ], 'StorageQuotaExceededFault' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'String' => [ 'type' => 'string', ], 'Subnet' => [ 'type' => 'structure', 'members' => [ 'SubnetIdentifier' => [ 'shape' => 'String', ], 'SubnetAvailabilityZone' => [ 'shape' => 'AvailabilityZone', ], 'SubnetStatus' => [ 'shape' => 'String', ], ], ], 'SubnetAlreadyInUse' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'SubnetIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'SubnetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Subnet', ], ], 'SupportedEndpointType' => [ 'type' => 'structure', 'members' => [ 'EngineName' => [ 'shape' => 'String', ], 'SupportsCDC' => [ 'shape' => 'Boolean', ], 'EndpointType' => [ 'shape' => 'ReplicationEndpointTypeValue', ], 'EngineDisplayName' => [ 'shape' => 'String', ], ], ], 'SupportedEndpointTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SupportedEndpointType', ], ], 'TStamp' => [ 'type' => 'timestamp', ], 'TableListToReload' => [ 'type' => 'list', 'member' => [ 'shape' => 'TableToReload', ], ], 'TableStatistics' => [ 'type' => 'structure', 'members' => [ 'SchemaName' => [ 'shape' => 'String', ], 'TableName' => [ 'shape' => 'String', ], 'Inserts' => [ 'shape' => 'Long', ], 'Deletes' => [ 'shape' => 'Long', ], 'Updates' => [ 'shape' => 'Long', ], 'Ddls' => [ 'shape' => 'Long', ], 'FullLoadRows' => [ 'shape' => 'Long', ], 'FullLoadCondtnlChkFailedRows' => [ 'shape' => 'Long', ], 'FullLoadErrorRows' => [ 'shape' => 'Long', ], 'LastUpdateTime' => [ 'shape' => 'TStamp', ], 'TableState' => [ 'shape' => 'String', ], 'ValidationPendingRecords' => [ 'shape' => 'Long', ], 'ValidationFailedRecords' => [ 'shape' => 'Long', ], 'ValidationSuspendedRecords' => [ 'shape' => 'Long', ], 'ValidationState' => [ 'shape' => 'String', ], 'ValidationStateDetails' => [ 'shape' => 'String', ], ], ], 'TableStatisticsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TableStatistics', ], ], 'TableToReload' => [ 'type' => 'structure', 'members' => [ 'SchemaName' => [ 'shape' => 'String', ], 'TableName' => [ 'shape' => 'String', ], ], ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', ], 'Value' => [ 'shape' => 'String', ], ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TestConnectionMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationInstanceArn', 'EndpointArn', ], 'members' => [ 'ReplicationInstanceArn' => [ 'shape' => 'String', ], 'EndpointArn' => [ 'shape' => 'String', ], ], ], 'TestConnectionResponse' => [ 'type' => 'structure', 'members' => [ 'Connection' => [ 'shape' => 'Connection', ], ], ], 'UpgradeDependencyFailureFault' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'VpcSecurityGroupIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'VpcSecurityGroupMembership' => [ 'type' => 'structure', 'members' => [ 'VpcSecurityGroupId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], ], ], 'VpcSecurityGroupMembershipList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcSecurityGroupMembership', ], ], ],]; diff --git a/lib/aws/Aws/data/dms/2016-01-01/paginators-1.json.php b/lib/aws/Aws/data/dms/2016-01-01/paginators-1.json.php new file mode 100644 index 0000000..892fba9 --- /dev/null +++ b/lib/aws/Aws/data/dms/2016-01-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/dms/2016-01-01/paginators-1.json +return [ 'pagination' => [ 'DescribeCertificates' => [ 'input_token' => 'Marker', 'output_token' => 'Marker', 'limit_key' => 'MaxRecords', ], 'DescribeConnections' => [ 'input_token' => 'Marker', 'output_token' => 'Marker', 'limit_key' => 'MaxRecords', ], 'DescribeEndpointTypes' => [ 'input_token' => 'Marker', 'output_token' => 'Marker', 'limit_key' => 'MaxRecords', ], 'DescribeEndpoints' => [ 'input_token' => 'Marker', 'output_token' => 'Marker', 'limit_key' => 'MaxRecords', ], 'DescribeEventSubscriptions' => [ 'input_token' => 'Marker', 'output_token' => 'Marker', 'limit_key' => 'MaxRecords', ], 'DescribeEvents' => [ 'input_token' => 'Marker', 'output_token' => 'Marker', 'limit_key' => 'MaxRecords', ], 'DescribeOrderableReplicationInstances' => [ 'input_token' => 'Marker', 'output_token' => 'Marker', 'limit_key' => 'MaxRecords', ], 'DescribePendingMaintenanceActions' => [ 'input_token' => 'Marker', 'output_token' => 'Marker', 'limit_key' => 'MaxRecords', ], 'DescribeReplicationInstanceTaskLogs' => [ 'input_token' => 'Marker', 'output_token' => 'Marker', 'limit_key' => 'MaxRecords', ], 'DescribeReplicationInstances' => [ 'input_token' => 'Marker', 'output_token' => 'Marker', 'limit_key' => 'MaxRecords', ], 'DescribeReplicationSubnetGroups' => [ 'input_token' => 'Marker', 'output_token' => 'Marker', 'limit_key' => 'MaxRecords', ], 'DescribeReplicationTaskAssessmentResults' => [ 'input_token' => 'Marker', 'output_token' => 'Marker', 'limit_key' => 'MaxRecords', ], 'DescribeReplicationTasks' => [ 'input_token' => 'Marker', 'output_token' => 'Marker', 'limit_key' => 'MaxRecords', ], 'DescribeSchemas' => [ 'input_token' => 'Marker', 'output_token' => 'Marker', 'limit_key' => 'MaxRecords', ], 'DescribeTableStatistics' => [ 'input_token' => 'Marker', 'output_token' => 'Marker', 'limit_key' => 'MaxRecords', ], ],]; diff --git a/lib/aws/Aws/data/dms/2016-01-01/smoke.json.php b/lib/aws/Aws/data/dms/2016-01-01/smoke.json.php new file mode 100644 index 0000000..e2359e4 --- /dev/null +++ b/lib/aws/Aws/data/dms/2016-01-01/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/dms/2016-01-01/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeEndpoints', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeTableStatistics', 'input' => [ 'ReplicationTaskArn' => 'arn:aws:acm:region:123456789012', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/dms/2016-01-01/waiters-2.json.php b/lib/aws/Aws/data/dms/2016-01-01/waiters-2.json.php new file mode 100644 index 0000000..a4c4810 --- /dev/null +++ b/lib/aws/Aws/data/dms/2016-01-01/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/dms/2016-01-01/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'TestConnectionSucceeds' => [ 'acceptors' => [ [ 'argument' => 'Connections[].Status', 'expected' => 'successful', 'matcher' => 'pathAll', 'state' => 'success', ], [ 'argument' => 'Connections[].Status', 'expected' => 'failed', 'matcher' => 'pathAny', 'state' => 'failure', ], ], 'delay' => 5, 'description' => 'Wait until testing connection succeeds.', 'maxAttempts' => 60, 'operation' => 'DescribeConnections', ], 'EndpointDeleted' => [ 'acceptors' => [ [ 'expected' => 'ResourceNotFoundFault', 'matcher' => 'error', 'state' => 'success', ], [ 'argument' => 'Endpoints[].Status', 'expected' => 'active', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'Endpoints[].Status', 'expected' => 'creating', 'matcher' => 'pathAny', 'state' => 'failure', ], ], 'delay' => 5, 'description' => 'Wait until testing endpoint is deleted.', 'maxAttempts' => 60, 'operation' => 'DescribeEndpoints', ], 'ReplicationInstanceAvailable' => [ 'acceptors' => [ [ 'argument' => 'ReplicationInstances[].ReplicationInstanceStatus', 'expected' => 'available', 'matcher' => 'pathAll', 'state' => 'success', ], [ 'argument' => 'ReplicationInstances[].ReplicationInstanceStatus', 'expected' => 'deleting', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationInstances[].ReplicationInstanceStatus', 'expected' => 'incompatible-credentials', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationInstances[].ReplicationInstanceStatus', 'expected' => 'incompatible-network', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationInstances[].ReplicationInstanceStatus', 'expected' => 'inaccessible-encryption-credentials', 'matcher' => 'pathAny', 'state' => 'failure', ], ], 'delay' => 60, 'description' => 'Wait until DMS replication instance is available.', 'maxAttempts' => 60, 'operation' => 'DescribeReplicationInstances', ], 'ReplicationInstanceDeleted' => [ 'acceptors' => [ [ 'argument' => 'ReplicationInstances[].ReplicationInstanceStatus', 'expected' => 'available', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'expected' => 'ResourceNotFoundFault', 'matcher' => 'error', 'state' => 'success', ], ], 'delay' => 15, 'description' => 'Wait until DMS replication instance is deleted.', 'maxAttempts' => 60, 'operation' => 'DescribeReplicationInstances', ], 'ReplicationTaskReady' => [ 'acceptors' => [ [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'ready', 'matcher' => 'pathAll', 'state' => 'success', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'starting', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'running', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'stopping', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'stopped', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'failed', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'modifying', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'testing', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'deleting', 'matcher' => 'pathAny', 'state' => 'failure', ], ], 'delay' => 15, 'description' => 'Wait until DMS replication task is ready.', 'maxAttempts' => 60, 'operation' => 'DescribeReplicationTasks', ], 'ReplicationTaskStopped' => [ 'acceptors' => [ [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'stopped', 'matcher' => 'pathAll', 'state' => 'success', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'ready', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'creating', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'starting', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'running', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'failed', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'modifying', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'testing', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'deleting', 'matcher' => 'pathAny', 'state' => 'failure', ], ], 'delay' => 15, 'description' => 'Wait until DMS replication task is stopped.', 'maxAttempts' => 60, 'operation' => 'DescribeReplicationTasks', ], 'ReplicationTaskRunning' => [ 'acceptors' => [ [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'running', 'matcher' => 'pathAll', 'state' => 'success', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'ready', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'creating', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'stopping', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'stopped', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'failed', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'modifying', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'testing', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'deleting', 'matcher' => 'pathAny', 'state' => 'failure', ], ], 'delay' => 15, 'description' => 'Wait until DMS replication task is running.', 'maxAttempts' => 60, 'operation' => 'DescribeReplicationTasks', ], 'ReplicationTaskDeleted' => [ 'acceptors' => [ [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'ready', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'creating', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'stopped', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'running', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'argument' => 'ReplicationTasks[].Status', 'expected' => 'failed', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'expected' => 'ResourceNotFoundFault', 'matcher' => 'error', 'state' => 'success', ], ], 'delay' => 15, 'description' => 'Wait until DMS replication task is deleted.', 'maxAttempts' => 60, 'operation' => 'DescribeReplicationTasks', ], ],]; diff --git a/lib/aws/Aws/data/docdb/2014-10-31/api-2.json.php b/lib/aws/Aws/data/docdb/2014-10-31/api-2.json.php new file mode 100644 index 0000000..de62730 --- /dev/null +++ b/lib/aws/Aws/data/docdb/2014-10-31/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/docdb/2014-10-31/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2014-10-31', 'endpointPrefix' => 'rds', 'protocol' => 'query', 'serviceAbbreviation' => 'Amazon DocDB', 'serviceFullName' => 'Amazon DocumentDB with MongoDB compatibility', 'serviceId' => 'DocDB', 'signatureVersion' => 'v4', 'signingName' => 'rds', 'uid' => 'docdb-2014-10-31', 'xmlNamespace' => 'http://rds.amazonaws.com/doc/2014-10-31/', ], 'operations' => [ 'AddTagsToResource' => [ 'name' => 'AddTagsToResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddTagsToResourceMessage', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], ], ], 'ApplyPendingMaintenanceAction' => [ 'name' => 'ApplyPendingMaintenanceAction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ApplyPendingMaintenanceActionMessage', ], 'output' => [ 'shape' => 'ApplyPendingMaintenanceActionResult', 'resultWrapper' => 'ApplyPendingMaintenanceActionResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], ], ], 'CopyDBClusterParameterGroup' => [ 'name' => 'CopyDBClusterParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyDBClusterParameterGroupMessage', ], 'output' => [ 'shape' => 'CopyDBClusterParameterGroupResult', 'resultWrapper' => 'CopyDBClusterParameterGroupResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'DBParameterGroupQuotaExceededFault', ], [ 'shape' => 'DBParameterGroupAlreadyExistsFault', ], ], ], 'CopyDBClusterSnapshot' => [ 'name' => 'CopyDBClusterSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyDBClusterSnapshotMessage', ], 'output' => [ 'shape' => 'CopyDBClusterSnapshotResult', 'resultWrapper' => 'CopyDBClusterSnapshotResult', ], 'errors' => [ [ 'shape' => 'DBClusterSnapshotAlreadyExistsFault', ], [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], ], ], 'CreateDBCluster' => [ 'name' => 'CreateDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBClusterMessage', ], 'output' => [ 'shape' => 'CreateDBClusterResult', 'resultWrapper' => 'CreateDBClusterResult', ], 'errors' => [ [ 'shape' => 'DBClusterAlreadyExistsFault', ], [ 'shape' => 'InsufficientStorageClusterCapacityFault', ], [ 'shape' => 'DBClusterQuotaExceededFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidDBSubnetGroupStateFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBClusterParameterGroupNotFoundFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], ], ], 'CreateDBClusterParameterGroup' => [ 'name' => 'CreateDBClusterParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBClusterParameterGroupMessage', ], 'output' => [ 'shape' => 'CreateDBClusterParameterGroupResult', 'resultWrapper' => 'CreateDBClusterParameterGroupResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupQuotaExceededFault', ], [ 'shape' => 'DBParameterGroupAlreadyExistsFault', ], ], ], 'CreateDBClusterSnapshot' => [ 'name' => 'CreateDBClusterSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBClusterSnapshotMessage', ], 'output' => [ 'shape' => 'CreateDBClusterSnapshotResult', 'resultWrapper' => 'CreateDBClusterSnapshotResult', ], 'errors' => [ [ 'shape' => 'DBClusterSnapshotAlreadyExistsFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], ], ], 'CreateDBInstance' => [ 'name' => 'CreateDBInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBInstanceMessage', ], 'output' => [ 'shape' => 'CreateDBInstanceResult', 'resultWrapper' => 'CreateDBInstanceResult', ], 'errors' => [ [ 'shape' => 'DBInstanceAlreadyExistsFault', ], [ 'shape' => 'InsufficientDBInstanceCapacityFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'DBSecurityGroupNotFoundFault', ], [ 'shape' => 'InstanceQuotaExceededFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'StorageTypeNotSupportedFault', ], [ 'shape' => 'AuthorizationNotFoundFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], ], ], 'CreateDBSubnetGroup' => [ 'name' => 'CreateDBSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBSubnetGroupMessage', ], 'output' => [ 'shape' => 'CreateDBSubnetGroupResult', 'resultWrapper' => 'CreateDBSubnetGroupResult', ], 'errors' => [ [ 'shape' => 'DBSubnetGroupAlreadyExistsFault', ], [ 'shape' => 'DBSubnetGroupQuotaExceededFault', ], [ 'shape' => 'DBSubnetQuotaExceededFault', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidSubnet', ], ], ], 'DeleteDBCluster' => [ 'name' => 'DeleteDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBClusterMessage', ], 'output' => [ 'shape' => 'DeleteDBClusterResult', 'resultWrapper' => 'DeleteDBClusterResult', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'DBClusterSnapshotAlreadyExistsFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], ], ], 'DeleteDBClusterParameterGroup' => [ 'name' => 'DeleteDBClusterParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBClusterParameterGroupMessage', ], 'errors' => [ [ 'shape' => 'InvalidDBParameterGroupStateFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'DeleteDBClusterSnapshot' => [ 'name' => 'DeleteDBClusterSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBClusterSnapshotMessage', ], 'output' => [ 'shape' => 'DeleteDBClusterSnapshotResult', 'resultWrapper' => 'DeleteDBClusterSnapshotResult', ], 'errors' => [ [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], ], ], 'DeleteDBInstance' => [ 'name' => 'DeleteDBInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBInstanceMessage', ], 'output' => [ 'shape' => 'DeleteDBInstanceResult', 'resultWrapper' => 'DeleteDBInstanceResult', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBSnapshotAlreadyExistsFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], ], ], 'DeleteDBSubnetGroup' => [ 'name' => 'DeleteDBSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBSubnetGroupMessage', ], 'errors' => [ [ 'shape' => 'InvalidDBSubnetGroupStateFault', ], [ 'shape' => 'InvalidDBSubnetStateFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], ], ], 'DescribeDBClusterParameterGroups' => [ 'name' => 'DescribeDBClusterParameterGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBClusterParameterGroupsMessage', ], 'output' => [ 'shape' => 'DBClusterParameterGroupsMessage', 'resultWrapper' => 'DescribeDBClusterParameterGroupsResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'DescribeDBClusterParameters' => [ 'name' => 'DescribeDBClusterParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBClusterParametersMessage', ], 'output' => [ 'shape' => 'DBClusterParameterGroupDetails', 'resultWrapper' => 'DescribeDBClusterParametersResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'DescribeDBClusterSnapshotAttributes' => [ 'name' => 'DescribeDBClusterSnapshotAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBClusterSnapshotAttributesMessage', ], 'output' => [ 'shape' => 'DescribeDBClusterSnapshotAttributesResult', 'resultWrapper' => 'DescribeDBClusterSnapshotAttributesResult', ], 'errors' => [ [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], ], ], 'DescribeDBClusterSnapshots' => [ 'name' => 'DescribeDBClusterSnapshots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBClusterSnapshotsMessage', ], 'output' => [ 'shape' => 'DBClusterSnapshotMessage', 'resultWrapper' => 'DescribeDBClusterSnapshotsResult', ], 'errors' => [ [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], ], ], 'DescribeDBClusters' => [ 'name' => 'DescribeDBClusters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBClustersMessage', ], 'output' => [ 'shape' => 'DBClusterMessage', 'resultWrapper' => 'DescribeDBClustersResult', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], ], ], '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', ], ], ], 'DescribeDBSubnetGroups' => [ 'name' => 'DescribeDBSubnetGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBSubnetGroupsMessage', ], 'output' => [ 'shape' => 'DBSubnetGroupMessage', 'resultWrapper' => 'DescribeDBSubnetGroupsResult', ], 'errors' => [ [ 'shape' => 'DBSubnetGroupNotFoundFault', ], ], ], 'DescribeEngineDefaultClusterParameters' => [ 'name' => 'DescribeEngineDefaultClusterParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEngineDefaultClusterParametersMessage', ], 'output' => [ 'shape' => 'DescribeEngineDefaultClusterParametersResult', 'resultWrapper' => 'DescribeEngineDefaultClusterParametersResult', ], ], 'DescribeEventCategories' => [ 'name' => 'DescribeEventCategories', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEventCategoriesMessage', ], 'output' => [ 'shape' => 'EventCategoriesMessage', 'resultWrapper' => 'DescribeEventCategoriesResult', ], ], 'DescribeEvents' => [ 'name' => 'DescribeEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEventsMessage', ], 'output' => [ 'shape' => 'EventsMessage', 'resultWrapper' => 'DescribeEventsResult', ], ], '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', ], ], ], 'FailoverDBCluster' => [ 'name' => 'FailoverDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'FailoverDBClusterMessage', ], 'output' => [ 'shape' => 'FailoverDBClusterResult', 'resultWrapper' => 'FailoverDBClusterResult', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceMessage', ], 'output' => [ 'shape' => 'TagListMessage', 'resultWrapper' => 'ListTagsForResourceResult', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], ], ], 'ModifyDBCluster' => [ 'name' => 'ModifyDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBClusterMessage', ], 'output' => [ 'shape' => 'ModifyDBClusterResult', 'resultWrapper' => 'ModifyDBClusterResult', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InvalidDBSubnetGroupStateFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'DBClusterParameterGroupNotFoundFault', ], [ 'shape' => 'InvalidDBSecurityGroupStateFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBClusterAlreadyExistsFault', ], ], ], 'ModifyDBClusterParameterGroup' => [ 'name' => 'ModifyDBClusterParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBClusterParameterGroupMessage', ], 'output' => [ 'shape' => 'DBClusterParameterGroupNameMessage', 'resultWrapper' => 'ModifyDBClusterParameterGroupResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'InvalidDBParameterGroupStateFault', ], ], ], 'ModifyDBClusterSnapshotAttribute' => [ 'name' => 'ModifyDBClusterSnapshotAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBClusterSnapshotAttributeMessage', ], 'output' => [ 'shape' => 'ModifyDBClusterSnapshotAttributeResult', 'resultWrapper' => 'ModifyDBClusterSnapshotAttributeResult', ], 'errors' => [ [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], [ 'shape' => 'SharedSnapshotQuotaExceededFault', ], ], ], 'ModifyDBInstance' => [ 'name' => 'ModifyDBInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBInstanceMessage', ], 'output' => [ 'shape' => 'ModifyDBInstanceResult', 'resultWrapper' => 'ModifyDBInstanceResult', ], 'errors' => [ [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'InvalidDBSecurityGroupStateFault', ], [ 'shape' => 'DBInstanceAlreadyExistsFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBSecurityGroupNotFoundFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'InsufficientDBInstanceCapacityFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'DBUpgradeDependencyFailureFault', ], [ 'shape' => 'StorageTypeNotSupportedFault', ], [ 'shape' => 'AuthorizationNotFoundFault', ], [ 'shape' => 'CertificateNotFoundFault', ], ], ], 'ModifyDBSubnetGroup' => [ 'name' => 'ModifyDBSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBSubnetGroupMessage', ], 'output' => [ 'shape' => 'ModifyDBSubnetGroupResult', 'resultWrapper' => 'ModifyDBSubnetGroupResult', ], 'errors' => [ [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'DBSubnetQuotaExceededFault', ], [ 'shape' => 'SubnetAlreadyInUse', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidSubnet', ], ], ], 'RebootDBInstance' => [ 'name' => 'RebootDBInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RebootDBInstanceMessage', ], 'output' => [ 'shape' => 'RebootDBInstanceResult', 'resultWrapper' => 'RebootDBInstanceResult', ], 'errors' => [ [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], ], ], 'RemoveTagsFromResource' => [ 'name' => 'RemoveTagsFromResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveTagsFromResourceMessage', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], ], ], 'ResetDBClusterParameterGroup' => [ 'name' => 'ResetDBClusterParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetDBClusterParameterGroupMessage', ], 'output' => [ 'shape' => 'DBClusterParameterGroupNameMessage', 'resultWrapper' => 'ResetDBClusterParameterGroupResult', ], 'errors' => [ [ 'shape' => 'InvalidDBParameterGroupStateFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'RestoreDBClusterFromSnapshot' => [ 'name' => 'RestoreDBClusterFromSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreDBClusterFromSnapshotMessage', ], 'output' => [ 'shape' => 'RestoreDBClusterFromSnapshotResult', 'resultWrapper' => 'RestoreDBClusterFromSnapshotResult', ], 'errors' => [ [ 'shape' => 'DBClusterAlreadyExistsFault', ], [ 'shape' => 'DBClusterQuotaExceededFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], [ 'shape' => 'InsufficientDBClusterCapacityFault', ], [ 'shape' => 'InsufficientStorageClusterCapacityFault', ], [ 'shape' => 'InvalidDBSnapshotStateFault', ], [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InvalidRestoreFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], ], ], 'RestoreDBClusterToPointInTime' => [ 'name' => 'RestoreDBClusterToPointInTime', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreDBClusterToPointInTimeMessage', ], 'output' => [ 'shape' => 'RestoreDBClusterToPointInTimeResult', 'resultWrapper' => 'RestoreDBClusterToPointInTimeResult', ], 'errors' => [ [ 'shape' => 'DBClusterAlreadyExistsFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'DBClusterQuotaExceededFault', ], [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'InsufficientDBClusterCapacityFault', ], [ 'shape' => 'InsufficientStorageClusterCapacityFault', ], [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidDBSnapshotStateFault', ], [ 'shape' => 'InvalidRestoreFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], ], ], ], 'shapes' => [ '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', ], ], ], 'ApplyPendingMaintenanceActionResult' => [ 'type' => 'structure', 'members' => [ 'ResourcePendingMaintenanceActions' => [ 'shape' => 'ResourcePendingMaintenanceActions', ], ], ], 'AttributeValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'AttributeValue', ], ], 'AuthorizationNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'AuthorizationNotFound', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'AvailabilityZone' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], ], 'wrapper' => true, ], 'AvailabilityZoneList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZone', 'locationName' => 'AvailabilityZone', ], ], 'AvailabilityZones' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'AvailabilityZone', ], ], 'Boolean' => [ 'type' => 'boolean', ], 'BooleanOptional' => [ 'type' => 'boolean', ], 'CertificateNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'CertificateNotFound', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'CloudwatchLogsExportConfiguration' => [ 'type' => 'structure', 'members' => [ 'EnableLogTypes' => [ 'shape' => 'LogTypeList', ], 'DisableLogTypes' => [ 'shape' => 'LogTypeList', ], ], ], 'CopyDBClusterParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'SourceDBClusterParameterGroupIdentifier', 'TargetDBClusterParameterGroupIdentifier', 'TargetDBClusterParameterGroupDescription', ], 'members' => [ 'SourceDBClusterParameterGroupIdentifier' => [ 'shape' => 'String', ], 'TargetDBClusterParameterGroupIdentifier' => [ 'shape' => 'String', ], 'TargetDBClusterParameterGroupDescription' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CopyDBClusterParameterGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterParameterGroup' => [ 'shape' => 'DBClusterParameterGroup', ], ], ], 'CopyDBClusterSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'SourceDBClusterSnapshotIdentifier', 'TargetDBClusterSnapshotIdentifier', ], 'members' => [ 'SourceDBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'TargetDBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'PreSignedUrl' => [ 'shape' => 'String', ], 'CopyTags' => [ 'shape' => 'BooleanOptional', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CopyDBClusterSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterSnapshot' => [ 'shape' => 'DBClusterSnapshot', ], ], ], 'CreateDBClusterMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', 'Engine', ], 'members' => [ 'AvailabilityZones' => [ 'shape' => 'AvailabilityZones', ], 'BackupRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'VpcSecurityGroupIds' => [ 'shape' => 'VpcSecurityGroupIdList', ], 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'Engine' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'MasterUsername' => [ 'shape' => 'String', ], 'MasterUserPassword' => [ 'shape' => 'String', ], 'PreferredBackupWindow' => [ 'shape' => 'String', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], 'StorageEncrypted' => [ 'shape' => 'BooleanOptional', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'EnableCloudwatchLogsExports' => [ 'shape' => 'LogTypeList', ], ], ], 'CreateDBClusterParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterParameterGroupName', 'DBParameterGroupFamily', 'Description', ], 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'DBParameterGroupFamily' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDBClusterParameterGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterParameterGroup' => [ 'shape' => 'DBClusterParameterGroup', ], ], ], 'CreateDBClusterResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], 'CreateDBClusterSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterSnapshotIdentifier', 'DBClusterIdentifier', ], 'members' => [ 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDBClusterSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterSnapshot' => [ 'shape' => 'DBClusterSnapshot', ], ], ], 'CreateDBInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', 'DBInstanceClass', 'Engine', 'DBClusterIdentifier', ], 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'DBInstanceClass' => [ 'shape' => 'String', ], 'Engine' => [ 'shape' => 'String', ], 'AvailabilityZone' => [ 'shape' => 'String', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'String', ], 'AutoMinorVersionUpgrade' => [ 'shape' => 'BooleanOptional', ], 'Tags' => [ 'shape' => 'TagList', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'PromotionTier' => [ 'shape' => 'IntegerOptional', ], ], ], 'CreateDBInstanceResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], 'CreateDBSubnetGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBSubnetGroupName', 'DBSubnetGroupDescription', 'SubnetIds', ], 'members' => [ 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'DBSubnetGroupDescription' => [ 'shape' => 'String', ], 'SubnetIds' => [ 'shape' => 'SubnetIdentifierList', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDBSubnetGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBSubnetGroup' => [ 'shape' => 'DBSubnetGroup', ], ], ], 'DBCluster' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZones' => [ 'shape' => 'AvailabilityZones', ], 'BackupRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'DBClusterParameterGroup' => [ 'shape' => 'String', ], 'DBSubnetGroup' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], 'PercentProgress' => [ 'shape' => 'String', ], 'EarliestRestorableTime' => [ 'shape' => 'TStamp', ], 'Endpoint' => [ 'shape' => 'String', ], 'ReaderEndpoint' => [ 'shape' => 'String', ], 'MultiAZ' => [ 'shape' => 'Boolean', ], 'Engine' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'LatestRestorableTime' => [ 'shape' => 'TStamp', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'MasterUsername' => [ 'shape' => 'String', ], 'PreferredBackupWindow' => [ 'shape' => 'String', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'String', ], 'DBClusterMembers' => [ 'shape' => 'DBClusterMemberList', ], 'VpcSecurityGroups' => [ 'shape' => 'VpcSecurityGroupMembershipList', ], 'HostedZoneId' => [ 'shape' => 'String', ], 'StorageEncrypted' => [ 'shape' => 'Boolean', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'DbClusterResourceId' => [ 'shape' => 'String', ], 'DBClusterArn' => [ 'shape' => 'String', ], 'AssociatedRoles' => [ 'shape' => 'DBClusterRoles', ], 'ClusterCreateTime' => [ 'shape' => 'TStamp', ], 'EnabledCloudwatchLogsExports' => [ 'shape' => 'LogTypeList', ], ], 'wrapper' => true, ], 'DBClusterAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterAlreadyExistsFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBCluster', 'locationName' => 'DBCluster', ], ], 'DBClusterMember' => [ 'type' => 'structure', 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'IsClusterWriter' => [ 'shape' => 'Boolean', ], 'DBClusterParameterGroupStatus' => [ 'shape' => 'String', ], 'PromotionTier' => [ 'shape' => 'IntegerOptional', ], ], 'wrapper' => true, ], 'DBClusterMemberList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBClusterMember', 'locationName' => 'DBClusterMember', ], ], 'DBClusterMessage' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'DBClusters' => [ 'shape' => 'DBClusterList', ], ], ], 'DBClusterNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterNotFoundFault', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterParameterGroup' => [ 'type' => 'structure', 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'DBParameterGroupFamily' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'DBClusterParameterGroupArn' => [ 'shape' => 'String', ], ], 'wrapper' => true, ], 'DBClusterParameterGroupDetails' => [ 'type' => 'structure', 'members' => [ 'Parameters' => [ 'shape' => 'ParametersList', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DBClusterParameterGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBClusterParameterGroup', 'locationName' => 'DBClusterParameterGroup', ], ], 'DBClusterParameterGroupNameMessage' => [ 'type' => 'structure', 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], ], ], 'DBClusterParameterGroupNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterParameterGroupNotFound', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterParameterGroupsMessage' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'DBClusterParameterGroups' => [ 'shape' => 'DBClusterParameterGroupList', ], ], ], 'DBClusterQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterQuotaExceededFault', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterRole' => [ 'type' => 'structure', 'members' => [ 'RoleArn' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], ], ], 'DBClusterRoles' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBClusterRole', 'locationName' => 'DBClusterRole', ], ], 'DBClusterSnapshot' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZones' => [ 'shape' => 'AvailabilityZones', ], 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'SnapshotCreateTime' => [ 'shape' => 'TStamp', ], 'Engine' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'Integer', ], 'VpcId' => [ 'shape' => 'String', ], 'ClusterCreateTime' => [ 'shape' => 'TStamp', ], 'MasterUsername' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'SnapshotType' => [ 'shape' => 'String', ], 'PercentProgress' => [ 'shape' => 'Integer', ], 'StorageEncrypted' => [ 'shape' => 'Boolean', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'DBClusterSnapshotArn' => [ 'shape' => 'String', ], 'SourceDBClusterSnapshotArn' => [ 'shape' => 'String', ], ], 'wrapper' => true, ], 'DBClusterSnapshotAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterSnapshotAlreadyExistsFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterSnapshotAttribute' => [ 'type' => 'structure', 'members' => [ 'AttributeName' => [ 'shape' => 'String', ], 'AttributeValues' => [ 'shape' => 'AttributeValueList', ], ], ], 'DBClusterSnapshotAttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBClusterSnapshotAttribute', 'locationName' => 'DBClusterSnapshotAttribute', ], ], 'DBClusterSnapshotAttributesResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'DBClusterSnapshotAttributes' => [ 'shape' => 'DBClusterSnapshotAttributeList', ], ], 'wrapper' => true, ], 'DBClusterSnapshotList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBClusterSnapshot', 'locationName' => 'DBClusterSnapshot', ], ], 'DBClusterSnapshotMessage' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'DBClusterSnapshots' => [ 'shape' => 'DBClusterSnapshotList', ], ], ], 'DBClusterSnapshotNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterSnapshotNotFoundFault', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'DBEngineVersion' => [ 'type' => 'structure', 'members' => [ 'Engine' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'DBParameterGroupFamily' => [ 'shape' => 'String', ], 'DBEngineDescription' => [ 'shape' => 'String', ], 'DBEngineVersionDescription' => [ 'shape' => 'String', ], 'ValidUpgradeTarget' => [ 'shape' => 'ValidUpgradeTargetList', ], 'ExportableLogTypes' => [ 'shape' => 'LogTypeList', ], 'SupportsLogExportsToCloudwatchLogs' => [ 'shape' => 'Boolean', ], ], ], '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', ], 'Endpoint' => [ 'shape' => 'Endpoint', ], 'InstanceCreateTime' => [ 'shape' => 'TStamp', ], 'PreferredBackupWindow' => [ 'shape' => 'String', ], 'BackupRetentionPeriod' => [ 'shape' => 'Integer', ], 'VpcSecurityGroups' => [ 'shape' => 'VpcSecurityGroupMembershipList', ], 'AvailabilityZone' => [ 'shape' => 'String', ], 'DBSubnetGroup' => [ 'shape' => 'DBSubnetGroup', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'String', ], 'PendingModifiedValues' => [ 'shape' => 'PendingModifiedValues', ], 'LatestRestorableTime' => [ 'shape' => 'TStamp', ], 'EngineVersion' => [ 'shape' => 'String', ], 'AutoMinorVersionUpgrade' => [ 'shape' => 'Boolean', ], 'PubliclyAccessible' => [ 'shape' => 'Boolean', ], 'StatusInfos' => [ 'shape' => 'DBInstanceStatusInfoList', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'StorageEncrypted' => [ 'shape' => 'Boolean', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'DbiResourceId' => [ 'shape' => 'String', ], 'PromotionTier' => [ 'shape' => 'IntegerOptional', ], 'DBInstanceArn' => [ 'shape' => 'String', ], 'EnabledCloudwatchLogsExports' => [ 'shape' => 'LogTypeList', ], ], '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', ], ], 'DBParameterGroupAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBParameterGroupAlreadyExists', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], '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, ], 'DBSecurityGroupNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBSecurityGroupNotFound', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'DBSnapshotAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBSnapshotAlreadyExists', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], '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', ], 'DBSubnetGroupArn' => [ 'shape' => 'String', ], ], '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', ], ], ], '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, ], 'DeleteDBClusterMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'SkipFinalSnapshot' => [ 'shape' => 'Boolean', ], 'FinalDBSnapshotIdentifier' => [ 'shape' => 'String', ], ], ], 'DeleteDBClusterParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterParameterGroupName', ], 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], ], ], 'DeleteDBClusterResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], 'DeleteDBClusterSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterSnapshotIdentifier', ], 'members' => [ 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], ], ], 'DeleteDBClusterSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterSnapshot' => [ 'shape' => 'DBClusterSnapshot', ], ], ], 'DeleteDBInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', ], 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], ], ], 'DeleteDBInstanceResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], 'DeleteDBSubnetGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBSubnetGroupName', ], 'members' => [ 'DBSubnetGroupName' => [ 'shape' => 'String', ], ], ], 'DescribeDBClusterParameterGroupsMessage' => [ 'type' => 'structure', 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeDBClusterParametersMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterParameterGroupName', ], 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'Source' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeDBClusterSnapshotAttributesMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterSnapshotIdentifier', ], 'members' => [ 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], ], ], 'DescribeDBClusterSnapshotAttributesResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterSnapshotAttributesResult' => [ 'shape' => 'DBClusterSnapshotAttributesResult', ], ], ], 'DescribeDBClusterSnapshotsMessage' => [ 'type' => 'structure', 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'SnapshotType' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], 'IncludeShared' => [ 'shape' => 'Boolean', ], 'IncludePublic' => [ 'shape' => 'Boolean', ], ], ], 'DescribeDBClustersMessage' => [ 'type' => 'structure', 'members' => [ 'DBClusterIdentifier' => [ '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', ], 'ListSupportedTimezones' => [ 'shape' => 'BooleanOptional', ], ], ], 'DescribeDBInstancesMessage' => [ 'type' => 'structure', 'members' => [ 'DBInstanceIdentifier' => [ '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', ], ], ], 'DescribeEngineDefaultClusterParametersMessage' => [ 'type' => 'structure', 'required' => [ 'DBParameterGroupFamily', ], 'members' => [ 'DBParameterGroupFamily' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeEngineDefaultClusterParametersResult' => [ 'type' => 'structure', 'members' => [ 'EngineDefaults' => [ 'shape' => 'EngineDefaults', ], ], ], 'DescribeEventCategoriesMessage' => [ 'type' => 'structure', 'members' => [ 'SourceType' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], ], ], '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', ], ], ], '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', ], ], ], 'Endpoint' => [ 'type' => 'structure', 'members' => [ 'Address' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'Integer', ], 'HostedZoneId' => [ 'shape' => 'String', ], ], ], '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', ], 'SourceArn' => [ 'shape' => 'String', ], ], ], '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', ], ], 'EventsMessage' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'Events' => [ 'shape' => 'EventList', ], ], ], 'FailoverDBClusterMessage' => [ 'type' => 'structure', 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'TargetDBInstanceIdentifier' => [ 'shape' => 'String', ], ], ], 'FailoverDBClusterResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], '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', ], ], 'InstanceQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InstanceQuotaExceeded', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InsufficientDBClusterCapacityFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InsufficientDBClusterCapacityFault', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'InsufficientDBInstanceCapacityFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InsufficientDBInstanceCapacity', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InsufficientStorageClusterCapacityFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InsufficientStorageClusterCapacity', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'Integer' => [ 'type' => 'integer', ], 'IntegerOptional' => [ 'type' => 'integer', ], 'InvalidDBClusterSnapshotStateFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidDBClusterSnapshotStateFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidDBClusterStateFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidDBClusterStateFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], '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, ], '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, ], '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', ], ], ], 'LogTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ModifyDBClusterMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'NewDBClusterIdentifier' => [ 'shape' => 'String', ], 'ApplyImmediately' => [ 'shape' => 'Boolean', ], 'BackupRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'VpcSecurityGroupIds' => [ 'shape' => 'VpcSecurityGroupIdList', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'MasterUserPassword' => [ 'shape' => 'String', ], 'PreferredBackupWindow' => [ 'shape' => 'String', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'String', ], 'CloudwatchLogsExportConfiguration' => [ 'shape' => 'CloudwatchLogsExportConfiguration', ], 'EngineVersion' => [ 'shape' => 'String', ], ], ], 'ModifyDBClusterParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterParameterGroupName', 'Parameters', ], 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'Parameters' => [ 'shape' => 'ParametersList', ], ], ], 'ModifyDBClusterResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], 'ModifyDBClusterSnapshotAttributeMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterSnapshotIdentifier', 'AttributeName', ], 'members' => [ 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'AttributeName' => [ 'shape' => 'String', ], 'ValuesToAdd' => [ 'shape' => 'AttributeValueList', ], 'ValuesToRemove' => [ 'shape' => 'AttributeValueList', ], ], ], 'ModifyDBClusterSnapshotAttributeResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterSnapshotAttributesResult' => [ 'shape' => 'DBClusterSnapshotAttributesResult', ], ], ], 'ModifyDBInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', ], 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'DBInstanceClass' => [ 'shape' => 'String', ], 'ApplyImmediately' => [ 'shape' => 'Boolean', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'String', ], 'AutoMinorVersionUpgrade' => [ 'shape' => 'BooleanOptional', ], 'NewDBInstanceIdentifier' => [ 'shape' => 'String', ], 'PromotionTier' => [ 'shape' => 'IntegerOptional', ], ], ], 'ModifyDBInstanceResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], 'ModifyDBSubnetGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBSubnetGroupName', 'SubnetIds', ], 'members' => [ 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'DBSubnetGroupDescription' => [ 'shape' => 'String', ], 'SubnetIds' => [ 'shape' => 'SubnetIdentifierList', ], ], ], 'ModifyDBSubnetGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBSubnetGroup' => [ 'shape' => 'DBSubnetGroup', ], ], ], 'OrderableDBInstanceOption' => [ 'type' => 'structure', 'members' => [ 'Engine' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'DBInstanceClass' => [ 'shape' => 'String', ], 'LicenseModel' => [ 'shape' => 'String', ], 'AvailabilityZones' => [ 'shape' => 'AvailabilityZoneList', ], 'Vpc' => [ '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', ], ], 'PendingCloudwatchLogsExports' => [ 'type' => 'structure', 'members' => [ 'LogTypesToEnable' => [ 'shape' => 'LogTypeList', ], 'LogTypesToDisable' => [ 'shape' => 'LogTypeList', ], ], ], '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', ], 'LicenseModel' => [ 'shape' => 'String', ], 'Iops' => [ 'shape' => 'IntegerOptional', ], 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'StorageType' => [ 'shape' => 'String', ], 'CACertificateIdentifier' => [ 'shape' => 'String', ], 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'PendingCloudwatchLogsExports' => [ 'shape' => 'PendingCloudwatchLogsExports', ], ], ], 'RebootDBInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', ], 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'ForceFailover' => [ 'shape' => 'BooleanOptional', ], ], ], 'RebootDBInstanceResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], 'RemoveTagsFromResourceMessage' => [ 'type' => 'structure', 'required' => [ 'ResourceName', 'TagKeys', ], 'members' => [ 'ResourceName' => [ 'shape' => 'String', ], 'TagKeys' => [ 'shape' => 'KeyList', ], ], ], 'ResetDBClusterParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterParameterGroupName', ], 'members' => [ 'DBClusterParameterGroupName' => [ '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, ], 'RestoreDBClusterFromSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', 'SnapshotIdentifier', 'Engine', ], 'members' => [ 'AvailabilityZones' => [ 'shape' => 'AvailabilityZones', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'SnapshotIdentifier' => [ 'shape' => 'String', ], 'Engine' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'VpcSecurityGroupIds' => [ 'shape' => 'VpcSecurityGroupIdList', ], 'Tags' => [ 'shape' => 'TagList', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'EnableCloudwatchLogsExports' => [ 'shape' => 'LogTypeList', ], ], ], 'RestoreDBClusterFromSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], 'RestoreDBClusterToPointInTimeMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', 'SourceDBClusterIdentifier', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'SourceDBClusterIdentifier' => [ 'shape' => 'String', ], 'RestoreToTime' => [ 'shape' => 'TStamp', ], 'UseLatestRestorableTime' => [ 'shape' => 'Boolean', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'VpcSecurityGroupIds' => [ 'shape' => 'VpcSecurityGroupIdList', ], 'Tags' => [ 'shape' => 'TagList', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'EnableCloudwatchLogsExports' => [ 'shape' => 'LogTypeList', ], ], ], 'RestoreDBClusterToPointInTimeResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], 'SharedSnapshotQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'SharedSnapshotQuotaExceeded', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'SnapshotQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'SnapshotQuotaExceeded', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'SourceType' => [ 'type' => 'string', 'enum' => [ 'db-instance', 'db-parameter-group', 'db-security-group', 'db-snapshot', 'db-cluster', 'db-cluster-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', ], ], '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', ], ], ], 'UpgradeTarget' => [ 'type' => 'structure', 'members' => [ 'Engine' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'AutoUpgrade' => [ 'shape' => 'Boolean', ], 'IsMajorVersionUpgrade' => [ 'shape' => 'Boolean', ], ], ], 'ValidUpgradeTargetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UpgradeTarget', 'locationName' => 'UpgradeTarget', ], ], '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', ], ], ],]; diff --git a/lib/aws/Aws/data/docdb/2014-10-31/paginators-1.json.php b/lib/aws/Aws/data/docdb/2014-10-31/paginators-1.json.php new file mode 100644 index 0000000..54b7f57 --- /dev/null +++ b/lib/aws/Aws/data/docdb/2014-10-31/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/docdb/2014-10-31/paginators-1.json +return [ 'pagination' => [ 'DescribeDBClusters' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'DBClusters', ], 'DescribeDBEngineVersions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'DBEngineVersions', ], 'DescribeDBInstances' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'DBInstances', ], 'DescribeDBSubnetGroups' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'DBSubnetGroups', ], 'DescribeEvents' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'Events', ], 'DescribeOrderableDBInstanceOptions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'OrderableDBInstanceOptions', ], 'ListTagsForResource' => [ 'result_key' => 'TagList', ], ],]; diff --git a/lib/aws/Aws/data/docdb/2014-10-31/smoke.json.php b/lib/aws/Aws/data/docdb/2014-10-31/smoke.json.php new file mode 100644 index 0000000..6d89693 --- /dev/null +++ b/lib/aws/Aws/data/docdb/2014-10-31/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/docdb/2014-10-31/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeDBEngineVersions', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeDBInstances', 'input' => [ 'DBInstanceIdentifier' => 'fake-id', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/docdb/2014-10-31/waiters-2.json.php b/lib/aws/Aws/data/docdb/2014-10-31/waiters-2.json.php new file mode 100644 index 0000000..c8d5349 --- /dev/null +++ b/lib/aws/Aws/data/docdb/2014-10-31/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/docdb/2014-10-31/waiters-2.json +return [ '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', ], ], ], '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/Aws/data/ds/2015-04-16/api-2.json.php b/lib/aws/Aws/data/ds/2015-04-16/api-2.json.php new file mode 100644 index 0000000..b5cd962 --- /dev/null +++ b/lib/aws/Aws/data/ds/2015-04-16/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ds/2015-04-16/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-04-16', 'endpointPrefix' => 'ds', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'Directory Service', 'serviceFullName' => 'AWS Directory Service', 'serviceId' => 'Directory Service', 'signatureVersion' => 'v4', 'targetPrefix' => 'DirectoryService_20150416', 'uid' => 'ds-2015-04-16', ], 'operations' => [ 'AcceptSharedDirectory' => [ 'name' => 'AcceptSharedDirectory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptSharedDirectoryRequest', ], 'output' => [ 'shape' => 'AcceptSharedDirectoryResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'DirectoryAlreadySharedException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'AddIpRoutes' => [ 'name' => 'AddIpRoutes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddIpRoutesRequest', ], 'output' => [ 'shape' => 'AddIpRoutesResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'IpRouteLimitExceededException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'AddTagsToResource' => [ 'name' => 'AddTagsToResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddTagsToResourceRequest', ], 'output' => [ 'shape' => 'AddTagsToResourceResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TagLimitExceededException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'CancelSchemaExtension' => [ 'name' => 'CancelSchemaExtension', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelSchemaExtensionRequest', ], 'output' => [ 'shape' => 'CancelSchemaExtensionResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'ConnectDirectory' => [ 'name' => 'ConnectDirectory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ConnectDirectoryRequest', ], 'output' => [ 'shape' => 'ConnectDirectoryResult', ], 'errors' => [ [ 'shape' => 'DirectoryLimitExceededException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'CreateAlias' => [ 'name' => 'CreateAlias', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAliasRequest', ], 'output' => [ 'shape' => 'CreateAliasResult', ], 'errors' => [ [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'CreateComputer' => [ 'name' => 'CreateComputer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateComputerRequest', ], 'output' => [ 'shape' => 'CreateComputerResult', ], 'errors' => [ [ 'shape' => 'AuthenticationFailedException', ], [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'CreateConditionalForwarder' => [ 'name' => 'CreateConditionalForwarder', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateConditionalForwarderRequest', ], 'output' => [ 'shape' => 'CreateConditionalForwarderResult', ], 'errors' => [ [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'CreateDirectory' => [ 'name' => 'CreateDirectory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDirectoryRequest', ], 'output' => [ 'shape' => 'CreateDirectoryResult', ], 'errors' => [ [ 'shape' => 'DirectoryLimitExceededException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'CreateLogSubscription' => [ 'name' => 'CreateLogSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLogSubscriptionRequest', ], 'output' => [ 'shape' => 'CreateLogSubscriptionResult', ], 'errors' => [ [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'InsufficientPermissionsException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'CreateMicrosoftAD' => [ 'name' => 'CreateMicrosoftAD', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateMicrosoftADRequest', ], 'output' => [ 'shape' => 'CreateMicrosoftADResult', ], 'errors' => [ [ 'shape' => 'DirectoryLimitExceededException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'CreateSnapshot' => [ 'name' => 'CreateSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSnapshotRequest', ], 'output' => [ 'shape' => 'CreateSnapshotResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'SnapshotLimitExceededException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'CreateTrust' => [ 'name' => 'CreateTrust', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTrustRequest', ], 'output' => [ 'shape' => 'CreateTrustResult', ], 'errors' => [ [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'DeleteConditionalForwarder' => [ 'name' => 'DeleteConditionalForwarder', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteConditionalForwarderRequest', ], 'output' => [ 'shape' => 'DeleteConditionalForwarderResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'DeleteDirectory' => [ 'name' => 'DeleteDirectory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDirectoryRequest', ], 'output' => [ 'shape' => 'DeleteDirectoryResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'DeleteLogSubscription' => [ 'name' => 'DeleteLogSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLogSubscriptionRequest', ], 'output' => [ 'shape' => 'DeleteLogSubscriptionResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'DeleteSnapshot' => [ 'name' => 'DeleteSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSnapshotRequest', ], 'output' => [ 'shape' => 'DeleteSnapshotResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'DeleteTrust' => [ 'name' => 'DeleteTrust', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTrustRequest', ], 'output' => [ 'shape' => 'DeleteTrustResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'DeregisterEventTopic' => [ 'name' => 'DeregisterEventTopic', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterEventTopicRequest', ], 'output' => [ 'shape' => 'DeregisterEventTopicResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'DescribeConditionalForwarders' => [ 'name' => 'DescribeConditionalForwarders', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeConditionalForwardersRequest', ], 'output' => [ 'shape' => 'DescribeConditionalForwardersResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'DescribeDirectories' => [ 'name' => 'DescribeDirectories', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDirectoriesRequest', ], 'output' => [ 'shape' => 'DescribeDirectoriesResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'DescribeDomainControllers' => [ 'name' => 'DescribeDomainControllers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDomainControllersRequest', ], 'output' => [ 'shape' => 'DescribeDomainControllersResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'DescribeEventTopics' => [ 'name' => 'DescribeEventTopics', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEventTopicsRequest', ], 'output' => [ 'shape' => 'DescribeEventTopicsResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'DescribeSharedDirectories' => [ 'name' => 'DescribeSharedDirectories', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSharedDirectoriesRequest', ], 'output' => [ 'shape' => 'DescribeSharedDirectoriesResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'DescribeSnapshots' => [ 'name' => 'DescribeSnapshots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSnapshotsRequest', ], 'output' => [ 'shape' => 'DescribeSnapshotsResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'DescribeTrusts' => [ 'name' => 'DescribeTrusts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTrustsRequest', ], 'output' => [ 'shape' => 'DescribeTrustsResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'DisableRadius' => [ 'name' => 'DisableRadius', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableRadiusRequest', ], 'output' => [ 'shape' => 'DisableRadiusResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'DisableSso' => [ 'name' => 'DisableSso', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableSsoRequest', ], 'output' => [ 'shape' => 'DisableSsoResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InsufficientPermissionsException', ], [ 'shape' => 'AuthenticationFailedException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'EnableRadius' => [ 'name' => 'EnableRadius', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableRadiusRequest', ], 'output' => [ 'shape' => 'EnableRadiusResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'EnableSso' => [ 'name' => 'EnableSso', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableSsoRequest', ], 'output' => [ 'shape' => 'EnableSsoResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InsufficientPermissionsException', ], [ 'shape' => 'AuthenticationFailedException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'GetDirectoryLimits' => [ 'name' => 'GetDirectoryLimits', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDirectoryLimitsRequest', ], 'output' => [ 'shape' => 'GetDirectoryLimitsResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'GetSnapshotLimits' => [ 'name' => 'GetSnapshotLimits', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSnapshotLimitsRequest', ], 'output' => [ 'shape' => 'GetSnapshotLimitsResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'ListIpRoutes' => [ 'name' => 'ListIpRoutes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListIpRoutesRequest', ], 'output' => [ 'shape' => 'ListIpRoutesResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'ListLogSubscriptions' => [ 'name' => 'ListLogSubscriptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListLogSubscriptionsRequest', ], 'output' => [ 'shape' => 'ListLogSubscriptionsResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'ListSchemaExtensions' => [ 'name' => 'ListSchemaExtensions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSchemaExtensionsRequest', ], 'output' => [ 'shape' => 'ListSchemaExtensionsResult', ], 'errors' => [ [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'RegisterEventTopic' => [ 'name' => 'RegisterEventTopic', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterEventTopicRequest', ], 'output' => [ 'shape' => 'RegisterEventTopicResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'RejectSharedDirectory' => [ 'name' => 'RejectSharedDirectory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectSharedDirectoryRequest', ], 'output' => [ 'shape' => 'RejectSharedDirectoryResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'DirectoryAlreadySharedException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'RemoveIpRoutes' => [ 'name' => 'RemoveIpRoutes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveIpRoutesRequest', ], 'output' => [ 'shape' => 'RemoveIpRoutesResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'RemoveTagsFromResource' => [ 'name' => 'RemoveTagsFromResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveTagsFromResourceRequest', ], 'output' => [ 'shape' => 'RemoveTagsFromResourceResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'ResetUserPassword' => [ 'name' => 'ResetUserPassword', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetUserPasswordRequest', ], 'output' => [ 'shape' => 'ResetUserPasswordResult', ], 'errors' => [ [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'UserDoesNotExistException', ], [ 'shape' => 'InvalidPasswordException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'RestoreFromSnapshot' => [ 'name' => 'RestoreFromSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreFromSnapshotRequest', ], 'output' => [ 'shape' => 'RestoreFromSnapshotResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'ShareDirectory' => [ 'name' => 'ShareDirectory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ShareDirectoryRequest', ], 'output' => [ 'shape' => 'ShareDirectoryResult', ], 'errors' => [ [ 'shape' => 'DirectoryAlreadySharedException', ], [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidTargetException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ShareLimitExceededException', ], [ 'shape' => 'OrganizationsException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'ServiceException', ], ], ], 'StartSchemaExtension' => [ 'name' => 'StartSchemaExtension', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartSchemaExtensionRequest', ], 'output' => [ 'shape' => 'StartSchemaExtensionResult', ], 'errors' => [ [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'SnapshotLimitExceededException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'UnshareDirectory' => [ 'name' => 'UnshareDirectory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnshareDirectoryRequest', ], 'output' => [ 'shape' => 'UnshareDirectoryResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidTargetException', ], [ 'shape' => 'DirectoryNotSharedException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'UpdateConditionalForwarder' => [ 'name' => 'UpdateConditionalForwarder', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateConditionalForwarderRequest', ], 'output' => [ 'shape' => 'UpdateConditionalForwarderResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'UpdateNumberOfDomainControllers' => [ 'name' => 'UpdateNumberOfDomainControllers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateNumberOfDomainControllersRequest', ], 'output' => [ 'shape' => 'UpdateNumberOfDomainControllersResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'DomainControllerLimitExceededException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'UpdateRadius' => [ 'name' => 'UpdateRadius', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRadiusRequest', ], 'output' => [ 'shape' => 'UpdateRadiusResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'UpdateTrust' => [ 'name' => 'UpdateTrust', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateTrustRequest', ], 'output' => [ 'shape' => 'UpdateTrustResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], ], ], 'VerifyTrust' => [ 'name' => 'VerifyTrust', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'VerifyTrustRequest', ], 'output' => [ 'shape' => 'VerifyTrustResult', ], 'errors' => [ [ 'shape' => 'EntityDoesNotExistException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], ], 'shapes' => [ 'AcceptSharedDirectoryRequest' => [ 'type' => 'structure', 'required' => [ 'SharedDirectoryId', ], 'members' => [ 'SharedDirectoryId' => [ 'shape' => 'DirectoryId', ], ], ], 'AcceptSharedDirectoryResult' => [ 'type' => 'structure', 'members' => [ 'SharedDirectory' => [ 'shape' => 'SharedDirectory', ], ], ], 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'RequestId' => [ 'shape' => 'RequestId', ], ], 'exception' => true, ], 'AccessUrl' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'AddIpRoutesRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', 'IpRoutes', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'IpRoutes' => [ 'shape' => 'IpRoutes', ], 'UpdateSecurityGroupForDirectoryControllers' => [ 'shape' => 'UpdateSecurityGroupForDirectoryControllers', ], ], ], 'AddIpRoutesResult' => [ 'type' => 'structure', 'members' => [], ], 'AddTagsToResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', 'Tags', ], 'members' => [ 'ResourceId' => [ 'shape' => 'ResourceId', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'AddTagsToResourceResult' => [ 'type' => 'structure', 'members' => [], ], 'AddedDateTime' => [ 'type' => 'timestamp', ], 'AliasName' => [ 'type' => 'string', 'max' => 62, 'min' => 1, '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', ], ], 'CancelSchemaExtensionRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', 'SchemaExtensionId', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'SchemaExtensionId' => [ 'shape' => 'SchemaExtensionId', ], ], ], 'CancelSchemaExtensionResult' => [ 'type' => 'structure', 'members' => [], ], 'CidrIp' => [ 'type' => 'string', '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])(\\/([1-9]|[1-2][0-9]|3[0-2]))$', ], 'CidrIps' => [ 'type' => 'list', 'member' => [ 'shape' => 'CidrIp', ], ], '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', 'max' => 15, 'min' => 1, ], 'ComputerPassword' => [ 'type' => 'string', 'max' => 64, 'min' => 8, 'pattern' => '[\\u0020-\\u00FF]+', 'sensitive' => true, ], 'ConditionalForwarder' => [ 'type' => 'structure', 'members' => [ 'RemoteDomainName' => [ 'shape' => 'RemoteDomainName', ], 'DnsIpAddrs' => [ 'shape' => 'DnsIpAddrs', ], 'ReplicationScope' => [ 'shape' => 'ReplicationScope', ], ], ], 'ConditionalForwarders' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConditionalForwarder', ], ], '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', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'ConnectDirectoryResult' => [ 'type' => 'structure', 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], ], ], 'ConnectPassword' => [ 'type' => 'string', 'max' => 128, 'min' => 1, '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', ], ], ], 'CreateConditionalForwarderRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', 'RemoteDomainName', 'DnsIpAddrs', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'RemoteDomainName' => [ 'shape' => 'RemoteDomainName', ], 'DnsIpAddrs' => [ 'shape' => 'DnsIpAddrs', ], ], ], 'CreateConditionalForwarderResult' => [ 'type' => 'structure', 'members' => [], ], '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', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'CreateDirectoryResult' => [ 'type' => 'structure', 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], ], ], 'CreateLogSubscriptionRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', 'LogGroupName', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'LogGroupName' => [ 'shape' => 'LogGroupName', ], ], ], 'CreateLogSubscriptionResult' => [ 'type' => 'structure', 'members' => [], ], 'CreateMicrosoftADRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'Password', 'VpcSettings', ], 'members' => [ 'Name' => [ 'shape' => 'DirectoryName', ], 'ShortName' => [ 'shape' => 'DirectoryShortName', ], 'Password' => [ 'shape' => 'Password', ], 'Description' => [ 'shape' => 'Description', ], 'VpcSettings' => [ 'shape' => 'DirectoryVpcSettings', ], 'Edition' => [ 'shape' => 'DirectoryEdition', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'CreateMicrosoftADResult' => [ 'type' => 'structure', 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], ], ], 'CreateSnapshotBeforeSchemaExtension' => [ 'type' => 'boolean', ], 'CreateSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'Name' => [ 'shape' => 'SnapshotName', ], ], ], 'CreateSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'SnapshotId', ], ], ], 'CreateTrustRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', 'RemoteDomainName', 'TrustPassword', 'TrustDirection', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'RemoteDomainName' => [ 'shape' => 'RemoteDomainName', ], 'TrustPassword' => [ 'shape' => 'TrustPassword', ], 'TrustDirection' => [ 'shape' => 'TrustDirection', ], 'TrustType' => [ 'shape' => 'TrustType', ], 'ConditionalForwarderIpAddrs' => [ 'shape' => 'DnsIpAddrs', ], 'SelectiveAuth' => [ 'shape' => 'SelectiveAuth', ], ], ], 'CreateTrustResult' => [ 'type' => 'structure', 'members' => [ 'TrustId' => [ 'shape' => 'TrustId', ], ], ], 'CreatedDateTime' => [ 'type' => 'timestamp', ], 'CustomerId' => [ 'type' => 'string', 'pattern' => '^(\\d{12})$', ], 'CustomerUserName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '^(?!.*\\\\|.*"|.*\\/|.*\\[|.*\\]|.*:|.*;|.*\\||.*=|.*,|.*\\+|.*\\*|.*\\?|.*<|.*>|.*@).*$', ], 'DeleteAssociatedConditionalForwarder' => [ 'type' => 'boolean', ], 'DeleteConditionalForwarderRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', 'RemoteDomainName', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'RemoteDomainName' => [ 'shape' => 'RemoteDomainName', ], ], ], 'DeleteConditionalForwarderResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteDirectoryRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], ], ], 'DeleteDirectoryResult' => [ 'type' => 'structure', 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], ], ], 'DeleteLogSubscriptionRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], ], ], 'DeleteLogSubscriptionResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'SnapshotId', ], 'members' => [ 'SnapshotId' => [ 'shape' => 'SnapshotId', ], ], ], 'DeleteSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'SnapshotId', ], ], ], 'DeleteTrustRequest' => [ 'type' => 'structure', 'required' => [ 'TrustId', ], 'members' => [ 'TrustId' => [ 'shape' => 'TrustId', ], 'DeleteAssociatedConditionalForwarder' => [ 'shape' => 'DeleteAssociatedConditionalForwarder', ], ], ], 'DeleteTrustResult' => [ 'type' => 'structure', 'members' => [ 'TrustId' => [ 'shape' => 'TrustId', ], ], ], 'DeregisterEventTopicRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', 'TopicName', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'TopicName' => [ 'shape' => 'TopicName', ], ], ], 'DeregisterEventTopicResult' => [ 'type' => 'structure', 'members' => [], ], 'DescribeConditionalForwardersRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'RemoteDomainNames' => [ 'shape' => 'RemoteDomainNames', ], ], ], 'DescribeConditionalForwardersResult' => [ 'type' => 'structure', 'members' => [ 'ConditionalForwarders' => [ 'shape' => 'ConditionalForwarders', ], ], ], 'DescribeDirectoriesRequest' => [ 'type' => 'structure', 'members' => [ 'DirectoryIds' => [ 'shape' => 'DirectoryIds', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Limit' => [ 'shape' => 'Limit', ], ], ], 'DescribeDirectoriesResult' => [ 'type' => 'structure', 'members' => [ 'DirectoryDescriptions' => [ 'shape' => 'DirectoryDescriptions', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeDomainControllersRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'DomainControllerIds' => [ 'shape' => 'DomainControllerIds', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Limit' => [ 'shape' => 'Limit', ], ], ], 'DescribeDomainControllersResult' => [ 'type' => 'structure', 'members' => [ 'DomainControllers' => [ 'shape' => 'DomainControllers', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeEventTopicsRequest' => [ 'type' => 'structure', 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'TopicNames' => [ 'shape' => 'TopicNames', ], ], ], 'DescribeEventTopicsResult' => [ 'type' => 'structure', 'members' => [ 'EventTopics' => [ 'shape' => 'EventTopics', ], ], ], 'DescribeSharedDirectoriesRequest' => [ 'type' => 'structure', 'required' => [ 'OwnerDirectoryId', ], 'members' => [ 'OwnerDirectoryId' => [ 'shape' => 'DirectoryId', ], 'SharedDirectoryIds' => [ 'shape' => 'DirectoryIds', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Limit' => [ 'shape' => 'Limit', ], ], ], 'DescribeSharedDirectoriesResult' => [ 'type' => 'structure', 'members' => [ 'SharedDirectories' => [ 'shape' => 'SharedDirectories', ], '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', ], ], ], 'DescribeTrustsRequest' => [ 'type' => 'structure', 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'TrustIds' => [ 'shape' => 'TrustIds', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Limit' => [ 'shape' => 'Limit', ], ], ], 'DescribeTrustsResult' => [ 'type' => 'structure', 'members' => [ 'Trusts' => [ 'shape' => 'Trusts', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'Description' => [ 'type' => 'string', 'max' => 128, 'min' => 0, 'pattern' => '^([a-zA-Z0-9_])[\\\\a-zA-Z0-9_@#%*+=:?./!\\s-]*$', ], 'DesiredNumberOfDomainControllers' => [ 'type' => 'integer', 'min' => 2, ], 'DirectoryAlreadySharedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'RequestId' => [ 'shape' => 'RequestId', ], ], 'exception' => true, ], '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', ], 'Edition' => [ 'shape' => 'DirectoryEdition', ], 'Alias' => [ 'shape' => 'AliasName', ], 'AccessUrl' => [ 'shape' => 'AccessUrl', ], 'Description' => [ 'shape' => 'Description', ], 'DnsIpAddrs' => [ 'shape' => 'DnsIpAddrs', ], 'Stage' => [ 'shape' => 'DirectoryStage', ], 'ShareStatus' => [ 'shape' => 'ShareStatus', ], 'ShareMethod' => [ 'shape' => 'ShareMethod', ], 'ShareNotes' => [ 'shape' => 'Notes', ], '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', ], 'DesiredNumberOfDomainControllers' => [ 'shape' => 'DesiredNumberOfDomainControllers', ], 'OwnerDirectoryDescription' => [ 'shape' => 'OwnerDirectoryDescription', ], ], ], 'DirectoryDescriptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'DirectoryDescription', ], ], 'DirectoryEdition' => [ 'type' => 'string', 'enum' => [ 'Enterprise', 'Standard', ], ], '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', ], 'CloudOnlyMicrosoftADLimit' => [ 'shape' => 'Limit', ], 'CloudOnlyMicrosoftADCurrentCount' => [ 'shape' => 'Limit', ], 'CloudOnlyMicrosoftADLimitReached' => [ 'shape' => 'CloudOnlyDirectoriesLimitReached', ], 'ConnectedDirectoriesLimit' => [ 'shape' => 'Limit', ], 'ConnectedDirectoriesCurrentCount' => [ 'shape' => 'Limit', ], 'ConnectedDirectoriesLimitReached' => [ 'shape' => 'ConnectedDirectoriesLimitReached', ], ], ], 'DirectoryName' => [ 'type' => 'string', 'pattern' => '^([a-zA-Z0-9]+[\\\\.-])+([a-zA-Z0-9])+$', ], 'DirectoryNotSharedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'RequestId' => [ 'shape' => 'RequestId', ], ], 'exception' => true, ], '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', 'MicrosoftAD', 'SharedMicrosoftAD', ], ], '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', ], ], 'DomainController' => [ 'type' => 'structure', 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'DomainControllerId' => [ 'shape' => 'DomainControllerId', ], 'DnsIpAddr' => [ 'shape' => 'IpAddr', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZone', ], 'Status' => [ 'shape' => 'DomainControllerStatus', ], 'StatusReason' => [ 'shape' => 'DomainControllerStatusReason', ], 'LaunchTime' => [ 'shape' => 'LaunchTime', ], 'StatusLastUpdatedDateTime' => [ 'shape' => 'LastUpdatedDateTime', ], ], ], 'DomainControllerId' => [ 'type' => 'string', 'pattern' => '^dc-[0-9a-f]{10}$', ], 'DomainControllerIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'DomainControllerId', ], ], 'DomainControllerLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'RequestId' => [ 'shape' => 'RequestId', ], ], 'exception' => true, ], 'DomainControllerStatus' => [ 'type' => 'string', 'enum' => [ 'Creating', 'Active', 'Impaired', 'Restoring', 'Deleting', 'Deleted', 'Failed', ], ], 'DomainControllerStatusReason' => [ 'type' => 'string', ], 'DomainControllers' => [ 'type' => 'list', 'member' => [ 'shape' => 'DomainController', ], ], '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' => [], ], 'EndDateTime' => [ 'type' => 'timestamp', ], 'EntityAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'RequestId' => [ 'shape' => 'RequestId', ], ], 'exception' => true, ], 'EntityDoesNotExistException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'RequestId' => [ 'shape' => 'RequestId', ], ], 'exception' => true, ], 'EventTopic' => [ 'type' => 'structure', 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'TopicName' => [ 'shape' => 'TopicName', ], 'TopicArn' => [ 'shape' => 'TopicArn', ], 'CreatedDateTime' => [ 'shape' => 'CreatedDateTime', ], 'Status' => [ 'shape' => 'TopicStatus', ], ], ], 'EventTopics' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventTopic', ], ], '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, ], 'InvalidPasswordException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'RequestId' => [ 'shape' => 'RequestId', ], ], 'exception' => true, ], 'InvalidTargetException' => [ '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', ], ], 'IpRoute' => [ 'type' => 'structure', 'members' => [ 'CidrIp' => [ 'shape' => 'CidrIp', ], 'Description' => [ 'shape' => 'Description', ], ], ], 'IpRouteInfo' => [ 'type' => 'structure', 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'CidrIp' => [ 'shape' => 'CidrIp', ], 'IpRouteStatusMsg' => [ 'shape' => 'IpRouteStatusMsg', ], 'AddedDateTime' => [ 'shape' => 'AddedDateTime', ], 'IpRouteStatusReason' => [ 'shape' => 'IpRouteStatusReason', ], 'Description' => [ 'shape' => 'Description', ], ], ], 'IpRouteLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'RequestId' => [ 'shape' => 'RequestId', ], ], 'exception' => true, ], 'IpRouteStatusMsg' => [ 'type' => 'string', 'enum' => [ 'Adding', 'Added', 'Removing', 'Removed', 'AddFailed', 'RemoveFailed', ], ], 'IpRouteStatusReason' => [ 'type' => 'string', ], 'IpRoutes' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpRoute', ], ], 'IpRoutesInfo' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpRouteInfo', ], ], 'LastUpdatedDateTime' => [ 'type' => 'timestamp', ], 'LaunchTime' => [ 'type' => 'timestamp', ], 'LdifContent' => [ 'type' => 'string', 'max' => 500000, 'min' => 1, ], 'Limit' => [ 'type' => 'integer', 'min' => 0, ], 'ListIpRoutesRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Limit' => [ 'shape' => 'Limit', ], ], ], 'ListIpRoutesResult' => [ 'type' => 'structure', 'members' => [ 'IpRoutesInfo' => [ 'shape' => 'IpRoutesInfo', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListLogSubscriptionsRequest' => [ 'type' => 'structure', 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Limit' => [ 'shape' => 'Limit', ], ], ], 'ListLogSubscriptionsResult' => [ 'type' => 'structure', 'members' => [ 'LogSubscriptions' => [ 'shape' => 'LogSubscriptions', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListSchemaExtensionsRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Limit' => [ 'shape' => 'Limit', ], ], ], 'ListSchemaExtensionsResult' => [ 'type' => 'structure', 'members' => [ 'SchemaExtensionsInfo' => [ 'shape' => 'SchemaExtensionsInfo', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', ], 'members' => [ 'ResourceId' => [ 'shape' => 'ResourceId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Limit' => [ 'shape' => 'Limit', ], ], ], 'ListTagsForResourceResult' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'Tags', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'LogGroupName' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => '[-._/#A-Za-z0-9]+', ], 'LogSubscription' => [ 'type' => 'structure', 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'LogGroupName' => [ 'shape' => 'LogGroupName', ], 'SubscriptionCreatedDateTime' => [ 'shape' => 'SubscriptionCreatedDateTime', ], ], ], 'LogSubscriptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'LogSubscription', ], ], 'ManualSnapshotsLimitReached' => [ 'type' => 'boolean', ], 'NextToken' => [ 'type' => 'string', ], 'Notes' => [ 'type' => 'string', 'max' => 1024, 'sensitive' => true, ], 'OrganizationalUnitDN' => [ 'type' => 'string', 'max' => 2000, 'min' => 1, ], 'OrganizationsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'RequestId' => [ 'shape' => 'RequestId', ], ], 'exception' => true, ], 'OwnerDirectoryDescription' => [ 'type' => 'structure', 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'AccountId' => [ 'shape' => 'CustomerId', ], 'DnsIpAddrs' => [ 'shape' => 'DnsIpAddrs', ], 'VpcSettings' => [ 'shape' => 'DirectoryVpcSettingsDescription', ], 'RadiusSettings' => [ 'shape' => 'RadiusSettings', ], 'RadiusStatus' => [ 'shape' => 'RadiusStatus', ], ], ], 'Password' => [ 'type' => 'string', 'pattern' => '(?=^.{8,64}$)((?=.*\\d)(?=.*[A-Z])(?=.*[a-z])|(?=.*\\d)(?=.*[^A-Za-z0-9\\s])(?=.*[a-z])|(?=.*[^A-Za-z0-9\\s])(?=.*[A-Z])(?=.*[a-z])|(?=.*\\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9\\s]))^.*', 'sensitive' => true, ], 'PortNumber' => [ 'type' => 'integer', 'max' => 65535, 'min' => 1025, ], 'RadiusAuthenticationProtocol' => [ 'type' => 'string', 'enum' => [ 'PAP', 'CHAP', 'MS-CHAPv1', 'MS-CHAPv2', ], ], 'RadiusDisplayLabel' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'RadiusRetries' => [ 'type' => 'integer', 'max' => 10, 'min' => 0, ], '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', 'max' => 512, 'min' => 8, 'sensitive' => true, ], 'RadiusStatus' => [ 'type' => 'string', 'enum' => [ 'Creating', 'Completed', 'Failed', ], ], 'RadiusTimeout' => [ 'type' => 'integer', 'max' => 20, 'min' => 1, ], 'RegisterEventTopicRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', 'TopicName', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'TopicName' => [ 'shape' => 'TopicName', ], ], ], 'RegisterEventTopicResult' => [ 'type' => 'structure', 'members' => [], ], 'RejectSharedDirectoryRequest' => [ 'type' => 'structure', 'required' => [ 'SharedDirectoryId', ], 'members' => [ 'SharedDirectoryId' => [ 'shape' => 'DirectoryId', ], ], ], 'RejectSharedDirectoryResult' => [ 'type' => 'structure', 'members' => [ 'SharedDirectoryId' => [ 'shape' => 'DirectoryId', ], ], ], 'RemoteDomainName' => [ 'type' => 'string', 'pattern' => '^([a-zA-Z0-9]+[\\\\.-])+([a-zA-Z0-9])+[.]?$', ], 'RemoteDomainNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'RemoteDomainName', ], ], 'RemoveIpRoutesRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', 'CidrIps', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'CidrIps' => [ 'shape' => 'CidrIps', ], ], ], 'RemoveIpRoutesResult' => [ 'type' => 'structure', 'members' => [], ], 'RemoveTagsFromResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', 'TagKeys', ], 'members' => [ 'ResourceId' => [ 'shape' => 'ResourceId', ], 'TagKeys' => [ 'shape' => 'TagKeys', ], ], ], 'RemoveTagsFromResourceResult' => [ 'type' => 'structure', 'members' => [], ], 'ReplicationScope' => [ 'type' => 'string', 'enum' => [ 'Domain', ], ], '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})$', ], 'ResetUserPasswordRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', 'UserName', 'NewPassword', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'UserName' => [ 'shape' => 'CustomerUserName', ], 'NewPassword' => [ 'shape' => 'UserPassword', ], ], ], 'ResetUserPasswordResult' => [ 'type' => 'structure', 'members' => [], ], 'ResourceId' => [ 'type' => 'string', 'pattern' => '^[d]-[0-9a-f]{10}$', ], 'RestoreFromSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'SnapshotId', ], 'members' => [ 'SnapshotId' => [ 'shape' => 'SnapshotId', ], ], ], 'RestoreFromSnapshotResult' => [ 'type' => 'structure', 'members' => [], ], 'SID' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[&\\w+-.@]+', ], 'SchemaExtensionId' => [ 'type' => 'string', 'pattern' => '^e-[0-9a-f]{10}$', ], 'SchemaExtensionInfo' => [ 'type' => 'structure', 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'SchemaExtensionId' => [ 'shape' => 'SchemaExtensionId', ], 'Description' => [ 'shape' => 'Description', ], 'SchemaExtensionStatus' => [ 'shape' => 'SchemaExtensionStatus', ], 'SchemaExtensionStatusReason' => [ 'shape' => 'SchemaExtensionStatusReason', ], 'StartDateTime' => [ 'shape' => 'StartDateTime', ], 'EndDateTime' => [ 'shape' => 'EndDateTime', ], ], ], 'SchemaExtensionStatus' => [ 'type' => 'string', 'enum' => [ 'Initializing', 'CreatingSnapshot', 'UpdatingSchema', 'Replicating', 'CancelInProgress', 'RollbackInProgress', 'Cancelled', 'Failed', 'Completed', ], ], 'SchemaExtensionStatusReason' => [ 'type' => 'string', ], 'SchemaExtensionsInfo' => [ 'type' => 'list', 'member' => [ 'shape' => 'SchemaExtensionInfo', ], ], 'SecurityGroupId' => [ 'type' => 'string', 'pattern' => '^(sg-[0-9a-f]{8}|sg-[0-9a-f]{17})$', ], 'SelectiveAuth' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'Server' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'Servers' => [ 'type' => 'list', 'member' => [ 'shape' => 'Server', ], ], 'ServiceException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'RequestId' => [ 'shape' => 'RequestId', ], ], 'exception' => true, 'fault' => true, ], 'ShareDirectoryRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', 'ShareTarget', 'ShareMethod', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'ShareNotes' => [ 'shape' => 'Notes', ], 'ShareTarget' => [ 'shape' => 'ShareTarget', ], 'ShareMethod' => [ 'shape' => 'ShareMethod', ], ], ], 'ShareDirectoryResult' => [ 'type' => 'structure', 'members' => [ 'SharedDirectoryId' => [ 'shape' => 'DirectoryId', ], ], ], 'ShareLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'RequestId' => [ 'shape' => 'RequestId', ], ], 'exception' => true, ], 'ShareMethod' => [ 'type' => 'string', 'enum' => [ 'ORGANIZATIONS', 'HANDSHAKE', ], ], 'ShareStatus' => [ 'type' => 'string', 'enum' => [ 'Shared', 'PendingAcceptance', 'Rejected', 'Rejecting', 'RejectFailed', 'Sharing', 'ShareFailed', 'Deleted', 'Deleting', ], ], 'ShareTarget' => [ 'type' => 'structure', 'required' => [ 'Id', 'Type', ], 'members' => [ 'Id' => [ 'shape' => 'TargetId', ], 'Type' => [ 'shape' => 'TargetType', ], ], ], 'SharedDirectories' => [ 'type' => 'list', 'member' => [ 'shape' => 'SharedDirectory', ], ], 'SharedDirectory' => [ 'type' => 'structure', 'members' => [ 'OwnerAccountId' => [ 'shape' => 'CustomerId', ], 'OwnerDirectoryId' => [ 'shape' => 'DirectoryId', ], 'ShareMethod' => [ 'shape' => 'ShareMethod', ], 'SharedAccountId' => [ 'shape' => 'CustomerId', ], 'SharedDirectoryId' => [ 'shape' => 'DirectoryId', ], 'ShareStatus' => [ 'shape' => 'ShareStatus', ], 'ShareNotes' => [ 'shape' => 'Notes', ], 'CreatedDateTime' => [ 'shape' => 'CreatedDateTime', ], 'LastUpdatedDateTime' => [ 'shape' => 'LastUpdatedDateTime', ], ], ], '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', 'max' => 128, 'min' => 0, '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', ], 'StartDateTime' => [ 'type' => 'timestamp', ], 'StartSchemaExtensionRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', 'CreateSnapshotBeforeSchemaExtension', 'LdifContent', 'Description', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'CreateSnapshotBeforeSchemaExtension' => [ 'shape' => 'CreateSnapshotBeforeSchemaExtension', ], 'LdifContent' => [ 'shape' => 'LdifContent', ], 'Description' => [ 'shape' => 'Description', ], ], ], 'StartSchemaExtensionResult' => [ 'type' => 'structure', 'members' => [ 'SchemaExtensionId' => [ 'shape' => 'SchemaExtensionId', ], ], ], 'StartTime' => [ 'type' => 'timestamp', ], 'StateLastUpdatedDateTime' => [ 'type' => 'timestamp', ], 'SubnetId' => [ 'type' => 'string', 'pattern' => '^(subnet-[0-9a-f]{8}|subnet-[0-9a-f]{17})$', ], 'SubnetIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', ], ], 'SubscriptionCreatedDateTime' => [ 'type' => 'timestamp', ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeys' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'RequestId' => [ 'shape' => 'RequestId', ], ], 'exception' => true, ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'Tags' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TargetId' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'TargetType' => [ 'type' => 'string', 'enum' => [ 'ACCOUNT', ], ], 'TopicArn' => [ 'type' => 'string', ], 'TopicName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[a-zA-Z0-9_-]+', ], 'TopicNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'TopicName', ], ], 'TopicStatus' => [ 'type' => 'string', 'enum' => [ 'Registered', 'Topic not found', 'Failed', 'Deleted', ], ], 'Trust' => [ 'type' => 'structure', 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'TrustId' => [ 'shape' => 'TrustId', ], 'RemoteDomainName' => [ 'shape' => 'RemoteDomainName', ], 'TrustType' => [ 'shape' => 'TrustType', ], 'TrustDirection' => [ 'shape' => 'TrustDirection', ], 'TrustState' => [ 'shape' => 'TrustState', ], 'CreatedDateTime' => [ 'shape' => 'CreatedDateTime', ], 'LastUpdatedDateTime' => [ 'shape' => 'LastUpdatedDateTime', ], 'StateLastUpdatedDateTime' => [ 'shape' => 'StateLastUpdatedDateTime', ], 'TrustStateReason' => [ 'shape' => 'TrustStateReason', ], 'SelectiveAuth' => [ 'shape' => 'SelectiveAuth', ], ], ], 'TrustDirection' => [ 'type' => 'string', 'enum' => [ 'One-Way: Outgoing', 'One-Way: Incoming', 'Two-Way', ], ], 'TrustId' => [ 'type' => 'string', 'pattern' => '^t-[0-9a-f]{10}$', ], 'TrustIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrustId', ], ], 'TrustPassword' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '(.|\\s)*\\S(.|\\s)*', 'sensitive' => true, ], 'TrustState' => [ 'type' => 'string', 'enum' => [ 'Creating', 'Created', 'Verifying', 'VerifyFailed', 'Verified', 'Updating', 'UpdateFailed', 'Updated', 'Deleting', 'Deleted', 'Failed', ], ], 'TrustStateReason' => [ 'type' => 'string', ], 'TrustType' => [ 'type' => 'string', 'enum' => [ 'Forest', 'External', ], ], 'Trusts' => [ 'type' => 'list', 'member' => [ 'shape' => 'Trust', ], ], 'UnshareDirectoryRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', 'UnshareTarget', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'UnshareTarget' => [ 'shape' => 'UnshareTarget', ], ], ], 'UnshareDirectoryResult' => [ 'type' => 'structure', 'members' => [ 'SharedDirectoryId' => [ 'shape' => 'DirectoryId', ], ], ], 'UnshareTarget' => [ 'type' => 'structure', 'required' => [ 'Id', 'Type', ], 'members' => [ 'Id' => [ 'shape' => 'TargetId', ], 'Type' => [ 'shape' => 'TargetType', ], ], ], 'UnsupportedOperationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'RequestId' => [ 'shape' => 'RequestId', ], ], 'exception' => true, ], 'UpdateConditionalForwarderRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', 'RemoteDomainName', 'DnsIpAddrs', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'RemoteDomainName' => [ 'shape' => 'RemoteDomainName', ], 'DnsIpAddrs' => [ 'shape' => 'DnsIpAddrs', ], ], ], 'UpdateConditionalForwarderResult' => [ 'type' => 'structure', 'members' => [], ], 'UpdateNumberOfDomainControllersRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', 'DesiredNumber', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'DesiredNumber' => [ 'shape' => 'DesiredNumberOfDomainControllers', ], ], ], 'UpdateNumberOfDomainControllersResult' => [ 'type' => 'structure', 'members' => [], ], 'UpdateRadiusRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', 'RadiusSettings', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'RadiusSettings' => [ 'shape' => 'RadiusSettings', ], ], ], 'UpdateRadiusResult' => [ 'type' => 'structure', 'members' => [], ], 'UpdateSecurityGroupForDirectoryControllers' => [ 'type' => 'boolean', ], 'UpdateTrustRequest' => [ 'type' => 'structure', 'required' => [ 'TrustId', ], 'members' => [ 'TrustId' => [ 'shape' => 'TrustId', ], 'SelectiveAuth' => [ 'shape' => 'SelectiveAuth', ], ], ], 'UpdateTrustResult' => [ 'type' => 'structure', 'members' => [ 'RequestId' => [ 'shape' => 'RequestId', ], 'TrustId' => [ 'shape' => 'TrustId', ], ], ], 'UseSameUsername' => [ 'type' => 'boolean', ], 'UserDoesNotExistException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'RequestId' => [ 'shape' => 'RequestId', ], ], 'exception' => true, ], 'UserName' => [ 'type' => 'string', 'min' => 1, 'pattern' => '[a-zA-Z0-9._-]+', ], 'UserPassword' => [ 'type' => 'string', 'max' => 127, 'min' => 1, 'sensitive' => true, ], 'VerifyTrustRequest' => [ 'type' => 'structure', 'required' => [ 'TrustId', ], 'members' => [ 'TrustId' => [ 'shape' => 'TrustId', ], ], ], 'VerifyTrustResult' => [ 'type' => 'structure', 'members' => [ 'TrustId' => [ 'shape' => 'TrustId', ], ], ], 'VpcId' => [ 'type' => 'string', 'pattern' => '^(vpc-[0-9a-f]{8}|vpc-[0-9a-f]{17})$', ], ],]; diff --git a/lib/aws/Aws/data/ds/2015-04-16/paginators-1.json.php b/lib/aws/Aws/data/ds/2015-04-16/paginators-1.json.php new file mode 100644 index 0000000..f7729bf --- /dev/null +++ b/lib/aws/Aws/data/ds/2015-04-16/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ds/2015-04-16/paginators-1.json +return [ 'pagination' => [ 'DescribeDomainControllers' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'Limit', ], ],]; diff --git a/lib/aws/Aws/data/ds/2015-04-16/smoke.json.php b/lib/aws/Aws/data/ds/2015-04-16/smoke.json.php new file mode 100644 index 0000000..91c72f4 --- /dev/null +++ b/lib/aws/Aws/data/ds/2015-04-16/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ds/2015-04-16/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeDirectories', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'CreateDirectory', 'input' => [ 'Name' => '', 'Password' => '', 'Size' => '', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/dynamodb/2011-12-05/api-2.json.php b/lib/aws/Aws/data/dynamodb/2011-12-05/api-2.json.php new file mode 100644 index 0000000..06f0d66 --- /dev/null +++ b/lib/aws/Aws/data/dynamodb/2011-12-05/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/dynamodb/2011-12-05/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2011-12-05', 'endpointPrefix' => 'dynamodb', 'jsonVersion' => '1.0', 'protocol' => 'json', 'serviceAbbreviation' => 'DynamoDB', 'serviceFullName' => 'Amazon DynamoDB', 'serviceId' => 'DynamoDB', 'signatureVersion' => 'v4', 'targetPrefix' => 'DynamoDB_20111205', 'uid' => 'dynamodb-2011-12-05', ], 'operations' => [ 'BatchGetItem' => [ 'name' => 'BatchGetItem', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetItemInput', ], 'output' => [ 'shape' => 'BatchGetItemOutput', ], 'errors' => [ [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], 'BatchWriteItem' => [ 'name' => 'BatchWriteItem', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchWriteItemInput', ], 'output' => [ 'shape' => 'BatchWriteItemOutput', ], 'errors' => [ [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerError', ], ], ], 'CreateTable' => [ 'name' => 'CreateTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTableInput', ], 'output' => [ 'shape' => 'CreateTableOutput', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DeleteItem' => [ 'name' => 'DeleteItem', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteItemInput', ], 'output' => [ 'shape' => 'DeleteItemOutput', ], 'errors' => [ [ 'shape' => 'ConditionalCheckFailedException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DeleteTable' => [ 'name' => 'DeleteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTableInput', ], 'output' => [ 'shape' => 'DeleteTableOutput', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeTable' => [ 'name' => 'DescribeTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTableInput', ], 'output' => [ 'shape' => 'DescribeTableOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], 'GetItem' => [ 'name' => 'GetItem', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetItemInput', ], 'output' => [ 'shape' => 'GetItemOutput', ], 'errors' => [ [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], 'ListTables' => [ 'name' => 'ListTables', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTablesInput', ], 'output' => [ 'shape' => 'ListTablesOutput', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'PutItem' => [ 'name' => 'PutItem', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutItemInput', ], 'output' => [ 'shape' => 'PutItemOutput', ], 'errors' => [ [ 'shape' => 'ConditionalCheckFailedException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerError', ], ], ], 'Query' => [ 'name' => 'Query', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'QueryInput', ], 'output' => [ 'shape' => 'QueryOutput', ], 'errors' => [ [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], 'Scan' => [ 'name' => 'Scan', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ScanInput', ], 'output' => [ 'shape' => 'ScanOutput', ], 'errors' => [ [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], 'UpdateItem' => [ 'name' => 'UpdateItem', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateItemInput', ], 'output' => [ 'shape' => 'UpdateItemOutput', ], 'errors' => [ [ 'shape' => 'ConditionalCheckFailedException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerError', ], ], ], 'UpdateTable' => [ 'name' => 'UpdateTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateTableInput', ], 'output' => [ 'shape' => 'UpdateTableOutput', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerError', ], ], ], ], 'shapes' => [ 'AttributeAction' => [ 'type' => 'string', 'enum' => [ 'ADD', 'PUT', 'DELETE', ], ], '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', ], ], ], 'AttributeValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeValue', ], ], 'AttributeValueUpdate' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'AttributeValue', ], 'Action' => [ 'shape' => 'AttributeAction', ], ], ], 'BatchGetItemInput' => [ 'type' => 'structure', 'required' => [ 'RequestItems', ], 'members' => [ 'RequestItems' => [ 'shape' => 'BatchGetRequestMap', ], ], ], 'BatchGetItemOutput' => [ 'type' => 'structure', 'members' => [ 'Responses' => [ 'shape' => 'BatchGetResponseMap', ], 'UnprocessedKeys' => [ 'shape' => 'BatchGetRequestMap', ], ], ], 'BatchGetRequestMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TableName', ], 'value' => [ 'shape' => 'KeysAndAttributes', ], 'max' => 100, 'min' => 1, ], 'BatchGetResponseMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TableName', ], 'value' => [ 'shape' => 'BatchResponse', ], ], 'BatchResponse' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'ItemList', ], 'ConsumedCapacityUnits' => [ 'shape' => 'ConsumedCapacityUnits', ], ], ], 'BatchWriteItemInput' => [ 'type' => 'structure', 'required' => [ 'RequestItems', ], 'members' => [ 'RequestItems' => [ 'shape' => 'BatchWriteItemRequestMap', ], ], ], 'BatchWriteItemOutput' => [ 'type' => 'structure', 'members' => [ 'Responses' => [ 'shape' => 'BatchWriteResponseMap', ], 'UnprocessedItems' => [ 'shape' => 'BatchWriteItemRequestMap', ], ], ], 'BatchWriteItemRequestMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TableName', ], 'value' => [ 'shape' => 'WriteRequests', ], 'max' => 25, 'min' => 1, ], 'BatchWriteResponse' => [ 'type' => 'structure', 'members' => [ 'ConsumedCapacityUnits' => [ 'shape' => 'ConsumedCapacityUnits', ], ], ], 'BatchWriteResponseMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TableName', ], 'value' => [ 'shape' => 'BatchWriteResponse', ], ], 'BinaryAttributeValue' => [ 'type' => 'blob', ], 'BinarySetAttributeValue' => [ 'type' => 'list', 'member' => [ 'shape' => 'BinaryAttributeValue', ], ], 'BooleanObject' => [ 'type' => 'boolean', ], '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', ], ], ], 'ConditionalCheckFailedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ConsistentRead' => [ 'type' => 'boolean', ], 'ConsumedCapacityUnits' => [ 'type' => 'double', ], 'CreateTableInput' => [ 'type' => 'structure', 'required' => [ 'TableName', 'KeySchema', 'ProvisionedThroughput', ], 'members' => [ 'TableName' => [ 'shape' => 'TableName', ], 'KeySchema' => [ 'shape' => 'KeySchema', ], 'ProvisionedThroughput' => [ 'shape' => 'ProvisionedThroughput', ], ], ], 'CreateTableOutput' => [ 'type' => 'structure', 'members' => [ 'TableDescription' => [ 'shape' => 'TableDescription', ], ], ], 'Date' => [ 'type' => 'timestamp', ], 'DeleteItemInput' => [ 'type' => 'structure', 'required' => [ 'TableName', 'Key', ], 'members' => [ 'TableName' => [ 'shape' => 'TableName', ], 'Key' => [ 'shape' => 'Key', ], 'Expected' => [ 'shape' => 'ExpectedAttributeMap', ], 'ReturnValues' => [ 'shape' => 'ReturnValue', ], ], ], 'DeleteItemOutput' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'AttributeMap', ], 'ConsumedCapacityUnits' => [ 'shape' => 'ConsumedCapacityUnits', ], ], ], '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', ], ], ], 'FilterConditionMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'Condition', ], ], 'GetItemInput' => [ 'type' => 'structure', 'required' => [ 'TableName', 'Key', ], 'members' => [ 'TableName' => [ 'shape' => 'TableName', ], 'Key' => [ 'shape' => 'Key', ], 'AttributesToGet' => [ 'shape' => 'AttributeNameList', ], 'ConsistentRead' => [ 'shape' => 'ConsistentRead', ], ], ], 'GetItemOutput' => [ 'type' => 'structure', 'members' => [ 'Item' => [ 'shape' => 'AttributeMap', ], 'ConsumedCapacityUnits' => [ 'shape' => 'ConsumedCapacityUnits', ], ], ], 'Integer' => [ 'type' => 'integer', ], 'InternalServerError' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, 'fault' => true, ], 'ItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeMap', ], ], 'Key' => [ 'type' => 'structure', 'required' => [ 'HashKeyElement', ], 'members' => [ 'HashKeyElement' => [ 'shape' => 'AttributeValue', ], 'RangeKeyElement' => [ 'shape' => 'AttributeValue', ], ], ], 'KeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Key', ], 'max' => 100, 'min' => 1, ], 'KeySchema' => [ 'type' => 'structure', 'required' => [ 'HashKeyElement', ], 'members' => [ 'HashKeyElement' => [ 'shape' => 'KeySchemaElement', ], 'RangeKeyElement' => [ 'shape' => 'KeySchemaElement', ], ], ], 'KeySchemaAttributeName' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'KeySchemaElement' => [ 'type' => 'structure', 'required' => [ 'AttributeName', 'AttributeType', ], 'members' => [ 'AttributeName' => [ 'shape' => 'KeySchemaAttributeName', ], 'AttributeType' => [ 'shape' => 'ScalarAttributeType', ], ], ], 'KeysAndAttributes' => [ 'type' => 'structure', 'required' => [ 'Keys', ], 'members' => [ 'Keys' => [ 'shape' => 'KeyList', ], 'AttributesToGet' => [ 'shape' => 'AttributeNameList', ], 'ConsistentRead' => [ 'shape' => 'ConsistentRead', ], ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ListTablesInput' => [ 'type' => 'structure', 'members' => [ 'ExclusiveStartTableName' => [ 'shape' => 'TableName', ], 'Limit' => [ 'shape' => 'ListTablesInputLimit', ], ], ], 'ListTablesInputLimit' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'ListTablesOutput' => [ 'type' => 'structure', 'members' => [ 'TableNames' => [ 'shape' => 'TableNameList', ], 'LastEvaluatedTableName' => [ 'shape' => 'TableName', ], ], ], 'Long' => [ 'type' => 'long', ], 'NumberAttributeValue' => [ 'type' => 'string', ], 'NumberSetAttributeValue' => [ 'type' => 'list', 'member' => [ 'shape' => 'NumberAttributeValue', ], ], 'PositiveIntegerObject' => [ 'type' => 'integer', 'min' => 1, ], 'PositiveLongObject' => [ 'type' => 'long', 'min' => 1, ], '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', ], ], ], 'PutItemInputAttributeMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttributeName', ], 'value' => [ 'shape' => 'AttributeValue', ], ], 'PutItemOutput' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'AttributeMap', ], 'ConsumedCapacityUnits' => [ 'shape' => 'ConsumedCapacityUnits', ], ], ], 'PutRequest' => [ 'type' => 'structure', 'required' => [ 'Item', ], 'members' => [ 'Item' => [ 'shape' => 'PutItemInputAttributeMap', ], ], ], 'QueryInput' => [ 'type' => 'structure', 'required' => [ 'TableName', 'HashKeyValue', ], 'members' => [ 'TableName' => [ 'shape' => 'TableName', ], 'AttributesToGet' => [ 'shape' => 'AttributeNameList', ], 'Limit' => [ 'shape' => 'PositiveIntegerObject', ], 'ConsistentRead' => [ 'shape' => 'ConsistentRead', ], 'Count' => [ 'shape' => 'BooleanObject', ], 'HashKeyValue' => [ 'shape' => 'AttributeValue', ], 'RangeKeyCondition' => [ 'shape' => 'Condition', ], 'ScanIndexForward' => [ 'shape' => 'BooleanObject', ], 'ExclusiveStartKey' => [ 'shape' => 'Key', ], ], ], 'QueryOutput' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'ItemList', ], 'Count' => [ 'shape' => 'Integer', ], 'LastEvaluatedKey' => [ 'shape' => 'Key', ], 'ConsumedCapacityUnits' => [ 'shape' => 'ConsumedCapacityUnits', ], ], ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], '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', ], 'AttributesToGet' => [ 'shape' => 'AttributeNameList', ], 'Limit' => [ 'shape' => 'PositiveIntegerObject', ], 'Count' => [ 'shape' => 'BooleanObject', ], 'ScanFilter' => [ 'shape' => 'FilterConditionMap', ], 'ExclusiveStartKey' => [ 'shape' => 'Key', ], ], ], 'ScanOutput' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'ItemList', ], 'Count' => [ 'shape' => 'Integer', ], 'ScannedCount' => [ 'shape' => 'Integer', ], 'LastEvaluatedKey' => [ 'shape' => 'Key', ], 'ConsumedCapacityUnits' => [ 'shape' => 'ConsumedCapacityUnits', ], ], ], 'String' => [ 'type' => 'string', ], 'StringAttributeValue' => [ 'type' => 'string', ], 'StringSetAttributeValue' => [ 'type' => 'list', 'member' => [ 'shape' => 'StringAttributeValue', ], ], 'TableDescription' => [ 'type' => 'structure', 'members' => [ 'TableName' => [ 'shape' => 'TableName', ], 'KeySchema' => [ 'shape' => 'KeySchema', ], 'TableStatus' => [ 'shape' => 'TableStatus', ], 'CreationDateTime' => [ 'shape' => 'Date', ], 'ProvisionedThroughput' => [ 'shape' => 'ProvisionedThroughputDescription', ], 'TableSizeBytes' => [ 'shape' => 'Long', ], 'ItemCount' => [ 'shape' => 'Long', ], ], ], 'TableName' => [ 'type' => 'string', 'max' => 255, 'min' => 3, 'pattern' => '[a-zA-Z0-9_.-]+', ], 'TableNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TableName', ], ], 'TableStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'UPDATING', 'DELETING', 'ACTIVE', ], ], 'UpdateItemInput' => [ 'type' => 'structure', 'required' => [ 'TableName', 'Key', 'AttributeUpdates', ], 'members' => [ 'TableName' => [ 'shape' => 'TableName', ], 'Key' => [ 'shape' => 'Key', ], 'AttributeUpdates' => [ 'shape' => 'AttributeUpdates', ], 'Expected' => [ 'shape' => 'ExpectedAttributeMap', ], 'ReturnValues' => [ 'shape' => 'ReturnValue', ], ], ], 'UpdateItemOutput' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'AttributeMap', ], 'ConsumedCapacityUnits' => [ 'shape' => 'ConsumedCapacityUnits', ], ], ], 'UpdateTableInput' => [ 'type' => 'structure', 'required' => [ 'TableName', 'ProvisionedThroughput', ], 'members' => [ 'TableName' => [ 'shape' => 'TableName', ], 'ProvisionedThroughput' => [ 'shape' => 'ProvisionedThroughput', ], ], ], 'UpdateTableOutput' => [ 'type' => 'structure', 'members' => [ 'TableDescription' => [ 'shape' => 'TableDescription', ], ], ], 'WriteRequest' => [ 'type' => 'structure', 'members' => [ 'PutRequest' => [ 'shape' => 'PutRequest', ], 'DeleteRequest' => [ 'shape' => 'DeleteRequest', ], ], ], 'WriteRequests' => [ 'type' => 'list', 'member' => [ 'shape' => 'WriteRequest', ], 'max' => 25, 'min' => 1, ], ],]; diff --git a/lib/aws/Aws/data/dynamodb/2011-12-05/paginators-1.json.php b/lib/aws/Aws/data/dynamodb/2011-12-05/paginators-1.json.php new file mode 100644 index 0000000..8853c61 --- /dev/null +++ b/lib/aws/Aws/data/dynamodb/2011-12-05/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/dynamodb/2011-12-05/paginators-1.json +return [ 'pagination' => [ 'BatchGetItem' => [ 'input_token' => 'RequestItems', 'output_token' => 'UnprocessedKeys', ], 'ListTables' => [ 'input_token' => 'ExclusiveStartTableName', 'limit_key' => 'Limit', 'output_token' => 'LastEvaluatedTableName', 'result_key' => 'TableNames', ], 'Query' => [ 'input_token' => 'ExclusiveStartKey', 'limit_key' => 'Limit', 'output_token' => 'LastEvaluatedKey', 'result_key' => 'Items', ], 'Scan' => [ 'input_token' => 'ExclusiveStartKey', 'limit_key' => 'Limit', 'output_token' => 'LastEvaluatedKey', 'result_key' => 'Items', ], ],]; diff --git a/lib/aws/Aws/data/dynamodb/2011-12-05/smoke.json.php b/lib/aws/Aws/data/dynamodb/2011-12-05/smoke.json.php new file mode 100644 index 0000000..66aa9d9 --- /dev/null +++ b/lib/aws/Aws/data/dynamodb/2011-12-05/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/dynamodb/2011-12-05/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListTables', 'input' => [ 'Limit' => 1, ], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeTable', 'input' => [ 'TableName' => 'fake-table', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/dynamodb/2011-12-05/waiters-1.json.php b/lib/aws/Aws/data/dynamodb/2011-12-05/waiters-1.json.php new file mode 100644 index 0000000..bc96e34 --- /dev/null +++ b/lib/aws/Aws/data/dynamodb/2011-12-05/waiters-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/dynamodb/2011-12-05/waiters-1.json +return [ 'waiters' => [ '__default__' => [ 'interval' => 20, 'max_attempts' => 25, ], '__TableState' => [ 'operation' => 'DescribeTable', ], 'TableExists' => [ 'extends' => '__TableState', 'description' => 'Wait until a table exists and can be accessed', 'ignore_errors' => [ 'ResourceNotFoundException', ], 'success_type' => 'output', 'success_path' => 'Table.TableStatus', 'success_value' => 'ACTIVE', ], 'TableNotExists' => [ 'extends' => '__TableState', 'description' => 'Wait until a table is deleted', 'success_type' => 'error', 'success_value' => 'ResourceNotFoundException', ], ],]; diff --git a/lib/aws/Aws/data/dynamodb/2011-12-05/waiters-2.json.php b/lib/aws/Aws/data/dynamodb/2011-12-05/waiters-2.json.php new file mode 100644 index 0000000..93035c1 --- /dev/null +++ b/lib/aws/Aws/data/dynamodb/2011-12-05/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/dynamodb/2011-12-05/waiters-2.json +return [ '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/Aws/data/dynamodb/2012-08-10/api-2.json.php b/lib/aws/Aws/data/dynamodb/2012-08-10/api-2.json.php new file mode 100644 index 0000000..0a39000 --- /dev/null +++ b/lib/aws/Aws/data/dynamodb/2012-08-10/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/dynamodb/2012-08-10/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2012-08-10', 'endpointPrefix' => 'dynamodb', 'jsonVersion' => '1.0', 'protocol' => 'json', 'serviceAbbreviation' => 'DynamoDB', 'serviceFullName' => 'Amazon DynamoDB', 'serviceId' => 'DynamoDB', 'signatureVersion' => 'v4', 'targetPrefix' => 'DynamoDB_20120810', 'uid' => 'dynamodb-2012-08-10', ], 'operations' => [ 'BatchGetItem' => [ 'name' => 'BatchGetItem', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetItemInput', ], 'output' => [ 'shape' => 'BatchGetItemOutput', ], 'errors' => [ [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'RequestLimitExceeded', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'BatchWriteItem' => [ 'name' => 'BatchWriteItem', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchWriteItemInput', ], 'output' => [ 'shape' => 'BatchWriteItemOutput', ], 'errors' => [ [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ItemCollectionSizeLimitExceededException', ], [ 'shape' => 'RequestLimitExceeded', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'CreateBackup' => [ 'name' => 'CreateBackup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateBackupInput', ], 'output' => [ 'shape' => 'CreateBackupOutput', ], 'errors' => [ [ 'shape' => 'TableNotFoundException', ], [ 'shape' => 'TableInUseException', ], [ 'shape' => 'ContinuousBackupsUnavailableException', ], [ 'shape' => 'BackupInUseException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'CreateGlobalTable' => [ 'name' => 'CreateGlobalTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateGlobalTableInput', ], 'output' => [ 'shape' => 'CreateGlobalTableOutput', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'GlobalTableAlreadyExistsException', ], [ 'shape' => 'TableNotFoundException', ], ], 'endpointdiscovery' => [], ], 'CreateTable' => [ 'name' => 'CreateTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTableInput', ], 'output' => [ 'shape' => 'CreateTableOutput', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'DeleteBackup' => [ 'name' => 'DeleteBackup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteBackupInput', ], 'output' => [ 'shape' => 'DeleteBackupOutput', ], 'errors' => [ [ 'shape' => 'BackupNotFoundException', ], [ 'shape' => 'BackupInUseException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'DeleteItem' => [ 'name' => 'DeleteItem', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteItemInput', ], 'output' => [ 'shape' => 'DeleteItemOutput', ], 'errors' => [ [ 'shape' => 'ConditionalCheckFailedException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ItemCollectionSizeLimitExceededException', ], [ 'shape' => 'TransactionConflictException', ], [ 'shape' => 'RequestLimitExceeded', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'DeleteTable' => [ 'name' => 'DeleteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTableInput', ], 'output' => [ 'shape' => 'DeleteTableOutput', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'DescribeBackup' => [ 'name' => 'DescribeBackup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeBackupInput', ], 'output' => [ 'shape' => 'DescribeBackupOutput', ], 'errors' => [ [ 'shape' => 'BackupNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'DescribeContinuousBackups' => [ 'name' => 'DescribeContinuousBackups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeContinuousBackupsInput', ], 'output' => [ 'shape' => 'DescribeContinuousBackupsOutput', ], 'errors' => [ [ 'shape' => 'TableNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'DescribeEndpoints' => [ 'name' => 'DescribeEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEndpointsRequest', ], 'output' => [ 'shape' => 'DescribeEndpointsResponse', ], 'endpointoperation' => true, ], 'DescribeGlobalTable' => [ 'name' => 'DescribeGlobalTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeGlobalTableInput', ], 'output' => [ 'shape' => 'DescribeGlobalTableOutput', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'GlobalTableNotFoundException', ], ], 'endpointdiscovery' => [], ], 'DescribeGlobalTableSettings' => [ 'name' => 'DescribeGlobalTableSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeGlobalTableSettingsInput', ], 'output' => [ 'shape' => 'DescribeGlobalTableSettingsOutput', ], 'errors' => [ [ 'shape' => 'GlobalTableNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'DescribeLimits' => [ 'name' => 'DescribeLimits', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLimitsInput', ], 'output' => [ 'shape' => 'DescribeLimitsOutput', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'DescribeTable' => [ 'name' => 'DescribeTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTableInput', ], 'output' => [ 'shape' => 'DescribeTableOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'DescribeTimeToLive' => [ 'name' => 'DescribeTimeToLive', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTimeToLiveInput', ], 'output' => [ 'shape' => 'DescribeTimeToLiveOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'GetItem' => [ 'name' => 'GetItem', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetItemInput', ], 'output' => [ 'shape' => 'GetItemOutput', ], 'errors' => [ [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'RequestLimitExceeded', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'ListBackups' => [ 'name' => 'ListBackups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListBackupsInput', ], 'output' => [ 'shape' => 'ListBackupsOutput', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'ListGlobalTables' => [ 'name' => 'ListGlobalTables', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListGlobalTablesInput', ], 'output' => [ 'shape' => 'ListGlobalTablesOutput', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'ListTables' => [ 'name' => 'ListTables', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTablesInput', ], 'output' => [ 'shape' => 'ListTablesOutput', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'ListTagsOfResource' => [ 'name' => 'ListTagsOfResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsOfResourceInput', ], 'output' => [ 'shape' => 'ListTagsOfResourceOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'PutItem' => [ 'name' => 'PutItem', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutItemInput', ], 'output' => [ 'shape' => 'PutItemOutput', ], 'errors' => [ [ 'shape' => 'ConditionalCheckFailedException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ItemCollectionSizeLimitExceededException', ], [ 'shape' => 'TransactionConflictException', ], [ 'shape' => 'RequestLimitExceeded', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'Query' => [ 'name' => 'Query', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'QueryInput', ], 'output' => [ 'shape' => 'QueryOutput', ], 'errors' => [ [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'RequestLimitExceeded', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'RestoreTableFromBackup' => [ 'name' => 'RestoreTableFromBackup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreTableFromBackupInput', ], 'output' => [ 'shape' => 'RestoreTableFromBackupOutput', ], 'errors' => [ [ 'shape' => 'TableAlreadyExistsException', ], [ 'shape' => 'TableInUseException', ], [ 'shape' => 'BackupNotFoundException', ], [ 'shape' => 'BackupInUseException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'RestoreTableToPointInTime' => [ 'name' => 'RestoreTableToPointInTime', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreTableToPointInTimeInput', ], 'output' => [ 'shape' => 'RestoreTableToPointInTimeOutput', ], 'errors' => [ [ 'shape' => 'TableAlreadyExistsException', ], [ 'shape' => 'TableNotFoundException', ], [ 'shape' => 'TableInUseException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidRestoreTimeException', ], [ 'shape' => 'PointInTimeRecoveryUnavailableException', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'Scan' => [ 'name' => 'Scan', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ScanInput', ], 'output' => [ 'shape' => 'ScanOutput', ], 'errors' => [ [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'RequestLimitExceeded', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceInput', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ResourceInUseException', ], ], 'endpointdiscovery' => [], ], 'TransactGetItems' => [ 'name' => 'TransactGetItems', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TransactGetItemsInput', ], 'output' => [ 'shape' => 'TransactGetItemsOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TransactionCanceledException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'TransactWriteItems' => [ 'name' => 'TransactWriteItems', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TransactWriteItemsInput', ], 'output' => [ 'shape' => 'TransactWriteItemsOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TransactionCanceledException', ], [ 'shape' => 'TransactionInProgressException', ], [ 'shape' => 'IdempotentParameterMismatchException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceInput', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ResourceInUseException', ], ], 'endpointdiscovery' => [], ], 'UpdateContinuousBackups' => [ 'name' => 'UpdateContinuousBackups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateContinuousBackupsInput', ], 'output' => [ 'shape' => 'UpdateContinuousBackupsOutput', ], 'errors' => [ [ 'shape' => 'TableNotFoundException', ], [ 'shape' => 'ContinuousBackupsUnavailableException', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'UpdateGlobalTable' => [ 'name' => 'UpdateGlobalTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateGlobalTableInput', ], 'output' => [ 'shape' => 'UpdateGlobalTableOutput', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'GlobalTableNotFoundException', ], [ 'shape' => 'ReplicaAlreadyExistsException', ], [ 'shape' => 'ReplicaNotFoundException', ], [ 'shape' => 'TableNotFoundException', ], ], 'endpointdiscovery' => [], ], 'UpdateGlobalTableSettings' => [ 'name' => 'UpdateGlobalTableSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateGlobalTableSettingsInput', ], 'output' => [ 'shape' => 'UpdateGlobalTableSettingsOutput', ], 'errors' => [ [ 'shape' => 'GlobalTableNotFoundException', ], [ 'shape' => 'ReplicaNotFoundException', ], [ 'shape' => 'IndexNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'UpdateItem' => [ 'name' => 'UpdateItem', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateItemInput', ], 'output' => [ 'shape' => 'UpdateItemOutput', ], 'errors' => [ [ 'shape' => 'ConditionalCheckFailedException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ItemCollectionSizeLimitExceededException', ], [ 'shape' => 'TransactionConflictException', ], [ 'shape' => 'RequestLimitExceeded', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'UpdateTable' => [ 'name' => 'UpdateTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateTableInput', ], 'output' => [ 'shape' => 'UpdateTableOutput', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], 'UpdateTimeToLive' => [ 'name' => 'UpdateTimeToLive', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateTimeToLiveInput', ], 'output' => [ 'shape' => 'UpdateTimeToLiveOutput', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerError', ], ], 'endpointdiscovery' => [], ], ], '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', ], ], ], 'AutoScalingPolicyDescription' => [ 'type' => 'structure', 'members' => [ 'PolicyName' => [ 'shape' => 'AutoScalingPolicyName', ], 'TargetTrackingScalingPolicyConfiguration' => [ 'shape' => 'AutoScalingTargetTrackingScalingPolicyConfigurationDescription', ], ], ], 'AutoScalingPolicyDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AutoScalingPolicyDescription', ], ], 'AutoScalingPolicyName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '\\p{Print}+', ], 'AutoScalingPolicyUpdate' => [ 'type' => 'structure', 'required' => [ 'TargetTrackingScalingPolicyConfiguration', ], 'members' => [ 'PolicyName' => [ 'shape' => 'AutoScalingPolicyName', ], 'TargetTrackingScalingPolicyConfiguration' => [ 'shape' => 'AutoScalingTargetTrackingScalingPolicyConfigurationUpdate', ], ], ], 'AutoScalingRoleArn' => [ 'type' => 'string', 'max' => 1600, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'AutoScalingSettingsDescription' => [ 'type' => 'structure', 'members' => [ 'MinimumUnits' => [ 'shape' => 'PositiveLongObject', ], 'MaximumUnits' => [ 'shape' => 'PositiveLongObject', ], 'AutoScalingDisabled' => [ 'shape' => 'BooleanObject', ], 'AutoScalingRoleArn' => [ 'shape' => 'String', ], 'ScalingPolicies' => [ 'shape' => 'AutoScalingPolicyDescriptionList', ], ], ], 'AutoScalingSettingsUpdate' => [ 'type' => 'structure', 'members' => [ 'MinimumUnits' => [ 'shape' => 'PositiveLongObject', ], 'MaximumUnits' => [ 'shape' => 'PositiveLongObject', ], 'AutoScalingDisabled' => [ 'shape' => 'BooleanObject', ], 'AutoScalingRoleArn' => [ 'shape' => 'AutoScalingRoleArn', ], 'ScalingPolicyUpdate' => [ 'shape' => 'AutoScalingPolicyUpdate', ], ], ], 'AutoScalingTargetTrackingScalingPolicyConfigurationDescription' => [ 'type' => 'structure', 'required' => [ 'TargetValue', ], 'members' => [ 'DisableScaleIn' => [ 'shape' => 'BooleanObject', ], 'ScaleInCooldown' => [ 'shape' => 'IntegerObject', ], 'ScaleOutCooldown' => [ 'shape' => 'IntegerObject', ], 'TargetValue' => [ 'shape' => 'Double', ], ], ], 'AutoScalingTargetTrackingScalingPolicyConfigurationUpdate' => [ 'type' => 'structure', 'required' => [ 'TargetValue', ], 'members' => [ 'DisableScaleIn' => [ 'shape' => 'BooleanObject', ], 'ScaleInCooldown' => [ 'shape' => 'IntegerObject', ], 'ScaleOutCooldown' => [ 'shape' => 'IntegerObject', ], 'TargetValue' => [ 'shape' => 'Double', ], ], ], 'Backfilling' => [ 'type' => 'boolean', ], 'BackupArn' => [ 'type' => 'string', 'max' => 1024, 'min' => 37, ], 'BackupCreationDateTime' => [ 'type' => 'timestamp', ], 'BackupDescription' => [ 'type' => 'structure', 'members' => [ 'BackupDetails' => [ 'shape' => 'BackupDetails', ], 'SourceTableDetails' => [ 'shape' => 'SourceTableDetails', ], 'SourceTableFeatureDetails' => [ 'shape' => 'SourceTableFeatureDetails', ], ], ], 'BackupDetails' => [ 'type' => 'structure', 'required' => [ 'BackupArn', 'BackupName', 'BackupStatus', 'BackupType', 'BackupCreationDateTime', ], 'members' => [ 'BackupArn' => [ 'shape' => 'BackupArn', ], 'BackupName' => [ 'shape' => 'BackupName', ], 'BackupSizeBytes' => [ 'shape' => 'BackupSizeBytes', ], 'BackupStatus' => [ 'shape' => 'BackupStatus', ], 'BackupType' => [ 'shape' => 'BackupType', ], 'BackupCreationDateTime' => [ 'shape' => 'BackupCreationDateTime', ], 'BackupExpiryDateTime' => [ 'shape' => 'Date', ], ], ], 'BackupInUseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'BackupName' => [ 'type' => 'string', 'max' => 255, 'min' => 3, 'pattern' => '[a-zA-Z0-9_.-]+', ], 'BackupNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'BackupSizeBytes' => [ 'type' => 'long', 'min' => 0, ], 'BackupStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'DELETED', 'AVAILABLE', ], ], 'BackupSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'BackupSummary', ], ], 'BackupSummary' => [ 'type' => 'structure', 'members' => [ 'TableName' => [ 'shape' => 'TableName', ], 'TableId' => [ 'shape' => 'TableId', ], 'TableArn' => [ 'shape' => 'TableArn', ], 'BackupArn' => [ 'shape' => 'BackupArn', ], 'BackupName' => [ 'shape' => 'BackupName', ], 'BackupCreationDateTime' => [ 'shape' => 'BackupCreationDateTime', ], 'BackupExpiryDateTime' => [ 'shape' => 'Date', ], 'BackupStatus' => [ 'shape' => 'BackupStatus', ], 'BackupType' => [ 'shape' => 'BackupType', ], 'BackupSizeBytes' => [ 'shape' => 'BackupSizeBytes', ], ], ], 'BackupType' => [ 'type' => 'string', 'enum' => [ 'USER', 'SYSTEM', 'AWS_BACKUP', ], ], 'BackupTypeFilter' => [ 'type' => 'string', 'enum' => [ 'USER', 'SYSTEM', 'AWS_BACKUP', 'ALL', ], ], 'BackupsInputLimit' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], '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', ], 'max' => 100, 'min' => 1, ], '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', ], 'max' => 25, 'min' => 1, ], 'BillingMode' => [ 'type' => 'string', 'enum' => [ 'PROVISIONED', 'PAY_PER_REQUEST', ], ], 'BillingModeSummary' => [ 'type' => 'structure', 'members' => [ 'BillingMode' => [ 'shape' => 'BillingMode', ], 'LastUpdateToPayPerRequestDateTime' => [ 'shape' => 'Date', ], ], ], 'BinaryAttributeValue' => [ 'type' => 'blob', ], 'BinarySetAttributeValue' => [ 'type' => 'list', 'member' => [ 'shape' => 'BinaryAttributeValue', ], ], 'BooleanAttributeValue' => [ 'type' => 'boolean', ], 'BooleanObject' => [ 'type' => 'boolean', ], 'CancellationReason' => [ 'type' => 'structure', 'members' => [ 'Item' => [ 'shape' => 'AttributeMap', ], 'Code' => [ 'shape' => 'Code', ], 'Message' => [ 'shape' => 'ErrorMessage', ], ], ], 'CancellationReasonList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CancellationReason', ], 'max' => 10, 'min' => 1, ], 'Capacity' => [ 'type' => 'structure', 'members' => [ 'ReadCapacityUnits' => [ 'shape' => 'ConsumedCapacityUnits', ], 'WriteCapacityUnits' => [ 'shape' => 'ConsumedCapacityUnits', ], 'CapacityUnits' => [ 'shape' => 'ConsumedCapacityUnits', ], ], ], 'ClientRequestToken' => [ 'type' => 'string', 'max' => 36, 'min' => 1, ], 'Code' => [ 'type' => 'string', ], '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', ], ], ], 'ConditionCheck' => [ 'type' => 'structure', 'required' => [ 'Key', 'TableName', 'ConditionExpression', ], 'members' => [ 'Key' => [ 'shape' => 'Key', ], 'TableName' => [ 'shape' => 'TableName', ], 'ConditionExpression' => [ 'shape' => 'ConditionExpression', ], 'ExpressionAttributeNames' => [ 'shape' => 'ExpressionAttributeNameMap', ], 'ExpressionAttributeValues' => [ 'shape' => 'ExpressionAttributeValueMap', ], 'ReturnValuesOnConditionCheckFailure' => [ 'shape' => 'ReturnValuesOnConditionCheckFailure', ], ], ], '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', ], 'ReadCapacityUnits' => [ 'shape' => 'ConsumedCapacityUnits', ], 'WriteCapacityUnits' => [ 'shape' => 'ConsumedCapacityUnits', ], 'Table' => [ 'shape' => 'Capacity', ], 'LocalSecondaryIndexes' => [ 'shape' => 'SecondaryIndexesCapacityMap', ], 'GlobalSecondaryIndexes' => [ 'shape' => 'SecondaryIndexesCapacityMap', ], ], ], 'ConsumedCapacityMultiple' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConsumedCapacity', ], ], 'ConsumedCapacityUnits' => [ 'type' => 'double', ], 'ContinuousBackupsDescription' => [ 'type' => 'structure', 'required' => [ 'ContinuousBackupsStatus', ], 'members' => [ 'ContinuousBackupsStatus' => [ 'shape' => 'ContinuousBackupsStatus', ], 'PointInTimeRecoveryDescription' => [ 'shape' => 'PointInTimeRecoveryDescription', ], ], ], 'ContinuousBackupsStatus' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'ContinuousBackupsUnavailableException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'CreateBackupInput' => [ 'type' => 'structure', 'required' => [ 'TableName', 'BackupName', ], 'members' => [ 'TableName' => [ 'shape' => 'TableName', ], 'BackupName' => [ 'shape' => 'BackupName', ], ], ], 'CreateBackupOutput' => [ 'type' => 'structure', 'members' => [ 'BackupDetails' => [ 'shape' => 'BackupDetails', ], ], ], 'CreateGlobalSecondaryIndexAction' => [ 'type' => 'structure', 'required' => [ 'IndexName', 'KeySchema', 'Projection', ], 'members' => [ 'IndexName' => [ 'shape' => 'IndexName', ], 'KeySchema' => [ 'shape' => 'KeySchema', ], 'Projection' => [ 'shape' => 'Projection', ], 'ProvisionedThroughput' => [ 'shape' => 'ProvisionedThroughput', ], ], ], 'CreateGlobalTableInput' => [ 'type' => 'structure', 'required' => [ 'GlobalTableName', 'ReplicationGroup', ], 'members' => [ 'GlobalTableName' => [ 'shape' => 'TableName', ], 'ReplicationGroup' => [ 'shape' => 'ReplicaList', ], ], ], 'CreateGlobalTableOutput' => [ 'type' => 'structure', 'members' => [ 'GlobalTableDescription' => [ 'shape' => 'GlobalTableDescription', ], ], ], 'CreateReplicaAction' => [ 'type' => 'structure', 'required' => [ 'RegionName', ], 'members' => [ 'RegionName' => [ 'shape' => 'RegionName', ], ], ], 'CreateTableInput' => [ 'type' => 'structure', 'required' => [ 'AttributeDefinitions', 'TableName', 'KeySchema', ], 'members' => [ 'AttributeDefinitions' => [ 'shape' => 'AttributeDefinitions', ], 'TableName' => [ 'shape' => 'TableName', ], 'KeySchema' => [ 'shape' => 'KeySchema', ], 'LocalSecondaryIndexes' => [ 'shape' => 'LocalSecondaryIndexList', ], 'GlobalSecondaryIndexes' => [ 'shape' => 'GlobalSecondaryIndexList', ], 'BillingMode' => [ 'shape' => 'BillingMode', ], 'ProvisionedThroughput' => [ 'shape' => 'ProvisionedThroughput', ], 'StreamSpecification' => [ 'shape' => 'StreamSpecification', ], 'SSESpecification' => [ 'shape' => 'SSESpecification', ], ], ], 'CreateTableOutput' => [ 'type' => 'structure', 'members' => [ 'TableDescription' => [ 'shape' => 'TableDescription', ], ], ], 'Date' => [ 'type' => 'timestamp', ], 'Delete' => [ 'type' => 'structure', 'required' => [ 'Key', 'TableName', ], 'members' => [ 'Key' => [ 'shape' => 'Key', ], 'TableName' => [ 'shape' => 'TableName', ], 'ConditionExpression' => [ 'shape' => 'ConditionExpression', ], 'ExpressionAttributeNames' => [ 'shape' => 'ExpressionAttributeNameMap', ], 'ExpressionAttributeValues' => [ 'shape' => 'ExpressionAttributeValueMap', ], 'ReturnValuesOnConditionCheckFailure' => [ 'shape' => 'ReturnValuesOnConditionCheckFailure', ], ], ], 'DeleteBackupInput' => [ 'type' => 'structure', 'required' => [ 'BackupArn', ], 'members' => [ 'BackupArn' => [ 'shape' => 'BackupArn', ], ], ], 'DeleteBackupOutput' => [ 'type' => 'structure', 'members' => [ 'BackupDescription' => [ 'shape' => 'BackupDescription', ], ], ], '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', ], ], ], 'DeleteReplicaAction' => [ 'type' => 'structure', 'required' => [ 'RegionName', ], 'members' => [ 'RegionName' => [ 'shape' => 'RegionName', ], ], ], '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', ], ], ], 'DescribeBackupInput' => [ 'type' => 'structure', 'required' => [ 'BackupArn', ], 'members' => [ 'BackupArn' => [ 'shape' => 'BackupArn', ], ], ], 'DescribeBackupOutput' => [ 'type' => 'structure', 'members' => [ 'BackupDescription' => [ 'shape' => 'BackupDescription', ], ], ], 'DescribeContinuousBackupsInput' => [ 'type' => 'structure', 'required' => [ 'TableName', ], 'members' => [ 'TableName' => [ 'shape' => 'TableName', ], ], ], 'DescribeContinuousBackupsOutput' => [ 'type' => 'structure', 'members' => [ 'ContinuousBackupsDescription' => [ 'shape' => 'ContinuousBackupsDescription', ], ], ], 'DescribeEndpointsRequest' => [ 'type' => 'structure', 'members' => [], ], 'DescribeEndpointsResponse' => [ 'type' => 'structure', 'required' => [ 'Endpoints', ], 'members' => [ 'Endpoints' => [ 'shape' => 'Endpoints', ], ], ], 'DescribeGlobalTableInput' => [ 'type' => 'structure', 'required' => [ 'GlobalTableName', ], 'members' => [ 'GlobalTableName' => [ 'shape' => 'TableName', ], ], ], 'DescribeGlobalTableOutput' => [ 'type' => 'structure', 'members' => [ 'GlobalTableDescription' => [ 'shape' => 'GlobalTableDescription', ], ], ], 'DescribeGlobalTableSettingsInput' => [ 'type' => 'structure', 'required' => [ 'GlobalTableName', ], 'members' => [ 'GlobalTableName' => [ 'shape' => 'TableName', ], ], ], 'DescribeGlobalTableSettingsOutput' => [ 'type' => 'structure', 'members' => [ 'GlobalTableName' => [ 'shape' => 'TableName', ], 'ReplicaSettings' => [ 'shape' => 'ReplicaSettingsDescriptionList', ], ], ], 'DescribeLimitsInput' => [ 'type' => 'structure', 'members' => [], ], 'DescribeLimitsOutput' => [ 'type' => 'structure', 'members' => [ 'AccountMaxReadCapacityUnits' => [ 'shape' => 'PositiveLongObject', ], 'AccountMaxWriteCapacityUnits' => [ 'shape' => 'PositiveLongObject', ], 'TableMaxReadCapacityUnits' => [ 'shape' => 'PositiveLongObject', ], 'TableMaxWriteCapacityUnits' => [ 'shape' => 'PositiveLongObject', ], ], ], 'DescribeTableInput' => [ 'type' => 'structure', 'required' => [ 'TableName', ], 'members' => [ 'TableName' => [ 'shape' => 'TableName', ], ], ], 'DescribeTableOutput' => [ 'type' => 'structure', 'members' => [ 'Table' => [ 'shape' => 'TableDescription', ], ], ], 'DescribeTimeToLiveInput' => [ 'type' => 'structure', 'required' => [ 'TableName', ], 'members' => [ 'TableName' => [ 'shape' => 'TableName', ], ], ], 'DescribeTimeToLiveOutput' => [ 'type' => 'structure', 'members' => [ 'TimeToLiveDescription' => [ 'shape' => 'TimeToLiveDescription', ], ], ], 'Double' => [ 'type' => 'double', ], 'Endpoint' => [ 'type' => 'structure', 'required' => [ 'Address', 'CachePeriodInMinutes', ], 'members' => [ 'Address' => [ 'shape' => 'String', ], 'CachePeriodInMinutes' => [ 'shape' => 'Long', ], ], ], 'Endpoints' => [ 'type' => 'list', 'member' => [ 'shape' => 'Endpoint', ], ], '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', ], ], 'Get' => [ 'type' => 'structure', 'required' => [ 'Key', 'TableName', ], 'members' => [ 'Key' => [ 'shape' => 'Key', ], 'TableName' => [ 'shape' => 'TableName', ], 'ProjectionExpression' => [ 'shape' => 'ProjectionExpression', ], 'ExpressionAttributeNames' => [ 'shape' => 'ExpressionAttributeNameMap', ], ], ], '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', ], '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', ], 'IndexArn' => [ 'shape' => 'String', ], ], ], 'GlobalSecondaryIndexDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GlobalSecondaryIndexDescription', ], ], 'GlobalSecondaryIndexInfo' => [ 'type' => 'structure', 'members' => [ 'IndexName' => [ 'shape' => 'IndexName', ], 'KeySchema' => [ 'shape' => 'KeySchema', ], 'Projection' => [ 'shape' => 'Projection', ], 'ProvisionedThroughput' => [ 'shape' => 'ProvisionedThroughput', ], ], ], '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', ], ], 'GlobalSecondaryIndexes' => [ 'type' => 'list', 'member' => [ 'shape' => 'GlobalSecondaryIndexInfo', ], ], 'GlobalTable' => [ 'type' => 'structure', 'members' => [ 'GlobalTableName' => [ 'shape' => 'TableName', ], 'ReplicationGroup' => [ 'shape' => 'ReplicaList', ], ], ], 'GlobalTableAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'GlobalTableArnString' => [ 'type' => 'string', ], 'GlobalTableDescription' => [ 'type' => 'structure', 'members' => [ 'ReplicationGroup' => [ 'shape' => 'ReplicaDescriptionList', ], 'GlobalTableArn' => [ 'shape' => 'GlobalTableArnString', ], 'CreationDateTime' => [ 'shape' => 'Date', ], 'GlobalTableStatus' => [ 'shape' => 'GlobalTableStatus', ], 'GlobalTableName' => [ 'shape' => 'TableName', ], ], ], 'GlobalTableGlobalSecondaryIndexSettingsUpdate' => [ 'type' => 'structure', 'required' => [ 'IndexName', ], 'members' => [ 'IndexName' => [ 'shape' => 'IndexName', ], 'ProvisionedWriteCapacityUnits' => [ 'shape' => 'PositiveLongObject', ], 'ProvisionedWriteCapacityAutoScalingSettingsUpdate' => [ 'shape' => 'AutoScalingSettingsUpdate', ], ], ], 'GlobalTableGlobalSecondaryIndexSettingsUpdateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GlobalTableGlobalSecondaryIndexSettingsUpdate', ], 'max' => 20, 'min' => 1, ], 'GlobalTableList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GlobalTable', ], ], 'GlobalTableNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'GlobalTableStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'ACTIVE', 'DELETING', 'UPDATING', ], ], 'IdempotentParameterMismatchException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'IndexName' => [ 'type' => 'string', 'max' => 255, 'min' => 3, 'pattern' => '[a-zA-Z0-9_.-]+', ], 'IndexNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'IndexStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'UPDATING', 'DELETING', 'ACTIVE', ], ], 'Integer' => [ 'type' => 'integer', ], 'IntegerObject' => [ 'type' => 'integer', ], 'InternalServerError' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, 'fault' => true, ], 'InvalidRestoreTimeException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => 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, ], 'ItemCount' => [ 'type' => 'long', 'min' => 0, ], 'ItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeMap', ], ], 'ItemResponse' => [ 'type' => 'structure', 'members' => [ 'Item' => [ 'shape' => 'AttributeMap', ], ], ], 'ItemResponseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ItemResponse', ], 'max' => 10, 'min' => 1, ], 'KMSMasterKeyArn' => [ 'type' => 'string', ], 'KMSMasterKeyId' => [ 'type' => 'string', ], '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', ], 'max' => 100, 'min' => 1, ], 'KeySchema' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeySchemaElement', ], 'max' => 2, 'min' => 1, ], 'KeySchemaAttributeName' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], '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', ], ], 'ListBackupsInput' => [ 'type' => 'structure', 'members' => [ 'TableName' => [ 'shape' => 'TableName', ], 'Limit' => [ 'shape' => 'BackupsInputLimit', ], 'TimeRangeLowerBound' => [ 'shape' => 'TimeRangeLowerBound', ], 'TimeRangeUpperBound' => [ 'shape' => 'TimeRangeUpperBound', ], 'ExclusiveStartBackupArn' => [ 'shape' => 'BackupArn', ], 'BackupType' => [ 'shape' => 'BackupTypeFilter', ], ], ], 'ListBackupsOutput' => [ 'type' => 'structure', 'members' => [ 'BackupSummaries' => [ 'shape' => 'BackupSummaries', ], 'LastEvaluatedBackupArn' => [ 'shape' => 'BackupArn', ], ], ], 'ListGlobalTablesInput' => [ 'type' => 'structure', 'members' => [ 'ExclusiveStartGlobalTableName' => [ 'shape' => 'TableName', ], 'Limit' => [ 'shape' => 'PositiveIntegerObject', ], 'RegionName' => [ 'shape' => 'RegionName', ], ], ], 'ListGlobalTablesOutput' => [ 'type' => 'structure', 'members' => [ 'GlobalTables' => [ 'shape' => 'GlobalTableList', ], 'LastEvaluatedGlobalTableName' => [ 'shape' => 'TableName', ], ], ], 'ListTablesInput' => [ 'type' => 'structure', 'members' => [ 'ExclusiveStartTableName' => [ 'shape' => 'TableName', ], 'Limit' => [ 'shape' => 'ListTablesInputLimit', ], ], ], 'ListTablesInputLimit' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'ListTablesOutput' => [ 'type' => 'structure', 'members' => [ 'TableNames' => [ 'shape' => 'TableNameList', ], 'LastEvaluatedTableName' => [ 'shape' => 'TableName', ], ], ], 'ListTagsOfResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArnString', ], 'NextToken' => [ 'shape' => 'NextTokenString', ], ], ], 'ListTagsOfResourceOutput' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], 'NextToken' => [ 'shape' => 'NextTokenString', ], ], ], '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', ], 'IndexArn' => [ 'shape' => 'String', ], ], ], 'LocalSecondaryIndexDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalSecondaryIndexDescription', ], ], 'LocalSecondaryIndexInfo' => [ 'type' => 'structure', 'members' => [ 'IndexName' => [ 'shape' => 'IndexName', ], 'KeySchema' => [ 'shape' => 'KeySchema', ], 'Projection' => [ 'shape' => 'Projection', ], ], ], 'LocalSecondaryIndexList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalSecondaryIndex', ], ], 'LocalSecondaryIndexes' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalSecondaryIndexInfo', ], ], 'Long' => [ 'type' => 'long', ], 'MapAttributeValue' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttributeName', ], 'value' => [ 'shape' => 'AttributeValue', ], ], 'NextTokenString' => [ 'type' => 'string', ], 'NonKeyAttributeName' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'NonKeyAttributeNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonKeyAttributeName', ], 'max' => 20, 'min' => 1, ], 'NonNegativeLongObject' => [ 'type' => 'long', 'min' => 0, ], 'NullAttributeValue' => [ 'type' => 'boolean', ], 'NumberAttributeValue' => [ 'type' => 'string', ], 'NumberSetAttributeValue' => [ 'type' => 'list', 'member' => [ 'shape' => 'NumberAttributeValue', ], ], 'PointInTimeRecoveryDescription' => [ 'type' => 'structure', 'members' => [ 'PointInTimeRecoveryStatus' => [ 'shape' => 'PointInTimeRecoveryStatus', ], 'EarliestRestorableDateTime' => [ 'shape' => 'Date', ], 'LatestRestorableDateTime' => [ 'shape' => 'Date', ], ], ], 'PointInTimeRecoverySpecification' => [ 'type' => 'structure', 'required' => [ 'PointInTimeRecoveryEnabled', ], 'members' => [ 'PointInTimeRecoveryEnabled' => [ 'shape' => 'BooleanObject', ], ], ], 'PointInTimeRecoveryStatus' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'PointInTimeRecoveryUnavailableException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], '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' => 'NonNegativeLongObject', ], 'WriteCapacityUnits' => [ 'shape' => 'NonNegativeLongObject', ], ], ], 'ProvisionedThroughputExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'Put' => [ 'type' => 'structure', 'required' => [ 'Item', 'TableName', ], 'members' => [ 'Item' => [ 'shape' => 'PutItemInputAttributeMap', ], 'TableName' => [ 'shape' => 'TableName', ], 'ConditionExpression' => [ 'shape' => 'ConditionExpression', ], 'ExpressionAttributeNames' => [ 'shape' => 'ExpressionAttributeNameMap', ], 'ExpressionAttributeValues' => [ 'shape' => 'ExpressionAttributeValueMap', ], 'ReturnValuesOnConditionCheckFailure' => [ 'shape' => 'ReturnValuesOnConditionCheckFailure', ], ], ], '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', ], ], ], 'RegionName' => [ 'type' => 'string', ], 'Replica' => [ 'type' => 'structure', 'members' => [ 'RegionName' => [ 'shape' => 'RegionName', ], ], ], 'ReplicaAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ReplicaDescription' => [ 'type' => 'structure', 'members' => [ 'RegionName' => [ 'shape' => 'RegionName', ], ], ], 'ReplicaDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReplicaDescription', ], ], 'ReplicaGlobalSecondaryIndexSettingsDescription' => [ 'type' => 'structure', 'required' => [ 'IndexName', ], 'members' => [ 'IndexName' => [ 'shape' => 'IndexName', ], 'IndexStatus' => [ 'shape' => 'IndexStatus', ], 'ProvisionedReadCapacityUnits' => [ 'shape' => 'PositiveLongObject', ], 'ProvisionedReadCapacityAutoScalingSettings' => [ 'shape' => 'AutoScalingSettingsDescription', ], 'ProvisionedWriteCapacityUnits' => [ 'shape' => 'PositiveLongObject', ], 'ProvisionedWriteCapacityAutoScalingSettings' => [ 'shape' => 'AutoScalingSettingsDescription', ], ], ], 'ReplicaGlobalSecondaryIndexSettingsDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReplicaGlobalSecondaryIndexSettingsDescription', ], ], 'ReplicaGlobalSecondaryIndexSettingsUpdate' => [ 'type' => 'structure', 'required' => [ 'IndexName', ], 'members' => [ 'IndexName' => [ 'shape' => 'IndexName', ], 'ProvisionedReadCapacityUnits' => [ 'shape' => 'PositiveLongObject', ], 'ProvisionedReadCapacityAutoScalingSettingsUpdate' => [ 'shape' => 'AutoScalingSettingsUpdate', ], ], ], 'ReplicaGlobalSecondaryIndexSettingsUpdateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReplicaGlobalSecondaryIndexSettingsUpdate', ], 'max' => 20, 'min' => 1, ], 'ReplicaList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Replica', ], ], 'ReplicaNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ReplicaSettingsDescription' => [ 'type' => 'structure', 'required' => [ 'RegionName', ], 'members' => [ 'RegionName' => [ 'shape' => 'RegionName', ], 'ReplicaStatus' => [ 'shape' => 'ReplicaStatus', ], 'ReplicaBillingModeSummary' => [ 'shape' => 'BillingModeSummary', ], 'ReplicaProvisionedReadCapacityUnits' => [ 'shape' => 'NonNegativeLongObject', ], 'ReplicaProvisionedReadCapacityAutoScalingSettings' => [ 'shape' => 'AutoScalingSettingsDescription', ], 'ReplicaProvisionedWriteCapacityUnits' => [ 'shape' => 'NonNegativeLongObject', ], 'ReplicaProvisionedWriteCapacityAutoScalingSettings' => [ 'shape' => 'AutoScalingSettingsDescription', ], 'ReplicaGlobalSecondaryIndexSettings' => [ 'shape' => 'ReplicaGlobalSecondaryIndexSettingsDescriptionList', ], ], ], 'ReplicaSettingsDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReplicaSettingsDescription', ], ], 'ReplicaSettingsUpdate' => [ 'type' => 'structure', 'required' => [ 'RegionName', ], 'members' => [ 'RegionName' => [ 'shape' => 'RegionName', ], 'ReplicaProvisionedReadCapacityUnits' => [ 'shape' => 'PositiveLongObject', ], 'ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate' => [ 'shape' => 'AutoScalingSettingsUpdate', ], 'ReplicaGlobalSecondaryIndexSettingsUpdate' => [ 'shape' => 'ReplicaGlobalSecondaryIndexSettingsUpdateList', ], ], ], 'ReplicaSettingsUpdateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReplicaSettingsUpdate', ], 'max' => 50, 'min' => 1, ], 'ReplicaStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'UPDATING', 'DELETING', 'ACTIVE', ], ], 'ReplicaUpdate' => [ 'type' => 'structure', 'members' => [ 'Create' => [ 'shape' => 'CreateReplicaAction', ], 'Delete' => [ 'shape' => 'DeleteReplicaAction', ], ], ], 'ReplicaUpdateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReplicaUpdate', ], ], 'RequestLimitExceeded' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ResourceArnString' => [ 'type' => 'string', 'max' => 1283, 'min' => 1, ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'RestoreInProgress' => [ 'type' => 'boolean', ], 'RestoreSummary' => [ 'type' => 'structure', 'required' => [ 'RestoreDateTime', 'RestoreInProgress', ], 'members' => [ 'SourceBackupArn' => [ 'shape' => 'BackupArn', ], 'SourceTableArn' => [ 'shape' => 'TableArn', ], 'RestoreDateTime' => [ 'shape' => 'Date', ], 'RestoreInProgress' => [ 'shape' => 'RestoreInProgress', ], ], ], 'RestoreTableFromBackupInput' => [ 'type' => 'structure', 'required' => [ 'TargetTableName', 'BackupArn', ], 'members' => [ 'TargetTableName' => [ 'shape' => 'TableName', ], 'BackupArn' => [ 'shape' => 'BackupArn', ], ], ], 'RestoreTableFromBackupOutput' => [ 'type' => 'structure', 'members' => [ 'TableDescription' => [ 'shape' => 'TableDescription', ], ], ], 'RestoreTableToPointInTimeInput' => [ 'type' => 'structure', 'required' => [ 'SourceTableName', 'TargetTableName', ], 'members' => [ 'SourceTableName' => [ 'shape' => 'TableName', ], 'TargetTableName' => [ 'shape' => 'TableName', ], 'UseLatestRestorableTime' => [ 'shape' => 'BooleanObject', ], 'RestoreDateTime' => [ 'shape' => 'Date', ], ], ], 'RestoreTableToPointInTimeOutput' => [ 'type' => 'structure', 'members' => [ 'TableDescription' => [ 'shape' => 'TableDescription', ], ], ], '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', ], ], 'ReturnValuesOnConditionCheckFailure' => [ 'type' => 'string', 'enum' => [ 'ALL_OLD', 'NONE', ], ], 'SSEDescription' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'SSEStatus', ], 'SSEType' => [ 'shape' => 'SSEType', ], 'KMSMasterKeyArn' => [ 'shape' => 'KMSMasterKeyArn', ], ], ], 'SSEEnabled' => [ 'type' => 'boolean', ], 'SSESpecification' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'SSEEnabled', ], 'SSEType' => [ 'shape' => 'SSEType', ], 'KMSMasterKeyId' => [ 'shape' => 'KMSMasterKeyId', ], ], ], 'SSEStatus' => [ 'type' => 'string', 'enum' => [ 'ENABLING', 'ENABLED', 'DISABLING', 'DISABLED', 'UPDATING', ], ], 'SSEType' => [ 'type' => 'string', 'enum' => [ 'AES256', 'KMS', ], ], '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', ], 'ConsistentRead' => [ 'shape' => 'ConsistentRead', ], ], ], 'ScanOutput' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'ItemList', ], 'Count' => [ 'shape' => 'Integer', ], 'ScannedCount' => [ 'shape' => 'Integer', ], 'LastEvaluatedKey' => [ 'shape' => 'Key', ], 'ConsumedCapacity' => [ 'shape' => 'ConsumedCapacity', ], ], ], 'ScanSegment' => [ 'type' => 'integer', 'max' => 999999, 'min' => 0, ], 'ScanTotalSegments' => [ 'type' => 'integer', 'max' => 1000000, 'min' => 1, ], 'SecondaryIndexesCapacityMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'IndexName', ], 'value' => [ 'shape' => 'Capacity', ], ], 'Select' => [ 'type' => 'string', 'enum' => [ 'ALL_ATTRIBUTES', 'ALL_PROJECTED_ATTRIBUTES', 'SPECIFIC_ATTRIBUTES', 'COUNT', ], ], 'SourceTableDetails' => [ 'type' => 'structure', 'required' => [ 'TableName', 'TableId', 'KeySchema', 'TableCreationDateTime', 'ProvisionedThroughput', ], 'members' => [ 'TableName' => [ 'shape' => 'TableName', ], 'TableId' => [ 'shape' => 'TableId', ], 'TableArn' => [ 'shape' => 'TableArn', ], 'TableSizeBytes' => [ 'shape' => 'Long', ], 'KeySchema' => [ 'shape' => 'KeySchema', ], 'TableCreationDateTime' => [ 'shape' => 'TableCreationDateTime', ], 'ProvisionedThroughput' => [ 'shape' => 'ProvisionedThroughput', ], 'ItemCount' => [ 'shape' => 'ItemCount', ], 'BillingMode' => [ 'shape' => 'BillingMode', ], ], ], 'SourceTableFeatureDetails' => [ 'type' => 'structure', 'members' => [ 'LocalSecondaryIndexes' => [ 'shape' => 'LocalSecondaryIndexes', ], 'GlobalSecondaryIndexes' => [ 'shape' => 'GlobalSecondaryIndexes', ], 'StreamDescription' => [ 'shape' => 'StreamSpecification', ], 'TimeToLiveDescription' => [ 'shape' => 'TimeToLiveDescription', ], 'SSEDescription' => [ 'shape' => 'SSEDescription', ], ], ], 'StreamArn' => [ 'type' => 'string', 'max' => 1024, 'min' => 37, ], 'StreamEnabled' => [ 'type' => 'boolean', ], 'StreamSpecification' => [ 'type' => 'structure', 'members' => [ 'StreamEnabled' => [ 'shape' => 'StreamEnabled', ], 'StreamViewType' => [ 'shape' => 'StreamViewType', ], ], ], 'StreamViewType' => [ 'type' => 'string', 'enum' => [ 'NEW_IMAGE', 'OLD_IMAGE', 'NEW_AND_OLD_IMAGES', 'KEYS_ONLY', ], ], 'String' => [ 'type' => 'string', ], 'StringAttributeValue' => [ 'type' => 'string', ], 'StringSetAttributeValue' => [ 'type' => 'list', 'member' => [ 'shape' => 'StringAttributeValue', ], ], 'TableAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'TableArn' => [ 'type' => 'string', ], 'TableCreationDateTime' => [ 'type' => 'timestamp', ], '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', ], 'TableArn' => [ 'shape' => 'String', ], 'TableId' => [ 'shape' => 'TableId', ], 'BillingModeSummary' => [ 'shape' => 'BillingModeSummary', ], 'LocalSecondaryIndexes' => [ 'shape' => 'LocalSecondaryIndexDescriptionList', ], 'GlobalSecondaryIndexes' => [ 'shape' => 'GlobalSecondaryIndexDescriptionList', ], 'StreamSpecification' => [ 'shape' => 'StreamSpecification', ], 'LatestStreamLabel' => [ 'shape' => 'String', ], 'LatestStreamArn' => [ 'shape' => 'StreamArn', ], 'RestoreSummary' => [ 'shape' => 'RestoreSummary', ], 'SSEDescription' => [ 'shape' => 'SSEDescription', ], ], ], 'TableId' => [ 'type' => 'string', 'pattern' => '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}', ], 'TableInUseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'TableName' => [ 'type' => 'string', 'max' => 255, 'min' => 3, 'pattern' => '[a-zA-Z0-9_.-]+', ], 'TableNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TableName', ], ], 'TableNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'TableStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'UPDATING', 'DELETING', 'ACTIVE', ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'TagKeyString', ], 'Value' => [ 'shape' => 'TagValueString', ], ], ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKeyString', ], ], 'TagKeyString' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Tags', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArnString', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagValueString' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'TimeRangeLowerBound' => [ 'type' => 'timestamp', ], 'TimeRangeUpperBound' => [ 'type' => 'timestamp', ], 'TimeToLiveAttributeName' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'TimeToLiveDescription' => [ 'type' => 'structure', 'members' => [ 'TimeToLiveStatus' => [ 'shape' => 'TimeToLiveStatus', ], 'AttributeName' => [ 'shape' => 'TimeToLiveAttributeName', ], ], ], 'TimeToLiveEnabled' => [ 'type' => 'boolean', ], 'TimeToLiveSpecification' => [ 'type' => 'structure', 'required' => [ 'Enabled', 'AttributeName', ], 'members' => [ 'Enabled' => [ 'shape' => 'TimeToLiveEnabled', ], 'AttributeName' => [ 'shape' => 'TimeToLiveAttributeName', ], ], ], 'TimeToLiveStatus' => [ 'type' => 'string', 'enum' => [ 'ENABLING', 'DISABLING', 'ENABLED', 'DISABLED', ], ], 'TransactGetItem' => [ 'type' => 'structure', 'required' => [ 'Get', ], 'members' => [ 'Get' => [ 'shape' => 'Get', ], ], ], 'TransactGetItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransactGetItem', ], 'max' => 10, 'min' => 1, ], 'TransactGetItemsInput' => [ 'type' => 'structure', 'required' => [ 'TransactItems', ], 'members' => [ 'TransactItems' => [ 'shape' => 'TransactGetItemList', ], 'ReturnConsumedCapacity' => [ 'shape' => 'ReturnConsumedCapacity', ], ], ], 'TransactGetItemsOutput' => [ 'type' => 'structure', 'members' => [ 'ConsumedCapacity' => [ 'shape' => 'ConsumedCapacityMultiple', ], 'Responses' => [ 'shape' => 'ItemResponseList', ], ], ], 'TransactWriteItem' => [ 'type' => 'structure', 'members' => [ 'ConditionCheck' => [ 'shape' => 'ConditionCheck', ], 'Put' => [ 'shape' => 'Put', ], 'Delete' => [ 'shape' => 'Delete', ], 'Update' => [ 'shape' => 'Update', ], ], ], 'TransactWriteItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransactWriteItem', ], 'max' => 10, 'min' => 1, ], 'TransactWriteItemsInput' => [ 'type' => 'structure', 'required' => [ 'TransactItems', ], 'members' => [ 'TransactItems' => [ 'shape' => 'TransactWriteItemList', ], 'ReturnConsumedCapacity' => [ 'shape' => 'ReturnConsumedCapacity', ], 'ReturnItemCollectionMetrics' => [ 'shape' => 'ReturnItemCollectionMetrics', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'TransactWriteItemsOutput' => [ 'type' => 'structure', 'members' => [ 'ConsumedCapacity' => [ 'shape' => 'ConsumedCapacityMultiple', ], 'ItemCollectionMetrics' => [ 'shape' => 'ItemCollectionMetricsPerTable', ], ], ], 'TransactionCanceledException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], 'CancellationReasons' => [ 'shape' => 'CancellationReasonList', ], ], 'exception' => true, ], 'TransactionConflictException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'TransactionInProgressException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'UntagResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagKeys', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArnString', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'Update' => [ 'type' => 'structure', 'required' => [ 'Key', 'UpdateExpression', 'TableName', ], 'members' => [ 'Key' => [ 'shape' => 'Key', ], 'UpdateExpression' => [ 'shape' => 'UpdateExpression', ], 'TableName' => [ 'shape' => 'TableName', ], 'ConditionExpression' => [ 'shape' => 'ConditionExpression', ], 'ExpressionAttributeNames' => [ 'shape' => 'ExpressionAttributeNameMap', ], 'ExpressionAttributeValues' => [ 'shape' => 'ExpressionAttributeValueMap', ], 'ReturnValuesOnConditionCheckFailure' => [ 'shape' => 'ReturnValuesOnConditionCheckFailure', ], ], ], 'UpdateContinuousBackupsInput' => [ 'type' => 'structure', 'required' => [ 'TableName', 'PointInTimeRecoverySpecification', ], 'members' => [ 'TableName' => [ 'shape' => 'TableName', ], 'PointInTimeRecoverySpecification' => [ 'shape' => 'PointInTimeRecoverySpecification', ], ], ], 'UpdateContinuousBackupsOutput' => [ 'type' => 'structure', 'members' => [ 'ContinuousBackupsDescription' => [ 'shape' => 'ContinuousBackupsDescription', ], ], ], 'UpdateExpression' => [ 'type' => 'string', ], 'UpdateGlobalSecondaryIndexAction' => [ 'type' => 'structure', 'required' => [ 'IndexName', 'ProvisionedThroughput', ], 'members' => [ 'IndexName' => [ 'shape' => 'IndexName', ], 'ProvisionedThroughput' => [ 'shape' => 'ProvisionedThroughput', ], ], ], 'UpdateGlobalTableInput' => [ 'type' => 'structure', 'required' => [ 'GlobalTableName', 'ReplicaUpdates', ], 'members' => [ 'GlobalTableName' => [ 'shape' => 'TableName', ], 'ReplicaUpdates' => [ 'shape' => 'ReplicaUpdateList', ], ], ], 'UpdateGlobalTableOutput' => [ 'type' => 'structure', 'members' => [ 'GlobalTableDescription' => [ 'shape' => 'GlobalTableDescription', ], ], ], 'UpdateGlobalTableSettingsInput' => [ 'type' => 'structure', 'required' => [ 'GlobalTableName', ], 'members' => [ 'GlobalTableName' => [ 'shape' => 'TableName', ], 'GlobalTableBillingMode' => [ 'shape' => 'BillingMode', ], 'GlobalTableProvisionedWriteCapacityUnits' => [ 'shape' => 'PositiveLongObject', ], 'GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate' => [ 'shape' => 'AutoScalingSettingsUpdate', ], 'GlobalTableGlobalSecondaryIndexSettingsUpdate' => [ 'shape' => 'GlobalTableGlobalSecondaryIndexSettingsUpdateList', ], 'ReplicaSettingsUpdate' => [ 'shape' => 'ReplicaSettingsUpdateList', ], ], ], 'UpdateGlobalTableSettingsOutput' => [ 'type' => 'structure', 'members' => [ 'GlobalTableName' => [ 'shape' => 'TableName', ], 'ReplicaSettings' => [ 'shape' => 'ReplicaSettingsDescriptionList', ], ], ], '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', ], 'BillingMode' => [ 'shape' => 'BillingMode', ], 'ProvisionedThroughput' => [ 'shape' => 'ProvisionedThroughput', ], 'GlobalSecondaryIndexUpdates' => [ 'shape' => 'GlobalSecondaryIndexUpdateList', ], 'StreamSpecification' => [ 'shape' => 'StreamSpecification', ], 'SSESpecification' => [ 'shape' => 'SSESpecification', ], ], ], 'UpdateTableOutput' => [ 'type' => 'structure', 'members' => [ 'TableDescription' => [ 'shape' => 'TableDescription', ], ], ], 'UpdateTimeToLiveInput' => [ 'type' => 'structure', 'required' => [ 'TableName', 'TimeToLiveSpecification', ], 'members' => [ 'TableName' => [ 'shape' => 'TableName', ], 'TimeToLiveSpecification' => [ 'shape' => 'TimeToLiveSpecification', ], ], ], 'UpdateTimeToLiveOutput' => [ 'type' => 'structure', 'members' => [ 'TimeToLiveSpecification' => [ 'shape' => 'TimeToLiveSpecification', ], ], ], 'WriteRequest' => [ 'type' => 'structure', 'members' => [ 'PutRequest' => [ 'shape' => 'PutRequest', ], 'DeleteRequest' => [ 'shape' => 'DeleteRequest', ], ], ], 'WriteRequests' => [ 'type' => 'list', 'member' => [ 'shape' => 'WriteRequest', ], 'max' => 25, 'min' => 1, ], ],]; diff --git a/lib/aws/Aws/data/dynamodb/2012-08-10/paginators-1.json.php b/lib/aws/Aws/data/dynamodb/2012-08-10/paginators-1.json.php new file mode 100644 index 0000000..afc6d6a --- /dev/null +++ b/lib/aws/Aws/data/dynamodb/2012-08-10/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/dynamodb/2012-08-10/paginators-1.json +return [ 'pagination' => [ 'BatchGetItem' => [ 'input_token' => 'RequestItems', 'output_token' => 'UnprocessedKeys', ], 'ListTables' => [ 'input_token' => 'ExclusiveStartTableName', 'limit_key' => 'Limit', 'output_token' => 'LastEvaluatedTableName', 'result_key' => 'TableNames', ], 'Query' => [ 'input_token' => 'ExclusiveStartKey', 'limit_key' => 'Limit', 'output_token' => 'LastEvaluatedKey', 'result_key' => 'Items', ], 'Scan' => [ 'input_token' => 'ExclusiveStartKey', 'limit_key' => 'Limit', 'output_token' => 'LastEvaluatedKey', 'result_key' => 'Items', ], ],]; diff --git a/lib/aws/Aws/data/dynamodb/2012-08-10/smoke.json.php b/lib/aws/Aws/data/dynamodb/2012-08-10/smoke.json.php new file mode 100644 index 0000000..9957d03 --- /dev/null +++ b/lib/aws/Aws/data/dynamodb/2012-08-10/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/dynamodb/2012-08-10/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListTables', 'input' => [ 'Limit' => 1, ], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeTable', 'input' => [ 'TableName' => 'fake-table', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/dynamodb/2012-08-10/waiters-1.json.php b/lib/aws/Aws/data/dynamodb/2012-08-10/waiters-1.json.php new file mode 100644 index 0000000..ec329fa --- /dev/null +++ b/lib/aws/Aws/data/dynamodb/2012-08-10/waiters-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/dynamodb/2012-08-10/waiters-1.json +return [ 'waiters' => [ '__default__' => [ 'interval' => 20, 'max_attempts' => 25, ], '__TableState' => [ 'operation' => 'DescribeTable', ], 'TableExists' => [ 'extends' => '__TableState', 'ignore_errors' => [ 'ResourceNotFoundException', ], 'success_type' => 'output', 'success_path' => 'Table.TableStatus', 'success_value' => 'ACTIVE', ], 'TableNotExists' => [ 'extends' => '__TableState', 'success_type' => 'error', 'success_value' => 'ResourceNotFoundException', ], ],]; diff --git a/lib/aws/Aws/data/dynamodb/2012-08-10/waiters-2.json.php b/lib/aws/Aws/data/dynamodb/2012-08-10/waiters-2.json.php new file mode 100644 index 0000000..0bf1801 --- /dev/null +++ b/lib/aws/Aws/data/dynamodb/2012-08-10/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/dynamodb/2012-08-10/waiters-2.json +return [ '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/Aws/data/ec2/2015-10-01/api-2.json.php b/lib/aws/Aws/data/ec2/2015-10-01/api-2.json.php new file mode 100644 index 0000000..a645265 --- /dev/null +++ b/lib/aws/Aws/data/ec2/2015-10-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ec2/2015-10-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'uid' => 'ec2-2015-10-01', 'apiVersion' => '2015-10-01', 'endpointPrefix' => 'ec2', 'protocol' => 'ec2', 'serviceAbbreviation' => 'Amazon EC2', 'serviceFullName' => 'Amazon Elastic Compute Cloud', 'signatureVersion' => 'v4', 'xmlNamespace' => 'http://ec2.amazonaws.com/doc/2015-10-01', ], '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', ], ], 'AllocateHosts' => [ 'name' => 'AllocateHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AllocateHostsRequest', ], 'output' => [ 'shape' => 'AllocateHostsResult', ], ], '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', ], ], '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', ], ], 'CreateNatGateway' => [ 'name' => 'CreateNatGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNatGatewayRequest', ], 'output' => [ 'shape' => 'CreateNatGatewayResult', ], ], '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', ], ], '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', ], ], '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', ], ], 'DeleteNatGateway' => [ 'name' => 'DeleteNatGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNatGatewayRequest', ], 'output' => [ 'shape' => 'DeleteNatGatewayResult', ], ], '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', ], ], 'DescribeHosts' => [ 'name' => 'DescribeHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHostsRequest', ], 'output' => [ 'shape' => 'DescribeHostsResult', ], ], 'DescribeIdFormat' => [ 'name' => 'DescribeIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIdFormatRequest', ], 'output' => [ 'shape' => 'DescribeIdFormatResult', ], ], 'DescribeImageAttribute' => [ 'name' => 'DescribeImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImageAttributeRequest', ], 'output' => [ 'shape' => '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', ], ], 'DescribeNatGateways' => [ 'name' => 'DescribeNatGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNatGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeNatGatewaysResult', ], ], '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', ], ], 'DescribeScheduledInstanceAvailability' => [ 'name' => 'DescribeScheduledInstanceAvailability', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScheduledInstanceAvailabilityRequest', ], 'output' => [ 'shape' => 'DescribeScheduledInstanceAvailabilityResult', ], ], 'DescribeScheduledInstances' => [ 'name' => 'DescribeScheduledInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScheduledInstancesRequest', ], 'output' => [ 'shape' => 'DescribeScheduledInstancesResult', ], ], 'DescribeSecurityGroupReferences' => [ 'name' => 'DescribeSecurityGroupReferences', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSecurityGroupReferencesRequest', ], 'output' => [ 'shape' => 'DescribeSecurityGroupReferencesResult', ], ], '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', ], ], 'DescribeStaleSecurityGroups' => [ 'name' => 'DescribeStaleSecurityGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStaleSecurityGroupsRequest', ], 'output' => [ 'shape' => 'DescribeStaleSecurityGroupsResult', ], ], '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', ], ], 'DescribeVpcClassicLinkDnsSupport' => [ 'name' => 'DescribeVpcClassicLinkDnsSupport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcClassicLinkDnsSupportRequest', ], 'output' => [ 'shape' => 'DescribeVpcClassicLinkDnsSupportResult', ], ], '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', ], ], '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', ], ], 'DisableVpcClassicLinkDnsSupport' => [ 'name' => 'DisableVpcClassicLinkDnsSupport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableVpcClassicLinkDnsSupportRequest', ], 'output' => [ 'shape' => 'DisableVpcClassicLinkDnsSupportResult', ], ], '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', ], ], 'EnableVpcClassicLinkDnsSupport' => [ 'name' => 'EnableVpcClassicLinkDnsSupport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableVpcClassicLinkDnsSupportRequest', ], 'output' => [ 'shape' => 'EnableVpcClassicLinkDnsSupportResult', ], ], 'GetConsoleOutput' => [ 'name' => 'GetConsoleOutput', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetConsoleOutputRequest', ], 'output' => [ 'shape' => 'GetConsoleOutputResult', ], ], 'GetConsoleScreenshot' => [ 'name' => 'GetConsoleScreenshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetConsoleScreenshotRequest', ], 'output' => [ 'shape' => 'GetConsoleScreenshotResult', ], ], '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', ], ], 'ModifyHosts' => [ 'name' => 'ModifyHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyHostsRequest', ], 'output' => [ 'shape' => 'ModifyHostsResult', ], ], 'ModifyIdFormat' => [ 'name' => 'ModifyIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIdFormatRequest', ], ], 'ModifyImageAttribute' => [ 'name' => 'ModifyImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyImageAttributeRequest', ], ], 'ModifyInstanceAttribute' => [ 'name' => 'ModifyInstanceAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceAttributeRequest', ], ], 'ModifyInstancePlacement' => [ 'name' => 'ModifyInstancePlacement', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstancePlacementRequest', ], 'output' => [ 'shape' => 'ModifyInstancePlacementResult', ], ], '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', ], ], 'ModifySpotFleetRequest' => [ 'name' => 'ModifySpotFleetRequest', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifySpotFleetRequestRequest', ], 'output' => [ 'shape' => 'ModifySpotFleetRequestResponse', ], ], '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', ], ], 'ModifyVpcPeeringConnectionOptions' => [ 'name' => 'ModifyVpcPeeringConnectionOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcPeeringConnectionOptionsRequest', ], 'output' => [ 'shape' => 'ModifyVpcPeeringConnectionOptionsResult', ], ], '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', ], ], 'PurchaseScheduledInstances' => [ 'name' => 'PurchaseScheduledInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseScheduledInstancesRequest', ], 'output' => [ 'shape' => 'PurchaseScheduledInstancesResult', ], ], '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', ], ], 'ReleaseHosts' => [ 'name' => 'ReleaseHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReleaseHostsRequest', ], 'output' => [ 'shape' => 'ReleaseHostsResult', ], ], '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', ], ], 'RunScheduledInstances' => [ 'name' => 'RunScheduledInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RunScheduledInstancesRequest', ], 'output' => [ 'shape' => 'RunScheduledInstancesResult', ], ], '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', ], ], 'Affinity' => [ 'type' => 'string', 'enum' => [ 'default', 'host', ], ], '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', ], ], ], 'AllocateHostsRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceType', 'Quantity', 'AvailabilityZone', ], 'members' => [ 'AutoPlacement' => [ 'shape' => 'AutoPlacement', 'locationName' => 'autoPlacement', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'Quantity' => [ 'shape' => 'Integer', 'locationName' => 'quantity', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], ], ], 'AllocateHostsResult' => [ 'type' => 'structure', 'members' => [ 'HostIds' => [ 'shape' => 'ResponseHostIdList', 'locationName' => 'hostIdSet', ], ], ], 'AllocationIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'AllocationId', ], ], 'AllocationState' => [ 'type' => 'string', 'enum' => [ 'available', 'under-assessment', 'permanent-failure', 'released', 'released-permanent-failure', ], ], 'AllocationStrategy' => [ 'type' => 'string', 'enum' => [ 'lowestPrice', 'diversified', ], ], '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', ], ], ], 'AutoPlacement' => [ 'type' => 'string', 'enum' => [ 'on', 'off', ], ], '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', 'information', 'impaired', 'unavailable', ], ], 'AvailableCapacity' => [ 'type' => 'structure', 'members' => [ 'AvailableInstanceCapacity' => [ 'shape' => 'AvailableInstanceCapacityList', 'locationName' => 'availableInstanceCapacity', ], 'AvailableVCpus' => [ 'shape' => 'Integer', 'locationName' => 'availableVCpus', ], ], ], 'AvailableInstanceCapacityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceCapacity', 'locationName' => 'item', ], ], 'BatchState' => [ 'type' => 'string', 'enum' => [ 'submitted', 'active', 'cancelled', 'failed', 'cancelled_running', 'cancelled_terminating', 'modifying', ], ], 'Blob' => [ 'type' => 'blob', ], 'BlobAttributeValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Blob', 'locationName' => 'value', ], ], ], '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', ], ], 'ClassicLinkDnsSupport' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'ClassicLinkDnsSupported' => [ 'shape' => 'Boolean', 'locationName' => 'classicLinkDnsSupported', ], ], ], 'ClassicLinkDnsSupportList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClassicLinkDnsSupport', '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', ], 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], ], ], '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', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], ], ], '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', ], ], ], 'CreateNatGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', 'AllocationId', ], 'members' => [ 'SubnetId' => [ 'shape' => 'String', ], 'AllocationId' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', ], ], ], 'CreateNatGatewayResult' => [ 'type' => 'structure', 'members' => [ 'NatGateway' => [ 'shape' => 'NatGateway', 'locationName' => 'natGateway', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], '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', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], ], ], 'CreateRouteResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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', ], ], ], 'DeleteNatGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'NatGatewayId', ], 'members' => [ 'NatGatewayId' => [ 'shape' => 'String', ], ], ], 'DeleteNatGatewayResult' => [ 'type' => 'structure', 'members' => [ 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], ], ], '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', ], ], ], 'DescribeHostsRequest' => [ 'type' => 'structure', 'members' => [ 'HostIds' => [ 'shape' => 'RequestHostIdList', 'locationName' => 'hostId', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'Filter' => [ 'shape' => 'FilterList', 'locationName' => 'filter', ], ], ], 'DescribeHostsResult' => [ 'type' => 'structure', 'members' => [ 'Hosts' => [ 'shape' => 'HostList', 'locationName' => 'hostSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeIdFormatRequest' => [ 'type' => 'structure', 'members' => [ 'Resource' => [ 'shape' => 'String', ], ], ], 'DescribeIdFormatResult' => [ 'type' => 'structure', 'members' => [ 'Statuses' => [ 'shape' => 'IdFormatList', 'locationName' => 'statusSet', ], ], ], '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', ], ], ], 'DescribeNatGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'NatGatewayIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'NatGatewayId', ], 'Filter' => [ 'shape' => 'FilterList', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeNatGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'NatGateways' => [ 'shape' => 'NatGatewayList', 'locationName' => 'natGatewaySet', ], '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', ], ], ], 'DescribeScheduledInstanceAvailabilityRequest' => [ 'type' => 'structure', 'required' => [ 'Recurrence', 'FirstSlotStartTimeRange', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Recurrence' => [ 'shape' => 'ScheduledInstanceRecurrenceRequest', ], 'FirstSlotStartTimeRange' => [ 'shape' => 'SlotDateTimeRangeRequest', ], 'MinSlotDurationInHours' => [ 'shape' => 'Integer', ], 'MaxSlotDurationInHours' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeScheduledInstanceAvailabilityResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ScheduledInstanceAvailabilitySet' => [ 'shape' => 'ScheduledInstanceAvailabilitySet', 'locationName' => 'scheduledInstanceAvailabilitySet', ], ], ], 'DescribeScheduledInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ScheduledInstanceIds' => [ 'shape' => 'ScheduledInstanceIdRequestSet', 'locationName' => 'ScheduledInstanceId', ], 'SlotStartTimeRange' => [ 'shape' => 'SlotStartTimeRangeRequest', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeScheduledInstancesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ScheduledInstanceSet' => [ 'shape' => 'ScheduledInstanceSet', 'locationName' => 'scheduledInstanceSet', ], ], ], 'DescribeSecurityGroupReferencesRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'GroupId' => [ 'shape' => 'GroupIds', ], ], ], 'DescribeSecurityGroupReferencesResult' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupReferenceSet' => [ 'shape' => 'SecurityGroupReferences', 'locationName' => 'securityGroupReferenceSet', ], ], ], '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', ], ], ], 'DescribeStaleSecurityGroupsRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcId' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeStaleSecurityGroupsResult' => [ 'type' => 'structure', 'members' => [ 'StaleSecurityGroupSet' => [ 'shape' => 'StaleSecurityGroupSet', 'locationName' => 'staleSecurityGroupSet', ], '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', 'Attribute', ], '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', ], ], ], 'DescribeVpcClassicLinkDnsSupportRequest' => [ 'type' => 'structure', 'members' => [ 'VpcIds' => [ 'shape' => 'VpcClassicLinkIdList', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcClassicLinkDnsSupportResult' => [ 'type' => 'structure', 'members' => [ 'Vpcs' => [ 'shape' => 'ClassicLinkDnsSupportList', 'locationName' => 'vpcs', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], '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', ], ], 'DhcpConfigurationValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeValue', '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', ], ], ], 'DisableVpcClassicLinkDnsSupportRequest' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'String', ], ], ], 'DisableVpcClassicLinkDnsSupportResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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', ], ], ], 'EnableVpcClassicLinkDnsSupportRequest' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'String', ], ], ], 'EnableVpcClassicLinkDnsSupportResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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', ], ], 'ExcessCapacityTerminationPolicy' => [ 'type' => 'string', 'enum' => [ 'noTermination', 'default', ], ], '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', ], ], 'FleetType' => [ 'type' => 'string', 'enum' => [ 'request', 'maintain', ], ], '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', ], ], ], 'GetConsoleScreenshotRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'String', ], 'WakeUp' => [ 'shape' => 'Boolean', ], ], ], 'GetConsoleScreenshotResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'ImageData' => [ 'shape' => 'String', 'locationName' => 'imageData', ], ], ], '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', ], ], 'GroupIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', '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', ], ], 'Host' => [ 'type' => 'structure', 'members' => [ 'HostId' => [ 'shape' => 'String', 'locationName' => 'hostId', ], 'AutoPlacement' => [ 'shape' => 'AutoPlacement', 'locationName' => 'autoPlacement', ], 'HostReservationId' => [ 'shape' => 'String', 'locationName' => 'hostReservationId', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'HostProperties' => [ 'shape' => 'HostProperties', 'locationName' => 'hostProperties', ], 'State' => [ 'shape' => 'AllocationState', 'locationName' => 'state', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Instances' => [ 'shape' => 'HostInstanceList', 'locationName' => 'instances', ], 'AvailableCapacity' => [ 'shape' => 'AvailableCapacity', 'locationName' => 'availableCapacity', ], ], ], 'HostInstance' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], ], ], 'HostInstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostInstance', 'locationName' => 'item', ], ], 'HostList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Host', 'locationName' => 'item', ], ], 'HostProperties' => [ 'type' => 'structure', 'members' => [ 'Sockets' => [ 'shape' => 'Integer', 'locationName' => 'sockets', ], 'Cores' => [ 'shape' => 'Integer', 'locationName' => 'cores', ], 'TotalVCpus' => [ 'shape' => 'Integer', 'locationName' => 'totalVCpus', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], ], ], 'HostTenancy' => [ 'type' => 'string', 'enum' => [ 'dedicated', 'host', ], ], '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', ], ], ], 'IdFormat' => [ 'type' => 'structure', 'members' => [ 'Resource' => [ 'shape' => 'String', 'locationName' => 'resource', ], 'UseLongIds' => [ 'shape' => 'Boolean', 'locationName' => 'useLongIds', ], 'Deadline' => [ 'shape' => 'DateTime', 'locationName' => 'deadline', ], ], ], 'IdFormatList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IdFormat', 'locationName' => 'item', ], ], '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', ], ], 'InstanceCapacity' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'AvailableCapacity' => [ 'shape' => 'Integer', 'locationName' => 'availableCapacity', ], 'TotalCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalCapacity', ], ], ], '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', ], ], ], 'InstanceIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'InstanceIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'InstanceId', ], ], 'InstanceLifecycleType' => [ 'type' => 'string', 'enum' => [ 'spot', 'scheduled', ], ], '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.nano', 't2.micro', 't2.small', 't2.medium', 't2.large', 'm2.xlarge', 'm2.2xlarge', 'm2.4xlarge', 'cr1.8xlarge', 'x1.4xlarge', 'x1.8xlarge', 'x1.16xlarge', 'x1.32xlarge', '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', 'g2.8xlarge', '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', ], ], 'IpRanges' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', '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' => 'SpotFleetLaunchSpecification', 'locationName' => 'item', ], 'min' => 1, ], 'ListingState' => [ 'type' => 'string', 'enum' => [ 'available', 'sold', 'cancelled', 'pending', ], ], 'ListingStatus' => [ 'type' => 'string', 'enum' => [ 'active', 'pending', 'cancelled', 'closed', ], ], 'Long' => [ 'type' => 'long', ], 'MaxResults' => [ 'type' => 'integer', 'max' => 255, 'min' => 5, ], 'ModifyHostsRequest' => [ 'type' => 'structure', 'required' => [ 'HostIds', 'AutoPlacement', ], 'members' => [ 'HostIds' => [ 'shape' => 'RequestHostIdList', 'locationName' => 'hostId', ], 'AutoPlacement' => [ 'shape' => 'AutoPlacement', 'locationName' => 'autoPlacement', ], ], ], 'ModifyHostsResult' => [ 'type' => 'structure', 'members' => [ 'Successful' => [ 'shape' => 'ResponseHostIdList', 'locationName' => 'successful', ], 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemList', 'locationName' => 'unsuccessful', ], ], ], 'ModifyIdFormatRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'UseLongIds', ], 'members' => [ 'Resource' => [ 'shape' => 'String', ], 'UseLongIds' => [ 'shape' => 'Boolean', ], ], ], 'ModifyImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'ImageId' => [ 'shape' => 'String', ], 'Attribute' => [ 'shape' => 'String', ], 'OperationType' => [ 'shape' => 'OperationType', ], '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', ], ], ], 'ModifyInstancePlacementRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Tenancy' => [ 'shape' => 'HostTenancy', 'locationName' => 'tenancy', ], 'Affinity' => [ 'shape' => 'Affinity', 'locationName' => 'affinity', ], 'HostId' => [ 'shape' => 'String', 'locationName' => 'hostId', ], ], ], 'ModifyInstancePlacementResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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' => 'OperationType', ], 'UserIds' => [ 'shape' => 'UserIdStringList', 'locationName' => 'UserId', ], 'GroupNames' => [ 'shape' => 'GroupNameStringList', 'locationName' => 'UserGroup', ], 'CreateVolumePermission' => [ 'shape' => 'CreateVolumePermissionModifications', ], ], ], 'ModifySpotFleetRequestRequest' => [ 'type' => 'structure', 'required' => [ 'SpotFleetRequestId', ], 'members' => [ 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], 'TargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'targetCapacity', ], 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'ExcessCapacityTerminationPolicy', 'locationName' => 'excessCapacityTerminationPolicy', ], ], ], 'ModifySpotFleetRequestResponse' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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', ], ], ], 'ModifyVpcPeeringConnectionOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'VpcPeeringConnectionId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', ], 'RequesterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptionsRequest', ], 'AccepterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptionsRequest', ], ], ], 'ModifyVpcPeeringConnectionOptionsResult' => [ 'type' => 'structure', 'members' => [ 'RequesterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptions', 'locationName' => 'requesterPeeringConnectionOptions', ], 'AccepterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptions', 'locationName' => 'accepterPeeringConnectionOptions', ], ], ], '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', ], ], 'NatGateway' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'DeleteTime' => [ 'shape' => 'DateTime', 'locationName' => 'deleteTime', ], 'NatGatewayAddresses' => [ 'shape' => 'NatGatewayAddressList', 'locationName' => 'natGatewayAddressSet', ], 'State' => [ 'shape' => 'NatGatewayState', 'locationName' => 'state', ], 'FailureCode' => [ 'shape' => 'String', 'locationName' => 'failureCode', ], 'FailureMessage' => [ 'shape' => 'String', 'locationName' => 'failureMessage', ], 'ProvisionedBandwidth' => [ 'shape' => 'ProvisionedBandwidth', 'locationName' => 'provisionedBandwidth', ], ], ], 'NatGatewayAddress' => [ 'type' => 'structure', 'members' => [ 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], 'AllocationId' => [ 'shape' => 'String', 'locationName' => 'allocationId', ], 'PrivateIp' => [ 'shape' => 'String', 'locationName' => 'privateIp', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], ], ], 'NatGatewayAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NatGatewayAddress', 'locationName' => 'item', ], ], 'NatGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NatGateway', 'locationName' => 'item', ], ], 'NatGatewayState' => [ 'type' => 'string', 'enum' => [ 'pending', 'failed', 'available', 'deleting', 'deleted', ], ], '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', ], 'InterfaceType' => [ 'shape' => 'NetworkInterfaceType', 'locationName' => 'interfaceType', ], ], ], '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', ], ], 'NetworkInterfaceType' => [ 'type' => 'string', 'enum' => [ 'interface', 'natGateway', ], ], 'NewDhcpConfiguration' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', 'locationName' => 'key', ], 'Values' => [ 'shape' => 'ValueStringList', 'locationName' => 'Value', ], ], ], 'NewDhcpConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NewDhcpConfiguration', 'locationName' => 'item', ], ], 'NextToken' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'OccurrenceDayRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Integer', 'locationName' => 'OccurenceDay', ], ], 'OccurrenceDaySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Integer', 'locationName' => 'item', ], ], 'OfferingTypeValues' => [ 'type' => 'string', 'enum' => [ 'Heavy Utilization', 'Medium Utilization', 'Light Utilization', 'No Upfront', 'Partial Upfront', 'All Upfront', ], ], 'OperationType' => [ 'type' => 'string', 'enum' => [ 'add', 'remove', ], ], 'OwnerStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'Owner', ], ], 'PeeringConnectionOptions' => [ 'type' => 'structure', 'members' => [ 'AllowEgressFromLocalClassicLinkToRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalClassicLinkToRemoteVpc', ], 'AllowEgressFromLocalVpcToRemoteClassicLink' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalVpcToRemoteClassicLink', ], ], ], 'PeeringConnectionOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'AllowEgressFromLocalClassicLinkToRemoteVpc', 'AllowEgressFromLocalVpcToRemoteClassicLink', ], 'members' => [ 'AllowEgressFromLocalClassicLinkToRemoteVpc' => [ 'shape' => 'Boolean', ], 'AllowEgressFromLocalVpcToRemoteClassicLink' => [ 'shape' => 'Boolean', ], ], ], 'PermissionGroup' => [ 'type' => 'string', 'enum' => [ 'all', ], ], 'Placement' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'Tenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'tenancy', ], 'HostId' => [ 'shape' => 'String', 'locationName' => 'hostId', ], 'Affinity' => [ 'shape' => 'String', 'locationName' => 'affinity', ], ], ], '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', ], ], 'PrefixListIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', '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', ], ], 'PrivateIpAddressConfigSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesPrivateIpAddressConfig', 'locationName' => 'PrivateIpAddressConfigSet', ], ], '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', ], ], 'ProvisionedBandwidth' => [ 'type' => 'structure', 'members' => [ 'Provisioned' => [ 'shape' => 'String', 'locationName' => 'provisioned', ], 'Requested' => [ 'shape' => 'String', 'locationName' => 'requested', ], 'RequestTime' => [ 'shape' => 'DateTime', 'locationName' => 'requestTime', ], 'ProvisionTime' => [ 'shape' => 'DateTime', 'locationName' => 'provisionTime', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], ], ], 'PublicIpStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'PublicIp', ], ], 'PurchaseRequest' => [ 'type' => 'structure', 'required' => [ 'PurchaseToken', 'InstanceCount', ], 'members' => [ 'PurchaseToken' => [ 'shape' => 'String', ], 'InstanceCount' => [ 'shape' => 'Integer', ], ], ], 'PurchaseRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PurchaseRequest', 'locationName' => 'PurchaseRequest', ], 'min' => 1, ], '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', ], ], ], 'PurchaseScheduledInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'PurchaseRequests', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'PurchaseRequests' => [ 'shape' => 'PurchaseRequestSet', 'locationName' => 'PurchaseRequest', ], ], ], 'PurchaseScheduledInstancesResult' => [ 'type' => 'structure', 'members' => [ 'ScheduledInstanceSet' => [ 'shape' => 'PurchasedScheduledInstanceSet', 'locationName' => 'scheduledInstanceSet', ], ], ], 'PurchasedScheduledInstanceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstance', 'locationName' => 'item', ], ], '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', ], ], ], 'ReleaseHostsRequest' => [ 'type' => 'structure', 'required' => [ 'HostIds', ], 'members' => [ 'HostIds' => [ 'shape' => 'RequestHostIdList', 'locationName' => 'hostId', ], ], ], 'ReleaseHostsResult' => [ 'type' => 'structure', 'members' => [ 'Successful' => [ 'shape' => 'ResponseHostIdList', 'locationName' => 'successful', ], 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemList', 'locationName' => 'unsuccessful', ], ], ], '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', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], ], ], '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', ], ], 'RequestHostIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], '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', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', 'locationName' => 'blockDurationMinutes', ], 'LaunchSpecification' => [ 'shape' => 'RequestSpotLaunchSpecification', ], ], ], 'RequestSpotInstancesResult' => [ 'type' => 'structure', 'members' => [ 'SpotInstanceRequests' => [ 'shape' => 'SpotInstanceRequestList', 'locationName' => 'spotInstanceRequestSet', ], ], ], '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', ], ], ], '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', ], ], 'ResponseHostIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], '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', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], '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', ], ], ], 'RunScheduledInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'ScheduledInstanceId', 'LaunchSpecification', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'InstanceCount' => [ 'shape' => 'Integer', ], 'ScheduledInstanceId' => [ 'shape' => 'String', ], 'LaunchSpecification' => [ 'shape' => 'ScheduledInstancesLaunchSpecification', ], ], ], 'RunScheduledInstancesResult' => [ 'type' => 'structure', 'members' => [ 'InstanceIdSet' => [ 'shape' => 'InstanceIdSet', 'locationName' => 'instanceIdSet', ], ], ], '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', ], ], ], 'ScheduledInstance' => [ 'type' => 'structure', 'members' => [ 'ScheduledInstanceId' => [ 'shape' => 'String', 'locationName' => 'scheduledInstanceId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'NetworkPlatform' => [ 'shape' => 'String', 'locationName' => 'networkPlatform', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'SlotDurationInHours' => [ 'shape' => 'Integer', 'locationName' => 'slotDurationInHours', ], 'Recurrence' => [ 'shape' => 'ScheduledInstanceRecurrence', 'locationName' => 'recurrence', ], 'PreviousSlotEndTime' => [ 'shape' => 'DateTime', 'locationName' => 'previousSlotEndTime', ], 'NextSlotStartTime' => [ 'shape' => 'DateTime', 'locationName' => 'nextSlotStartTime', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'TotalScheduledInstanceHours' => [ 'shape' => 'Integer', 'locationName' => 'totalScheduledInstanceHours', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'TermStartDate' => [ 'shape' => 'DateTime', 'locationName' => 'termStartDate', ], 'TermEndDate' => [ 'shape' => 'DateTime', 'locationName' => 'termEndDate', ], 'CreateDate' => [ 'shape' => 'DateTime', 'locationName' => 'createDate', ], ], ], 'ScheduledInstanceAvailability' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'NetworkPlatform' => [ 'shape' => 'String', 'locationName' => 'networkPlatform', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'PurchaseToken' => [ 'shape' => 'String', 'locationName' => 'purchaseToken', ], 'SlotDurationInHours' => [ 'shape' => 'Integer', 'locationName' => 'slotDurationInHours', ], 'Recurrence' => [ 'shape' => 'ScheduledInstanceRecurrence', 'locationName' => 'recurrence', ], 'FirstSlotStartTime' => [ 'shape' => 'DateTime', 'locationName' => 'firstSlotStartTime', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'TotalScheduledInstanceHours' => [ 'shape' => 'Integer', 'locationName' => 'totalScheduledInstanceHours', ], 'AvailableInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'availableInstanceCount', ], 'MinTermDurationInDays' => [ 'shape' => 'Integer', 'locationName' => 'minTermDurationInDays', ], 'MaxTermDurationInDays' => [ 'shape' => 'Integer', 'locationName' => 'maxTermDurationInDays', ], ], ], 'ScheduledInstanceAvailabilitySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstanceAvailability', 'locationName' => 'item', ], ], 'ScheduledInstanceIdRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ScheduledInstanceId', ], ], 'ScheduledInstanceRecurrence' => [ 'type' => 'structure', 'members' => [ 'Frequency' => [ 'shape' => 'String', 'locationName' => 'frequency', ], 'Interval' => [ 'shape' => 'Integer', 'locationName' => 'interval', ], 'OccurrenceDaySet' => [ 'shape' => 'OccurrenceDaySet', 'locationName' => 'occurrenceDaySet', ], 'OccurrenceRelativeToEnd' => [ 'shape' => 'Boolean', 'locationName' => 'occurrenceRelativeToEnd', ], 'OccurrenceUnit' => [ 'shape' => 'String', 'locationName' => 'occurrenceUnit', ], ], ], 'ScheduledInstanceRecurrenceRequest' => [ 'type' => 'structure', 'members' => [ 'Frequency' => [ 'shape' => 'String', ], 'Interval' => [ 'shape' => 'Integer', ], 'OccurrenceDays' => [ 'shape' => 'OccurrenceDayRequestSet', 'locationName' => 'OccurrenceDay', ], 'OccurrenceRelativeToEnd' => [ 'shape' => 'Boolean', ], 'OccurrenceUnit' => [ 'shape' => 'String', ], ], ], 'ScheduledInstanceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstance', 'locationName' => 'item', ], ], 'ScheduledInstancesBlockDeviceMapping' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', ], 'NoDevice' => [ 'shape' => 'String', ], 'VirtualName' => [ 'shape' => 'String', ], 'Ebs' => [ 'shape' => 'ScheduledInstancesEbs', ], ], ], 'ScheduledInstancesBlockDeviceMappingSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesBlockDeviceMapping', 'locationName' => 'BlockDeviceMapping', ], ], 'ScheduledInstancesEbs' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', ], 'VolumeSize' => [ 'shape' => 'Integer', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'VolumeType' => [ 'shape' => 'String', ], 'Iops' => [ 'shape' => 'Integer', ], 'Encrypted' => [ 'shape' => 'Boolean', ], ], ], 'ScheduledInstancesIamInstanceProfile' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesLaunchSpecification' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'String', ], 'KeyName' => [ 'shape' => 'String', ], 'SecurityGroupIds' => [ 'shape' => 'ScheduledInstancesSecurityGroupIdSet', 'locationName' => 'SecurityGroupId', ], 'UserData' => [ 'shape' => 'String', ], 'Placement' => [ 'shape' => 'ScheduledInstancesPlacement', ], 'KernelId' => [ 'shape' => 'String', ], 'InstanceType' => [ 'shape' => 'String', ], 'RamdiskId' => [ 'shape' => 'String', ], 'BlockDeviceMappings' => [ 'shape' => 'ScheduledInstancesBlockDeviceMappingSet', 'locationName' => 'BlockDeviceMapping', ], 'Monitoring' => [ 'shape' => 'ScheduledInstancesMonitoring', ], 'SubnetId' => [ 'shape' => 'String', ], 'NetworkInterfaces' => [ 'shape' => 'ScheduledInstancesNetworkInterfaceSet', 'locationName' => 'NetworkInterface', ], 'IamInstanceProfile' => [ 'shape' => 'ScheduledInstancesIamInstanceProfile', ], 'EbsOptimized' => [ 'shape' => 'Boolean', ], ], ], 'ScheduledInstancesMonitoring' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], ], ], 'ScheduledInstancesNetworkInterface' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'String', ], 'DeviceIndex' => [ 'shape' => 'Integer', ], 'SubnetId' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'PrivateIpAddress' => [ 'shape' => 'String', ], 'PrivateIpAddressConfigs' => [ 'shape' => 'PrivateIpAddressConfigSet', 'locationName' => 'PrivateIpAddressConfig', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', ], 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', ], 'Groups' => [ 'shape' => 'ScheduledInstancesSecurityGroupIdSet', 'locationName' => 'Group', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], ], ], 'ScheduledInstancesNetworkInterfaceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesNetworkInterface', 'locationName' => 'NetworkInterface', ], ], 'ScheduledInstancesPlacement' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', ], 'GroupName' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesPrivateIpAddressConfig' => [ 'type' => 'structure', 'members' => [ 'PrivateIpAddress' => [ 'shape' => 'String', ], 'Primary' => [ 'shape' => 'Boolean', ], ], ], 'ScheduledInstancesSecurityGroupIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'SecurityGroupId', ], ], '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', ], ], 'SecurityGroupReference' => [ 'type' => 'structure', 'required' => [ 'GroupId', 'ReferencingVpcId', ], 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'ReferencingVpcId' => [ 'shape' => 'String', 'locationName' => 'referencingVpcId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], ], ], 'SecurityGroupReferences' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupReference', 'locationName' => 'item', ], ], 'SecurityGroupStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'SecurityGroup', ], ], 'ShutdownBehavior' => [ 'type' => 'string', 'enum' => [ 'stop', 'terminate', ], ], 'SlotDateTimeRangeRequest' => [ 'type' => 'structure', 'required' => [ 'EarliestTime', 'LatestTime', ], 'members' => [ 'EarliestTime' => [ 'shape' => 'DateTime', ], 'LatestTime' => [ 'shape' => 'DateTime', ], ], ], 'SlotStartTimeRangeRequest' => [ 'type' => 'structure', 'members' => [ 'EarliestTime' => [ 'shape' => 'DateTime', ], 'LatestTime' => [ 'shape' => 'DateTime', ], ], ], 'Snapshot' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'State' => [ 'shape' => 'SnapshotState', 'locationName' => 'status', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], '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', ], 'DataEncryptionKeyId' => [ 'shape' => 'String', 'locationName' => 'dataEncryptionKeyId', ], ], ], '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', ], ], ], 'SpotFleetLaunchSpecification' => [ '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', ], 'Monitoring' => [ 'shape' => 'SpotFleetMonitoring', 'locationName' => 'monitoring', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'NetworkInterfaces' => [ 'shape' => 'InstanceNetworkInterfaceSpecificationList', 'locationName' => 'networkInterfaceSet', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', 'locationName' => 'iamInstanceProfile', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'WeightedCapacity' => [ 'shape' => 'Double', 'locationName' => 'weightedCapacity', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], ], ], 'SpotFleetMonitoring' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], ], ], 'SpotFleetRequestConfig' => [ 'type' => 'structure', 'required' => [ 'SpotFleetRequestId', 'SpotFleetRequestState', 'SpotFleetRequestConfig', 'CreateTime', ], 'members' => [ 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], 'SpotFleetRequestState' => [ 'shape' => 'BatchState', 'locationName' => 'spotFleetRequestState', ], 'SpotFleetRequestConfig' => [ 'shape' => 'SpotFleetRequestConfigData', 'locationName' => 'spotFleetRequestConfig', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], ], ], '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', ], 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'ExcessCapacityTerminationPolicy', 'locationName' => 'excessCapacityTerminationPolicy', ], 'AllocationStrategy' => [ 'shape' => 'AllocationStrategy', 'locationName' => 'allocationStrategy', ], 'FulfilledCapacity' => [ 'shape' => 'Double', 'locationName' => 'fulfilledCapacity', ], 'Type' => [ 'shape' => 'FleetType', 'locationName' => 'type', ], ], ], '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', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', 'locationName' => 'blockDurationMinutes', ], 'ActualBlockHourlyPrice' => [ 'shape' => 'String', 'locationName' => 'actualBlockHourlyPrice', ], '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', ], ], 'StaleIpPermission' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'IpProtocol' => [ 'shape' => 'String', 'locationName' => 'ipProtocol', ], 'IpRanges' => [ 'shape' => 'IpRanges', 'locationName' => 'ipRanges', ], 'PrefixListIds' => [ 'shape' => 'PrefixListIdSet', 'locationName' => 'prefixListIds', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], 'UserIdGroupPairs' => [ 'shape' => 'UserIdGroupPairSet', 'locationName' => 'groups', ], ], ], 'StaleIpPermissionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'StaleIpPermission', 'locationName' => 'item', ], ], 'StaleSecurityGroup' => [ 'type' => 'structure', 'required' => [ 'GroupId', ], 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'StaleIpPermissions' => [ 'shape' => 'StaleIpPermissionSet', 'locationName' => 'staleIpPermissions', ], 'StaleIpPermissionsEgress' => [ 'shape' => 'StaleIpPermissionSet', 'locationName' => 'staleIpPermissionsEgress', ], ], ], 'StaleSecurityGroupSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'StaleSecurityGroup', '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', 'host', ], ], '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' => [ 'Error' => [ 'shape' => 'UnsuccessfulItemError', 'locationName' => 'error', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], ], ], 'UnsuccessfulItemError' => [ 'type' => 'structure', 'required' => [ 'Code', 'Message', ], 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'UnsuccessfulItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UnsuccessfulItem', 'locationName' => 'item', ], ], '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', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], 'PeeringStatus' => [ 'shape' => 'String', 'locationName' => 'peeringStatus', ], ], ], 'UserIdGroupPairList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserIdGroupPair', 'locationName' => 'item', ], ], 'UserIdGroupPairSet' => [ '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', 'sc1', 'st1', ], ], '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', ], ], 'VpcPeeringConnectionOptionsDescription' => [ 'type' => 'structure', 'members' => [ 'AllowEgressFromLocalClassicLinkToRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalClassicLinkToRemoteVpc', ], 'AllowEgressFromLocalVpcToRemoteClassicLink' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalVpcToRemoteClassicLink', ], ], ], 'VpcPeeringConnectionStateReason' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'VpcPeeringConnectionStateReasonCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'VpcPeeringConnectionStateReasonCode' => [ 'type' => 'string', 'enum' => [ 'initiating-request', 'pending-acceptance', 'active', 'deleted', 'rejected', 'failed', 'expired', 'provisioning', 'deleting', ], ], 'VpcPeeringConnectionVpcInfo' => [ 'type' => 'structure', 'members' => [ 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'PeeringOptions' => [ 'shape' => 'VpcPeeringConnectionOptionsDescription', 'locationName' => 'peeringOptions', ], ], ], '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', ], ], ],]; diff --git a/lib/aws/Aws/data/ec2/2015-10-01/paginators-1.json.php b/lib/aws/Aws/data/ec2/2015-10-01/paginators-1.json.php new file mode 100644 index 0000000..b605ae2 --- /dev/null +++ b/lib/aws/Aws/data/ec2/2015-10-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ec2/2015-10-01/paginators-1.json +return [ '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', 'limit_key' => 'MaxResults', 'result_key' => 'Snapshots', ], 'DescribeSpotInstanceRequests' => [ 'result_key' => 'SpotInstanceRequests', ], 'DescribeSpotFleetRequests' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', 'result_key' => 'SpotFleetRequestConfigs', ], 'DescribeSpotPriceHistory' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', 'result_key' => 'SpotPriceHistory', ], 'DescribeSubnets' => [ 'result_key' => 'Subnets', ], 'DescribeTags' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', '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', ], 'DescribeVpcPeeringConnections' => [ 'result_key' => 'VpcPeeringConnections', ], 'DescribeVpnConnections' => [ 'result_key' => 'VpnConnections', ], 'DescribeVpnGateways' => [ 'result_key' => 'VpnGateways', ], ],]; diff --git a/lib/aws/Aws/data/ec2/2015-10-01/waiters-1.json.php b/lib/aws/Aws/data/ec2/2015-10-01/waiters-1.json.php new file mode 100644 index 0000000..3dccee6 --- /dev/null +++ b/lib/aws/Aws/data/ec2/2015-10-01/waiters-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ec2/2015-10-01/waiters-1.json +return [ 'waiters' => [ '__default__' => [ 'interval' => 15, 'max_attempts' => 40, 'acceptor_type' => 'output', ], '__InstanceState' => [ 'operation' => 'DescribeInstances', 'acceptor_path' => 'Reservations[].Instances[].State.Name', ], '__InstanceStatus' => [ 'operation' => 'DescribeInstanceStatus', 'success_value' => 'ok', ], 'SystemStatusOk' => [ 'extends' => '__InstanceStatus', 'acceptor_path' => 'InstanceStatuses[].SystemStatus.Status', ], 'InstanceStatusOk' => [ 'extends' => '__InstanceStatus', 'acceptor_path' => 'InstanceStatuses[].InstanceStatus.Status', ], 'ImageAvailable' => [ 'operation' => 'DescribeImages', 'acceptor_path' => 'Images[].State', 'success_value' => 'available', 'failure_value' => [ 'failed', ], ], 'InstanceRunning' => [ 'extends' => '__InstanceState', 'success_value' => 'running', 'failure_value' => [ 'shutting-down', 'terminated', 'stopping', ], ], 'InstanceStopped' => [ 'extends' => '__InstanceState', 'success_value' => 'stopped', 'failure_value' => [ 'pending', 'terminated', ], ], 'InstanceTerminated' => [ 'extends' => '__InstanceState', 'success_value' => 'terminated', 'failure_value' => [ 'pending', 'stopping', ], ], '__ExportTaskState' => [ 'operation' => 'DescribeExportTasks', 'acceptor_path' => 'ExportTasks[].State', ], 'ExportTaskCompleted' => [ 'extends' => '__ExportTaskState', 'success_value' => 'completed', ], 'ExportTaskCancelled' => [ 'extends' => '__ExportTaskState', 'success_value' => 'cancelled', ], 'SnapshotCompleted' => [ 'operation' => 'DescribeSnapshots', 'success_path' => 'Snapshots[].State', 'success_value' => 'completed', ], 'SubnetAvailable' => [ 'operation' => 'DescribeSubnets', 'success_path' => 'Subnets[].State', 'success_value' => 'available', ], '__VolumeStatus' => [ 'operation' => 'DescribeVolumes', 'acceptor_path' => 'Volumes[].State', ], 'VolumeAvailable' => [ 'extends' => '__VolumeStatus', 'success_value' => 'available', 'failure_value' => [ 'deleted', ], ], 'VolumeInUse' => [ 'extends' => '__VolumeStatus', 'success_value' => 'in-use', 'failure_value' => [ 'deleted', ], ], 'VolumeDeleted' => [ 'extends' => '__VolumeStatus', 'success_type' => 'error', 'success_value' => 'InvalidVolume.NotFound', ], 'VpcAvailable' => [ 'operation' => 'DescribeVpcs', 'success_path' => 'Vpcs[].State', 'success_value' => 'available', ], '__VpnConnectionState' => [ 'operation' => 'DescribeVpnConnections', 'acceptor_path' => 'VpnConnections[].State', ], 'VpnConnectionAvailable' => [ 'extends' => '__VpnConnectionState', 'success_value' => 'available', 'failure_value' => [ 'deleting', 'deleted', ], ], 'VpnConnectionDeleted' => [ 'extends' => '__VpnConnectionState', 'success_value' => 'deleted', 'failure_value' => [ 'pending', ], ], 'BundleTaskComplete' => [ 'operation' => 'DescribeBundleTasks', 'acceptor_path' => 'BundleTasks[].State', 'success_value' => 'complete', 'failure_value' => [ 'failed', ], ], '__ConversionTaskState' => [ 'operation' => 'DescribeConversionTasks', 'acceptor_path' => 'ConversionTasks[].State', ], 'ConversionTaskCompleted' => [ 'extends' => '__ConversionTaskState', 'success_value' => 'completed', 'failure_value' => [ 'cancelled', 'cancelling', ], ], 'ConversionTaskCancelled' => [ 'extends' => '__ConversionTaskState', 'success_value' => 'cancelled', ], '__CustomerGatewayState' => [ 'operation' => 'DescribeCustomerGateways', 'acceptor_path' => 'CustomerGateways[].State', ], 'CustomerGatewayAvailable' => [ 'extends' => '__CustomerGatewayState', 'success_value' => 'available', 'failure_value' => [ 'deleted', 'deleting', ], ], 'ConversionTaskDeleted' => [ 'extends' => '__CustomerGatewayState', 'success_value' => 'deleted', ], '__SpotInstanceRequestState' => [ 'operation' => 'DescribeSpotInstanceRequests', 'acceptor_path' => 'SpotInstanceRequests[].Status.Code', ], 'SpotInstanceRequestFulfilled' => [ 'extends' => '__SpotInstanceRequestState', 'success_value' => 'fulfilled', 'failure_value' => [ 'schedule-expired', 'canceled-before-fulfillment', 'bad-parameters', 'system-error', ], ], ],]; diff --git a/lib/aws/Aws/data/ec2/2015-10-01/waiters-2.json.php b/lib/aws/Aws/data/ec2/2015-10-01/waiters-2.json.php new file mode 100644 index 0000000..45deded --- /dev/null +++ b/lib/aws/Aws/data/ec2/2015-10-01/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ec2/2015-10-01/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'InstanceExists' => [ 'delay' => 5, 'maxAttempts' => 40, 'operation' => 'DescribeInstances', 'acceptors' => [ [ 'matcher' => 'path', 'expected' => true, 'argument' => 'length(Reservations[]) > `0`', 'state' => 'success', ], [ 'matcher' => 'error', 'expected' => 'InvalidInstanceID.NotFound', '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', ], ], ], 'ImageExists' => [ 'operation' => 'DescribeImages', 'maxAttempts' => 40, 'delay' => 15, 'acceptors' => [ [ 'matcher' => 'path', 'expected' => true, 'argument' => 'length(Images[]) > `0`', 'state' => 'success', ], [ 'matcher' => 'error', 'expected' => 'InvalidAMIID.NotFound', 'state' => 'retry', ], ], ], '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', ], [ 'matcher' => 'error', 'expected' => 'InvalidInstanceID.NotFound', 'state' => 'retry', ], ], ], 'InstanceStatusOk' => [ 'operation' => 'DescribeInstanceStatus', 'maxAttempts' => 40, 'delay' => 15, 'acceptors' => [ [ 'state' => 'success', 'matcher' => 'pathAll', 'argument' => 'InstanceStatuses[].InstanceStatus.Status', 'expected' => 'ok', ], [ 'matcher' => 'error', 'expected' => 'InvalidInstanceID.NotFound', 'state' => 'retry', ], ], ], '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' => 'InvalidKeyPair.NotFound', 'matcher' => 'error', 'state' => 'retry', ], ], ], 'NatGatewayAvailable' => [ 'operation' => 'DescribeNatGateways', 'delay' => 15, 'maxAttempts' => 40, 'acceptors' => [ [ 'state' => 'success', 'matcher' => 'pathAll', 'argument' => 'NatGateways[].State', 'expected' => 'available', ], [ 'state' => 'failure', 'matcher' => 'pathAny', 'argument' => 'NatGateways[].State', 'expected' => 'failed', ], [ 'state' => 'failure', 'matcher' => 'pathAny', 'argument' => 'NatGateways[].State', 'expected' => 'deleting', ], [ 'state' => 'failure', 'matcher' => 'pathAny', 'argument' => 'NatGateways[].State', 'expected' => 'deleted', ], [ 'state' => 'retry', 'matcher' => 'error', 'expected' => 'NatGatewayNotFound', ], ], ], 'NetworkInterfaceAvailable' => [ 'operation' => 'DescribeNetworkInterfaces', 'delay' => 20, 'maxAttempts' => 10, 'acceptors' => [ [ 'expected' => 'available', 'matcher' => 'pathAll', 'state' => 'success', 'argument' => 'NetworkInterfaces[].Status', ], [ 'expected' => 'InvalidNetworkInterfaceID.NotFound', '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' => 'InvalidVolume.NotFound', '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', ], ], ], 'VpcExists' => [ 'operation' => 'DescribeVpcs', 'delay' => 1, 'maxAttempts' => 5, 'acceptors' => [ [ 'matcher' => 'status', 'expected' => 200, 'state' => 'success', ], [ 'matcher' => 'error', 'expected' => 'InvalidVpcID.NotFound', 'state' => 'retry', ], ], ], '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', ], ], ], 'VpcPeeringConnectionExists' => [ 'delay' => 15, 'operation' => 'DescribeVpcPeeringConnections', 'maxAttempts' => 40, 'acceptors' => [ [ 'matcher' => 'status', 'expected' => 200, 'state' => 'success', ], [ 'matcher' => 'error', 'expected' => 'InvalidVpcPeeringConnectionID.NotFound', 'state' => 'retry', ], ], ], ],]; diff --git a/lib/aws/Aws/data/ec2/2016-04-01/api-2.json.php b/lib/aws/Aws/data/ec2/2016-04-01/api-2.json.php new file mode 100644 index 0000000..9845cb9 --- /dev/null +++ b/lib/aws/Aws/data/ec2/2016-04-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ec2/2016-04-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'uid' => 'ec2-2016-04-01', 'apiVersion' => '2016-04-01', 'endpointPrefix' => 'ec2', 'protocol' => 'ec2', 'serviceAbbreviation' => 'Amazon EC2', 'serviceFullName' => 'Amazon Elastic Compute Cloud', 'signatureVersion' => 'v4', 'xmlNamespace' => 'http://ec2.amazonaws.com/doc/2016-04-01', ], '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', ], ], 'AllocateHosts' => [ 'name' => 'AllocateHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AllocateHostsRequest', ], 'output' => [ 'shape' => 'AllocateHostsResult', ], ], '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', ], ], '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', ], ], 'CreateNatGateway' => [ 'name' => 'CreateNatGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNatGatewayRequest', ], 'output' => [ 'shape' => 'CreateNatGatewayResult', ], ], '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', ], ], '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', ], ], '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', ], ], 'DeleteNatGateway' => [ 'name' => 'DeleteNatGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNatGatewayRequest', ], 'output' => [ 'shape' => 'DeleteNatGatewayResult', ], ], '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', ], ], 'DescribeHostReservationOfferings' => [ 'name' => 'DescribeHostReservationOfferings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHostReservationOfferingsRequest', ], 'output' => [ 'shape' => 'DescribeHostReservationOfferingsResult', ], ], 'DescribeHostReservations' => [ 'name' => 'DescribeHostReservations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHostReservationsRequest', ], 'output' => [ 'shape' => 'DescribeHostReservationsResult', ], ], 'DescribeHosts' => [ 'name' => 'DescribeHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHostsRequest', ], 'output' => [ 'shape' => 'DescribeHostsResult', ], ], 'DescribeIdFormat' => [ 'name' => 'DescribeIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIdFormatRequest', ], 'output' => [ 'shape' => 'DescribeIdFormatResult', ], ], 'DescribeIdentityIdFormat' => [ 'name' => 'DescribeIdentityIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIdentityIdFormatRequest', ], 'output' => [ 'shape' => 'DescribeIdentityIdFormatResult', ], ], 'DescribeImageAttribute' => [ 'name' => 'DescribeImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImageAttributeRequest', ], 'output' => [ 'shape' => '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', ], ], 'DescribeNatGateways' => [ 'name' => 'DescribeNatGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNatGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeNatGatewaysResult', ], ], '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', ], ], 'DescribeScheduledInstanceAvailability' => [ 'name' => 'DescribeScheduledInstanceAvailability', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScheduledInstanceAvailabilityRequest', ], 'output' => [ 'shape' => 'DescribeScheduledInstanceAvailabilityResult', ], ], 'DescribeScheduledInstances' => [ 'name' => 'DescribeScheduledInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScheduledInstancesRequest', ], 'output' => [ 'shape' => 'DescribeScheduledInstancesResult', ], ], 'DescribeSecurityGroupReferences' => [ 'name' => 'DescribeSecurityGroupReferences', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSecurityGroupReferencesRequest', ], 'output' => [ 'shape' => 'DescribeSecurityGroupReferencesResult', ], ], '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', ], ], 'DescribeStaleSecurityGroups' => [ 'name' => 'DescribeStaleSecurityGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStaleSecurityGroupsRequest', ], 'output' => [ 'shape' => 'DescribeStaleSecurityGroupsResult', ], ], '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', ], ], 'DescribeVpcClassicLinkDnsSupport' => [ 'name' => 'DescribeVpcClassicLinkDnsSupport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcClassicLinkDnsSupportRequest', ], 'output' => [ 'shape' => 'DescribeVpcClassicLinkDnsSupportResult', ], ], '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', ], ], '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', ], ], 'DisableVpcClassicLinkDnsSupport' => [ 'name' => 'DisableVpcClassicLinkDnsSupport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableVpcClassicLinkDnsSupportRequest', ], 'output' => [ 'shape' => 'DisableVpcClassicLinkDnsSupportResult', ], ], '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', ], ], 'EnableVpcClassicLinkDnsSupport' => [ 'name' => 'EnableVpcClassicLinkDnsSupport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableVpcClassicLinkDnsSupportRequest', ], 'output' => [ 'shape' => 'EnableVpcClassicLinkDnsSupportResult', ], ], 'GetConsoleOutput' => [ 'name' => 'GetConsoleOutput', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetConsoleOutputRequest', ], 'output' => [ 'shape' => 'GetConsoleOutputResult', ], ], 'GetConsoleScreenshot' => [ 'name' => 'GetConsoleScreenshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetConsoleScreenshotRequest', ], 'output' => [ 'shape' => 'GetConsoleScreenshotResult', ], ], 'GetHostReservationPurchasePreview' => [ 'name' => 'GetHostReservationPurchasePreview', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetHostReservationPurchasePreviewRequest', ], 'output' => [ 'shape' => 'GetHostReservationPurchasePreviewResult', ], ], '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', ], ], 'ModifyHosts' => [ 'name' => 'ModifyHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyHostsRequest', ], 'output' => [ 'shape' => 'ModifyHostsResult', ], ], 'ModifyIdFormat' => [ 'name' => 'ModifyIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIdFormatRequest', ], ], 'ModifyIdentityIdFormat' => [ 'name' => 'ModifyIdentityIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIdentityIdFormatRequest', ], ], 'ModifyImageAttribute' => [ 'name' => 'ModifyImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyImageAttributeRequest', ], ], 'ModifyInstanceAttribute' => [ 'name' => 'ModifyInstanceAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceAttributeRequest', ], ], 'ModifyInstancePlacement' => [ 'name' => 'ModifyInstancePlacement', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstancePlacementRequest', ], 'output' => [ 'shape' => 'ModifyInstancePlacementResult', ], ], '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', ], ], 'ModifySpotFleetRequest' => [ 'name' => 'ModifySpotFleetRequest', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifySpotFleetRequestRequest', ], 'output' => [ 'shape' => 'ModifySpotFleetRequestResponse', ], ], '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', ], ], 'ModifyVpcPeeringConnectionOptions' => [ 'name' => 'ModifyVpcPeeringConnectionOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcPeeringConnectionOptionsRequest', ], 'output' => [ 'shape' => 'ModifyVpcPeeringConnectionOptionsResult', ], ], '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', ], ], 'PurchaseHostReservation' => [ 'name' => 'PurchaseHostReservation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseHostReservationRequest', ], 'output' => [ 'shape' => 'PurchaseHostReservationResult', ], ], 'PurchaseReservedInstancesOffering' => [ 'name' => 'PurchaseReservedInstancesOffering', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseReservedInstancesOfferingRequest', ], 'output' => [ 'shape' => 'PurchaseReservedInstancesOfferingResult', ], ], 'PurchaseScheduledInstances' => [ 'name' => 'PurchaseScheduledInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseScheduledInstancesRequest', ], 'output' => [ 'shape' => 'PurchaseScheduledInstancesResult', ], ], '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', ], ], 'ReleaseHosts' => [ 'name' => 'ReleaseHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReleaseHostsRequest', ], 'output' => [ 'shape' => 'ReleaseHostsResult', ], ], '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', ], ], 'RunScheduledInstances' => [ 'name' => 'RunScheduledInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RunScheduledInstancesRequest', ], 'output' => [ 'shape' => 'RunScheduledInstancesResult', ], ], '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', ], ], 'ActivityStatus' => [ 'type' => 'string', 'enum' => [ 'error', 'pending_fulfillment', 'pending_termination', 'fulfilled', ], ], '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', ], ], 'Affinity' => [ 'type' => 'string', 'enum' => [ 'default', 'host', ], ], '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', ], ], ], 'AllocateHostsRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceType', 'Quantity', 'AvailabilityZone', ], 'members' => [ 'AutoPlacement' => [ 'shape' => 'AutoPlacement', 'locationName' => 'autoPlacement', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'Quantity' => [ 'shape' => 'Integer', 'locationName' => 'quantity', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], ], ], 'AllocateHostsResult' => [ 'type' => 'structure', 'members' => [ 'HostIds' => [ 'shape' => 'ResponseHostIdList', 'locationName' => 'hostIdSet', ], ], ], 'AllocationIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'AllocationId', ], ], 'AllocationState' => [ 'type' => 'string', 'enum' => [ 'available', 'under-assessment', 'permanent-failure', 'released', 'released-permanent-failure', ], ], 'AllocationStrategy' => [ 'type' => 'string', 'enum' => [ 'lowestPrice', 'diversified', ], ], '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', ], ], ], 'AutoPlacement' => [ 'type' => 'string', 'enum' => [ 'on', 'off', ], ], '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', 'information', 'impaired', 'unavailable', ], ], 'AvailableCapacity' => [ 'type' => 'structure', 'members' => [ 'AvailableInstanceCapacity' => [ 'shape' => 'AvailableInstanceCapacityList', 'locationName' => 'availableInstanceCapacity', ], 'AvailableVCpus' => [ 'shape' => 'Integer', 'locationName' => 'availableVCpus', ], ], ], 'AvailableInstanceCapacityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceCapacity', 'locationName' => 'item', ], ], 'BatchState' => [ 'type' => 'string', 'enum' => [ 'submitted', 'active', 'cancelled', 'failed', 'cancelled_running', 'cancelled_terminating', 'modifying', ], ], 'Blob' => [ 'type' => 'blob', ], 'BlobAttributeValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Blob', 'locationName' => 'value', ], ], ], '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', ], ], 'ClassicLinkDnsSupport' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'ClassicLinkDnsSupported' => [ 'shape' => 'Boolean', 'locationName' => 'classicLinkDnsSupported', ], ], ], 'ClassicLinkDnsSupportList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClassicLinkDnsSupport', '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', ], 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], ], ], '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', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], ], ], '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', ], ], ], 'CreateNatGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', 'AllocationId', ], 'members' => [ 'SubnetId' => [ 'shape' => 'String', ], 'AllocationId' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', ], ], ], 'CreateNatGatewayResult' => [ 'type' => 'structure', 'members' => [ 'NatGateway' => [ 'shape' => 'NatGateway', 'locationName' => 'natGateway', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], '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', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], ], ], 'CreateRouteResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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', ], ], ], 'DeleteNatGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'NatGatewayId', ], 'members' => [ 'NatGatewayId' => [ 'shape' => 'String', ], ], ], 'DeleteNatGatewayResult' => [ 'type' => 'structure', 'members' => [ 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], ], ], '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', ], ], ], 'DescribeHostReservationOfferingsRequest' => [ 'type' => 'structure', 'members' => [ 'OfferingId' => [ 'shape' => 'String', ], 'MinDuration' => [ 'shape' => 'Integer', ], 'MaxDuration' => [ 'shape' => 'Integer', ], 'Filter' => [ 'shape' => 'FilterList', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeHostReservationOfferingsResult' => [ 'type' => 'structure', 'members' => [ 'OfferingSet' => [ 'shape' => 'HostOfferingSet', 'locationName' => 'offeringSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeHostReservationsRequest' => [ 'type' => 'structure', 'members' => [ 'HostReservationIdSet' => [ 'shape' => 'HostReservationIdSet', ], 'Filter' => [ 'shape' => 'FilterList', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeHostReservationsResult' => [ 'type' => 'structure', 'members' => [ 'HostReservationSet' => [ 'shape' => 'HostReservationSet', 'locationName' => 'hostReservationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeHostsRequest' => [ 'type' => 'structure', 'members' => [ 'HostIds' => [ 'shape' => 'RequestHostIdList', 'locationName' => 'hostId', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'Filter' => [ 'shape' => 'FilterList', 'locationName' => 'filter', ], ], ], 'DescribeHostsResult' => [ 'type' => 'structure', 'members' => [ 'Hosts' => [ 'shape' => 'HostList', 'locationName' => 'hostSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeIdFormatRequest' => [ 'type' => 'structure', 'members' => [ 'Resource' => [ 'shape' => 'String', ], ], ], 'DescribeIdFormatResult' => [ 'type' => 'structure', 'members' => [ 'Statuses' => [ 'shape' => 'IdFormatList', 'locationName' => 'statusSet', ], ], ], 'DescribeIdentityIdFormatRequest' => [ 'type' => 'structure', 'required' => [ 'PrincipalArn', ], 'members' => [ 'Resource' => [ 'shape' => 'String', 'locationName' => 'resource', ], 'PrincipalArn' => [ 'shape' => 'String', 'locationName' => 'principalArn', ], ], ], 'DescribeIdentityIdFormatResult' => [ 'type' => 'structure', 'members' => [ 'Statuses' => [ 'shape' => 'IdFormatList', 'locationName' => 'statusSet', ], ], ], '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', ], ], ], 'DescribeNatGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'NatGatewayIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'NatGatewayId', ], 'Filter' => [ 'shape' => 'FilterList', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeNatGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'NatGateways' => [ 'shape' => 'NatGatewayList', 'locationName' => 'natGatewaySet', ], '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', ], ], ], 'DescribeScheduledInstanceAvailabilityRequest' => [ 'type' => 'structure', 'required' => [ 'Recurrence', 'FirstSlotStartTimeRange', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Recurrence' => [ 'shape' => 'ScheduledInstanceRecurrenceRequest', ], 'FirstSlotStartTimeRange' => [ 'shape' => 'SlotDateTimeRangeRequest', ], 'MinSlotDurationInHours' => [ 'shape' => 'Integer', ], 'MaxSlotDurationInHours' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeScheduledInstanceAvailabilityResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ScheduledInstanceAvailabilitySet' => [ 'shape' => 'ScheduledInstanceAvailabilitySet', 'locationName' => 'scheduledInstanceAvailabilitySet', ], ], ], 'DescribeScheduledInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ScheduledInstanceIds' => [ 'shape' => 'ScheduledInstanceIdRequestSet', 'locationName' => 'ScheduledInstanceId', ], 'SlotStartTimeRange' => [ 'shape' => 'SlotStartTimeRangeRequest', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeScheduledInstancesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ScheduledInstanceSet' => [ 'shape' => 'ScheduledInstanceSet', 'locationName' => 'scheduledInstanceSet', ], ], ], 'DescribeSecurityGroupReferencesRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'GroupId' => [ 'shape' => 'GroupIds', ], ], ], 'DescribeSecurityGroupReferencesResult' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupReferenceSet' => [ 'shape' => 'SecurityGroupReferences', 'locationName' => 'securityGroupReferenceSet', ], ], ], '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', ], ], ], 'DescribeStaleSecurityGroupsRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcId' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeStaleSecurityGroupsResult' => [ 'type' => 'structure', 'members' => [ 'StaleSecurityGroupSet' => [ 'shape' => 'StaleSecurityGroupSet', 'locationName' => 'staleSecurityGroupSet', ], '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', 'Attribute', ], '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', ], ], ], 'DescribeVpcClassicLinkDnsSupportRequest' => [ 'type' => 'structure', 'members' => [ 'VpcIds' => [ 'shape' => 'VpcClassicLinkIdList', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcClassicLinkDnsSupportResult' => [ 'type' => 'structure', 'members' => [ 'Vpcs' => [ 'shape' => 'ClassicLinkDnsSupportList', 'locationName' => 'vpcs', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], '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', ], ], 'DhcpConfigurationValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeValue', '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', ], ], ], 'DisableVpcClassicLinkDnsSupportRequest' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'String', ], ], ], 'DisableVpcClassicLinkDnsSupportResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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', ], ], ], 'EnableVpcClassicLinkDnsSupportRequest' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'String', ], ], ], 'EnableVpcClassicLinkDnsSupportResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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', ], ], 'ExcessCapacityTerminationPolicy' => [ 'type' => 'string', 'enum' => [ 'noTermination', 'default', ], ], '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', ], ], 'FleetType' => [ 'type' => 'string', 'enum' => [ 'request', 'maintain', ], ], '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', ], ], ], 'GetConsoleScreenshotRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'String', ], 'WakeUp' => [ 'shape' => 'Boolean', ], ], ], 'GetConsoleScreenshotResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'ImageData' => [ 'shape' => 'String', 'locationName' => 'imageData', ], ], ], 'GetHostReservationPurchasePreviewRequest' => [ 'type' => 'structure', 'required' => [ 'OfferingId', 'HostIdSet', ], 'members' => [ 'OfferingId' => [ 'shape' => 'String', ], 'HostIdSet' => [ 'shape' => 'RequestHostIdSet', ], ], ], 'GetHostReservationPurchasePreviewResult' => [ 'type' => 'structure', 'members' => [ 'Purchase' => [ 'shape' => 'PurchaseSet', 'locationName' => 'purchase', ], 'TotalUpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'totalUpfrontPrice', ], 'TotalHourlyPrice' => [ 'shape' => 'String', 'locationName' => 'totalHourlyPrice', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], ], ], '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', ], ], 'GroupIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', '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', ], ], 'Host' => [ 'type' => 'structure', 'members' => [ 'HostId' => [ 'shape' => 'String', 'locationName' => 'hostId', ], 'AutoPlacement' => [ 'shape' => 'AutoPlacement', 'locationName' => 'autoPlacement', ], 'HostReservationId' => [ 'shape' => 'String', 'locationName' => 'hostReservationId', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'HostProperties' => [ 'shape' => 'HostProperties', 'locationName' => 'hostProperties', ], 'State' => [ 'shape' => 'AllocationState', 'locationName' => 'state', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Instances' => [ 'shape' => 'HostInstanceList', 'locationName' => 'instances', ], 'AvailableCapacity' => [ 'shape' => 'AvailableCapacity', 'locationName' => 'availableCapacity', ], ], ], 'HostInstance' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], ], ], 'HostInstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostInstance', 'locationName' => 'item', ], ], 'HostList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Host', 'locationName' => 'item', ], ], 'HostOffering' => [ 'type' => 'structure', 'members' => [ 'OfferingId' => [ 'shape' => 'String', 'locationName' => 'offeringId', ], 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], 'PaymentOption' => [ 'shape' => 'PaymentOption', 'locationName' => 'paymentOption', ], 'UpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'upfrontPrice', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Duration' => [ 'shape' => 'Integer', 'locationName' => 'duration', ], ], ], 'HostOfferingSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostOffering', ], ], 'HostProperties' => [ 'type' => 'structure', 'members' => [ 'Sockets' => [ 'shape' => 'Integer', 'locationName' => 'sockets', ], 'Cores' => [ 'shape' => 'Integer', 'locationName' => 'cores', ], 'TotalVCpus' => [ 'shape' => 'Integer', 'locationName' => 'totalVCpus', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], ], ], 'HostReservation' => [ 'type' => 'structure', 'members' => [ 'HostReservationId' => [ 'shape' => 'String', 'locationName' => 'hostReservationId', ], 'HostIdSet' => [ 'shape' => 'ResponseHostIdSet', 'locationName' => 'hostIdSet', ], 'OfferingId' => [ 'shape' => 'String', 'locationName' => 'offeringId', ], 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], 'PaymentOption' => [ 'shape' => 'PaymentOption', 'locationName' => 'paymentOption', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'UpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'upfrontPrice', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Count' => [ 'shape' => 'Integer', 'locationName' => 'count', ], 'Duration' => [ 'shape' => 'Integer', 'locationName' => 'duration', ], 'End' => [ 'shape' => 'DateTime', 'locationName' => 'end', ], 'Start' => [ 'shape' => 'DateTime', 'locationName' => 'start', ], 'State' => [ 'shape' => 'ReservationState', 'locationName' => 'state', ], ], ], 'HostReservationIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'HostReservationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostReservation', ], ], 'HostTenancy' => [ 'type' => 'string', 'enum' => [ 'dedicated', 'host', ], ], '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', ], ], ], 'IdFormat' => [ 'type' => 'structure', 'members' => [ 'Resource' => [ 'shape' => 'String', 'locationName' => 'resource', ], 'UseLongIds' => [ 'shape' => 'Boolean', 'locationName' => 'useLongIds', ], 'Deadline' => [ 'shape' => 'DateTime', 'locationName' => 'deadline', ], ], ], 'IdFormatList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IdFormat', 'locationName' => 'item', ], ], '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', ], 'EnaSupport' => [ 'shape' => 'Boolean', 'locationName' => 'enaSupport', ], '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', ], 'EnaSupport' => [ 'shape' => 'Boolean', 'locationName' => 'enaSupport', ], ], ], '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', ], 'EnaSupport' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'enaSupport', ], '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', 'enaSupport', ], ], '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', ], ], 'InstanceCapacity' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'AvailableCapacity' => [ 'shape' => 'Integer', 'locationName' => 'availableCapacity', ], 'TotalCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalCapacity', ], ], ], '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', ], ], ], 'InstanceIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'InstanceIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'InstanceId', ], ], 'InstanceLifecycleType' => [ 'type' => 'string', 'enum' => [ 'spot', 'scheduled', ], ], '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', 't2.nano', 't2.micro', 't2.small', 't2.medium', 't2.large', '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', 'm2.xlarge', 'm2.2xlarge', 'm2.4xlarge', 'cr1.8xlarge', 'r3.large', 'r3.xlarge', 'r3.2xlarge', 'r3.4xlarge', 'r3.8xlarge', 'x1.4xlarge', 'x1.8xlarge', 'x1.16xlarge', 'x1.32xlarge', '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', 'g2.8xlarge', 'cg1.4xlarge', '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', ], ], 'IpRanges' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', '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' => 'SpotFleetLaunchSpecification', 'locationName' => 'item', ], 'min' => 1, ], 'ListingState' => [ 'type' => 'string', 'enum' => [ 'available', 'sold', 'cancelled', 'pending', ], ], 'ListingStatus' => [ 'type' => 'string', 'enum' => [ 'active', 'pending', 'cancelled', 'closed', ], ], 'Long' => [ 'type' => 'long', ], 'MaxResults' => [ 'type' => 'integer', 'max' => 255, 'min' => 5, ], 'ModifyHostsRequest' => [ 'type' => 'structure', 'required' => [ 'HostIds', 'AutoPlacement', ], 'members' => [ 'HostIds' => [ 'shape' => 'RequestHostIdList', 'locationName' => 'hostId', ], 'AutoPlacement' => [ 'shape' => 'AutoPlacement', 'locationName' => 'autoPlacement', ], ], ], 'ModifyHostsResult' => [ 'type' => 'structure', 'members' => [ 'Successful' => [ 'shape' => 'ResponseHostIdList', 'locationName' => 'successful', ], 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemList', 'locationName' => 'unsuccessful', ], ], ], 'ModifyIdFormatRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'UseLongIds', ], 'members' => [ 'Resource' => [ 'shape' => 'String', ], 'UseLongIds' => [ 'shape' => 'Boolean', ], ], ], 'ModifyIdentityIdFormatRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'UseLongIds', 'PrincipalArn', ], 'members' => [ 'Resource' => [ 'shape' => 'String', 'locationName' => 'resource', ], 'UseLongIds' => [ 'shape' => 'Boolean', 'locationName' => 'useLongIds', ], 'PrincipalArn' => [ 'shape' => 'String', 'locationName' => 'principalArn', ], ], ], 'ModifyImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'ImageId' => [ 'shape' => 'String', ], 'Attribute' => [ 'shape' => 'String', ], 'OperationType' => [ 'shape' => 'OperationType', ], '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', ], 'EnaSupport' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'enaSupport', ], ], ], 'ModifyInstancePlacementRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Tenancy' => [ 'shape' => 'HostTenancy', 'locationName' => 'tenancy', ], 'Affinity' => [ 'shape' => 'Affinity', 'locationName' => 'affinity', ], 'HostId' => [ 'shape' => 'String', 'locationName' => 'hostId', ], ], ], 'ModifyInstancePlacementResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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' => 'OperationType', ], 'UserIds' => [ 'shape' => 'UserIdStringList', 'locationName' => 'UserId', ], 'GroupNames' => [ 'shape' => 'GroupNameStringList', 'locationName' => 'UserGroup', ], 'CreateVolumePermission' => [ 'shape' => 'CreateVolumePermissionModifications', ], ], ], 'ModifySpotFleetRequestRequest' => [ 'type' => 'structure', 'required' => [ 'SpotFleetRequestId', ], 'members' => [ 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], 'TargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'targetCapacity', ], 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'ExcessCapacityTerminationPolicy', 'locationName' => 'excessCapacityTerminationPolicy', ], ], ], 'ModifySpotFleetRequestResponse' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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', ], ], ], 'ModifyVpcPeeringConnectionOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'VpcPeeringConnectionId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', ], 'RequesterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptionsRequest', ], 'AccepterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptionsRequest', ], ], ], 'ModifyVpcPeeringConnectionOptionsResult' => [ 'type' => 'structure', 'members' => [ 'RequesterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptions', 'locationName' => 'requesterPeeringConnectionOptions', ], 'AccepterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptions', 'locationName' => 'accepterPeeringConnectionOptions', ], ], ], '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', ], ], 'NatGateway' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'DeleteTime' => [ 'shape' => 'DateTime', 'locationName' => 'deleteTime', ], 'NatGatewayAddresses' => [ 'shape' => 'NatGatewayAddressList', 'locationName' => 'natGatewayAddressSet', ], 'State' => [ 'shape' => 'NatGatewayState', 'locationName' => 'state', ], 'FailureCode' => [ 'shape' => 'String', 'locationName' => 'failureCode', ], 'FailureMessage' => [ 'shape' => 'String', 'locationName' => 'failureMessage', ], 'ProvisionedBandwidth' => [ 'shape' => 'ProvisionedBandwidth', 'locationName' => 'provisionedBandwidth', ], ], ], 'NatGatewayAddress' => [ 'type' => 'structure', 'members' => [ 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], 'AllocationId' => [ 'shape' => 'String', 'locationName' => 'allocationId', ], 'PrivateIp' => [ 'shape' => 'String', 'locationName' => 'privateIp', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], ], ], 'NatGatewayAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NatGatewayAddress', 'locationName' => 'item', ], ], 'NatGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NatGateway', 'locationName' => 'item', ], ], 'NatGatewayState' => [ 'type' => 'string', 'enum' => [ 'pending', 'failed', 'available', 'deleting', 'deleted', ], ], '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', ], 'InterfaceType' => [ 'shape' => 'NetworkInterfaceType', 'locationName' => 'interfaceType', ], ], ], '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', ], ], 'NetworkInterfaceType' => [ 'type' => 'string', 'enum' => [ 'interface', 'natGateway', ], ], 'NewDhcpConfiguration' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', 'locationName' => 'key', ], 'Values' => [ 'shape' => 'ValueStringList', 'locationName' => 'Value', ], ], ], 'NewDhcpConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NewDhcpConfiguration', 'locationName' => 'item', ], ], 'NextToken' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'OccurrenceDayRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Integer', 'locationName' => 'OccurenceDay', ], ], 'OccurrenceDaySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Integer', 'locationName' => 'item', ], ], 'OfferingTypeValues' => [ 'type' => 'string', 'enum' => [ 'Heavy Utilization', 'Medium Utilization', 'Light Utilization', 'No Upfront', 'Partial Upfront', 'All Upfront', ], ], 'OperationType' => [ 'type' => 'string', 'enum' => [ 'add', 'remove', ], ], 'OwnerStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'Owner', ], ], 'PaymentOption' => [ 'type' => 'string', 'enum' => [ 'AllUpfront', 'PartialUpfront', 'NoUpfront', ], ], 'PeeringConnectionOptions' => [ 'type' => 'structure', 'members' => [ 'AllowEgressFromLocalClassicLinkToRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalClassicLinkToRemoteVpc', ], 'AllowEgressFromLocalVpcToRemoteClassicLink' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalVpcToRemoteClassicLink', ], 'AllowDnsResolutionFromRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowDnsResolutionFromRemoteVpc', ], ], ], 'PeeringConnectionOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'AllowEgressFromLocalClassicLinkToRemoteVpc' => [ 'shape' => 'Boolean', ], 'AllowEgressFromLocalVpcToRemoteClassicLink' => [ 'shape' => 'Boolean', ], 'AllowDnsResolutionFromRemoteVpc' => [ 'shape' => 'Boolean', ], ], ], 'PermissionGroup' => [ 'type' => 'string', 'enum' => [ 'all', ], ], 'Placement' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'Tenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'tenancy', ], 'HostId' => [ 'shape' => 'String', 'locationName' => 'hostId', ], 'Affinity' => [ 'shape' => 'String', 'locationName' => 'affinity', ], ], ], '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', ], ], 'PrefixListIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', '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', ], ], 'PrivateIpAddressConfigSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesPrivateIpAddressConfig', 'locationName' => 'PrivateIpAddressConfigSet', ], ], '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', ], ], 'ProvisionedBandwidth' => [ 'type' => 'structure', 'members' => [ 'Provisioned' => [ 'shape' => 'String', 'locationName' => 'provisioned', ], 'Requested' => [ 'shape' => 'String', 'locationName' => 'requested', ], 'RequestTime' => [ 'shape' => 'DateTime', 'locationName' => 'requestTime', ], 'ProvisionTime' => [ 'shape' => 'DateTime', 'locationName' => 'provisionTime', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], ], ], 'PublicIpStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'PublicIp', ], ], 'Purchase' => [ 'type' => 'structure', 'members' => [ 'HostReservationId' => [ 'shape' => 'String', 'locationName' => 'hostReservationId', ], 'HostIdSet' => [ 'shape' => 'ResponseHostIdSet', 'locationName' => 'hostIdSet', ], 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], 'PaymentOption' => [ 'shape' => 'PaymentOption', 'locationName' => 'paymentOption', ], 'UpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'upfrontPrice', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Duration' => [ 'shape' => 'Integer', 'locationName' => 'duration', ], ], ], 'PurchaseHostReservationRequest' => [ 'type' => 'structure', 'required' => [ 'OfferingId', 'HostIdSet', ], 'members' => [ 'OfferingId' => [ 'shape' => 'String', ], 'HostIdSet' => [ 'shape' => 'RequestHostIdSet', ], 'LimitPrice' => [ 'shape' => 'String', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', ], 'ClientToken' => [ 'shape' => 'String', ], ], ], 'PurchaseHostReservationResult' => [ 'type' => 'structure', 'members' => [ 'Purchase' => [ 'shape' => 'PurchaseSet', 'locationName' => 'purchase', ], 'TotalUpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'totalUpfrontPrice', ], 'TotalHourlyPrice' => [ 'shape' => 'String', 'locationName' => 'totalHourlyPrice', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'PurchaseRequest' => [ 'type' => 'structure', 'required' => [ 'PurchaseToken', 'InstanceCount', ], 'members' => [ 'PurchaseToken' => [ 'shape' => 'String', ], 'InstanceCount' => [ 'shape' => 'Integer', ], ], ], 'PurchaseRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PurchaseRequest', 'locationName' => 'PurchaseRequest', ], 'min' => 1, ], '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', ], ], ], 'PurchaseScheduledInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'PurchaseRequests', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'PurchaseRequests' => [ 'shape' => 'PurchaseRequestSet', 'locationName' => 'PurchaseRequest', ], ], ], 'PurchaseScheduledInstancesResult' => [ 'type' => 'structure', 'members' => [ 'ScheduledInstanceSet' => [ 'shape' => 'PurchasedScheduledInstanceSet', 'locationName' => 'scheduledInstanceSet', ], ], ], 'PurchaseSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Purchase', ], ], 'PurchasedScheduledInstanceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstance', 'locationName' => 'item', ], ], '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', ], 'EnaSupport' => [ 'shape' => 'Boolean', 'locationName' => 'enaSupport', ], ], ], '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', ], ], ], 'ReleaseHostsRequest' => [ 'type' => 'structure', 'required' => [ 'HostIds', ], 'members' => [ 'HostIds' => [ 'shape' => 'RequestHostIdList', 'locationName' => 'hostId', ], ], ], 'ReleaseHostsResult' => [ 'type' => 'structure', 'members' => [ 'Successful' => [ 'shape' => 'ResponseHostIdList', 'locationName' => 'successful', ], 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemList', 'locationName' => 'unsuccessful', ], ], ], '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', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], ], ], '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', ], ], 'RequestHostIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'RequestHostIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], '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', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', 'locationName' => 'blockDurationMinutes', ], 'LaunchSpecification' => [ 'shape' => 'RequestSpotLaunchSpecification', ], ], ], 'RequestSpotInstancesResult' => [ 'type' => 'structure', 'members' => [ 'SpotInstanceRequests' => [ 'shape' => 'SpotInstanceRequestList', 'locationName' => 'spotInstanceRequestSet', ], ], ], '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', ], ], ], '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', ], ], 'ReservationState' => [ 'type' => 'string', 'enum' => [ 'payment-pending', 'payment-failed', 'active', 'retired', ], ], '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', ], ], 'ResponseHostIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'ResponseHostIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], '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', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], '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', ], ], ], 'RunScheduledInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'ScheduledInstanceId', 'LaunchSpecification', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'InstanceCount' => [ 'shape' => 'Integer', ], 'ScheduledInstanceId' => [ 'shape' => 'String', ], 'LaunchSpecification' => [ 'shape' => 'ScheduledInstancesLaunchSpecification', ], ], ], 'RunScheduledInstancesResult' => [ 'type' => 'structure', 'members' => [ 'InstanceIdSet' => [ 'shape' => 'InstanceIdSet', 'locationName' => 'instanceIdSet', ], ], ], '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', ], ], ], 'ScheduledInstance' => [ 'type' => 'structure', 'members' => [ 'ScheduledInstanceId' => [ 'shape' => 'String', 'locationName' => 'scheduledInstanceId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'NetworkPlatform' => [ 'shape' => 'String', 'locationName' => 'networkPlatform', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'SlotDurationInHours' => [ 'shape' => 'Integer', 'locationName' => 'slotDurationInHours', ], 'Recurrence' => [ 'shape' => 'ScheduledInstanceRecurrence', 'locationName' => 'recurrence', ], 'PreviousSlotEndTime' => [ 'shape' => 'DateTime', 'locationName' => 'previousSlotEndTime', ], 'NextSlotStartTime' => [ 'shape' => 'DateTime', 'locationName' => 'nextSlotStartTime', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'TotalScheduledInstanceHours' => [ 'shape' => 'Integer', 'locationName' => 'totalScheduledInstanceHours', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'TermStartDate' => [ 'shape' => 'DateTime', 'locationName' => 'termStartDate', ], 'TermEndDate' => [ 'shape' => 'DateTime', 'locationName' => 'termEndDate', ], 'CreateDate' => [ 'shape' => 'DateTime', 'locationName' => 'createDate', ], ], ], 'ScheduledInstanceAvailability' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'NetworkPlatform' => [ 'shape' => 'String', 'locationName' => 'networkPlatform', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'PurchaseToken' => [ 'shape' => 'String', 'locationName' => 'purchaseToken', ], 'SlotDurationInHours' => [ 'shape' => 'Integer', 'locationName' => 'slotDurationInHours', ], 'Recurrence' => [ 'shape' => 'ScheduledInstanceRecurrence', 'locationName' => 'recurrence', ], 'FirstSlotStartTime' => [ 'shape' => 'DateTime', 'locationName' => 'firstSlotStartTime', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'TotalScheduledInstanceHours' => [ 'shape' => 'Integer', 'locationName' => 'totalScheduledInstanceHours', ], 'AvailableInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'availableInstanceCount', ], 'MinTermDurationInDays' => [ 'shape' => 'Integer', 'locationName' => 'minTermDurationInDays', ], 'MaxTermDurationInDays' => [ 'shape' => 'Integer', 'locationName' => 'maxTermDurationInDays', ], ], ], 'ScheduledInstanceAvailabilitySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstanceAvailability', 'locationName' => 'item', ], ], 'ScheduledInstanceIdRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ScheduledInstanceId', ], ], 'ScheduledInstanceRecurrence' => [ 'type' => 'structure', 'members' => [ 'Frequency' => [ 'shape' => 'String', 'locationName' => 'frequency', ], 'Interval' => [ 'shape' => 'Integer', 'locationName' => 'interval', ], 'OccurrenceDaySet' => [ 'shape' => 'OccurrenceDaySet', 'locationName' => 'occurrenceDaySet', ], 'OccurrenceRelativeToEnd' => [ 'shape' => 'Boolean', 'locationName' => 'occurrenceRelativeToEnd', ], 'OccurrenceUnit' => [ 'shape' => 'String', 'locationName' => 'occurrenceUnit', ], ], ], 'ScheduledInstanceRecurrenceRequest' => [ 'type' => 'structure', 'members' => [ 'Frequency' => [ 'shape' => 'String', ], 'Interval' => [ 'shape' => 'Integer', ], 'OccurrenceDays' => [ 'shape' => 'OccurrenceDayRequestSet', 'locationName' => 'OccurrenceDay', ], 'OccurrenceRelativeToEnd' => [ 'shape' => 'Boolean', ], 'OccurrenceUnit' => [ 'shape' => 'String', ], ], ], 'ScheduledInstanceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstance', 'locationName' => 'item', ], ], 'ScheduledInstancesBlockDeviceMapping' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', ], 'NoDevice' => [ 'shape' => 'String', ], 'VirtualName' => [ 'shape' => 'String', ], 'Ebs' => [ 'shape' => 'ScheduledInstancesEbs', ], ], ], 'ScheduledInstancesBlockDeviceMappingSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesBlockDeviceMapping', 'locationName' => 'BlockDeviceMapping', ], ], 'ScheduledInstancesEbs' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', ], 'VolumeSize' => [ 'shape' => 'Integer', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'VolumeType' => [ 'shape' => 'String', ], 'Iops' => [ 'shape' => 'Integer', ], 'Encrypted' => [ 'shape' => 'Boolean', ], ], ], 'ScheduledInstancesIamInstanceProfile' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesLaunchSpecification' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'String', ], 'KeyName' => [ 'shape' => 'String', ], 'SecurityGroupIds' => [ 'shape' => 'ScheduledInstancesSecurityGroupIdSet', 'locationName' => 'SecurityGroupId', ], 'UserData' => [ 'shape' => 'String', ], 'Placement' => [ 'shape' => 'ScheduledInstancesPlacement', ], 'KernelId' => [ 'shape' => 'String', ], 'InstanceType' => [ 'shape' => 'String', ], 'RamdiskId' => [ 'shape' => 'String', ], 'BlockDeviceMappings' => [ 'shape' => 'ScheduledInstancesBlockDeviceMappingSet', 'locationName' => 'BlockDeviceMapping', ], 'Monitoring' => [ 'shape' => 'ScheduledInstancesMonitoring', ], 'SubnetId' => [ 'shape' => 'String', ], 'NetworkInterfaces' => [ 'shape' => 'ScheduledInstancesNetworkInterfaceSet', 'locationName' => 'NetworkInterface', ], 'IamInstanceProfile' => [ 'shape' => 'ScheduledInstancesIamInstanceProfile', ], 'EbsOptimized' => [ 'shape' => 'Boolean', ], ], ], 'ScheduledInstancesMonitoring' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], ], ], 'ScheduledInstancesNetworkInterface' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'String', ], 'DeviceIndex' => [ 'shape' => 'Integer', ], 'SubnetId' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'PrivateIpAddress' => [ 'shape' => 'String', ], 'PrivateIpAddressConfigs' => [ 'shape' => 'PrivateIpAddressConfigSet', 'locationName' => 'PrivateIpAddressConfig', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', ], 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', ], 'Groups' => [ 'shape' => 'ScheduledInstancesSecurityGroupIdSet', 'locationName' => 'Group', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], ], ], 'ScheduledInstancesNetworkInterfaceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesNetworkInterface', 'locationName' => 'NetworkInterface', ], ], 'ScheduledInstancesPlacement' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', ], 'GroupName' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesPrivateIpAddressConfig' => [ 'type' => 'structure', 'members' => [ 'PrivateIpAddress' => [ 'shape' => 'String', ], 'Primary' => [ 'shape' => 'Boolean', ], ], ], 'ScheduledInstancesSecurityGroupIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'SecurityGroupId', ], ], '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', ], ], 'SecurityGroupReference' => [ 'type' => 'structure', 'required' => [ 'GroupId', 'ReferencingVpcId', ], 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'ReferencingVpcId' => [ 'shape' => 'String', 'locationName' => 'referencingVpcId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], ], ], 'SecurityGroupReferences' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupReference', 'locationName' => 'item', ], ], 'SecurityGroupStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'SecurityGroup', ], ], 'ShutdownBehavior' => [ 'type' => 'string', 'enum' => [ 'stop', 'terminate', ], ], 'SlotDateTimeRangeRequest' => [ 'type' => 'structure', 'required' => [ 'EarliestTime', 'LatestTime', ], 'members' => [ 'EarliestTime' => [ 'shape' => 'DateTime', ], 'LatestTime' => [ 'shape' => 'DateTime', ], ], ], 'SlotStartTimeRangeRequest' => [ 'type' => 'structure', 'members' => [ 'EarliestTime' => [ 'shape' => 'DateTime', ], 'LatestTime' => [ 'shape' => 'DateTime', ], ], ], 'Snapshot' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'State' => [ 'shape' => 'SnapshotState', 'locationName' => 'status', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], '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', ], 'DataEncryptionKeyId' => [ 'shape' => 'String', 'locationName' => 'dataEncryptionKeyId', ], ], ], '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', ], ], ], 'SpotFleetLaunchSpecification' => [ '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', ], 'Monitoring' => [ 'shape' => 'SpotFleetMonitoring', 'locationName' => 'monitoring', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'NetworkInterfaces' => [ 'shape' => 'InstanceNetworkInterfaceSpecificationList', 'locationName' => 'networkInterfaceSet', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', 'locationName' => 'iamInstanceProfile', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'WeightedCapacity' => [ 'shape' => 'Double', 'locationName' => 'weightedCapacity', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], ], ], 'SpotFleetMonitoring' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], ], ], 'SpotFleetRequestConfig' => [ 'type' => 'structure', 'required' => [ 'SpotFleetRequestId', 'SpotFleetRequestState', 'SpotFleetRequestConfig', 'CreateTime', ], 'members' => [ 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], 'SpotFleetRequestState' => [ 'shape' => 'BatchState', 'locationName' => 'spotFleetRequestState', ], 'SpotFleetRequestConfig' => [ 'shape' => 'SpotFleetRequestConfigData', 'locationName' => 'spotFleetRequestConfig', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'ActivityStatus' => [ 'shape' => 'ActivityStatus', 'locationName' => 'activityStatus', ], ], ], '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', ], 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'ExcessCapacityTerminationPolicy', 'locationName' => 'excessCapacityTerminationPolicy', ], 'AllocationStrategy' => [ 'shape' => 'AllocationStrategy', 'locationName' => 'allocationStrategy', ], 'FulfilledCapacity' => [ 'shape' => 'Double', 'locationName' => 'fulfilledCapacity', ], 'Type' => [ 'shape' => 'FleetType', 'locationName' => 'type', ], ], ], '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', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', 'locationName' => 'blockDurationMinutes', ], 'ActualBlockHourlyPrice' => [ 'shape' => 'String', 'locationName' => 'actualBlockHourlyPrice', ], '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', ], ], 'StaleIpPermission' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'IpProtocol' => [ 'shape' => 'String', 'locationName' => 'ipProtocol', ], 'IpRanges' => [ 'shape' => 'IpRanges', 'locationName' => 'ipRanges', ], 'PrefixListIds' => [ 'shape' => 'PrefixListIdSet', 'locationName' => 'prefixListIds', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], 'UserIdGroupPairs' => [ 'shape' => 'UserIdGroupPairSet', 'locationName' => 'groups', ], ], ], 'StaleIpPermissionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'StaleIpPermission', 'locationName' => 'item', ], ], 'StaleSecurityGroup' => [ 'type' => 'structure', 'required' => [ 'GroupId', ], 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'StaleIpPermissions' => [ 'shape' => 'StaleIpPermissionSet', 'locationName' => 'staleIpPermissions', ], 'StaleIpPermissionsEgress' => [ 'shape' => 'StaleIpPermissionSet', 'locationName' => 'staleIpPermissionsEgress', ], ], ], 'StaleSecurityGroupSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'StaleSecurityGroup', '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', 'host', ], ], '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', ], ], ], 'UnsuccessfulItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UnsuccessfulItem', 'locationName' => 'item', ], ], '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', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], 'PeeringStatus' => [ 'shape' => 'String', 'locationName' => 'peeringStatus', ], ], ], 'UserIdGroupPairList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserIdGroupPair', 'locationName' => 'item', ], ], 'UserIdGroupPairSet' => [ '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', 'sc1', 'st1', ], ], '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', ], ], 'VpcPeeringConnectionOptionsDescription' => [ 'type' => 'structure', 'members' => [ 'AllowEgressFromLocalClassicLinkToRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalClassicLinkToRemoteVpc', ], 'AllowEgressFromLocalVpcToRemoteClassicLink' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalVpcToRemoteClassicLink', ], 'AllowDnsResolutionFromRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowDnsResolutionFromRemoteVpc', ], ], ], 'VpcPeeringConnectionStateReason' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'VpcPeeringConnectionStateReasonCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'VpcPeeringConnectionStateReasonCode' => [ 'type' => 'string', 'enum' => [ 'initiating-request', 'pending-acceptance', 'active', 'deleted', 'rejected', 'failed', 'expired', 'provisioning', 'deleting', ], ], 'VpcPeeringConnectionVpcInfo' => [ 'type' => 'structure', 'members' => [ 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'PeeringOptions' => [ 'shape' => 'VpcPeeringConnectionOptionsDescription', 'locationName' => 'peeringOptions', ], ], ], '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', ], ], ],]; diff --git a/lib/aws/Aws/data/ec2/2016-04-01/paginators-1.json.php b/lib/aws/Aws/data/ec2/2016-04-01/paginators-1.json.php new file mode 100644 index 0000000..7741ba6 --- /dev/null +++ b/lib/aws/Aws/data/ec2/2016-04-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ec2/2016-04-01/paginators-1.json +return [ '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', 'limit_key' => 'MaxResults', 'result_key' => 'Snapshots', ], 'DescribeSpotInstanceRequests' => [ 'result_key' => 'SpotInstanceRequests', ], 'DescribeSpotFleetRequests' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', 'result_key' => 'SpotFleetRequestConfigs', ], 'DescribeSpotPriceHistory' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', 'result_key' => 'SpotPriceHistory', ], 'DescribeSubnets' => [ 'result_key' => 'Subnets', ], 'DescribeTags' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', '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', ], 'DescribeVpcPeeringConnections' => [ 'result_key' => 'VpcPeeringConnections', ], 'DescribeVpnConnections' => [ 'result_key' => 'VpnConnections', ], 'DescribeVpnGateways' => [ 'result_key' => 'VpnGateways', ], ],]; diff --git a/lib/aws/Aws/data/ec2/2016-04-01/waiters-2.json.php b/lib/aws/Aws/data/ec2/2016-04-01/waiters-2.json.php new file mode 100644 index 0000000..87a2ebf --- /dev/null +++ b/lib/aws/Aws/data/ec2/2016-04-01/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ec2/2016-04-01/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'InstanceExists' => [ 'delay' => 5, 'maxAttempts' => 40, 'operation' => 'DescribeInstances', 'acceptors' => [ [ 'matcher' => 'path', 'expected' => true, 'argument' => 'length(Reservations[]) > `0`', 'state' => 'success', ], [ 'matcher' => 'error', 'expected' => 'InvalidInstanceID.NotFound', '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', ], ], ], 'ImageExists' => [ 'operation' => 'DescribeImages', 'maxAttempts' => 40, 'delay' => 15, 'acceptors' => [ [ 'matcher' => 'path', 'expected' => true, 'argument' => 'length(Images[]) > `0`', 'state' => 'success', ], [ 'matcher' => 'error', 'expected' => 'InvalidAMIID.NotFound', 'state' => 'retry', ], ], ], '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', ], [ 'matcher' => 'error', 'expected' => 'InvalidInstanceID.NotFound', 'state' => 'retry', ], ], ], 'InstanceStatusOk' => [ 'operation' => 'DescribeInstanceStatus', 'maxAttempts' => 40, 'delay' => 15, 'acceptors' => [ [ 'state' => 'success', 'matcher' => 'pathAll', 'argument' => 'InstanceStatuses[].InstanceStatus.Status', 'expected' => 'ok', ], [ 'matcher' => 'error', 'expected' => 'InvalidInstanceID.NotFound', 'state' => 'retry', ], ], ], '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' => 'InvalidKeyPair.NotFound', 'matcher' => 'error', 'state' => 'retry', ], ], ], 'NatGatewayAvailable' => [ 'operation' => 'DescribeNatGateways', 'delay' => 15, 'maxAttempts' => 40, 'acceptors' => [ [ 'state' => 'success', 'matcher' => 'pathAll', 'argument' => 'NatGateways[].State', 'expected' => 'available', ], [ 'state' => 'failure', 'matcher' => 'pathAny', 'argument' => 'NatGateways[].State', 'expected' => 'failed', ], [ 'state' => 'failure', 'matcher' => 'pathAny', 'argument' => 'NatGateways[].State', 'expected' => 'deleting', ], [ 'state' => 'failure', 'matcher' => 'pathAny', 'argument' => 'NatGateways[].State', 'expected' => 'deleted', ], [ 'state' => 'retry', 'matcher' => 'error', 'expected' => 'NatGatewayNotFound', ], ], ], 'NetworkInterfaceAvailable' => [ 'operation' => 'DescribeNetworkInterfaces', 'delay' => 20, 'maxAttempts' => 10, 'acceptors' => [ [ 'expected' => 'available', 'matcher' => 'pathAll', 'state' => 'success', 'argument' => 'NetworkInterfaces[].Status', ], [ 'expected' => 'InvalidNetworkInterfaceID.NotFound', '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' => 'InvalidVolume.NotFound', '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', ], ], ], 'VpcExists' => [ 'operation' => 'DescribeVpcs', 'delay' => 1, 'maxAttempts' => 5, 'acceptors' => [ [ 'matcher' => 'status', 'expected' => 200, 'state' => 'success', ], [ 'matcher' => 'error', 'expected' => 'InvalidVpcID.NotFound', 'state' => 'retry', ], ], ], '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', ], ], ], 'VpcPeeringConnectionExists' => [ 'delay' => 15, 'operation' => 'DescribeVpcPeeringConnections', 'maxAttempts' => 40, 'acceptors' => [ [ 'matcher' => 'status', 'expected' => 200, 'state' => 'success', ], [ 'matcher' => 'error', 'expected' => 'InvalidVpcPeeringConnectionID.NotFound', 'state' => 'retry', ], ], ], ],]; diff --git a/lib/aws/Aws/data/ec2/2016-09-15/api-2.json.php b/lib/aws/Aws/data/ec2/2016-09-15/api-2.json.php new file mode 100644 index 0000000..c2142ad --- /dev/null +++ b/lib/aws/Aws/data/ec2/2016-09-15/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ec2/2016-09-15/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'uid' => 'ec2-2016-09-15', 'apiVersion' => '2016-09-15', 'endpointPrefix' => 'ec2', 'protocol' => 'ec2', 'serviceAbbreviation' => 'Amazon EC2', 'serviceFullName' => 'Amazon Elastic Compute Cloud', 'signatureVersion' => 'v4', 'xmlNamespace' => 'http://ec2.amazonaws.com/doc/2016-09-15', ], 'operations' => [ 'AcceptReservedInstancesExchangeQuote' => [ 'name' => 'AcceptReservedInstancesExchangeQuote', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptReservedInstancesExchangeQuoteRequest', ], 'output' => [ 'shape' => 'AcceptReservedInstancesExchangeQuoteResult', ], ], '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', ], ], 'AllocateHosts' => [ 'name' => 'AllocateHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AllocateHostsRequest', ], 'output' => [ 'shape' => 'AllocateHostsResult', ], ], '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', ], ], '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', ], ], 'CreateNatGateway' => [ 'name' => 'CreateNatGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNatGatewayRequest', ], 'output' => [ 'shape' => 'CreateNatGatewayResult', ], ], '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', ], ], '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', ], ], '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', ], ], 'DeleteNatGateway' => [ 'name' => 'DeleteNatGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNatGatewayRequest', ], 'output' => [ 'shape' => 'DeleteNatGatewayResult', ], ], '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', ], ], 'DescribeHostReservationOfferings' => [ 'name' => 'DescribeHostReservationOfferings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHostReservationOfferingsRequest', ], 'output' => [ 'shape' => 'DescribeHostReservationOfferingsResult', ], ], 'DescribeHostReservations' => [ 'name' => 'DescribeHostReservations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHostReservationsRequest', ], 'output' => [ 'shape' => 'DescribeHostReservationsResult', ], ], 'DescribeHosts' => [ 'name' => 'DescribeHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHostsRequest', ], 'output' => [ 'shape' => 'DescribeHostsResult', ], ], 'DescribeIdFormat' => [ 'name' => 'DescribeIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIdFormatRequest', ], 'output' => [ 'shape' => 'DescribeIdFormatResult', ], ], 'DescribeIdentityIdFormat' => [ 'name' => 'DescribeIdentityIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIdentityIdFormatRequest', ], 'output' => [ 'shape' => 'DescribeIdentityIdFormatResult', ], ], 'DescribeImageAttribute' => [ 'name' => 'DescribeImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImageAttributeRequest', ], 'output' => [ 'shape' => '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', ], ], 'DescribeNatGateways' => [ 'name' => 'DescribeNatGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNatGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeNatGatewaysResult', ], ], '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', ], ], 'DescribeScheduledInstanceAvailability' => [ 'name' => 'DescribeScheduledInstanceAvailability', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScheduledInstanceAvailabilityRequest', ], 'output' => [ 'shape' => 'DescribeScheduledInstanceAvailabilityResult', ], ], 'DescribeScheduledInstances' => [ 'name' => 'DescribeScheduledInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScheduledInstancesRequest', ], 'output' => [ 'shape' => 'DescribeScheduledInstancesResult', ], ], 'DescribeSecurityGroupReferences' => [ 'name' => 'DescribeSecurityGroupReferences', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSecurityGroupReferencesRequest', ], 'output' => [ 'shape' => 'DescribeSecurityGroupReferencesResult', ], ], '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', ], ], 'DescribeStaleSecurityGroups' => [ 'name' => 'DescribeStaleSecurityGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStaleSecurityGroupsRequest', ], 'output' => [ 'shape' => 'DescribeStaleSecurityGroupsResult', ], ], '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', ], ], 'DescribeVpcClassicLinkDnsSupport' => [ 'name' => 'DescribeVpcClassicLinkDnsSupport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcClassicLinkDnsSupportRequest', ], 'output' => [ 'shape' => 'DescribeVpcClassicLinkDnsSupportResult', ], ], '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', ], ], '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', ], ], 'DisableVpcClassicLinkDnsSupport' => [ 'name' => 'DisableVpcClassicLinkDnsSupport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableVpcClassicLinkDnsSupportRequest', ], 'output' => [ 'shape' => 'DisableVpcClassicLinkDnsSupportResult', ], ], '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', ], ], 'EnableVpcClassicLinkDnsSupport' => [ 'name' => 'EnableVpcClassicLinkDnsSupport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableVpcClassicLinkDnsSupportRequest', ], 'output' => [ 'shape' => 'EnableVpcClassicLinkDnsSupportResult', ], ], 'GetConsoleOutput' => [ 'name' => 'GetConsoleOutput', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetConsoleOutputRequest', ], 'output' => [ 'shape' => 'GetConsoleOutputResult', ], ], 'GetConsoleScreenshot' => [ 'name' => 'GetConsoleScreenshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetConsoleScreenshotRequest', ], 'output' => [ 'shape' => 'GetConsoleScreenshotResult', ], ], 'GetHostReservationPurchasePreview' => [ 'name' => 'GetHostReservationPurchasePreview', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetHostReservationPurchasePreviewRequest', ], 'output' => [ 'shape' => 'GetHostReservationPurchasePreviewResult', ], ], 'GetPasswordData' => [ 'name' => 'GetPasswordData', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPasswordDataRequest', ], 'output' => [ 'shape' => 'GetPasswordDataResult', ], ], 'GetReservedInstancesExchangeQuote' => [ 'name' => 'GetReservedInstancesExchangeQuote', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetReservedInstancesExchangeQuoteRequest', ], 'output' => [ 'shape' => 'GetReservedInstancesExchangeQuoteResult', ], ], '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', ], ], 'ModifyHosts' => [ 'name' => 'ModifyHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyHostsRequest', ], 'output' => [ 'shape' => 'ModifyHostsResult', ], ], 'ModifyIdFormat' => [ 'name' => 'ModifyIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIdFormatRequest', ], ], 'ModifyIdentityIdFormat' => [ 'name' => 'ModifyIdentityIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIdentityIdFormatRequest', ], ], 'ModifyImageAttribute' => [ 'name' => 'ModifyImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyImageAttributeRequest', ], ], 'ModifyInstanceAttribute' => [ 'name' => 'ModifyInstanceAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceAttributeRequest', ], ], 'ModifyInstancePlacement' => [ 'name' => 'ModifyInstancePlacement', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstancePlacementRequest', ], 'output' => [ 'shape' => 'ModifyInstancePlacementResult', ], ], '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', ], ], 'ModifySpotFleetRequest' => [ 'name' => 'ModifySpotFleetRequest', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifySpotFleetRequestRequest', ], 'output' => [ 'shape' => 'ModifySpotFleetRequestResponse', ], ], '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', ], ], 'ModifyVpcPeeringConnectionOptions' => [ 'name' => 'ModifyVpcPeeringConnectionOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcPeeringConnectionOptionsRequest', ], 'output' => [ 'shape' => 'ModifyVpcPeeringConnectionOptionsResult', ], ], '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', ], ], 'PurchaseHostReservation' => [ 'name' => 'PurchaseHostReservation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseHostReservationRequest', ], 'output' => [ 'shape' => 'PurchaseHostReservationResult', ], ], 'PurchaseReservedInstancesOffering' => [ 'name' => 'PurchaseReservedInstancesOffering', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseReservedInstancesOfferingRequest', ], 'output' => [ 'shape' => 'PurchaseReservedInstancesOfferingResult', ], ], 'PurchaseScheduledInstances' => [ 'name' => 'PurchaseScheduledInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseScheduledInstancesRequest', ], 'output' => [ 'shape' => 'PurchaseScheduledInstancesResult', ], ], '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', ], ], 'ReleaseHosts' => [ 'name' => 'ReleaseHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReleaseHostsRequest', ], 'output' => [ 'shape' => 'ReleaseHostsResult', ], ], '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', ], ], 'RunScheduledInstances' => [ 'name' => 'RunScheduledInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RunScheduledInstancesRequest', ], 'output' => [ 'shape' => 'RunScheduledInstancesResult', ], ], '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' => [ 'AcceptReservedInstancesExchangeQuoteRequest' => [ 'type' => 'structure', 'required' => [ 'ReservedInstanceIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ReservedInstanceIds' => [ 'shape' => 'ReservedInstanceIdSet', 'locationName' => 'ReservedInstanceId', ], 'TargetConfigurations' => [ 'shape' => 'TargetConfigurationRequestSet', 'locationName' => 'TargetConfiguration', ], ], ], 'AcceptReservedInstancesExchangeQuoteResult' => [ 'type' => 'structure', 'members' => [ 'ExchangeId' => [ 'shape' => 'String', 'locationName' => 'exchangeId', ], ], ], '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', ], ], 'ActivityStatus' => [ 'type' => 'string', 'enum' => [ 'error', 'pending_fulfillment', 'pending_termination', 'fulfilled', ], ], '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', ], ], 'Affinity' => [ 'type' => 'string', 'enum' => [ 'default', 'host', ], ], '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', ], ], ], 'AllocateHostsRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceType', 'Quantity', 'AvailabilityZone', ], 'members' => [ 'AutoPlacement' => [ 'shape' => 'AutoPlacement', 'locationName' => 'autoPlacement', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'Quantity' => [ 'shape' => 'Integer', 'locationName' => 'quantity', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], ], ], 'AllocateHostsResult' => [ 'type' => 'structure', 'members' => [ 'HostIds' => [ 'shape' => 'ResponseHostIdList', 'locationName' => 'hostIdSet', ], ], ], 'AllocationIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'AllocationId', ], ], 'AllocationState' => [ 'type' => 'string', 'enum' => [ 'available', 'under-assessment', 'permanent-failure', 'released', 'released-permanent-failure', ], ], 'AllocationStrategy' => [ 'type' => 'string', 'enum' => [ 'lowestPrice', 'diversified', ], ], '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', ], ], ], 'AutoPlacement' => [ 'type' => 'string', 'enum' => [ 'on', 'off', ], ], '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', 'information', 'impaired', 'unavailable', ], ], 'AvailableCapacity' => [ 'type' => 'structure', 'members' => [ 'AvailableInstanceCapacity' => [ 'shape' => 'AvailableInstanceCapacityList', 'locationName' => 'availableInstanceCapacity', ], 'AvailableVCpus' => [ 'shape' => 'Integer', 'locationName' => 'availableVCpus', ], ], ], 'AvailableInstanceCapacityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceCapacity', 'locationName' => 'item', ], ], 'BatchState' => [ 'type' => 'string', 'enum' => [ 'submitted', 'active', 'cancelled', 'failed', 'cancelled_running', 'cancelled_terminating', 'modifying', ], ], 'Blob' => [ 'type' => 'blob', ], 'BlobAttributeValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Blob', 'locationName' => 'value', ], ], ], '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', ], ], 'ClassicLinkDnsSupport' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'ClassicLinkDnsSupported' => [ 'shape' => 'Boolean', 'locationName' => 'classicLinkDnsSupported', ], ], ], 'ClassicLinkDnsSupportList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClassicLinkDnsSupport', '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', ], 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], ], ], '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', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], ], ], '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', ], ], ], 'CreateNatGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', 'AllocationId', ], 'members' => [ 'SubnetId' => [ 'shape' => 'String', ], 'AllocationId' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', ], ], ], 'CreateNatGatewayResult' => [ 'type' => 'structure', 'members' => [ 'NatGateway' => [ 'shape' => 'NatGateway', 'locationName' => 'natGateway', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], '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', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], ], ], 'CreateRouteResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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', ], ], ], 'DeleteNatGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'NatGatewayId', ], 'members' => [ 'NatGatewayId' => [ 'shape' => 'String', ], ], ], 'DeleteNatGatewayResult' => [ 'type' => 'structure', 'members' => [ 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], ], ], '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', ], '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', ], ], ], 'DescribeHostReservationOfferingsRequest' => [ 'type' => 'structure', 'members' => [ 'OfferingId' => [ 'shape' => 'String', ], 'MinDuration' => [ 'shape' => 'Integer', ], 'MaxDuration' => [ 'shape' => 'Integer', ], 'Filter' => [ 'shape' => 'FilterList', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeHostReservationOfferingsResult' => [ 'type' => 'structure', 'members' => [ 'OfferingSet' => [ 'shape' => 'HostOfferingSet', 'locationName' => 'offeringSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeHostReservationsRequest' => [ 'type' => 'structure', 'members' => [ 'HostReservationIdSet' => [ 'shape' => 'HostReservationIdSet', ], 'Filter' => [ 'shape' => 'FilterList', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeHostReservationsResult' => [ 'type' => 'structure', 'members' => [ 'HostReservationSet' => [ 'shape' => 'HostReservationSet', 'locationName' => 'hostReservationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeHostsRequest' => [ 'type' => 'structure', 'members' => [ 'HostIds' => [ 'shape' => 'RequestHostIdList', 'locationName' => 'hostId', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'Filter' => [ 'shape' => 'FilterList', 'locationName' => 'filter', ], ], ], 'DescribeHostsResult' => [ 'type' => 'structure', 'members' => [ 'Hosts' => [ 'shape' => 'HostList', 'locationName' => 'hostSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeIdFormatRequest' => [ 'type' => 'structure', 'members' => [ 'Resource' => [ 'shape' => 'String', ], ], ], 'DescribeIdFormatResult' => [ 'type' => 'structure', 'members' => [ 'Statuses' => [ 'shape' => 'IdFormatList', 'locationName' => 'statusSet', ], ], ], 'DescribeIdentityIdFormatRequest' => [ 'type' => 'structure', 'required' => [ 'PrincipalArn', ], 'members' => [ 'Resource' => [ 'shape' => 'String', 'locationName' => 'resource', ], 'PrincipalArn' => [ 'shape' => 'String', 'locationName' => 'principalArn', ], ], ], 'DescribeIdentityIdFormatResult' => [ 'type' => 'structure', 'members' => [ 'Statuses' => [ 'shape' => 'IdFormatList', 'locationName' => 'statusSet', ], ], ], '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', ], ], ], 'DescribeNatGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'NatGatewayIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'NatGatewayId', ], 'Filter' => [ 'shape' => 'FilterList', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeNatGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'NatGateways' => [ 'shape' => 'NatGatewayList', 'locationName' => 'natGatewaySet', ], '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' => 'Filter', ], ], ], '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', ], 'OfferingClass' => [ 'shape' => 'OfferingClassType', ], ], ], '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', ], 'OfferingClass' => [ 'shape' => 'OfferingClassType', ], ], ], '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', ], ], ], 'DescribeScheduledInstanceAvailabilityRequest' => [ 'type' => 'structure', 'required' => [ 'Recurrence', 'FirstSlotStartTimeRange', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Recurrence' => [ 'shape' => 'ScheduledInstanceRecurrenceRequest', ], 'FirstSlotStartTimeRange' => [ 'shape' => 'SlotDateTimeRangeRequest', ], 'MinSlotDurationInHours' => [ 'shape' => 'Integer', ], 'MaxSlotDurationInHours' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeScheduledInstanceAvailabilityResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ScheduledInstanceAvailabilitySet' => [ 'shape' => 'ScheduledInstanceAvailabilitySet', 'locationName' => 'scheduledInstanceAvailabilitySet', ], ], ], 'DescribeScheduledInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ScheduledInstanceIds' => [ 'shape' => 'ScheduledInstanceIdRequestSet', 'locationName' => 'ScheduledInstanceId', ], 'SlotStartTimeRange' => [ 'shape' => 'SlotStartTimeRangeRequest', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeScheduledInstancesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ScheduledInstanceSet' => [ 'shape' => 'ScheduledInstanceSet', 'locationName' => 'scheduledInstanceSet', ], ], ], 'DescribeSecurityGroupReferencesRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'GroupId' => [ 'shape' => 'GroupIds', ], ], ], 'DescribeSecurityGroupReferencesResult' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupReferenceSet' => [ 'shape' => 'SecurityGroupReferences', 'locationName' => 'securityGroupReferenceSet', ], ], ], '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', ], ], ], 'DescribeStaleSecurityGroupsRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcId' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeStaleSecurityGroupsResult' => [ 'type' => 'structure', 'members' => [ 'StaleSecurityGroupSet' => [ 'shape' => 'StaleSecurityGroupSet', 'locationName' => 'staleSecurityGroupSet', ], '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', 'Attribute', ], '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', ], ], ], 'DescribeVpcClassicLinkDnsSupportRequest' => [ 'type' => 'structure', 'members' => [ 'VpcIds' => [ 'shape' => 'VpcClassicLinkIdList', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcClassicLinkDnsSupportResult' => [ 'type' => 'structure', 'members' => [ 'Vpcs' => [ 'shape' => 'ClassicLinkDnsSupportList', 'locationName' => 'vpcs', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], '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', ], ], 'DhcpConfigurationValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeValue', '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', ], ], ], 'DisableVpcClassicLinkDnsSupportRequest' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'String', ], ], ], 'DisableVpcClassicLinkDnsSupportResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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', ], ], ], 'EnableVpcClassicLinkDnsSupportRequest' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'String', ], ], ], 'EnableVpcClassicLinkDnsSupportResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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', ], ], 'ExcessCapacityTerminationPolicy' => [ 'type' => 'string', 'enum' => [ 'noTermination', 'default', ], ], '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', ], ], 'FleetType' => [ 'type' => 'string', 'enum' => [ 'request', 'maintain', ], ], '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', ], ], ], 'GetConsoleScreenshotRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'String', ], 'WakeUp' => [ 'shape' => 'Boolean', ], ], ], 'GetConsoleScreenshotResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'ImageData' => [ 'shape' => 'String', 'locationName' => 'imageData', ], ], ], 'GetHostReservationPurchasePreviewRequest' => [ 'type' => 'structure', 'required' => [ 'OfferingId', 'HostIdSet', ], 'members' => [ 'OfferingId' => [ 'shape' => 'String', ], 'HostIdSet' => [ 'shape' => 'RequestHostIdSet', ], ], ], 'GetHostReservationPurchasePreviewResult' => [ 'type' => 'structure', 'members' => [ 'Purchase' => [ 'shape' => 'PurchaseSet', 'locationName' => 'purchase', ], 'TotalUpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'totalUpfrontPrice', ], 'TotalHourlyPrice' => [ 'shape' => 'String', 'locationName' => 'totalHourlyPrice', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], ], ], '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', ], ], ], 'GetReservedInstancesExchangeQuoteRequest' => [ 'type' => 'structure', 'required' => [ 'ReservedInstanceIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ReservedInstanceIds' => [ 'shape' => 'ReservedInstanceIdSet', 'locationName' => 'ReservedInstanceId', ], 'TargetConfigurations' => [ 'shape' => 'TargetConfigurationRequestSet', 'locationName' => 'TargetConfiguration', ], ], ], 'GetReservedInstancesExchangeQuoteResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstanceValueSet' => [ 'shape' => 'ReservedInstanceReservationValueSet', 'locationName' => 'reservedInstanceValueSet', ], 'ReservedInstanceValueRollup' => [ 'shape' => 'ReservationValue', 'locationName' => 'reservedInstanceValueRollup', ], 'TargetConfigurationValueSet' => [ 'shape' => 'TargetReservationValueSet', 'locationName' => 'targetConfigurationValueSet', ], 'TargetConfigurationValueRollup' => [ 'shape' => 'ReservationValue', 'locationName' => 'targetConfigurationValueRollup', ], 'PaymentDue' => [ 'shape' => 'String', 'locationName' => 'paymentDue', ], 'CurrencyCode' => [ 'shape' => 'String', 'locationName' => 'currencyCode', ], 'OutputReservedInstancesWillExpireAt' => [ 'shape' => 'DateTime', 'locationName' => 'outputReservedInstancesWillExpireAt', ], 'IsValidExchange' => [ 'shape' => 'Boolean', 'locationName' => 'isValidExchange', ], 'ValidationFailureReason' => [ 'shape' => 'String', 'locationName' => 'validationFailureReason', ], ], ], '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', ], ], 'GroupIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', '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', ], ], 'Host' => [ 'type' => 'structure', 'members' => [ 'HostId' => [ 'shape' => 'String', 'locationName' => 'hostId', ], 'AutoPlacement' => [ 'shape' => 'AutoPlacement', 'locationName' => 'autoPlacement', ], 'HostReservationId' => [ 'shape' => 'String', 'locationName' => 'hostReservationId', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'HostProperties' => [ 'shape' => 'HostProperties', 'locationName' => 'hostProperties', ], 'State' => [ 'shape' => 'AllocationState', 'locationName' => 'state', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Instances' => [ 'shape' => 'HostInstanceList', 'locationName' => 'instances', ], 'AvailableCapacity' => [ 'shape' => 'AvailableCapacity', 'locationName' => 'availableCapacity', ], ], ], 'HostInstance' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], ], ], 'HostInstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostInstance', 'locationName' => 'item', ], ], 'HostList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Host', 'locationName' => 'item', ], ], 'HostOffering' => [ 'type' => 'structure', 'members' => [ 'OfferingId' => [ 'shape' => 'String', 'locationName' => 'offeringId', ], 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], 'PaymentOption' => [ 'shape' => 'PaymentOption', 'locationName' => 'paymentOption', ], 'UpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'upfrontPrice', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Duration' => [ 'shape' => 'Integer', 'locationName' => 'duration', ], ], ], 'HostOfferingSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostOffering', ], ], 'HostProperties' => [ 'type' => 'structure', 'members' => [ 'Sockets' => [ 'shape' => 'Integer', 'locationName' => 'sockets', ], 'Cores' => [ 'shape' => 'Integer', 'locationName' => 'cores', ], 'TotalVCpus' => [ 'shape' => 'Integer', 'locationName' => 'totalVCpus', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], ], ], 'HostReservation' => [ 'type' => 'structure', 'members' => [ 'HostReservationId' => [ 'shape' => 'String', 'locationName' => 'hostReservationId', ], 'HostIdSet' => [ 'shape' => 'ResponseHostIdSet', 'locationName' => 'hostIdSet', ], 'OfferingId' => [ 'shape' => 'String', 'locationName' => 'offeringId', ], 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], 'PaymentOption' => [ 'shape' => 'PaymentOption', 'locationName' => 'paymentOption', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'UpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'upfrontPrice', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Count' => [ 'shape' => 'Integer', 'locationName' => 'count', ], 'Duration' => [ 'shape' => 'Integer', 'locationName' => 'duration', ], 'End' => [ 'shape' => 'DateTime', 'locationName' => 'end', ], 'Start' => [ 'shape' => 'DateTime', 'locationName' => 'start', ], 'State' => [ 'shape' => 'ReservationState', 'locationName' => 'state', ], ], ], 'HostReservationIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'HostReservationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostReservation', ], ], 'HostTenancy' => [ 'type' => 'string', 'enum' => [ 'dedicated', 'host', ], ], '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', ], ], ], 'IdFormat' => [ 'type' => 'structure', 'members' => [ 'Resource' => [ 'shape' => 'String', 'locationName' => 'resource', ], 'UseLongIds' => [ 'shape' => 'Boolean', 'locationName' => 'useLongIds', ], 'Deadline' => [ 'shape' => 'DateTime', 'locationName' => 'deadline', ], ], ], 'IdFormatList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IdFormat', 'locationName' => 'item', ], ], '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', ], 'EnaSupport' => [ 'shape' => 'Boolean', 'locationName' => 'enaSupport', ], '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', ], 'EnaSupport' => [ 'shape' => 'Boolean', 'locationName' => 'enaSupport', ], ], ], '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', ], 'EnaSupport' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'enaSupport', ], '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', 'enaSupport', ], ], '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', ], ], 'InstanceCapacity' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'AvailableCapacity' => [ 'shape' => 'Integer', 'locationName' => 'availableCapacity', ], 'TotalCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalCapacity', ], ], ], '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', ], ], ], 'InstanceIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'InstanceIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'InstanceId', ], ], 'InstanceLifecycleType' => [ 'type' => 'string', 'enum' => [ 'spot', 'scheduled', ], ], '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', 't2.nano', 't2.micro', 't2.small', 't2.medium', 't2.large', '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', 'm4.16xlarge', 'm2.xlarge', 'm2.2xlarge', 'm2.4xlarge', 'cr1.8xlarge', 'r3.large', 'r3.xlarge', 'r3.2xlarge', 'r3.4xlarge', 'r3.8xlarge', 'x1.16xlarge', 'x1.32xlarge', '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', 'g2.8xlarge', 'cg1.4xlarge', 'p2.xlarge', 'p2.8xlarge', 'p2.16xlarge', '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', ], ], 'IpRanges' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', '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' => 'SpotFleetLaunchSpecification', 'locationName' => 'item', ], 'min' => 1, ], 'ListingState' => [ 'type' => 'string', 'enum' => [ 'available', 'sold', 'cancelled', 'pending', ], ], 'ListingStatus' => [ 'type' => 'string', 'enum' => [ 'active', 'pending', 'cancelled', 'closed', ], ], 'Long' => [ 'type' => 'long', ], 'MaxResults' => [ 'type' => 'integer', 'max' => 255, 'min' => 5, ], 'ModifyHostsRequest' => [ 'type' => 'structure', 'required' => [ 'HostIds', 'AutoPlacement', ], 'members' => [ 'HostIds' => [ 'shape' => 'RequestHostIdList', 'locationName' => 'hostId', ], 'AutoPlacement' => [ 'shape' => 'AutoPlacement', 'locationName' => 'autoPlacement', ], ], ], 'ModifyHostsResult' => [ 'type' => 'structure', 'members' => [ 'Successful' => [ 'shape' => 'ResponseHostIdList', 'locationName' => 'successful', ], 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemList', 'locationName' => 'unsuccessful', ], ], ], 'ModifyIdFormatRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'UseLongIds', ], 'members' => [ 'Resource' => [ 'shape' => 'String', ], 'UseLongIds' => [ 'shape' => 'Boolean', ], ], ], 'ModifyIdentityIdFormatRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'UseLongIds', 'PrincipalArn', ], 'members' => [ 'Resource' => [ 'shape' => 'String', 'locationName' => 'resource', ], 'UseLongIds' => [ 'shape' => 'Boolean', 'locationName' => 'useLongIds', ], 'PrincipalArn' => [ 'shape' => 'String', 'locationName' => 'principalArn', ], ], ], 'ModifyImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'ImageId' => [ 'shape' => 'String', ], 'Attribute' => [ 'shape' => 'String', ], 'OperationType' => [ 'shape' => 'OperationType', ], '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', ], 'EnaSupport' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'enaSupport', ], ], ], 'ModifyInstancePlacementRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Tenancy' => [ 'shape' => 'HostTenancy', 'locationName' => 'tenancy', ], 'Affinity' => [ 'shape' => 'Affinity', 'locationName' => 'affinity', ], 'HostId' => [ 'shape' => 'String', 'locationName' => 'hostId', ], ], ], 'ModifyInstancePlacementResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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' => 'OperationType', ], 'UserIds' => [ 'shape' => 'UserIdStringList', 'locationName' => 'UserId', ], 'GroupNames' => [ 'shape' => 'GroupNameStringList', 'locationName' => 'UserGroup', ], 'CreateVolumePermission' => [ 'shape' => 'CreateVolumePermissionModifications', ], ], ], 'ModifySpotFleetRequestRequest' => [ 'type' => 'structure', 'required' => [ 'SpotFleetRequestId', ], 'members' => [ 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], 'TargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'targetCapacity', ], 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'ExcessCapacityTerminationPolicy', 'locationName' => 'excessCapacityTerminationPolicy', ], ], ], 'ModifySpotFleetRequestResponse' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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', ], ], ], 'ModifyVpcPeeringConnectionOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'VpcPeeringConnectionId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', ], 'RequesterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptionsRequest', ], 'AccepterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptionsRequest', ], ], ], 'ModifyVpcPeeringConnectionOptionsResult' => [ 'type' => 'structure', 'members' => [ 'RequesterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptions', 'locationName' => 'requesterPeeringConnectionOptions', ], 'AccepterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptions', 'locationName' => 'accepterPeeringConnectionOptions', ], ], ], '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', ], ], 'NatGateway' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'DeleteTime' => [ 'shape' => 'DateTime', 'locationName' => 'deleteTime', ], 'NatGatewayAddresses' => [ 'shape' => 'NatGatewayAddressList', 'locationName' => 'natGatewayAddressSet', ], 'State' => [ 'shape' => 'NatGatewayState', 'locationName' => 'state', ], 'FailureCode' => [ 'shape' => 'String', 'locationName' => 'failureCode', ], 'FailureMessage' => [ 'shape' => 'String', 'locationName' => 'failureMessage', ], 'ProvisionedBandwidth' => [ 'shape' => 'ProvisionedBandwidth', 'locationName' => 'provisionedBandwidth', ], ], ], 'NatGatewayAddress' => [ 'type' => 'structure', 'members' => [ 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], 'AllocationId' => [ 'shape' => 'String', 'locationName' => 'allocationId', ], 'PrivateIp' => [ 'shape' => 'String', 'locationName' => 'privateIp', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], ], ], 'NatGatewayAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NatGatewayAddress', 'locationName' => 'item', ], ], 'NatGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NatGateway', 'locationName' => 'item', ], ], 'NatGatewayState' => [ 'type' => 'string', 'enum' => [ 'pending', 'failed', 'available', 'deleting', 'deleted', ], ], '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', ], 'InterfaceType' => [ 'shape' => 'NetworkInterfaceType', 'locationName' => 'interfaceType', ], ], ], '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', ], ], 'NetworkInterfaceType' => [ 'type' => 'string', 'enum' => [ 'interface', 'natGateway', ], ], 'NewDhcpConfiguration' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', 'locationName' => 'key', ], 'Values' => [ 'shape' => 'ValueStringList', 'locationName' => 'Value', ], ], ], 'NewDhcpConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NewDhcpConfiguration', 'locationName' => 'item', ], ], 'NextToken' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'OccurrenceDayRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Integer', 'locationName' => 'OccurenceDay', ], ], 'OccurrenceDaySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Integer', 'locationName' => 'item', ], ], 'OfferingClassType' => [ 'type' => 'string', 'enum' => [ 'standard', 'convertible', ], ], 'OfferingTypeValues' => [ 'type' => 'string', 'enum' => [ 'Heavy Utilization', 'Medium Utilization', 'Light Utilization', 'No Upfront', 'Partial Upfront', 'All Upfront', ], ], 'OperationType' => [ 'type' => 'string', 'enum' => [ 'add', 'remove', ], ], 'OwnerStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'Owner', ], ], 'PaymentOption' => [ 'type' => 'string', 'enum' => [ 'AllUpfront', 'PartialUpfront', 'NoUpfront', ], ], 'PeeringConnectionOptions' => [ 'type' => 'structure', 'members' => [ 'AllowEgressFromLocalClassicLinkToRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalClassicLinkToRemoteVpc', ], 'AllowEgressFromLocalVpcToRemoteClassicLink' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalVpcToRemoteClassicLink', ], 'AllowDnsResolutionFromRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowDnsResolutionFromRemoteVpc', ], ], ], 'PeeringConnectionOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'AllowEgressFromLocalClassicLinkToRemoteVpc' => [ 'shape' => 'Boolean', ], 'AllowEgressFromLocalVpcToRemoteClassicLink' => [ 'shape' => 'Boolean', ], 'AllowDnsResolutionFromRemoteVpc' => [ 'shape' => 'Boolean', ], ], ], 'PermissionGroup' => [ 'type' => 'string', 'enum' => [ 'all', ], ], 'Placement' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'Tenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'tenancy', ], 'HostId' => [ 'shape' => 'String', 'locationName' => 'hostId', ], 'Affinity' => [ 'shape' => 'String', 'locationName' => 'affinity', ], ], ], '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', ], ], 'PrefixListIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', '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', ], ], 'PrivateIpAddressConfigSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesPrivateIpAddressConfig', 'locationName' => 'PrivateIpAddressConfigSet', ], ], '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', ], ], 'ProvisionedBandwidth' => [ 'type' => 'structure', 'members' => [ 'Provisioned' => [ 'shape' => 'String', 'locationName' => 'provisioned', ], 'Requested' => [ 'shape' => 'String', 'locationName' => 'requested', ], 'RequestTime' => [ 'shape' => 'DateTime', 'locationName' => 'requestTime', ], 'ProvisionTime' => [ 'shape' => 'DateTime', 'locationName' => 'provisionTime', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], ], ], 'PublicIpStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'PublicIp', ], ], 'Purchase' => [ 'type' => 'structure', 'members' => [ 'HostReservationId' => [ 'shape' => 'String', 'locationName' => 'hostReservationId', ], 'HostIdSet' => [ 'shape' => 'ResponseHostIdSet', 'locationName' => 'hostIdSet', ], 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], 'PaymentOption' => [ 'shape' => 'PaymentOption', 'locationName' => 'paymentOption', ], 'UpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'upfrontPrice', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Duration' => [ 'shape' => 'Integer', 'locationName' => 'duration', ], ], ], 'PurchaseHostReservationRequest' => [ 'type' => 'structure', 'required' => [ 'OfferingId', 'HostIdSet', ], 'members' => [ 'OfferingId' => [ 'shape' => 'String', ], 'HostIdSet' => [ 'shape' => 'RequestHostIdSet', ], 'LimitPrice' => [ 'shape' => 'String', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', ], 'ClientToken' => [ 'shape' => 'String', ], ], ], 'PurchaseHostReservationResult' => [ 'type' => 'structure', 'members' => [ 'Purchase' => [ 'shape' => 'PurchaseSet', 'locationName' => 'purchase', ], 'TotalUpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'totalUpfrontPrice', ], 'TotalHourlyPrice' => [ 'shape' => 'String', 'locationName' => 'totalHourlyPrice', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'PurchaseRequest' => [ 'type' => 'structure', 'required' => [ 'PurchaseToken', 'InstanceCount', ], 'members' => [ 'PurchaseToken' => [ 'shape' => 'String', ], 'InstanceCount' => [ 'shape' => 'Integer', ], ], ], 'PurchaseRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PurchaseRequest', 'locationName' => 'PurchaseRequest', ], 'min' => 1, ], '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', ], ], ], 'PurchaseScheduledInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'PurchaseRequests', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'PurchaseRequests' => [ 'shape' => 'PurchaseRequestSet', 'locationName' => 'PurchaseRequest', ], ], ], 'PurchaseScheduledInstancesResult' => [ 'type' => 'structure', 'members' => [ 'ScheduledInstanceSet' => [ 'shape' => 'PurchasedScheduledInstanceSet', 'locationName' => 'scheduledInstanceSet', ], ], ], 'PurchaseSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Purchase', ], ], 'PurchasedScheduledInstanceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstance', 'locationName' => 'item', ], ], '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', ], 'EnaSupport' => [ 'shape' => 'Boolean', 'locationName' => 'enaSupport', ], ], ], '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', ], ], ], 'ReleaseHostsRequest' => [ 'type' => 'structure', 'required' => [ 'HostIds', ], 'members' => [ 'HostIds' => [ 'shape' => 'RequestHostIdList', 'locationName' => 'hostId', ], ], ], 'ReleaseHostsResult' => [ 'type' => 'structure', 'members' => [ 'Successful' => [ 'shape' => 'ResponseHostIdList', 'locationName' => 'successful', ], 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemList', 'locationName' => 'unsuccessful', ], ], ], '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', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], ], ], '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', ], ], 'RequestHostIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'RequestHostIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], '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', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', 'locationName' => 'blockDurationMinutes', ], 'LaunchSpecification' => [ 'shape' => 'RequestSpotLaunchSpecification', ], ], ], 'RequestSpotInstancesResult' => [ 'type' => 'structure', 'members' => [ 'SpotInstanceRequests' => [ 'shape' => 'SpotInstanceRequestList', 'locationName' => 'spotInstanceRequestSet', ], ], ], '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', ], ], ], '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', ], ], 'ReservationState' => [ 'type' => 'string', 'enum' => [ 'payment-pending', 'payment-failed', 'active', 'retired', ], ], 'ReservationValue' => [ 'type' => 'structure', 'members' => [ 'RemainingTotalValue' => [ 'shape' => 'String', 'locationName' => 'remainingTotalValue', ], 'RemainingUpfrontValue' => [ 'shape' => 'String', 'locationName' => 'remainingUpfrontValue', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], ], ], 'ReservedInstanceIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ReservedInstanceId', ], ], 'ReservedInstanceLimitPrice' => [ 'type' => 'structure', 'members' => [ 'Amount' => [ 'shape' => 'Double', 'locationName' => 'amount', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], ], ], 'ReservedInstanceReservationValue' => [ 'type' => 'structure', 'members' => [ 'ReservedInstanceId' => [ 'shape' => 'String', 'locationName' => 'reservedInstanceId', ], 'ReservationValue' => [ 'shape' => 'ReservationValue', 'locationName' => 'reservationValue', ], ], ], 'ReservedInstanceReservationValueSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstanceReservationValue', 'locationName' => 'item', ], ], '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', ], 'OfferingClass' => [ 'shape' => 'OfferingClassType', 'locationName' => 'offeringClass', ], 'Scope' => [ 'shape' => 'scope', 'locationName' => 'scope', ], ], ], 'ReservedInstancesConfiguration' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'Scope' => [ 'shape' => 'scope', 'locationName' => 'scope', ], ], ], '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', ], 'OfferingClass' => [ 'shape' => 'OfferingClassType', 'locationName' => 'offeringClass', ], 'Scope' => [ 'shape' => 'scope', 'locationName' => 'scope', ], ], ], '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', ], ], 'ResponseHostIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'ResponseHostIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], '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', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], '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', ], ], ], 'RunScheduledInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'ScheduledInstanceId', 'LaunchSpecification', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'InstanceCount' => [ 'shape' => 'Integer', ], 'ScheduledInstanceId' => [ 'shape' => 'String', ], 'LaunchSpecification' => [ 'shape' => 'ScheduledInstancesLaunchSpecification', ], ], ], 'RunScheduledInstancesResult' => [ 'type' => 'structure', 'members' => [ 'InstanceIdSet' => [ 'shape' => 'InstanceIdSet', 'locationName' => 'instanceIdSet', ], ], ], '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', ], ], ], 'ScheduledInstance' => [ 'type' => 'structure', 'members' => [ 'ScheduledInstanceId' => [ 'shape' => 'String', 'locationName' => 'scheduledInstanceId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'NetworkPlatform' => [ 'shape' => 'String', 'locationName' => 'networkPlatform', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'SlotDurationInHours' => [ 'shape' => 'Integer', 'locationName' => 'slotDurationInHours', ], 'Recurrence' => [ 'shape' => 'ScheduledInstanceRecurrence', 'locationName' => 'recurrence', ], 'PreviousSlotEndTime' => [ 'shape' => 'DateTime', 'locationName' => 'previousSlotEndTime', ], 'NextSlotStartTime' => [ 'shape' => 'DateTime', 'locationName' => 'nextSlotStartTime', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'TotalScheduledInstanceHours' => [ 'shape' => 'Integer', 'locationName' => 'totalScheduledInstanceHours', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'TermStartDate' => [ 'shape' => 'DateTime', 'locationName' => 'termStartDate', ], 'TermEndDate' => [ 'shape' => 'DateTime', 'locationName' => 'termEndDate', ], 'CreateDate' => [ 'shape' => 'DateTime', 'locationName' => 'createDate', ], ], ], 'ScheduledInstanceAvailability' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'NetworkPlatform' => [ 'shape' => 'String', 'locationName' => 'networkPlatform', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'PurchaseToken' => [ 'shape' => 'String', 'locationName' => 'purchaseToken', ], 'SlotDurationInHours' => [ 'shape' => 'Integer', 'locationName' => 'slotDurationInHours', ], 'Recurrence' => [ 'shape' => 'ScheduledInstanceRecurrence', 'locationName' => 'recurrence', ], 'FirstSlotStartTime' => [ 'shape' => 'DateTime', 'locationName' => 'firstSlotStartTime', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'TotalScheduledInstanceHours' => [ 'shape' => 'Integer', 'locationName' => 'totalScheduledInstanceHours', ], 'AvailableInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'availableInstanceCount', ], 'MinTermDurationInDays' => [ 'shape' => 'Integer', 'locationName' => 'minTermDurationInDays', ], 'MaxTermDurationInDays' => [ 'shape' => 'Integer', 'locationName' => 'maxTermDurationInDays', ], ], ], 'ScheduledInstanceAvailabilitySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstanceAvailability', 'locationName' => 'item', ], ], 'ScheduledInstanceIdRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ScheduledInstanceId', ], ], 'ScheduledInstanceRecurrence' => [ 'type' => 'structure', 'members' => [ 'Frequency' => [ 'shape' => 'String', 'locationName' => 'frequency', ], 'Interval' => [ 'shape' => 'Integer', 'locationName' => 'interval', ], 'OccurrenceDaySet' => [ 'shape' => 'OccurrenceDaySet', 'locationName' => 'occurrenceDaySet', ], 'OccurrenceRelativeToEnd' => [ 'shape' => 'Boolean', 'locationName' => 'occurrenceRelativeToEnd', ], 'OccurrenceUnit' => [ 'shape' => 'String', 'locationName' => 'occurrenceUnit', ], ], ], 'ScheduledInstanceRecurrenceRequest' => [ 'type' => 'structure', 'members' => [ 'Frequency' => [ 'shape' => 'String', ], 'Interval' => [ 'shape' => 'Integer', ], 'OccurrenceDays' => [ 'shape' => 'OccurrenceDayRequestSet', 'locationName' => 'OccurrenceDay', ], 'OccurrenceRelativeToEnd' => [ 'shape' => 'Boolean', ], 'OccurrenceUnit' => [ 'shape' => 'String', ], ], ], 'ScheduledInstanceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstance', 'locationName' => 'item', ], ], 'ScheduledInstancesBlockDeviceMapping' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', ], 'NoDevice' => [ 'shape' => 'String', ], 'VirtualName' => [ 'shape' => 'String', ], 'Ebs' => [ 'shape' => 'ScheduledInstancesEbs', ], ], ], 'ScheduledInstancesBlockDeviceMappingSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesBlockDeviceMapping', 'locationName' => 'BlockDeviceMapping', ], ], 'ScheduledInstancesEbs' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', ], 'VolumeSize' => [ 'shape' => 'Integer', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'VolumeType' => [ 'shape' => 'String', ], 'Iops' => [ 'shape' => 'Integer', ], 'Encrypted' => [ 'shape' => 'Boolean', ], ], ], 'ScheduledInstancesIamInstanceProfile' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesLaunchSpecification' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'String', ], 'KeyName' => [ 'shape' => 'String', ], 'SecurityGroupIds' => [ 'shape' => 'ScheduledInstancesSecurityGroupIdSet', 'locationName' => 'SecurityGroupId', ], 'UserData' => [ 'shape' => 'String', ], 'Placement' => [ 'shape' => 'ScheduledInstancesPlacement', ], 'KernelId' => [ 'shape' => 'String', ], 'InstanceType' => [ 'shape' => 'String', ], 'RamdiskId' => [ 'shape' => 'String', ], 'BlockDeviceMappings' => [ 'shape' => 'ScheduledInstancesBlockDeviceMappingSet', 'locationName' => 'BlockDeviceMapping', ], 'Monitoring' => [ 'shape' => 'ScheduledInstancesMonitoring', ], 'SubnetId' => [ 'shape' => 'String', ], 'NetworkInterfaces' => [ 'shape' => 'ScheduledInstancesNetworkInterfaceSet', 'locationName' => 'NetworkInterface', ], 'IamInstanceProfile' => [ 'shape' => 'ScheduledInstancesIamInstanceProfile', ], 'EbsOptimized' => [ 'shape' => 'Boolean', ], ], ], 'ScheduledInstancesMonitoring' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], ], ], 'ScheduledInstancesNetworkInterface' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'String', ], 'DeviceIndex' => [ 'shape' => 'Integer', ], 'SubnetId' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'PrivateIpAddress' => [ 'shape' => 'String', ], 'PrivateIpAddressConfigs' => [ 'shape' => 'PrivateIpAddressConfigSet', 'locationName' => 'PrivateIpAddressConfig', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', ], 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', ], 'Groups' => [ 'shape' => 'ScheduledInstancesSecurityGroupIdSet', 'locationName' => 'Group', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], ], ], 'ScheduledInstancesNetworkInterfaceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesNetworkInterface', 'locationName' => 'NetworkInterface', ], ], 'ScheduledInstancesPlacement' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', ], 'GroupName' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesPrivateIpAddressConfig' => [ 'type' => 'structure', 'members' => [ 'PrivateIpAddress' => [ 'shape' => 'String', ], 'Primary' => [ 'shape' => 'Boolean', ], ], ], 'ScheduledInstancesSecurityGroupIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'SecurityGroupId', ], ], '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', ], ], 'SecurityGroupReference' => [ 'type' => 'structure', 'required' => [ 'GroupId', 'ReferencingVpcId', ], 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'ReferencingVpcId' => [ 'shape' => 'String', 'locationName' => 'referencingVpcId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], ], ], 'SecurityGroupReferences' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupReference', 'locationName' => 'item', ], ], 'SecurityGroupStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'SecurityGroup', ], ], 'ShutdownBehavior' => [ 'type' => 'string', 'enum' => [ 'stop', 'terminate', ], ], 'SlotDateTimeRangeRequest' => [ 'type' => 'structure', 'required' => [ 'EarliestTime', 'LatestTime', ], 'members' => [ 'EarliestTime' => [ 'shape' => 'DateTime', ], 'LatestTime' => [ 'shape' => 'DateTime', ], ], ], 'SlotStartTimeRangeRequest' => [ 'type' => 'structure', 'members' => [ 'EarliestTime' => [ 'shape' => 'DateTime', ], 'LatestTime' => [ 'shape' => 'DateTime', ], ], ], 'Snapshot' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'State' => [ 'shape' => 'SnapshotState', 'locationName' => 'status', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], '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', ], 'DataEncryptionKeyId' => [ 'shape' => 'String', 'locationName' => 'dataEncryptionKeyId', ], ], ], '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', ], ], ], 'SpotFleetLaunchSpecification' => [ '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', ], 'Monitoring' => [ 'shape' => 'SpotFleetMonitoring', 'locationName' => 'monitoring', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'NetworkInterfaces' => [ 'shape' => 'InstanceNetworkInterfaceSpecificationList', 'locationName' => 'networkInterfaceSet', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', 'locationName' => 'iamInstanceProfile', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'WeightedCapacity' => [ 'shape' => 'Double', 'locationName' => 'weightedCapacity', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], ], ], 'SpotFleetMonitoring' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], ], ], 'SpotFleetRequestConfig' => [ 'type' => 'structure', 'required' => [ 'SpotFleetRequestId', 'SpotFleetRequestState', 'SpotFleetRequestConfig', 'CreateTime', ], 'members' => [ 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], 'SpotFleetRequestState' => [ 'shape' => 'BatchState', 'locationName' => 'spotFleetRequestState', ], 'SpotFleetRequestConfig' => [ 'shape' => 'SpotFleetRequestConfigData', 'locationName' => 'spotFleetRequestConfig', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'ActivityStatus' => [ 'shape' => 'ActivityStatus', 'locationName' => 'activityStatus', ], ], ], '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', ], 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'ExcessCapacityTerminationPolicy', 'locationName' => 'excessCapacityTerminationPolicy', ], 'AllocationStrategy' => [ 'shape' => 'AllocationStrategy', 'locationName' => 'allocationStrategy', ], 'FulfilledCapacity' => [ 'shape' => 'Double', 'locationName' => 'fulfilledCapacity', ], 'Type' => [ 'shape' => 'FleetType', 'locationName' => 'type', ], ], ], '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', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', 'locationName' => 'blockDurationMinutes', ], 'ActualBlockHourlyPrice' => [ 'shape' => 'String', 'locationName' => 'actualBlockHourlyPrice', ], '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', ], ], 'StaleIpPermission' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'IpProtocol' => [ 'shape' => 'String', 'locationName' => 'ipProtocol', ], 'IpRanges' => [ 'shape' => 'IpRanges', 'locationName' => 'ipRanges', ], 'PrefixListIds' => [ 'shape' => 'PrefixListIdSet', 'locationName' => 'prefixListIds', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], 'UserIdGroupPairs' => [ 'shape' => 'UserIdGroupPairSet', 'locationName' => 'groups', ], ], ], 'StaleIpPermissionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'StaleIpPermission', 'locationName' => 'item', ], ], 'StaleSecurityGroup' => [ 'type' => 'structure', 'required' => [ 'GroupId', ], 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'StaleIpPermissions' => [ 'shape' => 'StaleIpPermissionSet', 'locationName' => 'staleIpPermissions', ], 'StaleIpPermissionsEgress' => [ 'shape' => 'StaleIpPermissionSet', 'locationName' => 'staleIpPermissionsEgress', ], ], ], 'StaleSecurityGroupSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'StaleSecurityGroup', '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', ], ], 'TargetConfiguration' => [ 'type' => 'structure', 'members' => [ 'OfferingId' => [ 'shape' => 'String', 'locationName' => 'offeringId', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], ], ], 'TargetConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'OfferingId', ], 'members' => [ 'OfferingId' => [ 'shape' => 'String', ], 'InstanceCount' => [ 'shape' => 'Integer', ], ], ], 'TargetConfigurationRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetConfigurationRequest', 'locationName' => 'TargetConfigurationRequest', ], ], 'TargetReservationValue' => [ 'type' => 'structure', 'members' => [ 'TargetConfiguration' => [ 'shape' => 'TargetConfiguration', 'locationName' => 'targetConfiguration', ], 'ReservationValue' => [ 'shape' => 'ReservationValue', 'locationName' => 'reservationValue', ], ], ], 'TargetReservationValueSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetReservationValue', 'locationName' => 'item', ], ], 'TelemetryStatus' => [ 'type' => 'string', 'enum' => [ 'UP', 'DOWN', ], ], 'Tenancy' => [ 'type' => 'string', 'enum' => [ 'default', 'dedicated', 'host', ], ], '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' => [ 'Error' => [ 'shape' => 'UnsuccessfulItemError', 'locationName' => 'error', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], ], ], 'UnsuccessfulItemError' => [ 'type' => 'structure', 'required' => [ 'Code', 'Message', ], 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'UnsuccessfulItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UnsuccessfulItem', 'locationName' => 'item', ], ], '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', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], 'PeeringStatus' => [ 'shape' => 'String', 'locationName' => 'peeringStatus', ], ], ], 'UserIdGroupPairList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserIdGroupPair', 'locationName' => 'item', ], ], 'UserIdGroupPairSet' => [ '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', 'sc1', 'st1', ], ], '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', ], ], 'VpcPeeringConnectionOptionsDescription' => [ 'type' => 'structure', 'members' => [ 'AllowEgressFromLocalClassicLinkToRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalClassicLinkToRemoteVpc', ], 'AllowEgressFromLocalVpcToRemoteClassicLink' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalVpcToRemoteClassicLink', ], 'AllowDnsResolutionFromRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowDnsResolutionFromRemoteVpc', ], ], ], 'VpcPeeringConnectionStateReason' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'VpcPeeringConnectionStateReasonCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'VpcPeeringConnectionStateReasonCode' => [ 'type' => 'string', 'enum' => [ 'initiating-request', 'pending-acceptance', 'active', 'deleted', 'rejected', 'failed', 'expired', 'provisioning', 'deleting', ], ], 'VpcPeeringConnectionVpcInfo' => [ 'type' => 'structure', 'members' => [ 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'PeeringOptions' => [ 'shape' => 'VpcPeeringConnectionOptionsDescription', 'locationName' => 'peeringOptions', ], ], ], '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', ], ], 'scope' => [ 'type' => 'string', 'enum' => [ 'Availability Zone', 'Region', ], ], ],]; diff --git a/lib/aws/Aws/data/ec2/2016-09-15/paginators-1.json.php b/lib/aws/Aws/data/ec2/2016-09-15/paginators-1.json.php new file mode 100644 index 0000000..af6864d --- /dev/null +++ b/lib/aws/Aws/data/ec2/2016-09-15/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ec2/2016-09-15/paginators-1.json +return [ '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', 'limit_key' => 'MaxResults', 'result_key' => 'Snapshots', ], 'DescribeSpotInstanceRequests' => [ 'result_key' => 'SpotInstanceRequests', ], 'DescribeSpotFleetRequests' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', 'result_key' => 'SpotFleetRequestConfigs', ], 'DescribeSpotPriceHistory' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', 'result_key' => 'SpotPriceHistory', ], 'DescribeSubnets' => [ 'result_key' => 'Subnets', ], 'DescribeTags' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', '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', ], 'DescribeVpcPeeringConnections' => [ 'result_key' => 'VpcPeeringConnections', ], 'DescribeVpnConnections' => [ 'result_key' => 'VpnConnections', ], 'DescribeVpnGateways' => [ 'result_key' => 'VpnGateways', ], ],]; diff --git a/lib/aws/Aws/data/ec2/2016-09-15/waiters-1.json.php b/lib/aws/Aws/data/ec2/2016-09-15/waiters-1.json.php new file mode 100644 index 0000000..392005f --- /dev/null +++ b/lib/aws/Aws/data/ec2/2016-09-15/waiters-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ec2/2016-09-15/waiters-1.json +return [ 'waiters' => [ '__default__' => [ 'interval' => 15, 'max_attempts' => 40, 'acceptor_type' => 'output', ], '__InstanceState' => [ 'operation' => 'DescribeInstances', 'acceptor_path' => 'Reservations[].Instances[].State.Name', ], '__InstanceStatus' => [ 'operation' => 'DescribeInstanceStatus', 'success_value' => 'ok', ], 'SystemStatusOk' => [ 'extends' => '__InstanceStatus', 'acceptor_path' => 'InstanceStatuses[].SystemStatus.Status', ], 'InstanceStatusOk' => [ 'extends' => '__InstanceStatus', 'acceptor_path' => 'InstanceStatuses[].InstanceStatus.Status', ], 'ImageAvailable' => [ 'operation' => 'DescribeImages', 'acceptor_path' => 'Images[].State', 'success_value' => 'available', 'failure_value' => [ 'failed', ], ], 'InstanceRunning' => [ 'extends' => '__InstanceState', 'success_value' => 'running', 'failure_value' => [ 'shutting-down', 'terminated', 'stopping', ], ], 'InstanceStopped' => [ 'extends' => '__InstanceState', 'success_value' => 'stopped', 'failure_value' => [ 'pending', 'terminated', ], ], 'InstanceTerminated' => [ 'extends' => '__InstanceState', 'success_value' => 'terminated', 'failure_value' => [ 'pending', 'stopping', ], ], '__ExportTaskState' => [ 'operation' => 'DescribeExportTasks', 'acceptor_path' => 'ExportTasks[].State', ], 'ExportTaskCompleted' => [ 'extends' => '__ExportTaskState', 'success_value' => 'completed', ], 'ExportTaskCancelled' => [ 'extends' => '__ExportTaskState', 'success_value' => 'cancelled', ], 'SnapshotCompleted' => [ 'operation' => 'DescribeSnapshots', 'success_path' => 'Snapshots[].State', 'success_value' => 'completed', ], 'SubnetAvailable' => [ 'operation' => 'DescribeSubnets', 'success_path' => 'Subnets[].State', 'success_value' => 'available', ], '__VolumeStatus' => [ 'operation' => 'DescribeVolumes', 'acceptor_path' => 'Volumes[].State', ], 'VolumeAvailable' => [ 'extends' => '__VolumeStatus', 'success_value' => 'available', 'failure_value' => [ 'deleted', ], ], 'VolumeInUse' => [ 'extends' => '__VolumeStatus', 'success_value' => 'in-use', 'failure_value' => [ 'deleted', ], ], 'VolumeDeleted' => [ 'extends' => '__VolumeStatus', 'success_type' => 'error', 'success_value' => 'InvalidVolume.NotFound', ], 'VpcAvailable' => [ 'operation' => 'DescribeVpcs', 'success_path' => 'Vpcs[].State', 'success_value' => 'available', ], '__VpnConnectionState' => [ 'operation' => 'DescribeVpnConnections', 'acceptor_path' => 'VpnConnections[].State', ], 'VpnConnectionAvailable' => [ 'extends' => '__VpnConnectionState', 'success_value' => 'available', 'failure_value' => [ 'deleting', 'deleted', ], ], 'VpnConnectionDeleted' => [ 'extends' => '__VpnConnectionState', 'success_value' => 'deleted', 'failure_value' => [ 'pending', ], ], 'BundleTaskComplete' => [ 'operation' => 'DescribeBundleTasks', 'acceptor_path' => 'BundleTasks[].State', 'success_value' => 'complete', 'failure_value' => [ 'failed', ], ], '__ConversionTaskState' => [ 'operation' => 'DescribeConversionTasks', 'acceptor_path' => 'ConversionTasks[].State', ], 'ConversionTaskCompleted' => [ 'extends' => '__ConversionTaskState', 'success_value' => 'completed', 'failure_value' => [ 'cancelled', 'cancelling', ], ], 'ConversionTaskCancelled' => [ 'extends' => '__ConversionTaskState', 'success_value' => 'cancelled', ], '__CustomerGatewayState' => [ 'operation' => 'DescribeCustomerGateways', 'acceptor_path' => 'CustomerGateways[].State', ], 'CustomerGatewayAvailable' => [ 'extends' => '__CustomerGatewayState', 'success_value' => 'available', 'failure_value' => [ 'deleted', 'deleting', ], ], 'ConversionTaskDeleted' => [ 'extends' => '__CustomerGatewayState', 'success_value' => 'deleted', ], '__SpotInstanceRequestState' => [ 'operation' => 'DescribeSpotInstanceRequests', 'acceptor_path' => 'SpotInstanceRequests[].Status.Code', ], 'SpotInstanceRequestFulfilled' => [ 'extends' => '__SpotInstanceRequestState', 'success_value' => 'fulfilled', 'failure_value' => [ 'schedule-expired', 'canceled-before-fulfillment', 'bad-parameters', 'system-error', ], ], ],]; diff --git a/lib/aws/Aws/data/ec2/2016-09-15/waiters-2.json.php b/lib/aws/Aws/data/ec2/2016-09-15/waiters-2.json.php new file mode 100644 index 0000000..d1f9116 --- /dev/null +++ b/lib/aws/Aws/data/ec2/2016-09-15/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ec2/2016-09-15/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'InstanceExists' => [ 'delay' => 5, 'maxAttempts' => 40, 'operation' => 'DescribeInstances', 'acceptors' => [ [ 'matcher' => 'path', 'expected' => true, 'argument' => 'length(Reservations[]) > `0`', 'state' => 'success', ], [ 'matcher' => 'error', 'expected' => 'InvalidInstanceID.NotFound', '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', ], ], ], 'ImageExists' => [ 'operation' => 'DescribeImages', 'maxAttempts' => 40, 'delay' => 15, 'acceptors' => [ [ 'matcher' => 'path', 'expected' => true, 'argument' => 'length(Images[]) > `0`', 'state' => 'success', ], [ 'matcher' => 'error', 'expected' => 'InvalidAMIID.NotFound', 'state' => 'retry', ], ], ], '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', ], [ 'matcher' => 'error', 'expected' => 'InvalidInstanceID.NotFound', 'state' => 'retry', ], ], ], 'InstanceStatusOk' => [ 'operation' => 'DescribeInstanceStatus', 'maxAttempts' => 40, 'delay' => 15, 'acceptors' => [ [ 'state' => 'success', 'matcher' => 'pathAll', 'argument' => 'InstanceStatuses[].InstanceStatus.Status', 'expected' => 'ok', ], [ 'matcher' => 'error', 'expected' => 'InvalidInstanceID.NotFound', 'state' => 'retry', ], ], ], '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' => 'InvalidKeyPair.NotFound', 'matcher' => 'error', 'state' => 'retry', ], ], ], 'NatGatewayAvailable' => [ 'operation' => 'DescribeNatGateways', 'delay' => 15, 'maxAttempts' => 40, 'acceptors' => [ [ 'state' => 'success', 'matcher' => 'pathAll', 'argument' => 'NatGateways[].State', 'expected' => 'available', ], [ 'state' => 'failure', 'matcher' => 'pathAny', 'argument' => 'NatGateways[].State', 'expected' => 'failed', ], [ 'state' => 'failure', 'matcher' => 'pathAny', 'argument' => 'NatGateways[].State', 'expected' => 'deleting', ], [ 'state' => 'failure', 'matcher' => 'pathAny', 'argument' => 'NatGateways[].State', 'expected' => 'deleted', ], [ 'state' => 'retry', 'matcher' => 'error', 'expected' => 'NatGatewayNotFound', ], ], ], 'NetworkInterfaceAvailable' => [ 'operation' => 'DescribeNetworkInterfaces', 'delay' => 20, 'maxAttempts' => 10, 'acceptors' => [ [ 'expected' => 'available', 'matcher' => 'pathAll', 'state' => 'success', 'argument' => 'NetworkInterfaces[].Status', ], [ 'expected' => 'InvalidNetworkInterfaceID.NotFound', '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' => 'InvalidVolume.NotFound', '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', ], ], ], 'VpcExists' => [ 'operation' => 'DescribeVpcs', 'delay' => 1, 'maxAttempts' => 5, 'acceptors' => [ [ 'matcher' => 'status', 'expected' => 200, 'state' => 'success', ], [ 'matcher' => 'error', 'expected' => 'InvalidVpcID.NotFound', 'state' => 'retry', ], ], ], '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', ], ], ], 'VpcPeeringConnectionExists' => [ 'delay' => 15, 'operation' => 'DescribeVpcPeeringConnections', 'maxAttempts' => 40, 'acceptors' => [ [ 'matcher' => 'status', 'expected' => 200, 'state' => 'success', ], [ 'matcher' => 'error', 'expected' => 'InvalidVpcPeeringConnectionID.NotFound', 'state' => 'retry', ], ], ], ],]; diff --git a/lib/aws/Aws/data/ec2/2016-11-15/api-2.json.php b/lib/aws/Aws/data/ec2/2016-11-15/api-2.json.php new file mode 100644 index 0000000..4bc0b1e --- /dev/null +++ b/lib/aws/Aws/data/ec2/2016-11-15/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ec2/2016-11-15/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-11-15', 'endpointPrefix' => 'ec2', 'protocol' => 'ec2', 'serviceAbbreviation' => 'Amazon EC2', 'serviceFullName' => 'Amazon Elastic Compute Cloud', 'serviceId' => 'EC2', 'signatureVersion' => 'v4', 'uid' => 'ec2-2016-11-15', 'xmlNamespace' => 'http://ec2.amazonaws.com/doc/2016-11-15', ], 'operations' => [ 'AcceptReservedInstancesExchangeQuote' => [ 'name' => 'AcceptReservedInstancesExchangeQuote', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptReservedInstancesExchangeQuoteRequest', ], 'output' => [ 'shape' => 'AcceptReservedInstancesExchangeQuoteResult', ], ], 'AcceptTransitGatewayVpcAttachment' => [ 'name' => 'AcceptTransitGatewayVpcAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptTransitGatewayVpcAttachmentRequest', ], 'output' => [ 'shape' => 'AcceptTransitGatewayVpcAttachmentResult', ], ], 'AcceptVpcEndpointConnections' => [ 'name' => 'AcceptVpcEndpointConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptVpcEndpointConnectionsRequest', ], 'output' => [ 'shape' => 'AcceptVpcEndpointConnectionsResult', ], ], 'AcceptVpcPeeringConnection' => [ 'name' => 'AcceptVpcPeeringConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptVpcPeeringConnectionRequest', ], 'output' => [ 'shape' => 'AcceptVpcPeeringConnectionResult', ], ], 'AdvertiseByoipCidr' => [ 'name' => 'AdvertiseByoipCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdvertiseByoipCidrRequest', ], 'output' => [ 'shape' => 'AdvertiseByoipCidrResult', ], ], 'AllocateAddress' => [ 'name' => 'AllocateAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AllocateAddressRequest', ], 'output' => [ 'shape' => 'AllocateAddressResult', ], ], 'AllocateHosts' => [ 'name' => 'AllocateHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AllocateHostsRequest', ], 'output' => [ 'shape' => 'AllocateHostsResult', ], ], 'ApplySecurityGroupsToClientVpnTargetNetwork' => [ 'name' => 'ApplySecurityGroupsToClientVpnTargetNetwork', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ApplySecurityGroupsToClientVpnTargetNetworkRequest', ], 'output' => [ 'shape' => 'ApplySecurityGroupsToClientVpnTargetNetworkResult', ], ], 'AssignIpv6Addresses' => [ 'name' => 'AssignIpv6Addresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssignIpv6AddressesRequest', ], 'output' => [ 'shape' => 'AssignIpv6AddressesResult', ], ], 'AssignPrivateIpAddresses' => [ 'name' => 'AssignPrivateIpAddresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssignPrivateIpAddressesRequest', ], ], 'AssociateAddress' => [ 'name' => 'AssociateAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateAddressRequest', ], 'output' => [ 'shape' => 'AssociateAddressResult', ], ], 'AssociateClientVpnTargetNetwork' => [ 'name' => 'AssociateClientVpnTargetNetwork', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateClientVpnTargetNetworkRequest', ], 'output' => [ 'shape' => 'AssociateClientVpnTargetNetworkResult', ], ], 'AssociateDhcpOptions' => [ 'name' => 'AssociateDhcpOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateDhcpOptionsRequest', ], ], 'AssociateIamInstanceProfile' => [ 'name' => 'AssociateIamInstanceProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateIamInstanceProfileRequest', ], 'output' => [ 'shape' => 'AssociateIamInstanceProfileResult', ], ], 'AssociateRouteTable' => [ 'name' => 'AssociateRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateRouteTableRequest', ], 'output' => [ 'shape' => 'AssociateRouteTableResult', ], ], 'AssociateSubnetCidrBlock' => [ 'name' => 'AssociateSubnetCidrBlock', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateSubnetCidrBlockRequest', ], 'output' => [ 'shape' => 'AssociateSubnetCidrBlockResult', ], ], 'AssociateTransitGatewayRouteTable' => [ 'name' => 'AssociateTransitGatewayRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateTransitGatewayRouteTableRequest', ], 'output' => [ 'shape' => 'AssociateTransitGatewayRouteTableResult', ], ], 'AssociateVpcCidrBlock' => [ 'name' => 'AssociateVpcCidrBlock', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateVpcCidrBlockRequest', ], 'output' => [ 'shape' => 'AssociateVpcCidrBlockResult', ], ], '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', ], ], 'AttachVpnGateway' => [ 'name' => 'AttachVpnGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachVpnGatewayRequest', ], 'output' => [ 'shape' => 'AttachVpnGatewayResult', ], ], 'AuthorizeClientVpnIngress' => [ 'name' => 'AuthorizeClientVpnIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AuthorizeClientVpnIngressRequest', ], 'output' => [ 'shape' => 'AuthorizeClientVpnIngressResult', ], ], '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', ], ], 'CancelCapacityReservation' => [ 'name' => 'CancelCapacityReservation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelCapacityReservationRequest', ], 'output' => [ 'shape' => 'CancelCapacityReservationResult', ], ], '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', ], ], 'CopyFpgaImage' => [ 'name' => 'CopyFpgaImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyFpgaImageRequest', ], 'output' => [ 'shape' => 'CopyFpgaImageResult', ], ], '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', ], ], 'CreateCapacityReservation' => [ 'name' => 'CreateCapacityReservation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCapacityReservationRequest', ], 'output' => [ 'shape' => 'CreateCapacityReservationResult', ], ], 'CreateClientVpnEndpoint' => [ 'name' => 'CreateClientVpnEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateClientVpnEndpointRequest', ], 'output' => [ 'shape' => 'CreateClientVpnEndpointResult', ], ], 'CreateClientVpnRoute' => [ 'name' => 'CreateClientVpnRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateClientVpnRouteRequest', ], 'output' => [ 'shape' => 'CreateClientVpnRouteResult', ], ], 'CreateCustomerGateway' => [ 'name' => 'CreateCustomerGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCustomerGatewayRequest', ], 'output' => [ 'shape' => 'CreateCustomerGatewayResult', ], ], 'CreateDefaultSubnet' => [ 'name' => 'CreateDefaultSubnet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDefaultSubnetRequest', ], 'output' => [ 'shape' => 'CreateDefaultSubnetResult', ], ], 'CreateDefaultVpc' => [ 'name' => 'CreateDefaultVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDefaultVpcRequest', ], 'output' => [ 'shape' => 'CreateDefaultVpcResult', ], ], 'CreateDhcpOptions' => [ 'name' => 'CreateDhcpOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDhcpOptionsRequest', ], 'output' => [ 'shape' => 'CreateDhcpOptionsResult', ], ], 'CreateEgressOnlyInternetGateway' => [ 'name' => 'CreateEgressOnlyInternetGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateEgressOnlyInternetGatewayRequest', ], 'output' => [ 'shape' => 'CreateEgressOnlyInternetGatewayResult', ], ], 'CreateFleet' => [ 'name' => 'CreateFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateFleetRequest', ], 'output' => [ 'shape' => 'CreateFleetResult', ], ], 'CreateFlowLogs' => [ 'name' => 'CreateFlowLogs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateFlowLogsRequest', ], 'output' => [ 'shape' => 'CreateFlowLogsResult', ], ], 'CreateFpgaImage' => [ 'name' => 'CreateFpgaImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateFpgaImageRequest', ], 'output' => [ 'shape' => 'CreateFpgaImageResult', ], ], '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', ], ], 'CreateLaunchTemplate' => [ 'name' => 'CreateLaunchTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLaunchTemplateRequest', ], 'output' => [ 'shape' => 'CreateLaunchTemplateResult', ], ], 'CreateLaunchTemplateVersion' => [ 'name' => 'CreateLaunchTemplateVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLaunchTemplateVersionRequest', ], 'output' => [ 'shape' => 'CreateLaunchTemplateVersionResult', ], ], 'CreateNatGateway' => [ 'name' => 'CreateNatGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNatGatewayRequest', ], 'output' => [ 'shape' => 'CreateNatGatewayResult', ], ], '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', ], ], 'CreateNetworkInterfacePermission' => [ 'name' => 'CreateNetworkInterfacePermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNetworkInterfacePermissionRequest', ], 'output' => [ 'shape' => 'CreateNetworkInterfacePermissionResult', ], ], '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', ], ], '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', ], ], 'CreateTransitGateway' => [ 'name' => 'CreateTransitGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayResult', ], ], 'CreateTransitGatewayRoute' => [ 'name' => 'CreateTransitGatewayRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayRouteRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayRouteResult', ], ], 'CreateTransitGatewayRouteTable' => [ 'name' => 'CreateTransitGatewayRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayRouteTableRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayRouteTableResult', ], ], 'CreateTransitGatewayVpcAttachment' => [ 'name' => 'CreateTransitGatewayVpcAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayVpcAttachmentRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayVpcAttachmentResult', ], ], 'CreateVolume' => [ 'name' => 'CreateVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVolumeRequest', ], 'output' => [ 'shape' => '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', ], ], 'CreateVpcEndpointConnectionNotification' => [ 'name' => 'CreateVpcEndpointConnectionNotification', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpcEndpointConnectionNotificationRequest', ], 'output' => [ 'shape' => 'CreateVpcEndpointConnectionNotificationResult', ], ], 'CreateVpcEndpointServiceConfiguration' => [ 'name' => 'CreateVpcEndpointServiceConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpcEndpointServiceConfigurationRequest', ], 'output' => [ 'shape' => 'CreateVpcEndpointServiceConfigurationResult', ], ], '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', ], ], 'DeleteClientVpnEndpoint' => [ 'name' => 'DeleteClientVpnEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteClientVpnEndpointRequest', ], 'output' => [ 'shape' => 'DeleteClientVpnEndpointResult', ], ], 'DeleteClientVpnRoute' => [ 'name' => 'DeleteClientVpnRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteClientVpnRouteRequest', ], 'output' => [ 'shape' => 'DeleteClientVpnRouteResult', ], ], 'DeleteCustomerGateway' => [ 'name' => 'DeleteCustomerGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCustomerGatewayRequest', ], ], 'DeleteDhcpOptions' => [ 'name' => 'DeleteDhcpOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDhcpOptionsRequest', ], ], 'DeleteEgressOnlyInternetGateway' => [ 'name' => 'DeleteEgressOnlyInternetGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteEgressOnlyInternetGatewayRequest', ], 'output' => [ 'shape' => 'DeleteEgressOnlyInternetGatewayResult', ], ], 'DeleteFleets' => [ 'name' => 'DeleteFleets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteFleetsRequest', ], 'output' => [ 'shape' => 'DeleteFleetsResult', ], ], 'DeleteFlowLogs' => [ 'name' => 'DeleteFlowLogs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteFlowLogsRequest', ], 'output' => [ 'shape' => 'DeleteFlowLogsResult', ], ], 'DeleteFpgaImage' => [ 'name' => 'DeleteFpgaImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteFpgaImageRequest', ], 'output' => [ 'shape' => 'DeleteFpgaImageResult', ], ], 'DeleteInternetGateway' => [ 'name' => 'DeleteInternetGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteInternetGatewayRequest', ], ], 'DeleteKeyPair' => [ 'name' => 'DeleteKeyPair', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteKeyPairRequest', ], ], 'DeleteLaunchTemplate' => [ 'name' => 'DeleteLaunchTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLaunchTemplateRequest', ], 'output' => [ 'shape' => 'DeleteLaunchTemplateResult', ], ], 'DeleteLaunchTemplateVersions' => [ 'name' => 'DeleteLaunchTemplateVersions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLaunchTemplateVersionsRequest', ], 'output' => [ 'shape' => 'DeleteLaunchTemplateVersionsResult', ], ], 'DeleteNatGateway' => [ 'name' => 'DeleteNatGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNatGatewayRequest', ], 'output' => [ 'shape' => 'DeleteNatGatewayResult', ], ], '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', ], ], 'DeleteNetworkInterfacePermission' => [ 'name' => 'DeleteNetworkInterfacePermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNetworkInterfacePermissionRequest', ], 'output' => [ 'shape' => 'DeleteNetworkInterfacePermissionResult', ], ], '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', ], ], 'DeleteTransitGateway' => [ 'name' => 'DeleteTransitGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayResult', ], ], 'DeleteTransitGatewayRoute' => [ 'name' => 'DeleteTransitGatewayRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayRouteRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayRouteResult', ], ], 'DeleteTransitGatewayRouteTable' => [ 'name' => 'DeleteTransitGatewayRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayRouteTableRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayRouteTableResult', ], ], 'DeleteTransitGatewayVpcAttachment' => [ 'name' => 'DeleteTransitGatewayVpcAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayVpcAttachmentRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayVpcAttachmentResult', ], ], 'DeleteVolume' => [ 'name' => 'DeleteVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVolumeRequest', ], ], 'DeleteVpc' => [ 'name' => 'DeleteVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpcRequest', ], ], 'DeleteVpcEndpointConnectionNotifications' => [ 'name' => 'DeleteVpcEndpointConnectionNotifications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpcEndpointConnectionNotificationsRequest', ], 'output' => [ 'shape' => 'DeleteVpcEndpointConnectionNotificationsResult', ], ], 'DeleteVpcEndpointServiceConfigurations' => [ 'name' => 'DeleteVpcEndpointServiceConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpcEndpointServiceConfigurationsRequest', ], 'output' => [ 'shape' => 'DeleteVpcEndpointServiceConfigurationsResult', ], ], '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', ], ], 'DeprovisionByoipCidr' => [ 'name' => 'DeprovisionByoipCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeprovisionByoipCidrRequest', ], 'output' => [ 'shape' => 'DeprovisionByoipCidrResult', ], ], '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', ], ], 'DescribeAggregateIdFormat' => [ 'name' => 'DescribeAggregateIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAggregateIdFormatRequest', ], 'output' => [ 'shape' => 'DescribeAggregateIdFormatResult', ], ], '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', ], ], 'DescribeByoipCidrs' => [ 'name' => 'DescribeByoipCidrs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeByoipCidrsRequest', ], 'output' => [ 'shape' => 'DescribeByoipCidrsResult', ], ], 'DescribeCapacityReservations' => [ 'name' => 'DescribeCapacityReservations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityReservationsRequest', ], 'output' => [ 'shape' => 'DescribeCapacityReservationsResult', ], ], 'DescribeClassicLinkInstances' => [ 'name' => 'DescribeClassicLinkInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClassicLinkInstancesRequest', ], 'output' => [ 'shape' => 'DescribeClassicLinkInstancesResult', ], ], 'DescribeClientVpnAuthorizationRules' => [ 'name' => 'DescribeClientVpnAuthorizationRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClientVpnAuthorizationRulesRequest', ], 'output' => [ 'shape' => 'DescribeClientVpnAuthorizationRulesResult', ], ], 'DescribeClientVpnConnections' => [ 'name' => 'DescribeClientVpnConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClientVpnConnectionsRequest', ], 'output' => [ 'shape' => 'DescribeClientVpnConnectionsResult', ], ], 'DescribeClientVpnEndpoints' => [ 'name' => 'DescribeClientVpnEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClientVpnEndpointsRequest', ], 'output' => [ 'shape' => 'DescribeClientVpnEndpointsResult', ], ], 'DescribeClientVpnRoutes' => [ 'name' => 'DescribeClientVpnRoutes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClientVpnRoutesRequest', ], 'output' => [ 'shape' => 'DescribeClientVpnRoutesResult', ], ], 'DescribeClientVpnTargetNetworks' => [ 'name' => 'DescribeClientVpnTargetNetworks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClientVpnTargetNetworksRequest', ], 'output' => [ 'shape' => 'DescribeClientVpnTargetNetworksResult', ], ], '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', ], ], 'DescribeEgressOnlyInternetGateways' => [ 'name' => 'DescribeEgressOnlyInternetGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEgressOnlyInternetGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeEgressOnlyInternetGatewaysResult', ], ], 'DescribeElasticGpus' => [ 'name' => 'DescribeElasticGpus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeElasticGpusRequest', ], 'output' => [ 'shape' => 'DescribeElasticGpusResult', ], ], 'DescribeExportTasks' => [ 'name' => 'DescribeExportTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeExportTasksRequest', ], 'output' => [ 'shape' => 'DescribeExportTasksResult', ], ], 'DescribeFleetHistory' => [ 'name' => 'DescribeFleetHistory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFleetHistoryRequest', ], 'output' => [ 'shape' => 'DescribeFleetHistoryResult', ], ], 'DescribeFleetInstances' => [ 'name' => 'DescribeFleetInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFleetInstancesRequest', ], 'output' => [ 'shape' => 'DescribeFleetInstancesResult', ], ], 'DescribeFleets' => [ 'name' => 'DescribeFleets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFleetsRequest', ], 'output' => [ 'shape' => 'DescribeFleetsResult', ], ], 'DescribeFlowLogs' => [ 'name' => 'DescribeFlowLogs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFlowLogsRequest', ], 'output' => [ 'shape' => 'DescribeFlowLogsResult', ], ], 'DescribeFpgaImageAttribute' => [ 'name' => 'DescribeFpgaImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFpgaImageAttributeRequest', ], 'output' => [ 'shape' => 'DescribeFpgaImageAttributeResult', ], ], 'DescribeFpgaImages' => [ 'name' => 'DescribeFpgaImages', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFpgaImagesRequest', ], 'output' => [ 'shape' => 'DescribeFpgaImagesResult', ], ], 'DescribeHostReservationOfferings' => [ 'name' => 'DescribeHostReservationOfferings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHostReservationOfferingsRequest', ], 'output' => [ 'shape' => 'DescribeHostReservationOfferingsResult', ], ], 'DescribeHostReservations' => [ 'name' => 'DescribeHostReservations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHostReservationsRequest', ], 'output' => [ 'shape' => 'DescribeHostReservationsResult', ], ], 'DescribeHosts' => [ 'name' => 'DescribeHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHostsRequest', ], 'output' => [ 'shape' => 'DescribeHostsResult', ], ], 'DescribeIamInstanceProfileAssociations' => [ 'name' => 'DescribeIamInstanceProfileAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIamInstanceProfileAssociationsRequest', ], 'output' => [ 'shape' => 'DescribeIamInstanceProfileAssociationsResult', ], ], 'DescribeIdFormat' => [ 'name' => 'DescribeIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIdFormatRequest', ], 'output' => [ 'shape' => 'DescribeIdFormatResult', ], ], 'DescribeIdentityIdFormat' => [ 'name' => 'DescribeIdentityIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIdentityIdFormatRequest', ], 'output' => [ 'shape' => 'DescribeIdentityIdFormatResult', ], ], 'DescribeImageAttribute' => [ 'name' => 'DescribeImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImageAttributeRequest', ], 'output' => [ 'shape' => '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', ], ], 'DescribeInstanceCreditSpecifications' => [ 'name' => 'DescribeInstanceCreditSpecifications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceCreditSpecificationsRequest', ], 'output' => [ 'shape' => 'DescribeInstanceCreditSpecificationsResult', ], ], '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', ], ], 'DescribeLaunchTemplateVersions' => [ 'name' => 'DescribeLaunchTemplateVersions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLaunchTemplateVersionsRequest', ], 'output' => [ 'shape' => 'DescribeLaunchTemplateVersionsResult', ], ], 'DescribeLaunchTemplates' => [ 'name' => 'DescribeLaunchTemplates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLaunchTemplatesRequest', ], 'output' => [ 'shape' => 'DescribeLaunchTemplatesResult', ], ], 'DescribeMovingAddresses' => [ 'name' => 'DescribeMovingAddresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMovingAddressesRequest', ], 'output' => [ 'shape' => 'DescribeMovingAddressesResult', ], ], 'DescribeNatGateways' => [ 'name' => 'DescribeNatGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNatGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeNatGatewaysResult', ], ], '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', ], ], 'DescribeNetworkInterfacePermissions' => [ 'name' => 'DescribeNetworkInterfacePermissions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNetworkInterfacePermissionsRequest', ], 'output' => [ 'shape' => 'DescribeNetworkInterfacePermissionsResult', ], ], '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', ], ], 'DescribePrincipalIdFormat' => [ 'name' => 'DescribePrincipalIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePrincipalIdFormatRequest', ], 'output' => [ 'shape' => 'DescribePrincipalIdFormatResult', ], ], 'DescribePublicIpv4Pools' => [ 'name' => 'DescribePublicIpv4Pools', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePublicIpv4PoolsRequest', ], 'output' => [ 'shape' => 'DescribePublicIpv4PoolsResult', ], ], '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', ], ], 'DescribeScheduledInstanceAvailability' => [ 'name' => 'DescribeScheduledInstanceAvailability', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScheduledInstanceAvailabilityRequest', ], 'output' => [ 'shape' => 'DescribeScheduledInstanceAvailabilityResult', ], ], 'DescribeScheduledInstances' => [ 'name' => 'DescribeScheduledInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScheduledInstancesRequest', ], 'output' => [ 'shape' => 'DescribeScheduledInstancesResult', ], ], 'DescribeSecurityGroupReferences' => [ 'name' => 'DescribeSecurityGroupReferences', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSecurityGroupReferencesRequest', ], 'output' => [ 'shape' => 'DescribeSecurityGroupReferencesResult', ], ], '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', ], ], 'DescribeStaleSecurityGroups' => [ 'name' => 'DescribeStaleSecurityGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStaleSecurityGroupsRequest', ], 'output' => [ 'shape' => 'DescribeStaleSecurityGroupsResult', ], ], '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', ], ], 'DescribeTransitGatewayAttachments' => [ 'name' => 'DescribeTransitGatewayAttachments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayAttachmentsRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayAttachmentsResult', ], ], 'DescribeTransitGatewayRouteTables' => [ 'name' => 'DescribeTransitGatewayRouteTables', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayRouteTablesRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayRouteTablesResult', ], ], 'DescribeTransitGatewayVpcAttachments' => [ 'name' => 'DescribeTransitGatewayVpcAttachments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayVpcAttachmentsRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayVpcAttachmentsResult', ], ], 'DescribeTransitGateways' => [ 'name' => 'DescribeTransitGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewaysResult', ], ], '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', ], ], 'DescribeVolumesModifications' => [ 'name' => 'DescribeVolumesModifications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVolumesModificationsRequest', ], 'output' => [ 'shape' => 'DescribeVolumesModificationsResult', ], ], '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', ], ], 'DescribeVpcClassicLinkDnsSupport' => [ 'name' => 'DescribeVpcClassicLinkDnsSupport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcClassicLinkDnsSupportRequest', ], 'output' => [ 'shape' => 'DescribeVpcClassicLinkDnsSupportResult', ], ], 'DescribeVpcEndpointConnectionNotifications' => [ 'name' => 'DescribeVpcEndpointConnectionNotifications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcEndpointConnectionNotificationsRequest', ], 'output' => [ 'shape' => 'DescribeVpcEndpointConnectionNotificationsResult', ], ], 'DescribeVpcEndpointConnections' => [ 'name' => 'DescribeVpcEndpointConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcEndpointConnectionsRequest', ], 'output' => [ 'shape' => 'DescribeVpcEndpointConnectionsResult', ], ], 'DescribeVpcEndpointServiceConfigurations' => [ 'name' => 'DescribeVpcEndpointServiceConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcEndpointServiceConfigurationsRequest', ], 'output' => [ 'shape' => 'DescribeVpcEndpointServiceConfigurationsResult', ], ], 'DescribeVpcEndpointServicePermissions' => [ 'name' => 'DescribeVpcEndpointServicePermissions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcEndpointServicePermissionsRequest', ], 'output' => [ 'shape' => 'DescribeVpcEndpointServicePermissionsResult', ], ], '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', ], ], 'DetachVpnGateway' => [ 'name' => 'DetachVpnGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachVpnGatewayRequest', ], ], 'DisableTransitGatewayRouteTablePropagation' => [ 'name' => 'DisableTransitGatewayRouteTablePropagation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableTransitGatewayRouteTablePropagationRequest', ], 'output' => [ 'shape' => 'DisableTransitGatewayRouteTablePropagationResult', ], ], 'DisableVgwRoutePropagation' => [ 'name' => 'DisableVgwRoutePropagation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableVgwRoutePropagationRequest', ], ], 'DisableVpcClassicLink' => [ 'name' => 'DisableVpcClassicLink', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableVpcClassicLinkRequest', ], 'output' => [ 'shape' => 'DisableVpcClassicLinkResult', ], ], 'DisableVpcClassicLinkDnsSupport' => [ 'name' => 'DisableVpcClassicLinkDnsSupport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableVpcClassicLinkDnsSupportRequest', ], 'output' => [ 'shape' => 'DisableVpcClassicLinkDnsSupportResult', ], ], 'DisassociateAddress' => [ 'name' => 'DisassociateAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateAddressRequest', ], ], 'DisassociateClientVpnTargetNetwork' => [ 'name' => 'DisassociateClientVpnTargetNetwork', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateClientVpnTargetNetworkRequest', ], 'output' => [ 'shape' => 'DisassociateClientVpnTargetNetworkResult', ], ], 'DisassociateIamInstanceProfile' => [ 'name' => 'DisassociateIamInstanceProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateIamInstanceProfileRequest', ], 'output' => [ 'shape' => 'DisassociateIamInstanceProfileResult', ], ], 'DisassociateRouteTable' => [ 'name' => 'DisassociateRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateRouteTableRequest', ], ], 'DisassociateSubnetCidrBlock' => [ 'name' => 'DisassociateSubnetCidrBlock', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateSubnetCidrBlockRequest', ], 'output' => [ 'shape' => 'DisassociateSubnetCidrBlockResult', ], ], 'DisassociateTransitGatewayRouteTable' => [ 'name' => 'DisassociateTransitGatewayRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateTransitGatewayRouteTableRequest', ], 'output' => [ 'shape' => 'DisassociateTransitGatewayRouteTableResult', ], ], 'DisassociateVpcCidrBlock' => [ 'name' => 'DisassociateVpcCidrBlock', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateVpcCidrBlockRequest', ], 'output' => [ 'shape' => 'DisassociateVpcCidrBlockResult', ], ], 'EnableTransitGatewayRouteTablePropagation' => [ 'name' => 'EnableTransitGatewayRouteTablePropagation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableTransitGatewayRouteTablePropagationRequest', ], 'output' => [ 'shape' => 'EnableTransitGatewayRouteTablePropagationResult', ], ], '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', ], ], 'EnableVpcClassicLinkDnsSupport' => [ 'name' => 'EnableVpcClassicLinkDnsSupport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableVpcClassicLinkDnsSupportRequest', ], 'output' => [ 'shape' => 'EnableVpcClassicLinkDnsSupportResult', ], ], 'ExportClientVpnClientCertificateRevocationList' => [ 'name' => 'ExportClientVpnClientCertificateRevocationList', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExportClientVpnClientCertificateRevocationListRequest', ], 'output' => [ 'shape' => 'ExportClientVpnClientCertificateRevocationListResult', ], ], 'ExportClientVpnClientConfiguration' => [ 'name' => 'ExportClientVpnClientConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExportClientVpnClientConfigurationRequest', ], 'output' => [ 'shape' => 'ExportClientVpnClientConfigurationResult', ], ], 'ExportTransitGatewayRoutes' => [ 'name' => 'ExportTransitGatewayRoutes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExportTransitGatewayRoutesRequest', ], 'output' => [ 'shape' => 'ExportTransitGatewayRoutesResult', ], ], 'GetConsoleOutput' => [ 'name' => 'GetConsoleOutput', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetConsoleOutputRequest', ], 'output' => [ 'shape' => 'GetConsoleOutputResult', ], ], 'GetConsoleScreenshot' => [ 'name' => 'GetConsoleScreenshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetConsoleScreenshotRequest', ], 'output' => [ 'shape' => 'GetConsoleScreenshotResult', ], ], 'GetHostReservationPurchasePreview' => [ 'name' => 'GetHostReservationPurchasePreview', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetHostReservationPurchasePreviewRequest', ], 'output' => [ 'shape' => 'GetHostReservationPurchasePreviewResult', ], ], 'GetLaunchTemplateData' => [ 'name' => 'GetLaunchTemplateData', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetLaunchTemplateDataRequest', ], 'output' => [ 'shape' => 'GetLaunchTemplateDataResult', ], ], 'GetPasswordData' => [ 'name' => 'GetPasswordData', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPasswordDataRequest', ], 'output' => [ 'shape' => 'GetPasswordDataResult', ], ], 'GetReservedInstancesExchangeQuote' => [ 'name' => 'GetReservedInstancesExchangeQuote', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetReservedInstancesExchangeQuoteRequest', ], 'output' => [ 'shape' => 'GetReservedInstancesExchangeQuoteResult', ], ], 'GetTransitGatewayAttachmentPropagations' => [ 'name' => 'GetTransitGatewayAttachmentPropagations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTransitGatewayAttachmentPropagationsRequest', ], 'output' => [ 'shape' => 'GetTransitGatewayAttachmentPropagationsResult', ], ], 'GetTransitGatewayRouteTableAssociations' => [ 'name' => 'GetTransitGatewayRouteTableAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTransitGatewayRouteTableAssociationsRequest', ], 'output' => [ 'shape' => 'GetTransitGatewayRouteTableAssociationsResult', ], ], 'GetTransitGatewayRouteTablePropagations' => [ 'name' => 'GetTransitGatewayRouteTablePropagations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTransitGatewayRouteTablePropagationsRequest', ], 'output' => [ 'shape' => 'GetTransitGatewayRouteTablePropagationsResult', ], ], 'ImportClientVpnClientCertificateRevocationList' => [ 'name' => 'ImportClientVpnClientCertificateRevocationList', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportClientVpnClientCertificateRevocationListRequest', ], 'output' => [ 'shape' => 'ImportClientVpnClientCertificateRevocationListResult', ], ], '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', ], ], 'ModifyCapacityReservation' => [ 'name' => 'ModifyCapacityReservation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyCapacityReservationRequest', ], 'output' => [ 'shape' => 'ModifyCapacityReservationResult', ], ], 'ModifyClientVpnEndpoint' => [ 'name' => 'ModifyClientVpnEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyClientVpnEndpointRequest', ], 'output' => [ 'shape' => 'ModifyClientVpnEndpointResult', ], ], 'ModifyFleet' => [ 'name' => 'ModifyFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyFleetRequest', ], 'output' => [ 'shape' => 'ModifyFleetResult', ], ], 'ModifyFpgaImageAttribute' => [ 'name' => 'ModifyFpgaImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyFpgaImageAttributeRequest', ], 'output' => [ 'shape' => 'ModifyFpgaImageAttributeResult', ], ], 'ModifyHosts' => [ 'name' => 'ModifyHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyHostsRequest', ], 'output' => [ 'shape' => 'ModifyHostsResult', ], ], 'ModifyIdFormat' => [ 'name' => 'ModifyIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIdFormatRequest', ], ], 'ModifyIdentityIdFormat' => [ 'name' => 'ModifyIdentityIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIdentityIdFormatRequest', ], ], 'ModifyImageAttribute' => [ 'name' => 'ModifyImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyImageAttributeRequest', ], ], 'ModifyInstanceAttribute' => [ 'name' => 'ModifyInstanceAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceAttributeRequest', ], ], 'ModifyInstanceCapacityReservationAttributes' => [ 'name' => 'ModifyInstanceCapacityReservationAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceCapacityReservationAttributesRequest', ], 'output' => [ 'shape' => 'ModifyInstanceCapacityReservationAttributesResult', ], ], 'ModifyInstanceCreditSpecification' => [ 'name' => 'ModifyInstanceCreditSpecification', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceCreditSpecificationRequest', ], 'output' => [ 'shape' => 'ModifyInstanceCreditSpecificationResult', ], ], 'ModifyInstanceEventStartTime' => [ 'name' => 'ModifyInstanceEventStartTime', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceEventStartTimeRequest', ], 'output' => [ 'shape' => 'ModifyInstanceEventStartTimeResult', ], ], 'ModifyInstancePlacement' => [ 'name' => 'ModifyInstancePlacement', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstancePlacementRequest', ], 'output' => [ 'shape' => 'ModifyInstancePlacementResult', ], ], 'ModifyLaunchTemplate' => [ 'name' => 'ModifyLaunchTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyLaunchTemplateRequest', ], 'output' => [ 'shape' => 'ModifyLaunchTemplateResult', ], ], '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', ], ], 'ModifySpotFleetRequest' => [ 'name' => 'ModifySpotFleetRequest', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifySpotFleetRequestRequest', ], 'output' => [ 'shape' => 'ModifySpotFleetRequestResponse', ], ], 'ModifySubnetAttribute' => [ 'name' => 'ModifySubnetAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifySubnetAttributeRequest', ], ], 'ModifyTransitGatewayVpcAttachment' => [ 'name' => 'ModifyTransitGatewayVpcAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyTransitGatewayVpcAttachmentRequest', ], 'output' => [ 'shape' => 'ModifyTransitGatewayVpcAttachmentResult', ], ], 'ModifyVolume' => [ 'name' => 'ModifyVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVolumeRequest', ], 'output' => [ 'shape' => 'ModifyVolumeResult', ], ], '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', ], ], 'ModifyVpcEndpointConnectionNotification' => [ 'name' => 'ModifyVpcEndpointConnectionNotification', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcEndpointConnectionNotificationRequest', ], 'output' => [ 'shape' => 'ModifyVpcEndpointConnectionNotificationResult', ], ], 'ModifyVpcEndpointServiceConfiguration' => [ 'name' => 'ModifyVpcEndpointServiceConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcEndpointServiceConfigurationRequest', ], 'output' => [ 'shape' => 'ModifyVpcEndpointServiceConfigurationResult', ], ], 'ModifyVpcEndpointServicePermissions' => [ 'name' => 'ModifyVpcEndpointServicePermissions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcEndpointServicePermissionsRequest', ], 'output' => [ 'shape' => 'ModifyVpcEndpointServicePermissionsResult', ], ], 'ModifyVpcPeeringConnectionOptions' => [ 'name' => 'ModifyVpcPeeringConnectionOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcPeeringConnectionOptionsRequest', ], 'output' => [ 'shape' => 'ModifyVpcPeeringConnectionOptionsResult', ], ], 'ModifyVpcTenancy' => [ 'name' => 'ModifyVpcTenancy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcTenancyRequest', ], 'output' => [ 'shape' => 'ModifyVpcTenancyResult', ], ], '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', ], ], 'ProvisionByoipCidr' => [ 'name' => 'ProvisionByoipCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ProvisionByoipCidrRequest', ], 'output' => [ 'shape' => 'ProvisionByoipCidrResult', ], ], 'PurchaseHostReservation' => [ 'name' => 'PurchaseHostReservation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseHostReservationRequest', ], 'output' => [ 'shape' => 'PurchaseHostReservationResult', ], ], 'PurchaseReservedInstancesOffering' => [ 'name' => 'PurchaseReservedInstancesOffering', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseReservedInstancesOfferingRequest', ], 'output' => [ 'shape' => 'PurchaseReservedInstancesOfferingResult', ], ], 'PurchaseScheduledInstances' => [ 'name' => 'PurchaseScheduledInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseScheduledInstancesRequest', ], 'output' => [ 'shape' => 'PurchaseScheduledInstancesResult', ], ], 'RebootInstances' => [ 'name' => 'RebootInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RebootInstancesRequest', ], ], 'RegisterImage' => [ 'name' => 'RegisterImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterImageRequest', ], 'output' => [ 'shape' => 'RegisterImageResult', ], ], 'RejectTransitGatewayVpcAttachment' => [ 'name' => 'RejectTransitGatewayVpcAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectTransitGatewayVpcAttachmentRequest', ], 'output' => [ 'shape' => 'RejectTransitGatewayVpcAttachmentResult', ], ], 'RejectVpcEndpointConnections' => [ 'name' => 'RejectVpcEndpointConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectVpcEndpointConnectionsRequest', ], 'output' => [ 'shape' => 'RejectVpcEndpointConnectionsResult', ], ], 'RejectVpcPeeringConnection' => [ 'name' => 'RejectVpcPeeringConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectVpcPeeringConnectionRequest', ], 'output' => [ 'shape' => 'RejectVpcPeeringConnectionResult', ], ], 'ReleaseAddress' => [ 'name' => 'ReleaseAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReleaseAddressRequest', ], ], 'ReleaseHosts' => [ 'name' => 'ReleaseHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReleaseHostsRequest', ], 'output' => [ 'shape' => 'ReleaseHostsResult', ], ], 'ReplaceIamInstanceProfileAssociation' => [ 'name' => 'ReplaceIamInstanceProfileAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReplaceIamInstanceProfileAssociationRequest', ], 'output' => [ 'shape' => 'ReplaceIamInstanceProfileAssociationResult', ], ], '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', ], ], 'ReplaceTransitGatewayRoute' => [ 'name' => 'ReplaceTransitGatewayRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReplaceTransitGatewayRouteRequest', ], 'output' => [ 'shape' => 'ReplaceTransitGatewayRouteResult', ], ], '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', ], ], 'ResetFpgaImageAttribute' => [ 'name' => 'ResetFpgaImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetFpgaImageAttributeRequest', ], 'output' => [ 'shape' => 'ResetFpgaImageAttributeResult', ], ], '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', ], ], 'RevokeClientVpnIngress' => [ 'name' => 'RevokeClientVpnIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RevokeClientVpnIngressRequest', ], 'output' => [ 'shape' => 'RevokeClientVpnIngressResult', ], ], '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', ], ], 'RunScheduledInstances' => [ 'name' => 'RunScheduledInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RunScheduledInstancesRequest', ], 'output' => [ 'shape' => 'RunScheduledInstancesResult', ], ], 'SearchTransitGatewayRoutes' => [ 'name' => 'SearchTransitGatewayRoutes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchTransitGatewayRoutesRequest', ], 'output' => [ 'shape' => 'SearchTransitGatewayRoutesResult', ], ], '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', ], ], 'TerminateClientVpnConnections' => [ 'name' => 'TerminateClientVpnConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TerminateClientVpnConnectionsRequest', ], 'output' => [ 'shape' => 'TerminateClientVpnConnectionsResult', ], ], 'TerminateInstances' => [ 'name' => 'TerminateInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TerminateInstancesRequest', ], 'output' => [ 'shape' => 'TerminateInstancesResult', ], ], 'UnassignIpv6Addresses' => [ 'name' => 'UnassignIpv6Addresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnassignIpv6AddressesRequest', ], 'output' => [ 'shape' => 'UnassignIpv6AddressesResult', ], ], 'UnassignPrivateIpAddresses' => [ 'name' => 'UnassignPrivateIpAddresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnassignPrivateIpAddressesRequest', ], ], 'UnmonitorInstances' => [ 'name' => 'UnmonitorInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnmonitorInstancesRequest', ], 'output' => [ 'shape' => 'UnmonitorInstancesResult', ], ], 'UpdateSecurityGroupRuleDescriptionsEgress' => [ 'name' => 'UpdateSecurityGroupRuleDescriptionsEgress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSecurityGroupRuleDescriptionsEgressRequest', ], 'output' => [ 'shape' => 'UpdateSecurityGroupRuleDescriptionsEgressResult', ], ], 'UpdateSecurityGroupRuleDescriptionsIngress' => [ 'name' => 'UpdateSecurityGroupRuleDescriptionsIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSecurityGroupRuleDescriptionsIngressRequest', ], 'output' => [ 'shape' => 'UpdateSecurityGroupRuleDescriptionsIngressResult', ], ], 'WithdrawByoipCidr' => [ 'name' => 'WithdrawByoipCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'WithdrawByoipCidrRequest', ], 'output' => [ 'shape' => 'WithdrawByoipCidrResult', ], ], ], 'shapes' => [ 'AcceptReservedInstancesExchangeQuoteRequest' => [ 'type' => 'structure', 'required' => [ 'ReservedInstanceIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ReservedInstanceIds' => [ 'shape' => 'ReservedInstanceIdSet', 'locationName' => 'ReservedInstanceId', ], 'TargetConfigurations' => [ 'shape' => 'TargetConfigurationRequestSet', 'locationName' => 'TargetConfiguration', ], ], ], 'AcceptReservedInstancesExchangeQuoteResult' => [ 'type' => 'structure', 'members' => [ 'ExchangeId' => [ 'shape' => 'String', 'locationName' => 'exchangeId', ], ], ], 'AcceptTransitGatewayVpcAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AcceptTransitGatewayVpcAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayVpcAttachment' => [ 'shape' => 'TransitGatewayVpcAttachment', 'locationName' => 'transitGatewayVpcAttachment', ], ], ], 'AcceptVpcEndpointConnectionsRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', 'VpcEndpointIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'String', ], 'VpcEndpointIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'VpcEndpointId', ], ], ], 'AcceptVpcEndpointConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemSet', 'locationName' => 'unsuccessful', ], ], ], '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' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'SpotInstanceRequestId' => [ 'shape' => 'String', 'locationName' => 'spotInstanceRequestId', ], 'InstanceHealth' => [ 'shape' => 'InstanceHealthStatus', 'locationName' => 'instanceHealth', ], ], ], 'ActiveInstanceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ActiveInstance', 'locationName' => 'item', ], ], 'ActivityStatus' => [ 'type' => 'string', 'enum' => [ 'error', 'pending_fulfillment', 'pending_termination', 'fulfilled', ], ], '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', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'PublicIpv4Pool' => [ 'shape' => 'String', 'locationName' => 'publicIpv4Pool', ], ], ], 'AddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Address', 'locationName' => 'item', ], ], 'AdvertiseByoipCidrRequest' => [ 'type' => 'structure', 'required' => [ 'Cidr', ], 'members' => [ 'Cidr' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AdvertiseByoipCidrResult' => [ 'type' => 'structure', 'members' => [ 'ByoipCidr' => [ 'shape' => 'ByoipCidr', 'locationName' => 'byoipCidr', ], ], ], 'Affinity' => [ 'type' => 'string', 'enum' => [ 'default', 'host', ], ], 'AllocateAddressRequest' => [ 'type' => 'structure', 'members' => [ 'Domain' => [ 'shape' => 'DomainType', ], 'Address' => [ 'shape' => 'String', ], 'PublicIpv4Pool' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'AllocateAddressResult' => [ 'type' => 'structure', 'members' => [ 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], 'AllocationId' => [ 'shape' => 'String', 'locationName' => 'allocationId', ], 'PublicIpv4Pool' => [ 'shape' => 'String', 'locationName' => 'publicIpv4Pool', ], 'Domain' => [ 'shape' => 'DomainType', 'locationName' => 'domain', ], ], ], 'AllocateHostsRequest' => [ 'type' => 'structure', 'required' => [ 'AvailabilityZone', 'InstanceType', 'Quantity', ], 'members' => [ 'AutoPlacement' => [ 'shape' => 'AutoPlacement', 'locationName' => 'autoPlacement', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'Quantity' => [ 'shape' => 'Integer', 'locationName' => 'quantity', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'AllocateHostsResult' => [ 'type' => 'structure', 'members' => [ 'HostIds' => [ 'shape' => 'ResponseHostIdList', 'locationName' => 'hostIdSet', ], ], ], 'AllocationIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'AllocationId', ], ], 'AllocationState' => [ 'type' => 'string', 'enum' => [ 'available', 'under-assessment', 'permanent-failure', 'released', 'released-permanent-failure', ], ], 'AllocationStrategy' => [ 'type' => 'string', 'enum' => [ 'lowestPrice', 'diversified', ], ], 'AllowedPrincipal' => [ 'type' => 'structure', 'members' => [ 'PrincipalType' => [ 'shape' => 'PrincipalType', 'locationName' => 'principalType', ], 'Principal' => [ 'shape' => 'String', 'locationName' => 'principal', ], ], ], 'AllowedPrincipalSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedPrincipal', 'locationName' => 'item', ], ], 'ApplySecurityGroupsToClientVpnTargetNetworkRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'VpcId', 'SecurityGroupIds', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', ], 'VpcId' => [ 'shape' => 'String', ], 'SecurityGroupIds' => [ 'shape' => 'ClientVpnSecurityGroupIdSet', 'locationName' => 'SecurityGroupId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ApplySecurityGroupsToClientVpnTargetNetworkResult' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupIds' => [ 'shape' => 'ClientVpnSecurityGroupIdSet', 'locationName' => 'securityGroupIds', ], ], ], 'ArchitectureValues' => [ 'type' => 'string', 'enum' => [ 'i386', 'x86_64', 'arm64', ], ], 'AssignIpv6AddressesRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', ], 'members' => [ 'Ipv6AddressCount' => [ 'shape' => 'Integer', 'locationName' => 'ipv6AddressCount', ], 'Ipv6Addresses' => [ 'shape' => 'Ipv6AddressList', 'locationName' => 'ipv6Addresses', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], ], ], 'AssignIpv6AddressesResult' => [ 'type' => 'structure', 'members' => [ 'AssignedIpv6Addresses' => [ 'shape' => 'Ipv6AddressList', 'locationName' => 'assignedIpv6Addresses', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], ], ], 'AssignPrivateIpAddressesRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', ], 'members' => [ 'AllowReassignment' => [ 'shape' => 'Boolean', 'locationName' => 'allowReassignment', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'PrivateIpAddresses' => [ 'shape' => 'PrivateIpAddressStringList', 'locationName' => 'privateIpAddress', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'secondaryPrivateIpAddressCount', ], ], ], 'AssociateAddressRequest' => [ 'type' => 'structure', 'members' => [ 'AllocationId' => [ 'shape' => 'String', ], 'InstanceId' => [ 'shape' => 'String', ], 'PublicIp' => [ 'shape' => 'String', ], 'AllowReassociation' => [ 'shape' => 'Boolean', 'locationName' => 'allowReassociation', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], ], ], 'AssociateAddressResult' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], ], ], 'AssociateClientVpnTargetNetworkRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'SubnetId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', ], 'SubnetId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AssociateClientVpnTargetNetworkResult' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'Status' => [ 'shape' => 'AssociationStatus', 'locationName' => 'status', ], ], ], 'AssociateDhcpOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'DhcpOptionsId', 'VpcId', ], 'members' => [ 'DhcpOptionsId' => [ 'shape' => 'String', ], 'VpcId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'AssociateIamInstanceProfileRequest' => [ 'type' => 'structure', 'required' => [ 'IamInstanceProfile', 'InstanceId', ], 'members' => [ 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', ], 'InstanceId' => [ 'shape' => 'String', ], ], ], 'AssociateIamInstanceProfileResult' => [ 'type' => 'structure', 'members' => [ 'IamInstanceProfileAssociation' => [ 'shape' => 'IamInstanceProfileAssociation', 'locationName' => 'iamInstanceProfileAssociation', ], ], ], 'AssociateRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'RouteTableId', 'SubnetId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'RouteTableId' => [ 'shape' => 'String', 'locationName' => 'routeTableId', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], ], ], 'AssociateRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], ], ], 'AssociateSubnetCidrBlockRequest' => [ 'type' => 'structure', 'required' => [ 'Ipv6CidrBlock', 'SubnetId', ], 'members' => [ 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], ], ], 'AssociateSubnetCidrBlockResult' => [ 'type' => 'structure', 'members' => [ 'Ipv6CidrBlockAssociation' => [ 'shape' => 'SubnetIpv6CidrBlockAssociation', 'locationName' => 'ipv6CidrBlockAssociation', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], ], ], 'AssociateTransitGatewayRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'String', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AssociateTransitGatewayRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'TransitGatewayAssociation', 'locationName' => 'association', ], ], ], 'AssociateVpcCidrBlockRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'AmazonProvidedIpv6CidrBlock' => [ 'shape' => 'Boolean', 'locationName' => 'amazonProvidedIpv6CidrBlock', ], 'CidrBlock' => [ 'shape' => 'String', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'AssociateVpcCidrBlockResult' => [ 'type' => 'structure', 'members' => [ 'Ipv6CidrBlockAssociation' => [ 'shape' => 'VpcIpv6CidrBlockAssociation', 'locationName' => 'ipv6CidrBlockAssociation', ], 'CidrBlockAssociation' => [ 'shape' => 'VpcCidrBlockAssociation', 'locationName' => 'cidrBlockAssociation', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'AssociatedNetworkType' => [ 'type' => 'string', 'enum' => [ 'vpc', ], ], 'AssociatedTargetNetwork' => [ 'type' => 'structure', 'members' => [ 'NetworkId' => [ 'shape' => 'String', 'locationName' => 'networkId', ], 'NetworkType' => [ 'shape' => 'AssociatedNetworkType', 'locationName' => 'networkType', ], ], ], 'AssociatedTargetNetworkSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssociatedTargetNetwork', 'locationName' => 'item', ], ], 'AssociationIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'AssociationId', ], ], 'AssociationStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'AssociationStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'AssociationStatusCode' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'association-failed', 'disassociating', 'disassociated', ], ], 'AttachClassicLinkVpcRequest' => [ 'type' => 'structure', 'required' => [ 'Groups', 'InstanceId', 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Groups' => [ 'shape' => 'GroupIdStringList', 'locationName' => 'SecurityGroupId', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], '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' => [ 'DeviceIndex', 'InstanceId', 'NetworkInterfaceId', ], 'members' => [ 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], ], ], 'AttachNetworkInterfaceResult' => [ 'type' => 'structure', 'members' => [ 'AttachmentId' => [ 'shape' => 'String', 'locationName' => 'attachmentId', ], ], ], 'AttachVolumeRequest' => [ 'type' => 'structure', 'required' => [ 'Device', 'InstanceId', 'VolumeId', ], 'members' => [ 'Device' => [ 'shape' => 'String', ], 'InstanceId' => [ 'shape' => 'String', ], 'VolumeId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'AttachVpnGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', 'VpnGatewayId', ], 'members' => [ 'VpcId' => [ 'shape' => 'String', ], 'VpnGatewayId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], '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', ], ], ], 'AuthorizationRule' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'AccessAll' => [ 'shape' => 'Boolean', 'locationName' => 'accessAll', ], 'DestinationCidr' => [ 'shape' => 'String', 'locationName' => 'destinationCidr', ], 'Status' => [ 'shape' => 'ClientVpnAuthorizationRuleStatus', 'locationName' => 'status', ], ], ], 'AuthorizationRuleSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AuthorizationRule', 'locationName' => 'item', ], ], 'AuthorizeClientVpnIngressRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'TargetNetworkCidr', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', ], 'TargetNetworkCidr' => [ 'shape' => 'String', ], 'AccessGroupId' => [ 'shape' => 'String', ], 'AuthorizeAllGroups' => [ 'shape' => 'Boolean', ], 'Description' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AuthorizeClientVpnIngressResult' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ClientVpnAuthorizationRuleStatus', 'locationName' => 'status', ], ], ], 'AuthorizeSecurityGroupEgressRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', 'locationName' => 'ipPermissions', ], 'CidrIp' => [ 'shape' => 'String', 'locationName' => 'cidrIp', ], 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'IpProtocol' => [ 'shape' => 'String', 'locationName' => 'ipProtocol', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], 'SourceSecurityGroupName' => [ 'shape' => 'String', 'locationName' => 'sourceSecurityGroupName', ], 'SourceSecurityGroupOwnerId' => [ 'shape' => 'String', 'locationName' => 'sourceSecurityGroupOwnerId', ], ], ], 'AuthorizeSecurityGroupIngressRequest' => [ 'type' => 'structure', 'members' => [ 'CidrIp' => [ 'shape' => 'String', ], 'FromPort' => [ 'shape' => 'Integer', ], 'GroupId' => [ 'shape' => 'String', ], 'GroupName' => [ 'shape' => 'String', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', ], 'IpProtocol' => [ 'shape' => 'String', ], 'SourceSecurityGroupName' => [ 'shape' => 'String', ], 'SourceSecurityGroupOwnerId' => [ 'shape' => 'String', ], 'ToPort' => [ 'shape' => 'Integer', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'AutoAcceptSharedAttachmentsValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'AutoPlacement' => [ 'type' => 'string', 'enum' => [ 'on', 'off', ], ], 'AvailabilityZone' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'AvailabilityZoneState', 'locationName' => 'zoneState', ], 'Messages' => [ 'shape' => 'AvailabilityZoneMessageList', 'locationName' => 'messageSet', ], 'RegionName' => [ 'shape' => 'String', 'locationName' => 'regionName', ], 'ZoneName' => [ 'shape' => 'String', 'locationName' => 'zoneName', ], 'ZoneId' => [ 'shape' => 'String', 'locationName' => 'zoneId', ], ], ], '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', 'information', 'impaired', 'unavailable', ], ], 'AvailableCapacity' => [ 'type' => 'structure', 'members' => [ 'AvailableInstanceCapacity' => [ 'shape' => 'AvailableInstanceCapacityList', 'locationName' => 'availableInstanceCapacity', ], 'AvailableVCpus' => [ 'shape' => 'Integer', 'locationName' => 'availableVCpus', ], ], ], 'AvailableInstanceCapacityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceCapacity', 'locationName' => 'item', ], ], 'BatchState' => [ 'type' => 'string', 'enum' => [ 'submitted', 'active', 'cancelled', 'failed', 'cancelled_running', 'cancelled_terminating', 'modifying', ], ], 'BillingProductList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'Blob' => [ 'type' => 'blob', ], 'BlobAttributeValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Blob', 'locationName' => 'value', ], ], ], 'BlockDeviceMapping' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', 'locationName' => 'deviceName', ], 'VirtualName' => [ 'shape' => 'String', 'locationName' => 'virtualName', ], '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' => [ 'InstanceId' => [ 'shape' => 'String', ], 'Storage' => [ 'shape' => 'Storage', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'BundleInstanceResult' => [ 'type' => 'structure', 'members' => [ 'BundleTask' => [ 'shape' => 'BundleTask', 'locationName' => 'bundleInstanceTask', ], ], ], 'BundleTask' => [ 'type' => 'structure', 'members' => [ 'BundleId' => [ 'shape' => 'String', 'locationName' => 'bundleId', ], 'BundleTaskError' => [ 'shape' => 'BundleTaskError', 'locationName' => 'error', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], 'State' => [ 'shape' => 'BundleTaskState', 'locationName' => 'state', ], 'Storage' => [ 'shape' => 'Storage', 'locationName' => 'storage', ], 'UpdateTime' => [ 'shape' => 'DateTime', 'locationName' => 'updateTime', ], ], ], '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', ], ], 'ByoipCidr' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'State' => [ 'shape' => 'ByoipCidrState', 'locationName' => 'state', ], ], ], 'ByoipCidrSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ByoipCidr', 'locationName' => 'item', ], ], 'ByoipCidrState' => [ 'type' => 'string', 'enum' => [ 'advertised', 'deprovisioned', 'failed-deprovision', 'failed-provision', 'pending-deprovision', 'pending-provision', 'provisioned', ], ], 'CancelBatchErrorCode' => [ 'type' => 'string', 'enum' => [ 'fleetRequestIdDoesNotExist', 'fleetRequestIdMalformed', 'fleetRequestNotInCancellableState', 'unexpectedError', ], ], 'CancelBundleTaskRequest' => [ 'type' => 'structure', 'required' => [ 'BundleId', ], 'members' => [ 'BundleId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CancelBundleTaskResult' => [ 'type' => 'structure', 'members' => [ 'BundleTask' => [ 'shape' => 'BundleTask', 'locationName' => 'bundleInstanceTask', ], ], ], 'CancelCapacityReservationRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', ], 'members' => [ 'CapacityReservationId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CancelCapacityReservationResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'CancelConversionRequest' => [ 'type' => 'structure', 'required' => [ 'ConversionTaskId', ], 'members' => [ 'ConversionTaskId' => [ 'shape' => 'String', 'locationName' => 'conversionTaskId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'ReasonMessage' => [ 'shape' => 'String', 'locationName' => 'reasonMessage', ], ], ], 'CancelExportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'ExportTaskId', ], 'members' => [ 'ExportTaskId' => [ 'shape' => 'String', 'locationName' => 'exportTaskId', ], ], ], 'CancelImportTaskRequest' => [ 'type' => 'structure', 'members' => [ 'CancelReason' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ImportTaskId' => [ 'shape' => 'String', ], ], ], 'CancelImportTaskResult' => [ 'type' => 'structure', 'members' => [ 'ImportTaskId' => [ 'shape' => 'String', 'locationName' => 'importTaskId', ], 'PreviousState' => [ 'shape' => 'String', 'locationName' => 'previousState', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], ], ], 'CancelReservedInstancesListingRequest' => [ 'type' => 'structure', 'required' => [ 'ReservedInstancesListingId', ], 'members' => [ 'ReservedInstancesListingId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesListingId', ], ], ], 'CancelReservedInstancesListingResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesListings' => [ 'shape' => 'ReservedInstancesListingList', 'locationName' => 'reservedInstancesListingsSet', ], ], ], 'CancelSpotFleetRequestsError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'CancelBatchErrorCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'CancelSpotFleetRequestsErrorItem' => [ 'type' => 'structure', 'members' => [ 'Error' => [ 'shape' => 'CancelSpotFleetRequestsError', 'locationName' => 'error', ], 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], ], ], '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' => [ 'SuccessfulFleetRequests' => [ 'shape' => 'CancelSpotFleetRequestsSuccessSet', 'locationName' => 'successfulFleetRequestSet', ], 'UnsuccessfulFleetRequests' => [ 'shape' => 'CancelSpotFleetRequestsErrorSet', 'locationName' => 'unsuccessfulFleetRequestSet', ], ], ], 'CancelSpotFleetRequestsSuccessItem' => [ 'type' => 'structure', 'members' => [ 'CurrentSpotFleetRequestState' => [ 'shape' => 'BatchState', 'locationName' => 'currentSpotFleetRequestState', ], 'PreviousSpotFleetRequestState' => [ 'shape' => 'BatchState', 'locationName' => 'previousSpotFleetRequestState', ], 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], ], ], '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', ], ], 'CapacityReservation' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationId' => [ 'shape' => 'String', 'locationName' => 'capacityReservationId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'InstancePlatform' => [ 'shape' => 'CapacityReservationInstancePlatform', 'locationName' => 'instancePlatform', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Tenancy' => [ 'shape' => 'CapacityReservationTenancy', 'locationName' => 'tenancy', ], 'TotalInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'totalInstanceCount', ], 'AvailableInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'availableInstanceCount', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'EphemeralStorage' => [ 'shape' => 'Boolean', 'locationName' => 'ephemeralStorage', ], 'State' => [ 'shape' => 'CapacityReservationState', 'locationName' => 'state', ], 'EndDate' => [ 'shape' => 'DateTime', 'locationName' => 'endDate', ], 'EndDateType' => [ 'shape' => 'EndDateType', 'locationName' => 'endDateType', ], 'InstanceMatchCriteria' => [ 'shape' => 'InstanceMatchCriteria', 'locationName' => 'instanceMatchCriteria', ], 'CreateDate' => [ 'shape' => 'DateTime', 'locationName' => 'createDate', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'CapacityReservationIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'CapacityReservationInstancePlatform' => [ 'type' => 'string', 'enum' => [ 'Linux/UNIX', 'Red Hat Enterprise Linux', 'SUSE Linux', 'Windows', 'Windows with SQL Server', 'Windows with SQL Server Enterprise', 'Windows with SQL Server Standard', 'Windows with SQL Server Web', 'Linux with SQL Server Standard', 'Linux with SQL Server Web', 'Linux with SQL Server Enterprise', ], ], 'CapacityReservationPreference' => [ 'type' => 'string', 'enum' => [ 'open', 'none', ], ], 'CapacityReservationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservation', 'locationName' => 'item', ], ], 'CapacityReservationSpecification' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationPreference' => [ 'shape' => 'CapacityReservationPreference', ], 'CapacityReservationTarget' => [ 'shape' => 'CapacityReservationTarget', ], ], ], 'CapacityReservationSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationPreference' => [ 'shape' => 'CapacityReservationPreference', 'locationName' => 'capacityReservationPreference', ], 'CapacityReservationTarget' => [ 'shape' => 'CapacityReservationTargetResponse', 'locationName' => 'capacityReservationTarget', ], ], ], 'CapacityReservationState' => [ 'type' => 'string', 'enum' => [ 'active', 'expired', 'cancelled', 'pending', 'failed', ], ], 'CapacityReservationTarget' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationId' => [ 'shape' => 'String', ], ], ], 'CapacityReservationTargetResponse' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationId' => [ 'shape' => 'String', 'locationName' => 'capacityReservationId', ], ], ], 'CapacityReservationTenancy' => [ 'type' => 'string', 'enum' => [ 'default', 'dedicated', ], ], 'CertificateAuthentication' => [ 'type' => 'structure', 'members' => [ 'ClientRootCertificateChain' => [ 'shape' => 'String', 'locationName' => 'clientRootCertificateChain', ], ], ], 'CertificateAuthenticationRequest' => [ 'type' => 'structure', 'members' => [ 'ClientRootCertificateChainArn' => [ 'shape' => 'String', ], ], ], 'CidrAuthorizationContext' => [ 'type' => 'structure', 'required' => [ 'Message', 'Signature', ], 'members' => [ 'Message' => [ 'shape' => 'String', ], 'Signature' => [ 'shape' => 'String', ], ], ], 'CidrBlock' => [ 'type' => 'structure', 'members' => [ 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], ], ], 'CidrBlockSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CidrBlock', 'locationName' => 'item', ], ], 'ClassicLinkDnsSupport' => [ 'type' => 'structure', 'members' => [ 'ClassicLinkDnsSupported' => [ 'shape' => 'Boolean', 'locationName' => 'classicLinkDnsSupported', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'ClassicLinkDnsSupportList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClassicLinkDnsSupport', 'locationName' => 'item', ], ], 'ClassicLinkInstance' => [ 'type' => 'structure', 'members' => [ 'Groups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'ClassicLinkInstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClassicLinkInstance', 'locationName' => 'item', ], ], 'ClassicLoadBalancer' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], ], ], 'ClassicLoadBalancers' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClassicLoadBalancer', 'locationName' => 'item', ], 'max' => 5, 'min' => 1, ], 'ClassicLoadBalancersConfig' => [ 'type' => 'structure', 'members' => [ 'ClassicLoadBalancers' => [ 'shape' => 'ClassicLoadBalancers', 'locationName' => 'classicLoadBalancers', ], ], ], 'ClientCertificateRevocationListStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ClientCertificateRevocationListStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ClientCertificateRevocationListStatusCode' => [ 'type' => 'string', 'enum' => [ 'pending', 'active', ], ], 'ClientData' => [ 'type' => 'structure', 'members' => [ 'Comment' => [ 'shape' => 'String', ], 'UploadEnd' => [ 'shape' => 'DateTime', ], 'UploadSize' => [ 'shape' => 'Double', ], 'UploadStart' => [ 'shape' => 'DateTime', ], ], ], 'ClientVpnAuthentication' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'ClientVpnAuthenticationType', 'locationName' => 'type', ], 'ActiveDirectory' => [ 'shape' => 'DirectoryServiceAuthentication', 'locationName' => 'activeDirectory', ], 'MutualAuthentication' => [ 'shape' => 'CertificateAuthentication', 'locationName' => 'mutualAuthentication', ], ], ], 'ClientVpnAuthenticationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClientVpnAuthentication', 'locationName' => 'item', ], ], 'ClientVpnAuthenticationRequest' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'ClientVpnAuthenticationType', ], 'ActiveDirectory' => [ 'shape' => 'DirectoryServiceAuthenticationRequest', ], 'MutualAuthentication' => [ 'shape' => 'CertificateAuthenticationRequest', ], ], ], 'ClientVpnAuthenticationRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClientVpnAuthenticationRequest', ], ], 'ClientVpnAuthenticationType' => [ 'type' => 'string', 'enum' => [ 'certificate-authentication', 'directory-service-authentication', ], ], 'ClientVpnAuthorizationRuleStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ClientVpnAuthorizationRuleStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ClientVpnAuthorizationRuleStatusCode' => [ 'type' => 'string', 'enum' => [ 'authorizing', 'active', 'failed', 'revoking', ], ], 'ClientVpnConnection' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'Timestamp' => [ 'shape' => 'String', 'locationName' => 'timestamp', ], 'ConnectionId' => [ 'shape' => 'String', 'locationName' => 'connectionId', ], 'Username' => [ 'shape' => 'String', 'locationName' => 'username', ], 'ConnectionEstablishedTime' => [ 'shape' => 'String', 'locationName' => 'connectionEstablishedTime', ], 'IngressBytes' => [ 'shape' => 'String', 'locationName' => 'ingressBytes', ], 'EgressBytes' => [ 'shape' => 'String', 'locationName' => 'egressBytes', ], 'IngressPackets' => [ 'shape' => 'String', 'locationName' => 'ingressPackets', ], 'EgressPackets' => [ 'shape' => 'String', 'locationName' => 'egressPackets', ], 'ClientIp' => [ 'shape' => 'String', 'locationName' => 'clientIp', ], 'CommonName' => [ 'shape' => 'String', 'locationName' => 'commonName', ], 'Status' => [ 'shape' => 'ClientVpnConnectionStatus', 'locationName' => 'status', ], 'ConnectionEndTime' => [ 'shape' => 'String', 'locationName' => 'connectionEndTime', ], ], ], 'ClientVpnConnectionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClientVpnConnection', 'locationName' => 'item', ], ], 'ClientVpnConnectionStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ClientVpnConnectionStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ClientVpnConnectionStatusCode' => [ 'type' => 'string', 'enum' => [ 'active', 'failed-to-terminate', 'terminating', 'terminated', ], ], 'ClientVpnEndpoint' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Status' => [ 'shape' => 'ClientVpnEndpointStatus', 'locationName' => 'status', ], 'CreationTime' => [ 'shape' => 'String', 'locationName' => 'creationTime', ], 'DeletionTime' => [ 'shape' => 'String', 'locationName' => 'deletionTime', ], 'DnsName' => [ 'shape' => 'String', 'locationName' => 'dnsName', ], 'ClientCidrBlock' => [ 'shape' => 'String', 'locationName' => 'clientCidrBlock', ], 'DnsServers' => [ 'shape' => 'ValueStringList', 'locationName' => 'dnsServer', ], 'SplitTunnel' => [ 'shape' => 'Boolean', 'locationName' => 'splitTunnel', ], 'VpnProtocol' => [ 'shape' => 'VpnProtocol', 'locationName' => 'vpnProtocol', ], 'TransportProtocol' => [ 'shape' => 'TransportProtocol', 'locationName' => 'transportProtocol', ], 'AssociatedTargetNetworks' => [ 'shape' => 'AssociatedTargetNetworkSet', 'deprecated' => true, 'deprecatedMessage' => 'This property is deprecated. To view the target networks associated with a Client VPN endpoint, call DescribeClientVpnTargetNetworks and inspect the clientVpnTargetNetworks response element.', 'locationName' => 'associatedTargetNetwork', ], 'ServerCertificateArn' => [ 'shape' => 'String', 'locationName' => 'serverCertificateArn', ], 'AuthenticationOptions' => [ 'shape' => 'ClientVpnAuthenticationList', 'locationName' => 'authenticationOptions', ], 'ConnectionLogOptions' => [ 'shape' => 'ConnectionLogResponseOptions', 'locationName' => 'connectionLogOptions', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'ClientVpnEndpointStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ClientVpnEndpointStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ClientVpnEndpointStatusCode' => [ 'type' => 'string', 'enum' => [ 'pending-associate', 'available', 'deleting', 'deleted', ], ], 'ClientVpnRoute' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'DestinationCidr' => [ 'shape' => 'String', 'locationName' => 'destinationCidr', ], 'TargetSubnet' => [ 'shape' => 'String', 'locationName' => 'targetSubnet', ], 'Type' => [ 'shape' => 'String', 'locationName' => 'type', ], 'Origin' => [ 'shape' => 'String', 'locationName' => 'origin', ], 'Status' => [ 'shape' => 'ClientVpnRouteStatus', 'locationName' => 'status', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], ], ], 'ClientVpnRouteSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClientVpnRoute', 'locationName' => 'item', ], ], 'ClientVpnRouteStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ClientVpnRouteStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ClientVpnRouteStatusCode' => [ 'type' => 'string', 'enum' => [ 'creating', 'active', 'failed', 'deleting', ], ], 'ClientVpnSecurityGroupIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'ConfirmProductInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'ProductCode', ], 'members' => [ 'InstanceId' => [ 'shape' => 'String', ], 'ProductCode' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ConfirmProductInstanceResult' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ConnectionLogOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'CloudwatchLogGroup' => [ 'shape' => 'String', ], 'CloudwatchLogStream' => [ 'shape' => 'String', ], ], ], 'ConnectionLogResponseOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'CloudwatchLogGroup' => [ 'shape' => 'String', ], 'CloudwatchLogStream' => [ 'shape' => 'String', ], ], ], 'ConnectionNotification' => [ 'type' => 'structure', 'members' => [ 'ConnectionNotificationId' => [ 'shape' => 'String', 'locationName' => 'connectionNotificationId', ], 'ServiceId' => [ 'shape' => 'String', 'locationName' => 'serviceId', ], 'VpcEndpointId' => [ 'shape' => 'String', 'locationName' => 'vpcEndpointId', ], 'ConnectionNotificationType' => [ 'shape' => 'ConnectionNotificationType', 'locationName' => 'connectionNotificationType', ], 'ConnectionNotificationArn' => [ 'shape' => 'String', 'locationName' => 'connectionNotificationArn', ], 'ConnectionEvents' => [ 'shape' => 'ValueStringList', 'locationName' => 'connectionEvents', ], 'ConnectionNotificationState' => [ 'shape' => 'ConnectionNotificationState', 'locationName' => 'connectionNotificationState', ], ], ], 'ConnectionNotificationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConnectionNotification', 'locationName' => 'item', ], ], 'ConnectionNotificationState' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'ConnectionNotificationType' => [ 'type' => 'string', 'enum' => [ 'Topic', ], ], 'ContainerFormat' => [ 'type' => 'string', 'enum' => [ 'ova', ], ], 'ConversionIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'ConversionTask' => [ 'type' => 'structure', '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', ], ], 'CopyFpgaImageRequest' => [ 'type' => 'structure', 'required' => [ 'SourceFpgaImageId', 'SourceRegion', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'SourceFpgaImageId' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], 'SourceRegion' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', ], ], ], 'CopyFpgaImageResult' => [ 'type' => 'structure', 'members' => [ 'FpgaImageId' => [ 'shape' => 'String', 'locationName' => 'fpgaImageId', ], ], ], 'CopyImageRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'SourceImageId', 'SourceRegion', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], 'Name' => [ 'shape' => 'String', ], 'SourceImageId' => [ 'shape' => 'String', ], 'SourceRegion' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CopyImageResult' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], ], ], 'CopySnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'SourceRegion', 'SourceSnapshotId', ], 'members' => [ 'Description' => [ 'shape' => 'String', ], 'DestinationRegion' => [ 'shape' => 'String', 'locationName' => 'destinationRegion', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], 'PresignedUrl' => [ 'shape' => 'String', 'locationName' => 'presignedUrl', ], 'SourceRegion' => [ 'shape' => 'String', ], 'SourceSnapshotId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CopySnapshotResult' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], ], ], 'CpuOptions' => [ 'type' => 'structure', 'members' => [ 'CoreCount' => [ 'shape' => 'Integer', 'locationName' => 'coreCount', ], 'ThreadsPerCore' => [ 'shape' => 'Integer', 'locationName' => 'threadsPerCore', ], ], ], 'CpuOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'CoreCount' => [ 'shape' => 'Integer', ], 'ThreadsPerCore' => [ 'shape' => 'Integer', ], ], ], 'CreateCapacityReservationRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceType', 'InstancePlatform', 'AvailabilityZone', 'InstanceCount', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', ], 'InstanceType' => [ 'shape' => 'String', ], 'InstancePlatform' => [ 'shape' => 'CapacityReservationInstancePlatform', ], 'AvailabilityZone' => [ 'shape' => 'String', ], 'Tenancy' => [ 'shape' => 'CapacityReservationTenancy', ], 'InstanceCount' => [ 'shape' => 'Integer', ], 'EbsOptimized' => [ 'shape' => 'Boolean', ], 'EphemeralStorage' => [ 'shape' => 'Boolean', ], 'EndDate' => [ 'shape' => 'DateTime', ], 'EndDateType' => [ 'shape' => 'EndDateType', ], 'InstanceMatchCriteria' => [ 'shape' => 'InstanceMatchCriteria', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateCapacityReservationResult' => [ 'type' => 'structure', 'members' => [ 'CapacityReservation' => [ 'shape' => 'CapacityReservation', 'locationName' => 'capacityReservation', ], ], ], 'CreateClientVpnEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'ClientCidrBlock', 'ServerCertificateArn', 'AuthenticationOptions', 'ConnectionLogOptions', ], 'members' => [ 'ClientCidrBlock' => [ 'shape' => 'String', ], 'ServerCertificateArn' => [ 'shape' => 'String', ], 'AuthenticationOptions' => [ 'shape' => 'ClientVpnAuthenticationRequestList', 'locationName' => 'Authentication', ], 'ConnectionLogOptions' => [ 'shape' => 'ConnectionLogOptions', ], 'DnsServers' => [ 'shape' => 'ValueStringList', ], 'TransportProtocol' => [ 'shape' => 'TransportProtocol', ], 'Description' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateClientVpnEndpointResult' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'Status' => [ 'shape' => 'ClientVpnEndpointStatus', 'locationName' => 'status', ], 'DnsName' => [ 'shape' => 'String', 'locationName' => 'dnsName', ], ], ], 'CreateClientVpnRouteRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'DestinationCidrBlock', 'TargetVpcSubnetId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', ], 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'TargetVpcSubnetId' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateClientVpnRouteResult' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ClientVpnRouteStatus', 'locationName' => 'status', ], ], ], 'CreateCustomerGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'BgpAsn', 'PublicIp', 'Type', ], 'members' => [ 'BgpAsn' => [ 'shape' => 'Integer', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'IpAddress', ], 'Type' => [ 'shape' => 'GatewayType', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateCustomerGatewayResult' => [ 'type' => 'structure', 'members' => [ 'CustomerGateway' => [ 'shape' => 'CustomerGateway', 'locationName' => 'customerGateway', ], ], ], 'CreateDefaultSubnetRequest' => [ 'type' => 'structure', 'required' => [ 'AvailabilityZone', ], 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateDefaultSubnetResult' => [ 'type' => 'structure', 'members' => [ 'Subnet' => [ 'shape' => 'Subnet', 'locationName' => 'subnet', ], ], ], 'CreateDefaultVpcRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateDefaultVpcResult' => [ 'type' => 'structure', 'members' => [ 'Vpc' => [ 'shape' => 'Vpc', 'locationName' => 'vpc', ], ], ], 'CreateDhcpOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'DhcpConfigurations', ], 'members' => [ 'DhcpConfigurations' => [ 'shape' => 'NewDhcpConfigurationList', 'locationName' => 'dhcpConfiguration', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateDhcpOptionsResult' => [ 'type' => 'structure', 'members' => [ 'DhcpOptions' => [ 'shape' => 'DhcpOptions', 'locationName' => 'dhcpOptions', ], ], ], 'CreateEgressOnlyInternetGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcId' => [ 'shape' => 'String', ], ], ], 'CreateEgressOnlyInternetGatewayResult' => [ 'type' => 'structure', 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'EgressOnlyInternetGateway' => [ 'shape' => 'EgressOnlyInternetGateway', 'locationName' => 'egressOnlyInternetGateway', ], ], ], 'CreateFleetError' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateAndOverrides' => [ 'shape' => 'LaunchTemplateAndOverridesResponse', 'locationName' => 'launchTemplateAndOverrides', ], 'Lifecycle' => [ 'shape' => 'InstanceLifecycle', 'locationName' => 'lifecycle', ], 'ErrorCode' => [ 'shape' => 'String', 'locationName' => 'errorCode', ], 'ErrorMessage' => [ 'shape' => 'String', 'locationName' => 'errorMessage', ], ], ], 'CreateFleetErrorsSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CreateFleetError', 'locationName' => 'item', ], ], 'CreateFleetInstance' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateAndOverrides' => [ 'shape' => 'LaunchTemplateAndOverridesResponse', 'locationName' => 'launchTemplateAndOverrides', ], 'Lifecycle' => [ 'shape' => 'InstanceLifecycle', 'locationName' => 'lifecycle', ], 'InstanceIds' => [ 'shape' => 'InstanceIdsSet', 'locationName' => 'instanceIds', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'Platform' => [ 'shape' => 'PlatformValues', 'locationName' => 'platform', ], ], ], 'CreateFleetInstancesSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CreateFleetInstance', 'locationName' => 'item', ], ], 'CreateFleetRequest' => [ 'type' => 'structure', 'required' => [ 'LaunchTemplateConfigs', 'TargetCapacitySpecification', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', ], 'SpotOptions' => [ 'shape' => 'SpotOptionsRequest', ], 'OnDemandOptions' => [ 'shape' => 'OnDemandOptionsRequest', ], 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'FleetExcessCapacityTerminationPolicy', ], 'LaunchTemplateConfigs' => [ 'shape' => 'FleetLaunchTemplateConfigListRequest', ], 'TargetCapacitySpecification' => [ 'shape' => 'TargetCapacitySpecificationRequest', ], 'TerminateInstancesWithExpiration' => [ 'shape' => 'Boolean', ], 'Type' => [ 'shape' => 'FleetType', ], 'ValidFrom' => [ 'shape' => 'DateTime', ], 'ValidUntil' => [ 'shape' => 'DateTime', ], 'ReplaceUnhealthyInstances' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateFleetResult' => [ 'type' => 'structure', 'members' => [ 'FleetId' => [ 'shape' => 'FleetIdentifier', 'locationName' => 'fleetId', ], 'Errors' => [ 'shape' => 'CreateFleetErrorsSet', 'locationName' => 'errorSet', ], 'Instances' => [ 'shape' => 'CreateFleetInstancesSet', 'locationName' => 'fleetInstanceSet', ], ], ], 'CreateFlowLogsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIds', 'ResourceType', 'TrafficType', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', ], 'DeliverLogsPermissionArn' => [ 'shape' => 'String', ], 'LogGroupName' => [ 'shape' => 'String', ], 'ResourceIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'ResourceId', ], 'ResourceType' => [ 'shape' => 'FlowLogsResourceType', ], 'TrafficType' => [ 'shape' => 'TrafficType', ], 'LogDestinationType' => [ 'shape' => 'LogDestinationType', ], 'LogDestination' => [ 'shape' => 'String', ], ], ], 'CreateFlowLogsResult' => [ 'type' => 'structure', 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'FlowLogIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'flowLogIdSet', ], 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemSet', 'locationName' => 'unsuccessful', ], ], ], 'CreateFpgaImageRequest' => [ 'type' => 'structure', 'required' => [ 'InputStorageLocation', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InputStorageLocation' => [ 'shape' => 'StorageLocation', ], 'LogsStorageLocation' => [ 'shape' => 'StorageLocation', ], 'Description' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', ], ], ], 'CreateFpgaImageResult' => [ 'type' => 'structure', 'members' => [ 'FpgaImageId' => [ 'shape' => 'String', 'locationName' => 'fpgaImageId', ], 'FpgaImageGlobalId' => [ 'shape' => 'String', 'locationName' => 'fpgaImageGlobalId', ], ], ], 'CreateImageRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'Name', ], 'members' => [ 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingRequestList', 'locationName' => 'blockDeviceMapping', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], 'NoReboot' => [ 'shape' => 'Boolean', 'locationName' => 'noReboot', ], ], ], 'CreateImageResult' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], ], ], 'CreateInstanceExportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'ExportToS3Task' => [ 'shape' => 'ExportToS3TaskSpecification', 'locationName' => 'exportToS3', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'TargetEnvironment' => [ 'shape' => 'ExportEnvironment', 'locationName' => 'targetEnvironment', ], ], ], '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' => [ 'KeyName' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateLaunchTemplateRequest' => [ 'type' => 'structure', 'required' => [ 'LaunchTemplateName', 'LaunchTemplateData', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', ], 'VersionDescription' => [ 'shape' => 'VersionDescription', ], 'LaunchTemplateData' => [ 'shape' => 'RequestLaunchTemplateData', ], ], ], 'CreateLaunchTemplateResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplate' => [ 'shape' => 'LaunchTemplate', 'locationName' => 'launchTemplate', ], ], ], 'CreateLaunchTemplateVersionRequest' => [ 'type' => 'structure', 'required' => [ 'LaunchTemplateData', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', ], 'LaunchTemplateId' => [ 'shape' => 'String', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', ], 'SourceVersion' => [ 'shape' => 'String', ], 'VersionDescription' => [ 'shape' => 'VersionDescription', ], 'LaunchTemplateData' => [ 'shape' => 'RequestLaunchTemplateData', ], ], ], 'CreateLaunchTemplateVersionResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateVersion' => [ 'shape' => 'LaunchTemplateVersion', 'locationName' => 'launchTemplateVersion', ], ], ], 'CreateNatGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'AllocationId', 'SubnetId', ], 'members' => [ 'AllocationId' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', ], 'SubnetId' => [ 'shape' => 'String', ], ], ], 'CreateNatGatewayResult' => [ 'type' => 'structure', 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'NatGateway' => [ 'shape' => 'NatGateway', 'locationName' => 'natGateway', ], ], ], 'CreateNetworkAclEntryRequest' => [ 'type' => 'structure', 'required' => [ 'Egress', 'NetworkAclId', 'Protocol', 'RuleAction', 'RuleNumber', ], 'members' => [ 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Egress' => [ 'shape' => 'Boolean', 'locationName' => 'egress', ], 'IcmpTypeCode' => [ 'shape' => 'IcmpTypeCode', 'locationName' => 'Icmp', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], 'NetworkAclId' => [ 'shape' => 'String', 'locationName' => 'networkAclId', ], 'PortRange' => [ 'shape' => 'PortRange', 'locationName' => 'portRange', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], 'RuleAction' => [ 'shape' => 'RuleAction', 'locationName' => 'ruleAction', ], 'RuleNumber' => [ 'shape' => 'Integer', 'locationName' => 'ruleNumber', ], ], ], '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', ], ], ], 'CreateNetworkInterfacePermissionRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', 'Permission', ], 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'String', ], 'AwsAccountId' => [ 'shape' => 'String', ], 'AwsService' => [ 'shape' => 'String', ], 'Permission' => [ 'shape' => 'InterfacePermissionType', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateNetworkInterfacePermissionResult' => [ 'type' => 'structure', 'members' => [ 'InterfacePermission' => [ 'shape' => 'NetworkInterfacePermission', 'locationName' => 'interfacePermission', ], ], ], 'CreateNetworkInterfaceRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', ], 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Groups' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'SecurityGroupId', ], 'Ipv6AddressCount' => [ 'shape' => 'Integer', 'locationName' => 'ipv6AddressCount', ], 'Ipv6Addresses' => [ 'shape' => 'InstanceIpv6AddressList', 'locationName' => 'ipv6Addresses', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'PrivateIpAddresses' => [ 'shape' => 'PrivateIpAddressSpecificationList', 'locationName' => 'privateIpAddresses', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'secondaryPrivateIpAddressCount', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], ], ], 'CreateNetworkInterfaceResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInterface' => [ 'shape' => 'NetworkInterface', 'locationName' => 'networkInterface', ], ], ], 'CreatePlacementGroupRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'Strategy' => [ 'shape' => 'PlacementStrategy', 'locationName' => 'strategy', ], 'PartitionCount' => [ 'shape' => 'Integer', ], ], ], 'CreateReservedInstancesListingRequest' => [ 'type' => 'structure', 'required' => [ 'ClientToken', 'InstanceCount', 'PriceSchedules', 'ReservedInstancesId', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'PriceSchedules' => [ 'shape' => 'PriceScheduleSpecificationList', 'locationName' => 'priceSchedules', ], 'ReservedInstancesId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesId', ], ], ], 'CreateReservedInstancesListingResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesListings' => [ 'shape' => 'ReservedInstancesListingList', 'locationName' => 'reservedInstancesListingsSet', ], ], ], 'CreateRouteRequest' => [ 'type' => 'structure', 'required' => [ 'RouteTableId', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'DestinationIpv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationIpv6CidrBlock', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'EgressOnlyInternetGatewayId' => [ 'shape' => 'String', 'locationName' => 'egressOnlyInternetGatewayId', ], 'GatewayId' => [ 'shape' => 'String', 'locationName' => 'gatewayId', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], 'TransitGatewayId' => [ 'shape' => 'String', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'RouteTableId' => [ 'shape' => 'String', 'locationName' => 'routeTableId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], ], ], 'CreateRouteResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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' => [ 'Description', 'GroupName', ], 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'GroupDescription', ], 'GroupName' => [ 'shape' => 'String', ], 'VpcId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateSecurityGroupResult' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], ], ], 'CreateSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'VolumeId', ], 'members' => [ 'Description' => [ 'shape' => 'String', ], 'VolumeId' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateSpotDatafeedSubscriptionRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'String', 'locationName' => 'bucket', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Prefix' => [ 'shape' => 'String', 'locationName' => 'prefix', ], ], ], 'CreateSpotDatafeedSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'SpotDatafeedSubscription' => [ 'shape' => 'SpotDatafeedSubscription', 'locationName' => 'spotDatafeedSubscription', ], ], ], 'CreateSubnetRequest' => [ 'type' => 'structure', 'required' => [ 'CidrBlock', 'VpcId', ], 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', ], 'AvailabilityZoneId' => [ 'shape' => 'String', ], 'CidrBlock' => [ 'shape' => 'String', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', ], 'VpcId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], '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', ], ], ], 'CreateTransitGatewayRequest' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', ], 'Options' => [ 'shape' => 'TransitGatewayRequestOptions', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayResult' => [ 'type' => 'structure', 'members' => [ 'TransitGateway' => [ 'shape' => 'TransitGateway', 'locationName' => 'transitGateway', ], ], ], 'CreateTransitGatewayRouteRequest' => [ 'type' => 'structure', 'required' => [ 'DestinationCidrBlock', 'TransitGatewayRouteTableId', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'TransitGatewayRouteTableId' => [ 'shape' => 'String', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'String', ], 'Blackhole' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayRouteResult' => [ 'type' => 'structure', 'members' => [ 'Route' => [ 'shape' => 'TransitGatewayRoute', 'locationName' => 'route', ], ], ], 'CreateTransitGatewayRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayId', ], 'members' => [ 'TransitGatewayId' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTable' => [ 'shape' => 'TransitGatewayRouteTable', 'locationName' => 'transitGatewayRouteTable', ], ], ], 'CreateTransitGatewayVpcAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayId', 'VpcId', 'SubnetIds', ], 'members' => [ 'TransitGatewayId' => [ 'shape' => 'String', ], 'VpcId' => [ 'shape' => 'String', ], 'SubnetIds' => [ 'shape' => 'ValueStringList', ], 'Options' => [ 'shape' => 'CreateTransitGatewayVpcAttachmentRequestOptions', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayVpcAttachmentRequestOptions' => [ 'type' => 'structure', 'members' => [ 'DnsSupport' => [ 'shape' => 'DnsSupportValue', ], 'Ipv6Support' => [ 'shape' => 'Ipv6SupportValue', ], ], ], 'CreateTransitGatewayVpcAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayVpcAttachment' => [ 'shape' => 'TransitGatewayVpcAttachment', 'locationName' => 'transitGatewayVpcAttachment', ], ], ], 'CreateVolumePermission' => [ 'type' => 'structure', 'members' => [ 'Group' => [ 'shape' => 'PermissionGroup', 'locationName' => 'group', ], 'UserId' => [ 'shape' => 'String', 'locationName' => 'userId', ], ], ], 'CreateVolumePermissionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CreateVolumePermission', 'locationName' => 'item', ], ], 'CreateVolumePermissionModifications' => [ 'type' => 'structure', 'members' => [ 'Add' => [ 'shape' => 'CreateVolumePermissionList', ], 'Remove' => [ 'shape' => 'CreateVolumePermissionList', ], ], ], 'CreateVolumeRequest' => [ 'type' => 'structure', 'required' => [ 'AvailabilityZone', ], 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'Iops' => [ 'shape' => 'Integer', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'Size' => [ 'shape' => 'Integer', ], 'SnapshotId' => [ 'shape' => 'String', ], 'VolumeType' => [ 'shape' => 'VolumeType', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateVpcEndpointConnectionNotificationRequest' => [ 'type' => 'structure', 'required' => [ 'ConnectionNotificationArn', 'ConnectionEvents', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'String', ], 'VpcEndpointId' => [ 'shape' => 'String', ], 'ConnectionNotificationArn' => [ 'shape' => 'String', ], 'ConnectionEvents' => [ 'shape' => 'ValueStringList', ], 'ClientToken' => [ 'shape' => 'String', ], ], ], 'CreateVpcEndpointConnectionNotificationResult' => [ 'type' => 'structure', 'members' => [ 'ConnectionNotification' => [ 'shape' => 'ConnectionNotification', 'locationName' => 'connectionNotification', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateVpcEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', 'ServiceName', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcEndpointType' => [ 'shape' => 'VpcEndpointType', ], 'VpcId' => [ 'shape' => 'String', ], 'ServiceName' => [ 'shape' => 'String', ], 'PolicyDocument' => [ 'shape' => 'String', ], 'RouteTableIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'RouteTableId', ], 'SubnetIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'SubnetId', ], 'SecurityGroupIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'SecurityGroupId', ], 'ClientToken' => [ 'shape' => 'String', ], 'PrivateDnsEnabled' => [ 'shape' => 'Boolean', ], ], ], 'CreateVpcEndpointResult' => [ 'type' => 'structure', 'members' => [ 'VpcEndpoint' => [ 'shape' => 'VpcEndpoint', 'locationName' => 'vpcEndpoint', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateVpcEndpointServiceConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkLoadBalancerArns', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'AcceptanceRequired' => [ 'shape' => 'Boolean', ], 'NetworkLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'NetworkLoadBalancerArn', ], 'ClientToken' => [ 'shape' => 'String', ], ], ], 'CreateVpcEndpointServiceConfigurationResult' => [ 'type' => 'structure', 'members' => [ 'ServiceConfiguration' => [ 'shape' => 'ServiceConfiguration', 'locationName' => 'serviceConfiguration', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateVpcPeeringConnectionRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'PeerOwnerId' => [ 'shape' => 'String', 'locationName' => 'peerOwnerId', ], 'PeerVpcId' => [ 'shape' => 'String', 'locationName' => 'peerVpcId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'PeerRegion' => [ 'shape' => 'String', ], ], ], 'CreateVpcPeeringConnectionResult' => [ 'type' => 'structure', 'members' => [ 'VpcPeeringConnection' => [ 'shape' => 'VpcPeeringConnection', 'locationName' => 'vpcPeeringConnection', ], ], ], 'CreateVpcRequest' => [ 'type' => 'structure', 'required' => [ 'CidrBlock', ], 'members' => [ 'CidrBlock' => [ 'shape' => 'String', ], 'AmazonProvidedIpv6CidrBlock' => [ 'shape' => 'Boolean', 'locationName' => 'amazonProvidedIpv6CidrBlock', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceTenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'instanceTenancy', ], ], ], 'CreateVpcResult' => [ 'type' => 'structure', 'members' => [ 'Vpc' => [ 'shape' => 'Vpc', 'locationName' => 'vpc', ], ], ], 'CreateVpnConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'CustomerGatewayId', 'Type', ], 'members' => [ 'CustomerGatewayId' => [ 'shape' => 'String', ], 'Type' => [ 'shape' => 'String', ], 'VpnGatewayId' => [ 'shape' => 'String', ], 'TransitGatewayId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Options' => [ 'shape' => 'VpnConnectionOptionsSpecification', 'locationName' => 'options', ], ], ], 'CreateVpnConnectionResult' => [ 'type' => 'structure', 'members' => [ 'VpnConnection' => [ 'shape' => 'VpnConnection', 'locationName' => 'vpnConnection', ], ], ], 'CreateVpnConnectionRouteRequest' => [ 'type' => 'structure', 'required' => [ 'DestinationCidrBlock', 'VpnConnectionId', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'VpnConnectionId' => [ 'shape' => 'String', ], ], ], 'CreateVpnGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', ], 'Type' => [ 'shape' => 'GatewayType', ], 'AmazonSideAsn' => [ 'shape' => 'Long', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateVpnGatewayResult' => [ 'type' => 'structure', 'members' => [ 'VpnGateway' => [ 'shape' => 'VpnGateway', 'locationName' => 'vpnGateway', ], ], ], 'CreditSpecification' => [ 'type' => 'structure', 'members' => [ 'CpuCredits' => [ 'shape' => 'String', 'locationName' => 'cpuCredits', ], ], ], 'CreditSpecificationRequest' => [ 'type' => 'structure', 'required' => [ 'CpuCredits', ], 'members' => [ 'CpuCredits' => [ 'shape' => 'String', ], ], ], 'CurrencyCodeValues' => [ 'type' => 'string', 'enum' => [ 'USD', ], ], 'CustomerGateway' => [ 'type' => 'structure', 'members' => [ 'BgpAsn' => [ 'shape' => 'String', 'locationName' => 'bgpAsn', ], 'CustomerGatewayId' => [ 'shape' => 'String', 'locationName' => 'customerGatewayId', ], 'IpAddress' => [ 'shape' => 'String', 'locationName' => 'ipAddress', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'Type' => [ 'shape' => 'String', 'locationName' => 'type', ], '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', ], 'DefaultRouteTableAssociationValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'DefaultRouteTablePropagationValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'DefaultTargetCapacityType' => [ 'type' => 'string', 'enum' => [ 'spot', 'on-demand', ], ], 'DeleteClientVpnEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteClientVpnEndpointResult' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ClientVpnEndpointStatus', 'locationName' => 'status', ], ], ], 'DeleteClientVpnRouteRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'DestinationCidrBlock', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', ], 'TargetVpcSubnetId' => [ 'shape' => 'String', ], 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteClientVpnRouteResult' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ClientVpnRouteStatus', 'locationName' => 'status', ], ], ], 'DeleteCustomerGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'CustomerGatewayId', ], 'members' => [ 'CustomerGatewayId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteDhcpOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'DhcpOptionsId', ], 'members' => [ 'DhcpOptionsId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteEgressOnlyInternetGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'EgressOnlyInternetGatewayId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'EgressOnlyInternetGatewayId' => [ 'shape' => 'EgressOnlyInternetGatewayId', ], ], ], 'DeleteEgressOnlyInternetGatewayResult' => [ 'type' => 'structure', 'members' => [ 'ReturnCode' => [ 'shape' => 'Boolean', 'locationName' => 'returnCode', ], ], ], 'DeleteFleetError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'DeleteFleetErrorCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'DeleteFleetErrorCode' => [ 'type' => 'string', 'enum' => [ 'fleetIdDoesNotExist', 'fleetIdMalformed', 'fleetNotInDeletableState', 'unexpectedError', ], ], 'DeleteFleetErrorItem' => [ 'type' => 'structure', 'members' => [ 'Error' => [ 'shape' => 'DeleteFleetError', 'locationName' => 'error', ], 'FleetId' => [ 'shape' => 'FleetIdentifier', 'locationName' => 'fleetId', ], ], ], 'DeleteFleetErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeleteFleetErrorItem', 'locationName' => 'item', ], ], 'DeleteFleetSuccessItem' => [ 'type' => 'structure', 'members' => [ 'CurrentFleetState' => [ 'shape' => 'FleetStateCode', 'locationName' => 'currentFleetState', ], 'PreviousFleetState' => [ 'shape' => 'FleetStateCode', 'locationName' => 'previousFleetState', ], 'FleetId' => [ 'shape' => 'FleetIdentifier', 'locationName' => 'fleetId', ], ], ], 'DeleteFleetSuccessSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeleteFleetSuccessItem', 'locationName' => 'item', ], ], 'DeleteFleetsRequest' => [ 'type' => 'structure', 'required' => [ 'FleetIds', 'TerminateInstances', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FleetIds' => [ 'shape' => 'FleetIdSet', 'locationName' => 'FleetId', ], 'TerminateInstances' => [ 'shape' => 'Boolean', ], ], ], 'DeleteFleetsResult' => [ 'type' => 'structure', 'members' => [ 'SuccessfulFleetDeletions' => [ 'shape' => 'DeleteFleetSuccessSet', 'locationName' => 'successfulFleetDeletionSet', ], 'UnsuccessfulFleetDeletions' => [ 'shape' => 'DeleteFleetErrorSet', 'locationName' => 'unsuccessfulFleetDeletionSet', ], ], ], 'DeleteFlowLogsRequest' => [ 'type' => 'structure', 'required' => [ 'FlowLogIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FlowLogIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'FlowLogId', ], ], ], 'DeleteFlowLogsResult' => [ 'type' => 'structure', 'members' => [ 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemSet', 'locationName' => 'unsuccessful', ], ], ], 'DeleteFpgaImageRequest' => [ 'type' => 'structure', 'required' => [ 'FpgaImageId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FpgaImageId' => [ 'shape' => 'String', ], ], ], 'DeleteFpgaImageResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DeleteInternetGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'InternetGatewayId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InternetGatewayId' => [ 'shape' => 'String', 'locationName' => 'internetGatewayId', ], ], ], 'DeleteKeyPairRequest' => [ 'type' => 'structure', 'required' => [ 'KeyName', ], 'members' => [ 'KeyName' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteLaunchTemplateRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'LaunchTemplateId' => [ 'shape' => 'String', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', ], ], ], 'DeleteLaunchTemplateResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplate' => [ 'shape' => 'LaunchTemplate', 'locationName' => 'launchTemplate', ], ], ], 'DeleteLaunchTemplateVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'Versions', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'LaunchTemplateId' => [ 'shape' => 'String', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', ], 'Versions' => [ 'shape' => 'VersionStringList', 'locationName' => 'LaunchTemplateVersion', ], ], ], 'DeleteLaunchTemplateVersionsResponseErrorItem' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'String', 'locationName' => 'launchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'String', 'locationName' => 'launchTemplateName', ], 'VersionNumber' => [ 'shape' => 'Long', 'locationName' => 'versionNumber', ], 'ResponseError' => [ 'shape' => 'ResponseError', 'locationName' => 'responseError', ], ], ], 'DeleteLaunchTemplateVersionsResponseErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeleteLaunchTemplateVersionsResponseErrorItem', 'locationName' => 'item', ], ], 'DeleteLaunchTemplateVersionsResponseSuccessItem' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'String', 'locationName' => 'launchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'String', 'locationName' => 'launchTemplateName', ], 'VersionNumber' => [ 'shape' => 'Long', 'locationName' => 'versionNumber', ], ], ], 'DeleteLaunchTemplateVersionsResponseSuccessSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeleteLaunchTemplateVersionsResponseSuccessItem', 'locationName' => 'item', ], ], 'DeleteLaunchTemplateVersionsResult' => [ 'type' => 'structure', 'members' => [ 'SuccessfullyDeletedLaunchTemplateVersions' => [ 'shape' => 'DeleteLaunchTemplateVersionsResponseSuccessSet', 'locationName' => 'successfullyDeletedLaunchTemplateVersionSet', ], 'UnsuccessfullyDeletedLaunchTemplateVersions' => [ 'shape' => 'DeleteLaunchTemplateVersionsResponseErrorSet', 'locationName' => 'unsuccessfullyDeletedLaunchTemplateVersionSet', ], ], ], 'DeleteNatGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'NatGatewayId', ], 'members' => [ 'NatGatewayId' => [ 'shape' => 'String', ], ], ], 'DeleteNatGatewayResult' => [ 'type' => 'structure', 'members' => [ 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], ], ], 'DeleteNetworkAclEntryRequest' => [ 'type' => 'structure', 'required' => [ 'Egress', 'NetworkAclId', 'RuleNumber', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Egress' => [ 'shape' => 'Boolean', 'locationName' => 'egress', ], 'NetworkAclId' => [ 'shape' => 'String', 'locationName' => 'networkAclId', ], 'RuleNumber' => [ 'shape' => 'Integer', 'locationName' => 'ruleNumber', ], ], ], 'DeleteNetworkAclRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkAclId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkAclId' => [ 'shape' => 'String', 'locationName' => 'networkAclId', ], ], ], 'DeleteNetworkInterfacePermissionRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfacePermissionId', ], 'members' => [ 'NetworkInterfacePermissionId' => [ 'shape' => 'String', ], 'Force' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteNetworkInterfacePermissionResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'DestinationIpv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationIpv6CidrBlock', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'RouteTableId' => [ 'shape' => 'String', 'locationName' => 'routeTableId', ], ], ], 'DeleteRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'RouteTableId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'RouteTableId' => [ 'shape' => 'String', 'locationName' => 'routeTableId', ], ], ], 'DeleteSecurityGroupRequest' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'String', ], 'GroupName' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'SnapshotId', ], 'members' => [ 'SnapshotId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteSpotDatafeedSubscriptionRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteSubnetRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', ], 'members' => [ 'SubnetId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteTagsRequest' => [ 'type' => 'structure', 'required' => [ 'Resources', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Resources' => [ 'shape' => 'ResourceIdList', 'locationName' => 'resourceId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tag', ], ], ], 'DeleteTransitGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayId', ], 'members' => [ 'TransitGatewayId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayResult' => [ 'type' => 'structure', 'members' => [ 'TransitGateway' => [ 'shape' => 'TransitGateway', 'locationName' => 'transitGateway', ], ], ], 'DeleteTransitGatewayRouteRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'DestinationCidrBlock', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'String', ], 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayRouteResult' => [ 'type' => 'structure', 'members' => [ 'Route' => [ 'shape' => 'TransitGatewayRoute', 'locationName' => 'route', ], ], ], 'DeleteTransitGatewayRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTable' => [ 'shape' => 'TransitGatewayRouteTable', 'locationName' => 'transitGatewayRouteTable', ], ], ], 'DeleteTransitGatewayVpcAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayVpcAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayVpcAttachment' => [ 'shape' => 'TransitGatewayVpcAttachment', 'locationName' => 'transitGatewayVpcAttachment', ], ], ], 'DeleteVolumeRequest' => [ 'type' => 'structure', 'required' => [ 'VolumeId', ], 'members' => [ 'VolumeId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteVpcEndpointConnectionNotificationsRequest' => [ 'type' => 'structure', 'required' => [ 'ConnectionNotificationIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ConnectionNotificationIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'ConnectionNotificationId', ], ], ], 'DeleteVpcEndpointConnectionNotificationsResult' => [ 'type' => 'structure', 'members' => [ 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemSet', 'locationName' => 'unsuccessful', ], ], ], 'DeleteVpcEndpointServiceConfigurationsRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'ServiceId', ], ], ], 'DeleteVpcEndpointServiceConfigurationsResult' => [ 'type' => 'structure', 'members' => [ 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemSet', 'locationName' => 'unsuccessful', ], ], ], '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' => [ 'VpcId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteVpnConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConnectionId', ], 'members' => [ 'VpnConnectionId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteVpnConnectionRouteRequest' => [ 'type' => 'structure', 'required' => [ 'DestinationCidrBlock', 'VpnConnectionId', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'VpnConnectionId' => [ 'shape' => 'String', ], ], ], 'DeleteVpnGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'VpnGatewayId', ], 'members' => [ 'VpnGatewayId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeprovisionByoipCidrRequest' => [ 'type' => 'structure', 'required' => [ 'Cidr', ], 'members' => [ 'Cidr' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeprovisionByoipCidrResult' => [ 'type' => 'structure', 'members' => [ 'ByoipCidr' => [ 'shape' => 'ByoipCidr', 'locationName' => 'byoipCidr', ], ], ], 'DeregisterImageRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeAccountAttributesRequest' => [ 'type' => 'structure', 'members' => [ 'AttributeNames' => [ 'shape' => 'AccountAttributeNameStringList', 'locationName' => 'attributeName', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeAccountAttributesResult' => [ 'type' => 'structure', 'members' => [ 'AccountAttributes' => [ 'shape' => 'AccountAttributeList', 'locationName' => 'accountAttributeSet', ], ], ], 'DescribeAddressesRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'PublicIps' => [ 'shape' => 'PublicIpStringList', 'locationName' => 'PublicIp', ], 'AllocationIds' => [ 'shape' => 'AllocationIdList', 'locationName' => 'AllocationId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeAddressesResult' => [ 'type' => 'structure', 'members' => [ 'Addresses' => [ 'shape' => 'AddressList', 'locationName' => 'addressesSet', ], ], ], 'DescribeAggregateIdFormatRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeAggregateIdFormatResult' => [ 'type' => 'structure', 'members' => [ 'UseLongIdsAggregated' => [ 'shape' => 'Boolean', 'locationName' => 'useLongIdsAggregated', ], 'Statuses' => [ 'shape' => 'IdFormatList', 'locationName' => 'statusSet', ], ], ], 'DescribeAvailabilityZonesRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'ZoneNames' => [ 'shape' => 'ZoneNameStringList', 'locationName' => 'ZoneName', ], 'ZoneIds' => [ 'shape' => 'ZoneIdStringList', 'locationName' => 'ZoneId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeAvailabilityZonesResult' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZones' => [ 'shape' => 'AvailabilityZoneList', 'locationName' => 'availabilityZoneInfo', ], ], ], 'DescribeBundleTasksRequest' => [ 'type' => 'structure', 'members' => [ 'BundleIds' => [ 'shape' => 'BundleIdStringList', 'locationName' => 'BundleId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeBundleTasksResult' => [ 'type' => 'structure', 'members' => [ 'BundleTasks' => [ 'shape' => 'BundleTaskList', 'locationName' => 'bundleInstanceTasksSet', ], ], ], 'DescribeByoipCidrsRequest' => [ 'type' => 'structure', 'required' => [ 'MaxResults', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeByoipCidrsResult' => [ 'type' => 'structure', 'members' => [ 'ByoipCidrs' => [ 'shape' => 'ByoipCidrSet', 'locationName' => 'byoipCidrSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeCapacityReservationsRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationIds' => [ 'shape' => 'CapacityReservationIdSet', 'locationName' => 'CapacityReservationId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeCapacityReservationsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'CapacityReservations' => [ 'shape' => 'CapacityReservationSet', 'locationName' => 'capacityReservationSet', ], ], ], 'DescribeClassicLinkInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeClassicLinkInstancesResult' => [ 'type' => 'structure', 'members' => [ 'Instances' => [ 'shape' => 'ClassicLinkInstanceList', 'locationName' => 'instancesSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeClientVpnAuthorizationRulesRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'DescribeClientVpnAuthorizationRulesResult' => [ 'type' => 'structure', 'members' => [ 'AuthorizationRules' => [ 'shape' => 'AuthorizationRuleSet', 'locationName' => 'authorizationRule', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeClientVpnConnectionsRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeClientVpnConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'Connections' => [ 'shape' => 'ClientVpnConnectionSet', 'locationName' => 'connections', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeClientVpnEndpointsRequest' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'ClientVpnEndpointId', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeClientVpnEndpointsResult' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpoints' => [ 'shape' => 'EndpointSet', 'locationName' => 'clientVpnEndpoint', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeClientVpnRoutesRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeClientVpnRoutesResult' => [ 'type' => 'structure', 'members' => [ 'Routes' => [ 'shape' => 'ClientVpnRouteSet', 'locationName' => 'routes', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeClientVpnTargetNetworksRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', ], 'AssociationIds' => [ 'shape' => 'ValueStringList', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeClientVpnTargetNetworksResult' => [ 'type' => 'structure', 'members' => [ 'ClientVpnTargetNetworks' => [ 'shape' => 'TargetNetworkSet', 'locationName' => 'clientVpnTargetNetworks', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeConversionTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConversionTask', 'locationName' => 'item', ], ], 'DescribeConversionTasksRequest' => [ 'type' => 'structure', 'members' => [ 'ConversionTaskIds' => [ 'shape' => 'ConversionIdStringList', 'locationName' => 'conversionTaskId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeConversionTasksResult' => [ 'type' => 'structure', 'members' => [ 'ConversionTasks' => [ 'shape' => 'DescribeConversionTaskList', 'locationName' => 'conversionTasks', ], ], ], 'DescribeCustomerGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'CustomerGatewayIds' => [ 'shape' => 'CustomerGatewayIdStringList', 'locationName' => 'CustomerGatewayId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeCustomerGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'CustomerGateways' => [ 'shape' => 'CustomerGatewayList', 'locationName' => 'customerGatewaySet', ], ], ], 'DescribeDhcpOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'DhcpOptionsIds' => [ 'shape' => 'DhcpOptionsIdStringList', 'locationName' => 'DhcpOptionsId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeDhcpOptionsResult' => [ 'type' => 'structure', 'members' => [ 'DhcpOptions' => [ 'shape' => 'DhcpOptionsList', 'locationName' => 'dhcpOptionsSet', ], ], ], 'DescribeEgressOnlyInternetGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'EgressOnlyInternetGatewayIds' => [ 'shape' => 'EgressOnlyInternetGatewayIdList', 'locationName' => 'EgressOnlyInternetGatewayId', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeEgressOnlyInternetGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'EgressOnlyInternetGateways' => [ 'shape' => 'EgressOnlyInternetGatewayList', 'locationName' => 'egressOnlyInternetGatewaySet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeElasticGpusRequest' => [ 'type' => 'structure', 'members' => [ 'ElasticGpuIds' => [ 'shape' => 'ElasticGpuIdSet', 'locationName' => 'ElasticGpuId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeElasticGpusResult' => [ 'type' => 'structure', 'members' => [ 'ElasticGpuSet' => [ 'shape' => 'ElasticGpuSet', 'locationName' => 'elasticGpuSet', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeExportTasksRequest' => [ 'type' => 'structure', 'members' => [ 'ExportTaskIds' => [ 'shape' => 'ExportTaskIdStringList', 'locationName' => 'exportTaskId', ], ], ], 'DescribeExportTasksResult' => [ 'type' => 'structure', 'members' => [ 'ExportTasks' => [ 'shape' => 'ExportTaskList', 'locationName' => 'exportTaskSet', ], ], ], 'DescribeFleetError' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateAndOverrides' => [ 'shape' => 'LaunchTemplateAndOverridesResponse', 'locationName' => 'launchTemplateAndOverrides', ], 'Lifecycle' => [ 'shape' => 'InstanceLifecycle', 'locationName' => 'lifecycle', ], 'ErrorCode' => [ 'shape' => 'String', 'locationName' => 'errorCode', ], 'ErrorMessage' => [ 'shape' => 'String', 'locationName' => 'errorMessage', ], ], ], 'DescribeFleetHistoryRequest' => [ 'type' => 'structure', 'required' => [ 'FleetId', 'StartTime', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'EventType' => [ 'shape' => 'FleetEventType', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'FleetId' => [ 'shape' => 'FleetIdentifier', ], 'StartTime' => [ 'shape' => 'DateTime', ], ], ], 'DescribeFleetHistoryResult' => [ 'type' => 'structure', 'members' => [ 'HistoryRecords' => [ 'shape' => 'HistoryRecordSet', 'locationName' => 'historyRecordSet', ], 'LastEvaluatedTime' => [ 'shape' => 'DateTime', 'locationName' => 'lastEvaluatedTime', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'FleetId' => [ 'shape' => 'FleetIdentifier', 'locationName' => 'fleetId', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], ], ], 'DescribeFleetInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'FleetId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'FleetId' => [ 'shape' => 'FleetIdentifier', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeFleetInstancesResult' => [ 'type' => 'structure', 'members' => [ 'ActiveInstances' => [ 'shape' => 'ActiveInstanceSet', 'locationName' => 'activeInstanceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'FleetId' => [ 'shape' => 'FleetIdentifier', 'locationName' => 'fleetId', ], ], ], 'DescribeFleetsErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DescribeFleetError', 'locationName' => 'item', ], ], 'DescribeFleetsInstances' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateAndOverrides' => [ 'shape' => 'LaunchTemplateAndOverridesResponse', 'locationName' => 'launchTemplateAndOverrides', ], 'Lifecycle' => [ 'shape' => 'InstanceLifecycle', 'locationName' => 'lifecycle', ], 'InstanceIds' => [ 'shape' => 'InstanceIdsSet', 'locationName' => 'instanceIds', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'Platform' => [ 'shape' => 'PlatformValues', 'locationName' => 'platform', ], ], ], 'DescribeFleetsInstancesSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DescribeFleetsInstances', 'locationName' => 'item', ], ], 'DescribeFleetsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'FleetIds' => [ 'shape' => 'FleetIdSet', 'locationName' => 'FleetId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeFleetsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Fleets' => [ 'shape' => 'FleetSet', 'locationName' => 'fleetSet', ], ], ], 'DescribeFlowLogsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filter' => [ 'shape' => 'FilterList', ], 'FlowLogIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'FlowLogId', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeFlowLogsResult' => [ 'type' => 'structure', 'members' => [ 'FlowLogs' => [ 'shape' => 'FlowLogSet', 'locationName' => 'flowLogSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeFpgaImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'FpgaImageId', 'Attribute', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FpgaImageId' => [ 'shape' => 'String', ], 'Attribute' => [ 'shape' => 'FpgaImageAttributeName', ], ], ], 'DescribeFpgaImageAttributeResult' => [ 'type' => 'structure', 'members' => [ 'FpgaImageAttribute' => [ 'shape' => 'FpgaImageAttribute', 'locationName' => 'fpgaImageAttribute', ], ], ], 'DescribeFpgaImagesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FpgaImageIds' => [ 'shape' => 'FpgaImageIdList', 'locationName' => 'FpgaImageId', ], 'Owners' => [ 'shape' => 'OwnerStringList', 'locationName' => 'Owner', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'DescribeFpgaImagesResult' => [ 'type' => 'structure', 'members' => [ 'FpgaImages' => [ 'shape' => 'FpgaImageList', 'locationName' => 'fpgaImageSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeHostReservationOfferingsRequest' => [ 'type' => 'structure', 'members' => [ 'Filter' => [ 'shape' => 'FilterList', ], 'MaxDuration' => [ 'shape' => 'Integer', ], 'MaxResults' => [ 'shape' => 'DescribeHostReservationsMaxResults', ], 'MinDuration' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'OfferingId' => [ 'shape' => 'String', ], ], ], 'DescribeHostReservationOfferingsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'OfferingSet' => [ 'shape' => 'HostOfferingSet', 'locationName' => 'offeringSet', ], ], ], 'DescribeHostReservationsMaxResults' => [ 'type' => 'integer', 'max' => 500, 'min' => 5, ], 'DescribeHostReservationsRequest' => [ 'type' => 'structure', 'members' => [ 'Filter' => [ 'shape' => 'FilterList', ], 'HostReservationIdSet' => [ 'shape' => 'HostReservationIdSet', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeHostReservationsResult' => [ 'type' => 'structure', 'members' => [ 'HostReservationSet' => [ 'shape' => 'HostReservationSet', 'locationName' => 'hostReservationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeHostsRequest' => [ 'type' => 'structure', 'members' => [ 'Filter' => [ 'shape' => 'FilterList', 'locationName' => 'filter', ], 'HostIds' => [ 'shape' => 'RequestHostIdList', 'locationName' => 'hostId', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeHostsResult' => [ 'type' => 'structure', 'members' => [ 'Hosts' => [ 'shape' => 'HostList', 'locationName' => 'hostSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeIamInstanceProfileAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'AssociationIds' => [ 'shape' => 'AssociationIdList', 'locationName' => 'AssociationId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeIamInstanceProfileAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'IamInstanceProfileAssociations' => [ 'shape' => 'IamInstanceProfileAssociationSet', 'locationName' => 'iamInstanceProfileAssociationSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeIdFormatRequest' => [ 'type' => 'structure', 'members' => [ 'Resource' => [ 'shape' => 'String', ], ], ], 'DescribeIdFormatResult' => [ 'type' => 'structure', 'members' => [ 'Statuses' => [ 'shape' => 'IdFormatList', 'locationName' => 'statusSet', ], ], ], 'DescribeIdentityIdFormatRequest' => [ 'type' => 'structure', 'required' => [ 'PrincipalArn', ], 'members' => [ 'PrincipalArn' => [ 'shape' => 'String', 'locationName' => 'principalArn', ], 'Resource' => [ 'shape' => 'String', 'locationName' => 'resource', ], ], ], 'DescribeIdentityIdFormatResult' => [ 'type' => 'structure', 'members' => [ 'Statuses' => [ 'shape' => 'IdFormatList', 'locationName' => 'statusSet', ], ], ], 'DescribeImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'ImageId', ], 'members' => [ 'Attribute' => [ 'shape' => 'ImageAttributeName', ], 'ImageId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeImagesRequest' => [ 'type' => 'structure', 'members' => [ 'ExecutableUsers' => [ 'shape' => 'ExecutableByStringList', 'locationName' => 'ExecutableBy', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'ImageIds' => [ 'shape' => 'ImageIdStringList', 'locationName' => 'ImageId', ], 'Owners' => [ 'shape' => 'OwnerStringList', 'locationName' => 'Owner', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeImagesResult' => [ 'type' => 'structure', 'members' => [ 'Images' => [ 'shape' => 'ImageList', 'locationName' => 'imagesSet', ], ], ], 'DescribeImportImageTasksRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', ], 'ImportTaskIds' => [ 'shape' => 'ImportTaskIdList', 'locationName' => 'ImportTaskId', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeImportImageTasksResult' => [ 'type' => 'structure', 'members' => [ 'ImportImageTasks' => [ 'shape' => 'ImportImageTaskList', 'locationName' => 'importImageTaskSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeImportSnapshotTasksRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', ], 'ImportTaskIds' => [ 'shape' => 'ImportTaskIdList', 'locationName' => 'ImportTaskId', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeImportSnapshotTasksResult' => [ 'type' => 'structure', 'members' => [ 'ImportSnapshotTasks' => [ 'shape' => 'ImportSnapshotTaskList', 'locationName' => 'importSnapshotTaskSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'InstanceId', ], 'members' => [ 'Attribute' => [ 'shape' => 'InstanceAttributeName', 'locationName' => 'attribute', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], ], ], 'DescribeInstanceCreditSpecificationsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeInstanceCreditSpecificationsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'MaxResults' => [ 'shape' => 'DescribeInstanceCreditSpecificationsMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeInstanceCreditSpecificationsResult' => [ 'type' => 'structure', 'members' => [ 'InstanceCreditSpecifications' => [ 'shape' => 'InstanceCreditSpecificationList', 'locationName' => 'instanceCreditSpecificationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceStatusRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'IncludeAllInstances' => [ 'shape' => 'Boolean', 'locationName' => 'includeAllInstances', ], ], ], 'DescribeInstanceStatusResult' => [ 'type' => 'structure', 'members' => [ 'InstanceStatuses' => [ 'shape' => 'InstanceStatusList', 'locationName' => 'instanceStatusSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeInstancesResult' => [ 'type' => 'structure', 'members' => [ 'Reservations' => [ 'shape' => 'ReservationList', 'locationName' => 'reservationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeInternetGatewaysMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeInternetGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InternetGatewayIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'internetGatewayId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeInternetGatewaysMaxResults', ], ], ], 'DescribeInternetGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'InternetGateways' => [ 'shape' => 'InternetGatewayList', 'locationName' => 'internetGatewaySet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeKeyPairsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'KeyNames' => [ 'shape' => 'KeyNameStringList', 'locationName' => 'KeyName', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeKeyPairsResult' => [ 'type' => 'structure', 'members' => [ 'KeyPairs' => [ 'shape' => 'KeyPairList', 'locationName' => 'keySet', ], ], ], 'DescribeLaunchTemplateVersionsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'LaunchTemplateId' => [ 'shape' => 'String', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', ], 'Versions' => [ 'shape' => 'VersionStringList', 'locationName' => 'LaunchTemplateVersion', ], 'MinVersion' => [ 'shape' => 'String', ], 'MaxVersion' => [ 'shape' => 'String', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeLaunchTemplateVersionsResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateVersions' => [ 'shape' => 'LaunchTemplateVersionSet', 'locationName' => 'launchTemplateVersionSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeLaunchTemplatesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'LaunchTemplateIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'LaunchTemplateId', ], 'LaunchTemplateNames' => [ 'shape' => 'LaunchTemplateNameStringList', 'locationName' => 'LaunchTemplateName', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], ], ], 'DescribeLaunchTemplatesResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplates' => [ 'shape' => 'LaunchTemplateSet', 'locationName' => 'launchTemplates', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeMovingAddressesRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'filter', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'PublicIps' => [ 'shape' => 'ValueStringList', 'locationName' => 'publicIp', ], ], ], 'DescribeMovingAddressesResult' => [ 'type' => 'structure', 'members' => [ 'MovingAddressStatuses' => [ 'shape' => 'MovingAddressStatusSet', 'locationName' => 'movingAddressStatusSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeNatGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'Filter' => [ 'shape' => 'FilterList', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NatGatewayIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'NatGatewayId', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeNatGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'NatGateways' => [ 'shape' => 'NatGatewayList', 'locationName' => 'natGatewaySet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeNetworkAclsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeNetworkAclsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkAclIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'NetworkAclId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeNetworkAclsMaxResults', ], ], ], 'DescribeNetworkAclsResult' => [ 'type' => 'structure', 'members' => [ 'NetworkAcls' => [ 'shape' => 'NetworkAclList', 'locationName' => 'networkAclSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeNetworkInterfaceAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', ], 'members' => [ 'Attribute' => [ 'shape' => 'NetworkInterfaceAttribute', 'locationName' => 'attribute', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], ], ], 'DescribeNetworkInterfaceAttributeResult' => [ 'type' => 'structure', 'members' => [ 'Attachment' => [ 'shape' => 'NetworkInterfaceAttachment', 'locationName' => 'attachment', ], 'Description' => [ 'shape' => 'AttributeValue', 'locationName' => 'description', ], 'Groups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'SourceDestCheck' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'sourceDestCheck', ], ], ], 'DescribeNetworkInterfacePermissionsRequest' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfacePermissionIds' => [ 'shape' => 'NetworkInterfacePermissionIdList', 'locationName' => 'NetworkInterfacePermissionId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], ], ], 'DescribeNetworkInterfacePermissionsResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfacePermissions' => [ 'shape' => 'NetworkInterfacePermissionList', 'locationName' => 'networkInterfacePermissions', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeNetworkInterfacesRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'filter', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkInterfaceIds' => [ 'shape' => 'NetworkInterfaceIdList', 'locationName' => 'NetworkInterfaceId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], ], ], 'DescribeNetworkInterfacesResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfaces' => [ 'shape' => 'NetworkInterfaceList', 'locationName' => 'networkInterfaceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribePlacementGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'GroupNames' => [ 'shape' => 'PlacementGroupStringList', 'locationName' => 'groupName', ], ], ], 'DescribePlacementGroupsResult' => [ 'type' => 'structure', 'members' => [ 'PlacementGroups' => [ 'shape' => 'PlacementGroupList', 'locationName' => 'placementGroupSet', ], ], ], 'DescribePrefixListsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'PrefixListIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'PrefixListId', ], ], ], 'DescribePrefixListsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'PrefixLists' => [ 'shape' => 'PrefixListSet', 'locationName' => 'prefixListSet', ], ], ], 'DescribePrincipalIdFormatRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Resources' => [ 'shape' => 'ResourceList', 'locationName' => 'Resource', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribePrincipalIdFormatResult' => [ 'type' => 'structure', 'members' => [ 'Principals' => [ 'shape' => 'PrincipalIdFormatList', 'locationName' => 'principalSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribePublicIpv4PoolsRequest' => [ 'type' => 'structure', 'members' => [ 'PoolIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'PoolId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'PoolMaxResults', ], ], ], 'DescribePublicIpv4PoolsResult' => [ 'type' => 'structure', 'members' => [ 'PublicIpv4Pools' => [ 'shape' => 'PublicIpv4PoolSet', 'locationName' => 'publicIpv4PoolSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeRegionsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'RegionNames' => [ 'shape' => 'RegionNameStringList', 'locationName' => 'RegionName', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeRegionsResult' => [ 'type' => 'structure', 'members' => [ 'Regions' => [ 'shape' => 'RegionList', 'locationName' => 'regionInfo', ], ], ], 'DescribeReservedInstancesListingsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'ReservedInstancesId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesId', ], 'ReservedInstancesListingId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesListingId', ], ], ], 'DescribeReservedInstancesListingsResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesListings' => [ 'shape' => 'ReservedInstancesListingList', 'locationName' => 'reservedInstancesListingsSet', ], ], ], 'DescribeReservedInstancesModificationsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'ReservedInstancesModificationIds' => [ 'shape' => 'ReservedInstancesModificationIdStringList', 'locationName' => 'ReservedInstancesModificationId', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeReservedInstancesModificationsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ReservedInstancesModifications' => [ 'shape' => 'ReservedInstancesModificationList', 'locationName' => 'reservedInstancesModificationsSet', ], ], ], 'DescribeReservedInstancesOfferingsRequest' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'IncludeMarketplace' => [ 'shape' => 'Boolean', ], 'InstanceType' => [ 'shape' => 'InstanceType', ], 'MaxDuration' => [ 'shape' => 'Long', ], 'MaxInstanceCount' => [ 'shape' => 'Integer', ], 'MinDuration' => [ 'shape' => 'Long', ], 'OfferingClass' => [ 'shape' => 'OfferingClassType', ], 'ProductDescription' => [ 'shape' => 'RIProductDescription', ], 'ReservedInstancesOfferingIds' => [ 'shape' => 'ReservedInstancesOfferingIdStringList', 'locationName' => 'ReservedInstancesOfferingId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceTenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'instanceTenancy', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'OfferingType' => [ 'shape' => 'OfferingTypeValues', 'locationName' => 'offeringType', ], ], ], 'DescribeReservedInstancesOfferingsResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesOfferings' => [ 'shape' => 'ReservedInstancesOfferingList', 'locationName' => 'reservedInstancesOfferingsSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeReservedInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'OfferingClass' => [ 'shape' => 'OfferingClassType', ], 'ReservedInstancesIds' => [ 'shape' => 'ReservedInstancesIdStringList', 'locationName' => 'ReservedInstancesId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'OfferingType' => [ 'shape' => 'OfferingTypeValues', 'locationName' => 'offeringType', ], ], ], 'DescribeReservedInstancesResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstances' => [ 'shape' => 'ReservedInstancesList', 'locationName' => 'reservedInstancesSet', ], ], ], 'DescribeRouteTablesRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'RouteTableIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'RouteTableId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], ], ], 'DescribeRouteTablesResult' => [ 'type' => 'structure', 'members' => [ 'RouteTables' => [ 'shape' => 'RouteTableList', 'locationName' => 'routeTableSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeScheduledInstanceAvailabilityRequest' => [ 'type' => 'structure', 'required' => [ 'FirstSlotStartTimeRange', 'Recurrence', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'FirstSlotStartTimeRange' => [ 'shape' => 'SlotDateTimeRangeRequest', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'MaxSlotDurationInHours' => [ 'shape' => 'Integer', ], 'MinSlotDurationInHours' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'Recurrence' => [ 'shape' => 'ScheduledInstanceRecurrenceRequest', ], ], ], 'DescribeScheduledInstanceAvailabilityResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ScheduledInstanceAvailabilitySet' => [ 'shape' => 'ScheduledInstanceAvailabilitySet', 'locationName' => 'scheduledInstanceAvailabilitySet', ], ], ], 'DescribeScheduledInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'ScheduledInstanceIds' => [ 'shape' => 'ScheduledInstanceIdRequestSet', 'locationName' => 'ScheduledInstanceId', ], 'SlotStartTimeRange' => [ 'shape' => 'SlotStartTimeRangeRequest', ], ], ], 'DescribeScheduledInstancesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ScheduledInstanceSet' => [ 'shape' => 'ScheduledInstanceSet', 'locationName' => 'scheduledInstanceSet', ], ], ], 'DescribeSecurityGroupReferencesRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'GroupId' => [ 'shape' => 'GroupIds', ], ], ], 'DescribeSecurityGroupReferencesResult' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupReferenceSet' => [ 'shape' => 'SecurityGroupReferences', 'locationName' => 'securityGroupReferenceSet', ], ], ], 'DescribeSecurityGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'GroupIds' => [ 'shape' => 'GroupIdStringList', 'locationName' => 'GroupId', ], 'GroupNames' => [ 'shape' => 'GroupNameStringList', 'locationName' => 'GroupName', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], ], ], 'DescribeSecurityGroupsResult' => [ 'type' => 'structure', 'members' => [ 'SecurityGroups' => [ 'shape' => 'SecurityGroupList', 'locationName' => 'securityGroupInfo', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSnapshotAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'SnapshotId', ], 'members' => [ 'Attribute' => [ 'shape' => 'SnapshotAttributeName', ], 'SnapshotId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeSnapshotAttributeResult' => [ 'type' => 'structure', 'members' => [ 'CreateVolumePermissions' => [ 'shape' => 'CreateVolumePermissionList', 'locationName' => 'createVolumePermission', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], ], ], 'DescribeSnapshotsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'OwnerIds' => [ 'shape' => 'OwnerStringList', 'locationName' => 'Owner', ], 'RestorableByUserIds' => [ 'shape' => 'RestorableByStringList', 'locationName' => 'RestorableBy', ], 'SnapshotIds' => [ 'shape' => 'SnapshotIdStringList', 'locationName' => 'SnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], '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', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], ], ], 'DescribeSpotFleetInstancesResponse' => [ 'type' => 'structure', 'members' => [ 'ActiveInstances' => [ 'shape' => 'ActiveInstanceSet', 'locationName' => 'activeInstanceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], ], ], 'DescribeSpotFleetRequestHistoryRequest' => [ 'type' => 'structure', 'required' => [ 'SpotFleetRequestId', 'StartTime', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'EventType' => [ 'shape' => 'EventType', 'locationName' => 'eventType', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], ], ], 'DescribeSpotFleetRequestHistoryResponse' => [ 'type' => 'structure', 'members' => [ 'HistoryRecords' => [ 'shape' => 'HistoryRecords', 'locationName' => 'historyRecordSet', ], 'LastEvaluatedTime' => [ 'shape' => 'DateTime', 'locationName' => 'lastEvaluatedTime', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], ], ], 'DescribeSpotFleetRequestsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'SpotFleetRequestIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'spotFleetRequestId', ], ], ], 'DescribeSpotFleetRequestsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'SpotFleetRequestConfigs' => [ 'shape' => 'SpotFleetRequestConfigSet', 'locationName' => 'spotFleetRequestConfigSet', ], ], ], 'DescribeSpotInstanceRequestsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'SpotInstanceRequestIds' => [ 'shape' => 'SpotInstanceRequestIdList', 'locationName' => 'SpotInstanceRequestId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], ], ], 'DescribeSpotInstanceRequestsResult' => [ 'type' => 'structure', 'members' => [ 'SpotInstanceRequests' => [ 'shape' => 'SpotInstanceRequestList', 'locationName' => 'spotInstanceRequestSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSpotPriceHistoryRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'EndTime' => [ 'shape' => 'DateTime', 'locationName' => 'endTime', ], 'InstanceTypes' => [ 'shape' => 'InstanceTypeList', 'locationName' => 'InstanceType', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ProductDescriptions' => [ 'shape' => 'ProductDescriptionList', 'locationName' => 'ProductDescription', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], ], ], 'DescribeSpotPriceHistoryResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'SpotPriceHistory' => [ 'shape' => 'SpotPriceHistoryList', 'locationName' => 'spotPriceHistorySet', ], ], ], 'DescribeStaleSecurityGroupsRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'VpcId' => [ 'shape' => 'String', ], ], ], 'DescribeStaleSecurityGroupsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'StaleSecurityGroupSet' => [ 'shape' => 'StaleSecurityGroupSet', 'locationName' => 'staleSecurityGroupSet', ], ], ], 'DescribeSubnetsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'SubnetIds' => [ 'shape' => 'SubnetIdStringList', 'locationName' => 'SubnetId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], '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' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Tags' => [ 'shape' => 'TagDescriptionList', 'locationName' => 'tagSet', ], ], ], 'DescribeTransitGatewayAttachmentsRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentIds' => [ 'shape' => 'TransitGatewayAttachmentIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayAttachmentsResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachments' => [ 'shape' => 'TransitGatewayAttachmentList', 'locationName' => 'transitGatewayAttachments', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayRouteTablesRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableIds' => [ 'shape' => 'TransitGatewayRouteTableIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayRouteTablesResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTables' => [ 'shape' => 'TransitGatewayRouteTableList', 'locationName' => 'transitGatewayRouteTables', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayVpcAttachmentsRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentIds' => [ 'shape' => 'TransitGatewayAttachmentIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayVpcAttachmentsResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayVpcAttachments' => [ 'shape' => 'TransitGatewayVpcAttachmentList', 'locationName' => 'transitGatewayVpcAttachments', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayIds' => [ 'shape' => 'TransitGatewayIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'TransitGateways' => [ 'shape' => 'TransitGatewayList', 'locationName' => 'transitGatewaySet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVolumeAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'VolumeId', ], 'members' => [ 'Attribute' => [ 'shape' => 'VolumeAttributeName', ], 'VolumeId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeVolumeAttributeResult' => [ 'type' => 'structure', 'members' => [ 'AutoEnableIO' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'autoEnableIO', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], ], ], 'DescribeVolumeStatusRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'VolumeIds' => [ 'shape' => 'VolumeIdStringList', 'locationName' => 'VolumeId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeVolumeStatusResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'VolumeStatuses' => [ 'shape' => 'VolumeStatusList', 'locationName' => 'volumeStatusSet', ], ], ], 'DescribeVolumesModificationsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VolumeIds' => [ 'shape' => 'VolumeIdStringList', 'locationName' => 'VolumeId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], ], ], 'DescribeVolumesModificationsResult' => [ 'type' => 'structure', 'members' => [ 'VolumesModifications' => [ 'shape' => 'VolumeModificationList', 'locationName' => 'volumeModificationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVolumesRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'VolumeIds' => [ 'shape' => 'VolumeIdStringList', 'locationName' => 'VolumeId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVolumesResult' => [ 'type' => 'structure', 'members' => [ 'Volumes' => [ 'shape' => 'VolumeList', 'locationName' => 'volumeSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'VpcId', ], 'members' => [ 'Attribute' => [ 'shape' => 'VpcAttributeName', ], 'VpcId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeVpcAttributeResult' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'EnableDnsHostnames' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'enableDnsHostnames', ], 'EnableDnsSupport' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'enableDnsSupport', ], ], ], 'DescribeVpcClassicLinkDnsSupportRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'VpcIds' => [ 'shape' => 'VpcClassicLinkIdList', ], ], ], 'DescribeVpcClassicLinkDnsSupportResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'Vpcs' => [ 'shape' => 'ClassicLinkDnsSupportList', 'locationName' => 'vpcs', ], ], ], 'DescribeVpcClassicLinkRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcIds' => [ 'shape' => 'VpcClassicLinkIdList', 'locationName' => 'VpcId', ], ], ], 'DescribeVpcClassicLinkResult' => [ 'type' => 'structure', 'members' => [ 'Vpcs' => [ 'shape' => 'VpcClassicLinkList', 'locationName' => 'vpcSet', ], ], ], 'DescribeVpcEndpointConnectionNotificationsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ConnectionNotificationId' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeVpcEndpointConnectionNotificationsResult' => [ 'type' => 'structure', 'members' => [ 'ConnectionNotificationSet' => [ 'shape' => 'ConnectionNotificationSet', 'locationName' => 'connectionNotificationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcEndpointConnectionsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeVpcEndpointConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'VpcEndpointConnections' => [ 'shape' => 'VpcEndpointConnectionSet', 'locationName' => 'vpcEndpointConnectionSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcEndpointServiceConfigurationsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'ServiceId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeVpcEndpointServiceConfigurationsResult' => [ 'type' => 'structure', 'members' => [ 'ServiceConfigurations' => [ 'shape' => 'ServiceConfigurationSet', 'locationName' => 'serviceConfigurationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcEndpointServicePermissionsRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeVpcEndpointServicePermissionsResult' => [ 'type' => 'structure', 'members' => [ 'AllowedPrincipals' => [ 'shape' => 'AllowedPrincipalSet', 'locationName' => 'allowedPrincipals', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcEndpointServicesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceNames' => [ 'shape' => 'ValueStringList', 'locationName' => 'ServiceName', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeVpcEndpointServicesResult' => [ 'type' => 'structure', 'members' => [ 'ServiceNames' => [ 'shape' => 'ValueStringList', 'locationName' => 'serviceNameSet', ], 'ServiceDetails' => [ 'shape' => 'ServiceDetailSet', 'locationName' => 'serviceDetailSet', ], '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', ], ], ], 'DescribeVpcPeeringConnectionsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeVpcPeeringConnectionsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcPeeringConnectionIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'VpcPeeringConnectionId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeVpcPeeringConnectionsMaxResults', ], ], ], 'DescribeVpcPeeringConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'VpcPeeringConnections' => [ 'shape' => 'VpcPeeringConnectionList', 'locationName' => 'vpcPeeringConnectionSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeVpcsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'VpcIds' => [ 'shape' => 'VpcIdStringList', 'locationName' => 'VpcId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeVpcsMaxResults', ], ], ], 'DescribeVpcsResult' => [ 'type' => 'structure', 'members' => [ 'Vpcs' => [ 'shape' => 'VpcList', 'locationName' => 'vpcSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpnConnectionsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'VpnConnectionIds' => [ 'shape' => 'VpnConnectionIdStringList', 'locationName' => 'VpnConnectionId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeVpnConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'VpnConnections' => [ 'shape' => 'VpnConnectionList', 'locationName' => 'vpnConnectionSet', ], ], ], 'DescribeVpnGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'VpnGatewayIds' => [ 'shape' => 'VpnGatewayIdStringList', 'locationName' => 'VpnGatewayId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], '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' => [ 'AttachmentId' => [ 'shape' => 'String', 'locationName' => 'attachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Force' => [ 'shape' => 'Boolean', 'locationName' => 'force', ], ], ], 'DetachVolumeRequest' => [ 'type' => 'structure', 'required' => [ 'VolumeId', ], 'members' => [ 'Device' => [ 'shape' => 'String', ], 'Force' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'String', ], 'VolumeId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DetachVpnGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', 'VpnGatewayId', ], 'members' => [ 'VpcId' => [ 'shape' => 'String', ], 'VpnGatewayId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], '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', ], ], 'DhcpConfigurationValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeValue', 'locationName' => 'item', ], ], 'DhcpOptions' => [ 'type' => 'structure', 'members' => [ 'DhcpConfigurations' => [ 'shape' => 'DhcpConfigurationList', 'locationName' => 'dhcpConfigurationSet', ], 'DhcpOptionsId' => [ 'shape' => 'String', 'locationName' => 'dhcpOptionsId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'DhcpOptionsIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'DhcpOptionsId', ], ], 'DhcpOptionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DhcpOptions', 'locationName' => 'item', ], ], 'DirectoryServiceAuthentication' => [ 'type' => 'structure', 'members' => [ 'DirectoryId' => [ 'shape' => 'String', 'locationName' => 'directoryId', ], ], ], 'DirectoryServiceAuthenticationRequest' => [ 'type' => 'structure', 'members' => [ 'DirectoryId' => [ 'shape' => 'String', ], ], ], 'DisableTransitGatewayRouteTablePropagationRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'String', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableTransitGatewayRouteTablePropagationResult' => [ 'type' => 'structure', 'members' => [ 'Propagation' => [ 'shape' => 'TransitGatewayPropagation', 'locationName' => 'propagation', ], ], ], 'DisableVgwRoutePropagationRequest' => [ 'type' => 'structure', 'required' => [ 'GatewayId', 'RouteTableId', ], 'members' => [ 'GatewayId' => [ 'shape' => 'String', ], 'RouteTableId' => [ 'shape' => 'String', ], ], ], 'DisableVpcClassicLinkDnsSupportRequest' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'String', ], ], ], 'DisableVpcClassicLinkDnsSupportResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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' => [ 'AssociationId' => [ 'shape' => 'String', ], 'PublicIp' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DisassociateClientVpnTargetNetworkRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'AssociationId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', ], 'AssociationId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisassociateClientVpnTargetNetworkResult' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'Status' => [ 'shape' => 'AssociationStatus', 'locationName' => 'status', ], ], ], 'DisassociateIamInstanceProfileRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', ], 'members' => [ 'AssociationId' => [ 'shape' => 'String', ], ], ], 'DisassociateIamInstanceProfileResult' => [ 'type' => 'structure', 'members' => [ 'IamInstanceProfileAssociation' => [ 'shape' => 'IamInstanceProfileAssociation', 'locationName' => 'iamInstanceProfileAssociation', ], ], ], 'DisassociateRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', ], 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DisassociateSubnetCidrBlockRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', ], 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], ], ], 'DisassociateSubnetCidrBlockResult' => [ 'type' => 'structure', 'members' => [ 'Ipv6CidrBlockAssociation' => [ 'shape' => 'SubnetIpv6CidrBlockAssociation', 'locationName' => 'ipv6CidrBlockAssociation', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], ], ], 'DisassociateTransitGatewayRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'String', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisassociateTransitGatewayRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'TransitGatewayAssociation', 'locationName' => 'association', ], ], ], 'DisassociateVpcCidrBlockRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', ], 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], ], ], 'DisassociateVpcCidrBlockResult' => [ 'type' => 'structure', 'members' => [ 'Ipv6CidrBlockAssociation' => [ 'shape' => 'VpcIpv6CidrBlockAssociation', 'locationName' => 'ipv6CidrBlockAssociation', ], 'CidrBlockAssociation' => [ 'shape' => 'VpcCidrBlockAssociation', 'locationName' => 'cidrBlockAssociation', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'DiskImage' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', ], 'Image' => [ 'shape' => 'DiskImageDetail', ], 'Volume' => [ 'shape' => 'VolumeDetail', ], ], ], 'DiskImageDescription' => [ 'type' => 'structure', 'members' => [ 'Checksum' => [ 'shape' => 'String', 'locationName' => 'checksum', ], 'Format' => [ 'shape' => 'DiskImageFormat', 'locationName' => 'format', ], 'ImportManifestUrl' => [ 'shape' => 'String', 'locationName' => 'importManifestUrl', ], 'Size' => [ 'shape' => 'Long', 'locationName' => 'size', ], ], ], 'DiskImageDetail' => [ 'type' => 'structure', 'required' => [ 'Bytes', 'Format', 'ImportManifestUrl', ], 'members' => [ 'Bytes' => [ 'shape' => 'Long', 'locationName' => 'bytes', ], 'Format' => [ 'shape' => 'DiskImageFormat', 'locationName' => 'format', ], 'ImportManifestUrl' => [ 'shape' => 'String', 'locationName' => 'importManifestUrl', ], ], ], 'DiskImageFormat' => [ 'type' => 'string', 'enum' => [ 'VMDK', 'RAW', 'VHD', ], ], 'DiskImageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DiskImage', ], ], 'DiskImageVolumeDescription' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'String', 'locationName' => 'id', ], 'Size' => [ 'shape' => 'Long', 'locationName' => 'size', ], ], ], 'DnsEntry' => [ 'type' => 'structure', 'members' => [ 'DnsName' => [ 'shape' => 'String', 'locationName' => 'dnsName', ], 'HostedZoneId' => [ 'shape' => 'String', 'locationName' => 'hostedZoneId', ], ], ], 'DnsEntrySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DnsEntry', 'locationName' => 'item', ], ], 'DnsServersOptionsModifyStructure' => [ 'type' => 'structure', 'members' => [ 'CustomDnsServers' => [ 'shape' => 'ValueStringList', ], 'Enabled' => [ 'shape' => 'Boolean', ], ], ], 'DnsSupportValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'DomainType' => [ 'type' => 'string', 'enum' => [ 'vpc', 'standard', ], ], 'Double' => [ 'type' => 'double', ], 'EbsBlockDevice' => [ 'type' => 'structure', 'members' => [ 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'Iops' => [ 'shape' => 'Integer', 'locationName' => 'iops', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'VolumeSize' => [ 'shape' => 'Integer', 'locationName' => 'volumeSize', ], 'VolumeType' => [ 'shape' => 'VolumeType', 'locationName' => 'volumeType', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'KmsKeyId' => [ 'shape' => 'String', ], ], ], 'EbsInstanceBlockDevice' => [ 'type' => 'structure', 'members' => [ 'AttachTime' => [ 'shape' => 'DateTime', 'locationName' => 'attachTime', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'Status' => [ 'shape' => 'AttachmentStatus', 'locationName' => 'status', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], ], ], 'EbsInstanceBlockDeviceSpecification' => [ 'type' => 'structure', 'members' => [ 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], ], ], 'EgressOnlyInternetGateway' => [ 'type' => 'structure', 'members' => [ 'Attachments' => [ 'shape' => 'InternetGatewayAttachmentList', 'locationName' => 'attachmentSet', ], 'EgressOnlyInternetGatewayId' => [ 'shape' => 'EgressOnlyInternetGatewayId', 'locationName' => 'egressOnlyInternetGatewayId', ], ], ], 'EgressOnlyInternetGatewayId' => [ 'type' => 'string', ], 'EgressOnlyInternetGatewayIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EgressOnlyInternetGatewayId', 'locationName' => 'item', ], ], 'EgressOnlyInternetGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EgressOnlyInternetGateway', 'locationName' => 'item', ], ], 'ElasticGpuAssociation' => [ 'type' => 'structure', 'members' => [ 'ElasticGpuId' => [ 'shape' => 'String', 'locationName' => 'elasticGpuId', ], 'ElasticGpuAssociationId' => [ 'shape' => 'String', 'locationName' => 'elasticGpuAssociationId', ], 'ElasticGpuAssociationState' => [ 'shape' => 'String', 'locationName' => 'elasticGpuAssociationState', ], 'ElasticGpuAssociationTime' => [ 'shape' => 'String', 'locationName' => 'elasticGpuAssociationTime', ], ], ], 'ElasticGpuAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticGpuAssociation', 'locationName' => 'item', ], ], 'ElasticGpuHealth' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ElasticGpuStatus', 'locationName' => 'status', ], ], ], 'ElasticGpuIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'ElasticGpuSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticGpus', 'locationName' => 'item', ], ], 'ElasticGpuSpecification' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'String', ], ], ], 'ElasticGpuSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticGpuSpecification', 'locationName' => 'ElasticGpuSpecification', ], ], 'ElasticGpuSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', 'locationName' => 'type', ], ], ], 'ElasticGpuSpecificationResponseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticGpuSpecificationResponse', 'locationName' => 'item', ], ], 'ElasticGpuSpecifications' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticGpuSpecification', 'locationName' => 'item', ], ], 'ElasticGpuState' => [ 'type' => 'string', 'enum' => [ 'ATTACHED', ], ], 'ElasticGpuStatus' => [ 'type' => 'string', 'enum' => [ 'OK', 'IMPAIRED', ], ], 'ElasticGpus' => [ 'type' => 'structure', 'members' => [ 'ElasticGpuId' => [ 'shape' => 'String', 'locationName' => 'elasticGpuId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'ElasticGpuType' => [ 'shape' => 'String', 'locationName' => 'elasticGpuType', ], 'ElasticGpuHealth' => [ 'shape' => 'ElasticGpuHealth', 'locationName' => 'elasticGpuHealth', ], 'ElasticGpuState' => [ 'shape' => 'ElasticGpuState', 'locationName' => 'elasticGpuState', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], ], ], 'ElasticInferenceAccelerator' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'String', ], ], ], 'ElasticInferenceAcceleratorAssociation' => [ 'type' => 'structure', 'members' => [ 'ElasticInferenceAcceleratorArn' => [ 'shape' => 'String', 'locationName' => 'elasticInferenceAcceleratorArn', ], 'ElasticInferenceAcceleratorAssociationId' => [ 'shape' => 'String', 'locationName' => 'elasticInferenceAcceleratorAssociationId', ], 'ElasticInferenceAcceleratorAssociationState' => [ 'shape' => 'String', 'locationName' => 'elasticInferenceAcceleratorAssociationState', ], 'ElasticInferenceAcceleratorAssociationTime' => [ 'shape' => 'DateTime', 'locationName' => 'elasticInferenceAcceleratorAssociationTime', ], ], ], 'ElasticInferenceAcceleratorAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticInferenceAcceleratorAssociation', 'locationName' => 'item', ], ], 'ElasticInferenceAccelerators' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticInferenceAccelerator', 'locationName' => 'item', ], ], 'EnableTransitGatewayRouteTablePropagationRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'String', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableTransitGatewayRouteTablePropagationResult' => [ 'type' => 'structure', 'members' => [ 'Propagation' => [ 'shape' => 'TransitGatewayPropagation', 'locationName' => 'propagation', ], ], ], 'EnableVgwRoutePropagationRequest' => [ 'type' => 'structure', 'required' => [ 'GatewayId', 'RouteTableId', ], 'members' => [ 'GatewayId' => [ 'shape' => 'String', ], 'RouteTableId' => [ 'shape' => 'String', ], ], ], 'EnableVolumeIORequest' => [ 'type' => 'structure', 'required' => [ 'VolumeId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], ], ], 'EnableVpcClassicLinkDnsSupportRequest' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'String', ], ], ], 'EnableVpcClassicLinkDnsSupportResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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', ], ], ], 'EndDateType' => [ 'type' => 'string', 'enum' => [ 'unlimited', 'limited', ], ], 'EndpointSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClientVpnEndpoint', 'locationName' => 'item', ], ], 'EventCode' => [ 'type' => 'string', 'enum' => [ 'instance-reboot', 'system-reboot', 'system-maintenance', 'instance-retirement', 'instance-stop', ], ], 'EventInformation' => [ 'type' => 'structure', 'members' => [ 'EventDescription' => [ 'shape' => 'String', 'locationName' => 'eventDescription', ], 'EventSubType' => [ 'shape' => 'String', 'locationName' => 'eventSubType', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], ], ], 'EventType' => [ 'type' => 'string', 'enum' => [ 'instanceChange', 'fleetRequestChange', 'error', ], ], 'ExcessCapacityTerminationPolicy' => [ 'type' => 'string', 'enum' => [ 'noTermination', 'default', ], ], 'ExecutableByStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ExecutableBy', ], ], 'ExportClientVpnClientCertificateRevocationListRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ExportClientVpnClientCertificateRevocationListResult' => [ 'type' => 'structure', 'members' => [ 'CertificateRevocationList' => [ 'shape' => 'String', 'locationName' => 'certificateRevocationList', ], 'Status' => [ 'shape' => 'ClientCertificateRevocationListStatus', 'locationName' => 'status', ], ], ], 'ExportClientVpnClientConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ExportClientVpnClientConfigurationResult' => [ 'type' => 'structure', 'members' => [ 'ClientConfiguration' => [ 'shape' => 'String', 'locationName' => 'clientConfiguration', ], ], ], 'ExportEnvironment' => [ 'type' => 'string', 'enum' => [ 'citrix', 'vmware', 'microsoft', ], ], 'ExportTask' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'ExportTaskId' => [ 'shape' => 'String', 'locationName' => 'exportTaskId', ], 'ExportToS3Task' => [ 'shape' => 'ExportToS3Task', 'locationName' => 'exportToS3', ], 'InstanceExportDetails' => [ 'shape' => 'InstanceExportDetails', 'locationName' => 'instanceExport', ], 'State' => [ 'shape' => 'ExportTaskState', 'locationName' => 'state', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], ], ], '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' => [ 'ContainerFormat' => [ 'shape' => 'ContainerFormat', 'locationName' => 'containerFormat', ], 'DiskImageFormat' => [ 'shape' => 'DiskImageFormat', 'locationName' => 'diskImageFormat', ], 'S3Bucket' => [ 'shape' => 'String', 'locationName' => 's3Bucket', ], 'S3Key' => [ 'shape' => 'String', 'locationName' => 's3Key', ], ], ], 'ExportToS3TaskSpecification' => [ 'type' => 'structure', 'members' => [ 'ContainerFormat' => [ 'shape' => 'ContainerFormat', 'locationName' => 'containerFormat', ], 'DiskImageFormat' => [ 'shape' => 'DiskImageFormat', 'locationName' => 'diskImageFormat', ], 'S3Bucket' => [ 'shape' => 'String', 'locationName' => 's3Bucket', ], 'S3Prefix' => [ 'shape' => 'String', 'locationName' => 's3Prefix', ], ], ], 'ExportTransitGatewayRoutesRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'S3Bucket', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'S3Bucket' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ExportTransitGatewayRoutesResult' => [ 'type' => 'structure', 'members' => [ 'S3Location' => [ 'shape' => 'String', 'locationName' => 's3Location', ], ], ], 'Filter' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Values' => [ 'shape' => 'ValueStringList', 'locationName' => 'Value', ], ], ], 'FilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Filter', 'locationName' => 'Filter', ], ], 'FleetActivityStatus' => [ 'type' => 'string', 'enum' => [ 'error', 'pending-fulfillment', 'pending-termination', 'fulfilled', ], ], 'FleetData' => [ 'type' => 'structure', 'members' => [ 'ActivityStatus' => [ 'shape' => 'FleetActivityStatus', 'locationName' => 'activityStatus', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'FleetId' => [ 'shape' => 'FleetIdentifier', 'locationName' => 'fleetId', ], 'FleetState' => [ 'shape' => 'FleetStateCode', 'locationName' => 'fleetState', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'FleetExcessCapacityTerminationPolicy', 'locationName' => 'excessCapacityTerminationPolicy', ], 'FulfilledCapacity' => [ 'shape' => 'Double', 'locationName' => 'fulfilledCapacity', ], 'FulfilledOnDemandCapacity' => [ 'shape' => 'Double', 'locationName' => 'fulfilledOnDemandCapacity', ], 'LaunchTemplateConfigs' => [ 'shape' => 'FleetLaunchTemplateConfigList', 'locationName' => 'launchTemplateConfigs', ], 'TargetCapacitySpecification' => [ 'shape' => 'TargetCapacitySpecification', 'locationName' => 'targetCapacitySpecification', ], 'TerminateInstancesWithExpiration' => [ 'shape' => 'Boolean', 'locationName' => 'terminateInstancesWithExpiration', ], 'Type' => [ 'shape' => 'FleetType', 'locationName' => 'type', ], 'ValidFrom' => [ 'shape' => 'DateTime', 'locationName' => 'validFrom', ], 'ValidUntil' => [ 'shape' => 'DateTime', 'locationName' => 'validUntil', ], 'ReplaceUnhealthyInstances' => [ 'shape' => 'Boolean', 'locationName' => 'replaceUnhealthyInstances', ], 'SpotOptions' => [ 'shape' => 'SpotOptions', 'locationName' => 'spotOptions', ], 'OnDemandOptions' => [ 'shape' => 'OnDemandOptions', 'locationName' => 'onDemandOptions', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'Errors' => [ 'shape' => 'DescribeFleetsErrorSet', 'locationName' => 'errorSet', ], 'Instances' => [ 'shape' => 'DescribeFleetsInstancesSet', 'locationName' => 'fleetInstanceSet', ], ], ], 'FleetEventType' => [ 'type' => 'string', 'enum' => [ 'instance-change', 'fleet-change', 'service-error', ], ], 'FleetExcessCapacityTerminationPolicy' => [ 'type' => 'string', 'enum' => [ 'no-termination', 'termination', ], ], 'FleetIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetIdentifier', ], ], 'FleetIdentifier' => [ 'type' => 'string', ], 'FleetLaunchTemplateConfig' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateSpecification' => [ 'shape' => 'FleetLaunchTemplateSpecification', 'locationName' => 'launchTemplateSpecification', ], 'Overrides' => [ 'shape' => 'FleetLaunchTemplateOverridesList', 'locationName' => 'overrides', ], ], ], 'FleetLaunchTemplateConfigList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetLaunchTemplateConfig', 'locationName' => 'item', ], ], 'FleetLaunchTemplateConfigListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetLaunchTemplateConfigRequest', 'locationName' => 'item', ], 'max' => 50, ], 'FleetLaunchTemplateConfigRequest' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateSpecification' => [ 'shape' => 'FleetLaunchTemplateSpecificationRequest', ], 'Overrides' => [ 'shape' => 'FleetLaunchTemplateOverridesListRequest', ], ], ], 'FleetLaunchTemplateOverrides' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'MaxPrice' => [ 'shape' => 'String', 'locationName' => 'maxPrice', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'WeightedCapacity' => [ 'shape' => 'Double', 'locationName' => 'weightedCapacity', ], 'Priority' => [ 'shape' => 'Double', 'locationName' => 'priority', ], 'Placement' => [ 'shape' => 'PlacementResponse', 'locationName' => 'placement', ], ], ], 'FleetLaunchTemplateOverridesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetLaunchTemplateOverrides', 'locationName' => 'item', ], ], 'FleetLaunchTemplateOverridesListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetLaunchTemplateOverridesRequest', 'locationName' => 'item', ], 'max' => 50, ], 'FleetLaunchTemplateOverridesRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'InstanceType', ], 'MaxPrice' => [ 'shape' => 'String', ], 'SubnetId' => [ 'shape' => 'String', ], 'AvailabilityZone' => [ 'shape' => 'String', ], 'WeightedCapacity' => [ 'shape' => 'Double', ], 'Priority' => [ 'shape' => 'Double', ], 'Placement' => [ 'shape' => 'Placement', ], ], ], 'FleetLaunchTemplateSpecification' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'String', 'locationName' => 'launchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', 'locationName' => 'launchTemplateName', ], 'Version' => [ 'shape' => 'String', 'locationName' => 'version', ], ], ], 'FleetLaunchTemplateSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'String', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', ], 'Version' => [ 'shape' => 'String', ], ], ], 'FleetOnDemandAllocationStrategy' => [ 'type' => 'string', 'enum' => [ 'lowest-price', 'prioritized', ], ], 'FleetSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetData', 'locationName' => 'item', ], ], 'FleetStateCode' => [ 'type' => 'string', 'enum' => [ 'submitted', 'active', 'deleted', 'failed', 'deleted-running', 'deleted-terminating', 'modifying', ], ], 'FleetType' => [ 'type' => 'string', 'enum' => [ 'request', 'maintain', 'instant', ], ], 'Float' => [ 'type' => 'float', ], 'FlowLog' => [ 'type' => 'structure', 'members' => [ 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'DeliverLogsErrorMessage' => [ 'shape' => 'String', 'locationName' => 'deliverLogsErrorMessage', ], 'DeliverLogsPermissionArn' => [ 'shape' => 'String', 'locationName' => 'deliverLogsPermissionArn', ], 'DeliverLogsStatus' => [ 'shape' => 'String', 'locationName' => 'deliverLogsStatus', ], 'FlowLogId' => [ 'shape' => 'String', 'locationName' => 'flowLogId', ], 'FlowLogStatus' => [ 'shape' => 'String', 'locationName' => 'flowLogStatus', ], 'LogGroupName' => [ 'shape' => 'String', 'locationName' => 'logGroupName', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'TrafficType' => [ 'shape' => 'TrafficType', 'locationName' => 'trafficType', ], 'LogDestinationType' => [ 'shape' => 'LogDestinationType', 'locationName' => 'logDestinationType', ], 'LogDestination' => [ 'shape' => 'String', 'locationName' => 'logDestination', ], ], ], 'FlowLogSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'FlowLog', 'locationName' => 'item', ], ], 'FlowLogsResourceType' => [ 'type' => 'string', 'enum' => [ 'VPC', 'Subnet', 'NetworkInterface', ], ], 'FpgaImage' => [ 'type' => 'structure', 'members' => [ 'FpgaImageId' => [ 'shape' => 'String', 'locationName' => 'fpgaImageId', ], 'FpgaImageGlobalId' => [ 'shape' => 'String', 'locationName' => 'fpgaImageGlobalId', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'ShellVersion' => [ 'shape' => 'String', 'locationName' => 'shellVersion', ], 'PciId' => [ 'shape' => 'PciId', 'locationName' => 'pciId', ], 'State' => [ 'shape' => 'FpgaImageState', 'locationName' => 'state', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'UpdateTime' => [ 'shape' => 'DateTime', 'locationName' => 'updateTime', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'OwnerAlias' => [ 'shape' => 'String', 'locationName' => 'ownerAlias', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tags', ], 'Public' => [ 'shape' => 'Boolean', 'locationName' => 'public', ], 'DataRetentionSupport' => [ 'shape' => 'Boolean', 'locationName' => 'dataRetentionSupport', ], ], ], 'FpgaImageAttribute' => [ 'type' => 'structure', 'members' => [ 'FpgaImageId' => [ 'shape' => 'String', 'locationName' => 'fpgaImageId', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'LoadPermissions' => [ 'shape' => 'LoadPermissionList', 'locationName' => 'loadPermissions', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], ], ], 'FpgaImageAttributeName' => [ 'type' => 'string', 'enum' => [ 'description', 'name', 'loadPermission', 'productCodes', ], ], 'FpgaImageIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'FpgaImageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FpgaImage', 'locationName' => 'item', ], ], 'FpgaImageState' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'FpgaImageStateCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'FpgaImageStateCode' => [ 'type' => 'string', 'enum' => [ 'pending', 'failed', 'available', 'unavailable', ], ], 'GatewayType' => [ 'type' => 'string', 'enum' => [ 'ipsec.1', ], ], 'GetConsoleOutputRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Latest' => [ 'shape' => 'Boolean', ], ], ], 'GetConsoleOutputResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Output' => [ 'shape' => 'String', 'locationName' => 'output', ], 'Timestamp' => [ 'shape' => 'DateTime', 'locationName' => 'timestamp', ], ], ], 'GetConsoleScreenshotRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'String', ], 'WakeUp' => [ 'shape' => 'Boolean', ], ], ], 'GetConsoleScreenshotResult' => [ 'type' => 'structure', 'members' => [ 'ImageData' => [ 'shape' => 'String', 'locationName' => 'imageData', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], ], ], 'GetHostReservationPurchasePreviewRequest' => [ 'type' => 'structure', 'required' => [ 'HostIdSet', 'OfferingId', ], 'members' => [ 'HostIdSet' => [ 'shape' => 'RequestHostIdSet', ], 'OfferingId' => [ 'shape' => 'String', ], ], ], 'GetHostReservationPurchasePreviewResult' => [ 'type' => 'structure', 'members' => [ 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Purchase' => [ 'shape' => 'PurchaseSet', 'locationName' => 'purchase', ], 'TotalHourlyPrice' => [ 'shape' => 'String', 'locationName' => 'totalHourlyPrice', ], 'TotalUpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'totalUpfrontPrice', ], ], ], 'GetLaunchTemplateDataRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'String', ], ], ], 'GetLaunchTemplateDataResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateData' => [ 'shape' => 'ResponseLaunchTemplateData', 'locationName' => 'launchTemplateData', ], ], ], 'GetPasswordDataRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'GetPasswordDataResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'PasswordData' => [ 'shape' => 'String', 'locationName' => 'passwordData', ], 'Timestamp' => [ 'shape' => 'DateTime', 'locationName' => 'timestamp', ], ], ], 'GetReservedInstancesExchangeQuoteRequest' => [ 'type' => 'structure', 'required' => [ 'ReservedInstanceIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ReservedInstanceIds' => [ 'shape' => 'ReservedInstanceIdSet', 'locationName' => 'ReservedInstanceId', ], 'TargetConfigurations' => [ 'shape' => 'TargetConfigurationRequestSet', 'locationName' => 'TargetConfiguration', ], ], ], 'GetReservedInstancesExchangeQuoteResult' => [ 'type' => 'structure', 'members' => [ 'CurrencyCode' => [ 'shape' => 'String', 'locationName' => 'currencyCode', ], 'IsValidExchange' => [ 'shape' => 'Boolean', 'locationName' => 'isValidExchange', ], 'OutputReservedInstancesWillExpireAt' => [ 'shape' => 'DateTime', 'locationName' => 'outputReservedInstancesWillExpireAt', ], 'PaymentDue' => [ 'shape' => 'String', 'locationName' => 'paymentDue', ], 'ReservedInstanceValueRollup' => [ 'shape' => 'ReservationValue', 'locationName' => 'reservedInstanceValueRollup', ], 'ReservedInstanceValueSet' => [ 'shape' => 'ReservedInstanceReservationValueSet', 'locationName' => 'reservedInstanceValueSet', ], 'TargetConfigurationValueRollup' => [ 'shape' => 'ReservationValue', 'locationName' => 'targetConfigurationValueRollup', ], 'TargetConfigurationValueSet' => [ 'shape' => 'TargetReservationValueSet', 'locationName' => 'targetConfigurationValueSet', ], 'ValidationFailureReason' => [ 'shape' => 'String', 'locationName' => 'validationFailureReason', ], ], ], 'GetTransitGatewayAttachmentPropagationsRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetTransitGatewayAttachmentPropagationsResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentPropagations' => [ 'shape' => 'TransitGatewayAttachmentPropagationList', 'locationName' => 'transitGatewayAttachmentPropagations', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetTransitGatewayRouteTableAssociationsRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetTransitGatewayRouteTableAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'Associations' => [ 'shape' => 'TransitGatewayRouteTableAssociationList', 'locationName' => 'associations', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetTransitGatewayRouteTablePropagationsRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetTransitGatewayRouteTablePropagationsResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTablePropagations' => [ 'shape' => 'TransitGatewayRouteTablePropagationList', 'locationName' => 'transitGatewayRouteTablePropagations', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], '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', ], ], 'GroupIdentifierSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupIdentifier', 'locationName' => 'item', ], ], 'GroupIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'GroupNameStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'GroupName', ], ], 'HibernationOptions' => [ 'type' => 'structure', 'members' => [ 'Configured' => [ 'shape' => 'Boolean', 'locationName' => 'configured', ], ], ], 'HibernationOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'Configured' => [ 'shape' => 'Boolean', ], ], ], 'HistoryRecord' => [ 'type' => 'structure', 'members' => [ 'EventInformation' => [ 'shape' => 'EventInformation', 'locationName' => 'eventInformation', ], 'EventType' => [ 'shape' => 'EventType', 'locationName' => 'eventType', ], 'Timestamp' => [ 'shape' => 'DateTime', 'locationName' => 'timestamp', ], ], ], 'HistoryRecordEntry' => [ 'type' => 'structure', 'members' => [ 'EventInformation' => [ 'shape' => 'EventInformation', 'locationName' => 'eventInformation', ], 'EventType' => [ 'shape' => 'FleetEventType', 'locationName' => 'eventType', ], 'Timestamp' => [ 'shape' => 'DateTime', 'locationName' => 'timestamp', ], ], ], 'HistoryRecordSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'HistoryRecordEntry', 'locationName' => 'item', ], ], 'HistoryRecords' => [ 'type' => 'list', 'member' => [ 'shape' => 'HistoryRecord', 'locationName' => 'item', ], ], 'Host' => [ 'type' => 'structure', 'members' => [ 'AutoPlacement' => [ 'shape' => 'AutoPlacement', 'locationName' => 'autoPlacement', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailableCapacity' => [ 'shape' => 'AvailableCapacity', 'locationName' => 'availableCapacity', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'HostId' => [ 'shape' => 'String', 'locationName' => 'hostId', ], 'HostProperties' => [ 'shape' => 'HostProperties', 'locationName' => 'hostProperties', ], 'HostReservationId' => [ 'shape' => 'String', 'locationName' => 'hostReservationId', ], 'Instances' => [ 'shape' => 'HostInstanceList', 'locationName' => 'instances', ], 'State' => [ 'shape' => 'AllocationState', 'locationName' => 'state', ], 'AllocationTime' => [ 'shape' => 'DateTime', 'locationName' => 'allocationTime', ], 'ReleaseTime' => [ 'shape' => 'DateTime', 'locationName' => 'releaseTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'HostInstance' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], ], ], 'HostInstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostInstance', 'locationName' => 'item', ], ], 'HostList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Host', 'locationName' => 'item', ], ], 'HostOffering' => [ 'type' => 'structure', 'members' => [ 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Duration' => [ 'shape' => 'Integer', 'locationName' => 'duration', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], 'OfferingId' => [ 'shape' => 'String', 'locationName' => 'offeringId', ], 'PaymentOption' => [ 'shape' => 'PaymentOption', 'locationName' => 'paymentOption', ], 'UpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'upfrontPrice', ], ], ], 'HostOfferingSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostOffering', 'locationName' => 'item', ], ], 'HostProperties' => [ 'type' => 'structure', 'members' => [ 'Cores' => [ 'shape' => 'Integer', 'locationName' => 'cores', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'Sockets' => [ 'shape' => 'Integer', 'locationName' => 'sockets', ], 'TotalVCpus' => [ 'shape' => 'Integer', 'locationName' => 'totalVCpus', ], ], ], 'HostReservation' => [ 'type' => 'structure', 'members' => [ 'Count' => [ 'shape' => 'Integer', 'locationName' => 'count', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Duration' => [ 'shape' => 'Integer', 'locationName' => 'duration', ], 'End' => [ 'shape' => 'DateTime', 'locationName' => 'end', ], 'HostIdSet' => [ 'shape' => 'ResponseHostIdSet', 'locationName' => 'hostIdSet', ], 'HostReservationId' => [ 'shape' => 'String', 'locationName' => 'hostReservationId', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], 'OfferingId' => [ 'shape' => 'String', 'locationName' => 'offeringId', ], 'PaymentOption' => [ 'shape' => 'PaymentOption', 'locationName' => 'paymentOption', ], 'Start' => [ 'shape' => 'DateTime', 'locationName' => 'start', ], 'State' => [ 'shape' => 'ReservationState', 'locationName' => 'state', ], 'UpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'upfrontPrice', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'HostReservationIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'HostReservationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostReservation', 'locationName' => 'item', ], ], 'HostTenancy' => [ 'type' => 'string', 'enum' => [ 'dedicated', 'host', ], ], 'HypervisorType' => [ 'type' => 'string', 'enum' => [ 'ovm', 'xen', ], ], 'IamInstanceProfile' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', 'locationName' => 'arn', ], 'Id' => [ 'shape' => 'String', 'locationName' => 'id', ], ], ], 'IamInstanceProfileAssociation' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfile', 'locationName' => 'iamInstanceProfile', ], 'State' => [ 'shape' => 'IamInstanceProfileAssociationState', 'locationName' => 'state', ], 'Timestamp' => [ 'shape' => 'DateTime', 'locationName' => 'timestamp', ], ], ], 'IamInstanceProfileAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IamInstanceProfileAssociation', 'locationName' => 'item', ], ], 'IamInstanceProfileAssociationState' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'disassociating', 'disassociated', ], ], 'IamInstanceProfileSpecification' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', 'locationName' => 'arn', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], ], ], 'IcmpTypeCode' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'Integer', 'locationName' => 'code', ], 'Type' => [ 'shape' => 'Integer', 'locationName' => 'type', ], ], ], 'IdFormat' => [ 'type' => 'structure', 'members' => [ 'Deadline' => [ 'shape' => 'DateTime', 'locationName' => 'deadline', ], 'Resource' => [ 'shape' => 'String', 'locationName' => 'resource', ], 'UseLongIds' => [ 'shape' => 'Boolean', 'locationName' => 'useLongIds', ], ], ], 'IdFormatList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IdFormat', 'locationName' => 'item', ], ], 'Image' => [ 'type' => 'structure', 'members' => [ 'Architecture' => [ 'shape' => 'ArchitectureValues', 'locationName' => 'architecture', ], 'CreationDate' => [ 'shape' => 'String', 'locationName' => 'creationDate', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'ImageLocation' => [ 'shape' => 'String', 'locationName' => 'imageLocation', ], 'ImageType' => [ 'shape' => 'ImageTypeValues', 'locationName' => 'imageType', ], 'Public' => [ 'shape' => 'Boolean', 'locationName' => 'isPublic', ], 'KernelId' => [ 'shape' => 'String', 'locationName' => 'kernelId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'imageOwnerId', ], 'Platform' => [ 'shape' => 'PlatformValues', 'locationName' => 'platform', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'RamdiskId' => [ 'shape' => 'String', 'locationName' => 'ramdiskId', ], 'State' => [ 'shape' => 'ImageState', 'locationName' => 'imageState', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'EnaSupport' => [ 'shape' => 'Boolean', 'locationName' => 'enaSupport', ], 'Hypervisor' => [ 'shape' => 'HypervisorType', 'locationName' => 'hypervisor', ], 'ImageOwnerAlias' => [ 'shape' => 'String', 'locationName' => 'imageOwnerAlias', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], 'RootDeviceName' => [ 'shape' => 'String', 'locationName' => 'rootDeviceName', ], 'RootDeviceType' => [ 'shape' => 'DeviceType', 'locationName' => 'rootDeviceType', ], 'SriovNetSupport' => [ 'shape' => 'String', 'locationName' => 'sriovNetSupport', ], 'StateReason' => [ 'shape' => 'StateReason', 'locationName' => 'stateReason', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VirtualizationType' => [ 'shape' => 'VirtualizationType', 'locationName' => 'virtualizationType', ], ], ], 'ImageAttribute' => [ 'type' => 'structure', 'members' => [ 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'LaunchPermissions' => [ 'shape' => 'LaunchPermissionList', 'locationName' => 'launchPermission', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'Description' => [ 'shape' => 'AttributeValue', 'locationName' => 'description', ], 'KernelId' => [ 'shape' => 'AttributeValue', 'locationName' => 'kernel', ], 'RamdiskId' => [ 'shape' => 'AttributeValue', 'locationName' => 'ramdisk', ], 'SriovNetSupport' => [ 'shape' => 'AttributeValue', 'locationName' => 'sriovNetSupport', ], ], ], 'ImageAttributeName' => [ 'type' => 'string', 'enum' => [ 'description', 'kernel', 'ramdisk', 'launchPermission', 'productCodes', 'blockDeviceMapping', 'sriovNetSupport', ], ], 'ImageDiskContainer' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', ], 'DeviceName' => [ 'shape' => 'String', ], 'Format' => [ 'shape' => 'String', ], 'SnapshotId' => [ 'shape' => 'String', ], 'Url' => [ 'shape' => 'String', ], 'UserBucket' => [ 'shape' => 'UserBucket', ], ], ], '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', ], ], 'ImportClientVpnClientCertificateRevocationListRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'CertificateRevocationList', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', ], 'CertificateRevocationList' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ImportClientVpnClientCertificateRevocationListResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ImportImageRequest' => [ 'type' => 'structure', 'members' => [ 'Architecture' => [ 'shape' => 'String', ], 'ClientData' => [ 'shape' => 'ClientData', ], 'ClientToken' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'DiskContainers' => [ 'shape' => 'ImageDiskContainerList', 'locationName' => 'DiskContainer', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Encrypted' => [ 'shape' => 'Boolean', ], 'Hypervisor' => [ 'shape' => 'String', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'LicenseType' => [ 'shape' => 'String', ], 'Platform' => [ 'shape' => 'String', ], 'RoleName' => [ 'shape' => 'String', ], ], ], 'ImportImageResult' => [ 'type' => 'structure', 'members' => [ 'Architecture' => [ 'shape' => 'String', 'locationName' => 'architecture', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'Hypervisor' => [ 'shape' => 'String', 'locationName' => 'hypervisor', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'ImportTaskId' => [ 'shape' => 'String', 'locationName' => 'importTaskId', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], 'LicenseType' => [ 'shape' => 'String', 'locationName' => 'licenseType', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'SnapshotDetails' => [ 'shape' => 'SnapshotDetailList', 'locationName' => 'snapshotDetailSet', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], ], ], 'ImportImageTask' => [ 'type' => 'structure', 'members' => [ 'Architecture' => [ 'shape' => 'String', 'locationName' => 'architecture', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'Hypervisor' => [ 'shape' => 'String', 'locationName' => 'hypervisor', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'ImportTaskId' => [ 'shape' => 'String', 'locationName' => 'importTaskId', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], 'LicenseType' => [ 'shape' => 'String', 'locationName' => 'licenseType', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'SnapshotDetails' => [ 'shape' => 'SnapshotDetailList', 'locationName' => 'snapshotDetailSet', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], ], ], 'ImportImageTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportImageTask', 'locationName' => 'item', ], ], 'ImportInstanceLaunchSpecification' => [ 'type' => 'structure', 'members' => [ 'AdditionalInfo' => [ 'shape' => 'String', 'locationName' => 'additionalInfo', ], 'Architecture' => [ 'shape' => 'ArchitectureValues', 'locationName' => 'architecture', ], 'GroupIds' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'GroupId', ], 'GroupNames' => [ 'shape' => 'SecurityGroupStringList', 'locationName' => 'GroupName', ], 'InstanceInitiatedShutdownBehavior' => [ 'shape' => 'ShutdownBehavior', 'locationName' => 'instanceInitiatedShutdownBehavior', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'Monitoring' => [ 'shape' => 'Boolean', 'locationName' => 'monitoring', ], 'Placement' => [ 'shape' => 'Placement', 'locationName' => 'placement', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'UserData' => [ 'shape' => 'UserData', 'locationName' => 'userData', ], ], ], 'ImportInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'Platform', ], 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'DiskImages' => [ 'shape' => 'DiskImageList', 'locationName' => 'diskImage', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'LaunchSpecification' => [ 'shape' => 'ImportInstanceLaunchSpecification', 'locationName' => 'launchSpecification', ], 'Platform' => [ 'shape' => 'PlatformValues', 'locationName' => 'platform', ], ], ], 'ImportInstanceResult' => [ 'type' => 'structure', 'members' => [ 'ConversionTask' => [ 'shape' => 'ConversionTask', 'locationName' => 'conversionTask', ], ], ], 'ImportInstanceTaskDetails' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Platform' => [ 'shape' => 'PlatformValues', 'locationName' => 'platform', ], 'Volumes' => [ 'shape' => 'ImportInstanceVolumeDetailSet', 'locationName' => 'volumes', ], ], ], 'ImportInstanceVolumeDetailItem' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'BytesConverted' => [ 'shape' => 'Long', 'locationName' => 'bytesConverted', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Image' => [ 'shape' => 'DiskImageDescription', 'locationName' => 'image', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Volume' => [ 'shape' => 'DiskImageVolumeDescription', 'locationName' => 'volume', ], ], ], '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' => [ 'KeyFingerprint' => [ 'shape' => 'String', 'locationName' => 'keyFingerprint', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], ], ], 'ImportSnapshotRequest' => [ 'type' => 'structure', 'members' => [ 'ClientData' => [ 'shape' => 'ClientData', ], 'ClientToken' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'DiskContainer' => [ 'shape' => 'SnapshotDiskContainer', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Encrypted' => [ 'shape' => 'Boolean', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'RoleName' => [ 'shape' => 'String', ], ], ], 'ImportSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'ImportTaskId' => [ 'shape' => 'String', 'locationName' => 'importTaskId', ], 'SnapshotTaskDetail' => [ 'shape' => 'SnapshotTaskDetail', 'locationName' => 'snapshotTaskDetail', ], ], ], 'ImportSnapshotTask' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'ImportTaskId' => [ 'shape' => 'String', 'locationName' => 'importTaskId', ], 'SnapshotTaskDetail' => [ 'shape' => 'SnapshotTaskDetail', 'locationName' => 'snapshotTaskDetail', ], ], ], 'ImportSnapshotTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportSnapshotTask', 'locationName' => 'item', ], ], 'ImportTaskIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ImportTaskId', ], ], 'ImportVolumeRequest' => [ 'type' => 'structure', 'required' => [ 'AvailabilityZone', 'Image', 'Volume', ], 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Image' => [ 'shape' => 'DiskImageDetail', 'locationName' => 'image', ], 'Volume' => [ 'shape' => 'VolumeDetail', 'locationName' => 'volume', ], ], ], 'ImportVolumeResult' => [ 'type' => 'structure', 'members' => [ 'ConversionTask' => [ 'shape' => 'ConversionTask', 'locationName' => 'conversionTask', ], ], ], 'ImportVolumeTaskDetails' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'BytesConverted' => [ 'shape' => 'Long', 'locationName' => 'bytesConverted', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Image' => [ 'shape' => 'DiskImageDescription', 'locationName' => 'image', ], 'Volume' => [ 'shape' => 'DiskImageVolumeDescription', 'locationName' => 'volume', ], ], ], 'Instance' => [ 'type' => 'structure', 'members' => [ 'AmiLaunchIndex' => [ 'shape' => 'Integer', 'locationName' => 'amiLaunchIndex', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'KernelId' => [ 'shape' => 'String', 'locationName' => 'kernelId', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], 'LaunchTime' => [ 'shape' => 'DateTime', 'locationName' => 'launchTime', ], 'Monitoring' => [ 'shape' => 'Monitoring', 'locationName' => 'monitoring', ], 'Placement' => [ 'shape' => 'Placement', 'locationName' => 'placement', ], 'Platform' => [ 'shape' => 'PlatformValues', 'locationName' => 'platform', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'PublicDnsName' => [ 'shape' => 'String', 'locationName' => 'dnsName', ], 'PublicIpAddress' => [ 'shape' => 'String', 'locationName' => 'ipAddress', ], 'RamdiskId' => [ 'shape' => 'String', 'locationName' => 'ramdiskId', ], 'State' => [ 'shape' => 'InstanceState', 'locationName' => 'instanceState', ], 'StateTransitionReason' => [ 'shape' => 'String', 'locationName' => 'reason', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'Architecture' => [ 'shape' => 'ArchitectureValues', 'locationName' => 'architecture', ], 'BlockDeviceMappings' => [ 'shape' => 'InstanceBlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'EnaSupport' => [ 'shape' => 'Boolean', 'locationName' => 'enaSupport', ], 'Hypervisor' => [ 'shape' => 'HypervisorType', 'locationName' => 'hypervisor', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfile', 'locationName' => 'iamInstanceProfile', ], 'InstanceLifecycle' => [ 'shape' => 'InstanceLifecycleType', 'locationName' => 'instanceLifecycle', ], 'ElasticGpuAssociations' => [ 'shape' => 'ElasticGpuAssociationList', 'locationName' => 'elasticGpuAssociationSet', ], 'ElasticInferenceAcceleratorAssociations' => [ 'shape' => 'ElasticInferenceAcceleratorAssociationList', 'locationName' => 'elasticInferenceAcceleratorAssociationSet', ], 'NetworkInterfaces' => [ 'shape' => 'InstanceNetworkInterfaceList', 'locationName' => 'networkInterfaceSet', ], 'RootDeviceName' => [ 'shape' => 'String', 'locationName' => 'rootDeviceName', ], 'RootDeviceType' => [ 'shape' => 'DeviceType', 'locationName' => 'rootDeviceType', ], 'SecurityGroups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'SourceDestCheck' => [ 'shape' => 'Boolean', 'locationName' => 'sourceDestCheck', ], 'SpotInstanceRequestId' => [ 'shape' => 'String', 'locationName' => 'spotInstanceRequestId', ], 'SriovNetSupport' => [ 'shape' => 'String', 'locationName' => 'sriovNetSupport', ], 'StateReason' => [ 'shape' => 'StateReason', 'locationName' => 'stateReason', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VirtualizationType' => [ 'shape' => 'VirtualizationType', 'locationName' => 'virtualizationType', ], 'CpuOptions' => [ 'shape' => 'CpuOptions', 'locationName' => 'cpuOptions', ], 'CapacityReservationId' => [ 'shape' => 'String', 'locationName' => 'capacityReservationId', ], 'CapacityReservationSpecification' => [ 'shape' => 'CapacityReservationSpecificationResponse', 'locationName' => 'capacityReservationSpecification', ], 'HibernationOptions' => [ 'shape' => 'HibernationOptions', 'locationName' => 'hibernationOptions', ], 'Licenses' => [ 'shape' => 'LicenseList', 'locationName' => 'licenseSet', ], ], ], 'InstanceAttribute' => [ 'type' => 'structure', 'members' => [ 'Groups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'BlockDeviceMappings' => [ 'shape' => 'InstanceBlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], 'DisableApiTermination' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'disableApiTermination', ], 'EnaSupport' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'enaSupport', ], 'EbsOptimized' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'ebsOptimized', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceInitiatedShutdownBehavior' => [ 'shape' => 'AttributeValue', 'locationName' => 'instanceInitiatedShutdownBehavior', ], 'InstanceType' => [ 'shape' => 'AttributeValue', 'locationName' => 'instanceType', ], 'KernelId' => [ 'shape' => 'AttributeValue', 'locationName' => 'kernel', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'RamdiskId' => [ 'shape' => 'AttributeValue', 'locationName' => 'ramdisk', ], 'RootDeviceName' => [ 'shape' => 'AttributeValue', 'locationName' => 'rootDeviceName', ], 'SourceDestCheck' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'sourceDestCheck', ], 'SriovNetSupport' => [ 'shape' => 'AttributeValue', 'locationName' => 'sriovNetSupport', ], 'UserData' => [ 'shape' => 'AttributeValue', 'locationName' => 'userData', ], ], ], 'InstanceAttributeName' => [ 'type' => 'string', 'enum' => [ 'instanceType', 'kernel', 'ramdisk', 'userData', 'disableApiTermination', 'instanceInitiatedShutdownBehavior', 'rootDeviceName', 'blockDeviceMapping', 'productCodes', 'sourceDestCheck', 'groupSet', 'ebsOptimized', 'sriovNetSupport', 'enaSupport', ], ], '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', ], 'NoDevice' => [ 'shape' => 'String', 'locationName' => 'noDevice', ], 'VirtualName' => [ 'shape' => 'String', 'locationName' => 'virtualName', ], ], ], 'InstanceBlockDeviceMappingSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceBlockDeviceMappingSpecification', 'locationName' => 'item', ], ], 'InstanceCapacity' => [ 'type' => 'structure', 'members' => [ 'AvailableCapacity' => [ 'shape' => 'Integer', 'locationName' => 'availableCapacity', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'TotalCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalCapacity', ], ], ], 'InstanceCount' => [ 'type' => 'structure', 'members' => [ 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'State' => [ 'shape' => 'ListingState', 'locationName' => 'state', ], ], ], 'InstanceCountList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceCount', 'locationName' => 'item', ], ], 'InstanceCreditSpecification' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'CpuCredits' => [ 'shape' => 'String', 'locationName' => 'cpuCredits', ], ], ], 'InstanceCreditSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceCreditSpecification', 'locationName' => 'item', ], ], 'InstanceCreditSpecificationListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceCreditSpecificationRequest', 'locationName' => 'item', ], ], 'InstanceCreditSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', ], 'CpuCredits' => [ 'shape' => 'String', ], ], ], 'InstanceEventId' => [ 'type' => 'string', ], 'InstanceExportDetails' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'TargetEnvironment' => [ 'shape' => 'ExportEnvironment', 'locationName' => 'targetEnvironment', ], ], ], 'InstanceHealthStatus' => [ 'type' => 'string', 'enum' => [ 'healthy', 'unhealthy', ], ], 'InstanceId' => [ 'type' => 'string', ], 'InstanceIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'InstanceIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'InstanceId', ], ], 'InstanceIdsSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceId', 'locationName' => 'item', ], ], 'InstanceInterruptionBehavior' => [ 'type' => 'string', 'enum' => [ 'hibernate', 'stop', 'terminate', ], ], 'InstanceIpv6Address' => [ 'type' => 'structure', 'members' => [ 'Ipv6Address' => [ 'shape' => 'String', 'locationName' => 'ipv6Address', ], ], ], 'InstanceIpv6AddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceIpv6Address', 'locationName' => 'item', ], ], 'InstanceIpv6AddressListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceIpv6AddressRequest', 'locationName' => 'InstanceIpv6Address', ], ], 'InstanceIpv6AddressRequest' => [ 'type' => 'structure', 'members' => [ 'Ipv6Address' => [ 'shape' => 'String', ], ], ], 'InstanceLifecycle' => [ 'type' => 'string', 'enum' => [ 'spot', 'on-demand', ], ], 'InstanceLifecycleType' => [ 'type' => 'string', 'enum' => [ 'spot', 'scheduled', ], ], 'InstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Instance', 'locationName' => 'item', ], ], 'InstanceMarketOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'MarketType' => [ 'shape' => 'MarketType', ], 'SpotOptions' => [ 'shape' => 'SpotMarketOptions', ], ], ], 'InstanceMatchCriteria' => [ 'type' => 'string', 'enum' => [ 'open', 'targeted', ], ], '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' => [ 'Association' => [ 'shape' => 'InstanceNetworkInterfaceAssociation', 'locationName' => 'association', ], 'Attachment' => [ 'shape' => 'InstanceNetworkInterfaceAttachment', 'locationName' => 'attachment', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Groups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'Ipv6Addresses' => [ 'shape' => 'InstanceIpv6AddressList', 'locationName' => 'ipv6AddressesSet', ], 'MacAddress' => [ 'shape' => 'String', 'locationName' => 'macAddress', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'PrivateIpAddresses' => [ 'shape' => 'InstancePrivateIpAddressList', 'locationName' => 'privateIpAddressesSet', ], 'SourceDestCheck' => [ 'shape' => 'Boolean', 'locationName' => 'sourceDestCheck', ], 'Status' => [ 'shape' => 'NetworkInterfaceStatus', 'locationName' => 'status', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'InstanceNetworkInterfaceAssociation' => [ 'type' => 'structure', 'members' => [ 'IpOwnerId' => [ 'shape' => 'String', 'locationName' => 'ipOwnerId', ], 'PublicDnsName' => [ 'shape' => 'String', 'locationName' => 'publicDnsName', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], ], ], 'InstanceNetworkInterfaceAttachment' => [ 'type' => 'structure', 'members' => [ 'AttachTime' => [ 'shape' => 'DateTime', 'locationName' => 'attachTime', ], 'AttachmentId' => [ 'shape' => 'String', 'locationName' => 'attachmentId', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], 'Status' => [ 'shape' => 'AttachmentStatus', 'locationName' => 'status', ], ], ], 'InstanceNetworkInterfaceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceNetworkInterface', 'locationName' => 'item', ], ], 'InstanceNetworkInterfaceSpecification' => [ 'type' => 'structure', 'members' => [ 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', 'locationName' => 'associatePublicIpAddress', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], 'Groups' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'SecurityGroupId', ], 'Ipv6AddressCount' => [ 'shape' => 'Integer', 'locationName' => 'ipv6AddressCount', ], 'Ipv6Addresses' => [ 'shape' => 'InstanceIpv6AddressList', 'locationName' => 'ipv6AddressesSet', 'queryName' => 'Ipv6Addresses', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'PrivateIpAddresses' => [ 'shape' => 'PrivateIpAddressSpecificationList', 'locationName' => 'privateIpAddressesSet', 'queryName' => 'PrivateIpAddresses', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'secondaryPrivateIpAddressCount', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], ], ], 'InstanceNetworkInterfaceSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceNetworkInterfaceSpecification', 'locationName' => 'item', ], ], 'InstancePrivateIpAddress' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'InstanceNetworkInterfaceAssociation', 'locationName' => 'association', ], 'Primary' => [ 'shape' => 'Boolean', 'locationName' => 'primary', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], ], ], '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' => [ 'CurrentState' => [ 'shape' => 'InstanceState', 'locationName' => 'currentState', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], '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' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Events' => [ 'shape' => 'InstanceStatusEventList', 'locationName' => 'eventsSet', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceState' => [ 'shape' => 'InstanceState', 'locationName' => 'instanceState', ], 'InstanceStatus' => [ 'shape' => 'InstanceStatusSummary', 'locationName' => 'instanceStatus', ], 'SystemStatus' => [ 'shape' => 'InstanceStatusSummary', 'locationName' => 'systemStatus', ], ], ], 'InstanceStatusDetails' => [ 'type' => 'structure', 'members' => [ 'ImpairedSince' => [ 'shape' => 'DateTime', 'locationName' => 'impairedSince', ], 'Name' => [ 'shape' => 'StatusName', 'locationName' => 'name', ], 'Status' => [ 'shape' => 'StatusType', 'locationName' => 'status', ], ], ], 'InstanceStatusDetailsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceStatusDetails', 'locationName' => 'item', ], ], 'InstanceStatusEvent' => [ 'type' => 'structure', 'members' => [ 'InstanceEventId' => [ 'shape' => 'InstanceEventId', 'locationName' => 'instanceEventId', ], 'Code' => [ 'shape' => 'EventCode', 'locationName' => 'code', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'NotAfter' => [ 'shape' => 'DateTime', 'locationName' => 'notAfter', ], 'NotBefore' => [ 'shape' => 'DateTime', 'locationName' => 'notBefore', ], 'NotBeforeDeadline' => [ 'shape' => 'DateTime', 'locationName' => 'notBeforeDeadline', ], ], ], 'InstanceStatusEventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceStatusEvent', 'locationName' => 'item', ], ], 'InstanceStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceStatus', 'locationName' => 'item', ], ], 'InstanceStatusSummary' => [ 'type' => 'structure', 'members' => [ 'Details' => [ 'shape' => 'InstanceStatusDetailsList', 'locationName' => 'details', ], 'Status' => [ 'shape' => 'SummaryStatus', 'locationName' => 'status', ], ], ], 'InstanceType' => [ 'type' => 'string', 'enum' => [ 't1.micro', 't2.nano', 't2.micro', 't2.small', 't2.medium', 't2.large', 't2.xlarge', 't2.2xlarge', 't3.nano', 't3.micro', 't3.small', 't3.medium', 't3.large', 't3.xlarge', 't3.2xlarge', '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', 'm4.16xlarge', 'm2.xlarge', 'm2.2xlarge', 'm2.4xlarge', 'cr1.8xlarge', 'r3.large', 'r3.xlarge', 'r3.2xlarge', 'r3.4xlarge', 'r3.8xlarge', 'r4.large', 'r4.xlarge', 'r4.2xlarge', 'r4.4xlarge', 'r4.8xlarge', 'r4.16xlarge', 'r5.large', 'r5.xlarge', 'r5.2xlarge', 'r5.4xlarge', 'r5.12xlarge', 'r5.24xlarge', 'r5.metal', 'r5a.large', 'r5a.xlarge', 'r5a.2xlarge', 'r5a.4xlarge', 'r5a.12xlarge', 'r5a.24xlarge', 'r5d.large', 'r5d.xlarge', 'r5d.2xlarge', 'r5d.4xlarge', 'r5d.12xlarge', 'r5d.24xlarge', 'r5d.metal', 'r5ad.large', 'r5ad.xlarge', 'r5ad.2xlarge', 'r5ad.4xlarge', 'r5ad.8xlarge', 'r5ad.12xlarge', 'r5ad.16xlarge', 'r5ad.24xlarge', 'x1.16xlarge', 'x1.32xlarge', 'x1e.xlarge', 'x1e.2xlarge', 'x1e.4xlarge', 'x1e.8xlarge', 'x1e.16xlarge', 'x1e.32xlarge', 'i2.xlarge', 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge', 'i3.large', 'i3.xlarge', 'i3.2xlarge', 'i3.4xlarge', 'i3.8xlarge', 'i3.16xlarge', 'i3.metal', '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', 'c5.large', 'c5.xlarge', 'c5.2xlarge', 'c5.4xlarge', 'c5.9xlarge', 'c5.18xlarge', 'c5d.large', 'c5d.xlarge', 'c5d.2xlarge', 'c5d.4xlarge', 'c5d.9xlarge', 'c5d.18xlarge', 'c5n.large', 'c5n.xlarge', 'c5n.2xlarge', 'c5n.4xlarge', 'c5n.9xlarge', 'c5n.18xlarge', 'cc1.4xlarge', 'cc2.8xlarge', 'g2.2xlarge', 'g2.8xlarge', 'g3.4xlarge', 'g3.8xlarge', 'g3.16xlarge', 'g3s.xlarge', 'cg1.4xlarge', 'p2.xlarge', 'p2.8xlarge', 'p2.16xlarge', 'p3.2xlarge', 'p3.8xlarge', 'p3.16xlarge', 'p3dn.24xlarge', 'd2.xlarge', 'd2.2xlarge', 'd2.4xlarge', 'd2.8xlarge', 'f1.2xlarge', 'f1.4xlarge', 'f1.16xlarge', 'm5.large', 'm5.xlarge', 'm5.2xlarge', 'm5.4xlarge', 'm5.12xlarge', 'm5.24xlarge', 'm5.metal', 'm5a.large', 'm5a.xlarge', 'm5a.2xlarge', 'm5a.4xlarge', 'm5a.12xlarge', 'm5a.24xlarge', 'm5d.large', 'm5d.xlarge', 'm5d.2xlarge', 'm5d.4xlarge', 'm5d.12xlarge', 'm5d.24xlarge', 'm5d.metal', 'm5ad.large', 'm5ad.xlarge', 'm5ad.2xlarge', 'm5ad.4xlarge', 'm5ad.8xlarge', 'm5ad.12xlarge', 'm5ad.16xlarge', 'm5ad.24xlarge', 'h1.2xlarge', 'h1.4xlarge', 'h1.8xlarge', 'h1.16xlarge', 'z1d.large', 'z1d.xlarge', 'z1d.2xlarge', 'z1d.3xlarge', 'z1d.6xlarge', 'z1d.12xlarge', 'z1d.metal', 'u-6tb1.metal', 'u-9tb1.metal', 'u-12tb1.metal', 'a1.medium', 'a1.large', 'a1.xlarge', 'a1.2xlarge', 'a1.4xlarge', ], ], 'InstanceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceType', ], ], 'Integer' => [ 'type' => 'integer', ], 'InterfacePermissionType' => [ 'type' => 'string', 'enum' => [ 'INSTANCE-ATTACH', 'EIP-ASSOCIATE', ], ], 'InternetGateway' => [ 'type' => 'structure', 'members' => [ 'Attachments' => [ 'shape' => 'InternetGatewayAttachmentList', 'locationName' => 'attachmentSet', ], 'InternetGatewayId' => [ 'shape' => 'String', 'locationName' => 'internetGatewayId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'InternetGatewayAttachment' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'AttachmentStatus', 'locationName' => 'state', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'InternetGatewayAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InternetGatewayAttachment', 'locationName' => 'item', ], ], 'InternetGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InternetGateway', 'locationName' => 'item', ], ], 'IpPermission' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'IpProtocol' => [ 'shape' => 'String', 'locationName' => 'ipProtocol', ], 'IpRanges' => [ 'shape' => 'IpRangeList', 'locationName' => 'ipRanges', ], 'Ipv6Ranges' => [ 'shape' => 'Ipv6RangeList', 'locationName' => 'ipv6Ranges', ], 'PrefixListIds' => [ 'shape' => 'PrefixListIdList', 'locationName' => 'prefixListIds', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], 'UserIdGroupPairs' => [ 'shape' => 'UserIdGroupPairList', 'locationName' => 'groups', ], ], ], 'IpPermissionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpPermission', 'locationName' => 'item', ], ], 'IpRange' => [ 'type' => 'structure', 'members' => [ 'CidrIp' => [ 'shape' => 'String', 'locationName' => 'cidrIp', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], ], ], 'IpRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpRange', 'locationName' => 'item', ], ], 'IpRanges' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'Ipv6Address' => [ 'type' => 'string', ], 'Ipv6AddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'Ipv6CidrBlock' => [ 'type' => 'structure', 'members' => [ 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], ], ], 'Ipv6CidrBlockSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv6CidrBlock', 'locationName' => 'item', ], ], 'Ipv6Range' => [ 'type' => 'structure', 'members' => [ 'CidrIpv6' => [ 'shape' => 'String', 'locationName' => 'cidrIpv6', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], ], ], 'Ipv6RangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv6Range', 'locationName' => 'item', ], ], 'Ipv6SupportValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'KeyNameStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'KeyName', ], ], 'KeyPair' => [ 'type' => 'structure', 'members' => [ 'KeyFingerprint' => [ 'shape' => 'String', 'locationName' => 'keyFingerprint', ], 'KeyMaterial' => [ 'shape' => 'String', 'locationName' => 'keyMaterial', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], ], ], 'KeyPairInfo' => [ 'type' => 'structure', 'members' => [ 'KeyFingerprint' => [ 'shape' => 'String', 'locationName' => 'keyFingerprint', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], ], ], 'KeyPairList' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyPairInfo', 'locationName' => 'item', ], ], 'LaunchPermission' => [ 'type' => 'structure', 'members' => [ 'Group' => [ 'shape' => 'PermissionGroup', 'locationName' => 'group', ], 'UserId' => [ 'shape' => 'String', 'locationName' => 'userId', ], ], ], 'LaunchPermissionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchPermission', 'locationName' => 'item', ], ], 'LaunchPermissionModifications' => [ 'type' => 'structure', 'members' => [ 'Add' => [ 'shape' => 'LaunchPermissionList', ], 'Remove' => [ 'shape' => 'LaunchPermissionList', ], ], ], 'LaunchSpecification' => [ 'type' => 'structure', 'members' => [ 'UserData' => [ 'shape' => 'String', 'locationName' => 'userData', ], 'SecurityGroups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'AddressingType' => [ 'shape' => 'String', 'locationName' => 'addressingType', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', 'locationName' => 'iamInstanceProfile', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'KernelId' => [ 'shape' => 'String', 'locationName' => 'kernelId', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], 'NetworkInterfaces' => [ 'shape' => 'InstanceNetworkInterfaceSpecificationList', 'locationName' => 'networkInterfaceSet', ], 'Placement' => [ 'shape' => 'SpotPlacement', 'locationName' => 'placement', ], 'RamdiskId' => [ 'shape' => 'String', 'locationName' => 'ramdiskId', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'Monitoring' => [ 'shape' => 'RunInstancesMonitoringEnabled', 'locationName' => 'monitoring', ], ], ], 'LaunchSpecsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpotFleetLaunchSpecification', 'locationName' => 'item', ], ], 'LaunchTemplate' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'String', 'locationName' => 'launchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', 'locationName' => 'launchTemplateName', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'CreatedBy' => [ 'shape' => 'String', 'locationName' => 'createdBy', ], 'DefaultVersionNumber' => [ 'shape' => 'Long', 'locationName' => 'defaultVersionNumber', ], 'LatestVersionNumber' => [ 'shape' => 'Long', 'locationName' => 'latestVersionNumber', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'LaunchTemplateAndOverridesResponse' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateSpecification' => [ 'shape' => 'FleetLaunchTemplateSpecification', 'locationName' => 'launchTemplateSpecification', ], 'Overrides' => [ 'shape' => 'FleetLaunchTemplateOverrides', 'locationName' => 'overrides', ], ], ], 'LaunchTemplateBlockDeviceMapping' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', 'locationName' => 'deviceName', ], 'VirtualName' => [ 'shape' => 'String', 'locationName' => 'virtualName', ], 'Ebs' => [ 'shape' => 'LaunchTemplateEbsBlockDevice', 'locationName' => 'ebs', ], 'NoDevice' => [ 'shape' => 'String', 'locationName' => 'noDevice', ], ], ], 'LaunchTemplateBlockDeviceMappingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateBlockDeviceMapping', 'locationName' => 'item', ], ], 'LaunchTemplateBlockDeviceMappingRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', ], 'VirtualName' => [ 'shape' => 'String', ], 'Ebs' => [ 'shape' => 'LaunchTemplateEbsBlockDeviceRequest', ], 'NoDevice' => [ 'shape' => 'String', ], ], ], 'LaunchTemplateBlockDeviceMappingRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateBlockDeviceMappingRequest', 'locationName' => 'BlockDeviceMapping', ], ], 'LaunchTemplateCapacityReservationSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationPreference' => [ 'shape' => 'CapacityReservationPreference', ], 'CapacityReservationTarget' => [ 'shape' => 'CapacityReservationTarget', ], ], ], 'LaunchTemplateCapacityReservationSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationPreference' => [ 'shape' => 'CapacityReservationPreference', 'locationName' => 'capacityReservationPreference', ], 'CapacityReservationTarget' => [ 'shape' => 'CapacityReservationTargetResponse', 'locationName' => 'capacityReservationTarget', ], ], ], 'LaunchTemplateConfig' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateSpecification' => [ 'shape' => 'FleetLaunchTemplateSpecification', 'locationName' => 'launchTemplateSpecification', ], 'Overrides' => [ 'shape' => 'LaunchTemplateOverridesList', 'locationName' => 'overrides', ], ], ], 'LaunchTemplateConfigList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateConfig', 'locationName' => 'item', ], ], 'LaunchTemplateCpuOptions' => [ 'type' => 'structure', 'members' => [ 'CoreCount' => [ 'shape' => 'Integer', 'locationName' => 'coreCount', ], 'ThreadsPerCore' => [ 'shape' => 'Integer', 'locationName' => 'threadsPerCore', ], ], ], 'LaunchTemplateCpuOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'CoreCount' => [ 'shape' => 'Integer', ], 'ThreadsPerCore' => [ 'shape' => 'Integer', ], ], ], 'LaunchTemplateEbsBlockDevice' => [ 'type' => 'structure', 'members' => [ 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'Iops' => [ 'shape' => 'Integer', 'locationName' => 'iops', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'VolumeSize' => [ 'shape' => 'Integer', 'locationName' => 'volumeSize', ], 'VolumeType' => [ 'shape' => 'VolumeType', 'locationName' => 'volumeType', ], ], ], 'LaunchTemplateEbsBlockDeviceRequest' => [ 'type' => 'structure', 'members' => [ 'Encrypted' => [ 'shape' => 'Boolean', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'Iops' => [ 'shape' => 'Integer', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'SnapshotId' => [ 'shape' => 'String', ], 'VolumeSize' => [ 'shape' => 'Integer', ], 'VolumeType' => [ 'shape' => 'VolumeType', ], ], ], 'LaunchTemplateElasticInferenceAccelerator' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'String', ], ], ], 'LaunchTemplateElasticInferenceAcceleratorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateElasticInferenceAccelerator', 'locationName' => 'item', ], ], 'LaunchTemplateElasticInferenceAcceleratorResponse' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', 'locationName' => 'type', ], ], ], 'LaunchTemplateElasticInferenceAcceleratorResponseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateElasticInferenceAcceleratorResponse', 'locationName' => 'item', ], ], 'LaunchTemplateErrorCode' => [ 'type' => 'string', 'enum' => [ 'launchTemplateIdDoesNotExist', 'launchTemplateIdMalformed', 'launchTemplateNameDoesNotExist', 'launchTemplateNameMalformed', 'launchTemplateVersionDoesNotExist', 'unexpectedError', ], ], 'LaunchTemplateHibernationOptions' => [ 'type' => 'structure', 'members' => [ 'Configured' => [ 'shape' => 'Boolean', 'locationName' => 'configured', ], ], ], 'LaunchTemplateHibernationOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'Configured' => [ 'shape' => 'Boolean', ], ], ], 'LaunchTemplateIamInstanceProfileSpecification' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', 'locationName' => 'arn', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], ], ], 'LaunchTemplateIamInstanceProfileSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], ], ], 'LaunchTemplateInstanceMarketOptions' => [ 'type' => 'structure', 'members' => [ 'MarketType' => [ 'shape' => 'MarketType', 'locationName' => 'marketType', ], 'SpotOptions' => [ 'shape' => 'LaunchTemplateSpotMarketOptions', 'locationName' => 'spotOptions', ], ], ], 'LaunchTemplateInstanceMarketOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'MarketType' => [ 'shape' => 'MarketType', ], 'SpotOptions' => [ 'shape' => 'LaunchTemplateSpotMarketOptionsRequest', ], ], ], 'LaunchTemplateInstanceNetworkInterfaceSpecification' => [ 'type' => 'structure', 'members' => [ 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', 'locationName' => 'associatePublicIpAddress', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], 'Groups' => [ 'shape' => 'GroupIdStringList', 'locationName' => 'groupSet', ], 'Ipv6AddressCount' => [ 'shape' => 'Integer', 'locationName' => 'ipv6AddressCount', ], 'Ipv6Addresses' => [ 'shape' => 'InstanceIpv6AddressList', 'locationName' => 'ipv6AddressesSet', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'PrivateIpAddresses' => [ 'shape' => 'PrivateIpAddressSpecificationList', 'locationName' => 'privateIpAddressesSet', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'secondaryPrivateIpAddressCount', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], ], ], 'LaunchTemplateInstanceNetworkInterfaceSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateInstanceNetworkInterfaceSpecification', 'locationName' => 'item', ], ], 'LaunchTemplateInstanceNetworkInterfaceSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'Description' => [ 'shape' => 'String', ], 'DeviceIndex' => [ 'shape' => 'Integer', ], 'Groups' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'SecurityGroupId', ], 'Ipv6AddressCount' => [ 'shape' => 'Integer', ], 'Ipv6Addresses' => [ 'shape' => 'InstanceIpv6AddressListRequest', ], 'NetworkInterfaceId' => [ 'shape' => 'String', ], 'PrivateIpAddress' => [ 'shape' => 'String', ], 'PrivateIpAddresses' => [ 'shape' => 'PrivateIpAddressSpecificationList', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', ], 'SubnetId' => [ 'shape' => 'String', ], ], ], 'LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateInstanceNetworkInterfaceSpecificationRequest', 'locationName' => 'InstanceNetworkInterfaceSpecification', ], ], 'LaunchTemplateLicenseConfiguration' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', 'locationName' => 'licenseConfigurationArn', ], ], ], 'LaunchTemplateLicenseConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', ], ], ], 'LaunchTemplateLicenseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateLicenseConfiguration', 'locationName' => 'item', ], ], 'LaunchTemplateLicenseSpecificationListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateLicenseConfigurationRequest', 'locationName' => 'item', ], ], 'LaunchTemplateName' => [ 'type' => 'string', 'max' => 128, 'min' => 3, 'pattern' => '[a-zA-Z0-9\\(\\)\\.\\-/_]+', ], 'LaunchTemplateNameStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateName', 'locationName' => 'item', ], ], 'LaunchTemplateOverrides' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'WeightedCapacity' => [ 'shape' => 'Double', 'locationName' => 'weightedCapacity', ], 'Priority' => [ 'shape' => 'Double', 'locationName' => 'priority', ], ], ], 'LaunchTemplateOverridesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateOverrides', 'locationName' => 'item', ], ], 'LaunchTemplatePlacement' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Affinity' => [ 'shape' => 'String', 'locationName' => 'affinity', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'HostId' => [ 'shape' => 'String', 'locationName' => 'hostId', ], 'Tenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'tenancy', ], 'SpreadDomain' => [ 'shape' => 'String', 'locationName' => 'spreadDomain', ], ], ], 'LaunchTemplatePlacementRequest' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', ], 'Affinity' => [ 'shape' => 'String', ], 'GroupName' => [ 'shape' => 'String', ], 'HostId' => [ 'shape' => 'String', ], 'Tenancy' => [ 'shape' => 'Tenancy', ], 'SpreadDomain' => [ 'shape' => 'String', ], ], ], 'LaunchTemplateSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplate', 'locationName' => 'item', ], ], 'LaunchTemplateSpecification' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'String', ], 'LaunchTemplateName' => [ 'shape' => 'String', ], 'Version' => [ 'shape' => 'String', ], ], ], 'LaunchTemplateSpotMarketOptions' => [ 'type' => 'structure', 'members' => [ 'MaxPrice' => [ 'shape' => 'String', 'locationName' => 'maxPrice', ], 'SpotInstanceType' => [ 'shape' => 'SpotInstanceType', 'locationName' => 'spotInstanceType', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', 'locationName' => 'blockDurationMinutes', ], 'ValidUntil' => [ 'shape' => 'DateTime', 'locationName' => 'validUntil', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'InstanceInterruptionBehavior', 'locationName' => 'instanceInterruptionBehavior', ], ], ], 'LaunchTemplateSpotMarketOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxPrice' => [ 'shape' => 'String', ], 'SpotInstanceType' => [ 'shape' => 'SpotInstanceType', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', ], 'ValidUntil' => [ 'shape' => 'DateTime', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'InstanceInterruptionBehavior', ], ], ], 'LaunchTemplateTagSpecification' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ResourceType', 'locationName' => 'resourceType', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'LaunchTemplateTagSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateTagSpecification', 'locationName' => 'item', ], ], 'LaunchTemplateTagSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ResourceType', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'Tag', ], ], ], 'LaunchTemplateTagSpecificationRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateTagSpecificationRequest', 'locationName' => 'LaunchTemplateTagSpecificationRequest', ], ], 'LaunchTemplateVersion' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'String', 'locationName' => 'launchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', 'locationName' => 'launchTemplateName', ], 'VersionNumber' => [ 'shape' => 'Long', 'locationName' => 'versionNumber', ], 'VersionDescription' => [ 'shape' => 'VersionDescription', 'locationName' => 'versionDescription', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'CreatedBy' => [ 'shape' => 'String', 'locationName' => 'createdBy', ], 'DefaultVersion' => [ 'shape' => 'Boolean', 'locationName' => 'defaultVersion', ], 'LaunchTemplateData' => [ 'shape' => 'ResponseLaunchTemplateData', 'locationName' => 'launchTemplateData', ], ], ], 'LaunchTemplateVersionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateVersion', 'locationName' => 'item', ], ], 'LaunchTemplatesMonitoring' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], ], ], 'LaunchTemplatesMonitoringRequest' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], ], ], 'LicenseConfiguration' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', 'locationName' => 'licenseConfigurationArn', ], ], ], 'LicenseConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', ], ], ], 'LicenseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LicenseConfiguration', 'locationName' => 'item', ], ], 'LicenseSpecificationListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'LicenseConfigurationRequest', 'locationName' => 'item', ], ], 'ListingState' => [ 'type' => 'string', 'enum' => [ 'available', 'sold', 'cancelled', 'pending', ], ], 'ListingStatus' => [ 'type' => 'string', 'enum' => [ 'active', 'pending', 'cancelled', 'closed', ], ], 'LoadBalancersConfig' => [ 'type' => 'structure', 'members' => [ 'ClassicLoadBalancersConfig' => [ 'shape' => 'ClassicLoadBalancersConfig', 'locationName' => 'classicLoadBalancersConfig', ], 'TargetGroupsConfig' => [ 'shape' => 'TargetGroupsConfig', 'locationName' => 'targetGroupsConfig', ], ], ], 'LoadPermission' => [ 'type' => 'structure', 'members' => [ 'UserId' => [ 'shape' => 'String', 'locationName' => 'userId', ], 'Group' => [ 'shape' => 'PermissionGroup', 'locationName' => 'group', ], ], ], 'LoadPermissionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadPermission', 'locationName' => 'item', ], ], 'LoadPermissionListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadPermissionRequest', 'locationName' => 'item', ], ], 'LoadPermissionModifications' => [ 'type' => 'structure', 'members' => [ 'Add' => [ 'shape' => 'LoadPermissionListRequest', ], 'Remove' => [ 'shape' => 'LoadPermissionListRequest', ], ], ], 'LoadPermissionRequest' => [ 'type' => 'structure', 'members' => [ 'Group' => [ 'shape' => 'PermissionGroup', ], 'UserId' => [ 'shape' => 'String', ], ], ], 'LogDestinationType' => [ 'type' => 'string', 'enum' => [ 'cloud-watch-logs', 's3', ], ], 'Long' => [ 'type' => 'long', ], 'MarketType' => [ 'type' => 'string', 'enum' => [ 'spot', ], ], 'MaxResults' => [ 'type' => 'integer', 'max' => 255, 'min' => 5, ], 'ModifyCapacityReservationRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', ], 'members' => [ 'CapacityReservationId' => [ 'shape' => 'String', ], 'InstanceCount' => [ 'shape' => 'Integer', ], 'EndDate' => [ 'shape' => 'DateTime', ], 'EndDateType' => [ 'shape' => 'EndDateType', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyCapacityReservationResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyClientVpnEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', ], 'ServerCertificateArn' => [ 'shape' => 'String', ], 'ConnectionLogOptions' => [ 'shape' => 'ConnectionLogOptions', ], 'DnsServers' => [ 'shape' => 'DnsServersOptionsModifyStructure', ], 'Description' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyClientVpnEndpointResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyFleetRequest' => [ 'type' => 'structure', 'required' => [ 'FleetId', 'TargetCapacitySpecification', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'FleetExcessCapacityTerminationPolicy', ], 'FleetId' => [ 'shape' => 'FleetIdentifier', ], 'TargetCapacitySpecification' => [ 'shape' => 'TargetCapacitySpecificationRequest', ], ], ], 'ModifyFleetResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyFpgaImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'FpgaImageId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FpgaImageId' => [ 'shape' => 'String', ], 'Attribute' => [ 'shape' => 'FpgaImageAttributeName', ], 'OperationType' => [ 'shape' => 'OperationType', ], 'UserIds' => [ 'shape' => 'UserIdStringList', 'locationName' => 'UserId', ], 'UserGroups' => [ 'shape' => 'UserGroupStringList', 'locationName' => 'UserGroup', ], 'ProductCodes' => [ 'shape' => 'ProductCodeStringList', 'locationName' => 'ProductCode', ], 'LoadPermission' => [ 'shape' => 'LoadPermissionModifications', ], 'Description' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], ], ], 'ModifyFpgaImageAttributeResult' => [ 'type' => 'structure', 'members' => [ 'FpgaImageAttribute' => [ 'shape' => 'FpgaImageAttribute', 'locationName' => 'fpgaImageAttribute', ], ], ], 'ModifyHostsRequest' => [ 'type' => 'structure', 'required' => [ 'AutoPlacement', 'HostIds', ], 'members' => [ 'AutoPlacement' => [ 'shape' => 'AutoPlacement', 'locationName' => 'autoPlacement', ], 'HostIds' => [ 'shape' => 'RequestHostIdList', 'locationName' => 'hostId', ], ], ], 'ModifyHostsResult' => [ 'type' => 'structure', 'members' => [ 'Successful' => [ 'shape' => 'ResponseHostIdList', 'locationName' => 'successful', ], 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemList', 'locationName' => 'unsuccessful', ], ], ], 'ModifyIdFormatRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'UseLongIds', ], 'members' => [ 'Resource' => [ 'shape' => 'String', ], 'UseLongIds' => [ 'shape' => 'Boolean', ], ], ], 'ModifyIdentityIdFormatRequest' => [ 'type' => 'structure', 'required' => [ 'PrincipalArn', 'Resource', 'UseLongIds', ], 'members' => [ 'PrincipalArn' => [ 'shape' => 'String', 'locationName' => 'principalArn', ], 'Resource' => [ 'shape' => 'String', 'locationName' => 'resource', ], 'UseLongIds' => [ 'shape' => 'Boolean', 'locationName' => 'useLongIds', ], ], ], 'ModifyImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'Attribute' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'AttributeValue', ], 'ImageId' => [ 'shape' => 'String', ], 'LaunchPermission' => [ 'shape' => 'LaunchPermissionModifications', ], 'OperationType' => [ 'shape' => 'OperationType', ], 'ProductCodes' => [ 'shape' => 'ProductCodeStringList', 'locationName' => 'ProductCode', ], 'UserGroups' => [ 'shape' => 'UserGroupStringList', 'locationName' => 'UserGroup', ], 'UserIds' => [ 'shape' => 'UserIdStringList', 'locationName' => 'UserId', ], 'Value' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ModifyInstanceAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'SourceDestCheck' => [ 'shape' => 'AttributeBooleanValue', ], 'Attribute' => [ 'shape' => 'InstanceAttributeName', 'locationName' => 'attribute', ], 'BlockDeviceMappings' => [ 'shape' => 'InstanceBlockDeviceMappingSpecificationList', 'locationName' => 'blockDeviceMapping', ], 'DisableApiTermination' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'disableApiTermination', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'EbsOptimized' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'ebsOptimized', ], 'EnaSupport' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'enaSupport', ], 'Groups' => [ 'shape' => 'GroupIdStringList', 'locationName' => 'GroupId', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceInitiatedShutdownBehavior' => [ 'shape' => 'AttributeValue', 'locationName' => 'instanceInitiatedShutdownBehavior', ], 'InstanceType' => [ 'shape' => 'AttributeValue', 'locationName' => 'instanceType', ], 'Kernel' => [ 'shape' => 'AttributeValue', 'locationName' => 'kernel', ], 'Ramdisk' => [ 'shape' => 'AttributeValue', 'locationName' => 'ramdisk', ], 'SriovNetSupport' => [ 'shape' => 'AttributeValue', 'locationName' => 'sriovNetSupport', ], 'UserData' => [ 'shape' => 'BlobAttributeValue', 'locationName' => 'userData', ], 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'ModifyInstanceCapacityReservationAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'CapacityReservationSpecification', ], 'members' => [ 'InstanceId' => [ 'shape' => 'String', ], 'CapacityReservationSpecification' => [ 'shape' => 'CapacityReservationSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyInstanceCapacityReservationAttributesResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyInstanceCreditSpecificationRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceCreditSpecifications', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', ], 'InstanceCreditSpecifications' => [ 'shape' => 'InstanceCreditSpecificationListRequest', 'locationName' => 'InstanceCreditSpecification', ], ], ], 'ModifyInstanceCreditSpecificationResult' => [ 'type' => 'structure', 'members' => [ 'SuccessfulInstanceCreditSpecifications' => [ 'shape' => 'SuccessfulInstanceCreditSpecificationSet', 'locationName' => 'successfulInstanceCreditSpecificationSet', ], 'UnsuccessfulInstanceCreditSpecifications' => [ 'shape' => 'UnsuccessfulInstanceCreditSpecificationSet', 'locationName' => 'unsuccessfulInstanceCreditSpecificationSet', ], ], ], 'ModifyInstanceEventStartTimeRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'InstanceEventId', 'NotBefore', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'String', ], 'InstanceEventId' => [ 'shape' => 'String', ], 'NotBefore' => [ 'shape' => 'DateTime', ], ], ], 'ModifyInstanceEventStartTimeResult' => [ 'type' => 'structure', 'members' => [ 'Event' => [ 'shape' => 'InstanceStatusEvent', 'locationName' => 'event', ], ], ], 'ModifyInstancePlacementRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'Affinity' => [ 'shape' => 'Affinity', 'locationName' => 'affinity', ], 'GroupName' => [ 'shape' => 'String', ], 'HostId' => [ 'shape' => 'String', 'locationName' => 'hostId', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Tenancy' => [ 'shape' => 'HostTenancy', 'locationName' => 'tenancy', ], 'PartitionNumber' => [ 'shape' => 'Integer', ], ], ], 'ModifyInstancePlacementResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyLaunchTemplateRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', ], 'LaunchTemplateId' => [ 'shape' => 'String', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', ], 'DefaultVersion' => [ 'shape' => 'String', 'locationName' => 'SetDefaultVersion', ], ], ], 'ModifyLaunchTemplateResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplate' => [ 'shape' => 'LaunchTemplate', 'locationName' => 'launchTemplate', ], ], ], 'ModifyNetworkInterfaceAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', ], 'members' => [ 'Attachment' => [ 'shape' => 'NetworkInterfaceAttachmentChanges', 'locationName' => 'attachment', ], 'Description' => [ 'shape' => 'AttributeValue', 'locationName' => 'description', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Groups' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'SecurityGroupId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'SourceDestCheck' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'sourceDestCheck', ], ], ], 'ModifyReservedInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'ReservedInstancesIds', 'TargetConfigurations', ], 'members' => [ 'ReservedInstancesIds' => [ 'shape' => 'ReservedInstancesIdStringList', 'locationName' => 'ReservedInstancesId', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'TargetConfigurations' => [ 'shape' => 'ReservedInstancesConfigurationList', 'locationName' => 'ReservedInstancesConfigurationSetItemType', ], ], ], 'ModifyReservedInstancesResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesModificationId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesModificationId', ], ], ], 'ModifySnapshotAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'SnapshotId', ], 'members' => [ 'Attribute' => [ 'shape' => 'SnapshotAttributeName', ], 'CreateVolumePermission' => [ 'shape' => 'CreateVolumePermissionModifications', ], 'GroupNames' => [ 'shape' => 'GroupNameStringList', 'locationName' => 'UserGroup', ], 'OperationType' => [ 'shape' => 'OperationType', ], 'SnapshotId' => [ 'shape' => 'String', ], 'UserIds' => [ 'shape' => 'UserIdStringList', 'locationName' => 'UserId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ModifySpotFleetRequestRequest' => [ 'type' => 'structure', 'required' => [ 'SpotFleetRequestId', ], 'members' => [ 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'ExcessCapacityTerminationPolicy', 'locationName' => 'excessCapacityTerminationPolicy', ], 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], 'TargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'targetCapacity', ], ], ], 'ModifySpotFleetRequestResponse' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifySubnetAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', ], 'members' => [ 'AssignIpv6AddressOnCreation' => [ 'shape' => 'AttributeBooleanValue', ], 'MapPublicIpOnLaunch' => [ 'shape' => 'AttributeBooleanValue', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], ], ], 'ModifyTransitGatewayVpcAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', ], 'AddSubnetIds' => [ 'shape' => 'ValueStringList', ], 'RemoveSubnetIds' => [ 'shape' => 'ValueStringList', ], 'Options' => [ 'shape' => 'ModifyTransitGatewayVpcAttachmentRequestOptions', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyTransitGatewayVpcAttachmentRequestOptions' => [ 'type' => 'structure', 'members' => [ 'DnsSupport' => [ 'shape' => 'DnsSupportValue', ], 'Ipv6Support' => [ 'shape' => 'Ipv6SupportValue', ], ], ], 'ModifyTransitGatewayVpcAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayVpcAttachment' => [ 'shape' => 'TransitGatewayVpcAttachment', 'locationName' => 'transitGatewayVpcAttachment', ], ], ], 'ModifyVolumeAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'VolumeId', ], 'members' => [ 'AutoEnableIO' => [ 'shape' => 'AttributeBooleanValue', ], 'VolumeId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ModifyVolumeRequest' => [ 'type' => 'structure', 'required' => [ 'VolumeId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VolumeId' => [ 'shape' => 'String', ], 'Size' => [ 'shape' => 'Integer', ], 'VolumeType' => [ 'shape' => 'VolumeType', ], 'Iops' => [ 'shape' => 'Integer', ], ], ], 'ModifyVolumeResult' => [ 'type' => 'structure', 'members' => [ 'VolumeModification' => [ 'shape' => 'VolumeModification', 'locationName' => 'volumeModification', ], ], ], 'ModifyVpcAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'EnableDnsHostnames' => [ 'shape' => 'AttributeBooleanValue', ], 'EnableDnsSupport' => [ 'shape' => 'AttributeBooleanValue', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'ModifyVpcEndpointConnectionNotificationRequest' => [ 'type' => 'structure', 'required' => [ 'ConnectionNotificationId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ConnectionNotificationId' => [ 'shape' => 'String', ], 'ConnectionNotificationArn' => [ 'shape' => 'String', ], 'ConnectionEvents' => [ 'shape' => 'ValueStringList', ], ], ], 'ModifyVpcEndpointConnectionNotificationResult' => [ 'type' => 'structure', 'members' => [ 'ReturnValue' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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', ], 'AddSubnetIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'AddSubnetId', ], 'RemoveSubnetIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'RemoveSubnetId', ], 'AddSecurityGroupIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'AddSecurityGroupId', ], 'RemoveSecurityGroupIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'RemoveSecurityGroupId', ], 'PrivateDnsEnabled' => [ 'shape' => 'Boolean', ], ], ], 'ModifyVpcEndpointResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyVpcEndpointServiceConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'String', ], 'AcceptanceRequired' => [ 'shape' => 'Boolean', ], 'AddNetworkLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'AddNetworkLoadBalancerArn', ], 'RemoveNetworkLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'RemoveNetworkLoadBalancerArn', ], ], ], 'ModifyVpcEndpointServiceConfigurationResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyVpcEndpointServicePermissionsRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'String', ], 'AddAllowedPrincipals' => [ 'shape' => 'ValueStringList', ], 'RemoveAllowedPrincipals' => [ 'shape' => 'ValueStringList', ], ], ], 'ModifyVpcEndpointServicePermissionsResult' => [ 'type' => 'structure', 'members' => [ 'ReturnValue' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyVpcPeeringConnectionOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'VpcPeeringConnectionId', ], 'members' => [ 'AccepterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptionsRequest', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'RequesterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptionsRequest', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', ], ], ], 'ModifyVpcPeeringConnectionOptionsResult' => [ 'type' => 'structure', 'members' => [ 'AccepterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptions', 'locationName' => 'accepterPeeringConnectionOptions', ], 'RequesterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptions', 'locationName' => 'requesterPeeringConnectionOptions', ], ], ], 'ModifyVpcTenancyRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', 'InstanceTenancy', ], 'members' => [ 'VpcId' => [ 'shape' => 'String', ], 'InstanceTenancy' => [ 'shape' => 'VpcTenancy', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyVpcTenancyResult' => [ 'type' => 'structure', 'members' => [ 'ReturnValue' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'MonitorInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], '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' => [ 'MoveStatus' => [ 'shape' => 'MoveStatus', 'locationName' => 'moveStatus', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], ], ], 'MovingAddressStatusSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'MovingAddressStatus', 'locationName' => 'item', ], ], 'NatGateway' => [ 'type' => 'structure', 'members' => [ 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'DeleteTime' => [ 'shape' => 'DateTime', 'locationName' => 'deleteTime', ], 'FailureCode' => [ 'shape' => 'String', 'locationName' => 'failureCode', ], 'FailureMessage' => [ 'shape' => 'String', 'locationName' => 'failureMessage', ], 'NatGatewayAddresses' => [ 'shape' => 'NatGatewayAddressList', 'locationName' => 'natGatewayAddressSet', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], 'ProvisionedBandwidth' => [ 'shape' => 'ProvisionedBandwidth', 'locationName' => 'provisionedBandwidth', ], 'State' => [ 'shape' => 'NatGatewayState', 'locationName' => 'state', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'NatGatewayAddress' => [ 'type' => 'structure', 'members' => [ 'AllocationId' => [ 'shape' => 'String', 'locationName' => 'allocationId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'PrivateIp' => [ 'shape' => 'String', 'locationName' => 'privateIp', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], ], ], 'NatGatewayAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NatGatewayAddress', 'locationName' => 'item', ], ], 'NatGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NatGateway', 'locationName' => 'item', ], ], 'NatGatewayState' => [ 'type' => 'string', 'enum' => [ 'pending', 'failed', 'available', 'deleting', 'deleted', ], ], 'NetworkAcl' => [ 'type' => 'structure', 'members' => [ 'Associations' => [ 'shape' => 'NetworkAclAssociationList', 'locationName' => 'associationSet', ], 'Entries' => [ 'shape' => 'NetworkAclEntryList', 'locationName' => 'entrySet', ], 'IsDefault' => [ 'shape' => 'Boolean', 'locationName' => 'default', ], 'NetworkAclId' => [ 'shape' => 'String', 'locationName' => 'networkAclId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], ], ], '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' => [ 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'Egress' => [ 'shape' => 'Boolean', 'locationName' => 'egress', ], 'IcmpTypeCode' => [ 'shape' => 'IcmpTypeCode', 'locationName' => 'icmpTypeCode', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], 'PortRange' => [ 'shape' => 'PortRange', 'locationName' => 'portRange', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], 'RuleAction' => [ 'shape' => 'RuleAction', 'locationName' => 'ruleAction', ], 'RuleNumber' => [ 'shape' => 'Integer', 'locationName' => 'ruleNumber', ], ], ], 'NetworkAclEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkAclEntry', 'locationName' => 'item', ], ], 'NetworkAclList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkAcl', 'locationName' => 'item', ], ], 'NetworkInterface' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'NetworkInterfaceAssociation', 'locationName' => 'association', ], 'Attachment' => [ 'shape' => 'NetworkInterfaceAttachment', 'locationName' => 'attachment', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Groups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'InterfaceType' => [ 'shape' => 'NetworkInterfaceType', 'locationName' => 'interfaceType', ], 'Ipv6Addresses' => [ 'shape' => 'NetworkInterfaceIpv6AddressesList', 'locationName' => 'ipv6AddressesSet', ], 'MacAddress' => [ 'shape' => 'String', 'locationName' => 'macAddress', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'PrivateIpAddresses' => [ 'shape' => 'NetworkInterfacePrivateIpAddressList', 'locationName' => 'privateIpAddressesSet', ], 'RequesterId' => [ 'shape' => 'String', 'locationName' => 'requesterId', ], 'RequesterManaged' => [ 'shape' => 'Boolean', 'locationName' => 'requesterManaged', ], 'SourceDestCheck' => [ 'shape' => 'Boolean', 'locationName' => 'sourceDestCheck', ], 'Status' => [ 'shape' => 'NetworkInterfaceStatus', 'locationName' => 'status', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'TagSet' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'NetworkInterfaceAssociation' => [ 'type' => 'structure', 'members' => [ 'AllocationId' => [ 'shape' => 'String', 'locationName' => 'allocationId', ], 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'IpOwnerId' => [ 'shape' => 'String', 'locationName' => 'ipOwnerId', ], 'PublicDnsName' => [ 'shape' => 'String', 'locationName' => 'publicDnsName', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], ], ], 'NetworkInterfaceAttachment' => [ 'type' => 'structure', 'members' => [ 'AttachTime' => [ 'shape' => 'DateTime', 'locationName' => 'attachTime', ], 'AttachmentId' => [ 'shape' => 'String', 'locationName' => 'attachmentId', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceOwnerId' => [ 'shape' => 'String', 'locationName' => 'instanceOwnerId', ], 'Status' => [ 'shape' => 'AttachmentStatus', 'locationName' => 'status', ], ], ], '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', ], ], 'NetworkInterfaceIpv6Address' => [ 'type' => 'structure', 'members' => [ 'Ipv6Address' => [ 'shape' => 'String', 'locationName' => 'ipv6Address', ], ], ], 'NetworkInterfaceIpv6AddressesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterfaceIpv6Address', 'locationName' => 'item', ], ], 'NetworkInterfaceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterface', 'locationName' => 'item', ], ], 'NetworkInterfacePermission' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfacePermissionId' => [ 'shape' => 'String', 'locationName' => 'networkInterfacePermissionId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'AwsAccountId' => [ 'shape' => 'String', 'locationName' => 'awsAccountId', ], 'AwsService' => [ 'shape' => 'String', 'locationName' => 'awsService', ], 'Permission' => [ 'shape' => 'InterfacePermissionType', 'locationName' => 'permission', ], 'PermissionState' => [ 'shape' => 'NetworkInterfacePermissionState', 'locationName' => 'permissionState', ], ], ], 'NetworkInterfacePermissionIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'NetworkInterfacePermissionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterfacePermission', 'locationName' => 'item', ], ], 'NetworkInterfacePermissionState' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'NetworkInterfacePermissionStateCode', 'locationName' => 'state', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], ], ], 'NetworkInterfacePermissionStateCode' => [ 'type' => 'string', 'enum' => [ 'pending', 'granted', 'revoking', 'revoked', ], ], 'NetworkInterfacePrivateIpAddress' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'NetworkInterfaceAssociation', 'locationName' => 'association', ], 'Primary' => [ 'shape' => 'Boolean', 'locationName' => 'primary', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], ], ], 'NetworkInterfacePrivateIpAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterfacePrivateIpAddress', 'locationName' => 'item', ], ], 'NetworkInterfaceStatus' => [ 'type' => 'string', 'enum' => [ 'available', 'associated', 'attaching', 'in-use', 'detaching', ], ], 'NetworkInterfaceType' => [ 'type' => 'string', 'enum' => [ 'interface', 'natGateway', ], ], 'NewDhcpConfiguration' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', 'locationName' => 'key', ], 'Values' => [ 'shape' => 'ValueStringList', 'locationName' => 'Value', ], ], ], 'NewDhcpConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NewDhcpConfiguration', 'locationName' => 'item', ], ], 'NextToken' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'OccurrenceDayRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Integer', 'locationName' => 'OccurenceDay', ], ], 'OccurrenceDaySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Integer', 'locationName' => 'item', ], ], 'OfferingClassType' => [ 'type' => 'string', 'enum' => [ 'standard', 'convertible', ], ], 'OfferingTypeValues' => [ 'type' => 'string', 'enum' => [ 'Heavy Utilization', 'Medium Utilization', 'Light Utilization', 'No Upfront', 'Partial Upfront', 'All Upfront', ], ], 'OnDemandAllocationStrategy' => [ 'type' => 'string', 'enum' => [ 'lowestPrice', 'prioritized', ], ], 'OnDemandOptions' => [ 'type' => 'structure', 'members' => [ 'AllocationStrategy' => [ 'shape' => 'FleetOnDemandAllocationStrategy', 'locationName' => 'allocationStrategy', ], 'SingleInstanceType' => [ 'shape' => 'Boolean', 'locationName' => 'singleInstanceType', ], 'SingleAvailabilityZone' => [ 'shape' => 'Boolean', 'locationName' => 'singleAvailabilityZone', ], 'MinTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'minTargetCapacity', ], ], ], 'OnDemandOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'AllocationStrategy' => [ 'shape' => 'FleetOnDemandAllocationStrategy', ], 'SingleInstanceType' => [ 'shape' => 'Boolean', ], 'SingleAvailabilityZone' => [ 'shape' => 'Boolean', ], 'MinTargetCapacity' => [ 'shape' => 'Integer', ], ], ], 'OperationType' => [ 'type' => 'string', 'enum' => [ 'add', 'remove', ], ], 'OwnerStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'Owner', ], ], 'PaymentOption' => [ 'type' => 'string', 'enum' => [ 'AllUpfront', 'PartialUpfront', 'NoUpfront', ], ], 'PciId' => [ 'type' => 'structure', 'members' => [ 'DeviceId' => [ 'shape' => 'String', ], 'VendorId' => [ 'shape' => 'String', ], 'SubsystemId' => [ 'shape' => 'String', ], 'SubsystemVendorId' => [ 'shape' => 'String', ], ], ], 'PeeringConnectionOptions' => [ 'type' => 'structure', 'members' => [ 'AllowDnsResolutionFromRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowDnsResolutionFromRemoteVpc', ], 'AllowEgressFromLocalClassicLinkToRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalClassicLinkToRemoteVpc', ], 'AllowEgressFromLocalVpcToRemoteClassicLink' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalVpcToRemoteClassicLink', ], ], ], 'PeeringConnectionOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'AllowDnsResolutionFromRemoteVpc' => [ 'shape' => 'Boolean', ], 'AllowEgressFromLocalClassicLinkToRemoteVpc' => [ 'shape' => 'Boolean', ], 'AllowEgressFromLocalVpcToRemoteClassicLink' => [ 'shape' => 'Boolean', ], ], ], 'PermissionGroup' => [ 'type' => 'string', 'enum' => [ 'all', ], ], 'Placement' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Affinity' => [ 'shape' => 'String', 'locationName' => 'affinity', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'PartitionNumber' => [ 'shape' => 'Integer', 'locationName' => 'partitionNumber', ], 'HostId' => [ 'shape' => 'String', 'locationName' => 'hostId', ], 'Tenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'tenancy', ], 'SpreadDomain' => [ 'shape' => 'String', 'locationName' => 'spreadDomain', ], ], ], 'PlacementGroup' => [ 'type' => 'structure', 'members' => [ 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'State' => [ 'shape' => 'PlacementGroupState', 'locationName' => 'state', ], 'Strategy' => [ 'shape' => 'PlacementStrategy', 'locationName' => 'strategy', ], 'PartitionCount' => [ 'shape' => 'Integer', 'locationName' => 'partitionCount', ], ], ], 'PlacementGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlacementGroup', 'locationName' => 'item', ], ], 'PlacementGroupState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'PlacementGroupStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'PlacementResponse' => [ 'type' => 'structure', 'members' => [ 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], ], ], 'PlacementStrategy' => [ 'type' => 'string', 'enum' => [ 'cluster', 'spread', 'partition', ], ], 'PlatformValues' => [ 'type' => 'string', 'enum' => [ 'Windows', ], ], 'PoolMaxResults' => [ 'type' => 'integer', 'max' => 10, 'min' => 1, ], 'PortRange' => [ 'type' => 'structure', 'members' => [ 'From' => [ 'shape' => 'Integer', 'locationName' => 'from', ], 'To' => [ 'shape' => 'Integer', 'locationName' => 'to', ], ], ], 'PrefixList' => [ 'type' => 'structure', 'members' => [ 'Cidrs' => [ 'shape' => 'ValueStringList', 'locationName' => 'cidrSet', ], 'PrefixListId' => [ 'shape' => 'String', 'locationName' => 'prefixListId', ], 'PrefixListName' => [ 'shape' => 'String', 'locationName' => 'prefixListName', ], ], ], 'PrefixListId' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'PrefixListId' => [ 'shape' => 'String', 'locationName' => 'prefixListId', ], ], ], 'PrefixListIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrefixListId', 'locationName' => 'item', ], ], 'PrefixListIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'PrefixListSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrefixList', 'locationName' => 'item', ], ], 'PriceSchedule' => [ 'type' => 'structure', 'members' => [ 'Active' => [ 'shape' => 'Boolean', 'locationName' => 'active', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Price' => [ 'shape' => 'Double', 'locationName' => 'price', ], 'Term' => [ 'shape' => 'Long', 'locationName' => 'term', ], ], ], 'PriceScheduleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PriceSchedule', 'locationName' => 'item', ], ], 'PriceScheduleSpecification' => [ 'type' => 'structure', 'members' => [ 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Price' => [ 'shape' => 'Double', 'locationName' => 'price', ], 'Term' => [ 'shape' => 'Long', 'locationName' => 'term', ], ], ], 'PriceScheduleSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PriceScheduleSpecification', 'locationName' => 'item', ], ], 'PricingDetail' => [ 'type' => 'structure', 'members' => [ 'Count' => [ 'shape' => 'Integer', 'locationName' => 'count', ], 'Price' => [ 'shape' => 'Double', 'locationName' => 'price', ], ], ], 'PricingDetailsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PricingDetail', 'locationName' => 'item', ], ], 'PrincipalIdFormat' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', 'locationName' => 'arn', ], 'Statuses' => [ 'shape' => 'IdFormatList', 'locationName' => 'statusSet', ], ], ], 'PrincipalIdFormatList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrincipalIdFormat', 'locationName' => 'item', ], ], 'PrincipalType' => [ 'type' => 'string', 'enum' => [ 'All', 'Service', 'OrganizationUnit', 'Account', 'User', 'Role', ], ], 'PrivateIpAddressConfigSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesPrivateIpAddressConfig', 'locationName' => 'PrivateIpAddressConfigSet', ], ], 'PrivateIpAddressSpecification' => [ 'type' => 'structure', 'members' => [ 'Primary' => [ 'shape' => 'Boolean', 'locationName' => 'primary', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], ], ], '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', ], ], 'ProvisionByoipCidrRequest' => [ 'type' => 'structure', 'required' => [ 'Cidr', ], 'members' => [ 'Cidr' => [ 'shape' => 'String', ], 'CidrAuthorizationContext' => [ 'shape' => 'CidrAuthorizationContext', ], 'Description' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ProvisionByoipCidrResult' => [ 'type' => 'structure', 'members' => [ 'ByoipCidr' => [ 'shape' => 'ByoipCidr', 'locationName' => 'byoipCidr', ], ], ], 'ProvisionedBandwidth' => [ 'type' => 'structure', 'members' => [ 'ProvisionTime' => [ 'shape' => 'DateTime', 'locationName' => 'provisionTime', ], 'Provisioned' => [ 'shape' => 'String', 'locationName' => 'provisioned', ], 'RequestTime' => [ 'shape' => 'DateTime', 'locationName' => 'requestTime', ], 'Requested' => [ 'shape' => 'String', 'locationName' => 'requested', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], ], ], 'PublicIpStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'PublicIp', ], ], 'PublicIpv4Pool' => [ 'type' => 'structure', 'members' => [ 'PoolId' => [ 'shape' => 'String', 'locationName' => 'poolId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'PoolAddressRanges' => [ 'shape' => 'PublicIpv4PoolRangeSet', 'locationName' => 'poolAddressRangeSet', ], 'TotalAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'totalAddressCount', ], 'TotalAvailableAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'totalAvailableAddressCount', ], ], ], 'PublicIpv4PoolRange' => [ 'type' => 'structure', 'members' => [ 'FirstAddress' => [ 'shape' => 'String', 'locationName' => 'firstAddress', ], 'LastAddress' => [ 'shape' => 'String', 'locationName' => 'lastAddress', ], 'AddressCount' => [ 'shape' => 'Integer', 'locationName' => 'addressCount', ], 'AvailableAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'availableAddressCount', ], ], ], 'PublicIpv4PoolRangeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PublicIpv4PoolRange', 'locationName' => 'item', ], ], 'PublicIpv4PoolSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PublicIpv4Pool', 'locationName' => 'item', ], ], 'Purchase' => [ 'type' => 'structure', 'members' => [ 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Duration' => [ 'shape' => 'Integer', 'locationName' => 'duration', ], 'HostIdSet' => [ 'shape' => 'ResponseHostIdSet', 'locationName' => 'hostIdSet', ], 'HostReservationId' => [ 'shape' => 'String', 'locationName' => 'hostReservationId', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], 'PaymentOption' => [ 'shape' => 'PaymentOption', 'locationName' => 'paymentOption', ], 'UpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'upfrontPrice', ], ], ], 'PurchaseHostReservationRequest' => [ 'type' => 'structure', 'required' => [ 'HostIdSet', 'OfferingId', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', ], 'HostIdSet' => [ 'shape' => 'RequestHostIdSet', ], 'LimitPrice' => [ 'shape' => 'String', ], 'OfferingId' => [ 'shape' => 'String', ], ], ], 'PurchaseHostReservationResult' => [ 'type' => 'structure', 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Purchase' => [ 'shape' => 'PurchaseSet', 'locationName' => 'purchase', ], 'TotalHourlyPrice' => [ 'shape' => 'String', 'locationName' => 'totalHourlyPrice', ], 'TotalUpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'totalUpfrontPrice', ], ], ], 'PurchaseRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceCount', 'PurchaseToken', ], 'members' => [ 'InstanceCount' => [ 'shape' => 'Integer', ], 'PurchaseToken' => [ 'shape' => 'String', ], ], ], 'PurchaseRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PurchaseRequest', 'locationName' => 'PurchaseRequest', ], 'min' => 1, ], 'PurchaseReservedInstancesOfferingRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceCount', 'ReservedInstancesOfferingId', ], 'members' => [ 'InstanceCount' => [ 'shape' => 'Integer', ], 'ReservedInstancesOfferingId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'LimitPrice' => [ 'shape' => 'ReservedInstanceLimitPrice', 'locationName' => 'limitPrice', ], ], ], 'PurchaseReservedInstancesOfferingResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesId', ], ], ], 'PurchaseScheduledInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'PurchaseRequests', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'PurchaseRequests' => [ 'shape' => 'PurchaseRequestSet', 'locationName' => 'PurchaseRequest', ], ], ], 'PurchaseScheduledInstancesResult' => [ 'type' => 'structure', 'members' => [ 'ScheduledInstanceSet' => [ 'shape' => 'PurchasedScheduledInstanceSet', 'locationName' => 'scheduledInstanceSet', ], ], ], 'PurchaseSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Purchase', 'locationName' => 'item', ], ], 'PurchasedScheduledInstanceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstance', 'locationName' => 'item', ], ], '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' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'RecurringCharge' => [ 'type' => 'structure', 'members' => [ 'Amount' => [ 'shape' => 'Double', 'locationName' => 'amount', ], 'Frequency' => [ 'shape' => 'RecurringChargeFrequency', 'locationName' => 'frequency', ], ], ], 'RecurringChargeFrequency' => [ 'type' => 'string', 'enum' => [ 'Hourly', ], ], 'RecurringChargesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RecurringCharge', 'locationName' => 'item', ], ], 'Region' => [ 'type' => 'structure', 'members' => [ 'Endpoint' => [ 'shape' => 'String', 'locationName' => 'regionEndpoint', ], 'RegionName' => [ 'shape' => 'String', 'locationName' => 'regionName', ], ], ], 'RegionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Region', 'locationName' => 'item', ], ], 'RegionNameStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'RegionName', ], ], 'RegisterImageRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'ImageLocation' => [ 'shape' => 'String', ], 'Architecture' => [ 'shape' => 'ArchitectureValues', 'locationName' => 'architecture', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingRequestList', 'locationName' => 'BlockDeviceMapping', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'EnaSupport' => [ 'shape' => 'Boolean', 'locationName' => 'enaSupport', ], 'KernelId' => [ 'shape' => 'String', 'locationName' => 'kernelId', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], 'BillingProducts' => [ 'shape' => 'BillingProductList', 'locationName' => 'BillingProduct', ], 'RamdiskId' => [ 'shape' => 'String', 'locationName' => 'ramdiskId', ], 'RootDeviceName' => [ 'shape' => 'String', 'locationName' => 'rootDeviceName', ], 'SriovNetSupport' => [ 'shape' => 'String', 'locationName' => 'sriovNetSupport', ], 'VirtualizationType' => [ 'shape' => 'String', 'locationName' => 'virtualizationType', ], ], ], 'RegisterImageResult' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], ], ], 'RejectTransitGatewayVpcAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RejectTransitGatewayVpcAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayVpcAttachment' => [ 'shape' => 'TransitGatewayVpcAttachment', 'locationName' => 'transitGatewayVpcAttachment', ], ], ], 'RejectVpcEndpointConnectionsRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', 'VpcEndpointIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'String', ], 'VpcEndpointIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'VpcEndpointId', ], ], ], 'RejectVpcEndpointConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemSet', 'locationName' => 'unsuccessful', ], ], ], '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' => [ 'AllocationId' => [ 'shape' => 'String', ], 'PublicIp' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ReleaseHostsRequest' => [ 'type' => 'structure', 'required' => [ 'HostIds', ], 'members' => [ 'HostIds' => [ 'shape' => 'RequestHostIdList', 'locationName' => 'hostId', ], ], ], 'ReleaseHostsResult' => [ 'type' => 'structure', 'members' => [ 'Successful' => [ 'shape' => 'ResponseHostIdList', 'locationName' => 'successful', ], 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemList', 'locationName' => 'unsuccessful', ], ], ], 'ReplaceIamInstanceProfileAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'IamInstanceProfile', 'AssociationId', ], 'members' => [ 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', ], 'AssociationId' => [ 'shape' => 'String', ], ], ], 'ReplaceIamInstanceProfileAssociationResult' => [ 'type' => 'structure', 'members' => [ 'IamInstanceProfileAssociation' => [ 'shape' => 'IamInstanceProfileAssociation', 'locationName' => 'iamInstanceProfileAssociation', ], ], ], 'ReplaceNetworkAclAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', 'NetworkAclId', ], 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkAclId' => [ 'shape' => 'String', 'locationName' => 'networkAclId', ], ], ], 'ReplaceNetworkAclAssociationResult' => [ 'type' => 'structure', 'members' => [ 'NewAssociationId' => [ 'shape' => 'String', 'locationName' => 'newAssociationId', ], ], ], 'ReplaceNetworkAclEntryRequest' => [ 'type' => 'structure', 'required' => [ 'Egress', 'NetworkAclId', 'Protocol', 'RuleAction', 'RuleNumber', ], 'members' => [ 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Egress' => [ 'shape' => 'Boolean', 'locationName' => 'egress', ], 'IcmpTypeCode' => [ 'shape' => 'IcmpTypeCode', 'locationName' => 'Icmp', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], 'NetworkAclId' => [ 'shape' => 'String', 'locationName' => 'networkAclId', ], 'PortRange' => [ 'shape' => 'PortRange', 'locationName' => 'portRange', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], 'RuleAction' => [ 'shape' => 'RuleAction', 'locationName' => 'ruleAction', ], 'RuleNumber' => [ 'shape' => 'Integer', 'locationName' => 'ruleNumber', ], ], ], 'ReplaceRouteRequest' => [ 'type' => 'structure', 'required' => [ 'RouteTableId', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'DestinationIpv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationIpv6CidrBlock', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'EgressOnlyInternetGatewayId' => [ 'shape' => 'String', 'locationName' => 'egressOnlyInternetGatewayId', ], 'GatewayId' => [ 'shape' => 'String', 'locationName' => 'gatewayId', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], 'TransitGatewayId' => [ 'shape' => 'String', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'RouteTableId' => [ 'shape' => 'String', 'locationName' => 'routeTableId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], ], ], 'ReplaceRouteTableAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', 'RouteTableId', ], 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'RouteTableId' => [ 'shape' => 'String', 'locationName' => 'routeTableId', ], ], ], 'ReplaceRouteTableAssociationResult' => [ 'type' => 'structure', 'members' => [ 'NewAssociationId' => [ 'shape' => 'String', 'locationName' => 'newAssociationId', ], ], ], 'ReplaceTransitGatewayRouteRequest' => [ 'type' => 'structure', 'required' => [ 'DestinationCidrBlock', 'TransitGatewayRouteTableId', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'TransitGatewayRouteTableId' => [ 'shape' => 'String', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'String', ], 'Blackhole' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ReplaceTransitGatewayRouteResult' => [ 'type' => 'structure', 'members' => [ 'Route' => [ 'shape' => 'TransitGatewayRoute', 'locationName' => 'route', ], ], ], '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', 'ReasonCodes', 'Status', ], 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'EndTime' => [ 'shape' => 'DateTime', 'locationName' => 'endTime', ], 'Instances' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'instanceId', ], 'ReasonCodes' => [ 'shape' => 'ReasonCodesList', 'locationName' => 'reasonCode', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], 'Status' => [ 'shape' => 'ReportStatusType', 'locationName' => 'status', ], ], ], 'ReportStatusType' => [ 'type' => 'string', 'enum' => [ 'ok', 'impaired', ], ], 'RequestHostIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'RequestHostIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'RequestLaunchTemplateData' => [ 'type' => 'structure', 'members' => [ 'KernelId' => [ 'shape' => 'String', ], 'EbsOptimized' => [ 'shape' => 'Boolean', ], 'IamInstanceProfile' => [ 'shape' => 'LaunchTemplateIamInstanceProfileSpecificationRequest', ], 'BlockDeviceMappings' => [ 'shape' => 'LaunchTemplateBlockDeviceMappingRequestList', 'locationName' => 'BlockDeviceMapping', ], 'NetworkInterfaces' => [ 'shape' => 'LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList', 'locationName' => 'NetworkInterface', ], 'ImageId' => [ 'shape' => 'String', ], 'InstanceType' => [ 'shape' => 'InstanceType', ], 'KeyName' => [ 'shape' => 'String', ], 'Monitoring' => [ 'shape' => 'LaunchTemplatesMonitoringRequest', ], 'Placement' => [ 'shape' => 'LaunchTemplatePlacementRequest', ], 'RamDiskId' => [ 'shape' => 'String', ], 'DisableApiTermination' => [ 'shape' => 'Boolean', ], 'InstanceInitiatedShutdownBehavior' => [ 'shape' => 'ShutdownBehavior', ], 'UserData' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'LaunchTemplateTagSpecificationRequestList', 'locationName' => 'TagSpecification', ], 'ElasticGpuSpecifications' => [ 'shape' => 'ElasticGpuSpecificationList', 'locationName' => 'ElasticGpuSpecification', ], 'ElasticInferenceAccelerators' => [ 'shape' => 'LaunchTemplateElasticInferenceAcceleratorList', 'locationName' => 'ElasticInferenceAccelerator', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'SecurityGroupId', ], 'SecurityGroups' => [ 'shape' => 'SecurityGroupStringList', 'locationName' => 'SecurityGroup', ], 'InstanceMarketOptions' => [ 'shape' => 'LaunchTemplateInstanceMarketOptionsRequest', ], 'CreditSpecification' => [ 'shape' => 'CreditSpecificationRequest', ], 'CpuOptions' => [ 'shape' => 'LaunchTemplateCpuOptionsRequest', ], 'CapacityReservationSpecification' => [ 'shape' => 'LaunchTemplateCapacityReservationSpecificationRequest', ], 'HibernationOptions' => [ 'shape' => 'LaunchTemplateHibernationOptionsRequest', ], 'LicenseSpecifications' => [ 'shape' => 'LaunchTemplateLicenseSpecificationListRequest', 'locationName' => 'LicenseSpecification', ], ], ], 'RequestSpotFleetRequest' => [ 'type' => 'structure', 'required' => [ 'SpotFleetRequestConfig', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'SpotFleetRequestConfig' => [ 'shape' => 'SpotFleetRequestConfigData', 'locationName' => 'spotFleetRequestConfig', ], ], ], 'RequestSpotFleetResponse' => [ 'type' => 'structure', 'members' => [ 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], ], ], 'RequestSpotInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZoneGroup' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneGroup', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', 'locationName' => 'blockDurationMinutes', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'LaunchGroup' => [ 'shape' => 'String', 'locationName' => 'launchGroup', ], 'LaunchSpecification' => [ 'shape' => 'RequestSpotLaunchSpecification', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], 'Type' => [ 'shape' => 'SpotInstanceType', 'locationName' => 'type', ], 'ValidFrom' => [ 'shape' => 'DateTime', 'locationName' => 'validFrom', ], 'ValidUntil' => [ 'shape' => 'DateTime', 'locationName' => 'validUntil', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'InstanceInterruptionBehavior', ], ], ], 'RequestSpotInstancesResult' => [ 'type' => 'structure', 'members' => [ 'SpotInstanceRequests' => [ 'shape' => 'SpotInstanceRequestList', 'locationName' => 'spotInstanceRequestSet', ], ], ], 'RequestSpotLaunchSpecification' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'SecurityGroupId', ], 'SecurityGroups' => [ 'shape' => 'ValueStringList', 'locationName' => 'SecurityGroup', ], 'AddressingType' => [ 'shape' => 'String', 'locationName' => 'addressingType', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', 'locationName' => 'iamInstanceProfile', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'KernelId' => [ 'shape' => 'String', 'locationName' => 'kernelId', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], 'Monitoring' => [ 'shape' => 'RunInstancesMonitoringEnabled', 'locationName' => 'monitoring', ], 'NetworkInterfaces' => [ 'shape' => 'InstanceNetworkInterfaceSpecificationList', 'locationName' => 'NetworkInterface', ], 'Placement' => [ 'shape' => 'SpotPlacement', 'locationName' => 'placement', ], 'RamdiskId' => [ 'shape' => 'String', 'locationName' => 'ramdiskId', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'UserData' => [ 'shape' => 'String', 'locationName' => 'userData', ], ], ], 'Reservation' => [ 'type' => 'structure', 'members' => [ 'Groups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'Instances' => [ 'shape' => 'InstanceList', 'locationName' => 'instancesSet', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'RequesterId' => [ 'shape' => 'String', 'locationName' => 'requesterId', ], 'ReservationId' => [ 'shape' => 'String', 'locationName' => 'reservationId', ], ], ], 'ReservationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Reservation', 'locationName' => 'item', ], ], 'ReservationState' => [ 'type' => 'string', 'enum' => [ 'payment-pending', 'payment-failed', 'active', 'retired', ], ], 'ReservationValue' => [ 'type' => 'structure', 'members' => [ 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'RemainingTotalValue' => [ 'shape' => 'String', 'locationName' => 'remainingTotalValue', ], 'RemainingUpfrontValue' => [ 'shape' => 'String', 'locationName' => 'remainingUpfrontValue', ], ], ], 'ReservedInstanceIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ReservedInstanceId', ], ], 'ReservedInstanceLimitPrice' => [ 'type' => 'structure', 'members' => [ 'Amount' => [ 'shape' => 'Double', 'locationName' => 'amount', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], ], ], 'ReservedInstanceReservationValue' => [ 'type' => 'structure', 'members' => [ 'ReservationValue' => [ 'shape' => 'ReservationValue', 'locationName' => 'reservationValue', ], 'ReservedInstanceId' => [ 'shape' => 'String', 'locationName' => 'reservedInstanceId', ], ], ], 'ReservedInstanceReservationValueSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstanceReservationValue', 'locationName' => 'item', ], ], 'ReservedInstanceState' => [ 'type' => 'string', 'enum' => [ 'payment-pending', 'active', 'payment-failed', 'retired', ], ], 'ReservedInstances' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Duration' => [ 'shape' => 'Long', 'locationName' => 'duration', ], 'End' => [ 'shape' => 'DateTime', 'locationName' => 'end', ], 'FixedPrice' => [ 'shape' => 'Float', 'locationName' => 'fixedPrice', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'ProductDescription' => [ 'shape' => 'RIProductDescription', 'locationName' => 'productDescription', ], 'ReservedInstancesId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesId', ], 'Start' => [ 'shape' => 'DateTime', 'locationName' => 'start', ], 'State' => [ 'shape' => 'ReservedInstanceState', 'locationName' => 'state', ], 'UsagePrice' => [ 'shape' => 'Float', 'locationName' => 'usagePrice', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'InstanceTenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'instanceTenancy', ], 'OfferingClass' => [ 'shape' => 'OfferingClassType', 'locationName' => 'offeringClass', ], 'OfferingType' => [ 'shape' => 'OfferingTypeValues', 'locationName' => 'offeringType', ], 'RecurringCharges' => [ 'shape' => 'RecurringChargesList', 'locationName' => 'recurringCharges', ], 'Scope' => [ 'shape' => 'scope', 'locationName' => 'scope', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'ReservedInstancesConfiguration' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'Scope' => [ 'shape' => 'scope', 'locationName' => 'scope', ], ], ], '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' => [ 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'CreateDate' => [ 'shape' => 'DateTime', 'locationName' => 'createDate', ], 'InstanceCounts' => [ 'shape' => 'InstanceCountList', 'locationName' => 'instanceCounts', ], 'PriceSchedules' => [ 'shape' => 'PriceScheduleList', 'locationName' => 'priceSchedules', ], 'ReservedInstancesId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesId', ], 'ReservedInstancesListingId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesListingId', ], 'Status' => [ 'shape' => 'ListingStatus', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'UpdateDate' => [ 'shape' => 'DateTime', 'locationName' => 'updateDate', ], ], ], 'ReservedInstancesListingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstancesListing', 'locationName' => 'item', ], ], 'ReservedInstancesModification' => [ 'type' => 'structure', 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'CreateDate' => [ 'shape' => 'DateTime', 'locationName' => 'createDate', ], 'EffectiveDate' => [ 'shape' => 'DateTime', 'locationName' => 'effectiveDate', ], 'ModificationResults' => [ 'shape' => 'ReservedInstancesModificationResultList', 'locationName' => 'modificationResultSet', ], 'ReservedInstancesIds' => [ 'shape' => 'ReservedIntancesIds', 'locationName' => 'reservedInstancesSet', ], 'ReservedInstancesModificationId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesModificationId', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'UpdateDate' => [ 'shape' => 'DateTime', 'locationName' => 'updateDate', ], ], ], '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' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Duration' => [ 'shape' => 'Long', 'locationName' => 'duration', ], 'FixedPrice' => [ 'shape' => 'Float', 'locationName' => 'fixedPrice', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'ProductDescription' => [ 'shape' => 'RIProductDescription', 'locationName' => 'productDescription', ], 'ReservedInstancesOfferingId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesOfferingId', ], 'UsagePrice' => [ 'shape' => 'Float', 'locationName' => 'usagePrice', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'InstanceTenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'instanceTenancy', ], 'Marketplace' => [ 'shape' => 'Boolean', 'locationName' => 'marketplace', ], 'OfferingClass' => [ 'shape' => 'OfferingClassType', 'locationName' => 'offeringClass', ], 'OfferingType' => [ 'shape' => 'OfferingTypeValues', 'locationName' => 'offeringType', ], 'PricingDetails' => [ 'shape' => 'PricingDetailsList', 'locationName' => 'pricingDetailsSet', ], 'RecurringCharges' => [ 'shape' => 'RecurringChargesList', 'locationName' => 'recurringCharges', ], 'Scope' => [ 'shape' => 'scope', 'locationName' => 'scope', ], ], ], 'ReservedInstancesOfferingIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ReservedInstancesOfferingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstancesOffering', 'locationName' => 'item', ], ], 'ReservedIntancesIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstancesId', 'locationName' => 'item', ], ], 'ResetFpgaImageAttributeName' => [ 'type' => 'string', 'enum' => [ 'loadPermission', ], ], 'ResetFpgaImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'FpgaImageId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FpgaImageId' => [ 'shape' => 'String', ], 'Attribute' => [ 'shape' => 'ResetFpgaImageAttributeName', ], ], ], 'ResetFpgaImageAttributeResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ResetImageAttributeName' => [ 'type' => 'string', 'enum' => [ 'launchPermission', ], ], 'ResetImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'ImageId', ], 'members' => [ 'Attribute' => [ 'shape' => 'ResetImageAttributeName', ], 'ImageId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ResetInstanceAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'InstanceId', ], 'members' => [ 'Attribute' => [ 'shape' => 'InstanceAttributeName', 'locationName' => 'attribute', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], ], ], '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' => [ 'Attribute', 'SnapshotId', ], 'members' => [ 'Attribute' => [ 'shape' => 'SnapshotAttributeName', ], 'SnapshotId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ResourceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'ResourceType' => [ 'type' => 'string', 'enum' => [ 'client-vpn-endpoint', 'customer-gateway', 'dedicated-host', 'dhcp-options', 'elastic-ip', 'fleet', 'fpga-image', 'host-reservation', 'image', 'instance', 'internet-gateway', 'launch-template', 'natgateway', 'network-acl', 'network-interface', 'reserved-instances', 'route-table', 'security-group', 'snapshot', 'spot-instances-request', 'subnet', 'transit-gateway', 'transit-gateway-attachment', 'transit-gateway-route-table', 'volume', 'vpc', 'vpc-peering-connection', 'vpn-connection', 'vpn-gateway', ], ], 'ResponseError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'LaunchTemplateErrorCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ResponseHostIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'ResponseHostIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'ResponseLaunchTemplateData' => [ 'type' => 'structure', 'members' => [ 'KernelId' => [ 'shape' => 'String', 'locationName' => 'kernelId', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'IamInstanceProfile' => [ 'shape' => 'LaunchTemplateIamInstanceProfileSpecification', 'locationName' => 'iamInstanceProfile', ], 'BlockDeviceMappings' => [ 'shape' => 'LaunchTemplateBlockDeviceMappingList', 'locationName' => 'blockDeviceMappingSet', ], 'NetworkInterfaces' => [ 'shape' => 'LaunchTemplateInstanceNetworkInterfaceSpecificationList', 'locationName' => 'networkInterfaceSet', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], 'Monitoring' => [ 'shape' => 'LaunchTemplatesMonitoring', 'locationName' => 'monitoring', ], 'Placement' => [ 'shape' => 'LaunchTemplatePlacement', 'locationName' => 'placement', ], 'RamDiskId' => [ 'shape' => 'String', 'locationName' => 'ramDiskId', ], 'DisableApiTermination' => [ 'shape' => 'Boolean', 'locationName' => 'disableApiTermination', ], 'InstanceInitiatedShutdownBehavior' => [ 'shape' => 'ShutdownBehavior', 'locationName' => 'instanceInitiatedShutdownBehavior', ], 'UserData' => [ 'shape' => 'String', 'locationName' => 'userData', ], 'TagSpecifications' => [ 'shape' => 'LaunchTemplateTagSpecificationList', 'locationName' => 'tagSpecificationSet', ], 'ElasticGpuSpecifications' => [ 'shape' => 'ElasticGpuSpecificationResponseList', 'locationName' => 'elasticGpuSpecificationSet', ], 'ElasticInferenceAccelerators' => [ 'shape' => 'LaunchTemplateElasticInferenceAcceleratorResponseList', 'locationName' => 'elasticInferenceAcceleratorSet', ], 'SecurityGroupIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'securityGroupIdSet', ], 'SecurityGroups' => [ 'shape' => 'ValueStringList', 'locationName' => 'securityGroupSet', ], 'InstanceMarketOptions' => [ 'shape' => 'LaunchTemplateInstanceMarketOptions', 'locationName' => 'instanceMarketOptions', ], 'CreditSpecification' => [ 'shape' => 'CreditSpecification', 'locationName' => 'creditSpecification', ], 'CpuOptions' => [ 'shape' => 'LaunchTemplateCpuOptions', 'locationName' => 'cpuOptions', ], 'CapacityReservationSpecification' => [ 'shape' => 'LaunchTemplateCapacityReservationSpecificationResponse', 'locationName' => 'capacityReservationSpecification', ], 'HibernationOptions' => [ 'shape' => 'LaunchTemplateHibernationOptions', 'locationName' => 'hibernationOptions', ], 'LicenseSpecifications' => [ 'shape' => 'LaunchTemplateLicenseList', 'locationName' => 'licenseSet', ], ], ], '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' => [ 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], 'Status' => [ 'shape' => 'Status', 'locationName' => 'status', ], ], ], 'RevokeClientVpnIngressRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'TargetNetworkCidr', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', ], 'TargetNetworkCidr' => [ 'shape' => 'String', ], 'AccessGroupId' => [ 'shape' => 'String', ], 'RevokeAllGroups' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RevokeClientVpnIngressResult' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ClientVpnAuthorizationRuleStatus', 'locationName' => 'status', ], ], ], 'RevokeSecurityGroupEgressRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', 'locationName' => 'ipPermissions', ], 'CidrIp' => [ 'shape' => 'String', 'locationName' => 'cidrIp', ], 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'IpProtocol' => [ 'shape' => 'String', 'locationName' => 'ipProtocol', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], 'SourceSecurityGroupName' => [ 'shape' => 'String', 'locationName' => 'sourceSecurityGroupName', ], 'SourceSecurityGroupOwnerId' => [ 'shape' => 'String', 'locationName' => 'sourceSecurityGroupOwnerId', ], ], ], 'RevokeSecurityGroupIngressRequest' => [ 'type' => 'structure', 'members' => [ 'CidrIp' => [ 'shape' => 'String', ], 'FromPort' => [ 'shape' => 'Integer', ], 'GroupId' => [ 'shape' => 'String', ], 'GroupName' => [ 'shape' => 'String', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', ], 'IpProtocol' => [ 'shape' => 'String', ], 'SourceSecurityGroupName' => [ 'shape' => 'String', ], 'SourceSecurityGroupOwnerId' => [ 'shape' => 'String', ], 'ToPort' => [ 'shape' => 'Integer', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'Route' => [ 'type' => 'structure', 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'DestinationIpv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationIpv6CidrBlock', ], 'DestinationPrefixListId' => [ 'shape' => 'String', 'locationName' => 'destinationPrefixListId', ], 'EgressOnlyInternetGatewayId' => [ 'shape' => 'String', 'locationName' => 'egressOnlyInternetGatewayId', ], 'GatewayId' => [ 'shape' => 'String', 'locationName' => 'gatewayId', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceOwnerId' => [ 'shape' => 'String', 'locationName' => 'instanceOwnerId', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'Origin' => [ 'shape' => 'RouteOrigin', 'locationName' => 'origin', ], 'State' => [ 'shape' => 'RouteState', 'locationName' => 'state', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], ], ], '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' => [ 'Associations' => [ 'shape' => 'RouteTableAssociationList', 'locationName' => 'associationSet', ], 'PropagatingVgws' => [ 'shape' => 'PropagatingVgwList', 'locationName' => 'propagatingVgwSet', ], 'RouteTableId' => [ 'shape' => 'String', 'locationName' => 'routeTableId', ], 'Routes' => [ 'shape' => 'RouteList', 'locationName' => 'routeSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], ], ], 'RouteTableAssociation' => [ 'type' => 'structure', 'members' => [ 'Main' => [ 'shape' => 'Boolean', 'locationName' => 'main', ], 'RouteTableAssociationId' => [ 'shape' => 'String', 'locationName' => 'routeTableAssociationId', ], 'RouteTableId' => [ 'shape' => 'String', 'locationName' => 'routeTableId', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], ], ], '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' => [ 'MaxCount', 'MinCount', ], 'members' => [ 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingRequestList', 'locationName' => 'BlockDeviceMapping', ], 'ImageId' => [ 'shape' => 'String', ], 'InstanceType' => [ 'shape' => 'InstanceType', ], 'Ipv6AddressCount' => [ 'shape' => 'Integer', ], 'Ipv6Addresses' => [ 'shape' => 'InstanceIpv6AddressList', 'locationName' => 'Ipv6Address', ], 'KernelId' => [ 'shape' => 'String', ], 'KeyName' => [ 'shape' => 'String', ], 'MaxCount' => [ 'shape' => 'Integer', ], 'MinCount' => [ 'shape' => 'Integer', ], 'Monitoring' => [ 'shape' => 'RunInstancesMonitoringEnabled', ], 'Placement' => [ 'shape' => 'Placement', ], 'RamdiskId' => [ 'shape' => 'String', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'SecurityGroupId', ], 'SecurityGroups' => [ 'shape' => 'SecurityGroupStringList', 'locationName' => 'SecurityGroup', ], 'SubnetId' => [ 'shape' => 'String', ], 'UserData' => [ 'shape' => 'String', ], 'AdditionalInfo' => [ 'shape' => 'String', 'locationName' => 'additionalInfo', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'DisableApiTermination' => [ 'shape' => 'Boolean', 'locationName' => 'disableApiTermination', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', 'locationName' => 'iamInstanceProfile', ], 'InstanceInitiatedShutdownBehavior' => [ 'shape' => 'ShutdownBehavior', 'locationName' => 'instanceInitiatedShutdownBehavior', ], 'NetworkInterfaces' => [ 'shape' => 'InstanceNetworkInterfaceSpecificationList', 'locationName' => 'networkInterface', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'ElasticGpuSpecification' => [ 'shape' => 'ElasticGpuSpecifications', ], 'ElasticInferenceAccelerators' => [ 'shape' => 'ElasticInferenceAccelerators', 'locationName' => 'ElasticInferenceAccelerator', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'LaunchTemplate' => [ 'shape' => 'LaunchTemplateSpecification', ], 'InstanceMarketOptions' => [ 'shape' => 'InstanceMarketOptionsRequest', ], 'CreditSpecification' => [ 'shape' => 'CreditSpecificationRequest', ], 'CpuOptions' => [ 'shape' => 'CpuOptionsRequest', ], 'CapacityReservationSpecification' => [ 'shape' => 'CapacityReservationSpecification', ], 'HibernationOptions' => [ 'shape' => 'HibernationOptionsRequest', ], 'LicenseSpecifications' => [ 'shape' => 'LicenseSpecificationListRequest', 'locationName' => 'LicenseSpecification', ], ], ], 'RunScheduledInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'LaunchSpecification', 'ScheduledInstanceId', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceCount' => [ 'shape' => 'Integer', ], 'LaunchSpecification' => [ 'shape' => 'ScheduledInstancesLaunchSpecification', ], 'ScheduledInstanceId' => [ 'shape' => 'String', ], ], ], 'RunScheduledInstancesResult' => [ 'type' => 'structure', 'members' => [ 'InstanceIdSet' => [ 'shape' => 'InstanceIdSet', 'locationName' => 'instanceIdSet', ], ], ], 'S3Storage' => [ 'type' => 'structure', 'members' => [ 'AWSAccessKeyId' => [ 'shape' => 'String', ], 'Bucket' => [ 'shape' => 'String', 'locationName' => 'bucket', ], 'Prefix' => [ 'shape' => 'String', 'locationName' => 'prefix', ], 'UploadPolicy' => [ 'shape' => 'Blob', 'locationName' => 'uploadPolicy', ], 'UploadPolicySignature' => [ 'shape' => 'String', 'locationName' => 'uploadPolicySignature', ], ], ], 'ScheduledInstance' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'CreateDate' => [ 'shape' => 'DateTime', 'locationName' => 'createDate', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'NetworkPlatform' => [ 'shape' => 'String', 'locationName' => 'networkPlatform', ], 'NextSlotStartTime' => [ 'shape' => 'DateTime', 'locationName' => 'nextSlotStartTime', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'PreviousSlotEndTime' => [ 'shape' => 'DateTime', 'locationName' => 'previousSlotEndTime', ], 'Recurrence' => [ 'shape' => 'ScheduledInstanceRecurrence', 'locationName' => 'recurrence', ], 'ScheduledInstanceId' => [ 'shape' => 'String', 'locationName' => 'scheduledInstanceId', ], 'SlotDurationInHours' => [ 'shape' => 'Integer', 'locationName' => 'slotDurationInHours', ], 'TermEndDate' => [ 'shape' => 'DateTime', 'locationName' => 'termEndDate', ], 'TermStartDate' => [ 'shape' => 'DateTime', 'locationName' => 'termStartDate', ], 'TotalScheduledInstanceHours' => [ 'shape' => 'Integer', 'locationName' => 'totalScheduledInstanceHours', ], ], ], 'ScheduledInstanceAvailability' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailableInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'availableInstanceCount', ], 'FirstSlotStartTime' => [ 'shape' => 'DateTime', 'locationName' => 'firstSlotStartTime', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'MaxTermDurationInDays' => [ 'shape' => 'Integer', 'locationName' => 'maxTermDurationInDays', ], 'MinTermDurationInDays' => [ 'shape' => 'Integer', 'locationName' => 'minTermDurationInDays', ], 'NetworkPlatform' => [ 'shape' => 'String', 'locationName' => 'networkPlatform', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'PurchaseToken' => [ 'shape' => 'String', 'locationName' => 'purchaseToken', ], 'Recurrence' => [ 'shape' => 'ScheduledInstanceRecurrence', 'locationName' => 'recurrence', ], 'SlotDurationInHours' => [ 'shape' => 'Integer', 'locationName' => 'slotDurationInHours', ], 'TotalScheduledInstanceHours' => [ 'shape' => 'Integer', 'locationName' => 'totalScheduledInstanceHours', ], ], ], 'ScheduledInstanceAvailabilitySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstanceAvailability', 'locationName' => 'item', ], ], 'ScheduledInstanceIdRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ScheduledInstanceId', ], ], 'ScheduledInstanceRecurrence' => [ 'type' => 'structure', 'members' => [ 'Frequency' => [ 'shape' => 'String', 'locationName' => 'frequency', ], 'Interval' => [ 'shape' => 'Integer', 'locationName' => 'interval', ], 'OccurrenceDaySet' => [ 'shape' => 'OccurrenceDaySet', 'locationName' => 'occurrenceDaySet', ], 'OccurrenceRelativeToEnd' => [ 'shape' => 'Boolean', 'locationName' => 'occurrenceRelativeToEnd', ], 'OccurrenceUnit' => [ 'shape' => 'String', 'locationName' => 'occurrenceUnit', ], ], ], 'ScheduledInstanceRecurrenceRequest' => [ 'type' => 'structure', 'members' => [ 'Frequency' => [ 'shape' => 'String', ], 'Interval' => [ 'shape' => 'Integer', ], 'OccurrenceDays' => [ 'shape' => 'OccurrenceDayRequestSet', 'locationName' => 'OccurrenceDay', ], 'OccurrenceRelativeToEnd' => [ 'shape' => 'Boolean', ], 'OccurrenceUnit' => [ 'shape' => 'String', ], ], ], 'ScheduledInstanceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstance', 'locationName' => 'item', ], ], 'ScheduledInstancesBlockDeviceMapping' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', ], 'Ebs' => [ 'shape' => 'ScheduledInstancesEbs', ], 'NoDevice' => [ 'shape' => 'String', ], 'VirtualName' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesBlockDeviceMappingSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesBlockDeviceMapping', 'locationName' => 'BlockDeviceMapping', ], ], 'ScheduledInstancesEbs' => [ 'type' => 'structure', 'members' => [ 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'Encrypted' => [ 'shape' => 'Boolean', ], 'Iops' => [ 'shape' => 'Integer', ], 'SnapshotId' => [ 'shape' => 'String', ], 'VolumeSize' => [ 'shape' => 'Integer', ], 'VolumeType' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesIamInstanceProfile' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesIpv6Address' => [ 'type' => 'structure', 'members' => [ 'Ipv6Address' => [ 'shape' => 'Ipv6Address', ], ], ], 'ScheduledInstancesIpv6AddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesIpv6Address', 'locationName' => 'Ipv6Address', ], ], 'ScheduledInstancesLaunchSpecification' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'BlockDeviceMappings' => [ 'shape' => 'ScheduledInstancesBlockDeviceMappingSet', 'locationName' => 'BlockDeviceMapping', ], 'EbsOptimized' => [ 'shape' => 'Boolean', ], 'IamInstanceProfile' => [ 'shape' => 'ScheduledInstancesIamInstanceProfile', ], 'ImageId' => [ 'shape' => 'String', ], 'InstanceType' => [ 'shape' => 'String', ], 'KernelId' => [ 'shape' => 'String', ], 'KeyName' => [ 'shape' => 'String', ], 'Monitoring' => [ 'shape' => 'ScheduledInstancesMonitoring', ], 'NetworkInterfaces' => [ 'shape' => 'ScheduledInstancesNetworkInterfaceSet', 'locationName' => 'NetworkInterface', ], 'Placement' => [ 'shape' => 'ScheduledInstancesPlacement', ], 'RamdiskId' => [ 'shape' => 'String', ], 'SecurityGroupIds' => [ 'shape' => 'ScheduledInstancesSecurityGroupIdSet', 'locationName' => 'SecurityGroupId', ], 'SubnetId' => [ 'shape' => 'String', ], 'UserData' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesMonitoring' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], ], ], 'ScheduledInstancesNetworkInterface' => [ 'type' => 'structure', 'members' => [ 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'Description' => [ 'shape' => 'String', ], 'DeviceIndex' => [ 'shape' => 'Integer', ], 'Groups' => [ 'shape' => 'ScheduledInstancesSecurityGroupIdSet', 'locationName' => 'Group', ], 'Ipv6AddressCount' => [ 'shape' => 'Integer', ], 'Ipv6Addresses' => [ 'shape' => 'ScheduledInstancesIpv6AddressList', 'locationName' => 'Ipv6Address', ], 'NetworkInterfaceId' => [ 'shape' => 'String', ], 'PrivateIpAddress' => [ 'shape' => 'String', ], 'PrivateIpAddressConfigs' => [ 'shape' => 'PrivateIpAddressConfigSet', 'locationName' => 'PrivateIpAddressConfig', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', ], 'SubnetId' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesNetworkInterfaceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesNetworkInterface', 'locationName' => 'NetworkInterface', ], ], 'ScheduledInstancesPlacement' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', ], 'GroupName' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesPrivateIpAddressConfig' => [ 'type' => 'structure', 'members' => [ 'Primary' => [ 'shape' => 'Boolean', ], 'PrivateIpAddress' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesSecurityGroupIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'SecurityGroupId', ], ], 'SearchTransitGatewayRoutesRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'Filters', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'SearchTransitGatewayRoutesResult' => [ 'type' => 'structure', 'members' => [ 'Routes' => [ 'shape' => 'TransitGatewayRouteList', 'locationName' => 'routeSet', ], 'AdditionalRoutesAvailable' => [ 'shape' => 'Boolean', 'locationName' => 'additionalRoutesAvailable', ], ], ], 'SecurityGroup' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'groupDescription', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', 'locationName' => 'ipPermissions', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'IpPermissionsEgress' => [ 'shape' => 'IpPermissionList', 'locationName' => 'ipPermissionsEgress', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'SecurityGroupIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'SecurityGroupId', ], ], 'SecurityGroupIdentifier' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], ], ], 'SecurityGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroup', 'locationName' => 'item', ], ], 'SecurityGroupReference' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'ReferencingVpcId' => [ 'shape' => 'String', 'locationName' => 'referencingVpcId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], ], ], 'SecurityGroupReferences' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupReference', 'locationName' => 'item', ], ], 'SecurityGroupStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'SecurityGroup', ], ], 'ServiceConfiguration' => [ 'type' => 'structure', 'members' => [ 'ServiceType' => [ 'shape' => 'ServiceTypeDetailSet', 'locationName' => 'serviceType', ], 'ServiceId' => [ 'shape' => 'String', 'locationName' => 'serviceId', ], 'ServiceName' => [ 'shape' => 'String', 'locationName' => 'serviceName', ], 'ServiceState' => [ 'shape' => 'ServiceState', 'locationName' => 'serviceState', ], 'AvailabilityZones' => [ 'shape' => 'ValueStringList', 'locationName' => 'availabilityZoneSet', ], 'AcceptanceRequired' => [ 'shape' => 'Boolean', 'locationName' => 'acceptanceRequired', ], 'NetworkLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'networkLoadBalancerArnSet', ], 'BaseEndpointDnsNames' => [ 'shape' => 'ValueStringList', 'locationName' => 'baseEndpointDnsNameSet', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], ], ], 'ServiceConfigurationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceConfiguration', 'locationName' => 'item', ], ], 'ServiceDetail' => [ 'type' => 'structure', 'members' => [ 'ServiceName' => [ 'shape' => 'String', 'locationName' => 'serviceName', ], 'ServiceType' => [ 'shape' => 'ServiceTypeDetailSet', 'locationName' => 'serviceType', ], 'AvailabilityZones' => [ 'shape' => 'ValueStringList', 'locationName' => 'availabilityZoneSet', ], 'Owner' => [ 'shape' => 'String', 'locationName' => 'owner', ], 'BaseEndpointDnsNames' => [ 'shape' => 'ValueStringList', 'locationName' => 'baseEndpointDnsNameSet', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], 'VpcEndpointPolicySupported' => [ 'shape' => 'Boolean', 'locationName' => 'vpcEndpointPolicySupported', ], 'AcceptanceRequired' => [ 'shape' => 'Boolean', 'locationName' => 'acceptanceRequired', ], ], ], 'ServiceDetailSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceDetail', 'locationName' => 'item', ], ], 'ServiceState' => [ 'type' => 'string', 'enum' => [ 'Pending', 'Available', 'Deleting', 'Deleted', 'Failed', ], ], 'ServiceType' => [ 'type' => 'string', 'enum' => [ 'Interface', 'Gateway', ], ], 'ServiceTypeDetail' => [ 'type' => 'structure', 'members' => [ 'ServiceType' => [ 'shape' => 'ServiceType', 'locationName' => 'serviceType', ], ], ], 'ServiceTypeDetailSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceTypeDetail', 'locationName' => 'item', ], ], 'ShutdownBehavior' => [ 'type' => 'string', 'enum' => [ 'stop', 'terminate', ], ], 'SlotDateTimeRangeRequest' => [ 'type' => 'structure', 'required' => [ 'EarliestTime', 'LatestTime', ], 'members' => [ 'EarliestTime' => [ 'shape' => 'DateTime', ], 'LatestTime' => [ 'shape' => 'DateTime', ], ], ], 'SlotStartTimeRangeRequest' => [ 'type' => 'structure', 'members' => [ 'EarliestTime' => [ 'shape' => 'DateTime', ], 'LatestTime' => [ 'shape' => 'DateTime', ], ], ], 'Snapshot' => [ 'type' => 'structure', 'members' => [ 'DataEncryptionKeyId' => [ 'shape' => 'String', 'locationName' => 'dataEncryptionKeyId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], 'State' => [ 'shape' => 'SnapshotState', 'locationName' => 'status', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'VolumeSize' => [ 'shape' => 'Integer', 'locationName' => 'volumeSize', ], 'OwnerAlias' => [ 'shape' => 'String', 'locationName' => 'ownerAlias', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'SnapshotAttributeName' => [ 'type' => 'string', 'enum' => [ 'productCodes', 'createVolumePermission', ], ], 'SnapshotDetail' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'DeviceName' => [ 'shape' => 'String', 'locationName' => 'deviceName', ], 'DiskImageSize' => [ 'shape' => 'Double', 'locationName' => 'diskImageSize', ], 'Format' => [ 'shape' => 'String', 'locationName' => 'format', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Url' => [ 'shape' => 'String', 'locationName' => 'url', ], 'UserBucket' => [ 'shape' => 'UserBucketDetails', 'locationName' => 'userBucket', ], ], ], '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' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'DiskImageSize' => [ 'shape' => 'Double', 'locationName' => 'diskImageSize', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'Format' => [ 'shape' => 'String', 'locationName' => 'format', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Url' => [ 'shape' => 'String', 'locationName' => 'url', ], 'UserBucket' => [ 'shape' => 'UserBucketDetails', 'locationName' => 'userBucket', ], ], ], 'SpotAllocationStrategy' => [ 'type' => 'string', 'enum' => [ 'lowest-price', 'diversified', ], ], 'SpotDatafeedSubscription' => [ 'type' => 'structure', 'members' => [ 'Bucket' => [ 'shape' => 'String', 'locationName' => 'bucket', ], 'Fault' => [ 'shape' => 'SpotInstanceStateFault', 'locationName' => 'fault', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Prefix' => [ 'shape' => 'String', 'locationName' => 'prefix', ], 'State' => [ 'shape' => 'DatafeedSubscriptionState', 'locationName' => 'state', ], ], ], 'SpotFleetLaunchSpecification' => [ 'type' => 'structure', 'members' => [ 'SecurityGroups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'AddressingType' => [ 'shape' => 'String', 'locationName' => 'addressingType', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', 'locationName' => 'iamInstanceProfile', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'KernelId' => [ 'shape' => 'String', 'locationName' => 'kernelId', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], 'Monitoring' => [ 'shape' => 'SpotFleetMonitoring', 'locationName' => 'monitoring', ], 'NetworkInterfaces' => [ 'shape' => 'InstanceNetworkInterfaceSpecificationList', 'locationName' => 'networkInterfaceSet', ], 'Placement' => [ 'shape' => 'SpotPlacement', 'locationName' => 'placement', ], 'RamdiskId' => [ 'shape' => 'String', 'locationName' => 'ramdiskId', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'UserData' => [ 'shape' => 'String', 'locationName' => 'userData', ], 'WeightedCapacity' => [ 'shape' => 'Double', 'locationName' => 'weightedCapacity', ], 'TagSpecifications' => [ 'shape' => 'SpotFleetTagSpecificationList', 'locationName' => 'tagSpecificationSet', ], ], ], 'SpotFleetMonitoring' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], ], ], 'SpotFleetRequestConfig' => [ 'type' => 'structure', 'members' => [ 'ActivityStatus' => [ 'shape' => 'ActivityStatus', 'locationName' => 'activityStatus', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'SpotFleetRequestConfig' => [ 'shape' => 'SpotFleetRequestConfigData', 'locationName' => 'spotFleetRequestConfig', ], 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], 'SpotFleetRequestState' => [ 'shape' => 'BatchState', 'locationName' => 'spotFleetRequestState', ], ], ], 'SpotFleetRequestConfigData' => [ 'type' => 'structure', 'required' => [ 'IamFleetRole', 'TargetCapacity', ], 'members' => [ 'AllocationStrategy' => [ 'shape' => 'AllocationStrategy', 'locationName' => 'allocationStrategy', ], 'OnDemandAllocationStrategy' => [ 'shape' => 'OnDemandAllocationStrategy', 'locationName' => 'onDemandAllocationStrategy', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'ExcessCapacityTerminationPolicy', 'locationName' => 'excessCapacityTerminationPolicy', ], 'FulfilledCapacity' => [ 'shape' => 'Double', 'locationName' => 'fulfilledCapacity', ], 'OnDemandFulfilledCapacity' => [ 'shape' => 'Double', 'locationName' => 'onDemandFulfilledCapacity', ], 'IamFleetRole' => [ 'shape' => 'String', 'locationName' => 'iamFleetRole', ], 'LaunchSpecifications' => [ 'shape' => 'LaunchSpecsList', 'locationName' => 'launchSpecifications', ], 'LaunchTemplateConfigs' => [ 'shape' => 'LaunchTemplateConfigList', 'locationName' => 'launchTemplateConfigs', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], 'TargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'targetCapacity', ], 'OnDemandTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'onDemandTargetCapacity', ], 'TerminateInstancesWithExpiration' => [ 'shape' => 'Boolean', 'locationName' => 'terminateInstancesWithExpiration', ], 'Type' => [ 'shape' => 'FleetType', 'locationName' => 'type', ], 'ValidFrom' => [ 'shape' => 'DateTime', 'locationName' => 'validFrom', ], 'ValidUntil' => [ 'shape' => 'DateTime', 'locationName' => 'validUntil', ], 'ReplaceUnhealthyInstances' => [ 'shape' => 'Boolean', 'locationName' => 'replaceUnhealthyInstances', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'InstanceInterruptionBehavior', 'locationName' => 'instanceInterruptionBehavior', ], 'LoadBalancersConfig' => [ 'shape' => 'LoadBalancersConfig', 'locationName' => 'loadBalancersConfig', ], 'InstancePoolsToUseCount' => [ 'shape' => 'Integer', 'locationName' => 'instancePoolsToUseCount', ], ], ], 'SpotFleetRequestConfigSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpotFleetRequestConfig', 'locationName' => 'item', ], ], 'SpotFleetTagSpecification' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ResourceType', 'locationName' => 'resourceType', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tag', ], ], ], 'SpotFleetTagSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpotFleetTagSpecification', 'locationName' => 'item', ], ], 'SpotInstanceInterruptionBehavior' => [ 'type' => 'string', 'enum' => [ 'hibernate', 'stop', 'terminate', ], ], 'SpotInstanceRequest' => [ 'type' => 'structure', 'members' => [ 'ActualBlockHourlyPrice' => [ 'shape' => 'String', 'locationName' => 'actualBlockHourlyPrice', ], 'AvailabilityZoneGroup' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneGroup', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', 'locationName' => 'blockDurationMinutes', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'Fault' => [ 'shape' => 'SpotInstanceStateFault', 'locationName' => 'fault', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'LaunchGroup' => [ 'shape' => 'String', 'locationName' => 'launchGroup', ], 'LaunchSpecification' => [ 'shape' => 'LaunchSpecification', 'locationName' => 'launchSpecification', ], 'LaunchedAvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'launchedAvailabilityZone', ], 'ProductDescription' => [ 'shape' => 'RIProductDescription', 'locationName' => 'productDescription', ], 'SpotInstanceRequestId' => [ 'shape' => 'String', 'locationName' => 'spotInstanceRequestId', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], 'State' => [ 'shape' => 'SpotInstanceState', 'locationName' => 'state', ], 'Status' => [ 'shape' => 'SpotInstanceStatus', 'locationName' => 'status', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'Type' => [ 'shape' => 'SpotInstanceType', 'locationName' => 'type', ], 'ValidFrom' => [ 'shape' => 'DateTime', 'locationName' => 'validFrom', ], 'ValidUntil' => [ 'shape' => 'DateTime', 'locationName' => 'validUntil', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'InstanceInterruptionBehavior', 'locationName' => 'instanceInterruptionBehavior', ], ], ], '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', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], 'UpdateTime' => [ 'shape' => 'DateTime', 'locationName' => 'updateTime', ], ], ], 'SpotInstanceType' => [ 'type' => 'string', 'enum' => [ 'one-time', 'persistent', ], ], 'SpotMarketOptions' => [ 'type' => 'structure', 'members' => [ 'MaxPrice' => [ 'shape' => 'String', ], 'SpotInstanceType' => [ 'shape' => 'SpotInstanceType', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', ], 'ValidUntil' => [ 'shape' => 'DateTime', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'InstanceInterruptionBehavior', ], ], ], 'SpotOptions' => [ 'type' => 'structure', 'members' => [ 'AllocationStrategy' => [ 'shape' => 'SpotAllocationStrategy', 'locationName' => 'allocationStrategy', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'SpotInstanceInterruptionBehavior', 'locationName' => 'instanceInterruptionBehavior', ], 'InstancePoolsToUseCount' => [ 'shape' => 'Integer', 'locationName' => 'instancePoolsToUseCount', ], 'SingleInstanceType' => [ 'shape' => 'Boolean', 'locationName' => 'singleInstanceType', ], 'SingleAvailabilityZone' => [ 'shape' => 'Boolean', 'locationName' => 'singleAvailabilityZone', ], 'MinTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'minTargetCapacity', ], ], ], 'SpotOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'AllocationStrategy' => [ 'shape' => 'SpotAllocationStrategy', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'SpotInstanceInterruptionBehavior', ], 'InstancePoolsToUseCount' => [ 'shape' => 'Integer', ], 'SingleInstanceType' => [ 'shape' => 'Boolean', ], 'SingleAvailabilityZone' => [ 'shape' => 'Boolean', ], 'MinTargetCapacity' => [ 'shape' => 'Integer', ], ], ], 'SpotPlacement' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'Tenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'tenancy', ], ], ], 'SpotPrice' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'ProductDescription' => [ 'shape' => 'RIProductDescription', 'locationName' => 'productDescription', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], 'Timestamp' => [ 'shape' => 'DateTime', 'locationName' => 'timestamp', ], ], ], 'SpotPriceHistoryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpotPrice', 'locationName' => 'item', ], ], 'StaleIpPermission' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'IpProtocol' => [ 'shape' => 'String', 'locationName' => 'ipProtocol', ], 'IpRanges' => [ 'shape' => 'IpRanges', 'locationName' => 'ipRanges', ], 'PrefixListIds' => [ 'shape' => 'PrefixListIdSet', 'locationName' => 'prefixListIds', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], 'UserIdGroupPairs' => [ 'shape' => 'UserIdGroupPairSet', 'locationName' => 'groups', ], ], ], 'StaleIpPermissionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'StaleIpPermission', 'locationName' => 'item', ], ], 'StaleSecurityGroup' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'StaleIpPermissions' => [ 'shape' => 'StaleIpPermissionSet', 'locationName' => 'staleIpPermissions', ], 'StaleIpPermissionsEgress' => [ 'shape' => 'StaleIpPermissionSet', 'locationName' => 'staleIpPermissionsEgress', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'StaleSecurityGroupSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'StaleSecurityGroup', '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' => [ 'PendingAcceptance', 'Pending', 'Available', 'Deleting', 'Deleted', 'Rejected', 'Failed', 'Expired', ], ], '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' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'Hibernate' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Force' => [ 'shape' => 'Boolean', 'locationName' => 'force', ], ], ], 'StopInstancesResult' => [ 'type' => 'structure', 'members' => [ 'StoppingInstances' => [ 'shape' => 'InstanceStateChangeList', 'locationName' => 'instancesSet', ], ], ], 'Storage' => [ 'type' => 'structure', 'members' => [ 'S3' => [ 'shape' => 'S3Storage', ], ], ], 'StorageLocation' => [ 'type' => 'structure', 'members' => [ 'Bucket' => [ 'shape' => 'String', ], 'Key' => [ 'shape' => 'String', ], ], ], 'String' => [ 'type' => 'string', ], 'Subnet' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'AvailableIpAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'availableIpAddressCount', ], 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'DefaultForAz' => [ 'shape' => 'Boolean', 'locationName' => 'defaultForAz', ], 'MapPublicIpOnLaunch' => [ 'shape' => 'Boolean', 'locationName' => 'mapPublicIpOnLaunch', ], 'State' => [ 'shape' => 'SubnetState', 'locationName' => 'state', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'AssignIpv6AddressOnCreation' => [ 'shape' => 'Boolean', 'locationName' => 'assignIpv6AddressOnCreation', ], 'Ipv6CidrBlockAssociationSet' => [ 'shape' => 'SubnetIpv6CidrBlockAssociationSet', 'locationName' => 'ipv6CidrBlockAssociationSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'SubnetArn' => [ 'shape' => 'String', 'locationName' => 'subnetArn', ], ], ], 'SubnetCidrBlockState' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'SubnetCidrBlockStateCode', 'locationName' => 'state', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], ], ], 'SubnetCidrBlockStateCode' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'disassociating', 'disassociated', 'failing', 'failed', ], ], 'SubnetIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'SubnetId', ], ], 'SubnetIpv6CidrBlockAssociation' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], 'Ipv6CidrBlockState' => [ 'shape' => 'SubnetCidrBlockState', 'locationName' => 'ipv6CidrBlockState', ], ], ], 'SubnetIpv6CidrBlockAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetIpv6CidrBlockAssociation', 'locationName' => 'item', ], ], 'SubnetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Subnet', 'locationName' => 'item', ], ], 'SubnetState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', ], ], 'SuccessfulInstanceCreditSpecificationItem' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], ], ], 'SuccessfulInstanceCreditSpecificationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SuccessfulInstanceCreditSpecificationItem', 'locationName' => 'item', ], ], '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' => [ 'Key' => [ 'shape' => 'String', 'locationName' => 'key', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'ResourceType', 'locationName' => 'resourceType', ], 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'TagDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagDescription', 'locationName' => 'item', ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', 'locationName' => 'item', ], ], 'TagSpecification' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ResourceType', 'locationName' => 'resourceType', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'Tag', ], ], ], 'TagSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagSpecification', 'locationName' => 'item', ], ], 'TargetCapacitySpecification' => [ 'type' => 'structure', 'members' => [ 'TotalTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalTargetCapacity', ], 'OnDemandTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'onDemandTargetCapacity', ], 'SpotTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'spotTargetCapacity', ], 'DefaultTargetCapacityType' => [ 'shape' => 'DefaultTargetCapacityType', 'locationName' => 'defaultTargetCapacityType', ], ], ], 'TargetCapacitySpecificationRequest' => [ 'type' => 'structure', 'required' => [ 'TotalTargetCapacity', ], 'members' => [ 'TotalTargetCapacity' => [ 'shape' => 'Integer', ], 'OnDemandTargetCapacity' => [ 'shape' => 'Integer', ], 'SpotTargetCapacity' => [ 'shape' => 'Integer', ], 'DefaultTargetCapacityType' => [ 'shape' => 'DefaultTargetCapacityType', ], ], ], 'TargetConfiguration' => [ 'type' => 'structure', 'members' => [ 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'OfferingId' => [ 'shape' => 'String', 'locationName' => 'offeringId', ], ], ], 'TargetConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'OfferingId', ], 'members' => [ 'InstanceCount' => [ 'shape' => 'Integer', ], 'OfferingId' => [ 'shape' => 'String', ], ], ], 'TargetConfigurationRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetConfigurationRequest', 'locationName' => 'TargetConfigurationRequest', ], ], 'TargetGroup' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', 'locationName' => 'arn', ], ], ], 'TargetGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetGroup', 'locationName' => 'item', ], 'max' => 5, 'min' => 1, ], 'TargetGroupsConfig' => [ 'type' => 'structure', 'members' => [ 'TargetGroups' => [ 'shape' => 'TargetGroups', 'locationName' => 'targetGroups', ], ], ], 'TargetNetwork' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'TargetNetworkId' => [ 'shape' => 'String', 'locationName' => 'targetNetworkId', ], 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'Status' => [ 'shape' => 'AssociationStatus', 'locationName' => 'status', ], 'SecurityGroups' => [ 'shape' => 'ValueStringList', 'locationName' => 'securityGroups', ], ], ], 'TargetNetworkSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetNetwork', 'locationName' => 'item', ], ], 'TargetReservationValue' => [ 'type' => 'structure', 'members' => [ 'ReservationValue' => [ 'shape' => 'ReservationValue', 'locationName' => 'reservationValue', ], 'TargetConfiguration' => [ 'shape' => 'TargetConfiguration', 'locationName' => 'targetConfiguration', ], ], ], 'TargetReservationValueSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetReservationValue', 'locationName' => 'item', ], ], 'TelemetryStatus' => [ 'type' => 'string', 'enum' => [ 'UP', 'DOWN', ], ], 'Tenancy' => [ 'type' => 'string', 'enum' => [ 'default', 'dedicated', 'host', ], ], 'TerminateClientVpnConnectionsRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', ], 'ConnectionId' => [ 'shape' => 'String', ], 'Username' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'TerminateClientVpnConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'Username' => [ 'shape' => 'String', 'locationName' => 'username', ], 'ConnectionStatuses' => [ 'shape' => 'TerminateConnectionStatusSet', 'locationName' => 'connectionStatuses', ], ], ], 'TerminateConnectionStatus' => [ 'type' => 'structure', 'members' => [ 'ConnectionId' => [ 'shape' => 'String', 'locationName' => 'connectionId', ], 'PreviousStatus' => [ 'shape' => 'ClientVpnConnectionStatus', 'locationName' => 'previousStatus', ], 'CurrentStatus' => [ 'shape' => 'ClientVpnConnectionStatus', 'locationName' => 'currentStatus', ], ], ], 'TerminateConnectionStatusSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TerminateConnectionStatus', 'locationName' => 'item', ], ], 'TerminateInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'TerminateInstancesResult' => [ 'type' => 'structure', 'members' => [ 'TerminatingInstances' => [ 'shape' => 'InstanceStateChangeList', 'locationName' => 'instancesSet', ], ], ], 'TrafficType' => [ 'type' => 'string', 'enum' => [ 'ACCEPT', 'REJECT', 'ALL', ], ], 'TransitGateway' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'TransitGatewayArn' => [ 'shape' => 'String', 'locationName' => 'transitGatewayArn', ], 'State' => [ 'shape' => 'TransitGatewayState', 'locationName' => 'state', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Options' => [ 'shape' => 'TransitGatewayOptions', 'locationName' => 'options', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayAssociation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayRouteTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'State' => [ 'shape' => 'TransitGatewayAssociationState', 'locationName' => 'state', ], ], ], 'TransitGatewayAssociationState' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'disassociating', 'disassociated', ], ], 'TransitGatewayAttachment' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'TransitGatewayOwnerId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayOwnerId', ], 'ResourceOwnerId' => [ 'shape' => 'String', 'locationName' => 'resourceOwnerId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'State' => [ 'shape' => 'TransitGatewayAttachmentState', 'locationName' => 'state', ], 'Association' => [ 'shape' => 'TransitGatewayAttachmentAssociation', 'locationName' => 'association', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayAttachmentAssociation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayRouteTableId', ], 'State' => [ 'shape' => 'TransitGatewayAssociationState', 'locationName' => 'state', ], ], ], 'TransitGatewayAttachmentIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'TransitGatewayAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayAttachment', 'locationName' => 'item', ], ], 'TransitGatewayAttachmentPropagation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayRouteTableId', ], 'State' => [ 'shape' => 'TransitGatewayPropagationState', 'locationName' => 'state', ], ], ], 'TransitGatewayAttachmentPropagationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayAttachmentPropagation', 'locationName' => 'item', ], ], 'TransitGatewayAttachmentResourceType' => [ 'type' => 'string', 'enum' => [ 'vpc', 'vpn', ], ], 'TransitGatewayAttachmentState' => [ 'type' => 'string', 'enum' => [ 'pendingAcceptance', 'rollingBack', 'pending', 'available', 'modifying', 'deleting', 'deleted', 'failed', 'rejected', 'rejecting', 'failing', ], ], 'TransitGatewayIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'TransitGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGateway', 'locationName' => 'item', ], ], 'TransitGatewayMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'TransitGatewayOptions' => [ 'type' => 'structure', 'members' => [ 'AmazonSideAsn' => [ 'shape' => 'Long', 'locationName' => 'amazonSideAsn', ], 'AutoAcceptSharedAttachments' => [ 'shape' => 'AutoAcceptSharedAttachmentsValue', 'locationName' => 'autoAcceptSharedAttachments', ], 'DefaultRouteTableAssociation' => [ 'shape' => 'DefaultRouteTableAssociationValue', 'locationName' => 'defaultRouteTableAssociation', ], 'AssociationDefaultRouteTableId' => [ 'shape' => 'String', 'locationName' => 'associationDefaultRouteTableId', ], 'DefaultRouteTablePropagation' => [ 'shape' => 'DefaultRouteTablePropagationValue', 'locationName' => 'defaultRouteTablePropagation', ], 'PropagationDefaultRouteTableId' => [ 'shape' => 'String', 'locationName' => 'propagationDefaultRouteTableId', ], 'VpnEcmpSupport' => [ 'shape' => 'VpnEcmpSupportValue', 'locationName' => 'vpnEcmpSupport', ], 'DnsSupport' => [ 'shape' => 'DnsSupportValue', 'locationName' => 'dnsSupport', ], ], ], 'TransitGatewayPropagation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'TransitGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayRouteTableId', ], 'State' => [ 'shape' => 'TransitGatewayPropagationState', 'locationName' => 'state', ], ], ], 'TransitGatewayPropagationState' => [ 'type' => 'string', 'enum' => [ 'enabling', 'enabled', 'disabling', 'disabled', ], ], 'TransitGatewayRequestOptions' => [ 'type' => 'structure', 'members' => [ 'AmazonSideAsn' => [ 'shape' => 'Long', ], 'AutoAcceptSharedAttachments' => [ 'shape' => 'AutoAcceptSharedAttachmentsValue', ], 'DefaultRouteTableAssociation' => [ 'shape' => 'DefaultRouteTableAssociationValue', ], 'DefaultRouteTablePropagation' => [ 'shape' => 'DefaultRouteTablePropagationValue', ], 'VpnEcmpSupport' => [ 'shape' => 'VpnEcmpSupportValue', ], 'DnsSupport' => [ 'shape' => 'DnsSupportValue', ], ], ], 'TransitGatewayRoute' => [ 'type' => 'structure', 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'TransitGatewayAttachments' => [ 'shape' => 'TransitGatewayRouteAttachmentList', 'locationName' => 'transitGatewayAttachments', ], 'Type' => [ 'shape' => 'TransitGatewayRouteType', 'locationName' => 'type', ], 'State' => [ 'shape' => 'TransitGatewayRouteState', 'locationName' => 'state', ], ], ], 'TransitGatewayRouteAttachment' => [ 'type' => 'structure', 'members' => [ 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], ], ], 'TransitGatewayRouteAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRouteAttachment', 'locationName' => 'item', ], ], 'TransitGatewayRouteList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRoute', 'locationName' => 'item', ], ], 'TransitGatewayRouteState' => [ 'type' => 'string', 'enum' => [ 'pending', 'active', 'blackhole', 'deleting', 'deleted', ], ], 'TransitGatewayRouteTable' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayRouteTableId', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'State' => [ 'shape' => 'TransitGatewayRouteTableState', 'locationName' => 'state', ], 'DefaultAssociationRouteTable' => [ 'shape' => 'Boolean', 'locationName' => 'defaultAssociationRouteTable', ], 'DefaultPropagationRouteTable' => [ 'shape' => 'Boolean', 'locationName' => 'defaultPropagationRouteTable', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayRouteTableAssociation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'State' => [ 'shape' => 'TransitGatewayAssociationState', 'locationName' => 'state', ], ], ], 'TransitGatewayRouteTableAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRouteTableAssociation', 'locationName' => 'item', ], ], 'TransitGatewayRouteTableIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'TransitGatewayRouteTableList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRouteTable', 'locationName' => 'item', ], ], 'TransitGatewayRouteTablePropagation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'State' => [ 'shape' => 'TransitGatewayPropagationState', 'locationName' => 'state', ], ], ], 'TransitGatewayRouteTablePropagationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRouteTablePropagation', 'locationName' => 'item', ], ], 'TransitGatewayRouteTableState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'TransitGatewayRouteType' => [ 'type' => 'string', 'enum' => [ 'static', 'propagated', ], ], 'TransitGatewayState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'modifying', 'deleting', 'deleted', ], ], 'TransitGatewayVpcAttachment' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'VpcOwnerId' => [ 'shape' => 'String', 'locationName' => 'vpcOwnerId', ], 'State' => [ 'shape' => 'TransitGatewayAttachmentState', 'locationName' => 'state', ], 'SubnetIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'subnetIds', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Options' => [ 'shape' => 'TransitGatewayVpcAttachmentOptions', 'locationName' => 'options', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayVpcAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayVpcAttachment', 'locationName' => 'item', ], ], 'TransitGatewayVpcAttachmentOptions' => [ 'type' => 'structure', 'members' => [ 'DnsSupport' => [ 'shape' => 'DnsSupportValue', 'locationName' => 'dnsSupport', ], 'Ipv6Support' => [ 'shape' => 'Ipv6SupportValue', 'locationName' => 'ipv6Support', ], ], ], 'TransportProtocol' => [ 'type' => 'string', 'enum' => [ 'tcp', 'udp', ], ], 'TunnelOptionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpnTunnelOptionsSpecification', 'locationName' => 'item', ], ], 'UnassignIpv6AddressesRequest' => [ 'type' => 'structure', 'required' => [ 'Ipv6Addresses', 'NetworkInterfaceId', ], 'members' => [ 'Ipv6Addresses' => [ 'shape' => 'Ipv6AddressList', 'locationName' => 'ipv6Addresses', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], ], ], 'UnassignIpv6AddressesResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'UnassignedIpv6Addresses' => [ 'shape' => 'Ipv6AddressList', 'locationName' => 'unassignedIpv6Addresses', ], ], ], 'UnassignPrivateIpAddressesRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', 'PrivateIpAddresses', ], 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'PrivateIpAddresses' => [ 'shape' => 'PrivateIpAddressStringList', 'locationName' => 'privateIpAddress', ], ], ], 'UnmonitorInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'UnmonitorInstancesResult' => [ 'type' => 'structure', 'members' => [ 'InstanceMonitorings' => [ 'shape' => 'InstanceMonitoringList', 'locationName' => 'instancesSet', ], ], ], 'UnsuccessfulInstanceCreditSpecificationErrorCode' => [ 'type' => 'string', 'enum' => [ 'InvalidInstanceID.Malformed', 'InvalidInstanceID.NotFound', 'IncorrectInstanceState', 'InstanceCreditSpecification.NotSupported', ], ], 'UnsuccessfulInstanceCreditSpecificationItem' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Error' => [ 'shape' => 'UnsuccessfulInstanceCreditSpecificationItemError', 'locationName' => 'error', ], ], ], 'UnsuccessfulInstanceCreditSpecificationItemError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'UnsuccessfulInstanceCreditSpecificationErrorCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'UnsuccessfulInstanceCreditSpecificationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'UnsuccessfulInstanceCreditSpecificationItem', 'locationName' => 'item', ], ], 'UnsuccessfulItem' => [ 'type' => 'structure', 'members' => [ 'Error' => [ 'shape' => 'UnsuccessfulItemError', 'locationName' => 'error', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], ], ], 'UnsuccessfulItemError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'UnsuccessfulItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UnsuccessfulItem', 'locationName' => 'item', ], ], 'UnsuccessfulItemSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'UnsuccessfulItem', 'locationName' => 'item', ], ], 'UpdateSecurityGroupRuleDescriptionsEgressRequest' => [ 'type' => 'structure', 'required' => [ 'IpPermissions', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'GroupId' => [ 'shape' => 'String', ], 'GroupName' => [ 'shape' => 'String', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', ], ], ], 'UpdateSecurityGroupRuleDescriptionsEgressResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'UpdateSecurityGroupRuleDescriptionsIngressRequest' => [ 'type' => 'structure', 'required' => [ 'IpPermissions', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'GroupId' => [ 'shape' => 'String', ], 'GroupName' => [ 'shape' => 'String', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', ], ], ], 'UpdateSecurityGroupRuleDescriptionsIngressResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], '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' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'PeeringStatus' => [ 'shape' => 'String', 'locationName' => 'peeringStatus', ], 'UserId' => [ 'shape' => 'String', 'locationName' => 'userId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], ], ], 'UserIdGroupPairList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserIdGroupPair', 'locationName' => 'item', ], ], 'UserIdGroupPairSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserIdGroupPair', 'locationName' => 'item', ], ], 'UserIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'UserId', ], ], 'ValueStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'VersionDescription' => [ 'type' => 'string', 'max' => 255, ], 'VersionStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'VgwTelemetry' => [ 'type' => 'structure', 'members' => [ 'AcceptedRouteCount' => [ 'shape' => 'Integer', 'locationName' => 'acceptedRouteCount', ], 'LastStatusChange' => [ 'shape' => 'DateTime', 'locationName' => 'lastStatusChange', ], 'OutsideIpAddress' => [ 'shape' => 'String', 'locationName' => 'outsideIpAddress', ], 'Status' => [ 'shape' => 'TelemetryStatus', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], ], ], 'VgwTelemetryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VgwTelemetry', 'locationName' => 'item', ], ], 'VirtualizationType' => [ 'type' => 'string', 'enum' => [ 'hvm', 'paravirtual', ], ], 'Volume' => [ 'type' => 'structure', 'members' => [ 'Attachments' => [ 'shape' => 'VolumeAttachmentList', 'locationName' => 'attachmentSet', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], 'Size' => [ 'shape' => 'Integer', 'locationName' => 'size', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'State' => [ 'shape' => 'VolumeState', 'locationName' => 'status', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'Iops' => [ 'shape' => 'Integer', 'locationName' => 'iops', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VolumeType' => [ 'shape' => 'VolumeType', 'locationName' => 'volumeType', ], ], ], 'VolumeAttachment' => [ 'type' => 'structure', 'members' => [ 'AttachTime' => [ 'shape' => 'DateTime', 'locationName' => 'attachTime', ], 'Device' => [ 'shape' => 'String', 'locationName' => 'device', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'State' => [ 'shape' => 'VolumeAttachmentState', 'locationName' => 'status', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], ], ], 'VolumeAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeAttachment', 'locationName' => 'item', ], ], 'VolumeAttachmentState' => [ 'type' => 'string', 'enum' => [ 'attaching', 'attached', 'detaching', 'detached', 'busy', ], ], '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', ], ], 'VolumeModification' => [ 'type' => 'structure', 'members' => [ 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'ModificationState' => [ 'shape' => 'VolumeModificationState', 'locationName' => 'modificationState', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'TargetSize' => [ 'shape' => 'Integer', 'locationName' => 'targetSize', ], 'TargetIops' => [ 'shape' => 'Integer', 'locationName' => 'targetIops', ], 'TargetVolumeType' => [ 'shape' => 'VolumeType', 'locationName' => 'targetVolumeType', ], 'OriginalSize' => [ 'shape' => 'Integer', 'locationName' => 'originalSize', ], 'OriginalIops' => [ 'shape' => 'Integer', 'locationName' => 'originalIops', ], 'OriginalVolumeType' => [ 'shape' => 'VolumeType', 'locationName' => 'originalVolumeType', ], 'Progress' => [ 'shape' => 'Long', 'locationName' => 'progress', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], 'EndTime' => [ 'shape' => 'DateTime', 'locationName' => 'endTime', ], ], ], 'VolumeModificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeModification', 'locationName' => 'item', ], ], 'VolumeModificationState' => [ 'type' => 'string', 'enum' => [ 'modifying', 'optimizing', 'completed', 'failed', ], ], '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', ], 'EventId' => [ 'shape' => 'String', 'locationName' => 'eventId', ], 'EventType' => [ 'shape' => 'String', 'locationName' => 'eventType', ], ], ], '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' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'EventId' => [ 'shape' => 'String', 'locationName' => 'eventId', ], 'EventType' => [ 'shape' => 'String', 'locationName' => 'eventType', ], 'NotAfter' => [ 'shape' => 'DateTime', 'locationName' => 'notAfter', ], 'NotBefore' => [ 'shape' => 'DateTime', 'locationName' => 'notBefore', ], ], ], 'VolumeStatusEventsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeStatusEvent', 'locationName' => 'item', ], ], 'VolumeStatusInfo' => [ 'type' => 'structure', 'members' => [ 'Details' => [ 'shape' => 'VolumeStatusDetailsList', 'locationName' => 'details', ], 'Status' => [ 'shape' => 'VolumeStatusInfoStatus', 'locationName' => 'status', ], ], ], 'VolumeStatusInfoStatus' => [ 'type' => 'string', 'enum' => [ 'ok', 'impaired', 'insufficient-data', ], ], 'VolumeStatusItem' => [ 'type' => 'structure', 'members' => [ 'Actions' => [ 'shape' => 'VolumeStatusActionsList', 'locationName' => 'actionsSet', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Events' => [ 'shape' => 'VolumeStatusEventsList', 'locationName' => 'eventsSet', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'VolumeStatus' => [ 'shape' => 'VolumeStatusInfo', 'locationName' => 'volumeStatus', ], ], ], 'VolumeStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeStatusItem', 'locationName' => 'item', ], ], 'VolumeStatusName' => [ 'type' => 'string', 'enum' => [ 'io-enabled', 'io-performance', ], ], 'VolumeType' => [ 'type' => 'string', 'enum' => [ 'standard', 'io1', 'gp2', 'sc1', 'st1', ], ], 'Vpc' => [ 'type' => 'structure', 'members' => [ 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'DhcpOptionsId' => [ 'shape' => 'String', 'locationName' => 'dhcpOptionsId', ], 'State' => [ 'shape' => 'VpcState', 'locationName' => 'state', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'InstanceTenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'instanceTenancy', ], 'Ipv6CidrBlockAssociationSet' => [ 'shape' => 'VpcIpv6CidrBlockAssociationSet', 'locationName' => 'ipv6CidrBlockAssociationSet', ], 'CidrBlockAssociationSet' => [ 'shape' => 'VpcCidrBlockAssociationSet', 'locationName' => 'cidrBlockAssociationSet', ], 'IsDefault' => [ 'shape' => 'Boolean', 'locationName' => 'isDefault', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'VpcAttachment' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'AttachmentStatus', 'locationName' => 'state', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'VpcAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcAttachment', 'locationName' => 'item', ], ], 'VpcAttributeName' => [ 'type' => 'string', 'enum' => [ 'enableDnsSupport', 'enableDnsHostnames', ], ], 'VpcCidrBlockAssociation' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'CidrBlockState' => [ 'shape' => 'VpcCidrBlockState', 'locationName' => 'cidrBlockState', ], ], ], 'VpcCidrBlockAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcCidrBlockAssociation', 'locationName' => 'item', ], ], 'VpcCidrBlockState' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'VpcCidrBlockStateCode', 'locationName' => 'state', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], ], ], 'VpcCidrBlockStateCode' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'disassociating', 'disassociated', 'failing', 'failed', ], ], 'VpcClassicLink' => [ 'type' => 'structure', 'members' => [ 'ClassicLinkEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'classicLinkEnabled', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], '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', ], 'VpcEndpointType' => [ 'shape' => 'VpcEndpointType', 'locationName' => 'vpcEndpointType', ], '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', ], 'SubnetIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'subnetIdSet', ], 'Groups' => [ 'shape' => 'GroupIdentifierSet', 'locationName' => 'groupSet', ], 'PrivateDnsEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'privateDnsEnabled', ], 'NetworkInterfaceIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'networkInterfaceIdSet', ], 'DnsEntries' => [ 'shape' => 'DnsEntrySet', 'locationName' => 'dnsEntrySet', ], 'CreationTimestamp' => [ 'shape' => 'DateTime', 'locationName' => 'creationTimestamp', ], ], ], 'VpcEndpointConnection' => [ 'type' => 'structure', 'members' => [ 'ServiceId' => [ 'shape' => 'String', 'locationName' => 'serviceId', ], 'VpcEndpointId' => [ 'shape' => 'String', 'locationName' => 'vpcEndpointId', ], 'VpcEndpointOwner' => [ 'shape' => 'String', 'locationName' => 'vpcEndpointOwner', ], 'VpcEndpointState' => [ 'shape' => 'State', 'locationName' => 'vpcEndpointState', ], 'CreationTimestamp' => [ 'shape' => 'DateTime', 'locationName' => 'creationTimestamp', ], ], ], 'VpcEndpointConnectionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcEndpointConnection', 'locationName' => 'item', ], ], 'VpcEndpointSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcEndpoint', 'locationName' => 'item', ], ], 'VpcEndpointType' => [ 'type' => 'string', 'enum' => [ 'Interface', 'Gateway', ], ], 'VpcIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'VpcId', ], ], 'VpcIpv6CidrBlockAssociation' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], 'Ipv6CidrBlockState' => [ 'shape' => 'VpcCidrBlockState', 'locationName' => 'ipv6CidrBlockState', ], ], ], 'VpcIpv6CidrBlockAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcIpv6CidrBlockAssociation', 'locationName' => 'item', ], ], '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', ], ], 'VpcPeeringConnectionOptionsDescription' => [ 'type' => 'structure', 'members' => [ 'AllowDnsResolutionFromRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowDnsResolutionFromRemoteVpc', ], 'AllowEgressFromLocalClassicLinkToRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalClassicLinkToRemoteVpc', ], 'AllowEgressFromLocalVpcToRemoteClassicLink' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalVpcToRemoteClassicLink', ], ], ], 'VpcPeeringConnectionStateReason' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'VpcPeeringConnectionStateReasonCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'VpcPeeringConnectionStateReasonCode' => [ 'type' => 'string', 'enum' => [ 'initiating-request', 'pending-acceptance', 'active', 'deleted', 'rejected', 'failed', 'expired', 'provisioning', 'deleting', ], ], 'VpcPeeringConnectionVpcInfo' => [ 'type' => 'structure', 'members' => [ 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'Ipv6CidrBlockSet' => [ 'shape' => 'Ipv6CidrBlockSet', 'locationName' => 'ipv6CidrBlockSet', ], 'CidrBlockSet' => [ 'shape' => 'CidrBlockSet', 'locationName' => 'cidrBlockSet', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'PeeringOptions' => [ 'shape' => 'VpcPeeringConnectionOptionsDescription', 'locationName' => 'peeringOptions', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'Region' => [ 'shape' => 'String', 'locationName' => 'region', ], ], ], 'VpcState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', ], ], 'VpcTenancy' => [ 'type' => 'string', 'enum' => [ 'default', ], ], 'VpnConnection' => [ 'type' => 'structure', 'members' => [ 'CustomerGatewayConfiguration' => [ 'shape' => 'String', 'locationName' => 'customerGatewayConfiguration', ], 'CustomerGatewayId' => [ 'shape' => 'String', 'locationName' => 'customerGatewayId', ], 'Category' => [ 'shape' => 'String', 'locationName' => 'category', ], 'State' => [ 'shape' => 'VpnState', 'locationName' => 'state', ], 'Type' => [ 'shape' => 'GatewayType', 'locationName' => 'type', ], 'VpnConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpnConnectionId', ], 'VpnGatewayId' => [ 'shape' => 'String', 'locationName' => 'vpnGatewayId', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'Options' => [ 'shape' => 'VpnConnectionOptions', 'locationName' => 'options', ], 'Routes' => [ 'shape' => 'VpnStaticRouteList', 'locationName' => 'routes', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VgwTelemetry' => [ 'shape' => 'VgwTelemetryList', 'locationName' => 'vgwTelemetry', ], ], ], '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', ], 'TunnelOptions' => [ 'shape' => 'TunnelOptionsList', ], ], ], 'VpnEcmpSupportValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'VpnGateway' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'State' => [ 'shape' => 'VpnState', 'locationName' => 'state', ], 'Type' => [ 'shape' => 'GatewayType', 'locationName' => 'type', ], 'VpcAttachments' => [ 'shape' => 'VpcAttachmentList', 'locationName' => 'attachments', ], 'VpnGatewayId' => [ 'shape' => 'String', 'locationName' => 'vpnGatewayId', ], 'AmazonSideAsn' => [ 'shape' => 'Long', 'locationName' => 'amazonSideAsn', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'VpnGatewayIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'VpnGatewayId', ], ], 'VpnGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpnGateway', 'locationName' => 'item', ], ], 'VpnProtocol' => [ 'type' => 'string', 'enum' => [ 'openvpn', ], ], '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', ], ], 'VpnTunnelOptionsSpecification' => [ 'type' => 'structure', 'members' => [ 'TunnelInsideCidr' => [ 'shape' => 'String', ], 'PreSharedKey' => [ 'shape' => 'String', ], ], ], 'WithdrawByoipCidrRequest' => [ 'type' => 'structure', 'required' => [ 'Cidr', ], 'members' => [ 'Cidr' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'WithdrawByoipCidrResult' => [ 'type' => 'structure', 'members' => [ 'ByoipCidr' => [ 'shape' => 'ByoipCidr', 'locationName' => 'byoipCidr', ], ], ], 'ZoneIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ZoneId', ], ], 'ZoneNameStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ZoneName', ], ], 'scope' => [ 'type' => 'string', 'enum' => [ 'Availability Zone', 'Region', ], ], ],]; diff --git a/lib/aws/Aws/data/ec2/2016-11-15/paginators-1.json.php b/lib/aws/Aws/data/ec2/2016-11-15/paginators-1.json.php new file mode 100644 index 0000000..0eeb164 --- /dev/null +++ b/lib/aws/Aws/data/ec2/2016-11-15/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ec2/2016-11-15/paginators-1.json +return [ 'pagination' => [ 'DescribeAccountAttributes' => [ 'result_key' => 'AccountAttributes', ], 'DescribeAddresses' => [ 'result_key' => 'Addresses', ], 'DescribeAvailabilityZones' => [ 'result_key' => 'AvailabilityZones', ], 'DescribeBundleTasks' => [ 'result_key' => 'BundleTasks', ], 'DescribeByoipCidrs' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'ByoipCidrs', ], 'DescribeCapacityReservations' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'CapacityReservations', ], 'DescribeClassicLinkInstances' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Instances', ], 'DescribeClientVpnAuthorizationRules' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'AuthorizationRules', ], 'DescribeClientVpnConnections' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Connections', ], 'DescribeClientVpnEndpoints' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'ClientVpnEndpoints', ], 'DescribeClientVpnRoutes' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Routes', ], 'DescribeClientVpnTargetNetworks' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'ClientVpnTargetNetworks', ], 'DescribeConversionTasks' => [ 'result_key' => 'ConversionTasks', ], 'DescribeCustomerGateways' => [ 'result_key' => 'CustomerGateways', ], 'DescribeDhcpOptions' => [ 'result_key' => 'DhcpOptions', ], 'DescribeEgressOnlyInternetGateways' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'EgressOnlyInternetGateways', ], 'DescribeExportTasks' => [ 'result_key' => 'ExportTasks', ], 'DescribeFleets' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Fleets', ], 'DescribeFlowLogs' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'FlowLogs', ], 'DescribeFpgaImages' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'FpgaImages', ], 'DescribeHostReservationOfferings' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'OfferingSet', ], 'DescribeHostReservations' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'HostReservationSet', ], 'DescribeHosts' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Hosts', ], 'DescribeIamInstanceProfileAssociations' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'IamInstanceProfileAssociations', ], 'DescribeImages' => [ 'result_key' => 'Images', ], 'DescribeImportImageTasks' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'ImportImageTasks', ], 'DescribeImportSnapshotTasks' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'ImportSnapshotTasks', ], 'DescribeInstanceCreditSpecifications' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'InstanceCreditSpecifications', ], 'DescribeInstanceStatus' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'InstanceStatuses', ], 'DescribeInstances' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Reservations', ], 'DescribeInternetGateways' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'InternetGateways', ], 'DescribeKeyPairs' => [ 'result_key' => 'KeyPairs', ], 'DescribeLaunchTemplateVersions' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'LaunchTemplateVersions', ], 'DescribeLaunchTemplates' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'LaunchTemplates', ], 'DescribeMovingAddresses' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'MovingAddressStatuses', ], 'DescribeNatGateways' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'NatGateways', ], 'DescribeNetworkAcls' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'NetworkAcls', ], 'DescribeNetworkInterfacePermissions' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'NetworkInterfacePermissions', ], 'DescribeNetworkInterfaces' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'NetworkInterfaces', ], 'DescribePlacementGroups' => [ 'result_key' => 'PlacementGroups', ], 'DescribePrefixLists' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'PrefixLists', ], 'DescribePrincipalIdFormat' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Principals', ], 'DescribePublicIpv4Pools' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'PublicIpv4Pools', ], 'DescribeRegions' => [ 'result_key' => 'Regions', ], 'DescribeReservedInstances' => [ 'result_key' => 'ReservedInstances', ], 'DescribeReservedInstancesListings' => [ 'result_key' => 'ReservedInstancesListings', ], 'DescribeReservedInstancesModifications' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'result_key' => 'ReservedInstancesModifications', ], 'DescribeReservedInstancesOfferings' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'ReservedInstancesOfferings', ], 'DescribeRouteTables' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'RouteTables', ], 'DescribeScheduledInstanceAvailability' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'ScheduledInstanceAvailabilitySet', ], 'DescribeScheduledInstances' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'ScheduledInstanceSet', ], 'DescribeSecurityGroups' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'SecurityGroups', ], 'DescribeSnapshots' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Snapshots', ], 'DescribeSpotFleetRequests' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'SpotFleetRequestConfigs', ], 'DescribeSpotInstanceRequests' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'SpotInstanceRequests', ], 'DescribeSpotPriceHistory' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'SpotPriceHistory', ], 'DescribeStaleSecurityGroups' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'StaleSecurityGroupSet', ], 'DescribeSubnets' => [ 'result_key' => 'Subnets', ], 'DescribeTags' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Tags', ], 'DescribeTransitGatewayAttachments' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'TransitGatewayAttachments', ], 'DescribeTransitGatewayRouteTables' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'TransitGatewayRouteTables', ], 'DescribeTransitGatewayVpcAttachments' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'TransitGatewayVpcAttachments', ], 'DescribeTransitGateways' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'TransitGateways', ], 'DescribeVolumeStatus' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'VolumeStatuses', ], 'DescribeVolumes' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Volumes', ], 'DescribeVolumesModifications' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'VolumesModifications', ], 'DescribeVpcClassicLinkDnsSupport' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Vpcs', ], 'DescribeVpcEndpointConnectionNotifications' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'ConnectionNotificationSet', ], 'DescribeVpcEndpointConnections' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'VpcEndpointConnections', ], 'DescribeVpcEndpointServiceConfigurations' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'ServiceConfigurations', ], 'DescribeVpcEndpointServicePermissions' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'AllowedPrincipals', ], 'DescribeVpcEndpoints' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'VpcEndpoints', ], 'DescribeVpcPeeringConnections' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'VpcPeeringConnections', ], 'DescribeVpcs' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Vpcs', ], 'DescribeVpnConnections' => [ 'result_key' => 'VpnConnections', ], 'DescribeVpnGateways' => [ 'result_key' => 'VpnGateways', ], 'GetTransitGatewayAttachmentPropagations' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'TransitGatewayAttachmentPropagations', ], 'GetTransitGatewayRouteTableAssociations' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Associations', ], 'GetTransitGatewayRouteTablePropagations' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'TransitGatewayRouteTablePropagations', ], ],]; diff --git a/lib/aws/Aws/data/ec2/2016-11-15/smoke.json.php b/lib/aws/Aws/data/ec2/2016-11-15/smoke.json.php new file mode 100644 index 0000000..15ebd9f --- /dev/null +++ b/lib/aws/Aws/data/ec2/2016-11-15/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ec2/2016-11-15/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeRegions', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeInstances', 'input' => [ 'InstanceIds' => [ 'i-12345678', ], ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/ec2/2016-11-15/waiters-1.json.php b/lib/aws/Aws/data/ec2/2016-11-15/waiters-1.json.php new file mode 100644 index 0000000..987ecac --- /dev/null +++ b/lib/aws/Aws/data/ec2/2016-11-15/waiters-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ec2/2016-11-15/waiters-1.json +return [ 'waiters' => [ '__default__' => [ 'interval' => 15, 'max_attempts' => 40, 'acceptor_type' => 'output', ], '__InstanceState' => [ 'operation' => 'DescribeInstances', 'acceptor_path' => 'Reservations[].Instances[].State.Name', ], '__InstanceStatus' => [ 'operation' => 'DescribeInstanceStatus', 'success_value' => 'ok', ], 'SystemStatusOk' => [ 'extends' => '__InstanceStatus', 'acceptor_path' => 'InstanceStatuses[].SystemStatus.Status', ], 'InstanceStatusOk' => [ 'extends' => '__InstanceStatus', 'acceptor_path' => 'InstanceStatuses[].InstanceStatus.Status', ], 'ImageAvailable' => [ 'operation' => 'DescribeImages', 'acceptor_path' => 'Images[].State', 'success_value' => 'available', 'failure_value' => [ 'failed', ], ], 'InstanceRunning' => [ 'extends' => '__InstanceState', 'success_value' => 'running', 'failure_value' => [ 'shutting-down', 'terminated', 'stopping', ], ], 'InstanceStopped' => [ 'extends' => '__InstanceState', 'success_value' => 'stopped', 'failure_value' => [ 'pending', 'terminated', ], ], 'InstanceTerminated' => [ 'extends' => '__InstanceState', 'success_value' => 'terminated', 'failure_value' => [ 'pending', 'stopping', ], ], '__ExportTaskState' => [ 'operation' => 'DescribeExportTasks', 'acceptor_path' => 'ExportTasks[].State', ], 'ExportTaskCompleted' => [ 'extends' => '__ExportTaskState', 'success_value' => 'completed', ], 'ExportTaskCancelled' => [ 'extends' => '__ExportTaskState', 'success_value' => 'cancelled', ], 'SnapshotCompleted' => [ 'operation' => 'DescribeSnapshots', 'success_path' => 'Snapshots[].State', 'success_value' => 'completed', ], 'SubnetAvailable' => [ 'operation' => 'DescribeSubnets', 'success_path' => 'Subnets[].State', 'success_value' => 'available', ], '__VolumeStatus' => [ 'operation' => 'DescribeVolumes', 'acceptor_path' => 'Volumes[].State', ], 'VolumeAvailable' => [ 'extends' => '__VolumeStatus', 'success_value' => 'available', 'failure_value' => [ 'deleted', ], ], 'VolumeInUse' => [ 'extends' => '__VolumeStatus', 'success_value' => 'in-use', 'failure_value' => [ 'deleted', ], ], 'VolumeDeleted' => [ 'extends' => '__VolumeStatus', 'success_type' => 'error', 'success_value' => 'InvalidVolume.NotFound', ], 'VpcAvailable' => [ 'operation' => 'DescribeVpcs', 'success_path' => 'Vpcs[].State', 'success_value' => 'available', ], '__VpnConnectionState' => [ 'operation' => 'DescribeVpnConnections', 'acceptor_path' => 'VpnConnections[].State', ], 'VpnConnectionAvailable' => [ 'extends' => '__VpnConnectionState', 'success_value' => 'available', 'failure_value' => [ 'deleting', 'deleted', ], ], 'VpnConnectionDeleted' => [ 'extends' => '__VpnConnectionState', 'success_value' => 'deleted', 'failure_value' => [ 'pending', ], ], 'BundleTaskComplete' => [ 'operation' => 'DescribeBundleTasks', 'acceptor_path' => 'BundleTasks[].State', 'success_value' => 'complete', 'failure_value' => [ 'failed', ], ], '__ConversionTaskState' => [ 'operation' => 'DescribeConversionTasks', 'acceptor_path' => 'ConversionTasks[].State', ], 'ConversionTaskCompleted' => [ 'extends' => '__ConversionTaskState', 'success_value' => 'completed', 'failure_value' => [ 'cancelled', 'cancelling', ], ], 'ConversionTaskCancelled' => [ 'extends' => '__ConversionTaskState', 'success_value' => 'cancelled', ], '__CustomerGatewayState' => [ 'operation' => 'DescribeCustomerGateways', 'acceptor_path' => 'CustomerGateways[].State', ], 'CustomerGatewayAvailable' => [ 'extends' => '__CustomerGatewayState', 'success_value' => 'available', 'failure_value' => [ 'deleted', 'deleting', ], ], 'ConversionTaskDeleted' => [ 'extends' => '__CustomerGatewayState', 'success_value' => 'deleted', ], '__SpotInstanceRequestState' => [ 'operation' => 'DescribeSpotInstanceRequests', 'acceptor_path' => 'SpotInstanceRequests[].Status.Code', ], 'SpotInstanceRequestFulfilled' => [ 'extends' => '__SpotInstanceRequestState', 'success_value' => 'fulfilled', 'failure_value' => [ 'schedule-expired', 'canceled-before-fulfillment', 'bad-parameters', 'system-error', ], ], ],]; diff --git a/lib/aws/Aws/data/ec2/2016-11-15/waiters-2.json.php b/lib/aws/Aws/data/ec2/2016-11-15/waiters-2.json.php new file mode 100644 index 0000000..5a6ea86 --- /dev/null +++ b/lib/aws/Aws/data/ec2/2016-11-15/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ec2/2016-11-15/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'InstanceExists' => [ 'delay' => 5, 'maxAttempts' => 40, 'operation' => 'DescribeInstances', 'acceptors' => [ [ 'matcher' => 'path', 'expected' => true, 'argument' => 'length(Reservations[]) > `0`', 'state' => 'success', ], [ 'matcher' => 'error', 'expected' => 'InvalidInstanceID.NotFound', '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', ], ], ], 'ImageExists' => [ 'operation' => 'DescribeImages', 'maxAttempts' => 40, 'delay' => 15, 'acceptors' => [ [ 'matcher' => 'path', 'expected' => true, 'argument' => 'length(Images[]) > `0`', 'state' => 'success', ], [ 'matcher' => 'error', 'expected' => 'InvalidAMIID.NotFound', 'state' => 'retry', ], ], ], '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', ], [ 'matcher' => 'error', 'expected' => 'InvalidInstanceID.NotFound', 'state' => 'retry', ], ], ], 'InstanceStatusOk' => [ 'operation' => 'DescribeInstanceStatus', 'maxAttempts' => 40, 'delay' => 15, 'acceptors' => [ [ 'state' => 'success', 'matcher' => 'pathAll', 'argument' => 'InstanceStatuses[].InstanceStatus.Status', 'expected' => 'ok', ], [ 'matcher' => 'error', 'expected' => 'InvalidInstanceID.NotFound', 'state' => 'retry', ], ], ], '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' => 'path', 'state' => 'success', 'argument' => 'length(KeyPairs[].KeyName) > `0`', ], [ 'expected' => 'InvalidKeyPair.NotFound', 'matcher' => 'error', 'state' => 'retry', ], ], ], 'NatGatewayAvailable' => [ 'operation' => 'DescribeNatGateways', 'delay' => 15, 'maxAttempts' => 40, 'acceptors' => [ [ 'state' => 'success', 'matcher' => 'pathAll', 'argument' => 'NatGateways[].State', 'expected' => 'available', ], [ 'state' => 'failure', 'matcher' => 'pathAny', 'argument' => 'NatGateways[].State', 'expected' => 'failed', ], [ 'state' => 'failure', 'matcher' => 'pathAny', 'argument' => 'NatGateways[].State', 'expected' => 'deleting', ], [ 'state' => 'failure', 'matcher' => 'pathAny', 'argument' => 'NatGateways[].State', 'expected' => 'deleted', ], [ 'state' => 'retry', 'matcher' => 'error', 'expected' => 'NatGatewayNotFound', ], ], ], 'NetworkInterfaceAvailable' => [ 'operation' => 'DescribeNetworkInterfaces', 'delay' => 20, 'maxAttempts' => 10, 'acceptors' => [ [ 'expected' => 'available', 'matcher' => 'pathAll', 'state' => 'success', 'argument' => 'NetworkInterfaces[].Status', ], [ 'expected' => 'InvalidNetworkInterfaceID.NotFound', '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' => 'success', 'matcher' => 'pathAll', 'argument' => 'SpotInstanceRequests[].Status.Code', 'expected' => 'request-canceled-and-instance-running', ], [ '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', ], [ 'state' => 'retry', 'matcher' => 'error', 'expected' => 'InvalidSpotInstanceRequestID.NotFound', ], ], ], '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' => 'InvalidVolume.NotFound', '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', ], ], ], 'VpcExists' => [ 'operation' => 'DescribeVpcs', 'delay' => 1, 'maxAttempts' => 5, 'acceptors' => [ [ 'matcher' => 'status', 'expected' => 200, 'state' => 'success', ], [ 'matcher' => 'error', 'expected' => 'InvalidVpcID.NotFound', 'state' => 'retry', ], ], ], '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', ], ], ], 'VpcPeeringConnectionExists' => [ 'delay' => 15, 'operation' => 'DescribeVpcPeeringConnections', 'maxAttempts' => 40, 'acceptors' => [ [ 'matcher' => 'status', 'expected' => 200, 'state' => 'success', ], [ 'matcher' => 'error', 'expected' => 'InvalidVpcPeeringConnectionID.NotFound', 'state' => 'retry', ], ], ], 'VpcPeeringConnectionDeleted' => [ 'delay' => 15, 'operation' => 'DescribeVpcPeeringConnections', 'maxAttempts' => 40, 'acceptors' => [ [ 'expected' => 'deleted', 'matcher' => 'pathAll', 'state' => 'success', 'argument' => 'VpcPeeringConnections[].Status.Code', ], [ 'matcher' => 'error', 'expected' => 'InvalidVpcPeeringConnectionID.NotFound', 'state' => 'success', ], ], ], ],]; diff --git a/lib/aws/Aws/data/ecr/2015-09-21/api-2.json.php b/lib/aws/Aws/data/ecr/2015-09-21/api-2.json.php new file mode 100644 index 0000000..b3902cc --- /dev/null +++ b/lib/aws/Aws/data/ecr/2015-09-21/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ecr/2015-09-21/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-09-21', 'endpointPrefix' => 'api.ecr', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'Amazon ECR', 'serviceFullName' => 'Amazon EC2 Container Registry', 'serviceId' => 'ECR', 'signatureVersion' => 'v4', 'signingName' => 'ecr', 'targetPrefix' => 'AmazonEC2ContainerRegistry_V20150921', 'uid' => 'ecr-2015-09-21', ], 'operations' => [ 'BatchCheckLayerAvailability' => [ 'name' => 'BatchCheckLayerAvailability', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchCheckLayerAvailabilityRequest', ], 'output' => [ 'shape' => 'BatchCheckLayerAvailabilityResponse', ], 'errors' => [ [ 'shape' => 'RepositoryNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ServerException', ], ], ], 'BatchDeleteImage' => [ 'name' => 'BatchDeleteImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchDeleteImageRequest', ], 'output' => [ 'shape' => 'BatchDeleteImageResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'RepositoryNotFoundException', ], ], ], 'BatchGetImage' => [ 'name' => 'BatchGetImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetImageRequest', ], 'output' => [ 'shape' => 'BatchGetImageResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'RepositoryNotFoundException', ], ], ], 'CompleteLayerUpload' => [ 'name' => 'CompleteLayerUpload', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CompleteLayerUploadRequest', ], 'output' => [ 'shape' => 'CompleteLayerUploadResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'RepositoryNotFoundException', ], [ 'shape' => 'UploadNotFoundException', ], [ 'shape' => 'InvalidLayerException', ], [ 'shape' => 'LayerPartTooSmallException', ], [ 'shape' => 'LayerAlreadyExistsException', ], [ 'shape' => 'EmptyUploadException', ], ], ], 'CreateRepository' => [ 'name' => 'CreateRepository', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRepositoryRequest', ], 'output' => [ 'shape' => 'CreateRepositoryResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidTagParameterException', ], [ 'shape' => 'TooManyTagsException', ], [ 'shape' => 'RepositoryAlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'DeleteLifecyclePolicy' => [ 'name' => 'DeleteLifecyclePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLifecyclePolicyRequest', ], 'output' => [ 'shape' => 'DeleteLifecyclePolicyResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'RepositoryNotFoundException', ], [ 'shape' => 'LifecyclePolicyNotFoundException', ], ], ], 'DeleteRepository' => [ 'name' => 'DeleteRepository', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRepositoryRequest', ], 'output' => [ 'shape' => 'DeleteRepositoryResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'RepositoryNotFoundException', ], [ 'shape' => 'RepositoryNotEmptyException', ], ], ], 'DeleteRepositoryPolicy' => [ 'name' => 'DeleteRepositoryPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRepositoryPolicyRequest', ], 'output' => [ 'shape' => 'DeleteRepositoryPolicyResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'RepositoryNotFoundException', ], [ 'shape' => 'RepositoryPolicyNotFoundException', ], ], ], 'DescribeImages' => [ 'name' => 'DescribeImages', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImagesRequest', ], 'output' => [ 'shape' => 'DescribeImagesResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'RepositoryNotFoundException', ], [ 'shape' => 'ImageNotFoundException', ], ], ], 'DescribeRepositories' => [ 'name' => 'DescribeRepositories', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRepositoriesRequest', ], 'output' => [ 'shape' => 'DescribeRepositoriesResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'RepositoryNotFoundException', ], ], ], 'GetAuthorizationToken' => [ 'name' => 'GetAuthorizationToken', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAuthorizationTokenRequest', ], 'output' => [ 'shape' => 'GetAuthorizationTokenResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'GetDownloadUrlForLayer' => [ 'name' => 'GetDownloadUrlForLayer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDownloadUrlForLayerRequest', ], 'output' => [ 'shape' => 'GetDownloadUrlForLayerResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'LayersNotFoundException', ], [ 'shape' => 'LayerInaccessibleException', ], [ 'shape' => 'RepositoryNotFoundException', ], ], ], 'GetLifecyclePolicy' => [ 'name' => 'GetLifecyclePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetLifecyclePolicyRequest', ], 'output' => [ 'shape' => 'GetLifecyclePolicyResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'RepositoryNotFoundException', ], [ 'shape' => 'LifecyclePolicyNotFoundException', ], ], ], 'GetLifecyclePolicyPreview' => [ 'name' => 'GetLifecyclePolicyPreview', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetLifecyclePolicyPreviewRequest', ], 'output' => [ 'shape' => 'GetLifecyclePolicyPreviewResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'RepositoryNotFoundException', ], [ 'shape' => 'LifecyclePolicyPreviewNotFoundException', ], ], ], 'GetRepositoryPolicy' => [ 'name' => 'GetRepositoryPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRepositoryPolicyRequest', ], 'output' => [ 'shape' => 'GetRepositoryPolicyResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'RepositoryNotFoundException', ], [ 'shape' => 'RepositoryPolicyNotFoundException', ], ], ], 'InitiateLayerUpload' => [ 'name' => 'InitiateLayerUpload', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'InitiateLayerUploadRequest', ], 'output' => [ 'shape' => 'InitiateLayerUploadResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'RepositoryNotFoundException', ], ], ], 'ListImages' => [ 'name' => 'ListImages', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListImagesRequest', ], 'output' => [ 'shape' => 'ListImagesResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'RepositoryNotFoundException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'RepositoryNotFoundException', ], [ 'shape' => 'ServerException', ], ], ], 'PutImage' => [ 'name' => 'PutImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutImageRequest', ], 'output' => [ 'shape' => 'PutImageResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'RepositoryNotFoundException', ], [ 'shape' => 'ImageAlreadyExistsException', ], [ 'shape' => 'LayersNotFoundException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'PutLifecyclePolicy' => [ 'name' => 'PutLifecyclePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutLifecyclePolicyRequest', ], 'output' => [ 'shape' => 'PutLifecyclePolicyResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'RepositoryNotFoundException', ], ], ], 'SetRepositoryPolicy' => [ 'name' => 'SetRepositoryPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetRepositoryPolicyRequest', ], 'output' => [ 'shape' => 'SetRepositoryPolicyResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'RepositoryNotFoundException', ], ], ], 'StartLifecyclePolicyPreview' => [ 'name' => 'StartLifecyclePolicyPreview', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartLifecyclePolicyPreviewRequest', ], 'output' => [ 'shape' => 'StartLifecyclePolicyPreviewResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'RepositoryNotFoundException', ], [ 'shape' => 'LifecyclePolicyNotFoundException', ], [ 'shape' => 'LifecyclePolicyPreviewInProgressException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidTagParameterException', ], [ 'shape' => 'TooManyTagsException', ], [ 'shape' => 'RepositoryNotFoundException', ], [ 'shape' => 'ServerException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidTagParameterException', ], [ 'shape' => 'TooManyTagsException', ], [ 'shape' => 'RepositoryNotFoundException', ], [ 'shape' => 'ServerException', ], ], ], 'UploadLayerPart' => [ 'name' => 'UploadLayerPart', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UploadLayerPartRequest', ], 'output' => [ 'shape' => 'UploadLayerPartResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidLayerPartException', ], [ 'shape' => 'RepositoryNotFoundException', ], [ 'shape' => 'UploadNotFoundException', ], [ 'shape' => 'LimitExceededException', ], ], ], ], 'shapes' => [ 'Arn' => [ 'type' => 'string', ], 'AuthorizationData' => [ 'type' => 'structure', 'members' => [ 'authorizationToken' => [ 'shape' => 'Base64', ], 'expiresAt' => [ 'shape' => 'ExpirationTimestamp', ], 'proxyEndpoint' => [ 'shape' => 'ProxyEndpoint', ], ], ], 'AuthorizationDataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AuthorizationData', ], ], 'Base64' => [ 'type' => 'string', 'pattern' => '^\\S+$', ], 'BatchCheckLayerAvailabilityRequest' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'layerDigests', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'layerDigests' => [ 'shape' => 'BatchedOperationLayerDigestList', ], ], ], 'BatchCheckLayerAvailabilityResponse' => [ 'type' => 'structure', 'members' => [ 'layers' => [ 'shape' => 'LayerList', ], 'failures' => [ 'shape' => 'LayerFailureList', ], ], ], 'BatchDeleteImageRequest' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'imageIds', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'imageIds' => [ 'shape' => 'ImageIdentifierList', ], ], ], 'BatchDeleteImageResponse' => [ 'type' => 'structure', 'members' => [ 'imageIds' => [ 'shape' => 'ImageIdentifierList', ], 'failures' => [ 'shape' => 'ImageFailureList', ], ], ], 'BatchGetImageRequest' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'imageIds', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'imageIds' => [ 'shape' => 'ImageIdentifierList', ], 'acceptedMediaTypes' => [ 'shape' => 'MediaTypeList', ], ], ], 'BatchGetImageResponse' => [ 'type' => 'structure', 'members' => [ 'images' => [ 'shape' => 'ImageList', ], 'failures' => [ 'shape' => 'ImageFailureList', ], ], ], 'BatchedOperationLayerDigest' => [ 'type' => 'string', 'max' => 1000, 'min' => 0, ], 'BatchedOperationLayerDigestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BatchedOperationLayerDigest', ], 'max' => 100, 'min' => 1, ], 'CompleteLayerUploadRequest' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'uploadId', 'layerDigests', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'uploadId' => [ 'shape' => 'UploadId', ], 'layerDigests' => [ 'shape' => 'LayerDigestList', ], ], ], 'CompleteLayerUploadResponse' => [ 'type' => 'structure', 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'uploadId' => [ 'shape' => 'UploadId', ], 'layerDigest' => [ 'shape' => 'LayerDigest', ], ], ], 'CreateRepositoryRequest' => [ 'type' => 'structure', 'required' => [ 'repositoryName', ], 'members' => [ 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateRepositoryResponse' => [ 'type' => 'structure', 'members' => [ 'repository' => [ 'shape' => 'Repository', ], ], ], 'CreationTimestamp' => [ 'type' => 'timestamp', ], 'DeleteLifecyclePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'repositoryName', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], ], ], 'DeleteLifecyclePolicyResponse' => [ 'type' => 'structure', 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'lifecyclePolicyText' => [ 'shape' => 'LifecyclePolicyText', ], 'lastEvaluatedAt' => [ 'shape' => 'EvaluationTimestamp', ], ], ], 'DeleteRepositoryPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'repositoryName', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], ], ], 'DeleteRepositoryPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'policyText' => [ 'shape' => 'RepositoryPolicyText', ], ], ], 'DeleteRepositoryRequest' => [ 'type' => 'structure', 'required' => [ 'repositoryName', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'force' => [ 'shape' => 'ForceFlag', ], ], ], 'DeleteRepositoryResponse' => [ 'type' => 'structure', 'members' => [ 'repository' => [ 'shape' => 'Repository', ], ], ], 'DescribeImagesFilter' => [ 'type' => 'structure', 'members' => [ 'tagStatus' => [ 'shape' => 'TagStatus', ], ], ], 'DescribeImagesRequest' => [ 'type' => 'structure', 'required' => [ 'repositoryName', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'imageIds' => [ 'shape' => 'ImageIdentifierList', ], 'nextToken' => [ 'shape' => 'NextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', ], 'filter' => [ 'shape' => 'DescribeImagesFilter', ], ], ], 'DescribeImagesResponse' => [ 'type' => 'structure', 'members' => [ 'imageDetails' => [ 'shape' => 'ImageDetailList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeRepositoriesRequest' => [ 'type' => 'structure', 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryNames' => [ 'shape' => 'RepositoryNameList', ], 'nextToken' => [ 'shape' => 'NextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'DescribeRepositoriesResponse' => [ 'type' => 'structure', 'members' => [ 'repositories' => [ 'shape' => 'RepositoryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'EmptyUploadException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'EvaluationTimestamp' => [ 'type' => 'timestamp', ], 'ExceptionMessage' => [ 'type' => 'string', ], 'ExpirationTimestamp' => [ 'type' => 'timestamp', ], 'ForceFlag' => [ 'type' => 'boolean', ], 'GetAuthorizationTokenRegistryIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegistryId', ], 'max' => 10, 'min' => 1, ], 'GetAuthorizationTokenRequest' => [ 'type' => 'structure', 'members' => [ 'registryIds' => [ 'shape' => 'GetAuthorizationTokenRegistryIdList', ], ], ], 'GetAuthorizationTokenResponse' => [ 'type' => 'structure', 'members' => [ 'authorizationData' => [ 'shape' => 'AuthorizationDataList', ], ], ], 'GetDownloadUrlForLayerRequest' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'layerDigest', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'layerDigest' => [ 'shape' => 'LayerDigest', ], ], ], 'GetDownloadUrlForLayerResponse' => [ 'type' => 'structure', 'members' => [ 'downloadUrl' => [ 'shape' => 'Url', ], 'layerDigest' => [ 'shape' => 'LayerDigest', ], ], ], 'GetLifecyclePolicyPreviewRequest' => [ 'type' => 'structure', 'required' => [ 'repositoryName', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'imageIds' => [ 'shape' => 'ImageIdentifierList', ], 'nextToken' => [ 'shape' => 'NextToken', ], 'maxResults' => [ 'shape' => 'LifecyclePreviewMaxResults', ], 'filter' => [ 'shape' => 'LifecyclePolicyPreviewFilter', ], ], ], 'GetLifecyclePolicyPreviewResponse' => [ 'type' => 'structure', 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'lifecyclePolicyText' => [ 'shape' => 'LifecyclePolicyText', ], 'status' => [ 'shape' => 'LifecyclePolicyPreviewStatus', ], 'nextToken' => [ 'shape' => 'NextToken', ], 'previewResults' => [ 'shape' => 'LifecyclePolicyPreviewResultList', ], 'summary' => [ 'shape' => 'LifecyclePolicyPreviewSummary', ], ], ], 'GetLifecyclePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'repositoryName', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], ], ], 'GetLifecyclePolicyResponse' => [ 'type' => 'structure', 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'lifecyclePolicyText' => [ 'shape' => 'LifecyclePolicyText', ], 'lastEvaluatedAt' => [ 'shape' => 'EvaluationTimestamp', ], ], ], 'GetRepositoryPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'repositoryName', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], ], ], 'GetRepositoryPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'policyText' => [ 'shape' => 'RepositoryPolicyText', ], ], ], 'Image' => [ 'type' => 'structure', 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'imageId' => [ 'shape' => 'ImageIdentifier', ], 'imageManifest' => [ 'shape' => 'ImageManifest', ], ], ], 'ImageActionType' => [ 'type' => 'string', 'enum' => [ 'EXPIRE', ], ], 'ImageAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'ImageCount' => [ 'type' => 'integer', 'min' => 0, ], 'ImageDetail' => [ 'type' => 'structure', 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'imageDigest' => [ 'shape' => 'ImageDigest', ], 'imageTags' => [ 'shape' => 'ImageTagList', ], 'imageSizeInBytes' => [ 'shape' => 'ImageSizeInBytes', ], 'imagePushedAt' => [ 'shape' => 'PushTimestamp', ], ], ], 'ImageDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageDetail', ], ], 'ImageDigest' => [ 'type' => 'string', ], 'ImageFailure' => [ 'type' => 'structure', 'members' => [ 'imageId' => [ 'shape' => 'ImageIdentifier', ], 'failureCode' => [ 'shape' => 'ImageFailureCode', ], 'failureReason' => [ 'shape' => 'ImageFailureReason', ], ], ], 'ImageFailureCode' => [ 'type' => 'string', 'enum' => [ 'InvalidImageDigest', 'InvalidImageTag', 'ImageTagDoesNotMatchDigest', 'ImageNotFound', 'MissingDigestAndTag', ], ], 'ImageFailureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageFailure', ], ], 'ImageFailureReason' => [ 'type' => 'string', ], 'ImageIdentifier' => [ 'type' => 'structure', 'members' => [ 'imageDigest' => [ 'shape' => 'ImageDigest', ], 'imageTag' => [ 'shape' => 'ImageTag', ], ], ], 'ImageIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageIdentifier', ], 'max' => 100, 'min' => 1, ], 'ImageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Image', ], ], 'ImageManifest' => [ 'type' => 'string', ], 'ImageNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'ImageSizeInBytes' => [ 'type' => 'long', ], 'ImageTag' => [ 'type' => 'string', ], 'ImageTagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageTag', ], ], 'InitiateLayerUploadRequest' => [ 'type' => 'structure', 'required' => [ 'repositoryName', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], ], ], 'InitiateLayerUploadResponse' => [ 'type' => 'structure', 'members' => [ 'uploadId' => [ 'shape' => 'UploadId', ], 'partSize' => [ 'shape' => 'PartSize', ], ], ], 'InvalidLayerException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'InvalidLayerPartException' => [ 'type' => 'structure', 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'uploadId' => [ 'shape' => 'UploadId', ], 'lastValidByteReceived' => [ 'shape' => 'PartSize', ], 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'InvalidTagParameterException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'Layer' => [ 'type' => 'structure', 'members' => [ 'layerDigest' => [ 'shape' => 'LayerDigest', ], 'layerAvailability' => [ 'shape' => 'LayerAvailability', ], 'layerSize' => [ 'shape' => 'LayerSizeInBytes', ], 'mediaType' => [ 'shape' => 'MediaType', ], ], ], 'LayerAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'LayerAvailability' => [ 'type' => 'string', 'enum' => [ 'AVAILABLE', 'UNAVAILABLE', ], ], 'LayerDigest' => [ 'type' => 'string', 'pattern' => '[a-zA-Z0-9-_+.]+:[a-fA-F0-9]+', ], 'LayerDigestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LayerDigest', ], 'max' => 100, 'min' => 1, ], 'LayerFailure' => [ 'type' => 'structure', 'members' => [ 'layerDigest' => [ 'shape' => 'BatchedOperationLayerDigest', ], 'failureCode' => [ 'shape' => 'LayerFailureCode', ], 'failureReason' => [ 'shape' => 'LayerFailureReason', ], ], ], 'LayerFailureCode' => [ 'type' => 'string', 'enum' => [ 'InvalidLayerDigest', 'MissingLayerDigest', ], ], 'LayerFailureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LayerFailure', ], ], 'LayerFailureReason' => [ 'type' => 'string', ], 'LayerInaccessibleException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'LayerList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Layer', ], ], 'LayerPartBlob' => [ 'type' => 'blob', ], 'LayerPartTooSmallException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'LayerSizeInBytes' => [ 'type' => 'long', ], 'LayersNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'LifecyclePolicyNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'LifecyclePolicyPreviewFilter' => [ 'type' => 'structure', 'members' => [ 'tagStatus' => [ 'shape' => 'TagStatus', ], ], ], 'LifecyclePolicyPreviewInProgressException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'LifecyclePolicyPreviewNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'LifecyclePolicyPreviewResult' => [ 'type' => 'structure', 'members' => [ 'imageTags' => [ 'shape' => 'ImageTagList', ], 'imageDigest' => [ 'shape' => 'ImageDigest', ], 'imagePushedAt' => [ 'shape' => 'PushTimestamp', ], 'action' => [ 'shape' => 'LifecyclePolicyRuleAction', ], 'appliedRulePriority' => [ 'shape' => 'LifecyclePolicyRulePriority', ], ], ], 'LifecyclePolicyPreviewResultList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LifecyclePolicyPreviewResult', ], ], 'LifecyclePolicyPreviewStatus' => [ 'type' => 'string', 'enum' => [ 'IN_PROGRESS', 'COMPLETE', 'EXPIRED', 'FAILED', ], ], 'LifecyclePolicyPreviewSummary' => [ 'type' => 'structure', 'members' => [ 'expiringImageTotalCount' => [ 'shape' => 'ImageCount', ], ], ], 'LifecyclePolicyRuleAction' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'ImageActionType', ], ], ], 'LifecyclePolicyRulePriority' => [ 'type' => 'integer', 'min' => 1, ], 'LifecyclePolicyText' => [ 'type' => 'string', 'max' => 30720, 'min' => 100, ], 'LifecyclePreviewMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'ListImagesFilter' => [ 'type' => 'structure', 'members' => [ 'tagStatus' => [ 'shape' => 'TagStatus', ], ], ], 'ListImagesRequest' => [ 'type' => 'structure', 'required' => [ 'repositoryName', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'nextToken' => [ 'shape' => 'NextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', ], 'filter' => [ 'shape' => 'ListImagesFilter', ], ], ], 'ListImagesResponse' => [ 'type' => 'structure', 'members' => [ 'imageIds' => [ 'shape' => 'ImageIdentifierList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'tags' => [ 'shape' => 'TagList', ], ], ], 'MaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'MediaType' => [ 'type' => 'string', ], 'MediaTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MediaType', ], 'max' => 100, 'min' => 1, ], 'NextToken' => [ 'type' => 'string', ], 'PartSize' => [ 'type' => 'long', 'min' => 0, ], 'ProxyEndpoint' => [ 'type' => 'string', ], 'PushTimestamp' => [ 'type' => 'timestamp', ], 'PutImageRequest' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'imageManifest', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'imageManifest' => [ 'shape' => 'ImageManifest', ], 'imageTag' => [ 'shape' => 'ImageTag', ], ], ], 'PutImageResponse' => [ 'type' => 'structure', 'members' => [ 'image' => [ 'shape' => 'Image', ], ], ], 'PutLifecyclePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'lifecyclePolicyText', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'lifecyclePolicyText' => [ 'shape' => 'LifecyclePolicyText', ], ], ], 'PutLifecyclePolicyResponse' => [ 'type' => 'structure', 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'lifecyclePolicyText' => [ 'shape' => 'LifecyclePolicyText', ], ], ], 'RegistryId' => [ 'type' => 'string', 'pattern' => '[0-9]{12}', ], 'Repository' => [ 'type' => 'structure', 'members' => [ 'repositoryArn' => [ 'shape' => 'Arn', ], 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'repositoryUri' => [ 'shape' => 'Url', ], 'createdAt' => [ 'shape' => 'CreationTimestamp', ], ], ], 'RepositoryAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'RepositoryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Repository', ], ], 'RepositoryName' => [ 'type' => 'string', 'max' => 256, 'min' => 2, 'pattern' => '(?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*', ], 'RepositoryNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RepositoryName', ], 'max' => 100, 'min' => 1, ], 'RepositoryNotEmptyException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'RepositoryNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'RepositoryPolicyNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'RepositoryPolicyText' => [ 'type' => 'string', 'max' => 10240, 'min' => 0, ], 'ServerException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, 'fault' => true, ], 'SetRepositoryPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'policyText', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'policyText' => [ 'shape' => 'RepositoryPolicyText', ], 'force' => [ 'shape' => 'ForceFlag', ], ], ], 'SetRepositoryPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'policyText' => [ 'shape' => 'RepositoryPolicyText', ], ], ], 'StartLifecyclePolicyPreviewRequest' => [ 'type' => 'structure', 'required' => [ 'repositoryName', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'lifecyclePolicyText' => [ 'shape' => 'LifecyclePolicyText', ], ], ], 'StartLifecyclePolicyPreviewResponse' => [ 'type' => 'structure', 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'lifecyclePolicyText' => [ 'shape' => 'LifecyclePolicyText', ], 'status' => [ 'shape' => 'LifecyclePolicyPreviewStatus', ], ], ], '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', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tags', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagStatus' => [ 'type' => 'string', 'enum' => [ 'TAGGED', 'UNTAGGED', 'ANY', ], ], 'TagValue' => [ 'type' => 'string', ], 'TooManyTagsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tagKeys', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', ], 'tagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UploadId' => [ '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}', ], 'UploadLayerPartRequest' => [ 'type' => 'structure', 'required' => [ 'repositoryName', 'uploadId', 'partFirstByte', 'partLastByte', 'layerPartBlob', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'uploadId' => [ 'shape' => 'UploadId', ], 'partFirstByte' => [ 'shape' => 'PartSize', ], 'partLastByte' => [ 'shape' => 'PartSize', ], 'layerPartBlob' => [ 'shape' => 'LayerPartBlob', ], ], ], 'UploadLayerPartResponse' => [ 'type' => 'structure', 'members' => [ 'registryId' => [ 'shape' => 'RegistryId', ], 'repositoryName' => [ 'shape' => 'RepositoryName', ], 'uploadId' => [ 'shape' => 'UploadId', ], 'lastByteReceived' => [ 'shape' => 'PartSize', ], ], ], 'UploadNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'Url' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/ecr/2015-09-21/paginators-1.json.php b/lib/aws/Aws/data/ecr/2015-09-21/paginators-1.json.php new file mode 100644 index 0000000..f97f545 --- /dev/null +++ b/lib/aws/Aws/data/ecr/2015-09-21/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ecr/2015-09-21/paginators-1.json +return [ 'pagination' => [ 'DescribeImages' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'imageDetails', ], 'DescribeRepositories' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'repositories', ], 'ListImages' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'imageIds', ], ],]; diff --git a/lib/aws/Aws/data/ecr/2015-09-21/smoke.json.php b/lib/aws/Aws/data/ecr/2015-09-21/smoke.json.php new file mode 100644 index 0000000..3e04e2e --- /dev/null +++ b/lib/aws/Aws/data/ecr/2015-09-21/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ecr/2015-09-21/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeRepositories', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'ListImages', 'input' => [ 'repositoryName' => 'not-a-real-repository', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/ecs/2014-11-13/api-2.json.php b/lib/aws/Aws/data/ecs/2014-11-13/api-2.json.php new file mode 100644 index 0000000..a489a06 --- /dev/null +++ b/lib/aws/Aws/data/ecs/2014-11-13/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ecs/2014-11-13/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2014-11-13', 'endpointPrefix' => 'ecs', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'Amazon ECS', 'serviceFullName' => 'Amazon EC2 Container Service', 'serviceId' => 'ECS', 'signatureVersion' => 'v4', 'targetPrefix' => 'AmazonEC2ContainerServiceV20141113', 'uid' => 'ecs-2014-11-13', ], 'operations' => [ 'CreateCluster' => [ 'name' => 'CreateCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateClusterRequest', ], 'output' => [ 'shape' => 'CreateClusterResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'CreateService' => [ 'name' => 'CreateService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateServiceRequest', ], 'output' => [ 'shape' => 'CreateServiceResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], [ 'shape' => 'PlatformUnknownException', ], [ 'shape' => 'PlatformTaskDefinitionIncompatibilityException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreateTaskSet' => [ 'name' => 'CreateTaskSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTaskSetRequest', ], 'output' => [ 'shape' => 'CreateTaskSetResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], [ 'shape' => 'PlatformUnknownException', ], [ 'shape' => 'PlatformTaskDefinitionIncompatibilityException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ServiceNotActiveException', ], ], ], 'DeleteAccountSetting' => [ 'name' => 'DeleteAccountSetting', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAccountSettingRequest', ], 'output' => [ 'shape' => 'DeleteAccountSettingResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'DeleteAttributes' => [ 'name' => 'DeleteAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAttributesRequest', ], 'output' => [ 'shape' => 'DeleteAttributesResponse', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'TargetNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'DeleteCluster' => [ 'name' => 'DeleteCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteClusterRequest', ], 'output' => [ 'shape' => 'DeleteClusterResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'ClusterContainsContainerInstancesException', ], [ 'shape' => 'ClusterContainsServicesException', ], [ 'shape' => 'ClusterContainsTasksException', ], ], ], 'DeleteService' => [ 'name' => 'DeleteService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteServiceRequest', ], 'output' => [ 'shape' => 'DeleteServiceResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'ServiceNotFoundException', ], ], ], 'DeleteTaskSet' => [ 'name' => 'DeleteTaskSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTaskSetRequest', ], 'output' => [ 'shape' => 'DeleteTaskSetResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ServiceNotActiveException', ], [ 'shape' => 'TaskSetNotFoundException', ], ], ], 'DeregisterContainerInstance' => [ 'name' => 'DeregisterContainerInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterContainerInstanceRequest', ], 'output' => [ 'shape' => 'DeregisterContainerInstanceResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'DeregisterTaskDefinition' => [ 'name' => 'DeregisterTaskDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterTaskDefinitionRequest', ], 'output' => [ 'shape' => 'DeregisterTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'DescribeClusters' => [ 'name' => 'DescribeClusters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClustersRequest', ], 'output' => [ 'shape' => 'DescribeClustersResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'DescribeContainerInstances' => [ 'name' => 'DescribeContainerInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeContainerInstancesRequest', ], 'output' => [ 'shape' => 'DescribeContainerInstancesResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'DescribeServices' => [ 'name' => 'DescribeServices', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeServicesRequest', ], 'output' => [ 'shape' => 'DescribeServicesResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'DescribeTaskDefinition' => [ 'name' => 'DescribeTaskDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTaskDefinitionRequest', ], 'output' => [ 'shape' => 'DescribeTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'DescribeTaskSets' => [ 'name' => 'DescribeTaskSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTaskSetsRequest', ], 'output' => [ 'shape' => 'DescribeTaskSetsResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ServiceNotActiveException', ], ], ], 'DescribeTasks' => [ 'name' => 'DescribeTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTasksRequest', ], 'output' => [ 'shape' => 'DescribeTasksResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'DiscoverPollEndpoint' => [ 'name' => 'DiscoverPollEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DiscoverPollEndpointRequest', ], 'output' => [ 'shape' => 'DiscoverPollEndpointResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], ], ], 'ListAccountSettings' => [ 'name' => 'ListAccountSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAccountSettingsRequest', ], 'output' => [ 'shape' => 'ListAccountSettingsResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'ListAttributes' => [ 'name' => 'ListAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAttributesRequest', ], 'output' => [ 'shape' => 'ListAttributesResponse', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'ListClusters' => [ 'name' => 'ListClusters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListClustersRequest', ], 'output' => [ 'shape' => 'ListClustersResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'ListContainerInstances' => [ 'name' => 'ListContainerInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListContainerInstancesRequest', ], 'output' => [ 'shape' => 'ListContainerInstancesResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'ListServices' => [ 'name' => 'ListServices', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListServicesRequest', ], 'output' => [ 'shape' => 'ListServicesResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'ListTaskDefinitionFamilies' => [ 'name' => 'ListTaskDefinitionFamilies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTaskDefinitionFamiliesRequest', ], 'output' => [ 'shape' => 'ListTaskDefinitionFamiliesResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'ListTaskDefinitions' => [ 'name' => 'ListTaskDefinitions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTaskDefinitionsRequest', ], 'output' => [ 'shape' => 'ListTaskDefinitionsResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'ListTasks' => [ 'name' => 'ListTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTasksRequest', ], 'output' => [ 'shape' => 'ListTasksResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'ServiceNotFoundException', ], ], ], 'PutAccountSetting' => [ 'name' => 'PutAccountSetting', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutAccountSettingRequest', ], 'output' => [ 'shape' => 'PutAccountSettingResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'PutAccountSettingDefault' => [ 'name' => 'PutAccountSettingDefault', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutAccountSettingDefaultRequest', ], 'output' => [ 'shape' => 'PutAccountSettingDefaultResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'PutAttributes' => [ 'name' => 'PutAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutAttributesRequest', ], 'output' => [ 'shape' => 'PutAttributesResponse', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'TargetNotFoundException', ], [ 'shape' => 'AttributeLimitExceededException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'RegisterContainerInstance' => [ 'name' => 'RegisterContainerInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterContainerInstanceRequest', ], 'output' => [ 'shape' => 'RegisterContainerInstanceResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'RegisterTaskDefinition' => [ 'name' => 'RegisterTaskDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterTaskDefinitionRequest', ], 'output' => [ 'shape' => 'RegisterTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'RunTask' => [ 'name' => 'RunTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RunTaskRequest', ], 'output' => [ 'shape' => 'RunTaskResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], [ 'shape' => 'PlatformUnknownException', ], [ 'shape' => 'PlatformTaskDefinitionIncompatibilityException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'BlockedException', ], ], ], 'StartTask' => [ 'name' => 'StartTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartTaskRequest', ], 'output' => [ 'shape' => 'StartTaskResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'StopTask' => [ 'name' => 'StopTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopTaskRequest', ], 'output' => [ 'shape' => 'StopTaskResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'SubmitContainerStateChange' => [ 'name' => 'SubmitContainerStateChange', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SubmitContainerStateChangeRequest', ], 'output' => [ 'shape' => 'SubmitContainerStateChangeResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'SubmitTaskStateChange' => [ 'name' => 'SubmitTaskStateChange', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SubmitTaskStateChangeRequest', ], 'output' => [ 'shape' => 'SubmitTaskStateChangeResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'UpdateContainerAgent' => [ 'name' => 'UpdateContainerAgent', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateContainerAgentRequest', ], 'output' => [ 'shape' => 'UpdateContainerAgentResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UpdateInProgressException', ], [ 'shape' => 'NoUpdateAvailableException', ], [ 'shape' => 'MissingVersionException', ], ], ], 'UpdateContainerInstancesState' => [ 'name' => 'UpdateContainerInstancesState', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateContainerInstancesStateRequest', ], 'output' => [ 'shape' => 'UpdateContainerInstancesStateResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'UpdateService' => [ 'name' => 'UpdateService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateServiceRequest', ], 'output' => [ 'shape' => 'UpdateServiceResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ServiceNotActiveException', ], [ 'shape' => 'PlatformUnknownException', ], [ 'shape' => 'PlatformTaskDefinitionIncompatibilityException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'UpdateServicePrimaryTaskSet' => [ 'name' => 'UpdateServicePrimaryTaskSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateServicePrimaryTaskSetRequest', ], 'output' => [ 'shape' => 'UpdateServicePrimaryTaskSetResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ServiceNotActiveException', ], [ 'shape' => 'TaskSetNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'UpdateTaskSet' => [ 'name' => 'UpdateTaskSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateTaskSetRequest', ], 'output' => [ 'shape' => 'UpdateTaskSetResponse', ], 'errors' => [ [ 'shape' => 'ServerException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ServiceNotActiveException', ], [ 'shape' => 'TaskSetNotFoundException', ], ], ], ], 'shapes' => [ 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'AgentUpdateStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'STAGING', 'STAGED', 'UPDATING', 'UPDATED', 'FAILED', ], ], 'AssignPublicIp' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'Attachment' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'String', ], 'details' => [ 'shape' => 'AttachmentDetails', ], ], ], 'AttachmentDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyValuePair', ], ], 'AttachmentStateChange' => [ 'type' => 'structure', 'required' => [ 'attachmentArn', 'status', ], 'members' => [ 'attachmentArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'String', ], ], ], 'AttachmentStateChanges' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttachmentStateChange', ], ], 'Attachments' => [ 'type' => 'list', 'member' => [ 'shape' => 'Attachment', ], ], 'Attribute' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], 'targetType' => [ 'shape' => 'TargetType', ], 'targetId' => [ 'shape' => 'String', ], ], ], 'AttributeLimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Attributes' => [ 'type' => 'list', 'member' => [ 'shape' => 'Attribute', ], ], 'AwsVpcConfiguration' => [ 'type' => 'structure', 'required' => [ 'subnets', ], 'members' => [ 'subnets' => [ 'shape' => 'StringList', ], 'securityGroups' => [ 'shape' => 'StringList', ], 'assignPublicIp' => [ 'shape' => 'AssignPublicIp', ], ], ], 'BlockedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], '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', ], 'statistics' => [ 'shape' => 'Statistics', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'ClusterContainsContainerInstancesException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ClusterContainsServicesException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ClusterContainsTasksException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ClusterField' => [ 'type' => 'string', 'enum' => [ 'STATISTICS', 'TAGS', ], ], 'ClusterFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClusterField', ], ], 'ClusterNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Clusters' => [ 'type' => 'list', 'member' => [ 'shape' => 'Cluster', ], ], 'Compatibility' => [ 'type' => 'string', 'enum' => [ 'EC2', 'FARGATE', ], ], 'CompatibilityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Compatibility', ], ], 'Connectivity' => [ 'type' => 'string', 'enum' => [ 'CONNECTED', 'DISCONNECTED', ], ], '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', ], 'networkInterfaces' => [ 'shape' => 'NetworkInterfaces', ], 'healthStatus' => [ 'shape' => 'HealthStatus', ], 'cpu' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'memoryReservation' => [ 'shape' => 'String', ], 'gpuIds' => [ 'shape' => 'GpuIds', ], ], ], 'ContainerCondition' => [ 'type' => 'string', 'enum' => [ 'START', 'COMPLETE', 'SUCCESS', 'HEALTHY', ], ], 'ContainerDefinition' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'image' => [ 'shape' => 'String', ], 'repositoryCredentials' => [ 'shape' => 'RepositoryCredentials', ], 'cpu' => [ 'shape' => 'Integer', ], 'memory' => [ 'shape' => 'BoxedInteger', ], 'memoryReservation' => [ 'shape' => 'BoxedInteger', ], 'links' => [ 'shape' => 'StringList', ], 'portMappings' => [ 'shape' => 'PortMappingList', ], 'essential' => [ 'shape' => 'BoxedBoolean', ], 'entryPoint' => [ 'shape' => 'StringList', ], 'command' => [ 'shape' => 'StringList', ], 'environment' => [ 'shape' => 'EnvironmentVariables', ], 'mountPoints' => [ 'shape' => 'MountPointList', ], 'volumesFrom' => [ 'shape' => 'VolumeFromList', ], 'linuxParameters' => [ 'shape' => 'LinuxParameters', ], 'secrets' => [ 'shape' => 'SecretList', ], 'dependsOn' => [ 'shape' => 'ContainerDependencies', ], 'startTimeout' => [ 'shape' => 'BoxedInteger', ], 'stopTimeout' => [ 'shape' => 'BoxedInteger', ], 'hostname' => [ 'shape' => 'String', ], 'user' => [ 'shape' => 'String', ], 'workingDirectory' => [ 'shape' => 'String', ], 'disableNetworking' => [ 'shape' => 'BoxedBoolean', ], 'privileged' => [ 'shape' => 'BoxedBoolean', ], 'readonlyRootFilesystem' => [ 'shape' => 'BoxedBoolean', ], 'dnsServers' => [ 'shape' => 'StringList', ], 'dnsSearchDomains' => [ 'shape' => 'StringList', ], 'extraHosts' => [ 'shape' => 'HostEntryList', ], 'dockerSecurityOptions' => [ 'shape' => 'StringList', ], 'interactive' => [ 'shape' => 'BoxedBoolean', ], 'pseudoTerminal' => [ 'shape' => 'BoxedBoolean', ], 'dockerLabels' => [ 'shape' => 'DockerLabelsMap', ], 'ulimits' => [ 'shape' => 'UlimitList', ], 'logConfiguration' => [ 'shape' => 'LogConfiguration', ], 'healthCheck' => [ 'shape' => 'HealthCheck', ], 'systemControls' => [ 'shape' => 'SystemControls', ], 'resourceRequirements' => [ 'shape' => 'ResourceRequirements', ], ], ], 'ContainerDefinitions' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerDefinition', ], ], 'ContainerDependencies' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerDependency', ], ], 'ContainerDependency' => [ 'type' => 'structure', 'required' => [ 'containerName', 'condition', ], 'members' => [ 'containerName' => [ 'shape' => 'String', ], 'condition' => [ 'shape' => 'ContainerCondition', ], ], ], 'ContainerInstance' => [ 'type' => 'structure', 'members' => [ 'containerInstanceArn' => [ 'shape' => 'String', ], 'ec2InstanceId' => [ 'shape' => 'String', ], 'version' => [ 'shape' => 'Long', ], 'versionInfo' => [ 'shape' => 'VersionInfo', ], 'remainingResources' => [ 'shape' => 'Resources', ], 'registeredResources' => [ 'shape' => 'Resources', ], 'status' => [ 'shape' => 'String', ], 'agentConnected' => [ 'shape' => 'Boolean', ], 'runningTasksCount' => [ 'shape' => 'Integer', ], 'pendingTasksCount' => [ 'shape' => 'Integer', ], 'agentUpdateStatus' => [ 'shape' => 'AgentUpdateStatus', ], 'attributes' => [ 'shape' => 'Attributes', ], 'registeredAt' => [ 'shape' => 'Timestamp', ], 'attachments' => [ 'shape' => 'Attachments', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'ContainerInstanceField' => [ 'type' => 'string', 'enum' => [ 'TAGS', ], ], 'ContainerInstanceFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerInstanceField', ], ], 'ContainerInstanceStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DRAINING', ], ], 'ContainerInstances' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerInstance', ], ], 'ContainerOverride' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'command' => [ 'shape' => 'StringList', ], 'environment' => [ 'shape' => 'EnvironmentVariables', ], 'cpu' => [ 'shape' => 'BoxedInteger', ], 'memory' => [ 'shape' => 'BoxedInteger', ], 'memoryReservation' => [ 'shape' => 'BoxedInteger', ], 'resourceRequirements' => [ 'shape' => 'ResourceRequirements', ], ], ], 'ContainerOverrides' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerOverride', ], ], 'ContainerStateChange' => [ 'type' => 'structure', 'members' => [ 'containerName' => [ 'shape' => 'String', ], 'exitCode' => [ 'shape' => 'BoxedInteger', ], 'networkBindings' => [ 'shape' => 'NetworkBindings', ], 'reason' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'String', ], ], ], 'ContainerStateChanges' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerStateChange', ], ], 'Containers' => [ 'type' => 'list', 'member' => [ 'shape' => 'Container', ], ], 'CreateClusterRequest' => [ 'type' => 'structure', 'members' => [ 'clusterName' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'CreateClusterResponse' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'Cluster', ], ], ], 'CreateServiceRequest' => [ 'type' => 'structure', 'required' => [ 'serviceName', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'serviceName' => [ 'shape' => 'String', ], 'taskDefinition' => [ 'shape' => 'String', ], 'loadBalancers' => [ 'shape' => 'LoadBalancers', ], 'serviceRegistries' => [ 'shape' => 'ServiceRegistries', ], 'desiredCount' => [ 'shape' => 'BoxedInteger', ], 'clientToken' => [ 'shape' => 'String', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'platformVersion' => [ 'shape' => 'String', ], 'role' => [ 'shape' => 'String', ], 'deploymentConfiguration' => [ 'shape' => 'DeploymentConfiguration', ], 'placementConstraints' => [ 'shape' => 'PlacementConstraints', ], 'placementStrategy' => [ 'shape' => 'PlacementStrategies', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'healthCheckGracePeriodSeconds' => [ 'shape' => 'BoxedInteger', ], 'schedulingStrategy' => [ 'shape' => 'SchedulingStrategy', ], 'deploymentController' => [ 'shape' => 'DeploymentController', ], 'tags' => [ 'shape' => 'Tags', ], 'enableECSManagedTags' => [ 'shape' => 'Boolean', ], 'propagateTags' => [ 'shape' => 'PropagateTags', ], ], ], 'CreateServiceResponse' => [ 'type' => 'structure', 'members' => [ 'service' => [ 'shape' => 'Service', ], ], ], 'CreateTaskSetRequest' => [ 'type' => 'structure', 'required' => [ 'service', 'cluster', 'taskDefinition', ], 'members' => [ 'service' => [ 'shape' => 'String', ], 'cluster' => [ 'shape' => 'String', ], 'externalId' => [ 'shape' => 'String', ], 'taskDefinition' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'loadBalancers' => [ 'shape' => 'LoadBalancers', ], 'serviceRegistries' => [ 'shape' => 'ServiceRegistries', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'platformVersion' => [ 'shape' => 'String', ], 'scale' => [ 'shape' => 'Scale', ], 'clientToken' => [ 'shape' => 'String', ], ], ], 'CreateTaskSetResponse' => [ 'type' => 'structure', 'members' => [ 'taskSet' => [ 'shape' => 'TaskSet', ], ], ], 'DeleteAccountSettingRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'SettingName', ], 'principalArn' => [ 'shape' => 'String', ], ], ], 'DeleteAccountSettingResponse' => [ 'type' => 'structure', 'members' => [ 'setting' => [ 'shape' => 'Setting', ], ], ], 'DeleteAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'attributes', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'attributes' => [ 'shape' => 'Attributes', ], ], ], 'DeleteAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'attributes' => [ 'shape' => 'Attributes', ], ], ], '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', ], 'force' => [ 'shape' => 'BoxedBoolean', ], ], ], 'DeleteServiceResponse' => [ 'type' => 'structure', 'members' => [ 'service' => [ 'shape' => 'Service', ], ], ], 'DeleteTaskSetRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', 'service', 'taskSet', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'service' => [ 'shape' => 'String', ], 'taskSet' => [ 'shape' => 'String', ], 'force' => [ 'shape' => 'BoxedBoolean', ], ], ], 'DeleteTaskSetResponse' => [ 'type' => 'structure', 'members' => [ 'taskSet' => [ 'shape' => 'TaskSet', ], ], ], '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', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'platformVersion' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], ], ], 'DeploymentConfiguration' => [ 'type' => 'structure', 'members' => [ 'maximumPercent' => [ 'shape' => 'BoxedInteger', ], 'minimumHealthyPercent' => [ 'shape' => 'BoxedInteger', ], ], ], 'DeploymentController' => [ 'type' => 'structure', 'required' => [ 'type', ], 'members' => [ 'type' => [ 'shape' => 'DeploymentControllerType', ], ], ], 'DeploymentControllerType' => [ 'type' => 'string', 'enum' => [ 'ECS', 'CODE_DEPLOY', 'EXTERNAL', ], ], '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', ], 'include' => [ 'shape' => 'ClusterFieldList', ], ], ], 'DescribeClustersResponse' => [ 'type' => 'structure', 'members' => [ 'clusters' => [ 'shape' => 'Clusters', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DescribeContainerInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'containerInstances', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'containerInstances' => [ 'shape' => 'StringList', ], 'include' => [ 'shape' => 'ContainerInstanceFieldList', ], ], ], 'DescribeContainerInstancesResponse' => [ 'type' => 'structure', 'members' => [ 'containerInstances' => [ 'shape' => 'ContainerInstances', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DescribeServicesRequest' => [ 'type' => 'structure', 'required' => [ 'services', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'services' => [ 'shape' => 'StringList', ], 'include' => [ 'shape' => 'ServiceFieldList', ], ], ], 'DescribeServicesResponse' => [ 'type' => 'structure', 'members' => [ 'services' => [ 'shape' => 'Services', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DescribeTaskDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'taskDefinition', ], 'members' => [ 'taskDefinition' => [ 'shape' => 'String', ], 'include' => [ 'shape' => 'TaskDefinitionFieldList', ], ], ], 'DescribeTaskDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'taskDefinition' => [ 'shape' => 'TaskDefinition', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'DescribeTaskSetsRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', 'service', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'service' => [ 'shape' => 'String', ], 'taskSets' => [ 'shape' => 'StringList', ], ], ], 'DescribeTaskSetsResponse' => [ 'type' => 'structure', 'members' => [ 'taskSets' => [ 'shape' => 'TaskSets', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DescribeTasksRequest' => [ 'type' => 'structure', 'required' => [ 'tasks', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'tasks' => [ 'shape' => 'StringList', ], 'include' => [ 'shape' => 'TaskFieldList', ], ], ], 'DescribeTasksResponse' => [ 'type' => 'structure', 'members' => [ 'tasks' => [ 'shape' => 'Tasks', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DesiredStatus' => [ 'type' => 'string', 'enum' => [ 'RUNNING', 'PENDING', 'STOPPED', ], ], 'Device' => [ 'type' => 'structure', 'required' => [ 'hostPath', ], 'members' => [ 'hostPath' => [ 'shape' => 'String', ], 'containerPath' => [ 'shape' => 'String', ], 'permissions' => [ 'shape' => 'DeviceCgroupPermissions', ], ], ], 'DeviceCgroupPermission' => [ 'type' => 'string', 'enum' => [ 'read', 'write', 'mknod', ], ], 'DeviceCgroupPermissions' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeviceCgroupPermission', ], ], 'DevicesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Device', ], ], 'DiscoverPollEndpointRequest' => [ 'type' => 'structure', 'members' => [ 'containerInstance' => [ 'shape' => 'String', ], 'cluster' => [ 'shape' => 'String', ], ], ], 'DiscoverPollEndpointResponse' => [ 'type' => 'structure', 'members' => [ 'endpoint' => [ 'shape' => 'String', ], 'telemetryEndpoint' => [ 'shape' => 'String', ], ], ], 'DockerLabelsMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'DockerVolumeConfiguration' => [ 'type' => 'structure', 'members' => [ 'scope' => [ 'shape' => 'Scope', ], 'autoprovision' => [ 'shape' => 'BoxedBoolean', ], 'driver' => [ 'shape' => 'String', ], 'driverOpts' => [ 'shape' => 'StringMap', ], 'labels' => [ 'shape' => 'StringMap', ], ], ], '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', ], ], 'GpuIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'HealthCheck' => [ 'type' => 'structure', 'required' => [ 'command', ], 'members' => [ 'command' => [ 'shape' => 'StringList', ], 'interval' => [ 'shape' => 'BoxedInteger', ], 'timeout' => [ 'shape' => 'BoxedInteger', ], 'retries' => [ 'shape' => 'BoxedInteger', ], 'startPeriod' => [ 'shape' => 'BoxedInteger', ], ], ], 'HealthStatus' => [ 'type' => 'string', 'enum' => [ 'HEALTHY', 'UNHEALTHY', 'UNKNOWN', ], ], 'HostEntry' => [ 'type' => 'structure', 'required' => [ 'hostname', 'ipAddress', ], 'members' => [ 'hostname' => [ 'shape' => 'String', ], 'ipAddress' => [ 'shape' => 'String', ], ], ], 'HostEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostEntry', ], ], 'HostVolumeProperties' => [ 'type' => 'structure', 'members' => [ 'sourcePath' => [ 'shape' => 'String', ], ], ], 'Integer' => [ 'type' => 'integer', ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'IpcMode' => [ 'type' => 'string', 'enum' => [ 'host', 'task', 'none', ], ], 'KernelCapabilities' => [ 'type' => 'structure', 'members' => [ 'add' => [ 'shape' => 'StringList', ], 'drop' => [ 'shape' => 'StringList', ], ], ], 'KeyValuePair' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], ], 'LaunchType' => [ 'type' => 'string', 'enum' => [ 'EC2', 'FARGATE', ], ], 'LinuxParameters' => [ 'type' => 'structure', 'members' => [ 'capabilities' => [ 'shape' => 'KernelCapabilities', ], 'devices' => [ 'shape' => 'DevicesList', ], 'initProcessEnabled' => [ 'shape' => 'BoxedBoolean', ], 'sharedMemorySize' => [ 'shape' => 'BoxedInteger', ], 'tmpfs' => [ 'shape' => 'TmpfsList', ], ], ], 'ListAccountSettingsRequest' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'SettingName', ], 'value' => [ 'shape' => 'String', ], 'principalArn' => [ 'shape' => 'String', ], 'effectiveSettings' => [ 'shape' => 'Boolean', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'Integer', ], ], ], 'ListAccountSettingsResponse' => [ 'type' => 'structure', 'members' => [ 'settings' => [ 'shape' => 'Settings', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'targetType', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'targetType' => [ 'shape' => 'TargetType', ], 'attributeName' => [ 'shape' => 'String', ], 'attributeValue' => [ 'shape' => 'String', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], ], ], 'ListAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'attributes' => [ 'shape' => 'Attributes', ], 'nextToken' => [ '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', ], 'filter' => [ 'shape' => 'String', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], 'status' => [ 'shape' => 'ContainerInstanceStatus', ], ], ], 'ListContainerInstancesResponse' => [ 'type' => 'structure', 'members' => [ 'containerInstanceArns' => [ 'shape' => 'StringList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListServicesRequest' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'schedulingStrategy' => [ 'shape' => 'SchedulingStrategy', ], ], ], 'ListServicesResponse' => [ 'type' => 'structure', 'members' => [ 'serviceArns' => [ 'shape' => 'StringList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'String', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'tags' => [ 'shape' => 'Tags', ], ], ], 'ListTaskDefinitionFamiliesRequest' => [ 'type' => 'structure', 'members' => [ 'familyPrefix' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'TaskDefinitionFamilyStatus', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], ], ], 'ListTaskDefinitionFamiliesResponse' => [ 'type' => 'structure', 'members' => [ 'families' => [ 'shape' => 'StringList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListTaskDefinitionsRequest' => [ 'type' => 'structure', 'members' => [ 'familyPrefix' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'TaskDefinitionStatus', ], 'sort' => [ 'shape' => 'SortOrder', ], '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', ], 'launchType' => [ 'shape' => 'LaunchType', ], ], ], 'ListTasksResponse' => [ 'type' => 'structure', 'members' => [ 'taskArns' => [ 'shape' => 'StringList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'LoadBalancer' => [ 'type' => 'structure', 'members' => [ 'targetGroupArn' => [ 'shape' => 'String', ], 'loadBalancerName' => [ 'shape' => 'String', ], 'containerName' => [ 'shape' => 'String', ], 'containerPort' => [ 'shape' => 'BoxedInteger', ], ], ], 'LoadBalancers' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadBalancer', ], ], 'LogConfiguration' => [ 'type' => 'structure', 'required' => [ 'logDriver', ], 'members' => [ 'logDriver' => [ 'shape' => 'LogDriver', ], 'options' => [ 'shape' => 'LogConfigurationOptionsMap', ], ], ], 'LogConfigurationOptionsMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'LogDriver' => [ 'type' => 'string', 'enum' => [ 'json-file', 'syslog', 'journald', 'gelf', 'fluentd', 'awslogs', 'splunk', ], ], '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', ], ], 'NetworkConfiguration' => [ 'type' => 'structure', 'members' => [ 'awsvpcConfiguration' => [ 'shape' => 'AwsVpcConfiguration', ], ], ], 'NetworkInterface' => [ 'type' => 'structure', 'members' => [ 'attachmentId' => [ 'shape' => 'String', ], 'privateIpv4Address' => [ 'shape' => 'String', ], 'ipv6Address' => [ 'shape' => 'String', ], ], ], 'NetworkInterfaces' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterface', ], ], 'NetworkMode' => [ 'type' => 'string', 'enum' => [ 'bridge', 'host', 'awsvpc', 'none', ], ], 'NoUpdateAvailableException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'PidMode' => [ 'type' => 'string', 'enum' => [ 'host', 'task', ], ], 'PlacementConstraint' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'PlacementConstraintType', ], 'expression' => [ 'shape' => 'String', ], ], ], 'PlacementConstraintType' => [ 'type' => 'string', 'enum' => [ 'distinctInstance', 'memberOf', ], ], 'PlacementConstraints' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlacementConstraint', ], ], 'PlacementStrategies' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlacementStrategy', ], ], 'PlacementStrategy' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'PlacementStrategyType', ], 'field' => [ 'shape' => 'String', ], ], ], 'PlacementStrategyType' => [ 'type' => 'string', 'enum' => [ 'random', 'spread', 'binpack', ], ], 'PlatformDevice' => [ 'type' => 'structure', 'required' => [ 'id', 'type', ], 'members' => [ 'id' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'PlatformDeviceType', ], ], ], 'PlatformDeviceType' => [ 'type' => 'string', 'enum' => [ 'GPU', ], ], 'PlatformDevices' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlatformDevice', ], ], 'PlatformTaskDefinitionIncompatibilityException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'PlatformUnknownException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'PortMapping' => [ 'type' => 'structure', 'members' => [ 'containerPort' => [ 'shape' => 'BoxedInteger', ], 'hostPort' => [ 'shape' => 'BoxedInteger', ], 'protocol' => [ 'shape' => 'TransportProtocol', ], ], ], 'PortMappingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PortMapping', ], ], 'PropagateTags' => [ 'type' => 'string', 'enum' => [ 'TASK_DEFINITION', 'SERVICE', ], ], 'ProxyConfiguration' => [ 'type' => 'structure', 'required' => [ 'containerName', ], 'members' => [ 'type' => [ 'shape' => 'ProxyConfigurationType', ], 'containerName' => [ 'shape' => 'String', ], 'properties' => [ 'shape' => 'ProxyConfigurationProperties', ], ], ], 'ProxyConfigurationProperties' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyValuePair', ], ], 'ProxyConfigurationType' => [ 'type' => 'string', 'enum' => [ 'APPMESH', ], ], 'PutAccountSettingDefaultRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'value', ], 'members' => [ 'name' => [ 'shape' => 'SettingName', ], 'value' => [ 'shape' => 'String', ], ], ], 'PutAccountSettingDefaultResponse' => [ 'type' => 'structure', 'members' => [ 'setting' => [ 'shape' => 'Setting', ], ], ], 'PutAccountSettingRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'value', ], 'members' => [ 'name' => [ 'shape' => 'SettingName', ], 'value' => [ 'shape' => 'String', ], 'principalArn' => [ 'shape' => 'String', ], ], ], 'PutAccountSettingResponse' => [ 'type' => 'structure', 'members' => [ 'setting' => [ 'shape' => 'Setting', ], ], ], 'PutAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'attributes', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'attributes' => [ 'shape' => 'Attributes', ], ], ], 'PutAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'attributes' => [ 'shape' => 'Attributes', ], ], ], 'RegisterContainerInstanceRequest' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'instanceIdentityDocument' => [ 'shape' => 'String', ], 'instanceIdentityDocumentSignature' => [ 'shape' => 'String', ], 'totalResources' => [ 'shape' => 'Resources', ], 'versionInfo' => [ 'shape' => 'VersionInfo', ], 'containerInstanceArn' => [ 'shape' => 'String', ], 'attributes' => [ 'shape' => 'Attributes', ], 'platformDevices' => [ 'shape' => 'PlatformDevices', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'RegisterContainerInstanceResponse' => [ 'type' => 'structure', 'members' => [ 'containerInstance' => [ 'shape' => 'ContainerInstance', ], ], ], 'RegisterTaskDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'family', 'containerDefinitions', ], 'members' => [ 'family' => [ 'shape' => 'String', ], 'taskRoleArn' => [ 'shape' => 'String', ], 'executionRoleArn' => [ 'shape' => 'String', ], 'networkMode' => [ 'shape' => 'NetworkMode', ], 'containerDefinitions' => [ 'shape' => 'ContainerDefinitions', ], 'volumes' => [ 'shape' => 'VolumeList', ], 'placementConstraints' => [ 'shape' => 'TaskDefinitionPlacementConstraints', ], 'requiresCompatibilities' => [ 'shape' => 'CompatibilityList', ], 'cpu' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'Tags', ], 'pidMode' => [ 'shape' => 'PidMode', ], 'ipcMode' => [ 'shape' => 'IpcMode', ], 'proxyConfiguration' => [ 'shape' => 'ProxyConfiguration', ], ], ], 'RegisterTaskDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'taskDefinition' => [ 'shape' => 'TaskDefinition', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'RepositoryCredentials' => [ 'type' => 'structure', 'required' => [ 'credentialsParameter', ], 'members' => [ 'credentialsParameter' => [ 'shape' => 'String', ], ], ], 'RequiresAttributes' => [ 'type' => 'list', 'member' => [ 'shape' => 'Attribute', ], ], 'Resource' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'String', ], 'doubleValue' => [ 'shape' => 'Double', ], 'longValue' => [ 'shape' => 'Long', ], 'integerValue' => [ 'shape' => 'Integer', ], 'stringSetValue' => [ 'shape' => 'StringList', ], ], ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ResourceRequirement' => [ 'type' => 'structure', 'required' => [ 'value', 'type', ], 'members' => [ 'value' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'ResourceType', ], ], ], 'ResourceRequirements' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceRequirement', ], ], 'ResourceType' => [ 'type' => 'string', 'enum' => [ 'GPU', ], ], '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', ], 'group' => [ 'shape' => 'String', ], 'placementConstraints' => [ 'shape' => 'PlacementConstraints', ], 'placementStrategy' => [ 'shape' => 'PlacementStrategies', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'platformVersion' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'tags' => [ 'shape' => 'Tags', ], 'enableECSManagedTags' => [ 'shape' => 'Boolean', ], 'propagateTags' => [ 'shape' => 'PropagateTags', ], ], ], 'RunTaskResponse' => [ 'type' => 'structure', 'members' => [ 'tasks' => [ 'shape' => 'Tasks', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'Scale' => [ 'type' => 'structure', 'members' => [ 'value' => [ 'shape' => 'Double', ], 'unit' => [ 'shape' => 'ScaleUnit', ], ], ], 'ScaleUnit' => [ 'type' => 'string', 'enum' => [ 'PERCENT', ], ], 'SchedulingStrategy' => [ 'type' => 'string', 'enum' => [ 'REPLICA', 'DAEMON', ], ], 'Scope' => [ 'type' => 'string', 'enum' => [ 'task', 'shared', ], ], 'Secret' => [ 'type' => 'structure', 'required' => [ 'name', 'valueFrom', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'valueFrom' => [ 'shape' => 'String', ], ], ], 'SecretList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Secret', ], ], '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', ], 'serviceRegistries' => [ 'shape' => 'ServiceRegistries', ], 'status' => [ 'shape' => 'String', ], 'desiredCount' => [ 'shape' => 'Integer', ], 'runningCount' => [ 'shape' => 'Integer', ], 'pendingCount' => [ 'shape' => 'Integer', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'platformVersion' => [ 'shape' => 'String', ], 'taskDefinition' => [ 'shape' => 'String', ], 'deploymentConfiguration' => [ 'shape' => 'DeploymentConfiguration', ], 'taskSets' => [ 'shape' => 'TaskSets', ], 'deployments' => [ 'shape' => 'Deployments', ], 'roleArn' => [ 'shape' => 'String', ], 'events' => [ 'shape' => 'ServiceEvents', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'placementConstraints' => [ 'shape' => 'PlacementConstraints', ], 'placementStrategy' => [ 'shape' => 'PlacementStrategies', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'healthCheckGracePeriodSeconds' => [ 'shape' => 'BoxedInteger', ], 'schedulingStrategy' => [ 'shape' => 'SchedulingStrategy', ], 'deploymentController' => [ 'shape' => 'DeploymentController', ], 'tags' => [ 'shape' => 'Tags', ], 'createdBy' => [ 'shape' => 'String', ], 'enableECSManagedTags' => [ 'shape' => 'Boolean', ], 'propagateTags' => [ 'shape' => 'PropagateTags', ], ], ], 'ServiceEvent' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'message' => [ 'shape' => 'String', ], ], ], 'ServiceEvents' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceEvent', ], ], 'ServiceField' => [ 'type' => 'string', 'enum' => [ 'TAGS', ], ], 'ServiceFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceField', ], ], 'ServiceNotActiveException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ServiceNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ServiceRegistries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceRegistry', ], ], 'ServiceRegistry' => [ 'type' => 'structure', 'members' => [ 'registryArn' => [ 'shape' => 'String', ], 'port' => [ 'shape' => 'BoxedInteger', ], 'containerName' => [ 'shape' => 'String', ], 'containerPort' => [ 'shape' => 'BoxedInteger', ], ], ], 'Services' => [ 'type' => 'list', 'member' => [ 'shape' => 'Service', ], ], 'Setting' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'SettingName', ], 'value' => [ 'shape' => 'String', ], 'principalArn' => [ 'shape' => 'String', ], ], ], 'SettingName' => [ 'type' => 'string', 'enum' => [ 'serviceLongArnFormat', 'taskLongArnFormat', 'containerInstanceLongArnFormat', ], ], 'Settings' => [ 'type' => 'list', 'member' => [ 'shape' => 'Setting', ], ], 'SortOrder' => [ 'type' => 'string', 'enum' => [ 'ASC', 'DESC', ], ], 'StabilityStatus' => [ 'type' => 'string', 'enum' => [ 'STEADY_STATE', 'STABILIZING', ], ], 'StartTaskRequest' => [ 'type' => 'structure', 'required' => [ 'taskDefinition', 'containerInstances', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'taskDefinition' => [ 'shape' => 'String', ], 'overrides' => [ 'shape' => 'TaskOverride', ], 'containerInstances' => [ 'shape' => 'StringList', ], 'startedBy' => [ 'shape' => 'String', ], 'group' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'tags' => [ 'shape' => 'Tags', ], 'enableECSManagedTags' => [ 'shape' => 'Boolean', ], 'propagateTags' => [ 'shape' => 'PropagateTags', ], ], ], 'StartTaskResponse' => [ 'type' => 'structure', 'members' => [ 'tasks' => [ 'shape' => 'Tasks', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'Statistics' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyValuePair', ], ], 'StopTaskRequest' => [ 'type' => 'structure', 'required' => [ 'task', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'task' => [ 'shape' => 'String', ], 'reason' => [ 'shape' => 'String', ], ], ], 'StopTaskResponse' => [ 'type' => 'structure', 'members' => [ 'task' => [ 'shape' => 'Task', ], ], ], 'String' => [ 'type' => 'string', ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'StringMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ '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', ], 'containers' => [ 'shape' => 'ContainerStateChanges', ], 'attachments' => [ 'shape' => 'AttachmentStateChanges', ], 'pullStartedAt' => [ 'shape' => 'Timestamp', ], 'pullStoppedAt' => [ 'shape' => 'Timestamp', ], 'executionStoppedAt' => [ 'shape' => 'Timestamp', ], ], ], 'SubmitTaskStateChangeResponse' => [ 'type' => 'structure', 'members' => [ 'acknowledgment' => [ 'shape' => 'String', ], ], ], 'SystemControl' => [ 'type' => 'structure', 'members' => [ 'namespace' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], ], 'SystemControls' => [ 'type' => 'list', 'member' => [ 'shape' => 'SystemControl', ], ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeys' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tags', ], 'members' => [ 'resourceArn' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'Tags' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 50, 'min' => 0, ], 'TargetNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'TargetType' => [ 'type' => 'string', 'enum' => [ 'container-instance', ], ], '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', ], 'cpu' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'containers' => [ 'shape' => 'Containers', ], 'startedBy' => [ 'shape' => 'String', ], 'version' => [ 'shape' => 'Long', ], 'stoppedReason' => [ 'shape' => 'String', ], 'stopCode' => [ 'shape' => 'TaskStopCode', ], 'connectivity' => [ 'shape' => 'Connectivity', ], 'connectivityAt' => [ 'shape' => 'Timestamp', ], 'pullStartedAt' => [ 'shape' => 'Timestamp', ], 'pullStoppedAt' => [ 'shape' => 'Timestamp', ], 'executionStoppedAt' => [ 'shape' => 'Timestamp', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'startedAt' => [ 'shape' => 'Timestamp', ], 'stoppingAt' => [ 'shape' => 'Timestamp', ], 'stoppedAt' => [ 'shape' => 'Timestamp', ], 'group' => [ 'shape' => 'String', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'platformVersion' => [ 'shape' => 'String', ], 'attachments' => [ 'shape' => 'Attachments', ], 'healthStatus' => [ 'shape' => 'HealthStatus', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'TaskDefinition' => [ 'type' => 'structure', 'members' => [ 'taskDefinitionArn' => [ 'shape' => 'String', ], 'containerDefinitions' => [ 'shape' => 'ContainerDefinitions', ], 'family' => [ 'shape' => 'String', ], 'taskRoleArn' => [ 'shape' => 'String', ], 'executionRoleArn' => [ 'shape' => 'String', ], 'networkMode' => [ 'shape' => 'NetworkMode', ], 'revision' => [ 'shape' => 'Integer', ], 'volumes' => [ 'shape' => 'VolumeList', ], 'status' => [ 'shape' => 'TaskDefinitionStatus', ], 'requiresAttributes' => [ 'shape' => 'RequiresAttributes', ], 'placementConstraints' => [ 'shape' => 'TaskDefinitionPlacementConstraints', ], 'compatibilities' => [ 'shape' => 'CompatibilityList', ], 'requiresCompatibilities' => [ 'shape' => 'CompatibilityList', ], 'cpu' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'pidMode' => [ 'shape' => 'PidMode', ], 'ipcMode' => [ 'shape' => 'IpcMode', ], 'proxyConfiguration' => [ 'shape' => 'ProxyConfiguration', ], ], ], 'TaskDefinitionFamilyStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'INACTIVE', 'ALL', ], ], 'TaskDefinitionField' => [ 'type' => 'string', 'enum' => [ 'TAGS', ], ], 'TaskDefinitionFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskDefinitionField', ], ], 'TaskDefinitionPlacementConstraint' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'TaskDefinitionPlacementConstraintType', ], 'expression' => [ 'shape' => 'String', ], ], ], 'TaskDefinitionPlacementConstraintType' => [ 'type' => 'string', 'enum' => [ 'memberOf', ], ], 'TaskDefinitionPlacementConstraints' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskDefinitionPlacementConstraint', ], ], 'TaskDefinitionStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'INACTIVE', ], ], 'TaskField' => [ 'type' => 'string', 'enum' => [ 'TAGS', ], ], 'TaskFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskField', ], ], 'TaskOverride' => [ 'type' => 'structure', 'members' => [ 'containerOverrides' => [ 'shape' => 'ContainerOverrides', ], 'taskRoleArn' => [ 'shape' => 'String', ], 'executionRoleArn' => [ 'shape' => 'String', ], ], ], 'TaskSet' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'taskSetArn' => [ 'shape' => 'String', ], 'serviceArn' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'startedBy' => [ 'shape' => 'String', ], 'externalId' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'String', ], 'taskDefinition' => [ 'shape' => 'String', ], 'computedDesiredCount' => [ 'shape' => 'Integer', ], 'pendingCount' => [ 'shape' => 'Integer', ], 'runningCount' => [ 'shape' => 'Integer', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'platformVersion' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'loadBalancers' => [ 'shape' => 'LoadBalancers', ], 'serviceRegistries' => [ 'shape' => 'ServiceRegistries', ], 'scale' => [ 'shape' => 'Scale', ], 'stabilityStatus' => [ 'shape' => 'StabilityStatus', ], 'stabilityStatusAt' => [ 'shape' => 'Timestamp', ], ], ], 'TaskSetNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'TaskSets' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskSet', ], ], 'TaskStopCode' => [ 'type' => 'string', 'enum' => [ 'TaskFailedToStart', 'EssentialContainerExited', 'UserInitiated', ], ], 'Tasks' => [ 'type' => 'list', 'member' => [ 'shape' => 'Task', ], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'Tmpfs' => [ 'type' => 'structure', 'required' => [ 'containerPath', 'size', ], 'members' => [ 'containerPath' => [ 'shape' => 'String', ], 'size' => [ 'shape' => 'Integer', ], 'mountOptions' => [ 'shape' => 'StringList', ], ], ], 'TmpfsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tmpfs', ], ], 'TransportProtocol' => [ 'type' => 'string', 'enum' => [ 'tcp', 'udp', ], ], 'Ulimit' => [ 'type' => 'structure', 'required' => [ 'name', 'softLimit', 'hardLimit', ], 'members' => [ 'name' => [ 'shape' => 'UlimitName', ], 'softLimit' => [ 'shape' => 'Integer', ], 'hardLimit' => [ 'shape' => 'Integer', ], ], ], 'UlimitList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ulimit', ], ], 'UlimitName' => [ 'type' => 'string', 'enum' => [ 'core', 'cpu', 'data', 'fsize', 'locks', 'memlock', 'msgqueue', 'nice', 'nofile', 'nproc', 'rss', 'rtprio', 'rttime', 'sigpending', 'stack', ], ], 'UnsupportedFeatureException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tagKeys', ], 'members' => [ 'resourceArn' => [ 'shape' => 'String', ], 'tagKeys' => [ 'shape' => 'TagKeys', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateContainerAgentRequest' => [ 'type' => 'structure', 'required' => [ 'containerInstance', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'containerInstance' => [ 'shape' => 'String', ], ], ], 'UpdateContainerAgentResponse' => [ 'type' => 'structure', 'members' => [ 'containerInstance' => [ 'shape' => 'ContainerInstance', ], ], ], 'UpdateContainerInstancesStateRequest' => [ 'type' => 'structure', 'required' => [ 'containerInstances', 'status', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'containerInstances' => [ 'shape' => 'StringList', ], 'status' => [ 'shape' => 'ContainerInstanceStatus', ], ], ], 'UpdateContainerInstancesStateResponse' => [ 'type' => 'structure', 'members' => [ 'containerInstances' => [ 'shape' => 'ContainerInstances', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'UpdateInProgressException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'UpdateServicePrimaryTaskSetRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', 'service', 'primaryTaskSet', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'service' => [ 'shape' => 'String', ], 'primaryTaskSet' => [ 'shape' => 'String', ], ], ], 'UpdateServicePrimaryTaskSetResponse' => [ 'type' => 'structure', 'members' => [ 'taskSet' => [ 'shape' => 'TaskSet', ], ], ], 'UpdateServiceRequest' => [ 'type' => 'structure', 'required' => [ 'service', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'service' => [ 'shape' => 'String', ], 'desiredCount' => [ 'shape' => 'BoxedInteger', ], 'taskDefinition' => [ 'shape' => 'String', ], 'deploymentConfiguration' => [ 'shape' => 'DeploymentConfiguration', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'platformVersion' => [ 'shape' => 'String', ], 'forceNewDeployment' => [ 'shape' => 'Boolean', ], 'healthCheckGracePeriodSeconds' => [ 'shape' => 'BoxedInteger', ], ], ], 'UpdateServiceResponse' => [ 'type' => 'structure', 'members' => [ 'service' => [ 'shape' => 'Service', ], ], ], 'UpdateTaskSetRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', 'service', 'taskSet', 'scale', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'service' => [ 'shape' => 'String', ], 'taskSet' => [ 'shape' => 'String', ], 'scale' => [ 'shape' => 'Scale', ], ], ], 'UpdateTaskSetResponse' => [ 'type' => 'structure', 'members' => [ 'taskSet' => [ 'shape' => 'TaskSet', ], ], ], 'VersionInfo' => [ 'type' => 'structure', 'members' => [ 'agentVersion' => [ 'shape' => 'String', ], 'agentHash' => [ 'shape' => 'String', ], 'dockerVersion' => [ 'shape' => 'String', ], ], ], 'Volume' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'host' => [ 'shape' => 'HostVolumeProperties', ], 'dockerVolumeConfiguration' => [ 'shape' => 'DockerVolumeConfiguration', ], ], ], '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/Aws/data/ecs/2014-11-13/paginators-1.json.php b/lib/aws/Aws/data/ecs/2014-11-13/paginators-1.json.php new file mode 100644 index 0000000..94af3ae --- /dev/null +++ b/lib/aws/Aws/data/ecs/2014-11-13/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ecs/2014-11-13/paginators-1.json +return [ 'pagination' => [ 'ListClusters' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'clusterArns', ], 'ListContainerInstances' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'containerInstanceArns', ], 'ListServices' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'serviceArns', ], 'ListTaskDefinitionFamilies' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'families', ], 'ListTaskDefinitions' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'taskDefinitionArns', ], 'ListTasks' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'taskArns', ], ],]; diff --git a/lib/aws/Aws/data/ecs/2014-11-13/smoke.json.php b/lib/aws/Aws/data/ecs/2014-11-13/smoke.json.php new file mode 100644 index 0000000..9ffefee --- /dev/null +++ b/lib/aws/Aws/data/ecs/2014-11-13/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ecs/2014-11-13/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListClusters', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'StopTask', 'input' => [ 'task' => 'xxxxxxxxxxx-xxxxxxxxxxxx-xxxxxxxxxxx', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/ecs/2014-11-13/waiters-2.json.php b/lib/aws/Aws/data/ecs/2014-11-13/waiters-2.json.php new file mode 100644 index 0000000..49c03e1 --- /dev/null +++ b/lib/aws/Aws/data/ecs/2014-11-13/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ecs/2014-11-13/waiters-2.json +return [ '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' => 'length(services[?!(length(deployments) == `1` && runningCount == desiredCount)]) == `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/Aws/data/eks/2017-11-01/api-2.json.php b/lib/aws/Aws/data/eks/2017-11-01/api-2.json.php new file mode 100644 index 0000000..45769c2 --- /dev/null +++ b/lib/aws/Aws/data/eks/2017-11-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/eks/2017-11-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-11-01', 'endpointPrefix' => 'eks', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'Amazon EKS', 'serviceFullName' => 'Amazon Elastic Container Service for Kubernetes', 'serviceId' => 'EKS', 'signatureVersion' => 'v4', 'signingName' => 'eks', 'uid' => 'eks-2017-11-01', ], 'operations' => [ 'CreateCluster' => [ 'name' => 'CreateCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/clusters', ], 'input' => [ 'shape' => 'CreateClusterRequest', ], 'output' => [ 'shape' => 'CreateClusterResponse', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'UnsupportedAvailabilityZoneException', ], ], ], 'DeleteCluster' => [ 'name' => 'DeleteCluster', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/clusters/{name}', ], 'input' => [ 'shape' => 'DeleteClusterRequest', ], 'output' => [ 'shape' => 'DeleteClusterResponse', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeCluster' => [ 'name' => 'DescribeCluster', 'http' => [ 'method' => 'GET', 'requestUri' => '/clusters/{name}', ], 'input' => [ 'shape' => 'DescribeClusterRequest', ], 'output' => [ 'shape' => 'DescribeClusterResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeUpdate' => [ 'name' => 'DescribeUpdate', 'http' => [ 'method' => 'GET', 'requestUri' => '/clusters/{name}/updates/{updateId}', ], 'input' => [ 'shape' => 'DescribeUpdateRequest', ], 'output' => [ 'shape' => 'DescribeUpdateResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListClusters' => [ 'name' => 'ListClusters', 'http' => [ 'method' => 'GET', 'requestUri' => '/clusters', ], 'input' => [ 'shape' => 'ListClustersRequest', ], 'output' => [ 'shape' => 'ListClustersResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ListUpdates' => [ 'name' => 'ListUpdates', 'http' => [ 'method' => 'GET', 'requestUri' => '/clusters/{name}/updates', ], 'input' => [ 'shape' => 'ListUpdatesRequest', ], 'output' => [ 'shape' => 'ListUpdatesResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateClusterConfig' => [ 'name' => 'UpdateClusterConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/clusters/{name}/update-config', ], 'input' => [ 'shape' => 'UpdateClusterConfigRequest', ], 'output' => [ 'shape' => 'UpdateClusterConfigResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'UpdateClusterVersion' => [ 'name' => 'UpdateClusterVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/clusters/{name}/updates', ], 'input' => [ 'shape' => 'UpdateClusterVersionRequest', ], 'output' => [ 'shape' => 'UpdateClusterVersionResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], ], ], ], 'shapes' => [ 'Boolean' => [ 'type' => 'boolean', ], 'BoxedBoolean' => [ 'type' => 'boolean', 'box' => true, ], 'Certificate' => [ 'type' => 'structure', 'members' => [ 'data' => [ 'shape' => 'String', ], ], ], 'ClientException' => [ 'type' => 'structure', 'members' => [ 'clusterName' => [ 'shape' => 'String', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'Cluster' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'arn' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'version' => [ 'shape' => 'String', ], 'endpoint' => [ 'shape' => 'String', ], 'roleArn' => [ 'shape' => 'String', ], 'resourcesVpcConfig' => [ 'shape' => 'VpcConfigResponse', ], 'logging' => [ 'shape' => 'Logging', ], 'status' => [ 'shape' => 'ClusterStatus', ], 'certificateAuthority' => [ 'shape' => 'Certificate', ], 'clientRequestToken' => [ 'shape' => 'String', ], 'platformVersion' => [ 'shape' => 'String', ], ], ], 'ClusterName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '^[0-9A-Za-z][A-Za-z0-9\\-_]*', ], 'ClusterStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'ACTIVE', 'DELETING', 'FAILED', ], ], 'CreateClusterRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'roleArn', 'resourcesVpcConfig', ], 'members' => [ 'name' => [ 'shape' => 'ClusterName', ], 'version' => [ 'shape' => 'String', ], 'roleArn' => [ 'shape' => 'String', ], 'resourcesVpcConfig' => [ 'shape' => 'VpcConfigRequest', ], 'logging' => [ 'shape' => 'Logging', ], 'clientRequestToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'CreateClusterResponse' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'Cluster', ], ], ], 'DeleteClusterRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'name', ], ], ], 'DeleteClusterResponse' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'Cluster', ], ], ], 'DescribeClusterRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'name', ], ], ], 'DescribeClusterResponse' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'Cluster', ], ], ], 'DescribeUpdateRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'updateId', ], 'members' => [ 'name' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'name', ], 'updateId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'updateId', ], ], ], 'DescribeUpdateResponse' => [ 'type' => 'structure', 'members' => [ 'update' => [ 'shape' => 'Update', ], ], ], 'ErrorCode' => [ 'type' => 'string', 'enum' => [ 'SubnetNotFound', 'SecurityGroupNotFound', 'EniLimitReached', 'IpNotAvailable', 'AccessDenied', 'OperationNotPermitted', 'VpcIdNotFound', 'Unknown', ], ], 'ErrorDetail' => [ 'type' => 'structure', 'members' => [ 'errorCode' => [ 'shape' => 'ErrorCode', ], 'errorMessage' => [ 'shape' => 'String', ], 'resourceIds' => [ 'shape' => 'StringList', ], ], ], 'ErrorDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'ErrorDetail', ], ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'clusterName' => [ 'shape' => 'String', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'clusterName' => [ 'shape' => 'String', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ListClustersRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'ListClustersRequestMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListClustersRequestMaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'ListClustersResponse' => [ 'type' => 'structure', 'members' => [ 'clusters' => [ 'shape' => 'StringList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListUpdatesRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'name', ], 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'ListUpdatesRequestMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListUpdatesRequestMaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'ListUpdatesResponse' => [ 'type' => 'structure', 'members' => [ 'updateIds' => [ 'shape' => 'StringList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'LogSetup' => [ 'type' => 'structure', 'members' => [ 'types' => [ 'shape' => 'LogTypes', ], 'enabled' => [ 'shape' => 'BoxedBoolean', ], ], ], 'LogSetups' => [ 'type' => 'list', 'member' => [ 'shape' => 'LogSetup', ], ], 'LogType' => [ 'type' => 'string', 'enum' => [ 'api', 'audit', 'authenticator', 'controllerManager', 'scheduler', ], ], 'LogTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'LogType', ], ], 'Logging' => [ 'type' => 'structure', 'members' => [ 'clusterLogging' => [ 'shape' => 'LogSetups', ], ], ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [ 'clusterName' => [ 'shape' => 'String', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'ResourceLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'clusterName' => [ 'shape' => 'String', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'clusterName' => [ 'shape' => 'String', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'ServerException' => [ 'type' => 'structure', 'members' => [ 'clusterName' => [ 'shape' => 'String', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 503, ], 'exception' => true, 'fault' => true, ], 'String' => [ 'type' => 'string', ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'UnsupportedAvailabilityZoneException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], 'clusterName' => [ 'shape' => 'String', ], 'validZones' => [ 'shape' => 'StringList', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'Update' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'UpdateStatus', ], 'type' => [ 'shape' => 'UpdateType', ], 'params' => [ 'shape' => 'UpdateParams', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'errors' => [ 'shape' => 'ErrorDetails', ], ], ], 'UpdateClusterConfigRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'name', ], 'resourcesVpcConfig' => [ 'shape' => 'VpcConfigRequest', ], 'logging' => [ 'shape' => 'Logging', ], 'clientRequestToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'UpdateClusterConfigResponse' => [ 'type' => 'structure', 'members' => [ 'update' => [ 'shape' => 'Update', ], ], ], 'UpdateClusterVersionRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'version', ], 'members' => [ 'name' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'name', ], 'version' => [ 'shape' => 'String', ], 'clientRequestToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'UpdateClusterVersionResponse' => [ 'type' => 'structure', 'members' => [ 'update' => [ 'shape' => 'Update', ], ], ], 'UpdateParam' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'UpdateParamType', ], 'value' => [ 'shape' => 'String', ], ], ], 'UpdateParamType' => [ 'type' => 'string', 'enum' => [ 'Version', 'PlatformVersion', 'EndpointPrivateAccess', 'EndpointPublicAccess', 'ClusterLogging', ], ], 'UpdateParams' => [ 'type' => 'list', 'member' => [ 'shape' => 'UpdateParam', ], ], 'UpdateStatus' => [ 'type' => 'string', 'enum' => [ 'InProgress', 'Failed', 'Cancelled', 'Successful', ], ], 'UpdateType' => [ 'type' => 'string', 'enum' => [ 'VersionUpdate', 'EndpointAccessUpdate', 'LoggingUpdate', ], ], 'VpcConfigRequest' => [ 'type' => 'structure', 'members' => [ 'subnetIds' => [ 'shape' => 'StringList', ], 'securityGroupIds' => [ 'shape' => 'StringList', ], 'endpointPublicAccess' => [ 'shape' => 'BoxedBoolean', ], 'endpointPrivateAccess' => [ 'shape' => 'BoxedBoolean', ], ], ], 'VpcConfigResponse' => [ 'type' => 'structure', 'members' => [ 'subnetIds' => [ 'shape' => 'StringList', ], 'securityGroupIds' => [ 'shape' => 'StringList', ], 'vpcId' => [ 'shape' => 'String', ], 'endpointPublicAccess' => [ 'shape' => 'Boolean', ], 'endpointPrivateAccess' => [ 'shape' => 'Boolean', ], ], ], ],]; diff --git a/lib/aws/Aws/data/eks/2017-11-01/paginators-1.json.php b/lib/aws/Aws/data/eks/2017-11-01/paginators-1.json.php new file mode 100644 index 0000000..2a33e03 --- /dev/null +++ b/lib/aws/Aws/data/eks/2017-11-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/eks/2017-11-01/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/eks/2017-11-01/waiters-2.json.php b/lib/aws/Aws/data/eks/2017-11-01/waiters-2.json.php new file mode 100644 index 0000000..c31be82 --- /dev/null +++ b/lib/aws/Aws/data/eks/2017-11-01/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/eks/2017-11-01/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'ClusterActive' => [ 'delay' => 30, 'operation' => 'DescribeCluster', 'maxAttempts' => 40, 'acceptors' => [ [ 'expected' => 'DELETING', 'matcher' => 'path', 'state' => 'failure', 'argument' => 'cluster.status', ], [ 'expected' => 'FAILED', 'matcher' => 'path', 'state' => 'failure', 'argument' => 'cluster.status', ], [ 'expected' => 'ACTIVE', 'matcher' => 'path', 'state' => 'success', 'argument' => 'cluster.status', ], ], ], 'ClusterDeleted' => [ 'delay' => 30, 'operation' => 'DescribeCluster', 'maxAttempts' => 40, 'acceptors' => [ [ 'expected' => 'ACTIVE', 'matcher' => 'path', 'state' => 'failure', 'argument' => 'cluster.status', ], [ 'expected' => 'CREATING', 'matcher' => 'path', 'state' => 'failure', 'argument' => 'cluster.status', ], [ 'expected' => 'ResourceNotFoundException', 'matcher' => 'error', 'state' => 'success', ], ], ], ],]; diff --git a/lib/aws/Aws/data/elasticache/2015-02-02/api-2.json.php b/lib/aws/Aws/data/elasticache/2015-02-02/api-2.json.php new file mode 100644 index 0000000..a04b323 --- /dev/null +++ b/lib/aws/Aws/data/elasticache/2015-02-02/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticache/2015-02-02/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-02-02', 'endpointPrefix' => 'elasticache', 'protocol' => 'query', 'serviceFullName' => 'Amazon ElastiCache', 'serviceId' => 'ElastiCache', 'signatureVersion' => 'v4', 'uid' => 'elasticache-2015-02-02', 'xmlNamespace' => 'http://elasticache.amazonaws.com/doc/2015-02-02/', ], 'operations' => [ 'AddTagsToResource' => [ 'name' => 'AddTagsToResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddTagsToResourceMessage', ], 'output' => [ 'shape' => 'TagListMessage', 'resultWrapper' => 'AddTagsToResourceResult', ], 'errors' => [ [ 'shape' => 'CacheClusterNotFoundFault', ], [ 'shape' => 'SnapshotNotFoundFault', ], [ 'shape' => 'TagQuotaPerResourceExceeded', ], [ 'shape' => 'InvalidARNFault', ], ], ], 'AuthorizeCacheSecurityGroupIngress' => [ 'name' => 'AuthorizeCacheSecurityGroupIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AuthorizeCacheSecurityGroupIngressMessage', ], 'output' => [ 'shape' => 'AuthorizeCacheSecurityGroupIngressResult', 'resultWrapper' => 'AuthorizeCacheSecurityGroupIngressResult', ], 'errors' => [ [ 'shape' => 'CacheSecurityGroupNotFoundFault', ], [ 'shape' => 'InvalidCacheSecurityGroupStateFault', ], [ 'shape' => 'AuthorizationAlreadyExistsFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'CopySnapshot' => [ 'name' => 'CopySnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopySnapshotMessage', ], 'output' => [ 'shape' => 'CopySnapshotResult', 'resultWrapper' => 'CopySnapshotResult', ], 'errors' => [ [ 'shape' => 'SnapshotAlreadyExistsFault', ], [ 'shape' => 'SnapshotNotFoundFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], [ 'shape' => 'InvalidSnapshotStateFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'CreateCacheCluster' => [ 'name' => 'CreateCacheCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCacheClusterMessage', ], 'output' => [ 'shape' => 'CreateCacheClusterResult', 'resultWrapper' => 'CreateCacheClusterResult', ], 'errors' => [ [ 'shape' => 'ReplicationGroupNotFoundFault', ], [ 'shape' => 'InvalidReplicationGroupStateFault', ], [ 'shape' => 'CacheClusterAlreadyExistsFault', ], [ 'shape' => 'InsufficientCacheClusterCapacityFault', ], [ 'shape' => 'CacheSecurityGroupNotFoundFault', ], [ 'shape' => 'CacheSubnetGroupNotFoundFault', ], [ 'shape' => 'ClusterQuotaForCustomerExceededFault', ], [ 'shape' => 'NodeQuotaForClusterExceededFault', ], [ 'shape' => 'NodeQuotaForCustomerExceededFault', ], [ 'shape' => 'CacheParameterGroupNotFoundFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'TagQuotaPerResourceExceeded', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'CreateCacheParameterGroup' => [ 'name' => 'CreateCacheParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCacheParameterGroupMessage', ], 'output' => [ 'shape' => 'CreateCacheParameterGroupResult', 'resultWrapper' => 'CreateCacheParameterGroupResult', ], 'errors' => [ [ 'shape' => 'CacheParameterGroupQuotaExceededFault', ], [ 'shape' => 'CacheParameterGroupAlreadyExistsFault', ], [ 'shape' => 'InvalidCacheParameterGroupStateFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'CreateCacheSecurityGroup' => [ 'name' => 'CreateCacheSecurityGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCacheSecurityGroupMessage', ], 'output' => [ 'shape' => 'CreateCacheSecurityGroupResult', 'resultWrapper' => 'CreateCacheSecurityGroupResult', ], 'errors' => [ [ 'shape' => 'CacheSecurityGroupAlreadyExistsFault', ], [ 'shape' => 'CacheSecurityGroupQuotaExceededFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'CreateCacheSubnetGroup' => [ 'name' => 'CreateCacheSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCacheSubnetGroupMessage', ], 'output' => [ 'shape' => 'CreateCacheSubnetGroupResult', 'resultWrapper' => 'CreateCacheSubnetGroupResult', ], 'errors' => [ [ 'shape' => 'CacheSubnetGroupAlreadyExistsFault', ], [ 'shape' => 'CacheSubnetGroupQuotaExceededFault', ], [ 'shape' => 'CacheSubnetQuotaExceededFault', ], [ 'shape' => 'InvalidSubnet', ], ], ], 'CreateReplicationGroup' => [ 'name' => 'CreateReplicationGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateReplicationGroupMessage', ], 'output' => [ 'shape' => 'CreateReplicationGroupResult', 'resultWrapper' => 'CreateReplicationGroupResult', ], 'errors' => [ [ 'shape' => 'CacheClusterNotFoundFault', ], [ 'shape' => 'InvalidCacheClusterStateFault', ], [ 'shape' => 'ReplicationGroupAlreadyExistsFault', ], [ 'shape' => 'InsufficientCacheClusterCapacityFault', ], [ 'shape' => 'CacheSecurityGroupNotFoundFault', ], [ 'shape' => 'CacheSubnetGroupNotFoundFault', ], [ 'shape' => 'ClusterQuotaForCustomerExceededFault', ], [ 'shape' => 'NodeQuotaForClusterExceededFault', ], [ 'shape' => 'NodeQuotaForCustomerExceededFault', ], [ 'shape' => 'CacheParameterGroupNotFoundFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'TagQuotaPerResourceExceeded', ], [ 'shape' => 'NodeGroupsPerReplicationGroupQuotaExceededFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'CreateSnapshot' => [ 'name' => 'CreateSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSnapshotMessage', ], 'output' => [ 'shape' => 'CreateSnapshotResult', 'resultWrapper' => 'CreateSnapshotResult', ], 'errors' => [ [ 'shape' => 'SnapshotAlreadyExistsFault', ], [ 'shape' => 'CacheClusterNotFoundFault', ], [ 'shape' => 'ReplicationGroupNotFoundFault', ], [ 'shape' => 'InvalidCacheClusterStateFault', ], [ 'shape' => 'InvalidReplicationGroupStateFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], [ 'shape' => 'SnapshotFeatureNotSupportedFault', ], [ 'shape' => 'InvalidParameterCombinationException', ], [ 'shape' => 'InvalidParameterValueException', ], ], ], 'DecreaseReplicaCount' => [ 'name' => 'DecreaseReplicaCount', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DecreaseReplicaCountMessage', ], 'output' => [ 'shape' => 'DecreaseReplicaCountResult', 'resultWrapper' => 'DecreaseReplicaCountResult', ], 'errors' => [ [ 'shape' => 'ReplicationGroupNotFoundFault', ], [ 'shape' => 'InvalidReplicationGroupStateFault', ], [ 'shape' => 'InvalidCacheClusterStateFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InsufficientCacheClusterCapacityFault', ], [ 'shape' => 'ClusterQuotaForCustomerExceededFault', ], [ 'shape' => 'NodeGroupsPerReplicationGroupQuotaExceededFault', ], [ 'shape' => 'NodeQuotaForCustomerExceededFault', ], [ 'shape' => 'ServiceLinkedRoleNotFoundFault', ], [ 'shape' => 'NoOperationFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DeleteCacheCluster' => [ 'name' => 'DeleteCacheCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCacheClusterMessage', ], 'output' => [ 'shape' => 'DeleteCacheClusterResult', 'resultWrapper' => 'DeleteCacheClusterResult', ], 'errors' => [ [ 'shape' => 'CacheClusterNotFoundFault', ], [ 'shape' => 'InvalidCacheClusterStateFault', ], [ 'shape' => 'SnapshotAlreadyExistsFault', ], [ 'shape' => 'SnapshotFeatureNotSupportedFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DeleteCacheParameterGroup' => [ 'name' => 'DeleteCacheParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCacheParameterGroupMessage', ], 'errors' => [ [ 'shape' => 'InvalidCacheParameterGroupStateFault', ], [ 'shape' => 'CacheParameterGroupNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DeleteCacheSecurityGroup' => [ 'name' => 'DeleteCacheSecurityGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCacheSecurityGroupMessage', ], 'errors' => [ [ 'shape' => 'InvalidCacheSecurityGroupStateFault', ], [ 'shape' => 'CacheSecurityGroupNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DeleteCacheSubnetGroup' => [ 'name' => 'DeleteCacheSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCacheSubnetGroupMessage', ], 'errors' => [ [ 'shape' => 'CacheSubnetGroupInUse', ], [ 'shape' => 'CacheSubnetGroupNotFoundFault', ], ], ], 'DeleteReplicationGroup' => [ 'name' => 'DeleteReplicationGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteReplicationGroupMessage', ], 'output' => [ 'shape' => 'DeleteReplicationGroupResult', 'resultWrapper' => 'DeleteReplicationGroupResult', ], 'errors' => [ [ 'shape' => 'ReplicationGroupNotFoundFault', ], [ 'shape' => 'InvalidReplicationGroupStateFault', ], [ 'shape' => 'SnapshotAlreadyExistsFault', ], [ 'shape' => 'SnapshotFeatureNotSupportedFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DeleteSnapshot' => [ 'name' => 'DeleteSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSnapshotMessage', ], 'output' => [ 'shape' => 'DeleteSnapshotResult', 'resultWrapper' => 'DeleteSnapshotResult', ], 'errors' => [ [ 'shape' => 'SnapshotNotFoundFault', ], [ 'shape' => 'InvalidSnapshotStateFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DescribeCacheClusters' => [ 'name' => 'DescribeCacheClusters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCacheClustersMessage', ], 'output' => [ 'shape' => 'CacheClusterMessage', 'resultWrapper' => 'DescribeCacheClustersResult', ], 'errors' => [ [ 'shape' => 'CacheClusterNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], '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', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DescribeCacheParameters' => [ 'name' => 'DescribeCacheParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCacheParametersMessage', ], 'output' => [ 'shape' => 'CacheParameterGroupDetails', 'resultWrapper' => 'DescribeCacheParametersResult', ], 'errors' => [ [ 'shape' => 'CacheParameterGroupNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DescribeCacheSecurityGroups' => [ 'name' => 'DescribeCacheSecurityGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCacheSecurityGroupsMessage', ], 'output' => [ 'shape' => 'CacheSecurityGroupMessage', 'resultWrapper' => 'DescribeCacheSecurityGroupsResult', ], 'errors' => [ [ 'shape' => 'CacheSecurityGroupNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DescribeCacheSubnetGroups' => [ 'name' => 'DescribeCacheSubnetGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCacheSubnetGroupsMessage', ], 'output' => [ 'shape' => 'CacheSubnetGroupMessage', 'resultWrapper' => 'DescribeCacheSubnetGroupsResult', ], 'errors' => [ [ 'shape' => 'CacheSubnetGroupNotFoundFault', ], ], ], 'DescribeEngineDefaultParameters' => [ 'name' => 'DescribeEngineDefaultParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEngineDefaultParametersMessage', ], 'output' => [ 'shape' => 'DescribeEngineDefaultParametersResult', 'resultWrapper' => 'DescribeEngineDefaultParametersResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DescribeEvents' => [ 'name' => 'DescribeEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEventsMessage', ], 'output' => [ 'shape' => 'EventsMessage', 'resultWrapper' => 'DescribeEventsResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DescribeReplicationGroups' => [ 'name' => 'DescribeReplicationGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReplicationGroupsMessage', ], 'output' => [ 'shape' => 'ReplicationGroupMessage', 'resultWrapper' => 'DescribeReplicationGroupsResult', ], 'errors' => [ [ 'shape' => 'ReplicationGroupNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DescribeReservedCacheNodes' => [ 'name' => 'DescribeReservedCacheNodes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReservedCacheNodesMessage', ], 'output' => [ 'shape' => 'ReservedCacheNodeMessage', 'resultWrapper' => 'DescribeReservedCacheNodesResult', ], 'errors' => [ [ 'shape' => 'ReservedCacheNodeNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DescribeReservedCacheNodesOfferings' => [ 'name' => 'DescribeReservedCacheNodesOfferings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReservedCacheNodesOfferingsMessage', ], 'output' => [ 'shape' => 'ReservedCacheNodesOfferingMessage', 'resultWrapper' => 'DescribeReservedCacheNodesOfferingsResult', ], 'errors' => [ [ 'shape' => 'ReservedCacheNodesOfferingNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'DescribeSnapshots' => [ 'name' => 'DescribeSnapshots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSnapshotsMessage', ], 'output' => [ 'shape' => 'DescribeSnapshotsListMessage', 'resultWrapper' => 'DescribeSnapshotsResult', ], 'errors' => [ [ 'shape' => 'CacheClusterNotFoundFault', ], [ 'shape' => 'SnapshotNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'IncreaseReplicaCount' => [ 'name' => 'IncreaseReplicaCount', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'IncreaseReplicaCountMessage', ], 'output' => [ 'shape' => 'IncreaseReplicaCountResult', 'resultWrapper' => 'IncreaseReplicaCountResult', ], 'errors' => [ [ 'shape' => 'ReplicationGroupNotFoundFault', ], [ 'shape' => 'InvalidReplicationGroupStateFault', ], [ 'shape' => 'InvalidCacheClusterStateFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InsufficientCacheClusterCapacityFault', ], [ 'shape' => 'ClusterQuotaForCustomerExceededFault', ], [ 'shape' => 'NodeGroupsPerReplicationGroupQuotaExceededFault', ], [ 'shape' => 'NodeQuotaForCustomerExceededFault', ], [ 'shape' => 'NoOperationFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'ListAllowedNodeTypeModifications' => [ 'name' => 'ListAllowedNodeTypeModifications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAllowedNodeTypeModificationsMessage', ], 'output' => [ 'shape' => 'AllowedNodeTypeModificationsMessage', 'resultWrapper' => 'ListAllowedNodeTypeModificationsResult', ], 'errors' => [ [ 'shape' => 'CacheClusterNotFoundFault', ], [ 'shape' => 'ReplicationGroupNotFoundFault', ], [ 'shape' => 'InvalidParameterCombinationException', ], [ 'shape' => 'InvalidParameterValueException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceMessage', ], 'output' => [ 'shape' => 'TagListMessage', 'resultWrapper' => 'ListTagsForResourceResult', ], 'errors' => [ [ 'shape' => 'CacheClusterNotFoundFault', ], [ 'shape' => 'SnapshotNotFoundFault', ], [ 'shape' => 'InvalidARNFault', ], ], ], 'ModifyCacheCluster' => [ 'name' => 'ModifyCacheCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyCacheClusterMessage', ], 'output' => [ 'shape' => 'ModifyCacheClusterResult', 'resultWrapper' => 'ModifyCacheClusterResult', ], 'errors' => [ [ 'shape' => 'InvalidCacheClusterStateFault', ], [ 'shape' => 'InvalidCacheSecurityGroupStateFault', ], [ 'shape' => 'InsufficientCacheClusterCapacityFault', ], [ 'shape' => 'CacheClusterNotFoundFault', ], [ 'shape' => 'NodeQuotaForClusterExceededFault', ], [ 'shape' => 'NodeQuotaForCustomerExceededFault', ], [ 'shape' => 'CacheSecurityGroupNotFoundFault', ], [ 'shape' => 'CacheParameterGroupNotFoundFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'ModifyCacheParameterGroup' => [ 'name' => 'ModifyCacheParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyCacheParameterGroupMessage', ], 'output' => [ 'shape' => 'CacheParameterGroupNameMessage', 'resultWrapper' => 'ModifyCacheParameterGroupResult', ], 'errors' => [ [ 'shape' => 'CacheParameterGroupNotFoundFault', ], [ 'shape' => 'InvalidCacheParameterGroupStateFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'ModifyCacheSubnetGroup' => [ 'name' => 'ModifyCacheSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyCacheSubnetGroupMessage', ], 'output' => [ 'shape' => 'ModifyCacheSubnetGroupResult', 'resultWrapper' => 'ModifyCacheSubnetGroupResult', ], 'errors' => [ [ 'shape' => 'CacheSubnetGroupNotFoundFault', ], [ 'shape' => 'CacheSubnetQuotaExceededFault', ], [ 'shape' => 'SubnetInUse', ], [ 'shape' => 'InvalidSubnet', ], ], ], 'ModifyReplicationGroup' => [ 'name' => 'ModifyReplicationGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyReplicationGroupMessage', ], 'output' => [ 'shape' => 'ModifyReplicationGroupResult', 'resultWrapper' => 'ModifyReplicationGroupResult', ], 'errors' => [ [ 'shape' => 'ReplicationGroupNotFoundFault', ], [ 'shape' => 'InvalidReplicationGroupStateFault', ], [ 'shape' => 'InvalidCacheClusterStateFault', ], [ 'shape' => 'InvalidCacheSecurityGroupStateFault', ], [ 'shape' => 'InsufficientCacheClusterCapacityFault', ], [ 'shape' => 'CacheClusterNotFoundFault', ], [ 'shape' => 'NodeQuotaForClusterExceededFault', ], [ 'shape' => 'NodeQuotaForCustomerExceededFault', ], [ 'shape' => 'CacheSecurityGroupNotFoundFault', ], [ 'shape' => 'CacheParameterGroupNotFoundFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'ModifyReplicationGroupShardConfiguration' => [ 'name' => 'ModifyReplicationGroupShardConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyReplicationGroupShardConfigurationMessage', ], 'output' => [ 'shape' => 'ModifyReplicationGroupShardConfigurationResult', 'resultWrapper' => 'ModifyReplicationGroupShardConfigurationResult', ], 'errors' => [ [ 'shape' => 'ReplicationGroupNotFoundFault', ], [ 'shape' => 'InvalidReplicationGroupStateFault', ], [ 'shape' => 'InvalidCacheClusterStateFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InsufficientCacheClusterCapacityFault', ], [ 'shape' => 'NodeGroupsPerReplicationGroupQuotaExceededFault', ], [ 'shape' => 'NodeQuotaForCustomerExceededFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'PurchaseReservedCacheNodesOffering' => [ 'name' => 'PurchaseReservedCacheNodesOffering', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseReservedCacheNodesOfferingMessage', ], 'output' => [ 'shape' => 'PurchaseReservedCacheNodesOfferingResult', 'resultWrapper' => 'PurchaseReservedCacheNodesOfferingResult', ], 'errors' => [ [ 'shape' => 'ReservedCacheNodesOfferingNotFoundFault', ], [ 'shape' => 'ReservedCacheNodeAlreadyExistsFault', ], [ 'shape' => 'ReservedCacheNodeQuotaExceededFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'RebootCacheCluster' => [ 'name' => 'RebootCacheCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RebootCacheClusterMessage', ], 'output' => [ 'shape' => 'RebootCacheClusterResult', 'resultWrapper' => 'RebootCacheClusterResult', ], 'errors' => [ [ 'shape' => 'InvalidCacheClusterStateFault', ], [ 'shape' => 'CacheClusterNotFoundFault', ], ], ], 'RemoveTagsFromResource' => [ 'name' => 'RemoveTagsFromResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveTagsFromResourceMessage', ], 'output' => [ 'shape' => 'TagListMessage', 'resultWrapper' => 'RemoveTagsFromResourceResult', ], 'errors' => [ [ 'shape' => 'CacheClusterNotFoundFault', ], [ 'shape' => 'SnapshotNotFoundFault', ], [ 'shape' => 'InvalidARNFault', ], [ 'shape' => 'TagNotFoundFault', ], ], ], 'ResetCacheParameterGroup' => [ 'name' => 'ResetCacheParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetCacheParameterGroupMessage', ], 'output' => [ 'shape' => 'CacheParameterGroupNameMessage', 'resultWrapper' => 'ResetCacheParameterGroupResult', ], 'errors' => [ [ 'shape' => 'InvalidCacheParameterGroupStateFault', ], [ 'shape' => 'CacheParameterGroupNotFoundFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'RevokeCacheSecurityGroupIngress' => [ 'name' => 'RevokeCacheSecurityGroupIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RevokeCacheSecurityGroupIngressMessage', ], 'output' => [ 'shape' => 'RevokeCacheSecurityGroupIngressResult', 'resultWrapper' => 'RevokeCacheSecurityGroupIngressResult', ], 'errors' => [ [ 'shape' => 'CacheSecurityGroupNotFoundFault', ], [ 'shape' => 'AuthorizationNotFoundFault', ], [ 'shape' => 'InvalidCacheSecurityGroupStateFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], 'TestFailover' => [ 'name' => 'TestFailover', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TestFailoverMessage', ], 'output' => [ 'shape' => 'TestFailoverResult', 'resultWrapper' => 'TestFailoverResult', ], 'errors' => [ [ 'shape' => 'APICallRateForCustomerExceededFault', ], [ 'shape' => 'InvalidCacheClusterStateFault', ], [ 'shape' => 'InvalidReplicationGroupStateFault', ], [ 'shape' => 'NodeGroupNotFoundFault', ], [ 'shape' => 'ReplicationGroupNotFoundFault', ], [ 'shape' => 'TestFailoverNotAvailableFault', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidParameterCombinationException', ], ], ], ], 'shapes' => [ 'APICallRateForCustomerExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'APICallRateForCustomerExceeded', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'AZMode' => [ 'type' => 'string', 'enum' => [ 'single-az', 'cross-az', ], ], 'AddTagsToResourceMessage' => [ 'type' => 'structure', 'required' => [ 'ResourceName', 'Tags', ], 'members' => [ 'ResourceName' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'AllowedNodeGroupId' => [ 'type' => 'string', 'max' => 4, 'min' => 1, 'pattern' => '\\d+', ], 'AllowedNodeTypeModificationsMessage' => [ 'type' => 'structure', 'members' => [ 'ScaleUpModifications' => [ 'shape' => 'NodeTypeList', ], ], ], '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', ], ], ], 'AuthorizeCacheSecurityGroupIngressResult' => [ 'type' => 'structure', 'members' => [ 'CacheSecurityGroup' => [ 'shape' => 'CacheSecurityGroup', ], ], ], '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', ], 'AuthTokenEnabled' => [ 'shape' => 'BooleanOptional', ], 'TransitEncryptionEnabled' => [ 'shape' => 'BooleanOptional', ], 'AtRestEncryptionEnabled' => [ 'shape' => 'BooleanOptional', ], ], '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', ], 'ChangeType' => [ 'shape' => 'ChangeType', ], ], ], '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, ], 'ChangeType' => [ 'type' => 'string', 'enum' => [ 'immediate', 'requires-reboot', ], ], 'ClusterIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ClusterId', ], ], 'ClusterQuotaForCustomerExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'ClusterQuotaForCustomerExceeded', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ConfigureShard' => [ 'type' => 'structure', 'required' => [ 'NodeGroupId', 'NewReplicaCount', ], 'members' => [ 'NodeGroupId' => [ 'shape' => 'AllowedNodeGroupId', ], 'NewReplicaCount' => [ 'shape' => 'Integer', ], 'PreferredAvailabilityZones' => [ 'shape' => 'PreferredAvailabilityZoneList', ], ], ], 'CopySnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'SourceSnapshotName', 'TargetSnapshotName', ], 'members' => [ 'SourceSnapshotName' => [ 'shape' => 'String', ], 'TargetSnapshotName' => [ 'shape' => 'String', ], 'TargetBucket' => [ 'shape' => 'String', ], ], ], 'CopySnapshotResult' => [ 'type' => 'structure', 'members' => [ 'Snapshot' => [ 'shape' => 'Snapshot', ], ], ], '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', ], 'AuthToken' => [ 'shape' => 'String', ], ], ], 'CreateCacheClusterResult' => [ 'type' => 'structure', 'members' => [ 'CacheCluster' => [ 'shape' => 'CacheCluster', ], ], ], 'CreateCacheParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'CacheParameterGroupName', 'CacheParameterGroupFamily', 'Description', ], 'members' => [ 'CacheParameterGroupName' => [ 'shape' => 'String', ], 'CacheParameterGroupFamily' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], ], ], 'CreateCacheParameterGroupResult' => [ 'type' => 'structure', 'members' => [ 'CacheParameterGroup' => [ 'shape' => 'CacheParameterGroup', ], ], ], 'CreateCacheSecurityGroupMessage' => [ 'type' => 'structure', 'required' => [ 'CacheSecurityGroupName', 'Description', ], 'members' => [ 'CacheSecurityGroupName' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], ], ], 'CreateCacheSecurityGroupResult' => [ 'type' => 'structure', 'members' => [ 'CacheSecurityGroup' => [ 'shape' => 'CacheSecurityGroup', ], ], ], 'CreateCacheSubnetGroupMessage' => [ 'type' => 'structure', 'required' => [ 'CacheSubnetGroupName', 'CacheSubnetGroupDescription', 'SubnetIds', ], 'members' => [ 'CacheSubnetGroupName' => [ 'shape' => 'String', ], 'CacheSubnetGroupDescription' => [ 'shape' => 'String', ], 'SubnetIds' => [ 'shape' => 'SubnetIdentifierList', ], ], ], 'CreateCacheSubnetGroupResult' => [ 'type' => 'structure', 'members' => [ 'CacheSubnetGroup' => [ 'shape' => 'CacheSubnetGroup', ], ], ], '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', ], 'NumNodeGroups' => [ 'shape' => 'IntegerOptional', ], 'ReplicasPerNodeGroup' => [ 'shape' => 'IntegerOptional', ], 'NodeGroupConfiguration' => [ 'shape' => 'NodeGroupConfigurationList', ], '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', ], 'AuthToken' => [ 'shape' => 'String', ], 'TransitEncryptionEnabled' => [ 'shape' => 'BooleanOptional', ], 'AtRestEncryptionEnabled' => [ 'shape' => 'BooleanOptional', ], ], ], 'CreateReplicationGroupResult' => [ 'type' => 'structure', 'members' => [ 'ReplicationGroup' => [ 'shape' => 'ReplicationGroup', ], ], ], 'CreateSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'SnapshotName', ], 'members' => [ 'ReplicationGroupId' => [ 'shape' => 'String', ], 'CacheClusterId' => [ 'shape' => 'String', ], 'SnapshotName' => [ 'shape' => 'String', ], ], ], 'CreateSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'Snapshot' => [ 'shape' => 'Snapshot', ], ], ], 'DecreaseReplicaCountMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationGroupId', 'ApplyImmediately', ], 'members' => [ 'ReplicationGroupId' => [ 'shape' => 'String', ], 'NewReplicaCount' => [ 'shape' => 'IntegerOptional', ], 'ReplicaConfiguration' => [ 'shape' => 'ReplicaConfigurationList', ], 'ReplicasToRemove' => [ 'shape' => 'RemoveReplicasList', ], 'ApplyImmediately' => [ 'shape' => 'Boolean', ], ], ], 'DecreaseReplicaCountResult' => [ 'type' => 'structure', 'members' => [ 'ReplicationGroup' => [ 'shape' => 'ReplicationGroup', ], ], ], 'DeleteCacheClusterMessage' => [ 'type' => 'structure', 'required' => [ 'CacheClusterId', ], 'members' => [ 'CacheClusterId' => [ 'shape' => 'String', ], 'FinalSnapshotIdentifier' => [ 'shape' => 'String', ], ], ], 'DeleteCacheClusterResult' => [ 'type' => 'structure', 'members' => [ 'CacheCluster' => [ 'shape' => 'CacheCluster', ], ], ], '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', ], ], ], 'DeleteReplicationGroupResult' => [ 'type' => 'structure', 'members' => [ 'ReplicationGroup' => [ 'shape' => 'ReplicationGroup', ], ], ], 'DeleteSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'SnapshotName', ], 'members' => [ 'SnapshotName' => [ 'shape' => 'String', ], ], ], 'DeleteSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'Snapshot' => [ 'shape' => 'Snapshot', ], ], ], 'DescribeCacheClustersMessage' => [ 'type' => 'structure', 'members' => [ 'CacheClusterId' => [ 'shape' => 'String', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], 'ShowCacheNodeInfo' => [ 'shape' => 'BooleanOptional', ], 'ShowCacheClustersNotInReplicationGroups' => [ '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', ], ], ], 'DescribeEngineDefaultParametersResult' => [ 'type' => 'structure', 'members' => [ 'EngineDefaults' => [ 'shape' => 'EngineDefaults', ], ], ], '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' => [ 'ReplicationGroupId' => [ 'shape' => 'String', ], 'CacheClusterId' => [ 'shape' => 'String', ], 'SnapshotName' => [ 'shape' => 'String', ], 'SnapshotSource' => [ 'shape' => 'String', ], 'Marker' => [ 'shape' => 'String', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'ShowNodeGroupConfig' => [ 'shape' => 'BooleanOptional', ], ], ], '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', ], ], ], 'IncreaseReplicaCountMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationGroupId', 'ApplyImmediately', ], 'members' => [ 'ReplicationGroupId' => [ 'shape' => 'String', ], 'NewReplicaCount' => [ 'shape' => 'IntegerOptional', ], 'ReplicaConfiguration' => [ 'shape' => 'ReplicaConfigurationList', ], 'ApplyImmediately' => [ 'shape' => 'Boolean', ], ], ], 'IncreaseReplicaCountResult' => [ 'type' => 'structure', 'members' => [ 'ReplicationGroup' => [ 'shape' => 'ReplicationGroup', ], ], ], '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, 'synthetic' => true, ], 'InvalidParameterValueException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'AwsQueryErrorMessage', ], ], 'error' => [ 'code' => 'InvalidParameterValue', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, 'synthetic' => 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', ], ], 'ListAllowedNodeTypeModificationsMessage' => [ 'type' => 'structure', 'members' => [ 'CacheClusterId' => [ 'shape' => 'String', ], 'ReplicationGroupId' => [ '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', ], 'CacheNodeType' => [ 'shape' => 'String', ], ], ], 'ModifyCacheClusterResult' => [ 'type' => 'structure', 'members' => [ 'CacheCluster' => [ 'shape' => 'CacheCluster', ], ], ], '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', ], ], ], 'ModifyCacheSubnetGroupResult' => [ 'type' => 'structure', 'members' => [ 'CacheSubnetGroup' => [ 'shape' => 'CacheSubnetGroup', ], ], ], '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', ], 'CacheNodeType' => [ 'shape' => 'String', ], 'NodeGroupId' => [ 'shape' => 'String', 'deprecated' => true, ], ], ], 'ModifyReplicationGroupResult' => [ 'type' => 'structure', 'members' => [ 'ReplicationGroup' => [ 'shape' => 'ReplicationGroup', ], ], ], 'ModifyReplicationGroupShardConfigurationMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationGroupId', 'NodeGroupCount', 'ApplyImmediately', ], 'members' => [ 'ReplicationGroupId' => [ 'shape' => 'String', ], 'NodeGroupCount' => [ 'shape' => 'Integer', ], 'ApplyImmediately' => [ 'shape' => 'Boolean', ], 'ReshardingConfiguration' => [ 'shape' => 'ReshardingConfigurationList', ], 'NodeGroupsToRemove' => [ 'shape' => 'NodeGroupsToRemoveList', ], 'NodeGroupsToRetain' => [ 'shape' => 'NodeGroupsToRetainList', ], ], ], 'ModifyReplicationGroupShardConfigurationResult' => [ 'type' => 'structure', 'members' => [ 'ReplicationGroup' => [ 'shape' => 'ReplicationGroup', ], ], ], 'NoOperationFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'NoOperationFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'NodeGroup' => [ 'type' => 'structure', 'members' => [ 'NodeGroupId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], 'PrimaryEndpoint' => [ 'shape' => 'Endpoint', ], 'Slots' => [ 'shape' => 'String', ], 'NodeGroupMembers' => [ 'shape' => 'NodeGroupMemberList', ], ], ], 'NodeGroupConfiguration' => [ 'type' => 'structure', 'members' => [ 'NodeGroupId' => [ 'shape' => 'AllowedNodeGroupId', ], 'Slots' => [ 'shape' => 'String', ], 'ReplicaCount' => [ 'shape' => 'IntegerOptional', ], 'PrimaryAvailabilityZone' => [ 'shape' => 'String', ], 'ReplicaAvailabilityZones' => [ 'shape' => 'AvailabilityZonesList', ], ], ], 'NodeGroupConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NodeGroupConfiguration', 'locationName' => 'NodeGroupConfiguration', ], ], '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', ], ], 'NodeGroupNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'NodeGroupNotFoundFault', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'NodeGroupsPerReplicationGroupQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'NodeGroupsPerReplicationGroupQuotaExceeded', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'NodeGroupsToRemoveList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedNodeGroupId', 'locationName' => 'NodeGroupToRemove', ], ], 'NodeGroupsToRetainList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedNodeGroupId', 'locationName' => 'NodeGroupToRetain', ], ], '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' => [ 'CacheClusterId' => [ 'shape' => 'String', ], 'NodeGroupId' => [ 'shape' => 'String', ], 'CacheNodeId' => [ 'shape' => 'String', ], 'NodeGroupConfiguration' => [ 'shape' => 'NodeGroupConfiguration', ], 'CacheSize' => [ 'shape' => 'String', ], 'CacheNodeCreateTime' => [ 'shape' => 'TStamp', ], 'SnapshotCreateTime' => [ 'shape' => 'TStamp', ], ], 'wrapper' => true, ], 'NodeSnapshotList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NodeSnapshot', 'locationName' => 'NodeSnapshot', ], ], 'NodeTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], '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', ], 'ChangeType' => [ 'shape' => 'ChangeType', ], ], ], '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', ], 'CacheNodeType' => [ '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', ], ], ], 'PurchaseReservedCacheNodesOfferingResult' => [ 'type' => 'structure', 'members' => [ 'ReservedCacheNode' => [ 'shape' => 'ReservedCacheNode', ], ], ], 'RebootCacheClusterMessage' => [ 'type' => 'structure', 'required' => [ 'CacheClusterId', 'CacheNodeIdsToReboot', ], 'members' => [ 'CacheClusterId' => [ 'shape' => 'String', ], 'CacheNodeIdsToReboot' => [ 'shape' => 'CacheNodeIdsList', ], ], ], 'RebootCacheClusterResult' => [ 'type' => 'structure', 'members' => [ 'CacheCluster' => [ 'shape' => 'CacheCluster', ], ], ], 'RecurringCharge' => [ 'type' => 'structure', 'members' => [ 'RecurringChargeAmount' => [ 'shape' => 'Double', ], 'RecurringChargeFrequency' => [ 'shape' => 'String', ], ], 'wrapper' => true, ], 'RecurringChargeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RecurringCharge', 'locationName' => 'RecurringCharge', ], ], 'RemoveReplicasList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'RemoveTagsFromResourceMessage' => [ 'type' => 'structure', 'required' => [ 'ResourceName', 'TagKeys', ], 'members' => [ 'ResourceName' => [ 'shape' => 'String', ], 'TagKeys' => [ 'shape' => 'KeyList', ], ], ], 'ReplicaConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigureShard', 'locationName' => 'ConfigureShard', ], ], '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', ], 'ConfigurationEndpoint' => [ 'shape' => 'Endpoint', ], 'SnapshotRetentionLimit' => [ 'shape' => 'IntegerOptional', ], 'SnapshotWindow' => [ 'shape' => 'String', ], 'ClusterEnabled' => [ 'shape' => 'BooleanOptional', ], 'CacheNodeType' => [ 'shape' => 'String', ], 'AuthTokenEnabled' => [ 'shape' => 'BooleanOptional', ], 'TransitEncryptionEnabled' => [ 'shape' => 'BooleanOptional', ], 'AtRestEncryptionEnabled' => [ 'shape' => 'BooleanOptional', ], ], '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', ], 'Resharding' => [ 'shape' => 'ReshardingStatus', ], ], ], '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', ], 'ReservationARN' => [ 'shape' => 'String', ], ], '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', ], 'members' => [ 'CacheParameterGroupName' => [ 'shape' => 'String', ], 'ResetAllParameters' => [ 'shape' => 'Boolean', ], 'ParameterNameValues' => [ 'shape' => 'ParameterNameValueList', ], ], ], 'ReshardingConfiguration' => [ 'type' => 'structure', 'members' => [ 'NodeGroupId' => [ 'shape' => 'AllowedNodeGroupId', ], 'PreferredAvailabilityZones' => [ 'shape' => 'AvailabilityZonesList', ], ], ], 'ReshardingConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReshardingConfiguration', 'locationName' => 'ReshardingConfiguration', ], ], 'ReshardingStatus' => [ 'type' => 'structure', 'members' => [ 'SlotMigration' => [ 'shape' => 'SlotMigration', ], ], ], 'RevokeCacheSecurityGroupIngressMessage' => [ 'type' => 'structure', 'required' => [ 'CacheSecurityGroupName', 'EC2SecurityGroupName', 'EC2SecurityGroupOwnerId', ], 'members' => [ 'CacheSecurityGroupName' => [ 'shape' => 'String', ], 'EC2SecurityGroupName' => [ 'shape' => 'String', ], 'EC2SecurityGroupOwnerId' => [ 'shape' => 'String', ], ], ], 'RevokeCacheSecurityGroupIngressResult' => [ 'type' => 'structure', 'members' => [ 'CacheSecurityGroup' => [ 'shape' => 'CacheSecurityGroup', ], ], ], 'SecurityGroupIdsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'SecurityGroupId', ], ], 'SecurityGroupMembership' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], ], ], 'SecurityGroupMembershipList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupMembership', ], ], 'ServiceLinkedRoleNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'ServiceLinkedRoleNotFoundFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'SlotMigration' => [ 'type' => 'structure', 'members' => [ 'ProgressPercentage' => [ 'shape' => 'Double', ], ], ], 'Snapshot' => [ 'type' => 'structure', 'members' => [ 'SnapshotName' => [ 'shape' => 'String', ], 'ReplicationGroupId' => [ 'shape' => 'String', ], 'ReplicationGroupDescription' => [ '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', ], 'NumNodeGroups' => [ 'shape' => 'IntegerOptional', ], 'AutomaticFailover' => [ 'shape' => 'AutomaticFailoverStatus', ], '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', 'replication-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, ], 'TestFailoverMessage' => [ 'type' => 'structure', 'required' => [ 'ReplicationGroupId', 'NodeGroupId', ], 'members' => [ 'ReplicationGroupId' => [ 'shape' => 'String', ], 'NodeGroupId' => [ 'shape' => 'AllowedNodeGroupId', ], ], ], 'TestFailoverNotAvailableFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'TestFailoverNotAvailableFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'TestFailoverResult' => [ 'type' => 'structure', 'members' => [ 'ReplicationGroup' => [ 'shape' => 'ReplicationGroup', ], ], ], ],]; diff --git a/lib/aws/Aws/data/elasticache/2015-02-02/paginators-1.json.php b/lib/aws/Aws/data/elasticache/2015-02-02/paginators-1.json.php new file mode 100644 index 0000000..f0c52dd --- /dev/null +++ b/lib/aws/Aws/data/elasticache/2015-02-02/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticache/2015-02-02/paginators-1.json +return [ 'pagination' => [ 'DescribeCacheClusters' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'CacheClusters', ], 'DescribeCacheEngineVersions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'CacheEngineVersions', ], 'DescribeCacheParameterGroups' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'CacheParameterGroups', ], 'DescribeCacheParameters' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'Parameters', ], 'DescribeCacheSecurityGroups' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'CacheSecurityGroups', ], 'DescribeCacheSubnetGroups' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'CacheSubnetGroups', ], 'DescribeEngineDefaultParameters' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'EngineDefaults.Marker', 'result_key' => 'EngineDefaults.Parameters', ], 'DescribeEvents' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'Events', ], 'DescribeReplicationGroups' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'ReplicationGroups', ], 'DescribeReservedCacheNodes' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'ReservedCacheNodes', ], 'DescribeReservedCacheNodesOfferings' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'ReservedCacheNodesOfferings', ], 'DescribeSnapshots' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'Snapshots', ], ],]; diff --git a/lib/aws/Aws/data/elasticache/2015-02-02/smoke.json.php b/lib/aws/Aws/data/elasticache/2015-02-02/smoke.json.php new file mode 100644 index 0000000..bef8553 --- /dev/null +++ b/lib/aws/Aws/data/elasticache/2015-02-02/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticache/2015-02-02/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeEvents', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeCacheClusters', 'input' => [ 'CacheClusterId' => 'fake_cluster', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/elasticache/2015-02-02/waiters-2.json.php b/lib/aws/Aws/data/elasticache/2015-02-02/waiters-2.json.php new file mode 100644 index 0000000..71d09a7 --- /dev/null +++ b/lib/aws/Aws/data/elasticache/2015-02-02/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticache/2015-02-02/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'CacheClusterAvailable' => [ 'acceptors' => [ [ 'argument' => 'CacheClusters[].CacheClusterStatus', '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', ], ], 'delay' => 15, 'description' => 'Wait until ElastiCache cluster is available.', 'maxAttempts' => 40, 'operation' => 'DescribeCacheClusters', ], 'CacheClusterDeleted' => [ 'acceptors' => [ [ 'argument' => 'CacheClusters[].CacheClusterStatus', 'expected' => 'deleted', 'matcher' => 'pathAll', 'state' => 'success', ], [ 'expected' => 'CacheClusterNotFound', 'matcher' => 'error', 'state' => 'success', ], [ 'argument' => 'CacheClusters[].CacheClusterStatus', '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', ], ], 'delay' => 15, 'description' => 'Wait until ElastiCache cluster is deleted.', 'maxAttempts' => 40, 'operation' => 'DescribeCacheClusters', ], 'ReplicationGroupAvailable' => [ 'acceptors' => [ [ 'argument' => 'ReplicationGroups[].Status', 'expected' => 'available', 'matcher' => 'pathAll', 'state' => 'success', ], [ 'argument' => 'ReplicationGroups[].Status', 'expected' => 'deleted', 'matcher' => 'pathAny', 'state' => 'failure', ], ], 'delay' => 15, 'description' => 'Wait until ElastiCache replication group is available.', 'maxAttempts' => 40, 'operation' => 'DescribeReplicationGroups', ], 'ReplicationGroupDeleted' => [ 'acceptors' => [ [ 'argument' => 'ReplicationGroups[].Status', 'expected' => 'deleted', 'matcher' => 'pathAll', 'state' => 'success', ], [ 'argument' => 'ReplicationGroups[].Status', 'expected' => 'available', 'matcher' => 'pathAny', 'state' => 'failure', ], [ 'expected' => 'ReplicationGroupNotFoundFault', 'matcher' => 'error', 'state' => 'success', ], ], 'delay' => 15, 'description' => 'Wait until ElastiCache replication group is deleted.', 'maxAttempts' => 40, 'operation' => 'DescribeReplicationGroups', ], ],]; diff --git a/lib/aws/Aws/data/elasticbeanstalk/2010-12-01/api-2.json.php b/lib/aws/Aws/data/elasticbeanstalk/2010-12-01/api-2.json.php new file mode 100644 index 0000000..fd6fbe3 --- /dev/null +++ b/lib/aws/Aws/data/elasticbeanstalk/2010-12-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticbeanstalk/2010-12-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2010-12-01', 'endpointPrefix' => 'elasticbeanstalk', 'protocol' => 'query', 'serviceAbbreviation' => 'Elastic Beanstalk', 'serviceFullName' => 'AWS Elastic Beanstalk', 'serviceId' => 'Elastic Beanstalk', 'signatureVersion' => 'v4', 'uid' => 'elasticbeanstalk-2010-12-01', 'xmlNamespace' => 'http://elasticbeanstalk.amazonaws.com/docs/2010-12-01/', ], 'operations' => [ 'AbortEnvironmentUpdate' => [ 'name' => 'AbortEnvironmentUpdate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AbortEnvironmentUpdateMessage', ], 'errors' => [ [ 'shape' => 'InsufficientPrivilegesException', ], ], ], 'ApplyEnvironmentManagedAction' => [ 'name' => 'ApplyEnvironmentManagedAction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ApplyEnvironmentManagedActionRequest', ], 'output' => [ 'shape' => 'ApplyEnvironmentManagedActionResult', 'resultWrapper' => 'ApplyEnvironmentManagedActionResult', ], 'errors' => [ [ 'shape' => 'ElasticBeanstalkServiceException', ], [ 'shape' => 'ManagedActionInvalidStateException', ], ], ], 'CheckDNSAvailability' => [ 'name' => 'CheckDNSAvailability', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CheckDNSAvailabilityMessage', ], 'output' => [ 'shape' => 'CheckDNSAvailabilityResultMessage', 'resultWrapper' => 'CheckDNSAvailabilityResult', ], ], 'ComposeEnvironments' => [ 'name' => 'ComposeEnvironments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ComposeEnvironmentsMessage', ], 'output' => [ 'shape' => 'EnvironmentDescriptionsMessage', 'resultWrapper' => 'ComposeEnvironmentsResult', ], 'errors' => [ [ 'shape' => 'TooManyEnvironmentsException', ], [ 'shape' => 'InsufficientPrivilegesException', ], ], ], 'CreateApplication' => [ 'name' => 'CreateApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateApplicationMessage', ], 'output' => [ 'shape' => 'ApplicationDescriptionMessage', 'resultWrapper' => 'CreateApplicationResult', ], 'errors' => [ [ 'shape' => 'TooManyApplicationsException', ], ], ], 'CreateApplicationVersion' => [ 'name' => 'CreateApplicationVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateApplicationVersionMessage', ], 'output' => [ 'shape' => 'ApplicationVersionDescriptionMessage', 'resultWrapper' => 'CreateApplicationVersionResult', ], 'errors' => [ [ 'shape' => 'TooManyApplicationsException', ], [ 'shape' => 'TooManyApplicationVersionsException', ], [ 'shape' => 'InsufficientPrivilegesException', ], [ 'shape' => 'S3LocationNotInServiceRegionException', ], [ 'shape' => 'CodeBuildNotInServiceRegionException', ], ], ], 'CreateConfigurationTemplate' => [ 'name' => 'CreateConfigurationTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateConfigurationTemplateMessage', ], 'output' => [ 'shape' => 'ConfigurationSettingsDescription', 'resultWrapper' => 'CreateConfigurationTemplateResult', ], 'errors' => [ [ 'shape' => 'InsufficientPrivilegesException', ], [ 'shape' => 'TooManyBucketsException', ], [ 'shape' => 'TooManyConfigurationTemplatesException', ], ], ], 'CreateEnvironment' => [ 'name' => 'CreateEnvironment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateEnvironmentMessage', ], 'output' => [ 'shape' => 'EnvironmentDescription', 'resultWrapper' => 'CreateEnvironmentResult', ], 'errors' => [ [ 'shape' => 'TooManyEnvironmentsException', ], [ 'shape' => 'InsufficientPrivilegesException', ], ], ], 'CreatePlatformVersion' => [ 'name' => 'CreatePlatformVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePlatformVersionRequest', ], 'output' => [ 'shape' => 'CreatePlatformVersionResult', 'resultWrapper' => 'CreatePlatformVersionResult', ], 'errors' => [ [ 'shape' => 'InsufficientPrivilegesException', ], [ 'shape' => 'ElasticBeanstalkServiceException', ], [ 'shape' => 'TooManyPlatformsException', ], ], ], 'CreateStorageLocation' => [ 'name' => 'CreateStorageLocation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'CreateStorageLocationResultMessage', 'resultWrapper' => 'CreateStorageLocationResult', ], 'errors' => [ [ 'shape' => 'TooManyBucketsException', ], [ 'shape' => 'S3SubscriptionRequiredException', ], [ 'shape' => 'InsufficientPrivilegesException', ], ], ], 'DeleteApplication' => [ 'name' => 'DeleteApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteApplicationMessage', ], 'errors' => [ [ 'shape' => 'OperationInProgressException', ], ], ], 'DeleteApplicationVersion' => [ 'name' => 'DeleteApplicationVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteApplicationVersionMessage', ], 'errors' => [ [ 'shape' => 'SourceBundleDeletionException', ], [ 'shape' => 'InsufficientPrivilegesException', ], [ 'shape' => 'OperationInProgressException', ], [ 'shape' => 'S3LocationNotInServiceRegionException', ], ], ], 'DeleteConfigurationTemplate' => [ 'name' => 'DeleteConfigurationTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteConfigurationTemplateMessage', ], 'errors' => [ [ 'shape' => 'OperationInProgressException', ], ], ], 'DeleteEnvironmentConfiguration' => [ 'name' => 'DeleteEnvironmentConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteEnvironmentConfigurationMessage', ], ], 'DeletePlatformVersion' => [ 'name' => 'DeletePlatformVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePlatformVersionRequest', ], 'output' => [ 'shape' => 'DeletePlatformVersionResult', 'resultWrapper' => 'DeletePlatformVersionResult', ], 'errors' => [ [ 'shape' => 'OperationInProgressException', ], [ 'shape' => 'InsufficientPrivilegesException', ], [ 'shape' => 'ElasticBeanstalkServiceException', ], [ 'shape' => 'PlatformVersionStillReferencedException', ], ], ], 'DescribeAccountAttributes' => [ 'name' => 'DescribeAccountAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'DescribeAccountAttributesResult', 'resultWrapper' => 'DescribeAccountAttributesResult', ], 'errors' => [ [ 'shape' => 'InsufficientPrivilegesException', ], ], ], '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', ], 'errors' => [ [ 'shape' => 'TooManyBucketsException', ], ], ], 'DescribeConfigurationSettings' => [ 'name' => 'DescribeConfigurationSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeConfigurationSettingsMessage', ], 'output' => [ 'shape' => 'ConfigurationSettingsDescriptions', 'resultWrapper' => 'DescribeConfigurationSettingsResult', ], 'errors' => [ [ 'shape' => 'TooManyBucketsException', ], ], ], 'DescribeEnvironmentHealth' => [ 'name' => 'DescribeEnvironmentHealth', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEnvironmentHealthRequest', ], 'output' => [ 'shape' => 'DescribeEnvironmentHealthResult', 'resultWrapper' => 'DescribeEnvironmentHealthResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ElasticBeanstalkServiceException', ], ], ], 'DescribeEnvironmentManagedActionHistory' => [ 'name' => 'DescribeEnvironmentManagedActionHistory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEnvironmentManagedActionHistoryRequest', ], 'output' => [ 'shape' => 'DescribeEnvironmentManagedActionHistoryResult', 'resultWrapper' => 'DescribeEnvironmentManagedActionHistoryResult', ], 'errors' => [ [ 'shape' => 'ElasticBeanstalkServiceException', ], ], ], 'DescribeEnvironmentManagedActions' => [ 'name' => 'DescribeEnvironmentManagedActions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEnvironmentManagedActionsRequest', ], 'output' => [ 'shape' => 'DescribeEnvironmentManagedActionsResult', 'resultWrapper' => 'DescribeEnvironmentManagedActionsResult', ], 'errors' => [ [ 'shape' => 'ElasticBeanstalkServiceException', ], ], ], 'DescribeEnvironmentResources' => [ 'name' => 'DescribeEnvironmentResources', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEnvironmentResourcesMessage', ], 'output' => [ 'shape' => 'EnvironmentResourceDescriptionsMessage', 'resultWrapper' => 'DescribeEnvironmentResourcesResult', ], 'errors' => [ [ 'shape' => 'InsufficientPrivilegesException', ], ], ], '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', ], ], 'DescribeInstancesHealth' => [ 'name' => 'DescribeInstancesHealth', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstancesHealthRequest', ], 'output' => [ 'shape' => 'DescribeInstancesHealthResult', 'resultWrapper' => 'DescribeInstancesHealthResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ElasticBeanstalkServiceException', ], ], ], 'DescribePlatformVersion' => [ 'name' => 'DescribePlatformVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePlatformVersionRequest', ], 'output' => [ 'shape' => 'DescribePlatformVersionResult', 'resultWrapper' => 'DescribePlatformVersionResult', ], 'errors' => [ [ 'shape' => 'InsufficientPrivilegesException', ], [ 'shape' => 'ElasticBeanstalkServiceException', ], ], ], 'ListAvailableSolutionStacks' => [ 'name' => 'ListAvailableSolutionStacks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'ListAvailableSolutionStacksResultMessage', 'resultWrapper' => 'ListAvailableSolutionStacksResult', ], ], 'ListPlatformVersions' => [ 'name' => 'ListPlatformVersions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListPlatformVersionsRequest', ], 'output' => [ 'shape' => 'ListPlatformVersionsResult', 'resultWrapper' => 'ListPlatformVersionsResult', ], 'errors' => [ [ 'shape' => 'InsufficientPrivilegesException', ], [ 'shape' => 'ElasticBeanstalkServiceException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceMessage', ], 'output' => [ 'shape' => 'ResourceTagsDescriptionMessage', 'resultWrapper' => 'ListTagsForResourceResult', ], 'errors' => [ [ 'shape' => 'InsufficientPrivilegesException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceTypeNotSupportedException', ], ], ], 'RebuildEnvironment' => [ 'name' => 'RebuildEnvironment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RebuildEnvironmentMessage', ], 'errors' => [ [ 'shape' => 'InsufficientPrivilegesException', ], ], ], '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', ], ], ], 'UpdateApplication' => [ 'name' => 'UpdateApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateApplicationMessage', ], 'output' => [ 'shape' => 'ApplicationDescriptionMessage', 'resultWrapper' => 'UpdateApplicationResult', ], ], 'UpdateApplicationResourceLifecycle' => [ 'name' => 'UpdateApplicationResourceLifecycle', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateApplicationResourceLifecycleMessage', ], 'output' => [ 'shape' => 'ApplicationResourceLifecycleDescriptionMessage', 'resultWrapper' => 'UpdateApplicationResourceLifecycleResult', ], 'errors' => [ [ 'shape' => 'InsufficientPrivilegesException', ], ], ], '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', ], [ 'shape' => 'TooManyBucketsException', ], ], ], 'UpdateEnvironment' => [ 'name' => 'UpdateEnvironment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateEnvironmentMessage', ], 'output' => [ 'shape' => 'EnvironmentDescription', 'resultWrapper' => 'UpdateEnvironmentResult', ], 'errors' => [ [ 'shape' => 'InsufficientPrivilegesException', ], [ 'shape' => 'TooManyBucketsException', ], ], ], 'UpdateTagsForResource' => [ 'name' => 'UpdateTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateTagsForResourceMessage', ], 'errors' => [ [ 'shape' => 'InsufficientPrivilegesException', ], [ 'shape' => 'OperationInProgressException', ], [ 'shape' => 'TooManyTagsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceTypeNotSupportedException', ], ], ], 'ValidateConfigurationSettings' => [ 'name' => 'ValidateConfigurationSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ValidateConfigurationSettingsMessage', ], 'output' => [ 'shape' => 'ConfigurationSettingsValidationMessages', 'resultWrapper' => 'ValidateConfigurationSettingsResult', ], 'errors' => [ [ 'shape' => 'InsufficientPrivilegesException', ], [ 'shape' => 'TooManyBucketsException', ], ], ], ], 'shapes' => [ 'ARN' => [ 'type' => 'string', ], 'AbortEnvironmentUpdateMessage' => [ 'type' => 'structure', 'members' => [ 'EnvironmentId' => [ 'shape' => 'EnvironmentId', ], 'EnvironmentName' => [ 'shape' => 'EnvironmentName', ], ], ], 'AbortableOperationInProgress' => [ 'type' => 'boolean', ], 'ActionHistoryStatus' => [ 'type' => 'string', 'enum' => [ 'Completed', 'Failed', 'Unknown', ], ], 'ActionStatus' => [ 'type' => 'string', 'enum' => [ 'Scheduled', 'Pending', 'Running', 'Unknown', ], ], 'ActionType' => [ 'type' => 'string', 'enum' => [ 'InstanceRefresh', 'PlatformUpdate', 'Unknown', ], ], 'ApplicationArn' => [ 'type' => 'string', ], 'ApplicationDescription' => [ 'type' => 'structure', 'members' => [ 'ApplicationArn' => [ 'shape' => 'ApplicationArn', ], 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'Description' => [ 'shape' => 'Description', ], 'DateCreated' => [ 'shape' => 'CreationDate', ], 'DateUpdated' => [ 'shape' => 'UpdateDate', ], 'Versions' => [ 'shape' => 'VersionLabelsList', ], 'ConfigurationTemplates' => [ 'shape' => 'ConfigurationTemplateNamesList', ], 'ResourceLifecycleConfig' => [ 'shape' => 'ApplicationResourceLifecycleConfig', ], ], ], 'ApplicationDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApplicationDescription', ], ], 'ApplicationDescriptionMessage' => [ 'type' => 'structure', 'members' => [ 'Application' => [ 'shape' => 'ApplicationDescription', ], ], ], 'ApplicationDescriptionsMessage' => [ 'type' => 'structure', 'members' => [ 'Applications' => [ 'shape' => 'ApplicationDescriptionList', ], ], ], 'ApplicationMetrics' => [ 'type' => 'structure', 'members' => [ 'Duration' => [ 'shape' => 'NullableInteger', ], 'RequestCount' => [ 'shape' => 'RequestCount', ], 'StatusCodes' => [ 'shape' => 'StatusCodes', ], 'Latency' => [ 'shape' => 'Latency', ], ], ], 'ApplicationName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'ApplicationNamesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApplicationName', ], ], 'ApplicationResourceLifecycleConfig' => [ 'type' => 'structure', 'members' => [ 'ServiceRole' => [ 'shape' => 'String', ], 'VersionLifecycleConfig' => [ 'shape' => 'ApplicationVersionLifecycleConfig', ], ], ], 'ApplicationResourceLifecycleDescriptionMessage' => [ 'type' => 'structure', 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'ResourceLifecycleConfig' => [ 'shape' => 'ApplicationResourceLifecycleConfig', ], ], ], 'ApplicationVersionArn' => [ 'type' => 'string', ], 'ApplicationVersionDescription' => [ 'type' => 'structure', 'members' => [ 'ApplicationVersionArn' => [ 'shape' => 'ApplicationVersionArn', ], 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'Description' => [ 'shape' => 'Description', ], 'VersionLabel' => [ 'shape' => 'VersionLabel', ], 'SourceBuildInformation' => [ 'shape' => 'SourceBuildInformation', ], 'BuildArn' => [ 'shape' => 'String', ], 'SourceBundle' => [ 'shape' => 'S3Location', ], 'DateCreated' => [ 'shape' => 'CreationDate', ], 'DateUpdated' => [ 'shape' => 'UpdateDate', ], 'Status' => [ 'shape' => 'ApplicationVersionStatus', ], ], ], 'ApplicationVersionDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApplicationVersionDescription', ], ], 'ApplicationVersionDescriptionMessage' => [ 'type' => 'structure', 'members' => [ 'ApplicationVersion' => [ 'shape' => 'ApplicationVersionDescription', ], ], ], 'ApplicationVersionDescriptionsMessage' => [ 'type' => 'structure', 'members' => [ 'ApplicationVersions' => [ 'shape' => 'ApplicationVersionDescriptionList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'ApplicationVersionLifecycleConfig' => [ 'type' => 'structure', 'members' => [ 'MaxCountRule' => [ 'shape' => 'MaxCountRule', ], 'MaxAgeRule' => [ 'shape' => 'MaxAgeRule', ], ], ], 'ApplicationVersionProccess' => [ 'type' => 'boolean', ], 'ApplicationVersionStatus' => [ 'type' => 'string', 'enum' => [ 'Processed', 'Unprocessed', 'Failed', 'Processing', 'Building', ], ], 'ApplyEnvironmentManagedActionRequest' => [ 'type' => 'structure', 'required' => [ 'ActionId', ], 'members' => [ 'EnvironmentName' => [ 'shape' => 'String', ], 'EnvironmentId' => [ 'shape' => 'String', ], 'ActionId' => [ 'shape' => 'String', ], ], ], 'ApplyEnvironmentManagedActionResult' => [ 'type' => 'structure', 'members' => [ 'ActionId' => [ 'shape' => 'String', ], 'ActionDescription' => [ 'shape' => 'String', ], 'ActionType' => [ 'shape' => 'ActionType', ], 'Status' => [ 'shape' => 'String', ], ], ], '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', ], ], 'BoxedBoolean' => [ 'type' => 'boolean', ], 'BoxedInt' => [ 'type' => 'integer', ], 'BuildConfiguration' => [ 'type' => 'structure', 'required' => [ 'CodeBuildServiceRole', 'Image', ], 'members' => [ 'ArtifactName' => [ 'shape' => 'String', ], 'CodeBuildServiceRole' => [ 'shape' => 'NonEmptyString', ], 'ComputeType' => [ 'shape' => 'ComputeType', ], 'Image' => [ 'shape' => 'NonEmptyString', ], 'TimeoutInMinutes' => [ 'shape' => 'BoxedInt', ], ], ], 'Builder' => [ 'type' => 'structure', 'members' => [ 'ARN' => [ 'shape' => 'ARN', ], ], ], 'CPUUtilization' => [ 'type' => 'structure', 'members' => [ 'User' => [ 'shape' => 'NullableDouble', ], 'Nice' => [ 'shape' => 'NullableDouble', ], 'System' => [ 'shape' => 'NullableDouble', ], 'Idle' => [ 'shape' => 'NullableDouble', ], 'IOWait' => [ 'shape' => 'NullableDouble', ], 'IRQ' => [ 'shape' => 'NullableDouble', ], 'SoftIRQ' => [ 'shape' => 'NullableDouble', ], 'Privileged' => [ 'shape' => 'NullableDouble', ], ], ], 'Cause' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'Causes' => [ 'type' => 'list', 'member' => [ 'shape' => 'Cause', ], ], 'CheckDNSAvailabilityMessage' => [ 'type' => 'structure', 'required' => [ 'CNAMEPrefix', ], 'members' => [ 'CNAMEPrefix' => [ 'shape' => 'DNSCnamePrefix', ], ], ], 'CheckDNSAvailabilityResultMessage' => [ 'type' => 'structure', 'members' => [ 'Available' => [ 'shape' => 'CnameAvailability', ], 'FullyQualifiedCNAME' => [ 'shape' => 'DNSCname', ], ], ], 'CnameAvailability' => [ 'type' => 'boolean', ], 'CodeBuildNotInServiceRegionException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'CodeBuildNotInServiceRegionException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ComposeEnvironmentsMessage' => [ 'type' => 'structure', 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'GroupName' => [ 'shape' => 'GroupName', ], 'VersionLabels' => [ 'shape' => 'VersionLabels', ], ], ], 'ComputeType' => [ 'type' => 'string', 'enum' => [ 'BUILD_GENERAL1_SMALL', 'BUILD_GENERAL1_MEDIUM', 'BUILD_GENERAL1_LARGE', ], ], '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', ], 'PlatformArn' => [ 'shape' => 'PlatformArn', ], 'Options' => [ 'shape' => 'ConfigurationOptionDescriptionsList', ], ], ], 'ConfigurationSettingsDescription' => [ 'type' => 'structure', 'members' => [ 'SolutionStackName' => [ 'shape' => 'SolutionStackName', ], 'PlatformArn' => [ 'shape' => 'PlatformArn', ], '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', 'max' => 100, 'min' => 1, ], 'ConfigurationTemplateNamesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationTemplateName', ], ], 'CreateApplicationMessage' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'Description' => [ 'shape' => 'Description', ], 'ResourceLifecycleConfig' => [ 'shape' => 'ApplicationResourceLifecycleConfig', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'CreateApplicationVersionMessage' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'VersionLabel', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'VersionLabel' => [ 'shape' => 'VersionLabel', ], 'Description' => [ 'shape' => 'Description', ], 'SourceBuildInformation' => [ 'shape' => 'SourceBuildInformation', ], 'SourceBundle' => [ 'shape' => 'S3Location', ], 'BuildConfiguration' => [ 'shape' => 'BuildConfiguration', ], 'AutoCreateApplication' => [ 'shape' => 'AutoCreateApplication', ], 'Process' => [ 'shape' => 'ApplicationVersionProccess', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'CreateConfigurationTemplateMessage' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'TemplateName', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'TemplateName' => [ 'shape' => 'ConfigurationTemplateName', ], 'SolutionStackName' => [ 'shape' => 'SolutionStackName', ], 'PlatformArn' => [ 'shape' => 'PlatformArn', ], 'SourceConfiguration' => [ 'shape' => 'SourceConfiguration', ], 'EnvironmentId' => [ 'shape' => 'EnvironmentId', ], 'Description' => [ 'shape' => 'Description', ], 'OptionSettings' => [ 'shape' => 'ConfigurationOptionSettingsList', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'CreateEnvironmentMessage' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'EnvironmentName' => [ 'shape' => 'EnvironmentName', ], 'GroupName' => [ 'shape' => 'GroupName', ], 'Description' => [ 'shape' => 'Description', ], 'CNAMEPrefix' => [ 'shape' => 'DNSCnamePrefix', ], 'Tier' => [ 'shape' => 'EnvironmentTier', ], 'Tags' => [ 'shape' => 'Tags', ], 'VersionLabel' => [ 'shape' => 'VersionLabel', ], 'TemplateName' => [ 'shape' => 'ConfigurationTemplateName', ], 'SolutionStackName' => [ 'shape' => 'SolutionStackName', ], 'PlatformArn' => [ 'shape' => 'PlatformArn', ], 'OptionSettings' => [ 'shape' => 'ConfigurationOptionSettingsList', ], 'OptionsToRemove' => [ 'shape' => 'OptionsSpecifierList', ], ], ], 'CreatePlatformVersionRequest' => [ 'type' => 'structure', 'required' => [ 'PlatformName', 'PlatformVersion', 'PlatformDefinitionBundle', ], 'members' => [ 'PlatformName' => [ 'shape' => 'PlatformName', ], 'PlatformVersion' => [ 'shape' => 'PlatformVersion', ], 'PlatformDefinitionBundle' => [ 'shape' => 'S3Location', ], 'EnvironmentName' => [ 'shape' => 'EnvironmentName', ], 'OptionSettings' => [ 'shape' => 'ConfigurationOptionSettingsList', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'CreatePlatformVersionResult' => [ 'type' => 'structure', 'members' => [ 'PlatformSummary' => [ 'shape' => 'PlatformSummary', ], 'Builder' => [ 'shape' => 'Builder', ], ], ], 'CreateStorageLocationResultMessage' => [ 'type' => 'structure', 'members' => [ 'S3Bucket' => [ 'shape' => 'S3Bucket', ], ], ], 'CreationDate' => [ 'type' => 'timestamp', ], 'CustomAmi' => [ 'type' => 'structure', 'members' => [ 'VirtualizationType' => [ 'shape' => 'VirtualizationType', ], 'ImageId' => [ 'shape' => 'ImageId', ], ], ], 'CustomAmiList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CustomAmi', ], ], 'DNSCname' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'DNSCnamePrefix' => [ 'type' => 'string', 'max' => 63, 'min' => 4, ], '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', ], ], ], 'DeletePlatformVersionRequest' => [ 'type' => 'structure', 'members' => [ 'PlatformArn' => [ 'shape' => 'PlatformArn', ], ], ], 'DeletePlatformVersionResult' => [ 'type' => 'structure', 'members' => [ 'PlatformSummary' => [ 'shape' => 'PlatformSummary', ], ], ], 'DeleteSourceBundle' => [ 'type' => 'boolean', ], 'Deployment' => [ 'type' => 'structure', 'members' => [ 'VersionLabel' => [ 'shape' => 'String', ], 'DeploymentId' => [ 'shape' => 'NullableLong', ], 'Status' => [ 'shape' => 'String', ], 'DeploymentTime' => [ 'shape' => 'DeploymentTimestamp', ], ], ], 'DeploymentTimestamp' => [ 'type' => 'timestamp', ], 'DescribeAccountAttributesResult' => [ 'type' => 'structure', 'members' => [ 'ResourceQuotas' => [ 'shape' => 'ResourceQuotas', ], ], ], 'DescribeApplicationVersionsMessage' => [ 'type' => 'structure', 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'VersionLabels' => [ 'shape' => 'VersionLabelsList', ], 'MaxRecords' => [ 'shape' => 'MaxRecords', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'DescribeApplicationsMessage' => [ 'type' => 'structure', 'members' => [ 'ApplicationNames' => [ 'shape' => 'ApplicationNamesList', ], ], ], 'DescribeConfigurationOptionsMessage' => [ 'type' => 'structure', 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'TemplateName' => [ 'shape' => 'ConfigurationTemplateName', ], 'EnvironmentName' => [ 'shape' => 'EnvironmentName', ], 'SolutionStackName' => [ 'shape' => 'SolutionStackName', ], 'PlatformArn' => [ 'shape' => 'PlatformArn', ], 'Options' => [ 'shape' => 'OptionsSpecifierList', ], ], ], 'DescribeConfigurationSettingsMessage' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'TemplateName' => [ 'shape' => 'ConfigurationTemplateName', ], 'EnvironmentName' => [ 'shape' => 'EnvironmentName', ], ], ], 'DescribeEnvironmentHealthRequest' => [ 'type' => 'structure', 'members' => [ 'EnvironmentName' => [ 'shape' => 'EnvironmentName', ], 'EnvironmentId' => [ 'shape' => 'EnvironmentId', ], 'AttributeNames' => [ 'shape' => 'EnvironmentHealthAttributes', ], ], ], 'DescribeEnvironmentHealthResult' => [ 'type' => 'structure', 'members' => [ 'EnvironmentName' => [ 'shape' => 'EnvironmentName', ], 'HealthStatus' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'EnvironmentHealth', ], 'Color' => [ 'shape' => 'String', ], 'Causes' => [ 'shape' => 'Causes', ], 'ApplicationMetrics' => [ 'shape' => 'ApplicationMetrics', ], 'InstancesHealth' => [ 'shape' => 'InstanceHealthSummary', ], 'RefreshedAt' => [ 'shape' => 'RefreshedAt', ], ], ], 'DescribeEnvironmentManagedActionHistoryRequest' => [ 'type' => 'structure', 'members' => [ 'EnvironmentId' => [ 'shape' => 'EnvironmentId', ], 'EnvironmentName' => [ 'shape' => 'EnvironmentName', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxItems' => [ 'shape' => 'Integer', ], ], ], 'DescribeEnvironmentManagedActionHistoryResult' => [ 'type' => 'structure', 'members' => [ 'ManagedActionHistoryItems' => [ 'shape' => 'ManagedActionHistoryItems', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeEnvironmentManagedActionsRequest' => [ 'type' => 'structure', 'members' => [ 'EnvironmentName' => [ 'shape' => 'String', ], 'EnvironmentId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'ActionStatus', ], ], ], 'DescribeEnvironmentManagedActionsResult' => [ 'type' => 'structure', 'members' => [ 'ManagedActions' => [ 'shape' => 'ManagedActions', ], ], ], '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', ], 'MaxRecords' => [ 'shape' => 'MaxRecords', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'DescribeEventsMessage' => [ 'type' => 'structure', 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'VersionLabel' => [ 'shape' => 'VersionLabel', ], 'TemplateName' => [ 'shape' => 'ConfigurationTemplateName', ], 'EnvironmentId' => [ 'shape' => 'EnvironmentId', ], 'EnvironmentName' => [ 'shape' => 'EnvironmentName', ], 'PlatformArn' => [ 'shape' => 'PlatformArn', ], 'RequestId' => [ 'shape' => 'RequestId', ], 'Severity' => [ 'shape' => 'EventSeverity', ], 'StartTime' => [ 'shape' => 'TimeFilterStart', ], 'EndTime' => [ 'shape' => 'TimeFilterEnd', ], 'MaxRecords' => [ 'shape' => 'MaxRecords', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'DescribeInstancesHealthRequest' => [ 'type' => 'structure', 'members' => [ 'EnvironmentName' => [ 'shape' => 'EnvironmentName', ], 'EnvironmentId' => [ 'shape' => 'EnvironmentId', ], 'AttributeNames' => [ 'shape' => 'InstancesHealthAttributes', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeInstancesHealthResult' => [ 'type' => 'structure', 'members' => [ 'InstanceHealthList' => [ 'shape' => 'InstanceHealthList', ], 'RefreshedAt' => [ 'shape' => 'RefreshedAt', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribePlatformVersionRequest' => [ 'type' => 'structure', 'members' => [ 'PlatformArn' => [ 'shape' => 'PlatformArn', ], ], ], 'DescribePlatformVersionResult' => [ 'type' => 'structure', 'members' => [ 'PlatformDescription' => [ 'shape' => 'PlatformDescription', ], ], ], 'Description' => [ 'type' => 'string', 'max' => 200, ], 'Ec2InstanceId' => [ 'type' => 'string', ], 'ElasticBeanstalkServiceException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'EndpointURL' => [ 'type' => 'string', ], 'EnvironmentArn' => [ 'type' => 'string', ], 'EnvironmentDescription' => [ 'type' => 'structure', 'members' => [ 'EnvironmentName' => [ 'shape' => 'EnvironmentName', ], 'EnvironmentId' => [ 'shape' => 'EnvironmentId', ], 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'VersionLabel' => [ 'shape' => 'VersionLabel', ], 'SolutionStackName' => [ 'shape' => 'SolutionStackName', ], 'PlatformArn' => [ 'shape' => 'PlatformArn', ], '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', ], 'HealthStatus' => [ 'shape' => 'EnvironmentHealthStatus', ], 'Resources' => [ 'shape' => 'EnvironmentResourcesDescription', ], 'Tier' => [ 'shape' => 'EnvironmentTier', ], 'EnvironmentLinks' => [ 'shape' => 'EnvironmentLinks', ], 'EnvironmentArn' => [ 'shape' => 'EnvironmentArn', ], ], ], 'EnvironmentDescriptionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnvironmentDescription', ], ], 'EnvironmentDescriptionsMessage' => [ 'type' => 'structure', 'members' => [ 'Environments' => [ 'shape' => 'EnvironmentDescriptionsList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'EnvironmentHealth' => [ 'type' => 'string', 'enum' => [ 'Green', 'Yellow', 'Red', 'Grey', ], ], 'EnvironmentHealthAttribute' => [ 'type' => 'string', 'enum' => [ 'Status', 'Color', 'Causes', 'ApplicationMetrics', 'InstancesHealth', 'All', 'HealthStatus', 'RefreshedAt', ], ], 'EnvironmentHealthAttributes' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnvironmentHealthAttribute', ], ], 'EnvironmentHealthStatus' => [ 'type' => 'string', 'enum' => [ 'NoData', 'Unknown', 'Pending', 'Ok', 'Info', 'Warning', 'Degraded', 'Severe', 'Suspended', ], ], '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', ], ], 'EnvironmentLink' => [ 'type' => 'structure', 'members' => [ 'LinkName' => [ 'shape' => 'String', ], 'EnvironmentName' => [ 'shape' => 'String', ], ], ], 'EnvironmentLinks' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnvironmentLink', ], ], 'EnvironmentName' => [ 'type' => 'string', 'max' => 40, 'min' => 4, ], 'EnvironmentNamesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnvironmentName', ], ], 'EnvironmentResourceDescription' => [ 'type' => 'structure', 'members' => [ 'EnvironmentName' => [ 'shape' => 'EnvironmentName', ], 'AutoScalingGroups' => [ 'shape' => 'AutoScalingGroupList', ], 'Instances' => [ 'shape' => 'InstanceList', ], 'LaunchConfigurations' => [ 'shape' => 'LaunchConfigurationList', ], 'LaunchTemplates' => [ 'shape' => 'LaunchTemplateList', ], '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', ], 'PlatformArn' => [ 'shape' => 'PlatformArn', ], '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', ], ], 'ExceptionMessage' => [ 'type' => 'string', ], 'FailureType' => [ 'type' => 'string', 'enum' => [ 'UpdateCancelled', 'CancellationFailed', 'RollbackFailed', 'RollbackSuccessful', 'InternalFailure', 'InvalidEnvironmentState', 'PermissionsError', ], ], 'FileTypeExtension' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'ForceTerminate' => [ 'type' => 'boolean', ], 'GroupName' => [ 'type' => 'string', 'max' => 19, 'min' => 1, ], 'ImageId' => [ 'type' => 'string', ], 'IncludeDeleted' => [ 'type' => 'boolean', ], 'IncludeDeletedBackTo' => [ 'type' => 'timestamp', ], 'Instance' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ResourceId', ], ], ], 'InstanceHealthList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SingleInstanceHealth', ], ], 'InstanceHealthSummary' => [ 'type' => 'structure', 'members' => [ 'NoData' => [ 'shape' => 'NullableInteger', ], 'Unknown' => [ 'shape' => 'NullableInteger', ], 'Pending' => [ 'shape' => 'NullableInteger', ], 'Ok' => [ 'shape' => 'NullableInteger', ], 'Info' => [ 'shape' => 'NullableInteger', ], 'Warning' => [ 'shape' => 'NullableInteger', ], 'Degraded' => [ 'shape' => 'NullableInteger', ], 'Severe' => [ 'shape' => 'NullableInteger', ], ], ], 'InstanceId' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'InstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Instance', ], ], 'InstancesHealthAttribute' => [ 'type' => 'string', 'enum' => [ 'HealthStatus', 'Color', 'Causes', 'ApplicationMetrics', 'RefreshedAt', 'LaunchedAt', 'System', 'Deployment', 'AvailabilityZone', 'InstanceType', 'All', ], ], 'InstancesHealthAttributes' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstancesHealthAttribute', ], ], 'InsufficientPrivilegesException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InsufficientPrivilegesException', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'Integer' => [ 'type' => 'integer', ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidRequestException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'Latency' => [ 'type' => 'structure', 'members' => [ 'P999' => [ 'shape' => 'NullableDouble', ], 'P99' => [ 'shape' => 'NullableDouble', ], 'P95' => [ 'shape' => 'NullableDouble', ], 'P90' => [ 'shape' => 'NullableDouble', ], 'P85' => [ 'shape' => 'NullableDouble', ], 'P75' => [ 'shape' => 'NullableDouble', ], 'P50' => [ 'shape' => 'NullableDouble', ], 'P10' => [ 'shape' => 'NullableDouble', ], ], ], 'LaunchConfiguration' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'ResourceId', ], ], ], 'LaunchConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchConfiguration', ], ], 'LaunchTemplate' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ResourceId', ], ], ], 'LaunchTemplateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplate', ], ], 'LaunchedAt' => [ 'type' => 'timestamp', ], 'ListAvailableSolutionStacksResultMessage' => [ 'type' => 'structure', 'members' => [ 'SolutionStacks' => [ 'shape' => 'AvailableSolutionStackNamesList', ], 'SolutionStackDetails' => [ 'shape' => 'AvailableSolutionStackDetailsList', ], ], ], 'ListPlatformVersionsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'PlatformFilters', ], 'MaxRecords' => [ 'shape' => 'PlatformMaxRecords', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'ListPlatformVersionsResult' => [ 'type' => 'structure', 'members' => [ 'PlatformSummaryList' => [ 'shape' => 'PlatformSummaryList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'ListTagsForResourceMessage' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], ], ], 'Listener' => [ 'type' => 'structure', 'members' => [ 'Protocol' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'Integer', ], ], ], 'LoadAverage' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadAverageValue', ], ], 'LoadAverageValue' => [ 'type' => 'double', ], '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', ], ], 'Maintainer' => [ 'type' => 'string', ], 'ManagedAction' => [ 'type' => 'structure', 'members' => [ 'ActionId' => [ 'shape' => 'String', ], 'ActionDescription' => [ 'shape' => 'String', ], 'ActionType' => [ 'shape' => 'ActionType', ], 'Status' => [ 'shape' => 'ActionStatus', ], 'WindowStartTime' => [ 'shape' => 'Timestamp', ], ], ], 'ManagedActionHistoryItem' => [ 'type' => 'structure', 'members' => [ 'ActionId' => [ 'shape' => 'String', ], 'ActionType' => [ 'shape' => 'ActionType', ], 'ActionDescription' => [ 'shape' => 'String', ], 'FailureType' => [ 'shape' => 'FailureType', ], 'Status' => [ 'shape' => 'ActionHistoryStatus', ], 'FailureDescription' => [ 'shape' => 'String', ], 'ExecutedTime' => [ 'shape' => 'Timestamp', ], 'FinishedTime' => [ 'shape' => 'Timestamp', ], ], ], 'ManagedActionHistoryItems' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedActionHistoryItem', ], 'max' => 100, 'min' => 1, ], 'ManagedActionInvalidStateException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'ManagedActionInvalidStateException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ManagedActions' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedAction', ], 'max' => 100, 'min' => 1, ], 'MaxAgeRule' => [ 'type' => 'structure', 'required' => [ 'Enabled', ], 'members' => [ 'Enabled' => [ 'shape' => 'BoxedBoolean', ], 'MaxAgeInDays' => [ 'shape' => 'BoxedInt', ], 'DeleteSourceFromS3' => [ 'shape' => 'BoxedBoolean', ], ], ], 'MaxCountRule' => [ 'type' => 'structure', 'required' => [ 'Enabled', ], 'members' => [ 'Enabled' => [ 'shape' => 'BoxedBoolean', ], 'MaxCount' => [ 'shape' => 'BoxedInt', ], 'DeleteSourceFromS3' => [ 'shape' => 'BoxedBoolean', ], ], ], 'MaxRecords' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'Message' => [ 'type' => 'string', ], 'NextToken' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'NonEmptyString' => [ 'type' => 'string', 'pattern' => '.*\\S.*', ], 'NullableDouble' => [ 'type' => 'double', ], 'NullableInteger' => [ 'type' => 'integer', ], 'NullableLong' => [ 'type' => 'long', ], 'OperatingSystemName' => [ 'type' => 'string', ], 'OperatingSystemVersion' => [ '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', ], ], 'PlatformArn' => [ 'type' => 'string', ], 'PlatformCategory' => [ 'type' => 'string', ], 'PlatformDescription' => [ 'type' => 'structure', 'members' => [ 'PlatformArn' => [ 'shape' => 'PlatformArn', ], 'PlatformOwner' => [ 'shape' => 'PlatformOwner', ], 'PlatformName' => [ 'shape' => 'PlatformName', ], 'PlatformVersion' => [ 'shape' => 'PlatformVersion', ], 'SolutionStackName' => [ 'shape' => 'SolutionStackName', ], 'PlatformStatus' => [ 'shape' => 'PlatformStatus', ], 'DateCreated' => [ 'shape' => 'CreationDate', ], 'DateUpdated' => [ 'shape' => 'UpdateDate', ], 'PlatformCategory' => [ 'shape' => 'PlatformCategory', ], 'Description' => [ 'shape' => 'Description', ], 'Maintainer' => [ 'shape' => 'Maintainer', ], 'OperatingSystemName' => [ 'shape' => 'OperatingSystemName', ], 'OperatingSystemVersion' => [ 'shape' => 'OperatingSystemVersion', ], 'ProgrammingLanguages' => [ 'shape' => 'PlatformProgrammingLanguages', ], 'Frameworks' => [ 'shape' => 'PlatformFrameworks', ], 'CustomAmiList' => [ 'shape' => 'CustomAmiList', ], 'SupportedTierList' => [ 'shape' => 'SupportedTierList', ], 'SupportedAddonList' => [ 'shape' => 'SupportedAddonList', ], ], ], 'PlatformFilter' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'PlatformFilterType', ], 'Operator' => [ 'shape' => 'PlatformFilterOperator', ], 'Values' => [ 'shape' => 'PlatformFilterValueList', ], ], ], 'PlatformFilterOperator' => [ 'type' => 'string', ], 'PlatformFilterType' => [ 'type' => 'string', ], 'PlatformFilterValue' => [ 'type' => 'string', ], 'PlatformFilterValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlatformFilterValue', ], ], 'PlatformFilters' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlatformFilter', ], ], 'PlatformFramework' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Version' => [ 'shape' => 'String', ], ], ], 'PlatformFrameworks' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlatformFramework', ], ], 'PlatformMaxRecords' => [ 'type' => 'integer', 'min' => 1, ], 'PlatformName' => [ 'type' => 'string', ], 'PlatformOwner' => [ 'type' => 'string', ], 'PlatformProgrammingLanguage' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Version' => [ 'shape' => 'String', ], ], ], 'PlatformProgrammingLanguages' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlatformProgrammingLanguage', ], ], 'PlatformStatus' => [ 'type' => 'string', 'enum' => [ 'Creating', 'Failed', 'Ready', 'Deleting', 'Deleted', ], ], 'PlatformSummary' => [ 'type' => 'structure', 'members' => [ 'PlatformArn' => [ 'shape' => 'PlatformArn', ], 'PlatformOwner' => [ 'shape' => 'PlatformOwner', ], 'PlatformStatus' => [ 'shape' => 'PlatformStatus', ], 'PlatformCategory' => [ 'shape' => 'PlatformCategory', ], 'OperatingSystemName' => [ 'shape' => 'OperatingSystemName', ], 'OperatingSystemVersion' => [ 'shape' => 'OperatingSystemVersion', ], 'SupportedTierList' => [ 'shape' => 'SupportedTierList', ], 'SupportedAddonList' => [ 'shape' => 'SupportedAddonList', ], ], ], 'PlatformSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlatformSummary', ], ], 'PlatformVersion' => [ 'type' => 'string', ], 'PlatformVersionStillReferencedException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'PlatformVersionStillReferencedException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], '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', ], ], ], 'RefreshedAt' => [ 'type' => 'timestamp', ], 'RegexLabel' => [ 'type' => 'string', ], 'RegexPattern' => [ 'type' => 'string', ], 'RequestCount' => [ 'type' => 'integer', ], 'RequestEnvironmentInfoMessage' => [ 'type' => 'structure', 'required' => [ 'InfoType', ], 'members' => [ 'EnvironmentId' => [ 'shape' => 'EnvironmentId', ], 'EnvironmentName' => [ 'shape' => 'EnvironmentName', ], 'InfoType' => [ 'shape' => 'EnvironmentInfoType', ], ], ], 'RequestId' => [ 'type' => 'string', ], 'ResourceArn' => [ 'type' => 'string', ], 'ResourceId' => [ 'type' => 'string', ], 'ResourceName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'ResourceNotFoundException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ResourceQuota' => [ 'type' => 'structure', 'members' => [ 'Maximum' => [ 'shape' => 'BoxedInt', ], ], ], 'ResourceQuotas' => [ 'type' => 'structure', 'members' => [ 'ApplicationQuota' => [ 'shape' => 'ResourceQuota', ], 'ApplicationVersionQuota' => [ 'shape' => 'ResourceQuota', ], 'EnvironmentQuota' => [ 'shape' => 'ResourceQuota', ], 'ConfigurationTemplateQuota' => [ 'shape' => 'ResourceQuota', ], 'CustomPlatformQuota' => [ 'shape' => 'ResourceQuota', ], ], ], 'ResourceTagsDescriptionMessage' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], 'ResourceTags' => [ 'shape' => 'TagList', ], ], ], 'ResourceTypeNotSupportedException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'ResourceTypeNotSupportedException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], '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', ], 'SingleInstanceHealth' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'HealthStatus' => [ 'shape' => 'String', ], 'Color' => [ 'shape' => 'String', ], 'Causes' => [ 'shape' => 'Causes', ], 'LaunchedAt' => [ 'shape' => 'LaunchedAt', ], 'ApplicationMetrics' => [ 'shape' => 'ApplicationMetrics', ], 'System' => [ 'shape' => 'SystemStatus', ], 'Deployment' => [ 'shape' => 'Deployment', ], 'AvailabilityZone' => [ 'shape' => 'String', ], 'InstanceType' => [ 'shape' => 'String', ], ], ], 'SolutionStackDescription' => [ 'type' => 'structure', 'members' => [ 'SolutionStackName' => [ 'shape' => 'SolutionStackName', ], 'PermittedFileTypes' => [ 'shape' => 'SolutionStackFileTypeList', ], ], ], 'SolutionStackFileTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FileTypeExtension', ], ], 'SolutionStackName' => [ 'type' => 'string', ], 'SourceBuildInformation' => [ 'type' => 'structure', 'required' => [ 'SourceType', 'SourceRepository', 'SourceLocation', ], 'members' => [ 'SourceType' => [ 'shape' => 'SourceType', ], 'SourceRepository' => [ 'shape' => 'SourceRepository', ], 'SourceLocation' => [ 'shape' => 'SourceLocation', ], ], ], 'SourceBundleDeletionException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'SourceBundleDeletionFailure', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'SourceConfiguration' => [ 'type' => 'structure', 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'TemplateName' => [ 'shape' => 'ConfigurationTemplateName', ], ], ], 'SourceLocation' => [ 'type' => 'string', 'max' => 255, 'min' => 3, 'pattern' => '.+/.+', ], 'SourceRepository' => [ 'type' => 'string', 'enum' => [ 'CodeCommit', 'S3', ], ], 'SourceType' => [ 'type' => 'string', 'enum' => [ 'Git', 'Zip', ], ], 'StatusCodes' => [ 'type' => 'structure', 'members' => [ 'Status2xx' => [ 'shape' => 'NullableInteger', ], 'Status3xx' => [ 'shape' => 'NullableInteger', ], 'Status4xx' => [ 'shape' => 'NullableInteger', ], 'Status5xx' => [ 'shape' => 'NullableInteger', ], ], ], 'String' => [ 'type' => 'string', ], 'SupportedAddon' => [ 'type' => 'string', ], 'SupportedAddonList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SupportedAddon', ], ], 'SupportedTier' => [ 'type' => 'string', ], 'SupportedTierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SupportedTier', ], ], 'SwapEnvironmentCNAMEsMessage' => [ 'type' => 'structure', 'members' => [ 'SourceEnvironmentId' => [ 'shape' => 'EnvironmentId', ], 'SourceEnvironmentName' => [ 'shape' => 'EnvironmentName', ], 'DestinationEnvironmentId' => [ 'shape' => 'EnvironmentId', ], 'DestinationEnvironmentName' => [ 'shape' => 'EnvironmentName', ], ], ], 'SystemStatus' => [ 'type' => 'structure', 'members' => [ 'CPUUtilization' => [ 'shape' => 'CPUUtilization', ], 'LoadAverage' => [ 'shape' => 'LoadAverage', ], ], ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'Tags' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TerminateEnvForce' => [ 'type' => 'boolean', ], 'TerminateEnvironmentMessage' => [ 'type' => 'structure', 'members' => [ 'EnvironmentId' => [ 'shape' => 'EnvironmentId', ], 'EnvironmentName' => [ 'shape' => 'EnvironmentName', ], 'TerminateResources' => [ 'shape' => 'TerminateEnvironmentResources', ], 'ForceTerminate' => [ 'shape' => 'ForceTerminate', ], ], ], 'TerminateEnvironmentResources' => [ 'type' => 'boolean', ], 'TimeFilterEnd' => [ 'type' => 'timestamp', ], 'TimeFilterStart' => [ 'type' => 'timestamp', ], 'Timestamp' => [ '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, ], 'TooManyPlatformsException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'TooManyPlatformsException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'TooManyTagsException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'TooManyTagsException', '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', ], ], ], 'UpdateApplicationResourceLifecycleMessage' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'ResourceLifecycleConfig', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'ResourceLifecycleConfig' => [ 'shape' => 'ApplicationResourceLifecycleConfig', ], ], ], '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' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'EnvironmentId' => [ 'shape' => 'EnvironmentId', ], 'EnvironmentName' => [ 'shape' => 'EnvironmentName', ], 'GroupName' => [ 'shape' => 'GroupName', ], 'Description' => [ 'shape' => 'Description', ], 'Tier' => [ 'shape' => 'EnvironmentTier', ], 'VersionLabel' => [ 'shape' => 'VersionLabel', ], 'TemplateName' => [ 'shape' => 'ConfigurationTemplateName', ], 'SolutionStackName' => [ 'shape' => 'SolutionStackName', ], 'PlatformArn' => [ 'shape' => 'PlatformArn', ], 'OptionSettings' => [ 'shape' => 'ConfigurationOptionSettingsList', ], 'OptionsToRemove' => [ 'shape' => 'OptionsSpecifierList', ], ], ], 'UpdateTagsForResourceMessage' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], 'TagsToAdd' => [ 'shape' => 'TagList', ], 'TagsToRemove' => [ 'shape' => 'TagKeyList', ], ], ], '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', 'max' => 100, 'min' => 1, ], 'VersionLabels' => [ 'type' => 'list', 'member' => [ 'shape' => 'VersionLabel', ], ], 'VersionLabelsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VersionLabel', ], ], 'VirtualizationType' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/elasticbeanstalk/2010-12-01/paginators-1.json.php b/lib/aws/Aws/data/elasticbeanstalk/2010-12-01/paginators-1.json.php new file mode 100644 index 0000000..b48f31c --- /dev/null +++ b/lib/aws/Aws/data/elasticbeanstalk/2010-12-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticbeanstalk/2010-12-01/paginators-1.json +return [ 'pagination' => [ 'DescribeApplicationVersions' => [ 'result_key' => 'ApplicationVersions', ], 'DescribeApplications' => [ 'result_key' => 'Applications', ], 'DescribeConfigurationOptions' => [ 'result_key' => 'Options', ], 'DescribeEnvironments' => [ 'result_key' => 'Environments', ], 'DescribeEvents' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxRecords', 'output_token' => 'NextToken', 'result_key' => 'Events', ], 'ListAvailableSolutionStacks' => [ 'result_key' => 'SolutionStacks', ], ],]; diff --git a/lib/aws/Aws/data/elasticbeanstalk/2010-12-01/smoke.json.php b/lib/aws/Aws/data/elasticbeanstalk/2010-12-01/smoke.json.php new file mode 100644 index 0000000..064f2ef --- /dev/null +++ b/lib/aws/Aws/data/elasticbeanstalk/2010-12-01/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticbeanstalk/2010-12-01/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListAvailableSolutionStacks', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeEnvironmentResources', 'input' => [ 'EnvironmentId' => 'fake_environment', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/elasticfilesystem/2015-02-01/api-2.json.php b/lib/aws/Aws/data/elasticfilesystem/2015-02-01/api-2.json.php new file mode 100644 index 0000000..b3255e2 --- /dev/null +++ b/lib/aws/Aws/data/elasticfilesystem/2015-02-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticfilesystem/2015-02-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-02-01', 'endpointPrefix' => 'elasticfilesystem', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'EFS', 'serviceFullName' => 'Amazon Elastic File System', 'serviceId' => 'EFS', 'signatureVersion' => 'v4', 'uid' => 'elasticfilesystem-2015-02-01', ], 'operations' => [ 'CreateFileSystem' => [ 'name' => 'CreateFileSystem', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-02-01/file-systems', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateFileSystemRequest', ], 'output' => [ 'shape' => 'FileSystemDescription', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'FileSystemAlreadyExists', ], [ 'shape' => 'FileSystemLimitExceeded', ], [ 'shape' => 'InsufficientThroughputCapacity', ], [ 'shape' => 'ThroughputLimitExceeded', ], ], ], 'CreateMountTarget' => [ 'name' => 'CreateMountTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-02-01/mount-targets', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateMountTargetRequest', ], 'output' => [ 'shape' => 'MountTargetDescription', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'FileSystemNotFound', ], [ 'shape' => 'IncorrectFileSystemLifeCycleState', ], [ 'shape' => 'MountTargetConflict', ], [ 'shape' => 'SubnetNotFound', ], [ 'shape' => 'NoFreeAddressesInSubnet', ], [ 'shape' => 'IpAddressInUse', ], [ 'shape' => 'NetworkInterfaceLimitExceeded', ], [ 'shape' => 'SecurityGroupLimitExceeded', ], [ 'shape' => 'SecurityGroupNotFound', ], [ 'shape' => 'UnsupportedAvailabilityZone', ], ], ], 'CreateTags' => [ 'name' => 'CreateTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-02-01/create-tags/{FileSystemId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'CreateTagsRequest', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'FileSystemNotFound', ], ], ], 'DeleteFileSystem' => [ 'name' => 'DeleteFileSystem', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2015-02-01/file-systems/{FileSystemId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteFileSystemRequest', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'FileSystemNotFound', ], [ 'shape' => 'FileSystemInUse', ], ], ], 'DeleteMountTarget' => [ 'name' => 'DeleteMountTarget', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2015-02-01/mount-targets/{MountTargetId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteMountTargetRequest', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'DependencyTimeout', ], [ 'shape' => 'MountTargetNotFound', ], ], ], 'DeleteTags' => [ 'name' => 'DeleteTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-02-01/delete-tags/{FileSystemId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteTagsRequest', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'FileSystemNotFound', ], ], ], 'DescribeFileSystems' => [ 'name' => 'DescribeFileSystems', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-02-01/file-systems', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeFileSystemsRequest', ], 'output' => [ 'shape' => 'DescribeFileSystemsResponse', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'FileSystemNotFound', ], ], ], 'DescribeLifecycleConfiguration' => [ 'name' => 'DescribeLifecycleConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-02-01/file-systems/{FileSystemId}/lifecycle-configuration', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeLifecycleConfigurationRequest', ], 'output' => [ 'shape' => 'LifecycleConfigurationDescription', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'BadRequest', ], [ 'shape' => 'FileSystemNotFound', ], ], ], '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', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'MountTargetNotFound', ], [ 'shape' => 'IncorrectMountTargetState', ], ], ], 'DescribeMountTargets' => [ 'name' => 'DescribeMountTargets', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-02-01/mount-targets', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeMountTargetsRequest', ], 'output' => [ 'shape' => 'DescribeMountTargetsResponse', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'FileSystemNotFound', ], [ 'shape' => 'MountTargetNotFound', ], ], ], 'DescribeTags' => [ 'name' => 'DescribeTags', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-02-01/tags/{FileSystemId}/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeTagsRequest', ], 'output' => [ 'shape' => 'DescribeTagsResponse', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'FileSystemNotFound', ], ], ], 'ModifyMountTargetSecurityGroups' => [ 'name' => 'ModifyMountTargetSecurityGroups', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2015-02-01/mount-targets/{MountTargetId}/security-groups', 'responseCode' => 204, ], 'input' => [ 'shape' => 'ModifyMountTargetSecurityGroupsRequest', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'MountTargetNotFound', ], [ 'shape' => 'IncorrectMountTargetState', ], [ 'shape' => 'SecurityGroupLimitExceeded', ], [ 'shape' => 'SecurityGroupNotFound', ], ], ], 'PutLifecycleConfiguration' => [ 'name' => 'PutLifecycleConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2015-02-01/file-systems/{FileSystemId}/lifecycle-configuration', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PutLifecycleConfigurationRequest', ], 'output' => [ 'shape' => 'LifecycleConfigurationDescription', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'FileSystemNotFound', ], [ 'shape' => 'IncorrectFileSystemLifeCycleState', ], ], ], 'UpdateFileSystem' => [ 'name' => 'UpdateFileSystem', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2015-02-01/file-systems/{FileSystemId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateFileSystemRequest', ], 'output' => [ 'shape' => 'FileSystemDescription', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'FileSystemNotFound', ], [ 'shape' => 'IncorrectFileSystemLifeCycleState', ], [ 'shape' => 'InsufficientThroughputCapacity', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThroughputLimitExceeded', ], [ 'shape' => 'TooManyRequests', ], ], ], ], 'shapes' => [ 'AwsAccountId' => [ 'type' => 'string', ], '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', ], 'PerformanceMode' => [ 'shape' => 'PerformanceMode', ], 'Encrypted' => [ 'shape' => 'Encrypted', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'ThroughputMode' => [ 'shape' => 'ThroughputMode', ], 'ProvisionedThroughputInMibps' => [ 'shape' => 'ProvisionedThroughputInMibps', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], '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', 'max' => 64, 'min' => 1, ], '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', ], ], ], 'DescribeLifecycleConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'FileSystemId', ], 'members' => [ 'FileSystemId' => [ 'shape' => 'FileSystemId', 'location' => 'uri', 'locationName' => 'FileSystemId', ], ], ], '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', 'members' => [ 'MaxItems' => [ 'shape' => 'MaxItems', 'location' => 'querystring', 'locationName' => 'MaxItems', ], 'Marker' => [ 'shape' => 'Marker', 'location' => 'querystring', 'locationName' => 'Marker', ], 'FileSystemId' => [ 'shape' => 'FileSystemId', 'location' => 'querystring', 'locationName' => 'FileSystemId', ], 'MountTargetId' => [ 'shape' => 'MountTargetId', 'location' => 'querystring', 'locationName' => 'MountTargetId', ], ], ], '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', ], ], ], 'Encrypted' => [ 'type' => 'boolean', ], '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', 'PerformanceMode', 'Tags', ], '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', ], 'PerformanceMode' => [ 'shape' => 'PerformanceMode', ], 'Encrypted' => [ 'shape' => 'Encrypted', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'ThroughputMode' => [ 'shape' => 'ThroughputMode', ], 'ProvisionedThroughputInMibps' => [ 'shape' => 'ProvisionedThroughputInMibps', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'FileSystemDescriptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'FileSystemDescription', ], ], 'FileSystemId' => [ 'type' => 'string', ], '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, ], 'FileSystemNullableSizeValue' => [ 'type' => 'long', 'min' => 0, ], 'FileSystemSize' => [ 'type' => 'structure', 'required' => [ 'Value', ], 'members' => [ 'Value' => [ 'shape' => 'FileSystemSizeValue', ], 'Timestamp' => [ 'shape' => 'Timestamp', ], 'ValueInIA' => [ 'shape' => 'FileSystemNullableSizeValue', ], 'ValueInStandard' => [ 'shape' => 'FileSystemNullableSizeValue', ], ], ], '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, ], 'InsufficientThroughputCapacity' => [ 'type' => 'structure', 'required' => [ 'ErrorCode', ], 'members' => [ 'ErrorCode' => [ 'shape' => 'ErrorCode', ], 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 503, ], 'exception' => true, ], 'InternalServerError' => [ 'type' => 'structure', 'required' => [ 'ErrorCode', ], 'members' => [ 'ErrorCode' => [ 'shape' => 'ErrorCode', ], 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, ], 'IpAddress' => [ 'type' => 'string', ], 'IpAddressInUse' => [ 'type' => 'structure', 'required' => [ 'ErrorCode', ], 'members' => [ 'ErrorCode' => [ 'shape' => 'ErrorCode', ], 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'KmsKeyId' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'LifeCycleState' => [ 'type' => 'string', 'enum' => [ 'creating', 'available', 'updating', 'deleting', 'deleted', ], ], 'LifecycleConfigurationDescription' => [ 'type' => 'structure', 'members' => [ 'LifecyclePolicies' => [ 'shape' => 'LifecyclePolicies', ], ], ], 'LifecyclePolicies' => [ 'type' => 'list', 'member' => [ 'shape' => 'LifecyclePolicy', ], ], 'LifecyclePolicy' => [ 'type' => 'structure', 'members' => [ 'TransitionToIA' => [ 'shape' => 'TransitionToIARules', ], ], ], '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', ], 'MountTargetNotFound' => [ 'type' => 'structure', 'required' => [ 'ErrorCode', ], 'members' => [ 'ErrorCode' => [ 'shape' => 'ErrorCode', ], 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'NetworkInterfaceId' => [ 'type' => 'string', ], '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, ], 'PerformanceMode' => [ 'type' => 'string', 'enum' => [ 'generalPurpose', 'maxIO', ], ], 'ProvisionedThroughputInMibps' => [ 'type' => 'double', 'min' => 0, ], 'PutLifecycleConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'FileSystemId', 'LifecyclePolicies', ], 'members' => [ 'FileSystemId' => [ 'shape' => 'FileSystemId', 'location' => 'uri', 'locationName' => 'FileSystemId', ], 'LifecyclePolicies' => [ 'shape' => 'LifecyclePolicies', ], ], ], 'SecurityGroup' => [ 'type' => 'string', ], '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', ], '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', 'max' => 128, 'min' => 1, ], 'TagKeys' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, ], 'Tags' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'ThroughputLimitExceeded' => [ 'type' => 'structure', 'required' => [ 'ErrorCode', ], 'members' => [ 'ErrorCode' => [ 'shape' => 'ErrorCode', ], 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ThroughputMode' => [ 'type' => 'string', 'enum' => [ 'bursting', 'provisioned', ], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TooManyRequests' => [ 'type' => 'structure', 'required' => [ 'ErrorCode', ], 'members' => [ 'ErrorCode' => [ 'shape' => 'ErrorCode', ], 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'TransitionToIARules' => [ 'type' => 'string', 'enum' => [ 'AFTER_30_DAYS', ], ], 'UnsupportedAvailabilityZone' => [ 'type' => 'structure', 'required' => [ 'ErrorCode', ], 'members' => [ 'ErrorCode' => [ 'shape' => 'ErrorCode', ], 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'UpdateFileSystemRequest' => [ 'type' => 'structure', 'required' => [ 'FileSystemId', ], 'members' => [ 'FileSystemId' => [ 'shape' => 'FileSystemId', 'location' => 'uri', 'locationName' => 'FileSystemId', ], 'ThroughputMode' => [ 'shape' => 'ThroughputMode', ], 'ProvisionedThroughputInMibps' => [ 'shape' => 'ProvisionedThroughputInMibps', ], ], ], ],]; diff --git a/lib/aws/Aws/data/elasticfilesystem/2015-02-01/paginators-1.json.php b/lib/aws/Aws/data/elasticfilesystem/2015-02-01/paginators-1.json.php new file mode 100644 index 0000000..7062844 --- /dev/null +++ b/lib/aws/Aws/data/elasticfilesystem/2015-02-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticfilesystem/2015-02-01/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/elasticfilesystem/2015-02-01/smoke.json.php b/lib/aws/Aws/data/elasticfilesystem/2015-02-01/smoke.json.php new file mode 100644 index 0000000..8459862 --- /dev/null +++ b/lib/aws/Aws/data/elasticfilesystem/2015-02-01/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticfilesystem/2015-02-01/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeFileSystems', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DeleteFileSystem', 'input' => [ 'FileSystemId' => 'fs-c5a1446c', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/elasticloadbalancing/2012-06-01/api-2.json.php b/lib/aws/Aws/data/elasticloadbalancing/2012-06-01/api-2.json.php new file mode 100644 index 0000000..2d4d4e4 --- /dev/null +++ b/lib/aws/Aws/data/elasticloadbalancing/2012-06-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticloadbalancing/2012-06-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2012-06-01', 'endpointPrefix' => 'elasticloadbalancing', 'protocol' => 'query', 'serviceFullName' => 'Elastic Load Balancing', 'serviceId' => 'Elastic Load Balancing', 'signatureVersion' => 'v4', 'uid' => 'elasticloadbalancing-2012-06-01', 'xmlNamespace' => 'http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/', ], 'operations' => [ 'AddTags' => [ 'name' => 'AddTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddTagsInput', ], 'output' => [ 'shape' => 'AddTagsOutput', 'resultWrapper' => 'AddTagsResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], [ 'shape' => 'TooManyTagsException', ], [ 'shape' => 'DuplicateTagKeysException', ], ], ], 'ApplySecurityGroupsToLoadBalancer' => [ 'name' => 'ApplySecurityGroupsToLoadBalancer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ApplySecurityGroupsToLoadBalancerInput', ], 'output' => [ 'shape' => 'ApplySecurityGroupsToLoadBalancerOutput', 'resultWrapper' => 'ApplySecurityGroupsToLoadBalancerResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], [ 'shape' => 'InvalidSecurityGroupException', ], ], ], 'AttachLoadBalancerToSubnets' => [ 'name' => 'AttachLoadBalancerToSubnets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachLoadBalancerToSubnetsInput', ], 'output' => [ 'shape' => 'AttachLoadBalancerToSubnetsOutput', 'resultWrapper' => 'AttachLoadBalancerToSubnetsResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], [ 'shape' => 'SubnetNotFoundException', ], [ 'shape' => 'InvalidSubnetException', ], ], ], 'ConfigureHealthCheck' => [ 'name' => 'ConfigureHealthCheck', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ConfigureHealthCheckInput', ], 'output' => [ 'shape' => 'ConfigureHealthCheckOutput', 'resultWrapper' => 'ConfigureHealthCheckResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], ], ], 'CreateAppCookieStickinessPolicy' => [ 'name' => 'CreateAppCookieStickinessPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAppCookieStickinessPolicyInput', ], 'output' => [ 'shape' => 'CreateAppCookieStickinessPolicyOutput', 'resultWrapper' => 'CreateAppCookieStickinessPolicyResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], [ 'shape' => 'DuplicatePolicyNameException', ], [ 'shape' => 'TooManyPoliciesException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], ], ], 'CreateLBCookieStickinessPolicy' => [ 'name' => 'CreateLBCookieStickinessPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLBCookieStickinessPolicyInput', ], 'output' => [ 'shape' => 'CreateLBCookieStickinessPolicyOutput', 'resultWrapper' => 'CreateLBCookieStickinessPolicyResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], [ 'shape' => 'DuplicatePolicyNameException', ], [ 'shape' => 'TooManyPoliciesException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], ], ], 'CreateLoadBalancer' => [ 'name' => 'CreateLoadBalancer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAccessPointInput', ], 'output' => [ 'shape' => 'CreateAccessPointOutput', 'resultWrapper' => 'CreateLoadBalancerResult', ], 'errors' => [ [ 'shape' => 'DuplicateAccessPointNameException', ], [ 'shape' => 'TooManyAccessPointsException', ], [ 'shape' => 'CertificateNotFoundException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], [ 'shape' => 'SubnetNotFoundException', ], [ 'shape' => 'InvalidSubnetException', ], [ 'shape' => 'InvalidSecurityGroupException', ], [ 'shape' => 'InvalidSchemeException', ], [ 'shape' => 'TooManyTagsException', ], [ 'shape' => 'DuplicateTagKeysException', ], [ 'shape' => 'UnsupportedProtocolException', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'CreateLoadBalancerListeners' => [ 'name' => 'CreateLoadBalancerListeners', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLoadBalancerListenerInput', ], 'output' => [ 'shape' => 'CreateLoadBalancerListenerOutput', 'resultWrapper' => 'CreateLoadBalancerListenersResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], [ 'shape' => 'DuplicateListenerException', ], [ 'shape' => 'CertificateNotFoundException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], [ 'shape' => 'UnsupportedProtocolException', ], ], ], 'CreateLoadBalancerPolicy' => [ 'name' => 'CreateLoadBalancerPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLoadBalancerPolicyInput', ], 'output' => [ 'shape' => 'CreateLoadBalancerPolicyOutput', 'resultWrapper' => 'CreateLoadBalancerPolicyResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], [ 'shape' => 'PolicyTypeNotFoundException', ], [ 'shape' => 'DuplicatePolicyNameException', ], [ 'shape' => 'TooManyPoliciesException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], ], ], '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', ], ], ], 'DeleteLoadBalancerPolicy' => [ 'name' => 'DeleteLoadBalancerPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLoadBalancerPolicyInput', ], 'output' => [ 'shape' => 'DeleteLoadBalancerPolicyOutput', 'resultWrapper' => 'DeleteLoadBalancerPolicyResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], ], ], 'DeregisterInstancesFromLoadBalancer' => [ 'name' => 'DeregisterInstancesFromLoadBalancer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterEndPointsInput', ], 'output' => [ 'shape' => 'DeregisterEndPointsOutput', 'resultWrapper' => 'DeregisterInstancesFromLoadBalancerResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], [ 'shape' => 'InvalidEndPointException', ], ], ], 'DescribeAccountLimits' => [ 'name' => 'DescribeAccountLimits', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAccountLimitsInput', ], 'output' => [ 'shape' => 'DescribeAccountLimitsOutput', 'resultWrapper' => 'DescribeAccountLimitsResult', ], ], 'DescribeInstanceHealth' => [ 'name' => 'DescribeInstanceHealth', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEndPointStateInput', ], 'output' => [ 'shape' => 'DescribeEndPointStateOutput', 'resultWrapper' => 'DescribeInstanceHealthResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], [ 'shape' => 'InvalidEndPointException', ], ], ], 'DescribeLoadBalancerAttributes' => [ 'name' => 'DescribeLoadBalancerAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLoadBalancerAttributesInput', ], 'output' => [ 'shape' => 'DescribeLoadBalancerAttributesOutput', 'resultWrapper' => 'DescribeLoadBalancerAttributesResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], [ 'shape' => 'LoadBalancerAttributeNotFoundException', ], ], ], 'DescribeLoadBalancerPolicies' => [ 'name' => 'DescribeLoadBalancerPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLoadBalancerPoliciesInput', ], 'output' => [ 'shape' => 'DescribeLoadBalancerPoliciesOutput', 'resultWrapper' => 'DescribeLoadBalancerPoliciesResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], [ 'shape' => 'PolicyNotFoundException', ], ], ], 'DescribeLoadBalancerPolicyTypes' => [ 'name' => 'DescribeLoadBalancerPolicyTypes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLoadBalancerPolicyTypesInput', ], 'output' => [ 'shape' => 'DescribeLoadBalancerPolicyTypesOutput', 'resultWrapper' => 'DescribeLoadBalancerPolicyTypesResult', ], 'errors' => [ [ 'shape' => 'PolicyTypeNotFoundException', ], ], ], 'DescribeLoadBalancers' => [ 'name' => 'DescribeLoadBalancers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAccessPointsInput', ], 'output' => [ 'shape' => 'DescribeAccessPointsOutput', 'resultWrapper' => 'DescribeLoadBalancersResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], [ 'shape' => 'DependencyThrottleException', ], ], ], 'DescribeTags' => [ 'name' => 'DescribeTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTagsInput', ], 'output' => [ 'shape' => 'DescribeTagsOutput', 'resultWrapper' => 'DescribeTagsResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], ], ], 'DetachLoadBalancerFromSubnets' => [ 'name' => 'DetachLoadBalancerFromSubnets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachLoadBalancerFromSubnetsInput', ], 'output' => [ 'shape' => 'DetachLoadBalancerFromSubnetsOutput', 'resultWrapper' => 'DetachLoadBalancerFromSubnetsResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], ], ], 'DisableAvailabilityZonesForLoadBalancer' => [ 'name' => 'DisableAvailabilityZonesForLoadBalancer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveAvailabilityZonesInput', ], 'output' => [ 'shape' => 'RemoveAvailabilityZonesOutput', 'resultWrapper' => 'DisableAvailabilityZonesForLoadBalancerResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], ], ], 'EnableAvailabilityZonesForLoadBalancer' => [ 'name' => 'EnableAvailabilityZonesForLoadBalancer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddAvailabilityZonesInput', ], 'output' => [ 'shape' => 'AddAvailabilityZonesOutput', 'resultWrapper' => 'EnableAvailabilityZonesForLoadBalancerResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], ], ], 'ModifyLoadBalancerAttributes' => [ 'name' => 'ModifyLoadBalancerAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyLoadBalancerAttributesInput', ], 'output' => [ 'shape' => 'ModifyLoadBalancerAttributesOutput', 'resultWrapper' => 'ModifyLoadBalancerAttributesResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], [ 'shape' => 'LoadBalancerAttributeNotFoundException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], ], ], 'RegisterInstancesWithLoadBalancer' => [ 'name' => 'RegisterInstancesWithLoadBalancer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterEndPointsInput', ], 'output' => [ 'shape' => 'RegisterEndPointsOutput', 'resultWrapper' => 'RegisterInstancesWithLoadBalancerResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], [ 'shape' => 'InvalidEndPointException', ], ], ], 'RemoveTags' => [ 'name' => 'RemoveTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveTagsInput', ], 'output' => [ 'shape' => 'RemoveTagsOutput', 'resultWrapper' => 'RemoveTagsResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], ], ], 'SetLoadBalancerListenerSSLCertificate' => [ 'name' => 'SetLoadBalancerListenerSSLCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetLoadBalancerListenerSSLCertificateInput', ], 'output' => [ 'shape' => 'SetLoadBalancerListenerSSLCertificateOutput', 'resultWrapper' => 'SetLoadBalancerListenerSSLCertificateResult', ], 'errors' => [ [ 'shape' => 'CertificateNotFoundException', ], [ 'shape' => 'AccessPointNotFoundException', ], [ 'shape' => 'ListenerNotFoundException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], [ 'shape' => 'UnsupportedProtocolException', ], ], ], 'SetLoadBalancerPoliciesForBackendServer' => [ 'name' => 'SetLoadBalancerPoliciesForBackendServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetLoadBalancerPoliciesForBackendServerInput', ], 'output' => [ 'shape' => 'SetLoadBalancerPoliciesForBackendServerOutput', 'resultWrapper' => 'SetLoadBalancerPoliciesForBackendServerResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], [ 'shape' => 'PolicyNotFoundException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], ], ], 'SetLoadBalancerPoliciesOfListener' => [ 'name' => 'SetLoadBalancerPoliciesOfListener', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetLoadBalancerPoliciesOfListenerInput', ], 'output' => [ 'shape' => 'SetLoadBalancerPoliciesOfListenerOutput', 'resultWrapper' => 'SetLoadBalancerPoliciesOfListenerResult', ], 'errors' => [ [ 'shape' => 'AccessPointNotFoundException', ], [ 'shape' => 'PolicyNotFoundException', ], [ 'shape' => 'ListenerNotFoundException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], ], ], ], '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' => 'AdditionalAttributeKey', ], 'Value' => [ 'shape' => 'AdditionalAttributeValue', ], ], ], 'AdditionalAttributeKey' => [ 'type' => 'string', 'max' => 256, 'pattern' => '^[a-zA-Z0-9.]+$', ], 'AdditionalAttributeValue' => [ 'type' => 'string', 'max' => 256, 'pattern' => '^[a-zA-Z0-9.]+$', ], 'AdditionalAttributes' => [ 'type' => 'list', 'member' => [ 'shape' => 'AdditionalAttribute', ], 'max' => 10, ], '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' => [], ], 'DependencyThrottleException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DependencyThrottle', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], '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', ], ], ], 'DescribeAccountLimitsInput' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'Marker', ], 'PageSize' => [ 'shape' => 'PageSize', ], ], ], 'DescribeAccountLimitsOutput' => [ 'type' => 'structure', 'members' => [ 'Limits' => [ 'shape' => 'Limits', ], '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', 'max' => 300, 'min' => 5, ], 'HealthCheckTarget' => [ 'type' => 'string', ], 'HealthCheckTimeout' => [ 'type' => 'integer', 'max' => 60, 'min' => 2, ], 'HealthyThreshold' => [ 'type' => 'integer', 'max' => 10, 'min' => 2, ], 'IdleTimeout' => [ 'type' => 'integer', 'max' => 3600, 'min' => 1, ], 'Instance' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], ], ], 'InstanceId' => [ 'type' => 'string', ], 'InstancePort' => [ 'type' => 'integer', 'max' => 65535, 'min' => 1, ], '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', ], ], ], 'Limit' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'Name', ], 'Max' => [ 'shape' => 'Max', ], ], ], 'Limits' => [ 'type' => 'list', 'member' => [ 'shape' => 'Limit', ], ], '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', ], 'max' => 20, 'min' => 1, ], 'LoadBalancerScheme' => [ 'type' => 'string', ], 'Marker' => [ 'type' => 'string', ], 'Max' => [ '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', ], ], ], 'Name' => [ 'type' => 'string', ], 'OperationNotPermittedException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'OperationNotPermitted', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'PageSize' => [ 'type' => 'integer', 'max' => 400, 'min' => 1, ], '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', ], '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', 'max' => 128, 'min' => 1, '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', 'max' => 256, 'min' => 0, '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', 'max' => 10, 'min' => 2, ], 'UnsupportedProtocolException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'UnsupportedProtocol', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'VPCId' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/elasticloadbalancing/2012-06-01/paginators-1.json.php b/lib/aws/Aws/data/elasticloadbalancing/2012-06-01/paginators-1.json.php new file mode 100644 index 0000000..26292cb --- /dev/null +++ b/lib/aws/Aws/data/elasticloadbalancing/2012-06-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticloadbalancing/2012-06-01/paginators-1.json +return [ '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/Aws/data/elasticloadbalancing/2012-06-01/smoke.json.php b/lib/aws/Aws/data/elasticloadbalancing/2012-06-01/smoke.json.php new file mode 100644 index 0000000..013bb4c --- /dev/null +++ b/lib/aws/Aws/data/elasticloadbalancing/2012-06-01/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticloadbalancing/2012-06-01/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeLoadBalancers', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeLoadBalancers', 'input' => [ 'LoadBalancerNames' => [ 'fake_load_balancer', ], ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/elasticloadbalancing/2012-06-01/waiters-2.json.php b/lib/aws/Aws/data/elasticloadbalancing/2012-06-01/waiters-2.json.php new file mode 100644 index 0000000..a7fb41c --- /dev/null +++ b/lib/aws/Aws/data/elasticloadbalancing/2012-06-01/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticloadbalancing/2012-06-01/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'InstanceDeregistered' => [ 'delay' => 15, 'operation' => 'DescribeInstanceHealth', 'maxAttempts' => 40, 'acceptors' => [ [ 'expected' => 'OutOfService', 'matcher' => 'pathAll', 'state' => 'success', 'argument' => 'InstanceStates[].State', ], [ 'matcher' => 'error', 'expected' => 'InvalidInstance', 'state' => 'success', ], ], ], 'AnyInstanceInService' => [ 'acceptors' => [ [ 'argument' => 'InstanceStates[].State', 'expected' => 'InService', 'matcher' => 'pathAny', 'state' => 'success', ], ], 'delay' => 15, 'maxAttempts' => 40, 'operation' => 'DescribeInstanceHealth', ], 'InstanceInService' => [ 'acceptors' => [ [ 'argument' => 'InstanceStates[].State', 'expected' => 'InService', 'matcher' => 'pathAll', 'state' => 'success', ], [ 'matcher' => 'error', 'expected' => 'InvalidInstance', 'state' => 'retry', ], ], 'delay' => 15, 'maxAttempts' => 40, 'operation' => 'DescribeInstanceHealth', ], ],]; diff --git a/lib/aws/Aws/data/elasticloadbalancingv2/2015-12-01/api-2.json.php b/lib/aws/Aws/data/elasticloadbalancingv2/2015-12-01/api-2.json.php new file mode 100644 index 0000000..d4ca32b --- /dev/null +++ b/lib/aws/Aws/data/elasticloadbalancingv2/2015-12-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticloadbalancingv2/2015-12-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-12-01', 'endpointPrefix' => 'elasticloadbalancing', 'protocol' => 'query', 'serviceAbbreviation' => 'Elastic Load Balancing v2', 'serviceFullName' => 'Elastic Load Balancing', 'serviceId' => 'Elastic Load Balancing v2', 'signatureVersion' => 'v4', 'uid' => 'elasticloadbalancingv2-2015-12-01', 'xmlNamespace' => 'http://elasticloadbalancing.amazonaws.com/doc/2015-12-01/', ], 'operations' => [ 'AddListenerCertificates' => [ 'name' => 'AddListenerCertificates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddListenerCertificatesInput', ], 'output' => [ 'shape' => 'AddListenerCertificatesOutput', 'resultWrapper' => 'AddListenerCertificatesResult', ], 'errors' => [ [ 'shape' => 'ListenerNotFoundException', ], [ 'shape' => 'TooManyCertificatesException', ], [ 'shape' => 'CertificateNotFoundException', ], ], ], 'AddTags' => [ 'name' => 'AddTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddTagsInput', ], 'output' => [ 'shape' => 'AddTagsOutput', 'resultWrapper' => 'AddTagsResult', ], 'errors' => [ [ 'shape' => 'DuplicateTagKeysException', ], [ 'shape' => 'TooManyTagsException', ], [ 'shape' => 'LoadBalancerNotFoundException', ], [ 'shape' => 'TargetGroupNotFoundException', ], ], ], 'CreateListener' => [ 'name' => 'CreateListener', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateListenerInput', ], 'output' => [ 'shape' => 'CreateListenerOutput', 'resultWrapper' => 'CreateListenerResult', ], 'errors' => [ [ 'shape' => 'DuplicateListenerException', ], [ 'shape' => 'TooManyListenersException', ], [ 'shape' => 'TooManyCertificatesException', ], [ 'shape' => 'LoadBalancerNotFoundException', ], [ 'shape' => 'TargetGroupNotFoundException', ], [ 'shape' => 'TargetGroupAssociationLimitException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], [ 'shape' => 'IncompatibleProtocolsException', ], [ 'shape' => 'SSLPolicyNotFoundException', ], [ 'shape' => 'CertificateNotFoundException', ], [ 'shape' => 'UnsupportedProtocolException', ], [ 'shape' => 'TooManyRegistrationsForTargetIdException', ], [ 'shape' => 'TooManyTargetsException', ], [ 'shape' => 'TooManyActionsException', ], [ 'shape' => 'InvalidLoadBalancerActionException', ], ], ], 'CreateLoadBalancer' => [ 'name' => 'CreateLoadBalancer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLoadBalancerInput', ], 'output' => [ 'shape' => 'CreateLoadBalancerOutput', 'resultWrapper' => 'CreateLoadBalancerResult', ], 'errors' => [ [ 'shape' => 'DuplicateLoadBalancerNameException', ], [ 'shape' => 'TooManyLoadBalancersException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], [ 'shape' => 'SubnetNotFoundException', ], [ 'shape' => 'InvalidSubnetException', ], [ 'shape' => 'InvalidSecurityGroupException', ], [ 'shape' => 'InvalidSchemeException', ], [ 'shape' => 'TooManyTagsException', ], [ 'shape' => 'DuplicateTagKeysException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'AllocationIdNotFoundException', ], [ 'shape' => 'AvailabilityZoneNotSupportedException', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'CreateRule' => [ 'name' => 'CreateRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRuleInput', ], 'output' => [ 'shape' => 'CreateRuleOutput', 'resultWrapper' => 'CreateRuleResult', ], 'errors' => [ [ 'shape' => 'PriorityInUseException', ], [ 'shape' => 'TooManyTargetGroupsException', ], [ 'shape' => 'TooManyRulesException', ], [ 'shape' => 'TargetGroupAssociationLimitException', ], [ 'shape' => 'IncompatibleProtocolsException', ], [ 'shape' => 'ListenerNotFoundException', ], [ 'shape' => 'TargetGroupNotFoundException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], [ 'shape' => 'TooManyRegistrationsForTargetIdException', ], [ 'shape' => 'TooManyTargetsException', ], [ 'shape' => 'UnsupportedProtocolException', ], [ 'shape' => 'TooManyActionsException', ], [ 'shape' => 'InvalidLoadBalancerActionException', ], ], ], 'CreateTargetGroup' => [ 'name' => 'CreateTargetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTargetGroupInput', ], 'output' => [ 'shape' => 'CreateTargetGroupOutput', 'resultWrapper' => 'CreateTargetGroupResult', ], 'errors' => [ [ 'shape' => 'DuplicateTargetGroupNameException', ], [ 'shape' => 'TooManyTargetGroupsException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], ], ], 'DeleteListener' => [ 'name' => 'DeleteListener', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteListenerInput', ], 'output' => [ 'shape' => 'DeleteListenerOutput', 'resultWrapper' => 'DeleteListenerResult', ], 'errors' => [ [ 'shape' => 'ListenerNotFoundException', ], ], ], 'DeleteLoadBalancer' => [ 'name' => 'DeleteLoadBalancer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLoadBalancerInput', ], 'output' => [ 'shape' => 'DeleteLoadBalancerOutput', 'resultWrapper' => 'DeleteLoadBalancerResult', ], 'errors' => [ [ 'shape' => 'LoadBalancerNotFoundException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'ResourceInUseException', ], ], ], 'DeleteRule' => [ 'name' => 'DeleteRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRuleInput', ], 'output' => [ 'shape' => 'DeleteRuleOutput', 'resultWrapper' => 'DeleteRuleResult', ], 'errors' => [ [ 'shape' => 'RuleNotFoundException', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'DeleteTargetGroup' => [ 'name' => 'DeleteTargetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTargetGroupInput', ], 'output' => [ 'shape' => 'DeleteTargetGroupOutput', 'resultWrapper' => 'DeleteTargetGroupResult', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], ], ], 'DeregisterTargets' => [ 'name' => 'DeregisterTargets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterTargetsInput', ], 'output' => [ 'shape' => 'DeregisterTargetsOutput', 'resultWrapper' => 'DeregisterTargetsResult', ], 'errors' => [ [ 'shape' => 'TargetGroupNotFoundException', ], [ 'shape' => 'InvalidTargetException', ], ], ], 'DescribeAccountLimits' => [ 'name' => 'DescribeAccountLimits', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAccountLimitsInput', ], 'output' => [ 'shape' => 'DescribeAccountLimitsOutput', 'resultWrapper' => 'DescribeAccountLimitsResult', ], ], 'DescribeListenerCertificates' => [ 'name' => 'DescribeListenerCertificates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeListenerCertificatesInput', ], 'output' => [ 'shape' => 'DescribeListenerCertificatesOutput', 'resultWrapper' => 'DescribeListenerCertificatesResult', ], 'errors' => [ [ 'shape' => 'ListenerNotFoundException', ], ], ], 'DescribeListeners' => [ 'name' => 'DescribeListeners', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeListenersInput', ], 'output' => [ 'shape' => 'DescribeListenersOutput', 'resultWrapper' => 'DescribeListenersResult', ], 'errors' => [ [ 'shape' => 'ListenerNotFoundException', ], [ 'shape' => 'LoadBalancerNotFoundException', ], [ 'shape' => 'UnsupportedProtocolException', ], ], ], 'DescribeLoadBalancerAttributes' => [ 'name' => 'DescribeLoadBalancerAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLoadBalancerAttributesInput', ], 'output' => [ 'shape' => 'DescribeLoadBalancerAttributesOutput', 'resultWrapper' => 'DescribeLoadBalancerAttributesResult', ], 'errors' => [ [ 'shape' => 'LoadBalancerNotFoundException', ], ], ], 'DescribeLoadBalancers' => [ 'name' => 'DescribeLoadBalancers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLoadBalancersInput', ], 'output' => [ 'shape' => 'DescribeLoadBalancersOutput', 'resultWrapper' => 'DescribeLoadBalancersResult', ], 'errors' => [ [ 'shape' => 'LoadBalancerNotFoundException', ], ], ], 'DescribeRules' => [ 'name' => 'DescribeRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRulesInput', ], 'output' => [ 'shape' => 'DescribeRulesOutput', 'resultWrapper' => 'DescribeRulesResult', ], 'errors' => [ [ 'shape' => 'ListenerNotFoundException', ], [ 'shape' => 'RuleNotFoundException', ], [ 'shape' => 'UnsupportedProtocolException', ], ], ], 'DescribeSSLPolicies' => [ 'name' => 'DescribeSSLPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSSLPoliciesInput', ], 'output' => [ 'shape' => 'DescribeSSLPoliciesOutput', 'resultWrapper' => 'DescribeSSLPoliciesResult', ], 'errors' => [ [ 'shape' => 'SSLPolicyNotFoundException', ], ], ], 'DescribeTags' => [ 'name' => 'DescribeTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTagsInput', ], 'output' => [ 'shape' => 'DescribeTagsOutput', 'resultWrapper' => 'DescribeTagsResult', ], 'errors' => [ [ 'shape' => 'LoadBalancerNotFoundException', ], [ 'shape' => 'TargetGroupNotFoundException', ], [ 'shape' => 'ListenerNotFoundException', ], [ 'shape' => 'RuleNotFoundException', ], ], ], 'DescribeTargetGroupAttributes' => [ 'name' => 'DescribeTargetGroupAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTargetGroupAttributesInput', ], 'output' => [ 'shape' => 'DescribeTargetGroupAttributesOutput', 'resultWrapper' => 'DescribeTargetGroupAttributesResult', ], 'errors' => [ [ 'shape' => 'TargetGroupNotFoundException', ], ], ], 'DescribeTargetGroups' => [ 'name' => 'DescribeTargetGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTargetGroupsInput', ], 'output' => [ 'shape' => 'DescribeTargetGroupsOutput', 'resultWrapper' => 'DescribeTargetGroupsResult', ], 'errors' => [ [ 'shape' => 'LoadBalancerNotFoundException', ], [ 'shape' => 'TargetGroupNotFoundException', ], ], ], 'DescribeTargetHealth' => [ 'name' => 'DescribeTargetHealth', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTargetHealthInput', ], 'output' => [ 'shape' => 'DescribeTargetHealthOutput', 'resultWrapper' => 'DescribeTargetHealthResult', ], 'errors' => [ [ 'shape' => 'InvalidTargetException', ], [ 'shape' => 'TargetGroupNotFoundException', ], [ 'shape' => 'HealthUnavailableException', ], ], ], 'ModifyListener' => [ 'name' => 'ModifyListener', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyListenerInput', ], 'output' => [ 'shape' => 'ModifyListenerOutput', 'resultWrapper' => 'ModifyListenerResult', ], 'errors' => [ [ 'shape' => 'DuplicateListenerException', ], [ 'shape' => 'TooManyListenersException', ], [ 'shape' => 'TooManyCertificatesException', ], [ 'shape' => 'ListenerNotFoundException', ], [ 'shape' => 'TargetGroupNotFoundException', ], [ 'shape' => 'TargetGroupAssociationLimitException', ], [ 'shape' => 'IncompatibleProtocolsException', ], [ 'shape' => 'SSLPolicyNotFoundException', ], [ 'shape' => 'CertificateNotFoundException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], [ 'shape' => 'UnsupportedProtocolException', ], [ 'shape' => 'TooManyRegistrationsForTargetIdException', ], [ 'shape' => 'TooManyTargetsException', ], [ 'shape' => 'TooManyActionsException', ], [ 'shape' => 'InvalidLoadBalancerActionException', ], ], ], 'ModifyLoadBalancerAttributes' => [ 'name' => 'ModifyLoadBalancerAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyLoadBalancerAttributesInput', ], 'output' => [ 'shape' => 'ModifyLoadBalancerAttributesOutput', 'resultWrapper' => 'ModifyLoadBalancerAttributesResult', ], 'errors' => [ [ 'shape' => 'LoadBalancerNotFoundException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], ], ], 'ModifyRule' => [ 'name' => 'ModifyRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyRuleInput', ], 'output' => [ 'shape' => 'ModifyRuleOutput', 'resultWrapper' => 'ModifyRuleResult', ], 'errors' => [ [ 'shape' => 'TargetGroupAssociationLimitException', ], [ 'shape' => 'IncompatibleProtocolsException', ], [ 'shape' => 'RuleNotFoundException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'TooManyRegistrationsForTargetIdException', ], [ 'shape' => 'TooManyTargetsException', ], [ 'shape' => 'TargetGroupNotFoundException', ], [ 'shape' => 'UnsupportedProtocolException', ], [ 'shape' => 'TooManyActionsException', ], [ 'shape' => 'InvalidLoadBalancerActionException', ], ], ], 'ModifyTargetGroup' => [ 'name' => 'ModifyTargetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyTargetGroupInput', ], 'output' => [ 'shape' => 'ModifyTargetGroupOutput', 'resultWrapper' => 'ModifyTargetGroupResult', ], 'errors' => [ [ 'shape' => 'TargetGroupNotFoundException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], ], ], 'ModifyTargetGroupAttributes' => [ 'name' => 'ModifyTargetGroupAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyTargetGroupAttributesInput', ], 'output' => [ 'shape' => 'ModifyTargetGroupAttributesOutput', 'resultWrapper' => 'ModifyTargetGroupAttributesResult', ], 'errors' => [ [ 'shape' => 'TargetGroupNotFoundException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], ], ], 'RegisterTargets' => [ 'name' => 'RegisterTargets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterTargetsInput', ], 'output' => [ 'shape' => 'RegisterTargetsOutput', 'resultWrapper' => 'RegisterTargetsResult', ], 'errors' => [ [ 'shape' => 'TargetGroupNotFoundException', ], [ 'shape' => 'TooManyTargetsException', ], [ 'shape' => 'InvalidTargetException', ], [ 'shape' => 'TooManyRegistrationsForTargetIdException', ], ], ], 'RemoveListenerCertificates' => [ 'name' => 'RemoveListenerCertificates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveListenerCertificatesInput', ], 'output' => [ 'shape' => 'RemoveListenerCertificatesOutput', 'resultWrapper' => 'RemoveListenerCertificatesResult', ], 'errors' => [ [ 'shape' => 'ListenerNotFoundException', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'RemoveTags' => [ 'name' => 'RemoveTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveTagsInput', ], 'output' => [ 'shape' => 'RemoveTagsOutput', 'resultWrapper' => 'RemoveTagsResult', ], 'errors' => [ [ 'shape' => 'LoadBalancerNotFoundException', ], [ 'shape' => 'TargetGroupNotFoundException', ], [ 'shape' => 'ListenerNotFoundException', ], [ 'shape' => 'RuleNotFoundException', ], [ 'shape' => 'TooManyTagsException', ], ], ], 'SetIpAddressType' => [ 'name' => 'SetIpAddressType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetIpAddressTypeInput', ], 'output' => [ 'shape' => 'SetIpAddressTypeOutput', 'resultWrapper' => 'SetIpAddressTypeResult', ], 'errors' => [ [ 'shape' => 'LoadBalancerNotFoundException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], [ 'shape' => 'InvalidSubnetException', ], ], ], 'SetRulePriorities' => [ 'name' => 'SetRulePriorities', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetRulePrioritiesInput', ], 'output' => [ 'shape' => 'SetRulePrioritiesOutput', 'resultWrapper' => 'SetRulePrioritiesResult', ], 'errors' => [ [ 'shape' => 'RuleNotFoundException', ], [ 'shape' => 'PriorityInUseException', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'SetSecurityGroups' => [ 'name' => 'SetSecurityGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetSecurityGroupsInput', ], 'output' => [ 'shape' => 'SetSecurityGroupsOutput', 'resultWrapper' => 'SetSecurityGroupsResult', ], 'errors' => [ [ 'shape' => 'LoadBalancerNotFoundException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], [ 'shape' => 'InvalidSecurityGroupException', ], ], ], 'SetSubnets' => [ 'name' => 'SetSubnets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetSubnetsInput', ], 'output' => [ 'shape' => 'SetSubnetsOutput', 'resultWrapper' => 'SetSubnetsResult', ], 'errors' => [ [ 'shape' => 'LoadBalancerNotFoundException', ], [ 'shape' => 'InvalidConfigurationRequestException', ], [ 'shape' => 'SubnetNotFoundException', ], [ 'shape' => 'InvalidSubnetException', ], [ 'shape' => 'AllocationIdNotFoundException', ], [ 'shape' => 'AvailabilityZoneNotSupportedException', ], ], ], ], 'shapes' => [ 'Action' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'ActionTypeEnum', ], 'TargetGroupArn' => [ 'shape' => 'TargetGroupArn', ], 'AuthenticateOidcConfig' => [ 'shape' => 'AuthenticateOidcActionConfig', ], 'AuthenticateCognitoConfig' => [ 'shape' => 'AuthenticateCognitoActionConfig', ], 'Order' => [ 'shape' => 'ActionOrder', ], 'RedirectConfig' => [ 'shape' => 'RedirectActionConfig', ], 'FixedResponseConfig' => [ 'shape' => 'FixedResponseActionConfig', ], ], ], 'ActionOrder' => [ 'type' => 'integer', 'max' => 50000, 'min' => 1, ], 'ActionTypeEnum' => [ 'type' => 'string', 'enum' => [ 'forward', 'authenticate-oidc', 'authenticate-cognito', 'redirect', 'fixed-response', ], ], 'Actions' => [ 'type' => 'list', 'member' => [ 'shape' => 'Action', ], ], 'AddListenerCertificatesInput' => [ 'type' => 'structure', 'required' => [ 'ListenerArn', 'Certificates', ], 'members' => [ 'ListenerArn' => [ 'shape' => 'ListenerArn', ], 'Certificates' => [ 'shape' => 'CertificateList', ], ], ], 'AddListenerCertificatesOutput' => [ 'type' => 'structure', 'members' => [ 'Certificates' => [ 'shape' => 'CertificateList', ], ], ], 'AddTagsInput' => [ 'type' => 'structure', 'required' => [ 'ResourceArns', 'Tags', ], 'members' => [ 'ResourceArns' => [ 'shape' => 'ResourceArns', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'AddTagsOutput' => [ 'type' => 'structure', 'members' => [], ], 'AllocationId' => [ 'type' => 'string', ], 'AllocationIdNotFoundException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'AllocationIdNotFound', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'AuthenticateCognitoActionAuthenticationRequestExtraParams' => [ 'type' => 'map', 'key' => [ 'shape' => 'AuthenticateCognitoActionAuthenticationRequestParamName', ], 'value' => [ 'shape' => 'AuthenticateCognitoActionAuthenticationRequestParamValue', ], ], 'AuthenticateCognitoActionAuthenticationRequestParamName' => [ 'type' => 'string', ], 'AuthenticateCognitoActionAuthenticationRequestParamValue' => [ 'type' => 'string', ], 'AuthenticateCognitoActionConditionalBehaviorEnum' => [ 'type' => 'string', 'enum' => [ 'deny', 'allow', 'authenticate', ], ], 'AuthenticateCognitoActionConfig' => [ 'type' => 'structure', 'required' => [ 'UserPoolArn', 'UserPoolClientId', 'UserPoolDomain', ], 'members' => [ 'UserPoolArn' => [ 'shape' => 'AuthenticateCognitoActionUserPoolArn', ], 'UserPoolClientId' => [ 'shape' => 'AuthenticateCognitoActionUserPoolClientId', ], 'UserPoolDomain' => [ 'shape' => 'AuthenticateCognitoActionUserPoolDomain', ], 'SessionCookieName' => [ 'shape' => 'AuthenticateCognitoActionSessionCookieName', ], 'Scope' => [ 'shape' => 'AuthenticateCognitoActionScope', ], 'SessionTimeout' => [ 'shape' => 'AuthenticateCognitoActionSessionTimeout', ], 'AuthenticationRequestExtraParams' => [ 'shape' => 'AuthenticateCognitoActionAuthenticationRequestExtraParams', ], 'OnUnauthenticatedRequest' => [ 'shape' => 'AuthenticateCognitoActionConditionalBehaviorEnum', ], ], ], 'AuthenticateCognitoActionScope' => [ 'type' => 'string', ], 'AuthenticateCognitoActionSessionCookieName' => [ 'type' => 'string', ], 'AuthenticateCognitoActionSessionTimeout' => [ 'type' => 'long', ], 'AuthenticateCognitoActionUserPoolArn' => [ 'type' => 'string', ], 'AuthenticateCognitoActionUserPoolClientId' => [ 'type' => 'string', ], 'AuthenticateCognitoActionUserPoolDomain' => [ 'type' => 'string', ], 'AuthenticateOidcActionAuthenticationRequestExtraParams' => [ 'type' => 'map', 'key' => [ 'shape' => 'AuthenticateOidcActionAuthenticationRequestParamName', ], 'value' => [ 'shape' => 'AuthenticateOidcActionAuthenticationRequestParamValue', ], ], 'AuthenticateOidcActionAuthenticationRequestParamName' => [ 'type' => 'string', ], 'AuthenticateOidcActionAuthenticationRequestParamValue' => [ 'type' => 'string', ], 'AuthenticateOidcActionAuthorizationEndpoint' => [ 'type' => 'string', ], 'AuthenticateOidcActionClientId' => [ 'type' => 'string', ], 'AuthenticateOidcActionClientSecret' => [ 'type' => 'string', ], 'AuthenticateOidcActionConditionalBehaviorEnum' => [ 'type' => 'string', 'enum' => [ 'deny', 'allow', 'authenticate', ], ], 'AuthenticateOidcActionConfig' => [ 'type' => 'structure', 'required' => [ 'Issuer', 'AuthorizationEndpoint', 'TokenEndpoint', 'UserInfoEndpoint', 'ClientId', ], 'members' => [ 'Issuer' => [ 'shape' => 'AuthenticateOidcActionIssuer', ], 'AuthorizationEndpoint' => [ 'shape' => 'AuthenticateOidcActionAuthorizationEndpoint', ], 'TokenEndpoint' => [ 'shape' => 'AuthenticateOidcActionTokenEndpoint', ], 'UserInfoEndpoint' => [ 'shape' => 'AuthenticateOidcActionUserInfoEndpoint', ], 'ClientId' => [ 'shape' => 'AuthenticateOidcActionClientId', ], 'ClientSecret' => [ 'shape' => 'AuthenticateOidcActionClientSecret', ], 'SessionCookieName' => [ 'shape' => 'AuthenticateOidcActionSessionCookieName', ], 'Scope' => [ 'shape' => 'AuthenticateOidcActionScope', ], 'SessionTimeout' => [ 'shape' => 'AuthenticateOidcActionSessionTimeout', ], 'AuthenticationRequestExtraParams' => [ 'shape' => 'AuthenticateOidcActionAuthenticationRequestExtraParams', ], 'OnUnauthenticatedRequest' => [ 'shape' => 'AuthenticateOidcActionConditionalBehaviorEnum', ], 'UseExistingClientSecret' => [ 'shape' => 'AuthenticateOidcActionUseExistingClientSecret', ], ], ], 'AuthenticateOidcActionIssuer' => [ 'type' => 'string', ], 'AuthenticateOidcActionScope' => [ 'type' => 'string', ], 'AuthenticateOidcActionSessionCookieName' => [ 'type' => 'string', ], 'AuthenticateOidcActionSessionTimeout' => [ 'type' => 'long', ], 'AuthenticateOidcActionTokenEndpoint' => [ 'type' => 'string', ], 'AuthenticateOidcActionUseExistingClientSecret' => [ 'type' => 'boolean', ], 'AuthenticateOidcActionUserInfoEndpoint' => [ 'type' => 'string', ], 'AvailabilityZone' => [ 'type' => 'structure', 'members' => [ 'ZoneName' => [ 'shape' => 'ZoneName', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'LoadBalancerAddresses' => [ 'shape' => 'LoadBalancerAddresses', ], ], ], 'AvailabilityZoneNotSupportedException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'AvailabilityZoneNotSupported', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'AvailabilityZones' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZone', ], ], 'CanonicalHostedZoneId' => [ 'type' => 'string', ], 'Certificate' => [ 'type' => 'structure', 'members' => [ 'CertificateArn' => [ 'shape' => 'CertificateArn', ], 'IsDefault' => [ 'shape' => 'Default', ], ], ], 'CertificateArn' => [ 'type' => 'string', ], 'CertificateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Certificate', ], ], 'CertificateNotFoundException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'CertificateNotFound', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'Cipher' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'CipherName', ], 'Priority' => [ 'shape' => 'CipherPriority', ], ], ], 'CipherName' => [ 'type' => 'string', ], 'CipherPriority' => [ 'type' => 'integer', ], 'Ciphers' => [ 'type' => 'list', 'member' => [ 'shape' => 'Cipher', ], ], 'ConditionFieldName' => [ 'type' => 'string', 'max' => 64, ], 'CreateListenerInput' => [ 'type' => 'structure', 'required' => [ 'LoadBalancerArn', 'Protocol', 'Port', 'DefaultActions', ], 'members' => [ 'LoadBalancerArn' => [ 'shape' => 'LoadBalancerArn', ], 'Protocol' => [ 'shape' => 'ProtocolEnum', ], 'Port' => [ 'shape' => 'Port', ], 'SslPolicy' => [ 'shape' => 'SslPolicyName', ], 'Certificates' => [ 'shape' => 'CertificateList', ], 'DefaultActions' => [ 'shape' => 'Actions', ], ], ], 'CreateListenerOutput' => [ 'type' => 'structure', 'members' => [ 'Listeners' => [ 'shape' => 'Listeners', ], ], ], 'CreateLoadBalancerInput' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'LoadBalancerName', ], 'Subnets' => [ 'shape' => 'Subnets', ], 'SubnetMappings' => [ 'shape' => 'SubnetMappings', ], 'SecurityGroups' => [ 'shape' => 'SecurityGroups', ], 'Scheme' => [ 'shape' => 'LoadBalancerSchemeEnum', ], 'Tags' => [ 'shape' => 'TagList', ], 'Type' => [ 'shape' => 'LoadBalancerTypeEnum', ], 'IpAddressType' => [ 'shape' => 'IpAddressType', ], ], ], 'CreateLoadBalancerOutput' => [ 'type' => 'structure', 'members' => [ 'LoadBalancers' => [ 'shape' => 'LoadBalancers', ], ], ], 'CreateRuleInput' => [ 'type' => 'structure', 'required' => [ 'ListenerArn', 'Conditions', 'Priority', 'Actions', ], 'members' => [ 'ListenerArn' => [ 'shape' => 'ListenerArn', ], 'Conditions' => [ 'shape' => 'RuleConditionList', ], 'Priority' => [ 'shape' => 'RulePriority', ], 'Actions' => [ 'shape' => 'Actions', ], ], ], 'CreateRuleOutput' => [ 'type' => 'structure', 'members' => [ 'Rules' => [ 'shape' => 'Rules', ], ], ], 'CreateTargetGroupInput' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'TargetGroupName', ], 'Protocol' => [ 'shape' => 'ProtocolEnum', ], 'Port' => [ 'shape' => 'Port', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'HealthCheckProtocol' => [ 'shape' => 'ProtocolEnum', ], 'HealthCheckPort' => [ 'shape' => 'HealthCheckPort', ], 'HealthCheckEnabled' => [ 'shape' => 'HealthCheckEnabled', ], 'HealthCheckPath' => [ 'shape' => 'Path', ], 'HealthCheckIntervalSeconds' => [ 'shape' => 'HealthCheckIntervalSeconds', ], 'HealthCheckTimeoutSeconds' => [ 'shape' => 'HealthCheckTimeoutSeconds', ], 'HealthyThresholdCount' => [ 'shape' => 'HealthCheckThresholdCount', ], 'UnhealthyThresholdCount' => [ 'shape' => 'HealthCheckThresholdCount', ], 'Matcher' => [ 'shape' => 'Matcher', ], 'TargetType' => [ 'shape' => 'TargetTypeEnum', ], ], ], 'CreateTargetGroupOutput' => [ 'type' => 'structure', 'members' => [ 'TargetGroups' => [ 'shape' => 'TargetGroups', ], ], ], 'CreatedTime' => [ 'type' => 'timestamp', ], 'DNSName' => [ 'type' => 'string', ], 'Default' => [ 'type' => 'boolean', ], 'DeleteListenerInput' => [ 'type' => 'structure', 'required' => [ 'ListenerArn', ], 'members' => [ 'ListenerArn' => [ 'shape' => 'ListenerArn', ], ], ], 'DeleteListenerOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeleteLoadBalancerInput' => [ 'type' => 'structure', 'required' => [ 'LoadBalancerArn', ], 'members' => [ 'LoadBalancerArn' => [ 'shape' => 'LoadBalancerArn', ], ], ], 'DeleteLoadBalancerOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeleteRuleInput' => [ 'type' => 'structure', 'required' => [ 'RuleArn', ], 'members' => [ 'RuleArn' => [ 'shape' => 'RuleArn', ], ], ], 'DeleteRuleOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeleteTargetGroupInput' => [ 'type' => 'structure', 'required' => [ 'TargetGroupArn', ], 'members' => [ 'TargetGroupArn' => [ 'shape' => 'TargetGroupArn', ], ], ], 'DeleteTargetGroupOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeregisterTargetsInput' => [ 'type' => 'structure', 'required' => [ 'TargetGroupArn', 'Targets', ], 'members' => [ 'TargetGroupArn' => [ 'shape' => 'TargetGroupArn', ], 'Targets' => [ 'shape' => 'TargetDescriptions', ], ], ], 'DeregisterTargetsOutput' => [ 'type' => 'structure', 'members' => [], ], 'DescribeAccountLimitsInput' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'Marker', ], 'PageSize' => [ 'shape' => 'PageSize', ], ], ], 'DescribeAccountLimitsOutput' => [ 'type' => 'structure', 'members' => [ 'Limits' => [ 'shape' => 'Limits', ], 'NextMarker' => [ 'shape' => 'Marker', ], ], ], 'DescribeListenerCertificatesInput' => [ 'type' => 'structure', 'required' => [ 'ListenerArn', ], 'members' => [ 'ListenerArn' => [ 'shape' => 'ListenerArn', ], 'Marker' => [ 'shape' => 'Marker', ], 'PageSize' => [ 'shape' => 'PageSize', ], ], ], 'DescribeListenerCertificatesOutput' => [ 'type' => 'structure', 'members' => [ 'Certificates' => [ 'shape' => 'CertificateList', ], 'NextMarker' => [ 'shape' => 'Marker', ], ], ], 'DescribeListenersInput' => [ 'type' => 'structure', 'members' => [ 'LoadBalancerArn' => [ 'shape' => 'LoadBalancerArn', ], 'ListenerArns' => [ 'shape' => 'ListenerArns', ], 'Marker' => [ 'shape' => 'Marker', ], 'PageSize' => [ 'shape' => 'PageSize', ], ], ], 'DescribeListenersOutput' => [ 'type' => 'structure', 'members' => [ 'Listeners' => [ 'shape' => 'Listeners', ], 'NextMarker' => [ 'shape' => 'Marker', ], ], ], 'DescribeLoadBalancerAttributesInput' => [ 'type' => 'structure', 'required' => [ 'LoadBalancerArn', ], 'members' => [ 'LoadBalancerArn' => [ 'shape' => 'LoadBalancerArn', ], ], ], 'DescribeLoadBalancerAttributesOutput' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'LoadBalancerAttributes', ], ], ], 'DescribeLoadBalancersInput' => [ 'type' => 'structure', 'members' => [ 'LoadBalancerArns' => [ 'shape' => 'LoadBalancerArns', ], 'Names' => [ 'shape' => 'LoadBalancerNames', ], 'Marker' => [ 'shape' => 'Marker', ], 'PageSize' => [ 'shape' => 'PageSize', ], ], ], 'DescribeLoadBalancersOutput' => [ 'type' => 'structure', 'members' => [ 'LoadBalancers' => [ 'shape' => 'LoadBalancers', ], 'NextMarker' => [ 'shape' => 'Marker', ], ], ], 'DescribeRulesInput' => [ 'type' => 'structure', 'members' => [ 'ListenerArn' => [ 'shape' => 'ListenerArn', ], 'RuleArns' => [ 'shape' => 'RuleArns', ], 'Marker' => [ 'shape' => 'Marker', ], 'PageSize' => [ 'shape' => 'PageSize', ], ], ], 'DescribeRulesOutput' => [ 'type' => 'structure', 'members' => [ 'Rules' => [ 'shape' => 'Rules', ], 'NextMarker' => [ 'shape' => 'Marker', ], ], ], 'DescribeSSLPoliciesInput' => [ 'type' => 'structure', 'members' => [ 'Names' => [ 'shape' => 'SslPolicyNames', ], 'Marker' => [ 'shape' => 'Marker', ], 'PageSize' => [ 'shape' => 'PageSize', ], ], ], 'DescribeSSLPoliciesOutput' => [ 'type' => 'structure', 'members' => [ 'SslPolicies' => [ 'shape' => 'SslPolicies', ], 'NextMarker' => [ 'shape' => 'Marker', ], ], ], 'DescribeTagsInput' => [ 'type' => 'structure', 'required' => [ 'ResourceArns', ], 'members' => [ 'ResourceArns' => [ 'shape' => 'ResourceArns', ], ], ], 'DescribeTagsOutput' => [ 'type' => 'structure', 'members' => [ 'TagDescriptions' => [ 'shape' => 'TagDescriptions', ], ], ], 'DescribeTargetGroupAttributesInput' => [ 'type' => 'structure', 'required' => [ 'TargetGroupArn', ], 'members' => [ 'TargetGroupArn' => [ 'shape' => 'TargetGroupArn', ], ], ], 'DescribeTargetGroupAttributesOutput' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'TargetGroupAttributes', ], ], ], 'DescribeTargetGroupsInput' => [ 'type' => 'structure', 'members' => [ 'LoadBalancerArn' => [ 'shape' => 'LoadBalancerArn', ], 'TargetGroupArns' => [ 'shape' => 'TargetGroupArns', ], 'Names' => [ 'shape' => 'TargetGroupNames', ], 'Marker' => [ 'shape' => 'Marker', ], 'PageSize' => [ 'shape' => 'PageSize', ], ], ], 'DescribeTargetGroupsOutput' => [ 'type' => 'structure', 'members' => [ 'TargetGroups' => [ 'shape' => 'TargetGroups', ], 'NextMarker' => [ 'shape' => 'Marker', ], ], ], 'DescribeTargetHealthInput' => [ 'type' => 'structure', 'required' => [ 'TargetGroupArn', ], 'members' => [ 'TargetGroupArn' => [ 'shape' => 'TargetGroupArn', ], 'Targets' => [ 'shape' => 'TargetDescriptions', ], ], ], 'DescribeTargetHealthOutput' => [ 'type' => 'structure', 'members' => [ 'TargetHealthDescriptions' => [ 'shape' => 'TargetHealthDescriptions', ], ], ], 'Description' => [ 'type' => 'string', ], 'DuplicateListenerException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DuplicateListener', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DuplicateLoadBalancerNameException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DuplicateLoadBalancerName', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DuplicateTagKeysException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DuplicateTagKeys', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DuplicateTargetGroupNameException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DuplicateTargetGroupName', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'FixedResponseActionConfig' => [ 'type' => 'structure', 'required' => [ 'StatusCode', ], 'members' => [ 'MessageBody' => [ 'shape' => 'FixedResponseActionMessage', ], 'StatusCode' => [ 'shape' => 'FixedResponseActionStatusCode', ], 'ContentType' => [ 'shape' => 'FixedResponseActionContentType', ], ], ], 'FixedResponseActionContentType' => [ 'type' => 'string', 'max' => 32, 'min' => 0, ], 'FixedResponseActionMessage' => [ 'type' => 'string', 'max' => 1024, 'min' => 0, ], 'FixedResponseActionStatusCode' => [ 'type' => 'string', 'pattern' => '^(2|4|5)\\d\\d$', ], 'HealthCheckEnabled' => [ 'type' => 'boolean', ], 'HealthCheckIntervalSeconds' => [ 'type' => 'integer', 'max' => 300, 'min' => 5, ], 'HealthCheckPort' => [ 'type' => 'string', ], 'HealthCheckThresholdCount' => [ 'type' => 'integer', 'max' => 10, 'min' => 2, ], 'HealthCheckTimeoutSeconds' => [ 'type' => 'integer', 'max' => 120, 'min' => 2, ], 'HealthUnavailableException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'HealthUnavailable', 'httpStatusCode' => 500, ], 'exception' => true, ], 'HostHeaderConditionConfig' => [ 'type' => 'structure', 'members' => [ 'Values' => [ 'shape' => 'ListOfString', ], ], ], 'HttpCode' => [ 'type' => 'string', ], 'HttpHeaderConditionConfig' => [ 'type' => 'structure', 'members' => [ 'HttpHeaderName' => [ 'shape' => 'HttpHeaderConditionName', ], 'Values' => [ 'shape' => 'ListOfString', ], ], ], 'HttpHeaderConditionName' => [ 'type' => 'string', ], 'HttpRequestMethodConditionConfig' => [ 'type' => 'structure', 'members' => [ 'Values' => [ 'shape' => 'ListOfString', ], ], ], 'IncompatibleProtocolsException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'IncompatibleProtocols', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidConfigurationRequestException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidConfigurationRequest', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidLoadBalancerActionException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidLoadBalancerAction', '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, ], 'InvalidTargetException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidTarget', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'IpAddress' => [ 'type' => 'string', ], 'IpAddressType' => [ 'type' => 'string', 'enum' => [ 'ipv4', 'dualstack', ], ], 'IsDefault' => [ 'type' => 'boolean', ], 'Limit' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'Name', ], 'Max' => [ 'shape' => 'Max', ], ], ], 'Limits' => [ 'type' => 'list', 'member' => [ 'shape' => 'Limit', ], ], 'ListOfString' => [ 'type' => 'list', 'member' => [ 'shape' => 'StringValue', ], ], 'Listener' => [ 'type' => 'structure', 'members' => [ 'ListenerArn' => [ 'shape' => 'ListenerArn', ], 'LoadBalancerArn' => [ 'shape' => 'LoadBalancerArn', ], 'Port' => [ 'shape' => 'Port', ], 'Protocol' => [ 'shape' => 'ProtocolEnum', ], 'Certificates' => [ 'shape' => 'CertificateList', ], 'SslPolicy' => [ 'shape' => 'SslPolicyName', ], 'DefaultActions' => [ 'shape' => 'Actions', ], ], ], 'ListenerArn' => [ 'type' => 'string', ], 'ListenerArns' => [ 'type' => 'list', 'member' => [ 'shape' => 'ListenerArn', ], ], 'ListenerNotFoundException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'ListenerNotFound', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'Listeners' => [ 'type' => 'list', 'member' => [ 'shape' => 'Listener', ], ], 'LoadBalancer' => [ 'type' => 'structure', 'members' => [ 'LoadBalancerArn' => [ 'shape' => 'LoadBalancerArn', ], 'DNSName' => [ 'shape' => 'DNSName', ], 'CanonicalHostedZoneId' => [ 'shape' => 'CanonicalHostedZoneId', ], 'CreatedTime' => [ 'shape' => 'CreatedTime', ], 'LoadBalancerName' => [ 'shape' => 'LoadBalancerName', ], 'Scheme' => [ 'shape' => 'LoadBalancerSchemeEnum', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'State' => [ 'shape' => 'LoadBalancerState', ], 'Type' => [ 'shape' => 'LoadBalancerTypeEnum', ], 'AvailabilityZones' => [ 'shape' => 'AvailabilityZones', ], 'SecurityGroups' => [ 'shape' => 'SecurityGroups', ], 'IpAddressType' => [ 'shape' => 'IpAddressType', ], ], ], 'LoadBalancerAddress' => [ 'type' => 'structure', 'members' => [ 'IpAddress' => [ 'shape' => 'IpAddress', ], 'AllocationId' => [ 'shape' => 'AllocationId', ], ], ], 'LoadBalancerAddresses' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadBalancerAddress', ], ], 'LoadBalancerArn' => [ 'type' => 'string', ], 'LoadBalancerArns' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadBalancerArn', ], ], 'LoadBalancerAttribute' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'LoadBalancerAttributeKey', ], 'Value' => [ 'shape' => 'LoadBalancerAttributeValue', ], ], ], 'LoadBalancerAttributeKey' => [ 'type' => 'string', 'max' => 256, 'pattern' => '^[a-zA-Z0-9._]+$', ], 'LoadBalancerAttributeValue' => [ 'type' => 'string', 'max' => 1024, ], 'LoadBalancerAttributes' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadBalancerAttribute', ], 'max' => 20, ], 'LoadBalancerName' => [ 'type' => 'string', ], 'LoadBalancerNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadBalancerName', ], ], 'LoadBalancerNotFoundException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'LoadBalancerNotFound', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'LoadBalancerSchemeEnum' => [ 'type' => 'string', 'enum' => [ 'internet-facing', 'internal', ], ], 'LoadBalancerState' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'LoadBalancerStateEnum', ], 'Reason' => [ 'shape' => 'StateReason', ], ], ], 'LoadBalancerStateEnum' => [ 'type' => 'string', 'enum' => [ 'active', 'provisioning', 'active_impaired', 'failed', ], ], 'LoadBalancerTypeEnum' => [ 'type' => 'string', 'enum' => [ 'application', 'network', ], ], 'LoadBalancers' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadBalancer', ], ], 'Marker' => [ 'type' => 'string', ], 'Matcher' => [ 'type' => 'structure', 'required' => [ 'HttpCode', ], 'members' => [ 'HttpCode' => [ 'shape' => 'HttpCode', ], ], ], 'Max' => [ 'type' => 'string', ], 'ModifyListenerInput' => [ 'type' => 'structure', 'required' => [ 'ListenerArn', ], 'members' => [ 'ListenerArn' => [ 'shape' => 'ListenerArn', ], 'Port' => [ 'shape' => 'Port', ], 'Protocol' => [ 'shape' => 'ProtocolEnum', ], 'SslPolicy' => [ 'shape' => 'SslPolicyName', ], 'Certificates' => [ 'shape' => 'CertificateList', ], 'DefaultActions' => [ 'shape' => 'Actions', ], ], ], 'ModifyListenerOutput' => [ 'type' => 'structure', 'members' => [ 'Listeners' => [ 'shape' => 'Listeners', ], ], ], 'ModifyLoadBalancerAttributesInput' => [ 'type' => 'structure', 'required' => [ 'LoadBalancerArn', 'Attributes', ], 'members' => [ 'LoadBalancerArn' => [ 'shape' => 'LoadBalancerArn', ], 'Attributes' => [ 'shape' => 'LoadBalancerAttributes', ], ], ], 'ModifyLoadBalancerAttributesOutput' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'LoadBalancerAttributes', ], ], ], 'ModifyRuleInput' => [ 'type' => 'structure', 'required' => [ 'RuleArn', ], 'members' => [ 'RuleArn' => [ 'shape' => 'RuleArn', ], 'Conditions' => [ 'shape' => 'RuleConditionList', ], 'Actions' => [ 'shape' => 'Actions', ], ], ], 'ModifyRuleOutput' => [ 'type' => 'structure', 'members' => [ 'Rules' => [ 'shape' => 'Rules', ], ], ], 'ModifyTargetGroupAttributesInput' => [ 'type' => 'structure', 'required' => [ 'TargetGroupArn', 'Attributes', ], 'members' => [ 'TargetGroupArn' => [ 'shape' => 'TargetGroupArn', ], 'Attributes' => [ 'shape' => 'TargetGroupAttributes', ], ], ], 'ModifyTargetGroupAttributesOutput' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'TargetGroupAttributes', ], ], ], 'ModifyTargetGroupInput' => [ 'type' => 'structure', 'required' => [ 'TargetGroupArn', ], 'members' => [ 'TargetGroupArn' => [ 'shape' => 'TargetGroupArn', ], 'HealthCheckProtocol' => [ 'shape' => 'ProtocolEnum', ], 'HealthCheckPort' => [ 'shape' => 'HealthCheckPort', ], 'HealthCheckPath' => [ 'shape' => 'Path', ], 'HealthCheckEnabled' => [ 'shape' => 'HealthCheckEnabled', ], 'HealthCheckIntervalSeconds' => [ 'shape' => 'HealthCheckIntervalSeconds', ], 'HealthCheckTimeoutSeconds' => [ 'shape' => 'HealthCheckTimeoutSeconds', ], 'HealthyThresholdCount' => [ 'shape' => 'HealthCheckThresholdCount', ], 'UnhealthyThresholdCount' => [ 'shape' => 'HealthCheckThresholdCount', ], 'Matcher' => [ 'shape' => 'Matcher', ], ], ], 'ModifyTargetGroupOutput' => [ 'type' => 'structure', 'members' => [ 'TargetGroups' => [ 'shape' => 'TargetGroups', ], ], ], 'Name' => [ 'type' => 'string', ], 'OperationNotPermittedException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'OperationNotPermitted', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'PageSize' => [ 'type' => 'integer', 'max' => 400, 'min' => 1, ], 'Path' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'PathPatternConditionConfig' => [ 'type' => 'structure', 'members' => [ 'Values' => [ 'shape' => 'ListOfString', ], ], ], 'Port' => [ 'type' => 'integer', 'max' => 65535, 'min' => 1, ], 'PriorityInUseException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'PriorityInUse', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ProtocolEnum' => [ 'type' => 'string', 'enum' => [ 'HTTP', 'HTTPS', 'TCP', 'TLS', ], ], 'QueryStringConditionConfig' => [ 'type' => 'structure', 'members' => [ 'Values' => [ 'shape' => 'QueryStringKeyValuePairList', ], ], ], 'QueryStringKeyValuePair' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'StringValue', ], 'Value' => [ 'shape' => 'StringValue', ], ], ], 'QueryStringKeyValuePairList' => [ 'type' => 'list', 'member' => [ 'shape' => 'QueryStringKeyValuePair', ], ], 'RedirectActionConfig' => [ 'type' => 'structure', 'required' => [ 'StatusCode', ], 'members' => [ 'Protocol' => [ 'shape' => 'RedirectActionProtocol', ], 'Port' => [ 'shape' => 'RedirectActionPort', ], 'Host' => [ 'shape' => 'RedirectActionHost', ], 'Path' => [ 'shape' => 'RedirectActionPath', ], 'Query' => [ 'shape' => 'RedirectActionQuery', ], 'StatusCode' => [ 'shape' => 'RedirectActionStatusCodeEnum', ], ], ], 'RedirectActionHost' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'RedirectActionPath' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'RedirectActionPort' => [ 'type' => 'string', ], 'RedirectActionProtocol' => [ 'type' => 'string', 'pattern' => '^(HTTPS?|#\\{protocol\\})$', ], 'RedirectActionQuery' => [ 'type' => 'string', 'max' => 128, 'min' => 0, ], 'RedirectActionStatusCodeEnum' => [ 'type' => 'string', 'enum' => [ 'HTTP_301', 'HTTP_302', ], ], 'RegisterTargetsInput' => [ 'type' => 'structure', 'required' => [ 'TargetGroupArn', 'Targets', ], 'members' => [ 'TargetGroupArn' => [ 'shape' => 'TargetGroupArn', ], 'Targets' => [ 'shape' => 'TargetDescriptions', ], ], ], 'RegisterTargetsOutput' => [ 'type' => 'structure', 'members' => [], ], 'RemoveListenerCertificatesInput' => [ 'type' => 'structure', 'required' => [ 'ListenerArn', 'Certificates', ], 'members' => [ 'ListenerArn' => [ 'shape' => 'ListenerArn', ], 'Certificates' => [ 'shape' => 'CertificateList', ], ], ], 'RemoveListenerCertificatesOutput' => [ 'type' => 'structure', 'members' => [], ], 'RemoveTagsInput' => [ 'type' => 'structure', 'required' => [ 'ResourceArns', 'TagKeys', ], 'members' => [ 'ResourceArns' => [ 'shape' => 'ResourceArns', ], 'TagKeys' => [ 'shape' => 'TagKeys', ], ], ], 'RemoveTagsOutput' => [ 'type' => 'structure', 'members' => [], ], 'ResourceArn' => [ 'type' => 'string', ], 'ResourceArns' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceArn', ], ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'ResourceInUse', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'Rule' => [ 'type' => 'structure', 'members' => [ 'RuleArn' => [ 'shape' => 'RuleArn', ], 'Priority' => [ 'shape' => 'String', ], 'Conditions' => [ 'shape' => 'RuleConditionList', ], 'Actions' => [ 'shape' => 'Actions', ], 'IsDefault' => [ 'shape' => 'IsDefault', ], ], ], 'RuleArn' => [ 'type' => 'string', ], 'RuleArns' => [ 'type' => 'list', 'member' => [ 'shape' => 'RuleArn', ], ], 'RuleCondition' => [ 'type' => 'structure', 'members' => [ 'Field' => [ 'shape' => 'ConditionFieldName', ], 'Values' => [ 'shape' => 'ListOfString', ], 'HostHeaderConfig' => [ 'shape' => 'HostHeaderConditionConfig', ], 'PathPatternConfig' => [ 'shape' => 'PathPatternConditionConfig', ], 'HttpHeaderConfig' => [ 'shape' => 'HttpHeaderConditionConfig', ], 'QueryStringConfig' => [ 'shape' => 'QueryStringConditionConfig', ], 'HttpRequestMethodConfig' => [ 'shape' => 'HttpRequestMethodConditionConfig', ], 'SourceIpConfig' => [ 'shape' => 'SourceIpConditionConfig', ], ], ], 'RuleConditionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RuleCondition', ], ], 'RuleNotFoundException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'RuleNotFound', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'RulePriority' => [ 'type' => 'integer', 'max' => 50000, 'min' => 1, ], 'RulePriorityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RulePriorityPair', ], ], 'RulePriorityPair' => [ 'type' => 'structure', 'members' => [ 'RuleArn' => [ 'shape' => 'RuleArn', ], 'Priority' => [ 'shape' => 'RulePriority', ], ], ], 'Rules' => [ 'type' => 'list', 'member' => [ 'shape' => 'Rule', ], ], 'SSLPolicyNotFoundException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'SSLPolicyNotFound', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'SecurityGroupId' => [ 'type' => 'string', ], 'SecurityGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', ], ], 'SetIpAddressTypeInput' => [ 'type' => 'structure', 'required' => [ 'LoadBalancerArn', 'IpAddressType', ], 'members' => [ 'LoadBalancerArn' => [ 'shape' => 'LoadBalancerArn', ], 'IpAddressType' => [ 'shape' => 'IpAddressType', ], ], ], 'SetIpAddressTypeOutput' => [ 'type' => 'structure', 'members' => [ 'IpAddressType' => [ 'shape' => 'IpAddressType', ], ], ], 'SetRulePrioritiesInput' => [ 'type' => 'structure', 'required' => [ 'RulePriorities', ], 'members' => [ 'RulePriorities' => [ 'shape' => 'RulePriorityList', ], ], ], 'SetRulePrioritiesOutput' => [ 'type' => 'structure', 'members' => [ 'Rules' => [ 'shape' => 'Rules', ], ], ], 'SetSecurityGroupsInput' => [ 'type' => 'structure', 'required' => [ 'LoadBalancerArn', 'SecurityGroups', ], 'members' => [ 'LoadBalancerArn' => [ 'shape' => 'LoadBalancerArn', ], 'SecurityGroups' => [ 'shape' => 'SecurityGroups', ], ], ], 'SetSecurityGroupsOutput' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupIds' => [ 'shape' => 'SecurityGroups', ], ], ], 'SetSubnetsInput' => [ 'type' => 'structure', 'required' => [ 'LoadBalancerArn', ], 'members' => [ 'LoadBalancerArn' => [ 'shape' => 'LoadBalancerArn', ], 'Subnets' => [ 'shape' => 'Subnets', ], 'SubnetMappings' => [ 'shape' => 'SubnetMappings', ], ], ], 'SetSubnetsOutput' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZones' => [ 'shape' => 'AvailabilityZones', ], ], ], 'SourceIpConditionConfig' => [ 'type' => 'structure', 'members' => [ 'Values' => [ 'shape' => 'ListOfString', ], ], ], 'SslPolicies' => [ 'type' => 'list', 'member' => [ 'shape' => 'SslPolicy', ], ], 'SslPolicy' => [ 'type' => 'structure', 'members' => [ 'SslProtocols' => [ 'shape' => 'SslProtocols', ], 'Ciphers' => [ 'shape' => 'Ciphers', ], 'Name' => [ 'shape' => 'SslPolicyName', ], ], ], 'SslPolicyName' => [ 'type' => 'string', ], 'SslPolicyNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'SslPolicyName', ], ], 'SslProtocol' => [ 'type' => 'string', ], 'SslProtocols' => [ 'type' => 'list', 'member' => [ 'shape' => 'SslProtocol', ], ], 'StateReason' => [ 'type' => 'string', ], 'String' => [ 'type' => 'string', ], 'StringValue' => [ 'type' => 'string', ], 'SubnetId' => [ 'type' => 'string', ], 'SubnetMapping' => [ 'type' => 'structure', 'members' => [ 'SubnetId' => [ 'shape' => 'SubnetId', ], 'AllocationId' => [ 'shape' => 'AllocationId', ], ], ], 'SubnetMappings' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetMapping', ], ], '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' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagDescriptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagDescription', ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeys' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'min' => 1, ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TargetDescription' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'TargetId', ], 'Port' => [ 'shape' => 'Port', ], 'AvailabilityZone' => [ 'shape' => 'ZoneName', ], ], ], 'TargetDescriptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetDescription', ], ], 'TargetGroup' => [ 'type' => 'structure', 'members' => [ 'TargetGroupArn' => [ 'shape' => 'TargetGroupArn', ], 'TargetGroupName' => [ 'shape' => 'TargetGroupName', ], 'Protocol' => [ 'shape' => 'ProtocolEnum', ], 'Port' => [ 'shape' => 'Port', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'HealthCheckProtocol' => [ 'shape' => 'ProtocolEnum', ], 'HealthCheckPort' => [ 'shape' => 'HealthCheckPort', ], 'HealthCheckEnabled' => [ 'shape' => 'HealthCheckEnabled', ], 'HealthCheckIntervalSeconds' => [ 'shape' => 'HealthCheckIntervalSeconds', ], 'HealthCheckTimeoutSeconds' => [ 'shape' => 'HealthCheckTimeoutSeconds', ], 'HealthyThresholdCount' => [ 'shape' => 'HealthCheckThresholdCount', ], 'UnhealthyThresholdCount' => [ 'shape' => 'HealthCheckThresholdCount', ], 'HealthCheckPath' => [ 'shape' => 'Path', ], 'Matcher' => [ 'shape' => 'Matcher', ], 'LoadBalancerArns' => [ 'shape' => 'LoadBalancerArns', ], 'TargetType' => [ 'shape' => 'TargetTypeEnum', ], ], ], 'TargetGroupArn' => [ 'type' => 'string', ], 'TargetGroupArns' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetGroupArn', ], ], 'TargetGroupAssociationLimitException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'TargetGroupAssociationLimit', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'TargetGroupAttribute' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'TargetGroupAttributeKey', ], 'Value' => [ 'shape' => 'TargetGroupAttributeValue', ], ], ], 'TargetGroupAttributeKey' => [ 'type' => 'string', 'max' => 256, 'pattern' => '^[a-zA-Z0-9._]+$', ], 'TargetGroupAttributeValue' => [ 'type' => 'string', ], 'TargetGroupAttributes' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetGroupAttribute', ], ], 'TargetGroupName' => [ 'type' => 'string', ], 'TargetGroupNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetGroupName', ], ], 'TargetGroupNotFoundException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'TargetGroupNotFound', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'TargetGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetGroup', ], ], 'TargetHealth' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'TargetHealthStateEnum', ], 'Reason' => [ 'shape' => 'TargetHealthReasonEnum', ], 'Description' => [ 'shape' => 'Description', ], ], ], 'TargetHealthDescription' => [ 'type' => 'structure', 'members' => [ 'Target' => [ 'shape' => 'TargetDescription', ], 'HealthCheckPort' => [ 'shape' => 'HealthCheckPort', ], 'TargetHealth' => [ 'shape' => 'TargetHealth', ], ], ], 'TargetHealthDescriptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetHealthDescription', ], ], 'TargetHealthReasonEnum' => [ 'type' => 'string', 'enum' => [ 'Elb.RegistrationInProgress', 'Elb.InitialHealthChecking', 'Target.ResponseCodeMismatch', 'Target.Timeout', 'Target.FailedHealthChecks', 'Target.NotRegistered', 'Target.NotInUse', 'Target.DeregistrationInProgress', 'Target.InvalidState', 'Target.IpUnusable', 'Target.HealthCheckDisabled', 'Elb.InternalError', ], ], 'TargetHealthStateEnum' => [ 'type' => 'string', 'enum' => [ 'initial', 'healthy', 'unhealthy', 'unused', 'draining', 'unavailable', ], ], 'TargetId' => [ 'type' => 'string', ], 'TargetTypeEnum' => [ 'type' => 'string', 'enum' => [ 'instance', 'ip', 'lambda', ], ], 'TooManyActionsException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'TooManyActions', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'TooManyCertificatesException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'TooManyCertificates', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'TooManyListenersException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'TooManyListeners', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'TooManyLoadBalancersException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'TooManyLoadBalancers', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'TooManyRegistrationsForTargetIdException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'TooManyRegistrationsForTargetId', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'TooManyRulesException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'TooManyRules', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'TooManyTagsException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'TooManyTags', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'TooManyTargetGroupsException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'TooManyTargetGroups', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'TooManyTargetsException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'TooManyTargets', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'UnsupportedProtocolException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'UnsupportedProtocol', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'VpcId' => [ 'type' => 'string', ], 'ZoneName' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/elasticloadbalancingv2/2015-12-01/paginators-1.json.php b/lib/aws/Aws/data/elasticloadbalancingv2/2015-12-01/paginators-1.json.php new file mode 100644 index 0000000..d7aea5b --- /dev/null +++ b/lib/aws/Aws/data/elasticloadbalancingv2/2015-12-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticloadbalancingv2/2015-12-01/paginators-1.json +return [ 'pagination' => [ 'DescribeListeners' => [ 'input_token' => 'Marker', 'output_token' => 'NextMarker', 'result_key' => 'Listeners', ], 'DescribeLoadBalancers' => [ 'input_token' => 'Marker', 'output_token' => 'NextMarker', 'result_key' => 'LoadBalancers', ], 'DescribeTargetGroups' => [ 'input_token' => 'Marker', 'output_token' => 'NextMarker', 'result_key' => 'TargetGroups', ], ],]; diff --git a/lib/aws/Aws/data/elasticloadbalancingv2/2015-12-01/smoke.json.php b/lib/aws/Aws/data/elasticloadbalancingv2/2015-12-01/smoke.json.php new file mode 100644 index 0000000..8cca240 --- /dev/null +++ b/lib/aws/Aws/data/elasticloadbalancingv2/2015-12-01/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticloadbalancingv2/2015-12-01/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeLoadBalancers', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeLoadBalancers', 'input' => [ 'LoadBalancerArns' => [ 'fake_load_balancer', ], ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/elasticloadbalancingv2/2015-12-01/waiters-2.json.php b/lib/aws/Aws/data/elasticloadbalancingv2/2015-12-01/waiters-2.json.php new file mode 100644 index 0000000..9c6123b --- /dev/null +++ b/lib/aws/Aws/data/elasticloadbalancingv2/2015-12-01/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticloadbalancingv2/2015-12-01/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'LoadBalancerExists' => [ 'delay' => 15, 'operation' => 'DescribeLoadBalancers', 'maxAttempts' => 40, 'acceptors' => [ [ 'matcher' => 'status', 'expected' => 200, 'state' => 'success', ], [ 'matcher' => 'error', 'expected' => 'LoadBalancerNotFound', 'state' => 'retry', ], ], ], 'LoadBalancerAvailable' => [ 'delay' => 15, 'operation' => 'DescribeLoadBalancers', 'maxAttempts' => 40, 'acceptors' => [ [ 'state' => 'success', 'matcher' => 'pathAll', 'argument' => 'LoadBalancers[].State.Code', 'expected' => 'active', ], [ 'state' => 'retry', 'matcher' => 'pathAny', 'argument' => 'LoadBalancers[].State.Code', 'expected' => 'provisioning', ], [ 'state' => 'retry', 'matcher' => 'error', 'expected' => 'LoadBalancerNotFound', ], ], ], 'LoadBalancersDeleted' => [ 'delay' => 15, 'operation' => 'DescribeLoadBalancers', 'maxAttempts' => 40, 'acceptors' => [ [ 'state' => 'retry', 'matcher' => 'pathAll', 'argument' => 'LoadBalancers[].State.Code', 'expected' => 'active', ], [ 'matcher' => 'error', 'expected' => 'LoadBalancerNotFound', 'state' => 'success', ], ], ], 'TargetInService' => [ 'delay' => 15, 'maxAttempts' => 40, 'operation' => 'DescribeTargetHealth', 'acceptors' => [ [ 'argument' => 'TargetHealthDescriptions[].TargetHealth.State', 'expected' => 'healthy', 'matcher' => 'pathAll', 'state' => 'success', ], [ 'matcher' => 'error', 'expected' => 'InvalidInstance', 'state' => 'retry', ], ], ], 'TargetDeregistered' => [ 'delay' => 15, 'maxAttempts' => 40, 'operation' => 'DescribeTargetHealth', 'acceptors' => [ [ 'matcher' => 'error', 'expected' => 'InvalidTarget', 'state' => 'success', ], [ 'argument' => 'TargetHealthDescriptions[].TargetHealth.State', 'expected' => 'unused', 'matcher' => 'pathAll', 'state' => 'success', ], ], ], ],]; diff --git a/lib/aws/Aws/data/elasticmapreduce/2009-03-31/api-2.json.php b/lib/aws/Aws/data/elasticmapreduce/2009-03-31/api-2.json.php new file mode 100644 index 0000000..03408b7 --- /dev/null +++ b/lib/aws/Aws/data/elasticmapreduce/2009-03-31/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticmapreduce/2009-03-31/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2009-03-31', 'endpointPrefix' => 'elasticmapreduce', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'Amazon EMR', 'serviceFullName' => 'Amazon Elastic MapReduce', 'serviceId' => 'EMR', 'signatureVersion' => 'v4', 'targetPrefix' => 'ElasticMapReduce', 'uid' => 'elasticmapreduce-2009-03-31', ], 'operations' => [ 'AddInstanceFleet' => [ 'name' => 'AddInstanceFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddInstanceFleetInput', ], 'output' => [ 'shape' => 'AddInstanceFleetOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'AddInstanceGroups' => [ 'name' => 'AddInstanceGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddInstanceGroupsInput', ], 'output' => [ 'shape' => 'AddInstanceGroupsOutput', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'AddJobFlowSteps' => [ 'name' => 'AddJobFlowSteps', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddJobFlowStepsInput', ], 'output' => [ 'shape' => 'AddJobFlowStepsOutput', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'AddTags' => [ 'name' => 'AddTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddTagsInput', ], 'output' => [ 'shape' => 'AddTagsOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'CancelSteps' => [ 'name' => 'CancelSteps', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelStepsInput', ], 'output' => [ 'shape' => 'CancelStepsOutput', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'CreateSecurityConfiguration' => [ 'name' => 'CreateSecurityConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSecurityConfigurationInput', ], 'output' => [ 'shape' => 'CreateSecurityConfigurationOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DeleteSecurityConfiguration' => [ 'name' => 'DeleteSecurityConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSecurityConfigurationInput', ], 'output' => [ 'shape' => 'DeleteSecurityConfigurationOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DescribeCluster' => [ 'name' => 'DescribeCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClusterInput', ], 'output' => [ 'shape' => 'DescribeClusterOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DescribeJobFlows' => [ 'name' => 'DescribeJobFlows', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeJobFlowsInput', ], 'output' => [ 'shape' => 'DescribeJobFlowsOutput', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], 'deprecated' => true, ], 'DescribeSecurityConfiguration' => [ 'name' => 'DescribeSecurityConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSecurityConfigurationInput', ], 'output' => [ 'shape' => 'DescribeSecurityConfigurationOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DescribeStep' => [ 'name' => 'DescribeStep', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStepInput', ], 'output' => [ 'shape' => 'DescribeStepOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ListBootstrapActions' => [ 'name' => 'ListBootstrapActions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListBootstrapActionsInput', ], 'output' => [ 'shape' => 'ListBootstrapActionsOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ListClusters' => [ 'name' => 'ListClusters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListClustersInput', ], 'output' => [ 'shape' => 'ListClustersOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ListInstanceFleets' => [ 'name' => 'ListInstanceFleets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListInstanceFleetsInput', ], 'output' => [ 'shape' => 'ListInstanceFleetsOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ListInstanceGroups' => [ 'name' => 'ListInstanceGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListInstanceGroupsInput', ], 'output' => [ 'shape' => 'ListInstanceGroupsOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ListInstances' => [ 'name' => 'ListInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListInstancesInput', ], 'output' => [ 'shape' => 'ListInstancesOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ListSecurityConfigurations' => [ 'name' => 'ListSecurityConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSecurityConfigurationsInput', ], 'output' => [ 'shape' => 'ListSecurityConfigurationsOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ListSteps' => [ 'name' => 'ListSteps', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListStepsInput', ], 'output' => [ 'shape' => 'ListStepsOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ModifyInstanceFleet' => [ 'name' => 'ModifyInstanceFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceFleetInput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ModifyInstanceGroups' => [ 'name' => 'ModifyInstanceGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceGroupsInput', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'PutAutoScalingPolicy' => [ 'name' => 'PutAutoScalingPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutAutoScalingPolicyInput', ], 'output' => [ 'shape' => 'PutAutoScalingPolicyOutput', ], ], 'RemoveAutoScalingPolicy' => [ 'name' => 'RemoveAutoScalingPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveAutoScalingPolicyInput', ], 'output' => [ 'shape' => 'RemoveAutoScalingPolicyOutput', ], ], 'RemoveTags' => [ 'name' => 'RemoveTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveTagsInput', ], 'output' => [ 'shape' => 'RemoveTagsOutput', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'RunJobFlow' => [ 'name' => 'RunJobFlow', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RunJobFlowInput', ], 'output' => [ 'shape' => 'RunJobFlowOutput', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'SetTerminationProtection' => [ 'name' => 'SetTerminationProtection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetTerminationProtectionInput', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'SetVisibleToAllUsers' => [ 'name' => 'SetVisibleToAllUsers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetVisibleToAllUsersInput', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'TerminateJobFlows' => [ 'name' => 'TerminateJobFlows', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TerminateJobFlowsInput', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], ], 'shapes' => [ 'ActionOnFailure' => [ 'type' => 'string', 'enum' => [ 'TERMINATE_JOB_FLOW', 'TERMINATE_CLUSTER', 'CANCEL_AND_WAIT', 'CONTINUE', ], ], 'AddInstanceFleetInput' => [ 'type' => 'structure', 'required' => [ 'ClusterId', 'InstanceFleet', ], 'members' => [ 'ClusterId' => [ 'shape' => 'XmlStringMaxLen256', ], 'InstanceFleet' => [ 'shape' => 'InstanceFleetConfig', ], ], ], 'AddInstanceFleetOutput' => [ 'type' => 'structure', 'members' => [ 'ClusterId' => [ 'shape' => 'XmlStringMaxLen256', ], 'InstanceFleetId' => [ 'shape' => 'InstanceFleetId', ], ], ], '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' => [], ], 'AdjustmentType' => [ 'type' => 'string', 'enum' => [ 'CHANGE_IN_CAPACITY', 'PERCENT_CHANGE_IN_CAPACITY', 'EXACT_CAPACITY', ], ], 'Application' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Version' => [ 'shape' => 'String', ], 'Args' => [ 'shape' => 'StringList', ], 'AdditionalInfo' => [ 'shape' => 'StringMap', ], ], ], 'ApplicationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Application', ], ], 'AutoScalingPolicy' => [ 'type' => 'structure', 'required' => [ 'Constraints', 'Rules', ], 'members' => [ 'Constraints' => [ 'shape' => 'ScalingConstraints', ], 'Rules' => [ 'shape' => 'ScalingRuleList', ], ], ], 'AutoScalingPolicyDescription' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'AutoScalingPolicyStatus', ], 'Constraints' => [ 'shape' => 'ScalingConstraints', ], 'Rules' => [ 'shape' => 'ScalingRuleList', ], ], ], 'AutoScalingPolicyState' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'ATTACHING', 'ATTACHED', 'DETACHING', 'DETACHED', 'FAILED', ], ], 'AutoScalingPolicyStateChangeReason' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'AutoScalingPolicyStateChangeReasonCode', ], 'Message' => [ 'shape' => 'String', ], ], ], 'AutoScalingPolicyStateChangeReasonCode' => [ 'type' => 'string', 'enum' => [ 'USER_REQUEST', 'PROVISION_FAILURE', 'CLEANUP_FAILURE', ], ], 'AutoScalingPolicyStatus' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'AutoScalingPolicyState', ], 'StateChangeReason' => [ 'shape' => 'AutoScalingPolicyStateChangeReason', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'BooleanObject' => [ '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', ], ], 'CancelStepsInfo' => [ 'type' => 'structure', 'members' => [ 'StepId' => [ 'shape' => 'StepId', ], 'Status' => [ 'shape' => 'CancelStepsRequestStatus', ], 'Reason' => [ 'shape' => 'String', ], ], ], 'CancelStepsInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CancelStepsInfo', ], ], 'CancelStepsInput' => [ 'type' => 'structure', 'members' => [ 'ClusterId' => [ 'shape' => 'XmlStringMaxLen256', ], 'StepIds' => [ 'shape' => 'StepIdsList', ], ], ], 'CancelStepsOutput' => [ 'type' => 'structure', 'members' => [ 'CancelStepsInfoList' => [ 'shape' => 'CancelStepsInfoList', ], ], ], 'CancelStepsRequestStatus' => [ 'type' => 'string', 'enum' => [ 'SUBMITTED', 'FAILED', ], ], 'CloudWatchAlarmDefinition' => [ 'type' => 'structure', 'required' => [ 'ComparisonOperator', 'MetricName', 'Period', 'Threshold', ], 'members' => [ 'ComparisonOperator' => [ 'shape' => 'ComparisonOperator', ], 'EvaluationPeriods' => [ 'shape' => 'Integer', ], 'MetricName' => [ 'shape' => 'String', ], 'Namespace' => [ 'shape' => 'String', ], 'Period' => [ 'shape' => 'Integer', ], 'Statistic' => [ 'shape' => 'Statistic', ], 'Threshold' => [ 'shape' => 'NonNegativeDouble', ], 'Unit' => [ 'shape' => 'Unit', ], 'Dimensions' => [ 'shape' => 'MetricDimensionList', ], ], ], 'Cluster' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ClusterId', ], 'Name' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'ClusterStatus', ], 'Ec2InstanceAttributes' => [ 'shape' => 'Ec2InstanceAttributes', ], 'InstanceCollectionType' => [ 'shape' => 'InstanceCollectionType', ], 'LogUri' => [ 'shape' => 'String', ], 'RequestedAmiVersion' => [ 'shape' => 'String', ], 'RunningAmiVersion' => [ 'shape' => 'String', ], 'ReleaseLabel' => [ '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', ], 'Configurations' => [ 'shape' => 'ConfigurationList', ], 'SecurityConfiguration' => [ 'shape' => 'XmlString', ], 'AutoScalingRole' => [ 'shape' => 'XmlString', ], 'ScaleDownBehavior' => [ 'shape' => 'ScaleDownBehavior', ], 'CustomAmiId' => [ 'shape' => 'XmlStringMaxLen256', ], 'EbsRootVolumeSize' => [ 'shape' => 'Integer', ], 'RepoUpgradeOnBoot' => [ 'shape' => 'RepoUpgradeOnBoot', ], 'KerberosAttributes' => [ 'shape' => 'KerberosAttributes', ], ], ], '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', 'INSTANCE_FLEET_TIMEOUT', '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', ], ], 'ComparisonOperator' => [ 'type' => 'string', 'enum' => [ 'GREATER_THAN_OR_EQUAL', 'GREATER_THAN', 'LESS_THAN', 'LESS_THAN_OR_EQUAL', ], ], 'Configuration' => [ 'type' => 'structure', 'members' => [ 'Classification' => [ 'shape' => 'String', ], 'Configurations' => [ 'shape' => 'ConfigurationList', ], 'Properties' => [ 'shape' => 'StringMap', ], ], ], 'ConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Configuration', ], ], 'CreateSecurityConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'Name', 'SecurityConfiguration', ], 'members' => [ 'Name' => [ 'shape' => 'XmlString', ], 'SecurityConfiguration' => [ 'shape' => 'String', ], ], ], 'CreateSecurityConfigurationOutput' => [ 'type' => 'structure', 'required' => [ 'Name', 'CreationDateTime', ], 'members' => [ 'Name' => [ 'shape' => 'XmlString', ], 'CreationDateTime' => [ 'shape' => 'Date', ], ], ], 'Date' => [ 'type' => 'timestamp', ], 'DeleteSecurityConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'XmlString', ], ], ], 'DeleteSecurityConfigurationOutput' => [ 'type' => 'structure', 'members' => [], ], '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', ], ], ], 'DescribeSecurityConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'XmlString', ], ], ], 'DescribeSecurityConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'XmlString', ], 'SecurityConfiguration' => [ 'shape' => 'String', ], 'CreationDateTime' => [ 'shape' => 'Date', ], ], ], 'DescribeStepInput' => [ 'type' => 'structure', 'required' => [ 'ClusterId', 'StepId', ], 'members' => [ 'ClusterId' => [ 'shape' => 'ClusterId', ], 'StepId' => [ 'shape' => 'StepId', ], ], ], 'DescribeStepOutput' => [ 'type' => 'structure', 'members' => [ 'Step' => [ 'shape' => 'Step', ], ], ], 'EC2InstanceIdsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceId', ], ], 'EC2InstanceIdsToTerminateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceId', ], ], 'EbsBlockDevice' => [ 'type' => 'structure', 'members' => [ 'VolumeSpecification' => [ 'shape' => 'VolumeSpecification', ], 'Device' => [ 'shape' => 'String', ], ], ], 'EbsBlockDeviceConfig' => [ 'type' => 'structure', 'required' => [ 'VolumeSpecification', ], 'members' => [ 'VolumeSpecification' => [ 'shape' => 'VolumeSpecification', ], 'VolumesPerInstance' => [ 'shape' => 'Integer', ], ], ], 'EbsBlockDeviceConfigList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EbsBlockDeviceConfig', ], ], 'EbsBlockDeviceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EbsBlockDevice', ], ], 'EbsConfiguration' => [ 'type' => 'structure', 'members' => [ 'EbsBlockDeviceConfigs' => [ 'shape' => 'EbsBlockDeviceConfigList', ], 'EbsOptimized' => [ 'shape' => 'BooleanObject', ], ], ], 'EbsVolume' => [ 'type' => 'structure', 'members' => [ 'Device' => [ 'shape' => 'String', ], 'VolumeId' => [ 'shape' => 'String', ], ], ], 'EbsVolumeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EbsVolume', ], ], 'Ec2InstanceAttributes' => [ 'type' => 'structure', 'members' => [ 'Ec2KeyName' => [ 'shape' => 'String', ], 'Ec2SubnetId' => [ 'shape' => 'String', ], 'RequestedEc2SubnetIds' => [ 'shape' => 'XmlStringMaxLen256List', ], 'Ec2AvailabilityZone' => [ 'shape' => 'String', ], 'RequestedEc2AvailabilityZones' => [ 'shape' => 'XmlStringMaxLen256List', ], 'IamInstanceProfile' => [ 'shape' => 'String', ], 'EmrManagedMasterSecurityGroup' => [ 'shape' => 'String', ], 'EmrManagedSlaveSecurityGroup' => [ 'shape' => 'String', ], 'ServiceAccessSecurityGroup' => [ 'shape' => 'String', ], 'AdditionalMasterSecurityGroups' => [ 'shape' => 'StringList', ], 'AdditionalSlaveSecurityGroups' => [ 'shape' => 'StringList', ], ], ], 'ErrorCode' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'ErrorMessage' => [ 'type' => 'string', ], 'FailureDetails' => [ 'type' => 'structure', 'members' => [ 'Reason' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], 'LogFile' => [ 'shape' => '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', ], 'InstanceGroupId' => [ 'shape' => 'String', ], 'InstanceFleetId' => [ 'shape' => 'InstanceFleetId', ], 'Market' => [ 'shape' => 'MarketType', ], 'InstanceType' => [ 'shape' => 'InstanceType', ], 'EbsVolumes' => [ 'shape' => 'EbsVolumeList', ], ], ], 'InstanceCollectionType' => [ 'type' => 'string', 'enum' => [ 'INSTANCE_FLEET', 'INSTANCE_GROUP', ], ], 'InstanceFleet' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'InstanceFleetId', ], 'Name' => [ 'shape' => 'XmlStringMaxLen256', ], 'Status' => [ 'shape' => 'InstanceFleetStatus', ], 'InstanceFleetType' => [ 'shape' => 'InstanceFleetType', ], 'TargetOnDemandCapacity' => [ 'shape' => 'WholeNumber', ], 'TargetSpotCapacity' => [ 'shape' => 'WholeNumber', ], 'ProvisionedOnDemandCapacity' => [ 'shape' => 'WholeNumber', ], 'ProvisionedSpotCapacity' => [ 'shape' => 'WholeNumber', ], 'InstanceTypeSpecifications' => [ 'shape' => 'InstanceTypeSpecificationList', ], 'LaunchSpecifications' => [ 'shape' => 'InstanceFleetProvisioningSpecifications', ], ], ], 'InstanceFleetConfig' => [ 'type' => 'structure', 'required' => [ 'InstanceFleetType', ], 'members' => [ 'Name' => [ 'shape' => 'XmlStringMaxLen256', ], 'InstanceFleetType' => [ 'shape' => 'InstanceFleetType', ], 'TargetOnDemandCapacity' => [ 'shape' => 'WholeNumber', ], 'TargetSpotCapacity' => [ 'shape' => 'WholeNumber', ], 'InstanceTypeConfigs' => [ 'shape' => 'InstanceTypeConfigList', ], 'LaunchSpecifications' => [ 'shape' => 'InstanceFleetProvisioningSpecifications', ], ], ], 'InstanceFleetConfigList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceFleetConfig', ], ], 'InstanceFleetId' => [ 'type' => 'string', ], 'InstanceFleetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceFleet', ], ], 'InstanceFleetModifyConfig' => [ 'type' => 'structure', 'required' => [ 'InstanceFleetId', ], 'members' => [ 'InstanceFleetId' => [ 'shape' => 'InstanceFleetId', ], 'TargetOnDemandCapacity' => [ 'shape' => 'WholeNumber', ], 'TargetSpotCapacity' => [ 'shape' => 'WholeNumber', ], ], ], 'InstanceFleetProvisioningSpecifications' => [ 'type' => 'structure', 'required' => [ 'SpotSpecification', ], 'members' => [ 'SpotSpecification' => [ 'shape' => 'SpotProvisioningSpecification', ], ], ], 'InstanceFleetState' => [ 'type' => 'string', 'enum' => [ 'PROVISIONING', 'BOOTSTRAPPING', 'RUNNING', 'RESIZING', 'SUSPENDED', 'TERMINATING', 'TERMINATED', ], ], 'InstanceFleetStateChangeReason' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'InstanceFleetStateChangeReasonCode', ], 'Message' => [ 'shape' => 'String', ], ], ], 'InstanceFleetStateChangeReasonCode' => [ 'type' => 'string', 'enum' => [ 'INTERNAL_ERROR', 'VALIDATION_ERROR', 'INSTANCE_FAILURE', 'CLUSTER_TERMINATED', ], ], 'InstanceFleetStatus' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'InstanceFleetState', ], 'StateChangeReason' => [ 'shape' => 'InstanceFleetStateChangeReason', ], 'Timeline' => [ 'shape' => 'InstanceFleetTimeline', ], ], ], 'InstanceFleetTimeline' => [ 'type' => 'structure', 'members' => [ 'CreationDateTime' => [ 'shape' => 'Date', ], 'ReadyDateTime' => [ 'shape' => 'Date', ], 'EndDateTime' => [ 'shape' => 'Date', ], ], ], 'InstanceFleetType' => [ 'type' => 'string', 'enum' => [ 'MASTER', 'CORE', 'TASK', ], ], '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', ], 'Configurations' => [ 'shape' => 'ConfigurationList', ], 'ConfigurationsVersion' => [ 'shape' => 'Long', ], 'LastSuccessfullyAppliedConfigurations' => [ 'shape' => 'ConfigurationList', ], 'LastSuccessfullyAppliedConfigurationsVersion' => [ 'shape' => 'Long', ], 'EbsBlockDevices' => [ 'shape' => 'EbsBlockDeviceList', ], 'EbsOptimized' => [ 'shape' => 'BooleanObject', ], 'ShrinkPolicy' => [ 'shape' => 'ShrinkPolicy', ], 'AutoScalingPolicy' => [ 'shape' => 'AutoScalingPolicyDescription', ], ], ], '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', ], 'Configurations' => [ 'shape' => 'ConfigurationList', ], 'EbsConfiguration' => [ 'shape' => 'EbsConfiguration', ], 'AutoScalingPolicy' => [ 'shape' => 'AutoScalingPolicy', ], ], ], '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', ], 'ShrinkPolicy' => [ 'shape' => 'ShrinkPolicy', ], 'Configurations' => [ 'shape' => 'ConfigurationList', ], ], ], 'InstanceGroupModifyConfigList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceGroupModifyConfig', ], ], 'InstanceGroupState' => [ 'type' => 'string', 'enum' => [ 'PROVISIONING', 'BOOTSTRAPPING', 'RUNNING', 'RECONFIGURING', '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', ], ], 'InstanceResizePolicy' => [ 'type' => 'structure', 'members' => [ 'InstancesToTerminate' => [ 'shape' => 'EC2InstanceIdsList', ], 'InstancesToProtect' => [ 'shape' => 'EC2InstanceIdsList', ], 'InstanceTerminationTimeout' => [ 'shape' => 'Integer', ], ], ], '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', ], ], 'InstanceStateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceState', ], ], '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', 'max' => 256, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'InstanceTypeConfig' => [ 'type' => 'structure', 'required' => [ 'InstanceType', ], 'members' => [ 'InstanceType' => [ 'shape' => 'InstanceType', ], 'WeightedCapacity' => [ 'shape' => 'WholeNumber', ], 'BidPrice' => [ 'shape' => 'XmlStringMaxLen256', ], 'BidPriceAsPercentageOfOnDemandPrice' => [ 'shape' => 'NonNegativeDouble', ], 'EbsConfiguration' => [ 'shape' => 'EbsConfiguration', ], 'Configurations' => [ 'shape' => 'ConfigurationList', ], ], ], 'InstanceTypeConfigList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceTypeConfig', ], ], 'InstanceTypeSpecification' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'InstanceType', ], 'WeightedCapacity' => [ 'shape' => 'WholeNumber', ], 'BidPrice' => [ 'shape' => 'XmlStringMaxLen256', ], 'BidPriceAsPercentageOfOnDemandPrice' => [ 'shape' => 'NonNegativeDouble', ], 'Configurations' => [ 'shape' => 'ConfigurationList', ], 'EbsBlockDevices' => [ 'shape' => 'EbsBlockDeviceList', ], 'EbsOptimized' => [ 'shape' => 'BooleanObject', ], ], ], 'InstanceTypeSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceTypeSpecification', ], ], 'Integer' => [ 'type' => 'integer', ], 'InternalServerError' => [ 'type' => 'structure', 'members' => [], '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', ], 'AutoScalingRole' => [ 'shape' => 'XmlString', ], 'ScaleDownBehavior' => [ 'shape' => 'ScaleDownBehavior', ], ], ], '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', ], 'InstanceFleets' => [ 'shape' => 'InstanceFleetConfigList', ], 'Ec2KeyName' => [ 'shape' => 'XmlStringMaxLen256', ], 'Placement' => [ 'shape' => 'PlacementType', ], 'KeepJobFlowAliveWhenNoSteps' => [ 'shape' => 'Boolean', ], 'TerminationProtected' => [ 'shape' => 'Boolean', ], 'HadoopVersion' => [ 'shape' => 'XmlStringMaxLen256', ], 'Ec2SubnetId' => [ 'shape' => 'XmlStringMaxLen256', ], 'Ec2SubnetIds' => [ 'shape' => 'XmlStringMaxLen256List', ], 'EmrManagedMasterSecurityGroup' => [ 'shape' => 'XmlStringMaxLen256', ], 'EmrManagedSlaveSecurityGroup' => [ 'shape' => 'XmlStringMaxLen256', ], 'ServiceAccessSecurityGroup' => [ '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', ], ], ], 'KerberosAttributes' => [ 'type' => 'structure', 'required' => [ 'Realm', 'KdcAdminPassword', ], 'members' => [ 'Realm' => [ 'shape' => 'XmlStringMaxLen256', ], 'KdcAdminPassword' => [ 'shape' => 'XmlStringMaxLen256', ], 'CrossRealmTrustPrincipalPassword' => [ 'shape' => 'XmlStringMaxLen256', ], 'ADDomainJoinUser' => [ 'shape' => 'XmlStringMaxLen256', ], 'ADDomainJoinPassword' => [ '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', ], ], ], 'ListInstanceFleetsInput' => [ 'type' => 'structure', 'required' => [ 'ClusterId', ], 'members' => [ 'ClusterId' => [ 'shape' => 'ClusterId', ], 'Marker' => [ 'shape' => 'Marker', ], ], ], 'ListInstanceFleetsOutput' => [ 'type' => 'structure', 'members' => [ 'InstanceFleets' => [ 'shape' => 'InstanceFleetList', ], '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', ], 'InstanceFleetId' => [ 'shape' => 'InstanceFleetId', ], 'InstanceFleetType' => [ 'shape' => 'InstanceFleetType', ], 'InstanceStates' => [ 'shape' => 'InstanceStateList', ], 'Marker' => [ 'shape' => 'Marker', ], ], ], 'ListInstancesOutput' => [ 'type' => 'structure', 'members' => [ 'Instances' => [ 'shape' => 'InstanceList', ], 'Marker' => [ 'shape' => 'Marker', ], ], ], 'ListSecurityConfigurationsInput' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'Marker', ], ], ], 'ListSecurityConfigurationsOutput' => [ 'type' => 'structure', 'members' => [ 'SecurityConfigurations' => [ 'shape' => 'SecurityConfigurationList', ], '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', ], ], ], 'Long' => [ 'type' => 'long', ], 'Marker' => [ 'type' => 'string', ], 'MarketType' => [ 'type' => 'string', 'enum' => [ 'ON_DEMAND', 'SPOT', ], ], 'MetricDimension' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', ], 'Value' => [ 'shape' => 'String', ], ], ], 'MetricDimensionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricDimension', ], ], 'ModifyInstanceFleetInput' => [ 'type' => 'structure', 'required' => [ 'ClusterId', 'InstanceFleet', ], 'members' => [ 'ClusterId' => [ 'shape' => 'ClusterId', ], 'InstanceFleet' => [ 'shape' => 'InstanceFleetModifyConfig', ], ], ], 'ModifyInstanceGroupsInput' => [ 'type' => 'structure', 'members' => [ 'ClusterId' => [ 'shape' => 'ClusterId', ], 'InstanceGroups' => [ 'shape' => 'InstanceGroupModifyConfigList', ], ], ], 'NewSupportedProductsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SupportedProductConfig', ], ], 'NonNegativeDouble' => [ 'type' => 'double', 'min' => 0, ], 'PlacementType' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'XmlString', ], 'AvailabilityZones' => [ 'shape' => 'XmlStringMaxLen256List', ], ], ], 'PutAutoScalingPolicyInput' => [ 'type' => 'structure', 'required' => [ 'ClusterId', 'InstanceGroupId', 'AutoScalingPolicy', ], 'members' => [ 'ClusterId' => [ 'shape' => 'ClusterId', ], 'InstanceGroupId' => [ 'shape' => 'InstanceGroupId', ], 'AutoScalingPolicy' => [ 'shape' => 'AutoScalingPolicy', ], ], ], 'PutAutoScalingPolicyOutput' => [ 'type' => 'structure', 'members' => [ 'ClusterId' => [ 'shape' => 'ClusterId', ], 'InstanceGroupId' => [ 'shape' => 'InstanceGroupId', ], 'AutoScalingPolicy' => [ 'shape' => 'AutoScalingPolicyDescription', ], ], ], 'RemoveAutoScalingPolicyInput' => [ 'type' => 'structure', 'required' => [ 'ClusterId', 'InstanceGroupId', ], 'members' => [ 'ClusterId' => [ 'shape' => 'ClusterId', ], 'InstanceGroupId' => [ 'shape' => 'InstanceGroupId', ], ], ], 'RemoveAutoScalingPolicyOutput' => [ 'type' => 'structure', 'members' => [], ], 'RemoveTagsInput' => [ 'type' => 'structure', 'required' => [ 'ResourceId', 'TagKeys', ], 'members' => [ 'ResourceId' => [ 'shape' => 'ResourceId', ], 'TagKeys' => [ 'shape' => 'StringList', ], ], ], 'RemoveTagsOutput' => [ 'type' => 'structure', 'members' => [], ], 'RepoUpgradeOnBoot' => [ 'type' => 'string', 'enum' => [ 'SECURITY', 'NONE', ], ], 'ResourceId' => [ 'type' => 'string', ], 'RunJobFlowInput' => [ 'type' => 'structure', 'required' => [ 'Name', 'Instances', ], 'members' => [ 'Name' => [ 'shape' => 'XmlStringMaxLen256', ], 'LogUri' => [ 'shape' => 'XmlString', ], 'AdditionalInfo' => [ 'shape' => 'XmlString', ], 'AmiVersion' => [ 'shape' => 'XmlStringMaxLen256', ], 'ReleaseLabel' => [ 'shape' => 'XmlStringMaxLen256', ], 'Instances' => [ 'shape' => 'JobFlowInstancesConfig', ], 'Steps' => [ 'shape' => 'StepConfigList', ], 'BootstrapActions' => [ 'shape' => 'BootstrapActionConfigList', ], 'SupportedProducts' => [ 'shape' => 'SupportedProductsList', ], 'NewSupportedProducts' => [ 'shape' => 'NewSupportedProductsList', ], 'Applications' => [ 'shape' => 'ApplicationList', ], 'Configurations' => [ 'shape' => 'ConfigurationList', ], 'VisibleToAllUsers' => [ 'shape' => 'Boolean', ], 'JobFlowRole' => [ 'shape' => 'XmlString', ], 'ServiceRole' => [ 'shape' => 'XmlString', ], 'Tags' => [ 'shape' => 'TagList', ], 'SecurityConfiguration' => [ 'shape' => 'XmlString', ], 'AutoScalingRole' => [ 'shape' => 'XmlString', ], 'ScaleDownBehavior' => [ 'shape' => 'ScaleDownBehavior', ], 'CustomAmiId' => [ 'shape' => 'XmlStringMaxLen256', ], 'EbsRootVolumeSize' => [ 'shape' => 'Integer', ], 'RepoUpgradeOnBoot' => [ 'shape' => 'RepoUpgradeOnBoot', ], 'KerberosAttributes' => [ 'shape' => 'KerberosAttributes', ], ], ], 'RunJobFlowOutput' => [ 'type' => 'structure', 'members' => [ 'JobFlowId' => [ 'shape' => 'XmlStringMaxLen256', ], ], ], 'ScaleDownBehavior' => [ 'type' => 'string', 'enum' => [ 'TERMINATE_AT_INSTANCE_HOUR', 'TERMINATE_AT_TASK_COMPLETION', ], ], 'ScalingAction' => [ 'type' => 'structure', 'required' => [ 'SimpleScalingPolicyConfiguration', ], 'members' => [ 'Market' => [ 'shape' => 'MarketType', ], 'SimpleScalingPolicyConfiguration' => [ 'shape' => 'SimpleScalingPolicyConfiguration', ], ], ], 'ScalingConstraints' => [ 'type' => 'structure', 'required' => [ 'MinCapacity', 'MaxCapacity', ], 'members' => [ 'MinCapacity' => [ 'shape' => 'Integer', ], 'MaxCapacity' => [ 'shape' => 'Integer', ], ], ], 'ScalingRule' => [ 'type' => 'structure', 'required' => [ 'Name', 'Action', 'Trigger', ], 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'Action' => [ 'shape' => 'ScalingAction', ], 'Trigger' => [ 'shape' => 'ScalingTrigger', ], ], ], 'ScalingRuleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScalingRule', ], ], 'ScalingTrigger' => [ 'type' => 'structure', 'required' => [ 'CloudWatchAlarmDefinition', ], 'members' => [ 'CloudWatchAlarmDefinition' => [ 'shape' => 'CloudWatchAlarmDefinition', ], ], ], 'ScriptBootstrapActionConfig' => [ 'type' => 'structure', 'required' => [ 'Path', ], 'members' => [ 'Path' => [ 'shape' => 'XmlString', ], 'Args' => [ 'shape' => 'XmlStringList', ], ], ], 'SecurityConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityConfigurationSummary', ], ], 'SecurityConfigurationSummary' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'XmlString', ], 'CreationDateTime' => [ 'shape' => 'Date', ], ], ], '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', ], ], ], 'ShrinkPolicy' => [ 'type' => 'structure', 'members' => [ 'DecommissionTimeout' => [ 'shape' => 'Integer', ], 'InstanceResizePolicy' => [ 'shape' => 'InstanceResizePolicy', ], ], ], 'SimpleScalingPolicyConfiguration' => [ 'type' => 'structure', 'required' => [ 'ScalingAdjustment', ], 'members' => [ 'AdjustmentType' => [ 'shape' => 'AdjustmentType', ], 'ScalingAdjustment' => [ 'shape' => 'Integer', ], 'CoolDown' => [ 'shape' => 'Integer', ], ], ], 'SpotProvisioningSpecification' => [ 'type' => 'structure', 'required' => [ 'TimeoutDurationMinutes', 'TimeoutAction', ], 'members' => [ 'TimeoutDurationMinutes' => [ 'shape' => 'WholeNumber', ], 'TimeoutAction' => [ 'shape' => 'SpotProvisioningTimeoutAction', ], 'BlockDurationMinutes' => [ 'shape' => 'WholeNumber', ], ], ], 'SpotProvisioningTimeoutAction' => [ 'type' => 'string', 'enum' => [ 'SWITCH_TO_ON_DEMAND', 'TERMINATE_CLUSTER', ], ], 'Statistic' => [ 'type' => 'string', 'enum' => [ 'SAMPLE_COUNT', 'AVERAGE', 'SUM', 'MINIMUM', 'MAXIMUM', ], ], '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', 'CANCEL_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', ], 'FailureDetails' => [ 'shape' => 'FailureDetails', ], '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', ], ], ], 'Unit' => [ 'type' => 'string', 'enum' => [ 'NONE', 'SECONDS', 'MICRO_SECONDS', 'MILLI_SECONDS', 'BYTES', 'KILO_BYTES', 'MEGA_BYTES', 'GIGA_BYTES', 'TERA_BYTES', 'BITS', 'KILO_BITS', 'MEGA_BITS', 'GIGA_BITS', 'TERA_BITS', 'PERCENT', 'COUNT', 'BYTES_PER_SECOND', 'KILO_BYTES_PER_SECOND', 'MEGA_BYTES_PER_SECOND', 'GIGA_BYTES_PER_SECOND', 'TERA_BYTES_PER_SECOND', 'BITS_PER_SECOND', 'KILO_BITS_PER_SECOND', 'MEGA_BITS_PER_SECOND', 'GIGA_BITS_PER_SECOND', 'TERA_BITS_PER_SECOND', 'COUNT_PER_SECOND', ], ], 'VolumeSpecification' => [ 'type' => 'structure', 'required' => [ 'VolumeType', 'SizeInGB', ], 'members' => [ 'VolumeType' => [ 'shape' => 'String', ], 'Iops' => [ 'shape' => 'Integer', ], 'SizeInGB' => [ 'shape' => 'Integer', ], ], ], 'WholeNumber' => [ 'type' => 'integer', 'min' => 0, ], 'XmlString' => [ 'type' => 'string', 'max' => 10280, 'min' => 0, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'XmlStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'XmlString', ], ], 'XmlStringMaxLen256' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'XmlStringMaxLen256List' => [ 'type' => 'list', 'member' => [ 'shape' => 'XmlStringMaxLen256', ], ], ],]; diff --git a/lib/aws/Aws/data/elasticmapreduce/2009-03-31/paginators-1.json.php b/lib/aws/Aws/data/elasticmapreduce/2009-03-31/paginators-1.json.php new file mode 100644 index 0000000..b3e2d22 --- /dev/null +++ b/lib/aws/Aws/data/elasticmapreduce/2009-03-31/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticmapreduce/2009-03-31/paginators-1.json +return [ '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', ], 'ListInstanceFleets' => [ 'input_token' => 'Marker', 'output_token' => 'Marker', 'result_key' => 'InstanceFleets', ], 'ListInstanceGroups' => [ 'input_token' => 'Marker', 'output_token' => 'Marker', 'result_key' => 'InstanceGroups', ], 'ListInstances' => [ 'input_token' => 'Marker', 'output_token' => 'Marker', 'result_key' => 'Instances', ], 'ListSecurityConfigurations' => [ 'input_token' => 'Marker', 'output_token' => 'Marker', 'result_key' => 'SecurityConfigurations', ], 'ListSteps' => [ 'input_token' => 'Marker', 'output_token' => 'Marker', 'result_key' => 'Steps', ], ],]; diff --git a/lib/aws/Aws/data/elasticmapreduce/2009-03-31/smoke.json.php b/lib/aws/Aws/data/elasticmapreduce/2009-03-31/smoke.json.php new file mode 100644 index 0000000..ebc6078 --- /dev/null +++ b/lib/aws/Aws/data/elasticmapreduce/2009-03-31/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticmapreduce/2009-03-31/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListClusters', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeCluster', 'input' => [ 'ClusterId' => 'fake_cluster', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/elasticmapreduce/2009-03-31/waiters-2.json.php b/lib/aws/Aws/data/elasticmapreduce/2009-03-31/waiters-2.json.php new file mode 100644 index 0000000..537c730 --- /dev/null +++ b/lib/aws/Aws/data/elasticmapreduce/2009-03-31/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elasticmapreduce/2009-03-31/waiters-2.json +return [ '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', ], ], ], 'ClusterTerminated' => [ 'delay' => 30, 'operation' => 'DescribeCluster', 'maxAttempts' => 60, 'acceptors' => [ [ 'state' => 'success', 'matcher' => 'path', 'argument' => 'Cluster.Status.State', 'expected' => 'TERMINATED', ], [ 'state' => 'failure', 'matcher' => 'path', 'argument' => 'Cluster.Status.State', 'expected' => 'TERMINATED_WITH_ERRORS', ], ], ], ],]; diff --git a/lib/aws/Aws/data/elastictranscoder/2012-09-25/api-2.json.php b/lib/aws/Aws/data/elastictranscoder/2012-09-25/api-2.json.php new file mode 100644 index 0000000..d3a6701 --- /dev/null +++ b/lib/aws/Aws/data/elastictranscoder/2012-09-25/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elastictranscoder/2012-09-25/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2012-09-25', 'endpointPrefix' => 'elastictranscoder', 'protocol' => 'rest-json', 'serviceFullName' => 'Amazon Elastic Transcoder', 'serviceId' => 'Elastic Transcoder', 'signatureVersion' => 'v4', 'uid' => 'elastictranscoder-2012-09-25', ], 'operations' => [ 'CancelJob' => [ 'name' => 'CancelJob', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2012-09-25/jobs/{Id}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CancelJobRequest', ], 'output' => [ 'shape' => 'CancelJobResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleVersionException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'CreateJob' => [ 'name' => 'CreateJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/2012-09-25/jobs', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateJobRequest', ], 'output' => [ 'shape' => 'CreateJobResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleVersionException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'CreatePipeline' => [ 'name' => 'CreatePipeline', 'http' => [ 'method' => 'POST', 'requestUri' => '/2012-09-25/pipelines', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreatePipelineRequest', ], 'output' => [ 'shape' => 'CreatePipelineResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleVersionException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'CreatePreset' => [ 'name' => 'CreatePreset', 'http' => [ 'method' => 'POST', 'requestUri' => '/2012-09-25/presets', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreatePresetRequest', ], 'output' => [ 'shape' => 'CreatePresetResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleVersionException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DeletePipeline' => [ 'name' => 'DeletePipeline', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2012-09-25/pipelines/{Id}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeletePipelineRequest', ], 'output' => [ 'shape' => 'DeletePipelineResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleVersionException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DeletePreset' => [ 'name' => 'DeletePreset', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2012-09-25/presets/{Id}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeletePresetRequest', ], 'output' => [ 'shape' => 'DeletePresetResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleVersionException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'ListJobsByPipeline' => [ 'name' => 'ListJobsByPipeline', 'http' => [ 'method' => 'GET', 'requestUri' => '/2012-09-25/jobsByPipeline/{PipelineId}', ], 'input' => [ 'shape' => 'ListJobsByPipelineRequest', ], 'output' => [ 'shape' => 'ListJobsByPipelineResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleVersionException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'ListJobsByStatus' => [ 'name' => 'ListJobsByStatus', 'http' => [ 'method' => 'GET', 'requestUri' => '/2012-09-25/jobsByStatus/{Status}', ], 'input' => [ 'shape' => 'ListJobsByStatusRequest', ], 'output' => [ 'shape' => 'ListJobsByStatusResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleVersionException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'ListPipelines' => [ 'name' => 'ListPipelines', 'http' => [ 'method' => 'GET', 'requestUri' => '/2012-09-25/pipelines', ], 'input' => [ 'shape' => 'ListPipelinesRequest', ], 'output' => [ 'shape' => 'ListPipelinesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleVersionException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'ListPresets' => [ 'name' => 'ListPresets', 'http' => [ 'method' => 'GET', 'requestUri' => '/2012-09-25/presets', ], 'input' => [ 'shape' => 'ListPresetsRequest', ], 'output' => [ 'shape' => 'ListPresetsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleVersionException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'ReadJob' => [ 'name' => 'ReadJob', 'http' => [ 'method' => 'GET', 'requestUri' => '/2012-09-25/jobs/{Id}', ], 'input' => [ 'shape' => 'ReadJobRequest', ], 'output' => [ 'shape' => 'ReadJobResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleVersionException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'ReadPipeline' => [ 'name' => 'ReadPipeline', 'http' => [ 'method' => 'GET', 'requestUri' => '/2012-09-25/pipelines/{Id}', ], 'input' => [ 'shape' => 'ReadPipelineRequest', ], 'output' => [ 'shape' => 'ReadPipelineResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleVersionException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'ReadPreset' => [ 'name' => 'ReadPreset', 'http' => [ 'method' => 'GET', 'requestUri' => '/2012-09-25/presets/{Id}', ], 'input' => [ 'shape' => 'ReadPresetRequest', ], 'output' => [ 'shape' => 'ReadPresetResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleVersionException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'TestRole' => [ 'name' => 'TestRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/2012-09-25/roleTests', 'responseCode' => 200, ], 'input' => [ 'shape' => 'TestRoleRequest', ], 'output' => [ 'shape' => 'TestRoleResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleVersionException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServiceException', ], ], 'deprecated' => true, ], 'UpdatePipeline' => [ 'name' => 'UpdatePipeline', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2012-09-25/pipelines/{Id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdatePipelineRequest', ], 'output' => [ 'shape' => 'UpdatePipelineResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleVersionException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'UpdatePipelineNotifications' => [ 'name' => 'UpdatePipelineNotifications', 'http' => [ 'method' => 'POST', 'requestUri' => '/2012-09-25/pipelines/{Id}/notifications', ], 'input' => [ 'shape' => 'UpdatePipelineNotificationsRequest', ], 'output' => [ 'shape' => 'UpdatePipelineNotificationsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleVersionException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'UpdatePipelineStatus' => [ 'name' => 'UpdatePipelineStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/2012-09-25/pipelines/{Id}/status', ], 'input' => [ 'shape' => 'UpdatePipelineStatusRequest', ], 'output' => [ 'shape' => 'UpdatePipelineStatusResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'IncompatibleVersionException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServiceException', ], ], ], ], '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' => '(^8$)|(^16$)|(^24$)|(^32$)', ], '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' => '(^Unsigned$)|(^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$)|(^cea-708$)', ], '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' => 'LongKey', ], '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', 'deprecated' => true, ], 'CaptionSources' => [ 'shape' => 'CaptionSources', 'deprecated' => true, ], 'CaptionFormats' => [ 'shape' => 'CaptionFormats', ], ], ], 'Clip' => [ 'type' => 'structure', 'members' => [ 'TimeSpan' => [ 'shape' => 'TimeSpan', ], ], 'deprecated' => true, ], 'CodecOption' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'CodecOptions' => [ 'type' => 'map', 'key' => [ 'shape' => 'CodecOption', ], 'value' => [ 'shape' => 'CodecOption', ], 'max' => 30, ], 'Composition' => [ 'type' => 'list', 'member' => [ 'shape' => 'Clip', ], 'deprecated' => true, ], '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', 'deprecated' => true, ], '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', ], 'members' => [ 'PipelineId' => [ 'shape' => 'Id', ], 'Input' => [ 'shape' => 'JobInput', ], 'Inputs' => [ 'shape' => 'JobInputs', ], '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', 'max' => 255, 'min' => 0, ], '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', 'max' => 255, 'min' => 1, ], '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', 'max' => 255, 'min' => 1, ], '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, ], 'InputCaptions' => [ 'type' => 'structure', 'members' => [ 'MergePolicy' => [ 'shape' => 'CaptionMergePolicy', ], 'CaptionSources' => [ 'shape' => 'CaptionSources', ], ], ], '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', ], 'Inputs' => [ 'shape' => 'JobInputs', ], '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' => 'LongKey', ], 'FrameRate' => [ 'shape' => 'FrameRate', ], 'Resolution' => [ 'shape' => 'Resolution', ], 'AspectRatio' => [ 'shape' => 'AspectRatio', ], 'Interlaced' => [ 'shape' => 'Interlaced', ], 'Container' => [ 'shape' => 'JobContainer', ], 'Encryption' => [ 'shape' => 'Encryption', ], 'TimeSpan' => [ 'shape' => 'TimeSpan', ], 'InputCaptions' => [ 'shape' => 'InputCaptions', ], 'DetectedProperties' => [ 'shape' => 'DetectedProperties', ], ], ], 'JobInputs' => [ 'type' => 'list', 'member' => [ 'shape' => 'JobInput', ], 'max' => 200, ], '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', 'deprecated' => true, ], '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', 'max' => 255, 'min' => 1, ], 'KeyArn' => [ 'type' => 'string', 'max' => 255, 'min' => 0, ], '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', ], ], ], 'LongKey' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], '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', 'max' => 40, 'min' => 1, ], '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', 'max' => 512, 'min' => 1, ], '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$)|(^MPEG-DASH$)', ], '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$)|(^wav$)|(^mp2$)', ], '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', 'max' => 40, 'min' => 1, ], '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', ], ], 'deprecated' => true, ], 'TestRoleResponse' => [ 'type' => 'structure', 'members' => [ 'Success' => [ 'shape' => 'Success', ], 'Messages' => [ 'shape' => 'ExceptionMessages', ], ], 'deprecated' => true, ], '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$)|(^vp9$)|(^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', 'max' => 1024, 'min' => 1, 'pattern' => '(^.{1,1020}.jpg$)|(^.{1,1019}.jpeg$)|(^.{1,1020}.png$)', ], 'WatermarkSizingPolicy' => [ 'type' => 'string', 'pattern' => '(^Fit$)|(^Stretch$)|(^ShrinkToFit$)', ], 'ZeroTo255String' => [ 'type' => 'string', 'max' => 255, 'min' => 0, ], 'ZeroTo512String' => [ 'type' => 'string', 'max' => 512, 'min' => 0, ], ],]; diff --git a/lib/aws/Aws/data/elastictranscoder/2012-09-25/paginators-1.json.php b/lib/aws/Aws/data/elastictranscoder/2012-09-25/paginators-1.json.php new file mode 100644 index 0000000..a8784ed --- /dev/null +++ b/lib/aws/Aws/data/elastictranscoder/2012-09-25/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elastictranscoder/2012-09-25/paginators-1.json +return [ '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/Aws/data/elastictranscoder/2012-09-25/smoke.json.php b/lib/aws/Aws/data/elastictranscoder/2012-09-25/smoke.json.php new file mode 100644 index 0000000..28e75c6 --- /dev/null +++ b/lib/aws/Aws/data/elastictranscoder/2012-09-25/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elastictranscoder/2012-09-25/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListPresets', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'ReadJob', 'input' => [ 'Id' => 'fake_job', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/elastictranscoder/2012-09-25/waiters-1.json.php b/lib/aws/Aws/data/elastictranscoder/2012-09-25/waiters-1.json.php new file mode 100644 index 0000000..50ecbd7 --- /dev/null +++ b/lib/aws/Aws/data/elastictranscoder/2012-09-25/waiters-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elastictranscoder/2012-09-25/waiters-1.json +return [ 'waiters' => [ 'JobComplete' => [ 'operation' => 'ReadJob', 'success_type' => 'output', 'success_path' => 'Job.Status', 'interval' => 30, 'max_attempts' => 120, 'success_value' => 'Complete', 'failure_value' => [ 'Canceled', 'Error', ], ], ],]; diff --git a/lib/aws/Aws/data/elastictranscoder/2012-09-25/waiters-2.json.php b/lib/aws/Aws/data/elastictranscoder/2012-09-25/waiters-2.json.php new file mode 100644 index 0000000..b946b8f --- /dev/null +++ b/lib/aws/Aws/data/elastictranscoder/2012-09-25/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/elastictranscoder/2012-09-25/waiters-2.json +return [ '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/Aws/data/email/2010-12-01/api-2.json.php b/lib/aws/Aws/data/email/2010-12-01/api-2.json.php new file mode 100644 index 0000000..13e42ba --- /dev/null +++ b/lib/aws/Aws/data/email/2010-12-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/email/2010-12-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2010-12-01', 'endpointPrefix' => 'email', 'protocol' => 'query', 'serviceAbbreviation' => 'Amazon SES', 'serviceFullName' => 'Amazon Simple Email Service', 'serviceId' => 'SES', 'signatureVersion' => 'v4', 'signingName' => 'ses', 'uid' => 'email-2010-12-01', 'xmlNamespace' => 'http://ses.amazonaws.com/doc/2010-12-01/', ], 'operations' => [ 'CloneReceiptRuleSet' => [ 'name' => 'CloneReceiptRuleSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CloneReceiptRuleSetRequest', ], 'output' => [ 'shape' => 'CloneReceiptRuleSetResponse', 'resultWrapper' => 'CloneReceiptRuleSetResult', ], 'errors' => [ [ 'shape' => 'RuleSetDoesNotExistException', ], [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateConfigurationSet' => [ 'name' => 'CreateConfigurationSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateConfigurationSetRequest', ], 'output' => [ 'shape' => 'CreateConfigurationSetResponse', 'resultWrapper' => 'CreateConfigurationSetResult', ], 'errors' => [ [ 'shape' => 'ConfigurationSetAlreadyExistsException', ], [ 'shape' => 'InvalidConfigurationSetException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateConfigurationSetEventDestination' => [ 'name' => 'CreateConfigurationSetEventDestination', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateConfigurationSetEventDestinationRequest', ], 'output' => [ 'shape' => 'CreateConfigurationSetEventDestinationResponse', 'resultWrapper' => 'CreateConfigurationSetEventDestinationResult', ], 'errors' => [ [ 'shape' => 'ConfigurationSetDoesNotExistException', ], [ 'shape' => 'EventDestinationAlreadyExistsException', ], [ 'shape' => 'InvalidCloudWatchDestinationException', ], [ 'shape' => 'InvalidFirehoseDestinationException', ], [ 'shape' => 'InvalidSNSDestinationException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateConfigurationSetTrackingOptions' => [ 'name' => 'CreateConfigurationSetTrackingOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateConfigurationSetTrackingOptionsRequest', ], 'output' => [ 'shape' => 'CreateConfigurationSetTrackingOptionsResponse', 'resultWrapper' => 'CreateConfigurationSetTrackingOptionsResult', ], 'errors' => [ [ 'shape' => 'ConfigurationSetDoesNotExistException', ], [ 'shape' => 'TrackingOptionsAlreadyExistsException', ], [ 'shape' => 'InvalidTrackingOptionsException', ], ], ], 'CreateCustomVerificationEmailTemplate' => [ 'name' => 'CreateCustomVerificationEmailTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCustomVerificationEmailTemplateRequest', ], 'errors' => [ [ 'shape' => 'CustomVerificationEmailTemplateAlreadyExistsException', ], [ 'shape' => 'FromEmailAddressNotVerifiedException', ], [ 'shape' => 'CustomVerificationEmailInvalidContentException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateReceiptFilter' => [ 'name' => 'CreateReceiptFilter', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateReceiptFilterRequest', ], 'output' => [ 'shape' => 'CreateReceiptFilterResponse', 'resultWrapper' => 'CreateReceiptFilterResult', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AlreadyExistsException', ], ], ], 'CreateReceiptRule' => [ 'name' => 'CreateReceiptRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateReceiptRuleRequest', ], 'output' => [ 'shape' => 'CreateReceiptRuleResponse', 'resultWrapper' => 'CreateReceiptRuleResult', ], 'errors' => [ [ 'shape' => 'InvalidSnsTopicException', ], [ 'shape' => 'InvalidS3ConfigurationException', ], [ 'shape' => 'InvalidLambdaFunctionException', ], [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'RuleDoesNotExistException', ], [ 'shape' => 'RuleSetDoesNotExistException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateReceiptRuleSet' => [ 'name' => 'CreateReceiptRuleSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateReceiptRuleSetRequest', ], 'output' => [ 'shape' => 'CreateReceiptRuleSetResponse', 'resultWrapper' => 'CreateReceiptRuleSetResult', ], 'errors' => [ [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateTemplate' => [ 'name' => 'CreateTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTemplateRequest', ], 'output' => [ 'shape' => 'CreateTemplateResponse', 'resultWrapper' => 'CreateTemplateResult', ], 'errors' => [ [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'InvalidTemplateException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'DeleteConfigurationSet' => [ 'name' => 'DeleteConfigurationSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteConfigurationSetRequest', ], 'output' => [ 'shape' => 'DeleteConfigurationSetResponse', 'resultWrapper' => 'DeleteConfigurationSetResult', ], 'errors' => [ [ 'shape' => 'ConfigurationSetDoesNotExistException', ], ], ], 'DeleteConfigurationSetEventDestination' => [ 'name' => 'DeleteConfigurationSetEventDestination', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteConfigurationSetEventDestinationRequest', ], 'output' => [ 'shape' => 'DeleteConfigurationSetEventDestinationResponse', 'resultWrapper' => 'DeleteConfigurationSetEventDestinationResult', ], 'errors' => [ [ 'shape' => 'ConfigurationSetDoesNotExistException', ], [ 'shape' => 'EventDestinationDoesNotExistException', ], ], ], 'DeleteConfigurationSetTrackingOptions' => [ 'name' => 'DeleteConfigurationSetTrackingOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteConfigurationSetTrackingOptionsRequest', ], 'output' => [ 'shape' => 'DeleteConfigurationSetTrackingOptionsResponse', 'resultWrapper' => 'DeleteConfigurationSetTrackingOptionsResult', ], 'errors' => [ [ 'shape' => 'ConfigurationSetDoesNotExistException', ], [ 'shape' => 'TrackingOptionsDoesNotExistException', ], ], ], 'DeleteCustomVerificationEmailTemplate' => [ 'name' => 'DeleteCustomVerificationEmailTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCustomVerificationEmailTemplateRequest', ], ], 'DeleteIdentity' => [ 'name' => 'DeleteIdentity', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIdentityRequest', ], 'output' => [ 'shape' => 'DeleteIdentityResponse', 'resultWrapper' => 'DeleteIdentityResult', ], ], 'DeleteIdentityPolicy' => [ 'name' => 'DeleteIdentityPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIdentityPolicyRequest', ], 'output' => [ 'shape' => 'DeleteIdentityPolicyResponse', 'resultWrapper' => 'DeleteIdentityPolicyResult', ], ], 'DeleteReceiptFilter' => [ 'name' => 'DeleteReceiptFilter', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteReceiptFilterRequest', ], 'output' => [ 'shape' => 'DeleteReceiptFilterResponse', 'resultWrapper' => 'DeleteReceiptFilterResult', ], ], 'DeleteReceiptRule' => [ 'name' => 'DeleteReceiptRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteReceiptRuleRequest', ], 'output' => [ 'shape' => 'DeleteReceiptRuleResponse', 'resultWrapper' => 'DeleteReceiptRuleResult', ], 'errors' => [ [ 'shape' => 'RuleSetDoesNotExistException', ], ], ], 'DeleteReceiptRuleSet' => [ 'name' => 'DeleteReceiptRuleSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteReceiptRuleSetRequest', ], 'output' => [ 'shape' => 'DeleteReceiptRuleSetResponse', 'resultWrapper' => 'DeleteReceiptRuleSetResult', ], 'errors' => [ [ 'shape' => 'CannotDeleteException', ], ], ], 'DeleteTemplate' => [ 'name' => 'DeleteTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTemplateRequest', ], 'output' => [ 'shape' => 'DeleteTemplateResponse', 'resultWrapper' => 'DeleteTemplateResult', ], ], 'DeleteVerifiedEmailAddress' => [ 'name' => 'DeleteVerifiedEmailAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVerifiedEmailAddressRequest', ], ], 'DescribeActiveReceiptRuleSet' => [ 'name' => 'DescribeActiveReceiptRuleSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeActiveReceiptRuleSetRequest', ], 'output' => [ 'shape' => 'DescribeActiveReceiptRuleSetResponse', 'resultWrapper' => 'DescribeActiveReceiptRuleSetResult', ], ], 'DescribeConfigurationSet' => [ 'name' => 'DescribeConfigurationSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeConfigurationSetRequest', ], 'output' => [ 'shape' => 'DescribeConfigurationSetResponse', 'resultWrapper' => 'DescribeConfigurationSetResult', ], 'errors' => [ [ 'shape' => 'ConfigurationSetDoesNotExistException', ], ], ], 'DescribeReceiptRule' => [ 'name' => 'DescribeReceiptRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReceiptRuleRequest', ], 'output' => [ 'shape' => 'DescribeReceiptRuleResponse', 'resultWrapper' => 'DescribeReceiptRuleResult', ], 'errors' => [ [ 'shape' => 'RuleDoesNotExistException', ], [ 'shape' => 'RuleSetDoesNotExistException', ], ], ], 'DescribeReceiptRuleSet' => [ 'name' => 'DescribeReceiptRuleSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReceiptRuleSetRequest', ], 'output' => [ 'shape' => 'DescribeReceiptRuleSetResponse', 'resultWrapper' => 'DescribeReceiptRuleSetResult', ], 'errors' => [ [ 'shape' => 'RuleSetDoesNotExistException', ], ], ], 'GetAccountSendingEnabled' => [ 'name' => 'GetAccountSendingEnabled', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'GetAccountSendingEnabledResponse', 'resultWrapper' => 'GetAccountSendingEnabledResult', ], ], 'GetCustomVerificationEmailTemplate' => [ 'name' => 'GetCustomVerificationEmailTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCustomVerificationEmailTemplateRequest', ], 'output' => [ 'shape' => 'GetCustomVerificationEmailTemplateResponse', 'resultWrapper' => 'GetCustomVerificationEmailTemplateResult', ], 'errors' => [ [ 'shape' => 'CustomVerificationEmailTemplateDoesNotExistException', ], ], ], 'GetIdentityDkimAttributes' => [ 'name' => 'GetIdentityDkimAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIdentityDkimAttributesRequest', ], 'output' => [ 'shape' => 'GetIdentityDkimAttributesResponse', 'resultWrapper' => 'GetIdentityDkimAttributesResult', ], ], 'GetIdentityMailFromDomainAttributes' => [ 'name' => 'GetIdentityMailFromDomainAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIdentityMailFromDomainAttributesRequest', ], 'output' => [ 'shape' => 'GetIdentityMailFromDomainAttributesResponse', 'resultWrapper' => 'GetIdentityMailFromDomainAttributesResult', ], ], 'GetIdentityNotificationAttributes' => [ 'name' => 'GetIdentityNotificationAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIdentityNotificationAttributesRequest', ], 'output' => [ 'shape' => 'GetIdentityNotificationAttributesResponse', 'resultWrapper' => 'GetIdentityNotificationAttributesResult', ], ], 'GetIdentityPolicies' => [ 'name' => 'GetIdentityPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIdentityPoliciesRequest', ], 'output' => [ 'shape' => 'GetIdentityPoliciesResponse', 'resultWrapper' => 'GetIdentityPoliciesResult', ], ], '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', ], ], 'GetTemplate' => [ 'name' => 'GetTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTemplateRequest', ], 'output' => [ 'shape' => 'GetTemplateResponse', 'resultWrapper' => 'GetTemplateResult', ], 'errors' => [ [ 'shape' => 'TemplateDoesNotExistException', ], ], ], 'ListConfigurationSets' => [ 'name' => 'ListConfigurationSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListConfigurationSetsRequest', ], 'output' => [ 'shape' => 'ListConfigurationSetsResponse', 'resultWrapper' => 'ListConfigurationSetsResult', ], ], 'ListCustomVerificationEmailTemplates' => [ 'name' => 'ListCustomVerificationEmailTemplates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListCustomVerificationEmailTemplatesRequest', ], 'output' => [ 'shape' => 'ListCustomVerificationEmailTemplatesResponse', 'resultWrapper' => 'ListCustomVerificationEmailTemplatesResult', ], ], 'ListIdentities' => [ 'name' => 'ListIdentities', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListIdentitiesRequest', ], 'output' => [ 'shape' => 'ListIdentitiesResponse', 'resultWrapper' => 'ListIdentitiesResult', ], ], 'ListIdentityPolicies' => [ 'name' => 'ListIdentityPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListIdentityPoliciesRequest', ], 'output' => [ 'shape' => 'ListIdentityPoliciesResponse', 'resultWrapper' => 'ListIdentityPoliciesResult', ], ], 'ListReceiptFilters' => [ 'name' => 'ListReceiptFilters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListReceiptFiltersRequest', ], 'output' => [ 'shape' => 'ListReceiptFiltersResponse', 'resultWrapper' => 'ListReceiptFiltersResult', ], ], 'ListReceiptRuleSets' => [ 'name' => 'ListReceiptRuleSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListReceiptRuleSetsRequest', ], 'output' => [ 'shape' => 'ListReceiptRuleSetsResponse', 'resultWrapper' => 'ListReceiptRuleSetsResult', ], ], 'ListTemplates' => [ 'name' => 'ListTemplates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTemplatesRequest', ], 'output' => [ 'shape' => 'ListTemplatesResponse', 'resultWrapper' => 'ListTemplatesResult', ], ], 'ListVerifiedEmailAddresses' => [ 'name' => 'ListVerifiedEmailAddresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'ListVerifiedEmailAddressesResponse', 'resultWrapper' => 'ListVerifiedEmailAddressesResult', ], ], 'PutIdentityPolicy' => [ 'name' => 'PutIdentityPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutIdentityPolicyRequest', ], 'output' => [ 'shape' => 'PutIdentityPolicyResponse', 'resultWrapper' => 'PutIdentityPolicyResult', ], 'errors' => [ [ 'shape' => 'InvalidPolicyException', ], ], ], 'ReorderReceiptRuleSet' => [ 'name' => 'ReorderReceiptRuleSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReorderReceiptRuleSetRequest', ], 'output' => [ 'shape' => 'ReorderReceiptRuleSetResponse', 'resultWrapper' => 'ReorderReceiptRuleSetResult', ], 'errors' => [ [ 'shape' => 'RuleSetDoesNotExistException', ], [ 'shape' => 'RuleDoesNotExistException', ], ], ], 'SendBounce' => [ 'name' => 'SendBounce', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SendBounceRequest', ], 'output' => [ 'shape' => 'SendBounceResponse', 'resultWrapper' => 'SendBounceResult', ], 'errors' => [ [ 'shape' => 'MessageRejected', ], ], ], 'SendBulkTemplatedEmail' => [ 'name' => 'SendBulkTemplatedEmail', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SendBulkTemplatedEmailRequest', ], 'output' => [ 'shape' => 'SendBulkTemplatedEmailResponse', 'resultWrapper' => 'SendBulkTemplatedEmailResult', ], 'errors' => [ [ 'shape' => 'MessageRejected', ], [ 'shape' => 'MailFromDomainNotVerifiedException', ], [ 'shape' => 'ConfigurationSetDoesNotExistException', ], [ 'shape' => 'TemplateDoesNotExistException', ], [ 'shape' => 'ConfigurationSetSendingPausedException', ], [ 'shape' => 'AccountSendingPausedException', ], ], ], 'SendCustomVerificationEmail' => [ 'name' => 'SendCustomVerificationEmail', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SendCustomVerificationEmailRequest', ], 'output' => [ 'shape' => 'SendCustomVerificationEmailResponse', 'resultWrapper' => 'SendCustomVerificationEmailResult', ], 'errors' => [ [ 'shape' => 'MessageRejected', ], [ 'shape' => 'ConfigurationSetDoesNotExistException', ], [ 'shape' => 'CustomVerificationEmailTemplateDoesNotExistException', ], [ 'shape' => 'FromEmailAddressNotVerifiedException', ], [ 'shape' => 'ProductionAccessNotGrantedException', ], ], ], 'SendEmail' => [ 'name' => 'SendEmail', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SendEmailRequest', ], 'output' => [ 'shape' => 'SendEmailResponse', 'resultWrapper' => 'SendEmailResult', ], 'errors' => [ [ 'shape' => 'MessageRejected', ], [ 'shape' => 'MailFromDomainNotVerifiedException', ], [ 'shape' => 'ConfigurationSetDoesNotExistException', ], [ 'shape' => 'ConfigurationSetSendingPausedException', ], [ 'shape' => 'AccountSendingPausedException', ], ], ], 'SendRawEmail' => [ 'name' => 'SendRawEmail', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SendRawEmailRequest', ], 'output' => [ 'shape' => 'SendRawEmailResponse', 'resultWrapper' => 'SendRawEmailResult', ], 'errors' => [ [ 'shape' => 'MessageRejected', ], [ 'shape' => 'MailFromDomainNotVerifiedException', ], [ 'shape' => 'ConfigurationSetDoesNotExistException', ], [ 'shape' => 'ConfigurationSetSendingPausedException', ], [ 'shape' => 'AccountSendingPausedException', ], ], ], 'SendTemplatedEmail' => [ 'name' => 'SendTemplatedEmail', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SendTemplatedEmailRequest', ], 'output' => [ 'shape' => 'SendTemplatedEmailResponse', 'resultWrapper' => 'SendTemplatedEmailResult', ], 'errors' => [ [ 'shape' => 'MessageRejected', ], [ 'shape' => 'MailFromDomainNotVerifiedException', ], [ 'shape' => 'ConfigurationSetDoesNotExistException', ], [ 'shape' => 'TemplateDoesNotExistException', ], [ 'shape' => 'ConfigurationSetSendingPausedException', ], [ 'shape' => 'AccountSendingPausedException', ], ], ], 'SetActiveReceiptRuleSet' => [ 'name' => 'SetActiveReceiptRuleSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetActiveReceiptRuleSetRequest', ], 'output' => [ 'shape' => 'SetActiveReceiptRuleSetResponse', 'resultWrapper' => 'SetActiveReceiptRuleSetResult', ], 'errors' => [ [ 'shape' => 'RuleSetDoesNotExistException', ], ], ], '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', ], ], 'SetIdentityHeadersInNotificationsEnabled' => [ 'name' => 'SetIdentityHeadersInNotificationsEnabled', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetIdentityHeadersInNotificationsEnabledRequest', ], 'output' => [ 'shape' => 'SetIdentityHeadersInNotificationsEnabledResponse', 'resultWrapper' => 'SetIdentityHeadersInNotificationsEnabledResult', ], ], 'SetIdentityMailFromDomain' => [ 'name' => 'SetIdentityMailFromDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetIdentityMailFromDomainRequest', ], 'output' => [ 'shape' => 'SetIdentityMailFromDomainResponse', 'resultWrapper' => 'SetIdentityMailFromDomainResult', ], ], 'SetIdentityNotificationTopic' => [ 'name' => 'SetIdentityNotificationTopic', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetIdentityNotificationTopicRequest', ], 'output' => [ 'shape' => 'SetIdentityNotificationTopicResponse', 'resultWrapper' => 'SetIdentityNotificationTopicResult', ], ], 'SetReceiptRulePosition' => [ 'name' => 'SetReceiptRulePosition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetReceiptRulePositionRequest', ], 'output' => [ 'shape' => 'SetReceiptRulePositionResponse', 'resultWrapper' => 'SetReceiptRulePositionResult', ], 'errors' => [ [ 'shape' => 'RuleSetDoesNotExistException', ], [ 'shape' => 'RuleDoesNotExistException', ], ], ], 'TestRenderTemplate' => [ 'name' => 'TestRenderTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TestRenderTemplateRequest', ], 'output' => [ 'shape' => 'TestRenderTemplateResponse', 'resultWrapper' => 'TestRenderTemplateResult', ], 'errors' => [ [ 'shape' => 'TemplateDoesNotExistException', ], [ 'shape' => 'InvalidRenderingParameterException', ], [ 'shape' => 'MissingRenderingAttributeException', ], ], ], 'UpdateAccountSendingEnabled' => [ 'name' => 'UpdateAccountSendingEnabled', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateAccountSendingEnabledRequest', ], ], 'UpdateConfigurationSetEventDestination' => [ 'name' => 'UpdateConfigurationSetEventDestination', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateConfigurationSetEventDestinationRequest', ], 'output' => [ 'shape' => 'UpdateConfigurationSetEventDestinationResponse', 'resultWrapper' => 'UpdateConfigurationSetEventDestinationResult', ], 'errors' => [ [ 'shape' => 'ConfigurationSetDoesNotExistException', ], [ 'shape' => 'EventDestinationDoesNotExistException', ], [ 'shape' => 'InvalidCloudWatchDestinationException', ], [ 'shape' => 'InvalidFirehoseDestinationException', ], [ 'shape' => 'InvalidSNSDestinationException', ], ], ], 'UpdateConfigurationSetReputationMetricsEnabled' => [ 'name' => 'UpdateConfigurationSetReputationMetricsEnabled', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateConfigurationSetReputationMetricsEnabledRequest', ], 'errors' => [ [ 'shape' => 'ConfigurationSetDoesNotExistException', ], ], ], 'UpdateConfigurationSetSendingEnabled' => [ 'name' => 'UpdateConfigurationSetSendingEnabled', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateConfigurationSetSendingEnabledRequest', ], 'errors' => [ [ 'shape' => 'ConfigurationSetDoesNotExistException', ], ], ], 'UpdateConfigurationSetTrackingOptions' => [ 'name' => 'UpdateConfigurationSetTrackingOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateConfigurationSetTrackingOptionsRequest', ], 'output' => [ 'shape' => 'UpdateConfigurationSetTrackingOptionsResponse', 'resultWrapper' => 'UpdateConfigurationSetTrackingOptionsResult', ], 'errors' => [ [ 'shape' => 'ConfigurationSetDoesNotExistException', ], [ 'shape' => 'TrackingOptionsDoesNotExistException', ], [ 'shape' => 'InvalidTrackingOptionsException', ], ], ], 'UpdateCustomVerificationEmailTemplate' => [ 'name' => 'UpdateCustomVerificationEmailTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateCustomVerificationEmailTemplateRequest', ], 'errors' => [ [ 'shape' => 'CustomVerificationEmailTemplateDoesNotExistException', ], [ 'shape' => 'FromEmailAddressNotVerifiedException', ], [ 'shape' => 'CustomVerificationEmailInvalidContentException', ], ], ], 'UpdateReceiptRule' => [ 'name' => 'UpdateReceiptRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateReceiptRuleRequest', ], 'output' => [ 'shape' => 'UpdateReceiptRuleResponse', 'resultWrapper' => 'UpdateReceiptRuleResult', ], 'errors' => [ [ 'shape' => 'InvalidSnsTopicException', ], [ 'shape' => 'InvalidS3ConfigurationException', ], [ 'shape' => 'InvalidLambdaFunctionException', ], [ 'shape' => 'RuleSetDoesNotExistException', ], [ 'shape' => 'RuleDoesNotExistException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'UpdateTemplate' => [ 'name' => 'UpdateTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateTemplateRequest', ], 'output' => [ 'shape' => 'UpdateTemplateResponse', 'resultWrapper' => 'UpdateTemplateResult', ], 'errors' => [ [ 'shape' => 'TemplateDoesNotExistException', ], [ 'shape' => 'InvalidTemplateException', ], ], ], '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' => [ 'AccountSendingPausedException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'AccountSendingPausedException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'AddHeaderAction' => [ 'type' => 'structure', 'required' => [ 'HeaderName', 'HeaderValue', ], 'members' => [ 'HeaderName' => [ 'shape' => 'HeaderName', ], 'HeaderValue' => [ 'shape' => 'HeaderValue', ], ], ], 'Address' => [ 'type' => 'string', ], 'AddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Address', ], ], 'AlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'RuleOrRuleSetName', ], ], 'error' => [ 'code' => 'AlreadyExists', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'AmazonResourceName' => [ 'type' => 'string', ], 'ArrivalDate' => [ 'type' => 'timestamp', ], 'BehaviorOnMXFailure' => [ 'type' => 'string', 'enum' => [ 'UseDefaultValue', 'RejectMessage', ], ], 'Body' => [ 'type' => 'structure', 'members' => [ 'Text' => [ 'shape' => 'Content', ], 'Html' => [ 'shape' => 'Content', ], ], ], 'BounceAction' => [ 'type' => 'structure', 'required' => [ 'SmtpReplyCode', 'Message', 'Sender', ], 'members' => [ 'TopicArn' => [ 'shape' => 'AmazonResourceName', ], 'SmtpReplyCode' => [ 'shape' => 'BounceSmtpReplyCode', ], 'StatusCode' => [ 'shape' => 'BounceStatusCode', ], 'Message' => [ 'shape' => 'BounceMessage', ], 'Sender' => [ 'shape' => 'Address', ], ], ], 'BounceMessage' => [ 'type' => 'string', ], 'BounceSmtpReplyCode' => [ 'type' => 'string', ], 'BounceStatusCode' => [ 'type' => 'string', ], 'BounceType' => [ 'type' => 'string', 'enum' => [ 'DoesNotExist', 'MessageTooLarge', 'ExceededQuota', 'ContentRejected', 'Undefined', 'TemporaryFailure', ], ], 'BouncedRecipientInfo' => [ 'type' => 'structure', 'required' => [ 'Recipient', ], 'members' => [ 'Recipient' => [ 'shape' => 'Address', ], 'RecipientArn' => [ 'shape' => 'AmazonResourceName', ], 'BounceType' => [ 'shape' => 'BounceType', ], 'RecipientDsnFields' => [ 'shape' => 'RecipientDsnFields', ], ], ], 'BouncedRecipientInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BouncedRecipientInfo', ], ], 'BulkEmailDestination' => [ 'type' => 'structure', 'required' => [ 'Destination', ], 'members' => [ 'Destination' => [ 'shape' => 'Destination', ], 'ReplacementTags' => [ 'shape' => 'MessageTagList', ], 'ReplacementTemplateData' => [ 'shape' => 'TemplateData', ], ], ], 'BulkEmailDestinationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BulkEmailDestination', ], ], 'BulkEmailDestinationStatus' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'BulkEmailStatus', ], 'Error' => [ 'shape' => 'Error', ], 'MessageId' => [ 'shape' => 'MessageId', ], ], ], 'BulkEmailDestinationStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BulkEmailDestinationStatus', ], ], 'BulkEmailStatus' => [ 'type' => 'string', 'enum' => [ 'Success', 'MessageRejected', 'MailFromDomainNotVerified', 'ConfigurationSetDoesNotExist', 'TemplateDoesNotExist', 'AccountSuspended', 'AccountThrottled', 'AccountDailyQuotaExceeded', 'InvalidSendingPoolName', 'AccountSendingPaused', 'ConfigurationSetSendingPaused', 'InvalidParameterValue', 'TransientFailure', 'Failed', ], ], 'CannotDeleteException' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'RuleOrRuleSetName', ], ], 'error' => [ 'code' => 'CannotDelete', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'Charset' => [ 'type' => 'string', ], 'Cidr' => [ 'type' => 'string', ], 'CloneReceiptRuleSetRequest' => [ 'type' => 'structure', 'required' => [ 'RuleSetName', 'OriginalRuleSetName', ], 'members' => [ 'RuleSetName' => [ 'shape' => 'ReceiptRuleSetName', ], 'OriginalRuleSetName' => [ 'shape' => 'ReceiptRuleSetName', ], ], ], 'CloneReceiptRuleSetResponse' => [ 'type' => 'structure', 'members' => [], ], 'CloudWatchDestination' => [ 'type' => 'structure', 'required' => [ 'DimensionConfigurations', ], 'members' => [ 'DimensionConfigurations' => [ 'shape' => 'CloudWatchDimensionConfigurations', ], ], ], 'CloudWatchDimensionConfiguration' => [ 'type' => 'structure', 'required' => [ 'DimensionName', 'DimensionValueSource', 'DefaultDimensionValue', ], 'members' => [ 'DimensionName' => [ 'shape' => 'DimensionName', ], 'DimensionValueSource' => [ 'shape' => 'DimensionValueSource', ], 'DefaultDimensionValue' => [ 'shape' => 'DefaultDimensionValue', ], ], ], 'CloudWatchDimensionConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'CloudWatchDimensionConfiguration', ], ], 'ConfigurationSet' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'ConfigurationSetName', ], ], ], 'ConfigurationSetAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], ], 'error' => [ 'code' => 'ConfigurationSetAlreadyExists', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ConfigurationSetAttribute' => [ 'type' => 'string', 'enum' => [ 'eventDestinations', 'trackingOptions', 'reputationOptions', ], ], 'ConfigurationSetAttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationSetAttribute', ], ], 'ConfigurationSetDoesNotExistException' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], ], 'error' => [ 'code' => 'ConfigurationSetDoesNotExist', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ConfigurationSetName' => [ 'type' => 'string', ], 'ConfigurationSetSendingPausedException' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], ], 'error' => [ 'code' => 'ConfigurationSetSendingPausedException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ConfigurationSets' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationSet', ], ], 'Content' => [ 'type' => 'structure', 'required' => [ 'Data', ], 'members' => [ 'Data' => [ 'shape' => 'MessageData', ], 'Charset' => [ 'shape' => 'Charset', ], ], ], 'Counter' => [ 'type' => 'long', ], 'CreateConfigurationSetEventDestinationRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSetName', 'EventDestination', ], 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], 'EventDestination' => [ 'shape' => 'EventDestination', ], ], ], 'CreateConfigurationSetEventDestinationResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateConfigurationSetRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSet', ], 'members' => [ 'ConfigurationSet' => [ 'shape' => 'ConfigurationSet', ], ], ], 'CreateConfigurationSetResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateConfigurationSetTrackingOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSetName', 'TrackingOptions', ], 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], 'TrackingOptions' => [ 'shape' => 'TrackingOptions', ], ], ], 'CreateConfigurationSetTrackingOptionsResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateCustomVerificationEmailTemplateRequest' => [ 'type' => 'structure', 'required' => [ 'TemplateName', 'FromEmailAddress', 'TemplateSubject', 'TemplateContent', 'SuccessRedirectionURL', 'FailureRedirectionURL', ], 'members' => [ 'TemplateName' => [ 'shape' => 'TemplateName', ], 'FromEmailAddress' => [ 'shape' => 'FromAddress', ], 'TemplateSubject' => [ 'shape' => 'Subject', ], 'TemplateContent' => [ 'shape' => 'TemplateContent', ], 'SuccessRedirectionURL' => [ 'shape' => 'SuccessRedirectionURL', ], 'FailureRedirectionURL' => [ 'shape' => 'FailureRedirectionURL', ], ], ], 'CreateReceiptFilterRequest' => [ 'type' => 'structure', 'required' => [ 'Filter', ], 'members' => [ 'Filter' => [ 'shape' => 'ReceiptFilter', ], ], ], 'CreateReceiptFilterResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateReceiptRuleRequest' => [ 'type' => 'structure', 'required' => [ 'RuleSetName', 'Rule', ], 'members' => [ 'RuleSetName' => [ 'shape' => 'ReceiptRuleSetName', ], 'After' => [ 'shape' => 'ReceiptRuleName', ], 'Rule' => [ 'shape' => 'ReceiptRule', ], ], ], 'CreateReceiptRuleResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateReceiptRuleSetRequest' => [ 'type' => 'structure', 'required' => [ 'RuleSetName', ], 'members' => [ 'RuleSetName' => [ 'shape' => 'ReceiptRuleSetName', ], ], ], 'CreateReceiptRuleSetResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateTemplateRequest' => [ 'type' => 'structure', 'required' => [ 'Template', ], 'members' => [ 'Template' => [ 'shape' => 'Template', ], ], ], 'CreateTemplateResponse' => [ 'type' => 'structure', 'members' => [], ], 'CustomMailFromStatus' => [ 'type' => 'string', 'enum' => [ 'Pending', 'Success', 'Failed', 'TemporaryFailure', ], ], 'CustomRedirectDomain' => [ 'type' => 'string', ], 'CustomVerificationEmailInvalidContentException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'CustomVerificationEmailInvalidContent', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'CustomVerificationEmailTemplate' => [ 'type' => 'structure', 'members' => [ 'TemplateName' => [ 'shape' => 'TemplateName', ], 'FromEmailAddress' => [ 'shape' => 'FromAddress', ], 'TemplateSubject' => [ 'shape' => 'Subject', ], 'SuccessRedirectionURL' => [ 'shape' => 'SuccessRedirectionURL', ], 'FailureRedirectionURL' => [ 'shape' => 'FailureRedirectionURL', ], ], ], 'CustomVerificationEmailTemplateAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'CustomVerificationEmailTemplateName' => [ 'shape' => 'TemplateName', ], ], 'error' => [ 'code' => 'CustomVerificationEmailTemplateAlreadyExists', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'CustomVerificationEmailTemplateDoesNotExistException' => [ 'type' => 'structure', 'members' => [ 'CustomVerificationEmailTemplateName' => [ 'shape' => 'TemplateName', ], ], 'error' => [ 'code' => 'CustomVerificationEmailTemplateDoesNotExist', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'CustomVerificationEmailTemplates' => [ 'type' => 'list', 'member' => [ 'shape' => 'CustomVerificationEmailTemplate', ], ], 'DefaultDimensionValue' => [ 'type' => 'string', ], 'DeleteConfigurationSetEventDestinationRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSetName', 'EventDestinationName', ], 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], 'EventDestinationName' => [ 'shape' => 'EventDestinationName', ], ], ], 'DeleteConfigurationSetEventDestinationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteConfigurationSetRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSetName', ], 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], ], ], 'DeleteConfigurationSetResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteConfigurationSetTrackingOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSetName', ], 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], ], ], 'DeleteConfigurationSetTrackingOptionsResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteCustomVerificationEmailTemplateRequest' => [ 'type' => 'structure', 'required' => [ 'TemplateName', ], 'members' => [ 'TemplateName' => [ 'shape' => 'TemplateName', ], ], ], 'DeleteIdentityPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'Identity', 'PolicyName', ], 'members' => [ 'Identity' => [ 'shape' => 'Identity', ], 'PolicyName' => [ 'shape' => 'PolicyName', ], ], ], 'DeleteIdentityPolicyResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'Identity', ], 'members' => [ 'Identity' => [ 'shape' => 'Identity', ], ], ], 'DeleteIdentityResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteReceiptFilterRequest' => [ 'type' => 'structure', 'required' => [ 'FilterName', ], 'members' => [ 'FilterName' => [ 'shape' => 'ReceiptFilterName', ], ], ], 'DeleteReceiptFilterResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteReceiptRuleRequest' => [ 'type' => 'structure', 'required' => [ 'RuleSetName', 'RuleName', ], 'members' => [ 'RuleSetName' => [ 'shape' => 'ReceiptRuleSetName', ], 'RuleName' => [ 'shape' => 'ReceiptRuleName', ], ], ], 'DeleteReceiptRuleResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteReceiptRuleSetRequest' => [ 'type' => 'structure', 'required' => [ 'RuleSetName', ], 'members' => [ 'RuleSetName' => [ 'shape' => 'ReceiptRuleSetName', ], ], ], 'DeleteReceiptRuleSetResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteTemplateRequest' => [ 'type' => 'structure', 'required' => [ 'TemplateName', ], 'members' => [ 'TemplateName' => [ 'shape' => 'TemplateName', ], ], ], 'DeleteTemplateResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteVerifiedEmailAddressRequest' => [ 'type' => 'structure', 'required' => [ 'EmailAddress', ], 'members' => [ 'EmailAddress' => [ 'shape' => 'Address', ], ], ], 'DescribeActiveReceiptRuleSetRequest' => [ 'type' => 'structure', 'members' => [], ], 'DescribeActiveReceiptRuleSetResponse' => [ 'type' => 'structure', 'members' => [ 'Metadata' => [ 'shape' => 'ReceiptRuleSetMetadata', ], 'Rules' => [ 'shape' => 'ReceiptRulesList', ], ], ], 'DescribeConfigurationSetRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSetName', ], 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], 'ConfigurationSetAttributeNames' => [ 'shape' => 'ConfigurationSetAttributeList', ], ], ], 'DescribeConfigurationSetResponse' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSet' => [ 'shape' => 'ConfigurationSet', ], 'EventDestinations' => [ 'shape' => 'EventDestinations', ], 'TrackingOptions' => [ 'shape' => 'TrackingOptions', ], 'ReputationOptions' => [ 'shape' => 'ReputationOptions', ], ], ], 'DescribeReceiptRuleRequest' => [ 'type' => 'structure', 'required' => [ 'RuleSetName', 'RuleName', ], 'members' => [ 'RuleSetName' => [ 'shape' => 'ReceiptRuleSetName', ], 'RuleName' => [ 'shape' => 'ReceiptRuleName', ], ], ], 'DescribeReceiptRuleResponse' => [ 'type' => 'structure', 'members' => [ 'Rule' => [ 'shape' => 'ReceiptRule', ], ], ], 'DescribeReceiptRuleSetRequest' => [ 'type' => 'structure', 'required' => [ 'RuleSetName', ], 'members' => [ 'RuleSetName' => [ 'shape' => 'ReceiptRuleSetName', ], ], ], 'DescribeReceiptRuleSetResponse' => [ 'type' => 'structure', 'members' => [ 'Metadata' => [ 'shape' => 'ReceiptRuleSetMetadata', ], 'Rules' => [ 'shape' => 'ReceiptRulesList', ], ], ], 'Destination' => [ 'type' => 'structure', 'members' => [ 'ToAddresses' => [ 'shape' => 'AddressList', ], 'CcAddresses' => [ 'shape' => 'AddressList', ], 'BccAddresses' => [ 'shape' => 'AddressList', ], ], ], 'DiagnosticCode' => [ 'type' => 'string', ], 'DimensionName' => [ 'type' => 'string', ], 'DimensionValueSource' => [ 'type' => 'string', 'enum' => [ 'messageTag', 'emailHeader', 'linkTag', ], ], 'DkimAttributes' => [ 'type' => 'map', 'key' => [ 'shape' => 'Identity', ], 'value' => [ 'shape' => 'IdentityDkimAttributes', ], ], 'Domain' => [ 'type' => 'string', ], 'DsnAction' => [ 'type' => 'string', 'enum' => [ 'failed', 'delayed', 'delivered', 'relayed', 'expanded', ], ], 'DsnStatus' => [ 'type' => 'string', ], 'Enabled' => [ 'type' => 'boolean', ], 'Error' => [ 'type' => 'string', ], 'EventDestination' => [ 'type' => 'structure', 'required' => [ 'Name', 'MatchingEventTypes', ], 'members' => [ 'Name' => [ 'shape' => 'EventDestinationName', ], 'Enabled' => [ 'shape' => 'Enabled', ], 'MatchingEventTypes' => [ 'shape' => 'EventTypes', ], 'KinesisFirehoseDestination' => [ 'shape' => 'KinesisFirehoseDestination', ], 'CloudWatchDestination' => [ 'shape' => 'CloudWatchDestination', ], 'SNSDestination' => [ 'shape' => 'SNSDestination', ], ], ], 'EventDestinationAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], 'EventDestinationName' => [ 'shape' => 'EventDestinationName', ], ], 'error' => [ 'code' => 'EventDestinationAlreadyExists', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'EventDestinationDoesNotExistException' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], 'EventDestinationName' => [ 'shape' => 'EventDestinationName', ], ], 'error' => [ 'code' => 'EventDestinationDoesNotExist', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'EventDestinationName' => [ 'type' => 'string', ], 'EventDestinations' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventDestination', ], ], 'EventType' => [ 'type' => 'string', 'enum' => [ 'send', 'reject', 'bounce', 'complaint', 'delivery', 'open', 'click', 'renderingFailure', ], ], 'EventTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventType', ], ], 'Explanation' => [ 'type' => 'string', ], 'ExtensionField' => [ 'type' => 'structure', 'required' => [ 'Name', 'Value', ], 'members' => [ 'Name' => [ 'shape' => 'ExtensionFieldName', ], 'Value' => [ 'shape' => 'ExtensionFieldValue', ], ], ], 'ExtensionFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExtensionField', ], ], 'ExtensionFieldName' => [ 'type' => 'string', ], 'ExtensionFieldValue' => [ 'type' => 'string', ], 'FailureRedirectionURL' => [ 'type' => 'string', ], 'FromAddress' => [ 'type' => 'string', ], 'FromEmailAddressNotVerifiedException' => [ 'type' => 'structure', 'members' => [ 'FromEmailAddress' => [ 'shape' => 'FromAddress', ], ], 'error' => [ 'code' => 'FromEmailAddressNotVerified', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'GetAccountSendingEnabledResponse' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Enabled', ], ], ], 'GetCustomVerificationEmailTemplateRequest' => [ 'type' => 'structure', 'required' => [ 'TemplateName', ], 'members' => [ 'TemplateName' => [ 'shape' => 'TemplateName', ], ], ], 'GetCustomVerificationEmailTemplateResponse' => [ 'type' => 'structure', 'members' => [ 'TemplateName' => [ 'shape' => 'TemplateName', ], 'FromEmailAddress' => [ 'shape' => 'FromAddress', ], 'TemplateSubject' => [ 'shape' => 'Subject', ], 'TemplateContent' => [ 'shape' => 'TemplateContent', ], 'SuccessRedirectionURL' => [ 'shape' => 'SuccessRedirectionURL', ], 'FailureRedirectionURL' => [ 'shape' => 'FailureRedirectionURL', ], ], ], 'GetIdentityDkimAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'Identities', ], 'members' => [ 'Identities' => [ 'shape' => 'IdentityList', ], ], ], 'GetIdentityDkimAttributesResponse' => [ 'type' => 'structure', 'required' => [ 'DkimAttributes', ], 'members' => [ 'DkimAttributes' => [ 'shape' => 'DkimAttributes', ], ], ], 'GetIdentityMailFromDomainAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'Identities', ], 'members' => [ 'Identities' => [ 'shape' => 'IdentityList', ], ], ], 'GetIdentityMailFromDomainAttributesResponse' => [ 'type' => 'structure', 'required' => [ 'MailFromDomainAttributes', ], 'members' => [ 'MailFromDomainAttributes' => [ 'shape' => 'MailFromDomainAttributes', ], ], ], 'GetIdentityNotificationAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'Identities', ], 'members' => [ 'Identities' => [ 'shape' => 'IdentityList', ], ], ], 'GetIdentityNotificationAttributesResponse' => [ 'type' => 'structure', 'required' => [ 'NotificationAttributes', ], 'members' => [ 'NotificationAttributes' => [ 'shape' => 'NotificationAttributes', ], ], ], 'GetIdentityPoliciesRequest' => [ 'type' => 'structure', 'required' => [ 'Identity', 'PolicyNames', ], 'members' => [ 'Identity' => [ 'shape' => 'Identity', ], 'PolicyNames' => [ 'shape' => 'PolicyNameList', ], ], ], 'GetIdentityPoliciesResponse' => [ 'type' => 'structure', 'required' => [ 'Policies', ], 'members' => [ 'Policies' => [ 'shape' => 'PolicyMap', ], ], ], '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', ], ], ], 'GetTemplateRequest' => [ 'type' => 'structure', 'required' => [ 'TemplateName', ], 'members' => [ 'TemplateName' => [ 'shape' => 'TemplateName', ], ], ], 'GetTemplateResponse' => [ 'type' => 'structure', 'members' => [ 'Template' => [ 'shape' => 'Template', ], ], ], 'HeaderName' => [ 'type' => 'string', ], 'HeaderValue' => [ 'type' => 'string', ], 'HtmlPart' => [ 'type' => 'string', ], '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', ], ], 'IdentityMailFromDomainAttributes' => [ 'type' => 'structure', 'required' => [ 'MailFromDomain', 'MailFromDomainStatus', 'BehaviorOnMXFailure', ], 'members' => [ 'MailFromDomain' => [ 'shape' => 'MailFromDomainName', ], 'MailFromDomainStatus' => [ 'shape' => 'CustomMailFromStatus', ], 'BehaviorOnMXFailure' => [ 'shape' => 'BehaviorOnMXFailure', ], ], ], 'IdentityNotificationAttributes' => [ 'type' => 'structure', 'required' => [ 'BounceTopic', 'ComplaintTopic', 'DeliveryTopic', 'ForwardingEnabled', ], 'members' => [ 'BounceTopic' => [ 'shape' => 'NotificationTopic', ], 'ComplaintTopic' => [ 'shape' => 'NotificationTopic', ], 'DeliveryTopic' => [ 'shape' => 'NotificationTopic', ], 'ForwardingEnabled' => [ 'shape' => 'Enabled', ], 'HeadersInBounceNotificationsEnabled' => [ 'shape' => 'Enabled', ], 'HeadersInComplaintNotificationsEnabled' => [ 'shape' => 'Enabled', ], 'HeadersInDeliveryNotificationsEnabled' => [ 'shape' => 'Enabled', ], ], ], 'IdentityType' => [ 'type' => 'string', 'enum' => [ 'EmailAddress', 'Domain', ], ], 'IdentityVerificationAttributes' => [ 'type' => 'structure', 'required' => [ 'VerificationStatus', ], 'members' => [ 'VerificationStatus' => [ 'shape' => 'VerificationStatus', ], 'VerificationToken' => [ 'shape' => 'VerificationToken', ], ], ], 'InvalidCloudWatchDestinationException' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], 'EventDestinationName' => [ 'shape' => 'EventDestinationName', ], ], 'error' => [ 'code' => 'InvalidCloudWatchDestination', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidConfigurationSetException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidConfigurationSet', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidFirehoseDestinationException' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], 'EventDestinationName' => [ 'shape' => 'EventDestinationName', ], ], 'error' => [ 'code' => 'InvalidFirehoseDestination', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidLambdaFunctionException' => [ 'type' => 'structure', 'members' => [ 'FunctionArn' => [ 'shape' => 'AmazonResourceName', ], ], 'error' => [ 'code' => 'InvalidLambdaFunction', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidPolicyException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidPolicy', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidRenderingParameterException' => [ 'type' => 'structure', 'members' => [ 'TemplateName' => [ 'shape' => 'TemplateName', ], ], 'error' => [ 'code' => 'InvalidRenderingParameter', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidS3ConfigurationException' => [ 'type' => 'structure', 'members' => [ 'Bucket' => [ 'shape' => 'S3BucketName', ], ], 'error' => [ 'code' => 'InvalidS3Configuration', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidSNSDestinationException' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], 'EventDestinationName' => [ 'shape' => 'EventDestinationName', ], ], 'error' => [ 'code' => 'InvalidSNSDestination', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidSnsTopicException' => [ 'type' => 'structure', 'members' => [ 'Topic' => [ 'shape' => 'AmazonResourceName', ], ], 'error' => [ 'code' => 'InvalidSnsTopic', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidTemplateException' => [ 'type' => 'structure', 'members' => [ 'TemplateName' => [ 'shape' => 'TemplateName', ], ], 'error' => [ 'code' => 'InvalidTemplate', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidTrackingOptionsException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidTrackingOptions', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvocationType' => [ 'type' => 'string', 'enum' => [ 'Event', 'RequestResponse', ], ], 'KinesisFirehoseDestination' => [ 'type' => 'structure', 'required' => [ 'IAMRoleARN', 'DeliveryStreamARN', ], 'members' => [ 'IAMRoleARN' => [ 'shape' => 'AmazonResourceName', ], 'DeliveryStreamARN' => [ 'shape' => 'AmazonResourceName', ], ], ], 'LambdaAction' => [ 'type' => 'structure', 'required' => [ 'FunctionArn', ], 'members' => [ 'TopicArn' => [ 'shape' => 'AmazonResourceName', ], 'FunctionArn' => [ 'shape' => 'AmazonResourceName', ], 'InvocationType' => [ 'shape' => 'InvocationType', ], ], ], 'LastAttemptDate' => [ 'type' => 'timestamp', ], 'LastFreshStart' => [ 'type' => 'timestamp', ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'LimitExceeded', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ListConfigurationSetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxItems' => [ 'shape' => 'MaxItems', ], ], ], 'ListConfigurationSetsResponse' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSets' => [ 'shape' => 'ConfigurationSets', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListCustomVerificationEmailTemplatesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListCustomVerificationEmailTemplatesResponse' => [ 'type' => 'structure', 'members' => [ 'CustomVerificationEmailTemplates' => [ 'shape' => 'CustomVerificationEmailTemplates', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], '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', ], ], ], 'ListIdentityPoliciesRequest' => [ 'type' => 'structure', 'required' => [ 'Identity', ], 'members' => [ 'Identity' => [ 'shape' => 'Identity', ], ], ], 'ListIdentityPoliciesResponse' => [ 'type' => 'structure', 'required' => [ 'PolicyNames', ], 'members' => [ 'PolicyNames' => [ 'shape' => 'PolicyNameList', ], ], ], 'ListReceiptFiltersRequest' => [ 'type' => 'structure', 'members' => [], ], 'ListReceiptFiltersResponse' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'ReceiptFilterList', ], ], ], 'ListReceiptRuleSetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListReceiptRuleSetsResponse' => [ 'type' => 'structure', 'members' => [ 'RuleSets' => [ 'shape' => 'ReceiptRuleSetsLists', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTemplatesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxItems' => [ 'shape' => 'MaxItems', ], ], ], 'ListTemplatesResponse' => [ 'type' => 'structure', 'members' => [ 'TemplatesMetadata' => [ 'shape' => 'TemplateMetadataList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListVerifiedEmailAddressesResponse' => [ 'type' => 'structure', 'members' => [ 'VerifiedEmailAddresses' => [ 'shape' => 'AddressList', ], ], ], 'MailFromDomainAttributes' => [ 'type' => 'map', 'key' => [ 'shape' => 'Identity', ], 'value' => [ 'shape' => 'IdentityMailFromDomainAttributes', ], ], 'MailFromDomainName' => [ 'type' => 'string', ], 'MailFromDomainNotVerifiedException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'MailFromDomainNotVerifiedException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'Max24HourSend' => [ 'type' => 'double', ], 'MaxItems' => [ 'type' => 'integer', ], 'MaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 50, 'min' => 1, ], 'MaxSendRate' => [ 'type' => 'double', ], 'Message' => [ 'type' => 'structure', 'required' => [ 'Subject', 'Body', ], 'members' => [ 'Subject' => [ 'shape' => 'Content', ], 'Body' => [ 'shape' => 'Body', ], ], ], 'MessageData' => [ 'type' => 'string', ], 'MessageDsn' => [ 'type' => 'structure', 'required' => [ 'ReportingMta', ], 'members' => [ 'ReportingMta' => [ 'shape' => 'ReportingMta', ], 'ArrivalDate' => [ 'shape' => 'ArrivalDate', ], 'ExtensionFields' => [ 'shape' => 'ExtensionFieldList', ], ], ], 'MessageId' => [ 'type' => 'string', ], 'MessageRejected' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'MessageRejected', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'MessageTag' => [ 'type' => 'structure', 'required' => [ 'Name', 'Value', ], 'members' => [ 'Name' => [ 'shape' => 'MessageTagName', ], 'Value' => [ 'shape' => 'MessageTagValue', ], ], ], 'MessageTagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MessageTag', ], ], 'MessageTagName' => [ 'type' => 'string', ], 'MessageTagValue' => [ 'type' => 'string', ], 'MissingRenderingAttributeException' => [ 'type' => 'structure', 'members' => [ 'TemplateName' => [ 'shape' => 'TemplateName', ], ], 'error' => [ 'code' => 'MissingRenderingAttribute', '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', ], ], 'Policy' => [ 'type' => 'string', 'min' => 1, ], 'PolicyMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'PolicyName', ], 'value' => [ 'shape' => 'Policy', ], ], 'PolicyName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'PolicyNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyName', ], ], 'ProductionAccessNotGrantedException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'ProductionAccessNotGranted', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'PutIdentityPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'Identity', 'PolicyName', 'Policy', ], 'members' => [ 'Identity' => [ 'shape' => 'Identity', ], 'PolicyName' => [ 'shape' => 'PolicyName', ], 'Policy' => [ 'shape' => 'Policy', ], ], ], 'PutIdentityPolicyResponse' => [ 'type' => 'structure', 'members' => [], ], 'RawMessage' => [ 'type' => 'structure', 'required' => [ 'Data', ], 'members' => [ 'Data' => [ 'shape' => 'RawMessageData', ], ], ], 'RawMessageData' => [ 'type' => 'blob', ], 'ReceiptAction' => [ 'type' => 'structure', 'members' => [ 'S3Action' => [ 'shape' => 'S3Action', ], 'BounceAction' => [ 'shape' => 'BounceAction', ], 'WorkmailAction' => [ 'shape' => 'WorkmailAction', ], 'LambdaAction' => [ 'shape' => 'LambdaAction', ], 'StopAction' => [ 'shape' => 'StopAction', ], 'AddHeaderAction' => [ 'shape' => 'AddHeaderAction', ], 'SNSAction' => [ 'shape' => 'SNSAction', ], ], ], 'ReceiptActionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReceiptAction', ], ], 'ReceiptFilter' => [ 'type' => 'structure', 'required' => [ 'Name', 'IpFilter', ], 'members' => [ 'Name' => [ 'shape' => 'ReceiptFilterName', ], 'IpFilter' => [ 'shape' => 'ReceiptIpFilter', ], ], ], 'ReceiptFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReceiptFilter', ], ], 'ReceiptFilterName' => [ 'type' => 'string', ], 'ReceiptFilterPolicy' => [ 'type' => 'string', 'enum' => [ 'Block', 'Allow', ], ], 'ReceiptIpFilter' => [ 'type' => 'structure', 'required' => [ 'Policy', 'Cidr', ], 'members' => [ 'Policy' => [ 'shape' => 'ReceiptFilterPolicy', ], 'Cidr' => [ 'shape' => 'Cidr', ], ], ], 'ReceiptRule' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'ReceiptRuleName', ], 'Enabled' => [ 'shape' => 'Enabled', ], 'TlsPolicy' => [ 'shape' => 'TlsPolicy', ], 'Recipients' => [ 'shape' => 'RecipientsList', ], 'Actions' => [ 'shape' => 'ReceiptActionsList', ], 'ScanEnabled' => [ 'shape' => 'Enabled', ], ], ], 'ReceiptRuleName' => [ 'type' => 'string', ], 'ReceiptRuleNamesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReceiptRuleName', ], ], 'ReceiptRuleSetMetadata' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'ReceiptRuleSetName', ], 'CreatedTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'ReceiptRuleSetName' => [ 'type' => 'string', ], 'ReceiptRuleSetsLists' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReceiptRuleSetMetadata', ], ], 'ReceiptRulesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReceiptRule', ], ], 'Recipient' => [ 'type' => 'string', ], 'RecipientDsnFields' => [ 'type' => 'structure', 'required' => [ 'Action', 'Status', ], 'members' => [ 'FinalRecipient' => [ 'shape' => 'Address', ], 'Action' => [ 'shape' => 'DsnAction', ], 'RemoteMta' => [ 'shape' => 'RemoteMta', ], 'Status' => [ 'shape' => 'DsnStatus', ], 'DiagnosticCode' => [ 'shape' => 'DiagnosticCode', ], 'LastAttemptDate' => [ 'shape' => 'LastAttemptDate', ], 'ExtensionFields' => [ 'shape' => 'ExtensionFieldList', ], ], ], 'RecipientsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Recipient', ], ], 'RemoteMta' => [ 'type' => 'string', ], 'RenderedTemplate' => [ 'type' => 'string', ], 'ReorderReceiptRuleSetRequest' => [ 'type' => 'structure', 'required' => [ 'RuleSetName', 'RuleNames', ], 'members' => [ 'RuleSetName' => [ 'shape' => 'ReceiptRuleSetName', ], 'RuleNames' => [ 'shape' => 'ReceiptRuleNamesList', ], ], ], 'ReorderReceiptRuleSetResponse' => [ 'type' => 'structure', 'members' => [], ], 'ReportingMta' => [ 'type' => 'string', ], 'ReputationOptions' => [ 'type' => 'structure', 'members' => [ 'SendingEnabled' => [ 'shape' => 'Enabled', ], 'ReputationMetricsEnabled' => [ 'shape' => 'Enabled', ], 'LastFreshStart' => [ 'shape' => 'LastFreshStart', ], ], ], 'RuleDoesNotExistException' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'RuleOrRuleSetName', ], ], 'error' => [ 'code' => 'RuleDoesNotExist', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'RuleOrRuleSetName' => [ 'type' => 'string', ], 'RuleSetDoesNotExistException' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'RuleOrRuleSetName', ], ], 'error' => [ 'code' => 'RuleSetDoesNotExist', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'S3Action' => [ 'type' => 'structure', 'required' => [ 'BucketName', ], 'members' => [ 'TopicArn' => [ 'shape' => 'AmazonResourceName', ], 'BucketName' => [ 'shape' => 'S3BucketName', ], 'ObjectKeyPrefix' => [ 'shape' => 'S3KeyPrefix', ], 'KmsKeyArn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'S3BucketName' => [ 'type' => 'string', ], 'S3KeyPrefix' => [ 'type' => 'string', ], 'SNSAction' => [ 'type' => 'structure', 'required' => [ 'TopicArn', ], 'members' => [ 'TopicArn' => [ 'shape' => 'AmazonResourceName', ], 'Encoding' => [ 'shape' => 'SNSActionEncoding', ], ], ], 'SNSActionEncoding' => [ 'type' => 'string', 'enum' => [ 'UTF-8', 'Base64', ], ], 'SNSDestination' => [ 'type' => 'structure', 'required' => [ 'TopicARN', ], 'members' => [ 'TopicARN' => [ 'shape' => 'AmazonResourceName', ], ], ], 'SendBounceRequest' => [ 'type' => 'structure', 'required' => [ 'OriginalMessageId', 'BounceSender', 'BouncedRecipientInfoList', ], 'members' => [ 'OriginalMessageId' => [ 'shape' => 'MessageId', ], 'BounceSender' => [ 'shape' => 'Address', ], 'Explanation' => [ 'shape' => 'Explanation', ], 'MessageDsn' => [ 'shape' => 'MessageDsn', ], 'BouncedRecipientInfoList' => [ 'shape' => 'BouncedRecipientInfoList', ], 'BounceSenderArn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'SendBounceResponse' => [ 'type' => 'structure', 'members' => [ 'MessageId' => [ 'shape' => 'MessageId', ], ], ], 'SendBulkTemplatedEmailRequest' => [ 'type' => 'structure', 'required' => [ 'Source', 'Template', 'Destinations', ], 'members' => [ 'Source' => [ 'shape' => 'Address', ], 'SourceArn' => [ 'shape' => 'AmazonResourceName', ], 'ReplyToAddresses' => [ 'shape' => 'AddressList', ], 'ReturnPath' => [ 'shape' => 'Address', ], 'ReturnPathArn' => [ 'shape' => 'AmazonResourceName', ], 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], 'DefaultTags' => [ 'shape' => 'MessageTagList', ], 'Template' => [ 'shape' => 'TemplateName', ], 'TemplateArn' => [ 'shape' => 'AmazonResourceName', ], 'DefaultTemplateData' => [ 'shape' => 'TemplateData', ], 'Destinations' => [ 'shape' => 'BulkEmailDestinationList', ], ], ], 'SendBulkTemplatedEmailResponse' => [ 'type' => 'structure', 'required' => [ 'Status', ], 'members' => [ 'Status' => [ 'shape' => 'BulkEmailDestinationStatusList', ], ], ], 'SendCustomVerificationEmailRequest' => [ 'type' => 'structure', 'required' => [ 'EmailAddress', 'TemplateName', ], 'members' => [ 'EmailAddress' => [ 'shape' => 'Address', ], 'TemplateName' => [ 'shape' => 'TemplateName', ], 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], ], ], 'SendCustomVerificationEmailResponse' => [ 'type' => 'structure', 'members' => [ 'MessageId' => [ 'shape' => 'MessageId', ], ], ], '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', ], 'SourceArn' => [ 'shape' => 'AmazonResourceName', ], 'ReturnPathArn' => [ 'shape' => 'AmazonResourceName', ], 'Tags' => [ 'shape' => 'MessageTagList', ], 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], ], ], 'SendEmailResponse' => [ 'type' => 'structure', 'required' => [ 'MessageId', ], 'members' => [ 'MessageId' => [ 'shape' => 'MessageId', ], ], ], 'SendRawEmailRequest' => [ 'type' => 'structure', 'required' => [ 'RawMessage', ], 'members' => [ 'Source' => [ 'shape' => 'Address', ], 'Destinations' => [ 'shape' => 'AddressList', ], 'RawMessage' => [ 'shape' => 'RawMessage', ], 'FromArn' => [ 'shape' => 'AmazonResourceName', ], 'SourceArn' => [ 'shape' => 'AmazonResourceName', ], 'ReturnPathArn' => [ 'shape' => 'AmazonResourceName', ], 'Tags' => [ 'shape' => 'MessageTagList', ], 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], ], ], 'SendRawEmailResponse' => [ 'type' => 'structure', 'required' => [ 'MessageId', ], 'members' => [ 'MessageId' => [ 'shape' => 'MessageId', ], ], ], 'SendTemplatedEmailRequest' => [ 'type' => 'structure', 'required' => [ 'Source', 'Destination', 'Template', 'TemplateData', ], 'members' => [ 'Source' => [ 'shape' => 'Address', ], 'Destination' => [ 'shape' => 'Destination', ], 'ReplyToAddresses' => [ 'shape' => 'AddressList', ], 'ReturnPath' => [ 'shape' => 'Address', ], 'SourceArn' => [ 'shape' => 'AmazonResourceName', ], 'ReturnPathArn' => [ 'shape' => 'AmazonResourceName', ], 'Tags' => [ 'shape' => 'MessageTagList', ], 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], 'Template' => [ 'shape' => 'TemplateName', ], 'TemplateArn' => [ 'shape' => 'AmazonResourceName', ], 'TemplateData' => [ 'shape' => 'TemplateData', ], ], ], 'SendTemplatedEmailResponse' => [ 'type' => 'structure', 'required' => [ 'MessageId', ], 'members' => [ 'MessageId' => [ 'shape' => 'MessageId', ], ], ], 'SentLast24Hours' => [ 'type' => 'double', ], 'SetActiveReceiptRuleSetRequest' => [ 'type' => 'structure', 'members' => [ 'RuleSetName' => [ 'shape' => 'ReceiptRuleSetName', ], ], ], 'SetActiveReceiptRuleSetResponse' => [ 'type' => 'structure', 'members' => [], ], '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' => [], ], 'SetIdentityHeadersInNotificationsEnabledRequest' => [ 'type' => 'structure', 'required' => [ 'Identity', 'NotificationType', 'Enabled', ], 'members' => [ 'Identity' => [ 'shape' => 'Identity', ], 'NotificationType' => [ 'shape' => 'NotificationType', ], 'Enabled' => [ 'shape' => 'Enabled', ], ], ], 'SetIdentityHeadersInNotificationsEnabledResponse' => [ 'type' => 'structure', 'members' => [], ], 'SetIdentityMailFromDomainRequest' => [ 'type' => 'structure', 'required' => [ 'Identity', ], 'members' => [ 'Identity' => [ 'shape' => 'Identity', ], 'MailFromDomain' => [ 'shape' => 'MailFromDomainName', ], 'BehaviorOnMXFailure' => [ 'shape' => 'BehaviorOnMXFailure', ], ], ], 'SetIdentityMailFromDomainResponse' => [ 'type' => 'structure', 'members' => [], ], 'SetIdentityNotificationTopicRequest' => [ 'type' => 'structure', 'required' => [ 'Identity', 'NotificationType', ], 'members' => [ 'Identity' => [ 'shape' => 'Identity', ], 'NotificationType' => [ 'shape' => 'NotificationType', ], 'SnsTopic' => [ 'shape' => 'NotificationTopic', ], ], ], 'SetIdentityNotificationTopicResponse' => [ 'type' => 'structure', 'members' => [], ], 'SetReceiptRulePositionRequest' => [ 'type' => 'structure', 'required' => [ 'RuleSetName', 'RuleName', ], 'members' => [ 'RuleSetName' => [ 'shape' => 'ReceiptRuleSetName', ], 'RuleName' => [ 'shape' => 'ReceiptRuleName', ], 'After' => [ 'shape' => 'ReceiptRuleName', ], ], ], 'SetReceiptRulePositionResponse' => [ 'type' => 'structure', 'members' => [], ], 'StopAction' => [ 'type' => 'structure', 'required' => [ 'Scope', ], 'members' => [ 'Scope' => [ 'shape' => 'StopScope', ], 'TopicArn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'StopScope' => [ 'type' => 'string', 'enum' => [ 'RuleSet', ], ], 'Subject' => [ 'type' => 'string', ], 'SubjectPart' => [ 'type' => 'string', ], 'SuccessRedirectionURL' => [ 'type' => 'string', ], 'Template' => [ 'type' => 'structure', 'required' => [ 'TemplateName', ], 'members' => [ 'TemplateName' => [ 'shape' => 'TemplateName', ], 'SubjectPart' => [ 'shape' => 'SubjectPart', ], 'TextPart' => [ 'shape' => 'TextPart', ], 'HtmlPart' => [ 'shape' => 'HtmlPart', ], ], ], 'TemplateContent' => [ 'type' => 'string', ], 'TemplateData' => [ 'type' => 'string', 'max' => 262144, ], 'TemplateDoesNotExistException' => [ 'type' => 'structure', 'members' => [ 'TemplateName' => [ 'shape' => 'TemplateName', ], ], 'error' => [ 'code' => 'TemplateDoesNotExist', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'TemplateMetadata' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'TemplateName', ], 'CreatedTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'TemplateMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TemplateMetadata', ], ], 'TemplateName' => [ 'type' => 'string', ], 'TestRenderTemplateRequest' => [ 'type' => 'structure', 'required' => [ 'TemplateName', 'TemplateData', ], 'members' => [ 'TemplateName' => [ 'shape' => 'TemplateName', ], 'TemplateData' => [ 'shape' => 'TemplateData', ], ], ], 'TestRenderTemplateResponse' => [ 'type' => 'structure', 'members' => [ 'RenderedTemplate' => [ 'shape' => 'RenderedTemplate', ], ], ], 'TextPart' => [ 'type' => 'string', ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TlsPolicy' => [ 'type' => 'string', 'enum' => [ 'Require', 'Optional', ], ], 'TrackingOptions' => [ 'type' => 'structure', 'members' => [ 'CustomRedirectDomain' => [ 'shape' => 'CustomRedirectDomain', ], ], ], 'TrackingOptionsAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], ], 'error' => [ 'code' => 'TrackingOptionsAlreadyExistsException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'TrackingOptionsDoesNotExistException' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], ], 'error' => [ 'code' => 'TrackingOptionsDoesNotExistException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'UpdateAccountSendingEnabledRequest' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Enabled', ], ], ], 'UpdateConfigurationSetEventDestinationRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSetName', 'EventDestination', ], 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], 'EventDestination' => [ 'shape' => 'EventDestination', ], ], ], 'UpdateConfigurationSetEventDestinationResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateConfigurationSetReputationMetricsEnabledRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSetName', 'Enabled', ], 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], 'Enabled' => [ 'shape' => 'Enabled', ], ], ], 'UpdateConfigurationSetSendingEnabledRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSetName', 'Enabled', ], 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], 'Enabled' => [ 'shape' => 'Enabled', ], ], ], 'UpdateConfigurationSetTrackingOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSetName', 'TrackingOptions', ], 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], 'TrackingOptions' => [ 'shape' => 'TrackingOptions', ], ], ], 'UpdateConfigurationSetTrackingOptionsResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateCustomVerificationEmailTemplateRequest' => [ 'type' => 'structure', 'required' => [ 'TemplateName', ], 'members' => [ 'TemplateName' => [ 'shape' => 'TemplateName', ], 'FromEmailAddress' => [ 'shape' => 'FromAddress', ], 'TemplateSubject' => [ 'shape' => 'Subject', ], 'TemplateContent' => [ 'shape' => 'TemplateContent', ], 'SuccessRedirectionURL' => [ 'shape' => 'SuccessRedirectionURL', ], 'FailureRedirectionURL' => [ 'shape' => 'FailureRedirectionURL', ], ], ], 'UpdateReceiptRuleRequest' => [ 'type' => 'structure', 'required' => [ 'RuleSetName', 'Rule', ], 'members' => [ 'RuleSetName' => [ 'shape' => 'ReceiptRuleSetName', ], 'Rule' => [ 'shape' => 'ReceiptRule', ], ], ], 'UpdateReceiptRuleResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateTemplateRequest' => [ 'type' => 'structure', 'required' => [ 'Template', ], 'members' => [ 'Template' => [ 'shape' => 'Template', ], ], ], 'UpdateTemplateResponse' => [ 'type' => 'structure', 'members' => [], ], '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' => [], ], 'WorkmailAction' => [ 'type' => 'structure', 'required' => [ 'OrganizationArn', ], 'members' => [ 'TopicArn' => [ 'shape' => 'AmazonResourceName', ], 'OrganizationArn' => [ 'shape' => 'AmazonResourceName', ], ], ], ],]; diff --git a/lib/aws/Aws/data/email/2010-12-01/paginators-1.json.php b/lib/aws/Aws/data/email/2010-12-01/paginators-1.json.php new file mode 100644 index 0000000..f8c1e09 --- /dev/null +++ b/lib/aws/Aws/data/email/2010-12-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/email/2010-12-01/paginators-1.json +return [ 'pagination' => [ 'ListCustomVerificationEmailTemplates' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'ListIdentities' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxItems', 'output_token' => 'NextToken', 'result_key' => 'Identities', ], 'ListVerifiedEmailAddresses' => [ 'result_key' => 'VerifiedEmailAddresses', ], ],]; diff --git a/lib/aws/Aws/data/email/2010-12-01/smoke.json.php b/lib/aws/Aws/data/email/2010-12-01/smoke.json.php new file mode 100644 index 0000000..877e344 --- /dev/null +++ b/lib/aws/Aws/data/email/2010-12-01/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/email/2010-12-01/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListIdentities', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'VerifyEmailIdentity', 'input' => [ 'EmailAddress' => 'fake_email', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/email/2010-12-01/waiters-1.json.php b/lib/aws/Aws/data/email/2010-12-01/waiters-1.json.php new file mode 100644 index 0000000..8c716a9 --- /dev/null +++ b/lib/aws/Aws/data/email/2010-12-01/waiters-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/email/2010-12-01/waiters-1.json +return [ 'waiters' => [ '__default__' => [ 'interval' => 3, 'max_attempts' => 20, ], 'IdentityExists' => [ 'operation' => 'GetIdentityVerificationAttributes', 'success_type' => 'output', 'success_path' => 'VerificationAttributes[].VerificationStatus', 'success_value' => true, ], ],]; diff --git a/lib/aws/Aws/data/email/2010-12-01/waiters-2.json.php b/lib/aws/Aws/data/email/2010-12-01/waiters-2.json.php new file mode 100644 index 0000000..0eab0e0 --- /dev/null +++ b/lib/aws/Aws/data/email/2010-12-01/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/email/2010-12-01/waiters-2.json +return [ '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/Aws/data/endpoints.json.php b/lib/aws/Aws/data/endpoints.json.php new file mode 100644 index 0000000..470bd2e --- /dev/null +++ b/lib/aws/Aws/data/endpoints.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/endpoints.json +return [ 'partitions' => [ [ 'defaults' => [ 'hostname' => '{service}.{region}.{dnsSuffix}', 'protocols' => [ 'https', ], 'signatureVersions' => [ 'v4', ], ], 'dnsSuffix' => 'amazonaws.com', 'partition' => 'aws', 'partitionName' => 'AWS Standard', 'regionRegex' => '^(us|eu|ap|sa|ca)\\-\\w+\\-\\d+$', 'regions' => [ 'ap-northeast-1' => [ 'description' => 'Asia Pacific (Tokyo)', ], 'ap-northeast-2' => [ 'description' => 'Asia Pacific (Seoul)', ], 'ap-south-1' => [ 'description' => 'Asia Pacific (Mumbai)', ], 'ap-southeast-1' => [ 'description' => 'Asia Pacific (Singapore)', ], 'ap-southeast-2' => [ 'description' => 'Asia Pacific (Sydney)', ], 'ca-central-1' => [ 'description' => 'Canada (Central)', ], 'eu-central-1' => [ 'description' => 'EU (Frankfurt)', ], 'eu-north-1' => [ 'description' => 'EU (Stockholm)', ], 'eu-west-1' => [ 'description' => 'EU (Ireland)', ], 'eu-west-2' => [ 'description' => 'EU (London)', ], 'eu-west-3' => [ 'description' => 'EU (Paris)', ], 'sa-east-1' => [ 'description' => 'South America (Sao Paulo)', ], 'us-east-1' => [ 'description' => 'US East (N. Virginia)', ], 'us-east-2' => [ 'description' => 'US East (Ohio)', ], 'us-west-1' => [ 'description' => 'US West (N. California)', ], 'us-west-2' => [ 'description' => 'US West (Oregon)', ], ], 'services' => [ 'a4b' => [ 'endpoints' => [ 'us-east-1' => [], ], ], 'acm' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'acm-pca' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'api.ecr' => [ 'endpoints' => [ 'ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 'api.ecr.ap-northeast-1.amazonaws.com', ], 'ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'hostname' => 'api.ecr.ap-northeast-2.amazonaws.com', ], 'ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'hostname' => 'api.ecr.ap-south-1.amazonaws.com', ], 'ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'hostname' => 'api.ecr.ap-southeast-1.amazonaws.com', ], 'ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 'api.ecr.ap-southeast-2.amazonaws.com', ], 'ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'hostname' => 'api.ecr.ca-central-1.amazonaws.com', ], 'eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 'api.ecr.eu-central-1.amazonaws.com', ], 'eu-north-1' => [ 'credentialScope' => [ 'region' => 'eu-north-1', ], 'hostname' => 'api.ecr.eu-north-1.amazonaws.com', ], 'eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'api.ecr.eu-west-1.amazonaws.com', ], 'eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'hostname' => 'api.ecr.eu-west-2.amazonaws.com', ], 'eu-west-3' => [ 'credentialScope' => [ 'region' => 'eu-west-3', ], 'hostname' => 'api.ecr.eu-west-3.amazonaws.com', ], 'sa-east-1' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'hostname' => 'api.ecr.sa-east-1.amazonaws.com', ], 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'api.ecr.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'api.ecr.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 'api.ecr.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'api.ecr.us-west-2.amazonaws.com', ], ], ], 'api.mediatailor' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'api.pricing' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'pricing', ], ], 'endpoints' => [ 'ap-south-1' => [], 'us-east-1' => [], ], ], 'api.sagemaker' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'api-fips.sagemaker.us-east-1.amazonaws.com', ], 'us-east-2' => [], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'api-fips.sagemaker.us-east-2.amazonaws.com', ], 'us-west-1' => [], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 'api-fips.sagemaker.us-west-1.amazonaws.com', ], 'us-west-2' => [], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'api-fips.sagemaker.us-west-2.amazonaws.com', ], ], ], 'apigateway' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'application-autoscaling' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'application-autoscaling', ], 'hostname' => 'autoscaling.{region}.amazonaws.com', 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'appstream2' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'appstream', ], 'protocols' => [ 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'appsync' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'athena' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'autoscaling' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'autoscaling-plans' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'autoscaling-plans', ], 'hostname' => 'autoscaling.{region}.amazonaws.com', 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'batch' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'budgets' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'budgets.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'ce' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'ce.us-east-1.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'chime' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'sslCommonName' => 'service.chime.aws.amazon.com', ], 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'service.chime.aws.amazon.com', 'protocols' => [ 'https', ], ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'cloud9' => [ 'endpoints' => [ 'ap-southeast-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'clouddirectory' => [ 'endpoints' => [ 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'cloudformation' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'cloudfront' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'cloudfront.amazonaws.com', 'protocols' => [ 'http', 'https', ], ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'cloudhsm' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'cloudhsmv2' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'cloudhsm', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'cloudsearch' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'cloudtrail' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'codebuild' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'codebuild-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'codebuild-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 'codebuild-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'codebuild-fips.us-west-2.amazonaws.com', ], ], ], 'codecommit' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'hostname' => 'codecommit-fips.ca-central-1.amazonaws.com', ], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'codedeploy' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'codedeploy-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'codedeploy-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 'codedeploy-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'codedeploy-fips.us-west-2.amazonaws.com', ], ], ], 'codepipeline' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'codestar' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'cognito-identity' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'cognito-idp' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'cognito-sync' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'comprehend' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'comprehendmedical' => [ 'endpoints' => [ 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'config' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'cur' => [ 'endpoints' => [ 'us-east-1' => [], ], ], 'data.iot' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'protocols' => [ 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'datapipeline' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-2' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'datasync' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'dax' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'devicefarm' => [ 'endpoints' => [ 'us-west-2' => [], ], ], 'directconnect' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'discovery' => [ 'endpoints' => [ 'us-west-2' => [], ], ], 'dms' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'docdb' => [ 'endpoints' => [ 'eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 'rds.eu-central-1.amazonaws.com', ], 'eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'rds.eu-west-1.amazonaws.com', ], 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'rds.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'rds.us-east-2.amazonaws.com', ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'rds.us-west-2.amazonaws.com', ], ], ], 'ds' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'dynamodb' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'local' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'localhost:8000', 'protocols' => [ 'http', ], ], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'ec2' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'ecs' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'elasticache' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 'elasticache-fips.us-west-1.amazonaws.com', ], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'elasticbeanstalk' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'elasticfilesystem' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'elasticloadbalancing' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'elasticmapreduce' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'sslCommonName' => '{region}.{service}.{dnsSuffix}', ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [ 'sslCommonName' => '{service}.{region}.{dnsSuffix}', ], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [ 'sslCommonName' => '{service}.{region}.{dnsSuffix}', ], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'elastictranscoder' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'email' => [ 'endpoints' => [ 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'entitlement.marketplace' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'aws-marketplace', ], ], 'endpoints' => [ 'us-east-1' => [], ], ], 'es' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 'es-fips.us-west-1.amazonaws.com', ], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'events' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'firehose' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'fms' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'fsx' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'gamelift' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'glacier' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'glue' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'greengrass' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], 'isRegionalized' => true, ], 'guardduty' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], 'isRegionalized' => true, ], 'health' => [ 'endpoints' => [ 'us-east-1' => [], ], ], 'iam' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'iam.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'importexport' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', 'service' => 'IngestionService', ], 'hostname' => 'importexport.amazonaws.com', 'signatureVersions' => [ 'v2', 'v4', ], ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'inspector' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'iot' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'execute-api', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'iotanalytics' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'kinesis' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'kinesisanalytics' => [ 'endpoints' => [ 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'kinesisvideo' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'kms' => [ 'endpoints' => [ 'ProdFips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'hostname' => 'kms-fips.ca-central-1.amazonaws.com', ], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'lambda' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'license-manager' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'lightsail' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'logs' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'machinelearning' => [ 'endpoints' => [ 'eu-west-1' => [], 'us-east-1' => [], ], ], 'marketplacecommerceanalytics' => [ 'endpoints' => [ 'us-east-1' => [], ], ], 'mediaconnect' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'mediaconvert' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'medialive' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'mediapackage' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'mediastore' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'metering.marketplace' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'aws-marketplace', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'mgh' => [ 'endpoints' => [ 'us-west-2' => [], ], ], 'mobileanalytics' => [ 'endpoints' => [ 'us-east-1' => [], ], ], 'models.lex' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'lex', ], ], 'endpoints' => [ 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'monitoring' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'mq' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'mturk-requester' => [ 'endpoints' => [ 'sandbox' => [ 'hostname' => 'mturk-requester-sandbox.us-east-1.amazonaws.com', ], 'us-east-1' => [], ], 'isRegionalized' => false, ], 'neptune' => [ 'endpoints' => [ 'ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 'rds.ap-northeast-1.amazonaws.com', ], 'ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'hostname' => 'rds.ap-south-1.amazonaws.com', ], 'ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'hostname' => 'rds.ap-southeast-1.amazonaws.com', ], 'ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 'rds.ap-southeast-2.amazonaws.com', ], 'eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 'rds.eu-central-1.amazonaws.com', ], 'eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'rds.eu-west-1.amazonaws.com', ], 'eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'hostname' => 'rds.eu-west-2.amazonaws.com', ], 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'rds.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'rds.us-east-2.amazonaws.com', ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'rds.us-west-2.amazonaws.com', ], ], ], 'opsworks' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'opsworks-cm' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'organizations' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'organizations.us-east-1.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'pinpoint' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'mobiletargeting', ], ], 'endpoints' => [ 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'polly' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'rds' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [ 'sslCommonName' => '{service}.{dnsSuffix}', ], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'redshift' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'rekognition' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-2' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'resource-groups' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'robomaker' => [ 'endpoints' => [ 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'route53' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'route53.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'route53domains' => [ 'endpoints' => [ 'us-east-1' => [], ], ], 'route53resolver' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'runtime.lex' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'lex', ], ], 'endpoints' => [ 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'runtime.sagemaker' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 's3' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], 'signatureVersions' => [ 's3v4', ], ], 'endpoints' => [ 'ap-northeast-1' => [ 'hostname' => 's3.ap-northeast-1.amazonaws.com', 'signatureVersions' => [ 's3', 's3v4', ], ], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [ 'hostname' => 's3.ap-southeast-1.amazonaws.com', 'signatureVersions' => [ 's3', 's3v4', ], ], 'ap-southeast-2' => [ 'hostname' => 's3.ap-southeast-2.amazonaws.com', 'signatureVersions' => [ 's3', 's3v4', ], ], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [ 'hostname' => 's3.eu-west-1.amazonaws.com', 'signatureVersions' => [ 's3', 's3v4', ], ], 'eu-west-2' => [], 'eu-west-3' => [], 's3-external-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 's3-external-1.amazonaws.com', 'signatureVersions' => [ 's3', 's3v4', ], ], 'sa-east-1' => [ 'hostname' => 's3.sa-east-1.amazonaws.com', 'signatureVersions' => [ 's3', 's3v4', ], ], 'us-east-1' => [ 'hostname' => 's3.amazonaws.com', 'signatureVersions' => [ 's3', 's3v4', ], ], 'us-east-2' => [], 'us-west-1' => [ 'hostname' => 's3.us-west-1.amazonaws.com', 'signatureVersions' => [ 's3', 's3v4', ], ], 'us-west-2' => [ 'hostname' => 's3.us-west-2.amazonaws.com', 'signatureVersions' => [ 's3', 's3v4', ], ], ], 'isRegionalized' => true, 'partitionEndpoint' => 'us-east-1', ], 's3-control' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'signatureVersions' => [ 's3v4', ], ], 'endpoints' => [ 'ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 's3-control.ap-northeast-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'hostname' => 's3-control.ap-northeast-2.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'hostname' => 's3-control.ap-south-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'hostname' => 's3-control.ap-southeast-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 's3-control.ap-southeast-2.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'hostname' => 's3-control.ca-central-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 's3-control.eu-central-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'eu-north-1' => [ 'credentialScope' => [ 'region' => 'eu-north-1', ], 'hostname' => 's3-control.eu-north-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 's3-control.eu-west-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'hostname' => 's3-control.eu-west-2.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'eu-west-3' => [ 'credentialScope' => [ 'region' => 'eu-west-3', ], 'hostname' => 's3-control.eu-west-3.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'sa-east-1' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'hostname' => 's3-control.sa-east-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 's3-control.us-east-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 's3-control-fips.us-east-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 's3-control.us-east-2.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 's3-control-fips.us-east-2.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 's3-control.us-west-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 's3-control-fips.us-west-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 's3-control.us-west-2.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 's3-control-fips.us-west-2.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], ], ], 'sdb' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], 'signatureVersions' => [ 'v2', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-west-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'hostname' => 'sdb.amazonaws.com', ], 'us-west-1' => [], 'us-west-2' => [], ], ], 'secretsmanager' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'secretsmanager-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'secretsmanager-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 'secretsmanager-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'secretsmanager-fips.us-west-2.amazonaws.com', ], ], ], 'securityhub' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'serverlessrepo' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [ 'protocols' => [ 'https', ], ], 'ap-northeast-2' => [ 'protocols' => [ 'https', ], ], 'ap-south-1' => [ 'protocols' => [ 'https', ], ], 'ap-southeast-1' => [ 'protocols' => [ 'https', ], ], 'ap-southeast-2' => [ 'protocols' => [ 'https', ], ], 'ca-central-1' => [ 'protocols' => [ 'https', ], ], 'eu-central-1' => [ 'protocols' => [ 'https', ], ], 'eu-west-1' => [ 'protocols' => [ 'https', ], ], 'eu-west-2' => [ 'protocols' => [ 'https', ], ], 'eu-west-3' => [ 'protocols' => [ 'https', ], ], 'sa-east-1' => [ 'protocols' => [ 'https', ], ], 'us-east-1' => [ 'protocols' => [ 'https', ], ], 'us-east-2' => [ 'protocols' => [ 'https', ], ], 'us-west-1' => [ 'protocols' => [ 'https', ], ], 'us-west-2' => [ 'protocols' => [ 'https', ], ], ], ], 'servicecatalog' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'servicecatalog-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'servicecatalog-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 'servicecatalog-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'servicecatalog-fips.us-west-2.amazonaws.com', ], ], ], 'servicediscovery' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'shield' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'sslCommonName' => 'shield.us-east-1.amazonaws.com', ], 'endpoints' => [ 'us-east-1' => [], ], 'isRegionalized' => false, ], 'sms' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'snowball' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'sns' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'sqs' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], 'sslCommonName' => '{region}.queue.{dnsSuffix}', ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'sqs-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'sqs-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 'sqs-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'sqs-fips.us-west-2.amazonaws.com', ], 'sa-east-1' => [], 'us-east-1' => [ 'sslCommonName' => 'queue.{dnsSuffix}', ], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'ssm' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'states' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'storagegateway' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'streams.dynamodb' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'dynamodb', ], 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'local' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'localhost:8000', 'protocols' => [ 'http', ], ], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'sts' => [ 'defaults' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'sts.amazonaws.com', ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'hostname' => 'sts.ap-northeast-2.amazonaws.com', ], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'aws-global' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'sts-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'sts-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 'sts-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'sts-fips.us-west-2.amazonaws.com', ], ], 'partitionEndpoint' => 'aws-global', ], 'support' => [ 'endpoints' => [ 'us-east-1' => [], ], ], 'swf' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'tagging' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'transfer' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'translate' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'eu-west-1' => [], 'us-east-1' => [], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'translate-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'translate-fips.us-east-2.amazonaws.com', ], 'us-west-2' => [], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'translate-fips.us-west-2.amazonaws.com', ], ], ], 'waf' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'waf.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'waf-regional' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'workdocs' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'workmail' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'workspaces' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'xray' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], ], ], [ 'defaults' => [ 'hostname' => '{service}.{region}.{dnsSuffix}', 'protocols' => [ 'https', ], 'signatureVersions' => [ 'v4', ], ], 'dnsSuffix' => 'amazonaws.com.cn', 'partition' => 'aws-cn', 'partitionName' => 'AWS China', 'regionRegex' => '^cn\\-\\w+\\-\\d+$', 'regions' => [ 'cn-north-1' => [ 'description' => 'China (Beijing)', ], 'cn-northwest-1' => [ 'description' => 'China (Ningxia)', ], ], 'services' => [ 'api.ecr' => [ 'endpoints' => [ 'cn-north-1' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'hostname' => 'api.ecr.cn-north-1.amazonaws.com.cn', ], 'cn-northwest-1' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 'api.ecr.cn-northwest-1.amazonaws.com.cn', ], ], ], 'apigateway' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'application-autoscaling' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'application-autoscaling', ], 'hostname' => 'autoscaling.{region}.amazonaws.com', 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'autoscaling' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'cloudformation' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'cloudtrail' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'codebuild' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'codedeploy' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'cognito-identity' => [ 'endpoints' => [ 'cn-north-1' => [], ], ], 'config' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'data.iot' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'protocols' => [ 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], ], ], 'directconnect' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'dms' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'ds' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'dynamodb' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'ec2' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'ecs' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'elasticache' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'elasticbeanstalk' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'elasticloadbalancing' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'elasticmapreduce' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'es' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'events' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'firehose' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'gamelift' => [ 'endpoints' => [ 'cn-north-1' => [], ], ], 'glacier' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'iam' => [ 'endpoints' => [ 'aws-cn-global' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'hostname' => 'iam.cn-north-1.amazonaws.com.cn', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-cn-global', ], 'iot' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'execute-api', ], ], 'endpoints' => [ 'cn-north-1' => [], ], ], 'kinesis' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'lambda' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'logs' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'monitoring' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'polly' => [ 'endpoints' => [ 'cn-northwest-1' => [], ], ], 'rds' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'redshift' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 's3' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], 'signatureVersions' => [ 's3v4', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 's3-control' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'signatureVersions' => [ 's3v4', ], ], 'endpoints' => [ 'cn-north-1' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'hostname' => 's3-control.cn-north-1.amazonaws.com.cn', 'signatureVersions' => [ 's3v4', ], ], 'cn-northwest-1' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 's3-control.cn-northwest-1.amazonaws.com.cn', 'signatureVersions' => [ 's3v4', ], ], ], ], 'sms' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'snowball' => [ 'endpoints' => [ 'cn-north-1' => [], ], ], 'sns' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'sqs' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], 'sslCommonName' => '{region}.queue.{dnsSuffix}', ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'ssm' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'states' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'storagegateway' => [ 'endpoints' => [ 'cn-north-1' => [], ], ], 'streams.dynamodb' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'dynamodb', ], 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'sts' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'swf' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'tagging' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], ], ], [ 'defaults' => [ 'hostname' => '{service}.{region}.{dnsSuffix}', 'protocols' => [ 'https', ], 'signatureVersions' => [ 'v4', ], ], 'dnsSuffix' => 'amazonaws.com', 'partition' => 'aws-us-gov', 'partitionName' => 'AWS GovCloud (US)', 'regionRegex' => '^us\\-gov\\-\\w+\\-\\d+$', 'regions' => [ 'us-gov-east-1' => [ 'description' => 'AWS GovCloud (US-East)', ], 'us-gov-west-1' => [ 'description' => 'AWS GovCloud (US)', ], ], 'services' => [ 'acm' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'api.ecr' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'api.ecr.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'api.ecr.us-gov-west-1.amazonaws.com', ], ], ], 'api.sagemaker' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'apigateway' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'application-autoscaling' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'athena' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'autoscaling' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [ 'protocols' => [ 'http', 'https', ], ], ], ], 'clouddirectory' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'cloudformation' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'cloudhsm' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'cloudhsmv2' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'cloudhsm', ], ], 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'cloudtrail' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'codedeploy' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'codedeploy-fips.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'codedeploy-fips.us-gov-west-1.amazonaws.com', ], ], ], 'comprehend' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'config' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'data.iot' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'protocols' => [ 'https', ], ], 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'directconnect' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'dms' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'ds' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'dynamodb' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'dynamodb.us-gov-west-1.amazonaws.com', ], ], ], 'ec2' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'ecs' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'elasticache' => [ 'endpoints' => [ 'fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'elasticache-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'elasticbeanstalk' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'elasticfilesystem' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'elasticloadbalancing' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [ 'protocols' => [ 'http', 'https', ], ], ], ], 'elasticmapreduce' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [ 'protocols' => [ 'https', ], ], ], ], 'es' => [ 'endpoints' => [ 'fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'es-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'events' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'firehose' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'glacier' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [ 'protocols' => [ 'http', 'https', ], ], ], ], 'glue' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'guardduty' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'us-gov-west-1' => [], ], 'isRegionalized' => true, ], 'iam' => [ 'endpoints' => [ 'aws-us-gov-global' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'iam.us-gov.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-us-gov-global', ], 'inspector' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'iot' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'execute-api', ], ], 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'kinesis' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'kms' => [ 'endpoints' => [ 'ProdFips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'kms-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'lambda' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'logs' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'mediaconvert' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'metering.marketplace' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'aws-marketplace', ], ], 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'monitoring' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'polly' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'rds' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'redshift' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'rekognition' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'runtime.sagemaker' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], 's3' => [ 'defaults' => [ 'signatureVersions' => [ 's3', 's3v4', ], ], 'endpoints' => [ 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 's3-fips-us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'hostname' => 's3.us-gov-east-1.amazonaws.com', 'protocols' => [ 'http', 'https', ], ], 'us-gov-west-1' => [ 'hostname' => 's3.us-gov-west-1.amazonaws.com', 'protocols' => [ 'http', 'https', ], ], ], ], 's3-control' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'signatureVersions' => [ 's3v4', ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 's3-control.us-gov-east-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 's3-control-fips.us-gov-east-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 's3-control.us-gov-west-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 's3-control-fips.us-gov-west-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], ], ], 'sms' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'snowball' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'sns' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [ 'protocols' => [ 'http', 'https', ], ], ], ], 'sqs' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [ 'protocols' => [ 'http', 'https', ], 'sslCommonName' => '{region}.queue.{dnsSuffix}', ], ], ], 'ssm' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'states' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'storagegateway' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'streams.dynamodb' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'dynamodb', ], ], 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'dynamodb.us-gov-west-1.amazonaws.com', ], ], ], 'sts' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'swf' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'tagging' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'translate' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'us-gov-west-1' => [], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'translate-fips.us-gov-west-1.amazonaws.com', ], ], ], 'waf-regional' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'workspaces' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], ], ], ], 'version' => 3,]; diff --git a/lib/aws/Aws/data/endpoints_prefix_history.json.php b/lib/aws/Aws/data/endpoints_prefix_history.json.php new file mode 100644 index 0000000..2c2459c --- /dev/null +++ b/lib/aws/Aws/data/endpoints_prefix_history.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/endpoints_prefix_history.json +return [ 'prefix-groups' => [ 'api.ecr' => [ 'ecr', ], 'api.sagemaker' => [ 'sagemaker', ], 'ecr' => [ 'api.ecr', ], 'sagemaker' => [ 'api.sagemaker', ], ],]; diff --git a/lib/aws/Aws/data/entitlement.marketplace/2017-01-11/api-2.json.php b/lib/aws/Aws/data/entitlement.marketplace/2017-01-11/api-2.json.php new file mode 100644 index 0000000..86f102e --- /dev/null +++ b/lib/aws/Aws/data/entitlement.marketplace/2017-01-11/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/entitlement.marketplace/2017-01-11/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-01-11', 'endpointPrefix' => 'entitlement.marketplace', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWS Marketplace Entitlement Service', 'signatureVersion' => 'v4', 'signingName' => 'aws-marketplace', 'targetPrefix' => 'AWSMPEntitlementService', 'uid' => 'entitlement.marketplace-2017-01-11', ], 'operations' => [ 'GetEntitlements' => [ 'name' => 'GetEntitlements', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetEntitlementsRequest', ], 'output' => [ 'shape' => 'GetEntitlementsResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], ], 'shapes' => [ 'Boolean' => [ 'type' => 'boolean', ], 'Double' => [ 'type' => 'double', ], 'Entitlement' => [ 'type' => 'structure', 'members' => [ 'ProductCode' => [ 'shape' => 'ProductCode', ], 'Dimension' => [ 'shape' => 'NonEmptyString', ], 'CustomerIdentifier' => [ 'shape' => 'NonEmptyString', ], 'Value' => [ 'shape' => 'EntitlementValue', ], 'ExpirationDate' => [ 'shape' => 'Timestamp', ], ], ], 'EntitlementList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Entitlement', ], 'min' => 0, ], 'EntitlementValue' => [ 'type' => 'structure', 'members' => [ 'IntegerValue' => [ 'shape' => 'Integer', ], 'DoubleValue' => [ 'shape' => 'Double', ], 'BooleanValue' => [ 'shape' => 'Boolean', ], 'StringValue' => [ 'shape' => 'String', ], ], ], 'ErrorMessage' => [ 'type' => 'string', ], 'FilterValue' => [ 'type' => 'string', ], 'FilterValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FilterValue', ], 'min' => 1, ], 'GetEntitlementFilterName' => [ 'type' => 'string', 'enum' => [ 'CUSTOMER_IDENTIFIER', 'DIMENSION', ], ], 'GetEntitlementFilters' => [ 'type' => 'map', 'key' => [ 'shape' => 'GetEntitlementFilterName', ], 'value' => [ 'shape' => 'FilterValueList', ], ], 'GetEntitlementsRequest' => [ 'type' => 'structure', 'required' => [ 'ProductCode', ], 'members' => [ 'ProductCode' => [ 'shape' => 'ProductCode', ], 'Filter' => [ 'shape' => 'GetEntitlementFilters', ], 'NextToken' => [ 'shape' => 'NonEmptyString', ], 'MaxResults' => [ 'shape' => 'Integer', ], ], ], 'GetEntitlementsResult' => [ 'type' => 'structure', 'members' => [ 'Entitlements' => [ 'shape' => 'EntitlementList', ], 'NextToken' => [ 'shape' => 'NonEmptyString', ], ], ], 'Integer' => [ 'type' => 'integer', ], 'InternalServiceErrorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, 'fault' => true, ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'NonEmptyString' => [ 'type' => 'string', 'pattern' => '\\S+', ], 'ProductCode' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'String' => [ 'type' => 'string', ], 'ThrottlingException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'Timestamp' => [ 'type' => 'timestamp', ], ],]; diff --git a/lib/aws/Aws/data/entitlement.marketplace/2017-01-11/paginators-1.json.php b/lib/aws/Aws/data/entitlement.marketplace/2017-01-11/paginators-1.json.php new file mode 100644 index 0000000..6667958 --- /dev/null +++ b/lib/aws/Aws/data/entitlement.marketplace/2017-01-11/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/entitlement.marketplace/2017-01-11/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/es/2015-01-01/api-2.json.php b/lib/aws/Aws/data/es/2015-01-01/api-2.json.php new file mode 100644 index 0000000..84c989f --- /dev/null +++ b/lib/aws/Aws/data/es/2015-01-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/es/2015-01-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-01-01', 'endpointPrefix' => 'es', 'protocol' => 'rest-json', 'serviceFullName' => 'Amazon Elasticsearch Service', 'serviceId' => 'Elasticsearch Service', 'signatureVersion' => 'v4', 'uid' => 'es-2015-01-01', ], 'operations' => [ 'AddTags' => [ 'name' => 'AddTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-01-01/tags', ], 'input' => [ 'shape' => 'AddTagsRequest', ], 'errors' => [ [ 'shape' => 'BaseException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'InternalException', ], ], ], 'CancelElasticsearchServiceSoftwareUpdate' => [ 'name' => 'CancelElasticsearchServiceSoftwareUpdate', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-01-01/es/serviceSoftwareUpdate/cancel', ], 'input' => [ 'shape' => 'CancelElasticsearchServiceSoftwareUpdateRequest', ], 'output' => [ 'shape' => 'CancelElasticsearchServiceSoftwareUpdateResponse', ], 'errors' => [ [ 'shape' => 'BaseException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'CreateElasticsearchDomain' => [ 'name' => 'CreateElasticsearchDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-01-01/es/domain', ], 'input' => [ 'shape' => 'CreateElasticsearchDomainRequest', ], 'output' => [ 'shape' => 'CreateElasticsearchDomainResponse', ], 'errors' => [ [ 'shape' => 'BaseException', ], [ 'shape' => 'DisabledOperationException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidTypeException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'ValidationException', ], ], ], 'DeleteElasticsearchDomain' => [ 'name' => 'DeleteElasticsearchDomain', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2015-01-01/es/domain/{DomainName}', ], 'input' => [ 'shape' => 'DeleteElasticsearchDomainRequest', ], 'output' => [ 'shape' => 'DeleteElasticsearchDomainResponse', ], 'errors' => [ [ 'shape' => 'BaseException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'DeleteElasticsearchServiceRole' => [ 'name' => 'DeleteElasticsearchServiceRole', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2015-01-01/es/role', ], 'errors' => [ [ 'shape' => 'BaseException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'ValidationException', ], ], ], 'DescribeElasticsearchDomain' => [ 'name' => 'DescribeElasticsearchDomain', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-01-01/es/domain/{DomainName}', ], 'input' => [ 'shape' => 'DescribeElasticsearchDomainRequest', ], 'output' => [ 'shape' => 'DescribeElasticsearchDomainResponse', ], 'errors' => [ [ 'shape' => 'BaseException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'DescribeElasticsearchDomainConfig' => [ 'name' => 'DescribeElasticsearchDomainConfig', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-01-01/es/domain/{DomainName}/config', ], 'input' => [ 'shape' => 'DescribeElasticsearchDomainConfigRequest', ], 'output' => [ 'shape' => 'DescribeElasticsearchDomainConfigResponse', ], 'errors' => [ [ 'shape' => 'BaseException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'DescribeElasticsearchDomains' => [ 'name' => 'DescribeElasticsearchDomains', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-01-01/es/domain-info', ], 'input' => [ 'shape' => 'DescribeElasticsearchDomainsRequest', ], 'output' => [ 'shape' => 'DescribeElasticsearchDomainsResponse', ], 'errors' => [ [ 'shape' => 'BaseException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'ValidationException', ], ], ], 'DescribeElasticsearchInstanceTypeLimits' => [ 'name' => 'DescribeElasticsearchInstanceTypeLimits', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-01-01/es/instanceTypeLimits/{ElasticsearchVersion}/{InstanceType}', ], 'input' => [ 'shape' => 'DescribeElasticsearchInstanceTypeLimitsRequest', ], 'output' => [ 'shape' => 'DescribeElasticsearchInstanceTypeLimitsResponse', ], 'errors' => [ [ 'shape' => 'BaseException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidTypeException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'DescribeReservedElasticsearchInstanceOfferings' => [ 'name' => 'DescribeReservedElasticsearchInstanceOfferings', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-01-01/es/reservedInstanceOfferings', ], 'input' => [ 'shape' => 'DescribeReservedElasticsearchInstanceOfferingsRequest', ], 'output' => [ 'shape' => 'DescribeReservedElasticsearchInstanceOfferingsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'DisabledOperationException', ], [ 'shape' => 'InternalException', ], ], ], 'DescribeReservedElasticsearchInstances' => [ 'name' => 'DescribeReservedElasticsearchInstances', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-01-01/es/reservedInstances', ], 'input' => [ 'shape' => 'DescribeReservedElasticsearchInstancesRequest', ], 'output' => [ 'shape' => 'DescribeReservedElasticsearchInstancesResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'DisabledOperationException', ], ], ], 'GetCompatibleElasticsearchVersions' => [ 'name' => 'GetCompatibleElasticsearchVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-01-01/es/compatibleVersions', ], 'input' => [ 'shape' => 'GetCompatibleElasticsearchVersionsRequest', ], 'output' => [ 'shape' => 'GetCompatibleElasticsearchVersionsResponse', ], 'errors' => [ [ 'shape' => 'BaseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'DisabledOperationException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'InternalException', ], ], ], 'GetUpgradeHistory' => [ 'name' => 'GetUpgradeHistory', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-01-01/es/upgradeDomain/{DomainName}/history', ], 'input' => [ 'shape' => 'GetUpgradeHistoryRequest', ], 'output' => [ 'shape' => 'GetUpgradeHistoryResponse', ], 'errors' => [ [ 'shape' => 'BaseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'DisabledOperationException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'InternalException', ], ], ], 'GetUpgradeStatus' => [ 'name' => 'GetUpgradeStatus', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-01-01/es/upgradeDomain/{DomainName}/status', ], 'input' => [ 'shape' => 'GetUpgradeStatusRequest', ], 'output' => [ 'shape' => 'GetUpgradeStatusResponse', ], 'errors' => [ [ 'shape' => 'BaseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'DisabledOperationException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'InternalException', ], ], ], 'ListDomainNames' => [ 'name' => 'ListDomainNames', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-01-01/domain', ], 'output' => [ 'shape' => 'ListDomainNamesResponse', ], 'errors' => [ [ 'shape' => 'BaseException', ], [ 'shape' => 'ValidationException', ], ], ], 'ListElasticsearchInstanceTypes' => [ 'name' => 'ListElasticsearchInstanceTypes', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-01-01/es/instanceTypes/{ElasticsearchVersion}', ], 'input' => [ 'shape' => 'ListElasticsearchInstanceTypesRequest', ], 'output' => [ 'shape' => 'ListElasticsearchInstanceTypesResponse', ], 'errors' => [ [ 'shape' => 'BaseException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'ListElasticsearchVersions' => [ 'name' => 'ListElasticsearchVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-01-01/es/versions', ], 'input' => [ 'shape' => 'ListElasticsearchVersionsRequest', ], 'output' => [ 'shape' => 'ListElasticsearchVersionsResponse', ], 'errors' => [ [ 'shape' => 'BaseException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'ListTags' => [ 'name' => 'ListTags', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-01-01/tags/', ], 'input' => [ 'shape' => 'ListTagsRequest', ], 'output' => [ 'shape' => 'ListTagsResponse', ], 'errors' => [ [ 'shape' => 'BaseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'InternalException', ], ], ], 'PurchaseReservedElasticsearchInstanceOffering' => [ 'name' => 'PurchaseReservedElasticsearchInstanceOffering', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-01-01/es/purchaseReservedInstanceOffering', ], 'input' => [ 'shape' => 'PurchaseReservedElasticsearchInstanceOfferingRequest', ], 'output' => [ 'shape' => 'PurchaseReservedElasticsearchInstanceOfferingResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'DisabledOperationException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'InternalException', ], ], ], 'RemoveTags' => [ 'name' => 'RemoveTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-01-01/tags-removal', ], 'input' => [ 'shape' => 'RemoveTagsRequest', ], 'errors' => [ [ 'shape' => 'BaseException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'InternalException', ], ], ], 'StartElasticsearchServiceSoftwareUpdate' => [ 'name' => 'StartElasticsearchServiceSoftwareUpdate', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-01-01/es/serviceSoftwareUpdate/start', ], 'input' => [ 'shape' => 'StartElasticsearchServiceSoftwareUpdateRequest', ], 'output' => [ 'shape' => 'StartElasticsearchServiceSoftwareUpdateResponse', ], 'errors' => [ [ 'shape' => 'BaseException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'UpdateElasticsearchDomainConfig' => [ 'name' => 'UpdateElasticsearchDomainConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-01-01/es/domain/{DomainName}/config', ], 'input' => [ 'shape' => 'UpdateElasticsearchDomainConfigRequest', ], 'output' => [ 'shape' => 'UpdateElasticsearchDomainConfigResponse', ], 'errors' => [ [ 'shape' => 'BaseException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidTypeException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'UpgradeElasticsearchDomain' => [ 'name' => 'UpgradeElasticsearchDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-01-01/es/upgradeDomain', ], 'input' => [ 'shape' => 'UpgradeElasticsearchDomainRequest', ], 'output' => [ 'shape' => 'UpgradeElasticsearchDomainResponse', ], 'errors' => [ [ 'shape' => 'BaseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'DisabledOperationException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'InternalException', ], ], ], ], 'shapes' => [ 'ARN' => [ 'type' => 'string', ], 'AccessPoliciesStatus' => [ 'type' => 'structure', 'required' => [ 'Options', 'Status', ], 'members' => [ 'Options' => [ 'shape' => 'PolicyDocument', ], 'Status' => [ 'shape' => 'OptionStatus', ], ], ], 'AddTagsRequest' => [ 'type' => 'structure', 'required' => [ 'ARN', 'TagList', ], 'members' => [ 'ARN' => [ 'shape' => 'ARN', ], 'TagList' => [ 'shape' => 'TagList', ], ], ], 'AdditionalLimit' => [ 'type' => 'structure', 'members' => [ 'LimitName' => [ 'shape' => 'LimitName', ], 'LimitValues' => [ 'shape' => 'LimitValueList', ], ], ], 'AdditionalLimitList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AdditionalLimit', ], ], 'AdvancedOptions' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'AdvancedOptionsStatus' => [ 'type' => 'structure', 'required' => [ 'Options', 'Status', ], 'members' => [ 'Options' => [ 'shape' => 'AdvancedOptions', ], 'Status' => [ 'shape' => 'OptionStatus', ], ], ], 'BaseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'Boolean' => [ 'type' => 'boolean', ], 'CancelElasticsearchServiceSoftwareUpdateRequest' => [ 'type' => 'structure', 'required' => [ 'DomainName', ], 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', ], ], ], 'CancelElasticsearchServiceSoftwareUpdateResponse' => [ 'type' => 'structure', 'members' => [ 'ServiceSoftwareOptions' => [ 'shape' => 'ServiceSoftwareOptions', ], ], ], 'CloudWatchLogsLogGroupArn' => [ 'type' => 'string', ], 'CognitoOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'UserPoolId' => [ 'shape' => 'UserPoolId', ], 'IdentityPoolId' => [ 'shape' => 'IdentityPoolId', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], ], ], 'CognitoOptionsStatus' => [ 'type' => 'structure', 'required' => [ 'Options', 'Status', ], 'members' => [ 'Options' => [ 'shape' => 'CognitoOptions', ], 'Status' => [ 'shape' => 'OptionStatus', ], ], ], 'CompatibleElasticsearchVersionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CompatibleVersionsMap', ], ], 'CompatibleVersionsMap' => [ 'type' => 'structure', 'members' => [ 'SourceVersion' => [ 'shape' => 'ElasticsearchVersionString', ], 'TargetVersions' => [ 'shape' => 'ElasticsearchVersionList', ], ], ], 'CreateElasticsearchDomainRequest' => [ 'type' => 'structure', 'required' => [ 'DomainName', ], 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', ], 'ElasticsearchVersion' => [ 'shape' => 'ElasticsearchVersionString', ], 'ElasticsearchClusterConfig' => [ 'shape' => 'ElasticsearchClusterConfig', ], 'EBSOptions' => [ 'shape' => 'EBSOptions', ], 'AccessPolicies' => [ 'shape' => 'PolicyDocument', ], 'SnapshotOptions' => [ 'shape' => 'SnapshotOptions', ], 'VPCOptions' => [ 'shape' => 'VPCOptions', ], 'CognitoOptions' => [ 'shape' => 'CognitoOptions', ], 'EncryptionAtRestOptions' => [ 'shape' => 'EncryptionAtRestOptions', ], 'NodeToNodeEncryptionOptions' => [ 'shape' => 'NodeToNodeEncryptionOptions', ], 'AdvancedOptions' => [ 'shape' => 'AdvancedOptions', ], 'LogPublishingOptions' => [ 'shape' => 'LogPublishingOptions', ], ], ], 'CreateElasticsearchDomainResponse' => [ 'type' => 'structure', 'members' => [ 'DomainStatus' => [ 'shape' => 'ElasticsearchDomainStatus', ], ], ], 'DeleteElasticsearchDomainRequest' => [ 'type' => 'structure', 'required' => [ 'DomainName', ], 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', 'location' => 'uri', 'locationName' => 'DomainName', ], ], ], 'DeleteElasticsearchDomainResponse' => [ 'type' => 'structure', 'members' => [ 'DomainStatus' => [ 'shape' => 'ElasticsearchDomainStatus', ], ], ], 'DeploymentCloseDateTimeStamp' => [ 'type' => 'timestamp', ], 'DeploymentStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING_UPDATE', 'IN_PROGRESS', 'COMPLETED', 'NOT_ELIGIBLE', 'ELIGIBLE', ], ], 'DescribeElasticsearchDomainConfigRequest' => [ 'type' => 'structure', 'required' => [ 'DomainName', ], 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', 'location' => 'uri', 'locationName' => 'DomainName', ], ], ], 'DescribeElasticsearchDomainConfigResponse' => [ 'type' => 'structure', 'required' => [ 'DomainConfig', ], 'members' => [ 'DomainConfig' => [ 'shape' => 'ElasticsearchDomainConfig', ], ], ], 'DescribeElasticsearchDomainRequest' => [ 'type' => 'structure', 'required' => [ 'DomainName', ], 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', 'location' => 'uri', 'locationName' => 'DomainName', ], ], ], 'DescribeElasticsearchDomainResponse' => [ 'type' => 'structure', 'required' => [ 'DomainStatus', ], 'members' => [ 'DomainStatus' => [ 'shape' => 'ElasticsearchDomainStatus', ], ], ], 'DescribeElasticsearchDomainsRequest' => [ 'type' => 'structure', 'required' => [ 'DomainNames', ], 'members' => [ 'DomainNames' => [ 'shape' => 'DomainNameList', ], ], ], 'DescribeElasticsearchDomainsResponse' => [ 'type' => 'structure', 'required' => [ 'DomainStatusList', ], 'members' => [ 'DomainStatusList' => [ 'shape' => 'ElasticsearchDomainStatusList', ], ], ], 'DescribeElasticsearchInstanceTypeLimitsRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceType', 'ElasticsearchVersion', ], 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', 'location' => 'querystring', 'locationName' => 'domainName', ], 'InstanceType' => [ 'shape' => 'ESPartitionInstanceType', 'location' => 'uri', 'locationName' => 'InstanceType', ], 'ElasticsearchVersion' => [ 'shape' => 'ElasticsearchVersionString', 'location' => 'uri', 'locationName' => 'ElasticsearchVersion', ], ], ], 'DescribeElasticsearchInstanceTypeLimitsResponse' => [ 'type' => 'structure', 'members' => [ 'LimitsByRole' => [ 'shape' => 'LimitsByRole', ], ], ], 'DescribeReservedElasticsearchInstanceOfferingsRequest' => [ 'type' => 'structure', 'members' => [ 'ReservedElasticsearchInstanceOfferingId' => [ 'shape' => 'GUID', 'location' => 'querystring', 'locationName' => 'offeringId', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'DescribeReservedElasticsearchInstanceOfferingsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'ReservedElasticsearchInstanceOfferings' => [ 'shape' => 'ReservedElasticsearchInstanceOfferingList', ], ], ], 'DescribeReservedElasticsearchInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'ReservedElasticsearchInstanceId' => [ 'shape' => 'GUID', 'location' => 'querystring', 'locationName' => 'reservationId', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'DescribeReservedElasticsearchInstancesResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], 'ReservedElasticsearchInstances' => [ 'shape' => 'ReservedElasticsearchInstanceList', ], ], ], 'DisabledOperationException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'DomainId' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'DomainInfo' => [ 'type' => 'structure', 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', ], ], ], 'DomainInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DomainInfo', ], ], 'DomainName' => [ 'type' => 'string', 'max' => 28, 'min' => 3, 'pattern' => '[a-z][a-z0-9\\-]+', ], 'DomainNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DomainName', ], ], 'Double' => [ 'type' => 'double', ], 'EBSOptions' => [ 'type' => 'structure', 'members' => [ 'EBSEnabled' => [ 'shape' => 'Boolean', ], 'VolumeType' => [ 'shape' => 'VolumeType', ], 'VolumeSize' => [ 'shape' => 'IntegerClass', ], 'Iops' => [ 'shape' => 'IntegerClass', ], ], ], 'EBSOptionsStatus' => [ 'type' => 'structure', 'required' => [ 'Options', 'Status', ], 'members' => [ 'Options' => [ 'shape' => 'EBSOptions', ], 'Status' => [ 'shape' => 'OptionStatus', ], ], ], 'ESPartitionInstanceType' => [ 'type' => 'string', 'enum' => [ 'm3.medium.elasticsearch', 'm3.large.elasticsearch', 'm3.xlarge.elasticsearch', 'm3.2xlarge.elasticsearch', 'm4.large.elasticsearch', 'm4.xlarge.elasticsearch', 'm4.2xlarge.elasticsearch', 'm4.4xlarge.elasticsearch', 'm4.10xlarge.elasticsearch', 't2.micro.elasticsearch', 't2.small.elasticsearch', 't2.medium.elasticsearch', 'r3.large.elasticsearch', 'r3.xlarge.elasticsearch', 'r3.2xlarge.elasticsearch', 'r3.4xlarge.elasticsearch', 'r3.8xlarge.elasticsearch', 'i2.xlarge.elasticsearch', 'i2.2xlarge.elasticsearch', 'd2.xlarge.elasticsearch', 'd2.2xlarge.elasticsearch', 'd2.4xlarge.elasticsearch', 'd2.8xlarge.elasticsearch', 'c4.large.elasticsearch', 'c4.xlarge.elasticsearch', 'c4.2xlarge.elasticsearch', 'c4.4xlarge.elasticsearch', 'c4.8xlarge.elasticsearch', 'r4.large.elasticsearch', 'r4.xlarge.elasticsearch', 'r4.2xlarge.elasticsearch', 'r4.4xlarge.elasticsearch', 'r4.8xlarge.elasticsearch', 'r4.16xlarge.elasticsearch', 'i3.large.elasticsearch', 'i3.xlarge.elasticsearch', 'i3.2xlarge.elasticsearch', 'i3.4xlarge.elasticsearch', 'i3.8xlarge.elasticsearch', 'i3.16xlarge.elasticsearch', ], ], 'ElasticsearchClusterConfig' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'ESPartitionInstanceType', ], 'InstanceCount' => [ 'shape' => 'IntegerClass', ], 'DedicatedMasterEnabled' => [ 'shape' => 'Boolean', ], 'ZoneAwarenessEnabled' => [ 'shape' => 'Boolean', ], 'ZoneAwarenessConfig' => [ 'shape' => 'ZoneAwarenessConfig', ], 'DedicatedMasterType' => [ 'shape' => 'ESPartitionInstanceType', ], 'DedicatedMasterCount' => [ 'shape' => 'IntegerClass', ], ], ], 'ElasticsearchClusterConfigStatus' => [ 'type' => 'structure', 'required' => [ 'Options', 'Status', ], 'members' => [ 'Options' => [ 'shape' => 'ElasticsearchClusterConfig', ], 'Status' => [ 'shape' => 'OptionStatus', ], ], ], 'ElasticsearchDomainConfig' => [ 'type' => 'structure', 'members' => [ 'ElasticsearchVersion' => [ 'shape' => 'ElasticsearchVersionStatus', ], 'ElasticsearchClusterConfig' => [ 'shape' => 'ElasticsearchClusterConfigStatus', ], 'EBSOptions' => [ 'shape' => 'EBSOptionsStatus', ], 'AccessPolicies' => [ 'shape' => 'AccessPoliciesStatus', ], 'SnapshotOptions' => [ 'shape' => 'SnapshotOptionsStatus', ], 'VPCOptions' => [ 'shape' => 'VPCDerivedInfoStatus', ], 'CognitoOptions' => [ 'shape' => 'CognitoOptionsStatus', ], 'EncryptionAtRestOptions' => [ 'shape' => 'EncryptionAtRestOptionsStatus', ], 'NodeToNodeEncryptionOptions' => [ 'shape' => 'NodeToNodeEncryptionOptionsStatus', ], 'AdvancedOptions' => [ 'shape' => 'AdvancedOptionsStatus', ], 'LogPublishingOptions' => [ 'shape' => 'LogPublishingOptionsStatus', ], ], ], 'ElasticsearchDomainStatus' => [ 'type' => 'structure', 'required' => [ 'DomainId', 'DomainName', 'ARN', 'ElasticsearchClusterConfig', ], 'members' => [ 'DomainId' => [ 'shape' => 'DomainId', ], 'DomainName' => [ 'shape' => 'DomainName', ], 'ARN' => [ 'shape' => 'ARN', ], 'Created' => [ 'shape' => 'Boolean', ], 'Deleted' => [ 'shape' => 'Boolean', ], 'Endpoint' => [ 'shape' => 'ServiceUrl', ], 'Endpoints' => [ 'shape' => 'EndpointsMap', ], 'Processing' => [ 'shape' => 'Boolean', ], 'UpgradeProcessing' => [ 'shape' => 'Boolean', ], 'ElasticsearchVersion' => [ 'shape' => 'ElasticsearchVersionString', ], 'ElasticsearchClusterConfig' => [ 'shape' => 'ElasticsearchClusterConfig', ], 'EBSOptions' => [ 'shape' => 'EBSOptions', ], 'AccessPolicies' => [ 'shape' => 'PolicyDocument', ], 'SnapshotOptions' => [ 'shape' => 'SnapshotOptions', ], 'VPCOptions' => [ 'shape' => 'VPCDerivedInfo', ], 'CognitoOptions' => [ 'shape' => 'CognitoOptions', ], 'EncryptionAtRestOptions' => [ 'shape' => 'EncryptionAtRestOptions', ], 'NodeToNodeEncryptionOptions' => [ 'shape' => 'NodeToNodeEncryptionOptions', ], 'AdvancedOptions' => [ 'shape' => 'AdvancedOptions', ], 'LogPublishingOptions' => [ 'shape' => 'LogPublishingOptions', ], 'ServiceSoftwareOptions' => [ 'shape' => 'ServiceSoftwareOptions', ], ], ], 'ElasticsearchDomainStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticsearchDomainStatus', ], ], 'ElasticsearchInstanceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ESPartitionInstanceType', ], ], 'ElasticsearchVersionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticsearchVersionString', ], ], 'ElasticsearchVersionStatus' => [ 'type' => 'structure', 'required' => [ 'Options', 'Status', ], 'members' => [ 'Options' => [ 'shape' => 'ElasticsearchVersionString', ], 'Status' => [ 'shape' => 'OptionStatus', ], ], ], 'ElasticsearchVersionString' => [ 'type' => 'string', ], 'EncryptionAtRestOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'EncryptionAtRestOptionsStatus' => [ 'type' => 'structure', 'required' => [ 'Options', 'Status', ], 'members' => [ 'Options' => [ 'shape' => 'EncryptionAtRestOptions', ], 'Status' => [ 'shape' => 'OptionStatus', ], ], ], 'EndpointsMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'ServiceUrl', ], ], 'ErrorMessage' => [ 'type' => 'string', ], 'GUID' => [ 'type' => 'string', 'pattern' => '\\p{XDigit}{8}-\\p{XDigit}{4}-\\p{XDigit}{4}-\\p{XDigit}{4}-\\p{XDigit}{12}', ], 'GetCompatibleElasticsearchVersionsRequest' => [ 'type' => 'structure', 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', 'location' => 'querystring', 'locationName' => 'domainName', ], ], ], 'GetCompatibleElasticsearchVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'CompatibleElasticsearchVersions' => [ 'shape' => 'CompatibleElasticsearchVersionsList', ], ], ], 'GetUpgradeHistoryRequest' => [ 'type' => 'structure', 'required' => [ 'DomainName', ], 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', 'location' => 'uri', 'locationName' => 'DomainName', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'GetUpgradeHistoryResponse' => [ 'type' => 'structure', 'members' => [ 'UpgradeHistories' => [ 'shape' => 'UpgradeHistoryList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'GetUpgradeStatusRequest' => [ 'type' => 'structure', 'required' => [ 'DomainName', ], 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', 'location' => 'uri', 'locationName' => 'DomainName', ], ], ], 'GetUpgradeStatusResponse' => [ 'type' => 'structure', 'members' => [ 'UpgradeStep' => [ 'shape' => 'UpgradeStep', ], 'StepStatus' => [ 'shape' => 'UpgradeStatus', ], 'UpgradeName' => [ 'shape' => 'UpgradeName', ], ], ], 'IdentityPoolId' => [ 'type' => 'string', 'max' => 55, 'min' => 1, 'pattern' => '[\\w-]+:[0-9a-f-]+', ], 'InstanceCount' => [ 'type' => 'integer', 'min' => 1, ], 'InstanceCountLimits' => [ 'type' => 'structure', 'members' => [ 'MinimumInstanceCount' => [ 'shape' => 'MinimumInstanceCount', ], 'MaximumInstanceCount' => [ 'shape' => 'MaximumInstanceCount', ], ], ], 'InstanceLimits' => [ 'type' => 'structure', 'members' => [ 'InstanceCountLimits' => [ 'shape' => 'InstanceCountLimits', ], ], ], 'InstanceRole' => [ 'type' => 'string', ], 'Integer' => [ 'type' => 'integer', ], 'IntegerClass' => [ 'type' => 'integer', ], 'InternalException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, ], 'InvalidTypeException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'Issue' => [ 'type' => 'string', ], 'Issues' => [ 'type' => 'list', 'member' => [ 'shape' => 'Issue', ], ], 'KmsKeyId' => [ 'type' => 'string', 'max' => 500, 'min' => 1, ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'LimitName' => [ 'type' => 'string', ], 'LimitValue' => [ 'type' => 'string', ], 'LimitValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LimitValue', ], ], 'Limits' => [ 'type' => 'structure', 'members' => [ 'StorageTypes' => [ 'shape' => 'StorageTypeList', ], 'InstanceLimits' => [ 'shape' => 'InstanceLimits', ], 'AdditionalLimits' => [ 'shape' => 'AdditionalLimitList', ], ], ], 'LimitsByRole' => [ 'type' => 'map', 'key' => [ 'shape' => 'InstanceRole', ], 'value' => [ 'shape' => 'Limits', ], ], 'ListDomainNamesResponse' => [ 'type' => 'structure', 'members' => [ 'DomainNames' => [ 'shape' => 'DomainInfoList', ], ], ], 'ListElasticsearchInstanceTypesRequest' => [ 'type' => 'structure', 'required' => [ 'ElasticsearchVersion', ], 'members' => [ 'ElasticsearchVersion' => [ 'shape' => 'ElasticsearchVersionString', 'location' => 'uri', 'locationName' => 'ElasticsearchVersion', ], 'DomainName' => [ 'shape' => 'DomainName', 'location' => 'querystring', 'locationName' => 'domainName', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListElasticsearchInstanceTypesResponse' => [ 'type' => 'structure', 'members' => [ 'ElasticsearchInstanceTypes' => [ 'shape' => 'ElasticsearchInstanceTypeList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListElasticsearchVersionsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListElasticsearchVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'ElasticsearchVersions' => [ 'shape' => 'ElasticsearchVersionList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsRequest' => [ 'type' => 'structure', 'required' => [ 'ARN', ], 'members' => [ 'ARN' => [ 'shape' => 'ARN', 'location' => 'querystring', 'locationName' => 'arn', ], ], ], 'ListTagsResponse' => [ 'type' => 'structure', 'members' => [ 'TagList' => [ 'shape' => 'TagList', ], ], ], 'LogPublishingOption' => [ 'type' => 'structure', 'members' => [ 'CloudWatchLogsLogGroupArn' => [ 'shape' => 'CloudWatchLogsLogGroupArn', ], 'Enabled' => [ 'shape' => 'Boolean', ], ], ], 'LogPublishingOptions' => [ 'type' => 'map', 'key' => [ 'shape' => 'LogType', ], 'value' => [ 'shape' => 'LogPublishingOption', ], ], 'LogPublishingOptionsStatus' => [ 'type' => 'structure', 'members' => [ 'Options' => [ 'shape' => 'LogPublishingOptions', ], 'Status' => [ 'shape' => 'OptionStatus', ], ], ], 'LogType' => [ 'type' => 'string', 'enum' => [ 'INDEX_SLOW_LOGS', 'SEARCH_SLOW_LOGS', 'ES_APPLICATION_LOGS', ], ], 'MaxResults' => [ 'type' => 'integer', 'max' => 100, ], 'MaximumInstanceCount' => [ 'type' => 'integer', ], 'MinimumInstanceCount' => [ 'type' => 'integer', ], 'NextToken' => [ 'type' => 'string', ], 'NodeToNodeEncryptionOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], ], ], 'NodeToNodeEncryptionOptionsStatus' => [ 'type' => 'structure', 'required' => [ 'Options', 'Status', ], 'members' => [ 'Options' => [ 'shape' => 'NodeToNodeEncryptionOptions', ], 'Status' => [ 'shape' => 'OptionStatus', ], ], ], 'OptionState' => [ 'type' => 'string', 'enum' => [ 'RequiresIndexDocuments', 'Processing', 'Active', ], ], 'OptionStatus' => [ 'type' => 'structure', 'required' => [ 'CreationDate', 'UpdateDate', 'State', ], 'members' => [ 'CreationDate' => [ 'shape' => 'UpdateTimestamp', ], 'UpdateDate' => [ 'shape' => 'UpdateTimestamp', ], 'UpdateVersion' => [ 'shape' => 'UIntValue', ], 'State' => [ 'shape' => 'OptionState', ], 'PendingDeletion' => [ 'shape' => 'Boolean', ], ], ], 'PolicyDocument' => [ 'type' => 'string', ], 'PurchaseReservedElasticsearchInstanceOfferingRequest' => [ 'type' => 'structure', 'required' => [ 'ReservedElasticsearchInstanceOfferingId', 'ReservationName', ], 'members' => [ 'ReservedElasticsearchInstanceOfferingId' => [ 'shape' => 'GUID', ], 'ReservationName' => [ 'shape' => 'ReservationToken', ], 'InstanceCount' => [ 'shape' => 'InstanceCount', ], ], ], 'PurchaseReservedElasticsearchInstanceOfferingResponse' => [ 'type' => 'structure', 'members' => [ 'ReservedElasticsearchInstanceId' => [ 'shape' => 'GUID', ], 'ReservationName' => [ 'shape' => 'ReservationToken', ], ], ], 'RecurringCharge' => [ 'type' => 'structure', 'members' => [ 'RecurringChargeAmount' => [ 'shape' => 'Double', ], 'RecurringChargeFrequency' => [ 'shape' => 'String', ], ], ], 'RecurringChargeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RecurringCharge', ], ], 'RemoveTagsRequest' => [ 'type' => 'structure', 'required' => [ 'ARN', 'TagKeys', ], 'members' => [ 'ARN' => [ 'shape' => 'ARN', ], 'TagKeys' => [ 'shape' => 'StringList', ], ], ], 'ReservationToken' => [ 'type' => 'string', 'max' => 64, 'min' => 5, ], 'ReservedElasticsearchInstance' => [ 'type' => 'structure', 'members' => [ 'ReservationName' => [ 'shape' => 'ReservationToken', ], 'ReservedElasticsearchInstanceId' => [ 'shape' => 'GUID', ], 'ReservedElasticsearchInstanceOfferingId' => [ 'shape' => 'String', ], 'ElasticsearchInstanceType' => [ 'shape' => 'ESPartitionInstanceType', ], 'StartTime' => [ 'shape' => 'UpdateTimestamp', ], 'Duration' => [ 'shape' => 'Integer', ], 'FixedPrice' => [ 'shape' => 'Double', ], 'UsagePrice' => [ 'shape' => 'Double', ], 'CurrencyCode' => [ 'shape' => 'String', ], 'ElasticsearchInstanceCount' => [ 'shape' => 'Integer', ], 'State' => [ 'shape' => 'String', ], 'PaymentOption' => [ 'shape' => 'ReservedElasticsearchInstancePaymentOption', ], 'RecurringCharges' => [ 'shape' => 'RecurringChargeList', ], ], ], 'ReservedElasticsearchInstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedElasticsearchInstance', ], ], 'ReservedElasticsearchInstanceOffering' => [ 'type' => 'structure', 'members' => [ 'ReservedElasticsearchInstanceOfferingId' => [ 'shape' => 'GUID', ], 'ElasticsearchInstanceType' => [ 'shape' => 'ESPartitionInstanceType', ], 'Duration' => [ 'shape' => 'Integer', ], 'FixedPrice' => [ 'shape' => 'Double', ], 'UsagePrice' => [ 'shape' => 'Double', ], 'CurrencyCode' => [ 'shape' => 'String', ], 'PaymentOption' => [ 'shape' => 'ReservedElasticsearchInstancePaymentOption', ], 'RecurringCharges' => [ 'shape' => 'RecurringChargeList', ], ], ], 'ReservedElasticsearchInstanceOfferingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedElasticsearchInstanceOffering', ], ], 'ReservedElasticsearchInstancePaymentOption' => [ 'type' => 'string', 'enum' => [ 'ALL_UPFRONT', 'PARTIAL_UPFRONT', 'NO_UPFRONT', ], ], 'ResourceAlreadyExistsException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'RoleArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, ], 'ServiceSoftwareOptions' => [ 'type' => 'structure', 'members' => [ 'CurrentVersion' => [ 'shape' => 'String', ], 'NewVersion' => [ 'shape' => 'String', ], 'UpdateAvailable' => [ 'shape' => 'Boolean', ], 'Cancellable' => [ 'shape' => 'Boolean', ], 'UpdateStatus' => [ 'shape' => 'DeploymentStatus', ], 'Description' => [ 'shape' => 'String', ], 'AutomatedUpdateDate' => [ 'shape' => 'DeploymentCloseDateTimeStamp', ], ], ], 'ServiceUrl' => [ 'type' => 'string', ], 'SnapshotOptions' => [ 'type' => 'structure', 'members' => [ 'AutomatedSnapshotStartHour' => [ 'shape' => 'IntegerClass', ], ], ], 'SnapshotOptionsStatus' => [ 'type' => 'structure', 'required' => [ 'Options', 'Status', ], 'members' => [ 'Options' => [ 'shape' => 'SnapshotOptions', ], 'Status' => [ 'shape' => 'OptionStatus', ], ], ], 'StartElasticsearchServiceSoftwareUpdateRequest' => [ 'type' => 'structure', 'required' => [ 'DomainName', ], 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', ], ], ], 'StartElasticsearchServiceSoftwareUpdateResponse' => [ 'type' => 'structure', 'members' => [ 'ServiceSoftwareOptions' => [ 'shape' => 'ServiceSoftwareOptions', ], ], ], 'StartTimestamp' => [ 'type' => 'timestamp', ], 'StorageSubTypeName' => [ 'type' => 'string', ], 'StorageType' => [ 'type' => 'structure', 'members' => [ 'StorageTypeName' => [ 'shape' => 'StorageTypeName', ], 'StorageSubTypeName' => [ 'shape' => 'StorageSubTypeName', ], 'StorageTypeLimits' => [ 'shape' => 'StorageTypeLimitList', ], ], ], 'StorageTypeLimit' => [ 'type' => 'structure', 'members' => [ 'LimitName' => [ 'shape' => 'LimitName', ], 'LimitValues' => [ 'shape' => 'LimitValueList', ], ], ], 'StorageTypeLimitList' => [ 'type' => 'list', 'member' => [ 'shape' => 'StorageTypeLimit', ], ], 'StorageTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'StorageType', ], ], 'StorageTypeName' => [ 'type' => 'string', ], 'String' => [ 'type' => 'string', ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'UIntValue' => [ 'type' => 'integer', 'min' => 0, ], 'UpdateElasticsearchDomainConfigRequest' => [ 'type' => 'structure', 'required' => [ 'DomainName', ], 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', 'location' => 'uri', 'locationName' => 'DomainName', ], 'ElasticsearchClusterConfig' => [ 'shape' => 'ElasticsearchClusterConfig', ], 'EBSOptions' => [ 'shape' => 'EBSOptions', ], 'SnapshotOptions' => [ 'shape' => 'SnapshotOptions', ], 'VPCOptions' => [ 'shape' => 'VPCOptions', ], 'CognitoOptions' => [ 'shape' => 'CognitoOptions', ], 'AdvancedOptions' => [ 'shape' => 'AdvancedOptions', ], 'AccessPolicies' => [ 'shape' => 'PolicyDocument', ], 'LogPublishingOptions' => [ 'shape' => 'LogPublishingOptions', ], ], ], 'UpdateElasticsearchDomainConfigResponse' => [ 'type' => 'structure', 'required' => [ 'DomainConfig', ], 'members' => [ 'DomainConfig' => [ 'shape' => 'ElasticsearchDomainConfig', ], ], ], 'UpdateTimestamp' => [ 'type' => 'timestamp', ], 'UpgradeElasticsearchDomainRequest' => [ 'type' => 'structure', 'required' => [ 'DomainName', 'TargetVersion', ], 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', ], 'TargetVersion' => [ 'shape' => 'ElasticsearchVersionString', ], 'PerformCheckOnly' => [ 'shape' => 'Boolean', ], ], ], 'UpgradeElasticsearchDomainResponse' => [ 'type' => 'structure', 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', ], 'TargetVersion' => [ 'shape' => 'ElasticsearchVersionString', ], 'PerformCheckOnly' => [ 'shape' => 'Boolean', ], ], ], 'UpgradeHistory' => [ 'type' => 'structure', 'members' => [ 'UpgradeName' => [ 'shape' => 'UpgradeName', ], 'StartTimestamp' => [ 'shape' => 'StartTimestamp', ], 'UpgradeStatus' => [ 'shape' => 'UpgradeStatus', ], 'StepsList' => [ 'shape' => 'UpgradeStepsList', ], ], ], 'UpgradeHistoryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UpgradeHistory', ], ], 'UpgradeName' => [ 'type' => 'string', ], 'UpgradeStatus' => [ 'type' => 'string', 'enum' => [ 'IN_PROGRESS', 'SUCCEEDED', 'SUCCEEDED_WITH_ISSUES', 'FAILED', ], ], 'UpgradeStep' => [ 'type' => 'string', 'enum' => [ 'PRE_UPGRADE_CHECK', 'SNAPSHOT', 'UPGRADE', ], ], 'UpgradeStepItem' => [ 'type' => 'structure', 'members' => [ 'UpgradeStep' => [ 'shape' => 'UpgradeStep', ], 'UpgradeStepStatus' => [ 'shape' => 'UpgradeStatus', ], 'Issues' => [ 'shape' => 'Issues', ], 'ProgressPercent' => [ 'shape' => 'Double', ], ], ], 'UpgradeStepsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UpgradeStepItem', ], ], 'UserPoolId' => [ 'type' => 'string', 'max' => 55, 'min' => 1, 'pattern' => '[\\w-]+_[0-9a-zA-Z]+', ], 'VPCDerivedInfo' => [ 'type' => 'structure', 'members' => [ 'VPCId' => [ 'shape' => 'String', ], 'SubnetIds' => [ 'shape' => 'StringList', ], 'AvailabilityZones' => [ 'shape' => 'StringList', ], 'SecurityGroupIds' => [ 'shape' => 'StringList', ], ], ], 'VPCDerivedInfoStatus' => [ 'type' => 'structure', 'required' => [ 'Options', 'Status', ], 'members' => [ 'Options' => [ 'shape' => 'VPCDerivedInfo', ], 'Status' => [ 'shape' => 'OptionStatus', ], ], ], 'VPCOptions' => [ 'type' => 'structure', 'members' => [ 'SubnetIds' => [ 'shape' => 'StringList', ], 'SecurityGroupIds' => [ 'shape' => 'StringList', ], ], ], 'ValidationException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'VolumeType' => [ 'type' => 'string', 'enum' => [ 'standard', 'gp2', 'io1', ], ], 'ZoneAwarenessConfig' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZoneCount' => [ 'shape' => 'IntegerClass', ], ], ], ],]; diff --git a/lib/aws/Aws/data/es/2015-01-01/paginators-1.json.php b/lib/aws/Aws/data/es/2015-01-01/paginators-1.json.php new file mode 100644 index 0000000..362c8d8 --- /dev/null +++ b/lib/aws/Aws/data/es/2015-01-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/es/2015-01-01/paginators-1.json +return [ 'pagination' => [ 'DescribeReservedElasticsearchInstanceOfferings' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'DescribeReservedElasticsearchInstances' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'GetUpgradeHistory' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListElasticsearchInstanceTypes' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListElasticsearchVersions' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/es/2015-01-01/smoke.json.php b/lib/aws/Aws/data/es/2015-01-01/smoke.json.php new file mode 100644 index 0000000..f68ddbd --- /dev/null +++ b/lib/aws/Aws/data/es/2015-01-01/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/es/2015-01-01/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListDomainNames', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeElasticsearchDomain', 'input' => [ 'DomainName' => 'not-a-domain', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/events/2015-10-07/api-2.json.php b/lib/aws/Aws/data/events/2015-10-07/api-2.json.php new file mode 100644 index 0000000..4c109a9 --- /dev/null +++ b/lib/aws/Aws/data/events/2015-10-07/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/events/2015-10-07/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-10-07', 'endpointPrefix' => 'events', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Amazon CloudWatch Events', 'serviceId' => 'CloudWatch Events', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWSEvents', 'uid' => 'events-2015-10-07', ], 'operations' => [ 'DeleteRule' => [ 'name' => 'DeleteRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRuleRequest', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ManagedRuleException', ], [ 'shape' => 'InternalException', ], ], ], 'DescribeEventBus' => [ 'name' => 'DescribeEventBus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEventBusRequest', ], 'output' => [ 'shape' => 'DescribeEventBusResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalException', ], ], ], 'DescribeRule' => [ 'name' => 'DescribeRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRuleRequest', ], 'output' => [ 'shape' => 'DescribeRuleResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalException', ], ], ], 'DisableRule' => [ 'name' => 'DisableRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableRuleRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ManagedRuleException', ], [ 'shape' => 'InternalException', ], ], ], 'EnableRule' => [ 'name' => 'EnableRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableRuleRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ManagedRuleException', ], [ 'shape' => 'InternalException', ], ], ], 'ListRuleNamesByTarget' => [ 'name' => 'ListRuleNamesByTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRuleNamesByTargetRequest', ], 'output' => [ 'shape' => 'ListRuleNamesByTargetResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], ], ], 'ListRules' => [ 'name' => 'ListRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRulesRequest', ], 'output' => [ 'shape' => 'ListRulesResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalException', ], ], ], 'ListTargetsByRule' => [ 'name' => 'ListTargetsByRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTargetsByRuleRequest', ], 'output' => [ 'shape' => 'ListTargetsByRuleResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalException', ], ], ], 'PutEvents' => [ 'name' => 'PutEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutEventsRequest', ], 'output' => [ 'shape' => 'PutEventsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], ], ], 'PutPermission' => [ 'name' => 'PutPermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutPermissionRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'PolicyLengthExceededException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'PutRule' => [ 'name' => 'PutRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutRuleRequest', ], 'output' => [ 'shape' => 'PutRuleResponse', ], 'errors' => [ [ 'shape' => 'InvalidEventPatternException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ManagedRuleException', ], [ 'shape' => 'InternalException', ], ], ], 'PutTargets' => [ 'name' => 'PutTargets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutTargetsRequest', ], 'output' => [ 'shape' => 'PutTargetsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ManagedRuleException', ], [ 'shape' => 'InternalException', ], ], ], 'RemovePermission' => [ 'name' => 'RemovePermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemovePermissionRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'RemoveTargets' => [ 'name' => 'RemoveTargets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveTargetsRequest', ], 'output' => [ 'shape' => 'RemoveTargetsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ManagedRuleException', ], [ 'shape' => 'InternalException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'ManagedRuleException', ], ], ], 'TestEventPattern' => [ 'name' => 'TestEventPattern', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TestEventPatternRequest', ], 'output' => [ 'shape' => 'TestEventPatternResponse', ], 'errors' => [ [ 'shape' => 'InvalidEventPatternException', ], [ 'shape' => 'InternalException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ManagedRuleException', ], ], ], ], 'shapes' => [ 'Action' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => 'events:[a-zA-Z]+', ], 'Arn' => [ 'type' => 'string', 'max' => 1600, 'min' => 1, ], 'AssignPublicIp' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'AwsVpcConfiguration' => [ 'type' => 'structure', 'required' => [ 'Subnets', ], 'members' => [ 'Subnets' => [ 'shape' => 'StringList', ], 'SecurityGroups' => [ 'shape' => 'StringList', ], 'AssignPublicIp' => [ 'shape' => 'AssignPublicIp', ], ], ], 'BatchArrayProperties' => [ 'type' => 'structure', 'members' => [ 'Size' => [ 'shape' => 'Integer', ], ], ], 'BatchParameters' => [ 'type' => 'structure', 'required' => [ 'JobDefinition', 'JobName', ], 'members' => [ 'JobDefinition' => [ 'shape' => 'String', ], 'JobName' => [ 'shape' => 'String', ], 'ArrayProperties' => [ 'shape' => 'BatchArrayProperties', ], 'RetryStrategy' => [ 'shape' => 'BatchRetryStrategy', ], ], ], 'BatchRetryStrategy' => [ 'type' => 'structure', 'members' => [ 'Attempts' => [ 'shape' => 'Integer', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Condition' => [ 'type' => 'structure', 'required' => [ 'Type', 'Key', 'Value', ], 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Key' => [ 'shape' => 'String', ], 'Value' => [ 'shape' => 'String', ], ], ], 'DeleteRuleRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'RuleName', ], 'Force' => [ 'shape' => 'Boolean', ], ], ], 'DescribeEventBusRequest' => [ 'type' => 'structure', 'members' => [], ], 'DescribeEventBusResponse' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Arn' => [ 'shape' => 'String', ], 'Policy' => [ 'shape' => 'String', ], ], ], 'DescribeRuleRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'RuleName', ], ], ], 'DescribeRuleResponse' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'RuleName', ], 'Arn' => [ 'shape' => 'RuleArn', ], 'EventPattern' => [ 'shape' => 'EventPattern', ], 'ScheduleExpression' => [ 'shape' => 'ScheduleExpression', ], 'State' => [ 'shape' => 'RuleState', ], 'Description' => [ 'shape' => 'RuleDescription', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'ManagedBy' => [ 'shape' => 'ManagedBy', ], ], ], 'DisableRuleRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'RuleName', ], ], ], 'EcsParameters' => [ 'type' => 'structure', 'required' => [ 'TaskDefinitionArn', ], 'members' => [ 'TaskDefinitionArn' => [ 'shape' => 'Arn', ], 'TaskCount' => [ 'shape' => 'LimitMin1', ], 'LaunchType' => [ 'shape' => 'LaunchType', ], 'NetworkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'PlatformVersion' => [ 'shape' => 'String', ], 'Group' => [ 'shape' => 'String', ], ], ], 'EnableRuleRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'RuleName', ], ], ], 'ErrorCode' => [ 'type' => 'string', ], 'ErrorMessage' => [ 'type' => 'string', ], 'EventId' => [ 'type' => 'string', ], 'EventPattern' => [ 'type' => 'string', ], 'EventResource' => [ 'type' => 'string', ], 'EventResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventResource', ], ], 'EventTime' => [ 'type' => 'timestamp', ], 'InputTransformer' => [ 'type' => 'structure', 'required' => [ 'InputTemplate', ], 'members' => [ 'InputPathsMap' => [ 'shape' => 'TransformerPaths', ], 'InputTemplate' => [ 'shape' => 'TransformerInput', ], ], ], 'InputTransformerPathKey' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[A-Za-z0-9\\_\\-]+', ], 'Integer' => [ 'type' => 'integer', ], 'InternalException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, 'fault' => true, ], 'InvalidEventPatternException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'KinesisParameters' => [ 'type' => 'structure', 'required' => [ 'PartitionKeyPath', ], 'members' => [ 'PartitionKeyPath' => [ 'shape' => 'TargetPartitionKeyPath', ], ], ], 'LaunchType' => [ 'type' => 'string', 'enum' => [ 'EC2', 'FARGATE', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'LimitMax100' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'LimitMin1' => [ 'type' => 'integer', 'min' => 1, ], 'ListRuleNamesByTargetRequest' => [ 'type' => 'structure', 'required' => [ 'TargetArn', ], 'members' => [ 'TargetArn' => [ 'shape' => 'TargetArn', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Limit' => [ 'shape' => 'LimitMax100', ], ], ], 'ListRuleNamesByTargetResponse' => [ 'type' => 'structure', 'members' => [ 'RuleNames' => [ 'shape' => 'RuleNameList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListRulesRequest' => [ 'type' => 'structure', 'members' => [ 'NamePrefix' => [ 'shape' => 'RuleName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Limit' => [ 'shape' => 'LimitMax100', ], ], ], 'ListRulesResponse' => [ 'type' => 'structure', 'members' => [ 'Rules' => [ 'shape' => 'RuleResponseList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'Arn', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], ], ], 'ListTargetsByRuleRequest' => [ 'type' => 'structure', 'required' => [ 'Rule', ], 'members' => [ 'Rule' => [ 'shape' => 'RuleName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Limit' => [ 'shape' => 'LimitMax100', ], ], ], 'ListTargetsByRuleResponse' => [ 'type' => 'structure', 'members' => [ 'Targets' => [ 'shape' => 'TargetList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ManagedBy' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'ManagedRuleException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'MessageGroupId' => [ 'type' => 'string', ], 'NetworkConfiguration' => [ 'type' => 'structure', 'members' => [ 'awsvpcConfiguration' => [ 'shape' => 'AwsVpcConfiguration', ], ], ], 'NextToken' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'PolicyLengthExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Principal' => [ 'type' => 'string', 'max' => 12, 'min' => 1, 'pattern' => '(\\d{12}|\\*)', ], 'PutEventsRequest' => [ 'type' => 'structure', 'required' => [ 'Entries', ], 'members' => [ 'Entries' => [ 'shape' => 'PutEventsRequestEntryList', ], ], ], 'PutEventsRequestEntry' => [ 'type' => 'structure', 'members' => [ 'Time' => [ 'shape' => 'EventTime', ], 'Source' => [ 'shape' => 'String', ], 'Resources' => [ 'shape' => 'EventResourceList', ], 'DetailType' => [ 'shape' => 'String', ], 'Detail' => [ 'shape' => 'String', ], ], ], 'PutEventsRequestEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PutEventsRequestEntry', ], 'max' => 10, 'min' => 1, ], 'PutEventsResponse' => [ 'type' => 'structure', 'members' => [ 'FailedEntryCount' => [ 'shape' => 'Integer', ], 'Entries' => [ 'shape' => 'PutEventsResultEntryList', ], ], ], 'PutEventsResultEntry' => [ 'type' => 'structure', 'members' => [ 'EventId' => [ 'shape' => 'EventId', ], 'ErrorCode' => [ 'shape' => 'ErrorCode', ], 'ErrorMessage' => [ 'shape' => 'ErrorMessage', ], ], ], 'PutEventsResultEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PutEventsResultEntry', ], ], 'PutPermissionRequest' => [ 'type' => 'structure', 'required' => [ 'Action', 'Principal', 'StatementId', ], 'members' => [ 'Action' => [ 'shape' => 'Action', ], 'Principal' => [ 'shape' => 'Principal', ], 'StatementId' => [ 'shape' => 'StatementId', ], 'Condition' => [ 'shape' => 'Condition', ], ], ], 'PutRuleRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'RuleName', ], 'ScheduleExpression' => [ 'shape' => 'ScheduleExpression', ], 'EventPattern' => [ 'shape' => 'EventPattern', ], 'State' => [ 'shape' => 'RuleState', ], 'Description' => [ 'shape' => 'RuleDescription', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'PutRuleResponse' => [ 'type' => 'structure', 'members' => [ 'RuleArn' => [ 'shape' => 'RuleArn', ], ], ], 'PutTargetsRequest' => [ 'type' => 'structure', 'required' => [ 'Rule', 'Targets', ], 'members' => [ 'Rule' => [ 'shape' => 'RuleName', ], 'Targets' => [ 'shape' => 'TargetList', ], ], ], 'PutTargetsResponse' => [ 'type' => 'structure', 'members' => [ 'FailedEntryCount' => [ 'shape' => 'Integer', ], 'FailedEntries' => [ 'shape' => 'PutTargetsResultEntryList', ], ], ], 'PutTargetsResultEntry' => [ 'type' => 'structure', 'members' => [ 'TargetId' => [ 'shape' => 'TargetId', ], 'ErrorCode' => [ 'shape' => 'ErrorCode', ], 'ErrorMessage' => [ 'shape' => 'ErrorMessage', ], ], ], 'PutTargetsResultEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PutTargetsResultEntry', ], ], 'RemovePermissionRequest' => [ 'type' => 'structure', 'required' => [ 'StatementId', ], 'members' => [ 'StatementId' => [ 'shape' => 'StatementId', ], ], ], 'RemoveTargetsRequest' => [ 'type' => 'structure', 'required' => [ 'Rule', 'Ids', ], 'members' => [ 'Rule' => [ 'shape' => 'RuleName', ], 'Ids' => [ 'shape' => 'TargetIdList', ], 'Force' => [ 'shape' => 'Boolean', ], ], ], 'RemoveTargetsResponse' => [ 'type' => 'structure', 'members' => [ 'FailedEntryCount' => [ 'shape' => 'Integer', ], 'FailedEntries' => [ 'shape' => 'RemoveTargetsResultEntryList', ], ], ], 'RemoveTargetsResultEntry' => [ 'type' => 'structure', 'members' => [ 'TargetId' => [ 'shape' => 'TargetId', ], 'ErrorCode' => [ 'shape' => 'ErrorCode', ], 'ErrorMessage' => [ 'shape' => 'ErrorMessage', ], ], ], 'RemoveTargetsResultEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RemoveTargetsResultEntry', ], ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'RoleArn' => [ 'type' => 'string', 'max' => 1600, 'min' => 1, ], 'Rule' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'RuleName', ], 'Arn' => [ 'shape' => 'RuleArn', ], 'EventPattern' => [ 'shape' => 'EventPattern', ], 'State' => [ 'shape' => 'RuleState', ], 'Description' => [ 'shape' => 'RuleDescription', ], 'ScheduleExpression' => [ 'shape' => 'ScheduleExpression', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'ManagedBy' => [ 'shape' => 'ManagedBy', ], ], ], 'RuleArn' => [ 'type' => 'string', 'max' => 1600, 'min' => 1, ], 'RuleDescription' => [ 'type' => 'string', 'max' => 512, ], 'RuleName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[\\.\\-_A-Za-z0-9]+', ], 'RuleNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RuleName', ], ], 'RuleResponseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Rule', ], ], 'RuleState' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'RunCommandParameters' => [ 'type' => 'structure', 'required' => [ 'RunCommandTargets', ], 'members' => [ 'RunCommandTargets' => [ 'shape' => 'RunCommandTargets', ], ], ], 'RunCommandTarget' => [ 'type' => 'structure', 'required' => [ 'Key', 'Values', ], 'members' => [ 'Key' => [ 'shape' => 'RunCommandTargetKey', ], 'Values' => [ 'shape' => 'RunCommandTargetValues', ], ], ], 'RunCommandTargetKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*$', ], 'RunCommandTargetValue' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'RunCommandTargetValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'RunCommandTargetValue', ], 'max' => 50, 'min' => 1, ], 'RunCommandTargets' => [ 'type' => 'list', 'member' => [ 'shape' => 'RunCommandTarget', ], 'max' => 5, 'min' => 1, ], 'ScheduleExpression' => [ 'type' => 'string', 'max' => 256, ], 'SqsParameters' => [ 'type' => 'structure', 'members' => [ 'MessageGroupId' => [ 'shape' => 'MessageGroupId', ], ], ], 'StatementId' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9-_]+', ], 'String' => [ 'type' => 'string', ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', 'Tags', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'Arn', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'Target' => [ 'type' => 'structure', 'required' => [ 'Id', 'Arn', ], 'members' => [ 'Id' => [ 'shape' => 'TargetId', ], 'Arn' => [ 'shape' => 'TargetArn', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'Input' => [ 'shape' => 'TargetInput', ], 'InputPath' => [ 'shape' => 'TargetInputPath', ], 'InputTransformer' => [ 'shape' => 'InputTransformer', ], 'KinesisParameters' => [ 'shape' => 'KinesisParameters', ], 'RunCommandParameters' => [ 'shape' => 'RunCommandParameters', ], 'EcsParameters' => [ 'shape' => 'EcsParameters', ], 'BatchParameters' => [ 'shape' => 'BatchParameters', ], 'SqsParameters' => [ 'shape' => 'SqsParameters', ], ], ], 'TargetArn' => [ 'type' => 'string', 'max' => 1600, 'min' => 1, ], 'TargetId' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[\\.\\-_A-Za-z0-9]+', ], 'TargetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetId', ], 'max' => 100, 'min' => 1, ], 'TargetInput' => [ 'type' => 'string', 'max' => 8192, ], 'TargetInputPath' => [ 'type' => 'string', 'max' => 256, ], 'TargetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Target', ], 'max' => 100, 'min' => 1, ], 'TargetPartitionKeyPath' => [ 'type' => 'string', 'max' => 256, ], 'TestEventPatternRequest' => [ 'type' => 'structure', 'required' => [ 'EventPattern', 'Event', ], 'members' => [ 'EventPattern' => [ 'shape' => 'EventPattern', ], 'Event' => [ 'shape' => 'String', ], ], ], 'TestEventPatternResponse' => [ 'type' => 'structure', 'members' => [ 'Result' => [ 'shape' => 'Boolean', ], ], ], 'TransformerInput' => [ 'type' => 'string', 'max' => 8192, 'min' => 1, ], 'TransformerPaths' => [ 'type' => 'map', 'key' => [ 'shape' => 'InputTransformerPathKey', ], 'value' => [ 'shape' => 'TargetInputPath', ], 'max' => 10, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', 'TagKeys', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'Arn', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], ],]; diff --git a/lib/aws/Aws/data/events/2015-10-07/paginators-1.json.php b/lib/aws/Aws/data/events/2015-10-07/paginators-1.json.php new file mode 100644 index 0000000..4cae00d --- /dev/null +++ b/lib/aws/Aws/data/events/2015-10-07/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/events/2015-10-07/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/events/2015-10-07/smoke.json.php b/lib/aws/Aws/data/events/2015-10-07/smoke.json.php new file mode 100644 index 0000000..d45f14e --- /dev/null +++ b/lib/aws/Aws/data/events/2015-10-07/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/events/2015-10-07/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListRules', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeRule', 'input' => [ 'Name' => 'fake-rule', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/firehose/2015-08-04/api-2.json.php b/lib/aws/Aws/data/firehose/2015-08-04/api-2.json.php new file mode 100644 index 0000000..d4ddea1 --- /dev/null +++ b/lib/aws/Aws/data/firehose/2015-08-04/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/firehose/2015-08-04/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-08-04', 'endpointPrefix' => 'firehose', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'Firehose', 'serviceFullName' => 'Amazon Kinesis Firehose', 'serviceId' => 'Firehose', 'signatureVersion' => 'v4', 'targetPrefix' => 'Firehose_20150804', 'uid' => 'firehose-2015-08-04', ], 'operations' => [ 'CreateDeliveryStream' => [ 'name' => 'CreateDeliveryStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDeliveryStreamInput', ], 'output' => [ 'shape' => 'CreateDeliveryStreamOutput', ], 'errors' => [ [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceInUseException', ], ], ], 'DeleteDeliveryStream' => [ 'name' => 'DeleteDeliveryStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDeliveryStreamInput', ], 'output' => [ 'shape' => 'DeleteDeliveryStreamOutput', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeDeliveryStream' => [ 'name' => 'DescribeDeliveryStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDeliveryStreamInput', ], 'output' => [ 'shape' => 'DescribeDeliveryStreamOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListDeliveryStreams' => [ 'name' => 'ListDeliveryStreams', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDeliveryStreamsInput', ], 'output' => [ 'shape' => 'ListDeliveryStreamsOutput', ], ], 'ListTagsForDeliveryStream' => [ 'name' => 'ListTagsForDeliveryStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForDeliveryStreamInput', ], 'output' => [ 'shape' => 'ListTagsForDeliveryStreamOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'PutRecord' => [ 'name' => 'PutRecord', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutRecordInput', ], 'output' => [ 'shape' => 'PutRecordOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'PutRecordBatch' => [ 'name' => 'PutRecordBatch', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutRecordBatchInput', ], 'output' => [ 'shape' => 'PutRecordBatchOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'StartDeliveryStreamEncryption' => [ 'name' => 'StartDeliveryStreamEncryption', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartDeliveryStreamEncryptionInput', ], 'output' => [ 'shape' => 'StartDeliveryStreamEncryptionOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'StopDeliveryStreamEncryption' => [ 'name' => 'StopDeliveryStreamEncryption', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopDeliveryStreamEncryptionInput', ], 'output' => [ 'shape' => 'StopDeliveryStreamEncryptionOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'TagDeliveryStream' => [ 'name' => 'TagDeliveryStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagDeliveryStreamInput', ], 'output' => [ 'shape' => 'TagDeliveryStreamOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'UntagDeliveryStream' => [ 'name' => 'UntagDeliveryStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagDeliveryStreamInput', ], 'output' => [ 'shape' => 'UntagDeliveryStreamOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'UpdateDestination' => [ 'name' => 'UpdateDestination', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateDestinationInput', ], 'output' => [ 'shape' => 'UpdateDestinationOutput', ], 'errors' => [ [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], ], 'shapes' => [ 'AWSKMSKeyARN' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => 'arn:.*', ], 'BlockSizeBytes' => [ 'type' => 'integer', 'min' => 67108864, ], 'BooleanObject' => [ 'type' => 'boolean', ], 'BucketARN' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:.*', ], 'BufferingHints' => [ 'type' => 'structure', 'members' => [ 'SizeInMBs' => [ 'shape' => 'SizeInMBs', ], 'IntervalInSeconds' => [ 'shape' => 'IntervalInSeconds', ], ], ], 'CloudWatchLoggingOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'BooleanObject', ], 'LogGroupName' => [ 'shape' => 'LogGroupName', ], 'LogStreamName' => [ 'shape' => 'LogStreamName', ], ], ], 'ClusterJDBCURL' => [ 'type' => 'string', 'min' => 1, 'pattern' => 'jdbc:(redshift|postgresql)://((?!-)[A-Za-z0-9-]{1,63}(?<!-)\\.)+redshift\\.amazonaws\\.com:\\d{1,5}/[a-zA-Z0-9_$]+', ], 'ColumnToJsonKeyMappings' => [ 'type' => 'map', 'key' => [ 'shape' => 'NonEmptyStringWithoutWhitespace', ], 'value' => [ 'shape' => 'NonEmptyString', ], ], 'CompressionFormat' => [ 'type' => 'string', 'enum' => [ 'UNCOMPRESSED', 'GZIP', 'ZIP', 'Snappy', ], ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'CopyCommand' => [ 'type' => 'structure', 'required' => [ 'DataTableName', ], 'members' => [ 'DataTableName' => [ 'shape' => 'DataTableName', ], 'DataTableColumns' => [ 'shape' => 'DataTableColumns', ], 'CopyOptions' => [ 'shape' => 'CopyOptions', ], ], ], 'CopyOptions' => [ 'type' => 'string', ], 'CreateDeliveryStreamInput' => [ 'type' => 'structure', 'required' => [ 'DeliveryStreamName', ], 'members' => [ 'DeliveryStreamName' => [ 'shape' => 'DeliveryStreamName', ], 'DeliveryStreamType' => [ 'shape' => 'DeliveryStreamType', ], 'KinesisStreamSourceConfiguration' => [ 'shape' => 'KinesisStreamSourceConfiguration', ], 'S3DestinationConfiguration' => [ 'shape' => 'S3DestinationConfiguration', 'deprecated' => true, ], 'ExtendedS3DestinationConfiguration' => [ 'shape' => 'ExtendedS3DestinationConfiguration', ], 'RedshiftDestinationConfiguration' => [ 'shape' => 'RedshiftDestinationConfiguration', ], 'ElasticsearchDestinationConfiguration' => [ 'shape' => 'ElasticsearchDestinationConfiguration', ], 'SplunkDestinationConfiguration' => [ 'shape' => 'SplunkDestinationConfiguration', ], 'Tags' => [ 'shape' => 'TagDeliveryStreamInputTagList', ], ], ], 'CreateDeliveryStreamOutput' => [ 'type' => 'structure', 'members' => [ 'DeliveryStreamARN' => [ 'shape' => 'DeliveryStreamARN', ], ], ], 'Data' => [ 'type' => 'blob', 'max' => 1024000, 'min' => 0, ], 'DataFormatConversionConfiguration' => [ 'type' => 'structure', 'members' => [ 'SchemaConfiguration' => [ 'shape' => 'SchemaConfiguration', ], 'InputFormatConfiguration' => [ 'shape' => 'InputFormatConfiguration', ], 'OutputFormatConfiguration' => [ 'shape' => 'OutputFormatConfiguration', ], 'Enabled' => [ 'shape' => 'BooleanObject', ], ], ], 'DataTableColumns' => [ 'type' => 'string', ], 'DataTableName' => [ 'type' => 'string', 'min' => 1, ], 'DeleteDeliveryStreamInput' => [ 'type' => 'structure', 'required' => [ 'DeliveryStreamName', ], 'members' => [ 'DeliveryStreamName' => [ 'shape' => 'DeliveryStreamName', ], ], ], 'DeleteDeliveryStreamOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeliveryStartTimestamp' => [ 'type' => 'timestamp', ], 'DeliveryStreamARN' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => 'arn:.*', ], 'DeliveryStreamDescription' => [ 'type' => 'structure', 'required' => [ 'DeliveryStreamName', 'DeliveryStreamARN', 'DeliveryStreamStatus', 'DeliveryStreamType', 'VersionId', 'Destinations', 'HasMoreDestinations', ], 'members' => [ 'DeliveryStreamName' => [ 'shape' => 'DeliveryStreamName', ], 'DeliveryStreamARN' => [ 'shape' => 'DeliveryStreamARN', ], 'DeliveryStreamStatus' => [ 'shape' => 'DeliveryStreamStatus', ], 'DeliveryStreamEncryptionConfiguration' => [ 'shape' => 'DeliveryStreamEncryptionConfiguration', ], 'DeliveryStreamType' => [ 'shape' => 'DeliveryStreamType', ], 'VersionId' => [ 'shape' => 'DeliveryStreamVersionId', ], 'CreateTimestamp' => [ 'shape' => 'Timestamp', ], 'LastUpdateTimestamp' => [ 'shape' => 'Timestamp', ], 'Source' => [ 'shape' => 'SourceDescription', ], 'Destinations' => [ 'shape' => 'DestinationDescriptionList', ], 'HasMoreDestinations' => [ 'shape' => 'BooleanObject', ], ], ], 'DeliveryStreamEncryptionConfiguration' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'DeliveryStreamEncryptionStatus', ], ], ], 'DeliveryStreamEncryptionStatus' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'ENABLING', 'DISABLED', 'DISABLING', ], ], 'DeliveryStreamName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.-]+', ], 'DeliveryStreamNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeliveryStreamName', ], ], 'DeliveryStreamStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'DELETING', 'ACTIVE', ], ], 'DeliveryStreamType' => [ 'type' => 'string', 'enum' => [ 'DirectPut', 'KinesisStreamAsSource', ], ], 'DeliveryStreamVersionId' => [ 'type' => 'string', 'max' => 50, 'min' => 1, 'pattern' => '[0-9]+', ], 'DescribeDeliveryStreamInput' => [ 'type' => 'structure', 'required' => [ 'DeliveryStreamName', ], 'members' => [ 'DeliveryStreamName' => [ 'shape' => 'DeliveryStreamName', ], 'Limit' => [ 'shape' => 'DescribeDeliveryStreamInputLimit', ], 'ExclusiveStartDestinationId' => [ 'shape' => 'DestinationId', ], ], ], 'DescribeDeliveryStreamInputLimit' => [ 'type' => 'integer', 'max' => 10000, 'min' => 1, ], 'DescribeDeliveryStreamOutput' => [ 'type' => 'structure', 'required' => [ 'DeliveryStreamDescription', ], 'members' => [ 'DeliveryStreamDescription' => [ 'shape' => 'DeliveryStreamDescription', ], ], ], 'Deserializer' => [ 'type' => 'structure', 'members' => [ 'OpenXJsonSerDe' => [ 'shape' => 'OpenXJsonSerDe', ], 'HiveJsonSerDe' => [ 'shape' => 'HiveJsonSerDe', ], ], ], 'DestinationDescription' => [ 'type' => 'structure', 'required' => [ 'DestinationId', ], 'members' => [ 'DestinationId' => [ 'shape' => 'DestinationId', ], 'S3DestinationDescription' => [ 'shape' => 'S3DestinationDescription', ], 'ExtendedS3DestinationDescription' => [ 'shape' => 'ExtendedS3DestinationDescription', ], 'RedshiftDestinationDescription' => [ 'shape' => 'RedshiftDestinationDescription', ], 'ElasticsearchDestinationDescription' => [ 'shape' => 'ElasticsearchDestinationDescription', ], 'SplunkDestinationDescription' => [ 'shape' => 'SplunkDestinationDescription', ], ], ], 'DestinationDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DestinationDescription', ], ], 'DestinationId' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'ElasticsearchBufferingHints' => [ 'type' => 'structure', 'members' => [ 'IntervalInSeconds' => [ 'shape' => 'ElasticsearchBufferingIntervalInSeconds', ], 'SizeInMBs' => [ 'shape' => 'ElasticsearchBufferingSizeInMBs', ], ], ], 'ElasticsearchBufferingIntervalInSeconds' => [ 'type' => 'integer', 'max' => 900, 'min' => 60, ], 'ElasticsearchBufferingSizeInMBs' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'ElasticsearchDestinationConfiguration' => [ 'type' => 'structure', 'required' => [ 'RoleARN', 'DomainARN', 'IndexName', 'TypeName', 'S3Configuration', ], 'members' => [ 'RoleARN' => [ 'shape' => 'RoleARN', ], 'DomainARN' => [ 'shape' => 'ElasticsearchDomainARN', ], 'IndexName' => [ 'shape' => 'ElasticsearchIndexName', ], 'TypeName' => [ 'shape' => 'ElasticsearchTypeName', ], 'IndexRotationPeriod' => [ 'shape' => 'ElasticsearchIndexRotationPeriod', ], 'BufferingHints' => [ 'shape' => 'ElasticsearchBufferingHints', ], 'RetryOptions' => [ 'shape' => 'ElasticsearchRetryOptions', ], 'S3BackupMode' => [ 'shape' => 'ElasticsearchS3BackupMode', ], 'S3Configuration' => [ 'shape' => 'S3DestinationConfiguration', ], 'ProcessingConfiguration' => [ 'shape' => 'ProcessingConfiguration', ], 'CloudWatchLoggingOptions' => [ 'shape' => 'CloudWatchLoggingOptions', ], ], ], 'ElasticsearchDestinationDescription' => [ 'type' => 'structure', 'members' => [ 'RoleARN' => [ 'shape' => 'RoleARN', ], 'DomainARN' => [ 'shape' => 'ElasticsearchDomainARN', ], 'IndexName' => [ 'shape' => 'ElasticsearchIndexName', ], 'TypeName' => [ 'shape' => 'ElasticsearchTypeName', ], 'IndexRotationPeriod' => [ 'shape' => 'ElasticsearchIndexRotationPeriod', ], 'BufferingHints' => [ 'shape' => 'ElasticsearchBufferingHints', ], 'RetryOptions' => [ 'shape' => 'ElasticsearchRetryOptions', ], 'S3BackupMode' => [ 'shape' => 'ElasticsearchS3BackupMode', ], 'S3DestinationDescription' => [ 'shape' => 'S3DestinationDescription', ], 'ProcessingConfiguration' => [ 'shape' => 'ProcessingConfiguration', ], 'CloudWatchLoggingOptions' => [ 'shape' => 'CloudWatchLoggingOptions', ], ], ], 'ElasticsearchDestinationUpdate' => [ 'type' => 'structure', 'members' => [ 'RoleARN' => [ 'shape' => 'RoleARN', ], 'DomainARN' => [ 'shape' => 'ElasticsearchDomainARN', ], 'IndexName' => [ 'shape' => 'ElasticsearchIndexName', ], 'TypeName' => [ 'shape' => 'ElasticsearchTypeName', ], 'IndexRotationPeriod' => [ 'shape' => 'ElasticsearchIndexRotationPeriod', ], 'BufferingHints' => [ 'shape' => 'ElasticsearchBufferingHints', ], 'RetryOptions' => [ 'shape' => 'ElasticsearchRetryOptions', ], 'S3Update' => [ 'shape' => 'S3DestinationUpdate', ], 'ProcessingConfiguration' => [ 'shape' => 'ProcessingConfiguration', ], 'CloudWatchLoggingOptions' => [ 'shape' => 'CloudWatchLoggingOptions', ], ], ], 'ElasticsearchDomainARN' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => 'arn:.*', ], 'ElasticsearchIndexName' => [ 'type' => 'string', 'max' => 80, 'min' => 1, ], 'ElasticsearchIndexRotationPeriod' => [ 'type' => 'string', 'enum' => [ 'NoRotation', 'OneHour', 'OneDay', 'OneWeek', 'OneMonth', ], ], 'ElasticsearchRetryDurationInSeconds' => [ 'type' => 'integer', 'max' => 7200, 'min' => 0, ], 'ElasticsearchRetryOptions' => [ 'type' => 'structure', 'members' => [ 'DurationInSeconds' => [ 'shape' => 'ElasticsearchRetryDurationInSeconds', ], ], ], 'ElasticsearchS3BackupMode' => [ 'type' => 'string', 'enum' => [ 'FailedDocumentsOnly', 'AllDocuments', ], ], 'ElasticsearchTypeName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'EncryptionConfiguration' => [ 'type' => 'structure', 'members' => [ 'NoEncryptionConfig' => [ 'shape' => 'NoEncryptionConfig', ], 'KMSEncryptionConfig' => [ 'shape' => 'KMSEncryptionConfig', ], ], ], 'ErrorCode' => [ 'type' => 'string', ], 'ErrorMessage' => [ 'type' => 'string', ], 'ErrorOutputPrefix' => [ 'type' => 'string', ], 'ExtendedS3DestinationConfiguration' => [ 'type' => 'structure', 'required' => [ 'RoleARN', 'BucketARN', ], 'members' => [ 'RoleARN' => [ 'shape' => 'RoleARN', ], 'BucketARN' => [ 'shape' => 'BucketARN', ], 'Prefix' => [ 'shape' => 'Prefix', ], 'ErrorOutputPrefix' => [ 'shape' => 'ErrorOutputPrefix', ], 'BufferingHints' => [ 'shape' => 'BufferingHints', ], 'CompressionFormat' => [ 'shape' => 'CompressionFormat', ], 'EncryptionConfiguration' => [ 'shape' => 'EncryptionConfiguration', ], 'CloudWatchLoggingOptions' => [ 'shape' => 'CloudWatchLoggingOptions', ], 'ProcessingConfiguration' => [ 'shape' => 'ProcessingConfiguration', ], 'S3BackupMode' => [ 'shape' => 'S3BackupMode', ], 'S3BackupConfiguration' => [ 'shape' => 'S3DestinationConfiguration', ], 'DataFormatConversionConfiguration' => [ 'shape' => 'DataFormatConversionConfiguration', ], ], ], 'ExtendedS3DestinationDescription' => [ 'type' => 'structure', 'required' => [ 'RoleARN', 'BucketARN', 'BufferingHints', 'CompressionFormat', 'EncryptionConfiguration', ], 'members' => [ 'RoleARN' => [ 'shape' => 'RoleARN', ], 'BucketARN' => [ 'shape' => 'BucketARN', ], 'Prefix' => [ 'shape' => 'Prefix', ], 'ErrorOutputPrefix' => [ 'shape' => 'ErrorOutputPrefix', ], 'BufferingHints' => [ 'shape' => 'BufferingHints', ], 'CompressionFormat' => [ 'shape' => 'CompressionFormat', ], 'EncryptionConfiguration' => [ 'shape' => 'EncryptionConfiguration', ], 'CloudWatchLoggingOptions' => [ 'shape' => 'CloudWatchLoggingOptions', ], 'ProcessingConfiguration' => [ 'shape' => 'ProcessingConfiguration', ], 'S3BackupMode' => [ 'shape' => 'S3BackupMode', ], 'S3BackupDescription' => [ 'shape' => 'S3DestinationDescription', ], 'DataFormatConversionConfiguration' => [ 'shape' => 'DataFormatConversionConfiguration', ], ], ], 'ExtendedS3DestinationUpdate' => [ 'type' => 'structure', 'members' => [ 'RoleARN' => [ 'shape' => 'RoleARN', ], 'BucketARN' => [ 'shape' => 'BucketARN', ], 'Prefix' => [ 'shape' => 'Prefix', ], 'ErrorOutputPrefix' => [ 'shape' => 'ErrorOutputPrefix', ], 'BufferingHints' => [ 'shape' => 'BufferingHints', ], 'CompressionFormat' => [ 'shape' => 'CompressionFormat', ], 'EncryptionConfiguration' => [ 'shape' => 'EncryptionConfiguration', ], 'CloudWatchLoggingOptions' => [ 'shape' => 'CloudWatchLoggingOptions', ], 'ProcessingConfiguration' => [ 'shape' => 'ProcessingConfiguration', ], 'S3BackupMode' => [ 'shape' => 'S3BackupMode', ], 'S3BackupUpdate' => [ 'shape' => 'S3DestinationUpdate', ], 'DataFormatConversionConfiguration' => [ 'shape' => 'DataFormatConversionConfiguration', ], ], ], 'HECAcknowledgmentTimeoutInSeconds' => [ 'type' => 'integer', 'max' => 600, 'min' => 180, ], 'HECEndpoint' => [ 'type' => 'string', ], 'HECEndpointType' => [ 'type' => 'string', 'enum' => [ 'Raw', 'Event', ], ], 'HECToken' => [ 'type' => 'string', ], 'HiveJsonSerDe' => [ 'type' => 'structure', 'members' => [ 'TimestampFormats' => [ 'shape' => 'ListOfNonEmptyStrings', ], ], ], 'InputFormatConfiguration' => [ 'type' => 'structure', 'members' => [ 'Deserializer' => [ 'shape' => 'Deserializer', ], ], ], 'IntervalInSeconds' => [ 'type' => 'integer', 'max' => 900, 'min' => 60, ], 'InvalidArgumentException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'KMSEncryptionConfig' => [ 'type' => 'structure', 'required' => [ 'AWSKMSKeyARN', ], 'members' => [ 'AWSKMSKeyARN' => [ 'shape' => 'AWSKMSKeyARN', ], ], ], 'KinesisStreamARN' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => 'arn:.*', ], 'KinesisStreamSourceConfiguration' => [ 'type' => 'structure', 'required' => [ 'KinesisStreamARN', 'RoleARN', ], 'members' => [ 'KinesisStreamARN' => [ 'shape' => 'KinesisStreamARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'KinesisStreamSourceDescription' => [ 'type' => 'structure', 'members' => [ 'KinesisStreamARN' => [ 'shape' => 'KinesisStreamARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], 'DeliveryStartTimestamp' => [ 'shape' => 'DeliveryStartTimestamp', ], ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ListDeliveryStreamsInput' => [ 'type' => 'structure', 'members' => [ 'Limit' => [ 'shape' => 'ListDeliveryStreamsInputLimit', ], 'DeliveryStreamType' => [ 'shape' => 'DeliveryStreamType', ], 'ExclusiveStartDeliveryStreamName' => [ 'shape' => 'DeliveryStreamName', ], ], ], 'ListDeliveryStreamsInputLimit' => [ 'type' => 'integer', 'max' => 10000, 'min' => 1, ], 'ListDeliveryStreamsOutput' => [ 'type' => 'structure', 'required' => [ 'DeliveryStreamNames', 'HasMoreDeliveryStreams', ], 'members' => [ 'DeliveryStreamNames' => [ 'shape' => 'DeliveryStreamNameList', ], 'HasMoreDeliveryStreams' => [ 'shape' => 'BooleanObject', ], ], ], 'ListOfNonEmptyStrings' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonEmptyString', ], ], 'ListOfNonEmptyStringsWithoutWhitespace' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonEmptyStringWithoutWhitespace', ], ], 'ListTagsForDeliveryStreamInput' => [ 'type' => 'structure', 'required' => [ 'DeliveryStreamName', ], 'members' => [ 'DeliveryStreamName' => [ 'shape' => 'DeliveryStreamName', ], 'ExclusiveStartTagKey' => [ 'shape' => 'TagKey', ], 'Limit' => [ 'shape' => 'ListTagsForDeliveryStreamInputLimit', ], ], ], 'ListTagsForDeliveryStreamInputLimit' => [ 'type' => 'integer', 'max' => 50, 'min' => 1, ], 'ListTagsForDeliveryStreamOutput' => [ 'type' => 'structure', 'required' => [ 'Tags', 'HasMoreTags', ], 'members' => [ 'Tags' => [ 'shape' => 'ListTagsForDeliveryStreamOutputTagList', ], 'HasMoreTags' => [ 'shape' => 'BooleanObject', ], ], ], 'ListTagsForDeliveryStreamOutputTagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 50, 'min' => 0, ], 'LogGroupName' => [ 'type' => 'string', ], 'LogStreamName' => [ 'type' => 'string', ], 'NoEncryptionConfig' => [ 'type' => 'string', 'enum' => [ 'NoEncryption', ], ], 'NonEmptyString' => [ 'type' => 'string', 'pattern' => '^(?!\\s*$).+', ], 'NonEmptyStringWithoutWhitespace' => [ 'type' => 'string', 'pattern' => '^\\S+$', ], 'NonNegativeIntegerObject' => [ 'type' => 'integer', 'min' => 0, ], 'OpenXJsonSerDe' => [ 'type' => 'structure', 'members' => [ 'ConvertDotsInJsonKeysToUnderscores' => [ 'shape' => 'BooleanObject', ], 'CaseInsensitive' => [ 'shape' => 'BooleanObject', ], 'ColumnToJsonKeyMappings' => [ 'shape' => 'ColumnToJsonKeyMappings', ], ], ], 'OrcCompression' => [ 'type' => 'string', 'enum' => [ 'NONE', 'ZLIB', 'SNAPPY', ], ], 'OrcFormatVersion' => [ 'type' => 'string', 'enum' => [ 'V0_11', 'V0_12', ], ], 'OrcRowIndexStride' => [ 'type' => 'integer', 'min' => 1000, ], 'OrcSerDe' => [ 'type' => 'structure', 'members' => [ 'StripeSizeBytes' => [ 'shape' => 'OrcStripeSizeBytes', ], 'BlockSizeBytes' => [ 'shape' => 'BlockSizeBytes', ], 'RowIndexStride' => [ 'shape' => 'OrcRowIndexStride', ], 'EnablePadding' => [ 'shape' => 'BooleanObject', ], 'PaddingTolerance' => [ 'shape' => 'Proportion', ], 'Compression' => [ 'shape' => 'OrcCompression', ], 'BloomFilterColumns' => [ 'shape' => 'ListOfNonEmptyStringsWithoutWhitespace', ], 'BloomFilterFalsePositiveProbability' => [ 'shape' => 'Proportion', ], 'DictionaryKeyThreshold' => [ 'shape' => 'Proportion', ], 'FormatVersion' => [ 'shape' => 'OrcFormatVersion', ], ], ], 'OrcStripeSizeBytes' => [ 'type' => 'integer', 'min' => 8388608, ], 'OutputFormatConfiguration' => [ 'type' => 'structure', 'members' => [ 'Serializer' => [ 'shape' => 'Serializer', ], ], ], 'ParquetCompression' => [ 'type' => 'string', 'enum' => [ 'UNCOMPRESSED', 'GZIP', 'SNAPPY', ], ], 'ParquetPageSizeBytes' => [ 'type' => 'integer', 'min' => 65536, ], 'ParquetSerDe' => [ 'type' => 'structure', 'members' => [ 'BlockSizeBytes' => [ 'shape' => 'BlockSizeBytes', ], 'PageSizeBytes' => [ 'shape' => 'ParquetPageSizeBytes', ], 'Compression' => [ 'shape' => 'ParquetCompression', ], 'EnableDictionaryCompression' => [ 'shape' => 'BooleanObject', ], 'MaxPaddingBytes' => [ 'shape' => 'NonNegativeIntegerObject', ], 'WriterVersion' => [ 'shape' => 'ParquetWriterVersion', ], ], ], 'ParquetWriterVersion' => [ 'type' => 'string', 'enum' => [ 'V1', 'V2', ], ], 'Password' => [ 'type' => 'string', 'min' => 6, 'sensitive' => true, ], 'Prefix' => [ 'type' => 'string', ], 'ProcessingConfiguration' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'BooleanObject', ], 'Processors' => [ 'shape' => 'ProcessorList', ], ], ], 'Processor' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'ProcessorType', ], 'Parameters' => [ 'shape' => 'ProcessorParameterList', ], ], ], 'ProcessorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Processor', ], ], 'ProcessorParameter' => [ 'type' => 'structure', 'required' => [ 'ParameterName', 'ParameterValue', ], 'members' => [ 'ParameterName' => [ 'shape' => 'ProcessorParameterName', ], 'ParameterValue' => [ 'shape' => 'ProcessorParameterValue', ], ], ], 'ProcessorParameterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProcessorParameter', ], ], 'ProcessorParameterName' => [ 'type' => 'string', 'enum' => [ 'LambdaArn', 'NumberOfRetries', 'RoleArn', 'BufferSizeInMBs', 'BufferIntervalInSeconds', ], ], 'ProcessorParameterValue' => [ 'type' => 'string', 'max' => 512, 'min' => 1, ], 'ProcessorType' => [ 'type' => 'string', 'enum' => [ 'Lambda', ], ], 'Proportion' => [ 'type' => 'double', 'max' => 1, 'min' => 0, ], 'PutRecordBatchInput' => [ 'type' => 'structure', 'required' => [ 'DeliveryStreamName', 'Records', ], 'members' => [ 'DeliveryStreamName' => [ 'shape' => 'DeliveryStreamName', ], 'Records' => [ 'shape' => 'PutRecordBatchRequestEntryList', ], ], ], 'PutRecordBatchOutput' => [ 'type' => 'structure', 'required' => [ 'FailedPutCount', 'RequestResponses', ], 'members' => [ 'FailedPutCount' => [ 'shape' => 'NonNegativeIntegerObject', ], 'Encrypted' => [ 'shape' => 'BooleanObject', ], 'RequestResponses' => [ 'shape' => 'PutRecordBatchResponseEntryList', ], ], ], 'PutRecordBatchRequestEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Record', ], 'max' => 500, 'min' => 1, ], 'PutRecordBatchResponseEntry' => [ 'type' => 'structure', 'members' => [ 'RecordId' => [ 'shape' => 'PutResponseRecordId', ], 'ErrorCode' => [ 'shape' => 'ErrorCode', ], 'ErrorMessage' => [ 'shape' => 'ErrorMessage', ], ], ], 'PutRecordBatchResponseEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PutRecordBatchResponseEntry', ], 'max' => 500, 'min' => 1, ], 'PutRecordInput' => [ 'type' => 'structure', 'required' => [ 'DeliveryStreamName', 'Record', ], 'members' => [ 'DeliveryStreamName' => [ 'shape' => 'DeliveryStreamName', ], 'Record' => [ 'shape' => 'Record', ], ], ], 'PutRecordOutput' => [ 'type' => 'structure', 'required' => [ 'RecordId', ], 'members' => [ 'RecordId' => [ 'shape' => 'PutResponseRecordId', ], 'Encrypted' => [ 'shape' => 'BooleanObject', ], ], ], 'PutResponseRecordId' => [ 'type' => 'string', 'min' => 1, ], 'Record' => [ 'type' => 'structure', 'required' => [ 'Data', ], 'members' => [ 'Data' => [ 'shape' => 'Data', ], ], ], 'RedshiftDestinationConfiguration' => [ 'type' => 'structure', 'required' => [ 'RoleARN', 'ClusterJDBCURL', 'CopyCommand', 'Username', 'Password', 'S3Configuration', ], 'members' => [ 'RoleARN' => [ 'shape' => 'RoleARN', ], 'ClusterJDBCURL' => [ 'shape' => 'ClusterJDBCURL', ], 'CopyCommand' => [ 'shape' => 'CopyCommand', ], 'Username' => [ 'shape' => 'Username', ], 'Password' => [ 'shape' => 'Password', ], 'RetryOptions' => [ 'shape' => 'RedshiftRetryOptions', ], 'S3Configuration' => [ 'shape' => 'S3DestinationConfiguration', ], 'ProcessingConfiguration' => [ 'shape' => 'ProcessingConfiguration', ], 'S3BackupMode' => [ 'shape' => 'RedshiftS3BackupMode', ], 'S3BackupConfiguration' => [ 'shape' => 'S3DestinationConfiguration', ], 'CloudWatchLoggingOptions' => [ 'shape' => 'CloudWatchLoggingOptions', ], ], ], 'RedshiftDestinationDescription' => [ 'type' => 'structure', 'required' => [ 'RoleARN', 'ClusterJDBCURL', 'CopyCommand', 'Username', 'S3DestinationDescription', ], 'members' => [ 'RoleARN' => [ 'shape' => 'RoleARN', ], 'ClusterJDBCURL' => [ 'shape' => 'ClusterJDBCURL', ], 'CopyCommand' => [ 'shape' => 'CopyCommand', ], 'Username' => [ 'shape' => 'Username', ], 'RetryOptions' => [ 'shape' => 'RedshiftRetryOptions', ], 'S3DestinationDescription' => [ 'shape' => 'S3DestinationDescription', ], 'ProcessingConfiguration' => [ 'shape' => 'ProcessingConfiguration', ], 'S3BackupMode' => [ 'shape' => 'RedshiftS3BackupMode', ], 'S3BackupDescription' => [ 'shape' => 'S3DestinationDescription', ], 'CloudWatchLoggingOptions' => [ 'shape' => 'CloudWatchLoggingOptions', ], ], ], 'RedshiftDestinationUpdate' => [ 'type' => 'structure', 'members' => [ 'RoleARN' => [ 'shape' => 'RoleARN', ], 'ClusterJDBCURL' => [ 'shape' => 'ClusterJDBCURL', ], 'CopyCommand' => [ 'shape' => 'CopyCommand', ], 'Username' => [ 'shape' => 'Username', ], 'Password' => [ 'shape' => 'Password', ], 'RetryOptions' => [ 'shape' => 'RedshiftRetryOptions', ], 'S3Update' => [ 'shape' => 'S3DestinationUpdate', ], 'ProcessingConfiguration' => [ 'shape' => 'ProcessingConfiguration', ], 'S3BackupMode' => [ 'shape' => 'RedshiftS3BackupMode', ], 'S3BackupUpdate' => [ 'shape' => 'S3DestinationUpdate', ], 'CloudWatchLoggingOptions' => [ 'shape' => 'CloudWatchLoggingOptions', ], ], ], 'RedshiftRetryDurationInSeconds' => [ 'type' => 'integer', 'max' => 7200, 'min' => 0, ], 'RedshiftRetryOptions' => [ 'type' => 'structure', 'members' => [ 'DurationInSeconds' => [ 'shape' => 'RedshiftRetryDurationInSeconds', ], ], ], 'RedshiftS3BackupMode' => [ 'type' => 'string', 'enum' => [ 'Disabled', 'Enabled', ], ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'RoleARN' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => 'arn:.*', ], 'S3BackupMode' => [ 'type' => 'string', 'enum' => [ 'Disabled', 'Enabled', ], ], 'S3DestinationConfiguration' => [ 'type' => 'structure', 'required' => [ 'RoleARN', 'BucketARN', ], 'members' => [ 'RoleARN' => [ 'shape' => 'RoleARN', ], 'BucketARN' => [ 'shape' => 'BucketARN', ], 'Prefix' => [ 'shape' => 'Prefix', ], 'ErrorOutputPrefix' => [ 'shape' => 'ErrorOutputPrefix', ], 'BufferingHints' => [ 'shape' => 'BufferingHints', ], 'CompressionFormat' => [ 'shape' => 'CompressionFormat', ], 'EncryptionConfiguration' => [ 'shape' => 'EncryptionConfiguration', ], 'CloudWatchLoggingOptions' => [ 'shape' => 'CloudWatchLoggingOptions', ], ], ], 'S3DestinationDescription' => [ 'type' => 'structure', 'required' => [ 'RoleARN', 'BucketARN', 'BufferingHints', 'CompressionFormat', 'EncryptionConfiguration', ], 'members' => [ 'RoleARN' => [ 'shape' => 'RoleARN', ], 'BucketARN' => [ 'shape' => 'BucketARN', ], 'Prefix' => [ 'shape' => 'Prefix', ], 'ErrorOutputPrefix' => [ 'shape' => 'ErrorOutputPrefix', ], 'BufferingHints' => [ 'shape' => 'BufferingHints', ], 'CompressionFormat' => [ 'shape' => 'CompressionFormat', ], 'EncryptionConfiguration' => [ 'shape' => 'EncryptionConfiguration', ], 'CloudWatchLoggingOptions' => [ 'shape' => 'CloudWatchLoggingOptions', ], ], ], 'S3DestinationUpdate' => [ 'type' => 'structure', 'members' => [ 'RoleARN' => [ 'shape' => 'RoleARN', ], 'BucketARN' => [ 'shape' => 'BucketARN', ], 'Prefix' => [ 'shape' => 'Prefix', ], 'ErrorOutputPrefix' => [ 'shape' => 'ErrorOutputPrefix', ], 'BufferingHints' => [ 'shape' => 'BufferingHints', ], 'CompressionFormat' => [ 'shape' => 'CompressionFormat', ], 'EncryptionConfiguration' => [ 'shape' => 'EncryptionConfiguration', ], 'CloudWatchLoggingOptions' => [ 'shape' => 'CloudWatchLoggingOptions', ], ], ], 'SchemaConfiguration' => [ 'type' => 'structure', 'members' => [ 'RoleARN' => [ 'shape' => 'NonEmptyStringWithoutWhitespace', ], 'CatalogId' => [ 'shape' => 'NonEmptyStringWithoutWhitespace', ], 'DatabaseName' => [ 'shape' => 'NonEmptyStringWithoutWhitespace', ], 'TableName' => [ 'shape' => 'NonEmptyStringWithoutWhitespace', ], 'Region' => [ 'shape' => 'NonEmptyStringWithoutWhitespace', ], 'VersionId' => [ 'shape' => 'NonEmptyStringWithoutWhitespace', ], ], ], 'Serializer' => [ 'type' => 'structure', 'members' => [ 'ParquetSerDe' => [ 'shape' => 'ParquetSerDe', ], 'OrcSerDe' => [ 'shape' => 'OrcSerDe', ], ], ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, 'fault' => true, ], 'SizeInMBs' => [ 'type' => 'integer', 'max' => 128, 'min' => 1, ], 'SourceDescription' => [ 'type' => 'structure', 'members' => [ 'KinesisStreamSourceDescription' => [ 'shape' => 'KinesisStreamSourceDescription', ], ], ], 'SplunkDestinationConfiguration' => [ 'type' => 'structure', 'required' => [ 'HECEndpoint', 'HECEndpointType', 'HECToken', 'S3Configuration', ], 'members' => [ 'HECEndpoint' => [ 'shape' => 'HECEndpoint', ], 'HECEndpointType' => [ 'shape' => 'HECEndpointType', ], 'HECToken' => [ 'shape' => 'HECToken', ], 'HECAcknowledgmentTimeoutInSeconds' => [ 'shape' => 'HECAcknowledgmentTimeoutInSeconds', ], 'RetryOptions' => [ 'shape' => 'SplunkRetryOptions', ], 'S3BackupMode' => [ 'shape' => 'SplunkS3BackupMode', ], 'S3Configuration' => [ 'shape' => 'S3DestinationConfiguration', ], 'ProcessingConfiguration' => [ 'shape' => 'ProcessingConfiguration', ], 'CloudWatchLoggingOptions' => [ 'shape' => 'CloudWatchLoggingOptions', ], ], ], 'SplunkDestinationDescription' => [ 'type' => 'structure', 'members' => [ 'HECEndpoint' => [ 'shape' => 'HECEndpoint', ], 'HECEndpointType' => [ 'shape' => 'HECEndpointType', ], 'HECToken' => [ 'shape' => 'HECToken', ], 'HECAcknowledgmentTimeoutInSeconds' => [ 'shape' => 'HECAcknowledgmentTimeoutInSeconds', ], 'RetryOptions' => [ 'shape' => 'SplunkRetryOptions', ], 'S3BackupMode' => [ 'shape' => 'SplunkS3BackupMode', ], 'S3DestinationDescription' => [ 'shape' => 'S3DestinationDescription', ], 'ProcessingConfiguration' => [ 'shape' => 'ProcessingConfiguration', ], 'CloudWatchLoggingOptions' => [ 'shape' => 'CloudWatchLoggingOptions', ], ], ], 'SplunkDestinationUpdate' => [ 'type' => 'structure', 'members' => [ 'HECEndpoint' => [ 'shape' => 'HECEndpoint', ], 'HECEndpointType' => [ 'shape' => 'HECEndpointType', ], 'HECToken' => [ 'shape' => 'HECToken', ], 'HECAcknowledgmentTimeoutInSeconds' => [ 'shape' => 'HECAcknowledgmentTimeoutInSeconds', ], 'RetryOptions' => [ 'shape' => 'SplunkRetryOptions', ], 'S3BackupMode' => [ 'shape' => 'SplunkS3BackupMode', ], 'S3Update' => [ 'shape' => 'S3DestinationUpdate', ], 'ProcessingConfiguration' => [ 'shape' => 'ProcessingConfiguration', ], 'CloudWatchLoggingOptions' => [ 'shape' => 'CloudWatchLoggingOptions', ], ], ], 'SplunkRetryDurationInSeconds' => [ 'type' => 'integer', 'max' => 7200, 'min' => 0, ], 'SplunkRetryOptions' => [ 'type' => 'structure', 'members' => [ 'DurationInSeconds' => [ 'shape' => 'SplunkRetryDurationInSeconds', ], ], ], 'SplunkS3BackupMode' => [ 'type' => 'string', 'enum' => [ 'FailedEventsOnly', 'AllEvents', ], ], 'StartDeliveryStreamEncryptionInput' => [ 'type' => 'structure', 'required' => [ 'DeliveryStreamName', ], 'members' => [ 'DeliveryStreamName' => [ 'shape' => 'DeliveryStreamName', ], ], ], 'StartDeliveryStreamEncryptionOutput' => [ 'type' => 'structure', 'members' => [], ], 'StopDeliveryStreamEncryptionInput' => [ 'type' => 'structure', 'required' => [ 'DeliveryStreamName', ], 'members' => [ 'DeliveryStreamName' => [ 'shape' => 'DeliveryStreamName', ], ], ], 'StopDeliveryStreamEncryptionOutput' => [ 'type' => 'structure', 'members' => [], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagDeliveryStreamInput' => [ 'type' => 'structure', 'required' => [ 'DeliveryStreamName', 'Tags', ], 'members' => [ 'DeliveryStreamName' => [ 'shape' => 'DeliveryStreamName', ], 'Tags' => [ 'shape' => 'TagDeliveryStreamInputTagList', ], ], ], 'TagDeliveryStreamInputTagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 50, 'min' => 1, ], 'TagDeliveryStreamOutput' => [ 'type' => 'structure', 'members' => [], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 50, 'min' => 1, ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'UntagDeliveryStreamInput' => [ 'type' => 'structure', 'required' => [ 'DeliveryStreamName', 'TagKeys', ], 'members' => [ 'DeliveryStreamName' => [ 'shape' => 'DeliveryStreamName', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagDeliveryStreamOutput' => [ 'type' => 'structure', 'members' => [], ], 'UpdateDestinationInput' => [ 'type' => 'structure', 'required' => [ 'DeliveryStreamName', 'CurrentDeliveryStreamVersionId', 'DestinationId', ], 'members' => [ 'DeliveryStreamName' => [ 'shape' => 'DeliveryStreamName', ], 'CurrentDeliveryStreamVersionId' => [ 'shape' => 'DeliveryStreamVersionId', ], 'DestinationId' => [ 'shape' => 'DestinationId', ], 'S3DestinationUpdate' => [ 'shape' => 'S3DestinationUpdate', 'deprecated' => true, ], 'ExtendedS3DestinationUpdate' => [ 'shape' => 'ExtendedS3DestinationUpdate', ], 'RedshiftDestinationUpdate' => [ 'shape' => 'RedshiftDestinationUpdate', ], 'ElasticsearchDestinationUpdate' => [ 'shape' => 'ElasticsearchDestinationUpdate', ], 'SplunkDestinationUpdate' => [ 'shape' => 'SplunkDestinationUpdate', ], ], ], 'UpdateDestinationOutput' => [ 'type' => 'structure', 'members' => [], ], 'Username' => [ 'type' => 'string', 'min' => 1, 'sensitive' => true, ], ],]; diff --git a/lib/aws/Aws/data/firehose/2015-08-04/paginators-1.json.php b/lib/aws/Aws/data/firehose/2015-08-04/paginators-1.json.php new file mode 100644 index 0000000..a36f0e8 --- /dev/null +++ b/lib/aws/Aws/data/firehose/2015-08-04/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/firehose/2015-08-04/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/firehose/2015-08-04/smoke.json.php b/lib/aws/Aws/data/firehose/2015-08-04/smoke.json.php new file mode 100644 index 0000000..9b20ce0 --- /dev/null +++ b/lib/aws/Aws/data/firehose/2015-08-04/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/firehose/2015-08-04/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListDeliveryStreams', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeDeliveryStream', 'input' => [ 'DeliveryStreamName' => 'bogus-stream-name', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/fms/2018-01-01/api-2.json.php b/lib/aws/Aws/data/fms/2018-01-01/api-2.json.php new file mode 100644 index 0000000..515dbb3 --- /dev/null +++ b/lib/aws/Aws/data/fms/2018-01-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/fms/2018-01-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-01-01', 'endpointPrefix' => 'fms', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'FMS', 'serviceFullName' => 'Firewall Management Service', 'serviceId' => 'FMS', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWSFMS_20180101', 'uid' => 'fms-2018-01-01', ], 'operations' => [ 'AssociateAdminAccount' => [ 'name' => 'AssociateAdminAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateAdminAccountRequest', ], 'errors' => [ [ 'shape' => 'InvalidOperationException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'DeleteNotificationChannel' => [ 'name' => 'DeleteNotificationChannel', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNotificationChannelRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidOperationException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'DeletePolicy' => [ 'name' => 'DeletePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePolicyRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidOperationException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'DisassociateAdminAccount' => [ 'name' => 'DisassociateAdminAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateAdminAccountRequest', ], 'errors' => [ [ 'shape' => 'InvalidOperationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'GetAdminAccount' => [ 'name' => 'GetAdminAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAdminAccountRequest', ], 'output' => [ 'shape' => 'GetAdminAccountResponse', ], 'errors' => [ [ 'shape' => 'InvalidOperationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'GetComplianceDetail' => [ 'name' => 'GetComplianceDetail', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetComplianceDetailRequest', ], 'output' => [ 'shape' => 'GetComplianceDetailResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'GetNotificationChannel' => [ 'name' => 'GetNotificationChannel', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetNotificationChannelRequest', ], 'output' => [ 'shape' => 'GetNotificationChannelResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidOperationException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'GetPolicy' => [ 'name' => 'GetPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPolicyRequest', ], 'output' => [ 'shape' => 'GetPolicyResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidOperationException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidTypeException', ], ], ], 'GetProtectionStatus' => [ 'name' => 'GetProtectionStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetProtectionStatusRequest', ], 'output' => [ 'shape' => 'GetProtectionStatusResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'ListComplianceStatus' => [ 'name' => 'ListComplianceStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListComplianceStatusRequest', ], 'output' => [ 'shape' => 'ListComplianceStatusResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'ListMemberAccounts' => [ 'name' => 'ListMemberAccounts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListMemberAccountsRequest', ], 'output' => [ 'shape' => 'ListMemberAccountsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'ListPolicies' => [ 'name' => 'ListPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListPoliciesRequest', ], 'output' => [ 'shape' => 'ListPoliciesResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidOperationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'PutNotificationChannel' => [ 'name' => 'PutNotificationChannel', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutNotificationChannelRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidOperationException', ], [ 'shape' => 'InternalErrorException', ], ], ], 'PutPolicy' => [ 'name' => 'PutPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutPolicyRequest', ], 'output' => [ 'shape' => 'PutPolicyResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidOperationException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidTypeException', ], ], ], ], 'shapes' => [ 'AWSAccountId' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '^[0-9]+$', ], 'AccountRoleStatus' => [ 'type' => 'string', 'enum' => [ 'READY', 'CREATING', 'PENDING_DELETION', 'DELETING', 'DELETED', ], ], 'AssociateAdminAccountRequest' => [ 'type' => 'structure', 'required' => [ 'AdminAccount', ], 'members' => [ 'AdminAccount' => [ 'shape' => 'AWSAccountId', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'ComplianceViolator' => [ 'type' => 'structure', 'members' => [ 'ResourceId' => [ 'shape' => 'ResourceId', ], 'ViolationReason' => [ 'shape' => 'ViolationReason', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], ], ], 'ComplianceViolators' => [ 'type' => 'list', 'member' => [ 'shape' => 'ComplianceViolator', ], ], 'CustomerPolicyScopeId' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'CustomerPolicyScopeIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CustomerPolicyScopeId', ], ], 'CustomerPolicyScopeIdType' => [ 'type' => 'string', 'enum' => [ 'ACCOUNT', ], ], 'CustomerPolicyScopeMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'CustomerPolicyScopeIdType', ], 'value' => [ 'shape' => 'CustomerPolicyScopeIdList', ], ], 'DeleteNotificationChannelRequest' => [ 'type' => 'structure', 'members' => [], ], 'DeletePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'PolicyId', ], 'members' => [ 'PolicyId' => [ 'shape' => 'PolicyId', ], 'DeleteAllPolicyResources' => [ 'shape' => 'Boolean', ], ], ], 'DependentServiceName' => [ 'type' => 'string', 'enum' => [ 'AWSCONFIG', 'AWSWAF', 'AWSSHIELD_ADVANCED', ], ], 'DetailedInfo' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'DisassociateAdminAccountRequest' => [ 'type' => 'structure', 'members' => [], ], 'ErrorMessage' => [ 'type' => 'string', ], 'EvaluationResult' => [ 'type' => 'structure', 'members' => [ 'ComplianceStatus' => [ 'shape' => 'PolicyComplianceStatusType', ], 'ViolatorCount' => [ 'shape' => 'ResourceCount', ], 'EvaluationLimitExceeded' => [ 'shape' => 'Boolean', ], ], ], 'EvaluationResults' => [ 'type' => 'list', 'member' => [ 'shape' => 'EvaluationResult', ], ], 'GetAdminAccountRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetAdminAccountResponse' => [ 'type' => 'structure', 'members' => [ 'AdminAccount' => [ 'shape' => 'AWSAccountId', ], 'RoleStatus' => [ 'shape' => 'AccountRoleStatus', ], ], ], 'GetComplianceDetailRequest' => [ 'type' => 'structure', 'required' => [ 'PolicyId', 'MemberAccount', ], 'members' => [ 'PolicyId' => [ 'shape' => 'PolicyId', ], 'MemberAccount' => [ 'shape' => 'AWSAccountId', ], ], ], 'GetComplianceDetailResponse' => [ 'type' => 'structure', 'members' => [ 'PolicyComplianceDetail' => [ 'shape' => 'PolicyComplianceDetail', ], ], ], 'GetNotificationChannelRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetNotificationChannelResponse' => [ 'type' => 'structure', 'members' => [ 'SnsTopicArn' => [ 'shape' => 'ResourceArn', ], 'SnsRoleName' => [ 'shape' => 'ResourceArn', ], ], ], 'GetPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'PolicyId', ], 'members' => [ 'PolicyId' => [ 'shape' => 'PolicyId', ], ], ], 'GetPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'Policy' => [ 'shape' => 'Policy', ], 'PolicyArn' => [ 'shape' => 'ResourceArn', ], ], ], 'GetProtectionStatusRequest' => [ 'type' => 'structure', 'required' => [ 'PolicyId', ], 'members' => [ 'PolicyId' => [ 'shape' => 'PolicyId', ], 'MemberAccountId' => [ 'shape' => 'AWSAccountId', ], 'StartTime' => [ 'shape' => 'TimeStamp', ], 'EndTime' => [ 'shape' => 'TimeStamp', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'PaginationMaxResults', ], ], ], 'GetProtectionStatusResponse' => [ 'type' => 'structure', 'members' => [ 'AdminAccountId' => [ 'shape' => 'AWSAccountId', ], 'ServiceType' => [ 'shape' => 'SecurityServiceType', ], 'Data' => [ 'shape' => 'ProtectionData', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'InternalErrorException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidInputException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidOperationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidTypeException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'IssueInfoMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'DependentServiceName', ], 'value' => [ 'shape' => 'DetailedInfo', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ListComplianceStatusRequest' => [ 'type' => 'structure', 'required' => [ 'PolicyId', ], 'members' => [ 'PolicyId' => [ 'shape' => 'PolicyId', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'PaginationMaxResults', ], ], ], 'ListComplianceStatusResponse' => [ 'type' => 'structure', 'members' => [ 'PolicyComplianceStatusList' => [ 'shape' => 'PolicyComplianceStatusList', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListMemberAccountsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'PaginationMaxResults', ], ], ], 'ListMemberAccountsResponse' => [ 'type' => 'structure', 'members' => [ 'MemberAccounts' => [ 'shape' => 'MemberAccounts', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListPoliciesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'PaginationMaxResults', ], ], ], 'ListPoliciesResponse' => [ 'type' => 'structure', 'members' => [ 'PolicyList' => [ 'shape' => 'PolicySummaryList', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ManagedServiceData' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'MemberAccounts' => [ 'type' => 'list', 'member' => [ 'shape' => 'AWSAccountId', ], ], 'PaginationMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'PaginationToken' => [ 'type' => 'string', 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'Policy' => [ 'type' => 'structure', 'required' => [ 'PolicyName', 'SecurityServicePolicyData', 'ResourceType', 'ExcludeResourceTags', 'RemediationEnabled', ], 'members' => [ 'PolicyId' => [ 'shape' => 'PolicyId', ], 'PolicyName' => [ 'shape' => 'ResourceName', ], 'PolicyUpdateToken' => [ 'shape' => 'PolicyUpdateToken', ], 'SecurityServicePolicyData' => [ 'shape' => 'SecurityServicePolicyData', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], 'ResourceTypeList' => [ 'shape' => 'ResourceTypeList', ], 'ResourceTags' => [ 'shape' => 'ResourceTags', ], 'ExcludeResourceTags' => [ 'shape' => 'Boolean', ], 'RemediationEnabled' => [ 'shape' => 'Boolean', ], 'IncludeMap' => [ 'shape' => 'CustomerPolicyScopeMap', ], 'ExcludeMap' => [ 'shape' => 'CustomerPolicyScopeMap', ], ], ], 'PolicyComplianceDetail' => [ 'type' => 'structure', 'members' => [ 'PolicyOwner' => [ 'shape' => 'AWSAccountId', ], 'PolicyId' => [ 'shape' => 'PolicyId', ], 'MemberAccount' => [ 'shape' => 'AWSAccountId', ], 'Violators' => [ 'shape' => 'ComplianceViolators', ], 'EvaluationLimitExceeded' => [ 'shape' => 'Boolean', ], 'ExpiredAt' => [ 'shape' => 'TimeStamp', ], 'IssueInfoMap' => [ 'shape' => 'IssueInfoMap', ], ], ], 'PolicyComplianceStatus' => [ 'type' => 'structure', 'members' => [ 'PolicyOwner' => [ 'shape' => 'AWSAccountId', ], 'PolicyId' => [ 'shape' => 'PolicyId', ], 'PolicyName' => [ 'shape' => 'ResourceName', ], 'MemberAccount' => [ 'shape' => 'AWSAccountId', ], 'EvaluationResults' => [ 'shape' => 'EvaluationResults', ], 'LastUpdated' => [ 'shape' => 'TimeStamp', ], 'IssueInfoMap' => [ 'shape' => 'IssueInfoMap', ], ], ], 'PolicyComplianceStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyComplianceStatus', ], ], 'PolicyComplianceStatusType' => [ 'type' => 'string', 'enum' => [ 'COMPLIANT', 'NON_COMPLIANT', ], ], 'PolicyId' => [ 'type' => 'string', 'max' => 36, 'min' => 36, 'pattern' => '^[a-z0-9A-Z-]{36}$', ], 'PolicySummary' => [ 'type' => 'structure', 'members' => [ 'PolicyArn' => [ 'shape' => 'ResourceArn', ], 'PolicyId' => [ 'shape' => 'PolicyId', ], 'PolicyName' => [ 'shape' => 'ResourceName', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], 'SecurityServiceType' => [ 'shape' => 'SecurityServiceType', ], 'RemediationEnabled' => [ 'shape' => 'Boolean', ], ], ], 'PolicySummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicySummary', ], ], 'PolicyUpdateToken' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'ProtectionData' => [ 'type' => 'string', ], 'PutNotificationChannelRequest' => [ 'type' => 'structure', 'required' => [ 'SnsTopicArn', 'SnsRoleName', ], 'members' => [ 'SnsTopicArn' => [ 'shape' => 'ResourceArn', ], 'SnsRoleName' => [ 'shape' => 'ResourceArn', ], ], ], 'PutPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'Policy', ], 'members' => [ 'Policy' => [ 'shape' => 'Policy', ], ], ], 'PutPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'Policy' => [ 'shape' => 'Policy', ], 'PolicyArn' => [ 'shape' => 'ResourceArn', ], ], ], 'ResourceArn' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'ResourceCount' => [ 'type' => 'long', 'min' => 0, ], 'ResourceId' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'ResourceName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ResourceTag' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'ResourceTags' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceTag', ], 'max' => 8, 'min' => 0, ], 'ResourceType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'ResourceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceType', ], ], 'SecurityServicePolicyData' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'SecurityServiceType', ], 'ManagedServiceData' => [ 'shape' => 'ManagedServiceData', ], ], ], 'SecurityServiceType' => [ 'type' => 'string', 'enum' => [ 'WAF', 'SHIELD_ADVANCED', ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TimeStamp' => [ 'type' => 'timestamp', ], 'ViolationReason' => [ 'type' => 'string', 'enum' => [ 'WEB_ACL_MISSING_RULE_GROUP', 'RESOURCE_MISSING_WEB_ACL', 'RESOURCE_INCORRECT_WEB_ACL', 'RESOURCE_MISSING_SHIELD_PROTECTION', ], ], ],]; diff --git a/lib/aws/Aws/data/fms/2018-01-01/paginators-1.json.php b/lib/aws/Aws/data/fms/2018-01-01/paginators-1.json.php new file mode 100644 index 0000000..4e38c3b --- /dev/null +++ b/lib/aws/Aws/data/fms/2018-01-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/fms/2018-01-01/paginators-1.json +return [ 'pagination' => [ 'ListComplianceStatus' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'PolicyComplianceStatusList', ], 'ListMemberAccounts' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'MemberAccounts', ], 'ListPolicies' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'PolicyList', ], ],]; diff --git a/lib/aws/Aws/data/fsx/2018-03-01/api-2.json.php b/lib/aws/Aws/data/fsx/2018-03-01/api-2.json.php new file mode 100644 index 0000000..ad8bb12 --- /dev/null +++ b/lib/aws/Aws/data/fsx/2018-03-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/fsx/2018-03-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-03-01', 'endpointPrefix' => 'fsx', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Amazon FSx', 'serviceId' => 'FSx', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWSSimbaAPIService_v20180301', 'uid' => 'fsx-2018-03-01', ], 'operations' => [ 'CreateBackup' => [ 'name' => 'CreateBackup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateBackupRequest', ], 'output' => [ 'shape' => 'CreateBackupResponse', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'FileSystemNotFound', ], [ 'shape' => 'BackupInProgress', ], [ 'shape' => 'IncompatibleParameterError', ], [ 'shape' => 'ServiceLimitExceeded', ], [ 'shape' => 'InternalServerError', ], ], 'idempotent' => true, ], 'CreateFileSystem' => [ 'name' => 'CreateFileSystem', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateFileSystemRequest', ], 'output' => [ 'shape' => 'CreateFileSystemResponse', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'ActiveDirectoryError', ], [ 'shape' => 'IncompatibleParameterError', ], [ 'shape' => 'InvalidImportPath', ], [ 'shape' => 'InvalidExportPath', ], [ 'shape' => 'InvalidNetworkSettings', ], [ 'shape' => 'ServiceLimitExceeded', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'MissingFileSystemConfiguration', ], ], ], 'CreateFileSystemFromBackup' => [ 'name' => 'CreateFileSystemFromBackup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateFileSystemFromBackupRequest', ], 'output' => [ 'shape' => 'CreateFileSystemFromBackupResponse', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'ActiveDirectoryError', ], [ 'shape' => 'IncompatibleParameterError', ], [ 'shape' => 'InvalidNetworkSettings', ], [ 'shape' => 'ServiceLimitExceeded', ], [ 'shape' => 'BackupNotFound', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'MissingFileSystemConfiguration', ], ], ], 'DeleteBackup' => [ 'name' => 'DeleteBackup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteBackupRequest', ], 'output' => [ 'shape' => 'DeleteBackupResponse', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'BackupInProgress', ], [ 'shape' => 'BackupNotFound', ], [ 'shape' => 'BackupRestoring', ], [ 'shape' => 'IncompatibleParameterError', ], [ 'shape' => 'InternalServerError', ], ], 'idempotent' => true, ], 'DeleteFileSystem' => [ 'name' => 'DeleteFileSystem', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteFileSystemRequest', ], 'output' => [ 'shape' => 'DeleteFileSystemResponse', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'IncompatibleParameterError', ], [ 'shape' => 'FileSystemNotFound', ], [ 'shape' => 'ServiceLimitExceeded', ], [ 'shape' => 'InternalServerError', ], ], 'idempotent' => true, ], 'DescribeBackups' => [ 'name' => 'DescribeBackups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeBackupsRequest', ], 'output' => [ 'shape' => 'DescribeBackupsResponse', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'FileSystemNotFound', ], [ 'shape' => 'BackupNotFound', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeFileSystems' => [ 'name' => 'DescribeFileSystems', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFileSystemsRequest', ], 'output' => [ 'shape' => 'DescribeFileSystemsResponse', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'FileSystemNotFound', ], [ 'shape' => 'InternalServerError', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ResourceNotFound', ], [ 'shape' => 'NotServiceResourceError', ], [ 'shape' => 'ResourceDoesNotSupportTagging', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ResourceNotFound', ], [ 'shape' => 'NotServiceResourceError', ], [ 'shape' => 'ResourceDoesNotSupportTagging', ], ], 'idempotent' => true, ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ResourceNotFound', ], [ 'shape' => 'NotServiceResourceError', ], [ 'shape' => 'ResourceDoesNotSupportTagging', ], ], 'idempotent' => true, ], 'UpdateFileSystem' => [ 'name' => 'UpdateFileSystem', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateFileSystemRequest', ], 'output' => [ 'shape' => 'UpdateFileSystemResponse', ], 'errors' => [ [ 'shape' => 'BadRequest', ], [ 'shape' => 'IncompatibleParameterError', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'FileSystemNotFound', ], [ 'shape' => 'MissingFileSystemConfiguration', ], ], ], ], 'shapes' => [ 'AWSAccountId' => [ 'type' => 'string', 'max' => 12, 'min' => 12, 'pattern' => '^\\d{12}$', ], 'ActiveDirectoryError' => [ 'type' => 'structure', 'required' => [ 'ActiveDirectoryId', ], 'members' => [ 'ActiveDirectoryId' => [ 'shape' => 'DirectoryId', ], 'Type' => [ 'shape' => 'ActiveDirectoryErrorType', ], 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ActiveDirectoryErrorType' => [ 'type' => 'string', 'enum' => [ 'DOMAIN_NOT_FOUND', 'INCOMPATIBLE_DOMAIN_MODE', 'WRONG_VPC', 'INVALID_DOMAIN_STAGE', ], ], 'ArchivePath' => [ 'type' => 'string', 'max' => 900, 'min' => 3, ], 'AutomaticBackupRetentionDays' => [ 'type' => 'integer', 'max' => 35, 'min' => 0, ], 'Backup' => [ 'type' => 'structure', 'required' => [ 'BackupId', 'Lifecycle', 'Type', 'CreationTime', 'FileSystem', ], 'members' => [ 'BackupId' => [ 'shape' => 'BackupId', ], 'Lifecycle' => [ 'shape' => 'BackupLifecycle', ], 'FailureDetails' => [ 'shape' => 'BackupFailureDetails', ], 'Type' => [ 'shape' => 'BackupType', ], 'ProgressPercent' => [ 'shape' => 'ProgressPercent', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'Tags' => [ 'shape' => 'Tags', ], 'FileSystem' => [ 'shape' => 'FileSystem', ], ], ], 'BackupFailureDetails' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], ], 'BackupId' => [ 'type' => 'string', 'max' => 128, 'min' => 12, 'pattern' => '^(backup-[0-9a-f]{8,})$', ], 'BackupIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'BackupId', ], 'max' => 50, ], 'BackupInProgress' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'BackupLifecycle' => [ 'type' => 'string', 'enum' => [ 'AVAILABLE', 'CREATING', 'DELETED', 'FAILED', ], ], 'BackupNotFound' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'BackupRestoring' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], 'FileSystemId' => [ 'shape' => 'FileSystemId', ], ], 'exception' => true, ], 'BackupType' => [ 'type' => 'string', 'enum' => [ 'AUTOMATIC', 'USER_INITIATED', ], ], 'Backups' => [ 'type' => 'list', 'member' => [ 'shape' => 'Backup', ], 'max' => 50, ], 'BadRequest' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ClientRequestToken' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[A-za-z0-9_/.-]{0,255}$', ], 'CreateBackupRequest' => [ 'type' => 'structure', 'required' => [ 'FileSystemId', ], 'members' => [ 'FileSystemId' => [ 'shape' => 'FileSystemId', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'CreateBackupResponse' => [ 'type' => 'structure', 'members' => [ 'Backup' => [ 'shape' => 'Backup', ], ], ], 'CreateFileSystemFromBackupRequest' => [ 'type' => 'structure', 'required' => [ 'BackupId', 'SubnetIds', ], 'members' => [ 'BackupId' => [ 'shape' => 'BackupId', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'SubnetIds' => [ 'shape' => 'SubnetIds', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIds', ], 'Tags' => [ 'shape' => 'Tags', ], 'WindowsConfiguration' => [ 'shape' => 'CreateFileSystemWindowsConfiguration', ], ], ], 'CreateFileSystemFromBackupResponse' => [ 'type' => 'structure', 'members' => [ 'FileSystem' => [ 'shape' => 'FileSystem', ], ], ], 'CreateFileSystemLustreConfiguration' => [ 'type' => 'structure', 'members' => [ 'WeeklyMaintenanceStartTime' => [ 'shape' => 'WeeklyTime', ], 'ImportPath' => [ 'shape' => 'ArchivePath', ], 'ExportPath' => [ 'shape' => 'ArchivePath', ], 'ImportedFileChunkSize' => [ 'shape' => 'Megabytes', ], ], ], 'CreateFileSystemRequest' => [ 'type' => 'structure', 'required' => [ 'FileSystemType', 'StorageCapacity', 'SubnetIds', ], 'members' => [ 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'FileSystemType' => [ 'shape' => 'FileSystemType', ], 'StorageCapacity' => [ 'shape' => 'StorageCapacity', ], 'SubnetIds' => [ 'shape' => 'SubnetIds', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIds', ], 'Tags' => [ 'shape' => 'Tags', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'WindowsConfiguration' => [ 'shape' => 'CreateFileSystemWindowsConfiguration', ], 'LustreConfiguration' => [ 'shape' => 'CreateFileSystemLustreConfiguration', ], ], ], 'CreateFileSystemResponse' => [ 'type' => 'structure', 'members' => [ 'FileSystem' => [ 'shape' => 'FileSystem', ], ], ], 'CreateFileSystemWindowsConfiguration' => [ 'type' => 'structure', 'required' => [ 'ThroughputCapacity', ], 'members' => [ 'ActiveDirectoryId' => [ 'shape' => 'DirectoryId', ], 'ThroughputCapacity' => [ 'shape' => 'MegabytesPerSecond', ], 'WeeklyMaintenanceStartTime' => [ 'shape' => 'WeeklyTime', ], 'DailyAutomaticBackupStartTime' => [ 'shape' => 'DailyTime', ], 'AutomaticBackupRetentionDays' => [ 'shape' => 'AutomaticBackupRetentionDays', ], 'CopyTagsToBackups' => [ 'shape' => 'Flag', ], ], ], 'CreationTime' => [ 'type' => 'timestamp', ], 'DNSName' => [ 'type' => 'string', 'max' => 275, 'min' => 16, 'pattern' => '^(fsi?-[0-9a-f]{8,}\\..{4,253})$', ], 'DailyTime' => [ 'type' => 'string', 'max' => 5, 'min' => 5, 'pattern' => '^([01]\\d|2[0-3]):?([0-5]\\d)$', ], 'DataRepositoryConfiguration' => [ 'type' => 'structure', 'members' => [ 'ImportPath' => [ 'shape' => 'ArchivePath', ], 'ExportPath' => [ 'shape' => 'ArchivePath', ], 'ImportedFileChunkSize' => [ 'shape' => 'Megabytes', ], ], ], 'DeleteBackupRequest' => [ 'type' => 'structure', 'required' => [ 'BackupId', ], 'members' => [ 'BackupId' => [ 'shape' => 'BackupId', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'DeleteBackupResponse' => [ 'type' => 'structure', 'members' => [ 'BackupId' => [ 'shape' => 'BackupId', ], 'Lifecycle' => [ 'shape' => 'BackupLifecycle', ], ], ], 'DeleteFileSystemRequest' => [ 'type' => 'structure', 'required' => [ 'FileSystemId', ], 'members' => [ 'FileSystemId' => [ 'shape' => 'FileSystemId', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'WindowsConfiguration' => [ 'shape' => 'DeleteFileSystemWindowsConfiguration', ], ], ], 'DeleteFileSystemResponse' => [ 'type' => 'structure', 'members' => [ 'FileSystemId' => [ 'shape' => 'FileSystemId', ], 'Lifecycle' => [ 'shape' => 'FileSystemLifecycle', ], 'WindowsResponse' => [ 'shape' => 'DeleteFileSystemWindowsResponse', ], ], ], 'DeleteFileSystemWindowsConfiguration' => [ 'type' => 'structure', 'members' => [ 'SkipFinalBackup' => [ 'shape' => 'Flag', ], 'FinalBackupTags' => [ 'shape' => 'Tags', ], ], ], 'DeleteFileSystemWindowsResponse' => [ 'type' => 'structure', 'members' => [ 'FinalBackupId' => [ 'shape' => 'BackupId', ], 'FinalBackupTags' => [ 'shape' => 'Tags', ], ], ], 'DescribeBackupsRequest' => [ 'type' => 'structure', 'members' => [ 'BackupIds' => [ 'shape' => 'BackupIds', ], 'Filters' => [ 'shape' => 'Filters', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeBackupsResponse' => [ 'type' => 'structure', 'members' => [ 'Backups' => [ 'shape' => 'Backups', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeFileSystemsRequest' => [ 'type' => 'structure', 'members' => [ 'FileSystemIds' => [ 'shape' => 'FileSystemIds', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeFileSystemsResponse' => [ 'type' => 'structure', 'members' => [ 'FileSystems' => [ 'shape' => 'FileSystems', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DirectoryId' => [ 'type' => 'string', 'max' => 12, 'min' => 12, 'pattern' => '^d-[0-9a-f]{10}$', ], 'ErrorMessage' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'FileSystem' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'AWSAccountId', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], 'FileSystemId' => [ 'shape' => 'FileSystemId', ], 'FileSystemType' => [ 'shape' => 'FileSystemType', ], 'Lifecycle' => [ 'shape' => 'FileSystemLifecycle', ], 'FailureDetails' => [ 'shape' => 'FileSystemFailureDetails', ], 'StorageCapacity' => [ 'shape' => 'StorageCapacity', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'SubnetIds' => [ 'shape' => 'SubnetIds', ], 'NetworkInterfaceIds' => [ 'shape' => 'NetworkInterfaceIds', ], 'DNSName' => [ 'shape' => 'DNSName', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'Tags' => [ 'shape' => 'Tags', ], 'WindowsConfiguration' => [ 'shape' => 'WindowsFileSystemConfiguration', ], 'LustreConfiguration' => [ 'shape' => 'LustreFileSystemConfiguration', ], ], ], 'FileSystemFailureDetails' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], ], 'FileSystemId' => [ 'type' => 'string', 'max' => 21, 'min' => 11, 'pattern' => '^(fs-[0-9a-f]{8,})$', ], 'FileSystemIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'FileSystemId', ], 'max' => 50, ], 'FileSystemLifecycle' => [ 'type' => 'string', 'enum' => [ 'AVAILABLE', 'CREATING', 'FAILED', 'DELETING', ], ], 'FileSystemMaintenanceOperation' => [ 'type' => 'string', 'enum' => [ 'PATCHING', 'BACKING_UP', ], ], 'FileSystemMaintenanceOperations' => [ 'type' => 'list', 'member' => [ 'shape' => 'FileSystemMaintenanceOperation', ], 'max' => 20, ], 'FileSystemNotFound' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'FileSystemType' => [ 'type' => 'string', 'enum' => [ 'WINDOWS', 'LUSTRE', ], ], 'FileSystems' => [ 'type' => 'list', 'member' => [ 'shape' => 'FileSystem', ], 'max' => 50, ], 'Filter' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'FilterName', ], 'Values' => [ 'shape' => 'FilterValues', ], ], ], 'FilterName' => [ 'type' => 'string', 'enum' => [ 'file-system-id', 'backup-type', ], ], 'FilterValue' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[0-9a-zA-Z\\*\\.\\\\/\\?\\-\\_]*$', ], 'FilterValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'FilterValue', ], 'max' => 20, ], 'Filters' => [ 'type' => 'list', 'member' => [ 'shape' => 'Filter', ], 'max' => 10, ], 'Flag' => [ 'type' => 'boolean', ], 'IncompatibleParameterError' => [ 'type' => 'structure', 'required' => [ 'Parameter', ], 'members' => [ 'Parameter' => [ 'shape' => 'Parameter', ], 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InternalServerError' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, 'fault' => true, ], 'InvalidExportPath' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidImportPath' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidNetworkSettings' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], 'InvalidSubnetId' => [ 'shape' => 'SubnetId', ], 'InvalidSecurityGroupId' => [ 'shape' => 'SecurityGroupId', ], ], 'exception' => true, ], 'KmsKeyId' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89aAbB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}|arn:aws[a-z-]{0,7}:kms:[a-z]{2}-[a-z-]{4,}-\\d+:\\d{12}:(key|alias)\\/([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89aAbB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}|[a-zA-Z0-9:\\/_-]+)|alias\\/[a-zA-Z0-9:\\/_-]+$', ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'Tags', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'LustreFileSystemConfiguration' => [ 'type' => 'structure', 'members' => [ 'WeeklyMaintenanceStartTime' => [ 'shape' => 'WeeklyTime', ], 'DataRepositoryConfiguration' => [ 'shape' => 'DataRepositoryConfiguration', ], ], ], 'MaxResults' => [ 'type' => 'integer', 'min' => 1, ], 'Megabytes' => [ 'type' => 'integer', 'max' => 512000, 'min' => 1, ], 'MegabytesPerSecond' => [ 'type' => 'integer', 'max' => 2048, 'min' => 8, ], 'MissingFileSystemConfiguration' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'NetworkInterfaceId' => [ 'type' => 'string', 'max' => 21, 'min' => 12, 'pattern' => '^(eni-[0-9a-f]{8,})$', ], 'NetworkInterfaceIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterfaceId', ], 'max' => 50, ], 'NextToken' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$', ], 'NotServiceResourceError' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'Parameter' => [ 'type' => 'string', 'min' => 1, ], 'ProgressPercent' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'ResourceARN' => [ 'type' => 'string', 'max' => 512, 'min' => 8, 'pattern' => '^arn:aws[a-z-]{0,7}:[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}$', ], 'ResourceDoesNotSupportTagging' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ResourceNotFound' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'SecurityGroupId' => [ 'type' => 'string', 'max' => 20, 'min' => 11, 'pattern' => '^(sg-[0-9a-f]{8,})$', ], 'SecurityGroupIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', ], 'max' => 50, ], 'ServiceLimit' => [ 'type' => 'string', 'enum' => [ 'FILE_SYSTEM_COUNT', 'TOTAL_THROUGHPUT_CAPACITY', 'TOTAL_STORAGE', 'TOTAL_USER_INITIATED_BACKUPS', ], ], 'ServiceLimitExceeded' => [ 'type' => 'structure', 'required' => [ 'Limit', ], 'members' => [ 'Limit' => [ 'shape' => 'ServiceLimit', ], 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'StorageCapacity' => [ 'type' => 'integer', 'min' => 1, ], 'SubnetId' => [ 'type' => 'string', 'max' => 24, 'min' => 15, 'pattern' => '^(subnet-[0-9a-f]{8,})$', ], 'SubnetIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', ], 'max' => 50, ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeys' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 50, 'min' => 1, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', 'Tags', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'Tags' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 50, 'min' => 1, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', 'TagKeys', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'TagKeys' => [ 'shape' => 'TagKeys', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateFileSystemLustreConfiguration' => [ 'type' => 'structure', 'members' => [ 'WeeklyMaintenanceStartTime' => [ 'shape' => 'WeeklyTime', ], ], ], 'UpdateFileSystemRequest' => [ 'type' => 'structure', 'required' => [ 'FileSystemId', ], 'members' => [ 'FileSystemId' => [ 'shape' => 'FileSystemId', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'WindowsConfiguration' => [ 'shape' => 'UpdateFileSystemWindowsConfiguration', ], 'LustreConfiguration' => [ 'shape' => 'UpdateFileSystemLustreConfiguration', ], ], ], 'UpdateFileSystemResponse' => [ 'type' => 'structure', 'members' => [ 'FileSystem' => [ 'shape' => 'FileSystem', ], ], ], 'UpdateFileSystemWindowsConfiguration' => [ 'type' => 'structure', 'members' => [ 'WeeklyMaintenanceStartTime' => [ 'shape' => 'WeeklyTime', ], 'DailyAutomaticBackupStartTime' => [ 'shape' => 'DailyTime', ], 'AutomaticBackupRetentionDays' => [ 'shape' => 'AutomaticBackupRetentionDays', ], ], ], 'VpcId' => [ 'type' => 'string', 'max' => 21, 'min' => 12, 'pattern' => '^(vpc-[0-9a-f]{8,})$', ], 'WeeklyTime' => [ 'type' => 'string', 'max' => 7, 'min' => 7, 'pattern' => '^[1-7]:([01]\\d|2[0-3]):?([0-5]\\d)$', ], 'WindowsFileSystemConfiguration' => [ 'type' => 'structure', 'members' => [ 'ActiveDirectoryId' => [ 'shape' => 'DirectoryId', ], 'ThroughputCapacity' => [ 'shape' => 'MegabytesPerSecond', ], 'MaintenanceOperationsInProgress' => [ 'shape' => 'FileSystemMaintenanceOperations', ], 'WeeklyMaintenanceStartTime' => [ 'shape' => 'WeeklyTime', ], 'DailyAutomaticBackupStartTime' => [ 'shape' => 'DailyTime', ], 'AutomaticBackupRetentionDays' => [ 'shape' => 'AutomaticBackupRetentionDays', ], 'CopyTagsToBackups' => [ 'shape' => 'Flag', ], ], ], ],]; diff --git a/lib/aws/Aws/data/fsx/2018-03-01/paginators-1.json.php b/lib/aws/Aws/data/fsx/2018-03-01/paginators-1.json.php new file mode 100644 index 0000000..18da217 --- /dev/null +++ b/lib/aws/Aws/data/fsx/2018-03-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/fsx/2018-03-01/paginators-1.json +return [ 'pagination' => [ 'DescribeBackups' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'DescribeFileSystems' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/gamelift/2015-10-01/api-2.json.php b/lib/aws/Aws/data/gamelift/2015-10-01/api-2.json.php new file mode 100644 index 0000000..6114a06 --- /dev/null +++ b/lib/aws/Aws/data/gamelift/2015-10-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/gamelift/2015-10-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-10-01', 'endpointPrefix' => 'gamelift', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Amazon GameLift', 'serviceId' => 'GameLift', 'signatureVersion' => 'v4', 'targetPrefix' => 'GameLift', 'uid' => 'gamelift-2015-10-01', ], 'operations' => [ 'AcceptMatch' => [ 'name' => 'AcceptMatch', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptMatchInput', ], 'output' => [ 'shape' => 'AcceptMatchOutput', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'UnsupportedRegionException', ], ], ], 'CreateAlias' => [ 'name' => 'CreateAlias', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAliasInput', ], 'output' => [ 'shape' => 'CreateAliasOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateBuild' => [ 'name' => 'CreateBuild', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateBuildInput', ], 'output' => [ 'shape' => 'CreateBuildOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'CreateFleet' => [ 'name' => 'CreateFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateFleetInput', ], 'output' => [ 'shape' => 'CreateFleetOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], ], ], 'CreateGameSession' => [ 'name' => 'CreateGameSession', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateGameSessionInput', ], 'output' => [ 'shape' => 'CreateGameSessionOutput', ], 'errors' => [ [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidFleetStatusException', ], [ 'shape' => 'TerminalRoutingStrategyException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'FleetCapacityExceededException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'IdempotentParameterMismatchException', ], ], ], 'CreateGameSessionQueue' => [ 'name' => 'CreateGameSessionQueue', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateGameSessionQueueInput', ], 'output' => [ 'shape' => 'CreateGameSessionQueueOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateMatchmakingConfiguration' => [ 'name' => 'CreateMatchmakingConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateMatchmakingConfigurationInput', ], 'output' => [ 'shape' => 'CreateMatchmakingConfigurationOutput', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'UnsupportedRegionException', ], ], ], 'CreateMatchmakingRuleSet' => [ 'name' => 'CreateMatchmakingRuleSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateMatchmakingRuleSetInput', ], 'output' => [ 'shape' => 'CreateMatchmakingRuleSetOutput', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'UnsupportedRegionException', ], ], ], 'CreatePlayerSession' => [ 'name' => 'CreatePlayerSession', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePlayerSessionInput', ], 'output' => [ 'shape' => 'CreatePlayerSessionOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidGameSessionStatusException', ], [ 'shape' => 'GameSessionFullException', ], [ 'shape' => 'TerminalRoutingStrategyException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], ], ], 'CreatePlayerSessions' => [ 'name' => 'CreatePlayerSessions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePlayerSessionsInput', ], 'output' => [ 'shape' => 'CreatePlayerSessionsOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidGameSessionStatusException', ], [ 'shape' => 'GameSessionFullException', ], [ 'shape' => 'TerminalRoutingStrategyException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], ], ], 'CreateVpcPeeringAuthorization' => [ 'name' => 'CreateVpcPeeringAuthorization', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpcPeeringAuthorizationInput', ], 'output' => [ 'shape' => 'CreateVpcPeeringAuthorizationOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'CreateVpcPeeringConnection' => [ 'name' => 'CreateVpcPeeringConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpcPeeringConnectionInput', ], 'output' => [ 'shape' => 'CreateVpcPeeringConnectionOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DeleteAlias' => [ 'name' => 'DeleteAlias', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAliasInput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DeleteBuild' => [ 'name' => 'DeleteBuild', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteBuildInput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DeleteFleet' => [ 'name' => 'DeleteFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteFleetInput', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidFleetStatusException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DeleteGameSessionQueue' => [ 'name' => 'DeleteGameSessionQueue', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteGameSessionQueueInput', ], 'output' => [ 'shape' => 'DeleteGameSessionQueueOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], ], ], 'DeleteMatchmakingConfiguration' => [ 'name' => 'DeleteMatchmakingConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteMatchmakingConfigurationInput', ], 'output' => [ 'shape' => 'DeleteMatchmakingConfigurationOutput', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'UnsupportedRegionException', ], ], ], 'DeleteMatchmakingRuleSet' => [ 'name' => 'DeleteMatchmakingRuleSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteMatchmakingRuleSetInput', ], 'output' => [ 'shape' => 'DeleteMatchmakingRuleSetOutput', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'UnsupportedRegionException', ], [ 'shape' => 'NotFoundException', ], ], ], 'DeleteScalingPolicy' => [ 'name' => 'DeleteScalingPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteScalingPolicyInput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], ], ], 'DeleteVpcPeeringAuthorization' => [ 'name' => 'DeleteVpcPeeringAuthorization', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpcPeeringAuthorizationInput', ], 'output' => [ 'shape' => 'DeleteVpcPeeringAuthorizationOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DeleteVpcPeeringConnection' => [ 'name' => 'DeleteVpcPeeringConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpcPeeringConnectionInput', ], 'output' => [ 'shape' => 'DeleteVpcPeeringConnectionOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DescribeAlias' => [ 'name' => 'DescribeAlias', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAliasInput', ], 'output' => [ 'shape' => 'DescribeAliasOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DescribeBuild' => [ 'name' => 'DescribeBuild', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeBuildInput', ], 'output' => [ 'shape' => 'DescribeBuildOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DescribeEC2InstanceLimits' => [ 'name' => 'DescribeEC2InstanceLimits', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEC2InstanceLimitsInput', ], 'output' => [ 'shape' => 'DescribeEC2InstanceLimitsOutput', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'UnauthorizedException', ], ], ], 'DescribeFleetAttributes' => [ 'name' => 'DescribeFleetAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFleetAttributesInput', ], 'output' => [ 'shape' => 'DescribeFleetAttributesOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], ], ], 'DescribeFleetCapacity' => [ 'name' => 'DescribeFleetCapacity', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFleetCapacityInput', ], 'output' => [ 'shape' => 'DescribeFleetCapacityOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], ], ], 'DescribeFleetEvents' => [ 'name' => 'DescribeFleetEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFleetEventsInput', ], 'output' => [ 'shape' => 'DescribeFleetEventsOutput', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DescribeFleetPortSettings' => [ 'name' => 'DescribeFleetPortSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFleetPortSettingsInput', ], 'output' => [ 'shape' => 'DescribeFleetPortSettingsOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], ], ], 'DescribeFleetUtilization' => [ 'name' => 'DescribeFleetUtilization', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFleetUtilizationInput', ], 'output' => [ 'shape' => 'DescribeFleetUtilizationOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], ], ], 'DescribeGameSessionDetails' => [ 'name' => 'DescribeGameSessionDetails', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeGameSessionDetailsInput', ], 'output' => [ 'shape' => 'DescribeGameSessionDetailsOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TerminalRoutingStrategyException', ], ], ], 'DescribeGameSessionPlacement' => [ 'name' => 'DescribeGameSessionPlacement', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeGameSessionPlacementInput', ], 'output' => [ 'shape' => 'DescribeGameSessionPlacementOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], ], ], 'DescribeGameSessionQueues' => [ 'name' => 'DescribeGameSessionQueues', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeGameSessionQueuesInput', ], 'output' => [ 'shape' => 'DescribeGameSessionQueuesOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], ], ], 'DescribeGameSessions' => [ 'name' => 'DescribeGameSessions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeGameSessionsInput', ], 'output' => [ 'shape' => 'DescribeGameSessionsOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TerminalRoutingStrategyException', ], ], ], 'DescribeInstances' => [ 'name' => 'DescribeInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstancesInput', ], 'output' => [ 'shape' => 'DescribeInstancesOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DescribeMatchmaking' => [ 'name' => 'DescribeMatchmaking', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMatchmakingInput', ], 'output' => [ 'shape' => 'DescribeMatchmakingOutput', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'UnsupportedRegionException', ], ], ], 'DescribeMatchmakingConfigurations' => [ 'name' => 'DescribeMatchmakingConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMatchmakingConfigurationsInput', ], 'output' => [ 'shape' => 'DescribeMatchmakingConfigurationsOutput', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'UnsupportedRegionException', ], ], ], 'DescribeMatchmakingRuleSets' => [ 'name' => 'DescribeMatchmakingRuleSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMatchmakingRuleSetsInput', ], 'output' => [ 'shape' => 'DescribeMatchmakingRuleSetsOutput', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnsupportedRegionException', ], ], ], 'DescribePlayerSessions' => [ 'name' => 'DescribePlayerSessions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePlayerSessionsInput', ], 'output' => [ 'shape' => 'DescribePlayerSessionsOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], ], ], 'DescribeRuntimeConfiguration' => [ 'name' => 'DescribeRuntimeConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRuntimeConfigurationInput', ], 'output' => [ 'shape' => 'DescribeRuntimeConfigurationOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DescribeScalingPolicies' => [ 'name' => 'DescribeScalingPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScalingPoliciesInput', ], 'output' => [ 'shape' => 'DescribeScalingPoliciesOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], ], ], 'DescribeVpcPeeringAuthorizations' => [ 'name' => 'DescribeVpcPeeringAuthorizations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcPeeringAuthorizationsInput', ], 'output' => [ 'shape' => 'DescribeVpcPeeringAuthorizationsOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'DescribeVpcPeeringConnections' => [ 'name' => 'DescribeVpcPeeringConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcPeeringConnectionsInput', ], 'output' => [ 'shape' => 'DescribeVpcPeeringConnectionsOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'GetGameSessionLogUrl' => [ 'name' => 'GetGameSessionLogUrl', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetGameSessionLogUrlInput', ], 'output' => [ 'shape' => 'GetGameSessionLogUrlOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'GetInstanceAccess' => [ 'name' => 'GetInstanceAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstanceAccessInput', ], 'output' => [ 'shape' => 'GetInstanceAccessOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'ListAliases' => [ 'name' => 'ListAliases', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAliasesInput', ], 'output' => [ 'shape' => 'ListAliasesOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'ListBuilds' => [ 'name' => 'ListBuilds', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListBuildsInput', ], 'output' => [ 'shape' => 'ListBuildsOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'ListFleets' => [ 'name' => 'ListFleets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListFleetsInput', ], 'output' => [ 'shape' => 'ListFleetsOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], ], ], 'PutScalingPolicy' => [ 'name' => 'PutScalingPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutScalingPolicyInput', ], 'output' => [ 'shape' => 'PutScalingPolicyOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], ], ], 'RequestUploadCredentials' => [ 'name' => 'RequestUploadCredentials', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RequestUploadCredentialsInput', ], 'output' => [ 'shape' => 'RequestUploadCredentialsOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'ResolveAlias' => [ 'name' => 'ResolveAlias', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResolveAliasInput', ], 'output' => [ 'shape' => 'ResolveAliasOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TerminalRoutingStrategyException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'SearchGameSessions' => [ 'name' => 'SearchGameSessions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchGameSessionsInput', ], 'output' => [ 'shape' => 'SearchGameSessionsOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TerminalRoutingStrategyException', ], ], ], 'StartFleetActions' => [ 'name' => 'StartFleetActions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartFleetActionsInput', ], 'output' => [ 'shape' => 'StartFleetActionsOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], ], ], 'StartGameSessionPlacement' => [ 'name' => 'StartGameSessionPlacement', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartGameSessionPlacementInput', ], 'output' => [ 'shape' => 'StartGameSessionPlacementOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], ], ], 'StartMatchBackfill' => [ 'name' => 'StartMatchBackfill', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartMatchBackfillInput', ], 'output' => [ 'shape' => 'StartMatchBackfillOutput', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'UnsupportedRegionException', ], ], ], 'StartMatchmaking' => [ 'name' => 'StartMatchmaking', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartMatchmakingInput', ], 'output' => [ 'shape' => 'StartMatchmakingOutput', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'UnsupportedRegionException', ], ], ], 'StopFleetActions' => [ 'name' => 'StopFleetActions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopFleetActionsInput', ], 'output' => [ 'shape' => 'StopFleetActionsOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], ], ], 'StopGameSessionPlacement' => [ 'name' => 'StopGameSessionPlacement', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopGameSessionPlacementInput', ], 'output' => [ 'shape' => 'StopGameSessionPlacementOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], ], ], 'StopMatchmaking' => [ 'name' => 'StopMatchmaking', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopMatchmakingInput', ], 'output' => [ 'shape' => 'StopMatchmakingOutput', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'UnsupportedRegionException', ], ], ], 'UpdateAlias' => [ 'name' => 'UpdateAlias', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateAliasInput', ], 'output' => [ 'shape' => 'UpdateAliasOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'UpdateBuild' => [ 'name' => 'UpdateBuild', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateBuildInput', ], 'output' => [ 'shape' => 'UpdateBuildOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'UpdateFleetAttributes' => [ 'name' => 'UpdateFleetAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateFleetAttributesInput', ], 'output' => [ 'shape' => 'UpdateFleetAttributesOutput', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InvalidFleetStatusException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], ], ], 'UpdateFleetCapacity' => [ 'name' => 'UpdateFleetCapacity', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateFleetCapacityInput', ], 'output' => [ 'shape' => 'UpdateFleetCapacityOutput', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidFleetStatusException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], ], ], 'UpdateFleetPortSettings' => [ 'name' => 'UpdateFleetPortSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateFleetPortSettingsInput', ], 'output' => [ 'shape' => 'UpdateFleetPortSettingsOutput', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InvalidFleetStatusException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], ], ], 'UpdateGameSession' => [ 'name' => 'UpdateGameSession', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateGameSessionInput', ], 'output' => [ 'shape' => 'UpdateGameSessionOutput', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InvalidGameSessionStatusException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'UpdateGameSessionQueue' => [ 'name' => 'UpdateGameSessionQueue', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateGameSessionQueueInput', ], 'output' => [ 'shape' => 'UpdateGameSessionQueueOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnauthorizedException', ], ], ], 'UpdateMatchmakingConfiguration' => [ 'name' => 'UpdateMatchmakingConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateMatchmakingConfigurationInput', ], 'output' => [ 'shape' => 'UpdateMatchmakingConfigurationOutput', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'UnsupportedRegionException', ], ], ], 'UpdateRuntimeConfiguration' => [ 'name' => 'UpdateRuntimeConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRuntimeConfigurationInput', ], 'output' => [ 'shape' => 'UpdateRuntimeConfigurationOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidFleetStatusException', ], ], ], 'ValidateMatchmakingRuleSet' => [ 'name' => 'ValidateMatchmakingRuleSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ValidateMatchmakingRuleSetInput', ], 'output' => [ 'shape' => 'ValidateMatchmakingRuleSetOutput', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'UnsupportedRegionException', ], [ 'shape' => 'InvalidRequestException', ], ], ], ], 'shapes' => [ 'AcceptMatchInput' => [ 'type' => 'structure', 'required' => [ 'TicketId', 'PlayerIds', 'AcceptanceType', ], 'members' => [ 'TicketId' => [ 'shape' => 'MatchmakingIdStringModel', ], 'PlayerIds' => [ 'shape' => 'StringList', ], 'AcceptanceType' => [ 'shape' => 'AcceptanceType', ], ], ], 'AcceptMatchOutput' => [ 'type' => 'structure', 'members' => [], ], 'AcceptanceType' => [ 'type' => 'string', 'enum' => [ 'ACCEPT', 'REJECT', ], ], 'Alias' => [ 'type' => 'structure', 'members' => [ 'AliasId' => [ 'shape' => 'AliasId', ], 'Name' => [ 'shape' => 'NonBlankAndLengthConstraintString', ], 'AliasArn' => [ 'shape' => 'ArnStringModel', ], 'Description' => [ 'shape' => 'FreeText', ], 'RoutingStrategy' => [ 'shape' => 'RoutingStrategy', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'LastUpdatedTime' => [ 'shape' => 'Timestamp', ], ], ], 'AliasId' => [ 'type' => 'string', 'pattern' => '^alias-\\S+', ], 'AliasList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Alias', ], ], 'ArnStringModel' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[a-zA-Z0-9:/-]+', ], 'AttributeValue' => [ 'type' => 'structure', 'members' => [ 'S' => [ 'shape' => 'NonZeroAndMaxString', ], 'N' => [ 'shape' => 'DoubleObject', ], 'SL' => [ 'shape' => 'StringList', ], 'SDM' => [ 'shape' => 'StringDoubleMap', ], ], ], 'AwsCredentials' => [ 'type' => 'structure', 'members' => [ 'AccessKeyId' => [ 'shape' => 'NonEmptyString', ], 'SecretAccessKey' => [ 'shape' => 'NonEmptyString', ], 'SessionToken' => [ 'shape' => 'NonEmptyString', ], ], 'sensitive' => true, ], 'BooleanModel' => [ 'type' => 'boolean', ], 'Build' => [ 'type' => 'structure', 'members' => [ 'BuildId' => [ 'shape' => 'BuildId', ], 'Name' => [ 'shape' => 'FreeText', ], 'Version' => [ 'shape' => 'FreeText', ], 'Status' => [ 'shape' => 'BuildStatus', ], 'SizeOnDisk' => [ 'shape' => 'PositiveLong', ], 'OperatingSystem' => [ 'shape' => 'OperatingSystem', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], ], ], 'BuildId' => [ 'type' => 'string', 'pattern' => '^build-\\S+', ], 'BuildList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Build', ], ], 'BuildStatus' => [ 'type' => 'string', 'enum' => [ 'INITIALIZED', 'READY', 'FAILED', ], ], 'ComparisonOperatorType' => [ 'type' => 'string', 'enum' => [ 'GreaterThanOrEqualToThreshold', 'GreaterThanThreshold', 'LessThanThreshold', 'LessThanOrEqualToThreshold', ], ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NonEmptyString', ], ], 'exception' => true, ], 'CreateAliasInput' => [ 'type' => 'structure', 'required' => [ 'Name', 'RoutingStrategy', ], 'members' => [ 'Name' => [ 'shape' => 'NonBlankAndLengthConstraintString', ], 'Description' => [ 'shape' => 'NonZeroAndMaxString', ], 'RoutingStrategy' => [ 'shape' => 'RoutingStrategy', ], ], ], 'CreateAliasOutput' => [ 'type' => 'structure', 'members' => [ 'Alias' => [ 'shape' => 'Alias', ], ], ], 'CreateBuildInput' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'NonZeroAndMaxString', ], 'Version' => [ 'shape' => 'NonZeroAndMaxString', ], 'StorageLocation' => [ 'shape' => 'S3Location', ], 'OperatingSystem' => [ 'shape' => 'OperatingSystem', ], ], ], 'CreateBuildOutput' => [ 'type' => 'structure', 'members' => [ 'Build' => [ 'shape' => 'Build', ], 'UploadCredentials' => [ 'shape' => 'AwsCredentials', ], 'StorageLocation' => [ 'shape' => 'S3Location', ], ], ], 'CreateFleetInput' => [ 'type' => 'structure', 'required' => [ 'Name', 'BuildId', 'EC2InstanceType', ], 'members' => [ 'Name' => [ 'shape' => 'NonZeroAndMaxString', ], 'Description' => [ 'shape' => 'NonZeroAndMaxString', ], 'BuildId' => [ 'shape' => 'BuildId', ], 'ServerLaunchPath' => [ 'shape' => 'NonZeroAndMaxString', ], 'ServerLaunchParameters' => [ 'shape' => 'NonZeroAndMaxString', ], 'LogPaths' => [ 'shape' => 'StringList', ], 'EC2InstanceType' => [ 'shape' => 'EC2InstanceType', ], 'EC2InboundPermissions' => [ 'shape' => 'IpPermissionsList', ], 'NewGameSessionProtectionPolicy' => [ 'shape' => 'ProtectionPolicy', ], 'RuntimeConfiguration' => [ 'shape' => 'RuntimeConfiguration', ], 'ResourceCreationLimitPolicy' => [ 'shape' => 'ResourceCreationLimitPolicy', ], 'MetricGroups' => [ 'shape' => 'MetricGroupList', ], 'PeerVpcAwsAccountId' => [ 'shape' => 'NonZeroAndMaxString', ], 'PeerVpcId' => [ 'shape' => 'NonZeroAndMaxString', ], 'FleetType' => [ 'shape' => 'FleetType', ], 'InstanceRoleArn' => [ 'shape' => 'NonEmptyString', ], ], ], 'CreateFleetOutput' => [ 'type' => 'structure', 'members' => [ 'FleetAttributes' => [ 'shape' => 'FleetAttributes', ], ], ], 'CreateGameSessionInput' => [ 'type' => 'structure', 'required' => [ 'MaximumPlayerSessionCount', ], 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'AliasId' => [ 'shape' => 'AliasId', ], 'MaximumPlayerSessionCount' => [ 'shape' => 'WholeNumber', ], 'Name' => [ 'shape' => 'NonZeroAndMaxString', ], 'GameProperties' => [ 'shape' => 'GamePropertyList', ], 'CreatorId' => [ 'shape' => 'NonZeroAndMaxString', ], 'GameSessionId' => [ 'shape' => 'IdStringModel', ], 'IdempotencyToken' => [ 'shape' => 'IdStringModel', ], 'GameSessionData' => [ 'shape' => 'GameSessionData', ], ], ], 'CreateGameSessionOutput' => [ 'type' => 'structure', 'members' => [ 'GameSession' => [ 'shape' => 'GameSession', ], ], ], 'CreateGameSessionQueueInput' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'GameSessionQueueName', ], 'TimeoutInSeconds' => [ 'shape' => 'WholeNumber', ], 'PlayerLatencyPolicies' => [ 'shape' => 'PlayerLatencyPolicyList', ], 'Destinations' => [ 'shape' => 'GameSessionQueueDestinationList', ], ], ], 'CreateGameSessionQueueOutput' => [ 'type' => 'structure', 'members' => [ 'GameSessionQueue' => [ 'shape' => 'GameSessionQueue', ], ], ], 'CreateMatchmakingConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'Name', 'GameSessionQueueArns', 'RequestTimeoutSeconds', 'AcceptanceRequired', 'RuleSetName', ], 'members' => [ 'Name' => [ 'shape' => 'MatchmakingIdStringModel', ], 'Description' => [ 'shape' => 'NonZeroAndMaxString', ], 'GameSessionQueueArns' => [ 'shape' => 'QueueArnsList', ], 'RequestTimeoutSeconds' => [ 'shape' => 'MatchmakingRequestTimeoutInteger', ], 'AcceptanceTimeoutSeconds' => [ 'shape' => 'MatchmakingAcceptanceTimeoutInteger', ], 'AcceptanceRequired' => [ 'shape' => 'BooleanModel', ], 'RuleSetName' => [ 'shape' => 'MatchmakingIdStringModel', ], 'NotificationTarget' => [ 'shape' => 'SnsArnStringModel', ], 'AdditionalPlayerCount' => [ 'shape' => 'WholeNumber', ], 'CustomEventData' => [ 'shape' => 'CustomEventData', ], 'GameProperties' => [ 'shape' => 'GamePropertyList', ], 'GameSessionData' => [ 'shape' => 'GameSessionData', ], ], ], 'CreateMatchmakingConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'Configuration' => [ 'shape' => 'MatchmakingConfiguration', ], ], ], 'CreateMatchmakingRuleSetInput' => [ 'type' => 'structure', 'required' => [ 'Name', 'RuleSetBody', ], 'members' => [ 'Name' => [ 'shape' => 'MatchmakingIdStringModel', ], 'RuleSetBody' => [ 'shape' => 'RuleSetBody', ], ], ], 'CreateMatchmakingRuleSetOutput' => [ 'type' => 'structure', 'required' => [ 'RuleSet', ], 'members' => [ 'RuleSet' => [ 'shape' => 'MatchmakingRuleSet', ], ], ], 'CreatePlayerSessionInput' => [ 'type' => 'structure', 'required' => [ 'GameSessionId', 'PlayerId', ], 'members' => [ 'GameSessionId' => [ 'shape' => 'ArnStringModel', ], 'PlayerId' => [ 'shape' => 'NonZeroAndMaxString', ], 'PlayerData' => [ 'shape' => 'PlayerData', ], ], ], 'CreatePlayerSessionOutput' => [ 'type' => 'structure', 'members' => [ 'PlayerSession' => [ 'shape' => 'PlayerSession', ], ], ], 'CreatePlayerSessionsInput' => [ 'type' => 'structure', 'required' => [ 'GameSessionId', 'PlayerIds', ], 'members' => [ 'GameSessionId' => [ 'shape' => 'ArnStringModel', ], 'PlayerIds' => [ 'shape' => 'PlayerIdList', ], 'PlayerDataMap' => [ 'shape' => 'PlayerDataMap', ], ], ], 'CreatePlayerSessionsOutput' => [ 'type' => 'structure', 'members' => [ 'PlayerSessions' => [ 'shape' => 'PlayerSessionList', ], ], ], 'CreateVpcPeeringAuthorizationInput' => [ 'type' => 'structure', 'required' => [ 'GameLiftAwsAccountId', 'PeerVpcId', ], 'members' => [ 'GameLiftAwsAccountId' => [ 'shape' => 'NonZeroAndMaxString', ], 'PeerVpcId' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'CreateVpcPeeringAuthorizationOutput' => [ 'type' => 'structure', 'members' => [ 'VpcPeeringAuthorization' => [ 'shape' => 'VpcPeeringAuthorization', ], ], ], 'CreateVpcPeeringConnectionInput' => [ 'type' => 'structure', 'required' => [ 'FleetId', 'PeerVpcAwsAccountId', 'PeerVpcId', ], 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'PeerVpcAwsAccountId' => [ 'shape' => 'NonZeroAndMaxString', ], 'PeerVpcId' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'CreateVpcPeeringConnectionOutput' => [ 'type' => 'structure', 'members' => [], ], 'CustomEventData' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'DeleteAliasInput' => [ 'type' => 'structure', 'required' => [ 'AliasId', ], 'members' => [ 'AliasId' => [ 'shape' => 'AliasId', ], ], ], 'DeleteBuildInput' => [ 'type' => 'structure', 'required' => [ 'BuildId', ], 'members' => [ 'BuildId' => [ 'shape' => 'BuildId', ], ], ], 'DeleteFleetInput' => [ 'type' => 'structure', 'required' => [ 'FleetId', ], 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], ], ], 'DeleteGameSessionQueueInput' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'GameSessionQueueName', ], ], ], 'DeleteGameSessionQueueOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeleteMatchmakingConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'MatchmakingIdStringModel', ], ], ], 'DeleteMatchmakingConfigurationOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeleteMatchmakingRuleSetInput' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'MatchmakingIdStringModel', ], ], ], 'DeleteMatchmakingRuleSetOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeleteScalingPolicyInput' => [ 'type' => 'structure', 'required' => [ 'Name', 'FleetId', ], 'members' => [ 'Name' => [ 'shape' => 'NonZeroAndMaxString', ], 'FleetId' => [ 'shape' => 'FleetId', ], ], ], 'DeleteVpcPeeringAuthorizationInput' => [ 'type' => 'structure', 'required' => [ 'GameLiftAwsAccountId', 'PeerVpcId', ], 'members' => [ 'GameLiftAwsAccountId' => [ 'shape' => 'NonZeroAndMaxString', ], 'PeerVpcId' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DeleteVpcPeeringAuthorizationOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeleteVpcPeeringConnectionInput' => [ 'type' => 'structure', 'required' => [ 'FleetId', 'VpcPeeringConnectionId', ], 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DeleteVpcPeeringConnectionOutput' => [ 'type' => 'structure', 'members' => [], ], 'DescribeAliasInput' => [ 'type' => 'structure', 'required' => [ 'AliasId', ], 'members' => [ 'AliasId' => [ 'shape' => 'AliasId', ], ], ], 'DescribeAliasOutput' => [ 'type' => 'structure', 'members' => [ 'Alias' => [ 'shape' => 'Alias', ], ], ], 'DescribeBuildInput' => [ 'type' => 'structure', 'required' => [ 'BuildId', ], 'members' => [ 'BuildId' => [ 'shape' => 'BuildId', ], ], ], 'DescribeBuildOutput' => [ 'type' => 'structure', 'members' => [ 'Build' => [ 'shape' => 'Build', ], ], ], 'DescribeEC2InstanceLimitsInput' => [ 'type' => 'structure', 'members' => [ 'EC2InstanceType' => [ 'shape' => 'EC2InstanceType', ], ], ], 'DescribeEC2InstanceLimitsOutput' => [ 'type' => 'structure', 'members' => [ 'EC2InstanceLimits' => [ 'shape' => 'EC2InstanceLimitList', ], ], ], 'DescribeFleetAttributesInput' => [ 'type' => 'structure', 'members' => [ 'FleetIds' => [ 'shape' => 'FleetIdList', ], 'Limit' => [ 'shape' => 'PositiveInteger', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeFleetAttributesOutput' => [ 'type' => 'structure', 'members' => [ 'FleetAttributes' => [ 'shape' => 'FleetAttributesList', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeFleetCapacityInput' => [ 'type' => 'structure', 'members' => [ 'FleetIds' => [ 'shape' => 'FleetIdList', ], 'Limit' => [ 'shape' => 'PositiveInteger', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeFleetCapacityOutput' => [ 'type' => 'structure', 'members' => [ 'FleetCapacity' => [ 'shape' => 'FleetCapacityList', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeFleetEventsInput' => [ 'type' => 'structure', 'required' => [ 'FleetId', ], 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'StartTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], 'Limit' => [ 'shape' => 'PositiveInteger', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeFleetEventsOutput' => [ 'type' => 'structure', 'members' => [ 'Events' => [ 'shape' => 'EventList', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeFleetPortSettingsInput' => [ 'type' => 'structure', 'required' => [ 'FleetId', ], 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], ], ], 'DescribeFleetPortSettingsOutput' => [ 'type' => 'structure', 'members' => [ 'InboundPermissions' => [ 'shape' => 'IpPermissionsList', ], ], ], 'DescribeFleetUtilizationInput' => [ 'type' => 'structure', 'members' => [ 'FleetIds' => [ 'shape' => 'FleetIdList', ], 'Limit' => [ 'shape' => 'PositiveInteger', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeFleetUtilizationOutput' => [ 'type' => 'structure', 'members' => [ 'FleetUtilization' => [ 'shape' => 'FleetUtilizationList', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeGameSessionDetailsInput' => [ 'type' => 'structure', 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'GameSessionId' => [ 'shape' => 'ArnStringModel', ], 'AliasId' => [ 'shape' => 'AliasId', ], 'StatusFilter' => [ 'shape' => 'NonZeroAndMaxString', ], 'Limit' => [ 'shape' => 'PositiveInteger', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeGameSessionDetailsOutput' => [ 'type' => 'structure', 'members' => [ 'GameSessionDetails' => [ 'shape' => 'GameSessionDetailList', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeGameSessionPlacementInput' => [ 'type' => 'structure', 'required' => [ 'PlacementId', ], 'members' => [ 'PlacementId' => [ 'shape' => 'IdStringModel', ], ], ], 'DescribeGameSessionPlacementOutput' => [ 'type' => 'structure', 'members' => [ 'GameSessionPlacement' => [ 'shape' => 'GameSessionPlacement', ], ], ], 'DescribeGameSessionQueuesInput' => [ 'type' => 'structure', 'members' => [ 'Names' => [ 'shape' => 'GameSessionQueueNameList', ], 'Limit' => [ 'shape' => 'PositiveInteger', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeGameSessionQueuesOutput' => [ 'type' => 'structure', 'members' => [ 'GameSessionQueues' => [ 'shape' => 'GameSessionQueueList', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeGameSessionsInput' => [ 'type' => 'structure', 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'GameSessionId' => [ 'shape' => 'ArnStringModel', ], 'AliasId' => [ 'shape' => 'AliasId', ], 'StatusFilter' => [ 'shape' => 'NonZeroAndMaxString', ], 'Limit' => [ 'shape' => 'PositiveInteger', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeGameSessionsOutput' => [ 'type' => 'structure', 'members' => [ 'GameSessions' => [ 'shape' => 'GameSessionList', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeInstancesInput' => [ 'type' => 'structure', 'required' => [ 'FleetId', ], 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'Limit' => [ 'shape' => 'PositiveInteger', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeInstancesOutput' => [ 'type' => 'structure', 'members' => [ 'Instances' => [ 'shape' => 'InstanceList', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeMatchmakingConfigurationsInput' => [ 'type' => 'structure', 'members' => [ 'Names' => [ 'shape' => 'MatchmakingIdList', ], 'RuleSetName' => [ 'shape' => 'MatchmakingIdStringModel', ], 'Limit' => [ 'shape' => 'PositiveInteger', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeMatchmakingConfigurationsOutput' => [ 'type' => 'structure', 'members' => [ 'Configurations' => [ 'shape' => 'MatchmakingConfigurationList', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeMatchmakingInput' => [ 'type' => 'structure', 'required' => [ 'TicketIds', ], 'members' => [ 'TicketIds' => [ 'shape' => 'MatchmakingIdList', ], ], ], 'DescribeMatchmakingOutput' => [ 'type' => 'structure', 'members' => [ 'TicketList' => [ 'shape' => 'MatchmakingTicketList', ], ], ], 'DescribeMatchmakingRuleSetsInput' => [ 'type' => 'structure', 'members' => [ 'Names' => [ 'shape' => 'MatchmakingRuleSetNameList', ], 'Limit' => [ 'shape' => 'RuleSetLimit', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeMatchmakingRuleSetsOutput' => [ 'type' => 'structure', 'required' => [ 'RuleSets', ], 'members' => [ 'RuleSets' => [ 'shape' => 'MatchmakingRuleSetList', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribePlayerSessionsInput' => [ 'type' => 'structure', 'members' => [ 'GameSessionId' => [ 'shape' => 'ArnStringModel', ], 'PlayerId' => [ 'shape' => 'NonZeroAndMaxString', ], 'PlayerSessionId' => [ 'shape' => 'PlayerSessionId', ], 'PlayerSessionStatusFilter' => [ 'shape' => 'NonZeroAndMaxString', ], 'Limit' => [ 'shape' => 'PositiveInteger', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribePlayerSessionsOutput' => [ 'type' => 'structure', 'members' => [ 'PlayerSessions' => [ 'shape' => 'PlayerSessionList', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeRuntimeConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'FleetId', ], 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], ], ], 'DescribeRuntimeConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'RuntimeConfiguration' => [ 'shape' => 'RuntimeConfiguration', ], ], ], 'DescribeScalingPoliciesInput' => [ 'type' => 'structure', 'required' => [ 'FleetId', ], 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'StatusFilter' => [ 'shape' => 'ScalingStatusType', ], 'Limit' => [ 'shape' => 'PositiveInteger', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeScalingPoliciesOutput' => [ 'type' => 'structure', 'members' => [ 'ScalingPolicies' => [ 'shape' => 'ScalingPolicyList', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'DescribeVpcPeeringAuthorizationsInput' => [ 'type' => 'structure', 'members' => [], ], 'DescribeVpcPeeringAuthorizationsOutput' => [ 'type' => 'structure', 'members' => [ 'VpcPeeringAuthorizations' => [ 'shape' => 'VpcPeeringAuthorizationList', ], ], ], 'DescribeVpcPeeringConnectionsInput' => [ 'type' => 'structure', 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], ], ], 'DescribeVpcPeeringConnectionsOutput' => [ 'type' => 'structure', 'members' => [ 'VpcPeeringConnections' => [ 'shape' => 'VpcPeeringConnectionList', ], ], ], 'DesiredPlayerSession' => [ 'type' => 'structure', 'members' => [ 'PlayerId' => [ 'shape' => 'NonZeroAndMaxString', ], 'PlayerData' => [ 'shape' => 'PlayerData', ], ], ], 'DesiredPlayerSessionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DesiredPlayerSession', ], ], 'Double' => [ 'type' => 'double', ], 'DoubleObject' => [ 'type' => 'double', ], 'EC2InstanceCounts' => [ 'type' => 'structure', 'members' => [ 'DESIRED' => [ 'shape' => 'WholeNumber', ], 'MINIMUM' => [ 'shape' => 'WholeNumber', ], 'MAXIMUM' => [ 'shape' => 'WholeNumber', ], 'PENDING' => [ 'shape' => 'WholeNumber', ], 'ACTIVE' => [ 'shape' => 'WholeNumber', ], 'IDLE' => [ 'shape' => 'WholeNumber', ], 'TERMINATING' => [ 'shape' => 'WholeNumber', ], ], ], 'EC2InstanceLimit' => [ 'type' => 'structure', 'members' => [ 'EC2InstanceType' => [ 'shape' => 'EC2InstanceType', ], 'CurrentInstances' => [ 'shape' => 'WholeNumber', ], 'InstanceLimit' => [ 'shape' => 'WholeNumber', ], ], ], 'EC2InstanceLimitList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EC2InstanceLimit', ], ], 'EC2InstanceType' => [ 'type' => 'string', 'enum' => [ 't2.micro', 't2.small', 't2.medium', 't2.large', 'c3.large', 'c3.xlarge', 'c3.2xlarge', 'c3.4xlarge', 'c3.8xlarge', 'c4.large', 'c4.xlarge', 'c4.2xlarge', 'c4.4xlarge', 'c4.8xlarge', 'r3.large', 'r3.xlarge', 'r3.2xlarge', 'r3.4xlarge', 'r3.8xlarge', 'r4.large', 'r4.xlarge', 'r4.2xlarge', 'r4.4xlarge', 'r4.8xlarge', 'r4.16xlarge', 'm3.medium', 'm3.large', 'm3.xlarge', 'm3.2xlarge', 'm4.large', 'm4.xlarge', 'm4.2xlarge', 'm4.4xlarge', 'm4.10xlarge', ], ], 'Event' => [ 'type' => 'structure', 'members' => [ 'EventId' => [ 'shape' => 'NonZeroAndMaxString', ], 'ResourceId' => [ 'shape' => 'NonZeroAndMaxString', ], 'EventCode' => [ 'shape' => 'EventCode', ], 'Message' => [ 'shape' => 'NonEmptyString', ], 'EventTime' => [ 'shape' => 'Timestamp', ], 'PreSignedLogUrl' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'EventCode' => [ 'type' => 'string', 'enum' => [ 'GENERIC_EVENT', 'FLEET_CREATED', 'FLEET_DELETED', 'FLEET_SCALING_EVENT', 'FLEET_STATE_DOWNLOADING', 'FLEET_STATE_VALIDATING', 'FLEET_STATE_BUILDING', 'FLEET_STATE_ACTIVATING', 'FLEET_STATE_ACTIVE', 'FLEET_STATE_ERROR', 'FLEET_INITIALIZATION_FAILED', 'FLEET_BINARY_DOWNLOAD_FAILED', 'FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND', 'FLEET_VALIDATION_EXECUTABLE_RUNTIME_FAILURE', 'FLEET_VALIDATION_TIMED_OUT', 'FLEET_ACTIVATION_FAILED', 'FLEET_ACTIVATION_FAILED_NO_INSTANCES', 'FLEET_NEW_GAME_SESSION_PROTECTION_POLICY_UPDATED', 'SERVER_PROCESS_INVALID_PATH', 'SERVER_PROCESS_SDK_INITIALIZATION_TIMEOUT', 'SERVER_PROCESS_PROCESS_READY_TIMEOUT', 'SERVER_PROCESS_CRASHED', 'SERVER_PROCESS_TERMINATED_UNHEALTHY', 'SERVER_PROCESS_FORCE_TERMINATED', 'SERVER_PROCESS_PROCESS_EXIT_TIMEOUT', 'GAME_SESSION_ACTIVATION_TIMEOUT', 'FLEET_CREATION_EXTRACTING_BUILD', 'FLEET_CREATION_RUNNING_INSTALLER', 'FLEET_CREATION_VALIDATING_RUNTIME_CONFIG', 'FLEET_VPC_PEERING_SUCCEEDED', 'FLEET_VPC_PEERING_FAILED', 'FLEET_VPC_PEERING_DELETED', 'INSTANCE_INTERRUPTED', ], ], 'EventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Event', ], ], 'FleetAction' => [ 'type' => 'string', 'enum' => [ 'AUTO_SCALING', ], ], 'FleetActionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetAction', ], 'max' => 1, 'min' => 1, ], 'FleetAttributes' => [ 'type' => 'structure', 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'FleetArn' => [ 'shape' => 'ArnStringModel', ], 'FleetType' => [ 'shape' => 'FleetType', ], 'InstanceType' => [ 'shape' => 'EC2InstanceType', ], 'Description' => [ 'shape' => 'NonZeroAndMaxString', ], 'Name' => [ 'shape' => 'NonZeroAndMaxString', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'TerminationTime' => [ 'shape' => 'Timestamp', ], 'Status' => [ 'shape' => 'FleetStatus', ], 'BuildId' => [ 'shape' => 'BuildId', ], 'ServerLaunchPath' => [ 'shape' => 'NonZeroAndMaxString', ], 'ServerLaunchParameters' => [ 'shape' => 'NonZeroAndMaxString', ], 'LogPaths' => [ 'shape' => 'StringList', ], 'NewGameSessionProtectionPolicy' => [ 'shape' => 'ProtectionPolicy', ], 'OperatingSystem' => [ 'shape' => 'OperatingSystem', ], 'ResourceCreationLimitPolicy' => [ 'shape' => 'ResourceCreationLimitPolicy', ], 'MetricGroups' => [ 'shape' => 'MetricGroupList', ], 'StoppedActions' => [ 'shape' => 'FleetActionList', ], 'InstanceRoleArn' => [ 'shape' => 'NonEmptyString', ], ], ], 'FleetAttributesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetAttributes', ], ], 'FleetCapacity' => [ 'type' => 'structure', 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'InstanceType' => [ 'shape' => 'EC2InstanceType', ], 'InstanceCounts' => [ 'shape' => 'EC2InstanceCounts', ], ], ], 'FleetCapacityExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NonEmptyString', ], ], 'exception' => true, ], 'FleetCapacityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetCapacity', ], ], 'FleetId' => [ 'type' => 'string', 'pattern' => '^fleet-\\S+', ], 'FleetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetId', ], 'min' => 1, ], 'FleetStatus' => [ 'type' => 'string', 'enum' => [ 'NEW', 'DOWNLOADING', 'VALIDATING', 'BUILDING', 'ACTIVATING', 'ACTIVE', 'DELETING', 'ERROR', 'TERMINATED', ], ], 'FleetType' => [ 'type' => 'string', 'enum' => [ 'ON_DEMAND', 'SPOT', ], ], 'FleetUtilization' => [ 'type' => 'structure', 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'ActiveServerProcessCount' => [ 'shape' => 'WholeNumber', ], 'ActiveGameSessionCount' => [ 'shape' => 'WholeNumber', ], 'CurrentPlayerSessionCount' => [ 'shape' => 'WholeNumber', ], 'MaximumPlayerSessionCount' => [ 'shape' => 'WholeNumber', ], ], ], 'FleetUtilizationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetUtilization', ], ], 'Float' => [ 'type' => 'float', ], 'FreeText' => [ 'type' => 'string', ], 'GameProperty' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'GamePropertyKey', ], 'Value' => [ 'shape' => 'GamePropertyValue', ], ], ], 'GamePropertyKey' => [ 'type' => 'string', 'max' => 32, ], 'GamePropertyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GameProperty', ], 'max' => 16, ], 'GamePropertyValue' => [ 'type' => 'string', 'max' => 96, ], 'GameSession' => [ 'type' => 'structure', 'members' => [ 'GameSessionId' => [ 'shape' => 'NonZeroAndMaxString', ], 'Name' => [ 'shape' => 'NonZeroAndMaxString', ], 'FleetId' => [ 'shape' => 'FleetId', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'TerminationTime' => [ 'shape' => 'Timestamp', ], 'CurrentPlayerSessionCount' => [ 'shape' => 'WholeNumber', ], 'MaximumPlayerSessionCount' => [ 'shape' => 'WholeNumber', ], 'Status' => [ 'shape' => 'GameSessionStatus', ], 'StatusReason' => [ 'shape' => 'GameSessionStatusReason', ], 'GameProperties' => [ 'shape' => 'GamePropertyList', ], 'IpAddress' => [ 'shape' => 'IpAddress', ], 'Port' => [ 'shape' => 'PortNumber', ], 'PlayerSessionCreationPolicy' => [ 'shape' => 'PlayerSessionCreationPolicy', ], 'CreatorId' => [ 'shape' => 'NonZeroAndMaxString', ], 'GameSessionData' => [ 'shape' => 'GameSessionData', ], 'MatchmakerData' => [ 'shape' => 'MatchmakerData', ], ], ], 'GameSessionActivationTimeoutSeconds' => [ 'type' => 'integer', 'max' => 600, 'min' => 1, ], 'GameSessionConnectionInfo' => [ 'type' => 'structure', 'members' => [ 'GameSessionArn' => [ 'shape' => 'ArnStringModel', ], 'IpAddress' => [ 'shape' => 'StringModel', ], 'Port' => [ 'shape' => 'PositiveInteger', ], 'MatchedPlayerSessions' => [ 'shape' => 'MatchedPlayerSessionList', ], ], ], 'GameSessionData' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, ], 'GameSessionDetail' => [ 'type' => 'structure', 'members' => [ 'GameSession' => [ 'shape' => 'GameSession', ], 'ProtectionPolicy' => [ 'shape' => 'ProtectionPolicy', ], ], ], 'GameSessionDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GameSessionDetail', ], ], 'GameSessionFullException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NonEmptyString', ], ], 'exception' => true, ], 'GameSessionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GameSession', ], ], 'GameSessionPlacement' => [ 'type' => 'structure', 'members' => [ 'PlacementId' => [ 'shape' => 'IdStringModel', ], 'GameSessionQueueName' => [ 'shape' => 'GameSessionQueueName', ], 'Status' => [ 'shape' => 'GameSessionPlacementState', ], 'GameProperties' => [ 'shape' => 'GamePropertyList', ], 'MaximumPlayerSessionCount' => [ 'shape' => 'WholeNumber', ], 'GameSessionName' => [ 'shape' => 'NonZeroAndMaxString', ], 'GameSessionId' => [ 'shape' => 'NonZeroAndMaxString', ], 'GameSessionArn' => [ 'shape' => 'NonZeroAndMaxString', ], 'GameSessionRegion' => [ 'shape' => 'NonZeroAndMaxString', ], 'PlayerLatencies' => [ 'shape' => 'PlayerLatencyList', ], 'StartTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], 'IpAddress' => [ 'shape' => 'IpAddress', ], 'Port' => [ 'shape' => 'PortNumber', ], 'PlacedPlayerSessions' => [ 'shape' => 'PlacedPlayerSessionList', ], 'GameSessionData' => [ 'shape' => 'GameSessionData', ], 'MatchmakerData' => [ 'shape' => 'MatchmakerData', ], ], ], 'GameSessionPlacementState' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'FULFILLED', 'CANCELLED', 'TIMED_OUT', ], ], 'GameSessionQueue' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'GameSessionQueueName', ], 'GameSessionQueueArn' => [ 'shape' => 'ArnStringModel', ], 'TimeoutInSeconds' => [ 'shape' => 'WholeNumber', ], 'PlayerLatencyPolicies' => [ 'shape' => 'PlayerLatencyPolicyList', ], 'Destinations' => [ 'shape' => 'GameSessionQueueDestinationList', ], ], ], 'GameSessionQueueDestination' => [ 'type' => 'structure', 'members' => [ 'DestinationArn' => [ 'shape' => 'ArnStringModel', ], ], ], 'GameSessionQueueDestinationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GameSessionQueueDestination', ], ], 'GameSessionQueueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GameSessionQueue', ], ], 'GameSessionQueueName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9-]+', ], 'GameSessionQueueNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GameSessionQueueName', ], ], 'GameSessionStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'ACTIVATING', 'TERMINATED', 'TERMINATING', 'ERROR', ], ], 'GameSessionStatusReason' => [ 'type' => 'string', 'enum' => [ 'INTERRUPTED', ], ], 'GetGameSessionLogUrlInput' => [ 'type' => 'structure', 'required' => [ 'GameSessionId', ], 'members' => [ 'GameSessionId' => [ 'shape' => 'ArnStringModel', ], ], ], 'GetGameSessionLogUrlOutput' => [ 'type' => 'structure', 'members' => [ 'PreSignedUrl' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'GetInstanceAccessInput' => [ 'type' => 'structure', 'required' => [ 'FleetId', 'InstanceId', ], 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], ], ], 'GetInstanceAccessOutput' => [ 'type' => 'structure', 'members' => [ 'InstanceAccess' => [ 'shape' => 'InstanceAccess', ], ], ], 'IdStringModel' => [ 'type' => 'string', 'max' => 48, 'min' => 1, 'pattern' => '[a-zA-Z0-9-]+', ], 'IdempotentParameterMismatchException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NonEmptyString', ], ], 'exception' => true, ], 'Instance' => [ 'type' => 'structure', 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'IpAddress' => [ 'shape' => 'IpAddress', ], 'OperatingSystem' => [ 'shape' => 'OperatingSystem', ], 'Type' => [ 'shape' => 'EC2InstanceType', ], 'Status' => [ 'shape' => 'InstanceStatus', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], ], ], 'InstanceAccess' => [ 'type' => 'structure', 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'IpAddress' => [ 'shape' => 'IpAddress', ], 'OperatingSystem' => [ 'shape' => 'OperatingSystem', ], 'Credentials' => [ 'shape' => 'InstanceCredentials', ], ], ], 'InstanceCredentials' => [ 'type' => 'structure', 'members' => [ 'UserName' => [ 'shape' => 'NonEmptyString', ], 'Secret' => [ 'shape' => 'NonEmptyString', ], ], 'sensitive' => true, ], 'InstanceId' => [ 'type' => 'string', 'pattern' => '[a-zA-Z0-9\\.-]+', ], 'InstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Instance', ], ], 'InstanceStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'ACTIVE', 'TERMINATING', ], ], 'Integer' => [ 'type' => 'integer', ], 'InternalServiceException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NonEmptyString', ], ], 'exception' => true, 'fault' => true, ], 'InvalidFleetStatusException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NonEmptyString', ], ], 'exception' => true, ], 'InvalidGameSessionStatusException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NonEmptyString', ], ], 'exception' => true, ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NonEmptyString', ], ], 'exception' => true, ], 'IpAddress' => [ 'type' => 'string', ], 'IpPermission' => [ 'type' => 'structure', 'required' => [ 'FromPort', 'ToPort', 'IpRange', 'Protocol', ], 'members' => [ 'FromPort' => [ 'shape' => 'PortNumber', ], 'ToPort' => [ 'shape' => 'PortNumber', ], 'IpRange' => [ 'shape' => 'NonBlankString', ], 'Protocol' => [ 'shape' => 'IpProtocol', ], ], ], 'IpPermissionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpPermission', ], 'max' => 50, ], 'IpProtocol' => [ 'type' => 'string', 'enum' => [ 'TCP', 'UDP', ], ], 'LatencyMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'NonEmptyString', ], 'value' => [ 'shape' => 'PositiveInteger', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NonEmptyString', ], ], 'exception' => true, ], 'ListAliasesInput' => [ 'type' => 'structure', 'members' => [ 'RoutingStrategyType' => [ 'shape' => 'RoutingStrategyType', ], 'Name' => [ 'shape' => 'NonEmptyString', ], 'Limit' => [ 'shape' => 'PositiveInteger', ], 'NextToken' => [ 'shape' => 'NonEmptyString', ], ], ], 'ListAliasesOutput' => [ 'type' => 'structure', 'members' => [ 'Aliases' => [ 'shape' => 'AliasList', ], 'NextToken' => [ 'shape' => 'NonEmptyString', ], ], ], 'ListBuildsInput' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'BuildStatus', ], 'Limit' => [ 'shape' => 'PositiveInteger', ], 'NextToken' => [ 'shape' => 'NonEmptyString', ], ], ], 'ListBuildsOutput' => [ 'type' => 'structure', 'members' => [ 'Builds' => [ 'shape' => 'BuildList', ], 'NextToken' => [ 'shape' => 'NonEmptyString', ], ], ], 'ListFleetsInput' => [ 'type' => 'structure', 'members' => [ 'BuildId' => [ 'shape' => 'BuildId', ], 'Limit' => [ 'shape' => 'PositiveInteger', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'ListFleetsOutput' => [ 'type' => 'structure', 'members' => [ 'FleetIds' => [ 'shape' => 'FleetIdList', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'MatchedPlayerSession' => [ 'type' => 'structure', 'members' => [ 'PlayerId' => [ 'shape' => 'NonZeroAndMaxString', ], 'PlayerSessionId' => [ 'shape' => 'PlayerSessionId', ], ], ], 'MatchedPlayerSessionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MatchedPlayerSession', ], ], 'MatchmakerData' => [ 'type' => 'string', 'max' => 390000, 'min' => 1, ], 'MatchmakingAcceptanceTimeoutInteger' => [ 'type' => 'integer', 'max' => 600, 'min' => 1, ], 'MatchmakingConfiguration' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'MatchmakingIdStringModel', ], 'Description' => [ 'shape' => 'NonZeroAndMaxString', ], 'GameSessionQueueArns' => [ 'shape' => 'QueueArnsList', ], 'RequestTimeoutSeconds' => [ 'shape' => 'MatchmakingRequestTimeoutInteger', ], 'AcceptanceTimeoutSeconds' => [ 'shape' => 'MatchmakingAcceptanceTimeoutInteger', ], 'AcceptanceRequired' => [ 'shape' => 'BooleanModel', ], 'RuleSetName' => [ 'shape' => 'MatchmakingIdStringModel', ], 'NotificationTarget' => [ 'shape' => 'SnsArnStringModel', ], 'AdditionalPlayerCount' => [ 'shape' => 'WholeNumber', ], 'CustomEventData' => [ 'shape' => 'CustomEventData', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'GameProperties' => [ 'shape' => 'GamePropertyList', ], 'GameSessionData' => [ 'shape' => 'GameSessionData', ], ], ], 'MatchmakingConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MatchmakingConfiguration', ], ], 'MatchmakingConfigurationStatus' => [ 'type' => 'string', 'enum' => [ 'CANCELLED', 'COMPLETED', 'FAILED', 'PLACING', 'QUEUED', 'REQUIRES_ACCEPTANCE', 'SEARCHING', 'TIMED_OUT', ], ], 'MatchmakingIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MatchmakingIdStringModel', ], ], 'MatchmakingIdStringModel' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9-\\.]+', ], 'MatchmakingRequestTimeoutInteger' => [ 'type' => 'integer', 'max' => 43200, 'min' => 1, ], 'MatchmakingRuleSet' => [ 'type' => 'structure', 'required' => [ 'RuleSetBody', ], 'members' => [ 'RuleSetName' => [ 'shape' => 'MatchmakingIdStringModel', ], 'RuleSetBody' => [ 'shape' => 'RuleSetBody', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], ], ], 'MatchmakingRuleSetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MatchmakingRuleSet', ], ], 'MatchmakingRuleSetNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MatchmakingIdStringModel', ], 'max' => 10, 'min' => 1, ], 'MatchmakingTicket' => [ 'type' => 'structure', 'members' => [ 'TicketId' => [ 'shape' => 'MatchmakingIdStringModel', ], 'ConfigurationName' => [ 'shape' => 'MatchmakingIdStringModel', ], 'Status' => [ 'shape' => 'MatchmakingConfigurationStatus', ], 'StatusReason' => [ 'shape' => 'StringModel', ], 'StatusMessage' => [ 'shape' => 'StringModel', ], 'StartTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], 'Players' => [ 'shape' => 'PlayerList', ], 'GameSessionConnectionInfo' => [ 'shape' => 'GameSessionConnectionInfo', ], 'EstimatedWaitTime' => [ 'shape' => 'WholeNumber', ], ], ], 'MatchmakingTicketList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MatchmakingTicket', ], ], 'MaxConcurrentGameSessionActivations' => [ 'type' => 'integer', 'max' => 2147483647, 'min' => 1, ], 'MetricGroup' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'MetricGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricGroup', ], 'max' => 1, ], 'MetricName' => [ 'type' => 'string', 'enum' => [ 'ActivatingGameSessions', 'ActiveGameSessions', 'ActiveInstances', 'AvailableGameSessions', 'AvailablePlayerSessions', 'CurrentPlayerSessions', 'IdleInstances', 'PercentAvailableGameSessions', 'PercentIdleInstances', 'QueueDepth', 'WaitTime', ], ], 'NonBlankAndLengthConstraintString' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '.*\\S.*', ], 'NonBlankString' => [ 'type' => 'string', 'pattern' => '[^\\s]+', ], 'NonEmptyString' => [ 'type' => 'string', 'min' => 1, ], 'NonZeroAndMaxString' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NonEmptyString', ], ], 'exception' => true, ], 'OperatingSystem' => [ 'type' => 'string', 'enum' => [ 'WINDOWS_2012', 'AMAZON_LINUX', ], ], 'PlacedPlayerSession' => [ 'type' => 'structure', 'members' => [ 'PlayerId' => [ 'shape' => 'NonZeroAndMaxString', ], 'PlayerSessionId' => [ 'shape' => 'PlayerSessionId', ], ], ], 'PlacedPlayerSessionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlacedPlayerSession', ], ], 'Player' => [ 'type' => 'structure', 'members' => [ 'PlayerId' => [ 'shape' => 'NonZeroAndMaxString', ], 'PlayerAttributes' => [ 'shape' => 'PlayerAttributeMap', ], 'Team' => [ 'shape' => 'NonZeroAndMaxString', ], 'LatencyInMs' => [ 'shape' => 'LatencyMap', ], ], ], 'PlayerAttributeMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'NonZeroAndMaxString', ], 'value' => [ 'shape' => 'AttributeValue', ], ], 'PlayerData' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'PlayerDataMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'NonZeroAndMaxString', ], 'value' => [ 'shape' => 'PlayerData', ], ], 'PlayerIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonZeroAndMaxString', ], 'max' => 25, 'min' => 1, ], 'PlayerLatency' => [ 'type' => 'structure', 'members' => [ 'PlayerId' => [ 'shape' => 'NonZeroAndMaxString', ], 'RegionIdentifier' => [ 'shape' => 'NonZeroAndMaxString', ], 'LatencyInMilliseconds' => [ 'shape' => 'Float', ], ], ], 'PlayerLatencyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlayerLatency', ], ], 'PlayerLatencyPolicy' => [ 'type' => 'structure', 'members' => [ 'MaximumIndividualPlayerLatencyMilliseconds' => [ 'shape' => 'WholeNumber', ], 'PolicyDurationSeconds' => [ 'shape' => 'WholeNumber', ], ], ], 'PlayerLatencyPolicyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlayerLatencyPolicy', ], ], 'PlayerList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Player', ], ], 'PlayerSession' => [ 'type' => 'structure', 'members' => [ 'PlayerSessionId' => [ 'shape' => 'PlayerSessionId', ], 'PlayerId' => [ 'shape' => 'NonZeroAndMaxString', ], 'GameSessionId' => [ 'shape' => 'NonZeroAndMaxString', ], 'FleetId' => [ 'shape' => 'FleetId', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'TerminationTime' => [ 'shape' => 'Timestamp', ], 'Status' => [ 'shape' => 'PlayerSessionStatus', ], 'IpAddress' => [ 'shape' => 'IpAddress', ], 'Port' => [ 'shape' => 'PortNumber', ], 'PlayerData' => [ 'shape' => 'PlayerData', ], ], ], 'PlayerSessionCreationPolicy' => [ 'type' => 'string', 'enum' => [ 'ACCEPT_ALL', 'DENY_ALL', ], ], 'PlayerSessionId' => [ 'type' => 'string', 'pattern' => '^psess-\\S+', ], 'PlayerSessionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlayerSession', ], ], 'PlayerSessionStatus' => [ 'type' => 'string', 'enum' => [ 'RESERVED', 'ACTIVE', 'COMPLETED', 'TIMEDOUT', ], ], 'PolicyType' => [ 'type' => 'string', 'enum' => [ 'RuleBased', 'TargetBased', ], ], 'PortNumber' => [ 'type' => 'integer', 'max' => 60000, 'min' => 1, ], 'PositiveInteger' => [ 'type' => 'integer', 'min' => 1, ], 'PositiveLong' => [ 'type' => 'long', 'min' => 1, ], 'ProtectionPolicy' => [ 'type' => 'string', 'enum' => [ 'NoProtection', 'FullProtection', ], ], 'PutScalingPolicyInput' => [ 'type' => 'structure', 'required' => [ 'Name', 'FleetId', 'MetricName', ], 'members' => [ 'Name' => [ 'shape' => 'NonZeroAndMaxString', ], 'FleetId' => [ 'shape' => 'FleetId', ], 'ScalingAdjustment' => [ 'shape' => 'Integer', ], 'ScalingAdjustmentType' => [ 'shape' => 'ScalingAdjustmentType', ], 'Threshold' => [ 'shape' => 'Double', ], 'ComparisonOperator' => [ 'shape' => 'ComparisonOperatorType', ], 'EvaluationPeriods' => [ 'shape' => 'PositiveInteger', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'PolicyType' => [ 'shape' => 'PolicyType', ], 'TargetConfiguration' => [ 'shape' => 'TargetConfiguration', ], ], ], 'PutScalingPolicyOutput' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'QueueArnsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ArnStringModel', ], ], 'RequestUploadCredentialsInput' => [ 'type' => 'structure', 'required' => [ 'BuildId', ], 'members' => [ 'BuildId' => [ 'shape' => 'BuildId', ], ], ], 'RequestUploadCredentialsOutput' => [ 'type' => 'structure', 'members' => [ 'UploadCredentials' => [ 'shape' => 'AwsCredentials', ], 'StorageLocation' => [ 'shape' => 'S3Location', ], ], ], 'ResolveAliasInput' => [ 'type' => 'structure', 'required' => [ 'AliasId', ], 'members' => [ 'AliasId' => [ 'shape' => 'AliasId', ], ], ], 'ResolveAliasOutput' => [ 'type' => 'structure', 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], ], ], 'ResourceCreationLimitPolicy' => [ 'type' => 'structure', 'members' => [ 'NewGameSessionsPerCreator' => [ 'shape' => 'WholeNumber', ], 'PolicyPeriodInMinutes' => [ 'shape' => 'WholeNumber', ], ], ], 'RoutingStrategy' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'RoutingStrategyType', ], 'FleetId' => [ 'shape' => 'FleetId', ], 'Message' => [ 'shape' => 'FreeText', ], ], ], 'RoutingStrategyType' => [ 'type' => 'string', 'enum' => [ 'SIMPLE', 'TERMINAL', ], ], 'RuleSetBody' => [ 'type' => 'string', 'max' => 65535, 'min' => 1, ], 'RuleSetLimit' => [ 'type' => 'integer', 'max' => 10, 'min' => 1, ], 'RuntimeConfiguration' => [ 'type' => 'structure', 'members' => [ 'ServerProcesses' => [ 'shape' => 'ServerProcessList', ], 'MaxConcurrentGameSessionActivations' => [ 'shape' => 'MaxConcurrentGameSessionActivations', ], 'GameSessionActivationTimeoutSeconds' => [ 'shape' => 'GameSessionActivationTimeoutSeconds', ], ], ], 'S3Location' => [ 'type' => 'structure', 'members' => [ 'Bucket' => [ 'shape' => 'NonEmptyString', ], 'Key' => [ 'shape' => 'NonEmptyString', ], 'RoleArn' => [ 'shape' => 'NonEmptyString', ], ], ], 'ScalingAdjustmentType' => [ 'type' => 'string', 'enum' => [ 'ChangeInCapacity', 'ExactCapacity', 'PercentChangeInCapacity', ], ], 'ScalingPolicy' => [ 'type' => 'structure', 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'Name' => [ 'shape' => 'NonZeroAndMaxString', ], 'Status' => [ 'shape' => 'ScalingStatusType', ], 'ScalingAdjustment' => [ 'shape' => 'Integer', ], 'ScalingAdjustmentType' => [ 'shape' => 'ScalingAdjustmentType', ], 'ComparisonOperator' => [ 'shape' => 'ComparisonOperatorType', ], 'Threshold' => [ 'shape' => 'Double', ], 'EvaluationPeriods' => [ 'shape' => 'PositiveInteger', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'PolicyType' => [ 'shape' => 'PolicyType', ], 'TargetConfiguration' => [ 'shape' => 'TargetConfiguration', ], ], ], 'ScalingPolicyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScalingPolicy', ], ], 'ScalingStatusType' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'UPDATE_REQUESTED', 'UPDATING', 'DELETE_REQUESTED', 'DELETING', 'DELETED', 'ERROR', ], ], 'SearchGameSessionsInput' => [ 'type' => 'structure', 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'AliasId' => [ 'shape' => 'AliasId', ], 'FilterExpression' => [ 'shape' => 'NonZeroAndMaxString', ], 'SortExpression' => [ 'shape' => 'NonZeroAndMaxString', ], 'Limit' => [ 'shape' => 'PositiveInteger', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'SearchGameSessionsOutput' => [ 'type' => 'structure', 'members' => [ 'GameSessions' => [ 'shape' => 'GameSessionList', ], 'NextToken' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'ServerProcess' => [ 'type' => 'structure', 'required' => [ 'LaunchPath', 'ConcurrentExecutions', ], 'members' => [ 'LaunchPath' => [ 'shape' => 'NonZeroAndMaxString', ], 'Parameters' => [ 'shape' => 'NonZeroAndMaxString', ], 'ConcurrentExecutions' => [ 'shape' => 'PositiveInteger', ], ], ], 'ServerProcessList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServerProcess', ], 'max' => 50, 'min' => 1, ], 'SnsArnStringModel' => [ 'type' => 'string', 'max' => 300, 'min' => 0, 'pattern' => '[a-zA-Z0-9:_/-]*', ], 'StartFleetActionsInput' => [ 'type' => 'structure', 'required' => [ 'FleetId', 'Actions', ], 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'Actions' => [ 'shape' => 'FleetActionList', ], ], ], 'StartFleetActionsOutput' => [ 'type' => 'structure', 'members' => [], ], 'StartGameSessionPlacementInput' => [ 'type' => 'structure', 'required' => [ 'PlacementId', 'GameSessionQueueName', 'MaximumPlayerSessionCount', ], 'members' => [ 'PlacementId' => [ 'shape' => 'IdStringModel', ], 'GameSessionQueueName' => [ 'shape' => 'GameSessionQueueName', ], 'GameProperties' => [ 'shape' => 'GamePropertyList', ], 'MaximumPlayerSessionCount' => [ 'shape' => 'WholeNumber', ], 'GameSessionName' => [ 'shape' => 'NonZeroAndMaxString', ], 'PlayerLatencies' => [ 'shape' => 'PlayerLatencyList', ], 'DesiredPlayerSessions' => [ 'shape' => 'DesiredPlayerSessionList', ], 'GameSessionData' => [ 'shape' => 'GameSessionData', ], ], ], 'StartGameSessionPlacementOutput' => [ 'type' => 'structure', 'members' => [ 'GameSessionPlacement' => [ 'shape' => 'GameSessionPlacement', ], ], ], 'StartMatchBackfillInput' => [ 'type' => 'structure', 'required' => [ 'ConfigurationName', 'GameSessionArn', 'Players', ], 'members' => [ 'TicketId' => [ 'shape' => 'MatchmakingIdStringModel', ], 'ConfigurationName' => [ 'shape' => 'MatchmakingIdStringModel', ], 'GameSessionArn' => [ 'shape' => 'ArnStringModel', ], 'Players' => [ 'shape' => 'PlayerList', ], ], ], 'StartMatchBackfillOutput' => [ 'type' => 'structure', 'members' => [ 'MatchmakingTicket' => [ 'shape' => 'MatchmakingTicket', ], ], ], 'StartMatchmakingInput' => [ 'type' => 'structure', 'required' => [ 'ConfigurationName', 'Players', ], 'members' => [ 'TicketId' => [ 'shape' => 'MatchmakingIdStringModel', ], 'ConfigurationName' => [ 'shape' => 'MatchmakingIdStringModel', ], 'Players' => [ 'shape' => 'PlayerList', ], ], ], 'StartMatchmakingOutput' => [ 'type' => 'structure', 'members' => [ 'MatchmakingTicket' => [ 'shape' => 'MatchmakingTicket', ], ], ], 'StopFleetActionsInput' => [ 'type' => 'structure', 'required' => [ 'FleetId', 'Actions', ], 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'Actions' => [ 'shape' => 'FleetActionList', ], ], ], 'StopFleetActionsOutput' => [ 'type' => 'structure', 'members' => [], ], 'StopGameSessionPlacementInput' => [ 'type' => 'structure', 'required' => [ 'PlacementId', ], 'members' => [ 'PlacementId' => [ 'shape' => 'IdStringModel', ], ], ], 'StopGameSessionPlacementOutput' => [ 'type' => 'structure', 'members' => [ 'GameSessionPlacement' => [ 'shape' => 'GameSessionPlacement', ], ], ], 'StopMatchmakingInput' => [ 'type' => 'structure', 'required' => [ 'TicketId', ], 'members' => [ 'TicketId' => [ 'shape' => 'MatchmakingIdStringModel', ], ], ], 'StopMatchmakingOutput' => [ 'type' => 'structure', 'members' => [], ], 'StringDoubleMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'NonZeroAndMaxString', ], 'value' => [ 'shape' => 'DoubleObject', ], ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonZeroAndMaxString', ], ], 'StringModel' => [ 'type' => 'string', ], 'TargetConfiguration' => [ 'type' => 'structure', 'required' => [ 'TargetValue', ], 'members' => [ 'TargetValue' => [ 'shape' => 'Double', ], ], ], 'TerminalRoutingStrategyException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NonEmptyString', ], ], 'exception' => true, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'UnauthorizedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NonEmptyString', ], ], 'exception' => true, ], 'UnsupportedRegionException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NonEmptyString', ], ], 'exception' => true, ], 'UpdateAliasInput' => [ 'type' => 'structure', 'required' => [ 'AliasId', ], 'members' => [ 'AliasId' => [ 'shape' => 'AliasId', ], 'Name' => [ 'shape' => 'NonBlankAndLengthConstraintString', ], 'Description' => [ 'shape' => 'NonZeroAndMaxString', ], 'RoutingStrategy' => [ 'shape' => 'RoutingStrategy', ], ], ], 'UpdateAliasOutput' => [ 'type' => 'structure', 'members' => [ 'Alias' => [ 'shape' => 'Alias', ], ], ], 'UpdateBuildInput' => [ 'type' => 'structure', 'required' => [ 'BuildId', ], 'members' => [ 'BuildId' => [ 'shape' => 'BuildId', ], 'Name' => [ 'shape' => 'NonZeroAndMaxString', ], 'Version' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'UpdateBuildOutput' => [ 'type' => 'structure', 'members' => [ 'Build' => [ 'shape' => 'Build', ], ], ], 'UpdateFleetAttributesInput' => [ 'type' => 'structure', 'required' => [ 'FleetId', ], 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'Name' => [ 'shape' => 'NonZeroAndMaxString', ], 'Description' => [ 'shape' => 'NonZeroAndMaxString', ], 'NewGameSessionProtectionPolicy' => [ 'shape' => 'ProtectionPolicy', ], 'ResourceCreationLimitPolicy' => [ 'shape' => 'ResourceCreationLimitPolicy', ], 'MetricGroups' => [ 'shape' => 'MetricGroupList', ], ], ], 'UpdateFleetAttributesOutput' => [ 'type' => 'structure', 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], ], ], 'UpdateFleetCapacityInput' => [ 'type' => 'structure', 'required' => [ 'FleetId', ], 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'DesiredInstances' => [ 'shape' => 'WholeNumber', ], 'MinSize' => [ 'shape' => 'WholeNumber', ], 'MaxSize' => [ 'shape' => 'WholeNumber', ], ], ], 'UpdateFleetCapacityOutput' => [ 'type' => 'structure', 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], ], ], 'UpdateFleetPortSettingsInput' => [ 'type' => 'structure', 'required' => [ 'FleetId', ], 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'InboundPermissionAuthorizations' => [ 'shape' => 'IpPermissionsList', ], 'InboundPermissionRevocations' => [ 'shape' => 'IpPermissionsList', ], ], ], 'UpdateFleetPortSettingsOutput' => [ 'type' => 'structure', 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], ], ], 'UpdateGameSessionInput' => [ 'type' => 'structure', 'required' => [ 'GameSessionId', ], 'members' => [ 'GameSessionId' => [ 'shape' => 'ArnStringModel', ], 'MaximumPlayerSessionCount' => [ 'shape' => 'WholeNumber', ], 'Name' => [ 'shape' => 'NonZeroAndMaxString', ], 'PlayerSessionCreationPolicy' => [ 'shape' => 'PlayerSessionCreationPolicy', ], 'ProtectionPolicy' => [ 'shape' => 'ProtectionPolicy', ], ], ], 'UpdateGameSessionOutput' => [ 'type' => 'structure', 'members' => [ 'GameSession' => [ 'shape' => 'GameSession', ], ], ], 'UpdateGameSessionQueueInput' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'GameSessionQueueName', ], 'TimeoutInSeconds' => [ 'shape' => 'WholeNumber', ], 'PlayerLatencyPolicies' => [ 'shape' => 'PlayerLatencyPolicyList', ], 'Destinations' => [ 'shape' => 'GameSessionQueueDestinationList', ], ], ], 'UpdateGameSessionQueueOutput' => [ 'type' => 'structure', 'members' => [ 'GameSessionQueue' => [ 'shape' => 'GameSessionQueue', ], ], ], 'UpdateMatchmakingConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'MatchmakingIdStringModel', ], 'Description' => [ 'shape' => 'NonZeroAndMaxString', ], 'GameSessionQueueArns' => [ 'shape' => 'QueueArnsList', ], 'RequestTimeoutSeconds' => [ 'shape' => 'MatchmakingRequestTimeoutInteger', ], 'AcceptanceTimeoutSeconds' => [ 'shape' => 'MatchmakingAcceptanceTimeoutInteger', ], 'AcceptanceRequired' => [ 'shape' => 'BooleanModel', ], 'RuleSetName' => [ 'shape' => 'MatchmakingIdStringModel', ], 'NotificationTarget' => [ 'shape' => 'SnsArnStringModel', ], 'AdditionalPlayerCount' => [ 'shape' => 'WholeNumber', ], 'CustomEventData' => [ 'shape' => 'CustomEventData', ], 'GameProperties' => [ 'shape' => 'GamePropertyList', ], 'GameSessionData' => [ 'shape' => 'GameSessionData', ], ], ], 'UpdateMatchmakingConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'Configuration' => [ 'shape' => 'MatchmakingConfiguration', ], ], ], 'UpdateRuntimeConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'FleetId', 'RuntimeConfiguration', ], 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'RuntimeConfiguration' => [ 'shape' => 'RuntimeConfiguration', ], ], ], 'UpdateRuntimeConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'RuntimeConfiguration' => [ 'shape' => 'RuntimeConfiguration', ], ], ], 'ValidateMatchmakingRuleSetInput' => [ 'type' => 'structure', 'required' => [ 'RuleSetBody', ], 'members' => [ 'RuleSetBody' => [ 'shape' => 'RuleSetBody', ], ], ], 'ValidateMatchmakingRuleSetOutput' => [ 'type' => 'structure', 'members' => [ 'Valid' => [ 'shape' => 'BooleanModel', ], ], ], 'VpcPeeringAuthorization' => [ 'type' => 'structure', 'members' => [ 'GameLiftAwsAccountId' => [ 'shape' => 'NonZeroAndMaxString', ], 'PeerVpcAwsAccountId' => [ 'shape' => 'NonZeroAndMaxString', ], 'PeerVpcId' => [ 'shape' => 'NonZeroAndMaxString', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'ExpirationTime' => [ 'shape' => 'Timestamp', ], ], ], 'VpcPeeringAuthorizationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcPeeringAuthorization', ], ], 'VpcPeeringConnection' => [ 'type' => 'structure', 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', ], 'IpV4CidrBlock' => [ 'shape' => 'NonZeroAndMaxString', ], 'VpcPeeringConnectionId' => [ 'shape' => 'NonZeroAndMaxString', ], 'Status' => [ 'shape' => 'VpcPeeringConnectionStatus', ], 'PeerVpcId' => [ 'shape' => 'NonZeroAndMaxString', ], 'GameLiftVpcId' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'VpcPeeringConnectionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcPeeringConnection', ], ], 'VpcPeeringConnectionStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'NonZeroAndMaxString', ], 'Message' => [ 'shape' => 'NonZeroAndMaxString', ], ], ], 'WholeNumber' => [ 'type' => 'integer', 'min' => 0, ], ],]; diff --git a/lib/aws/Aws/data/gamelift/2015-10-01/paginators-1.json.php b/lib/aws/Aws/data/gamelift/2015-10-01/paginators-1.json.php new file mode 100644 index 0000000..71bd2b0 --- /dev/null +++ b/lib/aws/Aws/data/gamelift/2015-10-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/gamelift/2015-10-01/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/gamelift/2015-10-01/smoke.json.php b/lib/aws/Aws/data/gamelift/2015-10-01/smoke.json.php new file mode 100644 index 0000000..113c885 --- /dev/null +++ b/lib/aws/Aws/data/gamelift/2015-10-01/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/gamelift/2015-10-01/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListBuilds', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribePlayerSessions', 'input' => [ 'PlayerSessionId' => 'psess-fakeSessionId', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/glacier/2012-06-01/api-2.json.php b/lib/aws/Aws/data/glacier/2012-06-01/api-2.json.php new file mode 100644 index 0000000..1c784a9 --- /dev/null +++ b/lib/aws/Aws/data/glacier/2012-06-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/glacier/2012-06-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2012-06-01', 'checksumFormat' => 'sha256', 'endpointPrefix' => 'glacier', 'protocol' => 'rest-json', 'serviceFullName' => 'Amazon Glacier', 'serviceId' => 'Glacier', 'signatureVersion' => 'v4', 'uid' => 'glacier-2012-06-01', ], 'operations' => [ 'AbortMultipartUpload' => [ 'name' => 'AbortMultipartUpload', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'AbortMultipartUploadInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'AbortVaultLock' => [ 'name' => 'AbortVaultLock', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{accountId}/vaults/{vaultName}/lock-policy', 'responseCode' => 204, ], 'input' => [ 'shape' => 'AbortVaultLockInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'AddTagsToVault' => [ 'name' => 'AddTagsToVault', 'http' => [ 'method' => 'POST', 'requestUri' => '/{accountId}/vaults/{vaultName}/tags?operation=add', 'responseCode' => 204, ], 'input' => [ 'shape' => 'AddTagsToVaultInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'CompleteMultipartUpload' => [ 'name' => 'CompleteMultipartUpload', 'http' => [ 'method' => 'POST', 'requestUri' => '/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CompleteMultipartUploadInput', ], 'output' => [ 'shape' => 'ArchiveCreationOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'CompleteVaultLock' => [ 'name' => 'CompleteVaultLock', 'http' => [ 'method' => 'POST', 'requestUri' => '/{accountId}/vaults/{vaultName}/lock-policy/{lockId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'CompleteVaultLockInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'CreateVault' => [ 'name' => 'CreateVault', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{accountId}/vaults/{vaultName}', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateVaultInput', ], 'output' => [ 'shape' => 'CreateVaultOutput', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'DeleteArchive' => [ 'name' => 'DeleteArchive', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{accountId}/vaults/{vaultName}/archives/{archiveId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteArchiveInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeleteVault' => [ 'name' => 'DeleteVault', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{accountId}/vaults/{vaultName}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteVaultInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeleteVaultAccessPolicy' => [ 'name' => 'DeleteVaultAccessPolicy', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{accountId}/vaults/{vaultName}/access-policy', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteVaultAccessPolicyInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeleteVaultNotifications' => [ 'name' => 'DeleteVaultNotifications', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{accountId}/vaults/{vaultName}/notification-configuration', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteVaultNotificationsInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeJob' => [ 'name' => 'DescribeJob', 'http' => [ 'method' => 'GET', 'requestUri' => '/{accountId}/vaults/{vaultName}/jobs/{jobId}', ], 'input' => [ 'shape' => 'DescribeJobInput', ], 'output' => [ 'shape' => 'GlacierJobDescription', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeVault' => [ 'name' => 'DescribeVault', 'http' => [ 'method' => 'GET', 'requestUri' => '/{accountId}/vaults/{vaultName}', ], 'input' => [ 'shape' => 'DescribeVaultInput', ], 'output' => [ 'shape' => 'DescribeVaultOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'GetDataRetrievalPolicy' => [ 'name' => 'GetDataRetrievalPolicy', 'http' => [ 'method' => 'GET', 'requestUri' => '/{accountId}/policies/data-retrieval', ], 'input' => [ 'shape' => 'GetDataRetrievalPolicyInput', ], 'output' => [ 'shape' => 'GetDataRetrievalPolicyOutput', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'GetJobOutput' => [ 'name' => 'GetJobOutput', 'http' => [ 'method' => 'GET', 'requestUri' => '/{accountId}/vaults/{vaultName}/jobs/{jobId}/output', ], 'input' => [ 'shape' => 'GetJobOutputInput', ], 'output' => [ 'shape' => 'GetJobOutputOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'GetVaultAccessPolicy' => [ 'name' => 'GetVaultAccessPolicy', 'http' => [ 'method' => 'GET', 'requestUri' => '/{accountId}/vaults/{vaultName}/access-policy', ], 'input' => [ 'shape' => 'GetVaultAccessPolicyInput', ], 'output' => [ 'shape' => 'GetVaultAccessPolicyOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'GetVaultLock' => [ 'name' => 'GetVaultLock', 'http' => [ 'method' => 'GET', 'requestUri' => '/{accountId}/vaults/{vaultName}/lock-policy', ], 'input' => [ 'shape' => 'GetVaultLockInput', ], 'output' => [ 'shape' => 'GetVaultLockOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'GetVaultNotifications' => [ 'name' => 'GetVaultNotifications', 'http' => [ 'method' => 'GET', 'requestUri' => '/{accountId}/vaults/{vaultName}/notification-configuration', ], 'input' => [ 'shape' => 'GetVaultNotificationsInput', ], 'output' => [ 'shape' => 'GetVaultNotificationsOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'InitiateJob' => [ 'name' => 'InitiateJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/{accountId}/vaults/{vaultName}/jobs', 'responseCode' => 202, ], 'input' => [ 'shape' => 'InitiateJobInput', ], 'output' => [ 'shape' => 'InitiateJobOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'PolicyEnforcedException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'InsufficientCapacityException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'InitiateMultipartUpload' => [ 'name' => 'InitiateMultipartUpload', 'http' => [ 'method' => 'POST', 'requestUri' => '/{accountId}/vaults/{vaultName}/multipart-uploads', 'responseCode' => 201, ], 'input' => [ 'shape' => 'InitiateMultipartUploadInput', ], 'output' => [ 'shape' => 'InitiateMultipartUploadOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'InitiateVaultLock' => [ 'name' => 'InitiateVaultLock', 'http' => [ 'method' => 'POST', 'requestUri' => '/{accountId}/vaults/{vaultName}/lock-policy', 'responseCode' => 201, ], 'input' => [ 'shape' => 'InitiateVaultLockInput', ], 'output' => [ 'shape' => 'InitiateVaultLockOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ListJobs' => [ 'name' => 'ListJobs', 'http' => [ 'method' => 'GET', 'requestUri' => '/{accountId}/vaults/{vaultName}/jobs', ], 'input' => [ 'shape' => 'ListJobsInput', ], 'output' => [ 'shape' => 'ListJobsOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ListMultipartUploads' => [ 'name' => 'ListMultipartUploads', 'http' => [ 'method' => 'GET', 'requestUri' => '/{accountId}/vaults/{vaultName}/multipart-uploads', ], 'input' => [ 'shape' => 'ListMultipartUploadsInput', ], 'output' => [ 'shape' => 'ListMultipartUploadsOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ListParts' => [ 'name' => 'ListParts', 'http' => [ 'method' => 'GET', 'requestUri' => '/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}', ], 'input' => [ 'shape' => 'ListPartsInput', ], 'output' => [ 'shape' => 'ListPartsOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ListProvisionedCapacity' => [ 'name' => 'ListProvisionedCapacity', 'http' => [ 'method' => 'GET', 'requestUri' => '/{accountId}/provisioned-capacity', ], 'input' => [ 'shape' => 'ListProvisionedCapacityInput', ], 'output' => [ 'shape' => 'ListProvisionedCapacityOutput', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ListTagsForVault' => [ 'name' => 'ListTagsForVault', 'http' => [ 'method' => 'GET', 'requestUri' => '/{accountId}/vaults/{vaultName}/tags', ], 'input' => [ 'shape' => 'ListTagsForVaultInput', ], 'output' => [ 'shape' => 'ListTagsForVaultOutput', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ListVaults' => [ 'name' => 'ListVaults', 'http' => [ 'method' => 'GET', 'requestUri' => '/{accountId}/vaults', ], 'input' => [ 'shape' => 'ListVaultsInput', ], 'output' => [ 'shape' => 'ListVaultsOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'PurchaseProvisionedCapacity' => [ 'name' => 'PurchaseProvisionedCapacity', 'http' => [ 'method' => 'POST', 'requestUri' => '/{accountId}/provisioned-capacity', 'responseCode' => 201, ], 'input' => [ 'shape' => 'PurchaseProvisionedCapacityInput', ], 'output' => [ 'shape' => 'PurchaseProvisionedCapacityOutput', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'RemoveTagsFromVault' => [ 'name' => 'RemoveTagsFromVault', 'http' => [ 'method' => 'POST', 'requestUri' => '/{accountId}/vaults/{vaultName}/tags?operation=remove', 'responseCode' => 204, ], 'input' => [ 'shape' => 'RemoveTagsFromVaultInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'SetDataRetrievalPolicy' => [ 'name' => 'SetDataRetrievalPolicy', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{accountId}/policies/data-retrieval', 'responseCode' => 204, ], 'input' => [ 'shape' => 'SetDataRetrievalPolicyInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'SetVaultAccessPolicy' => [ 'name' => 'SetVaultAccessPolicy', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{accountId}/vaults/{vaultName}/access-policy', 'responseCode' => 204, ], 'input' => [ 'shape' => 'SetVaultAccessPolicyInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'SetVaultNotifications' => [ 'name' => 'SetVaultNotifications', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{accountId}/vaults/{vaultName}/notification-configuration', 'responseCode' => 204, ], 'input' => [ 'shape' => 'SetVaultNotificationsInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'UploadArchive' => [ 'name' => 'UploadArchive', 'http' => [ 'method' => 'POST', 'requestUri' => '/{accountId}/vaults/{vaultName}/archives', 'responseCode' => 201, ], 'input' => [ 'shape' => 'UploadArchiveInput', ], 'output' => [ 'shape' => 'ArchiveCreationOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'RequestTimeoutException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'UploadMultipartPart' => [ 'name' => 'UploadMultipartPart', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UploadMultipartPartInput', ], 'output' => [ 'shape' => 'UploadMultipartPartOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingParameterValueException', ], [ 'shape' => 'RequestTimeoutException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], ], 'shapes' => [ 'AbortMultipartUploadInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', 'uploadId', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'vaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'vaultName', ], 'uploadId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'uploadId', ], ], ], 'AbortVaultLockInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'vaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'vaultName', ], ], ], 'AccessControlPolicyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Grant', ], ], 'ActionCode' => [ 'type' => 'string', 'enum' => [ 'ArchiveRetrieval', 'InventoryRetrieval', 'Select', ], ], 'AddTagsToVaultInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'vaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'vaultName', ], 'Tags' => [ 'shape' => 'TagMap', ], ], ], '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', ], ], ], 'CSVInput' => [ 'type' => 'structure', 'members' => [ 'FileHeaderInfo' => [ 'shape' => 'FileHeaderInfo', ], 'Comments' => [ 'shape' => 'string', ], 'QuoteEscapeCharacter' => [ 'shape' => 'string', ], 'RecordDelimiter' => [ 'shape' => 'string', ], 'FieldDelimiter' => [ 'shape' => 'string', ], 'QuoteCharacter' => [ 'shape' => 'string', ], ], ], 'CSVOutput' => [ 'type' => 'structure', 'members' => [ 'QuoteFields' => [ 'shape' => 'QuoteFields', ], 'QuoteEscapeCharacter' => [ 'shape' => 'string', ], 'RecordDelimiter' => [ 'shape' => 'string', ], 'FieldDelimiter' => [ 'shape' => 'string', ], 'QuoteCharacter' => [ 'shape' => 'string', ], ], ], 'CannedACL' => [ 'type' => 'string', 'enum' => [ 'private', 'public-read', 'public-read-write', 'aws-exec-read', 'authenticated-read', 'bucket-owner-read', 'bucket-owner-full-control', ], ], 'CompleteMultipartUploadInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', 'uploadId', ], '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', ], ], ], 'CompleteVaultLockInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', 'lockId', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'vaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'vaultName', ], 'lockId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'lockId', ], ], ], 'CreateVaultInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'vaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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', 'required' => [ 'accountId', 'vaultName', 'archiveId', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'vaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'vaultName', ], 'archiveId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'archiveId', ], ], ], 'DeleteVaultAccessPolicyInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'vaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'vaultName', ], ], ], 'DeleteVaultInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'vaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'vaultName', ], ], ], 'DeleteVaultNotificationsInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'vaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'vaultName', ], ], ], 'DescribeJobInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', 'jobId', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'vaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'vaultName', ], 'jobId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'jobId', ], ], ], 'DescribeVaultInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'vaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'vaultName', ], ], ], 'DescribeVaultOutput' => [ 'type' => 'structure', 'members' => [ 'VaultARN' => [ 'shape' => 'string', ], 'VaultName' => [ 'shape' => 'string', ], 'CreationDate' => [ 'shape' => 'string', ], 'LastInventoryDate' => [ 'shape' => 'string', ], 'NumberOfArchives' => [ 'shape' => 'long', ], 'SizeInBytes' => [ 'shape' => 'long', ], ], ], 'Encryption' => [ 'type' => 'structure', 'members' => [ 'EncryptionType' => [ 'shape' => 'EncryptionType', ], 'KMSKeyId' => [ 'shape' => 'string', ], 'KMSContext' => [ 'shape' => 'string', ], ], ], 'EncryptionType' => [ 'type' => 'string', 'enum' => [ 'aws:kms', 'AES256', ], ], 'ExpressionType' => [ 'type' => 'string', 'enum' => [ 'SQL', ], ], 'FileHeaderInfo' => [ 'type' => 'string', 'enum' => [ 'USE', 'IGNORE', 'NONE', ], ], 'GetDataRetrievalPolicyInput' => [ 'type' => 'structure', 'required' => [ 'accountId', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], ], ], 'GetDataRetrievalPolicyOutput' => [ 'type' => 'structure', 'members' => [ 'Policy' => [ 'shape' => 'DataRetrievalPolicy', ], ], ], 'GetJobOutputInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', 'jobId', ], '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', ], ], ], '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', 'required' => [ 'accountId', 'vaultName', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'vaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'vaultName', ], ], ], 'GetVaultAccessPolicyOutput' => [ 'type' => 'structure', 'members' => [ 'policy' => [ 'shape' => 'VaultAccessPolicy', ], ], 'payload' => 'policy', ], 'GetVaultLockInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'vaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'vaultName', ], ], ], 'GetVaultLockOutput' => [ 'type' => 'structure', 'members' => [ 'Policy' => [ 'shape' => 'string', ], 'State' => [ 'shape' => 'string', ], 'ExpirationDate' => [ 'shape' => 'string', ], 'CreationDate' => [ 'shape' => 'string', ], ], ], 'GetVaultNotificationsInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'vaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => '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', ], 'Tier' => [ 'shape' => 'string', ], 'InventoryRetrievalParameters' => [ 'shape' => 'InventoryRetrievalJobDescription', ], 'JobOutputPath' => [ 'shape' => 'string', ], 'SelectParameters' => [ 'shape' => 'SelectParameters', ], 'OutputLocation' => [ 'shape' => 'OutputLocation', ], ], ], 'Grant' => [ 'type' => 'structure', 'members' => [ 'Grantee' => [ 'shape' => 'Grantee', ], 'Permission' => [ 'shape' => 'Permission', ], ], ], 'Grantee' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'Type', ], 'DisplayName' => [ 'shape' => 'string', ], 'URI' => [ 'shape' => 'string', ], 'ID' => [ 'shape' => 'string', ], 'EmailAddress' => [ 'shape' => 'string', ], ], ], 'InitiateJobInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'vaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'vaultName', ], 'jobParameters' => [ 'shape' => 'JobParameters', ], ], 'payload' => 'jobParameters', ], 'InitiateJobOutput' => [ 'type' => 'structure', 'members' => [ 'location' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'Location', ], 'jobId' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'x-amz-job-id', ], 'jobOutputPath' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'x-amz-job-output-path', ], ], ], 'InitiateMultipartUploadInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', ], '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', ], ], ], 'InitiateMultipartUploadOutput' => [ 'type' => 'structure', 'members' => [ 'location' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'Location', ], 'uploadId' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'x-amz-multipart-upload-id', ], ], ], 'InitiateVaultLockInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'vaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'vaultName', ], 'policy' => [ 'shape' => 'VaultLockPolicy', ], ], 'payload' => 'policy', ], 'InitiateVaultLockOutput' => [ 'type' => 'structure', 'members' => [ 'lockId' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'x-amz-lock-id', ], ], ], 'InputSerialization' => [ 'type' => 'structure', 'members' => [ 'csv' => [ 'shape' => 'CSVInput', ], ], ], 'InsufficientCapacityException' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'string', ], 'code' => [ 'shape' => 'string', ], 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], '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', ], 'Tier' => [ 'shape' => 'string', ], 'InventoryRetrievalParameters' => [ 'shape' => 'InventoryRetrievalJobInput', ], 'SelectParameters' => [ 'shape' => 'SelectParameters', ], 'OutputLocation' => [ 'shape' => 'OutputLocation', ], ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'string', ], 'code' => [ 'shape' => 'string', ], 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ListJobsInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', ], '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', ], ], ], 'ListJobsOutput' => [ 'type' => 'structure', 'members' => [ 'JobList' => [ 'shape' => 'JobList', ], 'Marker' => [ 'shape' => 'string', ], ], ], 'ListMultipartUploadsInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', ], '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', ], ], ], 'ListMultipartUploadsOutput' => [ 'type' => 'structure', 'members' => [ 'UploadsList' => [ 'shape' => 'UploadsList', ], 'Marker' => [ 'shape' => 'string', ], ], ], 'ListPartsInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', 'uploadId', ], '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', ], ], ], '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', ], ], ], 'ListProvisionedCapacityInput' => [ 'type' => 'structure', 'required' => [ 'accountId', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], ], ], 'ListProvisionedCapacityOutput' => [ 'type' => 'structure', 'members' => [ 'ProvisionedCapacityList' => [ 'shape' => 'ProvisionedCapacityList', ], ], ], 'ListTagsForVaultInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'vaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'vaultName', ], ], ], 'ListTagsForVaultOutput' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagMap', ], ], ], 'ListVaultsInput' => [ 'type' => 'structure', 'required' => [ 'accountId', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'marker' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'marker', ], 'limit' => [ 'shape' => 'string', 'location' => 'querystring', 'locationName' => 'limit', ], ], ], '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', ], 'OutputLocation' => [ 'type' => 'structure', 'members' => [ 'S3' => [ 'shape' => 'S3Location', ], ], ], 'OutputSerialization' => [ 'type' => 'structure', 'members' => [ 'csv' => [ 'shape' => 'CSVOutput', ], ], ], 'PartList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PartListElement', ], ], 'PartListElement' => [ 'type' => 'structure', 'members' => [ 'RangeInBytes' => [ 'shape' => 'string', ], 'SHA256TreeHash' => [ 'shape' => 'string', ], ], ], 'Permission' => [ 'type' => 'string', 'enum' => [ 'FULL_CONTROL', 'WRITE', 'WRITE_ACP', 'READ', 'READ_ACP', ], ], 'PolicyEnforcedException' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'string', ], 'code' => [ 'shape' => 'string', ], 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ProvisionedCapacityDescription' => [ 'type' => 'structure', 'members' => [ 'CapacityId' => [ 'shape' => 'string', ], 'StartDate' => [ 'shape' => 'string', ], 'ExpirationDate' => [ 'shape' => 'string', ], ], ], 'ProvisionedCapacityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProvisionedCapacityDescription', ], ], 'PurchaseProvisionedCapacityInput' => [ 'type' => 'structure', 'required' => [ 'accountId', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], ], ], 'PurchaseProvisionedCapacityOutput' => [ 'type' => 'structure', 'members' => [ 'capacityId' => [ 'shape' => 'string', 'location' => 'header', 'locationName' => 'x-amz-capacity-id', ], ], ], 'QuoteFields' => [ 'type' => 'string', 'enum' => [ 'ALWAYS', 'ASNEEDED', ], ], 'RemoveTagsFromVaultInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'vaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'vaultName', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], '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, ], 'S3Location' => [ 'type' => 'structure', 'members' => [ 'BucketName' => [ 'shape' => 'string', ], 'Prefix' => [ 'shape' => 'string', ], 'Encryption' => [ 'shape' => 'Encryption', ], 'CannedACL' => [ 'shape' => 'CannedACL', ], 'AccessControlList' => [ 'shape' => 'AccessControlPolicyList', ], 'Tagging' => [ 'shape' => 'hashmap', ], 'UserMetadata' => [ 'shape' => 'hashmap', ], 'StorageClass' => [ 'shape' => 'StorageClass', ], ], ], 'SelectParameters' => [ 'type' => 'structure', 'members' => [ 'InputSerialization' => [ 'shape' => 'InputSerialization', ], 'ExpressionType' => [ 'shape' => 'ExpressionType', ], 'Expression' => [ 'shape' => 'string', ], 'OutputSerialization' => [ 'shape' => 'OutputSerialization', ], ], ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'string', ], 'code' => [ 'shape' => 'string', ], 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, ], 'SetDataRetrievalPolicyInput' => [ 'type' => 'structure', 'required' => [ 'accountId', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'Policy' => [ 'shape' => 'DataRetrievalPolicy', ], ], ], 'SetVaultAccessPolicyInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'vaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'vaultName', ], 'policy' => [ 'shape' => 'VaultAccessPolicy', ], ], 'payload' => 'policy', ], 'SetVaultNotificationsInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', ], 'members' => [ 'accountId' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'accountId', ], 'vaultName' => [ 'shape' => 'string', 'location' => 'uri', 'locationName' => 'vaultName', ], 'vaultNotificationConfig' => [ 'shape' => 'VaultNotificationConfig', ], ], 'payload' => 'vaultNotificationConfig', ], 'Size' => [ 'type' => 'long', ], 'StatusCode' => [ 'type' => 'string', 'enum' => [ 'InProgress', 'Succeeded', 'Failed', ], ], 'StorageClass' => [ 'type' => 'string', 'enum' => [ 'STANDARD', 'REDUCED_REDUNDANCY', 'STANDARD_IA', ], ], 'Stream' => [ 'type' => 'blob', 'streaming' => true, ], 'TagKey' => [ 'type' => 'string', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'string', ], ], 'TagMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], ], 'TagValue' => [ 'type' => 'string', ], 'Type' => [ 'type' => 'string', 'enum' => [ 'AmazonCustomerByEmail', 'CanonicalUser', 'Group', ], ], 'UploadArchiveInput' => [ 'type' => 'structure', 'required' => [ 'vaultName', 'accountId', ], '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', ], ], 'payload' => 'body', ], 'UploadListElement' => [ 'type' => 'structure', 'members' => [ 'MultipartUploadId' => [ 'shape' => 'string', ], 'VaultARN' => [ 'shape' => 'string', ], 'ArchiveDescription' => [ 'shape' => 'string', ], 'PartSizeInBytes' => [ 'shape' => 'long', ], 'CreationDate' => [ 'shape' => 'string', ], ], ], 'UploadMultipartPartInput' => [ 'type' => 'structure', 'required' => [ 'accountId', 'vaultName', 'uploadId', ], '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', ], ], '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', ], ], 'VaultLockPolicy' => [ 'type' => 'structure', 'members' => [ 'Policy' => [ 'shape' => 'string', ], ], ], 'VaultNotificationConfig' => [ 'type' => 'structure', 'members' => [ 'SNSTopic' => [ 'shape' => 'string', ], 'Events' => [ 'shape' => 'NotificationEventList', ], ], ], 'boolean' => [ 'type' => 'boolean', ], 'hashmap' => [ 'type' => 'map', 'key' => [ 'shape' => 'string', ], 'value' => [ 'shape' => 'string', ], ], 'httpstatus' => [ 'type' => 'integer', ], 'long' => [ 'type' => 'long', ], 'string' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/glacier/2012-06-01/paginators-1.json.php b/lib/aws/Aws/data/glacier/2012-06-01/paginators-1.json.php new file mode 100644 index 0000000..1d5fd48 --- /dev/null +++ b/lib/aws/Aws/data/glacier/2012-06-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/glacier/2012-06-01/paginators-1.json +return [ 'pagination' => [ 'ListJobs' => [ 'input_token' => 'marker', 'limit_key' => 'limit', 'output_token' => 'Marker', 'result_key' => 'JobList', ], 'ListMultipartUploads' => [ 'input_token' => 'marker', 'limit_key' => 'limit', 'output_token' => 'Marker', 'result_key' => 'UploadsList', ], 'ListParts' => [ 'input_token' => 'marker', 'limit_key' => 'limit', 'output_token' => 'Marker', 'result_key' => 'Parts', ], 'ListVaults' => [ 'input_token' => 'marker', 'limit_key' => 'limit', 'output_token' => 'Marker', 'result_key' => 'VaultList', ], ],]; diff --git a/lib/aws/Aws/data/glacier/2012-06-01/smoke.json.php b/lib/aws/Aws/data/glacier/2012-06-01/smoke.json.php new file mode 100644 index 0000000..273687b --- /dev/null +++ b/lib/aws/Aws/data/glacier/2012-06-01/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/glacier/2012-06-01/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListVaults', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'ListVaults', 'input' => [ 'accountId' => 'abcmnoxyz', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/glacier/2012-06-01/waiters-1.json.php b/lib/aws/Aws/data/glacier/2012-06-01/waiters-1.json.php new file mode 100644 index 0000000..b1c85d7 --- /dev/null +++ b/lib/aws/Aws/data/glacier/2012-06-01/waiters-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/glacier/2012-06-01/waiters-1.json +return [ 'waiters' => [ '__default__' => [ 'interval' => 3, 'max_attempts' => 15, ], '__VaultState' => [ 'operation' => 'DescribeVault', ], 'VaultExists' => [ 'extends' => '__VaultState', 'ignore_errors' => [ 'ResourceNotFoundException', ], 'success_type' => 'output', ], 'VaultNotExists' => [ 'extends' => '__VaultState', 'success_type' => 'error', 'success_value' => 'ResourceNotFoundException', ], ],]; diff --git a/lib/aws/Aws/data/glacier/2012-06-01/waiters-2.json.php b/lib/aws/Aws/data/glacier/2012-06-01/waiters-2.json.php new file mode 100644 index 0000000..47b4d7c --- /dev/null +++ b/lib/aws/Aws/data/glacier/2012-06-01/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/glacier/2012-06-01/waiters-2.json +return [ '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/Aws/data/globalaccelerator/2018-08-08/api-2.json.php b/lib/aws/Aws/data/globalaccelerator/2018-08-08/api-2.json.php new file mode 100644 index 0000000..b08e513 --- /dev/null +++ b/lib/aws/Aws/data/globalaccelerator/2018-08-08/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/globalaccelerator/2018-08-08/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-08-08', 'endpointPrefix' => 'globalaccelerator', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWS Global Accelerator', 'serviceId' => 'Global Accelerator', 'signatureVersion' => 'v4', 'signingName' => 'globalaccelerator', 'targetPrefix' => 'GlobalAccelerator_V20180706', 'uid' => 'globalaccelerator-2018-08-08', ], 'operations' => [ 'CreateAccelerator' => [ 'name' => 'CreateAccelerator', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAcceleratorRequest', ], 'output' => [ 'shape' => 'CreateAcceleratorResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateEndpointGroup' => [ 'name' => 'CreateEndpointGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateEndpointGroupRequest', ], 'output' => [ 'shape' => 'CreateEndpointGroupResponse', ], 'errors' => [ [ 'shape' => 'AcceleratorNotFoundException', ], [ 'shape' => 'EndpointGroupAlreadyExistsException', ], [ 'shape' => 'ListenerNotFoundException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateListener' => [ 'name' => 'CreateListener', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateListenerRequest', ], 'output' => [ 'shape' => 'CreateListenerResponse', ], 'errors' => [ [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'AcceleratorNotFoundException', ], [ 'shape' => 'InvalidPortRangeException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'DeleteAccelerator' => [ 'name' => 'DeleteAccelerator', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAcceleratorRequest', ], 'errors' => [ [ 'shape' => 'AcceleratorNotFoundException', ], [ 'shape' => 'AcceleratorNotDisabledException', ], [ 'shape' => 'AssociatedListenerFoundException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'InvalidArgumentException', ], ], ], 'DeleteEndpointGroup' => [ 'name' => 'DeleteEndpointGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteEndpointGroupRequest', ], 'errors' => [ [ 'shape' => 'EndpointGroupNotFoundException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'DeleteListener' => [ 'name' => 'DeleteListener', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteListenerRequest', ], 'errors' => [ [ 'shape' => 'ListenerNotFoundException', ], [ 'shape' => 'AssociatedEndpointGroupFoundException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'DescribeAccelerator' => [ 'name' => 'DescribeAccelerator', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAcceleratorRequest', ], 'output' => [ 'shape' => 'DescribeAcceleratorResponse', ], 'errors' => [ [ 'shape' => 'AcceleratorNotFoundException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'InvalidArgumentException', ], ], ], 'DescribeAcceleratorAttributes' => [ 'name' => 'DescribeAcceleratorAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAcceleratorAttributesRequest', ], 'output' => [ 'shape' => 'DescribeAcceleratorAttributesResponse', ], 'errors' => [ [ 'shape' => 'AcceleratorNotFoundException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'InvalidArgumentException', ], ], ], 'DescribeEndpointGroup' => [ 'name' => 'DescribeEndpointGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEndpointGroupRequest', ], 'output' => [ 'shape' => 'DescribeEndpointGroupResponse', ], 'errors' => [ [ 'shape' => 'EndpointGroupNotFoundException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'DescribeListener' => [ 'name' => 'DescribeListener', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeListenerRequest', ], 'output' => [ 'shape' => 'DescribeListenerResponse', ], 'errors' => [ [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ListenerNotFoundException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'ListAccelerators' => [ 'name' => 'ListAccelerators', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAcceleratorsRequest', ], 'output' => [ 'shape' => 'ListAcceleratorsResponse', ], 'errors' => [ [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'ListEndpointGroups' => [ 'name' => 'ListEndpointGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListEndpointGroupsRequest', ], 'output' => [ 'shape' => 'ListEndpointGroupsResponse', ], 'errors' => [ [ 'shape' => 'ListenerNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'ListListeners' => [ 'name' => 'ListListeners', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListListenersRequest', ], 'output' => [ 'shape' => 'ListListenersResponse', ], 'errors' => [ [ 'shape' => 'AcceleratorNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'UpdateAccelerator' => [ 'name' => 'UpdateAccelerator', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateAcceleratorRequest', ], 'output' => [ 'shape' => 'UpdateAcceleratorResponse', ], 'errors' => [ [ 'shape' => 'AcceleratorNotFoundException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'InvalidArgumentException', ], ], ], 'UpdateAcceleratorAttributes' => [ 'name' => 'UpdateAcceleratorAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateAcceleratorAttributesRequest', ], 'output' => [ 'shape' => 'UpdateAcceleratorAttributesResponse', ], 'errors' => [ [ 'shape' => 'AcceleratorNotFoundException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'InvalidArgumentException', ], ], ], 'UpdateEndpointGroup' => [ 'name' => 'UpdateEndpointGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateEndpointGroupRequest', ], 'output' => [ 'shape' => 'UpdateEndpointGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'EndpointGroupNotFoundException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'UpdateListener' => [ 'name' => 'UpdateListener', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateListenerRequest', ], 'output' => [ 'shape' => 'UpdateListenerResponse', ], 'errors' => [ [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'InvalidPortRangeException', ], [ 'shape' => 'ListenerNotFoundException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'LimitExceededException', ], ], ], ], 'shapes' => [ 'Accelerator' => [ 'type' => 'structure', 'members' => [ 'AcceleratorArn' => [ 'shape' => 'GenericString', ], 'Name' => [ 'shape' => 'GenericString', ], 'IpAddressType' => [ 'shape' => 'IpAddressType', ], 'Enabled' => [ 'shape' => 'GenericBoolean', ], 'IpSets' => [ 'shape' => 'IpSets', ], 'Status' => [ 'shape' => 'AcceleratorStatus', ], 'CreatedTime' => [ 'shape' => 'Timestamp', ], 'LastModifiedTime' => [ 'shape' => 'Timestamp', ], ], ], 'AcceleratorAttributes' => [ 'type' => 'structure', 'members' => [ 'FlowLogsEnabled' => [ 'shape' => 'GenericBoolean', ], 'FlowLogsS3Bucket' => [ 'shape' => 'GenericString', ], 'FlowLogsS3Prefix' => [ 'shape' => 'GenericString', ], ], ], 'AcceleratorNotDisabledException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'AcceleratorNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'AcceleratorStatus' => [ 'type' => 'string', 'enum' => [ 'DEPLOYED', 'IN_PROGRESS', ], ], 'Accelerators' => [ 'type' => 'list', 'member' => [ 'shape' => 'Accelerator', ], ], 'AssociatedEndpointGroupFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'AssociatedListenerFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ClientAffinity' => [ 'type' => 'string', 'enum' => [ 'NONE', 'SOURCE_IP', ], ], 'CreateAcceleratorRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'IdempotencyToken', ], 'members' => [ 'Name' => [ 'shape' => 'GenericString', ], 'IpAddressType' => [ 'shape' => 'IpAddressType', ], 'Enabled' => [ 'shape' => 'GenericBoolean', ], 'IdempotencyToken' => [ 'shape' => 'IdempotencyToken', ], ], ], 'CreateAcceleratorResponse' => [ 'type' => 'structure', 'members' => [ 'Accelerator' => [ 'shape' => 'Accelerator', ], ], ], 'CreateEndpointGroupRequest' => [ 'type' => 'structure', 'required' => [ 'ListenerArn', 'EndpointGroupRegion', 'IdempotencyToken', ], 'members' => [ 'ListenerArn' => [ 'shape' => 'GenericString', ], 'EndpointGroupRegion' => [ 'shape' => 'GenericString', ], 'EndpointConfigurations' => [ 'shape' => 'EndpointConfigurations', ], 'TrafficDialPercentage' => [ 'shape' => 'TrafficDialPercentage', ], 'HealthCheckPort' => [ 'shape' => 'HealthCheckPort', ], 'HealthCheckProtocol' => [ 'shape' => 'HealthCheckProtocol', ], 'HealthCheckPath' => [ 'shape' => 'GenericString', ], 'HealthCheckIntervalSeconds' => [ 'shape' => 'HealthCheckIntervalSeconds', ], 'ThresholdCount' => [ 'shape' => 'ThresholdCount', ], 'IdempotencyToken' => [ 'shape' => 'IdempotencyToken', ], ], ], 'CreateEndpointGroupResponse' => [ 'type' => 'structure', 'members' => [ 'EndpointGroup' => [ 'shape' => 'EndpointGroup', ], ], ], 'CreateListenerRequest' => [ 'type' => 'structure', 'required' => [ 'AcceleratorArn', 'PortRanges', 'Protocol', 'IdempotencyToken', ], 'members' => [ 'AcceleratorArn' => [ 'shape' => 'GenericString', ], 'PortRanges' => [ 'shape' => 'PortRanges', ], 'Protocol' => [ 'shape' => 'Protocol', ], 'ClientAffinity' => [ 'shape' => 'ClientAffinity', ], 'IdempotencyToken' => [ 'shape' => 'IdempotencyToken', ], ], ], 'CreateListenerResponse' => [ 'type' => 'structure', 'members' => [ 'Listener' => [ 'shape' => 'Listener', ], ], ], 'DeleteAcceleratorRequest' => [ 'type' => 'structure', 'required' => [ 'AcceleratorArn', ], 'members' => [ 'AcceleratorArn' => [ 'shape' => 'GenericString', ], ], ], 'DeleteEndpointGroupRequest' => [ 'type' => 'structure', 'required' => [ 'EndpointGroupArn', ], 'members' => [ 'EndpointGroupArn' => [ 'shape' => 'GenericString', ], ], ], 'DeleteListenerRequest' => [ 'type' => 'structure', 'required' => [ 'ListenerArn', ], 'members' => [ 'ListenerArn' => [ 'shape' => 'GenericString', ], ], ], 'DescribeAcceleratorAttributesRequest' => [ 'type' => 'structure', 'members' => [ 'AcceleratorArn' => [ 'shape' => 'GenericString', ], ], ], 'DescribeAcceleratorAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'AcceleratorAttributes' => [ 'shape' => 'AcceleratorAttributes', ], ], ], 'DescribeAcceleratorRequest' => [ 'type' => 'structure', 'required' => [ 'AcceleratorArn', ], 'members' => [ 'AcceleratorArn' => [ 'shape' => 'GenericString', ], ], ], 'DescribeAcceleratorResponse' => [ 'type' => 'structure', 'members' => [ 'Accelerator' => [ 'shape' => 'Accelerator', ], ], ], 'DescribeEndpointGroupRequest' => [ 'type' => 'structure', 'required' => [ 'EndpointGroupArn', ], 'members' => [ 'EndpointGroupArn' => [ 'shape' => 'GenericString', ], ], ], 'DescribeEndpointGroupResponse' => [ 'type' => 'structure', 'members' => [ 'EndpointGroup' => [ 'shape' => 'EndpointGroup', ], ], ], 'DescribeListenerRequest' => [ 'type' => 'structure', 'required' => [ 'ListenerArn', ], 'members' => [ 'ListenerArn' => [ 'shape' => 'GenericString', ], ], ], 'DescribeListenerResponse' => [ 'type' => 'structure', 'members' => [ 'Listener' => [ 'shape' => 'Listener', ], ], ], 'EndpointConfiguration' => [ 'type' => 'structure', 'members' => [ 'EndpointId' => [ 'shape' => 'GenericString', ], 'Weight' => [ 'shape' => 'EndpointWeight', ], ], ], 'EndpointConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'EndpointConfiguration', ], 'max' => 10, 'min' => 0, ], 'EndpointDescription' => [ 'type' => 'structure', 'members' => [ 'EndpointId' => [ 'shape' => 'GenericString', ], 'Weight' => [ 'shape' => 'EndpointWeight', ], 'HealthState' => [ 'shape' => 'HealthState', ], 'HealthReason' => [ 'shape' => 'GenericString', ], ], ], 'EndpointDescriptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'EndpointDescription', ], ], 'EndpointGroup' => [ 'type' => 'structure', 'members' => [ 'EndpointGroupArn' => [ 'shape' => 'GenericString', ], 'EndpointGroupRegion' => [ 'shape' => 'GenericString', ], 'EndpointDescriptions' => [ 'shape' => 'EndpointDescriptions', ], 'TrafficDialPercentage' => [ 'shape' => 'TrafficDialPercentage', ], 'HealthCheckPort' => [ 'shape' => 'HealthCheckPort', ], 'HealthCheckProtocol' => [ 'shape' => 'HealthCheckProtocol', ], 'HealthCheckPath' => [ 'shape' => 'GenericString', ], 'HealthCheckIntervalSeconds' => [ 'shape' => 'HealthCheckIntervalSeconds', ], 'ThresholdCount' => [ 'shape' => 'ThresholdCount', ], ], ], 'EndpointGroupAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'EndpointGroupNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'EndpointGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'EndpointGroup', ], ], 'EndpointWeight' => [ 'type' => 'integer', 'max' => 255, 'min' => 0, ], 'ErrorMessage' => [ 'type' => 'string', ], 'GenericBoolean' => [ 'type' => 'boolean', ], 'GenericString' => [ 'type' => 'string', 'max' => 255, ], 'HealthCheckIntervalSeconds' => [ 'type' => 'integer', 'max' => 30, 'min' => 10, ], 'HealthCheckPort' => [ 'type' => 'integer', 'max' => 65535, 'min' => 1, ], 'HealthCheckProtocol' => [ 'type' => 'string', 'enum' => [ 'TCP', 'HTTP', 'HTTPS', ], ], 'HealthState' => [ 'type' => 'string', 'enum' => [ 'INITIAL', 'HEALTHY', 'UNHEALTHY', ], ], 'IdempotencyToken' => [ 'type' => 'string', 'max' => 255, ], 'InternalServiceErrorException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidArgumentException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidPortRangeException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'IpAddress' => [ 'type' => 'string', ], 'IpAddressType' => [ 'type' => 'string', 'enum' => [ 'IPV4', ], ], 'IpAddresses' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpAddress', ], 'max' => 2, 'min' => 0, ], 'IpSet' => [ 'type' => 'structure', 'members' => [ 'IpFamily' => [ 'shape' => 'GenericString', ], 'IpAddresses' => [ 'shape' => 'IpAddresses', ], ], ], 'IpSets' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpSet', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ListAcceleratorsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'ListAcceleratorsResponse' => [ 'type' => 'structure', 'members' => [ 'Accelerators' => [ 'shape' => 'Accelerators', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'ListEndpointGroupsRequest' => [ 'type' => 'structure', 'required' => [ 'ListenerArn', ], 'members' => [ 'ListenerArn' => [ 'shape' => 'GenericString', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'ListEndpointGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'EndpointGroups' => [ 'shape' => 'EndpointGroups', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'ListListenersRequest' => [ 'type' => 'structure', 'required' => [ 'AcceleratorArn', ], 'members' => [ 'AcceleratorArn' => [ 'shape' => 'GenericString', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'ListListenersResponse' => [ 'type' => 'structure', 'members' => [ 'Listeners' => [ 'shape' => 'Listeners', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'Listener' => [ 'type' => 'structure', 'members' => [ 'ListenerArn' => [ 'shape' => 'GenericString', ], 'PortRanges' => [ 'shape' => 'PortRanges', ], 'Protocol' => [ 'shape' => 'Protocol', ], 'ClientAffinity' => [ 'shape' => 'ClientAffinity', ], ], ], 'ListenerNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'Listeners' => [ 'type' => 'list', 'member' => [ 'shape' => 'Listener', ], ], 'MaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'PortNumber' => [ 'type' => 'integer', 'max' => 65535, 'min' => 1, ], 'PortRange' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'PortNumber', ], 'ToPort' => [ 'shape' => 'PortNumber', ], ], ], 'PortRanges' => [ 'type' => 'list', 'member' => [ 'shape' => 'PortRange', ], 'max' => 10, 'min' => 1, ], 'Protocol' => [ 'type' => 'string', 'enum' => [ 'TCP', 'UDP', ], ], 'ThresholdCount' => [ 'type' => 'integer', 'max' => 10, 'min' => 1, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TrafficDialPercentage' => [ 'type' => 'float', 'max' => 100, 'min' => 0, ], 'UpdateAcceleratorAttributesRequest' => [ 'type' => 'structure', 'members' => [ 'AcceleratorArn' => [ 'shape' => 'GenericString', ], 'FlowLogsEnabled' => [ 'shape' => 'GenericBoolean', ], 'FlowLogsS3Bucket' => [ 'shape' => 'GenericString', ], 'FlowLogsS3Prefix' => [ 'shape' => 'GenericString', ], ], ], 'UpdateAcceleratorAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'AcceleratorAttributes' => [ 'shape' => 'AcceleratorAttributes', ], ], ], 'UpdateAcceleratorRequest' => [ 'type' => 'structure', 'required' => [ 'AcceleratorArn', ], 'members' => [ 'AcceleratorArn' => [ 'shape' => 'GenericString', ], 'Name' => [ 'shape' => 'GenericString', ], 'IpAddressType' => [ 'shape' => 'IpAddressType', ], 'Enabled' => [ 'shape' => 'GenericBoolean', ], ], ], 'UpdateAcceleratorResponse' => [ 'type' => 'structure', 'members' => [ 'Accelerator' => [ 'shape' => 'Accelerator', ], ], ], 'UpdateEndpointGroupRequest' => [ 'type' => 'structure', 'required' => [ 'EndpointGroupArn', ], 'members' => [ 'EndpointGroupArn' => [ 'shape' => 'GenericString', ], 'EndpointConfigurations' => [ 'shape' => 'EndpointConfigurations', ], 'TrafficDialPercentage' => [ 'shape' => 'TrafficDialPercentage', ], 'HealthCheckPort' => [ 'shape' => 'HealthCheckPort', ], 'HealthCheckProtocol' => [ 'shape' => 'HealthCheckProtocol', ], 'HealthCheckPath' => [ 'shape' => 'GenericString', ], 'HealthCheckIntervalSeconds' => [ 'shape' => 'HealthCheckIntervalSeconds', ], 'ThresholdCount' => [ 'shape' => 'ThresholdCount', ], ], ], 'UpdateEndpointGroupResponse' => [ 'type' => 'structure', 'members' => [ 'EndpointGroup' => [ 'shape' => 'EndpointGroup', ], ], ], 'UpdateListenerRequest' => [ 'type' => 'structure', 'required' => [ 'ListenerArn', ], 'members' => [ 'ListenerArn' => [ 'shape' => 'GenericString', ], 'PortRanges' => [ 'shape' => 'PortRanges', ], 'Protocol' => [ 'shape' => 'Protocol', ], 'ClientAffinity' => [ 'shape' => 'ClientAffinity', ], ], ], 'UpdateListenerResponse' => [ 'type' => 'structure', 'members' => [ 'Listener' => [ 'shape' => 'Listener', ], ], ], ],]; diff --git a/lib/aws/Aws/data/globalaccelerator/2018-08-08/paginators-1.json.php b/lib/aws/Aws/data/globalaccelerator/2018-08-08/paginators-1.json.php new file mode 100644 index 0000000..241b3de --- /dev/null +++ b/lib/aws/Aws/data/globalaccelerator/2018-08-08/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/globalaccelerator/2018-08-08/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/glue/2017-03-31/api-2.json.php b/lib/aws/Aws/data/glue/2017-03-31/api-2.json.php new file mode 100644 index 0000000..b97f53a --- /dev/null +++ b/lib/aws/Aws/data/glue/2017-03-31/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/glue/2017-03-31/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-03-31', 'endpointPrefix' => 'glue', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWS Glue', 'serviceId' => 'Glue', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWSGlue', 'uid' => 'glue-2017-03-31', ], 'operations' => [ 'BatchCreatePartition' => [ 'name' => 'BatchCreatePartition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchCreatePartitionRequest', ], 'output' => [ 'shape' => 'BatchCreatePartitionResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'ResourceNumberLimitExceededException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'BatchDeleteConnection' => [ 'name' => 'BatchDeleteConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchDeleteConnectionRequest', ], 'output' => [ 'shape' => 'BatchDeleteConnectionResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'BatchDeletePartition' => [ 'name' => 'BatchDeletePartition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchDeletePartitionRequest', ], 'output' => [ 'shape' => 'BatchDeletePartitionResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'BatchDeleteTable' => [ 'name' => 'BatchDeleteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchDeleteTableRequest', ], 'output' => [ 'shape' => 'BatchDeleteTableResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'BatchDeleteTableVersion' => [ 'name' => 'BatchDeleteTableVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchDeleteTableVersionRequest', ], 'output' => [ 'shape' => 'BatchDeleteTableVersionResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'BatchGetCrawlers' => [ 'name' => 'BatchGetCrawlers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetCrawlersRequest', ], 'output' => [ 'shape' => 'BatchGetCrawlersResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'BatchGetDevEndpoints' => [ 'name' => 'BatchGetDevEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetDevEndpointsRequest', ], 'output' => [ 'shape' => 'BatchGetDevEndpointsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'BatchGetJobs' => [ 'name' => 'BatchGetJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetJobsRequest', ], 'output' => [ 'shape' => 'BatchGetJobsResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'BatchGetPartition' => [ 'name' => 'BatchGetPartition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetPartitionRequest', ], 'output' => [ 'shape' => 'BatchGetPartitionResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'BatchGetTriggers' => [ 'name' => 'BatchGetTriggers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchGetTriggersRequest', ], 'output' => [ 'shape' => 'BatchGetTriggersResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'BatchStopJobRun' => [ 'name' => 'BatchStopJobRun', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchStopJobRunRequest', ], 'output' => [ 'shape' => 'BatchStopJobRunResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'CreateClassifier' => [ 'name' => 'CreateClassifier', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateClassifierRequest', ], 'output' => [ 'shape' => 'CreateClassifierResponse', ], 'errors' => [ [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'CreateConnection' => [ 'name' => 'CreateConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateConnectionRequest', ], 'output' => [ 'shape' => 'CreateConnectionResponse', ], 'errors' => [ [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'ResourceNumberLimitExceededException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'CreateCrawler' => [ 'name' => 'CreateCrawler', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCrawlerRequest', ], 'output' => [ 'shape' => 'CreateCrawlerResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'ResourceNumberLimitExceededException', ], ], ], 'CreateDatabase' => [ 'name' => 'CreateDatabase', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDatabaseRequest', ], 'output' => [ 'shape' => 'CreateDatabaseResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'ResourceNumberLimitExceededException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'CreateDevEndpoint' => [ 'name' => 'CreateDevEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDevEndpointRequest', ], 'output' => [ 'shape' => 'CreateDevEndpointResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'IdempotentParameterMismatchException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNumberLimitExceededException', ], ], ], 'CreateJob' => [ 'name' => 'CreateJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateJobRequest', ], 'output' => [ 'shape' => 'CreateJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'IdempotentParameterMismatchException', ], [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'ResourceNumberLimitExceededException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'CreatePartition' => [ 'name' => 'CreatePartition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePartitionRequest', ], 'output' => [ 'shape' => 'CreatePartitionResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'ResourceNumberLimitExceededException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'CreateScript' => [ 'name' => 'CreateScript', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateScriptRequest', ], 'output' => [ 'shape' => 'CreateScriptResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'CreateSecurityConfiguration' => [ 'name' => 'CreateSecurityConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSecurityConfigurationRequest', ], 'output' => [ 'shape' => 'CreateSecurityConfigurationResponse', ], 'errors' => [ [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'ResourceNumberLimitExceededException', ], ], ], 'CreateTable' => [ 'name' => 'CreateTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTableRequest', ], 'output' => [ 'shape' => 'CreateTableResponse', ], 'errors' => [ [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'ResourceNumberLimitExceededException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'CreateTrigger' => [ 'name' => 'CreateTrigger', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTriggerRequest', ], 'output' => [ 'shape' => 'CreateTriggerResponse', ], 'errors' => [ [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'IdempotentParameterMismatchException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'ResourceNumberLimitExceededException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'CreateUserDefinedFunction' => [ 'name' => 'CreateUserDefinedFunction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateUserDefinedFunctionRequest', ], 'output' => [ 'shape' => 'CreateUserDefinedFunctionResponse', ], 'errors' => [ [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'ResourceNumberLimitExceededException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'DeleteClassifier' => [ 'name' => 'DeleteClassifier', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteClassifierRequest', ], 'output' => [ 'shape' => 'DeleteClassifierResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'DeleteConnection' => [ 'name' => 'DeleteConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteConnectionRequest', ], 'output' => [ 'shape' => 'DeleteConnectionResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'DeleteCrawler' => [ 'name' => 'DeleteCrawler', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCrawlerRequest', ], 'output' => [ 'shape' => 'DeleteCrawlerResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'CrawlerRunningException', ], [ 'shape' => 'SchedulerTransitioningException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'DeleteDatabase' => [ 'name' => 'DeleteDatabase', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDatabaseRequest', ], 'output' => [ 'shape' => 'DeleteDatabaseResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'DeleteDevEndpoint' => [ 'name' => 'DeleteDevEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDevEndpointRequest', ], 'output' => [ 'shape' => 'DeleteDevEndpointResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'DeleteJob' => [ 'name' => 'DeleteJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteJobRequest', ], 'output' => [ 'shape' => 'DeleteJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'DeletePartition' => [ 'name' => 'DeletePartition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePartitionRequest', ], 'output' => [ 'shape' => 'DeletePartitionResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'DeleteResourcePolicy' => [ 'name' => 'DeleteResourcePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteResourcePolicyRequest', ], 'output' => [ 'shape' => 'DeleteResourcePolicyResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ConditionCheckFailureException', ], ], ], 'DeleteSecurityConfiguration' => [ 'name' => 'DeleteSecurityConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSecurityConfigurationRequest', ], 'output' => [ 'shape' => 'DeleteSecurityConfigurationResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'DeleteTable' => [ 'name' => 'DeleteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTableRequest', ], 'output' => [ 'shape' => 'DeleteTableResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'DeleteTableVersion' => [ 'name' => 'DeleteTableVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTableVersionRequest', ], 'output' => [ 'shape' => 'DeleteTableVersionResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'DeleteTrigger' => [ 'name' => 'DeleteTrigger', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTriggerRequest', ], 'output' => [ 'shape' => 'DeleteTriggerResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'DeleteUserDefinedFunction' => [ 'name' => 'DeleteUserDefinedFunction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteUserDefinedFunctionRequest', ], 'output' => [ 'shape' => 'DeleteUserDefinedFunctionResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'GetCatalogImportStatus' => [ 'name' => 'GetCatalogImportStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCatalogImportStatusRequest', ], 'output' => [ 'shape' => 'GetCatalogImportStatusResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'GetClassifier' => [ 'name' => 'GetClassifier', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetClassifierRequest', ], 'output' => [ 'shape' => 'GetClassifierResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'GetClassifiers' => [ 'name' => 'GetClassifiers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetClassifiersRequest', ], 'output' => [ 'shape' => 'GetClassifiersResponse', ], 'errors' => [ [ 'shape' => 'OperationTimeoutException', ], ], ], 'GetConnection' => [ 'name' => 'GetConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetConnectionRequest', ], 'output' => [ 'shape' => 'GetConnectionResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'GetConnections' => [ 'name' => 'GetConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetConnectionsRequest', ], 'output' => [ 'shape' => 'GetConnectionsResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'GetCrawler' => [ 'name' => 'GetCrawler', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCrawlerRequest', ], 'output' => [ 'shape' => 'GetCrawlerResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'GetCrawlerMetrics' => [ 'name' => 'GetCrawlerMetrics', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCrawlerMetricsRequest', ], 'output' => [ 'shape' => 'GetCrawlerMetricsResponse', ], 'errors' => [ [ 'shape' => 'OperationTimeoutException', ], ], ], 'GetCrawlers' => [ 'name' => 'GetCrawlers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCrawlersRequest', ], 'output' => [ 'shape' => 'GetCrawlersResponse', ], 'errors' => [ [ 'shape' => 'OperationTimeoutException', ], ], ], 'GetDataCatalogEncryptionSettings' => [ 'name' => 'GetDataCatalogEncryptionSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDataCatalogEncryptionSettingsRequest', ], 'output' => [ 'shape' => 'GetDataCatalogEncryptionSettingsResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'GetDatabase' => [ 'name' => 'GetDatabase', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDatabaseRequest', ], 'output' => [ 'shape' => 'GetDatabaseResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'GetDatabases' => [ 'name' => 'GetDatabases', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDatabasesRequest', ], 'output' => [ 'shape' => 'GetDatabasesResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'GetDataflowGraph' => [ 'name' => 'GetDataflowGraph', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDataflowGraphRequest', ], 'output' => [ 'shape' => 'GetDataflowGraphResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'GetDevEndpoint' => [ 'name' => 'GetDevEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDevEndpointRequest', ], 'output' => [ 'shape' => 'GetDevEndpointResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'GetDevEndpoints' => [ 'name' => 'GetDevEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDevEndpointsRequest', ], 'output' => [ 'shape' => 'GetDevEndpointsResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'GetJob' => [ 'name' => 'GetJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetJobRequest', ], 'output' => [ 'shape' => 'GetJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'GetJobRun' => [ 'name' => 'GetJobRun', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetJobRunRequest', ], 'output' => [ 'shape' => 'GetJobRunResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'GetJobRuns' => [ 'name' => 'GetJobRuns', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetJobRunsRequest', ], 'output' => [ 'shape' => 'GetJobRunsResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'GetJobs' => [ 'name' => 'GetJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetJobsRequest', ], 'output' => [ 'shape' => 'GetJobsResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'GetMapping' => [ 'name' => 'GetMapping', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetMappingRequest', ], 'output' => [ 'shape' => 'GetMappingResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'EntityNotFoundException', ], ], ], 'GetPartition' => [ 'name' => 'GetPartition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPartitionRequest', ], 'output' => [ 'shape' => 'GetPartitionResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'GetPartitions' => [ 'name' => 'GetPartitions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPartitionsRequest', ], 'output' => [ 'shape' => 'GetPartitionsResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'GetPlan' => [ 'name' => 'GetPlan', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPlanRequest', ], 'output' => [ 'shape' => 'GetPlanResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'GetResourcePolicy' => [ 'name' => 'GetResourcePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetResourcePolicyRequest', ], 'output' => [ 'shape' => 'GetResourcePolicyResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'GetSecurityConfiguration' => [ 'name' => 'GetSecurityConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSecurityConfigurationRequest', ], 'output' => [ 'shape' => 'GetSecurityConfigurationResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'GetSecurityConfigurations' => [ 'name' => 'GetSecurityConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSecurityConfigurationsRequest', ], 'output' => [ 'shape' => 'GetSecurityConfigurationsResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'GetTable' => [ 'name' => 'GetTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTableRequest', ], 'output' => [ 'shape' => 'GetTableResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'GetTableVersion' => [ 'name' => 'GetTableVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTableVersionRequest', ], 'output' => [ 'shape' => 'GetTableVersionResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'GetTableVersions' => [ 'name' => 'GetTableVersions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTableVersionsRequest', ], 'output' => [ 'shape' => 'GetTableVersionsResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'GetTables' => [ 'name' => 'GetTables', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTablesRequest', ], 'output' => [ 'shape' => 'GetTablesResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'GetTags' => [ 'name' => 'GetTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTagsRequest', ], 'output' => [ 'shape' => 'GetTagsResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'EntityNotFoundException', ], ], ], 'GetTrigger' => [ 'name' => 'GetTrigger', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTriggerRequest', ], 'output' => [ 'shape' => 'GetTriggerResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'GetTriggers' => [ 'name' => 'GetTriggers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTriggersRequest', ], 'output' => [ 'shape' => 'GetTriggersResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'GetUserDefinedFunction' => [ 'name' => 'GetUserDefinedFunction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetUserDefinedFunctionRequest', ], 'output' => [ 'shape' => 'GetUserDefinedFunctionResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'GetUserDefinedFunctions' => [ 'name' => 'GetUserDefinedFunctions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetUserDefinedFunctionsRequest', ], 'output' => [ 'shape' => 'GetUserDefinedFunctionsResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'ImportCatalogToGlue' => [ 'name' => 'ImportCatalogToGlue', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportCatalogToGlueRequest', ], 'output' => [ 'shape' => 'ImportCatalogToGlueResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'ListCrawlers' => [ 'name' => 'ListCrawlers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListCrawlersRequest', ], 'output' => [ 'shape' => 'ListCrawlersResponse', ], 'errors' => [ [ 'shape' => 'OperationTimeoutException', ], ], ], 'ListDevEndpoints' => [ 'name' => 'ListDevEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDevEndpointsRequest', ], 'output' => [ 'shape' => 'ListDevEndpointsResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'ListJobs' => [ 'name' => 'ListJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListJobsRequest', ], 'output' => [ 'shape' => 'ListJobsResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'ListTriggers' => [ 'name' => 'ListTriggers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTriggersRequest', ], 'output' => [ 'shape' => 'ListTriggersResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'PutDataCatalogEncryptionSettings' => [ 'name' => 'PutDataCatalogEncryptionSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutDataCatalogEncryptionSettingsRequest', ], 'output' => [ 'shape' => 'PutDataCatalogEncryptionSettingsResponse', ], 'errors' => [ [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'PutResourcePolicy' => [ 'name' => 'PutResourcePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutResourcePolicyRequest', ], 'output' => [ 'shape' => 'PutResourcePolicyResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ConditionCheckFailureException', ], ], ], 'ResetJobBookmark' => [ 'name' => 'ResetJobBookmark', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetJobBookmarkRequest', ], 'output' => [ 'shape' => 'ResetJobBookmarkResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'StartCrawler' => [ 'name' => 'StartCrawler', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartCrawlerRequest', ], 'output' => [ 'shape' => 'StartCrawlerResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'CrawlerRunningException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'StartCrawlerSchedule' => [ 'name' => 'StartCrawlerSchedule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartCrawlerScheduleRequest', ], 'output' => [ 'shape' => 'StartCrawlerScheduleResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'SchedulerRunningException', ], [ 'shape' => 'SchedulerTransitioningException', ], [ 'shape' => 'NoScheduleException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'StartJobRun' => [ 'name' => 'StartJobRun', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartJobRunRequest', ], 'output' => [ 'shape' => 'StartJobRunResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'ResourceNumberLimitExceededException', ], [ 'shape' => 'ConcurrentRunsExceededException', ], ], ], 'StartTrigger' => [ 'name' => 'StartTrigger', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartTriggerRequest', ], 'output' => [ 'shape' => 'StartTriggerResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'ResourceNumberLimitExceededException', ], [ 'shape' => 'ConcurrentRunsExceededException', ], ], ], 'StopCrawler' => [ 'name' => 'StopCrawler', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopCrawlerRequest', ], 'output' => [ 'shape' => 'StopCrawlerResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'CrawlerNotRunningException', ], [ 'shape' => 'CrawlerStoppingException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'StopCrawlerSchedule' => [ 'name' => 'StopCrawlerSchedule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopCrawlerScheduleRequest', ], 'output' => [ 'shape' => 'StopCrawlerScheduleResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'SchedulerNotRunningException', ], [ 'shape' => 'SchedulerTransitioningException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'StopTrigger' => [ 'name' => 'StopTrigger', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopTriggerRequest', ], 'output' => [ 'shape' => 'StopTriggerResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'EntityNotFoundException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'EntityNotFoundException', ], ], ], 'UpdateClassifier' => [ 'name' => 'UpdateClassifier', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateClassifierRequest', ], 'output' => [ 'shape' => 'UpdateClassifierResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'VersionMismatchException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'UpdateConnection' => [ 'name' => 'UpdateConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateConnectionRequest', ], 'output' => [ 'shape' => 'UpdateConnectionResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'UpdateCrawler' => [ 'name' => 'UpdateCrawler', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateCrawlerRequest', ], 'output' => [ 'shape' => 'UpdateCrawlerResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'VersionMismatchException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'CrawlerRunningException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'UpdateCrawlerSchedule' => [ 'name' => 'UpdateCrawlerSchedule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateCrawlerScheduleRequest', ], 'output' => [ 'shape' => 'UpdateCrawlerScheduleResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'VersionMismatchException', ], [ 'shape' => 'SchedulerTransitioningException', ], [ 'shape' => 'OperationTimeoutException', ], ], ], 'UpdateDatabase' => [ 'name' => 'UpdateDatabase', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateDatabaseRequest', ], 'output' => [ 'shape' => 'UpdateDatabaseResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'UpdateDevEndpoint' => [ 'name' => 'UpdateDevEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateDevEndpointRequest', ], 'output' => [ 'shape' => 'UpdateDevEndpointResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ValidationException', ], ], ], 'UpdateJob' => [ 'name' => 'UpdateJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateJobRequest', ], 'output' => [ 'shape' => 'UpdateJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'UpdatePartition' => [ 'name' => 'UpdatePartition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdatePartitionRequest', ], 'output' => [ 'shape' => 'UpdatePartitionResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'UpdateTable' => [ 'name' => 'UpdateTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateTableRequest', ], 'output' => [ 'shape' => 'UpdateTableResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ResourceNumberLimitExceededException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], 'UpdateTrigger' => [ 'name' => 'UpdateTrigger', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateTriggerRequest', ], 'output' => [ 'shape' => 'UpdateTriggerResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'UpdateUserDefinedFunction' => [ 'name' => 'UpdateUserDefinedFunction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateUserDefinedFunctionRequest', ], 'output' => [ 'shape' => 'UpdateUserDefinedFunctionResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'OperationTimeoutException', ], [ 'shape' => 'GlueEncryptionException', ], ], ], ], 'shapes' => [ 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, ], 'Action' => [ 'type' => 'structure', 'members' => [ 'JobName' => [ 'shape' => 'NameString', ], 'Arguments' => [ 'shape' => 'GenericMap', ], 'Timeout' => [ 'shape' => 'Timeout', ], 'NotificationProperty' => [ 'shape' => 'NotificationProperty', ], 'SecurityConfiguration' => [ 'shape' => 'NameString', ], ], ], 'ActionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Action', ], ], 'AlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, ], 'AttemptCount' => [ 'type' => 'integer', ], 'BatchCreatePartitionRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'TableName', 'PartitionInputList', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'TableName' => [ 'shape' => 'NameString', ], 'PartitionInputList' => [ 'shape' => 'PartitionInputList', ], ], ], 'BatchCreatePartitionResponse' => [ 'type' => 'structure', 'members' => [ 'Errors' => [ 'shape' => 'PartitionErrors', ], ], ], 'BatchDeleteConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'ConnectionNameList', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'ConnectionNameList' => [ 'shape' => 'DeleteConnectionNameList', ], ], ], 'BatchDeleteConnectionResponse' => [ 'type' => 'structure', 'members' => [ 'Succeeded' => [ 'shape' => 'NameStringList', ], 'Errors' => [ 'shape' => 'ErrorByName', ], ], ], 'BatchDeletePartitionRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'TableName', 'PartitionsToDelete', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'TableName' => [ 'shape' => 'NameString', ], 'PartitionsToDelete' => [ 'shape' => 'BatchDeletePartitionValueList', ], ], ], 'BatchDeletePartitionResponse' => [ 'type' => 'structure', 'members' => [ 'Errors' => [ 'shape' => 'PartitionErrors', ], ], ], 'BatchDeletePartitionValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PartitionValueList', ], 'max' => 25, 'min' => 0, ], 'BatchDeleteTableNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NameString', ], 'max' => 100, 'min' => 0, ], 'BatchDeleteTableRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'TablesToDelete', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'TablesToDelete' => [ 'shape' => 'BatchDeleteTableNameList', ], ], ], 'BatchDeleteTableResponse' => [ 'type' => 'structure', 'members' => [ 'Errors' => [ 'shape' => 'TableErrors', ], ], ], 'BatchDeleteTableVersionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VersionString', ], 'max' => 100, 'min' => 0, ], 'BatchDeleteTableVersionRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'TableName', 'VersionIds', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'TableName' => [ 'shape' => 'NameString', ], 'VersionIds' => [ 'shape' => 'BatchDeleteTableVersionList', ], ], ], 'BatchDeleteTableVersionResponse' => [ 'type' => 'structure', 'members' => [ 'Errors' => [ 'shape' => 'TableVersionErrors', ], ], ], 'BatchGetCrawlersRequest' => [ 'type' => 'structure', 'required' => [ 'CrawlerNames', ], 'members' => [ 'CrawlerNames' => [ 'shape' => 'CrawlerNameList', ], ], ], 'BatchGetCrawlersResponse' => [ 'type' => 'structure', 'members' => [ 'Crawlers' => [ 'shape' => 'CrawlerList', ], 'CrawlersNotFound' => [ 'shape' => 'CrawlerNameList', ], ], ], 'BatchGetDevEndpointsRequest' => [ 'type' => 'structure', 'required' => [ 'DevEndpointNames', ], 'members' => [ 'DevEndpointNames' => [ 'shape' => 'DevEndpointNames', ], ], ], 'BatchGetDevEndpointsResponse' => [ 'type' => 'structure', 'members' => [ 'DevEndpoints' => [ 'shape' => 'DevEndpointList', ], 'DevEndpointsNotFound' => [ 'shape' => 'DevEndpointNames', ], ], ], 'BatchGetJobsRequest' => [ 'type' => 'structure', 'required' => [ 'JobNames', ], 'members' => [ 'JobNames' => [ 'shape' => 'JobNameList', ], ], ], 'BatchGetJobsResponse' => [ 'type' => 'structure', 'members' => [ 'Jobs' => [ 'shape' => 'JobList', ], 'JobsNotFound' => [ 'shape' => 'JobNameList', ], ], ], 'BatchGetPartitionRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'TableName', 'PartitionsToGet', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'TableName' => [ 'shape' => 'NameString', ], 'PartitionsToGet' => [ 'shape' => 'BatchGetPartitionValueList', ], ], ], 'BatchGetPartitionResponse' => [ 'type' => 'structure', 'members' => [ 'Partitions' => [ 'shape' => 'PartitionList', ], 'UnprocessedKeys' => [ 'shape' => 'BatchGetPartitionValueList', ], ], ], 'BatchGetPartitionValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PartitionValueList', ], 'max' => 1000, 'min' => 0, ], 'BatchGetTriggersRequest' => [ 'type' => 'structure', 'required' => [ 'TriggerNames', ], 'members' => [ 'TriggerNames' => [ 'shape' => 'TriggerNameList', ], ], ], 'BatchGetTriggersResponse' => [ 'type' => 'structure', 'members' => [ 'Triggers' => [ 'shape' => 'TriggerList', ], 'TriggersNotFound' => [ 'shape' => 'TriggerNameList', ], ], ], 'BatchStopJobRunError' => [ 'type' => 'structure', 'members' => [ 'JobName' => [ 'shape' => 'NameString', ], 'JobRunId' => [ 'shape' => 'IdString', ], 'ErrorDetail' => [ 'shape' => 'ErrorDetail', ], ], ], 'BatchStopJobRunErrorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BatchStopJobRunError', ], ], 'BatchStopJobRunJobRunIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IdString', ], 'max' => 25, 'min' => 1, ], 'BatchStopJobRunRequest' => [ 'type' => 'structure', 'required' => [ 'JobName', 'JobRunIds', ], 'members' => [ 'JobName' => [ 'shape' => 'NameString', ], 'JobRunIds' => [ 'shape' => 'BatchStopJobRunJobRunIdList', ], ], ], 'BatchStopJobRunResponse' => [ 'type' => 'structure', 'members' => [ 'SuccessfulSubmissions' => [ 'shape' => 'BatchStopJobRunSuccessfulSubmissionList', ], 'Errors' => [ 'shape' => 'BatchStopJobRunErrorList', ], ], ], 'BatchStopJobRunSuccessfulSubmission' => [ 'type' => 'structure', 'members' => [ 'JobName' => [ 'shape' => 'NameString', ], 'JobRunId' => [ 'shape' => 'IdString', ], ], ], 'BatchStopJobRunSuccessfulSubmissionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BatchStopJobRunSuccessfulSubmission', ], ], 'Boolean' => [ 'type' => 'boolean', ], 'BooleanNullable' => [ 'type' => 'boolean', ], 'BooleanValue' => [ 'type' => 'boolean', ], 'BoundedPartitionValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ValueString', ], 'max' => 100, 'min' => 0, ], 'CatalogEncryptionMode' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'SSE-KMS', ], ], 'CatalogEntries' => [ 'type' => 'list', 'member' => [ 'shape' => 'CatalogEntry', ], ], 'CatalogEntry' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'TableName', ], 'members' => [ 'DatabaseName' => [ 'shape' => 'NameString', ], 'TableName' => [ 'shape' => 'NameString', ], ], ], 'CatalogIdString' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*', ], 'CatalogImportStatus' => [ 'type' => 'structure', 'members' => [ 'ImportCompleted' => [ 'shape' => 'Boolean', ], 'ImportTime' => [ 'shape' => 'Timestamp', ], 'ImportedBy' => [ 'shape' => 'NameString', ], ], ], 'Classification' => [ 'type' => 'string', ], 'Classifier' => [ 'type' => 'structure', 'members' => [ 'GrokClassifier' => [ 'shape' => 'GrokClassifier', ], 'XMLClassifier' => [ 'shape' => 'XMLClassifier', ], 'JsonClassifier' => [ 'shape' => 'JsonClassifier', ], 'CsvClassifier' => [ 'shape' => 'CsvClassifier', ], ], ], 'ClassifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Classifier', ], ], 'ClassifierNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NameString', ], ], 'CloudWatchEncryption' => [ 'type' => 'structure', 'members' => [ 'CloudWatchEncryptionMode' => [ 'shape' => 'CloudWatchEncryptionMode', ], 'KmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'CloudWatchEncryptionMode' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'SSE-KMS', ], ], 'CodeGenArgName' => [ 'type' => 'string', ], 'CodeGenArgValue' => [ 'type' => 'string', ], 'CodeGenEdge' => [ 'type' => 'structure', 'required' => [ 'Source', 'Target', ], 'members' => [ 'Source' => [ 'shape' => 'CodeGenIdentifier', ], 'Target' => [ 'shape' => 'CodeGenIdentifier', ], 'TargetParameter' => [ 'shape' => 'CodeGenArgName', ], ], ], 'CodeGenIdentifier' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[A-Za-z_][A-Za-z0-9_]*', ], 'CodeGenNode' => [ 'type' => 'structure', 'required' => [ 'Id', 'NodeType', 'Args', ], 'members' => [ 'Id' => [ 'shape' => 'CodeGenIdentifier', ], 'NodeType' => [ 'shape' => 'CodeGenNodeType', ], 'Args' => [ 'shape' => 'CodeGenNodeArgs', ], 'LineNumber' => [ 'shape' => 'Integer', ], ], ], 'CodeGenNodeArg' => [ 'type' => 'structure', 'required' => [ 'Name', 'Value', ], 'members' => [ 'Name' => [ 'shape' => 'CodeGenArgName', ], 'Value' => [ 'shape' => 'CodeGenArgValue', ], 'Param' => [ 'shape' => 'Boolean', ], ], ], 'CodeGenNodeArgs' => [ 'type' => 'list', 'member' => [ 'shape' => 'CodeGenNodeArg', ], 'max' => 50, 'min' => 0, ], 'CodeGenNodeType' => [ 'type' => 'string', ], 'Column' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Type' => [ 'shape' => 'ColumnTypeString', ], 'Comment' => [ 'shape' => 'CommentString', ], ], ], 'ColumnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Column', ], ], 'ColumnTypeString' => [ 'type' => 'string', 'max' => 131072, 'min' => 0, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*', ], 'ColumnValueStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ColumnValuesString', ], ], 'ColumnValuesString' => [ 'type' => 'string', ], 'CommentString' => [ 'type' => 'string', 'max' => 255, 'min' => 0, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*', ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, ], 'ConcurrentRunsExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, ], 'Condition' => [ 'type' => 'structure', 'members' => [ 'LogicalOperator' => [ 'shape' => 'LogicalOperator', ], 'JobName' => [ 'shape' => 'NameString', ], 'State' => [ 'shape' => 'JobRunState', ], ], ], 'ConditionCheckFailureException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, ], 'ConditionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Condition', ], ], 'Connection' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Description' => [ 'shape' => 'DescriptionString', ], 'ConnectionType' => [ 'shape' => 'ConnectionType', ], 'MatchCriteria' => [ 'shape' => 'MatchCriteria', ], 'ConnectionProperties' => [ 'shape' => 'ConnectionProperties', ], 'PhysicalConnectionRequirements' => [ 'shape' => 'PhysicalConnectionRequirements', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'LastUpdatedTime' => [ 'shape' => 'Timestamp', ], 'LastUpdatedBy' => [ 'shape' => 'NameString', ], ], ], 'ConnectionInput' => [ 'type' => 'structure', 'required' => [ 'Name', 'ConnectionType', 'ConnectionProperties', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Description' => [ 'shape' => 'DescriptionString', ], 'ConnectionType' => [ 'shape' => 'ConnectionType', ], 'MatchCriteria' => [ 'shape' => 'MatchCriteria', ], 'ConnectionProperties' => [ 'shape' => 'ConnectionProperties', ], 'PhysicalConnectionRequirements' => [ 'shape' => 'PhysicalConnectionRequirements', ], ], ], 'ConnectionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Connection', ], ], 'ConnectionName' => [ 'type' => 'string', ], 'ConnectionPasswordEncryption' => [ 'type' => 'structure', 'required' => [ 'ReturnConnectionPasswordEncrypted', ], 'members' => [ 'ReturnConnectionPasswordEncrypted' => [ 'shape' => 'Boolean', ], 'AwsKmsKeyId' => [ 'shape' => 'NameString', ], ], ], 'ConnectionProperties' => [ 'type' => 'map', 'key' => [ 'shape' => 'ConnectionPropertyKey', ], 'value' => [ 'shape' => 'ValueString', ], 'max' => 100, 'min' => 0, ], 'ConnectionPropertyKey' => [ 'type' => 'string', 'enum' => [ 'HOST', 'PORT', 'USERNAME', 'PASSWORD', 'ENCRYPTED_PASSWORD', 'JDBC_DRIVER_JAR_URI', 'JDBC_DRIVER_CLASS_NAME', 'JDBC_ENGINE', 'JDBC_ENGINE_VERSION', 'CONFIG_FILES', 'INSTANCE_ID', 'JDBC_CONNECTION_URL', 'JDBC_ENFORCE_SSL', ], ], 'ConnectionType' => [ 'type' => 'string', 'enum' => [ 'JDBC', 'SFTP', ], ], 'ConnectionsList' => [ 'type' => 'structure', 'members' => [ 'Connections' => [ 'shape' => 'StringList', ], ], ], 'Crawler' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Role' => [ 'shape' => 'Role', ], 'Targets' => [ 'shape' => 'CrawlerTargets', ], 'DatabaseName' => [ 'shape' => 'DatabaseName', ], 'Description' => [ 'shape' => 'DescriptionString', ], 'Classifiers' => [ 'shape' => 'ClassifierNameList', ], 'SchemaChangePolicy' => [ 'shape' => 'SchemaChangePolicy', ], 'State' => [ 'shape' => 'CrawlerState', ], 'TablePrefix' => [ 'shape' => 'TablePrefix', ], 'Schedule' => [ 'shape' => 'Schedule', ], 'CrawlElapsedTime' => [ 'shape' => 'MillisecondsCount', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'LastUpdated' => [ 'shape' => 'Timestamp', ], 'LastCrawl' => [ 'shape' => 'LastCrawlInfo', ], 'Version' => [ 'shape' => 'VersionId', ], 'Configuration' => [ 'shape' => 'CrawlerConfiguration', ], 'CrawlerSecurityConfiguration' => [ 'shape' => 'CrawlerSecurityConfiguration', ], ], ], 'CrawlerConfiguration' => [ 'type' => 'string', ], 'CrawlerList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Crawler', ], ], 'CrawlerMetrics' => [ 'type' => 'structure', 'members' => [ 'CrawlerName' => [ 'shape' => 'NameString', ], 'TimeLeftSeconds' => [ 'shape' => 'NonNegativeDouble', ], 'StillEstimating' => [ 'shape' => 'Boolean', ], 'LastRuntimeSeconds' => [ 'shape' => 'NonNegativeDouble', ], 'MedianRuntimeSeconds' => [ 'shape' => 'NonNegativeDouble', ], 'TablesCreated' => [ 'shape' => 'NonNegativeInteger', ], 'TablesUpdated' => [ 'shape' => 'NonNegativeInteger', ], 'TablesDeleted' => [ 'shape' => 'NonNegativeInteger', ], ], ], 'CrawlerMetricsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CrawlerMetrics', ], ], 'CrawlerNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NameString', ], 'max' => 100, 'min' => 0, ], 'CrawlerNotRunningException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, ], 'CrawlerRunningException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, ], 'CrawlerSecurityConfiguration' => [ 'type' => 'string', 'max' => 128, 'min' => 0, ], 'CrawlerState' => [ 'type' => 'string', 'enum' => [ 'READY', 'RUNNING', 'STOPPING', ], ], 'CrawlerStoppingException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, ], 'CrawlerTargets' => [ 'type' => 'structure', 'members' => [ 'S3Targets' => [ 'shape' => 'S3TargetList', ], 'JdbcTargets' => [ 'shape' => 'JdbcTargetList', ], 'DynamoDBTargets' => [ 'shape' => 'DynamoDBTargetList', ], ], ], 'CreateClassifierRequest' => [ 'type' => 'structure', 'members' => [ 'GrokClassifier' => [ 'shape' => 'CreateGrokClassifierRequest', ], 'XMLClassifier' => [ 'shape' => 'CreateXMLClassifierRequest', ], 'JsonClassifier' => [ 'shape' => 'CreateJsonClassifierRequest', ], 'CsvClassifier' => [ 'shape' => 'CreateCsvClassifierRequest', ], ], ], 'CreateClassifierResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'ConnectionInput', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'ConnectionInput' => [ 'shape' => 'ConnectionInput', ], ], ], 'CreateConnectionResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateCrawlerRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'Role', 'DatabaseName', 'Targets', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Role' => [ 'shape' => 'Role', ], 'DatabaseName' => [ 'shape' => 'DatabaseName', ], 'Description' => [ 'shape' => 'DescriptionString', ], 'Targets' => [ 'shape' => 'CrawlerTargets', ], 'Schedule' => [ 'shape' => 'CronExpression', ], 'Classifiers' => [ 'shape' => 'ClassifierNameList', ], 'TablePrefix' => [ 'shape' => 'TablePrefix', ], 'SchemaChangePolicy' => [ 'shape' => 'SchemaChangePolicy', ], 'Configuration' => [ 'shape' => 'CrawlerConfiguration', ], 'CrawlerSecurityConfiguration' => [ 'shape' => 'CrawlerSecurityConfiguration', ], 'Tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateCrawlerResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateCsvClassifierRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Delimiter' => [ 'shape' => 'CsvColumnDelimiter', ], 'QuoteSymbol' => [ 'shape' => 'CsvQuoteSymbol', ], 'ContainsHeader' => [ 'shape' => 'CsvHeaderOption', ], 'Header' => [ 'shape' => 'CsvHeader', ], 'DisableValueTrimming' => [ 'shape' => 'NullableBoolean', ], 'AllowSingleColumn' => [ 'shape' => 'NullableBoolean', ], ], ], 'CreateDatabaseRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseInput', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseInput' => [ 'shape' => 'DatabaseInput', ], ], ], 'CreateDatabaseResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateDevEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'EndpointName', 'RoleArn', ], 'members' => [ 'EndpointName' => [ 'shape' => 'GenericString', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'SecurityGroupIds' => [ 'shape' => 'StringList', ], 'SubnetId' => [ 'shape' => 'GenericString', ], 'PublicKey' => [ 'shape' => 'GenericString', ], 'PublicKeys' => [ 'shape' => 'PublicKeysList', ], 'NumberOfNodes' => [ 'shape' => 'IntegerValue', ], 'ExtraPythonLibsS3Path' => [ 'shape' => 'GenericString', ], 'ExtraJarsS3Path' => [ 'shape' => 'GenericString', ], 'SecurityConfiguration' => [ 'shape' => 'NameString', ], 'Tags' => [ 'shape' => 'TagsMap', ], 'Arguments' => [ 'shape' => 'MapValue', ], ], ], 'CreateDevEndpointResponse' => [ 'type' => 'structure', 'members' => [ 'EndpointName' => [ 'shape' => 'GenericString', ], 'Status' => [ 'shape' => 'GenericString', ], 'SecurityGroupIds' => [ 'shape' => 'StringList', ], 'SubnetId' => [ 'shape' => 'GenericString', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'YarnEndpointAddress' => [ 'shape' => 'GenericString', ], 'ZeppelinRemoteSparkInterpreterPort' => [ 'shape' => 'IntegerValue', ], 'NumberOfNodes' => [ 'shape' => 'IntegerValue', ], 'AvailabilityZone' => [ 'shape' => 'GenericString', ], 'VpcId' => [ 'shape' => 'GenericString', ], 'ExtraPythonLibsS3Path' => [ 'shape' => 'GenericString', ], 'ExtraJarsS3Path' => [ 'shape' => 'GenericString', ], 'FailureReason' => [ 'shape' => 'GenericString', ], 'SecurityConfiguration' => [ 'shape' => 'NameString', ], 'CreatedTimestamp' => [ 'shape' => 'TimestampValue', ], 'Arguments' => [ 'shape' => 'MapValue', ], ], ], 'CreateGrokClassifierRequest' => [ 'type' => 'structure', 'required' => [ 'Classification', 'Name', 'GrokPattern', ], 'members' => [ 'Classification' => [ 'shape' => 'Classification', ], 'Name' => [ 'shape' => 'NameString', ], 'GrokPattern' => [ 'shape' => 'GrokPattern', ], 'CustomPatterns' => [ 'shape' => 'CustomPatterns', ], ], ], 'CreateJobRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'Role', 'Command', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Description' => [ 'shape' => 'DescriptionString', ], 'LogUri' => [ 'shape' => 'UriString', ], 'Role' => [ 'shape' => 'RoleString', ], 'ExecutionProperty' => [ 'shape' => 'ExecutionProperty', ], 'Command' => [ 'shape' => 'JobCommand', ], 'DefaultArguments' => [ 'shape' => 'GenericMap', ], 'Connections' => [ 'shape' => 'ConnectionsList', ], 'MaxRetries' => [ 'shape' => 'MaxRetries', ], 'AllocatedCapacity' => [ 'shape' => 'IntegerValue', 'deprecated' => true, 'deprecatedMessage' => 'This property is deprecated, use MaxCapacity instead.', ], 'Timeout' => [ 'shape' => 'Timeout', ], 'MaxCapacity' => [ 'shape' => 'NullableDouble', ], 'NotificationProperty' => [ 'shape' => 'NotificationProperty', ], 'WorkerType' => [ 'shape' => 'WorkerType', ], 'NumberOfWorkers' => [ 'shape' => 'NullableInteger', ], 'SecurityConfiguration' => [ 'shape' => 'NameString', ], 'Tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateJobResponse' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'NameString', ], ], ], 'CreateJsonClassifierRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'JsonPath', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'JsonPath' => [ 'shape' => 'JsonPath', ], ], ], 'CreatePartitionRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'TableName', 'PartitionInput', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'TableName' => [ 'shape' => 'NameString', ], 'PartitionInput' => [ 'shape' => 'PartitionInput', ], ], ], 'CreatePartitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateScriptRequest' => [ 'type' => 'structure', 'members' => [ 'DagNodes' => [ 'shape' => 'DagNodes', ], 'DagEdges' => [ 'shape' => 'DagEdges', ], 'Language' => [ 'shape' => 'Language', ], ], ], 'CreateScriptResponse' => [ 'type' => 'structure', 'members' => [ 'PythonScript' => [ 'shape' => 'PythonScript', ], 'ScalaCode' => [ 'shape' => 'ScalaCode', ], ], ], 'CreateSecurityConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'EncryptionConfiguration', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'EncryptionConfiguration' => [ 'shape' => 'EncryptionConfiguration', ], ], ], 'CreateSecurityConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'CreatedTimestamp' => [ 'shape' => 'TimestampValue', ], ], ], 'CreateTableRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'TableInput', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'TableInput' => [ 'shape' => 'TableInput', ], ], ], 'CreateTableResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateTriggerRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'Type', 'Actions', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Type' => [ 'shape' => 'TriggerType', ], 'Schedule' => [ 'shape' => 'GenericString', ], 'Predicate' => [ 'shape' => 'Predicate', ], 'Actions' => [ 'shape' => 'ActionList', ], 'Description' => [ 'shape' => 'DescriptionString', ], 'StartOnCreation' => [ 'shape' => 'BooleanValue', ], 'Tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateTriggerResponse' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'NameString', ], ], ], 'CreateUserDefinedFunctionRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'FunctionInput', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'FunctionInput' => [ 'shape' => 'UserDefinedFunctionInput', ], ], ], 'CreateUserDefinedFunctionResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateXMLClassifierRequest' => [ 'type' => 'structure', 'required' => [ 'Classification', 'Name', ], 'members' => [ 'Classification' => [ 'shape' => 'Classification', ], 'Name' => [ 'shape' => 'NameString', ], 'RowTag' => [ 'shape' => 'RowTag', ], ], ], 'CronExpression' => [ 'type' => 'string', ], 'CsvClassifier' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'LastUpdated' => [ 'shape' => 'Timestamp', ], 'Version' => [ 'shape' => 'VersionId', ], 'Delimiter' => [ 'shape' => 'CsvColumnDelimiter', ], 'QuoteSymbol' => [ 'shape' => 'CsvQuoteSymbol', ], 'ContainsHeader' => [ 'shape' => 'CsvHeaderOption', ], 'Header' => [ 'shape' => 'CsvHeader', ], 'DisableValueTrimming' => [ 'shape' => 'NullableBoolean', ], 'AllowSingleColumn' => [ 'shape' => 'NullableBoolean', ], ], ], 'CsvColumnDelimiter' => [ 'type' => 'string', 'max' => 1, 'min' => 1, 'pattern' => '[^\\r\\n]', ], 'CsvHeader' => [ 'type' => 'list', 'member' => [ 'shape' => 'NameString', ], ], 'CsvHeaderOption' => [ 'type' => 'string', 'enum' => [ 'UNKNOWN', 'PRESENT', 'ABSENT', ], ], 'CsvQuoteSymbol' => [ 'type' => 'string', 'max' => 1, 'min' => 1, 'pattern' => '[^\\r\\n]', ], 'CustomPatterns' => [ 'type' => 'string', 'max' => 16000, 'min' => 0, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'DagEdges' => [ 'type' => 'list', 'member' => [ 'shape' => 'CodeGenEdge', ], ], 'DagNodes' => [ 'type' => 'list', 'member' => [ 'shape' => 'CodeGenNode', ], ], 'DataCatalogEncryptionSettings' => [ 'type' => 'structure', 'members' => [ 'EncryptionAtRest' => [ 'shape' => 'EncryptionAtRest', ], 'ConnectionPasswordEncryption' => [ 'shape' => 'ConnectionPasswordEncryption', ], ], ], 'Database' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Description' => [ 'shape' => 'DescriptionString', ], 'LocationUri' => [ 'shape' => 'URI', ], 'Parameters' => [ 'shape' => 'ParametersMap', ], 'CreateTime' => [ 'shape' => 'Timestamp', ], ], ], 'DatabaseInput' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Description' => [ 'shape' => 'DescriptionString', ], 'LocationUri' => [ 'shape' => 'URI', ], 'Parameters' => [ 'shape' => 'ParametersMap', ], ], ], 'DatabaseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Database', ], ], 'DatabaseName' => [ 'type' => 'string', ], 'DeleteBehavior' => [ 'type' => 'string', 'enum' => [ 'LOG', 'DELETE_FROM_DATABASE', 'DEPRECATE_IN_DATABASE', ], ], 'DeleteClassifierRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], ], ], 'DeleteClassifierResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteConnectionNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NameString', ], 'max' => 25, 'min' => 0, ], 'DeleteConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'ConnectionName', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'ConnectionName' => [ 'shape' => 'NameString', ], ], ], 'DeleteConnectionResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteCrawlerRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], ], ], 'DeleteCrawlerResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteDatabaseRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'Name' => [ 'shape' => 'NameString', ], ], ], 'DeleteDatabaseResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteDevEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'EndpointName', ], 'members' => [ 'EndpointName' => [ 'shape' => 'GenericString', ], ], ], 'DeleteDevEndpointResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteJobRequest' => [ 'type' => 'structure', 'required' => [ 'JobName', ], 'members' => [ 'JobName' => [ 'shape' => 'NameString', ], ], ], 'DeleteJobResponse' => [ 'type' => 'structure', 'members' => [ 'JobName' => [ 'shape' => 'NameString', ], ], ], 'DeletePartitionRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'TableName', 'PartitionValues', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'TableName' => [ 'shape' => 'NameString', ], 'PartitionValues' => [ 'shape' => 'ValueStringList', ], ], ], 'DeletePartitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteResourcePolicyRequest' => [ 'type' => 'structure', 'members' => [ 'PolicyHashCondition' => [ 'shape' => 'HashString', ], ], ], 'DeleteResourcePolicyResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteSecurityConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], ], ], 'DeleteSecurityConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteTableRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'Name', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'Name' => [ 'shape' => 'NameString', ], ], ], 'DeleteTableResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteTableVersionRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'TableName', 'VersionId', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'TableName' => [ 'shape' => 'NameString', ], 'VersionId' => [ 'shape' => 'VersionString', ], ], ], 'DeleteTableVersionResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteTriggerRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], ], ], 'DeleteTriggerResponse' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'NameString', ], ], ], 'DeleteUserDefinedFunctionRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'FunctionName', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'FunctionName' => [ 'shape' => 'NameString', ], ], ], 'DeleteUserDefinedFunctionResponse' => [ 'type' => 'structure', 'members' => [], ], 'DescriptionString' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'DescriptionStringRemovable' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'DevEndpoint' => [ 'type' => 'structure', 'members' => [ 'EndpointName' => [ 'shape' => 'GenericString', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'SecurityGroupIds' => [ 'shape' => 'StringList', ], 'SubnetId' => [ 'shape' => 'GenericString', ], 'YarnEndpointAddress' => [ 'shape' => 'GenericString', ], 'PrivateAddress' => [ 'shape' => 'GenericString', ], 'ZeppelinRemoteSparkInterpreterPort' => [ 'shape' => 'IntegerValue', ], 'PublicAddress' => [ 'shape' => 'GenericString', ], 'Status' => [ 'shape' => 'GenericString', ], 'NumberOfNodes' => [ 'shape' => 'IntegerValue', ], 'AvailabilityZone' => [ 'shape' => 'GenericString', ], 'VpcId' => [ 'shape' => 'GenericString', ], 'ExtraPythonLibsS3Path' => [ 'shape' => 'GenericString', ], 'ExtraJarsS3Path' => [ 'shape' => 'GenericString', ], 'FailureReason' => [ 'shape' => 'GenericString', ], 'LastUpdateStatus' => [ 'shape' => 'GenericString', ], 'CreatedTimestamp' => [ 'shape' => 'TimestampValue', ], 'LastModifiedTimestamp' => [ 'shape' => 'TimestampValue', ], 'PublicKey' => [ 'shape' => 'GenericString', ], 'PublicKeys' => [ 'shape' => 'PublicKeysList', ], 'SecurityConfiguration' => [ 'shape' => 'NameString', ], 'Arguments' => [ 'shape' => 'MapValue', ], ], ], 'DevEndpointCustomLibraries' => [ 'type' => 'structure', 'members' => [ 'ExtraPythonLibsS3Path' => [ 'shape' => 'GenericString', ], 'ExtraJarsS3Path' => [ 'shape' => 'GenericString', ], ], ], 'DevEndpointList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DevEndpoint', ], ], 'DevEndpointNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NameString', ], ], 'DevEndpointNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'GenericString', ], 'max' => 25, 'min' => 1, ], 'DynamoDBTarget' => [ 'type' => 'structure', 'members' => [ 'Path' => [ 'shape' => 'Path', ], ], ], 'DynamoDBTargetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DynamoDBTarget', ], ], 'EncryptionAtRest' => [ 'type' => 'structure', 'required' => [ 'CatalogEncryptionMode', ], 'members' => [ 'CatalogEncryptionMode' => [ 'shape' => 'CatalogEncryptionMode', ], 'SseAwsKmsKeyId' => [ 'shape' => 'NameString', ], ], ], 'EncryptionConfiguration' => [ 'type' => 'structure', 'members' => [ 'S3Encryption' => [ 'shape' => 'S3EncryptionList', ], 'CloudWatchEncryption' => [ 'shape' => 'CloudWatchEncryption', ], 'JobBookmarksEncryption' => [ 'shape' => 'JobBookmarksEncryption', ], ], ], 'EntityNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, ], 'ErrorByName' => [ 'type' => 'map', 'key' => [ 'shape' => 'NameString', ], 'value' => [ 'shape' => 'ErrorDetail', ], ], 'ErrorDetail' => [ 'type' => 'structure', 'members' => [ 'ErrorCode' => [ 'shape' => 'NameString', ], 'ErrorMessage' => [ 'shape' => 'DescriptionString', ], ], ], 'ErrorString' => [ 'type' => 'string', ], 'ExecutionProperty' => [ 'type' => 'structure', 'members' => [ 'MaxConcurrentRuns' => [ 'shape' => 'MaxConcurrentRuns', ], ], ], 'ExecutionTime' => [ 'type' => 'integer', ], 'ExistCondition' => [ 'type' => 'string', 'enum' => [ 'MUST_EXIST', 'NOT_EXIST', 'NONE', ], ], 'FieldType' => [ 'type' => 'string', ], 'FilterString' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*', ], 'FormatString' => [ 'type' => 'string', 'max' => 128, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*', ], 'GenericMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'GenericString', ], 'value' => [ 'shape' => 'GenericString', ], ], 'GenericString' => [ 'type' => 'string', ], 'GetCatalogImportStatusRequest' => [ 'type' => 'structure', 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], ], ], 'GetCatalogImportStatusResponse' => [ 'type' => 'structure', 'members' => [ 'ImportStatus' => [ 'shape' => 'CatalogImportStatus', ], ], ], 'GetClassifierRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], ], ], 'GetClassifierResponse' => [ 'type' => 'structure', 'members' => [ 'Classifier' => [ 'shape' => 'Classifier', ], ], ], 'GetClassifiersRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'PageSize', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'GetClassifiersResponse' => [ 'type' => 'structure', 'members' => [ 'Classifiers' => [ 'shape' => 'ClassifierList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'GetConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'Name' => [ 'shape' => 'NameString', ], 'HidePassword' => [ 'shape' => 'Boolean', ], ], ], 'GetConnectionResponse' => [ 'type' => 'structure', 'members' => [ 'Connection' => [ 'shape' => 'Connection', ], ], ], 'GetConnectionsFilter' => [ 'type' => 'structure', 'members' => [ 'MatchCriteria' => [ 'shape' => 'MatchCriteria', ], 'ConnectionType' => [ 'shape' => 'ConnectionType', ], ], ], 'GetConnectionsRequest' => [ 'type' => 'structure', 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'Filter' => [ 'shape' => 'GetConnectionsFilter', ], 'HidePassword' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'Token', ], 'MaxResults' => [ 'shape' => 'PageSize', ], ], ], 'GetConnectionsResponse' => [ 'type' => 'structure', 'members' => [ 'ConnectionList' => [ 'shape' => 'ConnectionList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'GetCrawlerMetricsRequest' => [ 'type' => 'structure', 'members' => [ 'CrawlerNameList' => [ 'shape' => 'CrawlerNameList', ], 'MaxResults' => [ 'shape' => 'PageSize', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'GetCrawlerMetricsResponse' => [ 'type' => 'structure', 'members' => [ 'CrawlerMetricsList' => [ 'shape' => 'CrawlerMetricsList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'GetCrawlerRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], ], ], 'GetCrawlerResponse' => [ 'type' => 'structure', 'members' => [ 'Crawler' => [ 'shape' => 'Crawler', ], ], ], 'GetCrawlersRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'PageSize', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'GetCrawlersResponse' => [ 'type' => 'structure', 'members' => [ 'Crawlers' => [ 'shape' => 'CrawlerList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'GetDataCatalogEncryptionSettingsRequest' => [ 'type' => 'structure', 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], ], ], 'GetDataCatalogEncryptionSettingsResponse' => [ 'type' => 'structure', 'members' => [ 'DataCatalogEncryptionSettings' => [ 'shape' => 'DataCatalogEncryptionSettings', ], ], ], 'GetDatabaseRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'Name' => [ 'shape' => 'NameString', ], ], ], 'GetDatabaseResponse' => [ 'type' => 'structure', 'members' => [ 'Database' => [ 'shape' => 'Database', ], ], ], 'GetDatabasesRequest' => [ 'type' => 'structure', 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'NextToken' => [ 'shape' => 'Token', ], 'MaxResults' => [ 'shape' => 'PageSize', ], ], ], 'GetDatabasesResponse' => [ 'type' => 'structure', 'required' => [ 'DatabaseList', ], 'members' => [ 'DatabaseList' => [ 'shape' => 'DatabaseList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'GetDataflowGraphRequest' => [ 'type' => 'structure', 'members' => [ 'PythonScript' => [ 'shape' => 'PythonScript', ], ], ], 'GetDataflowGraphResponse' => [ 'type' => 'structure', 'members' => [ 'DagNodes' => [ 'shape' => 'DagNodes', ], 'DagEdges' => [ 'shape' => 'DagEdges', ], ], ], 'GetDevEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'EndpointName', ], 'members' => [ 'EndpointName' => [ 'shape' => 'GenericString', ], ], ], 'GetDevEndpointResponse' => [ 'type' => 'structure', 'members' => [ 'DevEndpoint' => [ 'shape' => 'DevEndpoint', ], ], ], 'GetDevEndpointsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'PageSize', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'GetDevEndpointsResponse' => [ 'type' => 'structure', 'members' => [ 'DevEndpoints' => [ 'shape' => 'DevEndpointList', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'GetJobRequest' => [ 'type' => 'structure', 'required' => [ 'JobName', ], 'members' => [ 'JobName' => [ 'shape' => 'NameString', ], ], ], 'GetJobResponse' => [ 'type' => 'structure', 'members' => [ 'Job' => [ 'shape' => 'Job', ], ], ], 'GetJobRunRequest' => [ 'type' => 'structure', 'required' => [ 'JobName', 'RunId', ], 'members' => [ 'JobName' => [ 'shape' => 'NameString', ], 'RunId' => [ 'shape' => 'IdString', ], 'PredecessorsIncluded' => [ 'shape' => 'BooleanValue', ], ], ], 'GetJobRunResponse' => [ 'type' => 'structure', 'members' => [ 'JobRun' => [ 'shape' => 'JobRun', ], ], ], 'GetJobRunsRequest' => [ 'type' => 'structure', 'required' => [ 'JobName', ], 'members' => [ 'JobName' => [ 'shape' => 'NameString', ], 'NextToken' => [ 'shape' => 'GenericString', ], 'MaxResults' => [ 'shape' => 'PageSize', ], ], ], 'GetJobRunsResponse' => [ 'type' => 'structure', 'members' => [ 'JobRuns' => [ 'shape' => 'JobRunList', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'GetJobsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'GenericString', ], 'MaxResults' => [ 'shape' => 'PageSize', ], ], ], 'GetJobsResponse' => [ 'type' => 'structure', 'members' => [ 'Jobs' => [ 'shape' => 'JobList', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'GetMappingRequest' => [ 'type' => 'structure', 'required' => [ 'Source', ], 'members' => [ 'Source' => [ 'shape' => 'CatalogEntry', ], 'Sinks' => [ 'shape' => 'CatalogEntries', ], 'Location' => [ 'shape' => 'Location', ], ], ], 'GetMappingResponse' => [ 'type' => 'structure', 'required' => [ 'Mapping', ], 'members' => [ 'Mapping' => [ 'shape' => 'MappingList', ], ], ], 'GetPartitionRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'TableName', 'PartitionValues', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'TableName' => [ 'shape' => 'NameString', ], 'PartitionValues' => [ 'shape' => 'ValueStringList', ], ], ], 'GetPartitionResponse' => [ 'type' => 'structure', 'members' => [ 'Partition' => [ 'shape' => 'Partition', ], ], ], 'GetPartitionsRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'TableName', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'TableName' => [ 'shape' => 'NameString', ], 'Expression' => [ 'shape' => 'PredicateString', ], 'NextToken' => [ 'shape' => 'Token', ], 'Segment' => [ 'shape' => 'Segment', ], 'MaxResults' => [ 'shape' => 'PageSize', ], ], ], 'GetPartitionsResponse' => [ 'type' => 'structure', 'members' => [ 'Partitions' => [ 'shape' => 'PartitionList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'GetPlanRequest' => [ 'type' => 'structure', 'required' => [ 'Mapping', 'Source', ], 'members' => [ 'Mapping' => [ 'shape' => 'MappingList', ], 'Source' => [ 'shape' => 'CatalogEntry', ], 'Sinks' => [ 'shape' => 'CatalogEntries', ], 'Location' => [ 'shape' => 'Location', ], 'Language' => [ 'shape' => 'Language', ], ], ], 'GetPlanResponse' => [ 'type' => 'structure', 'members' => [ 'PythonScript' => [ 'shape' => 'PythonScript', ], 'ScalaCode' => [ 'shape' => 'ScalaCode', ], ], ], 'GetResourcePolicyRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetResourcePolicyResponse' => [ 'type' => 'structure', 'members' => [ 'PolicyInJson' => [ 'shape' => 'PolicyJsonString', ], 'PolicyHash' => [ 'shape' => 'HashString', ], 'CreateTime' => [ 'shape' => 'Timestamp', ], 'UpdateTime' => [ 'shape' => 'Timestamp', ], ], ], 'GetSecurityConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], ], ], 'GetSecurityConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'SecurityConfiguration' => [ 'shape' => 'SecurityConfiguration', ], ], ], 'GetSecurityConfigurationsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'PageSize', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'GetSecurityConfigurationsResponse' => [ 'type' => 'structure', 'members' => [ 'SecurityConfigurations' => [ 'shape' => 'SecurityConfigurationList', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'GetTableRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'Name', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'Name' => [ 'shape' => 'NameString', ], ], ], 'GetTableResponse' => [ 'type' => 'structure', 'members' => [ 'Table' => [ 'shape' => 'Table', ], ], ], 'GetTableVersionRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'TableName', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'TableName' => [ 'shape' => 'NameString', ], 'VersionId' => [ 'shape' => 'VersionString', ], ], ], 'GetTableVersionResponse' => [ 'type' => 'structure', 'members' => [ 'TableVersion' => [ 'shape' => 'TableVersion', ], ], ], 'GetTableVersionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TableVersion', ], ], 'GetTableVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'TableName', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'TableName' => [ 'shape' => 'NameString', ], 'NextToken' => [ 'shape' => 'Token', ], 'MaxResults' => [ 'shape' => 'PageSize', ], ], ], 'GetTableVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'TableVersions' => [ 'shape' => 'GetTableVersionsList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'GetTablesRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'Expression' => [ 'shape' => 'FilterString', ], 'NextToken' => [ 'shape' => 'Token', ], 'MaxResults' => [ 'shape' => 'PageSize', ], ], ], 'GetTablesResponse' => [ 'type' => 'structure', 'members' => [ 'TableList' => [ 'shape' => 'TableList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'GetTagsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'GlueResourceArn', ], ], ], 'GetTagsResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagsMap', ], ], ], 'GetTriggerRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], ], ], 'GetTriggerResponse' => [ 'type' => 'structure', 'members' => [ 'Trigger' => [ 'shape' => 'Trigger', ], ], ], 'GetTriggersRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'GenericString', ], 'DependentJobName' => [ 'shape' => 'NameString', ], 'MaxResults' => [ 'shape' => 'PageSize', ], ], ], 'GetTriggersResponse' => [ 'type' => 'structure', 'members' => [ 'Triggers' => [ 'shape' => 'TriggerList', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'GetUserDefinedFunctionRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'FunctionName', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'FunctionName' => [ 'shape' => 'NameString', ], ], ], 'GetUserDefinedFunctionResponse' => [ 'type' => 'structure', 'members' => [ 'UserDefinedFunction' => [ 'shape' => 'UserDefinedFunction', ], ], ], 'GetUserDefinedFunctionsRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'Pattern', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'Pattern' => [ 'shape' => 'NameString', ], 'NextToken' => [ 'shape' => 'Token', ], 'MaxResults' => [ 'shape' => 'PageSize', ], ], ], 'GetUserDefinedFunctionsResponse' => [ 'type' => 'structure', 'members' => [ 'UserDefinedFunctions' => [ 'shape' => 'UserDefinedFunctionList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'GlueEncryptionException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, ], 'GlueResourceArn' => [ 'type' => 'string', 'max' => 10240, 'min' => 1, 'pattern' => 'arn:aws:glue:.*', ], 'GrokClassifier' => [ 'type' => 'structure', 'required' => [ 'Name', 'Classification', 'GrokPattern', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Classification' => [ 'shape' => 'Classification', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'LastUpdated' => [ 'shape' => 'Timestamp', ], 'Version' => [ 'shape' => 'VersionId', ], 'GrokPattern' => [ 'shape' => 'GrokPattern', ], 'CustomPatterns' => [ 'shape' => 'CustomPatterns', ], ], ], 'GrokPattern' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\t]*', ], 'HashString' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*', ], 'IdString' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*', ], 'IdempotentParameterMismatchException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, ], 'ImportCatalogToGlueRequest' => [ 'type' => 'structure', 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], ], ], 'ImportCatalogToGlueResponse' => [ 'type' => 'structure', 'members' => [], ], 'Integer' => [ 'type' => 'integer', ], 'IntegerFlag' => [ 'type' => 'integer', 'max' => 1, 'min' => 0, ], 'IntegerValue' => [ 'type' => 'integer', ], 'InternalServiceException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, 'fault' => true, ], 'InvalidInputException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, ], 'JdbcTarget' => [ 'type' => 'structure', 'members' => [ 'ConnectionName' => [ 'shape' => 'ConnectionName', ], 'Path' => [ 'shape' => 'Path', ], 'Exclusions' => [ 'shape' => 'PathList', ], ], ], 'JdbcTargetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'JdbcTarget', ], ], 'Job' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Description' => [ 'shape' => 'DescriptionString', ], 'LogUri' => [ 'shape' => 'UriString', ], 'Role' => [ 'shape' => 'RoleString', ], 'CreatedOn' => [ 'shape' => 'TimestampValue', ], 'LastModifiedOn' => [ 'shape' => 'TimestampValue', ], 'ExecutionProperty' => [ 'shape' => 'ExecutionProperty', ], 'Command' => [ 'shape' => 'JobCommand', ], 'DefaultArguments' => [ 'shape' => 'GenericMap', ], 'Connections' => [ 'shape' => 'ConnectionsList', ], 'MaxRetries' => [ 'shape' => 'MaxRetries', ], 'AllocatedCapacity' => [ 'shape' => 'IntegerValue', 'deprecated' => true, 'deprecatedMessage' => 'This property is deprecated, use MaxCapacity instead.', ], 'Timeout' => [ 'shape' => 'Timeout', ], 'MaxCapacity' => [ 'shape' => 'NullableDouble', ], 'WorkerType' => [ 'shape' => 'WorkerType', ], 'NumberOfWorkers' => [ 'shape' => 'NullableInteger', ], 'SecurityConfiguration' => [ 'shape' => 'NameString', ], 'NotificationProperty' => [ 'shape' => 'NotificationProperty', ], ], ], 'JobBookmarkEntry' => [ 'type' => 'structure', 'members' => [ 'JobName' => [ 'shape' => 'JobName', ], 'Version' => [ 'shape' => 'IntegerValue', ], 'Run' => [ 'shape' => 'IntegerValue', ], 'Attempt' => [ 'shape' => 'IntegerValue', ], 'JobBookmark' => [ 'shape' => 'JsonValue', ], ], ], 'JobBookmarksEncryption' => [ 'type' => 'structure', 'members' => [ 'JobBookmarksEncryptionMode' => [ 'shape' => 'JobBookmarksEncryptionMode', ], 'KmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'JobBookmarksEncryptionMode' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'CSE-KMS', ], ], 'JobCommand' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'GenericString', ], 'ScriptLocation' => [ 'shape' => 'ScriptLocationString', ], ], ], 'JobList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Job', ], ], 'JobName' => [ 'type' => 'string', ], 'JobNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NameString', ], ], 'JobRun' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'IdString', ], 'Attempt' => [ 'shape' => 'AttemptCount', ], 'PreviousRunId' => [ 'shape' => 'IdString', ], 'TriggerName' => [ 'shape' => 'NameString', ], 'JobName' => [ 'shape' => 'NameString', ], 'StartedOn' => [ 'shape' => 'TimestampValue', ], 'LastModifiedOn' => [ 'shape' => 'TimestampValue', ], 'CompletedOn' => [ 'shape' => 'TimestampValue', ], 'JobRunState' => [ 'shape' => 'JobRunState', ], 'Arguments' => [ 'shape' => 'GenericMap', ], 'ErrorMessage' => [ 'shape' => 'ErrorString', ], 'PredecessorRuns' => [ 'shape' => 'PredecessorList', ], 'AllocatedCapacity' => [ 'shape' => 'IntegerValue', 'deprecated' => true, 'deprecatedMessage' => 'This property is deprecated, use MaxCapacity instead.', ], 'ExecutionTime' => [ 'shape' => 'ExecutionTime', ], 'Timeout' => [ 'shape' => 'Timeout', ], 'MaxCapacity' => [ 'shape' => 'NullableDouble', ], 'NotificationProperty' => [ 'shape' => 'NotificationProperty', ], 'WorkerType' => [ 'shape' => 'WorkerType', ], 'NumberOfWorkers' => [ 'shape' => 'NullableInteger', ], 'SecurityConfiguration' => [ 'shape' => 'NameString', ], 'LogGroupName' => [ 'shape' => 'GenericString', ], ], ], 'JobRunList' => [ 'type' => 'list', 'member' => [ 'shape' => 'JobRun', ], ], 'JobRunState' => [ 'type' => 'string', 'enum' => [ 'STARTING', 'RUNNING', 'STOPPING', 'STOPPED', 'SUCCEEDED', 'FAILED', 'TIMEOUT', ], ], 'JobUpdate' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'DescriptionString', ], 'LogUri' => [ 'shape' => 'UriString', ], 'Role' => [ 'shape' => 'RoleString', ], 'ExecutionProperty' => [ 'shape' => 'ExecutionProperty', ], 'Command' => [ 'shape' => 'JobCommand', ], 'DefaultArguments' => [ 'shape' => 'GenericMap', ], 'Connections' => [ 'shape' => 'ConnectionsList', ], 'MaxRetries' => [ 'shape' => 'MaxRetries', ], 'AllocatedCapacity' => [ 'shape' => 'IntegerValue', 'deprecated' => true, 'deprecatedMessage' => 'This property is deprecated, use MaxCapacity instead.', ], 'Timeout' => [ 'shape' => 'Timeout', ], 'MaxCapacity' => [ 'shape' => 'NullableDouble', ], 'WorkerType' => [ 'shape' => 'WorkerType', ], 'NumberOfWorkers' => [ 'shape' => 'NullableInteger', ], 'SecurityConfiguration' => [ 'shape' => 'NameString', ], 'NotificationProperty' => [ 'shape' => 'NotificationProperty', ], ], ], 'JsonClassifier' => [ 'type' => 'structure', 'required' => [ 'Name', 'JsonPath', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'LastUpdated' => [ 'shape' => 'Timestamp', ], 'Version' => [ 'shape' => 'VersionId', ], 'JsonPath' => [ 'shape' => 'JsonPath', ], ], ], 'JsonPath' => [ 'type' => 'string', ], 'JsonValue' => [ 'type' => 'string', ], 'KeyString' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*', ], 'KmsKeyArn' => [ 'type' => 'string', 'pattern' => 'arn:aws:kms:.*', ], 'Language' => [ 'type' => 'string', 'enum' => [ 'PYTHON', 'SCALA', ], ], 'LastCrawlInfo' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'LastCrawlStatus', ], 'ErrorMessage' => [ 'shape' => 'DescriptionString', ], 'LogGroup' => [ 'shape' => 'LogGroup', ], 'LogStream' => [ 'shape' => 'LogStream', ], 'MessagePrefix' => [ 'shape' => 'MessagePrefix', ], 'StartTime' => [ 'shape' => 'Timestamp', ], ], ], 'LastCrawlStatus' => [ 'type' => 'string', 'enum' => [ 'SUCCEEDED', 'CANCELLED', 'FAILED', ], ], 'ListCrawlersRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'PageSize', ], 'NextToken' => [ 'shape' => 'Token', ], 'Tags' => [ 'shape' => 'TagsMap', ], ], ], 'ListCrawlersResponse' => [ 'type' => 'structure', 'members' => [ 'CrawlerNames' => [ 'shape' => 'CrawlerNameList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'ListDevEndpointsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'GenericString', ], 'MaxResults' => [ 'shape' => 'PageSize', ], 'Tags' => [ 'shape' => 'TagsMap', ], ], ], 'ListDevEndpointsResponse' => [ 'type' => 'structure', 'members' => [ 'DevEndpointNames' => [ 'shape' => 'DevEndpointNameList', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'ListJobsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'GenericString', ], 'MaxResults' => [ 'shape' => 'PageSize', ], 'Tags' => [ 'shape' => 'TagsMap', ], ], ], 'ListJobsResponse' => [ 'type' => 'structure', 'members' => [ 'JobNames' => [ 'shape' => 'JobNameList', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'ListTriggersRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'GenericString', ], 'DependentJobName' => [ 'shape' => 'NameString', ], 'MaxResults' => [ 'shape' => 'PageSize', ], 'Tags' => [ 'shape' => 'TagsMap', ], ], ], 'ListTriggersResponse' => [ 'type' => 'structure', 'members' => [ 'TriggerNames' => [ 'shape' => 'TriggerNameList', ], 'NextToken' => [ 'shape' => 'GenericString', ], ], ], 'Location' => [ 'type' => 'structure', 'members' => [ 'Jdbc' => [ 'shape' => 'CodeGenNodeArgs', ], 'S3' => [ 'shape' => 'CodeGenNodeArgs', ], 'DynamoDB' => [ 'shape' => 'CodeGenNodeArgs', ], ], ], 'LocationMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'ColumnValuesString', ], 'value' => [ 'shape' => 'ColumnValuesString', ], ], 'LocationString' => [ 'type' => 'string', 'max' => 2056, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'LogGroup' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => '[\\.\\-_/#A-Za-z0-9]+', ], 'LogStream' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => '[^:*]*', ], 'Logical' => [ 'type' => 'string', 'enum' => [ 'AND', 'ANY', ], ], 'LogicalOperator' => [ 'type' => 'string', 'enum' => [ 'EQUALS', ], ], 'MapValue' => [ 'type' => 'map', 'key' => [ 'shape' => 'GenericString', ], 'value' => [ 'shape' => 'GenericString', ], 'max' => 100, 'min' => 0, ], 'MappingEntry' => [ 'type' => 'structure', 'members' => [ 'SourceTable' => [ 'shape' => 'TableName', ], 'SourcePath' => [ 'shape' => 'SchemaPathString', ], 'SourceType' => [ 'shape' => 'FieldType', ], 'TargetTable' => [ 'shape' => 'TableName', ], 'TargetPath' => [ 'shape' => 'SchemaPathString', ], 'TargetType' => [ 'shape' => 'FieldType', ], ], ], 'MappingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MappingEntry', ], ], 'MatchCriteria' => [ 'type' => 'list', 'member' => [ 'shape' => 'NameString', ], 'max' => 10, 'min' => 0, ], 'MaxConcurrentRuns' => [ 'type' => 'integer', ], 'MaxRetries' => [ 'type' => 'integer', ], 'MessagePrefix' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*', ], 'MessageString' => [ 'type' => 'string', ], 'MillisecondsCount' => [ 'type' => 'long', ], 'NameString' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*', ], 'NameStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NameString', ], ], 'NoScheduleException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, ], 'NonNegativeDouble' => [ 'type' => 'double', 'min' => 0, ], 'NonNegativeInteger' => [ 'type' => 'integer', 'min' => 0, ], 'NotificationProperty' => [ 'type' => 'structure', 'members' => [ 'NotifyDelayAfter' => [ 'shape' => 'NotifyDelayAfter', ], ], ], 'NotifyDelayAfter' => [ 'type' => 'integer', 'box' => true, 'min' => 1, ], 'NullableBoolean' => [ 'type' => 'boolean', 'box' => true, ], 'NullableDouble' => [ 'type' => 'double', 'box' => true, ], 'NullableInteger' => [ 'type' => 'integer', 'box' => true, ], 'OperationTimeoutException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, ], 'Order' => [ 'type' => 'structure', 'required' => [ 'Column', 'SortOrder', ], 'members' => [ 'Column' => [ 'shape' => 'NameString', ], 'SortOrder' => [ 'shape' => 'IntegerFlag', ], ], ], 'OrderList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Order', ], ], 'PageSize' => [ 'type' => 'integer', 'box' => true, 'max' => 1000, 'min' => 1, ], 'ParametersMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'KeyString', ], 'value' => [ 'shape' => 'ParametersMapValue', ], ], 'ParametersMapValue' => [ 'type' => 'string', 'max' => 512000, ], 'Partition' => [ 'type' => 'structure', 'members' => [ 'Values' => [ 'shape' => 'ValueStringList', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'TableName' => [ 'shape' => 'NameString', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'LastAccessTime' => [ 'shape' => 'Timestamp', ], 'StorageDescriptor' => [ 'shape' => 'StorageDescriptor', ], 'Parameters' => [ 'shape' => 'ParametersMap', ], 'LastAnalyzedTime' => [ 'shape' => 'Timestamp', ], ], ], 'PartitionError' => [ 'type' => 'structure', 'members' => [ 'PartitionValues' => [ 'shape' => 'ValueStringList', ], 'ErrorDetail' => [ 'shape' => 'ErrorDetail', ], ], ], 'PartitionErrors' => [ 'type' => 'list', 'member' => [ 'shape' => 'PartitionError', ], ], 'PartitionInput' => [ 'type' => 'structure', 'members' => [ 'Values' => [ 'shape' => 'ValueStringList', ], 'LastAccessTime' => [ 'shape' => 'Timestamp', ], 'StorageDescriptor' => [ 'shape' => 'StorageDescriptor', ], 'Parameters' => [ 'shape' => 'ParametersMap', ], 'LastAnalyzedTime' => [ 'shape' => 'Timestamp', ], ], ], 'PartitionInputList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PartitionInput', ], 'max' => 100, 'min' => 0, ], 'PartitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Partition', ], ], 'PartitionValueList' => [ 'type' => 'structure', 'required' => [ 'Values', ], 'members' => [ 'Values' => [ 'shape' => 'ValueStringList', ], ], ], 'Path' => [ 'type' => 'string', ], 'PathList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Path', ], ], 'PhysicalConnectionRequirements' => [ 'type' => 'structure', 'members' => [ 'SubnetId' => [ 'shape' => 'NameString', ], 'SecurityGroupIdList' => [ 'shape' => 'SecurityGroupIdList', ], 'AvailabilityZone' => [ 'shape' => 'NameString', ], ], ], 'PolicyJsonString' => [ 'type' => 'string', 'max' => 10240, 'min' => 2, ], 'Predecessor' => [ 'type' => 'structure', 'members' => [ 'JobName' => [ 'shape' => 'NameString', ], 'RunId' => [ 'shape' => 'IdString', ], ], ], 'PredecessorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Predecessor', ], ], 'Predicate' => [ 'type' => 'structure', 'members' => [ 'Logical' => [ 'shape' => 'Logical', ], 'Conditions' => [ 'shape' => 'ConditionList', ], ], ], 'PredicateString' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'PrincipalType' => [ 'type' => 'string', 'enum' => [ 'USER', 'ROLE', 'GROUP', ], ], 'PublicKeysList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GenericString', ], 'max' => 5, ], 'PutDataCatalogEncryptionSettingsRequest' => [ 'type' => 'structure', 'required' => [ 'DataCatalogEncryptionSettings', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DataCatalogEncryptionSettings' => [ 'shape' => 'DataCatalogEncryptionSettings', ], ], ], 'PutDataCatalogEncryptionSettingsResponse' => [ 'type' => 'structure', 'members' => [], ], 'PutResourcePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'PolicyInJson', ], 'members' => [ 'PolicyInJson' => [ 'shape' => 'PolicyJsonString', ], 'PolicyHashCondition' => [ 'shape' => 'HashString', ], 'PolicyExistsCondition' => [ 'shape' => 'ExistCondition', ], ], ], 'PutResourcePolicyResponse' => [ 'type' => 'structure', 'members' => [ 'PolicyHash' => [ 'shape' => 'HashString', ], ], ], 'PythonScript' => [ 'type' => 'string', ], 'ResetJobBookmarkRequest' => [ 'type' => 'structure', 'required' => [ 'JobName', ], 'members' => [ 'JobName' => [ 'shape' => 'JobName', ], ], ], 'ResetJobBookmarkResponse' => [ 'type' => 'structure', 'members' => [ 'JobBookmarkEntry' => [ 'shape' => 'JobBookmarkEntry', ], ], ], 'ResourceNumberLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, ], 'ResourceType' => [ 'type' => 'string', 'enum' => [ 'JAR', 'FILE', 'ARCHIVE', ], ], 'ResourceUri' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ResourceType', ], 'Uri' => [ 'shape' => 'URI', ], ], ], 'ResourceUriList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceUri', ], 'max' => 1000, 'min' => 0, ], 'Role' => [ 'type' => 'string', ], 'RoleArn' => [ 'type' => 'string', 'pattern' => 'arn:aws:iam::\\d{12}:role/.*', ], 'RoleString' => [ 'type' => 'string', ], 'RowTag' => [ 'type' => 'string', ], 'S3Encryption' => [ 'type' => 'structure', 'members' => [ 'S3EncryptionMode' => [ 'shape' => 'S3EncryptionMode', ], 'KmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'S3EncryptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'S3Encryption', ], ], 'S3EncryptionMode' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'SSE-KMS', 'SSE-S3', ], ], 'S3Target' => [ 'type' => 'structure', 'members' => [ 'Path' => [ 'shape' => 'Path', ], 'Exclusions' => [ 'shape' => 'PathList', ], ], ], 'S3TargetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'S3Target', ], ], 'ScalaCode' => [ 'type' => 'string', ], 'Schedule' => [ 'type' => 'structure', 'members' => [ 'ScheduleExpression' => [ 'shape' => 'CronExpression', ], 'State' => [ 'shape' => 'ScheduleState', ], ], ], 'ScheduleState' => [ 'type' => 'string', 'enum' => [ 'SCHEDULED', 'NOT_SCHEDULED', 'TRANSITIONING', ], ], 'SchedulerNotRunningException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, ], 'SchedulerRunningException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, ], 'SchedulerTransitioningException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, ], 'SchemaChangePolicy' => [ 'type' => 'structure', 'members' => [ 'UpdateBehavior' => [ 'shape' => 'UpdateBehavior', ], 'DeleteBehavior' => [ 'shape' => 'DeleteBehavior', ], ], ], 'SchemaPathString' => [ 'type' => 'string', ], 'ScriptLocationString' => [ 'type' => 'string', ], 'SecurityConfiguration' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'CreatedTimeStamp' => [ 'shape' => 'TimestampValue', ], 'EncryptionConfiguration' => [ 'shape' => 'EncryptionConfiguration', ], ], ], 'SecurityConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityConfiguration', ], ], 'SecurityGroupIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NameString', ], 'max' => 50, 'min' => 0, ], 'Segment' => [ 'type' => 'structure', 'required' => [ 'SegmentNumber', 'TotalSegments', ], 'members' => [ 'SegmentNumber' => [ 'shape' => 'NonNegativeInteger', ], 'TotalSegments' => [ 'shape' => 'TotalSegmentsInteger', ], ], ], 'SerDeInfo' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'SerializationLibrary' => [ 'shape' => 'NameString', ], 'Parameters' => [ 'shape' => 'ParametersMap', ], ], ], 'SkewedInfo' => [ 'type' => 'structure', 'members' => [ 'SkewedColumnNames' => [ 'shape' => 'NameStringList', ], 'SkewedColumnValues' => [ 'shape' => 'ColumnValueStringList', ], 'SkewedColumnValueLocationMaps' => [ 'shape' => 'LocationMap', ], ], ], 'StartCrawlerRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], ], ], 'StartCrawlerResponse' => [ 'type' => 'structure', 'members' => [], ], 'StartCrawlerScheduleRequest' => [ 'type' => 'structure', 'required' => [ 'CrawlerName', ], 'members' => [ 'CrawlerName' => [ 'shape' => 'NameString', ], ], ], 'StartCrawlerScheduleResponse' => [ 'type' => 'structure', 'members' => [], ], 'StartJobRunRequest' => [ 'type' => 'structure', 'required' => [ 'JobName', ], 'members' => [ 'JobName' => [ 'shape' => 'NameString', ], 'JobRunId' => [ 'shape' => 'IdString', ], 'Arguments' => [ 'shape' => 'GenericMap', ], 'AllocatedCapacity' => [ 'shape' => 'IntegerValue', 'deprecated' => true, 'deprecatedMessage' => 'This property is deprecated, use MaxCapacity instead.', ], 'Timeout' => [ 'shape' => 'Timeout', ], 'MaxCapacity' => [ 'shape' => 'NullableDouble', ], 'WorkerType' => [ 'shape' => 'WorkerType', ], 'NumberOfWorkers' => [ 'shape' => 'NullableInteger', ], 'SecurityConfiguration' => [ 'shape' => 'NameString', ], 'NotificationProperty' => [ 'shape' => 'NotificationProperty', ], ], ], 'StartJobRunResponse' => [ 'type' => 'structure', 'members' => [ 'JobRunId' => [ 'shape' => 'IdString', ], ], ], 'StartTriggerRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], ], ], 'StartTriggerResponse' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'NameString', ], ], ], 'StopCrawlerRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], ], ], 'StopCrawlerResponse' => [ 'type' => 'structure', 'members' => [], ], 'StopCrawlerScheduleRequest' => [ 'type' => 'structure', 'required' => [ 'CrawlerName', ], 'members' => [ 'CrawlerName' => [ 'shape' => 'NameString', ], ], ], 'StopCrawlerScheduleResponse' => [ 'type' => 'structure', 'members' => [], ], 'StopTriggerRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], ], ], 'StopTriggerResponse' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'NameString', ], ], ], 'StorageDescriptor' => [ 'type' => 'structure', 'members' => [ 'Columns' => [ 'shape' => 'ColumnList', ], 'Location' => [ 'shape' => 'LocationString', ], 'InputFormat' => [ 'shape' => 'FormatString', ], 'OutputFormat' => [ 'shape' => 'FormatString', ], 'Compressed' => [ 'shape' => 'Boolean', ], 'NumberOfBuckets' => [ 'shape' => 'Integer', ], 'SerdeInfo' => [ 'shape' => 'SerDeInfo', ], 'BucketColumns' => [ 'shape' => 'NameStringList', ], 'SortColumns' => [ 'shape' => 'OrderList', ], 'Parameters' => [ 'shape' => 'ParametersMap', ], 'SkewedInfo' => [ 'shape' => 'SkewedInfo', ], 'StoredAsSubDirectories' => [ 'shape' => 'Boolean', ], ], ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GenericString', ], ], 'Table' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'Description' => [ 'shape' => 'DescriptionString', ], 'Owner' => [ 'shape' => 'NameString', ], 'CreateTime' => [ 'shape' => 'Timestamp', ], 'UpdateTime' => [ 'shape' => 'Timestamp', ], 'LastAccessTime' => [ 'shape' => 'Timestamp', ], 'LastAnalyzedTime' => [ 'shape' => 'Timestamp', ], 'Retention' => [ 'shape' => 'NonNegativeInteger', ], 'StorageDescriptor' => [ 'shape' => 'StorageDescriptor', ], 'PartitionKeys' => [ 'shape' => 'ColumnList', ], 'ViewOriginalText' => [ 'shape' => 'ViewTextString', ], 'ViewExpandedText' => [ 'shape' => 'ViewTextString', ], 'TableType' => [ 'shape' => 'TableTypeString', ], 'Parameters' => [ 'shape' => 'ParametersMap', ], 'CreatedBy' => [ 'shape' => 'NameString', ], ], ], 'TableError' => [ 'type' => 'structure', 'members' => [ 'TableName' => [ 'shape' => 'NameString', ], 'ErrorDetail' => [ 'shape' => 'ErrorDetail', ], ], ], 'TableErrors' => [ 'type' => 'list', 'member' => [ 'shape' => 'TableError', ], ], 'TableInput' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Description' => [ 'shape' => 'DescriptionString', ], 'Owner' => [ 'shape' => 'NameString', ], 'LastAccessTime' => [ 'shape' => 'Timestamp', ], 'LastAnalyzedTime' => [ 'shape' => 'Timestamp', ], 'Retention' => [ 'shape' => 'NonNegativeInteger', ], 'StorageDescriptor' => [ 'shape' => 'StorageDescriptor', ], 'PartitionKeys' => [ 'shape' => 'ColumnList', ], 'ViewOriginalText' => [ 'shape' => 'ViewTextString', ], 'ViewExpandedText' => [ 'shape' => 'ViewTextString', ], 'TableType' => [ 'shape' => 'TableTypeString', ], 'Parameters' => [ 'shape' => 'ParametersMap', ], ], ], 'TableList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Table', ], ], 'TableName' => [ 'type' => 'string', ], 'TablePrefix' => [ 'type' => 'string', 'max' => 128, 'min' => 0, ], 'TableTypeString' => [ 'type' => 'string', 'max' => 255, ], 'TableVersion' => [ 'type' => 'structure', 'members' => [ 'Table' => [ 'shape' => 'Table', ], 'VersionId' => [ 'shape' => 'VersionString', ], ], ], 'TableVersionError' => [ 'type' => 'structure', 'members' => [ 'TableName' => [ 'shape' => 'NameString', ], 'VersionId' => [ 'shape' => 'VersionString', ], 'ErrorDetail' => [ 'shape' => 'ErrorDetail', ], ], ], 'TableVersionErrors' => [ 'type' => 'list', 'member' => [ 'shape' => 'TableVersionError', ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeysList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 50, 'min' => 0, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagsToAdd', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'GlueResourceArn', ], 'TagsToAdd' => [ 'shape' => 'TagsMap', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'TagsMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], 'max' => 50, 'min' => 0, ], 'Timeout' => [ 'type' => 'integer', 'box' => true, 'min' => 1, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TimestampValue' => [ 'type' => 'timestamp', ], 'Token' => [ 'type' => 'string', ], 'TotalSegmentsInteger' => [ 'type' => 'integer', 'max' => 10, 'min' => 1, ], 'Trigger' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Id' => [ 'shape' => 'IdString', ], 'Type' => [ 'shape' => 'TriggerType', ], 'State' => [ 'shape' => 'TriggerState', ], 'Description' => [ 'shape' => 'DescriptionString', ], 'Schedule' => [ 'shape' => 'GenericString', ], 'Actions' => [ 'shape' => 'ActionList', ], 'Predicate' => [ 'shape' => 'Predicate', ], ], ], 'TriggerList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Trigger', ], ], 'TriggerNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NameString', ], ], 'TriggerState' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'CREATED', 'ACTIVATING', 'ACTIVATED', 'DEACTIVATING', 'DEACTIVATED', 'DELETING', 'UPDATING', ], ], 'TriggerType' => [ 'type' => 'string', 'enum' => [ 'SCHEDULED', 'CONDITIONAL', 'ON_DEMAND', ], ], 'TriggerUpdate' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Description' => [ 'shape' => 'DescriptionString', ], 'Schedule' => [ 'shape' => 'GenericString', ], 'Actions' => [ 'shape' => 'ActionList', ], 'Predicate' => [ 'shape' => 'Predicate', ], ], ], 'URI' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*', ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagsToRemove', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'GlueResourceArn', ], 'TagsToRemove' => [ 'shape' => 'TagKeysList', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateBehavior' => [ 'type' => 'string', 'enum' => [ 'LOG', 'UPDATE_IN_DATABASE', ], ], 'UpdateClassifierRequest' => [ 'type' => 'structure', 'members' => [ 'GrokClassifier' => [ 'shape' => 'UpdateGrokClassifierRequest', ], 'XMLClassifier' => [ 'shape' => 'UpdateXMLClassifierRequest', ], 'JsonClassifier' => [ 'shape' => 'UpdateJsonClassifierRequest', ], 'CsvClassifier' => [ 'shape' => 'UpdateCsvClassifierRequest', ], ], ], 'UpdateClassifierResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'ConnectionInput', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'Name' => [ 'shape' => 'NameString', ], 'ConnectionInput' => [ 'shape' => 'ConnectionInput', ], ], ], 'UpdateConnectionResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateCrawlerRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Role' => [ 'shape' => 'Role', ], 'DatabaseName' => [ 'shape' => 'DatabaseName', ], 'Description' => [ 'shape' => 'DescriptionStringRemovable', ], 'Targets' => [ 'shape' => 'CrawlerTargets', ], 'Schedule' => [ 'shape' => 'CronExpression', ], 'Classifiers' => [ 'shape' => 'ClassifierNameList', ], 'TablePrefix' => [ 'shape' => 'TablePrefix', ], 'SchemaChangePolicy' => [ 'shape' => 'SchemaChangePolicy', ], 'Configuration' => [ 'shape' => 'CrawlerConfiguration', ], 'CrawlerSecurityConfiguration' => [ 'shape' => 'CrawlerSecurityConfiguration', ], ], ], 'UpdateCrawlerResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateCrawlerScheduleRequest' => [ 'type' => 'structure', 'required' => [ 'CrawlerName', ], 'members' => [ 'CrawlerName' => [ 'shape' => 'NameString', ], 'Schedule' => [ 'shape' => 'CronExpression', ], ], ], 'UpdateCrawlerScheduleResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateCsvClassifierRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Delimiter' => [ 'shape' => 'CsvColumnDelimiter', ], 'QuoteSymbol' => [ 'shape' => 'CsvQuoteSymbol', ], 'ContainsHeader' => [ 'shape' => 'CsvHeaderOption', ], 'Header' => [ 'shape' => 'CsvHeader', ], 'DisableValueTrimming' => [ 'shape' => 'NullableBoolean', ], 'AllowSingleColumn' => [ 'shape' => 'NullableBoolean', ], ], ], 'UpdateDatabaseRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'DatabaseInput', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'Name' => [ 'shape' => 'NameString', ], 'DatabaseInput' => [ 'shape' => 'DatabaseInput', ], ], ], 'UpdateDatabaseResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateDevEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'EndpointName', ], 'members' => [ 'EndpointName' => [ 'shape' => 'GenericString', ], 'PublicKey' => [ 'shape' => 'GenericString', ], 'AddPublicKeys' => [ 'shape' => 'PublicKeysList', ], 'DeletePublicKeys' => [ 'shape' => 'PublicKeysList', ], 'CustomLibraries' => [ 'shape' => 'DevEndpointCustomLibraries', ], 'UpdateEtlLibraries' => [ 'shape' => 'BooleanValue', ], 'DeleteArguments' => [ 'shape' => 'StringList', ], 'AddArguments' => [ 'shape' => 'MapValue', ], ], ], 'UpdateDevEndpointResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateGrokClassifierRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Classification' => [ 'shape' => 'Classification', ], 'GrokPattern' => [ 'shape' => 'GrokPattern', ], 'CustomPatterns' => [ 'shape' => 'CustomPatterns', ], ], ], 'UpdateJobRequest' => [ 'type' => 'structure', 'required' => [ 'JobName', 'JobUpdate', ], 'members' => [ 'JobName' => [ 'shape' => 'NameString', ], 'JobUpdate' => [ 'shape' => 'JobUpdate', ], ], ], 'UpdateJobResponse' => [ 'type' => 'structure', 'members' => [ 'JobName' => [ 'shape' => 'NameString', ], ], ], 'UpdateJsonClassifierRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'JsonPath' => [ 'shape' => 'JsonPath', ], ], ], 'UpdatePartitionRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'TableName', 'PartitionValueList', 'PartitionInput', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'TableName' => [ 'shape' => 'NameString', ], 'PartitionValueList' => [ 'shape' => 'BoundedPartitionValueList', ], 'PartitionInput' => [ 'shape' => 'PartitionInput', ], ], ], 'UpdatePartitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateTableRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'TableInput', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'TableInput' => [ 'shape' => 'TableInput', ], 'SkipArchive' => [ 'shape' => 'BooleanNullable', ], ], ], 'UpdateTableResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateTriggerRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'TriggerUpdate', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'TriggerUpdate' => [ 'shape' => 'TriggerUpdate', ], ], ], 'UpdateTriggerResponse' => [ 'type' => 'structure', 'members' => [ 'Trigger' => [ 'shape' => 'Trigger', ], ], ], 'UpdateUserDefinedFunctionRequest' => [ 'type' => 'structure', 'required' => [ 'DatabaseName', 'FunctionName', 'FunctionInput', ], 'members' => [ 'CatalogId' => [ 'shape' => 'CatalogIdString', ], 'DatabaseName' => [ 'shape' => 'NameString', ], 'FunctionName' => [ 'shape' => 'NameString', ], 'FunctionInput' => [ 'shape' => 'UserDefinedFunctionInput', ], ], ], 'UpdateUserDefinedFunctionResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateXMLClassifierRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Classification' => [ 'shape' => 'Classification', ], 'RowTag' => [ 'shape' => 'RowTag', ], ], ], 'UriString' => [ 'type' => 'string', ], 'UserDefinedFunction' => [ 'type' => 'structure', 'members' => [ 'FunctionName' => [ 'shape' => 'NameString', ], 'ClassName' => [ 'shape' => 'NameString', ], 'OwnerName' => [ 'shape' => 'NameString', ], 'OwnerType' => [ 'shape' => 'PrincipalType', ], 'CreateTime' => [ 'shape' => 'Timestamp', ], 'ResourceUris' => [ 'shape' => 'ResourceUriList', ], ], ], 'UserDefinedFunctionInput' => [ 'type' => 'structure', 'members' => [ 'FunctionName' => [ 'shape' => 'NameString', ], 'ClassName' => [ 'shape' => 'NameString', ], 'OwnerName' => [ 'shape' => 'NameString', ], 'OwnerType' => [ 'shape' => 'PrincipalType', ], 'ResourceUris' => [ 'shape' => 'ResourceUriList', ], ], ], 'UserDefinedFunctionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserDefinedFunction', ], ], 'ValidationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, ], 'ValueString' => [ 'type' => 'string', 'max' => 1024, ], 'ValueStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ValueString', ], ], 'VersionId' => [ 'type' => 'long', ], 'VersionMismatchException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'MessageString', ], ], 'exception' => true, ], 'VersionString' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*', ], 'ViewTextString' => [ 'type' => 'string', 'max' => 409600, ], 'WorkerType' => [ 'type' => 'string', 'enum' => [ 'Standard', 'G.1X', 'G.2X', ], ], 'XMLClassifier' => [ 'type' => 'structure', 'required' => [ 'Name', 'Classification', ], 'members' => [ 'Name' => [ 'shape' => 'NameString', ], 'Classification' => [ 'shape' => 'Classification', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'LastUpdated' => [ 'shape' => 'Timestamp', ], 'Version' => [ 'shape' => 'VersionId', ], 'RowTag' => [ 'shape' => 'RowTag', ], ], ], ],]; diff --git a/lib/aws/Aws/data/glue/2017-03-31/paginators-1.json.php b/lib/aws/Aws/data/glue/2017-03-31/paginators-1.json.php new file mode 100644 index 0000000..fc96514 --- /dev/null +++ b/lib/aws/Aws/data/glue/2017-03-31/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/glue/2017-03-31/paginators-1.json +return [ 'pagination' => [ 'GetClassifiers' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'GetConnections' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'GetCrawlerMetrics' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'GetCrawlers' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'GetDatabases' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'GetDevEndpoints' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'GetJobRuns' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'GetJobs' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'GetPartitions' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'GetSecurityConfigurations' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'SecurityConfigurations', ], 'GetTableVersions' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'GetTables' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'GetTriggers' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'GetUserDefinedFunctions' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'ListCrawlers' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'ListDevEndpoints' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'ListJobs' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'ListTriggers' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], ],]; diff --git a/lib/aws/Aws/data/glue/2017-03-31/smoke.json.php b/lib/aws/Aws/data/glue/2017-03-31/smoke.json.php new file mode 100644 index 0000000..742f49c --- /dev/null +++ b/lib/aws/Aws/data/glue/2017-03-31/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/glue/2017-03-31/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'GetCatalogImportStatus', 'input' => [], 'errorExpectedFromService' => false, ], ],]; diff --git a/lib/aws/Aws/data/greengrass/2017-06-07/api-2.json.php b/lib/aws/Aws/data/greengrass/2017-06-07/api-2.json.php new file mode 100644 index 0000000..eca229e --- /dev/null +++ b/lib/aws/Aws/data/greengrass/2017-06-07/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/greengrass/2017-06-07/api-2.json +return [ 'metadata' => [ 'apiVersion' => '2017-06-07', 'endpointPrefix' => 'greengrass', 'signingName' => 'greengrass', 'serviceFullName' => 'AWS Greengrass', 'serviceId' => 'Greengrass', 'protocol' => 'rest-json', 'jsonVersion' => '1.1', 'uid' => 'greengrass-2017-06-07', 'signatureVersion' => 'v4', ], 'operations' => [ 'AssociateRoleToGroup' => [ 'name' => 'AssociateRoleToGroup', 'http' => [ 'method' => 'PUT', 'requestUri' => '/greengrass/groups/{GroupId}/role', 'responseCode' => 200, ], 'input' => [ 'shape' => 'AssociateRoleToGroupRequest', ], 'output' => [ 'shape' => 'AssociateRoleToGroupResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'AssociateServiceRoleToAccount' => [ 'name' => 'AssociateServiceRoleToAccount', 'http' => [ 'method' => 'PUT', 'requestUri' => '/greengrass/servicerole', 'responseCode' => 200, ], 'input' => [ 'shape' => 'AssociateServiceRoleToAccountRequest', ], 'output' => [ 'shape' => 'AssociateServiceRoleToAccountResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'CreateConnectorDefinition' => [ 'name' => 'CreateConnectorDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/definition/connectors', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateConnectorDefinitionRequest', ], 'output' => [ 'shape' => 'CreateConnectorDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'CreateConnectorDefinitionVersion' => [ 'name' => 'CreateConnectorDefinitionVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/definition/connectors/{ConnectorDefinitionId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateConnectorDefinitionVersionRequest', ], 'output' => [ 'shape' => 'CreateConnectorDefinitionVersionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'CreateCoreDefinition' => [ 'name' => 'CreateCoreDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/definition/cores', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateCoreDefinitionRequest', ], 'output' => [ 'shape' => 'CreateCoreDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'CreateCoreDefinitionVersion' => [ 'name' => 'CreateCoreDefinitionVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/definition/cores/{CoreDefinitionId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateCoreDefinitionVersionRequest', ], 'output' => [ 'shape' => 'CreateCoreDefinitionVersionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'CreateDeployment' => [ 'name' => 'CreateDeployment', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/groups/{GroupId}/deployments', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateDeploymentRequest', ], 'output' => [ 'shape' => 'CreateDeploymentResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'CreateDeviceDefinition' => [ 'name' => 'CreateDeviceDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/definition/devices', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateDeviceDefinitionRequest', ], 'output' => [ 'shape' => 'CreateDeviceDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'CreateDeviceDefinitionVersion' => [ 'name' => 'CreateDeviceDefinitionVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/definition/devices/{DeviceDefinitionId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateDeviceDefinitionVersionRequest', ], 'output' => [ 'shape' => 'CreateDeviceDefinitionVersionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'CreateFunctionDefinition' => [ 'name' => 'CreateFunctionDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/definition/functions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateFunctionDefinitionRequest', ], 'output' => [ 'shape' => 'CreateFunctionDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'CreateFunctionDefinitionVersion' => [ 'name' => 'CreateFunctionDefinitionVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/definition/functions/{FunctionDefinitionId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateFunctionDefinitionVersionRequest', ], 'output' => [ 'shape' => 'CreateFunctionDefinitionVersionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'CreateGroup' => [ 'name' => 'CreateGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/groups', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateGroupRequest', ], 'output' => [ 'shape' => 'CreateGroupResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'CreateGroupCertificateAuthority' => [ 'name' => 'CreateGroupCertificateAuthority', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/groups/{GroupId}/certificateauthorities', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateGroupCertificateAuthorityRequest', ], 'output' => [ 'shape' => 'CreateGroupCertificateAuthorityResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'CreateGroupVersion' => [ 'name' => 'CreateGroupVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/groups/{GroupId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateGroupVersionRequest', ], 'output' => [ 'shape' => 'CreateGroupVersionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'CreateLoggerDefinition' => [ 'name' => 'CreateLoggerDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/definition/loggers', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateLoggerDefinitionRequest', ], 'output' => [ 'shape' => 'CreateLoggerDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'CreateLoggerDefinitionVersion' => [ 'name' => 'CreateLoggerDefinitionVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/definition/loggers/{LoggerDefinitionId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateLoggerDefinitionVersionRequest', ], 'output' => [ 'shape' => 'CreateLoggerDefinitionVersionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'CreateResourceDefinition' => [ 'name' => 'CreateResourceDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/definition/resources', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateResourceDefinitionRequest', ], 'output' => [ 'shape' => 'CreateResourceDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'CreateResourceDefinitionVersion' => [ 'name' => 'CreateResourceDefinitionVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/definition/resources/{ResourceDefinitionId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateResourceDefinitionVersionRequest', ], 'output' => [ 'shape' => 'CreateResourceDefinitionVersionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'CreateSoftwareUpdateJob' => [ 'name' => 'CreateSoftwareUpdateJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/updates', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateSoftwareUpdateJobRequest', ], 'output' => [ 'shape' => 'CreateSoftwareUpdateJobResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'CreateSubscriptionDefinition' => [ 'name' => 'CreateSubscriptionDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/definition/subscriptions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateSubscriptionDefinitionRequest', ], 'output' => [ 'shape' => 'CreateSubscriptionDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'CreateSubscriptionDefinitionVersion' => [ 'name' => 'CreateSubscriptionDefinitionVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/definition/subscriptions/{SubscriptionDefinitionId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateSubscriptionDefinitionVersionRequest', ], 'output' => [ 'shape' => 'CreateSubscriptionDefinitionVersionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/tags/{resource-arn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'DeleteConnectorDefinition' => [ 'name' => 'DeleteConnectorDefinition', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/greengrass/definition/connectors/{ConnectorDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteConnectorDefinitionRequest', ], 'output' => [ 'shape' => 'DeleteConnectorDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'DeleteCoreDefinition' => [ 'name' => 'DeleteCoreDefinition', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/greengrass/definition/cores/{CoreDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteCoreDefinitionRequest', ], 'output' => [ 'shape' => 'DeleteCoreDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'DeleteDeviceDefinition' => [ 'name' => 'DeleteDeviceDefinition', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/greengrass/definition/devices/{DeviceDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteDeviceDefinitionRequest', ], 'output' => [ 'shape' => 'DeleteDeviceDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'DeleteFunctionDefinition' => [ 'name' => 'DeleteFunctionDefinition', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/greengrass/definition/functions/{FunctionDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteFunctionDefinitionRequest', ], 'output' => [ 'shape' => 'DeleteFunctionDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'DeleteGroup' => [ 'name' => 'DeleteGroup', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/greengrass/groups/{GroupId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteGroupRequest', ], 'output' => [ 'shape' => 'DeleteGroupResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'DeleteLoggerDefinition' => [ 'name' => 'DeleteLoggerDefinition', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/greengrass/definition/loggers/{LoggerDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteLoggerDefinitionRequest', ], 'output' => [ 'shape' => 'DeleteLoggerDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'DeleteResourceDefinition' => [ 'name' => 'DeleteResourceDefinition', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/greengrass/definition/resources/{ResourceDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteResourceDefinitionRequest', ], 'output' => [ 'shape' => 'DeleteResourceDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'DeleteSubscriptionDefinition' => [ 'name' => 'DeleteSubscriptionDefinition', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/greengrass/definition/subscriptions/{SubscriptionDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteSubscriptionDefinitionRequest', ], 'output' => [ 'shape' => 'DeleteSubscriptionDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/tags/{resource-arn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'DisassociateRoleFromGroup' => [ 'name' => 'DisassociateRoleFromGroup', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/greengrass/groups/{GroupId}/role', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DisassociateRoleFromGroupRequest', ], 'output' => [ 'shape' => 'DisassociateRoleFromGroupResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'DisassociateServiceRoleFromAccount' => [ 'name' => 'DisassociateServiceRoleFromAccount', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/greengrass/servicerole', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DisassociateServiceRoleFromAccountRequest', ], 'output' => [ 'shape' => 'DisassociateServiceRoleFromAccountResponse', ], 'errors' => [ [ 'shape' => 'InternalServerErrorException', ], ], ], 'GetAssociatedRole' => [ 'name' => 'GetAssociatedRole', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/groups/{GroupId}/role', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetAssociatedRoleRequest', ], 'output' => [ 'shape' => 'GetAssociatedRoleResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'GetBulkDeploymentStatus' => [ 'name' => 'GetBulkDeploymentStatus', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/bulk/deployments/{BulkDeploymentId}/status', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetBulkDeploymentStatusRequest', ], 'output' => [ 'shape' => 'GetBulkDeploymentStatusResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'GetConnectivityInfo' => [ 'name' => 'GetConnectivityInfo', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/things/{ThingName}/connectivityInfo', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetConnectivityInfoRequest', ], 'output' => [ 'shape' => 'GetConnectivityInfoResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'GetConnectorDefinition' => [ 'name' => 'GetConnectorDefinition', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/connectors/{ConnectorDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetConnectorDefinitionRequest', ], 'output' => [ 'shape' => 'GetConnectorDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'GetConnectorDefinitionVersion' => [ 'name' => 'GetConnectorDefinitionVersion', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/connectors/{ConnectorDefinitionId}/versions/{ConnectorDefinitionVersionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetConnectorDefinitionVersionRequest', ], 'output' => [ 'shape' => 'GetConnectorDefinitionVersionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'GetCoreDefinition' => [ 'name' => 'GetCoreDefinition', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/cores/{CoreDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetCoreDefinitionRequest', ], 'output' => [ 'shape' => 'GetCoreDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'GetCoreDefinitionVersion' => [ 'name' => 'GetCoreDefinitionVersion', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/cores/{CoreDefinitionId}/versions/{CoreDefinitionVersionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetCoreDefinitionVersionRequest', ], 'output' => [ 'shape' => 'GetCoreDefinitionVersionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'GetDeploymentStatus' => [ 'name' => 'GetDeploymentStatus', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/groups/{GroupId}/deployments/{DeploymentId}/status', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetDeploymentStatusRequest', ], 'output' => [ 'shape' => 'GetDeploymentStatusResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'GetDeviceDefinition' => [ 'name' => 'GetDeviceDefinition', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/devices/{DeviceDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetDeviceDefinitionRequest', ], 'output' => [ 'shape' => 'GetDeviceDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'GetDeviceDefinitionVersion' => [ 'name' => 'GetDeviceDefinitionVersion', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/devices/{DeviceDefinitionId}/versions/{DeviceDefinitionVersionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetDeviceDefinitionVersionRequest', ], 'output' => [ 'shape' => 'GetDeviceDefinitionVersionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'GetFunctionDefinition' => [ 'name' => 'GetFunctionDefinition', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/functions/{FunctionDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetFunctionDefinitionRequest', ], 'output' => [ 'shape' => 'GetFunctionDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'GetFunctionDefinitionVersion' => [ 'name' => 'GetFunctionDefinitionVersion', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/functions/{FunctionDefinitionId}/versions/{FunctionDefinitionVersionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetFunctionDefinitionVersionRequest', ], 'output' => [ 'shape' => 'GetFunctionDefinitionVersionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'GetGroup' => [ 'name' => 'GetGroup', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/groups/{GroupId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetGroupRequest', ], 'output' => [ 'shape' => 'GetGroupResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'GetGroupCertificateAuthority' => [ 'name' => 'GetGroupCertificateAuthority', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/groups/{GroupId}/certificateauthorities/{CertificateAuthorityId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetGroupCertificateAuthorityRequest', ], 'output' => [ 'shape' => 'GetGroupCertificateAuthorityResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'GetGroupCertificateConfiguration' => [ 'name' => 'GetGroupCertificateConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/groups/{GroupId}/certificateauthorities/configuration/expiry', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetGroupCertificateConfigurationRequest', ], 'output' => [ 'shape' => 'GetGroupCertificateConfigurationResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'GetGroupVersion' => [ 'name' => 'GetGroupVersion', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/groups/{GroupId}/versions/{GroupVersionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetGroupVersionRequest', ], 'output' => [ 'shape' => 'GetGroupVersionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'GetLoggerDefinition' => [ 'name' => 'GetLoggerDefinition', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/loggers/{LoggerDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetLoggerDefinitionRequest', ], 'output' => [ 'shape' => 'GetLoggerDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'GetLoggerDefinitionVersion' => [ 'name' => 'GetLoggerDefinitionVersion', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/loggers/{LoggerDefinitionId}/versions/{LoggerDefinitionVersionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetLoggerDefinitionVersionRequest', ], 'output' => [ 'shape' => 'GetLoggerDefinitionVersionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'GetResourceDefinition' => [ 'name' => 'GetResourceDefinition', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/resources/{ResourceDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetResourceDefinitionRequest', ], 'output' => [ 'shape' => 'GetResourceDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'GetResourceDefinitionVersion' => [ 'name' => 'GetResourceDefinitionVersion', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/resources/{ResourceDefinitionId}/versions/{ResourceDefinitionVersionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetResourceDefinitionVersionRequest', ], 'output' => [ 'shape' => 'GetResourceDefinitionVersionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'GetServiceRoleForAccount' => [ 'name' => 'GetServiceRoleForAccount', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/servicerole', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetServiceRoleForAccountRequest', ], 'output' => [ 'shape' => 'GetServiceRoleForAccountResponse', ], 'errors' => [ [ 'shape' => 'InternalServerErrorException', ], ], ], 'GetSubscriptionDefinition' => [ 'name' => 'GetSubscriptionDefinition', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/subscriptions/{SubscriptionDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetSubscriptionDefinitionRequest', ], 'output' => [ 'shape' => 'GetSubscriptionDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'GetSubscriptionDefinitionVersion' => [ 'name' => 'GetSubscriptionDefinitionVersion', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/subscriptions/{SubscriptionDefinitionId}/versions/{SubscriptionDefinitionVersionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetSubscriptionDefinitionVersionRequest', ], 'output' => [ 'shape' => 'GetSubscriptionDefinitionVersionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'ListBulkDeploymentDetailedReports' => [ 'name' => 'ListBulkDeploymentDetailedReports', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/bulk/deployments/{BulkDeploymentId}/detailed-reports', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListBulkDeploymentDetailedReportsRequest', ], 'output' => [ 'shape' => 'ListBulkDeploymentDetailedReportsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'ListBulkDeployments' => [ 'name' => 'ListBulkDeployments', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/bulk/deployments', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListBulkDeploymentsRequest', ], 'output' => [ 'shape' => 'ListBulkDeploymentsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'ListConnectorDefinitionVersions' => [ 'name' => 'ListConnectorDefinitionVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/connectors/{ConnectorDefinitionId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListConnectorDefinitionVersionsRequest', ], 'output' => [ 'shape' => 'ListConnectorDefinitionVersionsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'ListConnectorDefinitions' => [ 'name' => 'ListConnectorDefinitions', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/connectors', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListConnectorDefinitionsRequest', ], 'output' => [ 'shape' => 'ListConnectorDefinitionsResponse', ], 'errors' => [], ], 'ListCoreDefinitionVersions' => [ 'name' => 'ListCoreDefinitionVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/cores/{CoreDefinitionId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListCoreDefinitionVersionsRequest', ], 'output' => [ 'shape' => 'ListCoreDefinitionVersionsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'ListCoreDefinitions' => [ 'name' => 'ListCoreDefinitions', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/cores', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListCoreDefinitionsRequest', ], 'output' => [ 'shape' => 'ListCoreDefinitionsResponse', ], 'errors' => [], ], 'ListDeployments' => [ 'name' => 'ListDeployments', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/groups/{GroupId}/deployments', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDeploymentsRequest', ], 'output' => [ 'shape' => 'ListDeploymentsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'ListDeviceDefinitionVersions' => [ 'name' => 'ListDeviceDefinitionVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/devices/{DeviceDefinitionId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDeviceDefinitionVersionsRequest', ], 'output' => [ 'shape' => 'ListDeviceDefinitionVersionsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'ListDeviceDefinitions' => [ 'name' => 'ListDeviceDefinitions', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/devices', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDeviceDefinitionsRequest', ], 'output' => [ 'shape' => 'ListDeviceDefinitionsResponse', ], 'errors' => [], ], 'ListFunctionDefinitionVersions' => [ 'name' => 'ListFunctionDefinitionVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/functions/{FunctionDefinitionId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListFunctionDefinitionVersionsRequest', ], 'output' => [ 'shape' => 'ListFunctionDefinitionVersionsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'ListFunctionDefinitions' => [ 'name' => 'ListFunctionDefinitions', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/functions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListFunctionDefinitionsRequest', ], 'output' => [ 'shape' => 'ListFunctionDefinitionsResponse', ], 'errors' => [], ], 'ListGroupCertificateAuthorities' => [ 'name' => 'ListGroupCertificateAuthorities', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/groups/{GroupId}/certificateauthorities', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListGroupCertificateAuthoritiesRequest', ], 'output' => [ 'shape' => 'ListGroupCertificateAuthoritiesResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'ListGroupVersions' => [ 'name' => 'ListGroupVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/groups/{GroupId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListGroupVersionsRequest', ], 'output' => [ 'shape' => 'ListGroupVersionsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'ListGroups' => [ 'name' => 'ListGroups', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/groups', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListGroupsRequest', ], 'output' => [ 'shape' => 'ListGroupsResponse', ], 'errors' => [], ], 'ListLoggerDefinitionVersions' => [ 'name' => 'ListLoggerDefinitionVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/loggers/{LoggerDefinitionId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListLoggerDefinitionVersionsRequest', ], 'output' => [ 'shape' => 'ListLoggerDefinitionVersionsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'ListLoggerDefinitions' => [ 'name' => 'ListLoggerDefinitions', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/loggers', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListLoggerDefinitionsRequest', ], 'output' => [ 'shape' => 'ListLoggerDefinitionsResponse', ], 'errors' => [], ], 'ListResourceDefinitionVersions' => [ 'name' => 'ListResourceDefinitionVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/resources/{ResourceDefinitionId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListResourceDefinitionVersionsRequest', ], 'output' => [ 'shape' => 'ListResourceDefinitionVersionsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'ListResourceDefinitions' => [ 'name' => 'ListResourceDefinitions', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/resources', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListResourceDefinitionsRequest', ], 'output' => [ 'shape' => 'ListResourceDefinitionsResponse', ], 'errors' => [], ], 'ListSubscriptionDefinitionVersions' => [ 'name' => 'ListSubscriptionDefinitionVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/subscriptions/{SubscriptionDefinitionId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListSubscriptionDefinitionVersionsRequest', ], 'output' => [ 'shape' => 'ListSubscriptionDefinitionVersionsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'ListSubscriptionDefinitions' => [ 'name' => 'ListSubscriptionDefinitions', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/definition/subscriptions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListSubscriptionDefinitionsRequest', ], 'output' => [ 'shape' => 'ListSubscriptionDefinitionsResponse', ], 'errors' => [], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/tags/{resource-arn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'ResetDeployments' => [ 'name' => 'ResetDeployments', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/groups/{GroupId}/deployments/$reset', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ResetDeploymentsRequest', ], 'output' => [ 'shape' => 'ResetDeploymentsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'StartBulkDeployment' => [ 'name' => 'StartBulkDeployment', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/bulk/deployments', 'responseCode' => 200, ], 'input' => [ 'shape' => 'StartBulkDeploymentRequest', ], 'output' => [ 'shape' => 'StartBulkDeploymentResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'StopBulkDeployment' => [ 'name' => 'StopBulkDeployment', 'http' => [ 'method' => 'PUT', 'requestUri' => '/greengrass/bulk/deployments/{BulkDeploymentId}/$stop', 'responseCode' => 200, ], 'input' => [ 'shape' => 'StopBulkDeploymentRequest', ], 'output' => [ 'shape' => 'StopBulkDeploymentResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'UpdateConnectivityInfo' => [ 'name' => 'UpdateConnectivityInfo', 'http' => [ 'method' => 'PUT', 'requestUri' => '/greengrass/things/{ThingName}/connectivityInfo', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateConnectivityInfoRequest', ], 'output' => [ 'shape' => 'UpdateConnectivityInfoResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'UpdateConnectorDefinition' => [ 'name' => 'UpdateConnectorDefinition', 'http' => [ 'method' => 'PUT', 'requestUri' => '/greengrass/definition/connectors/{ConnectorDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateConnectorDefinitionRequest', ], 'output' => [ 'shape' => 'UpdateConnectorDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'UpdateCoreDefinition' => [ 'name' => 'UpdateCoreDefinition', 'http' => [ 'method' => 'PUT', 'requestUri' => '/greengrass/definition/cores/{CoreDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateCoreDefinitionRequest', ], 'output' => [ 'shape' => 'UpdateCoreDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'UpdateDeviceDefinition' => [ 'name' => 'UpdateDeviceDefinition', 'http' => [ 'method' => 'PUT', 'requestUri' => '/greengrass/definition/devices/{DeviceDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateDeviceDefinitionRequest', ], 'output' => [ 'shape' => 'UpdateDeviceDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'UpdateFunctionDefinition' => [ 'name' => 'UpdateFunctionDefinition', 'http' => [ 'method' => 'PUT', 'requestUri' => '/greengrass/definition/functions/{FunctionDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateFunctionDefinitionRequest', ], 'output' => [ 'shape' => 'UpdateFunctionDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'UpdateGroup' => [ 'name' => 'UpdateGroup', 'http' => [ 'method' => 'PUT', 'requestUri' => '/greengrass/groups/{GroupId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateGroupRequest', ], 'output' => [ 'shape' => 'UpdateGroupResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'UpdateGroupCertificateConfiguration' => [ 'name' => 'UpdateGroupCertificateConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/greengrass/groups/{GroupId}/certificateauthorities/configuration/expiry', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateGroupCertificateConfigurationRequest', ], 'output' => [ 'shape' => 'UpdateGroupCertificateConfigurationResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'UpdateLoggerDefinition' => [ 'name' => 'UpdateLoggerDefinition', 'http' => [ 'method' => 'PUT', 'requestUri' => '/greengrass/definition/loggers/{LoggerDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateLoggerDefinitionRequest', ], 'output' => [ 'shape' => 'UpdateLoggerDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'UpdateResourceDefinition' => [ 'name' => 'UpdateResourceDefinition', 'http' => [ 'method' => 'PUT', 'requestUri' => '/greengrass/definition/resources/{ResourceDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateResourceDefinitionRequest', ], 'output' => [ 'shape' => 'UpdateResourceDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'UpdateSubscriptionDefinition' => [ 'name' => 'UpdateSubscriptionDefinition', 'http' => [ 'method' => 'PUT', 'requestUri' => '/greengrass/definition/subscriptions/{SubscriptionDefinitionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateSubscriptionDefinitionRequest', ], 'output' => [ 'shape' => 'UpdateSubscriptionDefinitionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], ], 'shapes' => [ 'AssociateRoleToGroupRequest' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'GroupId', ], 'RoleArn' => [ 'shape' => '__string', ], ], 'required' => [ 'GroupId', ], ], 'AssociateRoleToGroupResponse' => [ 'type' => 'structure', 'members' => [ 'AssociatedAt' => [ 'shape' => '__string', ], ], ], 'AssociateServiceRoleToAccountRequest' => [ 'type' => 'structure', 'members' => [ 'RoleArn' => [ 'shape' => '__string', ], ], ], 'AssociateServiceRoleToAccountResponse' => [ 'type' => 'structure', 'members' => [ 'AssociatedAt' => [ 'shape' => '__string', ], ], ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'ErrorDetails' => [ 'shape' => 'ErrorDetails', ], 'Message' => [ 'shape' => '__string', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 400, ], ], 'BulkDeployment' => [ 'type' => 'structure', 'members' => [ 'BulkDeploymentArn' => [ 'shape' => '__string', ], 'BulkDeploymentId' => [ 'shape' => '__string', ], 'CreatedAt' => [ 'shape' => '__string', ], ], ], 'BulkDeploymentMetrics' => [ 'type' => 'structure', 'members' => [ 'InvalidInputRecords' => [ 'shape' => '__integer', ], 'RecordsProcessed' => [ 'shape' => '__integer', ], 'RetryAttempts' => [ 'shape' => '__integer', ], ], ], 'BulkDeploymentResult' => [ 'type' => 'structure', 'members' => [ 'CreatedAt' => [ 'shape' => '__string', ], 'DeploymentArn' => [ 'shape' => '__string', ], 'DeploymentId' => [ 'shape' => '__string', ], 'DeploymentStatus' => [ 'shape' => '__string', ], 'DeploymentType' => [ 'shape' => 'DeploymentType', ], 'ErrorDetails' => [ 'shape' => 'ErrorDetails', ], 'ErrorMessage' => [ 'shape' => '__string', ], 'GroupArn' => [ 'shape' => '__string', ], ], ], 'BulkDeploymentResults' => [ 'type' => 'list', 'member' => [ 'shape' => 'BulkDeploymentResult', ], ], 'BulkDeploymentStatus' => [ 'type' => 'string', 'enum' => [ 'Initializing', 'Running', 'Completed', 'Stopping', 'Stopped', 'Failed', ], ], 'BulkDeployments' => [ 'type' => 'list', 'member' => [ 'shape' => 'BulkDeployment', ], ], 'ConnectivityInfo' => [ 'type' => 'structure', 'members' => [ 'HostAddress' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'Metadata' => [ 'shape' => '__string', ], 'PortNumber' => [ 'shape' => '__integer', ], ], ], 'Connector' => [ 'type' => 'structure', 'members' => [ 'ConnectorArn' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'Parameters' => [ 'shape' => '__mapOf__string', ], ], 'required' => [], ], 'ConnectorDefinitionVersion' => [ 'type' => 'structure', 'members' => [ 'Connectors' => [ 'shape' => '__listOfConnector', ], ], ], 'Core' => [ 'type' => 'structure', 'members' => [ 'CertificateArn' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'SyncShadow' => [ 'shape' => '__boolean', ], 'ThingArn' => [ 'shape' => '__string', ], ], 'required' => [], ], 'CoreDefinitionVersion' => [ 'type' => 'structure', 'members' => [ 'Cores' => [ 'shape' => '__listOfCore', ], ], ], 'CreateConnectorDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'InitialVersion' => [ 'shape' => 'ConnectorDefinitionVersion', ], 'Name' => [ 'shape' => '__string', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'CreateConnectorDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'LastUpdatedTimestamp' => [ 'shape' => '__string', ], 'LatestVersion' => [ 'shape' => '__string', ], 'LatestVersionArn' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], ], ], 'CreateConnectorDefinitionVersionRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'ConnectorDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ConnectorDefinitionId', ], 'Connectors' => [ 'shape' => '__listOfConnector', ], ], 'required' => [ 'ConnectorDefinitionId', ], ], 'CreateConnectorDefinitionVersionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__string', ], ], ], 'CreateCoreDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'InitialVersion' => [ 'shape' => 'CoreDefinitionVersion', ], 'Name' => [ 'shape' => '__string', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'CreateCoreDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'LastUpdatedTimestamp' => [ 'shape' => '__string', ], 'LatestVersion' => [ 'shape' => '__string', ], 'LatestVersionArn' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], ], ], 'CreateCoreDefinitionVersionRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'CoreDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'CoreDefinitionId', ], 'Cores' => [ 'shape' => '__listOfCore', ], ], 'required' => [ 'CoreDefinitionId', ], ], 'CreateCoreDefinitionVersionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__string', ], ], ], 'CreateDeploymentRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'DeploymentId' => [ 'shape' => '__string', ], 'DeploymentType' => [ 'shape' => 'DeploymentType', ], 'GroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'GroupId', ], 'GroupVersionId' => [ 'shape' => '__string', ], ], 'required' => [ 'GroupId', ], ], 'CreateDeploymentResponse' => [ 'type' => 'structure', 'members' => [ 'DeploymentArn' => [ 'shape' => '__string', ], 'DeploymentId' => [ 'shape' => '__string', ], ], ], 'CreateDeviceDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'InitialVersion' => [ 'shape' => 'DeviceDefinitionVersion', ], 'Name' => [ 'shape' => '__string', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'CreateDeviceDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'LastUpdatedTimestamp' => [ 'shape' => '__string', ], 'LatestVersion' => [ 'shape' => '__string', ], 'LatestVersionArn' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], ], ], 'CreateDeviceDefinitionVersionRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'DeviceDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'DeviceDefinitionId', ], 'Devices' => [ 'shape' => '__listOfDevice', ], ], 'required' => [ 'DeviceDefinitionId', ], ], 'CreateDeviceDefinitionVersionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__string', ], ], ], 'CreateFunctionDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'InitialVersion' => [ 'shape' => 'FunctionDefinitionVersion', ], 'Name' => [ 'shape' => '__string', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'CreateFunctionDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'LastUpdatedTimestamp' => [ 'shape' => '__string', ], 'LatestVersion' => [ 'shape' => '__string', ], 'LatestVersionArn' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], ], ], 'CreateFunctionDefinitionVersionRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'DefaultConfig' => [ 'shape' => 'FunctionDefaultConfig', ], 'FunctionDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'FunctionDefinitionId', ], 'Functions' => [ 'shape' => '__listOfFunction', ], ], 'required' => [ 'FunctionDefinitionId', ], ], 'CreateFunctionDefinitionVersionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__string', ], ], ], 'CreateGroupCertificateAuthorityRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'GroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'GroupId', ], ], 'required' => [ 'GroupId', ], ], 'CreateGroupCertificateAuthorityResponse' => [ 'type' => 'structure', 'members' => [ 'GroupCertificateAuthorityArn' => [ 'shape' => '__string', ], ], ], 'CreateGroupRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'InitialVersion' => [ 'shape' => 'GroupVersion', ], 'Name' => [ 'shape' => '__string', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'CreateGroupResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'LastUpdatedTimestamp' => [ 'shape' => '__string', ], 'LatestVersion' => [ 'shape' => '__string', ], 'LatestVersionArn' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], ], ], 'CreateGroupVersionRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'ConnectorDefinitionVersionArn' => [ 'shape' => '__string', ], 'CoreDefinitionVersionArn' => [ 'shape' => '__string', ], 'DeviceDefinitionVersionArn' => [ 'shape' => '__string', ], 'FunctionDefinitionVersionArn' => [ 'shape' => '__string', ], 'GroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'GroupId', ], 'LoggerDefinitionVersionArn' => [ 'shape' => '__string', ], 'ResourceDefinitionVersionArn' => [ 'shape' => '__string', ], 'SubscriptionDefinitionVersionArn' => [ 'shape' => '__string', ], ], 'required' => [ 'GroupId', ], ], 'CreateGroupVersionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__string', ], ], ], 'CreateLoggerDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'InitialVersion' => [ 'shape' => 'LoggerDefinitionVersion', ], 'Name' => [ 'shape' => '__string', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'CreateLoggerDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'LastUpdatedTimestamp' => [ 'shape' => '__string', ], 'LatestVersion' => [ 'shape' => '__string', ], 'LatestVersionArn' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], ], ], 'CreateLoggerDefinitionVersionRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'LoggerDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'LoggerDefinitionId', ], 'Loggers' => [ 'shape' => '__listOfLogger', ], ], 'required' => [ 'LoggerDefinitionId', ], ], 'CreateLoggerDefinitionVersionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__string', ], ], ], 'CreateResourceDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'InitialVersion' => [ 'shape' => 'ResourceDefinitionVersion', ], 'Name' => [ 'shape' => '__string', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'CreateResourceDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'LastUpdatedTimestamp' => [ 'shape' => '__string', ], 'LatestVersion' => [ 'shape' => '__string', ], 'LatestVersionArn' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], ], ], 'CreateResourceDefinitionVersionRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'ResourceDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ResourceDefinitionId', ], 'Resources' => [ 'shape' => '__listOfResource', ], ], 'required' => [ 'ResourceDefinitionId', ], ], 'CreateResourceDefinitionVersionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__string', ], ], ], 'CreateSoftwareUpdateJobRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'S3UrlSignerRole' => [ 'shape' => 'S3UrlSignerRole', ], 'SoftwareToUpdate' => [ 'shape' => 'SoftwareToUpdate', ], 'UpdateAgentLogLevel' => [ 'shape' => 'UpdateAgentLogLevel', ], 'UpdateTargets' => [ 'shape' => 'UpdateTargets', ], 'UpdateTargetsArchitecture' => [ 'shape' => 'UpdateTargetsArchitecture', ], 'UpdateTargetsOperatingSystem' => [ 'shape' => 'UpdateTargetsOperatingSystem', ], ], ], 'CreateSoftwareUpdateJobResponse' => [ 'type' => 'structure', 'members' => [ 'IotJobArn' => [ 'shape' => '__string', ], 'IotJobId' => [ 'shape' => '__string', ], ], ], 'CreateSubscriptionDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'InitialVersion' => [ 'shape' => 'SubscriptionDefinitionVersion', ], 'Name' => [ 'shape' => '__string', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'CreateSubscriptionDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'LastUpdatedTimestamp' => [ 'shape' => '__string', ], 'LatestVersion' => [ 'shape' => '__string', ], 'LatestVersionArn' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], ], ], 'CreateSubscriptionDefinitionVersionRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'SubscriptionDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'SubscriptionDefinitionId', ], 'Subscriptions' => [ 'shape' => '__listOfSubscription', ], ], 'required' => [ 'SubscriptionDefinitionId', ], ], 'CreateSubscriptionDefinitionVersionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__string', ], ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'resource-arn', ], 'tags' => [ 'shape' => '__mapOf__string', ], ], 'required' => [ 'ResourceArn', 'tags', ], ], 'DefinitionInformation' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'LastUpdatedTimestamp' => [ 'shape' => '__string', ], 'LatestVersion' => [ 'shape' => '__string', ], 'LatestVersionArn' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], ], ], 'DeleteConnectorDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'ConnectorDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ConnectorDefinitionId', ], ], 'required' => [ 'ConnectorDefinitionId', ], ], 'DeleteConnectorDefinitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteCoreDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'CoreDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'CoreDefinitionId', ], ], 'required' => [ 'CoreDefinitionId', ], ], 'DeleteCoreDefinitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteDeviceDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'DeviceDefinitionId', ], ], 'required' => [ 'DeviceDefinitionId', ], ], 'DeleteDeviceDefinitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteFunctionDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'FunctionDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'FunctionDefinitionId', ], ], 'required' => [ 'FunctionDefinitionId', ], ], 'DeleteFunctionDefinitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteGroupRequest' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'GroupId', ], ], 'required' => [ 'GroupId', ], ], 'DeleteGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteLoggerDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'LoggerDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'LoggerDefinitionId', ], ], 'required' => [ 'LoggerDefinitionId', ], ], 'DeleteLoggerDefinitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteResourceDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ResourceDefinitionId', ], ], 'required' => [ 'ResourceDefinitionId', ], ], 'DeleteResourceDefinitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteSubscriptionDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'SubscriptionDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'SubscriptionDefinitionId', ], ], 'required' => [ 'SubscriptionDefinitionId', ], ], 'DeleteSubscriptionDefinitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'resource-arn', ], 'TagKeys' => [ 'shape' => '__listOf__string', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], 'required' => [ 'TagKeys', 'ResourceArn', ], ], 'Deployment' => [ 'type' => 'structure', 'members' => [ 'CreatedAt' => [ 'shape' => '__string', ], 'DeploymentArn' => [ 'shape' => '__string', ], 'DeploymentId' => [ 'shape' => '__string', ], 'DeploymentType' => [ 'shape' => 'DeploymentType', ], 'GroupArn' => [ 'shape' => '__string', ], ], ], 'DeploymentType' => [ 'type' => 'string', 'enum' => [ 'NewDeployment', 'Redeployment', 'ResetDeployment', 'ForceResetDeployment', ], ], 'Deployments' => [ 'type' => 'list', 'member' => [ 'shape' => 'Deployment', ], ], 'Device' => [ 'type' => 'structure', 'members' => [ 'CertificateArn' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'SyncShadow' => [ 'shape' => '__boolean', ], 'ThingArn' => [ 'shape' => '__string', ], ], 'required' => [], ], 'DeviceDefinitionVersion' => [ 'type' => 'structure', 'members' => [ 'Devices' => [ 'shape' => '__listOfDevice', ], ], ], 'DisassociateRoleFromGroupRequest' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'GroupId', ], ], 'required' => [ 'GroupId', ], ], 'DisassociateRoleFromGroupResponse' => [ 'type' => 'structure', 'members' => [ 'DisassociatedAt' => [ 'shape' => '__string', ], ], ], 'DisassociateServiceRoleFromAccountRequest' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateServiceRoleFromAccountResponse' => [ 'type' => 'structure', 'members' => [ 'DisassociatedAt' => [ 'shape' => '__string', ], ], ], 'Empty' => [ 'type' => 'structure', 'members' => [], ], 'EncodingType' => [ 'type' => 'string', 'enum' => [ 'binary', 'json', ], ], 'ErrorDetail' => [ 'type' => 'structure', 'members' => [ 'DetailedErrorCode' => [ 'shape' => '__string', ], 'DetailedErrorMessage' => [ 'shape' => '__string', ], ], ], 'ErrorDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'ErrorDetail', ], ], 'Function' => [ 'type' => 'structure', 'members' => [ 'FunctionArn' => [ 'shape' => '__string', ], 'FunctionConfiguration' => [ 'shape' => 'FunctionConfiguration', ], 'Id' => [ 'shape' => '__string', ], ], 'required' => [], ], 'FunctionConfiguration' => [ 'type' => 'structure', 'members' => [ 'EncodingType' => [ 'shape' => 'EncodingType', ], 'Environment' => [ 'shape' => 'FunctionConfigurationEnvironment', ], 'ExecArgs' => [ 'shape' => '__string', ], 'Executable' => [ 'shape' => '__string', ], 'MemorySize' => [ 'shape' => '__integer', ], 'Pinned' => [ 'shape' => '__boolean', ], 'Timeout' => [ 'shape' => '__integer', ], ], ], 'FunctionConfigurationEnvironment' => [ 'type' => 'structure', 'members' => [ 'AccessSysfs' => [ 'shape' => '__boolean', ], 'Execution' => [ 'shape' => 'FunctionExecutionConfig', ], 'ResourceAccessPolicies' => [ 'shape' => '__listOfResourceAccessPolicy', ], 'Variables' => [ 'shape' => '__mapOf__string', ], ], ], 'FunctionDefaultConfig' => [ 'type' => 'structure', 'members' => [ 'Execution' => [ 'shape' => 'FunctionDefaultExecutionConfig', ], ], ], 'FunctionDefaultExecutionConfig' => [ 'type' => 'structure', 'members' => [ 'IsolationMode' => [ 'shape' => 'FunctionIsolationMode', ], 'RunAs' => [ 'shape' => 'FunctionRunAsConfig', ], ], ], 'FunctionDefinitionVersion' => [ 'type' => 'structure', 'members' => [ 'DefaultConfig' => [ 'shape' => 'FunctionDefaultConfig', ], 'Functions' => [ 'shape' => '__listOfFunction', ], ], ], 'FunctionExecutionConfig' => [ 'type' => 'structure', 'members' => [ 'IsolationMode' => [ 'shape' => 'FunctionIsolationMode', ], 'RunAs' => [ 'shape' => 'FunctionRunAsConfig', ], ], ], 'FunctionIsolationMode' => [ 'type' => 'string', 'enum' => [ 'GreengrassContainer', 'NoContainer', ], ], 'FunctionRunAsConfig' => [ 'type' => 'structure', 'members' => [ 'Gid' => [ 'shape' => '__integer', ], 'Uid' => [ 'shape' => '__integer', ], ], ], 'GeneralError' => [ 'type' => 'structure', 'members' => [ 'ErrorDetails' => [ 'shape' => 'ErrorDetails', ], 'Message' => [ 'shape' => '__string', ], ], ], 'GetAssociatedRoleRequest' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'GroupId', ], ], 'required' => [ 'GroupId', ], ], 'GetAssociatedRoleResponse' => [ 'type' => 'structure', 'members' => [ 'AssociatedAt' => [ 'shape' => '__string', ], 'RoleArn' => [ 'shape' => '__string', ], ], ], 'GetBulkDeploymentStatusRequest' => [ 'type' => 'structure', 'members' => [ 'BulkDeploymentId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'BulkDeploymentId', ], ], 'required' => [ 'BulkDeploymentId', ], ], 'GetBulkDeploymentStatusResponse' => [ 'type' => 'structure', 'members' => [ 'BulkDeploymentMetrics' => [ 'shape' => 'BulkDeploymentMetrics', ], 'BulkDeploymentStatus' => [ 'shape' => 'BulkDeploymentStatus', ], 'CreatedAt' => [ 'shape' => '__string', ], 'ErrorDetails' => [ 'shape' => 'ErrorDetails', ], 'ErrorMessage' => [ 'shape' => '__string', ], 'tags' => [ 'shape' => '__mapOf__string', ], ], ], 'GetConnectivityInfoRequest' => [ 'type' => 'structure', 'members' => [ 'ThingName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ThingName', ], ], 'required' => [ 'ThingName', ], ], 'GetConnectivityInfoResponse' => [ 'type' => 'structure', 'members' => [ 'ConnectivityInfo' => [ 'shape' => '__listOfConnectivityInfo', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], ], 'GetConnectorDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'ConnectorDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ConnectorDefinitionId', ], ], 'required' => [ 'ConnectorDefinitionId', ], ], 'GetConnectorDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'LastUpdatedTimestamp' => [ 'shape' => '__string', ], 'LatestVersion' => [ 'shape' => '__string', ], 'LatestVersionArn' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], 'tags' => [ 'shape' => '__mapOf__string', ], ], ], 'GetConnectorDefinitionVersionRequest' => [ 'type' => 'structure', 'members' => [ 'ConnectorDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ConnectorDefinitionId', ], 'ConnectorDefinitionVersionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ConnectorDefinitionVersionId', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], 'required' => [ 'ConnectorDefinitionId', 'ConnectorDefinitionVersionId', ], ], 'GetConnectorDefinitionVersionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Definition' => [ 'shape' => 'ConnectorDefinitionVersion', ], 'Id' => [ 'shape' => '__string', ], 'NextToken' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__string', ], ], ], 'GetCoreDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'CoreDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'CoreDefinitionId', ], ], 'required' => [ 'CoreDefinitionId', ], ], 'GetCoreDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'LastUpdatedTimestamp' => [ 'shape' => '__string', ], 'LatestVersion' => [ 'shape' => '__string', ], 'LatestVersionArn' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], 'tags' => [ 'shape' => '__mapOf__string', ], ], ], 'GetCoreDefinitionVersionRequest' => [ 'type' => 'structure', 'members' => [ 'CoreDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'CoreDefinitionId', ], 'CoreDefinitionVersionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'CoreDefinitionVersionId', ], ], 'required' => [ 'CoreDefinitionId', 'CoreDefinitionVersionId', ], ], 'GetCoreDefinitionVersionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Definition' => [ 'shape' => 'CoreDefinitionVersion', ], 'Id' => [ 'shape' => '__string', ], 'NextToken' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__string', ], ], ], 'GetDeploymentStatusRequest' => [ 'type' => 'structure', 'members' => [ 'DeploymentId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'DeploymentId', ], 'GroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'GroupId', ], ], 'required' => [ 'GroupId', 'DeploymentId', ], ], 'GetDeploymentStatusResponse' => [ 'type' => 'structure', 'members' => [ 'DeploymentStatus' => [ 'shape' => '__string', ], 'DeploymentType' => [ 'shape' => 'DeploymentType', ], 'ErrorDetails' => [ 'shape' => 'ErrorDetails', ], 'ErrorMessage' => [ 'shape' => '__string', ], 'UpdatedAt' => [ 'shape' => '__string', ], ], ], 'GetDeviceDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'DeviceDefinitionId', ], ], 'required' => [ 'DeviceDefinitionId', ], ], 'GetDeviceDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'LastUpdatedTimestamp' => [ 'shape' => '__string', ], 'LatestVersion' => [ 'shape' => '__string', ], 'LatestVersionArn' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], 'tags' => [ 'shape' => '__mapOf__string', ], ], ], 'GetDeviceDefinitionVersionRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'DeviceDefinitionId', ], 'DeviceDefinitionVersionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'DeviceDefinitionVersionId', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], 'required' => [ 'DeviceDefinitionVersionId', 'DeviceDefinitionId', ], ], 'GetDeviceDefinitionVersionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Definition' => [ 'shape' => 'DeviceDefinitionVersion', ], 'Id' => [ 'shape' => '__string', ], 'NextToken' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__string', ], ], ], 'GetFunctionDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'FunctionDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'FunctionDefinitionId', ], ], 'required' => [ 'FunctionDefinitionId', ], ], 'GetFunctionDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'LastUpdatedTimestamp' => [ 'shape' => '__string', ], 'LatestVersion' => [ 'shape' => '__string', ], 'LatestVersionArn' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], 'tags' => [ 'shape' => '__mapOf__string', ], ], ], 'GetFunctionDefinitionVersionRequest' => [ 'type' => 'structure', 'members' => [ 'FunctionDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'FunctionDefinitionId', ], 'FunctionDefinitionVersionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'FunctionDefinitionVersionId', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], 'required' => [ 'FunctionDefinitionId', 'FunctionDefinitionVersionId', ], ], 'GetFunctionDefinitionVersionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Definition' => [ 'shape' => 'FunctionDefinitionVersion', ], 'Id' => [ 'shape' => '__string', ], 'NextToken' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__string', ], ], ], 'GetGroupCertificateAuthorityRequest' => [ 'type' => 'structure', 'members' => [ 'CertificateAuthorityId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'CertificateAuthorityId', ], 'GroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'GroupId', ], ], 'required' => [ 'CertificateAuthorityId', 'GroupId', ], ], 'GetGroupCertificateAuthorityResponse' => [ 'type' => 'structure', 'members' => [ 'GroupCertificateAuthorityArn' => [ 'shape' => '__string', ], 'GroupCertificateAuthorityId' => [ 'shape' => '__string', ], 'PemEncodedCertificate' => [ 'shape' => '__string', ], ], ], 'GetGroupCertificateConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'GroupId', ], ], 'required' => [ 'GroupId', ], ], 'GetGroupCertificateConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'CertificateAuthorityExpiryInMilliseconds' => [ 'shape' => '__string', ], 'CertificateExpiryInMilliseconds' => [ 'shape' => '__string', ], 'GroupId' => [ 'shape' => '__string', ], ], ], 'GetGroupRequest' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'GroupId', ], ], 'required' => [ 'GroupId', ], ], 'GetGroupResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'LastUpdatedTimestamp' => [ 'shape' => '__string', ], 'LatestVersion' => [ 'shape' => '__string', ], 'LatestVersionArn' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], 'tags' => [ 'shape' => '__mapOf__string', ], ], ], 'GetGroupVersionRequest' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'GroupId', ], 'GroupVersionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'GroupVersionId', ], ], 'required' => [ 'GroupVersionId', 'GroupId', ], ], 'GetGroupVersionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Definition' => [ 'shape' => 'GroupVersion', ], 'Id' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__string', ], ], ], 'GetLoggerDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'LoggerDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'LoggerDefinitionId', ], ], 'required' => [ 'LoggerDefinitionId', ], ], 'GetLoggerDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'LastUpdatedTimestamp' => [ 'shape' => '__string', ], 'LatestVersion' => [ 'shape' => '__string', ], 'LatestVersionArn' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], 'tags' => [ 'shape' => '__mapOf__string', ], ], ], 'GetLoggerDefinitionVersionRequest' => [ 'type' => 'structure', 'members' => [ 'LoggerDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'LoggerDefinitionId', ], 'LoggerDefinitionVersionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'LoggerDefinitionVersionId', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], 'required' => [ 'LoggerDefinitionVersionId', 'LoggerDefinitionId', ], ], 'GetLoggerDefinitionVersionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Definition' => [ 'shape' => 'LoggerDefinitionVersion', ], 'Id' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__string', ], ], ], 'GetResourceDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ResourceDefinitionId', ], ], 'required' => [ 'ResourceDefinitionId', ], ], 'GetResourceDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'LastUpdatedTimestamp' => [ 'shape' => '__string', ], 'LatestVersion' => [ 'shape' => '__string', ], 'LatestVersionArn' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], 'tags' => [ 'shape' => '__mapOf__string', ], ], ], 'GetResourceDefinitionVersionRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ResourceDefinitionId', ], 'ResourceDefinitionVersionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ResourceDefinitionVersionId', ], ], 'required' => [ 'ResourceDefinitionVersionId', 'ResourceDefinitionId', ], ], 'GetResourceDefinitionVersionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Definition' => [ 'shape' => 'ResourceDefinitionVersion', ], 'Id' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__string', ], ], ], 'GetServiceRoleForAccountRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetServiceRoleForAccountResponse' => [ 'type' => 'structure', 'members' => [ 'AssociatedAt' => [ 'shape' => '__string', ], 'RoleArn' => [ 'shape' => '__string', ], ], ], 'GetSubscriptionDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'SubscriptionDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'SubscriptionDefinitionId', ], ], 'required' => [ 'SubscriptionDefinitionId', ], ], 'GetSubscriptionDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'LastUpdatedTimestamp' => [ 'shape' => '__string', ], 'LatestVersion' => [ 'shape' => '__string', ], 'LatestVersionArn' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], 'tags' => [ 'shape' => '__mapOf__string', ], ], ], 'GetSubscriptionDefinitionVersionRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], 'SubscriptionDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'SubscriptionDefinitionId', ], 'SubscriptionDefinitionVersionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'SubscriptionDefinitionVersionId', ], ], 'required' => [ 'SubscriptionDefinitionId', 'SubscriptionDefinitionVersionId', ], ], 'GetSubscriptionDefinitionVersionResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Definition' => [ 'shape' => 'SubscriptionDefinitionVersion', ], 'Id' => [ 'shape' => '__string', ], 'NextToken' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__string', ], ], ], 'GroupCertificateAuthorityProperties' => [ 'type' => 'structure', 'members' => [ 'GroupCertificateAuthorityArn' => [ 'shape' => '__string', ], 'GroupCertificateAuthorityId' => [ 'shape' => '__string', ], ], ], 'GroupCertificateConfiguration' => [ 'type' => 'structure', 'members' => [ 'CertificateAuthorityExpiryInMilliseconds' => [ 'shape' => '__string', ], 'CertificateExpiryInMilliseconds' => [ 'shape' => '__string', ], 'GroupId' => [ 'shape' => '__string', ], ], ], 'GroupInformation' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'LastUpdatedTimestamp' => [ 'shape' => '__string', ], 'LatestVersion' => [ 'shape' => '__string', ], 'LatestVersionArn' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], ], ], 'GroupOwnerSetting' => [ 'type' => 'structure', 'members' => [ 'AutoAddGroupOwner' => [ 'shape' => '__boolean', ], 'GroupOwner' => [ 'shape' => '__string', ], ], ], 'GroupVersion' => [ 'type' => 'structure', 'members' => [ 'ConnectorDefinitionVersionArn' => [ 'shape' => '__string', ], 'CoreDefinitionVersionArn' => [ 'shape' => '__string', ], 'DeviceDefinitionVersionArn' => [ 'shape' => '__string', ], 'FunctionDefinitionVersionArn' => [ 'shape' => '__string', ], 'LoggerDefinitionVersionArn' => [ 'shape' => '__string', ], 'ResourceDefinitionVersionArn' => [ 'shape' => '__string', ], 'SubscriptionDefinitionVersionArn' => [ 'shape' => '__string', ], ], ], 'InternalServerErrorException' => [ 'type' => 'structure', 'members' => [ 'ErrorDetails' => [ 'shape' => 'ErrorDetails', ], 'Message' => [ 'shape' => '__string', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 500, ], ], 'ListBulkDeploymentDetailedReportsRequest' => [ 'type' => 'structure', 'members' => [ 'BulkDeploymentId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'BulkDeploymentId', ], 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], 'required' => [ 'BulkDeploymentId', ], ], 'ListBulkDeploymentDetailedReportsResponse' => [ 'type' => 'structure', 'members' => [ 'Deployments' => [ 'shape' => 'BulkDeploymentResults', ], 'NextToken' => [ 'shape' => '__string', ], ], ], 'ListBulkDeploymentsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], ], 'ListBulkDeploymentsResponse' => [ 'type' => 'structure', 'members' => [ 'BulkDeployments' => [ 'shape' => 'BulkDeployments', ], 'NextToken' => [ 'shape' => '__string', ], ], ], 'ListConnectorDefinitionVersionsRequest' => [ 'type' => 'structure', 'members' => [ 'ConnectorDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ConnectorDefinitionId', ], 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], 'required' => [ 'ConnectorDefinitionId', ], ], 'ListConnectorDefinitionVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', ], 'Versions' => [ 'shape' => '__listOfVersionInformation', ], ], ], 'ListConnectorDefinitionsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], ], 'ListConnectorDefinitionsResponse' => [ 'type' => 'structure', 'members' => [ 'Definitions' => [ 'shape' => '__listOfDefinitionInformation', ], 'NextToken' => [ 'shape' => '__string', ], ], ], 'ListCoreDefinitionVersionsRequest' => [ 'type' => 'structure', 'members' => [ 'CoreDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'CoreDefinitionId', ], 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], 'required' => [ 'CoreDefinitionId', ], ], 'ListCoreDefinitionVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', ], 'Versions' => [ 'shape' => '__listOfVersionInformation', ], ], ], 'ListCoreDefinitionsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], ], 'ListCoreDefinitionsResponse' => [ 'type' => 'structure', 'members' => [ 'Definitions' => [ 'shape' => '__listOfDefinitionInformation', ], 'NextToken' => [ 'shape' => '__string', ], ], ], 'ListDefinitionsResponse' => [ 'type' => 'structure', 'members' => [ 'Definitions' => [ 'shape' => '__listOfDefinitionInformation', ], 'NextToken' => [ 'shape' => '__string', ], ], ], 'ListDeploymentsRequest' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'GroupId', ], 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], 'required' => [ 'GroupId', ], ], 'ListDeploymentsResponse' => [ 'type' => 'structure', 'members' => [ 'Deployments' => [ 'shape' => 'Deployments', ], 'NextToken' => [ 'shape' => '__string', ], ], ], 'ListDeviceDefinitionVersionsRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'DeviceDefinitionId', ], 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], 'required' => [ 'DeviceDefinitionId', ], ], 'ListDeviceDefinitionVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', ], 'Versions' => [ 'shape' => '__listOfVersionInformation', ], ], ], 'ListDeviceDefinitionsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], ], 'ListDeviceDefinitionsResponse' => [ 'type' => 'structure', 'members' => [ 'Definitions' => [ 'shape' => '__listOfDefinitionInformation', ], 'NextToken' => [ 'shape' => '__string', ], ], ], 'ListFunctionDefinitionVersionsRequest' => [ 'type' => 'structure', 'members' => [ 'FunctionDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'FunctionDefinitionId', ], 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], 'required' => [ 'FunctionDefinitionId', ], ], 'ListFunctionDefinitionVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', ], 'Versions' => [ 'shape' => '__listOfVersionInformation', ], ], ], 'ListFunctionDefinitionsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], ], 'ListFunctionDefinitionsResponse' => [ 'type' => 'structure', 'members' => [ 'Definitions' => [ 'shape' => '__listOfDefinitionInformation', ], 'NextToken' => [ 'shape' => '__string', ], ], ], 'ListGroupCertificateAuthoritiesRequest' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'GroupId', ], ], 'required' => [ 'GroupId', ], ], 'ListGroupCertificateAuthoritiesResponse' => [ 'type' => 'structure', 'members' => [ 'GroupCertificateAuthorities' => [ 'shape' => '__listOfGroupCertificateAuthorityProperties', ], ], ], 'ListGroupVersionsRequest' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'GroupId', ], 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], 'required' => [ 'GroupId', ], ], 'ListGroupVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', ], 'Versions' => [ 'shape' => '__listOfVersionInformation', ], ], ], 'ListGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], ], 'ListGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'Groups' => [ 'shape' => '__listOfGroupInformation', ], 'NextToken' => [ 'shape' => '__string', ], ], ], 'ListLoggerDefinitionVersionsRequest' => [ 'type' => 'structure', 'members' => [ 'LoggerDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'LoggerDefinitionId', ], 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], 'required' => [ 'LoggerDefinitionId', ], ], 'ListLoggerDefinitionVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', ], 'Versions' => [ 'shape' => '__listOfVersionInformation', ], ], ], 'ListLoggerDefinitionsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], ], 'ListLoggerDefinitionsResponse' => [ 'type' => 'structure', 'members' => [ 'Definitions' => [ 'shape' => '__listOfDefinitionInformation', ], 'NextToken' => [ 'shape' => '__string', ], ], ], 'ListResourceDefinitionVersionsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], 'ResourceDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ResourceDefinitionId', ], ], 'required' => [ 'ResourceDefinitionId', ], ], 'ListResourceDefinitionVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', ], 'Versions' => [ 'shape' => '__listOfVersionInformation', ], ], ], 'ListResourceDefinitionsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], ], 'ListResourceDefinitionsResponse' => [ 'type' => 'structure', 'members' => [ 'Definitions' => [ 'shape' => '__listOfDefinitionInformation', ], 'NextToken' => [ 'shape' => '__string', ], ], ], 'ListSubscriptionDefinitionVersionsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], 'SubscriptionDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'SubscriptionDefinitionId', ], ], 'required' => [ 'SubscriptionDefinitionId', ], ], 'ListSubscriptionDefinitionVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', ], 'Versions' => [ 'shape' => '__listOfVersionInformation', ], ], ], 'ListSubscriptionDefinitionsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], ], 'ListSubscriptionDefinitionsResponse' => [ 'type' => 'structure', 'members' => [ 'Definitions' => [ 'shape' => '__listOfDefinitionInformation', ], 'NextToken' => [ 'shape' => '__string', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'resource-arn', ], ], 'required' => [ 'ResourceArn', ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => '__mapOf__string', ], ], ], 'ListVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', ], 'Versions' => [ 'shape' => '__listOfVersionInformation', ], ], ], 'LocalDeviceResourceData' => [ 'type' => 'structure', 'members' => [ 'GroupOwnerSetting' => [ 'shape' => 'GroupOwnerSetting', ], 'SourcePath' => [ 'shape' => '__string', ], ], ], 'LocalVolumeResourceData' => [ 'type' => 'structure', 'members' => [ 'DestinationPath' => [ 'shape' => '__string', ], 'GroupOwnerSetting' => [ 'shape' => 'GroupOwnerSetting', ], 'SourcePath' => [ 'shape' => '__string', ], ], ], 'Logger' => [ 'type' => 'structure', 'members' => [ 'Component' => [ 'shape' => 'LoggerComponent', ], 'Id' => [ 'shape' => '__string', ], 'Level' => [ 'shape' => 'LoggerLevel', ], 'Space' => [ 'shape' => '__integer', ], 'Type' => [ 'shape' => 'LoggerType', ], ], 'required' => [], ], 'LoggerComponent' => [ 'type' => 'string', 'enum' => [ 'GreengrassSystem', 'Lambda', ], ], 'LoggerDefinitionVersion' => [ 'type' => 'structure', 'members' => [ 'Loggers' => [ 'shape' => '__listOfLogger', ], ], ], 'LoggerLevel' => [ 'type' => 'string', 'enum' => [ 'DEBUG', 'INFO', 'WARN', 'ERROR', 'FATAL', ], ], 'LoggerType' => [ 'type' => 'string', 'enum' => [ 'FileSystem', 'AWSCloudWatch', ], ], 'Permission' => [ 'type' => 'string', 'enum' => [ 'ro', 'rw', ], ], 'ResetDeploymentsRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'Force' => [ 'shape' => '__boolean', ], 'GroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'GroupId', ], ], 'required' => [ 'GroupId', ], ], 'ResetDeploymentsResponse' => [ 'type' => 'structure', 'members' => [ 'DeploymentArn' => [ 'shape' => '__string', ], 'DeploymentId' => [ 'shape' => '__string', ], ], ], 'Resource' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], 'ResourceDataContainer' => [ 'shape' => 'ResourceDataContainer', ], ], 'required' => [], ], 'ResourceAccessPolicy' => [ 'type' => 'structure', 'members' => [ 'Permission' => [ 'shape' => 'Permission', ], 'ResourceId' => [ 'shape' => '__string', ], ], 'required' => [], ], 'ResourceDataContainer' => [ 'type' => 'structure', 'members' => [ 'LocalDeviceResourceData' => [ 'shape' => 'LocalDeviceResourceData', ], 'LocalVolumeResourceData' => [ 'shape' => 'LocalVolumeResourceData', ], 'S3MachineLearningModelResourceData' => [ 'shape' => 'S3MachineLearningModelResourceData', ], 'SageMakerMachineLearningModelResourceData' => [ 'shape' => 'SageMakerMachineLearningModelResourceData', ], 'SecretsManagerSecretResourceData' => [ 'shape' => 'SecretsManagerSecretResourceData', ], ], ], 'ResourceDefinitionVersion' => [ 'type' => 'structure', 'members' => [ 'Resources' => [ 'shape' => '__listOfResource', ], ], ], 'S3MachineLearningModelResourceData' => [ 'type' => 'structure', 'members' => [ 'DestinationPath' => [ 'shape' => '__string', ], 'S3Uri' => [ 'shape' => '__string', ], ], ], 'S3UrlSignerRole' => [ 'type' => 'string', ], 'SageMakerMachineLearningModelResourceData' => [ 'type' => 'structure', 'members' => [ 'DestinationPath' => [ 'shape' => '__string', ], 'SageMakerJobArn' => [ 'shape' => '__string', ], ], ], 'SecretsManagerSecretResourceData' => [ 'type' => 'structure', 'members' => [ 'ARN' => [ 'shape' => '__string', ], 'AdditionalStagingLabelsToDownload' => [ 'shape' => '__listOf__string', ], ], ], 'SoftwareToUpdate' => [ 'type' => 'string', 'enum' => [ 'core', 'ota_agent', ], ], 'StartBulkDeploymentRequest' => [ 'type' => 'structure', 'members' => [ 'AmznClientToken' => [ 'shape' => '__string', 'location' => 'header', 'locationName' => 'X-Amzn-Client-Token', ], 'ExecutionRoleArn' => [ 'shape' => '__string', ], 'InputFileUri' => [ 'shape' => '__string', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'StartBulkDeploymentResponse' => [ 'type' => 'structure', 'members' => [ 'BulkDeploymentArn' => [ 'shape' => '__string', ], 'BulkDeploymentId' => [ 'shape' => '__string', ], ], ], 'StopBulkDeploymentRequest' => [ 'type' => 'structure', 'members' => [ 'BulkDeploymentId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'BulkDeploymentId', ], ], 'required' => [ 'BulkDeploymentId', ], ], 'StopBulkDeploymentResponse' => [ 'type' => 'structure', 'members' => [], ], 'Subscription' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => '__string', ], 'Source' => [ 'shape' => '__string', ], 'Subject' => [ 'shape' => '__string', ], 'Target' => [ 'shape' => '__string', ], ], 'required' => [], ], 'SubscriptionDefinitionVersion' => [ 'type' => 'structure', 'members' => [ 'Subscriptions' => [ 'shape' => '__listOfSubscription', ], ], ], 'Tags' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => '__string', ], ], 'UpdateAgentLogLevel' => [ 'type' => 'string', 'enum' => [ 'NONE', 'TRACE', 'DEBUG', 'VERBOSE', 'INFO', 'WARN', 'ERROR', 'FATAL', ], ], 'UpdateConnectivityInfoRequest' => [ 'type' => 'structure', 'members' => [ 'ConnectivityInfo' => [ 'shape' => '__listOfConnectivityInfo', ], 'ThingName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ThingName', ], ], 'required' => [ 'ThingName', ], ], 'UpdateConnectivityInfoResponse' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], 'Version' => [ 'shape' => '__string', ], ], ], 'UpdateConnectorDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'ConnectorDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ConnectorDefinitionId', ], 'Name' => [ 'shape' => '__string', ], ], 'required' => [ 'ConnectorDefinitionId', ], ], 'UpdateConnectorDefinitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateCoreDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'CoreDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'CoreDefinitionId', ], 'Name' => [ 'shape' => '__string', ], ], 'required' => [ 'CoreDefinitionId', ], ], 'UpdateCoreDefinitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateDeviceDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'DeviceDefinitionId', ], 'Name' => [ 'shape' => '__string', ], ], 'required' => [ 'DeviceDefinitionId', ], ], 'UpdateDeviceDefinitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateFunctionDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'FunctionDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'FunctionDefinitionId', ], 'Name' => [ 'shape' => '__string', ], ], 'required' => [ 'FunctionDefinitionId', ], ], 'UpdateFunctionDefinitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateGroupCertificateConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'CertificateExpiryInMilliseconds' => [ 'shape' => '__string', ], 'GroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'GroupId', ], ], 'required' => [ 'GroupId', ], ], 'UpdateGroupCertificateConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'CertificateAuthorityExpiryInMilliseconds' => [ 'shape' => '__string', ], 'CertificateExpiryInMilliseconds' => [ 'shape' => '__string', ], 'GroupId' => [ 'shape' => '__string', ], ], ], 'UpdateGroupRequest' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'GroupId', ], 'Name' => [ 'shape' => '__string', ], ], 'required' => [ 'GroupId', ], ], 'UpdateGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateLoggerDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'LoggerDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'LoggerDefinitionId', ], 'Name' => [ 'shape' => '__string', ], ], 'required' => [ 'LoggerDefinitionId', ], ], 'UpdateLoggerDefinitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateResourceDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => '__string', ], 'ResourceDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ResourceDefinitionId', ], ], 'required' => [ 'ResourceDefinitionId', ], ], 'UpdateResourceDefinitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateSubscriptionDefinitionRequest' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => '__string', ], 'SubscriptionDefinitionId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'SubscriptionDefinitionId', ], ], 'required' => [ 'SubscriptionDefinitionId', ], ], 'UpdateSubscriptionDefinitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateTargets' => [ 'type' => 'list', 'member' => [ 'shape' => '__string', ], ], 'UpdateTargetsArchitecture' => [ 'type' => 'string', 'enum' => [ 'armv7l', 'x86_64', 'aarch64', ], ], 'UpdateTargetsOperatingSystem' => [ 'type' => 'string', 'enum' => [ 'ubuntu', 'raspbian', 'amazon_linux', ], ], 'VersionInformation' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'CreationTimestamp' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__string', ], ], ], '__boolean' => [ 'type' => 'boolean', ], '__double' => [ 'type' => 'double', ], '__integer' => [ 'type' => 'integer', ], '__listOfConnectivityInfo' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConnectivityInfo', ], ], '__listOfConnector' => [ 'type' => 'list', 'member' => [ 'shape' => 'Connector', ], ], '__listOfCore' => [ 'type' => 'list', 'member' => [ 'shape' => 'Core', ], ], '__listOfDefinitionInformation' => [ 'type' => 'list', 'member' => [ 'shape' => 'DefinitionInformation', ], ], '__listOfDevice' => [ 'type' => 'list', 'member' => [ 'shape' => 'Device', ], ], '__listOfFunction' => [ 'type' => 'list', 'member' => [ 'shape' => 'Function', ], ], '__listOfGroupCertificateAuthorityProperties' => [ 'type' => 'list', 'member' => [ 'shape' => 'GroupCertificateAuthorityProperties', ], ], '__listOfGroupInformation' => [ 'type' => 'list', 'member' => [ 'shape' => 'GroupInformation', ], ], '__listOfLogger' => [ 'type' => 'list', 'member' => [ 'shape' => 'Logger', ], ], '__listOfResource' => [ 'type' => 'list', 'member' => [ 'shape' => 'Resource', ], ], '__listOfResourceAccessPolicy' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceAccessPolicy', ], ], '__listOfSubscription' => [ 'type' => 'list', 'member' => [ 'shape' => 'Subscription', ], ], '__listOfVersionInformation' => [ 'type' => 'list', 'member' => [ 'shape' => 'VersionInformation', ], ], '__listOf__string' => [ 'type' => 'list', 'member' => [ 'shape' => '__string', ], ], '__long' => [ 'type' => 'long', ], '__mapOf__string' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => '__string', ], ], '__string' => [ 'type' => 'string', ], '__timestampIso8601' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], '__timestampUnix' => [ 'type' => 'timestamp', 'timestampFormat' => 'unixTimestamp', ], ],]; diff --git a/lib/aws/Aws/data/guardduty/2017-11-28/api-2.json.php b/lib/aws/Aws/data/guardduty/2017-11-28/api-2.json.php new file mode 100644 index 0000000..0b26ca4 --- /dev/null +++ b/lib/aws/Aws/data/guardduty/2017-11-28/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/guardduty/2017-11-28/api-2.json +return [ 'metadata' => [ 'apiVersion' => '2017-11-28', 'endpointPrefix' => 'guardduty', 'signingName' => 'guardduty', 'serviceFullName' => 'Amazon GuardDuty', 'serviceId' => 'GuardDuty', 'protocol' => 'rest-json', 'jsonVersion' => '1.1', 'uid' => 'guardduty-2017-11-28', 'signatureVersion' => 'v4', ], 'operations' => [ 'AcceptInvitation' => [ 'name' => 'AcceptInvitation', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/master', 'responseCode' => 200, ], 'input' => [ 'shape' => 'AcceptInvitationRequest', ], 'output' => [ 'shape' => 'AcceptInvitationResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'ArchiveFindings' => [ 'name' => 'ArchiveFindings', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/findings/archive', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ArchiveFindingsRequest', ], 'output' => [ 'shape' => 'ArchiveFindingsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'CreateDetector' => [ 'name' => 'CreateDetector', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateDetectorRequest', ], 'output' => [ 'shape' => 'CreateDetectorResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'CreateFilter' => [ 'name' => 'CreateFilter', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/filter', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateFilterRequest', ], 'output' => [ 'shape' => 'CreateFilterResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'CreateIPSet' => [ 'name' => 'CreateIPSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/ipset', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateIPSetRequest', ], 'output' => [ 'shape' => 'CreateIPSetResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'CreateMembers' => [ 'name' => 'CreateMembers', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/member', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateMembersRequest', ], 'output' => [ 'shape' => 'CreateMembersResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'CreateSampleFindings' => [ 'name' => 'CreateSampleFindings', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/findings/create', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateSampleFindingsRequest', ], 'output' => [ 'shape' => 'CreateSampleFindingsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'CreateThreatIntelSet' => [ 'name' => 'CreateThreatIntelSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/threatintelset', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateThreatIntelSetRequest', ], 'output' => [ 'shape' => 'CreateThreatIntelSetResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'DeclineInvitations' => [ 'name' => 'DeclineInvitations', 'http' => [ 'method' => 'POST', 'requestUri' => '/invitation/decline', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeclineInvitationsRequest', ], 'output' => [ 'shape' => 'DeclineInvitationsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'DeleteDetector' => [ 'name' => 'DeleteDetector', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/detector/{detectorId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteDetectorRequest', ], 'output' => [ 'shape' => 'DeleteDetectorResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'DeleteFilter' => [ 'name' => 'DeleteFilter', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/detector/{detectorId}/filter/{filterName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteFilterRequest', ], 'output' => [ 'shape' => 'DeleteFilterResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'DeleteIPSet' => [ 'name' => 'DeleteIPSet', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/detector/{detectorId}/ipset/{ipSetId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteIPSetRequest', ], 'output' => [ 'shape' => 'DeleteIPSetResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'DeleteInvitations' => [ 'name' => 'DeleteInvitations', 'http' => [ 'method' => 'POST', 'requestUri' => '/invitation/delete', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteInvitationsRequest', ], 'output' => [ 'shape' => 'DeleteInvitationsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'DeleteMembers' => [ 'name' => 'DeleteMembers', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/member/delete', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteMembersRequest', ], 'output' => [ 'shape' => 'DeleteMembersResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'DeleteThreatIntelSet' => [ 'name' => 'DeleteThreatIntelSet', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/detector/{detectorId}/threatintelset/{threatIntelSetId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteThreatIntelSetRequest', ], 'output' => [ 'shape' => 'DeleteThreatIntelSetResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'DisassociateFromMasterAccount' => [ 'name' => 'DisassociateFromMasterAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/master/disassociate', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DisassociateFromMasterAccountRequest', ], 'output' => [ 'shape' => 'DisassociateFromMasterAccountResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'DisassociateMembers' => [ 'name' => 'DisassociateMembers', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/member/disassociate', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DisassociateMembersRequest', ], 'output' => [ 'shape' => 'DisassociateMembersResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'GetDetector' => [ 'name' => 'GetDetector', 'http' => [ 'method' => 'GET', 'requestUri' => '/detector/{detectorId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetDetectorRequest', ], 'output' => [ 'shape' => 'GetDetectorResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'GetFilter' => [ 'name' => 'GetFilter', 'http' => [ 'method' => 'GET', 'requestUri' => '/detector/{detectorId}/filter/{filterName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetFilterRequest', ], 'output' => [ 'shape' => 'GetFilterResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'GetFindings' => [ 'name' => 'GetFindings', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/findings/get', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetFindingsRequest', ], 'output' => [ 'shape' => 'GetFindingsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'GetFindingsStatistics' => [ 'name' => 'GetFindingsStatistics', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/findings/statistics', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetFindingsStatisticsRequest', ], 'output' => [ 'shape' => 'GetFindingsStatisticsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'GetIPSet' => [ 'name' => 'GetIPSet', 'http' => [ 'method' => 'GET', 'requestUri' => '/detector/{detectorId}/ipset/{ipSetId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetIPSetRequest', ], 'output' => [ 'shape' => 'GetIPSetResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'GetInvitationsCount' => [ 'name' => 'GetInvitationsCount', 'http' => [ 'method' => 'GET', 'requestUri' => '/invitation/count', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetInvitationsCountRequest', ], 'output' => [ 'shape' => 'GetInvitationsCountResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'GetMasterAccount' => [ 'name' => 'GetMasterAccount', 'http' => [ 'method' => 'GET', 'requestUri' => '/detector/{detectorId}/master', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetMasterAccountRequest', ], 'output' => [ 'shape' => 'GetMasterAccountResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'GetMembers' => [ 'name' => 'GetMembers', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/member/get', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetMembersRequest', ], 'output' => [ 'shape' => 'GetMembersResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'GetThreatIntelSet' => [ 'name' => 'GetThreatIntelSet', 'http' => [ 'method' => 'GET', 'requestUri' => '/detector/{detectorId}/threatintelset/{threatIntelSetId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetThreatIntelSetRequest', ], 'output' => [ 'shape' => 'GetThreatIntelSetResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'InviteMembers' => [ 'name' => 'InviteMembers', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/member/invite', 'responseCode' => 200, ], 'input' => [ 'shape' => 'InviteMembersRequest', ], 'output' => [ 'shape' => 'InviteMembersResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'ListDetectors' => [ 'name' => 'ListDetectors', 'http' => [ 'method' => 'GET', 'requestUri' => '/detector', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDetectorsRequest', ], 'output' => [ 'shape' => 'ListDetectorsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'ListFilters' => [ 'name' => 'ListFilters', 'http' => [ 'method' => 'GET', 'requestUri' => '/detector/{detectorId}/filter', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListFiltersRequest', ], 'output' => [ 'shape' => 'ListFiltersResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'ListFindings' => [ 'name' => 'ListFindings', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/findings', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListFindingsRequest', ], 'output' => [ 'shape' => 'ListFindingsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'ListIPSets' => [ 'name' => 'ListIPSets', 'http' => [ 'method' => 'GET', 'requestUri' => '/detector/{detectorId}/ipset', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListIPSetsRequest', ], 'output' => [ 'shape' => 'ListIPSetsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'ListInvitations' => [ 'name' => 'ListInvitations', 'http' => [ 'method' => 'GET', 'requestUri' => '/invitation', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListInvitationsRequest', ], 'output' => [ 'shape' => 'ListInvitationsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'ListMembers' => [ 'name' => 'ListMembers', 'http' => [ 'method' => 'GET', 'requestUri' => '/detector/{detectorId}/member', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListMembersRequest', ], 'output' => [ 'shape' => 'ListMembersResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'ListThreatIntelSets' => [ 'name' => 'ListThreatIntelSets', 'http' => [ 'method' => 'GET', 'requestUri' => '/detector/{detectorId}/threatintelset', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListThreatIntelSetsRequest', ], 'output' => [ 'shape' => 'ListThreatIntelSetsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'StartMonitoringMembers' => [ 'name' => 'StartMonitoringMembers', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/member/start', 'responseCode' => 200, ], 'input' => [ 'shape' => 'StartMonitoringMembersRequest', ], 'output' => [ 'shape' => 'StartMonitoringMembersResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'StopMonitoringMembers' => [ 'name' => 'StopMonitoringMembers', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/member/stop', 'responseCode' => 200, ], 'input' => [ 'shape' => 'StopMonitoringMembersRequest', ], 'output' => [ 'shape' => 'StopMonitoringMembersResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'UnarchiveFindings' => [ 'name' => 'UnarchiveFindings', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/findings/unarchive', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UnarchiveFindingsRequest', ], 'output' => [ 'shape' => 'UnarchiveFindingsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'UpdateDetector' => [ 'name' => 'UpdateDetector', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateDetectorRequest', ], 'output' => [ 'shape' => 'UpdateDetectorResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'UpdateFilter' => [ 'name' => 'UpdateFilter', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/filter/{filterName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateFilterRequest', ], 'output' => [ 'shape' => 'UpdateFilterResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'UpdateFindingsFeedback' => [ 'name' => 'UpdateFindingsFeedback', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/findings/feedback', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateFindingsFeedbackRequest', ], 'output' => [ 'shape' => 'UpdateFindingsFeedbackResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'UpdateIPSet' => [ 'name' => 'UpdateIPSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/ipset/{ipSetId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateIPSetRequest', ], 'output' => [ 'shape' => 'UpdateIPSetResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'UpdateThreatIntelSet' => [ 'name' => 'UpdateThreatIntelSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/detector/{detectorId}/threatintelset/{threatIntelSetId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateThreatIntelSetRequest', ], 'output' => [ 'shape' => 'UpdateThreatIntelSetResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], ], 'shapes' => [ 'AcceptInvitationRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'InvitationId' => [ 'shape' => 'InvitationId', 'locationName' => 'invitationId', ], 'MasterId' => [ 'shape' => 'MasterId', 'locationName' => 'masterId', ], ], 'required' => [ 'DetectorId', 'MasterId', 'InvitationId', ], ], 'AcceptInvitationResponse' => [ 'type' => 'structure', 'members' => [], ], 'AccessKeyDetails' => [ 'type' => 'structure', 'members' => [ 'AccessKeyId' => [ 'shape' => '__string', 'locationName' => 'accessKeyId', ], 'PrincipalId' => [ 'shape' => '__string', 'locationName' => 'principalId', ], 'UserName' => [ 'shape' => '__string', 'locationName' => 'userName', ], 'UserType' => [ 'shape' => '__string', 'locationName' => 'userType', ], ], ], 'AccountDetail' => [ 'type' => 'structure', 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', 'locationName' => 'accountId', ], 'Email' => [ 'shape' => 'Email', 'locationName' => 'email', ], ], 'required' => [ 'Email', 'AccountId', ], ], 'AccountDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountDetail', ], ], 'AccountId' => [ 'type' => 'string', ], 'AccountIds' => [ 'type' => 'list', 'member' => [ 'shape' => '__string', ], ], 'Action' => [ 'type' => 'structure', 'members' => [ 'ActionType' => [ 'shape' => '__string', 'locationName' => 'actionType', ], 'AwsApiCallAction' => [ 'shape' => 'AwsApiCallAction', 'locationName' => 'awsApiCallAction', ], 'DnsRequestAction' => [ 'shape' => 'DnsRequestAction', 'locationName' => 'dnsRequestAction', ], 'NetworkConnectionAction' => [ 'shape' => 'NetworkConnectionAction', 'locationName' => 'networkConnectionAction', ], 'PortProbeAction' => [ 'shape' => 'PortProbeAction', 'locationName' => 'portProbeAction', ], ], ], 'Activate' => [ 'type' => 'boolean', ], 'ArchiveFindingsRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'FindingIds' => [ 'shape' => 'FindingIds', 'locationName' => 'findingIds', ], ], 'required' => [ 'DetectorId', 'FindingIds', ], ], 'ArchiveFindingsResponse' => [ 'type' => 'structure', 'members' => [], ], 'AwsApiCallAction' => [ 'type' => 'structure', 'members' => [ 'Api' => [ 'shape' => '__string', 'locationName' => 'api', ], 'CallerType' => [ 'shape' => '__string', 'locationName' => 'callerType', ], 'DomainDetails' => [ 'shape' => 'DomainDetails', 'locationName' => 'domainDetails', ], 'RemoteIpDetails' => [ 'shape' => 'RemoteIpDetails', 'locationName' => 'remoteIpDetails', ], 'ServiceName' => [ 'shape' => '__string', 'locationName' => 'serviceName', ], ], ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], 'Type' => [ 'shape' => '__string', 'locationName' => '__type', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 400, ], ], 'City' => [ 'type' => 'structure', 'members' => [ 'CityName' => [ 'shape' => '__string', 'locationName' => 'cityName', ], ], ], 'Comments' => [ 'type' => 'string', ], 'Condition' => [ 'type' => 'structure', 'members' => [ 'Eq' => [ 'shape' => 'Eq', 'locationName' => 'eq', ], 'Gt' => [ 'shape' => '__integer', 'locationName' => 'gt', ], 'Gte' => [ 'shape' => '__integer', 'locationName' => 'gte', ], 'Lt' => [ 'shape' => '__integer', 'locationName' => 'lt', ], 'Lte' => [ 'shape' => '__integer', 'locationName' => 'lte', ], 'Neq' => [ 'shape' => 'Neq', 'locationName' => 'neq', ], ], ], 'CountBySeverityFindingStatistic' => [ 'type' => 'integer', ], 'Country' => [ 'type' => 'structure', 'members' => [ 'CountryCode' => [ 'shape' => '__string', 'locationName' => 'countryCode', ], 'CountryName' => [ 'shape' => '__string', 'locationName' => 'countryName', ], ], ], 'CreateDetectorRequest' => [ 'type' => 'structure', 'members' => [ 'ClientToken' => [ 'shape' => '__stringMin0Max64', 'locationName' => 'clientToken', 'idempotencyToken' => true, ], 'Enable' => [ 'shape' => 'Enable', 'locationName' => 'enable', ], 'FindingPublishingFrequency' => [ 'shape' => 'FindingPublishingFrequency', 'locationName' => 'findingPublishingFrequency', ], ], 'required' => [ 'Enable', ], ], 'CreateDetectorResponse' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => 'DetectorId', 'locationName' => 'detectorId', ], ], ], 'CreateFilterRequest' => [ 'type' => 'structure', 'members' => [ 'Action' => [ 'shape' => 'FilterAction', 'locationName' => 'action', ], 'ClientToken' => [ 'shape' => '__stringMin0Max64', 'locationName' => 'clientToken', 'idempotencyToken' => true, ], 'Description' => [ 'shape' => 'FilterDescription', 'locationName' => 'description', ], 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'FindingCriteria' => [ 'shape' => 'FindingCriteria', 'locationName' => 'findingCriteria', ], 'Name' => [ 'shape' => 'FilterName', 'locationName' => 'name', ], 'Rank' => [ 'shape' => 'FilterRank', 'locationName' => 'rank', ], ], 'required' => [ 'DetectorId', 'FindingCriteria', 'Name', ], ], 'CreateFilterResponse' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'FilterName', 'locationName' => 'name', ], ], ], 'CreateIPSetRequest' => [ 'type' => 'structure', 'members' => [ 'Activate' => [ 'shape' => 'Activate', 'locationName' => 'activate', ], 'ClientToken' => [ 'shape' => '__stringMin0Max64', 'locationName' => 'clientToken', 'idempotencyToken' => true, ], 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'Format' => [ 'shape' => 'IpSetFormat', 'locationName' => 'format', ], 'Location' => [ 'shape' => 'Location', 'locationName' => 'location', ], 'Name' => [ 'shape' => 'Name', 'locationName' => 'name', ], ], 'required' => [ 'DetectorId', 'Format', 'Activate', 'Location', 'Name', ], ], 'CreateIPSetResponse' => [ 'type' => 'structure', 'members' => [ 'IpSetId' => [ 'shape' => 'IpSetId', 'locationName' => 'ipSetId', ], ], ], 'CreateMembersRequest' => [ 'type' => 'structure', 'members' => [ 'AccountDetails' => [ 'shape' => 'AccountDetails', 'locationName' => 'accountDetails', ], 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], ], 'required' => [ 'DetectorId', 'AccountDetails', ], ], 'CreateMembersResponse' => [ 'type' => 'structure', 'members' => [ 'UnprocessedAccounts' => [ 'shape' => 'UnprocessedAccounts', 'locationName' => 'unprocessedAccounts', ], ], ], 'CreateSampleFindingsRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'FindingTypes' => [ 'shape' => 'FindingTypes', 'locationName' => 'findingTypes', ], ], 'required' => [ 'DetectorId', ], ], 'CreateSampleFindingsResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateThreatIntelSetRequest' => [ 'type' => 'structure', 'members' => [ 'Activate' => [ 'shape' => 'Activate', 'locationName' => 'activate', ], 'ClientToken' => [ 'shape' => '__stringMin0Max64', 'locationName' => 'clientToken', 'idempotencyToken' => true, ], 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'Format' => [ 'shape' => 'ThreatIntelSetFormat', 'locationName' => 'format', ], 'Location' => [ 'shape' => 'Location', 'locationName' => 'location', ], 'Name' => [ 'shape' => 'Name', 'locationName' => 'name', ], ], 'required' => [ 'DetectorId', 'Format', 'Activate', 'Location', 'Name', ], ], 'CreateThreatIntelSetResponse' => [ 'type' => 'structure', 'members' => [ 'ThreatIntelSetId' => [ 'shape' => 'ThreatIntelSetId', 'locationName' => 'threatIntelSetId', ], ], ], 'CreatedAt' => [ 'type' => 'string', ], 'DeclineInvitationsRequest' => [ 'type' => 'structure', 'members' => [ 'AccountIds' => [ 'shape' => 'AccountIds', 'locationName' => 'accountIds', ], ], 'required' => [ 'AccountIds', ], ], 'DeclineInvitationsResponse' => [ 'type' => 'structure', 'members' => [ 'UnprocessedAccounts' => [ 'shape' => 'UnprocessedAccounts', 'locationName' => 'unprocessedAccounts', ], ], ], 'DeleteDetectorRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], ], 'required' => [ 'DetectorId', ], ], 'DeleteDetectorResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteFilterRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'FilterName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'filterName', ], ], 'required' => [ 'DetectorId', 'FilterName', ], ], 'DeleteFilterResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteIPSetRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'IpSetId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ipSetId', ], ], 'required' => [ 'DetectorId', 'IpSetId', ], ], 'DeleteIPSetResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteInvitationsRequest' => [ 'type' => 'structure', 'members' => [ 'AccountIds' => [ 'shape' => 'AccountIds', 'locationName' => 'accountIds', ], ], 'required' => [ 'AccountIds', ], ], 'DeleteInvitationsResponse' => [ 'type' => 'structure', 'members' => [ 'UnprocessedAccounts' => [ 'shape' => 'UnprocessedAccounts', 'locationName' => 'unprocessedAccounts', ], ], ], 'DeleteMembersRequest' => [ 'type' => 'structure', 'members' => [ 'AccountIds' => [ 'shape' => 'AccountIds', 'locationName' => 'accountIds', ], 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], ], 'required' => [ 'DetectorId', 'AccountIds', ], ], 'DeleteMembersResponse' => [ 'type' => 'structure', 'members' => [ 'UnprocessedAccounts' => [ 'shape' => 'UnprocessedAccounts', 'locationName' => 'unprocessedAccounts', ], ], ], 'DeleteThreatIntelSetRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'ThreatIntelSetId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'threatIntelSetId', ], ], 'required' => [ 'ThreatIntelSetId', 'DetectorId', ], ], 'DeleteThreatIntelSetResponse' => [ 'type' => 'structure', 'members' => [], ], 'DetectorId' => [ 'type' => 'string', ], 'DetectorIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'DetectorId', ], ], 'DetectorStatus' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'DisassociateFromMasterAccountRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], ], 'required' => [ 'DetectorId', ], ], 'DisassociateFromMasterAccountResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateMembersRequest' => [ 'type' => 'structure', 'members' => [ 'AccountIds' => [ 'shape' => 'AccountIds', 'locationName' => 'accountIds', ], 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], ], 'required' => [ 'DetectorId', 'AccountIds', ], ], 'DisassociateMembersResponse' => [ 'type' => 'structure', 'members' => [ 'UnprocessedAccounts' => [ 'shape' => 'UnprocessedAccounts', 'locationName' => 'unprocessedAccounts', ], ], ], 'DnsRequestAction' => [ 'type' => 'structure', 'members' => [ 'Domain' => [ 'shape' => 'Domain', 'locationName' => 'domain', ], ], ], 'Domain' => [ 'type' => 'string', ], 'DomainDetails' => [ 'type' => 'structure', 'members' => [], ], 'Email' => [ 'type' => 'string', ], 'Enable' => [ 'type' => 'boolean', ], 'Eq' => [ 'type' => 'list', 'member' => [ 'shape' => '__string', ], ], 'ErrorResponse' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], 'Type' => [ 'shape' => '__string', 'locationName' => '__type', ], ], ], 'Feedback' => [ 'type' => 'string', 'enum' => [ 'USEFUL', 'NOT_USEFUL', ], ], 'FilterAction' => [ 'type' => 'string', 'enum' => [ 'NOOP', 'ARCHIVE', ], ], 'FilterDescription' => [ 'type' => 'string', ], 'FilterName' => [ 'type' => 'string', ], 'FilterNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'FilterName', ], ], 'FilterRank' => [ 'type' => 'integer', ], 'Finding' => [ 'type' => 'structure', 'members' => [ 'AccountId' => [ 'shape' => '__string', 'locationName' => 'accountId', ], 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'Confidence' => [ 'shape' => '__double', 'locationName' => 'confidence', ], 'CreatedAt' => [ 'shape' => 'CreatedAt', 'locationName' => 'createdAt', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], 'Partition' => [ 'shape' => '__string', 'locationName' => 'partition', ], 'Region' => [ 'shape' => '__string', 'locationName' => 'region', ], 'Resource' => [ 'shape' => 'Resource', 'locationName' => 'resource', ], 'SchemaVersion' => [ 'shape' => '__string', 'locationName' => 'schemaVersion', ], 'Service' => [ 'shape' => 'Service', 'locationName' => 'service', ], 'Severity' => [ 'shape' => '__double', 'locationName' => 'severity', ], 'Title' => [ 'shape' => '__string', 'locationName' => 'title', ], 'Type' => [ 'shape' => '__string', 'locationName' => 'type', ], 'UpdatedAt' => [ 'shape' => 'UpdatedAt', 'locationName' => 'updatedAt', ], ], 'required' => [ 'AccountId', 'SchemaVersion', 'CreatedAt', 'Resource', 'Severity', 'UpdatedAt', 'Type', 'Region', 'Id', 'Arn', ], ], 'FindingCriteria' => [ 'type' => 'structure', 'members' => [ 'Criterion' => [ 'shape' => '__mapOfCondition', 'locationName' => 'criterion', ], ], ], 'FindingId' => [ 'type' => 'string', ], 'FindingIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'FindingId', ], ], 'FindingPublishingFrequency' => [ 'type' => 'string', 'enum' => [ 'FIFTEEN_MINUTES', 'ONE_HOUR', 'SIX_HOURS', ], ], 'FindingStatisticType' => [ 'type' => 'string', 'enum' => [ 'COUNT_BY_SEVERITY', ], ], 'FindingStatisticTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'FindingStatisticType', ], ], 'FindingStatistics' => [ 'type' => 'structure', 'members' => [ 'CountBySeverity' => [ 'shape' => '__mapOfCountBySeverityFindingStatistic', 'locationName' => 'countBySeverity', ], ], ], 'FindingType' => [ 'type' => 'string', ], 'FindingTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'FindingType', ], ], 'Findings' => [ 'type' => 'list', 'member' => [ 'shape' => 'Finding', ], ], 'GeoLocation' => [ 'type' => 'structure', 'members' => [ 'Lat' => [ 'shape' => '__double', 'locationName' => 'lat', ], 'Lon' => [ 'shape' => '__double', 'locationName' => 'lon', ], ], ], 'GetDetectorRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], ], 'required' => [ 'DetectorId', ], ], 'GetDetectorResponse' => [ 'type' => 'structure', 'members' => [ 'CreatedAt' => [ 'shape' => 'CreatedAt', 'locationName' => 'createdAt', ], 'FindingPublishingFrequency' => [ 'shape' => 'FindingPublishingFrequency', 'locationName' => 'findingPublishingFrequency', ], 'ServiceRole' => [ 'shape' => 'ServiceRole', 'locationName' => 'serviceRole', ], 'Status' => [ 'shape' => 'DetectorStatus', 'locationName' => 'status', ], 'UpdatedAt' => [ 'shape' => 'UpdatedAt', 'locationName' => 'updatedAt', ], ], ], 'GetFilterRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'FilterName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'filterName', ], ], 'required' => [ 'DetectorId', 'FilterName', ], ], 'GetFilterResponse' => [ 'type' => 'structure', 'members' => [ 'Action' => [ 'shape' => 'FilterAction', 'locationName' => 'action', ], 'Description' => [ 'shape' => 'FilterDescription', 'locationName' => 'description', ], 'FindingCriteria' => [ 'shape' => 'FindingCriteria', 'locationName' => 'findingCriteria', ], 'Name' => [ 'shape' => 'FilterName', 'locationName' => 'name', ], 'Rank' => [ 'shape' => 'FilterRank', 'locationName' => 'rank', ], ], ], 'GetFindingsRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'FindingIds' => [ 'shape' => 'FindingIds', 'locationName' => 'findingIds', ], 'SortCriteria' => [ 'shape' => 'SortCriteria', 'locationName' => 'sortCriteria', ], ], 'required' => [ 'DetectorId', 'FindingIds', ], ], 'GetFindingsResponse' => [ 'type' => 'structure', 'members' => [ 'Findings' => [ 'shape' => 'Findings', 'locationName' => 'findings', ], ], ], 'GetFindingsStatisticsRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'FindingCriteria' => [ 'shape' => 'FindingCriteria', 'locationName' => 'findingCriteria', ], 'FindingStatisticTypes' => [ 'shape' => 'FindingStatisticTypes', 'locationName' => 'findingStatisticTypes', ], ], 'required' => [ 'DetectorId', 'FindingStatisticTypes', ], ], 'GetFindingsStatisticsResponse' => [ 'type' => 'structure', 'members' => [ 'FindingStatistics' => [ 'shape' => 'FindingStatistics', 'locationName' => 'findingStatistics', ], ], ], 'GetIPSetRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'IpSetId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ipSetId', ], ], 'required' => [ 'DetectorId', 'IpSetId', ], ], 'GetIPSetResponse' => [ 'type' => 'structure', 'members' => [ 'Format' => [ 'shape' => 'IpSetFormat', 'locationName' => 'format', ], 'Location' => [ 'shape' => 'Location', 'locationName' => 'location', ], 'Name' => [ 'shape' => 'Name', 'locationName' => 'name', ], 'Status' => [ 'shape' => 'IpSetStatus', 'locationName' => 'status', ], ], ], 'GetInvitationsCountRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetInvitationsCountResponse' => [ 'type' => 'structure', 'members' => [ 'InvitationsCount' => [ 'shape' => '__integer', 'locationName' => 'invitationsCount', ], ], ], 'GetMasterAccountRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], ], 'required' => [ 'DetectorId', ], ], 'GetMasterAccountResponse' => [ 'type' => 'structure', 'members' => [ 'Master' => [ 'shape' => 'Master', 'locationName' => 'master', ], ], ], 'GetMembersRequest' => [ 'type' => 'structure', 'members' => [ 'AccountIds' => [ 'shape' => 'AccountIds', 'locationName' => 'accountIds', ], 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], ], 'required' => [ 'DetectorId', 'AccountIds', ], ], 'GetMembersResponse' => [ 'type' => 'structure', 'members' => [ 'Members' => [ 'shape' => 'Members', 'locationName' => 'members', ], 'UnprocessedAccounts' => [ 'shape' => 'UnprocessedAccounts', 'locationName' => 'unprocessedAccounts', ], ], ], 'GetThreatIntelSetRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'ThreatIntelSetId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'threatIntelSetId', ], ], 'required' => [ 'ThreatIntelSetId', 'DetectorId', ], ], 'GetThreatIntelSetResponse' => [ 'type' => 'structure', 'members' => [ 'Format' => [ 'shape' => 'ThreatIntelSetFormat', 'locationName' => 'format', ], 'Location' => [ 'shape' => 'Location', 'locationName' => 'location', ], 'Name' => [ 'shape' => 'Name', 'locationName' => 'name', ], 'Status' => [ 'shape' => 'ThreatIntelSetStatus', 'locationName' => 'status', ], ], ], 'IamInstanceProfile' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], ], ], 'InstanceDetails' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => '__string', 'locationName' => 'availabilityZone', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfile', 'locationName' => 'iamInstanceProfile', ], 'ImageDescription' => [ 'shape' => '__string', 'locationName' => 'imageDescription', ], 'ImageId' => [ 'shape' => '__string', 'locationName' => 'imageId', ], 'InstanceId' => [ 'shape' => '__string', 'locationName' => 'instanceId', ], 'InstanceState' => [ 'shape' => '__string', 'locationName' => 'instanceState', ], 'InstanceType' => [ 'shape' => '__string', 'locationName' => 'instanceType', ], 'LaunchTime' => [ 'shape' => '__string', 'locationName' => 'launchTime', ], 'NetworkInterfaces' => [ 'shape' => 'NetworkInterfaces', 'locationName' => 'networkInterfaces', ], 'Platform' => [ 'shape' => '__string', 'locationName' => 'platform', ], 'ProductCodes' => [ 'shape' => 'ProductCodes', 'locationName' => 'productCodes', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], ], ], 'InternalServerErrorException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], 'Type' => [ 'shape' => '__string', 'locationName' => '__type', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 500, ], ], 'Invitation' => [ 'type' => 'structure', 'members' => [ 'AccountId' => [ 'shape' => '__string', 'locationName' => 'accountId', ], 'InvitationId' => [ 'shape' => 'InvitationId', 'locationName' => 'invitationId', ], 'InvitedAt' => [ 'shape' => 'InvitedAt', 'locationName' => 'invitedAt', ], 'RelationshipStatus' => [ 'shape' => '__string', 'locationName' => 'relationshipStatus', ], ], ], 'InvitationId' => [ 'type' => 'string', ], 'Invitations' => [ 'type' => 'list', 'member' => [ 'shape' => 'Invitation', ], ], 'InviteMembersRequest' => [ 'type' => 'structure', 'members' => [ 'AccountIds' => [ 'shape' => 'AccountIds', 'locationName' => 'accountIds', ], 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'DisableEmailNotification' => [ 'shape' => '__boolean', 'locationName' => 'disableEmailNotification', ], 'Message' => [ 'shape' => 'Message', 'locationName' => 'message', ], ], 'required' => [ 'DetectorId', 'AccountIds', ], ], 'InviteMembersResponse' => [ 'type' => 'structure', 'members' => [ 'UnprocessedAccounts' => [ 'shape' => 'UnprocessedAccounts', 'locationName' => 'unprocessedAccounts', ], ], ], 'InvitedAt' => [ 'type' => 'string', ], 'IpSetFormat' => [ 'type' => 'string', 'enum' => [ 'TXT', 'STIX', 'OTX_CSV', 'ALIEN_VAULT', 'PROOF_POINT', 'FIRE_EYE', ], ], 'IpSetId' => [ 'type' => 'string', ], 'IpSetIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpSetId', ], ], 'IpSetStatus' => [ 'type' => 'string', 'enum' => [ 'INACTIVE', 'ACTIVATING', 'ACTIVE', 'DEACTIVATING', 'ERROR', 'DELETE_PENDING', 'DELETED', ], ], 'Ipv6Address' => [ 'type' => 'string', ], 'Ipv6Addresses' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv6Address', ], ], 'ListDetectorsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListDetectorsResponse' => [ 'type' => 'structure', 'members' => [ 'DetectorIds' => [ 'shape' => 'DetectorIds', 'locationName' => 'detectorIds', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'ListFiltersRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], 'required' => [ 'DetectorId', ], ], 'ListFiltersResponse' => [ 'type' => 'structure', 'members' => [ 'FilterNames' => [ 'shape' => 'FilterNames', 'locationName' => 'filterNames', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'ListFindingsRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'FindingCriteria' => [ 'shape' => 'FindingCriteria', 'locationName' => 'findingCriteria', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'SortCriteria' => [ 'shape' => 'SortCriteria', 'locationName' => 'sortCriteria', ], ], 'required' => [ 'DetectorId', ], ], 'ListFindingsResponse' => [ 'type' => 'structure', 'members' => [ 'FindingIds' => [ 'shape' => 'FindingIds', 'locationName' => 'findingIds', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'ListIPSetsRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], 'required' => [ 'DetectorId', ], ], 'ListIPSetsResponse' => [ 'type' => 'structure', 'members' => [ 'IpSetIds' => [ 'shape' => 'IpSetIds', 'locationName' => 'ipSetIds', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'ListInvitationsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListInvitationsResponse' => [ 'type' => 'structure', 'members' => [ 'Invitations' => [ 'shape' => 'Invitations', 'locationName' => 'invitations', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'ListMembersRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'OnlyAssociated' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'onlyAssociated', ], ], 'required' => [ 'DetectorId', ], ], 'ListMembersResponse' => [ 'type' => 'structure', 'members' => [ 'Members' => [ 'shape' => 'Members', 'locationName' => 'members', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'ListThreatIntelSetsRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], 'required' => [ 'DetectorId', ], ], 'ListThreatIntelSetsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'ThreatIntelSetIds' => [ 'shape' => 'ThreatIntelSetIds', 'locationName' => 'threatIntelSetIds', ], ], ], 'LocalPortDetails' => [ 'type' => 'structure', 'members' => [ 'Port' => [ 'shape' => '__integer', 'locationName' => 'port', ], 'PortName' => [ 'shape' => '__string', 'locationName' => 'portName', ], ], ], 'Location' => [ 'type' => 'string', ], 'Master' => [ 'type' => 'structure', 'members' => [ 'AccountId' => [ 'shape' => '__string', 'locationName' => 'accountId', ], 'InvitationId' => [ 'shape' => 'InvitationId', 'locationName' => 'invitationId', ], 'InvitedAt' => [ 'shape' => 'InvitedAt', 'locationName' => 'invitedAt', ], 'RelationshipStatus' => [ 'shape' => '__string', 'locationName' => 'relationshipStatus', ], ], ], 'MasterId' => [ 'type' => 'string', ], 'MaxResults' => [ 'type' => 'integer', 'min' => 1, 'max' => 50, ], 'Member' => [ 'type' => 'structure', 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', 'locationName' => 'accountId', ], 'DetectorId' => [ 'shape' => 'DetectorId', 'locationName' => 'detectorId', ], 'Email' => [ 'shape' => 'Email', 'locationName' => 'email', ], 'InvitedAt' => [ 'shape' => 'InvitedAt', 'locationName' => 'invitedAt', ], 'MasterId' => [ 'shape' => 'MasterId', 'locationName' => 'masterId', ], 'RelationshipStatus' => [ 'shape' => '__string', 'locationName' => 'relationshipStatus', ], 'UpdatedAt' => [ 'shape' => 'UpdatedAt', 'locationName' => 'updatedAt', ], ], 'required' => [ 'Email', 'AccountId', 'MasterId', 'UpdatedAt', 'RelationshipStatus', ], ], 'Members' => [ 'type' => 'list', 'member' => [ 'shape' => 'Member', ], ], 'Message' => [ 'type' => 'string', ], 'Name' => [ 'type' => 'string', ], 'Neq' => [ 'type' => 'list', 'member' => [ 'shape' => '__string', ], ], 'NetworkConnectionAction' => [ 'type' => 'structure', 'members' => [ 'Blocked' => [ 'shape' => '__boolean', 'locationName' => 'blocked', ], 'ConnectionDirection' => [ 'shape' => '__string', 'locationName' => 'connectionDirection', ], 'LocalPortDetails' => [ 'shape' => 'LocalPortDetails', 'locationName' => 'localPortDetails', ], 'Protocol' => [ 'shape' => '__string', 'locationName' => 'protocol', ], 'RemoteIpDetails' => [ 'shape' => 'RemoteIpDetails', 'locationName' => 'remoteIpDetails', ], 'RemotePortDetails' => [ 'shape' => 'RemotePortDetails', 'locationName' => 'remotePortDetails', ], ], ], 'NetworkInterface' => [ 'type' => 'structure', 'members' => [ 'Ipv6Addresses' => [ 'shape' => 'Ipv6Addresses', 'locationName' => 'ipv6Addresses', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'PrivateDnsName' => [ 'shape' => 'PrivateDnsName', 'locationName' => 'privateDnsName', ], 'PrivateIpAddress' => [ 'shape' => 'PrivateIpAddress', 'locationName' => 'privateIpAddress', ], 'PrivateIpAddresses' => [ 'shape' => 'PrivateIpAddresses', 'locationName' => 'privateIpAddresses', ], 'PublicDnsName' => [ 'shape' => '__string', 'locationName' => 'publicDnsName', ], 'PublicIp' => [ 'shape' => '__string', 'locationName' => 'publicIp', ], 'SecurityGroups' => [ 'shape' => 'SecurityGroups', 'locationName' => 'securityGroups', ], 'SubnetId' => [ 'shape' => '__string', 'locationName' => 'subnetId', ], 'VpcId' => [ 'shape' => '__string', 'locationName' => 'vpcId', ], ], ], 'NetworkInterfaceId' => [ 'type' => 'string', ], 'NetworkInterfaces' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterface', ], ], 'NextToken' => [ 'type' => 'string', ], 'OrderBy' => [ 'type' => 'string', 'enum' => [ 'ASC', 'DESC', ], ], 'Organization' => [ 'type' => 'structure', 'members' => [ 'Asn' => [ 'shape' => '__string', 'locationName' => 'asn', ], 'AsnOrg' => [ 'shape' => '__string', 'locationName' => 'asnOrg', ], 'Isp' => [ 'shape' => '__string', 'locationName' => 'isp', ], 'Org' => [ 'shape' => '__string', 'locationName' => 'org', ], ], ], 'PortProbeAction' => [ 'type' => 'structure', 'members' => [ 'Blocked' => [ 'shape' => '__boolean', 'locationName' => 'blocked', ], 'PortProbeDetails' => [ 'shape' => '__listOfPortProbeDetail', 'locationName' => 'portProbeDetails', ], ], ], 'PortProbeDetail' => [ 'type' => 'structure', 'members' => [ 'LocalPortDetails' => [ 'shape' => 'LocalPortDetails', 'locationName' => 'localPortDetails', ], 'RemoteIpDetails' => [ 'shape' => 'RemoteIpDetails', 'locationName' => 'remoteIpDetails', ], ], ], 'PrivateDnsName' => [ 'type' => 'string', ], 'PrivateIpAddress' => [ 'type' => 'string', ], 'PrivateIpAddressDetails' => [ 'type' => 'structure', 'members' => [ 'PrivateDnsName' => [ 'shape' => 'PrivateDnsName', 'locationName' => 'privateDnsName', ], 'PrivateIpAddress' => [ 'shape' => 'PrivateIpAddress', 'locationName' => 'privateIpAddress', ], ], ], 'PrivateIpAddresses' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrivateIpAddressDetails', ], ], 'ProductCode' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => '__string', 'locationName' => 'code', ], 'ProductType' => [ 'shape' => '__string', 'locationName' => 'productType', ], ], ], 'ProductCodes' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProductCode', ], ], 'RemoteIpDetails' => [ 'type' => 'structure', 'members' => [ 'City' => [ 'shape' => 'City', 'locationName' => 'city', ], 'Country' => [ 'shape' => 'Country', 'locationName' => 'country', ], 'GeoLocation' => [ 'shape' => 'GeoLocation', 'locationName' => 'geoLocation', ], 'IpAddressV4' => [ 'shape' => '__string', 'locationName' => 'ipAddressV4', ], 'Organization' => [ 'shape' => 'Organization', 'locationName' => 'organization', ], ], ], 'RemotePortDetails' => [ 'type' => 'structure', 'members' => [ 'Port' => [ 'shape' => '__integer', 'locationName' => 'port', ], 'PortName' => [ 'shape' => '__string', 'locationName' => 'portName', ], ], ], 'Resource' => [ 'type' => 'structure', 'members' => [ 'AccessKeyDetails' => [ 'shape' => 'AccessKeyDetails', 'locationName' => 'accessKeyDetails', ], 'InstanceDetails' => [ 'shape' => 'InstanceDetails', 'locationName' => 'instanceDetails', ], 'ResourceType' => [ 'shape' => '__string', 'locationName' => 'resourceType', ], ], ], 'SecurityGroup' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => '__string', 'locationName' => 'groupId', ], 'GroupName' => [ 'shape' => '__string', 'locationName' => 'groupName', ], ], ], 'SecurityGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroup', ], ], 'Service' => [ 'type' => 'structure', 'members' => [ 'Action' => [ 'shape' => 'Action', 'locationName' => 'action', ], 'Archived' => [ 'shape' => '__boolean', 'locationName' => 'archived', ], 'Count' => [ 'shape' => '__integer', 'locationName' => 'count', ], 'DetectorId' => [ 'shape' => 'DetectorId', 'locationName' => 'detectorId', ], 'EventFirstSeen' => [ 'shape' => '__string', 'locationName' => 'eventFirstSeen', ], 'EventLastSeen' => [ 'shape' => '__string', 'locationName' => 'eventLastSeen', ], 'ResourceRole' => [ 'shape' => '__string', 'locationName' => 'resourceRole', ], 'ServiceName' => [ 'shape' => '__string', 'locationName' => 'serviceName', ], 'UserFeedback' => [ 'shape' => '__string', 'locationName' => 'userFeedback', ], ], ], 'ServiceRole' => [ 'type' => 'string', ], 'SortCriteria' => [ 'type' => 'structure', 'members' => [ 'AttributeName' => [ 'shape' => '__string', 'locationName' => 'attributeName', ], 'OrderBy' => [ 'shape' => 'OrderBy', 'locationName' => 'orderBy', ], ], ], 'StartMonitoringMembersRequest' => [ 'type' => 'structure', 'members' => [ 'AccountIds' => [ 'shape' => 'AccountIds', 'locationName' => 'accountIds', ], 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], ], 'required' => [ 'DetectorId', 'AccountIds', ], ], 'StartMonitoringMembersResponse' => [ 'type' => 'structure', 'members' => [ 'UnprocessedAccounts' => [ 'shape' => 'UnprocessedAccounts', 'locationName' => 'unprocessedAccounts', ], ], ], 'StopMonitoringMembersRequest' => [ 'type' => 'structure', 'members' => [ 'AccountIds' => [ 'shape' => 'AccountIds', 'locationName' => 'accountIds', ], 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], ], 'required' => [ 'DetectorId', 'AccountIds', ], ], 'StopMonitoringMembersResponse' => [ 'type' => 'structure', 'members' => [ 'UnprocessedAccounts' => [ 'shape' => 'UnprocessedAccounts', 'locationName' => 'unprocessedAccounts', ], ], ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => '__string', 'locationName' => 'key', ], 'Value' => [ 'shape' => '__string', 'locationName' => 'value', ], ], ], 'Tags' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'ThreatIntelSetFormat' => [ 'type' => 'string', 'enum' => [ 'TXT', 'STIX', 'OTX_CSV', 'ALIEN_VAULT', 'PROOF_POINT', 'FIRE_EYE', ], ], 'ThreatIntelSetId' => [ 'type' => 'string', ], 'ThreatIntelSetIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'ThreatIntelSetId', ], ], 'ThreatIntelSetStatus' => [ 'type' => 'string', 'enum' => [ 'INACTIVE', 'ACTIVATING', 'ACTIVE', 'DEACTIVATING', 'ERROR', 'DELETE_PENDING', 'DELETED', ], ], 'UnarchiveFindingsRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'FindingIds' => [ 'shape' => 'FindingIds', 'locationName' => 'findingIds', ], ], 'required' => [ 'DetectorId', 'FindingIds', ], ], 'UnarchiveFindingsResponse' => [ 'type' => 'structure', 'members' => [], ], 'UnprocessedAccount' => [ 'type' => 'structure', 'members' => [ 'AccountId' => [ 'shape' => '__string', 'locationName' => 'accountId', ], 'Result' => [ 'shape' => '__string', 'locationName' => 'result', ], ], 'required' => [ 'AccountId', 'Result', ], ], 'UnprocessedAccounts' => [ 'type' => 'list', 'member' => [ 'shape' => 'UnprocessedAccount', ], ], 'UpdateDetectorRequest' => [ 'type' => 'structure', 'members' => [ 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'Enable' => [ 'shape' => 'Enable', 'locationName' => 'enable', ], 'FindingPublishingFrequency' => [ 'shape' => 'FindingPublishingFrequency', 'locationName' => 'findingPublishingFrequency', ], ], 'required' => [ 'DetectorId', ], ], 'UpdateDetectorResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateFilterRequest' => [ 'type' => 'structure', 'members' => [ 'Action' => [ 'shape' => 'FilterAction', 'locationName' => 'action', ], 'Description' => [ 'shape' => 'FilterDescription', 'locationName' => 'description', ], 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'FilterName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'filterName', ], 'FindingCriteria' => [ 'shape' => 'FindingCriteria', 'locationName' => 'findingCriteria', ], 'Rank' => [ 'shape' => 'FilterRank', 'locationName' => 'rank', ], ], 'required' => [ 'DetectorId', 'FilterName', ], ], 'UpdateFilterResponse' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'FilterName', 'locationName' => 'name', ], ], ], 'UpdateFindingsFeedbackRequest' => [ 'type' => 'structure', 'members' => [ 'Comments' => [ 'shape' => 'Comments', 'locationName' => 'comments', ], 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'Feedback' => [ 'shape' => 'Feedback', 'locationName' => 'feedback', ], 'FindingIds' => [ 'shape' => 'FindingIds', 'locationName' => 'findingIds', ], ], 'required' => [ 'DetectorId', 'Feedback', 'FindingIds', ], ], 'UpdateFindingsFeedbackResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateIPSetRequest' => [ 'type' => 'structure', 'members' => [ 'Activate' => [ 'shape' => 'Activate', 'locationName' => 'activate', ], 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'IpSetId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ipSetId', ], 'Location' => [ 'shape' => 'Location', 'locationName' => 'location', ], 'Name' => [ 'shape' => 'Name', 'locationName' => 'name', ], ], 'required' => [ 'DetectorId', 'IpSetId', ], ], 'UpdateIPSetResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateThreatIntelSetRequest' => [ 'type' => 'structure', 'members' => [ 'Activate' => [ 'shape' => 'Activate', 'locationName' => 'activate', ], 'DetectorId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'detectorId', ], 'Location' => [ 'shape' => 'Location', 'locationName' => 'location', ], 'Name' => [ 'shape' => 'Name', 'locationName' => 'name', ], 'ThreatIntelSetId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'threatIntelSetId', ], ], 'required' => [ 'ThreatIntelSetId', 'DetectorId', ], ], 'UpdateThreatIntelSetResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdatedAt' => [ 'type' => 'string', ], '__boolean' => [ 'type' => 'boolean', ], '__double' => [ 'type' => 'double', ], '__integer' => [ 'type' => 'integer', ], '__listOfPortProbeDetail' => [ 'type' => 'list', 'member' => [ 'shape' => 'PortProbeDetail', ], ], '__long' => [ 'type' => 'long', ], '__mapOfCondition' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'Condition', ], ], '__mapOfCountBySeverityFindingStatistic' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'CountBySeverityFindingStatistic', ], ], '__string' => [ 'type' => 'string', ], '__stringMin0Max64' => [ 'type' => 'string', 'min' => 0, 'max' => 64, ], '__timestamp' => [ 'type' => 'timestamp', ], ],]; diff --git a/lib/aws/Aws/data/guardduty/2017-11-28/paginators-1.json.php b/lib/aws/Aws/data/guardduty/2017-11-28/paginators-1.json.php new file mode 100644 index 0000000..71839b1 --- /dev/null +++ b/lib/aws/Aws/data/guardduty/2017-11-28/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/guardduty/2017-11-28/paginators-1.json +return [ 'pagination' => [ 'ListDetectors' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'DetectorIds', ], 'ListFindings' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'FindingIds', ], 'ListIPSets' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'IpSetIds', ], 'ListThreatIntelSets' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'ThreatIntelSetIds', ], 'ListInvitations' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Invitations', ], 'ListMembers' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Members', ], 'ListFilters' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'FilterNames', ], ],]; diff --git a/lib/aws/Aws/data/health/2016-08-04/api-2.json.php b/lib/aws/Aws/data/health/2016-08-04/api-2.json.php new file mode 100644 index 0000000..f4879a8 --- /dev/null +++ b/lib/aws/Aws/data/health/2016-08-04/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/health/2016-08-04/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-08-04', 'endpointPrefix' => 'health', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'AWSHealth', 'serviceFullName' => 'AWS Health APIs and Notifications', 'serviceId' => 'Health', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWSHealth_20160804', 'uid' => 'health-2016-08-04', ], 'operations' => [ 'DescribeAffectedEntities' => [ 'name' => 'DescribeAffectedEntities', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAffectedEntitiesRequest', ], 'output' => [ 'shape' => 'DescribeAffectedEntitiesResponse', ], 'errors' => [ [ 'shape' => 'InvalidPaginationToken', ], [ 'shape' => 'UnsupportedLocale', ], ], 'idempotent' => true, ], 'DescribeEntityAggregates' => [ 'name' => 'DescribeEntityAggregates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEntityAggregatesRequest', ], 'output' => [ 'shape' => 'DescribeEntityAggregatesResponse', ], 'idempotent' => true, ], 'DescribeEventAggregates' => [ 'name' => 'DescribeEventAggregates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEventAggregatesRequest', ], 'output' => [ 'shape' => 'DescribeEventAggregatesResponse', ], 'errors' => [ [ 'shape' => 'InvalidPaginationToken', ], ], 'idempotent' => true, ], 'DescribeEventDetails' => [ 'name' => 'DescribeEventDetails', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEventDetailsRequest', ], 'output' => [ 'shape' => 'DescribeEventDetailsResponse', ], 'errors' => [ [ 'shape' => 'UnsupportedLocale', ], ], 'idempotent' => true, ], 'DescribeEventTypes' => [ 'name' => 'DescribeEventTypes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEventTypesRequest', ], 'output' => [ 'shape' => 'DescribeEventTypesResponse', ], 'errors' => [ [ 'shape' => 'InvalidPaginationToken', ], [ 'shape' => 'UnsupportedLocale', ], ], 'idempotent' => true, ], 'DescribeEvents' => [ 'name' => 'DescribeEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEventsRequest', ], 'output' => [ 'shape' => 'DescribeEventsResponse', ], 'errors' => [ [ 'shape' => 'InvalidPaginationToken', ], [ 'shape' => 'UnsupportedLocale', ], ], 'idempotent' => true, ], ], 'shapes' => [ 'AffectedEntity' => [ 'type' => 'structure', 'members' => [ 'entityArn' => [ 'shape' => 'entityArn', ], 'eventArn' => [ 'shape' => 'eventArn', ], 'entityValue' => [ 'shape' => 'entityValue', ], 'entityUrl' => [ 'shape' => 'entityUrl', ], 'awsAccountId' => [ 'shape' => 'accountId', ], 'lastUpdatedTime' => [ 'shape' => 'timestamp', ], 'statusCode' => [ 'shape' => 'entityStatusCode', ], 'tags' => [ 'shape' => 'tagSet', ], ], ], 'DateTimeRange' => [ 'type' => 'structure', 'members' => [ 'from' => [ 'shape' => 'timestamp', ], 'to' => [ 'shape' => 'timestamp', ], ], ], 'DescribeAffectedEntitiesRequest' => [ 'type' => 'structure', 'required' => [ 'filter', ], 'members' => [ 'filter' => [ 'shape' => 'EntityFilter', ], 'locale' => [ 'shape' => 'locale', ], 'nextToken' => [ 'shape' => 'nextToken', ], 'maxResults' => [ 'shape' => 'maxResults', ], ], ], 'DescribeAffectedEntitiesResponse' => [ 'type' => 'structure', 'members' => [ 'entities' => [ 'shape' => 'EntityList', ], 'nextToken' => [ 'shape' => 'nextToken', ], ], ], 'DescribeEntityAggregatesRequest' => [ 'type' => 'structure', 'members' => [ 'eventArns' => [ 'shape' => 'EventArnsList', ], ], ], 'DescribeEntityAggregatesResponse' => [ 'type' => 'structure', 'members' => [ 'entityAggregates' => [ 'shape' => 'EntityAggregateList', ], ], ], 'DescribeEventAggregatesRequest' => [ 'type' => 'structure', 'required' => [ 'aggregateField', ], 'members' => [ 'filter' => [ 'shape' => 'EventFilter', ], 'aggregateField' => [ 'shape' => 'eventAggregateField', ], 'maxResults' => [ 'shape' => 'maxResults', ], 'nextToken' => [ 'shape' => 'nextToken', ], ], ], 'DescribeEventAggregatesResponse' => [ 'type' => 'structure', 'members' => [ 'eventAggregates' => [ 'shape' => 'EventAggregateList', ], 'nextToken' => [ 'shape' => 'nextToken', ], ], ], 'DescribeEventDetailsFailedSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventDetailsErrorItem', ], ], 'DescribeEventDetailsRequest' => [ 'type' => 'structure', 'required' => [ 'eventArns', ], 'members' => [ 'eventArns' => [ 'shape' => 'eventArnList', ], 'locale' => [ 'shape' => 'locale', ], ], ], 'DescribeEventDetailsResponse' => [ 'type' => 'structure', 'members' => [ 'successfulSet' => [ 'shape' => 'DescribeEventDetailsSuccessfulSet', ], 'failedSet' => [ 'shape' => 'DescribeEventDetailsFailedSet', ], ], ], 'DescribeEventDetailsSuccessfulSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventDetails', ], ], 'DescribeEventTypesRequest' => [ 'type' => 'structure', 'members' => [ 'filter' => [ 'shape' => 'EventTypeFilter', ], 'locale' => [ 'shape' => 'locale', ], 'nextToken' => [ 'shape' => 'nextToken', ], 'maxResults' => [ 'shape' => 'maxResults', ], ], ], 'DescribeEventTypesResponse' => [ 'type' => 'structure', 'members' => [ 'eventTypes' => [ 'shape' => 'EventTypeList', ], 'nextToken' => [ 'shape' => 'nextToken', ], ], ], 'DescribeEventsRequest' => [ 'type' => 'structure', 'members' => [ 'filter' => [ 'shape' => 'EventFilter', ], 'nextToken' => [ 'shape' => 'nextToken', ], 'maxResults' => [ 'shape' => 'maxResults', ], 'locale' => [ 'shape' => 'locale', ], ], ], 'DescribeEventsResponse' => [ 'type' => 'structure', 'members' => [ 'events' => [ 'shape' => 'EventList', ], 'nextToken' => [ 'shape' => 'nextToken', ], ], ], 'EntityAggregate' => [ 'type' => 'structure', 'members' => [ 'eventArn' => [ 'shape' => 'eventArn', ], 'count' => [ 'shape' => 'count', ], ], ], 'EntityAggregateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EntityAggregate', ], ], 'EntityFilter' => [ 'type' => 'structure', 'required' => [ 'eventArns', ], 'members' => [ 'eventArns' => [ 'shape' => 'eventArnList', ], 'entityArns' => [ 'shape' => 'entityArnList', ], 'entityValues' => [ 'shape' => 'entityValueList', ], 'lastUpdatedTimes' => [ 'shape' => 'dateTimeRangeList', ], 'tags' => [ 'shape' => 'tagFilter', ], 'statusCodes' => [ 'shape' => 'entityStatusCodeList', ], ], ], 'EntityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AffectedEntity', ], ], 'Event' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'eventArn', ], 'service' => [ 'shape' => 'service', ], 'eventTypeCode' => [ 'shape' => 'eventTypeCode', ], 'eventTypeCategory' => [ 'shape' => 'eventTypeCategory', ], 'region' => [ 'shape' => 'region', ], 'availabilityZone' => [ 'shape' => 'availabilityZone', ], 'startTime' => [ 'shape' => 'timestamp', ], 'endTime' => [ 'shape' => 'timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'timestamp', ], 'statusCode' => [ 'shape' => 'eventStatusCode', ], ], ], 'EventAggregate' => [ 'type' => 'structure', 'members' => [ 'aggregateValue' => [ 'shape' => 'aggregateValue', ], 'count' => [ 'shape' => 'count', ], ], ], 'EventAggregateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventAggregate', ], ], 'EventArnsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'eventArn', ], 'max' => 50, 'min' => 1, ], 'EventDescription' => [ 'type' => 'structure', 'members' => [ 'latestDescription' => [ 'shape' => 'eventDescription', ], ], ], 'EventDetails' => [ 'type' => 'structure', 'members' => [ 'event' => [ 'shape' => 'Event', ], 'eventDescription' => [ 'shape' => 'EventDescription', ], 'eventMetadata' => [ 'shape' => 'eventMetadata', ], ], ], 'EventDetailsErrorItem' => [ 'type' => 'structure', 'members' => [ 'eventArn' => [ 'shape' => 'eventArn', ], 'errorName' => [ 'shape' => 'string', ], 'errorMessage' => [ 'shape' => 'string', ], ], ], 'EventFilter' => [ 'type' => 'structure', 'members' => [ 'eventArns' => [ 'shape' => 'eventArnList', ], 'eventTypeCodes' => [ 'shape' => 'eventTypeList', ], 'services' => [ 'shape' => 'serviceList', ], 'regions' => [ 'shape' => 'regionList', ], 'availabilityZones' => [ 'shape' => 'availabilityZones', ], 'startTimes' => [ 'shape' => 'dateTimeRangeList', ], 'endTimes' => [ 'shape' => 'dateTimeRangeList', ], 'lastUpdatedTimes' => [ 'shape' => 'dateTimeRangeList', ], 'entityArns' => [ 'shape' => 'entityArnList', ], 'entityValues' => [ 'shape' => 'entityValueList', ], 'eventTypeCategories' => [ 'shape' => 'eventTypeCategoryList', ], 'tags' => [ 'shape' => 'tagFilter', ], 'eventStatusCodes' => [ 'shape' => 'eventStatusCodeList', ], ], ], 'EventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Event', ], ], 'EventType' => [ 'type' => 'structure', 'members' => [ 'service' => [ 'shape' => 'service', ], 'code' => [ 'shape' => 'eventTypeCode', ], 'category' => [ 'shape' => 'eventTypeCategory', ], ], ], 'EventTypeCategoryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'eventTypeCategory', ], 'max' => 10, 'min' => 1, ], 'EventTypeCodeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'eventTypeCode', ], 'max' => 10, 'min' => 1, ], 'EventTypeFilter' => [ 'type' => 'structure', 'members' => [ 'eventTypeCodes' => [ 'shape' => 'EventTypeCodeList', ], 'services' => [ 'shape' => 'serviceList', ], 'eventTypeCategories' => [ 'shape' => 'EventTypeCategoryList', ], ], ], 'EventTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventType', ], ], 'InvalidPaginationToken' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'exception' => true, ], 'UnsupportedLocale' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'exception' => true, ], 'accountId' => [ 'type' => 'string', 'pattern' => '[0-9]{12}', ], 'aggregateValue' => [ 'type' => 'string', ], 'availabilityZone' => [ 'type' => 'string', 'pattern' => '[a-z]{2}\\-[0-9a-z\\-]{4,16}', ], 'availabilityZones' => [ 'type' => 'list', 'member' => [ 'shape' => 'availabilityZone', ], ], 'count' => [ 'type' => 'integer', ], 'dateTimeRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DateTimeRange', ], 'max' => 10, 'min' => 1, ], 'entityArn' => [ 'type' => 'string', 'max' => 1600, ], 'entityArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'entityArn', ], 'max' => 100, 'min' => 1, ], 'entityStatusCode' => [ 'type' => 'string', 'enum' => [ 'IMPAIRED', 'UNIMPAIRED', 'UNKNOWN', ], ], 'entityStatusCodeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'entityStatusCode', ], 'max' => 3, 'min' => 1, ], 'entityUrl' => [ 'type' => 'string', 'pattern' => 'https?://.+\\.(amazon\\.com|amazonaws\\.com|amazonaws\\.cn|c2s\\.ic\\.gov|sc2s\\.sgov\\.gov|amazonaws-us-gov.com)/.*', ], 'entityValue' => [ 'type' => 'string', 'max' => 256, ], 'entityValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'entityValue', ], 'max' => 100, 'min' => 1, ], 'eventAggregateField' => [ 'type' => 'string', 'enum' => [ 'eventTypeCategory', ], ], 'eventArn' => [ 'type' => 'string', 'max' => 1600, 'pattern' => 'arn:aws:health:[^:]*:[^:]*:event(?:/[\\w-]+){3}', ], 'eventArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'eventArn', ], 'max' => 10, 'min' => 1, ], 'eventDescription' => [ 'type' => 'string', ], 'eventMetadata' => [ 'type' => 'map', 'key' => [ 'shape' => 'metadataKey', ], 'value' => [ 'shape' => 'metadataValue', ], ], 'eventStatusCode' => [ 'type' => 'string', 'enum' => [ 'open', 'closed', 'upcoming', ], ], 'eventStatusCodeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'eventStatusCode', ], 'max' => 6, 'min' => 1, ], 'eventType' => [ 'type' => 'string', 'max' => 100, 'min' => 3, ], 'eventTypeCategory' => [ 'type' => 'string', 'enum' => [ 'issue', 'accountNotification', 'scheduledChange', ], 'max' => 255, 'min' => 3, ], 'eventTypeCategoryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'eventTypeCategory', ], 'max' => 10, 'min' => 1, ], 'eventTypeCode' => [ 'type' => 'string', 'max' => 100, 'min' => 3, ], 'eventTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'eventType', ], 'max' => 10, 'min' => 1, ], 'locale' => [ 'type' => 'string', 'max' => 256, 'min' => 2, ], 'maxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 10, ], 'metadataKey' => [ 'type' => 'string', ], 'metadataValue' => [ 'type' => 'string', 'max' => 10240, ], 'nextToken' => [ 'type' => 'string', 'pattern' => '[a-zA-Z0-9=/+_.-]{4,512}', ], 'region' => [ 'type' => 'string', 'pattern' => '[^:/]{2,25}', ], 'regionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'region', ], 'max' => 10, 'min' => 1, ], 'service' => [ 'type' => 'string', 'max' => 30, 'min' => 2, ], 'serviceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'service', ], 'max' => 10, 'min' => 1, ], 'string' => [ 'type' => 'string', ], 'tagFilter' => [ 'type' => 'list', 'member' => [ 'shape' => 'tagSet', ], 'max' => 50, ], 'tagKey' => [ 'type' => 'string', 'max' => 127, ], 'tagSet' => [ 'type' => 'map', 'key' => [ 'shape' => 'tagKey', ], 'value' => [ 'shape' => 'tagValue', ], 'max' => 50, ], 'tagValue' => [ 'type' => 'string', 'max' => 255, ], 'timestamp' => [ 'type' => 'timestamp', ], ],]; diff --git a/lib/aws/Aws/data/health/2016-08-04/paginators-1.json.php b/lib/aws/Aws/data/health/2016-08-04/paginators-1.json.php new file mode 100644 index 0000000..1eed151 --- /dev/null +++ b/lib/aws/Aws/data/health/2016-08-04/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/health/2016-08-04/paginators-1.json +return [ 'pagination' => [ 'DescribeAffectedEntities' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'entities', ], 'DescribeEntityAggregates' => [ 'result_key' => 'entityAggregates', ], 'DescribeEventAggregates' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'eventAggregates', ], 'DescribeEventTypes' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'eventTypes', ], 'DescribeEvents' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'events', ], ],]; diff --git a/lib/aws/Aws/data/iam/2010-05-08/api-2.json.php b/lib/aws/Aws/data/iam/2010-05-08/api-2.json.php new file mode 100644 index 0000000..4436858 --- /dev/null +++ b/lib/aws/Aws/data/iam/2010-05-08/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/iam/2010-05-08/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2010-05-08', 'endpointPrefix' => 'iam', 'globalEndpoint' => 'iam.amazonaws.com', 'protocol' => 'query', 'serviceAbbreviation' => 'IAM', 'serviceFullName' => 'AWS Identity and Access Management', 'serviceId' => 'IAM', 'signatureVersion' => 'v4', 'uid' => 'iam-2010-05-08', 'xmlNamespace' => 'https://iam.amazonaws.com/doc/2010-05-08/', ], 'operations' => [ 'AddClientIDToOpenIDConnectProvider' => [ 'name' => 'AddClientIDToOpenIDConnectProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddClientIDToOpenIDConnectProviderRequest', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'AddRoleToInstanceProfile' => [ 'name' => 'AddRoleToInstanceProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddRoleToInstanceProfileRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'UnmodifiableEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'AddUserToGroup' => [ 'name' => 'AddUserToGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddUserToGroupRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'AttachGroupPolicy' => [ 'name' => 'AttachGroupPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachGroupPolicyRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'PolicyNotAttachableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'AttachRolePolicy' => [ 'name' => 'AttachRolePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachRolePolicyRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'UnmodifiableEntityException', ], [ 'shape' => 'PolicyNotAttachableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'AttachUserPolicy' => [ 'name' => 'AttachUserPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachUserPolicyRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'PolicyNotAttachableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ChangePassword' => [ 'name' => 'ChangePassword', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ChangePasswordRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidUserTypeException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'EntityTemporarilyUnmodifiableException', ], [ 'shape' => 'PasswordPolicyViolationException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'CreateAccessKey' => [ 'name' => 'CreateAccessKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAccessKeyRequest', ], 'output' => [ 'shape' => 'CreateAccessKeyResponse', 'resultWrapper' => 'CreateAccessKeyResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'CreateAccountAlias' => [ 'name' => 'CreateAccountAlias', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAccountAliasRequest', ], 'errors' => [ [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'CreateGroup' => [ 'name' => 'CreateGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateGroupRequest', ], 'output' => [ 'shape' => 'CreateGroupResponse', 'resultWrapper' => 'CreateGroupResult', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'CreateInstanceProfile' => [ 'name' => 'CreateInstanceProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateInstanceProfileRequest', ], 'output' => [ 'shape' => 'CreateInstanceProfileResponse', 'resultWrapper' => 'CreateInstanceProfileResult', ], 'errors' => [ [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'CreateLoginProfile' => [ 'name' => 'CreateLoginProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLoginProfileRequest', ], 'output' => [ 'shape' => 'CreateLoginProfileResponse', 'resultWrapper' => 'CreateLoginProfileResult', ], 'errors' => [ [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'PasswordPolicyViolationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'CreateOpenIDConnectProvider' => [ 'name' => 'CreateOpenIDConnectProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateOpenIDConnectProviderRequest', ], 'output' => [ 'shape' => 'CreateOpenIDConnectProviderResponse', 'resultWrapper' => 'CreateOpenIDConnectProviderResult', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'CreatePolicy' => [ 'name' => 'CreatePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePolicyRequest', ], 'output' => [ 'shape' => 'CreatePolicyResponse', 'resultWrapper' => 'CreatePolicyResult', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'CreatePolicyVersion' => [ 'name' => 'CreatePolicyVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePolicyVersionRequest', ], 'output' => [ 'shape' => 'CreatePolicyVersionResponse', 'resultWrapper' => 'CreatePolicyVersionResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'CreateRole' => [ 'name' => 'CreateRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRoleRequest', ], 'output' => [ 'shape' => 'CreateRoleResponse', 'resultWrapper' => 'CreateRoleResult', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'CreateSAMLProvider' => [ 'name' => 'CreateSAMLProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSAMLProviderRequest', ], 'output' => [ 'shape' => 'CreateSAMLProviderResponse', 'resultWrapper' => 'CreateSAMLProviderResult', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'CreateServiceLinkedRole' => [ 'name' => 'CreateServiceLinkedRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateServiceLinkedRoleRequest', ], 'output' => [ 'shape' => 'CreateServiceLinkedRoleResponse', 'resultWrapper' => 'CreateServiceLinkedRoleResult', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'CreateServiceSpecificCredential' => [ 'name' => 'CreateServiceSpecificCredential', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateServiceSpecificCredentialRequest', ], 'output' => [ 'shape' => 'CreateServiceSpecificCredentialResponse', 'resultWrapper' => 'CreateServiceSpecificCredentialResult', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceNotSupportedException', ], ], ], 'CreateUser' => [ 'name' => 'CreateUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateUserRequest', ], 'output' => [ 'shape' => 'CreateUserResponse', 'resultWrapper' => 'CreateUserResult', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'CreateVirtualMFADevice' => [ 'name' => 'CreateVirtualMFADevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVirtualMFADeviceRequest', ], 'output' => [ 'shape' => 'CreateVirtualMFADeviceResponse', 'resultWrapper' => 'CreateVirtualMFADeviceResult', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeactivateMFADevice' => [ 'name' => 'DeactivateMFADevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeactivateMFADeviceRequest', ], 'errors' => [ [ 'shape' => 'EntityTemporarilyUnmodifiableException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteAccessKey' => [ 'name' => 'DeleteAccessKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAccessKeyRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteAccountAlias' => [ 'name' => 'DeleteAccountAlias', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAccountAliasRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteAccountPasswordPolicy' => [ 'name' => 'DeleteAccountPasswordPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteGroup' => [ 'name' => 'DeleteGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteGroupRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'DeleteConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteGroupPolicy' => [ 'name' => 'DeleteGroupPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteGroupPolicyRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteInstanceProfile' => [ 'name' => 'DeleteInstanceProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteInstanceProfileRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'DeleteConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteLoginProfile' => [ 'name' => 'DeleteLoginProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLoginProfileRequest', ], 'errors' => [ [ 'shape' => 'EntityTemporarilyUnmodifiableException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteOpenIDConnectProvider' => [ 'name' => 'DeleteOpenIDConnectProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteOpenIDConnectProviderRequest', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeletePolicy' => [ 'name' => 'DeletePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePolicyRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'DeleteConflictException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeletePolicyVersion' => [ 'name' => 'DeletePolicyVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePolicyVersionRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'DeleteConflictException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteRole' => [ 'name' => 'DeleteRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRoleRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'DeleteConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'UnmodifiableEntityException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteRolePermissionsBoundary' => [ 'name' => 'DeleteRolePermissionsBoundary', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRolePermissionsBoundaryRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'UnmodifiableEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteRolePolicy' => [ 'name' => 'DeleteRolePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRolePolicyRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'UnmodifiableEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteSAMLProvider' => [ 'name' => 'DeleteSAMLProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSAMLProviderRequest', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteSSHPublicKey' => [ 'name' => 'DeleteSSHPublicKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSSHPublicKeyRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], ], ], 'DeleteServerCertificate' => [ 'name' => 'DeleteServerCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteServerCertificateRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'DeleteConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteServiceLinkedRole' => [ 'name' => 'DeleteServiceLinkedRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteServiceLinkedRoleRequest', ], 'output' => [ 'shape' => 'DeleteServiceLinkedRoleResponse', 'resultWrapper' => 'DeleteServiceLinkedRoleResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteServiceSpecificCredential' => [ 'name' => 'DeleteServiceSpecificCredential', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteServiceSpecificCredentialRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], ], ], 'DeleteSigningCertificate' => [ 'name' => 'DeleteSigningCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSigningCertificateRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteUser' => [ 'name' => 'DeleteUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteUserRequest', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'DeleteConflictException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteUserPermissionsBoundary' => [ 'name' => 'DeleteUserPermissionsBoundary', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteUserPermissionsBoundaryRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteUserPolicy' => [ 'name' => 'DeleteUserPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteUserPolicyRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DeleteVirtualMFADevice' => [ 'name' => 'DeleteVirtualMFADevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVirtualMFADeviceRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'DeleteConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DetachGroupPolicy' => [ 'name' => 'DetachGroupPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachGroupPolicyRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DetachRolePolicy' => [ 'name' => 'DetachRolePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachRolePolicyRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'UnmodifiableEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DetachUserPolicy' => [ 'name' => 'DetachUserPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachUserPolicyRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'EnableMFADevice' => [ 'name' => 'EnableMFADevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableMFADeviceRequest', ], 'errors' => [ [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'EntityTemporarilyUnmodifiableException', ], [ 'shape' => 'InvalidAuthenticationCodeException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GenerateCredentialReport' => [ 'name' => 'GenerateCredentialReport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'GenerateCredentialReportResponse', 'resultWrapper' => 'GenerateCredentialReportResult', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GenerateServiceLastAccessedDetails' => [ 'name' => 'GenerateServiceLastAccessedDetails', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GenerateServiceLastAccessedDetailsRequest', ], 'output' => [ 'shape' => 'GenerateServiceLastAccessedDetailsResponse', 'resultWrapper' => 'GenerateServiceLastAccessedDetailsResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'GetAccessKeyLastUsed' => [ 'name' => 'GetAccessKeyLastUsed', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAccessKeyLastUsedRequest', ], 'output' => [ 'shape' => 'GetAccessKeyLastUsedResponse', 'resultWrapper' => 'GetAccessKeyLastUsedResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], ], ], 'GetAccountAuthorizationDetails' => [ 'name' => 'GetAccountAuthorizationDetails', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAccountAuthorizationDetailsRequest', ], 'output' => [ 'shape' => 'GetAccountAuthorizationDetailsResponse', 'resultWrapper' => 'GetAccountAuthorizationDetailsResult', ], 'errors' => [ [ 'shape' => 'ServiceFailureException', ], ], ], 'GetAccountPasswordPolicy' => [ 'name' => 'GetAccountPasswordPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'GetAccountPasswordPolicyResponse', 'resultWrapper' => 'GetAccountPasswordPolicyResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetAccountSummary' => [ 'name' => 'GetAccountSummary', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'GetAccountSummaryResponse', 'resultWrapper' => 'GetAccountSummaryResult', ], 'errors' => [ [ 'shape' => 'ServiceFailureException', ], ], ], 'GetContextKeysForCustomPolicy' => [ 'name' => 'GetContextKeysForCustomPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetContextKeysForCustomPolicyRequest', ], 'output' => [ 'shape' => 'GetContextKeysForPolicyResponse', 'resultWrapper' => 'GetContextKeysForCustomPolicyResult', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], ], ], 'GetContextKeysForPrincipalPolicy' => [ 'name' => 'GetContextKeysForPrincipalPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetContextKeysForPrincipalPolicyRequest', ], 'output' => [ 'shape' => 'GetContextKeysForPolicyResponse', 'resultWrapper' => 'GetContextKeysForPrincipalPolicyResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'GetCredentialReport' => [ 'name' => 'GetCredentialReport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'GetCredentialReportResponse', 'resultWrapper' => 'GetCredentialReportResult', ], 'errors' => [ [ 'shape' => 'CredentialReportNotPresentException', ], [ 'shape' => 'CredentialReportExpiredException', ], [ 'shape' => 'CredentialReportNotReadyException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetGroup' => [ 'name' => 'GetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetGroupRequest', ], 'output' => [ 'shape' => 'GetGroupResponse', 'resultWrapper' => 'GetGroupResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetGroupPolicy' => [ 'name' => 'GetGroupPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetGroupPolicyRequest', ], 'output' => [ 'shape' => 'GetGroupPolicyResponse', 'resultWrapper' => 'GetGroupPolicyResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetInstanceProfile' => [ 'name' => 'GetInstanceProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstanceProfileRequest', ], 'output' => [ 'shape' => 'GetInstanceProfileResponse', 'resultWrapper' => 'GetInstanceProfileResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetLoginProfile' => [ 'name' => 'GetLoginProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetLoginProfileRequest', ], 'output' => [ 'shape' => 'GetLoginProfileResponse', 'resultWrapper' => 'GetLoginProfileResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetOpenIDConnectProvider' => [ 'name' => 'GetOpenIDConnectProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetOpenIDConnectProviderRequest', ], 'output' => [ 'shape' => 'GetOpenIDConnectProviderResponse', 'resultWrapper' => 'GetOpenIDConnectProviderResult', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetPolicy' => [ 'name' => 'GetPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPolicyRequest', ], 'output' => [ 'shape' => 'GetPolicyResponse', 'resultWrapper' => 'GetPolicyResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetPolicyVersion' => [ 'name' => 'GetPolicyVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPolicyVersionRequest', ], 'output' => [ 'shape' => 'GetPolicyVersionResponse', 'resultWrapper' => 'GetPolicyVersionResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetRole' => [ 'name' => 'GetRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRoleRequest', ], 'output' => [ 'shape' => 'GetRoleResponse', 'resultWrapper' => 'GetRoleResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetRolePolicy' => [ 'name' => 'GetRolePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRolePolicyRequest', ], 'output' => [ 'shape' => 'GetRolePolicyResponse', 'resultWrapper' => 'GetRolePolicyResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetSAMLProvider' => [ 'name' => 'GetSAMLProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSAMLProviderRequest', ], 'output' => [ 'shape' => 'GetSAMLProviderResponse', 'resultWrapper' => 'GetSAMLProviderResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetSSHPublicKey' => [ 'name' => 'GetSSHPublicKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSSHPublicKeyRequest', ], 'output' => [ 'shape' => 'GetSSHPublicKeyResponse', 'resultWrapper' => 'GetSSHPublicKeyResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'UnrecognizedPublicKeyEncodingException', ], ], ], 'GetServerCertificate' => [ 'name' => 'GetServerCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetServerCertificateRequest', ], 'output' => [ 'shape' => 'GetServerCertificateResponse', 'resultWrapper' => 'GetServerCertificateResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetServiceLastAccessedDetails' => [ 'name' => 'GetServiceLastAccessedDetails', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetServiceLastAccessedDetailsRequest', ], 'output' => [ 'shape' => 'GetServiceLastAccessedDetailsResponse', 'resultWrapper' => 'GetServiceLastAccessedDetailsResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'GetServiceLastAccessedDetailsWithEntities' => [ 'name' => 'GetServiceLastAccessedDetailsWithEntities', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetServiceLastAccessedDetailsWithEntitiesRequest', ], 'output' => [ 'shape' => 'GetServiceLastAccessedDetailsWithEntitiesResponse', 'resultWrapper' => 'GetServiceLastAccessedDetailsWithEntitiesResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'GetServiceLinkedRoleDeletionStatus' => [ 'name' => 'GetServiceLinkedRoleDeletionStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetServiceLinkedRoleDeletionStatusRequest', ], 'output' => [ 'shape' => 'GetServiceLinkedRoleDeletionStatusResponse', 'resultWrapper' => 'GetServiceLinkedRoleDeletionStatusResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetUser' => [ 'name' => 'GetUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetUserRequest', ], 'output' => [ 'shape' => 'GetUserResponse', 'resultWrapper' => 'GetUserResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetUserPolicy' => [ 'name' => 'GetUserPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetUserPolicyRequest', ], 'output' => [ 'shape' => 'GetUserPolicyResponse', 'resultWrapper' => 'GetUserPolicyResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListAccessKeys' => [ 'name' => 'ListAccessKeys', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAccessKeysRequest', ], 'output' => [ 'shape' => 'ListAccessKeysResponse', 'resultWrapper' => 'ListAccessKeysResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListAccountAliases' => [ 'name' => 'ListAccountAliases', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAccountAliasesRequest', ], 'output' => [ 'shape' => 'ListAccountAliasesResponse', 'resultWrapper' => 'ListAccountAliasesResult', ], 'errors' => [ [ 'shape' => 'ServiceFailureException', ], ], ], 'ListAttachedGroupPolicies' => [ 'name' => 'ListAttachedGroupPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAttachedGroupPoliciesRequest', ], 'output' => [ 'shape' => 'ListAttachedGroupPoliciesResponse', 'resultWrapper' => 'ListAttachedGroupPoliciesResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListAttachedRolePolicies' => [ 'name' => 'ListAttachedRolePolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAttachedRolePoliciesRequest', ], 'output' => [ 'shape' => 'ListAttachedRolePoliciesResponse', 'resultWrapper' => 'ListAttachedRolePoliciesResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListAttachedUserPolicies' => [ 'name' => 'ListAttachedUserPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAttachedUserPoliciesRequest', ], 'output' => [ 'shape' => 'ListAttachedUserPoliciesResponse', 'resultWrapper' => 'ListAttachedUserPoliciesResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListEntitiesForPolicy' => [ 'name' => 'ListEntitiesForPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListEntitiesForPolicyRequest', ], 'output' => [ 'shape' => 'ListEntitiesForPolicyResponse', 'resultWrapper' => 'ListEntitiesForPolicyResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListGroupPolicies' => [ 'name' => 'ListGroupPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListGroupPoliciesRequest', ], 'output' => [ 'shape' => 'ListGroupPoliciesResponse', 'resultWrapper' => 'ListGroupPoliciesResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListGroups' => [ 'name' => 'ListGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListGroupsRequest', ], 'output' => [ 'shape' => 'ListGroupsResponse', 'resultWrapper' => 'ListGroupsResult', ], 'errors' => [ [ 'shape' => 'ServiceFailureException', ], ], ], 'ListGroupsForUser' => [ 'name' => 'ListGroupsForUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListGroupsForUserRequest', ], 'output' => [ 'shape' => 'ListGroupsForUserResponse', 'resultWrapper' => 'ListGroupsForUserResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListInstanceProfiles' => [ 'name' => 'ListInstanceProfiles', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListInstanceProfilesRequest', ], 'output' => [ 'shape' => 'ListInstanceProfilesResponse', 'resultWrapper' => 'ListInstanceProfilesResult', ], 'errors' => [ [ 'shape' => 'ServiceFailureException', ], ], ], 'ListInstanceProfilesForRole' => [ 'name' => 'ListInstanceProfilesForRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListInstanceProfilesForRoleRequest', ], 'output' => [ 'shape' => 'ListInstanceProfilesForRoleResponse', 'resultWrapper' => 'ListInstanceProfilesForRoleResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListMFADevices' => [ 'name' => 'ListMFADevices', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListMFADevicesRequest', ], 'output' => [ 'shape' => 'ListMFADevicesResponse', 'resultWrapper' => 'ListMFADevicesResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListOpenIDConnectProviders' => [ 'name' => 'ListOpenIDConnectProviders', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListOpenIDConnectProvidersRequest', ], 'output' => [ 'shape' => 'ListOpenIDConnectProvidersResponse', 'resultWrapper' => 'ListOpenIDConnectProvidersResult', ], 'errors' => [ [ 'shape' => 'ServiceFailureException', ], ], ], 'ListPolicies' => [ 'name' => 'ListPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListPoliciesRequest', ], 'output' => [ 'shape' => 'ListPoliciesResponse', 'resultWrapper' => 'ListPoliciesResult', ], 'errors' => [ [ 'shape' => 'ServiceFailureException', ], ], ], 'ListPoliciesGrantingServiceAccess' => [ 'name' => 'ListPoliciesGrantingServiceAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListPoliciesGrantingServiceAccessRequest', ], 'output' => [ 'shape' => 'ListPoliciesGrantingServiceAccessResponse', 'resultWrapper' => 'ListPoliciesGrantingServiceAccessResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'ListPolicyVersions' => [ 'name' => 'ListPolicyVersions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListPolicyVersionsRequest', ], 'output' => [ 'shape' => 'ListPolicyVersionsResponse', 'resultWrapper' => 'ListPolicyVersionsResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListRolePolicies' => [ 'name' => 'ListRolePolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRolePoliciesRequest', ], 'output' => [ 'shape' => 'ListRolePoliciesResponse', 'resultWrapper' => 'ListRolePoliciesResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListRoleTags' => [ 'name' => 'ListRoleTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRoleTagsRequest', ], 'output' => [ 'shape' => 'ListRoleTagsResponse', 'resultWrapper' => 'ListRoleTagsResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListRoles' => [ 'name' => 'ListRoles', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRolesRequest', ], 'output' => [ 'shape' => 'ListRolesResponse', 'resultWrapper' => 'ListRolesResult', ], 'errors' => [ [ 'shape' => 'ServiceFailureException', ], ], ], 'ListSAMLProviders' => [ 'name' => 'ListSAMLProviders', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSAMLProvidersRequest', ], 'output' => [ 'shape' => 'ListSAMLProvidersResponse', 'resultWrapper' => 'ListSAMLProvidersResult', ], 'errors' => [ [ 'shape' => 'ServiceFailureException', ], ], ], 'ListSSHPublicKeys' => [ 'name' => 'ListSSHPublicKeys', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSSHPublicKeysRequest', ], 'output' => [ 'shape' => 'ListSSHPublicKeysResponse', 'resultWrapper' => 'ListSSHPublicKeysResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], ], ], 'ListServerCertificates' => [ 'name' => 'ListServerCertificates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListServerCertificatesRequest', ], 'output' => [ 'shape' => 'ListServerCertificatesResponse', 'resultWrapper' => 'ListServerCertificatesResult', ], 'errors' => [ [ 'shape' => 'ServiceFailureException', ], ], ], 'ListServiceSpecificCredentials' => [ 'name' => 'ListServiceSpecificCredentials', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListServiceSpecificCredentialsRequest', ], 'output' => [ 'shape' => 'ListServiceSpecificCredentialsResponse', 'resultWrapper' => 'ListServiceSpecificCredentialsResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceNotSupportedException', ], ], ], 'ListSigningCertificates' => [ 'name' => 'ListSigningCertificates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSigningCertificatesRequest', ], 'output' => [ 'shape' => 'ListSigningCertificatesResponse', 'resultWrapper' => 'ListSigningCertificatesResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListUserPolicies' => [ 'name' => 'ListUserPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListUserPoliciesRequest', ], 'output' => [ 'shape' => 'ListUserPoliciesResponse', 'resultWrapper' => 'ListUserPoliciesResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListUserTags' => [ 'name' => 'ListUserTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListUserTagsRequest', ], 'output' => [ 'shape' => 'ListUserTagsResponse', 'resultWrapper' => 'ListUserTagsResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListUsers' => [ 'name' => 'ListUsers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListUsersRequest', ], 'output' => [ 'shape' => 'ListUsersResponse', 'resultWrapper' => 'ListUsersResult', ], 'errors' => [ [ 'shape' => 'ServiceFailureException', ], ], ], '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', ], [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'PutRolePermissionsBoundary' => [ 'name' => 'PutRolePermissionsBoundary', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutRolePermissionsBoundaryRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'UnmodifiableEntityException', ], [ 'shape' => 'PolicyNotAttachableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'PutRolePolicy' => [ 'name' => 'PutRolePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutRolePolicyRequest', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'UnmodifiableEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'PutUserPermissionsBoundary' => [ 'name' => 'PutUserPermissionsBoundary', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutUserPermissionsBoundaryRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'PolicyNotAttachableException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'PutUserPolicy' => [ 'name' => 'PutUserPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutUserPolicyRequest', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'RemoveClientIDFromOpenIDConnectProvider' => [ 'name' => 'RemoveClientIDFromOpenIDConnectProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveClientIDFromOpenIDConnectProviderRequest', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'RemoveRoleFromInstanceProfile' => [ 'name' => 'RemoveRoleFromInstanceProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveRoleFromInstanceProfileRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'UnmodifiableEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'RemoveUserFromGroup' => [ 'name' => 'RemoveUserFromGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveUserFromGroupRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ResetServiceSpecificCredential' => [ 'name' => 'ResetServiceSpecificCredential', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetServiceSpecificCredentialRequest', ], 'output' => [ 'shape' => 'ResetServiceSpecificCredentialResponse', 'resultWrapper' => 'ResetServiceSpecificCredentialResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], ], ], 'ResyncMFADevice' => [ 'name' => 'ResyncMFADevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResyncMFADeviceRequest', ], 'errors' => [ [ 'shape' => 'InvalidAuthenticationCodeException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'SetDefaultPolicyVersion' => [ 'name' => 'SetDefaultPolicyVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetDefaultPolicyVersionRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'SimulateCustomPolicy' => [ 'name' => 'SimulateCustomPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SimulateCustomPolicyRequest', ], 'output' => [ 'shape' => 'SimulatePolicyResponse', 'resultWrapper' => 'SimulateCustomPolicyResult', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'PolicyEvaluationException', ], ], ], 'SimulatePrincipalPolicy' => [ 'name' => 'SimulatePrincipalPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SimulatePrincipalPolicyRequest', ], 'output' => [ 'shape' => 'SimulatePolicyResponse', 'resultWrapper' => 'SimulatePrincipalPolicyResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'PolicyEvaluationException', ], ], ], 'TagRole' => [ 'name' => 'TagRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagRoleRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'TagUser' => [ 'name' => 'TagUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagUserRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UntagRole' => [ 'name' => 'UntagRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagRoleRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UntagUser' => [ 'name' => 'UntagUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagUserRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UpdateAccessKey' => [ 'name' => 'UpdateAccessKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateAccessKeyRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UpdateAccountPasswordPolicy' => [ 'name' => 'UpdateAccountPasswordPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateAccountPasswordPolicyRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UpdateAssumeRolePolicy' => [ 'name' => 'UpdateAssumeRolePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateAssumeRolePolicyRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'UnmodifiableEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UpdateGroup' => [ 'name' => 'UpdateGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateGroupRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UpdateLoginProfile' => [ 'name' => 'UpdateLoginProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateLoginProfileRequest', ], 'errors' => [ [ 'shape' => 'EntityTemporarilyUnmodifiableException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'PasswordPolicyViolationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UpdateOpenIDConnectProviderThumbprint' => [ 'name' => 'UpdateOpenIDConnectProviderThumbprint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateOpenIDConnectProviderThumbprintRequest', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UpdateRole' => [ 'name' => 'UpdateRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRoleRequest', ], 'output' => [ 'shape' => 'UpdateRoleResponse', 'resultWrapper' => 'UpdateRoleResult', ], 'errors' => [ [ 'shape' => 'UnmodifiableEntityException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UpdateRoleDescription' => [ 'name' => 'UpdateRoleDescription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRoleDescriptionRequest', ], 'output' => [ 'shape' => 'UpdateRoleDescriptionResponse', 'resultWrapper' => 'UpdateRoleDescriptionResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'UnmodifiableEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UpdateSAMLProvider' => [ 'name' => 'UpdateSAMLProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSAMLProviderRequest', ], 'output' => [ 'shape' => 'UpdateSAMLProviderResponse', 'resultWrapper' => 'UpdateSAMLProviderResult', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UpdateSSHPublicKey' => [ 'name' => 'UpdateSSHPublicKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSSHPublicKeyRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], ], ], 'UpdateServerCertificate' => [ 'name' => 'UpdateServerCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateServerCertificateRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UpdateServiceSpecificCredential' => [ 'name' => 'UpdateServiceSpecificCredential', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateServiceSpecificCredentialRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], ], ], 'UpdateSigningCertificate' => [ 'name' => 'UpdateSigningCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSigningCertificateRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UpdateUser' => [ 'name' => 'UpdateUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateUserRequest', ], 'errors' => [ [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'EntityTemporarilyUnmodifiableException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UploadSSHPublicKey' => [ 'name' => 'UploadSSHPublicKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UploadSSHPublicKeyRequest', ], 'output' => [ 'shape' => 'UploadSSHPublicKeyResponse', 'resultWrapper' => 'UploadSSHPublicKeyResult', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidPublicKeyException', ], [ 'shape' => 'DuplicateSSHPublicKeyException', ], [ 'shape' => 'UnrecognizedPublicKeyEncodingException', ], ], ], 'UploadServerCertificate' => [ 'name' => 'UploadServerCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UploadServerCertificateRequest', ], 'output' => [ 'shape' => 'UploadServerCertificateResponse', 'resultWrapper' => 'UploadServerCertificateResult', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'MalformedCertificateException', ], [ 'shape' => 'KeyPairMismatchException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'UploadSigningCertificate' => [ 'name' => 'UploadSigningCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UploadSigningCertificateRequest', ], 'output' => [ 'shape' => 'UploadSigningCertificateResponse', 'resultWrapper' => 'UploadSigningCertificateResult', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'MalformedCertificateException', ], [ 'shape' => 'InvalidCertificateException', ], [ 'shape' => 'DuplicateCertificateException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceFailureException', ], ], ], ], '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', ], ], ], 'ActionNameListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ActionNameType', ], ], 'ActionNameType' => [ 'type' => 'string', 'max' => 128, 'min' => 3, ], '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', ], ], ], 'ArnListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'arnType', ], ], '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', ], ], ], 'AttachedPermissionsBoundary' => [ 'type' => 'structure', 'members' => [ 'PermissionsBoundaryType' => [ 'shape' => 'PermissionsBoundaryAttachmentType', ], 'PermissionsBoundaryArn' => [ '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', ], ], ], 'ColumnNumber' => [ 'type' => 'integer', ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ConcurrentModificationMessage', ], ], 'error' => [ 'code' => 'ConcurrentModification', 'httpStatusCode' => 409, 'senderFault' => true, ], 'exception' => true, ], 'ConcurrentModificationMessage' => [ 'type' => 'string', ], 'ContextEntry' => [ 'type' => 'structure', 'members' => [ 'ContextKeyName' => [ 'shape' => 'ContextKeyNameType', ], 'ContextKeyValues' => [ 'shape' => 'ContextKeyValueListType', ], 'ContextKeyType' => [ 'shape' => 'ContextKeyTypeEnum', ], ], ], 'ContextEntryListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContextEntry', ], ], 'ContextKeyNameType' => [ 'type' => 'string', 'max' => 256, 'min' => 5, ], 'ContextKeyNamesResultListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContextKeyNameType', ], ], 'ContextKeyTypeEnum' => [ 'type' => 'string', 'enum' => [ 'string', 'stringList', 'numeric', 'numericList', 'boolean', 'booleanList', 'ip', 'ipList', 'binary', 'binaryList', 'date', 'dateList', ], ], 'ContextKeyValueListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContextKeyValueType', ], ], 'ContextKeyValueType' => [ 'type' => 'string', ], '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', ], 'Description' => [ 'shape' => 'roleDescriptionType', ], 'MaxSessionDuration' => [ 'shape' => 'roleMaxSessionDurationType', ], 'PermissionsBoundary' => [ 'shape' => 'arnType', ], 'Tags' => [ 'shape' => 'tagListType', ], ], ], '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', ], ], ], 'CreateServiceLinkedRoleRequest' => [ 'type' => 'structure', 'required' => [ 'AWSServiceName', ], 'members' => [ 'AWSServiceName' => [ 'shape' => 'groupNameType', ], 'Description' => [ 'shape' => 'roleDescriptionType', ], 'CustomSuffix' => [ 'shape' => 'customSuffixType', ], ], ], 'CreateServiceLinkedRoleResponse' => [ 'type' => 'structure', 'members' => [ 'Role' => [ 'shape' => 'Role', ], ], ], 'CreateServiceSpecificCredentialRequest' => [ 'type' => 'structure', 'required' => [ 'UserName', 'ServiceName', ], 'members' => [ 'UserName' => [ 'shape' => 'userNameType', ], 'ServiceName' => [ 'shape' => 'serviceName', ], ], ], 'CreateServiceSpecificCredentialResponse' => [ 'type' => 'structure', 'members' => [ 'ServiceSpecificCredential' => [ 'shape' => 'ServiceSpecificCredential', ], ], ], 'CreateUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserName', ], 'members' => [ 'Path' => [ 'shape' => 'pathType', ], 'UserName' => [ 'shape' => 'userNameType', ], 'PermissionsBoundary' => [ 'shape' => 'arnType', ], 'Tags' => [ 'shape' => 'tagListType', ], ], ], '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', ], ], ], 'DeleteRolePermissionsBoundaryRequest' => [ 'type' => 'structure', 'required' => [ 'RoleName', ], 'members' => [ 'RoleName' => [ 'shape' => 'roleNameType', ], ], ], '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', ], ], ], 'DeleteSSHPublicKeyRequest' => [ 'type' => 'structure', 'required' => [ 'UserName', 'SSHPublicKeyId', ], 'members' => [ 'UserName' => [ 'shape' => 'userNameType', ], 'SSHPublicKeyId' => [ 'shape' => 'publicKeyIdType', ], ], ], 'DeleteServerCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'ServerCertificateName', ], 'members' => [ 'ServerCertificateName' => [ 'shape' => 'serverCertificateNameType', ], ], ], 'DeleteServiceLinkedRoleRequest' => [ 'type' => 'structure', 'required' => [ 'RoleName', ], 'members' => [ 'RoleName' => [ 'shape' => 'roleNameType', ], ], ], 'DeleteServiceLinkedRoleResponse' => [ 'type' => 'structure', 'required' => [ 'DeletionTaskId', ], 'members' => [ 'DeletionTaskId' => [ 'shape' => 'DeletionTaskIdType', ], ], ], 'DeleteServiceSpecificCredentialRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceSpecificCredentialId', ], 'members' => [ 'UserName' => [ 'shape' => 'userNameType', ], 'ServiceSpecificCredentialId' => [ 'shape' => 'serviceSpecificCredentialId', ], ], ], 'DeleteSigningCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateId', ], 'members' => [ 'UserName' => [ 'shape' => 'existingUserNameType', ], 'CertificateId' => [ 'shape' => 'certificateIdType', ], ], ], 'DeleteUserPermissionsBoundaryRequest' => [ 'type' => 'structure', 'required' => [ 'UserName', ], 'members' => [ 'UserName' => [ 'shape' => 'userNameType', ], ], ], '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', ], ], ], 'DeletionTaskFailureReasonType' => [ 'type' => 'structure', 'members' => [ 'Reason' => [ 'shape' => 'ReasonType', ], 'RoleUsageList' => [ 'shape' => 'RoleUsageListType', ], ], ], 'DeletionTaskIdType' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, ], 'DeletionTaskStatusType' => [ 'type' => 'string', 'enum' => [ 'SUCCEEDED', 'IN_PROGRESS', 'FAILED', 'NOT_STARTED', ], ], '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, ], 'DuplicateSSHPublicKeyException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'duplicateSSHPublicKeyMessage', ], ], 'error' => [ 'code' => 'DuplicateSSHPublicKey', 'httpStatusCode' => 400, '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, ], 'EntityDetails' => [ 'type' => 'structure', 'required' => [ 'EntityInfo', ], 'members' => [ 'EntityInfo' => [ 'shape' => 'EntityInfo', ], 'LastAuthenticated' => [ 'shape' => 'dateType', ], ], ], 'EntityInfo' => [ 'type' => 'structure', 'required' => [ 'Arn', 'Name', 'Type', 'Id', ], 'members' => [ 'Arn' => [ 'shape' => 'arnType', ], 'Name' => [ 'shape' => 'userNameType', ], 'Type' => [ 'shape' => 'policyOwnerEntityType', ], 'Id' => [ 'shape' => 'idType', ], 'Path' => [ 'shape' => 'pathType', ], ], ], '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', ], ], 'ErrorDetails' => [ 'type' => 'structure', 'required' => [ 'Message', 'Code', ], 'members' => [ 'Message' => [ 'shape' => 'stringType', ], 'Code' => [ 'shape' => 'stringType', ], ], ], 'EvalDecisionDetailsType' => [ 'type' => 'map', 'key' => [ 'shape' => 'EvalDecisionSourceType', ], 'value' => [ 'shape' => 'PolicyEvaluationDecisionType', ], ], 'EvalDecisionSourceType' => [ 'type' => 'string', 'max' => 256, 'min' => 3, ], 'EvaluationResult' => [ 'type' => 'structure', 'required' => [ 'EvalActionName', 'EvalDecision', ], 'members' => [ 'EvalActionName' => [ 'shape' => 'ActionNameType', ], 'EvalResourceName' => [ 'shape' => 'ResourceNameType', ], 'EvalDecision' => [ 'shape' => 'PolicyEvaluationDecisionType', ], 'MatchedStatements' => [ 'shape' => 'StatementListType', ], 'MissingContextValues' => [ 'shape' => 'ContextKeyNamesResultListType', ], 'OrganizationsDecisionDetail' => [ 'shape' => 'OrganizationsDecisionDetail', ], 'EvalDecisionDetails' => [ 'shape' => 'EvalDecisionDetailsType', ], 'ResourceSpecificResults' => [ 'shape' => 'ResourceSpecificResultListType', ], ], ], 'EvaluationResultsListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'EvaluationResult', ], ], 'GenerateCredentialReportResponse' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'ReportStateType', ], 'Description' => [ 'shape' => 'ReportStateDescriptionType', ], ], ], 'GenerateServiceLastAccessedDetailsRequest' => [ 'type' => 'structure', 'required' => [ 'Arn', ], 'members' => [ 'Arn' => [ 'shape' => 'arnType', ], ], ], 'GenerateServiceLastAccessedDetailsResponse' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'jobIDType', ], ], ], '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', ], ], ], 'GetContextKeysForCustomPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'PolicyInputList', ], 'members' => [ 'PolicyInputList' => [ 'shape' => 'SimulationPolicyListType', ], ], ], 'GetContextKeysForPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'ContextKeyNames' => [ 'shape' => 'ContextKeyNamesResultListType', ], ], ], 'GetContextKeysForPrincipalPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'PolicySourceArn', ], 'members' => [ 'PolicySourceArn' => [ 'shape' => 'arnType', ], 'PolicyInputList' => [ 'shape' => 'SimulationPolicyListType', ], ], ], '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', ], ], ], 'GetSSHPublicKeyRequest' => [ 'type' => 'structure', 'required' => [ 'UserName', 'SSHPublicKeyId', 'Encoding', ], 'members' => [ 'UserName' => [ 'shape' => 'userNameType', ], 'SSHPublicKeyId' => [ 'shape' => 'publicKeyIdType', ], 'Encoding' => [ 'shape' => 'encodingType', ], ], ], 'GetSSHPublicKeyResponse' => [ 'type' => 'structure', 'members' => [ 'SSHPublicKey' => [ 'shape' => 'SSHPublicKey', ], ], ], 'GetServerCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'ServerCertificateName', ], 'members' => [ 'ServerCertificateName' => [ 'shape' => 'serverCertificateNameType', ], ], ], 'GetServerCertificateResponse' => [ 'type' => 'structure', 'required' => [ 'ServerCertificate', ], 'members' => [ 'ServerCertificate' => [ 'shape' => 'ServerCertificate', ], ], ], 'GetServiceLastAccessedDetailsRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'jobIDType', ], 'MaxItems' => [ 'shape' => 'maxItemsType', ], 'Marker' => [ 'shape' => 'markerType', ], ], ], 'GetServiceLastAccessedDetailsResponse' => [ 'type' => 'structure', 'required' => [ 'JobStatus', 'JobCreationDate', 'ServicesLastAccessed', 'JobCompletionDate', ], 'members' => [ 'JobStatus' => [ 'shape' => 'jobStatusType', ], 'JobCreationDate' => [ 'shape' => 'dateType', ], 'ServicesLastAccessed' => [ 'shape' => 'ServicesLastAccessed', ], 'JobCompletionDate' => [ 'shape' => 'dateType', ], 'IsTruncated' => [ 'shape' => 'booleanType', ], 'Marker' => [ 'shape' => 'markerType', ], 'Error' => [ 'shape' => 'ErrorDetails', ], ], ], 'GetServiceLastAccessedDetailsWithEntitiesRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', 'ServiceNamespace', ], 'members' => [ 'JobId' => [ 'shape' => 'jobIDType', ], 'ServiceNamespace' => [ 'shape' => 'serviceNamespaceType', ], 'MaxItems' => [ 'shape' => 'maxItemsType', ], 'Marker' => [ 'shape' => 'markerType', ], ], ], 'GetServiceLastAccessedDetailsWithEntitiesResponse' => [ 'type' => 'structure', 'required' => [ 'JobStatus', 'JobCreationDate', 'JobCompletionDate', 'EntityDetailsList', ], 'members' => [ 'JobStatus' => [ 'shape' => 'jobStatusType', ], 'JobCreationDate' => [ 'shape' => 'dateType', ], 'JobCompletionDate' => [ 'shape' => 'dateType', ], 'EntityDetailsList' => [ 'shape' => 'entityDetailsListType', ], 'IsTruncated' => [ 'shape' => 'booleanType', ], 'Marker' => [ 'shape' => 'markerType', ], 'Error' => [ 'shape' => 'ErrorDetails', ], ], ], 'GetServiceLinkedRoleDeletionStatusRequest' => [ 'type' => 'structure', 'required' => [ 'DeletionTaskId', ], 'members' => [ 'DeletionTaskId' => [ 'shape' => 'DeletionTaskIdType', ], ], ], 'GetServiceLinkedRoleDeletionStatusResponse' => [ 'type' => 'structure', 'required' => [ 'Status', ], 'members' => [ 'Status' => [ 'shape' => 'DeletionTaskStatusType', ], 'Reason' => [ 'shape' => 'DeletionTaskFailureReasonType', ], ], ], '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, ], 'InvalidPublicKeyException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'invalidPublicKeyMessage', ], ], 'error' => [ 'code' => 'InvalidPublicKey', '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, ], 'LineNumber' => [ 'type' => 'integer', ], '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', ], 'PolicyUsageFilter' => [ 'shape' => 'PolicyUsageType', ], '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', ], ], ], 'ListPoliciesGrantingServiceAccessEntry' => [ 'type' => 'structure', 'members' => [ 'ServiceNamespace' => [ 'shape' => 'serviceNamespaceType', ], 'Policies' => [ 'shape' => 'policyGrantingServiceAccessListType', ], ], ], 'ListPoliciesGrantingServiceAccessRequest' => [ 'type' => 'structure', 'required' => [ 'Arn', 'ServiceNamespaces', ], 'members' => [ 'Marker' => [ 'shape' => 'markerType', ], 'Arn' => [ 'shape' => 'arnType', ], 'ServiceNamespaces' => [ 'shape' => 'serviceNamespaceListType', ], ], ], 'ListPoliciesGrantingServiceAccessResponse' => [ 'type' => 'structure', 'required' => [ 'PoliciesGrantingServiceAccess', ], 'members' => [ 'PoliciesGrantingServiceAccess' => [ 'shape' => 'listPolicyGrantingServiceAccessResponseListType', ], 'IsTruncated' => [ 'shape' => 'booleanType', ], 'Marker' => [ 'shape' => 'markerType', ], ], ], 'ListPoliciesRequest' => [ 'type' => 'structure', 'members' => [ 'Scope' => [ 'shape' => 'policyScopeType', ], 'OnlyAttached' => [ 'shape' => 'booleanType', ], 'PathPrefix' => [ 'shape' => 'policyPathType', ], 'PolicyUsageFilter' => [ 'shape' => 'PolicyUsageType', ], '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', ], ], ], 'ListRoleTagsRequest' => [ 'type' => 'structure', 'required' => [ 'RoleName', ], 'members' => [ 'RoleName' => [ 'shape' => 'roleNameType', ], 'Marker' => [ 'shape' => 'markerType', ], 'MaxItems' => [ 'shape' => 'maxItemsType', ], ], ], 'ListRoleTagsResponse' => [ 'type' => 'structure', 'required' => [ 'Tags', ], 'members' => [ 'Tags' => [ 'shape' => 'tagListType', ], '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', ], ], ], 'ListSSHPublicKeysRequest' => [ 'type' => 'structure', 'members' => [ 'UserName' => [ 'shape' => 'userNameType', ], 'Marker' => [ 'shape' => 'markerType', ], 'MaxItems' => [ 'shape' => 'maxItemsType', ], ], ], 'ListSSHPublicKeysResponse' => [ 'type' => 'structure', 'members' => [ 'SSHPublicKeys' => [ 'shape' => 'SSHPublicKeyListType', ], 'IsTruncated' => [ 'shape' => 'booleanType', ], 'Marker' => [ 'shape' => 'markerType', ], ], ], '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', ], ], ], 'ListServiceSpecificCredentialsRequest' => [ 'type' => 'structure', 'members' => [ 'UserName' => [ 'shape' => 'userNameType', ], 'ServiceName' => [ 'shape' => 'serviceName', ], ], ], 'ListServiceSpecificCredentialsResponse' => [ 'type' => 'structure', 'members' => [ 'ServiceSpecificCredentials' => [ 'shape' => 'ServiceSpecificCredentialsListType', ], ], ], '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', ], ], ], 'ListUserTagsRequest' => [ 'type' => 'structure', 'required' => [ 'UserName', ], 'members' => [ 'UserName' => [ 'shape' => 'existingUserNameType', ], 'Marker' => [ 'shape' => 'markerType', ], 'MaxItems' => [ 'shape' => 'maxItemsType', ], ], ], 'ListUserTagsResponse' => [ 'type' => 'structure', 'required' => [ 'Tags', ], 'members' => [ 'Tags' => [ 'shape' => 'tagListType', ], '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', ], 'PermissionsBoundaryUsageCount' => [ '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', 'max' => 255, 'min' => 1, ], 'OrganizationsDecisionDetail' => [ 'type' => 'structure', 'members' => [ 'AllowedByOrganizations' => [ 'shape' => 'booleanType', ], ], ], '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, ], 'PermissionsBoundaryAttachmentType' => [ 'type' => 'string', 'enum' => [ 'PermissionsBoundaryPolicy', ], ], 'Policy' => [ 'type' => 'structure', 'members' => [ 'PolicyName' => [ 'shape' => 'policyNameType', ], 'PolicyId' => [ 'shape' => 'idType', ], 'Arn' => [ 'shape' => 'arnType', ], 'Path' => [ 'shape' => 'policyPathType', ], 'DefaultVersionId' => [ 'shape' => 'policyVersionIdType', ], 'AttachmentCount' => [ 'shape' => 'attachmentCountType', ], 'PermissionsBoundaryUsageCount' => [ 'shape' => 'attachmentCountType', ], 'IsAttachable' => [ 'shape' => 'booleanType', ], 'Description' => [ 'shape' => 'policyDescriptionType', ], 'CreateDate' => [ 'shape' => 'dateType', ], 'UpdateDate' => [ 'shape' => 'dateType', ], ], ], 'PolicyDetail' => [ 'type' => 'structure', 'members' => [ 'PolicyName' => [ 'shape' => 'policyNameType', ], 'PolicyDocument' => [ 'shape' => 'policyDocumentType', ], ], ], 'PolicyEvaluationDecisionType' => [ 'type' => 'string', 'enum' => [ 'allowed', 'explicitDeny', 'implicitDeny', ], ], 'PolicyEvaluationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'policyEvaluationErrorMessage', ], ], 'error' => [ 'code' => 'PolicyEvaluation', 'httpStatusCode' => 500, ], 'exception' => true, ], 'PolicyGrantingServiceAccess' => [ 'type' => 'structure', 'required' => [ 'PolicyName', 'PolicyType', ], 'members' => [ 'PolicyName' => [ 'shape' => 'policyNameType', ], 'PolicyType' => [ 'shape' => 'policyType', ], 'PolicyArn' => [ 'shape' => 'arnType', ], 'EntityType' => [ 'shape' => 'policyOwnerEntityType', ], 'EntityName' => [ 'shape' => 'entityNameType', ], ], ], 'PolicyGroup' => [ 'type' => 'structure', 'members' => [ 'GroupName' => [ 'shape' => 'groupNameType', ], 'GroupId' => [ 'shape' => 'idType', ], ], ], 'PolicyGroupListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyGroup', ], ], 'PolicyIdentifierType' => [ 'type' => 'string', ], 'PolicyNotAttachableException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'policyNotAttachableMessage', ], ], 'error' => [ 'code' => 'PolicyNotAttachable', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'PolicyRole' => [ 'type' => 'structure', 'members' => [ 'RoleName' => [ 'shape' => 'roleNameType', ], 'RoleId' => [ 'shape' => 'idType', ], ], ], 'PolicyRoleListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyRole', ], ], 'PolicySourceType' => [ 'type' => 'string', 'enum' => [ 'user', 'group', 'role', 'aws-managed', 'user-managed', 'resource', 'none', ], ], 'PolicyUsageType' => [ 'type' => 'string', 'enum' => [ 'PermissionsPolicy', 'PermissionsBoundary', ], ], 'PolicyUser' => [ 'type' => 'structure', 'members' => [ 'UserName' => [ 'shape' => 'userNameType', ], 'UserId' => [ 'shape' => 'idType', ], ], ], 'PolicyUserListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyUser', ], ], 'PolicyVersion' => [ 'type' => 'structure', 'members' => [ 'Document' => [ 'shape' => 'policyDocumentType', ], 'VersionId' => [ 'shape' => 'policyVersionIdType', ], 'IsDefaultVersion' => [ 'shape' => 'booleanType', ], 'CreateDate' => [ 'shape' => 'dateType', ], ], ], 'Position' => [ 'type' => 'structure', 'members' => [ 'Line' => [ 'shape' => 'LineNumber', ], 'Column' => [ 'shape' => 'ColumnNumber', ], ], ], 'PutGroupPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'GroupName', 'PolicyName', 'PolicyDocument', ], 'members' => [ 'GroupName' => [ 'shape' => 'groupNameType', ], 'PolicyName' => [ 'shape' => 'policyNameType', ], 'PolicyDocument' => [ 'shape' => 'policyDocumentType', ], ], ], 'PutRolePermissionsBoundaryRequest' => [ 'type' => 'structure', 'required' => [ 'RoleName', 'PermissionsBoundary', ], 'members' => [ 'RoleName' => [ 'shape' => 'roleNameType', ], 'PermissionsBoundary' => [ 'shape' => 'arnType', ], ], ], 'PutRolePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'RoleName', 'PolicyName', 'PolicyDocument', ], 'members' => [ 'RoleName' => [ 'shape' => 'roleNameType', ], 'PolicyName' => [ 'shape' => 'policyNameType', ], 'PolicyDocument' => [ 'shape' => 'policyDocumentType', ], ], ], 'PutUserPermissionsBoundaryRequest' => [ 'type' => 'structure', 'required' => [ 'UserName', 'PermissionsBoundary', ], 'members' => [ 'UserName' => [ 'shape' => 'userNameType', ], 'PermissionsBoundary' => [ 'shape' => 'arnType', ], ], ], 'PutUserPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'UserName', 'PolicyName', 'PolicyDocument', ], 'members' => [ 'UserName' => [ 'shape' => 'existingUserNameType', ], 'PolicyName' => [ 'shape' => 'policyNameType', ], 'PolicyDocument' => [ 'shape' => 'policyDocumentType', ], ], ], 'ReasonType' => [ 'type' => 'string', 'max' => 1000, ], 'RegionNameType' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], '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', ], ], 'ResetServiceSpecificCredentialRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceSpecificCredentialId', ], 'members' => [ 'UserName' => [ 'shape' => 'userNameType', ], 'ServiceSpecificCredentialId' => [ 'shape' => 'serviceSpecificCredentialId', ], ], ], 'ResetServiceSpecificCredentialResponse' => [ 'type' => 'structure', 'members' => [ 'ServiceSpecificCredential' => [ 'shape' => 'ServiceSpecificCredential', ], ], ], 'ResourceHandlingOptionType' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'ResourceNameListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceNameType', ], ], 'ResourceNameType' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'ResourceSpecificResult' => [ 'type' => 'structure', 'required' => [ 'EvalResourceName', 'EvalResourceDecision', ], 'members' => [ 'EvalResourceName' => [ 'shape' => 'ResourceNameType', ], 'EvalResourceDecision' => [ 'shape' => 'PolicyEvaluationDecisionType', ], 'MatchedStatements' => [ 'shape' => 'StatementListType', ], 'MissingContextValues' => [ 'shape' => 'ContextKeyNamesResultListType', ], 'EvalDecisionDetails' => [ 'shape' => 'EvalDecisionDetailsType', ], ], ], 'ResourceSpecificResultListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceSpecificResult', ], ], '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', ], 'Description' => [ 'shape' => 'roleDescriptionType', ], 'MaxSessionDuration' => [ 'shape' => 'roleMaxSessionDurationType', ], 'PermissionsBoundary' => [ 'shape' => 'AttachedPermissionsBoundary', ], 'Tags' => [ 'shape' => 'tagListType', ], ], ], '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', ], 'PermissionsBoundary' => [ 'shape' => 'AttachedPermissionsBoundary', ], 'Tags' => [ 'shape' => 'tagListType', ], ], ], 'RoleUsageListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'RoleUsageType', ], ], 'RoleUsageType' => [ 'type' => 'structure', 'members' => [ 'Region' => [ 'shape' => 'RegionNameType', ], 'Resources' => [ 'shape' => 'ArnListType', ], ], ], 'SAMLMetadataDocumentType' => [ 'type' => 'string', 'max' => 10000000, 'min' => 1000, ], 'SAMLProviderListEntry' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'arnType', ], 'ValidUntil' => [ 'shape' => 'dateType', ], 'CreateDate' => [ 'shape' => 'dateType', ], ], ], 'SAMLProviderListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'SAMLProviderListEntry', ], ], 'SAMLProviderNameType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w._-]+', ], 'SSHPublicKey' => [ 'type' => 'structure', 'required' => [ 'UserName', 'SSHPublicKeyId', 'Fingerprint', 'SSHPublicKeyBody', 'Status', ], 'members' => [ 'UserName' => [ 'shape' => 'userNameType', ], 'SSHPublicKeyId' => [ 'shape' => 'publicKeyIdType', ], 'Fingerprint' => [ 'shape' => 'publicKeyFingerprintType', ], 'SSHPublicKeyBody' => [ 'shape' => 'publicKeyMaterialType', ], 'Status' => [ 'shape' => 'statusType', ], 'UploadDate' => [ 'shape' => 'dateType', ], ], ], 'SSHPublicKeyListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'SSHPublicKeyMetadata', ], ], 'SSHPublicKeyMetadata' => [ 'type' => 'structure', 'required' => [ 'UserName', 'SSHPublicKeyId', 'Status', 'UploadDate', ], 'members' => [ 'UserName' => [ 'shape' => 'userNameType', ], 'SSHPublicKeyId' => [ 'shape' => 'publicKeyIdType', ], 'Status' => [ 'shape' => 'statusType', ], 'UploadDate' => [ 'shape' => 'dateType', ], ], ], '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, ], 'ServiceLastAccessed' => [ 'type' => 'structure', 'required' => [ 'ServiceName', 'ServiceNamespace', ], 'members' => [ 'ServiceName' => [ 'shape' => 'serviceNameType', ], 'LastAuthenticated' => [ 'shape' => 'dateType', ], 'ServiceNamespace' => [ 'shape' => 'serviceNamespaceType', ], 'LastAuthenticatedEntity' => [ 'shape' => 'arnType', ], 'TotalAuthenticatedEntities' => [ 'shape' => 'integerType', ], ], ], 'ServiceNotSupportedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'serviceNotSupportedMessage', ], ], 'error' => [ 'code' => 'NotSupportedService', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'ServiceSpecificCredential' => [ 'type' => 'structure', 'required' => [ 'CreateDate', 'ServiceName', 'ServiceUserName', 'ServicePassword', 'ServiceSpecificCredentialId', 'UserName', 'Status', ], 'members' => [ 'CreateDate' => [ 'shape' => 'dateType', ], 'ServiceName' => [ 'shape' => 'serviceName', ], 'ServiceUserName' => [ 'shape' => 'serviceUserName', ], 'ServicePassword' => [ 'shape' => 'servicePassword', ], 'ServiceSpecificCredentialId' => [ 'shape' => 'serviceSpecificCredentialId', ], 'UserName' => [ 'shape' => 'userNameType', ], 'Status' => [ 'shape' => 'statusType', ], ], ], 'ServiceSpecificCredentialMetadata' => [ 'type' => 'structure', 'required' => [ 'UserName', 'Status', 'ServiceUserName', 'CreateDate', 'ServiceSpecificCredentialId', 'ServiceName', ], 'members' => [ 'UserName' => [ 'shape' => 'userNameType', ], 'Status' => [ 'shape' => 'statusType', ], 'ServiceUserName' => [ 'shape' => 'serviceUserName', ], 'CreateDate' => [ 'shape' => 'dateType', ], 'ServiceSpecificCredentialId' => [ 'shape' => 'serviceSpecificCredentialId', ], 'ServiceName' => [ 'shape' => 'serviceName', ], ], ], 'ServiceSpecificCredentialsListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceSpecificCredentialMetadata', ], ], 'ServicesLastAccessed' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceLastAccessed', ], ], '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', ], ], ], 'SimulateCustomPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'PolicyInputList', 'ActionNames', ], 'members' => [ 'PolicyInputList' => [ 'shape' => 'SimulationPolicyListType', ], 'ActionNames' => [ 'shape' => 'ActionNameListType', ], 'ResourceArns' => [ 'shape' => 'ResourceNameListType', ], 'ResourcePolicy' => [ 'shape' => 'policyDocumentType', ], 'ResourceOwner' => [ 'shape' => 'ResourceNameType', ], 'CallerArn' => [ 'shape' => 'ResourceNameType', ], 'ContextEntries' => [ 'shape' => 'ContextEntryListType', ], 'ResourceHandlingOption' => [ 'shape' => 'ResourceHandlingOptionType', ], 'MaxItems' => [ 'shape' => 'maxItemsType', ], 'Marker' => [ 'shape' => 'markerType', ], ], ], 'SimulatePolicyResponse' => [ 'type' => 'structure', 'members' => [ 'EvaluationResults' => [ 'shape' => 'EvaluationResultsListType', ], 'IsTruncated' => [ 'shape' => 'booleanType', ], 'Marker' => [ 'shape' => 'markerType', ], ], ], 'SimulatePrincipalPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'PolicySourceArn', 'ActionNames', ], 'members' => [ 'PolicySourceArn' => [ 'shape' => 'arnType', ], 'PolicyInputList' => [ 'shape' => 'SimulationPolicyListType', ], 'ActionNames' => [ 'shape' => 'ActionNameListType', ], 'ResourceArns' => [ 'shape' => 'ResourceNameListType', ], 'ResourcePolicy' => [ 'shape' => 'policyDocumentType', ], 'ResourceOwner' => [ 'shape' => 'ResourceNameType', ], 'CallerArn' => [ 'shape' => 'ResourceNameType', ], 'ContextEntries' => [ 'shape' => 'ContextEntryListType', ], 'ResourceHandlingOption' => [ 'shape' => 'ResourceHandlingOptionType', ], 'MaxItems' => [ 'shape' => 'maxItemsType', ], 'Marker' => [ 'shape' => 'markerType', ], ], ], 'SimulationPolicyListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'policyDocumentType', ], ], 'Statement' => [ 'type' => 'structure', 'members' => [ 'SourcePolicyId' => [ 'shape' => 'PolicyIdentifierType', ], 'SourcePolicyType' => [ 'shape' => 'PolicySourceType', ], 'StartPosition' => [ 'shape' => 'Position', ], 'EndPosition' => [ 'shape' => 'Position', ], ], ], 'StatementListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'Statement', ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'tagKeyType', ], 'Value' => [ 'shape' => 'tagValueType', ], ], ], 'TagRoleRequest' => [ 'type' => 'structure', 'required' => [ 'RoleName', 'Tags', ], 'members' => [ 'RoleName' => [ 'shape' => 'roleNameType', ], 'Tags' => [ 'shape' => 'tagListType', ], ], ], 'TagUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserName', 'Tags', ], 'members' => [ 'UserName' => [ 'shape' => 'existingUserNameType', ], 'Tags' => [ 'shape' => 'tagListType', ], ], ], 'UnmodifiableEntityException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'unmodifiableEntityMessage', ], ], 'error' => [ 'code' => 'UnmodifiableEntity', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'UnrecognizedPublicKeyEncodingException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'unrecognizedPublicKeyEncodingMessage', ], ], 'error' => [ 'code' => 'UnrecognizedPublicKeyEncoding', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'UntagRoleRequest' => [ 'type' => 'structure', 'required' => [ 'RoleName', 'TagKeys', ], 'members' => [ 'RoleName' => [ 'shape' => 'roleNameType', ], 'TagKeys' => [ 'shape' => 'tagKeyListType', ], ], ], 'UntagUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserName', 'TagKeys', ], 'members' => [ 'UserName' => [ 'shape' => 'existingUserNameType', ], 'TagKeys' => [ 'shape' => 'tagKeyListType', ], ], ], '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', ], ], ], 'UpdateRoleDescriptionRequest' => [ 'type' => 'structure', 'required' => [ 'RoleName', 'Description', ], 'members' => [ 'RoleName' => [ 'shape' => 'roleNameType', ], 'Description' => [ 'shape' => 'roleDescriptionType', ], ], ], 'UpdateRoleDescriptionResponse' => [ 'type' => 'structure', 'members' => [ 'Role' => [ 'shape' => 'Role', ], ], ], 'UpdateRoleRequest' => [ 'type' => 'structure', 'required' => [ 'RoleName', ], 'members' => [ 'RoleName' => [ 'shape' => 'roleNameType', ], 'Description' => [ 'shape' => 'roleDescriptionType', ], 'MaxSessionDuration' => [ 'shape' => 'roleMaxSessionDurationType', ], ], ], 'UpdateRoleResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateSAMLProviderRequest' => [ 'type' => 'structure', 'required' => [ 'SAMLMetadataDocument', 'SAMLProviderArn', ], 'members' => [ 'SAMLMetadataDocument' => [ 'shape' => 'SAMLMetadataDocumentType', ], 'SAMLProviderArn' => [ 'shape' => 'arnType', ], ], ], 'UpdateSAMLProviderResponse' => [ 'type' => 'structure', 'members' => [ 'SAMLProviderArn' => [ 'shape' => 'arnType', ], ], ], 'UpdateSSHPublicKeyRequest' => [ 'type' => 'structure', 'required' => [ 'UserName', 'SSHPublicKeyId', 'Status', ], 'members' => [ 'UserName' => [ 'shape' => 'userNameType', ], 'SSHPublicKeyId' => [ 'shape' => 'publicKeyIdType', ], 'Status' => [ 'shape' => 'statusType', ], ], ], 'UpdateServerCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'ServerCertificateName', ], 'members' => [ 'ServerCertificateName' => [ 'shape' => 'serverCertificateNameType', ], 'NewPath' => [ 'shape' => 'pathType', ], 'NewServerCertificateName' => [ 'shape' => 'serverCertificateNameType', ], ], ], 'UpdateServiceSpecificCredentialRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceSpecificCredentialId', 'Status', ], 'members' => [ 'UserName' => [ 'shape' => 'userNameType', ], 'ServiceSpecificCredentialId' => [ 'shape' => 'serviceSpecificCredentialId', ], 'Status' => [ 'shape' => 'statusType', ], ], ], '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', ], ], ], 'UploadSSHPublicKeyRequest' => [ 'type' => 'structure', 'required' => [ 'UserName', 'SSHPublicKeyBody', ], 'members' => [ 'UserName' => [ 'shape' => 'userNameType', ], 'SSHPublicKeyBody' => [ 'shape' => 'publicKeyMaterialType', ], ], ], 'UploadSSHPublicKeyResponse' => [ 'type' => 'structure', 'members' => [ 'SSHPublicKey' => [ 'shape' => 'SSHPublicKey', ], ], ], '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', ], 'PermissionsBoundary' => [ 'shape' => 'AttachedPermissionsBoundary', ], 'Tags' => [ 'shape' => 'tagListType', ], ], ], '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', ], 'PermissionsBoundary' => [ 'shape' => 'AttachedPermissionsBoundary', ], 'Tags' => [ 'shape' => 'tagListType', ], ], ], 'VirtualMFADevice' => [ 'type' => 'structure', 'required' => [ 'SerialNumber', ], 'members' => [ 'SerialNumber' => [ 'shape' => 'serialNumberType', ], 'Base32StringSeed' => [ 'shape' => 'BootstrapDatum', ], 'QRCodePNG' => [ 'shape' => 'BootstrapDatum', ], 'User' => [ 'shape' => 'User', ], 'EnableDate' => [ 'shape' => 'dateType', ], ], ], 'accessKeyIdType' => [ 'type' => 'string', 'max' => 128, 'min' => 16, 'pattern' => '[\\w]+', ], 'accessKeyMetadataListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccessKeyMetadata', ], ], 'accessKeySecretType' => [ 'type' => 'string', 'sensitive' => true, ], 'accountAliasListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'accountAliasType', ], ], 'accountAliasType' => [ 'type' => 'string', 'max' => 63, 'min' => 3, 'pattern' => '^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$', ], 'arnType' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, ], 'assignmentStatusType' => [ 'type' => 'string', 'enum' => [ 'Assigned', 'Unassigned', 'Any', ], ], 'attachedPoliciesListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttachedPolicy', ], ], 'attachmentCountType' => [ 'type' => 'integer', ], 'authenticationCodeType' => [ 'type' => 'string', 'max' => 6, 'min' => 6, 'pattern' => '[\\d]+', ], 'booleanObjectType' => [ 'type' => 'boolean', 'box' => true, ], 'booleanType' => [ 'type' => 'boolean', ], 'certificateBodyType' => [ 'type' => 'string', 'max' => 16384, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+', ], 'certificateChainType' => [ 'type' => 'string', 'max' => 2097152, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+', ], 'certificateIdType' => [ 'type' => 'string', 'max' => 128, 'min' => 24, 'pattern' => '[\\w]+', ], 'certificateListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'SigningCertificate', ], ], 'clientIDListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'clientIDType', ], ], 'clientIDType' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'credentialReportExpiredExceptionMessage' => [ 'type' => 'string', ], 'credentialReportNotPresentExceptionMessage' => [ 'type' => 'string', ], 'credentialReportNotReadyExceptionMessage' => [ 'type' => 'string', ], 'customSuffixType' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[\\w+=,.@-]+', ], 'dateType' => [ 'type' => 'timestamp', ], 'deleteConflictMessage' => [ 'type' => 'string', ], 'duplicateCertificateMessage' => [ 'type' => 'string', ], 'duplicateSSHPublicKeyMessage' => [ 'type' => 'string', ], 'encodingType' => [ 'type' => 'string', 'enum' => [ 'SSH', 'PEM', ], ], 'entityAlreadyExistsMessage' => [ 'type' => 'string', ], 'entityDetailsListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'EntityDetails', ], ], 'entityListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'EntityType', ], ], 'entityNameType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w+=,.@-]+', ], 'entityTemporarilyUnmodifiableMessage' => [ 'type' => 'string', ], 'existingUserNameType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w+=,.@-]+', ], 'groupDetailListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'GroupDetail', ], ], 'groupListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'Group', ], ], 'groupNameListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'groupNameType', ], ], 'groupNameType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w+=,.@-]+', ], 'idType' => [ 'type' => 'string', 'max' => 128, 'min' => 16, 'pattern' => '[\\w]+', ], 'instanceProfileListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceProfile', ], ], 'instanceProfileNameType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w+=,.@-]+', ], 'integerType' => [ 'type' => 'integer', ], 'invalidAuthenticationCodeMessage' => [ 'type' => 'string', ], 'invalidCertificateMessage' => [ 'type' => 'string', ], 'invalidInputMessage' => [ 'type' => 'string', ], 'invalidPublicKeyMessage' => [ 'type' => 'string', ], 'invalidUserTypeMessage' => [ 'type' => 'string', ], 'jobIDType' => [ 'type' => 'string', 'max' => 36, 'min' => 36, ], 'jobStatusType' => [ 'type' => 'string', 'enum' => [ 'IN_PROGRESS', 'COMPLETED', 'FAILED', ], ], 'keyPairMismatchMessage' => [ 'type' => 'string', ], 'limitExceededMessage' => [ 'type' => 'string', ], 'listPolicyGrantingServiceAccessResponseListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ListPoliciesGrantingServiceAccessEntry', ], ], 'malformedCertificateMessage' => [ 'type' => 'string', ], 'malformedPolicyDocumentMessage' => [ 'type' => 'string', ], 'markerType' => [ 'type' => 'string', 'max' => 320, 'min' => 1, 'pattern' => '[\\u0020-\\u00FF]+', ], 'maxItemsType' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'maxPasswordAgeType' => [ 'type' => 'integer', 'box' => true, 'max' => 1095, 'min' => 1, ], 'mfaDeviceListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'MFADevice', ], ], 'minimumPasswordLengthType' => [ 'type' => 'integer', 'max' => 128, 'min' => 6, ], 'noSuchEntityMessage' => [ 'type' => 'string', ], 'passwordPolicyViolationMessage' => [ 'type' => 'string', ], 'passwordReusePreventionType' => [ 'type' => 'integer', 'box' => true, 'max' => 24, 'min' => 1, ], 'passwordType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+', 'sensitive' => true, ], 'pathPrefixType' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => '\\u002F[\\u0021-\\u007F]*', ], 'pathType' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => '(\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F)', ], 'policyDescriptionType' => [ 'type' => 'string', 'max' => 1000, ], 'policyDetailListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyDetail', ], ], 'policyDocumentType' => [ 'type' => 'string', 'max' => 131072, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+', ], 'policyDocumentVersionListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyVersion', ], ], 'policyEvaluationErrorMessage' => [ 'type' => 'string', ], 'policyGrantingServiceAccessListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyGrantingServiceAccess', ], ], 'policyListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'Policy', ], ], 'policyNameListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'policyNameType', ], ], 'policyNameType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w+=,.@-]+', ], 'policyNotAttachableMessage' => [ 'type' => 'string', ], 'policyOwnerEntityType' => [ 'type' => 'string', 'enum' => [ 'USER', 'ROLE', 'GROUP', ], ], 'policyPathType' => [ 'type' => 'string', 'pattern' => '((/[A-Za-z0-9\\.,\\+@=_-]+)*)/', ], 'policyScopeType' => [ 'type' => 'string', 'enum' => [ 'All', 'AWS', 'Local', ], ], 'policyType' => [ 'type' => 'string', 'enum' => [ 'INLINE', 'MANAGED', ], ], 'policyVersionIdType' => [ 'type' => 'string', 'pattern' => 'v[1-9][0-9]*(\\.[A-Za-z0-9-]*)?', ], 'privateKeyType' => [ 'type' => 'string', 'max' => 16384, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+', 'sensitive' => true, ], 'publicKeyFingerprintType' => [ 'type' => 'string', 'max' => 48, 'min' => 48, 'pattern' => '[:\\w]+', ], 'publicKeyIdType' => [ 'type' => 'string', 'max' => 128, 'min' => 20, 'pattern' => '[\\w]+', ], 'publicKeyMaterialType' => [ 'type' => 'string', 'max' => 16384, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+', ], 'roleDescriptionType' => [ 'type' => 'string', 'max' => 1000, 'pattern' => '[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}]*', ], 'roleDetailListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'RoleDetail', ], ], 'roleListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'Role', ], ], 'roleMaxSessionDurationType' => [ 'type' => 'integer', 'max' => 43200, 'min' => 3600, ], 'roleNameType' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[\\w+=,.@-]+', ], 'serialNumberType' => [ 'type' => 'string', 'max' => 256, 'min' => 9, 'pattern' => '[\\w+=/:,.@-]+', ], 'serverCertificateMetadataListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServerCertificateMetadata', ], ], 'serverCertificateNameType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w+=,.@-]+', ], 'serviceFailureExceptionMessage' => [ 'type' => 'string', ], 'serviceName' => [ 'type' => 'string', ], 'serviceNameType' => [ 'type' => 'string', ], 'serviceNamespaceListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'serviceNamespaceType', ], 'max' => 200, 'min' => 1, ], 'serviceNamespaceType' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[\\w-]*', ], 'serviceNotSupportedMessage' => [ 'type' => 'string', ], 'servicePassword' => [ 'type' => 'string', 'sensitive' => true, ], 'serviceSpecificCredentialId' => [ 'type' => 'string', 'max' => 128, 'min' => 20, 'pattern' => '[\\w]+', ], 'serviceUserName' => [ 'type' => 'string', 'max' => 200, 'min' => 17, 'pattern' => '[\\w+=,.@-]+', ], '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', ], 'tagKeyListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'tagKeyType', ], 'max' => 50, ], 'tagKeyType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]+', ], 'tagListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 50, ], 'tagValueType' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*', ], 'thumbprintListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'thumbprintType', ], ], 'thumbprintType' => [ 'type' => 'string', 'max' => 40, 'min' => 40, ], 'unmodifiableEntityMessage' => [ 'type' => 'string', ], 'unrecognizedPublicKeyEncodingMessage' => [ 'type' => 'string', ], 'userDetailListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserDetail', ], ], 'userListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'User', ], ], 'userNameType' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[\\w+=,.@-]+', ], 'virtualMFADeviceListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'VirtualMFADevice', ], ], 'virtualMFADeviceName' => [ 'type' => 'string', 'min' => 1, 'pattern' => '[\\w+=,.@-]+', ], ],]; diff --git a/lib/aws/Aws/data/iam/2010-05-08/paginators-1.json.php b/lib/aws/Aws/data/iam/2010-05-08/paginators-1.json.php new file mode 100644 index 0000000..99693e6 --- /dev/null +++ b/lib/aws/Aws/data/iam/2010-05-08/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/iam/2010-05-08/paginators-1.json +return [ 'pagination' => [ 'GetAccountAuthorizationDetails' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => [ 'UserDetailList', 'GroupDetailList', 'RoleDetailList', 'Policies', ], ], 'GetGroup' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'Users', ], 'ListAccessKeys' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'AccessKeyMetadata', ], 'ListAccountAliases' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'AccountAliases', ], 'ListAttachedGroupPolicies' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'AttachedPolicies', ], 'ListAttachedRolePolicies' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'AttachedPolicies', ], 'ListAttachedUserPolicies' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'AttachedPolicies', ], 'ListEntitiesForPolicy' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => [ 'PolicyGroups', 'PolicyUsers', 'PolicyRoles', ], ], 'ListGroupPolicies' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'PolicyNames', ], 'ListGroups' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'Groups', ], 'ListGroupsForUser' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'Groups', ], 'ListInstanceProfiles' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'InstanceProfiles', ], 'ListInstanceProfilesForRole' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'InstanceProfiles', ], 'ListMFADevices' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'MFADevices', ], 'ListPolicies' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'Policies', ], 'ListPolicyVersions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'Versions', ], 'ListRolePolicies' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'PolicyNames', ], 'ListRoles' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'Roles', ], 'ListSAMLProviders' => [ 'result_key' => 'SAMLProviderList', ], 'ListSSHPublicKeys' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'SSHPublicKeys', ], 'ListServerCertificates' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'ServerCertificateMetadataList', ], 'ListSigningCertificates' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'Certificates', ], 'ListUserPolicies' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'PolicyNames', ], 'ListUsers' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'Users', ], 'ListVirtualMFADevices' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'VirtualMFADevices', ], 'SimulateCustomPolicy' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'EvaluationResults', ], 'SimulatePrincipalPolicy' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'Marker', 'result_key' => 'EvaluationResults', ], ],]; diff --git a/lib/aws/Aws/data/iam/2010-05-08/smoke.json.php b/lib/aws/Aws/data/iam/2010-05-08/smoke.json.php new file mode 100644 index 0000000..75b4dcc --- /dev/null +++ b/lib/aws/Aws/data/iam/2010-05-08/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/iam/2010-05-08/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-east-1', 'testCases' => [ [ 'operationName' => 'ListUsers', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'GetUser', 'input' => [ 'UserName' => 'fake_user', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/iam/2010-05-08/waiters-2.json.php b/lib/aws/Aws/data/iam/2010-05-08/waiters-2.json.php new file mode 100644 index 0000000..b49f184 --- /dev/null +++ b/lib/aws/Aws/data/iam/2010-05-08/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/iam/2010-05-08/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'InstanceProfileExists' => [ 'delay' => 1, 'operation' => 'GetInstanceProfile', 'maxAttempts' => 40, 'acceptors' => [ [ 'expected' => 200, 'matcher' => 'status', 'state' => 'success', ], [ 'state' => 'retry', 'matcher' => 'status', 'expected' => 404, ], ], ], 'UserExists' => [ 'delay' => 1, 'operation' => 'GetUser', 'maxAttempts' => 20, 'acceptors' => [ [ 'state' => 'success', 'matcher' => 'status', 'expected' => 200, ], [ 'state' => 'retry', 'matcher' => 'error', 'expected' => 'NoSuchEntity', ], ], ], ],]; diff --git a/lib/aws/Aws/data/importexport/2010-06-01/api-2.json.php b/lib/aws/Aws/data/importexport/2010-06-01/api-2.json.php new file mode 100644 index 0000000..6085251 --- /dev/null +++ b/lib/aws/Aws/data/importexport/2010-06-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/importexport/2010-06-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'uid' => 'importexport-2010-06-01', 'apiVersion' => '2010-06-01', 'endpointPrefix' => 'importexport', 'globalEndpoint' => 'importexport.amazonaws.com', 'serviceFullName' => 'AWS Import/Export', 'signatureVersion' => 'v2', 'xmlNamespace' => 'http://importexport.amazonaws.com/doc/2010-06-01/', 'protocol' => 'query', ], 'operations' => [ 'CancelJob' => [ 'name' => 'CancelJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/?Operation=CancelJob', ], 'input' => [ 'shape' => 'CancelJobInput', ], 'output' => [ 'shape' => 'CancelJobOutput', 'resultWrapper' => 'CancelJobResult', ], 'errors' => [ [ 'shape' => 'InvalidJobIdException', 'exception' => true, ], [ 'shape' => 'ExpiredJobIdException', 'exception' => true, ], [ 'shape' => 'CanceledJobIdException', 'exception' => true, ], [ 'shape' => 'UnableToCancelJobIdException', 'exception' => true, ], [ 'shape' => 'InvalidAccessKeyIdException', 'exception' => true, ], [ 'shape' => 'InvalidVersionException', 'exception' => true, ], ], ], 'CreateJob' => [ 'name' => 'CreateJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/?Operation=CreateJob', ], 'input' => [ 'shape' => 'CreateJobInput', ], 'output' => [ 'shape' => 'CreateJobOutput', 'resultWrapper' => 'CreateJobResult', ], 'errors' => [ [ 'shape' => 'MissingParameterException', 'exception' => true, ], [ 'shape' => 'InvalidParameterException', 'exception' => true, ], [ 'shape' => 'InvalidAccessKeyIdException', 'exception' => true, ], [ 'shape' => 'InvalidAddressException', 'exception' => true, ], [ 'shape' => 'InvalidManifestFieldException', 'exception' => true, ], [ 'shape' => 'MissingManifestFieldException', 'exception' => true, ], [ 'shape' => 'NoSuchBucketException', 'exception' => true, ], [ 'shape' => 'MissingCustomsException', 'exception' => true, ], [ 'shape' => 'InvalidCustomsException', 'exception' => true, ], [ 'shape' => 'InvalidFileSystemException', 'exception' => true, ], [ 'shape' => 'MultipleRegionsException', 'exception' => true, ], [ 'shape' => 'BucketPermissionException', 'exception' => true, ], [ 'shape' => 'MalformedManifestException', 'exception' => true, ], [ 'shape' => 'CreateJobQuotaExceededException', 'exception' => true, ], [ 'shape' => 'InvalidJobIdException', 'exception' => true, ], [ 'shape' => 'InvalidVersionException', 'exception' => true, ], ], ], 'GetShippingLabel' => [ 'name' => 'GetShippingLabel', 'http' => [ 'method' => 'POST', 'requestUri' => '/?Operation=GetShippingLabel', ], 'input' => [ 'shape' => 'GetShippingLabelInput', ], 'output' => [ 'shape' => 'GetShippingLabelOutput', 'resultWrapper' => 'GetShippingLabelResult', ], 'errors' => [ [ 'shape' => 'InvalidJobIdException', 'exception' => true, ], [ 'shape' => 'ExpiredJobIdException', 'exception' => true, ], [ 'shape' => 'CanceledJobIdException', 'exception' => true, ], [ 'shape' => 'InvalidAccessKeyIdException', 'exception' => true, ], [ 'shape' => 'InvalidAddressException', 'exception' => true, ], [ 'shape' => 'InvalidVersionException', 'exception' => true, ], [ 'shape' => 'InvalidParameterException', 'exception' => true, ], ], ], 'GetStatus' => [ 'name' => 'GetStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/?Operation=GetStatus', ], 'input' => [ 'shape' => 'GetStatusInput', ], 'output' => [ 'shape' => 'GetStatusOutput', 'resultWrapper' => 'GetStatusResult', ], 'errors' => [ [ 'shape' => 'InvalidJobIdException', 'exception' => true, ], [ 'shape' => 'ExpiredJobIdException', 'exception' => true, ], [ 'shape' => 'CanceledJobIdException', 'exception' => true, ], [ 'shape' => 'InvalidAccessKeyIdException', 'exception' => true, ], [ 'shape' => 'InvalidVersionException', 'exception' => true, ], ], ], 'ListJobs' => [ 'name' => 'ListJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/?Operation=ListJobs', ], 'input' => [ 'shape' => 'ListJobsInput', ], 'output' => [ 'shape' => 'ListJobsOutput', 'resultWrapper' => 'ListJobsResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', 'exception' => true, ], [ 'shape' => 'InvalidAccessKeyIdException', 'exception' => true, ], [ 'shape' => 'InvalidVersionException', 'exception' => true, ], ], ], 'UpdateJob' => [ 'name' => 'UpdateJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/?Operation=UpdateJob', ], 'input' => [ 'shape' => 'UpdateJobInput', ], 'output' => [ 'shape' => 'UpdateJobOutput', 'resultWrapper' => 'UpdateJobResult', ], 'errors' => [ [ 'shape' => 'MissingParameterException', 'exception' => true, ], [ 'shape' => 'InvalidParameterException', 'exception' => true, ], [ 'shape' => 'InvalidAccessKeyIdException', 'exception' => true, ], [ 'shape' => 'InvalidAddressException', 'exception' => true, ], [ 'shape' => 'InvalidManifestFieldException', 'exception' => true, ], [ 'shape' => 'InvalidJobIdException', 'exception' => true, ], [ 'shape' => 'MissingManifestFieldException', 'exception' => true, ], [ 'shape' => 'NoSuchBucketException', 'exception' => true, ], [ 'shape' => 'ExpiredJobIdException', 'exception' => true, ], [ 'shape' => 'CanceledJobIdException', 'exception' => true, ], [ 'shape' => 'MissingCustomsException', 'exception' => true, ], [ 'shape' => 'InvalidCustomsException', 'exception' => true, ], [ 'shape' => 'InvalidFileSystemException', 'exception' => true, ], [ 'shape' => 'MultipleRegionsException', 'exception' => true, ], [ 'shape' => 'BucketPermissionException', 'exception' => true, ], [ 'shape' => 'MalformedManifestException', 'exception' => true, ], [ 'shape' => 'UnableToUpdateJobIdException', 'exception' => true, ], [ 'shape' => 'InvalidVersionException', 'exception' => true, ], ], ], ], 'shapes' => [ 'APIVersion' => [ 'type' => 'string', ], 'Artifact' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'Description', ], 'URL' => [ 'shape' => 'URL', ], ], ], 'ArtifactList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Artifact', ], ], 'BucketPermissionException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'CancelJobInput' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'APIVersion' => [ 'shape' => 'APIVersion', ], ], ], 'CancelJobOutput' => [ 'type' => 'structure', 'members' => [ 'Success' => [ 'shape' => 'Success', ], ], ], 'CanceledJobIdException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'Carrier' => [ 'type' => 'string', ], 'CreateJobInput' => [ 'type' => 'structure', 'required' => [ 'JobType', 'Manifest', 'ValidateOnly', ], 'members' => [ 'JobType' => [ 'shape' => 'JobType', ], 'Manifest' => [ 'shape' => 'Manifest', ], 'ManifestAddendum' => [ 'shape' => 'ManifestAddendum', ], 'ValidateOnly' => [ 'shape' => 'ValidateOnly', ], 'APIVersion' => [ 'shape' => 'APIVersion', ], ], ], 'CreateJobOutput' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'JobType' => [ 'shape' => 'JobType', ], 'Signature' => [ 'shape' => 'Signature', ], 'SignatureFileContents' => [ 'shape' => 'SignatureFileContents', ], 'WarningMessage' => [ 'shape' => 'WarningMessage', ], 'ArtifactList' => [ 'shape' => 'ArtifactList', ], ], ], 'CreateJobQuotaExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'CreationDate' => [ 'type' => 'timestamp', ], 'CurrentManifest' => [ 'type' => 'string', ], 'Description' => [ 'type' => 'string', ], 'ErrorCount' => [ 'type' => 'integer', ], 'ErrorMessage' => [ 'type' => 'string', ], 'ExpiredJobIdException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'GenericString' => [ 'type' => 'string', ], 'GetShippingLabelInput' => [ 'type' => 'structure', 'required' => [ 'jobIds', ], 'members' => [ 'jobIds' => [ 'shape' => 'JobIdList', ], 'name' => [ 'shape' => 'name', ], 'company' => [ 'shape' => 'company', ], 'phoneNumber' => [ 'shape' => 'phoneNumber', ], 'country' => [ 'shape' => 'country', ], 'stateOrProvince' => [ 'shape' => 'stateOrProvince', ], 'city' => [ 'shape' => 'city', ], 'postalCode' => [ 'shape' => 'postalCode', ], 'street1' => [ 'shape' => 'street1', ], 'street2' => [ 'shape' => 'street2', ], 'street3' => [ 'shape' => 'street3', ], 'APIVersion' => [ 'shape' => 'APIVersion', ], ], ], 'GetShippingLabelOutput' => [ 'type' => 'structure', 'members' => [ 'ShippingLabelURL' => [ 'shape' => 'GenericString', ], 'Warning' => [ 'shape' => 'GenericString', ], ], ], 'GetStatusInput' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'APIVersion' => [ 'shape' => 'APIVersion', ], ], ], 'GetStatusOutput' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'JobType' => [ 'shape' => 'JobType', ], 'LocationCode' => [ 'shape' => 'LocationCode', ], 'LocationMessage' => [ 'shape' => 'LocationMessage', ], 'ProgressCode' => [ 'shape' => 'ProgressCode', ], 'ProgressMessage' => [ 'shape' => 'ProgressMessage', ], 'Carrier' => [ 'shape' => 'Carrier', ], 'TrackingNumber' => [ 'shape' => 'TrackingNumber', ], 'LogBucket' => [ 'shape' => 'LogBucket', ], 'LogKey' => [ 'shape' => 'LogKey', ], 'ErrorCount' => [ 'shape' => 'ErrorCount', ], 'Signature' => [ 'shape' => 'Signature', ], 'SignatureFileContents' => [ 'shape' => 'Signature', ], 'CurrentManifest' => [ 'shape' => 'CurrentManifest', ], 'CreationDate' => [ 'shape' => 'CreationDate', ], 'ArtifactList' => [ 'shape' => 'ArtifactList', ], ], ], 'InvalidAccessKeyIdException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidAddressException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidCustomsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidFileSystemException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidJobIdException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidManifestFieldException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidVersionException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'IsCanceled' => [ 'type' => 'boolean', ], 'IsTruncated' => [ 'type' => 'boolean', ], 'Job' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'CreationDate' => [ 'shape' => 'CreationDate', ], 'IsCanceled' => [ 'shape' => 'IsCanceled', ], 'JobType' => [ 'shape' => 'JobType', ], ], ], 'JobId' => [ 'type' => 'string', ], 'JobIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GenericString', ], ], 'JobType' => [ 'type' => 'string', 'enum' => [ 'Import', 'Export', ], ], 'JobsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Job', ], ], 'ListJobsInput' => [ 'type' => 'structure', 'members' => [ 'MaxJobs' => [ 'shape' => 'MaxJobs', ], 'Marker' => [ 'shape' => 'Marker', ], 'APIVersion' => [ 'shape' => 'APIVersion', ], ], ], 'ListJobsOutput' => [ 'type' => 'structure', 'members' => [ 'Jobs' => [ 'shape' => 'JobsList', ], 'IsTruncated' => [ 'shape' => 'IsTruncated', ], ], ], 'LocationCode' => [ 'type' => 'string', ], 'LocationMessage' => [ 'type' => 'string', ], 'LogBucket' => [ 'type' => 'string', ], 'LogKey' => [ 'type' => 'string', ], 'MalformedManifestException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'Manifest' => [ 'type' => 'string', ], 'ManifestAddendum' => [ 'type' => 'string', ], 'Marker' => [ 'type' => 'string', ], 'MaxJobs' => [ 'type' => 'integer', ], 'MissingCustomsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'MissingManifestFieldException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'MissingParameterException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'MultipleRegionsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'NoSuchBucketException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ProgressCode' => [ 'type' => 'string', ], 'ProgressMessage' => [ 'type' => 'string', ], 'Signature' => [ 'type' => 'string', ], 'SignatureFileContents' => [ 'type' => 'string', ], 'Success' => [ 'type' => 'boolean', ], 'TrackingNumber' => [ 'type' => 'string', ], 'URL' => [ 'type' => 'string', ], 'UnableToCancelJobIdException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'UnableToUpdateJobIdException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'UpdateJobInput' => [ 'type' => 'structure', 'required' => [ 'JobId', 'Manifest', 'JobType', 'ValidateOnly', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'Manifest' => [ 'shape' => 'Manifest', ], 'JobType' => [ 'shape' => 'JobType', ], 'ValidateOnly' => [ 'shape' => 'ValidateOnly', ], 'APIVersion' => [ 'shape' => 'APIVersion', ], ], ], 'UpdateJobOutput' => [ 'type' => 'structure', 'members' => [ 'Success' => [ 'shape' => 'Success', ], 'WarningMessage' => [ 'shape' => 'WarningMessage', ], 'ArtifactList' => [ 'shape' => 'ArtifactList', ], ], ], 'ValidateOnly' => [ 'type' => 'boolean', ], 'WarningMessage' => [ 'type' => 'string', ], 'city' => [ 'type' => 'string', ], 'company' => [ 'type' => 'string', ], 'country' => [ 'type' => 'string', ], 'name' => [ 'type' => 'string', ], 'phoneNumber' => [ 'type' => 'string', ], 'postalCode' => [ 'type' => 'string', ], 'stateOrProvince' => [ 'type' => 'string', ], 'street1' => [ 'type' => 'string', ], 'street2' => [ 'type' => 'string', ], 'street3' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/importexport/2010-06-01/paginators-1.json.php b/lib/aws/Aws/data/importexport/2010-06-01/paginators-1.json.php new file mode 100644 index 0000000..aed1671 --- /dev/null +++ b/lib/aws/Aws/data/importexport/2010-06-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/importexport/2010-06-01/paginators-1.json +return [ 'pagination' => [ 'ListJobs' => [ 'input_token' => 'Marker', 'output_token' => 'Jobs[-1].JobId', 'more_results' => 'IsTruncated', 'limit_key' => 'MaxJobs', 'result_key' => 'Jobs', ], ],]; diff --git a/lib/aws/Aws/data/inspector/2016-02-16/api-2.json.php b/lib/aws/Aws/data/inspector/2016-02-16/api-2.json.php new file mode 100644 index 0000000..8984fca --- /dev/null +++ b/lib/aws/Aws/data/inspector/2016-02-16/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/inspector/2016-02-16/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-02-16', 'endpointPrefix' => 'inspector', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Amazon Inspector', 'serviceId' => 'Inspector', 'signatureVersion' => 'v4', 'targetPrefix' => 'InspectorService', 'uid' => 'inspector-2016-02-16', ], 'operations' => [ 'AddAttributesToFindings' => [ 'name' => 'AddAttributesToFindings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddAttributesToFindingsRequest', ], 'output' => [ 'shape' => 'AddAttributesToFindingsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceTemporarilyUnavailableException', ], ], ], 'CreateAssessmentTarget' => [ 'name' => 'CreateAssessmentTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAssessmentTargetRequest', ], 'output' => [ 'shape' => 'CreateAssessmentTargetResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidCrossAccountRoleException', ], [ 'shape' => 'ServiceTemporarilyUnavailableException', ], ], ], 'CreateAssessmentTemplate' => [ 'name' => 'CreateAssessmentTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAssessmentTemplateRequest', ], 'output' => [ 'shape' => 'CreateAssessmentTemplateResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceTemporarilyUnavailableException', ], ], ], 'CreateExclusionsPreview' => [ 'name' => 'CreateExclusionsPreview', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateExclusionsPreviewRequest', ], 'output' => [ 'shape' => 'CreateExclusionsPreviewResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'PreviewGenerationInProgressException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceTemporarilyUnavailableException', ], ], ], 'CreateResourceGroup' => [ 'name' => 'CreateResourceGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateResourceGroupRequest', ], 'output' => [ 'shape' => 'CreateResourceGroupResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServiceTemporarilyUnavailableException', ], ], ], 'DeleteAssessmentRun' => [ 'name' => 'DeleteAssessmentRun', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAssessmentRunRequest', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AssessmentRunInProgressException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceTemporarilyUnavailableException', ], ], ], 'DeleteAssessmentTarget' => [ 'name' => 'DeleteAssessmentTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAssessmentTargetRequest', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AssessmentRunInProgressException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceTemporarilyUnavailableException', ], ], ], 'DeleteAssessmentTemplate' => [ 'name' => 'DeleteAssessmentTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAssessmentTemplateRequest', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AssessmentRunInProgressException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceTemporarilyUnavailableException', ], ], ], 'DescribeAssessmentRuns' => [ 'name' => 'DescribeAssessmentRuns', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAssessmentRunsRequest', ], 'output' => [ 'shape' => 'DescribeAssessmentRunsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'DescribeAssessmentTargets' => [ 'name' => 'DescribeAssessmentTargets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAssessmentTargetsRequest', ], 'output' => [ 'shape' => 'DescribeAssessmentTargetsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'DescribeAssessmentTemplates' => [ 'name' => 'DescribeAssessmentTemplates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAssessmentTemplatesRequest', ], 'output' => [ 'shape' => 'DescribeAssessmentTemplatesResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'DescribeCrossAccountAccessRole' => [ 'name' => 'DescribeCrossAccountAccessRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'DescribeCrossAccountAccessRoleResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], ], ], 'DescribeExclusions' => [ 'name' => 'DescribeExclusions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeExclusionsRequest', ], 'output' => [ 'shape' => 'DescribeExclusionsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'DescribeFindings' => [ 'name' => 'DescribeFindings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFindingsRequest', ], 'output' => [ 'shape' => 'DescribeFindingsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'DescribeResourceGroups' => [ 'name' => 'DescribeResourceGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeResourceGroupsRequest', ], 'output' => [ 'shape' => 'DescribeResourceGroupsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'DescribeRulesPackages' => [ 'name' => 'DescribeRulesPackages', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRulesPackagesRequest', ], 'output' => [ 'shape' => 'DescribeRulesPackagesResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'GetAssessmentReport' => [ 'name' => 'GetAssessmentReport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAssessmentReportRequest', ], 'output' => [ 'shape' => 'GetAssessmentReportResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'AssessmentRunInProgressException', ], [ 'shape' => 'UnsupportedFeatureException', ], [ 'shape' => 'ServiceTemporarilyUnavailableException', ], ], ], 'GetExclusionsPreview' => [ 'name' => 'GetExclusionsPreview', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetExclusionsPreviewRequest', ], 'output' => [ 'shape' => 'GetExclusionsPreviewResponse', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], ], ], 'GetTelemetryMetadata' => [ 'name' => 'GetTelemetryMetadata', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTelemetryMetadataRequest', ], 'output' => [ 'shape' => 'GetTelemetryMetadataResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], ], ], 'ListAssessmentRunAgents' => [ 'name' => 'ListAssessmentRunAgents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAssessmentRunAgentsRequest', ], 'output' => [ 'shape' => 'ListAssessmentRunAgentsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], ], ], 'ListAssessmentRuns' => [ 'name' => 'ListAssessmentRuns', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAssessmentRunsRequest', ], 'output' => [ 'shape' => 'ListAssessmentRunsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], ], ], 'ListAssessmentTargets' => [ 'name' => 'ListAssessmentTargets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAssessmentTargetsRequest', ], 'output' => [ 'shape' => 'ListAssessmentTargetsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'ListAssessmentTemplates' => [ 'name' => 'ListAssessmentTemplates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAssessmentTemplatesRequest', ], 'output' => [ 'shape' => 'ListAssessmentTemplatesResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], ], ], 'ListEventSubscriptions' => [ 'name' => 'ListEventSubscriptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListEventSubscriptionsRequest', ], 'output' => [ 'shape' => 'ListEventSubscriptionsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], ], ], 'ListExclusions' => [ 'name' => 'ListExclusions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListExclusionsRequest', ], 'output' => [ 'shape' => 'ListExclusionsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], ], ], 'ListFindings' => [ 'name' => 'ListFindings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListFindingsRequest', ], 'output' => [ 'shape' => 'ListFindingsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], ], ], 'ListRulesPackages' => [ 'name' => 'ListRulesPackages', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRulesPackagesRequest', ], 'output' => [ 'shape' => 'ListRulesPackagesResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], ], ], 'PreviewAgents' => [ 'name' => 'PreviewAgents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PreviewAgentsRequest', ], 'output' => [ 'shape' => 'PreviewAgentsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidCrossAccountRoleException', ], ], ], 'RegisterCrossAccountAccessRole' => [ 'name' => 'RegisterCrossAccountAccessRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterCrossAccountAccessRoleRequest', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidCrossAccountRoleException', ], [ 'shape' => 'ServiceTemporarilyUnavailableException', ], ], ], 'RemoveAttributesFromFindings' => [ 'name' => 'RemoveAttributesFromFindings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveAttributesFromFindingsRequest', ], 'output' => [ 'shape' => 'RemoveAttributesFromFindingsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceTemporarilyUnavailableException', ], ], ], 'SetTagsForResource' => [ 'name' => 'SetTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetTagsForResourceRequest', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceTemporarilyUnavailableException', ], ], ], 'StartAssessmentRun' => [ 'name' => 'StartAssessmentRun', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartAssessmentRunRequest', ], 'output' => [ 'shape' => 'StartAssessmentRunResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'InvalidCrossAccountRoleException', ], [ 'shape' => 'AgentsAlreadyRunningAssessmentException', ], [ 'shape' => 'ServiceTemporarilyUnavailableException', ], ], ], 'StopAssessmentRun' => [ 'name' => 'StopAssessmentRun', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopAssessmentRunRequest', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceTemporarilyUnavailableException', ], ], ], 'SubscribeToEvent' => [ 'name' => 'SubscribeToEvent', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SubscribeToEventRequest', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceTemporarilyUnavailableException', ], ], ], 'UnsubscribeFromEvent' => [ 'name' => 'UnsubscribeFromEvent', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnsubscribeFromEventRequest', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceTemporarilyUnavailableException', ], ], ], 'UpdateAssessmentTarget' => [ 'name' => 'UpdateAssessmentTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateAssessmentTargetRequest', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoSuchEntityException', ], [ 'shape' => 'ServiceTemporarilyUnavailableException', ], ], ], ], 'shapes' => [ 'AccessDeniedErrorCode' => [ 'type' => 'string', 'enum' => [ 'ACCESS_DENIED_TO_ASSESSMENT_TARGET', 'ACCESS_DENIED_TO_ASSESSMENT_TEMPLATE', 'ACCESS_DENIED_TO_ASSESSMENT_RUN', 'ACCESS_DENIED_TO_FINDING', 'ACCESS_DENIED_TO_RESOURCE_GROUP', 'ACCESS_DENIED_TO_RULES_PACKAGE', 'ACCESS_DENIED_TO_SNS_TOPIC', 'ACCESS_DENIED_TO_IAM_ROLE', ], ], 'AccessDeniedException' => [ 'type' => 'structure', 'required' => [ 'message', 'errorCode', 'canRetry', ], 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], 'errorCode' => [ 'shape' => 'AccessDeniedErrorCode', ], 'canRetry' => [ 'shape' => 'Bool', ], ], 'exception' => true, ], 'AddAttributesToFindingsRequest' => [ 'type' => 'structure', 'required' => [ 'findingArns', 'attributes', ], 'members' => [ 'findingArns' => [ 'shape' => 'AddRemoveAttributesFindingArnList', ], 'attributes' => [ 'shape' => 'UserAttributeList', ], ], ], 'AddAttributesToFindingsResponse' => [ 'type' => 'structure', 'required' => [ 'failedItems', ], 'members' => [ 'failedItems' => [ 'shape' => 'FailedItems', ], ], ], 'AddRemoveAttributesFindingArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Arn', ], 'max' => 10, 'min' => 1, ], 'AgentAlreadyRunningAssessment' => [ 'type' => 'structure', 'required' => [ 'agentId', 'assessmentRunArn', ], 'members' => [ 'agentId' => [ 'shape' => 'AgentId', ], 'assessmentRunArn' => [ 'shape' => 'Arn', ], ], ], 'AgentAlreadyRunningAssessmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AgentAlreadyRunningAssessment', ], 'max' => 10, 'min' => 1, ], 'AgentFilter' => [ 'type' => 'structure', 'required' => [ 'agentHealths', 'agentHealthCodes', ], 'members' => [ 'agentHealths' => [ 'shape' => 'AgentHealthList', ], 'agentHealthCodes' => [ 'shape' => 'AgentHealthCodeList', ], ], ], 'AgentHealth' => [ 'type' => 'string', 'enum' => [ 'HEALTHY', 'UNHEALTHY', 'UNKNOWN', ], ], 'AgentHealthCode' => [ 'type' => 'string', 'enum' => [ 'IDLE', 'RUNNING', 'SHUTDOWN', 'UNHEALTHY', 'THROTTLED', 'UNKNOWN', ], ], 'AgentHealthCodeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AgentHealthCode', ], 'max' => 10, 'min' => 0, ], 'AgentHealthList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AgentHealth', ], 'max' => 10, 'min' => 0, ], 'AgentId' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'AgentIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AgentId', ], 'max' => 500, 'min' => 0, ], 'AgentPreview' => [ 'type' => 'structure', 'required' => [ 'agentId', ], 'members' => [ 'hostname' => [ 'shape' => 'Hostname', ], 'agentId' => [ 'shape' => 'AgentId', ], 'autoScalingGroup' => [ 'shape' => 'AutoScalingGroup', ], 'agentHealth' => [ 'shape' => 'AgentHealth', ], 'agentVersion' => [ 'shape' => 'AgentVersion', ], 'operatingSystem' => [ 'shape' => 'OperatingSystem', ], 'kernelVersion' => [ 'shape' => 'KernelVersion', ], 'ipv4Address' => [ 'shape' => 'Ipv4Address', ], ], ], 'AgentPreviewList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AgentPreview', ], 'max' => 100, 'min' => 0, ], 'AgentVersion' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'AgentsAlreadyRunningAssessmentException' => [ 'type' => 'structure', 'required' => [ 'message', 'agents', 'agentsTruncated', 'canRetry', ], 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], 'agents' => [ 'shape' => 'AgentAlreadyRunningAssessmentList', ], 'agentsTruncated' => [ 'shape' => 'Bool', ], 'canRetry' => [ 'shape' => 'Bool', ], ], 'exception' => true, ], 'AmiId' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'Arn' => [ 'type' => 'string', 'max' => 300, 'min' => 1, ], 'ArnCount' => [ 'type' => 'integer', ], 'AssessmentRulesPackageArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Arn', ], 'max' => 50, 'min' => 1, ], 'AssessmentRun' => [ 'type' => 'structure', 'required' => [ 'arn', 'name', 'assessmentTemplateArn', 'state', 'durationInSeconds', 'rulesPackageArns', 'userAttributesForFindings', 'createdAt', 'stateChangedAt', 'dataCollected', 'stateChanges', 'notifications', 'findingCounts', ], 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'AssessmentRunName', ], 'assessmentTemplateArn' => [ 'shape' => 'Arn', ], 'state' => [ 'shape' => 'AssessmentRunState', ], 'durationInSeconds' => [ 'shape' => 'AssessmentRunDuration', ], 'rulesPackageArns' => [ 'shape' => 'AssessmentRulesPackageArnList', ], 'userAttributesForFindings' => [ 'shape' => 'UserAttributeList', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'startedAt' => [ 'shape' => 'Timestamp', ], 'completedAt' => [ 'shape' => 'Timestamp', ], 'stateChangedAt' => [ 'shape' => 'Timestamp', ], 'dataCollected' => [ 'shape' => 'Bool', ], 'stateChanges' => [ 'shape' => 'AssessmentRunStateChangeList', ], 'notifications' => [ 'shape' => 'AssessmentRunNotificationList', ], 'findingCounts' => [ 'shape' => 'AssessmentRunFindingCounts', ], ], ], 'AssessmentRunAgent' => [ 'type' => 'structure', 'required' => [ 'agentId', 'assessmentRunArn', 'agentHealth', 'agentHealthCode', 'telemetryMetadata', ], 'members' => [ 'agentId' => [ 'shape' => 'AgentId', ], 'assessmentRunArn' => [ 'shape' => 'Arn', ], 'agentHealth' => [ 'shape' => 'AgentHealth', ], 'agentHealthCode' => [ 'shape' => 'AgentHealthCode', ], 'agentHealthDetails' => [ 'shape' => 'Message', ], 'autoScalingGroup' => [ 'shape' => 'AutoScalingGroup', ], 'telemetryMetadata' => [ 'shape' => 'TelemetryMetadataList', ], ], ], 'AssessmentRunAgentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssessmentRunAgent', ], 'max' => 500, 'min' => 0, ], 'AssessmentRunDuration' => [ 'type' => 'integer', 'max' => 86400, 'min' => 180, ], 'AssessmentRunFilter' => [ 'type' => 'structure', 'members' => [ 'namePattern' => [ 'shape' => 'NamePattern', ], 'states' => [ 'shape' => 'AssessmentRunStateList', ], 'durationRange' => [ 'shape' => 'DurationRange', ], 'rulesPackageArns' => [ 'shape' => 'FilterRulesPackageArnList', ], 'startTimeRange' => [ 'shape' => 'TimestampRange', ], 'completionTimeRange' => [ 'shape' => 'TimestampRange', ], 'stateChangeTimeRange' => [ 'shape' => 'TimestampRange', ], ], ], 'AssessmentRunFindingCounts' => [ 'type' => 'map', 'key' => [ 'shape' => 'Severity', ], 'value' => [ 'shape' => 'FindingCount', ], ], 'AssessmentRunInProgressArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Arn', ], 'max' => 10, 'min' => 1, ], 'AssessmentRunInProgressException' => [ 'type' => 'structure', 'required' => [ 'message', 'assessmentRunArns', 'assessmentRunArnsTruncated', 'canRetry', ], 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], 'assessmentRunArns' => [ 'shape' => 'AssessmentRunInProgressArnList', ], 'assessmentRunArnsTruncated' => [ 'shape' => 'Bool', ], 'canRetry' => [ 'shape' => 'Bool', ], ], 'exception' => true, ], 'AssessmentRunList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssessmentRun', ], 'max' => 10, 'min' => 0, ], 'AssessmentRunName' => [ 'type' => 'string', 'max' => 140, 'min' => 1, ], 'AssessmentRunNotification' => [ 'type' => 'structure', 'required' => [ 'date', 'event', 'error', ], 'members' => [ 'date' => [ 'shape' => 'Timestamp', ], 'event' => [ 'shape' => 'InspectorEvent', ], 'message' => [ 'shape' => 'Message', ], 'error' => [ 'shape' => 'Bool', ], 'snsTopicArn' => [ 'shape' => 'Arn', ], 'snsPublishStatusCode' => [ 'shape' => 'AssessmentRunNotificationSnsStatusCode', ], ], ], 'AssessmentRunNotificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssessmentRunNotification', ], 'max' => 50, 'min' => 0, ], 'AssessmentRunNotificationSnsStatusCode' => [ 'type' => 'string', 'enum' => [ 'SUCCESS', 'TOPIC_DOES_NOT_EXIST', 'ACCESS_DENIED', 'INTERNAL_ERROR', ], ], 'AssessmentRunState' => [ 'type' => 'string', 'enum' => [ 'CREATED', 'START_DATA_COLLECTION_PENDING', 'START_DATA_COLLECTION_IN_PROGRESS', 'COLLECTING_DATA', 'STOP_DATA_COLLECTION_PENDING', 'DATA_COLLECTED', 'START_EVALUATING_RULES_PENDING', 'EVALUATING_RULES', 'FAILED', 'ERROR', 'COMPLETED', 'COMPLETED_WITH_ERRORS', 'CANCELED', ], ], 'AssessmentRunStateChange' => [ 'type' => 'structure', 'required' => [ 'stateChangedAt', 'state', ], 'members' => [ 'stateChangedAt' => [ 'shape' => 'Timestamp', ], 'state' => [ 'shape' => 'AssessmentRunState', ], ], ], 'AssessmentRunStateChangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssessmentRunStateChange', ], 'max' => 50, 'min' => 0, ], 'AssessmentRunStateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssessmentRunState', ], 'max' => 50, 'min' => 0, ], 'AssessmentTarget' => [ 'type' => 'structure', 'required' => [ 'arn', 'name', 'createdAt', 'updatedAt', ], 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'AssessmentTargetName', ], 'resourceGroupArn' => [ 'shape' => 'Arn', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'AssessmentTargetFilter' => [ 'type' => 'structure', 'members' => [ 'assessmentTargetNamePattern' => [ 'shape' => 'NamePattern', ], ], ], 'AssessmentTargetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssessmentTarget', ], 'max' => 10, 'min' => 0, ], 'AssessmentTargetName' => [ 'type' => 'string', 'max' => 140, 'min' => 1, ], 'AssessmentTemplate' => [ 'type' => 'structure', 'required' => [ 'arn', 'name', 'assessmentTargetArn', 'durationInSeconds', 'rulesPackageArns', 'userAttributesForFindings', 'assessmentRunCount', 'createdAt', ], 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'AssessmentTemplateName', ], 'assessmentTargetArn' => [ 'shape' => 'Arn', ], 'durationInSeconds' => [ 'shape' => 'AssessmentRunDuration', ], 'rulesPackageArns' => [ 'shape' => 'AssessmentTemplateRulesPackageArnList', ], 'userAttributesForFindings' => [ 'shape' => 'UserAttributeList', ], 'lastAssessmentRunArn' => [ 'shape' => 'Arn', ], 'assessmentRunCount' => [ 'shape' => 'ArnCount', ], 'createdAt' => [ 'shape' => 'Timestamp', ], ], ], 'AssessmentTemplateFilter' => [ 'type' => 'structure', 'members' => [ 'namePattern' => [ 'shape' => 'NamePattern', ], 'durationRange' => [ 'shape' => 'DurationRange', ], 'rulesPackageArns' => [ 'shape' => 'FilterRulesPackageArnList', ], ], ], 'AssessmentTemplateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssessmentTemplate', ], 'max' => 10, 'min' => 0, ], 'AssessmentTemplateName' => [ 'type' => 'string', 'max' => 140, 'min' => 1, ], 'AssessmentTemplateRulesPackageArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Arn', ], 'max' => 50, 'min' => 0, ], 'AssetAttributes' => [ 'type' => 'structure', 'required' => [ 'schemaVersion', ], 'members' => [ 'schemaVersion' => [ 'shape' => 'NumericVersion', ], 'agentId' => [ 'shape' => 'AgentId', ], 'autoScalingGroup' => [ 'shape' => 'AutoScalingGroup', ], 'amiId' => [ 'shape' => 'AmiId', ], 'hostname' => [ 'shape' => 'Hostname', ], 'ipv4Addresses' => [ 'shape' => 'Ipv4AddressList', ], 'tags' => [ 'shape' => 'Tags', ], 'networkInterfaces' => [ 'shape' => 'NetworkInterfaces', ], ], ], 'AssetType' => [ 'type' => 'string', 'enum' => [ 'ec2-instance', ], ], 'Attribute' => [ 'type' => 'structure', 'required' => [ 'key', ], 'members' => [ 'key' => [ 'shape' => 'AttributeKey', ], 'value' => [ 'shape' => 'AttributeValue', ], ], ], 'AttributeKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'AttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Attribute', ], 'max' => 50, 'min' => 0, ], 'AttributeValue' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'AutoScalingGroup' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'AutoScalingGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AutoScalingGroup', ], 'max' => 20, 'min' => 0, ], 'BatchDescribeArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Arn', ], 'max' => 10, 'min' => 1, ], 'BatchDescribeExclusionsArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Arn', ], 'max' => 100, 'min' => 1, ], 'Bool' => [ 'type' => 'boolean', ], 'CreateAssessmentTargetRequest' => [ 'type' => 'structure', 'required' => [ 'assessmentTargetName', ], 'members' => [ 'assessmentTargetName' => [ 'shape' => 'AssessmentTargetName', ], 'resourceGroupArn' => [ 'shape' => 'Arn', ], ], ], 'CreateAssessmentTargetResponse' => [ 'type' => 'structure', 'required' => [ 'assessmentTargetArn', ], 'members' => [ 'assessmentTargetArn' => [ 'shape' => 'Arn', ], ], ], 'CreateAssessmentTemplateRequest' => [ 'type' => 'structure', 'required' => [ 'assessmentTargetArn', 'assessmentTemplateName', 'durationInSeconds', 'rulesPackageArns', ], 'members' => [ 'assessmentTargetArn' => [ 'shape' => 'Arn', ], 'assessmentTemplateName' => [ 'shape' => 'AssessmentTemplateName', ], 'durationInSeconds' => [ 'shape' => 'AssessmentRunDuration', ], 'rulesPackageArns' => [ 'shape' => 'AssessmentTemplateRulesPackageArnList', ], 'userAttributesForFindings' => [ 'shape' => 'UserAttributeList', ], ], ], 'CreateAssessmentTemplateResponse' => [ 'type' => 'structure', 'required' => [ 'assessmentTemplateArn', ], 'members' => [ 'assessmentTemplateArn' => [ 'shape' => 'Arn', ], ], ], 'CreateExclusionsPreviewRequest' => [ 'type' => 'structure', 'required' => [ 'assessmentTemplateArn', ], 'members' => [ 'assessmentTemplateArn' => [ 'shape' => 'Arn', ], ], ], 'CreateExclusionsPreviewResponse' => [ 'type' => 'structure', 'required' => [ 'previewToken', ], 'members' => [ 'previewToken' => [ 'shape' => 'UUID', ], ], ], 'CreateResourceGroupRequest' => [ 'type' => 'structure', 'required' => [ 'resourceGroupTags', ], 'members' => [ 'resourceGroupTags' => [ 'shape' => 'ResourceGroupTags', ], ], ], 'CreateResourceGroupResponse' => [ 'type' => 'structure', 'required' => [ 'resourceGroupArn', ], 'members' => [ 'resourceGroupArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteAssessmentRunRequest' => [ 'type' => 'structure', 'required' => [ 'assessmentRunArn', ], 'members' => [ 'assessmentRunArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteAssessmentTargetRequest' => [ 'type' => 'structure', 'required' => [ 'assessmentTargetArn', ], 'members' => [ 'assessmentTargetArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteAssessmentTemplateRequest' => [ 'type' => 'structure', 'required' => [ 'assessmentTemplateArn', ], 'members' => [ 'assessmentTemplateArn' => [ 'shape' => 'Arn', ], ], ], 'DescribeAssessmentRunsRequest' => [ 'type' => 'structure', 'required' => [ 'assessmentRunArns', ], 'members' => [ 'assessmentRunArns' => [ 'shape' => 'BatchDescribeArnList', ], ], ], 'DescribeAssessmentRunsResponse' => [ 'type' => 'structure', 'required' => [ 'assessmentRuns', 'failedItems', ], 'members' => [ 'assessmentRuns' => [ 'shape' => 'AssessmentRunList', ], 'failedItems' => [ 'shape' => 'FailedItems', ], ], ], 'DescribeAssessmentTargetsRequest' => [ 'type' => 'structure', 'required' => [ 'assessmentTargetArns', ], 'members' => [ 'assessmentTargetArns' => [ 'shape' => 'BatchDescribeArnList', ], ], ], 'DescribeAssessmentTargetsResponse' => [ 'type' => 'structure', 'required' => [ 'assessmentTargets', 'failedItems', ], 'members' => [ 'assessmentTargets' => [ 'shape' => 'AssessmentTargetList', ], 'failedItems' => [ 'shape' => 'FailedItems', ], ], ], 'DescribeAssessmentTemplatesRequest' => [ 'type' => 'structure', 'required' => [ 'assessmentTemplateArns', ], 'members' => [ 'assessmentTemplateArns' => [ 'shape' => 'BatchDescribeArnList', ], ], ], 'DescribeAssessmentTemplatesResponse' => [ 'type' => 'structure', 'required' => [ 'assessmentTemplates', 'failedItems', ], 'members' => [ 'assessmentTemplates' => [ 'shape' => 'AssessmentTemplateList', ], 'failedItems' => [ 'shape' => 'FailedItems', ], ], ], 'DescribeCrossAccountAccessRoleResponse' => [ 'type' => 'structure', 'required' => [ 'roleArn', 'valid', 'registeredAt', ], 'members' => [ 'roleArn' => [ 'shape' => 'Arn', ], 'valid' => [ 'shape' => 'Bool', ], 'registeredAt' => [ 'shape' => 'Timestamp', ], ], ], 'DescribeExclusionsRequest' => [ 'type' => 'structure', 'required' => [ 'exclusionArns', ], 'members' => [ 'exclusionArns' => [ 'shape' => 'BatchDescribeExclusionsArnList', ], 'locale' => [ 'shape' => 'Locale', ], ], ], 'DescribeExclusionsResponse' => [ 'type' => 'structure', 'required' => [ 'exclusions', 'failedItems', ], 'members' => [ 'exclusions' => [ 'shape' => 'ExclusionMap', ], 'failedItems' => [ 'shape' => 'FailedItems', ], ], ], 'DescribeFindingsRequest' => [ 'type' => 'structure', 'required' => [ 'findingArns', ], 'members' => [ 'findingArns' => [ 'shape' => 'BatchDescribeArnList', ], 'locale' => [ 'shape' => 'Locale', ], ], ], 'DescribeFindingsResponse' => [ 'type' => 'structure', 'required' => [ 'findings', 'failedItems', ], 'members' => [ 'findings' => [ 'shape' => 'FindingList', ], 'failedItems' => [ 'shape' => 'FailedItems', ], ], ], 'DescribeResourceGroupsRequest' => [ 'type' => 'structure', 'required' => [ 'resourceGroupArns', ], 'members' => [ 'resourceGroupArns' => [ 'shape' => 'BatchDescribeArnList', ], ], ], 'DescribeResourceGroupsResponse' => [ 'type' => 'structure', 'required' => [ 'resourceGroups', 'failedItems', ], 'members' => [ 'resourceGroups' => [ 'shape' => 'ResourceGroupList', ], 'failedItems' => [ 'shape' => 'FailedItems', ], ], ], 'DescribeRulesPackagesRequest' => [ 'type' => 'structure', 'required' => [ 'rulesPackageArns', ], 'members' => [ 'rulesPackageArns' => [ 'shape' => 'BatchDescribeArnList', ], 'locale' => [ 'shape' => 'Locale', ], ], ], 'DescribeRulesPackagesResponse' => [ 'type' => 'structure', 'required' => [ 'rulesPackages', 'failedItems', ], 'members' => [ 'rulesPackages' => [ 'shape' => 'RulesPackageList', ], 'failedItems' => [ 'shape' => 'FailedItems', ], ], ], 'DurationRange' => [ 'type' => 'structure', 'members' => [ 'minSeconds' => [ 'shape' => 'AssessmentRunDuration', ], 'maxSeconds' => [ 'shape' => 'AssessmentRunDuration', ], ], ], 'ErrorMessage' => [ 'type' => 'string', 'max' => 1000, 'min' => 0, ], 'EventSubscription' => [ 'type' => 'structure', 'required' => [ 'event', 'subscribedAt', ], 'members' => [ 'event' => [ 'shape' => 'InspectorEvent', ], 'subscribedAt' => [ 'shape' => 'Timestamp', ], ], ], 'EventSubscriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventSubscription', ], 'max' => 50, 'min' => 1, ], 'Exclusion' => [ 'type' => 'structure', 'required' => [ 'arn', 'title', 'description', 'recommendation', 'scopes', ], 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'title' => [ 'shape' => 'Text', ], 'description' => [ 'shape' => 'Text', ], 'recommendation' => [ 'shape' => 'Text', ], 'scopes' => [ 'shape' => 'ScopeList', ], 'attributes' => [ 'shape' => 'AttributeList', ], ], ], 'ExclusionMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'Arn', ], 'value' => [ 'shape' => 'Exclusion', ], 'max' => 100, 'min' => 1, ], 'ExclusionPreview' => [ 'type' => 'structure', 'required' => [ 'title', 'description', 'recommendation', 'scopes', ], 'members' => [ 'title' => [ 'shape' => 'Text', ], 'description' => [ 'shape' => 'Text', ], 'recommendation' => [ 'shape' => 'Text', ], 'scopes' => [ 'shape' => 'ScopeList', ], 'attributes' => [ 'shape' => 'AttributeList', ], ], ], 'ExclusionPreviewList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExclusionPreview', ], 'max' => 100, 'min' => 0, ], 'FailedItemDetails' => [ 'type' => 'structure', 'required' => [ 'failureCode', 'retryable', ], 'members' => [ 'failureCode' => [ 'shape' => 'FailedItemErrorCode', ], 'retryable' => [ 'shape' => 'Bool', ], ], ], 'FailedItemErrorCode' => [ 'type' => 'string', 'enum' => [ 'INVALID_ARN', 'DUPLICATE_ARN', 'ITEM_DOES_NOT_EXIST', 'ACCESS_DENIED', 'LIMIT_EXCEEDED', 'INTERNAL_ERROR', ], ], 'FailedItems' => [ 'type' => 'map', 'key' => [ 'shape' => 'Arn', ], 'value' => [ 'shape' => 'FailedItemDetails', ], ], 'FilterRulesPackageArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Arn', ], 'max' => 50, 'min' => 0, ], 'Finding' => [ 'type' => 'structure', 'required' => [ 'arn', 'attributes', 'userAttributes', 'createdAt', 'updatedAt', ], 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'schemaVersion' => [ 'shape' => 'NumericVersion', ], 'service' => [ 'shape' => 'ServiceName', ], 'serviceAttributes' => [ 'shape' => 'InspectorServiceAttributes', ], 'assetType' => [ 'shape' => 'AssetType', ], 'assetAttributes' => [ 'shape' => 'AssetAttributes', ], 'id' => [ 'shape' => 'FindingId', ], 'title' => [ 'shape' => 'Text', ], 'description' => [ 'shape' => 'Text', ], 'recommendation' => [ 'shape' => 'Text', ], 'severity' => [ 'shape' => 'Severity', ], 'numericSeverity' => [ 'shape' => 'NumericSeverity', ], 'confidence' => [ 'shape' => 'IocConfidence', ], 'indicatorOfCompromise' => [ 'shape' => 'Bool', ], 'attributes' => [ 'shape' => 'AttributeList', ], 'userAttributes' => [ 'shape' => 'UserAttributeList', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'FindingCount' => [ 'type' => 'integer', ], 'FindingFilter' => [ 'type' => 'structure', 'members' => [ 'agentIds' => [ 'shape' => 'AgentIdList', ], 'autoScalingGroups' => [ 'shape' => 'AutoScalingGroupList', ], 'ruleNames' => [ 'shape' => 'RuleNameList', ], 'severities' => [ 'shape' => 'SeverityList', ], 'rulesPackageArns' => [ 'shape' => 'FilterRulesPackageArnList', ], 'attributes' => [ 'shape' => 'AttributeList', ], 'userAttributes' => [ 'shape' => 'AttributeList', ], 'creationTimeRange' => [ 'shape' => 'TimestampRange', ], ], ], 'FindingId' => [ 'type' => 'string', 'max' => 128, 'min' => 0, ], 'FindingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Finding', ], 'max' => 100, 'min' => 0, ], 'GetAssessmentReportRequest' => [ 'type' => 'structure', 'required' => [ 'assessmentRunArn', 'reportFileFormat', 'reportType', ], 'members' => [ 'assessmentRunArn' => [ 'shape' => 'Arn', ], 'reportFileFormat' => [ 'shape' => 'ReportFileFormat', ], 'reportType' => [ 'shape' => 'ReportType', ], ], ], 'GetAssessmentReportResponse' => [ 'type' => 'structure', 'required' => [ 'status', ], 'members' => [ 'status' => [ 'shape' => 'ReportStatus', ], 'url' => [ 'shape' => 'Url', ], ], ], 'GetExclusionsPreviewRequest' => [ 'type' => 'structure', 'required' => [ 'assessmentTemplateArn', 'previewToken', ], 'members' => [ 'assessmentTemplateArn' => [ 'shape' => 'Arn', ], 'previewToken' => [ 'shape' => 'UUID', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'ListMaxResults', ], 'locale' => [ 'shape' => 'Locale', ], ], ], 'GetExclusionsPreviewResponse' => [ 'type' => 'structure', 'required' => [ 'previewStatus', ], 'members' => [ 'previewStatus' => [ 'shape' => 'PreviewStatus', ], 'exclusionPreviews' => [ 'shape' => 'ExclusionPreviewList', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'GetTelemetryMetadataRequest' => [ 'type' => 'structure', 'required' => [ 'assessmentRunArn', ], 'members' => [ 'assessmentRunArn' => [ 'shape' => 'Arn', ], ], ], 'GetTelemetryMetadataResponse' => [ 'type' => 'structure', 'required' => [ 'telemetryMetadata', ], 'members' => [ 'telemetryMetadata' => [ 'shape' => 'TelemetryMetadataList', ], ], ], 'Hostname' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'InspectorEvent' => [ 'type' => 'string', 'enum' => [ 'ASSESSMENT_RUN_STARTED', 'ASSESSMENT_RUN_COMPLETED', 'ASSESSMENT_RUN_STATE_CHANGED', 'FINDING_REPORTED', 'OTHER', ], ], 'InspectorServiceAttributes' => [ 'type' => 'structure', 'required' => [ 'schemaVersion', ], 'members' => [ 'schemaVersion' => [ 'shape' => 'NumericVersion', ], 'assessmentRunArn' => [ 'shape' => 'Arn', ], 'rulesPackageArn' => [ 'shape' => 'Arn', ], ], ], 'InternalException' => [ 'type' => 'structure', 'required' => [ 'message', 'canRetry', ], 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], 'canRetry' => [ 'shape' => 'Bool', ], ], 'exception' => true, 'fault' => true, ], 'InvalidCrossAccountRoleErrorCode' => [ 'type' => 'string', 'enum' => [ 'ROLE_DOES_NOT_EXIST_OR_INVALID_TRUST_RELATIONSHIP', 'ROLE_DOES_NOT_HAVE_CORRECT_POLICY', ], ], 'InvalidCrossAccountRoleException' => [ 'type' => 'structure', 'required' => [ 'message', 'errorCode', 'canRetry', ], 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], 'errorCode' => [ 'shape' => 'InvalidCrossAccountRoleErrorCode', ], 'canRetry' => [ 'shape' => 'Bool', ], ], 'exception' => true, ], 'InvalidInputErrorCode' => [ 'type' => 'string', 'enum' => [ 'INVALID_ASSESSMENT_TARGET_ARN', 'INVALID_ASSESSMENT_TEMPLATE_ARN', 'INVALID_ASSESSMENT_RUN_ARN', 'INVALID_FINDING_ARN', 'INVALID_RESOURCE_GROUP_ARN', 'INVALID_RULES_PACKAGE_ARN', 'INVALID_RESOURCE_ARN', 'INVALID_SNS_TOPIC_ARN', 'INVALID_IAM_ROLE_ARN', 'INVALID_ASSESSMENT_TARGET_NAME', 'INVALID_ASSESSMENT_TARGET_NAME_PATTERN', 'INVALID_ASSESSMENT_TEMPLATE_NAME', 'INVALID_ASSESSMENT_TEMPLATE_NAME_PATTERN', 'INVALID_ASSESSMENT_TEMPLATE_DURATION', 'INVALID_ASSESSMENT_TEMPLATE_DURATION_RANGE', 'INVALID_ASSESSMENT_RUN_DURATION_RANGE', 'INVALID_ASSESSMENT_RUN_START_TIME_RANGE', 'INVALID_ASSESSMENT_RUN_COMPLETION_TIME_RANGE', 'INVALID_ASSESSMENT_RUN_STATE_CHANGE_TIME_RANGE', 'INVALID_ASSESSMENT_RUN_STATE', 'INVALID_TAG', 'INVALID_TAG_KEY', 'INVALID_TAG_VALUE', 'INVALID_RESOURCE_GROUP_TAG_KEY', 'INVALID_RESOURCE_GROUP_TAG_VALUE', 'INVALID_ATTRIBUTE', 'INVALID_USER_ATTRIBUTE', 'INVALID_USER_ATTRIBUTE_KEY', 'INVALID_USER_ATTRIBUTE_VALUE', 'INVALID_PAGINATION_TOKEN', 'INVALID_MAX_RESULTS', 'INVALID_AGENT_ID', 'INVALID_AUTO_SCALING_GROUP', 'INVALID_RULE_NAME', 'INVALID_SEVERITY', 'INVALID_LOCALE', 'INVALID_EVENT', 'ASSESSMENT_TARGET_NAME_ALREADY_TAKEN', 'ASSESSMENT_TEMPLATE_NAME_ALREADY_TAKEN', 'INVALID_NUMBER_OF_ASSESSMENT_TARGET_ARNS', 'INVALID_NUMBER_OF_ASSESSMENT_TEMPLATE_ARNS', 'INVALID_NUMBER_OF_ASSESSMENT_RUN_ARNS', 'INVALID_NUMBER_OF_FINDING_ARNS', 'INVALID_NUMBER_OF_RESOURCE_GROUP_ARNS', 'INVALID_NUMBER_OF_RULES_PACKAGE_ARNS', 'INVALID_NUMBER_OF_ASSESSMENT_RUN_STATES', 'INVALID_NUMBER_OF_TAGS', 'INVALID_NUMBER_OF_RESOURCE_GROUP_TAGS', 'INVALID_NUMBER_OF_ATTRIBUTES', 'INVALID_NUMBER_OF_USER_ATTRIBUTES', 'INVALID_NUMBER_OF_AGENT_IDS', 'INVALID_NUMBER_OF_AUTO_SCALING_GROUPS', 'INVALID_NUMBER_OF_RULE_NAMES', 'INVALID_NUMBER_OF_SEVERITIES', ], ], 'InvalidInputException' => [ 'type' => 'structure', 'required' => [ 'message', 'errorCode', 'canRetry', ], 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], 'errorCode' => [ 'shape' => 'InvalidInputErrorCode', ], 'canRetry' => [ 'shape' => 'Bool', ], ], 'exception' => true, ], 'IocConfidence' => [ 'type' => 'integer', 'max' => 10, 'min' => 0, ], 'Ipv4Address' => [ 'type' => 'string', 'max' => 15, 'min' => 7, ], 'Ipv4AddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv4Address', ], 'max' => 50, 'min' => 0, ], 'Ipv6Addresses' => [ 'type' => 'list', 'member' => [ 'shape' => 'Text', ], ], 'KernelVersion' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'LimitExceededErrorCode' => [ 'type' => 'string', 'enum' => [ 'ASSESSMENT_TARGET_LIMIT_EXCEEDED', 'ASSESSMENT_TEMPLATE_LIMIT_EXCEEDED', 'ASSESSMENT_RUN_LIMIT_EXCEEDED', 'RESOURCE_GROUP_LIMIT_EXCEEDED', 'EVENT_SUBSCRIPTION_LIMIT_EXCEEDED', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'required' => [ 'message', 'errorCode', 'canRetry', ], 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], 'errorCode' => [ 'shape' => 'LimitExceededErrorCode', ], 'canRetry' => [ 'shape' => 'Bool', ], ], 'exception' => true, ], 'ListAssessmentRunAgentsRequest' => [ 'type' => 'structure', 'required' => [ 'assessmentRunArn', ], 'members' => [ 'assessmentRunArn' => [ 'shape' => 'Arn', ], 'filter' => [ 'shape' => 'AgentFilter', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'ListMaxResults', ], ], ], 'ListAssessmentRunAgentsResponse' => [ 'type' => 'structure', 'required' => [ 'assessmentRunAgents', ], 'members' => [ 'assessmentRunAgents' => [ 'shape' => 'AssessmentRunAgentList', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListAssessmentRunsRequest' => [ 'type' => 'structure', 'members' => [ 'assessmentTemplateArns' => [ 'shape' => 'ListParentArnList', ], 'filter' => [ 'shape' => 'AssessmentRunFilter', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'ListMaxResults', ], ], ], 'ListAssessmentRunsResponse' => [ 'type' => 'structure', 'required' => [ 'assessmentRunArns', ], 'members' => [ 'assessmentRunArns' => [ 'shape' => 'ListReturnedArnList', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListAssessmentTargetsRequest' => [ 'type' => 'structure', 'members' => [ 'filter' => [ 'shape' => 'AssessmentTargetFilter', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'ListMaxResults', ], ], ], 'ListAssessmentTargetsResponse' => [ 'type' => 'structure', 'required' => [ 'assessmentTargetArns', ], 'members' => [ 'assessmentTargetArns' => [ 'shape' => 'ListReturnedArnList', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListAssessmentTemplatesRequest' => [ 'type' => 'structure', 'members' => [ 'assessmentTargetArns' => [ 'shape' => 'ListParentArnList', ], 'filter' => [ 'shape' => 'AssessmentTemplateFilter', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'ListMaxResults', ], ], ], 'ListAssessmentTemplatesResponse' => [ 'type' => 'structure', 'required' => [ 'assessmentTemplateArns', ], 'members' => [ 'assessmentTemplateArns' => [ 'shape' => 'ListReturnedArnList', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListEventSubscriptionsMaxResults' => [ 'type' => 'integer', ], 'ListEventSubscriptionsRequest' => [ 'type' => 'structure', 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'ListEventSubscriptionsMaxResults', ], ], ], 'ListEventSubscriptionsResponse' => [ 'type' => 'structure', 'required' => [ 'subscriptions', ], 'members' => [ 'subscriptions' => [ 'shape' => 'SubscriptionList', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListExclusionsRequest' => [ 'type' => 'structure', 'required' => [ 'assessmentRunArn', ], 'members' => [ 'assessmentRunArn' => [ 'shape' => 'Arn', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'ListMaxResults', ], ], ], 'ListExclusionsResponse' => [ 'type' => 'structure', 'required' => [ 'exclusionArns', ], 'members' => [ 'exclusionArns' => [ 'shape' => 'ListReturnedArnList', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListFindingsRequest' => [ 'type' => 'structure', 'members' => [ 'assessmentRunArns' => [ 'shape' => 'ListParentArnList', ], 'filter' => [ 'shape' => 'FindingFilter', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'ListMaxResults', ], ], ], 'ListFindingsResponse' => [ 'type' => 'structure', 'required' => [ 'findingArns', ], 'members' => [ 'findingArns' => [ 'shape' => 'ListReturnedArnList', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListMaxResults' => [ 'type' => 'integer', ], 'ListParentArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Arn', ], 'max' => 50, 'min' => 0, ], 'ListReturnedArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Arn', ], 'max' => 100, 'min' => 0, ], 'ListRulesPackagesRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'ListMaxResults', ], ], ], 'ListRulesPackagesResponse' => [ 'type' => 'structure', 'required' => [ 'rulesPackageArns', ], 'members' => [ 'rulesPackageArns' => [ 'shape' => 'ListReturnedArnList', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'required' => [ 'tags', ], 'members' => [ 'tags' => [ 'shape' => 'TagList', ], ], ], 'Locale' => [ 'type' => 'string', 'enum' => [ 'EN_US', ], ], 'Long' => [ 'type' => 'long', ], 'Message' => [ 'type' => 'string', 'max' => 1000, 'min' => 0, ], 'MessageType' => [ 'type' => 'string', 'max' => 300, 'min' => 1, ], 'NamePattern' => [ 'type' => 'string', 'max' => 140, 'min' => 1, ], 'NetworkInterface' => [ 'type' => 'structure', 'members' => [ 'networkInterfaceId' => [ 'shape' => 'Text', ], 'subnetId' => [ 'shape' => 'Text', ], 'vpcId' => [ 'shape' => 'Text', ], 'privateDnsName' => [ 'shape' => 'Text', ], 'privateIpAddress' => [ 'shape' => 'Text', ], 'privateIpAddresses' => [ 'shape' => 'PrivateIpAddresses', ], 'publicDnsName' => [ 'shape' => 'Text', ], 'publicIp' => [ 'shape' => 'Text', ], 'ipv6Addresses' => [ 'shape' => 'Ipv6Addresses', ], 'securityGroups' => [ 'shape' => 'SecurityGroups', ], ], ], 'NetworkInterfaces' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterface', ], ], 'NoSuchEntityErrorCode' => [ 'type' => 'string', 'enum' => [ 'ASSESSMENT_TARGET_DOES_NOT_EXIST', 'ASSESSMENT_TEMPLATE_DOES_NOT_EXIST', 'ASSESSMENT_RUN_DOES_NOT_EXIST', 'FINDING_DOES_NOT_EXIST', 'RESOURCE_GROUP_DOES_NOT_EXIST', 'RULES_PACKAGE_DOES_NOT_EXIST', 'SNS_TOPIC_DOES_NOT_EXIST', 'IAM_ROLE_DOES_NOT_EXIST', ], ], 'NoSuchEntityException' => [ 'type' => 'structure', 'required' => [ 'message', 'errorCode', 'canRetry', ], 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], 'errorCode' => [ 'shape' => 'NoSuchEntityErrorCode', ], 'canRetry' => [ 'shape' => 'Bool', ], ], 'exception' => true, ], 'NumericSeverity' => [ 'type' => 'double', 'max' => 10, 'min' => 0, ], 'NumericVersion' => [ 'type' => 'integer', 'min' => 0, ], 'OperatingSystem' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'PaginationToken' => [ 'type' => 'string', 'max' => 300, 'min' => 1, ], 'PreviewAgentsMaxResults' => [ 'type' => 'integer', ], 'PreviewAgentsRequest' => [ 'type' => 'structure', 'required' => [ 'previewAgentsArn', ], 'members' => [ 'previewAgentsArn' => [ 'shape' => 'Arn', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'PreviewAgentsMaxResults', ], ], ], 'PreviewAgentsResponse' => [ 'type' => 'structure', 'required' => [ 'agentPreviews', ], 'members' => [ 'agentPreviews' => [ 'shape' => 'AgentPreviewList', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'PreviewGenerationInProgressException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'PreviewStatus' => [ 'type' => 'string', 'enum' => [ 'WORK_IN_PROGRESS', 'COMPLETED', ], ], 'PrivateIp' => [ 'type' => 'structure', 'members' => [ 'privateDnsName' => [ 'shape' => 'Text', ], 'privateIpAddress' => [ 'shape' => 'Text', ], ], ], 'PrivateIpAddresses' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrivateIp', ], ], 'ProviderName' => [ 'type' => 'string', 'max' => 1000, 'min' => 0, ], 'RegisterCrossAccountAccessRoleRequest' => [ 'type' => 'structure', 'required' => [ 'roleArn', ], 'members' => [ 'roleArn' => [ 'shape' => 'Arn', ], ], ], 'RemoveAttributesFromFindingsRequest' => [ 'type' => 'structure', 'required' => [ 'findingArns', 'attributeKeys', ], 'members' => [ 'findingArns' => [ 'shape' => 'AddRemoveAttributesFindingArnList', ], 'attributeKeys' => [ 'shape' => 'UserAttributeKeyList', ], ], ], 'RemoveAttributesFromFindingsResponse' => [ 'type' => 'structure', 'required' => [ 'failedItems', ], 'members' => [ 'failedItems' => [ 'shape' => 'FailedItems', ], ], ], 'ReportFileFormat' => [ 'type' => 'string', 'enum' => [ 'HTML', 'PDF', ], ], 'ReportStatus' => [ 'type' => 'string', 'enum' => [ 'WORK_IN_PROGRESS', 'FAILED', 'COMPLETED', ], ], 'ReportType' => [ 'type' => 'string', 'enum' => [ 'FINDING', 'FULL', ], ], 'ResourceGroup' => [ 'type' => 'structure', 'required' => [ 'arn', 'tags', 'createdAt', ], 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'tags' => [ 'shape' => 'ResourceGroupTags', ], 'createdAt' => [ 'shape' => 'Timestamp', ], ], ], 'ResourceGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceGroup', ], 'max' => 10, 'min' => 0, ], 'ResourceGroupTag' => [ 'type' => 'structure', 'required' => [ 'key', ], 'members' => [ 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], ], ], 'ResourceGroupTags' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceGroupTag', ], 'max' => 10, 'min' => 1, ], 'RuleName' => [ 'type' => 'string', 'max' => 1000, ], 'RuleNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RuleName', ], 'max' => 50, 'min' => 0, ], 'RulesPackage' => [ 'type' => 'structure', 'required' => [ 'arn', 'name', 'version', 'provider', ], 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'RulesPackageName', ], 'version' => [ 'shape' => 'Version', ], 'provider' => [ 'shape' => 'ProviderName', ], 'description' => [ 'shape' => 'Text', ], ], ], 'RulesPackageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RulesPackage', ], 'max' => 10, 'min' => 0, ], 'RulesPackageName' => [ 'type' => 'string', 'max' => 1000, 'min' => 0, ], 'Scope' => [ 'type' => 'structure', 'members' => [ 'key' => [ 'shape' => 'ScopeType', ], 'value' => [ 'shape' => 'ScopeValue', ], ], ], 'ScopeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Scope', ], 'min' => 1, ], 'ScopeType' => [ 'type' => 'string', 'enum' => [ 'INSTANCE_ID', 'RULES_PACKAGE_ARN', ], ], 'ScopeValue' => [ 'type' => 'string', ], 'SecurityGroup' => [ 'type' => 'structure', 'members' => [ 'groupName' => [ 'shape' => 'Text', ], 'groupId' => [ 'shape' => 'Text', ], ], ], 'SecurityGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroup', ], ], 'ServiceName' => [ 'type' => 'string', 'max' => 128, 'min' => 0, ], 'ServiceTemporarilyUnavailableException' => [ 'type' => 'structure', 'required' => [ 'message', 'canRetry', ], 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], 'canRetry' => [ 'shape' => 'Bool', ], ], 'exception' => true, ], 'SetTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'Severity' => [ 'type' => 'string', 'enum' => [ 'Low', 'Medium', 'High', 'Informational', 'Undefined', ], ], 'SeverityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Severity', ], 'max' => 50, 'min' => 0, ], 'StartAssessmentRunRequest' => [ 'type' => 'structure', 'required' => [ 'assessmentTemplateArn', ], 'members' => [ 'assessmentTemplateArn' => [ 'shape' => 'Arn', ], 'assessmentRunName' => [ 'shape' => 'AssessmentRunName', ], ], ], 'StartAssessmentRunResponse' => [ 'type' => 'structure', 'required' => [ 'assessmentRunArn', ], 'members' => [ 'assessmentRunArn' => [ 'shape' => 'Arn', ], ], ], 'StopAction' => [ 'type' => 'string', 'enum' => [ 'START_EVALUATION', 'SKIP_EVALUATION', ], ], 'StopAssessmentRunRequest' => [ 'type' => 'structure', 'required' => [ 'assessmentRunArn', ], 'members' => [ 'assessmentRunArn' => [ 'shape' => 'Arn', ], 'stopAction' => [ 'shape' => 'StopAction', ], ], ], 'SubscribeToEventRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'event', 'topicArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', ], 'event' => [ 'shape' => 'InspectorEvent', ], 'topicArn' => [ 'shape' => 'Arn', ], ], ], 'Subscription' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'topicArn', 'eventSubscriptions', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', ], 'topicArn' => [ 'shape' => 'Arn', ], 'eventSubscriptions' => [ 'shape' => 'EventSubscriptionList', ], ], ], 'SubscriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Subscription', ], 'max' => 50, 'min' => 0, ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'key', ], 'members' => [ 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 10, 'min' => 0, ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'Tags' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TelemetryMetadata' => [ 'type' => 'structure', 'required' => [ 'messageType', 'count', ], 'members' => [ 'messageType' => [ 'shape' => 'MessageType', ], 'count' => [ 'shape' => 'Long', ], 'dataSize' => [ 'shape' => 'Long', ], ], ], 'TelemetryMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TelemetryMetadata', ], 'max' => 5000, 'min' => 0, ], 'Text' => [ 'type' => 'string', 'max' => 20000, 'min' => 0, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TimestampRange' => [ 'type' => 'structure', 'members' => [ 'beginDate' => [ 'shape' => 'Timestamp', ], 'endDate' => [ 'shape' => 'Timestamp', ], ], ], 'UUID' => [ 'type' => 'string', 'pattern' => '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}', ], 'UnsubscribeFromEventRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'event', 'topicArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', ], 'event' => [ 'shape' => 'InspectorEvent', ], 'topicArn' => [ 'shape' => 'Arn', ], ], ], 'UnsupportedFeatureException' => [ 'type' => 'structure', 'required' => [ 'message', 'canRetry', ], 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], 'canRetry' => [ 'shape' => 'Bool', ], ], 'exception' => true, ], 'UpdateAssessmentTargetRequest' => [ 'type' => 'structure', 'required' => [ 'assessmentTargetArn', 'assessmentTargetName', ], 'members' => [ 'assessmentTargetArn' => [ 'shape' => 'Arn', ], 'assessmentTargetName' => [ 'shape' => 'AssessmentTargetName', ], 'resourceGroupArn' => [ 'shape' => 'Arn', ], ], ], 'Url' => [ 'type' => 'string', 'max' => 2048, ], 'UserAttributeKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeKey', ], 'max' => 10, 'min' => 0, ], 'UserAttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Attribute', ], 'max' => 10, 'min' => 0, ], 'Version' => [ 'type' => 'string', 'max' => 1000, 'min' => 0, ], ],]; diff --git a/lib/aws/Aws/data/inspector/2016-02-16/paginators-1.json.php b/lib/aws/Aws/data/inspector/2016-02-16/paginators-1.json.php new file mode 100644 index 0000000..f853cd5 --- /dev/null +++ b/lib/aws/Aws/data/inspector/2016-02-16/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/inspector/2016-02-16/paginators-1.json +return [ 'pagination' => [ 'GetExclusionsPreview' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListAssessmentRunAgents' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListAssessmentRuns' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListAssessmentTargets' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListAssessmentTemplates' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListEventSubscriptions' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListExclusions' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListFindings' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListRulesPackages' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'PreviewAgents' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], ],]; diff --git a/lib/aws/Aws/data/inspector/2016-02-16/smoke.json.php b/lib/aws/Aws/data/inspector/2016-02-16/smoke.json.php new file mode 100644 index 0000000..b8addc7 --- /dev/null +++ b/lib/aws/Aws/data/inspector/2016-02-16/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/inspector/2016-02-16/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListAssessmentTemplates', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'ListTagsForResource', 'input' => [ 'resourceArn' => 'fake-arn', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/iot-jobs-data/2017-09-29/api-2.json.php b/lib/aws/Aws/data/iot-jobs-data/2017-09-29/api-2.json.php new file mode 100644 index 0000000..6c18080 --- /dev/null +++ b/lib/aws/Aws/data/iot-jobs-data/2017-09-29/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/iot-jobs-data/2017-09-29/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-09-29', 'endpointPrefix' => 'data.jobs.iot', 'protocol' => 'rest-json', 'serviceFullName' => 'AWS IoT Jobs Data Plane', 'serviceId' => 'IoT Jobs Data Plane', 'signatureVersion' => 'v4', 'signingName' => 'iot-jobs-data', 'uid' => 'iot-jobs-data-2017-09-29', ], 'operations' => [ 'DescribeJobExecution' => [ 'name' => 'DescribeJobExecution', 'http' => [ 'method' => 'GET', 'requestUri' => '/things/{thingName}/jobs/{jobId}', ], 'input' => [ 'shape' => 'DescribeJobExecutionRequest', ], 'output' => [ 'shape' => 'DescribeJobExecutionResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'CertificateValidationException', ], [ 'shape' => 'TerminalStateException', ], ], ], 'GetPendingJobExecutions' => [ 'name' => 'GetPendingJobExecutions', 'http' => [ 'method' => 'GET', 'requestUri' => '/things/{thingName}/jobs', ], 'input' => [ 'shape' => 'GetPendingJobExecutionsRequest', ], 'output' => [ 'shape' => 'GetPendingJobExecutionsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'CertificateValidationException', ], ], ], 'StartNextPendingJobExecution' => [ 'name' => 'StartNextPendingJobExecution', 'http' => [ 'method' => 'PUT', 'requestUri' => '/things/{thingName}/jobs/$next', ], 'input' => [ 'shape' => 'StartNextPendingJobExecutionRequest', ], 'output' => [ 'shape' => 'StartNextPendingJobExecutionResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'CertificateValidationException', ], ], ], 'UpdateJobExecution' => [ 'name' => 'UpdateJobExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/things/{thingName}/jobs/{jobId}', ], 'input' => [ 'shape' => 'UpdateJobExecutionRequest', ], 'output' => [ 'shape' => 'UpdateJobExecutionResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'CertificateValidationException', ], [ 'shape' => 'InvalidStateTransitionException', ], ], ], ], 'shapes' => [ 'ApproximateSecondsBeforeTimedOut' => [ 'type' => 'long', ], 'BinaryBlob' => [ 'type' => 'blob', ], 'CertificateValidationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'DescribeJobExecutionJobId' => [ 'type' => 'string', 'pattern' => '[a-zA-Z0-9_-]+|^\\$next', ], 'DescribeJobExecutionRequest' => [ 'type' => 'structure', 'required' => [ 'jobId', 'thingName', ], 'members' => [ 'jobId' => [ 'shape' => 'DescribeJobExecutionJobId', 'location' => 'uri', 'locationName' => 'jobId', ], 'thingName' => [ 'shape' => 'ThingName', 'location' => 'uri', 'locationName' => 'thingName', ], 'includeJobDocument' => [ 'shape' => 'IncludeJobDocument', 'location' => 'querystring', 'locationName' => 'includeJobDocument', ], 'executionNumber' => [ 'shape' => 'ExecutionNumber', 'location' => 'querystring', 'locationName' => 'executionNumber', ], ], ], 'DescribeJobExecutionResponse' => [ 'type' => 'structure', 'members' => [ 'execution' => [ 'shape' => 'JobExecution', ], ], ], 'DetailsKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9:_-]+', ], 'DetailsMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'DetailsKey', ], 'value' => [ 'shape' => 'DetailsValue', ], ], 'DetailsValue' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '[^\\p{C}]*+', ], 'ExecutionNumber' => [ 'type' => 'long', ], 'ExpectedVersion' => [ 'type' => 'long', ], 'GetPendingJobExecutionsRequest' => [ 'type' => 'structure', 'required' => [ 'thingName', ], 'members' => [ 'thingName' => [ 'shape' => 'ThingName', 'location' => 'uri', 'locationName' => 'thingName', ], ], ], 'GetPendingJobExecutionsResponse' => [ 'type' => 'structure', 'members' => [ 'inProgressJobs' => [ 'shape' => 'JobExecutionSummaryList', ], 'queuedJobs' => [ 'shape' => 'JobExecutionSummaryList', ], ], ], 'IncludeExecutionState' => [ 'type' => 'boolean', ], 'IncludeJobDocument' => [ 'type' => 'boolean', ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidStateTransitionException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'JobDocument' => [ 'type' => 'string', 'max' => 32768, ], 'JobExecution' => [ 'type' => 'structure', 'members' => [ 'jobId' => [ 'shape' => 'JobId', ], 'thingName' => [ 'shape' => 'ThingName', ], 'status' => [ 'shape' => 'JobExecutionStatus', ], 'statusDetails' => [ 'shape' => 'DetailsMap', ], 'queuedAt' => [ 'shape' => 'QueuedAt', ], 'startedAt' => [ 'shape' => 'StartedAt', ], 'lastUpdatedAt' => [ 'shape' => 'LastUpdatedAt', ], 'approximateSecondsBeforeTimedOut' => [ 'shape' => 'ApproximateSecondsBeforeTimedOut', ], 'versionNumber' => [ 'shape' => 'VersionNumber', ], 'executionNumber' => [ 'shape' => 'ExecutionNumber', ], 'jobDocument' => [ 'shape' => 'JobDocument', ], ], ], 'JobExecutionState' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'JobExecutionStatus', ], 'statusDetails' => [ 'shape' => 'DetailsMap', ], 'versionNumber' => [ 'shape' => 'VersionNumber', ], ], ], 'JobExecutionStatus' => [ 'type' => 'string', 'enum' => [ 'QUEUED', 'IN_PROGRESS', 'SUCCEEDED', 'FAILED', 'TIMED_OUT', 'REJECTED', 'REMOVED', 'CANCELED', ], ], 'JobExecutionSummary' => [ 'type' => 'structure', 'members' => [ 'jobId' => [ 'shape' => 'JobId', ], 'queuedAt' => [ 'shape' => 'QueuedAt', ], 'startedAt' => [ 'shape' => 'StartedAt', ], 'lastUpdatedAt' => [ 'shape' => 'LastUpdatedAt', ], 'versionNumber' => [ 'shape' => 'VersionNumber', ], 'executionNumber' => [ 'shape' => 'ExecutionNumber', ], ], ], 'JobExecutionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'JobExecutionSummary', ], ], 'JobId' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9_-]+', ], 'LastUpdatedAt' => [ 'type' => 'long', ], 'QueuedAt' => [ 'type' => 'long', ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 503, ], 'exception' => true, 'fault' => true, ], 'StartNextPendingJobExecutionRequest' => [ 'type' => 'structure', 'required' => [ 'thingName', ], 'members' => [ 'thingName' => [ 'shape' => 'ThingName', 'location' => 'uri', 'locationName' => 'thingName', ], 'statusDetails' => [ 'shape' => 'DetailsMap', ], 'stepTimeoutInMinutes' => [ 'shape' => 'StepTimeoutInMinutes', ], ], ], 'StartNextPendingJobExecutionResponse' => [ 'type' => 'structure', 'members' => [ 'execution' => [ 'shape' => 'JobExecution', ], ], ], 'StartedAt' => [ 'type' => 'long', ], 'StepTimeoutInMinutes' => [ 'type' => 'long', ], 'TerminalStateException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 410, ], 'exception' => true, ], 'ThingName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9:_-]+', ], 'ThrottlingException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], 'payload' => [ 'shape' => 'BinaryBlob', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'UpdateJobExecutionRequest' => [ 'type' => 'structure', 'required' => [ 'jobId', 'thingName', 'status', ], 'members' => [ 'jobId' => [ 'shape' => 'JobId', 'location' => 'uri', 'locationName' => 'jobId', ], 'thingName' => [ 'shape' => 'ThingName', 'location' => 'uri', 'locationName' => 'thingName', ], 'status' => [ 'shape' => 'JobExecutionStatus', ], 'statusDetails' => [ 'shape' => 'DetailsMap', ], 'stepTimeoutInMinutes' => [ 'shape' => 'StepTimeoutInMinutes', ], 'expectedVersion' => [ 'shape' => 'ExpectedVersion', ], 'includeJobExecutionState' => [ 'shape' => 'IncludeExecutionState', ], 'includeJobDocument' => [ 'shape' => 'IncludeJobDocument', ], 'executionNumber' => [ 'shape' => 'ExecutionNumber', ], ], ], 'UpdateJobExecutionResponse' => [ 'type' => 'structure', 'members' => [ 'executionState' => [ 'shape' => 'JobExecutionState', ], 'jobDocument' => [ 'shape' => 'JobDocument', ], ], ], 'VersionNumber' => [ 'type' => 'long', ], 'errorMessage' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/iot-jobs-data/2017-09-29/paginators-1.json.php b/lib/aws/Aws/data/iot-jobs-data/2017-09-29/paginators-1.json.php new file mode 100644 index 0000000..a3ef44c --- /dev/null +++ b/lib/aws/Aws/data/iot-jobs-data/2017-09-29/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/iot-jobs-data/2017-09-29/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/iot/2015-05-28/api-2.json.php b/lib/aws/Aws/data/iot/2015-05-28/api-2.json.php new file mode 100644 index 0000000..525d490 --- /dev/null +++ b/lib/aws/Aws/data/iot/2015-05-28/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/iot/2015-05-28/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-05-28', 'endpointPrefix' => 'iot', 'protocol' => 'rest-json', 'serviceFullName' => 'AWS IoT', 'serviceId' => 'IoT', 'signatureVersion' => 'v4', 'signingName' => 'execute-api', 'uid' => 'iot-2015-05-28', ], 'operations' => [ 'AcceptCertificateTransfer' => [ 'name' => 'AcceptCertificateTransfer', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/accept-certificate-transfer/{certificateId}', ], 'input' => [ 'shape' => 'AcceptCertificateTransferRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TransferAlreadyCompletedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'AddThingToBillingGroup' => [ 'name' => 'AddThingToBillingGroup', 'http' => [ 'method' => 'PUT', 'requestUri' => '/billing-groups/addThingToBillingGroup', ], 'input' => [ 'shape' => 'AddThingToBillingGroupRequest', ], 'output' => [ 'shape' => 'AddThingToBillingGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'AddThingToThingGroup' => [ 'name' => 'AddThingToThingGroup', 'http' => [ 'method' => 'PUT', 'requestUri' => '/thing-groups/addThingToThingGroup', ], 'input' => [ 'shape' => 'AddThingToThingGroupRequest', ], 'output' => [ 'shape' => 'AddThingToThingGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'AssociateTargetsWithJob' => [ 'name' => 'AssociateTargetsWithJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/jobs/{jobId}/targets', ], 'input' => [ 'shape' => 'AssociateTargetsWithJobRequest', ], 'output' => [ 'shape' => 'AssociateTargetsWithJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'AttachPolicy' => [ 'name' => 'AttachPolicy', 'http' => [ 'method' => 'PUT', 'requestUri' => '/target-policies/{policyName}', ], 'input' => [ 'shape' => 'AttachPolicyRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'AttachPrincipalPolicy' => [ 'name' => 'AttachPrincipalPolicy', 'http' => [ 'method' => 'PUT', 'requestUri' => '/principal-policies/{policyName}', ], 'input' => [ 'shape' => 'AttachPrincipalPolicyRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'LimitExceededException', ], ], 'deprecated' => true, ], 'AttachSecurityProfile' => [ 'name' => 'AttachSecurityProfile', 'http' => [ 'method' => 'PUT', 'requestUri' => '/security-profiles/{securityProfileName}/targets', ], 'input' => [ 'shape' => 'AttachSecurityProfileRequest', ], 'output' => [ 'shape' => 'AttachSecurityProfileResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'VersionConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'AttachThingPrincipal' => [ 'name' => 'AttachThingPrincipal', 'http' => [ 'method' => 'PUT', 'requestUri' => '/things/{thingName}/principals', ], 'input' => [ 'shape' => 'AttachThingPrincipalRequest', ], 'output' => [ 'shape' => 'AttachThingPrincipalResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'CancelAuditTask' => [ 'name' => 'CancelAuditTask', 'http' => [ 'method' => 'PUT', 'requestUri' => '/audit/tasks/{taskId}/cancel', ], 'input' => [ 'shape' => 'CancelAuditTaskRequest', ], 'output' => [ 'shape' => 'CancelAuditTaskResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'CancelCertificateTransfer' => [ 'name' => 'CancelCertificateTransfer', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/cancel-certificate-transfer/{certificateId}', ], 'input' => [ 'shape' => 'CancelCertificateTransferRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TransferAlreadyCompletedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'CancelJob' => [ 'name' => 'CancelJob', 'http' => [ 'method' => 'PUT', 'requestUri' => '/jobs/{jobId}/cancel', ], 'input' => [ 'shape' => 'CancelJobRequest', ], 'output' => [ 'shape' => 'CancelJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'CancelJobExecution' => [ 'name' => 'CancelJobExecution', 'http' => [ 'method' => 'PUT', 'requestUri' => '/things/{thingName}/jobs/{jobId}/cancel', ], 'input' => [ 'shape' => 'CancelJobExecutionRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidStateTransitionException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'VersionConflictException', ], ], ], 'ClearDefaultAuthorizer' => [ 'name' => 'ClearDefaultAuthorizer', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/default-authorizer', ], 'input' => [ 'shape' => 'ClearDefaultAuthorizerRequest', ], 'output' => [ 'shape' => 'ClearDefaultAuthorizerResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'CreateAuthorizer' => [ 'name' => 'CreateAuthorizer', 'http' => [ 'method' => 'POST', 'requestUri' => '/authorizer/{authorizerName}', ], 'input' => [ 'shape' => 'CreateAuthorizerRequest', ], 'output' => [ 'shape' => 'CreateAuthorizerResponse', ], 'errors' => [ [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'CreateBillingGroup' => [ 'name' => 'CreateBillingGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/billing-groups/{billingGroupName}', ], 'input' => [ 'shape' => 'CreateBillingGroupRequest', ], 'output' => [ 'shape' => 'CreateBillingGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'CreateCertificateFromCsr' => [ 'name' => 'CreateCertificateFromCsr', 'http' => [ 'method' => 'POST', 'requestUri' => '/certificates', ], 'input' => [ 'shape' => 'CreateCertificateFromCsrRequest', ], 'output' => [ 'shape' => 'CreateCertificateFromCsrResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'CreateDynamicThingGroup' => [ 'name' => 'CreateDynamicThingGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/dynamic-thing-groups/{thingGroupName}', ], 'input' => [ 'shape' => 'CreateDynamicThingGroupRequest', ], 'output' => [ 'shape' => 'CreateDynamicThingGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidQueryException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateJob' => [ 'name' => 'CreateJob', 'http' => [ 'method' => 'PUT', 'requestUri' => '/jobs/{jobId}', ], 'input' => [ 'shape' => 'CreateJobRequest', ], 'output' => [ 'shape' => 'CreateJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'CreateKeysAndCertificate' => [ 'name' => 'CreateKeysAndCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/keys-and-certificate', ], 'input' => [ 'shape' => 'CreateKeysAndCertificateRequest', ], 'output' => [ 'shape' => 'CreateKeysAndCertificateResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'CreateOTAUpdate' => [ 'name' => 'CreateOTAUpdate', 'http' => [ 'method' => 'POST', 'requestUri' => '/otaUpdates/{otaUpdateId}', ], 'input' => [ 'shape' => 'CreateOTAUpdateRequest', ], 'output' => [ 'shape' => 'CreateOTAUpdateResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'CreatePolicy' => [ 'name' => 'CreatePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/policies/{policyName}', ], 'input' => [ 'shape' => 'CreatePolicyRequest', ], 'output' => [ 'shape' => 'CreatePolicyResponse', ], 'errors' => [ [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'MalformedPolicyException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'CreatePolicyVersion' => [ 'name' => 'CreatePolicyVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/policies/{policyName}/version', ], 'input' => [ 'shape' => 'CreatePolicyVersionRequest', ], 'output' => [ 'shape' => 'CreatePolicyVersionResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'MalformedPolicyException', ], [ 'shape' => 'VersionsLimitExceededException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'CreateRoleAlias' => [ 'name' => 'CreateRoleAlias', 'http' => [ 'method' => 'POST', 'requestUri' => '/role-aliases/{roleAlias}', ], 'input' => [ 'shape' => 'CreateRoleAliasRequest', ], 'output' => [ 'shape' => 'CreateRoleAliasResponse', ], 'errors' => [ [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'CreateScheduledAudit' => [ 'name' => 'CreateScheduledAudit', 'http' => [ 'method' => 'POST', 'requestUri' => '/audit/scheduledaudits/{scheduledAuditName}', ], 'input' => [ 'shape' => 'CreateScheduledAuditRequest', ], 'output' => [ 'shape' => 'CreateScheduledAuditResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateSecurityProfile' => [ 'name' => 'CreateSecurityProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/security-profiles/{securityProfileName}', ], 'input' => [ 'shape' => 'CreateSecurityProfileRequest', ], 'output' => [ 'shape' => 'CreateSecurityProfileResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'CreateStream' => [ 'name' => 'CreateStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/streams/{streamId}', ], 'input' => [ 'shape' => 'CreateStreamRequest', ], 'output' => [ 'shape' => 'CreateStreamResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'CreateThing' => [ 'name' => 'CreateThing', 'http' => [ 'method' => 'POST', 'requestUri' => '/things/{thingName}', ], 'input' => [ 'shape' => 'CreateThingRequest', ], 'output' => [ 'shape' => 'CreateThingResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'CreateThingGroup' => [ 'name' => 'CreateThingGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/thing-groups/{thingGroupName}', ], 'input' => [ 'shape' => 'CreateThingGroupRequest', ], 'output' => [ 'shape' => 'CreateThingGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'CreateThingType' => [ 'name' => 'CreateThingType', 'http' => [ 'method' => 'POST', 'requestUri' => '/thing-types/{thingTypeName}', ], 'input' => [ 'shape' => 'CreateThingTypeRequest', ], 'output' => [ 'shape' => 'CreateThingTypeResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], ], ], 'CreateTopicRule' => [ 'name' => 'CreateTopicRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/rules/{ruleName}', ], 'input' => [ 'shape' => 'CreateTopicRuleRequest', ], 'errors' => [ [ 'shape' => 'SqlParseException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ConflictingResourceUpdateException', ], ], ], 'DeleteAccountAuditConfiguration' => [ 'name' => 'DeleteAccountAuditConfiguration', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/audit/configuration', ], 'input' => [ 'shape' => 'DeleteAccountAuditConfigurationRequest', ], 'output' => [ 'shape' => 'DeleteAccountAuditConfigurationResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DeleteAuthorizer' => [ 'name' => 'DeleteAuthorizer', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/authorizer/{authorizerName}', ], 'input' => [ 'shape' => 'DeleteAuthorizerRequest', ], 'output' => [ 'shape' => 'DeleteAuthorizerResponse', ], 'errors' => [ [ 'shape' => 'DeleteConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DeleteBillingGroup' => [ 'name' => 'DeleteBillingGroup', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/billing-groups/{billingGroupName}', ], 'input' => [ 'shape' => 'DeleteBillingGroupRequest', ], 'output' => [ 'shape' => 'DeleteBillingGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'VersionConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DeleteCACertificate' => [ 'name' => 'DeleteCACertificate', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/cacertificate/{caCertificateId}', ], 'input' => [ 'shape' => 'DeleteCACertificateRequest', ], 'output' => [ 'shape' => 'DeleteCACertificateResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'CertificateStateException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeleteCertificate' => [ 'name' => 'DeleteCertificate', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/certificates/{certificateId}', ], 'input' => [ 'shape' => 'DeleteCertificateRequest', ], 'errors' => [ [ 'shape' => 'CertificateStateException', ], [ 'shape' => 'DeleteConflictException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeleteDynamicThingGroup' => [ 'name' => 'DeleteDynamicThingGroup', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/dynamic-thing-groups/{thingGroupName}', ], 'input' => [ 'shape' => 'DeleteDynamicThingGroupRequest', ], 'output' => [ 'shape' => 'DeleteDynamicThingGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'VersionConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DeleteJob' => [ 'name' => 'DeleteJob', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/jobs/{jobId}', ], 'input' => [ 'shape' => 'DeleteJobRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidStateTransitionException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeleteJobExecution' => [ 'name' => 'DeleteJobExecution', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/things/{thingName}/jobs/{jobId}/executionNumber/{executionNumber}', ], 'input' => [ 'shape' => 'DeleteJobExecutionRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidStateTransitionException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeleteOTAUpdate' => [ 'name' => 'DeleteOTAUpdate', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/otaUpdates/{otaUpdateId}', ], 'input' => [ 'shape' => 'DeleteOTAUpdateRequest', ], 'output' => [ 'shape' => 'DeleteOTAUpdateResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'VersionConflictException', ], ], ], 'DeletePolicy' => [ 'name' => 'DeletePolicy', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/policies/{policyName}', ], 'input' => [ 'shape' => 'DeletePolicyRequest', ], 'errors' => [ [ 'shape' => 'DeleteConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DeletePolicyVersion' => [ 'name' => 'DeletePolicyVersion', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/policies/{policyName}/version/{policyVersionId}', ], 'input' => [ 'shape' => 'DeletePolicyVersionRequest', ], 'errors' => [ [ 'shape' => 'DeleteConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DeleteRegistrationCode' => [ 'name' => 'DeleteRegistrationCode', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/registrationcode', ], 'input' => [ 'shape' => 'DeleteRegistrationCodeRequest', ], 'output' => [ 'shape' => 'DeleteRegistrationCodeResponse', ], 'errors' => [ [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DeleteRoleAlias' => [ 'name' => 'DeleteRoleAlias', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/role-aliases/{roleAlias}', ], 'input' => [ 'shape' => 'DeleteRoleAliasRequest', ], 'output' => [ 'shape' => 'DeleteRoleAliasResponse', ], 'errors' => [ [ 'shape' => 'DeleteConflictException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeleteScheduledAudit' => [ 'name' => 'DeleteScheduledAudit', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/audit/scheduledaudits/{scheduledAuditName}', ], 'input' => [ 'shape' => 'DeleteScheduledAuditRequest', ], 'output' => [ 'shape' => 'DeleteScheduledAuditResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DeleteSecurityProfile' => [ 'name' => 'DeleteSecurityProfile', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/security-profiles/{securityProfileName}', ], 'input' => [ 'shape' => 'DeleteSecurityProfileRequest', ], 'output' => [ 'shape' => 'DeleteSecurityProfileResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'VersionConflictException', ], ], ], 'DeleteStream' => [ 'name' => 'DeleteStream', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/streams/{streamId}', ], 'input' => [ 'shape' => 'DeleteStreamRequest', ], 'output' => [ 'shape' => 'DeleteStreamResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'DeleteConflictException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DeleteThing' => [ 'name' => 'DeleteThing', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/things/{thingName}', ], 'input' => [ 'shape' => 'DeleteThingRequest', ], 'output' => [ 'shape' => 'DeleteThingResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'VersionConflictException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DeleteThingGroup' => [ 'name' => 'DeleteThingGroup', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/thing-groups/{thingGroupName}', ], 'input' => [ 'shape' => 'DeleteThingGroupRequest', ], 'output' => [ 'shape' => 'DeleteThingGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'VersionConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DeleteThingType' => [ 'name' => 'DeleteThingType', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/thing-types/{thingTypeName}', ], 'input' => [ 'shape' => 'DeleteThingTypeRequest', ], 'output' => [ 'shape' => 'DeleteThingTypeResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DeleteTopicRule' => [ 'name' => 'DeleteTopicRule', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/rules/{ruleName}', ], 'input' => [ 'shape' => 'DeleteTopicRuleRequest', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ConflictingResourceUpdateException', ], ], ], 'DeleteV2LoggingLevel' => [ 'name' => 'DeleteV2LoggingLevel', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v2LoggingLevel', ], 'input' => [ 'shape' => 'DeleteV2LoggingLevelRequest', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeprecateThingType' => [ 'name' => 'DeprecateThingType', 'http' => [ 'method' => 'POST', 'requestUri' => '/thing-types/{thingTypeName}/deprecate', ], 'input' => [ 'shape' => 'DeprecateThingTypeRequest', ], 'output' => [ 'shape' => 'DeprecateThingTypeResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DescribeAccountAuditConfiguration' => [ 'name' => 'DescribeAccountAuditConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/audit/configuration', ], 'input' => [ 'shape' => 'DescribeAccountAuditConfigurationRequest', ], 'output' => [ 'shape' => 'DescribeAccountAuditConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DescribeAuditTask' => [ 'name' => 'DescribeAuditTask', 'http' => [ 'method' => 'GET', 'requestUri' => '/audit/tasks/{taskId}', ], 'input' => [ 'shape' => 'DescribeAuditTaskRequest', ], 'output' => [ 'shape' => 'DescribeAuditTaskResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DescribeAuthorizer' => [ 'name' => 'DescribeAuthorizer', 'http' => [ 'method' => 'GET', 'requestUri' => '/authorizer/{authorizerName}', ], 'input' => [ 'shape' => 'DescribeAuthorizerRequest', ], 'output' => [ 'shape' => 'DescribeAuthorizerResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DescribeBillingGroup' => [ 'name' => 'DescribeBillingGroup', 'http' => [ 'method' => 'GET', 'requestUri' => '/billing-groups/{billingGroupName}', ], 'input' => [ 'shape' => 'DescribeBillingGroupRequest', ], 'output' => [ 'shape' => 'DescribeBillingGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeCACertificate' => [ 'name' => 'DescribeCACertificate', 'http' => [ 'method' => 'GET', 'requestUri' => '/cacertificate/{caCertificateId}', ], 'input' => [ 'shape' => 'DescribeCACertificateRequest', ], 'output' => [ 'shape' => 'DescribeCACertificateResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeCertificate' => [ 'name' => 'DescribeCertificate', 'http' => [ 'method' => 'GET', 'requestUri' => '/certificates/{certificateId}', ], 'input' => [ 'shape' => 'DescribeCertificateRequest', ], 'output' => [ 'shape' => 'DescribeCertificateResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeDefaultAuthorizer' => [ 'name' => 'DescribeDefaultAuthorizer', 'http' => [ 'method' => 'GET', 'requestUri' => '/default-authorizer', ], 'input' => [ 'shape' => 'DescribeDefaultAuthorizerRequest', ], 'output' => [ 'shape' => 'DescribeDefaultAuthorizerResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DescribeEndpoint' => [ 'name' => 'DescribeEndpoint', 'http' => [ 'method' => 'GET', 'requestUri' => '/endpoint', ], 'input' => [ 'shape' => 'DescribeEndpointRequest', ], 'output' => [ 'shape' => 'DescribeEndpointResponse', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DescribeEventConfigurations' => [ 'name' => 'DescribeEventConfigurations', 'http' => [ 'method' => 'GET', 'requestUri' => '/event-configurations', ], 'input' => [ 'shape' => 'DescribeEventConfigurationsRequest', ], 'output' => [ 'shape' => 'DescribeEventConfigurationsResponse', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DescribeIndex' => [ 'name' => 'DescribeIndex', 'http' => [ 'method' => 'GET', 'requestUri' => '/indices/{indexName}', ], 'input' => [ 'shape' => 'DescribeIndexRequest', ], 'output' => [ 'shape' => 'DescribeIndexResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeJob' => [ 'name' => 'DescribeJob', 'http' => [ 'method' => 'GET', 'requestUri' => '/jobs/{jobId}', ], 'input' => [ 'shape' => 'DescribeJobRequest', ], 'output' => [ 'shape' => 'DescribeJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeJobExecution' => [ 'name' => 'DescribeJobExecution', 'http' => [ 'method' => 'GET', 'requestUri' => '/things/{thingName}/jobs/{jobId}', ], 'input' => [ 'shape' => 'DescribeJobExecutionRequest', ], 'output' => [ 'shape' => 'DescribeJobExecutionResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeRoleAlias' => [ 'name' => 'DescribeRoleAlias', 'http' => [ 'method' => 'GET', 'requestUri' => '/role-aliases/{roleAlias}', ], 'input' => [ 'shape' => 'DescribeRoleAliasRequest', ], 'output' => [ 'shape' => 'DescribeRoleAliasResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeScheduledAudit' => [ 'name' => 'DescribeScheduledAudit', 'http' => [ 'method' => 'GET', 'requestUri' => '/audit/scheduledaudits/{scheduledAuditName}', ], 'input' => [ 'shape' => 'DescribeScheduledAuditRequest', ], 'output' => [ 'shape' => 'DescribeScheduledAuditResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DescribeSecurityProfile' => [ 'name' => 'DescribeSecurityProfile', 'http' => [ 'method' => 'GET', 'requestUri' => '/security-profiles/{securityProfileName}', ], 'input' => [ 'shape' => 'DescribeSecurityProfileRequest', ], 'output' => [ 'shape' => 'DescribeSecurityProfileResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DescribeStream' => [ 'name' => 'DescribeStream', 'http' => [ 'method' => 'GET', 'requestUri' => '/streams/{streamId}', ], 'input' => [ 'shape' => 'DescribeStreamRequest', ], 'output' => [ 'shape' => 'DescribeStreamResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DescribeThing' => [ 'name' => 'DescribeThing', 'http' => [ 'method' => 'GET', 'requestUri' => '/things/{thingName}', ], 'input' => [ 'shape' => 'DescribeThingRequest', ], 'output' => [ 'shape' => 'DescribeThingResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DescribeThingGroup' => [ 'name' => 'DescribeThingGroup', 'http' => [ 'method' => 'GET', 'requestUri' => '/thing-groups/{thingGroupName}', ], 'input' => [ 'shape' => 'DescribeThingGroupRequest', ], 'output' => [ 'shape' => 'DescribeThingGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeThingRegistrationTask' => [ 'name' => 'DescribeThingRegistrationTask', 'http' => [ 'method' => 'GET', 'requestUri' => '/thing-registration-tasks/{taskId}', ], 'input' => [ 'shape' => 'DescribeThingRegistrationTaskRequest', ], 'output' => [ 'shape' => 'DescribeThingRegistrationTaskResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeThingType' => [ 'name' => 'DescribeThingType', 'http' => [ 'method' => 'GET', 'requestUri' => '/thing-types/{thingTypeName}', ], 'input' => [ 'shape' => 'DescribeThingTypeRequest', ], 'output' => [ 'shape' => 'DescribeThingTypeResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DetachPolicy' => [ 'name' => 'DetachPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/target-policies/{policyName}', ], 'input' => [ 'shape' => 'DetachPolicyRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'DetachPrincipalPolicy' => [ 'name' => 'DetachPrincipalPolicy', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/principal-policies/{policyName}', ], 'input' => [ 'shape' => 'DetachPrincipalPolicyRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], 'deprecated' => true, ], 'DetachSecurityProfile' => [ 'name' => 'DetachSecurityProfile', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/security-profiles/{securityProfileName}/targets', ], 'input' => [ 'shape' => 'DetachSecurityProfileRequest', ], 'output' => [ 'shape' => 'DetachSecurityProfileResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DetachThingPrincipal' => [ 'name' => 'DetachThingPrincipal', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/things/{thingName}/principals', ], 'input' => [ 'shape' => 'DetachThingPrincipalRequest', ], 'output' => [ 'shape' => 'DetachThingPrincipalResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DisableTopicRule' => [ 'name' => 'DisableTopicRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/rules/{ruleName}/disable', ], 'input' => [ 'shape' => 'DisableTopicRuleRequest', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ConflictingResourceUpdateException', ], ], ], 'EnableTopicRule' => [ 'name' => 'EnableTopicRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/rules/{ruleName}/enable', ], 'input' => [ 'shape' => 'EnableTopicRuleRequest', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ConflictingResourceUpdateException', ], ], ], 'GetEffectivePolicies' => [ 'name' => 'GetEffectivePolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/effective-policies', ], 'input' => [ 'shape' => 'GetEffectivePoliciesRequest', ], 'output' => [ 'shape' => 'GetEffectivePoliciesResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'GetIndexingConfiguration' => [ 'name' => 'GetIndexingConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/indexing/config', ], 'input' => [ 'shape' => 'GetIndexingConfigurationRequest', ], 'output' => [ 'shape' => 'GetIndexingConfigurationResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'GetJobDocument' => [ 'name' => 'GetJobDocument', 'http' => [ 'method' => 'GET', 'requestUri' => '/jobs/{jobId}/job-document', ], 'input' => [ 'shape' => 'GetJobDocumentRequest', ], 'output' => [ 'shape' => 'GetJobDocumentResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'GetLoggingOptions' => [ 'name' => 'GetLoggingOptions', 'http' => [ 'method' => 'GET', 'requestUri' => '/loggingOptions', ], 'input' => [ 'shape' => 'GetLoggingOptionsRequest', ], 'output' => [ 'shape' => 'GetLoggingOptionsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'GetOTAUpdate' => [ 'name' => 'GetOTAUpdate', 'http' => [ 'method' => 'GET', 'requestUri' => '/otaUpdates/{otaUpdateId}', ], 'input' => [ 'shape' => 'GetOTAUpdateRequest', ], 'output' => [ 'shape' => 'GetOTAUpdateResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'GetPolicy' => [ 'name' => 'GetPolicy', 'http' => [ 'method' => 'GET', 'requestUri' => '/policies/{policyName}', ], 'input' => [ 'shape' => 'GetPolicyRequest', ], 'output' => [ 'shape' => 'GetPolicyResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'GetPolicyVersion' => [ 'name' => 'GetPolicyVersion', 'http' => [ 'method' => 'GET', 'requestUri' => '/policies/{policyName}/version/{policyVersionId}', ], 'input' => [ 'shape' => 'GetPolicyVersionRequest', ], 'output' => [ 'shape' => 'GetPolicyVersionResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'GetRegistrationCode' => [ 'name' => 'GetRegistrationCode', 'http' => [ 'method' => 'GET', 'requestUri' => '/registrationcode', ], 'input' => [ 'shape' => 'GetRegistrationCodeRequest', ], 'output' => [ 'shape' => 'GetRegistrationCodeResponse', ], 'errors' => [ [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'GetStatistics' => [ 'name' => 'GetStatistics', 'http' => [ 'method' => 'POST', 'requestUri' => '/indices/statistics', ], 'input' => [ 'shape' => 'GetStatisticsRequest', ], 'output' => [ 'shape' => 'GetStatisticsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidQueryException', ], [ 'shape' => 'InvalidAggregationException', ], [ 'shape' => 'IndexNotReadyException', ], ], ], 'GetTopicRule' => [ 'name' => 'GetTopicRule', 'http' => [ 'method' => 'GET', 'requestUri' => '/rules/{ruleName}', ], 'input' => [ 'shape' => 'GetTopicRuleRequest', ], 'output' => [ 'shape' => 'GetTopicRuleResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'UnauthorizedException', ], ], ], 'GetV2LoggingOptions' => [ 'name' => 'GetV2LoggingOptions', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2LoggingOptions', ], 'input' => [ 'shape' => 'GetV2LoggingOptionsRequest', ], 'output' => [ 'shape' => 'GetV2LoggingOptionsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'NotConfiguredException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ListActiveViolations' => [ 'name' => 'ListActiveViolations', 'http' => [ 'method' => 'GET', 'requestUri' => '/active-violations', ], 'input' => [ 'shape' => 'ListActiveViolationsRequest', ], 'output' => [ 'shape' => 'ListActiveViolationsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListAttachedPolicies' => [ 'name' => 'ListAttachedPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/attached-policies/{target}', ], 'input' => [ 'shape' => 'ListAttachedPoliciesRequest', ], 'output' => [ 'shape' => 'ListAttachedPoliciesResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'ListAuditFindings' => [ 'name' => 'ListAuditFindings', 'http' => [ 'method' => 'POST', 'requestUri' => '/audit/findings', ], 'input' => [ 'shape' => 'ListAuditFindingsRequest', ], 'output' => [ 'shape' => 'ListAuditFindingsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListAuditTasks' => [ 'name' => 'ListAuditTasks', 'http' => [ 'method' => 'GET', 'requestUri' => '/audit/tasks', ], 'input' => [ 'shape' => 'ListAuditTasksRequest', ], 'output' => [ 'shape' => 'ListAuditTasksResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListAuthorizers' => [ 'name' => 'ListAuthorizers', 'http' => [ 'method' => 'GET', 'requestUri' => '/authorizers/', ], 'input' => [ 'shape' => 'ListAuthorizersRequest', ], 'output' => [ 'shape' => 'ListAuthorizersResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListBillingGroups' => [ 'name' => 'ListBillingGroups', 'http' => [ 'method' => 'GET', 'requestUri' => '/billing-groups', ], 'input' => [ 'shape' => 'ListBillingGroupsRequest', ], 'output' => [ 'shape' => 'ListBillingGroupsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListCACertificates' => [ 'name' => 'ListCACertificates', 'http' => [ 'method' => 'GET', 'requestUri' => '/cacertificates', ], 'input' => [ 'shape' => 'ListCACertificatesRequest', ], 'output' => [ 'shape' => 'ListCACertificatesResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListCertificates' => [ 'name' => 'ListCertificates', 'http' => [ 'method' => 'GET', 'requestUri' => '/certificates', ], 'input' => [ 'shape' => 'ListCertificatesRequest', ], 'output' => [ 'shape' => 'ListCertificatesResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListCertificatesByCA' => [ 'name' => 'ListCertificatesByCA', 'http' => [ 'method' => 'GET', 'requestUri' => '/certificates-by-ca/{caCertificateId}', ], 'input' => [ 'shape' => 'ListCertificatesByCARequest', ], 'output' => [ 'shape' => 'ListCertificatesByCAResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListIndices' => [ 'name' => 'ListIndices', 'http' => [ 'method' => 'GET', 'requestUri' => '/indices', ], 'input' => [ 'shape' => 'ListIndicesRequest', ], 'output' => [ 'shape' => 'ListIndicesResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListJobExecutionsForJob' => [ 'name' => 'ListJobExecutionsForJob', 'http' => [ 'method' => 'GET', 'requestUri' => '/jobs/{jobId}/things', ], 'input' => [ 'shape' => 'ListJobExecutionsForJobRequest', ], 'output' => [ 'shape' => 'ListJobExecutionsForJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ListJobExecutionsForThing' => [ 'name' => 'ListJobExecutionsForThing', 'http' => [ 'method' => 'GET', 'requestUri' => '/things/{thingName}/jobs', ], 'input' => [ 'shape' => 'ListJobExecutionsForThingRequest', ], 'output' => [ 'shape' => 'ListJobExecutionsForThingResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ListJobs' => [ 'name' => 'ListJobs', 'http' => [ 'method' => 'GET', 'requestUri' => '/jobs', ], 'input' => [ 'shape' => 'ListJobsRequest', ], 'output' => [ 'shape' => 'ListJobsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ListOTAUpdates' => [ 'name' => 'ListOTAUpdates', 'http' => [ 'method' => 'GET', 'requestUri' => '/otaUpdates', ], 'input' => [ 'shape' => 'ListOTAUpdatesRequest', ], 'output' => [ 'shape' => 'ListOTAUpdatesResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ListOutgoingCertificates' => [ 'name' => 'ListOutgoingCertificates', 'http' => [ 'method' => 'GET', 'requestUri' => '/certificates-out-going', ], 'input' => [ 'shape' => 'ListOutgoingCertificatesRequest', ], 'output' => [ 'shape' => 'ListOutgoingCertificatesResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListPolicies' => [ 'name' => 'ListPolicies', 'http' => [ 'method' => 'GET', 'requestUri' => '/policies', ], 'input' => [ 'shape' => 'ListPoliciesRequest', ], 'output' => [ 'shape' => 'ListPoliciesResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListPolicyPrincipals' => [ 'name' => 'ListPolicyPrincipals', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-principals', ], 'input' => [ 'shape' => 'ListPolicyPrincipalsRequest', ], 'output' => [ 'shape' => 'ListPolicyPrincipalsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], 'deprecated' => true, ], 'ListPolicyVersions' => [ 'name' => 'ListPolicyVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/policies/{policyName}/version', ], 'input' => [ 'shape' => 'ListPolicyVersionsRequest', ], 'output' => [ 'shape' => 'ListPolicyVersionsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListPrincipalPolicies' => [ 'name' => 'ListPrincipalPolicies', 'http' => [ 'method' => 'GET', 'requestUri' => '/principal-policies', ], 'input' => [ 'shape' => 'ListPrincipalPoliciesRequest', ], 'output' => [ 'shape' => 'ListPrincipalPoliciesResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], 'deprecated' => true, ], 'ListPrincipalThings' => [ 'name' => 'ListPrincipalThings', 'http' => [ 'method' => 'GET', 'requestUri' => '/principals/things', ], 'input' => [ 'shape' => 'ListPrincipalThingsRequest', ], 'output' => [ 'shape' => 'ListPrincipalThingsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListRoleAliases' => [ 'name' => 'ListRoleAliases', 'http' => [ 'method' => 'GET', 'requestUri' => '/role-aliases', ], 'input' => [ 'shape' => 'ListRoleAliasesRequest', ], 'output' => [ 'shape' => 'ListRoleAliasesResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListScheduledAudits' => [ 'name' => 'ListScheduledAudits', 'http' => [ 'method' => 'GET', 'requestUri' => '/audit/scheduledaudits', ], 'input' => [ 'shape' => 'ListScheduledAuditsRequest', ], 'output' => [ 'shape' => 'ListScheduledAuditsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListSecurityProfiles' => [ 'name' => 'ListSecurityProfiles', 'http' => [ 'method' => 'GET', 'requestUri' => '/security-profiles', ], 'input' => [ 'shape' => 'ListSecurityProfilesRequest', ], 'output' => [ 'shape' => 'ListSecurityProfilesResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListSecurityProfilesForTarget' => [ 'name' => 'ListSecurityProfilesForTarget', 'http' => [ 'method' => 'GET', 'requestUri' => '/security-profiles-for-target', ], 'input' => [ 'shape' => 'ListSecurityProfilesForTargetRequest', ], 'output' => [ 'shape' => 'ListSecurityProfilesForTargetResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListStreams' => [ 'name' => 'ListStreams', 'http' => [ 'method' => 'GET', 'requestUri' => '/streams', ], 'input' => [ 'shape' => 'ListStreamsRequest', ], 'output' => [ 'shape' => 'ListStreamsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/tags', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListTargetsForPolicy' => [ 'name' => 'ListTargetsForPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/policy-targets/{policyName}', ], 'input' => [ 'shape' => 'ListTargetsForPolicyRequest', ], 'output' => [ 'shape' => 'ListTargetsForPolicyResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'ListTargetsForSecurityProfile' => [ 'name' => 'ListTargetsForSecurityProfile', 'http' => [ 'method' => 'GET', 'requestUri' => '/security-profiles/{securityProfileName}/targets', ], 'input' => [ 'shape' => 'ListTargetsForSecurityProfileRequest', ], 'output' => [ 'shape' => 'ListTargetsForSecurityProfileResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListThingGroups' => [ 'name' => 'ListThingGroups', 'http' => [ 'method' => 'GET', 'requestUri' => '/thing-groups', ], 'input' => [ 'shape' => 'ListThingGroupsRequest', ], 'output' => [ 'shape' => 'ListThingGroupsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListThingGroupsForThing' => [ 'name' => 'ListThingGroupsForThing', 'http' => [ 'method' => 'GET', 'requestUri' => '/things/{thingName}/thing-groups', ], 'input' => [ 'shape' => 'ListThingGroupsForThingRequest', ], 'output' => [ 'shape' => 'ListThingGroupsForThingResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListThingPrincipals' => [ 'name' => 'ListThingPrincipals', 'http' => [ 'method' => 'GET', 'requestUri' => '/things/{thingName}/principals', ], 'input' => [ 'shape' => 'ListThingPrincipalsRequest', ], 'output' => [ 'shape' => 'ListThingPrincipalsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListThingRegistrationTaskReports' => [ 'name' => 'ListThingRegistrationTaskReports', 'http' => [ 'method' => 'GET', 'requestUri' => '/thing-registration-tasks/{taskId}/reports', ], 'input' => [ 'shape' => 'ListThingRegistrationTaskReportsRequest', ], 'output' => [ 'shape' => 'ListThingRegistrationTaskReportsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListThingRegistrationTasks' => [ 'name' => 'ListThingRegistrationTasks', 'http' => [ 'method' => 'GET', 'requestUri' => '/thing-registration-tasks', ], 'input' => [ 'shape' => 'ListThingRegistrationTasksRequest', ], 'output' => [ 'shape' => 'ListThingRegistrationTasksResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListThingTypes' => [ 'name' => 'ListThingTypes', 'http' => [ 'method' => 'GET', 'requestUri' => '/thing-types', ], 'input' => [ 'shape' => 'ListThingTypesRequest', ], 'output' => [ 'shape' => 'ListThingTypesResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListThings' => [ 'name' => 'ListThings', 'http' => [ 'method' => 'GET', 'requestUri' => '/things', ], 'input' => [ 'shape' => 'ListThingsRequest', ], 'output' => [ 'shape' => 'ListThingsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListThingsInBillingGroup' => [ 'name' => 'ListThingsInBillingGroup', 'http' => [ 'method' => 'GET', 'requestUri' => '/billing-groups/{billingGroupName}/things', ], 'input' => [ 'shape' => 'ListThingsInBillingGroupRequest', ], 'output' => [ 'shape' => 'ListThingsInBillingGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListThingsInThingGroup' => [ 'name' => 'ListThingsInThingGroup', 'http' => [ 'method' => 'GET', 'requestUri' => '/thing-groups/{thingGroupName}/things', ], 'input' => [ 'shape' => 'ListThingsInThingGroupRequest', ], 'output' => [ 'shape' => 'ListThingsInThingGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListTopicRules' => [ 'name' => 'ListTopicRules', 'http' => [ 'method' => 'GET', 'requestUri' => '/rules', ], 'input' => [ 'shape' => 'ListTopicRulesRequest', ], 'output' => [ 'shape' => 'ListTopicRulesResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ListV2LoggingLevels' => [ 'name' => 'ListV2LoggingLevels', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2LoggingLevel', ], 'input' => [ 'shape' => 'ListV2LoggingLevelsRequest', ], 'output' => [ 'shape' => 'ListV2LoggingLevelsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'NotConfiguredException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ListViolationEvents' => [ 'name' => 'ListViolationEvents', 'http' => [ 'method' => 'GET', 'requestUri' => '/violation-events', ], 'input' => [ 'shape' => 'ListViolationEventsRequest', ], 'output' => [ 'shape' => 'ListViolationEventsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'RegisterCACertificate' => [ 'name' => 'RegisterCACertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/cacertificate', ], 'input' => [ 'shape' => 'RegisterCACertificateRequest', ], 'output' => [ 'shape' => 'RegisterCACertificateResponse', ], 'errors' => [ [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'RegistrationCodeValidationException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'CertificateValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'RegisterCertificate' => [ 'name' => 'RegisterCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/certificate/register', ], 'input' => [ 'shape' => 'RegisterCertificateRequest', ], 'output' => [ 'shape' => 'RegisterCertificateResponse', ], 'errors' => [ [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'CertificateValidationException', ], [ 'shape' => 'CertificateStateException', ], [ 'shape' => 'CertificateConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'RegisterThing' => [ 'name' => 'RegisterThing', 'http' => [ 'method' => 'POST', 'requestUri' => '/things', ], 'input' => [ 'shape' => 'RegisterThingRequest', ], 'output' => [ 'shape' => 'RegisterThingResponse', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ConflictingResourceUpdateException', ], [ 'shape' => 'ResourceRegistrationFailureException', ], ], ], 'RejectCertificateTransfer' => [ 'name' => 'RejectCertificateTransfer', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/reject-certificate-transfer/{certificateId}', ], 'input' => [ 'shape' => 'RejectCertificateTransferRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TransferAlreadyCompletedException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'RemoveThingFromBillingGroup' => [ 'name' => 'RemoveThingFromBillingGroup', 'http' => [ 'method' => 'PUT', 'requestUri' => '/billing-groups/removeThingFromBillingGroup', ], 'input' => [ 'shape' => 'RemoveThingFromBillingGroupRequest', ], 'output' => [ 'shape' => 'RemoveThingFromBillingGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'RemoveThingFromThingGroup' => [ 'name' => 'RemoveThingFromThingGroup', 'http' => [ 'method' => 'PUT', 'requestUri' => '/thing-groups/removeThingFromThingGroup', ], 'input' => [ 'shape' => 'RemoveThingFromThingGroupRequest', ], 'output' => [ 'shape' => 'RemoveThingFromThingGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ReplaceTopicRule' => [ 'name' => 'ReplaceTopicRule', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/rules/{ruleName}', ], 'input' => [ 'shape' => 'ReplaceTopicRuleRequest', ], 'errors' => [ [ 'shape' => 'SqlParseException', ], [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ConflictingResourceUpdateException', ], ], ], 'SearchIndex' => [ 'name' => 'SearchIndex', 'http' => [ 'method' => 'POST', 'requestUri' => '/indices/search', ], 'input' => [ 'shape' => 'SearchIndexRequest', ], 'output' => [ 'shape' => 'SearchIndexResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidQueryException', ], [ 'shape' => 'IndexNotReadyException', ], ], ], 'SetDefaultAuthorizer' => [ 'name' => 'SetDefaultAuthorizer', 'http' => [ 'method' => 'POST', 'requestUri' => '/default-authorizer', ], 'input' => [ 'shape' => 'SetDefaultAuthorizerRequest', ], 'output' => [ 'shape' => 'SetDefaultAuthorizerResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], ], ], 'SetDefaultPolicyVersion' => [ 'name' => 'SetDefaultPolicyVersion', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/policies/{policyName}/version/{policyVersionId}', ], 'input' => [ 'shape' => 'SetDefaultPolicyVersionRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'SetLoggingOptions' => [ 'name' => 'SetLoggingOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/loggingOptions', ], 'input' => [ 'shape' => 'SetLoggingOptionsRequest', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'SetV2LoggingLevel' => [ 'name' => 'SetV2LoggingLevel', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2LoggingLevel', ], 'input' => [ 'shape' => 'SetV2LoggingLevelRequest', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'NotConfiguredException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'SetV2LoggingOptions' => [ 'name' => 'SetV2LoggingOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2LoggingOptions', ], 'input' => [ 'shape' => 'SetV2LoggingOptionsRequest', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'StartOnDemandAuditTask' => [ 'name' => 'StartOnDemandAuditTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/audit/tasks', ], 'input' => [ 'shape' => 'StartOnDemandAuditTaskRequest', ], 'output' => [ 'shape' => 'StartOnDemandAuditTaskResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'StartThingRegistrationTask' => [ 'name' => 'StartThingRegistrationTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/thing-registration-tasks', ], 'input' => [ 'shape' => 'StartThingRegistrationTaskRequest', ], 'output' => [ 'shape' => 'StartThingRegistrationTaskResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'StopThingRegistrationTask' => [ 'name' => 'StopThingRegistrationTask', 'http' => [ 'method' => 'PUT', 'requestUri' => '/thing-registration-tasks/{taskId}/cancel', ], 'input' => [ 'shape' => 'StopThingRegistrationTaskRequest', ], 'output' => [ 'shape' => 'StopThingRegistrationTaskResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/tags', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'TestAuthorization' => [ 'name' => 'TestAuthorization', 'http' => [ 'method' => 'POST', 'requestUri' => '/test-authorization', ], 'input' => [ 'shape' => 'TestAuthorizationRequest', ], 'output' => [ 'shape' => 'TestAuthorizationResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'TestInvokeAuthorizer' => [ 'name' => 'TestInvokeAuthorizer', 'http' => [ 'method' => 'POST', 'requestUri' => '/authorizer/{authorizerName}/test', ], 'input' => [ 'shape' => 'TestInvokeAuthorizerRequest', ], 'output' => [ 'shape' => 'TestInvokeAuthorizerResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidResponseException', ], ], ], 'TransferCertificate' => [ 'name' => 'TransferCertificate', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/transfer-certificate/{certificateId}', ], 'input' => [ 'shape' => 'TransferCertificateRequest', ], 'output' => [ 'shape' => 'TransferCertificateResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'CertificateStateException', ], [ 'shape' => 'TransferConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/untag', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdateAccountAuditConfiguration' => [ 'name' => 'UpdateAccountAuditConfiguration', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/audit/configuration', ], 'input' => [ 'shape' => 'UpdateAccountAuditConfigurationRequest', ], 'output' => [ 'shape' => 'UpdateAccountAuditConfigurationResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'UpdateAuthorizer' => [ 'name' => 'UpdateAuthorizer', 'http' => [ 'method' => 'PUT', 'requestUri' => '/authorizer/{authorizerName}', ], 'input' => [ 'shape' => 'UpdateAuthorizerRequest', ], 'output' => [ 'shape' => 'UpdateAuthorizerResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'UpdateBillingGroup' => [ 'name' => 'UpdateBillingGroup', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/billing-groups/{billingGroupName}', ], 'input' => [ 'shape' => 'UpdateBillingGroupRequest', ], 'output' => [ 'shape' => 'UpdateBillingGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'VersionConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateCACertificate' => [ 'name' => 'UpdateCACertificate', 'http' => [ 'method' => 'PUT', 'requestUri' => '/cacertificate/{caCertificateId}', ], 'input' => [ 'shape' => 'UpdateCACertificateRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'UpdateCertificate' => [ 'name' => 'UpdateCertificate', 'http' => [ 'method' => 'PUT', 'requestUri' => '/certificates/{certificateId}', ], 'input' => [ 'shape' => 'UpdateCertificateRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'CertificateStateException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'UpdateDynamicThingGroup' => [ 'name' => 'UpdateDynamicThingGroup', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/dynamic-thing-groups/{thingGroupName}', ], 'input' => [ 'shape' => 'UpdateDynamicThingGroupRequest', ], 'output' => [ 'shape' => 'UpdateDynamicThingGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'VersionConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidQueryException', ], ], ], 'UpdateEventConfigurations' => [ 'name' => 'UpdateEventConfigurations', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/event-configurations', ], 'input' => [ 'shape' => 'UpdateEventConfigurationsRequest', ], 'output' => [ 'shape' => 'UpdateEventConfigurationsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdateIndexingConfiguration' => [ 'name' => 'UpdateIndexingConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/indexing/config', ], 'input' => [ 'shape' => 'UpdateIndexingConfigurationRequest', ], 'output' => [ 'shape' => 'UpdateIndexingConfigurationResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'UpdateJob' => [ 'name' => 'UpdateJob', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/jobs/{jobId}', ], 'input' => [ 'shape' => 'UpdateJobRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'UpdateRoleAlias' => [ 'name' => 'UpdateRoleAlias', 'http' => [ 'method' => 'PUT', 'requestUri' => '/role-aliases/{roleAlias}', ], 'input' => [ 'shape' => 'UpdateRoleAliasRequest', ], 'output' => [ 'shape' => 'UpdateRoleAliasResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'UpdateScheduledAudit' => [ 'name' => 'UpdateScheduledAudit', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/audit/scheduledaudits/{scheduledAuditName}', ], 'input' => [ 'shape' => 'UpdateScheduledAuditRequest', ], 'output' => [ 'shape' => 'UpdateScheduledAuditResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'UpdateSecurityProfile' => [ 'name' => 'UpdateSecurityProfile', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/security-profiles/{securityProfileName}', ], 'input' => [ 'shape' => 'UpdateSecurityProfileRequest', ], 'output' => [ 'shape' => 'UpdateSecurityProfileResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'VersionConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'UpdateStream' => [ 'name' => 'UpdateStream', 'http' => [ 'method' => 'PUT', 'requestUri' => '/streams/{streamId}', ], 'input' => [ 'shape' => 'UpdateStreamRequest', ], 'output' => [ 'shape' => 'UpdateStreamResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'UpdateThing' => [ 'name' => 'UpdateThing', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/things/{thingName}', ], 'input' => [ 'shape' => 'UpdateThingRequest', ], 'output' => [ 'shape' => 'UpdateThingResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'VersionConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateThingGroup' => [ 'name' => 'UpdateThingGroup', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/thing-groups/{thingGroupName}', ], 'input' => [ 'shape' => 'UpdateThingGroupRequest', ], 'output' => [ 'shape' => 'UpdateThingGroupResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'VersionConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateThingGroupsForThing' => [ 'name' => 'UpdateThingGroupsForThing', 'http' => [ 'method' => 'PUT', 'requestUri' => '/thing-groups/updateThingGroupsForThing', ], 'input' => [ 'shape' => 'UpdateThingGroupsForThingRequest', ], 'output' => [ 'shape' => 'UpdateThingGroupsForThingResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ValidateSecurityProfileBehaviors' => [ 'name' => 'ValidateSecurityProfileBehaviors', 'http' => [ 'method' => 'POST', 'requestUri' => '/security-profile-behaviors/validate', ], 'input' => [ 'shape' => 'ValidateSecurityProfileBehaviorsRequest', ], 'output' => [ 'shape' => 'ValidateSecurityProfileBehaviorsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], ], ], ], 'shapes' => [ 'AbortAction' => [ 'type' => 'string', 'enum' => [ 'CANCEL', ], ], 'AbortConfig' => [ 'type' => 'structure', 'required' => [ 'criteriaList', ], 'members' => [ 'criteriaList' => [ 'shape' => 'AbortCriteriaList', ], ], ], 'AbortCriteria' => [ 'type' => 'structure', 'required' => [ 'failureType', 'action', 'thresholdPercentage', 'minNumberOfExecutedThings', ], 'members' => [ 'failureType' => [ 'shape' => 'JobExecutionFailureType', ], 'action' => [ 'shape' => 'AbortAction', ], 'thresholdPercentage' => [ 'shape' => 'AbortThresholdPercentage', ], 'minNumberOfExecutedThings' => [ 'shape' => 'MinimumNumberOfExecutedThings', ], ], ], 'AbortCriteriaList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AbortCriteria', ], 'min' => 1, ], 'AbortThresholdPercentage' => [ 'type' => 'double', 'max' => 100, ], 'AcceptCertificateTransferRequest' => [ 'type' => 'structure', 'required' => [ 'certificateId', ], 'members' => [ 'certificateId' => [ 'shape' => 'CertificateId', 'location' => 'uri', 'locationName' => 'certificateId', ], 'setAsActive' => [ 'shape' => 'SetAsActive', 'location' => 'querystring', 'locationName' => 'setAsActive', ], ], ], 'Action' => [ 'type' => 'structure', 'members' => [ 'dynamoDB' => [ 'shape' => 'DynamoDBAction', ], 'dynamoDBv2' => [ 'shape' => 'DynamoDBv2Action', ], 'lambda' => [ 'shape' => 'LambdaAction', ], 'sns' => [ 'shape' => 'SnsAction', ], 'sqs' => [ 'shape' => 'SqsAction', ], 'kinesis' => [ 'shape' => 'KinesisAction', ], 'republish' => [ 'shape' => 'RepublishAction', ], 's3' => [ 'shape' => 'S3Action', ], 'firehose' => [ 'shape' => 'FirehoseAction', ], 'cloudwatchMetric' => [ 'shape' => 'CloudwatchMetricAction', ], 'cloudwatchAlarm' => [ 'shape' => 'CloudwatchAlarmAction', ], 'elasticsearch' => [ 'shape' => 'ElasticsearchAction', ], 'salesforce' => [ 'shape' => 'SalesforceAction', ], 'iotAnalytics' => [ 'shape' => 'IotAnalyticsAction', ], 'iotEvents' => [ 'shape' => 'IotEventsAction', ], 'stepFunctions' => [ 'shape' => 'StepFunctionsAction', ], ], ], 'ActionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Action', ], 'max' => 10, 'min' => 0, ], 'ActionType' => [ 'type' => 'string', 'enum' => [ 'PUBLISH', 'SUBSCRIBE', 'RECEIVE', 'CONNECT', ], ], 'ActiveViolation' => [ 'type' => 'structure', 'members' => [ 'violationId' => [ 'shape' => 'ViolationId', ], 'thingName' => [ 'shape' => 'ThingName', ], 'securityProfileName' => [ 'shape' => 'SecurityProfileName', ], 'behavior' => [ 'shape' => 'Behavior', ], 'lastViolationValue' => [ 'shape' => 'MetricValue', ], 'lastViolationTime' => [ 'shape' => 'Timestamp', ], 'violationStartTime' => [ 'shape' => 'Timestamp', ], ], ], 'ActiveViolations' => [ 'type' => 'list', 'member' => [ 'shape' => 'ActiveViolation', ], ], 'AddThingToBillingGroupRequest' => [ 'type' => 'structure', 'members' => [ 'billingGroupName' => [ 'shape' => 'BillingGroupName', ], 'billingGroupArn' => [ 'shape' => 'BillingGroupArn', ], 'thingName' => [ 'shape' => 'ThingName', ], 'thingArn' => [ 'shape' => 'ThingArn', ], ], ], 'AddThingToBillingGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'AddThingToThingGroupRequest' => [ 'type' => 'structure', 'members' => [ 'thingGroupName' => [ 'shape' => 'ThingGroupName', ], 'thingGroupArn' => [ 'shape' => 'ThingGroupArn', ], 'thingName' => [ 'shape' => 'ThingName', ], 'thingArn' => [ 'shape' => 'ThingArn', ], 'overrideDynamicGroups' => [ 'shape' => 'OverrideDynamicGroups', ], ], ], 'AddThingToThingGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'AdditionalMetricsToRetainList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BehaviorMetric', ], ], 'AdditionalParameterMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttributeKey', ], 'value' => [ 'shape' => 'Value', ], ], 'AggregationField' => [ 'type' => 'string', 'min' => 1, ], 'AlarmName' => [ 'type' => 'string', ], 'AlertTarget' => [ 'type' => 'structure', 'required' => [ 'alertTargetArn', 'roleArn', ], 'members' => [ 'alertTargetArn' => [ 'shape' => 'AlertTargetArn', ], 'roleArn' => [ 'shape' => 'RoleArn', ], ], ], 'AlertTargetArn' => [ 'type' => 'string', ], 'AlertTargetType' => [ 'type' => 'string', 'enum' => [ 'SNS', ], ], 'AlertTargets' => [ 'type' => 'map', 'key' => [ 'shape' => 'AlertTargetType', ], 'value' => [ 'shape' => 'AlertTarget', ], ], 'AllowAutoRegistration' => [ 'type' => 'boolean', ], 'Allowed' => [ 'type' => 'structure', 'members' => [ 'policies' => [ 'shape' => 'Policies', ], ], ], 'ApproximateSecondsBeforeTimedOut' => [ 'type' => 'long', ], 'AscendingOrder' => [ 'type' => 'boolean', ], 'AssociateTargetsWithJobRequest' => [ 'type' => 'structure', 'required' => [ 'targets', 'jobId', ], 'members' => [ 'targets' => [ 'shape' => 'JobTargets', ], 'jobId' => [ 'shape' => 'JobId', 'location' => 'uri', 'locationName' => 'jobId', ], 'comment' => [ 'shape' => 'Comment', ], ], ], 'AssociateTargetsWithJobResponse' => [ 'type' => 'structure', 'members' => [ 'jobArn' => [ 'shape' => 'JobArn', ], 'jobId' => [ 'shape' => 'JobId', ], 'description' => [ 'shape' => 'JobDescription', ], ], ], 'AttachPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'policyName', 'target', ], 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', 'location' => 'uri', 'locationName' => 'policyName', ], 'target' => [ 'shape' => 'PolicyTarget', ], ], ], 'AttachPrincipalPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'policyName', 'principal', ], 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', 'location' => 'uri', 'locationName' => 'policyName', ], 'principal' => [ 'shape' => 'Principal', 'location' => 'header', 'locationName' => 'x-amzn-iot-principal', ], ], ], 'AttachSecurityProfileRequest' => [ 'type' => 'structure', 'required' => [ 'securityProfileName', 'securityProfileTargetArn', ], 'members' => [ 'securityProfileName' => [ 'shape' => 'SecurityProfileName', 'location' => 'uri', 'locationName' => 'securityProfileName', ], 'securityProfileTargetArn' => [ 'shape' => 'SecurityProfileTargetArn', 'location' => 'querystring', 'locationName' => 'securityProfileTargetArn', ], ], ], 'AttachSecurityProfileResponse' => [ 'type' => 'structure', 'members' => [], ], 'AttachThingPrincipalRequest' => [ 'type' => 'structure', 'required' => [ 'thingName', 'principal', ], 'members' => [ 'thingName' => [ 'shape' => 'ThingName', 'location' => 'uri', 'locationName' => 'thingName', ], 'principal' => [ 'shape' => 'Principal', 'location' => 'header', 'locationName' => 'x-amzn-principal', ], ], ], 'AttachThingPrincipalResponse' => [ 'type' => 'structure', 'members' => [], ], 'AttributeKey' => [ 'type' => 'string', ], 'AttributeName' => [ 'type' => 'string', 'max' => 128, 'pattern' => '[a-zA-Z0-9_.,@/:#-]+', ], 'AttributePayload' => [ 'type' => 'structure', 'members' => [ 'attributes' => [ 'shape' => 'Attributes', ], 'merge' => [ 'shape' => 'Flag', ], ], ], 'AttributeValue' => [ 'type' => 'string', 'max' => 800, 'pattern' => '[a-zA-Z0-9_.,@/:#-]*', ], 'Attributes' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttributeName', ], 'value' => [ 'shape' => 'AttributeValue', ], ], 'AttributesMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttributeKey', ], 'value' => [ 'shape' => 'Value', ], ], 'AuditCheckConfiguration' => [ 'type' => 'structure', 'members' => [ 'enabled' => [ 'shape' => 'Enabled', ], ], ], 'AuditCheckConfigurations' => [ 'type' => 'map', 'key' => [ 'shape' => 'AuditCheckName', ], 'value' => [ 'shape' => 'AuditCheckConfiguration', ], ], 'AuditCheckDetails' => [ 'type' => 'structure', 'members' => [ 'checkRunStatus' => [ 'shape' => 'AuditCheckRunStatus', ], 'checkCompliant' => [ 'shape' => 'CheckCompliant', ], 'totalResourcesCount' => [ 'shape' => 'TotalResourcesCount', ], 'nonCompliantResourcesCount' => [ 'shape' => 'NonCompliantResourcesCount', ], 'errorCode' => [ 'shape' => 'ErrorCode', ], 'message' => [ 'shape' => 'ErrorMessage', ], ], ], 'AuditCheckName' => [ 'type' => 'string', ], 'AuditCheckRunStatus' => [ 'type' => 'string', 'enum' => [ 'IN_PROGRESS', 'WAITING_FOR_DATA_COLLECTION', 'CANCELED', 'COMPLETED_COMPLIANT', 'COMPLETED_NON_COMPLIANT', 'FAILED', ], ], 'AuditDetails' => [ 'type' => 'map', 'key' => [ 'shape' => 'AuditCheckName', ], 'value' => [ 'shape' => 'AuditCheckDetails', ], ], 'AuditFinding' => [ 'type' => 'structure', 'members' => [ 'taskId' => [ 'shape' => 'AuditTaskId', ], 'checkName' => [ 'shape' => 'AuditCheckName', ], 'taskStartTime' => [ 'shape' => 'Timestamp', ], 'findingTime' => [ 'shape' => 'Timestamp', ], 'severity' => [ 'shape' => 'AuditFindingSeverity', ], 'nonCompliantResource' => [ 'shape' => 'NonCompliantResource', ], 'relatedResources' => [ 'shape' => 'RelatedResources', ], 'reasonForNonCompliance' => [ 'shape' => 'ReasonForNonCompliance', ], 'reasonForNonComplianceCode' => [ 'shape' => 'ReasonForNonComplianceCode', ], ], ], 'AuditFindingSeverity' => [ 'type' => 'string', 'enum' => [ 'CRITICAL', 'HIGH', 'MEDIUM', 'LOW', ], ], 'AuditFindings' => [ 'type' => 'list', 'member' => [ 'shape' => 'AuditFinding', ], ], 'AuditFrequency' => [ 'type' => 'string', 'enum' => [ 'DAILY', 'WEEKLY', 'BIWEEKLY', 'MONTHLY', ], ], 'AuditNotificationTarget' => [ 'type' => 'structure', 'members' => [ 'targetArn' => [ 'shape' => 'TargetArn', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'enabled' => [ 'shape' => 'Enabled', ], ], ], 'AuditNotificationTargetConfigurations' => [ 'type' => 'map', 'key' => [ 'shape' => 'AuditNotificationType', ], 'value' => [ 'shape' => 'AuditNotificationTarget', ], ], 'AuditNotificationType' => [ 'type' => 'string', 'enum' => [ 'SNS', ], ], 'AuditTaskId' => [ 'type' => 'string', 'max' => 40, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\-]+', ], 'AuditTaskMetadata' => [ 'type' => 'structure', 'members' => [ 'taskId' => [ 'shape' => 'AuditTaskId', ], 'taskStatus' => [ 'shape' => 'AuditTaskStatus', ], 'taskType' => [ 'shape' => 'AuditTaskType', ], ], ], 'AuditTaskMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AuditTaskMetadata', ], ], 'AuditTaskStatus' => [ 'type' => 'string', 'enum' => [ 'IN_PROGRESS', 'COMPLETED', 'FAILED', 'CANCELED', ], ], 'AuditTaskType' => [ 'type' => 'string', 'enum' => [ 'ON_DEMAND_AUDIT_TASK', 'SCHEDULED_AUDIT_TASK', ], ], 'AuthDecision' => [ 'type' => 'string', 'enum' => [ 'ALLOWED', 'EXPLICIT_DENY', 'IMPLICIT_DENY', ], ], 'AuthInfo' => [ 'type' => 'structure', 'members' => [ 'actionType' => [ 'shape' => 'ActionType', ], 'resources' => [ 'shape' => 'Resources', ], ], ], 'AuthInfos' => [ 'type' => 'list', 'member' => [ 'shape' => 'AuthInfo', ], 'max' => 10, 'min' => 1, ], 'AuthResult' => [ 'type' => 'structure', 'members' => [ 'authInfo' => [ 'shape' => 'AuthInfo', ], 'allowed' => [ 'shape' => 'Allowed', ], 'denied' => [ 'shape' => 'Denied', ], 'authDecision' => [ 'shape' => 'AuthDecision', ], 'missingContextValues' => [ 'shape' => 'MissingContextValues', ], ], ], 'AuthResults' => [ 'type' => 'list', 'member' => [ 'shape' => 'AuthResult', ], ], 'AuthorizerArn' => [ 'type' => 'string', ], 'AuthorizerDescription' => [ 'type' => 'structure', 'members' => [ 'authorizerName' => [ 'shape' => 'AuthorizerName', ], 'authorizerArn' => [ 'shape' => 'AuthorizerArn', ], 'authorizerFunctionArn' => [ 'shape' => 'AuthorizerFunctionArn', ], 'tokenKeyName' => [ 'shape' => 'TokenKeyName', ], 'tokenSigningPublicKeys' => [ 'shape' => 'PublicKeyMap', ], 'status' => [ 'shape' => 'AuthorizerStatus', ], 'creationDate' => [ 'shape' => 'DateType', ], 'lastModifiedDate' => [ 'shape' => 'DateType', ], ], ], 'AuthorizerFunctionArn' => [ 'type' => 'string', ], 'AuthorizerName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w=,@-]+', ], 'AuthorizerStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'INACTIVE', ], ], 'AuthorizerSummary' => [ 'type' => 'structure', 'members' => [ 'authorizerName' => [ 'shape' => 'AuthorizerName', ], 'authorizerArn' => [ 'shape' => 'AuthorizerArn', ], ], ], 'Authorizers' => [ 'type' => 'list', 'member' => [ 'shape' => 'AuthorizerSummary', ], ], 'AutoRegistrationStatus' => [ 'type' => 'string', 'enum' => [ 'ENABLE', 'DISABLE', ], ], 'AwsAccountId' => [ 'type' => 'string', 'max' => 12, 'min' => 12, 'pattern' => '[0-9]+', ], 'AwsArn' => [ 'type' => 'string', ], 'AwsIotJobArn' => [ 'type' => 'string', ], 'AwsIotJobId' => [ 'type' => 'string', ], 'AwsIotSqlVersion' => [ 'type' => 'string', ], 'AwsJobExecutionsRolloutConfig' => [ 'type' => 'structure', 'members' => [ 'maximumPerMinute' => [ 'shape' => 'MaximumPerMinute', ], ], ], 'Behavior' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'BehaviorName', ], 'metric' => [ 'shape' => 'BehaviorMetric', ], 'criteria' => [ 'shape' => 'BehaviorCriteria', ], ], ], 'BehaviorCriteria' => [ 'type' => 'structure', 'members' => [ 'comparisonOperator' => [ 'shape' => 'ComparisonOperator', ], 'value' => [ 'shape' => 'MetricValue', ], 'durationSeconds' => [ 'shape' => 'DurationSeconds', ], 'consecutiveDatapointsToAlarm' => [ 'shape' => 'ConsecutiveDatapointsToAlarm', ], 'consecutiveDatapointsToClear' => [ 'shape' => 'ConsecutiveDatapointsToClear', ], 'statisticalThreshold' => [ 'shape' => 'StatisticalThreshold', ], ], ], 'BehaviorMetric' => [ 'type' => 'string', ], 'BehaviorName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9:_-]+', ], 'Behaviors' => [ 'type' => 'list', 'member' => [ 'shape' => 'Behavior', ], 'max' => 100, ], 'BillingGroupArn' => [ 'type' => 'string', ], 'BillingGroupDescription' => [ 'type' => 'string', 'max' => 2028, 'pattern' => '[\\p{Graph}\\x20]*', ], 'BillingGroupId' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\-]+', ], 'BillingGroupMetadata' => [ 'type' => 'structure', 'members' => [ 'creationDate' => [ 'shape' => 'CreationDate', ], ], ], 'BillingGroupName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9:_-]+', ], 'BillingGroupNameAndArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GroupNameAndArn', ], ], 'BillingGroupProperties' => [ 'type' => 'structure', 'members' => [ 'billingGroupDescription' => [ 'shape' => 'BillingGroupDescription', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'BucketName' => [ 'type' => 'string', ], 'CACertificate' => [ 'type' => 'structure', 'members' => [ 'certificateArn' => [ 'shape' => 'CertificateArn', ], 'certificateId' => [ 'shape' => 'CertificateId', ], 'status' => [ 'shape' => 'CACertificateStatus', ], 'creationDate' => [ 'shape' => 'DateType', ], ], ], 'CACertificateDescription' => [ 'type' => 'structure', 'members' => [ 'certificateArn' => [ 'shape' => 'CertificateArn', ], 'certificateId' => [ 'shape' => 'CertificateId', ], 'status' => [ 'shape' => 'CACertificateStatus', ], 'certificatePem' => [ 'shape' => 'CertificatePem', ], 'ownedBy' => [ 'shape' => 'AwsAccountId', ], 'creationDate' => [ 'shape' => 'DateType', ], 'autoRegistrationStatus' => [ 'shape' => 'AutoRegistrationStatus', ], 'lastModifiedDate' => [ 'shape' => 'DateType', ], 'customerVersion' => [ 'shape' => 'CustomerVersion', ], 'generationId' => [ 'shape' => 'GenerationId', ], 'validity' => [ 'shape' => 'CertificateValidity', ], ], ], 'CACertificateStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'INACTIVE', ], ], 'CACertificates' => [ 'type' => 'list', 'member' => [ 'shape' => 'CACertificate', ], ], 'CancelAuditTaskRequest' => [ 'type' => 'structure', 'required' => [ 'taskId', ], 'members' => [ 'taskId' => [ 'shape' => 'AuditTaskId', 'location' => 'uri', 'locationName' => 'taskId', ], ], ], 'CancelAuditTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'CancelCertificateTransferRequest' => [ 'type' => 'structure', 'required' => [ 'certificateId', ], 'members' => [ 'certificateId' => [ 'shape' => 'CertificateId', 'location' => 'uri', 'locationName' => 'certificateId', ], ], ], 'CancelJobExecutionRequest' => [ 'type' => 'structure', 'required' => [ 'jobId', 'thingName', ], 'members' => [ 'jobId' => [ 'shape' => 'JobId', 'location' => 'uri', 'locationName' => 'jobId', ], 'thingName' => [ 'shape' => 'ThingName', 'location' => 'uri', 'locationName' => 'thingName', ], 'force' => [ 'shape' => 'ForceFlag', 'location' => 'querystring', 'locationName' => 'force', ], 'expectedVersion' => [ 'shape' => 'ExpectedVersion', ], 'statusDetails' => [ 'shape' => 'DetailsMap', ], ], ], 'CancelJobRequest' => [ 'type' => 'structure', 'required' => [ 'jobId', ], 'members' => [ 'jobId' => [ 'shape' => 'JobId', 'location' => 'uri', 'locationName' => 'jobId', ], 'reasonCode' => [ 'shape' => 'ReasonCode', ], 'comment' => [ 'shape' => 'Comment', ], 'force' => [ 'shape' => 'ForceFlag', 'location' => 'querystring', 'locationName' => 'force', ], ], ], 'CancelJobResponse' => [ 'type' => 'structure', 'members' => [ 'jobArn' => [ 'shape' => 'JobArn', ], 'jobId' => [ 'shape' => 'JobId', ], 'description' => [ 'shape' => 'JobDescription', ], ], ], 'CanceledChecksCount' => [ 'type' => 'integer', ], 'CanceledThings' => [ 'type' => 'integer', ], 'CannedAccessControlList' => [ 'type' => 'string', 'enum' => [ 'private', 'public-read', 'public-read-write', 'aws-exec-read', 'authenticated-read', 'bucket-owner-read', 'bucket-owner-full-control', 'log-delivery-write', ], ], 'Certificate' => [ 'type' => 'structure', 'members' => [ 'certificateArn' => [ 'shape' => 'CertificateArn', ], 'certificateId' => [ 'shape' => 'CertificateId', ], 'status' => [ 'shape' => 'CertificateStatus', ], 'creationDate' => [ 'shape' => 'DateType', ], ], ], 'CertificateArn' => [ 'type' => 'string', ], 'CertificateConflictException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'CertificateDescription' => [ 'type' => 'structure', 'members' => [ 'certificateArn' => [ 'shape' => 'CertificateArn', ], 'certificateId' => [ 'shape' => 'CertificateId', ], 'caCertificateId' => [ 'shape' => 'CertificateId', ], 'status' => [ 'shape' => 'CertificateStatus', ], 'certificatePem' => [ 'shape' => 'CertificatePem', ], 'ownedBy' => [ 'shape' => 'AwsAccountId', ], 'previousOwnedBy' => [ 'shape' => 'AwsAccountId', ], 'creationDate' => [ 'shape' => 'DateType', ], 'lastModifiedDate' => [ 'shape' => 'DateType', ], 'customerVersion' => [ 'shape' => 'CustomerVersion', ], 'transferData' => [ 'shape' => 'TransferData', ], 'generationId' => [ 'shape' => 'GenerationId', ], 'validity' => [ 'shape' => 'CertificateValidity', ], ], ], 'CertificateId' => [ 'type' => 'string', 'max' => 64, 'min' => 64, 'pattern' => '(0x)?[a-fA-F0-9]+', ], 'CertificateName' => [ 'type' => 'string', ], 'CertificatePathOnDevice' => [ 'type' => 'string', ], 'CertificatePem' => [ 'type' => 'string', 'max' => 65536, 'min' => 1, ], 'CertificateSigningRequest' => [ 'type' => 'string', 'min' => 1, ], 'CertificateStateException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 406, ], 'exception' => true, ], 'CertificateStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'INACTIVE', 'REVOKED', 'PENDING_TRANSFER', 'REGISTER_INACTIVE', 'PENDING_ACTIVATION', ], ], 'CertificateValidationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'CertificateValidity' => [ 'type' => 'structure', 'members' => [ 'notBefore' => [ 'shape' => 'DateType', ], 'notAfter' => [ 'shape' => 'DateType', ], ], ], 'Certificates' => [ 'type' => 'list', 'member' => [ 'shape' => 'Certificate', ], ], 'ChannelName' => [ 'type' => 'string', ], 'CheckCompliant' => [ 'type' => 'boolean', ], 'Cidr' => [ 'type' => 'string', 'max' => 43, 'min' => 2, 'pattern' => '[a-fA-F0-9:\\.\\/]+', ], 'Cidrs' => [ 'type' => 'list', 'member' => [ 'shape' => 'Cidr', ], ], 'ClearDefaultAuthorizerRequest' => [ 'type' => 'structure', 'members' => [], ], 'ClearDefaultAuthorizerResponse' => [ 'type' => 'structure', 'members' => [], ], 'ClientId' => [ 'type' => 'string', ], 'CloudwatchAlarmAction' => [ 'type' => 'structure', 'required' => [ 'roleArn', 'alarmName', 'stateReason', 'stateValue', ], 'members' => [ 'roleArn' => [ 'shape' => 'AwsArn', ], 'alarmName' => [ 'shape' => 'AlarmName', ], 'stateReason' => [ 'shape' => 'StateReason', ], 'stateValue' => [ 'shape' => 'StateValue', ], ], ], 'CloudwatchMetricAction' => [ 'type' => 'structure', 'required' => [ 'roleArn', 'metricNamespace', 'metricName', 'metricValue', 'metricUnit', ], 'members' => [ 'roleArn' => [ 'shape' => 'AwsArn', ], 'metricNamespace' => [ 'shape' => 'String', ], 'metricName' => [ 'shape' => 'String', ], 'metricValue' => [ 'shape' => 'String', ], 'metricUnit' => [ 'shape' => 'String', ], 'metricTimestamp' => [ 'shape' => 'String', ], ], ], 'Code' => [ 'type' => 'string', ], 'CodeSigning' => [ 'type' => 'structure', 'members' => [ 'awsSignerJobId' => [ 'shape' => 'SigningJobId', ], 'startSigningJobParameter' => [ 'shape' => 'StartSigningJobParameter', ], 'customCodeSigning' => [ 'shape' => 'CustomCodeSigning', ], ], ], 'CodeSigningCertificateChain' => [ 'type' => 'structure', 'members' => [ 'certificateName' => [ 'shape' => 'CertificateName', ], 'inlineDocument' => [ 'shape' => 'InlineDocument', ], ], ], 'CodeSigningSignature' => [ 'type' => 'structure', 'members' => [ 'inlineDocument' => [ 'shape' => 'Signature', ], ], ], 'CognitoIdentityPoolId' => [ 'type' => 'string', ], 'Comment' => [ 'type' => 'string', 'max' => 2028, 'pattern' => '[^\\p{C}]+', ], 'ComparisonOperator' => [ 'type' => 'string', 'enum' => [ 'less-than', 'less-than-equals', 'greater-than', 'greater-than-equals', 'in-cidr-set', 'not-in-cidr-set', 'in-port-set', 'not-in-port-set', ], ], 'CompliantChecksCount' => [ 'type' => 'integer', ], 'Configuration' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Enabled', ], ], ], 'ConflictingResourceUpdateException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'ConnectivityTimestamp' => [ 'type' => 'long', ], 'ConsecutiveDatapointsToAlarm' => [ 'type' => 'integer', 'max' => 10, 'min' => 1, ], 'ConsecutiveDatapointsToClear' => [ 'type' => 'integer', 'max' => 10, 'min' => 1, ], 'Count' => [ 'type' => 'integer', ], 'CreateAuthorizerRequest' => [ 'type' => 'structure', 'required' => [ 'authorizerName', 'authorizerFunctionArn', 'tokenKeyName', 'tokenSigningPublicKeys', ], 'members' => [ 'authorizerName' => [ 'shape' => 'AuthorizerName', 'location' => 'uri', 'locationName' => 'authorizerName', ], 'authorizerFunctionArn' => [ 'shape' => 'AuthorizerFunctionArn', ], 'tokenKeyName' => [ 'shape' => 'TokenKeyName', ], 'tokenSigningPublicKeys' => [ 'shape' => 'PublicKeyMap', ], 'status' => [ 'shape' => 'AuthorizerStatus', ], ], ], 'CreateAuthorizerResponse' => [ 'type' => 'structure', 'members' => [ 'authorizerName' => [ 'shape' => 'AuthorizerName', ], 'authorizerArn' => [ 'shape' => 'AuthorizerArn', ], ], ], 'CreateBillingGroupRequest' => [ 'type' => 'structure', 'required' => [ 'billingGroupName', ], 'members' => [ 'billingGroupName' => [ 'shape' => 'BillingGroupName', 'location' => 'uri', 'locationName' => 'billingGroupName', ], 'billingGroupProperties' => [ 'shape' => 'BillingGroupProperties', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateBillingGroupResponse' => [ 'type' => 'structure', 'members' => [ 'billingGroupName' => [ 'shape' => 'BillingGroupName', ], 'billingGroupArn' => [ 'shape' => 'BillingGroupArn', ], 'billingGroupId' => [ 'shape' => 'BillingGroupId', ], ], ], 'CreateCertificateFromCsrRequest' => [ 'type' => 'structure', 'required' => [ 'certificateSigningRequest', ], 'members' => [ 'certificateSigningRequest' => [ 'shape' => 'CertificateSigningRequest', ], 'setAsActive' => [ 'shape' => 'SetAsActive', 'location' => 'querystring', 'locationName' => 'setAsActive', ], ], ], 'CreateCertificateFromCsrResponse' => [ 'type' => 'structure', 'members' => [ 'certificateArn' => [ 'shape' => 'CertificateArn', ], 'certificateId' => [ 'shape' => 'CertificateId', ], 'certificatePem' => [ 'shape' => 'CertificatePem', ], ], ], 'CreateDynamicThingGroupRequest' => [ 'type' => 'structure', 'required' => [ 'thingGroupName', 'queryString', ], 'members' => [ 'thingGroupName' => [ 'shape' => 'ThingGroupName', 'location' => 'uri', 'locationName' => 'thingGroupName', ], 'thingGroupProperties' => [ 'shape' => 'ThingGroupProperties', ], 'indexName' => [ 'shape' => 'IndexName', ], 'queryString' => [ 'shape' => 'QueryString', ], 'queryVersion' => [ 'shape' => 'QueryVersion', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDynamicThingGroupResponse' => [ 'type' => 'structure', 'members' => [ 'thingGroupName' => [ 'shape' => 'ThingGroupName', ], 'thingGroupArn' => [ 'shape' => 'ThingGroupArn', ], 'thingGroupId' => [ 'shape' => 'ThingGroupId', ], 'indexName' => [ 'shape' => 'IndexName', ], 'queryString' => [ 'shape' => 'QueryString', ], 'queryVersion' => [ 'shape' => 'QueryVersion', ], ], ], 'CreateJobRequest' => [ 'type' => 'structure', 'required' => [ 'jobId', 'targets', ], 'members' => [ 'jobId' => [ 'shape' => 'JobId', 'location' => 'uri', 'locationName' => 'jobId', ], 'targets' => [ 'shape' => 'JobTargets', ], 'documentSource' => [ 'shape' => 'JobDocumentSource', ], 'document' => [ 'shape' => 'JobDocument', ], 'description' => [ 'shape' => 'JobDescription', ], 'presignedUrlConfig' => [ 'shape' => 'PresignedUrlConfig', ], 'targetSelection' => [ 'shape' => 'TargetSelection', ], 'jobExecutionsRolloutConfig' => [ 'shape' => 'JobExecutionsRolloutConfig', ], 'abortConfig' => [ 'shape' => 'AbortConfig', ], 'timeoutConfig' => [ 'shape' => 'TimeoutConfig', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateJobResponse' => [ 'type' => 'structure', 'members' => [ 'jobArn' => [ 'shape' => 'JobArn', ], 'jobId' => [ 'shape' => 'JobId', ], 'description' => [ 'shape' => 'JobDescription', ], ], ], 'CreateKeysAndCertificateRequest' => [ 'type' => 'structure', 'members' => [ 'setAsActive' => [ 'shape' => 'SetAsActive', 'location' => 'querystring', 'locationName' => 'setAsActive', ], ], ], 'CreateKeysAndCertificateResponse' => [ 'type' => 'structure', 'members' => [ 'certificateArn' => [ 'shape' => 'CertificateArn', ], 'certificateId' => [ 'shape' => 'CertificateId', ], 'certificatePem' => [ 'shape' => 'CertificatePem', ], 'keyPair' => [ 'shape' => 'KeyPair', ], ], ], 'CreateOTAUpdateRequest' => [ 'type' => 'structure', 'required' => [ 'otaUpdateId', 'targets', 'files', 'roleArn', ], 'members' => [ 'otaUpdateId' => [ 'shape' => 'OTAUpdateId', 'location' => 'uri', 'locationName' => 'otaUpdateId', ], 'description' => [ 'shape' => 'OTAUpdateDescription', ], 'targets' => [ 'shape' => 'Targets', ], 'targetSelection' => [ 'shape' => 'TargetSelection', ], 'awsJobExecutionsRolloutConfig' => [ 'shape' => 'AwsJobExecutionsRolloutConfig', ], 'files' => [ 'shape' => 'OTAUpdateFiles', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'additionalParameters' => [ 'shape' => 'AdditionalParameterMap', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateOTAUpdateResponse' => [ 'type' => 'structure', 'members' => [ 'otaUpdateId' => [ 'shape' => 'OTAUpdateId', ], 'awsIotJobId' => [ 'shape' => 'AwsIotJobId', ], 'otaUpdateArn' => [ 'shape' => 'OTAUpdateArn', ], 'awsIotJobArn' => [ 'shape' => 'AwsIotJobArn', ], 'otaUpdateStatus' => [ 'shape' => 'OTAUpdateStatus', ], ], ], 'CreatePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'policyName', 'policyDocument', ], 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', 'location' => 'uri', 'locationName' => 'policyName', ], 'policyDocument' => [ 'shape' => 'PolicyDocument', ], ], ], 'CreatePolicyResponse' => [ 'type' => 'structure', 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', ], 'policyArn' => [ 'shape' => 'PolicyArn', ], 'policyDocument' => [ 'shape' => 'PolicyDocument', ], 'policyVersionId' => [ 'shape' => 'PolicyVersionId', ], ], ], 'CreatePolicyVersionRequest' => [ 'type' => 'structure', 'required' => [ 'policyName', 'policyDocument', ], 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', 'location' => 'uri', 'locationName' => 'policyName', ], 'policyDocument' => [ 'shape' => 'PolicyDocument', ], 'setAsDefault' => [ 'shape' => 'SetAsDefault', 'location' => 'querystring', 'locationName' => 'setAsDefault', ], ], ], 'CreatePolicyVersionResponse' => [ 'type' => 'structure', 'members' => [ 'policyArn' => [ 'shape' => 'PolicyArn', ], 'policyDocument' => [ 'shape' => 'PolicyDocument', ], 'policyVersionId' => [ 'shape' => 'PolicyVersionId', ], 'isDefaultVersion' => [ 'shape' => 'IsDefaultVersion', ], ], ], 'CreateRoleAliasRequest' => [ 'type' => 'structure', 'required' => [ 'roleAlias', 'roleArn', ], 'members' => [ 'roleAlias' => [ 'shape' => 'RoleAlias', 'location' => 'uri', 'locationName' => 'roleAlias', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'credentialDurationSeconds' => [ 'shape' => 'CredentialDurationSeconds', ], ], ], 'CreateRoleAliasResponse' => [ 'type' => 'structure', 'members' => [ 'roleAlias' => [ 'shape' => 'RoleAlias', ], 'roleAliasArn' => [ 'shape' => 'RoleAliasArn', ], ], ], 'CreateScheduledAuditRequest' => [ 'type' => 'structure', 'required' => [ 'frequency', 'targetCheckNames', 'scheduledAuditName', ], 'members' => [ 'frequency' => [ 'shape' => 'AuditFrequency', ], 'dayOfMonth' => [ 'shape' => 'DayOfMonth', ], 'dayOfWeek' => [ 'shape' => 'DayOfWeek', ], 'targetCheckNames' => [ 'shape' => 'TargetAuditCheckNames', ], 'tags' => [ 'shape' => 'TagList', ], 'scheduledAuditName' => [ 'shape' => 'ScheduledAuditName', 'location' => 'uri', 'locationName' => 'scheduledAuditName', ], ], ], 'CreateScheduledAuditResponse' => [ 'type' => 'structure', 'members' => [ 'scheduledAuditArn' => [ 'shape' => 'ScheduledAuditArn', ], ], ], 'CreateSecurityProfileRequest' => [ 'type' => 'structure', 'required' => [ 'securityProfileName', ], 'members' => [ 'securityProfileName' => [ 'shape' => 'SecurityProfileName', 'location' => 'uri', 'locationName' => 'securityProfileName', ], 'securityProfileDescription' => [ 'shape' => 'SecurityProfileDescription', ], 'behaviors' => [ 'shape' => 'Behaviors', ], 'alertTargets' => [ 'shape' => 'AlertTargets', ], 'additionalMetricsToRetain' => [ 'shape' => 'AdditionalMetricsToRetainList', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateSecurityProfileResponse' => [ 'type' => 'structure', 'members' => [ 'securityProfileName' => [ 'shape' => 'SecurityProfileName', ], 'securityProfileArn' => [ 'shape' => 'SecurityProfileArn', ], ], ], 'CreateStreamRequest' => [ 'type' => 'structure', 'required' => [ 'streamId', 'files', 'roleArn', ], 'members' => [ 'streamId' => [ 'shape' => 'StreamId', 'location' => 'uri', 'locationName' => 'streamId', ], 'description' => [ 'shape' => 'StreamDescription', ], 'files' => [ 'shape' => 'StreamFiles', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateStreamResponse' => [ 'type' => 'structure', 'members' => [ 'streamId' => [ 'shape' => 'StreamId', ], 'streamArn' => [ 'shape' => 'StreamArn', ], 'description' => [ 'shape' => 'StreamDescription', ], 'streamVersion' => [ 'shape' => 'StreamVersion', ], ], ], 'CreateThingGroupRequest' => [ 'type' => 'structure', 'required' => [ 'thingGroupName', ], 'members' => [ 'thingGroupName' => [ 'shape' => 'ThingGroupName', 'location' => 'uri', 'locationName' => 'thingGroupName', ], 'parentGroupName' => [ 'shape' => 'ThingGroupName', ], 'thingGroupProperties' => [ 'shape' => 'ThingGroupProperties', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateThingGroupResponse' => [ 'type' => 'structure', 'members' => [ 'thingGroupName' => [ 'shape' => 'ThingGroupName', ], 'thingGroupArn' => [ 'shape' => 'ThingGroupArn', ], 'thingGroupId' => [ 'shape' => 'ThingGroupId', ], ], ], 'CreateThingRequest' => [ 'type' => 'structure', 'required' => [ 'thingName', ], 'members' => [ 'thingName' => [ 'shape' => 'ThingName', 'location' => 'uri', 'locationName' => 'thingName', ], 'thingTypeName' => [ 'shape' => 'ThingTypeName', ], 'attributePayload' => [ 'shape' => 'AttributePayload', ], 'billingGroupName' => [ 'shape' => 'BillingGroupName', ], ], ], 'CreateThingResponse' => [ 'type' => 'structure', 'members' => [ 'thingName' => [ 'shape' => 'ThingName', ], 'thingArn' => [ 'shape' => 'ThingArn', ], 'thingId' => [ 'shape' => 'ThingId', ], ], ], 'CreateThingTypeRequest' => [ 'type' => 'structure', 'required' => [ 'thingTypeName', ], 'members' => [ 'thingTypeName' => [ 'shape' => 'ThingTypeName', 'location' => 'uri', 'locationName' => 'thingTypeName', ], 'thingTypeProperties' => [ 'shape' => 'ThingTypeProperties', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateThingTypeResponse' => [ 'type' => 'structure', 'members' => [ 'thingTypeName' => [ 'shape' => 'ThingTypeName', ], 'thingTypeArn' => [ 'shape' => 'ThingTypeArn', ], 'thingTypeId' => [ 'shape' => 'ThingTypeId', ], ], ], 'CreateTopicRuleRequest' => [ 'type' => 'structure', 'required' => [ 'ruleName', 'topicRulePayload', ], 'members' => [ 'ruleName' => [ 'shape' => 'RuleName', 'location' => 'uri', 'locationName' => 'ruleName', ], 'topicRulePayload' => [ 'shape' => 'TopicRulePayload', ], 'tags' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'x-amz-tagging', ], ], 'payload' => 'topicRulePayload', ], 'CreatedAtDate' => [ 'type' => 'timestamp', ], 'CreationDate' => [ 'type' => 'timestamp', ], 'CredentialDurationSeconds' => [ 'type' => 'integer', 'max' => 3600, 'min' => 900, ], 'CustomCodeSigning' => [ 'type' => 'structure', 'members' => [ 'signature' => [ 'shape' => 'CodeSigningSignature', ], 'certificateChain' => [ 'shape' => 'CodeSigningCertificateChain', ], 'hashAlgorithm' => [ 'shape' => 'HashAlgorithm', ], 'signatureAlgorithm' => [ 'shape' => 'SignatureAlgorithm', ], ], ], 'CustomerVersion' => [ 'type' => 'integer', 'min' => 1, ], 'DateType' => [ 'type' => 'timestamp', ], 'DayOfMonth' => [ 'type' => 'string', 'pattern' => '^([1-9]|[12][0-9]|3[01])$|^LAST$', ], 'DayOfWeek' => [ 'type' => 'string', 'enum' => [ 'SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', ], ], 'DeleteAccountAuditConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'deleteScheduledAudits' => [ 'shape' => 'DeleteScheduledAudits', 'location' => 'querystring', 'locationName' => 'deleteScheduledAudits', ], ], ], 'DeleteAccountAuditConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteAdditionalMetricsToRetain' => [ 'type' => 'boolean', ], 'DeleteAlertTargets' => [ 'type' => 'boolean', ], 'DeleteAuthorizerRequest' => [ 'type' => 'structure', 'required' => [ 'authorizerName', ], 'members' => [ 'authorizerName' => [ 'shape' => 'AuthorizerName', 'location' => 'uri', 'locationName' => 'authorizerName', ], ], ], 'DeleteAuthorizerResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteBehaviors' => [ 'type' => 'boolean', ], 'DeleteBillingGroupRequest' => [ 'type' => 'structure', 'required' => [ 'billingGroupName', ], 'members' => [ 'billingGroupName' => [ 'shape' => 'BillingGroupName', 'location' => 'uri', 'locationName' => 'billingGroupName', ], 'expectedVersion' => [ 'shape' => 'OptionalVersion', 'location' => 'querystring', 'locationName' => 'expectedVersion', ], ], ], 'DeleteBillingGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteCACertificateRequest' => [ 'type' => 'structure', 'required' => [ 'certificateId', ], 'members' => [ 'certificateId' => [ 'shape' => 'CertificateId', 'location' => 'uri', 'locationName' => 'caCertificateId', ], ], ], 'DeleteCACertificateResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'certificateId', ], 'members' => [ 'certificateId' => [ 'shape' => 'CertificateId', 'location' => 'uri', 'locationName' => 'certificateId', ], 'forceDelete' => [ 'shape' => 'ForceDelete', 'location' => 'querystring', 'locationName' => 'forceDelete', ], ], ], 'DeleteConflictException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'DeleteDynamicThingGroupRequest' => [ 'type' => 'structure', 'required' => [ 'thingGroupName', ], 'members' => [ 'thingGroupName' => [ 'shape' => 'ThingGroupName', 'location' => 'uri', 'locationName' => 'thingGroupName', ], 'expectedVersion' => [ 'shape' => 'OptionalVersion', 'location' => 'querystring', 'locationName' => 'expectedVersion', ], ], ], 'DeleteDynamicThingGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteJobExecutionRequest' => [ 'type' => 'structure', 'required' => [ 'jobId', 'thingName', 'executionNumber', ], 'members' => [ 'jobId' => [ 'shape' => 'JobId', 'location' => 'uri', 'locationName' => 'jobId', ], 'thingName' => [ 'shape' => 'ThingName', 'location' => 'uri', 'locationName' => 'thingName', ], 'executionNumber' => [ 'shape' => 'ExecutionNumber', 'location' => 'uri', 'locationName' => 'executionNumber', ], 'force' => [ 'shape' => 'ForceFlag', 'location' => 'querystring', 'locationName' => 'force', ], ], ], 'DeleteJobRequest' => [ 'type' => 'structure', 'required' => [ 'jobId', ], 'members' => [ 'jobId' => [ 'shape' => 'JobId', 'location' => 'uri', 'locationName' => 'jobId', ], 'force' => [ 'shape' => 'ForceFlag', 'location' => 'querystring', 'locationName' => 'force', ], ], ], 'DeleteOTAUpdateRequest' => [ 'type' => 'structure', 'required' => [ 'otaUpdateId', ], 'members' => [ 'otaUpdateId' => [ 'shape' => 'OTAUpdateId', 'location' => 'uri', 'locationName' => 'otaUpdateId', ], 'deleteStream' => [ 'shape' => 'DeleteStream', 'location' => 'querystring', 'locationName' => 'deleteStream', ], 'forceDeleteAWSJob' => [ 'shape' => 'ForceDeleteAWSJob', 'location' => 'querystring', 'locationName' => 'forceDeleteAWSJob', ], ], ], 'DeleteOTAUpdateResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeletePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'policyName', ], 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', 'location' => 'uri', 'locationName' => 'policyName', ], ], ], 'DeletePolicyVersionRequest' => [ 'type' => 'structure', 'required' => [ 'policyName', 'policyVersionId', ], 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', 'location' => 'uri', 'locationName' => 'policyName', ], 'policyVersionId' => [ 'shape' => 'PolicyVersionId', 'location' => 'uri', 'locationName' => 'policyVersionId', ], ], ], 'DeleteRegistrationCodeRequest' => [ 'type' => 'structure', 'members' => [], ], 'DeleteRegistrationCodeResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteRoleAliasRequest' => [ 'type' => 'structure', 'required' => [ 'roleAlias', ], 'members' => [ 'roleAlias' => [ 'shape' => 'RoleAlias', 'location' => 'uri', 'locationName' => 'roleAlias', ], ], ], 'DeleteRoleAliasResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteScheduledAuditRequest' => [ 'type' => 'structure', 'required' => [ 'scheduledAuditName', ], 'members' => [ 'scheduledAuditName' => [ 'shape' => 'ScheduledAuditName', 'location' => 'uri', 'locationName' => 'scheduledAuditName', ], ], ], 'DeleteScheduledAuditResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteScheduledAudits' => [ 'type' => 'boolean', ], 'DeleteSecurityProfileRequest' => [ 'type' => 'structure', 'required' => [ 'securityProfileName', ], 'members' => [ 'securityProfileName' => [ 'shape' => 'SecurityProfileName', 'location' => 'uri', 'locationName' => 'securityProfileName', ], 'expectedVersion' => [ 'shape' => 'OptionalVersion', 'location' => 'querystring', 'locationName' => 'expectedVersion', ], ], ], 'DeleteSecurityProfileResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteStream' => [ 'type' => 'boolean', ], 'DeleteStreamRequest' => [ 'type' => 'structure', 'required' => [ 'streamId', ], 'members' => [ 'streamId' => [ 'shape' => 'StreamId', 'location' => 'uri', 'locationName' => 'streamId', ], ], ], 'DeleteStreamResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteThingGroupRequest' => [ 'type' => 'structure', 'required' => [ 'thingGroupName', ], 'members' => [ 'thingGroupName' => [ 'shape' => 'ThingGroupName', 'location' => 'uri', 'locationName' => 'thingGroupName', ], 'expectedVersion' => [ 'shape' => 'OptionalVersion', 'location' => 'querystring', 'locationName' => 'expectedVersion', ], ], ], 'DeleteThingGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteThingRequest' => [ 'type' => 'structure', 'required' => [ 'thingName', ], 'members' => [ 'thingName' => [ 'shape' => 'ThingName', 'location' => 'uri', 'locationName' => 'thingName', ], 'expectedVersion' => [ 'shape' => 'OptionalVersion', 'location' => 'querystring', 'locationName' => 'expectedVersion', ], ], ], 'DeleteThingResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteThingTypeRequest' => [ 'type' => 'structure', 'required' => [ 'thingTypeName', ], 'members' => [ 'thingTypeName' => [ 'shape' => 'ThingTypeName', 'location' => 'uri', 'locationName' => 'thingTypeName', ], ], ], 'DeleteThingTypeResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteTopicRuleRequest' => [ 'type' => 'structure', 'required' => [ 'ruleName', ], 'members' => [ 'ruleName' => [ 'shape' => 'RuleName', 'location' => 'uri', 'locationName' => 'ruleName', ], ], ], 'DeleteV2LoggingLevelRequest' => [ 'type' => 'structure', 'required' => [ 'targetType', 'targetName', ], 'members' => [ 'targetType' => [ 'shape' => 'LogTargetType', 'location' => 'querystring', 'locationName' => 'targetType', ], 'targetName' => [ 'shape' => 'LogTargetName', 'location' => 'querystring', 'locationName' => 'targetName', ], ], ], 'DeliveryStreamName' => [ 'type' => 'string', ], 'Denied' => [ 'type' => 'structure', 'members' => [ 'implicitDeny' => [ 'shape' => 'ImplicitDeny', ], 'explicitDeny' => [ 'shape' => 'ExplicitDeny', ], ], ], 'DeprecateThingTypeRequest' => [ 'type' => 'structure', 'required' => [ 'thingTypeName', ], 'members' => [ 'thingTypeName' => [ 'shape' => 'ThingTypeName', 'location' => 'uri', 'locationName' => 'thingTypeName', ], 'undoDeprecate' => [ 'shape' => 'UndoDeprecate', ], ], ], 'DeprecateThingTypeResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeprecationDate' => [ 'type' => 'timestamp', ], 'DescribeAccountAuditConfigurationRequest' => [ 'type' => 'structure', 'members' => [], ], 'DescribeAccountAuditConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'roleArn' => [ 'shape' => 'RoleArn', ], 'auditNotificationTargetConfigurations' => [ 'shape' => 'AuditNotificationTargetConfigurations', ], 'auditCheckConfigurations' => [ 'shape' => 'AuditCheckConfigurations', ], ], ], 'DescribeAuditTaskRequest' => [ 'type' => 'structure', 'required' => [ 'taskId', ], 'members' => [ 'taskId' => [ 'shape' => 'AuditTaskId', 'location' => 'uri', 'locationName' => 'taskId', ], ], ], 'DescribeAuditTaskResponse' => [ 'type' => 'structure', 'members' => [ 'taskStatus' => [ 'shape' => 'AuditTaskStatus', ], 'taskType' => [ 'shape' => 'AuditTaskType', ], 'taskStartTime' => [ 'shape' => 'Timestamp', ], 'taskStatistics' => [ 'shape' => 'TaskStatistics', ], 'scheduledAuditName' => [ 'shape' => 'ScheduledAuditName', ], 'auditDetails' => [ 'shape' => 'AuditDetails', ], ], ], 'DescribeAuthorizerRequest' => [ 'type' => 'structure', 'required' => [ 'authorizerName', ], 'members' => [ 'authorizerName' => [ 'shape' => 'AuthorizerName', 'location' => 'uri', 'locationName' => 'authorizerName', ], ], ], 'DescribeAuthorizerResponse' => [ 'type' => 'structure', 'members' => [ 'authorizerDescription' => [ 'shape' => 'AuthorizerDescription', ], ], ], 'DescribeBillingGroupRequest' => [ 'type' => 'structure', 'required' => [ 'billingGroupName', ], 'members' => [ 'billingGroupName' => [ 'shape' => 'BillingGroupName', 'location' => 'uri', 'locationName' => 'billingGroupName', ], ], ], 'DescribeBillingGroupResponse' => [ 'type' => 'structure', 'members' => [ 'billingGroupName' => [ 'shape' => 'BillingGroupName', ], 'billingGroupId' => [ 'shape' => 'BillingGroupId', ], 'billingGroupArn' => [ 'shape' => 'BillingGroupArn', ], 'version' => [ 'shape' => 'Version', ], 'billingGroupProperties' => [ 'shape' => 'BillingGroupProperties', ], 'billingGroupMetadata' => [ 'shape' => 'BillingGroupMetadata', ], ], ], 'DescribeCACertificateRequest' => [ 'type' => 'structure', 'required' => [ 'certificateId', ], 'members' => [ 'certificateId' => [ 'shape' => 'CertificateId', 'location' => 'uri', 'locationName' => 'caCertificateId', ], ], ], 'DescribeCACertificateResponse' => [ 'type' => 'structure', 'members' => [ 'certificateDescription' => [ 'shape' => 'CACertificateDescription', ], 'registrationConfig' => [ 'shape' => 'RegistrationConfig', ], ], ], 'DescribeCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'certificateId', ], 'members' => [ 'certificateId' => [ 'shape' => 'CertificateId', 'location' => 'uri', 'locationName' => 'certificateId', ], ], ], 'DescribeCertificateResponse' => [ 'type' => 'structure', 'members' => [ 'certificateDescription' => [ 'shape' => 'CertificateDescription', ], ], ], 'DescribeDefaultAuthorizerRequest' => [ 'type' => 'structure', 'members' => [], ], 'DescribeDefaultAuthorizerResponse' => [ 'type' => 'structure', 'members' => [ 'authorizerDescription' => [ 'shape' => 'AuthorizerDescription', ], ], ], 'DescribeEndpointRequest' => [ 'type' => 'structure', 'members' => [ 'endpointType' => [ 'shape' => 'EndpointType', 'location' => 'querystring', 'locationName' => 'endpointType', ], ], ], 'DescribeEndpointResponse' => [ 'type' => 'structure', 'members' => [ 'endpointAddress' => [ 'shape' => 'EndpointAddress', ], ], ], 'DescribeEventConfigurationsRequest' => [ 'type' => 'structure', 'members' => [], ], 'DescribeEventConfigurationsResponse' => [ 'type' => 'structure', 'members' => [ 'eventConfigurations' => [ 'shape' => 'EventConfigurations', ], 'creationDate' => [ 'shape' => 'CreationDate', ], 'lastModifiedDate' => [ 'shape' => 'LastModifiedDate', ], ], ], 'DescribeIndexRequest' => [ 'type' => 'structure', 'required' => [ 'indexName', ], 'members' => [ 'indexName' => [ 'shape' => 'IndexName', 'location' => 'uri', 'locationName' => 'indexName', ], ], ], 'DescribeIndexResponse' => [ 'type' => 'structure', 'members' => [ 'indexName' => [ 'shape' => 'IndexName', ], 'indexStatus' => [ 'shape' => 'IndexStatus', ], 'schema' => [ 'shape' => 'IndexSchema', ], ], ], 'DescribeJobExecutionRequest' => [ 'type' => 'structure', 'required' => [ 'jobId', 'thingName', ], 'members' => [ 'jobId' => [ 'shape' => 'JobId', 'location' => 'uri', 'locationName' => 'jobId', ], 'thingName' => [ 'shape' => 'ThingName', 'location' => 'uri', 'locationName' => 'thingName', ], 'executionNumber' => [ 'shape' => 'ExecutionNumber', 'location' => 'querystring', 'locationName' => 'executionNumber', ], ], ], 'DescribeJobExecutionResponse' => [ 'type' => 'structure', 'members' => [ 'execution' => [ 'shape' => 'JobExecution', ], ], ], 'DescribeJobRequest' => [ 'type' => 'structure', 'required' => [ 'jobId', ], 'members' => [ 'jobId' => [ 'shape' => 'JobId', 'location' => 'uri', 'locationName' => 'jobId', ], ], ], 'DescribeJobResponse' => [ 'type' => 'structure', 'members' => [ 'documentSource' => [ 'shape' => 'JobDocumentSource', ], 'job' => [ 'shape' => 'Job', ], ], ], 'DescribeRoleAliasRequest' => [ 'type' => 'structure', 'required' => [ 'roleAlias', ], 'members' => [ 'roleAlias' => [ 'shape' => 'RoleAlias', 'location' => 'uri', 'locationName' => 'roleAlias', ], ], ], 'DescribeRoleAliasResponse' => [ 'type' => 'structure', 'members' => [ 'roleAliasDescription' => [ 'shape' => 'RoleAliasDescription', ], ], ], 'DescribeScheduledAuditRequest' => [ 'type' => 'structure', 'required' => [ 'scheduledAuditName', ], 'members' => [ 'scheduledAuditName' => [ 'shape' => 'ScheduledAuditName', 'location' => 'uri', 'locationName' => 'scheduledAuditName', ], ], ], 'DescribeScheduledAuditResponse' => [ 'type' => 'structure', 'members' => [ 'frequency' => [ 'shape' => 'AuditFrequency', ], 'dayOfMonth' => [ 'shape' => 'DayOfMonth', ], 'dayOfWeek' => [ 'shape' => 'DayOfWeek', ], 'targetCheckNames' => [ 'shape' => 'TargetAuditCheckNames', ], 'scheduledAuditName' => [ 'shape' => 'ScheduledAuditName', ], 'scheduledAuditArn' => [ 'shape' => 'ScheduledAuditArn', ], ], ], 'DescribeSecurityProfileRequest' => [ 'type' => 'structure', 'required' => [ 'securityProfileName', ], 'members' => [ 'securityProfileName' => [ 'shape' => 'SecurityProfileName', 'location' => 'uri', 'locationName' => 'securityProfileName', ], ], ], 'DescribeSecurityProfileResponse' => [ 'type' => 'structure', 'members' => [ 'securityProfileName' => [ 'shape' => 'SecurityProfileName', ], 'securityProfileArn' => [ 'shape' => 'SecurityProfileArn', ], 'securityProfileDescription' => [ 'shape' => 'SecurityProfileDescription', ], 'behaviors' => [ 'shape' => 'Behaviors', ], 'alertTargets' => [ 'shape' => 'AlertTargets', ], 'additionalMetricsToRetain' => [ 'shape' => 'AdditionalMetricsToRetainList', ], 'version' => [ 'shape' => 'Version', ], 'creationDate' => [ 'shape' => 'Timestamp', ], 'lastModifiedDate' => [ 'shape' => 'Timestamp', ], ], ], 'DescribeStreamRequest' => [ 'type' => 'structure', 'required' => [ 'streamId', ], 'members' => [ 'streamId' => [ 'shape' => 'StreamId', 'location' => 'uri', 'locationName' => 'streamId', ], ], ], 'DescribeStreamResponse' => [ 'type' => 'structure', 'members' => [ 'streamInfo' => [ 'shape' => 'StreamInfo', ], ], ], 'DescribeThingGroupRequest' => [ 'type' => 'structure', 'required' => [ 'thingGroupName', ], 'members' => [ 'thingGroupName' => [ 'shape' => 'ThingGroupName', 'location' => 'uri', 'locationName' => 'thingGroupName', ], ], ], 'DescribeThingGroupResponse' => [ 'type' => 'structure', 'members' => [ 'thingGroupName' => [ 'shape' => 'ThingGroupName', ], 'thingGroupId' => [ 'shape' => 'ThingGroupId', ], 'thingGroupArn' => [ 'shape' => 'ThingGroupArn', ], 'version' => [ 'shape' => 'Version', ], 'thingGroupProperties' => [ 'shape' => 'ThingGroupProperties', ], 'thingGroupMetadata' => [ 'shape' => 'ThingGroupMetadata', ], 'indexName' => [ 'shape' => 'IndexName', ], 'queryString' => [ 'shape' => 'QueryString', ], 'queryVersion' => [ 'shape' => 'QueryVersion', ], 'status' => [ 'shape' => 'DynamicGroupStatus', ], ], ], 'DescribeThingRegistrationTaskRequest' => [ 'type' => 'structure', 'required' => [ 'taskId', ], 'members' => [ 'taskId' => [ 'shape' => 'TaskId', 'location' => 'uri', 'locationName' => 'taskId', ], ], ], 'DescribeThingRegistrationTaskResponse' => [ 'type' => 'structure', 'members' => [ 'taskId' => [ 'shape' => 'TaskId', ], 'creationDate' => [ 'shape' => 'CreationDate', ], 'lastModifiedDate' => [ 'shape' => 'LastModifiedDate', ], 'templateBody' => [ 'shape' => 'TemplateBody', ], 'inputFileBucket' => [ 'shape' => 'RegistryS3BucketName', ], 'inputFileKey' => [ 'shape' => 'RegistryS3KeyName', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'status' => [ 'shape' => 'Status', ], 'message' => [ 'shape' => 'ErrorMessage', ], 'successCount' => [ 'shape' => 'Count', ], 'failureCount' => [ 'shape' => 'Count', ], 'percentageProgress' => [ 'shape' => 'Percentage', ], ], ], 'DescribeThingRequest' => [ 'type' => 'structure', 'required' => [ 'thingName', ], 'members' => [ 'thingName' => [ 'shape' => 'ThingName', 'location' => 'uri', 'locationName' => 'thingName', ], ], ], 'DescribeThingResponse' => [ 'type' => 'structure', 'members' => [ 'defaultClientId' => [ 'shape' => 'ClientId', ], 'thingName' => [ 'shape' => 'ThingName', ], 'thingId' => [ 'shape' => 'ThingId', ], 'thingArn' => [ 'shape' => 'ThingArn', ], 'thingTypeName' => [ 'shape' => 'ThingTypeName', ], 'attributes' => [ 'shape' => 'Attributes', ], 'version' => [ 'shape' => 'Version', ], 'billingGroupName' => [ 'shape' => 'BillingGroupName', ], ], ], 'DescribeThingTypeRequest' => [ 'type' => 'structure', 'required' => [ 'thingTypeName', ], 'members' => [ 'thingTypeName' => [ 'shape' => 'ThingTypeName', 'location' => 'uri', 'locationName' => 'thingTypeName', ], ], ], 'DescribeThingTypeResponse' => [ 'type' => 'structure', 'members' => [ 'thingTypeName' => [ 'shape' => 'ThingTypeName', ], 'thingTypeId' => [ 'shape' => 'ThingTypeId', ], 'thingTypeArn' => [ 'shape' => 'ThingTypeArn', ], 'thingTypeProperties' => [ 'shape' => 'ThingTypeProperties', ], 'thingTypeMetadata' => [ 'shape' => 'ThingTypeMetadata', ], ], ], 'Description' => [ 'type' => 'string', ], 'Destination' => [ 'type' => 'structure', 'members' => [ 's3Destination' => [ 'shape' => 'S3Destination', ], ], ], 'DetachPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'policyName', 'target', ], 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', 'location' => 'uri', 'locationName' => 'policyName', ], 'target' => [ 'shape' => 'PolicyTarget', ], ], ], 'DetachPrincipalPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'policyName', 'principal', ], 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', 'location' => 'uri', 'locationName' => 'policyName', ], 'principal' => [ 'shape' => 'Principal', 'location' => 'header', 'locationName' => 'x-amzn-iot-principal', ], ], ], 'DetachSecurityProfileRequest' => [ 'type' => 'structure', 'required' => [ 'securityProfileName', 'securityProfileTargetArn', ], 'members' => [ 'securityProfileName' => [ 'shape' => 'SecurityProfileName', 'location' => 'uri', 'locationName' => 'securityProfileName', ], 'securityProfileTargetArn' => [ 'shape' => 'SecurityProfileTargetArn', 'location' => 'querystring', 'locationName' => 'securityProfileTargetArn', ], ], ], 'DetachSecurityProfileResponse' => [ 'type' => 'structure', 'members' => [], ], 'DetachThingPrincipalRequest' => [ 'type' => 'structure', 'required' => [ 'thingName', 'principal', ], 'members' => [ 'thingName' => [ 'shape' => 'ThingName', 'location' => 'uri', 'locationName' => 'thingName', ], 'principal' => [ 'shape' => 'Principal', 'location' => 'header', 'locationName' => 'x-amzn-principal', ], ], ], 'DetachThingPrincipalResponse' => [ 'type' => 'structure', 'members' => [], ], 'DetailsKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9:_-]+', ], 'DetailsMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'DetailsKey', ], 'value' => [ 'shape' => 'DetailsValue', ], ], 'DetailsValue' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '[^\\p{C}]*+', ], 'DisableAllLogs' => [ 'type' => 'boolean', ], 'DisableTopicRuleRequest' => [ 'type' => 'structure', 'required' => [ 'ruleName', ], 'members' => [ 'ruleName' => [ 'shape' => 'RuleName', 'location' => 'uri', 'locationName' => 'ruleName', ], ], ], 'DurationSeconds' => [ 'type' => 'integer', ], 'DynamicGroupStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'BUILDING', 'REBUILDING', ], ], 'DynamoDBAction' => [ 'type' => 'structure', 'required' => [ 'tableName', 'roleArn', 'hashKeyField', 'hashKeyValue', ], 'members' => [ 'tableName' => [ 'shape' => 'TableName', ], 'roleArn' => [ 'shape' => 'AwsArn', ], 'operation' => [ 'shape' => 'DynamoOperation', ], 'hashKeyField' => [ 'shape' => 'HashKeyField', ], 'hashKeyValue' => [ 'shape' => 'HashKeyValue', ], 'hashKeyType' => [ 'shape' => 'DynamoKeyType', ], 'rangeKeyField' => [ 'shape' => 'RangeKeyField', ], 'rangeKeyValue' => [ 'shape' => 'RangeKeyValue', ], 'rangeKeyType' => [ 'shape' => 'DynamoKeyType', ], 'payloadField' => [ 'shape' => 'PayloadField', ], ], ], 'DynamoDBv2Action' => [ 'type' => 'structure', 'required' => [ 'roleArn', 'putItem', ], 'members' => [ 'roleArn' => [ 'shape' => 'AwsArn', ], 'putItem' => [ 'shape' => 'PutItemInput', ], ], ], 'DynamoKeyType' => [ 'type' => 'string', 'enum' => [ 'STRING', 'NUMBER', ], ], 'DynamoOperation' => [ 'type' => 'string', ], 'EffectivePolicies' => [ 'type' => 'list', 'member' => [ 'shape' => 'EffectivePolicy', ], ], 'EffectivePolicy' => [ 'type' => 'structure', 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', ], 'policyArn' => [ 'shape' => 'PolicyArn', ], 'policyDocument' => [ 'shape' => 'PolicyDocument', ], ], ], 'ElasticsearchAction' => [ 'type' => 'structure', 'required' => [ 'roleArn', 'endpoint', 'index', 'type', 'id', ], 'members' => [ 'roleArn' => [ 'shape' => 'AwsArn', ], 'endpoint' => [ 'shape' => 'ElasticsearchEndpoint', ], 'index' => [ 'shape' => 'ElasticsearchIndex', ], 'type' => [ 'shape' => 'ElasticsearchType', ], 'id' => [ 'shape' => 'ElasticsearchId', ], ], ], 'ElasticsearchEndpoint' => [ 'type' => 'string', 'pattern' => 'https?://.*', ], 'ElasticsearchId' => [ 'type' => 'string', ], 'ElasticsearchIndex' => [ 'type' => 'string', ], 'ElasticsearchType' => [ 'type' => 'string', ], 'EnableTopicRuleRequest' => [ 'type' => 'structure', 'required' => [ 'ruleName', ], 'members' => [ 'ruleName' => [ 'shape' => 'RuleName', 'location' => 'uri', 'locationName' => 'ruleName', ], ], ], 'Enabled' => [ 'type' => 'boolean', ], 'EndpointAddress' => [ 'type' => 'string', ], 'EndpointType' => [ 'type' => 'string', ], 'ErrorCode' => [ 'type' => 'string', ], 'ErrorInfo' => [ 'type' => 'structure', 'members' => [ 'code' => [ 'shape' => 'Code', ], 'message' => [ 'shape' => 'OTAUpdateErrorMessage', ], ], ], 'ErrorMessage' => [ 'type' => 'string', 'max' => 2048, ], 'EvaluationStatistic' => [ 'type' => 'string', 'pattern' => '(p0|p0\\.1|p0\\.01|p1|p10|p50|p90|p99|p99\\.9|p99\\.99|p100)', ], 'EventConfigurations' => [ 'type' => 'map', 'key' => [ 'shape' => 'EventType', ], 'value' => [ 'shape' => 'Configuration', ], ], 'EventType' => [ 'type' => 'string', 'enum' => [ 'THING', 'THING_GROUP', 'THING_TYPE', 'THING_GROUP_MEMBERSHIP', 'THING_GROUP_HIERARCHY', 'THING_TYPE_ASSOCIATION', 'JOB', 'JOB_EXECUTION', 'POLICY', 'CERTIFICATE', 'CA_CERTIFICATE', ], ], 'ExecutionNamePrefix' => [ 'type' => 'string', ], 'ExecutionNumber' => [ 'type' => 'long', ], 'ExpectedVersion' => [ 'type' => 'long', ], 'ExpiresInSec' => [ 'type' => 'long', 'max' => 3600, 'min' => 60, ], 'ExplicitDeny' => [ 'type' => 'structure', 'members' => [ 'policies' => [ 'shape' => 'Policies', ], ], ], 'ExponentialRolloutRate' => [ 'type' => 'structure', 'required' => [ 'baseRatePerMinute', 'incrementFactor', 'rateIncreaseCriteria', ], 'members' => [ 'baseRatePerMinute' => [ 'shape' => 'RolloutRatePerMinute', ], 'incrementFactor' => [ 'shape' => 'IncrementFactor', ], 'rateIncreaseCriteria' => [ 'shape' => 'RateIncreaseCriteria', ], ], ], 'FailedChecksCount' => [ 'type' => 'integer', ], 'FailedThings' => [ 'type' => 'integer', ], 'FileId' => [ 'type' => 'integer', 'max' => 255, 'min' => 0, ], 'FileLocation' => [ 'type' => 'structure', 'members' => [ 'stream' => [ 'shape' => 'Stream', ], 's3Location' => [ 'shape' => 'S3Location', ], ], ], 'FileName' => [ 'type' => 'string', ], 'FirehoseAction' => [ 'type' => 'structure', 'required' => [ 'roleArn', 'deliveryStreamName', ], 'members' => [ 'roleArn' => [ 'shape' => 'AwsArn', ], 'deliveryStreamName' => [ 'shape' => 'DeliveryStreamName', ], 'separator' => [ 'shape' => 'FirehoseSeparator', ], ], ], 'FirehoseSeparator' => [ 'type' => 'string', 'pattern' => '([\\n\\t])|(\\r\\n)|(,)', ], 'Flag' => [ 'type' => 'boolean', ], 'ForceDelete' => [ 'type' => 'boolean', ], 'ForceDeleteAWSJob' => [ 'type' => 'boolean', ], 'ForceFlag' => [ 'type' => 'boolean', ], 'Forced' => [ 'type' => 'boolean', ], 'FunctionArn' => [ 'type' => 'string', ], 'GEMaxResults' => [ 'type' => 'integer', 'max' => 10000, 'min' => 1, ], 'GenerationId' => [ 'type' => 'string', ], 'GetEffectivePoliciesRequest' => [ 'type' => 'structure', 'members' => [ 'principal' => [ 'shape' => 'Principal', ], 'cognitoIdentityPoolId' => [ 'shape' => 'CognitoIdentityPoolId', ], 'thingName' => [ 'shape' => 'ThingName', 'location' => 'querystring', 'locationName' => 'thingName', ], ], ], 'GetEffectivePoliciesResponse' => [ 'type' => 'structure', 'members' => [ 'effectivePolicies' => [ 'shape' => 'EffectivePolicies', ], ], ], 'GetIndexingConfigurationRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetIndexingConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'thingIndexingConfiguration' => [ 'shape' => 'ThingIndexingConfiguration', ], 'thingGroupIndexingConfiguration' => [ 'shape' => 'ThingGroupIndexingConfiguration', ], ], ], 'GetJobDocumentRequest' => [ 'type' => 'structure', 'required' => [ 'jobId', ], 'members' => [ 'jobId' => [ 'shape' => 'JobId', 'location' => 'uri', 'locationName' => 'jobId', ], ], ], 'GetJobDocumentResponse' => [ 'type' => 'structure', 'members' => [ 'document' => [ 'shape' => 'JobDocument', ], ], ], 'GetLoggingOptionsRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetLoggingOptionsResponse' => [ 'type' => 'structure', 'members' => [ 'roleArn' => [ 'shape' => 'AwsArn', ], 'logLevel' => [ 'shape' => 'LogLevel', ], ], ], 'GetOTAUpdateRequest' => [ 'type' => 'structure', 'required' => [ 'otaUpdateId', ], 'members' => [ 'otaUpdateId' => [ 'shape' => 'OTAUpdateId', 'location' => 'uri', 'locationName' => 'otaUpdateId', ], ], ], 'GetOTAUpdateResponse' => [ 'type' => 'structure', 'members' => [ 'otaUpdateInfo' => [ 'shape' => 'OTAUpdateInfo', ], ], ], 'GetPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'policyName', ], 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', 'location' => 'uri', 'locationName' => 'policyName', ], ], ], 'GetPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', ], 'policyArn' => [ 'shape' => 'PolicyArn', ], 'policyDocument' => [ 'shape' => 'PolicyDocument', ], 'defaultVersionId' => [ 'shape' => 'PolicyVersionId', ], 'creationDate' => [ 'shape' => 'DateType', ], 'lastModifiedDate' => [ 'shape' => 'DateType', ], 'generationId' => [ 'shape' => 'GenerationId', ], ], ], 'GetPolicyVersionRequest' => [ 'type' => 'structure', 'required' => [ 'policyName', 'policyVersionId', ], 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', 'location' => 'uri', 'locationName' => 'policyName', ], 'policyVersionId' => [ 'shape' => 'PolicyVersionId', 'location' => 'uri', 'locationName' => 'policyVersionId', ], ], ], 'GetPolicyVersionResponse' => [ 'type' => 'structure', 'members' => [ 'policyArn' => [ 'shape' => 'PolicyArn', ], 'policyName' => [ 'shape' => 'PolicyName', ], 'policyDocument' => [ 'shape' => 'PolicyDocument', ], 'policyVersionId' => [ 'shape' => 'PolicyVersionId', ], 'isDefaultVersion' => [ 'shape' => 'IsDefaultVersion', ], 'creationDate' => [ 'shape' => 'DateType', ], 'lastModifiedDate' => [ 'shape' => 'DateType', ], 'generationId' => [ 'shape' => 'GenerationId', ], ], ], 'GetRegistrationCodeRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetRegistrationCodeResponse' => [ 'type' => 'structure', 'members' => [ 'registrationCode' => [ 'shape' => 'RegistrationCode', ], ], ], 'GetStatisticsRequest' => [ 'type' => 'structure', 'required' => [ 'queryString', ], 'members' => [ 'indexName' => [ 'shape' => 'IndexName', ], 'queryString' => [ 'shape' => 'QueryString', ], 'aggregationField' => [ 'shape' => 'AggregationField', ], 'queryVersion' => [ 'shape' => 'QueryVersion', ], ], ], 'GetStatisticsResponse' => [ 'type' => 'structure', 'members' => [ 'statistics' => [ 'shape' => 'Statistics', ], ], ], 'GetTopicRuleRequest' => [ 'type' => 'structure', 'required' => [ 'ruleName', ], 'members' => [ 'ruleName' => [ 'shape' => 'RuleName', 'location' => 'uri', 'locationName' => 'ruleName', ], ], ], 'GetTopicRuleResponse' => [ 'type' => 'structure', 'members' => [ 'ruleArn' => [ 'shape' => 'RuleArn', ], 'rule' => [ 'shape' => 'TopicRule', ], ], ], 'GetV2LoggingOptionsRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetV2LoggingOptionsResponse' => [ 'type' => 'structure', 'members' => [ 'roleArn' => [ 'shape' => 'AwsArn', ], 'defaultLogLevel' => [ 'shape' => 'LogLevel', ], 'disableAllLogs' => [ 'shape' => 'DisableAllLogs', ], ], ], 'GroupNameAndArn' => [ 'type' => 'structure', 'members' => [ 'groupName' => [ 'shape' => 'ThingGroupName', ], 'groupArn' => [ 'shape' => 'ThingGroupArn', ], ], ], 'HashAlgorithm' => [ 'type' => 'string', ], 'HashKeyField' => [ 'type' => 'string', ], 'HashKeyValue' => [ 'type' => 'string', ], 'ImplicitDeny' => [ 'type' => 'structure', 'members' => [ 'policies' => [ 'shape' => 'Policies', ], ], ], 'InProgressChecksCount' => [ 'type' => 'integer', ], 'InProgressThings' => [ 'type' => 'integer', ], 'InProgressTimeoutInMinutes' => [ 'type' => 'long', ], 'IncrementFactor' => [ 'type' => 'double', 'max' => 5, 'min' => 1, ], 'IndexName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9:_-]+', ], 'IndexNamesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IndexName', ], ], 'IndexNotReadyException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'IndexSchema' => [ 'type' => 'string', ], 'IndexStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'BUILDING', 'REBUILDING', ], ], 'InlineDocument' => [ 'type' => 'string', ], 'InputName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'InternalException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'InternalFailureException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'InvalidAggregationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidQueryException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidResponseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidStateTransitionException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'IotAnalyticsAction' => [ 'type' => 'structure', 'members' => [ 'channelArn' => [ 'shape' => 'AwsArn', ], 'channelName' => [ 'shape' => 'ChannelName', ], 'roleArn' => [ 'shape' => 'AwsArn', ], ], ], 'IotEventsAction' => [ 'type' => 'structure', 'required' => [ 'inputName', 'roleArn', ], 'members' => [ 'inputName' => [ 'shape' => 'InputName', ], 'messageId' => [ 'shape' => 'MessageId', ], 'roleArn' => [ 'shape' => 'AwsArn', ], ], ], 'IsAuthenticated' => [ 'type' => 'boolean', ], 'IsDefaultVersion' => [ 'type' => 'boolean', ], 'IsDisabled' => [ 'type' => 'boolean', ], 'Job' => [ 'type' => 'structure', 'members' => [ 'jobArn' => [ 'shape' => 'JobArn', ], 'jobId' => [ 'shape' => 'JobId', ], 'targetSelection' => [ 'shape' => 'TargetSelection', ], 'status' => [ 'shape' => 'JobStatus', ], 'forceCanceled' => [ 'shape' => 'Forced', ], 'reasonCode' => [ 'shape' => 'ReasonCode', ], 'comment' => [ 'shape' => 'Comment', ], 'targets' => [ 'shape' => 'JobTargets', ], 'description' => [ 'shape' => 'JobDescription', ], 'presignedUrlConfig' => [ 'shape' => 'PresignedUrlConfig', ], 'jobExecutionsRolloutConfig' => [ 'shape' => 'JobExecutionsRolloutConfig', ], 'abortConfig' => [ 'shape' => 'AbortConfig', ], 'createdAt' => [ 'shape' => 'DateType', ], 'lastUpdatedAt' => [ 'shape' => 'DateType', ], 'completedAt' => [ 'shape' => 'DateType', ], 'jobProcessDetails' => [ 'shape' => 'JobProcessDetails', ], 'timeoutConfig' => [ 'shape' => 'TimeoutConfig', ], ], ], 'JobArn' => [ 'type' => 'string', ], 'JobDescription' => [ 'type' => 'string', 'max' => 2028, 'pattern' => '[^\\p{C}]+', ], 'JobDocument' => [ 'type' => 'string', 'max' => 32768, ], 'JobDocumentSource' => [ 'type' => 'string', 'max' => 1350, 'min' => 1, ], 'JobExecution' => [ 'type' => 'structure', 'members' => [ 'jobId' => [ 'shape' => 'JobId', ], 'status' => [ 'shape' => 'JobExecutionStatus', ], 'forceCanceled' => [ 'shape' => 'Forced', ], 'statusDetails' => [ 'shape' => 'JobExecutionStatusDetails', ], 'thingArn' => [ 'shape' => 'ThingArn', ], 'queuedAt' => [ 'shape' => 'DateType', ], 'startedAt' => [ 'shape' => 'DateType', ], 'lastUpdatedAt' => [ 'shape' => 'DateType', ], 'executionNumber' => [ 'shape' => 'ExecutionNumber', ], 'versionNumber' => [ 'shape' => 'VersionNumber', ], 'approximateSecondsBeforeTimedOut' => [ 'shape' => 'ApproximateSecondsBeforeTimedOut', ], ], ], 'JobExecutionFailureType' => [ 'type' => 'string', 'enum' => [ 'FAILED', 'REJECTED', 'TIMED_OUT', 'ALL', ], ], 'JobExecutionStatus' => [ 'type' => 'string', 'enum' => [ 'QUEUED', 'IN_PROGRESS', 'SUCCEEDED', 'FAILED', 'TIMED_OUT', 'REJECTED', 'REMOVED', 'CANCELED', ], ], 'JobExecutionStatusDetails' => [ 'type' => 'structure', 'members' => [ 'detailsMap' => [ 'shape' => 'DetailsMap', ], ], ], 'JobExecutionSummary' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'JobExecutionStatus', ], 'queuedAt' => [ 'shape' => 'DateType', ], 'startedAt' => [ 'shape' => 'DateType', ], 'lastUpdatedAt' => [ 'shape' => 'DateType', ], 'executionNumber' => [ 'shape' => 'ExecutionNumber', ], ], ], 'JobExecutionSummaryForJob' => [ 'type' => 'structure', 'members' => [ 'thingArn' => [ 'shape' => 'ThingArn', ], 'jobExecutionSummary' => [ 'shape' => 'JobExecutionSummary', ], ], ], 'JobExecutionSummaryForJobList' => [ 'type' => 'list', 'member' => [ 'shape' => 'JobExecutionSummaryForJob', ], ], 'JobExecutionSummaryForThing' => [ 'type' => 'structure', 'members' => [ 'jobId' => [ 'shape' => 'JobId', ], 'jobExecutionSummary' => [ 'shape' => 'JobExecutionSummary', ], ], ], 'JobExecutionSummaryForThingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'JobExecutionSummaryForThing', ], ], 'JobExecutionsRolloutConfig' => [ 'type' => 'structure', 'members' => [ 'maximumPerMinute' => [ 'shape' => 'MaxJobExecutionsPerMin', ], 'exponentialRate' => [ 'shape' => 'ExponentialRolloutRate', ], ], ], 'JobId' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9_-]+', ], 'JobProcessDetails' => [ 'type' => 'structure', 'members' => [ 'processingTargets' => [ 'shape' => 'ProcessingTargetNameList', ], 'numberOfCanceledThings' => [ 'shape' => 'CanceledThings', ], 'numberOfSucceededThings' => [ 'shape' => 'SucceededThings', ], 'numberOfFailedThings' => [ 'shape' => 'FailedThings', ], 'numberOfRejectedThings' => [ 'shape' => 'RejectedThings', ], 'numberOfQueuedThings' => [ 'shape' => 'QueuedThings', ], 'numberOfInProgressThings' => [ 'shape' => 'InProgressThings', ], 'numberOfRemovedThings' => [ 'shape' => 'RemovedThings', ], 'numberOfTimedOutThings' => [ 'shape' => 'TimedOutThings', ], ], ], 'JobStatus' => [ 'type' => 'string', 'enum' => [ 'IN_PROGRESS', 'CANCELED', 'COMPLETED', 'DELETION_IN_PROGRESS', ], ], 'JobSummary' => [ 'type' => 'structure', 'members' => [ 'jobArn' => [ 'shape' => 'JobArn', ], 'jobId' => [ 'shape' => 'JobId', ], 'thingGroupId' => [ 'shape' => 'ThingGroupId', ], 'targetSelection' => [ 'shape' => 'TargetSelection', ], 'status' => [ 'shape' => 'JobStatus', ], 'createdAt' => [ 'shape' => 'DateType', ], 'lastUpdatedAt' => [ 'shape' => 'DateType', ], 'completedAt' => [ 'shape' => 'DateType', ], ], ], 'JobSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'JobSummary', ], ], 'JobTargets' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetArn', ], 'min' => 1, ], 'JsonDocument' => [ 'type' => 'string', ], 'Key' => [ 'type' => 'string', ], 'KeyName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9:_-]+', ], 'KeyPair' => [ 'type' => 'structure', 'members' => [ 'PublicKey' => [ 'shape' => 'PublicKey', ], 'PrivateKey' => [ 'shape' => 'PrivateKey', ], ], ], 'KeyValue' => [ 'type' => 'string', 'max' => 5120, ], 'KinesisAction' => [ 'type' => 'structure', 'required' => [ 'roleArn', 'streamName', ], 'members' => [ 'roleArn' => [ 'shape' => 'AwsArn', ], 'streamName' => [ 'shape' => 'StreamName', ], 'partitionKey' => [ 'shape' => 'PartitionKey', ], ], ], 'LambdaAction' => [ 'type' => 'structure', 'required' => [ 'functionArn', ], 'members' => [ 'functionArn' => [ 'shape' => 'FunctionArn', ], ], ], 'LaserMaxResults' => [ 'type' => 'integer', 'max' => 250, 'min' => 1, ], 'LastModifiedDate' => [ 'type' => 'timestamp', ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 410, ], 'exception' => true, ], 'ListActiveViolationsRequest' => [ 'type' => 'structure', 'members' => [ 'thingName' => [ 'shape' => 'ThingName', 'location' => 'querystring', 'locationName' => 'thingName', ], 'securityProfileName' => [ 'shape' => 'SecurityProfileName', 'location' => 'querystring', 'locationName' => 'securityProfileName', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListActiveViolationsResponse' => [ 'type' => 'structure', 'members' => [ 'activeViolations' => [ 'shape' => 'ActiveViolations', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListAttachedPoliciesRequest' => [ 'type' => 'structure', 'required' => [ 'target', ], 'members' => [ 'target' => [ 'shape' => 'PolicyTarget', 'location' => 'uri', 'locationName' => 'target', ], 'recursive' => [ 'shape' => 'Recursive', 'location' => 'querystring', 'locationName' => 'recursive', ], 'marker' => [ 'shape' => 'Marker', 'location' => 'querystring', 'locationName' => 'marker', ], 'pageSize' => [ 'shape' => 'PageSize', 'location' => 'querystring', 'locationName' => 'pageSize', ], ], ], 'ListAttachedPoliciesResponse' => [ 'type' => 'structure', 'members' => [ 'policies' => [ 'shape' => 'Policies', ], 'nextMarker' => [ 'shape' => 'Marker', ], ], ], 'ListAuditFindingsRequest' => [ 'type' => 'structure', 'members' => [ 'taskId' => [ 'shape' => 'AuditTaskId', ], 'checkName' => [ 'shape' => 'AuditCheckName', ], 'resourceIdentifier' => [ 'shape' => 'ResourceIdentifier', ], 'maxResults' => [ 'shape' => 'MaxResults', ], 'nextToken' => [ 'shape' => 'NextToken', ], 'startTime' => [ 'shape' => 'Timestamp', ], 'endTime' => [ 'shape' => 'Timestamp', ], ], ], 'ListAuditFindingsResponse' => [ 'type' => 'structure', 'members' => [ 'findings' => [ 'shape' => 'AuditFindings', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListAuditTasksRequest' => [ 'type' => 'structure', 'required' => [ 'startTime', 'endTime', ], 'members' => [ 'startTime' => [ 'shape' => 'Timestamp', 'location' => 'querystring', 'locationName' => 'startTime', ], 'endTime' => [ 'shape' => 'Timestamp', 'location' => 'querystring', 'locationName' => 'endTime', ], 'taskType' => [ 'shape' => 'AuditTaskType', 'location' => 'querystring', 'locationName' => 'taskType', ], 'taskStatus' => [ 'shape' => 'AuditTaskStatus', 'location' => 'querystring', 'locationName' => 'taskStatus', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListAuditTasksResponse' => [ 'type' => 'structure', 'members' => [ 'tasks' => [ 'shape' => 'AuditTaskMetadataList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListAuthorizersRequest' => [ 'type' => 'structure', 'members' => [ 'pageSize' => [ 'shape' => 'PageSize', 'location' => 'querystring', 'locationName' => 'pageSize', ], 'marker' => [ 'shape' => 'Marker', 'location' => 'querystring', 'locationName' => 'marker', ], 'ascendingOrder' => [ 'shape' => 'AscendingOrder', 'location' => 'querystring', 'locationName' => 'isAscendingOrder', ], 'status' => [ 'shape' => 'AuthorizerStatus', 'location' => 'querystring', 'locationName' => 'status', ], ], ], 'ListAuthorizersResponse' => [ 'type' => 'structure', 'members' => [ 'authorizers' => [ 'shape' => 'Authorizers', ], 'nextMarker' => [ 'shape' => 'Marker', ], ], ], 'ListBillingGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'RegistryMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'namePrefixFilter' => [ 'shape' => 'BillingGroupName', 'location' => 'querystring', 'locationName' => 'namePrefixFilter', ], ], ], 'ListBillingGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'billingGroups' => [ 'shape' => 'BillingGroupNameAndArnList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListCACertificatesRequest' => [ 'type' => 'structure', 'members' => [ 'pageSize' => [ 'shape' => 'PageSize', 'location' => 'querystring', 'locationName' => 'pageSize', ], 'marker' => [ 'shape' => 'Marker', 'location' => 'querystring', 'locationName' => 'marker', ], 'ascendingOrder' => [ 'shape' => 'AscendingOrder', 'location' => 'querystring', 'locationName' => 'isAscendingOrder', ], ], ], 'ListCACertificatesResponse' => [ 'type' => 'structure', 'members' => [ 'certificates' => [ 'shape' => 'CACertificates', ], 'nextMarker' => [ 'shape' => 'Marker', ], ], ], 'ListCertificatesByCARequest' => [ 'type' => 'structure', 'required' => [ 'caCertificateId', ], 'members' => [ 'caCertificateId' => [ 'shape' => 'CertificateId', 'location' => 'uri', 'locationName' => 'caCertificateId', ], 'pageSize' => [ 'shape' => 'PageSize', 'location' => 'querystring', 'locationName' => 'pageSize', ], 'marker' => [ 'shape' => 'Marker', 'location' => 'querystring', 'locationName' => 'marker', ], 'ascendingOrder' => [ 'shape' => 'AscendingOrder', 'location' => 'querystring', 'locationName' => 'isAscendingOrder', ], ], ], 'ListCertificatesByCAResponse' => [ 'type' => 'structure', 'members' => [ 'certificates' => [ 'shape' => 'Certificates', ], 'nextMarker' => [ 'shape' => 'Marker', ], ], ], 'ListCertificatesRequest' => [ 'type' => 'structure', 'members' => [ 'pageSize' => [ 'shape' => 'PageSize', 'location' => 'querystring', 'locationName' => 'pageSize', ], 'marker' => [ 'shape' => 'Marker', 'location' => 'querystring', 'locationName' => 'marker', ], 'ascendingOrder' => [ 'shape' => 'AscendingOrder', 'location' => 'querystring', 'locationName' => 'isAscendingOrder', ], ], ], 'ListCertificatesResponse' => [ 'type' => 'structure', 'members' => [ 'certificates' => [ 'shape' => 'Certificates', ], 'nextMarker' => [ 'shape' => 'Marker', ], ], ], 'ListIndicesRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'QueryMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListIndicesResponse' => [ 'type' => 'structure', 'members' => [ 'indexNames' => [ 'shape' => 'IndexNamesList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListJobExecutionsForJobRequest' => [ 'type' => 'structure', 'required' => [ 'jobId', ], 'members' => [ 'jobId' => [ 'shape' => 'JobId', 'location' => 'uri', 'locationName' => 'jobId', ], 'status' => [ 'shape' => 'JobExecutionStatus', 'location' => 'querystring', 'locationName' => 'status', ], 'maxResults' => [ 'shape' => 'LaserMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListJobExecutionsForJobResponse' => [ 'type' => 'structure', 'members' => [ 'executionSummaries' => [ 'shape' => 'JobExecutionSummaryForJobList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListJobExecutionsForThingRequest' => [ 'type' => 'structure', 'required' => [ 'thingName', ], 'members' => [ 'thingName' => [ 'shape' => 'ThingName', 'location' => 'uri', 'locationName' => 'thingName', ], 'status' => [ 'shape' => 'JobExecutionStatus', 'location' => 'querystring', 'locationName' => 'status', ], 'maxResults' => [ 'shape' => 'LaserMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListJobExecutionsForThingResponse' => [ 'type' => 'structure', 'members' => [ 'executionSummaries' => [ 'shape' => 'JobExecutionSummaryForThingList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListJobsRequest' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'JobStatus', 'location' => 'querystring', 'locationName' => 'status', ], 'targetSelection' => [ 'shape' => 'TargetSelection', 'location' => 'querystring', 'locationName' => 'targetSelection', ], 'maxResults' => [ 'shape' => 'LaserMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'thingGroupName' => [ 'shape' => 'ThingGroupName', 'location' => 'querystring', 'locationName' => 'thingGroupName', ], 'thingGroupId' => [ 'shape' => 'ThingGroupId', 'location' => 'querystring', 'locationName' => 'thingGroupId', ], ], ], 'ListJobsResponse' => [ 'type' => 'structure', 'members' => [ 'jobs' => [ 'shape' => 'JobSummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListOTAUpdatesRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'otaUpdateStatus' => [ 'shape' => 'OTAUpdateStatus', 'location' => 'querystring', 'locationName' => 'otaUpdateStatus', ], ], ], 'ListOTAUpdatesResponse' => [ 'type' => 'structure', 'members' => [ 'otaUpdates' => [ 'shape' => 'OTAUpdatesSummary', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListOutgoingCertificatesRequest' => [ 'type' => 'structure', 'members' => [ 'pageSize' => [ 'shape' => 'PageSize', 'location' => 'querystring', 'locationName' => 'pageSize', ], 'marker' => [ 'shape' => 'Marker', 'location' => 'querystring', 'locationName' => 'marker', ], 'ascendingOrder' => [ 'shape' => 'AscendingOrder', 'location' => 'querystring', 'locationName' => 'isAscendingOrder', ], ], ], 'ListOutgoingCertificatesResponse' => [ 'type' => 'structure', 'members' => [ 'outgoingCertificates' => [ 'shape' => 'OutgoingCertificates', ], 'nextMarker' => [ 'shape' => 'Marker', ], ], ], 'ListPoliciesRequest' => [ 'type' => 'structure', 'members' => [ 'marker' => [ 'shape' => 'Marker', 'location' => 'querystring', 'locationName' => 'marker', ], 'pageSize' => [ 'shape' => 'PageSize', 'location' => 'querystring', 'locationName' => 'pageSize', ], 'ascendingOrder' => [ 'shape' => 'AscendingOrder', 'location' => 'querystring', 'locationName' => 'isAscendingOrder', ], ], ], 'ListPoliciesResponse' => [ 'type' => 'structure', 'members' => [ 'policies' => [ 'shape' => 'Policies', ], 'nextMarker' => [ 'shape' => 'Marker', ], ], ], 'ListPolicyPrincipalsRequest' => [ 'type' => 'structure', 'required' => [ 'policyName', ], 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', 'location' => 'header', 'locationName' => 'x-amzn-iot-policy', ], 'marker' => [ 'shape' => 'Marker', 'location' => 'querystring', 'locationName' => 'marker', ], 'pageSize' => [ 'shape' => 'PageSize', 'location' => 'querystring', 'locationName' => 'pageSize', ], 'ascendingOrder' => [ 'shape' => 'AscendingOrder', 'location' => 'querystring', 'locationName' => 'isAscendingOrder', ], ], ], 'ListPolicyPrincipalsResponse' => [ 'type' => 'structure', 'members' => [ 'principals' => [ 'shape' => 'Principals', ], 'nextMarker' => [ 'shape' => 'Marker', ], ], ], 'ListPolicyVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'policyName', ], 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', 'location' => 'uri', 'locationName' => 'policyName', ], ], ], 'ListPolicyVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'policyVersions' => [ 'shape' => 'PolicyVersions', ], ], ], 'ListPrincipalPoliciesRequest' => [ 'type' => 'structure', 'required' => [ 'principal', ], 'members' => [ 'principal' => [ 'shape' => 'Principal', 'location' => 'header', 'locationName' => 'x-amzn-iot-principal', ], 'marker' => [ 'shape' => 'Marker', 'location' => 'querystring', 'locationName' => 'marker', ], 'pageSize' => [ 'shape' => 'PageSize', 'location' => 'querystring', 'locationName' => 'pageSize', ], 'ascendingOrder' => [ 'shape' => 'AscendingOrder', 'location' => 'querystring', 'locationName' => 'isAscendingOrder', ], ], ], 'ListPrincipalPoliciesResponse' => [ 'type' => 'structure', 'members' => [ 'policies' => [ 'shape' => 'Policies', ], 'nextMarker' => [ 'shape' => 'Marker', ], ], ], 'ListPrincipalThingsRequest' => [ 'type' => 'structure', 'required' => [ 'principal', ], 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'RegistryMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'principal' => [ 'shape' => 'Principal', 'location' => 'header', 'locationName' => 'x-amzn-principal', ], ], ], 'ListPrincipalThingsResponse' => [ 'type' => 'structure', 'members' => [ 'things' => [ 'shape' => 'ThingNameList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListRoleAliasesRequest' => [ 'type' => 'structure', 'members' => [ 'pageSize' => [ 'shape' => 'PageSize', 'location' => 'querystring', 'locationName' => 'pageSize', ], 'marker' => [ 'shape' => 'Marker', 'location' => 'querystring', 'locationName' => 'marker', ], 'ascendingOrder' => [ 'shape' => 'AscendingOrder', 'location' => 'querystring', 'locationName' => 'isAscendingOrder', ], ], ], 'ListRoleAliasesResponse' => [ 'type' => 'structure', 'members' => [ 'roleAliases' => [ 'shape' => 'RoleAliases', ], 'nextMarker' => [ 'shape' => 'Marker', ], ], ], 'ListScheduledAuditsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListScheduledAuditsResponse' => [ 'type' => 'structure', 'members' => [ 'scheduledAudits' => [ 'shape' => 'ScheduledAuditMetadataList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListSecurityProfilesForTargetRequest' => [ 'type' => 'structure', 'required' => [ 'securityProfileTargetArn', ], 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'recursive' => [ 'shape' => 'Recursive', 'location' => 'querystring', 'locationName' => 'recursive', ], 'securityProfileTargetArn' => [ 'shape' => 'SecurityProfileTargetArn', 'location' => 'querystring', 'locationName' => 'securityProfileTargetArn', ], ], ], 'ListSecurityProfilesForTargetResponse' => [ 'type' => 'structure', 'members' => [ 'securityProfileTargetMappings' => [ 'shape' => 'SecurityProfileTargetMappings', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListSecurityProfilesRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListSecurityProfilesResponse' => [ 'type' => 'structure', 'members' => [ 'securityProfileIdentifiers' => [ 'shape' => 'SecurityProfileIdentifiers', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListStreamsRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'ascendingOrder' => [ 'shape' => 'AscendingOrder', 'location' => 'querystring', 'locationName' => 'isAscendingOrder', ], ], ], 'ListStreamsResponse' => [ 'type' => 'structure', 'members' => [ 'streams' => [ 'shape' => 'StreamsSummary', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'ResourceArn', 'location' => 'querystring', 'locationName' => 'resourceArn', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'tags' => [ 'shape' => 'TagList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTargetsForPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'policyName', ], 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', 'location' => 'uri', 'locationName' => 'policyName', ], 'marker' => [ 'shape' => 'Marker', 'location' => 'querystring', 'locationName' => 'marker', ], 'pageSize' => [ 'shape' => 'PageSize', 'location' => 'querystring', 'locationName' => 'pageSize', ], ], ], 'ListTargetsForPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'targets' => [ 'shape' => 'PolicyTargets', ], 'nextMarker' => [ 'shape' => 'Marker', ], ], ], 'ListTargetsForSecurityProfileRequest' => [ 'type' => 'structure', 'required' => [ 'securityProfileName', ], 'members' => [ 'securityProfileName' => [ 'shape' => 'SecurityProfileName', 'location' => 'uri', 'locationName' => 'securityProfileName', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListTargetsForSecurityProfileResponse' => [ 'type' => 'structure', 'members' => [ 'securityProfileTargets' => [ 'shape' => 'SecurityProfileTargets', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListThingGroupsForThingRequest' => [ 'type' => 'structure', 'required' => [ 'thingName', ], 'members' => [ 'thingName' => [ 'shape' => 'ThingName', 'location' => 'uri', 'locationName' => 'thingName', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'RegistryMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListThingGroupsForThingResponse' => [ 'type' => 'structure', 'members' => [ 'thingGroups' => [ 'shape' => 'ThingGroupNameAndArnList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListThingGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'RegistryMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'parentGroup' => [ 'shape' => 'ThingGroupName', 'location' => 'querystring', 'locationName' => 'parentGroup', ], 'namePrefixFilter' => [ 'shape' => 'ThingGroupName', 'location' => 'querystring', 'locationName' => 'namePrefixFilter', ], 'recursive' => [ 'shape' => 'RecursiveWithoutDefault', 'location' => 'querystring', 'locationName' => 'recursive', ], ], ], 'ListThingGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'thingGroups' => [ 'shape' => 'ThingGroupNameAndArnList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListThingPrincipalsRequest' => [ 'type' => 'structure', 'required' => [ 'thingName', ], 'members' => [ 'thingName' => [ 'shape' => 'ThingName', 'location' => 'uri', 'locationName' => 'thingName', ], ], ], 'ListThingPrincipalsResponse' => [ 'type' => 'structure', 'members' => [ 'principals' => [ 'shape' => 'Principals', ], ], ], 'ListThingRegistrationTaskReportsRequest' => [ 'type' => 'structure', 'required' => [ 'taskId', 'reportType', ], 'members' => [ 'taskId' => [ 'shape' => 'TaskId', 'location' => 'uri', 'locationName' => 'taskId', ], 'reportType' => [ 'shape' => 'ReportType', 'location' => 'querystring', 'locationName' => 'reportType', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'RegistryMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListThingRegistrationTaskReportsResponse' => [ 'type' => 'structure', 'members' => [ 'resourceLinks' => [ 'shape' => 'S3FileUrlList', ], 'reportType' => [ 'shape' => 'ReportType', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListThingRegistrationTasksRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'RegistryMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'status' => [ 'shape' => 'Status', 'location' => 'querystring', 'locationName' => 'status', ], ], ], 'ListThingRegistrationTasksResponse' => [ 'type' => 'structure', 'members' => [ 'taskIds' => [ 'shape' => 'TaskIdList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListThingTypesRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'RegistryMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'thingTypeName' => [ 'shape' => 'ThingTypeName', 'location' => 'querystring', 'locationName' => 'thingTypeName', ], ], ], 'ListThingTypesResponse' => [ 'type' => 'structure', 'members' => [ 'thingTypes' => [ 'shape' => 'ThingTypeList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListThingsInBillingGroupRequest' => [ 'type' => 'structure', 'required' => [ 'billingGroupName', ], 'members' => [ 'billingGroupName' => [ 'shape' => 'BillingGroupName', 'location' => 'uri', 'locationName' => 'billingGroupName', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'RegistryMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListThingsInBillingGroupResponse' => [ 'type' => 'structure', 'members' => [ 'things' => [ 'shape' => 'ThingNameList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListThingsInThingGroupRequest' => [ 'type' => 'structure', 'required' => [ 'thingGroupName', ], 'members' => [ 'thingGroupName' => [ 'shape' => 'ThingGroupName', 'location' => 'uri', 'locationName' => 'thingGroupName', ], 'recursive' => [ 'shape' => 'Recursive', 'location' => 'querystring', 'locationName' => 'recursive', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'RegistryMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListThingsInThingGroupResponse' => [ 'type' => 'structure', 'members' => [ 'things' => [ 'shape' => 'ThingNameList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListThingsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'RegistryMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'attributeName' => [ 'shape' => 'AttributeName', 'location' => 'querystring', 'locationName' => 'attributeName', ], 'attributeValue' => [ 'shape' => 'AttributeValue', 'location' => 'querystring', 'locationName' => 'attributeValue', ], 'thingTypeName' => [ 'shape' => 'ThingTypeName', 'location' => 'querystring', 'locationName' => 'thingTypeName', ], ], ], 'ListThingsResponse' => [ 'type' => 'structure', 'members' => [ 'things' => [ 'shape' => 'ThingAttributeList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTopicRulesRequest' => [ 'type' => 'structure', 'members' => [ 'topic' => [ 'shape' => 'Topic', 'location' => 'querystring', 'locationName' => 'topic', ], 'maxResults' => [ 'shape' => 'GEMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'ruleDisabled' => [ 'shape' => 'IsDisabled', 'location' => 'querystring', 'locationName' => 'ruleDisabled', ], ], ], 'ListTopicRulesResponse' => [ 'type' => 'structure', 'members' => [ 'rules' => [ 'shape' => 'TopicRuleList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListV2LoggingLevelsRequest' => [ 'type' => 'structure', 'members' => [ 'targetType' => [ 'shape' => 'LogTargetType', 'location' => 'querystring', 'locationName' => 'targetType', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'SkyfallMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListV2LoggingLevelsResponse' => [ 'type' => 'structure', 'members' => [ 'logTargetConfigurations' => [ 'shape' => 'LogTargetConfigurations', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListViolationEventsRequest' => [ 'type' => 'structure', 'required' => [ 'startTime', 'endTime', ], 'members' => [ 'startTime' => [ 'shape' => 'Timestamp', 'location' => 'querystring', 'locationName' => 'startTime', ], 'endTime' => [ 'shape' => 'Timestamp', 'location' => 'querystring', 'locationName' => 'endTime', ], 'thingName' => [ 'shape' => 'ThingName', 'location' => 'querystring', 'locationName' => 'thingName', ], 'securityProfileName' => [ 'shape' => 'SecurityProfileName', 'location' => 'querystring', 'locationName' => 'securityProfileName', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListViolationEventsResponse' => [ 'type' => 'structure', 'members' => [ 'violationEvents' => [ 'shape' => 'ViolationEvents', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'LogLevel' => [ 'type' => 'string', 'enum' => [ 'DEBUG', 'INFO', 'ERROR', 'WARN', 'DISABLED', ], ], 'LogTarget' => [ 'type' => 'structure', 'required' => [ 'targetType', ], 'members' => [ 'targetType' => [ 'shape' => 'LogTargetType', ], 'targetName' => [ 'shape' => 'LogTargetName', ], ], ], 'LogTargetConfiguration' => [ 'type' => 'structure', 'members' => [ 'logTarget' => [ 'shape' => 'LogTarget', ], 'logLevel' => [ 'shape' => 'LogLevel', ], ], ], 'LogTargetConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'LogTargetConfiguration', ], ], 'LogTargetName' => [ 'type' => 'string', ], 'LogTargetType' => [ 'type' => 'string', 'enum' => [ 'DEFAULT', 'THING_GROUP', ], ], 'LoggingOptionsPayload' => [ 'type' => 'structure', 'required' => [ 'roleArn', ], 'members' => [ 'roleArn' => [ 'shape' => 'AwsArn', ], 'logLevel' => [ 'shape' => 'LogLevel', ], ], ], 'MalformedPolicyException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'Marker' => [ 'type' => 'string', 'pattern' => '[A-Za-z0-9+/]+={0,2}', ], 'MaxJobExecutionsPerMin' => [ 'type' => 'integer', 'min' => 1, ], 'MaxResults' => [ 'type' => 'integer', 'max' => 250, 'min' => 1, ], 'MaximumPerMinute' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'Message' => [ 'type' => 'string', 'max' => 128, ], 'MessageFormat' => [ 'type' => 'string', 'enum' => [ 'RAW', 'JSON', ], ], 'MessageId' => [ 'type' => 'string', 'max' => 128, ], 'MetricValue' => [ 'type' => 'structure', 'members' => [ 'count' => [ 'shape' => 'UnsignedLong', ], 'cidrs' => [ 'shape' => 'Cidrs', ], 'ports' => [ 'shape' => 'Ports', ], ], ], 'MinimumNumberOfExecutedThings' => [ 'type' => 'integer', 'min' => 1, ], 'MissingContextValue' => [ 'type' => 'string', ], 'MissingContextValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'MissingContextValue', ], ], 'NextToken' => [ 'type' => 'string', ], 'NonCompliantChecksCount' => [ 'type' => 'integer', ], 'NonCompliantResource' => [ 'type' => 'structure', 'members' => [ 'resourceType' => [ 'shape' => 'ResourceType', ], 'resourceIdentifier' => [ 'shape' => 'ResourceIdentifier', ], 'additionalInfo' => [ 'shape' => 'StringMap', ], ], ], 'NonCompliantResourcesCount' => [ 'type' => 'long', ], 'NotConfiguredException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'NumberOfThings' => [ 'type' => 'integer', 'min' => 1, ], 'OTAUpdateArn' => [ 'type' => 'string', ], 'OTAUpdateDescription' => [ 'type' => 'string', 'max' => 2028, 'pattern' => '[^\\p{C}]+', ], 'OTAUpdateErrorMessage' => [ 'type' => 'string', ], 'OTAUpdateFile' => [ 'type' => 'structure', 'members' => [ 'fileName' => [ 'shape' => 'FileName', ], 'fileVersion' => [ 'shape' => 'OTAUpdateFileVersion', ], 'fileLocation' => [ 'shape' => 'FileLocation', ], 'codeSigning' => [ 'shape' => 'CodeSigning', ], 'attributes' => [ 'shape' => 'AttributesMap', ], ], ], 'OTAUpdateFileVersion' => [ 'type' => 'string', ], 'OTAUpdateFiles' => [ 'type' => 'list', 'member' => [ 'shape' => 'OTAUpdateFile', ], 'max' => 50, 'min' => 1, ], 'OTAUpdateId' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9_-]+', ], 'OTAUpdateInfo' => [ 'type' => 'structure', 'members' => [ 'otaUpdateId' => [ 'shape' => 'OTAUpdateId', ], 'otaUpdateArn' => [ 'shape' => 'OTAUpdateArn', ], 'creationDate' => [ 'shape' => 'DateType', ], 'lastModifiedDate' => [ 'shape' => 'DateType', ], 'description' => [ 'shape' => 'OTAUpdateDescription', ], 'targets' => [ 'shape' => 'Targets', ], 'awsJobExecutionsRolloutConfig' => [ 'shape' => 'AwsJobExecutionsRolloutConfig', ], 'targetSelection' => [ 'shape' => 'TargetSelection', ], 'otaUpdateFiles' => [ 'shape' => 'OTAUpdateFiles', ], 'otaUpdateStatus' => [ 'shape' => 'OTAUpdateStatus', ], 'awsIotJobId' => [ 'shape' => 'AwsIotJobId', ], 'awsIotJobArn' => [ 'shape' => 'AwsIotJobArn', ], 'errorInfo' => [ 'shape' => 'ErrorInfo', ], 'additionalParameters' => [ 'shape' => 'AdditionalParameterMap', ], ], ], 'OTAUpdateStatus' => [ 'type' => 'string', 'enum' => [ 'CREATE_PENDING', 'CREATE_IN_PROGRESS', 'CREATE_COMPLETE', 'CREATE_FAILED', ], ], 'OTAUpdateSummary' => [ 'type' => 'structure', 'members' => [ 'otaUpdateId' => [ 'shape' => 'OTAUpdateId', ], 'otaUpdateArn' => [ 'shape' => 'OTAUpdateArn', ], 'creationDate' => [ 'shape' => 'DateType', ], ], ], 'OTAUpdatesSummary' => [ 'type' => 'list', 'member' => [ 'shape' => 'OTAUpdateSummary', ], ], 'OptionalVersion' => [ 'type' => 'long', ], 'OutgoingCertificate' => [ 'type' => 'structure', 'members' => [ 'certificateArn' => [ 'shape' => 'CertificateArn', ], 'certificateId' => [ 'shape' => 'CertificateId', ], 'transferredTo' => [ 'shape' => 'AwsAccountId', ], 'transferDate' => [ 'shape' => 'DateType', ], 'transferMessage' => [ 'shape' => 'Message', ], 'creationDate' => [ 'shape' => 'DateType', ], ], ], 'OutgoingCertificates' => [ 'type' => 'list', 'member' => [ 'shape' => 'OutgoingCertificate', ], ], 'OverrideDynamicGroups' => [ 'type' => 'boolean', ], 'PageSize' => [ 'type' => 'integer', 'max' => 250, 'min' => 1, ], 'Parameter' => [ 'type' => 'string', ], 'Parameters' => [ 'type' => 'map', 'key' => [ 'shape' => 'Parameter', ], 'value' => [ 'shape' => 'Value', ], ], 'PartitionKey' => [ 'type' => 'string', ], 'PayloadField' => [ 'type' => 'string', ], 'Percentage' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'Platform' => [ 'type' => 'string', ], 'Policies' => [ 'type' => 'list', 'member' => [ 'shape' => 'Policy', ], ], 'Policy' => [ 'type' => 'structure', 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', ], 'policyArn' => [ 'shape' => 'PolicyArn', ], ], ], 'PolicyArn' => [ 'type' => 'string', ], 'PolicyDocument' => [ 'type' => 'string', ], 'PolicyDocuments' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyDocument', ], ], 'PolicyName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w+=,.@-]+', ], 'PolicyNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyName', ], ], 'PolicyTarget' => [ 'type' => 'string', ], 'PolicyTargets' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyTarget', ], ], 'PolicyVersion' => [ 'type' => 'structure', 'members' => [ 'versionId' => [ 'shape' => 'PolicyVersionId', ], 'isDefaultVersion' => [ 'shape' => 'IsDefaultVersion', ], 'createDate' => [ 'shape' => 'DateType', ], ], ], 'PolicyVersionId' => [ 'type' => 'string', 'pattern' => '[0-9]+', ], 'PolicyVersionIdentifier' => [ 'type' => 'structure', 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', ], 'policyVersionId' => [ 'shape' => 'PolicyVersionId', ], ], ], 'PolicyVersions' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyVersion', ], ], 'Port' => [ 'type' => 'integer', 'max' => 65535, 'min' => 0, ], 'Ports' => [ 'type' => 'list', 'member' => [ 'shape' => 'Port', ], ], 'Prefix' => [ 'type' => 'string', ], 'PresignedUrlConfig' => [ 'type' => 'structure', 'members' => [ 'roleArn' => [ 'shape' => 'RoleArn', ], 'expiresInSec' => [ 'shape' => 'ExpiresInSec', ], ], ], 'Principal' => [ 'type' => 'string', ], 'PrincipalArn' => [ 'type' => 'string', ], 'PrincipalId' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9]+', ], 'Principals' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrincipalArn', ], ], 'PrivateKey' => [ 'type' => 'string', 'min' => 1, 'sensitive' => true, ], 'ProcessingTargetName' => [ 'type' => 'string', ], 'ProcessingTargetNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProcessingTargetName', ], ], 'PublicKey' => [ 'type' => 'string', 'min' => 1, ], 'PublicKeyMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'KeyName', ], 'value' => [ 'shape' => 'KeyValue', ], ], 'PutItemInput' => [ 'type' => 'structure', 'required' => [ 'tableName', ], 'members' => [ 'tableName' => [ 'shape' => 'TableName', ], ], ], 'QueryMaxResults' => [ 'type' => 'integer', 'max' => 500, 'min' => 1, ], 'QueryString' => [ 'type' => 'string', 'min' => 1, ], 'QueryVersion' => [ 'type' => 'string', ], 'QueueUrl' => [ 'type' => 'string', ], 'QueuedThings' => [ 'type' => 'integer', ], 'RangeKeyField' => [ 'type' => 'string', ], 'RangeKeyValue' => [ 'type' => 'string', ], 'RateIncreaseCriteria' => [ 'type' => 'structure', 'members' => [ 'numberOfNotifiedThings' => [ 'shape' => 'NumberOfThings', ], 'numberOfSucceededThings' => [ 'shape' => 'NumberOfThings', ], ], ], 'ReasonCode' => [ 'type' => 'string', 'max' => 128, 'pattern' => '[\\p{Upper}\\p{Digit}_]+', ], 'ReasonForNonCompliance' => [ 'type' => 'string', ], 'ReasonForNonComplianceCode' => [ 'type' => 'string', ], 'Recursive' => [ 'type' => 'boolean', ], 'RecursiveWithoutDefault' => [ 'type' => 'boolean', ], 'RegisterCACertificateRequest' => [ 'type' => 'structure', 'required' => [ 'caCertificate', 'verificationCertificate', ], 'members' => [ 'caCertificate' => [ 'shape' => 'CertificatePem', ], 'verificationCertificate' => [ 'shape' => 'CertificatePem', ], 'setAsActive' => [ 'shape' => 'SetAsActive', 'location' => 'querystring', 'locationName' => 'setAsActive', ], 'allowAutoRegistration' => [ 'shape' => 'AllowAutoRegistration', 'location' => 'querystring', 'locationName' => 'allowAutoRegistration', ], 'registrationConfig' => [ 'shape' => 'RegistrationConfig', ], ], ], 'RegisterCACertificateResponse' => [ 'type' => 'structure', 'members' => [ 'certificateArn' => [ 'shape' => 'CertificateArn', ], 'certificateId' => [ 'shape' => 'CertificateId', ], ], ], 'RegisterCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'certificatePem', ], 'members' => [ 'certificatePem' => [ 'shape' => 'CertificatePem', ], 'caCertificatePem' => [ 'shape' => 'CertificatePem', ], 'setAsActive' => [ 'shape' => 'SetAsActiveFlag', 'deprecated' => true, 'location' => 'querystring', 'locationName' => 'setAsActive', ], 'status' => [ 'shape' => 'CertificateStatus', ], ], ], 'RegisterCertificateResponse' => [ 'type' => 'structure', 'members' => [ 'certificateArn' => [ 'shape' => 'CertificateArn', ], 'certificateId' => [ 'shape' => 'CertificateId', ], ], ], 'RegisterThingRequest' => [ 'type' => 'structure', 'required' => [ 'templateBody', ], 'members' => [ 'templateBody' => [ 'shape' => 'TemplateBody', ], 'parameters' => [ 'shape' => 'Parameters', ], ], ], 'RegisterThingResponse' => [ 'type' => 'structure', 'members' => [ 'certificatePem' => [ 'shape' => 'CertificatePem', ], 'resourceArns' => [ 'shape' => 'ResourceArns', ], ], ], 'RegistrationCode' => [ 'type' => 'string', 'max' => 64, 'min' => 64, 'pattern' => '(0x)?[a-fA-F0-9]+', ], 'RegistrationCodeValidationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'RegistrationConfig' => [ 'type' => 'structure', 'members' => [ 'templateBody' => [ 'shape' => 'TemplateBody', ], 'roleArn' => [ 'shape' => 'RoleArn', ], ], ], 'RegistryMaxResults' => [ 'type' => 'integer', 'max' => 250, 'min' => 1, ], 'RegistryS3BucketName' => [ 'type' => 'string', 'max' => 256, 'min' => 3, 'pattern' => '[a-zA-Z0-9._-]+', ], 'RegistryS3KeyName' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '[a-zA-Z0-9!_.*\'()-\\/]+', ], 'RejectCertificateTransferRequest' => [ 'type' => 'structure', 'required' => [ 'certificateId', ], 'members' => [ 'certificateId' => [ 'shape' => 'CertificateId', 'location' => 'uri', 'locationName' => 'certificateId', ], 'rejectReason' => [ 'shape' => 'Message', ], ], ], 'RejectedThings' => [ 'type' => 'integer', ], 'RelatedResource' => [ 'type' => 'structure', 'members' => [ 'resourceType' => [ 'shape' => 'ResourceType', ], 'resourceIdentifier' => [ 'shape' => 'ResourceIdentifier', ], 'additionalInfo' => [ 'shape' => 'StringMap', ], ], ], 'RelatedResources' => [ 'type' => 'list', 'member' => [ 'shape' => 'RelatedResource', ], ], 'RemoveAutoRegistration' => [ 'type' => 'boolean', ], 'RemoveThingFromBillingGroupRequest' => [ 'type' => 'structure', 'members' => [ 'billingGroupName' => [ 'shape' => 'BillingGroupName', ], 'billingGroupArn' => [ 'shape' => 'BillingGroupArn', ], 'thingName' => [ 'shape' => 'ThingName', ], 'thingArn' => [ 'shape' => 'ThingArn', ], ], ], 'RemoveThingFromBillingGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'RemoveThingFromThingGroupRequest' => [ 'type' => 'structure', 'members' => [ 'thingGroupName' => [ 'shape' => 'ThingGroupName', ], 'thingGroupArn' => [ 'shape' => 'ThingGroupArn', ], 'thingName' => [ 'shape' => 'ThingName', ], 'thingArn' => [ 'shape' => 'ThingArn', ], ], ], 'RemoveThingFromThingGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'RemoveThingType' => [ 'type' => 'boolean', ], 'RemovedThings' => [ 'type' => 'integer', ], 'ReplaceTopicRuleRequest' => [ 'type' => 'structure', 'required' => [ 'ruleName', 'topicRulePayload', ], 'members' => [ 'ruleName' => [ 'shape' => 'RuleName', 'location' => 'uri', 'locationName' => 'ruleName', ], 'topicRulePayload' => [ 'shape' => 'TopicRulePayload', ], ], 'payload' => 'topicRulePayload', ], 'ReportType' => [ 'type' => 'string', 'enum' => [ 'ERRORS', 'RESULTS', ], ], 'RepublishAction' => [ 'type' => 'structure', 'required' => [ 'roleArn', 'topic', ], 'members' => [ 'roleArn' => [ 'shape' => 'AwsArn', ], 'topic' => [ 'shape' => 'TopicPattern', ], ], ], 'Resource' => [ 'type' => 'string', ], 'ResourceAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], 'resourceId' => [ 'shape' => 'resourceId', ], 'resourceArn' => [ 'shape' => 'resourceArn', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'ResourceArn' => [ 'type' => 'string', ], 'ResourceArns' => [ 'type' => 'map', 'key' => [ 'shape' => 'ResourceLogicalId', ], 'value' => [ 'shape' => 'ResourceArn', ], ], 'ResourceIdentifier' => [ 'type' => 'structure', 'members' => [ 'deviceCertificateId' => [ 'shape' => 'CertificateId', ], 'caCertificateId' => [ 'shape' => 'CertificateId', ], 'cognitoIdentityPoolId' => [ 'shape' => 'CognitoIdentityPoolId', ], 'clientId' => [ 'shape' => 'ClientId', ], 'policyVersionIdentifier' => [ 'shape' => 'PolicyVersionIdentifier', ], 'account' => [ 'shape' => 'AwsAccountId', ], ], ], 'ResourceLogicalId' => [ 'type' => 'string', ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'ResourceRegistrationFailureException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ResourceType' => [ 'type' => 'string', 'enum' => [ 'DEVICE_CERTIFICATE', 'CA_CERTIFICATE', 'IOT_POLICY', 'COGNITO_IDENTITY_POOL', 'CLIENT_ID', 'ACCOUNT_SETTINGS', ], ], 'Resources' => [ 'type' => 'list', 'member' => [ 'shape' => 'Resource', ], ], 'RoleAlias' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w=,@-]+', ], 'RoleAliasArn' => [ 'type' => 'string', ], 'RoleAliasDescription' => [ 'type' => 'structure', 'members' => [ 'roleAlias' => [ 'shape' => 'RoleAlias', ], 'roleAliasArn' => [ 'shape' => 'RoleAliasArn', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'owner' => [ 'shape' => 'AwsAccountId', ], 'credentialDurationSeconds' => [ 'shape' => 'CredentialDurationSeconds', ], 'creationDate' => [ 'shape' => 'DateType', ], 'lastModifiedDate' => [ 'shape' => 'DateType', ], ], ], 'RoleAliases' => [ 'type' => 'list', 'member' => [ 'shape' => 'RoleAlias', ], ], 'RoleArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, ], 'RolloutRatePerMinute' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'RuleArn' => [ 'type' => 'string', ], 'RuleName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[a-zA-Z0-9_]+$', ], 'S3Action' => [ 'type' => 'structure', 'required' => [ 'roleArn', 'bucketName', 'key', ], 'members' => [ 'roleArn' => [ 'shape' => 'AwsArn', ], 'bucketName' => [ 'shape' => 'BucketName', ], 'key' => [ 'shape' => 'Key', ], 'cannedAcl' => [ 'shape' => 'CannedAccessControlList', ], ], ], 'S3Bucket' => [ 'type' => 'string', 'min' => 1, ], 'S3Destination' => [ 'type' => 'structure', 'members' => [ 'bucket' => [ 'shape' => 'S3Bucket', ], 'prefix' => [ 'shape' => 'Prefix', ], ], ], 'S3FileUrl' => [ 'type' => 'string', 'max' => 65535, ], 'S3FileUrlList' => [ 'type' => 'list', 'member' => [ 'shape' => 'S3FileUrl', ], ], 'S3Key' => [ 'type' => 'string', 'min' => 1, ], 'S3Location' => [ 'type' => 'structure', 'members' => [ 'bucket' => [ 'shape' => 'S3Bucket', ], 'key' => [ 'shape' => 'S3Key', ], 'version' => [ 'shape' => 'S3Version', ], ], ], 'S3Version' => [ 'type' => 'string', ], 'SQL' => [ 'type' => 'string', ], 'SalesforceAction' => [ 'type' => 'structure', 'required' => [ 'token', 'url', ], 'members' => [ 'token' => [ 'shape' => 'SalesforceToken', ], 'url' => [ 'shape' => 'SalesforceEndpoint', ], ], ], 'SalesforceEndpoint' => [ 'type' => 'string', 'max' => 2000, 'pattern' => 'https://ingestion-[a-zA-Z0-9]{1,12}\\.[a-zA-Z0-9]+\\.((sfdc-matrix\\.net)|(sfdcnow\\.com))/streams/\\w{1,20}/\\w{1,20}/event', ], 'SalesforceToken' => [ 'type' => 'string', 'min' => 40, ], 'ScheduledAuditArn' => [ 'type' => 'string', ], 'ScheduledAuditMetadata' => [ 'type' => 'structure', 'members' => [ 'scheduledAuditName' => [ 'shape' => 'ScheduledAuditName', ], 'scheduledAuditArn' => [ 'shape' => 'ScheduledAuditArn', ], 'frequency' => [ 'shape' => 'AuditFrequency', ], 'dayOfMonth' => [ 'shape' => 'DayOfMonth', ], 'dayOfWeek' => [ 'shape' => 'DayOfWeek', ], ], ], 'ScheduledAuditMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledAuditMetadata', ], ], 'ScheduledAuditName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9_-]+', ], 'SearchIndexRequest' => [ 'type' => 'structure', 'required' => [ 'queryString', ], 'members' => [ 'indexName' => [ 'shape' => 'IndexName', ], 'queryString' => [ 'shape' => 'QueryString', ], 'nextToken' => [ 'shape' => 'NextToken', ], 'maxResults' => [ 'shape' => 'QueryMaxResults', ], 'queryVersion' => [ 'shape' => 'QueryVersion', ], ], ], 'SearchIndexResponse' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', ], 'things' => [ 'shape' => 'ThingDocumentList', ], 'thingGroups' => [ 'shape' => 'ThingGroupDocumentList', ], ], ], 'SearchableAttributes' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeName', ], ], 'Seconds' => [ 'type' => 'integer', ], 'SecurityProfileArn' => [ 'type' => 'string', ], 'SecurityProfileDescription' => [ 'type' => 'string', 'max' => 1000, 'pattern' => '[\\p{Graph}\\x20]*', ], 'SecurityProfileIdentifier' => [ 'type' => 'structure', 'required' => [ 'name', 'arn', ], 'members' => [ 'name' => [ 'shape' => 'SecurityProfileName', ], 'arn' => [ 'shape' => 'SecurityProfileArn', ], ], ], 'SecurityProfileIdentifiers' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityProfileIdentifier', ], ], 'SecurityProfileName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9:_-]+', ], 'SecurityProfileTarget' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'SecurityProfileTargetArn', ], ], ], 'SecurityProfileTargetArn' => [ 'type' => 'string', ], 'SecurityProfileTargetMapping' => [ 'type' => 'structure', 'members' => [ 'securityProfileIdentifier' => [ 'shape' => 'SecurityProfileIdentifier', ], 'target' => [ 'shape' => 'SecurityProfileTarget', ], ], ], 'SecurityProfileTargetMappings' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityProfileTargetMapping', ], ], 'SecurityProfileTargets' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityProfileTarget', ], ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 503, ], 'exception' => true, 'fault' => true, ], 'SetAsActive' => [ 'type' => 'boolean', ], 'SetAsActiveFlag' => [ 'type' => 'boolean', ], 'SetAsDefault' => [ 'type' => 'boolean', ], 'SetDefaultAuthorizerRequest' => [ 'type' => 'structure', 'required' => [ 'authorizerName', ], 'members' => [ 'authorizerName' => [ 'shape' => 'AuthorizerName', ], ], ], 'SetDefaultAuthorizerResponse' => [ 'type' => 'structure', 'members' => [ 'authorizerName' => [ 'shape' => 'AuthorizerName', ], 'authorizerArn' => [ 'shape' => 'AuthorizerArn', ], ], ], 'SetDefaultPolicyVersionRequest' => [ 'type' => 'structure', 'required' => [ 'policyName', 'policyVersionId', ], 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', 'location' => 'uri', 'locationName' => 'policyName', ], 'policyVersionId' => [ 'shape' => 'PolicyVersionId', 'location' => 'uri', 'locationName' => 'policyVersionId', ], ], ], 'SetLoggingOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'loggingOptionsPayload', ], 'members' => [ 'loggingOptionsPayload' => [ 'shape' => 'LoggingOptionsPayload', ], ], 'payload' => 'loggingOptionsPayload', ], 'SetV2LoggingLevelRequest' => [ 'type' => 'structure', 'required' => [ 'logTarget', 'logLevel', ], 'members' => [ 'logTarget' => [ 'shape' => 'LogTarget', ], 'logLevel' => [ 'shape' => 'LogLevel', ], ], ], 'SetV2LoggingOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'roleArn' => [ 'shape' => 'AwsArn', ], 'defaultLogLevel' => [ 'shape' => 'LogLevel', ], 'disableAllLogs' => [ 'shape' => 'DisableAllLogs', ], ], ], 'Signature' => [ 'type' => 'blob', ], 'SignatureAlgorithm' => [ 'type' => 'string', ], 'SigningJobId' => [ 'type' => 'string', ], 'SigningProfileName' => [ 'type' => 'string', ], 'SigningProfileParameter' => [ 'type' => 'structure', 'members' => [ 'certificateArn' => [ 'shape' => 'CertificateArn', ], 'platform' => [ 'shape' => 'Platform', ], 'certificatePathOnDevice' => [ 'shape' => 'CertificatePathOnDevice', ], ], ], 'SkyfallMaxResults' => [ 'type' => 'integer', 'max' => 250, 'min' => 1, ], 'SnsAction' => [ 'type' => 'structure', 'required' => [ 'targetArn', 'roleArn', ], 'members' => [ 'targetArn' => [ 'shape' => 'AwsArn', ], 'roleArn' => [ 'shape' => 'AwsArn', ], 'messageFormat' => [ 'shape' => 'MessageFormat', ], ], ], 'SqlParseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'SqsAction' => [ 'type' => 'structure', 'required' => [ 'roleArn', 'queueUrl', ], 'members' => [ 'roleArn' => [ 'shape' => 'AwsArn', ], 'queueUrl' => [ 'shape' => 'QueueUrl', ], 'useBase64' => [ 'shape' => 'UseBase64', ], ], ], 'StartOnDemandAuditTaskRequest' => [ 'type' => 'structure', 'required' => [ 'targetCheckNames', ], 'members' => [ 'targetCheckNames' => [ 'shape' => 'TargetAuditCheckNames', ], ], ], 'StartOnDemandAuditTaskResponse' => [ 'type' => 'structure', 'members' => [ 'taskId' => [ 'shape' => 'AuditTaskId', ], ], ], 'StartSigningJobParameter' => [ 'type' => 'structure', 'members' => [ 'signingProfileParameter' => [ 'shape' => 'SigningProfileParameter', ], 'signingProfileName' => [ 'shape' => 'SigningProfileName', ], 'destination' => [ 'shape' => 'Destination', ], ], ], 'StartThingRegistrationTaskRequest' => [ 'type' => 'structure', 'required' => [ 'templateBody', 'inputFileBucket', 'inputFileKey', 'roleArn', ], 'members' => [ 'templateBody' => [ 'shape' => 'TemplateBody', ], 'inputFileBucket' => [ 'shape' => 'RegistryS3BucketName', ], 'inputFileKey' => [ 'shape' => 'RegistryS3KeyName', ], 'roleArn' => [ 'shape' => 'RoleArn', ], ], ], 'StartThingRegistrationTaskResponse' => [ 'type' => 'structure', 'members' => [ 'taskId' => [ 'shape' => 'TaskId', ], ], ], 'StateMachineName' => [ 'type' => 'string', ], 'StateReason' => [ 'type' => 'string', ], 'StateValue' => [ 'type' => 'string', ], 'StatisticalThreshold' => [ 'type' => 'structure', 'members' => [ 'statistic' => [ 'shape' => 'EvaluationStatistic', ], ], ], 'Statistics' => [ 'type' => 'structure', 'members' => [ 'count' => [ 'shape' => 'Count', ], ], ], 'Status' => [ 'type' => 'string', 'enum' => [ 'InProgress', 'Completed', 'Failed', 'Cancelled', 'Cancelling', ], ], 'StepFunctionsAction' => [ 'type' => 'structure', 'required' => [ 'stateMachineName', 'roleArn', ], 'members' => [ 'executionNamePrefix' => [ 'shape' => 'ExecutionNamePrefix', ], 'stateMachineName' => [ 'shape' => 'StateMachineName', ], 'roleArn' => [ 'shape' => 'AwsArn', ], ], ], 'StopThingRegistrationTaskRequest' => [ 'type' => 'structure', 'required' => [ 'taskId', ], 'members' => [ 'taskId' => [ 'shape' => 'TaskId', 'location' => 'uri', 'locationName' => 'taskId', ], ], ], 'StopThingRegistrationTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'Stream' => [ 'type' => 'structure', 'members' => [ 'streamId' => [ 'shape' => 'StreamId', ], 'fileId' => [ 'shape' => 'FileId', ], ], ], 'StreamArn' => [ 'type' => 'string', ], 'StreamDescription' => [ 'type' => 'string', 'max' => 2028, 'pattern' => '[^\\p{C}]+', ], 'StreamFile' => [ 'type' => 'structure', 'members' => [ 'fileId' => [ 'shape' => 'FileId', ], 's3Location' => [ 'shape' => 'S3Location', ], ], ], 'StreamFiles' => [ 'type' => 'list', 'member' => [ 'shape' => 'StreamFile', ], 'max' => 50, 'min' => 1, ], 'StreamId' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9_-]+', ], 'StreamInfo' => [ 'type' => 'structure', 'members' => [ 'streamId' => [ 'shape' => 'StreamId', ], 'streamArn' => [ 'shape' => 'StreamArn', ], 'streamVersion' => [ 'shape' => 'StreamVersion', ], 'description' => [ 'shape' => 'StreamDescription', ], 'files' => [ 'shape' => 'StreamFiles', ], 'createdAt' => [ 'shape' => 'DateType', ], 'lastUpdatedAt' => [ 'shape' => 'DateType', ], 'roleArn' => [ 'shape' => 'RoleArn', ], ], ], 'StreamName' => [ 'type' => 'string', ], 'StreamSummary' => [ 'type' => 'structure', 'members' => [ 'streamId' => [ 'shape' => 'StreamId', ], 'streamArn' => [ 'shape' => 'StreamArn', ], 'streamVersion' => [ 'shape' => 'StreamVersion', ], 'description' => [ 'shape' => 'StreamDescription', ], ], ], 'StreamVersion' => [ 'type' => 'integer', 'max' => 65535, 'min' => 0, ], 'StreamsSummary' => [ 'type' => 'list', 'member' => [ 'shape' => 'StreamSummary', ], ], 'String' => [ 'type' => 'string', ], 'StringMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'SucceededThings' => [ 'type' => 'integer', ], 'TableName' => [ 'type' => 'string', ], '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', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tags', ], 'members' => [ 'resourceArn' => [ 'shape' => 'ResourceArn', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', ], 'Target' => [ 'type' => 'string', ], 'TargetArn' => [ 'type' => 'string', ], 'TargetAuditCheckNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'AuditCheckName', ], ], 'TargetSelection' => [ 'type' => 'string', 'enum' => [ 'CONTINUOUS', 'SNAPSHOT', ], ], 'Targets' => [ 'type' => 'list', 'member' => [ 'shape' => 'Target', ], 'min' => 1, ], 'TaskId' => [ 'type' => 'string', 'max' => 40, ], 'TaskIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskId', ], ], 'TaskStatistics' => [ 'type' => 'structure', 'members' => [ 'totalChecks' => [ 'shape' => 'TotalChecksCount', ], 'inProgressChecks' => [ 'shape' => 'InProgressChecksCount', ], 'waitingForDataCollectionChecks' => [ 'shape' => 'WaitingForDataCollectionChecksCount', ], 'compliantChecks' => [ 'shape' => 'CompliantChecksCount', ], 'nonCompliantChecks' => [ 'shape' => 'NonCompliantChecksCount', ], 'failedChecks' => [ 'shape' => 'FailedChecksCount', ], 'canceledChecks' => [ 'shape' => 'CanceledChecksCount', ], ], ], 'TemplateBody' => [ 'type' => 'string', ], 'TestAuthorizationRequest' => [ 'type' => 'structure', 'required' => [ 'authInfos', ], 'members' => [ 'principal' => [ 'shape' => 'Principal', ], 'cognitoIdentityPoolId' => [ 'shape' => 'CognitoIdentityPoolId', ], 'authInfos' => [ 'shape' => 'AuthInfos', ], 'clientId' => [ 'shape' => 'ClientId', 'location' => 'querystring', 'locationName' => 'clientId', ], 'policyNamesToAdd' => [ 'shape' => 'PolicyNames', ], 'policyNamesToSkip' => [ 'shape' => 'PolicyNames', ], ], ], 'TestAuthorizationResponse' => [ 'type' => 'structure', 'members' => [ 'authResults' => [ 'shape' => 'AuthResults', ], ], ], 'TestInvokeAuthorizerRequest' => [ 'type' => 'structure', 'required' => [ 'authorizerName', 'token', 'tokenSignature', ], 'members' => [ 'authorizerName' => [ 'shape' => 'AuthorizerName', 'location' => 'uri', 'locationName' => 'authorizerName', ], 'token' => [ 'shape' => 'Token', ], 'tokenSignature' => [ 'shape' => 'TokenSignature', ], ], ], 'TestInvokeAuthorizerResponse' => [ 'type' => 'structure', 'members' => [ 'isAuthenticated' => [ 'shape' => 'IsAuthenticated', ], 'principalId' => [ 'shape' => 'PrincipalId', ], 'policyDocuments' => [ 'shape' => 'PolicyDocuments', ], 'refreshAfterInSeconds' => [ 'shape' => 'Seconds', ], 'disconnectAfterInSeconds' => [ 'shape' => 'Seconds', ], ], ], 'ThingArn' => [ 'type' => 'string', ], 'ThingAttribute' => [ 'type' => 'structure', 'members' => [ 'thingName' => [ 'shape' => 'ThingName', ], 'thingTypeName' => [ 'shape' => 'ThingTypeName', ], 'thingArn' => [ 'shape' => 'ThingArn', ], 'attributes' => [ 'shape' => 'Attributes', ], 'version' => [ 'shape' => 'Version', ], ], ], 'ThingAttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ThingAttribute', ], ], 'ThingConnectivity' => [ 'type' => 'structure', 'members' => [ 'connected' => [ 'shape' => 'Boolean', ], 'timestamp' => [ 'shape' => 'ConnectivityTimestamp', ], ], ], 'ThingConnectivityIndexingMode' => [ 'type' => 'string', 'enum' => [ 'OFF', 'STATUS', ], ], 'ThingDocument' => [ 'type' => 'structure', 'members' => [ 'thingName' => [ 'shape' => 'ThingName', ], 'thingId' => [ 'shape' => 'ThingId', ], 'thingTypeName' => [ 'shape' => 'ThingTypeName', ], 'thingGroupNames' => [ 'shape' => 'ThingGroupNameList', ], 'attributes' => [ 'shape' => 'Attributes', ], 'shadow' => [ 'shape' => 'JsonDocument', ], 'connectivity' => [ 'shape' => 'ThingConnectivity', ], ], ], 'ThingDocumentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ThingDocument', ], ], 'ThingGroupArn' => [ 'type' => 'string', ], 'ThingGroupDescription' => [ 'type' => 'string', 'max' => 2028, 'pattern' => '[\\p{Graph}\\x20]*', ], 'ThingGroupDocument' => [ 'type' => 'structure', 'members' => [ 'thingGroupName' => [ 'shape' => 'ThingGroupName', ], 'thingGroupId' => [ 'shape' => 'ThingGroupId', ], 'thingGroupDescription' => [ 'shape' => 'ThingGroupDescription', ], 'attributes' => [ 'shape' => 'Attributes', ], 'parentGroupNames' => [ 'shape' => 'ThingGroupNameList', ], ], ], 'ThingGroupDocumentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ThingGroupDocument', ], ], 'ThingGroupId' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\-]+', ], 'ThingGroupIndexingConfiguration' => [ 'type' => 'structure', 'required' => [ 'thingGroupIndexingMode', ], 'members' => [ 'thingGroupIndexingMode' => [ 'shape' => 'ThingGroupIndexingMode', ], ], ], 'ThingGroupIndexingMode' => [ 'type' => 'string', 'enum' => [ 'OFF', 'ON', ], ], 'ThingGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ThingGroupName', ], ], 'ThingGroupMetadata' => [ 'type' => 'structure', 'members' => [ 'parentGroupName' => [ 'shape' => 'ThingGroupName', ], 'rootToParentThingGroups' => [ 'shape' => 'ThingGroupNameAndArnList', ], 'creationDate' => [ 'shape' => 'CreationDate', ], ], ], 'ThingGroupName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9:_-]+', ], 'ThingGroupNameAndArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GroupNameAndArn', ], ], 'ThingGroupNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ThingGroupName', ], ], 'ThingGroupProperties' => [ 'type' => 'structure', 'members' => [ 'thingGroupDescription' => [ 'shape' => 'ThingGroupDescription', ], 'attributePayload' => [ 'shape' => 'AttributePayload', ], ], ], 'ThingId' => [ 'type' => 'string', ], 'ThingIndexingConfiguration' => [ 'type' => 'structure', 'required' => [ 'thingIndexingMode', ], 'members' => [ 'thingIndexingMode' => [ 'shape' => 'ThingIndexingMode', ], 'thingConnectivityIndexingMode' => [ 'shape' => 'ThingConnectivityIndexingMode', ], ], ], 'ThingIndexingMode' => [ 'type' => 'string', 'enum' => [ 'OFF', 'REGISTRY', 'REGISTRY_AND_SHADOW', ], ], 'ThingName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9:_-]+', ], 'ThingNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ThingName', ], ], 'ThingTypeArn' => [ 'type' => 'string', ], 'ThingTypeDefinition' => [ 'type' => 'structure', 'members' => [ 'thingTypeName' => [ 'shape' => 'ThingTypeName', ], 'thingTypeArn' => [ 'shape' => 'ThingTypeArn', ], 'thingTypeProperties' => [ 'shape' => 'ThingTypeProperties', ], 'thingTypeMetadata' => [ 'shape' => 'ThingTypeMetadata', ], ], ], 'ThingTypeDescription' => [ 'type' => 'string', 'max' => 2028, 'pattern' => '[\\p{Graph}\\x20]*', ], 'ThingTypeId' => [ 'type' => 'string', ], 'ThingTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ThingTypeDefinition', ], ], 'ThingTypeMetadata' => [ 'type' => 'structure', 'members' => [ 'deprecated' => [ 'shape' => 'Boolean', ], 'deprecationDate' => [ 'shape' => 'DeprecationDate', ], 'creationDate' => [ 'shape' => 'CreationDate', ], ], ], 'ThingTypeName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9:_-]+', ], 'ThingTypeProperties' => [ 'type' => 'structure', 'members' => [ 'thingTypeDescription' => [ 'shape' => 'ThingTypeDescription', ], 'searchableAttributes' => [ 'shape' => 'SearchableAttributes', ], ], ], 'ThrottlingException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'TimedOutThings' => [ 'type' => 'integer', ], 'TimeoutConfig' => [ 'type' => 'structure', 'members' => [ 'inProgressTimeoutInMinutes' => [ 'shape' => 'InProgressTimeoutInMinutes', ], ], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'Token' => [ 'type' => 'string', 'max' => 6144, 'min' => 1, ], 'TokenKeyName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9_-]+', ], 'TokenSignature' => [ 'type' => 'string', 'max' => 2560, 'min' => 1, 'pattern' => '[A-Za-z0-9+/]+={0,2}', ], 'Topic' => [ 'type' => 'string', ], 'TopicPattern' => [ 'type' => 'string', ], 'TopicRule' => [ 'type' => 'structure', 'members' => [ 'ruleName' => [ 'shape' => 'RuleName', ], 'sql' => [ 'shape' => 'SQL', ], 'description' => [ 'shape' => 'Description', ], 'createdAt' => [ 'shape' => 'CreatedAtDate', ], 'actions' => [ 'shape' => 'ActionList', ], 'ruleDisabled' => [ 'shape' => 'IsDisabled', ], 'awsIotSqlVersion' => [ 'shape' => 'AwsIotSqlVersion', ], 'errorAction' => [ 'shape' => 'Action', ], ], ], 'TopicRuleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TopicRuleListItem', ], ], 'TopicRuleListItem' => [ 'type' => 'structure', 'members' => [ 'ruleArn' => [ 'shape' => 'RuleArn', ], 'ruleName' => [ 'shape' => 'RuleName', ], 'topicPattern' => [ 'shape' => 'TopicPattern', ], 'createdAt' => [ 'shape' => 'CreatedAtDate', ], 'ruleDisabled' => [ 'shape' => 'IsDisabled', ], ], ], 'TopicRulePayload' => [ 'type' => 'structure', 'required' => [ 'sql', 'actions', ], 'members' => [ 'sql' => [ 'shape' => 'SQL', ], 'description' => [ 'shape' => 'Description', ], 'actions' => [ 'shape' => 'ActionList', ], 'ruleDisabled' => [ 'shape' => 'IsDisabled', ], 'awsIotSqlVersion' => [ 'shape' => 'AwsIotSqlVersion', ], 'errorAction' => [ 'shape' => 'Action', ], ], ], 'TotalChecksCount' => [ 'type' => 'integer', ], 'TotalResourcesCount' => [ 'type' => 'long', ], 'TransferAlreadyCompletedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 410, ], 'exception' => true, ], 'TransferCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'certificateId', 'targetAwsAccount', ], 'members' => [ 'certificateId' => [ 'shape' => 'CertificateId', 'location' => 'uri', 'locationName' => 'certificateId', ], 'targetAwsAccount' => [ 'shape' => 'AwsAccountId', 'location' => 'querystring', 'locationName' => 'targetAwsAccount', ], 'transferMessage' => [ 'shape' => 'Message', ], ], ], 'TransferCertificateResponse' => [ 'type' => 'structure', 'members' => [ 'transferredCertificateArn' => [ 'shape' => 'CertificateArn', ], ], ], 'TransferConflictException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'TransferData' => [ 'type' => 'structure', 'members' => [ 'transferMessage' => [ 'shape' => 'Message', ], 'rejectReason' => [ 'shape' => 'Message', ], 'transferDate' => [ 'shape' => 'DateType', ], 'acceptDate' => [ 'shape' => 'DateType', ], 'rejectDate' => [ 'shape' => 'DateType', ], ], ], 'UnauthorizedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 401, ], 'exception' => true, ], 'UndoDeprecate' => [ 'type' => 'boolean', ], 'UnsignedLong' => [ 'type' => 'long', 'min' => 0, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tagKeys', ], 'members' => [ 'resourceArn' => [ 'shape' => 'ResourceArn', ], 'tagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateAccountAuditConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'roleArn' => [ 'shape' => 'RoleArn', ], 'auditNotificationTargetConfigurations' => [ 'shape' => 'AuditNotificationTargetConfigurations', ], 'auditCheckConfigurations' => [ 'shape' => 'AuditCheckConfigurations', ], ], ], 'UpdateAccountAuditConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateAuthorizerRequest' => [ 'type' => 'structure', 'required' => [ 'authorizerName', ], 'members' => [ 'authorizerName' => [ 'shape' => 'AuthorizerName', 'location' => 'uri', 'locationName' => 'authorizerName', ], 'authorizerFunctionArn' => [ 'shape' => 'AuthorizerFunctionArn', ], 'tokenKeyName' => [ 'shape' => 'TokenKeyName', ], 'tokenSigningPublicKeys' => [ 'shape' => 'PublicKeyMap', ], 'status' => [ 'shape' => 'AuthorizerStatus', ], ], ], 'UpdateAuthorizerResponse' => [ 'type' => 'structure', 'members' => [ 'authorizerName' => [ 'shape' => 'AuthorizerName', ], 'authorizerArn' => [ 'shape' => 'AuthorizerArn', ], ], ], 'UpdateBillingGroupRequest' => [ 'type' => 'structure', 'required' => [ 'billingGroupName', 'billingGroupProperties', ], 'members' => [ 'billingGroupName' => [ 'shape' => 'BillingGroupName', 'location' => 'uri', 'locationName' => 'billingGroupName', ], 'billingGroupProperties' => [ 'shape' => 'BillingGroupProperties', ], 'expectedVersion' => [ 'shape' => 'OptionalVersion', ], ], ], 'UpdateBillingGroupResponse' => [ 'type' => 'structure', 'members' => [ 'version' => [ 'shape' => 'Version', ], ], ], 'UpdateCACertificateRequest' => [ 'type' => 'structure', 'required' => [ 'certificateId', ], 'members' => [ 'certificateId' => [ 'shape' => 'CertificateId', 'location' => 'uri', 'locationName' => 'caCertificateId', ], 'newStatus' => [ 'shape' => 'CACertificateStatus', 'location' => 'querystring', 'locationName' => 'newStatus', ], 'newAutoRegistrationStatus' => [ 'shape' => 'AutoRegistrationStatus', 'location' => 'querystring', 'locationName' => 'newAutoRegistrationStatus', ], 'registrationConfig' => [ 'shape' => 'RegistrationConfig', ], 'removeAutoRegistration' => [ 'shape' => 'RemoveAutoRegistration', ], ], ], 'UpdateCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'certificateId', 'newStatus', ], 'members' => [ 'certificateId' => [ 'shape' => 'CertificateId', 'location' => 'uri', 'locationName' => 'certificateId', ], 'newStatus' => [ 'shape' => 'CertificateStatus', 'location' => 'querystring', 'locationName' => 'newStatus', ], ], ], 'UpdateDynamicThingGroupRequest' => [ 'type' => 'structure', 'required' => [ 'thingGroupName', 'thingGroupProperties', ], 'members' => [ 'thingGroupName' => [ 'shape' => 'ThingGroupName', 'location' => 'uri', 'locationName' => 'thingGroupName', ], 'thingGroupProperties' => [ 'shape' => 'ThingGroupProperties', ], 'expectedVersion' => [ 'shape' => 'OptionalVersion', ], 'indexName' => [ 'shape' => 'IndexName', ], 'queryString' => [ 'shape' => 'QueryString', ], 'queryVersion' => [ 'shape' => 'QueryVersion', ], ], ], 'UpdateDynamicThingGroupResponse' => [ 'type' => 'structure', 'members' => [ 'version' => [ 'shape' => 'Version', ], ], ], 'UpdateEventConfigurationsRequest' => [ 'type' => 'structure', 'members' => [ 'eventConfigurations' => [ 'shape' => 'EventConfigurations', ], ], ], 'UpdateEventConfigurationsResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateIndexingConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'thingIndexingConfiguration' => [ 'shape' => 'ThingIndexingConfiguration', ], 'thingGroupIndexingConfiguration' => [ 'shape' => 'ThingGroupIndexingConfiguration', ], ], ], 'UpdateIndexingConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateJobRequest' => [ 'type' => 'structure', 'required' => [ 'jobId', ], 'members' => [ 'jobId' => [ 'shape' => 'JobId', 'location' => 'uri', 'locationName' => 'jobId', ], 'description' => [ 'shape' => 'JobDescription', ], 'presignedUrlConfig' => [ 'shape' => 'PresignedUrlConfig', ], 'jobExecutionsRolloutConfig' => [ 'shape' => 'JobExecutionsRolloutConfig', ], 'abortConfig' => [ 'shape' => 'AbortConfig', ], 'timeoutConfig' => [ 'shape' => 'TimeoutConfig', ], ], ], 'UpdateRoleAliasRequest' => [ 'type' => 'structure', 'required' => [ 'roleAlias', ], 'members' => [ 'roleAlias' => [ 'shape' => 'RoleAlias', 'location' => 'uri', 'locationName' => 'roleAlias', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'credentialDurationSeconds' => [ 'shape' => 'CredentialDurationSeconds', ], ], ], 'UpdateRoleAliasResponse' => [ 'type' => 'structure', 'members' => [ 'roleAlias' => [ 'shape' => 'RoleAlias', ], 'roleAliasArn' => [ 'shape' => 'RoleAliasArn', ], ], ], 'UpdateScheduledAuditRequest' => [ 'type' => 'structure', 'required' => [ 'scheduledAuditName', ], 'members' => [ 'frequency' => [ 'shape' => 'AuditFrequency', ], 'dayOfMonth' => [ 'shape' => 'DayOfMonth', ], 'dayOfWeek' => [ 'shape' => 'DayOfWeek', ], 'targetCheckNames' => [ 'shape' => 'TargetAuditCheckNames', ], 'scheduledAuditName' => [ 'shape' => 'ScheduledAuditName', 'location' => 'uri', 'locationName' => 'scheduledAuditName', ], ], ], 'UpdateScheduledAuditResponse' => [ 'type' => 'structure', 'members' => [ 'scheduledAuditArn' => [ 'shape' => 'ScheduledAuditArn', ], ], ], 'UpdateSecurityProfileRequest' => [ 'type' => 'structure', 'required' => [ 'securityProfileName', ], 'members' => [ 'securityProfileName' => [ 'shape' => 'SecurityProfileName', 'location' => 'uri', 'locationName' => 'securityProfileName', ], 'securityProfileDescription' => [ 'shape' => 'SecurityProfileDescription', ], 'behaviors' => [ 'shape' => 'Behaviors', ], 'alertTargets' => [ 'shape' => 'AlertTargets', ], 'additionalMetricsToRetain' => [ 'shape' => 'AdditionalMetricsToRetainList', ], 'deleteBehaviors' => [ 'shape' => 'DeleteBehaviors', ], 'deleteAlertTargets' => [ 'shape' => 'DeleteAlertTargets', ], 'deleteAdditionalMetricsToRetain' => [ 'shape' => 'DeleteAdditionalMetricsToRetain', ], 'expectedVersion' => [ 'shape' => 'OptionalVersion', 'location' => 'querystring', 'locationName' => 'expectedVersion', ], ], ], 'UpdateSecurityProfileResponse' => [ 'type' => 'structure', 'members' => [ 'securityProfileName' => [ 'shape' => 'SecurityProfileName', ], 'securityProfileArn' => [ 'shape' => 'SecurityProfileArn', ], 'securityProfileDescription' => [ 'shape' => 'SecurityProfileDescription', ], 'behaviors' => [ 'shape' => 'Behaviors', ], 'alertTargets' => [ 'shape' => 'AlertTargets', ], 'additionalMetricsToRetain' => [ 'shape' => 'AdditionalMetricsToRetainList', ], 'version' => [ 'shape' => 'Version', ], 'creationDate' => [ 'shape' => 'Timestamp', ], 'lastModifiedDate' => [ 'shape' => 'Timestamp', ], ], ], 'UpdateStreamRequest' => [ 'type' => 'structure', 'required' => [ 'streamId', ], 'members' => [ 'streamId' => [ 'shape' => 'StreamId', 'location' => 'uri', 'locationName' => 'streamId', ], 'description' => [ 'shape' => 'StreamDescription', ], 'files' => [ 'shape' => 'StreamFiles', ], 'roleArn' => [ 'shape' => 'RoleArn', ], ], ], 'UpdateStreamResponse' => [ 'type' => 'structure', 'members' => [ 'streamId' => [ 'shape' => 'StreamId', ], 'streamArn' => [ 'shape' => 'StreamArn', ], 'description' => [ 'shape' => 'StreamDescription', ], 'streamVersion' => [ 'shape' => 'StreamVersion', ], ], ], 'UpdateThingGroupRequest' => [ 'type' => 'structure', 'required' => [ 'thingGroupName', 'thingGroupProperties', ], 'members' => [ 'thingGroupName' => [ 'shape' => 'ThingGroupName', 'location' => 'uri', 'locationName' => 'thingGroupName', ], 'thingGroupProperties' => [ 'shape' => 'ThingGroupProperties', ], 'expectedVersion' => [ 'shape' => 'OptionalVersion', ], ], ], 'UpdateThingGroupResponse' => [ 'type' => 'structure', 'members' => [ 'version' => [ 'shape' => 'Version', ], ], ], 'UpdateThingGroupsForThingRequest' => [ 'type' => 'structure', 'members' => [ 'thingName' => [ 'shape' => 'ThingName', ], 'thingGroupsToAdd' => [ 'shape' => 'ThingGroupList', ], 'thingGroupsToRemove' => [ 'shape' => 'ThingGroupList', ], 'overrideDynamicGroups' => [ 'shape' => 'OverrideDynamicGroups', ], ], ], 'UpdateThingGroupsForThingResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateThingRequest' => [ 'type' => 'structure', 'required' => [ 'thingName', ], 'members' => [ 'thingName' => [ 'shape' => 'ThingName', 'location' => 'uri', 'locationName' => 'thingName', ], 'thingTypeName' => [ 'shape' => 'ThingTypeName', ], 'attributePayload' => [ 'shape' => 'AttributePayload', ], 'expectedVersion' => [ 'shape' => 'OptionalVersion', ], 'removeThingType' => [ 'shape' => 'RemoveThingType', ], ], ], 'UpdateThingResponse' => [ 'type' => 'structure', 'members' => [], ], 'UseBase64' => [ 'type' => 'boolean', ], 'Valid' => [ 'type' => 'boolean', ], 'ValidateSecurityProfileBehaviorsRequest' => [ 'type' => 'structure', 'required' => [ 'behaviors', ], 'members' => [ 'behaviors' => [ 'shape' => 'Behaviors', ], ], ], 'ValidateSecurityProfileBehaviorsResponse' => [ 'type' => 'structure', 'members' => [ 'valid' => [ 'shape' => 'Valid', ], 'validationErrors' => [ 'shape' => 'ValidationErrors', ], ], ], 'ValidationError' => [ 'type' => 'structure', 'members' => [ 'errorMessage' => [ 'shape' => 'ErrorMessage', ], ], ], 'ValidationErrors' => [ 'type' => 'list', 'member' => [ 'shape' => 'ValidationError', ], ], 'Value' => [ 'type' => 'string', ], 'Version' => [ 'type' => 'long', ], 'VersionConflictException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'VersionNumber' => [ 'type' => 'long', ], 'VersionsLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'ViolationEvent' => [ 'type' => 'structure', 'members' => [ 'violationId' => [ 'shape' => 'ViolationId', ], 'thingName' => [ 'shape' => 'ThingName', ], 'securityProfileName' => [ 'shape' => 'SecurityProfileName', ], 'behavior' => [ 'shape' => 'Behavior', ], 'metricValue' => [ 'shape' => 'MetricValue', ], 'violationEventType' => [ 'shape' => 'ViolationEventType', ], 'violationEventTime' => [ 'shape' => 'Timestamp', ], ], ], 'ViolationEventType' => [ 'type' => 'string', 'enum' => [ 'in-alarm', 'alarm-cleared', 'alarm-invalidated', ], ], 'ViolationEvents' => [ 'type' => 'list', 'member' => [ 'shape' => 'ViolationEvent', ], ], 'ViolationId' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\-]+', ], 'WaitingForDataCollectionChecksCount' => [ 'type' => 'integer', ], 'errorMessage' => [ 'type' => 'string', ], 'resourceArn' => [ 'type' => 'string', ], 'resourceId' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/iot/2015-05-28/paginators-1.json.php b/lib/aws/Aws/data/iot/2015-05-28/paginators-1.json.php new file mode 100644 index 0000000..3d62415 --- /dev/null +++ b/lib/aws/Aws/data/iot/2015-05-28/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/iot/2015-05-28/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/iot/2015-05-28/smoke.json.php b/lib/aws/Aws/data/iot/2015-05-28/smoke.json.php new file mode 100644 index 0000000..05c932e --- /dev/null +++ b/lib/aws/Aws/data/iot/2015-05-28/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/iot/2015-05-28/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListPolicies', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeThing', 'input' => [ 'thingName' => 'fake-thing', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/iot1click-devices/2018-05-14/api-2.json.php b/lib/aws/Aws/data/iot1click-devices/2018-05-14/api-2.json.php new file mode 100644 index 0000000..d092ffa --- /dev/null +++ b/lib/aws/Aws/data/iot1click-devices/2018-05-14/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/iot1click-devices/2018-05-14/api-2.json +return [ 'metadata' => [ 'apiVersion' => '2018-05-14', 'endpointPrefix' => 'devices.iot1click', 'signingName' => 'iot1click', 'serviceFullName' => 'AWS IoT 1-Click Devices Service', 'serviceId' => 'IoT 1Click Devices Service', 'protocol' => 'rest-json', 'jsonVersion' => '1.1', 'uid' => 'devices-2018-05-14', 'signatureVersion' => 'v4', ], 'operations' => [ 'ClaimDevicesByClaimCode' => [ 'name' => 'ClaimDevicesByClaimCode', 'http' => [ 'method' => 'PUT', 'requestUri' => '/claims/{claimCode}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ClaimDevicesByClaimCodeRequest', ], 'output' => [ 'shape' => 'ClaimDevicesByClaimCodeResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'DescribeDevice' => [ 'name' => 'DescribeDevice', 'http' => [ 'method' => 'GET', 'requestUri' => '/devices/{deviceId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeDeviceRequest', ], 'output' => [ 'shape' => 'DescribeDeviceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'FinalizeDeviceClaim' => [ 'name' => 'FinalizeDeviceClaim', 'http' => [ 'method' => 'PUT', 'requestUri' => '/devices/{deviceId}/finalize-claim', 'responseCode' => 200, ], 'input' => [ 'shape' => 'FinalizeDeviceClaimRequest', ], 'output' => [ 'shape' => 'FinalizeDeviceClaimResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'PreconditionFailedException', ], [ 'shape' => 'ResourceConflictException', ], ], ], 'GetDeviceMethods' => [ 'name' => 'GetDeviceMethods', 'http' => [ 'method' => 'GET', 'requestUri' => '/devices/{deviceId}/methods', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetDeviceMethodsRequest', ], 'output' => [ 'shape' => 'GetDeviceMethodsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'InitiateDeviceClaim' => [ 'name' => 'InitiateDeviceClaim', 'http' => [ 'method' => 'PUT', 'requestUri' => '/devices/{deviceId}/initiate-claim', 'responseCode' => 200, ], 'input' => [ 'shape' => 'InitiateDeviceClaimRequest', ], 'output' => [ 'shape' => 'InitiateDeviceClaimResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceConflictException', ], ], ], 'InvokeDeviceMethod' => [ 'name' => 'InvokeDeviceMethod', 'http' => [ 'method' => 'POST', 'requestUri' => '/devices/{deviceId}/methods', 'responseCode' => 200, ], 'input' => [ 'shape' => 'InvokeDeviceMethodRequest', ], 'output' => [ 'shape' => 'InvokeDeviceMethodResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'PreconditionFailedException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'RangeNotSatisfiableException', ], [ 'shape' => 'ResourceConflictException', ], ], ], 'ListDeviceEvents' => [ 'name' => 'ListDeviceEvents', 'http' => [ 'method' => 'GET', 'requestUri' => '/devices/{deviceId}/events', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDeviceEventsRequest', ], 'output' => [ 'shape' => 'ListDeviceEventsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'RangeNotSatisfiableException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListDevices' => [ 'name' => 'ListDevices', 'http' => [ 'method' => 'GET', 'requestUri' => '/devices', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDevicesRequest', ], 'output' => [ 'shape' => 'ListDevicesResponse', ], 'errors' => [ [ 'shape' => 'RangeNotSatisfiableException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/tags/{resource-arn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/tags/{resource-arn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'UnclaimDevice' => [ 'name' => 'UnclaimDevice', 'http' => [ 'method' => 'PUT', 'requestUri' => '/devices/{deviceId}/unclaim', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UnclaimDeviceRequest', ], 'output' => [ 'shape' => 'UnclaimDeviceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/tags/{resource-arn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'UpdateDeviceState' => [ 'name' => 'UpdateDeviceState', 'http' => [ 'method' => 'PUT', 'requestUri' => '/devices/{deviceId}/state', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateDeviceStateRequest', ], 'output' => [ 'shape' => 'UpdateDeviceStateResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], ], ], ], 'shapes' => [ 'Attributes' => [ 'type' => 'structure', 'members' => [], ], 'ClaimDevicesByClaimCodeRequest' => [ 'type' => 'structure', 'members' => [ 'ClaimCode' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'claimCode', ], ], 'required' => [ 'ClaimCode', ], ], 'ClaimDevicesByClaimCodeResponse' => [ 'type' => 'structure', 'members' => [ 'ClaimCode' => [ 'shape' => '__stringMin12Max40', 'locationName' => 'claimCode', ], 'Total' => [ 'shape' => '__integer', 'locationName' => 'total', ], ], ], 'DescribeDeviceRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'deviceId', ], ], 'required' => [ 'DeviceId', ], ], 'DescribeDeviceResponse' => [ 'type' => 'structure', 'members' => [ 'DeviceDescription' => [ 'shape' => 'DeviceDescription', 'locationName' => 'deviceDescription', ], ], ], 'Device' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'Attributes', 'locationName' => 'attributes', ], 'DeviceId' => [ 'shape' => '__string', 'locationName' => 'deviceId', ], 'Type' => [ 'shape' => '__string', 'locationName' => 'type', ], ], ], 'DeviceAttributes' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => '__string', ], ], 'DeviceClaimResponse' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => '__string', 'locationName' => 'state', ], ], ], 'DeviceDescription' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'Attributes' => [ 'shape' => 'DeviceAttributes', 'locationName' => 'attributes', ], 'DeviceId' => [ 'shape' => '__string', 'locationName' => 'deviceId', ], 'Enabled' => [ 'shape' => '__boolean', 'locationName' => 'enabled', ], 'RemainingLife' => [ 'shape' => '__doubleMin0Max100', 'locationName' => 'remainingLife', ], 'Type' => [ 'shape' => '__string', 'locationName' => 'type', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], ], 'DeviceEvent' => [ 'type' => 'structure', 'members' => [ 'Device' => [ 'shape' => 'Device', 'locationName' => 'device', ], 'StdEvent' => [ 'shape' => '__string', 'locationName' => 'stdEvent', ], ], ], 'DeviceEventsResponse' => [ 'type' => 'structure', 'members' => [ 'Events' => [ 'shape' => '__listOfDeviceEvent', 'locationName' => 'events', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'DeviceMethod' => [ 'type' => 'structure', 'members' => [ 'DeviceType' => [ 'shape' => '__string', 'locationName' => 'deviceType', ], 'MethodName' => [ 'shape' => '__string', 'locationName' => 'methodName', ], ], ], 'Empty' => [ 'type' => 'structure', 'members' => [], ], 'FinalizeDeviceClaimRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'deviceId', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], 'required' => [ 'DeviceId', ], ], 'FinalizeDeviceClaimResponse' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => '__string', 'locationName' => 'state', ], ], ], 'ForbiddenException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => '__string', 'locationName' => 'code', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 403, ], ], 'GetDeviceMethodsRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'deviceId', ], ], 'required' => [ 'DeviceId', ], ], 'GetDeviceMethodsResponse' => [ 'type' => 'structure', 'members' => [ 'DeviceMethods' => [ 'shape' => '__listOfDeviceMethod', 'locationName' => 'deviceMethods', ], ], ], 'InitiateDeviceClaimRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'deviceId', ], ], 'required' => [ 'DeviceId', ], ], 'InitiateDeviceClaimResponse' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => '__string', 'locationName' => 'state', ], ], ], 'InternalFailureException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => '__string', 'locationName' => 'code', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 500, ], ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => '__string', 'locationName' => 'code', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 400, ], ], 'InvokeDeviceMethodRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'deviceId', ], 'DeviceMethod' => [ 'shape' => 'DeviceMethod', 'locationName' => 'deviceMethod', ], 'DeviceMethodParameters' => [ 'shape' => '__string', 'locationName' => 'deviceMethodParameters', ], ], 'required' => [ 'DeviceId', ], ], 'InvokeDeviceMethodResponse' => [ 'type' => 'structure', 'members' => [ 'DeviceMethodResponse' => [ 'shape' => '__string', 'locationName' => 'deviceMethodResponse', ], ], ], 'ListDeviceEventsRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'deviceId', ], 'FromTimeStamp' => [ 'shape' => '__timestampIso8601', 'location' => 'querystring', 'locationName' => 'fromTimeStamp', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'ToTimeStamp' => [ 'shape' => '__timestampIso8601', 'location' => 'querystring', 'locationName' => 'toTimeStamp', ], ], 'required' => [ 'DeviceId', 'FromTimeStamp', 'ToTimeStamp', ], ], 'ListDeviceEventsResponse' => [ 'type' => 'structure', 'members' => [ 'Events' => [ 'shape' => '__listOfDeviceEvent', 'locationName' => 'events', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'ListDevicesRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceType' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'deviceType', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListDevicesResponse' => [ 'type' => 'structure', 'members' => [ 'Devices' => [ 'shape' => '__listOfDeviceDescription', 'locationName' => 'devices', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'resource-arn', ], ], 'required' => [ 'ResourceArn', ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], ], 'MaxResults' => [ 'type' => 'integer', 'min' => 1, 'max' => 250, ], 'PreconditionFailedException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => '__string', 'locationName' => 'code', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 412, ], ], 'RangeNotSatisfiableException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => '__string', 'locationName' => 'code', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 416, ], ], 'ResourceConflictException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => '__string', 'locationName' => 'code', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 409, ], ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => '__string', 'locationName' => 'code', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 404, ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'resource-arn', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], 'required' => [ 'ResourceArn', 'Tags', ], ], 'UnclaimDeviceRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'deviceId', ], ], 'required' => [ 'DeviceId', ], ], 'UnclaimDeviceResponse' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => '__string', 'locationName' => 'state', ], ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'resource-arn', ], 'TagKeys' => [ 'shape' => '__listOf__string', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], 'required' => [ 'TagKeys', 'ResourceArn', ], ], 'UpdateDeviceStateRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'deviceId', ], 'Enabled' => [ 'shape' => '__boolean', 'locationName' => 'enabled', ], ], 'required' => [ 'DeviceId', ], ], 'UpdateDeviceStateResponse' => [ 'type' => 'structure', 'members' => [], ], '__boolean' => [ 'type' => 'boolean', ], '__double' => [ 'type' => 'double', ], '__doubleMin0Max100' => [ 'type' => 'double', ], '__integer' => [ 'type' => 'integer', ], '__listOfDeviceDescription' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeviceDescription', ], ], '__listOfDeviceEvent' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeviceEvent', ], ], '__listOfDeviceMethod' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeviceMethod', ], ], '__listOf__string' => [ 'type' => 'list', 'member' => [ 'shape' => '__string', ], ], '__long' => [ 'type' => 'long', ], '__mapOf__string' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => '__string', ], ], '__string' => [ 'type' => 'string', ], '__stringMin12Max40' => [ 'type' => 'string', 'min' => 12, 'max' => 40, ], '__timestampIso8601' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], '__timestampUnix' => [ 'type' => 'timestamp', 'timestampFormat' => 'unixTimestamp', ], ],]; diff --git a/lib/aws/Aws/data/iot1click-projects/2018-05-14/api-2.json.php b/lib/aws/Aws/data/iot1click-projects/2018-05-14/api-2.json.php new file mode 100644 index 0000000..6512325 --- /dev/null +++ b/lib/aws/Aws/data/iot1click-projects/2018-05-14/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/iot1click-projects/2018-05-14/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-05-14', 'endpointPrefix' => 'projects.iot1click', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'AWS IoT 1-Click Projects', 'serviceFullName' => 'AWS IoT 1-Click Projects Service', 'serviceId' => 'IoT 1Click Projects', 'signatureVersion' => 'v4', 'signingName' => 'iot1click', 'uid' => 'iot1click-projects-2018-05-14', ], 'operations' => [ 'AssociateDeviceWithPlacement' => [ 'name' => 'AssociateDeviceWithPlacement', 'http' => [ 'method' => 'PUT', 'requestUri' => '/projects/{projectName}/placements/{placementName}/devices/{deviceTemplateName}', ], 'input' => [ 'shape' => 'AssociateDeviceWithPlacementRequest', ], 'output' => [ 'shape' => 'AssociateDeviceWithPlacementResponse', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'CreatePlacement' => [ 'name' => 'CreatePlacement', 'http' => [ 'method' => 'POST', 'requestUri' => '/projects/{projectName}/placements', ], 'input' => [ 'shape' => 'CreatePlacementRequest', ], 'output' => [ 'shape' => 'CreatePlacementResponse', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'CreateProject' => [ 'name' => 'CreateProject', 'http' => [ 'method' => 'POST', 'requestUri' => '/projects', ], 'input' => [ 'shape' => 'CreateProjectRequest', ], 'output' => [ 'shape' => 'CreateProjectResponse', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceConflictException', ], ], ], 'DeletePlacement' => [ 'name' => 'DeletePlacement', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/projects/{projectName}/placements/{placementName}', ], 'input' => [ 'shape' => 'DeletePlacementRequest', ], 'output' => [ 'shape' => 'DeletePlacementResponse', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteProject' => [ 'name' => 'DeleteProject', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/projects/{projectName}', ], 'input' => [ 'shape' => 'DeleteProjectRequest', ], 'output' => [ 'shape' => 'DeleteProjectResponse', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribePlacement' => [ 'name' => 'DescribePlacement', 'http' => [ 'method' => 'GET', 'requestUri' => '/projects/{projectName}/placements/{placementName}', ], 'input' => [ 'shape' => 'DescribePlacementRequest', ], 'output' => [ 'shape' => 'DescribePlacementResponse', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeProject' => [ 'name' => 'DescribeProject', 'http' => [ 'method' => 'GET', 'requestUri' => '/projects/{projectName}', ], 'input' => [ 'shape' => 'DescribeProjectRequest', ], 'output' => [ 'shape' => 'DescribeProjectResponse', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DisassociateDeviceFromPlacement' => [ 'name' => 'DisassociateDeviceFromPlacement', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/projects/{projectName}/placements/{placementName}/devices/{deviceTemplateName}', ], 'input' => [ 'shape' => 'DisassociateDeviceFromPlacementRequest', ], 'output' => [ 'shape' => 'DisassociateDeviceFromPlacementResponse', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetDevicesInPlacement' => [ 'name' => 'GetDevicesInPlacement', 'http' => [ 'method' => 'GET', 'requestUri' => '/projects/{projectName}/placements/{placementName}/devices', ], 'input' => [ 'shape' => 'GetDevicesInPlacementRequest', ], 'output' => [ 'shape' => 'GetDevicesInPlacementResponse', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListPlacements' => [ 'name' => 'ListPlacements', 'http' => [ 'method' => 'GET', 'requestUri' => '/projects/{projectName}/placements', ], 'input' => [ 'shape' => 'ListPlacementsRequest', ], 'output' => [ 'shape' => 'ListPlacementsResponse', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListProjects' => [ 'name' => 'ListProjects', 'http' => [ 'method' => 'GET', 'requestUri' => '/projects', ], 'input' => [ 'shape' => 'ListProjectsRequest', ], 'output' => [ 'shape' => 'ListProjectsResponse', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/tags/{resourceArn}', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/tags/{resourceArn}', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/tags/{resourceArn}', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdatePlacement' => [ 'name' => 'UpdatePlacement', 'http' => [ 'method' => 'PUT', 'requestUri' => '/projects/{projectName}/placements/{placementName}', ], 'input' => [ 'shape' => 'UpdatePlacementRequest', ], 'output' => [ 'shape' => 'UpdatePlacementResponse', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateProject' => [ 'name' => 'UpdateProject', 'http' => [ 'method' => 'PUT', 'requestUri' => '/projects/{projectName}', ], 'input' => [ 'shape' => 'UpdateProjectRequest', ], 'output' => [ 'shape' => 'UpdateProjectResponse', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], ], 'shapes' => [ 'AssociateDeviceWithPlacementRequest' => [ 'type' => 'structure', 'required' => [ 'projectName', 'placementName', 'deviceId', 'deviceTemplateName', ], 'members' => [ 'projectName' => [ 'shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName', ], 'placementName' => [ 'shape' => 'PlacementName', 'location' => 'uri', 'locationName' => 'placementName', ], 'deviceId' => [ 'shape' => 'DeviceId', ], 'deviceTemplateName' => [ 'shape' => 'DeviceTemplateName', 'location' => 'uri', 'locationName' => 'deviceTemplateName', ], ], ], 'AssociateDeviceWithPlacementResponse' => [ 'type' => 'structure', 'members' => [], ], 'AttributeDefaultValue' => [ 'type' => 'string', 'max' => 800, ], 'AttributeName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'AttributeValue' => [ 'type' => 'string', 'max' => 800, ], 'Code' => [ 'type' => 'string', ], 'CreatePlacementRequest' => [ 'type' => 'structure', 'required' => [ 'placementName', 'projectName', ], 'members' => [ 'placementName' => [ 'shape' => 'PlacementName', ], 'projectName' => [ 'shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName', ], 'attributes' => [ 'shape' => 'PlacementAttributeMap', ], ], ], 'CreatePlacementResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateProjectRequest' => [ 'type' => 'structure', 'required' => [ 'projectName', ], 'members' => [ 'projectName' => [ 'shape' => 'ProjectName', ], 'description' => [ 'shape' => 'Description', ], 'placementTemplate' => [ 'shape' => 'PlacementTemplate', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateProjectResponse' => [ 'type' => 'structure', 'members' => [], ], 'DefaultPlacementAttributeMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttributeName', ], 'value' => [ 'shape' => 'AttributeDefaultValue', ], ], 'DeletePlacementRequest' => [ 'type' => 'structure', 'required' => [ 'placementName', 'projectName', ], 'members' => [ 'placementName' => [ 'shape' => 'PlacementName', 'location' => 'uri', 'locationName' => 'placementName', ], 'projectName' => [ 'shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName', ], ], ], 'DeletePlacementResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteProjectRequest' => [ 'type' => 'structure', 'required' => [ 'projectName', ], 'members' => [ 'projectName' => [ 'shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName', ], ], ], 'DeleteProjectResponse' => [ 'type' => 'structure', 'members' => [], ], 'DescribePlacementRequest' => [ 'type' => 'structure', 'required' => [ 'placementName', 'projectName', ], 'members' => [ 'placementName' => [ 'shape' => 'PlacementName', 'location' => 'uri', 'locationName' => 'placementName', ], 'projectName' => [ 'shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName', ], ], ], 'DescribePlacementResponse' => [ 'type' => 'structure', 'required' => [ 'placement', ], 'members' => [ 'placement' => [ 'shape' => 'PlacementDescription', ], ], ], 'DescribeProjectRequest' => [ 'type' => 'structure', 'required' => [ 'projectName', ], 'members' => [ 'projectName' => [ 'shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName', ], ], ], 'DescribeProjectResponse' => [ 'type' => 'structure', 'required' => [ 'project', ], 'members' => [ 'project' => [ 'shape' => 'ProjectDescription', ], ], ], 'Description' => [ 'type' => 'string', 'max' => 500, 'min' => 0, ], 'DeviceCallbackKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'DeviceCallbackOverrideMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'DeviceCallbackKey', ], 'value' => [ 'shape' => 'DeviceCallbackValue', ], ], 'DeviceCallbackValue' => [ 'type' => 'string', 'max' => 200, ], 'DeviceId' => [ 'type' => 'string', 'max' => 32, 'min' => 1, ], 'DeviceMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'DeviceTemplateName', ], 'value' => [ 'shape' => 'DeviceId', ], ], 'DeviceTemplate' => [ 'type' => 'structure', 'members' => [ 'deviceType' => [ 'shape' => 'DeviceType', ], 'callbackOverrides' => [ 'shape' => 'DeviceCallbackOverrideMap', ], ], ], 'DeviceTemplateMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'DeviceTemplateName', ], 'value' => [ 'shape' => 'DeviceTemplate', ], ], 'DeviceTemplateName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[a-zA-Z0-9_-]+$', ], 'DeviceType' => [ 'type' => 'string', 'max' => 128, ], 'DisassociateDeviceFromPlacementRequest' => [ 'type' => 'structure', 'required' => [ 'projectName', 'placementName', 'deviceTemplateName', ], 'members' => [ 'projectName' => [ 'shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName', ], 'placementName' => [ 'shape' => 'PlacementName', 'location' => 'uri', 'locationName' => 'placementName', ], 'deviceTemplateName' => [ 'shape' => 'DeviceTemplateName', 'location' => 'uri', 'locationName' => 'deviceTemplateName', ], ], ], 'DisassociateDeviceFromPlacementResponse' => [ 'type' => 'structure', 'members' => [], ], 'GetDevicesInPlacementRequest' => [ 'type' => 'structure', 'required' => [ 'projectName', 'placementName', ], 'members' => [ 'projectName' => [ 'shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName', ], 'placementName' => [ 'shape' => 'PlacementName', 'location' => 'uri', 'locationName' => 'placementName', ], ], ], 'GetDevicesInPlacementResponse' => [ 'type' => 'structure', 'required' => [ 'devices', ], 'members' => [ 'devices' => [ 'shape' => 'DeviceMap', ], ], ], 'InternalFailureException' => [ 'type' => 'structure', 'required' => [ 'code', 'message', ], 'members' => [ 'code' => [ 'shape' => 'Code', ], 'message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, ], 'InvalidRequestException' => [ 'type' => 'structure', 'required' => [ 'code', 'message', ], 'members' => [ 'code' => [ 'shape' => 'Code', ], 'message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ListPlacementsRequest' => [ 'type' => 'structure', 'required' => [ 'projectName', ], 'members' => [ 'projectName' => [ 'shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListPlacementsResponse' => [ 'type' => 'structure', 'required' => [ 'placements', ], 'members' => [ 'placements' => [ 'shape' => 'PlacementSummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListProjectsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListProjectsResponse' => [ 'type' => 'structure', 'required' => [ 'projects', ], 'members' => [ 'projects' => [ 'shape' => 'ProjectSummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'ProjectArn', 'location' => 'uri', 'locationName' => 'resourceArn', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'tags' => [ 'shape' => 'TagMap', ], ], ], 'MaxResults' => [ 'type' => 'integer', 'max' => 250, 'min' => 1, ], 'Message' => [ 'type' => 'string', ], 'NextToken' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'PlacementAttributeMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttributeName', ], 'value' => [ 'shape' => 'AttributeValue', ], ], 'PlacementDescription' => [ 'type' => 'structure', 'required' => [ 'projectName', 'placementName', 'attributes', 'createdDate', 'updatedDate', ], 'members' => [ 'projectName' => [ 'shape' => 'ProjectName', ], 'placementName' => [ 'shape' => 'PlacementName', ], 'attributes' => [ 'shape' => 'PlacementAttributeMap', ], 'createdDate' => [ 'shape' => 'Time', ], 'updatedDate' => [ 'shape' => 'Time', ], ], ], 'PlacementName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[a-zA-Z0-9_-]+$', ], 'PlacementSummary' => [ 'type' => 'structure', 'required' => [ 'projectName', 'placementName', 'createdDate', 'updatedDate', ], 'members' => [ 'projectName' => [ 'shape' => 'ProjectName', ], 'placementName' => [ 'shape' => 'PlacementName', ], 'createdDate' => [ 'shape' => 'Time', ], 'updatedDate' => [ 'shape' => 'Time', ], ], ], 'PlacementSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlacementSummary', ], ], 'PlacementTemplate' => [ 'type' => 'structure', 'members' => [ 'defaultAttributes' => [ 'shape' => 'DefaultPlacementAttributeMap', ], 'deviceTemplates' => [ 'shape' => 'DeviceTemplateMap', ], ], ], 'ProjectArn' => [ 'type' => 'string', 'pattern' => '^arn:aws:iot1click:[A-Za-z0-9_/.-]{0,63}:\\d+:projects/[0-9A-Za-z_-]{1,128}$', ], 'ProjectDescription' => [ 'type' => 'structure', 'required' => [ 'projectName', 'createdDate', 'updatedDate', ], 'members' => [ 'arn' => [ 'shape' => 'ProjectArn', ], 'projectName' => [ 'shape' => 'ProjectName', ], 'description' => [ 'shape' => 'Description', ], 'createdDate' => [ 'shape' => 'Time', ], 'updatedDate' => [ 'shape' => 'Time', ], 'placementTemplate' => [ 'shape' => 'PlacementTemplate', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'ProjectName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[0-9A-Za-z_-]+$', ], 'ProjectSummary' => [ 'type' => 'structure', 'required' => [ 'projectName', 'createdDate', 'updatedDate', ], 'members' => [ 'arn' => [ 'shape' => 'ProjectArn', ], 'projectName' => [ 'shape' => 'ProjectName', ], 'createdDate' => [ 'shape' => 'Time', ], 'updatedDate' => [ 'shape' => 'Time', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'ProjectSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProjectSummary', ], ], 'ResourceConflictException' => [ 'type' => 'structure', 'required' => [ 'code', 'message', ], 'members' => [ 'code' => [ 'shape' => 'Code', ], 'message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'required' => [ 'code', 'message', ], 'members' => [ 'code' => [ 'shape' => 'Code', ], 'message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^(?!aws:)[a-zA-Z+-=._:/]+$', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 50, 'min' => 1, ], 'TagMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], 'max' => 50, 'min' => 1, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tags', ], 'members' => [ 'resourceArn' => [ 'shape' => 'ProjectArn', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, ], 'Time' => [ 'type' => 'timestamp', ], 'TooManyRequestsException' => [ 'type' => 'structure', 'required' => [ 'code', 'message', ], 'members' => [ 'code' => [ 'shape' => 'Code', ], 'message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tagKeys', ], 'members' => [ 'resourceArn' => [ 'shape' => 'ProjectArn', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'tagKeys' => [ 'shape' => 'TagKeyList', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdatePlacementRequest' => [ 'type' => 'structure', 'required' => [ 'placementName', 'projectName', ], 'members' => [ 'placementName' => [ 'shape' => 'PlacementName', 'location' => 'uri', 'locationName' => 'placementName', ], 'projectName' => [ 'shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName', ], 'attributes' => [ 'shape' => 'PlacementAttributeMap', ], ], ], 'UpdatePlacementResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateProjectRequest' => [ 'type' => 'structure', 'required' => [ 'projectName', ], 'members' => [ 'projectName' => [ 'shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName', ], 'description' => [ 'shape' => 'Description', ], 'placementTemplate' => [ 'shape' => 'PlacementTemplate', ], ], ], 'UpdateProjectResponse' => [ 'type' => 'structure', 'members' => [], ], ],]; diff --git a/lib/aws/Aws/data/iot1click-projects/2018-05-14/paginators-1.json.php b/lib/aws/Aws/data/iot1click-projects/2018-05-14/paginators-1.json.php new file mode 100644 index 0000000..e911c14 --- /dev/null +++ b/lib/aws/Aws/data/iot1click-projects/2018-05-14/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/iot1click-projects/2018-05-14/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/iotanalytics/2017-11-27/api-2.json.php b/lib/aws/Aws/data/iotanalytics/2017-11-27/api-2.json.php new file mode 100644 index 0000000..1c5fce8 --- /dev/null +++ b/lib/aws/Aws/data/iotanalytics/2017-11-27/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/iotanalytics/2017-11-27/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-11-27', 'endpointPrefix' => 'iotanalytics', 'protocol' => 'rest-json', 'serviceFullName' => 'AWS IoT Analytics', 'serviceId' => 'IoTAnalytics', 'signatureVersion' => 'v4', 'signingName' => 'iotanalytics', 'uid' => 'iotanalytics-2017-11-27', ], 'operations' => [ 'BatchPutMessage' => [ 'name' => 'BatchPutMessage', 'http' => [ 'method' => 'POST', 'requestUri' => '/messages/batch', 'responseCode' => 200, ], 'input' => [ 'shape' => 'BatchPutMessageRequest', ], 'output' => [ 'shape' => 'BatchPutMessageResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CancelPipelineReprocessing' => [ 'name' => 'CancelPipelineReprocessing', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/pipelines/{pipelineName}/reprocessing/{reprocessingId}', ], 'input' => [ 'shape' => 'CancelPipelineReprocessingRequest', ], 'output' => [ 'shape' => 'CancelPipelineReprocessingResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateChannel' => [ 'name' => 'CreateChannel', 'http' => [ 'method' => 'POST', 'requestUri' => '/channels', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateChannelRequest', ], 'output' => [ 'shape' => 'CreateChannelResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateDataset' => [ 'name' => 'CreateDataset', 'http' => [ 'method' => 'POST', 'requestUri' => '/datasets', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDatasetRequest', ], 'output' => [ 'shape' => 'CreateDatasetResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateDatasetContent' => [ 'name' => 'CreateDatasetContent', 'http' => [ 'method' => 'POST', 'requestUri' => '/datasets/{datasetName}/content', ], 'input' => [ 'shape' => 'CreateDatasetContentRequest', ], 'output' => [ 'shape' => 'CreateDatasetContentResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateDatastore' => [ 'name' => 'CreateDatastore', 'http' => [ 'method' => 'POST', 'requestUri' => '/datastores', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDatastoreRequest', ], 'output' => [ 'shape' => 'CreateDatastoreResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreatePipeline' => [ 'name' => 'CreatePipeline', 'http' => [ 'method' => 'POST', 'requestUri' => '/pipelines', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreatePipelineRequest', ], 'output' => [ 'shape' => 'CreatePipelineResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'DeleteChannel' => [ 'name' => 'DeleteChannel', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/channels/{channelName}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteChannelRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteDataset' => [ 'name' => 'DeleteDataset', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/datasets/{datasetName}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDatasetRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteDatasetContent' => [ 'name' => 'DeleteDatasetContent', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/datasets/{datasetName}/content', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDatasetContentRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteDatastore' => [ 'name' => 'DeleteDatastore', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/datastores/{datastoreName}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDatastoreRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeletePipeline' => [ 'name' => 'DeletePipeline', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/pipelines/{pipelineName}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeletePipelineRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DescribeChannel' => [ 'name' => 'DescribeChannel', 'http' => [ 'method' => 'GET', 'requestUri' => '/channels/{channelName}', ], 'input' => [ 'shape' => 'DescribeChannelRequest', ], 'output' => [ 'shape' => 'DescribeChannelResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DescribeDataset' => [ 'name' => 'DescribeDataset', 'http' => [ 'method' => 'GET', 'requestUri' => '/datasets/{datasetName}', ], 'input' => [ 'shape' => 'DescribeDatasetRequest', ], 'output' => [ 'shape' => 'DescribeDatasetResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DescribeDatastore' => [ 'name' => 'DescribeDatastore', 'http' => [ 'method' => 'GET', 'requestUri' => '/datastores/{datastoreName}', ], 'input' => [ 'shape' => 'DescribeDatastoreRequest', ], 'output' => [ 'shape' => 'DescribeDatastoreResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DescribeLoggingOptions' => [ 'name' => 'DescribeLoggingOptions', 'http' => [ 'method' => 'GET', 'requestUri' => '/logging', ], 'input' => [ 'shape' => 'DescribeLoggingOptionsRequest', ], 'output' => [ 'shape' => 'DescribeLoggingOptionsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DescribePipeline' => [ 'name' => 'DescribePipeline', 'http' => [ 'method' => 'GET', 'requestUri' => '/pipelines/{pipelineName}', ], 'input' => [ 'shape' => 'DescribePipelineRequest', ], 'output' => [ 'shape' => 'DescribePipelineResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetDatasetContent' => [ 'name' => 'GetDatasetContent', 'http' => [ 'method' => 'GET', 'requestUri' => '/datasets/{datasetName}/content', ], 'input' => [ 'shape' => 'GetDatasetContentRequest', ], 'output' => [ 'shape' => 'GetDatasetContentResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListChannels' => [ 'name' => 'ListChannels', 'http' => [ 'method' => 'GET', 'requestUri' => '/channels', ], 'input' => [ 'shape' => 'ListChannelsRequest', ], 'output' => [ 'shape' => 'ListChannelsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListDatasetContents' => [ 'name' => 'ListDatasetContents', 'http' => [ 'method' => 'GET', 'requestUri' => '/datasets/{datasetName}/contents', ], 'input' => [ 'shape' => 'ListDatasetContentsRequest', ], 'output' => [ 'shape' => 'ListDatasetContentsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListDatasets' => [ 'name' => 'ListDatasets', 'http' => [ 'method' => 'GET', 'requestUri' => '/datasets', ], 'input' => [ 'shape' => 'ListDatasetsRequest', ], 'output' => [ 'shape' => 'ListDatasetsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListDatastores' => [ 'name' => 'ListDatastores', 'http' => [ 'method' => 'GET', 'requestUri' => '/datastores', ], 'input' => [ 'shape' => 'ListDatastoresRequest', ], 'output' => [ 'shape' => 'ListDatastoresResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListPipelines' => [ 'name' => 'ListPipelines', 'http' => [ 'method' => 'GET', 'requestUri' => '/pipelines', ], 'input' => [ 'shape' => 'ListPipelinesRequest', ], 'output' => [ 'shape' => 'ListPipelinesResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/tags', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'PutLoggingOptions' => [ 'name' => 'PutLoggingOptions', 'http' => [ 'method' => 'PUT', 'requestUri' => '/logging', ], 'input' => [ 'shape' => 'PutLoggingOptionsRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'RunPipelineActivity' => [ 'name' => 'RunPipelineActivity', 'http' => [ 'method' => 'POST', 'requestUri' => '/pipelineactivities/run', ], 'input' => [ 'shape' => 'RunPipelineActivityRequest', ], 'output' => [ 'shape' => 'RunPipelineActivityResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'SampleChannelData' => [ 'name' => 'SampleChannelData', 'http' => [ 'method' => 'GET', 'requestUri' => '/channels/{channelName}/sample', ], 'input' => [ 'shape' => 'SampleChannelDataRequest', ], 'output' => [ 'shape' => 'SampleChannelDataResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'StartPipelineReprocessing' => [ 'name' => 'StartPipelineReprocessing', 'http' => [ 'method' => 'POST', 'requestUri' => '/pipelines/{pipelineName}/reprocessing', ], 'input' => [ 'shape' => 'StartPipelineReprocessingRequest', ], 'output' => [ 'shape' => 'StartPipelineReprocessingResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/tags', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/tags', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateChannel' => [ 'name' => 'UpdateChannel', 'http' => [ 'method' => 'PUT', 'requestUri' => '/channels/{channelName}', ], 'input' => [ 'shape' => 'UpdateChannelRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdateDataset' => [ 'name' => 'UpdateDataset', 'http' => [ 'method' => 'PUT', 'requestUri' => '/datasets/{datasetName}', ], 'input' => [ 'shape' => 'UpdateDatasetRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdateDatastore' => [ 'name' => 'UpdateDatastore', 'http' => [ 'method' => 'PUT', 'requestUri' => '/datastores/{datastoreName}', ], 'input' => [ 'shape' => 'UpdateDatastoreRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdatePipeline' => [ 'name' => 'UpdatePipeline', 'http' => [ 'method' => 'PUT', 'requestUri' => '/pipelines/{pipelineName}', ], 'input' => [ 'shape' => 'UpdatePipelineRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'LimitExceededException', ], ], ], ], 'shapes' => [ 'ActivityBatchSize' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'ActivityName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'AddAttributesActivity' => [ 'type' => 'structure', 'required' => [ 'name', 'attributes', ], 'members' => [ 'name' => [ 'shape' => 'ActivityName', ], 'attributes' => [ 'shape' => 'AttributeNameMapping', ], 'next' => [ 'shape' => 'ActivityName', ], ], ], 'AttributeName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'AttributeNameMapping' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttributeName', ], 'value' => [ 'shape' => 'AttributeName', ], 'max' => 50, 'min' => 1, ], 'AttributeNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeName', ], 'max' => 50, 'min' => 1, ], 'BatchPutMessageErrorEntries' => [ 'type' => 'list', 'member' => [ 'shape' => 'BatchPutMessageErrorEntry', ], ], 'BatchPutMessageErrorEntry' => [ 'type' => 'structure', 'members' => [ 'messageId' => [ 'shape' => 'MessageId', ], 'errorCode' => [ 'shape' => 'ErrorCode', ], 'errorMessage' => [ 'shape' => 'ErrorMessage', ], ], ], 'BatchPutMessageRequest' => [ 'type' => 'structure', 'required' => [ 'channelName', 'messages', ], 'members' => [ 'channelName' => [ 'shape' => 'ChannelName', ], 'messages' => [ 'shape' => 'Messages', ], ], ], 'BatchPutMessageResponse' => [ 'type' => 'structure', 'members' => [ 'batchPutMessageErrorEntries' => [ 'shape' => 'BatchPutMessageErrorEntries', ], ], ], 'CancelPipelineReprocessingRequest' => [ 'type' => 'structure', 'required' => [ 'pipelineName', 'reprocessingId', ], 'members' => [ 'pipelineName' => [ 'shape' => 'PipelineName', 'location' => 'uri', 'locationName' => 'pipelineName', ], 'reprocessingId' => [ 'shape' => 'ReprocessingId', 'location' => 'uri', 'locationName' => 'reprocessingId', ], ], ], 'CancelPipelineReprocessingResponse' => [ 'type' => 'structure', 'members' => [], ], 'Channel' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ChannelName', ], 'arn' => [ 'shape' => 'ChannelArn', ], 'status' => [ 'shape' => 'ChannelStatus', ], 'retentionPeriod' => [ 'shape' => 'RetentionPeriod', ], 'creationTime' => [ 'shape' => 'Timestamp', ], 'lastUpdateTime' => [ 'shape' => 'Timestamp', ], ], ], 'ChannelActivity' => [ 'type' => 'structure', 'required' => [ 'name', 'channelName', ], 'members' => [ 'name' => [ 'shape' => 'ActivityName', ], 'channelName' => [ 'shape' => 'ChannelName', ], 'next' => [ 'shape' => 'ActivityName', ], ], ], 'ChannelArn' => [ 'type' => 'string', ], 'ChannelName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[a-zA-Z0-9_]+$', ], 'ChannelStatistics' => [ 'type' => 'structure', 'members' => [ 'size' => [ 'shape' => 'EstimatedResourceSize', ], ], ], 'ChannelStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'ACTIVE', 'DELETING', ], ], 'ChannelSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ChannelSummary', ], ], 'ChannelSummary' => [ 'type' => 'structure', 'members' => [ 'channelName' => [ 'shape' => 'ChannelName', ], 'status' => [ 'shape' => 'ChannelStatus', ], 'creationTime' => [ 'shape' => 'Timestamp', ], 'lastUpdateTime' => [ 'shape' => 'Timestamp', ], ], ], 'ComputeType' => [ 'type' => 'string', 'enum' => [ 'ACU_1', 'ACU_2', ], ], 'ContainerDatasetAction' => [ 'type' => 'structure', 'required' => [ 'image', 'executionRoleArn', 'resourceConfiguration', ], 'members' => [ 'image' => [ 'shape' => 'Image', ], 'executionRoleArn' => [ 'shape' => 'RoleArn', ], 'resourceConfiguration' => [ 'shape' => 'ResourceConfiguration', ], 'variables' => [ 'shape' => 'Variables', ], ], ], 'CreateChannelRequest' => [ 'type' => 'structure', 'required' => [ 'channelName', ], 'members' => [ 'channelName' => [ 'shape' => 'ChannelName', ], 'retentionPeriod' => [ 'shape' => 'RetentionPeriod', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateChannelResponse' => [ 'type' => 'structure', 'members' => [ 'channelName' => [ 'shape' => 'ChannelName', ], 'channelArn' => [ 'shape' => 'ChannelArn', ], 'retentionPeriod' => [ 'shape' => 'RetentionPeriod', ], ], ], 'CreateDatasetContentRequest' => [ 'type' => 'structure', 'required' => [ 'datasetName', ], 'members' => [ 'datasetName' => [ 'shape' => 'DatasetName', 'location' => 'uri', 'locationName' => 'datasetName', ], ], ], 'CreateDatasetContentResponse' => [ 'type' => 'structure', 'members' => [ 'versionId' => [ 'shape' => 'DatasetContentVersion', ], ], ], 'CreateDatasetRequest' => [ 'type' => 'structure', 'required' => [ 'datasetName', 'actions', ], 'members' => [ 'datasetName' => [ 'shape' => 'DatasetName', ], 'actions' => [ 'shape' => 'DatasetActions', ], 'triggers' => [ 'shape' => 'DatasetTriggers', ], 'contentDeliveryRules' => [ 'shape' => 'DatasetContentDeliveryRules', ], 'retentionPeriod' => [ 'shape' => 'RetentionPeriod', ], 'versioningConfiguration' => [ 'shape' => 'VersioningConfiguration', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDatasetResponse' => [ 'type' => 'structure', 'members' => [ 'datasetName' => [ 'shape' => 'DatasetName', ], 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'retentionPeriod' => [ 'shape' => 'RetentionPeriod', ], ], ], 'CreateDatastoreRequest' => [ 'type' => 'structure', 'required' => [ 'datastoreName', ], 'members' => [ 'datastoreName' => [ 'shape' => 'DatastoreName', ], 'retentionPeriod' => [ 'shape' => 'RetentionPeriod', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDatastoreResponse' => [ 'type' => 'structure', 'members' => [ 'datastoreName' => [ 'shape' => 'DatastoreName', ], 'datastoreArn' => [ 'shape' => 'DatastoreArn', ], 'retentionPeriod' => [ 'shape' => 'RetentionPeriod', ], ], ], 'CreatePipelineRequest' => [ 'type' => 'structure', 'required' => [ 'pipelineName', 'pipelineActivities', ], 'members' => [ 'pipelineName' => [ 'shape' => 'PipelineName', ], 'pipelineActivities' => [ 'shape' => 'PipelineActivities', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreatePipelineResponse' => [ 'type' => 'structure', 'members' => [ 'pipelineName' => [ 'shape' => 'PipelineName', ], 'pipelineArn' => [ 'shape' => 'PipelineArn', ], ], ], 'Dataset' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'DatasetName', ], 'arn' => [ 'shape' => 'DatasetArn', ], 'actions' => [ 'shape' => 'DatasetActions', ], 'triggers' => [ 'shape' => 'DatasetTriggers', ], 'contentDeliveryRules' => [ 'shape' => 'DatasetContentDeliveryRules', ], 'status' => [ 'shape' => 'DatasetStatus', ], 'creationTime' => [ 'shape' => 'Timestamp', ], 'lastUpdateTime' => [ 'shape' => 'Timestamp', ], 'retentionPeriod' => [ 'shape' => 'RetentionPeriod', ], 'versioningConfiguration' => [ 'shape' => 'VersioningConfiguration', ], ], ], 'DatasetAction' => [ 'type' => 'structure', 'members' => [ 'actionName' => [ 'shape' => 'DatasetActionName', ], 'queryAction' => [ 'shape' => 'SqlQueryDatasetAction', ], 'containerAction' => [ 'shape' => 'ContainerDatasetAction', ], ], ], 'DatasetActionName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[a-zA-Z0-9_]+$', ], 'DatasetActionSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'DatasetActionSummary', ], 'max' => 1, 'min' => 1, ], 'DatasetActionSummary' => [ 'type' => 'structure', 'members' => [ 'actionName' => [ 'shape' => 'DatasetActionName', ], 'actionType' => [ 'shape' => 'DatasetActionType', ], ], ], 'DatasetActionType' => [ 'type' => 'string', 'enum' => [ 'QUERY', 'CONTAINER', ], ], 'DatasetActions' => [ 'type' => 'list', 'member' => [ 'shape' => 'DatasetAction', ], 'max' => 1, 'min' => 1, ], 'DatasetArn' => [ 'type' => 'string', ], 'DatasetContentDeliveryDestination' => [ 'type' => 'structure', 'members' => [ 'iotEventsDestinationConfiguration' => [ 'shape' => 'IotEventsDestinationConfiguration', ], ], ], 'DatasetContentDeliveryRule' => [ 'type' => 'structure', 'required' => [ 'destination', ], 'members' => [ 'entryName' => [ 'shape' => 'EntryName', ], 'destination' => [ 'shape' => 'DatasetContentDeliveryDestination', ], ], ], 'DatasetContentDeliveryRules' => [ 'type' => 'list', 'member' => [ 'shape' => 'DatasetContentDeliveryRule', ], 'max' => 20, 'min' => 0, ], 'DatasetContentState' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'SUCCEEDED', 'FAILED', ], ], 'DatasetContentStatus' => [ 'type' => 'structure', 'members' => [ 'state' => [ 'shape' => 'DatasetContentState', ], 'reason' => [ 'shape' => 'Reason', ], ], ], 'DatasetContentSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'DatasetContentSummary', ], ], 'DatasetContentSummary' => [ 'type' => 'structure', 'members' => [ 'version' => [ 'shape' => 'DatasetContentVersion', ], 'status' => [ 'shape' => 'DatasetContentStatus', ], 'creationTime' => [ 'shape' => 'Timestamp', ], 'scheduleTime' => [ 'shape' => 'Timestamp', ], ], ], 'DatasetContentVersion' => [ 'type' => 'string', 'max' => 36, 'min' => 7, ], 'DatasetContentVersionValue' => [ 'type' => 'structure', 'required' => [ 'datasetName', ], 'members' => [ 'datasetName' => [ 'shape' => 'DatasetName', ], ], ], 'DatasetEntries' => [ 'type' => 'list', 'member' => [ 'shape' => 'DatasetEntry', ], ], 'DatasetEntry' => [ 'type' => 'structure', 'members' => [ 'entryName' => [ 'shape' => 'EntryName', ], 'dataURI' => [ 'shape' => 'PresignedURI', ], ], ], 'DatasetName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[a-zA-Z0-9_]+$', ], 'DatasetStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'ACTIVE', 'DELETING', ], ], 'DatasetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'DatasetSummary', ], ], 'DatasetSummary' => [ 'type' => 'structure', 'members' => [ 'datasetName' => [ 'shape' => 'DatasetName', ], 'status' => [ 'shape' => 'DatasetStatus', ], 'creationTime' => [ 'shape' => 'Timestamp', ], 'lastUpdateTime' => [ 'shape' => 'Timestamp', ], 'triggers' => [ 'shape' => 'DatasetTriggers', ], 'actions' => [ 'shape' => 'DatasetActionSummaries', ], ], ], 'DatasetTrigger' => [ 'type' => 'structure', 'members' => [ 'schedule' => [ 'shape' => 'Schedule', ], 'dataset' => [ 'shape' => 'TriggeringDataset', ], ], ], 'DatasetTriggers' => [ 'type' => 'list', 'member' => [ 'shape' => 'DatasetTrigger', ], 'max' => 5, 'min' => 0, ], 'Datastore' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'DatastoreName', ], 'arn' => [ 'shape' => 'DatastoreArn', ], 'status' => [ 'shape' => 'DatastoreStatus', ], 'retentionPeriod' => [ 'shape' => 'RetentionPeriod', ], 'creationTime' => [ 'shape' => 'Timestamp', ], 'lastUpdateTime' => [ 'shape' => 'Timestamp', ], ], ], 'DatastoreActivity' => [ 'type' => 'structure', 'required' => [ 'name', 'datastoreName', ], 'members' => [ 'name' => [ 'shape' => 'ActivityName', ], 'datastoreName' => [ 'shape' => 'DatastoreName', ], ], ], 'DatastoreArn' => [ 'type' => 'string', ], 'DatastoreName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[a-zA-Z0-9_]+$', ], 'DatastoreStatistics' => [ 'type' => 'structure', 'members' => [ 'size' => [ 'shape' => 'EstimatedResourceSize', ], ], ], 'DatastoreStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'ACTIVE', 'DELETING', ], ], 'DatastoreSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'DatastoreSummary', ], ], 'DatastoreSummary' => [ 'type' => 'structure', 'members' => [ 'datastoreName' => [ 'shape' => 'DatastoreName', ], 'status' => [ 'shape' => 'DatastoreStatus', ], 'creationTime' => [ 'shape' => 'Timestamp', ], 'lastUpdateTime' => [ 'shape' => 'Timestamp', ], ], ], 'DeleteChannelRequest' => [ 'type' => 'structure', 'required' => [ 'channelName', ], 'members' => [ 'channelName' => [ 'shape' => 'ChannelName', 'location' => 'uri', 'locationName' => 'channelName', ], ], ], 'DeleteDatasetContentRequest' => [ 'type' => 'structure', 'required' => [ 'datasetName', ], 'members' => [ 'datasetName' => [ 'shape' => 'DatasetName', 'location' => 'uri', 'locationName' => 'datasetName', ], 'versionId' => [ 'shape' => 'DatasetContentVersion', 'location' => 'querystring', 'locationName' => 'versionId', ], ], ], 'DeleteDatasetRequest' => [ 'type' => 'structure', 'required' => [ 'datasetName', ], 'members' => [ 'datasetName' => [ 'shape' => 'DatasetName', 'location' => 'uri', 'locationName' => 'datasetName', ], ], ], 'DeleteDatastoreRequest' => [ 'type' => 'structure', 'required' => [ 'datastoreName', ], 'members' => [ 'datastoreName' => [ 'shape' => 'DatastoreName', 'location' => 'uri', 'locationName' => 'datastoreName', ], ], ], 'DeletePipelineRequest' => [ 'type' => 'structure', 'required' => [ 'pipelineName', ], 'members' => [ 'pipelineName' => [ 'shape' => 'PipelineName', 'location' => 'uri', 'locationName' => 'pipelineName', ], ], ], 'DeltaTime' => [ 'type' => 'structure', 'required' => [ 'offsetSeconds', 'timeExpression', ], 'members' => [ 'offsetSeconds' => [ 'shape' => 'OffsetSeconds', ], 'timeExpression' => [ 'shape' => 'TimeExpression', ], ], ], 'DescribeChannelRequest' => [ 'type' => 'structure', 'required' => [ 'channelName', ], 'members' => [ 'channelName' => [ 'shape' => 'ChannelName', 'location' => 'uri', 'locationName' => 'channelName', ], 'includeStatistics' => [ 'shape' => 'IncludeStatisticsFlag', 'location' => 'querystring', 'locationName' => 'includeStatistics', ], ], ], 'DescribeChannelResponse' => [ 'type' => 'structure', 'members' => [ 'channel' => [ 'shape' => 'Channel', ], 'statistics' => [ 'shape' => 'ChannelStatistics', ], ], ], 'DescribeDatasetRequest' => [ 'type' => 'structure', 'required' => [ 'datasetName', ], 'members' => [ 'datasetName' => [ 'shape' => 'DatasetName', 'location' => 'uri', 'locationName' => 'datasetName', ], ], ], 'DescribeDatasetResponse' => [ 'type' => 'structure', 'members' => [ 'dataset' => [ 'shape' => 'Dataset', ], ], ], 'DescribeDatastoreRequest' => [ 'type' => 'structure', 'required' => [ 'datastoreName', ], 'members' => [ 'datastoreName' => [ 'shape' => 'DatastoreName', 'location' => 'uri', 'locationName' => 'datastoreName', ], 'includeStatistics' => [ 'shape' => 'IncludeStatisticsFlag', 'location' => 'querystring', 'locationName' => 'includeStatistics', ], ], ], 'DescribeDatastoreResponse' => [ 'type' => 'structure', 'members' => [ 'datastore' => [ 'shape' => 'Datastore', ], 'statistics' => [ 'shape' => 'DatastoreStatistics', ], ], ], 'DescribeLoggingOptionsRequest' => [ 'type' => 'structure', 'members' => [], ], 'DescribeLoggingOptionsResponse' => [ 'type' => 'structure', 'members' => [ 'loggingOptions' => [ 'shape' => 'LoggingOptions', ], ], ], 'DescribePipelineRequest' => [ 'type' => 'structure', 'required' => [ 'pipelineName', ], 'members' => [ 'pipelineName' => [ 'shape' => 'PipelineName', 'location' => 'uri', 'locationName' => 'pipelineName', ], ], ], 'DescribePipelineResponse' => [ 'type' => 'structure', 'members' => [ 'pipeline' => [ 'shape' => 'Pipeline', ], ], ], 'DeviceRegistryEnrichActivity' => [ 'type' => 'structure', 'required' => [ 'name', 'attribute', 'thingName', 'roleArn', ], 'members' => [ 'name' => [ 'shape' => 'ActivityName', ], 'attribute' => [ 'shape' => 'AttributeName', ], 'thingName' => [ 'shape' => 'AttributeName', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'next' => [ 'shape' => 'ActivityName', ], ], ], 'DeviceShadowEnrichActivity' => [ 'type' => 'structure', 'required' => [ 'name', 'attribute', 'thingName', 'roleArn', ], 'members' => [ 'name' => [ 'shape' => 'ActivityName', ], 'attribute' => [ 'shape' => 'AttributeName', ], 'thingName' => [ 'shape' => 'AttributeName', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'next' => [ 'shape' => 'ActivityName', ], ], ], 'DoubleValue' => [ 'type' => 'double', ], 'EndTime' => [ 'type' => 'timestamp', ], 'EntryName' => [ 'type' => 'string', ], 'ErrorCode' => [ 'type' => 'string', ], 'ErrorMessage' => [ 'type' => 'string', ], 'EstimatedResourceSize' => [ 'type' => 'structure', 'members' => [ 'estimatedSizeInBytes' => [ 'shape' => 'SizeInBytes', ], 'estimatedOn' => [ 'shape' => 'Timestamp', ], ], ], 'FilterActivity' => [ 'type' => 'structure', 'required' => [ 'name', 'filter', ], 'members' => [ 'name' => [ 'shape' => 'ActivityName', ], 'filter' => [ 'shape' => 'FilterExpression', ], 'next' => [ 'shape' => 'ActivityName', ], ], ], 'FilterExpression' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'GetDatasetContentRequest' => [ 'type' => 'structure', 'required' => [ 'datasetName', ], 'members' => [ 'datasetName' => [ 'shape' => 'DatasetName', 'location' => 'uri', 'locationName' => 'datasetName', ], 'versionId' => [ 'shape' => 'DatasetContentVersion', 'location' => 'querystring', 'locationName' => 'versionId', ], ], ], 'GetDatasetContentResponse' => [ 'type' => 'structure', 'members' => [ 'entries' => [ 'shape' => 'DatasetEntries', ], 'timestamp' => [ 'shape' => 'Timestamp', ], 'status' => [ 'shape' => 'DatasetContentStatus', ], ], ], 'Image' => [ 'type' => 'string', 'max' => 255, ], 'IncludeStatisticsFlag' => [ 'type' => 'boolean', ], 'InternalFailureException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'IotEventsDestinationConfiguration' => [ 'type' => 'structure', 'required' => [ 'inputName', 'roleArn', ], 'members' => [ 'inputName' => [ 'shape' => 'IotEventsInputName', ], 'roleArn' => [ 'shape' => 'RoleArn', ], ], ], 'IotEventsInputName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[a-zA-Z][a-zA-Z0-9_]*$', ], 'LambdaActivity' => [ 'type' => 'structure', 'required' => [ 'name', 'lambdaName', 'batchSize', ], 'members' => [ 'name' => [ 'shape' => 'ActivityName', ], 'lambdaName' => [ 'shape' => 'LambdaName', ], 'batchSize' => [ 'shape' => 'ActivityBatchSize', ], 'next' => [ 'shape' => 'ActivityName', ], ], ], 'LambdaName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '^[a-zA-Z0-9_-]+$', ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 410, ], 'exception' => true, ], 'ListChannelsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListChannelsResponse' => [ 'type' => 'structure', 'members' => [ 'channelSummaries' => [ 'shape' => 'ChannelSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDatasetContentsRequest' => [ 'type' => 'structure', 'required' => [ 'datasetName', ], 'members' => [ 'datasetName' => [ 'shape' => 'DatasetName', 'location' => 'uri', 'locationName' => 'datasetName', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'scheduledOnOrAfter' => [ 'shape' => 'Timestamp', 'location' => 'querystring', 'locationName' => 'scheduledOnOrAfter', ], 'scheduledBefore' => [ 'shape' => 'Timestamp', 'location' => 'querystring', 'locationName' => 'scheduledBefore', ], ], ], 'ListDatasetContentsResponse' => [ 'type' => 'structure', 'members' => [ 'datasetContentSummaries' => [ 'shape' => 'DatasetContentSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDatasetsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListDatasetsResponse' => [ 'type' => 'structure', 'members' => [ 'datasetSummaries' => [ 'shape' => 'DatasetSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDatastoresRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListDatastoresResponse' => [ 'type' => 'structure', 'members' => [ 'datastoreSummaries' => [ 'shape' => 'DatastoreSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPipelinesRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListPipelinesResponse' => [ 'type' => 'structure', 'members' => [ 'pipelineSummaries' => [ 'shape' => 'PipelineSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'ResourceArn', 'location' => 'querystring', 'locationName' => 'resourceArn', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'tags' => [ 'shape' => 'TagList', ], ], ], 'LogResult' => [ 'type' => 'string', ], 'LoggingEnabled' => [ 'type' => 'boolean', ], 'LoggingLevel' => [ 'type' => 'string', 'enum' => [ 'ERROR', ], ], 'LoggingOptions' => [ 'type' => 'structure', 'required' => [ 'roleArn', 'level', 'enabled', ], 'members' => [ 'roleArn' => [ 'shape' => 'RoleArn', ], 'level' => [ 'shape' => 'LoggingLevel', ], 'enabled' => [ 'shape' => 'LoggingEnabled', ], ], ], 'MathActivity' => [ 'type' => 'structure', 'required' => [ 'name', 'attribute', 'math', ], 'members' => [ 'name' => [ 'shape' => 'ActivityName', ], 'attribute' => [ 'shape' => 'AttributeName', ], 'math' => [ 'shape' => 'MathExpression', ], 'next' => [ 'shape' => 'ActivityName', ], ], ], 'MathExpression' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'MaxMessages' => [ 'type' => 'integer', 'max' => 10, 'min' => 1, ], 'MaxResults' => [ 'type' => 'integer', 'max' => 250, 'min' => 1, ], 'MaxVersions' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'Message' => [ 'type' => 'structure', 'required' => [ 'messageId', 'payload', ], 'members' => [ 'messageId' => [ 'shape' => 'MessageId', ], 'payload' => [ 'shape' => 'MessagePayload', ], ], ], 'MessageId' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'MessagePayload' => [ 'type' => 'blob', ], 'MessagePayloads' => [ 'type' => 'list', 'member' => [ 'shape' => 'MessagePayload', ], 'max' => 10, 'min' => 1, ], 'Messages' => [ 'type' => 'list', 'member' => [ 'shape' => 'Message', ], ], 'NextToken' => [ 'type' => 'string', ], 'OffsetSeconds' => [ 'type' => 'integer', ], 'OutputFileName' => [ 'type' => 'string', 'pattern' => '[\\w\\.-]{1,255}', ], 'OutputFileUriValue' => [ 'type' => 'structure', 'required' => [ 'fileName', ], 'members' => [ 'fileName' => [ 'shape' => 'OutputFileName', ], ], ], 'Pipeline' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'PipelineName', ], 'arn' => [ 'shape' => 'PipelineArn', ], 'activities' => [ 'shape' => 'PipelineActivities', ], 'reprocessingSummaries' => [ 'shape' => 'ReprocessingSummaries', ], 'creationTime' => [ 'shape' => 'Timestamp', ], 'lastUpdateTime' => [ 'shape' => 'Timestamp', ], ], ], 'PipelineActivities' => [ 'type' => 'list', 'member' => [ 'shape' => 'PipelineActivity', ], 'max' => 25, 'min' => 1, ], 'PipelineActivity' => [ 'type' => 'structure', 'members' => [ 'channel' => [ 'shape' => 'ChannelActivity', ], 'lambda' => [ 'shape' => 'LambdaActivity', ], 'datastore' => [ 'shape' => 'DatastoreActivity', ], 'addAttributes' => [ 'shape' => 'AddAttributesActivity', ], 'removeAttributes' => [ 'shape' => 'RemoveAttributesActivity', ], 'selectAttributes' => [ 'shape' => 'SelectAttributesActivity', ], 'filter' => [ 'shape' => 'FilterActivity', ], 'math' => [ 'shape' => 'MathActivity', ], 'deviceRegistryEnrich' => [ 'shape' => 'DeviceRegistryEnrichActivity', ], 'deviceShadowEnrich' => [ 'shape' => 'DeviceShadowEnrichActivity', ], ], ], 'PipelineArn' => [ 'type' => 'string', ], 'PipelineName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[a-zA-Z0-9_]+$', ], 'PipelineSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'PipelineSummary', ], ], 'PipelineSummary' => [ 'type' => 'structure', 'members' => [ 'pipelineName' => [ 'shape' => 'PipelineName', ], 'reprocessingSummaries' => [ 'shape' => 'ReprocessingSummaries', ], 'creationTime' => [ 'shape' => 'Timestamp', ], 'lastUpdateTime' => [ 'shape' => 'Timestamp', ], ], ], 'PresignedURI' => [ 'type' => 'string', ], 'PutLoggingOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'loggingOptions', ], 'members' => [ 'loggingOptions' => [ 'shape' => 'LoggingOptions', ], ], ], 'QueryFilter' => [ 'type' => 'structure', 'members' => [ 'deltaTime' => [ 'shape' => 'DeltaTime', ], ], ], 'QueryFilters' => [ 'type' => 'list', 'member' => [ 'shape' => 'QueryFilter', ], 'max' => 1, 'min' => 0, ], 'Reason' => [ 'type' => 'string', ], 'RemoveAttributesActivity' => [ 'type' => 'structure', 'required' => [ 'name', 'attributes', ], 'members' => [ 'name' => [ 'shape' => 'ActivityName', ], 'attributes' => [ 'shape' => 'AttributeNames', ], 'next' => [ 'shape' => 'ActivityName', ], ], ], 'ReprocessingId' => [ 'type' => 'string', ], 'ReprocessingStatus' => [ 'type' => 'string', 'enum' => [ 'RUNNING', 'SUCCEEDED', 'CANCELLED', 'FAILED', ], ], 'ReprocessingSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReprocessingSummary', ], ], 'ReprocessingSummary' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'ReprocessingId', ], 'status' => [ 'shape' => 'ReprocessingStatus', ], 'creationTime' => [ 'shape' => 'Timestamp', ], ], ], 'ResourceAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], 'resourceId' => [ 'shape' => 'resourceId', ], 'resourceArn' => [ 'shape' => 'resourceArn', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'ResourceArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, ], 'ResourceConfiguration' => [ 'type' => 'structure', 'required' => [ 'computeType', 'volumeSizeInGB', ], 'members' => [ 'computeType' => [ 'shape' => 'ComputeType', ], 'volumeSizeInGB' => [ 'shape' => 'VolumeSizeInGB', ], ], ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'RetentionPeriod' => [ 'type' => 'structure', 'members' => [ 'unlimited' => [ 'shape' => 'UnlimitedRetentionPeriod', ], 'numberOfDays' => [ 'shape' => 'RetentionPeriodInDays', ], ], ], 'RetentionPeriodInDays' => [ 'type' => 'integer', 'min' => 1, ], 'RoleArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, ], 'RunPipelineActivityRequest' => [ 'type' => 'structure', 'required' => [ 'pipelineActivity', 'payloads', ], 'members' => [ 'pipelineActivity' => [ 'shape' => 'PipelineActivity', ], 'payloads' => [ 'shape' => 'MessagePayloads', ], ], ], 'RunPipelineActivityResponse' => [ 'type' => 'structure', 'members' => [ 'payloads' => [ 'shape' => 'MessagePayloads', ], 'logResult' => [ 'shape' => 'LogResult', ], ], ], 'SampleChannelDataRequest' => [ 'type' => 'structure', 'required' => [ 'channelName', ], 'members' => [ 'channelName' => [ 'shape' => 'ChannelName', 'location' => 'uri', 'locationName' => 'channelName', ], 'maxMessages' => [ 'shape' => 'MaxMessages', 'location' => 'querystring', 'locationName' => 'maxMessages', ], 'startTime' => [ 'shape' => 'StartTime', 'location' => 'querystring', 'locationName' => 'startTime', ], 'endTime' => [ 'shape' => 'EndTime', 'location' => 'querystring', 'locationName' => 'endTime', ], ], ], 'SampleChannelDataResponse' => [ 'type' => 'structure', 'members' => [ 'payloads' => [ 'shape' => 'MessagePayloads', ], ], ], 'Schedule' => [ 'type' => 'structure', 'members' => [ 'expression' => [ 'shape' => 'ScheduleExpression', ], ], ], 'ScheduleExpression' => [ 'type' => 'string', ], 'SelectAttributesActivity' => [ 'type' => 'structure', 'required' => [ 'name', 'attributes', ], 'members' => [ 'name' => [ 'shape' => 'ActivityName', ], 'attributes' => [ 'shape' => 'AttributeNames', ], 'next' => [ 'shape' => 'ActivityName', ], ], ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 503, ], 'exception' => true, 'fault' => true, ], 'SizeInBytes' => [ 'type' => 'double', ], 'SqlQuery' => [ 'type' => 'string', ], 'SqlQueryDatasetAction' => [ 'type' => 'structure', 'required' => [ 'sqlQuery', ], 'members' => [ 'sqlQuery' => [ 'shape' => 'SqlQuery', ], 'filters' => [ 'shape' => 'QueryFilters', ], ], ], 'StartPipelineReprocessingRequest' => [ 'type' => 'structure', 'required' => [ 'pipelineName', ], 'members' => [ 'pipelineName' => [ 'shape' => 'PipelineName', 'location' => 'uri', 'locationName' => 'pipelineName', ], 'startTime' => [ 'shape' => 'StartTime', ], 'endTime' => [ 'shape' => 'EndTime', ], ], ], 'StartPipelineReprocessingResponse' => [ 'type' => 'structure', 'members' => [ 'reprocessingId' => [ 'shape' => 'ReprocessingId', ], ], ], 'StartTime' => [ 'type' => 'timestamp', ], 'StringValue' => [ 'type' => 'string', 'max' => 1024, 'min' => 0, ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'key', 'value', ], 'members' => [ 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 50, 'min' => 1, ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 50, 'min' => 1, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tags', ], 'members' => [ 'resourceArn' => [ 'shape' => 'ResourceArn', 'location' => 'querystring', 'locationName' => 'resourceArn', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'ThrottlingException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'TimeExpression' => [ 'type' => 'string', ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TriggeringDataset' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'DatasetName', ], ], ], 'UnlimitedRetentionPeriod' => [ 'type' => 'boolean', ], 'UnlimitedVersioning' => [ 'type' => 'boolean', ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tagKeys', ], 'members' => [ 'resourceArn' => [ 'shape' => 'ResourceArn', 'location' => 'querystring', 'locationName' => 'resourceArn', ], 'tagKeys' => [ 'shape' => 'TagKeyList', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateChannelRequest' => [ 'type' => 'structure', 'required' => [ 'channelName', ], 'members' => [ 'channelName' => [ 'shape' => 'ChannelName', 'location' => 'uri', 'locationName' => 'channelName', ], 'retentionPeriod' => [ 'shape' => 'RetentionPeriod', ], ], ], 'UpdateDatasetRequest' => [ 'type' => 'structure', 'required' => [ 'datasetName', 'actions', ], 'members' => [ 'datasetName' => [ 'shape' => 'DatasetName', 'location' => 'uri', 'locationName' => 'datasetName', ], 'actions' => [ 'shape' => 'DatasetActions', ], 'triggers' => [ 'shape' => 'DatasetTriggers', ], 'contentDeliveryRules' => [ 'shape' => 'DatasetContentDeliveryRules', ], 'retentionPeriod' => [ 'shape' => 'RetentionPeriod', ], 'versioningConfiguration' => [ 'shape' => 'VersioningConfiguration', ], ], ], 'UpdateDatastoreRequest' => [ 'type' => 'structure', 'required' => [ 'datastoreName', ], 'members' => [ 'datastoreName' => [ 'shape' => 'DatastoreName', 'location' => 'uri', 'locationName' => 'datastoreName', ], 'retentionPeriod' => [ 'shape' => 'RetentionPeriod', ], ], ], 'UpdatePipelineRequest' => [ 'type' => 'structure', 'required' => [ 'pipelineName', 'pipelineActivities', ], 'members' => [ 'pipelineName' => [ 'shape' => 'PipelineName', 'location' => 'uri', 'locationName' => 'pipelineName', ], 'pipelineActivities' => [ 'shape' => 'PipelineActivities', ], ], ], 'Variable' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'VariableName', ], 'stringValue' => [ 'shape' => 'StringValue', ], 'doubleValue' => [ 'shape' => 'DoubleValue', 'box' => true, ], 'datasetContentVersionValue' => [ 'shape' => 'DatasetContentVersionValue', ], 'outputFileUriValue' => [ 'shape' => 'OutputFileUriValue', ], ], ], 'VariableName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'Variables' => [ 'type' => 'list', 'member' => [ 'shape' => 'Variable', ], 'max' => 50, 'min' => 0, ], 'VersioningConfiguration' => [ 'type' => 'structure', 'members' => [ 'unlimited' => [ 'shape' => 'UnlimitedVersioning', ], 'maxVersions' => [ 'shape' => 'MaxVersions', ], ], ], 'VolumeSizeInGB' => [ 'type' => 'integer', 'max' => 50, 'min' => 1, ], 'errorMessage' => [ 'type' => 'string', ], 'resourceArn' => [ 'type' => 'string', ], 'resourceId' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/iotanalytics/2017-11-27/paginators-1.json.php b/lib/aws/Aws/data/iotanalytics/2017-11-27/paginators-1.json.php new file mode 100644 index 0000000..a362d31 --- /dev/null +++ b/lib/aws/Aws/data/iotanalytics/2017-11-27/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/iotanalytics/2017-11-27/paginators-1.json +return [ 'pagination' => [ 'ListChannels' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListDatasetContents' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListDatasets' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListDatastores' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListPipelines' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], ],]; diff --git a/lib/aws/Aws/data/kafka/2018-11-14/api-2.json.php b/lib/aws/Aws/data/kafka/2018-11-14/api-2.json.php new file mode 100644 index 0000000..1bfb374 --- /dev/null +++ b/lib/aws/Aws/data/kafka/2018-11-14/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/kafka/2018-11-14/api-2.json +return [ 'metadata' => [ 'apiVersion' => '2018-11-14', 'endpointPrefix' => 'kafka', 'signingName' => 'kafka', 'serviceFullName' => 'Managed Streaming for Kafka', 'serviceAbbreviation' => 'Kafka', 'serviceId' => 'Kafka', 'protocol' => 'rest-json', 'jsonVersion' => '1.1', 'uid' => 'kafka-2018-11-14', 'signatureVersion' => 'v4', ], 'operations' => [ 'CreateCluster' => [ 'name' => 'CreateCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/clusters', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateClusterRequest', ], 'output' => [ 'shape' => 'CreateClusterResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'DeleteCluster' => [ 'name' => 'DeleteCluster', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/clusters/{clusterArn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteClusterRequest', ], 'output' => [ 'shape' => 'DeleteClusterResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'DescribeCluster' => [ 'name' => 'DescribeCluster', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/clusters/{clusterArn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeClusterRequest', ], 'output' => [ 'shape' => 'DescribeClusterResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'GetBootstrapBrokers' => [ 'name' => 'GetBootstrapBrokers', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/clusters/{clusterArn}/bootstrap-brokers', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetBootstrapBrokersRequest', ], 'output' => [ 'shape' => 'GetBootstrapBrokersResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'ListClusters' => [ 'name' => 'ListClusters', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/clusters', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListClustersRequest', ], 'output' => [ 'shape' => 'ListClustersResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'ListNodes' => [ 'name' => 'ListNodes', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/clusters/{clusterArn}/nodes', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListNodesRequest', ], 'output' => [ 'shape' => 'ListNodesResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], ], 'shapes' => [ 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'InvalidParameter' => [ 'shape' => '__string', 'locationName' => 'invalidParameter', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 400, ], ], 'BrokerAZDistribution' => [ 'type' => 'string', 'enum' => [ 'DEFAULT', ], ], 'BrokerNodeGroupInfo' => [ 'type' => 'structure', 'members' => [ 'BrokerAZDistribution' => [ 'shape' => 'BrokerAZDistribution', 'locationName' => 'brokerAZDistribution', ], 'ClientSubnets' => [ 'shape' => '__listOf__string', 'locationName' => 'clientSubnets', ], 'InstanceType' => [ 'shape' => '__stringMin5Max32', 'locationName' => 'instanceType', ], 'SecurityGroups' => [ 'shape' => '__listOf__string', 'locationName' => 'securityGroups', ], 'StorageInfo' => [ 'shape' => 'StorageInfo', 'locationName' => 'storageInfo', ], ], 'required' => [ 'ClientSubnets', 'InstanceType', ], ], 'BrokerNodeInfo' => [ 'type' => 'structure', 'members' => [ 'AttachedENIId' => [ 'shape' => '__string', 'locationName' => 'attachedENIId', ], 'BrokerId' => [ 'shape' => '__double', 'locationName' => 'brokerId', ], 'ClientSubnet' => [ 'shape' => '__string', 'locationName' => 'clientSubnet', ], 'ClientVpcIpAddress' => [ 'shape' => '__string', 'locationName' => 'clientVpcIpAddress', ], 'CurrentBrokerSoftwareInfo' => [ 'shape' => 'BrokerSoftwareInfo', 'locationName' => 'currentBrokerSoftwareInfo', ], ], ], 'BrokerSoftwareInfo' => [ 'type' => 'structure', 'members' => [ 'ConfigurationArn' => [ 'shape' => '__string', 'locationName' => 'configurationArn', ], 'ConfigurationRevision' => [ 'shape' => '__string', 'locationName' => 'configurationRevision', ], 'KafkaVersion' => [ 'shape' => '__string', 'locationName' => 'kafkaVersion', ], ], ], 'ClusterInfo' => [ 'type' => 'structure', 'members' => [ 'BrokerNodeGroupInfo' => [ 'shape' => 'BrokerNodeGroupInfo', 'locationName' => 'brokerNodeGroupInfo', ], 'ClusterArn' => [ 'shape' => '__string', 'locationName' => 'clusterArn', ], 'ClusterName' => [ 'shape' => '__string', 'locationName' => 'clusterName', ], 'CreationTime' => [ 'shape' => '__timestampIso8601', 'locationName' => 'creationTime', ], 'CurrentBrokerSoftwareInfo' => [ 'shape' => 'BrokerSoftwareInfo', 'locationName' => 'currentBrokerSoftwareInfo', ], 'CurrentVersion' => [ 'shape' => '__string', 'locationName' => 'currentVersion', ], 'EncryptionInfo' => [ 'shape' => 'EncryptionInfo', 'locationName' => 'encryptionInfo', ], 'EnhancedMonitoring' => [ 'shape' => 'EnhancedMonitoring', 'locationName' => 'enhancedMonitoring', ], 'NumberOfBrokerNodes' => [ 'shape' => '__integer', 'locationName' => 'numberOfBrokerNodes', ], 'State' => [ 'shape' => 'ClusterState', 'locationName' => 'state', ], 'ZookeeperConnectString' => [ 'shape' => '__string', 'locationName' => 'zookeeperConnectString', ], ], ], 'ClusterState' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'CREATING', 'DELETING', 'FAILED', ], ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'InvalidParameter' => [ 'shape' => '__string', 'locationName' => 'invalidParameter', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 409, ], ], 'CreateClusterRequest' => [ 'type' => 'structure', 'members' => [ 'BrokerNodeGroupInfo' => [ 'shape' => 'BrokerNodeGroupInfo', 'locationName' => 'brokerNodeGroupInfo', ], 'ClusterName' => [ 'shape' => '__stringMin1Max64', 'locationName' => 'clusterName', ], 'EncryptionInfo' => [ 'shape' => 'EncryptionInfo', 'locationName' => 'encryptionInfo', ], 'EnhancedMonitoring' => [ 'shape' => 'EnhancedMonitoring', 'locationName' => 'enhancedMonitoring', ], 'KafkaVersion' => [ 'shape' => '__stringMin1Max128', 'locationName' => 'kafkaVersion', ], 'NumberOfBrokerNodes' => [ 'shape' => '__integerMin1Max15', 'locationName' => 'numberOfBrokerNodes', ], ], 'required' => [ 'BrokerNodeGroupInfo', 'KafkaVersion', 'NumberOfBrokerNodes', 'ClusterName', ], ], 'CreateClusterResponse' => [ 'type' => 'structure', 'members' => [ 'ClusterArn' => [ 'shape' => '__string', 'locationName' => 'clusterArn', ], 'ClusterName' => [ 'shape' => '__string', 'locationName' => 'clusterName', ], 'State' => [ 'shape' => 'ClusterState', 'locationName' => 'state', ], ], ], 'DeleteClusterRequest' => [ 'type' => 'structure', 'members' => [ 'ClusterArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'clusterArn', ], 'CurrentVersion' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'currentVersion', ], ], 'required' => [ 'ClusterArn', ], ], 'DeleteClusterResponse' => [ 'type' => 'structure', 'members' => [ 'ClusterArn' => [ 'shape' => '__string', 'locationName' => 'clusterArn', ], 'State' => [ 'shape' => 'ClusterState', 'locationName' => 'state', ], ], ], 'DescribeClusterRequest' => [ 'type' => 'structure', 'members' => [ 'ClusterArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'clusterArn', ], ], 'required' => [ 'ClusterArn', ], ], 'DescribeClusterResponse' => [ 'type' => 'structure', 'members' => [ 'ClusterInfo' => [ 'shape' => 'ClusterInfo', 'locationName' => 'clusterInfo', ], ], ], 'EBSStorageInfo' => [ 'type' => 'structure', 'members' => [ 'VolumeSize' => [ 'shape' => '__integerMin1Max16384', 'locationName' => 'volumeSize', ], ], ], 'EncryptionAtRest' => [ 'type' => 'structure', 'members' => [ 'DataVolumeKMSKeyId' => [ 'shape' => '__string', 'locationName' => 'dataVolumeKMSKeyId', ], ], 'required' => [ 'DataVolumeKMSKeyId', ], ], 'EncryptionInfo' => [ 'type' => 'structure', 'members' => [ 'EncryptionAtRest' => [ 'shape' => 'EncryptionAtRest', 'locationName' => 'encryptionAtRest', ], ], ], 'EnhancedMonitoring' => [ 'type' => 'string', 'enum' => [ 'DEFAULT', 'PER_BROKER', 'PER_TOPIC_PER_BROKER', ], ], 'Error' => [ 'type' => 'structure', 'members' => [ 'InvalidParameter' => [ 'shape' => '__string', 'locationName' => 'invalidParameter', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], ], 'ForbiddenException' => [ 'type' => 'structure', 'members' => [ 'InvalidParameter' => [ 'shape' => '__string', 'locationName' => 'invalidParameter', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 403, ], ], 'GetBootstrapBrokersRequest' => [ 'type' => 'structure', 'members' => [ 'ClusterArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'clusterArn', ], ], 'required' => [ 'ClusterArn', ], ], 'GetBootstrapBrokersResponse' => [ 'type' => 'structure', 'members' => [ 'BootstrapBrokerString' => [ 'shape' => '__string', 'locationName' => 'bootstrapBrokerString', ], ], ], 'InternalServerErrorException' => [ 'type' => 'structure', 'members' => [ 'InvalidParameter' => [ 'shape' => '__string', 'locationName' => 'invalidParameter', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 500, ], ], 'ListClustersRequest' => [ 'type' => 'structure', 'members' => [ 'ClusterNameFilter' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'clusterNameFilter', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListClustersResponse' => [ 'type' => 'structure', 'members' => [ 'ClusterInfoList' => [ 'shape' => '__listOfClusterInfo', 'locationName' => 'clusterInfoList', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'ListNodesRequest' => [ 'type' => 'structure', 'members' => [ 'ClusterArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'clusterArn', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], 'required' => [ 'ClusterArn', ], ], 'ListNodesResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], 'NodeInfoList' => [ 'shape' => '__listOfNodeInfo', 'locationName' => 'nodeInfoList', ], ], ], 'MaxResults' => [ 'type' => 'integer', 'min' => 1, 'max' => 100, ], 'NodeInfo' => [ 'type' => 'structure', 'members' => [ 'AddedToClusterTime' => [ 'shape' => '__string', 'locationName' => 'addedToClusterTime', ], 'BrokerNodeInfo' => [ 'shape' => 'BrokerNodeInfo', 'locationName' => 'brokerNodeInfo', ], 'InstanceType' => [ 'shape' => '__string', 'locationName' => 'instanceType', ], 'NodeARN' => [ 'shape' => '__string', 'locationName' => 'nodeARN', ], 'NodeType' => [ 'shape' => 'NodeType', 'locationName' => 'nodeType', ], 'ZookeeperNodeInfo' => [ 'shape' => 'ZookeeperNodeInfo', 'locationName' => 'zookeeperNodeInfo', ], ], ], 'NodeType' => [ 'type' => 'string', 'enum' => [ 'BROKER', ], ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'InvalidParameter' => [ 'shape' => '__string', 'locationName' => 'invalidParameter', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 404, ], ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'InvalidParameter' => [ 'shape' => '__string', 'locationName' => 'invalidParameter', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 503, ], ], 'StorageInfo' => [ 'type' => 'structure', 'members' => [ 'EbsStorageInfo' => [ 'shape' => 'EBSStorageInfo', 'locationName' => 'ebsStorageInfo', ], ], ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'InvalidParameter' => [ 'shape' => '__string', 'locationName' => 'invalidParameter', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 429, ], ], 'UnauthorizedException' => [ 'type' => 'structure', 'members' => [ 'InvalidParameter' => [ 'shape' => '__string', 'locationName' => 'invalidParameter', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 401, ], ], 'ZookeeperNodeInfo' => [ 'type' => 'structure', 'members' => [ 'AttachedENIId' => [ 'shape' => '__string', 'locationName' => 'attachedENIId', ], 'ClientVpcIpAddress' => [ 'shape' => '__string', 'locationName' => 'clientVpcIpAddress', ], 'ZookeeperId' => [ 'shape' => '__double', 'locationName' => 'zookeeperId', ], 'ZookeeperVersion' => [ 'shape' => '__string', 'locationName' => 'zookeeperVersion', ], ], ], '__boolean' => [ 'type' => 'boolean', ], '__double' => [ 'type' => 'double', ], '__integer' => [ 'type' => 'integer', ], '__integerMin1Max15' => [ 'type' => 'integer', 'min' => 1, 'max' => 15, ], '__integerMin1Max16384' => [ 'type' => 'integer', 'min' => 1, 'max' => 16384, ], '__listOfClusterInfo' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClusterInfo', ], ], '__listOfNodeInfo' => [ 'type' => 'list', 'member' => [ 'shape' => 'NodeInfo', ], ], '__listOf__string' => [ 'type' => 'list', 'member' => [ 'shape' => '__string', ], ], '__long' => [ 'type' => 'long', ], '__string' => [ 'type' => 'string', ], '__stringMin1Max128' => [ 'type' => 'string', 'min' => 1, 'max' => 128, ], '__stringMin1Max64' => [ 'type' => 'string', 'min' => 1, 'max' => 64, ], '__stringMin5Max32' => [ 'type' => 'string', 'min' => 5, 'max' => 32, ], '__timestampIso8601' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], '__timestampUnix' => [ 'type' => 'timestamp', 'timestampFormat' => 'unixTimestamp', ], ],]; diff --git a/lib/aws/Aws/data/kafka/2018-11-14/paginators-1.json.php b/lib/aws/Aws/data/kafka/2018-11-14/paginators-1.json.php new file mode 100644 index 0000000..891cf31 --- /dev/null +++ b/lib/aws/Aws/data/kafka/2018-11-14/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/kafka/2018-11-14/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/kinesis-video-archived-media/2017-09-30/api-2.json.php b/lib/aws/Aws/data/kinesis-video-archived-media/2017-09-30/api-2.json.php new file mode 100644 index 0000000..55e33b8 --- /dev/null +++ b/lib/aws/Aws/data/kinesis-video-archived-media/2017-09-30/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/kinesis-video-archived-media/2017-09-30/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-09-30', 'endpointPrefix' => 'kinesisvideo', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'Kinesis Video Archived Media', 'serviceFullName' => 'Amazon Kinesis Video Streams Archived Media', 'serviceId' => 'Kinesis Video Archived Media', 'signatureVersion' => 'v4', 'uid' => 'kinesis-video-archived-media-2017-09-30', ], 'operations' => [ 'GetHLSStreamingSessionURL' => [ 'name' => 'GetHLSStreamingSessionURL', 'http' => [ 'method' => 'POST', 'requestUri' => '/getHLSStreamingSessionURL', ], 'input' => [ 'shape' => 'GetHLSStreamingSessionURLInput', ], 'output' => [ 'shape' => 'GetHLSStreamingSessionURLOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ClientLimitExceededException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'UnsupportedStreamMediaTypeException', ], [ 'shape' => 'NoDataRetentionException', ], [ 'shape' => 'MissingCodecPrivateDataException', ], [ 'shape' => 'InvalidCodecPrivateDataException', ], ], ], 'GetMediaForFragmentList' => [ 'name' => 'GetMediaForFragmentList', 'http' => [ 'method' => 'POST', 'requestUri' => '/getMediaForFragmentList', ], 'input' => [ 'shape' => 'GetMediaForFragmentListInput', ], 'output' => [ 'shape' => 'GetMediaForFragmentListOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ClientLimitExceededException', ], [ 'shape' => 'NotAuthorizedException', ], ], ], 'ListFragments' => [ 'name' => 'ListFragments', 'http' => [ 'method' => 'POST', 'requestUri' => '/listFragments', ], 'input' => [ 'shape' => 'ListFragmentsInput', ], 'output' => [ 'shape' => 'ListFragmentsOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ClientLimitExceededException', ], [ 'shape' => 'NotAuthorizedException', ], ], ], ], 'shapes' => [ 'ClientLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ContainerFormat' => [ 'type' => 'string', 'enum' => [ 'FRAGMENTED_MP4', 'MPEG_TS', ], ], 'ContentType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[a-zA-Z0-9_\\.\\-]+$', ], 'DiscontinuityMode' => [ 'type' => 'string', 'enum' => [ 'ALWAYS', 'NEVER', ], ], 'DisplayFragmentTimestamp' => [ 'type' => 'string', 'enum' => [ 'ALWAYS', 'NEVER', ], ], 'ErrorMessage' => [ 'type' => 'string', ], 'Expires' => [ 'type' => 'integer', 'max' => 43200, 'min' => 300, ], 'Fragment' => [ 'type' => 'structure', 'members' => [ 'FragmentNumber' => [ 'shape' => 'String', ], 'FragmentSizeInBytes' => [ 'shape' => 'Long', ], 'ProducerTimestamp' => [ 'shape' => 'Timestamp', ], 'ServerTimestamp' => [ 'shape' => 'Timestamp', ], 'FragmentLengthInMilliseconds' => [ 'shape' => 'Long', ], ], ], 'FragmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Fragment', ], ], 'FragmentNumberList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FragmentNumberString', ], 'max' => 1000, 'min' => 1, ], 'FragmentNumberString' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[0-9]+$', ], 'FragmentSelector' => [ 'type' => 'structure', 'required' => [ 'FragmentSelectorType', 'TimestampRange', ], 'members' => [ 'FragmentSelectorType' => [ 'shape' => 'FragmentSelectorType', ], 'TimestampRange' => [ 'shape' => 'TimestampRange', ], ], ], 'FragmentSelectorType' => [ 'type' => 'string', 'enum' => [ 'PRODUCER_TIMESTAMP', 'SERVER_TIMESTAMP', ], ], 'GetHLSStreamingSessionURLInput' => [ 'type' => 'structure', 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'StreamARN' => [ 'shape' => 'ResourceARN', ], 'PlaybackMode' => [ 'shape' => 'PlaybackMode', ], 'HLSFragmentSelector' => [ 'shape' => 'HLSFragmentSelector', ], 'ContainerFormat' => [ 'shape' => 'ContainerFormat', ], 'DiscontinuityMode' => [ 'shape' => 'DiscontinuityMode', ], 'DisplayFragmentTimestamp' => [ 'shape' => 'DisplayFragmentTimestamp', ], 'Expires' => [ 'shape' => 'Expires', ], 'MaxMediaPlaylistFragmentResults' => [ 'shape' => 'PageLimit', ], ], ], 'GetHLSStreamingSessionURLOutput' => [ 'type' => 'structure', 'members' => [ 'HLSStreamingSessionURL' => [ 'shape' => 'HLSStreamingSessionURL', ], ], ], 'GetMediaForFragmentListInput' => [ 'type' => 'structure', 'required' => [ 'StreamName', 'Fragments', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'Fragments' => [ 'shape' => 'FragmentNumberList', ], ], ], 'GetMediaForFragmentListOutput' => [ 'type' => 'structure', 'members' => [ 'ContentType' => [ 'shape' => 'ContentType', 'location' => 'header', 'locationName' => 'Content-Type', ], 'Payload' => [ 'shape' => 'Payload', ], ], 'payload' => 'Payload', ], 'HLSFragmentSelector' => [ 'type' => 'structure', 'members' => [ 'FragmentSelectorType' => [ 'shape' => 'HLSFragmentSelectorType', ], 'TimestampRange' => [ 'shape' => 'HLSTimestampRange', ], ], ], 'HLSFragmentSelectorType' => [ 'type' => 'string', 'enum' => [ 'PRODUCER_TIMESTAMP', 'SERVER_TIMESTAMP', ], ], 'HLSStreamingSessionURL' => [ 'type' => 'string', ], 'HLSTimestampRange' => [ 'type' => 'structure', 'members' => [ 'StartTimestamp' => [ 'shape' => 'Timestamp', ], 'EndTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'InvalidArgumentException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidCodecPrivateDataException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ListFragmentsInput' => [ 'type' => 'structure', 'required' => [ 'StreamName', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'MaxResults' => [ 'shape' => 'PageLimit', ], 'NextToken' => [ 'shape' => 'String', ], 'FragmentSelector' => [ 'shape' => 'FragmentSelector', ], ], ], 'ListFragmentsOutput' => [ 'type' => 'structure', 'members' => [ 'Fragments' => [ 'shape' => 'FragmentList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'Long' => [ 'type' => 'long', ], 'MissingCodecPrivateDataException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'NoDataRetentionException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'NotAuthorizedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 401, ], 'exception' => true, ], 'PageLimit' => [ 'type' => 'long', 'max' => 1000, 'min' => 1, ], 'Payload' => [ 'type' => 'blob', 'streaming' => true, ], 'PlaybackMode' => [ 'type' => 'string', 'enum' => [ 'LIVE', 'ON_DEMAND', ], ], 'ResourceARN' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => 'arn:aws:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+', ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'StreamName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.-]+', ], 'String' => [ 'type' => 'string', 'min' => 1, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TimestampRange' => [ 'type' => 'structure', 'required' => [ 'StartTimestamp', 'EndTimestamp', ], 'members' => [ 'StartTimestamp' => [ 'shape' => 'Timestamp', ], 'EndTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'UnsupportedStreamMediaTypeException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], ],]; diff --git a/lib/aws/Aws/data/kinesis-video-archived-media/2017-09-30/paginators-1.json.php b/lib/aws/Aws/data/kinesis-video-archived-media/2017-09-30/paginators-1.json.php new file mode 100644 index 0000000..adbe215 --- /dev/null +++ b/lib/aws/Aws/data/kinesis-video-archived-media/2017-09-30/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/kinesis-video-archived-media/2017-09-30/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/kinesis-video-media/2017-09-30/api-2.json.php b/lib/aws/Aws/data/kinesis-video-media/2017-09-30/api-2.json.php new file mode 100644 index 0000000..6245aa5 --- /dev/null +++ b/lib/aws/Aws/data/kinesis-video-media/2017-09-30/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/kinesis-video-media/2017-09-30/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-09-30', 'endpointPrefix' => 'kinesisvideo', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'Kinesis Video Media', 'serviceFullName' => 'Amazon Kinesis Video Streams Media', 'serviceId' => 'Kinesis Video Media', 'signatureVersion' => 'v4', 'uid' => 'kinesis-video-media-2017-09-30', ], 'operations' => [ 'GetMedia' => [ 'name' => 'GetMedia', 'http' => [ 'method' => 'POST', 'requestUri' => '/getMedia', ], 'input' => [ 'shape' => 'GetMediaInput', ], 'output' => [ 'shape' => 'GetMediaOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InvalidEndpointException', ], [ 'shape' => 'ClientLimitExceededException', ], [ 'shape' => 'ConnectionLimitExceededException', ], [ 'shape' => 'InvalidArgumentException', ], ], ], ], 'shapes' => [ 'ClientLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ConnectionLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ContentType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[a-zA-Z0-9_\\.\\-]+$', ], 'ContinuationToken' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[a-zA-Z0-9_\\.\\-]+$', ], 'ErrorMessage' => [ 'type' => 'string', ], 'FragmentNumberString' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[0-9]+$', ], 'GetMediaInput' => [ 'type' => 'structure', 'required' => [ 'StartSelector', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'StreamARN' => [ 'shape' => 'ResourceARN', ], 'StartSelector' => [ 'shape' => 'StartSelector', ], ], ], 'GetMediaOutput' => [ 'type' => 'structure', 'members' => [ 'ContentType' => [ 'shape' => 'ContentType', 'location' => 'header', 'locationName' => 'Content-Type', ], 'Payload' => [ 'shape' => 'Payload', ], ], 'payload' => 'Payload', ], 'InvalidArgumentException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidEndpointException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'NotAuthorizedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 401, ], 'exception' => true, ], 'Payload' => [ 'type' => 'blob', 'streaming' => true, ], 'ResourceARN' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => 'arn:aws:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+', ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'StartSelector' => [ 'type' => 'structure', 'required' => [ 'StartSelectorType', ], 'members' => [ 'StartSelectorType' => [ 'shape' => 'StartSelectorType', ], 'AfterFragmentNumber' => [ 'shape' => 'FragmentNumberString', ], 'StartTimestamp' => [ 'shape' => 'Timestamp', ], 'ContinuationToken' => [ 'shape' => 'ContinuationToken', ], ], ], 'StartSelectorType' => [ 'type' => 'string', 'enum' => [ 'FRAGMENT_NUMBER', 'SERVER_TIMESTAMP', 'PRODUCER_TIMESTAMP', 'NOW', 'EARLIEST', 'CONTINUATION_TOKEN', ], ], 'StreamName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.-]+', ], 'Timestamp' => [ 'type' => 'timestamp', ], ],]; diff --git a/lib/aws/Aws/data/kinesis-video-media/2017-09-30/paginators-1.json.php b/lib/aws/Aws/data/kinesis-video-media/2017-09-30/paginators-1.json.php new file mode 100644 index 0000000..444cad7 --- /dev/null +++ b/lib/aws/Aws/data/kinesis-video-media/2017-09-30/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/kinesis-video-media/2017-09-30/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/kinesis/2013-12-02/api-2.json.php b/lib/aws/Aws/data/kinesis/2013-12-02/api-2.json.php new file mode 100644 index 0000000..8eab250 --- /dev/null +++ b/lib/aws/Aws/data/kinesis/2013-12-02/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/kinesis/2013-12-02/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2013-12-02', 'endpointPrefix' => 'kinesis', 'jsonVersion' => '1.1', 'protocol' => 'json', 'protocolSettings' => [ 'h2' => 'eventstream', ], 'serviceAbbreviation' => 'Kinesis', 'serviceFullName' => 'Amazon Kinesis', 'serviceId' => 'Kinesis', 'signatureVersion' => 'v4', 'targetPrefix' => 'Kinesis_20131202', 'uid' => 'kinesis-2013-12-02', ], 'operations' => [ 'AddTagsToStream' => [ 'name' => 'AddTagsToStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddTagsToStreamInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateStream' => [ 'name' => 'CreateStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateStreamInput', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidArgumentException', ], ], ], 'DecreaseStreamRetentionPeriod' => [ 'name' => 'DecreaseStreamRetentionPeriod', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DecreaseStreamRetentionPeriodInput', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidArgumentException', ], ], ], 'DeleteStream' => [ 'name' => 'DeleteStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteStreamInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceInUseException', ], ], ], 'DeregisterStreamConsumer' => [ 'name' => 'DeregisterStreamConsumer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterStreamConsumerInput', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArgumentException', ], ], ], 'DescribeLimits' => [ 'name' => 'DescribeLimits', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLimitsInput', ], 'output' => [ 'shape' => 'DescribeLimitsOutput', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], ], ], 'DescribeStream' => [ 'name' => 'DescribeStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStreamInput', ], 'output' => [ 'shape' => 'DescribeStreamOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'DescribeStreamConsumer' => [ 'name' => 'DescribeStreamConsumer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStreamConsumerInput', ], 'output' => [ 'shape' => 'DescribeStreamConsumerOutput', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArgumentException', ], ], ], 'DescribeStreamSummary' => [ 'name' => 'DescribeStreamSummary', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStreamSummaryInput', ], 'output' => [ 'shape' => 'DescribeStreamSummaryOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'DisableEnhancedMonitoring' => [ 'name' => 'DisableEnhancedMonitoring', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableEnhancedMonitoringInput', ], 'output' => [ 'shape' => 'EnhancedMonitoringOutput', ], 'errors' => [ [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'EnableEnhancedMonitoring' => [ 'name' => 'EnableEnhancedMonitoring', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableEnhancedMonitoringInput', ], 'output' => [ 'shape' => 'EnhancedMonitoringOutput', ], 'errors' => [ [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'GetRecords' => [ 'name' => 'GetRecords', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRecordsInput', ], 'output' => [ 'shape' => 'GetRecordsOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ExpiredIteratorException', ], [ 'shape' => 'KMSDisabledException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'KMSAccessDeniedException', ], [ 'shape' => 'KMSNotFoundException', ], [ 'shape' => 'KMSOptInRequired', ], [ 'shape' => 'KMSThrottlingException', ], ], ], 'GetShardIterator' => [ 'name' => 'GetShardIterator', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetShardIteratorInput', ], 'output' => [ 'shape' => 'GetShardIteratorOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], ], ], 'IncreaseStreamRetentionPeriod' => [ 'name' => 'IncreaseStreamRetentionPeriod', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'IncreaseStreamRetentionPeriodInput', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidArgumentException', ], ], ], 'ListShards' => [ 'name' => 'ListShards', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListShardsInput', ], 'output' => [ 'shape' => 'ListShardsOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ExpiredNextTokenException', ], [ 'shape' => 'ResourceInUseException', ], ], ], 'ListStreamConsumers' => [ 'name' => 'ListStreamConsumers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListStreamConsumersInput', ], 'output' => [ 'shape' => 'ListStreamConsumersOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ExpiredNextTokenException', ], [ 'shape' => 'ResourceInUseException', ], ], ], 'ListStreams' => [ 'name' => 'ListStreams', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListStreamsInput', ], 'output' => [ 'shape' => 'ListStreamsOutput', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], ], ], 'ListTagsForStream' => [ 'name' => 'ListTagsForStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForStreamInput', ], 'output' => [ 'shape' => 'ListTagsForStreamOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'MergeShards' => [ 'name' => 'MergeShards', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'MergeShardsInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'PutRecord' => [ 'name' => 'PutRecord', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutRecordInput', ], 'output' => [ 'shape' => 'PutRecordOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'KMSDisabledException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'KMSAccessDeniedException', ], [ 'shape' => 'KMSNotFoundException', ], [ 'shape' => 'KMSOptInRequired', ], [ 'shape' => 'KMSThrottlingException', ], ], ], 'PutRecords' => [ 'name' => 'PutRecords', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutRecordsInput', ], 'output' => [ 'shape' => 'PutRecordsOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'KMSDisabledException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'KMSAccessDeniedException', ], [ 'shape' => 'KMSNotFoundException', ], [ 'shape' => 'KMSOptInRequired', ], [ 'shape' => 'KMSThrottlingException', ], ], ], 'RegisterStreamConsumer' => [ 'name' => 'RegisterStreamConsumer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterStreamConsumerInput', ], 'output' => [ 'shape' => 'RegisterStreamConsumerOutput', ], 'errors' => [ [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'RemoveTagsFromStream' => [ 'name' => 'RemoveTagsFromStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveTagsFromStreamInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'SplitShard' => [ 'name' => 'SplitShard', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SplitShardInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'StartStreamEncryption' => [ 'name' => 'StartStreamEncryption', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartStreamEncryptionInput', ], 'errors' => [ [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'KMSDisabledException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'KMSAccessDeniedException', ], [ 'shape' => 'KMSNotFoundException', ], [ 'shape' => 'KMSOptInRequired', ], [ 'shape' => 'KMSThrottlingException', ], ], ], 'StopStreamEncryption' => [ 'name' => 'StopStreamEncryption', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopStreamEncryptionInput', ], 'errors' => [ [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateShardCount' => [ 'name' => 'UpdateShardCount', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateShardCountInput', ], 'output' => [ 'shape' => 'UpdateShardCountOutput', ], 'errors' => [ [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], ], 'shapes' => [ 'AddTagsToStreamInput' => [ 'type' => 'structure', 'required' => [ 'StreamName', 'Tags', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'Tags' => [ 'shape' => 'TagMap', ], ], ], 'BooleanObject' => [ 'type' => 'boolean', ], 'Consumer' => [ 'type' => 'structure', 'required' => [ 'ConsumerName', 'ConsumerARN', 'ConsumerStatus', 'ConsumerCreationTimestamp', ], 'members' => [ 'ConsumerName' => [ 'shape' => 'ConsumerName', ], 'ConsumerARN' => [ 'shape' => 'ConsumerARN', ], 'ConsumerStatus' => [ 'shape' => 'ConsumerStatus', ], 'ConsumerCreationTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'ConsumerARN' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '^(arn):aws.*:kinesis:.*:\\d{12}:.*stream\\/[a-zA-Z0-9_.-]+\\/consumer\\/[a-zA-Z0-9_.-]+:[0-9]+', ], 'ConsumerCountObject' => [ 'type' => 'integer', 'max' => 1000000, 'min' => 0, ], 'ConsumerDescription' => [ 'type' => 'structure', 'required' => [ 'ConsumerName', 'ConsumerARN', 'ConsumerStatus', 'ConsumerCreationTimestamp', 'StreamARN', ], 'members' => [ 'ConsumerName' => [ 'shape' => 'ConsumerName', ], 'ConsumerARN' => [ 'shape' => 'ConsumerARN', ], 'ConsumerStatus' => [ 'shape' => 'ConsumerStatus', ], 'ConsumerCreationTimestamp' => [ 'shape' => 'Timestamp', ], 'StreamARN' => [ 'shape' => 'StreamARN', ], ], ], 'ConsumerList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Consumer', ], ], 'ConsumerName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.-]+', ], 'ConsumerStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'DELETING', 'ACTIVE', ], ], 'CreateStreamInput' => [ 'type' => 'structure', 'required' => [ 'StreamName', 'ShardCount', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'ShardCount' => [ 'shape' => 'PositiveIntegerObject', ], ], ], 'Data' => [ 'type' => 'blob', 'max' => 1048576, 'min' => 0, ], 'DecreaseStreamRetentionPeriodInput' => [ 'type' => 'structure', 'required' => [ 'StreamName', 'RetentionPeriodHours', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'RetentionPeriodHours' => [ 'shape' => 'RetentionPeriodHours', ], ], ], 'DeleteStreamInput' => [ 'type' => 'structure', 'required' => [ 'StreamName', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'EnforceConsumerDeletion' => [ 'shape' => 'BooleanObject', ], ], ], 'DeregisterStreamConsumerInput' => [ 'type' => 'structure', 'members' => [ 'StreamARN' => [ 'shape' => 'StreamARN', ], 'ConsumerName' => [ 'shape' => 'ConsumerName', ], 'ConsumerARN' => [ 'shape' => 'ConsumerARN', ], ], ], 'DescribeLimitsInput' => [ 'type' => 'structure', 'members' => [], ], 'DescribeLimitsOutput' => [ 'type' => 'structure', 'required' => [ 'ShardLimit', 'OpenShardCount', ], 'members' => [ 'ShardLimit' => [ 'shape' => 'ShardCountObject', ], 'OpenShardCount' => [ 'shape' => 'ShardCountObject', ], ], ], 'DescribeStreamConsumerInput' => [ 'type' => 'structure', 'members' => [ 'StreamARN' => [ 'shape' => 'StreamARN', ], 'ConsumerName' => [ 'shape' => 'ConsumerName', ], 'ConsumerARN' => [ 'shape' => 'ConsumerARN', ], ], ], 'DescribeStreamConsumerOutput' => [ 'type' => 'structure', 'required' => [ 'ConsumerDescription', ], 'members' => [ 'ConsumerDescription' => [ 'shape' => 'ConsumerDescription', ], ], ], 'DescribeStreamInput' => [ 'type' => 'structure', 'required' => [ 'StreamName', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'Limit' => [ 'shape' => 'DescribeStreamInputLimit', ], 'ExclusiveStartShardId' => [ 'shape' => 'ShardId', ], ], ], 'DescribeStreamInputLimit' => [ 'type' => 'integer', 'max' => 10000, 'min' => 1, ], 'DescribeStreamOutput' => [ 'type' => 'structure', 'required' => [ 'StreamDescription', ], 'members' => [ 'StreamDescription' => [ 'shape' => 'StreamDescription', ], ], ], 'DescribeStreamSummaryInput' => [ 'type' => 'structure', 'required' => [ 'StreamName', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], ], ], 'DescribeStreamSummaryOutput' => [ 'type' => 'structure', 'required' => [ 'StreamDescriptionSummary', ], 'members' => [ 'StreamDescriptionSummary' => [ 'shape' => 'StreamDescriptionSummary', ], ], ], 'DisableEnhancedMonitoringInput' => [ 'type' => 'structure', 'required' => [ 'StreamName', 'ShardLevelMetrics', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'ShardLevelMetrics' => [ 'shape' => 'MetricsNameList', ], ], ], 'EnableEnhancedMonitoringInput' => [ 'type' => 'structure', 'required' => [ 'StreamName', 'ShardLevelMetrics', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'ShardLevelMetrics' => [ 'shape' => 'MetricsNameList', ], ], ], 'EncryptionType' => [ 'type' => 'string', 'enum' => [ 'NONE', 'KMS', ], ], 'EnhancedMetrics' => [ 'type' => 'structure', 'members' => [ 'ShardLevelMetrics' => [ 'shape' => 'MetricsNameList', ], ], ], 'EnhancedMonitoringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnhancedMetrics', ], ], 'EnhancedMonitoringOutput' => [ 'type' => 'structure', 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'CurrentShardLevelMetrics' => [ 'shape' => 'MetricsNameList', ], 'DesiredShardLevelMetrics' => [ 'shape' => 'MetricsNameList', ], ], ], 'ErrorCode' => [ 'type' => 'string', ], 'ErrorMessage' => [ 'type' => 'string', ], 'ExpiredIteratorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ExpiredNextTokenException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'GetRecordsInput' => [ 'type' => 'structure', 'required' => [ 'ShardIterator', ], 'members' => [ 'ShardIterator' => [ 'shape' => 'ShardIterator', ], 'Limit' => [ 'shape' => 'GetRecordsInputLimit', ], ], ], 'GetRecordsInputLimit' => [ 'type' => 'integer', 'max' => 10000, 'min' => 1, ], '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', ], 'Timestamp' => [ 'shape' => 'Timestamp', ], ], ], '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', ], ], ], 'IncreaseStreamRetentionPeriodInput' => [ 'type' => 'structure', 'required' => [ 'StreamName', 'RetentionPeriodHours', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'RetentionPeriodHours' => [ 'shape' => 'RetentionPeriodHours', ], ], ], 'InternalFailureException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, 'fault' => true, ], 'InvalidArgumentException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'KMSAccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'KMSDisabledException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'KMSInvalidStateException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'KMSNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'KMSOptInRequired' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'KMSThrottlingException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'KeyId' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ListShardsInput' => [ 'type' => 'structure', 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'ExclusiveStartShardId' => [ 'shape' => 'ShardId', ], 'MaxResults' => [ 'shape' => 'ListShardsInputLimit', ], 'StreamCreationTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'ListShardsInputLimit' => [ 'type' => 'integer', 'max' => 10000, 'min' => 1, ], 'ListShardsOutput' => [ 'type' => 'structure', 'members' => [ 'Shards' => [ 'shape' => 'ShardList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListStreamConsumersInput' => [ 'type' => 'structure', 'required' => [ 'StreamARN', ], 'members' => [ 'StreamARN' => [ 'shape' => 'StreamARN', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'ListStreamConsumersInputLimit', ], 'StreamCreationTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'ListStreamConsumersInputLimit' => [ 'type' => 'integer', 'max' => 10000, 'min' => 1, ], 'ListStreamConsumersOutput' => [ 'type' => 'structure', 'members' => [ 'Consumers' => [ 'shape' => 'ConsumerList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListStreamsInput' => [ 'type' => 'structure', 'members' => [ 'Limit' => [ 'shape' => 'ListStreamsInputLimit', ], 'ExclusiveStartStreamName' => [ 'shape' => 'StreamName', ], ], ], 'ListStreamsInputLimit' => [ 'type' => 'integer', 'max' => 10000, 'min' => 1, ], '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', 'max' => 50, 'min' => 1, ], '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', ], ], ], 'MetricsName' => [ 'type' => 'string', 'enum' => [ 'IncomingBytes', 'IncomingRecords', 'OutgoingBytes', 'OutgoingRecords', 'WriteProvisionedThroughputExceeded', 'ReadProvisionedThroughputExceeded', 'IteratorAgeMilliseconds', 'ALL', ], ], 'MetricsNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricsName', ], 'max' => 7, 'min' => 1, ], 'MillisBehindLatest' => [ 'type' => 'long', 'min' => 0, ], 'NextToken' => [ 'type' => 'string', 'max' => 1048576, 'min' => 1, ], 'PartitionKey' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'PositiveIntegerObject' => [ 'type' => 'integer', 'max' => 100000, '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', ], 'EncryptionType' => [ 'shape' => 'EncryptionType', ], ], ], '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', ], 'EncryptionType' => [ 'shape' => 'EncryptionType', ], ], ], 'PutRecordsRequestEntry' => [ 'type' => 'structure', 'required' => [ 'Data', 'PartitionKey', ], 'members' => [ 'Data' => [ 'shape' => 'Data', ], 'ExplicitHashKey' => [ 'shape' => 'HashKey', ], 'PartitionKey' => [ 'shape' => 'PartitionKey', ], ], ], 'PutRecordsRequestEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PutRecordsRequestEntry', ], 'max' => 500, 'min' => 1, ], 'PutRecordsResultEntry' => [ 'type' => 'structure', 'members' => [ 'SequenceNumber' => [ 'shape' => 'SequenceNumber', ], 'ShardId' => [ 'shape' => 'ShardId', ], 'ErrorCode' => [ 'shape' => 'ErrorCode', ], 'ErrorMessage' => [ 'shape' => 'ErrorMessage', ], ], ], 'PutRecordsResultEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PutRecordsResultEntry', ], 'max' => 500, 'min' => 1, ], 'Record' => [ 'type' => 'structure', 'required' => [ 'SequenceNumber', 'Data', 'PartitionKey', ], 'members' => [ 'SequenceNumber' => [ 'shape' => 'SequenceNumber', ], 'ApproximateArrivalTimestamp' => [ 'shape' => 'Timestamp', ], 'Data' => [ 'shape' => 'Data', ], 'PartitionKey' => [ 'shape' => 'PartitionKey', ], 'EncryptionType' => [ 'shape' => 'EncryptionType', ], ], ], 'RecordList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Record', ], ], 'RegisterStreamConsumerInput' => [ 'type' => 'structure', 'required' => [ 'StreamARN', 'ConsumerName', ], 'members' => [ 'StreamARN' => [ 'shape' => 'StreamARN', ], 'ConsumerName' => [ 'shape' => 'ConsumerName', ], ], ], 'RegisterStreamConsumerOutput' => [ 'type' => 'structure', 'required' => [ 'Consumer', ], 'members' => [ 'Consumer' => [ 'shape' => 'Consumer', ], ], ], '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, ], 'RetentionPeriodHours' => [ 'type' => 'integer', 'max' => 168, 'min' => 1, ], 'ScalingType' => [ 'type' => 'string', 'enum' => [ 'UNIFORM_SCALING', ], ], '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', ], ], ], 'ShardCountObject' => [ 'type' => 'integer', 'max' => 1000000, 'min' => 0, ], 'ShardId' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.-]+', ], 'ShardIterator' => [ 'type' => 'string', 'max' => 512, 'min' => 1, ], 'ShardIteratorType' => [ 'type' => 'string', 'enum' => [ 'AT_SEQUENCE_NUMBER', 'AFTER_SEQUENCE_NUMBER', 'TRIM_HORIZON', 'LATEST', 'AT_TIMESTAMP', ], ], 'ShardList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Shard', ], ], 'SplitShardInput' => [ 'type' => 'structure', 'required' => [ 'StreamName', 'ShardToSplit', 'NewStartingHashKey', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'ShardToSplit' => [ 'shape' => 'ShardId', ], 'NewStartingHashKey' => [ 'shape' => 'HashKey', ], ], ], 'StartStreamEncryptionInput' => [ 'type' => 'structure', 'required' => [ 'StreamName', 'EncryptionType', 'KeyId', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'EncryptionType' => [ 'shape' => 'EncryptionType', ], 'KeyId' => [ 'shape' => 'KeyId', ], ], ], 'StartingPosition' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'ShardIteratorType', ], 'SequenceNumber' => [ 'shape' => 'SequenceNumber', ], 'Timestamp' => [ 'shape' => 'Timestamp', ], ], ], 'StopStreamEncryptionInput' => [ 'type' => 'structure', 'required' => [ 'StreamName', 'EncryptionType', 'KeyId', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'EncryptionType' => [ 'shape' => 'EncryptionType', ], 'KeyId' => [ 'shape' => 'KeyId', ], ], ], 'StreamARN' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:aws.*:kinesis:.*:\\d{12}:stream/.*', ], 'StreamDescription' => [ 'type' => 'structure', 'required' => [ 'StreamName', 'StreamARN', 'StreamStatus', 'Shards', 'HasMoreShards', 'RetentionPeriodHours', 'StreamCreationTimestamp', 'EnhancedMonitoring', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'StreamARN' => [ 'shape' => 'StreamARN', ], 'StreamStatus' => [ 'shape' => 'StreamStatus', ], 'Shards' => [ 'shape' => 'ShardList', ], 'HasMoreShards' => [ 'shape' => 'BooleanObject', ], 'RetentionPeriodHours' => [ 'shape' => 'RetentionPeriodHours', ], 'StreamCreationTimestamp' => [ 'shape' => 'Timestamp', ], 'EnhancedMonitoring' => [ 'shape' => 'EnhancedMonitoringList', ], 'EncryptionType' => [ 'shape' => 'EncryptionType', ], 'KeyId' => [ 'shape' => 'KeyId', ], ], ], 'StreamDescriptionSummary' => [ 'type' => 'structure', 'required' => [ 'StreamName', 'StreamARN', 'StreamStatus', 'RetentionPeriodHours', 'StreamCreationTimestamp', 'EnhancedMonitoring', 'OpenShardCount', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'StreamARN' => [ 'shape' => 'StreamARN', ], 'StreamStatus' => [ 'shape' => 'StreamStatus', ], 'RetentionPeriodHours' => [ 'shape' => 'PositiveIntegerObject', ], 'StreamCreationTimestamp' => [ 'shape' => 'Timestamp', ], 'EnhancedMonitoring' => [ 'shape' => 'EnhancedMonitoringList', ], 'EncryptionType' => [ 'shape' => 'EncryptionType', ], 'KeyId' => [ 'shape' => 'KeyId', ], 'OpenShardCount' => [ 'shape' => 'ShardCountObject', ], 'ConsumerCount' => [ 'shape' => 'ConsumerCountObject', ], ], ], 'StreamName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.-]+', ], 'StreamNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'StreamName', ], ], 'StreamStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'DELETING', 'ACTIVE', 'UPDATING', ], ], 'SubscribeToShardEvent' => [ 'type' => 'structure', 'required' => [ 'Records', 'ContinuationSequenceNumber', 'MillisBehindLatest', ], 'members' => [ 'Records' => [ 'shape' => 'RecordList', ], 'ContinuationSequenceNumber' => [ 'shape' => 'SequenceNumber', ], 'MillisBehindLatest' => [ 'shape' => 'MillisBehindLatest', ], ], 'event' => true, ], 'SubscribeToShardEventStream' => [ 'type' => 'structure', 'required' => [ 'SubscribeToShardEvent', ], 'members' => [ 'SubscribeToShardEvent' => [ 'shape' => 'SubscribeToShardEvent', ], 'ResourceNotFoundException' => [ 'shape' => 'ResourceNotFoundException', ], 'ResourceInUseException' => [ 'shape' => 'ResourceInUseException', ], 'KMSDisabledException' => [ 'shape' => 'KMSDisabledException', ], 'KMSInvalidStateException' => [ 'shape' => 'KMSInvalidStateException', ], 'KMSAccessDeniedException' => [ 'shape' => 'KMSAccessDeniedException', ], 'KMSNotFoundException' => [ 'shape' => 'KMSNotFoundException', ], 'KMSOptInRequired' => [ 'shape' => 'KMSOptInRequired', ], 'KMSThrottlingException' => [ 'shape' => 'KMSThrottlingException', ], 'InternalFailureException' => [ 'shape' => 'InternalFailureException', ], ], 'eventstream' => true, ], 'SubscribeToShardInput' => [ 'type' => 'structure', 'required' => [ 'ConsumerARN', 'ShardId', 'StartingPosition', ], 'members' => [ 'ConsumerARN' => [ 'shape' => 'ConsumerARN', ], 'ShardId' => [ 'shape' => 'ShardId', ], 'StartingPosition' => [ 'shape' => 'StartingPosition', ], ], ], 'SubscribeToShardOutput' => [ 'type' => 'structure', 'required' => [ 'EventStream', ], 'members' => [ 'EventStream' => [ 'shape' => 'SubscribeToShardEventStream', ], ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 50, 'min' => 1, ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'min' => 0, ], 'TagMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], 'max' => 50, 'min' => 1, ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'UpdateShardCountInput' => [ 'type' => 'structure', 'required' => [ 'StreamName', 'TargetShardCount', 'ScalingType', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'TargetShardCount' => [ 'shape' => 'PositiveIntegerObject', ], 'ScalingType' => [ 'shape' => 'ScalingType', ], ], ], 'UpdateShardCountOutput' => [ 'type' => 'structure', 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'CurrentShardCount' => [ 'shape' => 'PositiveIntegerObject', ], 'TargetShardCount' => [ 'shape' => 'PositiveIntegerObject', ], ], ], ],]; diff --git a/lib/aws/Aws/data/kinesis/2013-12-02/paginators-1.json.php b/lib/aws/Aws/data/kinesis/2013-12-02/paginators-1.json.php new file mode 100644 index 0000000..0857fb3 --- /dev/null +++ b/lib/aws/Aws/data/kinesis/2013-12-02/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/kinesis/2013-12-02/paginators-1.json +return [ 'pagination' => [ 'DescribeStream' => [ 'input_token' => 'ExclusiveStartShardId', 'limit_key' => 'Limit', 'more_results' => 'StreamDescription.HasMoreShards', 'output_token' => 'StreamDescription.Shards[-1].ShardId', 'result_key' => 'StreamDescription.Shards', ], 'ListStreamConsumers' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'ListStreams' => [ 'input_token' => 'ExclusiveStartStreamName', 'limit_key' => 'Limit', 'more_results' => 'HasMoreStreams', 'output_token' => 'StreamNames[-1]', 'result_key' => 'StreamNames', ], ],]; diff --git a/lib/aws/Aws/data/kinesis/2013-12-02/smoke.json.php b/lib/aws/Aws/data/kinesis/2013-12-02/smoke.json.php new file mode 100644 index 0000000..2aba850 --- /dev/null +++ b/lib/aws/Aws/data/kinesis/2013-12-02/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/kinesis/2013-12-02/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListStreams', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeStream', 'input' => [ 'StreamName' => 'bogus-stream-name', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/kinesis/2013-12-02/waiters-2.json.php b/lib/aws/Aws/data/kinesis/2013-12-02/waiters-2.json.php new file mode 100644 index 0000000..0a68d22 --- /dev/null +++ b/lib/aws/Aws/data/kinesis/2013-12-02/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/kinesis/2013-12-02/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'StreamExists' => [ 'delay' => 10, 'operation' => 'DescribeStream', 'maxAttempts' => 18, 'acceptors' => [ [ 'expected' => 'ACTIVE', 'matcher' => 'path', 'state' => 'success', 'argument' => 'StreamDescription.StreamStatus', ], ], ], 'StreamNotExists' => [ 'delay' => 10, 'operation' => 'DescribeStream', 'maxAttempts' => 18, 'acceptors' => [ [ 'expected' => 'ResourceNotFoundException', 'matcher' => 'error', 'state' => 'success', ], ], ], ],]; diff --git a/lib/aws/Aws/data/kinesisanalytics/2015-08-14/api-2.json.php b/lib/aws/Aws/data/kinesisanalytics/2015-08-14/api-2.json.php new file mode 100644 index 0000000..2900ba6 --- /dev/null +++ b/lib/aws/Aws/data/kinesisanalytics/2015-08-14/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/kinesisanalytics/2015-08-14/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-08-14', 'endpointPrefix' => 'kinesisanalytics', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'Kinesis Analytics', 'serviceFullName' => 'Amazon Kinesis Analytics', 'serviceId' => 'Kinesis Analytics', 'signatureVersion' => 'v4', 'targetPrefix' => 'KinesisAnalytics_20150814', 'uid' => 'kinesisanalytics-2015-08-14', ], 'operations' => [ 'AddApplicationCloudWatchLoggingOption' => [ 'name' => 'AddApplicationCloudWatchLoggingOption', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddApplicationCloudWatchLoggingOptionRequest', ], 'output' => [ 'shape' => 'AddApplicationCloudWatchLoggingOptionResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'AddApplicationInput' => [ 'name' => 'AddApplicationInput', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddApplicationInputRequest', ], 'output' => [ 'shape' => 'AddApplicationInputResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'CodeValidationException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'AddApplicationInputProcessingConfiguration' => [ 'name' => 'AddApplicationInputProcessingConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddApplicationInputProcessingConfigurationRequest', ], 'output' => [ 'shape' => 'AddApplicationInputProcessingConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'AddApplicationOutput' => [ 'name' => 'AddApplicationOutput', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddApplicationOutputRequest', ], 'output' => [ 'shape' => 'AddApplicationOutputResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'AddApplicationReferenceDataSource' => [ 'name' => 'AddApplicationReferenceDataSource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddApplicationReferenceDataSourceRequest', ], 'output' => [ 'shape' => 'AddApplicationReferenceDataSourceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'CreateApplication' => [ 'name' => 'CreateApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateApplicationRequest', ], 'output' => [ 'shape' => 'CreateApplicationResponse', ], 'errors' => [ [ 'shape' => 'CodeValidationException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidArgumentException', ], ], ], 'DeleteApplication' => [ 'name' => 'DeleteApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteApplicationRequest', ], 'output' => [ 'shape' => 'DeleteApplicationResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'DeleteApplicationCloudWatchLoggingOption' => [ 'name' => 'DeleteApplicationCloudWatchLoggingOption', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteApplicationCloudWatchLoggingOptionRequest', ], 'output' => [ 'shape' => 'DeleteApplicationCloudWatchLoggingOptionResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'DeleteApplicationInputProcessingConfiguration' => [ 'name' => 'DeleteApplicationInputProcessingConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteApplicationInputProcessingConfigurationRequest', ], 'output' => [ 'shape' => 'DeleteApplicationInputProcessingConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'DeleteApplicationOutput' => [ 'name' => 'DeleteApplicationOutput', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteApplicationOutputRequest', ], 'output' => [ 'shape' => 'DeleteApplicationOutputResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'DeleteApplicationReferenceDataSource' => [ 'name' => 'DeleteApplicationReferenceDataSource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteApplicationReferenceDataSourceRequest', ], 'output' => [ 'shape' => 'DeleteApplicationReferenceDataSourceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'DescribeApplication' => [ 'name' => 'DescribeApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeApplicationRequest', ], 'output' => [ 'shape' => 'DescribeApplicationResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'DiscoverInputSchema' => [ 'name' => 'DiscoverInputSchema', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DiscoverInputSchemaRequest', ], 'output' => [ 'shape' => 'DiscoverInputSchemaResponse', ], 'errors' => [ [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'UnableToDetectSchemaException', ], [ 'shape' => 'ResourceProvisionedThroughputExceededException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ListApplications' => [ 'name' => 'ListApplications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListApplicationsRequest', ], 'output' => [ 'shape' => 'ListApplicationsResponse', ], ], 'StartApplication' => [ 'name' => 'StartApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartApplicationRequest', ], 'output' => [ 'shape' => 'StartApplicationResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'InvalidApplicationConfigurationException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'StopApplication' => [ 'name' => 'StopApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopApplicationRequest', ], 'output' => [ 'shape' => 'StopApplicationResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'UpdateApplication' => [ 'name' => 'UpdateApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateApplicationRequest', ], 'output' => [ 'shape' => 'UpdateApplicationResponse', ], 'errors' => [ [ 'shape' => 'CodeValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], ], 'shapes' => [ 'AddApplicationCloudWatchLoggingOptionRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CurrentApplicationVersionId', 'CloudWatchLoggingOption', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CurrentApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'CloudWatchLoggingOption' => [ 'shape' => 'CloudWatchLoggingOption', ], ], ], 'AddApplicationCloudWatchLoggingOptionResponse' => [ 'type' => 'structure', 'members' => [], ], 'AddApplicationInputProcessingConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CurrentApplicationVersionId', 'InputId', 'InputProcessingConfiguration', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CurrentApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'InputId' => [ 'shape' => 'Id', ], 'InputProcessingConfiguration' => [ 'shape' => 'InputProcessingConfiguration', ], ], ], 'AddApplicationInputProcessingConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'AddApplicationInputRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CurrentApplicationVersionId', 'Input', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CurrentApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'Input' => [ 'shape' => 'Input', ], ], ], 'AddApplicationInputResponse' => [ 'type' => 'structure', 'members' => [], ], 'AddApplicationOutputRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CurrentApplicationVersionId', 'Output', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CurrentApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'Output' => [ 'shape' => 'Output', ], ], ], 'AddApplicationOutputResponse' => [ 'type' => 'structure', 'members' => [], ], 'AddApplicationReferenceDataSourceRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CurrentApplicationVersionId', 'ReferenceDataSource', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CurrentApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'ReferenceDataSource' => [ 'shape' => 'ReferenceDataSource', ], ], ], 'AddApplicationReferenceDataSourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'ApplicationCode' => [ 'type' => 'string', 'max' => 102400, 'min' => 0, ], 'ApplicationDescription' => [ 'type' => 'string', 'max' => 1024, 'min' => 0, ], 'ApplicationDetail' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'ApplicationARN', 'ApplicationStatus', 'ApplicationVersionId', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'ApplicationDescription' => [ 'shape' => 'ApplicationDescription', ], 'ApplicationARN' => [ 'shape' => 'ResourceARN', ], 'ApplicationStatus' => [ 'shape' => 'ApplicationStatus', ], 'CreateTimestamp' => [ 'shape' => 'Timestamp', ], 'LastUpdateTimestamp' => [ 'shape' => 'Timestamp', ], 'InputDescriptions' => [ 'shape' => 'InputDescriptions', ], 'OutputDescriptions' => [ 'shape' => 'OutputDescriptions', ], 'ReferenceDataSourceDescriptions' => [ 'shape' => 'ReferenceDataSourceDescriptions', ], 'CloudWatchLoggingOptionDescriptions' => [ 'shape' => 'CloudWatchLoggingOptionDescriptions', ], 'ApplicationCode' => [ 'shape' => 'ApplicationCode', ], 'ApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], ], ], 'ApplicationName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.-]+', ], 'ApplicationStatus' => [ 'type' => 'string', 'enum' => [ 'DELETING', 'STARTING', 'STOPPING', 'READY', 'RUNNING', 'UPDATING', ], ], 'ApplicationSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApplicationSummary', ], ], 'ApplicationSummary' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'ApplicationARN', 'ApplicationStatus', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'ApplicationARN' => [ 'shape' => 'ResourceARN', ], 'ApplicationStatus' => [ 'shape' => 'ApplicationStatus', ], ], ], 'ApplicationUpdate' => [ 'type' => 'structure', 'members' => [ 'InputUpdates' => [ 'shape' => 'InputUpdates', ], 'ApplicationCodeUpdate' => [ 'shape' => 'ApplicationCode', ], 'OutputUpdates' => [ 'shape' => 'OutputUpdates', ], 'ReferenceDataSourceUpdates' => [ 'shape' => 'ReferenceDataSourceUpdates', ], 'CloudWatchLoggingOptionUpdates' => [ 'shape' => 'CloudWatchLoggingOptionUpdates', ], ], ], 'ApplicationVersionId' => [ 'type' => 'long', 'max' => 999999999, 'min' => 1, ], 'BooleanObject' => [ 'type' => 'boolean', ], 'BucketARN' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:.*', ], 'CSVMappingParameters' => [ 'type' => 'structure', 'required' => [ 'RecordRowDelimiter', 'RecordColumnDelimiter', ], 'members' => [ 'RecordRowDelimiter' => [ 'shape' => 'RecordRowDelimiter', ], 'RecordColumnDelimiter' => [ 'shape' => 'RecordColumnDelimiter', ], ], ], 'CloudWatchLoggingOption' => [ 'type' => 'structure', 'required' => [ 'LogStreamARN', 'RoleARN', ], 'members' => [ 'LogStreamARN' => [ 'shape' => 'LogStreamARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'CloudWatchLoggingOptionDescription' => [ 'type' => 'structure', 'required' => [ 'LogStreamARN', 'RoleARN', ], 'members' => [ 'CloudWatchLoggingOptionId' => [ 'shape' => 'Id', ], 'LogStreamARN' => [ 'shape' => 'LogStreamARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'CloudWatchLoggingOptionDescriptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'CloudWatchLoggingOptionDescription', ], ], 'CloudWatchLoggingOptionUpdate' => [ 'type' => 'structure', 'required' => [ 'CloudWatchLoggingOptionId', ], 'members' => [ 'CloudWatchLoggingOptionId' => [ 'shape' => 'Id', ], 'LogStreamARNUpdate' => [ 'shape' => 'LogStreamARN', ], 'RoleARNUpdate' => [ 'shape' => 'RoleARN', ], ], ], 'CloudWatchLoggingOptionUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'CloudWatchLoggingOptionUpdate', ], ], 'CloudWatchLoggingOptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'CloudWatchLoggingOption', ], ], 'CodeValidationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'CreateApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'ApplicationDescription' => [ 'shape' => 'ApplicationDescription', ], 'Inputs' => [ 'shape' => 'Inputs', ], 'Outputs' => [ 'shape' => 'Outputs', ], 'CloudWatchLoggingOptions' => [ 'shape' => 'CloudWatchLoggingOptions', ], 'ApplicationCode' => [ 'shape' => 'ApplicationCode', ], ], ], 'CreateApplicationResponse' => [ 'type' => 'structure', 'required' => [ 'ApplicationSummary', ], 'members' => [ 'ApplicationSummary' => [ 'shape' => 'ApplicationSummary', ], ], ], 'DeleteApplicationCloudWatchLoggingOptionRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CurrentApplicationVersionId', 'CloudWatchLoggingOptionId', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CurrentApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'CloudWatchLoggingOptionId' => [ 'shape' => 'Id', ], ], ], 'DeleteApplicationCloudWatchLoggingOptionResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteApplicationInputProcessingConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CurrentApplicationVersionId', 'InputId', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CurrentApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'InputId' => [ 'shape' => 'Id', ], ], ], 'DeleteApplicationInputProcessingConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteApplicationOutputRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CurrentApplicationVersionId', 'OutputId', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CurrentApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'OutputId' => [ 'shape' => 'Id', ], ], ], 'DeleteApplicationOutputResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteApplicationReferenceDataSourceRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CurrentApplicationVersionId', 'ReferenceId', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CurrentApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'ReferenceId' => [ 'shape' => 'Id', ], ], ], 'DeleteApplicationReferenceDataSourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CreateTimestamp', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CreateTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'DeleteApplicationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DescribeApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], ], ], 'DescribeApplicationResponse' => [ 'type' => 'structure', 'required' => [ 'ApplicationDetail', ], 'members' => [ 'ApplicationDetail' => [ 'shape' => 'ApplicationDetail', ], ], ], 'DestinationSchema' => [ 'type' => 'structure', 'required' => [ 'RecordFormatType', ], 'members' => [ 'RecordFormatType' => [ 'shape' => 'RecordFormatType', ], ], ], 'DiscoverInputSchemaRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], 'InputStartingPositionConfiguration' => [ 'shape' => 'InputStartingPositionConfiguration', ], 'S3Configuration' => [ 'shape' => 'S3Configuration', ], 'InputProcessingConfiguration' => [ 'shape' => 'InputProcessingConfiguration', ], ], ], 'DiscoverInputSchemaResponse' => [ 'type' => 'structure', 'members' => [ 'InputSchema' => [ 'shape' => 'SourceSchema', ], 'ParsedInputRecords' => [ 'shape' => 'ParsedInputRecords', ], 'ProcessedInputRecords' => [ 'shape' => 'ProcessedInputRecords', ], 'RawInputRecords' => [ 'shape' => 'RawInputRecords', ], ], ], 'ErrorMessage' => [ 'type' => 'string', ], 'FileKey' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'Id' => [ 'type' => 'string', 'max' => 50, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.-]+', ], 'InAppStreamName' => [ 'type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '[a-zA-Z][a-zA-Z0-9_]+', ], 'InAppStreamNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'InAppStreamName', ], ], 'InAppTableName' => [ 'type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '[a-zA-Z][a-zA-Z0-9_]+', ], 'Input' => [ 'type' => 'structure', 'required' => [ 'NamePrefix', 'InputSchema', ], 'members' => [ 'NamePrefix' => [ 'shape' => 'InAppStreamName', ], 'InputProcessingConfiguration' => [ 'shape' => 'InputProcessingConfiguration', ], 'KinesisStreamsInput' => [ 'shape' => 'KinesisStreamsInput', ], 'KinesisFirehoseInput' => [ 'shape' => 'KinesisFirehoseInput', ], 'InputParallelism' => [ 'shape' => 'InputParallelism', ], 'InputSchema' => [ 'shape' => 'SourceSchema', ], ], ], 'InputConfiguration' => [ 'type' => 'structure', 'required' => [ 'Id', 'InputStartingPositionConfiguration', ], 'members' => [ 'Id' => [ 'shape' => 'Id', ], 'InputStartingPositionConfiguration' => [ 'shape' => 'InputStartingPositionConfiguration', ], ], ], 'InputConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'InputConfiguration', ], ], 'InputDescription' => [ 'type' => 'structure', 'members' => [ 'InputId' => [ 'shape' => 'Id', ], 'NamePrefix' => [ 'shape' => 'InAppStreamName', ], 'InAppStreamNames' => [ 'shape' => 'InAppStreamNames', ], 'InputProcessingConfigurationDescription' => [ 'shape' => 'InputProcessingConfigurationDescription', ], 'KinesisStreamsInputDescription' => [ 'shape' => 'KinesisStreamsInputDescription', ], 'KinesisFirehoseInputDescription' => [ 'shape' => 'KinesisFirehoseInputDescription', ], 'InputSchema' => [ 'shape' => 'SourceSchema', ], 'InputParallelism' => [ 'shape' => 'InputParallelism', ], 'InputStartingPositionConfiguration' => [ 'shape' => 'InputStartingPositionConfiguration', ], ], ], 'InputDescriptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'InputDescription', ], ], 'InputLambdaProcessor' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', 'RoleARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'InputLambdaProcessorDescription' => [ 'type' => 'structure', 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'InputLambdaProcessorUpdate' => [ 'type' => 'structure', 'members' => [ 'ResourceARNUpdate' => [ 'shape' => 'ResourceARN', ], 'RoleARNUpdate' => [ 'shape' => 'RoleARN', ], ], ], 'InputParallelism' => [ 'type' => 'structure', 'members' => [ 'Count' => [ 'shape' => 'InputParallelismCount', ], ], ], 'InputParallelismCount' => [ 'type' => 'integer', 'max' => 64, 'min' => 1, ], 'InputParallelismUpdate' => [ 'type' => 'structure', 'members' => [ 'CountUpdate' => [ 'shape' => 'InputParallelismCount', ], ], ], 'InputProcessingConfiguration' => [ 'type' => 'structure', 'required' => [ 'InputLambdaProcessor', ], 'members' => [ 'InputLambdaProcessor' => [ 'shape' => 'InputLambdaProcessor', ], ], ], 'InputProcessingConfigurationDescription' => [ 'type' => 'structure', 'members' => [ 'InputLambdaProcessorDescription' => [ 'shape' => 'InputLambdaProcessorDescription', ], ], ], 'InputProcessingConfigurationUpdate' => [ 'type' => 'structure', 'required' => [ 'InputLambdaProcessorUpdate', ], 'members' => [ 'InputLambdaProcessorUpdate' => [ 'shape' => 'InputLambdaProcessorUpdate', ], ], ], 'InputSchemaUpdate' => [ 'type' => 'structure', 'members' => [ 'RecordFormatUpdate' => [ 'shape' => 'RecordFormat', ], 'RecordEncodingUpdate' => [ 'shape' => 'RecordEncoding', ], 'RecordColumnUpdates' => [ 'shape' => 'RecordColumns', ], ], ], 'InputStartingPosition' => [ 'type' => 'string', 'enum' => [ 'NOW', 'TRIM_HORIZON', 'LAST_STOPPED_POINT', ], ], 'InputStartingPositionConfiguration' => [ 'type' => 'structure', 'members' => [ 'InputStartingPosition' => [ 'shape' => 'InputStartingPosition', ], ], ], 'InputUpdate' => [ 'type' => 'structure', 'required' => [ 'InputId', ], 'members' => [ 'InputId' => [ 'shape' => 'Id', ], 'NamePrefixUpdate' => [ 'shape' => 'InAppStreamName', ], 'InputProcessingConfigurationUpdate' => [ 'shape' => 'InputProcessingConfigurationUpdate', ], 'KinesisStreamsInputUpdate' => [ 'shape' => 'KinesisStreamsInputUpdate', ], 'KinesisFirehoseInputUpdate' => [ 'shape' => 'KinesisFirehoseInputUpdate', ], 'InputSchemaUpdate' => [ 'shape' => 'InputSchemaUpdate', ], 'InputParallelismUpdate' => [ 'shape' => 'InputParallelismUpdate', ], ], ], 'InputUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'InputUpdate', ], ], 'Inputs' => [ 'type' => 'list', 'member' => [ 'shape' => 'Input', ], ], 'InvalidApplicationConfigurationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidArgumentException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'JSONMappingParameters' => [ 'type' => 'structure', 'required' => [ 'RecordRowPath', ], 'members' => [ 'RecordRowPath' => [ 'shape' => 'RecordRowPath', ], ], ], 'KinesisFirehoseInput' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', 'RoleARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'KinesisFirehoseInputDescription' => [ 'type' => 'structure', 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'KinesisFirehoseInputUpdate' => [ 'type' => 'structure', 'members' => [ 'ResourceARNUpdate' => [ 'shape' => 'ResourceARN', ], 'RoleARNUpdate' => [ 'shape' => 'RoleARN', ], ], ], 'KinesisFirehoseOutput' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', 'RoleARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'KinesisFirehoseOutputDescription' => [ 'type' => 'structure', 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'KinesisFirehoseOutputUpdate' => [ 'type' => 'structure', 'members' => [ 'ResourceARNUpdate' => [ 'shape' => 'ResourceARN', ], 'RoleARNUpdate' => [ 'shape' => 'RoleARN', ], ], ], 'KinesisStreamsInput' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', 'RoleARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'KinesisStreamsInputDescription' => [ 'type' => 'structure', 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'KinesisStreamsInputUpdate' => [ 'type' => 'structure', 'members' => [ 'ResourceARNUpdate' => [ 'shape' => 'ResourceARN', ], 'RoleARNUpdate' => [ 'shape' => 'RoleARN', ], ], ], 'KinesisStreamsOutput' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', 'RoleARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'KinesisStreamsOutputDescription' => [ 'type' => 'structure', 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'KinesisStreamsOutputUpdate' => [ 'type' => 'structure', 'members' => [ 'ResourceARNUpdate' => [ 'shape' => 'ResourceARN', ], 'RoleARNUpdate' => [ 'shape' => 'RoleARN', ], ], ], 'LambdaOutput' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', 'RoleARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'LambdaOutputDescription' => [ 'type' => 'structure', 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'LambdaOutputUpdate' => [ 'type' => 'structure', 'members' => [ 'ResourceARNUpdate' => [ 'shape' => 'ResourceARN', ], 'RoleARNUpdate' => [ 'shape' => 'RoleARN', ], ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ListApplicationsInputLimit' => [ 'type' => 'integer', 'max' => 50, 'min' => 1, ], 'ListApplicationsRequest' => [ 'type' => 'structure', 'members' => [ 'Limit' => [ 'shape' => 'ListApplicationsInputLimit', ], 'ExclusiveStartApplicationName' => [ 'shape' => 'ApplicationName', ], ], ], 'ListApplicationsResponse' => [ 'type' => 'structure', 'required' => [ 'ApplicationSummaries', 'HasMoreApplications', ], 'members' => [ 'ApplicationSummaries' => [ 'shape' => 'ApplicationSummaries', ], 'HasMoreApplications' => [ 'shape' => 'BooleanObject', ], ], ], 'LogStreamARN' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:.*', ], 'MappingParameters' => [ 'type' => 'structure', 'members' => [ 'JSONMappingParameters' => [ 'shape' => 'JSONMappingParameters', ], 'CSVMappingParameters' => [ 'shape' => 'CSVMappingParameters', ], ], ], 'Output' => [ 'type' => 'structure', 'required' => [ 'Name', 'DestinationSchema', ], 'members' => [ 'Name' => [ 'shape' => 'InAppStreamName', ], 'KinesisStreamsOutput' => [ 'shape' => 'KinesisStreamsOutput', ], 'KinesisFirehoseOutput' => [ 'shape' => 'KinesisFirehoseOutput', ], 'LambdaOutput' => [ 'shape' => 'LambdaOutput', ], 'DestinationSchema' => [ 'shape' => 'DestinationSchema', ], ], ], 'OutputDescription' => [ 'type' => 'structure', 'members' => [ 'OutputId' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'InAppStreamName', ], 'KinesisStreamsOutputDescription' => [ 'shape' => 'KinesisStreamsOutputDescription', ], 'KinesisFirehoseOutputDescription' => [ 'shape' => 'KinesisFirehoseOutputDescription', ], 'LambdaOutputDescription' => [ 'shape' => 'LambdaOutputDescription', ], 'DestinationSchema' => [ 'shape' => 'DestinationSchema', ], ], ], 'OutputDescriptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'OutputDescription', ], ], 'OutputUpdate' => [ 'type' => 'structure', 'required' => [ 'OutputId', ], 'members' => [ 'OutputId' => [ 'shape' => 'Id', ], 'NameUpdate' => [ 'shape' => 'InAppStreamName', ], 'KinesisStreamsOutputUpdate' => [ 'shape' => 'KinesisStreamsOutputUpdate', ], 'KinesisFirehoseOutputUpdate' => [ 'shape' => 'KinesisFirehoseOutputUpdate', ], 'LambdaOutputUpdate' => [ 'shape' => 'LambdaOutputUpdate', ], 'DestinationSchemaUpdate' => [ 'shape' => 'DestinationSchema', ], ], ], 'OutputUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'OutputUpdate', ], ], 'Outputs' => [ 'type' => 'list', 'member' => [ 'shape' => 'Output', ], ], 'ParsedInputRecord' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParsedInputRecordField', ], ], 'ParsedInputRecordField' => [ 'type' => 'string', ], 'ParsedInputRecords' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParsedInputRecord', ], ], 'ProcessedInputRecord' => [ 'type' => 'string', ], 'ProcessedInputRecords' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProcessedInputRecord', ], ], 'RawInputRecord' => [ 'type' => 'string', ], 'RawInputRecords' => [ 'type' => 'list', 'member' => [ 'shape' => 'RawInputRecord', ], ], 'RecordColumn' => [ 'type' => 'structure', 'required' => [ 'Name', 'SqlType', ], 'members' => [ 'Name' => [ 'shape' => 'RecordColumnName', ], 'Mapping' => [ 'shape' => 'RecordColumnMapping', ], 'SqlType' => [ 'shape' => 'RecordColumnSqlType', ], ], ], 'RecordColumnDelimiter' => [ 'type' => 'string', 'min' => 1, ], 'RecordColumnMapping' => [ 'type' => 'string', ], 'RecordColumnName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z_][a-zA-Z0-9_]*', ], 'RecordColumnSqlType' => [ 'type' => 'string', 'min' => 1, ], 'RecordColumns' => [ 'type' => 'list', 'member' => [ 'shape' => 'RecordColumn', ], 'max' => 1000, 'min' => 1, ], 'RecordEncoding' => [ 'type' => 'string', 'pattern' => 'UTF-8', ], 'RecordFormat' => [ 'type' => 'structure', 'required' => [ 'RecordFormatType', ], 'members' => [ 'RecordFormatType' => [ 'shape' => 'RecordFormatType', ], 'MappingParameters' => [ 'shape' => 'MappingParameters', ], ], ], 'RecordFormatType' => [ 'type' => 'string', 'enum' => [ 'JSON', 'CSV', ], ], 'RecordRowDelimiter' => [ 'type' => 'string', 'min' => 1, ], 'RecordRowPath' => [ 'type' => 'string', 'min' => 1, ], 'ReferenceDataSource' => [ 'type' => 'structure', 'required' => [ 'TableName', 'ReferenceSchema', ], 'members' => [ 'TableName' => [ 'shape' => 'InAppTableName', ], 'S3ReferenceDataSource' => [ 'shape' => 'S3ReferenceDataSource', ], 'ReferenceSchema' => [ 'shape' => 'SourceSchema', ], ], ], 'ReferenceDataSourceDescription' => [ 'type' => 'structure', 'required' => [ 'ReferenceId', 'TableName', 'S3ReferenceDataSourceDescription', ], 'members' => [ 'ReferenceId' => [ 'shape' => 'Id', ], 'TableName' => [ 'shape' => 'InAppTableName', ], 'S3ReferenceDataSourceDescription' => [ 'shape' => 'S3ReferenceDataSourceDescription', ], 'ReferenceSchema' => [ 'shape' => 'SourceSchema', ], ], ], 'ReferenceDataSourceDescriptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReferenceDataSourceDescription', ], ], 'ReferenceDataSourceUpdate' => [ 'type' => 'structure', 'required' => [ 'ReferenceId', ], 'members' => [ 'ReferenceId' => [ 'shape' => 'Id', ], 'TableNameUpdate' => [ 'shape' => 'InAppTableName', ], 'S3ReferenceDataSourceUpdate' => [ 'shape' => 'S3ReferenceDataSourceUpdate', ], 'ReferenceSchemaUpdate' => [ 'shape' => 'SourceSchema', ], ], ], 'ReferenceDataSourceUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReferenceDataSourceUpdate', ], ], 'ResourceARN' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:.*', ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ResourceProvisionedThroughputExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'RoleARN' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:aws:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+', ], 'S3Configuration' => [ 'type' => 'structure', 'required' => [ 'RoleARN', 'BucketARN', 'FileKey', ], 'members' => [ 'RoleARN' => [ 'shape' => 'RoleARN', ], 'BucketARN' => [ 'shape' => 'BucketARN', ], 'FileKey' => [ 'shape' => 'FileKey', ], ], ], 'S3ReferenceDataSource' => [ 'type' => 'structure', 'required' => [ 'BucketARN', 'FileKey', 'ReferenceRoleARN', ], 'members' => [ 'BucketARN' => [ 'shape' => 'BucketARN', ], 'FileKey' => [ 'shape' => 'FileKey', ], 'ReferenceRoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'S3ReferenceDataSourceDescription' => [ 'type' => 'structure', 'required' => [ 'BucketARN', 'FileKey', 'ReferenceRoleARN', ], 'members' => [ 'BucketARN' => [ 'shape' => 'BucketARN', ], 'FileKey' => [ 'shape' => 'FileKey', ], 'ReferenceRoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'S3ReferenceDataSourceUpdate' => [ 'type' => 'structure', 'members' => [ 'BucketARNUpdate' => [ 'shape' => 'BucketARN', ], 'FileKeyUpdate' => [ 'shape' => 'FileKey', ], 'ReferenceRoleARNUpdate' => [ 'shape' => 'RoleARN', ], ], ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, 'fault' => true, ], 'SourceSchema' => [ 'type' => 'structure', 'required' => [ 'RecordFormat', 'RecordColumns', ], 'members' => [ 'RecordFormat' => [ 'shape' => 'RecordFormat', ], 'RecordEncoding' => [ 'shape' => 'RecordEncoding', ], 'RecordColumns' => [ 'shape' => 'RecordColumns', ], ], ], 'StartApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'InputConfigurations', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'InputConfigurations' => [ 'shape' => 'InputConfigurations', ], ], ], 'StartApplicationResponse' => [ 'type' => 'structure', 'members' => [], ], 'StopApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], ], ], 'StopApplicationResponse' => [ 'type' => 'structure', 'members' => [], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'UnableToDetectSchemaException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], 'RawInputRecords' => [ 'shape' => 'RawInputRecords', ], 'ProcessedInputRecords' => [ 'shape' => 'ProcessedInputRecords', ], ], 'exception' => true, ], 'UnsupportedOperationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'UpdateApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CurrentApplicationVersionId', 'ApplicationUpdate', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CurrentApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'ApplicationUpdate' => [ 'shape' => 'ApplicationUpdate', ], ], ], 'UpdateApplicationResponse' => [ 'type' => 'structure', 'members' => [], ], ],]; diff --git a/lib/aws/Aws/data/kinesisanalytics/2015-08-14/paginators-1.json.php b/lib/aws/Aws/data/kinesisanalytics/2015-08-14/paginators-1.json.php new file mode 100644 index 0000000..e577c27 --- /dev/null +++ b/lib/aws/Aws/data/kinesisanalytics/2015-08-14/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/kinesisanalytics/2015-08-14/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/kinesisanalyticsv2/2018-05-23/api-2.json.php b/lib/aws/Aws/data/kinesisanalyticsv2/2018-05-23/api-2.json.php new file mode 100644 index 0000000..501230d --- /dev/null +++ b/lib/aws/Aws/data/kinesisanalyticsv2/2018-05-23/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/kinesisanalyticsv2/2018-05-23/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-05-23', 'endpointPrefix' => 'kinesisanalytics', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'Kinesis Analytics V2', 'serviceFullName' => 'Amazon Kinesis Analytics', 'serviceId' => 'Kinesis Analytics V2', 'signatureVersion' => 'v4', 'signingName' => 'kinesisanalytics', 'targetPrefix' => 'KinesisAnalytics_20180523', 'uid' => 'kinesisanalyticsv2-2018-05-23', ], 'operations' => [ 'AddApplicationCloudWatchLoggingOption' => [ 'name' => 'AddApplicationCloudWatchLoggingOption', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddApplicationCloudWatchLoggingOptionRequest', ], 'output' => [ 'shape' => 'AddApplicationCloudWatchLoggingOptionResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'AddApplicationInput' => [ 'name' => 'AddApplicationInput', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddApplicationInputRequest', ], 'output' => [ 'shape' => 'AddApplicationInputResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'CodeValidationException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'AddApplicationInputProcessingConfiguration' => [ 'name' => 'AddApplicationInputProcessingConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddApplicationInputProcessingConfigurationRequest', ], 'output' => [ 'shape' => 'AddApplicationInputProcessingConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'AddApplicationOutput' => [ 'name' => 'AddApplicationOutput', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddApplicationOutputRequest', ], 'output' => [ 'shape' => 'AddApplicationOutputResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'AddApplicationReferenceDataSource' => [ 'name' => 'AddApplicationReferenceDataSource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddApplicationReferenceDataSourceRequest', ], 'output' => [ 'shape' => 'AddApplicationReferenceDataSourceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'CreateApplication' => [ 'name' => 'CreateApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateApplicationRequest', ], 'output' => [ 'shape' => 'CreateApplicationResponse', ], 'errors' => [ [ 'shape' => 'CodeValidationException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'CreateApplicationSnapshot' => [ 'name' => 'CreateApplicationSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateApplicationSnapshotRequest', ], 'output' => [ 'shape' => 'CreateApplicationSnapshotResponse', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DeleteApplication' => [ 'name' => 'DeleteApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteApplicationRequest', ], 'output' => [ 'shape' => 'DeleteApplicationResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DeleteApplicationCloudWatchLoggingOption' => [ 'name' => 'DeleteApplicationCloudWatchLoggingOption', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteApplicationCloudWatchLoggingOptionRequest', ], 'output' => [ 'shape' => 'DeleteApplicationCloudWatchLoggingOptionResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DeleteApplicationInputProcessingConfiguration' => [ 'name' => 'DeleteApplicationInputProcessingConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteApplicationInputProcessingConfigurationRequest', ], 'output' => [ 'shape' => 'DeleteApplicationInputProcessingConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DeleteApplicationOutput' => [ 'name' => 'DeleteApplicationOutput', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteApplicationOutputRequest', ], 'output' => [ 'shape' => 'DeleteApplicationOutputResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DeleteApplicationReferenceDataSource' => [ 'name' => 'DeleteApplicationReferenceDataSource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteApplicationReferenceDataSourceRequest', ], 'output' => [ 'shape' => 'DeleteApplicationReferenceDataSourceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DeleteApplicationSnapshot' => [ 'name' => 'DeleteApplicationSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteApplicationSnapshotRequest', ], 'output' => [ 'shape' => 'DeleteApplicationSnapshotResponse', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeApplication' => [ 'name' => 'DescribeApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeApplicationRequest', ], 'output' => [ 'shape' => 'DescribeApplicationResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DescribeApplicationSnapshot' => [ 'name' => 'DescribeApplicationSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeApplicationSnapshotRequest', ], 'output' => [ 'shape' => 'DescribeApplicationSnapshotResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'DiscoverInputSchema' => [ 'name' => 'DiscoverInputSchema', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DiscoverInputSchemaRequest', ], 'output' => [ 'shape' => 'DiscoverInputSchemaResponse', ], 'errors' => [ [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'UnableToDetectSchemaException', ], [ 'shape' => 'ResourceProvisionedThroughputExceededException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ListApplicationSnapshots' => [ 'name' => 'ListApplicationSnapshots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListApplicationSnapshotsRequest', ], 'output' => [ 'shape' => 'ListApplicationSnapshotsResponse', ], 'errors' => [ [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'ListApplications' => [ 'name' => 'ListApplications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListApplicationsRequest', ], 'output' => [ 'shape' => 'ListApplicationsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], ], ], 'StartApplication' => [ 'name' => 'StartApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartApplicationRequest', ], 'output' => [ 'shape' => 'StartApplicationResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'InvalidApplicationConfigurationException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'StopApplication' => [ 'name' => 'StopApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopApplicationRequest', ], 'output' => [ 'shape' => 'StopApplicationResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'UpdateApplication' => [ 'name' => 'UpdateApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateApplicationRequest', ], 'output' => [ 'shape' => 'UpdateApplicationResponse', ], 'errors' => [ [ 'shape' => 'CodeValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidRequestException', ], ], ], ], 'shapes' => [ 'AddApplicationCloudWatchLoggingOptionRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CurrentApplicationVersionId', 'CloudWatchLoggingOption', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CurrentApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'CloudWatchLoggingOption' => [ 'shape' => 'CloudWatchLoggingOption', ], ], ], 'AddApplicationCloudWatchLoggingOptionResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationARN' => [ 'shape' => 'ResourceARN', ], 'ApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'CloudWatchLoggingOptionDescriptions' => [ 'shape' => 'CloudWatchLoggingOptionDescriptions', ], ], ], 'AddApplicationInputProcessingConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CurrentApplicationVersionId', 'InputId', 'InputProcessingConfiguration', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CurrentApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'InputId' => [ 'shape' => 'Id', ], 'InputProcessingConfiguration' => [ 'shape' => 'InputProcessingConfiguration', ], ], ], 'AddApplicationInputProcessingConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationARN' => [ 'shape' => 'ResourceARN', ], 'ApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'InputId' => [ 'shape' => 'Id', ], 'InputProcessingConfigurationDescription' => [ 'shape' => 'InputProcessingConfigurationDescription', ], ], ], 'AddApplicationInputRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CurrentApplicationVersionId', 'Input', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CurrentApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'Input' => [ 'shape' => 'Input', ], ], ], 'AddApplicationInputResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationARN' => [ 'shape' => 'ResourceARN', ], 'ApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'InputDescriptions' => [ 'shape' => 'InputDescriptions', ], ], ], 'AddApplicationOutputRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CurrentApplicationVersionId', 'Output', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CurrentApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'Output' => [ 'shape' => 'Output', ], ], ], 'AddApplicationOutputResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationARN' => [ 'shape' => 'ResourceARN', ], 'ApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'OutputDescriptions' => [ 'shape' => 'OutputDescriptions', ], ], ], 'AddApplicationReferenceDataSourceRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CurrentApplicationVersionId', 'ReferenceDataSource', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CurrentApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'ReferenceDataSource' => [ 'shape' => 'ReferenceDataSource', ], ], ], 'AddApplicationReferenceDataSourceResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationARN' => [ 'shape' => 'ResourceARN', ], 'ApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'ReferenceDataSourceDescriptions' => [ 'shape' => 'ReferenceDataSourceDescriptions', ], ], ], 'ApplicationCodeConfiguration' => [ 'type' => 'structure', 'required' => [ 'CodeContentType', ], 'members' => [ 'CodeContent' => [ 'shape' => 'CodeContent', ], 'CodeContentType' => [ 'shape' => 'CodeContentType', ], ], ], 'ApplicationCodeConfigurationDescription' => [ 'type' => 'structure', 'required' => [ 'CodeContentType', ], 'members' => [ 'CodeContentType' => [ 'shape' => 'CodeContentType', ], 'CodeContentDescription' => [ 'shape' => 'CodeContentDescription', ], ], ], 'ApplicationCodeConfigurationUpdate' => [ 'type' => 'structure', 'members' => [ 'CodeContentTypeUpdate' => [ 'shape' => 'CodeContentType', ], 'CodeContentUpdate' => [ 'shape' => 'CodeContentUpdate', ], ], ], 'ApplicationConfiguration' => [ 'type' => 'structure', 'required' => [ 'ApplicationCodeConfiguration', ], 'members' => [ 'SqlApplicationConfiguration' => [ 'shape' => 'SqlApplicationConfiguration', ], 'FlinkApplicationConfiguration' => [ 'shape' => 'FlinkApplicationConfiguration', ], 'EnvironmentProperties' => [ 'shape' => 'EnvironmentProperties', ], 'ApplicationCodeConfiguration' => [ 'shape' => 'ApplicationCodeConfiguration', ], 'ApplicationSnapshotConfiguration' => [ 'shape' => 'ApplicationSnapshotConfiguration', ], ], ], 'ApplicationConfigurationDescription' => [ 'type' => 'structure', 'members' => [ 'SqlApplicationConfigurationDescription' => [ 'shape' => 'SqlApplicationConfigurationDescription', ], 'ApplicationCodeConfigurationDescription' => [ 'shape' => 'ApplicationCodeConfigurationDescription', ], 'RunConfigurationDescription' => [ 'shape' => 'RunConfigurationDescription', ], 'FlinkApplicationConfigurationDescription' => [ 'shape' => 'FlinkApplicationConfigurationDescription', ], 'EnvironmentPropertyDescriptions' => [ 'shape' => 'EnvironmentPropertyDescriptions', ], 'ApplicationSnapshotConfigurationDescription' => [ 'shape' => 'ApplicationSnapshotConfigurationDescription', ], ], ], 'ApplicationConfigurationUpdate' => [ 'type' => 'structure', 'members' => [ 'SqlApplicationConfigurationUpdate' => [ 'shape' => 'SqlApplicationConfigurationUpdate', ], 'ApplicationCodeConfigurationUpdate' => [ 'shape' => 'ApplicationCodeConfigurationUpdate', ], 'FlinkApplicationConfigurationUpdate' => [ 'shape' => 'FlinkApplicationConfigurationUpdate', ], 'EnvironmentPropertyUpdates' => [ 'shape' => 'EnvironmentPropertyUpdates', ], 'ApplicationSnapshotConfigurationUpdate' => [ 'shape' => 'ApplicationSnapshotConfigurationUpdate', ], ], ], 'ApplicationDescription' => [ 'type' => 'string', 'max' => 1024, 'min' => 0, ], 'ApplicationDetail' => [ 'type' => 'structure', 'required' => [ 'ApplicationARN', 'ApplicationName', 'RuntimeEnvironment', 'ApplicationStatus', 'ApplicationVersionId', ], 'members' => [ 'ApplicationARN' => [ 'shape' => 'ResourceARN', ], 'ApplicationDescription' => [ 'shape' => 'ApplicationDescription', ], 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'RuntimeEnvironment' => [ 'shape' => 'RuntimeEnvironment', ], 'ServiceExecutionRole' => [ 'shape' => 'RoleARN', ], 'ApplicationStatus' => [ 'shape' => 'ApplicationStatus', ], 'ApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'CreateTimestamp' => [ 'shape' => 'Timestamp', ], 'LastUpdateTimestamp' => [ 'shape' => 'Timestamp', ], 'ApplicationConfigurationDescription' => [ 'shape' => 'ApplicationConfigurationDescription', ], 'CloudWatchLoggingOptionDescriptions' => [ 'shape' => 'CloudWatchLoggingOptionDescriptions', ], ], ], 'ApplicationName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.-]+', ], 'ApplicationRestoreConfiguration' => [ 'type' => 'structure', 'required' => [ 'ApplicationRestoreType', ], 'members' => [ 'ApplicationRestoreType' => [ 'shape' => 'ApplicationRestoreType', ], 'SnapshotName' => [ 'shape' => 'SnapshotName', ], ], ], 'ApplicationRestoreType' => [ 'type' => 'string', 'enum' => [ 'SKIP_RESTORE_FROM_SNAPSHOT', 'RESTORE_FROM_LATEST_SNAPSHOT', 'RESTORE_FROM_CUSTOM_SNAPSHOT', ], ], 'ApplicationSnapshotConfiguration' => [ 'type' => 'structure', 'required' => [ 'SnapshotsEnabled', ], 'members' => [ 'SnapshotsEnabled' => [ 'shape' => 'BooleanObject', ], ], ], 'ApplicationSnapshotConfigurationDescription' => [ 'type' => 'structure', 'required' => [ 'SnapshotsEnabled', ], 'members' => [ 'SnapshotsEnabled' => [ 'shape' => 'BooleanObject', ], ], ], 'ApplicationSnapshotConfigurationUpdate' => [ 'type' => 'structure', 'required' => [ 'SnapshotsEnabledUpdate', ], 'members' => [ 'SnapshotsEnabledUpdate' => [ 'shape' => 'BooleanObject', ], ], ], 'ApplicationStatus' => [ 'type' => 'string', 'enum' => [ 'DELETING', 'STARTING', 'STOPPING', 'READY', 'RUNNING', 'UPDATING', ], ], 'ApplicationSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApplicationSummary', ], ], 'ApplicationSummary' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'ApplicationARN', 'ApplicationStatus', 'ApplicationVersionId', 'RuntimeEnvironment', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'ApplicationARN' => [ 'shape' => 'ResourceARN', ], 'ApplicationStatus' => [ 'shape' => 'ApplicationStatus', ], 'ApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'RuntimeEnvironment' => [ 'shape' => 'RuntimeEnvironment', ], ], ], 'ApplicationVersionId' => [ 'type' => 'long', 'max' => 999999999, 'min' => 1, ], 'BooleanObject' => [ 'type' => 'boolean', ], 'BucketARN' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:.*', ], 'CSVMappingParameters' => [ 'type' => 'structure', 'required' => [ 'RecordRowDelimiter', 'RecordColumnDelimiter', ], 'members' => [ 'RecordRowDelimiter' => [ 'shape' => 'RecordRowDelimiter', ], 'RecordColumnDelimiter' => [ 'shape' => 'RecordColumnDelimiter', ], ], ], 'CheckpointConfiguration' => [ 'type' => 'structure', 'required' => [ 'ConfigurationType', ], 'members' => [ 'ConfigurationType' => [ 'shape' => 'ConfigurationType', ], 'CheckpointingEnabled' => [ 'shape' => 'BooleanObject', ], 'CheckpointInterval' => [ 'shape' => 'CheckpointInterval', ], 'MinPauseBetweenCheckpoints' => [ 'shape' => 'MinPauseBetweenCheckpoints', ], ], ], 'CheckpointConfigurationDescription' => [ 'type' => 'structure', 'members' => [ 'ConfigurationType' => [ 'shape' => 'ConfigurationType', ], 'CheckpointingEnabled' => [ 'shape' => 'BooleanObject', ], 'CheckpointInterval' => [ 'shape' => 'CheckpointInterval', ], 'MinPauseBetweenCheckpoints' => [ 'shape' => 'MinPauseBetweenCheckpoints', ], ], ], 'CheckpointConfigurationUpdate' => [ 'type' => 'structure', 'members' => [ 'ConfigurationTypeUpdate' => [ 'shape' => 'ConfigurationType', ], 'CheckpointingEnabledUpdate' => [ 'shape' => 'BooleanObject', ], 'CheckpointIntervalUpdate' => [ 'shape' => 'CheckpointInterval', ], 'MinPauseBetweenCheckpointsUpdate' => [ 'shape' => 'MinPauseBetweenCheckpoints', ], ], ], 'CheckpointInterval' => [ 'type' => 'long', 'min' => 0, ], 'CloudWatchLoggingOption' => [ 'type' => 'structure', 'required' => [ 'LogStreamARN', ], 'members' => [ 'LogStreamARN' => [ 'shape' => 'LogStreamARN', ], ], ], 'CloudWatchLoggingOptionDescription' => [ 'type' => 'structure', 'required' => [ 'LogStreamARN', ], 'members' => [ 'CloudWatchLoggingOptionId' => [ 'shape' => 'Id', ], 'LogStreamARN' => [ 'shape' => 'LogStreamARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'CloudWatchLoggingOptionDescriptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'CloudWatchLoggingOptionDescription', ], ], 'CloudWatchLoggingOptionUpdate' => [ 'type' => 'structure', 'required' => [ 'CloudWatchLoggingOptionId', ], 'members' => [ 'CloudWatchLoggingOptionId' => [ 'shape' => 'Id', ], 'LogStreamARNUpdate' => [ 'shape' => 'LogStreamARN', ], ], ], 'CloudWatchLoggingOptionUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'CloudWatchLoggingOptionUpdate', ], ], 'CloudWatchLoggingOptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'CloudWatchLoggingOption', ], ], 'CodeContent' => [ 'type' => 'structure', 'members' => [ 'TextContent' => [ 'shape' => 'TextContent', ], 'ZipFileContent' => [ 'shape' => 'ZipFileContent', ], 'S3ContentLocation' => [ 'shape' => 'S3ContentLocation', ], ], ], 'CodeContentDescription' => [ 'type' => 'structure', 'members' => [ 'TextContent' => [ 'shape' => 'TextContent', ], 'CodeMD5' => [ 'shape' => 'CodeMD5', ], 'CodeSize' => [ 'shape' => 'CodeSize', ], 'S3ApplicationCodeLocationDescription' => [ 'shape' => 'S3ApplicationCodeLocationDescription', ], ], ], 'CodeContentType' => [ 'type' => 'string', 'enum' => [ 'PLAINTEXT', 'ZIPFILE', ], ], 'CodeContentUpdate' => [ 'type' => 'structure', 'members' => [ 'TextContentUpdate' => [ 'shape' => 'TextContent', ], 'ZipFileContentUpdate' => [ 'shape' => 'ZipFileContent', ], 'S3ContentLocationUpdate' => [ 'shape' => 'S3ContentLocationUpdate', ], ], ], 'CodeMD5' => [ 'type' => 'string', 'max' => 128, 'min' => 128, ], 'CodeSize' => [ 'type' => 'long', 'max' => 52428800, 'min' => 0, ], 'CodeValidationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ConfigurationType' => [ 'type' => 'string', 'enum' => [ 'DEFAULT', 'CUSTOM', ], ], 'CreateApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'RuntimeEnvironment', 'ServiceExecutionRole', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'ApplicationDescription' => [ 'shape' => 'ApplicationDescription', ], 'RuntimeEnvironment' => [ 'shape' => 'RuntimeEnvironment', ], 'ServiceExecutionRole' => [ 'shape' => 'RoleARN', ], 'ApplicationConfiguration' => [ 'shape' => 'ApplicationConfiguration', ], 'CloudWatchLoggingOptions' => [ 'shape' => 'CloudWatchLoggingOptions', ], ], ], 'CreateApplicationResponse' => [ 'type' => 'structure', 'required' => [ 'ApplicationDetail', ], 'members' => [ 'ApplicationDetail' => [ 'shape' => 'ApplicationDetail', ], ], ], 'CreateApplicationSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'SnapshotName', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'SnapshotName' => [ 'shape' => 'SnapshotName', ], ], ], 'CreateApplicationSnapshotResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteApplicationCloudWatchLoggingOptionRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CurrentApplicationVersionId', 'CloudWatchLoggingOptionId', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CurrentApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'CloudWatchLoggingOptionId' => [ 'shape' => 'Id', ], ], ], 'DeleteApplicationCloudWatchLoggingOptionResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationARN' => [ 'shape' => 'ResourceARN', ], 'ApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'CloudWatchLoggingOptionDescriptions' => [ 'shape' => 'CloudWatchLoggingOptionDescriptions', ], ], ], 'DeleteApplicationInputProcessingConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CurrentApplicationVersionId', 'InputId', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CurrentApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'InputId' => [ 'shape' => 'Id', ], ], ], 'DeleteApplicationInputProcessingConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationARN' => [ 'shape' => 'ResourceARN', ], 'ApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], ], ], 'DeleteApplicationOutputRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CurrentApplicationVersionId', 'OutputId', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CurrentApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'OutputId' => [ 'shape' => 'Id', ], ], ], 'DeleteApplicationOutputResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationARN' => [ 'shape' => 'ResourceARN', ], 'ApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], ], ], 'DeleteApplicationReferenceDataSourceRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CurrentApplicationVersionId', 'ReferenceId', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CurrentApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'ReferenceId' => [ 'shape' => 'Id', ], ], ], 'DeleteApplicationReferenceDataSourceResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationARN' => [ 'shape' => 'ResourceARN', ], 'ApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], ], ], 'DeleteApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CreateTimestamp', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CreateTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'DeleteApplicationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteApplicationSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'SnapshotName', 'SnapshotCreationTimestamp', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'SnapshotName' => [ 'shape' => 'SnapshotName', ], 'SnapshotCreationTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'DeleteApplicationSnapshotResponse' => [ 'type' => 'structure', 'members' => [], ], 'DescribeApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'IncludeAdditionalDetails' => [ 'shape' => 'BooleanObject', ], ], ], 'DescribeApplicationResponse' => [ 'type' => 'structure', 'required' => [ 'ApplicationDetail', ], 'members' => [ 'ApplicationDetail' => [ 'shape' => 'ApplicationDetail', ], ], ], 'DescribeApplicationSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'SnapshotName', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'SnapshotName' => [ 'shape' => 'SnapshotName', ], ], ], 'DescribeApplicationSnapshotResponse' => [ 'type' => 'structure', 'required' => [ 'SnapshotDetails', ], 'members' => [ 'SnapshotDetails' => [ 'shape' => 'SnapshotDetails', ], ], ], 'DestinationSchema' => [ 'type' => 'structure', 'required' => [ 'RecordFormatType', ], 'members' => [ 'RecordFormatType' => [ 'shape' => 'RecordFormatType', ], ], ], 'DiscoverInputSchemaRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceExecutionRole', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'ServiceExecutionRole' => [ 'shape' => 'RoleARN', ], 'InputStartingPositionConfiguration' => [ 'shape' => 'InputStartingPositionConfiguration', ], 'S3Configuration' => [ 'shape' => 'S3Configuration', ], 'InputProcessingConfiguration' => [ 'shape' => 'InputProcessingConfiguration', ], ], ], 'DiscoverInputSchemaResponse' => [ 'type' => 'structure', 'members' => [ 'InputSchema' => [ 'shape' => 'SourceSchema', ], 'ParsedInputRecords' => [ 'shape' => 'ParsedInputRecords', ], 'ProcessedInputRecords' => [ 'shape' => 'ProcessedInputRecords', ], 'RawInputRecords' => [ 'shape' => 'RawInputRecords', ], ], ], 'EnvironmentProperties' => [ 'type' => 'structure', 'required' => [ 'PropertyGroups', ], 'members' => [ 'PropertyGroups' => [ 'shape' => 'PropertyGroups', ], ], ], 'EnvironmentPropertyDescriptions' => [ 'type' => 'structure', 'members' => [ 'PropertyGroupDescriptions' => [ 'shape' => 'PropertyGroups', ], ], ], 'EnvironmentPropertyUpdates' => [ 'type' => 'structure', 'required' => [ 'PropertyGroups', ], 'members' => [ 'PropertyGroups' => [ 'shape' => 'PropertyGroups', ], ], ], 'ErrorMessage' => [ 'type' => 'string', ], 'FileKey' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'FlinkApplicationConfiguration' => [ 'type' => 'structure', 'members' => [ 'CheckpointConfiguration' => [ 'shape' => 'CheckpointConfiguration', ], 'MonitoringConfiguration' => [ 'shape' => 'MonitoringConfiguration', ], 'ParallelismConfiguration' => [ 'shape' => 'ParallelismConfiguration', ], ], ], 'FlinkApplicationConfigurationDescription' => [ 'type' => 'structure', 'members' => [ 'CheckpointConfigurationDescription' => [ 'shape' => 'CheckpointConfigurationDescription', ], 'MonitoringConfigurationDescription' => [ 'shape' => 'MonitoringConfigurationDescription', ], 'ParallelismConfigurationDescription' => [ 'shape' => 'ParallelismConfigurationDescription', ], 'JobPlanDescription' => [ 'shape' => 'JobPlanDescription', ], ], ], 'FlinkApplicationConfigurationUpdate' => [ 'type' => 'structure', 'members' => [ 'CheckpointConfigurationUpdate' => [ 'shape' => 'CheckpointConfigurationUpdate', ], 'MonitoringConfigurationUpdate' => [ 'shape' => 'MonitoringConfigurationUpdate', ], 'ParallelismConfigurationUpdate' => [ 'shape' => 'ParallelismConfigurationUpdate', ], ], ], 'Id' => [ 'type' => 'string', 'max' => 50, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.-]+', ], 'InAppStreamName' => [ 'type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '[a-zA-Z][a-zA-Z0-9_]+', ], 'InAppStreamNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'InAppStreamName', ], ], 'InAppTableName' => [ 'type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '[a-zA-Z][a-zA-Z0-9_]+', ], 'Input' => [ 'type' => 'structure', 'required' => [ 'NamePrefix', 'InputSchema', ], 'members' => [ 'NamePrefix' => [ 'shape' => 'InAppStreamName', ], 'InputProcessingConfiguration' => [ 'shape' => 'InputProcessingConfiguration', ], 'KinesisStreamsInput' => [ 'shape' => 'KinesisStreamsInput', ], 'KinesisFirehoseInput' => [ 'shape' => 'KinesisFirehoseInput', ], 'InputParallelism' => [ 'shape' => 'InputParallelism', ], 'InputSchema' => [ 'shape' => 'SourceSchema', ], ], ], 'InputDescription' => [ 'type' => 'structure', 'members' => [ 'InputId' => [ 'shape' => 'Id', ], 'NamePrefix' => [ 'shape' => 'InAppStreamName', ], 'InAppStreamNames' => [ 'shape' => 'InAppStreamNames', ], 'InputProcessingConfigurationDescription' => [ 'shape' => 'InputProcessingConfigurationDescription', ], 'KinesisStreamsInputDescription' => [ 'shape' => 'KinesisStreamsInputDescription', ], 'KinesisFirehoseInputDescription' => [ 'shape' => 'KinesisFirehoseInputDescription', ], 'InputSchema' => [ 'shape' => 'SourceSchema', ], 'InputParallelism' => [ 'shape' => 'InputParallelism', ], 'InputStartingPositionConfiguration' => [ 'shape' => 'InputStartingPositionConfiguration', ], ], ], 'InputDescriptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'InputDescription', ], ], 'InputLambdaProcessor' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], ], ], 'InputLambdaProcessorDescription' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'InputLambdaProcessorUpdate' => [ 'type' => 'structure', 'required' => [ 'ResourceARNUpdate', ], 'members' => [ 'ResourceARNUpdate' => [ 'shape' => 'ResourceARN', ], ], ], 'InputParallelism' => [ 'type' => 'structure', 'members' => [ 'Count' => [ 'shape' => 'InputParallelismCount', ], ], ], 'InputParallelismCount' => [ 'type' => 'integer', 'max' => 64, 'min' => 1, ], 'InputParallelismUpdate' => [ 'type' => 'structure', 'required' => [ 'CountUpdate', ], 'members' => [ 'CountUpdate' => [ 'shape' => 'InputParallelismCount', ], ], ], 'InputProcessingConfiguration' => [ 'type' => 'structure', 'required' => [ 'InputLambdaProcessor', ], 'members' => [ 'InputLambdaProcessor' => [ 'shape' => 'InputLambdaProcessor', ], ], ], 'InputProcessingConfigurationDescription' => [ 'type' => 'structure', 'members' => [ 'InputLambdaProcessorDescription' => [ 'shape' => 'InputLambdaProcessorDescription', ], ], ], 'InputProcessingConfigurationUpdate' => [ 'type' => 'structure', 'required' => [ 'InputLambdaProcessorUpdate', ], 'members' => [ 'InputLambdaProcessorUpdate' => [ 'shape' => 'InputLambdaProcessorUpdate', ], ], ], 'InputSchemaUpdate' => [ 'type' => 'structure', 'members' => [ 'RecordFormatUpdate' => [ 'shape' => 'RecordFormat', ], 'RecordEncodingUpdate' => [ 'shape' => 'RecordEncoding', ], 'RecordColumnUpdates' => [ 'shape' => 'RecordColumns', ], ], ], 'InputStartingPosition' => [ 'type' => 'string', 'enum' => [ 'NOW', 'TRIM_HORIZON', 'LAST_STOPPED_POINT', ], ], 'InputStartingPositionConfiguration' => [ 'type' => 'structure', 'members' => [ 'InputStartingPosition' => [ 'shape' => 'InputStartingPosition', ], ], ], 'InputUpdate' => [ 'type' => 'structure', 'required' => [ 'InputId', ], 'members' => [ 'InputId' => [ 'shape' => 'Id', ], 'NamePrefixUpdate' => [ 'shape' => 'InAppStreamName', ], 'InputProcessingConfigurationUpdate' => [ 'shape' => 'InputProcessingConfigurationUpdate', ], 'KinesisStreamsInputUpdate' => [ 'shape' => 'KinesisStreamsInputUpdate', ], 'KinesisFirehoseInputUpdate' => [ 'shape' => 'KinesisFirehoseInputUpdate', ], 'InputSchemaUpdate' => [ 'shape' => 'InputSchemaUpdate', ], 'InputParallelismUpdate' => [ 'shape' => 'InputParallelismUpdate', ], ], ], 'InputUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'InputUpdate', ], ], 'Inputs' => [ 'type' => 'list', 'member' => [ 'shape' => 'Input', ], ], 'InvalidApplicationConfigurationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidArgumentException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'JSONMappingParameters' => [ 'type' => 'structure', 'required' => [ 'RecordRowPath', ], 'members' => [ 'RecordRowPath' => [ 'shape' => 'RecordRowPath', ], ], ], 'JobPlanDescription' => [ 'type' => 'string', ], 'KinesisFirehoseInput' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], ], ], 'KinesisFirehoseInputDescription' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'KinesisFirehoseInputUpdate' => [ 'type' => 'structure', 'required' => [ 'ResourceARNUpdate', ], 'members' => [ 'ResourceARNUpdate' => [ 'shape' => 'ResourceARN', ], ], ], 'KinesisFirehoseOutput' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], ], ], 'KinesisFirehoseOutputDescription' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'KinesisFirehoseOutputUpdate' => [ 'type' => 'structure', 'required' => [ 'ResourceARNUpdate', ], 'members' => [ 'ResourceARNUpdate' => [ 'shape' => 'ResourceARN', ], ], ], 'KinesisStreamsInput' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], ], ], 'KinesisStreamsInputDescription' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'KinesisStreamsInputUpdate' => [ 'type' => 'structure', 'required' => [ 'ResourceARNUpdate', ], 'members' => [ 'ResourceARNUpdate' => [ 'shape' => 'ResourceARN', ], ], ], 'KinesisStreamsOutput' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], ], ], 'KinesisStreamsOutputDescription' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'KinesisStreamsOutputUpdate' => [ 'type' => 'structure', 'required' => [ 'ResourceARNUpdate', ], 'members' => [ 'ResourceARNUpdate' => [ 'shape' => 'ResourceARN', ], ], ], 'LambdaOutput' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], ], ], 'LambdaOutputDescription' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'LambdaOutputUpdate' => [ 'type' => 'structure', 'required' => [ 'ResourceARNUpdate', ], 'members' => [ 'ResourceARNUpdate' => [ 'shape' => 'ResourceARN', ], ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ListApplicationSnapshotsRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'Limit' => [ 'shape' => 'ListSnapshotsInputLimit', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListApplicationSnapshotsResponse' => [ 'type' => 'structure', 'members' => [ 'SnapshotSummaries' => [ 'shape' => 'SnapshotSummaries', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListApplicationsInputLimit' => [ 'type' => 'integer', 'max' => 50, 'min' => 1, ], 'ListApplicationsRequest' => [ 'type' => 'structure', 'members' => [ 'Limit' => [ 'shape' => 'ListApplicationsInputLimit', ], 'NextToken' => [ 'shape' => 'ApplicationName', ], ], ], 'ListApplicationsResponse' => [ 'type' => 'structure', 'required' => [ 'ApplicationSummaries', ], 'members' => [ 'ApplicationSummaries' => [ 'shape' => 'ApplicationSummaries', ], 'NextToken' => [ 'shape' => 'ApplicationName', ], ], ], 'ListSnapshotsInputLimit' => [ 'type' => 'integer', 'max' => 50, 'min' => 1, ], 'LogLevel' => [ 'type' => 'string', 'enum' => [ 'INFO', 'WARN', 'ERROR', 'DEBUG', ], ], 'LogStreamARN' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:.*', ], 'MappingParameters' => [ 'type' => 'structure', 'members' => [ 'JSONMappingParameters' => [ 'shape' => 'JSONMappingParameters', ], 'CSVMappingParameters' => [ 'shape' => 'CSVMappingParameters', ], ], ], 'MetricsLevel' => [ 'type' => 'string', 'enum' => [ 'APPLICATION', 'TASK', 'OPERATOR', 'PARALLELISM', ], ], 'MinPauseBetweenCheckpoints' => [ 'type' => 'long', 'min' => 0, ], 'MonitoringConfiguration' => [ 'type' => 'structure', 'required' => [ 'ConfigurationType', ], 'members' => [ 'ConfigurationType' => [ 'shape' => 'ConfigurationType', ], 'MetricsLevel' => [ 'shape' => 'MetricsLevel', ], 'LogLevel' => [ 'shape' => 'LogLevel', ], ], ], 'MonitoringConfigurationDescription' => [ 'type' => 'structure', 'members' => [ 'ConfigurationType' => [ 'shape' => 'ConfigurationType', ], 'MetricsLevel' => [ 'shape' => 'MetricsLevel', ], 'LogLevel' => [ 'shape' => 'LogLevel', ], ], ], 'MonitoringConfigurationUpdate' => [ 'type' => 'structure', 'members' => [ 'ConfigurationTypeUpdate' => [ 'shape' => 'ConfigurationType', ], 'MetricsLevelUpdate' => [ 'shape' => 'MetricsLevel', ], 'LogLevelUpdate' => [ 'shape' => 'LogLevel', ], ], ], 'NextToken' => [ 'type' => 'string', 'max' => 512, 'min' => 1, ], 'ObjectVersion' => [ 'type' => 'string', ], 'Output' => [ 'type' => 'structure', 'required' => [ 'Name', 'DestinationSchema', ], 'members' => [ 'Name' => [ 'shape' => 'InAppStreamName', ], 'KinesisStreamsOutput' => [ 'shape' => 'KinesisStreamsOutput', ], 'KinesisFirehoseOutput' => [ 'shape' => 'KinesisFirehoseOutput', ], 'LambdaOutput' => [ 'shape' => 'LambdaOutput', ], 'DestinationSchema' => [ 'shape' => 'DestinationSchema', ], ], ], 'OutputDescription' => [ 'type' => 'structure', 'members' => [ 'OutputId' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'InAppStreamName', ], 'KinesisStreamsOutputDescription' => [ 'shape' => 'KinesisStreamsOutputDescription', ], 'KinesisFirehoseOutputDescription' => [ 'shape' => 'KinesisFirehoseOutputDescription', ], 'LambdaOutputDescription' => [ 'shape' => 'LambdaOutputDescription', ], 'DestinationSchema' => [ 'shape' => 'DestinationSchema', ], ], ], 'OutputDescriptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'OutputDescription', ], ], 'OutputUpdate' => [ 'type' => 'structure', 'required' => [ 'OutputId', ], 'members' => [ 'OutputId' => [ 'shape' => 'Id', ], 'NameUpdate' => [ 'shape' => 'InAppStreamName', ], 'KinesisStreamsOutputUpdate' => [ 'shape' => 'KinesisStreamsOutputUpdate', ], 'KinesisFirehoseOutputUpdate' => [ 'shape' => 'KinesisFirehoseOutputUpdate', ], 'LambdaOutputUpdate' => [ 'shape' => 'LambdaOutputUpdate', ], 'DestinationSchemaUpdate' => [ 'shape' => 'DestinationSchema', ], ], ], 'OutputUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'OutputUpdate', ], ], 'Outputs' => [ 'type' => 'list', 'member' => [ 'shape' => 'Output', ], ], 'Parallelism' => [ 'type' => 'integer', 'min' => 1, ], 'ParallelismConfiguration' => [ 'type' => 'structure', 'required' => [ 'ConfigurationType', ], 'members' => [ 'ConfigurationType' => [ 'shape' => 'ConfigurationType', ], 'Parallelism' => [ 'shape' => 'Parallelism', ], 'ParallelismPerKPU' => [ 'shape' => 'ParallelismPerKPU', ], 'AutoScalingEnabled' => [ 'shape' => 'BooleanObject', ], ], ], 'ParallelismConfigurationDescription' => [ 'type' => 'structure', 'members' => [ 'ConfigurationType' => [ 'shape' => 'ConfigurationType', ], 'Parallelism' => [ 'shape' => 'Parallelism', ], 'ParallelismPerKPU' => [ 'shape' => 'ParallelismPerKPU', ], 'CurrentParallelism' => [ 'shape' => 'Parallelism', ], 'AutoScalingEnabled' => [ 'shape' => 'BooleanObject', ], ], ], 'ParallelismConfigurationUpdate' => [ 'type' => 'structure', 'members' => [ 'ConfigurationTypeUpdate' => [ 'shape' => 'ConfigurationType', ], 'ParallelismUpdate' => [ 'shape' => 'Parallelism', ], 'ParallelismPerKPUUpdate' => [ 'shape' => 'ParallelismPerKPU', ], 'AutoScalingEnabledUpdate' => [ 'shape' => 'BooleanObject', ], ], ], 'ParallelismPerKPU' => [ 'type' => 'integer', 'min' => 1, ], 'ParsedInputRecord' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParsedInputRecordField', ], ], 'ParsedInputRecordField' => [ 'type' => 'string', ], 'ParsedInputRecords' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParsedInputRecord', ], ], 'ProcessedInputRecord' => [ 'type' => 'string', ], 'ProcessedInputRecords' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProcessedInputRecord', ], ], 'PropertyGroup' => [ 'type' => 'structure', 'required' => [ 'PropertyGroupId', 'PropertyMap', ], 'members' => [ 'PropertyGroupId' => [ 'shape' => 'Id', ], 'PropertyMap' => [ 'shape' => 'PropertyMap', ], ], ], 'PropertyGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'PropertyGroup', ], 'max' => 50, ], 'PropertyKey' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'PropertyMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'PropertyKey', ], 'value' => [ 'shape' => 'PropertyValue', ], 'max' => 50, 'min' => 1, ], 'PropertyValue' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'RawInputRecord' => [ 'type' => 'string', ], 'RawInputRecords' => [ 'type' => 'list', 'member' => [ 'shape' => 'RawInputRecord', ], ], 'RecordColumn' => [ 'type' => 'structure', 'required' => [ 'Name', 'SqlType', ], 'members' => [ 'Name' => [ 'shape' => 'RecordColumnName', ], 'Mapping' => [ 'shape' => 'RecordColumnMapping', ], 'SqlType' => [ 'shape' => 'RecordColumnSqlType', ], ], ], 'RecordColumnDelimiter' => [ 'type' => 'string', 'min' => 1, ], 'RecordColumnMapping' => [ 'type' => 'string', ], 'RecordColumnName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z_][a-zA-Z0-9_]*', ], 'RecordColumnSqlType' => [ 'type' => 'string', 'min' => 1, ], 'RecordColumns' => [ 'type' => 'list', 'member' => [ 'shape' => 'RecordColumn', ], 'max' => 1000, 'min' => 1, ], 'RecordEncoding' => [ 'type' => 'string', 'pattern' => 'UTF-8', ], 'RecordFormat' => [ 'type' => 'structure', 'required' => [ 'RecordFormatType', ], 'members' => [ 'RecordFormatType' => [ 'shape' => 'RecordFormatType', ], 'MappingParameters' => [ 'shape' => 'MappingParameters', ], ], ], 'RecordFormatType' => [ 'type' => 'string', 'enum' => [ 'JSON', 'CSV', ], ], 'RecordRowDelimiter' => [ 'type' => 'string', 'min' => 1, ], 'RecordRowPath' => [ 'type' => 'string', 'min' => 1, ], 'ReferenceDataSource' => [ 'type' => 'structure', 'required' => [ 'TableName', 'ReferenceSchema', ], 'members' => [ 'TableName' => [ 'shape' => 'InAppTableName', ], 'S3ReferenceDataSource' => [ 'shape' => 'S3ReferenceDataSource', ], 'ReferenceSchema' => [ 'shape' => 'SourceSchema', ], ], ], 'ReferenceDataSourceDescription' => [ 'type' => 'structure', 'required' => [ 'ReferenceId', 'TableName', 'S3ReferenceDataSourceDescription', ], 'members' => [ 'ReferenceId' => [ 'shape' => 'Id', ], 'TableName' => [ 'shape' => 'InAppTableName', ], 'S3ReferenceDataSourceDescription' => [ 'shape' => 'S3ReferenceDataSourceDescription', ], 'ReferenceSchema' => [ 'shape' => 'SourceSchema', ], ], ], 'ReferenceDataSourceDescriptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReferenceDataSourceDescription', ], ], 'ReferenceDataSourceUpdate' => [ 'type' => 'structure', 'required' => [ 'ReferenceId', ], 'members' => [ 'ReferenceId' => [ 'shape' => 'Id', ], 'TableNameUpdate' => [ 'shape' => 'InAppTableName', ], 'S3ReferenceDataSourceUpdate' => [ 'shape' => 'S3ReferenceDataSourceUpdate', ], 'ReferenceSchemaUpdate' => [ 'shape' => 'SourceSchema', ], ], ], 'ReferenceDataSourceUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReferenceDataSourceUpdate', ], ], 'ReferenceDataSources' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReferenceDataSource', ], ], 'ResourceARN' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:.*', ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ResourceProvisionedThroughputExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'RoleARN' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:aws:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+', ], 'RunConfiguration' => [ 'type' => 'structure', 'members' => [ 'SqlRunConfigurations' => [ 'shape' => 'SqlRunConfigurations', ], 'ApplicationRestoreConfiguration' => [ 'shape' => 'ApplicationRestoreConfiguration', ], ], ], 'RunConfigurationDescription' => [ 'type' => 'structure', 'members' => [ 'ApplicationRestoreConfigurationDescription' => [ 'shape' => 'ApplicationRestoreConfiguration', ], ], ], 'RunConfigurationUpdate' => [ 'type' => 'structure', 'members' => [ 'ApplicationRestoreConfiguration' => [ 'shape' => 'ApplicationRestoreConfiguration', ], ], ], 'RuntimeEnvironment' => [ 'type' => 'string', 'enum' => [ 'SQL-1_0', 'FLINK-1_6', ], ], 'S3ApplicationCodeLocationDescription' => [ 'type' => 'structure', 'required' => [ 'BucketARN', 'FileKey', ], 'members' => [ 'BucketARN' => [ 'shape' => 'BucketARN', ], 'FileKey' => [ 'shape' => 'FileKey', ], 'ObjectVersion' => [ 'shape' => 'ObjectVersion', ], ], ], 'S3Configuration' => [ 'type' => 'structure', 'required' => [ 'BucketARN', 'FileKey', ], 'members' => [ 'BucketARN' => [ 'shape' => 'BucketARN', ], 'FileKey' => [ 'shape' => 'FileKey', ], ], ], 'S3ContentLocation' => [ 'type' => 'structure', 'required' => [ 'BucketARN', 'FileKey', ], 'members' => [ 'BucketARN' => [ 'shape' => 'BucketARN', ], 'FileKey' => [ 'shape' => 'FileKey', ], 'ObjectVersion' => [ 'shape' => 'ObjectVersion', ], ], ], 'S3ContentLocationUpdate' => [ 'type' => 'structure', 'members' => [ 'BucketARNUpdate' => [ 'shape' => 'BucketARN', ], 'FileKeyUpdate' => [ 'shape' => 'FileKey', ], 'ObjectVersionUpdate' => [ 'shape' => 'ObjectVersion', ], ], ], 'S3ReferenceDataSource' => [ 'type' => 'structure', 'members' => [ 'BucketARN' => [ 'shape' => 'BucketARN', ], 'FileKey' => [ 'shape' => 'FileKey', ], ], ], 'S3ReferenceDataSourceDescription' => [ 'type' => 'structure', 'required' => [ 'BucketARN', 'FileKey', ], 'members' => [ 'BucketARN' => [ 'shape' => 'BucketARN', ], 'FileKey' => [ 'shape' => 'FileKey', ], 'ReferenceRoleARN' => [ 'shape' => 'RoleARN', ], ], ], 'S3ReferenceDataSourceUpdate' => [ 'type' => 'structure', 'members' => [ 'BucketARNUpdate' => [ 'shape' => 'BucketARN', ], 'FileKeyUpdate' => [ 'shape' => 'FileKey', ], ], ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, 'fault' => true, ], 'SnapshotDetails' => [ 'type' => 'structure', 'required' => [ 'SnapshotName', 'SnapshotStatus', 'ApplicationVersionId', ], 'members' => [ 'SnapshotName' => [ 'shape' => 'SnapshotName', ], 'SnapshotStatus' => [ 'shape' => 'SnapshotStatus', ], 'ApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'SnapshotCreationTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'SnapshotName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.-]+', ], 'SnapshotStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'READY', 'DELETING', 'FAILED', ], ], 'SnapshotSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'SnapshotDetails', ], ], 'SourceSchema' => [ 'type' => 'structure', 'required' => [ 'RecordFormat', 'RecordColumns', ], 'members' => [ 'RecordFormat' => [ 'shape' => 'RecordFormat', ], 'RecordEncoding' => [ 'shape' => 'RecordEncoding', ], 'RecordColumns' => [ 'shape' => 'RecordColumns', ], ], ], 'SqlApplicationConfiguration' => [ 'type' => 'structure', 'members' => [ 'Inputs' => [ 'shape' => 'Inputs', ], 'Outputs' => [ 'shape' => 'Outputs', ], 'ReferenceDataSources' => [ 'shape' => 'ReferenceDataSources', ], ], ], 'SqlApplicationConfigurationDescription' => [ 'type' => 'structure', 'members' => [ 'InputDescriptions' => [ 'shape' => 'InputDescriptions', ], 'OutputDescriptions' => [ 'shape' => 'OutputDescriptions', ], 'ReferenceDataSourceDescriptions' => [ 'shape' => 'ReferenceDataSourceDescriptions', ], ], ], 'SqlApplicationConfigurationUpdate' => [ 'type' => 'structure', 'members' => [ 'InputUpdates' => [ 'shape' => 'InputUpdates', ], 'OutputUpdates' => [ 'shape' => 'OutputUpdates', ], 'ReferenceDataSourceUpdates' => [ 'shape' => 'ReferenceDataSourceUpdates', ], ], ], 'SqlRunConfiguration' => [ 'type' => 'structure', 'required' => [ 'InputId', 'InputStartingPositionConfiguration', ], 'members' => [ 'InputId' => [ 'shape' => 'Id', ], 'InputStartingPositionConfiguration' => [ 'shape' => 'InputStartingPositionConfiguration', ], ], ], 'SqlRunConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'SqlRunConfiguration', ], ], 'StartApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'RunConfiguration', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'RunConfiguration' => [ 'shape' => 'RunConfiguration', ], ], ], 'StartApplicationResponse' => [ 'type' => 'structure', 'members' => [], ], 'StopApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], ], ], 'StopApplicationResponse' => [ 'type' => 'structure', 'members' => [], ], 'TextContent' => [ 'type' => 'string', 'max' => 102400, 'min' => 0, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'UnableToDetectSchemaException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], 'RawInputRecords' => [ 'shape' => 'RawInputRecords', ], 'ProcessedInputRecords' => [ 'shape' => 'ProcessedInputRecords', ], ], 'exception' => true, ], 'UnsupportedOperationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'UpdateApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationName', 'CurrentApplicationVersionId', ], 'members' => [ 'ApplicationName' => [ 'shape' => 'ApplicationName', ], 'CurrentApplicationVersionId' => [ 'shape' => 'ApplicationVersionId', ], 'ApplicationConfigurationUpdate' => [ 'shape' => 'ApplicationConfigurationUpdate', ], 'ServiceExecutionRoleUpdate' => [ 'shape' => 'RoleARN', ], 'RunConfigurationUpdate' => [ 'shape' => 'RunConfigurationUpdate', ], 'CloudWatchLoggingOptionUpdates' => [ 'shape' => 'CloudWatchLoggingOptionUpdates', ], ], ], 'UpdateApplicationResponse' => [ 'type' => 'structure', 'required' => [ 'ApplicationDetail', ], 'members' => [ 'ApplicationDetail' => [ 'shape' => 'ApplicationDetail', ], ], ], 'ZipFileContent' => [ 'type' => 'blob', 'max' => 52428800, 'min' => 0, ], ],]; diff --git a/lib/aws/Aws/data/kinesisanalyticsv2/2018-05-23/paginators-1.json.php b/lib/aws/Aws/data/kinesisanalyticsv2/2018-05-23/paginators-1.json.php new file mode 100644 index 0000000..a8431a9 --- /dev/null +++ b/lib/aws/Aws/data/kinesisanalyticsv2/2018-05-23/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/kinesisanalyticsv2/2018-05-23/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/kinesisvideo/2017-09-30/api-2.json.php b/lib/aws/Aws/data/kinesisvideo/2017-09-30/api-2.json.php new file mode 100644 index 0000000..6aba82b --- /dev/null +++ b/lib/aws/Aws/data/kinesisvideo/2017-09-30/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/kinesisvideo/2017-09-30/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-09-30', 'endpointPrefix' => 'kinesisvideo', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'Kinesis Video', 'serviceFullName' => 'Amazon Kinesis Video Streams', 'serviceId' => 'Kinesis Video', 'signatureVersion' => 'v4', 'uid' => 'kinesisvideo-2017-09-30', ], 'operations' => [ 'CreateStream' => [ 'name' => 'CreateStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/createStream', ], 'input' => [ 'shape' => 'CreateStreamInput', ], 'output' => [ 'shape' => 'CreateStreamOutput', ], 'errors' => [ [ 'shape' => 'AccountStreamLimitExceededException', ], [ 'shape' => 'DeviceStreamLimitExceededException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidDeviceException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ClientLimitExceededException', ], [ 'shape' => 'TagsPerResourceExceededLimitException', ], ], ], 'DeleteStream' => [ 'name' => 'DeleteStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/deleteStream', ], 'input' => [ 'shape' => 'DeleteStreamInput', ], 'output' => [ 'shape' => 'DeleteStreamOutput', ], 'errors' => [ [ 'shape' => 'ClientLimitExceededException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'VersionMismatchException', ], ], ], 'DescribeStream' => [ 'name' => 'DescribeStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/describeStream', ], 'input' => [ 'shape' => 'DescribeStreamInput', ], 'output' => [ 'shape' => 'DescribeStreamOutput', ], 'errors' => [ [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ClientLimitExceededException', ], [ 'shape' => 'NotAuthorizedException', ], ], ], 'GetDataEndpoint' => [ 'name' => 'GetDataEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/getDataEndpoint', ], 'input' => [ 'shape' => 'GetDataEndpointInput', ], 'output' => [ 'shape' => 'GetDataEndpointOutput', ], 'errors' => [ [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ClientLimitExceededException', ], [ 'shape' => 'NotAuthorizedException', ], ], ], 'ListStreams' => [ 'name' => 'ListStreams', 'http' => [ 'method' => 'POST', 'requestUri' => '/listStreams', ], 'input' => [ 'shape' => 'ListStreamsInput', ], 'output' => [ 'shape' => 'ListStreamsOutput', ], 'errors' => [ [ 'shape' => 'ClientLimitExceededException', ], [ 'shape' => 'InvalidArgumentException', ], ], ], 'ListTagsForStream' => [ 'name' => 'ListTagsForStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/listTagsForStream', ], 'input' => [ 'shape' => 'ListTagsForStreamInput', ], 'output' => [ 'shape' => 'ListTagsForStreamOutput', ], 'errors' => [ [ 'shape' => 'ClientLimitExceededException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InvalidResourceFormatException', ], ], ], 'TagStream' => [ 'name' => 'TagStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/tagStream', ], 'input' => [ 'shape' => 'TagStreamInput', ], 'output' => [ 'shape' => 'TagStreamOutput', ], 'errors' => [ [ 'shape' => 'ClientLimitExceededException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InvalidResourceFormatException', ], [ 'shape' => 'TagsPerResourceExceededLimitException', ], ], ], 'UntagStream' => [ 'name' => 'UntagStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/untagStream', ], 'input' => [ 'shape' => 'UntagStreamInput', ], 'output' => [ 'shape' => 'UntagStreamOutput', ], 'errors' => [ [ 'shape' => 'ClientLimitExceededException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InvalidResourceFormatException', ], ], ], 'UpdateDataRetention' => [ 'name' => 'UpdateDataRetention', 'http' => [ 'method' => 'POST', 'requestUri' => '/updateDataRetention', ], 'input' => [ 'shape' => 'UpdateDataRetentionInput', ], 'output' => [ 'shape' => 'UpdateDataRetentionOutput', ], 'errors' => [ [ 'shape' => 'ClientLimitExceededException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'VersionMismatchException', ], ], ], 'UpdateStream' => [ 'name' => 'UpdateStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/updateStream', ], 'input' => [ 'shape' => 'UpdateStreamInput', ], 'output' => [ 'shape' => 'UpdateStreamOutput', ], 'errors' => [ [ 'shape' => 'ClientLimitExceededException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'VersionMismatchException', ], ], ], ], 'shapes' => [ 'APIName' => [ 'type' => 'string', 'enum' => [ 'PUT_MEDIA', 'GET_MEDIA', 'LIST_FRAGMENTS', 'GET_MEDIA_FOR_FRAGMENT_LIST', 'GET_HLS_STREAMING_SESSION_URL', ], ], 'AccountStreamLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ClientLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ComparisonOperator' => [ 'type' => 'string', 'enum' => [ 'BEGINS_WITH', ], ], 'CreateStreamInput' => [ 'type' => 'structure', 'required' => [ 'StreamName', ], 'members' => [ 'DeviceName' => [ 'shape' => 'DeviceName', ], 'StreamName' => [ 'shape' => 'StreamName', ], 'MediaType' => [ 'shape' => 'MediaType', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'DataRetentionInHours' => [ 'shape' => 'DataRetentionInHours', ], 'Tags' => [ 'shape' => 'ResourceTags', ], ], ], 'CreateStreamOutput' => [ 'type' => 'structure', 'members' => [ 'StreamARN' => [ 'shape' => 'ResourceARN', ], ], ], 'DataEndpoint' => [ 'type' => 'string', ], 'DataRetentionChangeInHours' => [ 'type' => 'integer', 'min' => 1, ], 'DataRetentionInHours' => [ 'type' => 'integer', 'min' => 0, ], 'DeleteStreamInput' => [ 'type' => 'structure', 'required' => [ 'StreamARN', ], 'members' => [ 'StreamARN' => [ 'shape' => 'ResourceARN', ], 'CurrentVersion' => [ 'shape' => 'Version', ], ], ], 'DeleteStreamOutput' => [ 'type' => 'structure', 'members' => [], ], 'DescribeStreamInput' => [ 'type' => 'structure', 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'StreamARN' => [ 'shape' => 'ResourceARN', ], ], ], 'DescribeStreamOutput' => [ 'type' => 'structure', 'members' => [ 'StreamInfo' => [ 'shape' => 'StreamInfo', ], ], ], 'DeviceName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.-]+', ], 'DeviceStreamLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ErrorMessage' => [ 'type' => 'string', ], 'GetDataEndpointInput' => [ 'type' => 'structure', 'required' => [ 'APIName', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'StreamARN' => [ 'shape' => 'ResourceARN', ], 'APIName' => [ 'shape' => 'APIName', ], ], ], 'GetDataEndpointOutput' => [ 'type' => 'structure', 'members' => [ 'DataEndpoint' => [ 'shape' => 'DataEndpoint', ], ], ], 'InvalidArgumentException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidDeviceException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidResourceFormatException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'KmsKeyId' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'ListStreamsInput' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'ListStreamsInputLimit', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'StreamNameCondition' => [ 'shape' => 'StreamNameCondition', ], ], ], 'ListStreamsInputLimit' => [ 'type' => 'integer', 'max' => 10000, 'min' => 1, ], 'ListStreamsOutput' => [ 'type' => 'structure', 'members' => [ 'StreamInfoList' => [ 'shape' => 'StreamInfoList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsForStreamInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'StreamARN' => [ 'shape' => 'ResourceARN', ], 'StreamName' => [ 'shape' => 'StreamName', ], ], ], 'ListTagsForStreamOutput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'Tags' => [ 'shape' => 'ResourceTags', ], ], ], 'MediaType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w\\-\\.\\+]+/[\\w\\-\\.\\+]+(,[\\w\\-\\.\\+]+/[\\w\\-\\.\\+]+)*', ], 'NextToken' => [ 'type' => 'string', 'max' => 512, 'min' => 0, ], 'NotAuthorizedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 401, ], 'exception' => true, ], 'ResourceARN' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => 'arn:aws:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+', ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'ResourceTags' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], 'max' => 50, 'min' => 1, ], 'Status' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'ACTIVE', 'UPDATING', 'DELETING', ], ], 'StreamInfo' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'DeviceName', ], 'StreamName' => [ 'shape' => 'StreamName', ], 'StreamARN' => [ 'shape' => 'ResourceARN', ], 'MediaType' => [ 'shape' => 'MediaType', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'Version' => [ 'shape' => 'Version', ], 'Status' => [ 'shape' => 'Status', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'DataRetentionInHours' => [ 'shape' => 'DataRetentionInHours', ], ], ], 'StreamInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'StreamInfo', ], ], 'StreamName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.-]+', ], 'StreamNameCondition' => [ 'type' => 'structure', 'members' => [ 'ComparisonOperator' => [ 'shape' => 'ComparisonOperator', ], 'ComparisonValue' => [ 'shape' => 'StreamName', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 50, 'min' => 1, ], 'TagStreamInput' => [ 'type' => 'structure', 'required' => [ 'Tags', ], 'members' => [ 'StreamARN' => [ 'shape' => 'ResourceARN', ], 'StreamName' => [ 'shape' => 'StreamName', ], 'Tags' => [ 'shape' => 'ResourceTags', ], ], ], 'TagStreamOutput' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'TagsPerResourceExceededLimitException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'UntagStreamInput' => [ 'type' => 'structure', 'required' => [ 'TagKeyList', ], 'members' => [ 'StreamARN' => [ 'shape' => 'ResourceARN', ], 'StreamName' => [ 'shape' => 'StreamName', ], 'TagKeyList' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagStreamOutput' => [ 'type' => 'structure', 'members' => [], ], 'UpdateDataRetentionInput' => [ 'type' => 'structure', 'required' => [ 'CurrentVersion', 'Operation', 'DataRetentionChangeInHours', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'StreamARN' => [ 'shape' => 'ResourceARN', ], 'CurrentVersion' => [ 'shape' => 'Version', ], 'Operation' => [ 'shape' => 'UpdateDataRetentionOperation', ], 'DataRetentionChangeInHours' => [ 'shape' => 'DataRetentionChangeInHours', ], ], ], 'UpdateDataRetentionOperation' => [ 'type' => 'string', 'enum' => [ 'INCREASE_DATA_RETENTION', 'DECREASE_DATA_RETENTION', ], ], 'UpdateDataRetentionOutput' => [ 'type' => 'structure', 'members' => [], ], 'UpdateStreamInput' => [ 'type' => 'structure', 'required' => [ 'CurrentVersion', ], 'members' => [ 'StreamName' => [ 'shape' => 'StreamName', ], 'StreamARN' => [ 'shape' => 'ResourceARN', ], 'CurrentVersion' => [ 'shape' => 'Version', ], 'DeviceName' => [ 'shape' => 'DeviceName', ], 'MediaType' => [ 'shape' => 'MediaType', ], ], ], 'UpdateStreamOutput' => [ 'type' => 'structure', 'members' => [], ], 'Version' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9]+', ], 'VersionMismatchException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], ],]; diff --git a/lib/aws/Aws/data/kinesisvideo/2017-09-30/paginators-1.json.php b/lib/aws/Aws/data/kinesisvideo/2017-09-30/paginators-1.json.php new file mode 100644 index 0000000..504c47a --- /dev/null +++ b/lib/aws/Aws/data/kinesisvideo/2017-09-30/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/kinesisvideo/2017-09-30/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/kms/2014-11-01/api-2.json.php b/lib/aws/Aws/data/kms/2014-11-01/api-2.json.php new file mode 100644 index 0000000..5f18d7a --- /dev/null +++ b/lib/aws/Aws/data/kms/2014-11-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/kms/2014-11-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2014-11-01', 'endpointPrefix' => 'kms', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'KMS', 'serviceFullName' => 'AWS Key Management Service', 'serviceId' => 'KMS', 'signatureVersion' => 'v4', 'targetPrefix' => 'TrentService', 'uid' => 'kms-2014-11-01', ], 'operations' => [ 'CancelKeyDeletion' => [ 'name' => 'CancelKeyDeletion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelKeyDeletionRequest', ], 'output' => [ 'shape' => 'CancelKeyDeletionResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'ConnectCustomKeyStore' => [ 'name' => 'ConnectCustomKeyStore', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ConnectCustomKeyStoreRequest', ], 'output' => [ 'shape' => 'ConnectCustomKeyStoreResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmClusterNotActiveException', ], [ 'shape' => 'CustomKeyStoreInvalidStateException', ], [ 'shape' => 'CustomKeyStoreNotFoundException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'CloudHsmClusterInvalidConfigurationException', ], ], ], 'CreateAlias' => [ 'name' => 'CreateAlias', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAliasRequest', ], 'errors' => [ [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidAliasNameException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'CreateCustomKeyStore' => [ 'name' => 'CreateCustomKeyStore', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCustomKeyStoreRequest', ], 'output' => [ 'shape' => 'CreateCustomKeyStoreResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmClusterInUseException', ], [ 'shape' => 'CustomKeyStoreNameInUseException', ], [ 'shape' => 'CloudHsmClusterNotFoundException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'CloudHsmClusterNotActiveException', ], [ 'shape' => 'IncorrectTrustAnchorException', ], [ 'shape' => 'CloudHsmClusterInvalidConfigurationException', ], ], ], 'CreateGrant' => [ 'name' => 'CreateGrant', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateGrantRequest', ], 'output' => [ 'shape' => 'CreateGrantResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'CreateKey' => [ 'name' => 'CreateKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateKeyRequest', ], 'output' => [ 'shape' => 'CreateKeyResponse', ], 'errors' => [ [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TagException', ], [ 'shape' => 'CustomKeyStoreNotFoundException', ], [ 'shape' => 'CustomKeyStoreInvalidStateException', ], [ 'shape' => 'CloudHsmClusterInvalidConfigurationException', ], ], ], 'Decrypt' => [ 'name' => 'Decrypt', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DecryptRequest', ], 'output' => [ 'shape' => 'DecryptResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'InvalidCiphertextException', ], [ 'shape' => 'KeyUnavailableException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'DeleteAlias' => [ 'name' => 'DeleteAlias', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAliasRequest', ], 'errors' => [ [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'DeleteCustomKeyStore' => [ 'name' => 'DeleteCustomKeyStore', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCustomKeyStoreRequest', ], 'output' => [ 'shape' => 'DeleteCustomKeyStoreResponse', ], 'errors' => [ [ 'shape' => 'CustomKeyStoreHasCMKsException', ], [ 'shape' => 'CustomKeyStoreInvalidStateException', ], [ 'shape' => 'CustomKeyStoreNotFoundException', ], [ 'shape' => 'KMSInternalException', ], ], ], 'DeleteImportedKeyMaterial' => [ 'name' => 'DeleteImportedKeyMaterial', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteImportedKeyMaterialRequest', ], 'errors' => [ [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'DescribeCustomKeyStores' => [ 'name' => 'DescribeCustomKeyStores', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCustomKeyStoresRequest', ], 'output' => [ 'shape' => 'DescribeCustomKeyStoresResponse', ], 'errors' => [ [ 'shape' => 'CustomKeyStoreNotFoundException', ], [ 'shape' => 'KMSInternalException', ], ], ], 'DescribeKey' => [ 'name' => 'DescribeKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeKeyRequest', ], 'output' => [ 'shape' => 'DescribeKeyResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], ], ], 'DisableKey' => [ 'name' => 'DisableKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableKeyRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'DisableKeyRotation' => [ 'name' => 'DisableKeyRotation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableKeyRotationRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'DisconnectCustomKeyStore' => [ 'name' => 'DisconnectCustomKeyStore', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisconnectCustomKeyStoreRequest', ], 'output' => [ 'shape' => 'DisconnectCustomKeyStoreResponse', ], 'errors' => [ [ 'shape' => 'CustomKeyStoreInvalidStateException', ], [ 'shape' => 'CustomKeyStoreNotFoundException', ], [ 'shape' => 'KMSInternalException', ], ], ], 'EnableKey' => [ 'name' => 'EnableKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableKeyRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'EnableKeyRotation' => [ 'name' => 'EnableKeyRotation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableKeyRotationRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'Encrypt' => [ 'name' => 'Encrypt', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EncryptRequest', ], 'output' => [ 'shape' => 'EncryptResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'KeyUnavailableException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidKeyUsageException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'GenerateDataKey' => [ 'name' => 'GenerateDataKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GenerateDataKeyRequest', ], 'output' => [ 'shape' => 'GenerateDataKeyResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'KeyUnavailableException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidKeyUsageException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'GenerateDataKeyWithoutPlaintext' => [ 'name' => 'GenerateDataKeyWithoutPlaintext', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GenerateDataKeyWithoutPlaintextRequest', ], 'output' => [ 'shape' => 'GenerateDataKeyWithoutPlaintextResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'KeyUnavailableException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidKeyUsageException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'GenerateRandom' => [ 'name' => 'GenerateRandom', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GenerateRandomRequest', ], 'output' => [ 'shape' => 'GenerateRandomResponse', ], 'errors' => [ [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'CustomKeyStoreNotFoundException', ], [ 'shape' => 'CustomKeyStoreInvalidStateException', ], ], ], 'GetKeyPolicy' => [ 'name' => 'GetKeyPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetKeyPolicyRequest', ], 'output' => [ 'shape' => 'GetKeyPolicyResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'GetKeyRotationStatus' => [ 'name' => 'GetKeyRotationStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetKeyRotationStatusRequest', ], 'output' => [ 'shape' => 'GetKeyRotationStatusResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'GetParametersForImport' => [ 'name' => 'GetParametersForImport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetParametersForImportRequest', ], 'output' => [ 'shape' => 'GetParametersForImportResponse', ], 'errors' => [ [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'ImportKeyMaterial' => [ 'name' => 'ImportKeyMaterial', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportKeyMaterialRequest', ], 'output' => [ 'shape' => 'ImportKeyMaterialResponse', ], 'errors' => [ [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'InvalidCiphertextException', ], [ 'shape' => 'IncorrectKeyMaterialException', ], [ 'shape' => 'ExpiredImportTokenException', ], [ 'shape' => 'InvalidImportTokenException', ], ], ], 'ListAliases' => [ 'name' => 'ListAliases', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAliasesRequest', ], 'output' => [ 'shape' => 'ListAliasesResponse', ], 'errors' => [ [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidMarkerException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'NotFoundException', ], ], ], 'ListGrants' => [ 'name' => 'ListGrants', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListGrantsRequest', ], 'output' => [ 'shape' => 'ListGrantsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidMarkerException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'ListKeyPolicies' => [ 'name' => 'ListKeyPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListKeyPoliciesRequest', ], 'output' => [ 'shape' => 'ListKeyPoliciesResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'ListKeys' => [ 'name' => 'ListKeys', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListKeysRequest', ], 'output' => [ 'shape' => 'ListKeysResponse', ], 'errors' => [ [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'InvalidMarkerException', ], ], ], 'ListResourceTags' => [ 'name' => 'ListResourceTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListResourceTagsRequest', ], 'output' => [ 'shape' => 'ListResourceTagsResponse', ], 'errors' => [ [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidMarkerException', ], ], ], 'ListRetirableGrants' => [ 'name' => 'ListRetirableGrants', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRetirableGrantsRequest', ], 'output' => [ 'shape' => 'ListGrantsResponse', ], 'errors' => [ [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidMarkerException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'KMSInternalException', ], ], ], 'PutKeyPolicy' => [ 'name' => 'PutKeyPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutKeyPolicyRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'ReEncrypt' => [ 'name' => 'ReEncrypt', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReEncryptRequest', ], 'output' => [ 'shape' => 'ReEncryptResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'InvalidCiphertextException', ], [ 'shape' => 'KeyUnavailableException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidKeyUsageException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'RetireGrant' => [ 'name' => 'RetireGrant', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RetireGrantRequest', ], 'errors' => [ [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'InvalidGrantIdException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'RevokeGrant' => [ 'name' => 'RevokeGrant', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RevokeGrantRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidGrantIdException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'ScheduleKeyDeletion' => [ 'name' => 'ScheduleKeyDeletion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ScheduleKeyDeletionRequest', ], 'output' => [ 'shape' => 'ScheduleKeyDeletionResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TagException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'TagException', ], ], ], 'UpdateAlias' => [ 'name' => 'UpdateAlias', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateAliasRequest', ], 'errors' => [ [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'UpdateCustomKeyStore' => [ 'name' => 'UpdateCustomKeyStore', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateCustomKeyStoreRequest', ], 'output' => [ 'shape' => 'UpdateCustomKeyStoreResponse', ], 'errors' => [ [ 'shape' => 'CustomKeyStoreNotFoundException', ], [ 'shape' => 'CloudHsmClusterNotFoundException', ], [ 'shape' => 'CloudHsmClusterNotRelatedException', ], [ 'shape' => 'CustomKeyStoreInvalidStateException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'CloudHsmClusterNotActiveException', ], [ 'shape' => 'CloudHsmClusterInvalidConfigurationException', ], ], ], 'UpdateKeyDescription' => [ 'name' => 'UpdateKeyDescription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateKeyDescriptionRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], ], 'shapes' => [ 'AWSAccountIdType' => [ 'type' => 'string', ], 'AlgorithmSpec' => [ 'type' => 'string', 'enum' => [ 'RSAES_PKCS1_V1_5', 'RSAES_OAEP_SHA_1', 'RSAES_OAEP_SHA_256', ], ], 'AliasList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AliasListEntry', ], ], 'AliasListEntry' => [ 'type' => 'structure', 'members' => [ 'AliasName' => [ 'shape' => 'AliasNameType', ], 'AliasArn' => [ 'shape' => 'ArnType', ], 'TargetKeyId' => [ 'shape' => 'KeyIdType', ], ], ], 'AliasNameType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^[a-zA-Z0-9:/_-]+$', ], 'AlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'ArnType' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, ], 'BooleanType' => [ 'type' => 'boolean', ], 'CancelKeyDeletionRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], ], ], 'CancelKeyDeletionResponse' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], ], ], 'CiphertextType' => [ 'type' => 'blob', 'max' => 6144, 'min' => 1, ], 'CloudHsmClusterIdType' => [ 'type' => 'string', 'max' => 24, 'min' => 19, ], 'CloudHsmClusterInUseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'CloudHsmClusterInvalidConfigurationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'CloudHsmClusterNotActiveException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'CloudHsmClusterNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'CloudHsmClusterNotRelatedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'ConnectCustomKeyStoreRequest' => [ 'type' => 'structure', 'required' => [ 'CustomKeyStoreId', ], 'members' => [ 'CustomKeyStoreId' => [ 'shape' => 'CustomKeyStoreIdType', ], ], ], 'ConnectCustomKeyStoreResponse' => [ 'type' => 'structure', 'members' => [], ], 'ConnectionErrorCodeType' => [ 'type' => 'string', 'enum' => [ 'INVALID_CREDENTIALS', 'CLUSTER_NOT_FOUND', 'NETWORK_ERRORS', 'INSUFFICIENT_CLOUDHSM_HSMS', 'USER_LOCKED_OUT', ], ], 'ConnectionStateType' => [ 'type' => 'string', 'enum' => [ 'CONNECTED', 'CONNECTING', 'FAILED', 'DISCONNECTED', 'DISCONNECTING', ], ], 'CreateAliasRequest' => [ 'type' => 'structure', 'required' => [ 'AliasName', 'TargetKeyId', ], 'members' => [ 'AliasName' => [ 'shape' => 'AliasNameType', ], 'TargetKeyId' => [ 'shape' => 'KeyIdType', ], ], ], 'CreateCustomKeyStoreRequest' => [ 'type' => 'structure', 'required' => [ 'CustomKeyStoreName', 'CloudHsmClusterId', 'TrustAnchorCertificate', 'KeyStorePassword', ], 'members' => [ 'CustomKeyStoreName' => [ 'shape' => 'CustomKeyStoreNameType', ], 'CloudHsmClusterId' => [ 'shape' => 'CloudHsmClusterIdType', ], 'TrustAnchorCertificate' => [ 'shape' => 'TrustAnchorCertificateType', ], 'KeyStorePassword' => [ 'shape' => 'KeyStorePasswordType', ], ], ], 'CreateCustomKeyStoreResponse' => [ 'type' => 'structure', 'members' => [ 'CustomKeyStoreId' => [ 'shape' => 'CustomKeyStoreIdType', ], ], ], 'CreateGrantRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'GranteePrincipal', 'Operations', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'GranteePrincipal' => [ 'shape' => 'PrincipalIdType', ], 'RetiringPrincipal' => [ 'shape' => 'PrincipalIdType', ], 'Operations' => [ 'shape' => 'GrantOperationList', ], 'Constraints' => [ 'shape' => 'GrantConstraints', ], 'GrantTokens' => [ 'shape' => 'GrantTokenList', ], 'Name' => [ 'shape' => 'GrantNameType', ], ], ], 'CreateGrantResponse' => [ 'type' => 'structure', 'members' => [ 'GrantToken' => [ 'shape' => 'GrantTokenType', ], 'GrantId' => [ 'shape' => 'GrantIdType', ], ], ], 'CreateKeyRequest' => [ 'type' => 'structure', 'members' => [ 'Policy' => [ 'shape' => 'PolicyType', ], 'Description' => [ 'shape' => 'DescriptionType', ], 'KeyUsage' => [ 'shape' => 'KeyUsageType', ], 'Origin' => [ 'shape' => 'OriginType', ], 'CustomKeyStoreId' => [ 'shape' => 'CustomKeyStoreIdType', ], 'BypassPolicyLockoutSafetyCheck' => [ 'shape' => 'BooleanType', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateKeyResponse' => [ 'type' => 'structure', 'members' => [ 'KeyMetadata' => [ 'shape' => 'KeyMetadata', ], ], ], 'CustomKeyStoreHasCMKsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'CustomKeyStoreIdType' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'CustomKeyStoreInvalidStateException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'CustomKeyStoreNameInUseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'CustomKeyStoreNameType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'CustomKeyStoreNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'CustomKeyStoresList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CustomKeyStoresListEntry', ], ], 'CustomKeyStoresListEntry' => [ 'type' => 'structure', 'members' => [ 'CustomKeyStoreId' => [ 'shape' => 'CustomKeyStoreIdType', ], 'CustomKeyStoreName' => [ 'shape' => 'CustomKeyStoreNameType', ], 'CloudHsmClusterId' => [ 'shape' => 'CloudHsmClusterIdType', ], 'TrustAnchorCertificate' => [ 'shape' => 'TrustAnchorCertificateType', ], 'ConnectionState' => [ 'shape' => 'ConnectionStateType', ], 'ConnectionErrorCode' => [ 'shape' => 'ConnectionErrorCodeType', ], 'CreationDate' => [ 'shape' => 'DateType', ], ], ], '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', ], ], ], 'DeleteCustomKeyStoreRequest' => [ 'type' => 'structure', 'required' => [ 'CustomKeyStoreId', ], 'members' => [ 'CustomKeyStoreId' => [ 'shape' => 'CustomKeyStoreIdType', ], ], ], 'DeleteCustomKeyStoreResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteImportedKeyMaterialRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], ], ], 'DependencyTimeoutException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, 'fault' => true, ], 'DescribeCustomKeyStoresRequest' => [ 'type' => 'structure', 'members' => [ 'CustomKeyStoreId' => [ 'shape' => 'CustomKeyStoreIdType', ], 'CustomKeyStoreName' => [ 'shape' => 'CustomKeyStoreNameType', ], 'Limit' => [ 'shape' => 'LimitType', ], 'Marker' => [ 'shape' => 'MarkerType', ], ], ], 'DescribeCustomKeyStoresResponse' => [ 'type' => 'structure', 'members' => [ 'CustomKeyStores' => [ 'shape' => 'CustomKeyStoresList', ], 'NextMarker' => [ 'shape' => 'MarkerType', ], 'Truncated' => [ 'shape' => 'BooleanType', ], ], ], 'DescribeKeyRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'GrantTokens' => [ 'shape' => 'GrantTokenList', ], ], ], 'DescribeKeyResponse' => [ 'type' => 'structure', 'members' => [ 'KeyMetadata' => [ 'shape' => 'KeyMetadata', ], ], ], 'DescriptionType' => [ 'type' => 'string', 'max' => 8192, 'min' => 0, ], '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', ], ], 'exception' => true, ], 'DisconnectCustomKeyStoreRequest' => [ 'type' => 'structure', 'required' => [ 'CustomKeyStoreId', ], 'members' => [ 'CustomKeyStoreId' => [ 'shape' => 'CustomKeyStoreIdType', ], ], ], 'DisconnectCustomKeyStoreResponse' => [ 'type' => 'structure', 'members' => [], ], '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', ], 'ExpirationModelType' => [ 'type' => 'string', 'enum' => [ 'KEY_MATERIAL_EXPIRES', 'KEY_MATERIAL_DOES_NOT_EXPIRE', ], ], 'ExpiredImportTokenException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], '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', ], 'CustomKeyStoreId' => [ 'shape' => 'CustomKeyStoreIdType', ], ], ], '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', ], ], ], 'GetParametersForImportRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'WrappingAlgorithm', 'WrappingKeySpec', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'WrappingAlgorithm' => [ 'shape' => 'AlgorithmSpec', ], 'WrappingKeySpec' => [ 'shape' => 'WrappingKeySpec', ], ], ], 'GetParametersForImportResponse' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'ImportToken' => [ 'shape' => 'CiphertextType', ], 'PublicKey' => [ 'shape' => 'PlaintextType', ], 'ParametersValidTo' => [ 'shape' => 'DateType', ], ], ], 'GrantConstraints' => [ 'type' => 'structure', 'members' => [ 'EncryptionContextSubset' => [ 'shape' => 'EncryptionContextType', ], 'EncryptionContextEquals' => [ 'shape' => 'EncryptionContextType', ], ], ], 'GrantIdType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'GrantList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GrantListEntry', ], ], 'GrantListEntry' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'GrantId' => [ 'shape' => 'GrantIdType', ], 'Name' => [ 'shape' => 'GrantNameType', ], 'CreationDate' => [ 'shape' => 'DateType', ], 'GranteePrincipal' => [ 'shape' => 'PrincipalIdType', ], 'RetiringPrincipal' => [ 'shape' => 'PrincipalIdType', ], 'IssuingAccount' => [ 'shape' => 'PrincipalIdType', ], 'Operations' => [ 'shape' => 'GrantOperationList', ], 'Constraints' => [ 'shape' => 'GrantConstraints', ], ], ], 'GrantNameType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^[a-zA-Z0-9:/_-]+$', ], 'GrantOperation' => [ 'type' => 'string', 'enum' => [ 'Decrypt', 'Encrypt', 'GenerateDataKey', 'GenerateDataKeyWithoutPlaintext', 'ReEncryptFrom', 'ReEncryptTo', 'CreateGrant', 'RetireGrant', 'DescribeKey', ], ], 'GrantOperationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GrantOperation', ], ], 'GrantTokenList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GrantTokenType', ], 'max' => 10, 'min' => 0, ], 'GrantTokenType' => [ 'type' => 'string', 'max' => 8192, 'min' => 1, ], 'ImportKeyMaterialRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'ImportToken', 'EncryptedKeyMaterial', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'ImportToken' => [ 'shape' => 'CiphertextType', ], 'EncryptedKeyMaterial' => [ 'shape' => 'CiphertextType', ], 'ValidTo' => [ 'shape' => 'DateType', ], 'ExpirationModel' => [ 'shape' => 'ExpirationModelType', ], ], ], 'ImportKeyMaterialResponse' => [ 'type' => 'structure', 'members' => [], ], 'IncorrectKeyMaterialException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'IncorrectTrustAnchorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'InvalidAliasNameException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'InvalidArnException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'InvalidCiphertextException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'InvalidGrantIdException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'InvalidGrantTokenException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'InvalidImportTokenException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'InvalidKeyUsageException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'InvalidMarkerException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'KMSInternalException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, 'fault' => true, ], 'KMSInvalidStateException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'KeyIdType' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'KeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyListEntry', ], ], 'KeyListEntry' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'KeyArn' => [ 'shape' => 'ArnType', ], ], ], 'KeyManagerType' => [ 'type' => 'string', 'enum' => [ 'AWS', 'CUSTOMER', ], ], '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', ], 'KeyState' => [ 'shape' => 'KeyState', ], 'DeletionDate' => [ 'shape' => 'DateType', ], 'ValidTo' => [ 'shape' => 'DateType', ], 'Origin' => [ 'shape' => 'OriginType', ], 'CustomKeyStoreId' => [ 'shape' => 'CustomKeyStoreIdType', ], 'CloudHsmClusterId' => [ 'shape' => 'CloudHsmClusterIdType', ], 'ExpirationModel' => [ 'shape' => 'ExpirationModelType', ], 'KeyManager' => [ 'shape' => 'KeyManagerType', ], ], ], 'KeyState' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', 'PendingDeletion', 'PendingImport', 'Unavailable', ], ], 'KeyStorePasswordType' => [ 'type' => 'string', 'min' => 1, 'sensitive' => true, ], 'KeyUnavailableException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, 'fault' => true, ], 'KeyUsageType' => [ 'type' => 'string', 'enum' => [ 'ENCRYPT_DECRYPT', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'LimitType' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'ListAliasesRequest' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], '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' => [ 'Limit' => [ 'shape' => 'LimitType', ], 'Marker' => [ 'shape' => 'MarkerType', ], 'KeyId' => [ 'shape' => 'KeyIdType', ], ], ], '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', ], ], ], 'ListResourceTagsRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'Limit' => [ 'shape' => 'LimitType', ], 'Marker' => [ 'shape' => 'MarkerType', ], ], ], 'ListResourceTagsResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], 'NextMarker' => [ 'shape' => 'MarkerType', ], 'Truncated' => [ 'shape' => 'BooleanType', ], ], ], 'ListRetirableGrantsRequest' => [ 'type' => 'structure', 'required' => [ 'RetiringPrincipal', ], 'members' => [ 'Limit' => [ 'shape' => 'LimitType', ], 'Marker' => [ 'shape' => 'MarkerType', ], 'RetiringPrincipal' => [ 'shape' => 'PrincipalIdType', ], ], ], 'MalformedPolicyDocumentException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'MarkerType' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '[\\u0020-\\u00FF]*', ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'NumberOfBytesType' => [ 'type' => 'integer', 'max' => 1024, 'min' => 1, ], 'OriginType' => [ 'type' => 'string', 'enum' => [ 'AWS_KMS', 'EXTERNAL', 'AWS_CLOUDHSM', ], ], 'PendingWindowInDaysType' => [ 'type' => 'integer', 'max' => 365, 'min' => 1, ], 'PlaintextType' => [ 'type' => 'blob', 'max' => 4096, 'min' => 1, 'sensitive' => true, ], 'PolicyNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyNameType', ], ], 'PolicyNameType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w]+', ], 'PolicyType' => [ 'type' => 'string', 'max' => 131072, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+', ], 'PrincipalIdType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^[\\w+=,.@:/-]+$', ], 'PutKeyPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'PolicyName', 'Policy', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'PolicyName' => [ 'shape' => 'PolicyNameType', ], 'Policy' => [ 'shape' => 'PolicyType', ], 'BypassPolicyLockoutSafetyCheck' => [ 'shape' => 'BooleanType', ], ], ], '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', ], ], ], 'ScheduleKeyDeletionRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'PendingWindowInDays' => [ 'shape' => 'PendingWindowInDaysType', ], ], ], 'ScheduleKeyDeletionResponse' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'DeletionDate' => [ 'shape' => 'DateType', ], ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'TagKey', 'TagValue', ], 'members' => [ 'TagKey' => [ 'shape' => 'TagKeyType', ], 'TagValue' => [ 'shape' => 'TagValueType', ], ], ], 'TagException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKeyType', ], ], 'TagKeyType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'Tags', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagValueType' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'TrustAnchorCertificateType' => [ 'type' => 'string', 'max' => 5000, 'min' => 1, ], 'UnsupportedOperationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'TagKeys', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'UpdateAliasRequest' => [ 'type' => 'structure', 'required' => [ 'AliasName', 'TargetKeyId', ], 'members' => [ 'AliasName' => [ 'shape' => 'AliasNameType', ], 'TargetKeyId' => [ 'shape' => 'KeyIdType', ], ], ], 'UpdateCustomKeyStoreRequest' => [ 'type' => 'structure', 'required' => [ 'CustomKeyStoreId', ], 'members' => [ 'CustomKeyStoreId' => [ 'shape' => 'CustomKeyStoreIdType', ], 'NewCustomKeyStoreName' => [ 'shape' => 'CustomKeyStoreNameType', ], 'KeyStorePassword' => [ 'shape' => 'KeyStorePasswordType', ], 'CloudHsmClusterId' => [ 'shape' => 'CloudHsmClusterIdType', ], ], ], 'UpdateCustomKeyStoreResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateKeyDescriptionRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'Description', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'Description' => [ 'shape' => 'DescriptionType', ], ], ], 'WrappingKeySpec' => [ 'type' => 'string', 'enum' => [ 'RSA_2048', ], ], ],]; diff --git a/lib/aws/Aws/data/kms/2014-11-01/paginators-1.json.php b/lib/aws/Aws/data/kms/2014-11-01/paginators-1.json.php new file mode 100644 index 0000000..f38abe3 --- /dev/null +++ b/lib/aws/Aws/data/kms/2014-11-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/kms/2014-11-01/paginators-1.json +return [ 'pagination' => [ 'ListAliases' => [ 'input_token' => 'Marker', 'limit_key' => 'Limit', 'more_results' => 'Truncated', 'output_token' => 'NextMarker', 'result_key' => 'Aliases', ], 'ListGrants' => [ 'input_token' => 'Marker', 'limit_key' => 'Limit', 'more_results' => 'Truncated', 'output_token' => 'NextMarker', 'result_key' => 'Grants', ], 'ListKeyPolicies' => [ 'input_token' => 'Marker', 'limit_key' => 'Limit', 'more_results' => 'Truncated', 'output_token' => 'NextMarker', 'result_key' => 'PolicyNames', ], 'ListKeys' => [ 'input_token' => 'Marker', 'limit_key' => 'Limit', 'more_results' => 'Truncated', 'output_token' => 'NextMarker', 'result_key' => 'Keys', ], ],]; diff --git a/lib/aws/Aws/data/kms/2014-11-01/smoke.json.php b/lib/aws/Aws/data/kms/2014-11-01/smoke.json.php new file mode 100644 index 0000000..0586afb --- /dev/null +++ b/lib/aws/Aws/data/kms/2014-11-01/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/kms/2014-11-01/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListAliases', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'GetKeyPolicy', 'input' => [ 'KeyId' => '12345678-1234-1234-1234-123456789012', 'PolicyName' => 'fakePolicy', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/lambda/2015-03-31/api-2.json.php b/lib/aws/Aws/data/lambda/2015-03-31/api-2.json.php new file mode 100644 index 0000000..8540719 --- /dev/null +++ b/lib/aws/Aws/data/lambda/2015-03-31/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/lambda/2015-03-31/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-03-31', 'endpointPrefix' => 'lambda', 'protocol' => 'rest-json', 'serviceFullName' => 'AWS Lambda', 'serviceId' => 'Lambda', 'signatureVersion' => 'v4', 'uid' => 'lambda-2015-03-31', ], 'operations' => [ 'AddLayerVersionPermission' => [ 'name' => 'AddLayerVersionPermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy', 'responseCode' => 201, ], 'input' => [ 'shape' => 'AddLayerVersionPermissionRequest', ], 'output' => [ 'shape' => 'AddLayerVersionPermissionResponse', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'PolicyLengthExceededException', ], [ 'shape' => 'PreconditionFailedException', ], ], ], 'AddPermission' => [ 'name' => 'AddPermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-03-31/functions/{FunctionName}/policy', 'responseCode' => 201, ], 'input' => [ 'shape' => 'AddPermissionRequest', ], 'output' => [ 'shape' => 'AddPermissionResponse', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'PolicyLengthExceededException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'PreconditionFailedException', ], ], ], 'CreateAlias' => [ 'name' => 'CreateAlias', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-03-31/functions/{FunctionName}/aliases', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateAliasRequest', ], 'output' => [ 'shape' => 'AliasConfiguration', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateEventSourceMapping' => [ 'name' => 'CreateEventSourceMapping', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-03-31/event-source-mappings/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateEventSourceMappingRequest', ], 'output' => [ 'shape' => 'EventSourceMappingConfiguration', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'CreateFunction' => [ 'name' => 'CreateFunction', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-03-31/functions', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateFunctionRequest', ], 'output' => [ 'shape' => 'FunctionConfiguration', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'CodeStorageExceededException', ], ], ], 'DeleteAlias' => [ 'name' => 'DeleteAlias', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2015-03-31/functions/{FunctionName}/aliases/{Name}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteAliasRequest', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], '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', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceInUseException', ], ], ], 'DeleteFunction' => [ 'name' => 'DeleteFunction', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2015-03-31/functions/{FunctionName}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteFunctionRequest', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceConflictException', ], ], ], 'DeleteFunctionConcurrency' => [ 'name' => 'DeleteFunctionConcurrency', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2017-10-31/functions/{FunctionName}/concurrency', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteFunctionConcurrencyRequest', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidParameterValueException', ], ], ], 'DeleteLayerVersion' => [ 'name' => 'DeleteLayerVersion', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2018-10-31/layers/{LayerName}/versions/{VersionNumber}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteLayerVersionRequest', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetAccountSettings' => [ 'name' => 'GetAccountSettings', 'http' => [ 'method' => 'GET', 'requestUri' => '/2016-08-19/account-settings/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetAccountSettingsRequest', ], 'output' => [ 'shape' => 'GetAccountSettingsResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ServiceException', ], ], ], 'GetAlias' => [ 'name' => 'GetAlias', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-03-31/functions/{FunctionName}/aliases/{Name}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetAliasRequest', ], 'output' => [ 'shape' => 'AliasConfiguration', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], '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', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetFunction' => [ 'name' => 'GetFunction', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-03-31/functions/{FunctionName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetFunctionRequest', ], 'output' => [ 'shape' => 'GetFunctionResponse', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidParameterValueException', ], ], ], 'GetFunctionConfiguration' => [ 'name' => 'GetFunctionConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-03-31/functions/{FunctionName}/configuration', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetFunctionConfigurationRequest', ], 'output' => [ 'shape' => 'FunctionConfiguration', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidParameterValueException', ], ], ], 'GetLayerVersion' => [ 'name' => 'GetLayerVersion', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-10-31/layers/{LayerName}/versions/{VersionNumber}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetLayerVersionRequest', ], 'output' => [ 'shape' => 'GetLayerVersionResponse', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'GetLayerVersionPolicy' => [ 'name' => 'GetLayerVersionPolicy', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetLayerVersionPolicyRequest', ], 'output' => [ 'shape' => 'GetLayerVersionPolicyResponse', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidParameterValueException', ], ], ], 'GetPolicy' => [ 'name' => 'GetPolicy', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-03-31/functions/{FunctionName}/policy', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPolicyRequest', ], 'output' => [ 'shape' => 'GetPolicyResponse', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidParameterValueException', ], ], ], 'Invoke' => [ 'name' => 'Invoke', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-03-31/functions/{FunctionName}/invocations', ], 'input' => [ 'shape' => 'InvocationRequest', ], 'output' => [ 'shape' => 'InvocationResponse', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestContentException', ], [ 'shape' => 'RequestTooLargeException', ], [ 'shape' => 'UnsupportedMediaTypeException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'EC2UnexpectedException', ], [ 'shape' => 'SubnetIPAddressLimitReachedException', ], [ 'shape' => 'ENILimitReachedException', ], [ 'shape' => 'EC2ThrottledException', ], [ 'shape' => 'EC2AccessDeniedException', ], [ 'shape' => 'InvalidSubnetIDException', ], [ 'shape' => 'InvalidSecurityGroupIDException', ], [ 'shape' => 'InvalidZipFileException', ], [ 'shape' => 'KMSDisabledException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'KMSAccessDeniedException', ], [ 'shape' => 'KMSNotFoundException', ], [ 'shape' => 'InvalidRuntimeException', ], ], ], 'InvokeAsync' => [ 'name' => 'InvokeAsync', 'http' => [ 'method' => 'POST', 'requestUri' => '/2014-11-13/functions/{FunctionName}/invoke-async/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'InvokeAsyncRequest', ], 'output' => [ 'shape' => 'InvokeAsyncResponse', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestContentException', ], [ 'shape' => 'InvalidRuntimeException', ], ], 'deprecated' => true, ], 'ListAliases' => [ 'name' => 'ListAliases', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-03-31/functions/{FunctionName}/aliases', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListAliasesRequest', ], 'output' => [ 'shape' => 'ListAliasesResponse', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListEventSourceMappings' => [ 'name' => 'ListEventSourceMappings', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-03-31/event-source-mappings/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListEventSourceMappingsRequest', ], 'output' => [ 'shape' => 'ListEventSourceMappingsResponse', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListFunctions' => [ 'name' => 'ListFunctions', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-03-31/functions/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListFunctionsRequest', ], 'output' => [ 'shape' => 'ListFunctionsResponse', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidParameterValueException', ], ], ], 'ListLayerVersions' => [ 'name' => 'ListLayerVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-10-31/layers/{LayerName}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListLayerVersionsRequest', ], 'output' => [ 'shape' => 'ListLayerVersionsResponse', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListLayers' => [ 'name' => 'ListLayers', 'http' => [ 'method' => 'GET', 'requestUri' => '/2018-10-31/layers', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListLayersRequest', ], 'output' => [ 'shape' => 'ListLayersResponse', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListTags' => [ 'name' => 'ListTags', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-03-31/tags/{ARN}', ], 'input' => [ 'shape' => 'ListTagsRequest', ], 'output' => [ 'shape' => 'ListTagsResponse', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListVersionsByFunction' => [ 'name' => 'ListVersionsByFunction', 'http' => [ 'method' => 'GET', 'requestUri' => '/2015-03-31/functions/{FunctionName}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListVersionsByFunctionRequest', ], 'output' => [ 'shape' => 'ListVersionsByFunctionResponse', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'PublishLayerVersion' => [ 'name' => 'PublishLayerVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/2018-10-31/layers/{LayerName}/versions', 'responseCode' => 201, ], 'input' => [ 'shape' => 'PublishLayerVersionRequest', ], 'output' => [ 'shape' => 'PublishLayerVersionResponse', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'CodeStorageExceededException', ], ], ], 'PublishVersion' => [ 'name' => 'PublishVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/2015-03-31/functions/{FunctionName}/versions', 'responseCode' => 201, ], 'input' => [ 'shape' => 'PublishVersionRequest', ], 'output' => [ 'shape' => 'FunctionConfiguration', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'CodeStorageExceededException', ], [ 'shape' => 'PreconditionFailedException', ], ], ], 'PutFunctionConcurrency' => [ 'name' => 'PutFunctionConcurrency', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2017-10-31/functions/{FunctionName}/concurrency', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PutFunctionConcurrencyRequest', ], 'output' => [ 'shape' => 'Concurrency', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'RemoveLayerVersionPermission' => [ 'name' => 'RemoveLayerVersionPermission', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy/{StatementId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'RemoveLayerVersionPermissionRequest', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'PreconditionFailedException', ], ], ], 'RemovePermission' => [ 'name' => 'RemovePermission', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2015-03-31/functions/{FunctionName}/policy/{StatementId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'RemovePermissionRequest', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'PreconditionFailedException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-03-31/tags/{ARN}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2017-03-31/tags/{ARN}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateAlias' => [ 'name' => 'UpdateAlias', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2015-03-31/functions/{FunctionName}/aliases/{Name}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateAliasRequest', ], 'output' => [ 'shape' => 'AliasConfiguration', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'PreconditionFailedException', ], ], ], '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', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'ResourceInUseException', ], ], ], 'UpdateFunctionCode' => [ 'name' => 'UpdateFunctionCode', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2015-03-31/functions/{FunctionName}/code', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateFunctionCodeRequest', ], 'output' => [ 'shape' => 'FunctionConfiguration', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'CodeStorageExceededException', ], [ 'shape' => 'PreconditionFailedException', ], ], ], 'UpdateFunctionConfiguration' => [ 'name' => 'UpdateFunctionConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2015-03-31/functions/{FunctionName}/configuration', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateFunctionConfigurationRequest', ], 'output' => [ 'shape' => 'FunctionConfiguration', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'PreconditionFailedException', ], ], ], ], 'shapes' => [ 'AccountLimit' => [ 'type' => 'structure', 'members' => [ 'TotalCodeSize' => [ 'shape' => 'Long', ], 'CodeSizeUnzipped' => [ 'shape' => 'Long', ], 'CodeSizeZipped' => [ 'shape' => 'Long', ], 'ConcurrentExecutions' => [ 'shape' => 'Integer', ], 'UnreservedConcurrentExecutions' => [ 'shape' => 'UnreservedConcurrentExecutions', ], ], ], 'AccountUsage' => [ 'type' => 'structure', 'members' => [ 'TotalCodeSize' => [ 'shape' => 'Long', ], 'FunctionCount' => [ 'shape' => 'Long', ], ], ], 'Action' => [ 'type' => 'string', 'pattern' => '(lambda:[*]|lambda:[a-zA-Z]+|[*])', ], 'AddLayerVersionPermissionRequest' => [ 'type' => 'structure', 'required' => [ 'LayerName', 'VersionNumber', 'StatementId', 'Action', 'Principal', ], 'members' => [ 'LayerName' => [ 'shape' => 'LayerName', 'location' => 'uri', 'locationName' => 'LayerName', ], 'VersionNumber' => [ 'shape' => 'LayerVersionNumber', 'location' => 'uri', 'locationName' => 'VersionNumber', ], 'StatementId' => [ 'shape' => 'StatementId', ], 'Action' => [ 'shape' => 'LayerPermissionAllowedAction', ], 'Principal' => [ 'shape' => 'LayerPermissionAllowedPrincipal', ], 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'RevisionId' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'RevisionId', ], ], ], 'AddLayerVersionPermissionResponse' => [ 'type' => 'structure', 'members' => [ 'Statement' => [ 'shape' => 'String', ], 'RevisionId' => [ 'shape' => 'String', ], ], ], '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', ], 'EventSourceToken' => [ 'shape' => 'EventSourceToken', ], 'Qualifier' => [ 'shape' => 'Qualifier', 'location' => 'querystring', 'locationName' => 'Qualifier', ], 'RevisionId' => [ 'shape' => 'String', ], ], ], 'AddPermissionResponse' => [ 'type' => 'structure', 'members' => [ 'Statement' => [ 'shape' => 'String', ], ], ], 'AdditionalVersion' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '[0-9]+', ], 'AdditionalVersionWeights' => [ 'type' => 'map', 'key' => [ 'shape' => 'AdditionalVersion', ], 'value' => [ 'shape' => 'Weight', ], ], 'Alias' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '(?!^[0-9]+$)([a-zA-Z0-9-_]+)', ], 'AliasConfiguration' => [ 'type' => 'structure', 'members' => [ 'AliasArn' => [ 'shape' => 'FunctionArn', ], 'Name' => [ 'shape' => 'Alias', ], 'FunctionVersion' => [ 'shape' => 'Version', ], 'Description' => [ 'shape' => 'Description', ], 'RoutingConfig' => [ 'shape' => 'AliasRoutingConfiguration', ], 'RevisionId' => [ 'shape' => 'String', ], ], ], 'AliasList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AliasConfiguration', ], ], 'AliasRoutingConfiguration' => [ 'type' => 'structure', 'members' => [ 'AdditionalVersionWeights' => [ 'shape' => 'AdditionalVersionWeights', ], ], ], 'Arn' => [ 'type' => 'string', 'pattern' => 'arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)', ], 'BatchSize' => [ 'type' => 'integer', 'max' => 10000, 'min' => 1, ], 'Blob' => [ 'type' => 'blob', 'sensitive' => true, ], 'BlobStream' => [ 'type' => 'blob', 'streaming' => true, ], 'Boolean' => [ 'type' => 'boolean', ], 'CodeStorageExceededException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'CompatibleRuntimes' => [ 'type' => 'list', 'member' => [ 'shape' => 'Runtime', ], 'max' => 5, ], 'Concurrency' => [ 'type' => 'structure', 'members' => [ 'ReservedConcurrentExecutions' => [ 'shape' => 'ReservedConcurrentExecutions', ], ], ], 'CreateAliasRequest' => [ 'type' => 'structure', 'required' => [ 'FunctionName', 'Name', 'FunctionVersion', ], 'members' => [ 'FunctionName' => [ 'shape' => 'FunctionName', 'location' => 'uri', 'locationName' => 'FunctionName', ], 'Name' => [ 'shape' => 'Alias', ], 'FunctionVersion' => [ 'shape' => 'Version', ], 'Description' => [ 'shape' => 'Description', ], 'RoutingConfig' => [ 'shape' => 'AliasRoutingConfiguration', ], ], ], 'CreateEventSourceMappingRequest' => [ 'type' => 'structure', 'required' => [ 'EventSourceArn', 'FunctionName', ], 'members' => [ 'EventSourceArn' => [ 'shape' => 'Arn', ], 'FunctionName' => [ 'shape' => 'FunctionName', ], 'Enabled' => [ 'shape' => 'Enabled', ], 'BatchSize' => [ 'shape' => 'BatchSize', ], 'StartingPosition' => [ 'shape' => 'EventSourcePosition', ], 'StartingPositionTimestamp' => [ 'shape' => 'Date', ], ], ], 'CreateFunctionRequest' => [ 'type' => 'structure', 'required' => [ 'FunctionName', 'Runtime', 'Role', 'Handler', 'Code', ], 'members' => [ 'FunctionName' => [ 'shape' => 'FunctionName', ], 'Runtime' => [ 'shape' => 'Runtime', ], 'Role' => [ 'shape' => 'RoleArn', ], 'Handler' => [ 'shape' => 'Handler', ], 'Code' => [ 'shape' => 'FunctionCode', ], 'Description' => [ 'shape' => 'Description', ], 'Timeout' => [ 'shape' => 'Timeout', ], 'MemorySize' => [ 'shape' => 'MemorySize', ], 'Publish' => [ 'shape' => 'Boolean', ], 'VpcConfig' => [ 'shape' => 'VpcConfig', ], 'DeadLetterConfig' => [ 'shape' => 'DeadLetterConfig', ], 'Environment' => [ 'shape' => 'Environment', ], 'KMSKeyArn' => [ 'shape' => 'KMSKeyArn', ], 'TracingConfig' => [ 'shape' => 'TracingConfig', ], 'Tags' => [ 'shape' => 'Tags', ], 'Layers' => [ 'shape' => 'LayerList', ], ], ], 'Date' => [ 'type' => 'timestamp', ], 'DeadLetterConfig' => [ 'type' => 'structure', 'members' => [ 'TargetArn' => [ 'shape' => 'ResourceArn', ], ], ], 'DeleteAliasRequest' => [ 'type' => 'structure', 'required' => [ 'FunctionName', 'Name', ], 'members' => [ 'FunctionName' => [ 'shape' => 'FunctionName', 'location' => 'uri', 'locationName' => 'FunctionName', ], 'Name' => [ 'shape' => 'Alias', 'location' => 'uri', 'locationName' => 'Name', ], ], ], 'DeleteEventSourceMappingRequest' => [ 'type' => 'structure', 'required' => [ 'UUID', ], 'members' => [ 'UUID' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'UUID', ], ], ], 'DeleteFunctionConcurrencyRequest' => [ 'type' => 'structure', 'required' => [ 'FunctionName', ], 'members' => [ 'FunctionName' => [ 'shape' => 'FunctionName', 'location' => 'uri', 'locationName' => 'FunctionName', ], ], ], 'DeleteFunctionRequest' => [ 'type' => 'structure', 'required' => [ 'FunctionName', ], 'members' => [ 'FunctionName' => [ 'shape' => 'FunctionName', 'location' => 'uri', 'locationName' => 'FunctionName', ], 'Qualifier' => [ 'shape' => 'Qualifier', 'location' => 'querystring', 'locationName' => 'Qualifier', ], ], ], 'DeleteLayerVersionRequest' => [ 'type' => 'structure', 'required' => [ 'LayerName', 'VersionNumber', ], 'members' => [ 'LayerName' => [ 'shape' => 'LayerName', 'location' => 'uri', 'locationName' => 'LayerName', ], 'VersionNumber' => [ 'shape' => 'LayerVersionNumber', 'location' => 'uri', 'locationName' => 'VersionNumber', ], ], ], 'Description' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'EC2AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 502, ], 'exception' => true, ], 'EC2ThrottledException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 502, ], 'exception' => true, ], 'EC2UnexpectedException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], 'EC2ErrorCode' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 502, ], 'exception' => true, ], 'ENILimitReachedException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 502, ], 'exception' => true, ], 'Enabled' => [ 'type' => 'boolean', ], 'Environment' => [ 'type' => 'structure', 'members' => [ 'Variables' => [ 'shape' => 'EnvironmentVariables', ], ], ], 'EnvironmentError' => [ 'type' => 'structure', 'members' => [ 'ErrorCode' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'SensitiveString', ], ], ], 'EnvironmentResponse' => [ 'type' => 'structure', 'members' => [ 'Variables' => [ 'shape' => 'EnvironmentVariables', ], 'Error' => [ 'shape' => 'EnvironmentError', ], ], ], 'EnvironmentVariableName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z]([a-zA-Z0-9_])+', 'sensitive' => true, ], 'EnvironmentVariableValue' => [ 'type' => 'string', 'sensitive' => true, ], 'EnvironmentVariables' => [ 'type' => 'map', 'key' => [ 'shape' => 'EnvironmentVariableName', ], 'value' => [ 'shape' => 'EnvironmentVariableValue', ], 'sensitive' => true, ], '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', 'AT_TIMESTAMP', ], ], 'EventSourceToken' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '[a-zA-Z0-9._\\-]+', ], 'FunctionArn' => [ 'type' => 'string', 'pattern' => 'arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?', ], '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' => 'NamespacedFunctionName', ], 'FunctionArn' => [ 'shape' => 'NameSpacedFunctionArn', ], 'Runtime' => [ 'shape' => 'Runtime', ], 'Role' => [ 'shape' => 'RoleArn', ], 'Handler' => [ 'shape' => 'Handler', ], 'CodeSize' => [ 'shape' => 'Long', ], 'Description' => [ 'shape' => 'Description', ], 'Timeout' => [ 'shape' => 'Timeout', ], 'MemorySize' => [ 'shape' => 'MemorySize', ], 'LastModified' => [ 'shape' => 'Timestamp', ], 'CodeSha256' => [ 'shape' => 'String', ], 'Version' => [ 'shape' => 'Version', ], 'VpcConfig' => [ 'shape' => 'VpcConfigResponse', ], 'DeadLetterConfig' => [ 'shape' => 'DeadLetterConfig', ], 'Environment' => [ 'shape' => 'EnvironmentResponse', ], 'KMSKeyArn' => [ 'shape' => 'KMSKeyArn', ], 'TracingConfig' => [ 'shape' => 'TracingConfigResponse', ], 'MasterArn' => [ 'shape' => 'FunctionArn', ], 'RevisionId' => [ 'shape' => 'String', ], 'Layers' => [ 'shape' => 'LayersReferenceList', ], ], ], 'FunctionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FunctionConfiguration', ], ], 'FunctionName' => [ 'type' => 'string', 'max' => 140, 'min' => 1, 'pattern' => '(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?', ], 'FunctionVersion' => [ 'type' => 'string', 'enum' => [ 'ALL', ], ], 'GetAccountSettingsRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetAccountSettingsResponse' => [ 'type' => 'structure', 'members' => [ 'AccountLimit' => [ 'shape' => 'AccountLimit', ], 'AccountUsage' => [ 'shape' => 'AccountUsage', ], ], ], 'GetAliasRequest' => [ 'type' => 'structure', 'required' => [ 'FunctionName', 'Name', ], 'members' => [ 'FunctionName' => [ 'shape' => 'FunctionName', 'location' => 'uri', 'locationName' => 'FunctionName', ], 'Name' => [ 'shape' => 'Alias', 'location' => 'uri', 'locationName' => 'Name', ], ], ], 'GetEventSourceMappingRequest' => [ 'type' => 'structure', 'required' => [ 'UUID', ], 'members' => [ 'UUID' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'UUID', ], ], ], 'GetFunctionConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'FunctionName', ], 'members' => [ 'FunctionName' => [ 'shape' => 'NamespacedFunctionName', 'location' => 'uri', 'locationName' => 'FunctionName', ], 'Qualifier' => [ 'shape' => 'Qualifier', 'location' => 'querystring', 'locationName' => 'Qualifier', ], ], ], 'GetFunctionRequest' => [ 'type' => 'structure', 'required' => [ 'FunctionName', ], 'members' => [ 'FunctionName' => [ 'shape' => 'NamespacedFunctionName', 'location' => 'uri', 'locationName' => 'FunctionName', ], 'Qualifier' => [ 'shape' => 'Qualifier', 'location' => 'querystring', 'locationName' => 'Qualifier', ], ], ], 'GetFunctionResponse' => [ 'type' => 'structure', 'members' => [ 'Configuration' => [ 'shape' => 'FunctionConfiguration', ], 'Code' => [ 'shape' => 'FunctionCodeLocation', ], 'Tags' => [ 'shape' => 'Tags', ], 'Concurrency' => [ 'shape' => 'Concurrency', ], ], ], 'GetLayerVersionPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'LayerName', 'VersionNumber', ], 'members' => [ 'LayerName' => [ 'shape' => 'LayerName', 'location' => 'uri', 'locationName' => 'LayerName', ], 'VersionNumber' => [ 'shape' => 'LayerVersionNumber', 'location' => 'uri', 'locationName' => 'VersionNumber', ], ], ], 'GetLayerVersionPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'Policy' => [ 'shape' => 'String', ], 'RevisionId' => [ 'shape' => 'String', ], ], ], 'GetLayerVersionRequest' => [ 'type' => 'structure', 'required' => [ 'LayerName', 'VersionNumber', ], 'members' => [ 'LayerName' => [ 'shape' => 'LayerName', 'location' => 'uri', 'locationName' => 'LayerName', ], 'VersionNumber' => [ 'shape' => 'LayerVersionNumber', 'location' => 'uri', 'locationName' => 'VersionNumber', ], ], ], 'GetLayerVersionResponse' => [ 'type' => 'structure', 'members' => [ 'Content' => [ 'shape' => 'LayerVersionContentOutput', ], 'LayerArn' => [ 'shape' => 'LayerArn', ], 'LayerVersionArn' => [ 'shape' => 'LayerVersionArn', ], 'Description' => [ 'shape' => 'Description', ], 'CreatedDate' => [ 'shape' => 'Timestamp', ], 'Version' => [ 'shape' => 'LayerVersionNumber', ], 'CompatibleRuntimes' => [ 'shape' => 'CompatibleRuntimes', ], 'LicenseInfo' => [ 'shape' => 'LicenseInfo', ], ], ], 'GetPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'FunctionName', ], 'members' => [ 'FunctionName' => [ 'shape' => 'NamespacedFunctionName', 'location' => 'uri', 'locationName' => 'FunctionName', ], 'Qualifier' => [ 'shape' => 'Qualifier', 'location' => 'querystring', 'locationName' => 'Qualifier', ], ], ], 'GetPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'Policy' => [ 'shape' => 'String', ], 'RevisionId' => [ '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, ], 'InvalidRuntimeException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 502, ], 'exception' => true, ], 'InvalidSecurityGroupIDException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 502, ], 'exception' => true, ], 'InvalidSubnetIDException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 502, ], 'exception' => true, ], 'InvalidZipFileException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 502, ], 'exception' => true, ], 'InvocationRequest' => [ 'type' => 'structure', 'required' => [ 'FunctionName', ], 'members' => [ 'FunctionName' => [ 'shape' => 'NamespacedFunctionName', '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', ], 'Qualifier' => [ 'shape' => 'Qualifier', 'location' => 'querystring', 'locationName' => 'Qualifier', ], ], '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', ], 'ExecutedVersion' => [ 'shape' => 'Version', 'location' => 'header', 'locationName' => 'X-Amz-Executed-Version', ], ], 'payload' => 'Payload', ], 'InvocationType' => [ 'type' => 'string', 'enum' => [ 'Event', 'RequestResponse', 'DryRun', ], ], 'InvokeAsyncRequest' => [ 'type' => 'structure', 'required' => [ 'FunctionName', 'InvokeArgs', ], 'members' => [ 'FunctionName' => [ 'shape' => 'NamespacedFunctionName', 'location' => 'uri', 'locationName' => 'FunctionName', ], 'InvokeArgs' => [ 'shape' => 'BlobStream', ], ], 'deprecated' => true, 'payload' => 'InvokeArgs', ], 'InvokeAsyncResponse' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'HttpStatus', 'location' => 'statusCode', ], ], 'deprecated' => true, ], 'KMSAccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 502, ], 'exception' => true, ], 'KMSDisabledException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 502, ], 'exception' => true, ], 'KMSInvalidStateException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 502, ], 'exception' => true, ], 'KMSKeyArn' => [ 'type' => 'string', 'pattern' => '(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()', ], 'KMSNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 502, ], 'exception' => true, ], 'Layer' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'LayerVersionArn', ], 'CodeSize' => [ 'shape' => 'Long', ], ], ], 'LayerArn' => [ 'type' => 'string', 'max' => 140, 'min' => 1, 'pattern' => 'arn:[a-zA-Z0-9-]+:lambda:[a-zA-Z0-9-]+:\\d{12}:layer:[a-zA-Z0-9-_]+', ], 'LayerList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LayerVersionArn', ], ], 'LayerName' => [ 'type' => 'string', 'max' => 140, 'min' => 1, 'pattern' => '(arn:[a-zA-Z0-9-]+:lambda:[a-zA-Z0-9-]+:\\d{12}:layer:[a-zA-Z0-9-_]+)|[a-zA-Z0-9-_]+', ], 'LayerPermissionAllowedAction' => [ 'type' => 'string', 'pattern' => 'lambda:GetLayerVersion', ], 'LayerPermissionAllowedPrincipal' => [ 'type' => 'string', 'pattern' => '\\d{12}|\\*|arn:(aws[a-zA-Z-]*):iam::\\d{12}:root', ], 'LayerVersionArn' => [ 'type' => 'string', 'max' => 140, 'min' => 1, 'pattern' => 'arn:[a-zA-Z0-9-]+:lambda:[a-zA-Z0-9-]+:\\d{12}:layer:[a-zA-Z0-9-_]+:[0-9]+', ], 'LayerVersionContentInput' => [ 'type' => 'structure', 'members' => [ 'S3Bucket' => [ 'shape' => 'S3Bucket', ], 'S3Key' => [ 'shape' => 'S3Key', ], 'S3ObjectVersion' => [ 'shape' => 'S3ObjectVersion', ], 'ZipFile' => [ 'shape' => 'Blob', ], ], ], 'LayerVersionContentOutput' => [ 'type' => 'structure', 'members' => [ 'Location' => [ 'shape' => 'String', ], 'CodeSha256' => [ 'shape' => 'String', ], 'CodeSize' => [ 'shape' => 'Long', ], ], ], 'LayerVersionNumber' => [ 'type' => 'long', ], 'LayerVersionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LayerVersionsListItem', ], ], 'LayerVersionsListItem' => [ 'type' => 'structure', 'members' => [ 'LayerVersionArn' => [ 'shape' => 'LayerVersionArn', ], 'Version' => [ 'shape' => 'LayerVersionNumber', ], 'Description' => [ 'shape' => 'Description', ], 'CreatedDate' => [ 'shape' => 'Timestamp', ], 'CompatibleRuntimes' => [ 'shape' => 'CompatibleRuntimes', ], 'LicenseInfo' => [ 'shape' => 'LicenseInfo', ], ], ], 'LayersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LayersListItem', ], ], 'LayersListItem' => [ 'type' => 'structure', 'members' => [ 'LayerName' => [ 'shape' => 'LayerName', ], 'LayerArn' => [ 'shape' => 'LayerArn', ], 'LatestMatchingVersion' => [ 'shape' => 'LayerVersionsListItem', ], ], ], 'LayersReferenceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Layer', ], ], 'LicenseInfo' => [ 'type' => 'string', 'max' => 512, ], 'ListAliasesRequest' => [ 'type' => 'structure', 'required' => [ 'FunctionName', ], 'members' => [ 'FunctionName' => [ 'shape' => 'FunctionName', 'location' => 'uri', 'locationName' => 'FunctionName', ], 'FunctionVersion' => [ 'shape' => 'Version', 'location' => 'querystring', 'locationName' => 'FunctionVersion', ], 'Marker' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'MaxListItems', 'location' => 'querystring', 'locationName' => 'MaxItems', ], ], ], 'ListAliasesResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'String', ], 'Aliases' => [ 'shape' => 'AliasList', ], ], ], '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' => [ 'MasterRegion' => [ 'shape' => 'MasterRegion', 'location' => 'querystring', 'locationName' => 'MasterRegion', ], 'FunctionVersion' => [ 'shape' => 'FunctionVersion', 'location' => 'querystring', 'locationName' => 'FunctionVersion', ], 'Marker' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'MaxListItems', 'location' => 'querystring', 'locationName' => 'MaxItems', ], ], ], 'ListFunctionsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'String', ], 'Functions' => [ 'shape' => 'FunctionList', ], ], ], 'ListLayerVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'LayerName', ], 'members' => [ 'CompatibleRuntime' => [ 'shape' => 'Runtime', 'location' => 'querystring', 'locationName' => 'CompatibleRuntime', ], 'LayerName' => [ 'shape' => 'LayerName', 'location' => 'uri', 'locationName' => 'LayerName', ], 'Marker' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'MaxLayerListItems', 'location' => 'querystring', 'locationName' => 'MaxItems', ], ], ], 'ListLayerVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'String', ], 'LayerVersions' => [ 'shape' => 'LayerVersionsList', ], ], ], 'ListLayersRequest' => [ 'type' => 'structure', 'members' => [ 'CompatibleRuntime' => [ 'shape' => 'Runtime', 'location' => 'querystring', 'locationName' => 'CompatibleRuntime', ], 'Marker' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'MaxLayerListItems', 'location' => 'querystring', 'locationName' => 'MaxItems', ], ], ], 'ListLayersResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'String', ], 'Layers' => [ 'shape' => 'LayersList', ], ], ], 'ListTagsRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', ], 'members' => [ 'Resource' => [ 'shape' => 'FunctionArn', 'location' => 'uri', 'locationName' => 'ARN', ], ], ], 'ListTagsResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'Tags', ], ], ], 'ListVersionsByFunctionRequest' => [ 'type' => 'structure', 'required' => [ 'FunctionName', ], 'members' => [ 'FunctionName' => [ 'shape' => 'NamespacedFunctionName', 'location' => 'uri', 'locationName' => 'FunctionName', ], 'Marker' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'Marker', ], 'MaxItems' => [ 'shape' => 'MaxListItems', 'location' => 'querystring', 'locationName' => 'MaxItems', ], ], ], 'ListVersionsByFunctionResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'String', ], 'Versions' => [ 'shape' => 'FunctionList', ], ], ], 'LogType' => [ 'type' => 'string', 'enum' => [ 'None', 'Tail', ], ], 'Long' => [ 'type' => 'long', ], 'MasterRegion' => [ 'type' => 'string', 'pattern' => 'ALL|[a-z]{2}(-gov)?-[a-z]+-\\d{1}', ], 'MaxLayerListItems' => [ 'type' => 'integer', 'max' => 50, 'min' => 1, ], 'MaxListItems' => [ 'type' => 'integer', 'max' => 10000, 'min' => 1, ], 'MemorySize' => [ 'type' => 'integer', 'max' => 3008, 'min' => 128, ], 'NameSpacedFunctionArn' => [ 'type' => 'string', 'pattern' => 'arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?', ], 'NamespacedFunctionName' => [ 'type' => 'string', 'max' => 170, 'min' => 1, 'pattern' => '(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_\\.]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?', ], 'NamespacedStatementId' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '([a-zA-Z0-9-_.]+)', ], 'OrganizationId' => [ 'type' => 'string', 'pattern' => 'o-[a-z0-9]{10,32}', ], 'PolicyLengthExceededException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'PreconditionFailedException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 412, ], 'exception' => true, ], 'Principal' => [ 'type' => 'string', 'pattern' => '.*', ], 'PublishLayerVersionRequest' => [ 'type' => 'structure', 'required' => [ 'LayerName', 'Content', ], 'members' => [ 'LayerName' => [ 'shape' => 'LayerName', 'location' => 'uri', 'locationName' => 'LayerName', ], 'Description' => [ 'shape' => 'Description', ], 'Content' => [ 'shape' => 'LayerVersionContentInput', ], 'CompatibleRuntimes' => [ 'shape' => 'CompatibleRuntimes', ], 'LicenseInfo' => [ 'shape' => 'LicenseInfo', ], ], ], 'PublishLayerVersionResponse' => [ 'type' => 'structure', 'members' => [ 'Content' => [ 'shape' => 'LayerVersionContentOutput', ], 'LayerArn' => [ 'shape' => 'LayerArn', ], 'LayerVersionArn' => [ 'shape' => 'LayerVersionArn', ], 'Description' => [ 'shape' => 'Description', ], 'CreatedDate' => [ 'shape' => 'Timestamp', ], 'Version' => [ 'shape' => 'LayerVersionNumber', ], 'CompatibleRuntimes' => [ 'shape' => 'CompatibleRuntimes', ], 'LicenseInfo' => [ 'shape' => 'LicenseInfo', ], ], ], 'PublishVersionRequest' => [ 'type' => 'structure', 'required' => [ 'FunctionName', ], 'members' => [ 'FunctionName' => [ 'shape' => 'FunctionName', 'location' => 'uri', 'locationName' => 'FunctionName', ], 'CodeSha256' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'Description', ], 'RevisionId' => [ 'shape' => 'String', ], ], ], 'PutFunctionConcurrencyRequest' => [ 'type' => 'structure', 'required' => [ 'FunctionName', 'ReservedConcurrentExecutions', ], 'members' => [ 'FunctionName' => [ 'shape' => 'FunctionName', 'location' => 'uri', 'locationName' => 'FunctionName', ], 'ReservedConcurrentExecutions' => [ 'shape' => 'ReservedConcurrentExecutions', ], ], ], 'Qualifier' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '(|[a-zA-Z0-9$_-]+)', ], 'RemoveLayerVersionPermissionRequest' => [ 'type' => 'structure', 'required' => [ 'LayerName', 'VersionNumber', 'StatementId', ], 'members' => [ 'LayerName' => [ 'shape' => 'LayerName', 'location' => 'uri', 'locationName' => 'LayerName', ], 'VersionNumber' => [ 'shape' => 'LayerVersionNumber', 'location' => 'uri', 'locationName' => 'VersionNumber', ], 'StatementId' => [ 'shape' => 'StatementId', 'location' => 'uri', 'locationName' => 'StatementId', ], 'RevisionId' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'RevisionId', ], ], ], 'RemovePermissionRequest' => [ 'type' => 'structure', 'required' => [ 'FunctionName', 'StatementId', ], 'members' => [ 'FunctionName' => [ 'shape' => 'FunctionName', 'location' => 'uri', 'locationName' => 'FunctionName', ], 'StatementId' => [ 'shape' => 'NamespacedStatementId', 'location' => 'uri', 'locationName' => 'StatementId', ], 'Qualifier' => [ 'shape' => 'Qualifier', 'location' => 'querystring', 'locationName' => 'Qualifier', ], 'RevisionId' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'RevisionId', ], ], ], 'RequestTooLargeException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 413, ], 'exception' => true, ], 'ReservedConcurrentExecutions' => [ 'type' => 'integer', 'min' => 0, ], 'ResourceArn' => [ 'type' => 'string', 'pattern' => '(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()', ], 'ResourceConflictException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'RoleArn' => [ 'type' => 'string', 'pattern' => 'arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+', ], 'Runtime' => [ 'type' => 'string', 'enum' => [ 'nodejs', 'nodejs4.3', 'nodejs6.10', 'nodejs8.10', 'java8', 'python2.7', 'python3.6', 'python3.7', 'dotnetcore1.0', 'dotnetcore2.0', 'dotnetcore2.1', 'nodejs4.3-edge', 'go1.x', 'ruby2.5', 'provided', ], ], 'S3Bucket' => [ 'type' => 'string', 'max' => 63, 'min' => 3, 'pattern' => '^[0-9A-Za-z\\.\\-_]*(?<!\\.)$', ], 'S3Key' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'S3ObjectVersion' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'SecurityGroupId' => [ 'type' => 'string', ], 'SecurityGroupIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', ], 'max' => 5, ], 'SensitiveString' => [ 'type' => 'string', 'sensitive' => true, ], 'ServiceException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, ], 'SourceOwner' => [ 'type' => 'string', 'pattern' => '\\d{12}', ], 'StatementId' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '([a-zA-Z0-9-_]+)', ], 'String' => [ 'type' => 'string', ], 'SubnetIPAddressLimitReachedException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 502, ], 'exception' => true, ], 'SubnetId' => [ 'type' => 'string', ], 'SubnetIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', ], 'max' => 16, ], 'TagKey' => [ 'type' => 'string', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'Tags', ], 'members' => [ 'Resource' => [ 'shape' => 'FunctionArn', 'location' => 'uri', 'locationName' => 'ARN', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'TagValue' => [ 'type' => 'string', ], 'Tags' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], ], 'ThrottleReason' => [ 'type' => 'string', 'enum' => [ 'ConcurrentInvocationLimitExceeded', 'FunctionInvocationRateLimitExceeded', 'ReservedFunctionConcurrentInvocationLimitExceeded', 'ReservedFunctionInvocationRateLimitExceeded', 'CallerRateLimitExceeded', ], ], 'Timeout' => [ 'type' => 'integer', 'min' => 1, ], 'Timestamp' => [ 'type' => 'string', ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'retryAfterSeconds' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'Retry-After', ], 'Type' => [ 'shape' => 'String', ], 'message' => [ 'shape' => 'String', ], 'Reason' => [ 'shape' => 'ThrottleReason', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'TracingConfig' => [ 'type' => 'structure', 'members' => [ 'Mode' => [ 'shape' => 'TracingMode', ], ], ], 'TracingConfigResponse' => [ 'type' => 'structure', 'members' => [ 'Mode' => [ 'shape' => 'TracingMode', ], ], ], 'TracingMode' => [ 'type' => 'string', 'enum' => [ 'Active', 'PassThrough', ], ], 'UnreservedConcurrentExecutions' => [ 'type' => 'integer', 'min' => 0, ], 'UnsupportedMediaTypeException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 415, ], 'exception' => true, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'TagKeys', ], 'members' => [ 'Resource' => [ 'shape' => 'FunctionArn', 'location' => 'uri', 'locationName' => 'ARN', ], 'TagKeys' => [ 'shape' => 'TagKeyList', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], ], 'UpdateAliasRequest' => [ 'type' => 'structure', 'required' => [ 'FunctionName', 'Name', ], 'members' => [ 'FunctionName' => [ 'shape' => 'FunctionName', 'location' => 'uri', 'locationName' => 'FunctionName', ], 'Name' => [ 'shape' => 'Alias', 'location' => 'uri', 'locationName' => 'Name', ], 'FunctionVersion' => [ 'shape' => 'Version', ], 'Description' => [ 'shape' => 'Description', ], 'RoutingConfig' => [ 'shape' => 'AliasRoutingConfiguration', ], 'RevisionId' => [ 'shape' => 'String', ], ], ], 'UpdateEventSourceMappingRequest' => [ 'type' => 'structure', 'required' => [ 'UUID', ], 'members' => [ 'UUID' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'UUID', ], 'FunctionName' => [ 'shape' => 'FunctionName', ], 'Enabled' => [ 'shape' => 'Enabled', ], 'BatchSize' => [ 'shape' => 'BatchSize', ], ], ], 'UpdateFunctionCodeRequest' => [ 'type' => 'structure', 'required' => [ 'FunctionName', ], 'members' => [ 'FunctionName' => [ 'shape' => 'FunctionName', 'location' => 'uri', 'locationName' => 'FunctionName', ], 'ZipFile' => [ 'shape' => 'Blob', ], 'S3Bucket' => [ 'shape' => 'S3Bucket', ], 'S3Key' => [ 'shape' => 'S3Key', ], 'S3ObjectVersion' => [ 'shape' => 'S3ObjectVersion', ], 'Publish' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'RevisionId' => [ 'shape' => 'String', ], ], ], 'UpdateFunctionConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'FunctionName', ], 'members' => [ 'FunctionName' => [ 'shape' => 'FunctionName', 'location' => 'uri', 'locationName' => 'FunctionName', ], 'Role' => [ 'shape' => 'RoleArn', ], 'Handler' => [ 'shape' => 'Handler', ], 'Description' => [ 'shape' => 'Description', ], 'Timeout' => [ 'shape' => 'Timeout', ], 'MemorySize' => [ 'shape' => 'MemorySize', ], 'VpcConfig' => [ 'shape' => 'VpcConfig', ], 'Environment' => [ 'shape' => 'Environment', ], 'Runtime' => [ 'shape' => 'Runtime', ], 'DeadLetterConfig' => [ 'shape' => 'DeadLetterConfig', ], 'KMSKeyArn' => [ 'shape' => 'KMSKeyArn', ], 'TracingConfig' => [ 'shape' => 'TracingConfig', ], 'RevisionId' => [ 'shape' => 'String', ], 'Layers' => [ 'shape' => 'LayerList', ], ], ], 'Version' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '(\\$LATEST|[0-9]+)', ], 'VpcConfig' => [ 'type' => 'structure', 'members' => [ 'SubnetIds' => [ 'shape' => 'SubnetIds', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIds', ], ], ], 'VpcConfigResponse' => [ 'type' => 'structure', 'members' => [ 'SubnetIds' => [ 'shape' => 'SubnetIds', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIds', ], 'VpcId' => [ 'shape' => 'VpcId', ], ], ], 'VpcId' => [ 'type' => 'string', ], 'Weight' => [ 'type' => 'double', 'max' => 1, 'min' => 0, ], ],]; diff --git a/lib/aws/Aws/data/lambda/2015-03-31/paginators-1.json.php b/lib/aws/Aws/data/lambda/2015-03-31/paginators-1.json.php new file mode 100644 index 0000000..709bfab --- /dev/null +++ b/lib/aws/Aws/data/lambda/2015-03-31/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/lambda/2015-03-31/paginators-1.json +return [ 'pagination' => [ 'ListEventSourceMappings' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'output_token' => 'NextMarker', 'result_key' => 'EventSourceMappings', ], 'ListFunctions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'output_token' => 'NextMarker', 'result_key' => 'Functions', ], ],]; diff --git a/lib/aws/Aws/data/lambda/2015-03-31/smoke.json.php b/lib/aws/Aws/data/lambda/2015-03-31/smoke.json.php new file mode 100644 index 0000000..7c6f0b7 --- /dev/null +++ b/lib/aws/Aws/data/lambda/2015-03-31/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/lambda/2015-03-31/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListFunctions', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'Invoke', 'input' => [ 'FunctionName' => 'bogus-function', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/lex-models/2017-04-19/api-2.json.php b/lib/aws/Aws/data/lex-models/2017-04-19/api-2.json.php new file mode 100644 index 0000000..ac5ab41 --- /dev/null +++ b/lib/aws/Aws/data/lex-models/2017-04-19/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/lex-models/2017-04-19/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-04-19', 'endpointPrefix' => 'models.lex', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceFullName' => 'Amazon Lex Model Building Service', 'serviceId' => 'Lex Model Building Service', 'signatureVersion' => 'v4', 'signingName' => 'lex', 'uid' => 'lex-models-2017-04-19', ], 'operations' => [ 'CreateBotVersion' => [ 'name' => 'CreateBotVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/bots/{name}/versions', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateBotVersionRequest', ], 'output' => [ 'shape' => 'CreateBotVersionResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'PreconditionFailedException', ], ], ], 'CreateIntentVersion' => [ 'name' => 'CreateIntentVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/intents/{name}/versions', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateIntentVersionRequest', ], 'output' => [ 'shape' => 'CreateIntentVersionResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'PreconditionFailedException', ], ], ], 'CreateSlotTypeVersion' => [ 'name' => 'CreateSlotTypeVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/slottypes/{name}/versions', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateSlotTypeVersionRequest', ], 'output' => [ 'shape' => 'CreateSlotTypeVersionResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'PreconditionFailedException', ], ], ], 'DeleteBot' => [ 'name' => 'DeleteBot', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/bots/{name}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBotRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceInUseException', ], ], ], 'DeleteBotAlias' => [ 'name' => 'DeleteBotAlias', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/bots/{botName}/aliases/{name}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBotAliasRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceInUseException', ], ], ], 'DeleteBotChannelAssociation' => [ 'name' => 'DeleteBotChannelAssociation', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/bots/{botName}/aliases/{aliasName}/channels/{name}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBotChannelAssociationRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'DeleteBotVersion' => [ 'name' => 'DeleteBotVersion', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/bots/{name}/versions/{version}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBotVersionRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceInUseException', ], ], ], 'DeleteIntent' => [ 'name' => 'DeleteIntent', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/intents/{name}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteIntentRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceInUseException', ], ], ], 'DeleteIntentVersion' => [ 'name' => 'DeleteIntentVersion', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/intents/{name}/versions/{version}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteIntentVersionRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceInUseException', ], ], ], 'DeleteSlotType' => [ 'name' => 'DeleteSlotType', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/slottypes/{name}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteSlotTypeRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceInUseException', ], ], ], 'DeleteSlotTypeVersion' => [ 'name' => 'DeleteSlotTypeVersion', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/slottypes/{name}/version/{version}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteSlotTypeVersionRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceInUseException', ], ], ], 'DeleteUtterances' => [ 'name' => 'DeleteUtterances', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/bots/{botName}/utterances/{userId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteUtterancesRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetBot' => [ 'name' => 'GetBot', 'http' => [ 'method' => 'GET', 'requestUri' => '/bots/{name}/versions/{versionoralias}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetBotRequest', ], 'output' => [ 'shape' => 'GetBotResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetBotAlias' => [ 'name' => 'GetBotAlias', 'http' => [ 'method' => 'GET', 'requestUri' => '/bots/{botName}/aliases/{name}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetBotAliasRequest', ], 'output' => [ 'shape' => 'GetBotAliasResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetBotAliases' => [ 'name' => 'GetBotAliases', 'http' => [ 'method' => 'GET', 'requestUri' => '/bots/{botName}/aliases/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetBotAliasesRequest', ], 'output' => [ 'shape' => 'GetBotAliasesResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetBotChannelAssociation' => [ 'name' => 'GetBotChannelAssociation', 'http' => [ 'method' => 'GET', 'requestUri' => '/bots/{botName}/aliases/{aliasName}/channels/{name}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetBotChannelAssociationRequest', ], 'output' => [ 'shape' => 'GetBotChannelAssociationResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetBotChannelAssociations' => [ 'name' => 'GetBotChannelAssociations', 'http' => [ 'method' => 'GET', 'requestUri' => '/bots/{botName}/aliases/{aliasName}/channels/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetBotChannelAssociationsRequest', ], 'output' => [ 'shape' => 'GetBotChannelAssociationsResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetBotVersions' => [ 'name' => 'GetBotVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/bots/{name}/versions/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetBotVersionsRequest', ], 'output' => [ 'shape' => 'GetBotVersionsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetBots' => [ 'name' => 'GetBots', 'http' => [ 'method' => 'GET', 'requestUri' => '/bots/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetBotsRequest', ], 'output' => [ 'shape' => 'GetBotsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetBuiltinIntent' => [ 'name' => 'GetBuiltinIntent', 'http' => [ 'method' => 'GET', 'requestUri' => '/builtins/intents/{signature}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetBuiltinIntentRequest', ], 'output' => [ 'shape' => 'GetBuiltinIntentResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetBuiltinIntents' => [ 'name' => 'GetBuiltinIntents', 'http' => [ 'method' => 'GET', 'requestUri' => '/builtins/intents/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetBuiltinIntentsRequest', ], 'output' => [ 'shape' => 'GetBuiltinIntentsResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetBuiltinSlotTypes' => [ 'name' => 'GetBuiltinSlotTypes', 'http' => [ 'method' => 'GET', 'requestUri' => '/builtins/slottypes/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetBuiltinSlotTypesRequest', ], 'output' => [ 'shape' => 'GetBuiltinSlotTypesResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetExport' => [ 'name' => 'GetExport', 'http' => [ 'method' => 'GET', 'requestUri' => '/exports/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetExportRequest', ], 'output' => [ 'shape' => 'GetExportResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetImport' => [ 'name' => 'GetImport', 'http' => [ 'method' => 'GET', 'requestUri' => '/imports/{importId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetImportRequest', ], 'output' => [ 'shape' => 'GetImportResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetIntent' => [ 'name' => 'GetIntent', 'http' => [ 'method' => 'GET', 'requestUri' => '/intents/{name}/versions/{version}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetIntentRequest', ], 'output' => [ 'shape' => 'GetIntentResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetIntentVersions' => [ 'name' => 'GetIntentVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/intents/{name}/versions/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetIntentVersionsRequest', ], 'output' => [ 'shape' => 'GetIntentVersionsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetIntents' => [ 'name' => 'GetIntents', 'http' => [ 'method' => 'GET', 'requestUri' => '/intents/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetIntentsRequest', ], 'output' => [ 'shape' => 'GetIntentsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetSlotType' => [ 'name' => 'GetSlotType', 'http' => [ 'method' => 'GET', 'requestUri' => '/slottypes/{name}/versions/{version}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetSlotTypeRequest', ], 'output' => [ 'shape' => 'GetSlotTypeResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetSlotTypeVersions' => [ 'name' => 'GetSlotTypeVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/slottypes/{name}/versions/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetSlotTypeVersionsRequest', ], 'output' => [ 'shape' => 'GetSlotTypeVersionsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetSlotTypes' => [ 'name' => 'GetSlotTypes', 'http' => [ 'method' => 'GET', 'requestUri' => '/slottypes/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetSlotTypesRequest', ], 'output' => [ 'shape' => 'GetSlotTypesResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetUtterancesView' => [ 'name' => 'GetUtterancesView', 'http' => [ 'method' => 'GET', 'requestUri' => '/bots/{botname}/utterances?view=aggregation', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetUtterancesViewRequest', ], 'output' => [ 'shape' => 'GetUtterancesViewResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'PutBot' => [ 'name' => 'PutBot', 'http' => [ 'method' => 'PUT', 'requestUri' => '/bots/{name}/versions/$LATEST', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PutBotRequest', ], 'output' => [ 'shape' => 'PutBotResponse', ], 'errors' => [ [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'PreconditionFailedException', ], ], ], 'PutBotAlias' => [ 'name' => 'PutBotAlias', 'http' => [ 'method' => 'PUT', 'requestUri' => '/bots/{botName}/aliases/{name}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PutBotAliasRequest', ], 'output' => [ 'shape' => 'PutBotAliasResponse', ], 'errors' => [ [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'PreconditionFailedException', ], ], ], 'PutIntent' => [ 'name' => 'PutIntent', 'http' => [ 'method' => 'PUT', 'requestUri' => '/intents/{name}/versions/$LATEST', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PutIntentRequest', ], 'output' => [ 'shape' => 'PutIntentResponse', ], 'errors' => [ [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'PreconditionFailedException', ], ], ], 'PutSlotType' => [ 'name' => 'PutSlotType', 'http' => [ 'method' => 'PUT', 'requestUri' => '/slottypes/{name}/versions/$LATEST', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PutSlotTypeRequest', ], 'output' => [ 'shape' => 'PutSlotTypeResponse', ], 'errors' => [ [ 'shape' => 'ConflictException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'PreconditionFailedException', ], ], ], 'StartImport' => [ 'name' => 'StartImport', 'http' => [ 'method' => 'POST', 'requestUri' => '/imports/', 'responseCode' => 201, ], 'input' => [ 'shape' => 'StartImportRequest', ], 'output' => [ 'shape' => 'StartImportResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], ], 'shapes' => [ 'AliasName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '^([A-Za-z]_?)+$', ], 'AliasNameOrListAll' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '^(-|^([A-Za-z]_?)+$)$', ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'Blob' => [ 'type' => 'blob', ], 'Boolean' => [ 'type' => 'boolean', ], 'BotAliasMetadata' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'AliasName', ], 'description' => [ 'shape' => 'Description', ], 'botVersion' => [ 'shape' => 'Version', ], 'botName' => [ 'shape' => 'BotName', ], 'lastUpdatedDate' => [ 'shape' => 'Timestamp', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'checksum' => [ 'shape' => 'String', ], ], ], 'BotAliasMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BotAliasMetadata', ], ], 'BotChannelAssociation' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'BotChannelName', ], 'description' => [ 'shape' => 'Description', ], 'botAlias' => [ 'shape' => 'AliasName', ], 'botName' => [ 'shape' => 'BotName', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'type' => [ 'shape' => 'ChannelType', ], 'botConfiguration' => [ 'shape' => 'ChannelConfigurationMap', ], 'status' => [ 'shape' => 'ChannelStatus', ], 'failureReason' => [ 'shape' => 'String', ], ], ], 'BotChannelAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BotChannelAssociation', ], ], 'BotChannelName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '^([A-Za-z]_?)+$', ], 'BotMetadata' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'BotName', ], 'description' => [ 'shape' => 'Description', ], 'status' => [ 'shape' => 'Status', ], 'lastUpdatedDate' => [ 'shape' => 'Timestamp', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'version' => [ 'shape' => 'Version', ], ], ], 'BotMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BotMetadata', ], ], 'BotName' => [ 'type' => 'string', 'max' => 50, 'min' => 2, 'pattern' => '^([A-Za-z]_?)+$', ], 'BotVersions' => [ 'type' => 'list', 'member' => [ 'shape' => 'Version', ], 'max' => 5, 'min' => 1, ], 'BuiltinIntentMetadata' => [ 'type' => 'structure', 'members' => [ 'signature' => [ 'shape' => 'BuiltinIntentSignature', ], 'supportedLocales' => [ 'shape' => 'LocaleList', ], ], ], 'BuiltinIntentMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BuiltinIntentMetadata', ], ], 'BuiltinIntentSignature' => [ 'type' => 'string', ], 'BuiltinIntentSlot' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], ], ], 'BuiltinIntentSlotList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BuiltinIntentSlot', ], ], 'BuiltinSlotTypeMetadata' => [ 'type' => 'structure', 'members' => [ 'signature' => [ 'shape' => 'BuiltinSlotTypeSignature', ], 'supportedLocales' => [ 'shape' => 'LocaleList', ], ], ], 'BuiltinSlotTypeMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BuiltinSlotTypeMetadata', ], ], 'BuiltinSlotTypeSignature' => [ 'type' => 'string', ], 'ChannelConfigurationMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], 'max' => 10, 'min' => 1, 'sensitive' => true, ], 'ChannelStatus' => [ 'type' => 'string', 'enum' => [ 'IN_PROGRESS', 'CREATED', 'FAILED', ], ], 'ChannelType' => [ 'type' => 'string', 'enum' => [ 'Facebook', 'Slack', 'Twilio-Sms', 'Kik', ], ], 'CodeHook' => [ 'type' => 'structure', 'required' => [ 'uri', 'messageVersion', ], 'members' => [ 'uri' => [ 'shape' => 'LambdaARN', ], 'messageVersion' => [ 'shape' => 'MessageVersion', ], ], ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'ContentString' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, ], 'ContentType' => [ 'type' => 'string', 'enum' => [ 'PlainText', 'SSML', 'CustomPayload', ], ], 'Count' => [ 'type' => 'integer', ], 'CreateBotVersionRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'BotName', 'location' => 'uri', 'locationName' => 'name', ], 'checksum' => [ 'shape' => 'String', ], ], ], 'CreateBotVersionResponse' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'BotName', ], 'description' => [ 'shape' => 'Description', ], 'intents' => [ 'shape' => 'IntentList', ], 'clarificationPrompt' => [ 'shape' => 'Prompt', ], 'abortStatement' => [ 'shape' => 'Statement', ], 'status' => [ 'shape' => 'Status', ], 'failureReason' => [ 'shape' => 'String', ], 'lastUpdatedDate' => [ 'shape' => 'Timestamp', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'idleSessionTTLInSeconds' => [ 'shape' => 'SessionTTL', ], 'voiceId' => [ 'shape' => 'String', ], 'checksum' => [ 'shape' => 'String', ], 'version' => [ 'shape' => 'Version', ], 'locale' => [ 'shape' => 'Locale', ], 'childDirected' => [ 'shape' => 'Boolean', ], ], ], 'CreateIntentVersionRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'IntentName', 'location' => 'uri', 'locationName' => 'name', ], 'checksum' => [ 'shape' => 'String', ], ], ], 'CreateIntentVersionResponse' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'IntentName', ], 'description' => [ 'shape' => 'Description', ], 'slots' => [ 'shape' => 'SlotList', ], 'sampleUtterances' => [ 'shape' => 'IntentUtteranceList', ], 'confirmationPrompt' => [ 'shape' => 'Prompt', ], 'rejectionStatement' => [ 'shape' => 'Statement', ], 'followUpPrompt' => [ 'shape' => 'FollowUpPrompt', ], 'conclusionStatement' => [ 'shape' => 'Statement', ], 'dialogCodeHook' => [ 'shape' => 'CodeHook', ], 'fulfillmentActivity' => [ 'shape' => 'FulfillmentActivity', ], 'parentIntentSignature' => [ 'shape' => 'BuiltinIntentSignature', ], 'lastUpdatedDate' => [ 'shape' => 'Timestamp', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'version' => [ 'shape' => 'Version', ], 'checksum' => [ 'shape' => 'String', ], ], ], 'CreateSlotTypeVersionRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'SlotTypeName', 'location' => 'uri', 'locationName' => 'name', ], 'checksum' => [ 'shape' => 'String', ], ], ], 'CreateSlotTypeVersionResponse' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'SlotTypeName', ], 'description' => [ 'shape' => 'Description', ], 'enumerationValues' => [ 'shape' => 'EnumerationValues', ], 'lastUpdatedDate' => [ 'shape' => 'Timestamp', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'version' => [ 'shape' => 'Version', ], 'checksum' => [ 'shape' => 'String', ], 'valueSelectionStrategy' => [ 'shape' => 'SlotValueSelectionStrategy', ], ], ], 'CustomOrBuiltinSlotTypeName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '^((AMAZON\\.)_?|[A-Za-z]_?)+', ], 'DeleteBotAliasRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'botName', ], 'members' => [ 'name' => [ 'shape' => 'AliasName', 'location' => 'uri', 'locationName' => 'name', ], 'botName' => [ 'shape' => 'BotName', 'location' => 'uri', 'locationName' => 'botName', ], ], ], 'DeleteBotChannelAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'botName', 'botAlias', ], 'members' => [ 'name' => [ 'shape' => 'BotChannelName', 'location' => 'uri', 'locationName' => 'name', ], 'botName' => [ 'shape' => 'BotName', 'location' => 'uri', 'locationName' => 'botName', ], 'botAlias' => [ 'shape' => 'AliasName', 'location' => 'uri', 'locationName' => 'aliasName', ], ], ], 'DeleteBotRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'BotName', 'location' => 'uri', 'locationName' => 'name', ], ], ], 'DeleteBotVersionRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'version', ], 'members' => [ 'name' => [ 'shape' => 'BotName', 'location' => 'uri', 'locationName' => 'name', ], 'version' => [ 'shape' => 'NumericalVersion', 'location' => 'uri', 'locationName' => 'version', ], ], ], 'DeleteIntentRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'IntentName', 'location' => 'uri', 'locationName' => 'name', ], ], ], 'DeleteIntentVersionRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'version', ], 'members' => [ 'name' => [ 'shape' => 'IntentName', 'location' => 'uri', 'locationName' => 'name', ], 'version' => [ 'shape' => 'NumericalVersion', 'location' => 'uri', 'locationName' => 'version', ], ], ], 'DeleteSlotTypeRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'SlotTypeName', 'location' => 'uri', 'locationName' => 'name', ], ], ], 'DeleteSlotTypeVersionRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'version', ], 'members' => [ 'name' => [ 'shape' => 'SlotTypeName', 'location' => 'uri', 'locationName' => 'name', ], 'version' => [ 'shape' => 'NumericalVersion', 'location' => 'uri', 'locationName' => 'version', ], ], ], 'DeleteUtterancesRequest' => [ 'type' => 'structure', 'required' => [ 'botName', 'userId', ], 'members' => [ 'botName' => [ 'shape' => 'BotName', 'location' => 'uri', 'locationName' => 'botName', ], 'userId' => [ 'shape' => 'UserId', 'location' => 'uri', 'locationName' => 'userId', ], ], ], 'Description' => [ 'type' => 'string', 'max' => 200, 'min' => 0, ], 'EnumerationValue' => [ 'type' => 'structure', 'required' => [ 'value', ], 'members' => [ 'value' => [ 'shape' => 'Value', ], 'synonyms' => [ 'shape' => 'SynonymList', ], ], ], 'EnumerationValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnumerationValue', ], 'max' => 10000, 'min' => 1, ], 'ExportStatus' => [ 'type' => 'string', 'enum' => [ 'IN_PROGRESS', 'READY', 'FAILED', ], ], 'ExportType' => [ 'type' => 'string', 'enum' => [ 'ALEXA_SKILLS_KIT', 'LEX', ], ], 'FollowUpPrompt' => [ 'type' => 'structure', 'required' => [ 'prompt', 'rejectionStatement', ], 'members' => [ 'prompt' => [ 'shape' => 'Prompt', ], 'rejectionStatement' => [ 'shape' => 'Statement', ], ], ], 'FulfillmentActivity' => [ 'type' => 'structure', 'required' => [ 'type', ], 'members' => [ 'type' => [ 'shape' => 'FulfillmentActivityType', ], 'codeHook' => [ 'shape' => 'CodeHook', ], ], ], 'FulfillmentActivityType' => [ 'type' => 'string', 'enum' => [ 'ReturnIntent', 'CodeHook', ], ], 'GetBotAliasRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'botName', ], 'members' => [ 'name' => [ 'shape' => 'AliasName', 'location' => 'uri', 'locationName' => 'name', ], 'botName' => [ 'shape' => 'BotName', 'location' => 'uri', 'locationName' => 'botName', ], ], ], 'GetBotAliasResponse' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'AliasName', ], 'description' => [ 'shape' => 'Description', ], 'botVersion' => [ 'shape' => 'Version', ], 'botName' => [ 'shape' => 'BotName', ], 'lastUpdatedDate' => [ 'shape' => 'Timestamp', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'checksum' => [ 'shape' => 'String', ], ], ], 'GetBotAliasesRequest' => [ 'type' => 'structure', 'required' => [ 'botName', ], 'members' => [ 'botName' => [ 'shape' => 'BotName', 'location' => 'uri', 'locationName' => 'botName', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nameContains' => [ 'shape' => 'AliasName', 'location' => 'querystring', 'locationName' => 'nameContains', ], ], ], 'GetBotAliasesResponse' => [ 'type' => 'structure', 'members' => [ 'BotAliases' => [ 'shape' => 'BotAliasMetadataList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetBotChannelAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'botName', 'botAlias', ], 'members' => [ 'name' => [ 'shape' => 'BotChannelName', 'location' => 'uri', 'locationName' => 'name', ], 'botName' => [ 'shape' => 'BotName', 'location' => 'uri', 'locationName' => 'botName', ], 'botAlias' => [ 'shape' => 'AliasName', 'location' => 'uri', 'locationName' => 'aliasName', ], ], ], 'GetBotChannelAssociationResponse' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'BotChannelName', ], 'description' => [ 'shape' => 'Description', ], 'botAlias' => [ 'shape' => 'AliasName', ], 'botName' => [ 'shape' => 'BotName', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'type' => [ 'shape' => 'ChannelType', ], 'botConfiguration' => [ 'shape' => 'ChannelConfigurationMap', ], 'status' => [ 'shape' => 'ChannelStatus', ], 'failureReason' => [ 'shape' => 'String', ], ], ], 'GetBotChannelAssociationsRequest' => [ 'type' => 'structure', 'required' => [ 'botName', 'botAlias', ], 'members' => [ 'botName' => [ 'shape' => 'BotName', 'location' => 'uri', 'locationName' => 'botName', ], 'botAlias' => [ 'shape' => 'AliasNameOrListAll', 'location' => 'uri', 'locationName' => 'aliasName', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nameContains' => [ 'shape' => 'BotChannelName', 'location' => 'querystring', 'locationName' => 'nameContains', ], ], ], 'GetBotChannelAssociationsResponse' => [ 'type' => 'structure', 'members' => [ 'botChannelAssociations' => [ 'shape' => 'BotChannelAssociationList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetBotRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'versionOrAlias', ], 'members' => [ 'name' => [ 'shape' => 'BotName', 'location' => 'uri', 'locationName' => 'name', ], 'versionOrAlias' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'versionoralias', ], ], ], 'GetBotResponse' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'BotName', ], 'description' => [ 'shape' => 'Description', ], 'intents' => [ 'shape' => 'IntentList', ], 'clarificationPrompt' => [ 'shape' => 'Prompt', ], 'abortStatement' => [ 'shape' => 'Statement', ], 'status' => [ 'shape' => 'Status', ], 'failureReason' => [ 'shape' => 'String', ], 'lastUpdatedDate' => [ 'shape' => 'Timestamp', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'idleSessionTTLInSeconds' => [ 'shape' => 'SessionTTL', ], 'voiceId' => [ 'shape' => 'String', ], 'checksum' => [ 'shape' => 'String', ], 'version' => [ 'shape' => 'Version', ], 'locale' => [ 'shape' => 'Locale', ], 'childDirected' => [ 'shape' => 'Boolean', ], ], ], 'GetBotVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'BotName', 'location' => 'uri', 'locationName' => 'name', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'GetBotVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'bots' => [ 'shape' => 'BotMetadataList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetBotsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nameContains' => [ 'shape' => 'BotName', 'location' => 'querystring', 'locationName' => 'nameContains', ], ], ], 'GetBotsResponse' => [ 'type' => 'structure', 'members' => [ 'bots' => [ 'shape' => 'BotMetadataList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetBuiltinIntentRequest' => [ 'type' => 'structure', 'required' => [ 'signature', ], 'members' => [ 'signature' => [ 'shape' => 'BuiltinIntentSignature', 'location' => 'uri', 'locationName' => 'signature', ], ], ], 'GetBuiltinIntentResponse' => [ 'type' => 'structure', 'members' => [ 'signature' => [ 'shape' => 'BuiltinIntentSignature', ], 'supportedLocales' => [ 'shape' => 'LocaleList', ], 'slots' => [ 'shape' => 'BuiltinIntentSlotList', ], ], ], 'GetBuiltinIntentsRequest' => [ 'type' => 'structure', 'members' => [ 'locale' => [ 'shape' => 'Locale', 'location' => 'querystring', 'locationName' => 'locale', ], 'signatureContains' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'signatureContains', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'GetBuiltinIntentsResponse' => [ 'type' => 'structure', 'members' => [ 'intents' => [ 'shape' => 'BuiltinIntentMetadataList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetBuiltinSlotTypesRequest' => [ 'type' => 'structure', 'members' => [ 'locale' => [ 'shape' => 'Locale', 'location' => 'querystring', 'locationName' => 'locale', ], 'signatureContains' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'signatureContains', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'GetBuiltinSlotTypesResponse' => [ 'type' => 'structure', 'members' => [ 'slotTypes' => [ 'shape' => 'BuiltinSlotTypeMetadataList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetExportRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'version', 'resourceType', 'exportType', ], 'members' => [ 'name' => [ 'shape' => 'Name', 'location' => 'querystring', 'locationName' => 'name', ], 'version' => [ 'shape' => 'NumericalVersion', 'location' => 'querystring', 'locationName' => 'version', ], 'resourceType' => [ 'shape' => 'ResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], 'exportType' => [ 'shape' => 'ExportType', 'location' => 'querystring', 'locationName' => 'exportType', ], ], ], 'GetExportResponse' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'Name', ], 'version' => [ 'shape' => 'NumericalVersion', ], 'resourceType' => [ 'shape' => 'ResourceType', ], 'exportType' => [ 'shape' => 'ExportType', ], 'exportStatus' => [ 'shape' => 'ExportStatus', ], 'failureReason' => [ 'shape' => 'String', ], 'url' => [ 'shape' => 'String', ], ], ], 'GetImportRequest' => [ 'type' => 'structure', 'required' => [ 'importId', ], 'members' => [ 'importId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'importId', ], ], ], 'GetImportResponse' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'Name', ], 'resourceType' => [ 'shape' => 'ResourceType', ], 'mergeStrategy' => [ 'shape' => 'MergeStrategy', ], 'importId' => [ 'shape' => 'String', ], 'importStatus' => [ 'shape' => 'ImportStatus', ], 'failureReason' => [ 'shape' => 'StringList', ], 'createdDate' => [ 'shape' => 'Timestamp', ], ], ], 'GetIntentRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'version', ], 'members' => [ 'name' => [ 'shape' => 'IntentName', 'location' => 'uri', 'locationName' => 'name', ], 'version' => [ 'shape' => 'Version', 'location' => 'uri', 'locationName' => 'version', ], ], ], 'GetIntentResponse' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'IntentName', ], 'description' => [ 'shape' => 'Description', ], 'slots' => [ 'shape' => 'SlotList', ], 'sampleUtterances' => [ 'shape' => 'IntentUtteranceList', ], 'confirmationPrompt' => [ 'shape' => 'Prompt', ], 'rejectionStatement' => [ 'shape' => 'Statement', ], 'followUpPrompt' => [ 'shape' => 'FollowUpPrompt', ], 'conclusionStatement' => [ 'shape' => 'Statement', ], 'dialogCodeHook' => [ 'shape' => 'CodeHook', ], 'fulfillmentActivity' => [ 'shape' => 'FulfillmentActivity', ], 'parentIntentSignature' => [ 'shape' => 'BuiltinIntentSignature', ], 'lastUpdatedDate' => [ 'shape' => 'Timestamp', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'version' => [ 'shape' => 'Version', ], 'checksum' => [ 'shape' => 'String', ], ], ], 'GetIntentVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'IntentName', 'location' => 'uri', 'locationName' => 'name', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'GetIntentVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'intents' => [ 'shape' => 'IntentMetadataList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetIntentsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nameContains' => [ 'shape' => 'IntentName', 'location' => 'querystring', 'locationName' => 'nameContains', ], ], ], 'GetIntentsResponse' => [ 'type' => 'structure', 'members' => [ 'intents' => [ 'shape' => 'IntentMetadataList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetSlotTypeRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'version', ], 'members' => [ 'name' => [ 'shape' => 'SlotTypeName', 'location' => 'uri', 'locationName' => 'name', ], 'version' => [ 'shape' => 'Version', 'location' => 'uri', 'locationName' => 'version', ], ], ], 'GetSlotTypeResponse' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'SlotTypeName', ], 'description' => [ 'shape' => 'Description', ], 'enumerationValues' => [ 'shape' => 'EnumerationValues', ], 'lastUpdatedDate' => [ 'shape' => 'Timestamp', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'version' => [ 'shape' => 'Version', ], 'checksum' => [ 'shape' => 'String', ], 'valueSelectionStrategy' => [ 'shape' => 'SlotValueSelectionStrategy', ], ], ], 'GetSlotTypeVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'SlotTypeName', 'location' => 'uri', 'locationName' => 'name', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'GetSlotTypeVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'slotTypes' => [ 'shape' => 'SlotTypeMetadataList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetSlotTypesRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nameContains' => [ 'shape' => 'SlotTypeName', 'location' => 'querystring', 'locationName' => 'nameContains', ], ], ], 'GetSlotTypesResponse' => [ 'type' => 'structure', 'members' => [ 'slotTypes' => [ 'shape' => 'SlotTypeMetadataList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetUtterancesViewRequest' => [ 'type' => 'structure', 'required' => [ 'botName', 'botVersions', 'statusType', ], 'members' => [ 'botName' => [ 'shape' => 'BotName', 'location' => 'uri', 'locationName' => 'botname', ], 'botVersions' => [ 'shape' => 'BotVersions', 'location' => 'querystring', 'locationName' => 'bot_versions', ], 'statusType' => [ 'shape' => 'StatusType', 'location' => 'querystring', 'locationName' => 'status_type', ], ], ], 'GetUtterancesViewResponse' => [ 'type' => 'structure', 'members' => [ 'botName' => [ 'shape' => 'BotName', ], 'utterances' => [ 'shape' => 'ListsOfUtterances', ], ], ], 'GroupNumber' => [ 'type' => 'integer', 'box' => true, 'max' => 5, 'min' => 1, ], 'ImportStatus' => [ 'type' => 'string', 'enum' => [ 'IN_PROGRESS', 'COMPLETE', 'FAILED', ], ], 'Intent' => [ 'type' => 'structure', 'required' => [ 'intentName', 'intentVersion', ], 'members' => [ 'intentName' => [ 'shape' => 'IntentName', ], 'intentVersion' => [ 'shape' => 'Version', ], ], ], 'IntentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Intent', ], ], 'IntentMetadata' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'IntentName', ], 'description' => [ 'shape' => 'Description', ], 'lastUpdatedDate' => [ 'shape' => 'Timestamp', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'version' => [ 'shape' => 'Version', ], ], ], 'IntentMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IntentMetadata', ], ], 'IntentName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '^([A-Za-z]_?)+$', ], 'IntentUtteranceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Utterance', ], 'max' => 1500, 'min' => 0, ], 'InternalFailureException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'LambdaARN' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => 'arn:aws:lambda:[a-z]+-[a-z]+-[0-9]:[0-9]{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})?(:[a-zA-Z0-9-_]+)?', ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'retryAfterSeconds' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'Retry-After', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'ListOfUtterance' => [ 'type' => 'list', 'member' => [ 'shape' => 'UtteranceData', ], ], 'ListsOfUtterances' => [ 'type' => 'list', 'member' => [ 'shape' => 'UtteranceList', ], ], 'Locale' => [ 'type' => 'string', 'enum' => [ 'en-US', 'en-GB', 'de-DE', ], ], 'LocaleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Locale', ], ], 'MaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 50, 'min' => 1, ], 'MergeStrategy' => [ 'type' => 'string', 'enum' => [ 'OVERWRITE_LATEST', 'FAIL_ON_CONFLICT', ], ], 'Message' => [ 'type' => 'structure', 'required' => [ 'contentType', 'content', ], 'members' => [ 'contentType' => [ 'shape' => 'ContentType', ], 'content' => [ 'shape' => 'ContentString', ], 'groupNumber' => [ 'shape' => 'GroupNumber', ], ], ], 'MessageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Message', ], 'max' => 15, 'min' => 1, ], 'MessageVersion' => [ 'type' => 'string', 'max' => 5, 'min' => 1, ], 'Name' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[a-zA-Z_]+', ], 'NextToken' => [ 'type' => 'string', ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'NumericalVersion' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[0-9]+', ], 'PreconditionFailedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 412, ], 'exception' => true, ], 'Priority' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'ProcessBehavior' => [ 'type' => 'string', 'enum' => [ 'SAVE', 'BUILD', ], ], 'Prompt' => [ 'type' => 'structure', 'required' => [ 'messages', 'maxAttempts', ], 'members' => [ 'messages' => [ 'shape' => 'MessageList', ], 'maxAttempts' => [ 'shape' => 'PromptMaxAttempts', ], 'responseCard' => [ 'shape' => 'ResponseCard', ], ], ], 'PromptMaxAttempts' => [ 'type' => 'integer', 'max' => 5, 'min' => 1, ], 'PutBotAliasRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'botVersion', 'botName', ], 'members' => [ 'name' => [ 'shape' => 'AliasName', 'location' => 'uri', 'locationName' => 'name', ], 'description' => [ 'shape' => 'Description', ], 'botVersion' => [ 'shape' => 'Version', ], 'botName' => [ 'shape' => 'BotName', 'location' => 'uri', 'locationName' => 'botName', ], 'checksum' => [ 'shape' => 'String', ], ], ], 'PutBotAliasResponse' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'AliasName', ], 'description' => [ 'shape' => 'Description', ], 'botVersion' => [ 'shape' => 'Version', ], 'botName' => [ 'shape' => 'BotName', ], 'lastUpdatedDate' => [ 'shape' => 'Timestamp', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'checksum' => [ 'shape' => 'String', ], ], ], 'PutBotRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'locale', 'childDirected', ], 'members' => [ 'name' => [ 'shape' => 'BotName', 'location' => 'uri', 'locationName' => 'name', ], 'description' => [ 'shape' => 'Description', ], 'intents' => [ 'shape' => 'IntentList', ], 'clarificationPrompt' => [ 'shape' => 'Prompt', ], 'abortStatement' => [ 'shape' => 'Statement', ], 'idleSessionTTLInSeconds' => [ 'shape' => 'SessionTTL', ], 'voiceId' => [ 'shape' => 'String', ], 'checksum' => [ 'shape' => 'String', ], 'processBehavior' => [ 'shape' => 'ProcessBehavior', ], 'locale' => [ 'shape' => 'Locale', ], 'childDirected' => [ 'shape' => 'Boolean', ], 'createVersion' => [ 'shape' => 'Boolean', ], ], ], 'PutBotResponse' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'BotName', ], 'description' => [ 'shape' => 'Description', ], 'intents' => [ 'shape' => 'IntentList', ], 'clarificationPrompt' => [ 'shape' => 'Prompt', ], 'abortStatement' => [ 'shape' => 'Statement', ], 'status' => [ 'shape' => 'Status', ], 'failureReason' => [ 'shape' => 'String', ], 'lastUpdatedDate' => [ 'shape' => 'Timestamp', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'idleSessionTTLInSeconds' => [ 'shape' => 'SessionTTL', ], 'voiceId' => [ 'shape' => 'String', ], 'checksum' => [ 'shape' => 'String', ], 'version' => [ 'shape' => 'Version', ], 'locale' => [ 'shape' => 'Locale', ], 'childDirected' => [ 'shape' => 'Boolean', ], 'createVersion' => [ 'shape' => 'Boolean', ], ], ], 'PutIntentRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'IntentName', 'location' => 'uri', 'locationName' => 'name', ], 'description' => [ 'shape' => 'Description', ], 'slots' => [ 'shape' => 'SlotList', ], 'sampleUtterances' => [ 'shape' => 'IntentUtteranceList', ], 'confirmationPrompt' => [ 'shape' => 'Prompt', ], 'rejectionStatement' => [ 'shape' => 'Statement', ], 'followUpPrompt' => [ 'shape' => 'FollowUpPrompt', ], 'conclusionStatement' => [ 'shape' => 'Statement', ], 'dialogCodeHook' => [ 'shape' => 'CodeHook', ], 'fulfillmentActivity' => [ 'shape' => 'FulfillmentActivity', ], 'parentIntentSignature' => [ 'shape' => 'BuiltinIntentSignature', ], 'checksum' => [ 'shape' => 'String', ], 'createVersion' => [ 'shape' => 'Boolean', ], ], ], 'PutIntentResponse' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'IntentName', ], 'description' => [ 'shape' => 'Description', ], 'slots' => [ 'shape' => 'SlotList', ], 'sampleUtterances' => [ 'shape' => 'IntentUtteranceList', ], 'confirmationPrompt' => [ 'shape' => 'Prompt', ], 'rejectionStatement' => [ 'shape' => 'Statement', ], 'followUpPrompt' => [ 'shape' => 'FollowUpPrompt', ], 'conclusionStatement' => [ 'shape' => 'Statement', ], 'dialogCodeHook' => [ 'shape' => 'CodeHook', ], 'fulfillmentActivity' => [ 'shape' => 'FulfillmentActivity', ], 'parentIntentSignature' => [ 'shape' => 'BuiltinIntentSignature', ], 'lastUpdatedDate' => [ 'shape' => 'Timestamp', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'version' => [ 'shape' => 'Version', ], 'checksum' => [ 'shape' => 'String', ], 'createVersion' => [ 'shape' => 'Boolean', ], ], ], 'PutSlotTypeRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'SlotTypeName', 'location' => 'uri', 'locationName' => 'name', ], 'description' => [ 'shape' => 'Description', ], 'enumerationValues' => [ 'shape' => 'EnumerationValues', ], 'checksum' => [ 'shape' => 'String', ], 'valueSelectionStrategy' => [ 'shape' => 'SlotValueSelectionStrategy', ], 'createVersion' => [ 'shape' => 'Boolean', ], ], ], 'PutSlotTypeResponse' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'SlotTypeName', ], 'description' => [ 'shape' => 'Description', ], 'enumerationValues' => [ 'shape' => 'EnumerationValues', ], 'lastUpdatedDate' => [ 'shape' => 'Timestamp', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'version' => [ 'shape' => 'Version', ], 'checksum' => [ 'shape' => 'String', ], 'valueSelectionStrategy' => [ 'shape' => 'SlotValueSelectionStrategy', ], 'createVersion' => [ 'shape' => 'Boolean', ], ], ], 'ReferenceType' => [ 'type' => 'string', 'enum' => [ 'Intent', 'Bot', 'BotAlias', 'BotChannel', ], ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [ 'referenceType' => [ 'shape' => 'ReferenceType', ], 'exampleReference' => [ 'shape' => 'ResourceReference', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ResourceReference' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'Name', ], 'version' => [ 'shape' => 'Version', ], ], ], 'ResourceType' => [ 'type' => 'string', 'enum' => [ 'BOT', 'INTENT', 'SLOT_TYPE', ], ], 'ResponseCard' => [ 'type' => 'string', 'max' => 50000, 'min' => 1, ], 'SessionTTL' => [ 'type' => 'integer', 'max' => 86400, 'min' => 60, ], 'Slot' => [ 'type' => 'structure', 'required' => [ 'name', 'slotConstraint', ], 'members' => [ 'name' => [ 'shape' => 'SlotName', ], 'description' => [ 'shape' => 'Description', ], 'slotConstraint' => [ 'shape' => 'SlotConstraint', ], 'slotType' => [ 'shape' => 'CustomOrBuiltinSlotTypeName', ], 'slotTypeVersion' => [ 'shape' => 'Version', ], 'valueElicitationPrompt' => [ 'shape' => 'Prompt', ], 'priority' => [ 'shape' => 'Priority', ], 'sampleUtterances' => [ 'shape' => 'SlotUtteranceList', ], 'responseCard' => [ 'shape' => 'ResponseCard', ], ], ], 'SlotConstraint' => [ 'type' => 'string', 'enum' => [ 'Required', 'Optional', ], ], 'SlotList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Slot', ], 'max' => 100, 'min' => 0, ], 'SlotName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '^([A-Za-z](-|_|.)?)+$', ], 'SlotTypeMetadata' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'SlotTypeName', ], 'description' => [ 'shape' => 'Description', ], 'lastUpdatedDate' => [ 'shape' => 'Timestamp', ], 'createdDate' => [ 'shape' => 'Timestamp', ], 'version' => [ 'shape' => 'Version', ], ], ], 'SlotTypeMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SlotTypeMetadata', ], ], 'SlotTypeName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '^([A-Za-z]_?)+$', ], 'SlotUtteranceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Utterance', ], 'max' => 10, 'min' => 0, ], 'SlotValueSelectionStrategy' => [ 'type' => 'string', 'enum' => [ 'ORIGINAL_VALUE', 'TOP_RESOLUTION', ], ], 'StartImportRequest' => [ 'type' => 'structure', 'required' => [ 'payload', 'resourceType', 'mergeStrategy', ], 'members' => [ 'payload' => [ 'shape' => 'Blob', ], 'resourceType' => [ 'shape' => 'ResourceType', ], 'mergeStrategy' => [ 'shape' => 'MergeStrategy', ], ], ], 'StartImportResponse' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'Name', ], 'resourceType' => [ 'shape' => 'ResourceType', ], 'mergeStrategy' => [ 'shape' => 'MergeStrategy', ], 'importId' => [ 'shape' => 'String', ], 'importStatus' => [ 'shape' => 'ImportStatus', ], 'createdDate' => [ 'shape' => 'Timestamp', ], ], ], 'Statement' => [ 'type' => 'structure', 'required' => [ 'messages', ], 'members' => [ 'messages' => [ 'shape' => 'MessageList', ], 'responseCard' => [ 'shape' => 'ResponseCard', ], ], ], 'Status' => [ 'type' => 'string', 'enum' => [ 'BUILDING', 'READY', 'READY_BASIC_TESTING', 'FAILED', 'NOT_BUILT', ], ], 'StatusType' => [ 'type' => 'string', 'enum' => [ 'Detected', 'Missed', ], ], 'String' => [ 'type' => 'string', ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'SynonymList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Value', ], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'UserId' => [ 'type' => 'string', 'max' => 100, 'min' => 2, ], 'Utterance' => [ 'type' => 'string', 'max' => 200, 'min' => 1, ], 'UtteranceData' => [ 'type' => 'structure', 'members' => [ 'utteranceString' => [ 'shape' => 'UtteranceString', ], 'count' => [ 'shape' => 'Count', ], 'distinctUsers' => [ 'shape' => 'Count', ], 'firstUtteredDate' => [ 'shape' => 'Timestamp', ], 'lastUtteredDate' => [ 'shape' => 'Timestamp', ], ], ], 'UtteranceList' => [ 'type' => 'structure', 'members' => [ 'botVersion' => [ 'shape' => 'Version', ], 'utterances' => [ 'shape' => 'ListOfUtterance', ], ], ], 'UtteranceString' => [ 'type' => 'string', 'max' => 2000, 'min' => 1, ], 'Value' => [ 'type' => 'string', 'max' => 140, 'min' => 1, ], 'Version' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '\\$LATEST|[0-9]+', ], ],]; diff --git a/lib/aws/Aws/data/lex-models/2017-04-19/paginators-1.json.php b/lib/aws/Aws/data/lex-models/2017-04-19/paginators-1.json.php new file mode 100644 index 0000000..b203e97 --- /dev/null +++ b/lib/aws/Aws/data/lex-models/2017-04-19/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/lex-models/2017-04-19/paginators-1.json +return [ 'pagination' => [ 'GetBotAliases' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'GetBotChannelAssociations' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'GetBotVersions' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'GetBots' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'GetBuiltinIntents' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'GetBuiltinSlotTypes' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'GetIntentVersions' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'GetIntents' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'GetSlotTypeVersions' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'GetSlotTypes' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], ],]; diff --git a/lib/aws/Aws/data/license-manager/2018-08-01/api-2.json.php b/lib/aws/Aws/data/license-manager/2018-08-01/api-2.json.php new file mode 100644 index 0000000..b0830b5 --- /dev/null +++ b/lib/aws/Aws/data/license-manager/2018-08-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/license-manager/2018-08-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-08-01', 'endpointPrefix' => 'license-manager', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWS License Manager', 'serviceId' => 'License Manager', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWSLicenseManager', 'uid' => 'license-manager-2018-08-01', ], 'operations' => [ 'CreateLicenseConfiguration' => [ 'name' => 'CreateLicenseConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLicenseConfigurationRequest', ], 'output' => [ 'shape' => 'CreateLicenseConfigurationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'AuthorizationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'RateLimitExceededException', ], ], ], 'DeleteLicenseConfiguration' => [ 'name' => 'DeleteLicenseConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLicenseConfigurationRequest', ], 'output' => [ 'shape' => 'DeleteLicenseConfigurationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'AuthorizationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'RateLimitExceededException', ], ], ], 'GetLicenseConfiguration' => [ 'name' => 'GetLicenseConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetLicenseConfigurationRequest', ], 'output' => [ 'shape' => 'GetLicenseConfigurationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'AuthorizationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'RateLimitExceededException', ], ], ], 'GetServiceSettings' => [ 'name' => 'GetServiceSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetServiceSettingsRequest', ], 'output' => [ 'shape' => 'GetServiceSettingsResponse', ], 'errors' => [ [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'AuthorizationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'RateLimitExceededException', ], ], ], 'ListAssociationsForLicenseConfiguration' => [ 'name' => 'ListAssociationsForLicenseConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAssociationsForLicenseConfigurationRequest', ], 'output' => [ 'shape' => 'ListAssociationsForLicenseConfigurationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'FilterLimitExceededException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'AuthorizationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'RateLimitExceededException', ], ], ], 'ListLicenseConfigurations' => [ 'name' => 'ListLicenseConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListLicenseConfigurationsRequest', ], 'output' => [ 'shape' => 'ListLicenseConfigurationsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'FilterLimitExceededException', ], [ 'shape' => 'AuthorizationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'RateLimitExceededException', ], ], ], 'ListLicenseSpecificationsForResource' => [ 'name' => 'ListLicenseSpecificationsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListLicenseSpecificationsForResourceRequest', ], 'output' => [ 'shape' => 'ListLicenseSpecificationsForResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'AuthorizationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'RateLimitExceededException', ], ], ], 'ListResourceInventory' => [ 'name' => 'ListResourceInventory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListResourceInventoryRequest', ], 'output' => [ 'shape' => 'ListResourceInventoryResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'FilterLimitExceededException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'AuthorizationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'RateLimitExceededException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'AuthorizationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'RateLimitExceededException', ], ], ], 'ListUsageForLicenseConfiguration' => [ 'name' => 'ListUsageForLicenseConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListUsageForLicenseConfigurationRequest', ], 'output' => [ 'shape' => 'ListUsageForLicenseConfigurationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'FilterLimitExceededException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'AuthorizationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'RateLimitExceededException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'AuthorizationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'RateLimitExceededException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'AuthorizationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'RateLimitExceededException', ], ], ], 'UpdateLicenseConfiguration' => [ 'name' => 'UpdateLicenseConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateLicenseConfigurationRequest', ], 'output' => [ 'shape' => 'UpdateLicenseConfigurationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'AuthorizationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'RateLimitExceededException', ], ], ], 'UpdateLicenseSpecificationsForResource' => [ 'name' => 'UpdateLicenseSpecificationsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateLicenseSpecificationsForResourceRequest', ], 'output' => [ 'shape' => 'UpdateLicenseSpecificationsForResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InvalidResourceStateException', ], [ 'shape' => 'LicenseUsageException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'AuthorizationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'RateLimitExceededException', ], ], ], 'UpdateServiceSettings' => [ 'name' => 'UpdateServiceSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateServiceSettingsRequest', ], 'output' => [ 'shape' => 'UpdateServiceSettingsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'AuthorizationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'RateLimitExceededException', ], ], ], ], 'shapes' => [ 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'AuthorizationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'Boolean' => [ 'type' => 'boolean', ], 'BoxBoolean' => [ 'type' => 'boolean', ], 'BoxInteger' => [ 'type' => 'integer', ], 'BoxLong' => [ 'type' => 'long', ], 'ConsumedLicenseSummary' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ResourceType', ], 'ConsumedLicenses' => [ 'shape' => 'BoxLong', ], ], ], 'ConsumedLicenseSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConsumedLicenseSummary', ], ], 'CreateLicenseConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'LicenseCountingType', ], 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'LicenseCountingType' => [ 'shape' => 'LicenseCountingType', ], 'LicenseCount' => [ 'shape' => 'BoxLong', ], 'LicenseCountHardLimit' => [ 'shape' => 'BoxBoolean', ], 'LicenseRules' => [ 'shape' => 'StringList', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateLicenseConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', ], ], ], 'DateTime' => [ 'type' => 'timestamp', ], 'DeleteLicenseConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'LicenseConfigurationArn', ], 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', ], ], ], 'DeleteLicenseConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'FailedDependencyException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'exception' => true, 'fault' => true, ], 'Filter' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'FilterName', ], 'Values' => [ 'shape' => 'FilterValues', ], ], ], 'FilterLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'FilterName' => [ 'type' => 'string', ], 'FilterValue' => [ 'type' => 'string', ], 'FilterValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'FilterValue', ], ], 'Filters' => [ 'type' => 'list', 'member' => [ 'shape' => 'Filter', ], ], 'GetLicenseConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'LicenseConfigurationArn', ], 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', ], ], ], 'GetLicenseConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationId' => [ 'shape' => 'String', ], 'LicenseConfigurationArn' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'LicenseCountingType' => [ 'shape' => 'LicenseCountingType', ], 'LicenseRules' => [ 'shape' => 'StringList', ], 'LicenseCount' => [ 'shape' => 'BoxLong', ], 'LicenseCountHardLimit' => [ 'shape' => 'BoxBoolean', ], 'ConsumedLicenses' => [ 'shape' => 'BoxLong', ], 'Status' => [ 'shape' => 'String', ], 'OwnerAccountId' => [ 'shape' => 'String', ], 'ConsumedLicenseSummaryList' => [ 'shape' => 'ConsumedLicenseSummaryList', ], 'ManagedResourceSummaryList' => [ 'shape' => 'ManagedResourceSummaryList', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'GetServiceSettingsRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetServiceSettingsResponse' => [ 'type' => 'structure', 'members' => [ 'S3BucketArn' => [ 'shape' => 'String', ], 'SnsTopicArn' => [ 'shape' => 'String', ], 'OrganizationConfiguration' => [ 'shape' => 'OrganizationConfiguration', ], 'EnableCrossAccountsDiscovery' => [ 'shape' => 'BoxBoolean', ], ], ], 'InvalidParameterValueException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'exception' => true, 'synthetic' => true, ], 'InvalidResourceStateException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'InventoryFilter' => [ 'type' => 'structure', 'required' => [ 'Name', 'Condition', ], 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Condition' => [ 'shape' => 'InventoryFilterCondition', ], 'Value' => [ 'shape' => 'String', ], ], ], 'InventoryFilterCondition' => [ 'type' => 'string', 'enum' => [ 'EQUALS', 'NOT_EQUALS', 'BEGINS_WITH', 'CONTAINS', ], ], 'InventoryFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InventoryFilter', ], ], 'LicenseConfiguration' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationId' => [ 'shape' => 'String', ], 'LicenseConfigurationArn' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'LicenseCountingType' => [ 'shape' => 'LicenseCountingType', ], 'LicenseRules' => [ 'shape' => 'StringList', ], 'LicenseCount' => [ 'shape' => 'BoxLong', ], 'LicenseCountHardLimit' => [ 'shape' => 'BoxBoolean', ], 'ConsumedLicenses' => [ 'shape' => 'BoxLong', ], 'Status' => [ 'shape' => 'String', ], 'OwnerAccountId' => [ 'shape' => 'String', ], 'ConsumedLicenseSummaryList' => [ 'shape' => 'ConsumedLicenseSummaryList', ], 'ManagedResourceSummaryList' => [ 'shape' => 'ManagedResourceSummaryList', ], ], ], 'LicenseConfigurationAssociation' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], 'ResourceOwnerId' => [ 'shape' => 'String', ], 'AssociationTime' => [ 'shape' => 'DateTime', ], ], ], 'LicenseConfigurationAssociations' => [ 'type' => 'list', 'member' => [ 'shape' => 'LicenseConfigurationAssociation', ], ], 'LicenseConfigurationStatus' => [ 'type' => 'string', 'enum' => [ 'AVAILABLE', 'DISABLED', ], ], 'LicenseConfigurationUsage' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], 'ResourceStatus' => [ 'shape' => 'String', ], 'ResourceOwnerId' => [ 'shape' => 'String', ], 'AssociationTime' => [ 'shape' => 'DateTime', ], 'ConsumedLicenses' => [ 'shape' => 'BoxLong', ], ], ], 'LicenseConfigurationUsageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LicenseConfigurationUsage', ], ], 'LicenseConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'LicenseConfiguration', ], ], 'LicenseCountingType' => [ 'type' => 'string', 'enum' => [ 'vCPU', 'Instance', 'Core', 'Socket', ], ], 'LicenseSpecification' => [ 'type' => 'structure', 'required' => [ 'LicenseConfigurationArn', ], 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', ], ], ], 'LicenseSpecifications' => [ 'type' => 'list', 'member' => [ 'shape' => 'LicenseSpecification', ], ], 'LicenseUsageException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'ListAssociationsForLicenseConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'LicenseConfigurationArn', ], 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'BoxInteger', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListAssociationsForLicenseConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationAssociations' => [ 'shape' => 'LicenseConfigurationAssociations', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListLicenseConfigurationsRequest' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationArns' => [ 'shape' => 'StringList', ], 'MaxResults' => [ 'shape' => 'BoxInteger', ], 'NextToken' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'Filters', ], ], ], 'ListLicenseConfigurationsResponse' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurations' => [ 'shape' => 'LicenseConfigurations', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListLicenseSpecificationsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'BoxInteger', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListLicenseSpecificationsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'LicenseSpecifications' => [ 'shape' => 'LicenseSpecifications', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListResourceInventoryRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'BoxInteger', ], 'NextToken' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'InventoryFilterList', ], ], ], 'ListResourceInventoryResponse' => [ 'type' => 'structure', 'members' => [ 'ResourceInventoryList' => [ 'shape' => 'ResourceInventoryList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'String', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], ], ], 'ListUsageForLicenseConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'LicenseConfigurationArn', ], 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'BoxInteger', ], 'NextToken' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'Filters', ], ], ], 'ListUsageForLicenseConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationUsageList' => [ 'shape' => 'LicenseConfigurationUsageList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ManagedResourceSummary' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ResourceType', ], 'AssociationCount' => [ 'shape' => 'BoxLong', ], ], ], 'ManagedResourceSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedResourceSummary', ], ], 'Message' => [ 'type' => 'string', ], 'OrganizationConfiguration' => [ 'type' => 'structure', 'required' => [ 'EnableIntegration', ], 'members' => [ 'EnableIntegration' => [ 'shape' => 'Boolean', ], ], ], 'RateLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'ResourceInventory' => [ 'type' => 'structure', 'members' => [ 'ResourceId' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], 'ResourceArn' => [ 'shape' => 'String', ], 'Platform' => [ 'shape' => 'String', ], 'PlatformVersion' => [ 'shape' => 'String', ], 'ResourceOwningAccountId' => [ 'shape' => 'String', ], ], ], 'ResourceInventoryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceInventory', ], ], 'ResourceLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'ResourceType' => [ 'type' => 'string', 'enum' => [ 'EC2_INSTANCE', 'EC2_HOST', 'EC2_AMI', ], ], 'ServerInternalException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'exception' => true, 'fault' => true, ], 'String' => [ 'type' => 'string', ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', ], 'Value' => [ 'shape' => 'String', ], ], ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Tags', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagKeys', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'String', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateLicenseConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'LicenseConfigurationArn', ], 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', ], 'LicenseConfigurationStatus' => [ 'shape' => 'LicenseConfigurationStatus', ], 'LicenseRules' => [ 'shape' => 'StringList', ], 'LicenseCount' => [ 'shape' => 'BoxLong', ], 'LicenseCountHardLimit' => [ 'shape' => 'BoxBoolean', ], 'Name' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], ], ], 'UpdateLicenseConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateLicenseSpecificationsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'String', ], 'AddLicenseSpecifications' => [ 'shape' => 'LicenseSpecifications', ], 'RemoveLicenseSpecifications' => [ 'shape' => 'LicenseSpecifications', ], ], ], 'UpdateLicenseSpecificationsForResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateServiceSettingsRequest' => [ 'type' => 'structure', 'members' => [ 'S3BucketArn' => [ 'shape' => 'String', ], 'SnsTopicArn' => [ 'shape' => 'String', ], 'OrganizationConfiguration' => [ 'shape' => 'OrganizationConfiguration', ], 'EnableCrossAccountsDiscovery' => [ 'shape' => 'BoxBoolean', ], ], ], 'UpdateServiceSettingsResponse' => [ 'type' => 'structure', 'members' => [], ], ],]; diff --git a/lib/aws/Aws/data/license-manager/2018-08-01/paginators-1.json.php b/lib/aws/Aws/data/license-manager/2018-08-01/paginators-1.json.php new file mode 100644 index 0000000..3e1f215 --- /dev/null +++ b/lib/aws/Aws/data/license-manager/2018-08-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/license-manager/2018-08-01/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/lightsail/2016-11-28/api-2.json.php b/lib/aws/Aws/data/lightsail/2016-11-28/api-2.json.php new file mode 100644 index 0000000..fb46b62 --- /dev/null +++ b/lib/aws/Aws/data/lightsail/2016-11-28/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/lightsail/2016-11-28/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-11-28', 'endpointPrefix' => 'lightsail', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Amazon Lightsail', 'serviceId' => 'Lightsail', 'signatureVersion' => 'v4', 'targetPrefix' => 'Lightsail_20161128', 'uid' => 'lightsail-2016-11-28', ], 'operations' => [ 'AllocateStaticIp' => [ 'name' => 'AllocateStaticIp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AllocateStaticIpRequest', ], 'output' => [ 'shape' => 'AllocateStaticIpResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'AttachDisk' => [ 'name' => 'AttachDisk', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachDiskRequest', ], 'output' => [ 'shape' => 'AttachDiskResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'AttachInstancesToLoadBalancer' => [ 'name' => 'AttachInstancesToLoadBalancer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachInstancesToLoadBalancerRequest', ], 'output' => [ 'shape' => 'AttachInstancesToLoadBalancerResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'AttachLoadBalancerTlsCertificate' => [ 'name' => 'AttachLoadBalancerTlsCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachLoadBalancerTlsCertificateRequest', ], 'output' => [ 'shape' => 'AttachLoadBalancerTlsCertificateResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'AttachStaticIp' => [ 'name' => 'AttachStaticIp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachStaticIpRequest', ], 'output' => [ 'shape' => 'AttachStaticIpResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'CloseInstancePublicPorts' => [ 'name' => 'CloseInstancePublicPorts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CloseInstancePublicPortsRequest', ], 'output' => [ 'shape' => 'CloseInstancePublicPortsResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'CopySnapshot' => [ 'name' => 'CopySnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopySnapshotRequest', ], 'output' => [ 'shape' => 'CopySnapshotResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'CreateCloudFormationStack' => [ 'name' => 'CreateCloudFormationStack', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCloudFormationStackRequest', ], 'output' => [ 'shape' => 'CreateCloudFormationStackResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'CreateDisk' => [ 'name' => 'CreateDisk', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDiskRequest', ], 'output' => [ 'shape' => 'CreateDiskResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'CreateDiskFromSnapshot' => [ 'name' => 'CreateDiskFromSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDiskFromSnapshotRequest', ], 'output' => [ 'shape' => 'CreateDiskFromSnapshotResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'CreateDiskSnapshot' => [ 'name' => 'CreateDiskSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDiskSnapshotRequest', ], 'output' => [ 'shape' => 'CreateDiskSnapshotResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'CreateDomain' => [ 'name' => 'CreateDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDomainRequest', ], 'output' => [ 'shape' => 'CreateDomainResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'CreateDomainEntry' => [ 'name' => 'CreateDomainEntry', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDomainEntryRequest', ], 'output' => [ 'shape' => 'CreateDomainEntryResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'CreateInstanceSnapshot' => [ 'name' => 'CreateInstanceSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateInstanceSnapshotRequest', ], 'output' => [ 'shape' => 'CreateInstanceSnapshotResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'CreateInstances' => [ 'name' => 'CreateInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateInstancesRequest', ], 'output' => [ 'shape' => 'CreateInstancesResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'CreateInstancesFromSnapshot' => [ 'name' => 'CreateInstancesFromSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateInstancesFromSnapshotRequest', ], 'output' => [ 'shape' => 'CreateInstancesFromSnapshotResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'CreateKeyPair' => [ 'name' => 'CreateKeyPair', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateKeyPairRequest', ], 'output' => [ 'shape' => 'CreateKeyPairResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'CreateLoadBalancer' => [ 'name' => 'CreateLoadBalancer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLoadBalancerRequest', ], 'output' => [ 'shape' => 'CreateLoadBalancerResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'CreateLoadBalancerTlsCertificate' => [ 'name' => 'CreateLoadBalancerTlsCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLoadBalancerTlsCertificateRequest', ], 'output' => [ 'shape' => 'CreateLoadBalancerTlsCertificateResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'CreateRelationalDatabase' => [ 'name' => 'CreateRelationalDatabase', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRelationalDatabaseRequest', ], 'output' => [ 'shape' => 'CreateRelationalDatabaseResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'CreateRelationalDatabaseFromSnapshot' => [ 'name' => 'CreateRelationalDatabaseFromSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRelationalDatabaseFromSnapshotRequest', ], 'output' => [ 'shape' => 'CreateRelationalDatabaseFromSnapshotResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'CreateRelationalDatabaseSnapshot' => [ 'name' => 'CreateRelationalDatabaseSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRelationalDatabaseSnapshotRequest', ], 'output' => [ 'shape' => 'CreateRelationalDatabaseSnapshotResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'DeleteDisk' => [ 'name' => 'DeleteDisk', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDiskRequest', ], 'output' => [ 'shape' => 'DeleteDiskResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'DeleteDiskSnapshot' => [ 'name' => 'DeleteDiskSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDiskSnapshotRequest', ], 'output' => [ 'shape' => 'DeleteDiskSnapshotResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'DeleteDomain' => [ 'name' => 'DeleteDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDomainRequest', ], 'output' => [ 'shape' => 'DeleteDomainResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'DeleteDomainEntry' => [ 'name' => 'DeleteDomainEntry', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDomainEntryRequest', ], 'output' => [ 'shape' => 'DeleteDomainEntryResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'DeleteInstance' => [ 'name' => 'DeleteInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteInstanceRequest', ], 'output' => [ 'shape' => 'DeleteInstanceResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'DeleteInstanceSnapshot' => [ 'name' => 'DeleteInstanceSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteInstanceSnapshotRequest', ], 'output' => [ 'shape' => 'DeleteInstanceSnapshotResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'DeleteKeyPair' => [ 'name' => 'DeleteKeyPair', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteKeyPairRequest', ], 'output' => [ 'shape' => 'DeleteKeyPairResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'DeleteKnownHostKeys' => [ 'name' => 'DeleteKnownHostKeys', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteKnownHostKeysRequest', ], 'output' => [ 'shape' => 'DeleteKnownHostKeysResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'DeleteLoadBalancer' => [ 'name' => 'DeleteLoadBalancer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLoadBalancerRequest', ], 'output' => [ 'shape' => 'DeleteLoadBalancerResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'DeleteLoadBalancerTlsCertificate' => [ 'name' => 'DeleteLoadBalancerTlsCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLoadBalancerTlsCertificateRequest', ], 'output' => [ 'shape' => 'DeleteLoadBalancerTlsCertificateResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'DeleteRelationalDatabase' => [ 'name' => 'DeleteRelationalDatabase', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRelationalDatabaseRequest', ], 'output' => [ 'shape' => 'DeleteRelationalDatabaseResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'DeleteRelationalDatabaseSnapshot' => [ 'name' => 'DeleteRelationalDatabaseSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRelationalDatabaseSnapshotRequest', ], 'output' => [ 'shape' => 'DeleteRelationalDatabaseSnapshotResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'DetachDisk' => [ 'name' => 'DetachDisk', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachDiskRequest', ], 'output' => [ 'shape' => 'DetachDiskResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'DetachInstancesFromLoadBalancer' => [ 'name' => 'DetachInstancesFromLoadBalancer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachInstancesFromLoadBalancerRequest', ], 'output' => [ 'shape' => 'DetachInstancesFromLoadBalancerResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'DetachStaticIp' => [ 'name' => 'DetachStaticIp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachStaticIpRequest', ], 'output' => [ 'shape' => 'DetachStaticIpResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'DownloadDefaultKeyPair' => [ 'name' => 'DownloadDefaultKeyPair', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DownloadDefaultKeyPairRequest', ], 'output' => [ 'shape' => 'DownloadDefaultKeyPairResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'ExportSnapshot' => [ 'name' => 'ExportSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExportSnapshotRequest', ], 'output' => [ 'shape' => 'ExportSnapshotResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetActiveNames' => [ 'name' => 'GetActiveNames', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetActiveNamesRequest', ], 'output' => [ 'shape' => 'GetActiveNamesResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetBlueprints' => [ 'name' => 'GetBlueprints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetBlueprintsRequest', ], 'output' => [ 'shape' => 'GetBlueprintsResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetBundles' => [ 'name' => 'GetBundles', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetBundlesRequest', ], 'output' => [ 'shape' => 'GetBundlesResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetCloudFormationStackRecords' => [ 'name' => 'GetCloudFormationStackRecords', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCloudFormationStackRecordsRequest', ], 'output' => [ 'shape' => 'GetCloudFormationStackRecordsResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetDisk' => [ 'name' => 'GetDisk', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDiskRequest', ], 'output' => [ 'shape' => 'GetDiskResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetDiskSnapshot' => [ 'name' => 'GetDiskSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDiskSnapshotRequest', ], 'output' => [ 'shape' => 'GetDiskSnapshotResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetDiskSnapshots' => [ 'name' => 'GetDiskSnapshots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDiskSnapshotsRequest', ], 'output' => [ 'shape' => 'GetDiskSnapshotsResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetDisks' => [ 'name' => 'GetDisks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDisksRequest', ], 'output' => [ 'shape' => 'GetDisksResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetDomain' => [ 'name' => 'GetDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDomainRequest', ], 'output' => [ 'shape' => 'GetDomainResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetDomains' => [ 'name' => 'GetDomains', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDomainsRequest', ], 'output' => [ 'shape' => 'GetDomainsResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetExportSnapshotRecords' => [ 'name' => 'GetExportSnapshotRecords', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetExportSnapshotRecordsRequest', ], 'output' => [ 'shape' => 'GetExportSnapshotRecordsResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetInstance' => [ 'name' => 'GetInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstanceRequest', ], 'output' => [ 'shape' => 'GetInstanceResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetInstanceAccessDetails' => [ 'name' => 'GetInstanceAccessDetails', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstanceAccessDetailsRequest', ], 'output' => [ 'shape' => 'GetInstanceAccessDetailsResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetInstanceMetricData' => [ 'name' => 'GetInstanceMetricData', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstanceMetricDataRequest', ], 'output' => [ 'shape' => 'GetInstanceMetricDataResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetInstancePortStates' => [ 'name' => 'GetInstancePortStates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstancePortStatesRequest', ], 'output' => [ 'shape' => 'GetInstancePortStatesResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetInstanceSnapshot' => [ 'name' => 'GetInstanceSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstanceSnapshotRequest', ], 'output' => [ 'shape' => 'GetInstanceSnapshotResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetInstanceSnapshots' => [ 'name' => 'GetInstanceSnapshots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstanceSnapshotsRequest', ], 'output' => [ 'shape' => 'GetInstanceSnapshotsResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetInstanceState' => [ 'name' => 'GetInstanceState', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstanceStateRequest', ], 'output' => [ 'shape' => 'GetInstanceStateResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetInstances' => [ 'name' => 'GetInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstancesRequest', ], 'output' => [ 'shape' => 'GetInstancesResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetKeyPair' => [ 'name' => 'GetKeyPair', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetKeyPairRequest', ], 'output' => [ 'shape' => 'GetKeyPairResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetKeyPairs' => [ 'name' => 'GetKeyPairs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetKeyPairsRequest', ], 'output' => [ 'shape' => 'GetKeyPairsResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetLoadBalancer' => [ 'name' => 'GetLoadBalancer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetLoadBalancerRequest', ], 'output' => [ 'shape' => 'GetLoadBalancerResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetLoadBalancerMetricData' => [ 'name' => 'GetLoadBalancerMetricData', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetLoadBalancerMetricDataRequest', ], 'output' => [ 'shape' => 'GetLoadBalancerMetricDataResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetLoadBalancerTlsCertificates' => [ 'name' => 'GetLoadBalancerTlsCertificates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetLoadBalancerTlsCertificatesRequest', ], 'output' => [ 'shape' => 'GetLoadBalancerTlsCertificatesResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetLoadBalancers' => [ 'name' => 'GetLoadBalancers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetLoadBalancersRequest', ], 'output' => [ 'shape' => 'GetLoadBalancersResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetOperation' => [ 'name' => 'GetOperation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetOperationRequest', ], 'output' => [ 'shape' => 'GetOperationResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetOperations' => [ 'name' => 'GetOperations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetOperationsRequest', ], 'output' => [ 'shape' => 'GetOperationsResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetOperationsForResource' => [ 'name' => 'GetOperationsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetOperationsForResourceRequest', ], 'output' => [ 'shape' => 'GetOperationsForResourceResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetRegions' => [ 'name' => 'GetRegions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRegionsRequest', ], 'output' => [ 'shape' => 'GetRegionsResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetRelationalDatabase' => [ 'name' => 'GetRelationalDatabase', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRelationalDatabaseRequest', ], 'output' => [ 'shape' => 'GetRelationalDatabaseResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetRelationalDatabaseBlueprints' => [ 'name' => 'GetRelationalDatabaseBlueprints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRelationalDatabaseBlueprintsRequest', ], 'output' => [ 'shape' => 'GetRelationalDatabaseBlueprintsResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetRelationalDatabaseBundles' => [ 'name' => 'GetRelationalDatabaseBundles', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRelationalDatabaseBundlesRequest', ], 'output' => [ 'shape' => 'GetRelationalDatabaseBundlesResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetRelationalDatabaseEvents' => [ 'name' => 'GetRelationalDatabaseEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRelationalDatabaseEventsRequest', ], 'output' => [ 'shape' => 'GetRelationalDatabaseEventsResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetRelationalDatabaseLogEvents' => [ 'name' => 'GetRelationalDatabaseLogEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRelationalDatabaseLogEventsRequest', ], 'output' => [ 'shape' => 'GetRelationalDatabaseLogEventsResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetRelationalDatabaseLogStreams' => [ 'name' => 'GetRelationalDatabaseLogStreams', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRelationalDatabaseLogStreamsRequest', ], 'output' => [ 'shape' => 'GetRelationalDatabaseLogStreamsResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetRelationalDatabaseMasterUserPassword' => [ 'name' => 'GetRelationalDatabaseMasterUserPassword', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRelationalDatabaseMasterUserPasswordRequest', ], 'output' => [ 'shape' => 'GetRelationalDatabaseMasterUserPasswordResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetRelationalDatabaseMetricData' => [ 'name' => 'GetRelationalDatabaseMetricData', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRelationalDatabaseMetricDataRequest', ], 'output' => [ 'shape' => 'GetRelationalDatabaseMetricDataResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetRelationalDatabaseParameters' => [ 'name' => 'GetRelationalDatabaseParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRelationalDatabaseParametersRequest', ], 'output' => [ 'shape' => 'GetRelationalDatabaseParametersResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetRelationalDatabaseSnapshot' => [ 'name' => 'GetRelationalDatabaseSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRelationalDatabaseSnapshotRequest', ], 'output' => [ 'shape' => 'GetRelationalDatabaseSnapshotResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetRelationalDatabaseSnapshots' => [ 'name' => 'GetRelationalDatabaseSnapshots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRelationalDatabaseSnapshotsRequest', ], 'output' => [ 'shape' => 'GetRelationalDatabaseSnapshotsResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetRelationalDatabases' => [ 'name' => 'GetRelationalDatabases', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRelationalDatabasesRequest', ], 'output' => [ 'shape' => 'GetRelationalDatabasesResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetStaticIp' => [ 'name' => 'GetStaticIp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetStaticIpRequest', ], 'output' => [ 'shape' => 'GetStaticIpResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'GetStaticIps' => [ 'name' => 'GetStaticIps', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetStaticIpsRequest', ], 'output' => [ 'shape' => 'GetStaticIpsResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'ImportKeyPair' => [ 'name' => 'ImportKeyPair', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportKeyPairRequest', ], 'output' => [ 'shape' => 'ImportKeyPairResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'IsVpcPeered' => [ 'name' => 'IsVpcPeered', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'IsVpcPeeredRequest', ], 'output' => [ 'shape' => 'IsVpcPeeredResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'OpenInstancePublicPorts' => [ 'name' => 'OpenInstancePublicPorts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'OpenInstancePublicPortsRequest', ], 'output' => [ 'shape' => 'OpenInstancePublicPortsResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'PeerVpc' => [ 'name' => 'PeerVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PeerVpcRequest', ], 'output' => [ 'shape' => 'PeerVpcResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'PutInstancePublicPorts' => [ 'name' => 'PutInstancePublicPorts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutInstancePublicPortsRequest', ], 'output' => [ 'shape' => 'PutInstancePublicPortsResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'RebootInstance' => [ 'name' => 'RebootInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RebootInstanceRequest', ], 'output' => [ 'shape' => 'RebootInstanceResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'RebootRelationalDatabase' => [ 'name' => 'RebootRelationalDatabase', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RebootRelationalDatabaseRequest', ], 'output' => [ 'shape' => 'RebootRelationalDatabaseResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'ReleaseStaticIp' => [ 'name' => 'ReleaseStaticIp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReleaseStaticIpRequest', ], 'output' => [ 'shape' => 'ReleaseStaticIpResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'StartInstance' => [ 'name' => 'StartInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartInstanceRequest', ], 'output' => [ 'shape' => 'StartInstanceResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'StartRelationalDatabase' => [ 'name' => 'StartRelationalDatabase', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartRelationalDatabaseRequest', ], 'output' => [ 'shape' => 'StartRelationalDatabaseResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'StopInstance' => [ 'name' => 'StopInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopInstanceRequest', ], 'output' => [ 'shape' => 'StopInstanceResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'StopRelationalDatabase' => [ 'name' => 'StopRelationalDatabase', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopRelationalDatabaseRequest', ], 'output' => [ 'shape' => 'StopRelationalDatabaseResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'UnpeerVpc' => [ 'name' => 'UnpeerVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnpeerVpcRequest', ], 'output' => [ 'shape' => 'UnpeerVpcResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'UpdateDomainEntry' => [ 'name' => 'UpdateDomainEntry', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateDomainEntryRequest', ], 'output' => [ 'shape' => 'UpdateDomainEntryResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'UpdateLoadBalancerAttribute' => [ 'name' => 'UpdateLoadBalancerAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateLoadBalancerAttributeRequest', ], 'output' => [ 'shape' => 'UpdateLoadBalancerAttributeResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'UpdateRelationalDatabase' => [ 'name' => 'UpdateRelationalDatabase', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRelationalDatabaseRequest', ], 'output' => [ 'shape' => 'UpdateRelationalDatabaseResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], 'UpdateRelationalDatabaseParameters' => [ 'name' => 'UpdateRelationalDatabaseParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRelationalDatabaseParametersRequest', ], 'output' => [ 'shape' => 'UpdateRelationalDatabaseParametersResult', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'OperationFailureException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountSetupInProgressException', ], [ 'shape' => 'UnauthenticatedException', ], ], ], ], 'shapes' => [ 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'code' => [ 'shape' => 'string', ], 'docs' => [ 'shape' => 'string', ], 'message' => [ 'shape' => 'string', ], 'tip' => [ 'shape' => 'string', ], ], 'exception' => true, ], 'AccessDirection' => [ 'type' => 'string', 'enum' => [ 'inbound', 'outbound', ], ], 'AccountSetupInProgressException' => [ 'type' => 'structure', 'members' => [ 'code' => [ 'shape' => 'string', ], 'docs' => [ 'shape' => 'string', ], 'message' => [ 'shape' => 'string', ], 'tip' => [ 'shape' => 'string', ], ], 'exception' => true, ], 'AllocateStaticIpRequest' => [ 'type' => 'structure', 'required' => [ 'staticIpName', ], 'members' => [ 'staticIpName' => [ 'shape' => 'ResourceName', ], ], ], 'AllocateStaticIpResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'AttachDiskRequest' => [ 'type' => 'structure', 'required' => [ 'diskName', 'instanceName', 'diskPath', ], 'members' => [ 'diskName' => [ 'shape' => 'ResourceName', ], 'instanceName' => [ 'shape' => 'ResourceName', ], 'diskPath' => [ 'shape' => 'NonEmptyString', ], ], ], 'AttachDiskResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'AttachInstancesToLoadBalancerRequest' => [ 'type' => 'structure', 'required' => [ 'loadBalancerName', 'instanceNames', ], 'members' => [ 'loadBalancerName' => [ 'shape' => 'ResourceName', ], 'instanceNames' => [ 'shape' => 'ResourceNameList', ], ], ], 'AttachInstancesToLoadBalancerResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'AttachLoadBalancerTlsCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'loadBalancerName', 'certificateName', ], 'members' => [ 'loadBalancerName' => [ 'shape' => 'ResourceName', ], 'certificateName' => [ 'shape' => 'ResourceName', ], ], ], 'AttachLoadBalancerTlsCertificateResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'AttachStaticIpRequest' => [ 'type' => 'structure', 'required' => [ 'staticIpName', 'instanceName', ], 'members' => [ 'staticIpName' => [ 'shape' => 'ResourceName', ], 'instanceName' => [ 'shape' => 'ResourceName', ], ], ], 'AttachStaticIpResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'AttachedDiskMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'ResourceName', ], 'value' => [ 'shape' => 'DiskMapList', ], ], 'AvailabilityZone' => [ 'type' => 'structure', 'members' => [ 'zoneName' => [ 'shape' => 'NonEmptyString', ], 'state' => [ 'shape' => 'NonEmptyString', ], ], ], 'AvailabilityZoneList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZone', ], ], 'Base64' => [ 'type' => 'string', ], 'Blueprint' => [ 'type' => 'structure', 'members' => [ 'blueprintId' => [ 'shape' => 'NonEmptyString', ], 'name' => [ 'shape' => 'ResourceName', ], 'group' => [ 'shape' => 'NonEmptyString', ], 'type' => [ 'shape' => 'BlueprintType', ], 'description' => [ 'shape' => 'string', ], 'isActive' => [ 'shape' => 'boolean', ], 'minPower' => [ 'shape' => 'integer', ], 'version' => [ 'shape' => 'string', ], 'versionCode' => [ 'shape' => 'string', ], 'productUrl' => [ 'shape' => 'string', ], 'licenseUrl' => [ 'shape' => 'string', ], 'platform' => [ 'shape' => 'InstancePlatform', ], ], ], 'BlueprintList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Blueprint', ], ], 'BlueprintType' => [ 'type' => 'string', 'enum' => [ 'os', 'app', ], ], 'Bundle' => [ 'type' => 'structure', 'members' => [ 'price' => [ 'shape' => 'float', ], 'cpuCount' => [ 'shape' => 'integer', ], 'diskSizeInGb' => [ 'shape' => 'integer', ], 'bundleId' => [ 'shape' => 'NonEmptyString', ], 'instanceType' => [ 'shape' => 'string', ], 'isActive' => [ 'shape' => 'boolean', ], 'name' => [ 'shape' => 'string', ], 'power' => [ 'shape' => 'integer', ], 'ramSizeInGb' => [ 'shape' => 'float', ], 'transferPerMonthInGb' => [ 'shape' => 'integer', ], 'supportedPlatforms' => [ 'shape' => 'InstancePlatformList', ], ], ], 'BundleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Bundle', ], ], 'CloseInstancePublicPortsRequest' => [ 'type' => 'structure', 'required' => [ 'portInfo', 'instanceName', ], 'members' => [ 'portInfo' => [ 'shape' => 'PortInfo', ], 'instanceName' => [ 'shape' => 'ResourceName', ], ], ], 'CloseInstancePublicPortsResult' => [ 'type' => 'structure', 'members' => [ 'operation' => [ 'shape' => 'Operation', ], ], ], 'CloudFormationStackRecord' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ResourceName', ], 'arn' => [ 'shape' => 'NonEmptyString', ], 'createdAt' => [ 'shape' => 'IsoDate', ], 'location' => [ 'shape' => 'ResourceLocation', ], 'resourceType' => [ 'shape' => 'ResourceType', ], 'state' => [ 'shape' => 'RecordState', ], 'sourceInfo' => [ 'shape' => 'CloudFormationStackRecordSourceInfoList', ], 'destinationInfo' => [ 'shape' => 'DestinationInfo', ], ], ], 'CloudFormationStackRecordList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CloudFormationStackRecord', ], ], 'CloudFormationStackRecordSourceInfo' => [ 'type' => 'structure', 'members' => [ 'resourceType' => [ 'shape' => 'CloudFormationStackRecordSourceType', ], 'name' => [ 'shape' => 'NonEmptyString', ], 'arn' => [ 'shape' => 'NonEmptyString', ], ], ], 'CloudFormationStackRecordSourceInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CloudFormationStackRecordSourceInfo', ], ], 'CloudFormationStackRecordSourceType' => [ 'type' => 'string', 'enum' => [ 'ExportSnapshotRecord', ], ], 'CopySnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'sourceSnapshotName', 'targetSnapshotName', 'sourceRegion', ], 'members' => [ 'sourceSnapshotName' => [ 'shape' => 'ResourceName', ], 'targetSnapshotName' => [ 'shape' => 'ResourceName', ], 'sourceRegion' => [ 'shape' => 'RegionName', ], ], ], 'CopySnapshotResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'CreateCloudFormationStackRequest' => [ 'type' => 'structure', 'required' => [ 'instances', ], 'members' => [ 'instances' => [ 'shape' => 'InstanceEntryList', ], ], ], 'CreateCloudFormationStackResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'CreateDiskFromSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'diskName', 'diskSnapshotName', 'availabilityZone', 'sizeInGb', ], 'members' => [ 'diskName' => [ 'shape' => 'ResourceName', ], 'diskSnapshotName' => [ 'shape' => 'ResourceName', ], 'availabilityZone' => [ 'shape' => 'NonEmptyString', ], 'sizeInGb' => [ 'shape' => 'integer', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDiskFromSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'CreateDiskRequest' => [ 'type' => 'structure', 'required' => [ 'diskName', 'availabilityZone', 'sizeInGb', ], 'members' => [ 'diskName' => [ 'shape' => 'ResourceName', ], 'availabilityZone' => [ 'shape' => 'NonEmptyString', ], 'sizeInGb' => [ 'shape' => 'integer', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDiskResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'CreateDiskSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'diskSnapshotName', ], 'members' => [ 'diskName' => [ 'shape' => 'ResourceName', ], 'diskSnapshotName' => [ 'shape' => 'ResourceName', ], 'instanceName' => [ 'shape' => 'ResourceName', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDiskSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'CreateDomainEntryRequest' => [ 'type' => 'structure', 'required' => [ 'domainName', 'domainEntry', ], 'members' => [ 'domainName' => [ 'shape' => 'DomainName', ], 'domainEntry' => [ 'shape' => 'DomainEntry', ], ], ], 'CreateDomainEntryResult' => [ 'type' => 'structure', 'members' => [ 'operation' => [ 'shape' => 'Operation', ], ], ], 'CreateDomainRequest' => [ 'type' => 'structure', 'required' => [ 'domainName', ], 'members' => [ 'domainName' => [ 'shape' => 'DomainName', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDomainResult' => [ 'type' => 'structure', 'members' => [ 'operation' => [ 'shape' => 'Operation', ], ], ], 'CreateInstanceSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'instanceSnapshotName', 'instanceName', ], 'members' => [ 'instanceSnapshotName' => [ 'shape' => 'ResourceName', ], 'instanceName' => [ 'shape' => 'ResourceName', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateInstanceSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'CreateInstancesFromSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'instanceNames', 'availabilityZone', 'instanceSnapshotName', 'bundleId', ], 'members' => [ 'instanceNames' => [ 'shape' => 'StringList', ], 'attachedDiskMapping' => [ 'shape' => 'AttachedDiskMap', ], 'availabilityZone' => [ 'shape' => 'string', ], 'instanceSnapshotName' => [ 'shape' => 'ResourceName', ], 'bundleId' => [ 'shape' => 'NonEmptyString', ], 'userData' => [ 'shape' => 'string', ], 'keyPairName' => [ 'shape' => 'ResourceName', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateInstancesFromSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'CreateInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'instanceNames', 'availabilityZone', 'blueprintId', 'bundleId', ], 'members' => [ 'instanceNames' => [ 'shape' => 'StringList', ], 'availabilityZone' => [ 'shape' => 'string', ], 'customImageName' => [ 'shape' => 'ResourceName', 'deprecated' => true, ], 'blueprintId' => [ 'shape' => 'NonEmptyString', ], 'bundleId' => [ 'shape' => 'NonEmptyString', ], 'userData' => [ 'shape' => 'string', ], 'keyPairName' => [ 'shape' => 'ResourceName', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateInstancesResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'CreateKeyPairRequest' => [ 'type' => 'structure', 'required' => [ 'keyPairName', ], 'members' => [ 'keyPairName' => [ 'shape' => 'ResourceName', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateKeyPairResult' => [ 'type' => 'structure', 'members' => [ 'keyPair' => [ 'shape' => 'KeyPair', ], 'publicKeyBase64' => [ 'shape' => 'Base64', ], 'privateKeyBase64' => [ 'shape' => 'Base64', ], 'operation' => [ 'shape' => 'Operation', ], ], ], 'CreateLoadBalancerRequest' => [ 'type' => 'structure', 'required' => [ 'loadBalancerName', 'instancePort', ], 'members' => [ 'loadBalancerName' => [ 'shape' => 'ResourceName', ], 'instancePort' => [ 'shape' => 'Port', ], 'healthCheckPath' => [ 'shape' => 'string', ], 'certificateName' => [ 'shape' => 'ResourceName', ], 'certificateDomainName' => [ 'shape' => 'DomainName', ], 'certificateAlternativeNames' => [ 'shape' => 'DomainNameList', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateLoadBalancerResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'CreateLoadBalancerTlsCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'loadBalancerName', 'certificateName', 'certificateDomainName', ], 'members' => [ 'loadBalancerName' => [ 'shape' => 'ResourceName', ], 'certificateName' => [ 'shape' => 'ResourceName', ], 'certificateDomainName' => [ 'shape' => 'DomainName', ], 'certificateAlternativeNames' => [ 'shape' => 'DomainNameList', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateLoadBalancerTlsCertificateResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'CreateRelationalDatabaseFromSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'relationalDatabaseName', ], 'members' => [ 'relationalDatabaseName' => [ 'shape' => 'ResourceName', ], 'availabilityZone' => [ 'shape' => 'string', ], 'publiclyAccessible' => [ 'shape' => 'boolean', ], 'relationalDatabaseSnapshotName' => [ 'shape' => 'ResourceName', ], 'relationalDatabaseBundleId' => [ 'shape' => 'string', ], 'sourceRelationalDatabaseName' => [ 'shape' => 'ResourceName', ], 'restoreTime' => [ 'shape' => 'IsoDate', ], 'useLatestRestorableTime' => [ 'shape' => 'boolean', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateRelationalDatabaseFromSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'CreateRelationalDatabaseRequest' => [ 'type' => 'structure', 'required' => [ 'relationalDatabaseName', 'relationalDatabaseBlueprintId', 'relationalDatabaseBundleId', 'masterDatabaseName', 'masterUsername', ], 'members' => [ 'relationalDatabaseName' => [ 'shape' => 'ResourceName', ], 'availabilityZone' => [ 'shape' => 'string', ], 'relationalDatabaseBlueprintId' => [ 'shape' => 'string', ], 'relationalDatabaseBundleId' => [ 'shape' => 'string', ], 'masterDatabaseName' => [ 'shape' => 'string', ], 'masterUsername' => [ 'shape' => 'string', ], 'masterUserPassword' => [ 'shape' => 'SensitiveString', ], 'preferredBackupWindow' => [ 'shape' => 'string', ], 'preferredMaintenanceWindow' => [ 'shape' => 'string', ], 'publiclyAccessible' => [ 'shape' => 'boolean', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateRelationalDatabaseResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'CreateRelationalDatabaseSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'relationalDatabaseName', 'relationalDatabaseSnapshotName', ], 'members' => [ 'relationalDatabaseName' => [ 'shape' => 'ResourceName', ], 'relationalDatabaseSnapshotName' => [ 'shape' => 'ResourceName', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateRelationalDatabaseSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'DeleteDiskRequest' => [ 'type' => 'structure', 'required' => [ 'diskName', ], 'members' => [ 'diskName' => [ 'shape' => 'ResourceName', ], ], ], 'DeleteDiskResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'DeleteDiskSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'diskSnapshotName', ], 'members' => [ 'diskSnapshotName' => [ 'shape' => 'ResourceName', ], ], ], 'DeleteDiskSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'DeleteDomainEntryRequest' => [ 'type' => 'structure', 'required' => [ 'domainName', 'domainEntry', ], 'members' => [ 'domainName' => [ 'shape' => 'DomainName', ], 'domainEntry' => [ 'shape' => 'DomainEntry', ], ], ], 'DeleteDomainEntryResult' => [ 'type' => 'structure', 'members' => [ 'operation' => [ 'shape' => 'Operation', ], ], ], 'DeleteDomainRequest' => [ 'type' => 'structure', 'required' => [ 'domainName', ], 'members' => [ 'domainName' => [ 'shape' => 'DomainName', ], ], ], 'DeleteDomainResult' => [ 'type' => 'structure', 'members' => [ 'operation' => [ 'shape' => 'Operation', ], ], ], 'DeleteInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'instanceName', ], 'members' => [ 'instanceName' => [ 'shape' => 'ResourceName', ], ], ], 'DeleteInstanceResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'DeleteInstanceSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'instanceSnapshotName', ], 'members' => [ 'instanceSnapshotName' => [ 'shape' => 'ResourceName', ], ], ], 'DeleteInstanceSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'DeleteKeyPairRequest' => [ 'type' => 'structure', 'required' => [ 'keyPairName', ], 'members' => [ 'keyPairName' => [ 'shape' => 'ResourceName', ], ], ], 'DeleteKeyPairResult' => [ 'type' => 'structure', 'members' => [ 'operation' => [ 'shape' => 'Operation', ], ], ], 'DeleteKnownHostKeysRequest' => [ 'type' => 'structure', 'required' => [ 'instanceName', ], 'members' => [ 'instanceName' => [ 'shape' => 'ResourceName', ], ], ], 'DeleteKnownHostKeysResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'DeleteLoadBalancerRequest' => [ 'type' => 'structure', 'required' => [ 'loadBalancerName', ], 'members' => [ 'loadBalancerName' => [ 'shape' => 'ResourceName', ], ], ], 'DeleteLoadBalancerResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'DeleteLoadBalancerTlsCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'loadBalancerName', 'certificateName', ], 'members' => [ 'loadBalancerName' => [ 'shape' => 'ResourceName', ], 'certificateName' => [ 'shape' => 'ResourceName', ], 'force' => [ 'shape' => 'boolean', ], ], ], 'DeleteLoadBalancerTlsCertificateResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'DeleteRelationalDatabaseRequest' => [ 'type' => 'structure', 'required' => [ 'relationalDatabaseName', ], 'members' => [ 'relationalDatabaseName' => [ 'shape' => 'ResourceName', ], 'skipFinalSnapshot' => [ 'shape' => 'boolean', ], 'finalRelationalDatabaseSnapshotName' => [ 'shape' => 'ResourceName', ], ], ], 'DeleteRelationalDatabaseResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'DeleteRelationalDatabaseSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'relationalDatabaseSnapshotName', ], 'members' => [ 'relationalDatabaseSnapshotName' => [ 'shape' => 'ResourceName', ], ], ], 'DeleteRelationalDatabaseSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'DestinationInfo' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'NonEmptyString', ], 'service' => [ 'shape' => 'NonEmptyString', ], ], ], 'DetachDiskRequest' => [ 'type' => 'structure', 'required' => [ 'diskName', ], 'members' => [ 'diskName' => [ 'shape' => 'ResourceName', ], ], ], 'DetachDiskResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'DetachInstancesFromLoadBalancerRequest' => [ 'type' => 'structure', 'required' => [ 'loadBalancerName', 'instanceNames', ], 'members' => [ 'loadBalancerName' => [ 'shape' => 'ResourceName', ], 'instanceNames' => [ 'shape' => 'ResourceNameList', ], ], ], 'DetachInstancesFromLoadBalancerResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'DetachStaticIpRequest' => [ 'type' => 'structure', 'required' => [ 'staticIpName', ], 'members' => [ 'staticIpName' => [ 'shape' => 'ResourceName', ], ], ], 'DetachStaticIpResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'Disk' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ResourceName', ], 'arn' => [ 'shape' => 'NonEmptyString', ], 'supportCode' => [ 'shape' => 'string', ], 'createdAt' => [ 'shape' => 'IsoDate', ], 'location' => [ 'shape' => 'ResourceLocation', ], 'resourceType' => [ 'shape' => 'ResourceType', ], 'tags' => [ 'shape' => 'TagList', ], 'sizeInGb' => [ 'shape' => 'integer', ], 'isSystemDisk' => [ 'shape' => 'boolean', ], 'iops' => [ 'shape' => 'integer', ], 'path' => [ 'shape' => 'string', ], 'state' => [ 'shape' => 'DiskState', ], 'attachedTo' => [ 'shape' => 'ResourceName', ], 'isAttached' => [ 'shape' => 'boolean', ], 'attachmentState' => [ 'shape' => 'string', 'deprecated' => true, ], 'gbInUse' => [ 'shape' => 'integer', 'deprecated' => true, ], ], ], 'DiskInfo' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'string', ], 'path' => [ 'shape' => 'NonEmptyString', ], 'sizeInGb' => [ 'shape' => 'integer', ], 'isSystemDisk' => [ 'shape' => 'boolean', ], ], ], 'DiskInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DiskInfo', ], ], 'DiskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Disk', ], ], 'DiskMap' => [ 'type' => 'structure', 'members' => [ 'originalDiskPath' => [ 'shape' => 'NonEmptyString', ], 'newDiskName' => [ 'shape' => 'ResourceName', ], ], ], 'DiskMapList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DiskMap', ], ], 'DiskSnapshot' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ResourceName', ], 'arn' => [ 'shape' => 'NonEmptyString', ], 'supportCode' => [ 'shape' => 'string', ], 'createdAt' => [ 'shape' => 'IsoDate', ], 'location' => [ 'shape' => 'ResourceLocation', ], 'resourceType' => [ 'shape' => 'ResourceType', ], 'tags' => [ 'shape' => 'TagList', ], 'sizeInGb' => [ 'shape' => 'integer', ], 'state' => [ 'shape' => 'DiskSnapshotState', ], 'progress' => [ 'shape' => 'string', ], 'fromDiskName' => [ 'shape' => 'ResourceName', ], 'fromDiskArn' => [ 'shape' => 'NonEmptyString', ], 'fromInstanceName' => [ 'shape' => 'ResourceName', ], 'fromInstanceArn' => [ 'shape' => 'NonEmptyString', ], ], ], 'DiskSnapshotInfo' => [ 'type' => 'structure', 'members' => [ 'sizeInGb' => [ 'shape' => 'integer', ], ], ], 'DiskSnapshotList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DiskSnapshot', ], ], 'DiskSnapshotState' => [ 'type' => 'string', 'enum' => [ 'pending', 'completed', 'error', 'unknown', ], ], 'DiskState' => [ 'type' => 'string', 'enum' => [ 'pending', 'error', 'available', 'in-use', 'unknown', ], ], 'Domain' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ResourceName', ], 'arn' => [ 'shape' => 'NonEmptyString', ], 'supportCode' => [ 'shape' => 'string', ], 'createdAt' => [ 'shape' => 'IsoDate', ], 'location' => [ 'shape' => 'ResourceLocation', ], 'resourceType' => [ 'shape' => 'ResourceType', ], 'tags' => [ 'shape' => 'TagList', ], 'domainEntries' => [ 'shape' => 'DomainEntryList', ], ], ], 'DomainEntry' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'NonEmptyString', ], 'name' => [ 'shape' => 'DomainName', ], 'target' => [ 'shape' => 'string', ], 'isAlias' => [ 'shape' => 'boolean', ], 'type' => [ 'shape' => 'DomainEntryType', ], 'options' => [ 'shape' => 'DomainEntryOptions', 'deprecated' => true, ], ], ], 'DomainEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DomainEntry', ], ], 'DomainEntryOptions' => [ 'type' => 'map', 'key' => [ 'shape' => 'DomainEntryOptionsKeys', ], 'value' => [ 'shape' => 'string', ], ], 'DomainEntryOptionsKeys' => [ 'type' => 'string', ], 'DomainEntryType' => [ 'type' => 'string', ], 'DomainList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Domain', ], ], 'DomainName' => [ 'type' => 'string', ], 'DomainNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DomainName', ], ], 'DownloadDefaultKeyPairRequest' => [ 'type' => 'structure', 'members' => [], ], 'DownloadDefaultKeyPairResult' => [ 'type' => 'structure', 'members' => [ 'publicKeyBase64' => [ 'shape' => 'Base64', ], 'privateKeyBase64' => [ 'shape' => 'Base64', ], ], ], 'ExportSnapshotRecord' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ResourceName', ], 'arn' => [ 'shape' => 'NonEmptyString', ], 'createdAt' => [ 'shape' => 'IsoDate', ], 'location' => [ 'shape' => 'ResourceLocation', ], 'resourceType' => [ 'shape' => 'ResourceType', ], 'state' => [ 'shape' => 'RecordState', ], 'sourceInfo' => [ 'shape' => 'ExportSnapshotRecordSourceInfo', ], 'destinationInfo' => [ 'shape' => 'DestinationInfo', ], ], ], 'ExportSnapshotRecordList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExportSnapshotRecord', ], ], 'ExportSnapshotRecordSourceInfo' => [ 'type' => 'structure', 'members' => [ 'resourceType' => [ 'shape' => 'ExportSnapshotRecordSourceType', ], 'createdAt' => [ 'shape' => 'IsoDate', ], 'name' => [ 'shape' => 'NonEmptyString', ], 'arn' => [ 'shape' => 'NonEmptyString', ], 'fromResourceName' => [ 'shape' => 'NonEmptyString', ], 'fromResourceArn' => [ 'shape' => 'NonEmptyString', ], 'instanceSnapshotInfo' => [ 'shape' => 'InstanceSnapshotInfo', ], 'diskSnapshotInfo' => [ 'shape' => 'DiskSnapshotInfo', ], ], ], 'ExportSnapshotRecordSourceType' => [ 'type' => 'string', 'enum' => [ 'InstanceSnapshot', 'DiskSnapshot', ], ], 'ExportSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'sourceSnapshotName', ], 'members' => [ 'sourceSnapshotName' => [ 'shape' => 'ResourceName', ], ], ], 'ExportSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'GetActiveNamesRequest' => [ 'type' => 'structure', 'members' => [ 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetActiveNamesResult' => [ 'type' => 'structure', 'members' => [ 'activeNames' => [ 'shape' => 'StringList', ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'GetBlueprintsRequest' => [ 'type' => 'structure', 'members' => [ 'includeInactive' => [ 'shape' => 'boolean', ], 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetBlueprintsResult' => [ 'type' => 'structure', 'members' => [ 'blueprints' => [ 'shape' => 'BlueprintList', ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'GetBundlesRequest' => [ 'type' => 'structure', 'members' => [ 'includeInactive' => [ 'shape' => 'boolean', ], 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetBundlesResult' => [ 'type' => 'structure', 'members' => [ 'bundles' => [ 'shape' => 'BundleList', ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'GetCloudFormationStackRecordsRequest' => [ 'type' => 'structure', 'members' => [ 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetCloudFormationStackRecordsResult' => [ 'type' => 'structure', 'members' => [ 'cloudFormationStackRecords' => [ 'shape' => 'CloudFormationStackRecordList', ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'GetDiskRequest' => [ 'type' => 'structure', 'required' => [ 'diskName', ], 'members' => [ 'diskName' => [ 'shape' => 'ResourceName', ], ], ], 'GetDiskResult' => [ 'type' => 'structure', 'members' => [ 'disk' => [ 'shape' => 'Disk', ], ], ], 'GetDiskSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'diskSnapshotName', ], 'members' => [ 'diskSnapshotName' => [ 'shape' => 'ResourceName', ], ], ], 'GetDiskSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'diskSnapshot' => [ 'shape' => 'DiskSnapshot', ], ], ], 'GetDiskSnapshotsRequest' => [ 'type' => 'structure', 'members' => [ 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetDiskSnapshotsResult' => [ 'type' => 'structure', 'members' => [ 'diskSnapshots' => [ 'shape' => 'DiskSnapshotList', ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'GetDisksRequest' => [ 'type' => 'structure', 'members' => [ 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetDisksResult' => [ 'type' => 'structure', 'members' => [ 'disks' => [ 'shape' => 'DiskList', ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'GetDomainRequest' => [ 'type' => 'structure', 'required' => [ 'domainName', ], 'members' => [ 'domainName' => [ 'shape' => 'DomainName', ], ], ], 'GetDomainResult' => [ 'type' => 'structure', 'members' => [ 'domain' => [ 'shape' => 'Domain', ], ], ], 'GetDomainsRequest' => [ 'type' => 'structure', 'members' => [ 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetDomainsResult' => [ 'type' => 'structure', 'members' => [ 'domains' => [ 'shape' => 'DomainList', ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'GetExportSnapshotRecordsRequest' => [ 'type' => 'structure', 'members' => [ 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetExportSnapshotRecordsResult' => [ 'type' => 'structure', 'members' => [ 'exportSnapshotRecords' => [ 'shape' => 'ExportSnapshotRecordList', ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'GetInstanceAccessDetailsRequest' => [ 'type' => 'structure', 'required' => [ 'instanceName', ], 'members' => [ 'instanceName' => [ 'shape' => 'ResourceName', ], 'protocol' => [ 'shape' => 'InstanceAccessProtocol', ], ], ], 'GetInstanceAccessDetailsResult' => [ 'type' => 'structure', 'members' => [ 'accessDetails' => [ 'shape' => 'InstanceAccessDetails', ], ], ], 'GetInstanceMetricDataRequest' => [ 'type' => 'structure', 'required' => [ 'instanceName', 'metricName', 'period', 'startTime', 'endTime', 'unit', 'statistics', ], 'members' => [ 'instanceName' => [ 'shape' => 'ResourceName', ], 'metricName' => [ 'shape' => 'InstanceMetricName', ], 'period' => [ 'shape' => 'MetricPeriod', ], 'startTime' => [ 'shape' => 'timestamp', ], 'endTime' => [ 'shape' => 'timestamp', ], 'unit' => [ 'shape' => 'MetricUnit', ], 'statistics' => [ 'shape' => 'MetricStatisticList', ], ], ], 'GetInstanceMetricDataResult' => [ 'type' => 'structure', 'members' => [ 'metricName' => [ 'shape' => 'InstanceMetricName', ], 'metricData' => [ 'shape' => 'MetricDatapointList', ], ], ], 'GetInstancePortStatesRequest' => [ 'type' => 'structure', 'required' => [ 'instanceName', ], 'members' => [ 'instanceName' => [ 'shape' => 'ResourceName', ], ], ], 'GetInstancePortStatesResult' => [ 'type' => 'structure', 'members' => [ 'portStates' => [ 'shape' => 'InstancePortStateList', ], ], ], 'GetInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'instanceName', ], 'members' => [ 'instanceName' => [ 'shape' => 'ResourceName', ], ], ], 'GetInstanceResult' => [ 'type' => 'structure', 'members' => [ 'instance' => [ 'shape' => 'Instance', ], ], ], 'GetInstanceSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'instanceSnapshotName', ], 'members' => [ 'instanceSnapshotName' => [ 'shape' => 'ResourceName', ], ], ], 'GetInstanceSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'instanceSnapshot' => [ 'shape' => 'InstanceSnapshot', ], ], ], 'GetInstanceSnapshotsRequest' => [ 'type' => 'structure', 'members' => [ 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetInstanceSnapshotsResult' => [ 'type' => 'structure', 'members' => [ 'instanceSnapshots' => [ 'shape' => 'InstanceSnapshotList', ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'GetInstanceStateRequest' => [ 'type' => 'structure', 'required' => [ 'instanceName', ], 'members' => [ 'instanceName' => [ 'shape' => 'ResourceName', ], ], ], 'GetInstanceStateResult' => [ 'type' => 'structure', 'members' => [ 'state' => [ 'shape' => 'InstanceState', ], ], ], 'GetInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetInstancesResult' => [ 'type' => 'structure', 'members' => [ 'instances' => [ 'shape' => 'InstanceList', ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'GetKeyPairRequest' => [ 'type' => 'structure', 'required' => [ 'keyPairName', ], 'members' => [ 'keyPairName' => [ 'shape' => 'ResourceName', ], ], ], 'GetKeyPairResult' => [ 'type' => 'structure', 'members' => [ 'keyPair' => [ 'shape' => 'KeyPair', ], ], ], 'GetKeyPairsRequest' => [ 'type' => 'structure', 'members' => [ 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetKeyPairsResult' => [ 'type' => 'structure', 'members' => [ 'keyPairs' => [ 'shape' => 'KeyPairList', ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'GetLoadBalancerMetricDataRequest' => [ 'type' => 'structure', 'required' => [ 'loadBalancerName', 'metricName', 'period', 'startTime', 'endTime', 'unit', 'statistics', ], 'members' => [ 'loadBalancerName' => [ 'shape' => 'ResourceName', ], 'metricName' => [ 'shape' => 'LoadBalancerMetricName', ], 'period' => [ 'shape' => 'MetricPeriod', ], 'startTime' => [ 'shape' => 'timestamp', ], 'endTime' => [ 'shape' => 'timestamp', ], 'unit' => [ 'shape' => 'MetricUnit', ], 'statistics' => [ 'shape' => 'MetricStatisticList', ], ], ], 'GetLoadBalancerMetricDataResult' => [ 'type' => 'structure', 'members' => [ 'metricName' => [ 'shape' => 'LoadBalancerMetricName', ], 'metricData' => [ 'shape' => 'MetricDatapointList', ], ], ], 'GetLoadBalancerRequest' => [ 'type' => 'structure', 'required' => [ 'loadBalancerName', ], 'members' => [ 'loadBalancerName' => [ 'shape' => 'ResourceName', ], ], ], 'GetLoadBalancerResult' => [ 'type' => 'structure', 'members' => [ 'loadBalancer' => [ 'shape' => 'LoadBalancer', ], ], ], 'GetLoadBalancerTlsCertificatesRequest' => [ 'type' => 'structure', 'required' => [ 'loadBalancerName', ], 'members' => [ 'loadBalancerName' => [ 'shape' => 'ResourceName', ], ], ], 'GetLoadBalancerTlsCertificatesResult' => [ 'type' => 'structure', 'members' => [ 'tlsCertificates' => [ 'shape' => 'LoadBalancerTlsCertificateList', ], ], ], 'GetLoadBalancersRequest' => [ 'type' => 'structure', 'members' => [ 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetLoadBalancersResult' => [ 'type' => 'structure', 'members' => [ 'loadBalancers' => [ 'shape' => 'LoadBalancerList', ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'GetOperationRequest' => [ 'type' => 'structure', 'required' => [ 'operationId', ], 'members' => [ 'operationId' => [ 'shape' => 'NonEmptyString', ], ], ], 'GetOperationResult' => [ 'type' => 'structure', 'members' => [ 'operation' => [ 'shape' => 'Operation', ], ], ], 'GetOperationsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceName', ], 'members' => [ 'resourceName' => [ 'shape' => 'ResourceName', ], 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetOperationsForResourceResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], 'nextPageCount' => [ 'shape' => 'string', 'deprecated' => true, ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'GetOperationsRequest' => [ 'type' => 'structure', 'members' => [ 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetOperationsResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'GetRegionsRequest' => [ 'type' => 'structure', 'members' => [ 'includeAvailabilityZones' => [ 'shape' => 'boolean', ], 'includeRelationalDatabaseAvailabilityZones' => [ 'shape' => 'boolean', ], ], ], 'GetRegionsResult' => [ 'type' => 'structure', 'members' => [ 'regions' => [ 'shape' => 'RegionList', ], ], ], 'GetRelationalDatabaseBlueprintsRequest' => [ 'type' => 'structure', 'members' => [ 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetRelationalDatabaseBlueprintsResult' => [ 'type' => 'structure', 'members' => [ 'blueprints' => [ 'shape' => 'RelationalDatabaseBlueprintList', ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'GetRelationalDatabaseBundlesRequest' => [ 'type' => 'structure', 'members' => [ 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetRelationalDatabaseBundlesResult' => [ 'type' => 'structure', 'members' => [ 'bundles' => [ 'shape' => 'RelationalDatabaseBundleList', ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'GetRelationalDatabaseEventsRequest' => [ 'type' => 'structure', 'required' => [ 'relationalDatabaseName', ], 'members' => [ 'relationalDatabaseName' => [ 'shape' => 'ResourceName', ], 'durationInMinutes' => [ 'shape' => 'integer', ], 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetRelationalDatabaseEventsResult' => [ 'type' => 'structure', 'members' => [ 'relationalDatabaseEvents' => [ 'shape' => 'RelationalDatabaseEventList', ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'GetRelationalDatabaseLogEventsRequest' => [ 'type' => 'structure', 'required' => [ 'relationalDatabaseName', 'logStreamName', ], 'members' => [ 'relationalDatabaseName' => [ 'shape' => 'ResourceName', ], 'logStreamName' => [ 'shape' => 'string', ], 'startTime' => [ 'shape' => 'IsoDate', ], 'endTime' => [ 'shape' => 'IsoDate', ], 'startFromHead' => [ 'shape' => 'boolean', ], 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetRelationalDatabaseLogEventsResult' => [ 'type' => 'structure', 'members' => [ 'resourceLogEvents' => [ 'shape' => 'LogEventList', ], 'nextBackwardToken' => [ 'shape' => 'string', ], 'nextForwardToken' => [ 'shape' => 'string', ], ], ], 'GetRelationalDatabaseLogStreamsRequest' => [ 'type' => 'structure', 'required' => [ 'relationalDatabaseName', ], 'members' => [ 'relationalDatabaseName' => [ 'shape' => 'ResourceName', ], ], ], 'GetRelationalDatabaseLogStreamsResult' => [ 'type' => 'structure', 'members' => [ 'logStreams' => [ 'shape' => 'StringList', ], ], ], 'GetRelationalDatabaseMasterUserPasswordRequest' => [ 'type' => 'structure', 'required' => [ 'relationalDatabaseName', ], 'members' => [ 'relationalDatabaseName' => [ 'shape' => 'ResourceName', ], 'passwordVersion' => [ 'shape' => 'RelationalDatabasePasswordVersion', ], ], ], 'GetRelationalDatabaseMasterUserPasswordResult' => [ 'type' => 'structure', 'members' => [ 'masterUserPassword' => [ 'shape' => 'SensitiveString', ], 'createdAt' => [ 'shape' => 'IsoDate', ], ], ], 'GetRelationalDatabaseMetricDataRequest' => [ 'type' => 'structure', 'required' => [ 'relationalDatabaseName', 'metricName', 'period', 'startTime', 'endTime', 'unit', 'statistics', ], 'members' => [ 'relationalDatabaseName' => [ 'shape' => 'ResourceName', ], 'metricName' => [ 'shape' => 'RelationalDatabaseMetricName', ], 'period' => [ 'shape' => 'MetricPeriod', ], 'startTime' => [ 'shape' => 'IsoDate', ], 'endTime' => [ 'shape' => 'IsoDate', ], 'unit' => [ 'shape' => 'MetricUnit', ], 'statistics' => [ 'shape' => 'MetricStatisticList', ], ], ], 'GetRelationalDatabaseMetricDataResult' => [ 'type' => 'structure', 'members' => [ 'metricName' => [ 'shape' => 'RelationalDatabaseMetricName', ], 'metricData' => [ 'shape' => 'MetricDatapointList', ], ], ], 'GetRelationalDatabaseParametersRequest' => [ 'type' => 'structure', 'required' => [ 'relationalDatabaseName', ], 'members' => [ 'relationalDatabaseName' => [ 'shape' => 'ResourceName', ], 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetRelationalDatabaseParametersResult' => [ 'type' => 'structure', 'members' => [ 'parameters' => [ 'shape' => 'RelationalDatabaseParameterList', ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'GetRelationalDatabaseRequest' => [ 'type' => 'structure', 'required' => [ 'relationalDatabaseName', ], 'members' => [ 'relationalDatabaseName' => [ 'shape' => 'ResourceName', ], ], ], 'GetRelationalDatabaseResult' => [ 'type' => 'structure', 'members' => [ 'relationalDatabase' => [ 'shape' => 'RelationalDatabase', ], ], ], 'GetRelationalDatabaseSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'relationalDatabaseSnapshotName', ], 'members' => [ 'relationalDatabaseSnapshotName' => [ 'shape' => 'ResourceName', ], ], ], 'GetRelationalDatabaseSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'relationalDatabaseSnapshot' => [ 'shape' => 'RelationalDatabaseSnapshot', ], ], ], 'GetRelationalDatabaseSnapshotsRequest' => [ 'type' => 'structure', 'members' => [ 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetRelationalDatabaseSnapshotsResult' => [ 'type' => 'structure', 'members' => [ 'relationalDatabaseSnapshots' => [ 'shape' => 'RelationalDatabaseSnapshotList', ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'GetRelationalDatabasesRequest' => [ 'type' => 'structure', 'members' => [ 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetRelationalDatabasesResult' => [ 'type' => 'structure', 'members' => [ 'relationalDatabases' => [ 'shape' => 'RelationalDatabaseList', ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'GetStaticIpRequest' => [ 'type' => 'structure', 'required' => [ 'staticIpName', ], 'members' => [ 'staticIpName' => [ 'shape' => 'ResourceName', ], ], ], 'GetStaticIpResult' => [ 'type' => 'structure', 'members' => [ 'staticIp' => [ 'shape' => 'StaticIp', ], ], ], 'GetStaticIpsRequest' => [ 'type' => 'structure', 'members' => [ 'pageToken' => [ 'shape' => 'string', ], ], ], 'GetStaticIpsResult' => [ 'type' => 'structure', 'members' => [ 'staticIps' => [ 'shape' => 'StaticIpList', ], 'nextPageToken' => [ 'shape' => 'string', ], ], ], 'HostKeyAttributes' => [ 'type' => 'structure', 'members' => [ 'algorithm' => [ 'shape' => 'string', ], 'publicKey' => [ 'shape' => 'string', ], 'witnessedAt' => [ 'shape' => 'IsoDate', ], 'fingerprintSHA1' => [ 'shape' => 'string', ], 'fingerprintSHA256' => [ 'shape' => 'string', ], 'notValidBefore' => [ 'shape' => 'IsoDate', ], 'notValidAfter' => [ 'shape' => 'IsoDate', ], ], ], 'HostKeysList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostKeyAttributes', ], ], 'ImportKeyPairRequest' => [ 'type' => 'structure', 'required' => [ 'keyPairName', 'publicKeyBase64', ], 'members' => [ 'keyPairName' => [ 'shape' => 'ResourceName', ], 'publicKeyBase64' => [ 'shape' => 'Base64', ], ], ], 'ImportKeyPairResult' => [ 'type' => 'structure', 'members' => [ 'operation' => [ 'shape' => 'Operation', ], ], ], 'Instance' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ResourceName', ], 'arn' => [ 'shape' => 'NonEmptyString', ], 'supportCode' => [ 'shape' => 'string', ], 'createdAt' => [ 'shape' => 'IsoDate', ], 'location' => [ 'shape' => 'ResourceLocation', ], 'resourceType' => [ 'shape' => 'ResourceType', ], 'tags' => [ 'shape' => 'TagList', ], 'blueprintId' => [ 'shape' => 'NonEmptyString', ], 'blueprintName' => [ 'shape' => 'NonEmptyString', ], 'bundleId' => [ 'shape' => 'NonEmptyString', ], 'isStaticIp' => [ 'shape' => 'boolean', ], 'privateIpAddress' => [ 'shape' => 'IpAddress', ], 'publicIpAddress' => [ 'shape' => 'IpAddress', ], 'ipv6Address' => [ 'shape' => 'IpV6Address', ], 'hardware' => [ 'shape' => 'InstanceHardware', ], 'networking' => [ 'shape' => 'InstanceNetworking', ], 'state' => [ 'shape' => 'InstanceState', ], 'username' => [ 'shape' => 'NonEmptyString', ], 'sshKeyName' => [ 'shape' => 'ResourceName', ], ], ], 'InstanceAccessDetails' => [ 'type' => 'structure', 'members' => [ 'certKey' => [ 'shape' => 'string', ], 'expiresAt' => [ 'shape' => 'IsoDate', ], 'ipAddress' => [ 'shape' => 'IpAddress', ], 'password' => [ 'shape' => 'string', ], 'passwordData' => [ 'shape' => 'PasswordData', ], 'privateKey' => [ 'shape' => 'string', ], 'protocol' => [ 'shape' => 'InstanceAccessProtocol', ], 'instanceName' => [ 'shape' => 'ResourceName', ], 'username' => [ 'shape' => 'string', ], 'hostKeys' => [ 'shape' => 'HostKeysList', ], ], ], 'InstanceAccessProtocol' => [ 'type' => 'string', 'enum' => [ 'ssh', 'rdp', ], ], 'InstanceEntry' => [ 'type' => 'structure', 'required' => [ 'sourceName', 'instanceType', 'portInfoSource', 'availabilityZone', ], 'members' => [ 'sourceName' => [ 'shape' => 'ResourceName', ], 'instanceType' => [ 'shape' => 'NonEmptyString', ], 'portInfoSource' => [ 'shape' => 'PortInfoSourceType', ], 'userData' => [ 'shape' => 'string', ], 'availabilityZone' => [ 'shape' => 'string', ], ], ], 'InstanceEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceEntry', ], ], 'InstanceHardware' => [ 'type' => 'structure', 'members' => [ 'cpuCount' => [ 'shape' => 'integer', ], 'disks' => [ 'shape' => 'DiskList', ], 'ramSizeInGb' => [ 'shape' => 'float', ], ], ], 'InstanceHealthReason' => [ 'type' => 'string', 'enum' => [ 'Lb.RegistrationInProgress', 'Lb.InitialHealthChecking', 'Lb.InternalError', 'Instance.ResponseCodeMismatch', 'Instance.Timeout', 'Instance.FailedHealthChecks', 'Instance.NotRegistered', 'Instance.NotInUse', 'Instance.DeregistrationInProgress', 'Instance.InvalidState', 'Instance.IpUnusable', ], ], 'InstanceHealthState' => [ 'type' => 'string', 'enum' => [ 'initial', 'healthy', 'unhealthy', 'unused', 'draining', 'unavailable', ], ], 'InstanceHealthSummary' => [ 'type' => 'structure', 'members' => [ 'instanceName' => [ 'shape' => 'ResourceName', ], 'instanceHealth' => [ 'shape' => 'InstanceHealthState', ], 'instanceHealthReason' => [ 'shape' => 'InstanceHealthReason', ], ], ], 'InstanceHealthSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceHealthSummary', ], ], 'InstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Instance', ], ], 'InstanceMetricName' => [ 'type' => 'string', 'enum' => [ 'CPUUtilization', 'NetworkIn', 'NetworkOut', 'StatusCheckFailed', 'StatusCheckFailed_Instance', 'StatusCheckFailed_System', ], ], 'InstanceNetworking' => [ 'type' => 'structure', 'members' => [ 'monthlyTransfer' => [ 'shape' => 'MonthlyTransfer', ], 'ports' => [ 'shape' => 'InstancePortInfoList', ], ], ], 'InstancePlatform' => [ 'type' => 'string', 'enum' => [ 'LINUX_UNIX', 'WINDOWS', ], ], 'InstancePlatformList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstancePlatform', ], ], 'InstancePortInfo' => [ 'type' => 'structure', 'members' => [ 'fromPort' => [ 'shape' => 'Port', ], 'toPort' => [ 'shape' => 'Port', ], 'protocol' => [ 'shape' => 'NetworkProtocol', ], 'accessFrom' => [ 'shape' => 'string', ], 'accessType' => [ 'shape' => 'PortAccessType', ], 'commonName' => [ 'shape' => 'string', ], 'accessDirection' => [ 'shape' => 'AccessDirection', ], ], ], 'InstancePortInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstancePortInfo', ], ], 'InstancePortState' => [ 'type' => 'structure', 'members' => [ 'fromPort' => [ 'shape' => 'Port', ], 'toPort' => [ 'shape' => 'Port', ], 'protocol' => [ 'shape' => 'NetworkProtocol', ], 'state' => [ 'shape' => 'PortState', ], ], ], 'InstancePortStateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstancePortState', ], ], 'InstanceSnapshot' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ResourceName', ], 'arn' => [ 'shape' => 'NonEmptyString', ], 'supportCode' => [ 'shape' => 'string', ], 'createdAt' => [ 'shape' => 'IsoDate', ], 'location' => [ 'shape' => 'ResourceLocation', ], 'resourceType' => [ 'shape' => 'ResourceType', ], 'tags' => [ 'shape' => 'TagList', ], 'state' => [ 'shape' => 'InstanceSnapshotState', ], 'progress' => [ 'shape' => 'string', ], 'fromAttachedDisks' => [ 'shape' => 'DiskList', ], 'fromInstanceName' => [ 'shape' => 'ResourceName', ], 'fromInstanceArn' => [ 'shape' => 'NonEmptyString', ], 'fromBlueprintId' => [ 'shape' => 'string', ], 'fromBundleId' => [ 'shape' => 'string', ], 'sizeInGb' => [ 'shape' => 'integer', ], ], ], 'InstanceSnapshotInfo' => [ 'type' => 'structure', 'members' => [ 'fromBundleId' => [ 'shape' => 'NonEmptyString', ], 'fromBlueprintId' => [ 'shape' => 'NonEmptyString', ], 'fromDiskInfo' => [ 'shape' => 'DiskInfoList', ], ], ], 'InstanceSnapshotList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceSnapshot', ], ], 'InstanceSnapshotState' => [ 'type' => 'string', 'enum' => [ 'pending', 'error', 'available', ], ], 'InstanceState' => [ 'type' => 'structure', 'members' => [ 'code' => [ 'shape' => 'integer', ], 'name' => [ 'shape' => 'string', ], ], ], 'InvalidInputException' => [ 'type' => 'structure', 'members' => [ 'code' => [ 'shape' => 'string', ], 'docs' => [ 'shape' => 'string', ], 'message' => [ 'shape' => 'string', ], 'tip' => [ 'shape' => 'string', ], ], 'exception' => true, ], 'IpAddress' => [ 'type' => 'string', 'pattern' => '([0-9]{1,3}\\.){3}[0-9]{1,3}', ], 'IpV6Address' => [ 'type' => 'string', 'pattern' => '([A-F0-9]{1,4}:){7}[A-F0-9]{1,4}', ], 'IsVpcPeeredRequest' => [ 'type' => 'structure', 'members' => [], ], 'IsVpcPeeredResult' => [ 'type' => 'structure', 'members' => [ 'isPeered' => [ 'shape' => 'boolean', ], ], ], 'IsoDate' => [ 'type' => 'timestamp', ], 'KeyPair' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ResourceName', ], 'arn' => [ 'shape' => 'NonEmptyString', ], 'supportCode' => [ 'shape' => 'string', ], 'createdAt' => [ 'shape' => 'IsoDate', ], 'location' => [ 'shape' => 'ResourceLocation', ], 'resourceType' => [ 'shape' => 'ResourceType', ], 'tags' => [ 'shape' => 'TagList', ], 'fingerprint' => [ 'shape' => 'Base64', ], ], ], 'KeyPairList' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyPair', ], ], 'LoadBalancer' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ResourceName', ], 'arn' => [ 'shape' => 'NonEmptyString', ], 'supportCode' => [ 'shape' => 'string', ], 'createdAt' => [ 'shape' => 'IsoDate', ], 'location' => [ 'shape' => 'ResourceLocation', ], 'resourceType' => [ 'shape' => 'ResourceType', ], 'tags' => [ 'shape' => 'TagList', ], 'dnsName' => [ 'shape' => 'NonEmptyString', ], 'state' => [ 'shape' => 'LoadBalancerState', ], 'protocol' => [ 'shape' => 'LoadBalancerProtocol', ], 'publicPorts' => [ 'shape' => 'PortList', ], 'healthCheckPath' => [ 'shape' => 'NonEmptyString', ], 'instancePort' => [ 'shape' => 'integer', ], 'instanceHealthSummary' => [ 'shape' => 'InstanceHealthSummaryList', ], 'tlsCertificateSummaries' => [ 'shape' => 'LoadBalancerTlsCertificateSummaryList', ], 'configurationOptions' => [ 'shape' => 'LoadBalancerConfigurationOptions', ], ], ], 'LoadBalancerAttributeName' => [ 'type' => 'string', 'enum' => [ 'HealthCheckPath', 'SessionStickinessEnabled', 'SessionStickiness_LB_CookieDurationSeconds', ], ], 'LoadBalancerConfigurationOptions' => [ 'type' => 'map', 'key' => [ 'shape' => 'LoadBalancerAttributeName', ], 'value' => [ 'shape' => 'string', ], ], 'LoadBalancerList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadBalancer', ], ], 'LoadBalancerMetricName' => [ 'type' => 'string', 'enum' => [ 'ClientTLSNegotiationErrorCount', 'HealthyHostCount', 'UnhealthyHostCount', 'HTTPCode_LB_4XX_Count', 'HTTPCode_LB_5XX_Count', 'HTTPCode_Instance_2XX_Count', 'HTTPCode_Instance_3XX_Count', 'HTTPCode_Instance_4XX_Count', 'HTTPCode_Instance_5XX_Count', 'InstanceResponseTime', 'RejectedConnectionCount', 'RequestCount', ], ], 'LoadBalancerProtocol' => [ 'type' => 'string', 'enum' => [ 'HTTP_HTTPS', 'HTTP', ], ], 'LoadBalancerState' => [ 'type' => 'string', 'enum' => [ 'active', 'provisioning', 'active_impaired', 'failed', 'unknown', ], ], 'LoadBalancerTlsCertificate' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ResourceName', ], 'arn' => [ 'shape' => 'NonEmptyString', ], 'supportCode' => [ 'shape' => 'string', ], 'createdAt' => [ 'shape' => 'IsoDate', ], 'location' => [ 'shape' => 'ResourceLocation', ], 'resourceType' => [ 'shape' => 'ResourceType', ], 'tags' => [ 'shape' => 'TagList', ], 'loadBalancerName' => [ 'shape' => 'ResourceName', ], 'isAttached' => [ 'shape' => 'boolean', ], 'status' => [ 'shape' => 'LoadBalancerTlsCertificateStatus', ], 'domainName' => [ 'shape' => 'DomainName', ], 'domainValidationRecords' => [ 'shape' => 'LoadBalancerTlsCertificateDomainValidationRecordList', ], 'failureReason' => [ 'shape' => 'LoadBalancerTlsCertificateFailureReason', ], 'issuedAt' => [ 'shape' => 'IsoDate', ], 'issuer' => [ 'shape' => 'NonEmptyString', ], 'keyAlgorithm' => [ 'shape' => 'NonEmptyString', ], 'notAfter' => [ 'shape' => 'IsoDate', ], 'notBefore' => [ 'shape' => 'IsoDate', ], 'renewalSummary' => [ 'shape' => 'LoadBalancerTlsCertificateRenewalSummary', ], 'revocationReason' => [ 'shape' => 'LoadBalancerTlsCertificateRevocationReason', ], 'revokedAt' => [ 'shape' => 'IsoDate', ], 'serial' => [ 'shape' => 'NonEmptyString', ], 'signatureAlgorithm' => [ 'shape' => 'NonEmptyString', ], 'subject' => [ 'shape' => 'NonEmptyString', ], 'subjectAlternativeNames' => [ 'shape' => 'StringList', ], ], ], 'LoadBalancerTlsCertificateDomainStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING_VALIDATION', 'FAILED', 'SUCCESS', ], ], 'LoadBalancerTlsCertificateDomainValidationOption' => [ 'type' => 'structure', 'members' => [ 'domainName' => [ 'shape' => 'DomainName', ], 'validationStatus' => [ 'shape' => 'LoadBalancerTlsCertificateDomainStatus', ], ], ], 'LoadBalancerTlsCertificateDomainValidationOptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadBalancerTlsCertificateDomainValidationOption', ], ], 'LoadBalancerTlsCertificateDomainValidationRecord' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'NonEmptyString', ], 'type' => [ 'shape' => 'NonEmptyString', ], 'value' => [ 'shape' => 'NonEmptyString', ], 'validationStatus' => [ 'shape' => 'LoadBalancerTlsCertificateDomainStatus', ], 'domainName' => [ 'shape' => 'DomainName', ], ], ], 'LoadBalancerTlsCertificateDomainValidationRecordList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadBalancerTlsCertificateDomainValidationRecord', ], ], 'LoadBalancerTlsCertificateFailureReason' => [ 'type' => 'string', 'enum' => [ 'NO_AVAILABLE_CONTACTS', 'ADDITIONAL_VERIFICATION_REQUIRED', 'DOMAIN_NOT_ALLOWED', 'INVALID_PUBLIC_DOMAIN', 'OTHER', ], ], 'LoadBalancerTlsCertificateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadBalancerTlsCertificate', ], ], 'LoadBalancerTlsCertificateRenewalStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING_AUTO_RENEWAL', 'PENDING_VALIDATION', 'SUCCESS', 'FAILED', ], ], 'LoadBalancerTlsCertificateRenewalSummary' => [ 'type' => 'structure', 'members' => [ 'renewalStatus' => [ 'shape' => 'LoadBalancerTlsCertificateRenewalStatus', ], 'domainValidationOptions' => [ 'shape' => 'LoadBalancerTlsCertificateDomainValidationOptionList', ], ], ], 'LoadBalancerTlsCertificateRevocationReason' => [ 'type' => 'string', 'enum' => [ 'UNSPECIFIED', 'KEY_COMPROMISE', 'CA_COMPROMISE', 'AFFILIATION_CHANGED', 'SUPERCEDED', 'CESSATION_OF_OPERATION', 'CERTIFICATE_HOLD', 'REMOVE_FROM_CRL', 'PRIVILEGE_WITHDRAWN', 'A_A_COMPROMISE', ], ], 'LoadBalancerTlsCertificateStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING_VALIDATION', 'ISSUED', 'INACTIVE', 'EXPIRED', 'VALIDATION_TIMED_OUT', 'REVOKED', 'FAILED', 'UNKNOWN', ], ], 'LoadBalancerTlsCertificateSummary' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ResourceName', ], 'isAttached' => [ 'shape' => 'boolean', ], ], ], 'LoadBalancerTlsCertificateSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadBalancerTlsCertificateSummary', ], ], 'LogEvent' => [ 'type' => 'structure', 'members' => [ 'createdAt' => [ 'shape' => 'IsoDate', ], 'message' => [ 'shape' => 'string', ], ], ], 'LogEventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LogEvent', ], ], 'MetricDatapoint' => [ 'type' => 'structure', 'members' => [ 'average' => [ 'shape' => 'double', ], 'maximum' => [ 'shape' => 'double', ], 'minimum' => [ 'shape' => 'double', ], 'sampleCount' => [ 'shape' => 'double', ], 'sum' => [ 'shape' => 'double', ], 'timestamp' => [ 'shape' => 'timestamp', ], 'unit' => [ 'shape' => 'MetricUnit', ], ], ], 'MetricDatapointList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricDatapoint', ], ], 'MetricPeriod' => [ 'type' => 'integer', 'max' => 86400, 'min' => 60, ], 'MetricStatistic' => [ 'type' => 'string', 'enum' => [ 'Minimum', 'Maximum', 'Sum', 'Average', 'SampleCount', ], ], 'MetricStatisticList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricStatistic', ], ], 'MetricUnit' => [ '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', ], ], 'MonthlyTransfer' => [ 'type' => 'structure', 'members' => [ 'gbPerMonthAllocated' => [ 'shape' => 'integer', ], ], ], 'NetworkProtocol' => [ 'type' => 'string', 'enum' => [ 'tcp', 'all', 'udp', ], ], 'NonEmptyString' => [ 'type' => 'string', 'pattern' => '.*\\S.*', ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'code' => [ 'shape' => 'string', ], 'docs' => [ 'shape' => 'string', ], 'message' => [ 'shape' => 'string', ], 'tip' => [ 'shape' => 'string', ], ], 'exception' => true, ], 'OpenInstancePublicPortsRequest' => [ 'type' => 'structure', 'required' => [ 'portInfo', 'instanceName', ], 'members' => [ 'portInfo' => [ 'shape' => 'PortInfo', ], 'instanceName' => [ 'shape' => 'ResourceName', ], ], ], 'OpenInstancePublicPortsResult' => [ 'type' => 'structure', 'members' => [ 'operation' => [ 'shape' => 'Operation', ], ], ], 'Operation' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'NonEmptyString', ], 'resourceName' => [ 'shape' => 'ResourceName', ], 'resourceType' => [ 'shape' => 'ResourceType', ], 'createdAt' => [ 'shape' => 'IsoDate', ], 'location' => [ 'shape' => 'ResourceLocation', ], 'isTerminal' => [ 'shape' => 'boolean', ], 'operationDetails' => [ 'shape' => 'string', ], 'operationType' => [ 'shape' => 'OperationType', ], 'status' => [ 'shape' => 'OperationStatus', ], 'statusChangedAt' => [ 'shape' => 'IsoDate', ], 'errorCode' => [ 'shape' => 'string', ], 'errorDetails' => [ 'shape' => 'string', ], ], ], 'OperationFailureException' => [ 'type' => 'structure', 'members' => [ 'code' => [ 'shape' => 'string', ], 'docs' => [ 'shape' => 'string', ], 'message' => [ 'shape' => 'string', ], 'tip' => [ 'shape' => 'string', ], ], 'exception' => true, ], 'OperationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Operation', ], ], 'OperationStatus' => [ 'type' => 'string', 'enum' => [ 'NotStarted', 'Started', 'Failed', 'Completed', 'Succeeded', ], ], 'OperationType' => [ 'type' => 'string', 'enum' => [ 'DeleteKnownHostKeys', 'DeleteInstance', 'CreateInstance', 'StopInstance', 'StartInstance', 'RebootInstance', 'OpenInstancePublicPorts', 'PutInstancePublicPorts', 'CloseInstancePublicPorts', 'AllocateStaticIp', 'ReleaseStaticIp', 'AttachStaticIp', 'DetachStaticIp', 'UpdateDomainEntry', 'DeleteDomainEntry', 'CreateDomain', 'DeleteDomain', 'CreateInstanceSnapshot', 'DeleteInstanceSnapshot', 'CreateInstancesFromSnapshot', 'CreateLoadBalancer', 'DeleteLoadBalancer', 'AttachInstancesToLoadBalancer', 'DetachInstancesFromLoadBalancer', 'UpdateLoadBalancerAttribute', 'CreateLoadBalancerTlsCertificate', 'DeleteLoadBalancerTlsCertificate', 'AttachLoadBalancerTlsCertificate', 'CreateDisk', 'DeleteDisk', 'AttachDisk', 'DetachDisk', 'CreateDiskSnapshot', 'DeleteDiskSnapshot', 'CreateDiskFromSnapshot', 'CreateRelationalDatabase', 'UpdateRelationalDatabase', 'DeleteRelationalDatabase', 'CreateRelationalDatabaseFromSnapshot', 'CreateRelationalDatabaseSnapshot', 'DeleteRelationalDatabaseSnapshot', 'UpdateRelationalDatabaseParameters', 'StartRelationalDatabase', 'RebootRelationalDatabase', 'StopRelationalDatabase', ], ], 'PasswordData' => [ 'type' => 'structure', 'members' => [ 'ciphertext' => [ 'shape' => 'string', ], 'keyPairName' => [ 'shape' => 'ResourceName', ], ], ], 'PeerVpcRequest' => [ 'type' => 'structure', 'members' => [], ], 'PeerVpcResult' => [ 'type' => 'structure', 'members' => [ 'operation' => [ 'shape' => 'Operation', ], ], ], 'PendingMaintenanceAction' => [ 'type' => 'structure', 'members' => [ 'action' => [ 'shape' => 'NonEmptyString', ], 'description' => [ 'shape' => 'NonEmptyString', ], 'currentApplyDate' => [ 'shape' => 'IsoDate', ], ], ], 'PendingMaintenanceActionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PendingMaintenanceAction', ], ], 'PendingModifiedRelationalDatabaseValues' => [ 'type' => 'structure', 'members' => [ 'masterUserPassword' => [ 'shape' => 'string', ], 'engineVersion' => [ 'shape' => 'string', ], 'backupRetentionEnabled' => [ 'shape' => 'boolean', ], ], ], 'Port' => [ 'type' => 'integer', 'max' => 65535, 'min' => 0, ], 'PortAccessType' => [ 'type' => 'string', 'enum' => [ 'Public', 'Private', ], ], 'PortInfo' => [ 'type' => 'structure', 'members' => [ 'fromPort' => [ 'shape' => 'Port', ], 'toPort' => [ 'shape' => 'Port', ], 'protocol' => [ 'shape' => 'NetworkProtocol', ], ], ], 'PortInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PortInfo', ], ], 'PortInfoSourceType' => [ 'type' => 'string', 'enum' => [ 'DEFAULT', 'INSTANCE', 'NONE', 'CLOSED', ], ], 'PortList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Port', ], ], 'PortState' => [ 'type' => 'string', 'enum' => [ 'open', 'closed', ], ], 'PutInstancePublicPortsRequest' => [ 'type' => 'structure', 'required' => [ 'portInfos', 'instanceName', ], 'members' => [ 'portInfos' => [ 'shape' => 'PortInfoList', ], 'instanceName' => [ 'shape' => 'ResourceName', ], ], ], 'PutInstancePublicPortsResult' => [ 'type' => 'structure', 'members' => [ 'operation' => [ 'shape' => 'Operation', ], ], ], 'RebootInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'instanceName', ], 'members' => [ 'instanceName' => [ 'shape' => 'ResourceName', ], ], ], 'RebootInstanceResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'RebootRelationalDatabaseRequest' => [ 'type' => 'structure', 'required' => [ 'relationalDatabaseName', ], 'members' => [ 'relationalDatabaseName' => [ 'shape' => 'ResourceName', ], ], ], 'RebootRelationalDatabaseResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'RecordState' => [ 'type' => 'string', 'enum' => [ 'Started', 'Succeeded', 'Failed', ], ], 'Region' => [ 'type' => 'structure', 'members' => [ 'continentCode' => [ 'shape' => 'string', ], 'description' => [ 'shape' => 'string', ], 'displayName' => [ 'shape' => 'string', ], 'name' => [ 'shape' => 'RegionName', ], 'availabilityZones' => [ 'shape' => 'AvailabilityZoneList', ], 'relationalDatabaseAvailabilityZones' => [ 'shape' => 'AvailabilityZoneList', ], ], ], 'RegionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Region', ], ], 'RegionName' => [ 'type' => 'string', 'enum' => [ 'us-east-1', 'us-east-2', 'us-west-1', 'us-west-2', 'eu-west-1', 'eu-west-2', 'eu-west-3', 'eu-central-1', 'ca-central-1', 'ap-south-1', 'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1', 'ap-northeast-2', ], ], 'RelationalDatabase' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ResourceName', ], 'arn' => [ 'shape' => 'NonEmptyString', ], 'supportCode' => [ 'shape' => 'string', ], 'createdAt' => [ 'shape' => 'IsoDate', ], 'location' => [ 'shape' => 'ResourceLocation', ], 'resourceType' => [ 'shape' => 'ResourceType', ], 'tags' => [ 'shape' => 'TagList', ], 'relationalDatabaseBlueprintId' => [ 'shape' => 'NonEmptyString', ], 'relationalDatabaseBundleId' => [ 'shape' => 'NonEmptyString', ], 'masterDatabaseName' => [ 'shape' => 'string', ], 'hardware' => [ 'shape' => 'RelationalDatabaseHardware', ], 'state' => [ 'shape' => 'NonEmptyString', ], 'secondaryAvailabilityZone' => [ 'shape' => 'string', ], 'backupRetentionEnabled' => [ 'shape' => 'boolean', ], 'pendingModifiedValues' => [ 'shape' => 'PendingModifiedRelationalDatabaseValues', ], 'engine' => [ 'shape' => 'NonEmptyString', ], 'engineVersion' => [ 'shape' => 'NonEmptyString', ], 'latestRestorableTime' => [ 'shape' => 'IsoDate', ], 'masterUsername' => [ 'shape' => 'NonEmptyString', ], 'parameterApplyStatus' => [ 'shape' => 'NonEmptyString', ], 'preferredBackupWindow' => [ 'shape' => 'NonEmptyString', ], 'preferredMaintenanceWindow' => [ 'shape' => 'NonEmptyString', ], 'publiclyAccessible' => [ 'shape' => 'boolean', ], 'masterEndpoint' => [ 'shape' => 'RelationalDatabaseEndpoint', ], 'pendingMaintenanceActions' => [ 'shape' => 'PendingMaintenanceActionList', ], ], ], 'RelationalDatabaseBlueprint' => [ 'type' => 'structure', 'members' => [ 'blueprintId' => [ 'shape' => 'string', ], 'engine' => [ 'shape' => 'RelationalDatabaseEngine', ], 'engineVersion' => [ 'shape' => 'string', ], 'engineDescription' => [ 'shape' => 'string', ], 'engineVersionDescription' => [ 'shape' => 'string', ], 'isEngineDefault' => [ 'shape' => 'boolean', ], ], ], 'RelationalDatabaseBlueprintList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RelationalDatabaseBlueprint', ], ], 'RelationalDatabaseBundle' => [ 'type' => 'structure', 'members' => [ 'bundleId' => [ 'shape' => 'string', ], 'name' => [ 'shape' => 'string', ], 'price' => [ 'shape' => 'float', ], 'ramSizeInGb' => [ 'shape' => 'float', ], 'diskSizeInGb' => [ 'shape' => 'integer', ], 'transferPerMonthInGb' => [ 'shape' => 'integer', ], 'cpuCount' => [ 'shape' => 'integer', ], 'isEncrypted' => [ 'shape' => 'boolean', ], 'isActive' => [ 'shape' => 'boolean', ], ], ], 'RelationalDatabaseBundleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RelationalDatabaseBundle', ], ], 'RelationalDatabaseEndpoint' => [ 'type' => 'structure', 'members' => [ 'port' => [ 'shape' => 'integer', ], 'address' => [ 'shape' => 'NonEmptyString', ], ], ], 'RelationalDatabaseEngine' => [ 'type' => 'string', 'enum' => [ 'mysql', ], ], 'RelationalDatabaseEvent' => [ 'type' => 'structure', 'members' => [ 'resource' => [ 'shape' => 'ResourceName', ], 'createdAt' => [ 'shape' => 'IsoDate', ], 'message' => [ 'shape' => 'string', ], 'eventCategories' => [ 'shape' => 'StringList', ], ], ], 'RelationalDatabaseEventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RelationalDatabaseEvent', ], ], 'RelationalDatabaseHardware' => [ 'type' => 'structure', 'members' => [ 'cpuCount' => [ 'shape' => 'integer', ], 'diskSizeInGb' => [ 'shape' => 'integer', ], 'ramSizeInGb' => [ 'shape' => 'float', ], ], ], 'RelationalDatabaseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RelationalDatabase', ], ], 'RelationalDatabaseMetricName' => [ 'type' => 'string', 'enum' => [ 'CPUUtilization', 'DatabaseConnections', 'DiskQueueDepth', 'FreeStorageSpace', 'NetworkReceiveThroughput', 'NetworkTransmitThroughput', ], ], 'RelationalDatabaseParameter' => [ 'type' => 'structure', 'members' => [ 'allowedValues' => [ 'shape' => 'string', ], 'applyMethod' => [ 'shape' => 'string', ], 'applyType' => [ 'shape' => 'string', ], 'dataType' => [ 'shape' => 'string', ], 'description' => [ 'shape' => 'string', ], 'isModifiable' => [ 'shape' => 'boolean', ], 'parameterName' => [ 'shape' => 'string', ], 'parameterValue' => [ 'shape' => 'string', ], ], ], 'RelationalDatabaseParameterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RelationalDatabaseParameter', ], ], 'RelationalDatabasePasswordVersion' => [ 'type' => 'string', 'enum' => [ 'CURRENT', 'PREVIOUS', 'PENDING', ], ], 'RelationalDatabaseSnapshot' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ResourceName', ], 'arn' => [ 'shape' => 'NonEmptyString', ], 'supportCode' => [ 'shape' => 'string', ], 'createdAt' => [ 'shape' => 'IsoDate', ], 'location' => [ 'shape' => 'ResourceLocation', ], 'resourceType' => [ 'shape' => 'ResourceType', ], 'tags' => [ 'shape' => 'TagList', ], 'engine' => [ 'shape' => 'NonEmptyString', ], 'engineVersion' => [ 'shape' => 'NonEmptyString', ], 'sizeInGb' => [ 'shape' => 'integer', ], 'state' => [ 'shape' => 'NonEmptyString', ], 'fromRelationalDatabaseName' => [ 'shape' => 'NonEmptyString', ], 'fromRelationalDatabaseArn' => [ 'shape' => 'NonEmptyString', ], 'fromRelationalDatabaseBundleId' => [ 'shape' => 'string', ], 'fromRelationalDatabaseBlueprintId' => [ 'shape' => 'string', ], ], ], 'RelationalDatabaseSnapshotList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RelationalDatabaseSnapshot', ], ], 'ReleaseStaticIpRequest' => [ 'type' => 'structure', 'required' => [ 'staticIpName', ], 'members' => [ 'staticIpName' => [ 'shape' => 'ResourceName', ], ], ], 'ReleaseStaticIpResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'ResourceLocation' => [ 'type' => 'structure', 'members' => [ 'availabilityZone' => [ 'shape' => 'string', ], 'regionName' => [ 'shape' => 'RegionName', ], ], ], 'ResourceName' => [ 'type' => 'string', 'pattern' => '\\w[\\w\\-]*\\w', ], 'ResourceNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceName', ], ], 'ResourceType' => [ 'type' => 'string', 'enum' => [ 'Instance', 'StaticIp', 'KeyPair', 'InstanceSnapshot', 'Domain', 'PeeredVpc', 'LoadBalancer', 'LoadBalancerTlsCertificate', 'Disk', 'DiskSnapshot', 'RelationalDatabase', 'RelationalDatabaseSnapshot', 'ExportSnapshotRecord', 'CloudFormationStackRecord', ], ], 'SensitiveString' => [ 'type' => 'string', 'sensitive' => true, ], 'ServiceException' => [ 'type' => 'structure', 'members' => [ 'code' => [ 'shape' => 'string', ], 'docs' => [ 'shape' => 'string', ], 'message' => [ 'shape' => 'string', ], 'tip' => [ 'shape' => 'string', ], ], 'exception' => true, 'fault' => true, ], 'StartInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'instanceName', ], 'members' => [ 'instanceName' => [ 'shape' => 'ResourceName', ], ], ], 'StartInstanceResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'StartRelationalDatabaseRequest' => [ 'type' => 'structure', 'required' => [ 'relationalDatabaseName', ], 'members' => [ 'relationalDatabaseName' => [ 'shape' => 'ResourceName', ], ], ], 'StartRelationalDatabaseResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'StaticIp' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ResourceName', ], 'arn' => [ 'shape' => 'NonEmptyString', ], 'supportCode' => [ 'shape' => 'string', ], 'createdAt' => [ 'shape' => 'IsoDate', ], 'location' => [ 'shape' => 'ResourceLocation', ], 'resourceType' => [ 'shape' => 'ResourceType', ], 'ipAddress' => [ 'shape' => 'IpAddress', ], 'attachedTo' => [ 'shape' => 'ResourceName', ], 'isAttached' => [ 'shape' => 'boolean', ], ], ], 'StaticIpList' => [ 'type' => 'list', 'member' => [ 'shape' => 'StaticIp', ], ], 'StopInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'instanceName', ], 'members' => [ 'instanceName' => [ 'shape' => 'ResourceName', ], 'force' => [ 'shape' => 'boolean', ], ], ], 'StopInstanceResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'StopRelationalDatabaseRequest' => [ 'type' => 'structure', 'required' => [ 'relationalDatabaseName', ], 'members' => [ 'relationalDatabaseName' => [ 'shape' => 'ResourceName', ], 'relationalDatabaseSnapshotName' => [ 'shape' => 'ResourceName', ], ], ], 'StopRelationalDatabaseResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'string', ], ], 'StringMax256' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], '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', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceName', 'tags', ], 'members' => [ 'resourceName' => [ 'shape' => 'ResourceName', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'TagValue' => [ 'type' => 'string', ], 'UnauthenticatedException' => [ 'type' => 'structure', 'members' => [ 'code' => [ 'shape' => 'string', ], 'docs' => [ 'shape' => 'string', ], 'message' => [ 'shape' => 'string', ], 'tip' => [ 'shape' => 'string', ], ], 'exception' => true, ], 'UnpeerVpcRequest' => [ 'type' => 'structure', 'members' => [], ], 'UnpeerVpcResult' => [ 'type' => 'structure', 'members' => [ 'operation' => [ 'shape' => 'Operation', ], ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceName', 'tagKeys', ], 'members' => [ 'resourceName' => [ 'shape' => 'ResourceName', ], 'tagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagResourceResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'UpdateDomainEntryRequest' => [ 'type' => 'structure', 'required' => [ 'domainName', 'domainEntry', ], 'members' => [ 'domainName' => [ 'shape' => 'DomainName', ], 'domainEntry' => [ 'shape' => 'DomainEntry', ], ], ], 'UpdateDomainEntryResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'UpdateLoadBalancerAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'loadBalancerName', 'attributeName', 'attributeValue', ], 'members' => [ 'loadBalancerName' => [ 'shape' => 'ResourceName', ], 'attributeName' => [ 'shape' => 'LoadBalancerAttributeName', ], 'attributeValue' => [ 'shape' => 'StringMax256', ], ], ], 'UpdateLoadBalancerAttributeResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'UpdateRelationalDatabaseParametersRequest' => [ 'type' => 'structure', 'required' => [ 'relationalDatabaseName', 'parameters', ], 'members' => [ 'relationalDatabaseName' => [ 'shape' => 'ResourceName', ], 'parameters' => [ 'shape' => 'RelationalDatabaseParameterList', ], ], ], 'UpdateRelationalDatabaseParametersResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'UpdateRelationalDatabaseRequest' => [ 'type' => 'structure', 'required' => [ 'relationalDatabaseName', ], 'members' => [ 'relationalDatabaseName' => [ 'shape' => 'ResourceName', ], 'masterUserPassword' => [ 'shape' => 'SensitiveString', ], 'rotateMasterUserPassword' => [ 'shape' => 'boolean', ], 'preferredBackupWindow' => [ 'shape' => 'string', ], 'preferredMaintenanceWindow' => [ 'shape' => 'string', ], 'enableBackupRetention' => [ 'shape' => 'boolean', ], 'disableBackupRetention' => [ 'shape' => 'boolean', ], 'publiclyAccessible' => [ 'shape' => 'boolean', ], 'applyImmediately' => [ 'shape' => 'boolean', ], ], ], 'UpdateRelationalDatabaseResult' => [ 'type' => 'structure', 'members' => [ 'operations' => [ 'shape' => 'OperationList', ], ], ], 'boolean' => [ 'type' => 'boolean', ], 'double' => [ 'type' => 'double', ], 'float' => [ 'type' => 'float', ], 'integer' => [ 'type' => 'integer', ], 'string' => [ 'type' => 'string', ], 'timestamp' => [ 'type' => 'timestamp', ], ],]; diff --git a/lib/aws/Aws/data/lightsail/2016-11-28/paginators-1.json.php b/lib/aws/Aws/data/lightsail/2016-11-28/paginators-1.json.php new file mode 100644 index 0000000..1cfd43b --- /dev/null +++ b/lib/aws/Aws/data/lightsail/2016-11-28/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/lightsail/2016-11-28/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/lightsail/2016-11-28/smoke.json.php b/lib/aws/Aws/data/lightsail/2016-11-28/smoke.json.php new file mode 100644 index 0000000..e93ed93 --- /dev/null +++ b/lib/aws/Aws/data/lightsail/2016-11-28/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/lightsail/2016-11-28/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'GetActiveNames', 'input' => [], 'errorExpectedFromService' => false, ], ],]; diff --git a/lib/aws/Aws/data/logs/2014-03-28/api-2.json.php b/lib/aws/Aws/data/logs/2014-03-28/api-2.json.php new file mode 100644 index 0000000..3e82391 --- /dev/null +++ b/lib/aws/Aws/data/logs/2014-03-28/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/logs/2014-03-28/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2014-03-28', 'endpointPrefix' => 'logs', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Amazon CloudWatch Logs', 'serviceId' => 'CloudWatch Logs', 'signatureVersion' => 'v4', 'targetPrefix' => 'Logs_20140328', 'uid' => 'logs-2014-03-28', ], 'operations' => [ 'AssociateKmsKey' => [ 'name' => 'AssociateKmsKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateKmsKeyRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'OperationAbortedException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'CancelExportTask' => [ 'name' => 'CancelExportTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelExportTaskRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidOperationException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'CreateExportTask' => [ 'name' => 'CreateExportTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateExportTaskRequest', ], 'output' => [ 'shape' => 'CreateExportTaskResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'OperationAbortedException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], ], ], 'CreateLogGroup' => [ 'name' => 'CreateLogGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLogGroupRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'OperationAbortedException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'CreateLogStream' => [ 'name' => 'CreateLogStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLogStreamRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeleteDestination' => [ 'name' => 'DeleteDestination', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDestinationRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'OperationAbortedException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeleteLogGroup' => [ 'name' => 'DeleteLogGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLogGroupRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'OperationAbortedException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeleteLogStream' => [ 'name' => 'DeleteLogStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLogStreamRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'OperationAbortedException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeleteMetricFilter' => [ 'name' => 'DeleteMetricFilter', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteMetricFilterRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'OperationAbortedException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeleteResourcePolicy' => [ 'name' => 'DeleteResourcePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteResourcePolicyRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeleteRetentionPolicy' => [ 'name' => 'DeleteRetentionPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRetentionPolicyRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'OperationAbortedException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeleteSubscriptionFilter' => [ 'name' => 'DeleteSubscriptionFilter', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSubscriptionFilterRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'OperationAbortedException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeDestinations' => [ 'name' => 'DescribeDestinations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDestinationsRequest', ], 'output' => [ 'shape' => 'DescribeDestinationsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeExportTasks' => [ 'name' => 'DescribeExportTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeExportTasksRequest', ], 'output' => [ 'shape' => 'DescribeExportTasksResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeLogGroups' => [ 'name' => 'DescribeLogGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLogGroupsRequest', ], 'output' => [ 'shape' => 'DescribeLogGroupsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeLogStreams' => [ 'name' => 'DescribeLogStreams', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLogStreamsRequest', ], 'output' => [ 'shape' => 'DescribeLogStreamsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeMetricFilters' => [ 'name' => 'DescribeMetricFilters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMetricFiltersRequest', ], 'output' => [ 'shape' => 'DescribeMetricFiltersResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeQueries' => [ 'name' => 'DescribeQueries', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeQueriesRequest', ], 'output' => [ 'shape' => 'DescribeQueriesResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeResourcePolicies' => [ 'name' => 'DescribeResourcePolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeResourcePoliciesRequest', ], 'output' => [ 'shape' => 'DescribeResourcePoliciesResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeSubscriptionFilters' => [ 'name' => 'DescribeSubscriptionFilters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSubscriptionFiltersRequest', ], 'output' => [ 'shape' => 'DescribeSubscriptionFiltersResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DisassociateKmsKey' => [ 'name' => 'DisassociateKmsKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateKmsKeyRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'OperationAbortedException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'FilterLogEvents' => [ 'name' => 'FilterLogEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'FilterLogEventsRequest', ], 'output' => [ 'shape' => 'FilterLogEventsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'GetLogEvents' => [ 'name' => 'GetLogEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetLogEventsRequest', ], 'output' => [ 'shape' => 'GetLogEventsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'GetLogGroupFields' => [ 'name' => 'GetLogGroupFields', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetLogGroupFieldsRequest', ], 'output' => [ 'shape' => 'GetLogGroupFieldsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'GetLogRecord' => [ 'name' => 'GetLogRecord', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetLogRecordRequest', ], 'output' => [ 'shape' => 'GetLogRecordResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'GetQueryResults' => [ 'name' => 'GetQueryResults', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetQueryResultsRequest', ], 'output' => [ 'shape' => 'GetQueryResultsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ListTagsLogGroup' => [ 'name' => 'ListTagsLogGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsLogGroupRequest', ], 'output' => [ 'shape' => 'ListTagsLogGroupResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'PutDestination' => [ 'name' => 'PutDestination', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutDestinationRequest', ], 'output' => [ 'shape' => 'PutDestinationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OperationAbortedException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'PutDestinationPolicy' => [ 'name' => 'PutDestinationPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutDestinationPolicyRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OperationAbortedException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'PutLogEvents' => [ 'name' => 'PutLogEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutLogEventsRequest', ], 'output' => [ 'shape' => 'PutLogEventsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidSequenceTokenException', ], [ 'shape' => 'DataAlreadyAcceptedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'UnrecognizedClientException', ], ], ], 'PutMetricFilter' => [ 'name' => 'PutMetricFilter', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutMetricFilterRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'OperationAbortedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'PutResourcePolicy' => [ 'name' => 'PutResourcePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutResourcePolicyRequest', ], 'output' => [ 'shape' => 'PutResourcePolicyResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'PutRetentionPolicy' => [ 'name' => 'PutRetentionPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutRetentionPolicyRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'OperationAbortedException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'PutSubscriptionFilter' => [ 'name' => 'PutSubscriptionFilter', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutSubscriptionFilterRequest', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'OperationAbortedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'StartQuery' => [ 'name' => 'StartQuery', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartQueryRequest', ], 'output' => [ 'shape' => 'StartQueryResponse', ], 'errors' => [ [ 'shape' => 'MalformedQueryException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'StopQuery' => [ 'name' => 'StopQuery', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopQueryRequest', ], 'output' => [ 'shape' => 'StopQueryResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'TagLogGroup' => [ 'name' => 'TagLogGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagLogGroupRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'TestMetricFilter' => [ 'name' => 'TestMetricFilter', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TestMetricFilterRequest', ], 'output' => [ 'shape' => 'TestMetricFilterResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'UntagLogGroup' => [ 'name' => 'UntagLogGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagLogGroupRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], ], 'shapes' => [ 'AccessPolicy' => [ 'type' => 'string', 'min' => 1, ], 'Arn' => [ 'type' => 'string', ], 'AssociateKmsKeyRequest' => [ 'type' => 'structure', 'required' => [ 'logGroupName', 'kmsKeyId', ], 'members' => [ 'logGroupName' => [ 'shape' => 'LogGroupName', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'CancelExportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'taskId', ], 'members' => [ 'taskId' => [ 'shape' => 'ExportTaskId', ], ], ], 'CreateExportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'logGroupName', 'from', 'to', 'destination', ], 'members' => [ 'taskName' => [ 'shape' => 'ExportTaskName', ], 'logGroupName' => [ 'shape' => 'LogGroupName', ], 'logStreamNamePrefix' => [ 'shape' => 'LogStreamName', ], 'from' => [ 'shape' => 'Timestamp', ], 'to' => [ 'shape' => 'Timestamp', ], 'destination' => [ 'shape' => 'ExportDestinationBucket', ], 'destinationPrefix' => [ 'shape' => 'ExportDestinationPrefix', ], ], ], 'CreateExportTaskResponse' => [ 'type' => 'structure', 'members' => [ 'taskId' => [ 'shape' => 'ExportTaskId', ], ], ], 'CreateLogGroupRequest' => [ 'type' => 'structure', 'required' => [ 'logGroupName', ], 'members' => [ 'logGroupName' => [ 'shape' => 'LogGroupName', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'tags' => [ 'shape' => 'Tags', ], ], ], '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', ], 'DefaultValue' => [ 'type' => 'double', ], 'DeleteDestinationRequest' => [ 'type' => 'structure', 'required' => [ 'destinationName', ], 'members' => [ 'destinationName' => [ 'shape' => 'DestinationName', ], ], ], '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', ], ], ], 'DeleteResourcePolicyRequest' => [ 'type' => 'structure', 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', ], ], ], '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', ], 'DescribeDestinationsRequest' => [ 'type' => 'structure', 'members' => [ 'DestinationNamePrefix' => [ 'shape' => 'DestinationName', ], 'nextToken' => [ 'shape' => 'NextToken', ], 'limit' => [ 'shape' => 'DescribeLimit', ], ], ], 'DescribeDestinationsResponse' => [ 'type' => 'structure', 'members' => [ 'destinations' => [ 'shape' => 'Destinations', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeExportTasksRequest' => [ 'type' => 'structure', 'members' => [ 'taskId' => [ 'shape' => 'ExportTaskId', ], 'statusCode' => [ 'shape' => 'ExportTaskStatusCode', ], 'nextToken' => [ 'shape' => 'NextToken', ], 'limit' => [ 'shape' => 'DescribeLimit', ], ], ], 'DescribeExportTasksResponse' => [ 'type' => 'structure', 'members' => [ 'exportTasks' => [ 'shape' => 'ExportTasks', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeLimit' => [ 'type' => 'integer', 'max' => 50, 'min' => 1, ], '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', 'members' => [ 'logGroupName' => [ 'shape' => 'LogGroupName', ], 'filterNamePrefix' => [ 'shape' => 'FilterName', ], 'nextToken' => [ 'shape' => 'NextToken', ], 'limit' => [ 'shape' => 'DescribeLimit', ], 'metricName' => [ 'shape' => 'MetricName', ], 'metricNamespace' => [ 'shape' => 'MetricNamespace', ], ], ], 'DescribeMetricFiltersResponse' => [ 'type' => 'structure', 'members' => [ 'metricFilters' => [ 'shape' => 'MetricFilters', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeQueriesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeQueriesRequest' => [ 'type' => 'structure', 'members' => [ 'logGroupName' => [ 'shape' => 'LogGroupName', ], 'status' => [ 'shape' => 'QueryStatus', ], 'maxResults' => [ 'shape' => 'DescribeQueriesMaxResults', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeQueriesResponse' => [ 'type' => 'structure', 'members' => [ 'queries' => [ 'shape' => 'QueryInfoList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeResourcePoliciesRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', ], 'limit' => [ 'shape' => 'DescribeLimit', ], ], ], 'DescribeResourcePoliciesResponse' => [ 'type' => 'structure', 'members' => [ 'resourcePolicies' => [ 'shape' => 'ResourcePolicies', ], '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', ], ], ], 'Destination' => [ 'type' => 'structure', 'members' => [ 'destinationName' => [ 'shape' => 'DestinationName', ], 'targetArn' => [ 'shape' => 'TargetArn', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'accessPolicy' => [ 'shape' => 'AccessPolicy', ], 'arn' => [ 'shape' => 'Arn', ], 'creationTime' => [ 'shape' => 'Timestamp', ], ], ], 'DestinationArn' => [ 'type' => 'string', 'min' => 1, ], 'DestinationName' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => '[^:*]*', ], 'Destinations' => [ 'type' => 'list', 'member' => [ 'shape' => 'Destination', ], ], 'DisassociateKmsKeyRequest' => [ 'type' => 'structure', 'required' => [ 'logGroupName', ], 'members' => [ 'logGroupName' => [ 'shape' => 'LogGroupName', ], ], ], 'Distribution' => [ 'type' => 'string', 'enum' => [ 'Random', 'ByLogStream', ], ], 'EventId' => [ 'type' => 'string', ], 'EventMessage' => [ 'type' => 'string', 'min' => 1, ], 'EventNumber' => [ 'type' => 'long', ], 'EventsLimit' => [ 'type' => 'integer', 'max' => 10000, 'min' => 1, ], 'ExportDestinationBucket' => [ 'type' => 'string', 'max' => 512, 'min' => 1, ], 'ExportDestinationPrefix' => [ 'type' => 'string', ], 'ExportTask' => [ 'type' => 'structure', 'members' => [ 'taskId' => [ 'shape' => 'ExportTaskId', ], 'taskName' => [ 'shape' => 'ExportTaskName', ], 'logGroupName' => [ 'shape' => 'LogGroupName', ], 'from' => [ 'shape' => 'Timestamp', ], 'to' => [ 'shape' => 'Timestamp', ], 'destination' => [ 'shape' => 'ExportDestinationBucket', ], 'destinationPrefix' => [ 'shape' => 'ExportDestinationPrefix', ], 'status' => [ 'shape' => 'ExportTaskStatus', ], 'executionInfo' => [ 'shape' => 'ExportTaskExecutionInfo', ], ], ], 'ExportTaskExecutionInfo' => [ 'type' => 'structure', 'members' => [ 'creationTime' => [ 'shape' => 'Timestamp', ], 'completionTime' => [ 'shape' => 'Timestamp', ], ], ], 'ExportTaskId' => [ 'type' => 'string', 'max' => 512, 'min' => 1, ], 'ExportTaskName' => [ 'type' => 'string', 'max' => 512, 'min' => 1, ], 'ExportTaskStatus' => [ 'type' => 'structure', 'members' => [ 'code' => [ 'shape' => 'ExportTaskStatusCode', ], 'message' => [ 'shape' => 'ExportTaskStatusMessage', ], ], ], 'ExportTaskStatusCode' => [ 'type' => 'string', 'enum' => [ 'CANCELLED', 'COMPLETED', 'FAILED', 'PENDING', 'PENDING_CANCEL', 'RUNNING', ], ], 'ExportTaskStatusMessage' => [ 'type' => 'string', ], 'ExportTasks' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExportTask', ], ], 'ExtractedValues' => [ 'type' => 'map', 'key' => [ 'shape' => 'Token', ], 'value' => [ 'shape' => 'Value', ], ], 'Field' => [ 'type' => 'string', ], 'FilterCount' => [ 'type' => 'integer', ], 'FilterLogEventsRequest' => [ 'type' => 'structure', 'required' => [ 'logGroupName', ], 'members' => [ 'logGroupName' => [ 'shape' => 'LogGroupName', ], 'logStreamNames' => [ 'shape' => 'InputLogStreamNames', ], 'logStreamNamePrefix' => [ 'shape' => 'LogStreamName', ], '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', 'max' => 512, 'min' => 1, 'pattern' => '[^:*]*', ], 'FilterPattern' => [ 'type' => 'string', 'max' => 1024, 'min' => 0, ], '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', ], ], ], 'GetLogGroupFieldsRequest' => [ 'type' => 'structure', 'required' => [ 'logGroupName', ], 'members' => [ 'logGroupName' => [ 'shape' => 'LogGroupName', ], 'time' => [ 'shape' => 'Timestamp', ], ], ], 'GetLogGroupFieldsResponse' => [ 'type' => 'structure', 'members' => [ 'logGroupFields' => [ 'shape' => 'LogGroupFieldList', ], ], ], 'GetLogRecordRequest' => [ 'type' => 'structure', 'required' => [ 'logRecordPointer', ], 'members' => [ 'logRecordPointer' => [ 'shape' => 'LogRecordPointer', ], ], ], 'GetLogRecordResponse' => [ 'type' => 'structure', 'members' => [ 'logRecord' => [ 'shape' => 'LogRecord', ], ], ], 'GetQueryResultsRequest' => [ 'type' => 'structure', 'required' => [ 'queryId', ], 'members' => [ 'queryId' => [ 'shape' => 'QueryId', ], ], ], 'GetQueryResultsResponse' => [ 'type' => 'structure', 'members' => [ 'results' => [ 'shape' => 'QueryResults', ], 'statistics' => [ 'shape' => 'QueryStatistics', ], 'status' => [ 'shape' => 'QueryStatus', ], ], ], 'InputLogEvent' => [ 'type' => 'structure', 'required' => [ 'timestamp', 'message', ], 'members' => [ 'timestamp' => [ 'shape' => 'Timestamp', ], 'message' => [ 'shape' => 'EventMessage', ], ], ], 'InputLogEvents' => [ 'type' => 'list', 'member' => [ 'shape' => 'InputLogEvent', ], 'max' => 10000, 'min' => 1, ], 'InputLogStreamNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'LogStreamName', ], 'max' => 100, 'min' => 1, ], 'Interleaved' => [ 'type' => 'boolean', ], 'InvalidOperationException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidSequenceTokenException' => [ 'type' => 'structure', 'members' => [ 'expectedSequenceToken' => [ 'shape' => 'SequenceToken', ], ], 'exception' => true, ], 'KmsKeyId' => [ 'type' => 'string', 'max' => 256, ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ListTagsLogGroupRequest' => [ 'type' => 'structure', 'required' => [ 'logGroupName', ], 'members' => [ 'logGroupName' => [ 'shape' => 'LogGroupName', ], ], ], 'ListTagsLogGroupResponse' => [ 'type' => 'structure', 'members' => [ 'tags' => [ 'shape' => 'Tags', ], ], ], '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', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'LogGroupField' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'Field', ], 'percent' => [ 'shape' => 'Percentage', ], ], ], 'LogGroupFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LogGroupField', ], ], 'LogGroupName' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => '[\\.\\-_/#A-Za-z0-9]+', ], 'LogGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'LogGroup', ], ], 'LogRecord' => [ 'type' => 'map', 'key' => [ 'shape' => 'Field', ], 'value' => [ 'shape' => 'Value', ], ], 'LogRecordPointer' => [ 'type' => 'string', ], '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', 'max' => 512, 'min' => 1, 'pattern' => '[^:*]*', ], 'LogStreamSearchedCompletely' => [ 'type' => 'boolean', ], 'LogStreams' => [ 'type' => 'list', 'member' => [ 'shape' => 'LogStream', ], ], 'MalformedQueryException' => [ 'type' => 'structure', 'members' => [ 'queryCompileError' => [ 'shape' => 'QueryCompileError', ], ], 'exception' => true, ], 'Message' => [ 'type' => 'string', ], 'MetricFilter' => [ 'type' => 'structure', 'members' => [ 'filterName' => [ 'shape' => 'FilterName', ], 'filterPattern' => [ 'shape' => 'FilterPattern', ], 'metricTransformations' => [ 'shape' => 'MetricTransformations', ], 'creationTime' => [ 'shape' => 'Timestamp', ], 'logGroupName' => [ 'shape' => 'LogGroupName', ], ], ], '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', ], 'defaultValue' => [ 'shape' => 'DefaultValue', ], ], ], 'MetricTransformations' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricTransformation', ], 'max' => 1, 'min' => 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', ], ], 'Percentage' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'PolicyDocument' => [ 'type' => 'string', 'max' => 5120, 'min' => 1, ], 'PolicyName' => [ 'type' => 'string', ], 'PutDestinationPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'destinationName', 'accessPolicy', ], 'members' => [ 'destinationName' => [ 'shape' => 'DestinationName', ], 'accessPolicy' => [ 'shape' => 'AccessPolicy', ], ], ], 'PutDestinationRequest' => [ 'type' => 'structure', 'required' => [ 'destinationName', 'targetArn', 'roleArn', ], 'members' => [ 'destinationName' => [ 'shape' => 'DestinationName', ], 'targetArn' => [ 'shape' => 'TargetArn', ], 'roleArn' => [ 'shape' => 'RoleArn', ], ], ], 'PutDestinationResponse' => [ 'type' => 'structure', 'members' => [ 'destination' => [ 'shape' => 'Destination', ], ], ], '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', ], ], ], 'PutResourcePolicyRequest' => [ 'type' => 'structure', 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', ], 'policyDocument' => [ 'shape' => 'PolicyDocument', ], ], ], 'PutResourcePolicyResponse' => [ 'type' => 'structure', 'members' => [ 'resourcePolicy' => [ 'shape' => 'ResourcePolicy', ], ], ], 'PutRetentionPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'logGroupName', 'retentionInDays', ], 'members' => [ 'logGroupName' => [ 'shape' => 'LogGroupName', ], 'retentionInDays' => [ 'shape' => 'Days', ], ], ], 'PutSubscriptionFilterRequest' => [ 'type' => 'structure', 'required' => [ 'logGroupName', 'filterName', 'filterPattern', 'destinationArn', ], 'members' => [ 'logGroupName' => [ 'shape' => 'LogGroupName', ], 'filterName' => [ 'shape' => 'FilterName', ], 'filterPattern' => [ 'shape' => 'FilterPattern', ], 'destinationArn' => [ 'shape' => 'DestinationArn', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'distribution' => [ 'shape' => 'Distribution', ], ], ], 'QueryCharOffset' => [ 'type' => 'integer', ], 'QueryCompileError' => [ 'type' => 'structure', 'members' => [ 'location' => [ 'shape' => 'QueryCompileErrorLocation', ], 'message' => [ 'shape' => 'Message', ], ], ], 'QueryCompileErrorLocation' => [ 'type' => 'structure', 'members' => [ 'startCharOffset' => [ 'shape' => 'QueryCharOffset', ], 'endCharOffset' => [ 'shape' => 'QueryCharOffset', ], ], ], 'QueryId' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'QueryInfo' => [ 'type' => 'structure', 'members' => [ 'queryId' => [ 'shape' => 'QueryId', ], 'queryString' => [ 'shape' => 'QueryString', ], 'status' => [ 'shape' => 'QueryStatus', ], 'createTime' => [ 'shape' => 'Timestamp', ], 'logGroupName' => [ 'shape' => 'LogGroupName', ], ], ], 'QueryInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'QueryInfo', ], ], 'QueryResults' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResultRows', ], ], 'QueryStatistics' => [ 'type' => 'structure', 'members' => [ 'recordsMatched' => [ 'shape' => 'StatsValue', ], 'recordsScanned' => [ 'shape' => 'StatsValue', ], 'bytesScanned' => [ 'shape' => 'StatsValue', ], ], ], 'QueryStatus' => [ 'type' => 'string', 'enum' => [ 'Scheduled', 'Running', 'Complete', 'Failed', 'Cancelled', ], ], 'QueryString' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], '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, ], 'ResourcePolicies' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourcePolicy', ], ], 'ResourcePolicy' => [ 'type' => 'structure', 'members' => [ 'policyName' => [ 'shape' => 'PolicyName', ], 'policyDocument' => [ 'shape' => 'PolicyDocument', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], ], ], 'ResultField' => [ 'type' => 'structure', 'members' => [ 'field' => [ 'shape' => 'Field', ], 'value' => [ 'shape' => 'Value', ], ], ], 'ResultRows' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResultField', ], ], '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', ], 'StartQueryRequest' => [ 'type' => 'structure', 'required' => [ 'logGroupName', 'startTime', 'endTime', 'queryString', ], 'members' => [ 'logGroupName' => [ 'shape' => 'LogGroupName', ], 'startTime' => [ 'shape' => 'Timestamp', ], 'endTime' => [ 'shape' => 'Timestamp', ], 'queryString' => [ 'shape' => 'QueryString', ], 'limit' => [ 'shape' => 'EventsLimit', ], ], ], 'StartQueryResponse' => [ 'type' => 'structure', 'members' => [ 'queryId' => [ 'shape' => 'QueryId', ], ], ], 'StatsValue' => [ 'type' => 'double', ], 'StopQueryRequest' => [ 'type' => 'structure', 'required' => [ 'queryId', ], 'members' => [ 'queryId' => [ 'shape' => 'QueryId', ], ], ], 'StopQueryResponse' => [ 'type' => 'structure', 'members' => [ 'success' => [ 'shape' => 'Success', ], ], ], 'StoredBytes' => [ 'type' => 'long', 'min' => 0, ], 'SubscriptionFilter' => [ 'type' => 'structure', 'members' => [ 'filterName' => [ 'shape' => 'FilterName', ], 'logGroupName' => [ 'shape' => 'LogGroupName', ], 'filterPattern' => [ 'shape' => 'FilterPattern', ], 'destinationArn' => [ 'shape' => 'DestinationArn', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'distribution' => [ 'shape' => 'Distribution', ], 'creationTime' => [ 'shape' => 'Timestamp', ], ], ], 'SubscriptionFilters' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubscriptionFilter', ], ], 'Success' => [ 'type' => 'boolean', ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]+)$', ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'min' => 1, ], 'TagLogGroupRequest' => [ 'type' => 'structure', 'required' => [ 'logGroupName', 'tags', ], 'members' => [ 'logGroupName' => [ 'shape' => 'LogGroupName', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'Tags' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], 'max' => 50, 'min' => 1, ], 'TargetArn' => [ 'type' => 'string', 'min' => 1, ], 'TestEventMessages' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventMessage', ], 'max' => 50, 'min' => 1, ], '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', ], 'UnrecognizedClientException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'UntagLogGroupRequest' => [ 'type' => 'structure', 'required' => [ 'logGroupName', 'tags', ], 'members' => [ 'logGroupName' => [ 'shape' => 'LogGroupName', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'Value' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/logs/2014-03-28/paginators-1.json.php b/lib/aws/Aws/data/logs/2014-03-28/paginators-1.json.php new file mode 100644 index 0000000..a89dd3b --- /dev/null +++ b/lib/aws/Aws/data/logs/2014-03-28/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/logs/2014-03-28/paginators-1.json +return [ 'pagination' => [ 'DescribeDestinations' => [ 'input_token' => 'nextToken', 'limit_key' => 'limit', 'output_token' => 'nextToken', 'result_key' => 'destinations', ], 'DescribeLogGroups' => [ 'input_token' => 'nextToken', 'limit_key' => 'limit', 'output_token' => 'nextToken', 'result_key' => 'logGroups', ], 'DescribeLogStreams' => [ 'input_token' => 'nextToken', 'limit_key' => 'limit', 'output_token' => 'nextToken', 'result_key' => 'logStreams', ], 'DescribeMetricFilters' => [ 'input_token' => 'nextToken', 'limit_key' => 'limit', 'output_token' => 'nextToken', 'result_key' => 'metricFilters', ], 'DescribeSubscriptionFilters' => [ 'input_token' => 'nextToken', 'limit_key' => 'limit', 'output_token' => 'nextToken', 'result_key' => 'subscriptionFilters', ], 'FilterLogEvents' => [ 'input_token' => 'nextToken', 'limit_key' => 'limit', 'output_token' => 'nextToken', 'result_key' => [ 'events', 'searchedLogStreams', ], ], 'GetLogEvents' => [ 'input_token' => 'nextToken', 'limit_key' => 'limit', 'output_token' => 'nextForwardToken', 'result_key' => 'events', ], ],]; diff --git a/lib/aws/Aws/data/logs/2014-03-28/smoke.json.php b/lib/aws/Aws/data/logs/2014-03-28/smoke.json.php new file mode 100644 index 0000000..54cc442 --- /dev/null +++ b/lib/aws/Aws/data/logs/2014-03-28/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/logs/2014-03-28/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeLogGroups', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'GetLogEvents', 'input' => [ 'logGroupName' => 'fakegroup', 'logStreamName' => 'fakestream', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/machinelearning/2014-12-12/api-2.json.php b/lib/aws/Aws/data/machinelearning/2014-12-12/api-2.json.php new file mode 100644 index 0000000..9ea6439 --- /dev/null +++ b/lib/aws/Aws/data/machinelearning/2014-12-12/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/machinelearning/2014-12-12/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'uid' => 'machinelearning-2014-12-12', 'apiVersion' => '2014-12-12', 'endpointPrefix' => 'machinelearning', 'jsonVersion' => '1.1', 'serviceFullName' => 'Amazon Machine Learning', 'signatureVersion' => 'v4', 'targetPrefix' => 'AmazonML_20141212', 'protocol' => 'json', ], 'operations' => [ 'AddTags' => [ 'name' => 'AddTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddTagsInput', ], 'output' => [ 'shape' => 'AddTagsOutput', ], 'errors' => [ [ 'shape' => 'InvalidInputException', 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], [ 'shape' => 'InvalidTagException', 'exception' => true, ], [ 'shape' => 'TagLimitExceededException', 'exception' => true, ], [ 'shape' => 'ResourceNotFoundException', 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], [ 'shape' => 'InternalServerException', 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], ], ], '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, ], ], ], 'DeleteTags' => [ 'name' => 'DeleteTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTagsInput', ], 'output' => [ 'shape' => 'DeleteTagsOutput', ], 'errors' => [ [ 'shape' => 'InvalidInputException', 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], [ 'shape' => 'InvalidTagException', '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, ], ], ], 'DescribeTags' => [ 'name' => 'DescribeTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTagsInput', ], 'output' => [ 'shape' => 'DescribeTagsOutput', ], 'errors' => [ [ 'shape' => 'InvalidInputException', 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], [ 'shape' => 'ResourceNotFoundException', 'error' => [ 'httpStatusCode' => 404, ], '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' => [ 'AddTagsInput' => [ 'type' => 'structure', 'required' => [ 'Tags', 'ResourceId', 'ResourceType', ], 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], 'ResourceId' => [ 'shape' => 'EntityId', ], 'ResourceType' => [ 'shape' => 'TaggableResourceType', ], ], ], 'AddTagsOutput' => [ 'type' => 'structure', 'members' => [ 'ResourceId' => [ 'shape' => 'EntityId', ], 'ResourceType' => [ 'shape' => 'TaggableResourceType', ], ], ], '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', ], 'ComputeTime' => [ 'shape' => 'LongType', ], 'FinishedAt' => [ 'shape' => 'EpochTime', ], 'StartedAt' => [ 'shape' => 'EpochTime', ], 'TotalRecordCount' => [ 'shape' => 'LongType', ], 'InvalidRecordCount' => [ 'shape' => 'LongType', ], ], ], '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', ], 'ComputeTime' => [ 'shape' => 'LongType', ], 'FinishedAt' => [ 'shape' => 'EpochTime', ], 'StartedAt' => [ 'shape' => 'EpochTime', ], ], ], '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', ], ], ], 'DeleteTagsInput' => [ 'type' => 'structure', 'required' => [ 'TagKeys', 'ResourceId', 'ResourceType', ], 'members' => [ 'TagKeys' => [ 'shape' => 'TagKeyList', ], 'ResourceId' => [ 'shape' => 'EntityId', ], 'ResourceType' => [ 'shape' => 'TaggableResourceType', ], ], ], 'DeleteTagsOutput' => [ 'type' => 'structure', 'members' => [ 'ResourceId' => [ 'shape' => 'EntityId', ], 'ResourceType' => [ 'shape' => 'TaggableResourceType', ], ], ], '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', ], ], ], 'DescribeTagsInput' => [ 'type' => 'structure', 'required' => [ 'ResourceId', 'ResourceType', ], 'members' => [ 'ResourceId' => [ 'shape' => 'EntityId', ], 'ResourceType' => [ 'shape' => 'TaggableResourceType', ], ], ], 'DescribeTagsOutput' => [ 'type' => 'structure', 'members' => [ 'ResourceId' => [ 'shape' => 'EntityId', ], 'ResourceType' => [ 'shape' => 'TaggableResourceType', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], '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', ], 'ComputeTime' => [ 'shape' => 'LongType', ], 'FinishedAt' => [ 'shape' => 'EpochTime', ], 'StartedAt' => [ 'shape' => 'EpochTime', ], ], ], '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', ], 'ComputeTime' => [ 'shape' => 'LongType', ], 'FinishedAt' => [ 'shape' => 'EpochTime', ], 'StartedAt' => [ 'shape' => 'EpochTime', ], 'TotalRecordCount' => [ 'shape' => 'LongType', ], 'InvalidRecordCount' => [ 'shape' => 'LongType', ], ], ], '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', ], 'ComputeTime' => [ 'shape' => 'LongType', ], 'FinishedAt' => [ 'shape' => 'EpochTime', ], 'StartedAt' => [ 'shape' => 'EpochTime', ], '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', ], 'ComputeTime' => [ 'shape' => 'LongType', ], 'FinishedAt' => [ 'shape' => 'EpochTime', ], 'StartedAt' => [ 'shape' => 'EpochTime', ], ], ], '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', ], 'ComputeTime' => [ 'shape' => 'LongType', ], 'FinishedAt' => [ 'shape' => 'EpochTime', ], 'StartedAt' => [ 'shape' => 'EpochTime', ], '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, ], 'InvalidTagException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], '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', ], 'ComputeTime' => [ 'shape' => 'LongType', ], 'FinishedAt' => [ 'shape' => 'EpochTime', ], 'StartedAt' => [ 'shape' => 'EpochTime', ], ], ], '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' => 110, ], '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', ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'min' => 1, 'max' => 128, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 100, ], 'TagLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 100, ], 'TagValue' => [ 'type' => 'string', 'min' => 0, 'max' => 256, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TaggableResourceType' => [ 'type' => 'string', 'enum' => [ 'BatchPrediction', 'DataSource', 'Evaluation', 'MLModel', ], ], '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', ], '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/Aws/data/machinelearning/2014-12-12/paginators-1.json.php b/lib/aws/Aws/data/machinelearning/2014-12-12/paginators-1.json.php new file mode 100644 index 0000000..7969ab2 --- /dev/null +++ b/lib/aws/Aws/data/machinelearning/2014-12-12/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/machinelearning/2014-12-12/paginators-1.json +return [ '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/Aws/data/machinelearning/2014-12-12/waiters-2.json.php b/lib/aws/Aws/data/machinelearning/2014-12-12/waiters-2.json.php new file mode 100644 index 0000000..2cf122f --- /dev/null +++ b/lib/aws/Aws/data/machinelearning/2014-12-12/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/machinelearning/2014-12-12/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'DataSourceAvailable' => [ 'delay' => 30, 'operation' => 'DescribeDataSources', 'maxAttempts' => 60, 'acceptors' => [ [ 'expected' => 'COMPLETED', 'matcher' => 'pathAll', 'state' => 'success', 'argument' => 'Results[].Status', ], [ 'expected' => 'FAILED', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'Results[].Status', ], ], ], 'MLModelAvailable' => [ 'delay' => 30, 'operation' => 'DescribeMLModels', 'maxAttempts' => 60, 'acceptors' => [ [ 'expected' => 'COMPLETED', 'matcher' => 'pathAll', 'state' => 'success', 'argument' => 'Results[].Status', ], [ 'expected' => 'FAILED', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'Results[].Status', ], ], ], 'EvaluationAvailable' => [ 'delay' => 30, 'operation' => 'DescribeEvaluations', 'maxAttempts' => 60, 'acceptors' => [ [ 'expected' => 'COMPLETED', 'matcher' => 'pathAll', 'state' => 'success', 'argument' => 'Results[].Status', ], [ 'expected' => 'FAILED', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'Results[].Status', ], ], ], 'BatchPredictionAvailable' => [ 'delay' => 30, 'operation' => 'DescribeBatchPredictions', 'maxAttempts' => 60, 'acceptors' => [ [ 'expected' => 'COMPLETED', 'matcher' => 'pathAll', 'state' => 'success', 'argument' => 'Results[].Status', ], [ 'expected' => 'FAILED', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'Results[].Status', ], ], ], ],]; diff --git a/lib/aws/Aws/data/macie/2017-12-19/api-2.json.php b/lib/aws/Aws/data/macie/2017-12-19/api-2.json.php new file mode 100644 index 0000000..b2d4b3a --- /dev/null +++ b/lib/aws/Aws/data/macie/2017-12-19/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/macie/2017-12-19/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-12-19', 'endpointPrefix' => 'macie', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Amazon Macie', 'serviceId' => 'Macie', 'signatureVersion' => 'v4', 'targetPrefix' => 'MacieService', 'uid' => 'macie-2017-12-19', ], 'operations' => [ 'AssociateMemberAccount' => [ 'name' => 'AssociateMemberAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateMemberAccountRequest', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalException', ], ], ], 'AssociateS3Resources' => [ 'name' => 'AssociateS3Resources', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateS3ResourcesRequest', ], 'output' => [ 'shape' => 'AssociateS3ResourcesResult', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalException', ], ], ], 'DisassociateMemberAccount' => [ 'name' => 'DisassociateMemberAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateMemberAccountRequest', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InternalException', ], ], ], 'DisassociateS3Resources' => [ 'name' => 'DisassociateS3Resources', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateS3ResourcesRequest', ], 'output' => [ 'shape' => 'DisassociateS3ResourcesResult', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalException', ], ], ], 'ListMemberAccounts' => [ 'name' => 'ListMemberAccounts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListMemberAccountsRequest', ], 'output' => [ 'shape' => 'ListMemberAccountsResult', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'ListS3Resources' => [ 'name' => 'ListS3Resources', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListS3ResourcesRequest', ], 'output' => [ 'shape' => 'ListS3ResourcesResult', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalException', ], ], ], 'UpdateS3Resources' => [ 'name' => 'UpdateS3Resources', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateS3ResourcesRequest', ], 'output' => [ 'shape' => 'UpdateS3ResourcesResult', ], 'errors' => [ [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalException', ], ], ], ], 'shapes' => [ 'AWSAccountId' => [ 'type' => 'string', 'pattern' => '[0-9]{12}', ], 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], 'resourceType' => [ 'shape' => 'ResourceType', ], ], 'exception' => true, ], 'AssociateMemberAccountRequest' => [ 'type' => 'structure', 'required' => [ 'memberAccountId', ], 'members' => [ 'memberAccountId' => [ 'shape' => 'AWSAccountId', ], ], ], 'AssociateS3ResourcesRequest' => [ 'type' => 'structure', 'required' => [ 's3Resources', ], 'members' => [ 'memberAccountId' => [ 'shape' => 'AWSAccountId', ], 's3Resources' => [ 'shape' => 'S3ResourcesClassification', ], ], ], 'AssociateS3ResourcesResult' => [ 'type' => 'structure', 'members' => [ 'failedS3Resources' => [ 'shape' => 'FailedS3Resources', ], ], ], 'BucketName' => [ 'type' => 'string', 'max' => 500, ], 'ClassificationType' => [ 'type' => 'structure', 'required' => [ 'oneTime', 'continuous', ], 'members' => [ 'oneTime' => [ 'shape' => 'S3OneTimeClassificationType', ], 'continuous' => [ 'shape' => 'S3ContinuousClassificationType', ], ], ], 'ClassificationTypeUpdate' => [ 'type' => 'structure', 'members' => [ 'oneTime' => [ 'shape' => 'S3OneTimeClassificationType', ], 'continuous' => [ 'shape' => 'S3ContinuousClassificationType', ], ], ], 'DisassociateMemberAccountRequest' => [ 'type' => 'structure', 'required' => [ 'memberAccountId', ], 'members' => [ 'memberAccountId' => [ 'shape' => 'AWSAccountId', ], ], ], 'DisassociateS3ResourcesRequest' => [ 'type' => 'structure', 'required' => [ 'associatedS3Resources', ], 'members' => [ 'memberAccountId' => [ 'shape' => 'AWSAccountId', ], 'associatedS3Resources' => [ 'shape' => 'S3Resources', ], ], ], 'DisassociateS3ResourcesResult' => [ 'type' => 'structure', 'members' => [ 'failedS3Resources' => [ 'shape' => 'FailedS3Resources', ], ], ], 'ErrorCode' => [ 'type' => 'string', 'max' => 10, ], 'ExceptionMessage' => [ 'type' => 'string', 'max' => 10000, ], 'FailedS3Resource' => [ 'type' => 'structure', 'members' => [ 'failedItem' => [ 'shape' => 'S3Resource', ], 'errorCode' => [ 'shape' => 'ErrorCode', ], 'errorMessage' => [ 'shape' => 'ExceptionMessage', ], ], ], 'FailedS3Resources' => [ 'type' => 'list', 'member' => [ 'shape' => 'FailedS3Resource', ], ], 'FieldName' => [ 'type' => 'string', 'max' => 1000, ], 'InternalException' => [ 'type' => 'structure', 'members' => [ 'errorCode' => [ 'shape' => 'ErrorCode', ], 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, 'fault' => true, ], 'InvalidInputException' => [ 'type' => 'structure', 'members' => [ 'errorCode' => [ 'shape' => 'ErrorCode', ], 'message' => [ 'shape' => 'ExceptionMessage', ], 'fieldName' => [ 'shape' => 'FieldName', ], ], 'exception' => true, ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'errorCode' => [ 'shape' => 'ErrorCode', ], 'message' => [ 'shape' => 'ExceptionMessage', ], 'resourceType' => [ 'shape' => 'ResourceType', ], ], 'exception' => true, ], 'ListMemberAccountsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListMemberAccountsResult' => [ 'type' => 'structure', 'members' => [ 'memberAccounts' => [ 'shape' => 'MemberAccounts', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListS3ResourcesRequest' => [ 'type' => 'structure', 'members' => [ 'memberAccountId' => [ 'shape' => 'AWSAccountId', ], 'nextToken' => [ 'shape' => 'NextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListS3ResourcesResult' => [ 'type' => 'structure', 'members' => [ 's3Resources' => [ 'shape' => 'S3ResourcesClassification', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'MaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 250, ], 'MemberAccount' => [ 'type' => 'structure', 'members' => [ 'accountId' => [ 'shape' => 'AWSAccountId', ], ], ], 'MemberAccounts' => [ 'type' => 'list', 'member' => [ 'shape' => 'MemberAccount', ], ], 'NextToken' => [ 'type' => 'string', 'max' => 500, ], 'Prefix' => [ 'type' => 'string', 'max' => 10000, ], 'ResourceType' => [ 'type' => 'string', 'max' => 1000, ], 'S3ContinuousClassificationType' => [ 'type' => 'string', 'enum' => [ 'FULL', ], ], 'S3OneTimeClassificationType' => [ 'type' => 'string', 'enum' => [ 'FULL', 'NONE', ], ], 'S3Resource' => [ 'type' => 'structure', 'required' => [ 'bucketName', ], 'members' => [ 'bucketName' => [ 'shape' => 'BucketName', ], 'prefix' => [ 'shape' => 'Prefix', ], ], ], 'S3ResourceClassification' => [ 'type' => 'structure', 'required' => [ 'bucketName', 'classificationType', ], 'members' => [ 'bucketName' => [ 'shape' => 'BucketName', ], 'prefix' => [ 'shape' => 'Prefix', ], 'classificationType' => [ 'shape' => 'ClassificationType', ], ], ], 'S3ResourceClassificationUpdate' => [ 'type' => 'structure', 'required' => [ 'bucketName', 'classificationTypeUpdate', ], 'members' => [ 'bucketName' => [ 'shape' => 'BucketName', ], 'prefix' => [ 'shape' => 'Prefix', ], 'classificationTypeUpdate' => [ 'shape' => 'ClassificationTypeUpdate', ], ], ], 'S3Resources' => [ 'type' => 'list', 'member' => [ 'shape' => 'S3Resource', ], ], 'S3ResourcesClassification' => [ 'type' => 'list', 'member' => [ 'shape' => 'S3ResourceClassification', ], ], 'S3ResourcesClassificationUpdate' => [ 'type' => 'list', 'member' => [ 'shape' => 'S3ResourceClassificationUpdate', ], ], 'UpdateS3ResourcesRequest' => [ 'type' => 'structure', 'required' => [ 's3ResourcesUpdate', ], 'members' => [ 'memberAccountId' => [ 'shape' => 'AWSAccountId', ], 's3ResourcesUpdate' => [ 'shape' => 'S3ResourcesClassificationUpdate', ], ], ], 'UpdateS3ResourcesResult' => [ 'type' => 'structure', 'members' => [ 'failedS3Resources' => [ 'shape' => 'FailedS3Resources', ], ], ], ],]; diff --git a/lib/aws/Aws/data/macie/2017-12-19/paginators-1.json.php b/lib/aws/Aws/data/macie/2017-12-19/paginators-1.json.php new file mode 100644 index 0000000..b4cd414 --- /dev/null +++ b/lib/aws/Aws/data/macie/2017-12-19/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/macie/2017-12-19/paginators-1.json +return [ 'pagination' => [ 'ListMemberAccounts' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListS3Resources' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], ],]; diff --git a/lib/aws/Aws/data/manifest.json.php b/lib/aws/Aws/data/manifest.json.php new file mode 100644 index 0000000..9098fb0 --- /dev/null +++ b/lib/aws/Aws/data/manifest.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/manifest.json +return [ 'acm-pca' => [ 'namespace' => 'ACMPCA', 'versions' => [ 'latest' => '2017-08-22', '2017-08-22' => '2017-08-22', ], ], 'acm' => [ 'namespace' => 'Acm', 'versions' => [ 'latest' => '2015-12-08', '2015-12-08' => '2015-12-08', ], ], 'alexaforbusiness' => [ 'namespace' => 'AlexaForBusiness', 'versions' => [ 'latest' => '2017-11-09', '2017-11-09' => '2017-11-09', ], ], 'amplify' => [ 'namespace' => 'Amplify', 'versions' => [ 'latest' => '2017-07-25', '2017-07-25' => '2017-07-25', ], ], 'apigateway' => [ 'namespace' => 'ApiGateway', 'versions' => [ 'latest' => '2015-07-09', '2015-07-09' => '2015-07-09', '2015-06-01' => '2015-07-09', ], ], 'apigatewaymanagementapi' => [ 'namespace' => 'ApiGatewayManagementApi', 'versions' => [ 'latest' => '2018-11-29', '2018-11-29' => '2018-11-29', ], ], 'apigatewayv2' => [ 'namespace' => 'ApiGatewayV2', 'versions' => [ 'latest' => '2018-11-29', '2018-11-29' => '2018-11-29', ], ], 'application-autoscaling' => [ 'namespace' => 'ApplicationAutoScaling', 'versions' => [ 'latest' => '2016-02-06', '2016-02-06' => '2016-02-06', ], ], 'appmesh' => [ 'namespace' => 'AppMesh', 'versions' => [ 'latest' => '2019-01-25', '2019-01-25' => '2019-01-25', '2018-10-01' => '2018-10-01', ], ], 'appstream' => [ 'namespace' => 'Appstream', 'versions' => [ 'latest' => '2016-12-01', '2016-12-01' => '2016-12-01', ], ], 'appsync' => [ 'namespace' => 'AppSync', 'versions' => [ 'latest' => '2017-07-25', '2017-07-25' => '2017-07-25', ], ], 'athena' => [ 'namespace' => 'Athena', 'versions' => [ 'latest' => '2017-05-18', '2017-05-18' => '2017-05-18', ], ], 'autoscaling-plans' => [ 'namespace' => 'AutoScalingPlans', 'versions' => [ 'latest' => '2018-01-06', '2018-01-06' => '2018-01-06', ], ], 'autoscaling' => [ 'namespace' => 'AutoScaling', 'versions' => [ 'latest' => '2011-01-01', '2011-01-01' => '2011-01-01', ], ], 'backup' => [ 'namespace' => 'Backup', 'versions' => [ 'latest' => '2018-11-15', '2018-11-15' => '2018-11-15', ], ], 'batch' => [ 'namespace' => 'Batch', 'versions' => [ 'latest' => '2016-08-10', '2016-08-10' => '2016-08-10', ], ], 'budgets' => [ 'namespace' => 'Budgets', 'versions' => [ 'latest' => '2016-10-20', '2016-10-20' => '2016-10-20', ], ], 'ce' => [ 'namespace' => 'CostExplorer', 'versions' => [ 'latest' => '2017-10-25', '2017-10-25' => '2017-10-25', ], ], 'chime' => [ 'namespace' => 'Chime', 'versions' => [ 'latest' => '2018-05-01', '2018-05-01' => '2018-05-01', ], ], 'cloud9' => [ 'namespace' => 'Cloud9', 'versions' => [ 'latest' => '2017-09-23', '2017-09-23' => '2017-09-23', ], ], 'clouddirectory' => [ 'namespace' => 'CloudDirectory', 'versions' => [ 'latest' => '2017-01-11', '2017-01-11' => '2017-01-11', '2016-05-10' => '2016-05-10', ], ], 'cloudformation' => [ 'namespace' => 'CloudFormation', 'versions' => [ 'latest' => '2010-05-15', '2010-05-15' => '2010-05-15', ], ], 'cloudfront' => [ 'namespace' => 'CloudFront', 'versions' => [ 'latest' => '2018-11-05', '2018-11-05' => '2018-11-05', '2018-06-18' => '2018-06-18', '2017-10-30' => '2017-10-30', '2017-03-25' => '2017-03-25', '2016-11-25' => '2016-11-25', '2016-09-29' => '2016-09-29', '2016-09-07' => '2016-09-07', '2016-08-20' => '2016-08-20', '2016-08-01' => '2016-08-01', '2016-01-28' => '2016-01-28', '2016-01-13' => '2018-11-05', '2015-09-17' => '2018-11-05', '2015-07-27' => '2015-07-27', '2015-04-17' => '2015-07-27', '2014-11-06' => '2015-07-27', ], ], 'cloudhsm' => [ 'namespace' => 'CloudHsm', 'versions' => [ 'latest' => '2014-05-30', '2014-05-30' => '2014-05-30', ], ], 'cloudhsmv2' => [ 'namespace' => 'CloudHSMV2', 'versions' => [ 'latest' => '2017-04-28', '2017-04-28' => '2017-04-28', ], ], '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', ], ], 'codebuild' => [ 'namespace' => 'CodeBuild', 'versions' => [ 'latest' => '2016-10-06', '2016-10-06' => '2016-10-06', ], ], 'codecommit' => [ 'namespace' => 'CodeCommit', 'versions' => [ 'latest' => '2015-04-13', '2015-04-13' => '2015-04-13', ], ], 'codedeploy' => [ 'namespace' => 'CodeDeploy', 'versions' => [ 'latest' => '2014-10-06', '2014-10-06' => '2014-10-06', ], ], 'codepipeline' => [ 'namespace' => 'CodePipeline', 'versions' => [ 'latest' => '2015-07-09', '2015-07-09' => '2015-07-09', ], ], 'codestar' => [ 'namespace' => 'CodeStar', 'versions' => [ 'latest' => '2017-04-19', '2017-04-19' => '2017-04-19', ], ], 'cognito-identity' => [ 'namespace' => 'CognitoIdentity', 'versions' => [ 'latest' => '2014-06-30', '2014-06-30' => '2014-06-30', ], ], 'cognito-idp' => [ 'namespace' => 'CognitoIdentityProvider', 'versions' => [ 'latest' => '2016-04-18', '2016-04-18' => '2016-04-18', ], ], 'cognito-sync' => [ 'namespace' => 'CognitoSync', 'versions' => [ 'latest' => '2014-06-30', '2014-06-30' => '2014-06-30', ], ], 'comprehend' => [ 'namespace' => 'Comprehend', 'versions' => [ 'latest' => '2017-11-27', '2017-11-27' => '2017-11-27', ], ], 'comprehendmedical' => [ 'namespace' => 'ComprehendMedical', 'versions' => [ 'latest' => '2018-10-30', '2018-10-30' => '2018-10-30', ], ], 'config' => [ 'namespace' => 'ConfigService', 'versions' => [ 'latest' => '2014-11-12', '2014-11-12' => '2014-11-12', ], ], 'connect' => [ 'namespace' => 'Connect', 'versions' => [ 'latest' => '2017-08-08', '2017-08-08' => '2017-08-08', ], ], 'cur' => [ 'namespace' => 'CostandUsageReportService', 'versions' => [ 'latest' => '2017-01-06', '2017-01-06' => '2017-01-06', ], ], 'data.iot' => [ 'namespace' => 'IotDataPlane', 'versions' => [ 'latest' => '2015-05-28', '2015-05-28' => '2015-05-28', ], ], 'datapipeline' => [ 'namespace' => 'DataPipeline', 'versions' => [ 'latest' => '2012-10-29', '2012-10-29' => '2012-10-29', ], ], 'datasync' => [ 'namespace' => 'DataSync', 'versions' => [ 'latest' => '2018-11-09', '2018-11-09' => '2018-11-09', ], ], 'dax' => [ 'namespace' => 'DAX', 'versions' => [ 'latest' => '2017-04-19', '2017-04-19' => '2017-04-19', ], ], 'devicefarm' => [ 'namespace' => 'DeviceFarm', 'versions' => [ 'latest' => '2015-06-23', '2015-06-23' => '2015-06-23', ], ], 'directconnect' => [ 'namespace' => 'DirectConnect', 'versions' => [ 'latest' => '2012-10-25', '2012-10-25' => '2012-10-25', ], ], 'discovery' => [ 'namespace' => 'ApplicationDiscoveryService', 'versions' => [ 'latest' => '2015-11-01', '2015-11-01' => '2015-11-01', ], ], 'dlm' => [ 'namespace' => 'DLM', 'versions' => [ 'latest' => '2018-01-12', '2018-01-12' => '2018-01-12', ], ], 'dms' => [ 'namespace' => 'DatabaseMigrationService', 'versions' => [ 'latest' => '2016-01-01', '2016-01-01' => '2016-01-01', ], ], 'docdb' => [ 'namespace' => 'DocDB', 'versions' => [ 'latest' => '2014-10-31', '2014-10-31' => '2014-10-31', ], ], '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', '2011-12-05' => '2011-12-05', ], ], 'ec2' => [ 'namespace' => 'Ec2', 'versions' => [ 'latest' => '2016-11-15', '2016-11-15' => '2016-11-15', '2016-09-15' => '2016-09-15', '2016-04-01' => '2016-04-01', '2015-10-01' => '2015-10-01', '2015-04-15' => '2016-11-15', ], ], 'ecr' => [ 'namespace' => 'Ecr', 'versions' => [ 'latest' => '2015-09-21', '2015-09-21' => '2015-09-21', ], ], 'ecs' => [ 'namespace' => 'Ecs', 'versions' => [ 'latest' => '2014-11-13', '2014-11-13' => '2014-11-13', ], ], 'eks' => [ 'namespace' => 'EKS', 'versions' => [ 'latest' => '2017-11-01', '2017-11-01' => '2017-11-01', ], ], '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', ], ], 'elasticloadbalancingv2' => [ 'namespace' => 'ElasticLoadBalancingV2', 'versions' => [ 'latest' => '2015-12-01', '2015-12-01' => '2015-12-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', ], ], 'entitlement.marketplace' => [ 'namespace' => 'MarketplaceEntitlementService', 'versions' => [ 'latest' => '2017-01-11', '2017-01-11' => '2017-01-11', ], ], 'es' => [ 'namespace' => 'ElasticsearchService', 'versions' => [ 'latest' => '2015-01-01', '2015-01-01' => '2015-01-01', ], ], 'events' => [ 'namespace' => 'CloudWatchEvents', 'versions' => [ 'latest' => '2015-10-07', '2015-10-07' => '2015-10-07', '2014-02-03' => '2015-10-07', ], ], 'firehose' => [ 'namespace' => 'Firehose', 'versions' => [ 'latest' => '2015-08-04', '2015-08-04' => '2015-08-04', ], ], 'fms' => [ 'namespace' => 'FMS', 'versions' => [ 'latest' => '2018-01-01', '2018-01-01' => '2018-01-01', ], ], 'fsx' => [ 'namespace' => 'FSx', 'versions' => [ 'latest' => '2018-03-01', '2018-03-01' => '2018-03-01', ], ], 'gamelift' => [ 'namespace' => 'GameLift', 'versions' => [ 'latest' => '2015-10-01', '2015-10-01' => '2015-10-01', ], ], 'glacier' => [ 'namespace' => 'Glacier', 'versions' => [ 'latest' => '2012-06-01', '2012-06-01' => '2012-06-01', ], ], 'globalaccelerator' => [ 'namespace' => 'GlobalAccelerator', 'versions' => [ 'latest' => '2018-08-08', '2018-08-08' => '2018-08-08', ], ], 'glue' => [ 'namespace' => 'Glue', 'versions' => [ 'latest' => '2017-03-31', '2017-03-31' => '2017-03-31', ], ], 'greengrass' => [ 'namespace' => 'Greengrass', 'versions' => [ 'latest' => '2017-06-07', '2017-06-07' => '2017-06-07', ], ], 'guardduty' => [ 'namespace' => 'GuardDuty', 'versions' => [ 'latest' => '2017-11-28', '2017-11-28' => '2017-11-28', ], ], 'health' => [ 'namespace' => 'Health', 'versions' => [ 'latest' => '2016-08-04', '2016-08-04' => '2016-08-04', ], ], 'iam' => [ 'namespace' => 'Iam', 'versions' => [ 'latest' => '2010-05-08', '2010-05-08' => '2010-05-08', ], ], 'importexport' => [ 'namespace' => 'ImportExport', 'versions' => [ 'latest' => '2010-06-01', '2010-06-01' => '2010-06-01', ], ], 'inspector' => [ 'namespace' => 'Inspector', 'versions' => [ 'latest' => '2016-02-16', '2016-02-16' => '2016-02-16', '2015-08-18' => '2016-02-16', ], ], 'iot-jobs-data' => [ 'namespace' => 'IoTJobsDataPlane', 'versions' => [ 'latest' => '2017-09-29', '2017-09-29' => '2017-09-29', ], ], 'iot' => [ 'namespace' => 'Iot', 'versions' => [ 'latest' => '2015-05-28', '2015-05-28' => '2015-05-28', ], ], 'iot1click-devices' => [ 'namespace' => 'IoT1ClickDevicesService', 'versions' => [ 'latest' => '2018-05-14', '2018-05-14' => '2018-05-14', ], ], 'iot1click-projects' => [ 'namespace' => 'IoT1ClickProjects', 'versions' => [ 'latest' => '2018-05-14', '2018-05-14' => '2018-05-14', ], ], 'iotanalytics' => [ 'namespace' => 'IoTAnalytics', 'versions' => [ 'latest' => '2017-11-27', '2017-11-27' => '2017-11-27', ], ], 'kafka' => [ 'namespace' => 'Kafka', 'versions' => [ 'latest' => '2018-11-14', '2018-11-14' => '2018-11-14', ], ], 'kinesis-video-archived-media' => [ 'namespace' => 'KinesisVideoArchivedMedia', 'versions' => [ 'latest' => '2017-09-30', '2017-09-30' => '2017-09-30', ], ], 'kinesis-video-media' => [ 'namespace' => 'KinesisVideoMedia', 'versions' => [ 'latest' => '2017-09-30', '2017-09-30' => '2017-09-30', ], ], 'kinesis' => [ 'namespace' => 'Kinesis', 'versions' => [ 'latest' => '2013-12-02', '2013-12-02' => '2013-12-02', ], ], 'kinesisanalytics' => [ 'namespace' => 'KinesisAnalytics', 'versions' => [ 'latest' => '2015-08-14', '2015-08-14' => '2015-08-14', ], ], 'kinesisanalyticsv2' => [ 'namespace' => 'KinesisAnalyticsV2', 'versions' => [ 'latest' => '2018-05-23', '2018-05-23' => '2018-05-23', ], ], 'kinesisvideo' => [ 'namespace' => 'KinesisVideo', 'versions' => [ 'latest' => '2017-09-30', '2017-09-30' => '2017-09-30', ], ], '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', ], ], 'lex-models' => [ 'namespace' => 'LexModelBuildingService', 'versions' => [ 'latest' => '2017-04-19', '2017-04-19' => '2017-04-19', ], ], 'license-manager' => [ 'namespace' => 'LicenseManager', 'versions' => [ 'latest' => '2018-08-01', '2018-08-01' => '2018-08-01', ], ], 'lightsail' => [ 'namespace' => 'Lightsail', 'versions' => [ 'latest' => '2016-11-28', '2016-11-28' => '2016-11-28', ], ], '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', ], ], 'macie' => [ 'namespace' => 'Macie', 'versions' => [ 'latest' => '2017-12-19', '2017-12-19' => '2017-12-19', ], ], 'marketplacecommerceanalytics' => [ 'namespace' => 'MarketplaceCommerceAnalytics', 'versions' => [ 'latest' => '2015-07-01', '2015-07-01' => '2015-07-01', ], ], 'mediaconnect' => [ 'namespace' => 'MediaConnect', 'versions' => [ 'latest' => '2018-11-14', '2018-11-14' => '2018-11-14', ], ], 'mediaconvert' => [ 'namespace' => 'MediaConvert', 'versions' => [ 'latest' => '2017-08-29', '2017-08-29' => '2017-08-29', ], ], 'medialive' => [ 'namespace' => 'MediaLive', 'versions' => [ 'latest' => '2017-10-14', '2017-10-14' => '2017-10-14', ], ], 'mediapackage' => [ 'namespace' => 'MediaPackage', 'versions' => [ 'latest' => '2017-10-12', '2017-10-12' => '2017-10-12', ], ], 'mediastore-data' => [ 'namespace' => 'MediaStoreData', 'versions' => [ 'latest' => '2017-09-01', '2017-09-01' => '2017-09-01', ], ], 'mediastore' => [ 'namespace' => 'MediaStore', 'versions' => [ 'latest' => '2017-09-01', '2017-09-01' => '2017-09-01', ], ], 'mediatailor' => [ 'namespace' => 'MediaTailor', 'versions' => [ 'latest' => '2018-04-23', '2018-04-23' => '2018-04-23', ], ], 'metering.marketplace' => [ 'namespace' => 'MarketplaceMetering', 'versions' => [ 'latest' => '2016-01-14', '2016-01-14' => '2016-01-14', ], ], 'mgh' => [ 'namespace' => 'MigrationHub', 'versions' => [ 'latest' => '2017-05-31', '2017-05-31' => '2017-05-31', ], ], 'mobile' => [ 'namespace' => 'Mobile', 'versions' => [ 'latest' => '2017-07-01', '2017-07-01' => '2017-07-01', ], ], 'monitoring' => [ 'namespace' => 'CloudWatch', 'versions' => [ 'latest' => '2010-08-01', '2010-08-01' => '2010-08-01', ], ], 'mq' => [ 'namespace' => 'MQ', 'versions' => [ 'latest' => '2017-11-27', '2017-11-27' => '2017-11-27', ], ], 'mturk-requester' => [ 'namespace' => 'MTurk', 'versions' => [ 'latest' => '2017-01-17', '2017-01-17' => '2017-01-17', ], ], 'neptune' => [ 'namespace' => 'Neptune', 'versions' => [ 'latest' => '2014-10-31', '2014-10-31' => '2014-10-31', ], ], 'opsworks' => [ 'namespace' => 'OpsWorks', 'versions' => [ 'latest' => '2013-02-18', '2013-02-18' => '2013-02-18', ], ], 'opsworkscm' => [ 'namespace' => 'OpsWorksCM', 'versions' => [ 'latest' => '2016-11-01', '2016-11-01' => '2016-11-01', ], ], 'organizations' => [ 'namespace' => 'Organizations', 'versions' => [ 'latest' => '2016-11-28', '2016-11-28' => '2016-11-28', ], ], 'pi' => [ 'namespace' => 'PI', 'versions' => [ 'latest' => '2018-02-27', '2018-02-27' => '2018-02-27', ], ], 'pinpoint-email' => [ 'namespace' => 'PinpointEmail', 'versions' => [ 'latest' => '2018-07-26', '2018-07-26' => '2018-07-26', ], ], 'pinpoint' => [ 'namespace' => 'Pinpoint', 'versions' => [ 'latest' => '2016-12-01', '2016-12-01' => '2016-12-01', ], ], 'polly' => [ 'namespace' => 'Polly', 'versions' => [ 'latest' => '2016-06-10', '2016-06-10' => '2016-06-10', ], ], 'pricing' => [ 'namespace' => 'Pricing', 'versions' => [ 'latest' => '2017-10-15', '2017-10-15' => '2017-10-15', ], ], 'quicksight' => [ 'namespace' => 'QuickSight', 'versions' => [ 'latest' => '2018-04-01', '2018-04-01' => '2018-04-01', ], ], 'ram' => [ 'namespace' => 'RAM', 'versions' => [ 'latest' => '2018-01-04', '2018-01-04' => '2018-01-04', ], ], 'rds-data' => [ 'namespace' => 'RDSDataService', 'versions' => [ 'latest' => '2018-08-01', '2018-08-01' => '2018-08-01', ], ], 'rds' => [ 'namespace' => 'Rds', 'versions' => [ 'latest' => '2014-10-31', '2014-10-31' => '2014-10-31', '2014-09-01' => '2014-09-01', ], ], 'redshift' => [ 'namespace' => 'Redshift', 'versions' => [ 'latest' => '2012-12-01', '2012-12-01' => '2012-12-01', ], ], 'rekognition' => [ 'namespace' => 'Rekognition', 'versions' => [ 'latest' => '2016-06-27', '2016-06-27' => '2016-06-27', ], ], 'resource-groups' => [ 'namespace' => 'ResourceGroups', 'versions' => [ 'latest' => '2017-11-27', '2017-11-27' => '2017-11-27', ], ], 'resourcegroupstaggingapi' => [ 'namespace' => 'ResourceGroupsTaggingAPI', 'versions' => [ 'latest' => '2017-01-26', '2017-01-26' => '2017-01-26', ], ], 'robomaker' => [ 'namespace' => 'RoboMaker', 'versions' => [ 'latest' => '2018-06-29', '2018-06-29' => '2018-06-29', ], ], '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', ], ], 'route53resolver' => [ 'namespace' => 'Route53Resolver', 'versions' => [ 'latest' => '2018-04-01', '2018-04-01' => '2018-04-01', ], ], 'runtime.lex' => [ 'namespace' => 'LexRuntimeService', 'versions' => [ 'latest' => '2016-11-28', '2016-11-28' => '2016-11-28', ], ], 'runtime.sagemaker' => [ 'namespace' => 'SageMakerRuntime', 'versions' => [ 'latest' => '2017-05-13', '2017-05-13' => '2017-05-13', ], ], 's3' => [ 'namespace' => 'S3', 'versions' => [ 'latest' => '2006-03-01', '2006-03-01' => '2006-03-01', ], ], 's3control' => [ 'namespace' => 'S3Control', 'versions' => [ 'latest' => '2018-08-20', '2018-08-20' => '2018-08-20', ], ], 'sagemaker' => [ 'namespace' => 'SageMaker', 'versions' => [ 'latest' => '2017-07-24', '2017-07-24' => '2017-07-24', ], ], 'secretsmanager' => [ 'namespace' => 'SecretsManager', 'versions' => [ 'latest' => '2017-10-17', '2017-10-17' => '2017-10-17', ], ], 'securityhub' => [ 'namespace' => 'SecurityHub', 'versions' => [ 'latest' => '2018-10-26', '2018-10-26' => '2018-10-26', ], ], 'serverlessrepo' => [ 'namespace' => 'ServerlessApplicationRepository', 'versions' => [ 'latest' => '2017-09-08', '2017-09-08' => '2017-09-08', ], ], 'servicecatalog' => [ 'namespace' => 'ServiceCatalog', 'versions' => [ 'latest' => '2015-12-10', '2015-12-10' => '2015-12-10', ], ], 'servicediscovery' => [ 'namespace' => 'ServiceDiscovery', 'versions' => [ 'latest' => '2017-03-14', '2017-03-14' => '2017-03-14', ], ], 'shield' => [ 'namespace' => 'Shield', 'versions' => [ 'latest' => '2016-06-02', '2016-06-02' => '2016-06-02', ], ], 'signer' => [ 'namespace' => 'signer', 'versions' => [ 'latest' => '2017-08-25', '2017-08-25' => '2017-08-25', ], ], 'sms-voice' => [ 'namespace' => 'PinpointSMSVoice', 'versions' => [ 'latest' => '2018-09-05', '2018-09-05' => '2018-09-05', ], ], 'sms' => [ 'namespace' => 'Sms', 'versions' => [ 'latest' => '2016-10-24', '2016-10-24' => '2016-10-24', ], ], 'snowball' => [ 'namespace' => 'SnowBall', 'versions' => [ 'latest' => '2016-06-30', '2016-06-30' => '2016-06-30', ], ], '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', ], ], 'states' => [ 'namespace' => 'Sfn', 'versions' => [ 'latest' => '2016-11-23', '2016-11-23' => '2016-11-23', ], ], 'storagegateway' => [ 'namespace' => 'StorageGateway', 'versions' => [ 'latest' => '2013-06-30', '2013-06-30' => '2013-06-30', ], ], 'streams.dynamodb' => [ 'namespace' => 'DynamoDbStreams', 'versions' => [ 'latest' => '2012-08-10', '2012-08-10' => '2012-08-10', ], ], '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', ], ], 'textract' => [ 'namespace' => 'Textract', 'versions' => [ 'latest' => '2018-06-27', '2018-06-27' => '2018-06-27', ], ], 'transcribe' => [ 'namespace' => 'TranscribeService', 'versions' => [ 'latest' => '2017-10-26', '2017-10-26' => '2017-10-26', ], ], 'transfer' => [ 'namespace' => 'Transfer', 'versions' => [ 'latest' => '2018-11-05', '2018-11-05' => '2018-11-05', ], ], 'translate' => [ 'namespace' => 'Translate', 'versions' => [ 'latest' => '2017-07-01', '2017-07-01' => '2017-07-01', ], ], 'waf-regional' => [ 'namespace' => 'WafRegional', 'versions' => [ 'latest' => '2016-11-28', '2016-11-28' => '2016-11-28', ], ], 'waf' => [ 'namespace' => 'Waf', 'versions' => [ 'latest' => '2015-08-24', '2015-08-24' => '2015-08-24', ], ], 'workdocs' => [ 'namespace' => 'WorkDocs', 'versions' => [ 'latest' => '2016-05-01', '2016-05-01' => '2016-05-01', ], ], 'worklink' => [ 'namespace' => 'WorkLink', 'versions' => [ 'latest' => '2018-09-25', '2018-09-25' => '2018-09-25', ], ], 'workmail' => [ 'namespace' => 'WorkMail', 'versions' => [ 'latest' => '2017-10-01', '2017-10-01' => '2017-10-01', ], ], 'workspaces' => [ 'namespace' => 'WorkSpaces', 'versions' => [ 'latest' => '2015-04-08', '2015-04-08' => '2015-04-08', ], ], 'xray' => [ 'namespace' => 'XRay', 'versions' => [ 'latest' => '2016-04-12', '2016-04-12' => '2016-04-12', ], ],]; diff --git a/lib/aws/Aws/data/marketplacecommerceanalytics/2015-07-01/api-2.json.php b/lib/aws/Aws/data/marketplacecommerceanalytics/2015-07-01/api-2.json.php new file mode 100644 index 0000000..fcfc44e --- /dev/null +++ b/lib/aws/Aws/data/marketplacecommerceanalytics/2015-07-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/marketplacecommerceanalytics/2015-07-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-07-01', 'endpointPrefix' => 'marketplacecommerceanalytics', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWS Marketplace Commerce Analytics', 'signatureVersion' => 'v4', 'signingName' => 'marketplacecommerceanalytics', 'targetPrefix' => 'MarketplaceCommerceAnalytics20150701', 'uid' => 'marketplacecommerceanalytics-2015-07-01', ], 'operations' => [ 'GenerateDataSet' => [ 'name' => 'GenerateDataSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GenerateDataSetRequest', ], 'output' => [ 'shape' => 'GenerateDataSetResult', ], 'errors' => [ [ 'shape' => 'MarketplaceCommerceAnalyticsException', ], ], ], 'StartSupportDataExport' => [ 'name' => 'StartSupportDataExport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartSupportDataExportRequest', ], 'output' => [ 'shape' => 'StartSupportDataExportResult', ], 'errors' => [ [ 'shape' => 'MarketplaceCommerceAnalyticsException', ], ], ], ], 'shapes' => [ 'CustomerDefinedValues' => [ 'type' => 'map', 'key' => [ 'shape' => 'OptionalKey', ], 'value' => [ 'shape' => 'OptionalValue', ], 'max' => 5, 'min' => 1, ], 'DataSetPublicationDate' => [ 'type' => 'timestamp', ], 'DataSetRequestId' => [ 'type' => 'string', ], 'DataSetType' => [ 'type' => 'string', 'enum' => [ 'customer_subscriber_hourly_monthly_subscriptions', 'customer_subscriber_annual_subscriptions', 'daily_business_usage_by_instance_type', 'daily_business_fees', 'daily_business_free_trial_conversions', 'daily_business_new_instances', 'daily_business_new_product_subscribers', 'daily_business_canceled_product_subscribers', 'monthly_revenue_billing_and_revenue_data', 'monthly_revenue_annual_subscriptions', 'disbursed_amount_by_product', 'disbursed_amount_by_product_with_uncollected_funds', 'disbursed_amount_by_instance_hours', 'disbursed_amount_by_customer_geo', 'disbursed_amount_by_age_of_uncollected_funds', 'disbursed_amount_by_age_of_disbursed_funds', 'customer_profile_by_industry', 'customer_profile_by_revenue', 'customer_profile_by_geography', 'sales_compensation_billed_revenue', 'us_sales_and_use_tax_records', ], 'max' => 255, 'min' => 1, ], 'DestinationS3BucketName' => [ 'type' => 'string', 'min' => 1, ], 'DestinationS3Prefix' => [ 'type' => 'string', ], 'ExceptionMessage' => [ 'type' => 'string', ], 'FromDate' => [ 'type' => 'timestamp', ], 'GenerateDataSetRequest' => [ 'type' => 'structure', 'required' => [ 'dataSetType', 'dataSetPublicationDate', 'roleNameArn', 'destinationS3BucketName', 'snsTopicArn', ], 'members' => [ 'dataSetType' => [ 'shape' => 'DataSetType', ], 'dataSetPublicationDate' => [ 'shape' => 'DataSetPublicationDate', ], 'roleNameArn' => [ 'shape' => 'RoleNameArn', ], 'destinationS3BucketName' => [ 'shape' => 'DestinationS3BucketName', ], 'destinationS3Prefix' => [ 'shape' => 'DestinationS3Prefix', ], 'snsTopicArn' => [ 'shape' => 'SnsTopicArn', ], 'customerDefinedValues' => [ 'shape' => 'CustomerDefinedValues', ], ], ], 'GenerateDataSetResult' => [ 'type' => 'structure', 'members' => [ 'dataSetRequestId' => [ 'shape' => 'DataSetRequestId', ], ], ], 'MarketplaceCommerceAnalyticsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, 'fault' => true, ], 'OptionalKey' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'OptionalValue' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'RoleNameArn' => [ 'type' => 'string', 'min' => 1, ], 'SnsTopicArn' => [ 'type' => 'string', 'min' => 1, ], 'StartSupportDataExportRequest' => [ 'type' => 'structure', 'required' => [ 'dataSetType', 'fromDate', 'roleNameArn', 'destinationS3BucketName', 'snsTopicArn', ], 'members' => [ 'dataSetType' => [ 'shape' => 'SupportDataSetType', ], 'fromDate' => [ 'shape' => 'FromDate', ], 'roleNameArn' => [ 'shape' => 'RoleNameArn', ], 'destinationS3BucketName' => [ 'shape' => 'DestinationS3BucketName', ], 'destinationS3Prefix' => [ 'shape' => 'DestinationS3Prefix', ], 'snsTopicArn' => [ 'shape' => 'SnsTopicArn', ], 'customerDefinedValues' => [ 'shape' => 'CustomerDefinedValues', ], ], ], 'StartSupportDataExportResult' => [ 'type' => 'structure', 'members' => [ 'dataSetRequestId' => [ 'shape' => 'DataSetRequestId', ], ], ], 'SupportDataSetType' => [ 'type' => 'string', 'enum' => [ 'customer_support_contacts_data', 'test_customer_support_contacts_data', ], 'max' => 255, 'min' => 1, ], ],]; diff --git a/lib/aws/Aws/data/marketplacecommerceanalytics/2015-07-01/paginators-1.json.php b/lib/aws/Aws/data/marketplacecommerceanalytics/2015-07-01/paginators-1.json.php new file mode 100644 index 0000000..6766bb4 --- /dev/null +++ b/lib/aws/Aws/data/marketplacecommerceanalytics/2015-07-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/marketplacecommerceanalytics/2015-07-01/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/mediaconnect/2018-11-14/api-2.json.php b/lib/aws/Aws/data/mediaconnect/2018-11-14/api-2.json.php new file mode 100644 index 0000000..bf9bae6 --- /dev/null +++ b/lib/aws/Aws/data/mediaconnect/2018-11-14/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mediaconnect/2018-11-14/api-2.json +return [ 'metadata' => [ 'apiVersion' => '2018-11-14', 'endpointPrefix' => 'mediaconnect', 'signingName' => 'mediaconnect', 'serviceFullName' => 'AWS MediaConnect', 'serviceId' => 'MediaConnect', 'protocol' => 'rest-json', 'jsonVersion' => '1.1', 'uid' => 'mediaconnect-2018-11-14', 'signatureVersion' => 'v4', ], 'operations' => [ 'AddFlowOutputs' => [ 'name' => 'AddFlowOutputs', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/flows/{flowArn}/outputs', 'responseCode' => 201, ], 'input' => [ 'shape' => 'AddFlowOutputsRequest', ], 'output' => [ 'shape' => 'AddFlowOutputsResponse', ], 'errors' => [ [ 'shape' => 'AddFlowOutputs420Exception', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateFlow' => [ 'name' => 'CreateFlow', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/flows', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateFlowRequest', ], 'output' => [ 'shape' => 'CreateFlowResponse', ], 'errors' => [ [ 'shape' => 'CreateFlow420Exception', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteFlow' => [ 'name' => 'DeleteFlow', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/flows/{flowArn}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteFlowRequest', ], 'output' => [ 'shape' => 'DeleteFlowResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeFlow' => [ 'name' => 'DescribeFlow', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/flows/{flowArn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeFlowRequest', ], 'output' => [ 'shape' => 'DescribeFlowResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GrantFlowEntitlements' => [ 'name' => 'GrantFlowEntitlements', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/flows/{flowArn}/entitlements', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GrantFlowEntitlementsRequest', ], 'output' => [ 'shape' => 'GrantFlowEntitlementsResponse', ], 'errors' => [ [ 'shape' => 'GrantFlowEntitlements420Exception', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListEntitlements' => [ 'name' => 'ListEntitlements', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/entitlements', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListEntitlementsRequest', ], 'output' => [ 'shape' => 'ListEntitlementsResponse', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'ListFlows' => [ 'name' => 'ListFlows', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/flows', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListFlowsRequest', ], 'output' => [ 'shape' => 'ListFlowsResponse', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/tags/{resourceArn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'RemoveFlowOutput' => [ 'name' => 'RemoveFlowOutput', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/flows/{flowArn}/outputs/{outputArn}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'RemoveFlowOutputRequest', ], 'output' => [ 'shape' => 'RemoveFlowOutputResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'RevokeFlowEntitlement' => [ 'name' => 'RevokeFlowEntitlement', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/flows/{flowArn}/entitlements/{entitlementArn}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'RevokeFlowEntitlementRequest', ], 'output' => [ 'shape' => 'RevokeFlowEntitlementResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'StartFlow' => [ 'name' => 'StartFlow', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/flows/start/{flowArn}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'StartFlowRequest', ], 'output' => [ 'shape' => 'StartFlowResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'StopFlow' => [ 'name' => 'StopFlow', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/flows/stop/{flowArn}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'StopFlowRequest', ], 'output' => [ 'shape' => 'StopFlowResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/tags/{resourceArn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/tags/{resourceArn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'UpdateFlowEntitlement' => [ 'name' => 'UpdateFlowEntitlement', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/flows/{flowArn}/entitlements/{entitlementArn}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateFlowEntitlementRequest', ], 'output' => [ 'shape' => 'UpdateFlowEntitlementResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateFlowOutput' => [ 'name' => 'UpdateFlowOutput', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/flows/{flowArn}/outputs/{outputArn}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateFlowOutputRequest', ], 'output' => [ 'shape' => 'UpdateFlowOutputResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateFlowSource' => [ 'name' => 'UpdateFlowSource', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/flows/{flowArn}/source/{sourceArn}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateFlowSourceRequest', ], 'output' => [ 'shape' => 'UpdateFlowSourceResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], ], 'shapes' => [ 'AddFlowOutputs420Exception' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'required' => [ 'Message', ], 'exception' => true, 'error' => [ 'httpStatusCode' => 420, ], ], 'AddFlowOutputsRequest' => [ 'type' => 'structure', 'members' => [ 'FlowArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'flowArn', ], 'Outputs' => [ 'shape' => '__listOfAddOutputRequest', 'locationName' => 'outputs', ], ], 'required' => [ 'FlowArn', 'Outputs', ], ], 'AddFlowOutputsResponse' => [ 'type' => 'structure', 'members' => [ 'FlowArn' => [ 'shape' => '__string', 'locationName' => 'flowArn', ], 'Outputs' => [ 'shape' => '__listOfOutput', 'locationName' => 'outputs', ], ], ], 'AddOutputRequest' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'Destination' => [ 'shape' => '__string', 'locationName' => 'destination', ], 'Encryption' => [ 'shape' => 'Encryption', 'locationName' => 'encryption', ], 'MaxLatency' => [ 'shape' => '__integer', 'locationName' => 'maxLatency', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'Port' => [ 'shape' => '__integer', 'locationName' => 'port', ], 'Protocol' => [ 'shape' => 'Protocol', 'locationName' => 'protocol', ], 'SmoothingLatency' => [ 'shape' => '__integer', 'locationName' => 'smoothingLatency', ], 'StreamId' => [ 'shape' => '__string', 'locationName' => 'streamId', ], ], 'required' => [ 'Destination', 'Port', 'Protocol', ], ], 'Algorithm' => [ 'type' => 'string', 'enum' => [ 'aes128', 'aes192', 'aes256', ], ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'required' => [ 'Message', ], 'exception' => true, 'error' => [ 'httpStatusCode' => 400, ], ], 'CreateFlow420Exception' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'required' => [ 'Message', ], 'exception' => true, 'error' => [ 'httpStatusCode' => 420, ], ], 'CreateFlowRequest' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => '__string', 'locationName' => 'availabilityZone', ], 'Entitlements' => [ 'shape' => '__listOfGrantEntitlementRequest', 'locationName' => 'entitlements', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'Outputs' => [ 'shape' => '__listOfAddOutputRequest', 'locationName' => 'outputs', ], 'Source' => [ 'shape' => 'SetSourceRequest', 'locationName' => 'source', ], ], 'required' => [ 'Source', 'Name', ], ], 'CreateFlowResponse' => [ 'type' => 'structure', 'members' => [ 'Flow' => [ 'shape' => 'Flow', 'locationName' => 'flow', ], ], ], 'DeleteFlowRequest' => [ 'type' => 'structure', 'members' => [ 'FlowArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'flowArn', ], ], 'required' => [ 'FlowArn', ], ], 'DeleteFlowResponse' => [ 'type' => 'structure', 'members' => [ 'FlowArn' => [ 'shape' => '__string', 'locationName' => 'flowArn', ], 'Status' => [ 'shape' => 'Status', 'locationName' => 'status', ], ], ], 'DescribeFlowRequest' => [ 'type' => 'structure', 'members' => [ 'FlowArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'flowArn', ], ], 'required' => [ 'FlowArn', ], ], 'DescribeFlowResponse' => [ 'type' => 'structure', 'members' => [ 'Flow' => [ 'shape' => 'Flow', 'locationName' => 'flow', ], 'Messages' => [ 'shape' => 'Messages', 'locationName' => 'messages', ], ], ], 'Encryption' => [ 'type' => 'structure', 'members' => [ 'Algorithm' => [ 'shape' => 'Algorithm', 'locationName' => 'algorithm', ], 'KeyType' => [ 'shape' => 'KeyType', 'locationName' => 'keyType', ], 'RoleArn' => [ 'shape' => '__string', 'locationName' => 'roleArn', ], 'SecretArn' => [ 'shape' => '__string', 'locationName' => 'secretArn', ], ], 'required' => [ 'SecretArn', 'Algorithm', 'RoleArn', ], ], 'Entitlement' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'Encryption' => [ 'shape' => 'Encryption', 'locationName' => 'encryption', ], 'EntitlementArn' => [ 'shape' => '__string', 'locationName' => 'entitlementArn', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'Subscribers' => [ 'shape' => '__listOf__string', 'locationName' => 'subscribers', ], ], 'required' => [ 'EntitlementArn', 'Subscribers', 'Name', ], ], 'Flow' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => '__string', 'locationName' => 'availabilityZone', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'EgressIp' => [ 'shape' => '__string', 'locationName' => 'egressIp', ], 'Entitlements' => [ 'shape' => '__listOfEntitlement', 'locationName' => 'entitlements', ], 'FlowArn' => [ 'shape' => '__string', 'locationName' => 'flowArn', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'Outputs' => [ 'shape' => '__listOfOutput', 'locationName' => 'outputs', ], 'Source' => [ 'shape' => 'Source', 'locationName' => 'source', ], 'Status' => [ 'shape' => 'Status', 'locationName' => 'status', ], ], 'required' => [ 'Status', 'Entitlements', 'Outputs', 'AvailabilityZone', 'FlowArn', 'Source', 'Name', ], ], 'ForbiddenException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'required' => [ 'Message', ], 'exception' => true, 'error' => [ 'httpStatusCode' => 403, ], ], 'GrantEntitlementRequest' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'Encryption' => [ 'shape' => 'Encryption', 'locationName' => 'encryption', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'Subscribers' => [ 'shape' => '__listOf__string', 'locationName' => 'subscribers', ], ], 'required' => [ 'Subscribers', ], ], 'GrantFlowEntitlements420Exception' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'required' => [ 'Message', ], 'exception' => true, 'error' => [ 'httpStatusCode' => 420, ], ], 'GrantFlowEntitlementsRequest' => [ 'type' => 'structure', 'members' => [ 'Entitlements' => [ 'shape' => '__listOfGrantEntitlementRequest', 'locationName' => 'entitlements', ], 'FlowArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'flowArn', ], ], 'required' => [ 'FlowArn', 'Entitlements', ], ], 'GrantFlowEntitlementsResponse' => [ 'type' => 'structure', 'members' => [ 'Entitlements' => [ 'shape' => '__listOfEntitlement', 'locationName' => 'entitlements', ], 'FlowArn' => [ 'shape' => '__string', 'locationName' => 'flowArn', ], ], ], 'InternalServerErrorException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'required' => [ 'Message', ], 'exception' => true, 'error' => [ 'httpStatusCode' => 500, ], ], 'KeyType' => [ 'type' => 'string', 'enum' => [ 'static-key', ], ], 'ListEntitlementsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListEntitlementsResponse' => [ 'type' => 'structure', 'members' => [ 'Entitlements' => [ 'shape' => '__listOfListedEntitlement', 'locationName' => 'entitlements', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'ListFlowsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListFlowsResponse' => [ 'type' => 'structure', 'members' => [ 'Flows' => [ 'shape' => '__listOfListedFlow', 'locationName' => 'flows', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'resourceArn', ], ], 'required' => [ 'ResourceArn', ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], ], 'ListedEntitlement' => [ 'type' => 'structure', 'members' => [ 'EntitlementArn' => [ 'shape' => '__string', 'locationName' => 'entitlementArn', ], 'EntitlementName' => [ 'shape' => '__string', 'locationName' => 'entitlementName', ], ], 'required' => [ 'EntitlementArn', 'EntitlementName', ], ], 'ListedFlow' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => '__string', 'locationName' => 'availabilityZone', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'FlowArn' => [ 'shape' => '__string', 'locationName' => 'flowArn', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'SourceType' => [ 'shape' => 'SourceType', 'locationName' => 'sourceType', ], 'Status' => [ 'shape' => 'Status', 'locationName' => 'status', ], ], 'required' => [ 'Status', 'Description', 'SourceType', 'AvailabilityZone', 'FlowArn', 'Name', ], ], 'MaxResults' => [ 'type' => 'integer', 'min' => 1, 'max' => 1000, ], 'Messages' => [ 'type' => 'structure', 'members' => [ 'Errors' => [ 'shape' => '__listOf__string', 'locationName' => 'errors', ], ], 'required' => [ 'Errors', ], ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'required' => [ 'Message', ], 'exception' => true, 'error' => [ 'httpStatusCode' => 404, ], ], 'Output' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'Destination' => [ 'shape' => '__string', 'locationName' => 'destination', ], 'Encryption' => [ 'shape' => 'Encryption', 'locationName' => 'encryption', ], 'EntitlementArn' => [ 'shape' => '__string', 'locationName' => 'entitlementArn', ], 'MediaLiveInputArn' => [ 'shape' => '__string', 'locationName' => 'mediaLiveInputArn', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'OutputArn' => [ 'shape' => '__string', 'locationName' => 'outputArn', ], 'Port' => [ 'shape' => '__integer', 'locationName' => 'port', ], 'Transport' => [ 'shape' => 'Transport', 'locationName' => 'transport', ], ], 'required' => [ 'OutputArn', 'Name', ], ], 'Protocol' => [ 'type' => 'string', 'enum' => [ 'zixi-push', 'rtp-fec', 'rtp', ], ], 'RemoveFlowOutputRequest' => [ 'type' => 'structure', 'members' => [ 'FlowArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'flowArn', ], 'OutputArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'outputArn', ], ], 'required' => [ 'FlowArn', 'OutputArn', ], ], 'RemoveFlowOutputResponse' => [ 'type' => 'structure', 'members' => [ 'FlowArn' => [ 'shape' => '__string', 'locationName' => 'flowArn', ], 'OutputArn' => [ 'shape' => '__string', 'locationName' => 'outputArn', ], ], ], 'ResponseError' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'required' => [ 'Message', ], ], 'RevokeFlowEntitlementRequest' => [ 'type' => 'structure', 'members' => [ 'EntitlementArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'entitlementArn', ], 'FlowArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'flowArn', ], ], 'required' => [ 'FlowArn', 'EntitlementArn', ], ], 'RevokeFlowEntitlementResponse' => [ 'type' => 'structure', 'members' => [ 'EntitlementArn' => [ 'shape' => '__string', 'locationName' => 'entitlementArn', ], 'FlowArn' => [ 'shape' => '__string', 'locationName' => 'flowArn', ], ], ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'required' => [ 'Message', ], 'exception' => true, 'error' => [ 'httpStatusCode' => 503, ], ], 'SetSourceRequest' => [ 'type' => 'structure', 'members' => [ 'Decryption' => [ 'shape' => 'Encryption', 'locationName' => 'decryption', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'EntitlementArn' => [ 'shape' => '__string', 'locationName' => 'entitlementArn', ], 'IngestPort' => [ 'shape' => '__integer', 'locationName' => 'ingestPort', ], 'MaxBitrate' => [ 'shape' => '__integer', 'locationName' => 'maxBitrate', ], 'MaxLatency' => [ 'shape' => '__integer', 'locationName' => 'maxLatency', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'Protocol' => [ 'shape' => 'Protocol', 'locationName' => 'protocol', ], 'StreamId' => [ 'shape' => '__string', 'locationName' => 'streamId', ], 'WhitelistCidr' => [ 'shape' => '__string', 'locationName' => 'whitelistCidr', ], ], ], 'Source' => [ 'type' => 'structure', 'members' => [ 'Decryption' => [ 'shape' => 'Encryption', 'locationName' => 'decryption', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'EntitlementArn' => [ 'shape' => '__string', 'locationName' => 'entitlementArn', ], 'IngestIp' => [ 'shape' => '__string', 'locationName' => 'ingestIp', ], 'IngestPort' => [ 'shape' => '__integer', 'locationName' => 'ingestPort', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'SourceArn' => [ 'shape' => '__string', 'locationName' => 'sourceArn', ], 'Transport' => [ 'shape' => 'Transport', 'locationName' => 'transport', ], 'WhitelistCidr' => [ 'shape' => '__string', 'locationName' => 'whitelistCidr', ], ], 'required' => [ 'SourceArn', 'Name', ], ], 'SourceType' => [ 'type' => 'string', 'enum' => [ 'OWNED', 'ENTITLED', ], ], 'StartFlowRequest' => [ 'type' => 'structure', 'members' => [ 'FlowArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'flowArn', ], ], 'required' => [ 'FlowArn', ], ], 'StartFlowResponse' => [ 'type' => 'structure', 'members' => [ 'FlowArn' => [ 'shape' => '__string', 'locationName' => 'flowArn', ], 'Status' => [ 'shape' => 'Status', 'locationName' => 'status', ], ], ], 'Status' => [ 'type' => 'string', 'enum' => [ 'STANDBY', 'ACTIVE', 'UPDATING', 'DELETING', 'STARTING', 'STOPPING', 'ERROR', ], ], 'StopFlowRequest' => [ 'type' => 'structure', 'members' => [ 'FlowArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'flowArn', ], ], 'required' => [ 'FlowArn', ], ], 'StopFlowResponse' => [ 'type' => 'structure', 'members' => [ 'FlowArn' => [ 'shape' => '__string', 'locationName' => 'flowArn', ], 'Status' => [ 'shape' => 'Status', 'locationName' => 'status', ], ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], 'required' => [ 'ResourceArn', 'Tags', ], ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'required' => [ 'Message', ], 'exception' => true, 'error' => [ 'httpStatusCode' => 429, ], ], 'Transport' => [ 'type' => 'structure', 'members' => [ 'MaxBitrate' => [ 'shape' => '__integer', 'locationName' => 'maxBitrate', ], 'MaxLatency' => [ 'shape' => '__integer', 'locationName' => 'maxLatency', ], 'Protocol' => [ 'shape' => 'Protocol', 'locationName' => 'protocol', ], 'SmoothingLatency' => [ 'shape' => '__integer', 'locationName' => 'smoothingLatency', ], 'StreamId' => [ 'shape' => '__string', 'locationName' => 'streamId', ], ], 'required' => [ 'Protocol', ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'TagKeys' => [ 'shape' => '__listOf__string', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], 'required' => [ 'TagKeys', 'ResourceArn', ], ], 'UpdateEncryption' => [ 'type' => 'structure', 'members' => [ 'Algorithm' => [ 'shape' => 'Algorithm', 'locationName' => 'algorithm', ], 'KeyType' => [ 'shape' => 'KeyType', 'locationName' => 'keyType', ], 'RoleArn' => [ 'shape' => '__string', 'locationName' => 'roleArn', ], 'SecretArn' => [ 'shape' => '__string', 'locationName' => 'secretArn', ], ], ], 'UpdateFlowEntitlementRequest' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'Encryption' => [ 'shape' => 'UpdateEncryption', 'locationName' => 'encryption', ], 'EntitlementArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'entitlementArn', ], 'FlowArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'flowArn', ], 'Subscribers' => [ 'shape' => '__listOf__string', 'locationName' => 'subscribers', ], ], 'required' => [ 'FlowArn', 'EntitlementArn', ], ], 'UpdateFlowEntitlementResponse' => [ 'type' => 'structure', 'members' => [ 'Entitlement' => [ 'shape' => 'Entitlement', 'locationName' => 'entitlement', ], 'FlowArn' => [ 'shape' => '__string', 'locationName' => 'flowArn', ], ], ], 'UpdateFlowOutputRequest' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'Destination' => [ 'shape' => '__string', 'locationName' => 'destination', ], 'Encryption' => [ 'shape' => 'UpdateEncryption', 'locationName' => 'encryption', ], 'FlowArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'flowArn', ], 'MaxLatency' => [ 'shape' => '__integer', 'locationName' => 'maxLatency', ], 'OutputArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'outputArn', ], 'Port' => [ 'shape' => '__integer', 'locationName' => 'port', ], 'Protocol' => [ 'shape' => 'Protocol', 'locationName' => 'protocol', ], 'SmoothingLatency' => [ 'shape' => '__integer', 'locationName' => 'smoothingLatency', ], 'StreamId' => [ 'shape' => '__string', 'locationName' => 'streamId', ], ], 'required' => [ 'FlowArn', 'OutputArn', ], ], 'UpdateFlowOutputResponse' => [ 'type' => 'structure', 'members' => [ 'FlowArn' => [ 'shape' => '__string', 'locationName' => 'flowArn', ], 'Output' => [ 'shape' => 'Output', 'locationName' => 'output', ], ], ], 'UpdateFlowSourceRequest' => [ 'type' => 'structure', 'members' => [ 'Decryption' => [ 'shape' => 'UpdateEncryption', 'locationName' => 'decryption', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'EntitlementArn' => [ 'shape' => '__string', 'locationName' => 'entitlementArn', ], 'FlowArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'flowArn', ], 'IngestPort' => [ 'shape' => '__integer', 'locationName' => 'ingestPort', ], 'MaxBitrate' => [ 'shape' => '__integer', 'locationName' => 'maxBitrate', ], 'MaxLatency' => [ 'shape' => '__integer', 'locationName' => 'maxLatency', ], 'Protocol' => [ 'shape' => 'Protocol', 'locationName' => 'protocol', ], 'SourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'sourceArn', ], 'StreamId' => [ 'shape' => '__string', 'locationName' => 'streamId', ], 'WhitelistCidr' => [ 'shape' => '__string', 'locationName' => 'whitelistCidr', ], ], 'required' => [ 'FlowArn', 'SourceArn', ], ], 'UpdateFlowSourceResponse' => [ 'type' => 'structure', 'members' => [ 'FlowArn' => [ 'shape' => '__string', 'locationName' => 'flowArn', ], 'Source' => [ 'shape' => 'Source', 'locationName' => 'source', ], ], ], '__boolean' => [ 'type' => 'boolean', ], '__double' => [ 'type' => 'double', ], '__integer' => [ 'type' => 'integer', ], '__listOfAddOutputRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'AddOutputRequest', ], ], '__listOfEntitlement' => [ 'type' => 'list', 'member' => [ 'shape' => 'Entitlement', ], ], '__listOfGrantEntitlementRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'GrantEntitlementRequest', ], ], '__listOfListedEntitlement' => [ 'type' => 'list', 'member' => [ 'shape' => 'ListedEntitlement', ], ], '__listOfListedFlow' => [ 'type' => 'list', 'member' => [ 'shape' => 'ListedFlow', ], ], '__listOfOutput' => [ 'type' => 'list', 'member' => [ 'shape' => 'Output', ], ], '__listOf__string' => [ 'type' => 'list', 'member' => [ 'shape' => '__string', ], ], '__long' => [ 'type' => 'long', ], '__mapOf__string' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => '__string', ], ], '__string' => [ 'type' => 'string', ], '__timestampIso8601' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], '__timestampUnix' => [ 'type' => 'timestamp', 'timestampFormat' => 'unixTimestamp', ], ],]; diff --git a/lib/aws/Aws/data/mediaconnect/2018-11-14/paginators-1.json.php b/lib/aws/Aws/data/mediaconnect/2018-11-14/paginators-1.json.php new file mode 100644 index 0000000..b6f68ee --- /dev/null +++ b/lib/aws/Aws/data/mediaconnect/2018-11-14/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mediaconnect/2018-11-14/paginators-1.json +return [ 'pagination' => [ 'ListFlows' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', 'result_key' => 'Flows', ], ],]; diff --git a/lib/aws/Aws/data/mediaconvert/2017-08-29/api-2.json.php b/lib/aws/Aws/data/mediaconvert/2017-08-29/api-2.json.php new file mode 100644 index 0000000..cb436a3 --- /dev/null +++ b/lib/aws/Aws/data/mediaconvert/2017-08-29/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mediaconvert/2017-08-29/api-2.json +return [ 'metadata' => [ 'apiVersion' => '2017-08-29', 'endpointPrefix' => 'mediaconvert', 'signingName' => 'mediaconvert', 'serviceFullName' => 'AWS Elemental MediaConvert', 'serviceId' => 'MediaConvert', 'protocol' => 'rest-json', 'jsonVersion' => '1.1', 'uid' => 'mediaconvert-2017-08-29', 'signatureVersion' => 'v4', 'serviceAbbreviation' => 'MediaConvert', ], 'operations' => [ 'AssociateCertificate' => [ 'name' => 'AssociateCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-08-29/certificates', 'responseCode' => 201, ], 'input' => [ 'shape' => 'AssociateCertificateRequest', ], 'output' => [ 'shape' => 'AssociateCertificateResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'CancelJob' => [ 'name' => 'CancelJob', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2017-08-29/jobs/{id}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CancelJobRequest', ], 'output' => [ 'shape' => 'CancelJobResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'CreateJob' => [ 'name' => 'CreateJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-08-29/jobs', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateJobRequest', ], 'output' => [ 'shape' => 'CreateJobResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'CreateJobTemplate' => [ 'name' => 'CreateJobTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-08-29/jobTemplates', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateJobTemplateRequest', ], 'output' => [ 'shape' => 'CreateJobTemplateResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'CreatePreset' => [ 'name' => 'CreatePreset', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-08-29/presets', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreatePresetRequest', ], 'output' => [ 'shape' => 'CreatePresetResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'CreateQueue' => [ 'name' => 'CreateQueue', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-08-29/queues', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateQueueRequest', ], 'output' => [ 'shape' => 'CreateQueueResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'DeleteJobTemplate' => [ 'name' => 'DeleteJobTemplate', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2017-08-29/jobTemplates/{name}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteJobTemplateRequest', ], 'output' => [ 'shape' => 'DeleteJobTemplateResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'DeletePreset' => [ 'name' => 'DeletePreset', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2017-08-29/presets/{name}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeletePresetRequest', ], 'output' => [ 'shape' => 'DeletePresetResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'DeleteQueue' => [ 'name' => 'DeleteQueue', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2017-08-29/queues/{name}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteQueueRequest', ], 'output' => [ 'shape' => 'DeleteQueueResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'DescribeEndpoints' => [ 'name' => 'DescribeEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-08-29/endpoints', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeEndpointsRequest', ], 'output' => [ 'shape' => 'DescribeEndpointsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'DisassociateCertificate' => [ 'name' => 'DisassociateCertificate', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2017-08-29/certificates/{arn}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DisassociateCertificateRequest', ], 'output' => [ 'shape' => 'DisassociateCertificateResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'GetJob' => [ 'name' => 'GetJob', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-08-29/jobs/{id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetJobRequest', ], 'output' => [ 'shape' => 'GetJobResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'GetJobTemplate' => [ 'name' => 'GetJobTemplate', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-08-29/jobTemplates/{name}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetJobTemplateRequest', ], 'output' => [ 'shape' => 'GetJobTemplateResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'GetPreset' => [ 'name' => 'GetPreset', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-08-29/presets/{name}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPresetRequest', ], 'output' => [ 'shape' => 'GetPresetResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'GetQueue' => [ 'name' => 'GetQueue', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-08-29/queues/{name}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetQueueRequest', ], 'output' => [ 'shape' => 'GetQueueResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'ListJobTemplates' => [ 'name' => 'ListJobTemplates', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-08-29/jobTemplates', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListJobTemplatesRequest', ], 'output' => [ 'shape' => 'ListJobTemplatesResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'ListJobs' => [ 'name' => 'ListJobs', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-08-29/jobs', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListJobsRequest', ], 'output' => [ 'shape' => 'ListJobsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'ListPresets' => [ 'name' => 'ListPresets', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-08-29/presets', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPresetsRequest', ], 'output' => [ 'shape' => 'ListPresetsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'ListQueues' => [ 'name' => 'ListQueues', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-08-29/queues', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListQueuesRequest', ], 'output' => [ 'shape' => 'ListQueuesResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/2017-08-29/tags/{arn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/2017-08-29/tags', 'responseCode' => 200, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2017-08-29/tags/{arn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateJobTemplate' => [ 'name' => 'UpdateJobTemplate', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2017-08-29/jobTemplates/{name}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateJobTemplateRequest', ], 'output' => [ 'shape' => 'UpdateJobTemplateResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdatePreset' => [ 'name' => 'UpdatePreset', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2017-08-29/presets/{name}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdatePresetRequest', ], 'output' => [ 'shape' => 'UpdatePresetResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateQueue' => [ 'name' => 'UpdateQueue', 'http' => [ 'method' => 'PUT', 'requestUri' => '/2017-08-29/queues/{name}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateQueueRequest', ], 'output' => [ 'shape' => 'UpdateQueueResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], ], 'shapes' => [ 'AacAudioDescriptionBroadcasterMix' => [ 'type' => 'string', 'enum' => [ 'BROADCASTER_MIXED_AD', 'NORMAL', ], ], 'AacCodecProfile' => [ 'type' => 'string', 'enum' => [ 'LC', 'HEV1', 'HEV2', ], ], 'AacCodingMode' => [ 'type' => 'string', 'enum' => [ 'AD_RECEIVER_MIX', 'CODING_MODE_1_0', 'CODING_MODE_1_1', 'CODING_MODE_2_0', 'CODING_MODE_5_1', ], ], 'AacRateControlMode' => [ 'type' => 'string', 'enum' => [ 'CBR', 'VBR', ], ], 'AacRawFormat' => [ 'type' => 'string', 'enum' => [ 'LATM_LOAS', 'NONE', ], ], 'AacSettings' => [ 'type' => 'structure', 'members' => [ 'AudioDescriptionBroadcasterMix' => [ 'shape' => 'AacAudioDescriptionBroadcasterMix', 'locationName' => 'audioDescriptionBroadcasterMix', ], 'Bitrate' => [ 'shape' => '__integerMin6000Max1024000', 'locationName' => 'bitrate', ], 'CodecProfile' => [ 'shape' => 'AacCodecProfile', 'locationName' => 'codecProfile', ], 'CodingMode' => [ 'shape' => 'AacCodingMode', 'locationName' => 'codingMode', ], 'RateControlMode' => [ 'shape' => 'AacRateControlMode', 'locationName' => 'rateControlMode', ], 'RawFormat' => [ 'shape' => 'AacRawFormat', 'locationName' => 'rawFormat', ], 'SampleRate' => [ 'shape' => '__integerMin8000Max96000', 'locationName' => 'sampleRate', ], 'Specification' => [ 'shape' => 'AacSpecification', 'locationName' => 'specification', ], 'VbrQuality' => [ 'shape' => 'AacVbrQuality', 'locationName' => 'vbrQuality', ], ], ], 'AacSpecification' => [ 'type' => 'string', 'enum' => [ 'MPEG2', 'MPEG4', ], ], 'AacVbrQuality' => [ 'type' => 'string', 'enum' => [ 'LOW', 'MEDIUM_LOW', 'MEDIUM_HIGH', 'HIGH', ], ], 'Ac3BitstreamMode' => [ 'type' => 'string', 'enum' => [ 'COMPLETE_MAIN', 'COMMENTARY', 'DIALOGUE', 'EMERGENCY', 'HEARING_IMPAIRED', 'MUSIC_AND_EFFECTS', 'VISUALLY_IMPAIRED', 'VOICE_OVER', ], ], 'Ac3CodingMode' => [ 'type' => 'string', 'enum' => [ 'CODING_MODE_1_0', 'CODING_MODE_1_1', 'CODING_MODE_2_0', 'CODING_MODE_3_2_LFE', ], ], 'Ac3DynamicRangeCompressionProfile' => [ 'type' => 'string', 'enum' => [ 'FILM_STANDARD', 'NONE', ], ], 'Ac3LfeFilter' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'Ac3MetadataControl' => [ 'type' => 'string', 'enum' => [ 'FOLLOW_INPUT', 'USE_CONFIGURED', ], ], 'Ac3Settings' => [ 'type' => 'structure', 'members' => [ 'Bitrate' => [ 'shape' => '__integerMin64000Max640000', 'locationName' => 'bitrate', ], 'BitstreamMode' => [ 'shape' => 'Ac3BitstreamMode', 'locationName' => 'bitstreamMode', ], 'CodingMode' => [ 'shape' => 'Ac3CodingMode', 'locationName' => 'codingMode', ], 'Dialnorm' => [ 'shape' => '__integerMin1Max31', 'locationName' => 'dialnorm', ], 'DynamicRangeCompressionProfile' => [ 'shape' => 'Ac3DynamicRangeCompressionProfile', 'locationName' => 'dynamicRangeCompressionProfile', ], 'LfeFilter' => [ 'shape' => 'Ac3LfeFilter', 'locationName' => 'lfeFilter', ], 'MetadataControl' => [ 'shape' => 'Ac3MetadataControl', 'locationName' => 'metadataControl', ], 'SampleRate' => [ 'shape' => '__integerMin48000Max48000', 'locationName' => 'sampleRate', ], ], ], 'AccelerationMode' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'AccelerationSettings' => [ 'type' => 'structure', 'members' => [ 'Mode' => [ 'shape' => 'AccelerationMode', 'locationName' => 'mode', ], ], 'required' => [ 'Mode', ], ], 'AfdSignaling' => [ 'type' => 'string', 'enum' => [ 'NONE', 'AUTO', 'FIXED', ], ], 'AiffSettings' => [ 'type' => 'structure', 'members' => [ 'BitDepth' => [ 'shape' => '__integerMin16Max24', 'locationName' => 'bitDepth', ], 'Channels' => [ 'shape' => '__integerMin1Max2', 'locationName' => 'channels', ], 'SampleRate' => [ 'shape' => '__integerMin8000Max192000', 'locationName' => 'sampleRate', ], ], ], 'AncillarySourceSettings' => [ 'type' => 'structure', 'members' => [ 'SourceAncillaryChannelNumber' => [ 'shape' => '__integerMin1Max4', 'locationName' => 'sourceAncillaryChannelNumber', ], ], ], 'AntiAlias' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'AssociateCertificateRequest' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], ], 'required' => [ 'Arn', ], ], 'AssociateCertificateResponse' => [ 'type' => 'structure', 'members' => [], ], 'AudioCodec' => [ 'type' => 'string', 'enum' => [ 'AAC', 'MP2', 'WAV', 'AIFF', 'AC3', 'EAC3', 'PASSTHROUGH', ], ], 'AudioCodecSettings' => [ 'type' => 'structure', 'members' => [ 'AacSettings' => [ 'shape' => 'AacSettings', 'locationName' => 'aacSettings', ], 'Ac3Settings' => [ 'shape' => 'Ac3Settings', 'locationName' => 'ac3Settings', ], 'AiffSettings' => [ 'shape' => 'AiffSettings', 'locationName' => 'aiffSettings', ], 'Codec' => [ 'shape' => 'AudioCodec', 'locationName' => 'codec', ], 'Eac3Settings' => [ 'shape' => 'Eac3Settings', 'locationName' => 'eac3Settings', ], 'Mp2Settings' => [ 'shape' => 'Mp2Settings', 'locationName' => 'mp2Settings', ], 'WavSettings' => [ 'shape' => 'WavSettings', 'locationName' => 'wavSettings', ], ], ], 'AudioDefaultSelection' => [ 'type' => 'string', 'enum' => [ 'DEFAULT', 'NOT_DEFAULT', ], ], 'AudioDescription' => [ 'type' => 'structure', 'members' => [ 'AudioNormalizationSettings' => [ 'shape' => 'AudioNormalizationSettings', 'locationName' => 'audioNormalizationSettings', ], 'AudioSourceName' => [ 'shape' => '__string', 'locationName' => 'audioSourceName', ], 'AudioType' => [ 'shape' => '__integerMin0Max255', 'locationName' => 'audioType', ], 'AudioTypeControl' => [ 'shape' => 'AudioTypeControl', 'locationName' => 'audioTypeControl', ], 'CodecSettings' => [ 'shape' => 'AudioCodecSettings', 'locationName' => 'codecSettings', ], 'CustomLanguageCode' => [ 'shape' => '__stringMin3Max3PatternAZaZ3', 'locationName' => 'customLanguageCode', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', 'locationName' => 'languageCode', ], 'LanguageCodeControl' => [ 'shape' => 'AudioLanguageCodeControl', 'locationName' => 'languageCodeControl', ], 'RemixSettings' => [ 'shape' => 'RemixSettings', 'locationName' => 'remixSettings', ], 'StreamName' => [ 'shape' => '__stringPatternWS', 'locationName' => 'streamName', ], ], ], 'AudioLanguageCodeControl' => [ 'type' => 'string', 'enum' => [ 'FOLLOW_INPUT', 'USE_CONFIGURED', ], ], 'AudioNormalizationAlgorithm' => [ 'type' => 'string', 'enum' => [ 'ITU_BS_1770_1', 'ITU_BS_1770_2', ], ], 'AudioNormalizationAlgorithmControl' => [ 'type' => 'string', 'enum' => [ 'CORRECT_AUDIO', 'MEASURE_ONLY', ], ], 'AudioNormalizationLoudnessLogging' => [ 'type' => 'string', 'enum' => [ 'LOG', 'DONT_LOG', ], ], 'AudioNormalizationPeakCalculation' => [ 'type' => 'string', 'enum' => [ 'TRUE_PEAK', 'NONE', ], ], 'AudioNormalizationSettings' => [ 'type' => 'structure', 'members' => [ 'Algorithm' => [ 'shape' => 'AudioNormalizationAlgorithm', 'locationName' => 'algorithm', ], 'AlgorithmControl' => [ 'shape' => 'AudioNormalizationAlgorithmControl', 'locationName' => 'algorithmControl', ], 'CorrectionGateLevel' => [ 'shape' => '__integerMinNegative70Max0', 'locationName' => 'correctionGateLevel', ], 'LoudnessLogging' => [ 'shape' => 'AudioNormalizationLoudnessLogging', 'locationName' => 'loudnessLogging', ], 'PeakCalculation' => [ 'shape' => 'AudioNormalizationPeakCalculation', 'locationName' => 'peakCalculation', ], 'TargetLkfs' => [ 'shape' => '__doubleMinNegative59Max0', 'locationName' => 'targetLkfs', ], ], ], 'AudioSelector' => [ 'type' => 'structure', 'members' => [ 'CustomLanguageCode' => [ 'shape' => '__stringMin3Max3PatternAZaZ3', 'locationName' => 'customLanguageCode', ], 'DefaultSelection' => [ 'shape' => 'AudioDefaultSelection', 'locationName' => 'defaultSelection', ], 'ExternalAudioFileInput' => [ 'shape' => '__stringPatternS3MM2VVMMPPEEGGAAVVIIMMPP4FFLLVVMMPPTTMMPPGGMM4VVTTRRPPFF4VVMM2TTSSTTSS264HH264MMKKVVMMOOVVMMTTSSMM2TTWWMMVVAASSFFVVOOBB3GGPP3GGPPPPMMXXFFDDIIVVXXXXVVIIDDRRAAWWDDVVGGXXFFMM1VV3GG2VVMMFFMM3UU8LLCCHHGGXXFFMMPPEEGG2MMXXFFMMPPEEGG2MMXXFFHHDDWWAAVVYY4MMAAAACCAAIIFFFFMMPP2AACC3EECC3DDTTSSEE', 'locationName' => 'externalAudioFileInput', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', 'locationName' => 'languageCode', ], 'Offset' => [ 'shape' => '__integerMinNegative2147483648Max2147483647', 'locationName' => 'offset', ], 'Pids' => [ 'shape' => '__listOf__integerMin1Max2147483647', 'locationName' => 'pids', ], 'ProgramSelection' => [ 'shape' => '__integerMin0Max8', 'locationName' => 'programSelection', ], 'RemixSettings' => [ 'shape' => 'RemixSettings', 'locationName' => 'remixSettings', ], 'SelectorType' => [ 'shape' => 'AudioSelectorType', 'locationName' => 'selectorType', ], 'Tracks' => [ 'shape' => '__listOf__integerMin1Max2147483647', 'locationName' => 'tracks', ], ], ], 'AudioSelectorGroup' => [ 'type' => 'structure', 'members' => [ 'AudioSelectorNames' => [ 'shape' => '__listOf__stringMin1', 'locationName' => 'audioSelectorNames', ], ], ], 'AudioSelectorType' => [ 'type' => 'string', 'enum' => [ 'PID', 'TRACK', 'LANGUAGE_CODE', ], ], 'AudioTypeControl' => [ 'type' => 'string', 'enum' => [ 'FOLLOW_INPUT', 'USE_CONFIGURED', ], ], 'AvailBlanking' => [ 'type' => 'structure', 'members' => [ 'AvailBlankingImage' => [ 'shape' => '__stringMin14PatternS3BmpBMPPngPNG', 'locationName' => 'availBlankingImage', ], ], ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 400, ], ], 'BillingTagsSource' => [ 'type' => 'string', 'enum' => [ 'QUEUE', 'PRESET', 'JOB_TEMPLATE', ], ], 'BurninDestinationSettings' => [ 'type' => 'structure', 'members' => [ 'Alignment' => [ 'shape' => 'BurninSubtitleAlignment', 'locationName' => 'alignment', ], 'BackgroundColor' => [ 'shape' => 'BurninSubtitleBackgroundColor', 'locationName' => 'backgroundColor', ], 'BackgroundOpacity' => [ 'shape' => '__integerMin0Max255', 'locationName' => 'backgroundOpacity', ], 'FontColor' => [ 'shape' => 'BurninSubtitleFontColor', 'locationName' => 'fontColor', ], 'FontOpacity' => [ 'shape' => '__integerMin0Max255', 'locationName' => 'fontOpacity', ], 'FontResolution' => [ 'shape' => '__integerMin96Max600', 'locationName' => 'fontResolution', ], 'FontScript' => [ 'shape' => 'FontScript', 'locationName' => 'fontScript', ], 'FontSize' => [ 'shape' => '__integerMin0Max96', 'locationName' => 'fontSize', ], 'OutlineColor' => [ 'shape' => 'BurninSubtitleOutlineColor', 'locationName' => 'outlineColor', ], 'OutlineSize' => [ 'shape' => '__integerMin0Max10', 'locationName' => 'outlineSize', ], 'ShadowColor' => [ 'shape' => 'BurninSubtitleShadowColor', 'locationName' => 'shadowColor', ], 'ShadowOpacity' => [ 'shape' => '__integerMin0Max255', 'locationName' => 'shadowOpacity', ], 'ShadowXOffset' => [ 'shape' => '__integerMinNegative2147483648Max2147483647', 'locationName' => 'shadowXOffset', ], 'ShadowYOffset' => [ 'shape' => '__integerMinNegative2147483648Max2147483647', 'locationName' => 'shadowYOffset', ], 'TeletextSpacing' => [ 'shape' => 'BurninSubtitleTeletextSpacing', 'locationName' => 'teletextSpacing', ], 'XPosition' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'xPosition', ], 'YPosition' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'yPosition', ], ], ], 'BurninSubtitleAlignment' => [ 'type' => 'string', 'enum' => [ 'CENTERED', 'LEFT', ], ], 'BurninSubtitleBackgroundColor' => [ 'type' => 'string', 'enum' => [ 'NONE', 'BLACK', 'WHITE', ], ], 'BurninSubtitleFontColor' => [ 'type' => 'string', 'enum' => [ 'WHITE', 'BLACK', 'YELLOW', 'RED', 'GREEN', 'BLUE', ], ], 'BurninSubtitleOutlineColor' => [ 'type' => 'string', 'enum' => [ 'BLACK', 'WHITE', 'YELLOW', 'RED', 'GREEN', 'BLUE', ], ], 'BurninSubtitleShadowColor' => [ 'type' => 'string', 'enum' => [ 'NONE', 'BLACK', 'WHITE', ], ], 'BurninSubtitleTeletextSpacing' => [ 'type' => 'string', 'enum' => [ 'FIXED_GRID', 'PROPORTIONAL', ], ], 'CancelJobRequest' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => '__string', 'locationName' => 'id', 'location' => 'uri', ], ], 'required' => [ 'Id', ], ], 'CancelJobResponse' => [ 'type' => 'structure', 'members' => [], ], 'CaptionDescription' => [ 'type' => 'structure', 'members' => [ 'CaptionSelectorName' => [ 'shape' => '__stringMin1', 'locationName' => 'captionSelectorName', ], 'CustomLanguageCode' => [ 'shape' => '__stringMin3Max3PatternAZaZ3', 'locationName' => 'customLanguageCode', ], 'DestinationSettings' => [ 'shape' => 'CaptionDestinationSettings', 'locationName' => 'destinationSettings', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', 'locationName' => 'languageCode', ], 'LanguageDescription' => [ 'shape' => '__string', 'locationName' => 'languageDescription', ], ], ], 'CaptionDescriptionPreset' => [ 'type' => 'structure', 'members' => [ 'CustomLanguageCode' => [ 'shape' => '__stringMin3Max3PatternAZaZ3', 'locationName' => 'customLanguageCode', ], 'DestinationSettings' => [ 'shape' => 'CaptionDestinationSettings', 'locationName' => 'destinationSettings', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', 'locationName' => 'languageCode', ], 'LanguageDescription' => [ 'shape' => '__string', 'locationName' => 'languageDescription', ], ], ], 'CaptionDestinationSettings' => [ 'type' => 'structure', 'members' => [ 'BurninDestinationSettings' => [ 'shape' => 'BurninDestinationSettings', 'locationName' => 'burninDestinationSettings', ], 'DestinationType' => [ 'shape' => 'CaptionDestinationType', 'locationName' => 'destinationType', ], 'DvbSubDestinationSettings' => [ 'shape' => 'DvbSubDestinationSettings', 'locationName' => 'dvbSubDestinationSettings', ], 'EmbeddedDestinationSettings' => [ 'shape' => 'EmbeddedDestinationSettings', 'locationName' => 'embeddedDestinationSettings', ], 'SccDestinationSettings' => [ 'shape' => 'SccDestinationSettings', 'locationName' => 'sccDestinationSettings', ], 'TeletextDestinationSettings' => [ 'shape' => 'TeletextDestinationSettings', 'locationName' => 'teletextDestinationSettings', ], 'TtmlDestinationSettings' => [ 'shape' => 'TtmlDestinationSettings', 'locationName' => 'ttmlDestinationSettings', ], ], ], 'CaptionDestinationType' => [ 'type' => 'string', 'enum' => [ 'BURN_IN', 'DVB_SUB', 'EMBEDDED', 'EMBEDDED_PLUS_SCTE20', 'SCTE20_PLUS_EMBEDDED', 'SCC', 'SRT', 'SMI', 'TELETEXT', 'TTML', 'WEBVTT', ], ], 'CaptionSelector' => [ 'type' => 'structure', 'members' => [ 'CustomLanguageCode' => [ 'shape' => '__stringMin3Max3PatternAZaZ3', 'locationName' => 'customLanguageCode', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', 'locationName' => 'languageCode', ], 'SourceSettings' => [ 'shape' => 'CaptionSourceSettings', 'locationName' => 'sourceSettings', ], ], ], 'CaptionSourceSettings' => [ 'type' => 'structure', 'members' => [ 'AncillarySourceSettings' => [ 'shape' => 'AncillarySourceSettings', 'locationName' => 'ancillarySourceSettings', ], 'DvbSubSourceSettings' => [ 'shape' => 'DvbSubSourceSettings', 'locationName' => 'dvbSubSourceSettings', ], 'EmbeddedSourceSettings' => [ 'shape' => 'EmbeddedSourceSettings', 'locationName' => 'embeddedSourceSettings', ], 'FileSourceSettings' => [ 'shape' => 'FileSourceSettings', 'locationName' => 'fileSourceSettings', ], 'SourceType' => [ 'shape' => 'CaptionSourceType', 'locationName' => 'sourceType', ], 'TeletextSourceSettings' => [ 'shape' => 'TeletextSourceSettings', 'locationName' => 'teletextSourceSettings', ], 'TrackSourceSettings' => [ 'shape' => 'TrackSourceSettings', 'locationName' => 'trackSourceSettings', ], ], ], 'CaptionSourceType' => [ 'type' => 'string', 'enum' => [ 'ANCILLARY', 'DVB_SUB', 'EMBEDDED', 'SCTE20', 'SCC', 'TTML', 'STL', 'SRT', 'SMI', 'TELETEXT', 'NULL_SOURCE', 'IMSC', ], ], 'ChannelMapping' => [ 'type' => 'structure', 'members' => [ 'OutputChannels' => [ 'shape' => '__listOfOutputChannelMapping', 'locationName' => 'outputChannels', ], ], ], 'CmafClientCache' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'CmafCodecSpecification' => [ 'type' => 'string', 'enum' => [ 'RFC_6381', 'RFC_4281', ], ], 'CmafEncryptionSettings' => [ 'type' => 'structure', 'members' => [ 'ConstantInitializationVector' => [ 'shape' => '__stringMin32Max32Pattern09aFAF32', 'locationName' => 'constantInitializationVector', ], 'EncryptionMethod' => [ 'shape' => 'CmafEncryptionType', 'locationName' => 'encryptionMethod', ], 'InitializationVectorInManifest' => [ 'shape' => 'CmafInitializationVectorInManifest', 'locationName' => 'initializationVectorInManifest', ], 'StaticKeyProvider' => [ 'shape' => 'StaticKeyProvider', 'locationName' => 'staticKeyProvider', ], 'Type' => [ 'shape' => 'CmafKeyProviderType', 'locationName' => 'type', ], ], ], 'CmafEncryptionType' => [ 'type' => 'string', 'enum' => [ 'SAMPLE_AES', ], ], 'CmafGroupSettings' => [ 'type' => 'structure', 'members' => [ 'BaseUrl' => [ 'shape' => '__string', 'locationName' => 'baseUrl', ], 'ClientCache' => [ 'shape' => 'CmafClientCache', 'locationName' => 'clientCache', ], 'CodecSpecification' => [ 'shape' => 'CmafCodecSpecification', 'locationName' => 'codecSpecification', ], 'Destination' => [ 'shape' => '__stringPatternS3', 'locationName' => 'destination', ], 'DestinationSettings' => [ 'shape' => 'DestinationSettings', 'locationName' => 'destinationSettings', ], 'Encryption' => [ 'shape' => 'CmafEncryptionSettings', 'locationName' => 'encryption', ], 'FragmentLength' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'fragmentLength', ], 'ManifestCompression' => [ 'shape' => 'CmafManifestCompression', 'locationName' => 'manifestCompression', ], 'ManifestDurationFormat' => [ 'shape' => 'CmafManifestDurationFormat', 'locationName' => 'manifestDurationFormat', ], 'MinBufferTime' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'minBufferTime', ], 'MinFinalSegmentLength' => [ 'shape' => '__doubleMin0Max2147483647', 'locationName' => 'minFinalSegmentLength', ], 'SegmentControl' => [ 'shape' => 'CmafSegmentControl', 'locationName' => 'segmentControl', ], 'SegmentLength' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'segmentLength', ], 'StreamInfResolution' => [ 'shape' => 'CmafStreamInfResolution', 'locationName' => 'streamInfResolution', ], 'WriteDashManifest' => [ 'shape' => 'CmafWriteDASHManifest', 'locationName' => 'writeDashManifest', ], 'WriteHlsManifest' => [ 'shape' => 'CmafWriteHLSManifest', 'locationName' => 'writeHlsManifest', ], ], ], 'CmafInitializationVectorInManifest' => [ 'type' => 'string', 'enum' => [ 'INCLUDE', 'EXCLUDE', ], ], 'CmafKeyProviderType' => [ 'type' => 'string', 'enum' => [ 'STATIC_KEY', ], ], 'CmafManifestCompression' => [ 'type' => 'string', 'enum' => [ 'GZIP', 'NONE', ], ], 'CmafManifestDurationFormat' => [ 'type' => 'string', 'enum' => [ 'FLOATING_POINT', 'INTEGER', ], ], 'CmafSegmentControl' => [ 'type' => 'string', 'enum' => [ 'SINGLE_FILE', 'SEGMENTED_FILES', ], ], 'CmafStreamInfResolution' => [ 'type' => 'string', 'enum' => [ 'INCLUDE', 'EXCLUDE', ], ], 'CmafWriteDASHManifest' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'CmafWriteHLSManifest' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'ColorCorrector' => [ 'type' => 'structure', 'members' => [ 'Brightness' => [ 'shape' => '__integerMin1Max100', 'locationName' => 'brightness', ], 'ColorSpaceConversion' => [ 'shape' => 'ColorSpaceConversion', 'locationName' => 'colorSpaceConversion', ], 'Contrast' => [ 'shape' => '__integerMin1Max100', 'locationName' => 'contrast', ], 'Hdr10Metadata' => [ 'shape' => 'Hdr10Metadata', 'locationName' => 'hdr10Metadata', ], 'Hue' => [ 'shape' => '__integerMinNegative180Max180', 'locationName' => 'hue', ], 'Saturation' => [ 'shape' => '__integerMin1Max100', 'locationName' => 'saturation', ], ], ], 'ColorMetadata' => [ 'type' => 'string', 'enum' => [ 'IGNORE', 'INSERT', ], ], 'ColorSpace' => [ 'type' => 'string', 'enum' => [ 'FOLLOW', 'REC_601', 'REC_709', 'HDR10', 'HLG_2020', ], ], 'ColorSpaceConversion' => [ 'type' => 'string', 'enum' => [ 'NONE', 'FORCE_601', 'FORCE_709', 'FORCE_HDR10', 'FORCE_HLG_2020', ], ], 'ColorSpaceUsage' => [ 'type' => 'string', 'enum' => [ 'FORCE', 'FALLBACK', ], ], 'Commitment' => [ 'type' => 'string', 'enum' => [ 'ONE_YEAR', ], ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 409, ], ], 'ContainerSettings' => [ 'type' => 'structure', 'members' => [ 'Container' => [ 'shape' => 'ContainerType', 'locationName' => 'container', ], 'F4vSettings' => [ 'shape' => 'F4vSettings', 'locationName' => 'f4vSettings', ], 'M2tsSettings' => [ 'shape' => 'M2tsSettings', 'locationName' => 'm2tsSettings', ], 'M3u8Settings' => [ 'shape' => 'M3u8Settings', 'locationName' => 'm3u8Settings', ], 'MovSettings' => [ 'shape' => 'MovSettings', 'locationName' => 'movSettings', ], 'Mp4Settings' => [ 'shape' => 'Mp4Settings', 'locationName' => 'mp4Settings', ], ], ], 'ContainerType' => [ 'type' => 'string', 'enum' => [ 'F4V', 'ISMV', 'M2TS', 'M3U8', 'CMFC', 'MOV', 'MP4', 'MPD', 'MXF', 'RAW', ], ], 'CreateJobRequest' => [ 'type' => 'structure', 'members' => [ 'AccelerationSettings' => [ 'shape' => 'AccelerationSettings', 'locationName' => 'accelerationSettings', ], 'BillingTagsSource' => [ 'shape' => 'BillingTagsSource', 'locationName' => 'billingTagsSource', ], 'ClientRequestToken' => [ 'shape' => '__string', 'locationName' => 'clientRequestToken', 'idempotencyToken' => true, ], 'JobTemplate' => [ 'shape' => '__string', 'locationName' => 'jobTemplate', ], 'Queue' => [ 'shape' => '__string', 'locationName' => 'queue', ], 'Role' => [ 'shape' => '__string', 'locationName' => 'role', ], 'Settings' => [ 'shape' => 'JobSettings', 'locationName' => 'settings', ], 'StatusUpdateInterval' => [ 'shape' => 'StatusUpdateInterval', 'locationName' => 'statusUpdateInterval', ], 'UserMetadata' => [ 'shape' => '__mapOf__string', 'locationName' => 'userMetadata', ], ], 'required' => [ 'Role', 'Settings', ], ], 'CreateJobResponse' => [ 'type' => 'structure', 'members' => [ 'Job' => [ 'shape' => 'Job', 'locationName' => 'job', ], ], ], 'CreateJobTemplateRequest' => [ 'type' => 'structure', 'members' => [ 'AccelerationSettings' => [ 'shape' => 'AccelerationSettings', 'locationName' => 'accelerationSettings', ], 'Category' => [ 'shape' => '__string', 'locationName' => 'category', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'Queue' => [ 'shape' => '__string', 'locationName' => 'queue', ], 'Settings' => [ 'shape' => 'JobTemplateSettings', 'locationName' => 'settings', ], 'StatusUpdateInterval' => [ 'shape' => 'StatusUpdateInterval', 'locationName' => 'statusUpdateInterval', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], 'required' => [ 'Settings', 'Name', ], ], 'CreateJobTemplateResponse' => [ 'type' => 'structure', 'members' => [ 'JobTemplate' => [ 'shape' => 'JobTemplate', 'locationName' => 'jobTemplate', ], ], ], 'CreatePresetRequest' => [ 'type' => 'structure', 'members' => [ 'Category' => [ 'shape' => '__string', 'locationName' => 'category', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'Settings' => [ 'shape' => 'PresetSettings', 'locationName' => 'settings', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], 'required' => [ 'Settings', 'Name', ], ], 'CreatePresetResponse' => [ 'type' => 'structure', 'members' => [ 'Preset' => [ 'shape' => 'Preset', 'locationName' => 'preset', ], ], ], 'CreateQueueRequest' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'PricingPlan' => [ 'shape' => 'PricingPlan', 'locationName' => 'pricingPlan', ], 'ReservationPlanSettings' => [ 'shape' => 'ReservationPlanSettings', 'locationName' => 'reservationPlanSettings', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], 'required' => [ 'Name', ], ], 'CreateQueueResponse' => [ 'type' => 'structure', 'members' => [ 'Queue' => [ 'shape' => 'Queue', 'locationName' => 'queue', ], ], ], 'DashIsoEncryptionSettings' => [ 'type' => 'structure', 'members' => [ 'SpekeKeyProvider' => [ 'shape' => 'SpekeKeyProvider', 'locationName' => 'spekeKeyProvider', ], ], ], 'DashIsoGroupSettings' => [ 'type' => 'structure', 'members' => [ 'BaseUrl' => [ 'shape' => '__string', 'locationName' => 'baseUrl', ], 'Destination' => [ 'shape' => '__stringPatternS3', 'locationName' => 'destination', ], 'DestinationSettings' => [ 'shape' => 'DestinationSettings', 'locationName' => 'destinationSettings', ], 'Encryption' => [ 'shape' => 'DashIsoEncryptionSettings', 'locationName' => 'encryption', ], 'FragmentLength' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'fragmentLength', ], 'HbbtvCompliance' => [ 'shape' => 'DashIsoHbbtvCompliance', 'locationName' => 'hbbtvCompliance', ], 'MinBufferTime' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'minBufferTime', ], 'SegmentControl' => [ 'shape' => 'DashIsoSegmentControl', 'locationName' => 'segmentControl', ], 'SegmentLength' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'segmentLength', ], 'WriteSegmentTimelineInRepresentation' => [ 'shape' => 'DashIsoWriteSegmentTimelineInRepresentation', 'locationName' => 'writeSegmentTimelineInRepresentation', ], ], ], 'DashIsoHbbtvCompliance' => [ 'type' => 'string', 'enum' => [ 'HBBTV_1_5', 'NONE', ], ], 'DashIsoSegmentControl' => [ 'type' => 'string', 'enum' => [ 'SINGLE_FILE', 'SEGMENTED_FILES', ], ], 'DashIsoWriteSegmentTimelineInRepresentation' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'DecryptionMode' => [ 'type' => 'string', 'enum' => [ 'AES_CTR', 'AES_CBC', 'AES_GCM', ], ], 'DeinterlaceAlgorithm' => [ 'type' => 'string', 'enum' => [ 'INTERPOLATE', 'INTERPOLATE_TICKER', 'BLEND', 'BLEND_TICKER', ], ], 'Deinterlacer' => [ 'type' => 'structure', 'members' => [ 'Algorithm' => [ 'shape' => 'DeinterlaceAlgorithm', 'locationName' => 'algorithm', ], 'Control' => [ 'shape' => 'DeinterlacerControl', 'locationName' => 'control', ], 'Mode' => [ 'shape' => 'DeinterlacerMode', 'locationName' => 'mode', ], ], ], 'DeinterlacerControl' => [ 'type' => 'string', 'enum' => [ 'FORCE_ALL_FRAMES', 'NORMAL', ], ], 'DeinterlacerMode' => [ 'type' => 'string', 'enum' => [ 'DEINTERLACE', 'INVERSE_TELECINE', 'ADAPTIVE', ], ], 'DeleteJobTemplateRequest' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => '__string', 'locationName' => 'name', 'location' => 'uri', ], ], 'required' => [ 'Name', ], ], 'DeleteJobTemplateResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeletePresetRequest' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => '__string', 'locationName' => 'name', 'location' => 'uri', ], ], 'required' => [ 'Name', ], ], 'DeletePresetResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteQueueRequest' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => '__string', 'locationName' => 'name', 'location' => 'uri', ], ], 'required' => [ 'Name', ], ], 'DeleteQueueResponse' => [ 'type' => 'structure', 'members' => [], ], 'DescribeEndpointsMode' => [ 'type' => 'string', 'enum' => [ 'DEFAULT', 'GET_ONLY', ], ], 'DescribeEndpointsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => '__integer', 'locationName' => 'maxResults', ], 'Mode' => [ 'shape' => 'DescribeEndpointsMode', 'locationName' => 'mode', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'DescribeEndpointsResponse' => [ 'type' => 'structure', 'members' => [ 'Endpoints' => [ 'shape' => '__listOfEndpoint', 'locationName' => 'endpoints', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'DestinationSettings' => [ 'type' => 'structure', 'members' => [ 'S3Settings' => [ 'shape' => 'S3DestinationSettings', 'locationName' => 's3Settings', ], ], ], 'DisassociateCertificateRequest' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', 'location' => 'uri', ], ], 'required' => [ 'Arn', ], ], 'DisassociateCertificateResponse' => [ 'type' => 'structure', 'members' => [], ], 'DropFrameTimecode' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'DvbNitSettings' => [ 'type' => 'structure', 'members' => [ 'NetworkId' => [ 'shape' => '__integerMin0Max65535', 'locationName' => 'networkId', ], 'NetworkName' => [ 'shape' => '__stringMin1Max256', 'locationName' => 'networkName', ], 'NitInterval' => [ 'shape' => '__integerMin25Max10000', 'locationName' => 'nitInterval', ], ], ], 'DvbSdtSettings' => [ 'type' => 'structure', 'members' => [ 'OutputSdt' => [ 'shape' => 'OutputSdt', 'locationName' => 'outputSdt', ], 'SdtInterval' => [ 'shape' => '__integerMin25Max2000', 'locationName' => 'sdtInterval', ], 'ServiceName' => [ 'shape' => '__stringMin1Max256', 'locationName' => 'serviceName', ], 'ServiceProviderName' => [ 'shape' => '__stringMin1Max256', 'locationName' => 'serviceProviderName', ], ], ], 'DvbSubDestinationSettings' => [ 'type' => 'structure', 'members' => [ 'Alignment' => [ 'shape' => 'DvbSubtitleAlignment', 'locationName' => 'alignment', ], 'BackgroundColor' => [ 'shape' => 'DvbSubtitleBackgroundColor', 'locationName' => 'backgroundColor', ], 'BackgroundOpacity' => [ 'shape' => '__integerMin0Max255', 'locationName' => 'backgroundOpacity', ], 'FontColor' => [ 'shape' => 'DvbSubtitleFontColor', 'locationName' => 'fontColor', ], 'FontOpacity' => [ 'shape' => '__integerMin0Max255', 'locationName' => 'fontOpacity', ], 'FontResolution' => [ 'shape' => '__integerMin96Max600', 'locationName' => 'fontResolution', ], 'FontScript' => [ 'shape' => 'FontScript', 'locationName' => 'fontScript', ], 'FontSize' => [ 'shape' => '__integerMin0Max96', 'locationName' => 'fontSize', ], 'OutlineColor' => [ 'shape' => 'DvbSubtitleOutlineColor', 'locationName' => 'outlineColor', ], 'OutlineSize' => [ 'shape' => '__integerMin0Max10', 'locationName' => 'outlineSize', ], 'ShadowColor' => [ 'shape' => 'DvbSubtitleShadowColor', 'locationName' => 'shadowColor', ], 'ShadowOpacity' => [ 'shape' => '__integerMin0Max255', 'locationName' => 'shadowOpacity', ], 'ShadowXOffset' => [ 'shape' => '__integerMinNegative2147483648Max2147483647', 'locationName' => 'shadowXOffset', ], 'ShadowYOffset' => [ 'shape' => '__integerMinNegative2147483648Max2147483647', 'locationName' => 'shadowYOffset', ], 'TeletextSpacing' => [ 'shape' => 'DvbSubtitleTeletextSpacing', 'locationName' => 'teletextSpacing', ], 'XPosition' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'xPosition', ], 'YPosition' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'yPosition', ], ], ], 'DvbSubSourceSettings' => [ 'type' => 'structure', 'members' => [ 'Pid' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'pid', ], ], ], 'DvbSubtitleAlignment' => [ 'type' => 'string', 'enum' => [ 'CENTERED', 'LEFT', ], ], 'DvbSubtitleBackgroundColor' => [ 'type' => 'string', 'enum' => [ 'NONE', 'BLACK', 'WHITE', ], ], 'DvbSubtitleFontColor' => [ 'type' => 'string', 'enum' => [ 'WHITE', 'BLACK', 'YELLOW', 'RED', 'GREEN', 'BLUE', ], ], 'DvbSubtitleOutlineColor' => [ 'type' => 'string', 'enum' => [ 'BLACK', 'WHITE', 'YELLOW', 'RED', 'GREEN', 'BLUE', ], ], 'DvbSubtitleShadowColor' => [ 'type' => 'string', 'enum' => [ 'NONE', 'BLACK', 'WHITE', ], ], 'DvbSubtitleTeletextSpacing' => [ 'type' => 'string', 'enum' => [ 'FIXED_GRID', 'PROPORTIONAL', ], ], 'DvbTdtSettings' => [ 'type' => 'structure', 'members' => [ 'TdtInterval' => [ 'shape' => '__integerMin1000Max30000', 'locationName' => 'tdtInterval', ], ], ], 'Eac3AttenuationControl' => [ 'type' => 'string', 'enum' => [ 'ATTENUATE_3_DB', 'NONE', ], ], 'Eac3BitstreamMode' => [ 'type' => 'string', 'enum' => [ 'COMPLETE_MAIN', 'COMMENTARY', 'EMERGENCY', 'HEARING_IMPAIRED', 'VISUALLY_IMPAIRED', ], ], 'Eac3CodingMode' => [ 'type' => 'string', 'enum' => [ 'CODING_MODE_1_0', 'CODING_MODE_2_0', 'CODING_MODE_3_2', ], ], 'Eac3DcFilter' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'Eac3DynamicRangeCompressionLine' => [ 'type' => 'string', 'enum' => [ 'NONE', 'FILM_STANDARD', 'FILM_LIGHT', 'MUSIC_STANDARD', 'MUSIC_LIGHT', 'SPEECH', ], ], 'Eac3DynamicRangeCompressionRf' => [ 'type' => 'string', 'enum' => [ 'NONE', 'FILM_STANDARD', 'FILM_LIGHT', 'MUSIC_STANDARD', 'MUSIC_LIGHT', 'SPEECH', ], ], 'Eac3LfeControl' => [ 'type' => 'string', 'enum' => [ 'LFE', 'NO_LFE', ], ], 'Eac3LfeFilter' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'Eac3MetadataControl' => [ 'type' => 'string', 'enum' => [ 'FOLLOW_INPUT', 'USE_CONFIGURED', ], ], 'Eac3PassthroughControl' => [ 'type' => 'string', 'enum' => [ 'WHEN_POSSIBLE', 'NO_PASSTHROUGH', ], ], 'Eac3PhaseControl' => [ 'type' => 'string', 'enum' => [ 'SHIFT_90_DEGREES', 'NO_SHIFT', ], ], 'Eac3Settings' => [ 'type' => 'structure', 'members' => [ 'AttenuationControl' => [ 'shape' => 'Eac3AttenuationControl', 'locationName' => 'attenuationControl', ], 'Bitrate' => [ 'shape' => '__integerMin64000Max640000', 'locationName' => 'bitrate', ], 'BitstreamMode' => [ 'shape' => 'Eac3BitstreamMode', 'locationName' => 'bitstreamMode', ], 'CodingMode' => [ 'shape' => 'Eac3CodingMode', 'locationName' => 'codingMode', ], 'DcFilter' => [ 'shape' => 'Eac3DcFilter', 'locationName' => 'dcFilter', ], 'Dialnorm' => [ 'shape' => '__integerMin1Max31', 'locationName' => 'dialnorm', ], 'DynamicRangeCompressionLine' => [ 'shape' => 'Eac3DynamicRangeCompressionLine', 'locationName' => 'dynamicRangeCompressionLine', ], 'DynamicRangeCompressionRf' => [ 'shape' => 'Eac3DynamicRangeCompressionRf', 'locationName' => 'dynamicRangeCompressionRf', ], 'LfeControl' => [ 'shape' => 'Eac3LfeControl', 'locationName' => 'lfeControl', ], 'LfeFilter' => [ 'shape' => 'Eac3LfeFilter', 'locationName' => 'lfeFilter', ], 'LoRoCenterMixLevel' => [ 'shape' => '__doubleMinNegative60Max3', 'locationName' => 'loRoCenterMixLevel', ], 'LoRoSurroundMixLevel' => [ 'shape' => '__doubleMinNegative60MaxNegative1', 'locationName' => 'loRoSurroundMixLevel', ], 'LtRtCenterMixLevel' => [ 'shape' => '__doubleMinNegative60Max3', 'locationName' => 'ltRtCenterMixLevel', ], 'LtRtSurroundMixLevel' => [ 'shape' => '__doubleMinNegative60MaxNegative1', 'locationName' => 'ltRtSurroundMixLevel', ], 'MetadataControl' => [ 'shape' => 'Eac3MetadataControl', 'locationName' => 'metadataControl', ], 'PassthroughControl' => [ 'shape' => 'Eac3PassthroughControl', 'locationName' => 'passthroughControl', ], 'PhaseControl' => [ 'shape' => 'Eac3PhaseControl', 'locationName' => 'phaseControl', ], 'SampleRate' => [ 'shape' => '__integerMin48000Max48000', 'locationName' => 'sampleRate', ], 'StereoDownmix' => [ 'shape' => 'Eac3StereoDownmix', 'locationName' => 'stereoDownmix', ], 'SurroundExMode' => [ 'shape' => 'Eac3SurroundExMode', 'locationName' => 'surroundExMode', ], 'SurroundMode' => [ 'shape' => 'Eac3SurroundMode', 'locationName' => 'surroundMode', ], ], ], 'Eac3StereoDownmix' => [ 'type' => 'string', 'enum' => [ 'NOT_INDICATED', 'LO_RO', 'LT_RT', 'DPL2', ], ], 'Eac3SurroundExMode' => [ 'type' => 'string', 'enum' => [ 'NOT_INDICATED', 'ENABLED', 'DISABLED', ], ], 'Eac3SurroundMode' => [ 'type' => 'string', 'enum' => [ 'NOT_INDICATED', 'ENABLED', 'DISABLED', ], ], 'EmbeddedConvert608To708' => [ 'type' => 'string', 'enum' => [ 'UPCONVERT', 'DISABLED', ], ], 'EmbeddedDestinationSettings' => [ 'type' => 'structure', 'members' => [ 'Destination608ChannelNumber' => [ 'shape' => '__integerMin1Max4', 'locationName' => 'destination608ChannelNumber', ], ], ], 'EmbeddedSourceSettings' => [ 'type' => 'structure', 'members' => [ 'Convert608To708' => [ 'shape' => 'EmbeddedConvert608To708', 'locationName' => 'convert608To708', ], 'Source608ChannelNumber' => [ 'shape' => '__integerMin1Max4', 'locationName' => 'source608ChannelNumber', ], 'Source608TrackNumber' => [ 'shape' => '__integerMin1Max1', 'locationName' => 'source608TrackNumber', ], ], ], 'Endpoint' => [ 'type' => 'structure', 'members' => [ 'Url' => [ 'shape' => '__string', 'locationName' => 'url', ], ], ], 'EsamManifestConfirmConditionNotification' => [ 'type' => 'structure', 'members' => [ 'MccXml' => [ 'shape' => '__stringPatternSNManifestConfirmConditionNotificationNS', 'locationName' => 'mccXml', ], ], ], 'EsamSettings' => [ 'type' => 'structure', 'members' => [ 'ManifestConfirmConditionNotification' => [ 'shape' => 'EsamManifestConfirmConditionNotification', 'locationName' => 'manifestConfirmConditionNotification', ], 'ResponseSignalPreroll' => [ 'shape' => '__integerMin0Max30000', 'locationName' => 'responseSignalPreroll', ], 'SignalProcessingNotification' => [ 'shape' => 'EsamSignalProcessingNotification', 'locationName' => 'signalProcessingNotification', ], ], ], 'EsamSignalProcessingNotification' => [ 'type' => 'structure', 'members' => [ 'SccXml' => [ 'shape' => '__stringPatternSNSignalProcessingNotificationNS', 'locationName' => 'sccXml', ], ], ], 'ExceptionBody' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], ], 'F4vMoovPlacement' => [ 'type' => 'string', 'enum' => [ 'PROGRESSIVE_DOWNLOAD', 'NORMAL', ], ], 'F4vSettings' => [ 'type' => 'structure', 'members' => [ 'MoovPlacement' => [ 'shape' => 'F4vMoovPlacement', 'locationName' => 'moovPlacement', ], ], ], 'FileGroupSettings' => [ 'type' => 'structure', 'members' => [ 'Destination' => [ 'shape' => '__stringPatternS3', 'locationName' => 'destination', ], 'DestinationSettings' => [ 'shape' => 'DestinationSettings', 'locationName' => 'destinationSettings', ], ], ], 'FileSourceConvert608To708' => [ 'type' => 'string', 'enum' => [ 'UPCONVERT', 'DISABLED', ], ], 'FileSourceSettings' => [ 'type' => 'structure', 'members' => [ 'Convert608To708' => [ 'shape' => 'FileSourceConvert608To708', 'locationName' => 'convert608To708', ], 'SourceFile' => [ 'shape' => '__stringMin14PatternS3SccSCCTtmlTTMLDfxpDFXPStlSTLSrtSRTSmiSMI', 'locationName' => 'sourceFile', ], 'TimeDelta' => [ 'shape' => '__integerMinNegative2147483648Max2147483647', 'locationName' => 'timeDelta', ], ], ], 'FontScript' => [ 'type' => 'string', 'enum' => [ 'AUTOMATIC', 'HANS', 'HANT', ], ], 'ForbiddenException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 403, ], ], 'FrameCaptureSettings' => [ 'type' => 'structure', 'members' => [ 'FramerateDenominator' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'framerateDenominator', ], 'FramerateNumerator' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'framerateNumerator', ], 'MaxCaptures' => [ 'shape' => '__integerMin1Max10000000', 'locationName' => 'maxCaptures', ], 'Quality' => [ 'shape' => '__integerMin1Max100', 'locationName' => 'quality', ], ], ], 'GetJobRequest' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => '__string', 'locationName' => 'id', 'location' => 'uri', ], ], 'required' => [ 'Id', ], ], 'GetJobResponse' => [ 'type' => 'structure', 'members' => [ 'Job' => [ 'shape' => 'Job', 'locationName' => 'job', ], ], ], 'GetJobTemplateRequest' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => '__string', 'locationName' => 'name', 'location' => 'uri', ], ], 'required' => [ 'Name', ], ], 'GetJobTemplateResponse' => [ 'type' => 'structure', 'members' => [ 'JobTemplate' => [ 'shape' => 'JobTemplate', 'locationName' => 'jobTemplate', ], ], ], 'GetPresetRequest' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => '__string', 'locationName' => 'name', 'location' => 'uri', ], ], 'required' => [ 'Name', ], ], 'GetPresetResponse' => [ 'type' => 'structure', 'members' => [ 'Preset' => [ 'shape' => 'Preset', 'locationName' => 'preset', ], ], ], 'GetQueueRequest' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => '__string', 'locationName' => 'name', 'location' => 'uri', ], ], 'required' => [ 'Name', ], ], 'GetQueueResponse' => [ 'type' => 'structure', 'members' => [ 'Queue' => [ 'shape' => 'Queue', 'locationName' => 'queue', ], ], ], 'H264AdaptiveQuantization' => [ 'type' => 'string', 'enum' => [ 'OFF', 'LOW', 'MEDIUM', 'HIGH', 'HIGHER', 'MAX', ], ], 'H264CodecLevel' => [ 'type' => 'string', 'enum' => [ 'AUTO', 'LEVEL_1', 'LEVEL_1_1', 'LEVEL_1_2', 'LEVEL_1_3', 'LEVEL_2', 'LEVEL_2_1', 'LEVEL_2_2', 'LEVEL_3', 'LEVEL_3_1', 'LEVEL_3_2', 'LEVEL_4', 'LEVEL_4_1', 'LEVEL_4_2', 'LEVEL_5', 'LEVEL_5_1', 'LEVEL_5_2', ], ], 'H264CodecProfile' => [ 'type' => 'string', 'enum' => [ 'BASELINE', 'HIGH', 'HIGH_10BIT', 'HIGH_422', 'HIGH_422_10BIT', 'MAIN', ], ], 'H264DynamicSubGop' => [ 'type' => 'string', 'enum' => [ 'ADAPTIVE', 'STATIC', ], ], 'H264EntropyEncoding' => [ 'type' => 'string', 'enum' => [ 'CABAC', 'CAVLC', ], ], 'H264FieldEncoding' => [ 'type' => 'string', 'enum' => [ 'PAFF', 'FORCE_FIELD', ], ], 'H264FlickerAdaptiveQuantization' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H264FramerateControl' => [ 'type' => 'string', 'enum' => [ 'INITIALIZE_FROM_SOURCE', 'SPECIFIED', ], ], 'H264FramerateConversionAlgorithm' => [ 'type' => 'string', 'enum' => [ 'DUPLICATE_DROP', 'INTERPOLATE', ], ], 'H264GopBReference' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H264GopSizeUnits' => [ 'type' => 'string', 'enum' => [ 'FRAMES', 'SECONDS', ], ], 'H264InterlaceMode' => [ 'type' => 'string', 'enum' => [ 'PROGRESSIVE', 'TOP_FIELD', 'BOTTOM_FIELD', 'FOLLOW_TOP_FIELD', 'FOLLOW_BOTTOM_FIELD', ], ], 'H264ParControl' => [ 'type' => 'string', 'enum' => [ 'INITIALIZE_FROM_SOURCE', 'SPECIFIED', ], ], 'H264QualityTuningLevel' => [ 'type' => 'string', 'enum' => [ 'SINGLE_PASS', 'SINGLE_PASS_HQ', 'MULTI_PASS_HQ', ], ], 'H264QvbrSettings' => [ 'type' => 'structure', 'members' => [ 'MaxAverageBitrate' => [ 'shape' => '__integerMin1000Max1152000000', 'locationName' => 'maxAverageBitrate', ], 'QvbrQualityLevel' => [ 'shape' => '__integerMin1Max10', 'locationName' => 'qvbrQualityLevel', ], ], ], 'H264RateControlMode' => [ 'type' => 'string', 'enum' => [ 'VBR', 'CBR', 'QVBR', ], ], 'H264RepeatPps' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H264SceneChangeDetect' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H264Settings' => [ 'type' => 'structure', 'members' => [ 'AdaptiveQuantization' => [ 'shape' => 'H264AdaptiveQuantization', 'locationName' => 'adaptiveQuantization', ], 'Bitrate' => [ 'shape' => '__integerMin1000Max1152000000', 'locationName' => 'bitrate', ], 'CodecLevel' => [ 'shape' => 'H264CodecLevel', 'locationName' => 'codecLevel', ], 'CodecProfile' => [ 'shape' => 'H264CodecProfile', 'locationName' => 'codecProfile', ], 'DynamicSubGop' => [ 'shape' => 'H264DynamicSubGop', 'locationName' => 'dynamicSubGop', ], 'EntropyEncoding' => [ 'shape' => 'H264EntropyEncoding', 'locationName' => 'entropyEncoding', ], 'FieldEncoding' => [ 'shape' => 'H264FieldEncoding', 'locationName' => 'fieldEncoding', ], 'FlickerAdaptiveQuantization' => [ 'shape' => 'H264FlickerAdaptiveQuantization', 'locationName' => 'flickerAdaptiveQuantization', ], 'FramerateControl' => [ 'shape' => 'H264FramerateControl', 'locationName' => 'framerateControl', ], 'FramerateConversionAlgorithm' => [ 'shape' => 'H264FramerateConversionAlgorithm', 'locationName' => 'framerateConversionAlgorithm', ], 'FramerateDenominator' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'framerateDenominator', ], 'FramerateNumerator' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'framerateNumerator', ], 'GopBReference' => [ 'shape' => 'H264GopBReference', 'locationName' => 'gopBReference', ], 'GopClosedCadence' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'gopClosedCadence', ], 'GopSize' => [ 'shape' => '__doubleMin0', 'locationName' => 'gopSize', ], 'GopSizeUnits' => [ 'shape' => 'H264GopSizeUnits', 'locationName' => 'gopSizeUnits', ], 'HrdBufferInitialFillPercentage' => [ 'shape' => '__integerMin0Max100', 'locationName' => 'hrdBufferInitialFillPercentage', ], 'HrdBufferSize' => [ 'shape' => '__integerMin0Max1152000000', 'locationName' => 'hrdBufferSize', ], 'InterlaceMode' => [ 'shape' => 'H264InterlaceMode', 'locationName' => 'interlaceMode', ], 'MaxBitrate' => [ 'shape' => '__integerMin1000Max1152000000', 'locationName' => 'maxBitrate', ], 'MinIInterval' => [ 'shape' => '__integerMin0Max30', 'locationName' => 'minIInterval', ], 'NumberBFramesBetweenReferenceFrames' => [ 'shape' => '__integerMin0Max7', 'locationName' => 'numberBFramesBetweenReferenceFrames', ], 'NumberReferenceFrames' => [ 'shape' => '__integerMin1Max6', 'locationName' => 'numberReferenceFrames', ], 'ParControl' => [ 'shape' => 'H264ParControl', 'locationName' => 'parControl', ], 'ParDenominator' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'parDenominator', ], 'ParNumerator' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'parNumerator', ], 'QualityTuningLevel' => [ 'shape' => 'H264QualityTuningLevel', 'locationName' => 'qualityTuningLevel', ], 'QvbrSettings' => [ 'shape' => 'H264QvbrSettings', 'locationName' => 'qvbrSettings', ], 'RateControlMode' => [ 'shape' => 'H264RateControlMode', 'locationName' => 'rateControlMode', ], 'RepeatPps' => [ 'shape' => 'H264RepeatPps', 'locationName' => 'repeatPps', ], 'SceneChangeDetect' => [ 'shape' => 'H264SceneChangeDetect', 'locationName' => 'sceneChangeDetect', ], 'Slices' => [ 'shape' => '__integerMin1Max32', 'locationName' => 'slices', ], 'SlowPal' => [ 'shape' => 'H264SlowPal', 'locationName' => 'slowPal', ], 'Softness' => [ 'shape' => '__integerMin0Max128', 'locationName' => 'softness', ], 'SpatialAdaptiveQuantization' => [ 'shape' => 'H264SpatialAdaptiveQuantization', 'locationName' => 'spatialAdaptiveQuantization', ], 'Syntax' => [ 'shape' => 'H264Syntax', 'locationName' => 'syntax', ], 'Telecine' => [ 'shape' => 'H264Telecine', 'locationName' => 'telecine', ], 'TemporalAdaptiveQuantization' => [ 'shape' => 'H264TemporalAdaptiveQuantization', 'locationName' => 'temporalAdaptiveQuantization', ], 'UnregisteredSeiTimecode' => [ 'shape' => 'H264UnregisteredSeiTimecode', 'locationName' => 'unregisteredSeiTimecode', ], ], ], 'H264SlowPal' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H264SpatialAdaptiveQuantization' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H264Syntax' => [ 'type' => 'string', 'enum' => [ 'DEFAULT', 'RP2027', ], ], 'H264Telecine' => [ 'type' => 'string', 'enum' => [ 'NONE', 'SOFT', 'HARD', ], ], 'H264TemporalAdaptiveQuantization' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H264UnregisteredSeiTimecode' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H265AdaptiveQuantization' => [ 'type' => 'string', 'enum' => [ 'OFF', 'LOW', 'MEDIUM', 'HIGH', 'HIGHER', 'MAX', ], ], 'H265AlternateTransferFunctionSei' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H265CodecLevel' => [ 'type' => 'string', 'enum' => [ 'AUTO', 'LEVEL_1', 'LEVEL_2', 'LEVEL_2_1', 'LEVEL_3', 'LEVEL_3_1', 'LEVEL_4', 'LEVEL_4_1', 'LEVEL_5', 'LEVEL_5_1', 'LEVEL_5_2', 'LEVEL_6', 'LEVEL_6_1', 'LEVEL_6_2', ], ], 'H265CodecProfile' => [ 'type' => 'string', 'enum' => [ 'MAIN_MAIN', 'MAIN_HIGH', 'MAIN10_MAIN', 'MAIN10_HIGH', 'MAIN_422_8BIT_MAIN', 'MAIN_422_8BIT_HIGH', 'MAIN_422_10BIT_MAIN', 'MAIN_422_10BIT_HIGH', ], ], 'H265DynamicSubGop' => [ 'type' => 'string', 'enum' => [ 'ADAPTIVE', 'STATIC', ], ], 'H265FlickerAdaptiveQuantization' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H265FramerateControl' => [ 'type' => 'string', 'enum' => [ 'INITIALIZE_FROM_SOURCE', 'SPECIFIED', ], ], 'H265FramerateConversionAlgorithm' => [ 'type' => 'string', 'enum' => [ 'DUPLICATE_DROP', 'INTERPOLATE', ], ], 'H265GopBReference' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H265GopSizeUnits' => [ 'type' => 'string', 'enum' => [ 'FRAMES', 'SECONDS', ], ], 'H265InterlaceMode' => [ 'type' => 'string', 'enum' => [ 'PROGRESSIVE', 'TOP_FIELD', 'BOTTOM_FIELD', 'FOLLOW_TOP_FIELD', 'FOLLOW_BOTTOM_FIELD', ], ], 'H265ParControl' => [ 'type' => 'string', 'enum' => [ 'INITIALIZE_FROM_SOURCE', 'SPECIFIED', ], ], 'H265QualityTuningLevel' => [ 'type' => 'string', 'enum' => [ 'SINGLE_PASS', 'SINGLE_PASS_HQ', 'MULTI_PASS_HQ', ], ], 'H265QvbrSettings' => [ 'type' => 'structure', 'members' => [ 'MaxAverageBitrate' => [ 'shape' => '__integerMin1000Max1466400000', 'locationName' => 'maxAverageBitrate', ], 'QvbrQualityLevel' => [ 'shape' => '__integerMin1Max10', 'locationName' => 'qvbrQualityLevel', ], ], ], 'H265RateControlMode' => [ 'type' => 'string', 'enum' => [ 'VBR', 'CBR', 'QVBR', ], ], 'H265SampleAdaptiveOffsetFilterMode' => [ 'type' => 'string', 'enum' => [ 'DEFAULT', 'ADAPTIVE', 'OFF', ], ], 'H265SceneChangeDetect' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H265Settings' => [ 'type' => 'structure', 'members' => [ 'AdaptiveQuantization' => [ 'shape' => 'H265AdaptiveQuantization', 'locationName' => 'adaptiveQuantization', ], 'AlternateTransferFunctionSei' => [ 'shape' => 'H265AlternateTransferFunctionSei', 'locationName' => 'alternateTransferFunctionSei', ], 'Bitrate' => [ 'shape' => '__integerMin1000Max1466400000', 'locationName' => 'bitrate', ], 'CodecLevel' => [ 'shape' => 'H265CodecLevel', 'locationName' => 'codecLevel', ], 'CodecProfile' => [ 'shape' => 'H265CodecProfile', 'locationName' => 'codecProfile', ], 'DynamicSubGop' => [ 'shape' => 'H265DynamicSubGop', 'locationName' => 'dynamicSubGop', ], 'FlickerAdaptiveQuantization' => [ 'shape' => 'H265FlickerAdaptiveQuantization', 'locationName' => 'flickerAdaptiveQuantization', ], 'FramerateControl' => [ 'shape' => 'H265FramerateControl', 'locationName' => 'framerateControl', ], 'FramerateConversionAlgorithm' => [ 'shape' => 'H265FramerateConversionAlgorithm', 'locationName' => 'framerateConversionAlgorithm', ], 'FramerateDenominator' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'framerateDenominator', ], 'FramerateNumerator' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'framerateNumerator', ], 'GopBReference' => [ 'shape' => 'H265GopBReference', 'locationName' => 'gopBReference', ], 'GopClosedCadence' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'gopClosedCadence', ], 'GopSize' => [ 'shape' => '__doubleMin0', 'locationName' => 'gopSize', ], 'GopSizeUnits' => [ 'shape' => 'H265GopSizeUnits', 'locationName' => 'gopSizeUnits', ], 'HrdBufferInitialFillPercentage' => [ 'shape' => '__integerMin0Max100', 'locationName' => 'hrdBufferInitialFillPercentage', ], 'HrdBufferSize' => [ 'shape' => '__integerMin0Max1466400000', 'locationName' => 'hrdBufferSize', ], 'InterlaceMode' => [ 'shape' => 'H265InterlaceMode', 'locationName' => 'interlaceMode', ], 'MaxBitrate' => [ 'shape' => '__integerMin1000Max1466400000', 'locationName' => 'maxBitrate', ], 'MinIInterval' => [ 'shape' => '__integerMin0Max30', 'locationName' => 'minIInterval', ], 'NumberBFramesBetweenReferenceFrames' => [ 'shape' => '__integerMin0Max7', 'locationName' => 'numberBFramesBetweenReferenceFrames', ], 'NumberReferenceFrames' => [ 'shape' => '__integerMin1Max6', 'locationName' => 'numberReferenceFrames', ], 'ParControl' => [ 'shape' => 'H265ParControl', 'locationName' => 'parControl', ], 'ParDenominator' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'parDenominator', ], 'ParNumerator' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'parNumerator', ], 'QualityTuningLevel' => [ 'shape' => 'H265QualityTuningLevel', 'locationName' => 'qualityTuningLevel', ], 'QvbrSettings' => [ 'shape' => 'H265QvbrSettings', 'locationName' => 'qvbrSettings', ], 'RateControlMode' => [ 'shape' => 'H265RateControlMode', 'locationName' => 'rateControlMode', ], 'SampleAdaptiveOffsetFilterMode' => [ 'shape' => 'H265SampleAdaptiveOffsetFilterMode', 'locationName' => 'sampleAdaptiveOffsetFilterMode', ], 'SceneChangeDetect' => [ 'shape' => 'H265SceneChangeDetect', 'locationName' => 'sceneChangeDetect', ], 'Slices' => [ 'shape' => '__integerMin1Max32', 'locationName' => 'slices', ], 'SlowPal' => [ 'shape' => 'H265SlowPal', 'locationName' => 'slowPal', ], 'SpatialAdaptiveQuantization' => [ 'shape' => 'H265SpatialAdaptiveQuantization', 'locationName' => 'spatialAdaptiveQuantization', ], 'Telecine' => [ 'shape' => 'H265Telecine', 'locationName' => 'telecine', ], 'TemporalAdaptiveQuantization' => [ 'shape' => 'H265TemporalAdaptiveQuantization', 'locationName' => 'temporalAdaptiveQuantization', ], 'TemporalIds' => [ 'shape' => 'H265TemporalIds', 'locationName' => 'temporalIds', ], 'Tiles' => [ 'shape' => 'H265Tiles', 'locationName' => 'tiles', ], 'UnregisteredSeiTimecode' => [ 'shape' => 'H265UnregisteredSeiTimecode', 'locationName' => 'unregisteredSeiTimecode', ], 'WriteMp4PackagingType' => [ 'shape' => 'H265WriteMp4PackagingType', 'locationName' => 'writeMp4PackagingType', ], ], ], 'H265SlowPal' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H265SpatialAdaptiveQuantization' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H265Telecine' => [ 'type' => 'string', 'enum' => [ 'NONE', 'SOFT', 'HARD', ], ], 'H265TemporalAdaptiveQuantization' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H265TemporalIds' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H265Tiles' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H265UnregisteredSeiTimecode' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H265WriteMp4PackagingType' => [ 'type' => 'string', 'enum' => [ 'HVC1', 'HEV1', ], ], 'Hdr10Metadata' => [ 'type' => 'structure', 'members' => [ 'BluePrimaryX' => [ 'shape' => '__integerMin0Max50000', 'locationName' => 'bluePrimaryX', ], 'BluePrimaryY' => [ 'shape' => '__integerMin0Max50000', 'locationName' => 'bluePrimaryY', ], 'GreenPrimaryX' => [ 'shape' => '__integerMin0Max50000', 'locationName' => 'greenPrimaryX', ], 'GreenPrimaryY' => [ 'shape' => '__integerMin0Max50000', 'locationName' => 'greenPrimaryY', ], 'MaxContentLightLevel' => [ 'shape' => '__integerMin0Max65535', 'locationName' => 'maxContentLightLevel', ], 'MaxFrameAverageLightLevel' => [ 'shape' => '__integerMin0Max65535', 'locationName' => 'maxFrameAverageLightLevel', ], 'MaxLuminance' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'maxLuminance', ], 'MinLuminance' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'minLuminance', ], 'RedPrimaryX' => [ 'shape' => '__integerMin0Max50000', 'locationName' => 'redPrimaryX', ], 'RedPrimaryY' => [ 'shape' => '__integerMin0Max50000', 'locationName' => 'redPrimaryY', ], 'WhitePointX' => [ 'shape' => '__integerMin0Max50000', 'locationName' => 'whitePointX', ], 'WhitePointY' => [ 'shape' => '__integerMin0Max50000', 'locationName' => 'whitePointY', ], ], ], 'HlsAdMarkers' => [ 'type' => 'string', 'enum' => [ 'ELEMENTAL', 'ELEMENTAL_SCTE35', ], ], 'HlsAudioTrackType' => [ 'type' => 'string', 'enum' => [ 'ALTERNATE_AUDIO_AUTO_SELECT_DEFAULT', 'ALTERNATE_AUDIO_AUTO_SELECT', 'ALTERNATE_AUDIO_NOT_AUTO_SELECT', 'AUDIO_ONLY_VARIANT_STREAM', ], ], 'HlsCaptionLanguageMapping' => [ 'type' => 'structure', 'members' => [ 'CaptionChannel' => [ 'shape' => '__integerMinNegative2147483648Max2147483647', 'locationName' => 'captionChannel', ], 'CustomLanguageCode' => [ 'shape' => '__stringMin3Max3PatternAZaZ3', 'locationName' => 'customLanguageCode', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', 'locationName' => 'languageCode', ], 'LanguageDescription' => [ 'shape' => '__string', 'locationName' => 'languageDescription', ], ], ], 'HlsCaptionLanguageSetting' => [ 'type' => 'string', 'enum' => [ 'INSERT', 'OMIT', 'NONE', ], ], 'HlsClientCache' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'HlsCodecSpecification' => [ 'type' => 'string', 'enum' => [ 'RFC_6381', 'RFC_4281', ], ], 'HlsDirectoryStructure' => [ 'type' => 'string', 'enum' => [ 'SINGLE_DIRECTORY', 'SUBDIRECTORY_PER_STREAM', ], ], 'HlsEncryptionSettings' => [ 'type' => 'structure', 'members' => [ 'ConstantInitializationVector' => [ 'shape' => '__stringMin32Max32Pattern09aFAF32', 'locationName' => 'constantInitializationVector', ], 'EncryptionMethod' => [ 'shape' => 'HlsEncryptionType', 'locationName' => 'encryptionMethod', ], 'InitializationVectorInManifest' => [ 'shape' => 'HlsInitializationVectorInManifest', 'locationName' => 'initializationVectorInManifest', ], 'OfflineEncrypted' => [ 'shape' => 'HlsOfflineEncrypted', 'locationName' => 'offlineEncrypted', ], 'SpekeKeyProvider' => [ 'shape' => 'SpekeKeyProvider', 'locationName' => 'spekeKeyProvider', ], 'StaticKeyProvider' => [ 'shape' => 'StaticKeyProvider', 'locationName' => 'staticKeyProvider', ], 'Type' => [ 'shape' => 'HlsKeyProviderType', 'locationName' => 'type', ], ], ], 'HlsEncryptionType' => [ 'type' => 'string', 'enum' => [ 'AES128', 'SAMPLE_AES', ], ], 'HlsGroupSettings' => [ 'type' => 'structure', 'members' => [ 'AdMarkers' => [ 'shape' => '__listOfHlsAdMarkers', 'locationName' => 'adMarkers', ], 'BaseUrl' => [ 'shape' => '__string', 'locationName' => 'baseUrl', ], 'CaptionLanguageMappings' => [ 'shape' => '__listOfHlsCaptionLanguageMapping', 'locationName' => 'captionLanguageMappings', ], 'CaptionLanguageSetting' => [ 'shape' => 'HlsCaptionLanguageSetting', 'locationName' => 'captionLanguageSetting', ], 'ClientCache' => [ 'shape' => 'HlsClientCache', 'locationName' => 'clientCache', ], 'CodecSpecification' => [ 'shape' => 'HlsCodecSpecification', 'locationName' => 'codecSpecification', ], 'Destination' => [ 'shape' => '__stringPatternS3', 'locationName' => 'destination', ], 'DestinationSettings' => [ 'shape' => 'DestinationSettings', 'locationName' => 'destinationSettings', ], 'DirectoryStructure' => [ 'shape' => 'HlsDirectoryStructure', 'locationName' => 'directoryStructure', ], 'Encryption' => [ 'shape' => 'HlsEncryptionSettings', 'locationName' => 'encryption', ], 'ManifestCompression' => [ 'shape' => 'HlsManifestCompression', 'locationName' => 'manifestCompression', ], 'ManifestDurationFormat' => [ 'shape' => 'HlsManifestDurationFormat', 'locationName' => 'manifestDurationFormat', ], 'MinFinalSegmentLength' => [ 'shape' => '__doubleMin0Max2147483647', 'locationName' => 'minFinalSegmentLength', ], 'MinSegmentLength' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'minSegmentLength', ], 'OutputSelection' => [ 'shape' => 'HlsOutputSelection', 'locationName' => 'outputSelection', ], 'ProgramDateTime' => [ 'shape' => 'HlsProgramDateTime', 'locationName' => 'programDateTime', ], 'ProgramDateTimePeriod' => [ 'shape' => '__integerMin0Max3600', 'locationName' => 'programDateTimePeriod', ], 'SegmentControl' => [ 'shape' => 'HlsSegmentControl', 'locationName' => 'segmentControl', ], 'SegmentLength' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'segmentLength', ], 'SegmentsPerSubdirectory' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'segmentsPerSubdirectory', ], 'StreamInfResolution' => [ 'shape' => 'HlsStreamInfResolution', 'locationName' => 'streamInfResolution', ], 'TimedMetadataId3Frame' => [ 'shape' => 'HlsTimedMetadataId3Frame', 'locationName' => 'timedMetadataId3Frame', ], 'TimedMetadataId3Period' => [ 'shape' => '__integerMinNegative2147483648Max2147483647', 'locationName' => 'timedMetadataId3Period', ], 'TimestampDeltaMilliseconds' => [ 'shape' => '__integerMinNegative2147483648Max2147483647', 'locationName' => 'timestampDeltaMilliseconds', ], ], ], 'HlsIFrameOnlyManifest' => [ 'type' => 'string', 'enum' => [ 'INCLUDE', 'EXCLUDE', ], ], 'HlsInitializationVectorInManifest' => [ 'type' => 'string', 'enum' => [ 'INCLUDE', 'EXCLUDE', ], ], 'HlsKeyProviderType' => [ 'type' => 'string', 'enum' => [ 'SPEKE', 'STATIC_KEY', ], ], 'HlsManifestCompression' => [ 'type' => 'string', 'enum' => [ 'GZIP', 'NONE', ], ], 'HlsManifestDurationFormat' => [ 'type' => 'string', 'enum' => [ 'FLOATING_POINT', 'INTEGER', ], ], 'HlsOfflineEncrypted' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'HlsOutputSelection' => [ 'type' => 'string', 'enum' => [ 'MANIFESTS_AND_SEGMENTS', 'SEGMENTS_ONLY', ], ], 'HlsProgramDateTime' => [ 'type' => 'string', 'enum' => [ 'INCLUDE', 'EXCLUDE', ], ], 'HlsSegmentControl' => [ 'type' => 'string', 'enum' => [ 'SINGLE_FILE', 'SEGMENTED_FILES', ], ], 'HlsSettings' => [ 'type' => 'structure', 'members' => [ 'AudioGroupId' => [ 'shape' => '__string', 'locationName' => 'audioGroupId', ], 'AudioRenditionSets' => [ 'shape' => '__string', 'locationName' => 'audioRenditionSets', ], 'AudioTrackType' => [ 'shape' => 'HlsAudioTrackType', 'locationName' => 'audioTrackType', ], 'IFrameOnlyManifest' => [ 'shape' => 'HlsIFrameOnlyManifest', 'locationName' => 'iFrameOnlyManifest', ], 'SegmentModifier' => [ 'shape' => '__string', 'locationName' => 'segmentModifier', ], ], ], 'HlsStreamInfResolution' => [ 'type' => 'string', 'enum' => [ 'INCLUDE', 'EXCLUDE', ], ], 'HlsTimedMetadataId3Frame' => [ 'type' => 'string', 'enum' => [ 'NONE', 'PRIV', 'TDRL', ], ], 'Id3Insertion' => [ 'type' => 'structure', 'members' => [ 'Id3' => [ 'shape' => '__stringPatternAZaZ0902', 'locationName' => 'id3', ], 'Timecode' => [ 'shape' => '__stringPattern010920405090509092', 'locationName' => 'timecode', ], ], ], 'ImageInserter' => [ 'type' => 'structure', 'members' => [ 'InsertableImages' => [ 'shape' => '__listOfInsertableImage', 'locationName' => 'insertableImages', ], ], ], 'Input' => [ 'type' => 'structure', 'members' => [ 'AudioSelectorGroups' => [ 'shape' => '__mapOfAudioSelectorGroup', 'locationName' => 'audioSelectorGroups', ], 'AudioSelectors' => [ 'shape' => '__mapOfAudioSelector', 'locationName' => 'audioSelectors', ], 'CaptionSelectors' => [ 'shape' => '__mapOfCaptionSelector', 'locationName' => 'captionSelectors', ], 'DeblockFilter' => [ 'shape' => 'InputDeblockFilter', 'locationName' => 'deblockFilter', ], 'DecryptionSettings' => [ 'shape' => 'InputDecryptionSettings', 'locationName' => 'decryptionSettings', ], 'DenoiseFilter' => [ 'shape' => 'InputDenoiseFilter', 'locationName' => 'denoiseFilter', ], 'FileInput' => [ 'shape' => '__stringPatternS3MM2VVMMPPEEGGAAVVIIMMPP4FFLLVVMMPPTTMMPPGGMM4VVTTRRPPFF4VVMM2TTSSTTSS264HH264MMKKVVMMOOVVMMTTSSMM2TTWWMMVVAASSFFVVOOBB3GGPP3GGPPPPMMXXFFDDIIVVXXXXVVIIDDRRAAWWDDVVGGXXFFMM1VV3GG2VVMMFFMM3UU8LLCCHHGGXXFFMMPPEEGG2MMXXFFMMPPEEGG2MMXXFFHHDDWWAAVVYY4MMXXMMLL', 'locationName' => 'fileInput', ], 'FilterEnable' => [ 'shape' => 'InputFilterEnable', 'locationName' => 'filterEnable', ], 'FilterStrength' => [ 'shape' => '__integerMinNegative5Max5', 'locationName' => 'filterStrength', ], 'ImageInserter' => [ 'shape' => 'ImageInserter', 'locationName' => 'imageInserter', ], 'InputClippings' => [ 'shape' => '__listOfInputClipping', 'locationName' => 'inputClippings', ], 'ProgramNumber' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'programNumber', ], 'PsiControl' => [ 'shape' => 'InputPsiControl', 'locationName' => 'psiControl', ], 'SupplementalImps' => [ 'shape' => '__listOf__stringPatternS3ASSETMAPXml', 'locationName' => 'supplementalImps', ], 'TimecodeSource' => [ 'shape' => 'InputTimecodeSource', 'locationName' => 'timecodeSource', ], 'VideoSelector' => [ 'shape' => 'VideoSelector', 'locationName' => 'videoSelector', ], ], ], 'InputClipping' => [ 'type' => 'structure', 'members' => [ 'EndTimecode' => [ 'shape' => '__stringPattern010920405090509092', 'locationName' => 'endTimecode', ], 'StartTimecode' => [ 'shape' => '__stringPattern010920405090509092', 'locationName' => 'startTimecode', ], ], ], 'InputDeblockFilter' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'InputDecryptionSettings' => [ 'type' => 'structure', 'members' => [ 'DecryptionMode' => [ 'shape' => 'DecryptionMode', 'locationName' => 'decryptionMode', ], 'EncryptedDecryptionKey' => [ 'shape' => '__stringMin24Max512PatternAZaZ0902', 'locationName' => 'encryptedDecryptionKey', ], 'InitializationVector' => [ 'shape' => '__stringMin16Max24PatternAZaZ0922AZaZ0916', 'locationName' => 'initializationVector', ], 'KmsKeyRegion' => [ 'shape' => '__stringMin9Max19PatternAZ26EastWestCentralNorthSouthEastWest1912', 'locationName' => 'kmsKeyRegion', ], ], ], 'InputDenoiseFilter' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'InputFilterEnable' => [ 'type' => 'string', 'enum' => [ 'AUTO', 'DISABLE', 'FORCE', ], ], 'InputPsiControl' => [ 'type' => 'string', 'enum' => [ 'IGNORE_PSI', 'USE_PSI', ], ], 'InputRotate' => [ 'type' => 'string', 'enum' => [ 'DEGREE_0', 'DEGREES_90', 'DEGREES_180', 'DEGREES_270', 'AUTO', ], ], 'InputTemplate' => [ 'type' => 'structure', 'members' => [ 'AudioSelectorGroups' => [ 'shape' => '__mapOfAudioSelectorGroup', 'locationName' => 'audioSelectorGroups', ], 'AudioSelectors' => [ 'shape' => '__mapOfAudioSelector', 'locationName' => 'audioSelectors', ], 'CaptionSelectors' => [ 'shape' => '__mapOfCaptionSelector', 'locationName' => 'captionSelectors', ], 'DeblockFilter' => [ 'shape' => 'InputDeblockFilter', 'locationName' => 'deblockFilter', ], 'DenoiseFilter' => [ 'shape' => 'InputDenoiseFilter', 'locationName' => 'denoiseFilter', ], 'FilterEnable' => [ 'shape' => 'InputFilterEnable', 'locationName' => 'filterEnable', ], 'FilterStrength' => [ 'shape' => '__integerMinNegative5Max5', 'locationName' => 'filterStrength', ], 'ImageInserter' => [ 'shape' => 'ImageInserter', 'locationName' => 'imageInserter', ], 'InputClippings' => [ 'shape' => '__listOfInputClipping', 'locationName' => 'inputClippings', ], 'ProgramNumber' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'programNumber', ], 'PsiControl' => [ 'shape' => 'InputPsiControl', 'locationName' => 'psiControl', ], 'TimecodeSource' => [ 'shape' => 'InputTimecodeSource', 'locationName' => 'timecodeSource', ], 'VideoSelector' => [ 'shape' => 'VideoSelector', 'locationName' => 'videoSelector', ], ], ], 'InputTimecodeSource' => [ 'type' => 'string', 'enum' => [ 'EMBEDDED', 'ZEROBASED', 'SPECIFIEDSTART', ], ], 'InsertableImage' => [ 'type' => 'structure', 'members' => [ 'Duration' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'duration', ], 'FadeIn' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'fadeIn', ], 'FadeOut' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'fadeOut', ], 'Height' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'height', ], 'ImageInserterInput' => [ 'shape' => '__stringMin14PatternS3BmpBMPPngPNGTgaTGA', 'locationName' => 'imageInserterInput', ], 'ImageX' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'imageX', ], 'ImageY' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'imageY', ], 'Layer' => [ 'shape' => '__integerMin0Max99', 'locationName' => 'layer', ], 'Opacity' => [ 'shape' => '__integerMin0Max100', 'locationName' => 'opacity', ], 'StartTime' => [ 'shape' => '__stringPattern01D20305D205D', 'locationName' => 'startTime', ], 'Width' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'width', ], ], ], 'InternalServerErrorException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 500, ], ], 'Job' => [ 'type' => 'structure', 'members' => [ 'AccelerationSettings' => [ 'shape' => 'AccelerationSettings', 'locationName' => 'accelerationSettings', ], 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'BillingTagsSource' => [ 'shape' => 'BillingTagsSource', 'locationName' => 'billingTagsSource', ], 'CreatedAt' => [ 'shape' => '__timestampUnix', 'locationName' => 'createdAt', ], 'CurrentPhase' => [ 'shape' => 'JobPhase', 'locationName' => 'currentPhase', ], 'ErrorCode' => [ 'shape' => '__integer', 'locationName' => 'errorCode', ], 'ErrorMessage' => [ 'shape' => '__string', 'locationName' => 'errorMessage', ], 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], 'JobPercentComplete' => [ 'shape' => '__integer', 'locationName' => 'jobPercentComplete', ], 'JobTemplate' => [ 'shape' => '__string', 'locationName' => 'jobTemplate', ], 'OutputGroupDetails' => [ 'shape' => '__listOfOutputGroupDetail', 'locationName' => 'outputGroupDetails', ], 'Queue' => [ 'shape' => '__string', 'locationName' => 'queue', ], 'RetryCount' => [ 'shape' => '__integer', 'locationName' => 'retryCount', ], 'Role' => [ 'shape' => '__string', 'locationName' => 'role', ], 'Settings' => [ 'shape' => 'JobSettings', 'locationName' => 'settings', ], 'Status' => [ 'shape' => 'JobStatus', 'locationName' => 'status', ], 'StatusUpdateInterval' => [ 'shape' => 'StatusUpdateInterval', 'locationName' => 'statusUpdateInterval', ], 'Timing' => [ 'shape' => 'Timing', 'locationName' => 'timing', ], 'UserMetadata' => [ 'shape' => '__mapOf__string', 'locationName' => 'userMetadata', ], ], 'required' => [ 'Role', 'Settings', ], ], 'JobPhase' => [ 'type' => 'string', 'enum' => [ 'PROBING', 'TRANSCODING', 'UPLOADING', ], ], 'JobSettings' => [ 'type' => 'structure', 'members' => [ 'AdAvailOffset' => [ 'shape' => '__integerMinNegative1000Max1000', 'locationName' => 'adAvailOffset', ], 'AvailBlanking' => [ 'shape' => 'AvailBlanking', 'locationName' => 'availBlanking', ], 'Esam' => [ 'shape' => 'EsamSettings', 'locationName' => 'esam', ], 'Inputs' => [ 'shape' => '__listOfInput', 'locationName' => 'inputs', ], 'MotionImageInserter' => [ 'shape' => 'MotionImageInserter', 'locationName' => 'motionImageInserter', ], 'NielsenConfiguration' => [ 'shape' => 'NielsenConfiguration', 'locationName' => 'nielsenConfiguration', ], 'OutputGroups' => [ 'shape' => '__listOfOutputGroup', 'locationName' => 'outputGroups', ], 'TimecodeConfig' => [ 'shape' => 'TimecodeConfig', 'locationName' => 'timecodeConfig', ], 'TimedMetadataInsertion' => [ 'shape' => 'TimedMetadataInsertion', 'locationName' => 'timedMetadataInsertion', ], ], ], 'JobStatus' => [ 'type' => 'string', 'enum' => [ 'SUBMITTED', 'PROGRESSING', 'COMPLETE', 'CANCELED', 'ERROR', ], ], 'JobTemplate' => [ 'type' => 'structure', 'members' => [ 'AccelerationSettings' => [ 'shape' => 'AccelerationSettings', 'locationName' => 'accelerationSettings', ], 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'Category' => [ 'shape' => '__string', 'locationName' => 'category', ], 'CreatedAt' => [ 'shape' => '__timestampUnix', 'locationName' => 'createdAt', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'LastUpdated' => [ 'shape' => '__timestampUnix', 'locationName' => 'lastUpdated', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'Queue' => [ 'shape' => '__string', 'locationName' => 'queue', ], 'Settings' => [ 'shape' => 'JobTemplateSettings', 'locationName' => 'settings', ], 'StatusUpdateInterval' => [ 'shape' => 'StatusUpdateInterval', 'locationName' => 'statusUpdateInterval', ], 'Type' => [ 'shape' => 'Type', 'locationName' => 'type', ], ], 'required' => [ 'Settings', 'Name', ], ], 'JobTemplateListBy' => [ 'type' => 'string', 'enum' => [ 'NAME', 'CREATION_DATE', 'SYSTEM', ], ], 'JobTemplateSettings' => [ 'type' => 'structure', 'members' => [ 'AdAvailOffset' => [ 'shape' => '__integerMinNegative1000Max1000', 'locationName' => 'adAvailOffset', ], 'AvailBlanking' => [ 'shape' => 'AvailBlanking', 'locationName' => 'availBlanking', ], 'Esam' => [ 'shape' => 'EsamSettings', 'locationName' => 'esam', ], 'Inputs' => [ 'shape' => '__listOfInputTemplate', 'locationName' => 'inputs', ], 'MotionImageInserter' => [ 'shape' => 'MotionImageInserter', 'locationName' => 'motionImageInserter', ], 'NielsenConfiguration' => [ 'shape' => 'NielsenConfiguration', 'locationName' => 'nielsenConfiguration', ], 'OutputGroups' => [ 'shape' => '__listOfOutputGroup', 'locationName' => 'outputGroups', ], 'TimecodeConfig' => [ 'shape' => 'TimecodeConfig', 'locationName' => 'timecodeConfig', ], 'TimedMetadataInsertion' => [ 'shape' => 'TimedMetadataInsertion', 'locationName' => 'timedMetadataInsertion', ], ], ], 'LanguageCode' => [ 'type' => 'string', 'enum' => [ 'ENG', 'SPA', 'FRA', 'DEU', 'GER', 'ZHO', 'ARA', 'HIN', 'JPN', 'RUS', 'POR', 'ITA', 'URD', 'VIE', 'KOR', 'PAN', 'ABK', 'AAR', 'AFR', 'AKA', 'SQI', 'AMH', 'ARG', 'HYE', 'ASM', 'AVA', 'AVE', 'AYM', 'AZE', 'BAM', 'BAK', 'EUS', 'BEL', 'BEN', 'BIH', 'BIS', 'BOS', 'BRE', 'BUL', 'MYA', 'CAT', 'KHM', 'CHA', 'CHE', 'NYA', 'CHU', 'CHV', 'COR', 'COS', 'CRE', 'HRV', 'CES', 'DAN', 'DIV', 'NLD', 'DZO', 'ENM', 'EPO', 'EST', 'EWE', 'FAO', 'FIJ', 'FIN', 'FRM', 'FUL', 'GLA', 'GLG', 'LUG', 'KAT', 'ELL', 'GRN', 'GUJ', 'HAT', 'HAU', 'HEB', 'HER', 'HMO', 'HUN', 'ISL', 'IDO', 'IBO', 'IND', 'INA', 'ILE', 'IKU', 'IPK', 'GLE', 'JAV', 'KAL', 'KAN', 'KAU', 'KAS', 'KAZ', 'KIK', 'KIN', 'KIR', 'KOM', 'KON', 'KUA', 'KUR', 'LAO', 'LAT', 'LAV', 'LIM', 'LIN', 'LIT', 'LUB', 'LTZ', 'MKD', 'MLG', 'MSA', 'MAL', 'MLT', 'GLV', 'MRI', 'MAR', 'MAH', 'MON', 'NAU', 'NAV', 'NDE', 'NBL', 'NDO', 'NEP', 'SME', 'NOR', 'NOB', 'NNO', 'OCI', 'OJI', 'ORI', 'ORM', 'OSS', 'PLI', 'FAS', 'POL', 'PUS', 'QUE', 'QAA', 'RON', 'ROH', 'RUN', 'SMO', 'SAG', 'SAN', 'SRD', 'SRB', 'SNA', 'III', 'SND', 'SIN', 'SLK', 'SLV', 'SOM', 'SOT', 'SUN', 'SWA', 'SSW', 'SWE', 'TGL', 'TAH', 'TGK', 'TAM', 'TAT', 'TEL', 'THA', 'BOD', 'TIR', 'TON', 'TSO', 'TSN', 'TUR', 'TUK', 'TWI', 'UIG', 'UKR', 'UZB', 'VEN', 'VOL', 'WLN', 'CYM', 'FRY', 'WOL', 'XHO', 'YID', 'YOR', 'ZHA', 'ZUL', 'ORJ', 'QPC', 'TNG', ], ], 'ListJobTemplatesRequest' => [ 'type' => 'structure', 'members' => [ 'Category' => [ 'shape' => '__string', 'locationName' => 'category', 'location' => 'querystring', ], 'ListBy' => [ 'shape' => 'JobTemplateListBy', 'locationName' => 'listBy', 'location' => 'querystring', ], 'MaxResults' => [ 'shape' => '__integerMin1Max20', 'locationName' => 'maxResults', 'location' => 'querystring', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', 'location' => 'querystring', ], 'Order' => [ 'shape' => 'Order', 'locationName' => 'order', 'location' => 'querystring', ], ], ], 'ListJobTemplatesResponse' => [ 'type' => 'structure', 'members' => [ 'JobTemplates' => [ 'shape' => '__listOfJobTemplate', 'locationName' => 'jobTemplates', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'ListJobsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => '__integerMin1Max20', 'locationName' => 'maxResults', 'location' => 'querystring', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', 'location' => 'querystring', ], 'Order' => [ 'shape' => 'Order', 'locationName' => 'order', 'location' => 'querystring', ], 'Queue' => [ 'shape' => '__string', 'locationName' => 'queue', 'location' => 'querystring', ], 'Status' => [ 'shape' => 'JobStatus', 'locationName' => 'status', 'location' => 'querystring', ], ], ], 'ListJobsResponse' => [ 'type' => 'structure', 'members' => [ 'Jobs' => [ 'shape' => '__listOfJob', 'locationName' => 'jobs', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'ListPresetsRequest' => [ 'type' => 'structure', 'members' => [ 'Category' => [ 'shape' => '__string', 'locationName' => 'category', 'location' => 'querystring', ], 'ListBy' => [ 'shape' => 'PresetListBy', 'locationName' => 'listBy', 'location' => 'querystring', ], 'MaxResults' => [ 'shape' => '__integerMin1Max20', 'locationName' => 'maxResults', 'location' => 'querystring', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', 'location' => 'querystring', ], 'Order' => [ 'shape' => 'Order', 'locationName' => 'order', 'location' => 'querystring', ], ], ], 'ListPresetsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], 'Presets' => [ 'shape' => '__listOfPreset', 'locationName' => 'presets', ], ], ], 'ListQueuesRequest' => [ 'type' => 'structure', 'members' => [ 'ListBy' => [ 'shape' => 'QueueListBy', 'locationName' => 'listBy', 'location' => 'querystring', ], 'MaxResults' => [ 'shape' => '__integerMin1Max20', 'locationName' => 'maxResults', 'location' => 'querystring', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', 'location' => 'querystring', ], 'Order' => [ 'shape' => 'Order', 'locationName' => 'order', 'location' => 'querystring', ], ], ], 'ListQueuesResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], 'Queues' => [ 'shape' => '__listOfQueue', 'locationName' => 'queues', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', 'location' => 'uri', ], ], 'required' => [ 'Arn', ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'ResourceTags' => [ 'shape' => 'ResourceTags', 'locationName' => 'resourceTags', ], ], ], 'M2tsAudioBufferModel' => [ 'type' => 'string', 'enum' => [ 'DVB', 'ATSC', ], ], 'M2tsBufferModel' => [ 'type' => 'string', 'enum' => [ 'MULTIPLEX', 'NONE', ], ], 'M2tsEbpAudioInterval' => [ 'type' => 'string', 'enum' => [ 'VIDEO_AND_FIXED_INTERVALS', 'VIDEO_INTERVAL', ], ], 'M2tsEbpPlacement' => [ 'type' => 'string', 'enum' => [ 'VIDEO_AND_AUDIO_PIDS', 'VIDEO_PID', ], ], 'M2tsEsRateInPes' => [ 'type' => 'string', 'enum' => [ 'INCLUDE', 'EXCLUDE', ], ], 'M2tsForceTsVideoEbpOrder' => [ 'type' => 'string', 'enum' => [ 'FORCE', 'DEFAULT', ], ], 'M2tsNielsenId3' => [ 'type' => 'string', 'enum' => [ 'INSERT', 'NONE', ], ], 'M2tsPcrControl' => [ 'type' => 'string', 'enum' => [ 'PCR_EVERY_PES_PACKET', 'CONFIGURED_PCR_PERIOD', ], ], 'M2tsRateMode' => [ 'type' => 'string', 'enum' => [ 'VBR', 'CBR', ], ], 'M2tsScte35Esam' => [ 'type' => 'structure', 'members' => [ 'Scte35EsamPid' => [ 'shape' => '__integerMin32Max8182', 'locationName' => 'scte35EsamPid', ], ], ], 'M2tsScte35Source' => [ 'type' => 'string', 'enum' => [ 'PASSTHROUGH', 'NONE', ], ], 'M2tsSegmentationMarkers' => [ 'type' => 'string', 'enum' => [ 'NONE', 'RAI_SEGSTART', 'RAI_ADAPT', 'PSI_SEGSTART', 'EBP', 'EBP_LEGACY', ], ], 'M2tsSegmentationStyle' => [ 'type' => 'string', 'enum' => [ 'MAINTAIN_CADENCE', 'RESET_CADENCE', ], ], 'M2tsSettings' => [ 'type' => 'structure', 'members' => [ 'AudioBufferModel' => [ 'shape' => 'M2tsAudioBufferModel', 'locationName' => 'audioBufferModel', ], 'AudioFramesPerPes' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'audioFramesPerPes', ], 'AudioPids' => [ 'shape' => '__listOf__integerMin32Max8182', 'locationName' => 'audioPids', ], 'Bitrate' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'bitrate', ], 'BufferModel' => [ 'shape' => 'M2tsBufferModel', 'locationName' => 'bufferModel', ], 'DvbNitSettings' => [ 'shape' => 'DvbNitSettings', 'locationName' => 'dvbNitSettings', ], 'DvbSdtSettings' => [ 'shape' => 'DvbSdtSettings', 'locationName' => 'dvbSdtSettings', ], 'DvbSubPids' => [ 'shape' => '__listOf__integerMin32Max8182', 'locationName' => 'dvbSubPids', ], 'DvbTdtSettings' => [ 'shape' => 'DvbTdtSettings', 'locationName' => 'dvbTdtSettings', ], 'DvbTeletextPid' => [ 'shape' => '__integerMin32Max8182', 'locationName' => 'dvbTeletextPid', ], 'EbpAudioInterval' => [ 'shape' => 'M2tsEbpAudioInterval', 'locationName' => 'ebpAudioInterval', ], 'EbpPlacement' => [ 'shape' => 'M2tsEbpPlacement', 'locationName' => 'ebpPlacement', ], 'EsRateInPes' => [ 'shape' => 'M2tsEsRateInPes', 'locationName' => 'esRateInPes', ], 'ForceTsVideoEbpOrder' => [ 'shape' => 'M2tsForceTsVideoEbpOrder', 'locationName' => 'forceTsVideoEbpOrder', ], 'FragmentTime' => [ 'shape' => '__doubleMin0', 'locationName' => 'fragmentTime', ], 'MaxPcrInterval' => [ 'shape' => '__integerMin0Max500', 'locationName' => 'maxPcrInterval', ], 'MinEbpInterval' => [ 'shape' => '__integerMin0Max10000', 'locationName' => 'minEbpInterval', ], 'NielsenId3' => [ 'shape' => 'M2tsNielsenId3', 'locationName' => 'nielsenId3', ], 'NullPacketBitrate' => [ 'shape' => '__doubleMin0', 'locationName' => 'nullPacketBitrate', ], 'PatInterval' => [ 'shape' => '__integerMin0Max1000', 'locationName' => 'patInterval', ], 'PcrControl' => [ 'shape' => 'M2tsPcrControl', 'locationName' => 'pcrControl', ], 'PcrPid' => [ 'shape' => '__integerMin32Max8182', 'locationName' => 'pcrPid', ], 'PmtInterval' => [ 'shape' => '__integerMin0Max1000', 'locationName' => 'pmtInterval', ], 'PmtPid' => [ 'shape' => '__integerMin32Max8182', 'locationName' => 'pmtPid', ], 'PrivateMetadataPid' => [ 'shape' => '__integerMin32Max8182', 'locationName' => 'privateMetadataPid', ], 'ProgramNumber' => [ 'shape' => '__integerMin0Max65535', 'locationName' => 'programNumber', ], 'RateMode' => [ 'shape' => 'M2tsRateMode', 'locationName' => 'rateMode', ], 'Scte35Esam' => [ 'shape' => 'M2tsScte35Esam', 'locationName' => 'scte35Esam', ], 'Scte35Pid' => [ 'shape' => '__integerMin32Max8182', 'locationName' => 'scte35Pid', ], 'Scte35Source' => [ 'shape' => 'M2tsScte35Source', 'locationName' => 'scte35Source', ], 'SegmentationMarkers' => [ 'shape' => 'M2tsSegmentationMarkers', 'locationName' => 'segmentationMarkers', ], 'SegmentationStyle' => [ 'shape' => 'M2tsSegmentationStyle', 'locationName' => 'segmentationStyle', ], 'SegmentationTime' => [ 'shape' => '__doubleMin0', 'locationName' => 'segmentationTime', ], 'TimedMetadataPid' => [ 'shape' => '__integerMin32Max8182', 'locationName' => 'timedMetadataPid', ], 'TransportStreamId' => [ 'shape' => '__integerMin0Max65535', 'locationName' => 'transportStreamId', ], 'VideoPid' => [ 'shape' => '__integerMin32Max8182', 'locationName' => 'videoPid', ], ], ], 'M3u8NielsenId3' => [ 'type' => 'string', 'enum' => [ 'INSERT', 'NONE', ], ], 'M3u8PcrControl' => [ 'type' => 'string', 'enum' => [ 'PCR_EVERY_PES_PACKET', 'CONFIGURED_PCR_PERIOD', ], ], 'M3u8Scte35Source' => [ 'type' => 'string', 'enum' => [ 'PASSTHROUGH', 'NONE', ], ], 'M3u8Settings' => [ 'type' => 'structure', 'members' => [ 'AudioFramesPerPes' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'audioFramesPerPes', ], 'AudioPids' => [ 'shape' => '__listOf__integerMin32Max8182', 'locationName' => 'audioPids', ], 'NielsenId3' => [ 'shape' => 'M3u8NielsenId3', 'locationName' => 'nielsenId3', ], 'PatInterval' => [ 'shape' => '__integerMin0Max1000', 'locationName' => 'patInterval', ], 'PcrControl' => [ 'shape' => 'M3u8PcrControl', 'locationName' => 'pcrControl', ], 'PcrPid' => [ 'shape' => '__integerMin32Max8182', 'locationName' => 'pcrPid', ], 'PmtInterval' => [ 'shape' => '__integerMin0Max1000', 'locationName' => 'pmtInterval', ], 'PmtPid' => [ 'shape' => '__integerMin32Max8182', 'locationName' => 'pmtPid', ], 'PrivateMetadataPid' => [ 'shape' => '__integerMin32Max8182', 'locationName' => 'privateMetadataPid', ], 'ProgramNumber' => [ 'shape' => '__integerMin0Max65535', 'locationName' => 'programNumber', ], 'Scte35Pid' => [ 'shape' => '__integerMin32Max8182', 'locationName' => 'scte35Pid', ], 'Scte35Source' => [ 'shape' => 'M3u8Scte35Source', 'locationName' => 'scte35Source', ], 'TimedMetadata' => [ 'shape' => 'TimedMetadata', 'locationName' => 'timedMetadata', ], 'TimedMetadataPid' => [ 'shape' => '__integerMin32Max8182', 'locationName' => 'timedMetadataPid', ], 'TransportStreamId' => [ 'shape' => '__integerMin0Max65535', 'locationName' => 'transportStreamId', ], 'VideoPid' => [ 'shape' => '__integerMin32Max8182', 'locationName' => 'videoPid', ], ], ], 'MotionImageInserter' => [ 'type' => 'structure', 'members' => [ 'Framerate' => [ 'shape' => 'MotionImageInsertionFramerate', 'locationName' => 'framerate', ], 'Input' => [ 'shape' => '__stringMin14Max1285PatternS3Mov09Png', 'locationName' => 'input', ], 'InsertionMode' => [ 'shape' => 'MotionImageInsertionMode', 'locationName' => 'insertionMode', ], 'Offset' => [ 'shape' => 'MotionImageInsertionOffset', 'locationName' => 'offset', ], 'Playback' => [ 'shape' => 'MotionImagePlayback', 'locationName' => 'playback', ], 'StartTime' => [ 'shape' => '__stringMin11Max11Pattern01D20305D205D', 'locationName' => 'startTime', ], ], ], 'MotionImageInsertionFramerate' => [ 'type' => 'structure', 'members' => [ 'FramerateDenominator' => [ 'shape' => '__integerMin1Max17895697', 'locationName' => 'framerateDenominator', ], 'FramerateNumerator' => [ 'shape' => '__integerMin1Max2147483640', 'locationName' => 'framerateNumerator', ], ], ], 'MotionImageInsertionMode' => [ 'type' => 'string', 'enum' => [ 'MOV', 'PNG', ], ], 'MotionImageInsertionOffset' => [ 'type' => 'structure', 'members' => [ 'ImageX' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'imageX', ], 'ImageY' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'imageY', ], ], ], 'MotionImagePlayback' => [ 'type' => 'string', 'enum' => [ 'ONCE', 'REPEAT', ], ], 'MovClapAtom' => [ 'type' => 'string', 'enum' => [ 'INCLUDE', 'EXCLUDE', ], ], 'MovCslgAtom' => [ 'type' => 'string', 'enum' => [ 'INCLUDE', 'EXCLUDE', ], ], 'MovMpeg2FourCCControl' => [ 'type' => 'string', 'enum' => [ 'XDCAM', 'MPEG', ], ], 'MovPaddingControl' => [ 'type' => 'string', 'enum' => [ 'OMNEON', 'NONE', ], ], 'MovReference' => [ 'type' => 'string', 'enum' => [ 'SELF_CONTAINED', 'EXTERNAL', ], ], 'MovSettings' => [ 'type' => 'structure', 'members' => [ 'ClapAtom' => [ 'shape' => 'MovClapAtom', 'locationName' => 'clapAtom', ], 'CslgAtom' => [ 'shape' => 'MovCslgAtom', 'locationName' => 'cslgAtom', ], 'Mpeg2FourCCControl' => [ 'shape' => 'MovMpeg2FourCCControl', 'locationName' => 'mpeg2FourCCControl', ], 'PaddingControl' => [ 'shape' => 'MovPaddingControl', 'locationName' => 'paddingControl', ], 'Reference' => [ 'shape' => 'MovReference', 'locationName' => 'reference', ], ], ], 'Mp2Settings' => [ 'type' => 'structure', 'members' => [ 'Bitrate' => [ 'shape' => '__integerMin32000Max384000', 'locationName' => 'bitrate', ], 'Channels' => [ 'shape' => '__integerMin1Max2', 'locationName' => 'channels', ], 'SampleRate' => [ 'shape' => '__integerMin32000Max48000', 'locationName' => 'sampleRate', ], ], ], 'Mp4CslgAtom' => [ 'type' => 'string', 'enum' => [ 'INCLUDE', 'EXCLUDE', ], ], 'Mp4FreeSpaceBox' => [ 'type' => 'string', 'enum' => [ 'INCLUDE', 'EXCLUDE', ], ], 'Mp4MoovPlacement' => [ 'type' => 'string', 'enum' => [ 'PROGRESSIVE_DOWNLOAD', 'NORMAL', ], ], 'Mp4Settings' => [ 'type' => 'structure', 'members' => [ 'CslgAtom' => [ 'shape' => 'Mp4CslgAtom', 'locationName' => 'cslgAtom', ], 'FreeSpaceBox' => [ 'shape' => 'Mp4FreeSpaceBox', 'locationName' => 'freeSpaceBox', ], 'MoovPlacement' => [ 'shape' => 'Mp4MoovPlacement', 'locationName' => 'moovPlacement', ], 'Mp4MajorBrand' => [ 'shape' => '__string', 'locationName' => 'mp4MajorBrand', ], ], ], 'Mpeg2AdaptiveQuantization' => [ 'type' => 'string', 'enum' => [ 'OFF', 'LOW', 'MEDIUM', 'HIGH', ], ], 'Mpeg2CodecLevel' => [ 'type' => 'string', 'enum' => [ 'AUTO', 'LOW', 'MAIN', 'HIGH1440', 'HIGH', ], ], 'Mpeg2CodecProfile' => [ 'type' => 'string', 'enum' => [ 'MAIN', 'PROFILE_422', ], ], 'Mpeg2DynamicSubGop' => [ 'type' => 'string', 'enum' => [ 'ADAPTIVE', 'STATIC', ], ], 'Mpeg2FramerateControl' => [ 'type' => 'string', 'enum' => [ 'INITIALIZE_FROM_SOURCE', 'SPECIFIED', ], ], 'Mpeg2FramerateConversionAlgorithm' => [ 'type' => 'string', 'enum' => [ 'DUPLICATE_DROP', 'INTERPOLATE', ], ], 'Mpeg2GopSizeUnits' => [ 'type' => 'string', 'enum' => [ 'FRAMES', 'SECONDS', ], ], 'Mpeg2InterlaceMode' => [ 'type' => 'string', 'enum' => [ 'PROGRESSIVE', 'TOP_FIELD', 'BOTTOM_FIELD', 'FOLLOW_TOP_FIELD', 'FOLLOW_BOTTOM_FIELD', ], ], 'Mpeg2IntraDcPrecision' => [ 'type' => 'string', 'enum' => [ 'AUTO', 'INTRA_DC_PRECISION_8', 'INTRA_DC_PRECISION_9', 'INTRA_DC_PRECISION_10', 'INTRA_DC_PRECISION_11', ], ], 'Mpeg2ParControl' => [ 'type' => 'string', 'enum' => [ 'INITIALIZE_FROM_SOURCE', 'SPECIFIED', ], ], 'Mpeg2QualityTuningLevel' => [ 'type' => 'string', 'enum' => [ 'SINGLE_PASS', 'MULTI_PASS', ], ], 'Mpeg2RateControlMode' => [ 'type' => 'string', 'enum' => [ 'VBR', 'CBR', ], ], 'Mpeg2SceneChangeDetect' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'Mpeg2Settings' => [ 'type' => 'structure', 'members' => [ 'AdaptiveQuantization' => [ 'shape' => 'Mpeg2AdaptiveQuantization', 'locationName' => 'adaptiveQuantization', ], 'Bitrate' => [ 'shape' => '__integerMin1000Max288000000', 'locationName' => 'bitrate', ], 'CodecLevel' => [ 'shape' => 'Mpeg2CodecLevel', 'locationName' => 'codecLevel', ], 'CodecProfile' => [ 'shape' => 'Mpeg2CodecProfile', 'locationName' => 'codecProfile', ], 'DynamicSubGop' => [ 'shape' => 'Mpeg2DynamicSubGop', 'locationName' => 'dynamicSubGop', ], 'FramerateControl' => [ 'shape' => 'Mpeg2FramerateControl', 'locationName' => 'framerateControl', ], 'FramerateConversionAlgorithm' => [ 'shape' => 'Mpeg2FramerateConversionAlgorithm', 'locationName' => 'framerateConversionAlgorithm', ], 'FramerateDenominator' => [ 'shape' => '__integerMin1Max1001', 'locationName' => 'framerateDenominator', ], 'FramerateNumerator' => [ 'shape' => '__integerMin24Max60000', 'locationName' => 'framerateNumerator', ], 'GopClosedCadence' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'gopClosedCadence', ], 'GopSize' => [ 'shape' => '__doubleMin0', 'locationName' => 'gopSize', ], 'GopSizeUnits' => [ 'shape' => 'Mpeg2GopSizeUnits', 'locationName' => 'gopSizeUnits', ], 'HrdBufferInitialFillPercentage' => [ 'shape' => '__integerMin0Max100', 'locationName' => 'hrdBufferInitialFillPercentage', ], 'HrdBufferSize' => [ 'shape' => '__integerMin0Max47185920', 'locationName' => 'hrdBufferSize', ], 'InterlaceMode' => [ 'shape' => 'Mpeg2InterlaceMode', 'locationName' => 'interlaceMode', ], 'IntraDcPrecision' => [ 'shape' => 'Mpeg2IntraDcPrecision', 'locationName' => 'intraDcPrecision', ], 'MaxBitrate' => [ 'shape' => '__integerMin1000Max300000000', 'locationName' => 'maxBitrate', ], 'MinIInterval' => [ 'shape' => '__integerMin0Max30', 'locationName' => 'minIInterval', ], 'NumberBFramesBetweenReferenceFrames' => [ 'shape' => '__integerMin0Max7', 'locationName' => 'numberBFramesBetweenReferenceFrames', ], 'ParControl' => [ 'shape' => 'Mpeg2ParControl', 'locationName' => 'parControl', ], 'ParDenominator' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'parDenominator', ], 'ParNumerator' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'parNumerator', ], 'QualityTuningLevel' => [ 'shape' => 'Mpeg2QualityTuningLevel', 'locationName' => 'qualityTuningLevel', ], 'RateControlMode' => [ 'shape' => 'Mpeg2RateControlMode', 'locationName' => 'rateControlMode', ], 'SceneChangeDetect' => [ 'shape' => 'Mpeg2SceneChangeDetect', 'locationName' => 'sceneChangeDetect', ], 'SlowPal' => [ 'shape' => 'Mpeg2SlowPal', 'locationName' => 'slowPal', ], 'Softness' => [ 'shape' => '__integerMin0Max128', 'locationName' => 'softness', ], 'SpatialAdaptiveQuantization' => [ 'shape' => 'Mpeg2SpatialAdaptiveQuantization', 'locationName' => 'spatialAdaptiveQuantization', ], 'Syntax' => [ 'shape' => 'Mpeg2Syntax', 'locationName' => 'syntax', ], 'Telecine' => [ 'shape' => 'Mpeg2Telecine', 'locationName' => 'telecine', ], 'TemporalAdaptiveQuantization' => [ 'shape' => 'Mpeg2TemporalAdaptiveQuantization', 'locationName' => 'temporalAdaptiveQuantization', ], ], ], 'Mpeg2SlowPal' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'Mpeg2SpatialAdaptiveQuantization' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'Mpeg2Syntax' => [ 'type' => 'string', 'enum' => [ 'DEFAULT', 'D_10', ], ], 'Mpeg2Telecine' => [ 'type' => 'string', 'enum' => [ 'NONE', 'SOFT', 'HARD', ], ], 'Mpeg2TemporalAdaptiveQuantization' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'MsSmoothAudioDeduplication' => [ 'type' => 'string', 'enum' => [ 'COMBINE_DUPLICATE_STREAMS', 'NONE', ], ], 'MsSmoothEncryptionSettings' => [ 'type' => 'structure', 'members' => [ 'SpekeKeyProvider' => [ 'shape' => 'SpekeKeyProvider', 'locationName' => 'spekeKeyProvider', ], ], ], 'MsSmoothGroupSettings' => [ 'type' => 'structure', 'members' => [ 'AudioDeduplication' => [ 'shape' => 'MsSmoothAudioDeduplication', 'locationName' => 'audioDeduplication', ], 'Destination' => [ 'shape' => '__stringPatternS3', 'locationName' => 'destination', ], 'DestinationSettings' => [ 'shape' => 'DestinationSettings', 'locationName' => 'destinationSettings', ], 'Encryption' => [ 'shape' => 'MsSmoothEncryptionSettings', 'locationName' => 'encryption', ], 'FragmentLength' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'fragmentLength', ], 'ManifestEncoding' => [ 'shape' => 'MsSmoothManifestEncoding', 'locationName' => 'manifestEncoding', ], ], ], 'MsSmoothManifestEncoding' => [ 'type' => 'string', 'enum' => [ 'UTF8', 'UTF16', ], ], 'NielsenConfiguration' => [ 'type' => 'structure', 'members' => [ 'BreakoutCode' => [ 'shape' => '__integerMin0Max9', 'locationName' => 'breakoutCode', ], 'DistributorId' => [ 'shape' => '__string', 'locationName' => 'distributorId', ], ], ], 'NoiseReducer' => [ 'type' => 'structure', 'members' => [ 'Filter' => [ 'shape' => 'NoiseReducerFilter', 'locationName' => 'filter', ], 'FilterSettings' => [ 'shape' => 'NoiseReducerFilterSettings', 'locationName' => 'filterSettings', ], 'SpatialFilterSettings' => [ 'shape' => 'NoiseReducerSpatialFilterSettings', 'locationName' => 'spatialFilterSettings', ], ], ], 'NoiseReducerFilter' => [ 'type' => 'string', 'enum' => [ 'BILATERAL', 'MEAN', 'GAUSSIAN', 'LANCZOS', 'SHARPEN', 'CONSERVE', 'SPATIAL', ], ], 'NoiseReducerFilterSettings' => [ 'type' => 'structure', 'members' => [ 'Strength' => [ 'shape' => '__integerMin0Max3', 'locationName' => 'strength', ], ], ], 'NoiseReducerSpatialFilterSettings' => [ 'type' => 'structure', 'members' => [ 'PostFilterSharpenStrength' => [ 'shape' => '__integerMin0Max3', 'locationName' => 'postFilterSharpenStrength', ], 'Speed' => [ 'shape' => '__integerMinNegative2Max3', 'locationName' => 'speed', ], 'Strength' => [ 'shape' => '__integerMin0Max16', 'locationName' => 'strength', ], ], ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 404, ], ], 'Order' => [ 'type' => 'string', 'enum' => [ 'ASCENDING', 'DESCENDING', ], ], 'Output' => [ 'type' => 'structure', 'members' => [ 'AudioDescriptions' => [ 'shape' => '__listOfAudioDescription', 'locationName' => 'audioDescriptions', ], 'CaptionDescriptions' => [ 'shape' => '__listOfCaptionDescription', 'locationName' => 'captionDescriptions', ], 'ContainerSettings' => [ 'shape' => 'ContainerSettings', 'locationName' => 'containerSettings', ], 'Extension' => [ 'shape' => '__string', 'locationName' => 'extension', ], 'NameModifier' => [ 'shape' => '__stringMin1', 'locationName' => 'nameModifier', ], 'OutputSettings' => [ 'shape' => 'OutputSettings', 'locationName' => 'outputSettings', ], 'Preset' => [ 'shape' => '__stringMin0', 'locationName' => 'preset', ], 'VideoDescription' => [ 'shape' => 'VideoDescription', 'locationName' => 'videoDescription', ], ], ], 'OutputChannelMapping' => [ 'type' => 'structure', 'members' => [ 'InputChannels' => [ 'shape' => '__listOf__integerMinNegative60Max6', 'locationName' => 'inputChannels', ], ], ], 'OutputDetail' => [ 'type' => 'structure', 'members' => [ 'DurationInMs' => [ 'shape' => '__integer', 'locationName' => 'durationInMs', ], 'VideoDetails' => [ 'shape' => 'VideoDetail', 'locationName' => 'videoDetails', ], ], ], 'OutputGroup' => [ 'type' => 'structure', 'members' => [ 'CustomName' => [ 'shape' => '__string', 'locationName' => 'customName', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'OutputGroupSettings' => [ 'shape' => 'OutputGroupSettings', 'locationName' => 'outputGroupSettings', ], 'Outputs' => [ 'shape' => '__listOfOutput', 'locationName' => 'outputs', ], ], ], 'OutputGroupDetail' => [ 'type' => 'structure', 'members' => [ 'OutputDetails' => [ 'shape' => '__listOfOutputDetail', 'locationName' => 'outputDetails', ], ], ], 'OutputGroupSettings' => [ 'type' => 'structure', 'members' => [ 'CmafGroupSettings' => [ 'shape' => 'CmafGroupSettings', 'locationName' => 'cmafGroupSettings', ], 'DashIsoGroupSettings' => [ 'shape' => 'DashIsoGroupSettings', 'locationName' => 'dashIsoGroupSettings', ], 'FileGroupSettings' => [ 'shape' => 'FileGroupSettings', 'locationName' => 'fileGroupSettings', ], 'HlsGroupSettings' => [ 'shape' => 'HlsGroupSettings', 'locationName' => 'hlsGroupSettings', ], 'MsSmoothGroupSettings' => [ 'shape' => 'MsSmoothGroupSettings', 'locationName' => 'msSmoothGroupSettings', ], 'Type' => [ 'shape' => 'OutputGroupType', 'locationName' => 'type', ], ], ], 'OutputGroupType' => [ 'type' => 'string', 'enum' => [ 'HLS_GROUP_SETTINGS', 'DASH_ISO_GROUP_SETTINGS', 'FILE_GROUP_SETTINGS', 'MS_SMOOTH_GROUP_SETTINGS', 'CMAF_GROUP_SETTINGS', ], ], 'OutputSdt' => [ 'type' => 'string', 'enum' => [ 'SDT_FOLLOW', 'SDT_FOLLOW_IF_PRESENT', 'SDT_MANUAL', 'SDT_NONE', ], ], 'OutputSettings' => [ 'type' => 'structure', 'members' => [ 'HlsSettings' => [ 'shape' => 'HlsSettings', 'locationName' => 'hlsSettings', ], ], ], 'Preset' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'Category' => [ 'shape' => '__string', 'locationName' => 'category', ], 'CreatedAt' => [ 'shape' => '__timestampUnix', 'locationName' => 'createdAt', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'LastUpdated' => [ 'shape' => '__timestampUnix', 'locationName' => 'lastUpdated', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'Settings' => [ 'shape' => 'PresetSettings', 'locationName' => 'settings', ], 'Type' => [ 'shape' => 'Type', 'locationName' => 'type', ], ], 'required' => [ 'Settings', 'Name', ], ], 'PresetListBy' => [ 'type' => 'string', 'enum' => [ 'NAME', 'CREATION_DATE', 'SYSTEM', ], ], 'PresetSettings' => [ 'type' => 'structure', 'members' => [ 'AudioDescriptions' => [ 'shape' => '__listOfAudioDescription', 'locationName' => 'audioDescriptions', ], 'CaptionDescriptions' => [ 'shape' => '__listOfCaptionDescriptionPreset', 'locationName' => 'captionDescriptions', ], 'ContainerSettings' => [ 'shape' => 'ContainerSettings', 'locationName' => 'containerSettings', ], 'VideoDescription' => [ 'shape' => 'VideoDescription', 'locationName' => 'videoDescription', ], ], ], 'PricingPlan' => [ 'type' => 'string', 'enum' => [ 'ON_DEMAND', 'RESERVED', ], ], 'ProresCodecProfile' => [ 'type' => 'string', 'enum' => [ 'APPLE_PRORES_422', 'APPLE_PRORES_422_HQ', 'APPLE_PRORES_422_LT', 'APPLE_PRORES_422_PROXY', ], ], 'ProresFramerateControl' => [ 'type' => 'string', 'enum' => [ 'INITIALIZE_FROM_SOURCE', 'SPECIFIED', ], ], 'ProresFramerateConversionAlgorithm' => [ 'type' => 'string', 'enum' => [ 'DUPLICATE_DROP', 'INTERPOLATE', ], ], 'ProresInterlaceMode' => [ 'type' => 'string', 'enum' => [ 'PROGRESSIVE', 'TOP_FIELD', 'BOTTOM_FIELD', 'FOLLOW_TOP_FIELD', 'FOLLOW_BOTTOM_FIELD', ], ], 'ProresParControl' => [ 'type' => 'string', 'enum' => [ 'INITIALIZE_FROM_SOURCE', 'SPECIFIED', ], ], 'ProresSettings' => [ 'type' => 'structure', 'members' => [ 'CodecProfile' => [ 'shape' => 'ProresCodecProfile', 'locationName' => 'codecProfile', ], 'FramerateControl' => [ 'shape' => 'ProresFramerateControl', 'locationName' => 'framerateControl', ], 'FramerateConversionAlgorithm' => [ 'shape' => 'ProresFramerateConversionAlgorithm', 'locationName' => 'framerateConversionAlgorithm', ], 'FramerateDenominator' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'framerateDenominator', ], 'FramerateNumerator' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'framerateNumerator', ], 'InterlaceMode' => [ 'shape' => 'ProresInterlaceMode', 'locationName' => 'interlaceMode', ], 'ParControl' => [ 'shape' => 'ProresParControl', 'locationName' => 'parControl', ], 'ParDenominator' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'parDenominator', ], 'ParNumerator' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'parNumerator', ], 'SlowPal' => [ 'shape' => 'ProresSlowPal', 'locationName' => 'slowPal', ], 'Telecine' => [ 'shape' => 'ProresTelecine', 'locationName' => 'telecine', ], ], ], 'ProresSlowPal' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'ProresTelecine' => [ 'type' => 'string', 'enum' => [ 'NONE', 'HARD', ], ], 'Queue' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'CreatedAt' => [ 'shape' => '__timestampUnix', 'locationName' => 'createdAt', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'LastUpdated' => [ 'shape' => '__timestampUnix', 'locationName' => 'lastUpdated', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'PricingPlan' => [ 'shape' => 'PricingPlan', 'locationName' => 'pricingPlan', ], 'ProgressingJobsCount' => [ 'shape' => '__integer', 'locationName' => 'progressingJobsCount', ], 'ReservationPlan' => [ 'shape' => 'ReservationPlan', 'locationName' => 'reservationPlan', ], 'Status' => [ 'shape' => 'QueueStatus', 'locationName' => 'status', ], 'SubmittedJobsCount' => [ 'shape' => '__integer', 'locationName' => 'submittedJobsCount', ], 'Type' => [ 'shape' => 'Type', 'locationName' => 'type', ], ], 'required' => [ 'Name', ], ], 'QueueListBy' => [ 'type' => 'string', 'enum' => [ 'NAME', 'CREATION_DATE', ], ], 'QueueStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'PAUSED', ], ], 'Rectangle' => [ 'type' => 'structure', 'members' => [ 'Height' => [ 'shape' => '__integerMin2Max2147483647', 'locationName' => 'height', ], 'Width' => [ 'shape' => '__integerMin2Max2147483647', 'locationName' => 'width', ], 'X' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'x', ], 'Y' => [ 'shape' => '__integerMin0Max2147483647', 'locationName' => 'y', ], ], ], 'RemixSettings' => [ 'type' => 'structure', 'members' => [ 'ChannelMapping' => [ 'shape' => 'ChannelMapping', 'locationName' => 'channelMapping', ], 'ChannelsIn' => [ 'shape' => '__integerMin1Max16', 'locationName' => 'channelsIn', ], 'ChannelsOut' => [ 'shape' => '__integerMin1Max8', 'locationName' => 'channelsOut', ], ], ], 'RenewalType' => [ 'type' => 'string', 'enum' => [ 'AUTO_RENEW', 'EXPIRE', ], ], 'ReservationPlan' => [ 'type' => 'structure', 'members' => [ 'Commitment' => [ 'shape' => 'Commitment', 'locationName' => 'commitment', ], 'ExpiresAt' => [ 'shape' => '__timestampUnix', 'locationName' => 'expiresAt', ], 'PurchasedAt' => [ 'shape' => '__timestampUnix', 'locationName' => 'purchasedAt', ], 'RenewalType' => [ 'shape' => 'RenewalType', 'locationName' => 'renewalType', ], 'ReservedSlots' => [ 'shape' => '__integer', 'locationName' => 'reservedSlots', ], 'Status' => [ 'shape' => 'ReservationPlanStatus', 'locationName' => 'status', ], ], ], 'ReservationPlanSettings' => [ 'type' => 'structure', 'members' => [ 'Commitment' => [ 'shape' => 'Commitment', 'locationName' => 'commitment', ], 'RenewalType' => [ 'shape' => 'RenewalType', 'locationName' => 'renewalType', ], 'ReservedSlots' => [ 'shape' => '__integer', 'locationName' => 'reservedSlots', ], ], 'required' => [ 'Commitment', 'ReservedSlots', 'RenewalType', ], ], 'ReservationPlanStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'EXPIRED', ], ], 'ResourceTags' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], ], 'RespondToAfd' => [ 'type' => 'string', 'enum' => [ 'NONE', 'RESPOND', 'PASSTHROUGH', ], ], 'S3DestinationSettings' => [ 'type' => 'structure', 'members' => [ 'Encryption' => [ 'shape' => 'S3EncryptionSettings', 'locationName' => 'encryption', ], ], ], 'S3EncryptionSettings' => [ 'type' => 'structure', 'members' => [ 'EncryptionType' => [ 'shape' => 'S3ServerSideEncryptionType', 'locationName' => 'encryptionType', ], 'KmsKeyArn' => [ 'shape' => '__stringPatternArnAwsUsGovKmsAZ26EastWestCentralNorthSouthEastWest1912D12KeyAFAF098AFAF094AFAF094AFAF094AFAF0912', 'locationName' => 'kmsKeyArn', ], ], ], 'S3ServerSideEncryptionType' => [ 'type' => 'string', 'enum' => [ 'SERVER_SIDE_ENCRYPTION_S3', 'SERVER_SIDE_ENCRYPTION_KMS', ], ], 'ScalingBehavior' => [ 'type' => 'string', 'enum' => [ 'DEFAULT', 'STRETCH_TO_OUTPUT', ], ], 'SccDestinationFramerate' => [ 'type' => 'string', 'enum' => [ 'FRAMERATE_23_97', 'FRAMERATE_24', 'FRAMERATE_29_97_DROPFRAME', 'FRAMERATE_29_97_NON_DROPFRAME', ], ], 'SccDestinationSettings' => [ 'type' => 'structure', 'members' => [ 'Framerate' => [ 'shape' => 'SccDestinationFramerate', 'locationName' => 'framerate', ], ], ], 'SpekeKeyProvider' => [ 'type' => 'structure', 'members' => [ 'CertificateArn' => [ 'shape' => '__stringPatternArnAwsUsGovAcm', 'locationName' => 'certificateArn', ], 'ResourceId' => [ 'shape' => '__string', 'locationName' => 'resourceId', ], 'SystemIds' => [ 'shape' => '__listOf__stringPattern09aFAF809aFAF409aFAF409aFAF409aFAF12', 'locationName' => 'systemIds', ], 'Url' => [ 'shape' => '__stringPatternHttps', 'locationName' => 'url', ], ], ], 'StaticKeyProvider' => [ 'type' => 'structure', 'members' => [ 'KeyFormat' => [ 'shape' => '__stringPatternIdentityAZaZ26AZaZ09163', 'locationName' => 'keyFormat', ], 'KeyFormatVersions' => [ 'shape' => '__stringPatternDD', 'locationName' => 'keyFormatVersions', ], 'StaticKeyValue' => [ 'shape' => '__stringPatternAZaZ0932', 'locationName' => 'staticKeyValue', ], 'Url' => [ 'shape' => '__string', 'locationName' => 'url', ], ], ], 'StatusUpdateInterval' => [ 'type' => 'string', 'enum' => [ 'SECONDS_10', 'SECONDS_12', 'SECONDS_15', 'SECONDS_20', 'SECONDS_30', 'SECONDS_60', 'SECONDS_120', 'SECONDS_180', 'SECONDS_240', 'SECONDS_300', 'SECONDS_360', 'SECONDS_420', 'SECONDS_480', 'SECONDS_540', 'SECONDS_600', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], 'required' => [ 'Arn', 'Tags', ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TeletextDestinationSettings' => [ 'type' => 'structure', 'members' => [ 'PageNumber' => [ 'shape' => '__stringMin3Max3Pattern1809aFAF09aEAE', 'locationName' => 'pageNumber', ], ], ], 'TeletextSourceSettings' => [ 'type' => 'structure', 'members' => [ 'PageNumber' => [ 'shape' => '__stringMin3Max3Pattern1809aFAF09aEAE', 'locationName' => 'pageNumber', ], ], ], 'TimecodeBurnin' => [ 'type' => 'structure', 'members' => [ 'FontSize' => [ 'shape' => '__integerMin10Max48', 'locationName' => 'fontSize', ], 'Position' => [ 'shape' => 'TimecodeBurninPosition', 'locationName' => 'position', ], 'Prefix' => [ 'shape' => '__stringPattern', 'locationName' => 'prefix', ], ], ], 'TimecodeBurninPosition' => [ 'type' => 'string', 'enum' => [ 'TOP_CENTER', 'TOP_LEFT', 'TOP_RIGHT', 'MIDDLE_LEFT', 'MIDDLE_CENTER', 'MIDDLE_RIGHT', 'BOTTOM_LEFT', 'BOTTOM_CENTER', 'BOTTOM_RIGHT', ], ], 'TimecodeConfig' => [ 'type' => 'structure', 'members' => [ 'Anchor' => [ 'shape' => '__stringPattern010920405090509092', 'locationName' => 'anchor', ], 'Source' => [ 'shape' => 'TimecodeSource', 'locationName' => 'source', ], 'Start' => [ 'shape' => '__stringPattern010920405090509092', 'locationName' => 'start', ], 'TimestampOffset' => [ 'shape' => '__stringPattern0940191020191209301', 'locationName' => 'timestampOffset', ], ], ], 'TimecodeSource' => [ 'type' => 'string', 'enum' => [ 'EMBEDDED', 'ZEROBASED', 'SPECIFIEDSTART', ], ], 'TimedMetadata' => [ 'type' => 'string', 'enum' => [ 'PASSTHROUGH', 'NONE', ], ], 'TimedMetadataInsertion' => [ 'type' => 'structure', 'members' => [ 'Id3Insertions' => [ 'shape' => '__listOfId3Insertion', 'locationName' => 'id3Insertions', ], ], ], 'Timing' => [ 'type' => 'structure', 'members' => [ 'FinishTime' => [ 'shape' => '__timestampUnix', 'locationName' => 'finishTime', ], 'StartTime' => [ 'shape' => '__timestampUnix', 'locationName' => 'startTime', ], 'SubmitTime' => [ 'shape' => '__timestampUnix', 'locationName' => 'submitTime', ], ], ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 429, ], ], 'TrackSourceSettings' => [ 'type' => 'structure', 'members' => [ 'TrackNumber' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'trackNumber', ], ], ], 'TtmlDestinationSettings' => [ 'type' => 'structure', 'members' => [ 'StylePassthrough' => [ 'shape' => 'TtmlStylePassthrough', 'locationName' => 'stylePassthrough', ], ], ], 'TtmlStylePassthrough' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'Type' => [ 'type' => 'string', 'enum' => [ 'SYSTEM', 'CUSTOM', ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', 'location' => 'uri', ], 'TagKeys' => [ 'shape' => '__listOf__string', 'locationName' => 'tagKeys', ], ], 'required' => [ 'Arn', ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateJobTemplateRequest' => [ 'type' => 'structure', 'members' => [ 'AccelerationSettings' => [ 'shape' => 'AccelerationSettings', 'locationName' => 'accelerationSettings', ], 'Category' => [ 'shape' => '__string', 'locationName' => 'category', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', 'location' => 'uri', ], 'Queue' => [ 'shape' => '__string', 'locationName' => 'queue', ], 'Settings' => [ 'shape' => 'JobTemplateSettings', 'locationName' => 'settings', ], 'StatusUpdateInterval' => [ 'shape' => 'StatusUpdateInterval', 'locationName' => 'statusUpdateInterval', ], ], 'required' => [ 'Name', ], ], 'UpdateJobTemplateResponse' => [ 'type' => 'structure', 'members' => [ 'JobTemplate' => [ 'shape' => 'JobTemplate', 'locationName' => 'jobTemplate', ], ], ], 'UpdatePresetRequest' => [ 'type' => 'structure', 'members' => [ 'Category' => [ 'shape' => '__string', 'locationName' => 'category', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', 'location' => 'uri', ], 'Settings' => [ 'shape' => 'PresetSettings', 'locationName' => 'settings', ], ], 'required' => [ 'Name', ], ], 'UpdatePresetResponse' => [ 'type' => 'structure', 'members' => [ 'Preset' => [ 'shape' => 'Preset', 'locationName' => 'preset', ], ], ], 'UpdateQueueRequest' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', 'location' => 'uri', ], 'ReservationPlanSettings' => [ 'shape' => 'ReservationPlanSettings', 'locationName' => 'reservationPlanSettings', ], 'Status' => [ 'shape' => 'QueueStatus', 'locationName' => 'status', ], ], 'required' => [ 'Name', ], ], 'UpdateQueueResponse' => [ 'type' => 'structure', 'members' => [ 'Queue' => [ 'shape' => 'Queue', 'locationName' => 'queue', ], ], ], 'VideoCodec' => [ 'type' => 'string', 'enum' => [ 'FRAME_CAPTURE', 'H_264', 'H_265', 'MPEG2', 'PRORES', ], ], 'VideoCodecSettings' => [ 'type' => 'structure', 'members' => [ 'Codec' => [ 'shape' => 'VideoCodec', 'locationName' => 'codec', ], 'FrameCaptureSettings' => [ 'shape' => 'FrameCaptureSettings', 'locationName' => 'frameCaptureSettings', ], 'H264Settings' => [ 'shape' => 'H264Settings', 'locationName' => 'h264Settings', ], 'H265Settings' => [ 'shape' => 'H265Settings', 'locationName' => 'h265Settings', ], 'Mpeg2Settings' => [ 'shape' => 'Mpeg2Settings', 'locationName' => 'mpeg2Settings', ], 'ProresSettings' => [ 'shape' => 'ProresSettings', 'locationName' => 'proresSettings', ], ], ], 'VideoDescription' => [ 'type' => 'structure', 'members' => [ 'AfdSignaling' => [ 'shape' => 'AfdSignaling', 'locationName' => 'afdSignaling', ], 'AntiAlias' => [ 'shape' => 'AntiAlias', 'locationName' => 'antiAlias', ], 'CodecSettings' => [ 'shape' => 'VideoCodecSettings', 'locationName' => 'codecSettings', ], 'ColorMetadata' => [ 'shape' => 'ColorMetadata', 'locationName' => 'colorMetadata', ], 'Crop' => [ 'shape' => 'Rectangle', 'locationName' => 'crop', ], 'DropFrameTimecode' => [ 'shape' => 'DropFrameTimecode', 'locationName' => 'dropFrameTimecode', ], 'FixedAfd' => [ 'shape' => '__integerMin0Max15', 'locationName' => 'fixedAfd', ], 'Height' => [ 'shape' => '__integerMin32Max2160', 'locationName' => 'height', ], 'Position' => [ 'shape' => 'Rectangle', 'locationName' => 'position', ], 'RespondToAfd' => [ 'shape' => 'RespondToAfd', 'locationName' => 'respondToAfd', ], 'ScalingBehavior' => [ 'shape' => 'ScalingBehavior', 'locationName' => 'scalingBehavior', ], 'Sharpness' => [ 'shape' => '__integerMin0Max100', 'locationName' => 'sharpness', ], 'TimecodeInsertion' => [ 'shape' => 'VideoTimecodeInsertion', 'locationName' => 'timecodeInsertion', ], 'VideoPreprocessors' => [ 'shape' => 'VideoPreprocessor', 'locationName' => 'videoPreprocessors', ], 'Width' => [ 'shape' => '__integerMin32Max4096', 'locationName' => 'width', ], ], ], 'VideoDetail' => [ 'type' => 'structure', 'members' => [ 'HeightInPx' => [ 'shape' => '__integer', 'locationName' => 'heightInPx', ], 'WidthInPx' => [ 'shape' => '__integer', 'locationName' => 'widthInPx', ], ], ], 'VideoPreprocessor' => [ 'type' => 'structure', 'members' => [ 'ColorCorrector' => [ 'shape' => 'ColorCorrector', 'locationName' => 'colorCorrector', ], 'Deinterlacer' => [ 'shape' => 'Deinterlacer', 'locationName' => 'deinterlacer', ], 'ImageInserter' => [ 'shape' => 'ImageInserter', 'locationName' => 'imageInserter', ], 'NoiseReducer' => [ 'shape' => 'NoiseReducer', 'locationName' => 'noiseReducer', ], 'TimecodeBurnin' => [ 'shape' => 'TimecodeBurnin', 'locationName' => 'timecodeBurnin', ], ], ], 'VideoSelector' => [ 'type' => 'structure', 'members' => [ 'ColorSpace' => [ 'shape' => 'ColorSpace', 'locationName' => 'colorSpace', ], 'ColorSpaceUsage' => [ 'shape' => 'ColorSpaceUsage', 'locationName' => 'colorSpaceUsage', ], 'Hdr10Metadata' => [ 'shape' => 'Hdr10Metadata', 'locationName' => 'hdr10Metadata', ], 'Pid' => [ 'shape' => '__integerMin1Max2147483647', 'locationName' => 'pid', ], 'ProgramNumber' => [ 'shape' => '__integerMinNegative2147483648Max2147483647', 'locationName' => 'programNumber', ], 'Rotate' => [ 'shape' => 'InputRotate', 'locationName' => 'rotate', ], ], ], 'VideoTimecodeInsertion' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'PIC_TIMING_SEI', ], ], 'WavFormat' => [ 'type' => 'string', 'enum' => [ 'RIFF', 'RF64', ], ], 'WavSettings' => [ 'type' => 'structure', 'members' => [ 'BitDepth' => [ 'shape' => '__integerMin16Max24', 'locationName' => 'bitDepth', ], 'Channels' => [ 'shape' => '__integerMin1Max8', 'locationName' => 'channels', ], 'Format' => [ 'shape' => 'WavFormat', 'locationName' => 'format', ], 'SampleRate' => [ 'shape' => '__integerMin8000Max192000', 'locationName' => 'sampleRate', ], ], ], '__boolean' => [ 'type' => 'boolean', ], '__double' => [ 'type' => 'double', ], '__doubleMin0' => [ 'type' => 'double', ], '__doubleMin0Max2147483647' => [ 'type' => 'double', ], '__doubleMinNegative59Max0' => [ 'type' => 'double', ], '__doubleMinNegative60Max3' => [ 'type' => 'double', ], '__doubleMinNegative60MaxNegative1' => [ 'type' => 'double', ], '__integer' => [ 'type' => 'integer', ], '__integerMin0Max10' => [ 'type' => 'integer', 'min' => 0, 'max' => 10, ], '__integerMin0Max100' => [ 'type' => 'integer', 'min' => 0, 'max' => 100, ], '__integerMin0Max1000' => [ 'type' => 'integer', 'min' => 0, 'max' => 1000, ], '__integerMin0Max10000' => [ 'type' => 'integer', 'min' => 0, 'max' => 10000, ], '__integerMin0Max1152000000' => [ 'type' => 'integer', 'min' => 0, 'max' => 1152000000, ], '__integerMin0Max128' => [ 'type' => 'integer', 'min' => 0, 'max' => 128, ], '__integerMin0Max1466400000' => [ 'type' => 'integer', 'min' => 0, 'max' => 1466400000, ], '__integerMin0Max15' => [ 'type' => 'integer', 'min' => 0, 'max' => 15, ], '__integerMin0Max16' => [ 'type' => 'integer', 'min' => 0, 'max' => 16, ], '__integerMin0Max2147483647' => [ 'type' => 'integer', 'min' => 0, 'max' => 2147483647, ], '__integerMin0Max255' => [ 'type' => 'integer', 'min' => 0, 'max' => 255, ], '__integerMin0Max3' => [ 'type' => 'integer', 'min' => 0, 'max' => 3, ], '__integerMin0Max30' => [ 'type' => 'integer', 'min' => 0, 'max' => 30, ], '__integerMin0Max30000' => [ 'type' => 'integer', 'min' => 0, 'max' => 30000, ], '__integerMin0Max3600' => [ 'type' => 'integer', 'min' => 0, 'max' => 3600, ], '__integerMin0Max47185920' => [ 'type' => 'integer', 'min' => 0, 'max' => 47185920, ], '__integerMin0Max500' => [ 'type' => 'integer', 'min' => 0, 'max' => 500, ], '__integerMin0Max50000' => [ 'type' => 'integer', 'min' => 0, 'max' => 50000, ], '__integerMin0Max65535' => [ 'type' => 'integer', 'min' => 0, 'max' => 65535, ], '__integerMin0Max7' => [ 'type' => 'integer', 'min' => 0, 'max' => 7, ], '__integerMin0Max8' => [ 'type' => 'integer', 'min' => 0, 'max' => 8, ], '__integerMin0Max9' => [ 'type' => 'integer', 'min' => 0, 'max' => 9, ], '__integerMin0Max96' => [ 'type' => 'integer', 'min' => 0, 'max' => 96, ], '__integerMin0Max99' => [ 'type' => 'integer', 'min' => 0, 'max' => 99, ], '__integerMin1000Max1152000000' => [ 'type' => 'integer', 'min' => 1000, 'max' => 1152000000, ], '__integerMin1000Max1466400000' => [ 'type' => 'integer', 'min' => 1000, 'max' => 1466400000, ], '__integerMin1000Max288000000' => [ 'type' => 'integer', 'min' => 1000, 'max' => 288000000, ], '__integerMin1000Max30000' => [ 'type' => 'integer', 'min' => 1000, 'max' => 30000, ], '__integerMin1000Max300000000' => [ 'type' => 'integer', 'min' => 1000, 'max' => 300000000, ], '__integerMin10Max48' => [ 'type' => 'integer', 'min' => 10, 'max' => 48, ], '__integerMin16Max24' => [ 'type' => 'integer', 'min' => 16, 'max' => 24, ], '__integerMin1Max1' => [ 'type' => 'integer', 'min' => 1, 'max' => 1, ], '__integerMin1Max10' => [ 'type' => 'integer', 'min' => 1, 'max' => 10, ], '__integerMin1Max100' => [ 'type' => 'integer', 'min' => 1, 'max' => 100, ], '__integerMin1Max10000000' => [ 'type' => 'integer', 'min' => 1, 'max' => 10000000, ], '__integerMin1Max1001' => [ 'type' => 'integer', 'min' => 1, 'max' => 1001, ], '__integerMin1Max16' => [ 'type' => 'integer', 'min' => 1, 'max' => 16, ], '__integerMin1Max17895697' => [ 'type' => 'integer', 'min' => 1, 'max' => 17895697, ], '__integerMin1Max2' => [ 'type' => 'integer', 'min' => 1, 'max' => 2, ], '__integerMin1Max20' => [ 'type' => 'integer', 'min' => 1, 'max' => 20, ], '__integerMin1Max2147483640' => [ 'type' => 'integer', 'min' => 1, 'max' => 2147483640, ], '__integerMin1Max2147483647' => [ 'type' => 'integer', 'min' => 1, 'max' => 2147483647, ], '__integerMin1Max31' => [ 'type' => 'integer', 'min' => 1, 'max' => 31, ], '__integerMin1Max32' => [ 'type' => 'integer', 'min' => 1, 'max' => 32, ], '__integerMin1Max4' => [ 'type' => 'integer', 'min' => 1, 'max' => 4, ], '__integerMin1Max6' => [ 'type' => 'integer', 'min' => 1, 'max' => 6, ], '__integerMin1Max8' => [ 'type' => 'integer', 'min' => 1, 'max' => 8, ], '__integerMin24Max60000' => [ 'type' => 'integer', 'min' => 24, 'max' => 60000, ], '__integerMin25Max10000' => [ 'type' => 'integer', 'min' => 25, 'max' => 10000, ], '__integerMin25Max2000' => [ 'type' => 'integer', 'min' => 25, 'max' => 2000, ], '__integerMin2Max2147483647' => [ 'type' => 'integer', 'min' => 2, 'max' => 2147483647, ], '__integerMin32000Max384000' => [ 'type' => 'integer', 'min' => 32000, 'max' => 384000, ], '__integerMin32000Max48000' => [ 'type' => 'integer', 'min' => 32000, 'max' => 48000, ], '__integerMin32Max2160' => [ 'type' => 'integer', 'min' => 32, 'max' => 2160, ], '__integerMin32Max4096' => [ 'type' => 'integer', 'min' => 32, 'max' => 4096, ], '__integerMin32Max8182' => [ 'type' => 'integer', 'min' => 32, 'max' => 8182, ], '__integerMin48000Max48000' => [ 'type' => 'integer', 'min' => 48000, 'max' => 48000, ], '__integerMin6000Max1024000' => [ 'type' => 'integer', 'min' => 6000, 'max' => 1024000, ], '__integerMin64000Max640000' => [ 'type' => 'integer', 'min' => 64000, 'max' => 640000, ], '__integerMin8000Max192000' => [ 'type' => 'integer', 'min' => 8000, 'max' => 192000, ], '__integerMin8000Max96000' => [ 'type' => 'integer', 'min' => 8000, 'max' => 96000, ], '__integerMin96Max600' => [ 'type' => 'integer', 'min' => 96, 'max' => 600, ], '__integerMinNegative1000Max1000' => [ 'type' => 'integer', 'min' => -1000, 'max' => 1000, ], '__integerMinNegative180Max180' => [ 'type' => 'integer', 'min' => -180, 'max' => 180, ], '__integerMinNegative2147483648Max2147483647' => [ 'type' => 'integer', 'min' => -2147483648, 'max' => 2147483647, ], '__integerMinNegative2Max3' => [ 'type' => 'integer', 'min' => -2, 'max' => 3, ], '__integerMinNegative5Max5' => [ 'type' => 'integer', 'min' => -5, 'max' => 5, ], '__integerMinNegative60Max6' => [ 'type' => 'integer', 'min' => -60, 'max' => 6, ], '__integerMinNegative70Max0' => [ 'type' => 'integer', 'min' => -70, 'max' => 0, ], '__listOfAudioDescription' => [ 'type' => 'list', 'member' => [ 'shape' => 'AudioDescription', ], ], '__listOfCaptionDescription' => [ 'type' => 'list', 'member' => [ 'shape' => 'CaptionDescription', ], ], '__listOfCaptionDescriptionPreset' => [ 'type' => 'list', 'member' => [ 'shape' => 'CaptionDescriptionPreset', ], ], '__listOfEndpoint' => [ 'type' => 'list', 'member' => [ 'shape' => 'Endpoint', ], ], '__listOfHlsAdMarkers' => [ 'type' => 'list', 'member' => [ 'shape' => 'HlsAdMarkers', ], ], '__listOfHlsCaptionLanguageMapping' => [ 'type' => 'list', 'member' => [ 'shape' => 'HlsCaptionLanguageMapping', ], ], '__listOfId3Insertion' => [ 'type' => 'list', 'member' => [ 'shape' => 'Id3Insertion', ], ], '__listOfInput' => [ 'type' => 'list', 'member' => [ 'shape' => 'Input', ], ], '__listOfInputClipping' => [ 'type' => 'list', 'member' => [ 'shape' => 'InputClipping', ], ], '__listOfInputTemplate' => [ 'type' => 'list', 'member' => [ 'shape' => 'InputTemplate', ], ], '__listOfInsertableImage' => [ 'type' => 'list', 'member' => [ 'shape' => 'InsertableImage', ], ], '__listOfJob' => [ 'type' => 'list', 'member' => [ 'shape' => 'Job', ], ], '__listOfJobTemplate' => [ 'type' => 'list', 'member' => [ 'shape' => 'JobTemplate', ], ], '__listOfOutput' => [ 'type' => 'list', 'member' => [ 'shape' => 'Output', ], ], '__listOfOutputChannelMapping' => [ 'type' => 'list', 'member' => [ 'shape' => 'OutputChannelMapping', ], ], '__listOfOutputDetail' => [ 'type' => 'list', 'member' => [ 'shape' => 'OutputDetail', ], ], '__listOfOutputGroup' => [ 'type' => 'list', 'member' => [ 'shape' => 'OutputGroup', ], ], '__listOfOutputGroupDetail' => [ 'type' => 'list', 'member' => [ 'shape' => 'OutputGroupDetail', ], ], '__listOfPreset' => [ 'type' => 'list', 'member' => [ 'shape' => 'Preset', ], ], '__listOfQueue' => [ 'type' => 'list', 'member' => [ 'shape' => 'Queue', ], ], '__listOf__integerMin1Max2147483647' => [ 'type' => 'list', 'member' => [ 'shape' => '__integerMin1Max2147483647', ], ], '__listOf__integerMin32Max8182' => [ 'type' => 'list', 'member' => [ 'shape' => '__integerMin32Max8182', ], ], '__listOf__integerMinNegative60Max6' => [ 'type' => 'list', 'member' => [ 'shape' => '__integerMinNegative60Max6', ], ], '__listOf__string' => [ 'type' => 'list', 'member' => [ 'shape' => '__string', ], ], '__listOf__stringMin1' => [ 'type' => 'list', 'member' => [ 'shape' => '__stringMin1', ], ], '__listOf__stringPattern09aFAF809aFAF409aFAF409aFAF409aFAF12' => [ 'type' => 'list', 'member' => [ 'shape' => '__stringPattern09aFAF809aFAF409aFAF409aFAF409aFAF12', ], ], '__listOf__stringPatternS3ASSETMAPXml' => [ 'type' => 'list', 'member' => [ 'shape' => '__stringPatternS3ASSETMAPXml', ], ], '__long' => [ 'type' => 'long', ], '__mapOfAudioSelector' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'AudioSelector', ], ], '__mapOfAudioSelectorGroup' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'AudioSelectorGroup', ], ], '__mapOfCaptionSelector' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'CaptionSelector', ], ], '__mapOf__string' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => '__string', ], ], '__string' => [ 'type' => 'string', ], '__stringMin0' => [ 'type' => 'string', 'min' => 0, ], '__stringMin1' => [ 'type' => 'string', 'min' => 1, ], '__stringMin11Max11Pattern01D20305D205D' => [ 'type' => 'string', 'min' => 11, 'max' => 11, 'pattern' => '^((([0-1]\\d)|(2[0-3]))(:[0-5]\\d){2}([:;][0-5]\\d))$', ], '__stringMin14Max1285PatternS3Mov09Png' => [ 'type' => 'string', 'min' => 14, 'max' => 1285, 'pattern' => '^(s3:\\/\\/)(.*)(\\.mov|[0-9]+\\.png)$', ], '__stringMin14PatternS3BmpBMPPngPNG' => [ 'type' => 'string', 'min' => 14, 'pattern' => '^(s3:\\/\\/)(.*?)\\.(bmp|BMP|png|PNG)$', ], '__stringMin14PatternS3BmpBMPPngPNGTgaTGA' => [ 'type' => 'string', 'min' => 14, 'pattern' => '^(s3:\\/\\/)(.*?)\\.(bmp|BMP|png|PNG|tga|TGA)$', ], '__stringMin14PatternS3SccSCCTtmlTTMLDfxpDFXPStlSTLSrtSRTSmiSMI' => [ 'type' => 'string', 'min' => 14, 'pattern' => '^(s3:\\/\\/)(.*?)\\.(scc|SCC|ttml|TTML|dfxp|DFXP|stl|STL|srt|SRT|smi|SMI)$', ], '__stringMin16Max24PatternAZaZ0922AZaZ0916' => [ 'type' => 'string', 'min' => 16, 'max' => 24, 'pattern' => '^[A-Za-z0-9+\\/]{22}==$|^[A-Za-z0-9+\\/]{16}$', ], '__stringMin1Max256' => [ 'type' => 'string', 'min' => 1, 'max' => 256, ], '__stringMin24Max512PatternAZaZ0902' => [ 'type' => 'string', 'min' => 24, 'max' => 512, 'pattern' => '^[A-Za-z0-9+\\/]+={0,2}$', ], '__stringMin32Max32Pattern09aFAF32' => [ 'type' => 'string', 'min' => 32, 'max' => 32, 'pattern' => '^[0-9a-fA-F]{32}$', ], '__stringMin3Max3Pattern1809aFAF09aEAE' => [ 'type' => 'string', 'min' => 3, 'max' => 3, 'pattern' => '^[1-8][0-9a-fA-F][0-9a-eA-E]$', ], '__stringMin3Max3PatternAZaZ3' => [ 'type' => 'string', 'min' => 3, 'max' => 3, 'pattern' => '^[A-Za-z]{3}$', ], '__stringMin9Max19PatternAZ26EastWestCentralNorthSouthEastWest1912' => [ 'type' => 'string', 'min' => 9, 'max' => 19, 'pattern' => '^[a-z-]{2,6}-(east|west|central|((north|south)(east|west)?))-[1-9]{1,2}$', ], '__stringPattern' => [ 'type' => 'string', 'pattern' => '^[ -~]+$', ], '__stringPattern010920405090509092' => [ 'type' => 'string', 'pattern' => '^([01][0-9]|2[0-4]):[0-5][0-9]:[0-5][0-9][:;][0-9]{2}$', ], '__stringPattern01D20305D205D' => [ 'type' => 'string', 'pattern' => '^((([0-1]\\d)|(2[0-3]))(:[0-5]\\d){2}([:;][0-5]\\d))$', ], '__stringPattern0940191020191209301' => [ 'type' => 'string', 'pattern' => '^([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$', ], '__stringPattern09aFAF809aFAF409aFAF409aFAF409aFAF12' => [ '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}$', ], '__stringPatternAZaZ0902' => [ 'type' => 'string', 'pattern' => '^[A-Za-z0-9+\\/]+={0,2}$', ], '__stringPatternAZaZ0932' => [ 'type' => 'string', 'pattern' => '^[A-Za-z0-9]{32}$', ], '__stringPatternArnAwsUsGovAcm' => [ 'type' => 'string', 'pattern' => '^arn:aws(-us-gov)?:acm:', ], '__stringPatternArnAwsUsGovKmsAZ26EastWestCentralNorthSouthEastWest1912D12KeyAFAF098AFAF094AFAF094AFAF094AFAF0912' => [ 'type' => 'string', 'pattern' => '^arn:aws(-us-gov)?:kms:[a-z-]{2,6}-(east|west|central|((north|south)(east|west)?))-[1-9]{1,2}:\\d{12}:key/[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}$', ], '__stringPatternDD' => [ 'type' => 'string', 'pattern' => '^(\\d+(\\/\\d+)*)$', ], '__stringPatternHttps' => [ 'type' => 'string', 'pattern' => '^https:\\/\\/', ], '__stringPatternIdentityAZaZ26AZaZ09163' => [ 'type' => 'string', 'pattern' => '^(identity|[A-Za-z]{2,6}(\\.[A-Za-z0-9-]{1,63})+)$', ], '__stringPatternS3' => [ 'type' => 'string', 'pattern' => '^s3:\\/\\/', ], '__stringPatternS3ASSETMAPXml' => [ 'type' => 'string', 'pattern' => '^s3:\\/\\/.*\\/(ASSETMAP.xml)?$', ], '__stringPatternS3MM2VVMMPPEEGGAAVVIIMMPP4FFLLVVMMPPTTMMPPGGMM4VVTTRRPPFF4VVMM2TTSSTTSS264HH264MMKKVVMMOOVVMMTTSSMM2TTWWMMVVAASSFFVVOOBB3GGPP3GGPPPPMMXXFFDDIIVVXXXXVVIIDDRRAAWWDDVVGGXXFFMM1VV3GG2VVMMFFMM3UU8LLCCHHGGXXFFMMPPEEGG2MMXXFFMMPPEEGG2MMXXFFHHDDWWAAVVYY4MMAAAACCAAIIFFFFMMPP2AACC3EECC3DDTTSSEE' => [ 'type' => 'string', 'pattern' => '^(s3:\\/\\/)([^\\/]+\\/)+([^\\/\\.]+|(([^\\/]*)\\.([mM]2[vV]|[mM][pP][eE][gG]|[aA][vV][iI]|[mM][pP]4|[fF][lL][vV]|[mM][pP][tT]|[mM][pP][gG]|[mM]4[vV]|[tT][rR][pP]|[fF]4[vV]|[mM]2[tT][sS]|[tT][sS]|264|[hH]264|[mM][kK][vV]|[mM][oO][vV]|[mM][tT][sS]|[mM]2[tT]|[wW][mM][vV]|[aA][sS][fF]|[vV][oO][bB]|3[gG][pP]|3[gG][pP][pP]|[mM][xX][fF]|[dD][iI][vV][xX]|[xX][vV][iI][dD]|[rR][aA][wW]|[dD][vV]|[gG][xX][fF]|[mM]1[vV]|3[gG]2|[vV][mM][fF]|[mM]3[uU]8|[lL][cC][hH]|[gG][xX][fF]_[mM][pP][eE][gG]2|[mM][xX][fF]_[mM][pP][eE][gG]2|[mM][xX][fF][hH][dD]|[wW][aA][vV]|[yY]4[mM]|[aA][aA][cC]|[aA][iI][fF][fF]|[mM][pP]2|[aA][cC]3|[eE][cC]3|[dD][tT][sS][eE])))$', ], '__stringPatternS3MM2VVMMPPEEGGAAVVIIMMPP4FFLLVVMMPPTTMMPPGGMM4VVTTRRPPFF4VVMM2TTSSTTSS264HH264MMKKVVMMOOVVMMTTSSMM2TTWWMMVVAASSFFVVOOBB3GGPP3GGPPPPMMXXFFDDIIVVXXXXVVIIDDRRAAWWDDVVGGXXFFMM1VV3GG2VVMMFFMM3UU8LLCCHHGGXXFFMMPPEEGG2MMXXFFMMPPEEGG2MMXXFFHHDDWWAAVVYY4MMXXMMLL' => [ 'type' => 'string', 'pattern' => '^(s3:\\/\\/)([^\\/]+\\/)+([^\\/\\.]+|(([^\\/]*)\\.([mM]2[vV]|[mM][pP][eE][gG]|[aA][vV][iI]|[mM][pP]4|[fF][lL][vV]|[mM][pP][tT]|[mM][pP][gG]|[mM]4[vV]|[tT][rR][pP]|[fF]4[vV]|[mM]2[tT][sS]|[tT][sS]|264|[hH]264|[mM][kK][vV]|[mM][oO][vV]|[mM][tT][sS]|[mM]2[tT]|[wW][mM][vV]|[aA][sS][fF]|[vV][oO][bB]|3[gG][pP]|3[gG][pP][pP]|[mM][xX][fF]|[dD][iI][vV][xX]|[xX][vV][iI][dD]|[rR][aA][wW]|[dD][vV]|[gG][xX][fF]|[mM]1[vV]|3[gG]2|[vV][mM][fF]|[mM]3[uU]8|[lL][cC][hH]|[gG][xX][fF]_[mM][pP][eE][gG]2|[mM][xX][fF]_[mM][pP][eE][gG]2|[mM][xX][fF][hH][dD]|[wW][aA][vV]|[yY]4[mM]|[xX][mM][lL])))$', ], '__stringPatternSNManifestConfirmConditionNotificationNS' => [ 'type' => 'string', 'pattern' => '^\\s*<(.|\\n)*ManifestConfirmConditionNotification(.|\\n)*>\\s*$', ], '__stringPatternSNSignalProcessingNotificationNS' => [ 'type' => 'string', 'pattern' => '^\\s*<(.|\\n)*SignalProcessingNotification(.|\\n)*>\\s*$', ], '__stringPatternWS' => [ 'type' => 'string', 'pattern' => '^[\\w\\s]*$', ], '__timestampIso8601' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], '__timestampUnix' => [ 'type' => 'timestamp', 'timestampFormat' => 'unixTimestamp', ], ],]; diff --git a/lib/aws/Aws/data/mediaconvert/2017-08-29/paginators-1.json.php b/lib/aws/Aws/data/mediaconvert/2017-08-29/paginators-1.json.php new file mode 100644 index 0000000..92be0a4 --- /dev/null +++ b/lib/aws/Aws/data/mediaconvert/2017-08-29/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mediaconvert/2017-08-29/paginators-1.json +return [ 'pagination' => [ 'DescribeEndpoints' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', 'result_key' => 'Endpoints', ], 'ListJobs' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', 'result_key' => 'Jobs', ], 'ListPresets' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', 'result_key' => 'Presets', ], 'ListJobTemplates' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', 'result_key' => 'JobTemplates', ], 'ListQueues' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', 'result_key' => 'Queues', ], ],]; diff --git a/lib/aws/Aws/data/medialive/2017-10-14/api-2.json.php b/lib/aws/Aws/data/medialive/2017-10-14/api-2.json.php new file mode 100644 index 0000000..a1dce6a --- /dev/null +++ b/lib/aws/Aws/data/medialive/2017-10-14/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/medialive/2017-10-14/api-2.json +return [ 'metadata' => [ 'apiVersion' => '2017-10-14', 'endpointPrefix' => 'medialive', 'signingName' => 'medialive', 'serviceFullName' => 'AWS Elemental MediaLive', 'serviceId' => 'MediaLive', 'protocol' => 'rest-json', 'jsonVersion' => '1.1', 'uid' => 'medialive-2017-10-14', 'signatureVersion' => 'v4', 'serviceAbbreviation' => 'MediaLive', ], 'operations' => [ 'BatchUpdateSchedule' => [ 'name' => 'BatchUpdateSchedule', 'http' => [ 'method' => 'PUT', 'requestUri' => '/prod/channels/{channelId}/schedule', 'responseCode' => 200, ], 'input' => [ 'shape' => 'BatchUpdateScheduleRequest', ], 'output' => [ 'shape' => 'BatchUpdateScheduleResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnprocessableEntityException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateChannel' => [ 'name' => 'CreateChannel', 'http' => [ 'method' => 'POST', 'requestUri' => '/prod/channels', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateChannelRequest', ], 'output' => [ 'shape' => 'CreateChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnprocessableEntityException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'CreateInput' => [ 'name' => 'CreateInput', 'http' => [ 'method' => 'POST', 'requestUri' => '/prod/inputs', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateInputRequest', ], 'output' => [ 'shape' => 'CreateInputResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateInputSecurityGroup' => [ 'name' => 'CreateInputSecurityGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/prod/inputSecurityGroups', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateInputSecurityGroupRequest', ], 'output' => [ 'shape' => 'CreateInputSecurityGroupResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateTags' => [ 'name' => 'CreateTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/prod/tags/{resource-arn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'CreateTagsRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'DeleteChannel' => [ 'name' => 'DeleteChannel', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/prod/channels/{channelId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteChannelRequest', ], 'output' => [ 'shape' => 'DeleteChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'DeleteInput' => [ 'name' => 'DeleteInput', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/prod/inputs/{inputId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteInputRequest', ], 'output' => [ 'shape' => 'DeleteInputResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'DeleteInputSecurityGroup' => [ 'name' => 'DeleteInputSecurityGroup', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/prod/inputSecurityGroups/{inputSecurityGroupId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteInputSecurityGroupRequest', ], 'output' => [ 'shape' => 'DeleteInputSecurityGroupResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteReservation' => [ 'name' => 'DeleteReservation', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/prod/reservations/{reservationId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteReservationRequest', ], 'output' => [ 'shape' => 'DeleteReservationResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'DeleteTags' => [ 'name' => 'DeleteTags', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/prod/tags/{resource-arn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteTagsRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'DescribeChannel' => [ 'name' => 'DescribeChannel', 'http' => [ 'method' => 'GET', 'requestUri' => '/prod/channels/{channelId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeChannelRequest', ], 'output' => [ 'shape' => 'DescribeChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeInput' => [ 'name' => 'DescribeInput', 'http' => [ 'method' => 'GET', 'requestUri' => '/prod/inputs/{inputId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeInputRequest', ], 'output' => [ 'shape' => 'DescribeInputResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeInputSecurityGroup' => [ 'name' => 'DescribeInputSecurityGroup', 'http' => [ 'method' => 'GET', 'requestUri' => '/prod/inputSecurityGroups/{inputSecurityGroupId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeInputSecurityGroupRequest', ], 'output' => [ 'shape' => 'DescribeInputSecurityGroupResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeOffering' => [ 'name' => 'DescribeOffering', 'http' => [ 'method' => 'GET', 'requestUri' => '/prod/offerings/{offeringId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeOfferingRequest', ], 'output' => [ 'shape' => 'DescribeOfferingResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeReservation' => [ 'name' => 'DescribeReservation', 'http' => [ 'method' => 'GET', 'requestUri' => '/prod/reservations/{reservationId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeReservationRequest', ], 'output' => [ 'shape' => 'DescribeReservationResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeSchedule' => [ 'name' => 'DescribeSchedule', 'http' => [ 'method' => 'GET', 'requestUri' => '/prod/channels/{channelId}/schedule', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeScheduleRequest', ], 'output' => [ 'shape' => 'DescribeScheduleResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListChannels' => [ 'name' => 'ListChannels', 'http' => [ 'method' => 'GET', 'requestUri' => '/prod/channels', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListChannelsRequest', ], 'output' => [ 'shape' => 'ListChannelsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListInputSecurityGroups' => [ 'name' => 'ListInputSecurityGroups', 'http' => [ 'method' => 'GET', 'requestUri' => '/prod/inputSecurityGroups', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListInputSecurityGroupsRequest', ], 'output' => [ 'shape' => 'ListInputSecurityGroupsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListInputs' => [ 'name' => 'ListInputs', 'http' => [ 'method' => 'GET', 'requestUri' => '/prod/inputs', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListInputsRequest', ], 'output' => [ 'shape' => 'ListInputsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListOfferings' => [ 'name' => 'ListOfferings', 'http' => [ 'method' => 'GET', 'requestUri' => '/prod/offerings', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListOfferingsRequest', ], 'output' => [ 'shape' => 'ListOfferingsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListReservations' => [ 'name' => 'ListReservations', 'http' => [ 'method' => 'GET', 'requestUri' => '/prod/reservations', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListReservationsRequest', ], 'output' => [ 'shape' => 'ListReservationsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/prod/tags/{resource-arn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'PurchaseOffering' => [ 'name' => 'PurchaseOffering', 'http' => [ 'method' => 'POST', 'requestUri' => '/prod/offerings/{offeringId}/purchase', 'responseCode' => 201, ], 'input' => [ 'shape' => 'PurchaseOfferingRequest', ], 'output' => [ 'shape' => 'PurchaseOfferingResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'StartChannel' => [ 'name' => 'StartChannel', 'http' => [ 'method' => 'POST', 'requestUri' => '/prod/channels/{channelId}/start', 'responseCode' => 200, ], 'input' => [ 'shape' => 'StartChannelRequest', ], 'output' => [ 'shape' => 'StartChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'StopChannel' => [ 'name' => 'StopChannel', 'http' => [ 'method' => 'POST', 'requestUri' => '/prod/channels/{channelId}/stop', 'responseCode' => 200, ], 'input' => [ 'shape' => 'StopChannelRequest', ], 'output' => [ 'shape' => 'StopChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateChannel' => [ 'name' => 'UpdateChannel', 'http' => [ 'method' => 'PUT', 'requestUri' => '/prod/channels/{channelId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateChannelRequest', ], 'output' => [ 'shape' => 'UpdateChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnprocessableEntityException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateInput' => [ 'name' => 'UpdateInput', 'http' => [ 'method' => 'PUT', 'requestUri' => '/prod/inputs/{inputId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateInputRequest', ], 'output' => [ 'shape' => 'UpdateInputResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateInputSecurityGroup' => [ 'name' => 'UpdateInputSecurityGroup', 'http' => [ 'method' => 'PUT', 'requestUri' => '/prod/inputSecurityGroups/{inputSecurityGroupId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateInputSecurityGroupRequest', ], 'output' => [ 'shape' => 'UpdateInputSecurityGroupResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateReservation' => [ 'name' => 'UpdateReservation', 'http' => [ 'method' => 'PUT', 'requestUri' => '/prod/reservations/{reservationId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateReservationRequest', ], 'output' => [ 'shape' => 'UpdateReservationResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'GatewayTimeoutException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], ], 'shapes' => [ 'AacCodingMode' => [ 'type' => 'string', 'enum' => [ 'AD_RECEIVER_MIX', 'CODING_MODE_1_0', 'CODING_MODE_1_1', 'CODING_MODE_2_0', 'CODING_MODE_5_1', ], ], 'AacInputType' => [ 'type' => 'string', 'enum' => [ 'BROADCASTER_MIXED_AD', 'NORMAL', ], ], 'AacProfile' => [ 'type' => 'string', 'enum' => [ 'HEV1', 'HEV2', 'LC', ], ], 'AacRateControlMode' => [ 'type' => 'string', 'enum' => [ 'CBR', 'VBR', ], ], 'AacRawFormat' => [ 'type' => 'string', 'enum' => [ 'LATM_LOAS', 'NONE', ], ], 'AacSettings' => [ 'type' => 'structure', 'members' => [ 'Bitrate' => [ 'shape' => '__double', 'locationName' => 'bitrate', ], 'CodingMode' => [ 'shape' => 'AacCodingMode', 'locationName' => 'codingMode', ], 'InputType' => [ 'shape' => 'AacInputType', 'locationName' => 'inputType', ], 'Profile' => [ 'shape' => 'AacProfile', 'locationName' => 'profile', ], 'RateControlMode' => [ 'shape' => 'AacRateControlMode', 'locationName' => 'rateControlMode', ], 'RawFormat' => [ 'shape' => 'AacRawFormat', 'locationName' => 'rawFormat', ], 'SampleRate' => [ 'shape' => '__double', 'locationName' => 'sampleRate', ], 'Spec' => [ 'shape' => 'AacSpec', 'locationName' => 'spec', ], 'VbrQuality' => [ 'shape' => 'AacVbrQuality', 'locationName' => 'vbrQuality', ], ], ], 'AacSpec' => [ 'type' => 'string', 'enum' => [ 'MPEG2', 'MPEG4', ], ], 'AacVbrQuality' => [ 'type' => 'string', 'enum' => [ 'HIGH', 'LOW', 'MEDIUM_HIGH', 'MEDIUM_LOW', ], ], 'Ac3BitstreamMode' => [ 'type' => 'string', 'enum' => [ 'COMMENTARY', 'COMPLETE_MAIN', 'DIALOGUE', 'EMERGENCY', 'HEARING_IMPAIRED', 'MUSIC_AND_EFFECTS', 'VISUALLY_IMPAIRED', 'VOICE_OVER', ], ], 'Ac3CodingMode' => [ 'type' => 'string', 'enum' => [ 'CODING_MODE_1_0', 'CODING_MODE_1_1', 'CODING_MODE_2_0', 'CODING_MODE_3_2_LFE', ], ], 'Ac3DrcProfile' => [ 'type' => 'string', 'enum' => [ 'FILM_STANDARD', 'NONE', ], ], 'Ac3LfeFilter' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'Ac3MetadataControl' => [ 'type' => 'string', 'enum' => [ 'FOLLOW_INPUT', 'USE_CONFIGURED', ], ], 'Ac3Settings' => [ 'type' => 'structure', 'members' => [ 'Bitrate' => [ 'shape' => '__double', 'locationName' => 'bitrate', ], 'BitstreamMode' => [ 'shape' => 'Ac3BitstreamMode', 'locationName' => 'bitstreamMode', ], 'CodingMode' => [ 'shape' => 'Ac3CodingMode', 'locationName' => 'codingMode', ], 'Dialnorm' => [ 'shape' => '__integerMin1Max31', 'locationName' => 'dialnorm', ], 'DrcProfile' => [ 'shape' => 'Ac3DrcProfile', 'locationName' => 'drcProfile', ], 'LfeFilter' => [ 'shape' => 'Ac3LfeFilter', 'locationName' => 'lfeFilter', ], 'MetadataControl' => [ 'shape' => 'Ac3MetadataControl', 'locationName' => 'metadataControl', ], ], ], 'AccessDenied' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], ], 'AfdSignaling' => [ 'type' => 'string', 'enum' => [ 'AUTO', 'FIXED', 'NONE', ], ], 'ArchiveContainerSettings' => [ 'type' => 'structure', 'members' => [ 'M2tsSettings' => [ 'shape' => 'M2tsSettings', 'locationName' => 'm2tsSettings', ], ], ], 'ArchiveGroupSettings' => [ 'type' => 'structure', 'members' => [ 'Destination' => [ 'shape' => 'OutputLocationRef', 'locationName' => 'destination', ], 'RolloverInterval' => [ 'shape' => '__integerMin1', 'locationName' => 'rolloverInterval', ], ], 'required' => [ 'Destination', ], ], 'ArchiveOutputSettings' => [ 'type' => 'structure', 'members' => [ 'ContainerSettings' => [ 'shape' => 'ArchiveContainerSettings', 'locationName' => 'containerSettings', ], 'Extension' => [ 'shape' => '__string', 'locationName' => 'extension', ], 'NameModifier' => [ 'shape' => '__string', 'locationName' => 'nameModifier', ], ], 'required' => [ 'ContainerSettings', ], ], 'AribDestinationSettings' => [ 'type' => 'structure', 'members' => [], ], 'AribSourceSettings' => [ 'type' => 'structure', 'members' => [], ], 'AudioChannelMapping' => [ 'type' => 'structure', 'members' => [ 'InputChannelLevels' => [ 'shape' => '__listOfInputChannelLevel', 'locationName' => 'inputChannelLevels', ], 'OutputChannel' => [ 'shape' => '__integerMin0Max7', 'locationName' => 'outputChannel', ], ], 'required' => [ 'OutputChannel', 'InputChannelLevels', ], ], 'AudioCodecSettings' => [ 'type' => 'structure', 'members' => [ 'AacSettings' => [ 'shape' => 'AacSettings', 'locationName' => 'aacSettings', ], 'Ac3Settings' => [ 'shape' => 'Ac3Settings', 'locationName' => 'ac3Settings', ], 'Eac3Settings' => [ 'shape' => 'Eac3Settings', 'locationName' => 'eac3Settings', ], 'Mp2Settings' => [ 'shape' => 'Mp2Settings', 'locationName' => 'mp2Settings', ], 'PassThroughSettings' => [ 'shape' => 'PassThroughSettings', 'locationName' => 'passThroughSettings', ], ], ], 'AudioDescription' => [ 'type' => 'structure', 'members' => [ 'AudioNormalizationSettings' => [ 'shape' => 'AudioNormalizationSettings', 'locationName' => 'audioNormalizationSettings', ], 'AudioSelectorName' => [ 'shape' => '__string', 'locationName' => 'audioSelectorName', ], 'AudioType' => [ 'shape' => 'AudioType', 'locationName' => 'audioType', ], 'AudioTypeControl' => [ 'shape' => 'AudioDescriptionAudioTypeControl', 'locationName' => 'audioTypeControl', ], 'CodecSettings' => [ 'shape' => 'AudioCodecSettings', 'locationName' => 'codecSettings', ], 'LanguageCode' => [ 'shape' => '__stringMin3Max3', 'locationName' => 'languageCode', ], 'LanguageCodeControl' => [ 'shape' => 'AudioDescriptionLanguageCodeControl', 'locationName' => 'languageCodeControl', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'RemixSettings' => [ 'shape' => 'RemixSettings', 'locationName' => 'remixSettings', ], 'StreamName' => [ 'shape' => '__string', 'locationName' => 'streamName', ], ], 'required' => [ 'AudioSelectorName', 'Name', ], ], 'AudioDescriptionAudioTypeControl' => [ 'type' => 'string', 'enum' => [ 'FOLLOW_INPUT', 'USE_CONFIGURED', ], ], 'AudioDescriptionLanguageCodeControl' => [ 'type' => 'string', 'enum' => [ 'FOLLOW_INPUT', 'USE_CONFIGURED', ], ], 'AudioLanguageSelection' => [ 'type' => 'structure', 'members' => [ 'LanguageCode' => [ 'shape' => '__string', 'locationName' => 'languageCode', ], 'LanguageSelectionPolicy' => [ 'shape' => 'AudioLanguageSelectionPolicy', 'locationName' => 'languageSelectionPolicy', ], ], 'required' => [ 'LanguageCode', ], ], 'AudioLanguageSelectionPolicy' => [ 'type' => 'string', 'enum' => [ 'LOOSE', 'STRICT', ], ], 'AudioNormalizationAlgorithm' => [ 'type' => 'string', 'enum' => [ 'ITU_1770_1', 'ITU_1770_2', ], ], 'AudioNormalizationAlgorithmControl' => [ 'type' => 'string', 'enum' => [ 'CORRECT_AUDIO', ], ], 'AudioNormalizationSettings' => [ 'type' => 'structure', 'members' => [ 'Algorithm' => [ 'shape' => 'AudioNormalizationAlgorithm', 'locationName' => 'algorithm', ], 'AlgorithmControl' => [ 'shape' => 'AudioNormalizationAlgorithmControl', 'locationName' => 'algorithmControl', ], 'TargetLkfs' => [ 'shape' => '__doubleMinNegative59Max0', 'locationName' => 'targetLkfs', ], ], ], 'AudioOnlyHlsSettings' => [ 'type' => 'structure', 'members' => [ 'AudioGroupId' => [ 'shape' => '__string', 'locationName' => 'audioGroupId', ], 'AudioOnlyImage' => [ 'shape' => 'InputLocation', 'locationName' => 'audioOnlyImage', ], 'AudioTrackType' => [ 'shape' => 'AudioOnlyHlsTrackType', 'locationName' => 'audioTrackType', ], ], ], 'AudioOnlyHlsTrackType' => [ 'type' => 'string', 'enum' => [ 'ALTERNATE_AUDIO_AUTO_SELECT', 'ALTERNATE_AUDIO_AUTO_SELECT_DEFAULT', 'ALTERNATE_AUDIO_NOT_AUTO_SELECT', 'AUDIO_ONLY_VARIANT_STREAM', ], ], 'AudioPidSelection' => [ 'type' => 'structure', 'members' => [ 'Pid' => [ 'shape' => '__integerMin0Max8191', 'locationName' => 'pid', ], ], 'required' => [ 'Pid', ], ], 'AudioSelector' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => '__stringMin1', 'locationName' => 'name', ], 'SelectorSettings' => [ 'shape' => 'AudioSelectorSettings', 'locationName' => 'selectorSettings', ], ], 'required' => [ 'Name', ], ], 'AudioSelectorSettings' => [ 'type' => 'structure', 'members' => [ 'AudioLanguageSelection' => [ 'shape' => 'AudioLanguageSelection', 'locationName' => 'audioLanguageSelection', ], 'AudioPidSelection' => [ 'shape' => 'AudioPidSelection', 'locationName' => 'audioPidSelection', ], ], ], 'AudioType' => [ 'type' => 'string', 'enum' => [ 'CLEAN_EFFECTS', 'HEARING_IMPAIRED', 'UNDEFINED', 'VISUAL_IMPAIRED_COMMENTARY', ], ], 'AuthenticationScheme' => [ 'type' => 'string', 'enum' => [ 'AKAMAI', 'COMMON', ], ], 'AvailBlanking' => [ 'type' => 'structure', 'members' => [ 'AvailBlankingImage' => [ 'shape' => 'InputLocation', 'locationName' => 'availBlankingImage', ], 'State' => [ 'shape' => 'AvailBlankingState', 'locationName' => 'state', ], ], ], 'AvailBlankingState' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'AvailConfiguration' => [ 'type' => 'structure', 'members' => [ 'AvailSettings' => [ 'shape' => 'AvailSettings', 'locationName' => 'availSettings', ], ], ], 'AvailSettings' => [ 'type' => 'structure', 'members' => [ 'Scte35SpliceInsert' => [ 'shape' => 'Scte35SpliceInsert', 'locationName' => 'scte35SpliceInsert', ], 'Scte35TimeSignalApos' => [ 'shape' => 'Scte35TimeSignalApos', 'locationName' => 'scte35TimeSignalApos', ], ], ], 'BadGatewayException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 502, ], ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 400, ], ], 'BatchScheduleActionCreateRequest' => [ 'type' => 'structure', 'members' => [ 'ScheduleActions' => [ 'shape' => '__listOfScheduleAction', 'locationName' => 'scheduleActions', ], ], 'required' => [ 'ScheduleActions', ], ], 'BatchScheduleActionCreateResult' => [ 'type' => 'structure', 'members' => [ 'ScheduleActions' => [ 'shape' => '__listOfScheduleAction', 'locationName' => 'scheduleActions', ], ], 'required' => [ 'ScheduleActions', ], ], 'BatchScheduleActionDeleteRequest' => [ 'type' => 'structure', 'members' => [ 'ActionNames' => [ 'shape' => '__listOf__string', 'locationName' => 'actionNames', ], ], 'required' => [ 'ActionNames', ], ], 'BatchScheduleActionDeleteResult' => [ 'type' => 'structure', 'members' => [ 'ScheduleActions' => [ 'shape' => '__listOfScheduleAction', 'locationName' => 'scheduleActions', ], ], 'required' => [ 'ScheduleActions', ], ], 'BatchUpdateScheduleRequest' => [ 'type' => 'structure', 'members' => [ 'ChannelId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'channelId', ], 'Creates' => [ 'shape' => 'BatchScheduleActionCreateRequest', 'locationName' => 'creates', ], 'Deletes' => [ 'shape' => 'BatchScheduleActionDeleteRequest', 'locationName' => 'deletes', ], ], 'required' => [ 'ChannelId', ], ], 'BatchUpdateScheduleResponse' => [ 'type' => 'structure', 'members' => [ 'Creates' => [ 'shape' => 'BatchScheduleActionCreateResult', 'locationName' => 'creates', ], 'Deletes' => [ 'shape' => 'BatchScheduleActionDeleteResult', 'locationName' => 'deletes', ], ], ], 'BatchUpdateScheduleResult' => [ 'type' => 'structure', 'members' => [ 'Creates' => [ 'shape' => 'BatchScheduleActionCreateResult', 'locationName' => 'creates', ], 'Deletes' => [ 'shape' => 'BatchScheduleActionDeleteResult', 'locationName' => 'deletes', ], ], ], 'BlackoutSlate' => [ 'type' => 'structure', 'members' => [ 'BlackoutSlateImage' => [ 'shape' => 'InputLocation', 'locationName' => 'blackoutSlateImage', ], 'NetworkEndBlackout' => [ 'shape' => 'BlackoutSlateNetworkEndBlackout', 'locationName' => 'networkEndBlackout', ], 'NetworkEndBlackoutImage' => [ 'shape' => 'InputLocation', 'locationName' => 'networkEndBlackoutImage', ], 'NetworkId' => [ 'shape' => '__stringMin34Max34', 'locationName' => 'networkId', ], 'State' => [ 'shape' => 'BlackoutSlateState', 'locationName' => 'state', ], ], ], 'BlackoutSlateNetworkEndBlackout' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'BlackoutSlateState' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'BurnInAlignment' => [ 'type' => 'string', 'enum' => [ 'CENTERED', 'LEFT', 'SMART', ], ], 'BurnInBackgroundColor' => [ 'type' => 'string', 'enum' => [ 'BLACK', 'NONE', 'WHITE', ], ], 'BurnInDestinationSettings' => [ 'type' => 'structure', 'members' => [ 'Alignment' => [ 'shape' => 'BurnInAlignment', 'locationName' => 'alignment', ], 'BackgroundColor' => [ 'shape' => 'BurnInBackgroundColor', 'locationName' => 'backgroundColor', ], 'BackgroundOpacity' => [ 'shape' => '__integerMin0Max255', 'locationName' => 'backgroundOpacity', ], 'Font' => [ 'shape' => 'InputLocation', 'locationName' => 'font', ], 'FontColor' => [ 'shape' => 'BurnInFontColor', 'locationName' => 'fontColor', ], 'FontOpacity' => [ 'shape' => '__integerMin0Max255', 'locationName' => 'fontOpacity', ], 'FontResolution' => [ 'shape' => '__integerMin96Max600', 'locationName' => 'fontResolution', ], 'FontSize' => [ 'shape' => '__string', 'locationName' => 'fontSize', ], 'OutlineColor' => [ 'shape' => 'BurnInOutlineColor', 'locationName' => 'outlineColor', ], 'OutlineSize' => [ 'shape' => '__integerMin0Max10', 'locationName' => 'outlineSize', ], 'ShadowColor' => [ 'shape' => 'BurnInShadowColor', 'locationName' => 'shadowColor', ], 'ShadowOpacity' => [ 'shape' => '__integerMin0Max255', 'locationName' => 'shadowOpacity', ], 'ShadowXOffset' => [ 'shape' => '__integer', 'locationName' => 'shadowXOffset', ], 'ShadowYOffset' => [ 'shape' => '__integer', 'locationName' => 'shadowYOffset', ], 'TeletextGridControl' => [ 'shape' => 'BurnInTeletextGridControl', 'locationName' => 'teletextGridControl', ], 'XPosition' => [ 'shape' => '__integerMin0', 'locationName' => 'xPosition', ], 'YPosition' => [ 'shape' => '__integerMin0', 'locationName' => 'yPosition', ], ], ], 'BurnInFontColor' => [ 'type' => 'string', 'enum' => [ 'BLACK', 'BLUE', 'GREEN', 'RED', 'WHITE', 'YELLOW', ], ], 'BurnInOutlineColor' => [ 'type' => 'string', 'enum' => [ 'BLACK', 'BLUE', 'GREEN', 'RED', 'WHITE', 'YELLOW', ], ], 'BurnInShadowColor' => [ 'type' => 'string', 'enum' => [ 'BLACK', 'NONE', 'WHITE', ], ], 'BurnInTeletextGridControl' => [ 'type' => 'string', 'enum' => [ 'FIXED', 'SCALED', ], ], 'CaptionDescription' => [ 'type' => 'structure', 'members' => [ 'CaptionSelectorName' => [ 'shape' => '__string', 'locationName' => 'captionSelectorName', ], 'DestinationSettings' => [ 'shape' => 'CaptionDestinationSettings', 'locationName' => 'destinationSettings', ], 'LanguageCode' => [ 'shape' => '__string', 'locationName' => 'languageCode', ], 'LanguageDescription' => [ 'shape' => '__string', 'locationName' => 'languageDescription', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], ], 'required' => [ 'CaptionSelectorName', 'Name', ], ], 'CaptionDestinationSettings' => [ 'type' => 'structure', 'members' => [ 'AribDestinationSettings' => [ 'shape' => 'AribDestinationSettings', 'locationName' => 'aribDestinationSettings', ], 'BurnInDestinationSettings' => [ 'shape' => 'BurnInDestinationSettings', 'locationName' => 'burnInDestinationSettings', ], 'DvbSubDestinationSettings' => [ 'shape' => 'DvbSubDestinationSettings', 'locationName' => 'dvbSubDestinationSettings', ], 'EmbeddedDestinationSettings' => [ 'shape' => 'EmbeddedDestinationSettings', 'locationName' => 'embeddedDestinationSettings', ], 'EmbeddedPlusScte20DestinationSettings' => [ 'shape' => 'EmbeddedPlusScte20DestinationSettings', 'locationName' => 'embeddedPlusScte20DestinationSettings', ], 'RtmpCaptionInfoDestinationSettings' => [ 'shape' => 'RtmpCaptionInfoDestinationSettings', 'locationName' => 'rtmpCaptionInfoDestinationSettings', ], 'Scte20PlusEmbeddedDestinationSettings' => [ 'shape' => 'Scte20PlusEmbeddedDestinationSettings', 'locationName' => 'scte20PlusEmbeddedDestinationSettings', ], 'Scte27DestinationSettings' => [ 'shape' => 'Scte27DestinationSettings', 'locationName' => 'scte27DestinationSettings', ], 'SmpteTtDestinationSettings' => [ 'shape' => 'SmpteTtDestinationSettings', 'locationName' => 'smpteTtDestinationSettings', ], 'TeletextDestinationSettings' => [ 'shape' => 'TeletextDestinationSettings', 'locationName' => 'teletextDestinationSettings', ], 'TtmlDestinationSettings' => [ 'shape' => 'TtmlDestinationSettings', 'locationName' => 'ttmlDestinationSettings', ], 'WebvttDestinationSettings' => [ 'shape' => 'WebvttDestinationSettings', 'locationName' => 'webvttDestinationSettings', ], ], ], 'CaptionLanguageMapping' => [ 'type' => 'structure', 'members' => [ 'CaptionChannel' => [ 'shape' => '__integerMin1Max4', 'locationName' => 'captionChannel', ], 'LanguageCode' => [ 'shape' => '__stringMin3Max3', 'locationName' => 'languageCode', ], 'LanguageDescription' => [ 'shape' => '__stringMin1', 'locationName' => 'languageDescription', ], ], 'required' => [ 'LanguageCode', 'LanguageDescription', 'CaptionChannel', ], ], 'CaptionSelector' => [ 'type' => 'structure', 'members' => [ 'LanguageCode' => [ 'shape' => '__string', 'locationName' => 'languageCode', ], 'Name' => [ 'shape' => '__stringMin1', 'locationName' => 'name', ], 'SelectorSettings' => [ 'shape' => 'CaptionSelectorSettings', 'locationName' => 'selectorSettings', ], ], 'required' => [ 'Name', ], ], 'CaptionSelectorSettings' => [ 'type' => 'structure', 'members' => [ 'AribSourceSettings' => [ 'shape' => 'AribSourceSettings', 'locationName' => 'aribSourceSettings', ], 'DvbSubSourceSettings' => [ 'shape' => 'DvbSubSourceSettings', 'locationName' => 'dvbSubSourceSettings', ], 'EmbeddedSourceSettings' => [ 'shape' => 'EmbeddedSourceSettings', 'locationName' => 'embeddedSourceSettings', ], 'Scte20SourceSettings' => [ 'shape' => 'Scte20SourceSettings', 'locationName' => 'scte20SourceSettings', ], 'Scte27SourceSettings' => [ 'shape' => 'Scte27SourceSettings', 'locationName' => 'scte27SourceSettings', ], 'TeletextSourceSettings' => [ 'shape' => 'TeletextSourceSettings', 'locationName' => 'teletextSourceSettings', ], ], ], 'Channel' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'ChannelClass' => [ 'shape' => 'ChannelClass', 'locationName' => 'channelClass', ], 'Destinations' => [ 'shape' => '__listOfOutputDestination', 'locationName' => 'destinations', ], 'EgressEndpoints' => [ 'shape' => '__listOfChannelEgressEndpoint', 'locationName' => 'egressEndpoints', ], 'EncoderSettings' => [ 'shape' => 'EncoderSettings', 'locationName' => 'encoderSettings', ], 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], 'InputAttachments' => [ 'shape' => '__listOfInputAttachment', 'locationName' => 'inputAttachments', ], 'InputSpecification' => [ 'shape' => 'InputSpecification', 'locationName' => 'inputSpecification', ], 'LogLevel' => [ 'shape' => 'LogLevel', 'locationName' => 'logLevel', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'PipelinesRunningCount' => [ 'shape' => '__integer', 'locationName' => 'pipelinesRunningCount', ], 'RoleArn' => [ 'shape' => '__string', 'locationName' => 'roleArn', ], 'State' => [ 'shape' => 'ChannelState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], ], ], 'ChannelClass' => [ 'type' => 'string', 'enum' => [ 'STANDARD', 'SINGLE_PIPELINE', ], ], 'ChannelConfigurationValidationError' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], 'ValidationErrors' => [ 'shape' => '__listOfValidationError', 'locationName' => 'validationErrors', ], ], ], 'ChannelEgressEndpoint' => [ 'type' => 'structure', 'members' => [ 'SourceIp' => [ 'shape' => '__string', 'locationName' => 'sourceIp', ], ], ], 'ChannelState' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'CREATE_FAILED', 'IDLE', 'STARTING', 'RUNNING', 'RECOVERING', 'STOPPING', 'DELETING', 'DELETED', ], ], 'ChannelSummary' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'ChannelClass' => [ 'shape' => 'ChannelClass', 'locationName' => 'channelClass', ], 'Destinations' => [ 'shape' => '__listOfOutputDestination', 'locationName' => 'destinations', ], 'EgressEndpoints' => [ 'shape' => '__listOfChannelEgressEndpoint', 'locationName' => 'egressEndpoints', ], 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], 'InputAttachments' => [ 'shape' => '__listOfInputAttachment', 'locationName' => 'inputAttachments', ], 'InputSpecification' => [ 'shape' => 'InputSpecification', 'locationName' => 'inputSpecification', ], 'LogLevel' => [ 'shape' => 'LogLevel', 'locationName' => 'logLevel', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'PipelinesRunningCount' => [ 'shape' => '__integer', 'locationName' => 'pipelinesRunningCount', ], 'RoleArn' => [ 'shape' => '__string', 'locationName' => 'roleArn', ], 'State' => [ 'shape' => 'ChannelState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], ], ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 409, ], ], 'CreateChannel' => [ 'type' => 'structure', 'members' => [ 'ChannelClass' => [ 'shape' => 'ChannelClass', 'locationName' => 'channelClass', ], 'Destinations' => [ 'shape' => '__listOfOutputDestination', 'locationName' => 'destinations', ], 'EncoderSettings' => [ 'shape' => 'EncoderSettings', 'locationName' => 'encoderSettings', ], 'InputAttachments' => [ 'shape' => '__listOfInputAttachment', 'locationName' => 'inputAttachments', ], 'InputSpecification' => [ 'shape' => 'InputSpecification', 'locationName' => 'inputSpecification', ], 'LogLevel' => [ 'shape' => 'LogLevel', 'locationName' => 'logLevel', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'RequestId' => [ 'shape' => '__string', 'locationName' => 'requestId', 'idempotencyToken' => true, ], 'Reserved' => [ 'shape' => '__string', 'locationName' => 'reserved', 'deprecated' => true, ], 'RoleArn' => [ 'shape' => '__string', 'locationName' => 'roleArn', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], ], ], 'CreateChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ChannelClass' => [ 'shape' => 'ChannelClass', 'locationName' => 'channelClass', ], 'Destinations' => [ 'shape' => '__listOfOutputDestination', 'locationName' => 'destinations', ], 'EncoderSettings' => [ 'shape' => 'EncoderSettings', 'locationName' => 'encoderSettings', ], 'InputAttachments' => [ 'shape' => '__listOfInputAttachment', 'locationName' => 'inputAttachments', ], 'InputSpecification' => [ 'shape' => 'InputSpecification', 'locationName' => 'inputSpecification', ], 'LogLevel' => [ 'shape' => 'LogLevel', 'locationName' => 'logLevel', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'RequestId' => [ 'shape' => '__string', 'locationName' => 'requestId', 'idempotencyToken' => true, ], 'Reserved' => [ 'shape' => '__string', 'locationName' => 'reserved', 'deprecated' => true, ], 'RoleArn' => [ 'shape' => '__string', 'locationName' => 'roleArn', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], ], ], 'CreateChannelResponse' => [ 'type' => 'structure', 'members' => [ 'Channel' => [ 'shape' => 'Channel', 'locationName' => 'channel', ], ], ], 'CreateChannelResultModel' => [ 'type' => 'structure', 'members' => [ 'Channel' => [ 'shape' => 'Channel', 'locationName' => 'channel', ], ], ], 'CreateInput' => [ 'type' => 'structure', 'members' => [ 'Destinations' => [ 'shape' => '__listOfInputDestinationRequest', 'locationName' => 'destinations', ], 'InputSecurityGroups' => [ 'shape' => '__listOf__string', 'locationName' => 'inputSecurityGroups', ], 'MediaConnectFlows' => [ 'shape' => '__listOfMediaConnectFlowRequest', 'locationName' => 'mediaConnectFlows', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'RequestId' => [ 'shape' => '__string', 'locationName' => 'requestId', 'idempotencyToken' => true, ], 'RoleArn' => [ 'shape' => '__string', 'locationName' => 'roleArn', ], 'Sources' => [ 'shape' => '__listOfInputSourceRequest', 'locationName' => 'sources', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], 'Type' => [ 'shape' => 'InputType', 'locationName' => 'type', ], 'Vpc' => [ 'shape' => 'InputVpcRequest', 'locationName' => 'vpc', ], ], ], 'CreateInputRequest' => [ 'type' => 'structure', 'members' => [ 'Destinations' => [ 'shape' => '__listOfInputDestinationRequest', 'locationName' => 'destinations', ], 'InputSecurityGroups' => [ 'shape' => '__listOf__string', 'locationName' => 'inputSecurityGroups', ], 'MediaConnectFlows' => [ 'shape' => '__listOfMediaConnectFlowRequest', 'locationName' => 'mediaConnectFlows', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'RequestId' => [ 'shape' => '__string', 'locationName' => 'requestId', 'idempotencyToken' => true, ], 'RoleArn' => [ 'shape' => '__string', 'locationName' => 'roleArn', ], 'Sources' => [ 'shape' => '__listOfInputSourceRequest', 'locationName' => 'sources', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], 'Type' => [ 'shape' => 'InputType', 'locationName' => 'type', ], 'Vpc' => [ 'shape' => 'InputVpcRequest', 'locationName' => 'vpc', ], ], ], 'CreateInputResponse' => [ 'type' => 'structure', 'members' => [ 'Input' => [ 'shape' => 'Input', 'locationName' => 'input', ], ], ], 'CreateInputResultModel' => [ 'type' => 'structure', 'members' => [ 'Input' => [ 'shape' => 'Input', 'locationName' => 'input', ], ], ], 'CreateInputSecurityGroupRequest' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], 'WhitelistRules' => [ 'shape' => '__listOfInputWhitelistRuleCidr', 'locationName' => 'whitelistRules', ], ], ], 'CreateInputSecurityGroupResponse' => [ 'type' => 'structure', 'members' => [ 'SecurityGroup' => [ 'shape' => 'InputSecurityGroup', 'locationName' => 'securityGroup', ], ], ], 'CreateInputSecurityGroupResultModel' => [ 'type' => 'structure', 'members' => [ 'SecurityGroup' => [ 'shape' => 'InputSecurityGroup', 'locationName' => 'securityGroup', ], ], ], 'CreateTagsRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'resource-arn', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], ], 'required' => [ 'ResourceArn', ], ], 'DeleteChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ChannelId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'channelId', ], ], 'required' => [ 'ChannelId', ], ], 'DeleteChannelResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'ChannelClass' => [ 'shape' => 'ChannelClass', 'locationName' => 'channelClass', ], 'Destinations' => [ 'shape' => '__listOfOutputDestination', 'locationName' => 'destinations', ], 'EgressEndpoints' => [ 'shape' => '__listOfChannelEgressEndpoint', 'locationName' => 'egressEndpoints', ], 'EncoderSettings' => [ 'shape' => 'EncoderSettings', 'locationName' => 'encoderSettings', ], 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], 'InputAttachments' => [ 'shape' => '__listOfInputAttachment', 'locationName' => 'inputAttachments', ], 'InputSpecification' => [ 'shape' => 'InputSpecification', 'locationName' => 'inputSpecification', ], 'LogLevel' => [ 'shape' => 'LogLevel', 'locationName' => 'logLevel', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'PipelinesRunningCount' => [ 'shape' => '__integer', 'locationName' => 'pipelinesRunningCount', ], 'RoleArn' => [ 'shape' => '__string', 'locationName' => 'roleArn', ], 'State' => [ 'shape' => 'ChannelState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], ], ], 'DeleteInputRequest' => [ 'type' => 'structure', 'members' => [ 'InputId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'inputId', ], ], 'required' => [ 'InputId', ], ], 'DeleteInputResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteInputSecurityGroupRequest' => [ 'type' => 'structure', 'members' => [ 'InputSecurityGroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'inputSecurityGroupId', ], ], 'required' => [ 'InputSecurityGroupId', ], ], 'DeleteInputSecurityGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteReservationRequest' => [ 'type' => 'structure', 'members' => [ 'ReservationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'reservationId', ], ], 'required' => [ 'ReservationId', ], ], 'DeleteReservationResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'Count' => [ 'shape' => '__integer', 'locationName' => 'count', ], 'CurrencyCode' => [ 'shape' => '__string', 'locationName' => 'currencyCode', ], 'Duration' => [ 'shape' => '__integer', 'locationName' => 'duration', ], 'DurationUnits' => [ 'shape' => 'OfferingDurationUnits', 'locationName' => 'durationUnits', ], 'End' => [ 'shape' => '__string', 'locationName' => 'end', ], 'FixedPrice' => [ 'shape' => '__double', 'locationName' => 'fixedPrice', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'OfferingDescription' => [ 'shape' => '__string', 'locationName' => 'offeringDescription', ], 'OfferingId' => [ 'shape' => '__string', 'locationName' => 'offeringId', ], 'OfferingType' => [ 'shape' => 'OfferingType', 'locationName' => 'offeringType', ], 'Region' => [ 'shape' => '__string', 'locationName' => 'region', ], 'ReservationId' => [ 'shape' => '__string', 'locationName' => 'reservationId', ], 'ResourceSpecification' => [ 'shape' => 'ReservationResourceSpecification', 'locationName' => 'resourceSpecification', ], 'Start' => [ 'shape' => '__string', 'locationName' => 'start', ], 'State' => [ 'shape' => 'ReservationState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], 'UsagePrice' => [ 'shape' => '__double', 'locationName' => 'usagePrice', ], ], ], 'DeleteTagsRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'resource-arn', ], 'TagKeys' => [ 'shape' => '__listOf__string', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], 'required' => [ 'TagKeys', 'ResourceArn', ], ], 'DescribeChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ChannelId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'channelId', ], ], 'required' => [ 'ChannelId', ], ], 'DescribeChannelResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'ChannelClass' => [ 'shape' => 'ChannelClass', 'locationName' => 'channelClass', ], 'Destinations' => [ 'shape' => '__listOfOutputDestination', 'locationName' => 'destinations', ], 'EgressEndpoints' => [ 'shape' => '__listOfChannelEgressEndpoint', 'locationName' => 'egressEndpoints', ], 'EncoderSettings' => [ 'shape' => 'EncoderSettings', 'locationName' => 'encoderSettings', ], 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], 'InputAttachments' => [ 'shape' => '__listOfInputAttachment', 'locationName' => 'inputAttachments', ], 'InputSpecification' => [ 'shape' => 'InputSpecification', 'locationName' => 'inputSpecification', ], 'LogLevel' => [ 'shape' => 'LogLevel', 'locationName' => 'logLevel', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'PipelinesRunningCount' => [ 'shape' => '__integer', 'locationName' => 'pipelinesRunningCount', ], 'RoleArn' => [ 'shape' => '__string', 'locationName' => 'roleArn', ], 'State' => [ 'shape' => 'ChannelState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], ], ], 'DescribeInputRequest' => [ 'type' => 'structure', 'members' => [ 'InputId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'inputId', ], ], 'required' => [ 'InputId', ], ], 'DescribeInputResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'AttachedChannels' => [ 'shape' => '__listOf__string', 'locationName' => 'attachedChannels', ], 'Destinations' => [ 'shape' => '__listOfInputDestination', 'locationName' => 'destinations', ], 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], 'InputClass' => [ 'shape' => 'InputClass', 'locationName' => 'inputClass', ], 'MediaConnectFlows' => [ 'shape' => '__listOfMediaConnectFlow', 'locationName' => 'mediaConnectFlows', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'RoleArn' => [ 'shape' => '__string', 'locationName' => 'roleArn', ], 'SecurityGroups' => [ 'shape' => '__listOf__string', 'locationName' => 'securityGroups', ], 'Sources' => [ 'shape' => '__listOfInputSource', 'locationName' => 'sources', ], 'State' => [ 'shape' => 'InputState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], 'Type' => [ 'shape' => 'InputType', 'locationName' => 'type', ], ], ], 'DescribeInputSecurityGroupRequest' => [ 'type' => 'structure', 'members' => [ 'InputSecurityGroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'inputSecurityGroupId', ], ], 'required' => [ 'InputSecurityGroupId', ], ], 'DescribeInputSecurityGroupResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], 'Inputs' => [ 'shape' => '__listOf__string', 'locationName' => 'inputs', ], 'State' => [ 'shape' => 'InputSecurityGroupState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], 'WhitelistRules' => [ 'shape' => '__listOfInputWhitelistRule', 'locationName' => 'whitelistRules', ], ], ], 'DescribeOfferingRequest' => [ 'type' => 'structure', 'members' => [ 'OfferingId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'offeringId', ], ], 'required' => [ 'OfferingId', ], ], 'DescribeOfferingResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'CurrencyCode' => [ 'shape' => '__string', 'locationName' => 'currencyCode', ], 'Duration' => [ 'shape' => '__integer', 'locationName' => 'duration', ], 'DurationUnits' => [ 'shape' => 'OfferingDurationUnits', 'locationName' => 'durationUnits', ], 'FixedPrice' => [ 'shape' => '__double', 'locationName' => 'fixedPrice', ], 'OfferingDescription' => [ 'shape' => '__string', 'locationName' => 'offeringDescription', ], 'OfferingId' => [ 'shape' => '__string', 'locationName' => 'offeringId', ], 'OfferingType' => [ 'shape' => 'OfferingType', 'locationName' => 'offeringType', ], 'Region' => [ 'shape' => '__string', 'locationName' => 'region', ], 'ResourceSpecification' => [ 'shape' => 'ReservationResourceSpecification', 'locationName' => 'resourceSpecification', ], 'UsagePrice' => [ 'shape' => '__double', 'locationName' => 'usagePrice', ], ], ], 'DescribeReservationRequest' => [ 'type' => 'structure', 'members' => [ 'ReservationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'reservationId', ], ], 'required' => [ 'ReservationId', ], ], 'DescribeReservationResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'Count' => [ 'shape' => '__integer', 'locationName' => 'count', ], 'CurrencyCode' => [ 'shape' => '__string', 'locationName' => 'currencyCode', ], 'Duration' => [ 'shape' => '__integer', 'locationName' => 'duration', ], 'DurationUnits' => [ 'shape' => 'OfferingDurationUnits', 'locationName' => 'durationUnits', ], 'End' => [ 'shape' => '__string', 'locationName' => 'end', ], 'FixedPrice' => [ 'shape' => '__double', 'locationName' => 'fixedPrice', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'OfferingDescription' => [ 'shape' => '__string', 'locationName' => 'offeringDescription', ], 'OfferingId' => [ 'shape' => '__string', 'locationName' => 'offeringId', ], 'OfferingType' => [ 'shape' => 'OfferingType', 'locationName' => 'offeringType', ], 'Region' => [ 'shape' => '__string', 'locationName' => 'region', ], 'ReservationId' => [ 'shape' => '__string', 'locationName' => 'reservationId', ], 'ResourceSpecification' => [ 'shape' => 'ReservationResourceSpecification', 'locationName' => 'resourceSpecification', ], 'Start' => [ 'shape' => '__string', 'locationName' => 'start', ], 'State' => [ 'shape' => 'ReservationState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], 'UsagePrice' => [ 'shape' => '__double', 'locationName' => 'usagePrice', ], ], ], 'DescribeScheduleRequest' => [ 'type' => 'structure', 'members' => [ 'ChannelId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'channelId', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], 'required' => [ 'ChannelId', ], ], 'DescribeScheduleResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], 'ScheduleActions' => [ 'shape' => '__listOfScheduleAction', 'locationName' => 'scheduleActions', ], ], ], 'DvbNitSettings' => [ 'type' => 'structure', 'members' => [ 'NetworkId' => [ 'shape' => '__integerMin0Max65536', 'locationName' => 'networkId', ], 'NetworkName' => [ 'shape' => '__stringMin1Max256', 'locationName' => 'networkName', ], 'RepInterval' => [ 'shape' => '__integerMin25Max10000', 'locationName' => 'repInterval', ], ], 'required' => [ 'NetworkName', 'NetworkId', ], ], 'DvbSdtOutputSdt' => [ 'type' => 'string', 'enum' => [ 'SDT_FOLLOW', 'SDT_FOLLOW_IF_PRESENT', 'SDT_MANUAL', 'SDT_NONE', ], ], 'DvbSdtSettings' => [ 'type' => 'structure', 'members' => [ 'OutputSdt' => [ 'shape' => 'DvbSdtOutputSdt', 'locationName' => 'outputSdt', ], 'RepInterval' => [ 'shape' => '__integerMin25Max2000', 'locationName' => 'repInterval', ], 'ServiceName' => [ 'shape' => '__stringMin1Max256', 'locationName' => 'serviceName', ], 'ServiceProviderName' => [ 'shape' => '__stringMin1Max256', 'locationName' => 'serviceProviderName', ], ], ], 'DvbSubDestinationAlignment' => [ 'type' => 'string', 'enum' => [ 'CENTERED', 'LEFT', 'SMART', ], ], 'DvbSubDestinationBackgroundColor' => [ 'type' => 'string', 'enum' => [ 'BLACK', 'NONE', 'WHITE', ], ], 'DvbSubDestinationFontColor' => [ 'type' => 'string', 'enum' => [ 'BLACK', 'BLUE', 'GREEN', 'RED', 'WHITE', 'YELLOW', ], ], 'DvbSubDestinationOutlineColor' => [ 'type' => 'string', 'enum' => [ 'BLACK', 'BLUE', 'GREEN', 'RED', 'WHITE', 'YELLOW', ], ], 'DvbSubDestinationSettings' => [ 'type' => 'structure', 'members' => [ 'Alignment' => [ 'shape' => 'DvbSubDestinationAlignment', 'locationName' => 'alignment', ], 'BackgroundColor' => [ 'shape' => 'DvbSubDestinationBackgroundColor', 'locationName' => 'backgroundColor', ], 'BackgroundOpacity' => [ 'shape' => '__integerMin0Max255', 'locationName' => 'backgroundOpacity', ], 'Font' => [ 'shape' => 'InputLocation', 'locationName' => 'font', ], 'FontColor' => [ 'shape' => 'DvbSubDestinationFontColor', 'locationName' => 'fontColor', ], 'FontOpacity' => [ 'shape' => '__integerMin0Max255', 'locationName' => 'fontOpacity', ], 'FontResolution' => [ 'shape' => '__integerMin96Max600', 'locationName' => 'fontResolution', ], 'FontSize' => [ 'shape' => '__string', 'locationName' => 'fontSize', ], 'OutlineColor' => [ 'shape' => 'DvbSubDestinationOutlineColor', 'locationName' => 'outlineColor', ], 'OutlineSize' => [ 'shape' => '__integerMin0Max10', 'locationName' => 'outlineSize', ], 'ShadowColor' => [ 'shape' => 'DvbSubDestinationShadowColor', 'locationName' => 'shadowColor', ], 'ShadowOpacity' => [ 'shape' => '__integerMin0Max255', 'locationName' => 'shadowOpacity', ], 'ShadowXOffset' => [ 'shape' => '__integer', 'locationName' => 'shadowXOffset', ], 'ShadowYOffset' => [ 'shape' => '__integer', 'locationName' => 'shadowYOffset', ], 'TeletextGridControl' => [ 'shape' => 'DvbSubDestinationTeletextGridControl', 'locationName' => 'teletextGridControl', ], 'XPosition' => [ 'shape' => '__integerMin0', 'locationName' => 'xPosition', ], 'YPosition' => [ 'shape' => '__integerMin0', 'locationName' => 'yPosition', ], ], ], 'DvbSubDestinationShadowColor' => [ 'type' => 'string', 'enum' => [ 'BLACK', 'NONE', 'WHITE', ], ], 'DvbSubDestinationTeletextGridControl' => [ 'type' => 'string', 'enum' => [ 'FIXED', 'SCALED', ], ], 'DvbSubSourceSettings' => [ 'type' => 'structure', 'members' => [ 'Pid' => [ 'shape' => '__integerMin1', 'locationName' => 'pid', ], ], ], 'DvbTdtSettings' => [ 'type' => 'structure', 'members' => [ 'RepInterval' => [ 'shape' => '__integerMin1000Max30000', 'locationName' => 'repInterval', ], ], ], 'Eac3AttenuationControl' => [ 'type' => 'string', 'enum' => [ 'ATTENUATE_3_DB', 'NONE', ], ], 'Eac3BitstreamMode' => [ 'type' => 'string', 'enum' => [ 'COMMENTARY', 'COMPLETE_MAIN', 'EMERGENCY', 'HEARING_IMPAIRED', 'VISUALLY_IMPAIRED', ], ], 'Eac3CodingMode' => [ 'type' => 'string', 'enum' => [ 'CODING_MODE_1_0', 'CODING_MODE_2_0', 'CODING_MODE_3_2', ], ], 'Eac3DcFilter' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'Eac3DrcLine' => [ 'type' => 'string', 'enum' => [ 'FILM_LIGHT', 'FILM_STANDARD', 'MUSIC_LIGHT', 'MUSIC_STANDARD', 'NONE', 'SPEECH', ], ], 'Eac3DrcRf' => [ 'type' => 'string', 'enum' => [ 'FILM_LIGHT', 'FILM_STANDARD', 'MUSIC_LIGHT', 'MUSIC_STANDARD', 'NONE', 'SPEECH', ], ], 'Eac3LfeControl' => [ 'type' => 'string', 'enum' => [ 'LFE', 'NO_LFE', ], ], 'Eac3LfeFilter' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'Eac3MetadataControl' => [ 'type' => 'string', 'enum' => [ 'FOLLOW_INPUT', 'USE_CONFIGURED', ], ], 'Eac3PassthroughControl' => [ 'type' => 'string', 'enum' => [ 'NO_PASSTHROUGH', 'WHEN_POSSIBLE', ], ], 'Eac3PhaseControl' => [ 'type' => 'string', 'enum' => [ 'NO_SHIFT', 'SHIFT_90_DEGREES', ], ], 'Eac3Settings' => [ 'type' => 'structure', 'members' => [ 'AttenuationControl' => [ 'shape' => 'Eac3AttenuationControl', 'locationName' => 'attenuationControl', ], 'Bitrate' => [ 'shape' => '__double', 'locationName' => 'bitrate', ], 'BitstreamMode' => [ 'shape' => 'Eac3BitstreamMode', 'locationName' => 'bitstreamMode', ], 'CodingMode' => [ 'shape' => 'Eac3CodingMode', 'locationName' => 'codingMode', ], 'DcFilter' => [ 'shape' => 'Eac3DcFilter', 'locationName' => 'dcFilter', ], 'Dialnorm' => [ 'shape' => '__integerMin1Max31', 'locationName' => 'dialnorm', ], 'DrcLine' => [ 'shape' => 'Eac3DrcLine', 'locationName' => 'drcLine', ], 'DrcRf' => [ 'shape' => 'Eac3DrcRf', 'locationName' => 'drcRf', ], 'LfeControl' => [ 'shape' => 'Eac3LfeControl', 'locationName' => 'lfeControl', ], 'LfeFilter' => [ 'shape' => 'Eac3LfeFilter', 'locationName' => 'lfeFilter', ], 'LoRoCenterMixLevel' => [ 'shape' => '__double', 'locationName' => 'loRoCenterMixLevel', ], 'LoRoSurroundMixLevel' => [ 'shape' => '__double', 'locationName' => 'loRoSurroundMixLevel', ], 'LtRtCenterMixLevel' => [ 'shape' => '__double', 'locationName' => 'ltRtCenterMixLevel', ], 'LtRtSurroundMixLevel' => [ 'shape' => '__double', 'locationName' => 'ltRtSurroundMixLevel', ], 'MetadataControl' => [ 'shape' => 'Eac3MetadataControl', 'locationName' => 'metadataControl', ], 'PassthroughControl' => [ 'shape' => 'Eac3PassthroughControl', 'locationName' => 'passthroughControl', ], 'PhaseControl' => [ 'shape' => 'Eac3PhaseControl', 'locationName' => 'phaseControl', ], 'StereoDownmix' => [ 'shape' => 'Eac3StereoDownmix', 'locationName' => 'stereoDownmix', ], 'SurroundExMode' => [ 'shape' => 'Eac3SurroundExMode', 'locationName' => 'surroundExMode', ], 'SurroundMode' => [ 'shape' => 'Eac3SurroundMode', 'locationName' => 'surroundMode', ], ], ], 'Eac3StereoDownmix' => [ 'type' => 'string', 'enum' => [ 'DPL2', 'LO_RO', 'LT_RT', 'NOT_INDICATED', ], ], 'Eac3SurroundExMode' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', 'NOT_INDICATED', ], ], 'Eac3SurroundMode' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', 'NOT_INDICATED', ], ], 'EmbeddedConvert608To708' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'UPCONVERT', ], ], 'EmbeddedDestinationSettings' => [ 'type' => 'structure', 'members' => [], ], 'EmbeddedPlusScte20DestinationSettings' => [ 'type' => 'structure', 'members' => [], ], 'EmbeddedScte20Detection' => [ 'type' => 'string', 'enum' => [ 'AUTO', 'OFF', ], ], 'EmbeddedSourceSettings' => [ 'type' => 'structure', 'members' => [ 'Convert608To708' => [ 'shape' => 'EmbeddedConvert608To708', 'locationName' => 'convert608To708', ], 'Scte20Detection' => [ 'shape' => 'EmbeddedScte20Detection', 'locationName' => 'scte20Detection', ], 'Source608ChannelNumber' => [ 'shape' => '__integerMin1Max4', 'locationName' => 'source608ChannelNumber', ], 'Source608TrackNumber' => [ 'shape' => '__integerMin1Max5', 'locationName' => 'source608TrackNumber', ], ], ], 'Empty' => [ 'type' => 'structure', 'members' => [], ], 'EncoderSettings' => [ 'type' => 'structure', 'members' => [ 'AudioDescriptions' => [ 'shape' => '__listOfAudioDescription', 'locationName' => 'audioDescriptions', ], 'AvailBlanking' => [ 'shape' => 'AvailBlanking', 'locationName' => 'availBlanking', ], 'AvailConfiguration' => [ 'shape' => 'AvailConfiguration', 'locationName' => 'availConfiguration', ], 'BlackoutSlate' => [ 'shape' => 'BlackoutSlate', 'locationName' => 'blackoutSlate', ], 'CaptionDescriptions' => [ 'shape' => '__listOfCaptionDescription', 'locationName' => 'captionDescriptions', ], 'GlobalConfiguration' => [ 'shape' => 'GlobalConfiguration', 'locationName' => 'globalConfiguration', ], 'OutputGroups' => [ 'shape' => '__listOfOutputGroup', 'locationName' => 'outputGroups', ], 'TimecodeConfig' => [ 'shape' => 'TimecodeConfig', 'locationName' => 'timecodeConfig', ], 'VideoDescriptions' => [ 'shape' => '__listOfVideoDescription', 'locationName' => 'videoDescriptions', ], ], 'required' => [ 'VideoDescriptions', 'AudioDescriptions', 'OutputGroups', 'TimecodeConfig', ], ], 'FecOutputIncludeFec' => [ 'type' => 'string', 'enum' => [ 'COLUMN', 'COLUMN_AND_ROW', ], ], 'FecOutputSettings' => [ 'type' => 'structure', 'members' => [ 'ColumnDepth' => [ 'shape' => '__integerMin4Max20', 'locationName' => 'columnDepth', ], 'IncludeFec' => [ 'shape' => 'FecOutputIncludeFec', 'locationName' => 'includeFec', ], 'RowLength' => [ 'shape' => '__integerMin1Max20', 'locationName' => 'rowLength', ], ], ], 'FixedAfd' => [ 'type' => 'string', 'enum' => [ 'AFD_0000', 'AFD_0010', 'AFD_0011', 'AFD_0100', 'AFD_1000', 'AFD_1001', 'AFD_1010', 'AFD_1011', 'AFD_1101', 'AFD_1110', 'AFD_1111', ], ], 'FixedModeScheduleActionStartSettings' => [ 'type' => 'structure', 'members' => [ 'Time' => [ 'shape' => '__string', 'locationName' => 'time', ], ], 'required' => [ 'Time', ], ], 'FollowModeScheduleActionStartSettings' => [ 'type' => 'structure', 'members' => [ 'FollowPoint' => [ 'shape' => 'FollowPoint', 'locationName' => 'followPoint', ], 'ReferenceActionName' => [ 'shape' => '__string', 'locationName' => 'referenceActionName', ], ], 'required' => [ 'ReferenceActionName', 'FollowPoint', ], ], 'FollowPoint' => [ 'type' => 'string', 'enum' => [ 'END', 'START', ], ], 'ForbiddenException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 403, ], ], 'FrameCaptureGroupSettings' => [ 'type' => 'structure', 'members' => [ 'Destination' => [ 'shape' => 'OutputLocationRef', 'locationName' => 'destination', ], ], 'required' => [ 'Destination', ], ], 'FrameCaptureOutputSettings' => [ 'type' => 'structure', 'members' => [ 'NameModifier' => [ 'shape' => '__string', 'locationName' => 'nameModifier', ], ], ], 'FrameCaptureSettings' => [ 'type' => 'structure', 'members' => [ 'CaptureInterval' => [ 'shape' => '__integerMin1Max3600', 'locationName' => 'captureInterval', ], ], 'required' => [ 'CaptureInterval', ], ], 'GatewayTimeoutException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 504, ], ], 'GlobalConfiguration' => [ 'type' => 'structure', 'members' => [ 'InitialAudioGain' => [ 'shape' => '__integerMinNegative60Max60', 'locationName' => 'initialAudioGain', ], 'InputEndAction' => [ 'shape' => 'GlobalConfigurationInputEndAction', 'locationName' => 'inputEndAction', ], 'InputLossBehavior' => [ 'shape' => 'InputLossBehavior', 'locationName' => 'inputLossBehavior', ], 'OutputLockingMode' => [ 'shape' => 'GlobalConfigurationOutputLockingMode', 'locationName' => 'outputLockingMode', ], 'OutputTimingSource' => [ 'shape' => 'GlobalConfigurationOutputTimingSource', 'locationName' => 'outputTimingSource', ], 'SupportLowFramerateInputs' => [ 'shape' => 'GlobalConfigurationLowFramerateInputs', 'locationName' => 'supportLowFramerateInputs', ], ], ], 'GlobalConfigurationInputEndAction' => [ 'type' => 'string', 'enum' => [ 'NONE', 'SWITCH_AND_LOOP_INPUTS', ], ], 'GlobalConfigurationLowFramerateInputs' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'GlobalConfigurationOutputLockingMode' => [ 'type' => 'string', 'enum' => [ 'EPOCH_LOCKING', 'PIPELINE_LOCKING', ], ], 'GlobalConfigurationOutputTimingSource' => [ 'type' => 'string', 'enum' => [ 'INPUT_CLOCK', 'SYSTEM_CLOCK', ], ], 'H264AdaptiveQuantization' => [ 'type' => 'string', 'enum' => [ 'HIGH', 'HIGHER', 'LOW', 'MAX', 'MEDIUM', 'OFF', ], ], 'H264ColorMetadata' => [ 'type' => 'string', 'enum' => [ 'IGNORE', 'INSERT', ], ], 'H264EntropyEncoding' => [ 'type' => 'string', 'enum' => [ 'CABAC', 'CAVLC', ], ], 'H264FlickerAq' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H264FramerateControl' => [ 'type' => 'string', 'enum' => [ 'INITIALIZE_FROM_SOURCE', 'SPECIFIED', ], ], 'H264GopBReference' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H264GopSizeUnits' => [ 'type' => 'string', 'enum' => [ 'FRAMES', 'SECONDS', ], ], 'H264Level' => [ 'type' => 'string', 'enum' => [ 'H264_LEVEL_1', 'H264_LEVEL_1_1', 'H264_LEVEL_1_2', 'H264_LEVEL_1_3', 'H264_LEVEL_2', 'H264_LEVEL_2_1', 'H264_LEVEL_2_2', 'H264_LEVEL_3', 'H264_LEVEL_3_1', 'H264_LEVEL_3_2', 'H264_LEVEL_4', 'H264_LEVEL_4_1', 'H264_LEVEL_4_2', 'H264_LEVEL_5', 'H264_LEVEL_5_1', 'H264_LEVEL_5_2', 'H264_LEVEL_AUTO', ], ], 'H264LookAheadRateControl' => [ 'type' => 'string', 'enum' => [ 'HIGH', 'LOW', 'MEDIUM', ], ], 'H264ParControl' => [ 'type' => 'string', 'enum' => [ 'INITIALIZE_FROM_SOURCE', 'SPECIFIED', ], ], 'H264Profile' => [ 'type' => 'string', 'enum' => [ 'BASELINE', 'HIGH', 'HIGH_10BIT', 'HIGH_422', 'HIGH_422_10BIT', 'MAIN', ], ], 'H264RateControlMode' => [ 'type' => 'string', 'enum' => [ 'CBR', 'QVBR', 'VBR', ], ], 'H264ScanType' => [ 'type' => 'string', 'enum' => [ 'INTERLACED', 'PROGRESSIVE', ], ], 'H264SceneChangeDetect' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H264Settings' => [ 'type' => 'structure', 'members' => [ 'AdaptiveQuantization' => [ 'shape' => 'H264AdaptiveQuantization', 'locationName' => 'adaptiveQuantization', ], 'AfdSignaling' => [ 'shape' => 'AfdSignaling', 'locationName' => 'afdSignaling', ], 'Bitrate' => [ 'shape' => '__integerMin1000', 'locationName' => 'bitrate', ], 'BufFillPct' => [ 'shape' => '__integerMin0Max100', 'locationName' => 'bufFillPct', ], 'BufSize' => [ 'shape' => '__integerMin0', 'locationName' => 'bufSize', ], 'ColorMetadata' => [ 'shape' => 'H264ColorMetadata', 'locationName' => 'colorMetadata', ], 'EntropyEncoding' => [ 'shape' => 'H264EntropyEncoding', 'locationName' => 'entropyEncoding', ], 'FixedAfd' => [ 'shape' => 'FixedAfd', 'locationName' => 'fixedAfd', ], 'FlickerAq' => [ 'shape' => 'H264FlickerAq', 'locationName' => 'flickerAq', ], 'FramerateControl' => [ 'shape' => 'H264FramerateControl', 'locationName' => 'framerateControl', ], 'FramerateDenominator' => [ 'shape' => '__integerMin1', 'locationName' => 'framerateDenominator', ], 'FramerateNumerator' => [ 'shape' => '__integerMin1', 'locationName' => 'framerateNumerator', ], 'GopBReference' => [ 'shape' => 'H264GopBReference', 'locationName' => 'gopBReference', ], 'GopClosedCadence' => [ 'shape' => '__integerMin0', 'locationName' => 'gopClosedCadence', ], 'GopNumBFrames' => [ 'shape' => '__integerMin0Max7', 'locationName' => 'gopNumBFrames', ], 'GopSize' => [ 'shape' => '__doubleMin1', 'locationName' => 'gopSize', ], 'GopSizeUnits' => [ 'shape' => 'H264GopSizeUnits', 'locationName' => 'gopSizeUnits', ], 'Level' => [ 'shape' => 'H264Level', 'locationName' => 'level', ], 'LookAheadRateControl' => [ 'shape' => 'H264LookAheadRateControl', 'locationName' => 'lookAheadRateControl', ], 'MaxBitrate' => [ 'shape' => '__integerMin1000', 'locationName' => 'maxBitrate', ], 'MinIInterval' => [ 'shape' => '__integerMin0Max30', 'locationName' => 'minIInterval', ], 'NumRefFrames' => [ 'shape' => '__integerMin1Max6', 'locationName' => 'numRefFrames', ], 'ParControl' => [ 'shape' => 'H264ParControl', 'locationName' => 'parControl', ], 'ParDenominator' => [ 'shape' => '__integerMin1', 'locationName' => 'parDenominator', ], 'ParNumerator' => [ 'shape' => '__integer', 'locationName' => 'parNumerator', ], 'Profile' => [ 'shape' => 'H264Profile', 'locationName' => 'profile', ], 'QvbrQualityLevel' => [ 'shape' => '__integerMin1Max10', 'locationName' => 'qvbrQualityLevel', ], 'RateControlMode' => [ 'shape' => 'H264RateControlMode', 'locationName' => 'rateControlMode', ], 'ScanType' => [ 'shape' => 'H264ScanType', 'locationName' => 'scanType', ], 'SceneChangeDetect' => [ 'shape' => 'H264SceneChangeDetect', 'locationName' => 'sceneChangeDetect', ], 'Slices' => [ 'shape' => '__integerMin1Max32', 'locationName' => 'slices', ], 'Softness' => [ 'shape' => '__integerMin0Max128', 'locationName' => 'softness', ], 'SpatialAq' => [ 'shape' => 'H264SpatialAq', 'locationName' => 'spatialAq', ], 'SubgopLength' => [ 'shape' => 'H264SubGopLength', 'locationName' => 'subgopLength', ], 'Syntax' => [ 'shape' => 'H264Syntax', 'locationName' => 'syntax', ], 'TemporalAq' => [ 'shape' => 'H264TemporalAq', 'locationName' => 'temporalAq', ], 'TimecodeInsertion' => [ 'shape' => 'H264TimecodeInsertionBehavior', 'locationName' => 'timecodeInsertion', ], ], ], 'H264SpatialAq' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H264SubGopLength' => [ 'type' => 'string', 'enum' => [ 'DYNAMIC', 'FIXED', ], ], 'H264Syntax' => [ 'type' => 'string', 'enum' => [ 'DEFAULT', 'RP2027', ], ], 'H264TemporalAq' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'H264TimecodeInsertionBehavior' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'PIC_TIMING_SEI', ], ], 'HlsAdMarkers' => [ 'type' => 'string', 'enum' => [ 'ADOBE', 'ELEMENTAL', 'ELEMENTAL_SCTE35', ], ], 'HlsAkamaiHttpTransferMode' => [ 'type' => 'string', 'enum' => [ 'CHUNKED', 'NON_CHUNKED', ], ], 'HlsAkamaiSettings' => [ 'type' => 'structure', 'members' => [ 'ConnectionRetryInterval' => [ 'shape' => '__integerMin0', 'locationName' => 'connectionRetryInterval', ], 'FilecacheDuration' => [ 'shape' => '__integerMin0Max600', 'locationName' => 'filecacheDuration', ], 'HttpTransferMode' => [ 'shape' => 'HlsAkamaiHttpTransferMode', 'locationName' => 'httpTransferMode', ], 'NumRetries' => [ 'shape' => '__integerMin0', 'locationName' => 'numRetries', ], 'RestartDelay' => [ 'shape' => '__integerMin0Max15', 'locationName' => 'restartDelay', ], 'Salt' => [ 'shape' => '__string', 'locationName' => 'salt', ], 'Token' => [ 'shape' => '__string', 'locationName' => 'token', ], ], ], 'HlsBasicPutSettings' => [ 'type' => 'structure', 'members' => [ 'ConnectionRetryInterval' => [ 'shape' => '__integerMin0', 'locationName' => 'connectionRetryInterval', ], 'FilecacheDuration' => [ 'shape' => '__integerMin0Max600', 'locationName' => 'filecacheDuration', ], 'NumRetries' => [ 'shape' => '__integerMin0', 'locationName' => 'numRetries', ], 'RestartDelay' => [ 'shape' => '__integerMin0Max15', 'locationName' => 'restartDelay', ], ], ], 'HlsCaptionLanguageSetting' => [ 'type' => 'string', 'enum' => [ 'INSERT', 'NONE', 'OMIT', ], ], 'HlsCdnSettings' => [ 'type' => 'structure', 'members' => [ 'HlsAkamaiSettings' => [ 'shape' => 'HlsAkamaiSettings', 'locationName' => 'hlsAkamaiSettings', ], 'HlsBasicPutSettings' => [ 'shape' => 'HlsBasicPutSettings', 'locationName' => 'hlsBasicPutSettings', ], 'HlsMediaStoreSettings' => [ 'shape' => 'HlsMediaStoreSettings', 'locationName' => 'hlsMediaStoreSettings', ], 'HlsWebdavSettings' => [ 'shape' => 'HlsWebdavSettings', 'locationName' => 'hlsWebdavSettings', ], ], ], 'HlsClientCache' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'HlsCodecSpecification' => [ 'type' => 'string', 'enum' => [ 'RFC_4281', 'RFC_6381', ], ], 'HlsDirectoryStructure' => [ 'type' => 'string', 'enum' => [ 'SINGLE_DIRECTORY', 'SUBDIRECTORY_PER_STREAM', ], ], 'HlsEncryptionType' => [ 'type' => 'string', 'enum' => [ 'AES128', 'SAMPLE_AES', ], ], 'HlsGroupSettings' => [ 'type' => 'structure', 'members' => [ 'AdMarkers' => [ 'shape' => '__listOfHlsAdMarkers', 'locationName' => 'adMarkers', ], 'BaseUrlContent' => [ 'shape' => '__string', 'locationName' => 'baseUrlContent', ], 'BaseUrlManifest' => [ 'shape' => '__string', 'locationName' => 'baseUrlManifest', ], 'CaptionLanguageMappings' => [ 'shape' => '__listOfCaptionLanguageMapping', 'locationName' => 'captionLanguageMappings', ], 'CaptionLanguageSetting' => [ 'shape' => 'HlsCaptionLanguageSetting', 'locationName' => 'captionLanguageSetting', ], 'ClientCache' => [ 'shape' => 'HlsClientCache', 'locationName' => 'clientCache', ], 'CodecSpecification' => [ 'shape' => 'HlsCodecSpecification', 'locationName' => 'codecSpecification', ], 'ConstantIv' => [ 'shape' => '__stringMin32Max32', 'locationName' => 'constantIv', ], 'Destination' => [ 'shape' => 'OutputLocationRef', 'locationName' => 'destination', ], 'DirectoryStructure' => [ 'shape' => 'HlsDirectoryStructure', 'locationName' => 'directoryStructure', ], 'EncryptionType' => [ 'shape' => 'HlsEncryptionType', 'locationName' => 'encryptionType', ], 'HlsCdnSettings' => [ 'shape' => 'HlsCdnSettings', 'locationName' => 'hlsCdnSettings', ], 'IFrameOnlyPlaylists' => [ 'shape' => 'IFrameOnlyPlaylistType', 'locationName' => 'iFrameOnlyPlaylists', ], 'IndexNSegments' => [ 'shape' => '__integerMin3', 'locationName' => 'indexNSegments', ], 'InputLossAction' => [ 'shape' => 'InputLossActionForHlsOut', 'locationName' => 'inputLossAction', ], 'IvInManifest' => [ 'shape' => 'HlsIvInManifest', 'locationName' => 'ivInManifest', ], 'IvSource' => [ 'shape' => 'HlsIvSource', 'locationName' => 'ivSource', ], 'KeepSegments' => [ 'shape' => '__integerMin1', 'locationName' => 'keepSegments', ], 'KeyFormat' => [ 'shape' => '__string', 'locationName' => 'keyFormat', ], 'KeyFormatVersions' => [ 'shape' => '__string', 'locationName' => 'keyFormatVersions', ], 'KeyProviderSettings' => [ 'shape' => 'KeyProviderSettings', 'locationName' => 'keyProviderSettings', ], 'ManifestCompression' => [ 'shape' => 'HlsManifestCompression', 'locationName' => 'manifestCompression', ], 'ManifestDurationFormat' => [ 'shape' => 'HlsManifestDurationFormat', 'locationName' => 'manifestDurationFormat', ], 'MinSegmentLength' => [ 'shape' => '__integerMin0', 'locationName' => 'minSegmentLength', ], 'Mode' => [ 'shape' => 'HlsMode', 'locationName' => 'mode', ], 'OutputSelection' => [ 'shape' => 'HlsOutputSelection', 'locationName' => 'outputSelection', ], 'ProgramDateTime' => [ 'shape' => 'HlsProgramDateTime', 'locationName' => 'programDateTime', ], 'ProgramDateTimePeriod' => [ 'shape' => '__integerMin0Max3600', 'locationName' => 'programDateTimePeriod', ], 'RedundantManifest' => [ 'shape' => 'HlsRedundantManifest', 'locationName' => 'redundantManifest', ], 'SegmentLength' => [ 'shape' => '__integerMin1', 'locationName' => 'segmentLength', ], 'SegmentationMode' => [ 'shape' => 'HlsSegmentationMode', 'locationName' => 'segmentationMode', ], 'SegmentsPerSubdirectory' => [ 'shape' => '__integerMin1', 'locationName' => 'segmentsPerSubdirectory', ], 'StreamInfResolution' => [ 'shape' => 'HlsStreamInfResolution', 'locationName' => 'streamInfResolution', ], 'TimedMetadataId3Frame' => [ 'shape' => 'HlsTimedMetadataId3Frame', 'locationName' => 'timedMetadataId3Frame', ], 'TimedMetadataId3Period' => [ 'shape' => '__integerMin0', 'locationName' => 'timedMetadataId3Period', ], 'TimestampDeltaMilliseconds' => [ 'shape' => '__integerMin0', 'locationName' => 'timestampDeltaMilliseconds', ], 'TsFileMode' => [ 'shape' => 'HlsTsFileMode', 'locationName' => 'tsFileMode', ], ], 'required' => [ 'Destination', ], ], 'HlsInputSettings' => [ 'type' => 'structure', 'members' => [ 'Bandwidth' => [ 'shape' => '__integerMin0', 'locationName' => 'bandwidth', ], 'BufferSegments' => [ 'shape' => '__integerMin0', 'locationName' => 'bufferSegments', ], 'Retries' => [ 'shape' => '__integerMin0', 'locationName' => 'retries', ], 'RetryInterval' => [ 'shape' => '__integerMin0', 'locationName' => 'retryInterval', ], ], ], 'HlsIvInManifest' => [ 'type' => 'string', 'enum' => [ 'EXCLUDE', 'INCLUDE', ], ], 'HlsIvSource' => [ 'type' => 'string', 'enum' => [ 'EXPLICIT', 'FOLLOWS_SEGMENT_NUMBER', ], ], 'HlsManifestCompression' => [ 'type' => 'string', 'enum' => [ 'GZIP', 'NONE', ], ], 'HlsManifestDurationFormat' => [ 'type' => 'string', 'enum' => [ 'FLOATING_POINT', 'INTEGER', ], ], 'HlsMediaStoreSettings' => [ 'type' => 'structure', 'members' => [ 'ConnectionRetryInterval' => [ 'shape' => '__integerMin0', 'locationName' => 'connectionRetryInterval', ], 'FilecacheDuration' => [ 'shape' => '__integerMin0Max600', 'locationName' => 'filecacheDuration', ], 'MediaStoreStorageClass' => [ 'shape' => 'HlsMediaStoreStorageClass', 'locationName' => 'mediaStoreStorageClass', ], 'NumRetries' => [ 'shape' => '__integerMin0', 'locationName' => 'numRetries', ], 'RestartDelay' => [ 'shape' => '__integerMin0Max15', 'locationName' => 'restartDelay', ], ], ], 'HlsMediaStoreStorageClass' => [ 'type' => 'string', 'enum' => [ 'TEMPORAL', ], ], 'HlsMode' => [ 'type' => 'string', 'enum' => [ 'LIVE', 'VOD', ], ], 'HlsOutputSelection' => [ 'type' => 'string', 'enum' => [ 'MANIFESTS_AND_SEGMENTS', 'SEGMENTS_ONLY', ], ], 'HlsOutputSettings' => [ 'type' => 'structure', 'members' => [ 'HlsSettings' => [ 'shape' => 'HlsSettings', 'locationName' => 'hlsSettings', ], 'NameModifier' => [ 'shape' => '__stringMin1', 'locationName' => 'nameModifier', ], 'SegmentModifier' => [ 'shape' => '__string', 'locationName' => 'segmentModifier', ], ], 'required' => [ 'HlsSettings', ], ], 'HlsProgramDateTime' => [ 'type' => 'string', 'enum' => [ 'EXCLUDE', 'INCLUDE', ], ], 'HlsRedundantManifest' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'HlsSegmentationMode' => [ 'type' => 'string', 'enum' => [ 'USE_INPUT_SEGMENTATION', 'USE_SEGMENT_DURATION', ], ], 'HlsSettings' => [ 'type' => 'structure', 'members' => [ 'AudioOnlyHlsSettings' => [ 'shape' => 'AudioOnlyHlsSettings', 'locationName' => 'audioOnlyHlsSettings', ], 'StandardHlsSettings' => [ 'shape' => 'StandardHlsSettings', 'locationName' => 'standardHlsSettings', ], ], ], 'HlsStreamInfResolution' => [ 'type' => 'string', 'enum' => [ 'EXCLUDE', 'INCLUDE', ], ], 'HlsTimedMetadataId3Frame' => [ 'type' => 'string', 'enum' => [ 'NONE', 'PRIV', 'TDRL', ], ], 'HlsTimedMetadataScheduleActionSettings' => [ 'type' => 'structure', 'members' => [ 'Id3' => [ 'shape' => '__string', 'locationName' => 'id3', ], ], 'required' => [ 'Id3', ], ], 'HlsTsFileMode' => [ 'type' => 'string', 'enum' => [ 'SEGMENTED_FILES', 'SINGLE_FILE', ], ], 'HlsWebdavHttpTransferMode' => [ 'type' => 'string', 'enum' => [ 'CHUNKED', 'NON_CHUNKED', ], ], 'HlsWebdavSettings' => [ 'type' => 'structure', 'members' => [ 'ConnectionRetryInterval' => [ 'shape' => '__integerMin0', 'locationName' => 'connectionRetryInterval', ], 'FilecacheDuration' => [ 'shape' => '__integerMin0Max600', 'locationName' => 'filecacheDuration', ], 'HttpTransferMode' => [ 'shape' => 'HlsWebdavHttpTransferMode', 'locationName' => 'httpTransferMode', ], 'NumRetries' => [ 'shape' => '__integerMin0', 'locationName' => 'numRetries', ], 'RestartDelay' => [ 'shape' => '__integerMin0Max15', 'locationName' => 'restartDelay', ], ], ], 'IFrameOnlyPlaylistType' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'STANDARD', ], ], 'Input' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'AttachedChannels' => [ 'shape' => '__listOf__string', 'locationName' => 'attachedChannels', ], 'Destinations' => [ 'shape' => '__listOfInputDestination', 'locationName' => 'destinations', ], 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], 'InputClass' => [ 'shape' => 'InputClass', 'locationName' => 'inputClass', ], 'MediaConnectFlows' => [ 'shape' => '__listOfMediaConnectFlow', 'locationName' => 'mediaConnectFlows', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'RoleArn' => [ 'shape' => '__string', 'locationName' => 'roleArn', ], 'SecurityGroups' => [ 'shape' => '__listOf__string', 'locationName' => 'securityGroups', ], 'Sources' => [ 'shape' => '__listOfInputSource', 'locationName' => 'sources', ], 'State' => [ 'shape' => 'InputState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], 'Type' => [ 'shape' => 'InputType', 'locationName' => 'type', ], ], ], 'InputAttachment' => [ 'type' => 'structure', 'members' => [ 'InputAttachmentName' => [ 'shape' => '__string', 'locationName' => 'inputAttachmentName', ], 'InputId' => [ 'shape' => '__string', 'locationName' => 'inputId', ], 'InputSettings' => [ 'shape' => 'InputSettings', 'locationName' => 'inputSettings', ], ], ], 'InputChannelLevel' => [ 'type' => 'structure', 'members' => [ 'Gain' => [ 'shape' => '__integerMinNegative60Max6', 'locationName' => 'gain', ], 'InputChannel' => [ 'shape' => '__integerMin0Max15', 'locationName' => 'inputChannel', ], ], 'required' => [ 'InputChannel', 'Gain', ], ], 'InputClass' => [ 'type' => 'string', 'enum' => [ 'STANDARD', 'SINGLE_PIPELINE', ], ], 'InputCodec' => [ 'type' => 'string', 'enum' => [ 'MPEG2', 'AVC', 'HEVC', ], ], 'InputDeblockFilter' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'InputDenoiseFilter' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'InputDestination' => [ 'type' => 'structure', 'members' => [ 'Ip' => [ 'shape' => '__string', 'locationName' => 'ip', ], 'Port' => [ 'shape' => '__string', 'locationName' => 'port', ], 'Url' => [ 'shape' => '__string', 'locationName' => 'url', ], 'Vpc' => [ 'shape' => 'InputDestinationVpc', 'locationName' => 'vpc', ], ], ], 'InputDestinationRequest' => [ 'type' => 'structure', 'members' => [ 'StreamName' => [ 'shape' => '__string', 'locationName' => 'streamName', ], ], ], 'InputDestinationVpc' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => '__string', 'locationName' => 'availabilityZone', ], 'NetworkInterfaceId' => [ 'shape' => '__string', 'locationName' => 'networkInterfaceId', ], ], ], 'InputFilter' => [ 'type' => 'string', 'enum' => [ 'AUTO', 'DISABLED', 'FORCED', ], ], 'InputLocation' => [ 'type' => 'structure', 'members' => [ 'PasswordParam' => [ 'shape' => '__string', 'locationName' => 'passwordParam', ], 'Uri' => [ 'shape' => '__string', 'locationName' => 'uri', ], 'Username' => [ 'shape' => '__string', 'locationName' => 'username', ], ], 'required' => [ 'Uri', ], ], 'InputLossActionForHlsOut' => [ 'type' => 'string', 'enum' => [ 'EMIT_OUTPUT', 'PAUSE_OUTPUT', ], ], 'InputLossActionForMsSmoothOut' => [ 'type' => 'string', 'enum' => [ 'EMIT_OUTPUT', 'PAUSE_OUTPUT', ], ], 'InputLossActionForRtmpOut' => [ 'type' => 'string', 'enum' => [ 'EMIT_OUTPUT', 'PAUSE_OUTPUT', ], ], 'InputLossActionForUdpOut' => [ 'type' => 'string', 'enum' => [ 'DROP_PROGRAM', 'DROP_TS', 'EMIT_PROGRAM', ], ], 'InputLossBehavior' => [ 'type' => 'structure', 'members' => [ 'BlackFrameMsec' => [ 'shape' => '__integerMin0Max1000000', 'locationName' => 'blackFrameMsec', ], 'InputLossImageColor' => [ 'shape' => '__stringMin6Max6', 'locationName' => 'inputLossImageColor', ], 'InputLossImageSlate' => [ 'shape' => 'InputLocation', 'locationName' => 'inputLossImageSlate', ], 'InputLossImageType' => [ 'shape' => 'InputLossImageType', 'locationName' => 'inputLossImageType', ], 'RepeatFrameMsec' => [ 'shape' => '__integerMin0Max1000000', 'locationName' => 'repeatFrameMsec', ], ], ], 'InputLossImageType' => [ 'type' => 'string', 'enum' => [ 'COLOR', 'SLATE', ], ], 'InputMaximumBitrate' => [ 'type' => 'string', 'enum' => [ 'MAX_10_MBPS', 'MAX_20_MBPS', 'MAX_50_MBPS', ], ], 'InputResolution' => [ 'type' => 'string', 'enum' => [ 'SD', 'HD', 'UHD', ], ], 'InputSecurityGroup' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], 'Inputs' => [ 'shape' => '__listOf__string', 'locationName' => 'inputs', ], 'State' => [ 'shape' => 'InputSecurityGroupState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], 'WhitelistRules' => [ 'shape' => '__listOfInputWhitelistRule', 'locationName' => 'whitelistRules', ], ], ], 'InputSecurityGroupState' => [ 'type' => 'string', 'enum' => [ 'IDLE', 'IN_USE', 'UPDATING', 'DELETED', ], ], 'InputSecurityGroupWhitelistRequest' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], 'WhitelistRules' => [ 'shape' => '__listOfInputWhitelistRuleCidr', 'locationName' => 'whitelistRules', ], ], ], 'InputSettings' => [ 'type' => 'structure', 'members' => [ 'AudioSelectors' => [ 'shape' => '__listOfAudioSelector', 'locationName' => 'audioSelectors', ], 'CaptionSelectors' => [ 'shape' => '__listOfCaptionSelector', 'locationName' => 'captionSelectors', ], 'DeblockFilter' => [ 'shape' => 'InputDeblockFilter', 'locationName' => 'deblockFilter', ], 'DenoiseFilter' => [ 'shape' => 'InputDenoiseFilter', 'locationName' => 'denoiseFilter', ], 'FilterStrength' => [ 'shape' => '__integerMin1Max5', 'locationName' => 'filterStrength', ], 'InputFilter' => [ 'shape' => 'InputFilter', 'locationName' => 'inputFilter', ], 'NetworkInputSettings' => [ 'shape' => 'NetworkInputSettings', 'locationName' => 'networkInputSettings', ], 'SourceEndBehavior' => [ 'shape' => 'InputSourceEndBehavior', 'locationName' => 'sourceEndBehavior', ], 'VideoSelector' => [ 'shape' => 'VideoSelector', 'locationName' => 'videoSelector', ], ], ], 'InputSource' => [ 'type' => 'structure', 'members' => [ 'PasswordParam' => [ 'shape' => '__string', 'locationName' => 'passwordParam', ], 'Url' => [ 'shape' => '__string', 'locationName' => 'url', ], 'Username' => [ 'shape' => '__string', 'locationName' => 'username', ], ], ], 'InputSourceEndBehavior' => [ 'type' => 'string', 'enum' => [ 'CONTINUE', 'LOOP', ], ], 'InputSourceRequest' => [ 'type' => 'structure', 'members' => [ 'PasswordParam' => [ 'shape' => '__string', 'locationName' => 'passwordParam', ], 'Url' => [ 'shape' => '__string', 'locationName' => 'url', ], 'Username' => [ 'shape' => '__string', 'locationName' => 'username', ], ], ], 'InputSpecification' => [ 'type' => 'structure', 'members' => [ 'Codec' => [ 'shape' => 'InputCodec', 'locationName' => 'codec', ], 'MaximumBitrate' => [ 'shape' => 'InputMaximumBitrate', 'locationName' => 'maximumBitrate', ], 'Resolution' => [ 'shape' => 'InputResolution', 'locationName' => 'resolution', ], ], ], 'InputState' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'DETACHED', 'ATTACHED', 'DELETING', 'DELETED', ], ], 'InputSwitchScheduleActionSettings' => [ 'type' => 'structure', 'members' => [ 'InputAttachmentNameReference' => [ 'shape' => '__string', 'locationName' => 'inputAttachmentNameReference', ], ], 'required' => [ 'InputAttachmentNameReference', ], ], 'InputType' => [ 'type' => 'string', 'enum' => [ 'UDP_PUSH', 'RTP_PUSH', 'RTMP_PUSH', 'RTMP_PULL', 'URL_PULL', 'MP4_FILE', 'MEDIACONNECT', ], ], 'InputVpcRequest' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupIds' => [ 'shape' => '__listOf__string', 'locationName' => 'securityGroupIds', ], 'SubnetIds' => [ 'shape' => '__listOf__string', 'locationName' => 'subnetIds', ], ], 'required' => [ 'SubnetIds', ], ], 'InputWhitelistRule' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => '__string', 'locationName' => 'cidr', ], ], ], 'InputWhitelistRuleCidr' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => '__string', 'locationName' => 'cidr', ], ], ], 'InternalServerErrorException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 500, ], ], 'InternalServiceError' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], ], 'InvalidRequest' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], ], 'KeyProviderSettings' => [ 'type' => 'structure', 'members' => [ 'StaticKeySettings' => [ 'shape' => 'StaticKeySettings', 'locationName' => 'staticKeySettings', ], ], ], 'LimitExceeded' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], ], 'ListChannelsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListChannelsResponse' => [ 'type' => 'structure', 'members' => [ 'Channels' => [ 'shape' => '__listOfChannelSummary', 'locationName' => 'channels', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'ListChannelsResultModel' => [ 'type' => 'structure', 'members' => [ 'Channels' => [ 'shape' => '__listOfChannelSummary', 'locationName' => 'channels', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'ListInputSecurityGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListInputSecurityGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'InputSecurityGroups' => [ 'shape' => '__listOfInputSecurityGroup', 'locationName' => 'inputSecurityGroups', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'ListInputSecurityGroupsResultModel' => [ 'type' => 'structure', 'members' => [ 'InputSecurityGroups' => [ 'shape' => '__listOfInputSecurityGroup', 'locationName' => 'inputSecurityGroups', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'ListInputsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListInputsResponse' => [ 'type' => 'structure', 'members' => [ 'Inputs' => [ 'shape' => '__listOfInput', 'locationName' => 'inputs', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'ListInputsResultModel' => [ 'type' => 'structure', 'members' => [ 'Inputs' => [ 'shape' => '__listOfInput', 'locationName' => 'inputs', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'ListOfferingsRequest' => [ 'type' => 'structure', 'members' => [ 'ChannelClass' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'channelClass', ], 'ChannelConfiguration' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'channelConfiguration', ], 'Codec' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'codec', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'MaximumBitrate' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'maximumBitrate', ], 'MaximumFramerate' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'maximumFramerate', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'Resolution' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'resolution', ], 'ResourceType' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'resourceType', ], 'SpecialFeature' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'specialFeature', ], 'VideoQuality' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'videoQuality', ], ], ], 'ListOfferingsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], 'Offerings' => [ 'shape' => '__listOfOffering', 'locationName' => 'offerings', ], ], ], 'ListOfferingsResultModel' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], 'Offerings' => [ 'shape' => '__listOfOffering', 'locationName' => 'offerings', ], ], ], 'ListReservationsRequest' => [ 'type' => 'structure', 'members' => [ 'ChannelClass' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'channelClass', ], 'Codec' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'codec', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'MaximumBitrate' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'maximumBitrate', ], 'MaximumFramerate' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'maximumFramerate', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'Resolution' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'resolution', ], 'ResourceType' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'resourceType', ], 'SpecialFeature' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'specialFeature', ], 'VideoQuality' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'videoQuality', ], ], ], 'ListReservationsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], 'Reservations' => [ 'shape' => '__listOfReservation', 'locationName' => 'reservations', ], ], ], 'ListReservationsResultModel' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], 'Reservations' => [ 'shape' => '__listOfReservation', 'locationName' => 'reservations', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'resource-arn', ], ], 'required' => [ 'ResourceArn', ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], ], ], 'LogLevel' => [ 'type' => 'string', 'enum' => [ 'ERROR', 'WARNING', 'INFO', 'DEBUG', 'DISABLED', ], ], 'M2tsAbsentInputAudioBehavior' => [ 'type' => 'string', 'enum' => [ 'DROP', 'ENCODE_SILENCE', ], ], 'M2tsArib' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'M2tsAribCaptionsPidControl' => [ 'type' => 'string', 'enum' => [ 'AUTO', 'USE_CONFIGURED', ], ], 'M2tsAudioBufferModel' => [ 'type' => 'string', 'enum' => [ 'ATSC', 'DVB', ], ], 'M2tsAudioInterval' => [ 'type' => 'string', 'enum' => [ 'VIDEO_AND_FIXED_INTERVALS', 'VIDEO_INTERVAL', ], ], 'M2tsAudioStreamType' => [ 'type' => 'string', 'enum' => [ 'ATSC', 'DVB', ], ], 'M2tsBufferModel' => [ 'type' => 'string', 'enum' => [ 'MULTIPLEX', 'NONE', ], ], 'M2tsCcDescriptor' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'M2tsEbifControl' => [ 'type' => 'string', 'enum' => [ 'NONE', 'PASSTHROUGH', ], ], 'M2tsEbpPlacement' => [ 'type' => 'string', 'enum' => [ 'VIDEO_AND_AUDIO_PIDS', 'VIDEO_PID', ], ], 'M2tsEsRateInPes' => [ 'type' => 'string', 'enum' => [ 'EXCLUDE', 'INCLUDE', ], ], 'M2tsKlv' => [ 'type' => 'string', 'enum' => [ 'NONE', 'PASSTHROUGH', ], ], 'M2tsPcrControl' => [ 'type' => 'string', 'enum' => [ 'CONFIGURED_PCR_PERIOD', 'PCR_EVERY_PES_PACKET', ], ], 'M2tsRateMode' => [ 'type' => 'string', 'enum' => [ 'CBR', 'VBR', ], ], 'M2tsScte35Control' => [ 'type' => 'string', 'enum' => [ 'NONE', 'PASSTHROUGH', ], ], 'M2tsSegmentationMarkers' => [ 'type' => 'string', 'enum' => [ 'EBP', 'EBP_LEGACY', 'NONE', 'PSI_SEGSTART', 'RAI_ADAPT', 'RAI_SEGSTART', ], ], 'M2tsSegmentationStyle' => [ 'type' => 'string', 'enum' => [ 'MAINTAIN_CADENCE', 'RESET_CADENCE', ], ], 'M2tsSettings' => [ 'type' => 'structure', 'members' => [ 'AbsentInputAudioBehavior' => [ 'shape' => 'M2tsAbsentInputAudioBehavior', 'locationName' => 'absentInputAudioBehavior', ], 'Arib' => [ 'shape' => 'M2tsArib', 'locationName' => 'arib', ], 'AribCaptionsPid' => [ 'shape' => '__string', 'locationName' => 'aribCaptionsPid', ], 'AribCaptionsPidControl' => [ 'shape' => 'M2tsAribCaptionsPidControl', 'locationName' => 'aribCaptionsPidControl', ], 'AudioBufferModel' => [ 'shape' => 'M2tsAudioBufferModel', 'locationName' => 'audioBufferModel', ], 'AudioFramesPerPes' => [ 'shape' => '__integerMin0', 'locationName' => 'audioFramesPerPes', ], 'AudioPids' => [ 'shape' => '__string', 'locationName' => 'audioPids', ], 'AudioStreamType' => [ 'shape' => 'M2tsAudioStreamType', 'locationName' => 'audioStreamType', ], 'Bitrate' => [ 'shape' => '__integerMin0', 'locationName' => 'bitrate', ], 'BufferModel' => [ 'shape' => 'M2tsBufferModel', 'locationName' => 'bufferModel', ], 'CcDescriptor' => [ 'shape' => 'M2tsCcDescriptor', 'locationName' => 'ccDescriptor', ], 'DvbNitSettings' => [ 'shape' => 'DvbNitSettings', 'locationName' => 'dvbNitSettings', ], 'DvbSdtSettings' => [ 'shape' => 'DvbSdtSettings', 'locationName' => 'dvbSdtSettings', ], 'DvbSubPids' => [ 'shape' => '__string', 'locationName' => 'dvbSubPids', ], 'DvbTdtSettings' => [ 'shape' => 'DvbTdtSettings', 'locationName' => 'dvbTdtSettings', ], 'DvbTeletextPid' => [ 'shape' => '__string', 'locationName' => 'dvbTeletextPid', ], 'Ebif' => [ 'shape' => 'M2tsEbifControl', 'locationName' => 'ebif', ], 'EbpAudioInterval' => [ 'shape' => 'M2tsAudioInterval', 'locationName' => 'ebpAudioInterval', ], 'EbpLookaheadMs' => [ 'shape' => '__integerMin0Max10000', 'locationName' => 'ebpLookaheadMs', ], 'EbpPlacement' => [ 'shape' => 'M2tsEbpPlacement', 'locationName' => 'ebpPlacement', ], 'EcmPid' => [ 'shape' => '__string', 'locationName' => 'ecmPid', ], 'EsRateInPes' => [ 'shape' => 'M2tsEsRateInPes', 'locationName' => 'esRateInPes', ], 'EtvPlatformPid' => [ 'shape' => '__string', 'locationName' => 'etvPlatformPid', ], 'EtvSignalPid' => [ 'shape' => '__string', 'locationName' => 'etvSignalPid', ], 'FragmentTime' => [ 'shape' => '__doubleMin0', 'locationName' => 'fragmentTime', ], 'Klv' => [ 'shape' => 'M2tsKlv', 'locationName' => 'klv', ], 'KlvDataPids' => [ 'shape' => '__string', 'locationName' => 'klvDataPids', ], 'NullPacketBitrate' => [ 'shape' => '__doubleMin0', 'locationName' => 'nullPacketBitrate', ], 'PatInterval' => [ 'shape' => '__integerMin0Max1000', 'locationName' => 'patInterval', ], 'PcrControl' => [ 'shape' => 'M2tsPcrControl', 'locationName' => 'pcrControl', ], 'PcrPeriod' => [ 'shape' => '__integerMin0Max500', 'locationName' => 'pcrPeriod', ], 'PcrPid' => [ 'shape' => '__string', 'locationName' => 'pcrPid', ], 'PmtInterval' => [ 'shape' => '__integerMin0Max1000', 'locationName' => 'pmtInterval', ], 'PmtPid' => [ 'shape' => '__string', 'locationName' => 'pmtPid', ], 'ProgramNum' => [ 'shape' => '__integerMin0Max65535', 'locationName' => 'programNum', ], 'RateMode' => [ 'shape' => 'M2tsRateMode', 'locationName' => 'rateMode', ], 'Scte27Pids' => [ 'shape' => '__string', 'locationName' => 'scte27Pids', ], 'Scte35Control' => [ 'shape' => 'M2tsScte35Control', 'locationName' => 'scte35Control', ], 'Scte35Pid' => [ 'shape' => '__string', 'locationName' => 'scte35Pid', ], 'SegmentationMarkers' => [ 'shape' => 'M2tsSegmentationMarkers', 'locationName' => 'segmentationMarkers', ], 'SegmentationStyle' => [ 'shape' => 'M2tsSegmentationStyle', 'locationName' => 'segmentationStyle', ], 'SegmentationTime' => [ 'shape' => '__doubleMin1', 'locationName' => 'segmentationTime', ], 'TimedMetadataBehavior' => [ 'shape' => 'M2tsTimedMetadataBehavior', 'locationName' => 'timedMetadataBehavior', ], 'TimedMetadataPid' => [ 'shape' => '__string', 'locationName' => 'timedMetadataPid', ], 'TransportStreamId' => [ 'shape' => '__integerMin0Max65535', 'locationName' => 'transportStreamId', ], 'VideoPid' => [ 'shape' => '__string', 'locationName' => 'videoPid', ], ], ], 'M2tsTimedMetadataBehavior' => [ 'type' => 'string', 'enum' => [ 'NO_PASSTHROUGH', 'PASSTHROUGH', ], ], 'M3u8PcrControl' => [ 'type' => 'string', 'enum' => [ 'CONFIGURED_PCR_PERIOD', 'PCR_EVERY_PES_PACKET', ], ], 'M3u8Scte35Behavior' => [ 'type' => 'string', 'enum' => [ 'NO_PASSTHROUGH', 'PASSTHROUGH', ], ], 'M3u8Settings' => [ 'type' => 'structure', 'members' => [ 'AudioFramesPerPes' => [ 'shape' => '__integerMin0', 'locationName' => 'audioFramesPerPes', ], 'AudioPids' => [ 'shape' => '__string', 'locationName' => 'audioPids', ], 'EcmPid' => [ 'shape' => '__string', 'locationName' => 'ecmPid', ], 'PatInterval' => [ 'shape' => '__integerMin0Max1000', 'locationName' => 'patInterval', ], 'PcrControl' => [ 'shape' => 'M3u8PcrControl', 'locationName' => 'pcrControl', ], 'PcrPeriod' => [ 'shape' => '__integerMin0Max500', 'locationName' => 'pcrPeriod', ], 'PcrPid' => [ 'shape' => '__string', 'locationName' => 'pcrPid', ], 'PmtInterval' => [ 'shape' => '__integerMin0Max1000', 'locationName' => 'pmtInterval', ], 'PmtPid' => [ 'shape' => '__string', 'locationName' => 'pmtPid', ], 'ProgramNum' => [ 'shape' => '__integerMin0Max65535', 'locationName' => 'programNum', ], 'Scte35Behavior' => [ 'shape' => 'M3u8Scte35Behavior', 'locationName' => 'scte35Behavior', ], 'Scte35Pid' => [ 'shape' => '__string', 'locationName' => 'scte35Pid', ], 'TimedMetadataBehavior' => [ 'shape' => 'M3u8TimedMetadataBehavior', 'locationName' => 'timedMetadataBehavior', ], 'TimedMetadataPid' => [ 'shape' => '__string', 'locationName' => 'timedMetadataPid', ], 'TransportStreamId' => [ 'shape' => '__integerMin0Max65535', 'locationName' => 'transportStreamId', ], 'VideoPid' => [ 'shape' => '__string', 'locationName' => 'videoPid', ], ], ], 'M3u8TimedMetadataBehavior' => [ 'type' => 'string', 'enum' => [ 'NO_PASSTHROUGH', 'PASSTHROUGH', ], ], 'MaxResults' => [ 'type' => 'integer', 'min' => 1, 'max' => 1000, ], 'MediaConnectFlow' => [ 'type' => 'structure', 'members' => [ 'FlowArn' => [ 'shape' => '__string', 'locationName' => 'flowArn', ], ], ], 'MediaConnectFlowRequest' => [ 'type' => 'structure', 'members' => [ 'FlowArn' => [ 'shape' => '__string', 'locationName' => 'flowArn', ], ], ], 'MediaPackageGroupSettings' => [ 'type' => 'structure', 'members' => [ 'Destination' => [ 'shape' => 'OutputLocationRef', 'locationName' => 'destination', ], ], 'required' => [ 'Destination', ], ], 'MediaPackageOutputDestinationSettings' => [ 'type' => 'structure', 'members' => [ 'ChannelId' => [ 'shape' => '__stringMin1', 'locationName' => 'channelId', ], ], ], 'MediaPackageOutputSettings' => [ 'type' => 'structure', 'members' => [], ], 'Mp2CodingMode' => [ 'type' => 'string', 'enum' => [ 'CODING_MODE_1_0', 'CODING_MODE_2_0', ], ], 'Mp2Settings' => [ 'type' => 'structure', 'members' => [ 'Bitrate' => [ 'shape' => '__double', 'locationName' => 'bitrate', ], 'CodingMode' => [ 'shape' => 'Mp2CodingMode', 'locationName' => 'codingMode', ], 'SampleRate' => [ 'shape' => '__double', 'locationName' => 'sampleRate', ], ], ], 'MsSmoothGroupSettings' => [ 'type' => 'structure', 'members' => [ 'AcquisitionPointId' => [ 'shape' => '__string', 'locationName' => 'acquisitionPointId', ], 'AudioOnlyTimecodeControl' => [ 'shape' => 'SmoothGroupAudioOnlyTimecodeControl', 'locationName' => 'audioOnlyTimecodeControl', ], 'CertificateMode' => [ 'shape' => 'SmoothGroupCertificateMode', 'locationName' => 'certificateMode', ], 'ConnectionRetryInterval' => [ 'shape' => '__integerMin0', 'locationName' => 'connectionRetryInterval', ], 'Destination' => [ 'shape' => 'OutputLocationRef', 'locationName' => 'destination', ], 'EventId' => [ 'shape' => '__string', 'locationName' => 'eventId', ], 'EventIdMode' => [ 'shape' => 'SmoothGroupEventIdMode', 'locationName' => 'eventIdMode', ], 'EventStopBehavior' => [ 'shape' => 'SmoothGroupEventStopBehavior', 'locationName' => 'eventStopBehavior', ], 'FilecacheDuration' => [ 'shape' => '__integerMin0', 'locationName' => 'filecacheDuration', ], 'FragmentLength' => [ 'shape' => '__integerMin1', 'locationName' => 'fragmentLength', ], 'InputLossAction' => [ 'shape' => 'InputLossActionForMsSmoothOut', 'locationName' => 'inputLossAction', ], 'NumRetries' => [ 'shape' => '__integerMin0', 'locationName' => 'numRetries', ], 'RestartDelay' => [ 'shape' => '__integerMin0', 'locationName' => 'restartDelay', ], 'SegmentationMode' => [ 'shape' => 'SmoothGroupSegmentationMode', 'locationName' => 'segmentationMode', ], 'SendDelayMs' => [ 'shape' => '__integerMin0Max10000', 'locationName' => 'sendDelayMs', ], 'SparseTrackType' => [ 'shape' => 'SmoothGroupSparseTrackType', 'locationName' => 'sparseTrackType', ], 'StreamManifestBehavior' => [ 'shape' => 'SmoothGroupStreamManifestBehavior', 'locationName' => 'streamManifestBehavior', ], 'TimestampOffset' => [ 'shape' => '__string', 'locationName' => 'timestampOffset', ], 'TimestampOffsetMode' => [ 'shape' => 'SmoothGroupTimestampOffsetMode', 'locationName' => 'timestampOffsetMode', ], ], 'required' => [ 'Destination', ], ], 'MsSmoothOutputSettings' => [ 'type' => 'structure', 'members' => [ 'NameModifier' => [ 'shape' => '__string', 'locationName' => 'nameModifier', ], ], ], 'NetworkInputServerValidation' => [ 'type' => 'string', 'enum' => [ 'CHECK_CRYPTOGRAPHY_AND_VALIDATE_NAME', 'CHECK_CRYPTOGRAPHY_ONLY', ], ], 'NetworkInputSettings' => [ 'type' => 'structure', 'members' => [ 'HlsInputSettings' => [ 'shape' => 'HlsInputSettings', 'locationName' => 'hlsInputSettings', ], 'ServerValidation' => [ 'shape' => 'NetworkInputServerValidation', 'locationName' => 'serverValidation', ], ], ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 404, ], ], 'Offering' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'CurrencyCode' => [ 'shape' => '__string', 'locationName' => 'currencyCode', ], 'Duration' => [ 'shape' => '__integer', 'locationName' => 'duration', ], 'DurationUnits' => [ 'shape' => 'OfferingDurationUnits', 'locationName' => 'durationUnits', ], 'FixedPrice' => [ 'shape' => '__double', 'locationName' => 'fixedPrice', ], 'OfferingDescription' => [ 'shape' => '__string', 'locationName' => 'offeringDescription', ], 'OfferingId' => [ 'shape' => '__string', 'locationName' => 'offeringId', ], 'OfferingType' => [ 'shape' => 'OfferingType', 'locationName' => 'offeringType', ], 'Region' => [ 'shape' => '__string', 'locationName' => 'region', ], 'ResourceSpecification' => [ 'shape' => 'ReservationResourceSpecification', 'locationName' => 'resourceSpecification', ], 'UsagePrice' => [ 'shape' => '__double', 'locationName' => 'usagePrice', ], ], ], 'OfferingDurationUnits' => [ 'type' => 'string', 'enum' => [ 'MONTHS', ], ], 'OfferingType' => [ 'type' => 'string', 'enum' => [ 'NO_UPFRONT', ], ], 'Output' => [ 'type' => 'structure', 'members' => [ 'AudioDescriptionNames' => [ 'shape' => '__listOf__string', 'locationName' => 'audioDescriptionNames', ], 'CaptionDescriptionNames' => [ 'shape' => '__listOf__string', 'locationName' => 'captionDescriptionNames', ], 'OutputName' => [ 'shape' => '__stringMin1Max255', 'locationName' => 'outputName', ], 'OutputSettings' => [ 'shape' => 'OutputSettings', 'locationName' => 'outputSettings', ], 'VideoDescriptionName' => [ 'shape' => '__string', 'locationName' => 'videoDescriptionName', ], ], 'required' => [ 'OutputSettings', ], ], 'OutputDestination' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], 'MediaPackageSettings' => [ 'shape' => '__listOfMediaPackageOutputDestinationSettings', 'locationName' => 'mediaPackageSettings', ], 'Settings' => [ 'shape' => '__listOfOutputDestinationSettings', 'locationName' => 'settings', ], ], ], 'OutputDestinationSettings' => [ 'type' => 'structure', 'members' => [ 'PasswordParam' => [ 'shape' => '__string', 'locationName' => 'passwordParam', ], 'StreamName' => [ 'shape' => '__string', 'locationName' => 'streamName', ], 'Url' => [ 'shape' => '__string', 'locationName' => 'url', ], 'Username' => [ 'shape' => '__string', 'locationName' => 'username', ], ], ], 'OutputGroup' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => '__stringMax32', 'locationName' => 'name', ], 'OutputGroupSettings' => [ 'shape' => 'OutputGroupSettings', 'locationName' => 'outputGroupSettings', ], 'Outputs' => [ 'shape' => '__listOfOutput', 'locationName' => 'outputs', ], ], 'required' => [ 'Outputs', 'OutputGroupSettings', ], ], 'OutputGroupSettings' => [ 'type' => 'structure', 'members' => [ 'ArchiveGroupSettings' => [ 'shape' => 'ArchiveGroupSettings', 'locationName' => 'archiveGroupSettings', ], 'FrameCaptureGroupSettings' => [ 'shape' => 'FrameCaptureGroupSettings', 'locationName' => 'frameCaptureGroupSettings', ], 'HlsGroupSettings' => [ 'shape' => 'HlsGroupSettings', 'locationName' => 'hlsGroupSettings', ], 'MediaPackageGroupSettings' => [ 'shape' => 'MediaPackageGroupSettings', 'locationName' => 'mediaPackageGroupSettings', ], 'MsSmoothGroupSettings' => [ 'shape' => 'MsSmoothGroupSettings', 'locationName' => 'msSmoothGroupSettings', ], 'RtmpGroupSettings' => [ 'shape' => 'RtmpGroupSettings', 'locationName' => 'rtmpGroupSettings', ], 'UdpGroupSettings' => [ 'shape' => 'UdpGroupSettings', 'locationName' => 'udpGroupSettings', ], ], ], 'OutputLocationRef' => [ 'type' => 'structure', 'members' => [ 'DestinationRefId' => [ 'shape' => '__string', 'locationName' => 'destinationRefId', ], ], ], 'OutputSettings' => [ 'type' => 'structure', 'members' => [ 'ArchiveOutputSettings' => [ 'shape' => 'ArchiveOutputSettings', 'locationName' => 'archiveOutputSettings', ], 'FrameCaptureOutputSettings' => [ 'shape' => 'FrameCaptureOutputSettings', 'locationName' => 'frameCaptureOutputSettings', ], 'HlsOutputSettings' => [ 'shape' => 'HlsOutputSettings', 'locationName' => 'hlsOutputSettings', ], 'MediaPackageOutputSettings' => [ 'shape' => 'MediaPackageOutputSettings', 'locationName' => 'mediaPackageOutputSettings', ], 'MsSmoothOutputSettings' => [ 'shape' => 'MsSmoothOutputSettings', 'locationName' => 'msSmoothOutputSettings', ], 'RtmpOutputSettings' => [ 'shape' => 'RtmpOutputSettings', 'locationName' => 'rtmpOutputSettings', ], 'UdpOutputSettings' => [ 'shape' => 'UdpOutputSettings', 'locationName' => 'udpOutputSettings', ], ], ], 'PassThroughSettings' => [ 'type' => 'structure', 'members' => [], ], 'PauseStateScheduleActionSettings' => [ 'type' => 'structure', 'members' => [ 'Pipelines' => [ 'shape' => '__listOfPipelinePauseStateSettings', 'locationName' => 'pipelines', ], ], ], 'PipelineId' => [ 'type' => 'string', 'enum' => [ 'PIPELINE_0', 'PIPELINE_1', ], ], 'PipelinePauseStateSettings' => [ 'type' => 'structure', 'members' => [ 'PipelineId' => [ 'shape' => 'PipelineId', 'locationName' => 'pipelineId', ], ], 'required' => [ 'PipelineId', ], ], 'PurchaseOffering' => [ 'type' => 'structure', 'members' => [ 'Count' => [ 'shape' => '__integerMin1', 'locationName' => 'count', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'RequestId' => [ 'shape' => '__string', 'locationName' => 'requestId', 'idempotencyToken' => true, ], 'Start' => [ 'shape' => '__string', 'locationName' => 'start', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], ], 'required' => [ 'Count', ], ], 'PurchaseOfferingRequest' => [ 'type' => 'structure', 'members' => [ 'Count' => [ 'shape' => '__integerMin1', 'locationName' => 'count', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'OfferingId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'offeringId', ], 'RequestId' => [ 'shape' => '__string', 'locationName' => 'requestId', 'idempotencyToken' => true, ], 'Start' => [ 'shape' => '__string', 'locationName' => 'start', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], ], 'required' => [ 'OfferingId', 'Count', ], ], 'PurchaseOfferingResponse' => [ 'type' => 'structure', 'members' => [ 'Reservation' => [ 'shape' => 'Reservation', 'locationName' => 'reservation', ], ], ], 'PurchaseOfferingResultModel' => [ 'type' => 'structure', 'members' => [ 'Reservation' => [ 'shape' => 'Reservation', 'locationName' => 'reservation', ], ], ], 'RemixSettings' => [ 'type' => 'structure', 'members' => [ 'ChannelMappings' => [ 'shape' => '__listOfAudioChannelMapping', 'locationName' => 'channelMappings', ], 'ChannelsIn' => [ 'shape' => '__integerMin1Max16', 'locationName' => 'channelsIn', ], 'ChannelsOut' => [ 'shape' => '__integerMin1Max8', 'locationName' => 'channelsOut', ], ], 'required' => [ 'ChannelMappings', ], ], 'Reservation' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'Count' => [ 'shape' => '__integer', 'locationName' => 'count', ], 'CurrencyCode' => [ 'shape' => '__string', 'locationName' => 'currencyCode', ], 'Duration' => [ 'shape' => '__integer', 'locationName' => 'duration', ], 'DurationUnits' => [ 'shape' => 'OfferingDurationUnits', 'locationName' => 'durationUnits', ], 'End' => [ 'shape' => '__string', 'locationName' => 'end', ], 'FixedPrice' => [ 'shape' => '__double', 'locationName' => 'fixedPrice', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'OfferingDescription' => [ 'shape' => '__string', 'locationName' => 'offeringDescription', ], 'OfferingId' => [ 'shape' => '__string', 'locationName' => 'offeringId', ], 'OfferingType' => [ 'shape' => 'OfferingType', 'locationName' => 'offeringType', ], 'Region' => [ 'shape' => '__string', 'locationName' => 'region', ], 'ReservationId' => [ 'shape' => '__string', 'locationName' => 'reservationId', ], 'ResourceSpecification' => [ 'shape' => 'ReservationResourceSpecification', 'locationName' => 'resourceSpecification', ], 'Start' => [ 'shape' => '__string', 'locationName' => 'start', ], 'State' => [ 'shape' => 'ReservationState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], 'UsagePrice' => [ 'shape' => '__double', 'locationName' => 'usagePrice', ], ], ], 'ReservationCodec' => [ 'type' => 'string', 'enum' => [ 'MPEG2', 'AVC', 'HEVC', 'AUDIO', ], ], 'ReservationMaximumBitrate' => [ 'type' => 'string', 'enum' => [ 'MAX_10_MBPS', 'MAX_20_MBPS', 'MAX_50_MBPS', ], ], 'ReservationMaximumFramerate' => [ 'type' => 'string', 'enum' => [ 'MAX_30_FPS', 'MAX_60_FPS', ], ], 'ReservationResolution' => [ 'type' => 'string', 'enum' => [ 'SD', 'HD', 'UHD', ], ], 'ReservationResourceSpecification' => [ 'type' => 'structure', 'members' => [ 'ChannelClass' => [ 'shape' => 'ChannelClass', 'locationName' => 'channelClass', ], 'Codec' => [ 'shape' => 'ReservationCodec', 'locationName' => 'codec', ], 'MaximumBitrate' => [ 'shape' => 'ReservationMaximumBitrate', 'locationName' => 'maximumBitrate', ], 'MaximumFramerate' => [ 'shape' => 'ReservationMaximumFramerate', 'locationName' => 'maximumFramerate', ], 'Resolution' => [ 'shape' => 'ReservationResolution', 'locationName' => 'resolution', ], 'ResourceType' => [ 'shape' => 'ReservationResourceType', 'locationName' => 'resourceType', ], 'SpecialFeature' => [ 'shape' => 'ReservationSpecialFeature', 'locationName' => 'specialFeature', ], 'VideoQuality' => [ 'shape' => 'ReservationVideoQuality', 'locationName' => 'videoQuality', ], ], ], 'ReservationResourceType' => [ 'type' => 'string', 'enum' => [ 'INPUT', 'OUTPUT', 'CHANNEL', ], ], 'ReservationSpecialFeature' => [ 'type' => 'string', 'enum' => [ 'ADVANCED_AUDIO', 'AUDIO_NORMALIZATION', ], ], 'ReservationState' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'EXPIRED', 'CANCELED', 'DELETED', ], ], 'ReservationVideoQuality' => [ 'type' => 'string', 'enum' => [ 'STANDARD', 'ENHANCED', 'PREMIUM', ], ], 'ResourceConflict' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], ], 'ResourceNotFound' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], ], 'RtmpCacheFullBehavior' => [ 'type' => 'string', 'enum' => [ 'DISCONNECT_IMMEDIATELY', 'WAIT_FOR_SERVER', ], ], 'RtmpCaptionData' => [ 'type' => 'string', 'enum' => [ 'ALL', 'FIELD1_608', 'FIELD1_AND_FIELD2_608', ], ], 'RtmpCaptionInfoDestinationSettings' => [ 'type' => 'structure', 'members' => [], ], 'RtmpGroupSettings' => [ 'type' => 'structure', 'members' => [ 'AuthenticationScheme' => [ 'shape' => 'AuthenticationScheme', 'locationName' => 'authenticationScheme', ], 'CacheFullBehavior' => [ 'shape' => 'RtmpCacheFullBehavior', 'locationName' => 'cacheFullBehavior', ], 'CacheLength' => [ 'shape' => '__integerMin30', 'locationName' => 'cacheLength', ], 'CaptionData' => [ 'shape' => 'RtmpCaptionData', 'locationName' => 'captionData', ], 'InputLossAction' => [ 'shape' => 'InputLossActionForRtmpOut', 'locationName' => 'inputLossAction', ], 'RestartDelay' => [ 'shape' => '__integerMin0', 'locationName' => 'restartDelay', ], ], ], 'RtmpOutputCertificateMode' => [ 'type' => 'string', 'enum' => [ 'SELF_SIGNED', 'VERIFY_AUTHENTICITY', ], ], 'RtmpOutputSettings' => [ 'type' => 'structure', 'members' => [ 'CertificateMode' => [ 'shape' => 'RtmpOutputCertificateMode', 'locationName' => 'certificateMode', ], 'ConnectionRetryInterval' => [ 'shape' => '__integerMin1', 'locationName' => 'connectionRetryInterval', ], 'Destination' => [ 'shape' => 'OutputLocationRef', 'locationName' => 'destination', ], 'NumRetries' => [ 'shape' => '__integerMin0', 'locationName' => 'numRetries', ], ], 'required' => [ 'Destination', ], ], 'ScheduleAction' => [ 'type' => 'structure', 'members' => [ 'ActionName' => [ 'shape' => '__string', 'locationName' => 'actionName', ], 'ScheduleActionSettings' => [ 'shape' => 'ScheduleActionSettings', 'locationName' => 'scheduleActionSettings', ], 'ScheduleActionStartSettings' => [ 'shape' => 'ScheduleActionStartSettings', 'locationName' => 'scheduleActionStartSettings', ], ], 'required' => [ 'ActionName', 'ScheduleActionStartSettings', 'ScheduleActionSettings', ], ], 'ScheduleActionSettings' => [ 'type' => 'structure', 'members' => [ 'HlsTimedMetadataSettings' => [ 'shape' => 'HlsTimedMetadataScheduleActionSettings', 'locationName' => 'hlsTimedMetadataSettings', ], 'InputSwitchSettings' => [ 'shape' => 'InputSwitchScheduleActionSettings', 'locationName' => 'inputSwitchSettings', ], 'PauseStateSettings' => [ 'shape' => 'PauseStateScheduleActionSettings', 'locationName' => 'pauseStateSettings', ], 'Scte35ReturnToNetworkSettings' => [ 'shape' => 'Scte35ReturnToNetworkScheduleActionSettings', 'locationName' => 'scte35ReturnToNetworkSettings', ], 'Scte35SpliceInsertSettings' => [ 'shape' => 'Scte35SpliceInsertScheduleActionSettings', 'locationName' => 'scte35SpliceInsertSettings', ], 'Scte35TimeSignalSettings' => [ 'shape' => 'Scte35TimeSignalScheduleActionSettings', 'locationName' => 'scte35TimeSignalSettings', ], 'StaticImageActivateSettings' => [ 'shape' => 'StaticImageActivateScheduleActionSettings', 'locationName' => 'staticImageActivateSettings', ], 'StaticImageDeactivateSettings' => [ 'shape' => 'StaticImageDeactivateScheduleActionSettings', 'locationName' => 'staticImageDeactivateSettings', ], ], ], 'ScheduleActionStartSettings' => [ 'type' => 'structure', 'members' => [ 'FixedModeScheduleActionStartSettings' => [ 'shape' => 'FixedModeScheduleActionStartSettings', 'locationName' => 'fixedModeScheduleActionStartSettings', ], 'FollowModeScheduleActionStartSettings' => [ 'shape' => 'FollowModeScheduleActionStartSettings', 'locationName' => 'followModeScheduleActionStartSettings', ], ], ], 'ScheduleDescribeResultModel' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], 'ScheduleActions' => [ 'shape' => '__listOfScheduleAction', 'locationName' => 'scheduleActions', ], ], 'required' => [ 'ScheduleActions', ], ], 'Scte20Convert608To708' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'UPCONVERT', ], ], 'Scte20PlusEmbeddedDestinationSettings' => [ 'type' => 'structure', 'members' => [], ], 'Scte20SourceSettings' => [ 'type' => 'structure', 'members' => [ 'Convert608To708' => [ 'shape' => 'Scte20Convert608To708', 'locationName' => 'convert608To708', ], 'Source608ChannelNumber' => [ 'shape' => '__integerMin1Max4', 'locationName' => 'source608ChannelNumber', ], ], ], 'Scte27DestinationSettings' => [ 'type' => 'structure', 'members' => [], ], 'Scte27SourceSettings' => [ 'type' => 'structure', 'members' => [ 'Pid' => [ 'shape' => '__integerMin1', 'locationName' => 'pid', ], ], ], 'Scte35AposNoRegionalBlackoutBehavior' => [ 'type' => 'string', 'enum' => [ 'FOLLOW', 'IGNORE', ], ], 'Scte35AposWebDeliveryAllowedBehavior' => [ 'type' => 'string', 'enum' => [ 'FOLLOW', 'IGNORE', ], ], 'Scte35ArchiveAllowedFlag' => [ 'type' => 'string', 'enum' => [ 'ARCHIVE_NOT_ALLOWED', 'ARCHIVE_ALLOWED', ], ], 'Scte35DeliveryRestrictions' => [ 'type' => 'structure', 'members' => [ 'ArchiveAllowedFlag' => [ 'shape' => 'Scte35ArchiveAllowedFlag', 'locationName' => 'archiveAllowedFlag', ], 'DeviceRestrictions' => [ 'shape' => 'Scte35DeviceRestrictions', 'locationName' => 'deviceRestrictions', ], 'NoRegionalBlackoutFlag' => [ 'shape' => 'Scte35NoRegionalBlackoutFlag', 'locationName' => 'noRegionalBlackoutFlag', ], 'WebDeliveryAllowedFlag' => [ 'shape' => 'Scte35WebDeliveryAllowedFlag', 'locationName' => 'webDeliveryAllowedFlag', ], ], 'required' => [ 'DeviceRestrictions', 'ArchiveAllowedFlag', 'WebDeliveryAllowedFlag', 'NoRegionalBlackoutFlag', ], ], 'Scte35Descriptor' => [ 'type' => 'structure', 'members' => [ 'Scte35DescriptorSettings' => [ 'shape' => 'Scte35DescriptorSettings', 'locationName' => 'scte35DescriptorSettings', ], ], 'required' => [ 'Scte35DescriptorSettings', ], ], 'Scte35DescriptorSettings' => [ 'type' => 'structure', 'members' => [ 'SegmentationDescriptorScte35DescriptorSettings' => [ 'shape' => 'Scte35SegmentationDescriptor', 'locationName' => 'segmentationDescriptorScte35DescriptorSettings', ], ], 'required' => [ 'SegmentationDescriptorScte35DescriptorSettings', ], ], 'Scte35DeviceRestrictions' => [ 'type' => 'string', 'enum' => [ 'NONE', 'RESTRICT_GROUP0', 'RESTRICT_GROUP1', 'RESTRICT_GROUP2', ], ], 'Scte35NoRegionalBlackoutFlag' => [ 'type' => 'string', 'enum' => [ 'REGIONAL_BLACKOUT', 'NO_REGIONAL_BLACKOUT', ], ], 'Scte35ReturnToNetworkScheduleActionSettings' => [ 'type' => 'structure', 'members' => [ 'SpliceEventId' => [ 'shape' => '__integerMin0Max4294967295', 'locationName' => 'spliceEventId', ], ], 'required' => [ 'SpliceEventId', ], ], 'Scte35SegmentationCancelIndicator' => [ 'type' => 'string', 'enum' => [ 'SEGMENTATION_EVENT_NOT_CANCELED', 'SEGMENTATION_EVENT_CANCELED', ], ], 'Scte35SegmentationDescriptor' => [ 'type' => 'structure', 'members' => [ 'DeliveryRestrictions' => [ 'shape' => 'Scte35DeliveryRestrictions', 'locationName' => 'deliveryRestrictions', ], 'SegmentNum' => [ 'shape' => '__integerMin0Max255', 'locationName' => 'segmentNum', ], 'SegmentationCancelIndicator' => [ 'shape' => 'Scte35SegmentationCancelIndicator', 'locationName' => 'segmentationCancelIndicator', ], 'SegmentationDuration' => [ 'shape' => '__integerMin0Max1099511627775', 'locationName' => 'segmentationDuration', ], 'SegmentationEventId' => [ 'shape' => '__integerMin0Max4294967295', 'locationName' => 'segmentationEventId', ], 'SegmentationTypeId' => [ 'shape' => '__integerMin0Max255', 'locationName' => 'segmentationTypeId', ], 'SegmentationUpid' => [ 'shape' => '__string', 'locationName' => 'segmentationUpid', ], 'SegmentationUpidType' => [ 'shape' => '__integerMin0Max255', 'locationName' => 'segmentationUpidType', ], 'SegmentsExpected' => [ 'shape' => '__integerMin0Max255', 'locationName' => 'segmentsExpected', ], 'SubSegmentNum' => [ 'shape' => '__integerMin0Max255', 'locationName' => 'subSegmentNum', ], 'SubSegmentsExpected' => [ 'shape' => '__integerMin0Max255', 'locationName' => 'subSegmentsExpected', ], ], 'required' => [ 'SegmentationEventId', 'SegmentationCancelIndicator', ], ], 'Scte35SpliceInsert' => [ 'type' => 'structure', 'members' => [ 'AdAvailOffset' => [ 'shape' => '__integerMinNegative1000Max1000', 'locationName' => 'adAvailOffset', ], 'NoRegionalBlackoutFlag' => [ 'shape' => 'Scte35SpliceInsertNoRegionalBlackoutBehavior', 'locationName' => 'noRegionalBlackoutFlag', ], 'WebDeliveryAllowedFlag' => [ 'shape' => 'Scte35SpliceInsertWebDeliveryAllowedBehavior', 'locationName' => 'webDeliveryAllowedFlag', ], ], ], 'Scte35SpliceInsertNoRegionalBlackoutBehavior' => [ 'type' => 'string', 'enum' => [ 'FOLLOW', 'IGNORE', ], ], 'Scte35SpliceInsertScheduleActionSettings' => [ 'type' => 'structure', 'members' => [ 'Duration' => [ 'shape' => '__integerMin0Max8589934591', 'locationName' => 'duration', ], 'SpliceEventId' => [ 'shape' => '__integerMin0Max4294967295', 'locationName' => 'spliceEventId', ], ], 'required' => [ 'SpliceEventId', ], ], 'Scte35SpliceInsertWebDeliveryAllowedBehavior' => [ 'type' => 'string', 'enum' => [ 'FOLLOW', 'IGNORE', ], ], 'Scte35TimeSignalApos' => [ 'type' => 'structure', 'members' => [ 'AdAvailOffset' => [ 'shape' => '__integerMinNegative1000Max1000', 'locationName' => 'adAvailOffset', ], 'NoRegionalBlackoutFlag' => [ 'shape' => 'Scte35AposNoRegionalBlackoutBehavior', 'locationName' => 'noRegionalBlackoutFlag', ], 'WebDeliveryAllowedFlag' => [ 'shape' => 'Scte35AposWebDeliveryAllowedBehavior', 'locationName' => 'webDeliveryAllowedFlag', ], ], ], 'Scte35TimeSignalScheduleActionSettings' => [ 'type' => 'structure', 'members' => [ 'Scte35Descriptors' => [ 'shape' => '__listOfScte35Descriptor', 'locationName' => 'scte35Descriptors', ], ], 'required' => [ 'Scte35Descriptors', ], ], 'Scte35WebDeliveryAllowedFlag' => [ 'type' => 'string', 'enum' => [ 'WEB_DELIVERY_NOT_ALLOWED', 'WEB_DELIVERY_ALLOWED', ], ], 'SmoothGroupAudioOnlyTimecodeControl' => [ 'type' => 'string', 'enum' => [ 'PASSTHROUGH', 'USE_CONFIGURED_CLOCK', ], ], 'SmoothGroupCertificateMode' => [ 'type' => 'string', 'enum' => [ 'SELF_SIGNED', 'VERIFY_AUTHENTICITY', ], ], 'SmoothGroupEventIdMode' => [ 'type' => 'string', 'enum' => [ 'NO_EVENT_ID', 'USE_CONFIGURED', 'USE_TIMESTAMP', ], ], 'SmoothGroupEventStopBehavior' => [ 'type' => 'string', 'enum' => [ 'NONE', 'SEND_EOS', ], ], 'SmoothGroupSegmentationMode' => [ 'type' => 'string', 'enum' => [ 'USE_INPUT_SEGMENTATION', 'USE_SEGMENT_DURATION', ], ], 'SmoothGroupSparseTrackType' => [ 'type' => 'string', 'enum' => [ 'NONE', 'SCTE_35', ], ], 'SmoothGroupStreamManifestBehavior' => [ 'type' => 'string', 'enum' => [ 'DO_NOT_SEND', 'SEND', ], ], 'SmoothGroupTimestampOffsetMode' => [ 'type' => 'string', 'enum' => [ 'USE_CONFIGURED_OFFSET', 'USE_EVENT_START_DATE', ], ], 'SmpteTtDestinationSettings' => [ 'type' => 'structure', 'members' => [], ], 'StandardHlsSettings' => [ 'type' => 'structure', 'members' => [ 'AudioRenditionSets' => [ 'shape' => '__string', 'locationName' => 'audioRenditionSets', ], 'M3u8Settings' => [ 'shape' => 'M3u8Settings', 'locationName' => 'm3u8Settings', ], ], 'required' => [ 'M3u8Settings', ], ], 'StartChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ChannelId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'channelId', ], ], 'required' => [ 'ChannelId', ], ], 'StartChannelResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'ChannelClass' => [ 'shape' => 'ChannelClass', 'locationName' => 'channelClass', ], 'Destinations' => [ 'shape' => '__listOfOutputDestination', 'locationName' => 'destinations', ], 'EgressEndpoints' => [ 'shape' => '__listOfChannelEgressEndpoint', 'locationName' => 'egressEndpoints', ], 'EncoderSettings' => [ 'shape' => 'EncoderSettings', 'locationName' => 'encoderSettings', ], 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], 'InputAttachments' => [ 'shape' => '__listOfInputAttachment', 'locationName' => 'inputAttachments', ], 'InputSpecification' => [ 'shape' => 'InputSpecification', 'locationName' => 'inputSpecification', ], 'LogLevel' => [ 'shape' => 'LogLevel', 'locationName' => 'logLevel', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'PipelinesRunningCount' => [ 'shape' => '__integer', 'locationName' => 'pipelinesRunningCount', ], 'RoleArn' => [ 'shape' => '__string', 'locationName' => 'roleArn', ], 'State' => [ 'shape' => 'ChannelState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], ], ], 'StaticImageActivateScheduleActionSettings' => [ 'type' => 'structure', 'members' => [ 'Duration' => [ 'shape' => '__integerMin0', 'locationName' => 'duration', ], 'FadeIn' => [ 'shape' => '__integerMin0', 'locationName' => 'fadeIn', ], 'FadeOut' => [ 'shape' => '__integerMin0', 'locationName' => 'fadeOut', ], 'Height' => [ 'shape' => '__integerMin1', 'locationName' => 'height', ], 'Image' => [ 'shape' => 'InputLocation', 'locationName' => 'image', ], 'ImageX' => [ 'shape' => '__integerMin0', 'locationName' => 'imageX', ], 'ImageY' => [ 'shape' => '__integerMin0', 'locationName' => 'imageY', ], 'Layer' => [ 'shape' => '__integerMin0Max7', 'locationName' => 'layer', ], 'Opacity' => [ 'shape' => '__integerMin0Max100', 'locationName' => 'opacity', ], 'Width' => [ 'shape' => '__integerMin1', 'locationName' => 'width', ], ], 'required' => [ 'Image', ], ], 'StaticImageDeactivateScheduleActionSettings' => [ 'type' => 'structure', 'members' => [ 'FadeOut' => [ 'shape' => '__integerMin0', 'locationName' => 'fadeOut', ], 'Layer' => [ 'shape' => '__integerMin0Max7', 'locationName' => 'layer', ], ], ], 'StaticKeySettings' => [ 'type' => 'structure', 'members' => [ 'KeyProviderServer' => [ 'shape' => 'InputLocation', 'locationName' => 'keyProviderServer', ], 'StaticKeyValue' => [ 'shape' => '__stringMin32Max32', 'locationName' => 'staticKeyValue', ], ], 'required' => [ 'StaticKeyValue', ], ], 'StopChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ChannelId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'channelId', ], ], 'required' => [ 'ChannelId', ], ], 'StopChannelResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'ChannelClass' => [ 'shape' => 'ChannelClass', 'locationName' => 'channelClass', ], 'Destinations' => [ 'shape' => '__listOfOutputDestination', 'locationName' => 'destinations', ], 'EgressEndpoints' => [ 'shape' => '__listOfChannelEgressEndpoint', 'locationName' => 'egressEndpoints', ], 'EncoderSettings' => [ 'shape' => 'EncoderSettings', 'locationName' => 'encoderSettings', ], 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], 'InputAttachments' => [ 'shape' => '__listOfInputAttachment', 'locationName' => 'inputAttachments', ], 'InputSpecification' => [ 'shape' => 'InputSpecification', 'locationName' => 'inputSpecification', ], 'LogLevel' => [ 'shape' => 'LogLevel', 'locationName' => 'logLevel', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'PipelinesRunningCount' => [ 'shape' => '__integer', 'locationName' => 'pipelinesRunningCount', ], 'RoleArn' => [ 'shape' => '__string', 'locationName' => 'roleArn', ], 'State' => [ 'shape' => 'ChannelState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], ], ], 'Tags' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => '__string', ], ], 'TagsModel' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], ], ], 'TeletextDestinationSettings' => [ 'type' => 'structure', 'members' => [], ], 'TeletextSourceSettings' => [ 'type' => 'structure', 'members' => [ 'PageNumber' => [ 'shape' => '__string', 'locationName' => 'pageNumber', ], ], ], 'TimecodeConfig' => [ 'type' => 'structure', 'members' => [ 'Source' => [ 'shape' => 'TimecodeConfigSource', 'locationName' => 'source', ], 'SyncThreshold' => [ 'shape' => '__integerMin1Max1000000', 'locationName' => 'syncThreshold', ], ], 'required' => [ 'Source', ], ], 'TimecodeConfigSource' => [ 'type' => 'string', 'enum' => [ 'EMBEDDED', 'SYSTEMCLOCK', 'ZEROBASED', ], ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 429, ], ], 'TtmlDestinationSettings' => [ 'type' => 'structure', 'members' => [ 'StyleControl' => [ 'shape' => 'TtmlDestinationStyleControl', 'locationName' => 'styleControl', ], ], ], 'TtmlDestinationStyleControl' => [ 'type' => 'string', 'enum' => [ 'PASSTHROUGH', 'USE_CONFIGURED', ], ], 'UdpContainerSettings' => [ 'type' => 'structure', 'members' => [ 'M2tsSettings' => [ 'shape' => 'M2tsSettings', 'locationName' => 'm2tsSettings', ], ], ], 'UdpGroupSettings' => [ 'type' => 'structure', 'members' => [ 'InputLossAction' => [ 'shape' => 'InputLossActionForUdpOut', 'locationName' => 'inputLossAction', ], 'TimedMetadataId3Frame' => [ 'shape' => 'UdpTimedMetadataId3Frame', 'locationName' => 'timedMetadataId3Frame', ], 'TimedMetadataId3Period' => [ 'shape' => '__integerMin0', 'locationName' => 'timedMetadataId3Period', ], ], ], 'UdpOutputSettings' => [ 'type' => 'structure', 'members' => [ 'BufferMsec' => [ 'shape' => '__integerMin0Max10000', 'locationName' => 'bufferMsec', ], 'ContainerSettings' => [ 'shape' => 'UdpContainerSettings', 'locationName' => 'containerSettings', ], 'Destination' => [ 'shape' => 'OutputLocationRef', 'locationName' => 'destination', ], 'FecOutputSettings' => [ 'shape' => 'FecOutputSettings', 'locationName' => 'fecOutputSettings', ], ], 'required' => [ 'Destination', 'ContainerSettings', ], ], 'UdpTimedMetadataId3Frame' => [ 'type' => 'string', 'enum' => [ 'NONE', 'PRIV', 'TDRL', ], ], 'UnprocessableEntityException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], 'ValidationErrors' => [ 'shape' => '__listOfValidationError', 'locationName' => 'validationErrors', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 422, ], ], 'UpdateChannel' => [ 'type' => 'structure', 'members' => [ 'Destinations' => [ 'shape' => '__listOfOutputDestination', 'locationName' => 'destinations', ], 'EncoderSettings' => [ 'shape' => 'EncoderSettings', 'locationName' => 'encoderSettings', ], 'InputAttachments' => [ 'shape' => '__listOfInputAttachment', 'locationName' => 'inputAttachments', ], 'InputSpecification' => [ 'shape' => 'InputSpecification', 'locationName' => 'inputSpecification', ], 'LogLevel' => [ 'shape' => 'LogLevel', 'locationName' => 'logLevel', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'RoleArn' => [ 'shape' => '__string', 'locationName' => 'roleArn', ], ], ], 'UpdateChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ChannelId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'channelId', ], 'Destinations' => [ 'shape' => '__listOfOutputDestination', 'locationName' => 'destinations', ], 'EncoderSettings' => [ 'shape' => 'EncoderSettings', 'locationName' => 'encoderSettings', ], 'InputAttachments' => [ 'shape' => '__listOfInputAttachment', 'locationName' => 'inputAttachments', ], 'InputSpecification' => [ 'shape' => 'InputSpecification', 'locationName' => 'inputSpecification', ], 'LogLevel' => [ 'shape' => 'LogLevel', 'locationName' => 'logLevel', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'RoleArn' => [ 'shape' => '__string', 'locationName' => 'roleArn', ], ], 'required' => [ 'ChannelId', ], ], 'UpdateChannelResponse' => [ 'type' => 'structure', 'members' => [ 'Channel' => [ 'shape' => 'Channel', 'locationName' => 'channel', ], ], ], 'UpdateChannelResultModel' => [ 'type' => 'structure', 'members' => [ 'Channel' => [ 'shape' => 'Channel', 'locationName' => 'channel', ], ], ], 'UpdateInput' => [ 'type' => 'structure', 'members' => [ 'Destinations' => [ 'shape' => '__listOfInputDestinationRequest', 'locationName' => 'destinations', ], 'InputSecurityGroups' => [ 'shape' => '__listOf__string', 'locationName' => 'inputSecurityGroups', ], 'MediaConnectFlows' => [ 'shape' => '__listOfMediaConnectFlowRequest', 'locationName' => 'mediaConnectFlows', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'RoleArn' => [ 'shape' => '__string', 'locationName' => 'roleArn', ], 'Sources' => [ 'shape' => '__listOfInputSourceRequest', 'locationName' => 'sources', ], ], ], 'UpdateInputRequest' => [ 'type' => 'structure', 'members' => [ 'Destinations' => [ 'shape' => '__listOfInputDestinationRequest', 'locationName' => 'destinations', ], 'InputId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'inputId', ], 'InputSecurityGroups' => [ 'shape' => '__listOf__string', 'locationName' => 'inputSecurityGroups', ], 'MediaConnectFlows' => [ 'shape' => '__listOfMediaConnectFlowRequest', 'locationName' => 'mediaConnectFlows', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'RoleArn' => [ 'shape' => '__string', 'locationName' => 'roleArn', ], 'Sources' => [ 'shape' => '__listOfInputSourceRequest', 'locationName' => 'sources', ], ], 'required' => [ 'InputId', ], ], 'UpdateInputResponse' => [ 'type' => 'structure', 'members' => [ 'Input' => [ 'shape' => 'Input', 'locationName' => 'input', ], ], ], 'UpdateInputResultModel' => [ 'type' => 'structure', 'members' => [ 'Input' => [ 'shape' => 'Input', 'locationName' => 'input', ], ], ], 'UpdateInputSecurityGroupRequest' => [ 'type' => 'structure', 'members' => [ 'InputSecurityGroupId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'inputSecurityGroupId', ], 'Tags' => [ 'shape' => 'Tags', 'locationName' => 'tags', ], 'WhitelistRules' => [ 'shape' => '__listOfInputWhitelistRuleCidr', 'locationName' => 'whitelistRules', ], ], 'required' => [ 'InputSecurityGroupId', ], ], 'UpdateInputSecurityGroupResponse' => [ 'type' => 'structure', 'members' => [ 'SecurityGroup' => [ 'shape' => 'InputSecurityGroup', 'locationName' => 'securityGroup', ], ], ], 'UpdateInputSecurityGroupResultModel' => [ 'type' => 'structure', 'members' => [ 'SecurityGroup' => [ 'shape' => 'InputSecurityGroup', 'locationName' => 'securityGroup', ], ], ], 'UpdateReservation' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], ], ], 'UpdateReservationRequest' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'ReservationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'reservationId', ], ], 'required' => [ 'ReservationId', ], ], 'UpdateReservationResponse' => [ 'type' => 'structure', 'members' => [ 'Reservation' => [ 'shape' => 'Reservation', 'locationName' => 'reservation', ], ], ], 'UpdateReservationResultModel' => [ 'type' => 'structure', 'members' => [ 'Reservation' => [ 'shape' => 'Reservation', 'locationName' => 'reservation', ], ], ], 'ValidationError' => [ 'type' => 'structure', 'members' => [ 'ElementPath' => [ 'shape' => '__string', 'locationName' => 'elementPath', ], 'ErrorMessage' => [ 'shape' => '__string', 'locationName' => 'errorMessage', ], ], ], 'VideoCodecSettings' => [ 'type' => 'structure', 'members' => [ 'FrameCaptureSettings' => [ 'shape' => 'FrameCaptureSettings', 'locationName' => 'frameCaptureSettings', ], 'H264Settings' => [ 'shape' => 'H264Settings', 'locationName' => 'h264Settings', ], ], ], 'VideoDescription' => [ 'type' => 'structure', 'members' => [ 'CodecSettings' => [ 'shape' => 'VideoCodecSettings', 'locationName' => 'codecSettings', ], 'Height' => [ 'shape' => '__integer', 'locationName' => 'height', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'RespondToAfd' => [ 'shape' => 'VideoDescriptionRespondToAfd', 'locationName' => 'respondToAfd', ], 'ScalingBehavior' => [ 'shape' => 'VideoDescriptionScalingBehavior', 'locationName' => 'scalingBehavior', ], 'Sharpness' => [ 'shape' => '__integerMin0Max100', 'locationName' => 'sharpness', ], 'Width' => [ 'shape' => '__integer', 'locationName' => 'width', ], ], 'required' => [ 'Name', ], ], 'VideoDescriptionRespondToAfd' => [ 'type' => 'string', 'enum' => [ 'NONE', 'PASSTHROUGH', 'RESPOND', ], ], 'VideoDescriptionScalingBehavior' => [ 'type' => 'string', 'enum' => [ 'DEFAULT', 'STRETCH_TO_OUTPUT', ], ], 'VideoSelector' => [ 'type' => 'structure', 'members' => [ 'ColorSpace' => [ 'shape' => 'VideoSelectorColorSpace', 'locationName' => 'colorSpace', ], 'ColorSpaceUsage' => [ 'shape' => 'VideoSelectorColorSpaceUsage', 'locationName' => 'colorSpaceUsage', ], 'SelectorSettings' => [ 'shape' => 'VideoSelectorSettings', 'locationName' => 'selectorSettings', ], ], ], 'VideoSelectorColorSpace' => [ 'type' => 'string', 'enum' => [ 'FOLLOW', 'REC_601', 'REC_709', ], ], 'VideoSelectorColorSpaceUsage' => [ 'type' => 'string', 'enum' => [ 'FALLBACK', 'FORCE', ], ], 'VideoSelectorPid' => [ 'type' => 'structure', 'members' => [ 'Pid' => [ 'shape' => '__integerMin0Max8191', 'locationName' => 'pid', ], ], ], 'VideoSelectorProgramId' => [ 'type' => 'structure', 'members' => [ 'ProgramId' => [ 'shape' => '__integerMin0Max65536', 'locationName' => 'programId', ], ], ], 'VideoSelectorSettings' => [ 'type' => 'structure', 'members' => [ 'VideoSelectorPid' => [ 'shape' => 'VideoSelectorPid', 'locationName' => 'videoSelectorPid', ], 'VideoSelectorProgramId' => [ 'shape' => 'VideoSelectorProgramId', 'locationName' => 'videoSelectorProgramId', ], ], ], 'WebvttDestinationSettings' => [ 'type' => 'structure', 'members' => [], ], '__boolean' => [ 'type' => 'boolean', ], '__double' => [ 'type' => 'double', ], '__doubleMin0' => [ 'type' => 'double', ], '__doubleMin1' => [ 'type' => 'double', ], '__doubleMinNegative59Max0' => [ 'type' => 'double', ], '__integer' => [ 'type' => 'integer', ], '__integerMin0' => [ 'type' => 'integer', 'min' => 0, ], '__integerMin0Max10' => [ 'type' => 'integer', 'min' => 0, 'max' => 10, ], '__integerMin0Max100' => [ 'type' => 'integer', 'min' => 0, 'max' => 100, ], '__integerMin0Max1000' => [ 'type' => 'integer', 'min' => 0, 'max' => 1000, ], '__integerMin0Max10000' => [ 'type' => 'integer', 'min' => 0, 'max' => 10000, ], '__integerMin0Max1000000' => [ 'type' => 'integer', 'min' => 0, 'max' => 1000000, ], '__integerMin0Max1099511627775' => [ 'type' => 'long', 'min' => 0, 'max' => 1099511627775, ], '__integerMin0Max128' => [ 'type' => 'integer', 'min' => 0, 'max' => 128, ], '__integerMin0Max15' => [ 'type' => 'integer', 'min' => 0, 'max' => 15, ], '__integerMin0Max255' => [ 'type' => 'integer', 'min' => 0, 'max' => 255, ], '__integerMin0Max30' => [ 'type' => 'integer', 'min' => 0, 'max' => 30, ], '__integerMin0Max3600' => [ 'type' => 'integer', 'min' => 0, 'max' => 3600, ], '__integerMin0Max4294967295' => [ 'type' => 'long', 'min' => 0, 'max' => 4294967295, ], '__integerMin0Max500' => [ 'type' => 'integer', 'min' => 0, 'max' => 500, ], '__integerMin0Max600' => [ 'type' => 'integer', 'min' => 0, 'max' => 600, ], '__integerMin0Max65535' => [ 'type' => 'integer', 'min' => 0, 'max' => 65535, ], '__integerMin0Max65536' => [ 'type' => 'integer', 'min' => 0, 'max' => 65536, ], '__integerMin0Max7' => [ 'type' => 'integer', 'min' => 0, 'max' => 7, ], '__integerMin0Max8191' => [ 'type' => 'integer', 'min' => 0, 'max' => 8191, ], '__integerMin0Max8589934591' => [ 'type' => 'long', 'min' => 0, 'max' => 8589934591, ], '__integerMin1' => [ 'type' => 'integer', 'min' => 1, ], '__integerMin1000' => [ 'type' => 'integer', 'min' => 1000, ], '__integerMin1000Max30000' => [ 'type' => 'integer', 'min' => 1000, 'max' => 30000, ], '__integerMin1Max10' => [ 'type' => 'integer', 'min' => 1, 'max' => 10, ], '__integerMin1Max1000000' => [ 'type' => 'integer', 'min' => 1, 'max' => 1000000, ], '__integerMin1Max16' => [ 'type' => 'integer', 'min' => 1, 'max' => 16, ], '__integerMin1Max20' => [ 'type' => 'integer', 'min' => 1, 'max' => 20, ], '__integerMin1Max31' => [ 'type' => 'integer', 'min' => 1, 'max' => 31, ], '__integerMin1Max32' => [ 'type' => 'integer', 'min' => 1, 'max' => 32, ], '__integerMin1Max3600' => [ 'type' => 'integer', 'min' => 1, 'max' => 3600, ], '__integerMin1Max4' => [ 'type' => 'integer', 'min' => 1, 'max' => 4, ], '__integerMin1Max5' => [ 'type' => 'integer', 'min' => 1, 'max' => 5, ], '__integerMin1Max6' => [ 'type' => 'integer', 'min' => 1, 'max' => 6, ], '__integerMin1Max8' => [ 'type' => 'integer', 'min' => 1, 'max' => 8, ], '__integerMin25Max10000' => [ 'type' => 'integer', 'min' => 25, 'max' => 10000, ], '__integerMin25Max2000' => [ 'type' => 'integer', 'min' => 25, 'max' => 2000, ], '__integerMin3' => [ 'type' => 'integer', 'min' => 3, ], '__integerMin30' => [ 'type' => 'integer', 'min' => 30, ], '__integerMin4Max20' => [ 'type' => 'integer', 'min' => 4, 'max' => 20, ], '__integerMin96Max600' => [ 'type' => 'integer', 'min' => 96, 'max' => 600, ], '__integerMinNegative1000Max1000' => [ 'type' => 'integer', 'min' => -1000, 'max' => 1000, ], '__integerMinNegative60Max6' => [ 'type' => 'integer', 'min' => -60, 'max' => 6, ], '__integerMinNegative60Max60' => [ 'type' => 'integer', 'min' => -60, 'max' => 60, ], '__listOfAudioChannelMapping' => [ 'type' => 'list', 'member' => [ 'shape' => 'AudioChannelMapping', ], ], '__listOfAudioDescription' => [ 'type' => 'list', 'member' => [ 'shape' => 'AudioDescription', ], ], '__listOfAudioSelector' => [ 'type' => 'list', 'member' => [ 'shape' => 'AudioSelector', ], ], '__listOfCaptionDescription' => [ 'type' => 'list', 'member' => [ 'shape' => 'CaptionDescription', ], ], '__listOfCaptionLanguageMapping' => [ 'type' => 'list', 'member' => [ 'shape' => 'CaptionLanguageMapping', ], ], '__listOfCaptionSelector' => [ 'type' => 'list', 'member' => [ 'shape' => 'CaptionSelector', ], ], '__listOfChannelEgressEndpoint' => [ 'type' => 'list', 'member' => [ 'shape' => 'ChannelEgressEndpoint', ], ], '__listOfChannelSummary' => [ 'type' => 'list', 'member' => [ 'shape' => 'ChannelSummary', ], ], '__listOfHlsAdMarkers' => [ 'type' => 'list', 'member' => [ 'shape' => 'HlsAdMarkers', ], ], '__listOfInput' => [ 'type' => 'list', 'member' => [ 'shape' => 'Input', ], ], '__listOfInputAttachment' => [ 'type' => 'list', 'member' => [ 'shape' => 'InputAttachment', ], ], '__listOfInputChannelLevel' => [ 'type' => 'list', 'member' => [ 'shape' => 'InputChannelLevel', ], ], '__listOfInputDestination' => [ 'type' => 'list', 'member' => [ 'shape' => 'InputDestination', ], ], '__listOfInputDestinationRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'InputDestinationRequest', ], ], '__listOfInputSecurityGroup' => [ 'type' => 'list', 'member' => [ 'shape' => 'InputSecurityGroup', ], ], '__listOfInputSource' => [ 'type' => 'list', 'member' => [ 'shape' => 'InputSource', ], ], '__listOfInputSourceRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'InputSourceRequest', ], ], '__listOfInputWhitelistRule' => [ 'type' => 'list', 'member' => [ 'shape' => 'InputWhitelistRule', ], ], '__listOfInputWhitelistRuleCidr' => [ 'type' => 'list', 'member' => [ 'shape' => 'InputWhitelistRuleCidr', ], ], '__listOfMediaConnectFlow' => [ 'type' => 'list', 'member' => [ 'shape' => 'MediaConnectFlow', ], ], '__listOfMediaConnectFlowRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'MediaConnectFlowRequest', ], ], '__listOfMediaPackageOutputDestinationSettings' => [ 'type' => 'list', 'member' => [ 'shape' => 'MediaPackageOutputDestinationSettings', ], ], '__listOfOffering' => [ 'type' => 'list', 'member' => [ 'shape' => 'Offering', ], ], '__listOfOutput' => [ 'type' => 'list', 'member' => [ 'shape' => 'Output', ], ], '__listOfOutputDestination' => [ 'type' => 'list', 'member' => [ 'shape' => 'OutputDestination', ], ], '__listOfOutputDestinationSettings' => [ 'type' => 'list', 'member' => [ 'shape' => 'OutputDestinationSettings', ], ], '__listOfOutputGroup' => [ 'type' => 'list', 'member' => [ 'shape' => 'OutputGroup', ], ], '__listOfPipelinePauseStateSettings' => [ 'type' => 'list', 'member' => [ 'shape' => 'PipelinePauseStateSettings', ], ], '__listOfReservation' => [ 'type' => 'list', 'member' => [ 'shape' => 'Reservation', ], ], '__listOfScheduleAction' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduleAction', ], ], '__listOfScte35Descriptor' => [ 'type' => 'list', 'member' => [ 'shape' => 'Scte35Descriptor', ], ], '__listOfValidationError' => [ 'type' => 'list', 'member' => [ 'shape' => 'ValidationError', ], ], '__listOfVideoDescription' => [ 'type' => 'list', 'member' => [ 'shape' => 'VideoDescription', ], ], '__listOf__string' => [ 'type' => 'list', 'member' => [ 'shape' => '__string', ], ], '__long' => [ 'type' => 'long', ], '__string' => [ 'type' => 'string', ], '__stringMax32' => [ 'type' => 'string', 'max' => 32, ], '__stringMin1' => [ 'type' => 'string', 'min' => 1, ], '__stringMin1Max255' => [ 'type' => 'string', 'min' => 1, 'max' => 255, ], '__stringMin1Max256' => [ 'type' => 'string', 'min' => 1, 'max' => 256, ], '__stringMin32Max32' => [ 'type' => 'string', 'min' => 32, 'max' => 32, ], '__stringMin34Max34' => [ 'type' => 'string', 'min' => 34, 'max' => 34, ], '__stringMin3Max3' => [ 'type' => 'string', 'min' => 3, 'max' => 3, ], '__stringMin6Max6' => [ 'type' => 'string', 'min' => 6, 'max' => 6, ], '__timestampIso8601' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], '__timestampUnix' => [ 'type' => 'timestamp', 'timestampFormat' => 'unixTimestamp', ], ],]; diff --git a/lib/aws/Aws/data/medialive/2017-10-14/paginators-1.json.php b/lib/aws/Aws/data/medialive/2017-10-14/paginators-1.json.php new file mode 100644 index 0000000..39aa990 --- /dev/null +++ b/lib/aws/Aws/data/medialive/2017-10-14/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/medialive/2017-10-14/paginators-1.json +return [ 'pagination' => [ 'DescribeSchedule' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListChannels' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListInputSecurityGroups' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListInputs' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListOfferings' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListReservations' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/mediapackage/2017-10-12/api-2.json.php b/lib/aws/Aws/data/mediapackage/2017-10-12/api-2.json.php new file mode 100644 index 0000000..5a2b14f --- /dev/null +++ b/lib/aws/Aws/data/mediapackage/2017-10-12/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mediapackage/2017-10-12/api-2.json +return [ 'metadata' => [ 'apiVersion' => '2017-10-12', 'endpointPrefix' => 'mediapackage', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'MediaPackage', 'serviceFullName' => 'AWS Elemental MediaPackage', 'serviceId' => 'MediaPackage', 'signatureVersion' => 'v4', 'signingName' => 'mediapackage', 'uid' => 'mediapackage-2017-10-12', ], 'operations' => [ 'CreateChannel' => [ 'errors' => [ [ 'shape' => 'UnprocessableEntityException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'http' => [ 'method' => 'POST', 'requestUri' => '/channels', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateChannelRequest', ], 'name' => 'CreateChannel', 'output' => [ 'shape' => 'CreateChannelResponse', ], ], 'CreateOriginEndpoint' => [ 'errors' => [ [ 'shape' => 'UnprocessableEntityException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'http' => [ 'method' => 'POST', 'requestUri' => '/origin_endpoints', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateOriginEndpointRequest', ], 'name' => 'CreateOriginEndpoint', 'output' => [ 'shape' => 'CreateOriginEndpointResponse', ], ], 'DeleteChannel' => [ 'errors' => [ [ 'shape' => 'UnprocessableEntityException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'http' => [ 'method' => 'DELETE', 'requestUri' => '/channels/{id}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteChannelRequest', ], 'name' => 'DeleteChannel', 'output' => [ 'shape' => 'DeleteChannelResponse', ], ], 'DeleteOriginEndpoint' => [ 'errors' => [ [ 'shape' => 'UnprocessableEntityException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'http' => [ 'method' => 'DELETE', 'requestUri' => '/origin_endpoints/{id}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteOriginEndpointRequest', ], 'name' => 'DeleteOriginEndpoint', 'output' => [ 'shape' => 'DeleteOriginEndpointResponse', ], ], 'DescribeChannel' => [ 'errors' => [ [ 'shape' => 'UnprocessableEntityException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'http' => [ 'method' => 'GET', 'requestUri' => '/channels/{id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeChannelRequest', ], 'name' => 'DescribeChannel', 'output' => [ 'shape' => 'DescribeChannelResponse', ], ], 'DescribeOriginEndpoint' => [ 'errors' => [ [ 'shape' => 'UnprocessableEntityException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'http' => [ 'method' => 'GET', 'requestUri' => '/origin_endpoints/{id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeOriginEndpointRequest', ], 'name' => 'DescribeOriginEndpoint', 'output' => [ 'shape' => 'DescribeOriginEndpointResponse', ], ], 'ListChannels' => [ 'errors' => [ [ 'shape' => 'UnprocessableEntityException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'http' => [ 'method' => 'GET', 'requestUri' => '/channels', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListChannelsRequest', ], 'name' => 'ListChannels', 'output' => [ 'shape' => 'ListChannelsResponse', ], ], 'ListOriginEndpoints' => [ 'errors' => [ [ 'shape' => 'UnprocessableEntityException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'http' => [ 'method' => 'GET', 'requestUri' => '/origin_endpoints', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListOriginEndpointsRequest', ], 'name' => 'ListOriginEndpoints', 'output' => [ 'shape' => 'ListOriginEndpointsResponse', ], ], 'ListTagsForResource' => [ 'errors' => [], 'http' => [ 'method' => 'GET', 'requestUri' => '/tags/{resource-arn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'name' => 'ListTagsForResource', 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], ], 'RotateChannelCredentials' => [ 'deprecated' => true, 'deprecatedMessage' => 'This API is deprecated. Please use RotateIngestEndpointCredentials instead', 'errors' => [ [ 'shape' => 'UnprocessableEntityException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'http' => [ 'method' => 'PUT', 'requestUri' => '/channels/{id}/credentials', 'responseCode' => 200, ], 'input' => [ 'shape' => 'RotateChannelCredentialsRequest', ], 'name' => 'RotateChannelCredentials', 'output' => [ 'shape' => 'RotateChannelCredentialsResponse', ], ], 'RotateIngestEndpointCredentials' => [ 'errors' => [ [ 'shape' => 'UnprocessableEntityException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'http' => [ 'method' => 'PUT', 'requestUri' => '/channels/{id}/ingest_endpoints/{ingest_endpoint_id}/credentials', 'responseCode' => 200, ], 'input' => [ 'shape' => 'RotateIngestEndpointCredentialsRequest', ], 'name' => 'RotateIngestEndpointCredentials', 'output' => [ 'shape' => 'RotateIngestEndpointCredentialsResponse', ], ], 'TagResource' => [ 'errors' => [], 'http' => [ 'method' => 'POST', 'requestUri' => '/tags/{resource-arn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'name' => 'TagResource', ], 'UntagResource' => [ 'errors' => [], 'http' => [ 'method' => 'DELETE', 'requestUri' => '/tags/{resource-arn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'name' => 'UntagResource', ], 'UpdateChannel' => [ 'errors' => [ [ 'shape' => 'UnprocessableEntityException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'http' => [ 'method' => 'PUT', 'requestUri' => '/channels/{id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateChannelRequest', ], 'name' => 'UpdateChannel', 'output' => [ 'shape' => 'UpdateChannelResponse', ], ], 'UpdateOriginEndpoint' => [ 'errors' => [ [ 'shape' => 'UnprocessableEntityException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'http' => [ 'method' => 'PUT', 'requestUri' => '/origin_endpoints/{id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateOriginEndpointRequest', ], 'name' => 'UpdateOriginEndpoint', 'output' => [ 'shape' => 'UpdateOriginEndpointResponse', ], ], ], 'shapes' => [ 'AdMarkers' => [ 'enum' => [ 'NONE', 'SCTE35_ENHANCED', 'PASSTHROUGH', ], 'type' => 'string', ], 'Channel' => [ 'members' => [ 'Arn' => [ 'locationName' => 'arn', 'shape' => '__string', ], 'Description' => [ 'locationName' => 'description', 'shape' => '__string', ], 'HlsIngest' => [ 'locationName' => 'hlsIngest', 'shape' => 'HlsIngest', ], 'Id' => [ 'locationName' => 'id', 'shape' => '__string', ], 'Tags' => [ 'locationName' => 'tags', 'shape' => 'Tags', ], ], 'type' => 'structure', ], 'ChannelCreateParameters' => [ 'members' => [ 'Description' => [ 'locationName' => 'description', 'shape' => '__string', ], 'Id' => [ 'locationName' => 'id', 'shape' => '__string', ], 'Tags' => [ 'locationName' => 'tags', 'shape' => 'Tags', ], ], 'required' => [ 'Id', ], 'type' => 'structure', ], 'ChannelList' => [ 'members' => [ 'Channels' => [ 'locationName' => 'channels', 'shape' => '__listOfChannel', ], 'NextToken' => [ 'locationName' => 'nextToken', 'shape' => '__string', ], ], 'type' => 'structure', ], 'ChannelUpdateParameters' => [ 'members' => [ 'Description' => [ 'locationName' => 'description', 'shape' => '__string', ], ], 'type' => 'structure', ], 'CmafEncryption' => [ 'members' => [ 'KeyRotationIntervalSeconds' => [ 'locationName' => 'keyRotationIntervalSeconds', 'shape' => '__integer', ], 'SpekeKeyProvider' => [ 'locationName' => 'spekeKeyProvider', 'shape' => 'SpekeKeyProvider', ], ], 'required' => [ 'SpekeKeyProvider', ], 'type' => 'structure', ], 'CmafPackage' => [ 'members' => [ 'Encryption' => [ 'locationName' => 'encryption', 'shape' => 'CmafEncryption', ], 'HlsManifests' => [ 'locationName' => 'hlsManifests', 'shape' => '__listOfHlsManifest', ], 'SegmentDurationSeconds' => [ 'locationName' => 'segmentDurationSeconds', 'shape' => '__integer', ], 'SegmentPrefix' => [ 'locationName' => 'segmentPrefix', 'shape' => '__string', ], 'StreamSelection' => [ 'locationName' => 'streamSelection', 'shape' => 'StreamSelection', ], ], 'type' => 'structure', ], 'CmafPackageCreateOrUpdateParameters' => [ 'members' => [ 'Encryption' => [ 'locationName' => 'encryption', 'shape' => 'CmafEncryption', ], 'HlsManifests' => [ 'locationName' => 'hlsManifests', 'shape' => '__listOfHlsManifestCreateOrUpdateParameters', ], 'SegmentDurationSeconds' => [ 'locationName' => 'segmentDurationSeconds', 'shape' => '__integer', ], 'SegmentPrefix' => [ 'locationName' => 'segmentPrefix', 'shape' => '__string', ], 'StreamSelection' => [ 'locationName' => 'streamSelection', 'shape' => 'StreamSelection', ], ], 'type' => 'structure', ], 'CreateChannelRequest' => [ 'members' => [ 'Description' => [ 'locationName' => 'description', 'shape' => '__string', ], 'Id' => [ 'locationName' => 'id', 'shape' => '__string', ], 'Tags' => [ 'locationName' => 'tags', 'shape' => 'Tags', ], ], 'required' => [ 'Id', ], 'type' => 'structure', ], 'CreateChannelResponse' => [ 'members' => [ 'Arn' => [ 'locationName' => 'arn', 'shape' => '__string', ], 'Description' => [ 'locationName' => 'description', 'shape' => '__string', ], 'HlsIngest' => [ 'locationName' => 'hlsIngest', 'shape' => 'HlsIngest', ], 'Id' => [ 'locationName' => 'id', 'shape' => '__string', ], 'Tags' => [ 'locationName' => 'tags', 'shape' => 'Tags', ], ], 'type' => 'structure', ], 'CreateOriginEndpointRequest' => [ 'members' => [ 'ChannelId' => [ 'locationName' => 'channelId', 'shape' => '__string', ], 'CmafPackage' => [ 'locationName' => 'cmafPackage', 'shape' => 'CmafPackageCreateOrUpdateParameters', ], 'DashPackage' => [ 'locationName' => 'dashPackage', 'shape' => 'DashPackage', ], 'Description' => [ 'locationName' => 'description', 'shape' => '__string', ], 'HlsPackage' => [ 'locationName' => 'hlsPackage', 'shape' => 'HlsPackage', ], 'Id' => [ 'locationName' => 'id', 'shape' => '__string', ], 'ManifestName' => [ 'locationName' => 'manifestName', 'shape' => '__string', ], 'MssPackage' => [ 'locationName' => 'mssPackage', 'shape' => 'MssPackage', ], 'StartoverWindowSeconds' => [ 'locationName' => 'startoverWindowSeconds', 'shape' => '__integer', ], 'Tags' => [ 'locationName' => 'tags', 'shape' => 'Tags', ], 'TimeDelaySeconds' => [ 'locationName' => 'timeDelaySeconds', 'shape' => '__integer', ], 'Whitelist' => [ 'locationName' => 'whitelist', 'shape' => '__listOf__string', ], ], 'required' => [ 'ChannelId', 'Id', ], 'type' => 'structure', ], 'CreateOriginEndpointResponse' => [ 'members' => [ 'Arn' => [ 'locationName' => 'arn', 'shape' => '__string', ], 'ChannelId' => [ 'locationName' => 'channelId', 'shape' => '__string', ], 'CmafPackage' => [ 'locationName' => 'cmafPackage', 'shape' => 'CmafPackage', ], 'DashPackage' => [ 'locationName' => 'dashPackage', 'shape' => 'DashPackage', ], 'Description' => [ 'locationName' => 'description', 'shape' => '__string', ], 'HlsPackage' => [ 'locationName' => 'hlsPackage', 'shape' => 'HlsPackage', ], 'Id' => [ 'locationName' => 'id', 'shape' => '__string', ], 'ManifestName' => [ 'locationName' => 'manifestName', 'shape' => '__string', ], 'MssPackage' => [ 'locationName' => 'mssPackage', 'shape' => 'MssPackage', ], 'StartoverWindowSeconds' => [ 'locationName' => 'startoverWindowSeconds', 'shape' => '__integer', ], 'Tags' => [ 'locationName' => 'tags', 'shape' => 'Tags', ], 'TimeDelaySeconds' => [ 'locationName' => 'timeDelaySeconds', 'shape' => '__integer', ], 'Url' => [ 'locationName' => 'url', 'shape' => '__string', ], 'Whitelist' => [ 'locationName' => 'whitelist', 'shape' => '__listOf__string', ], ], 'type' => 'structure', ], 'DashEncryption' => [ 'members' => [ 'KeyRotationIntervalSeconds' => [ 'locationName' => 'keyRotationIntervalSeconds', 'shape' => '__integer', ], 'SpekeKeyProvider' => [ 'locationName' => 'spekeKeyProvider', 'shape' => 'SpekeKeyProvider', ], ], 'required' => [ 'SpekeKeyProvider', ], 'type' => 'structure', ], 'DashPackage' => [ 'members' => [ 'Encryption' => [ 'locationName' => 'encryption', 'shape' => 'DashEncryption', ], 'ManifestLayout' => [ 'locationName' => 'manifestLayout', 'shape' => 'ManifestLayout', ], 'ManifestWindowSeconds' => [ 'locationName' => 'manifestWindowSeconds', 'shape' => '__integer', ], 'MinBufferTimeSeconds' => [ 'locationName' => 'minBufferTimeSeconds', 'shape' => '__integer', ], 'MinUpdatePeriodSeconds' => [ 'locationName' => 'minUpdatePeriodSeconds', 'shape' => '__integer', ], 'PeriodTriggers' => [ 'locationName' => 'periodTriggers', 'shape' => '__listOf__PeriodTriggersElement', ], 'Profile' => [ 'locationName' => 'profile', 'shape' => 'Profile', ], 'SegmentDurationSeconds' => [ 'locationName' => 'segmentDurationSeconds', 'shape' => '__integer', ], 'SegmentTemplateFormat' => [ 'locationName' => 'segmentTemplateFormat', 'shape' => 'SegmentTemplateFormat', ], 'StreamSelection' => [ 'locationName' => 'streamSelection', 'shape' => 'StreamSelection', ], 'SuggestedPresentationDelaySeconds' => [ 'locationName' => 'suggestedPresentationDelaySeconds', 'shape' => '__integer', ], ], 'type' => 'structure', ], 'DeleteChannelRequest' => [ 'members' => [ 'Id' => [ 'location' => 'uri', 'locationName' => 'id', 'shape' => '__string', ], ], 'required' => [ 'Id', ], 'type' => 'structure', ], 'DeleteChannelResponse' => [ 'members' => [], 'type' => 'structure', ], 'DeleteOriginEndpointRequest' => [ 'members' => [ 'Id' => [ 'location' => 'uri', 'locationName' => 'id', 'shape' => '__string', ], ], 'required' => [ 'Id', ], 'type' => 'structure', ], 'DeleteOriginEndpointResponse' => [ 'members' => [], 'type' => 'structure', ], 'DescribeChannelRequest' => [ 'members' => [ 'Id' => [ 'location' => 'uri', 'locationName' => 'id', 'shape' => '__string', ], ], 'required' => [ 'Id', ], 'type' => 'structure', ], 'DescribeChannelResponse' => [ 'members' => [ 'Arn' => [ 'locationName' => 'arn', 'shape' => '__string', ], 'Description' => [ 'locationName' => 'description', 'shape' => '__string', ], 'HlsIngest' => [ 'locationName' => 'hlsIngest', 'shape' => 'HlsIngest', ], 'Id' => [ 'locationName' => 'id', 'shape' => '__string', ], 'Tags' => [ 'locationName' => 'tags', 'shape' => 'Tags', ], ], 'type' => 'structure', ], 'DescribeOriginEndpointRequest' => [ 'members' => [ 'Id' => [ 'location' => 'uri', 'locationName' => 'id', 'shape' => '__string', ], ], 'required' => [ 'Id', ], 'type' => 'structure', ], 'DescribeOriginEndpointResponse' => [ 'members' => [ 'Arn' => [ 'locationName' => 'arn', 'shape' => '__string', ], 'ChannelId' => [ 'locationName' => 'channelId', 'shape' => '__string', ], 'CmafPackage' => [ 'locationName' => 'cmafPackage', 'shape' => 'CmafPackage', ], 'DashPackage' => [ 'locationName' => 'dashPackage', 'shape' => 'DashPackage', ], 'Description' => [ 'locationName' => 'description', 'shape' => '__string', ], 'HlsPackage' => [ 'locationName' => 'hlsPackage', 'shape' => 'HlsPackage', ], 'Id' => [ 'locationName' => 'id', 'shape' => '__string', ], 'ManifestName' => [ 'locationName' => 'manifestName', 'shape' => '__string', ], 'MssPackage' => [ 'locationName' => 'mssPackage', 'shape' => 'MssPackage', ], 'StartoverWindowSeconds' => [ 'locationName' => 'startoverWindowSeconds', 'shape' => '__integer', ], 'Tags' => [ 'locationName' => 'tags', 'shape' => 'Tags', ], 'TimeDelaySeconds' => [ 'locationName' => 'timeDelaySeconds', 'shape' => '__integer', ], 'Url' => [ 'locationName' => 'url', 'shape' => '__string', ], 'Whitelist' => [ 'locationName' => 'whitelist', 'shape' => '__listOf__string', ], ], 'type' => 'structure', ], 'EncryptionMethod' => [ 'enum' => [ 'AES_128', 'SAMPLE_AES', ], 'type' => 'string', ], 'ForbiddenException' => [ 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, 'members' => [ 'Message' => [ 'locationName' => 'message', 'shape' => '__string', ], ], 'type' => 'structure', ], 'HlsEncryption' => [ 'members' => [ 'ConstantInitializationVector' => [ 'locationName' => 'constantInitializationVector', 'shape' => '__string', ], 'EncryptionMethod' => [ 'locationName' => 'encryptionMethod', 'shape' => 'EncryptionMethod', ], 'KeyRotationIntervalSeconds' => [ 'locationName' => 'keyRotationIntervalSeconds', 'shape' => '__integer', ], 'RepeatExtXKey' => [ 'locationName' => 'repeatExtXKey', 'shape' => '__boolean', ], 'SpekeKeyProvider' => [ 'locationName' => 'spekeKeyProvider', 'shape' => 'SpekeKeyProvider', ], ], 'required' => [ 'SpekeKeyProvider', ], 'type' => 'structure', ], 'HlsIngest' => [ 'members' => [ 'IngestEndpoints' => [ 'locationName' => 'ingestEndpoints', 'shape' => '__listOfIngestEndpoint', ], ], 'type' => 'structure', ], 'HlsManifest' => [ 'members' => [ 'AdMarkers' => [ 'locationName' => 'adMarkers', 'shape' => 'AdMarkers', ], 'Id' => [ 'locationName' => 'id', 'shape' => '__string', ], 'IncludeIframeOnlyStream' => [ 'locationName' => 'includeIframeOnlyStream', 'shape' => '__boolean', ], 'ManifestName' => [ 'locationName' => 'manifestName', 'shape' => '__string', ], 'PlaylistType' => [ 'locationName' => 'playlistType', 'shape' => 'PlaylistType', ], 'PlaylistWindowSeconds' => [ 'locationName' => 'playlistWindowSeconds', 'shape' => '__integer', ], 'ProgramDateTimeIntervalSeconds' => [ 'locationName' => 'programDateTimeIntervalSeconds', 'shape' => '__integer', ], 'Url' => [ 'locationName' => 'url', 'shape' => '__string', ], ], 'required' => [ 'Id', ], 'type' => 'structure', ], 'HlsManifestCreateOrUpdateParameters' => [ 'members' => [ 'AdMarkers' => [ 'locationName' => 'adMarkers', 'shape' => 'AdMarkers', ], 'Id' => [ 'locationName' => 'id', 'shape' => '__string', ], 'IncludeIframeOnlyStream' => [ 'locationName' => 'includeIframeOnlyStream', 'shape' => '__boolean', ], 'ManifestName' => [ 'locationName' => 'manifestName', 'shape' => '__string', ], 'PlaylistType' => [ 'locationName' => 'playlistType', 'shape' => 'PlaylistType', ], 'PlaylistWindowSeconds' => [ 'locationName' => 'playlistWindowSeconds', 'shape' => '__integer', ], 'ProgramDateTimeIntervalSeconds' => [ 'locationName' => 'programDateTimeIntervalSeconds', 'shape' => '__integer', ], ], 'required' => [ 'Id', ], 'type' => 'structure', ], 'HlsPackage' => [ 'members' => [ 'AdMarkers' => [ 'locationName' => 'adMarkers', 'shape' => 'AdMarkers', ], 'Encryption' => [ 'locationName' => 'encryption', 'shape' => 'HlsEncryption', ], 'IncludeIframeOnlyStream' => [ 'locationName' => 'includeIframeOnlyStream', 'shape' => '__boolean', ], 'PlaylistType' => [ 'locationName' => 'playlistType', 'shape' => 'PlaylistType', ], 'PlaylistWindowSeconds' => [ 'locationName' => 'playlistWindowSeconds', 'shape' => '__integer', ], 'ProgramDateTimeIntervalSeconds' => [ 'locationName' => 'programDateTimeIntervalSeconds', 'shape' => '__integer', ], 'SegmentDurationSeconds' => [ 'locationName' => 'segmentDurationSeconds', 'shape' => '__integer', ], 'StreamSelection' => [ 'locationName' => 'streamSelection', 'shape' => 'StreamSelection', ], 'UseAudioRenditionGroup' => [ 'locationName' => 'useAudioRenditionGroup', 'shape' => '__boolean', ], ], 'type' => 'structure', ], 'IngestEndpoint' => [ 'members' => [ 'Id' => [ 'locationName' => 'id', 'shape' => '__string', ], 'Password' => [ 'locationName' => 'password', 'shape' => '__string', ], 'Url' => [ 'locationName' => 'url', 'shape' => '__string', ], 'Username' => [ 'locationName' => 'username', 'shape' => '__string', ], ], 'type' => 'structure', ], 'InternalServerErrorException' => [ 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'members' => [ 'Message' => [ 'locationName' => 'message', 'shape' => '__string', ], ], 'type' => 'structure', ], 'ListChannelsRequest' => [ 'members' => [ 'MaxResults' => [ 'location' => 'querystring', 'locationName' => 'maxResults', 'shape' => 'MaxResults', ], 'NextToken' => [ 'location' => 'querystring', 'locationName' => 'nextToken', 'shape' => '__string', ], ], 'type' => 'structure', ], 'ListChannelsResponse' => [ 'members' => [ 'Channels' => [ 'locationName' => 'channels', 'shape' => '__listOfChannel', ], 'NextToken' => [ 'locationName' => 'nextToken', 'shape' => '__string', ], ], 'type' => 'structure', ], 'ListOriginEndpointsRequest' => [ 'members' => [ 'ChannelId' => [ 'location' => 'querystring', 'locationName' => 'channelId', 'shape' => '__string', ], 'MaxResults' => [ 'location' => 'querystring', 'locationName' => 'maxResults', 'shape' => 'MaxResults', ], 'NextToken' => [ 'location' => 'querystring', 'locationName' => 'nextToken', 'shape' => '__string', ], ], 'type' => 'structure', ], 'ListOriginEndpointsResponse' => [ 'members' => [ 'NextToken' => [ 'locationName' => 'nextToken', 'shape' => '__string', ], 'OriginEndpoints' => [ 'locationName' => 'originEndpoints', 'shape' => '__listOfOriginEndpoint', ], ], 'type' => 'structure', ], 'ListTagsForResourceRequest' => [ 'members' => [ 'ResourceArn' => [ 'location' => 'uri', 'locationName' => 'resource-arn', 'shape' => '__string', ], ], 'required' => [ 'ResourceArn', ], 'type' => 'structure', ], 'ListTagsForResourceResponse' => [ 'members' => [ 'Tags' => [ 'locationName' => 'tags', 'shape' => '__mapOf__string', ], ], 'type' => 'structure', ], 'ManifestLayout' => [ 'enum' => [ 'FULL', 'COMPACT', ], 'type' => 'string', ], 'MaxResults' => [ 'max' => 1000, 'min' => 1, 'type' => 'integer', ], 'MssEncryption' => [ 'members' => [ 'SpekeKeyProvider' => [ 'locationName' => 'spekeKeyProvider', 'shape' => 'SpekeKeyProvider', ], ], 'required' => [ 'SpekeKeyProvider', ], 'type' => 'structure', ], 'MssPackage' => [ 'members' => [ 'Encryption' => [ 'locationName' => 'encryption', 'shape' => 'MssEncryption', ], 'ManifestWindowSeconds' => [ 'locationName' => 'manifestWindowSeconds', 'shape' => '__integer', ], 'SegmentDurationSeconds' => [ 'locationName' => 'segmentDurationSeconds', 'shape' => '__integer', ], 'StreamSelection' => [ 'locationName' => 'streamSelection', 'shape' => 'StreamSelection', ], ], 'type' => 'structure', ], 'NotFoundException' => [ 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, 'members' => [ 'Message' => [ 'locationName' => 'message', 'shape' => '__string', ], ], 'type' => 'structure', ], 'OriginEndpoint' => [ 'members' => [ 'Arn' => [ 'locationName' => 'arn', 'shape' => '__string', ], 'ChannelId' => [ 'locationName' => 'channelId', 'shape' => '__string', ], 'CmafPackage' => [ 'locationName' => 'cmafPackage', 'shape' => 'CmafPackage', ], 'DashPackage' => [ 'locationName' => 'dashPackage', 'shape' => 'DashPackage', ], 'Description' => [ 'locationName' => 'description', 'shape' => '__string', ], 'HlsPackage' => [ 'locationName' => 'hlsPackage', 'shape' => 'HlsPackage', ], 'Id' => [ 'locationName' => 'id', 'shape' => '__string', ], 'ManifestName' => [ 'locationName' => 'manifestName', 'shape' => '__string', ], 'MssPackage' => [ 'locationName' => 'mssPackage', 'shape' => 'MssPackage', ], 'StartoverWindowSeconds' => [ 'locationName' => 'startoverWindowSeconds', 'shape' => '__integer', ], 'Tags' => [ 'locationName' => 'tags', 'shape' => 'Tags', ], 'TimeDelaySeconds' => [ 'locationName' => 'timeDelaySeconds', 'shape' => '__integer', ], 'Url' => [ 'locationName' => 'url', 'shape' => '__string', ], 'Whitelist' => [ 'locationName' => 'whitelist', 'shape' => '__listOf__string', ], ], 'type' => 'structure', ], 'OriginEndpointCreateParameters' => [ 'members' => [ 'ChannelId' => [ 'locationName' => 'channelId', 'shape' => '__string', ], 'CmafPackage' => [ 'locationName' => 'cmafPackage', 'shape' => 'CmafPackageCreateOrUpdateParameters', ], 'DashPackage' => [ 'locationName' => 'dashPackage', 'shape' => 'DashPackage', ], 'Description' => [ 'locationName' => 'description', 'shape' => '__string', ], 'HlsPackage' => [ 'locationName' => 'hlsPackage', 'shape' => 'HlsPackage', ], 'Id' => [ 'locationName' => 'id', 'shape' => '__string', ], 'ManifestName' => [ 'locationName' => 'manifestName', 'shape' => '__string', ], 'MssPackage' => [ 'locationName' => 'mssPackage', 'shape' => 'MssPackage', ], 'StartoverWindowSeconds' => [ 'locationName' => 'startoverWindowSeconds', 'shape' => '__integer', ], 'Tags' => [ 'locationName' => 'tags', 'shape' => 'Tags', ], 'TimeDelaySeconds' => [ 'locationName' => 'timeDelaySeconds', 'shape' => '__integer', ], 'Whitelist' => [ 'locationName' => 'whitelist', 'shape' => '__listOf__string', ], ], 'required' => [ 'Id', 'ChannelId', ], 'type' => 'structure', ], 'OriginEndpointList' => [ 'members' => [ 'NextToken' => [ 'locationName' => 'nextToken', 'shape' => '__string', ], 'OriginEndpoints' => [ 'locationName' => 'originEndpoints', 'shape' => '__listOfOriginEndpoint', ], ], 'type' => 'structure', ], 'OriginEndpointUpdateParameters' => [ 'members' => [ 'CmafPackage' => [ 'locationName' => 'cmafPackage', 'shape' => 'CmafPackageCreateOrUpdateParameters', ], 'DashPackage' => [ 'locationName' => 'dashPackage', 'shape' => 'DashPackage', ], 'Description' => [ 'locationName' => 'description', 'shape' => '__string', ], 'HlsPackage' => [ 'locationName' => 'hlsPackage', 'shape' => 'HlsPackage', ], 'ManifestName' => [ 'locationName' => 'manifestName', 'shape' => '__string', ], 'MssPackage' => [ 'locationName' => 'mssPackage', 'shape' => 'MssPackage', ], 'StartoverWindowSeconds' => [ 'locationName' => 'startoverWindowSeconds', 'shape' => '__integer', ], 'TimeDelaySeconds' => [ 'locationName' => 'timeDelaySeconds', 'shape' => '__integer', ], 'Whitelist' => [ 'locationName' => 'whitelist', 'shape' => '__listOf__string', ], ], 'type' => 'structure', ], 'PlaylistType' => [ 'enum' => [ 'NONE', 'EVENT', 'VOD', ], 'type' => 'string', ], 'Profile' => [ 'enum' => [ 'NONE', 'HBBTV_1_5', ], 'type' => 'string', ], 'RotateChannelCredentialsRequest' => [ 'deprecated' => true, 'members' => [ 'Id' => [ 'location' => 'uri', 'locationName' => 'id', 'shape' => '__string', ], ], 'required' => [ 'Id', ], 'type' => 'structure', ], 'RotateChannelCredentialsResponse' => [ 'deprecated' => true, 'members' => [ 'Arn' => [ 'locationName' => 'arn', 'shape' => '__string', ], 'Description' => [ 'locationName' => 'description', 'shape' => '__string', ], 'HlsIngest' => [ 'locationName' => 'hlsIngest', 'shape' => 'HlsIngest', ], 'Id' => [ 'locationName' => 'id', 'shape' => '__string', ], 'Tags' => [ 'locationName' => 'tags', 'shape' => 'Tags', ], ], 'type' => 'structure', ], 'RotateIngestEndpointCredentialsRequest' => [ 'members' => [ 'Id' => [ 'location' => 'uri', 'locationName' => 'id', 'shape' => '__string', ], 'IngestEndpointId' => [ 'location' => 'uri', 'locationName' => 'ingest_endpoint_id', 'shape' => '__string', ], ], 'required' => [ 'IngestEndpointId', 'Id', ], 'type' => 'structure', ], 'RotateIngestEndpointCredentialsResponse' => [ 'members' => [ 'Arn' => [ 'locationName' => 'arn', 'shape' => '__string', ], 'Description' => [ 'locationName' => 'description', 'shape' => '__string', ], 'HlsIngest' => [ 'locationName' => 'hlsIngest', 'shape' => 'HlsIngest', ], 'Id' => [ 'locationName' => 'id', 'shape' => '__string', ], 'Tags' => [ 'locationName' => 'tags', 'shape' => 'Tags', ], ], 'type' => 'structure', ], 'SegmentTemplateFormat' => [ 'enum' => [ 'NUMBER_WITH_TIMELINE', 'TIME_WITH_TIMELINE', ], 'type' => 'string', ], 'ServiceUnavailableException' => [ 'error' => [ 'httpStatusCode' => 503, ], 'exception' => true, 'members' => [ 'Message' => [ 'locationName' => 'message', 'shape' => '__string', ], ], 'type' => 'structure', ], 'SpekeKeyProvider' => [ 'members' => [ 'CertificateArn' => [ 'locationName' => 'certificateArn', 'shape' => '__string', ], 'ResourceId' => [ 'locationName' => 'resourceId', 'shape' => '__string', ], 'RoleArn' => [ 'locationName' => 'roleArn', 'shape' => '__string', ], 'SystemIds' => [ 'locationName' => 'systemIds', 'shape' => '__listOf__string', ], 'Url' => [ 'locationName' => 'url', 'shape' => '__string', ], ], 'required' => [ 'Url', 'ResourceId', 'RoleArn', 'SystemIds', ], 'type' => 'structure', ], 'StreamOrder' => [ 'enum' => [ 'ORIGINAL', 'VIDEO_BITRATE_ASCENDING', 'VIDEO_BITRATE_DESCENDING', ], 'type' => 'string', ], 'StreamSelection' => [ 'members' => [ 'MaxVideoBitsPerSecond' => [ 'locationName' => 'maxVideoBitsPerSecond', 'shape' => '__integer', ], 'MinVideoBitsPerSecond' => [ 'locationName' => 'minVideoBitsPerSecond', 'shape' => '__integer', ], 'StreamOrder' => [ 'locationName' => 'streamOrder', 'shape' => 'StreamOrder', ], ], 'type' => 'structure', ], 'TagResourceRequest' => [ 'members' => [ 'ResourceArn' => [ 'location' => 'uri', 'locationName' => 'resource-arn', 'shape' => '__string', ], 'Tags' => [ 'locationName' => 'tags', 'shape' => '__mapOf__string', ], ], 'required' => [ 'ResourceArn', 'Tags', ], 'type' => 'structure', ], 'Tags' => [ 'key' => [ 'shape' => '__string', ], 'type' => 'map', 'value' => [ 'shape' => '__string', ], ], 'TagsModel' => [ 'members' => [ 'Tags' => [ 'locationName' => 'tags', 'shape' => '__mapOf__string', ], ], 'required' => [ 'Tags', ], 'type' => 'structure', ], 'TooManyRequestsException' => [ 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, 'members' => [ 'Message' => [ 'locationName' => 'message', 'shape' => '__string', ], ], 'type' => 'structure', ], 'UnprocessableEntityException' => [ 'error' => [ 'httpStatusCode' => 422, ], 'exception' => true, 'members' => [ 'Message' => [ 'locationName' => 'message', 'shape' => '__string', ], ], 'type' => 'structure', ], 'UntagResourceRequest' => [ 'members' => [ 'ResourceArn' => [ 'location' => 'uri', 'locationName' => 'resource-arn', 'shape' => '__string', ], 'TagKeys' => [ 'location' => 'querystring', 'locationName' => 'tagKeys', 'shape' => '__listOf__string', ], ], 'required' => [ 'TagKeys', 'ResourceArn', ], 'type' => 'structure', ], 'UpdateChannelRequest' => [ 'members' => [ 'Description' => [ 'locationName' => 'description', 'shape' => '__string', ], 'Id' => [ 'location' => 'uri', 'locationName' => 'id', 'shape' => '__string', ], ], 'required' => [ 'Id', ], 'type' => 'structure', ], 'UpdateChannelResponse' => [ 'members' => [ 'Arn' => [ 'locationName' => 'arn', 'shape' => '__string', ], 'Description' => [ 'locationName' => 'description', 'shape' => '__string', ], 'HlsIngest' => [ 'locationName' => 'hlsIngest', 'shape' => 'HlsIngest', ], 'Id' => [ 'locationName' => 'id', 'shape' => '__string', ], 'Tags' => [ 'locationName' => 'tags', 'shape' => 'Tags', ], ], 'type' => 'structure', ], 'UpdateOriginEndpointRequest' => [ 'members' => [ 'CmafPackage' => [ 'locationName' => 'cmafPackage', 'shape' => 'CmafPackageCreateOrUpdateParameters', ], 'DashPackage' => [ 'locationName' => 'dashPackage', 'shape' => 'DashPackage', ], 'Description' => [ 'locationName' => 'description', 'shape' => '__string', ], 'HlsPackage' => [ 'locationName' => 'hlsPackage', 'shape' => 'HlsPackage', ], 'Id' => [ 'location' => 'uri', 'locationName' => 'id', 'shape' => '__string', ], 'ManifestName' => [ 'locationName' => 'manifestName', 'shape' => '__string', ], 'MssPackage' => [ 'locationName' => 'mssPackage', 'shape' => 'MssPackage', ], 'StartoverWindowSeconds' => [ 'locationName' => 'startoverWindowSeconds', 'shape' => '__integer', ], 'TimeDelaySeconds' => [ 'locationName' => 'timeDelaySeconds', 'shape' => '__integer', ], 'Whitelist' => [ 'locationName' => 'whitelist', 'shape' => '__listOf__string', ], ], 'required' => [ 'Id', ], 'type' => 'structure', ], 'UpdateOriginEndpointResponse' => [ 'members' => [ 'Arn' => [ 'locationName' => 'arn', 'shape' => '__string', ], 'ChannelId' => [ 'locationName' => 'channelId', 'shape' => '__string', ], 'CmafPackage' => [ 'locationName' => 'cmafPackage', 'shape' => 'CmafPackage', ], 'DashPackage' => [ 'locationName' => 'dashPackage', 'shape' => 'DashPackage', ], 'Description' => [ 'locationName' => 'description', 'shape' => '__string', ], 'HlsPackage' => [ 'locationName' => 'hlsPackage', 'shape' => 'HlsPackage', ], 'Id' => [ 'locationName' => 'id', 'shape' => '__string', ], 'ManifestName' => [ 'locationName' => 'manifestName', 'shape' => '__string', ], 'MssPackage' => [ 'locationName' => 'mssPackage', 'shape' => 'MssPackage', ], 'StartoverWindowSeconds' => [ 'locationName' => 'startoverWindowSeconds', 'shape' => '__integer', ], 'Tags' => [ 'locationName' => 'tags', 'shape' => 'Tags', ], 'TimeDelaySeconds' => [ 'locationName' => 'timeDelaySeconds', 'shape' => '__integer', ], 'Url' => [ 'locationName' => 'url', 'shape' => '__string', ], 'Whitelist' => [ 'locationName' => 'whitelist', 'shape' => '__listOf__string', ], ], 'type' => 'structure', ], '__PeriodTriggersElement' => [ 'enum' => [ 'ADS', ], 'type' => 'string', ], '__boolean' => [ 'type' => 'boolean', ], '__double' => [ 'type' => 'double', ], '__integer' => [ 'type' => 'integer', ], '__listOfChannel' => [ 'member' => [ 'shape' => 'Channel', ], 'type' => 'list', ], '__listOfHlsManifest' => [ 'member' => [ 'shape' => 'HlsManifest', ], 'type' => 'list', ], '__listOfHlsManifestCreateOrUpdateParameters' => [ 'member' => [ 'shape' => 'HlsManifestCreateOrUpdateParameters', ], 'type' => 'list', ], '__listOfIngestEndpoint' => [ 'member' => [ 'shape' => 'IngestEndpoint', ], 'type' => 'list', ], '__listOfOriginEndpoint' => [ 'member' => [ 'shape' => 'OriginEndpoint', ], 'type' => 'list', ], '__listOf__PeriodTriggersElement' => [ 'member' => [ 'shape' => '__PeriodTriggersElement', ], 'type' => 'list', ], '__listOf__string' => [ 'member' => [ 'shape' => '__string', ], 'type' => 'list', ], '__long' => [ 'type' => 'long', ], '__mapOf__string' => [ 'key' => [ 'shape' => '__string', ], 'type' => 'map', 'value' => [ 'shape' => '__string', ], ], '__string' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/mediapackage/2017-10-12/paginators-1.json.php b/lib/aws/Aws/data/mediapackage/2017-10-12/paginators-1.json.php new file mode 100644 index 0000000..85f4fbd --- /dev/null +++ b/lib/aws/Aws/data/mediapackage/2017-10-12/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mediapackage/2017-10-12/paginators-1.json +return [ 'pagination' => [ 'ListChannels' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', 'result_key' => 'Channels', ], 'ListOriginEndpoints' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', 'result_key' => 'OriginEndpoints', ], ],]; diff --git a/lib/aws/Aws/data/mediastore-data/2017-09-01/api-2.json.php b/lib/aws/Aws/data/mediastore-data/2017-09-01/api-2.json.php new file mode 100644 index 0000000..ff58046 --- /dev/null +++ b/lib/aws/Aws/data/mediastore-data/2017-09-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mediastore-data/2017-09-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-09-01', 'endpointPrefix' => 'data.mediastore', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'MediaStore Data', 'serviceFullName' => 'AWS Elemental MediaStore Data Plane', 'serviceId' => 'MediaStore Data', 'signatureVersion' => 'v4', 'signingName' => 'mediastore', 'uid' => 'mediastore-data-2017-09-01', ], 'operations' => [ 'DeleteObject' => [ 'name' => 'DeleteObject', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Path+}', ], 'input' => [ 'shape' => 'DeleteObjectRequest', ], 'output' => [ 'shape' => 'DeleteObjectResponse', ], 'errors' => [ [ 'shape' => 'ContainerNotFoundException', ], [ 'shape' => 'ObjectNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeObject' => [ 'name' => 'DescribeObject', 'http' => [ 'method' => 'HEAD', 'requestUri' => '/{Path+}', ], 'input' => [ 'shape' => 'DescribeObjectRequest', ], 'output' => [ 'shape' => 'DescribeObjectResponse', ], 'errors' => [ [ 'shape' => 'ContainerNotFoundException', ], [ 'shape' => 'ObjectNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], 'GetObject' => [ 'name' => 'GetObject', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Path+}', ], 'input' => [ 'shape' => 'GetObjectRequest', ], 'output' => [ 'shape' => 'GetObjectResponse', ], 'errors' => [ [ 'shape' => 'ContainerNotFoundException', ], [ 'shape' => 'ObjectNotFoundException', ], [ 'shape' => 'RequestedRangeNotSatisfiableException', ], [ 'shape' => 'InternalServerError', ], ], ], 'ListItems' => [ 'name' => 'ListItems', 'http' => [ 'method' => 'GET', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListItemsRequest', ], 'output' => [ 'shape' => 'ListItemsResponse', ], 'errors' => [ [ 'shape' => 'ContainerNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], 'PutObject' => [ 'name' => 'PutObject', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Path+}', ], 'input' => [ 'shape' => 'PutObjectRequest', ], 'output' => [ 'shape' => 'PutObjectResponse', ], 'errors' => [ [ 'shape' => 'ContainerNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], 'authtype' => 'v4-unsigned-body', ], ], 'shapes' => [ 'ContainerNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'ContentRangePattern' => [ 'type' => 'string', 'pattern' => '^bytes=\\d+\\-\\d+/\\d+$', ], 'ContentType' => [ 'type' => 'string', 'pattern' => '^[\\w\\-\\/\\.\\+]{1,255}$', ], 'DeleteObjectRequest' => [ 'type' => 'structure', 'required' => [ 'Path', ], 'members' => [ 'Path' => [ 'shape' => 'PathNaming', 'location' => 'uri', 'locationName' => 'Path', ], ], ], 'DeleteObjectResponse' => [ 'type' => 'structure', 'members' => [], ], 'DescribeObjectRequest' => [ 'type' => 'structure', 'required' => [ 'Path', ], 'members' => [ 'Path' => [ 'shape' => 'PathNaming', 'location' => 'uri', 'locationName' => 'Path', ], ], ], 'DescribeObjectResponse' => [ 'type' => 'structure', 'members' => [ 'ETag' => [ 'shape' => 'ETag', 'location' => 'header', 'locationName' => 'ETag', ], 'ContentType' => [ 'shape' => 'ContentType', 'location' => 'header', 'locationName' => 'Content-Type', ], 'ContentLength' => [ 'shape' => 'NonNegativeLong', 'location' => 'header', 'locationName' => 'Content-Length', ], 'CacheControl' => [ 'shape' => 'StringPrimitive', 'location' => 'header', 'locationName' => 'Cache-Control', ], 'LastModified' => [ 'shape' => 'TimeStamp', 'location' => 'header', 'locationName' => 'Last-Modified', ], ], ], 'ETag' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[0-9A-Fa-f]+', ], 'ErrorMessage' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[ \\w:\\.\\?-]+', ], 'GetObjectRequest' => [ 'type' => 'structure', 'required' => [ 'Path', ], 'members' => [ 'Path' => [ 'shape' => 'PathNaming', 'location' => 'uri', 'locationName' => 'Path', ], 'Range' => [ 'shape' => 'RangePattern', 'location' => 'header', 'locationName' => 'Range', ], ], ], 'GetObjectResponse' => [ 'type' => 'structure', 'required' => [ 'StatusCode', ], 'members' => [ 'Body' => [ 'shape' => 'PayloadBlob', ], 'CacheControl' => [ 'shape' => 'StringPrimitive', 'location' => 'header', 'locationName' => 'Cache-Control', ], 'ContentRange' => [ 'shape' => 'ContentRangePattern', 'location' => 'header', 'locationName' => 'Content-Range', ], 'ContentLength' => [ 'shape' => 'NonNegativeLong', 'location' => 'header', 'locationName' => 'Content-Length', ], 'ContentType' => [ 'shape' => 'ContentType', 'location' => 'header', 'locationName' => 'Content-Type', ], 'ETag' => [ 'shape' => 'ETag', 'location' => 'header', 'locationName' => 'ETag', ], 'LastModified' => [ 'shape' => 'TimeStamp', 'location' => 'header', 'locationName' => 'Last-Modified', ], 'StatusCode' => [ 'shape' => 'statusCode', 'location' => 'statusCode', ], ], 'payload' => 'Body', ], 'InternalServerError' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, 'fault' => true, ], 'Item' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'ItemName', ], 'Type' => [ 'shape' => 'ItemType', ], 'ETag' => [ 'shape' => 'ETag', ], 'LastModified' => [ 'shape' => 'TimeStamp', ], 'ContentType' => [ 'shape' => 'ContentType', ], 'ContentLength' => [ 'shape' => 'NonNegativeLong', ], ], ], 'ItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Item', ], ], 'ItemName' => [ 'type' => 'string', 'pattern' => '[A-Za-z0-9_\\.\\-\\~]+', ], 'ItemType' => [ 'type' => 'string', 'enum' => [ 'OBJECT', 'FOLDER', ], ], 'ListItemsRequest' => [ 'type' => 'structure', 'members' => [ 'Path' => [ 'shape' => 'ListPathNaming', 'location' => 'querystring', 'locationName' => 'Path', ], 'MaxResults' => [ 'shape' => 'ListLimit', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'PaginationToken', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], ], 'ListItemsResponse' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'ItemList', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListLimit' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'ListPathNaming' => [ 'type' => 'string', 'max' => 900, 'min' => 0, 'pattern' => '/?(?:[A-Za-z0-9_\\.\\-\\~]+/){0,10}(?:[A-Za-z0-9_\\.\\-\\~]+)?/?', ], 'NonNegativeLong' => [ 'type' => 'long', 'min' => 0, ], 'ObjectNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'PaginationToken' => [ 'type' => 'string', ], 'PathNaming' => [ 'type' => 'string', 'max' => 900, 'min' => 1, 'pattern' => '(?:[A-Za-z0-9_\\.\\-\\~]+/){0,10}[A-Za-z0-9_\\.\\-\\~]+', ], 'PayloadBlob' => [ 'type' => 'blob', 'streaming' => true, ], 'PutObjectRequest' => [ 'type' => 'structure', 'required' => [ 'Body', 'Path', ], 'members' => [ 'Body' => [ 'shape' => 'PayloadBlob', ], 'Path' => [ 'shape' => 'PathNaming', 'location' => 'uri', 'locationName' => 'Path', ], 'ContentType' => [ 'shape' => 'ContentType', 'location' => 'header', 'locationName' => 'Content-Type', ], 'CacheControl' => [ 'shape' => 'StringPrimitive', 'location' => 'header', 'locationName' => 'Cache-Control', ], 'StorageClass' => [ 'shape' => 'StorageClass', 'location' => 'header', 'locationName' => 'x-amz-storage-class', ], ], 'payload' => 'Body', ], 'PutObjectResponse' => [ 'type' => 'structure', 'members' => [ 'ContentSHA256' => [ 'shape' => 'SHA256Hash', ], 'ETag' => [ 'shape' => 'ETag', ], 'StorageClass' => [ 'shape' => 'StorageClass', ], ], ], 'RangePattern' => [ 'type' => 'string', 'pattern' => '^bytes=(?:\\d+\\-\\d*|\\d*\\-\\d+)$', ], 'RequestedRangeNotSatisfiableException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 416, ], 'exception' => true, ], 'SHA256Hash' => [ 'type' => 'string', 'max' => 64, 'min' => 64, 'pattern' => '[0-9A-Fa-f]{64}', ], 'StorageClass' => [ 'type' => 'string', 'enum' => [ 'TEMPORAL', ], 'max' => 16, 'min' => 1, ], 'StringPrimitive' => [ 'type' => 'string', ], 'TimeStamp' => [ 'type' => 'timestamp', ], 'statusCode' => [ 'type' => 'integer', ], ],]; diff --git a/lib/aws/Aws/data/mediastore-data/2017-09-01/paginators-1.json.php b/lib/aws/Aws/data/mediastore-data/2017-09-01/paginators-1.json.php new file mode 100644 index 0000000..5cb9bd2 --- /dev/null +++ b/lib/aws/Aws/data/mediastore-data/2017-09-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mediastore-data/2017-09-01/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/mediastore/2017-09-01/api-2.json.php b/lib/aws/Aws/data/mediastore/2017-09-01/api-2.json.php new file mode 100644 index 0000000..6777a8f --- /dev/null +++ b/lib/aws/Aws/data/mediastore/2017-09-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mediastore/2017-09-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-09-01', 'endpointPrefix' => 'mediastore', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'MediaStore', 'serviceFullName' => 'AWS Elemental MediaStore', 'serviceId' => 'MediaStore', 'signatureVersion' => 'v4', 'signingName' => 'mediastore', 'targetPrefix' => 'MediaStore_20170901', 'uid' => 'mediastore-2017-09-01', ], 'operations' => [ 'CreateContainer' => [ 'name' => 'CreateContainer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateContainerInput', ], 'output' => [ 'shape' => 'CreateContainerOutput', ], 'errors' => [ [ 'shape' => 'ContainerInUseException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DeleteContainer' => [ 'name' => 'DeleteContainer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteContainerInput', ], 'output' => [ 'shape' => 'DeleteContainerOutput', ], 'errors' => [ [ 'shape' => 'ContainerInUseException', ], [ 'shape' => 'ContainerNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DeleteContainerPolicy' => [ 'name' => 'DeleteContainerPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteContainerPolicyInput', ], 'output' => [ 'shape' => 'DeleteContainerPolicyOutput', ], 'errors' => [ [ 'shape' => 'ContainerInUseException', ], [ 'shape' => 'ContainerNotFoundException', ], [ 'shape' => 'PolicyNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DeleteCorsPolicy' => [ 'name' => 'DeleteCorsPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCorsPolicyInput', ], 'output' => [ 'shape' => 'DeleteCorsPolicyOutput', ], 'errors' => [ [ 'shape' => 'ContainerInUseException', ], [ 'shape' => 'ContainerNotFoundException', ], [ 'shape' => 'CorsPolicyNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DeleteLifecyclePolicy' => [ 'name' => 'DeleteLifecyclePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLifecyclePolicyInput', ], 'output' => [ 'shape' => 'DeleteLifecyclePolicyOutput', ], 'errors' => [ [ 'shape' => 'ContainerInUseException', ], [ 'shape' => 'ContainerNotFoundException', ], [ 'shape' => 'PolicyNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeContainer' => [ 'name' => 'DescribeContainer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeContainerInput', ], 'output' => [ 'shape' => 'DescribeContainerOutput', ], 'errors' => [ [ 'shape' => 'ContainerNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], 'GetContainerPolicy' => [ 'name' => 'GetContainerPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetContainerPolicyInput', ], 'output' => [ 'shape' => 'GetContainerPolicyOutput', ], 'errors' => [ [ 'shape' => 'ContainerInUseException', ], [ 'shape' => 'ContainerNotFoundException', ], [ 'shape' => 'PolicyNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], 'GetCorsPolicy' => [ 'name' => 'GetCorsPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCorsPolicyInput', ], 'output' => [ 'shape' => 'GetCorsPolicyOutput', ], 'errors' => [ [ 'shape' => 'ContainerInUseException', ], [ 'shape' => 'ContainerNotFoundException', ], [ 'shape' => 'CorsPolicyNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], 'GetLifecyclePolicy' => [ 'name' => 'GetLifecyclePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetLifecyclePolicyInput', ], 'output' => [ 'shape' => 'GetLifecyclePolicyOutput', ], 'errors' => [ [ 'shape' => 'ContainerInUseException', ], [ 'shape' => 'ContainerNotFoundException', ], [ 'shape' => 'PolicyNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], 'ListContainers' => [ 'name' => 'ListContainers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListContainersInput', ], 'output' => [ 'shape' => 'ListContainersOutput', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'PutContainerPolicy' => [ 'name' => 'PutContainerPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutContainerPolicyInput', ], 'output' => [ 'shape' => 'PutContainerPolicyOutput', ], 'errors' => [ [ 'shape' => 'ContainerNotFoundException', ], [ 'shape' => 'ContainerInUseException', ], [ 'shape' => 'InternalServerError', ], ], ], 'PutCorsPolicy' => [ 'name' => 'PutCorsPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutCorsPolicyInput', ], 'output' => [ 'shape' => 'PutCorsPolicyOutput', ], 'errors' => [ [ 'shape' => 'ContainerNotFoundException', ], [ 'shape' => 'ContainerInUseException', ], [ 'shape' => 'InternalServerError', ], ], ], 'PutLifecyclePolicy' => [ 'name' => 'PutLifecyclePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutLifecyclePolicyInput', ], 'output' => [ 'shape' => 'PutLifecyclePolicyOutput', ], 'errors' => [ [ 'shape' => 'ContainerInUseException', ], [ 'shape' => 'ContainerNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], 'StartAccessLogging' => [ 'name' => 'StartAccessLogging', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartAccessLoggingInput', ], 'output' => [ 'shape' => 'StartAccessLoggingOutput', ], 'errors' => [ [ 'shape' => 'ContainerInUseException', ], [ 'shape' => 'ContainerNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], 'StopAccessLogging' => [ 'name' => 'StopAccessLogging', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopAccessLoggingInput', ], 'output' => [ 'shape' => 'StopAccessLoggingOutput', ], 'errors' => [ [ 'shape' => 'ContainerInUseException', ], [ 'shape' => 'ContainerNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], ], 'shapes' => [ 'AllowedHeaders' => [ 'type' => 'list', 'member' => [ 'shape' => 'Header', ], 'max' => 100, 'min' => 0, ], 'AllowedMethods' => [ 'type' => 'list', 'member' => [ 'shape' => 'MethodName', ], 'max' => 4, 'min' => 1, ], 'AllowedOrigins' => [ 'type' => 'list', 'member' => [ 'shape' => 'Origin', ], 'max' => 100, 'min' => 1, ], 'Container' => [ 'type' => 'structure', 'members' => [ 'Endpoint' => [ 'shape' => 'Endpoint', ], 'CreationTime' => [ 'shape' => 'TimeStamp', ], 'ARN' => [ 'shape' => 'ContainerARN', ], 'Name' => [ 'shape' => 'ContainerName', ], 'Status' => [ 'shape' => 'ContainerStatus', ], 'AccessLoggingEnabled' => [ 'shape' => 'ContainerAccessLoggingEnabled', ], ], ], 'ContainerARN' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => 'arn:aws:mediastore:[a-z]+-[a-z]+-\\d:\\d{12}:container/\\w{1,255}', ], 'ContainerAccessLoggingEnabled' => [ 'type' => 'boolean', ], 'ContainerInUseException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ContainerList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Container', ], ], 'ContainerListLimit' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'ContainerName' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[\\w-]+', ], 'ContainerNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ContainerPolicy' => [ 'type' => 'string', 'max' => 8192, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+', ], 'ContainerStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'CREATING', 'DELETING', ], 'max' => 16, 'min' => 1, ], 'CorsPolicy' => [ 'type' => 'list', 'member' => [ 'shape' => 'CorsRule', ], 'max' => 100, 'min' => 1, ], 'CorsPolicyNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'CorsRule' => [ 'type' => 'structure', 'required' => [ 'AllowedOrigins', 'AllowedHeaders', ], 'members' => [ 'AllowedOrigins' => [ 'shape' => 'AllowedOrigins', ], 'AllowedMethods' => [ 'shape' => 'AllowedMethods', ], 'AllowedHeaders' => [ 'shape' => 'AllowedHeaders', ], 'MaxAgeSeconds' => [ 'shape' => 'MaxAgeSeconds', ], 'ExposeHeaders' => [ 'shape' => 'ExposeHeaders', ], ], ], 'CreateContainerInput' => [ 'type' => 'structure', 'required' => [ 'ContainerName', ], 'members' => [ 'ContainerName' => [ 'shape' => 'ContainerName', ], ], ], 'CreateContainerOutput' => [ 'type' => 'structure', 'required' => [ 'Container', ], 'members' => [ 'Container' => [ 'shape' => 'Container', ], ], ], 'DeleteContainerInput' => [ 'type' => 'structure', 'required' => [ 'ContainerName', ], 'members' => [ 'ContainerName' => [ 'shape' => 'ContainerName', ], ], ], 'DeleteContainerOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeleteContainerPolicyInput' => [ 'type' => 'structure', 'required' => [ 'ContainerName', ], 'members' => [ 'ContainerName' => [ 'shape' => 'ContainerName', ], ], ], 'DeleteContainerPolicyOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeleteCorsPolicyInput' => [ 'type' => 'structure', 'required' => [ 'ContainerName', ], 'members' => [ 'ContainerName' => [ 'shape' => 'ContainerName', ], ], ], 'DeleteCorsPolicyOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeleteLifecyclePolicyInput' => [ 'type' => 'structure', 'required' => [ 'ContainerName', ], 'members' => [ 'ContainerName' => [ 'shape' => 'ContainerName', ], ], ], 'DeleteLifecyclePolicyOutput' => [ 'type' => 'structure', 'members' => [], ], 'DescribeContainerInput' => [ 'type' => 'structure', 'members' => [ 'ContainerName' => [ 'shape' => 'ContainerName', ], ], ], 'DescribeContainerOutput' => [ 'type' => 'structure', 'members' => [ 'Container' => [ 'shape' => 'Container', ], ], ], 'Endpoint' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'ErrorMessage' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[ \\w:\\.\\?-]+', ], 'ExposeHeaders' => [ 'type' => 'list', 'member' => [ 'shape' => 'Header', ], 'max' => 100, 'min' => 0, ], 'GetContainerPolicyInput' => [ 'type' => 'structure', 'required' => [ 'ContainerName', ], 'members' => [ 'ContainerName' => [ 'shape' => 'ContainerName', ], ], ], 'GetContainerPolicyOutput' => [ 'type' => 'structure', 'required' => [ 'Policy', ], 'members' => [ 'Policy' => [ 'shape' => 'ContainerPolicy', ], ], ], 'GetCorsPolicyInput' => [ 'type' => 'structure', 'required' => [ 'ContainerName', ], 'members' => [ 'ContainerName' => [ 'shape' => 'ContainerName', ], ], ], 'GetCorsPolicyOutput' => [ 'type' => 'structure', 'required' => [ 'CorsPolicy', ], 'members' => [ 'CorsPolicy' => [ 'shape' => 'CorsPolicy', ], ], ], 'GetLifecyclePolicyInput' => [ 'type' => 'structure', 'required' => [ 'ContainerName', ], 'members' => [ 'ContainerName' => [ 'shape' => 'ContainerName', ], ], ], 'GetLifecyclePolicyOutput' => [ 'type' => 'structure', 'required' => [ 'LifecyclePolicy', ], 'members' => [ 'LifecyclePolicy' => [ 'shape' => 'LifecyclePolicy', ], ], ], 'Header' => [ 'type' => 'string', 'max' => 8192, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+', ], 'InternalServerError' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, 'fault' => true, ], 'LifecyclePolicy' => [ 'type' => 'string', 'max' => 8192, 'min' => 0, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+', ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ListContainersInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'ContainerListLimit', ], ], ], 'ListContainersOutput' => [ 'type' => 'structure', 'required' => [ 'Containers', ], 'members' => [ 'Containers' => [ 'shape' => 'ContainerList', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'MaxAgeSeconds' => [ 'type' => 'integer', 'max' => 2147483647, 'min' => 0, ], 'MethodName' => [ 'type' => 'string', 'enum' => [ 'PUT', 'GET', 'DELETE', 'HEAD', ], ], 'Origin' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+', ], 'PaginationToken' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '[0-9A-Za-z=/+]+', ], 'PolicyNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'PutContainerPolicyInput' => [ 'type' => 'structure', 'required' => [ 'ContainerName', 'Policy', ], 'members' => [ 'ContainerName' => [ 'shape' => 'ContainerName', ], 'Policy' => [ 'shape' => 'ContainerPolicy', ], ], ], 'PutContainerPolicyOutput' => [ 'type' => 'structure', 'members' => [], ], 'PutCorsPolicyInput' => [ 'type' => 'structure', 'required' => [ 'ContainerName', 'CorsPolicy', ], 'members' => [ 'ContainerName' => [ 'shape' => 'ContainerName', ], 'CorsPolicy' => [ 'shape' => 'CorsPolicy', ], ], ], 'PutCorsPolicyOutput' => [ 'type' => 'structure', 'members' => [], ], 'PutLifecyclePolicyInput' => [ 'type' => 'structure', 'required' => [ 'ContainerName', 'LifecyclePolicy', ], 'members' => [ 'ContainerName' => [ 'shape' => 'ContainerName', ], 'LifecyclePolicy' => [ 'shape' => 'LifecyclePolicy', ], ], ], 'PutLifecyclePolicyOutput' => [ 'type' => 'structure', 'members' => [], ], 'StartAccessLoggingInput' => [ 'type' => 'structure', 'required' => [ 'ContainerName', ], 'members' => [ 'ContainerName' => [ 'shape' => 'ContainerName', ], ], ], 'StartAccessLoggingOutput' => [ 'type' => 'structure', 'members' => [], ], 'StopAccessLoggingInput' => [ 'type' => 'structure', 'required' => [ 'ContainerName', ], 'members' => [ 'ContainerName' => [ 'shape' => 'ContainerName', ], ], ], 'StopAccessLoggingOutput' => [ 'type' => 'structure', 'members' => [], ], 'TimeStamp' => [ 'type' => 'timestamp', ], ],]; diff --git a/lib/aws/Aws/data/mediastore/2017-09-01/paginators-1.json.php b/lib/aws/Aws/data/mediastore/2017-09-01/paginators-1.json.php new file mode 100644 index 0000000..04564d7 --- /dev/null +++ b/lib/aws/Aws/data/mediastore/2017-09-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mediastore/2017-09-01/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/mediatailor/2018-04-23/api-2.json.php b/lib/aws/Aws/data/mediatailor/2018-04-23/api-2.json.php new file mode 100644 index 0000000..c5cad10 --- /dev/null +++ b/lib/aws/Aws/data/mediatailor/2018-04-23/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mediatailor/2018-04-23/api-2.json +return [ 'metadata' => [ 'apiVersion' => '2018-04-23', 'endpointPrefix' => 'api.mediatailor', 'signingName' => 'mediatailor', 'serviceFullName' => 'AWS MediaTailor', 'serviceId' => 'MediaTailor', 'protocol' => 'rest-json', 'jsonVersion' => '1.1', 'uid' => 'mediatailor-2018-04-23', 'signatureVersion' => 'v4', 'serviceAbbreviation' => 'MediaTailor', ], 'operations' => [ 'DeletePlaybackConfiguration' => [ 'name' => 'DeletePlaybackConfiguration', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/playbackConfiguration/{Name}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeletePlaybackConfigurationRequest', ], 'errors' => [], ], 'GetPlaybackConfiguration' => [ 'name' => 'GetPlaybackConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/playbackConfiguration/{Name}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPlaybackConfigurationRequest', ], 'output' => [ 'shape' => 'GetPlaybackConfigurationResponse', ], 'errors' => [], ], 'ListPlaybackConfigurations' => [ 'name' => 'ListPlaybackConfigurations', 'http' => [ 'method' => 'GET', 'requestUri' => '/playbackConfigurations', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPlaybackConfigurationsRequest', ], 'output' => [ 'shape' => 'ListPlaybackConfigurationsResponse', ], 'errors' => [], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/tags/{ResourceArn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'PutPlaybackConfiguration' => [ 'name' => 'PutPlaybackConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/playbackConfiguration', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PutPlaybackConfigurationRequest', ], 'output' => [ 'shape' => 'PutPlaybackConfigurationResponse', ], 'errors' => [], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/tags/{ResourceArn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/tags/{ResourceArn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], ], ], ], 'shapes' => [ 'BadRequestException' => [ 'type' => 'structure', 'exception' => true, 'error' => [ 'httpStatusCode' => 400, ], ], 'CdnConfiguration' => [ 'type' => 'structure', 'members' => [ 'AdSegmentUrlPrefix' => [ 'shape' => '__string', ], 'ContentSegmentUrlPrefix' => [ 'shape' => '__string', ], ], ], 'HlsConfiguration' => [ 'type' => 'structure', 'members' => [ 'ManifestEndpointPrefix' => [ 'shape' => '__string', ], ], ], 'DashConfiguration' => [ 'type' => 'structure', 'members' => [ 'ManifestEndpointPrefix' => [ 'shape' => '__string', ], 'MpdLocation' => [ 'shape' => '__string', ], ], ], 'DashConfigurationForPut' => [ 'type' => 'structure', 'members' => [ 'MpdLocation' => [ 'shape' => '__string', ], ], ], 'DeletePlaybackConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'Name', ], ], 'required' => [ 'Name', ], ], 'GetPlaybackConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'Name', ], ], 'required' => [ 'Name', ], ], 'GetPlaybackConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'AdDecisionServerUrl' => [ 'shape' => '__string', ], 'CdnConfiguration' => [ 'shape' => 'CdnConfiguration', ], 'DashConfiguration' => [ 'shape' => 'DashConfiguration', ], 'HlsConfiguration' => [ 'shape' => 'HlsConfiguration', ], 'Name' => [ 'shape' => '__string', ], 'PlaybackConfigurationArn' => [ 'shape' => '__string', ], 'PlaybackEndpointPrefix' => [ 'shape' => '__string', ], 'SessionInitializationEndpointPrefix' => [ 'shape' => '__string', ], 'SlateAdUrl' => [ 'shape' => '__string', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], 'TranscodeProfileName' => [ 'shape' => '__string', ], 'VideoContentSourceUrl' => [ 'shape' => '__string', ], ], ], 'PlaybackConfiguration' => [ 'type' => 'structure', 'members' => [ 'AdDecisionServerUrl' => [ 'shape' => '__string', ], 'CdnConfiguration' => [ 'shape' => 'CdnConfiguration', ], 'DashConfiguration' => [ 'shape' => 'DashConfiguration', ], 'HlsConfiguration' => [ 'shape' => 'HlsConfiguration', ], 'Name' => [ 'shape' => '__string', ], 'PlaybackConfigurationArn' => [ 'shape' => '__string', ], 'PlaybackEndpointPrefix' => [ 'shape' => '__string', ], 'SessionInitializationEndpointPrefix' => [ 'shape' => '__string', ], 'SlateAdUrl' => [ 'shape' => '__string', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], 'TranscodeProfileName' => [ 'shape' => '__string', ], 'VideoContentSourceUrl' => [ 'shape' => '__string', ], ], ], 'ListPlaybackConfigurationsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => '__integerMin1Max100', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], ], 'ListPlaybackConfigurationsResponse' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => '__listOfPlaybackConfigurations', ], 'NextToken' => [ 'shape' => '__string', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ResourceArn', ], ], 'required' => [ 'ResourceArn', ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], ], 'PutPlaybackConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'AdDecisionServerUrl' => [ 'shape' => '__string', ], 'CdnConfiguration' => [ 'shape' => 'CdnConfiguration', ], 'DashConfiguration' => [ 'shape' => 'DashConfigurationForPut', ], 'Name' => [ 'shape' => '__string', ], 'SlateAdUrl' => [ 'shape' => '__string', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], 'TranscodeProfileName' => [ 'shape' => '__string', ], 'VideoContentSourceUrl' => [ 'shape' => '__string', ], ], ], 'PutPlaybackConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'AdDecisionServerUrl' => [ 'shape' => '__string', ], 'CdnConfiguration' => [ 'shape' => 'CdnConfiguration', ], 'DashConfiguration' => [ 'shape' => 'DashConfiguration', ], 'HlsConfiguration' => [ 'shape' => 'HlsConfiguration', ], 'Name' => [ 'shape' => '__string', ], 'PlaybackConfigurationArn' => [ 'shape' => '__string', ], 'PlaybackEndpointPrefix' => [ 'shape' => '__string', ], 'SessionInitializationEndpointPrefix' => [ 'shape' => '__string', ], 'SlateAdUrl' => [ 'shape' => '__string', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], 'TranscodeProfileName' => [ 'shape' => '__string', ], 'VideoContentSourceUrl' => [ 'shape' => '__string', ], ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ResourceArn', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], 'required' => [ 'ResourceArn', 'Tags', ], ], 'TagsModel' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], 'required' => [ 'Tags', ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ResourceArn', ], 'TagKeys' => [ 'shape' => '__listOf__string', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], 'required' => [ 'ResourceArn', 'TagKeys', ], ], '__boolean' => [ 'type' => 'boolean', ], '__double' => [ 'type' => 'double', ], '__integer' => [ 'type' => 'integer', ], '__listOfPlaybackConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlaybackConfiguration', ], ], '__listOf__string' => [ 'type' => 'list', 'member' => [ 'shape' => '__string', ], ], '__long' => [ 'type' => 'long', ], '__mapOf__string' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => '__string', ], ], '__string' => [ 'type' => 'string', ], '__integerMin1Max100' => [ 'type' => 'integer', 'min' => 1, 'max' => 100, ], '__timestampIso8601' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], '__timestampUnix' => [ 'type' => 'timestamp', 'timestampFormat' => 'unixTimestamp', ], ],]; diff --git a/lib/aws/Aws/data/mediatailor/2018-04-23/paginators-1.json.php b/lib/aws/Aws/data/mediatailor/2018-04-23/paginators-1.json.php new file mode 100644 index 0000000..cb77a04 --- /dev/null +++ b/lib/aws/Aws/data/mediatailor/2018-04-23/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mediatailor/2018-04-23/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/metering.marketplace/2016-01-14/api-2.json.php b/lib/aws/Aws/data/metering.marketplace/2016-01-14/api-2.json.php new file mode 100644 index 0000000..b790259 --- /dev/null +++ b/lib/aws/Aws/data/metering.marketplace/2016-01-14/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/metering.marketplace/2016-01-14/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-01-14', 'endpointPrefix' => 'metering.marketplace', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWSMarketplace Metering', 'serviceId' => 'Marketplace Metering', 'signatureVersion' => 'v4', 'signingName' => 'aws-marketplace', 'targetPrefix' => 'AWSMPMeteringService', 'uid' => 'meteringmarketplace-2016-01-14', ], 'operations' => [ 'BatchMeterUsage' => [ 'name' => 'BatchMeterUsage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchMeterUsageRequest', ], 'output' => [ 'shape' => 'BatchMeterUsageResult', ], 'errors' => [ [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'InvalidProductCodeException', ], [ 'shape' => 'InvalidUsageDimensionException', ], [ 'shape' => 'InvalidCustomerIdentifierException', ], [ 'shape' => 'TimestampOutOfBoundsException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'DisabledApiException', ], ], ], 'MeterUsage' => [ 'name' => 'MeterUsage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'MeterUsageRequest', ], 'output' => [ 'shape' => 'MeterUsageResult', ], 'errors' => [ [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'InvalidProductCodeException', ], [ 'shape' => 'InvalidUsageDimensionException', ], [ 'shape' => 'InvalidEndpointRegionException', ], [ 'shape' => 'TimestampOutOfBoundsException', ], [ 'shape' => 'DuplicateRequestException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'RegisterUsage' => [ 'name' => 'RegisterUsage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterUsageRequest', ], 'output' => [ 'shape' => 'RegisterUsageResult', ], 'errors' => [ [ 'shape' => 'InvalidProductCodeException', ], [ 'shape' => 'InvalidRegionException', ], [ 'shape' => 'InvalidPublicKeyVersionException', ], [ 'shape' => 'PlatformNotSupportedException', ], [ 'shape' => 'CustomerNotEntitledException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'DisabledApiException', ], ], ], 'ResolveCustomer' => [ 'name' => 'ResolveCustomer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResolveCustomerRequest', ], 'output' => [ 'shape' => 'ResolveCustomerResult', ], 'errors' => [ [ 'shape' => 'InvalidTokenException', ], [ 'shape' => 'ExpiredTokenException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'DisabledApiException', ], ], ], ], 'shapes' => [ 'BatchMeterUsageRequest' => [ 'type' => 'structure', 'required' => [ 'UsageRecords', 'ProductCode', ], 'members' => [ 'UsageRecords' => [ 'shape' => 'UsageRecordList', ], 'ProductCode' => [ 'shape' => 'ProductCode', ], ], ], 'BatchMeterUsageResult' => [ 'type' => 'structure', 'members' => [ 'Results' => [ 'shape' => 'UsageRecordResultList', ], 'UnprocessedRecords' => [ 'shape' => 'UsageRecordList', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'CustomerIdentifier' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'CustomerNotEntitledException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'DisabledApiException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'DuplicateRequestException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'ExpiredTokenException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'InternalServiceErrorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, 'fault' => true, ], 'InvalidCustomerIdentifierException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'InvalidEndpointRegionException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'InvalidProductCodeException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'InvalidPublicKeyVersionException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'InvalidRegionException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'InvalidTokenException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'InvalidUsageDimensionException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'MeterUsageRequest' => [ 'type' => 'structure', 'required' => [ 'ProductCode', 'Timestamp', 'UsageDimension', ], 'members' => [ 'ProductCode' => [ 'shape' => 'ProductCode', ], 'Timestamp' => [ 'shape' => 'Timestamp', ], 'UsageDimension' => [ 'shape' => 'UsageDimension', ], 'UsageQuantity' => [ 'shape' => 'UsageQuantity', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'MeterUsageResult' => [ 'type' => 'structure', 'members' => [ 'MeteringRecordId' => [ 'shape' => 'String', ], ], ], 'NonEmptyString' => [ 'type' => 'string', 'pattern' => '\\S+', ], 'Nonce' => [ 'type' => 'string', 'max' => 255, ], 'PlatformNotSupportedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'ProductCode' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'RegisterUsageRequest' => [ 'type' => 'structure', 'required' => [ 'ProductCode', 'PublicKeyVersion', ], 'members' => [ 'ProductCode' => [ 'shape' => 'ProductCode', ], 'PublicKeyVersion' => [ 'shape' => 'VersionInteger', ], 'Nonce' => [ 'shape' => 'Nonce', ], ], ], 'RegisterUsageResult' => [ 'type' => 'structure', 'members' => [ 'PublicKeyRotationTimestamp' => [ 'shape' => 'Timestamp', ], 'Signature' => [ 'shape' => 'NonEmptyString', ], ], ], 'ResolveCustomerRequest' => [ 'type' => 'structure', 'required' => [ 'RegistrationToken', ], 'members' => [ 'RegistrationToken' => [ 'shape' => 'NonEmptyString', ], ], ], 'ResolveCustomerResult' => [ 'type' => 'structure', 'members' => [ 'CustomerIdentifier' => [ 'shape' => 'CustomerIdentifier', ], 'ProductCode' => [ 'shape' => 'ProductCode', ], ], ], 'String' => [ 'type' => 'string', ], 'ThrottlingException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TimestampOutOfBoundsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'UsageDimension' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'UsageQuantity' => [ 'type' => 'integer', 'max' => 2147483647, 'min' => 0, ], 'UsageRecord' => [ 'type' => 'structure', 'required' => [ 'Timestamp', 'CustomerIdentifier', 'Dimension', ], 'members' => [ 'Timestamp' => [ 'shape' => 'Timestamp', ], 'CustomerIdentifier' => [ 'shape' => 'CustomerIdentifier', ], 'Dimension' => [ 'shape' => 'UsageDimension', ], 'Quantity' => [ 'shape' => 'UsageQuantity', ], ], ], 'UsageRecordList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UsageRecord', ], 'max' => 25, 'min' => 0, ], 'UsageRecordResult' => [ 'type' => 'structure', 'members' => [ 'UsageRecord' => [ 'shape' => 'UsageRecord', ], 'MeteringRecordId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'UsageRecordResultStatus', ], ], ], 'UsageRecordResultList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UsageRecordResult', ], ], 'UsageRecordResultStatus' => [ 'type' => 'string', 'enum' => [ 'Success', 'CustomerNotSubscribed', 'DuplicateRecord', ], ], 'VersionInteger' => [ 'type' => 'integer', 'min' => 1, ], 'errorMessage' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/metering.marketplace/2016-01-14/paginators-1.json.php b/lib/aws/Aws/data/metering.marketplace/2016-01-14/paginators-1.json.php new file mode 100644 index 0000000..57e43bd --- /dev/null +++ b/lib/aws/Aws/data/metering.marketplace/2016-01-14/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/metering.marketplace/2016-01-14/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/mgh/2017-05-31/api-2.json.php b/lib/aws/Aws/data/mgh/2017-05-31/api-2.json.php new file mode 100644 index 0000000..5ffd6ce --- /dev/null +++ b/lib/aws/Aws/data/mgh/2017-05-31/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mgh/2017-05-31/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-05-31', 'endpointPrefix' => 'mgh', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWS Migration Hub', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWSMigrationHub', 'uid' => 'AWSMigrationHub-2017-05-31', ], 'operations' => [ 'AssociateCreatedArtifact' => [ 'name' => 'AssociateCreatedArtifact', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateCreatedArtifactRequest', ], 'output' => [ 'shape' => 'AssociateCreatedArtifactResult', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'DryRunOperation', ], [ 'shape' => 'UnauthorizedOperation', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'AssociateDiscoveredResource' => [ 'name' => 'AssociateDiscoveredResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateDiscoveredResourceRequest', ], 'output' => [ 'shape' => 'AssociateDiscoveredResourceResult', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'DryRunOperation', ], [ 'shape' => 'UnauthorizedOperation', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'PolicyErrorException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'CreateProgressUpdateStream' => [ 'name' => 'CreateProgressUpdateStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateProgressUpdateStreamRequest', ], 'output' => [ 'shape' => 'CreateProgressUpdateStreamResult', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'DryRunOperation', ], [ 'shape' => 'UnauthorizedOperation', ], [ 'shape' => 'InvalidInputException', ], ], ], 'DeleteProgressUpdateStream' => [ 'name' => 'DeleteProgressUpdateStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteProgressUpdateStreamRequest', ], 'output' => [ 'shape' => 'DeleteProgressUpdateStreamResult', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'DryRunOperation', ], [ 'shape' => 'UnauthorizedOperation', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeApplicationState' => [ 'name' => 'DescribeApplicationState', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeApplicationStateRequest', ], 'output' => [ 'shape' => 'DescribeApplicationStateResult', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'PolicyErrorException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeMigrationTask' => [ 'name' => 'DescribeMigrationTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMigrationTaskRequest', ], 'output' => [ 'shape' => 'DescribeMigrationTaskResult', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DisassociateCreatedArtifact' => [ 'name' => 'DisassociateCreatedArtifact', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateCreatedArtifactRequest', ], 'output' => [ 'shape' => 'DisassociateCreatedArtifactResult', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'DryRunOperation', ], [ 'shape' => 'UnauthorizedOperation', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DisassociateDiscoveredResource' => [ 'name' => 'DisassociateDiscoveredResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateDiscoveredResourceRequest', ], 'output' => [ 'shape' => 'DisassociateDiscoveredResourceResult', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'DryRunOperation', ], [ 'shape' => 'UnauthorizedOperation', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ImportMigrationTask' => [ 'name' => 'ImportMigrationTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportMigrationTaskRequest', ], 'output' => [ 'shape' => 'ImportMigrationTaskResult', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'DryRunOperation', ], [ 'shape' => 'UnauthorizedOperation', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListCreatedArtifacts' => [ 'name' => 'ListCreatedArtifacts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListCreatedArtifactsRequest', ], 'output' => [ 'shape' => 'ListCreatedArtifactsResult', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListDiscoveredResources' => [ 'name' => 'ListDiscoveredResources', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDiscoveredResourcesRequest', ], 'output' => [ 'shape' => 'ListDiscoveredResourcesResult', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListMigrationTasks' => [ 'name' => 'ListMigrationTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListMigrationTasksRequest', ], 'output' => [ 'shape' => 'ListMigrationTasksResult', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'PolicyErrorException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListProgressUpdateStreams' => [ 'name' => 'ListProgressUpdateStreams', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListProgressUpdateStreamsRequest', ], 'output' => [ 'shape' => 'ListProgressUpdateStreamsResult', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InvalidInputException', ], ], ], 'NotifyApplicationState' => [ 'name' => 'NotifyApplicationState', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'NotifyApplicationStateRequest', ], 'output' => [ 'shape' => 'NotifyApplicationStateResult', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'DryRunOperation', ], [ 'shape' => 'UnauthorizedOperation', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'PolicyErrorException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'NotifyMigrationTaskState' => [ 'name' => 'NotifyMigrationTaskState', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'NotifyMigrationTaskStateRequest', ], 'output' => [ 'shape' => 'NotifyMigrationTaskStateResult', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'DryRunOperation', ], [ 'shape' => 'UnauthorizedOperation', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'PutResourceAttributes' => [ 'name' => 'PutResourceAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutResourceAttributesRequest', ], 'output' => [ 'shape' => 'PutResourceAttributesResult', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'DryRunOperation', ], [ 'shape' => 'UnauthorizedOperation', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], ], 'shapes' => [ 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ApplicationId' => [ 'type' => 'string', 'max' => 1600, 'min' => 1, ], 'ApplicationStatus' => [ 'type' => 'string', 'enum' => [ 'NOT_STARTED', 'IN_PROGRESS', 'COMPLETED', ], ], 'AssociateCreatedArtifactRequest' => [ 'type' => 'structure', 'required' => [ 'ProgressUpdateStream', 'MigrationTaskName', 'CreatedArtifact', ], 'members' => [ 'ProgressUpdateStream' => [ 'shape' => 'ProgressUpdateStream', ], 'MigrationTaskName' => [ 'shape' => 'MigrationTaskName', ], 'CreatedArtifact' => [ 'shape' => 'CreatedArtifact', ], 'DryRun' => [ 'shape' => 'DryRun', ], ], ], 'AssociateCreatedArtifactResult' => [ 'type' => 'structure', 'members' => [], ], 'AssociateDiscoveredResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ProgressUpdateStream', 'MigrationTaskName', 'DiscoveredResource', ], 'members' => [ 'ProgressUpdateStream' => [ 'shape' => 'ProgressUpdateStream', ], 'MigrationTaskName' => [ 'shape' => 'MigrationTaskName', ], 'DiscoveredResource' => [ 'shape' => 'DiscoveredResource', ], 'DryRun' => [ 'shape' => 'DryRun', ], ], ], 'AssociateDiscoveredResourceResult' => [ 'type' => 'structure', 'members' => [], ], 'ConfigurationId' => [ 'type' => 'string', 'min' => 1, ], 'CreateProgressUpdateStreamRequest' => [ 'type' => 'structure', 'required' => [ 'ProgressUpdateStreamName', ], 'members' => [ 'ProgressUpdateStreamName' => [ 'shape' => 'ProgressUpdateStream', ], 'DryRun' => [ 'shape' => 'DryRun', ], ], ], 'CreateProgressUpdateStreamResult' => [ 'type' => 'structure', 'members' => [], ], 'CreatedArtifact' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'CreatedArtifactName', ], 'Description' => [ 'shape' => 'CreatedArtifactDescription', ], ], ], 'CreatedArtifactDescription' => [ 'type' => 'string', 'max' => 500, 'min' => 0, ], 'CreatedArtifactList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CreatedArtifact', ], ], 'CreatedArtifactName' => [ 'type' => 'string', 'max' => 1600, 'min' => 1, 'pattern' => 'arn:[a-z-]+:[a-z0-9-]+:(?:[a-z0-9-]+|):(?:[0-9]{12}|):.*', ], 'DeleteProgressUpdateStreamRequest' => [ 'type' => 'structure', 'required' => [ 'ProgressUpdateStreamName', ], 'members' => [ 'ProgressUpdateStreamName' => [ 'shape' => 'ProgressUpdateStream', ], 'DryRun' => [ 'shape' => 'DryRun', ], ], ], 'DeleteProgressUpdateStreamResult' => [ 'type' => 'structure', 'members' => [], ], 'DescribeApplicationStateRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'ApplicationId', ], ], ], 'DescribeApplicationStateResult' => [ 'type' => 'structure', 'members' => [ 'ApplicationStatus' => [ 'shape' => 'ApplicationStatus', ], 'LastUpdatedTime' => [ 'shape' => 'UpdateDateTime', ], ], ], 'DescribeMigrationTaskRequest' => [ 'type' => 'structure', 'required' => [ 'ProgressUpdateStream', 'MigrationTaskName', ], 'members' => [ 'ProgressUpdateStream' => [ 'shape' => 'ProgressUpdateStream', ], 'MigrationTaskName' => [ 'shape' => 'MigrationTaskName', ], ], ], 'DescribeMigrationTaskResult' => [ 'type' => 'structure', 'members' => [ 'MigrationTask' => [ 'shape' => 'MigrationTask', ], ], ], 'DisassociateCreatedArtifactRequest' => [ 'type' => 'structure', 'required' => [ 'ProgressUpdateStream', 'MigrationTaskName', 'CreatedArtifactName', ], 'members' => [ 'ProgressUpdateStream' => [ 'shape' => 'ProgressUpdateStream', ], 'MigrationTaskName' => [ 'shape' => 'MigrationTaskName', ], 'CreatedArtifactName' => [ 'shape' => 'CreatedArtifactName', ], 'DryRun' => [ 'shape' => 'DryRun', ], ], ], 'DisassociateCreatedArtifactResult' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateDiscoveredResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ProgressUpdateStream', 'MigrationTaskName', 'ConfigurationId', ], 'members' => [ 'ProgressUpdateStream' => [ 'shape' => 'ProgressUpdateStream', ], 'MigrationTaskName' => [ 'shape' => 'MigrationTaskName', ], 'ConfigurationId' => [ 'shape' => 'ConfigurationId', ], 'DryRun' => [ 'shape' => 'DryRun', ], ], ], 'DisassociateDiscoveredResourceResult' => [ 'type' => 'structure', 'members' => [], ], 'DiscoveredResource' => [ 'type' => 'structure', 'required' => [ 'ConfigurationId', ], 'members' => [ 'ConfigurationId' => [ 'shape' => 'ConfigurationId', ], 'Description' => [ 'shape' => 'DiscoveredResourceDescription', ], ], ], 'DiscoveredResourceDescription' => [ 'type' => 'string', 'max' => 500, 'min' => 0, ], 'DiscoveredResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DiscoveredResource', ], ], 'DryRun' => [ 'type' => 'boolean', ], 'DryRunOperation' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ErrorMessage' => [ 'type' => 'string', ], 'ImportMigrationTaskRequest' => [ 'type' => 'structure', 'required' => [ 'ProgressUpdateStream', 'MigrationTaskName', ], 'members' => [ 'ProgressUpdateStream' => [ 'shape' => 'ProgressUpdateStream', ], 'MigrationTaskName' => [ 'shape' => 'MigrationTaskName', ], 'DryRun' => [ 'shape' => 'DryRun', ], ], ], 'ImportMigrationTaskResult' => [ 'type' => 'structure', 'members' => [], ], 'InternalServerError' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, 'fault' => true, ], 'InvalidInputException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'LatestResourceAttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceAttribute', ], 'max' => 100, 'min' => 0, ], 'ListCreatedArtifactsRequest' => [ 'type' => 'structure', 'required' => [ 'ProgressUpdateStream', 'MigrationTaskName', ], 'members' => [ 'ProgressUpdateStream' => [ 'shape' => 'ProgressUpdateStream', ], 'MigrationTaskName' => [ 'shape' => 'MigrationTaskName', ], 'NextToken' => [ 'shape' => 'Token', ], 'MaxResults' => [ 'shape' => 'MaxResultsCreatedArtifacts', ], ], ], 'ListCreatedArtifactsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'Token', ], 'CreatedArtifactList' => [ 'shape' => 'CreatedArtifactList', ], ], ], 'ListDiscoveredResourcesRequest' => [ 'type' => 'structure', 'required' => [ 'ProgressUpdateStream', 'MigrationTaskName', ], 'members' => [ 'ProgressUpdateStream' => [ 'shape' => 'ProgressUpdateStream', ], 'MigrationTaskName' => [ 'shape' => 'MigrationTaskName', ], 'NextToken' => [ 'shape' => 'Token', ], 'MaxResults' => [ 'shape' => 'MaxResultsResources', ], ], ], 'ListDiscoveredResourcesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'Token', ], 'DiscoveredResourceList' => [ 'shape' => 'DiscoveredResourceList', ], ], ], 'ListMigrationTasksRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'Token', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'ResourceName' => [ 'shape' => 'ResourceName', ], ], ], 'ListMigrationTasksResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'Token', ], 'MigrationTaskSummaryList' => [ 'shape' => 'MigrationTaskSummaryList', ], ], ], 'ListProgressUpdateStreamsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'Token', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListProgressUpdateStreamsResult' => [ 'type' => 'structure', 'members' => [ 'ProgressUpdateStreamSummaryList' => [ 'shape' => 'ProgressUpdateStreamSummaryList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'MaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'MaxResultsCreatedArtifacts' => [ 'type' => 'integer', 'box' => true, 'max' => 10, 'min' => 1, ], 'MaxResultsResources' => [ 'type' => 'integer', 'box' => true, 'max' => 10, 'min' => 1, ], 'MigrationTask' => [ 'type' => 'structure', 'members' => [ 'ProgressUpdateStream' => [ 'shape' => 'ProgressUpdateStream', ], 'MigrationTaskName' => [ 'shape' => 'MigrationTaskName', ], 'Task' => [ 'shape' => 'Task', ], 'UpdateDateTime' => [ 'shape' => 'UpdateDateTime', ], 'ResourceAttributeList' => [ 'shape' => 'LatestResourceAttributeList', ], ], ], 'MigrationTaskName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[^:|]+', ], 'MigrationTaskSummary' => [ 'type' => 'structure', 'members' => [ 'ProgressUpdateStream' => [ 'shape' => 'ProgressUpdateStream', ], 'MigrationTaskName' => [ 'shape' => 'MigrationTaskName', ], 'Status' => [ 'shape' => 'Status', ], 'ProgressPercent' => [ 'shape' => 'ProgressPercent', ], 'StatusDetail' => [ 'shape' => 'StatusDetail', ], 'UpdateDateTime' => [ 'shape' => 'UpdateDateTime', ], ], ], 'MigrationTaskSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MigrationTaskSummary', ], ], 'NextUpdateSeconds' => [ 'type' => 'integer', 'min' => 0, ], 'NotifyApplicationStateRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'Status', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'ApplicationId', ], 'Status' => [ 'shape' => 'ApplicationStatus', ], 'DryRun' => [ 'shape' => 'DryRun', ], ], ], 'NotifyApplicationStateResult' => [ 'type' => 'structure', 'members' => [], ], 'NotifyMigrationTaskStateRequest' => [ 'type' => 'structure', 'required' => [ 'ProgressUpdateStream', 'MigrationTaskName', 'Task', 'UpdateDateTime', 'NextUpdateSeconds', ], 'members' => [ 'ProgressUpdateStream' => [ 'shape' => 'ProgressUpdateStream', ], 'MigrationTaskName' => [ 'shape' => 'MigrationTaskName', ], 'Task' => [ 'shape' => 'Task', ], 'UpdateDateTime' => [ 'shape' => 'UpdateDateTime', ], 'NextUpdateSeconds' => [ 'shape' => 'NextUpdateSeconds', ], 'DryRun' => [ 'shape' => 'DryRun', ], ], ], 'NotifyMigrationTaskStateResult' => [ 'type' => 'structure', 'members' => [], ], 'PolicyErrorException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ProgressPercent' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 0, ], 'ProgressUpdateStream' => [ 'type' => 'string', 'max' => 50, 'min' => 1, 'pattern' => '[^/:|\\000-\\037]+', ], 'ProgressUpdateStreamSummary' => [ 'type' => 'structure', 'members' => [ 'ProgressUpdateStreamName' => [ 'shape' => 'ProgressUpdateStream', ], ], ], 'ProgressUpdateStreamSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProgressUpdateStreamSummary', ], ], 'PutResourceAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'ProgressUpdateStream', 'MigrationTaskName', 'ResourceAttributeList', ], 'members' => [ 'ProgressUpdateStream' => [ 'shape' => 'ProgressUpdateStream', ], 'MigrationTaskName' => [ 'shape' => 'MigrationTaskName', ], 'ResourceAttributeList' => [ 'shape' => 'ResourceAttributeList', ], 'DryRun' => [ 'shape' => 'DryRun', ], ], ], 'PutResourceAttributesResult' => [ 'type' => 'structure', 'members' => [], ], 'ResourceAttribute' => [ 'type' => 'structure', 'required' => [ 'Type', 'Value', ], 'members' => [ 'Type' => [ 'shape' => 'ResourceAttributeType', ], 'Value' => [ 'shape' => 'ResourceAttributeValue', ], ], ], 'ResourceAttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceAttribute', ], 'max' => 100, 'min' => 1, ], 'ResourceAttributeType' => [ 'type' => 'string', 'enum' => [ 'IPV4_ADDRESS', 'IPV6_ADDRESS', 'MAC_ADDRESS', 'FQDN', 'VM_MANAGER_ID', 'VM_MANAGED_OBJECT_REFERENCE', 'VM_NAME', 'VM_PATH', 'BIOS_ID', 'MOTHERBOARD_SERIAL_NUMBER', ], ], 'ResourceAttributeValue' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'ResourceName' => [ 'type' => 'string', 'max' => 1600, 'min' => 1, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, 'fault' => true, ], 'Status' => [ 'type' => 'string', 'enum' => [ 'NOT_STARTED', 'IN_PROGRESS', 'FAILED', 'COMPLETED', ], ], 'StatusDetail' => [ 'type' => 'string', 'max' => 500, 'min' => 0, ], 'Task' => [ 'type' => 'structure', 'required' => [ 'Status', ], 'members' => [ 'Status' => [ 'shape' => 'Status', ], 'StatusDetail' => [ 'shape' => 'StatusDetail', ], 'ProgressPercent' => [ 'shape' => 'ProgressPercent', ], ], ], 'Token' => [ 'type' => 'string', ], 'UnauthorizedOperation' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'UpdateDateTime' => [ 'type' => 'timestamp', ], ],]; diff --git a/lib/aws/Aws/data/mgh/2017-05-31/paginators-1.json.php b/lib/aws/Aws/data/mgh/2017-05-31/paginators-1.json.php new file mode 100644 index 0000000..d54abf4 --- /dev/null +++ b/lib/aws/Aws/data/mgh/2017-05-31/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mgh/2017-05-31/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/mobile/2017-07-01/api-2.json.php b/lib/aws/Aws/data/mobile/2017-07-01/api-2.json.php new file mode 100644 index 0000000..ec0298b --- /dev/null +++ b/lib/aws/Aws/data/mobile/2017-07-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mobile/2017-07-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-07-01', 'endpointPrefix' => 'mobile', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceFullName' => 'AWS Mobile', 'signatureVersion' => 'v4', 'signingName' => 'AWSMobileHubService', 'uid' => 'mobile-2017-07-01', ], 'operations' => [ 'CreateProject' => [ 'name' => 'CreateProject', 'http' => [ 'method' => 'POST', 'requestUri' => '/projects', ], 'input' => [ 'shape' => 'CreateProjectRequest', ], 'output' => [ 'shape' => 'CreateProjectResult', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'DeleteProject' => [ 'name' => 'DeleteProject', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/projects/{projectId}', ], 'input' => [ 'shape' => 'DeleteProjectRequest', ], 'output' => [ 'shape' => 'DeleteProjectResult', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotFoundException', ], ], ], 'DescribeBundle' => [ 'name' => 'DescribeBundle', 'http' => [ 'method' => 'GET', 'requestUri' => '/bundles/{bundleId}', ], 'input' => [ 'shape' => 'DescribeBundleRequest', ], 'output' => [ 'shape' => 'DescribeBundleResult', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], ], ], 'DescribeProject' => [ 'name' => 'DescribeProject', 'http' => [ 'method' => 'GET', 'requestUri' => '/project', ], 'input' => [ 'shape' => 'DescribeProjectRequest', ], 'output' => [ 'shape' => 'DescribeProjectResult', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], ], ], 'ExportBundle' => [ 'name' => 'ExportBundle', 'http' => [ 'method' => 'POST', 'requestUri' => '/bundles/{bundleId}', ], 'input' => [ 'shape' => 'ExportBundleRequest', ], 'output' => [ 'shape' => 'ExportBundleResult', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], ], ], 'ExportProject' => [ 'name' => 'ExportProject', 'http' => [ 'method' => 'POST', 'requestUri' => '/exports/{projectId}', ], 'input' => [ 'shape' => 'ExportProjectRequest', ], 'output' => [ 'shape' => 'ExportProjectResult', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], ], ], 'ListBundles' => [ 'name' => 'ListBundles', 'http' => [ 'method' => 'GET', 'requestUri' => '/bundles', ], 'input' => [ 'shape' => 'ListBundlesRequest', ], 'output' => [ 'shape' => 'ListBundlesResult', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListProjects' => [ 'name' => 'ListProjects', 'http' => [ 'method' => 'GET', 'requestUri' => '/projects', ], 'input' => [ 'shape' => 'ListProjectsRequest', ], 'output' => [ 'shape' => 'ListProjectsResult', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'UpdateProject' => [ 'name' => 'UpdateProject', 'http' => [ 'method' => 'POST', 'requestUri' => '/update', ], 'input' => [ 'shape' => 'UpdateProjectRequest', ], 'output' => [ 'shape' => 'UpdateProjectResult', ], 'errors' => [ [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'AccountActionRequiredException', ], [ 'shape' => 'LimitExceededException', ], ], ], ], 'shapes' => [ 'AccountActionRequiredException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, ], 'AttributeKey' => [ 'type' => 'string', ], 'AttributeValue' => [ 'type' => 'string', ], 'Attributes' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttributeKey', ], 'value' => [ 'shape' => 'AttributeValue', ], ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'Boolean' => [ 'type' => 'boolean', ], 'BundleDescription' => [ 'type' => 'string', ], 'BundleDetails' => [ 'type' => 'structure', 'members' => [ 'bundleId' => [ 'shape' => 'BundleId', ], 'title' => [ 'shape' => 'BundleTitle', ], 'version' => [ 'shape' => 'BundleVersion', ], 'description' => [ 'shape' => 'BundleDescription', ], 'iconUrl' => [ 'shape' => 'IconUrl', ], 'availablePlatforms' => [ 'shape' => 'Platforms', ], ], ], 'BundleId' => [ 'type' => 'string', ], 'BundleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BundleDetails', ], ], 'BundleTitle' => [ 'type' => 'string', ], 'BundleVersion' => [ 'type' => 'string', ], 'ConsoleUrl' => [ 'type' => 'string', ], 'Contents' => [ 'type' => 'blob', ], 'CreateProjectRequest' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ProjectName', 'location' => 'querystring', 'locationName' => 'name', ], 'region' => [ 'shape' => 'ProjectRegion', 'location' => 'querystring', 'locationName' => 'region', ], 'contents' => [ 'shape' => 'Contents', ], 'snapshotId' => [ 'shape' => 'SnapshotId', 'location' => 'querystring', 'locationName' => 'snapshotId', ], ], 'payload' => 'contents', ], 'CreateProjectResult' => [ 'type' => 'structure', 'members' => [ 'details' => [ 'shape' => 'ProjectDetails', ], ], ], 'Date' => [ 'type' => 'timestamp', ], 'DeleteProjectRequest' => [ 'type' => 'structure', 'required' => [ 'projectId', ], 'members' => [ 'projectId' => [ 'shape' => 'ProjectId', 'location' => 'uri', 'locationName' => 'projectId', ], ], ], 'DeleteProjectResult' => [ 'type' => 'structure', 'members' => [ 'deletedResources' => [ 'shape' => 'Resources', ], 'orphanedResources' => [ 'shape' => 'Resources', ], ], ], 'DescribeBundleRequest' => [ 'type' => 'structure', 'required' => [ 'bundleId', ], 'members' => [ 'bundleId' => [ 'shape' => 'BundleId', 'location' => 'uri', 'locationName' => 'bundleId', ], ], ], 'DescribeBundleResult' => [ 'type' => 'structure', 'members' => [ 'details' => [ 'shape' => 'BundleDetails', ], ], ], 'DescribeProjectRequest' => [ 'type' => 'structure', 'required' => [ 'projectId', ], 'members' => [ 'projectId' => [ 'shape' => 'ProjectId', 'location' => 'querystring', 'locationName' => 'projectId', ], 'syncFromResources' => [ 'shape' => 'Boolean', 'location' => 'querystring', 'locationName' => 'syncFromResources', ], ], ], 'DescribeProjectResult' => [ 'type' => 'structure', 'members' => [ 'details' => [ 'shape' => 'ProjectDetails', ], ], ], 'DownloadUrl' => [ 'type' => 'string', ], 'ErrorMessage' => [ 'type' => 'string', ], 'ExportBundleRequest' => [ 'type' => 'structure', 'required' => [ 'bundleId', ], 'members' => [ 'bundleId' => [ 'shape' => 'BundleId', 'location' => 'uri', 'locationName' => 'bundleId', ], 'projectId' => [ 'shape' => 'ProjectId', 'location' => 'querystring', 'locationName' => 'projectId', ], 'platform' => [ 'shape' => 'Platform', 'location' => 'querystring', 'locationName' => 'platform', ], ], ], 'ExportBundleResult' => [ 'type' => 'structure', 'members' => [ 'downloadUrl' => [ 'shape' => 'DownloadUrl', ], ], ], 'ExportProjectRequest' => [ 'type' => 'structure', 'required' => [ 'projectId', ], 'members' => [ 'projectId' => [ 'shape' => 'ProjectId', 'location' => 'uri', 'locationName' => 'projectId', ], ], ], 'ExportProjectResult' => [ 'type' => 'structure', 'members' => [ 'downloadUrl' => [ 'shape' => 'DownloadUrl', ], 'shareUrl' => [ 'shape' => 'ShareUrl', ], 'snapshotId' => [ 'shape' => 'SnapshotId', ], ], ], 'Feature' => [ 'type' => 'string', ], 'IconUrl' => [ 'type' => 'string', ], 'InternalFailureException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'retryAfterSeconds' => [ 'shape' => 'ErrorMessage', 'location' => 'header', 'locationName' => 'Retry-After', ], 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'ListBundlesRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListBundlesResult' => [ 'type' => 'structure', 'members' => [ 'bundleList' => [ 'shape' => 'BundleList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListProjectsRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListProjectsResult' => [ 'type' => 'structure', 'members' => [ 'projects' => [ 'shape' => 'ProjectSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'MaxResults' => [ 'type' => 'integer', ], 'NextToken' => [ 'type' => 'string', ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'Platform' => [ 'type' => 'string', 'enum' => [ 'OSX', 'WINDOWS', 'LINUX', 'OBJC', 'SWIFT', 'ANDROID', 'JAVASCRIPT', ], ], 'Platforms' => [ 'type' => 'list', 'member' => [ 'shape' => 'Platform', ], ], 'ProjectDetails' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ProjectName', ], 'projectId' => [ 'shape' => 'ProjectId', ], 'region' => [ 'shape' => 'ProjectRegion', ], 'state' => [ 'shape' => 'ProjectState', ], 'createdDate' => [ 'shape' => 'Date', ], 'lastUpdatedDate' => [ 'shape' => 'Date', ], 'consoleUrl' => [ 'shape' => 'ConsoleUrl', ], 'resources' => [ 'shape' => 'Resources', ], ], ], 'ProjectId' => [ 'type' => 'string', ], 'ProjectName' => [ 'type' => 'string', ], 'ProjectRegion' => [ 'type' => 'string', ], 'ProjectState' => [ 'type' => 'string', 'enum' => [ 'NORMAL', 'SYNCING', 'IMPORTING', ], ], 'ProjectSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProjectSummary', ], ], 'ProjectSummary' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ProjectName', ], 'projectId' => [ 'shape' => 'ProjectId', ], ], ], 'Resource' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'ResourceType', ], 'name' => [ 'shape' => 'ResourceName', ], 'arn' => [ 'shape' => 'ResourceArn', ], 'feature' => [ 'shape' => 'Feature', ], 'attributes' => [ 'shape' => 'Attributes', ], ], ], 'ResourceArn' => [ 'type' => 'string', ], 'ResourceName' => [ 'type' => 'string', ], 'ResourceType' => [ 'type' => 'string', ], 'Resources' => [ 'type' => 'list', 'member' => [ 'shape' => 'Resource', ], ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'retryAfterSeconds' => [ 'shape' => 'ErrorMessage', 'location' => 'header', 'locationName' => 'Retry-After', ], 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 503, ], 'exception' => true, 'fault' => true, ], 'ShareUrl' => [ 'type' => 'string', ], 'SnapshotId' => [ 'type' => 'string', ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'retryAfterSeconds' => [ 'shape' => 'ErrorMessage', 'location' => 'header', 'locationName' => 'Retry-After', ], 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'UnauthorizedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 401, ], 'exception' => true, ], 'UpdateProjectRequest' => [ 'type' => 'structure', 'required' => [ 'projectId', ], 'members' => [ 'contents' => [ 'shape' => 'Contents', ], 'projectId' => [ 'shape' => 'ProjectId', 'location' => 'querystring', 'locationName' => 'projectId', ], ], 'payload' => 'contents', ], 'UpdateProjectResult' => [ 'type' => 'structure', 'members' => [ 'details' => [ 'shape' => 'ProjectDetails', ], ], ], ],]; diff --git a/lib/aws/Aws/data/mobile/2017-07-01/paginators-1.json.php b/lib/aws/Aws/data/mobile/2017-07-01/paginators-1.json.php new file mode 100644 index 0000000..6536443 --- /dev/null +++ b/lib/aws/Aws/data/mobile/2017-07-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mobile/2017-07-01/paginators-1.json +return [ 'pagination' => [ 'ListBundles' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListProjects' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], ],]; diff --git a/lib/aws/Aws/data/monitoring/2010-08-01/api-2.json.php b/lib/aws/Aws/data/monitoring/2010-08-01/api-2.json.php new file mode 100644 index 0000000..376888a --- /dev/null +++ b/lib/aws/Aws/data/monitoring/2010-08-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/monitoring/2010-08-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2010-08-01', 'endpointPrefix' => 'monitoring', 'protocol' => 'query', 'serviceAbbreviation' => 'CloudWatch', 'serviceFullName' => 'Amazon CloudWatch', 'serviceId' => 'CloudWatch', 'signatureVersion' => 'v4', 'uid' => 'monitoring-2010-08-01', 'xmlNamespace' => 'http://monitoring.amazonaws.com/doc/2010-08-01/', ], 'operations' => [ 'DeleteAlarms' => [ 'name' => 'DeleteAlarms', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAlarmsInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFound', ], ], ], 'DeleteDashboards' => [ 'name' => 'DeleteDashboards', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDashboardsInput', ], 'output' => [ 'shape' => 'DeleteDashboardsOutput', 'resultWrapper' => 'DeleteDashboardsResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'DashboardNotFoundError', ], [ 'shape' => 'InternalServiceFault', ], ], ], 'DescribeAlarmHistory' => [ 'name' => 'DescribeAlarmHistory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAlarmHistoryInput', ], 'output' => [ 'shape' => 'DescribeAlarmHistoryOutput', 'resultWrapper' => 'DescribeAlarmHistoryResult', ], 'errors' => [ [ 'shape' => 'InvalidNextToken', ], ], ], 'DescribeAlarms' => [ 'name' => 'DescribeAlarms', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAlarmsInput', ], 'output' => [ 'shape' => 'DescribeAlarmsOutput', 'resultWrapper' => 'DescribeAlarmsResult', ], 'errors' => [ [ 'shape' => 'InvalidNextToken', ], ], ], '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', ], ], 'GetDashboard' => [ 'name' => 'GetDashboard', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDashboardInput', ], 'output' => [ 'shape' => 'GetDashboardOutput', 'resultWrapper' => 'GetDashboardResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'DashboardNotFoundError', ], [ 'shape' => 'InternalServiceFault', ], ], ], 'GetMetricData' => [ 'name' => 'GetMetricData', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetMetricDataInput', ], 'output' => [ 'shape' => 'GetMetricDataOutput', 'resultWrapper' => 'GetMetricDataResult', ], 'errors' => [ [ 'shape' => 'InvalidNextToken', ], ], ], 'GetMetricStatistics' => [ 'name' => 'GetMetricStatistics', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetMetricStatisticsInput', ], 'output' => [ 'shape' => 'GetMetricStatisticsOutput', 'resultWrapper' => 'GetMetricStatisticsResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'InvalidParameterCombinationException', ], [ 'shape' => 'InternalServiceFault', ], ], ], 'GetMetricWidgetImage' => [ 'name' => 'GetMetricWidgetImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetMetricWidgetImageInput', ], 'output' => [ 'shape' => 'GetMetricWidgetImageOutput', 'resultWrapper' => 'GetMetricWidgetImageResult', ], ], 'ListDashboards' => [ 'name' => 'ListDashboards', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDashboardsInput', ], 'output' => [ 'shape' => 'ListDashboardsOutput', 'resultWrapper' => 'ListDashboardsResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InternalServiceFault', ], ], ], 'ListMetrics' => [ 'name' => 'ListMetrics', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListMetricsInput', ], 'output' => [ 'shape' => 'ListMetricsOutput', 'resultWrapper' => 'ListMetricsResult', ], 'errors' => [ [ 'shape' => 'InternalServiceFault', ], [ 'shape' => 'InvalidParameterValueException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceInput', ], 'output' => [ 'shape' => 'ListTagsForResourceOutput', 'resultWrapper' => 'ListTagsForResourceResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServiceFault', ], ], ], 'PutDashboard' => [ 'name' => 'PutDashboard', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutDashboardInput', ], 'output' => [ 'shape' => 'PutDashboardOutput', 'resultWrapper' => 'PutDashboardResult', ], 'errors' => [ [ 'shape' => 'DashboardInvalidInputError', ], [ 'shape' => 'InternalServiceFault', ], ], ], 'PutMetricAlarm' => [ 'name' => 'PutMetricAlarm', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutMetricAlarmInput', ], 'errors' => [ [ 'shape' => 'LimitExceededFault', ], ], ], 'PutMetricData' => [ 'name' => 'PutMetricData', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutMetricDataInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'InvalidParameterCombinationException', ], [ 'shape' => 'InternalServiceFault', ], ], ], 'SetAlarmState' => [ 'name' => 'SetAlarmState', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetAlarmStateInput', ], 'errors' => [ [ 'shape' => 'ResourceNotFound', ], [ 'shape' => 'InvalidFormatFault', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceInput', ], 'output' => [ 'shape' => 'TagResourceOutput', 'resultWrapper' => 'TagResourceResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InternalServiceFault', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceInput', ], 'output' => [ 'shape' => 'UntagResourceOutput', 'resultWrapper' => 'UntagResourceResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InternalServiceFault', ], ], ], ], 'shapes' => [ 'ActionPrefix' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'ActionsEnabled' => [ 'type' => 'boolean', ], 'AlarmArn' => [ 'type' => 'string', 'max' => 1600, 'min' => 1, ], 'AlarmDescription' => [ 'type' => 'string', 'max' => 1024, 'min' => 0, ], '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', 'max' => 255, 'min' => 1, ], 'AlarmNamePrefix' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'AlarmNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'AlarmName', ], 'max' => 100, ], 'AmazonResourceName' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'AwsQueryErrorMessage' => [ 'type' => 'string', ], 'ComparisonOperator' => [ 'type' => 'string', 'enum' => [ 'GreaterThanOrEqualToThreshold', 'GreaterThanThreshold', 'LessThanThreshold', 'LessThanOrEqualToThreshold', ], ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'ConcurrentModificationException', 'httpStatusCode' => 429, 'senderFault' => true, ], 'exception' => true, ], 'Counts' => [ 'type' => 'list', 'member' => [ 'shape' => 'DatapointValue', ], ], 'DashboardArn' => [ 'type' => 'string', ], 'DashboardBody' => [ 'type' => 'string', ], 'DashboardEntries' => [ 'type' => 'list', 'member' => [ 'shape' => 'DashboardEntry', ], ], 'DashboardEntry' => [ 'type' => 'structure', 'members' => [ 'DashboardName' => [ 'shape' => 'DashboardName', ], 'DashboardArn' => [ 'shape' => 'DashboardArn', ], 'LastModified' => [ 'shape' => 'LastModified', ], 'Size' => [ 'shape' => 'Size', ], ], ], 'DashboardErrorMessage' => [ 'type' => 'string', ], 'DashboardInvalidInputError' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'DashboardErrorMessage', ], 'dashboardValidationMessages' => [ 'shape' => 'DashboardValidationMessages', ], ], 'error' => [ 'code' => 'InvalidParameterInput', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DashboardName' => [ 'type' => 'string', ], 'DashboardNamePrefix' => [ 'type' => 'string', ], 'DashboardNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'DashboardName', ], ], 'DashboardNotFoundError' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'DashboardErrorMessage', ], ], 'error' => [ 'code' => 'ResourceNotFound', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'DashboardValidationMessage' => [ 'type' => 'structure', 'members' => [ 'DataPath' => [ 'shape' => 'DataPath', ], 'Message' => [ 'shape' => 'Message', ], ], ], 'DashboardValidationMessages' => [ 'type' => 'list', 'member' => [ 'shape' => 'DashboardValidationMessage', ], ], 'DataPath' => [ 'type' => 'string', ], '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', ], 'ExtendedStatistics' => [ 'shape' => 'DatapointValueMap', ], ], 'xmlOrder' => [ 'Timestamp', 'SampleCount', 'Average', 'Sum', 'Minimum', 'Maximum', 'Unit', 'ExtendedStatistics', ], ], 'DatapointValue' => [ 'type' => 'double', ], 'DatapointValueMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'ExtendedStatistic', ], 'value' => [ 'shape' => 'DatapointValue', ], ], 'DatapointValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'DatapointValue', ], ], 'Datapoints' => [ 'type' => 'list', 'member' => [ 'shape' => 'Datapoint', ], ], 'DatapointsToAlarm' => [ 'type' => 'integer', 'min' => 1, ], 'DeleteAlarmsInput' => [ 'type' => 'structure', 'required' => [ 'AlarmNames', ], 'members' => [ 'AlarmNames' => [ 'shape' => 'AlarmNames', ], ], ], 'DeleteDashboardsInput' => [ 'type' => 'structure', 'required' => [ 'DashboardNames', ], 'members' => [ 'DashboardNames' => [ 'shape' => 'DashboardNames', ], ], ], 'DeleteDashboardsOutput' => [ 'type' => 'structure', 'members' => [], ], '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', ], 'ExtendedStatistic' => [ 'shape' => 'ExtendedStatistic', ], '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', 'max' => 255, 'min' => 1, ], 'DimensionValue' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], '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', 'max' => 255, 'min' => 1, ], 'EvaluateLowSampleCountPercentile' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'EvaluationPeriods' => [ 'type' => 'integer', 'min' => 1, ], 'ExtendedStatistic' => [ 'type' => 'string', 'pattern' => 'p(\\d{1,2}(\\.\\d{0,2})?|100)', ], 'ExtendedStatistics' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExtendedStatistic', ], 'max' => 10, 'min' => 1, ], 'FaultDescription' => [ 'type' => 'string', ], 'GetDashboardInput' => [ 'type' => 'structure', 'required' => [ 'DashboardName', ], 'members' => [ 'DashboardName' => [ 'shape' => 'DashboardName', ], ], ], 'GetDashboardOutput' => [ 'type' => 'structure', 'members' => [ 'DashboardArn' => [ 'shape' => 'DashboardArn', ], 'DashboardBody' => [ 'shape' => 'DashboardBody', ], 'DashboardName' => [ 'shape' => 'DashboardName', ], ], ], 'GetMetricDataInput' => [ 'type' => 'structure', 'required' => [ 'MetricDataQueries', 'StartTime', 'EndTime', ], 'members' => [ 'MetricDataQueries' => [ 'shape' => 'MetricDataQueries', ], 'StartTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'ScanBy' => [ 'shape' => 'ScanBy', ], 'MaxDatapoints' => [ 'shape' => 'GetMetricDataMaxDatapoints', ], ], ], 'GetMetricDataMaxDatapoints' => [ 'type' => 'integer', ], 'GetMetricDataOutput' => [ 'type' => 'structure', 'members' => [ 'MetricDataResults' => [ 'shape' => 'MetricDataResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Messages' => [ 'shape' => 'MetricDataResultMessages', ], ], ], 'GetMetricStatisticsInput' => [ 'type' => 'structure', 'required' => [ 'Namespace', 'MetricName', 'StartTime', 'EndTime', 'Period', ], 'members' => [ 'Namespace' => [ 'shape' => 'Namespace', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'Dimensions' => [ 'shape' => 'Dimensions', ], 'StartTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], 'Period' => [ 'shape' => 'Period', ], 'Statistics' => [ 'shape' => 'Statistics', ], 'ExtendedStatistics' => [ 'shape' => 'ExtendedStatistics', ], 'Unit' => [ 'shape' => 'StandardUnit', ], ], ], 'GetMetricStatisticsOutput' => [ 'type' => 'structure', 'members' => [ 'Label' => [ 'shape' => 'MetricLabel', ], 'Datapoints' => [ 'shape' => 'Datapoints', ], ], ], 'GetMetricWidgetImageInput' => [ 'type' => 'structure', 'required' => [ 'MetricWidget', ], 'members' => [ 'MetricWidget' => [ 'shape' => 'MetricWidget', ], 'OutputFormat' => [ 'shape' => 'OutputFormat', ], ], ], 'GetMetricWidgetImageOutput' => [ 'type' => 'structure', 'members' => [ 'MetricWidgetImage' => [ 'shape' => 'MetricWidgetImage', ], ], ], 'HistoryData' => [ 'type' => 'string', 'max' => 4095, 'min' => 1, ], 'HistoryItemType' => [ 'type' => 'string', 'enum' => [ 'ConfigurationUpdate', 'StateUpdate', 'Action', ], ], 'HistorySummary' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], '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, 'synthetic' => true, ], 'InvalidParameterValueException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'AwsQueryErrorMessage', ], ], 'error' => [ 'code' => 'InvalidParameterValue', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, 'synthetic' => true, ], 'LastModified' => [ 'type' => 'timestamp', ], 'LimitExceededFault' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'code' => 'LimitExceeded', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ListDashboardsInput' => [ 'type' => 'structure', 'members' => [ 'DashboardNamePrefix' => [ 'shape' => 'DashboardNamePrefix', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDashboardsOutput' => [ 'type' => 'structure', 'members' => [ 'DashboardEntries' => [ 'shape' => 'DashboardEntries', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], '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', ], ], 'ListTagsForResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'AmazonResourceName', ], ], ], 'ListTagsForResourceOutput' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], ], ], 'MaxRecords' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'Message' => [ 'type' => 'string', ], 'MessageData' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'MessageDataCode', ], 'Value' => [ 'shape' => 'MessageDataValue', ], ], ], 'MessageDataCode' => [ 'type' => 'string', ], 'MessageDataValue' => [ 'type' => 'string', ], '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', ], 'ExtendedStatistic' => [ 'shape' => 'ExtendedStatistic', ], 'Dimensions' => [ 'shape' => 'Dimensions', ], 'Period' => [ 'shape' => 'Period', ], 'Unit' => [ 'shape' => 'StandardUnit', ], 'EvaluationPeriods' => [ 'shape' => 'EvaluationPeriods', ], 'DatapointsToAlarm' => [ 'shape' => 'DatapointsToAlarm', ], 'Threshold' => [ 'shape' => 'Threshold', ], 'ComparisonOperator' => [ 'shape' => 'ComparisonOperator', ], 'TreatMissingData' => [ 'shape' => 'TreatMissingData', ], 'EvaluateLowSampleCountPercentile' => [ 'shape' => 'EvaluateLowSampleCountPercentile', ], 'Metrics' => [ 'shape' => 'MetricDataQueries', ], ], 'xmlOrder' => [ 'AlarmName', 'AlarmArn', 'AlarmDescription', 'AlarmConfigurationUpdatedTimestamp', 'ActionsEnabled', 'OKActions', 'AlarmActions', 'InsufficientDataActions', 'StateValue', 'StateReason', 'StateReasonData', 'StateUpdatedTimestamp', 'MetricName', 'Namespace', 'Statistic', 'Dimensions', 'Period', 'Unit', 'EvaluationPeriods', 'Threshold', 'ComparisonOperator', 'ExtendedStatistic', 'TreatMissingData', 'EvaluateLowSampleCountPercentile', 'DatapointsToAlarm', 'Metrics', ], ], 'MetricAlarms' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricAlarm', ], ], 'MetricData' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricDatum', ], ], 'MetricDataQueries' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricDataQuery', ], ], 'MetricDataQuery' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'MetricId', ], 'MetricStat' => [ 'shape' => 'MetricStat', ], 'Expression' => [ 'shape' => 'MetricExpression', ], 'Label' => [ 'shape' => 'MetricLabel', ], 'ReturnData' => [ 'shape' => 'ReturnData', ], ], ], 'MetricDataResult' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'MetricId', ], 'Label' => [ 'shape' => 'MetricLabel', ], 'Timestamps' => [ 'shape' => 'Timestamps', ], 'Values' => [ 'shape' => 'DatapointValues', ], 'StatusCode' => [ 'shape' => 'StatusCode', ], 'Messages' => [ 'shape' => 'MetricDataResultMessages', ], ], ], 'MetricDataResultMessages' => [ 'type' => 'list', 'member' => [ 'shape' => 'MessageData', ], ], 'MetricDataResults' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricDataResult', ], ], 'MetricDatum' => [ 'type' => 'structure', 'required' => [ 'MetricName', ], 'members' => [ 'MetricName' => [ 'shape' => 'MetricName', ], 'Dimensions' => [ 'shape' => 'Dimensions', ], 'Timestamp' => [ 'shape' => 'Timestamp', ], 'Value' => [ 'shape' => 'DatapointValue', ], 'StatisticValues' => [ 'shape' => 'StatisticSet', ], 'Values' => [ 'shape' => 'Values', ], 'Counts' => [ 'shape' => 'Counts', ], 'Unit' => [ 'shape' => 'StandardUnit', ], 'StorageResolution' => [ 'shape' => 'StorageResolution', ], ], ], 'MetricExpression' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'MetricId' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'MetricLabel' => [ 'type' => 'string', ], 'MetricName' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'MetricStat' => [ 'type' => 'structure', 'required' => [ 'Metric', 'Period', 'Stat', ], 'members' => [ 'Metric' => [ 'shape' => 'Metric', ], 'Period' => [ 'shape' => 'Period', ], 'Stat' => [ 'shape' => 'Stat', ], 'Unit' => [ 'shape' => 'StandardUnit', ], ], ], 'MetricWidget' => [ 'type' => 'string', ], 'MetricWidgetImage' => [ 'type' => 'blob', ], 'Metrics' => [ 'type' => 'list', 'member' => [ 'shape' => 'Metric', ], ], 'MissingRequiredParameterException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'AwsQueryErrorMessage', ], ], 'error' => [ 'code' => 'MissingParameter', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, 'synthetic' => true, ], 'Namespace' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[^:].*', ], 'NextToken' => [ 'type' => 'string', ], 'OutputFormat' => [ 'type' => 'string', ], 'Period' => [ 'type' => 'integer', 'min' => 1, ], 'PutDashboardInput' => [ 'type' => 'structure', 'required' => [ 'DashboardName', 'DashboardBody', ], 'members' => [ 'DashboardName' => [ 'shape' => 'DashboardName', ], 'DashboardBody' => [ 'shape' => 'DashboardBody', ], ], ], 'PutDashboardOutput' => [ 'type' => 'structure', 'members' => [ 'DashboardValidationMessages' => [ 'shape' => 'DashboardValidationMessages', ], ], ], 'PutMetricAlarmInput' => [ 'type' => 'structure', 'required' => [ 'AlarmName', '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', ], 'ExtendedStatistic' => [ 'shape' => 'ExtendedStatistic', ], 'Dimensions' => [ 'shape' => 'Dimensions', ], 'Period' => [ 'shape' => 'Period', ], 'Unit' => [ 'shape' => 'StandardUnit', ], 'EvaluationPeriods' => [ 'shape' => 'EvaluationPeriods', ], 'DatapointsToAlarm' => [ 'shape' => 'DatapointsToAlarm', ], 'Threshold' => [ 'shape' => 'Threshold', ], 'ComparisonOperator' => [ 'shape' => 'ComparisonOperator', ], 'TreatMissingData' => [ 'shape' => 'TreatMissingData', ], 'EvaluateLowSampleCountPercentile' => [ 'shape' => 'EvaluateLowSampleCountPercentile', ], 'Metrics' => [ 'shape' => 'MetricDataQueries', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'PutMetricDataInput' => [ 'type' => 'structure', 'required' => [ 'Namespace', 'MetricData', ], 'members' => [ 'Namespace' => [ 'shape' => 'Namespace', ], 'MetricData' => [ 'shape' => 'MetricData', ], ], ], 'ResourceId' => [ 'type' => 'string', ], 'ResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceName', ], 'max' => 5, ], 'ResourceName' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'ResourceNotFound' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'code' => 'ResourceNotFound', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ResourceType', ], 'ResourceId' => [ 'shape' => 'ResourceId', ], ], 'error' => [ 'code' => 'ResourceNotFoundException', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'ResourceType' => [ 'type' => 'string', ], 'ReturnData' => [ 'type' => 'boolean', ], 'ScanBy' => [ 'type' => 'string', 'enum' => [ 'TimestampDescending', 'TimestampAscending', ], ], 'SetAlarmStateInput' => [ 'type' => 'structure', 'required' => [ 'AlarmName', 'StateValue', 'StateReason', ], 'members' => [ 'AlarmName' => [ 'shape' => 'AlarmName', ], 'StateValue' => [ 'shape' => 'StateValue', ], 'StateReason' => [ 'shape' => 'StateReason', ], 'StateReasonData' => [ 'shape' => 'StateReasonData', ], ], ], 'Size' => [ 'type' => 'long', ], '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', ], ], 'Stat' => [ 'type' => 'string', ], 'StateReason' => [ 'type' => 'string', 'max' => 1023, 'min' => 0, ], 'StateReasonData' => [ 'type' => 'string', 'max' => 4000, 'min' => 0, ], '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', ], 'max' => 5, 'min' => 1, ], 'StatusCode' => [ 'type' => 'string', 'enum' => [ 'Complete', 'InternalError', 'PartialData', ], ], 'StorageResolution' => [ 'type' => 'integer', 'min' => 1, ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', 'Tags', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'AmazonResourceName', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceOutput' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'Threshold' => [ 'type' => 'double', ], 'Timestamp' => [ 'type' => 'timestamp', ], 'Timestamps' => [ 'type' => 'list', 'member' => [ 'shape' => 'Timestamp', ], ], 'TreatMissingData' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'UntagResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', 'TagKeys', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'AmazonResourceName', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagResourceOutput' => [ 'type' => 'structure', 'members' => [], ], 'Values' => [ 'type' => 'list', 'member' => [ 'shape' => 'DatapointValue', ], ], ],]; diff --git a/lib/aws/Aws/data/monitoring/2010-08-01/paginators-1.json.php b/lib/aws/Aws/data/monitoring/2010-08-01/paginators-1.json.php new file mode 100644 index 0000000..f125ed2 --- /dev/null +++ b/lib/aws/Aws/data/monitoring/2010-08-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/monitoring/2010-08-01/paginators-1.json +return [ 'pagination' => [ 'DescribeAlarmHistory' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxRecords', 'output_token' => 'NextToken', 'result_key' => 'AlarmHistoryItems', ], 'DescribeAlarms' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxRecords', 'output_token' => 'NextToken', 'result_key' => 'MetricAlarms', ], 'DescribeAlarmsForMetric' => [ 'result_key' => 'MetricAlarms', ], 'GetMetricData' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxDatapoints', 'output_token' => 'NextToken', 'result_key' => [ 'MetricDataResults', 'Messages', ], ], 'ListDashboards' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'result_key' => 'DashboardEntries', ], 'ListMetrics' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'result_key' => 'Metrics', ], ],]; diff --git a/lib/aws/Aws/data/monitoring/2010-08-01/smoke.json.php b/lib/aws/Aws/data/monitoring/2010-08-01/smoke.json.php new file mode 100644 index 0000000..c85059d --- /dev/null +++ b/lib/aws/Aws/data/monitoring/2010-08-01/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/monitoring/2010-08-01/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListMetrics', 'input' => [ 'Namespace' => 'AWS/EC2', ], 'errorExpectedFromService' => false, ], [ 'operationName' => 'SetAlarmState', 'input' => [ 'AlarmName' => 'abc', 'StateValue' => 'mno', 'StateReason' => 'xyz', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/monitoring/2010-08-01/waiters-2.json.php b/lib/aws/Aws/data/monitoring/2010-08-01/waiters-2.json.php new file mode 100644 index 0000000..8cfa37f --- /dev/null +++ b/lib/aws/Aws/data/monitoring/2010-08-01/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/monitoring/2010-08-01/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'AlarmExists' => [ 'delay' => 5, 'maxAttempts' => 40, 'operation' => 'DescribeAlarms', 'acceptors' => [ [ 'matcher' => 'path', 'expected' => true, 'argument' => 'length(MetricAlarms[]) > `0`', 'state' => 'success', ], ], ], ],]; diff --git a/lib/aws/Aws/data/mq/2017-11-27/api-2.json.php b/lib/aws/Aws/data/mq/2017-11-27/api-2.json.php new file mode 100644 index 0000000..adb0ab2 --- /dev/null +++ b/lib/aws/Aws/data/mq/2017-11-27/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mq/2017-11-27/api-2.json +return [ 'metadata' => [ 'apiVersion' => '2017-11-27', 'endpointPrefix' => 'mq', 'signingName' => 'mq', 'serviceFullName' => 'AmazonMQ', 'serviceId' => 'mq', 'protocol' => 'rest-json', 'jsonVersion' => '1.1', 'uid' => 'mq-2017-11-27', 'signatureVersion' => 'v4', ], 'operations' => [ 'CreateBroker' => [ 'name' => 'CreateBroker', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/brokers', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateBrokerRequest', ], 'output' => [ 'shape' => 'CreateBrokerResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'CreateConfiguration' => [ 'name' => 'CreateConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/configurations', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateConfigurationRequest', ], 'output' => [ 'shape' => 'CreateConfigurationResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'CreateTags' => [ 'name' => 'CreateTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/tags/{resource-arn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'CreateTagsRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'CreateUser' => [ 'name' => 'CreateUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/brokers/{broker-id}/users/{username}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateUserRequest', ], 'output' => [ 'shape' => 'CreateUserResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'DeleteBroker' => [ 'name' => 'DeleteBroker', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/brokers/{broker-id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteBrokerRequest', ], 'output' => [ 'shape' => 'DeleteBrokerResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'DeleteTags' => [ 'name' => 'DeleteTags', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/tags/{resource-arn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteTagsRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'DeleteUser' => [ 'name' => 'DeleteUser', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/brokers/{broker-id}/users/{username}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteUserRequest', ], 'output' => [ 'shape' => 'DeleteUserResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'DescribeBroker' => [ 'name' => 'DescribeBroker', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/brokers/{broker-id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeBrokerRequest', ], 'output' => [ 'shape' => 'DescribeBrokerResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'DescribeConfiguration' => [ 'name' => 'DescribeConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/configurations/{configuration-id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeConfigurationRequest', ], 'output' => [ 'shape' => 'DescribeConfigurationResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'DescribeConfigurationRevision' => [ 'name' => 'DescribeConfigurationRevision', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/configurations/{configuration-id}/revisions/{configuration-revision}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeConfigurationRevisionRequest', ], 'output' => [ 'shape' => 'DescribeConfigurationRevisionResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'DescribeUser' => [ 'name' => 'DescribeUser', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/brokers/{broker-id}/users/{username}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeUserRequest', ], 'output' => [ 'shape' => 'DescribeUserResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'ListBrokers' => [ 'name' => 'ListBrokers', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/brokers', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListBrokersRequest', ], 'output' => [ 'shape' => 'ListBrokersResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'ListConfigurationRevisions' => [ 'name' => 'ListConfigurationRevisions', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/configurations/{configuration-id}/revisions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListConfigurationRevisionsRequest', ], 'output' => [ 'shape' => 'ListConfigurationRevisionsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'ListConfigurations' => [ 'name' => 'ListConfigurations', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/configurations', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListConfigurationsRequest', ], 'output' => [ 'shape' => 'ListConfigurationsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'ListTags' => [ 'name' => 'ListTags', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/tags/{resource-arn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTagsRequest', ], 'output' => [ 'shape' => 'ListTagsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'ListUsers' => [ 'name' => 'ListUsers', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/brokers/{broker-id}/users', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListUsersRequest', ], 'output' => [ 'shape' => 'ListUsersResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'RebootBroker' => [ 'name' => 'RebootBroker', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/brokers/{broker-id}/reboot', 'responseCode' => 200, ], 'input' => [ 'shape' => 'RebootBrokerRequest', ], 'output' => [ 'shape' => 'RebootBrokerResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'UpdateBroker' => [ 'name' => 'UpdateBroker', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/brokers/{broker-id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateBrokerRequest', ], 'output' => [ 'shape' => 'UpdateBrokerResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'UpdateConfiguration' => [ 'name' => 'UpdateConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/configurations/{configuration-id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateConfigurationRequest', ], 'output' => [ 'shape' => 'UpdateConfigurationResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'UpdateUser' => [ 'name' => 'UpdateUser', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/brokers/{broker-id}/users/{username}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateUserRequest', ], 'output' => [ 'shape' => 'UpdateUserResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], ], ], ], 'shapes' => [ 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'ErrorAttribute' => [ 'shape' => '__string', 'locationName' => 'errorAttribute', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 400, ], ], 'BrokerInstance' => [ 'type' => 'structure', 'members' => [ 'ConsoleURL' => [ 'shape' => '__string', 'locationName' => 'consoleURL', ], 'Endpoints' => [ 'shape' => '__listOf__string', 'locationName' => 'endpoints', ], 'IpAddress' => [ 'shape' => '__string', 'locationName' => 'ipAddress', ], ], ], 'BrokerState' => [ 'type' => 'string', 'enum' => [ 'CREATION_IN_PROGRESS', 'CREATION_FAILED', 'DELETION_IN_PROGRESS', 'RUNNING', 'REBOOT_IN_PROGRESS', ], ], 'BrokerSummary' => [ 'type' => 'structure', 'members' => [ 'BrokerArn' => [ 'shape' => '__string', 'locationName' => 'brokerArn', ], 'BrokerId' => [ 'shape' => '__string', 'locationName' => 'brokerId', ], 'BrokerName' => [ 'shape' => '__string', 'locationName' => 'brokerName', ], 'BrokerState' => [ 'shape' => 'BrokerState', 'locationName' => 'brokerState', ], 'Created' => [ 'shape' => '__timestampIso8601', 'locationName' => 'created', ], 'DeploymentMode' => [ 'shape' => 'DeploymentMode', 'locationName' => 'deploymentMode', ], 'HostInstanceType' => [ 'shape' => '__string', 'locationName' => 'hostInstanceType', ], ], ], 'ChangeType' => [ 'type' => 'string', 'enum' => [ 'CREATE', 'UPDATE', 'DELETE', ], ], 'Configuration' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'Created' => [ 'shape' => '__timestampIso8601', 'locationName' => 'created', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'EngineType' => [ 'shape' => 'EngineType', 'locationName' => 'engineType', ], 'EngineVersion' => [ 'shape' => '__string', 'locationName' => 'engineVersion', ], 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], 'LatestRevision' => [ 'shape' => 'ConfigurationRevision', 'locationName' => 'latestRevision', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], ], 'ConfigurationId' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], 'Revision' => [ 'shape' => '__integer', 'locationName' => 'revision', ], ], ], 'ConfigurationRevision' => [ 'type' => 'structure', 'members' => [ 'Created' => [ 'shape' => '__timestampIso8601', 'locationName' => 'created', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'Revision' => [ 'shape' => '__integer', 'locationName' => 'revision', ], ], ], 'Configurations' => [ 'type' => 'structure', 'members' => [ 'Current' => [ 'shape' => 'ConfigurationId', 'locationName' => 'current', ], 'History' => [ 'shape' => '__listOfConfigurationId', 'locationName' => 'history', ], 'Pending' => [ 'shape' => 'ConfigurationId', 'locationName' => 'pending', ], ], ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'ErrorAttribute' => [ 'shape' => '__string', 'locationName' => 'errorAttribute', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 409, ], ], 'CreateBrokerInput' => [ 'type' => 'structure', 'members' => [ 'AutoMinorVersionUpgrade' => [ 'shape' => '__boolean', 'locationName' => 'autoMinorVersionUpgrade', ], 'BrokerName' => [ 'shape' => '__string', 'locationName' => 'brokerName', ], 'Configuration' => [ 'shape' => 'ConfigurationId', 'locationName' => 'configuration', ], 'CreatorRequestId' => [ 'shape' => '__string', 'locationName' => 'creatorRequestId', 'idempotencyToken' => true, ], 'DeploymentMode' => [ 'shape' => 'DeploymentMode', 'locationName' => 'deploymentMode', ], 'EngineType' => [ 'shape' => 'EngineType', 'locationName' => 'engineType', ], 'EngineVersion' => [ 'shape' => '__string', 'locationName' => 'engineVersion', ], 'HostInstanceType' => [ 'shape' => '__string', 'locationName' => 'hostInstanceType', ], 'Logs' => [ 'shape' => 'Logs', 'locationName' => 'logs', ], 'MaintenanceWindowStartTime' => [ 'shape' => 'WeeklyStartTime', 'locationName' => 'maintenanceWindowStartTime', ], 'PubliclyAccessible' => [ 'shape' => '__boolean', 'locationName' => 'publiclyAccessible', ], 'SecurityGroups' => [ 'shape' => '__listOf__string', 'locationName' => 'securityGroups', ], 'SubnetIds' => [ 'shape' => '__listOf__string', 'locationName' => 'subnetIds', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], 'Users' => [ 'shape' => '__listOfUser', 'locationName' => 'users', ], ], ], 'CreateBrokerOutput' => [ 'type' => 'structure', 'members' => [ 'BrokerArn' => [ 'shape' => '__string', 'locationName' => 'brokerArn', ], 'BrokerId' => [ 'shape' => '__string', 'locationName' => 'brokerId', ], ], ], 'CreateBrokerRequest' => [ 'type' => 'structure', 'members' => [ 'AutoMinorVersionUpgrade' => [ 'shape' => '__boolean', 'locationName' => 'autoMinorVersionUpgrade', ], 'BrokerName' => [ 'shape' => '__string', 'locationName' => 'brokerName', ], 'Configuration' => [ 'shape' => 'ConfigurationId', 'locationName' => 'configuration', ], 'CreatorRequestId' => [ 'shape' => '__string', 'locationName' => 'creatorRequestId', 'idempotencyToken' => true, ], 'DeploymentMode' => [ 'shape' => 'DeploymentMode', 'locationName' => 'deploymentMode', ], 'EngineType' => [ 'shape' => 'EngineType', 'locationName' => 'engineType', ], 'EngineVersion' => [ 'shape' => '__string', 'locationName' => 'engineVersion', ], 'HostInstanceType' => [ 'shape' => '__string', 'locationName' => 'hostInstanceType', ], 'Logs' => [ 'shape' => 'Logs', 'locationName' => 'logs', ], 'MaintenanceWindowStartTime' => [ 'shape' => 'WeeklyStartTime', 'locationName' => 'maintenanceWindowStartTime', ], 'PubliclyAccessible' => [ 'shape' => '__boolean', 'locationName' => 'publiclyAccessible', ], 'SecurityGroups' => [ 'shape' => '__listOf__string', 'locationName' => 'securityGroups', ], 'SubnetIds' => [ 'shape' => '__listOf__string', 'locationName' => 'subnetIds', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], 'Users' => [ 'shape' => '__listOfUser', 'locationName' => 'users', ], ], ], 'CreateBrokerResponse' => [ 'type' => 'structure', 'members' => [ 'BrokerArn' => [ 'shape' => '__string', 'locationName' => 'brokerArn', ], 'BrokerId' => [ 'shape' => '__string', 'locationName' => 'brokerId', ], ], ], 'CreateConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'EngineType' => [ 'shape' => 'EngineType', 'locationName' => 'engineType', ], 'EngineVersion' => [ 'shape' => '__string', 'locationName' => 'engineVersion', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], ], 'CreateConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'Created' => [ 'shape' => '__timestampIso8601', 'locationName' => 'created', ], 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], 'LatestRevision' => [ 'shape' => 'ConfigurationRevision', 'locationName' => 'latestRevision', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], ], ], 'CreateConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'EngineType' => [ 'shape' => 'EngineType', 'locationName' => 'engineType', ], 'EngineVersion' => [ 'shape' => '__string', 'locationName' => 'engineVersion', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], ], 'CreateConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'Created' => [ 'shape' => '__timestampIso8601', 'locationName' => 'created', ], 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], 'LatestRevision' => [ 'shape' => 'ConfigurationRevision', 'locationName' => 'latestRevision', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], ], ], 'CreateTagsRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'resource-arn', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], 'required' => [ 'ResourceArn', ], ], 'CreateUserInput' => [ 'type' => 'structure', 'members' => [ 'ConsoleAccess' => [ 'shape' => '__boolean', 'locationName' => 'consoleAccess', ], 'Groups' => [ 'shape' => '__listOf__string', 'locationName' => 'groups', ], 'Password' => [ 'shape' => '__string', 'locationName' => 'password', ], ], ], 'CreateUserRequest' => [ 'type' => 'structure', 'members' => [ 'BrokerId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'broker-id', ], 'ConsoleAccess' => [ 'shape' => '__boolean', 'locationName' => 'consoleAccess', ], 'Groups' => [ 'shape' => '__listOf__string', 'locationName' => 'groups', ], 'Password' => [ 'shape' => '__string', 'locationName' => 'password', ], 'Username' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'username', ], ], 'required' => [ 'Username', 'BrokerId', ], ], 'CreateUserResponse' => [ 'type' => 'structure', 'members' => [], ], 'DayOfWeek' => [ 'type' => 'string', 'enum' => [ 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY', ], ], 'DeleteBrokerOutput' => [ 'type' => 'structure', 'members' => [ 'BrokerId' => [ 'shape' => '__string', 'locationName' => 'brokerId', ], ], ], 'DeleteBrokerRequest' => [ 'type' => 'structure', 'members' => [ 'BrokerId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'broker-id', ], ], 'required' => [ 'BrokerId', ], ], 'DeleteBrokerResponse' => [ 'type' => 'structure', 'members' => [ 'BrokerId' => [ 'shape' => '__string', 'locationName' => 'brokerId', ], ], ], 'DeleteTagsRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'resource-arn', ], 'TagKeys' => [ 'shape' => '__listOf__string', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], 'required' => [ 'TagKeys', 'ResourceArn', ], ], 'DeleteUserRequest' => [ 'type' => 'structure', 'members' => [ 'BrokerId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'broker-id', ], 'Username' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'username', ], ], 'required' => [ 'Username', 'BrokerId', ], ], 'DeleteUserResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeploymentMode' => [ 'type' => 'string', 'enum' => [ 'SINGLE_INSTANCE', 'ACTIVE_STANDBY_MULTI_AZ', ], ], 'DescribeBrokerOutput' => [ 'type' => 'structure', 'members' => [ 'AutoMinorVersionUpgrade' => [ 'shape' => '__boolean', 'locationName' => 'autoMinorVersionUpgrade', ], 'BrokerArn' => [ 'shape' => '__string', 'locationName' => 'brokerArn', ], 'BrokerId' => [ 'shape' => '__string', 'locationName' => 'brokerId', ], 'BrokerInstances' => [ 'shape' => '__listOfBrokerInstance', 'locationName' => 'brokerInstances', ], 'BrokerName' => [ 'shape' => '__string', 'locationName' => 'brokerName', ], 'BrokerState' => [ 'shape' => 'BrokerState', 'locationName' => 'brokerState', ], 'Configurations' => [ 'shape' => 'Configurations', 'locationName' => 'configurations', ], 'Created' => [ 'shape' => '__timestampIso8601', 'locationName' => 'created', ], 'DeploymentMode' => [ 'shape' => 'DeploymentMode', 'locationName' => 'deploymentMode', ], 'EngineType' => [ 'shape' => 'EngineType', 'locationName' => 'engineType', ], 'EngineVersion' => [ 'shape' => '__string', 'locationName' => 'engineVersion', ], 'HostInstanceType' => [ 'shape' => '__string', 'locationName' => 'hostInstanceType', ], 'Logs' => [ 'shape' => 'LogsSummary', 'locationName' => 'logs', ], 'MaintenanceWindowStartTime' => [ 'shape' => 'WeeklyStartTime', 'locationName' => 'maintenanceWindowStartTime', ], 'PendingEngineVersion' => [ 'shape' => '__string', 'locationName' => 'pendingEngineVersion', ], 'PubliclyAccessible' => [ 'shape' => '__boolean', 'locationName' => 'publiclyAccessible', ], 'SecurityGroups' => [ 'shape' => '__listOf__string', 'locationName' => 'securityGroups', ], 'SubnetIds' => [ 'shape' => '__listOf__string', 'locationName' => 'subnetIds', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], 'Users' => [ 'shape' => '__listOfUserSummary', 'locationName' => 'users', ], ], ], 'DescribeBrokerRequest' => [ 'type' => 'structure', 'members' => [ 'BrokerId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'broker-id', ], ], 'required' => [ 'BrokerId', ], ], 'DescribeBrokerResponse' => [ 'type' => 'structure', 'members' => [ 'AutoMinorVersionUpgrade' => [ 'shape' => '__boolean', 'locationName' => 'autoMinorVersionUpgrade', ], 'BrokerArn' => [ 'shape' => '__string', 'locationName' => 'brokerArn', ], 'BrokerId' => [ 'shape' => '__string', 'locationName' => 'brokerId', ], 'BrokerInstances' => [ 'shape' => '__listOfBrokerInstance', 'locationName' => 'brokerInstances', ], 'BrokerName' => [ 'shape' => '__string', 'locationName' => 'brokerName', ], 'BrokerState' => [ 'shape' => 'BrokerState', 'locationName' => 'brokerState', ], 'Configurations' => [ 'shape' => 'Configurations', 'locationName' => 'configurations', ], 'Created' => [ 'shape' => '__timestampIso8601', 'locationName' => 'created', ], 'DeploymentMode' => [ 'shape' => 'DeploymentMode', 'locationName' => 'deploymentMode', ], 'EngineType' => [ 'shape' => 'EngineType', 'locationName' => 'engineType', ], 'EngineVersion' => [ 'shape' => '__string', 'locationName' => 'engineVersion', ], 'HostInstanceType' => [ 'shape' => '__string', 'locationName' => 'hostInstanceType', ], 'Logs' => [ 'shape' => 'LogsSummary', 'locationName' => 'logs', ], 'MaintenanceWindowStartTime' => [ 'shape' => 'WeeklyStartTime', 'locationName' => 'maintenanceWindowStartTime', ], 'PendingEngineVersion' => [ 'shape' => '__string', 'locationName' => 'pendingEngineVersion', ], 'PubliclyAccessible' => [ 'shape' => '__boolean', 'locationName' => 'publiclyAccessible', ], 'SecurityGroups' => [ 'shape' => '__listOf__string', 'locationName' => 'securityGroups', ], 'SubnetIds' => [ 'shape' => '__listOf__string', 'locationName' => 'subnetIds', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], 'Users' => [ 'shape' => '__listOfUserSummary', 'locationName' => 'users', ], ], ], 'DescribeConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'ConfigurationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'configuration-id', ], ], 'required' => [ 'ConfigurationId', ], ], 'DescribeConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'Created' => [ 'shape' => '__timestampIso8601', 'locationName' => 'created', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'EngineType' => [ 'shape' => 'EngineType', 'locationName' => 'engineType', ], 'EngineVersion' => [ 'shape' => '__string', 'locationName' => 'engineVersion', ], 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], 'LatestRevision' => [ 'shape' => 'ConfigurationRevision', 'locationName' => 'latestRevision', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], ], 'DescribeConfigurationRevisionOutput' => [ 'type' => 'structure', 'members' => [ 'ConfigurationId' => [ 'shape' => '__string', 'locationName' => 'configurationId', ], 'Created' => [ 'shape' => '__timestampIso8601', 'locationName' => 'created', ], 'Data' => [ 'shape' => '__string', 'locationName' => 'data', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], ], ], 'DescribeConfigurationRevisionRequest' => [ 'type' => 'structure', 'members' => [ 'ConfigurationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'configuration-id', ], 'ConfigurationRevision' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'configuration-revision', ], ], 'required' => [ 'ConfigurationRevision', 'ConfigurationId', ], ], 'DescribeConfigurationRevisionResponse' => [ 'type' => 'structure', 'members' => [ 'ConfigurationId' => [ 'shape' => '__string', 'locationName' => 'configurationId', ], 'Created' => [ 'shape' => '__timestampIso8601', 'locationName' => 'created', ], 'Data' => [ 'shape' => '__string', 'locationName' => 'data', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], ], ], 'DescribeUserOutput' => [ 'type' => 'structure', 'members' => [ 'BrokerId' => [ 'shape' => '__string', 'locationName' => 'brokerId', ], 'ConsoleAccess' => [ 'shape' => '__boolean', 'locationName' => 'consoleAccess', ], 'Groups' => [ 'shape' => '__listOf__string', 'locationName' => 'groups', ], 'Pending' => [ 'shape' => 'UserPendingChanges', 'locationName' => 'pending', ], 'Username' => [ 'shape' => '__string', 'locationName' => 'username', ], ], ], 'DescribeUserRequest' => [ 'type' => 'structure', 'members' => [ 'BrokerId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'broker-id', ], 'Username' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'username', ], ], 'required' => [ 'Username', 'BrokerId', ], ], 'DescribeUserResponse' => [ 'type' => 'structure', 'members' => [ 'BrokerId' => [ 'shape' => '__string', 'locationName' => 'brokerId', ], 'ConsoleAccess' => [ 'shape' => '__boolean', 'locationName' => 'consoleAccess', ], 'Groups' => [ 'shape' => '__listOf__string', 'locationName' => 'groups', ], 'Pending' => [ 'shape' => 'UserPendingChanges', 'locationName' => 'pending', ], 'Username' => [ 'shape' => '__string', 'locationName' => 'username', ], ], ], 'EngineType' => [ 'type' => 'string', 'enum' => [ 'ACTIVEMQ', ], ], 'Error' => [ 'type' => 'structure', 'members' => [ 'ErrorAttribute' => [ 'shape' => '__string', 'locationName' => 'errorAttribute', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], ], 'ForbiddenException' => [ 'type' => 'structure', 'members' => [ 'ErrorAttribute' => [ 'shape' => '__string', 'locationName' => 'errorAttribute', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 403, ], ], 'InternalServerErrorException' => [ 'type' => 'structure', 'members' => [ 'ErrorAttribute' => [ 'shape' => '__string', 'locationName' => 'errorAttribute', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 500, ], ], 'ListBrokersOutput' => [ 'type' => 'structure', 'members' => [ 'BrokerSummaries' => [ 'shape' => '__listOfBrokerSummary', 'locationName' => 'brokerSummaries', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'ListBrokersRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListBrokersResponse' => [ 'type' => 'structure', 'members' => [ 'BrokerSummaries' => [ 'shape' => '__listOfBrokerSummary', 'locationName' => 'brokerSummaries', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'ListConfigurationRevisionsOutput' => [ 'type' => 'structure', 'members' => [ 'ConfigurationId' => [ 'shape' => '__string', 'locationName' => 'configurationId', ], 'MaxResults' => [ 'shape' => '__integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], 'Revisions' => [ 'shape' => '__listOfConfigurationRevision', 'locationName' => 'revisions', ], ], ], 'ListConfigurationRevisionsRequest' => [ 'type' => 'structure', 'members' => [ 'ConfigurationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'configuration-id', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], 'required' => [ 'ConfigurationId', ], ], 'ListConfigurationRevisionsResponse' => [ 'type' => 'structure', 'members' => [ 'ConfigurationId' => [ 'shape' => '__string', 'locationName' => 'configurationId', ], 'MaxResults' => [ 'shape' => '__integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], 'Revisions' => [ 'shape' => '__listOfConfigurationRevision', 'locationName' => 'revisions', ], ], ], 'ListConfigurationsOutput' => [ 'type' => 'structure', 'members' => [ 'Configurations' => [ 'shape' => '__listOfConfiguration', 'locationName' => 'configurations', ], 'MaxResults' => [ 'shape' => '__integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'ListConfigurationsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListConfigurationsResponse' => [ 'type' => 'structure', 'members' => [ 'Configurations' => [ 'shape' => '__listOfConfiguration', 'locationName' => 'configurations', ], 'MaxResults' => [ 'shape' => '__integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'ListTagsRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'resource-arn', ], ], 'required' => [ 'ResourceArn', ], ], 'ListTagsResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], ], 'ListUsersOutput' => [ 'type' => 'structure', 'members' => [ 'BrokerId' => [ 'shape' => '__string', 'locationName' => 'brokerId', ], 'MaxResults' => [ 'shape' => '__integerMin5Max100', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], 'Users' => [ 'shape' => '__listOfUserSummary', 'locationName' => 'users', ], ], ], 'ListUsersRequest' => [ 'type' => 'structure', 'members' => [ 'BrokerId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'broker-id', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], 'required' => [ 'BrokerId', ], ], 'ListUsersResponse' => [ 'type' => 'structure', 'members' => [ 'BrokerId' => [ 'shape' => '__string', 'locationName' => 'brokerId', ], 'MaxResults' => [ 'shape' => '__integerMin5Max100', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], 'Users' => [ 'shape' => '__listOfUserSummary', 'locationName' => 'users', ], ], ], 'Logs' => [ 'type' => 'structure', 'members' => [ 'Audit' => [ 'shape' => '__boolean', 'locationName' => 'audit', ], 'General' => [ 'shape' => '__boolean', 'locationName' => 'general', ], ], ], 'LogsSummary' => [ 'type' => 'structure', 'members' => [ 'Audit' => [ 'shape' => '__boolean', 'locationName' => 'audit', ], 'AuditLogGroup' => [ 'shape' => '__string', 'locationName' => 'auditLogGroup', ], 'General' => [ 'shape' => '__boolean', 'locationName' => 'general', ], 'GeneralLogGroup' => [ 'shape' => '__string', 'locationName' => 'generalLogGroup', ], 'Pending' => [ 'shape' => 'PendingLogs', 'locationName' => 'pending', ], ], ], 'MaxResults' => [ 'type' => 'integer', 'min' => 1, 'max' => 100, ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'ErrorAttribute' => [ 'shape' => '__string', 'locationName' => 'errorAttribute', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 404, ], ], 'PendingLogs' => [ 'type' => 'structure', 'members' => [ 'Audit' => [ 'shape' => '__boolean', 'locationName' => 'audit', ], 'General' => [ 'shape' => '__boolean', 'locationName' => 'general', ], ], ], 'RebootBrokerRequest' => [ 'type' => 'structure', 'members' => [ 'BrokerId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'broker-id', ], ], 'required' => [ 'BrokerId', ], ], 'RebootBrokerResponse' => [ 'type' => 'structure', 'members' => [], ], 'SanitizationWarning' => [ 'type' => 'structure', 'members' => [ 'AttributeName' => [ 'shape' => '__string', 'locationName' => 'attributeName', ], 'ElementName' => [ 'shape' => '__string', 'locationName' => 'elementName', ], 'Reason' => [ 'shape' => 'SanitizationWarningReason', 'locationName' => 'reason', ], ], ], 'SanitizationWarningReason' => [ 'type' => 'string', 'enum' => [ 'DISALLOWED_ELEMENT_REMOVED', 'DISALLOWED_ATTRIBUTE_REMOVED', 'INVALID_ATTRIBUTE_VALUE_REMOVED', ], ], 'Tags' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => '__mapOf__string', 'locationName' => 'tags', ], ], ], 'UnauthorizedException' => [ 'type' => 'structure', 'members' => [ 'ErrorAttribute' => [ 'shape' => '__string', 'locationName' => 'errorAttribute', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 401, ], ], 'UpdateBrokerInput' => [ 'type' => 'structure', 'members' => [ 'AutoMinorVersionUpgrade' => [ 'shape' => '__boolean', 'locationName' => 'autoMinorVersionUpgrade', ], 'Configuration' => [ 'shape' => 'ConfigurationId', 'locationName' => 'configuration', ], 'EngineVersion' => [ 'shape' => '__string', 'locationName' => 'engineVersion', ], 'Logs' => [ 'shape' => 'Logs', 'locationName' => 'logs', ], ], ], 'UpdateBrokerOutput' => [ 'type' => 'structure', 'members' => [ 'AutoMinorVersionUpgrade' => [ 'shape' => '__boolean', 'locationName' => 'autoMinorVersionUpgrade', ], 'BrokerId' => [ 'shape' => '__string', 'locationName' => 'brokerId', ], 'Configuration' => [ 'shape' => 'ConfigurationId', 'locationName' => 'configuration', ], 'EngineVersion' => [ 'shape' => '__string', 'locationName' => 'engineVersion', ], 'Logs' => [ 'shape' => 'Logs', 'locationName' => 'logs', ], ], ], 'UpdateBrokerRequest' => [ 'type' => 'structure', 'members' => [ 'AutoMinorVersionUpgrade' => [ 'shape' => '__boolean', 'locationName' => 'autoMinorVersionUpgrade', ], 'BrokerId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'broker-id', ], 'Configuration' => [ 'shape' => 'ConfigurationId', 'locationName' => 'configuration', ], 'EngineVersion' => [ 'shape' => '__string', 'locationName' => 'engineVersion', ], 'Logs' => [ 'shape' => 'Logs', 'locationName' => 'logs', ], ], 'required' => [ 'BrokerId', ], ], 'UpdateBrokerResponse' => [ 'type' => 'structure', 'members' => [ 'AutoMinorVersionUpgrade' => [ 'shape' => '__boolean', 'locationName' => 'autoMinorVersionUpgrade', ], 'BrokerId' => [ 'shape' => '__string', 'locationName' => 'brokerId', ], 'Configuration' => [ 'shape' => 'ConfigurationId', 'locationName' => 'configuration', ], 'EngineVersion' => [ 'shape' => '__string', 'locationName' => 'engineVersion', ], 'Logs' => [ 'shape' => 'Logs', 'locationName' => 'logs', ], ], ], 'UpdateConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'Data' => [ 'shape' => '__string', 'locationName' => 'data', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], ], ], 'UpdateConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'Created' => [ 'shape' => '__timestampIso8601', 'locationName' => 'created', ], 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], 'LatestRevision' => [ 'shape' => 'ConfigurationRevision', 'locationName' => 'latestRevision', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'Warnings' => [ 'shape' => '__listOfSanitizationWarning', 'locationName' => 'warnings', ], ], ], 'UpdateConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'ConfigurationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'configuration-id', ], 'Data' => [ 'shape' => '__string', 'locationName' => 'data', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], ], 'required' => [ 'ConfigurationId', ], ], 'UpdateConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'Created' => [ 'shape' => '__timestampIso8601', 'locationName' => 'created', ], 'Id' => [ 'shape' => '__string', 'locationName' => 'id', ], 'LatestRevision' => [ 'shape' => 'ConfigurationRevision', 'locationName' => 'latestRevision', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'Warnings' => [ 'shape' => '__listOfSanitizationWarning', 'locationName' => 'warnings', ], ], ], 'UpdateUserInput' => [ 'type' => 'structure', 'members' => [ 'ConsoleAccess' => [ 'shape' => '__boolean', 'locationName' => 'consoleAccess', ], 'Groups' => [ 'shape' => '__listOf__string', 'locationName' => 'groups', ], 'Password' => [ 'shape' => '__string', 'locationName' => 'password', ], ], ], 'UpdateUserRequest' => [ 'type' => 'structure', 'members' => [ 'BrokerId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'broker-id', ], 'ConsoleAccess' => [ 'shape' => '__boolean', 'locationName' => 'consoleAccess', ], 'Groups' => [ 'shape' => '__listOf__string', 'locationName' => 'groups', ], 'Password' => [ 'shape' => '__string', 'locationName' => 'password', ], 'Username' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'username', ], ], 'required' => [ 'Username', 'BrokerId', ], ], 'UpdateUserResponse' => [ 'type' => 'structure', 'members' => [], ], 'User' => [ 'type' => 'structure', 'members' => [ 'ConsoleAccess' => [ 'shape' => '__boolean', 'locationName' => 'consoleAccess', ], 'Groups' => [ 'shape' => '__listOf__string', 'locationName' => 'groups', ], 'Password' => [ 'shape' => '__string', 'locationName' => 'password', ], 'Username' => [ 'shape' => '__string', 'locationName' => 'username', ], ], ], 'UserPendingChanges' => [ 'type' => 'structure', 'members' => [ 'ConsoleAccess' => [ 'shape' => '__boolean', 'locationName' => 'consoleAccess', ], 'Groups' => [ 'shape' => '__listOf__string', 'locationName' => 'groups', ], 'PendingChange' => [ 'shape' => 'ChangeType', 'locationName' => 'pendingChange', ], ], ], 'UserSummary' => [ 'type' => 'structure', 'members' => [ 'PendingChange' => [ 'shape' => 'ChangeType', 'locationName' => 'pendingChange', ], 'Username' => [ 'shape' => '__string', 'locationName' => 'username', ], ], ], 'WeeklyStartTime' => [ 'type' => 'structure', 'members' => [ 'DayOfWeek' => [ 'shape' => 'DayOfWeek', 'locationName' => 'dayOfWeek', ], 'TimeOfDay' => [ 'shape' => '__string', 'locationName' => 'timeOfDay', ], 'TimeZone' => [ 'shape' => '__string', 'locationName' => 'timeZone', ], ], ], '__boolean' => [ 'type' => 'boolean', ], '__double' => [ 'type' => 'double', ], '__integer' => [ 'type' => 'integer', ], '__integerMin5Max100' => [ 'type' => 'integer', 'min' => 5, 'max' => 100, ], '__listOfBrokerInstance' => [ 'type' => 'list', 'member' => [ 'shape' => 'BrokerInstance', ], ], '__listOfBrokerSummary' => [ 'type' => 'list', 'member' => [ 'shape' => 'BrokerSummary', ], ], '__listOfConfiguration' => [ 'type' => 'list', 'member' => [ 'shape' => 'Configuration', ], ], '__listOfConfigurationId' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationId', ], ], '__listOfConfigurationRevision' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationRevision', ], ], '__listOfSanitizationWarning' => [ 'type' => 'list', 'member' => [ 'shape' => 'SanitizationWarning', ], ], '__listOfUser' => [ 'type' => 'list', 'member' => [ 'shape' => 'User', ], ], '__listOfUserSummary' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserSummary', ], ], '__listOf__string' => [ 'type' => 'list', 'member' => [ 'shape' => '__string', ], ], '__long' => [ 'type' => 'long', ], '__mapOf__string' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => '__string', ], ], '__string' => [ 'type' => 'string', ], '__timestampIso8601' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], '__timestampUnix' => [ 'type' => 'timestamp', 'timestampFormat' => 'unixTimestamp', ], ],]; diff --git a/lib/aws/Aws/data/mq/2017-11-27/paginators-1.json.php b/lib/aws/Aws/data/mq/2017-11-27/paginators-1.json.php new file mode 100644 index 0000000..08db604 --- /dev/null +++ b/lib/aws/Aws/data/mq/2017-11-27/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mq/2017-11-27/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/mturk-requester/2017-01-17/api-2.json.php b/lib/aws/Aws/data/mturk-requester/2017-01-17/api-2.json.php new file mode 100644 index 0000000..cc9f469 --- /dev/null +++ b/lib/aws/Aws/data/mturk-requester/2017-01-17/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mturk-requester/2017-01-17/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-01-17', 'endpointPrefix' => 'mturk-requester', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'Amazon MTurk', 'serviceFullName' => 'Amazon Mechanical Turk', 'serviceId' => 'MTurk', 'signatureVersion' => 'v4', 'targetPrefix' => 'MTurkRequesterServiceV20170117', 'uid' => 'mturk-requester-2017-01-17', ], 'operations' => [ 'AcceptQualificationRequest' => [ 'name' => 'AcceptQualificationRequest', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptQualificationRequestRequest', ], 'output' => [ 'shape' => 'AcceptQualificationRequestResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], ], 'ApproveAssignment' => [ 'name' => 'ApproveAssignment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ApproveAssignmentRequest', ], 'output' => [ 'shape' => 'ApproveAssignmentResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'AssociateQualificationWithWorker' => [ 'name' => 'AssociateQualificationWithWorker', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateQualificationWithWorkerRequest', ], 'output' => [ 'shape' => 'AssociateQualificationWithWorkerResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], ], 'CreateAdditionalAssignmentsForHIT' => [ 'name' => 'CreateAdditionalAssignmentsForHIT', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAdditionalAssignmentsForHITRequest', ], 'output' => [ 'shape' => 'CreateAdditionalAssignmentsForHITResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], ], 'CreateHIT' => [ 'name' => 'CreateHIT', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateHITRequest', ], 'output' => [ 'shape' => 'CreateHITResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], ], 'CreateHITType' => [ 'name' => 'CreateHITType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateHITTypeRequest', ], 'output' => [ 'shape' => 'CreateHITTypeResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'CreateHITWithHITType' => [ 'name' => 'CreateHITWithHITType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateHITWithHITTypeRequest', ], 'output' => [ 'shape' => 'CreateHITWithHITTypeResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], ], 'CreateQualificationType' => [ 'name' => 'CreateQualificationType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateQualificationTypeRequest', ], 'output' => [ 'shape' => 'CreateQualificationTypeResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], ], 'CreateWorkerBlock' => [ 'name' => 'CreateWorkerBlock', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateWorkerBlockRequest', ], 'output' => [ 'shape' => 'CreateWorkerBlockResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], ], 'DeleteHIT' => [ 'name' => 'DeleteHIT', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteHITRequest', ], 'output' => [ 'shape' => 'DeleteHITResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'DeleteQualificationType' => [ 'name' => 'DeleteQualificationType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteQualificationTypeRequest', ], 'output' => [ 'shape' => 'DeleteQualificationTypeResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'DeleteWorkerBlock' => [ 'name' => 'DeleteWorkerBlock', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteWorkerBlockRequest', ], 'output' => [ 'shape' => 'DeleteWorkerBlockResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'DisassociateQualificationFromWorker' => [ 'name' => 'DisassociateQualificationFromWorker', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateQualificationFromWorkerRequest', ], 'output' => [ 'shape' => 'DisassociateQualificationFromWorkerResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], ], 'GetAccountBalance' => [ 'name' => 'GetAccountBalance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAccountBalanceRequest', ], 'output' => [ 'shape' => 'GetAccountBalanceResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'GetAssignment' => [ 'name' => 'GetAssignment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAssignmentRequest', ], 'output' => [ 'shape' => 'GetAssignmentResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'GetFileUploadURL' => [ 'name' => 'GetFileUploadURL', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetFileUploadURLRequest', ], 'output' => [ 'shape' => 'GetFileUploadURLResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'GetHIT' => [ 'name' => 'GetHIT', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetHITRequest', ], 'output' => [ 'shape' => 'GetHITResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'GetQualificationScore' => [ 'name' => 'GetQualificationScore', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetQualificationScoreRequest', ], 'output' => [ 'shape' => 'GetQualificationScoreResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'GetQualificationType' => [ 'name' => 'GetQualificationType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetQualificationTypeRequest', ], 'output' => [ 'shape' => 'GetQualificationTypeResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'ListAssignmentsForHIT' => [ 'name' => 'ListAssignmentsForHIT', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAssignmentsForHITRequest', ], 'output' => [ 'shape' => 'ListAssignmentsForHITResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'ListBonusPayments' => [ 'name' => 'ListBonusPayments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListBonusPaymentsRequest', ], 'output' => [ 'shape' => 'ListBonusPaymentsResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'ListHITs' => [ 'name' => 'ListHITs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListHITsRequest', ], 'output' => [ 'shape' => 'ListHITsResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'ListHITsForQualificationType' => [ 'name' => 'ListHITsForQualificationType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListHITsForQualificationTypeRequest', ], 'output' => [ 'shape' => 'ListHITsForQualificationTypeResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'ListQualificationRequests' => [ 'name' => 'ListQualificationRequests', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListQualificationRequestsRequest', ], 'output' => [ 'shape' => 'ListQualificationRequestsResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'ListQualificationTypes' => [ 'name' => 'ListQualificationTypes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListQualificationTypesRequest', ], 'output' => [ 'shape' => 'ListQualificationTypesResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'ListReviewPolicyResultsForHIT' => [ 'name' => 'ListReviewPolicyResultsForHIT', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListReviewPolicyResultsForHITRequest', ], 'output' => [ 'shape' => 'ListReviewPolicyResultsForHITResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'ListReviewableHITs' => [ 'name' => 'ListReviewableHITs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListReviewableHITsRequest', ], 'output' => [ 'shape' => 'ListReviewableHITsResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'ListWorkerBlocks' => [ 'name' => 'ListWorkerBlocks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListWorkerBlocksRequest', ], 'output' => [ 'shape' => 'ListWorkerBlocksResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'ListWorkersWithQualificationType' => [ 'name' => 'ListWorkersWithQualificationType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListWorkersWithQualificationTypeRequest', ], 'output' => [ 'shape' => 'ListWorkersWithQualificationTypeResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'NotifyWorkers' => [ 'name' => 'NotifyWorkers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'NotifyWorkersRequest', ], 'output' => [ 'shape' => 'NotifyWorkersResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], ], 'RejectAssignment' => [ 'name' => 'RejectAssignment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectAssignmentRequest', ], 'output' => [ 'shape' => 'RejectAssignmentResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'RejectQualificationRequest' => [ 'name' => 'RejectQualificationRequest', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectQualificationRequestRequest', ], 'output' => [ 'shape' => 'RejectQualificationRequestResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], ], 'SendBonus' => [ 'name' => 'SendBonus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SendBonusRequest', ], 'output' => [ 'shape' => 'SendBonusResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], ], 'SendTestEventNotification' => [ 'name' => 'SendTestEventNotification', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SendTestEventNotificationRequest', ], 'output' => [ 'shape' => 'SendTestEventNotificationResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], ], 'UpdateExpirationForHIT' => [ 'name' => 'UpdateExpirationForHIT', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateExpirationForHITRequest', ], 'output' => [ 'shape' => 'UpdateExpirationForHITResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'UpdateHITReviewStatus' => [ 'name' => 'UpdateHITReviewStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateHITReviewStatusRequest', ], 'output' => [ 'shape' => 'UpdateHITReviewStatusResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'UpdateHITTypeOfHIT' => [ 'name' => 'UpdateHITTypeOfHIT', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateHITTypeOfHITRequest', ], 'output' => [ 'shape' => 'UpdateHITTypeOfHITResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'UpdateNotificationSettings' => [ 'name' => 'UpdateNotificationSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateNotificationSettingsRequest', ], 'output' => [ 'shape' => 'UpdateNotificationSettingsResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], 'idempotent' => true, ], 'UpdateQualificationType' => [ 'name' => 'UpdateQualificationType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateQualificationTypeRequest', ], 'output' => [ 'shape' => 'UpdateQualificationTypeResponse', ], 'errors' => [ [ 'shape' => 'ServiceFault', ], [ 'shape' => 'RequestError', ], ], ], ], 'shapes' => [ 'AcceptQualificationRequestRequest' => [ 'type' => 'structure', 'required' => [ 'QualificationRequestId', ], 'members' => [ 'QualificationRequestId' => [ 'shape' => 'String', ], 'IntegerValue' => [ 'shape' => 'Integer', ], ], ], 'AcceptQualificationRequestResponse' => [ 'type' => 'structure', 'members' => [], ], 'ApproveAssignmentRequest' => [ 'type' => 'structure', 'required' => [ 'AssignmentId', ], 'members' => [ 'AssignmentId' => [ 'shape' => 'EntityId', ], 'RequesterFeedback' => [ 'shape' => 'String', ], 'OverrideRejection' => [ 'shape' => 'Boolean', ], ], ], 'ApproveAssignmentResponse' => [ 'type' => 'structure', 'members' => [], ], 'Assignment' => [ 'type' => 'structure', 'members' => [ 'AssignmentId' => [ 'shape' => 'EntityId', ], 'WorkerId' => [ 'shape' => 'CustomerId', ], 'HITId' => [ 'shape' => 'EntityId', ], 'AssignmentStatus' => [ 'shape' => 'AssignmentStatus', ], 'AutoApprovalTime' => [ 'shape' => 'Timestamp', ], 'AcceptTime' => [ 'shape' => 'Timestamp', ], 'SubmitTime' => [ 'shape' => 'Timestamp', ], 'ApprovalTime' => [ 'shape' => 'Timestamp', ], 'RejectionTime' => [ 'shape' => 'Timestamp', ], 'Deadline' => [ 'shape' => 'Timestamp', ], 'Answer' => [ 'shape' => 'String', ], 'RequesterFeedback' => [ 'shape' => 'String', ], ], ], 'AssignmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Assignment', ], ], 'AssignmentStatus' => [ 'type' => 'string', 'enum' => [ 'Submitted', 'Approved', 'Rejected', ], ], 'AssignmentStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssignmentStatus', ], ], 'AssociateQualificationWithWorkerRequest' => [ 'type' => 'structure', 'required' => [ 'QualificationTypeId', 'WorkerId', ], 'members' => [ 'QualificationTypeId' => [ 'shape' => 'EntityId', ], 'WorkerId' => [ 'shape' => 'CustomerId', ], 'IntegerValue' => [ 'shape' => 'Integer', ], 'SendNotification' => [ 'shape' => 'Boolean', ], ], ], 'AssociateQualificationWithWorkerResponse' => [ 'type' => 'structure', 'members' => [], ], 'BonusPayment' => [ 'type' => 'structure', 'members' => [ 'WorkerId' => [ 'shape' => 'CustomerId', ], 'BonusAmount' => [ 'shape' => 'CurrencyAmount', ], 'AssignmentId' => [ 'shape' => 'EntityId', ], 'Reason' => [ 'shape' => 'String', ], 'GrantTime' => [ 'shape' => 'Timestamp', ], ], ], 'BonusPaymentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BonusPayment', ], ], 'Boolean' => [ 'type' => 'boolean', ], 'Comparator' => [ 'type' => 'string', 'enum' => [ 'LessThan', 'LessThanOrEqualTo', 'GreaterThan', 'GreaterThanOrEqualTo', 'EqualTo', 'NotEqualTo', 'Exists', 'DoesNotExist', 'In', 'NotIn', ], ], 'CountryParameters' => [ 'type' => 'string', 'max' => 2, 'min' => 2, ], 'CreateAdditionalAssignmentsForHITRequest' => [ 'type' => 'structure', 'required' => [ 'HITId', 'NumberOfAdditionalAssignments', ], 'members' => [ 'HITId' => [ 'shape' => 'EntityId', ], 'NumberOfAdditionalAssignments' => [ 'shape' => 'Integer', ], 'UniqueRequestToken' => [ 'shape' => 'IdempotencyToken', ], ], ], 'CreateAdditionalAssignmentsForHITResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateHITRequest' => [ 'type' => 'structure', 'required' => [ 'LifetimeInSeconds', 'AssignmentDurationInSeconds', 'Reward', 'Title', 'Description', ], 'members' => [ 'MaxAssignments' => [ 'shape' => 'Integer', ], 'AutoApprovalDelayInSeconds' => [ 'shape' => 'Long', ], 'LifetimeInSeconds' => [ 'shape' => 'Long', ], 'AssignmentDurationInSeconds' => [ 'shape' => 'Long', ], 'Reward' => [ 'shape' => 'CurrencyAmount', ], 'Title' => [ 'shape' => 'String', ], 'Keywords' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'Question' => [ 'shape' => 'String', ], 'RequesterAnnotation' => [ 'shape' => 'String', ], 'QualificationRequirements' => [ 'shape' => 'QualificationRequirementList', ], 'UniqueRequestToken' => [ 'shape' => 'IdempotencyToken', ], 'AssignmentReviewPolicy' => [ 'shape' => 'ReviewPolicy', ], 'HITReviewPolicy' => [ 'shape' => 'ReviewPolicy', ], 'HITLayoutId' => [ 'shape' => 'EntityId', ], 'HITLayoutParameters' => [ 'shape' => 'HITLayoutParameterList', ], ], ], 'CreateHITResponse' => [ 'type' => 'structure', 'members' => [ 'HIT' => [ 'shape' => 'HIT', ], ], ], 'CreateHITTypeRequest' => [ 'type' => 'structure', 'required' => [ 'AssignmentDurationInSeconds', 'Reward', 'Title', 'Description', ], 'members' => [ 'AutoApprovalDelayInSeconds' => [ 'shape' => 'Long', ], 'AssignmentDurationInSeconds' => [ 'shape' => 'Long', ], 'Reward' => [ 'shape' => 'CurrencyAmount', ], 'Title' => [ 'shape' => 'String', ], 'Keywords' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'QualificationRequirements' => [ 'shape' => 'QualificationRequirementList', ], ], ], 'CreateHITTypeResponse' => [ 'type' => 'structure', 'members' => [ 'HITTypeId' => [ 'shape' => 'EntityId', ], ], ], 'CreateHITWithHITTypeRequest' => [ 'type' => 'structure', 'required' => [ 'HITTypeId', 'LifetimeInSeconds', ], 'members' => [ 'HITTypeId' => [ 'shape' => 'EntityId', ], 'MaxAssignments' => [ 'shape' => 'Integer', ], 'LifetimeInSeconds' => [ 'shape' => 'Long', ], 'Question' => [ 'shape' => 'String', ], 'RequesterAnnotation' => [ 'shape' => 'String', ], 'UniqueRequestToken' => [ 'shape' => 'IdempotencyToken', ], 'AssignmentReviewPolicy' => [ 'shape' => 'ReviewPolicy', ], 'HITReviewPolicy' => [ 'shape' => 'ReviewPolicy', ], 'HITLayoutId' => [ 'shape' => 'EntityId', ], 'HITLayoutParameters' => [ 'shape' => 'HITLayoutParameterList', ], ], ], 'CreateHITWithHITTypeResponse' => [ 'type' => 'structure', 'members' => [ 'HIT' => [ 'shape' => 'HIT', ], ], ], 'CreateQualificationTypeRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'Description', 'QualificationTypeStatus', ], 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Keywords' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'QualificationTypeStatus' => [ 'shape' => 'QualificationTypeStatus', ], 'RetryDelayInSeconds' => [ 'shape' => 'Long', ], 'Test' => [ 'shape' => 'String', ], 'AnswerKey' => [ 'shape' => 'String', ], 'TestDurationInSeconds' => [ 'shape' => 'Long', ], 'AutoGranted' => [ 'shape' => 'Boolean', ], 'AutoGrantedValue' => [ 'shape' => 'Integer', ], ], ], 'CreateQualificationTypeResponse' => [ 'type' => 'structure', 'members' => [ 'QualificationType' => [ 'shape' => 'QualificationType', ], ], ], 'CreateWorkerBlockRequest' => [ 'type' => 'structure', 'required' => [ 'WorkerId', 'Reason', ], 'members' => [ 'WorkerId' => [ 'shape' => 'CustomerId', ], 'Reason' => [ 'shape' => 'String', ], ], ], 'CreateWorkerBlockResponse' => [ 'type' => 'structure', 'members' => [], ], 'CurrencyAmount' => [ 'type' => 'string', 'pattern' => '^[0-9]+(\\.)?[0-9]{0,2}$', ], 'CustomerId' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '^A[A-Z0-9]+$', ], 'CustomerIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CustomerId', ], ], 'DeleteHITRequest' => [ 'type' => 'structure', 'required' => [ 'HITId', ], 'members' => [ 'HITId' => [ 'shape' => 'EntityId', ], ], ], 'DeleteHITResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteQualificationTypeRequest' => [ 'type' => 'structure', 'required' => [ 'QualificationTypeId', ], 'members' => [ 'QualificationTypeId' => [ 'shape' => 'EntityId', ], ], ], 'DeleteQualificationTypeResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteWorkerBlockRequest' => [ 'type' => 'structure', 'required' => [ 'WorkerId', ], 'members' => [ 'WorkerId' => [ 'shape' => 'CustomerId', ], 'Reason' => [ 'shape' => 'String', ], ], ], 'DeleteWorkerBlockResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateQualificationFromWorkerRequest' => [ 'type' => 'structure', 'required' => [ 'WorkerId', 'QualificationTypeId', ], 'members' => [ 'WorkerId' => [ 'shape' => 'CustomerId', ], 'QualificationTypeId' => [ 'shape' => 'EntityId', ], 'Reason' => [ 'shape' => 'String', ], ], ], 'DisassociateQualificationFromWorkerResponse' => [ 'type' => 'structure', 'members' => [], ], 'EntityId' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '^[A-Z0-9]+$', ], 'EventType' => [ 'type' => 'string', 'enum' => [ 'AssignmentAccepted', 'AssignmentAbandoned', 'AssignmentReturned', 'AssignmentSubmitted', 'AssignmentRejected', 'AssignmentApproved', 'HITCreated', 'HITExpired', 'HITReviewable', 'HITExtended', 'HITDisposed', 'Ping', ], ], 'EventTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventType', ], ], 'ExceptionMessage' => [ 'type' => 'string', ], 'GetAccountBalanceRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetAccountBalanceResponse' => [ 'type' => 'structure', 'members' => [ 'AvailableBalance' => [ 'shape' => 'CurrencyAmount', ], 'OnHoldBalance' => [ 'shape' => 'CurrencyAmount', ], ], ], 'GetAssignmentRequest' => [ 'type' => 'structure', 'required' => [ 'AssignmentId', ], 'members' => [ 'AssignmentId' => [ 'shape' => 'EntityId', ], ], ], 'GetAssignmentResponse' => [ 'type' => 'structure', 'members' => [ 'Assignment' => [ 'shape' => 'Assignment', ], 'HIT' => [ 'shape' => 'HIT', ], ], ], 'GetFileUploadURLRequest' => [ 'type' => 'structure', 'required' => [ 'AssignmentId', 'QuestionIdentifier', ], 'members' => [ 'AssignmentId' => [ 'shape' => 'EntityId', ], 'QuestionIdentifier' => [ 'shape' => 'String', ], ], ], 'GetFileUploadURLResponse' => [ 'type' => 'structure', 'members' => [ 'FileUploadURL' => [ 'shape' => 'String', ], ], ], 'GetHITRequest' => [ 'type' => 'structure', 'required' => [ 'HITId', ], 'members' => [ 'HITId' => [ 'shape' => 'EntityId', ], ], ], 'GetHITResponse' => [ 'type' => 'structure', 'members' => [ 'HIT' => [ 'shape' => 'HIT', ], ], ], 'GetQualificationScoreRequest' => [ 'type' => 'structure', 'required' => [ 'QualificationTypeId', 'WorkerId', ], 'members' => [ 'QualificationTypeId' => [ 'shape' => 'EntityId', ], 'WorkerId' => [ 'shape' => 'CustomerId', ], ], ], 'GetQualificationScoreResponse' => [ 'type' => 'structure', 'members' => [ 'Qualification' => [ 'shape' => 'Qualification', ], ], ], 'GetQualificationTypeRequest' => [ 'type' => 'structure', 'required' => [ 'QualificationTypeId', ], 'members' => [ 'QualificationTypeId' => [ 'shape' => 'EntityId', ], ], ], 'GetQualificationTypeResponse' => [ 'type' => 'structure', 'members' => [ 'QualificationType' => [ 'shape' => 'QualificationType', ], ], ], 'HIT' => [ 'type' => 'structure', 'members' => [ 'HITId' => [ 'shape' => 'EntityId', ], 'HITTypeId' => [ 'shape' => 'EntityId', ], 'HITGroupId' => [ 'shape' => 'EntityId', ], 'HITLayoutId' => [ 'shape' => 'EntityId', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'Title' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'Question' => [ 'shape' => 'String', ], 'Keywords' => [ 'shape' => 'String', ], 'HITStatus' => [ 'shape' => 'HITStatus', ], 'MaxAssignments' => [ 'shape' => 'Integer', ], 'Reward' => [ 'shape' => 'CurrencyAmount', ], 'AutoApprovalDelayInSeconds' => [ 'shape' => 'Long', ], 'Expiration' => [ 'shape' => 'Timestamp', ], 'AssignmentDurationInSeconds' => [ 'shape' => 'Long', ], 'RequesterAnnotation' => [ 'shape' => 'String', ], 'QualificationRequirements' => [ 'shape' => 'QualificationRequirementList', ], 'HITReviewStatus' => [ 'shape' => 'HITReviewStatus', ], 'NumberOfAssignmentsPending' => [ 'shape' => 'Integer', ], 'NumberOfAssignmentsAvailable' => [ 'shape' => 'Integer', ], 'NumberOfAssignmentsCompleted' => [ 'shape' => 'Integer', ], ], ], 'HITAccessActions' => [ 'type' => 'string', 'enum' => [ 'Accept', 'PreviewAndAccept', 'DiscoverPreviewAndAccept', ], ], 'HITLayoutParameter' => [ 'type' => 'structure', 'required' => [ 'Name', 'Value', ], 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Value' => [ 'shape' => 'String', ], ], ], 'HITLayoutParameterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HITLayoutParameter', ], ], 'HITList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HIT', ], ], 'HITReviewStatus' => [ 'type' => 'string', 'enum' => [ 'NotReviewed', 'MarkedForReview', 'ReviewedAppropriate', 'ReviewedInappropriate', ], ], 'HITStatus' => [ 'type' => 'string', 'enum' => [ 'Assignable', 'Unassignable', 'Reviewable', 'Reviewing', 'Disposed', ], ], 'IdempotencyToken' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'Integer' => [ 'type' => 'integer', ], 'IntegerList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Integer', ], ], 'ListAssignmentsForHITRequest' => [ 'type' => 'structure', 'required' => [ 'HITId', ], 'members' => [ 'HITId' => [ 'shape' => 'EntityId', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'ResultSize', ], 'AssignmentStatuses' => [ 'shape' => 'AssignmentStatusList', ], ], ], 'ListAssignmentsForHITResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'PaginationToken', ], 'NumResults' => [ 'shape' => 'Integer', ], 'Assignments' => [ 'shape' => 'AssignmentList', ], ], ], 'ListBonusPaymentsRequest' => [ 'type' => 'structure', 'members' => [ 'HITId' => [ 'shape' => 'EntityId', ], 'AssignmentId' => [ 'shape' => 'EntityId', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'ResultSize', ], ], ], 'ListBonusPaymentsResponse' => [ 'type' => 'structure', 'members' => [ 'NumResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'BonusPayments' => [ 'shape' => 'BonusPaymentList', ], ], ], 'ListHITsForQualificationTypeRequest' => [ 'type' => 'structure', 'required' => [ 'QualificationTypeId', ], 'members' => [ 'QualificationTypeId' => [ 'shape' => 'EntityId', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'ResultSize', ], ], ], 'ListHITsForQualificationTypeResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'PaginationToken', ], 'NumResults' => [ 'shape' => 'Integer', ], 'HITs' => [ 'shape' => 'HITList', ], ], ], 'ListHITsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'ResultSize', ], ], ], 'ListHITsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'PaginationToken', ], 'NumResults' => [ 'shape' => 'Integer', ], 'HITs' => [ 'shape' => 'HITList', ], ], ], 'ListQualificationRequestsRequest' => [ 'type' => 'structure', 'members' => [ 'QualificationTypeId' => [ 'shape' => 'EntityId', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'ResultSize', ], ], ], 'ListQualificationRequestsResponse' => [ 'type' => 'structure', 'members' => [ 'NumResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'QualificationRequests' => [ 'shape' => 'QualificationRequestList', ], ], ], 'ListQualificationTypesRequest' => [ 'type' => 'structure', 'required' => [ 'MustBeRequestable', ], 'members' => [ 'Query' => [ 'shape' => 'String', ], 'MustBeRequestable' => [ 'shape' => 'Boolean', ], 'MustBeOwnedByCaller' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'ResultSize', ], ], ], 'ListQualificationTypesResponse' => [ 'type' => 'structure', 'members' => [ 'NumResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'QualificationTypes' => [ 'shape' => 'QualificationTypeList', ], ], ], 'ListReviewPolicyResultsForHITRequest' => [ 'type' => 'structure', 'required' => [ 'HITId', ], 'members' => [ 'HITId' => [ 'shape' => 'EntityId', ], 'PolicyLevels' => [ 'shape' => 'ReviewPolicyLevelList', ], 'RetrieveActions' => [ 'shape' => 'Boolean', ], 'RetrieveResults' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'ResultSize', ], ], ], 'ListReviewPolicyResultsForHITResponse' => [ 'type' => 'structure', 'members' => [ 'HITId' => [ 'shape' => 'EntityId', ], 'AssignmentReviewPolicy' => [ 'shape' => 'ReviewPolicy', ], 'HITReviewPolicy' => [ 'shape' => 'ReviewPolicy', ], 'AssignmentReviewReport' => [ 'shape' => 'ReviewReport', ], 'HITReviewReport' => [ 'shape' => 'ReviewReport', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListReviewableHITsRequest' => [ 'type' => 'structure', 'members' => [ 'HITTypeId' => [ 'shape' => 'EntityId', ], 'Status' => [ 'shape' => 'ReviewableHITStatus', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'ResultSize', ], ], ], 'ListReviewableHITsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'PaginationToken', ], 'NumResults' => [ 'shape' => 'Integer', ], 'HITs' => [ 'shape' => 'HITList', ], ], ], 'ListWorkerBlocksRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'ResultSize', ], ], ], 'ListWorkerBlocksResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'PaginationToken', ], 'NumResults' => [ 'shape' => 'Integer', ], 'WorkerBlocks' => [ 'shape' => 'WorkerBlockList', ], ], ], 'ListWorkersWithQualificationTypeRequest' => [ 'type' => 'structure', 'required' => [ 'QualificationTypeId', ], 'members' => [ 'QualificationTypeId' => [ 'shape' => 'EntityId', ], 'Status' => [ 'shape' => 'QualificationStatus', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'ResultSize', ], ], ], 'ListWorkersWithQualificationTypeResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'PaginationToken', ], 'NumResults' => [ 'shape' => 'Integer', ], 'Qualifications' => [ 'shape' => 'QualificationList', ], ], ], 'Locale' => [ 'type' => 'structure', 'required' => [ 'Country', ], 'members' => [ 'Country' => [ 'shape' => 'CountryParameters', ], 'Subdivision' => [ 'shape' => 'CountryParameters', ], ], ], 'LocaleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Locale', ], ], 'Long' => [ 'type' => 'long', ], 'NotificationSpecification' => [ 'type' => 'structure', 'required' => [ 'Destination', 'Transport', 'Version', 'EventTypes', ], 'members' => [ 'Destination' => [ 'shape' => 'String', ], 'Transport' => [ 'shape' => 'NotificationTransport', ], 'Version' => [ 'shape' => 'String', ], 'EventTypes' => [ 'shape' => 'EventTypeList', ], ], ], 'NotificationTransport' => [ 'type' => 'string', 'enum' => [ 'Email', 'SQS', 'SNS', ], ], 'NotifyWorkersFailureCode' => [ 'type' => 'string', 'enum' => [ 'SoftFailure', 'HardFailure', ], ], 'NotifyWorkersFailureStatus' => [ 'type' => 'structure', 'members' => [ 'NotifyWorkersFailureCode' => [ 'shape' => 'NotifyWorkersFailureCode', ], 'NotifyWorkersFailureMessage' => [ 'shape' => 'String', ], 'WorkerId' => [ 'shape' => 'CustomerId', ], ], ], 'NotifyWorkersFailureStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NotifyWorkersFailureStatus', ], ], 'NotifyWorkersRequest' => [ 'type' => 'structure', 'required' => [ 'Subject', 'MessageText', 'WorkerIds', ], 'members' => [ 'Subject' => [ 'shape' => 'String', ], 'MessageText' => [ 'shape' => 'String', ], 'WorkerIds' => [ 'shape' => 'CustomerIdList', ], ], ], 'NotifyWorkersResponse' => [ 'type' => 'structure', 'members' => [ 'NotifyWorkersFailureStatuses' => [ 'shape' => 'NotifyWorkersFailureStatusList', ], ], ], 'PaginationToken' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'ParameterMapEntry' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', ], 'Values' => [ 'shape' => 'StringList', ], ], ], 'ParameterMapEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParameterMapEntry', ], ], 'PolicyParameter' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', ], 'Values' => [ 'shape' => 'StringList', ], 'MapEntries' => [ 'shape' => 'ParameterMapEntryList', ], ], ], 'PolicyParameterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyParameter', ], ], 'Qualification' => [ 'type' => 'structure', 'members' => [ 'QualificationTypeId' => [ 'shape' => 'EntityId', ], 'WorkerId' => [ 'shape' => 'CustomerId', ], 'GrantTime' => [ 'shape' => 'Timestamp', ], 'IntegerValue' => [ 'shape' => 'Integer', ], 'LocaleValue' => [ 'shape' => 'Locale', ], 'Status' => [ 'shape' => 'QualificationStatus', ], ], ], 'QualificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Qualification', ], ], 'QualificationRequest' => [ 'type' => 'structure', 'members' => [ 'QualificationRequestId' => [ 'shape' => 'String', ], 'QualificationTypeId' => [ 'shape' => 'EntityId', ], 'WorkerId' => [ 'shape' => 'CustomerId', ], 'Test' => [ 'shape' => 'String', ], 'Answer' => [ 'shape' => 'String', ], 'SubmitTime' => [ 'shape' => 'Timestamp', ], ], ], 'QualificationRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'QualificationRequest', ], ], 'QualificationRequirement' => [ 'type' => 'structure', 'required' => [ 'QualificationTypeId', 'Comparator', ], 'members' => [ 'QualificationTypeId' => [ 'shape' => 'String', ], 'Comparator' => [ 'shape' => 'Comparator', ], 'IntegerValues' => [ 'shape' => 'IntegerList', ], 'LocaleValues' => [ 'shape' => 'LocaleList', ], 'RequiredToPreview' => [ 'shape' => 'Boolean', 'deprecated' => true, ], 'ActionsGuarded' => [ 'shape' => 'HITAccessActions', ], ], ], 'QualificationRequirementList' => [ 'type' => 'list', 'member' => [ 'shape' => 'QualificationRequirement', ], ], 'QualificationStatus' => [ 'type' => 'string', 'enum' => [ 'Granted', 'Revoked', ], ], 'QualificationType' => [ 'type' => 'structure', 'members' => [ 'QualificationTypeId' => [ 'shape' => 'EntityId', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'Name' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'Keywords' => [ 'shape' => 'String', ], 'QualificationTypeStatus' => [ 'shape' => 'QualificationTypeStatus', ], 'Test' => [ 'shape' => 'String', ], 'TestDurationInSeconds' => [ 'shape' => 'Long', ], 'AnswerKey' => [ 'shape' => 'String', ], 'RetryDelayInSeconds' => [ 'shape' => 'Long', ], 'IsRequestable' => [ 'shape' => 'Boolean', ], 'AutoGranted' => [ 'shape' => 'Boolean', ], 'AutoGrantedValue' => [ 'shape' => 'Integer', ], ], ], 'QualificationTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'QualificationType', ], ], 'QualificationTypeStatus' => [ 'type' => 'string', 'enum' => [ 'Active', 'Inactive', ], ], 'RejectAssignmentRequest' => [ 'type' => 'structure', 'required' => [ 'AssignmentId', 'RequesterFeedback', ], 'members' => [ 'AssignmentId' => [ 'shape' => 'EntityId', ], 'RequesterFeedback' => [ 'shape' => 'String', ], ], ], 'RejectAssignmentResponse' => [ 'type' => 'structure', 'members' => [], ], 'RejectQualificationRequestRequest' => [ 'type' => 'structure', 'required' => [ 'QualificationRequestId', ], 'members' => [ 'QualificationRequestId' => [ 'shape' => 'String', ], 'Reason' => [ 'shape' => 'String', ], ], ], 'RejectQualificationRequestResponse' => [ 'type' => 'structure', 'members' => [], ], 'RequestError' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'TurkErrorCode' => [ 'shape' => 'TurkErrorCode', ], ], 'exception' => true, ], 'ResultSize' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'ReviewActionDetail' => [ 'type' => 'structure', 'members' => [ 'ActionId' => [ 'shape' => 'EntityId', ], 'ActionName' => [ 'shape' => 'String', ], 'TargetId' => [ 'shape' => 'EntityId', ], 'TargetType' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'ReviewActionStatus', ], 'CompleteTime' => [ 'shape' => 'Timestamp', ], 'Result' => [ 'shape' => 'String', ], 'ErrorCode' => [ 'shape' => 'String', ], ], ], 'ReviewActionDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReviewActionDetail', ], ], 'ReviewActionStatus' => [ 'type' => 'string', 'enum' => [ 'Intended', 'Succeeded', 'Failed', 'Cancelled', ], ], 'ReviewPolicy' => [ 'type' => 'structure', 'required' => [ 'PolicyName', ], 'members' => [ 'PolicyName' => [ 'shape' => 'String', ], 'Parameters' => [ 'shape' => 'PolicyParameterList', ], ], ], 'ReviewPolicyLevel' => [ 'type' => 'string', 'enum' => [ 'Assignment', 'HIT', ], ], 'ReviewPolicyLevelList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReviewPolicyLevel', ], ], 'ReviewReport' => [ 'type' => 'structure', 'members' => [ 'ReviewResults' => [ 'shape' => 'ReviewResultDetailList', ], 'ReviewActions' => [ 'shape' => 'ReviewActionDetailList', ], ], ], 'ReviewResultDetail' => [ 'type' => 'structure', 'members' => [ 'ActionId' => [ 'shape' => 'EntityId', ], 'SubjectId' => [ 'shape' => 'EntityId', ], 'SubjectType' => [ 'shape' => 'String', ], 'QuestionId' => [ 'shape' => 'EntityId', ], 'Key' => [ 'shape' => 'String', ], 'Value' => [ 'shape' => 'String', ], ], ], 'ReviewResultDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReviewResultDetail', ], ], 'ReviewableHITStatus' => [ 'type' => 'string', 'enum' => [ 'Reviewable', 'Reviewing', ], ], 'SendBonusRequest' => [ 'type' => 'structure', 'required' => [ 'WorkerId', 'BonusAmount', 'AssignmentId', 'Reason', ], 'members' => [ 'WorkerId' => [ 'shape' => 'CustomerId', ], 'BonusAmount' => [ 'shape' => 'CurrencyAmount', ], 'AssignmentId' => [ 'shape' => 'EntityId', ], 'Reason' => [ 'shape' => 'String', ], 'UniqueRequestToken' => [ 'shape' => 'IdempotencyToken', ], ], ], 'SendBonusResponse' => [ 'type' => 'structure', 'members' => [], ], 'SendTestEventNotificationRequest' => [ 'type' => 'structure', 'required' => [ 'Notification', 'TestEventType', ], 'members' => [ 'Notification' => [ 'shape' => 'NotificationSpecification', ], 'TestEventType' => [ 'shape' => 'EventType', ], ], ], 'SendTestEventNotificationResponse' => [ 'type' => 'structure', 'members' => [], ], 'ServiceFault' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'TurkErrorCode' => [ 'shape' => 'TurkErrorCode', ], ], 'exception' => true, 'fault' => true, ], 'String' => [ 'type' => 'string', ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TurkErrorCode' => [ 'type' => 'string', ], 'UpdateExpirationForHITRequest' => [ 'type' => 'structure', 'required' => [ 'HITId', 'ExpireAt', ], 'members' => [ 'HITId' => [ 'shape' => 'EntityId', ], 'ExpireAt' => [ 'shape' => 'Timestamp', ], ], ], 'UpdateExpirationForHITResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateHITReviewStatusRequest' => [ 'type' => 'structure', 'required' => [ 'HITId', ], 'members' => [ 'HITId' => [ 'shape' => 'EntityId', ], 'Revert' => [ 'shape' => 'Boolean', ], ], ], 'UpdateHITReviewStatusResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateHITTypeOfHITRequest' => [ 'type' => 'structure', 'required' => [ 'HITId', 'HITTypeId', ], 'members' => [ 'HITId' => [ 'shape' => 'EntityId', ], 'HITTypeId' => [ 'shape' => 'EntityId', ], ], ], 'UpdateHITTypeOfHITResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateNotificationSettingsRequest' => [ 'type' => 'structure', 'required' => [ 'HITTypeId', ], 'members' => [ 'HITTypeId' => [ 'shape' => 'EntityId', ], 'Notification' => [ 'shape' => 'NotificationSpecification', ], 'Active' => [ 'shape' => 'Boolean', ], ], ], 'UpdateNotificationSettingsResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateQualificationTypeRequest' => [ 'type' => 'structure', 'required' => [ 'QualificationTypeId', ], 'members' => [ 'QualificationTypeId' => [ 'shape' => 'EntityId', ], 'Description' => [ 'shape' => 'String', ], 'QualificationTypeStatus' => [ 'shape' => 'QualificationTypeStatus', ], 'Test' => [ 'shape' => 'String', ], 'AnswerKey' => [ 'shape' => 'String', ], 'TestDurationInSeconds' => [ 'shape' => 'Long', ], 'RetryDelayInSeconds' => [ 'shape' => 'Long', ], 'AutoGranted' => [ 'shape' => 'Boolean', ], 'AutoGrantedValue' => [ 'shape' => 'Integer', ], ], ], 'UpdateQualificationTypeResponse' => [ 'type' => 'structure', 'members' => [ 'QualificationType' => [ 'shape' => 'QualificationType', ], ], ], 'WorkerBlock' => [ 'type' => 'structure', 'members' => [ 'WorkerId' => [ 'shape' => 'CustomerId', ], 'Reason' => [ 'shape' => 'String', ], ], ], 'WorkerBlockList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WorkerBlock', ], ], ],]; diff --git a/lib/aws/Aws/data/mturk-requester/2017-01-17/paginators-1.json.php b/lib/aws/Aws/data/mturk-requester/2017-01-17/paginators-1.json.php new file mode 100644 index 0000000..d79dfa3 --- /dev/null +++ b/lib/aws/Aws/data/mturk-requester/2017-01-17/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mturk-requester/2017-01-17/paginators-1.json +return [ 'pagination' => [ 'ListAssignmentsForHIT' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListBonusPayments' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListHITs' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListHITsForQualificationType' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListQualificationRequests' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListQualificationTypes' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListReviewPolicyResultsForHIT' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListReviewableHITs' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListWorkerBlocks' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListWorkersWithQualificationType' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/mturk-requester/2017-01-17/smoke.json.php b/lib/aws/Aws/data/mturk-requester/2017-01-17/smoke.json.php new file mode 100644 index 0000000..ec60de5 --- /dev/null +++ b/lib/aws/Aws/data/mturk-requester/2017-01-17/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/mturk-requester/2017-01-17/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-east-1', 'testCases' => [ [ 'operationName' => 'GetAccountBalance', 'input' => [], 'errorExpectedFromService' => false, ], ],]; diff --git a/lib/aws/Aws/data/neptune/2014-10-31/api-2.json.php b/lib/aws/Aws/data/neptune/2014-10-31/api-2.json.php new file mode 100644 index 0000000..ae971a6 --- /dev/null +++ b/lib/aws/Aws/data/neptune/2014-10-31/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/neptune/2014-10-31/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2014-10-31', 'endpointPrefix' => 'rds', 'protocol' => 'query', 'serviceAbbreviation' => 'Amazon Neptune', 'serviceFullName' => 'Amazon Neptune', 'serviceId' => 'Neptune', 'signatureVersion' => 'v4', 'signingName' => 'rds', 'uid' => 'neptune-2014-10-31', 'xmlNamespace' => 'http://rds.amazonaws.com/doc/2014-10-31/', ], 'operations' => [ 'AddRoleToDBCluster' => [ 'name' => 'AddRoleToDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddRoleToDBClusterMessage', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'DBClusterRoleAlreadyExistsFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'DBClusterRoleQuotaExceededFault', ], ], ], 'AddSourceIdentifierToSubscription' => [ 'name' => 'AddSourceIdentifierToSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddSourceIdentifierToSubscriptionMessage', ], 'output' => [ 'shape' => 'AddSourceIdentifierToSubscriptionResult', 'resultWrapper' => 'AddSourceIdentifierToSubscriptionResult', ], 'errors' => [ [ 'shape' => 'SubscriptionNotFoundFault', ], [ 'shape' => 'SourceNotFoundFault', ], ], ], 'AddTagsToResource' => [ 'name' => 'AddTagsToResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddTagsToResourceMessage', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], ], ], 'ApplyPendingMaintenanceAction' => [ 'name' => 'ApplyPendingMaintenanceAction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ApplyPendingMaintenanceActionMessage', ], 'output' => [ 'shape' => 'ApplyPendingMaintenanceActionResult', 'resultWrapper' => 'ApplyPendingMaintenanceActionResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], ], ], 'CopyDBClusterParameterGroup' => [ 'name' => 'CopyDBClusterParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyDBClusterParameterGroupMessage', ], 'output' => [ 'shape' => 'CopyDBClusterParameterGroupResult', 'resultWrapper' => 'CopyDBClusterParameterGroupResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'DBParameterGroupQuotaExceededFault', ], [ 'shape' => 'DBParameterGroupAlreadyExistsFault', ], ], ], 'CopyDBClusterSnapshot' => [ 'name' => 'CopyDBClusterSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyDBClusterSnapshotMessage', ], 'output' => [ 'shape' => 'CopyDBClusterSnapshotResult', 'resultWrapper' => 'CopyDBClusterSnapshotResult', ], 'errors' => [ [ 'shape' => 'DBClusterSnapshotAlreadyExistsFault', ], [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], ], ], 'CopyDBParameterGroup' => [ 'name' => 'CopyDBParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyDBParameterGroupMessage', ], 'output' => [ 'shape' => 'CopyDBParameterGroupResult', 'resultWrapper' => 'CopyDBParameterGroupResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'DBParameterGroupAlreadyExistsFault', ], [ 'shape' => 'DBParameterGroupQuotaExceededFault', ], ], ], 'CreateDBCluster' => [ 'name' => 'CreateDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBClusterMessage', ], 'output' => [ 'shape' => 'CreateDBClusterResult', 'resultWrapper' => 'CreateDBClusterResult', ], 'errors' => [ [ 'shape' => 'DBClusterAlreadyExistsFault', ], [ 'shape' => 'InsufficientStorageClusterCapacityFault', ], [ 'shape' => 'DBClusterQuotaExceededFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidDBSubnetGroupStateFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBClusterParameterGroupNotFoundFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], ], ], 'CreateDBClusterParameterGroup' => [ 'name' => 'CreateDBClusterParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBClusterParameterGroupMessage', ], 'output' => [ 'shape' => 'CreateDBClusterParameterGroupResult', 'resultWrapper' => 'CreateDBClusterParameterGroupResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupQuotaExceededFault', ], [ 'shape' => 'DBParameterGroupAlreadyExistsFault', ], ], ], 'CreateDBClusterSnapshot' => [ 'name' => 'CreateDBClusterSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBClusterSnapshotMessage', ], 'output' => [ 'shape' => 'CreateDBClusterSnapshotResult', 'resultWrapper' => 'CreateDBClusterSnapshotResult', ], 'errors' => [ [ 'shape' => 'DBClusterSnapshotAlreadyExistsFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], ], ], 'CreateDBInstance' => [ 'name' => 'CreateDBInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBInstanceMessage', ], 'output' => [ 'shape' => 'CreateDBInstanceResult', 'resultWrapper' => 'CreateDBInstanceResult', ], 'errors' => [ [ 'shape' => 'DBInstanceAlreadyExistsFault', ], [ 'shape' => 'InsufficientDBInstanceCapacityFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'DBSecurityGroupNotFoundFault', ], [ 'shape' => 'InstanceQuotaExceededFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'ProvisionedIopsNotAvailableInAZFault', ], [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'StorageTypeNotSupportedFault', ], [ 'shape' => 'AuthorizationNotFoundFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], [ 'shape' => 'DomainNotFoundFault', ], ], ], 'CreateDBParameterGroup' => [ 'name' => 'CreateDBParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBParameterGroupMessage', ], 'output' => [ 'shape' => 'CreateDBParameterGroupResult', 'resultWrapper' => 'CreateDBParameterGroupResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupQuotaExceededFault', ], [ 'shape' => 'DBParameterGroupAlreadyExistsFault', ], ], ], 'CreateDBSubnetGroup' => [ 'name' => 'CreateDBSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBSubnetGroupMessage', ], 'output' => [ 'shape' => 'CreateDBSubnetGroupResult', 'resultWrapper' => 'CreateDBSubnetGroupResult', ], 'errors' => [ [ 'shape' => 'DBSubnetGroupAlreadyExistsFault', ], [ 'shape' => 'DBSubnetGroupQuotaExceededFault', ], [ 'shape' => 'DBSubnetQuotaExceededFault', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidSubnet', ], ], ], 'CreateEventSubscription' => [ 'name' => 'CreateEventSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateEventSubscriptionMessage', ], 'output' => [ 'shape' => 'CreateEventSubscriptionResult', 'resultWrapper' => 'CreateEventSubscriptionResult', ], 'errors' => [ [ 'shape' => 'EventSubscriptionQuotaExceededFault', ], [ 'shape' => 'SubscriptionAlreadyExistFault', ], [ 'shape' => 'SNSInvalidTopicFault', ], [ 'shape' => 'SNSNoAuthorizationFault', ], [ 'shape' => 'SNSTopicArnNotFoundFault', ], [ 'shape' => 'SubscriptionCategoryNotFoundFault', ], [ 'shape' => 'SourceNotFoundFault', ], ], ], 'DeleteDBCluster' => [ 'name' => 'DeleteDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBClusterMessage', ], 'output' => [ 'shape' => 'DeleteDBClusterResult', 'resultWrapper' => 'DeleteDBClusterResult', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'DBClusterSnapshotAlreadyExistsFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], ], ], 'DeleteDBClusterParameterGroup' => [ 'name' => 'DeleteDBClusterParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBClusterParameterGroupMessage', ], 'errors' => [ [ 'shape' => 'InvalidDBParameterGroupStateFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'DeleteDBClusterSnapshot' => [ 'name' => 'DeleteDBClusterSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBClusterSnapshotMessage', ], 'output' => [ 'shape' => 'DeleteDBClusterSnapshotResult', 'resultWrapper' => 'DeleteDBClusterSnapshotResult', ], 'errors' => [ [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], ], ], 'DeleteDBInstance' => [ 'name' => 'DeleteDBInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBInstanceMessage', ], 'output' => [ 'shape' => 'DeleteDBInstanceResult', 'resultWrapper' => 'DeleteDBInstanceResult', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBSnapshotAlreadyExistsFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], ], ], 'DeleteDBParameterGroup' => [ 'name' => 'DeleteDBParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBParameterGroupMessage', ], 'errors' => [ [ 'shape' => 'InvalidDBParameterGroupStateFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'DeleteDBSubnetGroup' => [ 'name' => 'DeleteDBSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBSubnetGroupMessage', ], 'errors' => [ [ 'shape' => 'InvalidDBSubnetGroupStateFault', ], [ 'shape' => 'InvalidDBSubnetStateFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], ], ], 'DeleteEventSubscription' => [ 'name' => 'DeleteEventSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteEventSubscriptionMessage', ], 'output' => [ 'shape' => 'DeleteEventSubscriptionResult', 'resultWrapper' => 'DeleteEventSubscriptionResult', ], 'errors' => [ [ 'shape' => 'SubscriptionNotFoundFault', ], [ 'shape' => 'InvalidEventSubscriptionStateFault', ], ], ], 'DescribeDBClusterParameterGroups' => [ 'name' => 'DescribeDBClusterParameterGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBClusterParameterGroupsMessage', ], 'output' => [ 'shape' => 'DBClusterParameterGroupsMessage', 'resultWrapper' => 'DescribeDBClusterParameterGroupsResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'DescribeDBClusterParameters' => [ 'name' => 'DescribeDBClusterParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBClusterParametersMessage', ], 'output' => [ 'shape' => 'DBClusterParameterGroupDetails', 'resultWrapper' => 'DescribeDBClusterParametersResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'DescribeDBClusterSnapshotAttributes' => [ 'name' => 'DescribeDBClusterSnapshotAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBClusterSnapshotAttributesMessage', ], 'output' => [ 'shape' => 'DescribeDBClusterSnapshotAttributesResult', 'resultWrapper' => 'DescribeDBClusterSnapshotAttributesResult', ], 'errors' => [ [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], ], ], 'DescribeDBClusterSnapshots' => [ 'name' => 'DescribeDBClusterSnapshots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBClusterSnapshotsMessage', ], 'output' => [ 'shape' => 'DBClusterSnapshotMessage', 'resultWrapper' => 'DescribeDBClusterSnapshotsResult', ], 'errors' => [ [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], ], ], 'DescribeDBClusters' => [ 'name' => 'DescribeDBClusters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBClustersMessage', ], 'output' => [ 'shape' => 'DBClusterMessage', 'resultWrapper' => 'DescribeDBClustersResult', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], ], ], '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', ], ], ], 'DescribeDBParameterGroups' => [ 'name' => 'DescribeDBParameterGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBParameterGroupsMessage', ], 'output' => [ 'shape' => 'DBParameterGroupsMessage', 'resultWrapper' => 'DescribeDBParameterGroupsResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'DescribeDBParameters' => [ 'name' => 'DescribeDBParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBParametersMessage', ], 'output' => [ 'shape' => 'DBParameterGroupDetails', 'resultWrapper' => 'DescribeDBParametersResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'DescribeDBSubnetGroups' => [ 'name' => 'DescribeDBSubnetGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBSubnetGroupsMessage', ], 'output' => [ 'shape' => 'DBSubnetGroupMessage', 'resultWrapper' => 'DescribeDBSubnetGroupsResult', ], 'errors' => [ [ 'shape' => 'DBSubnetGroupNotFoundFault', ], ], ], 'DescribeEngineDefaultClusterParameters' => [ 'name' => 'DescribeEngineDefaultClusterParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEngineDefaultClusterParametersMessage', ], 'output' => [ 'shape' => 'DescribeEngineDefaultClusterParametersResult', 'resultWrapper' => 'DescribeEngineDefaultClusterParametersResult', ], ], 'DescribeEngineDefaultParameters' => [ 'name' => 'DescribeEngineDefaultParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEngineDefaultParametersMessage', ], 'output' => [ 'shape' => 'DescribeEngineDefaultParametersResult', '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', ], ], ], 'DescribeEvents' => [ 'name' => 'DescribeEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEventsMessage', ], 'output' => [ 'shape' => 'EventsMessage', 'resultWrapper' => 'DescribeEventsResult', ], ], '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', ], ], ], 'DescribeValidDBInstanceModifications' => [ 'name' => 'DescribeValidDBInstanceModifications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeValidDBInstanceModificationsMessage', ], 'output' => [ 'shape' => 'DescribeValidDBInstanceModificationsResult', 'resultWrapper' => 'DescribeValidDBInstanceModificationsResult', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], ], ], 'FailoverDBCluster' => [ 'name' => 'FailoverDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'FailoverDBClusterMessage', ], 'output' => [ 'shape' => 'FailoverDBClusterResult', 'resultWrapper' => 'FailoverDBClusterResult', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceMessage', ], 'output' => [ 'shape' => 'TagListMessage', 'resultWrapper' => 'ListTagsForResourceResult', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], ], ], 'ModifyDBCluster' => [ 'name' => 'ModifyDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBClusterMessage', ], 'output' => [ 'shape' => 'ModifyDBClusterResult', 'resultWrapper' => 'ModifyDBClusterResult', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InvalidDBSubnetGroupStateFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'DBClusterParameterGroupNotFoundFault', ], [ 'shape' => 'InvalidDBSecurityGroupStateFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBClusterAlreadyExistsFault', ], ], ], 'ModifyDBClusterParameterGroup' => [ 'name' => 'ModifyDBClusterParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBClusterParameterGroupMessage', ], 'output' => [ 'shape' => 'DBClusterParameterGroupNameMessage', 'resultWrapper' => 'ModifyDBClusterParameterGroupResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'InvalidDBParameterGroupStateFault', ], ], ], 'ModifyDBClusterSnapshotAttribute' => [ 'name' => 'ModifyDBClusterSnapshotAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBClusterSnapshotAttributeMessage', ], 'output' => [ 'shape' => 'ModifyDBClusterSnapshotAttributeResult', 'resultWrapper' => 'ModifyDBClusterSnapshotAttributeResult', ], 'errors' => [ [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], [ 'shape' => 'SharedSnapshotQuotaExceededFault', ], ], ], 'ModifyDBInstance' => [ 'name' => 'ModifyDBInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBInstanceMessage', ], 'output' => [ 'shape' => 'ModifyDBInstanceResult', 'resultWrapper' => 'ModifyDBInstanceResult', ], 'errors' => [ [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'InvalidDBSecurityGroupStateFault', ], [ 'shape' => 'DBInstanceAlreadyExistsFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBSecurityGroupNotFoundFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'InsufficientDBInstanceCapacityFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'ProvisionedIopsNotAvailableInAZFault', ], [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'DBUpgradeDependencyFailureFault', ], [ 'shape' => 'StorageTypeNotSupportedFault', ], [ 'shape' => 'AuthorizationNotFoundFault', ], [ 'shape' => 'CertificateNotFoundFault', ], [ 'shape' => 'DomainNotFoundFault', ], ], ], 'ModifyDBParameterGroup' => [ 'name' => 'ModifyDBParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBParameterGroupMessage', ], 'output' => [ 'shape' => 'DBParameterGroupNameMessage', 'resultWrapper' => 'ModifyDBParameterGroupResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'InvalidDBParameterGroupStateFault', ], ], ], 'ModifyDBSubnetGroup' => [ 'name' => 'ModifyDBSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBSubnetGroupMessage', ], 'output' => [ 'shape' => 'ModifyDBSubnetGroupResult', 'resultWrapper' => 'ModifyDBSubnetGroupResult', ], 'errors' => [ [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'DBSubnetQuotaExceededFault', ], [ 'shape' => 'SubnetAlreadyInUse', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidSubnet', ], ], ], 'ModifyEventSubscription' => [ 'name' => 'ModifyEventSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyEventSubscriptionMessage', ], 'output' => [ 'shape' => 'ModifyEventSubscriptionResult', 'resultWrapper' => 'ModifyEventSubscriptionResult', ], 'errors' => [ [ 'shape' => 'EventSubscriptionQuotaExceededFault', ], [ 'shape' => 'SubscriptionNotFoundFault', ], [ 'shape' => 'SNSInvalidTopicFault', ], [ 'shape' => 'SNSNoAuthorizationFault', ], [ 'shape' => 'SNSTopicArnNotFoundFault', ], [ 'shape' => 'SubscriptionCategoryNotFoundFault', ], ], ], 'PromoteReadReplicaDBCluster' => [ 'name' => 'PromoteReadReplicaDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PromoteReadReplicaDBClusterMessage', ], 'output' => [ 'shape' => 'PromoteReadReplicaDBClusterResult', 'resultWrapper' => 'PromoteReadReplicaDBClusterResult', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], ], ], 'RebootDBInstance' => [ 'name' => 'RebootDBInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RebootDBInstanceMessage', ], 'output' => [ 'shape' => 'RebootDBInstanceResult', 'resultWrapper' => 'RebootDBInstanceResult', ], 'errors' => [ [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], ], ], 'RemoveRoleFromDBCluster' => [ 'name' => 'RemoveRoleFromDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveRoleFromDBClusterMessage', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'DBClusterRoleNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], ], ], 'RemoveSourceIdentifierFromSubscription' => [ 'name' => 'RemoveSourceIdentifierFromSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveSourceIdentifierFromSubscriptionMessage', ], 'output' => [ 'shape' => 'RemoveSourceIdentifierFromSubscriptionResult', 'resultWrapper' => 'RemoveSourceIdentifierFromSubscriptionResult', ], 'errors' => [ [ 'shape' => 'SubscriptionNotFoundFault', ], [ 'shape' => 'SourceNotFoundFault', ], ], ], 'RemoveTagsFromResource' => [ 'name' => 'RemoveTagsFromResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveTagsFromResourceMessage', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], ], ], 'ResetDBClusterParameterGroup' => [ 'name' => 'ResetDBClusterParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetDBClusterParameterGroupMessage', ], 'output' => [ 'shape' => 'DBClusterParameterGroupNameMessage', 'resultWrapper' => 'ResetDBClusterParameterGroupResult', ], 'errors' => [ [ 'shape' => 'InvalidDBParameterGroupStateFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'ResetDBParameterGroup' => [ 'name' => 'ResetDBParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetDBParameterGroupMessage', ], 'output' => [ 'shape' => 'DBParameterGroupNameMessage', 'resultWrapper' => 'ResetDBParameterGroupResult', ], 'errors' => [ [ 'shape' => 'InvalidDBParameterGroupStateFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'RestoreDBClusterFromSnapshot' => [ 'name' => 'RestoreDBClusterFromSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreDBClusterFromSnapshotMessage', ], 'output' => [ 'shape' => 'RestoreDBClusterFromSnapshotResult', 'resultWrapper' => 'RestoreDBClusterFromSnapshotResult', ], 'errors' => [ [ 'shape' => 'DBClusterAlreadyExistsFault', ], [ 'shape' => 'DBClusterQuotaExceededFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], [ 'shape' => 'InsufficientDBClusterCapacityFault', ], [ 'shape' => 'InsufficientStorageClusterCapacityFault', ], [ 'shape' => 'InvalidDBSnapshotStateFault', ], [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InvalidRestoreFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], ], ], 'RestoreDBClusterToPointInTime' => [ 'name' => 'RestoreDBClusterToPointInTime', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreDBClusterToPointInTimeMessage', ], 'output' => [ 'shape' => 'RestoreDBClusterToPointInTimeResult', 'resultWrapper' => 'RestoreDBClusterToPointInTimeResult', ], 'errors' => [ [ 'shape' => 'DBClusterAlreadyExistsFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'DBClusterQuotaExceededFault', ], [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'InsufficientDBClusterCapacityFault', ], [ 'shape' => 'InsufficientStorageClusterCapacityFault', ], [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidDBSnapshotStateFault', ], [ 'shape' => 'InvalidRestoreFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], ], ], ], 'shapes' => [ 'AddRoleToDBClusterMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', 'RoleArn', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'RoleArn' => [ 'shape' => 'String', ], ], ], 'AddSourceIdentifierToSubscriptionMessage' => [ 'type' => 'structure', 'required' => [ 'SubscriptionName', 'SourceIdentifier', ], 'members' => [ 'SubscriptionName' => [ 'shape' => 'String', ], 'SourceIdentifier' => [ 'shape' => 'String', ], ], ], 'AddSourceIdentifierToSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'EventSubscription' => [ 'shape' => 'EventSubscription', ], ], ], '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', ], ], ], 'ApplyPendingMaintenanceActionResult' => [ 'type' => 'structure', 'members' => [ 'ResourcePendingMaintenanceActions' => [ 'shape' => 'ResourcePendingMaintenanceActions', ], ], ], 'AttributeValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'AttributeValue', ], ], 'AuthorizationNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'AuthorizationNotFound', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'AvailabilityZone' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], ], 'wrapper' => true, ], 'AvailabilityZoneList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZone', 'locationName' => 'AvailabilityZone', ], ], 'AvailabilityZones' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'AvailabilityZone', ], ], 'Boolean' => [ 'type' => 'boolean', ], 'BooleanOptional' => [ 'type' => 'boolean', ], 'CertificateNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'CertificateNotFound', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'CharacterSet' => [ 'type' => 'structure', 'members' => [ 'CharacterSetName' => [ 'shape' => 'String', ], 'CharacterSetDescription' => [ 'shape' => 'String', ], ], ], 'CloudwatchLogsExportConfiguration' => [ 'type' => 'structure', 'members' => [ 'EnableLogTypes' => [ 'shape' => 'LogTypeList', ], 'DisableLogTypes' => [ 'shape' => 'LogTypeList', ], ], ], 'CopyDBClusterParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'SourceDBClusterParameterGroupIdentifier', 'TargetDBClusterParameterGroupIdentifier', 'TargetDBClusterParameterGroupDescription', ], 'members' => [ 'SourceDBClusterParameterGroupIdentifier' => [ 'shape' => 'String', ], 'TargetDBClusterParameterGroupIdentifier' => [ 'shape' => 'String', ], 'TargetDBClusterParameterGroupDescription' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CopyDBClusterParameterGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterParameterGroup' => [ 'shape' => 'DBClusterParameterGroup', ], ], ], 'CopyDBClusterSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'SourceDBClusterSnapshotIdentifier', 'TargetDBClusterSnapshotIdentifier', ], 'members' => [ 'SourceDBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'TargetDBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'PreSignedUrl' => [ 'shape' => 'String', ], 'CopyTags' => [ 'shape' => 'BooleanOptional', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CopyDBClusterSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterSnapshot' => [ 'shape' => 'DBClusterSnapshot', ], ], ], 'CopyDBParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'SourceDBParameterGroupIdentifier', 'TargetDBParameterGroupIdentifier', 'TargetDBParameterGroupDescription', ], 'members' => [ 'SourceDBParameterGroupIdentifier' => [ 'shape' => 'String', ], 'TargetDBParameterGroupIdentifier' => [ 'shape' => 'String', ], 'TargetDBParameterGroupDescription' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CopyDBParameterGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBParameterGroup' => [ 'shape' => 'DBParameterGroup', ], ], ], 'CreateDBClusterMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', 'Engine', ], 'members' => [ 'AvailabilityZones' => [ 'shape' => 'AvailabilityZones', ], 'BackupRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'CharacterSetName' => [ 'shape' => 'String', ], 'DatabaseName' => [ 'shape' => 'String', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'VpcSecurityGroupIds' => [ 'shape' => 'VpcSecurityGroupIdList', ], 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'Engine' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'MasterUsername' => [ 'shape' => 'String', ], 'MasterUserPassword' => [ 'shape' => 'String', ], 'OptionGroupName' => [ 'shape' => 'String', ], 'PreferredBackupWindow' => [ 'shape' => 'String', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'String', ], 'ReplicationSourceIdentifier' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], 'StorageEncrypted' => [ 'shape' => 'BooleanOptional', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'PreSignedUrl' => [ 'shape' => 'String', ], 'EnableIAMDatabaseAuthentication' => [ 'shape' => 'BooleanOptional', ], ], ], 'CreateDBClusterParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterParameterGroupName', 'DBParameterGroupFamily', 'Description', ], 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'DBParameterGroupFamily' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDBClusterParameterGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterParameterGroup' => [ 'shape' => 'DBClusterParameterGroup', ], ], ], 'CreateDBClusterResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], 'CreateDBClusterSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterSnapshotIdentifier', 'DBClusterIdentifier', ], 'members' => [ 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDBClusterSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterSnapshot' => [ 'shape' => 'DBClusterSnapshot', ], ], ], 'CreateDBInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', 'DBInstanceClass', 'Engine', ], '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', 'deprecated' => true, ], 'Tags' => [ 'shape' => 'TagList', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'StorageType' => [ 'shape' => 'String', ], 'TdeCredentialArn' => [ 'shape' => 'String', ], 'TdeCredentialPassword' => [ 'shape' => 'String', ], 'StorageEncrypted' => [ 'shape' => 'BooleanOptional', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'Domain' => [ 'shape' => 'String', ], 'CopyTagsToSnapshot' => [ 'shape' => 'BooleanOptional', ], 'MonitoringInterval' => [ 'shape' => 'IntegerOptional', ], 'MonitoringRoleArn' => [ 'shape' => 'String', ], 'DomainIAMRoleName' => [ 'shape' => 'String', ], 'PromotionTier' => [ 'shape' => 'IntegerOptional', ], 'Timezone' => [ 'shape' => 'String', ], 'EnableIAMDatabaseAuthentication' => [ 'shape' => 'BooleanOptional', ], 'EnablePerformanceInsights' => [ 'shape' => 'BooleanOptional', ], 'PerformanceInsightsKMSKeyId' => [ 'shape' => 'String', ], 'EnableCloudwatchLogsExports' => [ 'shape' => 'LogTypeList', ], ], ], 'CreateDBInstanceResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], 'CreateDBParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBParameterGroupName', 'DBParameterGroupFamily', 'Description', ], 'members' => [ 'DBParameterGroupName' => [ 'shape' => 'String', ], 'DBParameterGroupFamily' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDBParameterGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBParameterGroup' => [ 'shape' => 'DBParameterGroup', ], ], ], 'CreateDBSubnetGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBSubnetGroupName', 'DBSubnetGroupDescription', 'SubnetIds', ], 'members' => [ 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'DBSubnetGroupDescription' => [ 'shape' => 'String', ], 'SubnetIds' => [ 'shape' => 'SubnetIdentifierList', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDBSubnetGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBSubnetGroup' => [ 'shape' => 'DBSubnetGroup', ], ], ], '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', ], ], ], 'CreateEventSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'EventSubscription' => [ 'shape' => 'EventSubscription', ], ], ], 'DBCluster' => [ 'type' => 'structure', 'members' => [ 'AllocatedStorage' => [ 'shape' => 'IntegerOptional', ], 'AvailabilityZones' => [ 'shape' => 'AvailabilityZones', ], 'BackupRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'CharacterSetName' => [ 'shape' => 'String', ], 'DatabaseName' => [ 'shape' => 'String', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'DBClusterParameterGroup' => [ 'shape' => 'String', ], 'DBSubnetGroup' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], 'PercentProgress' => [ 'shape' => 'String', ], 'EarliestRestorableTime' => [ 'shape' => 'TStamp', ], 'Endpoint' => [ 'shape' => 'String', ], 'ReaderEndpoint' => [ 'shape' => 'String', ], 'MultiAZ' => [ 'shape' => 'Boolean', ], 'Engine' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'LatestRestorableTime' => [ 'shape' => 'TStamp', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'MasterUsername' => [ 'shape' => 'String', ], 'DBClusterOptionGroupMemberships' => [ 'shape' => 'DBClusterOptionGroupMemberships', ], 'PreferredBackupWindow' => [ 'shape' => 'String', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'String', ], 'ReplicationSourceIdentifier' => [ 'shape' => 'String', ], 'ReadReplicaIdentifiers' => [ 'shape' => 'ReadReplicaIdentifierList', ], 'DBClusterMembers' => [ 'shape' => 'DBClusterMemberList', ], 'VpcSecurityGroups' => [ 'shape' => 'VpcSecurityGroupMembershipList', ], 'HostedZoneId' => [ 'shape' => 'String', ], 'StorageEncrypted' => [ 'shape' => 'Boolean', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'DbClusterResourceId' => [ 'shape' => 'String', ], 'DBClusterArn' => [ 'shape' => 'String', ], 'AssociatedRoles' => [ 'shape' => 'DBClusterRoles', ], 'IAMDatabaseAuthenticationEnabled' => [ 'shape' => 'Boolean', ], 'CloneGroupId' => [ 'shape' => 'String', ], 'ClusterCreateTime' => [ 'shape' => 'TStamp', ], ], 'wrapper' => true, ], 'DBClusterAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterAlreadyExistsFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBCluster', 'locationName' => 'DBCluster', ], ], 'DBClusterMember' => [ 'type' => 'structure', 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'IsClusterWriter' => [ 'shape' => 'Boolean', ], 'DBClusterParameterGroupStatus' => [ 'shape' => 'String', ], 'PromotionTier' => [ 'shape' => 'IntegerOptional', ], ], 'wrapper' => true, ], 'DBClusterMemberList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBClusterMember', 'locationName' => 'DBClusterMember', ], ], 'DBClusterMessage' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'DBClusters' => [ 'shape' => 'DBClusterList', ], ], ], 'DBClusterNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterNotFoundFault', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterOptionGroupMemberships' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBClusterOptionGroupStatus', 'locationName' => 'DBClusterOptionGroup', ], ], 'DBClusterOptionGroupStatus' => [ 'type' => 'structure', 'members' => [ 'DBClusterOptionGroupName' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], ], ], 'DBClusterParameterGroup' => [ 'type' => 'structure', 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'DBParameterGroupFamily' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'DBClusterParameterGroupArn' => [ 'shape' => 'String', ], ], 'wrapper' => true, ], 'DBClusterParameterGroupDetails' => [ 'type' => 'structure', 'members' => [ 'Parameters' => [ 'shape' => 'ParametersList', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DBClusterParameterGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBClusterParameterGroup', 'locationName' => 'DBClusterParameterGroup', ], ], 'DBClusterParameterGroupNameMessage' => [ 'type' => 'structure', 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], ], ], 'DBClusterParameterGroupNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterParameterGroupNotFound', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterParameterGroupsMessage' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'DBClusterParameterGroups' => [ 'shape' => 'DBClusterParameterGroupList', ], ], ], 'DBClusterQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterQuotaExceededFault', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterRole' => [ 'type' => 'structure', 'members' => [ 'RoleArn' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], ], ], 'DBClusterRoleAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterRoleAlreadyExists', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterRoleNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterRoleNotFound', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterRoleQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterRoleQuotaExceeded', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterRoles' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBClusterRole', 'locationName' => 'DBClusterRole', ], ], 'DBClusterSnapshot' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZones' => [ 'shape' => 'AvailabilityZones', ], 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'SnapshotCreateTime' => [ 'shape' => 'TStamp', ], 'Engine' => [ 'shape' => 'String', ], 'AllocatedStorage' => [ 'shape' => 'Integer', ], 'Status' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'Integer', ], 'VpcId' => [ 'shape' => 'String', ], 'ClusterCreateTime' => [ 'shape' => 'TStamp', ], 'MasterUsername' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'LicenseModel' => [ 'shape' => 'String', ], 'SnapshotType' => [ 'shape' => 'String', ], 'PercentProgress' => [ 'shape' => 'Integer', ], 'StorageEncrypted' => [ 'shape' => 'Boolean', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'DBClusterSnapshotArn' => [ 'shape' => 'String', ], 'SourceDBClusterSnapshotArn' => [ 'shape' => 'String', ], 'IAMDatabaseAuthenticationEnabled' => [ 'shape' => 'Boolean', ], ], 'wrapper' => true, ], 'DBClusterSnapshotAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterSnapshotAlreadyExistsFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterSnapshotAttribute' => [ 'type' => 'structure', 'members' => [ 'AttributeName' => [ 'shape' => 'String', ], 'AttributeValues' => [ 'shape' => 'AttributeValueList', ], ], ], 'DBClusterSnapshotAttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBClusterSnapshotAttribute', 'locationName' => 'DBClusterSnapshotAttribute', ], ], 'DBClusterSnapshotAttributesResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'DBClusterSnapshotAttributes' => [ 'shape' => 'DBClusterSnapshotAttributeList', ], ], 'wrapper' => true, ], 'DBClusterSnapshotList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBClusterSnapshot', 'locationName' => 'DBClusterSnapshot', ], ], 'DBClusterSnapshotMessage' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'DBClusterSnapshots' => [ 'shape' => 'DBClusterSnapshotList', ], ], ], 'DBClusterSnapshotNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterSnapshotNotFoundFault', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], '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', ], 'ValidUpgradeTarget' => [ 'shape' => 'ValidUpgradeTargetList', ], 'SupportedTimezones' => [ 'shape' => 'SupportedTimezonesList', ], 'ExportableLogTypes' => [ 'shape' => 'LogTypeList', ], 'SupportsLogExportsToCloudwatchLogs' => [ 'shape' => 'Boolean', ], 'SupportsReadReplica' => [ 'shape' => 'Boolean', ], ], ], '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', ], 'ReadReplicaDBClusterIdentifiers' => [ 'shape' => 'ReadReplicaDBClusterIdentifierList', ], 'LicenseModel' => [ 'shape' => 'String', ], 'Iops' => [ 'shape' => 'IntegerOptional', ], 'OptionGroupMemberships' => [ 'shape' => 'OptionGroupMembershipList', ], 'CharacterSetName' => [ 'shape' => 'String', ], 'SecondaryAvailabilityZone' => [ 'shape' => 'String', ], 'PubliclyAccessible' => [ 'shape' => 'Boolean', 'deprecated' => true, ], 'StatusInfos' => [ 'shape' => 'DBInstanceStatusInfoList', ], 'StorageType' => [ 'shape' => 'String', ], 'TdeCredentialArn' => [ 'shape' => 'String', ], 'DbInstancePort' => [ 'shape' => 'Integer', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'StorageEncrypted' => [ 'shape' => 'Boolean', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'DbiResourceId' => [ 'shape' => 'String', ], 'CACertificateIdentifier' => [ 'shape' => 'String', ], 'DomainMemberships' => [ 'shape' => 'DomainMembershipList', ], 'CopyTagsToSnapshot' => [ 'shape' => 'Boolean', ], 'MonitoringInterval' => [ 'shape' => 'IntegerOptional', ], 'EnhancedMonitoringResourceArn' => [ 'shape' => 'String', ], 'MonitoringRoleArn' => [ 'shape' => 'String', ], 'PromotionTier' => [ 'shape' => 'IntegerOptional', ], 'DBInstanceArn' => [ 'shape' => 'String', ], 'Timezone' => [ 'shape' => 'String', ], 'IAMDatabaseAuthenticationEnabled' => [ 'shape' => 'Boolean', ], 'PerformanceInsightsEnabled' => [ 'shape' => 'BooleanOptional', ], 'PerformanceInsightsKMSKeyId' => [ 'shape' => 'String', ], 'EnabledCloudwatchLogsExports' => [ 'shape' => 'LogTypeList', ], ], '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', ], 'DBParameterGroupArn' => [ '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', ], ], ], 'DBSecurityGroupMembership' => [ 'type' => 'structure', 'members' => [ 'DBSecurityGroupName' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], ], ], 'DBSecurityGroupMembershipList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBSecurityGroupMembership', 'locationName' => 'DBSecurityGroup', ], ], 'DBSecurityGroupNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'DBSecurityGroupName', ], ], 'DBSecurityGroupNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBSecurityGroupNotFound', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'DBSnapshotAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBSnapshotAlreadyExists', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], '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', ], 'DBSubnetGroupArn' => [ 'shape' => 'String', ], ], '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', ], ], ], '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, ], 'DeleteDBClusterMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'SkipFinalSnapshot' => [ 'shape' => 'Boolean', ], 'FinalDBSnapshotIdentifier' => [ 'shape' => 'String', ], ], ], 'DeleteDBClusterParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterParameterGroupName', ], 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], ], ], 'DeleteDBClusterResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], 'DeleteDBClusterSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterSnapshotIdentifier', ], 'members' => [ 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], ], ], 'DeleteDBClusterSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterSnapshot' => [ 'shape' => 'DBClusterSnapshot', ], ], ], 'DeleteDBInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', ], 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'SkipFinalSnapshot' => [ 'shape' => 'Boolean', ], 'FinalDBSnapshotIdentifier' => [ 'shape' => 'String', ], ], ], 'DeleteDBInstanceResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], 'DeleteDBParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBParameterGroupName', ], 'members' => [ 'DBParameterGroupName' => [ 'shape' => 'String', ], ], ], 'DeleteDBSubnetGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBSubnetGroupName', ], 'members' => [ 'DBSubnetGroupName' => [ 'shape' => 'String', ], ], ], 'DeleteEventSubscriptionMessage' => [ 'type' => 'structure', 'required' => [ 'SubscriptionName', ], 'members' => [ 'SubscriptionName' => [ 'shape' => 'String', ], ], ], 'DeleteEventSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'EventSubscription' => [ 'shape' => 'EventSubscription', ], ], ], 'DescribeDBClusterParameterGroupsMessage' => [ 'type' => 'structure', 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeDBClusterParametersMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterParameterGroupName', ], 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'Source' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeDBClusterSnapshotAttributesMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterSnapshotIdentifier', ], 'members' => [ 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], ], ], 'DescribeDBClusterSnapshotAttributesResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterSnapshotAttributesResult' => [ 'shape' => 'DBClusterSnapshotAttributesResult', ], ], ], 'DescribeDBClusterSnapshotsMessage' => [ 'type' => 'structure', 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'SnapshotType' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], 'IncludeShared' => [ 'shape' => 'Boolean', ], 'IncludePublic' => [ 'shape' => 'Boolean', ], ], ], 'DescribeDBClustersMessage' => [ 'type' => 'structure', 'members' => [ 'DBClusterIdentifier' => [ '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', ], 'ListSupportedTimezones' => [ 'shape' => 'BooleanOptional', ], ], ], 'DescribeDBInstancesMessage' => [ 'type' => 'structure', 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], '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', ], ], ], 'DescribeDBSubnetGroupsMessage' => [ 'type' => 'structure', 'members' => [ 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeEngineDefaultClusterParametersMessage' => [ 'type' => 'structure', 'required' => [ 'DBParameterGroupFamily', ], 'members' => [ 'DBParameterGroupFamily' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeEngineDefaultClusterParametersResult' => [ 'type' => 'structure', 'members' => [ 'EngineDefaults' => [ 'shape' => 'EngineDefaults', ], ], ], 'DescribeEngineDefaultParametersMessage' => [ 'type' => 'structure', 'required' => [ 'DBParameterGroupFamily', ], 'members' => [ 'DBParameterGroupFamily' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeEngineDefaultParametersResult' => [ 'type' => 'structure', 'members' => [ 'EngineDefaults' => [ 'shape' => 'EngineDefaults', ], ], ], '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', ], ], ], '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', ], ], ], 'DescribeValidDBInstanceModificationsMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', ], 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], ], ], 'DescribeValidDBInstanceModificationsResult' => [ 'type' => 'structure', 'members' => [ 'ValidDBInstanceModificationsMessage' => [ 'shape' => 'ValidDBInstanceModificationsMessage', ], ], ], 'DomainMembership' => [ 'type' => 'structure', 'members' => [ 'Domain' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], 'FQDN' => [ 'shape' => 'String', ], 'IAMRoleName' => [ 'shape' => 'String', ], ], ], 'DomainMembershipList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DomainMembership', 'locationName' => 'DomainMembership', ], ], 'DomainNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DomainNotFoundFault', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'Double' => [ 'type' => 'double', ], 'DoubleOptional' => [ 'type' => 'double', ], 'DoubleRange' => [ 'type' => 'structure', 'members' => [ 'From' => [ 'shape' => 'Double', ], 'To' => [ 'shape' => 'Double', ], ], ], 'DoubleRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DoubleRange', 'locationName' => 'DoubleRange', ], ], 'Endpoint' => [ 'type' => 'structure', 'members' => [ 'Address' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'Integer', ], 'HostedZoneId' => [ 'shape' => 'String', ], ], ], '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', ], 'SourceArn' => [ 'shape' => 'String', ], ], ], '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', ], 'EventSubscriptionArn' => [ 'shape' => 'String', ], ], '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', ], ], ], 'FailoverDBClusterMessage' => [ 'type' => 'structure', 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'TargetDBInstanceIdentifier' => [ 'shape' => 'String', ], ], ], 'FailoverDBClusterResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], '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', ], ], 'InstanceQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InstanceQuotaExceeded', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InsufficientDBClusterCapacityFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InsufficientDBClusterCapacityFault', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'InsufficientDBInstanceCapacityFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InsufficientDBInstanceCapacity', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InsufficientStorageClusterCapacityFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InsufficientStorageClusterCapacity', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'Integer' => [ 'type' => 'integer', ], 'IntegerOptional' => [ 'type' => 'integer', ], 'InvalidDBClusterSnapshotStateFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidDBClusterSnapshotStateFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidDBClusterStateFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidDBClusterStateFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], '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, ], '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, ], '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', ], ], ], 'LogTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ModifyDBClusterMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'NewDBClusterIdentifier' => [ 'shape' => 'String', ], 'ApplyImmediately' => [ 'shape' => 'Boolean', ], 'BackupRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'VpcSecurityGroupIds' => [ 'shape' => 'VpcSecurityGroupIdList', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'MasterUserPassword' => [ 'shape' => 'String', ], 'OptionGroupName' => [ 'shape' => 'String', ], 'PreferredBackupWindow' => [ 'shape' => 'String', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'String', ], 'EnableIAMDatabaseAuthentication' => [ 'shape' => 'BooleanOptional', ], 'EngineVersion' => [ 'shape' => 'String', ], ], ], 'ModifyDBClusterParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterParameterGroupName', 'Parameters', ], 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'Parameters' => [ 'shape' => 'ParametersList', ], ], ], 'ModifyDBClusterResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], 'ModifyDBClusterSnapshotAttributeMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterSnapshotIdentifier', 'AttributeName', ], 'members' => [ 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'AttributeName' => [ 'shape' => 'String', ], 'ValuesToAdd' => [ 'shape' => 'AttributeValueList', ], 'ValuesToRemove' => [ 'shape' => 'AttributeValueList', ], ], ], 'ModifyDBClusterSnapshotAttributeResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterSnapshotAttributesResult' => [ 'shape' => 'DBClusterSnapshotAttributesResult', ], ], ], 'ModifyDBInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', ], 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'AllocatedStorage' => [ 'shape' => 'IntegerOptional', ], 'DBInstanceClass' => [ 'shape' => 'String', ], 'DBSubnetGroupName' => [ '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', ], 'LicenseModel' => [ 'shape' => 'String', ], 'Iops' => [ 'shape' => 'IntegerOptional', ], 'OptionGroupName' => [ 'shape' => 'String', ], 'NewDBInstanceIdentifier' => [ 'shape' => 'String', ], 'StorageType' => [ 'shape' => 'String', ], 'TdeCredentialArn' => [ 'shape' => 'String', ], 'TdeCredentialPassword' => [ 'shape' => 'String', ], 'CACertificateIdentifier' => [ 'shape' => 'String', ], 'Domain' => [ 'shape' => 'String', ], 'CopyTagsToSnapshot' => [ 'shape' => 'BooleanOptional', ], 'MonitoringInterval' => [ 'shape' => 'IntegerOptional', ], 'DBPortNumber' => [ 'shape' => 'IntegerOptional', ], 'PubliclyAccessible' => [ 'shape' => 'BooleanOptional', 'deprecated' => true, ], 'MonitoringRoleArn' => [ 'shape' => 'String', ], 'DomainIAMRoleName' => [ 'shape' => 'String', ], 'PromotionTier' => [ 'shape' => 'IntegerOptional', ], 'EnableIAMDatabaseAuthentication' => [ 'shape' => 'BooleanOptional', ], 'EnablePerformanceInsights' => [ 'shape' => 'BooleanOptional', ], 'PerformanceInsightsKMSKeyId' => [ 'shape' => 'String', ], 'CloudwatchLogsExportConfiguration' => [ 'shape' => 'CloudwatchLogsExportConfiguration', ], ], ], 'ModifyDBInstanceResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], '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', ], ], ], 'ModifyDBSubnetGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBSubnetGroup' => [ 'shape' => 'DBSubnetGroup', ], ], ], 'ModifyEventSubscriptionMessage' => [ 'type' => 'structure', 'required' => [ 'SubscriptionName', ], 'members' => [ 'SubscriptionName' => [ 'shape' => 'String', ], 'SnsTopicArn' => [ 'shape' => 'String', ], 'SourceType' => [ 'shape' => 'String', ], 'EventCategories' => [ 'shape' => 'EventCategoriesList', ], 'Enabled' => [ 'shape' => 'BooleanOptional', ], ], ], 'ModifyEventSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'EventSubscription' => [ 'shape' => 'EventSubscription', ], ], ], '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, ], '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', ], 'SupportsEnhancedMonitoring' => [ 'shape' => 'Boolean', ], 'SupportsIAMDatabaseAuthentication' => [ 'shape' => 'Boolean', ], 'SupportsPerformanceInsights' => [ 'shape' => 'Boolean', ], 'MinStorageSize' => [ 'shape' => 'IntegerOptional', ], 'MaxStorageSize' => [ 'shape' => 'IntegerOptional', ], 'MinIopsPerDbInstance' => [ 'shape' => 'IntegerOptional', ], 'MaxIopsPerDbInstance' => [ 'shape' => 'IntegerOptional', ], 'MinIopsPerGib' => [ 'shape' => 'DoubleOptional', ], 'MaxIopsPerGib' => [ 'shape' => 'DoubleOptional', ], ], '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', ], ], 'PendingCloudwatchLogsExports' => [ 'type' => 'structure', 'members' => [ 'LogTypesToEnable' => [ 'shape' => 'LogTypeList', ], 'LogTypesToDisable' => [ 'shape' => 'LogTypeList', ], ], ], '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', ], 'LicenseModel' => [ 'shape' => 'String', ], 'Iops' => [ 'shape' => 'IntegerOptional', ], 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'StorageType' => [ 'shape' => 'String', ], 'CACertificateIdentifier' => [ 'shape' => 'String', ], 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'PendingCloudwatchLogsExports' => [ 'shape' => 'PendingCloudwatchLogsExports', ], ], ], 'PromoteReadReplicaDBClusterMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], ], ], 'PromoteReadReplicaDBClusterResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], 'ProvisionedIopsNotAvailableInAZFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'ProvisionedIopsNotAvailableInAZFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'Range' => [ 'type' => 'structure', 'members' => [ 'From' => [ 'shape' => 'Integer', ], 'To' => [ 'shape' => 'Integer', ], 'Step' => [ 'shape' => 'IntegerOptional', ], ], ], 'RangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Range', 'locationName' => 'Range', ], ], 'ReadReplicaDBClusterIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ReadReplicaDBClusterIdentifier', ], ], 'ReadReplicaDBInstanceIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ReadReplicaDBInstanceIdentifier', ], ], 'ReadReplicaIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ReadReplicaIdentifier', ], ], 'RebootDBInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', ], 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'ForceFailover' => [ 'shape' => 'BooleanOptional', ], ], ], 'RebootDBInstanceResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], 'RemoveRoleFromDBClusterMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', 'RoleArn', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'RoleArn' => [ 'shape' => 'String', ], ], ], 'RemoveSourceIdentifierFromSubscriptionMessage' => [ 'type' => 'structure', 'required' => [ 'SubscriptionName', 'SourceIdentifier', ], 'members' => [ 'SubscriptionName' => [ 'shape' => 'String', ], 'SourceIdentifier' => [ 'shape' => 'String', ], ], ], 'RemoveSourceIdentifierFromSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'EventSubscription' => [ 'shape' => 'EventSubscription', ], ], ], 'RemoveTagsFromResourceMessage' => [ 'type' => 'structure', 'required' => [ 'ResourceName', 'TagKeys', ], 'members' => [ 'ResourceName' => [ 'shape' => 'String', ], 'TagKeys' => [ 'shape' => 'KeyList', ], ], ], 'ResetDBClusterParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterParameterGroupName', ], 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'ResetAllParameters' => [ 'shape' => 'Boolean', ], 'Parameters' => [ 'shape' => 'ParametersList', ], ], ], '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, ], 'RestoreDBClusterFromSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', 'SnapshotIdentifier', 'Engine', ], 'members' => [ 'AvailabilityZones' => [ 'shape' => 'AvailabilityZones', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'SnapshotIdentifier' => [ 'shape' => 'String', ], 'Engine' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'DatabaseName' => [ 'shape' => 'String', ], 'OptionGroupName' => [ 'shape' => 'String', ], 'VpcSecurityGroupIds' => [ 'shape' => 'VpcSecurityGroupIdList', ], 'Tags' => [ 'shape' => 'TagList', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'EnableIAMDatabaseAuthentication' => [ 'shape' => 'BooleanOptional', ], ], ], 'RestoreDBClusterFromSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], 'RestoreDBClusterToPointInTimeMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', 'SourceDBClusterIdentifier', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'RestoreType' => [ 'shape' => 'String', ], 'SourceDBClusterIdentifier' => [ 'shape' => 'String', ], 'RestoreToTime' => [ 'shape' => 'TStamp', ], 'UseLatestRestorableTime' => [ 'shape' => 'Boolean', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'OptionGroupName' => [ 'shape' => 'String', ], 'VpcSecurityGroupIds' => [ 'shape' => 'VpcSecurityGroupIdList', ], 'Tags' => [ 'shape' => 'TagList', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'EnableIAMDatabaseAuthentication' => [ 'shape' => 'BooleanOptional', ], ], ], 'RestoreDBClusterToPointInTimeResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], '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, ], 'SharedSnapshotQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'SharedSnapshotQuotaExceeded', 'httpStatusCode' => 400, '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', 'db-cluster', 'db-cluster-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', ], ], 'SupportedTimezonesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Timezone', 'locationName' => 'Timezone', ], ], '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', ], ], ], 'Timezone' => [ 'type' => 'structure', 'members' => [ 'TimezoneName' => [ 'shape' => 'String', ], ], ], 'UpgradeTarget' => [ 'type' => 'structure', 'members' => [ 'Engine' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'AutoUpgrade' => [ 'shape' => 'Boolean', ], 'IsMajorVersionUpgrade' => [ 'shape' => 'Boolean', ], ], ], 'ValidDBInstanceModificationsMessage' => [ 'type' => 'structure', 'members' => [ 'Storage' => [ 'shape' => 'ValidStorageOptionsList', ], ], 'wrapper' => true, ], 'ValidStorageOptions' => [ 'type' => 'structure', 'members' => [ 'StorageType' => [ 'shape' => 'String', ], 'StorageSize' => [ 'shape' => 'RangeList', ], 'ProvisionedIops' => [ 'shape' => 'RangeList', ], 'IopsToStorageRatio' => [ 'shape' => 'DoubleRangeList', ], ], ], 'ValidStorageOptionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ValidStorageOptions', 'locationName' => 'ValidStorageOptions', ], ], 'ValidUpgradeTargetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UpgradeTarget', 'locationName' => 'UpgradeTarget', ], ], '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', ], ], ],]; diff --git a/lib/aws/Aws/data/neptune/2014-10-31/paginators-1.json.php b/lib/aws/Aws/data/neptune/2014-10-31/paginators-1.json.php new file mode 100644 index 0000000..961a2f8 --- /dev/null +++ b/lib/aws/Aws/data/neptune/2014-10-31/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/neptune/2014-10-31/paginators-1.json +return [ 'pagination' => [ 'DescribeDBEngineVersions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'DBEngineVersions', ], 'DescribeDBInstances' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'DBInstances', ], 'DescribeDBParameterGroups' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'DBParameterGroups', ], 'DescribeDBParameters' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'Parameters', ], 'DescribeDBSubnetGroups' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'DBSubnetGroups', ], 'DescribeEngineDefaultParameters' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'EngineDefaults.Marker', 'result_key' => 'EngineDefaults.Parameters', ], 'DescribeEventSubscriptions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'EventSubscriptionsList', ], 'DescribeEvents' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'Events', ], 'DescribeOrderableDBInstanceOptions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'OrderableDBInstanceOptions', ], 'ListTagsForResource' => [ 'result_key' => 'TagList', ], ],]; diff --git a/lib/aws/Aws/data/neptune/2014-10-31/waiters-2.json.php b/lib/aws/Aws/data/neptune/2014-10-31/waiters-2.json.php new file mode 100644 index 0000000..9bdfe58 --- /dev/null +++ b/lib/aws/Aws/data/neptune/2014-10-31/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/neptune/2014-10-31/waiters-2.json +return [ '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', ], ], ], '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/Aws/data/opsworks/2013-02-18/api-2.json.php b/lib/aws/Aws/data/opsworks/2013-02-18/api-2.json.php new file mode 100644 index 0000000..42332ff --- /dev/null +++ b/lib/aws/Aws/data/opsworks/2013-02-18/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/opsworks/2013-02-18/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2013-02-18', 'endpointPrefix' => 'opsworks', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWS OpsWorks', 'serviceId' => 'OpsWorks', 'signatureVersion' => 'v4', 'targetPrefix' => 'OpsWorks_20130218', 'uid' => 'opsworks-2013-02-18', ], 'operations' => [ 'AssignInstance' => [ 'name' => 'AssignInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssignInstanceRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'AssignVolume' => [ 'name' => 'AssignVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssignVolumeRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'AssociateElasticIp' => [ 'name' => 'AssociateElasticIp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateElasticIpRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'AttachElasticLoadBalancer' => [ 'name' => 'AttachElasticLoadBalancer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachElasticLoadBalancerRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'CloneStack' => [ 'name' => 'CloneStack', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CloneStackRequest', ], 'output' => [ 'shape' => 'CloneStackResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'CreateApp' => [ 'name' => 'CreateApp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAppRequest', ], 'output' => [ 'shape' => 'CreateAppResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'CreateDeployment' => [ 'name' => 'CreateDeployment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDeploymentRequest', ], 'output' => [ 'shape' => 'CreateDeploymentResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'CreateInstance' => [ 'name' => 'CreateInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateInstanceRequest', ], 'output' => [ 'shape' => 'CreateInstanceResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'CreateLayer' => [ 'name' => 'CreateLayer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLayerRequest', ], 'output' => [ 'shape' => 'CreateLayerResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'CreateStack' => [ 'name' => 'CreateStack', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateStackRequest', ], 'output' => [ 'shape' => 'CreateStackResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], ], ], 'CreateUserProfile' => [ 'name' => 'CreateUserProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateUserProfileRequest', ], 'output' => [ 'shape' => 'CreateUserProfileResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], ], ], 'DeleteApp' => [ 'name' => 'DeleteApp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAppRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeleteInstance' => [ 'name' => 'DeleteInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteInstanceRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeleteLayer' => [ 'name' => 'DeleteLayer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLayerRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeleteStack' => [ 'name' => 'DeleteStack', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteStackRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeleteUserProfile' => [ 'name' => 'DeleteUserProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteUserProfileRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeregisterEcsCluster' => [ 'name' => 'DeregisterEcsCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterEcsClusterRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeregisterElasticIp' => [ 'name' => 'DeregisterElasticIp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterElasticIpRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeregisterInstance' => [ 'name' => 'DeregisterInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterInstanceRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeregisterRdsDbInstance' => [ 'name' => 'DeregisterRdsDbInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterRdsDbInstanceRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeregisterVolume' => [ 'name' => 'DeregisterVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterVolumeRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeAgentVersions' => [ 'name' => 'DescribeAgentVersions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAgentVersionsRequest', ], 'output' => [ 'shape' => 'DescribeAgentVersionsResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeApps' => [ 'name' => 'DescribeApps', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAppsRequest', ], 'output' => [ 'shape' => 'DescribeAppsResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeCommands' => [ 'name' => 'DescribeCommands', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCommandsRequest', ], 'output' => [ 'shape' => 'DescribeCommandsResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeDeployments' => [ 'name' => 'DescribeDeployments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDeploymentsRequest', ], 'output' => [ 'shape' => 'DescribeDeploymentsResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeEcsClusters' => [ 'name' => 'DescribeEcsClusters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEcsClustersRequest', ], 'output' => [ 'shape' => 'DescribeEcsClustersResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeElasticIps' => [ 'name' => 'DescribeElasticIps', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeElasticIpsRequest', ], 'output' => [ 'shape' => 'DescribeElasticIpsResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeElasticLoadBalancers' => [ 'name' => 'DescribeElasticLoadBalancers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeElasticLoadBalancersRequest', ], 'output' => [ 'shape' => 'DescribeElasticLoadBalancersResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeInstances' => [ 'name' => 'DescribeInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstancesRequest', ], 'output' => [ 'shape' => 'DescribeInstancesResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeLayers' => [ 'name' => 'DescribeLayers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLayersRequest', ], 'output' => [ 'shape' => 'DescribeLayersResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeLoadBasedAutoScaling' => [ 'name' => 'DescribeLoadBasedAutoScaling', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLoadBasedAutoScalingRequest', ], 'output' => [ 'shape' => 'DescribeLoadBasedAutoScalingResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeMyUserProfile' => [ 'name' => 'DescribeMyUserProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'DescribeMyUserProfileResult', ], ], 'DescribeOperatingSystems' => [ 'name' => 'DescribeOperatingSystems', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'DescribeOperatingSystemsResponse', ], ], 'DescribePermissions' => [ 'name' => 'DescribePermissions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePermissionsRequest', ], 'output' => [ 'shape' => 'DescribePermissionsResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeRaidArrays' => [ 'name' => 'DescribeRaidArrays', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRaidArraysRequest', ], 'output' => [ 'shape' => 'DescribeRaidArraysResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeRdsDbInstances' => [ 'name' => 'DescribeRdsDbInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRdsDbInstancesRequest', ], 'output' => [ 'shape' => 'DescribeRdsDbInstancesResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeServiceErrors' => [ 'name' => 'DescribeServiceErrors', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeServiceErrorsRequest', ], 'output' => [ 'shape' => 'DescribeServiceErrorsResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeStackProvisioningParameters' => [ 'name' => 'DescribeStackProvisioningParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStackProvisioningParametersRequest', ], 'output' => [ 'shape' => 'DescribeStackProvisioningParametersResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeStackSummary' => [ 'name' => 'DescribeStackSummary', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStackSummaryRequest', ], 'output' => [ 'shape' => 'DescribeStackSummaryResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeStacks' => [ 'name' => 'DescribeStacks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStacksRequest', ], 'output' => [ 'shape' => 'DescribeStacksResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeTimeBasedAutoScaling' => [ 'name' => 'DescribeTimeBasedAutoScaling', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTimeBasedAutoScalingRequest', ], 'output' => [ 'shape' => 'DescribeTimeBasedAutoScalingResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeUserProfiles' => [ 'name' => 'DescribeUserProfiles', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeUserProfilesRequest', ], 'output' => [ 'shape' => 'DescribeUserProfilesResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeVolumes' => [ 'name' => 'DescribeVolumes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVolumesRequest', ], 'output' => [ 'shape' => 'DescribeVolumesResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DetachElasticLoadBalancer' => [ 'name' => 'DetachElasticLoadBalancer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachElasticLoadBalancerRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DisassociateElasticIp' => [ 'name' => 'DisassociateElasticIp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateElasticIpRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'GetHostnameSuggestion' => [ 'name' => 'GetHostnameSuggestion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetHostnameSuggestionRequest', ], 'output' => [ 'shape' => 'GetHostnameSuggestionResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'GrantAccess' => [ 'name' => 'GrantAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GrantAccessRequest', ], 'output' => [ 'shape' => 'GrantAccessResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListTags' => [ 'name' => 'ListTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsRequest', ], 'output' => [ 'shape' => 'ListTagsResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'RebootInstance' => [ 'name' => 'RebootInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RebootInstanceRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'RegisterEcsCluster' => [ 'name' => 'RegisterEcsCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterEcsClusterRequest', ], 'output' => [ 'shape' => 'RegisterEcsClusterResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'RegisterElasticIp' => [ 'name' => 'RegisterElasticIp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterElasticIpRequest', ], 'output' => [ 'shape' => 'RegisterElasticIpResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'RegisterInstance' => [ 'name' => 'RegisterInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterInstanceRequest', ], 'output' => [ 'shape' => 'RegisterInstanceResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'RegisterRdsDbInstance' => [ 'name' => 'RegisterRdsDbInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterRdsDbInstanceRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'RegisterVolume' => [ 'name' => 'RegisterVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterVolumeRequest', ], 'output' => [ 'shape' => 'RegisterVolumeResult', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'SetLoadBasedAutoScaling' => [ 'name' => 'SetLoadBasedAutoScaling', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetLoadBasedAutoScalingRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'SetPermission' => [ 'name' => 'SetPermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetPermissionRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'SetTimeBasedAutoScaling' => [ 'name' => 'SetTimeBasedAutoScaling', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetTimeBasedAutoScalingRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'StartInstance' => [ 'name' => 'StartInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartInstanceRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'StartStack' => [ 'name' => 'StartStack', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartStackRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'StopInstance' => [ 'name' => 'StopInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopInstanceRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'StopStack' => [ 'name' => 'StopStack', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopStackRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UnassignInstance' => [ 'name' => 'UnassignInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnassignInstanceRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UnassignVolume' => [ 'name' => 'UnassignVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnassignVolumeRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateApp' => [ 'name' => 'UpdateApp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateAppRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateElasticIp' => [ 'name' => 'UpdateElasticIp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateElasticIpRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateInstance' => [ 'name' => 'UpdateInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateInstanceRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateLayer' => [ 'name' => 'UpdateLayer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateLayerRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateMyUserProfile' => [ 'name' => 'UpdateMyUserProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateMyUserProfileRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], ], ], 'UpdateRdsDbInstance' => [ 'name' => 'UpdateRdsDbInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRdsDbInstanceRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateStack' => [ 'name' => 'UpdateStack', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateStackRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateUserProfile' => [ 'name' => 'UpdateUserProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateUserProfileRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateVolume' => [ 'name' => 'UpdateVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateVolumeRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], ], 'shapes' => [ 'AgentVersion' => [ 'type' => 'structure', 'members' => [ 'Version' => [ 'shape' => 'String', ], 'ConfigurationManager' => [ 'shape' => 'StackConfigurationManager', ], ], ], 'AgentVersions' => [ 'type' => 'list', 'member' => [ 'shape' => 'AgentVersion', ], ], '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', 'AwsFlowRubySettings', ], ], 'AppType' => [ 'type' => 'string', 'enum' => [ 'aws-flow-ruby', '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', ], 'AgentVersion' => [ 'shape' => 'String', ], ], ], 'CloneStackResult' => [ 'type' => 'structure', 'members' => [ 'StackId' => [ 'shape' => 'String', ], ], ], 'CloudWatchLogsConfiguration' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'LogStreams' => [ 'shape' => 'CloudWatchLogsLogStreams', ], ], ], 'CloudWatchLogsEncoding' => [ 'type' => 'string', 'enum' => [ 'ascii', 'big5', 'big5hkscs', 'cp037', 'cp424', 'cp437', 'cp500', 'cp720', 'cp737', 'cp775', 'cp850', 'cp852', 'cp855', 'cp856', 'cp857', 'cp858', 'cp860', 'cp861', 'cp862', 'cp863', 'cp864', 'cp865', 'cp866', 'cp869', 'cp874', 'cp875', 'cp932', 'cp949', 'cp950', 'cp1006', 'cp1026', 'cp1140', 'cp1250', 'cp1251', 'cp1252', 'cp1253', 'cp1254', 'cp1255', 'cp1256', 'cp1257', 'cp1258', 'euc_jp', 'euc_jis_2004', 'euc_jisx0213', 'euc_kr', 'gb2312', 'gbk', 'gb18030', 'hz', 'iso2022_jp', 'iso2022_jp_1', 'iso2022_jp_2', 'iso2022_jp_2004', 'iso2022_jp_3', 'iso2022_jp_ext', 'iso2022_kr', 'latin_1', 'iso8859_2', 'iso8859_3', 'iso8859_4', 'iso8859_5', 'iso8859_6', 'iso8859_7', 'iso8859_8', 'iso8859_9', 'iso8859_10', 'iso8859_13', 'iso8859_14', 'iso8859_15', 'iso8859_16', 'johab', 'koi8_r', 'koi8_u', 'mac_cyrillic', 'mac_greek', 'mac_iceland', 'mac_latin2', 'mac_roman', 'mac_turkish', 'ptcp154', 'shift_jis', 'shift_jis_2004', 'shift_jisx0213', 'utf_32', 'utf_32_be', 'utf_32_le', 'utf_16', 'utf_16_be', 'utf_16_le', 'utf_7', 'utf_8', 'utf_8_sig', ], ], 'CloudWatchLogsInitialPosition' => [ 'type' => 'string', 'enum' => [ 'start_of_file', 'end_of_file', ], ], 'CloudWatchLogsLogStream' => [ 'type' => 'structure', 'members' => [ 'LogGroupName' => [ 'shape' => 'String', ], 'DatetimeFormat' => [ 'shape' => 'String', ], 'TimeZone' => [ 'shape' => 'CloudWatchLogsTimeZone', ], 'File' => [ 'shape' => 'String', ], 'FileFingerprintLines' => [ 'shape' => 'String', ], 'MultiLineStartPattern' => [ 'shape' => 'String', ], 'InitialPosition' => [ 'shape' => 'CloudWatchLogsInitialPosition', ], 'Encoding' => [ 'shape' => 'CloudWatchLogsEncoding', ], 'BufferDuration' => [ 'shape' => 'Integer', ], 'BatchCount' => [ 'shape' => 'Integer', ], 'BatchSize' => [ 'shape' => 'Integer', ], ], ], 'CloudWatchLogsLogStreams' => [ 'type' => 'list', 'member' => [ 'shape' => 'CloudWatchLogsLogStream', ], ], 'CloudWatchLogsTimeZone' => [ 'type' => 'string', 'enum' => [ 'LOCAL', 'UTC', ], ], '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', ], 'LayerIds' => [ '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', ], 'AgentVersion' => [ 'shape' => 'String', ], 'Tenancy' => [ 'shape' => 'String', ], ], ], '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', ], 'CloudWatchLogsConfiguration' => [ 'shape' => 'CloudWatchLogsConfiguration', ], 'CustomInstanceProfileArn' => [ 'shape' => 'String', ], 'CustomJson' => [ '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', ], 'AgentVersion' => [ 'shape' => 'String', ], ], ], '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', 'configure', 'setup', 'deploy', 'rollback', 'start', 'stop', 'restart', 'undeploy', ], ], 'Deployments' => [ 'type' => 'list', 'member' => [ 'shape' => 'Deployment', ], ], 'DeregisterEcsClusterRequest' => [ 'type' => 'structure', 'required' => [ 'EcsClusterArn', ], 'members' => [ 'EcsClusterArn' => [ 'shape' => 'String', ], ], ], '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', ], ], ], 'DescribeAgentVersionsRequest' => [ 'type' => 'structure', 'members' => [ 'StackId' => [ 'shape' => 'String', ], 'ConfigurationManager' => [ 'shape' => 'StackConfigurationManager', ], ], ], 'DescribeAgentVersionsResult' => [ 'type' => 'structure', 'members' => [ 'AgentVersions' => [ 'shape' => 'AgentVersions', ], ], ], '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', ], ], ], 'DescribeEcsClustersRequest' => [ 'type' => 'structure', 'members' => [ 'EcsClusterArns' => [ 'shape' => 'Strings', ], 'StackId' => [ 'shape' => 'String', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], ], ], 'DescribeEcsClustersResult' => [ 'type' => 'structure', 'members' => [ 'EcsClusters' => [ 'shape' => 'EcsClusters', ], 'NextToken' => [ 'shape' => 'String', ], ], ], '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', ], ], ], 'DescribeOperatingSystemsResponse' => [ 'type' => 'structure', 'members' => [ 'OperatingSystems' => [ 'shape' => 'OperatingSystems', ], ], ], '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', ], ], ], 'EcsCluster' => [ 'type' => 'structure', 'members' => [ 'EcsClusterArn' => [ 'shape' => 'String', ], 'EcsClusterName' => [ 'shape' => 'String', ], 'StackId' => [ 'shape' => 'String', ], 'RegisteredAt' => [ 'shape' => 'DateTime', ], ], ], 'EcsClusters' => [ 'type' => 'list', 'member' => [ 'shape' => 'EcsCluster', ], ], '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' => [ 'AgentVersion' => [ 'shape' => 'String', ], 'AmiId' => [ 'shape' => 'String', ], 'Architecture' => [ 'shape' => 'Architecture', ], 'Arn' => [ 'shape' => 'String', ], 'AutoScalingType' => [ 'shape' => 'AutoScalingType', ], 'AvailabilityZone' => [ 'shape' => 'String', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappings', ], 'CreatedAt' => [ 'shape' => 'DateTime', ], 'EbsOptimized' => [ 'shape' => 'Boolean', ], 'Ec2InstanceId' => [ 'shape' => 'String', ], 'EcsClusterArn' => [ 'shape' => 'String', ], 'EcsContainerInstanceArn' => [ 'shape' => 'String', ], 'ElasticIp' => [ 'shape' => 'String', ], 'Hostname' => [ 'shape' => 'String', ], 'InfrastructureClass' => [ 'shape' => 'String', ], 'InstallUpdatesOnBoot' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'String', ], 'InstanceProfileArn' => [ 'shape' => 'String', ], 'InstanceType' => [ 'shape' => 'String', ], 'LastServiceErrorId' => [ 'shape' => 'String', ], 'LayerIds' => [ 'shape' => 'Strings', ], 'Os' => [ 'shape' => 'String', ], 'Platform' => [ 'shape' => 'String', ], 'PrivateDns' => [ 'shape' => 'String', ], 'PrivateIp' => [ 'shape' => 'String', ], 'PublicDns' => [ 'shape' => 'String', ], 'PublicIp' => [ 'shape' => 'String', ], 'RegisteredBy' => [ 'shape' => 'String', ], 'ReportedAgentVersion' => [ 'shape' => 'String', ], 'ReportedOs' => [ 'shape' => 'ReportedOs', ], 'RootDeviceType' => [ 'shape' => 'RootDeviceType', ], 'RootDeviceVolumeId' => [ 'shape' => 'String', ], 'SecurityGroupIds' => [ 'shape' => 'Strings', ], 'SshHostDsaKeyFingerprint' => [ 'shape' => 'String', ], 'SshHostRsaKeyFingerprint' => [ 'shape' => 'String', ], 'SshKeyName' => [ 'shape' => 'String', ], 'StackId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], 'SubnetId' => [ 'shape' => 'String', ], 'Tenancy' => [ 'shape' => 'String', ], 'VirtualizationType' => [ 'shape' => 'VirtualizationType', ], ], ], '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', ], 'StopFailed' => [ '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' => [ 'Arn' => [ 'shape' => 'String', ], 'StackId' => [ 'shape' => 'String', ], 'LayerId' => [ 'shape' => 'String', ], 'Type' => [ 'shape' => 'LayerType', ], 'Name' => [ 'shape' => 'String', ], 'Shortname' => [ 'shape' => 'String', ], 'Attributes' => [ 'shape' => 'LayerAttributes', ], 'CloudWatchLogsConfiguration' => [ 'shape' => 'CloudWatchLogsConfiguration', ], 'CustomInstanceProfileArn' => [ 'shape' => 'String', ], 'CustomJson' => [ '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' => [ 'EcsClusterArn', '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' => [ 'aws-flow-ruby', 'ecs-cluster', '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', ], ], ], 'ListTagsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsResult' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'Tags', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'LoadBasedAutoScalingConfiguration' => [ 'type' => 'structure', 'members' => [ 'LayerId' => [ 'shape' => 'String', ], 'Enable' => [ 'shape' => 'Boolean', ], 'UpScaling' => [ 'shape' => 'AutoScalingThresholds', ], 'DownScaling' => [ 'shape' => 'AutoScalingThresholds', ], ], ], 'LoadBasedAutoScalingConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadBasedAutoScalingConfiguration', ], ], 'MaxResults' => [ 'type' => 'integer', ], 'Minute' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'NextToken' => [ 'type' => 'string', ], 'OperatingSystem' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Id' => [ 'shape' => 'String', ], 'Type' => [ 'shape' => 'String', ], 'ConfigurationManagers' => [ 'shape' => 'OperatingSystemConfigurationManagers', ], 'ReportedName' => [ 'shape' => 'String', ], 'ReportedVersion' => [ 'shape' => 'String', ], 'Supported' => [ 'shape' => 'Boolean', ], ], ], 'OperatingSystemConfigurationManager' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Version' => [ 'shape' => 'String', ], ], ], 'OperatingSystemConfigurationManagers' => [ 'type' => 'list', 'member' => [ 'shape' => 'OperatingSystemConfigurationManager', ], ], 'OperatingSystems' => [ 'type' => 'list', 'member' => [ 'shape' => 'OperatingSystem', ], ], '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', ], ], ], 'RegisterEcsClusterRequest' => [ 'type' => 'structure', 'required' => [ 'EcsClusterArn', 'StackId', ], 'members' => [ 'EcsClusterArn' => [ 'shape' => 'String', ], 'StackId' => [ 'shape' => 'String', ], ], ], 'RegisterEcsClusterResult' => [ 'type' => 'structure', 'members' => [ 'EcsClusterArn' => [ 'shape' => 'String', ], ], ], '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', ], ], ], 'ResourceArn' => [ 'type' => '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', ], 'AgentVersion' => [ 'shape' => 'String', ], ], ], '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', ], 'Force' => [ 'shape' => 'Boolean', ], ], ], 'StopStackRequest' => [ 'type' => 'structure', 'required' => [ 'StackId', ], 'members' => [ 'StackId' => [ 'shape' => 'String', ], ], ], 'String' => [ 'type' => 'string', ], 'Strings' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'Switch' => [ 'type' => 'string', ], 'TagKey' => [ 'type' => 'string', ], 'TagKeys' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Tags', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'TagValue' => [ 'type' => 'string', ], 'Tags' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], ], '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', ], ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagKeys', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], 'TagKeys' => [ 'shape' => 'TagKeys', ], ], ], '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', ], 'AgentVersion' => [ 'shape' => 'String', ], ], ], 'UpdateLayerRequest' => [ 'type' => 'structure', 'required' => [ 'LayerId', ], 'members' => [ 'LayerId' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], 'Shortname' => [ 'shape' => 'String', ], 'Attributes' => [ 'shape' => 'LayerAttributes', ], 'CloudWatchLogsConfiguration' => [ 'shape' => 'CloudWatchLogsConfiguration', ], 'CustomInstanceProfileArn' => [ 'shape' => 'String', ], 'CustomJson' => [ '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', ], 'AgentVersion' => [ 'shape' => 'String', ], ], ], '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', 'box' => true, 'max' => 1440, 'min' => 60, ], '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', ], 'Encrypted' => [ 'shape' => 'Boolean', ], ], ], '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', ], 'Encrypted' => [ 'shape' => 'Boolean', ], ], ], '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/Aws/data/opsworks/2013-02-18/paginators-1.json.php b/lib/aws/Aws/data/opsworks/2013-02-18/paginators-1.json.php new file mode 100644 index 0000000..6a654bc --- /dev/null +++ b/lib/aws/Aws/data/opsworks/2013-02-18/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/opsworks/2013-02-18/paginators-1.json +return [ 'pagination' => [ 'DescribeApps' => [ 'result_key' => 'Apps', ], 'DescribeCommands' => [ 'result_key' => 'Commands', ], 'DescribeDeployments' => [ 'result_key' => 'Deployments', ], 'DescribeEcsClusters' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'EcsClusters', ], '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/Aws/data/opsworks/2013-02-18/smoke.json.php b/lib/aws/Aws/data/opsworks/2013-02-18/smoke.json.php new file mode 100644 index 0000000..9096327 --- /dev/null +++ b/lib/aws/Aws/data/opsworks/2013-02-18/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/opsworks/2013-02-18/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeStacks', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeLayers', 'input' => [ 'StackId' => 'fake_stack', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/opsworks/2013-02-18/waiters-2.json.php b/lib/aws/Aws/data/opsworks/2013-02-18/waiters-2.json.php new file mode 100644 index 0000000..93d72ad --- /dev/null +++ b/lib/aws/Aws/data/opsworks/2013-02-18/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/opsworks/2013-02-18/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'AppExists' => [ 'delay' => 1, 'operation' => 'DescribeApps', 'maxAttempts' => 40, 'acceptors' => [ [ 'expected' => 200, 'matcher' => 'status', 'state' => 'success', ], [ 'matcher' => 'status', 'expected' => 400, 'state' => 'failure', ], ], ], 'DeploymentSuccessful' => [ 'delay' => 15, 'operation' => 'DescribeDeployments', 'maxAttempts' => 40, 'description' => 'Wait until a deployment has completed successfully.', 'acceptors' => [ [ 'expected' => 'successful', 'matcher' => 'pathAll', 'state' => 'success', 'argument' => 'Deployments[].Status', ], [ 'expected' => 'failed', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'Deployments[].Status', ], ], ], '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', ], [ 'expected' => 'stop_failed', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'Instances[].Status', ], ], ], 'InstanceRegistered' => [ 'delay' => 15, 'operation' => 'DescribeInstances', 'maxAttempts' => 40, 'description' => 'Wait until OpsWorks instance is registered.', 'acceptors' => [ [ 'expected' => 'registered', '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' => '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', ], [ 'expected' => 'stop_failed', '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' => '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', ], [ 'expected' => 'stop_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/Aws/data/opsworkscm/2016-11-01/api-2.json.php b/lib/aws/Aws/data/opsworkscm/2016-11-01/api-2.json.php new file mode 100644 index 0000000..d7972a8 --- /dev/null +++ b/lib/aws/Aws/data/opsworkscm/2016-11-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/opsworkscm/2016-11-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-11-01', 'endpointPrefix' => 'opsworks-cm', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'OpsWorksCM', 'serviceFullName' => 'AWS OpsWorks for Chef Automate', 'serviceId' => 'OpsWorksCM', 'signatureVersion' => 'v4', 'signingName' => 'opsworks-cm', 'targetPrefix' => 'OpsWorksCM_V2016_11_01', 'uid' => 'opsworkscm-2016-11-01', ], 'operations' => [ 'AssociateNode' => [ 'name' => 'AssociateNode', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateNodeRequest', ], 'output' => [ 'shape' => 'AssociateNodeResponse', ], 'errors' => [ [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'CreateBackup' => [ 'name' => 'CreateBackup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateBackupRequest', ], 'output' => [ 'shape' => 'CreateBackupResponse', ], 'errors' => [ [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'CreateServer' => [ 'name' => 'CreateServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateServerRequest', ], 'output' => [ 'shape' => 'CreateServerResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'DeleteBackup' => [ 'name' => 'DeleteBackup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteBackupRequest', ], 'output' => [ 'shape' => 'DeleteBackupResponse', ], 'errors' => [ [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'DeleteServer' => [ 'name' => 'DeleteServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteServerRequest', ], 'output' => [ 'shape' => 'DeleteServerResponse', ], 'errors' => [ [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'DescribeAccountAttributes' => [ 'name' => 'DescribeAccountAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAccountAttributesRequest', ], 'output' => [ 'shape' => 'DescribeAccountAttributesResponse', ], ], 'DescribeBackups' => [ 'name' => 'DescribeBackups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeBackupsRequest', ], 'output' => [ 'shape' => 'DescribeBackupsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'DescribeEvents' => [ 'name' => 'DescribeEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEventsRequest', ], 'output' => [ 'shape' => 'DescribeEventsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeNodeAssociationStatus' => [ 'name' => 'DescribeNodeAssociationStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNodeAssociationStatusRequest', ], 'output' => [ 'shape' => 'DescribeNodeAssociationStatusResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'DescribeServers' => [ 'name' => 'DescribeServers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeServersRequest', ], 'output' => [ 'shape' => 'DescribeServersResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'DisassociateNode' => [ 'name' => 'DisassociateNode', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateNodeRequest', ], 'output' => [ 'shape' => 'DisassociateNodeResponse', ], 'errors' => [ [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'ExportServerEngineAttribute' => [ 'name' => 'ExportServerEngineAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExportServerEngineAttributeRequest', ], 'output' => [ 'shape' => 'ExportServerEngineAttributeResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidStateException', ], ], ], 'RestoreServer' => [ 'name' => 'RestoreServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreServerRequest', ], 'output' => [ 'shape' => 'RestoreServerResponse', ], 'errors' => [ [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'StartMaintenance' => [ 'name' => 'StartMaintenance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartMaintenanceRequest', ], 'output' => [ 'shape' => 'StartMaintenanceResponse', ], 'errors' => [ [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'UpdateServer' => [ 'name' => 'UpdateServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateServerRequest', ], 'output' => [ 'shape' => 'UpdateServerResponse', ], 'errors' => [ [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], 'UpdateServerEngineAttributes' => [ 'name' => 'UpdateServerEngineAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateServerEngineAttributesRequest', ], 'output' => [ 'shape' => 'UpdateServerEngineAttributesResponse', ], 'errors' => [ [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], ], ], ], 'shapes' => [ 'AccountAttribute' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Maximum' => [ 'shape' => 'Integer', ], 'Used' => [ 'shape' => 'Integer', ], ], ], 'AccountAttributes' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountAttribute', ], ], 'AssociateNodeRequest' => [ 'type' => 'structure', 'required' => [ 'ServerName', 'NodeName', 'EngineAttributes', ], 'members' => [ 'ServerName' => [ 'shape' => 'ServerName', ], 'NodeName' => [ 'shape' => 'NodeName', ], 'EngineAttributes' => [ 'shape' => 'EngineAttributes', ], ], ], 'AssociateNodeResponse' => [ 'type' => 'structure', 'members' => [ 'NodeAssociationStatusToken' => [ 'shape' => 'NodeAssociationStatusToken', ], ], ], 'AttributeName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[A-Z][A-Z0-9_]*', ], 'AttributeValue' => [ 'type' => 'string', ], 'Backup' => [ 'type' => 'structure', 'members' => [ 'BackupArn' => [ 'shape' => 'String', ], 'BackupId' => [ 'shape' => 'BackupId', ], 'BackupType' => [ 'shape' => 'BackupType', ], 'CreatedAt' => [ 'shape' => 'Timestamp', ], 'Description' => [ 'shape' => 'String', ], 'Engine' => [ 'shape' => 'String', ], 'EngineModel' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'InstanceProfileArn' => [ 'shape' => 'String', ], 'InstanceType' => [ 'shape' => 'String', ], 'KeyPair' => [ 'shape' => 'String', ], 'PreferredBackupWindow' => [ 'shape' => 'TimeWindowDefinition', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'TimeWindowDefinition', ], 'S3DataSize' => [ 'shape' => 'Integer', 'deprecated' => true, ], 'S3DataUrl' => [ 'shape' => 'String', 'deprecated' => true, ], 'S3LogUrl' => [ 'shape' => 'String', ], 'SecurityGroupIds' => [ 'shape' => 'Strings', ], 'ServerName' => [ 'shape' => 'ServerName', ], 'ServiceRoleArn' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'BackupStatus', ], 'StatusDescription' => [ 'shape' => 'String', ], 'SubnetIds' => [ 'shape' => 'Strings', ], 'ToolsVersion' => [ 'shape' => 'String', ], 'UserArn' => [ 'shape' => 'String', ], ], ], 'BackupId' => [ 'type' => 'string', 'max' => 79, ], 'BackupRetentionCountDefinition' => [ 'type' => 'integer', 'min' => 1, ], 'BackupStatus' => [ 'type' => 'string', 'enum' => [ 'IN_PROGRESS', 'OK', 'FAILED', 'DELETING', ], ], 'BackupType' => [ 'type' => 'string', 'enum' => [ 'AUTOMATED', 'MANUAL', ], ], 'Backups' => [ 'type' => 'list', 'member' => [ 'shape' => 'Backup', ], ], 'Boolean' => [ 'type' => 'boolean', ], 'CreateBackupRequest' => [ 'type' => 'structure', 'required' => [ 'ServerName', ], 'members' => [ 'ServerName' => [ 'shape' => 'ServerName', ], 'Description' => [ 'shape' => 'String', ], ], ], 'CreateBackupResponse' => [ 'type' => 'structure', 'members' => [ 'Backup' => [ 'shape' => 'Backup', ], ], ], 'CreateServerRequest' => [ 'type' => 'structure', 'required' => [ 'ServerName', 'InstanceProfileArn', 'InstanceType', 'ServiceRoleArn', ], 'members' => [ 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', ], 'DisableAutomatedBackup' => [ 'shape' => 'Boolean', ], 'Engine' => [ 'shape' => 'String', ], 'EngineModel' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'EngineAttributes' => [ 'shape' => 'EngineAttributes', ], 'BackupRetentionCount' => [ 'shape' => 'BackupRetentionCountDefinition', ], 'ServerName' => [ 'shape' => 'ServerName', ], 'InstanceProfileArn' => [ 'shape' => 'InstanceProfileArn', ], 'InstanceType' => [ 'shape' => 'String', ], 'KeyPair' => [ 'shape' => 'KeyPair', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'TimeWindowDefinition', ], 'PreferredBackupWindow' => [ 'shape' => 'TimeWindowDefinition', ], 'SecurityGroupIds' => [ 'shape' => 'Strings', ], 'ServiceRoleArn' => [ 'shape' => 'ServiceRoleArn', ], 'SubnetIds' => [ 'shape' => 'Strings', ], 'BackupId' => [ 'shape' => 'BackupId', ], ], ], 'CreateServerResponse' => [ 'type' => 'structure', 'members' => [ 'Server' => [ 'shape' => 'Server', ], ], ], 'DeleteBackupRequest' => [ 'type' => 'structure', 'required' => [ 'BackupId', ], 'members' => [ 'BackupId' => [ 'shape' => 'BackupId', ], ], ], 'DeleteBackupResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteServerRequest' => [ 'type' => 'structure', 'required' => [ 'ServerName', ], 'members' => [ 'ServerName' => [ 'shape' => 'ServerName', ], ], ], 'DeleteServerResponse' => [ 'type' => 'structure', 'members' => [], ], 'DescribeAccountAttributesRequest' => [ 'type' => 'structure', 'members' => [], ], 'DescribeAccountAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'AccountAttributes', ], ], ], 'DescribeBackupsRequest' => [ 'type' => 'structure', 'members' => [ 'BackupId' => [ 'shape' => 'BackupId', ], 'ServerName' => [ 'shape' => 'ServerName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'DescribeBackupsResponse' => [ 'type' => 'structure', 'members' => [ 'Backups' => [ 'shape' => 'Backups', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeEventsRequest' => [ 'type' => 'structure', 'required' => [ 'ServerName', ], 'members' => [ 'ServerName' => [ 'shape' => 'ServerName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'DescribeEventsResponse' => [ 'type' => 'structure', 'members' => [ 'ServerEvents' => [ 'shape' => 'ServerEvents', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeNodeAssociationStatusRequest' => [ 'type' => 'structure', 'required' => [ 'NodeAssociationStatusToken', 'ServerName', ], 'members' => [ 'NodeAssociationStatusToken' => [ 'shape' => 'NodeAssociationStatusToken', ], 'ServerName' => [ 'shape' => 'ServerName', ], ], ], 'DescribeNodeAssociationStatusResponse' => [ 'type' => 'structure', 'members' => [ 'NodeAssociationStatus' => [ 'shape' => 'NodeAssociationStatus', ], 'EngineAttributes' => [ 'shape' => 'EngineAttributes', ], ], ], 'DescribeServersRequest' => [ 'type' => 'structure', 'members' => [ 'ServerName' => [ 'shape' => 'ServerName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'DescribeServersResponse' => [ 'type' => 'structure', 'members' => [ 'Servers' => [ 'shape' => 'Servers', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DisassociateNodeRequest' => [ 'type' => 'structure', 'required' => [ 'ServerName', 'NodeName', ], 'members' => [ 'ServerName' => [ 'shape' => 'ServerName', ], 'NodeName' => [ 'shape' => 'NodeName', ], 'EngineAttributes' => [ 'shape' => 'EngineAttributes', ], ], ], 'DisassociateNodeResponse' => [ 'type' => 'structure', 'members' => [ 'NodeAssociationStatusToken' => [ 'shape' => 'NodeAssociationStatusToken', ], ], ], 'EngineAttribute' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'EngineAttributeName', ], 'Value' => [ 'shape' => 'EngineAttributeValue', ], ], ], 'EngineAttributeName' => [ 'type' => 'string', ], 'EngineAttributeValue' => [ 'type' => 'string', 'sensitive' => true, ], 'EngineAttributes' => [ 'type' => 'list', 'member' => [ 'shape' => 'EngineAttribute', ], ], 'ExportServerEngineAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'ExportAttributeName', 'ServerName', ], 'members' => [ 'ExportAttributeName' => [ 'shape' => 'String', ], 'ServerName' => [ 'shape' => 'ServerName', ], 'InputAttributes' => [ 'shape' => 'EngineAttributes', ], ], ], 'ExportServerEngineAttributeResponse' => [ 'type' => 'structure', 'members' => [ 'EngineAttribute' => [ 'shape' => 'EngineAttribute', ], 'ServerName' => [ 'shape' => 'ServerName', ], ], ], 'InstanceProfileArn' => [ 'type' => 'string', 'pattern' => 'arn:aws:iam::[0-9]{12}:instance-profile/.*', ], 'Integer' => [ 'type' => 'integer', ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidStateException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'KeyPair' => [ 'type' => 'string', ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'MaintenanceStatus' => [ 'type' => 'string', 'enum' => [ 'SUCCESS', 'FAILED', ], ], 'MaxResults' => [ 'type' => 'integer', 'min' => 1, ], 'NextToken' => [ 'type' => 'string', ], 'NodeAssociationStatus' => [ 'type' => 'string', 'enum' => [ 'SUCCESS', 'FAILED', 'IN_PROGRESS', ], ], 'NodeAssociationStatusToken' => [ 'type' => 'string', ], 'NodeName' => [ 'type' => 'string', 'pattern' => '^[\\-\\p{Alnum}_:.]+$', ], 'ResourceAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'RestoreServerRequest' => [ 'type' => 'structure', 'required' => [ 'BackupId', 'ServerName', ], 'members' => [ 'BackupId' => [ 'shape' => 'BackupId', ], 'ServerName' => [ 'shape' => 'ServerName', ], 'InstanceType' => [ 'shape' => 'String', ], 'KeyPair' => [ 'shape' => 'KeyPair', ], ], ], 'RestoreServerResponse' => [ 'type' => 'structure', 'members' => [], ], 'Server' => [ 'type' => 'structure', 'members' => [ 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', ], 'BackupRetentionCount' => [ 'shape' => 'Integer', ], 'ServerName' => [ 'shape' => 'String', ], 'CreatedAt' => [ 'shape' => 'Timestamp', ], 'CloudFormationStackArn' => [ 'shape' => 'String', ], 'DisableAutomatedBackup' => [ 'shape' => 'Boolean', ], 'Endpoint' => [ 'shape' => 'String', ], 'Engine' => [ 'shape' => 'String', ], 'EngineModel' => [ 'shape' => 'String', ], 'EngineAttributes' => [ 'shape' => 'EngineAttributes', ], 'EngineVersion' => [ 'shape' => 'String', ], 'InstanceProfileArn' => [ 'shape' => 'String', ], 'InstanceType' => [ 'shape' => 'String', ], 'KeyPair' => [ 'shape' => 'String', ], 'MaintenanceStatus' => [ 'shape' => 'MaintenanceStatus', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'TimeWindowDefinition', ], 'PreferredBackupWindow' => [ 'shape' => 'TimeWindowDefinition', ], 'SecurityGroupIds' => [ 'shape' => 'Strings', ], 'ServiceRoleArn' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'ServerStatus', ], 'StatusReason' => [ 'shape' => 'String', ], 'SubnetIds' => [ 'shape' => 'Strings', ], 'ServerArn' => [ 'shape' => 'String', ], ], ], 'ServerEvent' => [ 'type' => 'structure', 'members' => [ 'CreatedAt' => [ 'shape' => 'Timestamp', ], 'ServerName' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], 'LogUrl' => [ 'shape' => 'String', ], ], ], 'ServerEvents' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServerEvent', ], ], 'ServerName' => [ 'type' => 'string', 'max' => 40, 'min' => 1, 'pattern' => '[a-zA-Z][a-zA-Z0-9\\-]*', ], 'ServerStatus' => [ 'type' => 'string', 'enum' => [ 'BACKING_UP', 'CONNECTION_LOST', 'CREATING', 'DELETING', 'MODIFYING', 'FAILED', 'HEALTHY', 'RUNNING', 'RESTORING', 'SETUP', 'UNDER_MAINTENANCE', 'UNHEALTHY', 'TERMINATED', ], ], 'Servers' => [ 'type' => 'list', 'member' => [ 'shape' => 'Server', ], ], 'ServiceRoleArn' => [ 'type' => 'string', 'pattern' => 'arn:aws:iam::[0-9]{12}:role/.*', ], 'StartMaintenanceRequest' => [ 'type' => 'structure', 'required' => [ 'ServerName', ], 'members' => [ 'ServerName' => [ 'shape' => 'ServerName', ], 'EngineAttributes' => [ 'shape' => 'EngineAttributes', ], ], ], 'StartMaintenanceResponse' => [ 'type' => 'structure', 'members' => [ 'Server' => [ 'shape' => 'Server', ], ], ], 'String' => [ 'type' => 'string', ], 'Strings' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'TimeWindowDefinition' => [ 'type' => 'string', 'pattern' => '^((Mon|Tue|Wed|Thu|Fri|Sat|Sun):)?([0-1][0-9]|2[0-3]):[0-5][0-9]$', ], 'Timestamp' => [ 'type' => 'timestamp', ], 'UpdateServerEngineAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'ServerName', 'AttributeName', ], 'members' => [ 'ServerName' => [ 'shape' => 'ServerName', ], 'AttributeName' => [ 'shape' => 'AttributeName', ], 'AttributeValue' => [ 'shape' => 'AttributeValue', ], ], ], 'UpdateServerEngineAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Server' => [ 'shape' => 'Server', ], ], ], 'UpdateServerRequest' => [ 'type' => 'structure', 'required' => [ 'ServerName', ], 'members' => [ 'DisableAutomatedBackup' => [ 'shape' => 'Boolean', ], 'BackupRetentionCount' => [ 'shape' => 'Integer', ], 'ServerName' => [ 'shape' => 'ServerName', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'TimeWindowDefinition', ], 'PreferredBackupWindow' => [ 'shape' => 'TimeWindowDefinition', ], ], ], 'UpdateServerResponse' => [ 'type' => 'structure', 'members' => [ 'Server' => [ 'shape' => 'Server', ], ], ], 'ValidationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], ],]; diff --git a/lib/aws/Aws/data/opsworkscm/2016-11-01/paginators-1.json.php b/lib/aws/Aws/data/opsworkscm/2016-11-01/paginators-1.json.php new file mode 100644 index 0000000..05e613c --- /dev/null +++ b/lib/aws/Aws/data/opsworkscm/2016-11-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/opsworkscm/2016-11-01/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/opsworkscm/2016-11-01/waiters-2.json.php b/lib/aws/Aws/data/opsworkscm/2016-11-01/waiters-2.json.php new file mode 100644 index 0000000..95628a8 --- /dev/null +++ b/lib/aws/Aws/data/opsworkscm/2016-11-01/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/opsworkscm/2016-11-01/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'NodeAssociated' => [ 'delay' => 15, 'maxAttempts' => 15, 'operation' => 'DescribeNodeAssociationStatus', 'description' => 'Wait until node is associated or disassociated.', 'acceptors' => [ [ 'expected' => 'SUCCESS', 'state' => 'success', 'matcher' => 'path', 'argument' => 'NodeAssociationStatus', ], [ 'expected' => 'FAILED', 'state' => 'failure', 'matcher' => 'path', 'argument' => 'NodeAssociationStatus', ], ], ], ],]; diff --git a/lib/aws/Aws/data/organizations/2016-11-28/api-2.json.php b/lib/aws/Aws/data/organizations/2016-11-28/api-2.json.php new file mode 100644 index 0000000..8c4232f --- /dev/null +++ b/lib/aws/Aws/data/organizations/2016-11-28/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/organizations/2016-11-28/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-11-28', 'endpointPrefix' => 'organizations', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'Organizations', 'serviceFullName' => 'AWS Organizations', 'serviceId' => 'Organizations', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWSOrganizationsV20161128', 'uid' => 'organizations-2016-11-28', ], 'operations' => [ 'AcceptHandshake' => [ 'name' => 'AcceptHandshake', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptHandshakeRequest', ], 'output' => [ 'shape' => 'AcceptHandshakeResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'HandshakeConstraintViolationException', ], [ 'shape' => 'HandshakeNotFoundException', ], [ 'shape' => 'InvalidHandshakeTransitionException', ], [ 'shape' => 'HandshakeAlreadyInStateException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'AccessDeniedForDependencyException', ], ], ], 'AttachPolicy' => [ 'name' => 'AttachPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachPolicyRequest', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ConstraintViolationException', ], [ 'shape' => 'DuplicatePolicyAttachmentException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'PolicyNotFoundException', ], [ 'shape' => 'PolicyTypeNotEnabledException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TargetNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CancelHandshake' => [ 'name' => 'CancelHandshake', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelHandshakeRequest', ], 'output' => [ 'shape' => 'CancelHandshakeResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'HandshakeNotFoundException', ], [ 'shape' => 'InvalidHandshakeTransitionException', ], [ 'shape' => 'HandshakeAlreadyInStateException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateAccount' => [ 'name' => 'CreateAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAccountRequest', ], 'output' => [ 'shape' => 'CreateAccountResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ConstraintViolationException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'FinalizingOrganizationException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateOrganization' => [ 'name' => 'CreateOrganization', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateOrganizationRequest', ], 'output' => [ 'shape' => 'CreateOrganizationResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AlreadyInOrganizationException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ConstraintViolationException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'AccessDeniedForDependencyException', ], ], ], 'CreateOrganizationalUnit' => [ 'name' => 'CreateOrganizationalUnit', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateOrganizationalUnitRequest', ], 'output' => [ 'shape' => 'CreateOrganizationalUnitResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ConstraintViolationException', ], [ 'shape' => 'DuplicateOrganizationalUnitException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ParentNotFoundException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreatePolicy' => [ 'name' => 'CreatePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePolicyRequest', ], 'output' => [ 'shape' => 'CreatePolicyResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ConstraintViolationException', ], [ 'shape' => 'DuplicatePolicyException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'PolicyTypeNotAvailableForOrganizationException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeclineHandshake' => [ 'name' => 'DeclineHandshake', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeclineHandshakeRequest', ], 'output' => [ 'shape' => 'DeclineHandshakeResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'HandshakeNotFoundException', ], [ 'shape' => 'InvalidHandshakeTransitionException', ], [ 'shape' => 'HandshakeAlreadyInStateException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteOrganization' => [ 'name' => 'DeleteOrganization', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'OrganizationNotEmptyException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteOrganizationalUnit' => [ 'name' => 'DeleteOrganizationalUnit', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteOrganizationalUnitRequest', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'OrganizationalUnitNotEmptyException', ], [ 'shape' => 'OrganizationalUnitNotFoundException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeletePolicy' => [ 'name' => 'DeletePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePolicyRequest', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'PolicyInUseException', ], [ 'shape' => 'PolicyNotFoundException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeAccount' => [ 'name' => 'DescribeAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAccountRequest', ], 'output' => [ 'shape' => 'DescribeAccountResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountNotFoundException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeCreateAccountStatus' => [ 'name' => 'DescribeCreateAccountStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCreateAccountStatusRequest', ], 'output' => [ 'shape' => 'DescribeCreateAccountStatusResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'CreateAccountStatusNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeHandshake' => [ 'name' => 'DescribeHandshake', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHandshakeRequest', ], 'output' => [ 'shape' => 'DescribeHandshakeResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'HandshakeNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeOrganization' => [ 'name' => 'DescribeOrganization', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'DescribeOrganizationResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeOrganizationalUnit' => [ 'name' => 'DescribeOrganizationalUnit', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeOrganizationalUnitRequest', ], 'output' => [ 'shape' => 'DescribeOrganizationalUnitResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'OrganizationalUnitNotFoundException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribePolicy' => [ 'name' => 'DescribePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePolicyRequest', ], 'output' => [ 'shape' => 'DescribePolicyResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'PolicyNotFoundException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DetachPolicy' => [ 'name' => 'DetachPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachPolicyRequest', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ConstraintViolationException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'PolicyNotAttachedException', ], [ 'shape' => 'PolicyNotFoundException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TargetNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DisableAWSServiceAccess' => [ 'name' => 'DisableAWSServiceAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableAWSServiceAccessRequest', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ConstraintViolationException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DisablePolicyType' => [ 'name' => 'DisablePolicyType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisablePolicyTypeRequest', ], 'output' => [ 'shape' => 'DisablePolicyTypeResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ConstraintViolationException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'PolicyTypeNotEnabledException', ], [ 'shape' => 'RootNotFoundException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'EnableAWSServiceAccess' => [ 'name' => 'EnableAWSServiceAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableAWSServiceAccessRequest', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ConstraintViolationException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'EnableAllFeatures' => [ 'name' => 'EnableAllFeatures', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableAllFeaturesRequest', ], 'output' => [ 'shape' => 'EnableAllFeaturesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'HandshakeConstraintViolationException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'EnablePolicyType' => [ 'name' => 'EnablePolicyType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnablePolicyTypeRequest', ], 'output' => [ 'shape' => 'EnablePolicyTypeResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ConstraintViolationException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'PolicyTypeAlreadyEnabledException', ], [ 'shape' => 'RootNotFoundException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'PolicyTypeNotAvailableForOrganizationException', ], ], ], 'InviteAccountToOrganization' => [ 'name' => 'InviteAccountToOrganization', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'InviteAccountToOrganizationRequest', ], 'output' => [ 'shape' => 'InviteAccountToOrganizationResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'AccountOwnerNotVerifiedException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'HandshakeConstraintViolationException', ], [ 'shape' => 'DuplicateHandshakeException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'FinalizingOrganizationException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'LeaveOrganization' => [ 'name' => 'LeaveOrganization', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountNotFoundException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ConstraintViolationException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'MasterCannotLeaveOrganizationException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListAWSServiceAccessForOrganization' => [ 'name' => 'ListAWSServiceAccessForOrganization', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAWSServiceAccessForOrganizationRequest', ], 'output' => [ 'shape' => 'ListAWSServiceAccessForOrganizationResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ConstraintViolationException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListAccounts' => [ 'name' => 'ListAccounts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAccountsRequest', ], 'output' => [ 'shape' => 'ListAccountsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListAccountsForParent' => [ 'name' => 'ListAccountsForParent', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAccountsForParentRequest', ], 'output' => [ 'shape' => 'ListAccountsForParentResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ParentNotFoundException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListChildren' => [ 'name' => 'ListChildren', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListChildrenRequest', ], 'output' => [ 'shape' => 'ListChildrenResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ParentNotFoundException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListCreateAccountStatus' => [ 'name' => 'ListCreateAccountStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListCreateAccountStatusRequest', ], 'output' => [ 'shape' => 'ListCreateAccountStatusResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListHandshakesForAccount' => [ 'name' => 'ListHandshakesForAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListHandshakesForAccountRequest', ], 'output' => [ 'shape' => 'ListHandshakesForAccountResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListHandshakesForOrganization' => [ 'name' => 'ListHandshakesForOrganization', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListHandshakesForOrganizationRequest', ], 'output' => [ 'shape' => 'ListHandshakesForOrganizationResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListOrganizationalUnitsForParent' => [ 'name' => 'ListOrganizationalUnitsForParent', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListOrganizationalUnitsForParentRequest', ], 'output' => [ 'shape' => 'ListOrganizationalUnitsForParentResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ParentNotFoundException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListParents' => [ 'name' => 'ListParents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListParentsRequest', ], 'output' => [ 'shape' => 'ListParentsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ChildNotFoundException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListPolicies' => [ 'name' => 'ListPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListPoliciesRequest', ], 'output' => [ 'shape' => 'ListPoliciesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListPoliciesForTarget' => [ 'name' => 'ListPoliciesForTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListPoliciesForTargetRequest', ], 'output' => [ 'shape' => 'ListPoliciesForTargetResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TargetNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListRoots' => [ 'name' => 'ListRoots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRootsRequest', ], 'output' => [ 'shape' => 'ListRootsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListTargetsForPolicy' => [ 'name' => 'ListTargetsForPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTargetsForPolicyRequest', ], 'output' => [ 'shape' => 'ListTargetsForPolicyResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'PolicyNotFoundException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'MoveAccount' => [ 'name' => 'MoveAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'MoveAccountRequest', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'SourceParentNotFoundException', ], [ 'shape' => 'DestinationParentNotFoundException', ], [ 'shape' => 'DuplicateAccountException', ], [ 'shape' => 'AccountNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ServiceException', ], ], ], 'RemoveAccountFromOrganization' => [ 'name' => 'RemoveAccountFromOrganization', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveAccountFromOrganizationRequest', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AccountNotFoundException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ConstraintViolationException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'MasterCannotLeaveOrganizationException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateOrganizationalUnit' => [ 'name' => 'UpdateOrganizationalUnit', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateOrganizationalUnitRequest', ], 'output' => [ 'shape' => 'UpdateOrganizationalUnitResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'DuplicateOrganizationalUnitException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'OrganizationalUnitNotFoundException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdatePolicy' => [ 'name' => 'UpdatePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdatePolicyRequest', ], 'output' => [ 'shape' => 'UpdatePolicyResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'AWSOrganizationsNotInUseException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ConstraintViolationException', ], [ 'shape' => 'DuplicatePolicyException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'PolicyNotFoundException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], ], 'shapes' => [ 'AWSOrganizationsNotInUseException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'AcceptHandshakeRequest' => [ 'type' => 'structure', 'required' => [ 'HandshakeId', ], 'members' => [ 'HandshakeId' => [ 'shape' => 'HandshakeId', ], ], ], 'AcceptHandshakeResponse' => [ 'type' => 'structure', 'members' => [ 'Handshake' => [ 'shape' => 'Handshake', ], ], ], 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'AccessDeniedForDependencyException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'Reason' => [ 'shape' => 'AccessDeniedForDependencyExceptionReason', ], ], 'exception' => true, ], 'AccessDeniedForDependencyExceptionReason' => [ 'type' => 'string', 'enum' => [ 'ACCESS_DENIED_DURING_CREATE_SERVICE_LINKED_ROLE', ], ], 'Account' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'AccountId', ], 'Arn' => [ 'shape' => 'AccountArn', ], 'Email' => [ 'shape' => 'Email', ], 'Name' => [ 'shape' => 'AccountName', ], 'Status' => [ 'shape' => 'AccountStatus', ], 'JoinedMethod' => [ 'shape' => 'AccountJoinedMethod', ], 'JoinedTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'AccountArn' => [ 'type' => 'string', 'pattern' => '^arn:aws:organizations::\\d{12}:account\\/o-[a-z0-9]{10,32}\\/\\d{12}', ], 'AccountId' => [ 'type' => 'string', 'pattern' => '^\\d{12}$', ], 'AccountJoinedMethod' => [ 'type' => 'string', 'enum' => [ 'INVITED', 'CREATED', ], ], 'AccountName' => [ 'type' => 'string', 'max' => 50, 'min' => 1, 'pattern' => '[\\u0020-\\u007E]+', 'sensitive' => true, ], 'AccountNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'AccountOwnerNotVerifiedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'AccountStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'SUSPENDED', ], ], 'Accounts' => [ 'type' => 'list', 'member' => [ 'shape' => 'Account', ], ], 'ActionType' => [ 'type' => 'string', 'enum' => [ 'INVITE', 'ENABLE_ALL_FEATURES', 'APPROVE_ALL_FEATURES', 'ADD_ORGANIZATIONS_SERVICE_LINKED_ROLE', ], ], 'AlreadyInOrganizationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'AttachPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'PolicyId', 'TargetId', ], 'members' => [ 'PolicyId' => [ 'shape' => 'PolicyId', ], 'TargetId' => [ 'shape' => 'PolicyTargetId', ], ], ], 'AwsManagedPolicy' => [ 'type' => 'boolean', ], 'CancelHandshakeRequest' => [ 'type' => 'structure', 'required' => [ 'HandshakeId', ], 'members' => [ 'HandshakeId' => [ 'shape' => 'HandshakeId', ], ], ], 'CancelHandshakeResponse' => [ 'type' => 'structure', 'members' => [ 'Handshake' => [ 'shape' => 'Handshake', ], ], ], 'Child' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ChildId', ], 'Type' => [ 'shape' => 'ChildType', ], ], ], 'ChildId' => [ 'type' => 'string', 'pattern' => '^(\\d{12})|(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$', ], 'ChildNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'ChildType' => [ 'type' => 'string', 'enum' => [ 'ACCOUNT', 'ORGANIZATIONAL_UNIT', ], ], 'Children' => [ 'type' => 'list', 'member' => [ 'shape' => 'Child', ], ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'ConstraintViolationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'Reason' => [ 'shape' => 'ConstraintViolationExceptionReason', ], ], 'exception' => true, ], 'ConstraintViolationExceptionReason' => [ 'type' => 'string', 'enum' => [ 'ACCOUNT_NUMBER_LIMIT_EXCEEDED', 'HANDSHAKE_RATE_LIMIT_EXCEEDED', 'OU_NUMBER_LIMIT_EXCEEDED', 'OU_DEPTH_LIMIT_EXCEEDED', 'POLICY_NUMBER_LIMIT_EXCEEDED', 'MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED', 'MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED', 'ACCOUNT_CANNOT_LEAVE_ORGANIZATION', 'ACCOUNT_CANNOT_LEAVE_WITHOUT_EULA', 'ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION', 'MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED', 'MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED', 'ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED', 'MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE', 'MASTER_ACCOUNT_MISSING_CONTACT_INFO', 'ORGANIZATION_NOT_IN_ALL_FEATURES_MODE', 'EMAIL_VERIFICATION_CODE_EXPIRED', 'WAIT_PERIOD_ACTIVE', ], ], 'CreateAccountFailureReason' => [ 'type' => 'string', 'enum' => [ 'ACCOUNT_LIMIT_EXCEEDED', 'EMAIL_ALREADY_EXISTS', 'INVALID_ADDRESS', 'INVALID_EMAIL', 'CONCURRENT_ACCOUNT_MODIFICATION', 'INTERNAL_FAILURE', ], ], 'CreateAccountRequest' => [ 'type' => 'structure', 'required' => [ 'Email', 'AccountName', ], 'members' => [ 'Email' => [ 'shape' => 'Email', ], 'AccountName' => [ 'shape' => 'AccountName', ], 'RoleName' => [ 'shape' => 'RoleName', ], 'IamUserAccessToBilling' => [ 'shape' => 'IAMUserAccessToBilling', ], ], ], 'CreateAccountRequestId' => [ 'type' => 'string', 'pattern' => '^car-[a-z0-9]{8,32}$', ], 'CreateAccountResponse' => [ 'type' => 'structure', 'members' => [ 'CreateAccountStatus' => [ 'shape' => 'CreateAccountStatus', ], ], ], 'CreateAccountState' => [ 'type' => 'string', 'enum' => [ 'IN_PROGRESS', 'SUCCEEDED', 'FAILED', ], ], 'CreateAccountStates' => [ 'type' => 'list', 'member' => [ 'shape' => 'CreateAccountState', ], ], 'CreateAccountStatus' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'CreateAccountRequestId', ], 'AccountName' => [ 'shape' => 'AccountName', ], 'State' => [ 'shape' => 'CreateAccountState', ], 'RequestedTimestamp' => [ 'shape' => 'Timestamp', ], 'CompletedTimestamp' => [ 'shape' => 'Timestamp', ], 'AccountId' => [ 'shape' => 'AccountId', ], 'FailureReason' => [ 'shape' => 'CreateAccountFailureReason', ], ], ], 'CreateAccountStatusNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'CreateAccountStatuses' => [ 'type' => 'list', 'member' => [ 'shape' => 'CreateAccountStatus', ], ], 'CreateOrganizationRequest' => [ 'type' => 'structure', 'members' => [ 'FeatureSet' => [ 'shape' => 'OrganizationFeatureSet', ], ], ], 'CreateOrganizationResponse' => [ 'type' => 'structure', 'members' => [ 'Organization' => [ 'shape' => 'Organization', ], ], ], 'CreateOrganizationalUnitRequest' => [ 'type' => 'structure', 'required' => [ 'ParentId', 'Name', ], 'members' => [ 'ParentId' => [ 'shape' => 'ParentId', ], 'Name' => [ 'shape' => 'OrganizationalUnitName', ], ], ], 'CreateOrganizationalUnitResponse' => [ 'type' => 'structure', 'members' => [ 'OrganizationalUnit' => [ 'shape' => 'OrganizationalUnit', ], ], ], 'CreatePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'Content', 'Description', 'Name', 'Type', ], 'members' => [ 'Content' => [ 'shape' => 'PolicyContent', ], 'Description' => [ 'shape' => 'PolicyDescription', ], 'Name' => [ 'shape' => 'PolicyName', ], 'Type' => [ 'shape' => 'PolicyType', ], ], ], 'CreatePolicyResponse' => [ 'type' => 'structure', 'members' => [ 'Policy' => [ 'shape' => 'Policy', ], ], ], 'DeclineHandshakeRequest' => [ 'type' => 'structure', 'required' => [ 'HandshakeId', ], 'members' => [ 'HandshakeId' => [ 'shape' => 'HandshakeId', ], ], ], 'DeclineHandshakeResponse' => [ 'type' => 'structure', 'members' => [ 'Handshake' => [ 'shape' => 'Handshake', ], ], ], 'DeleteOrganizationalUnitRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationalUnitId', ], 'members' => [ 'OrganizationalUnitId' => [ 'shape' => 'OrganizationalUnitId', ], ], ], 'DeletePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'PolicyId', ], 'members' => [ 'PolicyId' => [ 'shape' => 'PolicyId', ], ], ], 'DescribeAccountRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], ], ], 'DescribeAccountResponse' => [ 'type' => 'structure', 'members' => [ 'Account' => [ 'shape' => 'Account', ], ], ], 'DescribeCreateAccountStatusRequest' => [ 'type' => 'structure', 'required' => [ 'CreateAccountRequestId', ], 'members' => [ 'CreateAccountRequestId' => [ 'shape' => 'CreateAccountRequestId', ], ], ], 'DescribeCreateAccountStatusResponse' => [ 'type' => 'structure', 'members' => [ 'CreateAccountStatus' => [ 'shape' => 'CreateAccountStatus', ], ], ], 'DescribeHandshakeRequest' => [ 'type' => 'structure', 'required' => [ 'HandshakeId', ], 'members' => [ 'HandshakeId' => [ 'shape' => 'HandshakeId', ], ], ], 'DescribeHandshakeResponse' => [ 'type' => 'structure', 'members' => [ 'Handshake' => [ 'shape' => 'Handshake', ], ], ], 'DescribeOrganizationResponse' => [ 'type' => 'structure', 'members' => [ 'Organization' => [ 'shape' => 'Organization', ], ], ], 'DescribeOrganizationalUnitRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationalUnitId', ], 'members' => [ 'OrganizationalUnitId' => [ 'shape' => 'OrganizationalUnitId', ], ], ], 'DescribeOrganizationalUnitResponse' => [ 'type' => 'structure', 'members' => [ 'OrganizationalUnit' => [ 'shape' => 'OrganizationalUnit', ], ], ], 'DescribePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'PolicyId', ], 'members' => [ 'PolicyId' => [ 'shape' => 'PolicyId', ], ], ], 'DescribePolicyResponse' => [ 'type' => 'structure', 'members' => [ 'Policy' => [ 'shape' => 'Policy', ], ], ], 'DestinationParentNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'DetachPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'PolicyId', 'TargetId', ], 'members' => [ 'PolicyId' => [ 'shape' => 'PolicyId', ], 'TargetId' => [ 'shape' => 'PolicyTargetId', ], ], ], 'DisableAWSServiceAccessRequest' => [ 'type' => 'structure', 'required' => [ 'ServicePrincipal', ], 'members' => [ 'ServicePrincipal' => [ 'shape' => 'ServicePrincipal', ], ], ], 'DisablePolicyTypeRequest' => [ 'type' => 'structure', 'required' => [ 'RootId', 'PolicyType', ], 'members' => [ 'RootId' => [ 'shape' => 'RootId', ], 'PolicyType' => [ 'shape' => 'PolicyType', ], ], ], 'DisablePolicyTypeResponse' => [ 'type' => 'structure', 'members' => [ 'Root' => [ 'shape' => 'Root', ], ], ], 'DuplicateAccountException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'DuplicateHandshakeException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'DuplicateOrganizationalUnitException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'DuplicatePolicyAttachmentException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'DuplicatePolicyException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'Email' => [ 'type' => 'string', 'max' => 64, 'min' => 6, 'pattern' => '[^\\s@]+@[^\\s@]+\\.[^\\s@]+', 'sensitive' => true, ], 'EnableAWSServiceAccessRequest' => [ 'type' => 'structure', 'required' => [ 'ServicePrincipal', ], 'members' => [ 'ServicePrincipal' => [ 'shape' => 'ServicePrincipal', ], ], ], 'EnableAllFeaturesRequest' => [ 'type' => 'structure', 'members' => [], ], 'EnableAllFeaturesResponse' => [ 'type' => 'structure', 'members' => [ 'Handshake' => [ 'shape' => 'Handshake', ], ], ], 'EnablePolicyTypeRequest' => [ 'type' => 'structure', 'required' => [ 'RootId', 'PolicyType', ], 'members' => [ 'RootId' => [ 'shape' => 'RootId', ], 'PolicyType' => [ 'shape' => 'PolicyType', ], ], ], 'EnablePolicyTypeResponse' => [ 'type' => 'structure', 'members' => [ 'Root' => [ 'shape' => 'Root', ], ], ], 'EnabledServicePrincipal' => [ 'type' => 'structure', 'members' => [ 'ServicePrincipal' => [ 'shape' => 'ServicePrincipal', ], 'DateEnabled' => [ 'shape' => 'Timestamp', ], ], ], 'EnabledServicePrincipals' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnabledServicePrincipal', ], ], 'ExceptionMessage' => [ 'type' => 'string', ], 'ExceptionType' => [ 'type' => 'string', ], 'FinalizingOrganizationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'GenericArn' => [ 'type' => 'string', 'pattern' => '^arn:aws:organizations::.+:.+', ], 'Handshake' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'HandshakeId', ], 'Arn' => [ 'shape' => 'HandshakeArn', ], 'Parties' => [ 'shape' => 'HandshakeParties', ], 'State' => [ 'shape' => 'HandshakeState', ], 'RequestedTimestamp' => [ 'shape' => 'Timestamp', ], 'ExpirationTimestamp' => [ 'shape' => 'Timestamp', ], 'Action' => [ 'shape' => 'ActionType', ], 'Resources' => [ 'shape' => 'HandshakeResources', ], ], ], 'HandshakeAlreadyInStateException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'HandshakeArn' => [ 'type' => 'string', 'pattern' => '^arn:aws:organizations::\\d{12}:handshake\\/o-[a-z0-9]{10,32}\\/[a-z_]{1,32}\\/h-[0-9a-z]{8,32}', ], 'HandshakeConstraintViolationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'Reason' => [ 'shape' => 'HandshakeConstraintViolationExceptionReason', ], ], 'exception' => true, ], 'HandshakeConstraintViolationExceptionReason' => [ 'type' => 'string', 'enum' => [ 'ACCOUNT_NUMBER_LIMIT_EXCEEDED', 'HANDSHAKE_RATE_LIMIT_EXCEEDED', 'ALREADY_IN_AN_ORGANIZATION', 'ORGANIZATION_ALREADY_HAS_ALL_FEATURES', 'INVITE_DISABLED_DURING_ENABLE_ALL_FEATURES', 'PAYMENT_INSTRUMENT_REQUIRED', 'ORGANIZATION_FROM_DIFFERENT_SELLER_OF_RECORD', 'ORGANIZATION_MEMBERSHIP_CHANGE_RATE_LIMIT_EXCEEDED', ], ], 'HandshakeFilter' => [ 'type' => 'structure', 'members' => [ 'ActionType' => [ 'shape' => 'ActionType', ], 'ParentHandshakeId' => [ 'shape' => 'HandshakeId', ], ], ], 'HandshakeId' => [ 'type' => 'string', 'pattern' => '^h-[0-9a-z]{8,32}$', ], 'HandshakeNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'HandshakeNotes' => [ 'type' => 'string', 'max' => 1024, 'sensitive' => true, ], 'HandshakeParties' => [ 'type' => 'list', 'member' => [ 'shape' => 'HandshakeParty', ], ], 'HandshakeParty' => [ 'type' => 'structure', 'required' => [ 'Id', 'Type', ], 'members' => [ 'Id' => [ 'shape' => 'HandshakePartyId', ], 'Type' => [ 'shape' => 'HandshakePartyType', ], ], ], 'HandshakePartyId' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'sensitive' => true, ], 'HandshakePartyType' => [ 'type' => 'string', 'enum' => [ 'ACCOUNT', 'ORGANIZATION', 'EMAIL', ], ], 'HandshakeResource' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'HandshakeResourceValue', ], 'Type' => [ 'shape' => 'HandshakeResourceType', ], 'Resources' => [ 'shape' => 'HandshakeResources', ], ], ], 'HandshakeResourceType' => [ 'type' => 'string', 'enum' => [ 'ACCOUNT', 'ORGANIZATION', 'ORGANIZATION_FEATURE_SET', 'EMAIL', 'MASTER_EMAIL', 'MASTER_NAME', 'NOTES', 'PARENT_HANDSHAKE', ], ], 'HandshakeResourceValue' => [ 'type' => 'string', 'sensitive' => true, ], 'HandshakeResources' => [ 'type' => 'list', 'member' => [ 'shape' => 'HandshakeResource', ], ], 'HandshakeState' => [ 'type' => 'string', 'enum' => [ 'REQUESTED', 'OPEN', 'CANCELED', 'ACCEPTED', 'DECLINED', 'EXPIRED', ], ], 'Handshakes' => [ 'type' => 'list', 'member' => [ 'shape' => 'Handshake', ], ], 'IAMUserAccessToBilling' => [ 'type' => 'string', 'enum' => [ 'ALLOW', 'DENY', ], ], 'InvalidHandshakeTransitionException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'InvalidInputException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'Reason' => [ 'shape' => 'InvalidInputExceptionReason', ], ], 'exception' => true, ], 'InvalidInputExceptionReason' => [ 'type' => 'string', 'enum' => [ 'INVALID_PARTY_TYPE_TARGET', 'INVALID_SYNTAX_ORGANIZATION_ARN', 'INVALID_SYNTAX_POLICY_ID', 'INVALID_ENUM', 'INVALID_LIST_MEMBER', 'MAX_LENGTH_EXCEEDED', 'MAX_VALUE_EXCEEDED', 'MIN_LENGTH_EXCEEDED', 'MIN_VALUE_EXCEEDED', 'IMMUTABLE_POLICY', 'INVALID_PATTERN', 'INVALID_PATTERN_TARGET_ID', 'INPUT_REQUIRED', 'INVALID_NEXT_TOKEN', 'MAX_LIMIT_EXCEEDED_FILTER', 'MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS', 'INVALID_FULL_NAME_TARGET', 'UNRECOGNIZED_SERVICE_PRINCIPAL', 'INVALID_ROLE_NAME', ], ], 'InviteAccountToOrganizationRequest' => [ 'type' => 'structure', 'required' => [ 'Target', ], 'members' => [ 'Target' => [ 'shape' => 'HandshakeParty', ], 'Notes' => [ 'shape' => 'HandshakeNotes', ], ], ], 'InviteAccountToOrganizationResponse' => [ 'type' => 'structure', 'members' => [ 'Handshake' => [ 'shape' => 'Handshake', ], ], ], 'ListAWSServiceAccessForOrganizationRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListAWSServiceAccessForOrganizationResponse' => [ 'type' => 'structure', 'members' => [ 'EnabledServicePrincipals' => [ 'shape' => 'EnabledServicePrincipals', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListAccountsForParentRequest' => [ 'type' => 'structure', 'required' => [ 'ParentId', ], 'members' => [ 'ParentId' => [ 'shape' => 'ParentId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListAccountsForParentResponse' => [ 'type' => 'structure', 'members' => [ 'Accounts' => [ 'shape' => 'Accounts', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListAccountsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListAccountsResponse' => [ 'type' => 'structure', 'members' => [ 'Accounts' => [ 'shape' => 'Accounts', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListChildrenRequest' => [ 'type' => 'structure', 'required' => [ 'ParentId', 'ChildType', ], 'members' => [ 'ParentId' => [ 'shape' => 'ParentId', ], 'ChildType' => [ 'shape' => 'ChildType', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListChildrenResponse' => [ 'type' => 'structure', 'members' => [ 'Children' => [ 'shape' => 'Children', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListCreateAccountStatusRequest' => [ 'type' => 'structure', 'members' => [ 'States' => [ 'shape' => 'CreateAccountStates', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListCreateAccountStatusResponse' => [ 'type' => 'structure', 'members' => [ 'CreateAccountStatuses' => [ 'shape' => 'CreateAccountStatuses', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListHandshakesForAccountRequest' => [ 'type' => 'structure', 'members' => [ 'Filter' => [ 'shape' => 'HandshakeFilter', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListHandshakesForAccountResponse' => [ 'type' => 'structure', 'members' => [ 'Handshakes' => [ 'shape' => 'Handshakes', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListHandshakesForOrganizationRequest' => [ 'type' => 'structure', 'members' => [ 'Filter' => [ 'shape' => 'HandshakeFilter', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListHandshakesForOrganizationResponse' => [ 'type' => 'structure', 'members' => [ 'Handshakes' => [ 'shape' => 'Handshakes', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListOrganizationalUnitsForParentRequest' => [ 'type' => 'structure', 'required' => [ 'ParentId', ], 'members' => [ 'ParentId' => [ 'shape' => 'ParentId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListOrganizationalUnitsForParentResponse' => [ 'type' => 'structure', 'members' => [ 'OrganizationalUnits' => [ 'shape' => 'OrganizationalUnits', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListParentsRequest' => [ 'type' => 'structure', 'required' => [ 'ChildId', ], 'members' => [ 'ChildId' => [ 'shape' => 'ChildId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListParentsResponse' => [ 'type' => 'structure', 'members' => [ 'Parents' => [ 'shape' => 'Parents', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPoliciesForTargetRequest' => [ 'type' => 'structure', 'required' => [ 'TargetId', 'Filter', ], 'members' => [ 'TargetId' => [ 'shape' => 'PolicyTargetId', ], 'Filter' => [ 'shape' => 'PolicyType', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListPoliciesForTargetResponse' => [ 'type' => 'structure', 'members' => [ 'Policies' => [ 'shape' => 'Policies', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPoliciesRequest' => [ 'type' => 'structure', 'required' => [ 'Filter', ], 'members' => [ 'Filter' => [ 'shape' => 'PolicyType', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListPoliciesResponse' => [ 'type' => 'structure', 'members' => [ 'Policies' => [ 'shape' => 'Policies', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListRootsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListRootsResponse' => [ 'type' => 'structure', 'members' => [ 'Roots' => [ 'shape' => 'Roots', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTargetsForPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'PolicyId', ], 'members' => [ 'PolicyId' => [ 'shape' => 'PolicyId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListTargetsForPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'Targets' => [ 'shape' => 'PolicyTargets', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'MalformedPolicyDocumentException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'MasterCannotLeaveOrganizationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'MaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 20, 'min' => 1, ], 'MoveAccountRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', 'SourceParentId', 'DestinationParentId', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'SourceParentId' => [ 'shape' => 'ParentId', ], 'DestinationParentId' => [ 'shape' => 'ParentId', ], ], ], 'NextToken' => [ 'type' => 'string', ], 'Organization' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'OrganizationId', ], 'Arn' => [ 'shape' => 'OrganizationArn', ], 'FeatureSet' => [ 'shape' => 'OrganizationFeatureSet', ], 'MasterAccountArn' => [ 'shape' => 'AccountArn', ], 'MasterAccountId' => [ 'shape' => 'AccountId', ], 'MasterAccountEmail' => [ 'shape' => 'Email', ], 'AvailablePolicyTypes' => [ 'shape' => 'PolicyTypes', ], ], ], 'OrganizationArn' => [ 'type' => 'string', 'pattern' => '^arn:aws:organizations::\\d{12}:organization\\/o-[a-z0-9]{10,32}', ], 'OrganizationFeatureSet' => [ 'type' => 'string', 'enum' => [ 'ALL', 'CONSOLIDATED_BILLING', ], ], 'OrganizationId' => [ 'type' => 'string', 'pattern' => '^o-[a-z0-9]{10,32}$', ], 'OrganizationNotEmptyException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'OrganizationalUnit' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'OrganizationalUnitId', ], 'Arn' => [ 'shape' => 'OrganizationalUnitArn', ], 'Name' => [ 'shape' => 'OrganizationalUnitName', ], ], ], 'OrganizationalUnitArn' => [ 'type' => 'string', 'pattern' => '^arn:aws:organizations::\\d{12}:ou\\/o-[a-z0-9]{10,32}\\/ou-[0-9a-z]{4,32}-[0-9a-z]{8,32}', ], 'OrganizationalUnitId' => [ 'type' => 'string', 'pattern' => '^ou-[0-9a-z]{4,32}-[a-z0-9]{8,32}$', ], 'OrganizationalUnitName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'OrganizationalUnitNotEmptyException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'OrganizationalUnitNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'OrganizationalUnits' => [ 'type' => 'list', 'member' => [ 'shape' => 'OrganizationalUnit', ], ], 'Parent' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ParentId', ], 'Type' => [ 'shape' => 'ParentType', ], ], ], 'ParentId' => [ 'type' => 'string', 'pattern' => '^(r-[0-9a-z]{4,32})|(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$', ], 'ParentNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'ParentType' => [ 'type' => 'string', 'enum' => [ 'ROOT', 'ORGANIZATIONAL_UNIT', ], ], 'Parents' => [ 'type' => 'list', 'member' => [ 'shape' => 'Parent', ], ], 'Policies' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicySummary', ], ], 'Policy' => [ 'type' => 'structure', 'members' => [ 'PolicySummary' => [ 'shape' => 'PolicySummary', ], 'Content' => [ 'shape' => 'PolicyContent', ], ], ], 'PolicyArn' => [ 'type' => 'string', 'pattern' => '^(arn:aws:organizations::\\d{12}:policy\\/o-[a-z0-9]{10,32}\\/[0-9a-z_]+\\/p-[0-9a-z]{10,32})|(arn:aws:organizations::aws:policy\\/[0-9a-z_]+\\/p-[0-9a-zA-Z_]{10,128})', ], 'PolicyContent' => [ 'type' => 'string', 'max' => 1000000, 'min' => 1, ], 'PolicyDescription' => [ 'type' => 'string', 'max' => 512, ], 'PolicyId' => [ 'type' => 'string', 'pattern' => '^p-[0-9a-zA-Z_]{8,128}$', ], 'PolicyInUseException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'PolicyName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'PolicyNotAttachedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'PolicyNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'PolicySummary' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'PolicyId', ], 'Arn' => [ 'shape' => 'PolicyArn', ], 'Name' => [ 'shape' => 'PolicyName', ], 'Description' => [ 'shape' => 'PolicyDescription', ], 'Type' => [ 'shape' => 'PolicyType', ], 'AwsManaged' => [ 'shape' => 'AwsManagedPolicy', ], ], ], 'PolicyTargetId' => [ 'type' => 'string', 'pattern' => '^(r-[0-9a-z]{4,32})|(\\d{12})|(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$', ], 'PolicyTargetSummary' => [ 'type' => 'structure', 'members' => [ 'TargetId' => [ 'shape' => 'PolicyTargetId', ], 'Arn' => [ 'shape' => 'GenericArn', ], 'Name' => [ 'shape' => 'TargetName', ], 'Type' => [ 'shape' => 'TargetType', ], ], ], 'PolicyTargets' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyTargetSummary', ], ], 'PolicyType' => [ 'type' => 'string', 'enum' => [ 'SERVICE_CONTROL_POLICY', ], ], 'PolicyTypeAlreadyEnabledException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'PolicyTypeNotAvailableForOrganizationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'PolicyTypeNotEnabledException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'PolicyTypeStatus' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'PENDING_ENABLE', 'PENDING_DISABLE', ], ], 'PolicyTypeSummary' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'PolicyType', ], 'Status' => [ 'shape' => 'PolicyTypeStatus', ], ], ], 'PolicyTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyTypeSummary', ], ], 'RemoveAccountFromOrganizationRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], ], ], 'RoleName' => [ 'type' => 'string', 'pattern' => '[\\w+=,.@-]{1,64}', ], 'Root' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'RootId', ], 'Arn' => [ 'shape' => 'RootArn', ], 'Name' => [ 'shape' => 'RootName', ], 'PolicyTypes' => [ 'shape' => 'PolicyTypes', ], ], ], 'RootArn' => [ 'type' => 'string', 'pattern' => '^arn:aws:organizations::\\d{12}:root\\/o-[a-z0-9]{10,32}\\/r-[0-9a-z]{4,32}', ], 'RootId' => [ 'type' => 'string', 'pattern' => '^r-[0-9a-z]{4,32}$', ], 'RootName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'RootNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'Roots' => [ 'type' => 'list', 'member' => [ 'shape' => 'Root', ], ], 'ServiceException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'ServicePrincipal' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w+=,.@-]*', ], 'SourceParentNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'TargetName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TargetNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'TargetType' => [ 'type' => 'string', 'enum' => [ 'ACCOUNT', 'ORGANIZATIONAL_UNIT', 'ROOT', ], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'ExceptionType', ], 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'UpdateOrganizationalUnitRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationalUnitId', ], 'members' => [ 'OrganizationalUnitId' => [ 'shape' => 'OrganizationalUnitId', ], 'Name' => [ 'shape' => 'OrganizationalUnitName', ], ], ], 'UpdateOrganizationalUnitResponse' => [ 'type' => 'structure', 'members' => [ 'OrganizationalUnit' => [ 'shape' => 'OrganizationalUnit', ], ], ], 'UpdatePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'PolicyId', ], 'members' => [ 'PolicyId' => [ 'shape' => 'PolicyId', ], 'Name' => [ 'shape' => 'PolicyName', ], 'Description' => [ 'shape' => 'PolicyDescription', ], 'Content' => [ 'shape' => 'PolicyContent', ], ], ], 'UpdatePolicyResponse' => [ 'type' => 'structure', 'members' => [ 'Policy' => [ 'shape' => 'Policy', ], ], ], ],]; diff --git a/lib/aws/Aws/data/organizations/2016-11-28/paginators-1.json.php b/lib/aws/Aws/data/organizations/2016-11-28/paginators-1.json.php new file mode 100644 index 0000000..9706908 --- /dev/null +++ b/lib/aws/Aws/data/organizations/2016-11-28/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/organizations/2016-11-28/paginators-1.json +return [ 'pagination' => [ 'ListAWSServiceAccessForOrganization' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListAccounts' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListAccountsForParent' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListChildren' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListCreateAccountStatus' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListHandshakesForAccount' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListHandshakesForOrganization' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListOrganizationalUnitsForParent' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListParents' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListPolicies' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListPoliciesForTarget' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListRoots' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListTargetsForPolicy' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/pi/2018-02-27/api-2.json.php b/lib/aws/Aws/data/pi/2018-02-27/api-2.json.php new file mode 100644 index 0000000..827a932 --- /dev/null +++ b/lib/aws/Aws/data/pi/2018-02-27/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/pi/2018-02-27/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-02-27', 'endpointPrefix' => 'pi', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'AWS PI', 'serviceFullName' => 'AWS Performance Insights', 'serviceId' => 'PI', 'signatureVersion' => 'v4', 'signingName' => 'pi', 'targetPrefix' => 'PerformanceInsightsv20180227', 'uid' => 'pi-2018-02-27', ], 'operations' => [ 'DescribeDimensionKeys' => [ 'name' => 'DescribeDimensionKeys', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDimensionKeysRequest', ], 'output' => [ 'shape' => 'DescribeDimensionKeysResponse', ], 'errors' => [ [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'NotAuthorizedException', ], ], ], 'GetResourceMetrics' => [ 'name' => 'GetResourceMetrics', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetResourceMetricsRequest', ], 'output' => [ 'shape' => 'GetResourceMetricsResponse', ], 'errors' => [ [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'NotAuthorizedException', ], ], ], ], 'shapes' => [ 'DataPoint' => [ 'type' => 'structure', 'required' => [ 'Timestamp', 'Value', ], 'members' => [ 'Timestamp' => [ 'shape' => 'ISOTimestamp', ], 'Value' => [ 'shape' => 'Double', ], ], ], 'DataPointsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DataPoint', ], ], 'DescribeDimensionKeysRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceType', 'Identifier', 'StartTime', 'EndTime', 'Metric', 'GroupBy', ], 'members' => [ 'ServiceType' => [ 'shape' => 'ServiceType', ], 'Identifier' => [ 'shape' => 'String', ], 'StartTime' => [ 'shape' => 'ISOTimestamp', ], 'EndTime' => [ 'shape' => 'ISOTimestamp', ], 'Metric' => [ 'shape' => 'String', ], 'PeriodInSeconds' => [ 'shape' => 'Integer', ], 'GroupBy' => [ 'shape' => 'DimensionGroup', ], 'PartitionBy' => [ 'shape' => 'DimensionGroup', ], 'Filter' => [ 'shape' => 'MetricQueryFilterMap', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeDimensionKeysResponse' => [ 'type' => 'structure', 'members' => [ 'AlignedStartTime' => [ 'shape' => 'ISOTimestamp', ], 'AlignedEndTime' => [ 'shape' => 'ISOTimestamp', ], 'PartitionKeys' => [ 'shape' => 'ResponsePartitionKeyList', ], 'Keys' => [ 'shape' => 'DimensionKeyDescriptionList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DimensionGroup' => [ 'type' => 'structure', 'required' => [ 'Group', ], 'members' => [ 'Group' => [ 'shape' => 'String', ], 'Dimensions' => [ 'shape' => 'StringList', ], 'Limit' => [ 'shape' => 'Limit', ], ], ], 'DimensionKeyDescription' => [ 'type' => 'structure', 'members' => [ 'Dimensions' => [ 'shape' => 'DimensionMap', ], 'Total' => [ 'shape' => 'Double', ], 'Partitions' => [ 'shape' => 'MetricValuesList', ], ], ], 'DimensionKeyDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DimensionKeyDescription', ], ], 'DimensionMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'Double' => [ 'type' => 'double', ], 'GetResourceMetricsRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceType', 'Identifier', 'MetricQueries', 'StartTime', 'EndTime', ], 'members' => [ 'ServiceType' => [ 'shape' => 'ServiceType', ], 'Identifier' => [ 'shape' => 'String', ], 'MetricQueries' => [ 'shape' => 'MetricQueryList', ], 'StartTime' => [ 'shape' => 'ISOTimestamp', ], 'EndTime' => [ 'shape' => 'ISOTimestamp', ], 'PeriodInSeconds' => [ 'shape' => 'Integer', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'GetResourceMetricsResponse' => [ 'type' => 'structure', 'members' => [ 'AlignedStartTime' => [ 'shape' => 'ISOTimestamp', ], 'AlignedEndTime' => [ 'shape' => 'ISOTimestamp', ], 'Identifier' => [ 'shape' => 'String', ], 'MetricList' => [ 'shape' => 'MetricKeyDataPointsList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ISOTimestamp' => [ 'type' => 'timestamp', ], 'Integer' => [ 'type' => 'integer', ], 'InternalServiceError' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, 'fault' => true, ], 'InvalidArgumentException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'Limit' => [ 'type' => 'integer', 'max' => 10, 'min' => 1, ], 'MaxResults' => [ 'type' => 'integer', 'max' => 20, 'min' => 0, ], 'MetricKeyDataPoints' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'ResponseResourceMetricKey', ], 'DataPoints' => [ 'shape' => 'DataPointsList', ], ], ], 'MetricKeyDataPointsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricKeyDataPoints', ], ], 'MetricQuery' => [ 'type' => 'structure', 'required' => [ 'Metric', ], 'members' => [ 'Metric' => [ 'shape' => 'String', ], 'GroupBy' => [ 'shape' => 'DimensionGroup', ], 'Filter' => [ 'shape' => 'MetricQueryFilterMap', ], ], ], 'MetricQueryFilterMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'MetricQueryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricQuery', ], 'max' => 15, 'min' => 1, ], 'MetricValuesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Double', ], ], 'NotAuthorizedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResponsePartitionKey' => [ 'type' => 'structure', 'required' => [ 'Dimensions', ], 'members' => [ 'Dimensions' => [ 'shape' => 'DimensionMap', ], ], ], 'ResponsePartitionKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResponsePartitionKey', ], ], 'ResponseResourceMetricKey' => [ 'type' => 'structure', 'required' => [ 'Metric', ], 'members' => [ 'Metric' => [ 'shape' => 'String', ], 'Dimensions' => [ 'shape' => 'DimensionMap', ], ], ], 'ServiceType' => [ 'type' => 'string', 'enum' => [ 'RDS', ], ], 'String' => [ 'type' => 'string', ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], 'max' => 10, 'min' => 1, ], ],]; diff --git a/lib/aws/Aws/data/pi/2018-02-27/paginators-1.json.php b/lib/aws/Aws/data/pi/2018-02-27/paginators-1.json.php new file mode 100644 index 0000000..27bdd85 --- /dev/null +++ b/lib/aws/Aws/data/pi/2018-02-27/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/pi/2018-02-27/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/pinpoint-email/2018-07-26/api-2.json.php b/lib/aws/Aws/data/pinpoint-email/2018-07-26/api-2.json.php new file mode 100644 index 0000000..9c50f24 --- /dev/null +++ b/lib/aws/Aws/data/pinpoint-email/2018-07-26/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/pinpoint-email/2018-07-26/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-07-26', 'endpointPrefix' => 'email', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'Pinpoint Email', 'serviceFullName' => 'Amazon Pinpoint Email Service', 'serviceId' => 'Pinpoint Email', 'signatureVersion' => 'v4', 'signingName' => 'ses', 'targetPrefix' => 'com.amazonaws.services.pinpoint.email', 'uid' => 'pinpoint-email-2018-07-26', ], 'operations' => [ 'CreateConfigurationSet' => [ 'name' => 'CreateConfigurationSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/email/configuration-sets', ], 'input' => [ 'shape' => 'CreateConfigurationSetRequest', ], 'output' => [ 'shape' => 'CreateConfigurationSetResponse', ], 'errors' => [ [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'CreateConfigurationSetEventDestination' => [ 'name' => 'CreateConfigurationSetEventDestination', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/email/configuration-sets/{ConfigurationSetName}/event-destinations', ], 'input' => [ 'shape' => 'CreateConfigurationSetEventDestinationRequest', ], 'output' => [ 'shape' => 'CreateConfigurationSetEventDestinationResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'CreateDedicatedIpPool' => [ 'name' => 'CreateDedicatedIpPool', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/email/dedicated-ip-pools', ], 'input' => [ 'shape' => 'CreateDedicatedIpPoolRequest', ], 'output' => [ 'shape' => 'CreateDedicatedIpPoolResponse', ], 'errors' => [ [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'CreateDeliverabilityTestReport' => [ 'name' => 'CreateDeliverabilityTestReport', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/email/deliverability-dashboard/test', ], 'input' => [ 'shape' => 'CreateDeliverabilityTestReportRequest', ], 'output' => [ 'shape' => 'CreateDeliverabilityTestReportResponse', ], 'errors' => [ [ 'shape' => 'AccountSuspendedException', ], [ 'shape' => 'SendingPausedException', ], [ 'shape' => 'MessageRejected', ], [ 'shape' => 'MailFromDomainNotVerifiedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'CreateEmailIdentity' => [ 'name' => 'CreateEmailIdentity', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/email/identities', ], 'input' => [ 'shape' => 'CreateEmailIdentityRequest', ], 'output' => [ 'shape' => 'CreateEmailIdentityResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'DeleteConfigurationSet' => [ 'name' => 'DeleteConfigurationSet', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/email/configuration-sets/{ConfigurationSetName}', ], 'input' => [ 'shape' => 'DeleteConfigurationSetRequest', ], 'output' => [ 'shape' => 'DeleteConfigurationSetResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'DeleteConfigurationSetEventDestination' => [ 'name' => 'DeleteConfigurationSetEventDestination', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/email/configuration-sets/{ConfigurationSetName}/event-destinations/{EventDestinationName}', ], 'input' => [ 'shape' => 'DeleteConfigurationSetEventDestinationRequest', ], 'output' => [ 'shape' => 'DeleteConfigurationSetEventDestinationResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'DeleteDedicatedIpPool' => [ 'name' => 'DeleteDedicatedIpPool', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/email/dedicated-ip-pools/{PoolName}', ], 'input' => [ 'shape' => 'DeleteDedicatedIpPoolRequest', ], 'output' => [ 'shape' => 'DeleteDedicatedIpPoolResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'DeleteEmailIdentity' => [ 'name' => 'DeleteEmailIdentity', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/email/identities/{EmailIdentity}', ], 'input' => [ 'shape' => 'DeleteEmailIdentityRequest', ], 'output' => [ 'shape' => 'DeleteEmailIdentityResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], ], ], 'GetAccount' => [ 'name' => 'GetAccount', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/email/account', ], 'input' => [ 'shape' => 'GetAccountRequest', ], 'output' => [ 'shape' => 'GetAccountResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetBlacklistReports' => [ 'name' => 'GetBlacklistReports', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/email/deliverability-dashboard/blacklist-report', ], 'input' => [ 'shape' => 'GetBlacklistReportsRequest', ], 'output' => [ 'shape' => 'GetBlacklistReportsResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetConfigurationSet' => [ 'name' => 'GetConfigurationSet', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/email/configuration-sets/{ConfigurationSetName}', ], 'input' => [ 'shape' => 'GetConfigurationSetRequest', ], 'output' => [ 'shape' => 'GetConfigurationSetResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetConfigurationSetEventDestinations' => [ 'name' => 'GetConfigurationSetEventDestinations', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/email/configuration-sets/{ConfigurationSetName}/event-destinations', ], 'input' => [ 'shape' => 'GetConfigurationSetEventDestinationsRequest', ], 'output' => [ 'shape' => 'GetConfigurationSetEventDestinationsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetDedicatedIp' => [ 'name' => 'GetDedicatedIp', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/email/dedicated-ips/{IP}', ], 'input' => [ 'shape' => 'GetDedicatedIpRequest', ], 'output' => [ 'shape' => 'GetDedicatedIpResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetDedicatedIps' => [ 'name' => 'GetDedicatedIps', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/email/dedicated-ips', ], 'input' => [ 'shape' => 'GetDedicatedIpsRequest', ], 'output' => [ 'shape' => 'GetDedicatedIpsResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetDeliverabilityDashboardOptions' => [ 'name' => 'GetDeliverabilityDashboardOptions', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/email/deliverability-dashboard', ], 'input' => [ 'shape' => 'GetDeliverabilityDashboardOptionsRequest', ], 'output' => [ 'shape' => 'GetDeliverabilityDashboardOptionsResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetDeliverabilityTestReport' => [ 'name' => 'GetDeliverabilityTestReport', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/email/deliverability-dashboard/test-reports/{ReportId}', ], 'input' => [ 'shape' => 'GetDeliverabilityTestReportRequest', ], 'output' => [ 'shape' => 'GetDeliverabilityTestReportResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetDomainStatisticsReport' => [ 'name' => 'GetDomainStatisticsReport', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/email/deliverability-dashboard/statistics-report/{Domain}', ], 'input' => [ 'shape' => 'GetDomainStatisticsReportRequest', ], 'output' => [ 'shape' => 'GetDomainStatisticsReportResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetEmailIdentity' => [ 'name' => 'GetEmailIdentity', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/email/identities/{EmailIdentity}', ], 'input' => [ 'shape' => 'GetEmailIdentityRequest', ], 'output' => [ 'shape' => 'GetEmailIdentityResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListConfigurationSets' => [ 'name' => 'ListConfigurationSets', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/email/configuration-sets', ], 'input' => [ 'shape' => 'ListConfigurationSetsRequest', ], 'output' => [ 'shape' => 'ListConfigurationSetsResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListDedicatedIpPools' => [ 'name' => 'ListDedicatedIpPools', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/email/dedicated-ip-pools', ], 'input' => [ 'shape' => 'ListDedicatedIpPoolsRequest', ], 'output' => [ 'shape' => 'ListDedicatedIpPoolsResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListDeliverabilityTestReports' => [ 'name' => 'ListDeliverabilityTestReports', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/email/deliverability-dashboard/test-reports', ], 'input' => [ 'shape' => 'ListDeliverabilityTestReportsRequest', ], 'output' => [ 'shape' => 'ListDeliverabilityTestReportsResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListEmailIdentities' => [ 'name' => 'ListEmailIdentities', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/email/identities', ], 'input' => [ 'shape' => 'ListEmailIdentitiesRequest', ], 'output' => [ 'shape' => 'ListEmailIdentitiesResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/email/tags', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'PutAccountDedicatedIpWarmupAttributes' => [ 'name' => 'PutAccountDedicatedIpWarmupAttributes', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/email/account/dedicated-ips/warmup', ], 'input' => [ 'shape' => 'PutAccountDedicatedIpWarmupAttributesRequest', ], 'output' => [ 'shape' => 'PutAccountDedicatedIpWarmupAttributesResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'PutAccountSendingAttributes' => [ 'name' => 'PutAccountSendingAttributes', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/email/account/sending', ], 'input' => [ 'shape' => 'PutAccountSendingAttributesRequest', ], 'output' => [ 'shape' => 'PutAccountSendingAttributesResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'PutConfigurationSetDeliveryOptions' => [ 'name' => 'PutConfigurationSetDeliveryOptions', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/email/configuration-sets/{ConfigurationSetName}/delivery-options', ], 'input' => [ 'shape' => 'PutConfigurationSetDeliveryOptionsRequest', ], 'output' => [ 'shape' => 'PutConfigurationSetDeliveryOptionsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'PutConfigurationSetReputationOptions' => [ 'name' => 'PutConfigurationSetReputationOptions', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/email/configuration-sets/{ConfigurationSetName}/reputation-options', ], 'input' => [ 'shape' => 'PutConfigurationSetReputationOptionsRequest', ], 'output' => [ 'shape' => 'PutConfigurationSetReputationOptionsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'PutConfigurationSetSendingOptions' => [ 'name' => 'PutConfigurationSetSendingOptions', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/email/configuration-sets/{ConfigurationSetName}/sending', ], 'input' => [ 'shape' => 'PutConfigurationSetSendingOptionsRequest', ], 'output' => [ 'shape' => 'PutConfigurationSetSendingOptionsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'PutConfigurationSetTrackingOptions' => [ 'name' => 'PutConfigurationSetTrackingOptions', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/email/configuration-sets/{ConfigurationSetName}/tracking-options', ], 'input' => [ 'shape' => 'PutConfigurationSetTrackingOptionsRequest', ], 'output' => [ 'shape' => 'PutConfigurationSetTrackingOptionsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'PutDedicatedIpInPool' => [ 'name' => 'PutDedicatedIpInPool', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/email/dedicated-ips/{IP}/pool', ], 'input' => [ 'shape' => 'PutDedicatedIpInPoolRequest', ], 'output' => [ 'shape' => 'PutDedicatedIpInPoolResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'PutDedicatedIpWarmupAttributes' => [ 'name' => 'PutDedicatedIpWarmupAttributes', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/email/dedicated-ips/{IP}/warmup', ], 'input' => [ 'shape' => 'PutDedicatedIpWarmupAttributesRequest', ], 'output' => [ 'shape' => 'PutDedicatedIpWarmupAttributesResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'PutDeliverabilityDashboardOption' => [ 'name' => 'PutDeliverabilityDashboardOption', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/email/deliverability-dashboard', ], 'input' => [ 'shape' => 'PutDeliverabilityDashboardOptionRequest', ], 'output' => [ 'shape' => 'PutDeliverabilityDashboardOptionResponse', ], 'errors' => [ [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'BadRequestException', ], ], ], 'PutEmailIdentityDkimAttributes' => [ 'name' => 'PutEmailIdentityDkimAttributes', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/email/identities/{EmailIdentity}/dkim', ], 'input' => [ 'shape' => 'PutEmailIdentityDkimAttributesRequest', ], 'output' => [ 'shape' => 'PutEmailIdentityDkimAttributesResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'PutEmailIdentityFeedbackAttributes' => [ 'name' => 'PutEmailIdentityFeedbackAttributes', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/email/identities/{EmailIdentity}/feedback', ], 'input' => [ 'shape' => 'PutEmailIdentityFeedbackAttributesRequest', ], 'output' => [ 'shape' => 'PutEmailIdentityFeedbackAttributesResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'PutEmailIdentityMailFromAttributes' => [ 'name' => 'PutEmailIdentityMailFromAttributes', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/email/identities/{EmailIdentity}/mail-from', ], 'input' => [ 'shape' => 'PutEmailIdentityMailFromAttributesRequest', ], 'output' => [ 'shape' => 'PutEmailIdentityMailFromAttributesResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], 'SendEmail' => [ 'name' => 'SendEmail', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/email/outbound-emails', ], 'input' => [ 'shape' => 'SendEmailRequest', ], 'output' => [ 'shape' => 'SendEmailResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'AccountSuspendedException', ], [ 'shape' => 'SendingPausedException', ], [ 'shape' => 'MessageRejected', ], [ 'shape' => 'MailFromDomainNotVerifiedException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/email/tags', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/email/tags', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateConfigurationSetEventDestination' => [ 'name' => 'UpdateConfigurationSetEventDestination', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/email/configuration-sets/{ConfigurationSetName}/event-destinations/{EventDestinationName}', ], 'input' => [ 'shape' => 'UpdateConfigurationSetEventDestinationRequest', ], 'output' => [ 'shape' => 'UpdateConfigurationSetEventDestinationResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], ], ], ], 'shapes' => [ 'AccountSuspendedException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'AlreadyExistsException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'AmazonResourceName' => [ 'type' => 'string', ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'BehaviorOnMxFailure' => [ 'type' => 'string', 'enum' => [ 'USE_DEFAULT_VALUE', 'REJECT_MESSAGE', ], ], 'BlacklistEntries' => [ 'type' => 'list', 'member' => [ 'shape' => 'BlacklistEntry', ], ], 'BlacklistEntry' => [ 'type' => 'structure', 'members' => [ 'RblName' => [ 'shape' => 'RblName', ], 'ListingTime' => [ 'shape' => 'Timestamp', ], 'Description' => [ 'shape' => 'BlacklistingDescription', ], ], ], 'BlacklistItemName' => [ 'type' => 'string', ], 'BlacklistItemNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'BlacklistItemName', ], ], 'BlacklistReport' => [ 'type' => 'map', 'key' => [ 'shape' => 'BlacklistItemName', ], 'value' => [ 'shape' => 'BlacklistEntries', ], ], 'BlacklistingDescription' => [ 'type' => 'string', ], 'Body' => [ 'type' => 'structure', 'members' => [ 'Text' => [ 'shape' => 'Content', ], 'Html' => [ 'shape' => 'Content', ], ], ], 'Charset' => [ 'type' => 'string', ], 'CloudWatchDestination' => [ 'type' => 'structure', 'required' => [ 'DimensionConfigurations', ], 'members' => [ 'DimensionConfigurations' => [ 'shape' => 'CloudWatchDimensionConfigurations', ], ], ], 'CloudWatchDimensionConfiguration' => [ 'type' => 'structure', 'required' => [ 'DimensionName', 'DimensionValueSource', 'DefaultDimensionValue', ], 'members' => [ 'DimensionName' => [ 'shape' => 'DimensionName', ], 'DimensionValueSource' => [ 'shape' => 'DimensionValueSource', ], 'DefaultDimensionValue' => [ 'shape' => 'DefaultDimensionValue', ], ], ], 'CloudWatchDimensionConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'CloudWatchDimensionConfiguration', ], ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, ], 'ConfigurationSetName' => [ 'type' => 'string', ], 'ConfigurationSetNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationSetName', ], ], 'Content' => [ 'type' => 'structure', 'required' => [ 'Data', ], 'members' => [ 'Data' => [ 'shape' => 'MessageData', ], 'Charset' => [ 'shape' => 'Charset', ], ], ], 'CreateConfigurationSetEventDestinationRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSetName', 'EventDestinationName', 'EventDestination', ], 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', 'location' => 'uri', 'locationName' => 'ConfigurationSetName', ], 'EventDestinationName' => [ 'shape' => 'EventDestinationName', ], 'EventDestination' => [ 'shape' => 'EventDestinationDefinition', ], ], ], 'CreateConfigurationSetEventDestinationResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateConfigurationSetRequest' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], 'TrackingOptions' => [ 'shape' => 'TrackingOptions', ], 'DeliveryOptions' => [ 'shape' => 'DeliveryOptions', ], 'ReputationOptions' => [ 'shape' => 'ReputationOptions', ], 'SendingOptions' => [ 'shape' => 'SendingOptions', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateConfigurationSetResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateDedicatedIpPoolRequest' => [ 'type' => 'structure', 'required' => [ 'PoolName', ], 'members' => [ 'PoolName' => [ 'shape' => 'PoolName', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDedicatedIpPoolResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateDeliverabilityTestReportRequest' => [ 'type' => 'structure', 'required' => [ 'FromEmailAddress', 'Content', ], 'members' => [ 'ReportName' => [ 'shape' => 'ReportName', ], 'FromEmailAddress' => [ 'shape' => 'EmailAddress', ], 'Content' => [ 'shape' => 'EmailContent', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDeliverabilityTestReportResponse' => [ 'type' => 'structure', 'required' => [ 'ReportId', 'DeliverabilityTestStatus', ], 'members' => [ 'ReportId' => [ 'shape' => 'ReportId', ], 'DeliverabilityTestStatus' => [ 'shape' => 'DeliverabilityTestStatus', ], ], ], 'CreateEmailIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'EmailIdentity', ], 'members' => [ 'EmailIdentity' => [ 'shape' => 'Identity', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateEmailIdentityResponse' => [ 'type' => 'structure', 'members' => [ 'IdentityType' => [ 'shape' => 'IdentityType', ], 'VerifiedForSendingStatus' => [ 'shape' => 'Enabled', ], 'DkimAttributes' => [ 'shape' => 'DkimAttributes', ], ], ], 'CustomRedirectDomain' => [ 'type' => 'string', ], 'DailyVolume' => [ 'type' => 'structure', 'members' => [ 'StartDate' => [ 'shape' => 'Timestamp', ], 'VolumeStatistics' => [ 'shape' => 'VolumeStatistics', ], 'DomainIspPlacements' => [ 'shape' => 'DomainIspPlacements', ], ], ], 'DailyVolumes' => [ 'type' => 'list', 'member' => [ 'shape' => 'DailyVolume', ], ], 'DedicatedIp' => [ 'type' => 'structure', 'required' => [ 'Ip', 'WarmupStatus', 'WarmupPercentage', ], 'members' => [ 'Ip' => [ 'shape' => 'Ip', ], 'WarmupStatus' => [ 'shape' => 'WarmupStatus', ], 'WarmupPercentage' => [ 'shape' => 'Percentage100Wrapper', ], 'PoolName' => [ 'shape' => 'PoolName', ], ], ], 'DedicatedIpList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DedicatedIp', ], ], 'DefaultDimensionValue' => [ 'type' => 'string', ], 'DeleteConfigurationSetEventDestinationRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSetName', 'EventDestinationName', ], 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', 'location' => 'uri', 'locationName' => 'ConfigurationSetName', ], 'EventDestinationName' => [ 'shape' => 'EventDestinationName', 'location' => 'uri', 'locationName' => 'EventDestinationName', ], ], ], 'DeleteConfigurationSetEventDestinationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteConfigurationSetRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSetName', ], 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', 'location' => 'uri', 'locationName' => 'ConfigurationSetName', ], ], ], 'DeleteConfigurationSetResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteDedicatedIpPoolRequest' => [ 'type' => 'structure', 'required' => [ 'PoolName', ], 'members' => [ 'PoolName' => [ 'shape' => 'PoolName', 'location' => 'uri', 'locationName' => 'PoolName', ], ], ], 'DeleteDedicatedIpPoolResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteEmailIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'EmailIdentity', ], 'members' => [ 'EmailIdentity' => [ 'shape' => 'Identity', 'location' => 'uri', 'locationName' => 'EmailIdentity', ], ], ], 'DeleteEmailIdentityResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeliverabilityTestReport' => [ 'type' => 'structure', 'members' => [ 'ReportId' => [ 'shape' => 'ReportId', ], 'ReportName' => [ 'shape' => 'ReportName', ], 'Subject' => [ 'shape' => 'DeliverabilityTestSubject', ], 'FromEmailAddress' => [ 'shape' => 'EmailAddress', ], 'CreateDate' => [ 'shape' => 'Timestamp', ], 'DeliverabilityTestStatus' => [ 'shape' => 'DeliverabilityTestStatus', ], ], ], 'DeliverabilityTestReports' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeliverabilityTestReport', ], ], 'DeliverabilityTestStatus' => [ 'type' => 'string', 'enum' => [ 'IN_PROGRESS', 'COMPLETED', ], ], 'DeliverabilityTestSubject' => [ 'type' => 'string', ], 'DeliveryOptions' => [ 'type' => 'structure', 'members' => [ 'SendingPoolName' => [ 'shape' => 'PoolName', ], ], ], 'Destination' => [ 'type' => 'structure', 'members' => [ 'ToAddresses' => [ 'shape' => 'EmailAddressList', ], 'CcAddresses' => [ 'shape' => 'EmailAddressList', ], 'BccAddresses' => [ 'shape' => 'EmailAddressList', ], ], ], 'DimensionName' => [ 'type' => 'string', ], 'DimensionValueSource' => [ 'type' => 'string', 'enum' => [ 'MESSAGE_TAG', 'EMAIL_HEADER', 'LINK_TAG', ], ], 'DkimAttributes' => [ 'type' => 'structure', 'members' => [ 'SigningEnabled' => [ 'shape' => 'Enabled', ], 'Status' => [ 'shape' => 'DkimStatus', ], 'Tokens' => [ 'shape' => 'DnsTokenList', ], ], ], 'DkimStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'SUCCESS', 'FAILED', 'TEMPORARY_FAILURE', 'NOT_STARTED', ], ], 'DnsToken' => [ 'type' => 'string', ], 'DnsTokenList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DnsToken', ], ], 'DomainIspPlacement' => [ 'type' => 'structure', 'members' => [ 'IspName' => [ 'shape' => 'IspName', ], 'InboxRawCount' => [ 'shape' => 'Volume', ], 'SpamRawCount' => [ 'shape' => 'Volume', ], 'InboxPercentage' => [ 'shape' => 'Percentage', ], 'SpamPercentage' => [ 'shape' => 'Percentage', ], ], ], 'DomainIspPlacements' => [ 'type' => 'list', 'member' => [ 'shape' => 'DomainIspPlacement', ], ], 'EmailAddress' => [ 'type' => 'string', ], 'EmailAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EmailAddress', ], ], 'EmailContent' => [ 'type' => 'structure', 'members' => [ 'Simple' => [ 'shape' => 'Message', ], 'Raw' => [ 'shape' => 'RawMessage', ], ], ], 'Enabled' => [ 'type' => 'boolean', ], 'EventDestination' => [ 'type' => 'structure', 'required' => [ 'Name', 'MatchingEventTypes', ], 'members' => [ 'Name' => [ 'shape' => 'EventDestinationName', ], 'Enabled' => [ 'shape' => 'Enabled', ], 'MatchingEventTypes' => [ 'shape' => 'EventTypes', ], 'KinesisFirehoseDestination' => [ 'shape' => 'KinesisFirehoseDestination', ], 'CloudWatchDestination' => [ 'shape' => 'CloudWatchDestination', ], 'SnsDestination' => [ 'shape' => 'SnsDestination', ], 'PinpointDestination' => [ 'shape' => 'PinpointDestination', ], ], ], 'EventDestinationDefinition' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Enabled', ], 'MatchingEventTypes' => [ 'shape' => 'EventTypes', ], 'KinesisFirehoseDestination' => [ 'shape' => 'KinesisFirehoseDestination', ], 'CloudWatchDestination' => [ 'shape' => 'CloudWatchDestination', ], 'SnsDestination' => [ 'shape' => 'SnsDestination', ], 'PinpointDestination' => [ 'shape' => 'PinpointDestination', ], ], ], 'EventDestinationName' => [ 'type' => 'string', ], 'EventDestinations' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventDestination', ], ], 'EventType' => [ 'type' => 'string', 'enum' => [ 'SEND', 'REJECT', 'BOUNCE', 'COMPLAINT', 'DELIVERY', 'OPEN', 'CLICK', 'RENDERING_FAILURE', ], ], 'EventTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventType', ], ], 'GeneralEnforcementStatus' => [ 'type' => 'string', ], 'GetAccountRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetAccountResponse' => [ 'type' => 'structure', 'members' => [ 'SendQuota' => [ 'shape' => 'SendQuota', ], 'SendingEnabled' => [ 'shape' => 'Enabled', ], 'DedicatedIpAutoWarmupEnabled' => [ 'shape' => 'Enabled', ], 'EnforcementStatus' => [ 'shape' => 'GeneralEnforcementStatus', ], 'ProductionAccessEnabled' => [ 'shape' => 'Enabled', ], ], ], 'GetBlacklistReportsRequest' => [ 'type' => 'structure', 'required' => [ 'BlacklistItemNames', ], 'members' => [ 'BlacklistItemNames' => [ 'shape' => 'BlacklistItemNames', ], ], ], 'GetBlacklistReportsResponse' => [ 'type' => 'structure', 'required' => [ 'BlacklistReport', ], 'members' => [ 'BlacklistReport' => [ 'shape' => 'BlacklistReport', ], ], ], 'GetConfigurationSetEventDestinationsRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSetName', ], 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', 'location' => 'uri', 'locationName' => 'ConfigurationSetName', ], ], ], 'GetConfigurationSetEventDestinationsResponse' => [ 'type' => 'structure', 'members' => [ 'EventDestinations' => [ 'shape' => 'EventDestinations', ], ], ], 'GetConfigurationSetRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSetName', ], 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', 'location' => 'uri', 'locationName' => 'ConfigurationSetName', ], ], ], 'GetConfigurationSetResponse' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], 'TrackingOptions' => [ 'shape' => 'TrackingOptions', ], 'DeliveryOptions' => [ 'shape' => 'DeliveryOptions', ], 'ReputationOptions' => [ 'shape' => 'ReputationOptions', ], 'SendingOptions' => [ 'shape' => 'SendingOptions', ], ], ], 'GetDedicatedIpRequest' => [ 'type' => 'structure', 'required' => [ 'Ip', ], 'members' => [ 'Ip' => [ 'shape' => 'Ip', 'location' => 'uri', 'locationName' => 'IP', ], ], ], 'GetDedicatedIpResponse' => [ 'type' => 'structure', 'members' => [ 'DedicatedIp' => [ 'shape' => 'DedicatedIp', ], ], ], 'GetDedicatedIpsRequest' => [ 'type' => 'structure', 'members' => [ 'PoolName' => [ 'shape' => 'PoolName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'PageSize' => [ 'shape' => 'MaxItems', ], ], ], 'GetDedicatedIpsResponse' => [ 'type' => 'structure', 'members' => [ 'DedicatedIps' => [ 'shape' => 'DedicatedIpList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetDeliverabilityDashboardOptionsRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetDeliverabilityDashboardOptionsResponse' => [ 'type' => 'structure', 'required' => [ 'DashboardEnabled', ], 'members' => [ 'DashboardEnabled' => [ 'shape' => 'Enabled', ], ], ], 'GetDeliverabilityTestReportRequest' => [ 'type' => 'structure', 'required' => [ 'ReportId', ], 'members' => [ 'ReportId' => [ 'shape' => 'ReportId', 'location' => 'uri', 'locationName' => 'ReportId', ], ], ], 'GetDeliverabilityTestReportResponse' => [ 'type' => 'structure', 'required' => [ 'DeliverabilityTestReport', 'OverallPlacement', 'IspPlacements', ], 'members' => [ 'DeliverabilityTestReport' => [ 'shape' => 'DeliverabilityTestReport', ], 'OverallPlacement' => [ 'shape' => 'PlacementStatistics', ], 'IspPlacements' => [ 'shape' => 'IspPlacements', ], 'Message' => [ 'shape' => 'MessageContent', ], ], ], 'GetDomainStatisticsReportRequest' => [ 'type' => 'structure', 'required' => [ 'Domain', 'StartDate', 'EndDate', ], 'members' => [ 'Domain' => [ 'shape' => 'Identity', 'location' => 'uri', 'locationName' => 'Domain', ], 'StartDate' => [ 'shape' => 'Timestamp', ], 'EndDate' => [ 'shape' => 'Timestamp', ], ], ], 'GetDomainStatisticsReportResponse' => [ 'type' => 'structure', 'required' => [ 'OverallVolume', 'DailyVolumes', ], 'members' => [ 'OverallVolume' => [ 'shape' => 'OverallVolume', ], 'DailyVolumes' => [ 'shape' => 'DailyVolumes', ], ], ], 'GetEmailIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'EmailIdentity', ], 'members' => [ 'EmailIdentity' => [ 'shape' => 'Identity', 'location' => 'uri', 'locationName' => 'EmailIdentity', ], ], ], 'GetEmailIdentityResponse' => [ 'type' => 'structure', 'members' => [ 'IdentityType' => [ 'shape' => 'IdentityType', ], 'FeedbackForwardingStatus' => [ 'shape' => 'Enabled', ], 'VerifiedForSendingStatus' => [ 'shape' => 'Enabled', ], 'DkimAttributes' => [ 'shape' => 'DkimAttributes', ], 'MailFromAttributes' => [ 'shape' => 'MailFromAttributes', ], ], ], 'Identity' => [ 'type' => 'string', ], 'IdentityInfo' => [ 'type' => 'structure', 'members' => [ 'IdentityType' => [ 'shape' => 'IdentityType', ], 'IdentityName' => [ 'shape' => 'Identity', ], 'SendingEnabled' => [ 'shape' => 'Enabled', ], ], ], 'IdentityInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IdentityInfo', ], ], 'IdentityType' => [ 'type' => 'string', 'enum' => [ 'EMAIL_ADDRESS', 'DOMAIN', 'MANAGED_DOMAIN', ], ], 'Ip' => [ 'type' => 'string', ], 'IspName' => [ 'type' => 'string', ], 'IspPlacement' => [ 'type' => 'structure', 'members' => [ 'IspName' => [ 'shape' => 'IspName', ], 'PlacementStatistics' => [ 'shape' => 'PlacementStatistics', ], ], ], 'IspPlacements' => [ 'type' => 'list', 'member' => [ 'shape' => 'IspPlacement', ], ], 'KinesisFirehoseDestination' => [ 'type' => 'structure', 'required' => [ 'IamRoleArn', 'DeliveryStreamArn', ], 'members' => [ 'IamRoleArn' => [ 'shape' => 'AmazonResourceName', ], 'DeliveryStreamArn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'LastFreshStart' => [ 'type' => 'timestamp', ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ListConfigurationSetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'PageSize' => [ 'shape' => 'MaxItems', ], ], ], 'ListConfigurationSetsResponse' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSets' => [ 'shape' => 'ConfigurationSetNameList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDedicatedIpPoolsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'PageSize' => [ 'shape' => 'MaxItems', ], ], ], 'ListDedicatedIpPoolsResponse' => [ 'type' => 'structure', 'members' => [ 'DedicatedIpPools' => [ 'shape' => 'ListOfDedicatedIpPools', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDeliverabilityTestReportsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'PageSize' => [ 'shape' => 'MaxItems', ], ], ], 'ListDeliverabilityTestReportsResponse' => [ 'type' => 'structure', 'required' => [ 'DeliverabilityTestReports', ], 'members' => [ 'DeliverabilityTestReports' => [ 'shape' => 'DeliverabilityTestReports', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListEmailIdentitiesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'PageSize' => [ 'shape' => 'MaxItems', ], ], ], 'ListEmailIdentitiesResponse' => [ 'type' => 'structure', 'members' => [ 'EmailIdentities' => [ 'shape' => 'IdentityInfoList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListOfDedicatedIpPools' => [ 'type' => 'list', 'member' => [ 'shape' => 'PoolName', ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'required' => [ 'Tags', ], 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], ], ], 'MailFromAttributes' => [ 'type' => 'structure', 'required' => [ 'MailFromDomain', 'MailFromDomainStatus', 'BehaviorOnMxFailure', ], 'members' => [ 'MailFromDomain' => [ 'shape' => 'MailFromDomainName', ], 'MailFromDomainStatus' => [ 'shape' => 'MailFromDomainStatus', ], 'BehaviorOnMxFailure' => [ 'shape' => 'BehaviorOnMxFailure', ], ], ], 'MailFromDomainName' => [ 'type' => 'string', ], 'MailFromDomainNotVerifiedException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'MailFromDomainStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'SUCCESS', 'FAILED', 'TEMPORARY_FAILURE', ], ], 'Max24HourSend' => [ 'type' => 'double', ], 'MaxItems' => [ 'type' => 'integer', ], 'MaxSendRate' => [ 'type' => 'double', ], 'Message' => [ 'type' => 'structure', 'required' => [ 'Subject', 'Body', ], 'members' => [ 'Subject' => [ 'shape' => 'Content', ], 'Body' => [ 'shape' => 'Body', ], ], ], 'MessageContent' => [ 'type' => 'string', ], 'MessageData' => [ 'type' => 'string', ], 'MessageRejected' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'MessageTag' => [ 'type' => 'structure', 'required' => [ 'Name', 'Value', ], 'members' => [ 'Name' => [ 'shape' => 'MessageTagName', ], 'Value' => [ 'shape' => 'MessageTagValue', ], ], ], 'MessageTagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MessageTag', ], ], 'MessageTagName' => [ 'type' => 'string', ], 'MessageTagValue' => [ 'type' => 'string', ], 'NextToken' => [ 'type' => 'string', ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'OutboundMessageId' => [ 'type' => 'string', ], 'OverallVolume' => [ 'type' => 'structure', 'members' => [ 'VolumeStatistics' => [ 'shape' => 'VolumeStatistics', ], 'ReadRatePercent' => [ 'shape' => 'Percentage', ], 'DomainIspPlacements' => [ 'shape' => 'DomainIspPlacements', ], ], ], 'Percentage' => [ 'type' => 'double', ], 'Percentage100Wrapper' => [ 'type' => 'integer', ], 'PinpointDestination' => [ 'type' => 'structure', 'members' => [ 'ApplicationArn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'PlacementStatistics' => [ 'type' => 'structure', 'members' => [ 'InboxPercentage' => [ 'shape' => 'Percentage', ], 'SpamPercentage' => [ 'shape' => 'Percentage', ], 'MissingPercentage' => [ 'shape' => 'Percentage', ], 'SpfPercentage' => [ 'shape' => 'Percentage', ], 'DkimPercentage' => [ 'shape' => 'Percentage', ], ], ], 'PoolName' => [ 'type' => 'string', ], 'PutAccountDedicatedIpWarmupAttributesRequest' => [ 'type' => 'structure', 'members' => [ 'AutoWarmupEnabled' => [ 'shape' => 'Enabled', ], ], ], 'PutAccountDedicatedIpWarmupAttributesResponse' => [ 'type' => 'structure', 'members' => [], ], 'PutAccountSendingAttributesRequest' => [ 'type' => 'structure', 'members' => [ 'SendingEnabled' => [ 'shape' => 'Enabled', ], ], ], 'PutAccountSendingAttributesResponse' => [ 'type' => 'structure', 'members' => [], ], 'PutConfigurationSetDeliveryOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSetName', ], 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', 'location' => 'uri', 'locationName' => 'ConfigurationSetName', ], 'SendingPoolName' => [ 'shape' => 'SendingPoolName', ], ], ], 'PutConfigurationSetDeliveryOptionsResponse' => [ 'type' => 'structure', 'members' => [], ], 'PutConfigurationSetReputationOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSetName', ], 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', 'location' => 'uri', 'locationName' => 'ConfigurationSetName', ], 'ReputationMetricsEnabled' => [ 'shape' => 'Enabled', ], ], ], 'PutConfigurationSetReputationOptionsResponse' => [ 'type' => 'structure', 'members' => [], ], 'PutConfigurationSetSendingOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSetName', ], 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', 'location' => 'uri', 'locationName' => 'ConfigurationSetName', ], 'SendingEnabled' => [ 'shape' => 'Enabled', ], ], ], 'PutConfigurationSetSendingOptionsResponse' => [ 'type' => 'structure', 'members' => [], ], 'PutConfigurationSetTrackingOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSetName', ], 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', 'location' => 'uri', 'locationName' => 'ConfigurationSetName', ], 'CustomRedirectDomain' => [ 'shape' => 'CustomRedirectDomain', ], ], ], 'PutConfigurationSetTrackingOptionsResponse' => [ 'type' => 'structure', 'members' => [], ], 'PutDedicatedIpInPoolRequest' => [ 'type' => 'structure', 'required' => [ 'Ip', 'DestinationPoolName', ], 'members' => [ 'Ip' => [ 'shape' => 'Ip', 'location' => 'uri', 'locationName' => 'IP', ], 'DestinationPoolName' => [ 'shape' => 'PoolName', ], ], ], 'PutDedicatedIpInPoolResponse' => [ 'type' => 'structure', 'members' => [], ], 'PutDedicatedIpWarmupAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'Ip', 'WarmupPercentage', ], 'members' => [ 'Ip' => [ 'shape' => 'Ip', 'location' => 'uri', 'locationName' => 'IP', ], 'WarmupPercentage' => [ 'shape' => 'Percentage100Wrapper', ], ], ], 'PutDedicatedIpWarmupAttributesResponse' => [ 'type' => 'structure', 'members' => [], ], 'PutDeliverabilityDashboardOptionRequest' => [ 'type' => 'structure', 'required' => [ 'DashboardEnabled', ], 'members' => [ 'DashboardEnabled' => [ 'shape' => 'Enabled', ], ], ], 'PutDeliverabilityDashboardOptionResponse' => [ 'type' => 'structure', 'members' => [], ], 'PutEmailIdentityDkimAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'EmailIdentity', ], 'members' => [ 'EmailIdentity' => [ 'shape' => 'Identity', 'location' => 'uri', 'locationName' => 'EmailIdentity', ], 'SigningEnabled' => [ 'shape' => 'Enabled', ], ], ], 'PutEmailIdentityDkimAttributesResponse' => [ 'type' => 'structure', 'members' => [], ], 'PutEmailIdentityFeedbackAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'EmailIdentity', ], 'members' => [ 'EmailIdentity' => [ 'shape' => 'Identity', 'location' => 'uri', 'locationName' => 'EmailIdentity', ], 'EmailForwardingEnabled' => [ 'shape' => 'Enabled', ], ], ], 'PutEmailIdentityFeedbackAttributesResponse' => [ 'type' => 'structure', 'members' => [], ], 'PutEmailIdentityMailFromAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'EmailIdentity', ], 'members' => [ 'EmailIdentity' => [ 'shape' => 'Identity', 'location' => 'uri', 'locationName' => 'EmailIdentity', ], 'MailFromDomain' => [ 'shape' => 'MailFromDomainName', ], 'BehaviorOnMxFailure' => [ 'shape' => 'BehaviorOnMxFailure', ], ], ], 'PutEmailIdentityMailFromAttributesResponse' => [ 'type' => 'structure', 'members' => [], ], 'RawMessage' => [ 'type' => 'structure', 'required' => [ 'Data', ], 'members' => [ 'Data' => [ 'shape' => 'RawMessageData', ], ], ], 'RawMessageData' => [ 'type' => 'blob', ], 'RblName' => [ 'type' => 'string', ], 'ReportId' => [ 'type' => 'string', ], 'ReportName' => [ 'type' => 'string', ], 'ReputationOptions' => [ 'type' => 'structure', 'members' => [ 'ReputationMetricsEnabled' => [ 'shape' => 'Enabled', ], 'LastFreshStart' => [ 'shape' => 'LastFreshStart', ], ], ], 'SendEmailRequest' => [ 'type' => 'structure', 'required' => [ 'Destination', 'Content', ], 'members' => [ 'FromEmailAddress' => [ 'shape' => 'EmailAddress', ], 'Destination' => [ 'shape' => 'Destination', ], 'ReplyToAddresses' => [ 'shape' => 'EmailAddressList', ], 'FeedbackForwardingEmailAddress' => [ 'shape' => 'EmailAddress', ], 'Content' => [ 'shape' => 'EmailContent', ], 'EmailTags' => [ 'shape' => 'MessageTagList', ], 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', ], ], ], 'SendEmailResponse' => [ 'type' => 'structure', 'members' => [ 'MessageId' => [ 'shape' => 'OutboundMessageId', ], ], ], 'SendQuota' => [ 'type' => 'structure', 'members' => [ 'Max24HourSend' => [ 'shape' => 'Max24HourSend', ], 'MaxSendRate' => [ 'shape' => 'MaxSendRate', ], 'SentLast24Hours' => [ 'shape' => 'SentLast24Hours', ], ], ], 'SendingOptions' => [ 'type' => 'structure', 'members' => [ 'SendingEnabled' => [ 'shape' => 'Enabled', ], ], ], 'SendingPausedException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'SendingPoolName' => [ 'type' => 'string', ], 'SentLast24Hours' => [ 'type' => 'double', ], 'SnsDestination' => [ 'type' => 'structure', 'required' => [ 'TopicArn', ], 'members' => [ 'TopicArn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Tags', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'AmazonResourceName', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'TrackingOptions' => [ 'type' => 'structure', 'required' => [ 'CustomRedirectDomain', ], 'members' => [ 'CustomRedirectDomain' => [ 'shape' => 'CustomRedirectDomain', ], ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagKeys', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'AmazonResourceName', 'location' => 'querystring', 'locationName' => 'ResourceArn', ], 'TagKeys' => [ 'shape' => 'TagKeyList', 'location' => 'querystring', 'locationName' => 'TagKeys', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateConfigurationSetEventDestinationRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationSetName', 'EventDestinationName', 'EventDestination', ], 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'ConfigurationSetName', 'location' => 'uri', 'locationName' => 'ConfigurationSetName', ], 'EventDestinationName' => [ 'shape' => 'EventDestinationName', 'location' => 'uri', 'locationName' => 'EventDestinationName', ], 'EventDestination' => [ 'shape' => 'EventDestinationDefinition', ], ], ], 'UpdateConfigurationSetEventDestinationResponse' => [ 'type' => 'structure', 'members' => [], ], 'Volume' => [ 'type' => 'long', ], 'VolumeStatistics' => [ 'type' => 'structure', 'members' => [ 'InboxRawCount' => [ 'shape' => 'Volume', ], 'SpamRawCount' => [ 'shape' => 'Volume', ], 'ProjectedInbox' => [ 'shape' => 'Volume', ], 'ProjectedSpam' => [ 'shape' => 'Volume', ], ], ], 'WarmupStatus' => [ 'type' => 'string', 'enum' => [ 'IN_PROGRESS', 'DONE', ], ], ],]; diff --git a/lib/aws/Aws/data/pinpoint-email/2018-07-26/paginators-1.json.php b/lib/aws/Aws/data/pinpoint-email/2018-07-26/paginators-1.json.php new file mode 100644 index 0000000..9d3db7c --- /dev/null +++ b/lib/aws/Aws/data/pinpoint-email/2018-07-26/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/pinpoint-email/2018-07-26/paginators-1.json +return [ 'pagination' => [ 'GetDedicatedIps' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'PageSize', ], 'ListConfigurationSets' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'PageSize', ], 'ListDedicatedIpPools' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'PageSize', ], 'ListDeliverabilityTestReports' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'PageSize', ], 'ListEmailIdentities' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'PageSize', ], ],]; diff --git a/lib/aws/Aws/data/pinpoint/2016-12-01/api-2.json.php b/lib/aws/Aws/data/pinpoint/2016-12-01/api-2.json.php new file mode 100644 index 0000000..6be604a --- /dev/null +++ b/lib/aws/Aws/data/pinpoint/2016-12-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/pinpoint/2016-12-01/api-2.json +return [ 'metadata' => [ 'apiVersion' => '2016-12-01', 'endpointPrefix' => 'pinpoint', 'signingName' => 'mobiletargeting', 'serviceFullName' => 'Amazon Pinpoint', 'serviceId' => 'Pinpoint', 'protocol' => 'rest-json', 'jsonVersion' => '1.1', 'uid' => 'pinpoint-2016-12-01', 'signatureVersion' => 'v4', ], 'operations' => [ 'CreateApp' => [ 'name' => 'CreateApp', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apps', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateAppRequest', ], 'output' => [ 'shape' => 'CreateAppResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateCampaign' => [ 'name' => 'CreateCampaign', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apps/{application-id}/campaigns', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateCampaignRequest', ], 'output' => [ 'shape' => 'CreateCampaignResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateExportJob' => [ 'name' => 'CreateExportJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apps/{application-id}/jobs/export', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateExportJobRequest', ], 'output' => [ 'shape' => 'CreateExportJobResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateImportJob' => [ 'name' => 'CreateImportJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apps/{application-id}/jobs/import', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateImportJobRequest', ], 'output' => [ 'shape' => 'CreateImportJobResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateSegment' => [ 'name' => 'CreateSegment', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apps/{application-id}/segments', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateSegmentRequest', ], 'output' => [ 'shape' => 'CreateSegmentResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteAdmChannel' => [ 'name' => 'DeleteAdmChannel', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apps/{application-id}/channels/adm', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteAdmChannelRequest', ], 'output' => [ 'shape' => 'DeleteAdmChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteApnsChannel' => [ 'name' => 'DeleteApnsChannel', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apps/{application-id}/channels/apns', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteApnsChannelRequest', ], 'output' => [ 'shape' => 'DeleteApnsChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteApnsSandboxChannel' => [ 'name' => 'DeleteApnsSandboxChannel', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apps/{application-id}/channels/apns_sandbox', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteApnsSandboxChannelRequest', ], 'output' => [ 'shape' => 'DeleteApnsSandboxChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteApnsVoipChannel' => [ 'name' => 'DeleteApnsVoipChannel', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apps/{application-id}/channels/apns_voip', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteApnsVoipChannelRequest', ], 'output' => [ 'shape' => 'DeleteApnsVoipChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteApnsVoipSandboxChannel' => [ 'name' => 'DeleteApnsVoipSandboxChannel', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apps/{application-id}/channels/apns_voip_sandbox', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteApnsVoipSandboxChannelRequest', ], 'output' => [ 'shape' => 'DeleteApnsVoipSandboxChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteApp' => [ 'name' => 'DeleteApp', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apps/{application-id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteAppRequest', ], 'output' => [ 'shape' => 'DeleteAppResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteBaiduChannel' => [ 'name' => 'DeleteBaiduChannel', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apps/{application-id}/channels/baidu', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteBaiduChannelRequest', ], 'output' => [ 'shape' => 'DeleteBaiduChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteCampaign' => [ 'name' => 'DeleteCampaign', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apps/{application-id}/campaigns/{campaign-id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteCampaignRequest', ], 'output' => [ 'shape' => 'DeleteCampaignResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteEmailChannel' => [ 'name' => 'DeleteEmailChannel', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apps/{application-id}/channels/email', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteEmailChannelRequest', ], 'output' => [ 'shape' => 'DeleteEmailChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteEndpoint' => [ 'name' => 'DeleteEndpoint', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apps/{application-id}/endpoints/{endpoint-id}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteEndpointRequest', ], 'output' => [ 'shape' => 'DeleteEndpointResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteEventStream' => [ 'name' => 'DeleteEventStream', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apps/{application-id}/eventstream', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteEventStreamRequest', ], 'output' => [ 'shape' => 'DeleteEventStreamResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteGcmChannel' => [ 'name' => 'DeleteGcmChannel', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apps/{application-id}/channels/gcm', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteGcmChannelRequest', ], 'output' => [ 'shape' => 'DeleteGcmChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteSegment' => [ 'name' => 'DeleteSegment', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apps/{application-id}/segments/{segment-id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteSegmentRequest', ], 'output' => [ 'shape' => 'DeleteSegmentResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteSmsChannel' => [ 'name' => 'DeleteSmsChannel', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apps/{application-id}/channels/sms', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteSmsChannelRequest', ], 'output' => [ 'shape' => 'DeleteSmsChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteUserEndpoints' => [ 'name' => 'DeleteUserEndpoints', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apps/{application-id}/users/{user-id}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteUserEndpointsRequest', ], 'output' => [ 'shape' => 'DeleteUserEndpointsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteVoiceChannel' => [ 'name' => 'DeleteVoiceChannel', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/apps/{application-id}/channels/voice', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteVoiceChannelRequest', ], 'output' => [ 'shape' => 'DeleteVoiceChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetAdmChannel' => [ 'name' => 'GetAdmChannel', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/channels/adm', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetAdmChannelRequest', ], 'output' => [ 'shape' => 'GetAdmChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetApnsChannel' => [ 'name' => 'GetApnsChannel', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/channels/apns', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetApnsChannelRequest', ], 'output' => [ 'shape' => 'GetApnsChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetApnsSandboxChannel' => [ 'name' => 'GetApnsSandboxChannel', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/channels/apns_sandbox', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetApnsSandboxChannelRequest', ], 'output' => [ 'shape' => 'GetApnsSandboxChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetApnsVoipChannel' => [ 'name' => 'GetApnsVoipChannel', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/channels/apns_voip', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetApnsVoipChannelRequest', ], 'output' => [ 'shape' => 'GetApnsVoipChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetApnsVoipSandboxChannel' => [ 'name' => 'GetApnsVoipSandboxChannel', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/channels/apns_voip_sandbox', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetApnsVoipSandboxChannelRequest', ], 'output' => [ 'shape' => 'GetApnsVoipSandboxChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetApp' => [ 'name' => 'GetApp', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetAppRequest', ], 'output' => [ 'shape' => 'GetAppResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetApplicationSettings' => [ 'name' => 'GetApplicationSettings', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/settings', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetApplicationSettingsRequest', ], 'output' => [ 'shape' => 'GetApplicationSettingsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetApps' => [ 'name' => 'GetApps', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetAppsRequest', ], 'output' => [ 'shape' => 'GetAppsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetBaiduChannel' => [ 'name' => 'GetBaiduChannel', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/channels/baidu', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetBaiduChannelRequest', ], 'output' => [ 'shape' => 'GetBaiduChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetCampaign' => [ 'name' => 'GetCampaign', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/campaigns/{campaign-id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetCampaignRequest', ], 'output' => [ 'shape' => 'GetCampaignResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetCampaignActivities' => [ 'name' => 'GetCampaignActivities', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/campaigns/{campaign-id}/activities', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetCampaignActivitiesRequest', ], 'output' => [ 'shape' => 'GetCampaignActivitiesResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetCampaignVersion' => [ 'name' => 'GetCampaignVersion', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/campaigns/{campaign-id}/versions/{version}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetCampaignVersionRequest', ], 'output' => [ 'shape' => 'GetCampaignVersionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetCampaignVersions' => [ 'name' => 'GetCampaignVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/campaigns/{campaign-id}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetCampaignVersionsRequest', ], 'output' => [ 'shape' => 'GetCampaignVersionsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetCampaigns' => [ 'name' => 'GetCampaigns', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/campaigns', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetCampaignsRequest', ], 'output' => [ 'shape' => 'GetCampaignsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetChannels' => [ 'name' => 'GetChannels', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/channels', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetChannelsRequest', ], 'output' => [ 'shape' => 'GetChannelsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetEmailChannel' => [ 'name' => 'GetEmailChannel', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/channels/email', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetEmailChannelRequest', ], 'output' => [ 'shape' => 'GetEmailChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetEndpoint' => [ 'name' => 'GetEndpoint', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/endpoints/{endpoint-id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetEndpointRequest', ], 'output' => [ 'shape' => 'GetEndpointResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetEventStream' => [ 'name' => 'GetEventStream', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/eventstream', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetEventStreamRequest', ], 'output' => [ 'shape' => 'GetEventStreamResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetExportJob' => [ 'name' => 'GetExportJob', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/jobs/export/{job-id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetExportJobRequest', ], 'output' => [ 'shape' => 'GetExportJobResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetExportJobs' => [ 'name' => 'GetExportJobs', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/jobs/export', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetExportJobsRequest', ], 'output' => [ 'shape' => 'GetExportJobsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetGcmChannel' => [ 'name' => 'GetGcmChannel', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/channels/gcm', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetGcmChannelRequest', ], 'output' => [ 'shape' => 'GetGcmChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetImportJob' => [ 'name' => 'GetImportJob', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/jobs/import/{job-id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetImportJobRequest', ], 'output' => [ 'shape' => 'GetImportJobResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetImportJobs' => [ 'name' => 'GetImportJobs', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/jobs/import', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetImportJobsRequest', ], 'output' => [ 'shape' => 'GetImportJobsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetSegment' => [ 'name' => 'GetSegment', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/segments/{segment-id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetSegmentRequest', ], 'output' => [ 'shape' => 'GetSegmentResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetSegmentExportJobs' => [ 'name' => 'GetSegmentExportJobs', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/segments/{segment-id}/jobs/export', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetSegmentExportJobsRequest', ], 'output' => [ 'shape' => 'GetSegmentExportJobsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetSegmentImportJobs' => [ 'name' => 'GetSegmentImportJobs', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/segments/{segment-id}/jobs/import', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetSegmentImportJobsRequest', ], 'output' => [ 'shape' => 'GetSegmentImportJobsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetSegmentVersion' => [ 'name' => 'GetSegmentVersion', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/segments/{segment-id}/versions/{version}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetSegmentVersionRequest', ], 'output' => [ 'shape' => 'GetSegmentVersionResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetSegmentVersions' => [ 'name' => 'GetSegmentVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/segments/{segment-id}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetSegmentVersionsRequest', ], 'output' => [ 'shape' => 'GetSegmentVersionsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetSegments' => [ 'name' => 'GetSegments', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/segments', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetSegmentsRequest', ], 'output' => [ 'shape' => 'GetSegmentsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetSmsChannel' => [ 'name' => 'GetSmsChannel', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/channels/sms', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetSmsChannelRequest', ], 'output' => [ 'shape' => 'GetSmsChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetUserEndpoints' => [ 'name' => 'GetUserEndpoints', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/users/{user-id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetUserEndpointsRequest', ], 'output' => [ 'shape' => 'GetUserEndpointsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'GetVoiceChannel' => [ 'name' => 'GetVoiceChannel', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/apps/{application-id}/channels/voice', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetVoiceChannelRequest', ], 'output' => [ 'shape' => 'GetVoiceChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/tags/{resource-arn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [], ], 'PhoneNumberValidate' => [ 'name' => 'PhoneNumberValidate', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/phone/number/validate', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PhoneNumberValidateRequest', ], 'output' => [ 'shape' => 'PhoneNumberValidateResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'PutEventStream' => [ 'name' => 'PutEventStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apps/{application-id}/eventstream', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PutEventStreamRequest', ], 'output' => [ 'shape' => 'PutEventStreamResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'PutEvents' => [ 'name' => 'PutEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apps/{application-id}/events', 'responseCode' => 202, ], 'input' => [ 'shape' => 'PutEventsRequest', ], 'output' => [ 'shape' => 'PutEventsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'RemoveAttributes' => [ 'name' => 'RemoveAttributes', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/apps/{application-id}/attributes/{attribute-type}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'RemoveAttributesRequest', ], 'output' => [ 'shape' => 'RemoveAttributesResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'SendMessages' => [ 'name' => 'SendMessages', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apps/{application-id}/messages', 'responseCode' => 200, ], 'input' => [ 'shape' => 'SendMessagesRequest', ], 'output' => [ 'shape' => 'SendMessagesResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'SendUsersMessages' => [ 'name' => 'SendUsersMessages', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/apps/{application-id}/users-messages', 'responseCode' => 200, ], 'input' => [ 'shape' => 'SendUsersMessagesRequest', ], 'output' => [ 'shape' => 'SendUsersMessagesResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/tags/{resource-arn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/tags/{resource-arn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [], ], 'UpdateAdmChannel' => [ 'name' => 'UpdateAdmChannel', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/apps/{application-id}/channels/adm', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateAdmChannelRequest', ], 'output' => [ 'shape' => 'UpdateAdmChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateApnsChannel' => [ 'name' => 'UpdateApnsChannel', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/apps/{application-id}/channels/apns', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateApnsChannelRequest', ], 'output' => [ 'shape' => 'UpdateApnsChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateApnsSandboxChannel' => [ 'name' => 'UpdateApnsSandboxChannel', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/apps/{application-id}/channels/apns_sandbox', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateApnsSandboxChannelRequest', ], 'output' => [ 'shape' => 'UpdateApnsSandboxChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateApnsVoipChannel' => [ 'name' => 'UpdateApnsVoipChannel', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/apps/{application-id}/channels/apns_voip', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateApnsVoipChannelRequest', ], 'output' => [ 'shape' => 'UpdateApnsVoipChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateApnsVoipSandboxChannel' => [ 'name' => 'UpdateApnsVoipSandboxChannel', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/apps/{application-id}/channels/apns_voip_sandbox', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateApnsVoipSandboxChannelRequest', ], 'output' => [ 'shape' => 'UpdateApnsVoipSandboxChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateApplicationSettings' => [ 'name' => 'UpdateApplicationSettings', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/apps/{application-id}/settings', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateApplicationSettingsRequest', ], 'output' => [ 'shape' => 'UpdateApplicationSettingsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateBaiduChannel' => [ 'name' => 'UpdateBaiduChannel', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/apps/{application-id}/channels/baidu', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateBaiduChannelRequest', ], 'output' => [ 'shape' => 'UpdateBaiduChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateCampaign' => [ 'name' => 'UpdateCampaign', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/apps/{application-id}/campaigns/{campaign-id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateCampaignRequest', ], 'output' => [ 'shape' => 'UpdateCampaignResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateEmailChannel' => [ 'name' => 'UpdateEmailChannel', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/apps/{application-id}/channels/email', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateEmailChannelRequest', ], 'output' => [ 'shape' => 'UpdateEmailChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateEndpoint' => [ 'name' => 'UpdateEndpoint', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/apps/{application-id}/endpoints/{endpoint-id}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateEndpointRequest', ], 'output' => [ 'shape' => 'UpdateEndpointResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateEndpointsBatch' => [ 'name' => 'UpdateEndpointsBatch', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/apps/{application-id}/endpoints', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateEndpointsBatchRequest', ], 'output' => [ 'shape' => 'UpdateEndpointsBatchResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateGcmChannel' => [ 'name' => 'UpdateGcmChannel', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/apps/{application-id}/channels/gcm', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateGcmChannelRequest', ], 'output' => [ 'shape' => 'UpdateGcmChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateSegment' => [ 'name' => 'UpdateSegment', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/apps/{application-id}/segments/{segment-id}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateSegmentRequest', ], 'output' => [ 'shape' => 'UpdateSegmentResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateSmsChannel' => [ 'name' => 'UpdateSmsChannel', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/apps/{application-id}/channels/sms', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateSmsChannelRequest', ], 'output' => [ 'shape' => 'UpdateSmsChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateVoiceChannel' => [ 'name' => 'UpdateVoiceChannel', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/apps/{application-id}/channels/voice', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateVoiceChannelRequest', ], 'output' => [ 'shape' => 'UpdateVoiceChannelResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], ], 'shapes' => [ 'ADMChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ClientId' => [ 'shape' => '__string', ], 'ClientSecret' => [ 'shape' => '__string', ], 'Enabled' => [ 'shape' => '__boolean', ], ], 'required' => [], ], 'ADMChannelResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', ], 'CreationDate' => [ 'shape' => '__string', ], 'Enabled' => [ 'shape' => '__boolean', ], 'HasCredential' => [ 'shape' => '__boolean', ], 'Id' => [ 'shape' => '__string', ], 'IsArchived' => [ 'shape' => '__boolean', ], 'LastModifiedBy' => [ 'shape' => '__string', ], 'LastModifiedDate' => [ 'shape' => '__string', ], 'Platform' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__integer', ], ], 'required' => [], ], 'ADMMessage' => [ 'type' => 'structure', 'members' => [ 'Action' => [ 'shape' => 'Action', ], 'Body' => [ 'shape' => '__string', ], 'ConsolidationKey' => [ 'shape' => '__string', ], 'Data' => [ 'shape' => 'MapOf__string', ], 'ExpiresAfter' => [ 'shape' => '__string', ], 'IconReference' => [ 'shape' => '__string', ], 'ImageIconUrl' => [ 'shape' => '__string', ], 'ImageUrl' => [ 'shape' => '__string', ], 'MD5' => [ 'shape' => '__string', ], 'RawContent' => [ 'shape' => '__string', ], 'SilentPush' => [ 'shape' => '__boolean', ], 'SmallImageIconUrl' => [ 'shape' => '__string', ], 'Sound' => [ 'shape' => '__string', ], 'Substitutions' => [ 'shape' => 'MapOfListOf__string', ], 'Title' => [ 'shape' => '__string', ], 'Url' => [ 'shape' => '__string', ], ], ], 'APNSChannelRequest' => [ 'type' => 'structure', 'members' => [ 'BundleId' => [ 'shape' => '__string', ], 'Certificate' => [ 'shape' => '__string', ], 'DefaultAuthenticationMethod' => [ 'shape' => '__string', ], 'Enabled' => [ 'shape' => '__boolean', ], 'PrivateKey' => [ 'shape' => '__string', ], 'TeamId' => [ 'shape' => '__string', ], 'TokenKey' => [ 'shape' => '__string', ], 'TokenKeyId' => [ 'shape' => '__string', ], ], 'required' => [], ], 'APNSChannelResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', ], 'CreationDate' => [ 'shape' => '__string', ], 'DefaultAuthenticationMethod' => [ 'shape' => '__string', ], 'Enabled' => [ 'shape' => '__boolean', ], 'HasCredential' => [ 'shape' => '__boolean', ], 'HasTokenKey' => [ 'shape' => '__boolean', ], 'Id' => [ 'shape' => '__string', ], 'IsArchived' => [ 'shape' => '__boolean', ], 'LastModifiedBy' => [ 'shape' => '__string', ], 'LastModifiedDate' => [ 'shape' => '__string', ], 'Platform' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__integer', ], ], 'required' => [], ], 'APNSMessage' => [ 'type' => 'structure', 'members' => [ 'Action' => [ 'shape' => 'Action', ], 'Badge' => [ 'shape' => '__integer', ], 'Body' => [ 'shape' => '__string', ], 'Category' => [ 'shape' => '__string', ], 'CollapseId' => [ 'shape' => '__string', ], 'Data' => [ 'shape' => 'MapOf__string', ], 'MediaUrl' => [ 'shape' => '__string', ], 'PreferredAuthenticationMethod' => [ 'shape' => '__string', ], 'Priority' => [ 'shape' => '__string', ], 'RawContent' => [ 'shape' => '__string', ], 'SilentPush' => [ 'shape' => '__boolean', ], 'Sound' => [ 'shape' => '__string', ], 'Substitutions' => [ 'shape' => 'MapOfListOf__string', ], 'ThreadId' => [ 'shape' => '__string', ], 'TimeToLive' => [ 'shape' => '__integer', ], 'Title' => [ 'shape' => '__string', ], 'Url' => [ 'shape' => '__string', ], ], ], 'APNSSandboxChannelRequest' => [ 'type' => 'structure', 'members' => [ 'BundleId' => [ 'shape' => '__string', ], 'Certificate' => [ 'shape' => '__string', ], 'DefaultAuthenticationMethod' => [ 'shape' => '__string', ], 'Enabled' => [ 'shape' => '__boolean', ], 'PrivateKey' => [ 'shape' => '__string', ], 'TeamId' => [ 'shape' => '__string', ], 'TokenKey' => [ 'shape' => '__string', ], 'TokenKeyId' => [ 'shape' => '__string', ], ], 'required' => [], ], 'APNSSandboxChannelResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', ], 'CreationDate' => [ 'shape' => '__string', ], 'DefaultAuthenticationMethod' => [ 'shape' => '__string', ], 'Enabled' => [ 'shape' => '__boolean', ], 'HasCredential' => [ 'shape' => '__boolean', ], 'HasTokenKey' => [ 'shape' => '__boolean', ], 'Id' => [ 'shape' => '__string', ], 'IsArchived' => [ 'shape' => '__boolean', ], 'LastModifiedBy' => [ 'shape' => '__string', ], 'LastModifiedDate' => [ 'shape' => '__string', ], 'Platform' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__integer', ], ], 'required' => [], ], 'APNSVoipChannelRequest' => [ 'type' => 'structure', 'members' => [ 'BundleId' => [ 'shape' => '__string', ], 'Certificate' => [ 'shape' => '__string', ], 'DefaultAuthenticationMethod' => [ 'shape' => '__string', ], 'Enabled' => [ 'shape' => '__boolean', ], 'PrivateKey' => [ 'shape' => '__string', ], 'TeamId' => [ 'shape' => '__string', ], 'TokenKey' => [ 'shape' => '__string', ], 'TokenKeyId' => [ 'shape' => '__string', ], ], 'required' => [], ], 'APNSVoipChannelResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', ], 'CreationDate' => [ 'shape' => '__string', ], 'DefaultAuthenticationMethod' => [ 'shape' => '__string', ], 'Enabled' => [ 'shape' => '__boolean', ], 'HasCredential' => [ 'shape' => '__boolean', ], 'HasTokenKey' => [ 'shape' => '__boolean', ], 'Id' => [ 'shape' => '__string', ], 'IsArchived' => [ 'shape' => '__boolean', ], 'LastModifiedBy' => [ 'shape' => '__string', ], 'LastModifiedDate' => [ 'shape' => '__string', ], 'Platform' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__integer', ], ], 'required' => [], ], 'APNSVoipSandboxChannelRequest' => [ 'type' => 'structure', 'members' => [ 'BundleId' => [ 'shape' => '__string', ], 'Certificate' => [ 'shape' => '__string', ], 'DefaultAuthenticationMethod' => [ 'shape' => '__string', ], 'Enabled' => [ 'shape' => '__boolean', ], 'PrivateKey' => [ 'shape' => '__string', ], 'TeamId' => [ 'shape' => '__string', ], 'TokenKey' => [ 'shape' => '__string', ], 'TokenKeyId' => [ 'shape' => '__string', ], ], 'required' => [], ], 'APNSVoipSandboxChannelResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', ], 'CreationDate' => [ 'shape' => '__string', ], 'DefaultAuthenticationMethod' => [ 'shape' => '__string', ], 'Enabled' => [ 'shape' => '__boolean', ], 'HasCredential' => [ 'shape' => '__boolean', ], 'HasTokenKey' => [ 'shape' => '__boolean', ], 'Id' => [ 'shape' => '__string', ], 'IsArchived' => [ 'shape' => '__boolean', ], 'LastModifiedBy' => [ 'shape' => '__string', ], 'LastModifiedDate' => [ 'shape' => '__string', ], 'Platform' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__integer', ], ], 'required' => [], ], 'Action' => [ 'type' => 'string', 'enum' => [ 'OPEN_APP', 'DEEP_LINK', 'URL', ], ], 'ActivitiesResponse' => [ 'type' => 'structure', 'members' => [ 'Item' => [ 'shape' => 'ListOfActivityResponse', ], 'NextToken' => [ 'shape' => '__string', ], ], 'required' => [], ], 'ActivityResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', ], 'CampaignId' => [ 'shape' => '__string', ], 'End' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'Result' => [ 'shape' => '__string', ], 'ScheduledStart' => [ 'shape' => '__string', ], 'Start' => [ 'shape' => '__string', ], 'State' => [ 'shape' => '__string', ], 'SuccessfulEndpointCount' => [ 'shape' => '__integer', ], 'TimezonesCompletedCount' => [ 'shape' => '__integer', ], 'TimezonesTotalCount' => [ 'shape' => '__integer', ], 'TotalEndpointCount' => [ 'shape' => '__integer', ], 'TreatmentId' => [ 'shape' => '__string', ], ], 'required' => [], ], 'AddressConfiguration' => [ 'type' => 'structure', 'members' => [ 'BodyOverride' => [ 'shape' => '__string', ], 'ChannelType' => [ 'shape' => 'ChannelType', ], 'Context' => [ 'shape' => 'MapOf__string', ], 'RawContent' => [ 'shape' => '__string', ], 'Substitutions' => [ 'shape' => 'MapOfListOf__string', ], 'TitleOverride' => [ 'shape' => '__string', ], ], ], 'ApplicationResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], 'tags' => [ 'shape' => 'MapOf__string', 'locationName' => 'tags', ], ], 'required' => [], ], 'ApplicationSettingsResource' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', ], 'CampaignHook' => [ 'shape' => 'CampaignHook', ], 'LastModifiedDate' => [ 'shape' => '__string', ], 'Limits' => [ 'shape' => 'CampaignLimits', ], 'QuietTime' => [ 'shape' => 'QuietTime', ], ], 'required' => [], ], 'ApplicationsResponse' => [ 'type' => 'structure', 'members' => [ 'Item' => [ 'shape' => 'ListOfApplicationResponse', ], 'NextToken' => [ 'shape' => '__string', ], ], ], 'AttributeDimension' => [ 'type' => 'structure', 'members' => [ 'AttributeType' => [ 'shape' => 'AttributeType', ], 'Values' => [ 'shape' => 'ListOf__string', ], ], 'required' => [], ], 'AttributeType' => [ 'type' => 'string', 'enum' => [ 'INCLUSIVE', 'EXCLUSIVE', ], ], 'AttributesResource' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', ], 'AttributeType' => [ 'shape' => '__string', ], 'Attributes' => [ 'shape' => 'ListOf__string', ], ], 'required' => [], ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', ], 'RequestID' => [ 'shape' => '__string', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 400, ], ], 'BaiduChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApiKey' => [ 'shape' => '__string', ], 'Enabled' => [ 'shape' => '__boolean', ], 'SecretKey' => [ 'shape' => '__string', ], ], 'required' => [], ], 'BaiduChannelResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', ], 'CreationDate' => [ 'shape' => '__string', ], 'Credential' => [ 'shape' => '__string', ], 'Enabled' => [ 'shape' => '__boolean', ], 'HasCredential' => [ 'shape' => '__boolean', ], 'Id' => [ 'shape' => '__string', ], 'IsArchived' => [ 'shape' => '__boolean', ], 'LastModifiedBy' => [ 'shape' => '__string', ], 'LastModifiedDate' => [ 'shape' => '__string', ], 'Platform' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__integer', ], ], 'required' => [], ], 'BaiduMessage' => [ 'type' => 'structure', 'members' => [ 'Action' => [ 'shape' => 'Action', ], 'Body' => [ 'shape' => '__string', ], 'Data' => [ 'shape' => 'MapOf__string', ], 'IconReference' => [ 'shape' => '__string', ], 'ImageIconUrl' => [ 'shape' => '__string', ], 'ImageUrl' => [ 'shape' => '__string', ], 'RawContent' => [ 'shape' => '__string', ], 'SilentPush' => [ 'shape' => '__boolean', ], 'SmallImageIconUrl' => [ 'shape' => '__string', ], 'Sound' => [ 'shape' => '__string', ], 'Substitutions' => [ 'shape' => 'MapOfListOf__string', ], 'TimeToLive' => [ 'shape' => '__integer', ], 'Title' => [ 'shape' => '__string', ], 'Url' => [ 'shape' => '__string', ], ], ], 'CampaignEmailMessage' => [ 'type' => 'structure', 'members' => [ 'Body' => [ 'shape' => '__string', ], 'FromAddress' => [ 'shape' => '__string', ], 'HtmlBody' => [ 'shape' => '__string', ], 'Title' => [ 'shape' => '__string', ], ], 'required' => [], ], 'CampaignEventFilter' => [ 'type' => 'structure', 'members' => [ 'Dimensions' => [ 'shape' => 'EventDimensions', ], 'FilterType' => [ 'shape' => 'FilterType', ], ], 'required' => [], ], 'CampaignHook' => [ 'type' => 'structure', 'members' => [ 'LambdaFunctionName' => [ 'shape' => '__string', ], 'Mode' => [ 'shape' => 'Mode', ], 'WebUrl' => [ 'shape' => '__string', ], ], ], 'CampaignLimits' => [ 'type' => 'structure', 'members' => [ 'Daily' => [ 'shape' => '__integer', ], 'MaximumDuration' => [ 'shape' => '__integer', ], 'MessagesPerSecond' => [ 'shape' => '__integer', ], 'Total' => [ 'shape' => '__integer', ], ], ], 'CampaignResponse' => [ 'type' => 'structure', 'members' => [ 'AdditionalTreatments' => [ 'shape' => 'ListOfTreatmentResource', ], 'ApplicationId' => [ 'shape' => '__string', ], 'Arn' => [ 'shape' => '__string', ], 'CreationDate' => [ 'shape' => '__string', ], 'DefaultState' => [ 'shape' => 'CampaignState', ], 'Description' => [ 'shape' => '__string', ], 'HoldoutPercent' => [ 'shape' => '__integer', ], 'Hook' => [ 'shape' => 'CampaignHook', ], 'Id' => [ 'shape' => '__string', ], 'IsPaused' => [ 'shape' => '__boolean', ], 'LastModifiedDate' => [ 'shape' => '__string', ], 'Limits' => [ 'shape' => 'CampaignLimits', ], 'MessageConfiguration' => [ 'shape' => 'MessageConfiguration', ], 'Name' => [ 'shape' => '__string', ], 'Schedule' => [ 'shape' => 'Schedule', ], 'SegmentId' => [ 'shape' => '__string', ], 'SegmentVersion' => [ 'shape' => '__integer', ], 'State' => [ 'shape' => 'CampaignState', ], 'tags' => [ 'shape' => 'MapOf__string', 'locationName' => 'tags', ], 'TreatmentDescription' => [ 'shape' => '__string', ], 'TreatmentName' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__integer', ], ], 'required' => [], ], 'CampaignSmsMessage' => [ 'type' => 'structure', 'members' => [ 'Body' => [ 'shape' => '__string', ], 'MessageType' => [ 'shape' => 'MessageType', ], 'SenderId' => [ 'shape' => '__string', ], ], ], 'CampaignState' => [ 'type' => 'structure', 'members' => [ 'CampaignStatus' => [ 'shape' => 'CampaignStatus', ], ], ], 'CampaignStatus' => [ 'type' => 'string', 'enum' => [ 'SCHEDULED', 'EXECUTING', 'PENDING_NEXT_RUN', 'COMPLETED', 'PAUSED', 'DELETED', ], ], 'CampaignsResponse' => [ 'type' => 'structure', 'members' => [ 'Item' => [ 'shape' => 'ListOfCampaignResponse', ], 'NextToken' => [ 'shape' => '__string', ], ], 'required' => [], ], 'ChannelResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', ], 'CreationDate' => [ 'shape' => '__string', ], 'Enabled' => [ 'shape' => '__boolean', ], 'HasCredential' => [ 'shape' => '__boolean', ], 'Id' => [ 'shape' => '__string', ], 'IsArchived' => [ 'shape' => '__boolean', ], 'LastModifiedBy' => [ 'shape' => '__string', ], 'LastModifiedDate' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__integer', ], ], ], 'ChannelType' => [ 'type' => 'string', 'enum' => [ 'GCM', 'APNS', 'APNS_SANDBOX', 'APNS_VOIP', 'APNS_VOIP_SANDBOX', 'ADM', 'SMS', 'VOICE', 'EMAIL', 'BAIDU', 'CUSTOM', ], ], 'ChannelsResponse' => [ 'type' => 'structure', 'members' => [ 'Channels' => [ 'shape' => 'MapOfChannelResponse', ], ], 'required' => [], ], 'CreateAppRequest' => [ 'type' => 'structure', 'members' => [ 'CreateApplicationRequest' => [ 'shape' => 'CreateApplicationRequest', ], ], 'required' => [ 'CreateApplicationRequest', ], 'payload' => 'CreateApplicationRequest', ], 'CreateAppResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationResponse' => [ 'shape' => 'ApplicationResponse', ], ], 'required' => [ 'ApplicationResponse', ], 'payload' => 'ApplicationResponse', ], 'CreateApplicationRequest' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => '__string', ], 'tags' => [ 'shape' => 'MapOf__string', 'locationName' => 'tags', ], ], 'required' => [], ], 'CreateCampaignRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'WriteCampaignRequest' => [ 'shape' => 'WriteCampaignRequest', ], ], 'required' => [ 'ApplicationId', 'WriteCampaignRequest', ], 'payload' => 'WriteCampaignRequest', ], 'CreateCampaignResponse' => [ 'type' => 'structure', 'members' => [ 'CampaignResponse' => [ 'shape' => 'CampaignResponse', ], ], 'required' => [ 'CampaignResponse', ], 'payload' => 'CampaignResponse', ], 'CreateExportJobRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'ExportJobRequest' => [ 'shape' => 'ExportJobRequest', ], ], 'required' => [ 'ApplicationId', 'ExportJobRequest', ], 'payload' => 'ExportJobRequest', ], 'CreateExportJobResponse' => [ 'type' => 'structure', 'members' => [ 'ExportJobResponse' => [ 'shape' => 'ExportJobResponse', ], ], 'required' => [ 'ExportJobResponse', ], 'payload' => 'ExportJobResponse', ], 'CreateImportJobRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'ImportJobRequest' => [ 'shape' => 'ImportJobRequest', ], ], 'required' => [ 'ApplicationId', 'ImportJobRequest', ], 'payload' => 'ImportJobRequest', ], 'CreateImportJobResponse' => [ 'type' => 'structure', 'members' => [ 'ImportJobResponse' => [ 'shape' => 'ImportJobResponse', ], ], 'required' => [ 'ImportJobResponse', ], 'payload' => 'ImportJobResponse', ], 'CreateSegmentRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'WriteSegmentRequest' => [ 'shape' => 'WriteSegmentRequest', ], ], 'required' => [ 'ApplicationId', 'WriteSegmentRequest', ], 'payload' => 'WriteSegmentRequest', ], 'CreateSegmentResponse' => [ 'type' => 'structure', 'members' => [ 'SegmentResponse' => [ 'shape' => 'SegmentResponse', ], ], 'required' => [ 'SegmentResponse', ], 'payload' => 'SegmentResponse', ], 'DefaultMessage' => [ 'type' => 'structure', 'members' => [ 'Body' => [ 'shape' => '__string', ], 'Substitutions' => [ 'shape' => 'MapOfListOf__string', ], ], ], 'DefaultPushNotificationMessage' => [ 'type' => 'structure', 'members' => [ 'Action' => [ 'shape' => 'Action', ], 'Body' => [ 'shape' => '__string', ], 'Data' => [ 'shape' => 'MapOf__string', ], 'SilentPush' => [ 'shape' => '__boolean', ], 'Substitutions' => [ 'shape' => 'MapOfListOf__string', ], 'Title' => [ 'shape' => '__string', ], 'Url' => [ 'shape' => '__string', ], ], ], 'DeleteAdmChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'DeleteAdmChannelResponse' => [ 'type' => 'structure', 'members' => [ 'ADMChannelResponse' => [ 'shape' => 'ADMChannelResponse', ], ], 'required' => [ 'ADMChannelResponse', ], 'payload' => 'ADMChannelResponse', ], 'DeleteApnsChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'DeleteApnsChannelResponse' => [ 'type' => 'structure', 'members' => [ 'APNSChannelResponse' => [ 'shape' => 'APNSChannelResponse', ], ], 'required' => [ 'APNSChannelResponse', ], 'payload' => 'APNSChannelResponse', ], 'DeleteApnsSandboxChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'DeleteApnsSandboxChannelResponse' => [ 'type' => 'structure', 'members' => [ 'APNSSandboxChannelResponse' => [ 'shape' => 'APNSSandboxChannelResponse', ], ], 'required' => [ 'APNSSandboxChannelResponse', ], 'payload' => 'APNSSandboxChannelResponse', ], 'DeleteApnsVoipChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'DeleteApnsVoipChannelResponse' => [ 'type' => 'structure', 'members' => [ 'APNSVoipChannelResponse' => [ 'shape' => 'APNSVoipChannelResponse', ], ], 'required' => [ 'APNSVoipChannelResponse', ], 'payload' => 'APNSVoipChannelResponse', ], 'DeleteApnsVoipSandboxChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'DeleteApnsVoipSandboxChannelResponse' => [ 'type' => 'structure', 'members' => [ 'APNSVoipSandboxChannelResponse' => [ 'shape' => 'APNSVoipSandboxChannelResponse', ], ], 'required' => [ 'APNSVoipSandboxChannelResponse', ], 'payload' => 'APNSVoipSandboxChannelResponse', ], 'DeleteAppRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'DeleteAppResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationResponse' => [ 'shape' => 'ApplicationResponse', ], ], 'required' => [ 'ApplicationResponse', ], 'payload' => 'ApplicationResponse', ], 'DeleteBaiduChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'DeleteBaiduChannelResponse' => [ 'type' => 'structure', 'members' => [ 'BaiduChannelResponse' => [ 'shape' => 'BaiduChannelResponse', ], ], 'required' => [ 'BaiduChannelResponse', ], 'payload' => 'BaiduChannelResponse', ], 'DeleteCampaignRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'CampaignId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'campaign-id', ], ], 'required' => [ 'CampaignId', 'ApplicationId', ], ], 'DeleteCampaignResponse' => [ 'type' => 'structure', 'members' => [ 'CampaignResponse' => [ 'shape' => 'CampaignResponse', ], ], 'required' => [ 'CampaignResponse', ], 'payload' => 'CampaignResponse', ], 'DeleteEmailChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'DeleteEmailChannelResponse' => [ 'type' => 'structure', 'members' => [ 'EmailChannelResponse' => [ 'shape' => 'EmailChannelResponse', ], ], 'required' => [ 'EmailChannelResponse', ], 'payload' => 'EmailChannelResponse', ], 'DeleteEndpointRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'EndpointId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'endpoint-id', ], ], 'required' => [ 'ApplicationId', 'EndpointId', ], ], 'DeleteEndpointResponse' => [ 'type' => 'structure', 'members' => [ 'EndpointResponse' => [ 'shape' => 'EndpointResponse', ], ], 'required' => [ 'EndpointResponse', ], 'payload' => 'EndpointResponse', ], 'DeleteEventStreamRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'DeleteEventStreamResponse' => [ 'type' => 'structure', 'members' => [ 'EventStream' => [ 'shape' => 'EventStream', ], ], 'required' => [ 'EventStream', ], 'payload' => 'EventStream', ], 'DeleteGcmChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'DeleteGcmChannelResponse' => [ 'type' => 'structure', 'members' => [ 'GCMChannelResponse' => [ 'shape' => 'GCMChannelResponse', ], ], 'required' => [ 'GCMChannelResponse', ], 'payload' => 'GCMChannelResponse', ], 'DeleteSegmentRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'SegmentId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'segment-id', ], ], 'required' => [ 'SegmentId', 'ApplicationId', ], ], 'DeleteSegmentResponse' => [ 'type' => 'structure', 'members' => [ 'SegmentResponse' => [ 'shape' => 'SegmentResponse', ], ], 'required' => [ 'SegmentResponse', ], 'payload' => 'SegmentResponse', ], 'DeleteSmsChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'DeleteSmsChannelResponse' => [ 'type' => 'structure', 'members' => [ 'SMSChannelResponse' => [ 'shape' => 'SMSChannelResponse', ], ], 'required' => [ 'SMSChannelResponse', ], 'payload' => 'SMSChannelResponse', ], 'DeleteUserEndpointsRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'UserId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'user-id', ], ], 'required' => [ 'ApplicationId', 'UserId', ], ], 'DeleteUserEndpointsResponse' => [ 'type' => 'structure', 'members' => [ 'EndpointsResponse' => [ 'shape' => 'EndpointsResponse', ], ], 'required' => [ 'EndpointsResponse', ], 'payload' => 'EndpointsResponse', ], 'DeleteVoiceChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'DeleteVoiceChannelResponse' => [ 'type' => 'structure', 'members' => [ 'VoiceChannelResponse' => [ 'shape' => 'VoiceChannelResponse', ], ], 'required' => [ 'VoiceChannelResponse', ], 'payload' => 'VoiceChannelResponse', ], 'DeliveryStatus' => [ 'type' => 'string', 'enum' => [ 'SUCCESSFUL', 'THROTTLED', 'TEMPORARY_FAILURE', 'PERMANENT_FAILURE', 'UNKNOWN_FAILURE', 'OPT_OUT', 'DUPLICATE', ], ], 'DimensionType' => [ 'type' => 'string', 'enum' => [ 'INCLUSIVE', 'EXCLUSIVE', ], ], 'DirectMessageConfiguration' => [ 'type' => 'structure', 'members' => [ 'ADMMessage' => [ 'shape' => 'ADMMessage', ], 'APNSMessage' => [ 'shape' => 'APNSMessage', ], 'BaiduMessage' => [ 'shape' => 'BaiduMessage', ], 'DefaultMessage' => [ 'shape' => 'DefaultMessage', ], 'DefaultPushNotificationMessage' => [ 'shape' => 'DefaultPushNotificationMessage', ], 'EmailMessage' => [ 'shape' => 'EmailMessage', ], 'GCMMessage' => [ 'shape' => 'GCMMessage', ], 'SMSMessage' => [ 'shape' => 'SMSMessage', ], 'VoiceMessage' => [ 'shape' => 'VoiceMessage', ], ], 'required' => [], ], 'Duration' => [ 'type' => 'string', 'enum' => [ 'HR_24', 'DAY_7', 'DAY_14', 'DAY_30', ], ], 'EmailChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSet' => [ 'shape' => '__string', ], 'Enabled' => [ 'shape' => '__boolean', ], 'FromAddress' => [ 'shape' => '__string', ], 'Identity' => [ 'shape' => '__string', ], 'RoleArn' => [ 'shape' => '__string', ], ], 'required' => [], ], 'EmailChannelResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', ], 'ConfigurationSet' => [ 'shape' => '__string', ], 'CreationDate' => [ 'shape' => '__string', ], 'Enabled' => [ 'shape' => '__boolean', ], 'FromAddress' => [ 'shape' => '__string', ], 'HasCredential' => [ 'shape' => '__boolean', ], 'Id' => [ 'shape' => '__string', ], 'Identity' => [ 'shape' => '__string', ], 'IsArchived' => [ 'shape' => '__boolean', ], 'LastModifiedBy' => [ 'shape' => '__string', ], 'LastModifiedDate' => [ 'shape' => '__string', ], 'MessagesPerSecond' => [ 'shape' => '__integer', ], 'Platform' => [ 'shape' => '__string', ], 'RoleArn' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__integer', ], ], 'required' => [], ], 'EmailMessage' => [ 'type' => 'structure', 'members' => [ 'Body' => [ 'shape' => '__string', ], 'FeedbackForwardingAddress' => [ 'shape' => '__string', ], 'FromAddress' => [ 'shape' => '__string', ], 'RawEmail' => [ 'shape' => 'RawEmail', ], 'ReplyToAddresses' => [ 'shape' => 'ListOf__string', ], 'SimpleEmail' => [ 'shape' => 'SimpleEmail', ], 'Substitutions' => [ 'shape' => 'MapOfListOf__string', ], ], ], 'EndpointBatchItem' => [ 'type' => 'structure', 'members' => [ 'Address' => [ 'shape' => '__string', ], 'Attributes' => [ 'shape' => 'MapOfListOf__string', ], 'ChannelType' => [ 'shape' => 'ChannelType', ], 'Demographic' => [ 'shape' => 'EndpointDemographic', ], 'EffectiveDate' => [ 'shape' => '__string', ], 'EndpointStatus' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'Location' => [ 'shape' => 'EndpointLocation', ], 'Metrics' => [ 'shape' => 'MapOf__double', ], 'OptOut' => [ 'shape' => '__string', ], 'RequestId' => [ 'shape' => '__string', ], 'User' => [ 'shape' => 'EndpointUser', ], ], ], 'EndpointBatchRequest' => [ 'type' => 'structure', 'members' => [ 'Item' => [ 'shape' => 'ListOfEndpointBatchItem', ], ], 'required' => [], ], 'EndpointDemographic' => [ 'type' => 'structure', 'members' => [ 'AppVersion' => [ 'shape' => '__string', ], 'Locale' => [ 'shape' => '__string', ], 'Make' => [ 'shape' => '__string', ], 'Model' => [ 'shape' => '__string', ], 'ModelVersion' => [ 'shape' => '__string', ], 'Platform' => [ 'shape' => '__string', ], 'PlatformVersion' => [ 'shape' => '__string', ], 'Timezone' => [ 'shape' => '__string', ], ], ], 'EndpointItemResponse' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', ], 'StatusCode' => [ 'shape' => '__integer', ], ], ], 'EndpointLocation' => [ 'type' => 'structure', 'members' => [ 'City' => [ 'shape' => '__string', ], 'Country' => [ 'shape' => '__string', ], 'Latitude' => [ 'shape' => '__double', ], 'Longitude' => [ 'shape' => '__double', ], 'PostalCode' => [ 'shape' => '__string', ], 'Region' => [ 'shape' => '__string', ], ], ], 'EndpointMessageResult' => [ 'type' => 'structure', 'members' => [ 'Address' => [ 'shape' => '__string', ], 'DeliveryStatus' => [ 'shape' => 'DeliveryStatus', ], 'MessageId' => [ 'shape' => '__string', ], 'StatusCode' => [ 'shape' => '__integer', ], 'StatusMessage' => [ 'shape' => '__string', ], 'UpdatedToken' => [ 'shape' => '__string', ], ], 'required' => [], ], 'EndpointRequest' => [ 'type' => 'structure', 'members' => [ 'Address' => [ 'shape' => '__string', ], 'Attributes' => [ 'shape' => 'MapOfListOf__string', ], 'ChannelType' => [ 'shape' => 'ChannelType', ], 'Demographic' => [ 'shape' => 'EndpointDemographic', ], 'EffectiveDate' => [ 'shape' => '__string', ], 'EndpointStatus' => [ 'shape' => '__string', ], 'Location' => [ 'shape' => 'EndpointLocation', ], 'Metrics' => [ 'shape' => 'MapOf__double', ], 'OptOut' => [ 'shape' => '__string', ], 'RequestId' => [ 'shape' => '__string', ], 'User' => [ 'shape' => 'EndpointUser', ], ], ], 'EndpointResponse' => [ 'type' => 'structure', 'members' => [ 'Address' => [ 'shape' => '__string', ], 'ApplicationId' => [ 'shape' => '__string', ], 'Attributes' => [ 'shape' => 'MapOfListOf__string', ], 'ChannelType' => [ 'shape' => 'ChannelType', ], 'CohortId' => [ 'shape' => '__string', ], 'CreationDate' => [ 'shape' => '__string', ], 'Demographic' => [ 'shape' => 'EndpointDemographic', ], 'EffectiveDate' => [ 'shape' => '__string', ], 'EndpointStatus' => [ 'shape' => '__string', ], 'Id' => [ 'shape' => '__string', ], 'Location' => [ 'shape' => 'EndpointLocation', ], 'Metrics' => [ 'shape' => 'MapOf__double', ], 'OptOut' => [ 'shape' => '__string', ], 'RequestId' => [ 'shape' => '__string', ], 'User' => [ 'shape' => 'EndpointUser', ], ], ], 'EndpointSendConfiguration' => [ 'type' => 'structure', 'members' => [ 'BodyOverride' => [ 'shape' => '__string', ], 'Context' => [ 'shape' => 'MapOf__string', ], 'RawContent' => [ 'shape' => '__string', ], 'Substitutions' => [ 'shape' => 'MapOfListOf__string', ], 'TitleOverride' => [ 'shape' => '__string', ], ], ], 'EndpointUser' => [ 'type' => 'structure', 'members' => [ 'UserAttributes' => [ 'shape' => 'MapOfListOf__string', ], 'UserId' => [ 'shape' => '__string', ], ], ], 'EndpointsResponse' => [ 'type' => 'structure', 'members' => [ 'Item' => [ 'shape' => 'ListOfEndpointResponse', ], ], 'required' => [], ], 'Event' => [ 'type' => 'structure', 'members' => [ 'AppPackageName' => [ 'shape' => '__string', ], 'AppTitle' => [ 'shape' => '__string', ], 'AppVersionCode' => [ 'shape' => '__string', ], 'Attributes' => [ 'shape' => 'MapOf__string', ], 'ClientSdkVersion' => [ 'shape' => '__string', ], 'EventType' => [ 'shape' => '__string', ], 'Metrics' => [ 'shape' => 'MapOf__double', ], 'SdkName' => [ 'shape' => '__string', ], 'Session' => [ 'shape' => 'Session', ], 'Timestamp' => [ 'shape' => '__string', ], ], 'required' => [], ], 'EventDimensions' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'MapOfAttributeDimension', ], 'EventType' => [ 'shape' => 'SetDimension', ], 'Metrics' => [ 'shape' => 'MapOfMetricDimension', ], ], ], 'EventItemResponse' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', ], 'StatusCode' => [ 'shape' => '__integer', ], ], ], 'EventStream' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', ], 'DestinationStreamArn' => [ 'shape' => '__string', ], 'ExternalId' => [ 'shape' => '__string', ], 'LastModifiedDate' => [ 'shape' => '__string', ], 'LastUpdatedBy' => [ 'shape' => '__string', ], 'RoleArn' => [ 'shape' => '__string', ], ], 'required' => [], ], 'EventsBatch' => [ 'type' => 'structure', 'members' => [ 'Endpoint' => [ 'shape' => 'PublicEndpoint', ], 'Events' => [ 'shape' => 'MapOfEvent', ], ], 'required' => [], ], 'EventsRequest' => [ 'type' => 'structure', 'members' => [ 'BatchItem' => [ 'shape' => 'MapOfEventsBatch', ], ], 'required' => [], ], 'EventsResponse' => [ 'type' => 'structure', 'members' => [ 'Results' => [ 'shape' => 'MapOfItemResponse', ], ], ], 'ExportJobRequest' => [ 'type' => 'structure', 'members' => [ 'RoleArn' => [ 'shape' => '__string', ], 'S3UrlPrefix' => [ 'shape' => '__string', ], 'SegmentId' => [ 'shape' => '__string', ], 'SegmentVersion' => [ 'shape' => '__integer', ], ], 'required' => [], ], 'ExportJobResource' => [ 'type' => 'structure', 'members' => [ 'RoleArn' => [ 'shape' => '__string', ], 'S3UrlPrefix' => [ 'shape' => '__string', ], 'SegmentId' => [ 'shape' => '__string', ], 'SegmentVersion' => [ 'shape' => '__integer', ], ], 'required' => [], ], 'ExportJobResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', ], 'CompletedPieces' => [ 'shape' => '__integer', ], 'CompletionDate' => [ 'shape' => '__string', ], 'CreationDate' => [ 'shape' => '__string', ], 'Definition' => [ 'shape' => 'ExportJobResource', ], 'FailedPieces' => [ 'shape' => '__integer', ], 'Failures' => [ 'shape' => 'ListOf__string', ], 'Id' => [ 'shape' => '__string', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], 'TotalFailures' => [ 'shape' => '__integer', ], 'TotalPieces' => [ 'shape' => '__integer', ], 'TotalProcessed' => [ 'shape' => '__integer', ], 'Type' => [ 'shape' => '__string', ], ], 'required' => [], ], 'ExportJobsResponse' => [ 'type' => 'structure', 'members' => [ 'Item' => [ 'shape' => 'ListOfExportJobResponse', ], 'NextToken' => [ 'shape' => '__string', ], ], 'required' => [], ], 'FilterType' => [ 'type' => 'string', 'enum' => [ 'SYSTEM', 'ENDPOINT', ], ], 'ForbiddenException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', ], 'RequestID' => [ 'shape' => '__string', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 403, ], ], 'Format' => [ 'type' => 'string', 'enum' => [ 'CSV', 'JSON', ], ], 'Frequency' => [ 'type' => 'string', 'enum' => [ 'ONCE', 'HOURLY', 'DAILY', 'WEEKLY', 'MONTHLY', 'EVENT', ], ], 'GCMChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApiKey' => [ 'shape' => '__string', ], 'Enabled' => [ 'shape' => '__boolean', ], ], 'required' => [], ], 'GCMChannelResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', ], 'CreationDate' => [ 'shape' => '__string', ], 'Credential' => [ 'shape' => '__string', ], 'Enabled' => [ 'shape' => '__boolean', ], 'HasCredential' => [ 'shape' => '__boolean', ], 'Id' => [ 'shape' => '__string', ], 'IsArchived' => [ 'shape' => '__boolean', ], 'LastModifiedBy' => [ 'shape' => '__string', ], 'LastModifiedDate' => [ 'shape' => '__string', ], 'Platform' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__integer', ], ], 'required' => [], ], 'GCMMessage' => [ 'type' => 'structure', 'members' => [ 'Action' => [ 'shape' => 'Action', ], 'Body' => [ 'shape' => '__string', ], 'CollapseKey' => [ 'shape' => '__string', ], 'Data' => [ 'shape' => 'MapOf__string', ], 'IconReference' => [ 'shape' => '__string', ], 'ImageIconUrl' => [ 'shape' => '__string', ], 'ImageUrl' => [ 'shape' => '__string', ], 'Priority' => [ 'shape' => '__string', ], 'RawContent' => [ 'shape' => '__string', ], 'RestrictedPackageName' => [ 'shape' => '__string', ], 'SilentPush' => [ 'shape' => '__boolean', ], 'SmallImageIconUrl' => [ 'shape' => '__string', ], 'Sound' => [ 'shape' => '__string', ], 'Substitutions' => [ 'shape' => 'MapOfListOf__string', ], 'TimeToLive' => [ 'shape' => '__integer', ], 'Title' => [ 'shape' => '__string', ], 'Url' => [ 'shape' => '__string', ], ], ], 'GPSCoordinates' => [ 'type' => 'structure', 'members' => [ 'Latitude' => [ 'shape' => '__double', ], 'Longitude' => [ 'shape' => '__double', ], ], 'required' => [], ], 'GPSPointDimension' => [ 'type' => 'structure', 'members' => [ 'Coordinates' => [ 'shape' => 'GPSCoordinates', ], 'RangeInKilometers' => [ 'shape' => '__double', ], ], 'required' => [], ], 'GetAdmChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'GetAdmChannelResponse' => [ 'type' => 'structure', 'members' => [ 'ADMChannelResponse' => [ 'shape' => 'ADMChannelResponse', ], ], 'required' => [ 'ADMChannelResponse', ], 'payload' => 'ADMChannelResponse', ], 'GetApnsChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'GetApnsChannelResponse' => [ 'type' => 'structure', 'members' => [ 'APNSChannelResponse' => [ 'shape' => 'APNSChannelResponse', ], ], 'required' => [ 'APNSChannelResponse', ], 'payload' => 'APNSChannelResponse', ], 'GetApnsSandboxChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'GetApnsSandboxChannelResponse' => [ 'type' => 'structure', 'members' => [ 'APNSSandboxChannelResponse' => [ 'shape' => 'APNSSandboxChannelResponse', ], ], 'required' => [ 'APNSSandboxChannelResponse', ], 'payload' => 'APNSSandboxChannelResponse', ], 'GetApnsVoipChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'GetApnsVoipChannelResponse' => [ 'type' => 'structure', 'members' => [ 'APNSVoipChannelResponse' => [ 'shape' => 'APNSVoipChannelResponse', ], ], 'required' => [ 'APNSVoipChannelResponse', ], 'payload' => 'APNSVoipChannelResponse', ], 'GetApnsVoipSandboxChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'GetApnsVoipSandboxChannelResponse' => [ 'type' => 'structure', 'members' => [ 'APNSVoipSandboxChannelResponse' => [ 'shape' => 'APNSVoipSandboxChannelResponse', ], ], 'required' => [ 'APNSVoipSandboxChannelResponse', ], 'payload' => 'APNSVoipSandboxChannelResponse', ], 'GetAppRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'GetAppResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationResponse' => [ 'shape' => 'ApplicationResponse', ], ], 'required' => [ 'ApplicationResponse', ], 'payload' => 'ApplicationResponse', ], 'GetApplicationSettingsRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'GetApplicationSettingsResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationSettingsResource' => [ 'shape' => 'ApplicationSettingsResource', ], ], 'required' => [ 'ApplicationSettingsResource', ], 'payload' => 'ApplicationSettingsResource', ], 'GetAppsRequest' => [ 'type' => 'structure', 'members' => [ 'PageSize' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'page-size', ], 'Token' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'token', ], ], ], 'GetAppsResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationsResponse' => [ 'shape' => 'ApplicationsResponse', ], ], 'required' => [ 'ApplicationsResponse', ], 'payload' => 'ApplicationsResponse', ], 'GetBaiduChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'GetBaiduChannelResponse' => [ 'type' => 'structure', 'members' => [ 'BaiduChannelResponse' => [ 'shape' => 'BaiduChannelResponse', ], ], 'required' => [ 'BaiduChannelResponse', ], 'payload' => 'BaiduChannelResponse', ], 'GetCampaignActivitiesRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'CampaignId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'campaign-id', ], 'PageSize' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'page-size', ], 'Token' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'token', ], ], 'required' => [ 'ApplicationId', 'CampaignId', ], ], 'GetCampaignActivitiesResponse' => [ 'type' => 'structure', 'members' => [ 'ActivitiesResponse' => [ 'shape' => 'ActivitiesResponse', ], ], 'required' => [ 'ActivitiesResponse', ], 'payload' => 'ActivitiesResponse', ], 'GetCampaignRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'CampaignId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'campaign-id', ], ], 'required' => [ 'CampaignId', 'ApplicationId', ], ], 'GetCampaignResponse' => [ 'type' => 'structure', 'members' => [ 'CampaignResponse' => [ 'shape' => 'CampaignResponse', ], ], 'required' => [ 'CampaignResponse', ], 'payload' => 'CampaignResponse', ], 'GetCampaignVersionRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'CampaignId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'campaign-id', ], 'Version' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'version', ], ], 'required' => [ 'Version', 'ApplicationId', 'CampaignId', ], ], 'GetCampaignVersionResponse' => [ 'type' => 'structure', 'members' => [ 'CampaignResponse' => [ 'shape' => 'CampaignResponse', ], ], 'required' => [ 'CampaignResponse', ], 'payload' => 'CampaignResponse', ], 'GetCampaignVersionsRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'CampaignId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'campaign-id', ], 'PageSize' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'page-size', ], 'Token' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'token', ], ], 'required' => [ 'ApplicationId', 'CampaignId', ], ], 'GetCampaignVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'CampaignsResponse' => [ 'shape' => 'CampaignsResponse', ], ], 'required' => [ 'CampaignsResponse', ], 'payload' => 'CampaignsResponse', ], 'GetCampaignsRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'PageSize' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'page-size', ], 'Token' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'token', ], ], 'required' => [ 'ApplicationId', ], ], 'GetCampaignsResponse' => [ 'type' => 'structure', 'members' => [ 'CampaignsResponse' => [ 'shape' => 'CampaignsResponse', ], ], 'required' => [ 'CampaignsResponse', ], 'payload' => 'CampaignsResponse', ], 'GetChannelsRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'GetChannelsResponse' => [ 'type' => 'structure', 'members' => [ 'ChannelsResponse' => [ 'shape' => 'ChannelsResponse', ], ], 'required' => [ 'ChannelsResponse', ], 'payload' => 'ChannelsResponse', ], 'GetEmailChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'GetEmailChannelResponse' => [ 'type' => 'structure', 'members' => [ 'EmailChannelResponse' => [ 'shape' => 'EmailChannelResponse', ], ], 'required' => [ 'EmailChannelResponse', ], 'payload' => 'EmailChannelResponse', ], 'GetEndpointRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'EndpointId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'endpoint-id', ], ], 'required' => [ 'ApplicationId', 'EndpointId', ], ], 'GetEndpointResponse' => [ 'type' => 'structure', 'members' => [ 'EndpointResponse' => [ 'shape' => 'EndpointResponse', ], ], 'required' => [ 'EndpointResponse', ], 'payload' => 'EndpointResponse', ], 'GetEventStreamRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'GetEventStreamResponse' => [ 'type' => 'structure', 'members' => [ 'EventStream' => [ 'shape' => 'EventStream', ], ], 'required' => [ 'EventStream', ], 'payload' => 'EventStream', ], 'GetExportJobRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'JobId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'job-id', ], ], 'required' => [ 'ApplicationId', 'JobId', ], ], 'GetExportJobResponse' => [ 'type' => 'structure', 'members' => [ 'ExportJobResponse' => [ 'shape' => 'ExportJobResponse', ], ], 'required' => [ 'ExportJobResponse', ], 'payload' => 'ExportJobResponse', ], 'GetExportJobsRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'PageSize' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'page-size', ], 'Token' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'token', ], ], 'required' => [ 'ApplicationId', ], ], 'GetExportJobsResponse' => [ 'type' => 'structure', 'members' => [ 'ExportJobsResponse' => [ 'shape' => 'ExportJobsResponse', ], ], 'required' => [ 'ExportJobsResponse', ], 'payload' => 'ExportJobsResponse', ], 'GetGcmChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'GetGcmChannelResponse' => [ 'type' => 'structure', 'members' => [ 'GCMChannelResponse' => [ 'shape' => 'GCMChannelResponse', ], ], 'required' => [ 'GCMChannelResponse', ], 'payload' => 'GCMChannelResponse', ], 'GetImportJobRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'JobId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'job-id', ], ], 'required' => [ 'ApplicationId', 'JobId', ], ], 'GetImportJobResponse' => [ 'type' => 'structure', 'members' => [ 'ImportJobResponse' => [ 'shape' => 'ImportJobResponse', ], ], 'required' => [ 'ImportJobResponse', ], 'payload' => 'ImportJobResponse', ], 'GetImportJobsRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'PageSize' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'page-size', ], 'Token' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'token', ], ], 'required' => [ 'ApplicationId', ], ], 'GetImportJobsResponse' => [ 'type' => 'structure', 'members' => [ 'ImportJobsResponse' => [ 'shape' => 'ImportJobsResponse', ], ], 'required' => [ 'ImportJobsResponse', ], 'payload' => 'ImportJobsResponse', ], 'GetSegmentExportJobsRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'PageSize' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'page-size', ], 'SegmentId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'segment-id', ], 'Token' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'token', ], ], 'required' => [ 'SegmentId', 'ApplicationId', ], ], 'GetSegmentExportJobsResponse' => [ 'type' => 'structure', 'members' => [ 'ExportJobsResponse' => [ 'shape' => 'ExportJobsResponse', ], ], 'required' => [ 'ExportJobsResponse', ], 'payload' => 'ExportJobsResponse', ], 'GetSegmentImportJobsRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'PageSize' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'page-size', ], 'SegmentId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'segment-id', ], 'Token' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'token', ], ], 'required' => [ 'SegmentId', 'ApplicationId', ], ], 'GetSegmentImportJobsResponse' => [ 'type' => 'structure', 'members' => [ 'ImportJobsResponse' => [ 'shape' => 'ImportJobsResponse', ], ], 'required' => [ 'ImportJobsResponse', ], 'payload' => 'ImportJobsResponse', ], 'GetSegmentRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'SegmentId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'segment-id', ], ], 'required' => [ 'SegmentId', 'ApplicationId', ], ], 'GetSegmentResponse' => [ 'type' => 'structure', 'members' => [ 'SegmentResponse' => [ 'shape' => 'SegmentResponse', ], ], 'required' => [ 'SegmentResponse', ], 'payload' => 'SegmentResponse', ], 'GetSegmentVersionRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'SegmentId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'segment-id', ], 'Version' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'version', ], ], 'required' => [ 'SegmentId', 'Version', 'ApplicationId', ], ], 'GetSegmentVersionResponse' => [ 'type' => 'structure', 'members' => [ 'SegmentResponse' => [ 'shape' => 'SegmentResponse', ], ], 'required' => [ 'SegmentResponse', ], 'payload' => 'SegmentResponse', ], 'GetSegmentVersionsRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'PageSize' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'page-size', ], 'SegmentId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'segment-id', ], 'Token' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'token', ], ], 'required' => [ 'SegmentId', 'ApplicationId', ], ], 'GetSegmentVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'SegmentsResponse' => [ 'shape' => 'SegmentsResponse', ], ], 'required' => [ 'SegmentsResponse', ], 'payload' => 'SegmentsResponse', ], 'GetSegmentsRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'PageSize' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'page-size', ], 'Token' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'token', ], ], 'required' => [ 'ApplicationId', ], ], 'GetSegmentsResponse' => [ 'type' => 'structure', 'members' => [ 'SegmentsResponse' => [ 'shape' => 'SegmentsResponse', ], ], 'required' => [ 'SegmentsResponse', ], 'payload' => 'SegmentsResponse', ], 'GetSmsChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'GetSmsChannelResponse' => [ 'type' => 'structure', 'members' => [ 'SMSChannelResponse' => [ 'shape' => 'SMSChannelResponse', ], ], 'required' => [ 'SMSChannelResponse', ], 'payload' => 'SMSChannelResponse', ], 'GetUserEndpointsRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'UserId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'user-id', ], ], 'required' => [ 'ApplicationId', 'UserId', ], ], 'GetUserEndpointsResponse' => [ 'type' => 'structure', 'members' => [ 'EndpointsResponse' => [ 'shape' => 'EndpointsResponse', ], ], 'required' => [ 'EndpointsResponse', ], 'payload' => 'EndpointsResponse', ], 'GetVoiceChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', ], ], 'GetVoiceChannelResponse' => [ 'type' => 'structure', 'members' => [ 'VoiceChannelResponse' => [ 'shape' => 'VoiceChannelResponse', ], ], 'required' => [ 'VoiceChannelResponse', ], 'payload' => 'VoiceChannelResponse', ], 'ImportJobRequest' => [ 'type' => 'structure', 'members' => [ 'DefineSegment' => [ 'shape' => '__boolean', ], 'ExternalId' => [ 'shape' => '__string', ], 'Format' => [ 'shape' => 'Format', ], 'RegisterEndpoints' => [ 'shape' => '__boolean', ], 'RoleArn' => [ 'shape' => '__string', ], 'S3Url' => [ 'shape' => '__string', ], 'SegmentId' => [ 'shape' => '__string', ], 'SegmentName' => [ 'shape' => '__string', ], ], 'required' => [], ], 'ImportJobResource' => [ 'type' => 'structure', 'members' => [ 'DefineSegment' => [ 'shape' => '__boolean', ], 'ExternalId' => [ 'shape' => '__string', ], 'Format' => [ 'shape' => 'Format', ], 'RegisterEndpoints' => [ 'shape' => '__boolean', ], 'RoleArn' => [ 'shape' => '__string', ], 'S3Url' => [ 'shape' => '__string', ], 'SegmentId' => [ 'shape' => '__string', ], 'SegmentName' => [ 'shape' => '__string', ], ], 'required' => [], ], 'ImportJobResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', ], 'CompletedPieces' => [ 'shape' => '__integer', ], 'CompletionDate' => [ 'shape' => '__string', ], 'CreationDate' => [ 'shape' => '__string', ], 'Definition' => [ 'shape' => 'ImportJobResource', ], 'FailedPieces' => [ 'shape' => '__integer', ], 'Failures' => [ 'shape' => 'ListOf__string', ], 'Id' => [ 'shape' => '__string', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], 'TotalFailures' => [ 'shape' => '__integer', ], 'TotalPieces' => [ 'shape' => '__integer', ], 'TotalProcessed' => [ 'shape' => '__integer', ], 'Type' => [ 'shape' => '__string', ], ], 'required' => [], ], 'ImportJobsResponse' => [ 'type' => 'structure', 'members' => [ 'Item' => [ 'shape' => 'ListOfImportJobResponse', ], 'NextToken' => [ 'shape' => '__string', ], ], 'required' => [], ], 'Include' => [ 'type' => 'string', 'enum' => [ 'ALL', 'ANY', 'NONE', ], ], 'InternalServerErrorException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', ], 'RequestID' => [ 'shape' => '__string', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 500, ], ], 'ItemResponse' => [ 'type' => 'structure', 'members' => [ 'EndpointItemResponse' => [ 'shape' => 'EndpointItemResponse', ], 'EventsItemResponse' => [ 'shape' => 'MapOfEventItemResponse', ], ], ], 'JobStatus' => [ 'type' => 'string', 'enum' => [ 'CREATED', 'INITIALIZING', 'PROCESSING', 'COMPLETING', 'COMPLETED', 'FAILING', 'FAILED', ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'resource-arn', ], ], 'required' => [ 'ResourceArn', ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'TagsModel' => [ 'shape' => 'TagsModel', ], ], 'required' => [ 'TagsModel', ], 'payload' => 'TagsModel', ], 'Message' => [ 'type' => 'structure', 'members' => [ 'Action' => [ 'shape' => 'Action', ], 'Body' => [ 'shape' => '__string', ], 'ImageIconUrl' => [ 'shape' => '__string', ], 'ImageSmallIconUrl' => [ 'shape' => '__string', ], 'ImageUrl' => [ 'shape' => '__string', ], 'JsonBody' => [ 'shape' => '__string', ], 'MediaUrl' => [ 'shape' => '__string', ], 'RawContent' => [ 'shape' => '__string', ], 'SilentPush' => [ 'shape' => '__boolean', ], 'TimeToLive' => [ 'shape' => '__integer', ], 'Title' => [ 'shape' => '__string', ], 'Url' => [ 'shape' => '__string', ], ], 'required' => [], ], 'MessageBody' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', ], 'RequestID' => [ 'shape' => '__string', ], ], ], 'MessageConfiguration' => [ 'type' => 'structure', 'members' => [ 'ADMMessage' => [ 'shape' => 'Message', ], 'APNSMessage' => [ 'shape' => 'Message', ], 'BaiduMessage' => [ 'shape' => 'Message', ], 'DefaultMessage' => [ 'shape' => 'Message', ], 'EmailMessage' => [ 'shape' => 'CampaignEmailMessage', ], 'GCMMessage' => [ 'shape' => 'Message', ], 'SMSMessage' => [ 'shape' => 'CampaignSmsMessage', ], ], ], 'MessageRequest' => [ 'type' => 'structure', 'members' => [ 'Addresses' => [ 'shape' => 'MapOfAddressConfiguration', ], 'Context' => [ 'shape' => 'MapOf__string', ], 'Endpoints' => [ 'shape' => 'MapOfEndpointSendConfiguration', ], 'MessageConfiguration' => [ 'shape' => 'DirectMessageConfiguration', ], 'TraceId' => [ 'shape' => '__string', ], ], 'required' => [], ], 'MessageResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', ], 'EndpointResult' => [ 'shape' => 'MapOfEndpointMessageResult', ], 'RequestId' => [ 'shape' => '__string', ], 'Result' => [ 'shape' => 'MapOfMessageResult', ], ], 'required' => [], ], 'MessageResult' => [ 'type' => 'structure', 'members' => [ 'DeliveryStatus' => [ 'shape' => 'DeliveryStatus', ], 'MessageId' => [ 'shape' => '__string', ], 'StatusCode' => [ 'shape' => '__integer', ], 'StatusMessage' => [ 'shape' => '__string', ], 'UpdatedToken' => [ 'shape' => '__string', ], ], 'required' => [], ], 'MessageType' => [ 'type' => 'string', 'enum' => [ 'TRANSACTIONAL', 'PROMOTIONAL', ], ], 'MethodNotAllowedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', ], 'RequestID' => [ 'shape' => '__string', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 405, ], ], 'MetricDimension' => [ 'type' => 'structure', 'members' => [ 'ComparisonOperator' => [ 'shape' => '__string', ], 'Value' => [ 'shape' => '__double', ], ], 'required' => [], ], 'Mode' => [ 'type' => 'string', 'enum' => [ 'DELIVERY', 'FILTER', ], ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', ], 'RequestID' => [ 'shape' => '__string', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 404, ], ], 'NumberValidateRequest' => [ 'type' => 'structure', 'members' => [ 'IsoCountryCode' => [ 'shape' => '__string', ], 'PhoneNumber' => [ 'shape' => '__string', ], ], ], 'NumberValidateResponse' => [ 'type' => 'structure', 'members' => [ 'Carrier' => [ 'shape' => '__string', ], 'City' => [ 'shape' => '__string', ], 'CleansedPhoneNumberE164' => [ 'shape' => '__string', ], 'CleansedPhoneNumberNational' => [ 'shape' => '__string', ], 'Country' => [ 'shape' => '__string', ], 'CountryCodeIso2' => [ 'shape' => '__string', ], 'CountryCodeNumeric' => [ 'shape' => '__string', ], 'County' => [ 'shape' => '__string', ], 'OriginalCountryCodeIso2' => [ 'shape' => '__string', ], 'OriginalPhoneNumber' => [ 'shape' => '__string', ], 'PhoneType' => [ 'shape' => '__string', ], 'PhoneTypeCode' => [ 'shape' => '__integer', ], 'Timezone' => [ 'shape' => '__string', ], 'ZipCode' => [ 'shape' => '__string', ], ], ], 'PhoneNumberValidateRequest' => [ 'type' => 'structure', 'members' => [ 'NumberValidateRequest' => [ 'shape' => 'NumberValidateRequest', ], ], 'required' => [ 'NumberValidateRequest', ], 'payload' => 'NumberValidateRequest', ], 'PhoneNumberValidateResponse' => [ 'type' => 'structure', 'members' => [ 'NumberValidateResponse' => [ 'shape' => 'NumberValidateResponse', ], ], 'required' => [ 'NumberValidateResponse', ], 'payload' => 'NumberValidateResponse', ], 'PublicEndpoint' => [ 'type' => 'structure', 'members' => [ 'Address' => [ 'shape' => '__string', ], 'Attributes' => [ 'shape' => 'MapOfListOf__string', ], 'ChannelType' => [ 'shape' => 'ChannelType', ], 'Demographic' => [ 'shape' => 'EndpointDemographic', ], 'EffectiveDate' => [ 'shape' => '__string', ], 'EndpointStatus' => [ 'shape' => '__string', ], 'Location' => [ 'shape' => 'EndpointLocation', ], 'Metrics' => [ 'shape' => 'MapOf__double', ], 'OptOut' => [ 'shape' => '__string', ], 'RequestId' => [ 'shape' => '__string', ], 'User' => [ 'shape' => 'EndpointUser', ], ], ], 'PutEventStreamRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'WriteEventStream' => [ 'shape' => 'WriteEventStream', ], ], 'required' => [ 'ApplicationId', 'WriteEventStream', ], 'payload' => 'WriteEventStream', ], 'PutEventStreamResponse' => [ 'type' => 'structure', 'members' => [ 'EventStream' => [ 'shape' => 'EventStream', ], ], 'required' => [ 'EventStream', ], 'payload' => 'EventStream', ], 'PutEventsRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'EventsRequest' => [ 'shape' => 'EventsRequest', ], ], 'required' => [ 'ApplicationId', 'EventsRequest', ], 'payload' => 'EventsRequest', ], 'PutEventsResponse' => [ 'type' => 'structure', 'members' => [ 'EventsResponse' => [ 'shape' => 'EventsResponse', ], ], 'required' => [ 'EventsResponse', ], 'payload' => 'EventsResponse', ], 'QuietTime' => [ 'type' => 'structure', 'members' => [ 'End' => [ 'shape' => '__string', ], 'Start' => [ 'shape' => '__string', ], ], ], 'RawEmail' => [ 'type' => 'structure', 'members' => [ 'Data' => [ 'shape' => '__blob', ], ], ], '__blob' => [ 'type' => 'blob', ], 'RecencyDimension' => [ 'type' => 'structure', 'members' => [ 'Duration' => [ 'shape' => 'Duration', ], 'RecencyType' => [ 'shape' => 'RecencyType', ], ], 'required' => [], ], 'RecencyType' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'INACTIVE', ], ], 'RemoveAttributesRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'AttributeType' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'attribute-type', ], 'UpdateAttributesRequest' => [ 'shape' => 'UpdateAttributesRequest', ], ], 'required' => [ 'AttributeType', 'ApplicationId', 'UpdateAttributesRequest', ], 'payload' => 'UpdateAttributesRequest', ], 'RemoveAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'AttributesResource' => [ 'shape' => 'AttributesResource', ], ], 'required' => [ 'AttributesResource', ], 'payload' => 'AttributesResource', ], 'SMSChannelRequest' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => '__boolean', ], 'SenderId' => [ 'shape' => '__string', ], 'ShortCode' => [ 'shape' => '__string', ], ], 'required' => [], ], 'SMSChannelResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', ], 'CreationDate' => [ 'shape' => '__string', ], 'Enabled' => [ 'shape' => '__boolean', ], 'HasCredential' => [ 'shape' => '__boolean', ], 'Id' => [ 'shape' => '__string', ], 'IsArchived' => [ 'shape' => '__boolean', ], 'LastModifiedBy' => [ 'shape' => '__string', ], 'LastModifiedDate' => [ 'shape' => '__string', ], 'Platform' => [ 'shape' => '__string', ], 'PromotionalMessagesPerSecond' => [ 'shape' => '__integer', ], 'SenderId' => [ 'shape' => '__string', ], 'ShortCode' => [ 'shape' => '__string', ], 'TransactionalMessagesPerSecond' => [ 'shape' => '__integer', ], 'Version' => [ 'shape' => '__integer', ], ], 'required' => [], ], 'SMSMessage' => [ 'type' => 'structure', 'members' => [ 'Body' => [ 'shape' => '__string', ], 'Keyword' => [ 'shape' => '__string', ], 'MessageType' => [ 'shape' => 'MessageType', ], 'OriginationNumber' => [ 'shape' => '__string', ], 'SenderId' => [ 'shape' => '__string', ], 'Substitutions' => [ 'shape' => 'MapOfListOf__string', ], ], ], 'Schedule' => [ 'type' => 'structure', 'members' => [ 'EndTime' => [ 'shape' => '__string', ], 'EventFilter' => [ 'shape' => 'CampaignEventFilter', ], 'Frequency' => [ 'shape' => 'Frequency', ], 'IsLocalTime' => [ 'shape' => '__boolean', ], 'QuietTime' => [ 'shape' => 'QuietTime', ], 'StartTime' => [ 'shape' => '__string', ], 'Timezone' => [ 'shape' => '__string', ], ], 'required' => [], ], 'SegmentBehaviors' => [ 'type' => 'structure', 'members' => [ 'Recency' => [ 'shape' => 'RecencyDimension', ], ], ], 'SegmentDemographics' => [ 'type' => 'structure', 'members' => [ 'AppVersion' => [ 'shape' => 'SetDimension', ], 'Channel' => [ 'shape' => 'SetDimension', ], 'DeviceType' => [ 'shape' => 'SetDimension', ], 'Make' => [ 'shape' => 'SetDimension', ], 'Model' => [ 'shape' => 'SetDimension', ], 'Platform' => [ 'shape' => 'SetDimension', ], ], ], 'SegmentDimensions' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'MapOfAttributeDimension', ], 'Behavior' => [ 'shape' => 'SegmentBehaviors', ], 'Demographic' => [ 'shape' => 'SegmentDemographics', ], 'Location' => [ 'shape' => 'SegmentLocation', ], 'Metrics' => [ 'shape' => 'MapOfMetricDimension', ], 'UserAttributes' => [ 'shape' => 'MapOfAttributeDimension', ], ], ], 'SegmentGroup' => [ 'type' => 'structure', 'members' => [ 'Dimensions' => [ 'shape' => 'ListOfSegmentDimensions', ], 'SourceSegments' => [ 'shape' => 'ListOfSegmentReference', ], 'SourceType' => [ 'shape' => 'SourceType', ], 'Type' => [ 'shape' => 'Type', ], ], 'required' => [], ], 'SegmentGroupList' => [ 'type' => 'structure', 'members' => [ 'Groups' => [ 'shape' => 'ListOfSegmentGroup', ], 'Include' => [ 'shape' => 'Include', ], ], 'required' => [], ], 'SegmentImportResource' => [ 'type' => 'structure', 'members' => [ 'ChannelCounts' => [ 'shape' => 'MapOf__integer', ], 'ExternalId' => [ 'shape' => '__string', ], 'Format' => [ 'shape' => 'Format', ], 'RoleArn' => [ 'shape' => '__string', ], 'S3Url' => [ 'shape' => '__string', ], 'Size' => [ 'shape' => '__integer', ], ], 'required' => [], ], 'SegmentLocation' => [ 'type' => 'structure', 'members' => [ 'Country' => [ 'shape' => 'SetDimension', ], 'GPSPoint' => [ 'shape' => 'GPSPointDimension', ], ], ], 'SegmentReference' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__integer', ], ], 'required' => [], ], 'SegmentResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', ], 'Arn' => [ 'shape' => '__string', ], 'CreationDate' => [ 'shape' => '__string', ], 'Dimensions' => [ 'shape' => 'SegmentDimensions', ], 'Id' => [ 'shape' => '__string', ], 'ImportDefinition' => [ 'shape' => 'SegmentImportResource', ], 'LastModifiedDate' => [ 'shape' => '__string', ], 'Name' => [ 'shape' => '__string', ], 'SegmentGroups' => [ 'shape' => 'SegmentGroupList', ], 'SegmentType' => [ 'shape' => 'SegmentType', ], 'tags' => [ 'shape' => 'MapOf__string', 'locationName' => 'tags', ], 'Version' => [ 'shape' => '__integer', ], ], 'required' => [], ], 'SegmentType' => [ 'type' => 'string', 'enum' => [ 'DIMENSIONAL', 'IMPORT', ], ], 'SegmentsResponse' => [ 'type' => 'structure', 'members' => [ 'Item' => [ 'shape' => 'ListOfSegmentResponse', ], 'NextToken' => [ 'shape' => '__string', ], ], 'required' => [], ], 'SendMessagesRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'MessageRequest' => [ 'shape' => 'MessageRequest', ], ], 'required' => [ 'ApplicationId', 'MessageRequest', ], 'payload' => 'MessageRequest', ], 'SendMessagesResponse' => [ 'type' => 'structure', 'members' => [ 'MessageResponse' => [ 'shape' => 'MessageResponse', ], ], 'required' => [ 'MessageResponse', ], 'payload' => 'MessageResponse', ], 'SendUsersMessageRequest' => [ 'type' => 'structure', 'members' => [ 'Context' => [ 'shape' => 'MapOf__string', ], 'MessageConfiguration' => [ 'shape' => 'DirectMessageConfiguration', ], 'TraceId' => [ 'shape' => '__string', ], 'Users' => [ 'shape' => 'MapOfEndpointSendConfiguration', ], ], 'required' => [], ], 'SendUsersMessageResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', ], 'RequestId' => [ 'shape' => '__string', ], 'Result' => [ 'shape' => 'MapOfMapOfEndpointMessageResult', ], ], 'required' => [], ], 'SendUsersMessagesRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'SendUsersMessageRequest' => [ 'shape' => 'SendUsersMessageRequest', ], ], 'required' => [ 'ApplicationId', 'SendUsersMessageRequest', ], 'payload' => 'SendUsersMessageRequest', ], 'SendUsersMessagesResponse' => [ 'type' => 'structure', 'members' => [ 'SendUsersMessageResponse' => [ 'shape' => 'SendUsersMessageResponse', ], ], 'required' => [ 'SendUsersMessageResponse', ], 'payload' => 'SendUsersMessageResponse', ], 'Session' => [ 'type' => 'structure', 'members' => [ 'Duration' => [ 'shape' => '__integer', ], 'Id' => [ 'shape' => '__string', ], 'StartTimestamp' => [ 'shape' => '__string', ], 'StopTimestamp' => [ 'shape' => '__string', ], ], 'required' => [], ], 'SetDimension' => [ 'type' => 'structure', 'members' => [ 'DimensionType' => [ 'shape' => 'DimensionType', ], 'Values' => [ 'shape' => 'ListOf__string', ], ], 'required' => [], ], 'SimpleEmail' => [ 'type' => 'structure', 'members' => [ 'HtmlPart' => [ 'shape' => 'SimpleEmailPart', ], 'Subject' => [ 'shape' => 'SimpleEmailPart', ], 'TextPart' => [ 'shape' => 'SimpleEmailPart', ], ], ], 'SimpleEmailPart' => [ 'type' => 'structure', 'members' => [ 'Charset' => [ 'shape' => '__string', ], 'Data' => [ 'shape' => '__string', ], ], ], 'SourceType' => [ 'type' => 'string', 'enum' => [ 'ALL', 'ANY', 'NONE', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'resource-arn', ], 'TagsModel' => [ 'shape' => 'TagsModel', ], ], 'required' => [ 'ResourceArn', 'TagsModel', ], 'payload' => 'TagsModel', ], 'TagsModel' => [ 'type' => 'structure', 'members' => [ 'tags' => [ 'shape' => 'MapOf__string', 'locationName' => 'tags', ], ], 'required' => [ 'tags', ], ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => '__string', ], 'RequestID' => [ 'shape' => '__string', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 429, ], ], 'TreatmentResource' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => '__string', ], 'MessageConfiguration' => [ 'shape' => 'MessageConfiguration', ], 'Schedule' => [ 'shape' => 'Schedule', ], 'SizePercent' => [ 'shape' => '__integer', ], 'State' => [ 'shape' => 'CampaignState', ], 'TreatmentDescription' => [ 'shape' => '__string', ], 'TreatmentName' => [ 'shape' => '__string', ], ], 'required' => [], ], 'Type' => [ 'type' => 'string', 'enum' => [ 'ALL', 'ANY', 'NONE', ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'resource-arn', ], 'TagKeys' => [ 'shape' => 'ListOf__string', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], 'required' => [ 'TagKeys', 'ResourceArn', ], ], 'UpdateAdmChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ADMChannelRequest' => [ 'shape' => 'ADMChannelRequest', ], 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', 'ADMChannelRequest', ], 'payload' => 'ADMChannelRequest', ], 'UpdateAdmChannelResponse' => [ 'type' => 'structure', 'members' => [ 'ADMChannelResponse' => [ 'shape' => 'ADMChannelResponse', ], ], 'required' => [ 'ADMChannelResponse', ], 'payload' => 'ADMChannelResponse', ], 'UpdateApnsChannelRequest' => [ 'type' => 'structure', 'members' => [ 'APNSChannelRequest' => [ 'shape' => 'APNSChannelRequest', ], 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', 'APNSChannelRequest', ], 'payload' => 'APNSChannelRequest', ], 'UpdateApnsChannelResponse' => [ 'type' => 'structure', 'members' => [ 'APNSChannelResponse' => [ 'shape' => 'APNSChannelResponse', ], ], 'required' => [ 'APNSChannelResponse', ], 'payload' => 'APNSChannelResponse', ], 'UpdateApnsSandboxChannelRequest' => [ 'type' => 'structure', 'members' => [ 'APNSSandboxChannelRequest' => [ 'shape' => 'APNSSandboxChannelRequest', ], 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', 'APNSSandboxChannelRequest', ], 'payload' => 'APNSSandboxChannelRequest', ], 'UpdateApnsSandboxChannelResponse' => [ 'type' => 'structure', 'members' => [ 'APNSSandboxChannelResponse' => [ 'shape' => 'APNSSandboxChannelResponse', ], ], 'required' => [ 'APNSSandboxChannelResponse', ], 'payload' => 'APNSSandboxChannelResponse', ], 'UpdateApnsVoipChannelRequest' => [ 'type' => 'structure', 'members' => [ 'APNSVoipChannelRequest' => [ 'shape' => 'APNSVoipChannelRequest', ], 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', 'APNSVoipChannelRequest', ], 'payload' => 'APNSVoipChannelRequest', ], 'UpdateApnsVoipChannelResponse' => [ 'type' => 'structure', 'members' => [ 'APNSVoipChannelResponse' => [ 'shape' => 'APNSVoipChannelResponse', ], ], 'required' => [ 'APNSVoipChannelResponse', ], 'payload' => 'APNSVoipChannelResponse', ], 'UpdateApnsVoipSandboxChannelRequest' => [ 'type' => 'structure', 'members' => [ 'APNSVoipSandboxChannelRequest' => [ 'shape' => 'APNSVoipSandboxChannelRequest', ], 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], ], 'required' => [ 'ApplicationId', 'APNSVoipSandboxChannelRequest', ], 'payload' => 'APNSVoipSandboxChannelRequest', ], 'UpdateApnsVoipSandboxChannelResponse' => [ 'type' => 'structure', 'members' => [ 'APNSVoipSandboxChannelResponse' => [ 'shape' => 'APNSVoipSandboxChannelResponse', ], ], 'required' => [ 'APNSVoipSandboxChannelResponse', ], 'payload' => 'APNSVoipSandboxChannelResponse', ], 'UpdateApplicationSettingsRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'WriteApplicationSettingsRequest' => [ 'shape' => 'WriteApplicationSettingsRequest', ], ], 'required' => [ 'ApplicationId', 'WriteApplicationSettingsRequest', ], 'payload' => 'WriteApplicationSettingsRequest', ], 'UpdateApplicationSettingsResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationSettingsResource' => [ 'shape' => 'ApplicationSettingsResource', ], ], 'required' => [ 'ApplicationSettingsResource', ], 'payload' => 'ApplicationSettingsResource', ], 'UpdateAttributesRequest' => [ 'type' => 'structure', 'members' => [ 'Blacklist' => [ 'shape' => 'ListOf__string', ], ], ], 'UpdateBaiduChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'BaiduChannelRequest' => [ 'shape' => 'BaiduChannelRequest', ], ], 'required' => [ 'ApplicationId', 'BaiduChannelRequest', ], 'payload' => 'BaiduChannelRequest', ], 'UpdateBaiduChannelResponse' => [ 'type' => 'structure', 'members' => [ 'BaiduChannelResponse' => [ 'shape' => 'BaiduChannelResponse', ], ], 'required' => [ 'BaiduChannelResponse', ], 'payload' => 'BaiduChannelResponse', ], 'UpdateCampaignRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'CampaignId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'campaign-id', ], 'WriteCampaignRequest' => [ 'shape' => 'WriteCampaignRequest', ], ], 'required' => [ 'CampaignId', 'ApplicationId', 'WriteCampaignRequest', ], 'payload' => 'WriteCampaignRequest', ], 'UpdateCampaignResponse' => [ 'type' => 'structure', 'members' => [ 'CampaignResponse' => [ 'shape' => 'CampaignResponse', ], ], 'required' => [ 'CampaignResponse', ], 'payload' => 'CampaignResponse', ], 'UpdateEmailChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'EmailChannelRequest' => [ 'shape' => 'EmailChannelRequest', ], ], 'required' => [ 'ApplicationId', 'EmailChannelRequest', ], 'payload' => 'EmailChannelRequest', ], 'UpdateEmailChannelResponse' => [ 'type' => 'structure', 'members' => [ 'EmailChannelResponse' => [ 'shape' => 'EmailChannelResponse', ], ], 'required' => [ 'EmailChannelResponse', ], 'payload' => 'EmailChannelResponse', ], 'UpdateEndpointRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'EndpointId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'endpoint-id', ], 'EndpointRequest' => [ 'shape' => 'EndpointRequest', ], ], 'required' => [ 'ApplicationId', 'EndpointId', 'EndpointRequest', ], 'payload' => 'EndpointRequest', ], 'UpdateEndpointResponse' => [ 'type' => 'structure', 'members' => [ 'MessageBody' => [ 'shape' => 'MessageBody', ], ], 'required' => [ 'MessageBody', ], 'payload' => 'MessageBody', ], 'UpdateEndpointsBatchRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'EndpointBatchRequest' => [ 'shape' => 'EndpointBatchRequest', ], ], 'required' => [ 'ApplicationId', 'EndpointBatchRequest', ], 'payload' => 'EndpointBatchRequest', ], 'UpdateEndpointsBatchResponse' => [ 'type' => 'structure', 'members' => [ 'MessageBody' => [ 'shape' => 'MessageBody', ], ], 'required' => [ 'MessageBody', ], 'payload' => 'MessageBody', ], 'UpdateGcmChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'GCMChannelRequest' => [ 'shape' => 'GCMChannelRequest', ], ], 'required' => [ 'ApplicationId', 'GCMChannelRequest', ], 'payload' => 'GCMChannelRequest', ], 'UpdateGcmChannelResponse' => [ 'type' => 'structure', 'members' => [ 'GCMChannelResponse' => [ 'shape' => 'GCMChannelResponse', ], ], 'required' => [ 'GCMChannelResponse', ], 'payload' => 'GCMChannelResponse', ], 'UpdateSegmentRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'SegmentId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'segment-id', ], 'WriteSegmentRequest' => [ 'shape' => 'WriteSegmentRequest', ], ], 'required' => [ 'SegmentId', 'ApplicationId', 'WriteSegmentRequest', ], 'payload' => 'WriteSegmentRequest', ], 'UpdateSegmentResponse' => [ 'type' => 'structure', 'members' => [ 'SegmentResponse' => [ 'shape' => 'SegmentResponse', ], ], 'required' => [ 'SegmentResponse', ], 'payload' => 'SegmentResponse', ], 'UpdateSmsChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'SMSChannelRequest' => [ 'shape' => 'SMSChannelRequest', ], ], 'required' => [ 'ApplicationId', 'SMSChannelRequest', ], 'payload' => 'SMSChannelRequest', ], 'UpdateSmsChannelResponse' => [ 'type' => 'structure', 'members' => [ 'SMSChannelResponse' => [ 'shape' => 'SMSChannelResponse', ], ], 'required' => [ 'SMSChannelResponse', ], 'payload' => 'SMSChannelResponse', ], 'UpdateVoiceChannelRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'application-id', ], 'VoiceChannelRequest' => [ 'shape' => 'VoiceChannelRequest', ], ], 'required' => [ 'ApplicationId', 'VoiceChannelRequest', ], 'payload' => 'VoiceChannelRequest', ], 'UpdateVoiceChannelResponse' => [ 'type' => 'structure', 'members' => [ 'VoiceChannelResponse' => [ 'shape' => 'VoiceChannelResponse', ], ], 'required' => [ 'VoiceChannelResponse', ], 'payload' => 'VoiceChannelResponse', ], 'VoiceChannelRequest' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => '__boolean', ], ], 'required' => [], ], 'VoiceChannelResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', ], 'CreationDate' => [ 'shape' => '__string', ], 'Enabled' => [ 'shape' => '__boolean', ], 'HasCredential' => [ 'shape' => '__boolean', ], 'Id' => [ 'shape' => '__string', ], 'IsArchived' => [ 'shape' => '__boolean', ], 'LastModifiedBy' => [ 'shape' => '__string', ], 'LastModifiedDate' => [ 'shape' => '__string', ], 'Platform' => [ 'shape' => '__string', ], 'Version' => [ 'shape' => '__integer', ], ], 'required' => [], ], 'VoiceMessage' => [ 'type' => 'structure', 'members' => [ 'Body' => [ 'shape' => '__string', ], 'LanguageCode' => [ 'shape' => '__string', ], 'OriginationNumber' => [ 'shape' => '__string', ], 'Substitutions' => [ 'shape' => 'MapOfListOf__string', ], 'VoiceId' => [ 'shape' => '__string', ], ], ], 'WriteApplicationSettingsRequest' => [ 'type' => 'structure', 'members' => [ 'CampaignHook' => [ 'shape' => 'CampaignHook', ], 'CloudWatchMetricsEnabled' => [ 'shape' => '__boolean', ], 'Limits' => [ 'shape' => 'CampaignLimits', ], 'QuietTime' => [ 'shape' => 'QuietTime', ], ], ], 'WriteCampaignRequest' => [ 'type' => 'structure', 'members' => [ 'AdditionalTreatments' => [ 'shape' => 'ListOfWriteTreatmentResource', ], 'Description' => [ 'shape' => '__string', ], 'HoldoutPercent' => [ 'shape' => '__integer', ], 'Hook' => [ 'shape' => 'CampaignHook', ], 'IsPaused' => [ 'shape' => '__boolean', ], 'Limits' => [ 'shape' => 'CampaignLimits', ], 'MessageConfiguration' => [ 'shape' => 'MessageConfiguration', ], 'Name' => [ 'shape' => '__string', ], 'Schedule' => [ 'shape' => 'Schedule', ], 'SegmentId' => [ 'shape' => '__string', ], 'SegmentVersion' => [ 'shape' => '__integer', ], 'tags' => [ 'shape' => 'MapOf__string', 'locationName' => 'tags', ], 'TreatmentDescription' => [ 'shape' => '__string', ], 'TreatmentName' => [ 'shape' => '__string', ], ], ], 'WriteEventStream' => [ 'type' => 'structure', 'members' => [ 'DestinationStreamArn' => [ 'shape' => '__string', ], 'RoleArn' => [ 'shape' => '__string', ], ], 'required' => [], ], 'WriteSegmentRequest' => [ 'type' => 'structure', 'members' => [ 'Dimensions' => [ 'shape' => 'SegmentDimensions', ], 'Name' => [ 'shape' => '__string', ], 'SegmentGroups' => [ 'shape' => 'SegmentGroupList', ], 'tags' => [ 'shape' => 'MapOf__string', 'locationName' => 'tags', ], ], 'required' => [], ], 'WriteTreatmentResource' => [ 'type' => 'structure', 'members' => [ 'MessageConfiguration' => [ 'shape' => 'MessageConfiguration', ], 'Schedule' => [ 'shape' => 'Schedule', ], 'SizePercent' => [ 'shape' => '__integer', ], 'TreatmentDescription' => [ 'shape' => '__string', ], 'TreatmentName' => [ 'shape' => '__string', ], ], 'required' => [], ], '__boolean' => [ 'type' => 'boolean', ], '__double' => [ 'type' => 'double', ], '__integer' => [ 'type' => 'integer', ], 'ListOfActivityResponse' => [ 'type' => 'list', 'member' => [ 'shape' => 'ActivityResponse', ], ], 'ListOfApplicationResponse' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApplicationResponse', ], ], 'ListOfCampaignResponse' => [ 'type' => 'list', 'member' => [ 'shape' => 'CampaignResponse', ], ], 'ListOfEndpointBatchItem' => [ 'type' => 'list', 'member' => [ 'shape' => 'EndpointBatchItem', ], ], 'ListOfEndpointResponse' => [ 'type' => 'list', 'member' => [ 'shape' => 'EndpointResponse', ], ], 'ListOfExportJobResponse' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExportJobResponse', ], ], 'ListOfImportJobResponse' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportJobResponse', ], ], 'ListOfSegmentDimensions' => [ 'type' => 'list', 'member' => [ 'shape' => 'SegmentDimensions', ], ], 'ListOfSegmentGroup' => [ 'type' => 'list', 'member' => [ 'shape' => 'SegmentGroup', ], ], 'ListOfSegmentReference' => [ 'type' => 'list', 'member' => [ 'shape' => 'SegmentReference', ], ], 'ListOfSegmentResponse' => [ 'type' => 'list', 'member' => [ 'shape' => 'SegmentResponse', ], ], 'ListOfTreatmentResource' => [ 'type' => 'list', 'member' => [ 'shape' => 'TreatmentResource', ], ], 'ListOfWriteTreatmentResource' => [ 'type' => 'list', 'member' => [ 'shape' => 'WriteTreatmentResource', ], ], 'ListOf__string' => [ 'type' => 'list', 'member' => [ 'shape' => '__string', ], ], '__long' => [ 'type' => 'long', ], 'MapOfAddressConfiguration' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'AddressConfiguration', ], ], 'MapOfAttributeDimension' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'AttributeDimension', ], ], 'MapOfChannelResponse' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'ChannelResponse', ], ], 'MapOfEndpointMessageResult' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'EndpointMessageResult', ], ], 'MapOfEndpointSendConfiguration' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'EndpointSendConfiguration', ], ], 'MapOfEvent' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'Event', ], ], 'MapOfEventItemResponse' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'EventItemResponse', ], ], 'MapOfEventsBatch' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'EventsBatch', ], ], 'MapOfItemResponse' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'ItemResponse', ], ], 'MapOfMessageResult' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'MessageResult', ], ], 'MapOfMetricDimension' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'MetricDimension', ], ], 'MapOf__double' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => '__double', ], ], 'MapOf__integer' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => '__integer', ], ], 'MapOfListOf__string' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'ListOf__string', ], ], 'MapOfMapOfEndpointMessageResult' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => 'MapOfEndpointMessageResult', ], ], 'MapOf__string' => [ 'type' => 'map', 'key' => [ 'shape' => '__string', ], 'value' => [ 'shape' => '__string', ], ], '__string' => [ 'type' => 'string', ], '__timestampIso8601' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], '__timestampUnix' => [ 'type' => 'timestamp', 'timestampFormat' => 'unixTimestamp', ], ],]; diff --git a/lib/aws/Aws/data/polly/2016-06-10/api-2.json.php b/lib/aws/Aws/data/polly/2016-06-10/api-2.json.php new file mode 100644 index 0000000..aa84d86 --- /dev/null +++ b/lib/aws/Aws/data/polly/2016-06-10/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/polly/2016-06-10/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-06-10', 'endpointPrefix' => 'polly', 'protocol' => 'rest-json', 'serviceFullName' => 'Amazon Polly', 'serviceId' => 'Polly', 'signatureVersion' => 'v4', 'uid' => 'polly-2016-06-10', ], 'operations' => [ 'DeleteLexicon' => [ 'name' => 'DeleteLexicon', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/lexicons/{LexiconName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteLexiconInput', ], 'output' => [ 'shape' => 'DeleteLexiconOutput', ], 'errors' => [ [ 'shape' => 'LexiconNotFoundException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'DescribeVoices' => [ 'name' => 'DescribeVoices', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/voices', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeVoicesInput', ], 'output' => [ 'shape' => 'DescribeVoicesOutput', ], 'errors' => [ [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetLexicon' => [ 'name' => 'GetLexicon', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/lexicons/{LexiconName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetLexiconInput', ], 'output' => [ 'shape' => 'GetLexiconOutput', ], 'errors' => [ [ 'shape' => 'LexiconNotFoundException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'GetSpeechSynthesisTask' => [ 'name' => 'GetSpeechSynthesisTask', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/synthesisTasks/{TaskId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetSpeechSynthesisTaskInput', ], 'output' => [ 'shape' => 'GetSpeechSynthesisTaskOutput', ], 'errors' => [ [ 'shape' => 'InvalidTaskIdException', ], [ 'shape' => 'ServiceFailureException', ], [ 'shape' => 'SynthesisTaskNotFoundException', ], ], ], 'ListLexicons' => [ 'name' => 'ListLexicons', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/lexicons', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListLexiconsInput', ], 'output' => [ 'shape' => 'ListLexiconsOutput', ], 'errors' => [ [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'ListSpeechSynthesisTasks' => [ 'name' => 'ListSpeechSynthesisTasks', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/synthesisTasks', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListSpeechSynthesisTasksInput', ], 'output' => [ 'shape' => 'ListSpeechSynthesisTasksOutput', ], 'errors' => [ [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'PutLexicon' => [ 'name' => 'PutLexicon', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/lexicons/{LexiconName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PutLexiconInput', ], 'output' => [ 'shape' => 'PutLexiconOutput', ], 'errors' => [ [ 'shape' => 'InvalidLexiconException', ], [ 'shape' => 'UnsupportedPlsAlphabetException', ], [ 'shape' => 'UnsupportedPlsLanguageException', ], [ 'shape' => 'LexiconSizeExceededException', ], [ 'shape' => 'MaxLexemeLengthExceededException', ], [ 'shape' => 'MaxLexiconsNumberExceededException', ], [ 'shape' => 'ServiceFailureException', ], ], ], 'StartSpeechSynthesisTask' => [ 'name' => 'StartSpeechSynthesisTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/synthesisTasks', 'responseCode' => 200, ], 'input' => [ 'shape' => 'StartSpeechSynthesisTaskInput', ], 'output' => [ 'shape' => 'StartSpeechSynthesisTaskOutput', ], 'errors' => [ [ 'shape' => 'TextLengthExceededException', ], [ 'shape' => 'InvalidS3BucketException', ], [ 'shape' => 'InvalidS3KeyException', ], [ 'shape' => 'InvalidSampleRateException', ], [ 'shape' => 'InvalidSnsTopicArnException', ], [ 'shape' => 'InvalidSsmlException', ], [ 'shape' => 'LexiconNotFoundException', ], [ 'shape' => 'ServiceFailureException', ], [ 'shape' => 'MarksNotSupportedForFormatException', ], [ 'shape' => 'SsmlMarksNotSupportedForTextTypeException', ], [ 'shape' => 'LanguageNotSupportedException', ], ], ], 'SynthesizeSpeech' => [ 'name' => 'SynthesizeSpeech', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/speech', 'responseCode' => 200, ], 'input' => [ 'shape' => 'SynthesizeSpeechInput', ], 'output' => [ 'shape' => 'SynthesizeSpeechOutput', ], 'errors' => [ [ 'shape' => 'TextLengthExceededException', ], [ 'shape' => 'InvalidSampleRateException', ], [ 'shape' => 'InvalidSsmlException', ], [ 'shape' => 'LexiconNotFoundException', ], [ 'shape' => 'ServiceFailureException', ], [ 'shape' => 'MarksNotSupportedForFormatException', ], [ 'shape' => 'SsmlMarksNotSupportedForTextTypeException', ], [ 'shape' => 'LanguageNotSupportedException', ], ], ], ], 'shapes' => [ 'Alphabet' => [ 'type' => 'string', ], 'AudioStream' => [ 'type' => 'blob', 'streaming' => true, ], 'ContentType' => [ 'type' => 'string', ], 'DateTime' => [ 'type' => 'timestamp', ], 'DeleteLexiconInput' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'LexiconName', 'location' => 'uri', 'locationName' => 'LexiconName', ], ], ], 'DeleteLexiconOutput' => [ 'type' => 'structure', 'members' => [], ], 'DescribeVoicesInput' => [ 'type' => 'structure', 'members' => [ 'LanguageCode' => [ 'shape' => 'LanguageCode', 'location' => 'querystring', 'locationName' => 'LanguageCode', ], 'IncludeAdditionalLanguageCodes' => [ 'shape' => 'IncludeAdditionalLanguageCodes', 'location' => 'querystring', 'locationName' => 'IncludeAdditionalLanguageCodes', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], ], 'DescribeVoicesOutput' => [ 'type' => 'structure', 'members' => [ 'Voices' => [ 'shape' => 'VoiceList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ErrorMessage' => [ 'type' => 'string', ], 'Gender' => [ 'type' => 'string', 'enum' => [ 'Female', 'Male', ], ], 'GetLexiconInput' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'LexiconName', 'location' => 'uri', 'locationName' => 'LexiconName', ], ], ], 'GetLexiconOutput' => [ 'type' => 'structure', 'members' => [ 'Lexicon' => [ 'shape' => 'Lexicon', ], 'LexiconAttributes' => [ 'shape' => 'LexiconAttributes', ], ], ], 'GetSpeechSynthesisTaskInput' => [ 'type' => 'structure', 'required' => [ 'TaskId', ], 'members' => [ 'TaskId' => [ 'shape' => 'TaskId', 'location' => 'uri', 'locationName' => 'TaskId', ], ], ], 'GetSpeechSynthesisTaskOutput' => [ 'type' => 'structure', 'members' => [ 'SynthesisTask' => [ 'shape' => 'SynthesisTask', ], ], ], 'IncludeAdditionalLanguageCodes' => [ 'type' => 'boolean', ], 'InvalidLexiconException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidS3BucketException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidS3KeyException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidSampleRateException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidSnsTopicArnException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidSsmlException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidTaskIdException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'LanguageCode' => [ 'type' => 'string', 'enum' => [ 'cmn-CN', 'cy-GB', 'da-DK', 'de-DE', 'en-AU', 'en-GB', 'en-GB-WLS', 'en-IN', 'en-US', 'es-ES', 'es-MX', 'es-US', 'fr-CA', 'fr-FR', 'is-IS', 'it-IT', 'ja-JP', 'hi-IN', 'ko-KR', 'nb-NO', 'nl-NL', 'pl-PL', 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sv-SE', 'tr-TR', ], ], 'LanguageCodeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LanguageCode', ], ], 'LanguageName' => [ 'type' => 'string', ], 'LanguageNotSupportedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'LastModified' => [ 'type' => 'timestamp', ], 'LexemesCount' => [ 'type' => 'integer', ], 'Lexicon' => [ 'type' => 'structure', 'members' => [ 'Content' => [ 'shape' => 'LexiconContent', ], 'Name' => [ 'shape' => 'LexiconName', ], ], ], 'LexiconArn' => [ 'type' => 'string', ], 'LexiconAttributes' => [ 'type' => 'structure', 'members' => [ 'Alphabet' => [ 'shape' => 'Alphabet', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'LastModified' => [ 'shape' => 'LastModified', ], 'LexiconArn' => [ 'shape' => 'LexiconArn', ], 'LexemesCount' => [ 'shape' => 'LexemesCount', ], 'Size' => [ 'shape' => 'Size', ], ], ], 'LexiconContent' => [ 'type' => 'string', ], 'LexiconDescription' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'LexiconName', ], 'Attributes' => [ 'shape' => 'LexiconAttributes', ], ], ], 'LexiconDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LexiconDescription', ], ], 'LexiconName' => [ 'type' => 'string', 'pattern' => '[0-9A-Za-z]{1,20}', 'sensitive' => true, ], 'LexiconNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LexiconName', ], 'max' => 5, ], 'LexiconNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'LexiconSizeExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ListLexiconsInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], ], 'ListLexiconsOutput' => [ 'type' => 'structure', 'members' => [ 'Lexicons' => [ 'shape' => 'LexiconDescriptionList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListSpeechSynthesisTasksInput' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'NextToken', ], 'Status' => [ 'shape' => 'TaskStatus', 'location' => 'querystring', 'locationName' => 'Status', ], ], ], 'ListSpeechSynthesisTasksOutput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'SynthesisTasks' => [ 'shape' => 'SynthesisTasks', ], ], ], 'MarksNotSupportedForFormatException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'MaxLexemeLengthExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'MaxLexiconsNumberExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'MaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'NextToken' => [ 'type' => 'string', ], 'OutputFormat' => [ 'type' => 'string', 'enum' => [ 'json', 'mp3', 'ogg_vorbis', 'pcm', ], ], 'OutputS3BucketName' => [ 'type' => 'string', 'pattern' => '^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$', ], 'OutputS3KeyPrefix' => [ 'type' => 'string', 'pattern' => '^[0-9a-zA-Z\\/\\!\\-_\\.\\*\\\'\\(\\)]{0,800}$', ], 'OutputUri' => [ 'type' => 'string', ], 'PutLexiconInput' => [ 'type' => 'structure', 'required' => [ 'Name', 'Content', ], 'members' => [ 'Name' => [ 'shape' => 'LexiconName', 'location' => 'uri', 'locationName' => 'LexiconName', ], 'Content' => [ 'shape' => 'LexiconContent', ], ], ], 'PutLexiconOutput' => [ 'type' => 'structure', 'members' => [], ], 'RequestCharacters' => [ 'type' => 'integer', ], 'SampleRate' => [ 'type' => 'string', ], 'ServiceFailureException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'Size' => [ 'type' => 'integer', ], 'SnsTopicArn' => [ 'type' => 'string', 'pattern' => '^arn:aws(-(cn|iso(-b)?|us-gov))?:sns:.*:\\w{12}:.+$', ], 'SpeechMarkType' => [ 'type' => 'string', 'enum' => [ 'sentence', 'ssml', 'viseme', 'word', ], ], 'SpeechMarkTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpeechMarkType', ], 'max' => 4, ], 'SsmlMarksNotSupportedForTextTypeException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'StartSpeechSynthesisTaskInput' => [ 'type' => 'structure', 'required' => [ 'OutputFormat', 'OutputS3BucketName', 'Text', 'VoiceId', ], 'members' => [ 'LexiconNames' => [ 'shape' => 'LexiconNameList', ], 'OutputFormat' => [ 'shape' => 'OutputFormat', ], 'OutputS3BucketName' => [ 'shape' => 'OutputS3BucketName', ], 'OutputS3KeyPrefix' => [ 'shape' => 'OutputS3KeyPrefix', ], 'SampleRate' => [ 'shape' => 'SampleRate', ], 'SnsTopicArn' => [ 'shape' => 'SnsTopicArn', ], 'SpeechMarkTypes' => [ 'shape' => 'SpeechMarkTypeList', ], 'Text' => [ 'shape' => 'Text', ], 'TextType' => [ 'shape' => 'TextType', ], 'VoiceId' => [ 'shape' => 'VoiceId', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], ], ], 'StartSpeechSynthesisTaskOutput' => [ 'type' => 'structure', 'members' => [ 'SynthesisTask' => [ 'shape' => 'SynthesisTask', ], ], ], 'SynthesisTask' => [ 'type' => 'structure', 'members' => [ 'TaskId' => [ 'shape' => 'TaskId', ], 'TaskStatus' => [ 'shape' => 'TaskStatus', ], 'TaskStatusReason' => [ 'shape' => 'TaskStatusReason', ], 'OutputUri' => [ 'shape' => 'OutputUri', ], 'CreationTime' => [ 'shape' => 'DateTime', ], 'RequestCharacters' => [ 'shape' => 'RequestCharacters', ], 'SnsTopicArn' => [ 'shape' => 'SnsTopicArn', ], 'LexiconNames' => [ 'shape' => 'LexiconNameList', ], 'OutputFormat' => [ 'shape' => 'OutputFormat', ], 'SampleRate' => [ 'shape' => 'SampleRate', ], 'SpeechMarkTypes' => [ 'shape' => 'SpeechMarkTypeList', ], 'TextType' => [ 'shape' => 'TextType', ], 'VoiceId' => [ 'shape' => 'VoiceId', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], ], ], 'SynthesisTaskNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'SynthesisTasks' => [ 'type' => 'list', 'member' => [ 'shape' => 'SynthesisTask', ], ], 'SynthesizeSpeechInput' => [ 'type' => 'structure', 'required' => [ 'OutputFormat', 'Text', 'VoiceId', ], 'members' => [ 'LexiconNames' => [ 'shape' => 'LexiconNameList', ], 'OutputFormat' => [ 'shape' => 'OutputFormat', ], 'SampleRate' => [ 'shape' => 'SampleRate', ], 'SpeechMarkTypes' => [ 'shape' => 'SpeechMarkTypeList', ], 'Text' => [ 'shape' => 'Text', ], 'TextType' => [ 'shape' => 'TextType', ], 'VoiceId' => [ 'shape' => 'VoiceId', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], ], ], 'SynthesizeSpeechOutput' => [ 'type' => 'structure', 'members' => [ 'AudioStream' => [ 'shape' => 'AudioStream', ], 'ContentType' => [ 'shape' => 'ContentType', 'location' => 'header', 'locationName' => 'Content-Type', ], 'RequestCharacters' => [ 'shape' => 'RequestCharacters', 'location' => 'header', 'locationName' => 'x-amzn-RequestCharacters', ], ], 'payload' => 'AudioStream', ], 'TaskId' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TaskStatus' => [ 'type' => 'string', 'enum' => [ 'scheduled', 'inProgress', 'completed', 'failed', ], ], 'TaskStatusReason' => [ 'type' => 'string', ], 'Text' => [ 'type' => 'string', ], 'TextLengthExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TextType' => [ 'type' => 'string', 'enum' => [ 'ssml', 'text', ], ], 'UnsupportedPlsAlphabetException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'UnsupportedPlsLanguageException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'Voice' => [ 'type' => 'structure', 'members' => [ 'Gender' => [ 'shape' => 'Gender', ], 'Id' => [ 'shape' => 'VoiceId', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'LanguageName' => [ 'shape' => 'LanguageName', ], 'Name' => [ 'shape' => 'VoiceName', ], 'AdditionalLanguageCodes' => [ 'shape' => 'LanguageCodeList', ], ], ], 'VoiceId' => [ 'type' => 'string', 'enum' => [ 'Geraint', 'Gwyneth', 'Mads', 'Naja', 'Hans', 'Marlene', 'Nicole', 'Russell', 'Amy', 'Brian', 'Emma', 'Raveena', 'Ivy', 'Joanna', 'Joey', 'Justin', 'Kendra', 'Kimberly', 'Matthew', 'Salli', 'Conchita', 'Enrique', 'Miguel', 'Penelope', 'Chantal', 'Celine', 'Lea', 'Mathieu', 'Dora', 'Karl', 'Carla', 'Giorgio', 'Mizuki', 'Liv', 'Lotte', 'Ruben', 'Ewa', 'Jacek', 'Jan', 'Maja', 'Ricardo', 'Vitoria', 'Cristiano', 'Ines', 'Carmen', 'Maxim', 'Tatyana', 'Astrid', 'Filiz', 'Vicki', 'Takumi', 'Seoyeon', 'Aditi', 'Zhiyu', 'Bianca', 'Lucia', 'Mia', ], ], 'VoiceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Voice', ], ], 'VoiceName' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/polly/2016-06-10/paginators-1.json.php b/lib/aws/Aws/data/polly/2016-06-10/paginators-1.json.php new file mode 100644 index 0000000..a69b94f --- /dev/null +++ b/lib/aws/Aws/data/polly/2016-06-10/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/polly/2016-06-10/paginators-1.json +return [ 'pagination' => [ 'ListSpeechSynthesisTasks' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/polly/2016-06-10/smoke.json.php b/lib/aws/Aws/data/polly/2016-06-10/smoke.json.php new file mode 100644 index 0000000..6c2a330 --- /dev/null +++ b/lib/aws/Aws/data/polly/2016-06-10/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/polly/2016-06-10/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeVoices', 'input' => [], 'errorExpectedFromService' => false, ], ],]; diff --git a/lib/aws/Aws/data/pricing/2017-10-15/api-2.json.php b/lib/aws/Aws/data/pricing/2017-10-15/api-2.json.php new file mode 100644 index 0000000..26e1653 --- /dev/null +++ b/lib/aws/Aws/data/pricing/2017-10-15/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/pricing/2017-10-15/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-10-15', 'endpointPrefix' => 'api.pricing', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'AWS Pricing', 'serviceFullName' => 'AWS Price List Service', 'signatureVersion' => 'v4', 'signingName' => 'pricing', 'targetPrefix' => 'AWSPriceListService', 'uid' => 'pricing-2017-10-15', ], 'operations' => [ 'DescribeServices' => [ 'name' => 'DescribeServices', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeServicesRequest', ], 'output' => [ 'shape' => 'DescribeServicesResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ExpiredNextTokenException', ], ], ], 'GetAttributeValues' => [ 'name' => 'GetAttributeValues', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAttributeValuesRequest', ], 'output' => [ 'shape' => 'GetAttributeValuesResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ExpiredNextTokenException', ], ], ], 'GetProducts' => [ 'name' => 'GetProducts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetProductsRequest', ], 'output' => [ 'shape' => 'GetProductsResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ExpiredNextTokenException', ], ], ], ], 'shapes' => [ 'AttributeNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'AttributeValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', ], ], ], 'AttributeValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeValue', ], ], 'BoxedInteger' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'DescribeServicesRequest' => [ 'type' => 'structure', 'members' => [ 'ServiceCode' => [ 'shape' => 'String', ], 'FormatVersion' => [ 'shape' => 'String', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'BoxedInteger', 'box' => true, ], ], ], 'DescribeServicesResponse' => [ 'type' => 'structure', 'members' => [ 'Services' => [ 'shape' => 'ServiceList', ], 'FormatVersion' => [ 'shape' => 'String', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ExpiredNextTokenException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'Filter' => [ 'type' => 'structure', 'required' => [ 'Type', 'Field', 'Value', ], 'members' => [ 'Type' => [ 'shape' => 'FilterType', ], 'Field' => [ 'shape' => 'String', ], 'Value' => [ 'shape' => 'String', ], ], ], 'FilterType' => [ 'type' => 'string', 'enum' => [ 'TERM_MATCH', ], ], 'Filters' => [ 'type' => 'list', 'member' => [ 'shape' => 'Filter', ], ], 'GetAttributeValuesRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceCode', 'AttributeName', ], 'members' => [ 'ServiceCode' => [ 'shape' => 'String', ], 'AttributeName' => [ 'shape' => 'String', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'BoxedInteger', 'box' => true, ], ], ], 'GetAttributeValuesResponse' => [ 'type' => 'structure', 'members' => [ 'AttributeValues' => [ 'shape' => 'AttributeValueList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'GetProductsRequest' => [ 'type' => 'structure', 'members' => [ 'ServiceCode' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'Filters', ], 'FormatVersion' => [ 'shape' => 'String', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'BoxedInteger', 'box' => true, ], ], ], 'GetProductsResponse' => [ 'type' => 'structure', 'members' => [ 'FormatVersion' => [ 'shape' => 'String', ], 'PriceList' => [ 'shape' => 'PriceList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'InternalErrorException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'PriceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PriceListItemJSON', 'jsonvalue' => true, ], ], 'PriceListItemJSON' => [ 'type' => 'string', ], 'Service' => [ 'type' => 'structure', 'members' => [ 'ServiceCode' => [ 'shape' => 'String', ], 'AttributeNames' => [ 'shape' => 'AttributeNameList', ], ], ], 'ServiceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Service', ], ], 'String' => [ 'type' => 'string', ], 'errorMessage' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/pricing/2017-10-15/paginators-1.json.php b/lib/aws/Aws/data/pricing/2017-10-15/paginators-1.json.php new file mode 100644 index 0000000..144b2c8 --- /dev/null +++ b/lib/aws/Aws/data/pricing/2017-10-15/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/pricing/2017-10-15/paginators-1.json +return [ 'pagination' => [ 'DescribeServices' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'GetAttributeValues' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'GetProducts' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/quicksight/2018-04-01/api-2.json.php b/lib/aws/Aws/data/quicksight/2018-04-01/api-2.json.php new file mode 100644 index 0000000..9f44192 --- /dev/null +++ b/lib/aws/Aws/data/quicksight/2018-04-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/quicksight/2018-04-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-04-01', 'endpointPrefix' => 'quicksight', 'jsonVersion' => '1.0', 'protocol' => 'rest-json', 'serviceFullName' => 'Amazon QuickSight', 'serviceId' => 'QuickSight', 'signatureVersion' => 'v4', 'uid' => 'quicksight-2018-04-01', ], 'operations' => [ 'CreateGroup' => [ 'name' => 'CreateGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/accounts/{AwsAccountId}/namespaces/{Namespace}/groups', ], 'input' => [ 'shape' => 'CreateGroupRequest', ], 'output' => [ 'shape' => 'CreateGroupResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceExistsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'PreconditionNotMetException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceUnavailableException', ], ], ], 'CreateGroupMembership' => [ 'name' => 'CreateGroupMembership', 'http' => [ 'method' => 'PUT', 'requestUri' => '/accounts/{AwsAccountId}/namespaces/{Namespace}/groups/{GroupName}/members/{MemberName}', ], 'input' => [ 'shape' => 'CreateGroupMembershipRequest', ], 'output' => [ 'shape' => 'CreateGroupMembershipResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'PreconditionNotMetException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceUnavailableException', ], ], ], 'DeleteGroup' => [ 'name' => 'DeleteGroup', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/accounts/{AwsAccountId}/namespaces/{Namespace}/groups/{GroupName}', ], 'input' => [ 'shape' => 'DeleteGroupRequest', ], 'output' => [ 'shape' => 'DeleteGroupResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'PreconditionNotMetException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceUnavailableException', ], ], ], 'DeleteGroupMembership' => [ 'name' => 'DeleteGroupMembership', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/accounts/{AwsAccountId}/namespaces/{Namespace}/groups/{GroupName}/members/{MemberName}', ], 'input' => [ 'shape' => 'DeleteGroupMembershipRequest', ], 'output' => [ 'shape' => 'DeleteGroupMembershipResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'PreconditionNotMetException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceUnavailableException', ], ], ], 'DeleteUser' => [ 'name' => 'DeleteUser', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/accounts/{AwsAccountId}/namespaces/{Namespace}/users/{UserName}', ], 'input' => [ 'shape' => 'DeleteUserRequest', ], 'output' => [ 'shape' => 'DeleteUserResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceUnavailableException', ], ], ], 'DeleteUserByPrincipalId' => [ 'name' => 'DeleteUserByPrincipalId', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/accounts/{AwsAccountId}/namespaces/{Namespace}/user-principals/{PrincipalId}', ], 'input' => [ 'shape' => 'DeleteUserByPrincipalIdRequest', ], 'output' => [ 'shape' => 'DeleteUserByPrincipalIdResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceUnavailableException', ], ], ], 'DescribeGroup' => [ 'name' => 'DescribeGroup', 'http' => [ 'method' => 'GET', 'requestUri' => '/accounts/{AwsAccountId}/namespaces/{Namespace}/groups/{GroupName}', ], 'input' => [ 'shape' => 'DescribeGroupRequest', ], 'output' => [ 'shape' => 'DescribeGroupResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'PreconditionNotMetException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceUnavailableException', ], ], ], 'DescribeUser' => [ 'name' => 'DescribeUser', 'http' => [ 'method' => 'GET', 'requestUri' => '/accounts/{AwsAccountId}/namespaces/{Namespace}/users/{UserName}', ], 'input' => [ 'shape' => 'DescribeUserRequest', ], 'output' => [ 'shape' => 'DescribeUserResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceUnavailableException', ], ], ], 'GetDashboardEmbedUrl' => [ 'name' => 'GetDashboardEmbedUrl', 'http' => [ 'method' => 'GET', 'requestUri' => '/accounts/{AwsAccountId}/dashboards/{DashboardId}/embed-url', ], 'input' => [ 'shape' => 'GetDashboardEmbedUrlRequest', ], 'output' => [ 'shape' => 'GetDashboardEmbedUrlResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceExistsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'PreconditionNotMetException', ], [ 'shape' => 'DomainNotWhitelistedException', ], [ 'shape' => 'QuickSightUserNotFoundException', ], [ 'shape' => 'IdentityTypeNotSupportedException', ], [ 'shape' => 'SessionLifetimeInMinutesInvalidException', ], [ 'shape' => 'UnsupportedUserEditionException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceUnavailableException', ], ], ], 'ListGroupMemberships' => [ 'name' => 'ListGroupMemberships', 'http' => [ 'method' => 'GET', 'requestUri' => '/accounts/{AwsAccountId}/namespaces/{Namespace}/groups/{GroupName}/members', ], 'input' => [ 'shape' => 'ListGroupMembershipsRequest', ], 'output' => [ 'shape' => 'ListGroupMembershipsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'PreconditionNotMetException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceUnavailableException', ], ], ], 'ListGroups' => [ 'name' => 'ListGroups', 'http' => [ 'method' => 'GET', 'requestUri' => '/accounts/{AwsAccountId}/namespaces/{Namespace}/groups', ], 'input' => [ 'shape' => 'ListGroupsRequest', ], 'output' => [ 'shape' => 'ListGroupsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'PreconditionNotMetException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceUnavailableException', ], ], ], 'ListUserGroups' => [ 'name' => 'ListUserGroups', 'http' => [ 'method' => 'GET', 'requestUri' => '/accounts/{AwsAccountId}/namespaces/{Namespace}/users/{UserName}/groups', ], 'input' => [ 'shape' => 'ListUserGroupsRequest', ], 'output' => [ 'shape' => 'ListUserGroupsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceUnavailableException', ], ], ], 'ListUsers' => [ 'name' => 'ListUsers', 'http' => [ 'method' => 'GET', 'requestUri' => '/accounts/{AwsAccountId}/namespaces/{Namespace}/users', ], 'input' => [ 'shape' => 'ListUsersRequest', ], 'output' => [ 'shape' => 'ListUsersResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceUnavailableException', ], ], ], 'RegisterUser' => [ 'name' => 'RegisterUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/accounts/{AwsAccountId}/namespaces/{Namespace}/users', ], 'input' => [ 'shape' => 'RegisterUserRequest', ], 'output' => [ 'shape' => 'RegisterUserResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceExistsException', ], [ 'shape' => 'PreconditionNotMetException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceUnavailableException', ], ], ], 'UpdateGroup' => [ 'name' => 'UpdateGroup', 'http' => [ 'method' => 'PUT', 'requestUri' => '/accounts/{AwsAccountId}/namespaces/{Namespace}/groups/{GroupName}', ], 'input' => [ 'shape' => 'UpdateGroupRequest', ], 'output' => [ 'shape' => 'UpdateGroupResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'PreconditionNotMetException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceUnavailableException', ], ], ], 'UpdateUser' => [ 'name' => 'UpdateUser', 'http' => [ 'method' => 'PUT', 'requestUri' => '/accounts/{AwsAccountId}/namespaces/{Namespace}/users/{UserName}', ], 'input' => [ 'shape' => 'UpdateUserRequest', ], 'output' => [ 'shape' => 'UpdateUserResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ResourceUnavailableException', ], ], ], ], 'shapes' => [ 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'RequestId' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 401, ], 'exception' => true, ], 'Arn' => [ 'type' => 'string', ], 'AwsAccountId' => [ 'type' => 'string', 'max' => 12, 'min' => 12, 'pattern' => '^[0-9]{12}$', ], 'Boolean' => [ 'type' => 'boolean', ], 'CreateGroupMembershipRequest' => [ 'type' => 'structure', 'required' => [ 'MemberName', 'GroupName', 'AwsAccountId', 'Namespace', ], 'members' => [ 'MemberName' => [ 'shape' => 'GroupMemberName', 'location' => 'uri', 'locationName' => 'MemberName', ], 'GroupName' => [ 'shape' => 'GroupName', 'location' => 'uri', 'locationName' => 'GroupName', ], 'AwsAccountId' => [ 'shape' => 'AwsAccountId', 'location' => 'uri', 'locationName' => 'AwsAccountId', ], 'Namespace' => [ 'shape' => 'Namespace', 'location' => 'uri', 'locationName' => 'Namespace', ], ], ], 'CreateGroupMembershipResponse' => [ 'type' => 'structure', 'members' => [ 'GroupMember' => [ 'shape' => 'GroupMember', ], 'RequestId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'StatusCode', 'location' => 'statusCode', ], ], ], 'CreateGroupRequest' => [ 'type' => 'structure', 'required' => [ 'GroupName', 'AwsAccountId', 'Namespace', ], 'members' => [ 'GroupName' => [ 'shape' => 'GroupName', ], 'Description' => [ 'shape' => 'GroupDescription', ], 'AwsAccountId' => [ 'shape' => 'AwsAccountId', 'location' => 'uri', 'locationName' => 'AwsAccountId', ], 'Namespace' => [ 'shape' => 'Namespace', 'location' => 'uri', 'locationName' => 'Namespace', ], ], ], 'CreateGroupResponse' => [ 'type' => 'structure', 'members' => [ 'Group' => [ 'shape' => 'Group', ], 'RequestId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'StatusCode', 'location' => 'statusCode', ], ], ], 'DeleteGroupMembershipRequest' => [ 'type' => 'structure', 'required' => [ 'MemberName', 'GroupName', 'AwsAccountId', 'Namespace', ], 'members' => [ 'MemberName' => [ 'shape' => 'GroupMemberName', 'location' => 'uri', 'locationName' => 'MemberName', ], 'GroupName' => [ 'shape' => 'GroupName', 'location' => 'uri', 'locationName' => 'GroupName', ], 'AwsAccountId' => [ 'shape' => 'AwsAccountId', 'location' => 'uri', 'locationName' => 'AwsAccountId', ], 'Namespace' => [ 'shape' => 'Namespace', 'location' => 'uri', 'locationName' => 'Namespace', ], ], ], 'DeleteGroupMembershipResponse' => [ 'type' => 'structure', 'members' => [ 'RequestId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'StatusCode', 'location' => 'statusCode', ], ], ], 'DeleteGroupRequest' => [ 'type' => 'structure', 'required' => [ 'GroupName', 'AwsAccountId', 'Namespace', ], 'members' => [ 'GroupName' => [ 'shape' => 'GroupName', 'location' => 'uri', 'locationName' => 'GroupName', ], 'AwsAccountId' => [ 'shape' => 'AwsAccountId', 'location' => 'uri', 'locationName' => 'AwsAccountId', ], 'Namespace' => [ 'shape' => 'Namespace', 'location' => 'uri', 'locationName' => 'Namespace', ], ], ], 'DeleteGroupResponse' => [ 'type' => 'structure', 'members' => [ 'RequestId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'StatusCode', 'location' => 'statusCode', ], ], ], 'DeleteUserByPrincipalIdRequest' => [ 'type' => 'structure', 'required' => [ 'PrincipalId', 'AwsAccountId', 'Namespace', ], 'members' => [ 'PrincipalId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'PrincipalId', ], 'AwsAccountId' => [ 'shape' => 'AwsAccountId', 'location' => 'uri', 'locationName' => 'AwsAccountId', ], 'Namespace' => [ 'shape' => 'Namespace', 'location' => 'uri', 'locationName' => 'Namespace', ], ], ], 'DeleteUserByPrincipalIdResponse' => [ 'type' => 'structure', 'members' => [ 'RequestId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'StatusCode', 'location' => 'statusCode', ], ], ], 'DeleteUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserName', 'AwsAccountId', 'Namespace', ], 'members' => [ 'UserName' => [ 'shape' => 'UserName', 'location' => 'uri', 'locationName' => 'UserName', ], 'AwsAccountId' => [ 'shape' => 'AwsAccountId', 'location' => 'uri', 'locationName' => 'AwsAccountId', ], 'Namespace' => [ 'shape' => 'Namespace', 'location' => 'uri', 'locationName' => 'Namespace', ], ], ], 'DeleteUserResponse' => [ 'type' => 'structure', 'members' => [ 'RequestId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'StatusCode', 'location' => 'statusCode', ], ], ], 'DescribeGroupRequest' => [ 'type' => 'structure', 'required' => [ 'GroupName', 'AwsAccountId', 'Namespace', ], 'members' => [ 'GroupName' => [ 'shape' => 'GroupName', 'location' => 'uri', 'locationName' => 'GroupName', ], 'AwsAccountId' => [ 'shape' => 'AwsAccountId', 'location' => 'uri', 'locationName' => 'AwsAccountId', ], 'Namespace' => [ 'shape' => 'Namespace', 'location' => 'uri', 'locationName' => 'Namespace', ], ], ], 'DescribeGroupResponse' => [ 'type' => 'structure', 'members' => [ 'Group' => [ 'shape' => 'Group', ], 'RequestId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'StatusCode', 'location' => 'statusCode', ], ], ], 'DescribeUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserName', 'AwsAccountId', 'Namespace', ], 'members' => [ 'UserName' => [ 'shape' => 'UserName', 'location' => 'uri', 'locationName' => 'UserName', ], 'AwsAccountId' => [ 'shape' => 'AwsAccountId', 'location' => 'uri', 'locationName' => 'AwsAccountId', ], 'Namespace' => [ 'shape' => 'Namespace', 'location' => 'uri', 'locationName' => 'Namespace', ], ], ], 'DescribeUserResponse' => [ 'type' => 'structure', 'members' => [ 'User' => [ 'shape' => 'User', ], 'RequestId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'StatusCode', 'location' => 'statusCode', ], ], ], 'DomainNotWhitelistedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'RequestId' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, ], 'EmbeddingUrl' => [ 'type' => 'string', 'sensitive' => true, ], 'ExceptionResourceType' => [ 'type' => 'string', 'enum' => [ 'USER', 'GROUP', 'NAMESPACE', 'DATA_SOURCE', 'DATA_SET', 'VPC_CONNECTION', 'INGESTION', ], ], 'GetDashboardEmbedUrlRequest' => [ 'type' => 'structure', 'required' => [ 'AwsAccountId', 'DashboardId', 'IdentityType', ], 'members' => [ 'AwsAccountId' => [ 'shape' => 'AwsAccountId', 'location' => 'uri', 'locationName' => 'AwsAccountId', ], 'DashboardId' => [ 'shape' => 'String', 'location' => 'uri', 'locationName' => 'DashboardId', ], 'IdentityType' => [ 'shape' => 'IdentityType', 'location' => 'querystring', 'locationName' => 'creds-type', ], 'SessionLifetimeInMinutes' => [ 'shape' => 'SessionLifetimeInMinutes', 'location' => 'querystring', 'locationName' => 'session-lifetime', ], 'UndoRedoDisabled' => [ 'shape' => 'boolean', 'location' => 'querystring', 'locationName' => 'undo-redo-disabled', ], 'ResetDisabled' => [ 'shape' => 'boolean', 'location' => 'querystring', 'locationName' => 'reset-disabled', ], ], ], 'GetDashboardEmbedUrlResponse' => [ 'type' => 'structure', 'members' => [ 'EmbedUrl' => [ 'shape' => 'EmbeddingUrl', ], 'Status' => [ 'shape' => 'StatusCode', 'location' => 'statusCode', ], 'RequestId' => [ 'shape' => 'String', ], ], ], 'Group' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'GroupName' => [ 'shape' => 'GroupName', ], 'Description' => [ 'shape' => 'GroupDescription', ], 'PrincipalId' => [ 'shape' => 'String', ], ], ], 'GroupDescription' => [ 'type' => 'string', 'max' => 512, 'min' => 1, ], 'GroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Group', ], ], 'GroupMember' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'MemberName' => [ 'shape' => 'GroupMemberName', ], ], ], 'GroupMemberList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GroupMember', ], ], 'GroupMemberName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[\\u0020-\\u00FF]+', ], 'GroupName' => [ 'type' => 'string', 'min' => 1, 'pattern' => '[\\u0020-\\u00FF]+', ], 'IdentityType' => [ 'type' => 'string', 'enum' => [ 'IAM', 'QUICKSIGHT', ], ], 'IdentityTypeNotSupportedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'RequestId' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, ], 'InternalFailureException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'RequestId' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'RequestId' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidParameterValueException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'RequestId' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'ExceptionResourceType', ], 'RequestId' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'ListGroupMembershipsRequest' => [ 'type' => 'structure', 'required' => [ 'GroupName', 'AwsAccountId', 'Namespace', ], 'members' => [ 'GroupName' => [ 'shape' => 'GroupName', 'location' => 'uri', 'locationName' => 'GroupName', ], 'NextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'next-token', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max-results', ], 'AwsAccountId' => [ 'shape' => 'AwsAccountId', 'location' => 'uri', 'locationName' => 'AwsAccountId', ], 'Namespace' => [ 'shape' => 'Namespace', 'location' => 'uri', 'locationName' => 'Namespace', ], ], ], 'ListGroupMembershipsResponse' => [ 'type' => 'structure', 'members' => [ 'GroupMemberList' => [ 'shape' => 'GroupMemberList', ], 'NextToken' => [ 'shape' => 'String', ], 'RequestId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'StatusCode', 'location' => 'statusCode', ], ], ], 'ListGroupsRequest' => [ 'type' => 'structure', 'required' => [ 'AwsAccountId', 'Namespace', ], 'members' => [ 'AwsAccountId' => [ 'shape' => 'AwsAccountId', 'location' => 'uri', 'locationName' => 'AwsAccountId', ], 'NextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'next-token', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max-results', ], 'Namespace' => [ 'shape' => 'Namespace', 'location' => 'uri', 'locationName' => 'Namespace', ], ], ], 'ListGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'GroupList' => [ 'shape' => 'GroupList', ], 'NextToken' => [ 'shape' => 'String', ], 'RequestId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'StatusCode', 'location' => 'statusCode', ], ], ], 'ListUserGroupsRequest' => [ 'type' => 'structure', 'required' => [ 'UserName', 'AwsAccountId', 'Namespace', ], 'members' => [ 'UserName' => [ 'shape' => 'UserName', 'location' => 'uri', 'locationName' => 'UserName', ], 'AwsAccountId' => [ 'shape' => 'AwsAccountId', 'location' => 'uri', 'locationName' => 'AwsAccountId', ], 'Namespace' => [ 'shape' => 'Namespace', 'location' => 'uri', 'locationName' => 'Namespace', ], 'NextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'next-token', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max-results', ], ], ], 'ListUserGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'GroupList' => [ 'shape' => 'GroupList', ], 'NextToken' => [ 'shape' => 'String', ], 'RequestId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'StatusCode', 'location' => 'statusCode', ], ], ], 'ListUsersRequest' => [ 'type' => 'structure', 'required' => [ 'AwsAccountId', 'Namespace', ], 'members' => [ 'AwsAccountId' => [ 'shape' => 'AwsAccountId', 'location' => 'uri', 'locationName' => 'AwsAccountId', ], 'NextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'next-token', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max-results', ], 'Namespace' => [ 'shape' => 'Namespace', 'location' => 'uri', 'locationName' => 'Namespace', ], ], ], 'ListUsersResponse' => [ 'type' => 'structure', 'members' => [ 'UserList' => [ 'shape' => 'UserList', ], 'NextToken' => [ 'shape' => 'String', ], 'RequestId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'StatusCode', 'location' => 'statusCode', ], ], ], 'MaxResults' => [ 'type' => 'integer', 'max' => 100000, 'min' => 1, ], 'Namespace' => [ 'type' => 'string', 'pattern' => 'default', ], 'PreconditionNotMetException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'RequestId' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'QuickSightUserNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'RequestId' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'RegisterUserRequest' => [ 'type' => 'structure', 'required' => [ 'IdentityType', 'Email', 'UserRole', 'AwsAccountId', 'Namespace', ], 'members' => [ 'IdentityType' => [ 'shape' => 'IdentityType', ], 'Email' => [ 'shape' => 'String', ], 'UserRole' => [ 'shape' => 'UserRole', ], 'IamArn' => [ 'shape' => 'String', ], 'SessionName' => [ 'shape' => 'RoleSessionName', ], 'AwsAccountId' => [ 'shape' => 'AwsAccountId', 'location' => 'uri', 'locationName' => 'AwsAccountId', ], 'Namespace' => [ 'shape' => 'Namespace', 'location' => 'uri', 'locationName' => 'Namespace', ], 'UserName' => [ 'shape' => 'UserName', ], ], ], 'RegisterUserResponse' => [ 'type' => 'structure', 'members' => [ 'User' => [ 'shape' => 'User', ], 'UserInvitationUrl' => [ 'shape' => 'String', ], 'RequestId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'StatusCode', 'location' => 'statusCode', ], ], ], 'ResourceExistsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'ExceptionResourceType', ], 'RequestId' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'ExceptionResourceType', ], 'RequestId' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'ResourceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'ExceptionResourceType', ], 'RequestId' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 503, ], 'exception' => true, ], 'RoleSessionName' => [ 'type' => 'string', 'max' => 64, 'min' => 2, 'pattern' => '[\\w+=.@-]*', ], 'SessionLifetimeInMinutes' => [ 'type' => 'long', 'max' => 600, 'min' => 15, ], 'SessionLifetimeInMinutesInvalidException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'RequestId' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'StatusCode' => [ 'type' => 'integer', ], 'String' => [ 'type' => 'string', ], 'ThrottlingException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'RequestId' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'UnsupportedUserEditionException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'RequestId' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, ], 'UpdateGroupRequest' => [ 'type' => 'structure', 'required' => [ 'GroupName', 'AwsAccountId', 'Namespace', ], 'members' => [ 'GroupName' => [ 'shape' => 'GroupName', 'location' => 'uri', 'locationName' => 'GroupName', ], 'Description' => [ 'shape' => 'GroupDescription', ], 'AwsAccountId' => [ 'shape' => 'AwsAccountId', 'location' => 'uri', 'locationName' => 'AwsAccountId', ], 'Namespace' => [ 'shape' => 'Namespace', 'location' => 'uri', 'locationName' => 'Namespace', ], ], ], 'UpdateGroupResponse' => [ 'type' => 'structure', 'members' => [ 'Group' => [ 'shape' => 'Group', ], 'RequestId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'StatusCode', 'location' => 'statusCode', ], ], ], 'UpdateUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserName', 'AwsAccountId', 'Namespace', 'Email', 'Role', ], 'members' => [ 'UserName' => [ 'shape' => 'UserName', 'location' => 'uri', 'locationName' => 'UserName', ], 'AwsAccountId' => [ 'shape' => 'AwsAccountId', 'location' => 'uri', 'locationName' => 'AwsAccountId', ], 'Namespace' => [ 'shape' => 'Namespace', 'location' => 'uri', 'locationName' => 'Namespace', ], 'Email' => [ 'shape' => 'String', ], 'Role' => [ 'shape' => 'UserRole', ], ], ], 'UpdateUserResponse' => [ 'type' => 'structure', 'members' => [ 'User' => [ 'shape' => 'User', ], 'RequestId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'StatusCode', 'location' => 'statusCode', ], ], ], 'User' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'UserName' => [ 'shape' => 'UserName', ], 'Email' => [ 'shape' => 'String', ], 'Role' => [ 'shape' => 'UserRole', ], 'IdentityType' => [ 'shape' => 'IdentityType', ], 'Active' => [ 'shape' => 'Boolean', ], 'PrincipalId' => [ 'shape' => 'String', ], ], ], 'UserList' => [ 'type' => 'list', 'member' => [ 'shape' => 'User', ], ], 'UserName' => [ 'type' => 'string', 'min' => 1, 'pattern' => '[\\u0020-\\u00FF]+', ], 'UserRole' => [ 'type' => 'string', 'enum' => [ 'ADMIN', 'AUTHOR', 'READER', 'RESTRICTED_AUTHOR', 'RESTRICTED_READER', ], ], 'boolean' => [ 'type' => 'boolean', ], ],]; diff --git a/lib/aws/Aws/data/quicksight/2018-04-01/paginators-1.json.php b/lib/aws/Aws/data/quicksight/2018-04-01/paginators-1.json.php new file mode 100644 index 0000000..ea5faec --- /dev/null +++ b/lib/aws/Aws/data/quicksight/2018-04-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/quicksight/2018-04-01/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/ram/2018-01-04/api-2.json.php b/lib/aws/Aws/data/ram/2018-01-04/api-2.json.php new file mode 100644 index 0000000..8abd7cb --- /dev/null +++ b/lib/aws/Aws/data/ram/2018-01-04/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ram/2018-01-04/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-01-04', 'endpointPrefix' => 'ram', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'RAM', 'serviceFullName' => 'AWS Resource Access Manager', 'serviceId' => 'RAM', 'signatureVersion' => 'v4', 'uid' => 'ram-2018-01-04', ], 'operations' => [ 'AcceptResourceShareInvitation' => [ 'name' => 'AcceptResourceShareInvitation', 'http' => [ 'method' => 'POST', 'requestUri' => '/acceptresourceshareinvitation', ], 'input' => [ 'shape' => 'AcceptResourceShareInvitationRequest', ], 'output' => [ 'shape' => 'AcceptResourceShareInvitationResponse', ], 'errors' => [ [ 'shape' => 'MalformedArnException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'ResourceShareInvitationArnNotFoundException', ], [ 'shape' => 'ResourceShareInvitationAlreadyAcceptedException', ], [ 'shape' => 'ResourceShareInvitationAlreadyRejectedException', ], [ 'shape' => 'ResourceShareInvitationExpiredException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'AssociateResourceShare' => [ 'name' => 'AssociateResourceShare', 'http' => [ 'method' => 'POST', 'requestUri' => '/associateresourceshare', ], 'input' => [ 'shape' => 'AssociateResourceShareRequest', ], 'output' => [ 'shape' => 'AssociateResourceShareResponse', ], 'errors' => [ [ 'shape' => 'IdempotentParameterMismatchException', ], [ 'shape' => 'UnknownResourceException', ], [ 'shape' => 'InvalidStateTransitionException', ], [ 'shape' => 'ResourceShareLimitExceededException', ], [ 'shape' => 'MalformedArnException', ], [ 'shape' => 'InvalidStateTransitionException', ], [ 'shape' => 'InvalidClientTokenException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'UnknownResourceException', ], ], ], 'CreateResourceShare' => [ 'name' => 'CreateResourceShare', 'http' => [ 'method' => 'POST', 'requestUri' => '/createresourceshare', ], 'input' => [ 'shape' => 'CreateResourceShareRequest', ], 'output' => [ 'shape' => 'CreateResourceShareResponse', ], 'errors' => [ [ 'shape' => 'IdempotentParameterMismatchException', ], [ 'shape' => 'InvalidStateTransitionException', ], [ 'shape' => 'UnknownResourceException', ], [ 'shape' => 'MalformedArnException', ], [ 'shape' => 'InvalidClientTokenException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'ResourceShareLimitExceededException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeleteResourceShare' => [ 'name' => 'DeleteResourceShare', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/deleteresourceshare', ], 'input' => [ 'shape' => 'DeleteResourceShareRequest', ], 'output' => [ 'shape' => 'DeleteResourceShareResponse', ], 'errors' => [ [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'IdempotentParameterMismatchException', ], [ 'shape' => 'InvalidStateTransitionException', ], [ 'shape' => 'UnknownResourceException', ], [ 'shape' => 'MalformedArnException', ], [ 'shape' => 'InvalidClientTokenException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DisassociateResourceShare' => [ 'name' => 'DisassociateResourceShare', 'http' => [ 'method' => 'POST', 'requestUri' => '/disassociateresourceshare', ], 'input' => [ 'shape' => 'DisassociateResourceShareRequest', ], 'output' => [ 'shape' => 'DisassociateResourceShareResponse', ], 'errors' => [ [ 'shape' => 'IdempotentParameterMismatchException', ], [ 'shape' => 'ResourceShareLimitExceededException', ], [ 'shape' => 'MalformedArnException', ], [ 'shape' => 'InvalidStateTransitionException', ], [ 'shape' => 'InvalidClientTokenException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'UnknownResourceException', ], ], ], 'EnableSharingWithAwsOrganization' => [ 'name' => 'EnableSharingWithAwsOrganization', 'http' => [ 'method' => 'POST', 'requestUri' => '/enablesharingwithawsorganization', ], 'input' => [ 'shape' => 'EnableSharingWithAwsOrganizationRequest', ], 'output' => [ 'shape' => 'EnableSharingWithAwsOrganizationResponse', ], 'errors' => [ [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'GetResourcePolicies' => [ 'name' => 'GetResourcePolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/getresourcepolicies', ], 'input' => [ 'shape' => 'GetResourcePoliciesRequest', ], 'output' => [ 'shape' => 'GetResourcePoliciesResponse', ], 'errors' => [ [ 'shape' => 'MalformedArnException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'GetResourceShareAssociations' => [ 'name' => 'GetResourceShareAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/getresourceshareassociations', ], 'input' => [ 'shape' => 'GetResourceShareAssociationsRequest', ], 'output' => [ 'shape' => 'GetResourceShareAssociationsResponse', ], 'errors' => [ [ 'shape' => 'UnknownResourceException', ], [ 'shape' => 'MalformedArnException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'GetResourceShareInvitations' => [ 'name' => 'GetResourceShareInvitations', 'http' => [ 'method' => 'POST', 'requestUri' => '/getresourceshareinvitations', ], 'input' => [ 'shape' => 'GetResourceShareInvitationsRequest', ], 'output' => [ 'shape' => 'GetResourceShareInvitationsResponse', ], 'errors' => [ [ 'shape' => 'ResourceShareInvitationArnNotFoundException', ], [ 'shape' => 'InvalidMaxResultsException', ], [ 'shape' => 'MalformedArnException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'GetResourceShares' => [ 'name' => 'GetResourceShares', 'http' => [ 'method' => 'POST', 'requestUri' => '/getresourceshares', ], 'input' => [ 'shape' => 'GetResourceSharesRequest', ], 'output' => [ 'shape' => 'GetResourceSharesResponse', ], 'errors' => [ [ 'shape' => 'UnknownResourceException', ], [ 'shape' => 'MalformedArnException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ListPrincipals' => [ 'name' => 'ListPrincipals', 'http' => [ 'method' => 'POST', 'requestUri' => '/listprincipals', ], 'input' => [ 'shape' => 'ListPrincipalsRequest', ], 'output' => [ 'shape' => 'ListPrincipalsResponse', ], 'errors' => [ [ 'shape' => 'MalformedArnException', ], [ 'shape' => 'UnknownResourceException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ListResources' => [ 'name' => 'ListResources', 'http' => [ 'method' => 'POST', 'requestUri' => '/listresources', ], 'input' => [ 'shape' => 'ListResourcesRequest', ], 'output' => [ 'shape' => 'ListResourcesResponse', ], 'errors' => [ [ 'shape' => 'InvalidResourceTypeException', ], [ 'shape' => 'UnknownResourceException', ], [ 'shape' => 'MalformedArnException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'RejectResourceShareInvitation' => [ 'name' => 'RejectResourceShareInvitation', 'http' => [ 'method' => 'POST', 'requestUri' => '/rejectresourceshareinvitation', ], 'input' => [ 'shape' => 'RejectResourceShareInvitationRequest', ], 'output' => [ 'shape' => 'RejectResourceShareInvitationResponse', ], 'errors' => [ [ 'shape' => 'MalformedArnException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'ResourceShareInvitationArnNotFoundException', ], [ 'shape' => 'ResourceShareInvitationAlreadyAcceptedException', ], [ 'shape' => 'ResourceShareInvitationAlreadyRejectedException', ], [ 'shape' => 'ResourceShareInvitationExpiredException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/tagresource', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MalformedArnException', ], [ 'shape' => 'TagLimitExceededException', ], [ 'shape' => 'ResourceArnNotFoundException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/untagresource', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'UpdateResourceShare' => [ 'name' => 'UpdateResourceShare', 'http' => [ 'method' => 'POST', 'requestUri' => '/updateresourceshare', ], 'input' => [ 'shape' => 'UpdateResourceShareRequest', ], 'output' => [ 'shape' => 'UpdateResourceShareResponse', ], 'errors' => [ [ 'shape' => 'IdempotentParameterMismatchException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'UnknownResourceException', ], [ 'shape' => 'MalformedArnException', ], [ 'shape' => 'InvalidClientTokenException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'ServerInternalException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], ], 'shapes' => [ 'AcceptResourceShareInvitationRequest' => [ 'type' => 'structure', 'required' => [ 'resourceShareInvitationArn', ], 'members' => [ 'resourceShareInvitationArn' => [ 'shape' => 'String', ], 'clientToken' => [ 'shape' => 'String', ], ], ], 'AcceptResourceShareInvitationResponse' => [ 'type' => 'structure', 'members' => [ 'resourceShareInvitation' => [ 'shape' => 'ResourceShareInvitation', ], 'clientToken' => [ 'shape' => 'String', ], ], ], 'AssociateResourceShareRequest' => [ 'type' => 'structure', 'required' => [ 'resourceShareArn', ], 'members' => [ 'resourceShareArn' => [ 'shape' => 'String', ], 'resourceArns' => [ 'shape' => 'ResourceArnList', ], 'principals' => [ 'shape' => 'PrincipalArnOrIdList', ], 'clientToken' => [ 'shape' => 'String', ], ], ], 'AssociateResourceShareResponse' => [ 'type' => 'structure', 'members' => [ 'resourceShareAssociations' => [ 'shape' => 'ResourceShareAssociationList', ], 'clientToken' => [ 'shape' => 'String', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'CreateResourceShareRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'resourceArns' => [ 'shape' => 'ResourceArnList', ], 'principals' => [ 'shape' => 'PrincipalArnOrIdList', ], 'tags' => [ 'shape' => 'TagList', ], 'allowExternalPrincipals' => [ 'shape' => 'Boolean', ], 'clientToken' => [ 'shape' => 'String', ], ], ], 'CreateResourceShareResponse' => [ 'type' => 'structure', 'members' => [ 'resourceShare' => [ 'shape' => 'ResourceShare', ], 'clientToken' => [ 'shape' => 'String', ], ], ], 'DateTime' => [ 'type' => 'timestamp', ], 'DeleteResourceShareRequest' => [ 'type' => 'structure', 'required' => [ 'resourceShareArn', ], 'members' => [ 'resourceShareArn' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'resourceShareArn', ], 'clientToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'clientToken', ], ], ], 'DeleteResourceShareResponse' => [ 'type' => 'structure', 'members' => [ 'returnValue' => [ 'shape' => 'Boolean', ], 'clientToken' => [ 'shape' => 'String', ], ], ], 'DisassociateResourceShareRequest' => [ 'type' => 'structure', 'required' => [ 'resourceShareArn', ], 'members' => [ 'resourceShareArn' => [ 'shape' => 'String', ], 'resourceArns' => [ 'shape' => 'ResourceArnList', ], 'principals' => [ 'shape' => 'PrincipalArnOrIdList', ], 'clientToken' => [ 'shape' => 'String', ], ], ], 'DisassociateResourceShareResponse' => [ 'type' => 'structure', 'members' => [ 'resourceShareAssociations' => [ 'shape' => 'ResourceShareAssociationList', ], 'clientToken' => [ 'shape' => 'String', ], ], ], 'EnableSharingWithAwsOrganizationRequest' => [ 'type' => 'structure', 'members' => [], ], 'EnableSharingWithAwsOrganizationResponse' => [ 'type' => 'structure', 'members' => [ 'returnValue' => [ 'shape' => 'Boolean', ], ], ], 'GetResourcePoliciesRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArns', ], 'members' => [ 'resourceArns' => [ 'shape' => 'ResourceArnList', ], 'principal' => [ 'shape' => 'String', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'GetResourcePoliciesResponse' => [ 'type' => 'structure', 'members' => [ 'policies' => [ 'shape' => 'PolicyList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'GetResourceShareAssociationsRequest' => [ 'type' => 'structure', 'required' => [ 'associationType', ], 'members' => [ 'associationType' => [ 'shape' => 'ResourceShareAssociationType', ], 'resourceShareArns' => [ 'shape' => 'ResourceShareArnList', ], 'resourceArn' => [ 'shape' => 'String', ], 'principal' => [ 'shape' => 'String', ], 'associationStatus' => [ 'shape' => 'ResourceShareAssociationStatus', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'GetResourceShareAssociationsResponse' => [ 'type' => 'structure', 'members' => [ 'resourceShareAssociations' => [ 'shape' => 'ResourceShareAssociationList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'GetResourceShareInvitationsRequest' => [ 'type' => 'structure', 'members' => [ 'resourceShareInvitationArns' => [ 'shape' => 'ResourceShareInvitationArnList', ], 'resourceShareArns' => [ 'shape' => 'ResourceShareArnList', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'GetResourceShareInvitationsResponse' => [ 'type' => 'structure', 'members' => [ 'resourceShareInvitations' => [ 'shape' => 'ResourceShareInvitationList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'GetResourceSharesRequest' => [ 'type' => 'structure', 'required' => [ 'resourceOwner', ], 'members' => [ 'resourceShareArns' => [ 'shape' => 'ResourceShareArnList', ], 'resourceShareStatus' => [ 'shape' => 'ResourceShareStatus', ], 'resourceOwner' => [ 'shape' => 'ResourceOwner', ], 'name' => [ 'shape' => 'String', ], 'tagFilters' => [ 'shape' => 'TagFilters', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'GetResourceSharesResponse' => [ 'type' => 'structure', 'members' => [ 'resourceShares' => [ 'shape' => 'ResourceShareList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'IdempotentParameterMismatchException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidClientTokenException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidMaxResultsException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidParameterException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidResourceTypeException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidStateTransitionException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ListPrincipalsRequest' => [ 'type' => 'structure', 'required' => [ 'resourceOwner', ], 'members' => [ 'resourceOwner' => [ 'shape' => 'ResourceOwner', ], 'resourceArn' => [ 'shape' => 'String', ], 'principals' => [ 'shape' => 'PrincipalArnOrIdList', ], 'resourceType' => [ 'shape' => 'String', ], 'resourceShareArns' => [ 'shape' => 'ResourceShareArnList', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListPrincipalsResponse' => [ 'type' => 'structure', 'members' => [ 'principals' => [ 'shape' => 'PrincipalList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListResourcesRequest' => [ 'type' => 'structure', 'required' => [ 'resourceOwner', ], 'members' => [ 'resourceOwner' => [ 'shape' => 'ResourceOwner', ], 'principal' => [ 'shape' => 'String', ], 'resourceType' => [ 'shape' => 'String', ], 'resourceArns' => [ 'shape' => 'ResourceArnList', ], 'resourceShareArns' => [ 'shape' => 'ResourceShareArnList', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListResourcesResponse' => [ 'type' => 'structure', 'members' => [ 'resources' => [ 'shape' => 'ResourceList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'MalformedArnException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'MaxResults' => [ 'type' => 'integer', 'max' => 500, 'min' => 1, ], 'MissingRequiredParameterException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'OperationNotPermittedException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'Policy' => [ 'type' => 'string', ], 'PolicyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Policy', ], ], 'Principal' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'resourceShareArn' => [ 'shape' => 'String', ], 'creationTime' => [ 'shape' => 'DateTime', ], 'lastUpdatedTime' => [ 'shape' => 'DateTime', ], 'external' => [ 'shape' => 'Boolean', ], ], ], 'PrincipalArnOrIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'PrincipalList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Principal', ], ], 'RejectResourceShareInvitationRequest' => [ 'type' => 'structure', 'required' => [ 'resourceShareInvitationArn', ], 'members' => [ 'resourceShareInvitationArn' => [ 'shape' => 'String', ], 'clientToken' => [ 'shape' => 'String', ], ], ], 'RejectResourceShareInvitationResponse' => [ 'type' => 'structure', 'members' => [ 'resourceShareInvitation' => [ 'shape' => 'ResourceShareInvitation', ], 'clientToken' => [ 'shape' => 'String', ], ], ], 'Resource' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'String', ], 'resourceShareArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ResourceStatus', ], 'statusMessage' => [ 'shape' => 'String', ], 'creationTime' => [ 'shape' => 'DateTime', ], 'lastUpdatedTime' => [ 'shape' => 'DateTime', ], ], ], 'ResourceArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ResourceArnNotFoundException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Resource', ], ], 'ResourceOwner' => [ 'type' => 'string', 'enum' => [ 'SELF', 'OTHER-ACCOUNTS', ], ], 'ResourceShare' => [ 'type' => 'structure', 'members' => [ 'resourceShareArn' => [ 'shape' => 'String', ], 'name' => [ 'shape' => 'String', ], 'owningAccountId' => [ 'shape' => 'String', ], 'allowExternalPrincipals' => [ 'shape' => 'Boolean', ], 'status' => [ 'shape' => 'ResourceShareStatus', ], 'statusMessage' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'TagList', ], 'creationTime' => [ 'shape' => 'DateTime', ], 'lastUpdatedTime' => [ 'shape' => 'DateTime', ], ], ], 'ResourceShareArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ResourceShareAssociation' => [ 'type' => 'structure', 'members' => [ 'resourceShareArn' => [ 'shape' => 'String', ], 'associatedEntity' => [ 'shape' => 'String', ], 'associationType' => [ 'shape' => 'ResourceShareAssociationType', ], 'status' => [ 'shape' => 'ResourceShareAssociationStatus', ], 'statusMessage' => [ 'shape' => 'String', ], 'creationTime' => [ 'shape' => 'DateTime', ], 'lastUpdatedTime' => [ 'shape' => 'DateTime', ], 'external' => [ 'shape' => 'Boolean', ], ], ], 'ResourceShareAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceShareAssociation', ], ], 'ResourceShareAssociationStatus' => [ 'type' => 'string', 'enum' => [ 'ASSOCIATING', 'ASSOCIATED', 'FAILED', 'DISASSOCIATING', 'DISASSOCIATED', ], ], 'ResourceShareAssociationType' => [ 'type' => 'string', 'enum' => [ 'PRINCIPAL', 'RESOURCE', ], ], 'ResourceShareInvitation' => [ 'type' => 'structure', 'members' => [ 'resourceShareInvitationArn' => [ 'shape' => 'String', ], 'resourceShareName' => [ 'shape' => 'String', ], 'resourceShareArn' => [ 'shape' => 'String', ], 'senderAccountId' => [ 'shape' => 'String', ], 'receiverAccountId' => [ 'shape' => 'String', ], 'invitationTimestamp' => [ 'shape' => 'DateTime', ], 'status' => [ 'shape' => 'ResourceShareInvitationStatus', ], 'resourceShareAssociations' => [ 'shape' => 'ResourceShareAssociationList', ], ], ], 'ResourceShareInvitationAlreadyAcceptedException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ResourceShareInvitationAlreadyRejectedException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ResourceShareInvitationArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ResourceShareInvitationArnNotFoundException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ResourceShareInvitationExpiredException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ResourceShareInvitationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceShareInvitation', ], ], 'ResourceShareInvitationStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'ACCEPTED', 'REJECTED', 'EXPIRED', ], ], 'ResourceShareLimitExceededException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ResourceShareList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceShare', ], ], 'ResourceShareStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'ACTIVE', 'FAILED', 'DELETING', 'DELETED', ], ], 'ResourceStatus' => [ 'type' => 'string', 'enum' => [ 'AVAILABLE', 'ZONAL_RESOURCE_INACCESSIBLE', 'LIMIT_EXCEEDED', 'UNAVAILABLE', ], ], 'ServerInternalException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 503, ], 'exception' => true, ], 'String' => [ 'type' => 'string', ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], ], ], 'TagFilter' => [ 'type' => 'structure', 'members' => [ 'tagKey' => [ 'shape' => 'TagKey', ], 'tagValues' => [ 'shape' => 'TagValueList', ], ], ], 'TagFilters' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagFilter', ], ], 'TagKey' => [ 'type' => 'string', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagLimitExceededException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceShareArn', 'tags', ], 'members' => [ 'resourceShareArn' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', ], 'TagValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagValue', ], ], 'UnknownResourceException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceShareArn', 'tagKeys', ], 'members' => [ 'resourceShareArn' => [ 'shape' => 'String', ], 'tagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateResourceShareRequest' => [ 'type' => 'structure', 'required' => [ 'resourceShareArn', ], 'members' => [ 'resourceShareArn' => [ 'shape' => 'String', ], 'name' => [ 'shape' => 'String', ], 'allowExternalPrincipals' => [ 'shape' => 'Boolean', ], 'clientToken' => [ 'shape' => 'String', ], ], ], 'UpdateResourceShareResponse' => [ 'type' => 'structure', 'members' => [ 'resourceShare' => [ 'shape' => 'ResourceShare', ], 'clientToken' => [ 'shape' => 'String', ], ], ], ],]; diff --git a/lib/aws/Aws/data/ram/2018-01-04/paginators-1.json.php b/lib/aws/Aws/data/ram/2018-01-04/paginators-1.json.php new file mode 100644 index 0000000..a5d82e3 --- /dev/null +++ b/lib/aws/Aws/data/ram/2018-01-04/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ram/2018-01-04/paginators-1.json +return [ 'pagination' => [ 'GetResourcePolicies' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'GetResourceShareAssociations' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'GetResourceShareInvitations' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'GetResourceShares' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListPrincipals' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListResources' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], ],]; diff --git a/lib/aws/Aws/data/rds-data/2018-08-01/api-2.json.php b/lib/aws/Aws/data/rds-data/2018-08-01/api-2.json.php new file mode 100644 index 0000000..7f8ca0d --- /dev/null +++ b/lib/aws/Aws/data/rds-data/2018-08-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/rds-data/2018-08-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-08-01', 'endpointPrefix' => 'rds-data', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceFullName' => 'AWS RDS DataService', 'serviceId' => 'RDS Data', 'signatureVersion' => 'v4', 'signingName' => 'rds-data', 'uid' => 'rds-data-2018-08-01', ], 'operations' => [ 'ExecuteSql' => [ 'name' => 'ExecuteSql', 'http' => [ 'method' => 'POST', 'requestUri' => '/ExecuteSql', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ExecuteSqlRequest', ], 'output' => [ 'shape' => 'ExecuteSqlResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ServiceUnavailableError', ], ], ], ], 'shapes' => [ 'Boolean' => [ 'type' => 'boolean', 'box' => true, ], 'ForbiddenException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'ForbiddenException', 'httpStatusCode' => 403, 'senderFault' => true, ], ], 'Value' => [ 'type' => 'structure', 'members' => [ 'arrayValues' => [ 'shape' => 'ArrayValues', ], 'bigIntValue' => [ 'shape' => 'Long', ], 'bitValue' => [ 'shape' => 'Boolean', ], 'blobValue' => [ 'shape' => 'Blob', ], 'doubleValue' => [ 'shape' => 'Double', ], 'intValue' => [ 'shape' => 'Integer', ], 'isNull' => [ 'shape' => 'Boolean', ], 'realValue' => [ 'shape' => 'Float', ], 'stringValue' => [ 'shape' => 'String', ], 'structValue' => [ 'shape' => 'StructValue', ], ], ], 'SqlStatementResults' => [ 'type' => 'list', 'member' => [ 'shape' => 'SqlStatementResult', ], ], 'ColumnMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ColumnMetadata', ], ], 'ResultFrame' => [ 'type' => 'structure', 'members' => [ 'records' => [ 'shape' => 'Records', ], 'resultSetMetadata' => [ 'shape' => 'ResultSetMetadata', ], ], ], 'Long' => [ 'type' => 'long', 'box' => true, ], 'Row' => [ 'type' => 'list', 'member' => [ 'shape' => 'Value', ], ], 'String' => [ 'type' => 'string', ], 'ArrayValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'Value', ], ], 'Float' => [ 'type' => 'float', 'box' => true, ], 'ExecuteSqlResponse' => [ 'type' => 'structure', 'required' => [ 'sqlStatementResults', ], 'members' => [ 'sqlStatementResults' => [ 'shape' => 'SqlStatementResults', ], ], ], 'SqlStatementResult' => [ 'type' => 'structure', 'members' => [ 'numberOfRecordsUpdated' => [ 'shape' => 'Long', ], 'resultFrame' => [ 'shape' => 'ResultFrame', ], ], ], 'ResultSetMetadata' => [ 'type' => 'structure', 'members' => [ 'columnCount' => [ 'shape' => 'Long', ], 'columnMetadata' => [ 'shape' => 'ColumnMetadataList', ], ], ], 'Records' => [ 'type' => 'list', 'member' => [ 'shape' => 'Record', ], ], 'ExecuteSqlRequest' => [ 'type' => 'structure', 'required' => [ 'awsSecretStoreArn', 'dbClusterOrInstanceArn', 'sqlStatements', ], 'members' => [ 'awsSecretStoreArn' => [ 'shape' => 'Arn', ], 'database' => [ 'shape' => 'DbName', ], 'dbClusterOrInstanceArn' => [ 'shape' => 'Arn', ], 'schema' => [ 'shape' => 'DbName', ], 'sqlStatements' => [ 'shape' => 'SqlStatement', ], ], ], 'Arn' => [ 'type' => 'string', 'max' => 1024, ], 'StructValue' => [ 'type' => 'structure', 'members' => [ 'attributes' => [ 'shape' => 'ArrayValues', ], ], ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'code' => 'BadRequestException', 'httpStatusCode' => 400, 'senderFault' => true, ], ], 'Blob' => [ 'type' => 'blob', ], 'SqlStatement' => [ 'type' => 'string', 'max' => 65536, ], 'Double' => [ 'type' => 'double', 'box' => true, ], 'ServiceUnavailableError' => [ 'type' => 'structure', 'members' => [], 'exception' => true, 'error' => [ 'code' => 'ServiceUnavailableError', 'httpStatusCode' => 503, 'fault' => true, ], ], 'ColumnMetadata' => [ 'type' => 'structure', 'members' => [ 'arrayBaseColumnType' => [ 'shape' => 'Integer', ], 'isAutoIncrement' => [ 'shape' => 'Boolean', ], 'isCaseSensitive' => [ 'shape' => 'Boolean', ], 'isCurrency' => [ 'shape' => 'Boolean', ], 'isSigned' => [ 'shape' => 'Boolean', ], 'label' => [ 'shape' => 'String', ], 'name' => [ 'shape' => 'String', ], 'nullable' => [ 'shape' => 'Integer', ], 'precision' => [ 'shape' => 'Integer', ], 'scale' => [ 'shape' => 'Integer', ], 'schemaName' => [ 'shape' => 'String', ], 'tableName' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'Integer', ], 'typeName' => [ 'shape' => 'String', ], ], ], 'Integer' => [ 'type' => 'integer', 'box' => true, ], 'DbName' => [ 'type' => 'string', 'max' => 64, ], 'Record' => [ 'type' => 'structure', 'members' => [ 'values' => [ 'shape' => 'Row', ], ], ], 'InternalServerErrorException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, 'error' => [ 'code' => 'InternalServerErrorException', 'httpStatusCode' => 500, 'fault' => true, ], ], ],]; diff --git a/lib/aws/Aws/data/rds-data/2018-08-01/paginators-1.json.php b/lib/aws/Aws/data/rds-data/2018-08-01/paginators-1.json.php new file mode 100644 index 0000000..2fc7a76 --- /dev/null +++ b/lib/aws/Aws/data/rds-data/2018-08-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/rds-data/2018-08-01/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/rds/2014-09-01/api-2.json.php b/lib/aws/Aws/data/rds/2014-09-01/api-2.json.php new file mode 100644 index 0000000..7d82ced --- /dev/null +++ b/lib/aws/Aws/data/rds/2014-09-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/rds/2014-09-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2014-09-01', 'endpointPrefix' => 'rds', 'protocol' => 'query', 'serviceAbbreviation' => 'Amazon RDS', 'serviceFullName' => 'Amazon Relational Database Service', 'serviceId' => 'RDS', 'signatureVersion' => 'v4', 'uid' => 'rds-2014-09-01', 'xmlNamespace' => 'http://rds.amazonaws.com/doc/2014-09-01/', ], 'operations' => [ 'AddSourceIdentifierToSubscription' => [ 'name' => 'AddSourceIdentifierToSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddSourceIdentifierToSubscriptionMessage', ], 'output' => [ 'shape' => 'AddSourceIdentifierToSubscriptionResult', 'resultWrapper' => 'AddSourceIdentifierToSubscriptionResult', ], 'errors' => [ [ 'shape' => 'SubscriptionNotFoundFault', ], [ 'shape' => 'SourceNotFoundFault', ], ], ], 'AddTagsToResource' => [ 'name' => 'AddTagsToResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddTagsToResourceMessage', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], ], ], 'AuthorizeDBSecurityGroupIngress' => [ 'name' => 'AuthorizeDBSecurityGroupIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AuthorizeDBSecurityGroupIngressMessage', ], 'output' => [ 'shape' => 'AuthorizeDBSecurityGroupIngressResult', 'resultWrapper' => 'AuthorizeDBSecurityGroupIngressResult', ], 'errors' => [ [ 'shape' => 'DBSecurityGroupNotFoundFault', ], [ 'shape' => 'InvalidDBSecurityGroupStateFault', ], [ 'shape' => 'AuthorizationAlreadyExistsFault', ], [ 'shape' => 'AuthorizationQuotaExceededFault', ], ], ], 'CopyDBParameterGroup' => [ 'name' => 'CopyDBParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyDBParameterGroupMessage', ], 'output' => [ 'shape' => 'CopyDBParameterGroupResult', 'resultWrapper' => 'CopyDBParameterGroupResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'DBParameterGroupAlreadyExistsFault', ], [ 'shape' => 'DBParameterGroupQuotaExceededFault', ], ], ], 'CopyDBSnapshot' => [ 'name' => 'CopyDBSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyDBSnapshotMessage', ], 'output' => [ 'shape' => 'CopyDBSnapshotResult', 'resultWrapper' => 'CopyDBSnapshotResult', ], 'errors' => [ [ 'shape' => 'DBSnapshotAlreadyExistsFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], [ 'shape' => 'InvalidDBSnapshotStateFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], ], ], 'CopyOptionGroup' => [ 'name' => 'CopyOptionGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyOptionGroupMessage', ], 'output' => [ 'shape' => 'CopyOptionGroupResult', 'resultWrapper' => 'CopyOptionGroupResult', ], 'errors' => [ [ 'shape' => 'OptionGroupAlreadyExistsFault', ], [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'OptionGroupQuotaExceededFault', ], ], ], 'CreateDBInstance' => [ 'name' => 'CreateDBInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBInstanceMessage', ], 'output' => [ 'shape' => 'CreateDBInstanceResult', 'resultWrapper' => 'CreateDBInstanceResult', ], 'errors' => [ [ 'shape' => 'DBInstanceAlreadyExistsFault', ], [ 'shape' => 'InsufficientDBInstanceCapacityFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'DBSecurityGroupNotFoundFault', ], [ 'shape' => 'InstanceQuotaExceededFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'ProvisionedIopsNotAvailableInAZFault', ], [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'StorageTypeNotSupportedFault', ], [ 'shape' => 'AuthorizationNotFoundFault', ], ], ], 'CreateDBInstanceReadReplica' => [ 'name' => 'CreateDBInstanceReadReplica', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBInstanceReadReplicaMessage', ], 'output' => [ 'shape' => 'CreateDBInstanceReadReplicaResult', 'resultWrapper' => 'CreateDBInstanceReadReplicaResult', ], 'errors' => [ [ 'shape' => 'DBInstanceAlreadyExistsFault', ], [ 'shape' => 'InsufficientDBInstanceCapacityFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'DBSecurityGroupNotFoundFault', ], [ 'shape' => 'InstanceQuotaExceededFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'ProvisionedIopsNotAvailableInAZFault', ], [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'DBSubnetGroupNotAllowedFault', ], [ 'shape' => 'InvalidDBSubnetGroupFault', ], [ 'shape' => 'StorageTypeNotSupportedFault', ], ], ], 'CreateDBParameterGroup' => [ 'name' => 'CreateDBParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBParameterGroupMessage', ], 'output' => [ 'shape' => 'CreateDBParameterGroupResult', 'resultWrapper' => 'CreateDBParameterGroupResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupQuotaExceededFault', ], [ 'shape' => 'DBParameterGroupAlreadyExistsFault', ], ], ], 'CreateDBSecurityGroup' => [ 'name' => 'CreateDBSecurityGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBSecurityGroupMessage', ], 'output' => [ 'shape' => 'CreateDBSecurityGroupResult', 'resultWrapper' => 'CreateDBSecurityGroupResult', ], 'errors' => [ [ 'shape' => 'DBSecurityGroupAlreadyExistsFault', ], [ 'shape' => 'DBSecurityGroupQuotaExceededFault', ], [ 'shape' => 'DBSecurityGroupNotSupportedFault', ], ], ], 'CreateDBSnapshot' => [ 'name' => 'CreateDBSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBSnapshotMessage', ], 'output' => [ 'shape' => 'CreateDBSnapshotResult', 'resultWrapper' => 'CreateDBSnapshotResult', ], 'errors' => [ [ 'shape' => 'DBSnapshotAlreadyExistsFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], ], ], 'CreateDBSubnetGroup' => [ 'name' => 'CreateDBSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBSubnetGroupMessage', ], 'output' => [ 'shape' => 'CreateDBSubnetGroupResult', 'resultWrapper' => 'CreateDBSubnetGroupResult', ], 'errors' => [ [ 'shape' => 'DBSubnetGroupAlreadyExistsFault', ], [ 'shape' => 'DBSubnetGroupQuotaExceededFault', ], [ 'shape' => 'DBSubnetQuotaExceededFault', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidSubnet', ], ], ], 'CreateEventSubscription' => [ 'name' => 'CreateEventSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateEventSubscriptionMessage', ], 'output' => [ 'shape' => 'CreateEventSubscriptionResult', 'resultWrapper' => 'CreateEventSubscriptionResult', ], 'errors' => [ [ 'shape' => 'EventSubscriptionQuotaExceededFault', ], [ 'shape' => 'SubscriptionAlreadyExistFault', ], [ 'shape' => 'SNSInvalidTopicFault', ], [ 'shape' => 'SNSNoAuthorizationFault', ], [ 'shape' => 'SNSTopicArnNotFoundFault', ], [ 'shape' => 'SubscriptionCategoryNotFoundFault', ], [ 'shape' => 'SourceNotFoundFault', ], ], ], 'CreateOptionGroup' => [ 'name' => 'CreateOptionGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateOptionGroupMessage', ], 'output' => [ 'shape' => 'CreateOptionGroupResult', 'resultWrapper' => 'CreateOptionGroupResult', ], 'errors' => [ [ 'shape' => 'OptionGroupAlreadyExistsFault', ], [ 'shape' => 'OptionGroupQuotaExceededFault', ], ], ], 'DeleteDBInstance' => [ 'name' => 'DeleteDBInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBInstanceMessage', ], 'output' => [ 'shape' => 'DeleteDBInstanceResult', 'resultWrapper' => 'DeleteDBInstanceResult', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBSnapshotAlreadyExistsFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], ], ], 'DeleteDBParameterGroup' => [ 'name' => 'DeleteDBParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBParameterGroupMessage', ], 'errors' => [ [ 'shape' => 'InvalidDBParameterGroupStateFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'DeleteDBSecurityGroup' => [ 'name' => 'DeleteDBSecurityGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBSecurityGroupMessage', ], 'errors' => [ [ 'shape' => 'InvalidDBSecurityGroupStateFault', ], [ 'shape' => 'DBSecurityGroupNotFoundFault', ], ], ], 'DeleteDBSnapshot' => [ 'name' => 'DeleteDBSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBSnapshotMessage', ], 'output' => [ 'shape' => 'DeleteDBSnapshotResult', 'resultWrapper' => 'DeleteDBSnapshotResult', ], 'errors' => [ [ 'shape' => 'InvalidDBSnapshotStateFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], ], ], 'DeleteDBSubnetGroup' => [ 'name' => 'DeleteDBSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBSubnetGroupMessage', ], 'errors' => [ [ 'shape' => 'InvalidDBSubnetGroupStateFault', ], [ 'shape' => 'InvalidDBSubnetStateFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], ], ], 'DeleteEventSubscription' => [ 'name' => 'DeleteEventSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteEventSubscriptionMessage', ], 'output' => [ 'shape' => 'DeleteEventSubscriptionResult', 'resultWrapper' => 'DeleteEventSubscriptionResult', ], 'errors' => [ [ 'shape' => 'SubscriptionNotFoundFault', ], [ 'shape' => 'InvalidEventSubscriptionStateFault', ], ], ], 'DeleteOptionGroup' => [ 'name' => 'DeleteOptionGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteOptionGroupMessage', ], 'errors' => [ [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'InvalidOptionGroupStateFault', ], ], ], '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', ], ], ], 'DescribeDBLogFiles' => [ 'name' => 'DescribeDBLogFiles', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBLogFilesMessage', ], 'output' => [ 'shape' => 'DescribeDBLogFilesResponse', 'resultWrapper' => 'DescribeDBLogFilesResult', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], ], ], 'DescribeDBParameterGroups' => [ 'name' => 'DescribeDBParameterGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBParameterGroupsMessage', ], 'output' => [ 'shape' => 'DBParameterGroupsMessage', 'resultWrapper' => 'DescribeDBParameterGroupsResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'DescribeDBParameters' => [ 'name' => 'DescribeDBParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBParametersMessage', ], 'output' => [ 'shape' => 'DBParameterGroupDetails', 'resultWrapper' => 'DescribeDBParametersResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'DescribeDBSecurityGroups' => [ 'name' => 'DescribeDBSecurityGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBSecurityGroupsMessage', ], 'output' => [ 'shape' => 'DBSecurityGroupMessage', 'resultWrapper' => 'DescribeDBSecurityGroupsResult', ], 'errors' => [ [ 'shape' => 'DBSecurityGroupNotFoundFault', ], ], ], 'DescribeDBSnapshots' => [ 'name' => 'DescribeDBSnapshots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBSnapshotsMessage', ], 'output' => [ 'shape' => 'DBSnapshotMessage', 'resultWrapper' => 'DescribeDBSnapshotsResult', ], 'errors' => [ [ 'shape' => 'DBSnapshotNotFoundFault', ], ], ], 'DescribeDBSubnetGroups' => [ 'name' => 'DescribeDBSubnetGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBSubnetGroupsMessage', ], 'output' => [ 'shape' => 'DBSubnetGroupMessage', 'resultWrapper' => 'DescribeDBSubnetGroupsResult', ], 'errors' => [ [ 'shape' => 'DBSubnetGroupNotFoundFault', ], ], ], 'DescribeEngineDefaultParameters' => [ 'name' => 'DescribeEngineDefaultParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEngineDefaultParametersMessage', ], 'output' => [ 'shape' => 'DescribeEngineDefaultParametersResult', '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', ], ], ], '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', ], ], ], 'DescribeOrderableDBInstanceOptions' => [ 'name' => 'DescribeOrderableDBInstanceOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeOrderableDBInstanceOptionsMessage', ], 'output' => [ 'shape' => 'OrderableDBInstanceOptionsMessage', 'resultWrapper' => 'DescribeOrderableDBInstanceOptionsResult', ], ], 'DescribeReservedDBInstances' => [ 'name' => 'DescribeReservedDBInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReservedDBInstancesMessage', ], 'output' => [ 'shape' => 'ReservedDBInstanceMessage', 'resultWrapper' => 'DescribeReservedDBInstancesResult', ], 'errors' => [ [ 'shape' => 'ReservedDBInstanceNotFoundFault', ], ], ], 'DescribeReservedDBInstancesOfferings' => [ 'name' => 'DescribeReservedDBInstancesOfferings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReservedDBInstancesOfferingsMessage', ], 'output' => [ 'shape' => 'ReservedDBInstancesOfferingMessage', 'resultWrapper' => 'DescribeReservedDBInstancesOfferingsResult', ], 'errors' => [ [ 'shape' => 'ReservedDBInstancesOfferingNotFoundFault', ], ], ], 'DownloadDBLogFilePortion' => [ 'name' => 'DownloadDBLogFilePortion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DownloadDBLogFilePortionMessage', ], 'output' => [ 'shape' => 'DownloadDBLogFilePortionDetails', 'resultWrapper' => 'DownloadDBLogFilePortionResult', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBLogFileNotFoundFault', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceMessage', ], 'output' => [ 'shape' => 'TagListMessage', 'resultWrapper' => 'ListTagsForResourceResult', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], ], ], 'ModifyDBInstance' => [ 'name' => 'ModifyDBInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBInstanceMessage', ], 'output' => [ 'shape' => 'ModifyDBInstanceResult', 'resultWrapper' => 'ModifyDBInstanceResult', ], 'errors' => [ [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'InvalidDBSecurityGroupStateFault', ], [ 'shape' => 'DBInstanceAlreadyExistsFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBSecurityGroupNotFoundFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'InsufficientDBInstanceCapacityFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'ProvisionedIopsNotAvailableInAZFault', ], [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'DBUpgradeDependencyFailureFault', ], [ 'shape' => 'StorageTypeNotSupportedFault', ], [ 'shape' => 'AuthorizationNotFoundFault', ], ], ], 'ModifyDBParameterGroup' => [ 'name' => 'ModifyDBParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBParameterGroupMessage', ], 'output' => [ 'shape' => 'DBParameterGroupNameMessage', 'resultWrapper' => 'ModifyDBParameterGroupResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'InvalidDBParameterGroupStateFault', ], ], ], 'ModifyDBSubnetGroup' => [ 'name' => 'ModifyDBSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBSubnetGroupMessage', ], 'output' => [ 'shape' => 'ModifyDBSubnetGroupResult', 'resultWrapper' => 'ModifyDBSubnetGroupResult', ], 'errors' => [ [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'DBSubnetQuotaExceededFault', ], [ 'shape' => 'SubnetAlreadyInUse', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidSubnet', ], ], ], 'ModifyEventSubscription' => [ 'name' => 'ModifyEventSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyEventSubscriptionMessage', ], 'output' => [ 'shape' => 'ModifyEventSubscriptionResult', 'resultWrapper' => 'ModifyEventSubscriptionResult', ], 'errors' => [ [ 'shape' => 'EventSubscriptionQuotaExceededFault', ], [ 'shape' => 'SubscriptionNotFoundFault', ], [ 'shape' => 'SNSInvalidTopicFault', ], [ 'shape' => 'SNSNoAuthorizationFault', ], [ 'shape' => 'SNSTopicArnNotFoundFault', ], [ 'shape' => 'SubscriptionCategoryNotFoundFault', ], ], ], 'ModifyOptionGroup' => [ 'name' => 'ModifyOptionGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyOptionGroupMessage', ], 'output' => [ 'shape' => 'ModifyOptionGroupResult', 'resultWrapper' => 'ModifyOptionGroupResult', ], 'errors' => [ [ 'shape' => 'InvalidOptionGroupStateFault', ], [ 'shape' => 'OptionGroupNotFoundFault', ], ], ], 'PromoteReadReplica' => [ 'name' => 'PromoteReadReplica', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PromoteReadReplicaMessage', ], 'output' => [ 'shape' => 'PromoteReadReplicaResult', 'resultWrapper' => 'PromoteReadReplicaResult', ], 'errors' => [ [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], ], ], 'PurchaseReservedDBInstancesOffering' => [ 'name' => 'PurchaseReservedDBInstancesOffering', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseReservedDBInstancesOfferingMessage', ], 'output' => [ 'shape' => 'PurchaseReservedDBInstancesOfferingResult', 'resultWrapper' => 'PurchaseReservedDBInstancesOfferingResult', ], 'errors' => [ [ 'shape' => 'ReservedDBInstancesOfferingNotFoundFault', ], [ 'shape' => 'ReservedDBInstanceAlreadyExistsFault', ], [ 'shape' => 'ReservedDBInstanceQuotaExceededFault', ], ], ], 'RebootDBInstance' => [ 'name' => 'RebootDBInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RebootDBInstanceMessage', ], 'output' => [ 'shape' => 'RebootDBInstanceResult', 'resultWrapper' => 'RebootDBInstanceResult', ], 'errors' => [ [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], ], ], 'RemoveSourceIdentifierFromSubscription' => [ 'name' => 'RemoveSourceIdentifierFromSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveSourceIdentifierFromSubscriptionMessage', ], 'output' => [ 'shape' => 'RemoveSourceIdentifierFromSubscriptionResult', 'resultWrapper' => 'RemoveSourceIdentifierFromSubscriptionResult', ], 'errors' => [ [ 'shape' => 'SubscriptionNotFoundFault', ], [ 'shape' => 'SourceNotFoundFault', ], ], ], 'RemoveTagsFromResource' => [ 'name' => 'RemoveTagsFromResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveTagsFromResourceMessage', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], ], ], 'ResetDBParameterGroup' => [ 'name' => 'ResetDBParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetDBParameterGroupMessage', ], 'output' => [ 'shape' => 'DBParameterGroupNameMessage', 'resultWrapper' => 'ResetDBParameterGroupResult', ], 'errors' => [ [ 'shape' => 'InvalidDBParameterGroupStateFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'RestoreDBInstanceFromDBSnapshot' => [ 'name' => 'RestoreDBInstanceFromDBSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreDBInstanceFromDBSnapshotMessage', ], 'output' => [ 'shape' => 'RestoreDBInstanceFromDBSnapshotResult', 'resultWrapper' => 'RestoreDBInstanceFromDBSnapshotResult', ], 'errors' => [ [ 'shape' => 'DBInstanceAlreadyExistsFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], [ 'shape' => 'InstanceQuotaExceededFault', ], [ 'shape' => 'InsufficientDBInstanceCapacityFault', ], [ 'shape' => 'InvalidDBSnapshotStateFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InvalidRestoreFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'ProvisionedIopsNotAvailableInAZFault', ], [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'StorageTypeNotSupportedFault', ], [ 'shape' => 'AuthorizationNotFoundFault', ], ], ], 'RestoreDBInstanceToPointInTime' => [ 'name' => 'RestoreDBInstanceToPointInTime', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreDBInstanceToPointInTimeMessage', ], 'output' => [ 'shape' => 'RestoreDBInstanceToPointInTimeResult', 'resultWrapper' => 'RestoreDBInstanceToPointInTimeResult', ], 'errors' => [ [ 'shape' => 'DBInstanceAlreadyExistsFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'InstanceQuotaExceededFault', ], [ 'shape' => 'InsufficientDBInstanceCapacityFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'PointInTimeRestoreNotEnabledFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InvalidRestoreFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'ProvisionedIopsNotAvailableInAZFault', ], [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'StorageTypeNotSupportedFault', ], [ 'shape' => 'AuthorizationNotFoundFault', ], ], ], 'RevokeDBSecurityGroupIngress' => [ 'name' => 'RevokeDBSecurityGroupIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RevokeDBSecurityGroupIngressMessage', ], 'output' => [ 'shape' => 'RevokeDBSecurityGroupIngressResult', 'resultWrapper' => 'RevokeDBSecurityGroupIngressResult', ], 'errors' => [ [ 'shape' => 'DBSecurityGroupNotFoundFault', ], [ 'shape' => 'AuthorizationNotFoundFault', ], [ 'shape' => 'InvalidDBSecurityGroupStateFault', ], ], ], ], 'shapes' => [ 'AddSourceIdentifierToSubscriptionMessage' => [ 'type' => 'structure', 'required' => [ 'SubscriptionName', 'SourceIdentifier', ], 'members' => [ 'SubscriptionName' => [ 'shape' => 'String', ], 'SourceIdentifier' => [ 'shape' => 'String', ], ], ], 'AddSourceIdentifierToSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'EventSubscription' => [ 'shape' => 'EventSubscription', ], ], ], 'AddTagsToResourceMessage' => [ 'type' => 'structure', 'required' => [ 'ResourceName', 'Tags', ], 'members' => [ 'ResourceName' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'ApplyMethod' => [ 'type' => 'string', 'enum' => [ 'immediate', 'pending-reboot', ], ], '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', ], ], ], 'AuthorizeDBSecurityGroupIngressResult' => [ 'type' => 'structure', 'members' => [ 'DBSecurityGroup' => [ 'shape' => 'DBSecurityGroup', ], ], ], 'AvailabilityZone' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], ], 'wrapper' => true, ], 'AvailabilityZoneList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZone', 'locationName' => 'AvailabilityZone', ], ], 'Boolean' => [ 'type' => 'boolean', ], 'BooleanOptional' => [ 'type' => 'boolean', ], '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', ], ], ], 'CopyDBParameterGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBParameterGroup' => [ 'shape' => 'DBParameterGroup', ], ], ], 'CopyDBSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'SourceDBSnapshotIdentifier', 'TargetDBSnapshotIdentifier', ], 'members' => [ 'SourceDBSnapshotIdentifier' => [ 'shape' => 'String', ], 'TargetDBSnapshotIdentifier' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CopyDBSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBSnapshot' => [ 'shape' => 'DBSnapshot', ], ], ], 'CopyOptionGroupMessage' => [ 'type' => 'structure', 'required' => [ 'SourceOptionGroupIdentifier', 'TargetOptionGroupIdentifier', 'TargetOptionGroupDescription', ], 'members' => [ 'SourceOptionGroupIdentifier' => [ 'shape' => 'String', ], 'TargetOptionGroupIdentifier' => [ 'shape' => 'String', ], 'TargetOptionGroupDescription' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CopyOptionGroupResult' => [ 'type' => 'structure', 'members' => [ 'OptionGroup' => [ 'shape' => 'OptionGroup', ], ], ], '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', ], ], ], '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', ], ], ], 'CreateDBInstanceReadReplicaResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], 'CreateDBInstanceResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], 'CreateDBParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBParameterGroupName', 'DBParameterGroupFamily', 'Description', ], 'members' => [ 'DBParameterGroupName' => [ 'shape' => 'String', ], 'DBParameterGroupFamily' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDBParameterGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBParameterGroup' => [ 'shape' => 'DBParameterGroup', ], ], ], 'CreateDBSecurityGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBSecurityGroupName', 'DBSecurityGroupDescription', ], 'members' => [ 'DBSecurityGroupName' => [ 'shape' => 'String', ], 'DBSecurityGroupDescription' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDBSecurityGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBSecurityGroup' => [ 'shape' => 'DBSecurityGroup', ], ], ], 'CreateDBSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'DBSnapshotIdentifier', 'DBInstanceIdentifier', ], 'members' => [ 'DBSnapshotIdentifier' => [ 'shape' => 'String', ], 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDBSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBSnapshot' => [ 'shape' => 'DBSnapshot', ], ], ], 'CreateDBSubnetGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBSubnetGroupName', 'DBSubnetGroupDescription', 'SubnetIds', ], 'members' => [ 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'DBSubnetGroupDescription' => [ 'shape' => 'String', ], 'SubnetIds' => [ 'shape' => 'SubnetIdentifierList', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDBSubnetGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBSubnetGroup' => [ 'shape' => 'DBSubnetGroup', ], ], ], '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', ], ], ], 'CreateEventSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'EventSubscription' => [ 'shape' => 'EventSubscription', ], ], ], 'CreateOptionGroupMessage' => [ 'type' => 'structure', 'required' => [ 'OptionGroupName', 'EngineName', 'MajorEngineVersion', 'OptionGroupDescription', ], 'members' => [ 'OptionGroupName' => [ 'shape' => 'String', ], 'EngineName' => [ 'shape' => 'String', ], 'MajorEngineVersion' => [ 'shape' => 'String', ], 'OptionGroupDescription' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateOptionGroupResult' => [ 'type' => 'structure', 'members' => [ 'OptionGroup' => [ 'shape' => 'OptionGroup', ], ], ], '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', ], ], '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', ], ], 'DBLogFileNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBLogFileNotFoundFault', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], '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', ], ], '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', ], ], ], 'DeleteDBInstanceResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], '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', ], ], ], 'DeleteDBSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBSnapshot' => [ 'shape' => 'DBSnapshot', ], ], ], 'DeleteDBSubnetGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBSubnetGroupName', ], 'members' => [ 'DBSubnetGroupName' => [ 'shape' => 'String', ], ], ], 'DeleteEventSubscriptionMessage' => [ 'type' => 'structure', 'required' => [ 'SubscriptionName', ], 'members' => [ 'SubscriptionName' => [ 'shape' => 'String', ], ], ], 'DeleteEventSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'EventSubscription' => [ 'shape' => 'EventSubscription', ], ], ], 'DeleteOptionGroupMessage' => [ 'type' => 'structure', 'required' => [ 'OptionGroupName', ], 'members' => [ 'OptionGroupName' => [ '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', ], ], ], 'DescribeEngineDefaultParametersResult' => [ 'type' => 'structure', 'members' => [ 'EngineDefaults' => [ 'shape' => 'EngineDefaults', ], ], ], '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', ], ], ], '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, ], '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', ], ], ], 'ModifyDBInstanceResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], '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', ], ], ], 'ModifyDBSubnetGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBSubnetGroup' => [ 'shape' => 'DBSubnetGroup', ], ], ], 'ModifyEventSubscriptionMessage' => [ 'type' => 'structure', 'required' => [ 'SubscriptionName', ], 'members' => [ 'SubscriptionName' => [ 'shape' => 'String', ], 'SnsTopicArn' => [ 'shape' => 'String', ], 'SourceType' => [ 'shape' => 'String', ], 'EventCategories' => [ 'shape' => 'EventCategoriesList', ], 'Enabled' => [ 'shape' => 'BooleanOptional', ], ], ], 'ModifyEventSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'EventSubscription' => [ 'shape' => 'EventSubscription', ], ], ], 'ModifyOptionGroupMessage' => [ 'type' => 'structure', 'required' => [ 'OptionGroupName', ], 'members' => [ 'OptionGroupName' => [ 'shape' => 'String', ], 'OptionsToInclude' => [ 'shape' => 'OptionConfigurationList', ], 'OptionsToRemove' => [ 'shape' => 'OptionNamesList', ], 'ApplyImmediately' => [ 'shape' => 'Boolean', ], ], ], 'ModifyOptionGroupResult' => [ 'type' => 'structure', 'members' => [ 'OptionGroup' => [ 'shape' => 'OptionGroup', ], ], ], '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', ], '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', ], ], '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', ], ], ], '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', ], ], ], 'PromoteReadReplicaResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], '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', ], ], ], 'PurchaseReservedDBInstancesOfferingResult' => [ 'type' => 'structure', 'members' => [ 'ReservedDBInstance' => [ 'shape' => 'ReservedDBInstance', ], ], ], 'ReadReplicaDBInstanceIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ReadReplicaDBInstanceIdentifier', ], ], 'RebootDBInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', ], 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'ForceFailover' => [ 'shape' => 'BooleanOptional', ], ], ], 'RebootDBInstanceResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], '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', ], ], ], 'RemoveSourceIdentifierFromSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'EventSubscription' => [ 'shape' => 'EventSubscription', ], ], ], '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', ], ], ], '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', ], ], ], 'RestoreDBInstanceFromDBSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], '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', ], ], ], 'RestoreDBInstanceToPointInTimeResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], 'RevokeDBSecurityGroupIngressMessage' => [ 'type' => 'structure', 'required' => [ 'DBSecurityGroupName', ], 'members' => [ 'DBSecurityGroupName' => [ 'shape' => 'String', ], 'CIDRIP' => [ 'shape' => 'String', ], 'EC2SecurityGroupName' => [ 'shape' => 'String', ], 'EC2SecurityGroupId' => [ 'shape' => 'String', ], 'EC2SecurityGroupOwnerId' => [ 'shape' => 'String', ], ], ], 'RevokeDBSecurityGroupIngressResult' => [ 'type' => 'structure', 'members' => [ 'DBSecurityGroup' => [ 'shape' => 'DBSecurityGroup', ], ], ], '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', ], ], ],]; diff --git a/lib/aws/Aws/data/rds/2014-09-01/paginators-1.json.php b/lib/aws/Aws/data/rds/2014-09-01/paginators-1.json.php new file mode 100644 index 0000000..3d123f1 --- /dev/null +++ b/lib/aws/Aws/data/rds/2014-09-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/rds/2014-09-01/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/rds/2014-09-01/smoke.json.php b/lib/aws/Aws/data/rds/2014-09-01/smoke.json.php new file mode 100644 index 0000000..871e167 --- /dev/null +++ b/lib/aws/Aws/data/rds/2014-09-01/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/rds/2014-09-01/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeDBEngineVersions', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeDBInstances', 'input' => [ 'DBInstanceIdentifier' => 'fake-id', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/rds/2014-10-31/api-2.json.php b/lib/aws/Aws/data/rds/2014-10-31/api-2.json.php new file mode 100644 index 0000000..4988aea --- /dev/null +++ b/lib/aws/Aws/data/rds/2014-10-31/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/rds/2014-10-31/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2014-10-31', 'endpointPrefix' => 'rds', 'protocol' => 'query', 'serviceAbbreviation' => 'Amazon RDS', 'serviceFullName' => 'Amazon Relational Database Service', 'serviceId' => 'RDS', 'signatureVersion' => 'v4', 'uid' => 'rds-2014-10-31', 'xmlNamespace' => 'http://rds.amazonaws.com/doc/2014-10-31/', ], 'operations' => [ 'AddRoleToDBCluster' => [ 'name' => 'AddRoleToDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddRoleToDBClusterMessage', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'DBClusterRoleAlreadyExistsFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'DBClusterRoleQuotaExceededFault', ], ], ], 'AddRoleToDBInstance' => [ 'name' => 'AddRoleToDBInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddRoleToDBInstanceMessage', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBInstanceRoleAlreadyExistsFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBInstanceRoleQuotaExceededFault', ], ], ], 'AddSourceIdentifierToSubscription' => [ 'name' => 'AddSourceIdentifierToSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddSourceIdentifierToSubscriptionMessage', ], 'output' => [ 'shape' => 'AddSourceIdentifierToSubscriptionResult', 'resultWrapper' => 'AddSourceIdentifierToSubscriptionResult', ], 'errors' => [ [ 'shape' => 'SubscriptionNotFoundFault', ], [ 'shape' => 'SourceNotFoundFault', ], ], ], 'AddTagsToResource' => [ 'name' => 'AddTagsToResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddTagsToResourceMessage', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], ], ], 'ApplyPendingMaintenanceAction' => [ 'name' => 'ApplyPendingMaintenanceAction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ApplyPendingMaintenanceActionMessage', ], 'output' => [ 'shape' => 'ApplyPendingMaintenanceActionResult', 'resultWrapper' => 'ApplyPendingMaintenanceActionResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], ], ], 'AuthorizeDBSecurityGroupIngress' => [ 'name' => 'AuthorizeDBSecurityGroupIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AuthorizeDBSecurityGroupIngressMessage', ], 'output' => [ 'shape' => 'AuthorizeDBSecurityGroupIngressResult', 'resultWrapper' => 'AuthorizeDBSecurityGroupIngressResult', ], 'errors' => [ [ 'shape' => 'DBSecurityGroupNotFoundFault', ], [ 'shape' => 'InvalidDBSecurityGroupStateFault', ], [ 'shape' => 'AuthorizationAlreadyExistsFault', ], [ 'shape' => 'AuthorizationQuotaExceededFault', ], ], ], 'BacktrackDBCluster' => [ 'name' => 'BacktrackDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BacktrackDBClusterMessage', ], 'output' => [ 'shape' => 'DBClusterBacktrack', 'resultWrapper' => 'BacktrackDBClusterResult', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], ], ], 'CopyDBClusterParameterGroup' => [ 'name' => 'CopyDBClusterParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyDBClusterParameterGroupMessage', ], 'output' => [ 'shape' => 'CopyDBClusterParameterGroupResult', 'resultWrapper' => 'CopyDBClusterParameterGroupResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'DBParameterGroupQuotaExceededFault', ], [ 'shape' => 'DBParameterGroupAlreadyExistsFault', ], ], ], 'CopyDBClusterSnapshot' => [ 'name' => 'CopyDBClusterSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyDBClusterSnapshotMessage', ], 'output' => [ 'shape' => 'CopyDBClusterSnapshotResult', 'resultWrapper' => 'CopyDBClusterSnapshotResult', ], 'errors' => [ [ 'shape' => 'DBClusterSnapshotAlreadyExistsFault', ], [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], ], ], 'CopyDBParameterGroup' => [ 'name' => 'CopyDBParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyDBParameterGroupMessage', ], 'output' => [ 'shape' => 'CopyDBParameterGroupResult', 'resultWrapper' => 'CopyDBParameterGroupResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'DBParameterGroupAlreadyExistsFault', ], [ 'shape' => 'DBParameterGroupQuotaExceededFault', ], ], ], 'CopyDBSnapshot' => [ 'name' => 'CopyDBSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyDBSnapshotMessage', ], 'output' => [ 'shape' => 'CopyDBSnapshotResult', 'resultWrapper' => 'CopyDBSnapshotResult', ], 'errors' => [ [ 'shape' => 'DBSnapshotAlreadyExistsFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], [ 'shape' => 'InvalidDBSnapshotStateFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], ], ], 'CopyOptionGroup' => [ 'name' => 'CopyOptionGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyOptionGroupMessage', ], 'output' => [ 'shape' => 'CopyOptionGroupResult', 'resultWrapper' => 'CopyOptionGroupResult', ], 'errors' => [ [ 'shape' => 'OptionGroupAlreadyExistsFault', ], [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'OptionGroupQuotaExceededFault', ], ], ], 'CreateDBCluster' => [ 'name' => 'CreateDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBClusterMessage', ], 'output' => [ 'shape' => 'CreateDBClusterResult', 'resultWrapper' => 'CreateDBClusterResult', ], 'errors' => [ [ 'shape' => 'DBClusterAlreadyExistsFault', ], [ 'shape' => 'InsufficientStorageClusterCapacityFault', ], [ 'shape' => 'DBClusterQuotaExceededFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidDBSubnetGroupStateFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBClusterParameterGroupNotFoundFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'GlobalClusterNotFoundFault', ], [ 'shape' => 'InvalidGlobalClusterStateFault', ], ], ], 'CreateDBClusterEndpoint' => [ 'name' => 'CreateDBClusterEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBClusterEndpointMessage', ], 'output' => [ 'shape' => 'DBClusterEndpoint', 'resultWrapper' => 'CreateDBClusterEndpointResult', ], 'errors' => [ [ 'shape' => 'DBClusterEndpointQuotaExceededFault', ], [ 'shape' => 'DBClusterEndpointAlreadyExistsFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], ], ], 'CreateDBClusterParameterGroup' => [ 'name' => 'CreateDBClusterParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBClusterParameterGroupMessage', ], 'output' => [ 'shape' => 'CreateDBClusterParameterGroupResult', 'resultWrapper' => 'CreateDBClusterParameterGroupResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupQuotaExceededFault', ], [ 'shape' => 'DBParameterGroupAlreadyExistsFault', ], ], ], 'CreateDBClusterSnapshot' => [ 'name' => 'CreateDBClusterSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBClusterSnapshotMessage', ], 'output' => [ 'shape' => 'CreateDBClusterSnapshotResult', 'resultWrapper' => 'CreateDBClusterSnapshotResult', ], 'errors' => [ [ 'shape' => 'DBClusterSnapshotAlreadyExistsFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], ], ], 'CreateDBInstance' => [ 'name' => 'CreateDBInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBInstanceMessage', ], 'output' => [ 'shape' => 'CreateDBInstanceResult', 'resultWrapper' => 'CreateDBInstanceResult', ], 'errors' => [ [ 'shape' => 'DBInstanceAlreadyExistsFault', ], [ 'shape' => 'InsufficientDBInstanceCapacityFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'DBSecurityGroupNotFoundFault', ], [ 'shape' => 'InstanceQuotaExceededFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'ProvisionedIopsNotAvailableInAZFault', ], [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'StorageTypeNotSupportedFault', ], [ 'shape' => 'AuthorizationNotFoundFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], [ 'shape' => 'DomainNotFoundFault', ], [ 'shape' => 'BackupPolicyNotFoundFault', ], ], ], 'CreateDBInstanceReadReplica' => [ 'name' => 'CreateDBInstanceReadReplica', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBInstanceReadReplicaMessage', ], 'output' => [ 'shape' => 'CreateDBInstanceReadReplicaResult', 'resultWrapper' => 'CreateDBInstanceReadReplicaResult', ], 'errors' => [ [ 'shape' => 'DBInstanceAlreadyExistsFault', ], [ 'shape' => 'InsufficientDBInstanceCapacityFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'DBSecurityGroupNotFoundFault', ], [ 'shape' => 'InstanceQuotaExceededFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'ProvisionedIopsNotAvailableInAZFault', ], [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'DBSubnetGroupNotAllowedFault', ], [ 'shape' => 'InvalidDBSubnetGroupFault', ], [ 'shape' => 'StorageTypeNotSupportedFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], ], ], 'CreateDBParameterGroup' => [ 'name' => 'CreateDBParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBParameterGroupMessage', ], 'output' => [ 'shape' => 'CreateDBParameterGroupResult', 'resultWrapper' => 'CreateDBParameterGroupResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupQuotaExceededFault', ], [ 'shape' => 'DBParameterGroupAlreadyExistsFault', ], ], ], 'CreateDBSecurityGroup' => [ 'name' => 'CreateDBSecurityGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBSecurityGroupMessage', ], 'output' => [ 'shape' => 'CreateDBSecurityGroupResult', 'resultWrapper' => 'CreateDBSecurityGroupResult', ], 'errors' => [ [ 'shape' => 'DBSecurityGroupAlreadyExistsFault', ], [ 'shape' => 'DBSecurityGroupQuotaExceededFault', ], [ 'shape' => 'DBSecurityGroupNotSupportedFault', ], ], ], 'CreateDBSnapshot' => [ 'name' => 'CreateDBSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBSnapshotMessage', ], 'output' => [ 'shape' => 'CreateDBSnapshotResult', 'resultWrapper' => 'CreateDBSnapshotResult', ], 'errors' => [ [ 'shape' => 'DBSnapshotAlreadyExistsFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], ], ], 'CreateDBSubnetGroup' => [ 'name' => 'CreateDBSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDBSubnetGroupMessage', ], 'output' => [ 'shape' => 'CreateDBSubnetGroupResult', 'resultWrapper' => 'CreateDBSubnetGroupResult', ], 'errors' => [ [ 'shape' => 'DBSubnetGroupAlreadyExistsFault', ], [ 'shape' => 'DBSubnetGroupQuotaExceededFault', ], [ 'shape' => 'DBSubnetQuotaExceededFault', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidSubnet', ], ], ], 'CreateEventSubscription' => [ 'name' => 'CreateEventSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateEventSubscriptionMessage', ], 'output' => [ 'shape' => 'CreateEventSubscriptionResult', 'resultWrapper' => 'CreateEventSubscriptionResult', ], 'errors' => [ [ 'shape' => 'EventSubscriptionQuotaExceededFault', ], [ 'shape' => 'SubscriptionAlreadyExistFault', ], [ 'shape' => 'SNSInvalidTopicFault', ], [ 'shape' => 'SNSNoAuthorizationFault', ], [ 'shape' => 'SNSTopicArnNotFoundFault', ], [ 'shape' => 'SubscriptionCategoryNotFoundFault', ], [ 'shape' => 'SourceNotFoundFault', ], ], ], 'CreateGlobalCluster' => [ 'name' => 'CreateGlobalCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateGlobalClusterMessage', ], 'output' => [ 'shape' => 'CreateGlobalClusterResult', 'resultWrapper' => 'CreateGlobalClusterResult', ], 'errors' => [ [ 'shape' => 'GlobalClusterAlreadyExistsFault', ], [ 'shape' => 'GlobalClusterQuotaExceededFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], ], ], 'CreateOptionGroup' => [ 'name' => 'CreateOptionGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateOptionGroupMessage', ], 'output' => [ 'shape' => 'CreateOptionGroupResult', 'resultWrapper' => 'CreateOptionGroupResult', ], 'errors' => [ [ 'shape' => 'OptionGroupAlreadyExistsFault', ], [ 'shape' => 'OptionGroupQuotaExceededFault', ], ], ], 'DeleteDBCluster' => [ 'name' => 'DeleteDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBClusterMessage', ], 'output' => [ 'shape' => 'DeleteDBClusterResult', 'resultWrapper' => 'DeleteDBClusterResult', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'DBClusterSnapshotAlreadyExistsFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], ], ], 'DeleteDBClusterEndpoint' => [ 'name' => 'DeleteDBClusterEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBClusterEndpointMessage', ], 'output' => [ 'shape' => 'DBClusterEndpoint', 'resultWrapper' => 'DeleteDBClusterEndpointResult', ], 'errors' => [ [ 'shape' => 'InvalidDBClusterEndpointStateFault', ], [ 'shape' => 'DBClusterEndpointNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], ], ], 'DeleteDBClusterParameterGroup' => [ 'name' => 'DeleteDBClusterParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBClusterParameterGroupMessage', ], 'errors' => [ [ 'shape' => 'InvalidDBParameterGroupStateFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'DeleteDBClusterSnapshot' => [ 'name' => 'DeleteDBClusterSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBClusterSnapshotMessage', ], 'output' => [ 'shape' => 'DeleteDBClusterSnapshotResult', 'resultWrapper' => 'DeleteDBClusterSnapshotResult', ], 'errors' => [ [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], ], ], 'DeleteDBInstance' => [ 'name' => 'DeleteDBInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBInstanceMessage', ], 'output' => [ 'shape' => 'DeleteDBInstanceResult', 'resultWrapper' => 'DeleteDBInstanceResult', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBSnapshotAlreadyExistsFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'DBInstanceAutomatedBackupQuotaExceededFault', ], ], ], 'DeleteDBInstanceAutomatedBackup' => [ 'name' => 'DeleteDBInstanceAutomatedBackup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBInstanceAutomatedBackupMessage', ], 'output' => [ 'shape' => 'DeleteDBInstanceAutomatedBackupResult', 'resultWrapper' => 'DeleteDBInstanceAutomatedBackupResult', ], 'errors' => [ [ 'shape' => 'InvalidDBInstanceAutomatedBackupStateFault', ], [ 'shape' => 'DBInstanceAutomatedBackupNotFoundFault', ], ], ], 'DeleteDBParameterGroup' => [ 'name' => 'DeleteDBParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBParameterGroupMessage', ], 'errors' => [ [ 'shape' => 'InvalidDBParameterGroupStateFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'DeleteDBSecurityGroup' => [ 'name' => 'DeleteDBSecurityGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBSecurityGroupMessage', ], 'errors' => [ [ 'shape' => 'InvalidDBSecurityGroupStateFault', ], [ 'shape' => 'DBSecurityGroupNotFoundFault', ], ], ], 'DeleteDBSnapshot' => [ 'name' => 'DeleteDBSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBSnapshotMessage', ], 'output' => [ 'shape' => 'DeleteDBSnapshotResult', 'resultWrapper' => 'DeleteDBSnapshotResult', ], 'errors' => [ [ 'shape' => 'InvalidDBSnapshotStateFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], ], ], 'DeleteDBSubnetGroup' => [ 'name' => 'DeleteDBSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDBSubnetGroupMessage', ], 'errors' => [ [ 'shape' => 'InvalidDBSubnetGroupStateFault', ], [ 'shape' => 'InvalidDBSubnetStateFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], ], ], 'DeleteEventSubscription' => [ 'name' => 'DeleteEventSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteEventSubscriptionMessage', ], 'output' => [ 'shape' => 'DeleteEventSubscriptionResult', 'resultWrapper' => 'DeleteEventSubscriptionResult', ], 'errors' => [ [ 'shape' => 'SubscriptionNotFoundFault', ], [ 'shape' => 'InvalidEventSubscriptionStateFault', ], ], ], 'DeleteGlobalCluster' => [ 'name' => 'DeleteGlobalCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteGlobalClusterMessage', ], 'output' => [ 'shape' => 'DeleteGlobalClusterResult', 'resultWrapper' => 'DeleteGlobalClusterResult', ], 'errors' => [ [ 'shape' => 'GlobalClusterNotFoundFault', ], [ 'shape' => 'InvalidGlobalClusterStateFault', ], ], ], 'DeleteOptionGroup' => [ 'name' => 'DeleteOptionGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteOptionGroupMessage', ], 'errors' => [ [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'InvalidOptionGroupStateFault', ], ], ], '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', ], ], ], 'DescribeDBClusterBacktracks' => [ 'name' => 'DescribeDBClusterBacktracks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBClusterBacktracksMessage', ], 'output' => [ 'shape' => 'DBClusterBacktrackMessage', 'resultWrapper' => 'DescribeDBClusterBacktracksResult', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'DBClusterBacktrackNotFoundFault', ], ], ], 'DescribeDBClusterEndpoints' => [ 'name' => 'DescribeDBClusterEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBClusterEndpointsMessage', ], 'output' => [ 'shape' => 'DBClusterEndpointMessage', 'resultWrapper' => 'DescribeDBClusterEndpointsResult', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], ], ], 'DescribeDBClusterParameterGroups' => [ 'name' => 'DescribeDBClusterParameterGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBClusterParameterGroupsMessage', ], 'output' => [ 'shape' => 'DBClusterParameterGroupsMessage', 'resultWrapper' => 'DescribeDBClusterParameterGroupsResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'DescribeDBClusterParameters' => [ 'name' => 'DescribeDBClusterParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBClusterParametersMessage', ], 'output' => [ 'shape' => 'DBClusterParameterGroupDetails', 'resultWrapper' => 'DescribeDBClusterParametersResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'DescribeDBClusterSnapshotAttributes' => [ 'name' => 'DescribeDBClusterSnapshotAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBClusterSnapshotAttributesMessage', ], 'output' => [ 'shape' => 'DescribeDBClusterSnapshotAttributesResult', 'resultWrapper' => 'DescribeDBClusterSnapshotAttributesResult', ], 'errors' => [ [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], ], ], 'DescribeDBClusterSnapshots' => [ 'name' => 'DescribeDBClusterSnapshots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBClusterSnapshotsMessage', ], 'output' => [ 'shape' => 'DBClusterSnapshotMessage', 'resultWrapper' => 'DescribeDBClusterSnapshotsResult', ], 'errors' => [ [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], ], ], 'DescribeDBClusters' => [ 'name' => 'DescribeDBClusters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBClustersMessage', ], 'output' => [ 'shape' => 'DBClusterMessage', 'resultWrapper' => 'DescribeDBClustersResult', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], ], ], 'DescribeDBEngineVersions' => [ 'name' => 'DescribeDBEngineVersions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBEngineVersionsMessage', ], 'output' => [ 'shape' => 'DBEngineVersionMessage', 'resultWrapper' => 'DescribeDBEngineVersionsResult', ], ], 'DescribeDBInstanceAutomatedBackups' => [ 'name' => 'DescribeDBInstanceAutomatedBackups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBInstanceAutomatedBackupsMessage', ], 'output' => [ 'shape' => 'DBInstanceAutomatedBackupMessage', 'resultWrapper' => 'DescribeDBInstanceAutomatedBackupsResult', ], 'errors' => [ [ 'shape' => 'DBInstanceAutomatedBackupNotFoundFault', ], ], ], 'DescribeDBInstances' => [ 'name' => 'DescribeDBInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBInstancesMessage', ], 'output' => [ 'shape' => 'DBInstanceMessage', 'resultWrapper' => 'DescribeDBInstancesResult', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], ], ], 'DescribeDBLogFiles' => [ 'name' => 'DescribeDBLogFiles', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBLogFilesMessage', ], 'output' => [ 'shape' => 'DescribeDBLogFilesResponse', 'resultWrapper' => 'DescribeDBLogFilesResult', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], ], ], 'DescribeDBParameterGroups' => [ 'name' => 'DescribeDBParameterGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBParameterGroupsMessage', ], 'output' => [ 'shape' => 'DBParameterGroupsMessage', 'resultWrapper' => 'DescribeDBParameterGroupsResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'DescribeDBParameters' => [ 'name' => 'DescribeDBParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBParametersMessage', ], 'output' => [ 'shape' => 'DBParameterGroupDetails', 'resultWrapper' => 'DescribeDBParametersResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'DescribeDBSecurityGroups' => [ 'name' => 'DescribeDBSecurityGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBSecurityGroupsMessage', ], 'output' => [ 'shape' => 'DBSecurityGroupMessage', 'resultWrapper' => 'DescribeDBSecurityGroupsResult', ], 'errors' => [ [ 'shape' => 'DBSecurityGroupNotFoundFault', ], ], ], 'DescribeDBSnapshotAttributes' => [ 'name' => 'DescribeDBSnapshotAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBSnapshotAttributesMessage', ], 'output' => [ 'shape' => 'DescribeDBSnapshotAttributesResult', 'resultWrapper' => 'DescribeDBSnapshotAttributesResult', ], 'errors' => [ [ 'shape' => 'DBSnapshotNotFoundFault', ], ], ], 'DescribeDBSnapshots' => [ 'name' => 'DescribeDBSnapshots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBSnapshotsMessage', ], 'output' => [ 'shape' => 'DBSnapshotMessage', 'resultWrapper' => 'DescribeDBSnapshotsResult', ], 'errors' => [ [ 'shape' => 'DBSnapshotNotFoundFault', ], ], ], 'DescribeDBSubnetGroups' => [ 'name' => 'DescribeDBSubnetGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDBSubnetGroupsMessage', ], 'output' => [ 'shape' => 'DBSubnetGroupMessage', 'resultWrapper' => 'DescribeDBSubnetGroupsResult', ], 'errors' => [ [ 'shape' => 'DBSubnetGroupNotFoundFault', ], ], ], 'DescribeEngineDefaultClusterParameters' => [ 'name' => 'DescribeEngineDefaultClusterParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEngineDefaultClusterParametersMessage', ], 'output' => [ 'shape' => 'DescribeEngineDefaultClusterParametersResult', 'resultWrapper' => 'DescribeEngineDefaultClusterParametersResult', ], ], 'DescribeEngineDefaultParameters' => [ 'name' => 'DescribeEngineDefaultParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEngineDefaultParametersMessage', ], 'output' => [ 'shape' => 'DescribeEngineDefaultParametersResult', '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', ], ], ], 'DescribeEvents' => [ 'name' => 'DescribeEvents', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEventsMessage', ], 'output' => [ 'shape' => 'EventsMessage', 'resultWrapper' => 'DescribeEventsResult', ], ], 'DescribeGlobalClusters' => [ 'name' => 'DescribeGlobalClusters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeGlobalClustersMessage', ], 'output' => [ 'shape' => 'GlobalClustersMessage', 'resultWrapper' => 'DescribeGlobalClustersResult', ], 'errors' => [ [ 'shape' => 'GlobalClusterNotFoundFault', ], ], ], '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', ], ], ], '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', ], ], ], 'DescribeReservedDBInstances' => [ 'name' => 'DescribeReservedDBInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReservedDBInstancesMessage', ], 'output' => [ 'shape' => 'ReservedDBInstanceMessage', 'resultWrapper' => 'DescribeReservedDBInstancesResult', ], 'errors' => [ [ 'shape' => 'ReservedDBInstanceNotFoundFault', ], ], ], 'DescribeReservedDBInstancesOfferings' => [ 'name' => 'DescribeReservedDBInstancesOfferings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReservedDBInstancesOfferingsMessage', ], 'output' => [ 'shape' => 'ReservedDBInstancesOfferingMessage', 'resultWrapper' => 'DescribeReservedDBInstancesOfferingsResult', ], 'errors' => [ [ 'shape' => 'ReservedDBInstancesOfferingNotFoundFault', ], ], ], 'DescribeSourceRegions' => [ 'name' => 'DescribeSourceRegions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSourceRegionsMessage', ], 'output' => [ 'shape' => 'SourceRegionMessage', 'resultWrapper' => 'DescribeSourceRegionsResult', ], ], 'DescribeValidDBInstanceModifications' => [ 'name' => 'DescribeValidDBInstanceModifications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeValidDBInstanceModificationsMessage', ], 'output' => [ 'shape' => 'DescribeValidDBInstanceModificationsResult', 'resultWrapper' => 'DescribeValidDBInstanceModificationsResult', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], ], ], 'DownloadDBLogFilePortion' => [ 'name' => 'DownloadDBLogFilePortion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DownloadDBLogFilePortionMessage', ], 'output' => [ 'shape' => 'DownloadDBLogFilePortionDetails', 'resultWrapper' => 'DownloadDBLogFilePortionResult', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBLogFileNotFoundFault', ], ], ], 'FailoverDBCluster' => [ 'name' => 'FailoverDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'FailoverDBClusterMessage', ], 'output' => [ 'shape' => 'FailoverDBClusterResult', 'resultWrapper' => 'FailoverDBClusterResult', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceMessage', ], 'output' => [ 'shape' => 'TagListMessage', 'resultWrapper' => 'ListTagsForResourceResult', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], ], ], 'ModifyCurrentDBClusterCapacity' => [ 'name' => 'ModifyCurrentDBClusterCapacity', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyCurrentDBClusterCapacityMessage', ], 'output' => [ 'shape' => 'DBClusterCapacityInfo', 'resultWrapper' => 'ModifyCurrentDBClusterCapacityResult', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidDBClusterCapacityFault', ], ], ], 'ModifyDBCluster' => [ 'name' => 'ModifyDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBClusterMessage', ], 'output' => [ 'shape' => 'ModifyDBClusterResult', 'resultWrapper' => 'ModifyDBClusterResult', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InvalidDBSubnetGroupStateFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'DBClusterParameterGroupNotFoundFault', ], [ 'shape' => 'InvalidDBSecurityGroupStateFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBClusterAlreadyExistsFault', ], ], ], 'ModifyDBClusterEndpoint' => [ 'name' => 'ModifyDBClusterEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBClusterEndpointMessage', ], 'output' => [ 'shape' => 'DBClusterEndpoint', 'resultWrapper' => 'ModifyDBClusterEndpointResult', ], 'errors' => [ [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidDBClusterEndpointStateFault', ], [ 'shape' => 'DBClusterEndpointNotFoundFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], ], ], 'ModifyDBClusterParameterGroup' => [ 'name' => 'ModifyDBClusterParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBClusterParameterGroupMessage', ], 'output' => [ 'shape' => 'DBClusterParameterGroupNameMessage', 'resultWrapper' => 'ModifyDBClusterParameterGroupResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'InvalidDBParameterGroupStateFault', ], ], ], 'ModifyDBClusterSnapshotAttribute' => [ 'name' => 'ModifyDBClusterSnapshotAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBClusterSnapshotAttributeMessage', ], 'output' => [ 'shape' => 'ModifyDBClusterSnapshotAttributeResult', 'resultWrapper' => 'ModifyDBClusterSnapshotAttributeResult', ], 'errors' => [ [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], [ 'shape' => 'SharedSnapshotQuotaExceededFault', ], ], ], 'ModifyDBInstance' => [ 'name' => 'ModifyDBInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBInstanceMessage', ], 'output' => [ 'shape' => 'ModifyDBInstanceResult', 'resultWrapper' => 'ModifyDBInstanceResult', ], 'errors' => [ [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'InvalidDBSecurityGroupStateFault', ], [ 'shape' => 'DBInstanceAlreadyExistsFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBSecurityGroupNotFoundFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'InsufficientDBInstanceCapacityFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'ProvisionedIopsNotAvailableInAZFault', ], [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'DBUpgradeDependencyFailureFault', ], [ 'shape' => 'StorageTypeNotSupportedFault', ], [ 'shape' => 'AuthorizationNotFoundFault', ], [ 'shape' => 'CertificateNotFoundFault', ], [ 'shape' => 'DomainNotFoundFault', ], [ 'shape' => 'BackupPolicyNotFoundFault', ], ], ], 'ModifyDBParameterGroup' => [ 'name' => 'ModifyDBParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBParameterGroupMessage', ], 'output' => [ 'shape' => 'DBParameterGroupNameMessage', 'resultWrapper' => 'ModifyDBParameterGroupResult', ], 'errors' => [ [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'InvalidDBParameterGroupStateFault', ], ], ], 'ModifyDBSnapshot' => [ 'name' => 'ModifyDBSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBSnapshotMessage', ], 'output' => [ 'shape' => 'ModifyDBSnapshotResult', 'resultWrapper' => 'ModifyDBSnapshotResult', ], 'errors' => [ [ 'shape' => 'DBSnapshotNotFoundFault', ], ], ], 'ModifyDBSnapshotAttribute' => [ 'name' => 'ModifyDBSnapshotAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBSnapshotAttributeMessage', ], 'output' => [ 'shape' => 'ModifyDBSnapshotAttributeResult', 'resultWrapper' => 'ModifyDBSnapshotAttributeResult', ], 'errors' => [ [ 'shape' => 'DBSnapshotNotFoundFault', ], [ 'shape' => 'InvalidDBSnapshotStateFault', ], [ 'shape' => 'SharedSnapshotQuotaExceededFault', ], ], ], 'ModifyDBSubnetGroup' => [ 'name' => 'ModifyDBSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDBSubnetGroupMessage', ], 'output' => [ 'shape' => 'ModifyDBSubnetGroupResult', 'resultWrapper' => 'ModifyDBSubnetGroupResult', ], 'errors' => [ [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'DBSubnetQuotaExceededFault', ], [ 'shape' => 'SubnetAlreadyInUse', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidSubnet', ], ], ], 'ModifyEventSubscription' => [ 'name' => 'ModifyEventSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyEventSubscriptionMessage', ], 'output' => [ 'shape' => 'ModifyEventSubscriptionResult', 'resultWrapper' => 'ModifyEventSubscriptionResult', ], 'errors' => [ [ 'shape' => 'EventSubscriptionQuotaExceededFault', ], [ 'shape' => 'SubscriptionNotFoundFault', ], [ 'shape' => 'SNSInvalidTopicFault', ], [ 'shape' => 'SNSNoAuthorizationFault', ], [ 'shape' => 'SNSTopicArnNotFoundFault', ], [ 'shape' => 'SubscriptionCategoryNotFoundFault', ], ], ], 'ModifyGlobalCluster' => [ 'name' => 'ModifyGlobalCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyGlobalClusterMessage', ], 'output' => [ 'shape' => 'ModifyGlobalClusterResult', 'resultWrapper' => 'ModifyGlobalClusterResult', ], 'errors' => [ [ 'shape' => 'GlobalClusterNotFoundFault', ], [ 'shape' => 'InvalidGlobalClusterStateFault', ], ], ], 'ModifyOptionGroup' => [ 'name' => 'ModifyOptionGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyOptionGroupMessage', ], 'output' => [ 'shape' => 'ModifyOptionGroupResult', 'resultWrapper' => 'ModifyOptionGroupResult', ], 'errors' => [ [ 'shape' => 'InvalidOptionGroupStateFault', ], [ 'shape' => 'OptionGroupNotFoundFault', ], ], ], 'PromoteReadReplica' => [ 'name' => 'PromoteReadReplica', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PromoteReadReplicaMessage', ], 'output' => [ 'shape' => 'PromoteReadReplicaResult', 'resultWrapper' => 'PromoteReadReplicaResult', ], 'errors' => [ [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], ], ], 'PromoteReadReplicaDBCluster' => [ 'name' => 'PromoteReadReplicaDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PromoteReadReplicaDBClusterMessage', ], 'output' => [ 'shape' => 'PromoteReadReplicaDBClusterResult', 'resultWrapper' => 'PromoteReadReplicaDBClusterResult', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], ], ], 'PurchaseReservedDBInstancesOffering' => [ 'name' => 'PurchaseReservedDBInstancesOffering', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseReservedDBInstancesOfferingMessage', ], 'output' => [ 'shape' => 'PurchaseReservedDBInstancesOfferingResult', 'resultWrapper' => 'PurchaseReservedDBInstancesOfferingResult', ], 'errors' => [ [ 'shape' => 'ReservedDBInstancesOfferingNotFoundFault', ], [ 'shape' => 'ReservedDBInstanceAlreadyExistsFault', ], [ 'shape' => 'ReservedDBInstanceQuotaExceededFault', ], ], ], 'RebootDBInstance' => [ 'name' => 'RebootDBInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RebootDBInstanceMessage', ], 'output' => [ 'shape' => 'RebootDBInstanceResult', 'resultWrapper' => 'RebootDBInstanceResult', ], 'errors' => [ [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], ], ], 'RemoveFromGlobalCluster' => [ 'name' => 'RemoveFromGlobalCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveFromGlobalClusterMessage', ], 'output' => [ 'shape' => 'RemoveFromGlobalClusterResult', 'resultWrapper' => 'RemoveFromGlobalClusterResult', ], 'errors' => [ [ 'shape' => 'GlobalClusterNotFoundFault', ], [ 'shape' => 'InvalidGlobalClusterStateFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], ], ], 'RemoveRoleFromDBCluster' => [ 'name' => 'RemoveRoleFromDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveRoleFromDBClusterMessage', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'DBClusterRoleNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], ], ], 'RemoveRoleFromDBInstance' => [ 'name' => 'RemoveRoleFromDBInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveRoleFromDBInstanceMessage', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBInstanceRoleNotFoundFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], ], ], 'RemoveSourceIdentifierFromSubscription' => [ 'name' => 'RemoveSourceIdentifierFromSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveSourceIdentifierFromSubscriptionMessage', ], 'output' => [ 'shape' => 'RemoveSourceIdentifierFromSubscriptionResult', 'resultWrapper' => 'RemoveSourceIdentifierFromSubscriptionResult', ], 'errors' => [ [ 'shape' => 'SubscriptionNotFoundFault', ], [ 'shape' => 'SourceNotFoundFault', ], ], ], 'RemoveTagsFromResource' => [ 'name' => 'RemoveTagsFromResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveTagsFromResourceMessage', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], ], ], 'ResetDBClusterParameterGroup' => [ 'name' => 'ResetDBClusterParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetDBClusterParameterGroupMessage', ], 'output' => [ 'shape' => 'DBClusterParameterGroupNameMessage', 'resultWrapper' => 'ResetDBClusterParameterGroupResult', ], 'errors' => [ [ 'shape' => 'InvalidDBParameterGroupStateFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'ResetDBParameterGroup' => [ 'name' => 'ResetDBParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetDBParameterGroupMessage', ], 'output' => [ 'shape' => 'DBParameterGroupNameMessage', 'resultWrapper' => 'ResetDBParameterGroupResult', ], 'errors' => [ [ 'shape' => 'InvalidDBParameterGroupStateFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], ], ], 'RestoreDBClusterFromS3' => [ 'name' => 'RestoreDBClusterFromS3', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreDBClusterFromS3Message', ], 'output' => [ 'shape' => 'RestoreDBClusterFromS3Result', 'resultWrapper' => 'RestoreDBClusterFromS3Result', ], 'errors' => [ [ 'shape' => 'DBClusterAlreadyExistsFault', ], [ 'shape' => 'DBClusterQuotaExceededFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidDBSubnetGroupStateFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'InvalidS3BucketFault', ], [ 'shape' => 'DBClusterParameterGroupNotFoundFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'InsufficientStorageClusterCapacityFault', ], ], ], 'RestoreDBClusterFromSnapshot' => [ 'name' => 'RestoreDBClusterFromSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreDBClusterFromSnapshotMessage', ], 'output' => [ 'shape' => 'RestoreDBClusterFromSnapshotResult', 'resultWrapper' => 'RestoreDBClusterFromSnapshotResult', ], 'errors' => [ [ 'shape' => 'DBClusterAlreadyExistsFault', ], [ 'shape' => 'DBClusterQuotaExceededFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], [ 'shape' => 'InsufficientDBClusterCapacityFault', ], [ 'shape' => 'InsufficientStorageClusterCapacityFault', ], [ 'shape' => 'InvalidDBSnapshotStateFault', ], [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InvalidRestoreFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], [ 'shape' => 'DBClusterParameterGroupNotFoundFault', ], ], ], 'RestoreDBClusterToPointInTime' => [ 'name' => 'RestoreDBClusterToPointInTime', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreDBClusterToPointInTimeMessage', ], 'output' => [ 'shape' => 'RestoreDBClusterToPointInTimeResult', 'resultWrapper' => 'RestoreDBClusterToPointInTimeResult', ], 'errors' => [ [ 'shape' => 'DBClusterAlreadyExistsFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'DBClusterQuotaExceededFault', ], [ 'shape' => 'DBClusterSnapshotNotFoundFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'InsufficientDBClusterCapacityFault', ], [ 'shape' => 'InsufficientStorageClusterCapacityFault', ], [ 'shape' => 'InvalidDBClusterSnapshotStateFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidDBSnapshotStateFault', ], [ 'shape' => 'InvalidRestoreFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'DBClusterParameterGroupNotFoundFault', ], ], ], 'RestoreDBInstanceFromDBSnapshot' => [ 'name' => 'RestoreDBInstanceFromDBSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreDBInstanceFromDBSnapshotMessage', ], 'output' => [ 'shape' => 'RestoreDBInstanceFromDBSnapshotResult', 'resultWrapper' => 'RestoreDBInstanceFromDBSnapshotResult', ], 'errors' => [ [ 'shape' => 'DBInstanceAlreadyExistsFault', ], [ 'shape' => 'DBSnapshotNotFoundFault', ], [ 'shape' => 'InstanceQuotaExceededFault', ], [ 'shape' => 'InsufficientDBInstanceCapacityFault', ], [ 'shape' => 'InvalidDBSnapshotStateFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InvalidRestoreFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'ProvisionedIopsNotAvailableInAZFault', ], [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'StorageTypeNotSupportedFault', ], [ 'shape' => 'AuthorizationNotFoundFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], [ 'shape' => 'DBSecurityGroupNotFoundFault', ], [ 'shape' => 'DomainNotFoundFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'BackupPolicyNotFoundFault', ], ], ], 'RestoreDBInstanceFromS3' => [ 'name' => 'RestoreDBInstanceFromS3', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreDBInstanceFromS3Message', ], 'output' => [ 'shape' => 'RestoreDBInstanceFromS3Result', 'resultWrapper' => 'RestoreDBInstanceFromS3Result', ], 'errors' => [ [ 'shape' => 'DBInstanceAlreadyExistsFault', ], [ 'shape' => 'InsufficientDBInstanceCapacityFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'DBSecurityGroupNotFoundFault', ], [ 'shape' => 'InstanceQuotaExceededFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InvalidS3BucketFault', ], [ 'shape' => 'ProvisionedIopsNotAvailableInAZFault', ], [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'StorageTypeNotSupportedFault', ], [ 'shape' => 'AuthorizationNotFoundFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], [ 'shape' => 'BackupPolicyNotFoundFault', ], ], ], 'RestoreDBInstanceToPointInTime' => [ 'name' => 'RestoreDBInstanceToPointInTime', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreDBInstanceToPointInTimeMessage', ], 'output' => [ 'shape' => 'RestoreDBInstanceToPointInTimeResult', 'resultWrapper' => 'RestoreDBInstanceToPointInTimeResult', ], 'errors' => [ [ 'shape' => 'DBInstanceAlreadyExistsFault', ], [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'InstanceQuotaExceededFault', ], [ 'shape' => 'InsufficientDBInstanceCapacityFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'PointInTimeRestoreNotEnabledFault', ], [ 'shape' => 'StorageQuotaExceededFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InvalidRestoreFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'ProvisionedIopsNotAvailableInAZFault', ], [ 'shape' => 'OptionGroupNotFoundFault', ], [ 'shape' => 'StorageTypeNotSupportedFault', ], [ 'shape' => 'AuthorizationNotFoundFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], [ 'shape' => 'DBSecurityGroupNotFoundFault', ], [ 'shape' => 'DomainNotFoundFault', ], [ 'shape' => 'BackupPolicyNotFoundFault', ], [ 'shape' => 'DBParameterGroupNotFoundFault', ], [ 'shape' => 'DBInstanceAutomatedBackupNotFoundFault', ], ], ], 'RevokeDBSecurityGroupIngress' => [ 'name' => 'RevokeDBSecurityGroupIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RevokeDBSecurityGroupIngressMessage', ], 'output' => [ 'shape' => 'RevokeDBSecurityGroupIngressResult', 'resultWrapper' => 'RevokeDBSecurityGroupIngressResult', ], 'errors' => [ [ 'shape' => 'DBSecurityGroupNotFoundFault', ], [ 'shape' => 'AuthorizationNotFoundFault', ], [ 'shape' => 'InvalidDBSecurityGroupStateFault', ], ], ], 'StartDBCluster' => [ 'name' => 'StartDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartDBClusterMessage', ], 'output' => [ 'shape' => 'StartDBClusterResult', 'resultWrapper' => 'StartDBClusterResult', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], ], ], 'StartDBInstance' => [ 'name' => 'StartDBInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartDBInstanceMessage', ], 'output' => [ 'shape' => 'StartDBInstanceResult', 'resultWrapper' => 'StartDBInstanceResult', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'InsufficientDBInstanceCapacityFault', ], [ 'shape' => 'DBSubnetGroupNotFoundFault', ], [ 'shape' => 'DBSubnetGroupDoesNotCoverEnoughAZs', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'AuthorizationNotFoundFault', ], [ 'shape' => 'KMSKeyNotAccessibleFault', ], ], ], 'StopDBCluster' => [ 'name' => 'StopDBCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopDBClusterMessage', ], 'output' => [ 'shape' => 'StopDBClusterResult', 'resultWrapper' => 'StopDBClusterResult', ], 'errors' => [ [ 'shape' => 'DBClusterNotFoundFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], ], ], 'StopDBInstance' => [ 'name' => 'StopDBInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopDBInstanceMessage', ], 'output' => [ 'shape' => 'StopDBInstanceResult', 'resultWrapper' => 'StopDBInstanceResult', ], 'errors' => [ [ 'shape' => 'DBInstanceNotFoundFault', ], [ 'shape' => 'InvalidDBInstanceStateFault', ], [ 'shape' => 'DBSnapshotAlreadyExistsFault', ], [ 'shape' => 'SnapshotQuotaExceededFault', ], [ 'shape' => 'InvalidDBClusterStateFault', ], ], ], ], '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', ], ], 'AddRoleToDBClusterMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', 'RoleArn', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'RoleArn' => [ 'shape' => 'String', ], ], ], 'AddRoleToDBInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', 'RoleArn', 'FeatureName', ], 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'RoleArn' => [ 'shape' => 'String', ], 'FeatureName' => [ 'shape' => 'String', ], ], ], 'AddSourceIdentifierToSubscriptionMessage' => [ 'type' => 'structure', 'required' => [ 'SubscriptionName', 'SourceIdentifier', ], 'members' => [ 'SubscriptionName' => [ 'shape' => 'String', ], 'SourceIdentifier' => [ 'shape' => 'String', ], ], ], 'AddSourceIdentifierToSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'EventSubscription' => [ 'shape' => 'EventSubscription', ], ], ], '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', ], ], ], 'ApplyPendingMaintenanceActionResult' => [ 'type' => 'structure', 'members' => [ 'ResourcePendingMaintenanceActions' => [ 'shape' => 'ResourcePendingMaintenanceActions', ], ], ], 'AttributeValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'AttributeValue', ], ], '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', ], ], ], 'AuthorizeDBSecurityGroupIngressResult' => [ 'type' => 'structure', 'members' => [ 'DBSecurityGroup' => [ 'shape' => 'DBSecurityGroup', ], ], ], 'AvailabilityZone' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], ], 'wrapper' => true, ], 'AvailabilityZoneList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZone', 'locationName' => 'AvailabilityZone', ], ], 'AvailabilityZones' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'AvailabilityZone', ], ], 'AvailableProcessorFeature' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'DefaultValue' => [ 'shape' => 'String', ], 'AllowedValues' => [ 'shape' => 'String', ], ], ], 'AvailableProcessorFeatureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailableProcessorFeature', 'locationName' => 'AvailableProcessorFeature', ], ], 'BacktrackDBClusterMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', 'BacktrackTo', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'BacktrackTo' => [ 'shape' => 'TStamp', ], 'Force' => [ 'shape' => 'BooleanOptional', ], 'UseEarliestTimeOnPointInTimeUnavailable' => [ 'shape' => 'BooleanOptional', ], ], ], 'BackupPolicyNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'deprecated' => true, 'deprecatedMessage' => 'Please avoid using this fault', 'error' => [ 'code' => 'BackupPolicyNotFoundFault', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], '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', ], 'CertificateArn' => [ 'shape' => 'String', ], ], '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' => 404, 'senderFault' => true, ], 'exception' => true, ], 'CharacterSet' => [ 'type' => 'structure', 'members' => [ 'CharacterSetName' => [ 'shape' => 'String', ], 'CharacterSetDescription' => [ 'shape' => 'String', ], ], ], 'CloudwatchLogsExportConfiguration' => [ 'type' => 'structure', 'members' => [ 'EnableLogTypes' => [ 'shape' => 'LogTypeList', ], 'DisableLogTypes' => [ 'shape' => 'LogTypeList', ], ], ], 'CopyDBClusterParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'SourceDBClusterParameterGroupIdentifier', 'TargetDBClusterParameterGroupIdentifier', 'TargetDBClusterParameterGroupDescription', ], 'members' => [ 'SourceDBClusterParameterGroupIdentifier' => [ 'shape' => 'String', ], 'TargetDBClusterParameterGroupIdentifier' => [ 'shape' => 'String', ], 'TargetDBClusterParameterGroupDescription' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CopyDBClusterParameterGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterParameterGroup' => [ 'shape' => 'DBClusterParameterGroup', ], ], ], 'CopyDBClusterSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'SourceDBClusterSnapshotIdentifier', 'TargetDBClusterSnapshotIdentifier', ], 'members' => [ 'SourceDBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'TargetDBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'PreSignedUrl' => [ 'shape' => 'String', ], 'DestinationRegion' => [ 'shape' => 'String', ], 'CopyTags' => [ 'shape' => 'BooleanOptional', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CopyDBClusterSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterSnapshot' => [ 'shape' => 'DBClusterSnapshot', ], ], ], 'CopyDBParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'SourceDBParameterGroupIdentifier', 'TargetDBParameterGroupIdentifier', 'TargetDBParameterGroupDescription', ], 'members' => [ 'SourceDBParameterGroupIdentifier' => [ 'shape' => 'String', ], 'TargetDBParameterGroupIdentifier' => [ 'shape' => 'String', ], 'TargetDBParameterGroupDescription' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CopyDBParameterGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBParameterGroup' => [ 'shape' => 'DBParameterGroup', ], ], ], 'CopyDBSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'SourceDBSnapshotIdentifier', 'TargetDBSnapshotIdentifier', ], 'members' => [ 'SourceDBSnapshotIdentifier' => [ 'shape' => 'String', ], 'TargetDBSnapshotIdentifier' => [ 'shape' => 'String', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], 'CopyTags' => [ 'shape' => 'BooleanOptional', ], 'PreSignedUrl' => [ 'shape' => 'String', ], 'DestinationRegion' => [ 'shape' => 'String', ], 'OptionGroupName' => [ 'shape' => 'String', ], ], ], 'CopyDBSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBSnapshot' => [ 'shape' => 'DBSnapshot', ], ], ], 'CopyOptionGroupMessage' => [ 'type' => 'structure', 'required' => [ 'SourceOptionGroupIdentifier', 'TargetOptionGroupIdentifier', 'TargetOptionGroupDescription', ], 'members' => [ 'SourceOptionGroupIdentifier' => [ 'shape' => 'String', ], 'TargetOptionGroupIdentifier' => [ 'shape' => 'String', ], 'TargetOptionGroupDescription' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CopyOptionGroupResult' => [ 'type' => 'structure', 'members' => [ 'OptionGroup' => [ 'shape' => 'OptionGroup', ], ], ], 'CreateDBClusterEndpointMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', 'DBClusterEndpointIdentifier', 'EndpointType', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'DBClusterEndpointIdentifier' => [ 'shape' => 'String', ], 'EndpointType' => [ 'shape' => 'String', ], 'StaticMembers' => [ 'shape' => 'StringList', ], 'ExcludedMembers' => [ 'shape' => 'StringList', ], ], ], 'CreateDBClusterMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', 'Engine', ], 'members' => [ 'AvailabilityZones' => [ 'shape' => 'AvailabilityZones', ], 'BackupRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'CharacterSetName' => [ 'shape' => 'String', ], 'DatabaseName' => [ 'shape' => 'String', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'VpcSecurityGroupIds' => [ 'shape' => 'VpcSecurityGroupIdList', ], 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'Engine' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'MasterUsername' => [ 'shape' => 'String', ], 'MasterUserPassword' => [ 'shape' => 'String', ], 'OptionGroupName' => [ 'shape' => 'String', ], 'PreferredBackupWindow' => [ 'shape' => 'String', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'String', ], 'ReplicationSourceIdentifier' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], 'StorageEncrypted' => [ 'shape' => 'BooleanOptional', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'PreSignedUrl' => [ 'shape' => 'String', ], 'DestinationRegion' => [ 'shape' => 'String', ], 'EnableIAMDatabaseAuthentication' => [ 'shape' => 'BooleanOptional', ], 'BacktrackWindow' => [ 'shape' => 'LongOptional', ], 'EnableCloudwatchLogsExports' => [ 'shape' => 'LogTypeList', ], 'EngineMode' => [ 'shape' => 'String', ], 'ScalingConfiguration' => [ 'shape' => 'ScalingConfiguration', ], 'DeletionProtection' => [ 'shape' => 'BooleanOptional', ], 'GlobalClusterIdentifier' => [ 'shape' => 'String', ], 'CopyTagsToSnapshot' => [ 'shape' => 'BooleanOptional', ], ], ], 'CreateDBClusterParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterParameterGroupName', 'DBParameterGroupFamily', 'Description', ], 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'DBParameterGroupFamily' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDBClusterParameterGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterParameterGroup' => [ 'shape' => 'DBClusterParameterGroup', ], ], ], 'CreateDBClusterResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], 'CreateDBClusterSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterSnapshotIdentifier', 'DBClusterIdentifier', ], 'members' => [ 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDBClusterSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterSnapshot' => [ 'shape' => 'DBClusterSnapshot', ], ], ], 'CreateDBInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', 'DBInstanceClass', 'Engine', ], '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', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'StorageType' => [ 'shape' => 'String', ], 'TdeCredentialArn' => [ 'shape' => 'String', ], 'TdeCredentialPassword' => [ 'shape' => 'String', ], 'StorageEncrypted' => [ 'shape' => 'BooleanOptional', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'Domain' => [ 'shape' => 'String', ], 'CopyTagsToSnapshot' => [ 'shape' => 'BooleanOptional', ], 'MonitoringInterval' => [ 'shape' => 'IntegerOptional', ], 'MonitoringRoleArn' => [ 'shape' => 'String', ], 'DomainIAMRoleName' => [ 'shape' => 'String', ], 'PromotionTier' => [ 'shape' => 'IntegerOptional', ], 'Timezone' => [ 'shape' => 'String', ], 'EnableIAMDatabaseAuthentication' => [ 'shape' => 'BooleanOptional', ], 'EnablePerformanceInsights' => [ 'shape' => 'BooleanOptional', ], 'PerformanceInsightsKMSKeyId' => [ 'shape' => 'String', ], 'PerformanceInsightsRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'EnableCloudwatchLogsExports' => [ 'shape' => 'LogTypeList', ], 'ProcessorFeatures' => [ 'shape' => 'ProcessorFeatureList', ], 'DeletionProtection' => [ 'shape' => 'BooleanOptional', ], ], ], 'CreateDBInstanceReadReplicaMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', 'SourceDBInstanceIdentifier', ], 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'SourceDBInstanceIdentifier' => [ 'shape' => 'String', ], 'DBInstanceClass' => [ 'shape' => 'String', ], 'AvailabilityZone' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'MultiAZ' => [ 'shape' => 'BooleanOptional', ], 'AutoMinorVersionUpgrade' => [ 'shape' => 'BooleanOptional', ], 'Iops' => [ 'shape' => 'IntegerOptional', ], 'OptionGroupName' => [ 'shape' => 'String', ], 'PubliclyAccessible' => [ 'shape' => 'BooleanOptional', ], 'Tags' => [ 'shape' => 'TagList', ], 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'VpcSecurityGroupIds' => [ 'shape' => 'VpcSecurityGroupIdList', ], 'StorageType' => [ 'shape' => 'String', ], 'CopyTagsToSnapshot' => [ 'shape' => 'BooleanOptional', ], 'MonitoringInterval' => [ 'shape' => 'IntegerOptional', ], 'MonitoringRoleArn' => [ 'shape' => 'String', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'PreSignedUrl' => [ 'shape' => 'String', ], 'DestinationRegion' => [ 'shape' => 'String', ], 'EnableIAMDatabaseAuthentication' => [ 'shape' => 'BooleanOptional', ], 'EnablePerformanceInsights' => [ 'shape' => 'BooleanOptional', ], 'PerformanceInsightsKMSKeyId' => [ 'shape' => 'String', ], 'PerformanceInsightsRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'EnableCloudwatchLogsExports' => [ 'shape' => 'LogTypeList', ], 'ProcessorFeatures' => [ 'shape' => 'ProcessorFeatureList', ], 'UseDefaultProcessorFeatures' => [ 'shape' => 'BooleanOptional', ], 'DeletionProtection' => [ 'shape' => 'BooleanOptional', ], ], ], 'CreateDBInstanceReadReplicaResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], 'CreateDBInstanceResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], 'CreateDBParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBParameterGroupName', 'DBParameterGroupFamily', 'Description', ], 'members' => [ 'DBParameterGroupName' => [ 'shape' => 'String', ], 'DBParameterGroupFamily' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDBParameterGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBParameterGroup' => [ 'shape' => 'DBParameterGroup', ], ], ], 'CreateDBSecurityGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBSecurityGroupName', 'DBSecurityGroupDescription', ], 'members' => [ 'DBSecurityGroupName' => [ 'shape' => 'String', ], 'DBSecurityGroupDescription' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDBSecurityGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBSecurityGroup' => [ 'shape' => 'DBSecurityGroup', ], ], ], 'CreateDBSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'DBSnapshotIdentifier', 'DBInstanceIdentifier', ], 'members' => [ 'DBSnapshotIdentifier' => [ 'shape' => 'String', ], 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDBSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBSnapshot' => [ 'shape' => 'DBSnapshot', ], ], ], 'CreateDBSubnetGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBSubnetGroupName', 'DBSubnetGroupDescription', 'SubnetIds', ], 'members' => [ 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'DBSubnetGroupDescription' => [ 'shape' => 'String', ], 'SubnetIds' => [ 'shape' => 'SubnetIdentifierList', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDBSubnetGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBSubnetGroup' => [ 'shape' => 'DBSubnetGroup', ], ], ], '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', ], ], ], 'CreateEventSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'EventSubscription' => [ 'shape' => 'EventSubscription', ], ], ], 'CreateGlobalClusterMessage' => [ 'type' => 'structure', 'members' => [ 'GlobalClusterIdentifier' => [ 'shape' => 'String', ], 'SourceDBClusterIdentifier' => [ 'shape' => 'String', ], 'Engine' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'DeletionProtection' => [ 'shape' => 'BooleanOptional', ], 'DatabaseName' => [ 'shape' => 'String', ], 'StorageEncrypted' => [ 'shape' => 'BooleanOptional', ], ], ], 'CreateGlobalClusterResult' => [ 'type' => 'structure', 'members' => [ 'GlobalCluster' => [ 'shape' => 'GlobalCluster', ], ], ], 'CreateOptionGroupMessage' => [ 'type' => 'structure', 'required' => [ 'OptionGroupName', 'EngineName', 'MajorEngineVersion', 'OptionGroupDescription', ], 'members' => [ 'OptionGroupName' => [ 'shape' => 'String', ], 'EngineName' => [ 'shape' => 'String', ], 'MajorEngineVersion' => [ 'shape' => 'String', ], 'OptionGroupDescription' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateOptionGroupResult' => [ 'type' => 'structure', 'members' => [ 'OptionGroup' => [ 'shape' => 'OptionGroup', ], ], ], 'DBCluster' => [ 'type' => 'structure', 'members' => [ 'AllocatedStorage' => [ 'shape' => 'IntegerOptional', ], 'AvailabilityZones' => [ 'shape' => 'AvailabilityZones', ], 'BackupRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'CharacterSetName' => [ 'shape' => 'String', ], 'DatabaseName' => [ 'shape' => 'String', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'DBClusterParameterGroup' => [ 'shape' => 'String', ], 'DBSubnetGroup' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], 'PercentProgress' => [ 'shape' => 'String', ], 'EarliestRestorableTime' => [ 'shape' => 'TStamp', ], 'Endpoint' => [ 'shape' => 'String', ], 'ReaderEndpoint' => [ 'shape' => 'String', ], 'CustomEndpoints' => [ 'shape' => 'StringList', ], 'MultiAZ' => [ 'shape' => 'Boolean', ], 'Engine' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'LatestRestorableTime' => [ 'shape' => 'TStamp', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'MasterUsername' => [ 'shape' => 'String', ], 'DBClusterOptionGroupMemberships' => [ 'shape' => 'DBClusterOptionGroupMemberships', ], 'PreferredBackupWindow' => [ 'shape' => 'String', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'String', ], 'ReplicationSourceIdentifier' => [ 'shape' => 'String', ], 'ReadReplicaIdentifiers' => [ 'shape' => 'ReadReplicaIdentifierList', ], 'DBClusterMembers' => [ 'shape' => 'DBClusterMemberList', ], 'VpcSecurityGroups' => [ 'shape' => 'VpcSecurityGroupMembershipList', ], 'HostedZoneId' => [ 'shape' => 'String', ], 'StorageEncrypted' => [ 'shape' => 'Boolean', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'DbClusterResourceId' => [ 'shape' => 'String', ], 'DBClusterArn' => [ 'shape' => 'String', ], 'AssociatedRoles' => [ 'shape' => 'DBClusterRoles', ], 'IAMDatabaseAuthenticationEnabled' => [ 'shape' => 'Boolean', ], 'CloneGroupId' => [ 'shape' => 'String', ], 'ClusterCreateTime' => [ 'shape' => 'TStamp', ], 'EarliestBacktrackTime' => [ 'shape' => 'TStamp', ], 'BacktrackWindow' => [ 'shape' => 'LongOptional', ], 'BacktrackConsumedChangeRecords' => [ 'shape' => 'LongOptional', ], 'EnabledCloudwatchLogsExports' => [ 'shape' => 'LogTypeList', ], 'Capacity' => [ 'shape' => 'IntegerOptional', ], 'EngineMode' => [ 'shape' => 'String', ], 'ScalingConfigurationInfo' => [ 'shape' => 'ScalingConfigurationInfo', ], 'DeletionProtection' => [ 'shape' => 'Boolean', ], 'HttpEndpointEnabled' => [ 'shape' => 'Boolean', ], 'CopyTagsToSnapshot' => [ 'shape' => 'Boolean', ], ], 'wrapper' => true, ], 'DBClusterAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterAlreadyExistsFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterBacktrack' => [ 'type' => 'structure', 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'BacktrackIdentifier' => [ 'shape' => 'String', ], 'BacktrackTo' => [ 'shape' => 'TStamp', ], 'BacktrackedFrom' => [ 'shape' => 'TStamp', ], 'BacktrackRequestCreationTime' => [ 'shape' => 'TStamp', ], 'Status' => [ 'shape' => 'String', ], ], ], 'DBClusterBacktrackList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBClusterBacktrack', 'locationName' => 'DBClusterBacktrack', ], ], 'DBClusterBacktrackMessage' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'DBClusterBacktracks' => [ 'shape' => 'DBClusterBacktrackList', ], ], ], 'DBClusterBacktrackNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterBacktrackNotFoundFault', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterCapacityInfo' => [ 'type' => 'structure', 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'PendingCapacity' => [ 'shape' => 'IntegerOptional', ], 'CurrentCapacity' => [ 'shape' => 'IntegerOptional', ], 'SecondsBeforeTimeout' => [ 'shape' => 'IntegerOptional', ], 'TimeoutAction' => [ 'shape' => 'String', ], ], ], 'DBClusterEndpoint' => [ 'type' => 'structure', 'members' => [ 'DBClusterEndpointIdentifier' => [ 'shape' => 'String', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'DBClusterEndpointResourceIdentifier' => [ 'shape' => 'String', ], 'Endpoint' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], 'EndpointType' => [ 'shape' => 'String', ], 'CustomEndpointType' => [ 'shape' => 'String', ], 'StaticMembers' => [ 'shape' => 'StringList', ], 'ExcludedMembers' => [ 'shape' => 'StringList', ], 'DBClusterEndpointArn' => [ 'shape' => 'String', ], ], ], 'DBClusterEndpointAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterEndpointAlreadyExistsFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterEndpointList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBClusterEndpoint', 'locationName' => 'DBClusterEndpointList', ], ], 'DBClusterEndpointMessage' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'DBClusterEndpoints' => [ 'shape' => 'DBClusterEndpointList', ], ], ], 'DBClusterEndpointNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterEndpointNotFoundFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterEndpointQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterEndpointQuotaExceededFault', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBCluster', 'locationName' => 'DBCluster', ], ], 'DBClusterMember' => [ 'type' => 'structure', 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'IsClusterWriter' => [ 'shape' => 'Boolean', ], 'DBClusterParameterGroupStatus' => [ 'shape' => 'String', ], 'PromotionTier' => [ 'shape' => 'IntegerOptional', ], ], 'wrapper' => true, ], 'DBClusterMemberList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBClusterMember', 'locationName' => 'DBClusterMember', ], ], 'DBClusterMessage' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'DBClusters' => [ 'shape' => 'DBClusterList', ], ], ], 'DBClusterNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterNotFoundFault', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterOptionGroupMemberships' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBClusterOptionGroupStatus', 'locationName' => 'DBClusterOptionGroup', ], ], 'DBClusterOptionGroupStatus' => [ 'type' => 'structure', 'members' => [ 'DBClusterOptionGroupName' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], ], ], 'DBClusterParameterGroup' => [ 'type' => 'structure', 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'DBParameterGroupFamily' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'DBClusterParameterGroupArn' => [ 'shape' => 'String', ], ], 'wrapper' => true, ], 'DBClusterParameterGroupDetails' => [ 'type' => 'structure', 'members' => [ 'Parameters' => [ 'shape' => 'ParametersList', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DBClusterParameterGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBClusterParameterGroup', 'locationName' => 'DBClusterParameterGroup', ], ], 'DBClusterParameterGroupNameMessage' => [ 'type' => 'structure', 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], ], ], 'DBClusterParameterGroupNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterParameterGroupNotFound', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterParameterGroupsMessage' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'DBClusterParameterGroups' => [ 'shape' => 'DBClusterParameterGroupList', ], ], ], 'DBClusterQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterQuotaExceededFault', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterRole' => [ 'type' => 'structure', 'members' => [ 'RoleArn' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], 'FeatureName' => [ 'shape' => 'String', ], ], ], 'DBClusterRoleAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterRoleAlreadyExists', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterRoleNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterRoleNotFound', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterRoleQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterRoleQuotaExceeded', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterRoles' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBClusterRole', 'locationName' => 'DBClusterRole', ], ], 'DBClusterSnapshot' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZones' => [ 'shape' => 'AvailabilityZones', ], 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'SnapshotCreateTime' => [ 'shape' => 'TStamp', ], 'Engine' => [ 'shape' => 'String', ], 'AllocatedStorage' => [ 'shape' => 'Integer', ], 'Status' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'Integer', ], 'VpcId' => [ 'shape' => 'String', ], 'ClusterCreateTime' => [ 'shape' => 'TStamp', ], 'MasterUsername' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'LicenseModel' => [ 'shape' => 'String', ], 'SnapshotType' => [ 'shape' => 'String', ], 'PercentProgress' => [ 'shape' => 'Integer', ], 'StorageEncrypted' => [ 'shape' => 'Boolean', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'DBClusterSnapshotArn' => [ 'shape' => 'String', ], 'SourceDBClusterSnapshotArn' => [ 'shape' => 'String', ], 'IAMDatabaseAuthenticationEnabled' => [ 'shape' => 'Boolean', ], ], 'wrapper' => true, ], 'DBClusterSnapshotAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterSnapshotAlreadyExistsFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DBClusterSnapshotAttribute' => [ 'type' => 'structure', 'members' => [ 'AttributeName' => [ 'shape' => 'String', ], 'AttributeValues' => [ 'shape' => 'AttributeValueList', ], ], ], 'DBClusterSnapshotAttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBClusterSnapshotAttribute', 'locationName' => 'DBClusterSnapshotAttribute', ], ], 'DBClusterSnapshotAttributesResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'DBClusterSnapshotAttributes' => [ 'shape' => 'DBClusterSnapshotAttributeList', ], ], 'wrapper' => true, ], 'DBClusterSnapshotList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBClusterSnapshot', 'locationName' => 'DBClusterSnapshot', ], ], 'DBClusterSnapshotMessage' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'DBClusterSnapshots' => [ 'shape' => 'DBClusterSnapshotList', ], ], ], 'DBClusterSnapshotNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBClusterSnapshotNotFoundFault', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], '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', ], 'ValidUpgradeTarget' => [ 'shape' => 'ValidUpgradeTargetList', ], 'SupportedTimezones' => [ 'shape' => 'SupportedTimezonesList', ], 'ExportableLogTypes' => [ 'shape' => 'LogTypeList', ], 'SupportsLogExportsToCloudwatchLogs' => [ 'shape' => 'Boolean', ], 'SupportsReadReplica' => [ 'shape' => 'Boolean', ], 'SupportedEngineModes' => [ 'shape' => 'EngineModeList', ], 'SupportedFeatureNames' => [ 'shape' => 'FeatureNameList', ], ], ], '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', ], 'ReadReplicaDBClusterIdentifiers' => [ 'shape' => 'ReadReplicaDBClusterIdentifierList', ], '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', ], 'DbInstancePort' => [ 'shape' => 'Integer', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'StorageEncrypted' => [ 'shape' => 'Boolean', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'DbiResourceId' => [ 'shape' => 'String', ], 'CACertificateIdentifier' => [ 'shape' => 'String', ], 'DomainMemberships' => [ 'shape' => 'DomainMembershipList', ], 'CopyTagsToSnapshot' => [ 'shape' => 'Boolean', ], 'MonitoringInterval' => [ 'shape' => 'IntegerOptional', ], 'EnhancedMonitoringResourceArn' => [ 'shape' => 'String', ], 'MonitoringRoleArn' => [ 'shape' => 'String', ], 'PromotionTier' => [ 'shape' => 'IntegerOptional', ], 'DBInstanceArn' => [ 'shape' => 'String', ], 'Timezone' => [ 'shape' => 'String', ], 'IAMDatabaseAuthenticationEnabled' => [ 'shape' => 'Boolean', ], 'PerformanceInsightsEnabled' => [ 'shape' => 'BooleanOptional', ], 'PerformanceInsightsKMSKeyId' => [ 'shape' => 'String', ], 'PerformanceInsightsRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'EnabledCloudwatchLogsExports' => [ 'shape' => 'LogTypeList', ], 'ProcessorFeatures' => [ 'shape' => 'ProcessorFeatureList', ], 'DeletionProtection' => [ 'shape' => 'Boolean', ], 'AssociatedRoles' => [ 'shape' => 'DBInstanceRoles', ], 'ListenerEndpoint' => [ 'shape' => 'Endpoint', ], ], 'wrapper' => true, ], 'DBInstanceAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBInstanceAlreadyExists', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DBInstanceAutomatedBackup' => [ 'type' => 'structure', 'members' => [ 'DBInstanceArn' => [ 'shape' => 'String', ], 'DbiResourceId' => [ 'shape' => 'String', ], 'Region' => [ 'shape' => 'String', ], 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'RestoreWindow' => [ 'shape' => 'RestoreWindow', ], 'AllocatedStorage' => [ 'shape' => 'Integer', ], 'Status' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'Integer', ], 'AvailabilityZone' => [ 'shape' => 'String', ], 'VpcId' => [ 'shape' => 'String', ], 'InstanceCreateTime' => [ 'shape' => 'TStamp', ], 'MasterUsername' => [ 'shape' => 'String', ], 'Engine' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'LicenseModel' => [ 'shape' => 'String', ], 'Iops' => [ 'shape' => 'IntegerOptional', ], 'OptionGroupName' => [ 'shape' => 'String', ], 'TdeCredentialArn' => [ 'shape' => 'String', ], 'Encrypted' => [ 'shape' => 'Boolean', ], 'StorageType' => [ 'shape' => 'String', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'Timezone' => [ 'shape' => 'String', ], 'IAMDatabaseAuthenticationEnabled' => [ 'shape' => 'Boolean', ], ], 'wrapper' => true, ], 'DBInstanceAutomatedBackupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBInstanceAutomatedBackup', 'locationName' => 'DBInstanceAutomatedBackup', ], ], 'DBInstanceAutomatedBackupMessage' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'DBInstanceAutomatedBackups' => [ 'shape' => 'DBInstanceAutomatedBackupList', ], ], ], 'DBInstanceAutomatedBackupNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBInstanceAutomatedBackupNotFound', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'DBInstanceAutomatedBackupQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBInstanceAutomatedBackupQuotaExceeded', '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, ], 'DBInstanceRole' => [ 'type' => 'structure', 'members' => [ 'RoleArn' => [ 'shape' => 'String', ], 'FeatureName' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], ], ], 'DBInstanceRoleAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBInstanceRoleAlreadyExists', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DBInstanceRoleNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBInstanceRoleNotFound', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'DBInstanceRoleQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBInstanceRoleQuotaExceeded', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DBInstanceRoles' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBInstanceRole', 'locationName' => 'DBInstanceRole', ], ], 'DBInstanceStatusInfo' => [ 'type' => 'structure', 'members' => [ 'StatusType' => [ 'shape' => 'String', ], 'Normal' => [ 'shape' => 'Boolean', ], 'Status' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], ], ], 'DBInstanceStatusInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBInstanceStatusInfo', 'locationName' => 'DBInstanceStatusInfo', ], ], 'DBLogFileNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBLogFileNotFoundFault', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'DBParameterGroup' => [ 'type' => 'structure', 'members' => [ 'DBParameterGroupName' => [ 'shape' => 'String', ], 'DBParameterGroupFamily' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'DBParameterGroupArn' => [ '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', ], 'DBSecurityGroupArn' => [ 'shape' => 'String', ], ], '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', ], 'SourceDBSnapshotIdentifier' => [ 'shape' => 'String', ], 'StorageType' => [ 'shape' => 'String', ], 'TdeCredentialArn' => [ 'shape' => 'String', ], 'Encrypted' => [ 'shape' => 'Boolean', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'DBSnapshotArn' => [ 'shape' => 'String', ], 'Timezone' => [ 'shape' => 'String', ], 'IAMDatabaseAuthenticationEnabled' => [ 'shape' => 'Boolean', ], 'ProcessorFeatures' => [ 'shape' => 'ProcessorFeatureList', ], 'DbiResourceId' => [ 'shape' => 'String', ], ], 'wrapper' => true, ], 'DBSnapshotAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DBSnapshotAlreadyExists', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DBSnapshotAttribute' => [ 'type' => 'structure', 'members' => [ 'AttributeName' => [ 'shape' => 'String', ], 'AttributeValues' => [ 'shape' => 'AttributeValueList', ], ], 'wrapper' => true, ], 'DBSnapshotAttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DBSnapshotAttribute', 'locationName' => 'DBSnapshotAttribute', ], ], 'DBSnapshotAttributesResult' => [ 'type' => 'structure', 'members' => [ 'DBSnapshotIdentifier' => [ 'shape' => 'String', ], 'DBSnapshotAttributes' => [ 'shape' => 'DBSnapshotAttributeList', ], ], 'wrapper' => 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', ], 'DBSubnetGroupArn' => [ 'shape' => 'String', ], ], '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, ], 'DeleteDBClusterEndpointMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterEndpointIdentifier', ], 'members' => [ 'DBClusterEndpointIdentifier' => [ 'shape' => 'String', ], ], ], 'DeleteDBClusterMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'SkipFinalSnapshot' => [ 'shape' => 'Boolean', ], 'FinalDBSnapshotIdentifier' => [ 'shape' => 'String', ], ], ], 'DeleteDBClusterParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterParameterGroupName', ], 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], ], ], 'DeleteDBClusterResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], 'DeleteDBClusterSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterSnapshotIdentifier', ], 'members' => [ 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], ], ], 'DeleteDBClusterSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterSnapshot' => [ 'shape' => 'DBClusterSnapshot', ], ], ], 'DeleteDBInstanceAutomatedBackupMessage' => [ 'type' => 'structure', 'required' => [ 'DbiResourceId', ], 'members' => [ 'DbiResourceId' => [ 'shape' => 'String', ], ], ], 'DeleteDBInstanceAutomatedBackupResult' => [ 'type' => 'structure', 'members' => [ 'DBInstanceAutomatedBackup' => [ 'shape' => 'DBInstanceAutomatedBackup', ], ], ], 'DeleteDBInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', ], 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'SkipFinalSnapshot' => [ 'shape' => 'Boolean', ], 'FinalDBSnapshotIdentifier' => [ 'shape' => 'String', ], 'DeleteAutomatedBackups' => [ 'shape' => 'BooleanOptional', ], ], ], 'DeleteDBInstanceResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], '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', ], ], ], 'DeleteDBSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBSnapshot' => [ 'shape' => 'DBSnapshot', ], ], ], 'DeleteDBSubnetGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBSubnetGroupName', ], 'members' => [ 'DBSubnetGroupName' => [ 'shape' => 'String', ], ], ], 'DeleteEventSubscriptionMessage' => [ 'type' => 'structure', 'required' => [ 'SubscriptionName', ], 'members' => [ 'SubscriptionName' => [ 'shape' => 'String', ], ], ], 'DeleteEventSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'EventSubscription' => [ 'shape' => 'EventSubscription', ], ], ], 'DeleteGlobalClusterMessage' => [ 'type' => 'structure', 'required' => [ 'GlobalClusterIdentifier', ], 'members' => [ 'GlobalClusterIdentifier' => [ 'shape' => 'String', ], ], ], 'DeleteGlobalClusterResult' => [ 'type' => 'structure', 'members' => [ 'GlobalCluster' => [ 'shape' => 'GlobalCluster', ], ], ], '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', ], ], ], 'DescribeDBClusterBacktracksMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'BacktrackIdentifier' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeDBClusterEndpointsMessage' => [ 'type' => 'structure', 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'DBClusterEndpointIdentifier' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeDBClusterParameterGroupsMessage' => [ 'type' => 'structure', 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeDBClusterParametersMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterParameterGroupName', ], 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'Source' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeDBClusterSnapshotAttributesMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterSnapshotIdentifier', ], 'members' => [ 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], ], ], 'DescribeDBClusterSnapshotAttributesResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterSnapshotAttributesResult' => [ 'shape' => 'DBClusterSnapshotAttributesResult', ], ], ], 'DescribeDBClusterSnapshotsMessage' => [ 'type' => 'structure', 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'SnapshotType' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], 'IncludeShared' => [ 'shape' => 'Boolean', ], 'IncludePublic' => [ 'shape' => 'Boolean', ], ], ], 'DescribeDBClustersMessage' => [ 'type' => 'structure', 'members' => [ 'DBClusterIdentifier' => [ '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', ], 'ListSupportedTimezones' => [ 'shape' => 'BooleanOptional', ], ], ], 'DescribeDBInstanceAutomatedBackupsMessage' => [ 'type' => 'structure', 'members' => [ 'DbiResourceId' => [ 'shape' => 'String', ], 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], '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', ], ], ], 'DescribeDBSnapshotAttributesMessage' => [ 'type' => 'structure', 'required' => [ 'DBSnapshotIdentifier', ], 'members' => [ 'DBSnapshotIdentifier' => [ 'shape' => 'String', ], ], ], 'DescribeDBSnapshotAttributesResult' => [ 'type' => 'structure', 'members' => [ 'DBSnapshotAttributesResult' => [ 'shape' => 'DBSnapshotAttributesResult', ], ], ], 'DescribeDBSnapshotsMessage' => [ 'type' => 'structure', 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'DBSnapshotIdentifier' => [ 'shape' => 'String', ], 'SnapshotType' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], 'IncludeShared' => [ 'shape' => 'Boolean', ], 'IncludePublic' => [ 'shape' => 'Boolean', ], 'DbiResourceId' => [ 'shape' => 'String', ], ], ], 'DescribeDBSubnetGroupsMessage' => [ 'type' => 'structure', 'members' => [ 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeEngineDefaultClusterParametersMessage' => [ 'type' => 'structure', 'required' => [ 'DBParameterGroupFamily', ], 'members' => [ 'DBParameterGroupFamily' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeEngineDefaultClusterParametersResult' => [ 'type' => 'structure', 'members' => [ 'EngineDefaults' => [ 'shape' => 'EngineDefaults', ], ], ], 'DescribeEngineDefaultParametersMessage' => [ 'type' => 'structure', 'required' => [ 'DBParameterGroupFamily', ], 'members' => [ 'DBParameterGroupFamily' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeEngineDefaultParametersResult' => [ 'type' => 'structure', 'members' => [ 'EngineDefaults' => [ 'shape' => 'EngineDefaults', ], ], ], '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', ], ], ], 'DescribeGlobalClustersMessage' => [ 'type' => 'structure', 'members' => [ 'GlobalClusterIdentifier' => [ 'shape' => 'String', ], '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', ], ], ], 'DescribeSourceRegionsMessage' => [ 'type' => 'structure', 'members' => [ 'RegionName' => [ 'shape' => 'String', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', ], ], ], 'DescribeValidDBInstanceModificationsMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', ], 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], ], ], 'DescribeValidDBInstanceModificationsResult' => [ 'type' => 'structure', 'members' => [ 'ValidDBInstanceModificationsMessage' => [ 'shape' => 'ValidDBInstanceModificationsMessage', ], ], ], 'DomainMembership' => [ 'type' => 'structure', 'members' => [ 'Domain' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], 'FQDN' => [ 'shape' => 'String', ], 'IAMRoleName' => [ 'shape' => 'String', ], ], ], 'DomainMembershipList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DomainMembership', 'locationName' => 'DomainMembership', ], ], 'DomainNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DomainNotFoundFault', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'Double' => [ 'type' => 'double', ], 'DoubleOptional' => [ 'type' => 'double', ], 'DoubleRange' => [ 'type' => 'structure', 'members' => [ 'From' => [ 'shape' => 'Double', ], 'To' => [ 'shape' => 'Double', ], ], ], 'DoubleRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DoubleRange', 'locationName' => 'DoubleRange', ], ], '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', ], 'HostedZoneId' => [ 'shape' => 'String', ], ], ], 'EngineDefaults' => [ 'type' => 'structure', 'members' => [ 'DBParameterGroupFamily' => [ 'shape' => 'String', ], 'Marker' => [ 'shape' => 'String', ], 'Parameters' => [ 'shape' => 'ParametersList', ], ], 'wrapper' => true, ], 'EngineModeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'Event' => [ 'type' => 'structure', 'members' => [ 'SourceIdentifier' => [ 'shape' => 'String', ], 'SourceType' => [ 'shape' => 'SourceType', ], 'Message' => [ 'shape' => 'String', ], 'EventCategories' => [ 'shape' => 'EventCategoriesList', ], 'Date' => [ 'shape' => 'TStamp', ], 'SourceArn' => [ 'shape' => 'String', ], ], ], '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', ], 'EventSubscriptionArn' => [ 'shape' => 'String', ], ], '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', ], ], ], 'FailoverDBClusterMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'TargetDBInstanceIdentifier' => [ 'shape' => 'String', ], ], ], 'FailoverDBClusterResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], 'FeatureNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], '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', ], ], 'GlobalCluster' => [ 'type' => 'structure', 'members' => [ 'GlobalClusterIdentifier' => [ 'shape' => 'String', ], 'GlobalClusterResourceId' => [ 'shape' => 'String', ], 'GlobalClusterArn' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], 'Engine' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'DatabaseName' => [ 'shape' => 'String', ], 'StorageEncrypted' => [ 'shape' => 'BooleanOptional', ], 'DeletionProtection' => [ 'shape' => 'BooleanOptional', ], 'GlobalClusterMembers' => [ 'shape' => 'GlobalClusterMemberList', ], ], 'wrapper' => true, ], 'GlobalClusterAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'GlobalClusterAlreadyExistsFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'GlobalClusterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GlobalCluster', 'locationName' => 'GlobalClusterMember', ], ], 'GlobalClusterMember' => [ 'type' => 'structure', 'members' => [ 'DBClusterArn' => [ 'shape' => 'String', ], 'Readers' => [ 'shape' => 'ReadersArnList', ], 'IsWriter' => [ 'shape' => 'Boolean', ], ], 'wrapper' => true, ], 'GlobalClusterMemberList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GlobalClusterMember', 'locationName' => 'GlobalClusterMember', ], ], 'GlobalClusterNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'GlobalClusterNotFoundFault', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'GlobalClusterQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'GlobalClusterQuotaExceededFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'GlobalClustersMessage' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'GlobalClusters' => [ 'shape' => 'GlobalClusterList', ], ], ], '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, ], 'InsufficientDBClusterCapacityFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InsufficientDBClusterCapacityFault', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'InsufficientDBInstanceCapacityFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InsufficientDBInstanceCapacity', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InsufficientStorageClusterCapacityFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InsufficientStorageClusterCapacity', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'Integer' => [ 'type' => 'integer', ], 'IntegerOptional' => [ 'type' => 'integer', ], 'InvalidDBClusterCapacityFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidDBClusterCapacityFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidDBClusterEndpointStateFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidDBClusterEndpointStateFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidDBClusterSnapshotStateFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidDBClusterSnapshotStateFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidDBClusterStateFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidDBClusterStateFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidDBInstanceAutomatedBackupStateFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidDBInstanceAutomatedBackupState', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], '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, ], 'InvalidGlobalClusterStateFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidGlobalClusterStateFault', '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, ], 'InvalidS3BucketFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidS3BucketFault', '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', ], ], ], 'LogTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'Long' => [ 'type' => 'long', ], 'LongOptional' => [ 'type' => 'long', ], 'MinimumEngineVersionPerAllowedValue' => [ 'type' => 'structure', 'members' => [ 'AllowedValue' => [ 'shape' => 'String', ], 'MinimumEngineVersion' => [ 'shape' => 'String', ], ], ], 'MinimumEngineVersionPerAllowedValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MinimumEngineVersionPerAllowedValue', 'locationName' => 'MinimumEngineVersionPerAllowedValue', ], ], 'ModifyCurrentDBClusterCapacityMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'Capacity' => [ 'shape' => 'IntegerOptional', ], 'SecondsBeforeTimeout' => [ 'shape' => 'IntegerOptional', ], 'TimeoutAction' => [ 'shape' => 'String', ], ], ], 'ModifyDBClusterEndpointMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterEndpointIdentifier', ], 'members' => [ 'DBClusterEndpointIdentifier' => [ 'shape' => 'String', ], 'EndpointType' => [ 'shape' => 'String', ], 'StaticMembers' => [ 'shape' => 'StringList', ], 'ExcludedMembers' => [ 'shape' => 'StringList', ], ], ], 'ModifyDBClusterMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'NewDBClusterIdentifier' => [ 'shape' => 'String', ], 'ApplyImmediately' => [ 'shape' => 'Boolean', ], 'BackupRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'VpcSecurityGroupIds' => [ 'shape' => 'VpcSecurityGroupIdList', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'MasterUserPassword' => [ 'shape' => 'String', ], 'OptionGroupName' => [ 'shape' => 'String', ], 'PreferredBackupWindow' => [ 'shape' => 'String', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'String', ], 'EnableIAMDatabaseAuthentication' => [ 'shape' => 'BooleanOptional', ], 'BacktrackWindow' => [ 'shape' => 'LongOptional', ], 'CloudwatchLogsExportConfiguration' => [ 'shape' => 'CloudwatchLogsExportConfiguration', ], 'EngineVersion' => [ 'shape' => 'String', ], 'ScalingConfiguration' => [ 'shape' => 'ScalingConfiguration', ], 'DeletionProtection' => [ 'shape' => 'BooleanOptional', ], 'EnableHttpEndpoint' => [ 'shape' => 'BooleanOptional', ], 'CopyTagsToSnapshot' => [ 'shape' => 'BooleanOptional', ], ], ], 'ModifyDBClusterParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterParameterGroupName', 'Parameters', ], 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'Parameters' => [ 'shape' => 'ParametersList', ], ], ], 'ModifyDBClusterResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], 'ModifyDBClusterSnapshotAttributeMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterSnapshotIdentifier', 'AttributeName', ], 'members' => [ 'DBClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'AttributeName' => [ 'shape' => 'String', ], 'ValuesToAdd' => [ 'shape' => 'AttributeValueList', ], 'ValuesToRemove' => [ 'shape' => 'AttributeValueList', ], ], ], 'ModifyDBClusterSnapshotAttributeResult' => [ 'type' => 'structure', 'members' => [ 'DBClusterSnapshotAttributesResult' => [ 'shape' => 'DBClusterSnapshotAttributesResult', ], ], ], 'ModifyDBInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', ], 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'AllocatedStorage' => [ 'shape' => 'IntegerOptional', ], 'DBInstanceClass' => [ 'shape' => 'String', ], 'DBSubnetGroupName' => [ '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', ], 'LicenseModel' => [ 'shape' => 'String', ], 'Iops' => [ 'shape' => 'IntegerOptional', ], 'OptionGroupName' => [ 'shape' => 'String', ], 'NewDBInstanceIdentifier' => [ 'shape' => 'String', ], 'StorageType' => [ 'shape' => 'String', ], 'TdeCredentialArn' => [ 'shape' => 'String', ], 'TdeCredentialPassword' => [ 'shape' => 'String', ], 'CACertificateIdentifier' => [ 'shape' => 'String', ], 'Domain' => [ 'shape' => 'String', ], 'CopyTagsToSnapshot' => [ 'shape' => 'BooleanOptional', ], 'MonitoringInterval' => [ 'shape' => 'IntegerOptional', ], 'DBPortNumber' => [ 'shape' => 'IntegerOptional', ], 'PubliclyAccessible' => [ 'shape' => 'BooleanOptional', ], 'MonitoringRoleArn' => [ 'shape' => 'String', ], 'DomainIAMRoleName' => [ 'shape' => 'String', ], 'PromotionTier' => [ 'shape' => 'IntegerOptional', ], 'EnableIAMDatabaseAuthentication' => [ 'shape' => 'BooleanOptional', ], 'EnablePerformanceInsights' => [ 'shape' => 'BooleanOptional', ], 'PerformanceInsightsKMSKeyId' => [ 'shape' => 'String', ], 'PerformanceInsightsRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'CloudwatchLogsExportConfiguration' => [ 'shape' => 'CloudwatchLogsExportConfiguration', ], 'ProcessorFeatures' => [ 'shape' => 'ProcessorFeatureList', ], 'UseDefaultProcessorFeatures' => [ 'shape' => 'BooleanOptional', ], 'DeletionProtection' => [ 'shape' => 'BooleanOptional', ], ], ], 'ModifyDBInstanceResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], 'ModifyDBParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBParameterGroupName', 'Parameters', ], 'members' => [ 'DBParameterGroupName' => [ 'shape' => 'String', ], 'Parameters' => [ 'shape' => 'ParametersList', ], ], ], 'ModifyDBSnapshotAttributeMessage' => [ 'type' => 'structure', 'required' => [ 'DBSnapshotIdentifier', 'AttributeName', ], 'members' => [ 'DBSnapshotIdentifier' => [ 'shape' => 'String', ], 'AttributeName' => [ 'shape' => 'String', ], 'ValuesToAdd' => [ 'shape' => 'AttributeValueList', ], 'ValuesToRemove' => [ 'shape' => 'AttributeValueList', ], ], ], 'ModifyDBSnapshotAttributeResult' => [ 'type' => 'structure', 'members' => [ 'DBSnapshotAttributesResult' => [ 'shape' => 'DBSnapshotAttributesResult', ], ], ], 'ModifyDBSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'DBSnapshotIdentifier', ], 'members' => [ 'DBSnapshotIdentifier' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'OptionGroupName' => [ 'shape' => 'String', ], ], ], 'ModifyDBSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBSnapshot' => [ 'shape' => 'DBSnapshot', ], ], ], 'ModifyDBSubnetGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBSubnetGroupName', 'SubnetIds', ], 'members' => [ 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'DBSubnetGroupDescription' => [ 'shape' => 'String', ], 'SubnetIds' => [ 'shape' => 'SubnetIdentifierList', ], ], ], 'ModifyDBSubnetGroupResult' => [ 'type' => 'structure', 'members' => [ 'DBSubnetGroup' => [ 'shape' => 'DBSubnetGroup', ], ], ], 'ModifyEventSubscriptionMessage' => [ 'type' => 'structure', 'required' => [ 'SubscriptionName', ], 'members' => [ 'SubscriptionName' => [ 'shape' => 'String', ], 'SnsTopicArn' => [ 'shape' => 'String', ], 'SourceType' => [ 'shape' => 'String', ], 'EventCategories' => [ 'shape' => 'EventCategoriesList', ], 'Enabled' => [ 'shape' => 'BooleanOptional', ], ], ], 'ModifyEventSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'EventSubscription' => [ 'shape' => 'EventSubscription', ], ], ], 'ModifyGlobalClusterMessage' => [ 'type' => 'structure', 'members' => [ 'GlobalClusterIdentifier' => [ 'shape' => 'String', ], 'NewGlobalClusterIdentifier' => [ 'shape' => 'String', ], 'DeletionProtection' => [ 'shape' => 'BooleanOptional', ], ], ], 'ModifyGlobalClusterResult' => [ 'type' => 'structure', 'members' => [ 'GlobalCluster' => [ 'shape' => 'GlobalCluster', ], ], ], 'ModifyOptionGroupMessage' => [ 'type' => 'structure', 'required' => [ 'OptionGroupName', ], 'members' => [ 'OptionGroupName' => [ 'shape' => 'String', ], 'OptionsToInclude' => [ 'shape' => 'OptionConfigurationList', ], 'OptionsToRemove' => [ 'shape' => 'OptionNamesList', ], 'ApplyImmediately' => [ 'shape' => 'Boolean', ], ], ], 'ModifyOptionGroupResult' => [ 'type' => 'structure', 'members' => [ 'OptionGroup' => [ 'shape' => 'OptionGroup', ], ], ], 'Option' => [ 'type' => 'structure', 'members' => [ 'OptionName' => [ 'shape' => 'String', ], 'OptionDescription' => [ 'shape' => 'String', ], 'Persistent' => [ 'shape' => 'Boolean', ], 'Permanent' => [ 'shape' => 'Boolean', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'OptionVersion' => [ 'shape' => 'String', ], 'OptionSettings' => [ 'shape' => 'OptionSettingConfigurationList', ], 'DBSecurityGroupMemberships' => [ 'shape' => 'DBSecurityGroupMembershipList', ], 'VpcSecurityGroupMemberships' => [ 'shape' => 'VpcSecurityGroupMembershipList', ], ], ], 'OptionConfiguration' => [ 'type' => 'structure', 'required' => [ 'OptionName', ], 'members' => [ 'OptionName' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'OptionVersion' => [ 'shape' => 'String', ], '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', ], 'OptionGroupArn' => [ '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', ], 'OptionsConflictsWith' => [ 'shape' => 'OptionsConflictsWith', ], 'Persistent' => [ 'shape' => 'Boolean', ], 'Permanent' => [ 'shape' => 'Boolean', ], 'RequiresAutoMinorEngineVersionUpgrade' => [ 'shape' => 'Boolean', ], 'VpcOnly' => [ 'shape' => 'Boolean', ], 'SupportsOptionVersionDowngrade' => [ 'shape' => 'BooleanOptional', ], 'OptionGroupOptionSettings' => [ 'shape' => 'OptionGroupOptionSettingsList', ], 'OptionGroupOptionVersions' => [ 'shape' => 'OptionGroupOptionVersionsList', ], ], ], 'OptionGroupOptionSetting' => [ 'type' => 'structure', 'members' => [ 'SettingName' => [ 'shape' => 'String', ], 'SettingDescription' => [ 'shape' => 'String', ], 'DefaultValue' => [ 'shape' => 'String', ], 'ApplyType' => [ 'shape' => 'String', ], 'AllowedValues' => [ 'shape' => 'String', ], 'IsModifiable' => [ 'shape' => 'Boolean', ], 'IsRequired' => [ 'shape' => 'Boolean', ], 'MinimumEngineVersionPerAllowedValue' => [ 'shape' => 'MinimumEngineVersionPerAllowedValueList', ], ], ], 'OptionGroupOptionSettingsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OptionGroupOptionSetting', 'locationName' => 'OptionGroupOptionSetting', ], ], 'OptionGroupOptionVersionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OptionVersion', 'locationName' => 'OptionVersion', ], ], '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', ], ], 'OptionVersion' => [ 'type' => 'structure', 'members' => [ 'Version' => [ 'shape' => 'String', ], 'IsDefault' => [ 'shape' => 'Boolean', ], ], ], 'OptionsConflictsWith' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'OptionConflictName', ], ], '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', ], 'SupportsEnhancedMonitoring' => [ 'shape' => 'Boolean', ], 'SupportsIAMDatabaseAuthentication' => [ 'shape' => 'Boolean', ], 'SupportsPerformanceInsights' => [ 'shape' => 'Boolean', ], 'MinStorageSize' => [ 'shape' => 'IntegerOptional', ], 'MaxStorageSize' => [ 'shape' => 'IntegerOptional', ], 'MinIopsPerDbInstance' => [ 'shape' => 'IntegerOptional', ], 'MaxIopsPerDbInstance' => [ 'shape' => 'IntegerOptional', ], 'MinIopsPerGib' => [ 'shape' => 'DoubleOptional', ], 'MaxIopsPerGib' => [ 'shape' => 'DoubleOptional', ], 'AvailableProcessorFeatures' => [ 'shape' => 'AvailableProcessorFeatureList', ], 'SupportedEngineModes' => [ 'shape' => 'EngineModeList', ], ], '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', ], 'SupportedEngineModes' => [ 'shape' => 'EngineModeList', ], ], ], 'ParametersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Parameter', 'locationName' => 'Parameter', ], ], 'PendingCloudwatchLogsExports' => [ 'type' => 'structure', 'members' => [ 'LogTypesToEnable' => [ 'shape' => 'LogTypeList', ], 'LogTypesToDisable' => [ 'shape' => 'LogTypeList', ], ], ], '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', ], 'LicenseModel' => [ 'shape' => 'String', ], 'Iops' => [ 'shape' => 'IntegerOptional', ], 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'StorageType' => [ 'shape' => 'String', ], 'CACertificateIdentifier' => [ 'shape' => 'String', ], 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'PendingCloudwatchLogsExports' => [ 'shape' => 'PendingCloudwatchLogsExports', ], 'ProcessorFeatures' => [ 'shape' => 'ProcessorFeatureList', ], ], ], 'PointInTimeRestoreNotEnabledFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'PointInTimeRestoreNotEnabled', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ProcessorFeature' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Value' => [ 'shape' => 'String', ], ], ], 'ProcessorFeatureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProcessorFeature', 'locationName' => 'ProcessorFeature', ], ], 'PromoteReadReplicaDBClusterMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], ], ], 'PromoteReadReplicaDBClusterResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], 'PromoteReadReplicaMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', ], 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'BackupRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'PreferredBackupWindow' => [ 'shape' => 'String', ], ], ], 'PromoteReadReplicaResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], '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', ], ], ], 'PurchaseReservedDBInstancesOfferingResult' => [ 'type' => 'structure', 'members' => [ 'ReservedDBInstance' => [ 'shape' => 'ReservedDBInstance', ], ], ], 'Range' => [ 'type' => 'structure', 'members' => [ 'From' => [ 'shape' => 'Integer', ], 'To' => [ 'shape' => 'Integer', ], 'Step' => [ 'shape' => 'IntegerOptional', ], ], ], 'RangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Range', 'locationName' => 'Range', ], ], 'ReadReplicaDBClusterIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ReadReplicaDBClusterIdentifier', ], ], 'ReadReplicaDBInstanceIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ReadReplicaDBInstanceIdentifier', ], ], 'ReadReplicaIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ReadReplicaIdentifier', ], ], 'ReadersArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'RebootDBInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', ], 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'ForceFailover' => [ 'shape' => 'BooleanOptional', ], ], ], 'RebootDBInstanceResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], 'RecurringCharge' => [ 'type' => 'structure', 'members' => [ 'RecurringChargeAmount' => [ 'shape' => 'Double', ], 'RecurringChargeFrequency' => [ 'shape' => 'String', ], ], 'wrapper' => true, ], 'RecurringChargeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RecurringCharge', 'locationName' => 'RecurringCharge', ], ], 'RemoveFromGlobalClusterMessage' => [ 'type' => 'structure', 'members' => [ 'GlobalClusterIdentifier' => [ 'shape' => 'String', ], 'DbClusterIdentifier' => [ 'shape' => 'String', ], ], ], 'RemoveFromGlobalClusterResult' => [ 'type' => 'structure', 'members' => [ 'GlobalCluster' => [ 'shape' => 'GlobalCluster', ], ], ], 'RemoveRoleFromDBClusterMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', 'RoleArn', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'RoleArn' => [ 'shape' => 'String', ], ], ], 'RemoveRoleFromDBInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', 'RoleArn', 'FeatureName', ], 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'RoleArn' => [ 'shape' => 'String', ], 'FeatureName' => [ 'shape' => 'String', ], ], ], 'RemoveSourceIdentifierFromSubscriptionMessage' => [ 'type' => 'structure', 'required' => [ 'SubscriptionName', 'SourceIdentifier', ], 'members' => [ 'SubscriptionName' => [ 'shape' => 'String', ], 'SourceIdentifier' => [ 'shape' => 'String', ], ], ], 'RemoveSourceIdentifierFromSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'EventSubscription' => [ 'shape' => 'EventSubscription', ], ], ], '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', ], 'ReservedDBInstanceArn' => [ 'shape' => 'String', ], ], '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, ], 'ResetDBClusterParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterParameterGroupName', ], 'members' => [ 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'ResetAllParameters' => [ 'shape' => 'Boolean', ], 'Parameters' => [ 'shape' => 'ParametersList', ], ], ], '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, ], 'RestoreDBClusterFromS3Message' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', 'Engine', 'MasterUsername', 'MasterUserPassword', 'SourceEngine', 'SourceEngineVersion', 'S3BucketName', 'S3IngestionRoleArn', ], 'members' => [ 'AvailabilityZones' => [ 'shape' => 'AvailabilityZones', ], 'BackupRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'CharacterSetName' => [ 'shape' => 'String', ], 'DatabaseName' => [ 'shape' => 'String', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'VpcSecurityGroupIds' => [ 'shape' => 'VpcSecurityGroupIdList', ], 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'Engine' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'MasterUsername' => [ 'shape' => 'String', ], 'MasterUserPassword' => [ 'shape' => 'String', ], 'OptionGroupName' => [ 'shape' => 'String', ], 'PreferredBackupWindow' => [ 'shape' => 'String', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], 'StorageEncrypted' => [ 'shape' => 'BooleanOptional', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'EnableIAMDatabaseAuthentication' => [ 'shape' => 'BooleanOptional', ], 'SourceEngine' => [ 'shape' => 'String', ], 'SourceEngineVersion' => [ 'shape' => 'String', ], 'S3BucketName' => [ 'shape' => 'String', ], 'S3Prefix' => [ 'shape' => 'String', ], 'S3IngestionRoleArn' => [ 'shape' => 'String', ], 'BacktrackWindow' => [ 'shape' => 'LongOptional', ], 'EnableCloudwatchLogsExports' => [ 'shape' => 'LogTypeList', ], 'DeletionProtection' => [ 'shape' => 'BooleanOptional', ], 'CopyTagsToSnapshot' => [ 'shape' => 'BooleanOptional', ], ], ], 'RestoreDBClusterFromS3Result' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], 'RestoreDBClusterFromSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', 'SnapshotIdentifier', 'Engine', ], 'members' => [ 'AvailabilityZones' => [ 'shape' => 'AvailabilityZones', ], 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'SnapshotIdentifier' => [ 'shape' => 'String', ], 'Engine' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'DatabaseName' => [ 'shape' => 'String', ], 'OptionGroupName' => [ 'shape' => 'String', ], 'VpcSecurityGroupIds' => [ 'shape' => 'VpcSecurityGroupIdList', ], 'Tags' => [ 'shape' => 'TagList', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'EnableIAMDatabaseAuthentication' => [ 'shape' => 'BooleanOptional', ], 'BacktrackWindow' => [ 'shape' => 'LongOptional', ], 'EnableCloudwatchLogsExports' => [ 'shape' => 'LogTypeList', ], 'EngineMode' => [ 'shape' => 'String', ], 'ScalingConfiguration' => [ 'shape' => 'ScalingConfiguration', ], 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'DeletionProtection' => [ 'shape' => 'BooleanOptional', ], 'CopyTagsToSnapshot' => [ 'shape' => 'BooleanOptional', ], ], ], 'RestoreDBClusterFromSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], 'RestoreDBClusterToPointInTimeMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', 'SourceDBClusterIdentifier', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], 'RestoreType' => [ 'shape' => 'String', ], 'SourceDBClusterIdentifier' => [ 'shape' => 'String', ], 'RestoreToTime' => [ 'shape' => 'TStamp', ], 'UseLatestRestorableTime' => [ 'shape' => 'Boolean', ], 'Port' => [ 'shape' => 'IntegerOptional', ], 'DBSubnetGroupName' => [ 'shape' => 'String', ], 'OptionGroupName' => [ 'shape' => 'String', ], 'VpcSecurityGroupIds' => [ 'shape' => 'VpcSecurityGroupIdList', ], 'Tags' => [ 'shape' => 'TagList', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'EnableIAMDatabaseAuthentication' => [ 'shape' => 'BooleanOptional', ], 'BacktrackWindow' => [ 'shape' => 'LongOptional', ], 'EnableCloudwatchLogsExports' => [ 'shape' => 'LogTypeList', ], 'DBClusterParameterGroupName' => [ 'shape' => 'String', ], 'DeletionProtection' => [ 'shape' => 'BooleanOptional', ], 'CopyTagsToSnapshot' => [ 'shape' => 'BooleanOptional', ], ], ], 'RestoreDBClusterToPointInTimeResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], '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', ], 'VpcSecurityGroupIds' => [ 'shape' => 'VpcSecurityGroupIdList', ], 'Domain' => [ 'shape' => 'String', ], 'CopyTagsToSnapshot' => [ 'shape' => 'BooleanOptional', ], 'DomainIAMRoleName' => [ 'shape' => 'String', ], 'EnableIAMDatabaseAuthentication' => [ 'shape' => 'BooleanOptional', ], 'EnableCloudwatchLogsExports' => [ 'shape' => 'LogTypeList', ], 'ProcessorFeatures' => [ 'shape' => 'ProcessorFeatureList', ], 'UseDefaultProcessorFeatures' => [ 'shape' => 'BooleanOptional', ], 'DBParameterGroupName' => [ 'shape' => 'String', ], 'DeletionProtection' => [ 'shape' => 'BooleanOptional', ], ], ], 'RestoreDBInstanceFromDBSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], 'RestoreDBInstanceFromS3Message' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', 'DBInstanceClass', 'Engine', 'SourceEngine', 'SourceEngineVersion', 'S3BucketName', 'S3IngestionRoleArn', ], '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', ], 'PubliclyAccessible' => [ 'shape' => 'BooleanOptional', ], 'Tags' => [ 'shape' => 'TagList', ], 'StorageType' => [ 'shape' => 'String', ], 'StorageEncrypted' => [ 'shape' => 'BooleanOptional', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'CopyTagsToSnapshot' => [ 'shape' => 'BooleanOptional', ], 'MonitoringInterval' => [ 'shape' => 'IntegerOptional', ], 'MonitoringRoleArn' => [ 'shape' => 'String', ], 'EnableIAMDatabaseAuthentication' => [ 'shape' => 'BooleanOptional', ], 'SourceEngine' => [ 'shape' => 'String', ], 'SourceEngineVersion' => [ 'shape' => 'String', ], 'S3BucketName' => [ 'shape' => 'String', ], 'S3Prefix' => [ 'shape' => 'String', ], 'S3IngestionRoleArn' => [ 'shape' => 'String', ], 'EnablePerformanceInsights' => [ 'shape' => 'BooleanOptional', ], 'PerformanceInsightsKMSKeyId' => [ 'shape' => 'String', ], 'PerformanceInsightsRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'EnableCloudwatchLogsExports' => [ 'shape' => 'LogTypeList', ], 'ProcessorFeatures' => [ 'shape' => 'ProcessorFeatureList', ], 'UseDefaultProcessorFeatures' => [ 'shape' => 'BooleanOptional', ], 'DeletionProtection' => [ 'shape' => 'BooleanOptional', ], ], ], 'RestoreDBInstanceFromS3Result' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], 'RestoreDBInstanceToPointInTimeMessage' => [ 'type' => 'structure', 'required' => [ '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', ], 'CopyTagsToSnapshot' => [ 'shape' => 'BooleanOptional', ], 'Tags' => [ 'shape' => 'TagList', ], 'StorageType' => [ 'shape' => 'String', ], 'TdeCredentialArn' => [ 'shape' => 'String', ], 'TdeCredentialPassword' => [ 'shape' => 'String', ], 'VpcSecurityGroupIds' => [ 'shape' => 'VpcSecurityGroupIdList', ], 'Domain' => [ 'shape' => 'String', ], 'DomainIAMRoleName' => [ 'shape' => 'String', ], 'EnableIAMDatabaseAuthentication' => [ 'shape' => 'BooleanOptional', ], 'EnableCloudwatchLogsExports' => [ 'shape' => 'LogTypeList', ], 'ProcessorFeatures' => [ 'shape' => 'ProcessorFeatureList', ], 'UseDefaultProcessorFeatures' => [ 'shape' => 'BooleanOptional', ], 'DBParameterGroupName' => [ 'shape' => 'String', ], 'DeletionProtection' => [ 'shape' => 'BooleanOptional', ], 'SourceDbiResourceId' => [ 'shape' => 'String', ], ], ], 'RestoreDBInstanceToPointInTimeResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], 'RestoreWindow' => [ 'type' => 'structure', 'members' => [ 'EarliestTime' => [ 'shape' => 'TStamp', ], 'LatestTime' => [ 'shape' => 'TStamp', ], ], ], 'RevokeDBSecurityGroupIngressMessage' => [ 'type' => 'structure', 'required' => [ 'DBSecurityGroupName', ], 'members' => [ 'DBSecurityGroupName' => [ 'shape' => 'String', ], 'CIDRIP' => [ 'shape' => 'String', ], 'EC2SecurityGroupName' => [ 'shape' => 'String', ], 'EC2SecurityGroupId' => [ 'shape' => 'String', ], 'EC2SecurityGroupOwnerId' => [ 'shape' => 'String', ], ], ], 'RevokeDBSecurityGroupIngressResult' => [ 'type' => 'structure', 'members' => [ 'DBSecurityGroup' => [ 'shape' => 'DBSecurityGroup', ], ], ], '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, ], 'ScalingConfiguration' => [ 'type' => 'structure', 'members' => [ 'MinCapacity' => [ 'shape' => 'IntegerOptional', ], 'MaxCapacity' => [ 'shape' => 'IntegerOptional', ], 'AutoPause' => [ 'shape' => 'BooleanOptional', ], 'SecondsUntilAutoPause' => [ 'shape' => 'IntegerOptional', ], ], ], 'ScalingConfigurationInfo' => [ 'type' => 'structure', 'members' => [ 'MinCapacity' => [ 'shape' => 'IntegerOptional', ], 'MaxCapacity' => [ 'shape' => 'IntegerOptional', ], 'AutoPause' => [ 'shape' => 'BooleanOptional', ], 'SecondsUntilAutoPause' => [ 'shape' => 'IntegerOptional', ], ], ], 'SharedSnapshotQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'SharedSnapshotQuotaExceeded', 'httpStatusCode' => 400, '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, ], 'SourceRegion' => [ 'type' => 'structure', 'members' => [ 'RegionName' => [ 'shape' => 'String', ], 'Endpoint' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], ], ], 'SourceRegionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SourceRegion', 'locationName' => 'SourceRegion', ], ], 'SourceRegionMessage' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'SourceRegions' => [ 'shape' => 'SourceRegionList', ], ], ], 'SourceType' => [ 'type' => 'string', 'enum' => [ 'db-instance', 'db-parameter-group', 'db-security-group', 'db-snapshot', 'db-cluster', 'db-cluster-snapshot', ], ], 'StartDBClusterMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], ], ], 'StartDBClusterResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], 'StartDBInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', ], 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], ], ], 'StartDBInstanceResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], 'StopDBClusterMessage' => [ 'type' => 'structure', 'required' => [ 'DBClusterIdentifier', ], 'members' => [ 'DBClusterIdentifier' => [ 'shape' => 'String', ], ], ], 'StopDBClusterResult' => [ 'type' => 'structure', 'members' => [ 'DBCluster' => [ 'shape' => 'DBCluster', ], ], ], 'StopDBInstanceMessage' => [ 'type' => 'structure', 'required' => [ 'DBInstanceIdentifier', ], 'members' => [ 'DBInstanceIdentifier' => [ 'shape' => 'String', ], 'DBSnapshotIdentifier' => [ 'shape' => 'String', ], ], ], 'StopDBInstanceResult' => [ 'type' => 'structure', 'members' => [ 'DBInstance' => [ 'shape' => 'DBInstance', ], ], ], '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', ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => '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', ], ], 'SupportedTimezonesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Timezone', 'locationName' => 'Timezone', ], ], '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', ], ], ], 'Timezone' => [ 'type' => 'structure', 'members' => [ 'TimezoneName' => [ 'shape' => 'String', ], ], ], 'UpgradeTarget' => [ 'type' => 'structure', 'members' => [ 'Engine' => [ 'shape' => 'String', ], 'EngineVersion' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'AutoUpgrade' => [ 'shape' => 'Boolean', ], 'IsMajorVersionUpgrade' => [ 'shape' => 'Boolean', ], ], ], 'ValidDBInstanceModificationsMessage' => [ 'type' => 'structure', 'members' => [ 'Storage' => [ 'shape' => 'ValidStorageOptionsList', ], 'ValidProcessorFeatures' => [ 'shape' => 'AvailableProcessorFeatureList', ], ], 'wrapper' => true, ], 'ValidStorageOptions' => [ 'type' => 'structure', 'members' => [ 'StorageType' => [ 'shape' => 'String', ], 'StorageSize' => [ 'shape' => 'RangeList', ], 'ProvisionedIops' => [ 'shape' => 'RangeList', ], 'IopsToStorageRatio' => [ 'shape' => 'DoubleRangeList', ], ], ], 'ValidStorageOptionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ValidStorageOptions', 'locationName' => 'ValidStorageOptions', ], ], 'ValidUpgradeTargetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UpgradeTarget', 'locationName' => 'UpgradeTarget', ], ], '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', ], ], ],]; diff --git a/lib/aws/Aws/data/rds/2014-10-31/paginators-1.json.php b/lib/aws/Aws/data/rds/2014-10-31/paginators-1.json.php new file mode 100644 index 0000000..f7164b7 --- /dev/null +++ b/lib/aws/Aws/data/rds/2014-10-31/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/rds/2014-10-31/paginators-1.json +return [ 'pagination' => [ 'DescribeDBClusters' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'DBClusters', ], 'DescribeDBEngineVersions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'DBEngineVersions', ], 'DescribeDBInstanceAutomatedBackups' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'DBInstanceAutomatedBackups', ], 'DescribeDBInstances' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'DBInstances', ], 'DescribeDBLogFiles' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'DescribeDBLogFiles', ], 'DescribeDBParameterGroups' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'DBParameterGroups', ], 'DescribeDBParameters' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'Parameters', ], 'DescribeDBSecurityGroups' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'DBSecurityGroups', ], 'DescribeDBSnapshots' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'DBSnapshots', ], 'DescribeDBSubnetGroups' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'DBSubnetGroups', ], 'DescribeEngineDefaultParameters' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'EngineDefaults.Marker', 'result_key' => 'EngineDefaults.Parameters', ], 'DescribeEventSubscriptions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'EventSubscriptionsList', ], 'DescribeEvents' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'Events', ], 'DescribeGlobalClusters' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'GlobalClusters', ], 'DescribeOptionGroupOptions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'OptionGroupOptions', ], 'DescribeOptionGroups' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'OptionGroupsList', ], 'DescribeOrderableDBInstanceOptions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'OrderableDBInstanceOptions', ], 'DescribeReservedDBInstances' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'ReservedDBInstances', ], 'DescribeReservedDBInstancesOfferings' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'ReservedDBInstancesOfferings', ], 'DownloadDBLogFilePortion' => [ 'input_token' => 'Marker', 'limit_key' => 'NumberOfLines', 'more_results' => 'AdditionalDataPending', 'output_token' => 'Marker', 'result_key' => 'LogFileData', ], 'ListTagsForResource' => [ 'result_key' => 'TagList', ], ],]; diff --git a/lib/aws/Aws/data/rds/2014-10-31/smoke.json.php b/lib/aws/Aws/data/rds/2014-10-31/smoke.json.php new file mode 100644 index 0000000..f3a489b --- /dev/null +++ b/lib/aws/Aws/data/rds/2014-10-31/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/rds/2014-10-31/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeDBEngineVersions', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeDBInstances', 'input' => [ 'DBInstanceIdentifier' => 'fake-id', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/rds/2014-10-31/waiters-1.json.php b/lib/aws/Aws/data/rds/2014-10-31/waiters-1.json.php new file mode 100644 index 0000000..f89c2db --- /dev/null +++ b/lib/aws/Aws/data/rds/2014-10-31/waiters-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/rds/2014-10-31/waiters-1.json +return [ 'waiters' => [ '__default__' => [ 'interval' => 30, 'max_attempts' => 60, ], '__DBInstanceState' => [ 'operation' => 'DescribeDBInstances', 'acceptor_path' => 'DBInstances[].DBInstanceStatus', 'acceptor_type' => 'output', ], 'DBInstanceAvailable' => [ 'extends' => '__DBInstanceState', 'success_value' => 'available', 'failure_value' => [ 'deleted', 'deleting', 'failed', 'incompatible-restore', 'incompatible-parameters', 'incompatible-parameters', 'incompatible-restore', ], ], 'DBInstanceDeleted' => [ 'extends' => '__DBInstanceState', 'success_value' => 'deleted', 'failure_value' => [ 'creating', 'modifying', 'rebooting', 'resetting-master-credentials', ], ], ],]; diff --git a/lib/aws/Aws/data/rds/2014-10-31/waiters-2.json.php b/lib/aws/Aws/data/rds/2014-10-31/waiters-2.json.php new file mode 100644 index 0000000..6bf06df --- /dev/null +++ b/lib/aws/Aws/data/rds/2014-10-31/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/rds/2014-10-31/waiters-2.json +return [ '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', ], ], ], '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', ], ], ], 'DBSnapshotAvailable' => [ 'delay' => 30, 'operation' => 'DescribeDBSnapshots', 'maxAttempts' => 60, 'acceptors' => [ [ 'expected' => 'available', 'matcher' => 'pathAll', 'state' => 'success', 'argument' => 'DBSnapshots[].Status', ], [ 'expected' => 'deleted', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'DBSnapshots[].Status', ], [ 'expected' => 'deleting', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'DBSnapshots[].Status', ], [ 'expected' => 'failed', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'DBSnapshots[].Status', ], [ 'expected' => 'incompatible-restore', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'DBSnapshots[].Status', ], [ 'expected' => 'incompatible-parameters', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'DBSnapshots[].Status', ], ], ], 'DBSnapshotDeleted' => [ 'delay' => 30, 'operation' => 'DescribeDBSnapshots', 'maxAttempts' => 60, 'acceptors' => [ [ 'expected' => 'deleted', 'matcher' => 'pathAll', 'state' => 'success', 'argument' => 'DBSnapshots[].Status', ], [ 'expected' => 'DBSnapshotNotFound', 'matcher' => 'error', 'state' => 'success', ], [ 'expected' => 'creating', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'DBSnapshots[].Status', ], [ 'expected' => 'modifying', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'DBSnapshots[].Status', ], [ 'expected' => 'rebooting', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'DBSnapshots[].Status', ], [ 'expected' => 'resetting-master-credentials', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'DBSnapshots[].Status', ], ], ], ],]; diff --git a/lib/aws/Aws/data/redshift/2012-12-01/api-2.json.php b/lib/aws/Aws/data/redshift/2012-12-01/api-2.json.php new file mode 100644 index 0000000..a9e9cc2 --- /dev/null +++ b/lib/aws/Aws/data/redshift/2012-12-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/redshift/2012-12-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2012-12-01', 'endpointPrefix' => 'redshift', 'protocol' => 'query', 'serviceFullName' => 'Amazon Redshift', 'serviceId' => 'Redshift', 'signatureVersion' => 'v4', 'uid' => 'redshift-2012-12-01', 'xmlNamespace' => 'http://redshift.amazonaws.com/doc/2012-12-01/', ], 'operations' => [ 'AcceptReservedNodeExchange' => [ 'name' => 'AcceptReservedNodeExchange', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptReservedNodeExchangeInputMessage', ], 'output' => [ 'shape' => 'AcceptReservedNodeExchangeOutputMessage', 'resultWrapper' => 'AcceptReservedNodeExchangeResult', ], 'errors' => [ [ 'shape' => 'ReservedNodeNotFoundFault', ], [ 'shape' => 'InvalidReservedNodeStateFault', ], [ 'shape' => 'ReservedNodeAlreadyMigratedFault', ], [ 'shape' => 'ReservedNodeOfferingNotFoundFault', ], [ 'shape' => 'UnsupportedOperationFault', ], [ 'shape' => 'DependentServiceUnavailableFault', ], [ 'shape' => 'ReservedNodeAlreadyExistsFault', ], ], ], 'AuthorizeClusterSecurityGroupIngress' => [ 'name' => 'AuthorizeClusterSecurityGroupIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AuthorizeClusterSecurityGroupIngressMessage', ], 'output' => [ 'shape' => 'AuthorizeClusterSecurityGroupIngressResult', 'resultWrapper' => 'AuthorizeClusterSecurityGroupIngressResult', ], 'errors' => [ [ 'shape' => 'ClusterSecurityGroupNotFoundFault', ], [ 'shape' => 'InvalidClusterSecurityGroupStateFault', ], [ 'shape' => 'AuthorizationAlreadyExistsFault', ], [ 'shape' => 'AuthorizationQuotaExceededFault', ], ], ], 'AuthorizeSnapshotAccess' => [ 'name' => 'AuthorizeSnapshotAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AuthorizeSnapshotAccessMessage', ], 'output' => [ 'shape' => 'AuthorizeSnapshotAccessResult', 'resultWrapper' => 'AuthorizeSnapshotAccessResult', ], 'errors' => [ [ 'shape' => 'ClusterSnapshotNotFoundFault', ], [ 'shape' => 'AuthorizationAlreadyExistsFault', ], [ 'shape' => 'AuthorizationQuotaExceededFault', ], [ 'shape' => 'DependentServiceRequestThrottlingFault', ], [ 'shape' => 'InvalidClusterSnapshotStateFault', ], [ 'shape' => 'LimitExceededFault', ], ], ], 'BatchDeleteClusterSnapshots' => [ 'name' => 'BatchDeleteClusterSnapshots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchDeleteClusterSnapshotsRequest', ], 'output' => [ 'shape' => 'BatchDeleteClusterSnapshotsResult', 'resultWrapper' => 'BatchDeleteClusterSnapshotsResult', ], 'errors' => [ [ 'shape' => 'BatchDeleteRequestSizeExceededFault', ], ], ], 'BatchModifyClusterSnapshots' => [ 'name' => 'BatchModifyClusterSnapshots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchModifyClusterSnapshotsMessage', ], 'output' => [ 'shape' => 'BatchModifyClusterSnapshotsOutputMessage', 'resultWrapper' => 'BatchModifyClusterSnapshotsResult', ], 'errors' => [ [ 'shape' => 'InvalidRetentionPeriodFault', ], [ 'shape' => 'BatchModifyClusterSnapshotsLimitExceededFault', ], ], ], 'CancelResize' => [ 'name' => 'CancelResize', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelResizeMessage', ], 'output' => [ 'shape' => 'ResizeProgressMessage', 'resultWrapper' => 'CancelResizeResult', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'ResizeNotFoundFault', ], [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'UnsupportedOperationFault', ], ], ], 'CopyClusterSnapshot' => [ 'name' => 'CopyClusterSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyClusterSnapshotMessage', ], 'output' => [ 'shape' => 'CopyClusterSnapshotResult', 'resultWrapper' => 'CopyClusterSnapshotResult', ], 'errors' => [ [ 'shape' => 'ClusterSnapshotAlreadyExistsFault', ], [ 'shape' => 'ClusterSnapshotNotFoundFault', ], [ 'shape' => 'InvalidClusterSnapshotStateFault', ], [ 'shape' => 'ClusterSnapshotQuotaExceededFault', ], [ 'shape' => 'InvalidRetentionPeriodFault', ], ], ], 'CreateCluster' => [ 'name' => 'CreateCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateClusterMessage', ], 'output' => [ 'shape' => 'CreateClusterResult', 'resultWrapper' => 'CreateClusterResult', ], 'errors' => [ [ 'shape' => 'ClusterAlreadyExistsFault', ], [ 'shape' => 'InsufficientClusterCapacityFault', ], [ 'shape' => 'ClusterParameterGroupNotFoundFault', ], [ 'shape' => 'ClusterSecurityGroupNotFoundFault', ], [ 'shape' => 'ClusterQuotaExceededFault', ], [ 'shape' => 'NumberOfNodesQuotaExceededFault', ], [ 'shape' => 'NumberOfNodesPerClusterLimitExceededFault', ], [ 'shape' => 'ClusterSubnetGroupNotFoundFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InvalidClusterSubnetGroupStateFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'UnauthorizedOperation', ], [ 'shape' => 'HsmClientCertificateNotFoundFault', ], [ 'shape' => 'HsmConfigurationNotFoundFault', ], [ 'shape' => 'InvalidElasticIpFault', ], [ 'shape' => 'TagLimitExceededFault', ], [ 'shape' => 'InvalidTagFault', ], [ 'shape' => 'LimitExceededFault', ], [ 'shape' => 'DependentServiceRequestThrottlingFault', ], [ 'shape' => 'InvalidClusterTrackFault', ], [ 'shape' => 'SnapshotScheduleNotFoundFault', ], [ 'shape' => 'InvalidRetentionPeriodFault', ], ], ], 'CreateClusterParameterGroup' => [ 'name' => 'CreateClusterParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateClusterParameterGroupMessage', ], 'output' => [ 'shape' => 'CreateClusterParameterGroupResult', 'resultWrapper' => 'CreateClusterParameterGroupResult', ], 'errors' => [ [ 'shape' => 'ClusterParameterGroupQuotaExceededFault', ], [ 'shape' => 'ClusterParameterGroupAlreadyExistsFault', ], [ 'shape' => 'TagLimitExceededFault', ], [ 'shape' => 'InvalidTagFault', ], ], ], 'CreateClusterSecurityGroup' => [ 'name' => 'CreateClusterSecurityGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateClusterSecurityGroupMessage', ], 'output' => [ 'shape' => 'CreateClusterSecurityGroupResult', 'resultWrapper' => 'CreateClusterSecurityGroupResult', ], 'errors' => [ [ 'shape' => 'ClusterSecurityGroupAlreadyExistsFault', ], [ 'shape' => 'ClusterSecurityGroupQuotaExceededFault', ], [ 'shape' => 'TagLimitExceededFault', ], [ 'shape' => 'InvalidTagFault', ], ], ], 'CreateClusterSnapshot' => [ 'name' => 'CreateClusterSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateClusterSnapshotMessage', ], 'output' => [ 'shape' => 'CreateClusterSnapshotResult', 'resultWrapper' => 'CreateClusterSnapshotResult', ], 'errors' => [ [ 'shape' => 'ClusterSnapshotAlreadyExistsFault', ], [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'ClusterSnapshotQuotaExceededFault', ], [ 'shape' => 'TagLimitExceededFault', ], [ 'shape' => 'InvalidTagFault', ], [ 'shape' => 'InvalidRetentionPeriodFault', ], ], ], 'CreateClusterSubnetGroup' => [ 'name' => 'CreateClusterSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateClusterSubnetGroupMessage', ], 'output' => [ 'shape' => 'CreateClusterSubnetGroupResult', 'resultWrapper' => 'CreateClusterSubnetGroupResult', ], 'errors' => [ [ 'shape' => 'ClusterSubnetGroupAlreadyExistsFault', ], [ 'shape' => 'ClusterSubnetGroupQuotaExceededFault', ], [ 'shape' => 'ClusterSubnetQuotaExceededFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'UnauthorizedOperation', ], [ 'shape' => 'TagLimitExceededFault', ], [ 'shape' => 'InvalidTagFault', ], [ 'shape' => 'DependentServiceRequestThrottlingFault', ], ], ], 'CreateEventSubscription' => [ 'name' => 'CreateEventSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateEventSubscriptionMessage', ], 'output' => [ 'shape' => 'CreateEventSubscriptionResult', 'resultWrapper' => 'CreateEventSubscriptionResult', ], 'errors' => [ [ 'shape' => 'EventSubscriptionQuotaExceededFault', ], [ 'shape' => 'SubscriptionAlreadyExistFault', ], [ 'shape' => 'SNSInvalidTopicFault', ], [ 'shape' => 'SNSNoAuthorizationFault', ], [ 'shape' => 'SNSTopicArnNotFoundFault', ], [ 'shape' => 'SubscriptionEventIdNotFoundFault', ], [ 'shape' => 'SubscriptionCategoryNotFoundFault', ], [ 'shape' => 'SubscriptionSeverityNotFoundFault', ], [ 'shape' => 'SourceNotFoundFault', ], [ 'shape' => 'TagLimitExceededFault', ], [ 'shape' => 'InvalidTagFault', ], ], ], 'CreateHsmClientCertificate' => [ 'name' => 'CreateHsmClientCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateHsmClientCertificateMessage', ], 'output' => [ 'shape' => 'CreateHsmClientCertificateResult', 'resultWrapper' => 'CreateHsmClientCertificateResult', ], 'errors' => [ [ 'shape' => 'HsmClientCertificateAlreadyExistsFault', ], [ 'shape' => 'HsmClientCertificateQuotaExceededFault', ], [ 'shape' => 'TagLimitExceededFault', ], [ 'shape' => 'InvalidTagFault', ], ], ], 'CreateHsmConfiguration' => [ 'name' => 'CreateHsmConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateHsmConfigurationMessage', ], 'output' => [ 'shape' => 'CreateHsmConfigurationResult', 'resultWrapper' => 'CreateHsmConfigurationResult', ], 'errors' => [ [ 'shape' => 'HsmConfigurationAlreadyExistsFault', ], [ 'shape' => 'HsmConfigurationQuotaExceededFault', ], [ 'shape' => 'TagLimitExceededFault', ], [ 'shape' => 'InvalidTagFault', ], ], ], 'CreateSnapshotCopyGrant' => [ 'name' => 'CreateSnapshotCopyGrant', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSnapshotCopyGrantMessage', ], 'output' => [ 'shape' => 'CreateSnapshotCopyGrantResult', 'resultWrapper' => 'CreateSnapshotCopyGrantResult', ], 'errors' => [ [ 'shape' => 'SnapshotCopyGrantAlreadyExistsFault', ], [ 'shape' => 'SnapshotCopyGrantQuotaExceededFault', ], [ 'shape' => 'LimitExceededFault', ], [ 'shape' => 'TagLimitExceededFault', ], [ 'shape' => 'InvalidTagFault', ], [ 'shape' => 'DependentServiceRequestThrottlingFault', ], ], ], 'CreateSnapshotSchedule' => [ 'name' => 'CreateSnapshotSchedule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSnapshotScheduleMessage', ], 'output' => [ 'shape' => 'SnapshotSchedule', 'resultWrapper' => 'CreateSnapshotScheduleResult', ], 'errors' => [ [ 'shape' => 'SnapshotScheduleAlreadyExistsFault', ], [ 'shape' => 'InvalidScheduleFault', ], [ 'shape' => 'SnapshotScheduleQuotaExceededFault', ], [ 'shape' => 'TagLimitExceededFault', ], [ 'shape' => 'ScheduleDefinitionTypeUnsupportedFault', ], ], ], 'CreateTags' => [ 'name' => 'CreateTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTagsMessage', ], 'errors' => [ [ 'shape' => 'TagLimitExceededFault', ], [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'InvalidTagFault', ], ], ], 'DeleteCluster' => [ 'name' => 'DeleteCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteClusterMessage', ], 'output' => [ 'shape' => 'DeleteClusterResult', 'resultWrapper' => 'DeleteClusterResult', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'ClusterSnapshotAlreadyExistsFault', ], [ 'shape' => 'ClusterSnapshotQuotaExceededFault', ], [ 'shape' => 'InvalidRetentionPeriodFault', ], ], ], 'DeleteClusterParameterGroup' => [ 'name' => 'DeleteClusterParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteClusterParameterGroupMessage', ], 'errors' => [ [ 'shape' => 'InvalidClusterParameterGroupStateFault', ], [ 'shape' => 'ClusterParameterGroupNotFoundFault', ], ], ], 'DeleteClusterSecurityGroup' => [ 'name' => 'DeleteClusterSecurityGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteClusterSecurityGroupMessage', ], 'errors' => [ [ 'shape' => 'InvalidClusterSecurityGroupStateFault', ], [ 'shape' => 'ClusterSecurityGroupNotFoundFault', ], ], ], 'DeleteClusterSnapshot' => [ 'name' => 'DeleteClusterSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteClusterSnapshotMessage', ], 'output' => [ 'shape' => 'DeleteClusterSnapshotResult', 'resultWrapper' => 'DeleteClusterSnapshotResult', ], 'errors' => [ [ 'shape' => 'InvalidClusterSnapshotStateFault', ], [ 'shape' => 'ClusterSnapshotNotFoundFault', ], ], ], 'DeleteClusterSubnetGroup' => [ 'name' => 'DeleteClusterSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteClusterSubnetGroupMessage', ], 'errors' => [ [ 'shape' => 'InvalidClusterSubnetGroupStateFault', ], [ 'shape' => 'InvalidClusterSubnetStateFault', ], [ 'shape' => 'ClusterSubnetGroupNotFoundFault', ], ], ], 'DeleteEventSubscription' => [ 'name' => 'DeleteEventSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteEventSubscriptionMessage', ], 'errors' => [ [ 'shape' => 'SubscriptionNotFoundFault', ], [ 'shape' => 'InvalidSubscriptionStateFault', ], ], ], 'DeleteHsmClientCertificate' => [ 'name' => 'DeleteHsmClientCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteHsmClientCertificateMessage', ], 'errors' => [ [ 'shape' => 'InvalidHsmClientCertificateStateFault', ], [ 'shape' => 'HsmClientCertificateNotFoundFault', ], ], ], 'DeleteHsmConfiguration' => [ 'name' => 'DeleteHsmConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteHsmConfigurationMessage', ], 'errors' => [ [ 'shape' => 'InvalidHsmConfigurationStateFault', ], [ 'shape' => 'HsmConfigurationNotFoundFault', ], ], ], 'DeleteSnapshotCopyGrant' => [ 'name' => 'DeleteSnapshotCopyGrant', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSnapshotCopyGrantMessage', ], 'errors' => [ [ 'shape' => 'InvalidSnapshotCopyGrantStateFault', ], [ 'shape' => 'SnapshotCopyGrantNotFoundFault', ], ], ], 'DeleteSnapshotSchedule' => [ 'name' => 'DeleteSnapshotSchedule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSnapshotScheduleMessage', ], 'errors' => [ [ 'shape' => 'InvalidClusterSnapshotScheduleStateFault', ], [ 'shape' => 'SnapshotScheduleNotFoundFault', ], ], ], 'DeleteTags' => [ 'name' => 'DeleteTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTagsMessage', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'InvalidTagFault', ], ], ], 'DescribeAccountAttributes' => [ 'name' => 'DescribeAccountAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAccountAttributesMessage', ], 'output' => [ 'shape' => 'AccountAttributeList', 'resultWrapper' => 'DescribeAccountAttributesResult', ], ], 'DescribeClusterDbRevisions' => [ 'name' => 'DescribeClusterDbRevisions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClusterDbRevisionsMessage', ], 'output' => [ 'shape' => 'ClusterDbRevisionsMessage', 'resultWrapper' => 'DescribeClusterDbRevisionsResult', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'InvalidClusterStateFault', ], ], ], 'DescribeClusterParameterGroups' => [ 'name' => 'DescribeClusterParameterGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClusterParameterGroupsMessage', ], 'output' => [ 'shape' => 'ClusterParameterGroupsMessage', 'resultWrapper' => 'DescribeClusterParameterGroupsResult', ], 'errors' => [ [ 'shape' => 'ClusterParameterGroupNotFoundFault', ], [ 'shape' => 'InvalidTagFault', ], ], ], 'DescribeClusterParameters' => [ 'name' => 'DescribeClusterParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClusterParametersMessage', ], 'output' => [ 'shape' => 'ClusterParameterGroupDetails', 'resultWrapper' => 'DescribeClusterParametersResult', ], 'errors' => [ [ 'shape' => 'ClusterParameterGroupNotFoundFault', ], ], ], 'DescribeClusterSecurityGroups' => [ 'name' => 'DescribeClusterSecurityGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClusterSecurityGroupsMessage', ], 'output' => [ 'shape' => 'ClusterSecurityGroupMessage', 'resultWrapper' => 'DescribeClusterSecurityGroupsResult', ], 'errors' => [ [ 'shape' => 'ClusterSecurityGroupNotFoundFault', ], [ 'shape' => 'InvalidTagFault', ], ], ], 'DescribeClusterSnapshots' => [ 'name' => 'DescribeClusterSnapshots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClusterSnapshotsMessage', ], 'output' => [ 'shape' => 'SnapshotMessage', 'resultWrapper' => 'DescribeClusterSnapshotsResult', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'ClusterSnapshotNotFoundFault', ], [ 'shape' => 'InvalidTagFault', ], ], ], 'DescribeClusterSubnetGroups' => [ 'name' => 'DescribeClusterSubnetGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClusterSubnetGroupsMessage', ], 'output' => [ 'shape' => 'ClusterSubnetGroupMessage', 'resultWrapper' => 'DescribeClusterSubnetGroupsResult', ], 'errors' => [ [ 'shape' => 'ClusterSubnetGroupNotFoundFault', ], [ 'shape' => 'InvalidTagFault', ], ], ], 'DescribeClusterTracks' => [ 'name' => 'DescribeClusterTracks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClusterTracksMessage', ], 'output' => [ 'shape' => 'TrackListMessage', 'resultWrapper' => 'DescribeClusterTracksResult', ], 'errors' => [ [ 'shape' => 'InvalidClusterTrackFault', ], [ 'shape' => 'UnauthorizedOperation', ], ], ], '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', ], [ 'shape' => 'InvalidTagFault', ], ], ], 'DescribeDefaultClusterParameters' => [ 'name' => 'DescribeDefaultClusterParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDefaultClusterParametersMessage', ], 'output' => [ 'shape' => 'DescribeDefaultClusterParametersResult', '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', ], [ 'shape' => 'InvalidTagFault', ], ], ], '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', ], [ 'shape' => 'InvalidTagFault', ], ], ], 'DescribeHsmConfigurations' => [ 'name' => 'DescribeHsmConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHsmConfigurationsMessage', ], 'output' => [ 'shape' => 'HsmConfigurationMessage', 'resultWrapper' => 'DescribeHsmConfigurationsResult', ], 'errors' => [ [ 'shape' => 'HsmConfigurationNotFoundFault', ], [ 'shape' => 'InvalidTagFault', ], ], ], 'DescribeLoggingStatus' => [ 'name' => 'DescribeLoggingStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLoggingStatusMessage', ], 'output' => [ 'shape' => 'LoggingStatus', 'resultWrapper' => 'DescribeLoggingStatusResult', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], ], ], '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', ], [ 'shape' => 'UnsupportedOperationFault', ], [ 'shape' => 'DependentServiceUnavailableFault', ], ], ], 'DescribeReservedNodes' => [ 'name' => 'DescribeReservedNodes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReservedNodesMessage', ], 'output' => [ 'shape' => 'ReservedNodesMessage', 'resultWrapper' => 'DescribeReservedNodesResult', ], 'errors' => [ [ 'shape' => 'ReservedNodeNotFoundFault', ], [ 'shape' => 'DependentServiceUnavailableFault', ], ], ], 'DescribeResize' => [ 'name' => 'DescribeResize', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeResizeMessage', ], 'output' => [ 'shape' => 'ResizeProgressMessage', 'resultWrapper' => 'DescribeResizeResult', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'ResizeNotFoundFault', ], ], ], 'DescribeSnapshotCopyGrants' => [ 'name' => 'DescribeSnapshotCopyGrants', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSnapshotCopyGrantsMessage', ], 'output' => [ 'shape' => 'SnapshotCopyGrantMessage', 'resultWrapper' => 'DescribeSnapshotCopyGrantsResult', ], 'errors' => [ [ 'shape' => 'SnapshotCopyGrantNotFoundFault', ], [ 'shape' => 'InvalidTagFault', ], ], ], 'DescribeSnapshotSchedules' => [ 'name' => 'DescribeSnapshotSchedules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSnapshotSchedulesMessage', ], 'output' => [ 'shape' => 'DescribeSnapshotSchedulesOutputMessage', 'resultWrapper' => 'DescribeSnapshotSchedulesResult', ], ], 'DescribeStorage' => [ 'name' => 'DescribeStorage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'output' => [ 'shape' => 'CustomerStorageMessage', 'resultWrapper' => 'DescribeStorageResult', ], ], 'DescribeTableRestoreStatus' => [ 'name' => 'DescribeTableRestoreStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTableRestoreStatusMessage', ], 'output' => [ 'shape' => 'TableRestoreStatusMessage', 'resultWrapper' => 'DescribeTableRestoreStatusResult', ], 'errors' => [ [ 'shape' => 'TableRestoreNotFoundFault', ], [ 'shape' => 'ClusterNotFoundFault', ], ], ], 'DescribeTags' => [ 'name' => 'DescribeTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTagsMessage', ], 'output' => [ 'shape' => 'TaggedResourceListMessage', 'resultWrapper' => 'DescribeTagsResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundFault', ], [ 'shape' => 'InvalidTagFault', ], ], ], 'DisableLogging' => [ 'name' => 'DisableLogging', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableLoggingMessage', ], 'output' => [ 'shape' => 'LoggingStatus', 'resultWrapper' => 'DisableLoggingResult', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], ], ], 'DisableSnapshotCopy' => [ 'name' => 'DisableSnapshotCopy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableSnapshotCopyMessage', ], 'output' => [ 'shape' => 'DisableSnapshotCopyResult', 'resultWrapper' => 'DisableSnapshotCopyResult', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'SnapshotCopyAlreadyDisabledFault', ], [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'UnauthorizedOperation', ], ], ], 'EnableLogging' => [ 'name' => 'EnableLogging', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableLoggingMessage', ], 'output' => [ 'shape' => 'LoggingStatus', 'resultWrapper' => 'EnableLoggingResult', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'BucketNotFoundFault', ], [ 'shape' => 'InsufficientS3BucketPolicyFault', ], [ 'shape' => 'InvalidS3KeyPrefixFault', ], [ 'shape' => 'InvalidS3BucketNameFault', ], ], ], 'EnableSnapshotCopy' => [ 'name' => 'EnableSnapshotCopy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableSnapshotCopyMessage', ], 'output' => [ 'shape' => 'EnableSnapshotCopyResult', 'resultWrapper' => 'EnableSnapshotCopyResult', ], 'errors' => [ [ 'shape' => 'IncompatibleOrderableOptions', ], [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'CopyToRegionDisabledFault', ], [ 'shape' => 'SnapshotCopyAlreadyEnabledFault', ], [ 'shape' => 'UnknownSnapshotCopyRegionFault', ], [ 'shape' => 'UnauthorizedOperation', ], [ 'shape' => 'SnapshotCopyGrantNotFoundFault', ], [ 'shape' => 'LimitExceededFault', ], [ 'shape' => 'DependentServiceRequestThrottlingFault', ], [ 'shape' => 'InvalidRetentionPeriodFault', ], ], ], 'GetClusterCredentials' => [ 'name' => 'GetClusterCredentials', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetClusterCredentialsMessage', ], 'output' => [ 'shape' => 'ClusterCredentials', 'resultWrapper' => 'GetClusterCredentialsResult', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'UnsupportedOperationFault', ], ], ], 'GetReservedNodeExchangeOfferings' => [ 'name' => 'GetReservedNodeExchangeOfferings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetReservedNodeExchangeOfferingsInputMessage', ], 'output' => [ 'shape' => 'GetReservedNodeExchangeOfferingsOutputMessage', 'resultWrapper' => 'GetReservedNodeExchangeOfferingsResult', ], 'errors' => [ [ 'shape' => 'ReservedNodeNotFoundFault', ], [ 'shape' => 'InvalidReservedNodeStateFault', ], [ 'shape' => 'ReservedNodeAlreadyMigratedFault', ], [ 'shape' => 'ReservedNodeOfferingNotFoundFault', ], [ 'shape' => 'UnsupportedOperationFault', ], [ 'shape' => 'DependentServiceUnavailableFault', ], ], ], 'ModifyCluster' => [ 'name' => 'ModifyCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyClusterMessage', ], 'output' => [ 'shape' => 'ModifyClusterResult', 'resultWrapper' => 'ModifyClusterResult', ], 'errors' => [ [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'InvalidClusterSecurityGroupStateFault', ], [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'NumberOfNodesQuotaExceededFault', ], [ 'shape' => 'NumberOfNodesPerClusterLimitExceededFault', ], [ 'shape' => 'ClusterSecurityGroupNotFoundFault', ], [ 'shape' => 'ClusterParameterGroupNotFoundFault', ], [ 'shape' => 'InsufficientClusterCapacityFault', ], [ 'shape' => 'UnsupportedOptionFault', ], [ 'shape' => 'UnauthorizedOperation', ], [ 'shape' => 'HsmClientCertificateNotFoundFault', ], [ 'shape' => 'HsmConfigurationNotFoundFault', ], [ 'shape' => 'ClusterAlreadyExistsFault', ], [ 'shape' => 'LimitExceededFault', ], [ 'shape' => 'DependentServiceRequestThrottlingFault', ], [ 'shape' => 'InvalidElasticIpFault', ], [ 'shape' => 'TableLimitExceededFault', ], [ 'shape' => 'InvalidClusterTrackFault', ], [ 'shape' => 'InvalidRetentionPeriodFault', ], ], ], 'ModifyClusterDbRevision' => [ 'name' => 'ModifyClusterDbRevision', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyClusterDbRevisionMessage', ], 'output' => [ 'shape' => 'ModifyClusterDbRevisionResult', 'resultWrapper' => 'ModifyClusterDbRevisionResult', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'ClusterOnLatestRevisionFault', ], [ 'shape' => 'InvalidClusterStateFault', ], ], ], 'ModifyClusterIamRoles' => [ 'name' => 'ModifyClusterIamRoles', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyClusterIamRolesMessage', ], 'output' => [ 'shape' => 'ModifyClusterIamRolesResult', 'resultWrapper' => 'ModifyClusterIamRolesResult', ], 'errors' => [ [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'ClusterNotFoundFault', ], ], ], 'ModifyClusterMaintenance' => [ 'name' => 'ModifyClusterMaintenance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyClusterMaintenanceMessage', ], 'output' => [ 'shape' => 'ModifyClusterMaintenanceResult', 'resultWrapper' => 'ModifyClusterMaintenanceResult', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], ], ], 'ModifyClusterParameterGroup' => [ 'name' => 'ModifyClusterParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyClusterParameterGroupMessage', ], 'output' => [ 'shape' => 'ClusterParameterGroupNameMessage', 'resultWrapper' => 'ModifyClusterParameterGroupResult', ], 'errors' => [ [ 'shape' => 'ClusterParameterGroupNotFoundFault', ], [ 'shape' => 'InvalidClusterParameterGroupStateFault', ], ], ], 'ModifyClusterSnapshot' => [ 'name' => 'ModifyClusterSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyClusterSnapshotMessage', ], 'output' => [ 'shape' => 'ModifyClusterSnapshotResult', 'resultWrapper' => 'ModifyClusterSnapshotResult', ], 'errors' => [ [ 'shape' => 'InvalidClusterSnapshotStateFault', ], [ 'shape' => 'ClusterSnapshotNotFoundFault', ], [ 'shape' => 'InvalidRetentionPeriodFault', ], ], ], 'ModifyClusterSnapshotSchedule' => [ 'name' => 'ModifyClusterSnapshotSchedule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyClusterSnapshotScheduleMessage', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'SnapshotScheduleNotFoundFault', ], [ 'shape' => 'InvalidClusterSnapshotScheduleStateFault', ], ], ], 'ModifyClusterSubnetGroup' => [ 'name' => 'ModifyClusterSubnetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyClusterSubnetGroupMessage', ], 'output' => [ 'shape' => 'ModifyClusterSubnetGroupResult', 'resultWrapper' => 'ModifyClusterSubnetGroupResult', ], 'errors' => [ [ 'shape' => 'ClusterSubnetGroupNotFoundFault', ], [ 'shape' => 'ClusterSubnetQuotaExceededFault', ], [ 'shape' => 'SubnetAlreadyInUse', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'UnauthorizedOperation', ], [ 'shape' => 'DependentServiceRequestThrottlingFault', ], ], ], 'ModifyEventSubscription' => [ 'name' => 'ModifyEventSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyEventSubscriptionMessage', ], 'output' => [ 'shape' => 'ModifyEventSubscriptionResult', 'resultWrapper' => 'ModifyEventSubscriptionResult', ], 'errors' => [ [ 'shape' => 'SubscriptionNotFoundFault', ], [ 'shape' => 'SNSInvalidTopicFault', ], [ 'shape' => 'SNSNoAuthorizationFault', ], [ 'shape' => 'SNSTopicArnNotFoundFault', ], [ 'shape' => 'SubscriptionEventIdNotFoundFault', ], [ 'shape' => 'SubscriptionCategoryNotFoundFault', ], [ 'shape' => 'SubscriptionSeverityNotFoundFault', ], [ 'shape' => 'SourceNotFoundFault', ], [ 'shape' => 'InvalidSubscriptionStateFault', ], ], ], 'ModifySnapshotCopyRetentionPeriod' => [ 'name' => 'ModifySnapshotCopyRetentionPeriod', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifySnapshotCopyRetentionPeriodMessage', ], 'output' => [ 'shape' => 'ModifySnapshotCopyRetentionPeriodResult', 'resultWrapper' => 'ModifySnapshotCopyRetentionPeriodResult', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'SnapshotCopyDisabledFault', ], [ 'shape' => 'UnauthorizedOperation', ], [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'InvalidRetentionPeriodFault', ], ], ], 'ModifySnapshotSchedule' => [ 'name' => 'ModifySnapshotSchedule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifySnapshotScheduleMessage', ], 'output' => [ 'shape' => 'SnapshotSchedule', 'resultWrapper' => 'ModifySnapshotScheduleResult', ], 'errors' => [ [ 'shape' => 'InvalidScheduleFault', ], [ 'shape' => 'SnapshotScheduleNotFoundFault', ], [ 'shape' => 'SnapshotScheduleUpdateInProgressFault', ], ], ], 'PurchaseReservedNodeOffering' => [ 'name' => 'PurchaseReservedNodeOffering', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseReservedNodeOfferingMessage', ], 'output' => [ 'shape' => 'PurchaseReservedNodeOfferingResult', 'resultWrapper' => 'PurchaseReservedNodeOfferingResult', ], 'errors' => [ [ 'shape' => 'ReservedNodeOfferingNotFoundFault', ], [ 'shape' => 'ReservedNodeAlreadyExistsFault', ], [ 'shape' => 'ReservedNodeQuotaExceededFault', ], [ 'shape' => 'UnsupportedOperationFault', ], ], ], 'RebootCluster' => [ 'name' => 'RebootCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RebootClusterMessage', ], 'output' => [ 'shape' => 'RebootClusterResult', 'resultWrapper' => 'RebootClusterResult', ], 'errors' => [ [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'ClusterNotFoundFault', ], ], ], 'ResetClusterParameterGroup' => [ 'name' => 'ResetClusterParameterGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetClusterParameterGroupMessage', ], 'output' => [ 'shape' => 'ClusterParameterGroupNameMessage', 'resultWrapper' => 'ResetClusterParameterGroupResult', ], 'errors' => [ [ 'shape' => 'InvalidClusterParameterGroupStateFault', ], [ 'shape' => 'ClusterParameterGroupNotFoundFault', ], ], ], 'ResizeCluster' => [ 'name' => 'ResizeCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResizeClusterMessage', ], 'output' => [ 'shape' => 'ResizeClusterResult', 'resultWrapper' => 'ResizeClusterResult', ], 'errors' => [ [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'NumberOfNodesQuotaExceededFault', ], [ 'shape' => 'NumberOfNodesPerClusterLimitExceededFault', ], [ 'shape' => 'InsufficientClusterCapacityFault', ], [ 'shape' => 'UnsupportedOptionFault', ], [ 'shape' => 'UnsupportedOperationFault', ], [ 'shape' => 'UnauthorizedOperation', ], [ 'shape' => 'LimitExceededFault', ], ], ], 'RestoreFromClusterSnapshot' => [ 'name' => 'RestoreFromClusterSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreFromClusterSnapshotMessage', ], 'output' => [ 'shape' => 'RestoreFromClusterSnapshotResult', 'resultWrapper' => 'RestoreFromClusterSnapshotResult', ], 'errors' => [ [ 'shape' => 'AccessToSnapshotDeniedFault', ], [ 'shape' => 'ClusterAlreadyExistsFault', ], [ 'shape' => 'ClusterSnapshotNotFoundFault', ], [ 'shape' => 'ClusterQuotaExceededFault', ], [ 'shape' => 'InsufficientClusterCapacityFault', ], [ 'shape' => 'InvalidClusterSnapshotStateFault', ], [ 'shape' => 'InvalidRestoreFault', ], [ 'shape' => 'NumberOfNodesQuotaExceededFault', ], [ 'shape' => 'NumberOfNodesPerClusterLimitExceededFault', ], [ 'shape' => 'InvalidVPCNetworkStateFault', ], [ 'shape' => 'InvalidClusterSubnetGroupStateFault', ], [ 'shape' => 'InvalidSubnet', ], [ 'shape' => 'ClusterSubnetGroupNotFoundFault', ], [ 'shape' => 'UnauthorizedOperation', ], [ 'shape' => 'HsmClientCertificateNotFoundFault', ], [ 'shape' => 'HsmConfigurationNotFoundFault', ], [ 'shape' => 'InvalidElasticIpFault', ], [ 'shape' => 'ClusterParameterGroupNotFoundFault', ], [ 'shape' => 'ClusterSecurityGroupNotFoundFault', ], [ 'shape' => 'LimitExceededFault', ], [ 'shape' => 'DependentServiceRequestThrottlingFault', ], [ 'shape' => 'InvalidClusterTrackFault', ], [ 'shape' => 'SnapshotScheduleNotFoundFault', ], ], ], 'RestoreTableFromClusterSnapshot' => [ 'name' => 'RestoreTableFromClusterSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreTableFromClusterSnapshotMessage', ], 'output' => [ 'shape' => 'RestoreTableFromClusterSnapshotResult', 'resultWrapper' => 'RestoreTableFromClusterSnapshotResult', ], 'errors' => [ [ 'shape' => 'ClusterSnapshotNotFoundFault', ], [ 'shape' => 'InProgressTableRestoreQuotaExceededFault', ], [ 'shape' => 'InvalidClusterSnapshotStateFault', ], [ 'shape' => 'InvalidTableRestoreArgumentFault', ], [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'UnsupportedOperationFault', ], ], ], 'RevokeClusterSecurityGroupIngress' => [ 'name' => 'RevokeClusterSecurityGroupIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RevokeClusterSecurityGroupIngressMessage', ], 'output' => [ 'shape' => 'RevokeClusterSecurityGroupIngressResult', 'resultWrapper' => 'RevokeClusterSecurityGroupIngressResult', ], 'errors' => [ [ 'shape' => 'ClusterSecurityGroupNotFoundFault', ], [ 'shape' => 'AuthorizationNotFoundFault', ], [ 'shape' => 'InvalidClusterSecurityGroupStateFault', ], ], ], 'RevokeSnapshotAccess' => [ 'name' => 'RevokeSnapshotAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RevokeSnapshotAccessMessage', ], 'output' => [ 'shape' => 'RevokeSnapshotAccessResult', 'resultWrapper' => 'RevokeSnapshotAccessResult', ], 'errors' => [ [ 'shape' => 'AccessToSnapshotDeniedFault', ], [ 'shape' => 'AuthorizationNotFoundFault', ], [ 'shape' => 'ClusterSnapshotNotFoundFault', ], ], ], 'RotateEncryptionKey' => [ 'name' => 'RotateEncryptionKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RotateEncryptionKeyMessage', ], 'output' => [ 'shape' => 'RotateEncryptionKeyResult', 'resultWrapper' => 'RotateEncryptionKeyResult', ], 'errors' => [ [ 'shape' => 'ClusterNotFoundFault', ], [ 'shape' => 'InvalidClusterStateFault', ], [ 'shape' => 'DependentServiceRequestThrottlingFault', ], ], ], ], 'shapes' => [ 'AcceptReservedNodeExchangeInputMessage' => [ 'type' => 'structure', 'required' => [ 'ReservedNodeId', 'TargetReservedNodeOfferingId', ], 'members' => [ 'ReservedNodeId' => [ 'shape' => 'String', ], 'TargetReservedNodeOfferingId' => [ 'shape' => 'String', ], ], ], 'AcceptReservedNodeExchangeOutputMessage' => [ 'type' => 'structure', 'members' => [ 'ExchangedReservedNode' => [ 'shape' => 'ReservedNode', ], ], ], 'AccessToSnapshotDeniedFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'AccessToSnapshotDenied', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'AccountAttribute' => [ 'type' => 'structure', 'members' => [ 'AttributeName' => [ 'shape' => 'String', ], 'AttributeValues' => [ 'shape' => 'AttributeValueList', ], ], ], 'AccountAttributeList' => [ 'type' => 'structure', 'members' => [ 'AccountAttributes' => [ 'shape' => 'AttributeList', ], ], ], 'AccountWithRestoreAccess' => [ 'type' => 'structure', 'members' => [ 'AccountId' => [ 'shape' => 'String', ], 'AccountAlias' => [ 'shape' => 'String', ], ], ], 'AccountsWithRestoreAccessList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountWithRestoreAccess', 'locationName' => 'AccountWithRestoreAccess', ], ], 'AssociatedClusterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClusterAssociatedToSchedule', 'locationName' => 'ClusterAssociatedToSchedule', ], ], 'AttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountAttribute', 'locationName' => 'AccountAttribute', ], ], 'AttributeNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'AttributeName', ], ], 'AttributeValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeValueTarget', 'locationName' => 'AttributeValueTarget', ], ], 'AttributeValueTarget' => [ 'type' => 'structure', 'members' => [ 'AttributeValue' => [ '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, ], 'AuthorizeClusterSecurityGroupIngressMessage' => [ 'type' => 'structure', 'required' => [ 'ClusterSecurityGroupName', ], 'members' => [ 'ClusterSecurityGroupName' => [ 'shape' => 'String', ], 'CIDRIP' => [ 'shape' => 'String', ], 'EC2SecurityGroupName' => [ 'shape' => 'String', ], 'EC2SecurityGroupOwnerId' => [ 'shape' => 'String', ], ], ], 'AuthorizeClusterSecurityGroupIngressResult' => [ 'type' => 'structure', 'members' => [ 'ClusterSecurityGroup' => [ 'shape' => 'ClusterSecurityGroup', ], ], ], 'AuthorizeSnapshotAccessMessage' => [ 'type' => 'structure', 'required' => [ 'SnapshotIdentifier', 'AccountWithRestoreAccess', ], 'members' => [ 'SnapshotIdentifier' => [ 'shape' => 'String', ], 'SnapshotClusterIdentifier' => [ 'shape' => 'String', ], 'AccountWithRestoreAccess' => [ 'shape' => 'String', ], ], ], 'AuthorizeSnapshotAccessResult' => [ 'type' => 'structure', 'members' => [ 'Snapshot' => [ 'shape' => 'Snapshot', ], ], ], 'AvailabilityZone' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'SupportedPlatforms' => [ 'shape' => 'SupportedPlatformsList', ], ], 'wrapper' => true, ], 'AvailabilityZoneList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZone', 'locationName' => 'AvailabilityZone', ], ], 'BatchDeleteClusterSnapshotsRequest' => [ 'type' => 'structure', 'required' => [ 'Identifiers', ], 'members' => [ 'Identifiers' => [ 'shape' => 'DeleteClusterSnapshotMessageList', ], ], ], 'BatchDeleteClusterSnapshotsResult' => [ 'type' => 'structure', 'members' => [ 'Resources' => [ 'shape' => 'SnapshotIdentifierList', ], 'Errors' => [ 'shape' => 'BatchSnapshotOperationErrorList', ], ], ], 'BatchDeleteRequestSizeExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'BatchDeleteRequestSizeExceeded', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'BatchModifyClusterSnapshotsLimitExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'BatchModifyClusterSnapshotsLimitExceededFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'BatchModifyClusterSnapshotsMessage' => [ 'type' => 'structure', 'required' => [ 'SnapshotIdentifierList', ], 'members' => [ 'SnapshotIdentifierList' => [ 'shape' => 'SnapshotIdentifierList', ], 'ManualSnapshotRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'Force' => [ 'shape' => 'Boolean', ], ], ], 'BatchModifyClusterSnapshotsOutputMessage' => [ 'type' => 'structure', 'members' => [ 'Resources' => [ 'shape' => 'SnapshotIdentifierList', ], 'Errors' => [ 'shape' => 'BatchSnapshotOperationErrors', ], ], ], 'BatchSnapshotOperationErrorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SnapshotErrorMessage', 'locationName' => 'SnapshotErrorMessage', ], ], 'BatchSnapshotOperationErrors' => [ 'type' => 'list', 'member' => [ 'shape' => 'SnapshotErrorMessage', 'locationName' => 'SnapshotErrorMessage', ], ], 'Boolean' => [ 'type' => 'boolean', ], 'BooleanOptional' => [ 'type' => 'boolean', ], 'BucketNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'BucketNotFoundFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'CancelResizeMessage' => [ 'type' => 'structure', 'required' => [ 'ClusterIdentifier', ], 'members' => [ 'ClusterIdentifier' => [ 'shape' => 'String', ], ], ], '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', ], 'ManualSnapshotRetentionPeriod' => [ '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', ], 'DataTransferProgress' => [ 'shape' => 'DataTransferProgress', ], 'HsmStatus' => [ 'shape' => 'HsmStatus', ], 'ClusterSnapshotCopyStatus' => [ 'shape' => 'ClusterSnapshotCopyStatus', ], 'ClusterPublicKey' => [ 'shape' => 'String', ], 'ClusterNodes' => [ 'shape' => 'ClusterNodesList', ], 'ElasticIpStatus' => [ 'shape' => 'ElasticIpStatus', ], 'ClusterRevisionNumber' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'EnhancedVpcRouting' => [ 'shape' => 'Boolean', ], 'IamRoles' => [ 'shape' => 'ClusterIamRoleList', ], 'PendingActions' => [ 'shape' => 'PendingActionsList', ], 'MaintenanceTrackName' => [ 'shape' => 'String', ], 'ElasticResizeNumberOfNodeOptions' => [ 'shape' => 'String', ], 'DeferredMaintenanceWindows' => [ 'shape' => 'DeferredMaintenanceWindowsList', ], 'SnapshotScheduleIdentifier' => [ 'shape' => 'String', ], 'SnapshotScheduleState' => [ 'shape' => 'ScheduleState', ], 'ResizeInfo' => [ 'shape' => 'ResizeInfo', ], ], 'wrapper' => true, ], 'ClusterAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'ClusterAlreadyExists', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ClusterAssociatedToSchedule' => [ 'type' => 'structure', 'members' => [ 'ClusterIdentifier' => [ 'shape' => 'String', ], 'ScheduleAssociationState' => [ 'shape' => 'ScheduleState', ], ], ], 'ClusterCredentials' => [ 'type' => 'structure', 'members' => [ 'DbUser' => [ 'shape' => 'String', ], 'DbPassword' => [ 'shape' => 'SensitiveString', ], 'Expiration' => [ 'shape' => 'TStamp', ], ], ], 'ClusterDbRevision' => [ 'type' => 'structure', 'members' => [ 'ClusterIdentifier' => [ 'shape' => 'String', ], 'CurrentDatabaseRevision' => [ 'shape' => 'String', ], 'DatabaseRevisionReleaseDate' => [ 'shape' => 'TStamp', ], 'RevisionTargets' => [ 'shape' => 'RevisionTargetsList', ], ], ], 'ClusterDbRevisionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClusterDbRevision', 'locationName' => 'ClusterDbRevision', ], ], 'ClusterDbRevisionsMessage' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'ClusterDbRevisions' => [ 'shape' => 'ClusterDbRevisionsList', ], ], ], 'ClusterIamRole' => [ 'type' => 'structure', 'members' => [ 'IamRoleArn' => [ 'shape' => 'String', ], 'ApplyStatus' => [ 'shape' => 'String', ], ], ], 'ClusterIamRoleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClusterIamRole', 'locationName' => 'ClusterIamRole', ], ], '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, ], 'ClusterOnLatestRevisionFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'ClusterOnLatestRevision', 'httpStatusCode' => 400, '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', ], 'ClusterParameterStatusList' => [ 'shape' => 'ClusterParameterStatusList', ], ], ], 'ClusterParameterGroupStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClusterParameterGroupStatus', 'locationName' => 'ClusterParameterGroup', ], ], 'ClusterParameterGroupsMessage' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'ParameterGroups' => [ 'shape' => 'ParameterGroupList', ], ], ], 'ClusterParameterStatus' => [ 'type' => 'structure', 'members' => [ 'ParameterName' => [ 'shape' => 'String', ], 'ParameterApplyStatus' => [ 'shape' => 'String', ], 'ParameterApplyErrorDescription' => [ 'shape' => 'String', ], ], ], 'ClusterParameterStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClusterParameterStatus', ], ], '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', ], 'ManualSnapshotRetentionPeriod' => [ 'shape' => 'Integer', ], 'SnapshotCopyGrantName' => [ 'shape' => 'String', ], ], ], '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', ], 'ManualSnapshotRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], ], ], 'CopyClusterSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'Snapshot' => [ 'shape' => 'Snapshot', ], ], ], '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', ], 'ManualSnapshotRetentionPeriod' => [ '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', ], 'EnhancedVpcRouting' => [ 'shape' => 'BooleanOptional', ], 'AdditionalInfo' => [ 'shape' => 'String', ], 'IamRoles' => [ 'shape' => 'IamRoleArnList', ], 'MaintenanceTrackName' => [ 'shape' => 'String', ], 'SnapshotScheduleIdentifier' => [ 'shape' => 'String', ], ], ], 'CreateClusterParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'ParameterGroupName', 'ParameterGroupFamily', 'Description', ], 'members' => [ 'ParameterGroupName' => [ 'shape' => 'String', ], 'ParameterGroupFamily' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateClusterParameterGroupResult' => [ 'type' => 'structure', 'members' => [ 'ClusterParameterGroup' => [ 'shape' => 'ClusterParameterGroup', ], ], ], 'CreateClusterResult' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], 'CreateClusterSecurityGroupMessage' => [ 'type' => 'structure', 'required' => [ 'ClusterSecurityGroupName', 'Description', ], 'members' => [ 'ClusterSecurityGroupName' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateClusterSecurityGroupResult' => [ 'type' => 'structure', 'members' => [ 'ClusterSecurityGroup' => [ 'shape' => 'ClusterSecurityGroup', ], ], ], 'CreateClusterSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'SnapshotIdentifier', 'ClusterIdentifier', ], 'members' => [ 'SnapshotIdentifier' => [ 'shape' => 'String', ], 'ClusterIdentifier' => [ 'shape' => 'String', ], 'ManualSnapshotRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateClusterSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'Snapshot' => [ 'shape' => 'Snapshot', ], ], ], 'CreateClusterSubnetGroupMessage' => [ 'type' => 'structure', 'required' => [ 'ClusterSubnetGroupName', 'Description', 'SubnetIds', ], 'members' => [ 'ClusterSubnetGroupName' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'SubnetIds' => [ 'shape' => 'SubnetIdentifierList', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateClusterSubnetGroupResult' => [ 'type' => 'structure', 'members' => [ 'ClusterSubnetGroup' => [ 'shape' => 'ClusterSubnetGroup', ], ], ], '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', ], ], ], 'CreateEventSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'EventSubscription' => [ 'shape' => 'EventSubscription', ], ], ], 'CreateHsmClientCertificateMessage' => [ 'type' => 'structure', 'required' => [ 'HsmClientCertificateIdentifier', ], 'members' => [ 'HsmClientCertificateIdentifier' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateHsmClientCertificateResult' => [ 'type' => 'structure', 'members' => [ 'HsmClientCertificate' => [ 'shape' => 'HsmClientCertificate', ], ], ], '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', ], ], ], 'CreateHsmConfigurationResult' => [ 'type' => 'structure', 'members' => [ 'HsmConfiguration' => [ 'shape' => 'HsmConfiguration', ], ], ], 'CreateSnapshotCopyGrantMessage' => [ 'type' => 'structure', 'required' => [ 'SnapshotCopyGrantName', ], 'members' => [ 'SnapshotCopyGrantName' => [ 'shape' => 'String', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateSnapshotCopyGrantResult' => [ 'type' => 'structure', 'members' => [ 'SnapshotCopyGrant' => [ 'shape' => 'SnapshotCopyGrant', ], ], ], 'CreateSnapshotScheduleMessage' => [ 'type' => 'structure', 'members' => [ 'ScheduleDefinitions' => [ 'shape' => 'ScheduleDefinitionList', ], 'ScheduleIdentifier' => [ 'shape' => 'String', ], 'ScheduleDescription' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], 'DryRun' => [ 'shape' => 'BooleanOptional', ], 'NextInvocations' => [ 'shape' => 'IntegerOptional', ], ], ], 'CreateTagsMessage' => [ 'type' => 'structure', 'required' => [ 'ResourceName', 'Tags', ], 'members' => [ 'ResourceName' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CustomerStorageMessage' => [ 'type' => 'structure', 'members' => [ 'TotalBackupSizeInMegaBytes' => [ 'shape' => 'Double', ], 'TotalProvisionedStorageInMegaBytes' => [ 'shape' => 'Double', ], ], ], 'DataTransferProgress' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'String', ], 'CurrentRateInMegaBytesPerSecond' => [ 'shape' => 'DoubleOptional', ], 'TotalDataInMegaBytes' => [ 'shape' => 'Long', ], 'DataTransferredInMegaBytes' => [ 'shape' => 'Long', ], 'EstimatedTimeToCompletionInSeconds' => [ 'shape' => 'LongOptional', ], 'ElapsedTimeInSeconds' => [ 'shape' => 'LongOptional', ], ], ], 'DbGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'DbGroup', ], ], 'DefaultClusterParameters' => [ 'type' => 'structure', 'members' => [ 'ParameterGroupFamily' => [ 'shape' => 'String', ], 'Marker' => [ 'shape' => 'String', ], 'Parameters' => [ 'shape' => 'ParametersList', ], ], 'wrapper' => true, ], 'DeferredMaintenanceWindow' => [ 'type' => 'structure', 'members' => [ 'DeferMaintenanceIdentifier' => [ 'shape' => 'String', ], 'DeferMaintenanceStartTime' => [ 'shape' => 'TStamp', ], 'DeferMaintenanceEndTime' => [ 'shape' => 'TStamp', ], ], ], 'DeferredMaintenanceWindowsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeferredMaintenanceWindow', 'locationName' => 'DeferredMaintenanceWindow', ], ], 'DeleteClusterMessage' => [ 'type' => 'structure', 'required' => [ 'ClusterIdentifier', ], 'members' => [ 'ClusterIdentifier' => [ 'shape' => 'String', ], 'SkipFinalClusterSnapshot' => [ 'shape' => 'Boolean', ], 'FinalClusterSnapshotIdentifier' => [ 'shape' => 'String', ], 'FinalClusterSnapshotRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], ], ], 'DeleteClusterParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'ParameterGroupName', ], 'members' => [ 'ParameterGroupName' => [ 'shape' => 'String', ], ], ], 'DeleteClusterResult' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], 'DeleteClusterSecurityGroupMessage' => [ 'type' => 'structure', 'required' => [ 'ClusterSecurityGroupName', ], 'members' => [ 'ClusterSecurityGroupName' => [ 'shape' => 'String', ], ], ], 'DeleteClusterSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'SnapshotIdentifier', ], 'members' => [ 'SnapshotIdentifier' => [ 'shape' => 'String', ], 'SnapshotClusterIdentifier' => [ 'shape' => 'String', ], ], ], 'DeleteClusterSnapshotMessageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeleteClusterSnapshotMessage', 'locationName' => 'DeleteClusterSnapshotMessage', ], ], 'DeleteClusterSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'Snapshot' => [ 'shape' => 'Snapshot', ], ], ], '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', ], ], ], 'DeleteSnapshotCopyGrantMessage' => [ 'type' => 'structure', 'required' => [ 'SnapshotCopyGrantName', ], 'members' => [ 'SnapshotCopyGrantName' => [ 'shape' => 'String', ], ], ], 'DeleteSnapshotScheduleMessage' => [ 'type' => 'structure', 'required' => [ 'ScheduleIdentifier', ], 'members' => [ 'ScheduleIdentifier' => [ 'shape' => 'String', ], ], ], 'DeleteTagsMessage' => [ 'type' => 'structure', 'required' => [ 'ResourceName', 'TagKeys', ], 'members' => [ 'ResourceName' => [ 'shape' => 'String', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'DependentServiceRequestThrottlingFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DependentServiceRequestThrottlingFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DependentServiceUnavailableFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'DependentServiceUnavailableFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DescribeAccountAttributesMessage' => [ 'type' => 'structure', 'members' => [ 'AttributeNames' => [ 'shape' => 'AttributeNameList', ], ], ], 'DescribeClusterDbRevisionsMessage' => [ 'type' => 'structure', 'members' => [ 'ClusterIdentifier' => [ 'shape' => 'String', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], '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', ], 'ClusterExists' => [ 'shape' => 'BooleanOptional', ], 'SortingEntities' => [ 'shape' => 'SnapshotSortingEntityList', ], ], ], 'DescribeClusterSubnetGroupsMessage' => [ 'type' => 'structure', 'members' => [ 'ClusterSubnetGroupName' => [ 'shape' => 'String', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], 'TagValues' => [ 'shape' => 'TagValueList', ], ], ], 'DescribeClusterTracksMessage' => [ 'type' => 'structure', 'members' => [ 'MaintenanceTrackName' => [ 'shape' => 'String', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], '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', ], ], ], 'DescribeDefaultClusterParametersResult' => [ 'type' => 'structure', 'members' => [ 'DefaultClusterParameters' => [ 'shape' => 'DefaultClusterParameters', ], ], ], 'DescribeEventCategoriesMessage' => [ 'type' => 'structure', 'members' => [ 'SourceType' => [ 'shape' => 'String', ], ], ], 'DescribeEventSubscriptionsMessage' => [ 'type' => 'structure', 'members' => [ 'SubscriptionName' => [ 'shape' => 'String', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], 'TagValues' => [ 'shape' => 'TagValueList', ], ], ], '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', ], ], ], 'DescribeSnapshotCopyGrantsMessage' => [ 'type' => 'structure', 'members' => [ 'SnapshotCopyGrantName' => [ 'shape' => 'String', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], 'TagValues' => [ 'shape' => 'TagValueList', ], ], ], 'DescribeSnapshotSchedulesMessage' => [ 'type' => 'structure', 'members' => [ 'ClusterIdentifier' => [ 'shape' => 'String', ], 'ScheduleIdentifier' => [ 'shape' => 'String', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], 'TagValues' => [ 'shape' => 'TagValueList', ], 'Marker' => [ 'shape' => 'String', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], ], ], 'DescribeSnapshotSchedulesOutputMessage' => [ 'type' => 'structure', 'members' => [ 'SnapshotSchedules' => [ 'shape' => 'SnapshotScheduleList', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'DescribeTableRestoreStatusMessage' => [ 'type' => 'structure', 'members' => [ 'ClusterIdentifier' => [ 'shape' => 'String', ], 'TableRestoreRequestId' => [ 'shape' => 'String', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ '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', ], ], ], 'DisableSnapshotCopyResult' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], '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', ], ], ], 'EligibleTracksToUpdateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UpdateTarget', 'locationName' => 'UpdateTarget', ], ], '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', ], 'SnapshotCopyGrantName' => [ 'shape' => 'String', ], 'ManualSnapshotRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], ], ], 'EnableSnapshotCopyResult' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], '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', ], ], ], 'GetClusterCredentialsMessage' => [ 'type' => 'structure', 'required' => [ 'DbUser', 'ClusterIdentifier', ], 'members' => [ 'DbUser' => [ 'shape' => 'String', ], 'DbName' => [ 'shape' => 'String', ], 'ClusterIdentifier' => [ 'shape' => 'String', ], 'DurationSeconds' => [ 'shape' => 'IntegerOptional', ], 'AutoCreate' => [ 'shape' => 'BooleanOptional', ], 'DbGroups' => [ 'shape' => 'DbGroupList', ], ], ], 'GetReservedNodeExchangeOfferingsInputMessage' => [ 'type' => 'structure', 'required' => [ 'ReservedNodeId', ], 'members' => [ 'ReservedNodeId' => [ 'shape' => 'String', ], 'MaxRecords' => [ 'shape' => 'IntegerOptional', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'GetReservedNodeExchangeOfferingsOutputMessage' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'ReservedNodeOfferings' => [ 'shape' => 'ReservedNodeOfferingList', ], ], ], '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', ], ], 'IamRoleArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'IamRoleArn', ], ], 'ImportTablesCompleted' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ImportTablesInProgress' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ImportTablesNotStarted' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'InProgressTableRestoreQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InProgressTableRestoreQuotaExceededFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], '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, ], 'InvalidClusterSnapshotScheduleStateFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidClusterSnapshotScheduleState', '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, ], 'InvalidClusterTrackFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidClusterTrack', '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, ], 'InvalidReservedNodeStateFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidReservedNodeState', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidRestoreFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidRestore', 'httpStatusCode' => 406, 'senderFault' => true, ], 'exception' => true, ], 'InvalidRetentionPeriodFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidRetentionPeriodFault', 'httpStatusCode' => 400, '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, ], 'InvalidScheduleFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidSchedule', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidSnapshotCopyGrantStateFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidSnapshotCopyGrantStateFault', '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, ], 'InvalidTableRestoreArgumentFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'InvalidTableRestoreArgument', '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, ], 'LimitExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'LimitExceededFault', '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', ], 'MaintenanceTrack' => [ 'type' => 'structure', 'members' => [ 'MaintenanceTrackName' => [ 'shape' => 'String', ], 'DatabaseVersion' => [ 'shape' => 'String', ], 'UpdateTargets' => [ 'shape' => 'EligibleTracksToUpdateList', ], ], ], 'ModifyClusterDbRevisionMessage' => [ 'type' => 'structure', 'required' => [ 'ClusterIdentifier', 'RevisionTarget', ], 'members' => [ 'ClusterIdentifier' => [ 'shape' => 'String', ], 'RevisionTarget' => [ 'shape' => 'String', ], ], ], 'ModifyClusterDbRevisionResult' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], 'ModifyClusterIamRolesMessage' => [ 'type' => 'structure', 'required' => [ 'ClusterIdentifier', ], 'members' => [ 'ClusterIdentifier' => [ 'shape' => 'String', ], 'AddIamRoles' => [ 'shape' => 'IamRoleArnList', ], 'RemoveIamRoles' => [ 'shape' => 'IamRoleArnList', ], ], ], 'ModifyClusterIamRolesResult' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], 'ModifyClusterMaintenanceMessage' => [ 'type' => 'structure', 'required' => [ 'ClusterIdentifier', ], 'members' => [ 'ClusterIdentifier' => [ 'shape' => 'String', ], 'DeferMaintenance' => [ 'shape' => 'BooleanOptional', ], 'DeferMaintenanceIdentifier' => [ 'shape' => 'String', ], 'DeferMaintenanceStartTime' => [ 'shape' => 'TStamp', ], 'DeferMaintenanceEndTime' => [ 'shape' => 'TStamp', ], 'DeferMaintenanceDuration' => [ 'shape' => 'IntegerOptional', ], ], ], 'ModifyClusterMaintenanceResult' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], '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', ], 'ManualSnapshotRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'PreferredMaintenanceWindow' => [ 'shape' => 'String', ], 'ClusterVersion' => [ 'shape' => 'String', ], 'AllowVersionUpgrade' => [ 'shape' => 'BooleanOptional', ], 'HsmClientCertificateIdentifier' => [ 'shape' => 'String', ], 'HsmConfigurationIdentifier' => [ 'shape' => 'String', ], 'NewClusterIdentifier' => [ 'shape' => 'String', ], 'PubliclyAccessible' => [ 'shape' => 'BooleanOptional', ], 'ElasticIp' => [ 'shape' => 'String', ], 'EnhancedVpcRouting' => [ 'shape' => 'BooleanOptional', ], 'MaintenanceTrackName' => [ 'shape' => 'String', ], 'Encrypted' => [ 'shape' => 'BooleanOptional', ], 'KmsKeyId' => [ 'shape' => 'String', ], ], ], 'ModifyClusterParameterGroupMessage' => [ 'type' => 'structure', 'required' => [ 'ParameterGroupName', 'Parameters', ], 'members' => [ 'ParameterGroupName' => [ 'shape' => 'String', ], 'Parameters' => [ 'shape' => 'ParametersList', ], ], ], 'ModifyClusterResult' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], 'ModifyClusterSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'SnapshotIdentifier', ], 'members' => [ 'SnapshotIdentifier' => [ 'shape' => 'String', ], 'ManualSnapshotRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'Force' => [ 'shape' => 'Boolean', ], ], ], 'ModifyClusterSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'Snapshot' => [ 'shape' => 'Snapshot', ], ], ], 'ModifyClusterSnapshotScheduleMessage' => [ 'type' => 'structure', 'required' => [ 'ClusterIdentifier', ], 'members' => [ 'ClusterIdentifier' => [ 'shape' => 'String', ], 'ScheduleIdentifier' => [ 'shape' => 'String', ], 'DisassociateSchedule' => [ 'shape' => 'BooleanOptional', ], ], ], 'ModifyClusterSubnetGroupMessage' => [ 'type' => 'structure', 'required' => [ 'ClusterSubnetGroupName', 'SubnetIds', ], 'members' => [ 'ClusterSubnetGroupName' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'SubnetIds' => [ 'shape' => 'SubnetIdentifierList', ], ], ], 'ModifyClusterSubnetGroupResult' => [ 'type' => 'structure', 'members' => [ 'ClusterSubnetGroup' => [ 'shape' => 'ClusterSubnetGroup', ], ], ], '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', ], ], ], 'ModifyEventSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'EventSubscription' => [ 'shape' => 'EventSubscription', ], ], ], 'ModifySnapshotCopyRetentionPeriodMessage' => [ 'type' => 'structure', 'required' => [ 'ClusterIdentifier', 'RetentionPeriod', ], 'members' => [ 'ClusterIdentifier' => [ 'shape' => 'String', ], 'RetentionPeriod' => [ 'shape' => 'Integer', ], 'Manual' => [ 'shape' => 'Boolean', ], ], ], 'ModifySnapshotCopyRetentionPeriodResult' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], 'ModifySnapshotScheduleMessage' => [ 'type' => 'structure', 'required' => [ 'ScheduleIdentifier', 'ScheduleDefinitions', ], 'members' => [ 'ScheduleIdentifier' => [ 'shape' => 'String', ], 'ScheduleDefinitions' => [ 'shape' => 'ScheduleDefinitionList', ], ], ], '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', ], 'ApplyType' => [ 'shape' => 'ParameterApplyType', ], 'IsModifiable' => [ 'shape' => 'Boolean', ], 'MinimumEngineVersion' => [ 'shape' => 'String', ], ], ], 'ParameterApplyType' => [ 'type' => 'string', 'enum' => [ 'static', 'dynamic', ], ], 'ParameterGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClusterParameterGroup', 'locationName' => 'ClusterParameterGroup', ], ], 'ParametersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Parameter', 'locationName' => 'Parameter', ], ], 'PendingActionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], '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', ], 'PubliclyAccessible' => [ 'shape' => 'BooleanOptional', ], 'EnhancedVpcRouting' => [ 'shape' => 'BooleanOptional', ], 'MaintenanceTrackName' => [ 'shape' => 'String', ], 'EncryptionType' => [ 'shape' => 'String', ], ], ], 'PurchaseReservedNodeOfferingMessage' => [ 'type' => 'structure', 'required' => [ 'ReservedNodeOfferingId', ], 'members' => [ 'ReservedNodeOfferingId' => [ 'shape' => 'String', ], 'NodeCount' => [ 'shape' => 'IntegerOptional', ], ], ], 'PurchaseReservedNodeOfferingResult' => [ 'type' => 'structure', 'members' => [ 'ReservedNode' => [ 'shape' => 'ReservedNode', ], ], ], 'RebootClusterMessage' => [ 'type' => 'structure', 'required' => [ 'ClusterIdentifier', ], 'members' => [ 'ClusterIdentifier' => [ 'shape' => 'String', ], ], ], 'RebootClusterResult' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], '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', ], 'ReservedNodeOfferingType' => [ 'shape' => 'ReservedNodeOfferingType', ], ], 'wrapper' => true, ], 'ReservedNodeAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'ReservedNodeAlreadyExists', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'ReservedNodeAlreadyMigratedFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'ReservedNodeAlreadyMigrated', 'httpStatusCode' => 400, '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', ], 'ReservedNodeOfferingType' => [ 'shape' => 'ReservedNodeOfferingType', ], ], 'wrapper' => true, ], 'ReservedNodeOfferingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedNodeOffering', 'locationName' => 'ReservedNodeOffering', ], ], 'ReservedNodeOfferingNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'ReservedNodeOfferingNotFound', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'ReservedNodeOfferingType' => [ 'type' => 'string', 'enum' => [ 'Regular', 'Upgradable', ], ], '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', ], ], ], 'ResizeClusterMessage' => [ 'type' => 'structure', 'required' => [ 'ClusterIdentifier', 'NumberOfNodes', ], 'members' => [ 'ClusterIdentifier' => [ 'shape' => 'String', ], 'ClusterType' => [ 'shape' => 'String', ], 'NodeType' => [ 'shape' => 'String', ], 'NumberOfNodes' => [ 'shape' => 'Integer', ], 'Classic' => [ 'shape' => 'BooleanOptional', ], ], ], 'ResizeClusterResult' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], 'ResizeInfo' => [ 'type' => 'structure', 'members' => [ 'ResizeType' => [ 'shape' => 'String', ], 'AllowCancelResize' => [ 'shape' => 'Boolean', ], ], ], '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', ], 'ResizeType' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], 'TargetEncryptionType' => [ 'shape' => 'String', ], ], ], 'ResourceNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'ResourceNotFoundFault', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'RestorableNodeTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'NodeType', ], ], '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', ], 'ManualSnapshotRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'NodeType' => [ 'shape' => 'String', ], 'EnhancedVpcRouting' => [ 'shape' => 'BooleanOptional', ], 'AdditionalInfo' => [ 'shape' => 'String', ], 'IamRoles' => [ 'shape' => 'IamRoleArnList', ], 'MaintenanceTrackName' => [ 'shape' => 'String', ], 'SnapshotScheduleIdentifier' => [ 'shape' => 'String', ], ], ], 'RestoreFromClusterSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], 'RestoreStatus' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'String', ], 'CurrentRestoreRateInMegaBytesPerSecond' => [ 'shape' => 'Double', ], 'SnapshotSizeInMegaBytes' => [ 'shape' => 'Long', ], 'ProgressInMegaBytes' => [ 'shape' => 'Long', ], 'ElapsedTimeInSeconds' => [ 'shape' => 'Long', ], 'EstimatedTimeToCompletionInSeconds' => [ 'shape' => 'Long', ], ], ], 'RestoreTableFromClusterSnapshotMessage' => [ 'type' => 'structure', 'required' => [ 'ClusterIdentifier', 'SnapshotIdentifier', 'SourceDatabaseName', 'SourceTableName', 'NewTableName', ], 'members' => [ 'ClusterIdentifier' => [ 'shape' => 'String', ], 'SnapshotIdentifier' => [ 'shape' => 'String', ], 'SourceDatabaseName' => [ 'shape' => 'String', ], 'SourceSchemaName' => [ 'shape' => 'String', ], 'SourceTableName' => [ 'shape' => 'String', ], 'TargetDatabaseName' => [ 'shape' => 'String', ], 'TargetSchemaName' => [ 'shape' => 'String', ], 'NewTableName' => [ 'shape' => 'String', ], ], ], 'RestoreTableFromClusterSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'TableRestoreStatus' => [ 'shape' => 'TableRestoreStatus', ], ], ], 'RevisionTarget' => [ 'type' => 'structure', 'members' => [ 'DatabaseRevision' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'DatabaseRevisionReleaseDate' => [ 'shape' => 'TStamp', ], ], ], 'RevisionTargetsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RevisionTarget', 'locationName' => 'RevisionTarget', ], ], 'RevokeClusterSecurityGroupIngressMessage' => [ 'type' => 'structure', 'required' => [ 'ClusterSecurityGroupName', ], 'members' => [ 'ClusterSecurityGroupName' => [ 'shape' => 'String', ], 'CIDRIP' => [ 'shape' => 'String', ], 'EC2SecurityGroupName' => [ 'shape' => 'String', ], 'EC2SecurityGroupOwnerId' => [ 'shape' => 'String', ], ], ], 'RevokeClusterSecurityGroupIngressResult' => [ 'type' => 'structure', 'members' => [ 'ClusterSecurityGroup' => [ 'shape' => 'ClusterSecurityGroup', ], ], ], 'RevokeSnapshotAccessMessage' => [ 'type' => 'structure', 'required' => [ 'SnapshotIdentifier', 'AccountWithRestoreAccess', ], 'members' => [ 'SnapshotIdentifier' => [ 'shape' => 'String', ], 'SnapshotClusterIdentifier' => [ 'shape' => 'String', ], 'AccountWithRestoreAccess' => [ 'shape' => 'String', ], ], ], 'RevokeSnapshotAccessResult' => [ 'type' => 'structure', 'members' => [ 'Snapshot' => [ 'shape' => 'Snapshot', ], ], ], 'RotateEncryptionKeyMessage' => [ 'type' => 'structure', 'required' => [ 'ClusterIdentifier', ], 'members' => [ 'ClusterIdentifier' => [ 'shape' => 'String', ], ], ], 'RotateEncryptionKeyResult' => [ 'type' => 'structure', 'members' => [ 'Cluster' => [ 'shape' => 'Cluster', ], ], ], '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, ], 'ScheduleDefinitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ScheduleDefinition', ], ], 'ScheduleDefinitionTypeUnsupportedFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'ScheduleDefinitionTypeUnsupported', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ScheduleState' => [ 'type' => 'string', 'enum' => [ 'MODIFYING', 'ACTIVE', 'FAILED', ], ], 'ScheduledSnapshotTimeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TStamp', 'locationName' => 'SnapshotTime', ], ], 'SensitiveString' => [ 'type' => 'string', 'sensitive' => 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', ], 'RestorableNodeTypes' => [ 'shape' => 'RestorableNodeTypeList', ], 'EnhancedVpcRouting' => [ 'shape' => 'Boolean', ], 'MaintenanceTrackName' => [ 'shape' => 'String', ], 'ManualSnapshotRetentionPeriod' => [ 'shape' => 'IntegerOptional', ], 'ManualSnapshotRemainingDays' => [ 'shape' => 'IntegerOptional', ], 'SnapshotRetentionStartTime' => [ 'shape' => 'TStamp', ], ], 'wrapper' => true, ], 'SnapshotAttributeToSortBy' => [ 'type' => 'string', 'enum' => [ 'SOURCE_TYPE', 'TOTAL_SIZE', 'CREATE_TIME', ], ], '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, ], 'SnapshotCopyGrant' => [ 'type' => 'structure', 'members' => [ 'SnapshotCopyGrantName' => [ 'shape' => 'String', ], 'KmsKeyId' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], ], 'wrapper' => true, ], 'SnapshotCopyGrantAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'SnapshotCopyGrantAlreadyExistsFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'SnapshotCopyGrantList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SnapshotCopyGrant', 'locationName' => 'SnapshotCopyGrant', ], ], 'SnapshotCopyGrantMessage' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'SnapshotCopyGrants' => [ 'shape' => 'SnapshotCopyGrantList', ], ], ], 'SnapshotCopyGrantNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'SnapshotCopyGrantNotFoundFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'SnapshotCopyGrantQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'SnapshotCopyGrantQuotaExceededFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'SnapshotErrorMessage' => [ 'type' => 'structure', 'members' => [ 'SnapshotIdentifier' => [ 'shape' => 'String', ], 'SnapshotClusterIdentifier' => [ 'shape' => 'String', ], 'FailureCode' => [ 'shape' => 'String', ], 'FailureReason' => [ 'shape' => 'String', ], ], ], 'SnapshotIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'String', ], ], 'SnapshotList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Snapshot', 'locationName' => 'Snapshot', ], ], 'SnapshotMessage' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'String', ], 'Snapshots' => [ 'shape' => 'SnapshotList', ], ], ], 'SnapshotSchedule' => [ 'type' => 'structure', 'members' => [ 'ScheduleDefinitions' => [ 'shape' => 'ScheduleDefinitionList', ], 'ScheduleIdentifier' => [ 'shape' => 'String', ], 'ScheduleDescription' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagList', ], 'NextInvocations' => [ 'shape' => 'ScheduledSnapshotTimeList', ], 'AssociatedClusterCount' => [ 'shape' => 'IntegerOptional', ], 'AssociatedClusters' => [ 'shape' => 'AssociatedClusterList', ], ], ], 'SnapshotScheduleAlreadyExistsFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'SnapshotScheduleAlreadyExists', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'SnapshotScheduleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SnapshotSchedule', 'locationName' => 'SnapshotSchedule', ], ], 'SnapshotScheduleNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'SnapshotScheduleNotFound', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'SnapshotScheduleQuotaExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'SnapshotScheduleQuotaExceeded', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'SnapshotScheduleUpdateInProgressFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'SnapshotScheduleUpdateInProgress', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'SnapshotSortingEntity' => [ 'type' => 'structure', 'required' => [ 'Attribute', ], 'members' => [ 'Attribute' => [ 'shape' => 'SnapshotAttributeToSortBy', ], 'SortOrder' => [ 'shape' => 'SortByOrder', ], ], ], 'SnapshotSortingEntityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SnapshotSortingEntity', 'locationName' => 'SnapshotSortingEntity', ], ], 'SortByOrder' => [ 'type' => 'string', 'enum' => [ 'ASC', 'DESC', ], ], '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, ], 'SupportedOperation' => [ 'type' => 'structure', 'members' => [ 'OperationName' => [ 'shape' => 'String', ], ], ], 'SupportedOperationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SupportedOperation', 'locationName' => 'SupportedOperation', ], ], 'SupportedPlatform' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], ], 'wrapper' => true, ], 'SupportedPlatformsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SupportedPlatform', 'locationName' => 'SupportedPlatform', ], ], 'TStamp' => [ 'type' => 'timestamp', ], 'TableLimitExceededFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'TableLimitExceeded', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'TableRestoreNotFoundFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'TableRestoreNotFoundFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'TableRestoreStatus' => [ 'type' => 'structure', 'members' => [ 'TableRestoreRequestId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'TableRestoreStatusType', ], 'Message' => [ 'shape' => 'String', ], 'RequestTime' => [ 'shape' => 'TStamp', ], 'ProgressInMegaBytes' => [ 'shape' => 'LongOptional', ], 'TotalDataInMegaBytes' => [ 'shape' => 'LongOptional', ], 'ClusterIdentifier' => [ 'shape' => 'String', ], 'SnapshotIdentifier' => [ 'shape' => 'String', ], 'SourceDatabaseName' => [ 'shape' => 'String', ], 'SourceSchemaName' => [ 'shape' => 'String', ], 'SourceTableName' => [ 'shape' => 'String', ], 'TargetDatabaseName' => [ 'shape' => 'String', ], 'TargetSchemaName' => [ 'shape' => 'String', ], 'NewTableName' => [ 'shape' => 'String', ], ], 'wrapper' => true, ], 'TableRestoreStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TableRestoreStatus', 'locationName' => 'TableRestoreStatus', ], ], 'TableRestoreStatusMessage' => [ 'type' => 'structure', 'members' => [ 'TableRestoreStatusDetails' => [ 'shape' => 'TableRestoreStatusList', ], 'Marker' => [ 'shape' => 'String', ], ], ], 'TableRestoreStatusType' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'IN_PROGRESS', 'SUCCEEDED', 'FAILED', 'CANCELED', ], ], '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', ], ], ], 'TrackList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MaintenanceTrack', 'locationName' => 'MaintenanceTrack', ], ], 'TrackListMessage' => [ 'type' => 'structure', 'members' => [ 'MaintenanceTracks' => [ 'shape' => 'TrackList', ], '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, ], 'UnsupportedOperationFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'UnsupportedOperation', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'UnsupportedOptionFault' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'code' => 'UnsupportedOptionFault', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'UpdateTarget' => [ 'type' => 'structure', 'members' => [ 'MaintenanceTrackName' => [ 'shape' => 'String', ], 'DatabaseVersion' => [ 'shape' => 'String', ], 'SupportedOperations' => [ 'shape' => 'SupportedOperationList', ], ], ], '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', ], ], ],]; diff --git a/lib/aws/Aws/data/redshift/2012-12-01/paginators-1.json.php b/lib/aws/Aws/data/redshift/2012-12-01/paginators-1.json.php new file mode 100644 index 0000000..5c71774 --- /dev/null +++ b/lib/aws/Aws/data/redshift/2012-12-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/redshift/2012-12-01/paginators-1.json +return [ 'pagination' => [ 'DescribeClusterParameterGroups' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'ParameterGroups', ], 'DescribeClusterParameters' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'Parameters', ], 'DescribeClusterSecurityGroups' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'ClusterSecurityGroups', ], 'DescribeClusterSnapshots' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'Snapshots', ], 'DescribeClusterSubnetGroups' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'ClusterSubnetGroups', ], 'DescribeClusterVersions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'ClusterVersions', ], 'DescribeClusters' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'Clusters', ], 'DescribeDefaultClusterParameters' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'DefaultClusterParameters.Marker', 'result_key' => 'DefaultClusterParameters.Parameters', ], 'DescribeEventSubscriptions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'EventSubscriptionsList', ], 'DescribeEvents' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'Events', ], 'DescribeHsmClientCertificates' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'HsmClientCertificates', ], 'DescribeHsmConfigurations' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'HsmConfigurations', ], 'DescribeOrderableClusterOptions' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'OrderableClusterOptions', ], 'DescribeReservedNodeOfferings' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'ReservedNodeOfferings', ], 'DescribeReservedNodes' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxRecords', 'output_token' => 'Marker', 'result_key' => 'ReservedNodes', ], ],]; diff --git a/lib/aws/Aws/data/redshift/2012-12-01/smoke.json.php b/lib/aws/Aws/data/redshift/2012-12-01/smoke.json.php new file mode 100644 index 0000000..c8cd400 --- /dev/null +++ b/lib/aws/Aws/data/redshift/2012-12-01/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/redshift/2012-12-01/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeClusterVersions', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeClusters', 'input' => [ 'ClusterIdentifier' => 'fake-cluster', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/redshift/2012-12-01/waiters-1.json.php b/lib/aws/Aws/data/redshift/2012-12-01/waiters-1.json.php new file mode 100644 index 0000000..37e96b9 --- /dev/null +++ b/lib/aws/Aws/data/redshift/2012-12-01/waiters-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/redshift/2012-12-01/waiters-1.json +return [ 'waiters' => [ '__default__' => [ 'acceptor_type' => 'output', ], '__ClusterState' => [ 'interval' => 60, 'max_attempts' => 30, 'operation' => 'DescribeClusters', 'acceptor_path' => 'Clusters[].ClusterStatus', ], 'ClusterAvailable' => [ 'extends' => '__ClusterState', 'ignore_errors' => [ 'ClusterNotFound', ], 'success_value' => 'available', 'failure_value' => [ 'deleting', ], ], 'ClusterDeleted' => [ 'extends' => '__ClusterState', 'success_type' => 'error', 'success_value' => 'ClusterNotFound', 'failure_value' => [ 'creating', 'rebooting', ], ], 'SnapshotAvailable' => [ 'interval' => 15, 'max_attempts' => 20, 'operation' => 'DescribeClusterSnapshots', 'acceptor_path' => 'Snapshots[].Status', 'success_value' => 'available', 'failure_value' => [ 'failed', 'deleted', ], ], ],]; diff --git a/lib/aws/Aws/data/redshift/2012-12-01/waiters-2.json.php b/lib/aws/Aws/data/redshift/2012-12-01/waiters-2.json.php new file mode 100644 index 0000000..b7e2e3c --- /dev/null +++ b/lib/aws/Aws/data/redshift/2012-12-01/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/redshift/2012-12-01/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'ClusterAvailable' => [ 'delay' => 60, 'operation' => 'DescribeClusters', 'maxAttempts' => 30, 'acceptors' => [ [ 'expected' => 'available', 'matcher' => 'pathAll', 'state' => 'success', 'argument' => 'Clusters[].ClusterStatus', ], [ 'expected' => 'deleting', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'Clusters[].ClusterStatus', ], [ 'expected' => 'ClusterNotFound', 'matcher' => 'error', 'state' => 'retry', ], ], ], 'ClusterDeleted' => [ 'delay' => 60, 'operation' => 'DescribeClusters', 'maxAttempts' => 30, 'acceptors' => [ [ 'expected' => 'ClusterNotFound', 'matcher' => 'error', 'state' => 'success', ], [ 'expected' => 'creating', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'Clusters[].ClusterStatus', ], [ 'expected' => 'modifying', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'Clusters[].ClusterStatus', ], ], ], 'ClusterRestored' => [ 'operation' => 'DescribeClusters', 'maxAttempts' => 30, 'delay' => 60, 'acceptors' => [ [ 'state' => 'success', 'matcher' => 'pathAll', 'argument' => 'Clusters[].RestoreStatus.Status', 'expected' => 'completed', ], [ 'state' => 'failure', 'matcher' => 'pathAny', 'argument' => 'Clusters[].ClusterStatus', 'expected' => 'deleting', ], ], ], 'SnapshotAvailable' => [ 'delay' => 15, 'operation' => 'DescribeClusterSnapshots', 'maxAttempts' => 20, 'acceptors' => [ [ 'expected' => 'available', 'matcher' => 'pathAll', 'state' => 'success', 'argument' => 'Snapshots[].Status', ], [ 'expected' => 'failed', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'Snapshots[].Status', ], [ 'expected' => 'deleted', 'matcher' => 'pathAny', 'state' => 'failure', 'argument' => 'Snapshots[].Status', ], ], ], ],]; diff --git a/lib/aws/Aws/data/rekognition/2016-06-27/api-2.json.php b/lib/aws/Aws/data/rekognition/2016-06-27/api-2.json.php new file mode 100644 index 0000000..eebfebd --- /dev/null +++ b/lib/aws/Aws/data/rekognition/2016-06-27/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/rekognition/2016-06-27/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-06-27', 'endpointPrefix' => 'rekognition', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Amazon Rekognition', 'serviceId' => 'Rekognition', 'signatureVersion' => 'v4', 'targetPrefix' => 'RekognitionService', 'uid' => 'rekognition-2016-06-27', ], 'operations' => [ 'CompareFaces' => [ 'name' => 'CompareFaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CompareFacesRequest', ], 'output' => [ 'shape' => 'CompareFacesResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidS3ObjectException', ], [ 'shape' => 'ImageTooLargeException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'InvalidImageFormatException', ], ], ], 'CreateCollection' => [ 'name' => 'CreateCollection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCollectionRequest', ], 'output' => [ 'shape' => 'CreateCollectionResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], ], ], 'CreateStreamProcessor' => [ 'name' => 'CreateStreamProcessor', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateStreamProcessorRequest', ], 'output' => [ 'shape' => 'CreateStreamProcessorResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], ], ], 'DeleteCollection' => [ 'name' => 'DeleteCollection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCollectionRequest', ], 'output' => [ 'shape' => 'DeleteCollectionResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeleteFaces' => [ 'name' => 'DeleteFaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteFacesRequest', ], 'output' => [ 'shape' => 'DeleteFacesResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeleteStreamProcessor' => [ 'name' => 'DeleteStreamProcessor', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteStreamProcessorRequest', ], 'output' => [ 'shape' => 'DeleteStreamProcessorResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], ], ], 'DescribeCollection' => [ 'name' => 'DescribeCollection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCollectionRequest', ], 'output' => [ 'shape' => 'DescribeCollectionResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeStreamProcessor' => [ 'name' => 'DescribeStreamProcessor', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStreamProcessorRequest', ], 'output' => [ 'shape' => 'DescribeStreamProcessorResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], ], ], 'DetectFaces' => [ 'name' => 'DetectFaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetectFacesRequest', ], 'output' => [ 'shape' => 'DetectFacesResponse', ], 'errors' => [ [ 'shape' => 'InvalidS3ObjectException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ImageTooLargeException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'InvalidImageFormatException', ], ], ], 'DetectLabels' => [ 'name' => 'DetectLabels', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetectLabelsRequest', ], 'output' => [ 'shape' => 'DetectLabelsResponse', ], 'errors' => [ [ 'shape' => 'InvalidS3ObjectException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ImageTooLargeException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'InvalidImageFormatException', ], ], ], 'DetectModerationLabels' => [ 'name' => 'DetectModerationLabels', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetectModerationLabelsRequest', ], 'output' => [ 'shape' => 'DetectModerationLabelsResponse', ], 'errors' => [ [ 'shape' => 'InvalidS3ObjectException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ImageTooLargeException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'InvalidImageFormatException', ], ], ], 'DetectText' => [ 'name' => 'DetectText', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetectTextRequest', ], 'output' => [ 'shape' => 'DetectTextResponse', ], 'errors' => [ [ 'shape' => 'InvalidS3ObjectException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ImageTooLargeException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'InvalidImageFormatException', ], ], ], 'GetCelebrityInfo' => [ 'name' => 'GetCelebrityInfo', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCelebrityInfoRequest', ], 'output' => [ 'shape' => 'GetCelebrityInfoResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'GetCelebrityRecognition' => [ 'name' => 'GetCelebrityRecognition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCelebrityRecognitionRequest', ], 'output' => [ 'shape' => 'GetCelebrityRecognitionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidPaginationTokenException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetContentModeration' => [ 'name' => 'GetContentModeration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetContentModerationRequest', ], 'output' => [ 'shape' => 'GetContentModerationResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidPaginationTokenException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetFaceDetection' => [ 'name' => 'GetFaceDetection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetFaceDetectionRequest', ], 'output' => [ 'shape' => 'GetFaceDetectionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidPaginationTokenException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetFaceSearch' => [ 'name' => 'GetFaceSearch', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetFaceSearchRequest', ], 'output' => [ 'shape' => 'GetFaceSearchResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidPaginationTokenException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetLabelDetection' => [ 'name' => 'GetLabelDetection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetLabelDetectionRequest', ], 'output' => [ 'shape' => 'GetLabelDetectionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidPaginationTokenException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetPersonTracking' => [ 'name' => 'GetPersonTracking', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPersonTrackingRequest', ], 'output' => [ 'shape' => 'GetPersonTrackingResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidPaginationTokenException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'IndexFaces' => [ 'name' => 'IndexFaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'IndexFacesRequest', ], 'output' => [ 'shape' => 'IndexFacesResponse', ], 'errors' => [ [ 'shape' => 'InvalidS3ObjectException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ImageTooLargeException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidImageFormatException', ], ], ], 'ListCollections' => [ 'name' => 'ListCollections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListCollectionsRequest', ], 'output' => [ 'shape' => 'ListCollectionsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'InvalidPaginationTokenException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListFaces' => [ 'name' => 'ListFaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListFacesRequest', ], 'output' => [ 'shape' => 'ListFacesResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'InvalidPaginationTokenException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListStreamProcessors' => [ 'name' => 'ListStreamProcessors', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListStreamProcessorsRequest', ], 'output' => [ 'shape' => 'ListStreamProcessorsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidPaginationTokenException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], ], ], 'RecognizeCelebrities' => [ 'name' => 'RecognizeCelebrities', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RecognizeCelebritiesRequest', ], 'output' => [ 'shape' => 'RecognizeCelebritiesResponse', ], 'errors' => [ [ 'shape' => 'InvalidS3ObjectException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidImageFormatException', ], [ 'shape' => 'ImageTooLargeException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'InvalidImageFormatException', ], ], ], 'SearchFaces' => [ 'name' => 'SearchFaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchFacesRequest', ], 'output' => [ 'shape' => 'SearchFacesResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'SearchFacesByImage' => [ 'name' => 'SearchFacesByImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchFacesByImageRequest', ], 'output' => [ 'shape' => 'SearchFacesByImageResponse', ], 'errors' => [ [ 'shape' => 'InvalidS3ObjectException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ImageTooLargeException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidImageFormatException', ], ], ], 'StartCelebrityRecognition' => [ 'name' => 'StartCelebrityRecognition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartCelebrityRecognitionRequest', ], 'output' => [ 'shape' => 'StartCelebrityRecognitionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'IdempotentParameterMismatchException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidS3ObjectException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'VideoTooLargeException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ThrottlingException', ], ], 'idempotent' => true, ], 'StartContentModeration' => [ 'name' => 'StartContentModeration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartContentModerationRequest', ], 'output' => [ 'shape' => 'StartContentModerationResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'IdempotentParameterMismatchException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidS3ObjectException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'VideoTooLargeException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ThrottlingException', ], ], 'idempotent' => true, ], 'StartFaceDetection' => [ 'name' => 'StartFaceDetection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartFaceDetectionRequest', ], 'output' => [ 'shape' => 'StartFaceDetectionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'IdempotentParameterMismatchException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidS3ObjectException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'VideoTooLargeException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ThrottlingException', ], ], 'idempotent' => true, ], 'StartFaceSearch' => [ 'name' => 'StartFaceSearch', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartFaceSearchRequest', ], 'output' => [ 'shape' => 'StartFaceSearchResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'IdempotentParameterMismatchException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidS3ObjectException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'VideoTooLargeException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], ], 'idempotent' => true, ], 'StartLabelDetection' => [ 'name' => 'StartLabelDetection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartLabelDetectionRequest', ], 'output' => [ 'shape' => 'StartLabelDetectionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'IdempotentParameterMismatchException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidS3ObjectException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'VideoTooLargeException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ThrottlingException', ], ], 'idempotent' => true, ], 'StartPersonTracking' => [ 'name' => 'StartPersonTracking', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartPersonTrackingRequest', ], 'output' => [ 'shape' => 'StartPersonTrackingResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'IdempotentParameterMismatchException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidS3ObjectException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'VideoTooLargeException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ThrottlingException', ], ], 'idempotent' => true, ], 'StartStreamProcessor' => [ 'name' => 'StartStreamProcessor', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartStreamProcessorRequest', ], 'output' => [ 'shape' => 'StartStreamProcessorResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], ], ], 'StopStreamProcessor' => [ 'name' => 'StopStreamProcessor', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopStreamProcessorRequest', ], 'output' => [ 'shape' => 'StopStreamProcessorResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], ], ], ], 'shapes' => [ 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'AgeRange' => [ 'type' => 'structure', 'members' => [ 'Low' => [ 'shape' => 'UInteger', ], 'High' => [ 'shape' => 'UInteger', ], ], ], 'Attribute' => [ 'type' => 'string', 'enum' => [ 'DEFAULT', 'ALL', ], ], 'Attributes' => [ 'type' => 'list', 'member' => [ 'shape' => 'Attribute', ], ], 'Beard' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Boolean', ], 'Confidence' => [ 'shape' => 'Percent', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'BoundingBox' => [ 'type' => 'structure', 'members' => [ 'Width' => [ 'shape' => 'Float', ], 'Height' => [ 'shape' => 'Float', ], 'Left' => [ 'shape' => 'Float', ], 'Top' => [ 'shape' => 'Float', ], ], ], 'Celebrity' => [ 'type' => 'structure', 'members' => [ 'Urls' => [ 'shape' => 'Urls', ], 'Name' => [ 'shape' => 'String', ], 'Id' => [ 'shape' => 'RekognitionUniqueId', ], 'Face' => [ 'shape' => 'ComparedFace', ], 'MatchConfidence' => [ 'shape' => 'Percent', ], ], ], 'CelebrityDetail' => [ 'type' => 'structure', 'members' => [ 'Urls' => [ 'shape' => 'Urls', ], 'Name' => [ 'shape' => 'String', ], 'Id' => [ 'shape' => 'RekognitionUniqueId', ], 'Confidence' => [ 'shape' => 'Percent', ], 'BoundingBox' => [ 'shape' => 'BoundingBox', ], 'Face' => [ 'shape' => 'FaceDetail', ], ], ], 'CelebrityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Celebrity', ], ], 'CelebrityRecognition' => [ 'type' => 'structure', 'members' => [ 'Timestamp' => [ 'shape' => 'Timestamp', ], 'Celebrity' => [ 'shape' => 'CelebrityDetail', ], ], ], 'CelebrityRecognitionSortBy' => [ 'type' => 'string', 'enum' => [ 'ID', 'TIMESTAMP', ], ], 'CelebrityRecognitions' => [ 'type' => 'list', 'member' => [ 'shape' => 'CelebrityRecognition', ], ], 'ClientRequestToken' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '^[a-zA-Z0-9-_]+$', ], 'CollectionId' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.\\-]+', ], 'CollectionIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CollectionId', ], ], 'CompareFacesMatch' => [ 'type' => 'structure', 'members' => [ 'Similarity' => [ 'shape' => 'Percent', ], 'Face' => [ 'shape' => 'ComparedFace', ], ], ], 'CompareFacesMatchList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CompareFacesMatch', ], ], 'CompareFacesRequest' => [ 'type' => 'structure', 'required' => [ 'SourceImage', 'TargetImage', ], 'members' => [ 'SourceImage' => [ 'shape' => 'Image', ], 'TargetImage' => [ 'shape' => 'Image', ], 'SimilarityThreshold' => [ 'shape' => 'Percent', ], ], ], 'CompareFacesResponse' => [ 'type' => 'structure', 'members' => [ 'SourceImageFace' => [ 'shape' => 'ComparedSourceImageFace', ], 'FaceMatches' => [ 'shape' => 'CompareFacesMatchList', ], 'UnmatchedFaces' => [ 'shape' => 'CompareFacesUnmatchList', ], 'SourceImageOrientationCorrection' => [ 'shape' => 'OrientationCorrection', ], 'TargetImageOrientationCorrection' => [ 'shape' => 'OrientationCorrection', ], ], ], 'CompareFacesUnmatchList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ComparedFace', ], ], 'ComparedFace' => [ 'type' => 'structure', 'members' => [ 'BoundingBox' => [ 'shape' => 'BoundingBox', ], 'Confidence' => [ 'shape' => 'Percent', ], 'Landmarks' => [ 'shape' => 'Landmarks', ], 'Pose' => [ 'shape' => 'Pose', ], 'Quality' => [ 'shape' => 'ImageQuality', ], ], ], 'ComparedFaceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ComparedFace', ], ], 'ComparedSourceImageFace' => [ 'type' => 'structure', 'members' => [ 'BoundingBox' => [ 'shape' => 'BoundingBox', ], 'Confidence' => [ 'shape' => 'Percent', ], ], ], 'ContentModerationDetection' => [ 'type' => 'structure', 'members' => [ 'Timestamp' => [ 'shape' => 'Timestamp', ], 'ModerationLabel' => [ 'shape' => 'ModerationLabel', ], ], ], 'ContentModerationDetections' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContentModerationDetection', ], ], 'ContentModerationSortBy' => [ 'type' => 'string', 'enum' => [ 'NAME', 'TIMESTAMP', ], ], 'CreateCollectionRequest' => [ 'type' => 'structure', 'required' => [ 'CollectionId', ], 'members' => [ 'CollectionId' => [ 'shape' => 'CollectionId', ], ], ], 'CreateCollectionResponse' => [ 'type' => 'structure', 'members' => [ 'StatusCode' => [ 'shape' => 'UInteger', ], 'CollectionArn' => [ 'shape' => 'String', ], 'FaceModelVersion' => [ 'shape' => 'String', ], ], ], 'CreateStreamProcessorRequest' => [ 'type' => 'structure', 'required' => [ 'Input', 'Output', 'Name', 'Settings', 'RoleArn', ], 'members' => [ 'Input' => [ 'shape' => 'StreamProcessorInput', ], 'Output' => [ 'shape' => 'StreamProcessorOutput', ], 'Name' => [ 'shape' => 'StreamProcessorName', ], 'Settings' => [ 'shape' => 'StreamProcessorSettings', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], ], ], 'CreateStreamProcessorResponse' => [ 'type' => 'structure', 'members' => [ 'StreamProcessorArn' => [ 'shape' => 'StreamProcessorArn', ], ], ], 'DateTime' => [ 'type' => 'timestamp', ], 'Degree' => [ 'type' => 'float', 'max' => 180, 'min' => -180, ], 'DeleteCollectionRequest' => [ 'type' => 'structure', 'required' => [ 'CollectionId', ], 'members' => [ 'CollectionId' => [ 'shape' => 'CollectionId', ], ], ], 'DeleteCollectionResponse' => [ 'type' => 'structure', 'members' => [ 'StatusCode' => [ 'shape' => 'UInteger', ], ], ], 'DeleteFacesRequest' => [ 'type' => 'structure', 'required' => [ 'CollectionId', 'FaceIds', ], 'members' => [ 'CollectionId' => [ 'shape' => 'CollectionId', ], 'FaceIds' => [ 'shape' => 'FaceIdList', ], ], ], 'DeleteFacesResponse' => [ 'type' => 'structure', 'members' => [ 'DeletedFaces' => [ 'shape' => 'FaceIdList', ], ], ], 'DeleteStreamProcessorRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'StreamProcessorName', ], ], ], 'DeleteStreamProcessorResponse' => [ 'type' => 'structure', 'members' => [], ], 'DescribeCollectionRequest' => [ 'type' => 'structure', 'required' => [ 'CollectionId', ], 'members' => [ 'CollectionId' => [ 'shape' => 'CollectionId', ], ], ], 'DescribeCollectionResponse' => [ 'type' => 'structure', 'members' => [ 'FaceCount' => [ 'shape' => 'ULong', ], 'FaceModelVersion' => [ 'shape' => 'String', ], 'CollectionARN' => [ 'shape' => 'String', ], 'CreationTimestamp' => [ 'shape' => 'DateTime', ], ], ], 'DescribeStreamProcessorRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'StreamProcessorName', ], ], ], 'DescribeStreamProcessorResponse' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'StreamProcessorName', ], 'StreamProcessorArn' => [ 'shape' => 'StreamProcessorArn', ], 'Status' => [ 'shape' => 'StreamProcessorStatus', ], 'StatusMessage' => [ 'shape' => 'String', ], 'CreationTimestamp' => [ 'shape' => 'DateTime', ], 'LastUpdateTimestamp' => [ 'shape' => 'DateTime', ], 'Input' => [ 'shape' => 'StreamProcessorInput', ], 'Output' => [ 'shape' => 'StreamProcessorOutput', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'Settings' => [ 'shape' => 'StreamProcessorSettings', ], ], ], 'DetectFacesRequest' => [ 'type' => 'structure', 'required' => [ 'Image', ], 'members' => [ 'Image' => [ 'shape' => 'Image', ], 'Attributes' => [ 'shape' => 'Attributes', ], ], ], 'DetectFacesResponse' => [ 'type' => 'structure', 'members' => [ 'FaceDetails' => [ 'shape' => 'FaceDetailList', ], 'OrientationCorrection' => [ 'shape' => 'OrientationCorrection', ], ], ], 'DetectLabelsRequest' => [ 'type' => 'structure', 'required' => [ 'Image', ], 'members' => [ 'Image' => [ 'shape' => 'Image', ], 'MaxLabels' => [ 'shape' => 'UInteger', ], 'MinConfidence' => [ 'shape' => 'Percent', ], ], ], 'DetectLabelsResponse' => [ 'type' => 'structure', 'members' => [ 'Labels' => [ 'shape' => 'Labels', ], 'OrientationCorrection' => [ 'shape' => 'OrientationCorrection', ], 'LabelModelVersion' => [ 'shape' => 'String', ], ], ], 'DetectModerationLabelsRequest' => [ 'type' => 'structure', 'required' => [ 'Image', ], 'members' => [ 'Image' => [ 'shape' => 'Image', ], 'MinConfidence' => [ 'shape' => 'Percent', ], ], ], 'DetectModerationLabelsResponse' => [ 'type' => 'structure', 'members' => [ 'ModerationLabels' => [ 'shape' => 'ModerationLabels', ], 'ModerationModelVersion' => [ 'shape' => 'String', ], ], ], 'DetectTextRequest' => [ 'type' => 'structure', 'required' => [ 'Image', ], 'members' => [ 'Image' => [ 'shape' => 'Image', ], ], ], 'DetectTextResponse' => [ 'type' => 'structure', 'members' => [ 'TextDetections' => [ 'shape' => 'TextDetectionList', ], ], ], 'Emotion' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'EmotionName', ], 'Confidence' => [ 'shape' => 'Percent', ], ], ], 'EmotionName' => [ 'type' => 'string', 'enum' => [ 'HAPPY', 'SAD', 'ANGRY', 'CONFUSED', 'DISGUSTED', 'SURPRISED', 'CALM', 'UNKNOWN', ], ], 'Emotions' => [ 'type' => 'list', 'member' => [ 'shape' => 'Emotion', ], ], 'ExternalImageId' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.\\-:]+', ], 'EyeOpen' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Boolean', ], 'Confidence' => [ 'shape' => 'Percent', ], ], ], 'Eyeglasses' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Boolean', ], 'Confidence' => [ 'shape' => 'Percent', ], ], ], 'Face' => [ 'type' => 'structure', 'members' => [ 'FaceId' => [ 'shape' => 'FaceId', ], 'BoundingBox' => [ 'shape' => 'BoundingBox', ], 'ImageId' => [ 'shape' => 'ImageId', ], 'ExternalImageId' => [ 'shape' => 'ExternalImageId', ], 'Confidence' => [ 'shape' => 'Percent', ], ], ], 'FaceAttributes' => [ 'type' => 'string', 'enum' => [ 'DEFAULT', 'ALL', ], ], 'FaceDetail' => [ 'type' => 'structure', 'members' => [ 'BoundingBox' => [ 'shape' => 'BoundingBox', ], 'AgeRange' => [ 'shape' => 'AgeRange', ], 'Smile' => [ 'shape' => 'Smile', ], 'Eyeglasses' => [ 'shape' => 'Eyeglasses', ], 'Sunglasses' => [ 'shape' => 'Sunglasses', ], 'Gender' => [ 'shape' => 'Gender', ], 'Beard' => [ 'shape' => 'Beard', ], 'Mustache' => [ 'shape' => 'Mustache', ], 'EyesOpen' => [ 'shape' => 'EyeOpen', ], 'MouthOpen' => [ 'shape' => 'MouthOpen', ], 'Emotions' => [ 'shape' => 'Emotions', ], 'Landmarks' => [ 'shape' => 'Landmarks', ], 'Pose' => [ 'shape' => 'Pose', ], 'Quality' => [ 'shape' => 'ImageQuality', ], 'Confidence' => [ 'shape' => 'Percent', ], ], ], 'FaceDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FaceDetail', ], ], 'FaceDetection' => [ 'type' => 'structure', 'members' => [ 'Timestamp' => [ 'shape' => 'Timestamp', ], 'Face' => [ 'shape' => 'FaceDetail', ], ], ], 'FaceDetections' => [ 'type' => 'list', 'member' => [ 'shape' => 'FaceDetection', ], ], 'FaceId' => [ 'type' => 'string', 'pattern' => '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}', ], 'FaceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FaceId', ], 'max' => 4096, 'min' => 1, ], 'FaceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Face', ], ], 'FaceMatch' => [ 'type' => 'structure', 'members' => [ 'Similarity' => [ 'shape' => 'Percent', ], 'Face' => [ 'shape' => 'Face', ], ], ], 'FaceMatchList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FaceMatch', ], ], 'FaceModelVersionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'FaceRecord' => [ 'type' => 'structure', 'members' => [ 'Face' => [ 'shape' => 'Face', ], 'FaceDetail' => [ 'shape' => 'FaceDetail', ], ], ], 'FaceRecordList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FaceRecord', ], ], 'FaceSearchSettings' => [ 'type' => 'structure', 'members' => [ 'CollectionId' => [ 'shape' => 'CollectionId', ], 'FaceMatchThreshold' => [ 'shape' => 'Percent', ], ], ], 'FaceSearchSortBy' => [ 'type' => 'string', 'enum' => [ 'INDEX', 'TIMESTAMP', ], ], 'Float' => [ 'type' => 'float', ], 'Gender' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'GenderType', ], 'Confidence' => [ 'shape' => 'Percent', ], ], ], 'GenderType' => [ 'type' => 'string', 'enum' => [ 'Male', 'Female', ], ], 'Geometry' => [ 'type' => 'structure', 'members' => [ 'BoundingBox' => [ 'shape' => 'BoundingBox', ], 'Polygon' => [ 'shape' => 'Polygon', ], ], ], 'GetCelebrityInfoRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'RekognitionUniqueId', ], ], ], 'GetCelebrityInfoResponse' => [ 'type' => 'structure', 'members' => [ 'Urls' => [ 'shape' => 'Urls', ], 'Name' => [ 'shape' => 'String', ], ], ], 'GetCelebrityRecognitionRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'SortBy' => [ 'shape' => 'CelebrityRecognitionSortBy', ], ], ], 'GetCelebrityRecognitionResponse' => [ 'type' => 'structure', 'members' => [ 'JobStatus' => [ 'shape' => 'VideoJobStatus', ], 'StatusMessage' => [ 'shape' => 'StatusMessage', ], 'VideoMetadata' => [ 'shape' => 'VideoMetadata', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'Celebrities' => [ 'shape' => 'CelebrityRecognitions', ], ], ], 'GetContentModerationRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'SortBy' => [ 'shape' => 'ContentModerationSortBy', ], ], ], 'GetContentModerationResponse' => [ 'type' => 'structure', 'members' => [ 'JobStatus' => [ 'shape' => 'VideoJobStatus', ], 'StatusMessage' => [ 'shape' => 'StatusMessage', ], 'VideoMetadata' => [ 'shape' => 'VideoMetadata', ], 'ModerationLabels' => [ 'shape' => 'ContentModerationDetections', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'ModerationModelVersion' => [ 'shape' => 'String', ], ], ], 'GetFaceDetectionRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'GetFaceDetectionResponse' => [ 'type' => 'structure', 'members' => [ 'JobStatus' => [ 'shape' => 'VideoJobStatus', ], 'StatusMessage' => [ 'shape' => 'StatusMessage', ], 'VideoMetadata' => [ 'shape' => 'VideoMetadata', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'Faces' => [ 'shape' => 'FaceDetections', ], ], ], 'GetFaceSearchRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'SortBy' => [ 'shape' => 'FaceSearchSortBy', ], ], ], 'GetFaceSearchResponse' => [ 'type' => 'structure', 'members' => [ 'JobStatus' => [ 'shape' => 'VideoJobStatus', ], 'StatusMessage' => [ 'shape' => 'StatusMessage', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'VideoMetadata' => [ 'shape' => 'VideoMetadata', ], 'Persons' => [ 'shape' => 'PersonMatches', ], ], ], 'GetLabelDetectionRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'SortBy' => [ 'shape' => 'LabelDetectionSortBy', ], ], ], 'GetLabelDetectionResponse' => [ 'type' => 'structure', 'members' => [ 'JobStatus' => [ 'shape' => 'VideoJobStatus', ], 'StatusMessage' => [ 'shape' => 'StatusMessage', ], 'VideoMetadata' => [ 'shape' => 'VideoMetadata', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'Labels' => [ 'shape' => 'LabelDetections', ], 'LabelModelVersion' => [ 'shape' => 'String', ], ], ], 'GetPersonTrackingRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'SortBy' => [ 'shape' => 'PersonTrackingSortBy', ], ], ], 'GetPersonTrackingResponse' => [ 'type' => 'structure', 'members' => [ 'JobStatus' => [ 'shape' => 'VideoJobStatus', ], 'StatusMessage' => [ 'shape' => 'StatusMessage', ], 'VideoMetadata' => [ 'shape' => 'VideoMetadata', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'Persons' => [ 'shape' => 'PersonDetections', ], ], ], 'IdempotentParameterMismatchException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Image' => [ 'type' => 'structure', 'members' => [ 'Bytes' => [ 'shape' => 'ImageBlob', ], 'S3Object' => [ 'shape' => 'S3Object', ], ], ], 'ImageBlob' => [ 'type' => 'blob', 'max' => 5242880, 'min' => 1, ], 'ImageId' => [ 'type' => 'string', 'pattern' => '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}', ], 'ImageQuality' => [ 'type' => 'structure', 'members' => [ 'Brightness' => [ 'shape' => 'Float', ], 'Sharpness' => [ 'shape' => 'Float', ], ], ], 'ImageTooLargeException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'IndexFacesRequest' => [ 'type' => 'structure', 'required' => [ 'CollectionId', 'Image', ], 'members' => [ 'CollectionId' => [ 'shape' => 'CollectionId', ], 'Image' => [ 'shape' => 'Image', ], 'ExternalImageId' => [ 'shape' => 'ExternalImageId', ], 'DetectionAttributes' => [ 'shape' => 'Attributes', ], 'MaxFaces' => [ 'shape' => 'MaxFacesToIndex', ], 'QualityFilter' => [ 'shape' => 'QualityFilter', ], ], ], 'IndexFacesResponse' => [ 'type' => 'structure', 'members' => [ 'FaceRecords' => [ 'shape' => 'FaceRecordList', ], 'OrientationCorrection' => [ 'shape' => 'OrientationCorrection', ], 'FaceModelVersion' => [ 'shape' => 'String', ], 'UnindexedFaces' => [ 'shape' => 'UnindexedFaces', ], ], ], 'Instance' => [ 'type' => 'structure', 'members' => [ 'BoundingBox' => [ 'shape' => 'BoundingBox', ], 'Confidence' => [ 'shape' => 'Percent', ], ], ], 'Instances' => [ 'type' => 'list', 'member' => [ 'shape' => 'Instance', ], ], 'InternalServerError' => [ 'type' => 'structure', 'members' => [], 'exception' => true, 'fault' => true, ], 'InvalidImageFormatException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidPaginationTokenException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidS3ObjectException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'JobId' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '^[a-zA-Z0-9-_]+$', ], 'JobTag' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.\\-:]+', ], 'KinesisDataArn' => [ 'type' => 'string', 'pattern' => '(^arn:([a-z\\d-]+):kinesis:([a-z\\d-]+):\\d{12}:.+$)', ], 'KinesisDataStream' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'KinesisDataArn', ], ], ], 'KinesisVideoArn' => [ 'type' => 'string', 'pattern' => '(^arn:([a-z\\d-]+):kinesisvideo:([a-z\\d-]+):\\d{12}:.+$)', ], 'KinesisVideoStream' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'KinesisVideoArn', ], ], ], 'Label' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Confidence' => [ 'shape' => 'Percent', ], 'Instances' => [ 'shape' => 'Instances', ], 'Parents' => [ 'shape' => 'Parents', ], ], ], 'LabelDetection' => [ 'type' => 'structure', 'members' => [ 'Timestamp' => [ 'shape' => 'Timestamp', ], 'Label' => [ 'shape' => 'Label', ], ], ], 'LabelDetectionSortBy' => [ 'type' => 'string', 'enum' => [ 'NAME', 'TIMESTAMP', ], ], 'LabelDetections' => [ 'type' => 'list', 'member' => [ 'shape' => 'LabelDetection', ], ], 'Labels' => [ 'type' => 'list', 'member' => [ 'shape' => 'Label', ], ], 'Landmark' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'LandmarkType', ], 'X' => [ 'shape' => 'Float', ], 'Y' => [ 'shape' => 'Float', ], ], ], 'LandmarkType' => [ 'type' => 'string', 'enum' => [ 'eyeLeft', 'eyeRight', 'nose', 'mouthLeft', 'mouthRight', 'leftEyeBrowLeft', 'leftEyeBrowRight', 'leftEyeBrowUp', 'rightEyeBrowLeft', 'rightEyeBrowRight', 'rightEyeBrowUp', 'leftEyeLeft', 'leftEyeRight', 'leftEyeUp', 'leftEyeDown', 'rightEyeLeft', 'rightEyeRight', 'rightEyeUp', 'rightEyeDown', 'noseLeft', 'noseRight', 'mouthUp', 'mouthDown', 'leftPupil', 'rightPupil', 'upperJawlineLeft', 'midJawlineLeft', 'chinBottom', 'midJawlineRight', 'upperJawlineRight', ], ], 'Landmarks' => [ 'type' => 'list', 'member' => [ 'shape' => 'Landmark', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ListCollectionsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'PageSize', ], ], ], 'ListCollectionsResponse' => [ 'type' => 'structure', 'members' => [ 'CollectionIds' => [ 'shape' => 'CollectionIdList', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'FaceModelVersions' => [ 'shape' => 'FaceModelVersionList', ], ], ], 'ListFacesRequest' => [ 'type' => 'structure', 'required' => [ 'CollectionId', ], 'members' => [ 'CollectionId' => [ 'shape' => 'CollectionId', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'PageSize', ], ], ], 'ListFacesResponse' => [ 'type' => 'structure', 'members' => [ 'Faces' => [ 'shape' => 'FaceList', ], 'NextToken' => [ 'shape' => 'String', ], 'FaceModelVersion' => [ 'shape' => 'String', ], ], ], 'ListStreamProcessorsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListStreamProcessorsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'PaginationToken', ], 'StreamProcessors' => [ 'shape' => 'StreamProcessorList', ], ], ], 'MaxFaces' => [ 'type' => 'integer', 'max' => 4096, 'min' => 1, ], 'MaxFacesToIndex' => [ 'type' => 'integer', 'min' => 1, ], 'MaxResults' => [ 'type' => 'integer', 'min' => 1, ], 'ModerationLabel' => [ 'type' => 'structure', 'members' => [ 'Confidence' => [ 'shape' => 'Percent', ], 'Name' => [ 'shape' => 'String', ], 'ParentName' => [ 'shape' => 'String', ], ], ], 'ModerationLabels' => [ 'type' => 'list', 'member' => [ 'shape' => 'ModerationLabel', ], ], 'MouthOpen' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Boolean', ], 'Confidence' => [ 'shape' => 'Percent', ], ], ], 'Mustache' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Boolean', ], 'Confidence' => [ 'shape' => 'Percent', ], ], ], 'NotificationChannel' => [ 'type' => 'structure', 'required' => [ 'SNSTopicArn', 'RoleArn', ], 'members' => [ 'SNSTopicArn' => [ 'shape' => 'SNSTopicArn', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], ], ], 'OrientationCorrection' => [ 'type' => 'string', 'enum' => [ 'ROTATE_0', 'ROTATE_90', 'ROTATE_180', 'ROTATE_270', ], ], 'PageSize' => [ 'type' => 'integer', 'max' => 4096, 'min' => 0, ], 'PaginationToken' => [ 'type' => 'string', 'max' => 255, ], 'Parent' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], ], ], 'Parents' => [ 'type' => 'list', 'member' => [ 'shape' => 'Parent', ], ], 'Percent' => [ 'type' => 'float', 'max' => 100, 'min' => 0, ], 'PersonDetail' => [ 'type' => 'structure', 'members' => [ 'Index' => [ 'shape' => 'PersonIndex', ], 'BoundingBox' => [ 'shape' => 'BoundingBox', ], 'Face' => [ 'shape' => 'FaceDetail', ], ], ], 'PersonDetection' => [ 'type' => 'structure', 'members' => [ 'Timestamp' => [ 'shape' => 'Timestamp', ], 'Person' => [ 'shape' => 'PersonDetail', ], ], ], 'PersonDetections' => [ 'type' => 'list', 'member' => [ 'shape' => 'PersonDetection', ], ], 'PersonIndex' => [ 'type' => 'long', ], 'PersonMatch' => [ 'type' => 'structure', 'members' => [ 'Timestamp' => [ 'shape' => 'Timestamp', ], 'Person' => [ 'shape' => 'PersonDetail', ], 'FaceMatches' => [ 'shape' => 'FaceMatchList', ], ], ], 'PersonMatches' => [ 'type' => 'list', 'member' => [ 'shape' => 'PersonMatch', ], ], 'PersonTrackingSortBy' => [ 'type' => 'string', 'enum' => [ 'INDEX', 'TIMESTAMP', ], ], 'Point' => [ 'type' => 'structure', 'members' => [ 'X' => [ 'shape' => 'Float', ], 'Y' => [ 'shape' => 'Float', ], ], ], 'Polygon' => [ 'type' => 'list', 'member' => [ 'shape' => 'Point', ], ], 'Pose' => [ 'type' => 'structure', 'members' => [ 'Roll' => [ 'shape' => 'Degree', ], 'Yaw' => [ 'shape' => 'Degree', ], 'Pitch' => [ 'shape' => 'Degree', ], ], ], 'ProvisionedThroughputExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'QualityFilter' => [ 'type' => 'string', 'enum' => [ 'NONE', 'AUTO', ], ], 'Reason' => [ 'type' => 'string', 'enum' => [ 'EXCEEDS_MAX_FACES', 'EXTREME_POSE', 'LOW_BRIGHTNESS', 'LOW_SHARPNESS', 'LOW_CONFIDENCE', 'SMALL_BOUNDING_BOX', ], ], 'Reasons' => [ 'type' => 'list', 'member' => [ 'shape' => 'Reason', ], ], 'RecognizeCelebritiesRequest' => [ 'type' => 'structure', 'required' => [ 'Image', ], 'members' => [ 'Image' => [ 'shape' => 'Image', ], ], ], 'RecognizeCelebritiesResponse' => [ 'type' => 'structure', 'members' => [ 'CelebrityFaces' => [ 'shape' => 'CelebrityList', ], 'UnrecognizedFaces' => [ 'shape' => 'ComparedFaceList', ], 'OrientationCorrection' => [ 'shape' => 'OrientationCorrection', ], ], ], 'RekognitionUniqueId' => [ 'type' => 'string', 'pattern' => '[0-9A-Za-z]*', ], 'ResourceAlreadyExistsException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'RoleArn' => [ 'type' => 'string', 'pattern' => 'arn:aws:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+', ], 'S3Bucket' => [ 'type' => 'string', 'max' => 255, 'min' => 3, 'pattern' => '[0-9A-Za-z\\.\\-_]*', ], 'S3Object' => [ 'type' => 'structure', 'members' => [ 'Bucket' => [ 'shape' => 'S3Bucket', ], 'Name' => [ 'shape' => 'S3ObjectName', ], 'Version' => [ 'shape' => 'S3ObjectVersion', ], ], ], 'S3ObjectName' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'S3ObjectVersion' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'SNSTopicArn' => [ 'type' => 'string', 'pattern' => '(^arn:aws:sns:.*:\\w{12}:.+$)', ], 'SearchFacesByImageRequest' => [ 'type' => 'structure', 'required' => [ 'CollectionId', 'Image', ], 'members' => [ 'CollectionId' => [ 'shape' => 'CollectionId', ], 'Image' => [ 'shape' => 'Image', ], 'MaxFaces' => [ 'shape' => 'MaxFaces', ], 'FaceMatchThreshold' => [ 'shape' => 'Percent', ], ], ], 'SearchFacesByImageResponse' => [ 'type' => 'structure', 'members' => [ 'SearchedFaceBoundingBox' => [ 'shape' => 'BoundingBox', ], 'SearchedFaceConfidence' => [ 'shape' => 'Percent', ], 'FaceMatches' => [ 'shape' => 'FaceMatchList', ], 'FaceModelVersion' => [ 'shape' => 'String', ], ], ], 'SearchFacesRequest' => [ 'type' => 'structure', 'required' => [ 'CollectionId', 'FaceId', ], 'members' => [ 'CollectionId' => [ 'shape' => 'CollectionId', ], 'FaceId' => [ 'shape' => 'FaceId', ], 'MaxFaces' => [ 'shape' => 'MaxFaces', ], 'FaceMatchThreshold' => [ 'shape' => 'Percent', ], ], ], 'SearchFacesResponse' => [ 'type' => 'structure', 'members' => [ 'SearchedFaceId' => [ 'shape' => 'FaceId', ], 'FaceMatches' => [ 'shape' => 'FaceMatchList', ], 'FaceModelVersion' => [ 'shape' => 'String', ], ], ], 'Smile' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Boolean', ], 'Confidence' => [ 'shape' => 'Percent', ], ], ], 'StartCelebrityRecognitionRequest' => [ 'type' => 'structure', 'required' => [ 'Video', ], 'members' => [ 'Video' => [ 'shape' => 'Video', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', ], 'NotificationChannel' => [ 'shape' => 'NotificationChannel', ], 'JobTag' => [ 'shape' => 'JobTag', ], ], ], 'StartCelebrityRecognitionResponse' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'StartContentModerationRequest' => [ 'type' => 'structure', 'required' => [ 'Video', ], 'members' => [ 'Video' => [ 'shape' => 'Video', ], 'MinConfidence' => [ 'shape' => 'Percent', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', ], 'NotificationChannel' => [ 'shape' => 'NotificationChannel', ], 'JobTag' => [ 'shape' => 'JobTag', ], ], ], 'StartContentModerationResponse' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'StartFaceDetectionRequest' => [ 'type' => 'structure', 'required' => [ 'Video', ], 'members' => [ 'Video' => [ 'shape' => 'Video', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', ], 'NotificationChannel' => [ 'shape' => 'NotificationChannel', ], 'FaceAttributes' => [ 'shape' => 'FaceAttributes', ], 'JobTag' => [ 'shape' => 'JobTag', ], ], ], 'StartFaceDetectionResponse' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'StartFaceSearchRequest' => [ 'type' => 'structure', 'required' => [ 'Video', 'CollectionId', ], 'members' => [ 'Video' => [ 'shape' => 'Video', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', ], 'FaceMatchThreshold' => [ 'shape' => 'Percent', ], 'CollectionId' => [ 'shape' => 'CollectionId', ], 'NotificationChannel' => [ 'shape' => 'NotificationChannel', ], 'JobTag' => [ 'shape' => 'JobTag', ], ], ], 'StartFaceSearchResponse' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'StartLabelDetectionRequest' => [ 'type' => 'structure', 'required' => [ 'Video', ], 'members' => [ 'Video' => [ 'shape' => 'Video', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', ], 'MinConfidence' => [ 'shape' => 'Percent', ], 'NotificationChannel' => [ 'shape' => 'NotificationChannel', ], 'JobTag' => [ 'shape' => 'JobTag', ], ], ], 'StartLabelDetectionResponse' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'StartPersonTrackingRequest' => [ 'type' => 'structure', 'required' => [ 'Video', ], 'members' => [ 'Video' => [ 'shape' => 'Video', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', ], 'NotificationChannel' => [ 'shape' => 'NotificationChannel', ], 'JobTag' => [ 'shape' => 'JobTag', ], ], ], 'StartPersonTrackingResponse' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'StartStreamProcessorRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'StreamProcessorName', ], ], ], 'StartStreamProcessorResponse' => [ 'type' => 'structure', 'members' => [], ], 'StatusMessage' => [ 'type' => 'string', ], 'StopStreamProcessorRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'StreamProcessorName', ], ], ], 'StopStreamProcessorResponse' => [ 'type' => 'structure', 'members' => [], ], 'StreamProcessor' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'StreamProcessorName', ], 'Status' => [ 'shape' => 'StreamProcessorStatus', ], ], ], 'StreamProcessorArn' => [ 'type' => 'string', 'pattern' => '(^arn:[a-z\\d-]+:rekognition:[a-z\\d-]+:\\d{12}:streamprocessor\\/.+$)', ], 'StreamProcessorInput' => [ 'type' => 'structure', 'members' => [ 'KinesisVideoStream' => [ 'shape' => 'KinesisVideoStream', ], ], ], 'StreamProcessorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'StreamProcessor', ], ], 'StreamProcessorName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.\\-]+', ], 'StreamProcessorOutput' => [ 'type' => 'structure', 'members' => [ 'KinesisDataStream' => [ 'shape' => 'KinesisDataStream', ], ], ], 'StreamProcessorSettings' => [ 'type' => 'structure', 'members' => [ 'FaceSearch' => [ 'shape' => 'FaceSearchSettings', ], ], ], 'StreamProcessorStatus' => [ 'type' => 'string', 'enum' => [ 'STOPPED', 'STARTING', 'RUNNING', 'FAILED', 'STOPPING', ], ], 'String' => [ 'type' => 'string', ], 'Sunglasses' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Boolean', ], 'Confidence' => [ 'shape' => 'Percent', ], ], ], 'TextDetection' => [ 'type' => 'structure', 'members' => [ 'DetectedText' => [ 'shape' => 'String', ], 'Type' => [ 'shape' => 'TextTypes', ], 'Id' => [ 'shape' => 'UInteger', ], 'ParentId' => [ 'shape' => 'UInteger', ], 'Confidence' => [ 'shape' => 'Percent', ], 'Geometry' => [ 'shape' => 'Geometry', ], ], ], 'TextDetectionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TextDetection', ], ], 'TextTypes' => [ 'type' => 'string', 'enum' => [ 'LINE', 'WORD', ], ], 'ThrottlingException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, 'fault' => true, ], 'Timestamp' => [ 'type' => 'long', ], 'UInteger' => [ 'type' => 'integer', 'min' => 0, ], 'ULong' => [ 'type' => 'long', 'min' => 0, ], 'UnindexedFace' => [ 'type' => 'structure', 'members' => [ 'Reasons' => [ 'shape' => 'Reasons', ], 'FaceDetail' => [ 'shape' => 'FaceDetail', ], ], ], 'UnindexedFaces' => [ 'type' => 'list', 'member' => [ 'shape' => 'UnindexedFace', ], ], 'Url' => [ 'type' => 'string', ], 'Urls' => [ 'type' => 'list', 'member' => [ 'shape' => 'Url', ], ], 'Video' => [ 'type' => 'structure', 'members' => [ 'S3Object' => [ 'shape' => 'S3Object', ], ], ], 'VideoJobStatus' => [ 'type' => 'string', 'enum' => [ 'IN_PROGRESS', 'SUCCEEDED', 'FAILED', ], ], 'VideoMetadata' => [ 'type' => 'structure', 'members' => [ 'Codec' => [ 'shape' => 'String', ], 'DurationMillis' => [ 'shape' => 'ULong', ], 'Format' => [ 'shape' => 'String', ], 'FrameRate' => [ 'shape' => 'Float', ], 'FrameHeight' => [ 'shape' => 'ULong', ], 'FrameWidth' => [ 'shape' => 'ULong', ], ], ], 'VideoTooLargeException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], ],]; diff --git a/lib/aws/Aws/data/rekognition/2016-06-27/paginators-1.json.php b/lib/aws/Aws/data/rekognition/2016-06-27/paginators-1.json.php new file mode 100644 index 0000000..e904cf6 --- /dev/null +++ b/lib/aws/Aws/data/rekognition/2016-06-27/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/rekognition/2016-06-27/paginators-1.json +return [ 'pagination' => [ 'GetCelebrityRecognition' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'GetContentModeration' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'GetFaceDetection' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'GetFaceSearch' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'GetLabelDetection' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'GetPersonTracking' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'ListCollections' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'CollectionIds', ], 'ListFaces' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Faces', ], 'ListStreamProcessors' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], ],]; diff --git a/lib/aws/Aws/data/rekognition/2016-06-27/smoke.json.php b/lib/aws/Aws/data/rekognition/2016-06-27/smoke.json.php new file mode 100644 index 0000000..57dc6ca --- /dev/null +++ b/lib/aws/Aws/data/rekognition/2016-06-27/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/rekognition/2016-06-27/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListCollections', 'input' => [], 'errorExpectedFromService' => false, ], ],]; diff --git a/lib/aws/Aws/data/resource-groups/2017-11-27/api-2.json.php b/lib/aws/Aws/data/resource-groups/2017-11-27/api-2.json.php new file mode 100644 index 0000000..7ab2bf3 --- /dev/null +++ b/lib/aws/Aws/data/resource-groups/2017-11-27/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/resource-groups/2017-11-27/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-11-27', 'endpointPrefix' => 'resource-groups', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'Resource Groups', 'serviceFullName' => 'AWS Resource Groups', 'serviceId' => 'Resource Groups', 'signatureVersion' => 'v4', 'signingName' => 'resource-groups', 'uid' => 'resource-groups-2017-11-27', ], 'operations' => [ 'CreateGroup' => [ 'name' => 'CreateGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/groups', ], 'input' => [ 'shape' => 'CreateGroupInput', ], 'output' => [ 'shape' => 'CreateGroupOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'DeleteGroup' => [ 'name' => 'DeleteGroup', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/groups/{GroupName}', ], 'input' => [ 'shape' => 'DeleteGroupInput', ], 'output' => [ 'shape' => 'DeleteGroupOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'GetGroup' => [ 'name' => 'GetGroup', 'http' => [ 'method' => 'GET', 'requestUri' => '/groups/{GroupName}', ], 'input' => [ 'shape' => 'GetGroupInput', ], 'output' => [ 'shape' => 'GetGroupOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'GetGroupQuery' => [ 'name' => 'GetGroupQuery', 'http' => [ 'method' => 'GET', 'requestUri' => '/groups/{GroupName}/query', ], 'input' => [ 'shape' => 'GetGroupQueryInput', ], 'output' => [ 'shape' => 'GetGroupQueryOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'GetTags' => [ 'name' => 'GetTags', 'http' => [ 'method' => 'GET', 'requestUri' => '/resources/{Arn}/tags', ], 'input' => [ 'shape' => 'GetTagsInput', ], 'output' => [ 'shape' => 'GetTagsOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'ListGroupResources' => [ 'name' => 'ListGroupResources', 'http' => [ 'method' => 'POST', 'requestUri' => '/groups/{GroupName}/resource-identifiers-list', ], 'input' => [ 'shape' => 'ListGroupResourcesInput', ], 'output' => [ 'shape' => 'ListGroupResourcesOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'ListGroups' => [ 'name' => 'ListGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/groups-list', ], 'input' => [ 'shape' => 'ListGroupsInput', ], 'output' => [ 'shape' => 'ListGroupsOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'SearchResources' => [ 'name' => 'SearchResources', 'http' => [ 'method' => 'POST', 'requestUri' => '/resources/search', ], 'input' => [ 'shape' => 'SearchResourcesInput', ], 'output' => [ 'shape' => 'SearchResourcesOutput', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'Tag' => [ 'name' => 'Tag', 'http' => [ 'method' => 'PUT', 'requestUri' => '/resources/{Arn}/tags', ], 'input' => [ 'shape' => 'TagInput', ], 'output' => [ 'shape' => 'TagOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'Untag' => [ 'name' => 'Untag', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/resources/{Arn}/tags', ], 'input' => [ 'shape' => 'UntagInput', ], 'output' => [ 'shape' => 'UntagOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'UpdateGroup' => [ 'name' => 'UpdateGroup', 'http' => [ 'method' => 'PUT', 'requestUri' => '/groups/{GroupName}', ], 'input' => [ 'shape' => 'UpdateGroupInput', ], 'output' => [ 'shape' => 'UpdateGroupOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], 'UpdateGroupQuery' => [ 'name' => 'UpdateGroupQuery', 'http' => [ 'method' => 'PUT', 'requestUri' => '/groups/{GroupName}/query', ], 'input' => [ 'shape' => 'UpdateGroupQueryInput', ], 'output' => [ 'shape' => 'UpdateGroupQueryOutput', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'MethodNotAllowedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerErrorException', ], ], ], ], 'shapes' => [ 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'CreateGroupInput' => [ 'type' => 'structure', 'required' => [ 'Name', 'ResourceQuery', ], 'members' => [ 'Name' => [ 'shape' => 'GroupName', ], 'Description' => [ 'shape' => 'GroupDescription', ], 'ResourceQuery' => [ 'shape' => 'ResourceQuery', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'CreateGroupOutput' => [ 'type' => 'structure', 'members' => [ 'Group' => [ 'shape' => 'Group', ], 'ResourceQuery' => [ 'shape' => 'ResourceQuery', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'DeleteGroupInput' => [ 'type' => 'structure', 'required' => [ 'GroupName', ], 'members' => [ 'GroupName' => [ 'shape' => 'GroupName', 'location' => 'uri', 'locationName' => 'GroupName', ], ], ], 'DeleteGroupOutput' => [ 'type' => 'structure', 'members' => [ 'Group' => [ 'shape' => 'Group', ], ], ], 'ErrorMessage' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'ForbiddenException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, ], 'GetGroupInput' => [ 'type' => 'structure', 'required' => [ 'GroupName', ], 'members' => [ 'GroupName' => [ 'shape' => 'GroupName', 'location' => 'uri', 'locationName' => 'GroupName', ], ], ], 'GetGroupOutput' => [ 'type' => 'structure', 'members' => [ 'Group' => [ 'shape' => 'Group', ], ], ], 'GetGroupQueryInput' => [ 'type' => 'structure', 'required' => [ 'GroupName', ], 'members' => [ 'GroupName' => [ 'shape' => 'GroupName', 'location' => 'uri', 'locationName' => 'GroupName', ], ], ], 'GetGroupQueryOutput' => [ 'type' => 'structure', 'members' => [ 'GroupQuery' => [ 'shape' => 'GroupQuery', ], ], ], 'GetTagsInput' => [ 'type' => 'structure', 'required' => [ 'Arn', ], 'members' => [ 'Arn' => [ 'shape' => 'GroupArn', 'location' => 'uri', 'locationName' => 'Arn', ], ], ], 'GetTagsOutput' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'GroupArn', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'Group' => [ 'type' => 'structure', 'required' => [ 'GroupArn', 'Name', ], 'members' => [ 'GroupArn' => [ 'shape' => 'GroupArn', ], 'Name' => [ 'shape' => 'GroupName', ], 'Description' => [ 'shape' => 'GroupDescription', ], ], ], 'GroupArn' => [ 'type' => 'string', 'pattern' => 'arn:aws:resource-groups:[a-z]{2}-[a-z]+-\\d{1}:[0-9]{12}:group/[a-zA-Z0-9_\\.-]{1,128}', ], 'GroupDescription' => [ 'type' => 'string', 'max' => 512, 'pattern' => '[\\sa-zA-Z0-9_\\.-]*', ], 'GroupFilter' => [ 'type' => 'structure', 'required' => [ 'Name', 'Values', ], 'members' => [ 'Name' => [ 'shape' => 'GroupFilterName', ], 'Values' => [ 'shape' => 'GroupFilterValues', ], ], ], 'GroupFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GroupFilter', ], ], 'GroupFilterName' => [ 'type' => 'string', 'enum' => [ 'resource-type', ], ], 'GroupFilterValue' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'GroupFilterValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'GroupFilterValue', ], 'max' => 5, 'min' => 1, ], 'GroupIdentifier' => [ 'type' => 'structure', 'members' => [ 'GroupName' => [ 'shape' => 'GroupName', ], 'GroupArn' => [ 'shape' => 'GroupArn', ], ], ], 'GroupIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GroupIdentifier', ], ], 'GroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Group', ], ], 'GroupName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9_\\.-]+', ], 'GroupQuery' => [ 'type' => 'structure', 'required' => [ 'GroupName', 'ResourceQuery', ], 'members' => [ 'GroupName' => [ 'shape' => 'GroupName', ], 'ResourceQuery' => [ 'shape' => 'ResourceQuery', ], ], ], 'InternalServerErrorException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, ], 'ListGroupResourcesInput' => [ 'type' => 'structure', 'required' => [ 'GroupName', ], 'members' => [ 'GroupName' => [ 'shape' => 'GroupName', 'location' => 'uri', 'locationName' => 'GroupName', ], 'Filters' => [ 'shape' => 'ResourceFilterList', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListGroupResourcesOutput' => [ 'type' => 'structure', 'members' => [ 'ResourceIdentifiers' => [ 'shape' => 'ResourceIdentifierList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'QueryErrors' => [ 'shape' => 'QueryErrorList', ], ], ], 'ListGroupsInput' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'GroupFilterList', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListGroupsOutput' => [ 'type' => 'structure', 'members' => [ 'GroupIdentifiers' => [ 'shape' => 'GroupIdentifierList', ], 'Groups' => [ 'shape' => 'GroupList', 'deprecated' => true, 'deprecatedMessage' => 'This field is deprecated, use GroupIdentifiers instead.', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'MaxResults' => [ 'type' => 'integer', 'max' => 50, 'min' => 1, ], 'MethodNotAllowedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 405, ], 'exception' => true, ], 'NextToken' => [ 'type' => 'string', ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'Query' => [ 'type' => 'string', 'max' => 2048, ], 'QueryError' => [ 'type' => 'structure', 'members' => [ 'ErrorCode' => [ 'shape' => 'QueryErrorCode', ], 'Message' => [ 'shape' => 'QueryErrorMessage', ], ], ], 'QueryErrorCode' => [ 'type' => 'string', 'enum' => [ 'CLOUDFORMATION_STACK_INACTIVE', 'CLOUDFORMATION_STACK_NOT_EXISTING', ], ], 'QueryErrorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'QueryError', ], ], 'QueryErrorMessage' => [ 'type' => 'string', ], 'QueryType' => [ 'type' => 'string', 'enum' => [ 'TAG_FILTERS_1_0', 'CLOUDFORMATION_STACK_1_0', ], ], 'ResourceArn' => [ 'type' => 'string', 'pattern' => 'arn:aws:[a-z0-9\\-]*:([a-z]{2}-[a-z]+-\\d{1})?:([0-9]{12})?:.+', ], 'ResourceFilter' => [ 'type' => 'structure', 'required' => [ 'Name', 'Values', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceFilterName', ], 'Values' => [ 'shape' => 'ResourceFilterValues', ], ], ], 'ResourceFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceFilter', ], ], 'ResourceFilterName' => [ 'type' => 'string', 'enum' => [ 'resource-type', ], ], 'ResourceFilterValue' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => 'AWS::[a-zA-Z0-9]+::[a-zA-Z0-9]+', ], 'ResourceFilterValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceFilterValue', ], 'max' => 5, 'min' => 1, ], 'ResourceIdentifier' => [ 'type' => 'structure', 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], ], ], 'ResourceIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceIdentifier', ], ], 'ResourceQuery' => [ 'type' => 'structure', 'required' => [ 'Type', 'Query', ], 'members' => [ 'Type' => [ 'shape' => 'QueryType', ], 'Query' => [ 'shape' => 'Query', ], ], ], 'ResourceType' => [ 'type' => 'string', 'pattern' => 'AWS::[a-zA-Z0-9]+::\\w+', ], 'SearchResourcesInput' => [ 'type' => 'structure', 'required' => [ 'ResourceQuery', ], 'members' => [ 'ResourceQuery' => [ 'shape' => 'ResourceQuery', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'SearchResourcesOutput' => [ 'type' => 'structure', 'members' => [ 'ResourceIdentifiers' => [ 'shape' => 'ResourceIdentifierList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'QueryErrors' => [ 'shape' => 'QueryErrorList', ], ], ], 'TagInput' => [ 'type' => 'structure', 'required' => [ 'Arn', 'Tags', ], 'members' => [ 'Arn' => [ 'shape' => 'GroupArn', 'location' => 'uri', 'locationName' => 'Arn', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagOutput' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'GroupArn', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'Tags' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'UnauthorizedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 401, ], 'exception' => true, ], 'UntagInput' => [ 'type' => 'structure', 'required' => [ 'Arn', 'Keys', ], 'members' => [ 'Arn' => [ 'shape' => 'GroupArn', 'location' => 'uri', 'locationName' => 'Arn', ], 'Keys' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagOutput' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'GroupArn', ], 'Keys' => [ 'shape' => 'TagKeyList', ], ], ], 'UpdateGroupInput' => [ 'type' => 'structure', 'required' => [ 'GroupName', ], 'members' => [ 'GroupName' => [ 'shape' => 'GroupName', 'location' => 'uri', 'locationName' => 'GroupName', ], 'Description' => [ 'shape' => 'GroupDescription', ], ], ], 'UpdateGroupOutput' => [ 'type' => 'structure', 'members' => [ 'Group' => [ 'shape' => 'Group', ], ], ], 'UpdateGroupQueryInput' => [ 'type' => 'structure', 'required' => [ 'GroupName', 'ResourceQuery', ], 'members' => [ 'GroupName' => [ 'shape' => 'GroupName', 'location' => 'uri', 'locationName' => 'GroupName', ], 'ResourceQuery' => [ 'shape' => 'ResourceQuery', ], ], ], 'UpdateGroupQueryOutput' => [ 'type' => 'structure', 'members' => [ 'GroupQuery' => [ 'shape' => 'GroupQuery', ], ], ], ],]; diff --git a/lib/aws/Aws/data/resource-groups/2017-11-27/paginators-1.json.php b/lib/aws/Aws/data/resource-groups/2017-11-27/paginators-1.json.php new file mode 100644 index 0000000..25558b2 --- /dev/null +++ b/lib/aws/Aws/data/resource-groups/2017-11-27/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/resource-groups/2017-11-27/paginators-1.json +return [ 'pagination' => [ 'ListGroupResources' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListGroups' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'SearchResources' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/resourcegroupstaggingapi/2017-01-26/api-2.json.php b/lib/aws/Aws/data/resourcegroupstaggingapi/2017-01-26/api-2.json.php new file mode 100644 index 0000000..603e48b --- /dev/null +++ b/lib/aws/Aws/data/resourcegroupstaggingapi/2017-01-26/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/resourcegroupstaggingapi/2017-01-26/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-01-26', 'endpointPrefix' => 'tagging', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWS Resource Groups Tagging API', 'signatureVersion' => 'v4', 'targetPrefix' => 'ResourceGroupsTaggingAPI_20170126', 'uid' => 'resourcegroupstaggingapi-2017-01-26', ], 'operations' => [ 'GetResources' => [ 'name' => 'GetResources', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetResourcesInput', ], 'output' => [ 'shape' => 'GetResourcesOutput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ThrottledException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'PaginationTokenExpiredException', ], ], ], 'GetTagKeys' => [ 'name' => 'GetTagKeys', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTagKeysInput', ], 'output' => [ 'shape' => 'GetTagKeysOutput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ThrottledException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'PaginationTokenExpiredException', ], ], ], 'GetTagValues' => [ 'name' => 'GetTagValues', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTagValuesInput', ], 'output' => [ 'shape' => 'GetTagValuesOutput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ThrottledException', ], [ 'shape' => 'InternalServiceException', ], [ 'shape' => 'PaginationTokenExpiredException', ], ], ], 'TagResources' => [ 'name' => 'TagResources', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourcesInput', ], 'output' => [ 'shape' => 'TagResourcesOutput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ThrottledException', ], [ 'shape' => 'InternalServiceException', ], ], ], 'UntagResources' => [ 'name' => 'UntagResources', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourcesInput', ], 'output' => [ 'shape' => 'UntagResourcesOutput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ThrottledException', ], [ 'shape' => 'InternalServiceException', ], ], ], ], 'shapes' => [ 'AmazonResourceType' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'ErrorCode' => [ 'type' => 'string', 'enum' => [ 'InternalServiceException', 'InvalidParameterException', ], ], 'ErrorMessage' => [ 'type' => 'string', ], 'ExceptionMessage' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'FailedResourcesMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'ResourceARN', ], 'value' => [ 'shape' => 'FailureInfo', ], ], 'FailureInfo' => [ 'type' => 'structure', 'members' => [ 'StatusCode' => [ 'shape' => 'StatusCode', ], 'ErrorCode' => [ 'shape' => 'ErrorCode', ], 'ErrorMessage' => [ 'shape' => 'ErrorMessage', ], ], ], 'GetResourcesInput' => [ 'type' => 'structure', 'members' => [ 'PaginationToken' => [ 'shape' => 'PaginationToken', ], 'TagFilters' => [ 'shape' => 'TagFilterList', ], 'ResourcesPerPage' => [ 'shape' => 'ResourcesPerPage', ], 'TagsPerPage' => [ 'shape' => 'TagsPerPage', ], 'ResourceTypeFilters' => [ 'shape' => 'ResourceTypeFilterList', ], ], ], 'GetResourcesOutput' => [ 'type' => 'structure', 'members' => [ 'PaginationToken' => [ 'shape' => 'PaginationToken', ], 'ResourceTagMappingList' => [ 'shape' => 'ResourceTagMappingList', ], ], ], 'GetTagKeysInput' => [ 'type' => 'structure', 'members' => [ 'PaginationToken' => [ 'shape' => 'PaginationToken', ], ], ], 'GetTagKeysOutput' => [ 'type' => 'structure', 'members' => [ 'PaginationToken' => [ 'shape' => 'PaginationToken', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'GetTagValuesInput' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'PaginationToken' => [ 'shape' => 'PaginationToken', ], 'Key' => [ 'shape' => 'TagKey', ], ], ], 'GetTagValuesOutput' => [ 'type' => 'structure', 'members' => [ 'PaginationToken' => [ 'shape' => 'PaginationToken', ], 'TagValues' => [ 'shape' => 'TagValuesOutputList', ], ], ], 'InternalServiceException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, 'fault' => true, ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'PaginationToken' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'PaginationTokenExpiredException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'ResourceARN' => [ 'type' => 'string', 'max' => 1600, 'min' => 1, ], 'ResourceARNList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceARN', ], 'max' => 20, 'min' => 1, ], 'ResourceTagMapping' => [ 'type' => 'structure', 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'ResourceTagMappingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceTagMapping', ], ], 'ResourceTypeFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AmazonResourceType', ], ], 'ResourcesPerPage' => [ 'type' => 'integer', ], 'StatusCode' => [ 'type' => 'integer', ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagFilter' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Values' => [ 'shape' => 'TagValueList', ], ], ], 'TagFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagFilter', ], 'max' => 50, 'min' => 0, ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagKeyListForUntag' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 50, 'min' => 1, ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], 'max' => 50, 'min' => 1, ], 'TagResourcesInput' => [ 'type' => 'structure', 'required' => [ 'ResourceARNList', 'Tags', ], 'members' => [ 'ResourceARNList' => [ 'shape' => 'ResourceARNList', ], 'Tags' => [ 'shape' => 'TagMap', ], ], ], 'TagResourcesOutput' => [ 'type' => 'structure', 'members' => [ 'FailedResourcesMap' => [ 'shape' => 'FailedResourcesMap', ], ], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'TagValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagValue', ], 'max' => 20, 'min' => 0, ], 'TagValuesOutputList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagValue', ], ], 'TagsPerPage' => [ 'type' => 'integer', ], 'ThrottledException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'UntagResourcesInput' => [ 'type' => 'structure', 'required' => [ 'ResourceARNList', 'TagKeys', ], 'members' => [ 'ResourceARNList' => [ 'shape' => 'ResourceARNList', ], 'TagKeys' => [ 'shape' => 'TagKeyListForUntag', ], ], ], 'UntagResourcesOutput' => [ 'type' => 'structure', 'members' => [ 'FailedResourcesMap' => [ 'shape' => 'FailedResourcesMap', ], ], ], ],]; diff --git a/lib/aws/Aws/data/resourcegroupstaggingapi/2017-01-26/paginators-1.json.php b/lib/aws/Aws/data/resourcegroupstaggingapi/2017-01-26/paginators-1.json.php new file mode 100644 index 0000000..20e1b8f --- /dev/null +++ b/lib/aws/Aws/data/resourcegroupstaggingapi/2017-01-26/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/resourcegroupstaggingapi/2017-01-26/paginators-1.json +return [ 'pagination' => [ 'GetResources' => [ 'input_token' => 'PaginationToken', 'limit_key' => 'ResourcesPerPage', 'output_token' => 'PaginationToken', 'result_key' => 'ResourceTagMappingList', ], 'GetTagKeys' => [ 'input_token' => 'PaginationToken', 'output_token' => 'PaginationToken', 'result_key' => 'TagKeys', ], 'GetTagValues' => [ 'input_token' => 'PaginationToken', 'output_token' => 'PaginationToken', 'result_key' => 'TagValues', ], ],]; diff --git a/lib/aws/Aws/data/robomaker/2018-06-29/api-2.json.php b/lib/aws/Aws/data/robomaker/2018-06-29/api-2.json.php new file mode 100644 index 0000000..4ad0a27 --- /dev/null +++ b/lib/aws/Aws/data/robomaker/2018-06-29/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/robomaker/2018-06-29/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-06-29', 'endpointPrefix' => 'robomaker', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'RoboMaker', 'serviceFullName' => 'AWS RoboMaker', 'serviceId' => 'RoboMaker', 'signatureVersion' => 'v4', 'signingName' => 'robomaker', 'uid' => 'robomaker-2018-06-29', ], 'operations' => [ 'BatchDescribeSimulationJob' => [ 'name' => 'BatchDescribeSimulationJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/batchDescribeSimulationJob', ], 'input' => [ 'shape' => 'BatchDescribeSimulationJobRequest', ], 'output' => [ 'shape' => 'BatchDescribeSimulationJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CancelSimulationJob' => [ 'name' => 'CancelSimulationJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/cancelSimulationJob', ], 'input' => [ 'shape' => 'CancelSimulationJobRequest', ], 'output' => [ 'shape' => 'CancelSimulationJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateDeploymentJob' => [ 'name' => 'CreateDeploymentJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/createDeploymentJob', ], 'input' => [ 'shape' => 'CreateDeploymentJobRequest', ], 'output' => [ 'shape' => 'CreateDeploymentJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ConcurrentDeploymentException', ], [ 'shape' => 'IdempotentParameterMismatchException', ], ], ], 'CreateFleet' => [ 'name' => 'CreateFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/createFleet', ], 'input' => [ 'shape' => 'CreateFleetRequest', ], 'output' => [ 'shape' => 'CreateFleetResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateRobot' => [ 'name' => 'CreateRobot', 'http' => [ 'method' => 'POST', 'requestUri' => '/createRobot', ], 'input' => [ 'shape' => 'CreateRobotRequest', ], 'output' => [ 'shape' => 'CreateRobotResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], ], ], 'CreateRobotApplication' => [ 'name' => 'CreateRobotApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/createRobotApplication', ], 'input' => [ 'shape' => 'CreateRobotApplicationRequest', ], 'output' => [ 'shape' => 'CreateRobotApplicationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'IdempotentParameterMismatchException', ], ], ], 'CreateRobotApplicationVersion' => [ 'name' => 'CreateRobotApplicationVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/createRobotApplicationVersion', ], 'input' => [ 'shape' => 'CreateRobotApplicationVersionRequest', ], 'output' => [ 'shape' => 'CreateRobotApplicationVersionResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'IdempotentParameterMismatchException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateSimulationApplication' => [ 'name' => 'CreateSimulationApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/createSimulationApplication', ], 'input' => [ 'shape' => 'CreateSimulationApplicationRequest', ], 'output' => [ 'shape' => 'CreateSimulationApplicationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'IdempotentParameterMismatchException', ], ], ], 'CreateSimulationApplicationVersion' => [ 'name' => 'CreateSimulationApplicationVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/createSimulationApplicationVersion', ], 'input' => [ 'shape' => 'CreateSimulationApplicationVersionRequest', ], 'output' => [ 'shape' => 'CreateSimulationApplicationVersionResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'IdempotentParameterMismatchException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateSimulationJob' => [ 'name' => 'CreateSimulationJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/createSimulationJob', ], 'input' => [ 'shape' => 'CreateSimulationJobRequest', ], 'output' => [ 'shape' => 'CreateSimulationJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'IdempotentParameterMismatchException', ], ], ], 'DeleteFleet' => [ 'name' => 'DeleteFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/deleteFleet', ], 'input' => [ 'shape' => 'DeleteFleetRequest', ], 'output' => [ 'shape' => 'DeleteFleetResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteRobot' => [ 'name' => 'DeleteRobot', 'http' => [ 'method' => 'POST', 'requestUri' => '/deleteRobot', ], 'input' => [ 'shape' => 'DeleteRobotRequest', ], 'output' => [ 'shape' => 'DeleteRobotResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteRobotApplication' => [ 'name' => 'DeleteRobotApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/deleteRobotApplication', ], 'input' => [ 'shape' => 'DeleteRobotApplicationRequest', ], 'output' => [ 'shape' => 'DeleteRobotApplicationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DeleteSimulationApplication' => [ 'name' => 'DeleteSimulationApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/deleteSimulationApplication', ], 'input' => [ 'shape' => 'DeleteSimulationApplicationRequest', ], 'output' => [ 'shape' => 'DeleteSimulationApplicationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DeregisterRobot' => [ 'name' => 'DeregisterRobot', 'http' => [ 'method' => 'POST', 'requestUri' => '/deregisterRobot', ], 'input' => [ 'shape' => 'DeregisterRobotRequest', ], 'output' => [ 'shape' => 'DeregisterRobotResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeDeploymentJob' => [ 'name' => 'DescribeDeploymentJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/describeDeploymentJob', ], 'input' => [ 'shape' => 'DescribeDeploymentJobRequest', ], 'output' => [ 'shape' => 'DescribeDeploymentJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DescribeFleet' => [ 'name' => 'DescribeFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/describeFleet', ], 'input' => [ 'shape' => 'DescribeFleetRequest', ], 'output' => [ 'shape' => 'DescribeFleetResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DescribeRobot' => [ 'name' => 'DescribeRobot', 'http' => [ 'method' => 'POST', 'requestUri' => '/describeRobot', ], 'input' => [ 'shape' => 'DescribeRobotRequest', ], 'output' => [ 'shape' => 'DescribeRobotResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DescribeRobotApplication' => [ 'name' => 'DescribeRobotApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/describeRobotApplication', ], 'input' => [ 'shape' => 'DescribeRobotApplicationRequest', ], 'output' => [ 'shape' => 'DescribeRobotApplicationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DescribeSimulationApplication' => [ 'name' => 'DescribeSimulationApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/describeSimulationApplication', ], 'input' => [ 'shape' => 'DescribeSimulationApplicationRequest', ], 'output' => [ 'shape' => 'DescribeSimulationApplicationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DescribeSimulationJob' => [ 'name' => 'DescribeSimulationJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/describeSimulationJob', ], 'input' => [ 'shape' => 'DescribeSimulationJobRequest', ], 'output' => [ 'shape' => 'DescribeSimulationJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListDeploymentJobs' => [ 'name' => 'ListDeploymentJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/listDeploymentJobs', ], 'input' => [ 'shape' => 'ListDeploymentJobsRequest', ], 'output' => [ 'shape' => 'ListDeploymentJobsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListFleets' => [ 'name' => 'ListFleets', 'http' => [ 'method' => 'POST', 'requestUri' => '/listFleets', ], 'input' => [ 'shape' => 'ListFleetsRequest', ], 'output' => [ 'shape' => 'ListFleetsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListRobotApplications' => [ 'name' => 'ListRobotApplications', 'http' => [ 'method' => 'POST', 'requestUri' => '/listRobotApplications', ], 'input' => [ 'shape' => 'ListRobotApplicationsRequest', ], 'output' => [ 'shape' => 'ListRobotApplicationsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ListRobots' => [ 'name' => 'ListRobots', 'http' => [ 'method' => 'POST', 'requestUri' => '/listRobots', ], 'input' => [ 'shape' => 'ListRobotsRequest', ], 'output' => [ 'shape' => 'ListRobotsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListSimulationApplications' => [ 'name' => 'ListSimulationApplications', 'http' => [ 'method' => 'POST', 'requestUri' => '/listSimulationApplications', ], 'input' => [ 'shape' => 'ListSimulationApplicationsRequest', ], 'output' => [ 'shape' => 'ListSimulationApplicationsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ListSimulationJobs' => [ 'name' => 'ListSimulationJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/listSimulationJobs', ], 'input' => [ 'shape' => 'ListSimulationJobsRequest', ], 'output' => [ 'shape' => 'ListSimulationJobsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/tags/{resourceArn}', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'RegisterRobot' => [ 'name' => 'RegisterRobot', 'http' => [ 'method' => 'POST', 'requestUri' => '/registerRobot', ], 'input' => [ 'shape' => 'RegisterRobotRequest', ], 'output' => [ 'shape' => 'RegisterRobotResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'RestartSimulationJob' => [ 'name' => 'RestartSimulationJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/restartSimulationJob', ], 'input' => [ 'shape' => 'RestartSimulationJobRequest', ], 'output' => [ 'shape' => 'RestartSimulationJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServerException', ], ], ], 'SyncDeploymentJob' => [ 'name' => 'SyncDeploymentJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/syncDeploymentJob', ], 'input' => [ 'shape' => 'SyncDeploymentJobRequest', ], 'output' => [ 'shape' => 'SyncDeploymentJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ConcurrentDeploymentException', ], [ 'shape' => 'IdempotentParameterMismatchException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/tags/{resourceArn}', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/tags/{resourceArn}', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdateRobotApplication' => [ 'name' => 'UpdateRobotApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/updateRobotApplication', ], 'input' => [ 'shape' => 'UpdateRobotApplicationRequest', ], 'output' => [ 'shape' => 'UpdateRobotApplicationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateSimulationApplication' => [ 'name' => 'UpdateSimulationApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/updateSimulationApplication', ], 'input' => [ 'shape' => 'UpdateSimulationApplicationRequest', ], 'output' => [ 'shape' => 'UpdateSimulationApplicationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], ], 'shapes' => [ 'Architecture' => [ 'type' => 'string', 'enum' => [ 'X86_64', 'ARM64', 'ARMHF', ], ], 'Arn' => [ 'type' => 'string', 'max' => 1224, 'min' => 1, 'pattern' => 'arn:.*', ], 'Arns' => [ 'type' => 'list', 'member' => [ 'shape' => 'Arn', ], 'max' => 100, 'min' => 1, ], 'BatchDescribeSimulationJobRequest' => [ 'type' => 'structure', 'required' => [ 'jobs', ], 'members' => [ 'jobs' => [ 'shape' => 'Arns', ], ], ], 'BatchDescribeSimulationJobResponse' => [ 'type' => 'structure', 'members' => [ 'jobs' => [ 'shape' => 'SimulationJobs', ], 'unprocessedJobs' => [ 'shape' => 'Arns', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'CancelSimulationJobRequest' => [ 'type' => 'structure', 'required' => [ 'job', ], 'members' => [ 'job' => [ 'shape' => 'Arn', ], ], ], 'CancelSimulationJobResponse' => [ 'type' => 'structure', 'members' => [], ], 'ClientRequestToken' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9_\\-=]*', ], 'Command' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.\\-]*', ], 'ConcurrentDeploymentException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'CreateDeploymentJobRequest' => [ 'type' => 'structure', 'required' => [ 'clientRequestToken', 'fleet', 'deploymentApplicationConfigs', ], 'members' => [ 'deploymentConfig' => [ 'shape' => 'DeploymentConfig', ], 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'fleet' => [ 'shape' => 'Arn', ], 'deploymentApplicationConfigs' => [ 'shape' => 'DeploymentApplicationConfigs', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateDeploymentJobResponse' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'fleet' => [ 'shape' => 'Arn', ], 'status' => [ 'shape' => 'DeploymentStatus', ], 'deploymentApplicationConfigs' => [ 'shape' => 'DeploymentApplicationConfigs', ], 'failureReason' => [ 'shape' => 'GenericString', ], 'failureCode' => [ 'shape' => 'DeploymentJobErrorCode', ], 'createdAt' => [ 'shape' => 'CreatedAt', ], 'deploymentConfig' => [ 'shape' => 'DeploymentConfig', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateFleetRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateFleetResponse' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'createdAt' => [ 'shape' => 'CreatedAt', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateRobotApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'sources', 'robotSoftwareSuite', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'sources' => [ 'shape' => 'SourceConfigs', ], 'robotSoftwareSuite' => [ 'shape' => 'RobotSoftwareSuite', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateRobotApplicationResponse' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'version' => [ 'shape' => 'Version', ], 'sources' => [ 'shape' => 'Sources', ], 'robotSoftwareSuite' => [ 'shape' => 'RobotSoftwareSuite', ], 'lastUpdatedAt' => [ 'shape' => 'LastUpdatedAt', ], 'revisionId' => [ 'shape' => 'RevisionId', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateRobotApplicationVersionRequest' => [ 'type' => 'structure', 'required' => [ 'application', ], 'members' => [ 'application' => [ 'shape' => 'Arn', ], 'currentRevisionId' => [ 'shape' => 'RevisionId', ], ], ], 'CreateRobotApplicationVersionResponse' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'version' => [ 'shape' => 'Version', ], 'sources' => [ 'shape' => 'Sources', ], 'robotSoftwareSuite' => [ 'shape' => 'RobotSoftwareSuite', ], 'lastUpdatedAt' => [ 'shape' => 'LastUpdatedAt', ], 'revisionId' => [ 'shape' => 'RevisionId', ], ], ], 'CreateRobotRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'architecture', 'greengrassGroupId', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'architecture' => [ 'shape' => 'Architecture', ], 'greengrassGroupId' => [ 'shape' => 'Id', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateRobotResponse' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'createdAt' => [ 'shape' => 'CreatedAt', ], 'greengrassGroupId' => [ 'shape' => 'Id', ], 'architecture' => [ 'shape' => 'Architecture', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateSimulationApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'sources', 'simulationSoftwareSuite', 'robotSoftwareSuite', 'renderingEngine', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'sources' => [ 'shape' => 'SourceConfigs', ], 'simulationSoftwareSuite' => [ 'shape' => 'SimulationSoftwareSuite', ], 'robotSoftwareSuite' => [ 'shape' => 'RobotSoftwareSuite', ], 'renderingEngine' => [ 'shape' => 'RenderingEngine', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateSimulationApplicationResponse' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'version' => [ 'shape' => 'Version', ], 'sources' => [ 'shape' => 'Sources', ], 'simulationSoftwareSuite' => [ 'shape' => 'SimulationSoftwareSuite', ], 'robotSoftwareSuite' => [ 'shape' => 'RobotSoftwareSuite', ], 'renderingEngine' => [ 'shape' => 'RenderingEngine', ], 'lastUpdatedAt' => [ 'shape' => 'LastUpdatedAt', ], 'revisionId' => [ 'shape' => 'RevisionId', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateSimulationApplicationVersionRequest' => [ 'type' => 'structure', 'required' => [ 'application', ], 'members' => [ 'application' => [ 'shape' => 'Arn', ], 'currentRevisionId' => [ 'shape' => 'RevisionId', ], ], ], 'CreateSimulationApplicationVersionResponse' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'version' => [ 'shape' => 'Version', ], 'sources' => [ 'shape' => 'Sources', ], 'simulationSoftwareSuite' => [ 'shape' => 'SimulationSoftwareSuite', ], 'robotSoftwareSuite' => [ 'shape' => 'RobotSoftwareSuite', ], 'renderingEngine' => [ 'shape' => 'RenderingEngine', ], 'lastUpdatedAt' => [ 'shape' => 'LastUpdatedAt', ], 'revisionId' => [ 'shape' => 'RevisionId', ], ], ], 'CreateSimulationJobRequest' => [ 'type' => 'structure', 'required' => [ 'maxJobDurationInSeconds', 'iamRole', ], 'members' => [ 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'outputLocation' => [ 'shape' => 'OutputLocation', ], 'maxJobDurationInSeconds' => [ 'shape' => 'JobDuration', ], 'iamRole' => [ 'shape' => 'IamRole', ], 'failureBehavior' => [ 'shape' => 'FailureBehavior', ], 'robotApplications' => [ 'shape' => 'RobotApplicationConfigs', ], 'simulationApplications' => [ 'shape' => 'SimulationApplicationConfigs', ], 'tags' => [ 'shape' => 'TagMap', ], 'vpcConfig' => [ 'shape' => 'VPCConfig', ], ], ], 'CreateSimulationJobResponse' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'status' => [ 'shape' => 'SimulationJobStatus', ], 'lastUpdatedAt' => [ 'shape' => 'LastUpdatedAt', ], 'failureBehavior' => [ 'shape' => 'FailureBehavior', ], 'failureCode' => [ 'shape' => 'SimulationJobErrorCode', ], 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', ], 'outputLocation' => [ 'shape' => 'OutputLocation', ], 'maxJobDurationInSeconds' => [ 'shape' => 'JobDuration', ], 'simulationTimeMillis' => [ 'shape' => 'SimulationTimeMillis', ], 'iamRole' => [ 'shape' => 'IamRole', ], 'robotApplications' => [ 'shape' => 'RobotApplicationConfigs', ], 'simulationApplications' => [ 'shape' => 'SimulationApplicationConfigs', ], 'tags' => [ 'shape' => 'TagMap', ], 'vpcConfig' => [ 'shape' => 'VPCConfigResponse', ], ], ], 'CreatedAt' => [ 'type' => 'timestamp', ], 'DeleteFleetRequest' => [ 'type' => 'structure', 'required' => [ 'fleet', ], 'members' => [ 'fleet' => [ 'shape' => 'Arn', ], ], ], 'DeleteFleetResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteRobotApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'application', ], 'members' => [ 'application' => [ 'shape' => 'Arn', ], 'applicationVersion' => [ 'shape' => 'Version', ], ], ], 'DeleteRobotApplicationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteRobotRequest' => [ 'type' => 'structure', 'required' => [ 'robot', ], 'members' => [ 'robot' => [ 'shape' => 'Arn', ], ], ], 'DeleteRobotResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteSimulationApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'application', ], 'members' => [ 'application' => [ 'shape' => 'Arn', ], 'applicationVersion' => [ 'shape' => 'Version', ], ], ], 'DeleteSimulationApplicationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeploymentApplicationConfig' => [ 'type' => 'structure', 'required' => [ 'application', 'applicationVersion', 'launchConfig', ], 'members' => [ 'application' => [ 'shape' => 'Arn', ], 'applicationVersion' => [ 'shape' => 'DeploymentVersion', ], 'launchConfig' => [ 'shape' => 'DeploymentLaunchConfig', ], ], ], 'DeploymentApplicationConfigs' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeploymentApplicationConfig', ], 'max' => 1, 'min' => 1, ], 'DeploymentConfig' => [ 'type' => 'structure', 'members' => [ 'concurrentDeploymentPercentage' => [ 'shape' => 'Percentage', ], 'failureThresholdPercentage' => [ 'shape' => 'Percentage', ], ], ], 'DeploymentJob' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'fleet' => [ 'shape' => 'Arn', ], 'status' => [ 'shape' => 'DeploymentStatus', ], 'deploymentApplicationConfigs' => [ 'shape' => 'DeploymentApplicationConfigs', ], 'deploymentConfig' => [ 'shape' => 'DeploymentConfig', ], 'failureReason' => [ 'shape' => 'GenericString', ], 'failureCode' => [ 'shape' => 'DeploymentJobErrorCode', ], 'createdAt' => [ 'shape' => 'CreatedAt', ], ], ], 'DeploymentJobErrorCode' => [ 'type' => 'string', 'enum' => [ 'ResourceNotFound', 'EnvironmentSetupError', 'EtagMismatch', 'FailureThresholdBreached', 'RobotDeploymentNoResponse', 'RobotAgentConnectionTimeout', 'GreengrassDeploymentFailed', 'MissingRobotArchitecture', 'MissingRobotApplicationArchitecture', 'MissingRobotDeploymentResource', 'GreengrassGroupVersionDoesNotExist', 'ExtractingBundleFailure', 'PreLaunchFileFailure', 'PostLaunchFileFailure', 'BadPermissionError', 'InternalServerError', ], ], 'DeploymentJobs' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeploymentJob', ], 'max' => 200, 'min' => 0, ], 'DeploymentLaunchConfig' => [ 'type' => 'structure', 'required' => [ 'packageName', 'launchFile', ], 'members' => [ 'packageName' => [ 'shape' => 'Command', ], 'preLaunchFile' => [ 'shape' => 'Path', ], 'launchFile' => [ 'shape' => 'Command', ], 'postLaunchFile' => [ 'shape' => 'Path', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariableMap', ], ], ], 'DeploymentStatus' => [ 'type' => 'string', 'enum' => [ 'Pending', 'Preparing', 'InProgress', 'Failed', 'Succeeded', ], ], 'DeploymentVersion' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[0-9]*', ], 'DeregisterRobotRequest' => [ 'type' => 'structure', 'required' => [ 'fleet', 'robot', ], 'members' => [ 'fleet' => [ 'shape' => 'Arn', ], 'robot' => [ 'shape' => 'Arn', ], ], ], 'DeregisterRobotResponse' => [ 'type' => 'structure', 'members' => [ 'fleet' => [ 'shape' => 'Arn', ], 'robot' => [ 'shape' => 'Arn', ], ], ], 'DescribeDeploymentJobRequest' => [ 'type' => 'structure', 'required' => [ 'job', ], 'members' => [ 'job' => [ 'shape' => 'Arn', ], ], ], 'DescribeDeploymentJobResponse' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'fleet' => [ 'shape' => 'Arn', ], 'status' => [ 'shape' => 'DeploymentStatus', ], 'deploymentConfig' => [ 'shape' => 'DeploymentConfig', ], 'deploymentApplicationConfigs' => [ 'shape' => 'DeploymentApplicationConfigs', ], 'failureReason' => [ 'shape' => 'GenericString', ], 'failureCode' => [ 'shape' => 'DeploymentJobErrorCode', ], 'createdAt' => [ 'shape' => 'CreatedAt', ], 'robotDeploymentSummary' => [ 'shape' => 'RobotDeploymentSummary', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'DescribeFleetRequest' => [ 'type' => 'structure', 'required' => [ 'fleet', ], 'members' => [ 'fleet' => [ 'shape' => 'Arn', ], ], ], 'DescribeFleetResponse' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'Name', ], 'arn' => [ 'shape' => 'Arn', ], 'robots' => [ 'shape' => 'Robots', ], 'createdAt' => [ 'shape' => 'CreatedAt', ], 'lastDeploymentStatus' => [ 'shape' => 'DeploymentStatus', ], 'lastDeploymentJob' => [ 'shape' => 'Arn', ], 'lastDeploymentTime' => [ 'shape' => 'CreatedAt', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'DescribeRobotApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'application', ], 'members' => [ 'application' => [ 'shape' => 'Arn', ], 'applicationVersion' => [ 'shape' => 'Version', ], ], ], 'DescribeRobotApplicationResponse' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'version' => [ 'shape' => 'Version', ], 'sources' => [ 'shape' => 'Sources', ], 'robotSoftwareSuite' => [ 'shape' => 'RobotSoftwareSuite', ], 'revisionId' => [ 'shape' => 'RevisionId', ], 'lastUpdatedAt' => [ 'shape' => 'LastUpdatedAt', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'DescribeRobotRequest' => [ 'type' => 'structure', 'required' => [ 'robot', ], 'members' => [ 'robot' => [ 'shape' => 'Arn', ], ], ], 'DescribeRobotResponse' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'fleetArn' => [ 'shape' => 'Arn', ], 'status' => [ 'shape' => 'RobotStatus', ], 'greengrassGroupId' => [ 'shape' => 'Id', ], 'createdAt' => [ 'shape' => 'CreatedAt', ], 'architecture' => [ 'shape' => 'Architecture', ], 'lastDeploymentJob' => [ 'shape' => 'Arn', ], 'lastDeploymentTime' => [ 'shape' => 'CreatedAt', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'DescribeSimulationApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'application', ], 'members' => [ 'application' => [ 'shape' => 'Arn', ], 'applicationVersion' => [ 'shape' => 'Version', ], ], ], 'DescribeSimulationApplicationResponse' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'version' => [ 'shape' => 'Version', ], 'sources' => [ 'shape' => 'Sources', ], 'simulationSoftwareSuite' => [ 'shape' => 'SimulationSoftwareSuite', ], 'robotSoftwareSuite' => [ 'shape' => 'RobotSoftwareSuite', ], 'renderingEngine' => [ 'shape' => 'RenderingEngine', ], 'revisionId' => [ 'shape' => 'RevisionId', ], 'lastUpdatedAt' => [ 'shape' => 'LastUpdatedAt', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'DescribeSimulationJobRequest' => [ 'type' => 'structure', 'required' => [ 'job', ], 'members' => [ 'job' => [ 'shape' => 'Arn', ], ], ], 'DescribeSimulationJobResponse' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'status' => [ 'shape' => 'SimulationJobStatus', ], 'lastUpdatedAt' => [ 'shape' => 'LastUpdatedAt', ], 'failureBehavior' => [ 'shape' => 'FailureBehavior', ], 'failureCode' => [ 'shape' => 'SimulationJobErrorCode', ], 'failureReason' => [ 'shape' => 'GenericString', ], 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', ], 'outputLocation' => [ 'shape' => 'OutputLocation', ], 'maxJobDurationInSeconds' => [ 'shape' => 'JobDuration', ], 'simulationTimeMillis' => [ 'shape' => 'SimulationTimeMillis', ], 'iamRole' => [ 'shape' => 'IamRole', ], 'robotApplications' => [ 'shape' => 'RobotApplicationConfigs', ], 'simulationApplications' => [ 'shape' => 'SimulationApplicationConfigs', ], 'tags' => [ 'shape' => 'TagMap', ], 'vpcConfig' => [ 'shape' => 'VPCConfigResponse', ], ], ], 'EnvironmentVariableKey' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '[A-Z_][A-Z0-9_]*', ], 'EnvironmentVariableMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'EnvironmentVariableKey', ], 'value' => [ 'shape' => 'EnvironmentVariableValue', ], 'max' => 16, 'min' => 0, ], 'EnvironmentVariableValue' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'FailureBehavior' => [ 'type' => 'string', 'enum' => [ 'Fail', 'Continue', ], ], 'Filter' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'Name', ], 'values' => [ 'shape' => 'FilterValues', ], ], ], 'FilterValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'Name', ], 'max' => 1, 'min' => 1, ], 'Filters' => [ 'type' => 'list', 'member' => [ 'shape' => 'Filter', ], 'max' => 1, 'min' => 1, ], 'Fleet' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'Name', ], 'arn' => [ 'shape' => 'Arn', ], 'createdAt' => [ 'shape' => 'CreatedAt', ], 'lastDeploymentStatus' => [ 'shape' => 'DeploymentStatus', ], 'lastDeploymentJob' => [ 'shape' => 'Arn', ], 'lastDeploymentTime' => [ 'shape' => 'CreatedAt', ], ], ], 'Fleets' => [ 'type' => 'list', 'member' => [ 'shape' => 'Fleet', ], 'max' => 200, 'min' => 0, ], 'GenericInteger' => [ 'type' => 'integer', ], 'GenericString' => [ 'type' => 'string', ], 'IamRole' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => 'arn:.*', ], 'Id' => [ 'type' => 'string', 'max' => 1224, 'min' => 1, ], 'IdempotentParameterMismatchException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InternalServerException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'JobDuration' => [ 'type' => 'long', ], 'LastUpdatedAt' => [ 'type' => 'timestamp', ], 'LaunchConfig' => [ 'type' => 'structure', 'required' => [ 'packageName', 'launchFile', ], 'members' => [ 'packageName' => [ 'shape' => 'Command', ], 'launchFile' => [ 'shape' => 'Command', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariableMap', ], ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ListDeploymentJobsRequest' => [ 'type' => 'structure', 'members' => [ 'filters' => [ 'shape' => 'Filters', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListDeploymentJobsResponse' => [ 'type' => 'structure', 'members' => [ 'deploymentJobs' => [ 'shape' => 'DeploymentJobs', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListFleetsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'MaxResults', ], 'filters' => [ 'shape' => 'Filters', ], ], ], 'ListFleetsResponse' => [ 'type' => 'structure', 'members' => [ 'fleetDetails' => [ 'shape' => 'Fleets', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListRobotApplicationsRequest' => [ 'type' => 'structure', 'members' => [ 'versionQualifier' => [ 'shape' => 'VersionQualifier', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'MaxResults', ], 'filters' => [ 'shape' => 'Filters', ], ], ], 'ListRobotApplicationsResponse' => [ 'type' => 'structure', 'members' => [ 'robotApplicationSummaries' => [ 'shape' => 'RobotApplicationSummaries', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListRobotsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'MaxResults', ], 'filters' => [ 'shape' => 'Filters', ], ], ], 'ListRobotsResponse' => [ 'type' => 'structure', 'members' => [ 'robots' => [ 'shape' => 'Robots', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListSimulationApplicationsRequest' => [ 'type' => 'structure', 'members' => [ 'versionQualifier' => [ 'shape' => 'VersionQualifier', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'MaxResults', ], 'filters' => [ 'shape' => 'Filters', ], ], ], 'ListSimulationApplicationsResponse' => [ 'type' => 'structure', 'members' => [ 'simulationApplicationSummaries' => [ 'shape' => 'SimulationApplicationSummaries', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListSimulationJobsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'PaginationToken', ], 'maxResults' => [ 'shape' => 'MaxResults', ], 'filters' => [ 'shape' => 'Filters', ], ], ], 'ListSimulationJobsResponse' => [ 'type' => 'structure', 'required' => [ 'simulationJobSummaries', ], 'members' => [ 'simulationJobSummaries' => [ 'shape' => 'SimulationJobSummaries', ], 'nextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', 'location' => 'uri', 'locationName' => 'resourceArn', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'tags' => [ 'shape' => 'TagMap', ], ], ], 'MaxResults' => [ 'type' => 'integer', ], 'Name' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[a-zA-Z0-9_\\-]*', ], 'OutputLocation' => [ 'type' => 'structure', 'members' => [ 's3Bucket' => [ 'shape' => 'S3Bucket', ], 's3Prefix' => [ 'shape' => 'S3Key', ], ], ], 'PaginationToken' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.\\-\\/+=]*', ], 'Path' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'PercentDone' => [ 'type' => 'float', 'max' => 100, 'min' => 0, ], 'Percentage' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'ProgressDetail' => [ 'type' => 'structure', 'members' => [ 'currentProgress' => [ 'shape' => 'RobotDeploymentStep', ], 'percentDone' => [ 'shape' => 'PercentDone', ], 'estimatedTimeRemainingSeconds' => [ 'shape' => 'GenericInteger', ], 'targetResource' => [ 'shape' => 'GenericString', ], ], ], 'RegisterRobotRequest' => [ 'type' => 'structure', 'required' => [ 'fleet', 'robot', ], 'members' => [ 'fleet' => [ 'shape' => 'Arn', ], 'robot' => [ 'shape' => 'Arn', ], ], ], 'RegisterRobotResponse' => [ 'type' => 'structure', 'members' => [ 'fleet' => [ 'shape' => 'Arn', ], 'robot' => [ 'shape' => 'Arn', ], ], ], 'RenderingEngine' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'RenderingEngineType', ], 'version' => [ 'shape' => 'RenderingEngineVersionType', ], ], ], 'RenderingEngineType' => [ 'type' => 'string', 'enum' => [ 'OGRE', ], ], 'RenderingEngineVersionType' => [ 'type' => 'string', 'pattern' => '1.x', ], 'ResourceAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'RestartSimulationJobRequest' => [ 'type' => 'structure', 'required' => [ 'job', ], 'members' => [ 'job' => [ 'shape' => 'Arn', ], ], ], 'RestartSimulationJobResponse' => [ 'type' => 'structure', 'members' => [], ], 'RevisionId' => [ 'type' => 'string', 'max' => 40, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.\\-]*', ], 'Robot' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'fleetArn' => [ 'shape' => 'Arn', ], 'status' => [ 'shape' => 'RobotStatus', ], 'greenGrassGroupId' => [ 'shape' => 'Id', ], 'createdAt' => [ 'shape' => 'CreatedAt', ], 'architecture' => [ 'shape' => 'Architecture', ], 'lastDeploymentJob' => [ 'shape' => 'Arn', ], 'lastDeploymentTime' => [ 'shape' => 'CreatedAt', ], ], ], 'RobotApplicationConfig' => [ 'type' => 'structure', 'required' => [ 'application', 'launchConfig', ], 'members' => [ 'application' => [ 'shape' => 'Arn', ], 'applicationVersion' => [ 'shape' => 'Version', ], 'launchConfig' => [ 'shape' => 'LaunchConfig', ], ], ], 'RobotApplicationConfigs' => [ 'type' => 'list', 'member' => [ 'shape' => 'RobotApplicationConfig', ], 'max' => 1, 'min' => 1, ], 'RobotApplicationNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'Name', ], 'max' => 1, 'min' => 1, ], 'RobotApplicationSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'RobotApplicationSummary', ], 'max' => 100, 'min' => 0, ], 'RobotApplicationSummary' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'Name', ], 'arn' => [ 'shape' => 'Arn', ], 'version' => [ 'shape' => 'Version', ], 'lastUpdatedAt' => [ 'shape' => 'LastUpdatedAt', ], ], ], 'RobotDeployment' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'deploymentStartTime' => [ 'shape' => 'CreatedAt', ], 'deploymentFinishTime' => [ 'shape' => 'CreatedAt', ], 'status' => [ 'shape' => 'RobotStatus', ], 'progressDetail' => [ 'shape' => 'ProgressDetail', ], 'failureReason' => [ 'shape' => 'GenericString', ], 'failureCode' => [ 'shape' => 'DeploymentJobErrorCode', ], ], ], 'RobotDeploymentStep' => [ 'type' => 'string', 'enum' => [ 'Validating', 'DownloadingExtracting', 'ExecutingPreLaunch', 'Launching', 'ExecutingPostLaunch', 'Finished', ], ], 'RobotDeploymentSummary' => [ 'type' => 'list', 'member' => [ 'shape' => 'RobotDeployment', ], ], 'RobotSoftwareSuite' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'RobotSoftwareSuiteType', ], 'version' => [ 'shape' => 'RobotSoftwareSuiteVersionType', ], ], ], 'RobotSoftwareSuiteType' => [ 'type' => 'string', 'enum' => [ 'ROS', ], ], 'RobotSoftwareSuiteVersionType' => [ 'type' => 'string', 'enum' => [ 'Kinetic', ], ], 'RobotStatus' => [ 'type' => 'string', 'enum' => [ 'Available', 'Registered', 'PendingNewDeployment', 'Deploying', 'Failed', 'InSync', 'NoResponse', ], ], 'Robots' => [ 'type' => 'list', 'member' => [ 'shape' => 'Robot', ], 'max' => 1000, 'min' => 0, ], 'S3Bucket' => [ 'type' => 'string', 'max' => 63, 'min' => 3, 'pattern' => '[a-z0-9][a-z0-9\\-]*[a-z0-9]', ], 'S3Etag' => [ 'type' => 'string', ], 'S3Key' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '.*', ], 'SecurityGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'GenericString', ], 'max' => 5, 'min' => 1, ], 'SimulationApplicationConfig' => [ 'type' => 'structure', 'required' => [ 'application', 'launchConfig', ], 'members' => [ 'application' => [ 'shape' => 'Arn', ], 'applicationVersion' => [ 'shape' => 'Version', ], 'launchConfig' => [ 'shape' => 'LaunchConfig', ], ], ], 'SimulationApplicationConfigs' => [ 'type' => 'list', 'member' => [ 'shape' => 'SimulationApplicationConfig', ], 'max' => 1, 'min' => 1, ], 'SimulationApplicationNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'Name', ], 'max' => 1, 'min' => 1, ], 'SimulationApplicationSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'SimulationApplicationSummary', ], 'max' => 100, 'min' => 0, ], 'SimulationApplicationSummary' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'Name', ], 'arn' => [ 'shape' => 'Arn', ], 'version' => [ 'shape' => 'Version', ], 'lastUpdatedAt' => [ 'shape' => 'LastUpdatedAt', ], ], ], 'SimulationJob' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'status' => [ 'shape' => 'SimulationJobStatus', ], 'lastUpdatedAt' => [ 'shape' => 'LastUpdatedAt', ], 'failureBehavior' => [ 'shape' => 'FailureBehavior', ], 'failureCode' => [ 'shape' => 'SimulationJobErrorCode', ], 'failureReason' => [ 'shape' => 'GenericString', ], 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', ], 'outputLocation' => [ 'shape' => 'OutputLocation', ], 'maxJobDurationInSeconds' => [ 'shape' => 'JobDuration', ], 'simulationTimeMillis' => [ 'shape' => 'SimulationTimeMillis', ], 'iamRole' => [ 'shape' => 'IamRole', ], 'robotApplications' => [ 'shape' => 'RobotApplicationConfigs', ], 'simulationApplications' => [ 'shape' => 'SimulationApplicationConfigs', ], 'tags' => [ 'shape' => 'TagMap', ], 'vpcConfig' => [ 'shape' => 'VPCConfigResponse', ], ], ], 'SimulationJobErrorCode' => [ 'type' => 'string', 'enum' => [ 'InternalServiceError', 'RobotApplicationCrash', 'SimulationApplicationCrash', 'BadPermissionsRobotApplication', 'BadPermissionsSimulationApplication', 'BadPermissionsS3Output', 'BadPermissionsCloudwatchLogs', 'SubnetIpLimitExceeded', 'ENILimitExceeded', 'BadPermissionsUserCredentials', 'InvalidBundleRobotApplication', 'InvalidBundleSimulationApplication', 'RobotApplicationVersionMismatchedEtag', 'SimulationApplicationVersionMismatchedEtag', 'WrongRegionS3Output', 'WrongRegionRobotApplication', 'WrongRegionSimulationApplication', ], ], 'SimulationJobStatus' => [ 'type' => 'string', 'enum' => [ 'Pending', 'Preparing', 'Running', 'Restarting', 'Completed', 'Failed', 'RunningFailed', 'Terminating', 'Terminated', 'Canceled', ], ], 'SimulationJobSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'SimulationJobSummary', ], 'max' => 100, 'min' => 0, ], 'SimulationJobSummary' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'lastUpdatedAt' => [ 'shape' => 'LastUpdatedAt', ], 'name' => [ 'shape' => 'Name', ], 'status' => [ 'shape' => 'SimulationJobStatus', ], 'simulationApplicationNames' => [ 'shape' => 'SimulationApplicationNames', ], 'robotApplicationNames' => [ 'shape' => 'RobotApplicationNames', ], ], ], 'SimulationJobs' => [ 'type' => 'list', 'member' => [ 'shape' => 'SimulationJob', ], ], 'SimulationSoftwareSuite' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'SimulationSoftwareSuiteType', ], 'version' => [ 'shape' => 'SimulationSoftwareSuiteVersionType', ], ], ], 'SimulationSoftwareSuiteType' => [ 'type' => 'string', 'enum' => [ 'Gazebo', ], ], 'SimulationSoftwareSuiteVersionType' => [ 'type' => 'string', 'pattern' => '7|9', ], 'SimulationTimeMillis' => [ 'type' => 'long', ], 'Source' => [ 'type' => 'structure', 'members' => [ 's3Bucket' => [ 'shape' => 'S3Bucket', ], 's3Key' => [ 'shape' => 'S3Key', ], 'etag' => [ 'shape' => 'S3Etag', ], 'architecture' => [ 'shape' => 'Architecture', ], ], ], 'SourceConfig' => [ 'type' => 'structure', 'members' => [ 's3Bucket' => [ 'shape' => 'S3Bucket', ], 's3Key' => [ 'shape' => 'S3Key', ], 'architecture' => [ 'shape' => 'Architecture', ], ], ], 'SourceConfigs' => [ 'type' => 'list', 'member' => [ 'shape' => 'SourceConfig', ], ], 'Sources' => [ 'type' => 'list', 'member' => [ 'shape' => 'Source', ], ], 'Subnets' => [ 'type' => 'list', 'member' => [ 'shape' => 'GenericString', ], 'max' => 16, 'min' => 1, ], 'SyncDeploymentJobRequest' => [ 'type' => 'structure', 'required' => [ 'clientRequestToken', 'fleet', ], 'members' => [ 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'fleet' => [ 'shape' => 'Arn', ], ], ], 'SyncDeploymentJobResponse' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'fleet' => [ 'shape' => 'Arn', ], 'status' => [ 'shape' => 'DeploymentStatus', ], 'deploymentConfig' => [ 'shape' => 'DeploymentConfig', ], 'deploymentApplicationConfigs' => [ 'shape' => 'DeploymentApplicationConfigs', ], 'failureReason' => [ 'shape' => 'GenericString', ], 'failureCode' => [ 'shape' => 'DeploymentJobErrorCode', ], 'createdAt' => [ 'shape' => 'CreatedAt', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9 _.\\-\\/+=:]*', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], 'max' => 50, 'min' => 0, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tags', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '[a-zA-Z0-9 _.\\-\\/+=:]*', ], 'ThrottlingException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tagKeys', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'tagKeys' => [ 'shape' => 'TagKeyList', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateRobotApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'application', 'sources', 'robotSoftwareSuite', ], 'members' => [ 'application' => [ 'shape' => 'Arn', ], 'sources' => [ 'shape' => 'SourceConfigs', ], 'robotSoftwareSuite' => [ 'shape' => 'RobotSoftwareSuite', ], 'currentRevisionId' => [ 'shape' => 'RevisionId', ], ], ], 'UpdateRobotApplicationResponse' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'version' => [ 'shape' => 'Version', ], 'sources' => [ 'shape' => 'Sources', ], 'robotSoftwareSuite' => [ 'shape' => 'RobotSoftwareSuite', ], 'lastUpdatedAt' => [ 'shape' => 'LastUpdatedAt', ], 'revisionId' => [ 'shape' => 'RevisionId', ], ], ], 'UpdateSimulationApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'application', 'sources', 'simulationSoftwareSuite', 'robotSoftwareSuite', 'renderingEngine', ], 'members' => [ 'application' => [ 'shape' => 'Arn', ], 'sources' => [ 'shape' => 'SourceConfigs', ], 'simulationSoftwareSuite' => [ 'shape' => 'SimulationSoftwareSuite', ], 'robotSoftwareSuite' => [ 'shape' => 'RobotSoftwareSuite', ], 'renderingEngine' => [ 'shape' => 'RenderingEngine', ], 'currentRevisionId' => [ 'shape' => 'RevisionId', ], ], ], 'UpdateSimulationApplicationResponse' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'version' => [ 'shape' => 'Version', ], 'sources' => [ 'shape' => 'Sources', ], 'simulationSoftwareSuite' => [ 'shape' => 'SimulationSoftwareSuite', ], 'robotSoftwareSuite' => [ 'shape' => 'RobotSoftwareSuite', ], 'renderingEngine' => [ 'shape' => 'RenderingEngine', ], 'lastUpdatedAt' => [ 'shape' => 'LastUpdatedAt', ], 'revisionId' => [ 'shape' => 'RevisionId', ], ], ], 'VPCConfig' => [ 'type' => 'structure', 'required' => [ 'subnets', ], 'members' => [ 'subnets' => [ 'shape' => 'Subnets', ], 'securityGroups' => [ 'shape' => 'SecurityGroups', ], 'assignPublicIp' => [ 'shape' => 'Boolean', ], ], ], 'VPCConfigResponse' => [ 'type' => 'structure', 'members' => [ 'subnets' => [ 'shape' => 'Subnets', ], 'securityGroups' => [ 'shape' => 'SecurityGroups', ], 'vpcId' => [ 'shape' => 'GenericString', ], 'assignPublicIp' => [ 'shape' => 'Boolean', ], ], ], 'Version' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '(\\$LATEST)|[0-9]*', ], 'VersionQualifier' => [ 'type' => 'string', 'pattern' => 'ALL', ], 'errorMessage' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/robomaker/2018-06-29/paginators-1.json.php b/lib/aws/Aws/data/robomaker/2018-06-29/paginators-1.json.php new file mode 100644 index 0000000..d9c14db --- /dev/null +++ b/lib/aws/Aws/data/robomaker/2018-06-29/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/robomaker/2018-06-29/paginators-1.json +return [ 'pagination' => [ 'ListDeploymentJobs' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListFleets' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListRobotApplications' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListRobots' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListSimulationApplications' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListSimulationJobs' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], ],]; diff --git a/lib/aws/Aws/data/route53/2013-04-01/api-2.json.php b/lib/aws/Aws/data/route53/2013-04-01/api-2.json.php new file mode 100644 index 0000000..3356ed8 --- /dev/null +++ b/lib/aws/Aws/data/route53/2013-04-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/route53/2013-04-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2013-04-01', 'endpointPrefix' => 'route53', 'globalEndpoint' => 'route53.amazonaws.com', 'protocol' => 'rest-xml', 'serviceAbbreviation' => 'Route 53', 'serviceFullName' => 'Amazon Route 53', 'serviceId' => 'Route 53', 'signatureVersion' => 'v4', 'uid' => 'route53-2013-04-01', ], 'operations' => [ 'AssociateVPCWithHostedZone' => [ 'name' => 'AssociateVPCWithHostedZone', 'http' => [ 'method' => 'POST', 'requestUri' => '/2013-04-01/hostedzone/{Id}/associatevpc', ], 'input' => [ 'shape' => 'AssociateVPCWithHostedZoneRequest', 'locationName' => 'AssociateVPCWithHostedZoneRequest', 'xmlNamespace' => [ 'uri' => 'https://route53.amazonaws.com/doc/2013-04-01/', ], ], 'output' => [ 'shape' => 'AssociateVPCWithHostedZoneResponse', ], 'errors' => [ [ 'shape' => 'NoSuchHostedZone', ], [ 'shape' => 'NotAuthorizedException', ], [ 'shape' => 'InvalidVPCId', ], [ 'shape' => 'InvalidInput', ], [ 'shape' => 'PublicZoneVPCAssociation', ], [ 'shape' => 'ConflictingDomainExists', ], [ 'shape' => 'LimitsExceeded', ], ], ], 'ChangeResourceRecordSets' => [ 'name' => 'ChangeResourceRecordSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/2013-04-01/hostedzone/{Id}/rrset/', ], 'input' => [ 'shape' => 'ChangeResourceRecordSetsRequest', 'locationName' => 'ChangeResourceRecordSetsRequest', 'xmlNamespace' => [ 'uri' => 'https://route53.amazonaws.com/doc/2013-04-01/', ], ], 'output' => [ 'shape' => 'ChangeResourceRecordSetsResponse', ], 'errors' => [ [ 'shape' => 'NoSuchHostedZone', ], [ 'shape' => 'NoSuchHealthCheck', ], [ 'shape' => 'InvalidChangeBatch', ], [ 'shape' => 'InvalidInput', ], [ 'shape' => 'PriorRequestNotComplete', ], ], ], 'ChangeTagsForResource' => [ 'name' => 'ChangeTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/2013-04-01/tags/{ResourceType}/{ResourceId}', ], 'input' => [ 'shape' => 'ChangeTagsForResourceRequest', 'locationName' => 'ChangeTagsForResourceRequest', 'xmlNamespace' => [ 'uri' => 'https://route53.amazonaws.com/doc/2013-04-01/', ], ], 'output' => [ 'shape' => 'ChangeTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'NoSuchHealthCheck', ], [ 'shape' => 'NoSuchHostedZone', ], [ 'shape' => 'PriorRequestNotComplete', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateHealthCheck' => [ 'name' => 'CreateHealthCheck', 'http' => [ 'method' => 'POST', 'requestUri' => '/2013-04-01/healthcheck', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateHealthCheckRequest', 'locationName' => 'CreateHealthCheckRequest', 'xmlNamespace' => [ 'uri' => 'https://route53.amazonaws.com/doc/2013-04-01/', ], ], 'output' => [ 'shape' => 'CreateHealthCheckResponse', ], 'errors' => [ [ 'shape' => 'TooManyHealthChecks', ], [ 'shape' => 'HealthCheckAlreadyExists', ], [ 'shape' => 'InvalidInput', ], ], ], 'CreateHostedZone' => [ 'name' => 'CreateHostedZone', 'http' => [ 'method' => 'POST', 'requestUri' => '/2013-04-01/hostedzone', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateHostedZoneRequest', 'locationName' => 'CreateHostedZoneRequest', 'xmlNamespace' => [ 'uri' => 'https://route53.amazonaws.com/doc/2013-04-01/', ], ], 'output' => [ 'shape' => 'CreateHostedZoneResponse', ], 'errors' => [ [ 'shape' => 'InvalidDomainName', ], [ 'shape' => 'HostedZoneAlreadyExists', ], [ 'shape' => 'TooManyHostedZones', ], [ 'shape' => 'InvalidVPCId', ], [ 'shape' => 'InvalidInput', ], [ 'shape' => 'DelegationSetNotAvailable', ], [ 'shape' => 'ConflictingDomainExists', ], [ 'shape' => 'NoSuchDelegationSet', ], [ 'shape' => 'DelegationSetNotReusable', ], ], ], 'CreateQueryLoggingConfig' => [ 'name' => 'CreateQueryLoggingConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/2013-04-01/queryloggingconfig', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateQueryLoggingConfigRequest', 'locationName' => 'CreateQueryLoggingConfigRequest', 'xmlNamespace' => [ 'uri' => 'https://route53.amazonaws.com/doc/2013-04-01/', ], ], 'output' => [ 'shape' => 'CreateQueryLoggingConfigResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModification', ], [ 'shape' => 'NoSuchHostedZone', ], [ 'shape' => 'NoSuchCloudWatchLogsLogGroup', ], [ 'shape' => 'InvalidInput', ], [ 'shape' => 'QueryLoggingConfigAlreadyExists', ], [ 'shape' => 'InsufficientCloudWatchLogsResourcePolicy', ], ], ], 'CreateReusableDelegationSet' => [ 'name' => 'CreateReusableDelegationSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/2013-04-01/delegationset', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateReusableDelegationSetRequest', 'locationName' => 'CreateReusableDelegationSetRequest', 'xmlNamespace' => [ 'uri' => 'https://route53.amazonaws.com/doc/2013-04-01/', ], ], 'output' => [ 'shape' => 'CreateReusableDelegationSetResponse', ], 'errors' => [ [ 'shape' => 'DelegationSetAlreadyCreated', ], [ 'shape' => 'LimitsExceeded', ], [ 'shape' => 'HostedZoneNotFound', ], [ 'shape' => 'InvalidArgument', ], [ 'shape' => 'InvalidInput', ], [ 'shape' => 'DelegationSetNotAvailable', ], [ 'shape' => 'DelegationSetAlreadyReusable', ], ], ], 'CreateTrafficPolicy' => [ 'name' => 'CreateTrafficPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/2013-04-01/trafficpolicy', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateTrafficPolicyRequest', 'locationName' => 'CreateTrafficPolicyRequest', 'xmlNamespace' => [ 'uri' => 'https://route53.amazonaws.com/doc/2013-04-01/', ], ], 'output' => [ 'shape' => 'CreateTrafficPolicyResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'TooManyTrafficPolicies', ], [ 'shape' => 'TrafficPolicyAlreadyExists', ], [ 'shape' => 'InvalidTrafficPolicyDocument', ], ], ], 'CreateTrafficPolicyInstance' => [ 'name' => 'CreateTrafficPolicyInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/2013-04-01/trafficpolicyinstance', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateTrafficPolicyInstanceRequest', 'locationName' => 'CreateTrafficPolicyInstanceRequest', 'xmlNamespace' => [ 'uri' => 'https://route53.amazonaws.com/doc/2013-04-01/', ], ], 'output' => [ 'shape' => 'CreateTrafficPolicyInstanceResponse', ], 'errors' => [ [ 'shape' => 'NoSuchHostedZone', ], [ 'shape' => 'InvalidInput', ], [ 'shape' => 'TooManyTrafficPolicyInstances', ], [ 'shape' => 'NoSuchTrafficPolicy', ], [ 'shape' => 'TrafficPolicyInstanceAlreadyExists', ], ], ], 'CreateTrafficPolicyVersion' => [ 'name' => 'CreateTrafficPolicyVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/2013-04-01/trafficpolicy/{Id}', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateTrafficPolicyVersionRequest', 'locationName' => 'CreateTrafficPolicyVersionRequest', 'xmlNamespace' => [ 'uri' => 'https://route53.amazonaws.com/doc/2013-04-01/', ], ], 'output' => [ 'shape' => 'CreateTrafficPolicyVersionResponse', ], 'errors' => [ [ 'shape' => 'NoSuchTrafficPolicy', ], [ 'shape' => 'InvalidInput', ], [ 'shape' => 'TooManyTrafficPolicyVersionsForCurrentPolicy', ], [ 'shape' => 'ConcurrentModification', ], [ 'shape' => 'InvalidTrafficPolicyDocument', ], ], ], 'CreateVPCAssociationAuthorization' => [ 'name' => 'CreateVPCAssociationAuthorization', 'http' => [ 'method' => 'POST', 'requestUri' => '/2013-04-01/hostedzone/{Id}/authorizevpcassociation', ], 'input' => [ 'shape' => 'CreateVPCAssociationAuthorizationRequest', 'locationName' => 'CreateVPCAssociationAuthorizationRequest', 'xmlNamespace' => [ 'uri' => 'https://route53.amazonaws.com/doc/2013-04-01/', ], ], 'output' => [ 'shape' => 'CreateVPCAssociationAuthorizationResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModification', ], [ 'shape' => 'TooManyVPCAssociationAuthorizations', ], [ 'shape' => 'NoSuchHostedZone', ], [ 'shape' => 'InvalidVPCId', ], [ 'shape' => 'InvalidInput', ], ], ], 'DeleteHealthCheck' => [ 'name' => 'DeleteHealthCheck', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2013-04-01/healthcheck/{HealthCheckId}', ], 'input' => [ 'shape' => 'DeleteHealthCheckRequest', ], 'output' => [ 'shape' => 'DeleteHealthCheckResponse', ], 'errors' => [ [ 'shape' => 'NoSuchHealthCheck', ], [ 'shape' => 'HealthCheckInUse', ], [ 'shape' => 'InvalidInput', ], ], ], 'DeleteHostedZone' => [ 'name' => 'DeleteHostedZone', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2013-04-01/hostedzone/{Id}', ], 'input' => [ 'shape' => 'DeleteHostedZoneRequest', ], 'output' => [ 'shape' => 'DeleteHostedZoneResponse', ], 'errors' => [ [ 'shape' => 'NoSuchHostedZone', ], [ 'shape' => 'HostedZoneNotEmpty', ], [ 'shape' => 'PriorRequestNotComplete', ], [ 'shape' => 'InvalidInput', ], [ 'shape' => 'InvalidDomainName', ], ], ], 'DeleteQueryLoggingConfig' => [ 'name' => 'DeleteQueryLoggingConfig', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2013-04-01/queryloggingconfig/{Id}', ], 'input' => [ 'shape' => 'DeleteQueryLoggingConfigRequest', ], 'output' => [ 'shape' => 'DeleteQueryLoggingConfigResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModification', ], [ 'shape' => 'NoSuchQueryLoggingConfig', ], [ 'shape' => 'InvalidInput', ], ], ], 'DeleteReusableDelegationSet' => [ 'name' => 'DeleteReusableDelegationSet', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2013-04-01/delegationset/{Id}', ], 'input' => [ 'shape' => 'DeleteReusableDelegationSetRequest', ], 'output' => [ 'shape' => 'DeleteReusableDelegationSetResponse', ], 'errors' => [ [ 'shape' => 'NoSuchDelegationSet', ], [ 'shape' => 'DelegationSetInUse', ], [ 'shape' => 'DelegationSetNotReusable', ], [ 'shape' => 'InvalidInput', ], ], ], 'DeleteTrafficPolicy' => [ 'name' => 'DeleteTrafficPolicy', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2013-04-01/trafficpolicy/{Id}/{Version}', ], 'input' => [ 'shape' => 'DeleteTrafficPolicyRequest', ], 'output' => [ 'shape' => 'DeleteTrafficPolicyResponse', ], 'errors' => [ [ 'shape' => 'NoSuchTrafficPolicy', ], [ 'shape' => 'InvalidInput', ], [ 'shape' => 'TrafficPolicyInUse', ], [ 'shape' => 'ConcurrentModification', ], ], ], 'DeleteTrafficPolicyInstance' => [ 'name' => 'DeleteTrafficPolicyInstance', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/2013-04-01/trafficpolicyinstance/{Id}', ], 'input' => [ 'shape' => 'DeleteTrafficPolicyInstanceRequest', ], 'output' => [ 'shape' => 'DeleteTrafficPolicyInstanceResponse', ], 'errors' => [ [ 'shape' => 'NoSuchTrafficPolicyInstance', ], [ 'shape' => 'InvalidInput', ], [ 'shape' => 'PriorRequestNotComplete', ], ], ], 'DeleteVPCAssociationAuthorization' => [ 'name' => 'DeleteVPCAssociationAuthorization', 'http' => [ 'method' => 'POST', 'requestUri' => '/2013-04-01/hostedzone/{Id}/deauthorizevpcassociation', ], 'input' => [ 'shape' => 'DeleteVPCAssociationAuthorizationRequest', 'locationName' => 'DeleteVPCAssociationAuthorizationRequest', 'xmlNamespace' => [ 'uri' => 'https://route53.amazonaws.com/doc/2013-04-01/', ], ], 'output' => [ 'shape' => 'DeleteVPCAssociationAuthorizationResponse', ], 'errors' => [ [ 'shape' => 'ConcurrentModification', ], [ 'shape' => 'VPCAssociationAuthorizationNotFound', ], [ 'shape' => 'NoSuchHostedZone', ], [ 'shape' => 'InvalidVPCId', ], [ 'shape' => 'InvalidInput', ], ], ], 'DisassociateVPCFromHostedZone' => [ 'name' => 'DisassociateVPCFromHostedZone', 'http' => [ 'method' => 'POST', 'requestUri' => '/2013-04-01/hostedzone/{Id}/disassociatevpc', ], 'input' => [ 'shape' => 'DisassociateVPCFromHostedZoneRequest', 'locationName' => 'DisassociateVPCFromHostedZoneRequest', 'xmlNamespace' => [ 'uri' => 'https://route53.amazonaws.com/doc/2013-04-01/', ], ], 'output' => [ 'shape' => 'DisassociateVPCFromHostedZoneResponse', ], 'errors' => [ [ 'shape' => 'NoSuchHostedZone', ], [ 'shape' => 'InvalidVPCId', ], [ 'shape' => 'VPCAssociationNotFound', ], [ 'shape' => 'LastVPCAssociation', ], [ 'shape' => 'InvalidInput', ], ], ], 'GetAccountLimit' => [ 'name' => 'GetAccountLimit', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/accountlimit/{Type}', ], 'input' => [ 'shape' => 'GetAccountLimitRequest', ], 'output' => [ 'shape' => 'GetAccountLimitResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], ], ], 'GetChange' => [ 'name' => 'GetChange', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/change/{Id}', ], 'input' => [ 'shape' => 'GetChangeRequest', ], 'output' => [ 'shape' => 'GetChangeResponse', ], 'errors' => [ [ 'shape' => 'NoSuchChange', ], [ 'shape' => 'InvalidInput', ], ], ], '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', ], [ 'shape' => 'InvalidInput', ], ], ], 'GetHealthCheck' => [ 'name' => 'GetHealthCheck', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/healthcheck/{HealthCheckId}', ], 'input' => [ 'shape' => 'GetHealthCheckRequest', ], 'output' => [ 'shape' => 'GetHealthCheckResponse', ], 'errors' => [ [ 'shape' => 'NoSuchHealthCheck', ], [ 'shape' => 'InvalidInput', ], [ 'shape' => 'IncompatibleVersion', ], ], ], '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', ], [ 'shape' => 'InvalidInput', ], ], ], 'GetHealthCheckStatus' => [ 'name' => 'GetHealthCheckStatus', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/healthcheck/{HealthCheckId}/status', ], 'input' => [ 'shape' => 'GetHealthCheckStatusRequest', ], 'output' => [ 'shape' => 'GetHealthCheckStatusResponse', ], 'errors' => [ [ 'shape' => 'NoSuchHealthCheck', ], [ 'shape' => 'InvalidInput', ], ], ], 'GetHostedZone' => [ 'name' => 'GetHostedZone', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/hostedzone/{Id}', ], 'input' => [ 'shape' => 'GetHostedZoneRequest', ], 'output' => [ 'shape' => 'GetHostedZoneResponse', ], 'errors' => [ [ 'shape' => 'NoSuchHostedZone', ], [ 'shape' => 'InvalidInput', ], ], ], 'GetHostedZoneCount' => [ 'name' => 'GetHostedZoneCount', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/hostedzonecount', ], 'input' => [ 'shape' => 'GetHostedZoneCountRequest', ], 'output' => [ 'shape' => 'GetHostedZoneCountResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], ], ], 'GetHostedZoneLimit' => [ 'name' => 'GetHostedZoneLimit', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/hostedzonelimit/{Id}/{Type}', ], 'input' => [ 'shape' => 'GetHostedZoneLimitRequest', ], 'output' => [ 'shape' => 'GetHostedZoneLimitResponse', ], 'errors' => [ [ 'shape' => 'NoSuchHostedZone', ], [ 'shape' => 'InvalidInput', ], [ 'shape' => 'HostedZoneNotPrivate', ], ], ], 'GetQueryLoggingConfig' => [ 'name' => 'GetQueryLoggingConfig', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/queryloggingconfig/{Id}', ], 'input' => [ 'shape' => 'GetQueryLoggingConfigRequest', ], 'output' => [ 'shape' => 'GetQueryLoggingConfigResponse', ], 'errors' => [ [ 'shape' => 'NoSuchQueryLoggingConfig', ], [ 'shape' => 'InvalidInput', ], ], ], 'GetReusableDelegationSet' => [ 'name' => 'GetReusableDelegationSet', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/delegationset/{Id}', ], 'input' => [ 'shape' => 'GetReusableDelegationSetRequest', ], 'output' => [ 'shape' => 'GetReusableDelegationSetResponse', ], 'errors' => [ [ 'shape' => 'NoSuchDelegationSet', ], [ 'shape' => 'DelegationSetNotReusable', ], [ 'shape' => 'InvalidInput', ], ], ], 'GetReusableDelegationSetLimit' => [ 'name' => 'GetReusableDelegationSetLimit', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/reusabledelegationsetlimit/{Id}/{Type}', ], 'input' => [ 'shape' => 'GetReusableDelegationSetLimitRequest', ], 'output' => [ 'shape' => 'GetReusableDelegationSetLimitResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'NoSuchDelegationSet', ], ], ], 'GetTrafficPolicy' => [ 'name' => 'GetTrafficPolicy', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/trafficpolicy/{Id}/{Version}', ], 'input' => [ 'shape' => 'GetTrafficPolicyRequest', ], 'output' => [ 'shape' => 'GetTrafficPolicyResponse', ], 'errors' => [ [ 'shape' => 'NoSuchTrafficPolicy', ], [ 'shape' => 'InvalidInput', ], ], ], 'GetTrafficPolicyInstance' => [ 'name' => 'GetTrafficPolicyInstance', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/trafficpolicyinstance/{Id}', ], 'input' => [ 'shape' => 'GetTrafficPolicyInstanceRequest', ], 'output' => [ 'shape' => 'GetTrafficPolicyInstanceResponse', ], 'errors' => [ [ 'shape' => 'NoSuchTrafficPolicyInstance', ], [ 'shape' => 'InvalidInput', ], ], ], 'GetTrafficPolicyInstanceCount' => [ 'name' => 'GetTrafficPolicyInstanceCount', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/trafficpolicyinstancecount', ], 'input' => [ 'shape' => 'GetTrafficPolicyInstanceCountRequest', ], 'output' => [ 'shape' => 'GetTrafficPolicyInstanceCountResponse', ], ], 'ListGeoLocations' => [ 'name' => 'ListGeoLocations', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/geolocations', ], 'input' => [ 'shape' => 'ListGeoLocationsRequest', ], 'output' => [ 'shape' => 'ListGeoLocationsResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], ], ], 'ListHealthChecks' => [ 'name' => 'ListHealthChecks', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/healthcheck', ], 'input' => [ 'shape' => 'ListHealthChecksRequest', ], 'output' => [ 'shape' => 'ListHealthChecksResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'IncompatibleVersion', ], ], ], 'ListHostedZones' => [ 'name' => 'ListHostedZones', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/hostedzone', ], 'input' => [ 'shape' => 'ListHostedZonesRequest', ], 'output' => [ 'shape' => 'ListHostedZonesResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'NoSuchDelegationSet', ], [ 'shape' => 'DelegationSetNotReusable', ], ], ], 'ListHostedZonesByName' => [ 'name' => 'ListHostedZonesByName', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/hostedzonesbyname', ], 'input' => [ 'shape' => 'ListHostedZonesByNameRequest', ], 'output' => [ 'shape' => 'ListHostedZonesByNameResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'InvalidDomainName', ], ], ], 'ListQueryLoggingConfigs' => [ 'name' => 'ListQueryLoggingConfigs', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/queryloggingconfig', ], 'input' => [ 'shape' => 'ListQueryLoggingConfigsRequest', ], 'output' => [ 'shape' => 'ListQueryLoggingConfigsResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'InvalidPaginationToken', ], [ 'shape' => 'NoSuchHostedZone', ], ], ], 'ListResourceRecordSets' => [ 'name' => 'ListResourceRecordSets', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/hostedzone/{Id}/rrset', ], 'input' => [ 'shape' => 'ListResourceRecordSetsRequest', ], 'output' => [ 'shape' => 'ListResourceRecordSetsResponse', ], 'errors' => [ [ 'shape' => 'NoSuchHostedZone', ], [ 'shape' => 'InvalidInput', ], ], ], 'ListReusableDelegationSets' => [ 'name' => 'ListReusableDelegationSets', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/delegationset', ], 'input' => [ 'shape' => 'ListReusableDelegationSetsRequest', ], 'output' => [ 'shape' => 'ListReusableDelegationSetsResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/tags/{ResourceType}/{ResourceId}', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'NoSuchHealthCheck', ], [ 'shape' => 'NoSuchHostedZone', ], [ 'shape' => 'PriorRequestNotComplete', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListTagsForResources' => [ 'name' => 'ListTagsForResources', 'http' => [ 'method' => 'POST', 'requestUri' => '/2013-04-01/tags/{ResourceType}', ], 'input' => [ 'shape' => 'ListTagsForResourcesRequest', 'locationName' => 'ListTagsForResourcesRequest', 'xmlNamespace' => [ 'uri' => 'https://route53.amazonaws.com/doc/2013-04-01/', ], ], 'output' => [ 'shape' => 'ListTagsForResourcesResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'NoSuchHealthCheck', ], [ 'shape' => 'NoSuchHostedZone', ], [ 'shape' => 'PriorRequestNotComplete', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListTrafficPolicies' => [ 'name' => 'ListTrafficPolicies', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/trafficpolicies', ], 'input' => [ 'shape' => 'ListTrafficPoliciesRequest', ], 'output' => [ 'shape' => 'ListTrafficPoliciesResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], ], ], 'ListTrafficPolicyInstances' => [ 'name' => 'ListTrafficPolicyInstances', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/trafficpolicyinstances', ], 'input' => [ 'shape' => 'ListTrafficPolicyInstancesRequest', ], 'output' => [ 'shape' => 'ListTrafficPolicyInstancesResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'NoSuchTrafficPolicyInstance', ], ], ], 'ListTrafficPolicyInstancesByHostedZone' => [ 'name' => 'ListTrafficPolicyInstancesByHostedZone', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/trafficpolicyinstances/hostedzone', ], 'input' => [ 'shape' => 'ListTrafficPolicyInstancesByHostedZoneRequest', ], 'output' => [ 'shape' => 'ListTrafficPolicyInstancesByHostedZoneResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'NoSuchTrafficPolicyInstance', ], [ 'shape' => 'NoSuchHostedZone', ], ], ], 'ListTrafficPolicyInstancesByPolicy' => [ 'name' => 'ListTrafficPolicyInstancesByPolicy', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/trafficpolicyinstances/trafficpolicy', ], 'input' => [ 'shape' => 'ListTrafficPolicyInstancesByPolicyRequest', ], 'output' => [ 'shape' => 'ListTrafficPolicyInstancesByPolicyResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'NoSuchTrafficPolicyInstance', ], [ 'shape' => 'NoSuchTrafficPolicy', ], ], ], 'ListTrafficPolicyVersions' => [ 'name' => 'ListTrafficPolicyVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/trafficpolicies/{Id}/versions', ], 'input' => [ 'shape' => 'ListTrafficPolicyVersionsRequest', ], 'output' => [ 'shape' => 'ListTrafficPolicyVersionsResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'NoSuchTrafficPolicy', ], ], ], 'ListVPCAssociationAuthorizations' => [ 'name' => 'ListVPCAssociationAuthorizations', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/hostedzone/{Id}/authorizevpcassociation', ], 'input' => [ 'shape' => 'ListVPCAssociationAuthorizationsRequest', ], 'output' => [ 'shape' => 'ListVPCAssociationAuthorizationsResponse', ], 'errors' => [ [ 'shape' => 'NoSuchHostedZone', ], [ 'shape' => 'InvalidInput', ], [ 'shape' => 'InvalidPaginationToken', ], ], ], 'TestDNSAnswer' => [ 'name' => 'TestDNSAnswer', 'http' => [ 'method' => 'GET', 'requestUri' => '/2013-04-01/testdnsanswer', ], 'input' => [ 'shape' => 'TestDNSAnswerRequest', ], 'output' => [ 'shape' => 'TestDNSAnswerResponse', ], 'errors' => [ [ 'shape' => 'NoSuchHostedZone', ], [ 'shape' => 'InvalidInput', ], ], ], 'UpdateHealthCheck' => [ 'name' => 'UpdateHealthCheck', 'http' => [ 'method' => 'POST', 'requestUri' => '/2013-04-01/healthcheck/{HealthCheckId}', ], 'input' => [ 'shape' => 'UpdateHealthCheckRequest', 'locationName' => 'UpdateHealthCheckRequest', 'xmlNamespace' => [ 'uri' => 'https://route53.amazonaws.com/doc/2013-04-01/', ], ], 'output' => [ 'shape' => 'UpdateHealthCheckResponse', ], 'errors' => [ [ 'shape' => 'NoSuchHealthCheck', ], [ 'shape' => 'InvalidInput', ], [ 'shape' => 'HealthCheckVersionMismatch', ], ], ], 'UpdateHostedZoneComment' => [ 'name' => 'UpdateHostedZoneComment', 'http' => [ 'method' => 'POST', 'requestUri' => '/2013-04-01/hostedzone/{Id}', ], 'input' => [ 'shape' => 'UpdateHostedZoneCommentRequest', 'locationName' => 'UpdateHostedZoneCommentRequest', 'xmlNamespace' => [ 'uri' => 'https://route53.amazonaws.com/doc/2013-04-01/', ], ], 'output' => [ 'shape' => 'UpdateHostedZoneCommentResponse', ], 'errors' => [ [ 'shape' => 'NoSuchHostedZone', ], [ 'shape' => 'InvalidInput', ], ], ], 'UpdateTrafficPolicyComment' => [ 'name' => 'UpdateTrafficPolicyComment', 'http' => [ 'method' => 'POST', 'requestUri' => '/2013-04-01/trafficpolicy/{Id}/{Version}', ], 'input' => [ 'shape' => 'UpdateTrafficPolicyCommentRequest', 'locationName' => 'UpdateTrafficPolicyCommentRequest', 'xmlNamespace' => [ 'uri' => 'https://route53.amazonaws.com/doc/2013-04-01/', ], ], 'output' => [ 'shape' => 'UpdateTrafficPolicyCommentResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'NoSuchTrafficPolicy', ], [ 'shape' => 'ConcurrentModification', ], ], ], 'UpdateTrafficPolicyInstance' => [ 'name' => 'UpdateTrafficPolicyInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/2013-04-01/trafficpolicyinstance/{Id}', ], 'input' => [ 'shape' => 'UpdateTrafficPolicyInstanceRequest', 'locationName' => 'UpdateTrafficPolicyInstanceRequest', 'xmlNamespace' => [ 'uri' => 'https://route53.amazonaws.com/doc/2013-04-01/', ], ], 'output' => [ 'shape' => 'UpdateTrafficPolicyInstanceResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'NoSuchTrafficPolicy', ], [ 'shape' => 'NoSuchTrafficPolicyInstance', ], [ 'shape' => 'PriorRequestNotComplete', ], [ 'shape' => 'ConflictingTypes', ], ], ], ], 'shapes' => [ 'AccountLimit' => [ 'type' => 'structure', 'required' => [ 'Type', 'Value', ], 'members' => [ 'Type' => [ 'shape' => 'AccountLimitType', ], 'Value' => [ 'shape' => 'LimitValue', ], ], ], 'AccountLimitType' => [ 'type' => 'string', 'enum' => [ 'MAX_HEALTH_CHECKS_BY_OWNER', 'MAX_HOSTED_ZONES_BY_OWNER', 'MAX_TRAFFIC_POLICY_INSTANCES_BY_OWNER', 'MAX_REUSABLE_DELEGATION_SETS_BY_OWNER', 'MAX_TRAFFIC_POLICIES_BY_OWNER', ], ], 'AlarmIdentifier' => [ 'type' => 'structure', 'required' => [ 'Region', 'Name', ], 'members' => [ 'Region' => [ 'shape' => 'CloudWatchRegion', ], 'Name' => [ 'shape' => 'AlarmName', ], ], ], 'AlarmName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], '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', ], ], 'ChildHealthCheckList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HealthCheckId', 'locationName' => 'ChildHealthCheck', ], 'max' => 256, ], 'CloudWatchAlarmConfiguration' => [ 'type' => 'structure', 'required' => [ 'EvaluationPeriods', 'Threshold', 'ComparisonOperator', 'Period', 'MetricName', 'Namespace', 'Statistic', ], 'members' => [ 'EvaluationPeriods' => [ 'shape' => 'EvaluationPeriods', ], 'Threshold' => [ 'shape' => 'Threshold', ], 'ComparisonOperator' => [ 'shape' => 'ComparisonOperator', ], 'Period' => [ 'shape' => 'Period', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'Namespace' => [ 'shape' => 'Namespace', ], 'Statistic' => [ 'shape' => 'Statistic', ], 'Dimensions' => [ 'shape' => 'DimensionList', ], ], ], 'CloudWatchLogsLogGroupArn' => [ 'type' => 'string', ], 'CloudWatchRegion' => [ 'type' => 'string', 'enum' => [ 'us-east-1', 'us-east-2', 'us-west-1', 'us-west-2', 'ca-central-1', 'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-west-3', 'ap-south-1', 'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1', 'ap-northeast-2', 'ap-northeast-3', 'eu-north-1', 'sa-east-1', ], 'max' => 64, 'min' => 1, ], 'ComparisonOperator' => [ 'type' => 'string', 'enum' => [ 'GreaterThanOrEqualToThreshold', 'GreaterThanThreshold', 'LessThanThreshold', 'LessThanOrEqualToThreshold', ], ], 'ConcurrentModification' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ConflictingDomainExists' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ConflictingTypes' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], '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', ], ], ], 'CreateQueryLoggingConfigRequest' => [ 'type' => 'structure', 'required' => [ 'HostedZoneId', 'CloudWatchLogsLogGroupArn', ], 'members' => [ 'HostedZoneId' => [ 'shape' => 'ResourceId', ], 'CloudWatchLogsLogGroupArn' => [ 'shape' => 'CloudWatchLogsLogGroupArn', ], ], ], 'CreateQueryLoggingConfigResponse' => [ 'type' => 'structure', 'required' => [ 'QueryLoggingConfig', 'Location', ], 'members' => [ 'QueryLoggingConfig' => [ 'shape' => 'QueryLoggingConfig', ], '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', ], ], ], 'CreateTrafficPolicyInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'HostedZoneId', 'Name', 'TTL', 'TrafficPolicyId', 'TrafficPolicyVersion', ], 'members' => [ 'HostedZoneId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'DNSName', ], 'TTL' => [ 'shape' => 'TTL', ], 'TrafficPolicyId' => [ 'shape' => 'TrafficPolicyId', ], 'TrafficPolicyVersion' => [ 'shape' => 'TrafficPolicyVersion', ], ], ], 'CreateTrafficPolicyInstanceResponse' => [ 'type' => 'structure', 'required' => [ 'TrafficPolicyInstance', 'Location', ], 'members' => [ 'TrafficPolicyInstance' => [ 'shape' => 'TrafficPolicyInstance', ], 'Location' => [ 'shape' => 'ResourceURI', 'location' => 'header', 'locationName' => 'Location', ], ], ], 'CreateTrafficPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'Document', ], 'members' => [ 'Name' => [ 'shape' => 'TrafficPolicyName', ], 'Document' => [ 'shape' => 'TrafficPolicyDocument', ], 'Comment' => [ 'shape' => 'TrafficPolicyComment', ], ], ], 'CreateTrafficPolicyResponse' => [ 'type' => 'structure', 'required' => [ 'TrafficPolicy', 'Location', ], 'members' => [ 'TrafficPolicy' => [ 'shape' => 'TrafficPolicy', ], 'Location' => [ 'shape' => 'ResourceURI', 'location' => 'header', 'locationName' => 'Location', ], ], ], 'CreateTrafficPolicyVersionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'Document', ], 'members' => [ 'Id' => [ 'shape' => 'TrafficPolicyId', 'location' => 'uri', 'locationName' => 'Id', ], 'Document' => [ 'shape' => 'TrafficPolicyDocument', ], 'Comment' => [ 'shape' => 'TrafficPolicyComment', ], ], ], 'CreateTrafficPolicyVersionResponse' => [ 'type' => 'structure', 'required' => [ 'TrafficPolicy', 'Location', ], 'members' => [ 'TrafficPolicy' => [ 'shape' => 'TrafficPolicy', ], 'Location' => [ 'shape' => 'ResourceURI', 'location' => 'header', 'locationName' => 'Location', ], ], ], 'CreateVPCAssociationAuthorizationRequest' => [ 'type' => 'structure', 'required' => [ 'HostedZoneId', 'VPC', ], 'members' => [ 'HostedZoneId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'Id', ], 'VPC' => [ 'shape' => 'VPC', ], ], ], 'CreateVPCAssociationAuthorizationResponse' => [ 'type' => 'structure', 'required' => [ 'HostedZoneId', 'VPC', ], 'members' => [ 'HostedZoneId' => [ 'shape' => 'ResourceId', ], 'VPC' => [ 'shape' => 'VPC', ], ], ], 'DNSName' => [ 'type' => 'string', 'max' => 1024, ], 'DNSRCode' => [ 'type' => 'string', ], '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', ], ], ], 'DeleteQueryLoggingConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'QueryLoggingConfigId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteQueryLoggingConfigResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteReusableDelegationSetRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteReusableDelegationSetResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteTrafficPolicyInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'TrafficPolicyInstanceId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteTrafficPolicyInstanceResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteTrafficPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'Version', ], 'members' => [ 'Id' => [ 'shape' => 'TrafficPolicyId', 'location' => 'uri', 'locationName' => 'Id', ], 'Version' => [ 'shape' => 'TrafficPolicyVersion', 'location' => 'uri', 'locationName' => 'Version', ], ], ], 'DeleteTrafficPolicyResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteVPCAssociationAuthorizationRequest' => [ 'type' => 'structure', 'required' => [ 'HostedZoneId', 'VPC', ], 'members' => [ 'HostedZoneId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'Id', ], 'VPC' => [ 'shape' => 'VPC', ], ], ], 'DeleteVPCAssociationAuthorizationResponse' => [ 'type' => 'structure', 'members' => [], ], 'Dimension' => [ 'type' => 'structure', 'required' => [ 'Name', 'Value', ], 'members' => [ 'Name' => [ 'shape' => 'DimensionField', ], 'Value' => [ 'shape' => 'DimensionField', ], ], ], 'DimensionField' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'DimensionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Dimension', 'locationName' => 'Dimension', ], 'max' => 10, ], 'Disabled' => [ 'type' => 'boolean', ], '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', ], ], ], 'EnableSNI' => [ 'type' => 'boolean', ], 'ErrorMessage' => [ 'type' => 'string', ], 'ErrorMessages' => [ 'type' => 'list', 'member' => [ 'shape' => 'ErrorMessage', 'locationName' => 'Message', ], ], 'EvaluationPeriods' => [ 'type' => 'integer', 'min' => 1, ], 'FailureThreshold' => [ 'type' => 'integer', 'max' => 10, 'min' => 1, ], 'FullyQualifiedDomainName' => [ 'type' => 'string', 'max' => 255, ], 'GeoLocation' => [ 'type' => 'structure', 'members' => [ 'ContinentCode' => [ 'shape' => 'GeoLocationContinentCode', ], 'CountryCode' => [ 'shape' => 'GeoLocationCountryCode', ], 'SubdivisionCode' => [ 'shape' => 'GeoLocationSubdivisionCode', ], ], ], 'GeoLocationContinentCode' => [ 'type' => 'string', 'max' => 2, 'min' => 2, ], 'GeoLocationContinentName' => [ 'type' => 'string', 'max' => 32, 'min' => 1, ], 'GeoLocationCountryCode' => [ 'type' => 'string', 'max' => 2, 'min' => 1, ], 'GeoLocationCountryName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], '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', 'max' => 3, 'min' => 1, ], 'GeoLocationSubdivisionName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'GetAccountLimitRequest' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'AccountLimitType', 'location' => 'uri', 'locationName' => 'Type', ], ], ], 'GetAccountLimitResponse' => [ 'type' => 'structure', 'required' => [ 'Limit', 'Count', ], 'members' => [ 'Limit' => [ 'shape' => 'AccountLimit', ], 'Count' => [ 'shape' => 'UsageCount', ], ], ], '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', ], ], ], 'GetHostedZoneLimitRequest' => [ 'type' => 'structure', 'required' => [ 'Type', 'HostedZoneId', ], 'members' => [ 'Type' => [ 'shape' => 'HostedZoneLimitType', 'location' => 'uri', 'locationName' => 'Type', ], 'HostedZoneId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetHostedZoneLimitResponse' => [ 'type' => 'structure', 'required' => [ 'Limit', 'Count', ], 'members' => [ 'Limit' => [ 'shape' => 'HostedZoneLimit', ], 'Count' => [ 'shape' => 'UsageCount', ], ], ], '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', ], ], ], 'GetQueryLoggingConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'QueryLoggingConfigId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetQueryLoggingConfigResponse' => [ 'type' => 'structure', 'required' => [ 'QueryLoggingConfig', ], 'members' => [ 'QueryLoggingConfig' => [ 'shape' => 'QueryLoggingConfig', ], ], ], 'GetReusableDelegationSetLimitRequest' => [ 'type' => 'structure', 'required' => [ 'Type', 'DelegationSetId', ], 'members' => [ 'Type' => [ 'shape' => 'ReusableDelegationSetLimitType', 'location' => 'uri', 'locationName' => 'Type', ], 'DelegationSetId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetReusableDelegationSetLimitResponse' => [ 'type' => 'structure', 'required' => [ 'Limit', 'Count', ], 'members' => [ 'Limit' => [ 'shape' => 'ReusableDelegationSetLimit', ], 'Count' => [ 'shape' => 'UsageCount', ], ], ], 'GetReusableDelegationSetRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetReusableDelegationSetResponse' => [ 'type' => 'structure', 'required' => [ 'DelegationSet', ], 'members' => [ 'DelegationSet' => [ 'shape' => 'DelegationSet', ], ], ], 'GetTrafficPolicyInstanceCountRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetTrafficPolicyInstanceCountResponse' => [ 'type' => 'structure', 'required' => [ 'TrafficPolicyInstanceCount', ], 'members' => [ 'TrafficPolicyInstanceCount' => [ 'shape' => 'TrafficPolicyInstanceCount', ], ], ], 'GetTrafficPolicyInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'TrafficPolicyInstanceId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetTrafficPolicyInstanceResponse' => [ 'type' => 'structure', 'required' => [ 'TrafficPolicyInstance', ], 'members' => [ 'TrafficPolicyInstance' => [ 'shape' => 'TrafficPolicyInstance', ], ], ], 'GetTrafficPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'Version', ], 'members' => [ 'Id' => [ 'shape' => 'TrafficPolicyId', 'location' => 'uri', 'locationName' => 'Id', ], 'Version' => [ 'shape' => 'TrafficPolicyVersion', 'location' => 'uri', 'locationName' => 'Version', ], ], ], 'GetTrafficPolicyResponse' => [ 'type' => 'structure', 'required' => [ 'TrafficPolicy', ], 'members' => [ 'TrafficPolicy' => [ 'shape' => 'TrafficPolicy', ], ], ], 'HealthCheck' => [ 'type' => 'structure', 'required' => [ 'Id', 'CallerReference', 'HealthCheckConfig', 'HealthCheckVersion', ], 'members' => [ 'Id' => [ 'shape' => 'HealthCheckId', ], 'CallerReference' => [ 'shape' => 'HealthCheckNonce', ], 'LinkedService' => [ 'shape' => 'LinkedService', ], 'HealthCheckConfig' => [ 'shape' => 'HealthCheckConfig', ], 'HealthCheckVersion' => [ 'shape' => 'HealthCheckVersion', ], 'CloudWatchAlarmConfiguration' => [ 'shape' => 'CloudWatchAlarmConfiguration', ], ], ], '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', ], 'MeasureLatency' => [ 'shape' => 'MeasureLatency', ], 'Inverted' => [ 'shape' => 'Inverted', ], 'Disabled' => [ 'shape' => 'Disabled', ], 'HealthThreshold' => [ 'shape' => 'HealthThreshold', ], 'ChildHealthChecks' => [ 'shape' => 'ChildHealthCheckList', ], 'EnableSNI' => [ 'shape' => 'EnableSNI', ], 'Regions' => [ 'shape' => 'HealthCheckRegionList', ], 'AlarmIdentifier' => [ 'shape' => 'AlarmIdentifier', ], 'InsufficientDataHealthStatus' => [ 'shape' => 'InsufficientDataHealthStatus', ], ], ], 'HealthCheckCount' => [ 'type' => 'long', ], 'HealthCheckId' => [ 'type' => 'string', 'max' => 64, ], 'HealthCheckInUse' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'deprecated' => true, 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'HealthCheckNonce' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'HealthCheckObservation' => [ 'type' => 'structure', 'members' => [ 'Region' => [ 'shape' => 'HealthCheckRegion', ], 'IPAddress' => [ 'shape' => 'IPAddress', ], 'StatusReport' => [ 'shape' => 'StatusReport', ], ], ], 'HealthCheckObservations' => [ 'type' => 'list', 'member' => [ 'shape' => 'HealthCheckObservation', 'locationName' => 'HealthCheckObservation', ], ], 'HealthCheckRegion' => [ 'type' => 'string', 'enum' => [ 'us-east-1', 'us-west-1', 'us-west-2', 'eu-west-1', 'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1', 'sa-east-1', ], 'max' => 64, 'min' => 1, ], 'HealthCheckRegionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HealthCheckRegion', 'locationName' => 'Region', ], 'max' => 64, 'min' => 3, ], 'HealthCheckType' => [ 'type' => 'string', 'enum' => [ 'HTTP', 'HTTPS', 'HTTP_STR_MATCH', 'HTTPS_STR_MATCH', 'TCP', 'CALCULATED', 'CLOUDWATCH_METRIC', ], ], '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', ], ], 'HealthThreshold' => [ 'type' => 'integer', 'max' => 256, 'min' => 0, ], 'HostedZone' => [ 'type' => 'structure', 'required' => [ 'Id', 'Name', 'CallerReference', ], 'members' => [ 'Id' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'DNSName', ], 'CallerReference' => [ 'shape' => 'Nonce', ], 'Config' => [ 'shape' => 'HostedZoneConfig', ], 'ResourceRecordSetCount' => [ 'shape' => 'HostedZoneRRSetCount', ], 'LinkedService' => [ 'shape' => 'LinkedService', ], ], ], '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', ], 'HostedZoneLimit' => [ 'type' => 'structure', 'required' => [ 'Type', 'Value', ], 'members' => [ 'Type' => [ 'shape' => 'HostedZoneLimitType', ], 'Value' => [ 'shape' => 'LimitValue', ], ], ], 'HostedZoneLimitType' => [ 'type' => 'string', 'enum' => [ 'MAX_RRSETS_BY_ZONE', 'MAX_VPCS_ASSOCIATED_BY_ZONE', ], ], 'HostedZoneNotEmpty' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'HostedZoneNotFound' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'HostedZoneNotPrivate' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'HostedZoneRRSetCount' => [ 'type' => 'long', ], 'HostedZones' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostedZone', 'locationName' => 'HostedZone', ], ], 'IPAddress' => [ 'type' => 'string', 'max' => 45, '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]))$|^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$)', ], 'IPAddressCidr' => [ 'type' => 'string', ], 'IncompatibleVersion' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InsufficientCloudWatchLogsResourcePolicy' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InsufficientDataHealthStatus' => [ 'type' => 'string', 'enum' => [ 'Healthy', 'Unhealthy', 'LastKnownStatus', ], ], 'InvalidArgument' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidChangeBatch' => [ 'type' => 'structure', 'members' => [ 'messages' => [ 'shape' => 'ErrorMessages', ], 'message' => [ 'shape' => 'ErrorMessage', ], ], '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, ], 'InvalidPaginationToken' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidTrafficPolicyDocument' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidVPCId' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'Inverted' => [ 'type' => 'boolean', ], 'IsPrivateZone' => [ 'type' => 'boolean', ], 'LastVPCAssociation' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'LimitValue' => [ 'type' => 'long', 'min' => 1, ], 'LimitsExceeded' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'LinkedService' => [ 'type' => 'structure', 'members' => [ 'ServicePrincipal' => [ 'shape' => 'ServicePrincipal', ], 'Description' => [ 'shape' => 'ResourceDescription', ], ], ], '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', ], ], ], 'ListQueryLoggingConfigsRequest' => [ 'type' => 'structure', 'members' => [ 'HostedZoneId' => [ 'shape' => 'ResourceId', 'location' => 'querystring', 'locationName' => 'hostedzoneid', ], 'NextToken' => [ 'shape' => 'PaginationToken', 'location' => 'querystring', 'locationName' => 'nexttoken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxresults', ], ], ], 'ListQueryLoggingConfigsResponse' => [ 'type' => 'structure', 'required' => [ 'QueryLoggingConfigs', ], 'members' => [ 'QueryLoggingConfigs' => [ 'shape' => 'QueryLoggingConfigs', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], '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', ], ], ], 'ListTrafficPoliciesRequest' => [ 'type' => 'structure', 'members' => [ 'TrafficPolicyIdMarker' => [ 'shape' => 'TrafficPolicyId', 'location' => 'querystring', 'locationName' => 'trafficpolicyid', ], 'MaxItems' => [ 'shape' => 'PageMaxItems', 'location' => 'querystring', 'locationName' => 'maxitems', ], ], ], 'ListTrafficPoliciesResponse' => [ 'type' => 'structure', 'required' => [ 'TrafficPolicySummaries', 'IsTruncated', 'TrafficPolicyIdMarker', 'MaxItems', ], 'members' => [ 'TrafficPolicySummaries' => [ 'shape' => 'TrafficPolicySummaries', ], 'IsTruncated' => [ 'shape' => 'PageTruncated', ], 'TrafficPolicyIdMarker' => [ 'shape' => 'TrafficPolicyId', ], 'MaxItems' => [ 'shape' => 'PageMaxItems', ], ], ], 'ListTrafficPolicyInstancesByHostedZoneRequest' => [ 'type' => 'structure', 'required' => [ 'HostedZoneId', ], 'members' => [ 'HostedZoneId' => [ 'shape' => 'ResourceId', 'location' => 'querystring', 'locationName' => 'id', ], 'TrafficPolicyInstanceNameMarker' => [ 'shape' => 'DNSName', 'location' => 'querystring', 'locationName' => 'trafficpolicyinstancename', ], 'TrafficPolicyInstanceTypeMarker' => [ 'shape' => 'RRType', 'location' => 'querystring', 'locationName' => 'trafficpolicyinstancetype', ], 'MaxItems' => [ 'shape' => 'PageMaxItems', 'location' => 'querystring', 'locationName' => 'maxitems', ], ], ], 'ListTrafficPolicyInstancesByHostedZoneResponse' => [ 'type' => 'structure', 'required' => [ 'TrafficPolicyInstances', 'IsTruncated', 'MaxItems', ], 'members' => [ 'TrafficPolicyInstances' => [ 'shape' => 'TrafficPolicyInstances', ], 'TrafficPolicyInstanceNameMarker' => [ 'shape' => 'DNSName', ], 'TrafficPolicyInstanceTypeMarker' => [ 'shape' => 'RRType', ], 'IsTruncated' => [ 'shape' => 'PageTruncated', ], 'MaxItems' => [ 'shape' => 'PageMaxItems', ], ], ], 'ListTrafficPolicyInstancesByPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'TrafficPolicyId', 'TrafficPolicyVersion', ], 'members' => [ 'TrafficPolicyId' => [ 'shape' => 'TrafficPolicyId', 'location' => 'querystring', 'locationName' => 'id', ], 'TrafficPolicyVersion' => [ 'shape' => 'TrafficPolicyVersion', 'location' => 'querystring', 'locationName' => 'version', ], 'HostedZoneIdMarker' => [ 'shape' => 'ResourceId', 'location' => 'querystring', 'locationName' => 'hostedzoneid', ], 'TrafficPolicyInstanceNameMarker' => [ 'shape' => 'DNSName', 'location' => 'querystring', 'locationName' => 'trafficpolicyinstancename', ], 'TrafficPolicyInstanceTypeMarker' => [ 'shape' => 'RRType', 'location' => 'querystring', 'locationName' => 'trafficpolicyinstancetype', ], 'MaxItems' => [ 'shape' => 'PageMaxItems', 'location' => 'querystring', 'locationName' => 'maxitems', ], ], ], 'ListTrafficPolicyInstancesByPolicyResponse' => [ 'type' => 'structure', 'required' => [ 'TrafficPolicyInstances', 'IsTruncated', 'MaxItems', ], 'members' => [ 'TrafficPolicyInstances' => [ 'shape' => 'TrafficPolicyInstances', ], 'HostedZoneIdMarker' => [ 'shape' => 'ResourceId', ], 'TrafficPolicyInstanceNameMarker' => [ 'shape' => 'DNSName', ], 'TrafficPolicyInstanceTypeMarker' => [ 'shape' => 'RRType', ], 'IsTruncated' => [ 'shape' => 'PageTruncated', ], 'MaxItems' => [ 'shape' => 'PageMaxItems', ], ], ], 'ListTrafficPolicyInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'HostedZoneIdMarker' => [ 'shape' => 'ResourceId', 'location' => 'querystring', 'locationName' => 'hostedzoneid', ], 'TrafficPolicyInstanceNameMarker' => [ 'shape' => 'DNSName', 'location' => 'querystring', 'locationName' => 'trafficpolicyinstancename', ], 'TrafficPolicyInstanceTypeMarker' => [ 'shape' => 'RRType', 'location' => 'querystring', 'locationName' => 'trafficpolicyinstancetype', ], 'MaxItems' => [ 'shape' => 'PageMaxItems', 'location' => 'querystring', 'locationName' => 'maxitems', ], ], ], 'ListTrafficPolicyInstancesResponse' => [ 'type' => 'structure', 'required' => [ 'TrafficPolicyInstances', 'IsTruncated', 'MaxItems', ], 'members' => [ 'TrafficPolicyInstances' => [ 'shape' => 'TrafficPolicyInstances', ], 'HostedZoneIdMarker' => [ 'shape' => 'ResourceId', ], 'TrafficPolicyInstanceNameMarker' => [ 'shape' => 'DNSName', ], 'TrafficPolicyInstanceTypeMarker' => [ 'shape' => 'RRType', ], 'IsTruncated' => [ 'shape' => 'PageTruncated', ], 'MaxItems' => [ 'shape' => 'PageMaxItems', ], ], ], 'ListTrafficPolicyVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'TrafficPolicyId', 'location' => 'uri', 'locationName' => 'Id', ], 'TrafficPolicyVersionMarker' => [ 'shape' => 'TrafficPolicyVersionMarker', 'location' => 'querystring', 'locationName' => 'trafficpolicyversion', ], 'MaxItems' => [ 'shape' => 'PageMaxItems', 'location' => 'querystring', 'locationName' => 'maxitems', ], ], ], 'ListTrafficPolicyVersionsResponse' => [ 'type' => 'structure', 'required' => [ 'TrafficPolicies', 'IsTruncated', 'TrafficPolicyVersionMarker', 'MaxItems', ], 'members' => [ 'TrafficPolicies' => [ 'shape' => 'TrafficPolicies', ], 'IsTruncated' => [ 'shape' => 'PageTruncated', ], 'TrafficPolicyVersionMarker' => [ 'shape' => 'TrafficPolicyVersionMarker', ], 'MaxItems' => [ 'shape' => 'PageMaxItems', ], ], ], 'ListVPCAssociationAuthorizationsRequest' => [ 'type' => 'structure', 'required' => [ 'HostedZoneId', ], 'members' => [ 'HostedZoneId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'Id', ], 'NextToken' => [ 'shape' => 'PaginationToken', 'location' => 'querystring', 'locationName' => 'nexttoken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxresults', ], ], ], 'ListVPCAssociationAuthorizationsResponse' => [ 'type' => 'structure', 'required' => [ 'HostedZoneId', 'VPCs', ], 'members' => [ 'HostedZoneId' => [ 'shape' => 'ResourceId', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'VPCs' => [ 'shape' => 'VPCs', ], ], ], 'MaxResults' => [ 'type' => 'string', ], 'MeasureLatency' => [ 'type' => 'boolean', ], 'Message' => [ 'type' => 'string', 'max' => 1024, ], 'MetricName' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'Nameserver' => [ 'type' => 'string', 'max' => 255, 'min' => 0, ], 'Namespace' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'NoSuchChange' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'NoSuchCloudWatchLogsLogGroup' => [ '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, ], 'NoSuchQueryLoggingConfig' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'NoSuchTrafficPolicy' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'NoSuchTrafficPolicyInstance' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'Nonce' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'NotAuthorizedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 401, ], 'exception' => true, ], 'PageMarker' => [ 'type' => 'string', 'max' => 64, ], 'PageMaxItems' => [ 'type' => 'string', ], 'PageTruncated' => [ 'type' => 'boolean', ], 'PaginationToken' => [ 'type' => 'string', 'max' => 256, ], 'Period' => [ 'type' => 'integer', 'min' => 60, ], 'Port' => [ 'type' => 'integer', 'max' => 65535, 'min' => 1, ], 'PriorRequestNotComplete' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'PublicZoneVPCAssociation' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'QueryLoggingConfig' => [ 'type' => 'structure', 'required' => [ 'Id', 'HostedZoneId', 'CloudWatchLogsLogGroupArn', ], 'members' => [ 'Id' => [ 'shape' => 'QueryLoggingConfigId', ], 'HostedZoneId' => [ 'shape' => 'ResourceId', ], 'CloudWatchLogsLogGroupArn' => [ 'shape' => 'CloudWatchLogsLogGroupArn', ], ], ], 'QueryLoggingConfigAlreadyExists' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'QueryLoggingConfigId' => [ 'type' => 'string', 'max' => 36, 'min' => 1, ], 'QueryLoggingConfigs' => [ 'type' => 'list', 'member' => [ 'shape' => 'QueryLoggingConfig', 'locationName' => 'QueryLoggingConfig', ], ], 'RData' => [ 'type' => 'string', 'max' => 4000, ], 'RRType' => [ 'type' => 'string', 'enum' => [ 'SOA', 'A', 'TXT', 'NS', 'CNAME', 'MX', 'NAPTR', 'PTR', 'SRV', 'SPF', 'AAAA', 'CAA', ], ], 'RecordData' => [ 'type' => 'list', 'member' => [ 'shape' => 'RecordDataEntry', 'locationName' => 'RecordDataEntry', ], ], 'RecordDataEntry' => [ 'type' => 'string', 'max' => 512, 'min' => 0, ], 'RequestInterval' => [ 'type' => 'integer', 'max' => 30, 'min' => 10, ], 'ResettableElementName' => [ 'type' => 'string', 'enum' => [ 'FullyQualifiedDomainName', 'Regions', 'ResourcePath', 'ChildHealthChecks', ], 'max' => 64, 'min' => 1, ], 'ResettableElementNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResettableElementName', 'locationName' => 'ResettableElementName', ], 'max' => 64, ], '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', ], 'MultiValueAnswer' => [ 'shape' => 'ResourceRecordSetMultiValueAnswer', ], 'TTL' => [ 'shape' => 'TTL', ], 'ResourceRecords' => [ 'shape' => 'ResourceRecords', ], 'AliasTarget' => [ 'shape' => 'AliasTarget', ], 'HealthCheckId' => [ 'shape' => 'HealthCheckId', ], 'TrafficPolicyInstanceId' => [ 'shape' => 'TrafficPolicyInstanceId', ], ], ], 'ResourceRecordSetFailover' => [ 'type' => 'string', 'enum' => [ 'PRIMARY', 'SECONDARY', ], ], 'ResourceRecordSetIdentifier' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'ResourceRecordSetMultiValueAnswer' => [ 'type' => 'boolean', ], 'ResourceRecordSetRegion' => [ 'type' => 'string', 'enum' => [ 'us-east-1', 'us-east-2', 'us-west-1', 'us-west-2', 'ca-central-1', 'eu-west-1', 'eu-west-2', 'eu-west-3', 'eu-central-1', 'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1', 'ap-northeast-2', 'ap-northeast-3', 'eu-north-1', 'sa-east-1', 'cn-north-1', 'cn-northwest-1', 'ap-south-1', ], 'max' => 64, 'min' => 1, ], 'ResourceRecordSetWeight' => [ 'type' => 'long', 'max' => 255, 'min' => 0, ], '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, ], 'ReusableDelegationSetLimit' => [ 'type' => 'structure', 'required' => [ 'Type', 'Value', ], 'members' => [ 'Type' => [ 'shape' => 'ReusableDelegationSetLimitType', ], 'Value' => [ 'shape' => 'LimitValue', ], ], ], 'ReusableDelegationSetLimitType' => [ 'type' => 'string', 'enum' => [ 'MAX_ZONES_BY_REUSABLE_DELEGATION_SET', ], ], 'SearchString' => [ 'type' => 'string', 'max' => 255, ], 'ServicePrincipal' => [ 'type' => 'string', 'max' => 128, ], 'Statistic' => [ 'type' => 'string', 'enum' => [ 'Average', 'Sum', 'SampleCount', 'Maximum', 'Minimum', ], ], 'Status' => [ 'type' => 'string', ], 'StatusReport' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'Status', ], 'CheckedTime' => [ 'shape' => 'TimeStamp', ], ], ], 'SubnetMask' => [ 'type' => 'string', 'max' => 3, 'min' => 0, ], 'TTL' => [ 'type' => 'long', 'max' => 2147483647, 'min' => 0, ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', 'locationName' => 'Key', ], 'max' => 10, 'min' => 1, ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', 'locationName' => 'Tag', ], 'max' => 10, 'min' => 1, ], 'TagResourceId' => [ 'type' => 'string', 'max' => 64, ], 'TagResourceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagResourceId', 'locationName' => 'ResourceId', ], 'max' => 10, 'min' => 1, ], 'TagResourceType' => [ 'type' => 'string', 'enum' => [ 'healthcheck', 'hostedzone', ], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, ], 'TestDNSAnswerRequest' => [ 'type' => 'structure', 'required' => [ 'HostedZoneId', 'RecordName', 'RecordType', ], 'members' => [ 'HostedZoneId' => [ 'shape' => 'ResourceId', 'location' => 'querystring', 'locationName' => 'hostedzoneid', ], 'RecordName' => [ 'shape' => 'DNSName', 'location' => 'querystring', 'locationName' => 'recordname', ], 'RecordType' => [ 'shape' => 'RRType', 'location' => 'querystring', 'locationName' => 'recordtype', ], 'ResolverIP' => [ 'shape' => 'IPAddress', 'location' => 'querystring', 'locationName' => 'resolverip', ], 'EDNS0ClientSubnetIP' => [ 'shape' => 'IPAddress', 'location' => 'querystring', 'locationName' => 'edns0clientsubnetip', ], 'EDNS0ClientSubnetMask' => [ 'shape' => 'SubnetMask', 'location' => 'querystring', 'locationName' => 'edns0clientsubnetmask', ], ], ], 'TestDNSAnswerResponse' => [ 'type' => 'structure', 'required' => [ 'Nameserver', 'RecordName', 'RecordType', 'RecordData', 'ResponseCode', 'Protocol', ], 'members' => [ 'Nameserver' => [ 'shape' => 'Nameserver', ], 'RecordName' => [ 'shape' => 'DNSName', ], 'RecordType' => [ 'shape' => 'RRType', ], 'RecordData' => [ 'shape' => 'RecordData', ], 'ResponseCode' => [ 'shape' => 'DNSRCode', ], 'Protocol' => [ 'shape' => 'TransportProtocol', ], ], ], 'Threshold' => [ 'type' => 'double', ], '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, ], 'TooManyTrafficPolicies' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyTrafficPolicyInstances' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyTrafficPolicyVersionsForCurrentPolicy' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TooManyVPCAssociationAuthorizations' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TrafficPolicies' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficPolicy', 'locationName' => 'TrafficPolicy', ], ], 'TrafficPolicy' => [ 'type' => 'structure', 'required' => [ 'Id', 'Version', 'Name', 'Type', 'Document', ], 'members' => [ 'Id' => [ 'shape' => 'TrafficPolicyId', ], 'Version' => [ 'shape' => 'TrafficPolicyVersion', ], 'Name' => [ 'shape' => 'TrafficPolicyName', ], 'Type' => [ 'shape' => 'RRType', ], 'Document' => [ 'shape' => 'TrafficPolicyDocument', ], 'Comment' => [ 'shape' => 'TrafficPolicyComment', ], ], ], 'TrafficPolicyAlreadyExists' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'TrafficPolicyComment' => [ 'type' => 'string', 'max' => 1024, ], 'TrafficPolicyDocument' => [ 'type' => 'string', 'max' => 102400, ], 'TrafficPolicyId' => [ 'type' => 'string', 'max' => 36, 'min' => 1, ], 'TrafficPolicyInUse' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TrafficPolicyInstance' => [ 'type' => 'structure', 'required' => [ 'Id', 'HostedZoneId', 'Name', 'TTL', 'State', 'Message', 'TrafficPolicyId', 'TrafficPolicyVersion', 'TrafficPolicyType', ], 'members' => [ 'Id' => [ 'shape' => 'TrafficPolicyInstanceId', ], 'HostedZoneId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'DNSName', ], 'TTL' => [ 'shape' => 'TTL', ], 'State' => [ 'shape' => 'TrafficPolicyInstanceState', ], 'Message' => [ 'shape' => 'Message', ], 'TrafficPolicyId' => [ 'shape' => 'TrafficPolicyId', ], 'TrafficPolicyVersion' => [ 'shape' => 'TrafficPolicyVersion', ], 'TrafficPolicyType' => [ 'shape' => 'RRType', ], ], ], 'TrafficPolicyInstanceAlreadyExists' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'TrafficPolicyInstanceCount' => [ 'type' => 'integer', ], 'TrafficPolicyInstanceId' => [ 'type' => 'string', 'max' => 36, 'min' => 1, ], 'TrafficPolicyInstanceState' => [ 'type' => 'string', ], 'TrafficPolicyInstances' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficPolicyInstance', 'locationName' => 'TrafficPolicyInstance', ], ], 'TrafficPolicyName' => [ 'type' => 'string', 'max' => 512, ], 'TrafficPolicySummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficPolicySummary', 'locationName' => 'TrafficPolicySummary', ], ], 'TrafficPolicySummary' => [ 'type' => 'structure', 'required' => [ 'Id', 'Name', 'Type', 'LatestVersion', 'TrafficPolicyCount', ], 'members' => [ 'Id' => [ 'shape' => 'TrafficPolicyId', ], 'Name' => [ 'shape' => 'TrafficPolicyName', ], 'Type' => [ 'shape' => 'RRType', ], 'LatestVersion' => [ 'shape' => 'TrafficPolicyVersion', ], 'TrafficPolicyCount' => [ 'shape' => 'TrafficPolicyVersion', ], ], ], 'TrafficPolicyVersion' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'TrafficPolicyVersionMarker' => [ 'type' => 'string', 'max' => 4, ], 'TransportProtocol' => [ 'type' => 'string', ], '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', ], 'Inverted' => [ 'shape' => 'Inverted', ], 'Disabled' => [ 'shape' => 'Disabled', ], 'HealthThreshold' => [ 'shape' => 'HealthThreshold', ], 'ChildHealthChecks' => [ 'shape' => 'ChildHealthCheckList', ], 'EnableSNI' => [ 'shape' => 'EnableSNI', ], 'Regions' => [ 'shape' => 'HealthCheckRegionList', ], 'AlarmIdentifier' => [ 'shape' => 'AlarmIdentifier', ], 'InsufficientDataHealthStatus' => [ 'shape' => 'InsufficientDataHealthStatus', ], 'ResetElements' => [ 'shape' => 'ResettableElementNameList', ], ], ], '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', ], ], ], 'UpdateTrafficPolicyCommentRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'Version', 'Comment', ], 'members' => [ 'Id' => [ 'shape' => 'TrafficPolicyId', 'location' => 'uri', 'locationName' => 'Id', ], 'Version' => [ 'shape' => 'TrafficPolicyVersion', 'location' => 'uri', 'locationName' => 'Version', ], 'Comment' => [ 'shape' => 'TrafficPolicyComment', ], ], ], 'UpdateTrafficPolicyCommentResponse' => [ 'type' => 'structure', 'required' => [ 'TrafficPolicy', ], 'members' => [ 'TrafficPolicy' => [ 'shape' => 'TrafficPolicy', ], ], ], 'UpdateTrafficPolicyInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'TTL', 'TrafficPolicyId', 'TrafficPolicyVersion', ], 'members' => [ 'Id' => [ 'shape' => 'TrafficPolicyInstanceId', 'location' => 'uri', 'locationName' => 'Id', ], 'TTL' => [ 'shape' => 'TTL', ], 'TrafficPolicyId' => [ 'shape' => 'TrafficPolicyId', ], 'TrafficPolicyVersion' => [ 'shape' => 'TrafficPolicyVersion', ], ], ], 'UpdateTrafficPolicyInstanceResponse' => [ 'type' => 'structure', 'required' => [ 'TrafficPolicyInstance', ], 'members' => [ 'TrafficPolicyInstance' => [ 'shape' => 'TrafficPolicyInstance', ], ], ], 'UsageCount' => [ 'type' => 'long', 'min' => 0, ], 'VPC' => [ 'type' => 'structure', 'members' => [ 'VPCRegion' => [ 'shape' => 'VPCRegion', ], 'VPCId' => [ 'shape' => 'VPCId', ], ], ], 'VPCAssociationAuthorizationNotFound' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], '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-east-2', 'us-west-1', 'us-west-2', 'eu-west-1', 'eu-west-2', 'eu-west-3', 'eu-central-1', 'ap-southeast-1', 'ap-southeast-2', 'ap-south-1', 'ap-northeast-1', 'ap-northeast-2', 'ap-northeast-3', 'eu-north-1', 'sa-east-1', 'ca-central-1', 'cn-north-1', ], 'max' => 64, 'min' => 1, ], 'VPCs' => [ 'type' => 'list', 'member' => [ 'shape' => 'VPC', 'locationName' => 'VPC', ], 'min' => 1, ], ],]; diff --git a/lib/aws/Aws/data/route53/2013-04-01/paginators-1.json.php b/lib/aws/Aws/data/route53/2013-04-01/paginators-1.json.php new file mode 100644 index 0000000..9fb1132 --- /dev/null +++ b/lib/aws/Aws/data/route53/2013-04-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/route53/2013-04-01/paginators-1.json +return [ 'pagination' => [ 'ListHealthChecks' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'NextMarker', 'result_key' => 'HealthChecks', ], 'ListHostedZones' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => 'NextMarker', 'result_key' => 'HostedZones', ], 'ListResourceRecordSets' => [ 'input_token' => [ 'StartRecordName', 'StartRecordType', 'StartRecordIdentifier', ], 'limit_key' => 'MaxItems', 'more_results' => 'IsTruncated', 'output_token' => [ 'NextRecordName', 'NextRecordType', 'NextRecordIdentifier', ], 'result_key' => 'ResourceRecordSets', ], ],]; diff --git a/lib/aws/Aws/data/route53/2013-04-01/smoke.json.php b/lib/aws/Aws/data/route53/2013-04-01/smoke.json.php new file mode 100644 index 0000000..73d7c34 --- /dev/null +++ b/lib/aws/Aws/data/route53/2013-04-01/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/route53/2013-04-01/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-east-1', 'testCases' => [ [ 'operationName' => 'ListHostedZones', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'GetHostedZone', 'input' => [ 'Id' => 'fake-zone', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/route53/2013-04-01/waiters-2.json.php b/lib/aws/Aws/data/route53/2013-04-01/waiters-2.json.php new file mode 100644 index 0000000..9b72d2a --- /dev/null +++ b/lib/aws/Aws/data/route53/2013-04-01/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/route53/2013-04-01/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'ResourceRecordSetsChanged' => [ 'delay' => 30, 'maxAttempts' => 60, 'operation' => 'GetChange', 'acceptors' => [ [ 'matcher' => 'path', 'expected' => 'INSYNC', 'argument' => 'ChangeInfo.Status', 'state' => 'success', ], ], ], ],]; diff --git a/lib/aws/Aws/data/route53domains/2014-05-15/api-2.json.php b/lib/aws/Aws/data/route53domains/2014-05-15/api-2.json.php new file mode 100644 index 0000000..9e68d33 --- /dev/null +++ b/lib/aws/Aws/data/route53domains/2014-05-15/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/route53domains/2014-05-15/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2014-05-15', 'endpointPrefix' => 'route53domains', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Amazon Route 53 Domains', 'signatureVersion' => 'v4', 'targetPrefix' => 'Route53Domains_v20140515', 'uid' => 'route53domains-2014-05-15', ], 'operations' => [ 'CheckDomainAvailability' => [ 'name' => 'CheckDomainAvailability', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CheckDomainAvailabilityRequest', ], 'output' => [ 'shape' => 'CheckDomainAvailabilityResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'UnsupportedTLD', ], ], ], 'CheckDomainTransferability' => [ 'name' => 'CheckDomainTransferability', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CheckDomainTransferabilityRequest', ], 'output' => [ 'shape' => 'CheckDomainTransferabilityResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'UnsupportedTLD', ], ], ], 'DeleteTagsForDomain' => [ 'name' => 'DeleteTagsForDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTagsForDomainRequest', ], 'output' => [ 'shape' => 'DeleteTagsForDomainResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'OperationLimitExceeded', ], [ 'shape' => 'UnsupportedTLD', ], ], ], 'DisableDomainAutoRenew' => [ 'name' => 'DisableDomainAutoRenew', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableDomainAutoRenewRequest', ], 'output' => [ 'shape' => 'DisableDomainAutoRenewResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'UnsupportedTLD', ], ], ], 'DisableDomainTransferLock' => [ 'name' => 'DisableDomainTransferLock', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableDomainTransferLockRequest', ], 'output' => [ 'shape' => 'DisableDomainTransferLockResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'DuplicateRequest', ], [ 'shape' => 'TLDRulesViolation', ], [ 'shape' => 'OperationLimitExceeded', ], [ 'shape' => 'UnsupportedTLD', ], ], ], 'EnableDomainAutoRenew' => [ 'name' => 'EnableDomainAutoRenew', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableDomainAutoRenewRequest', ], 'output' => [ 'shape' => 'EnableDomainAutoRenewResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'UnsupportedTLD', ], [ 'shape' => 'TLDRulesViolation', ], ], ], 'EnableDomainTransferLock' => [ 'name' => 'EnableDomainTransferLock', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableDomainTransferLockRequest', ], 'output' => [ 'shape' => 'EnableDomainTransferLockResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'DuplicateRequest', ], [ 'shape' => 'TLDRulesViolation', ], [ 'shape' => 'OperationLimitExceeded', ], [ 'shape' => 'UnsupportedTLD', ], ], ], 'GetContactReachabilityStatus' => [ 'name' => 'GetContactReachabilityStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetContactReachabilityStatusRequest', ], 'output' => [ 'shape' => 'GetContactReachabilityStatusResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'OperationLimitExceeded', ], [ 'shape' => 'UnsupportedTLD', ], ], ], 'GetDomainDetail' => [ 'name' => 'GetDomainDetail', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDomainDetailRequest', ], 'output' => [ 'shape' => 'GetDomainDetailResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'UnsupportedTLD', ], ], ], 'GetDomainSuggestions' => [ 'name' => 'GetDomainSuggestions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDomainSuggestionsRequest', ], 'output' => [ 'shape' => 'GetDomainSuggestionsResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'UnsupportedTLD', ], ], ], 'GetOperationDetail' => [ 'name' => 'GetOperationDetail', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetOperationDetailRequest', ], 'output' => [ 'shape' => 'GetOperationDetailResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], ], ], 'ListDomains' => [ 'name' => 'ListDomains', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDomainsRequest', ], 'output' => [ 'shape' => 'ListDomainsResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], ], ], 'ListOperations' => [ 'name' => 'ListOperations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListOperationsRequest', ], 'output' => [ 'shape' => 'ListOperationsResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], ], ], 'ListTagsForDomain' => [ 'name' => 'ListTagsForDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForDomainRequest', ], 'output' => [ 'shape' => 'ListTagsForDomainResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'OperationLimitExceeded', ], [ 'shape' => 'UnsupportedTLD', ], ], ], 'RegisterDomain' => [ 'name' => 'RegisterDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterDomainRequest', ], 'output' => [ 'shape' => 'RegisterDomainResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'UnsupportedTLD', ], [ 'shape' => 'DuplicateRequest', ], [ 'shape' => 'TLDRulesViolation', ], [ 'shape' => 'DomainLimitExceeded', ], [ 'shape' => 'OperationLimitExceeded', ], ], ], 'RenewDomain' => [ 'name' => 'RenewDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RenewDomainRequest', ], 'output' => [ 'shape' => 'RenewDomainResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'UnsupportedTLD', ], [ 'shape' => 'DuplicateRequest', ], [ 'shape' => 'TLDRulesViolation', ], [ 'shape' => 'OperationLimitExceeded', ], ], ], 'ResendContactReachabilityEmail' => [ 'name' => 'ResendContactReachabilityEmail', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResendContactReachabilityEmailRequest', ], 'output' => [ 'shape' => 'ResendContactReachabilityEmailResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'OperationLimitExceeded', ], [ 'shape' => 'UnsupportedTLD', ], ], ], 'RetrieveDomainAuthCode' => [ 'name' => 'RetrieveDomainAuthCode', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RetrieveDomainAuthCodeRequest', ], 'output' => [ 'shape' => 'RetrieveDomainAuthCodeResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'UnsupportedTLD', ], ], ], 'TransferDomain' => [ 'name' => 'TransferDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TransferDomainRequest', ], 'output' => [ 'shape' => 'TransferDomainResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'UnsupportedTLD', ], [ 'shape' => 'DuplicateRequest', ], [ 'shape' => 'TLDRulesViolation', ], [ 'shape' => 'DomainLimitExceeded', ], [ 'shape' => 'OperationLimitExceeded', ], ], ], 'UpdateDomainContact' => [ 'name' => 'UpdateDomainContact', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateDomainContactRequest', ], 'output' => [ 'shape' => 'UpdateDomainContactResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'DuplicateRequest', ], [ 'shape' => 'TLDRulesViolation', ], [ 'shape' => 'OperationLimitExceeded', ], [ 'shape' => 'UnsupportedTLD', ], ], ], 'UpdateDomainContactPrivacy' => [ 'name' => 'UpdateDomainContactPrivacy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateDomainContactPrivacyRequest', ], 'output' => [ 'shape' => 'UpdateDomainContactPrivacyResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'DuplicateRequest', ], [ 'shape' => 'TLDRulesViolation', ], [ 'shape' => 'OperationLimitExceeded', ], [ 'shape' => 'UnsupportedTLD', ], ], ], 'UpdateDomainNameservers' => [ 'name' => 'UpdateDomainNameservers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateDomainNameserversRequest', ], 'output' => [ 'shape' => 'UpdateDomainNameserversResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'DuplicateRequest', ], [ 'shape' => 'TLDRulesViolation', ], [ 'shape' => 'OperationLimitExceeded', ], [ 'shape' => 'UnsupportedTLD', ], ], ], 'UpdateTagsForDomain' => [ 'name' => 'UpdateTagsForDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateTagsForDomainRequest', ], 'output' => [ 'shape' => 'UpdateTagsForDomainResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'OperationLimitExceeded', ], [ 'shape' => 'UnsupportedTLD', ], ], ], 'ViewBilling' => [ 'name' => 'ViewBilling', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ViewBillingRequest', ], 'output' => [ 'shape' => 'ViewBillingResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], ], ], ], 'shapes' => [ 'AddressLine' => [ 'type' => 'string', 'max' => 255, ], 'BillingRecord' => [ 'type' => 'structure', 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', ], 'Operation' => [ 'shape' => 'OperationType', ], 'InvoiceId' => [ 'shape' => 'InvoiceId', ], 'BillDate' => [ 'shape' => 'Timestamp', ], 'Price' => [ 'shape' => 'Price', ], ], ], 'BillingRecords' => [ 'type' => 'list', 'member' => [ 'shape' => 'BillingRecord', ], ], 'Boolean' => [ 'type' => 'boolean', ], 'CheckDomainAvailabilityRequest' => [ 'type' => 'structure', 'required' => [ 'DomainName', ], 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', ], 'IdnLangCode' => [ 'shape' => 'LangCode', ], ], ], 'CheckDomainAvailabilityResponse' => [ 'type' => 'structure', 'required' => [ 'Availability', ], 'members' => [ 'Availability' => [ 'shape' => 'DomainAvailability', ], ], ], 'CheckDomainTransferabilityRequest' => [ 'type' => 'structure', 'required' => [ 'DomainName', ], 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', ], 'AuthCode' => [ 'shape' => 'DomainAuthCode', ], ], ], 'CheckDomainTransferabilityResponse' => [ 'type' => 'structure', 'required' => [ 'Transferability', ], 'members' => [ 'Transferability' => [ 'shape' => 'DomainTransferability', ], ], ], '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', ], ], 'CurrentExpiryYear' => [ 'type' => 'integer', ], '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', ], ], 'exception' => true, ], 'DomainName' => [ 'type' => 'string', 'max' => 255, ], 'DomainStatus' => [ 'type' => 'string', ], 'DomainStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DomainStatus', ], ], 'DomainSuggestion' => [ 'type' => 'structure', 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', ], 'Availability' => [ 'shape' => 'String', ], ], ], 'DomainSuggestionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DomainSuggestion', ], ], 'DomainSummary' => [ 'type' => 'structure', 'required' => [ 'DomainName', ], 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', ], 'AutoRenew' => [ 'shape' => 'Boolean', ], 'TransferLock' => [ 'shape' => 'Boolean', ], 'Expiry' => [ 'shape' => 'Timestamp', ], ], ], 'DomainSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DomainSummary', ], ], 'DomainTransferability' => [ 'type' => 'structure', 'members' => [ 'Transferable' => [ 'shape' => 'Transferable', ], ], ], 'DuplicateRequest' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'DurationInYears' => [ 'type' => 'integer', 'max' => 10, 'min' => 1, ], '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', 'CA_BUSINESS_ENTITY_TYPE', 'ES_IDENTIFICATION', 'ES_IDENTIFICATION_TYPE', 'ES_LEGAL_FORM', 'FI_BUSINESS_NUMBER', 'FI_ID_NUMBER', 'FI_NATIONALITY', 'FI_ORGANIZATION_TYPE', 'IT_PIN', 'IT_REGISTRANT_ENTITY_TYPE', 'RU_PASSPORT_DATA', 'SE_ID_NUMBER', 'SG_ID_NUMBER', 'VAT_NUMBER', 'UK_CONTACT_TYPE', 'UK_COMPANY_NUMBER', ], ], 'ExtraParamValue' => [ 'type' => 'string', 'max' => 2048, ], 'FIAuthKey' => [ 'type' => 'string', ], 'GetContactReachabilityStatusRequest' => [ 'type' => 'structure', 'members' => [ 'domainName' => [ 'shape' => 'DomainName', ], ], ], 'GetContactReachabilityStatusResponse' => [ 'type' => 'structure', 'members' => [ 'domainName' => [ 'shape' => 'DomainName', ], 'status' => [ 'shape' => 'ReachabilityStatus', ], ], ], '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', ], ], ], 'GetDomainSuggestionsRequest' => [ 'type' => 'structure', 'required' => [ 'DomainName', 'SuggestionCount', 'OnlyAvailable', ], 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', ], 'SuggestionCount' => [ 'shape' => 'Integer', ], 'OnlyAvailable' => [ 'shape' => 'Boolean', ], ], ], 'GetDomainSuggestionsResponse' => [ 'type' => 'structure', 'members' => [ 'SuggestionsList' => [ 'shape' => 'DomainSuggestionsList', ], ], ], '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_\\-.]*', ], 'Integer' => [ 'type' => 'integer', ], 'InvalidInput' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvoiceId' => [ 'type' => 'string', ], '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' => [ 'SubmittedSince' => [ 'shape' => 'Timestamp', ], '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', ], ], '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', 'ENABLE_AUTORENEW', 'DISABLE_AUTORENEW', 'ADD_DNSSEC', 'REMOVE_DNSSEC', 'EXPIRE_DOMAIN', 'TRANSFER_OUT_DOMAIN', 'CHANGE_DOMAIN_OWNER', 'RENEW_DOMAIN', 'PUSH_DOMAIN', ], ], 'PageMarker' => [ 'type' => 'string', 'max' => 4096, ], 'PageMaxItems' => [ 'type' => 'integer', 'max' => 100, ], 'Price' => [ 'type' => 'double', ], 'ReachabilityStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'DONE', 'EXPIRED', ], ], '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', ], 'RenewDomainRequest' => [ 'type' => 'structure', 'required' => [ 'DomainName', 'CurrentExpiryYear', ], 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', ], 'DurationInYears' => [ 'shape' => 'DurationInYears', ], 'CurrentExpiryYear' => [ 'shape' => 'CurrentExpiryYear', ], ], ], 'RenewDomainResponse' => [ 'type' => 'structure', 'required' => [ 'OperationId', ], 'members' => [ 'OperationId' => [ 'shape' => 'OperationId', ], ], ], 'Reseller' => [ 'type' => 'string', ], 'ResendContactReachabilityEmailRequest' => [ 'type' => 'structure', 'members' => [ 'domainName' => [ 'shape' => 'DomainName', ], ], ], 'ResendContactReachabilityEmailResponse' => [ 'type' => 'structure', 'members' => [ 'domainName' => [ 'shape' => 'DomainName', ], 'emailAddress' => [ 'shape' => 'Email', ], 'isAlreadyVerified' => [ 'shape' => 'Boolean', ], ], ], 'RetrieveDomainAuthCodeRequest' => [ 'type' => 'structure', 'required' => [ 'DomainName', ], 'members' => [ 'DomainName' => [ 'shape' => 'DomainName', ], ], ], 'RetrieveDomainAuthCodeResponse' => [ 'type' => 'structure', 'required' => [ 'AuthCode', ], 'members' => [ 'AuthCode' => [ 'shape' => 'DomainAuthCode', ], ], ], 'State' => [ 'type' => 'string', 'max' => 255, ], 'String' => [ 'type' => 'string', ], 'TLDRulesViolation' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], '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', ], ], ], 'Transferable' => [ 'type' => 'string', 'enum' => [ 'TRANSFERABLE', 'UNTRANSFERABLE', 'DONT_KNOW', ], ], 'UnsupportedTLD' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], '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', 'deprecated' => true, ], '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' => [], ], 'ViewBillingRequest' => [ 'type' => 'structure', 'members' => [ 'Start' => [ 'shape' => 'Timestamp', ], 'End' => [ 'shape' => 'Timestamp', ], 'Marker' => [ 'shape' => 'PageMarker', ], 'MaxItems' => [ 'shape' => 'PageMaxItems', ], ], ], 'ViewBillingResponse' => [ 'type' => 'structure', 'members' => [ 'NextPageMarker' => [ 'shape' => 'PageMarker', ], 'BillingRecords' => [ 'shape' => 'BillingRecords', ], ], ], 'ZipCode' => [ 'type' => 'string', 'max' => 255, ], ],]; diff --git a/lib/aws/Aws/data/route53domains/2014-05-15/paginators-1.json.php b/lib/aws/Aws/data/route53domains/2014-05-15/paginators-1.json.php new file mode 100644 index 0000000..1736529 --- /dev/null +++ b/lib/aws/Aws/data/route53domains/2014-05-15/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/route53domains/2014-05-15/paginators-1.json +return [ 'pagination' => [ 'ListDomains' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'output_token' => 'NextPageMarker', 'result_key' => 'Domains', ], 'ListOperations' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxItems', 'output_token' => 'NextPageMarker', 'result_key' => 'Operations', ], ],]; diff --git a/lib/aws/Aws/data/route53resolver/2018-04-01/api-2.json.php b/lib/aws/Aws/data/route53resolver/2018-04-01/api-2.json.php new file mode 100644 index 0000000..7478b33 --- /dev/null +++ b/lib/aws/Aws/data/route53resolver/2018-04-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/route53resolver/2018-04-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-04-01', 'endpointPrefix' => 'route53resolver', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'Route53Resolver', 'serviceFullName' => 'Amazon Route 53 Resolver', 'serviceId' => 'Route53Resolver', 'signatureVersion' => 'v4', 'targetPrefix' => 'Route53Resolver', 'uid' => 'route53resolver-2018-04-01', ], 'operations' => [ 'AssociateResolverEndpointIpAddress' => [ 'name' => 'AssociateResolverEndpointIpAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateResolverEndpointIpAddressRequest', ], 'output' => [ 'shape' => 'AssociateResolverEndpointIpAddressResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceExistsException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'AssociateResolverRule' => [ 'name' => 'AssociateResolverRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateResolverRuleRequest', ], 'output' => [ 'shape' => 'AssociateResolverRuleResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceUnavailableException', ], [ 'shape' => 'ResourceExistsException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateResolverEndpoint' => [ 'name' => 'CreateResolverEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateResolverEndpointRequest', ], 'output' => [ 'shape' => 'CreateResolverEndpointResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceExistsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateResolverRule' => [ 'name' => 'CreateResolverRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateResolverRuleRequest', ], 'output' => [ 'shape' => 'CreateResolverRuleResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceExistsException', ], [ 'shape' => 'ResourceUnavailableException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteResolverEndpoint' => [ 'name' => 'DeleteResolverEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteResolverEndpointRequest', ], 'output' => [ 'shape' => 'DeleteResolverEndpointResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteResolverRule' => [ 'name' => 'DeleteResolverRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteResolverRuleRequest', ], 'output' => [ 'shape' => 'DeleteResolverRuleResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DisassociateResolverEndpointIpAddress' => [ 'name' => 'DisassociateResolverEndpointIpAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateResolverEndpointIpAddressRequest', ], 'output' => [ 'shape' => 'DisassociateResolverEndpointIpAddressResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceExistsException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DisassociateResolverRule' => [ 'name' => 'DisassociateResolverRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateResolverRuleRequest', ], 'output' => [ 'shape' => 'DisassociateResolverRuleResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetResolverEndpoint' => [ 'name' => 'GetResolverEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetResolverEndpointRequest', ], 'output' => [ 'shape' => 'GetResolverEndpointResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetResolverRule' => [ 'name' => 'GetResolverRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetResolverRuleRequest', ], 'output' => [ 'shape' => 'GetResolverRuleResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetResolverRuleAssociation' => [ 'name' => 'GetResolverRuleAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetResolverRuleAssociationRequest', ], 'output' => [ 'shape' => 'GetResolverRuleAssociationResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetResolverRulePolicy' => [ 'name' => 'GetResolverRulePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetResolverRulePolicyRequest', ], 'output' => [ 'shape' => 'GetResolverRulePolicyResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'UnknownResourceException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'ListResolverEndpointIpAddresses' => [ 'name' => 'ListResolverEndpointIpAddresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListResolverEndpointIpAddressesRequest', ], 'output' => [ 'shape' => 'ListResolverEndpointIpAddressesResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListResolverEndpoints' => [ 'name' => 'ListResolverEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListResolverEndpointsRequest', ], 'output' => [ 'shape' => 'ListResolverEndpointsResponse', ], 'errors' => [ [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListResolverRuleAssociations' => [ 'name' => 'ListResolverRuleAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListResolverRuleAssociationsRequest', ], 'output' => [ 'shape' => 'ListResolverRuleAssociationsResponse', ], 'errors' => [ [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListResolverRules' => [ 'name' => 'ListResolverRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListResolverRulesRequest', ], 'output' => [ 'shape' => 'ListResolverRulesResponse', ], 'errors' => [ [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'PutResolverRulePolicy' => [ 'name' => 'PutResolverRulePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutResolverRulePolicyRequest', ], 'output' => [ 'shape' => 'PutResolverRulePolicyResponse', ], 'errors' => [ [ 'shape' => 'InvalidPolicyDocument', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'UnknownResourceException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidTagException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdateResolverEndpoint' => [ 'name' => 'UpdateResolverEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateResolverEndpointRequest', ], 'output' => [ 'shape' => 'UpdateResolverEndpointResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdateResolverRule' => [ 'name' => 'UpdateResolverRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateResolverRuleRequest', ], 'output' => [ 'shape' => 'UpdateResolverRuleResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceUnavailableException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'ThrottlingException', ], ], ], ], 'shapes' => [ 'AccountId' => [ 'type' => 'string', 'max' => 32, 'min' => 12, ], 'Arn' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'AssociateResolverEndpointIpAddressRequest' => [ 'type' => 'structure', 'required' => [ 'ResolverEndpointId', 'IpAddress', ], 'members' => [ 'ResolverEndpointId' => [ 'shape' => 'ResourceId', ], 'IpAddress' => [ 'shape' => 'IpAddressUpdate', ], ], ], 'AssociateResolverEndpointIpAddressResponse' => [ 'type' => 'structure', 'members' => [ 'ResolverEndpoint' => [ 'shape' => 'ResolverEndpoint', ], ], ], 'AssociateResolverRuleRequest' => [ 'type' => 'structure', 'required' => [ 'ResolverRuleId', 'VPCId', ], 'members' => [ 'ResolverRuleId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'Name', ], 'VPCId' => [ 'shape' => 'ResourceId', ], ], ], 'AssociateResolverRuleResponse' => [ 'type' => 'structure', 'members' => [ 'ResolverRuleAssociation' => [ 'shape' => 'ResolverRuleAssociation', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'CreateResolverEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'CreatorRequestId', 'SecurityGroupIds', 'Direction', 'IpAddresses', ], 'members' => [ 'CreatorRequestId' => [ 'shape' => 'CreatorRequestId', ], 'Name' => [ 'shape' => 'Name', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIds', 'box' => true, ], 'Direction' => [ 'shape' => 'ResolverEndpointDirection', ], 'IpAddresses' => [ 'shape' => 'IpAddressesRequest', ], 'Tags' => [ 'shape' => 'TagList', 'box' => true, ], ], ], 'CreateResolverEndpointResponse' => [ 'type' => 'structure', 'members' => [ 'ResolverEndpoint' => [ 'shape' => 'ResolverEndpoint', ], ], ], 'CreateResolverRuleRequest' => [ 'type' => 'structure', 'required' => [ 'CreatorRequestId', 'RuleType', 'DomainName', ], 'members' => [ 'CreatorRequestId' => [ 'shape' => 'CreatorRequestId', ], 'Name' => [ 'shape' => 'Name', ], 'RuleType' => [ 'shape' => 'RuleTypeOption', ], 'DomainName' => [ 'shape' => 'DomainName', ], 'TargetIps' => [ 'shape' => 'TargetList', 'box' => true, ], 'ResolverEndpointId' => [ 'shape' => 'ResourceId', 'box' => true, ], 'Tags' => [ 'shape' => 'TagList', 'box' => true, ], ], ], 'CreateResolverRuleResponse' => [ 'type' => 'structure', 'members' => [ 'ResolverRule' => [ 'shape' => 'ResolverRule', ], ], ], 'CreatorRequestId' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'DeleteResolverEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'ResolverEndpointId', ], 'members' => [ 'ResolverEndpointId' => [ 'shape' => 'ResourceId', ], ], ], 'DeleteResolverEndpointResponse' => [ 'type' => 'structure', 'members' => [ 'ResolverEndpoint' => [ 'shape' => 'ResolverEndpoint', ], ], ], 'DeleteResolverRuleRequest' => [ 'type' => 'structure', 'required' => [ 'ResolverRuleId', ], 'members' => [ 'ResolverRuleId' => [ 'shape' => 'ResourceId', ], ], ], 'DeleteResolverRuleResponse' => [ 'type' => 'structure', 'members' => [ 'ResolverRule' => [ 'shape' => 'ResolverRule', ], ], ], 'DisassociateResolverEndpointIpAddressRequest' => [ 'type' => 'structure', 'required' => [ 'ResolverEndpointId', 'IpAddress', ], 'members' => [ 'ResolverEndpointId' => [ 'shape' => 'ResourceId', ], 'IpAddress' => [ 'shape' => 'IpAddressUpdate', ], ], ], 'DisassociateResolverEndpointIpAddressResponse' => [ 'type' => 'structure', 'members' => [ 'ResolverEndpoint' => [ 'shape' => 'ResolverEndpoint', ], ], ], 'DisassociateResolverRuleRequest' => [ 'type' => 'structure', 'required' => [ 'VPCId', 'ResolverRuleId', ], 'members' => [ 'VPCId' => [ 'shape' => 'ResourceId', ], 'ResolverRuleId' => [ 'shape' => 'ResourceId', ], ], ], 'DisassociateResolverRuleResponse' => [ 'type' => 'structure', 'members' => [ 'ResolverRuleAssociation' => [ 'shape' => 'ResolverRuleAssociation', ], ], ], 'DomainName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'ExceptionMessage' => [ 'type' => 'string', ], 'Filter' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'FilterName', ], 'Values' => [ 'shape' => 'FilterValues', ], ], ], 'FilterName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'FilterValue' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'FilterValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'FilterValue', ], ], 'Filters' => [ 'type' => 'list', 'member' => [ 'shape' => 'Filter', ], ], 'GetResolverEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'ResolverEndpointId', ], 'members' => [ 'ResolverEndpointId' => [ 'shape' => 'ResourceId', ], ], ], 'GetResolverEndpointResponse' => [ 'type' => 'structure', 'members' => [ 'ResolverEndpoint' => [ 'shape' => 'ResolverEndpoint', ], ], ], 'GetResolverRuleAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'ResolverRuleAssociationId', ], 'members' => [ 'ResolverRuleAssociationId' => [ 'shape' => 'ResourceId', ], ], ], 'GetResolverRuleAssociationResponse' => [ 'type' => 'structure', 'members' => [ 'ResolverRuleAssociation' => [ 'shape' => 'ResolverRuleAssociation', ], ], ], 'GetResolverRulePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'Arn', ], 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], ], ], 'GetResolverRulePolicyResponse' => [ 'type' => 'structure', 'members' => [ 'ResolverRulePolicy' => [ 'shape' => 'ResolverRulePolicy', ], ], ], 'GetResolverRuleRequest' => [ 'type' => 'structure', 'required' => [ 'ResolverRuleId', ], 'members' => [ 'ResolverRuleId' => [ 'shape' => 'ResourceId', ], ], ], 'GetResolverRuleResponse' => [ 'type' => 'structure', 'members' => [ 'ResolverRule' => [ 'shape' => 'ResolverRule', ], ], ], 'InternalServiceErrorException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidParameterException' => [ 'type' => 'structure', 'required' => [ 'Message', ], 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], 'FieldName' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidPolicyDocument' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'InvalidTagException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'Ip' => [ 'type' => 'string', 'max' => 36, 'min' => 7, ], 'IpAddressCount' => [ 'type' => 'integer', ], 'IpAddressRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', ], 'members' => [ 'SubnetId' => [ 'shape' => 'SubnetId', ], 'Ip' => [ 'shape' => 'Ip', 'box' => true, ], ], ], 'IpAddressResponse' => [ 'type' => 'structure', 'members' => [ 'IpId' => [ 'shape' => 'ResourceId', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'Ip' => [ 'shape' => 'Ip', ], 'Status' => [ 'shape' => 'IpAddressStatus', ], 'StatusMessage' => [ 'shape' => 'StatusMessage', ], 'CreationTime' => [ 'shape' => 'Rfc3339TimeString', ], 'ModificationTime' => [ 'shape' => 'Rfc3339TimeString', ], ], ], 'IpAddressStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'FAILED_CREATION', 'ATTACHING', 'ATTACHED', 'REMAP_DETACHING', 'REMAP_ATTACHING', 'DETACHING', 'FAILED_RESOURCE_GONE', 'DELETING', 'DELETE_FAILED_FAS_EXPIRED', ], ], 'IpAddressUpdate' => [ 'type' => 'structure', 'members' => [ 'IpId' => [ 'shape' => 'ResourceId', 'box' => true, ], 'SubnetId' => [ 'shape' => 'SubnetId', 'box' => true, ], 'Ip' => [ 'shape' => 'Ip', 'box' => true, ], ], ], 'IpAddressesRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpAddressRequest', ], 'max' => 10, 'min' => 1, ], 'IpAddressesResponse' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpAddressResponse', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ListResolverEndpointIpAddressesRequest' => [ 'type' => 'structure', 'required' => [ 'ResolverEndpointId', ], 'members' => [ 'ResolverEndpointId' => [ 'shape' => 'ResourceId', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', 'box' => true, ], ], ], 'ListResolverEndpointIpAddressesResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'IpAddresses' => [ 'shape' => 'IpAddressesResponse', ], ], ], 'ListResolverEndpointsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', 'box' => true, ], 'Filters' => [ 'shape' => 'Filters', 'box' => true, ], ], ], 'ListResolverEndpointsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'ResolverEndpoints' => [ 'shape' => 'ResolverEndpoints', ], ], ], 'ListResolverRuleAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', 'box' => true, ], 'Filters' => [ 'shape' => 'Filters', 'box' => true, ], ], ], 'ListResolverRuleAssociationsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'ResolverRuleAssociations' => [ 'shape' => 'ResolverRuleAssociations', ], ], ], 'ListResolverRulesRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', 'box' => true, ], 'Filters' => [ 'shape' => 'Filters', 'box' => true, ], ], ], 'ListResolverRulesResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'ResolverRules' => [ 'shape' => 'ResolverRules', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'Arn', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', 'box' => true, ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'MaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'Name' => [ 'type' => 'string', 'max' => 64, 'pattern' => '(?!^[0-9]+$)([a-zA-Z0-9-_\' \']+)', ], 'NextToken' => [ 'type' => 'string', ], 'Port' => [ 'type' => 'integer', 'max' => 65535, 'min' => 0, ], 'PutResolverRulePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'Arn', 'ResolverRulePolicy', ], 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'ResolverRulePolicy' => [ 'shape' => 'ResolverRulePolicy', ], ], ], 'PutResolverRulePolicyResponse' => [ 'type' => 'structure', 'members' => [ 'ReturnValue' => [ 'shape' => 'Boolean', ], ], ], 'ResolverEndpoint' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ResourceId', ], 'CreatorRequestId' => [ 'shape' => 'CreatorRequestId', ], 'Arn' => [ 'shape' => 'Arn', ], 'Name' => [ 'shape' => 'Name', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIds', ], 'Direction' => [ 'shape' => 'ResolverEndpointDirection', ], 'IpAddressCount' => [ 'shape' => 'IpAddressCount', ], 'HostVPCId' => [ 'shape' => 'ResourceId', ], 'Status' => [ 'shape' => 'ResolverEndpointStatus', ], 'StatusMessage' => [ 'shape' => 'StatusMessage', ], 'CreationTime' => [ 'shape' => 'Rfc3339TimeString', ], 'ModificationTime' => [ 'shape' => 'Rfc3339TimeString', ], ], ], 'ResolverEndpointDirection' => [ 'type' => 'string', 'enum' => [ 'INBOUND', 'OUTBOUND', ], ], 'ResolverEndpointStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'OPERATIONAL', 'UPDATING', 'AUTO_RECOVERING', 'ACTION_NEEDED', 'DELETING', ], ], 'ResolverEndpoints' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResolverEndpoint', ], ], 'ResolverRule' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ResourceId', ], 'CreatorRequestId' => [ 'shape' => 'CreatorRequestId', ], 'Arn' => [ 'shape' => 'Arn', ], 'DomainName' => [ 'shape' => 'DomainName', ], 'Status' => [ 'shape' => 'ResolverRuleStatus', ], 'StatusMessage' => [ 'shape' => 'StatusMessage', ], 'RuleType' => [ 'shape' => 'RuleTypeOption', ], 'Name' => [ 'shape' => 'Name', ], 'TargetIps' => [ 'shape' => 'TargetList', ], 'ResolverEndpointId' => [ 'shape' => 'ResourceId', ], 'OwnerId' => [ 'shape' => 'AccountId', ], 'ShareStatus' => [ 'shape' => 'ShareStatus', ], ], ], 'ResolverRuleAssociation' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ResourceId', ], 'ResolverRuleId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'Name', ], 'VPCId' => [ 'shape' => 'ResourceId', ], 'Status' => [ 'shape' => 'ResolverRuleAssociationStatus', ], 'StatusMessage' => [ 'shape' => 'StatusMessage', ], ], ], 'ResolverRuleAssociationStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'COMPLETE', 'DELETING', 'FAILED', 'OVERRIDDEN', ], ], 'ResolverRuleAssociations' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResolverRuleAssociation', ], ], 'ResolverRuleConfig' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'Name', ], 'TargetIps' => [ 'shape' => 'TargetList', ], 'ResolverEndpointId' => [ 'shape' => 'ResourceId', ], ], ], 'ResolverRulePolicy' => [ 'type' => 'string', 'max' => 5000, ], 'ResolverRuleStatus' => [ 'type' => 'string', 'enum' => [ 'COMPLETE', 'DELETING', 'UPDATING', 'FAILED', ], ], 'ResolverRules' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResolverRule', ], ], 'ResourceExistsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResourceId' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResourceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'Rfc3339TimeString' => [ 'type' => 'string', 'max' => 40, 'min' => 20, ], 'RuleTypeOption' => [ 'type' => 'string', 'enum' => [ 'FORWARD', 'SYSTEM', 'RECURSIVE', ], ], 'SecurityGroupIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceId', ], ], 'ShareStatus' => [ 'type' => 'string', 'enum' => [ 'NOT_SHARED', 'SHARED_WITH_ME', 'SHARED_BY_ME', ], ], 'StatusMessage' => [ 'type' => 'string', 'max' => 255, ], 'String' => [ 'type' => 'string', ], 'SubnetId' => [ 'type' => 'string', 'max' => 32, 'min' => 1, ], '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', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Tags', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'Arn', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', ], 'TargetAddress' => [ 'type' => 'structure', 'required' => [ 'Ip', ], 'members' => [ 'Ip' => [ 'shape' => 'Ip', ], 'Port' => [ 'shape' => 'Port', 'box' => true, ], ], ], 'TargetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetAddress', ], 'min' => 1, ], 'ThrottlingException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'UnknownResourceException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagKeys', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'Arn', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateResolverEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'ResolverEndpointId', ], 'members' => [ 'ResolverEndpointId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'Name', 'box' => true, ], ], ], 'UpdateResolverEndpointResponse' => [ 'type' => 'structure', 'members' => [ 'ResolverEndpoint' => [ 'shape' => 'ResolverEndpoint', ], ], ], 'UpdateResolverRuleRequest' => [ 'type' => 'structure', 'required' => [ 'ResolverRuleId', 'Config', ], 'members' => [ 'ResolverRuleId' => [ 'shape' => 'ResourceId', ], 'Config' => [ 'shape' => 'ResolverRuleConfig', ], ], ], 'UpdateResolverRuleResponse' => [ 'type' => 'structure', 'members' => [ 'ResolverRule' => [ 'shape' => 'ResolverRule', ], ], ], ],]; diff --git a/lib/aws/Aws/data/route53resolver/2018-04-01/paginators-1.json.php b/lib/aws/Aws/data/route53resolver/2018-04-01/paginators-1.json.php new file mode 100644 index 0000000..7ca2b09 --- /dev/null +++ b/lib/aws/Aws/data/route53resolver/2018-04-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/route53resolver/2018-04-01/paginators-1.json +return [ 'pagination' => [ 'ListResolverEndpointIpAddresses' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListResolverEndpoints' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListResolverRuleAssociations' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListResolverRules' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/route53resolver/2018-04-01/smoke.json.php b/lib/aws/Aws/data/route53resolver/2018-04-01/smoke.json.php new file mode 100644 index 0000000..6c0dfe9 --- /dev/null +++ b/lib/aws/Aws/data/route53resolver/2018-04-01/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/route53resolver/2018-04-01/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListResolverEndpoints', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'GetResolverRule', 'input' => [ 'ResolverRuleId' => 'fake-id', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/runtime.lex/2016-11-28/api-2.json.php b/lib/aws/Aws/data/runtime.lex/2016-11-28/api-2.json.php new file mode 100644 index 0000000..2872cd3 --- /dev/null +++ b/lib/aws/Aws/data/runtime.lex/2016-11-28/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/runtime.lex/2016-11-28/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-11-28', 'endpointPrefix' => 'runtime.lex', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceFullName' => 'Amazon Lex Runtime Service', 'serviceId' => 'Lex Runtime Service', 'signatureVersion' => 'v4', 'signingName' => 'lex', 'uid' => 'runtime.lex-2016-11-28', ], 'operations' => [ 'PostContent' => [ 'name' => 'PostContent', 'http' => [ 'method' => 'POST', 'requestUri' => '/bot/{botName}/alias/{botAlias}/user/{userId}/content', ], 'input' => [ 'shape' => 'PostContentRequest', ], 'output' => [ 'shape' => 'PostContentResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'UnsupportedMediaTypeException', ], [ 'shape' => 'NotAcceptableException', ], [ 'shape' => 'RequestTimeoutException', ], [ 'shape' => 'DependencyFailedException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'LoopDetectedException', ], ], 'authtype' => 'v4-unsigned-body', ], 'PostText' => [ 'name' => 'PostText', 'http' => [ 'method' => 'POST', 'requestUri' => '/bot/{botName}/alias/{botAlias}/user/{userId}/text', ], 'input' => [ 'shape' => 'PostTextRequest', ], 'output' => [ 'shape' => 'PostTextResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'DependencyFailedException', ], [ 'shape' => 'BadGatewayException', ], [ 'shape' => 'LoopDetectedException', ], ], ], ], 'shapes' => [ 'Accept' => [ 'type' => 'string', ], 'AttributesString' => [ 'type' => 'string', 'sensitive' => true, ], 'BadGatewayException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 502, ], 'exception' => true, ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'BlobStream' => [ 'type' => 'blob', 'streaming' => true, ], 'BotAlias' => [ 'type' => 'string', ], 'BotName' => [ 'type' => 'string', ], 'Button' => [ 'type' => 'structure', 'required' => [ 'text', 'value', ], 'members' => [ 'text' => [ 'shape' => 'ButtonTextStringWithLength', ], 'value' => [ 'shape' => 'ButtonValueStringWithLength', ], ], ], 'ButtonTextStringWithLength' => [ 'type' => 'string', 'max' => 15, 'min' => 1, ], 'ButtonValueStringWithLength' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'ContentType' => [ 'type' => 'string', 'enum' => [ 'application/vnd.amazonaws.card.generic', ], ], 'DependencyFailedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 424, ], 'exception' => true, ], 'DialogState' => [ 'type' => 'string', 'enum' => [ 'ElicitIntent', 'ConfirmIntent', 'ElicitSlot', 'Fulfilled', 'ReadyForFulfillment', 'Failed', ], ], 'ErrorMessage' => [ 'type' => 'string', ], 'GenericAttachment' => [ 'type' => 'structure', 'members' => [ 'title' => [ 'shape' => 'StringWithLength', ], 'subTitle' => [ 'shape' => 'StringWithLength', ], 'attachmentLinkUrl' => [ 'shape' => 'StringUrlWithLength', ], 'imageUrl' => [ 'shape' => 'StringUrlWithLength', ], 'buttons' => [ 'shape' => 'listOfButtons', ], ], ], 'HttpContentType' => [ 'type' => 'string', ], 'IntentName' => [ 'type' => 'string', ], 'InternalFailureException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'retryAfterSeconds' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'Retry-After', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'LoopDetectedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 508, ], 'exception' => true, ], 'MessageFormatType' => [ 'type' => 'string', 'enum' => [ 'PlainText', 'CustomPayload', 'SSML', 'Composite', ], ], 'NotAcceptableException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 406, ], 'exception' => true, ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'PostContentRequest' => [ 'type' => 'structure', 'required' => [ 'botName', 'botAlias', 'userId', 'contentType', 'inputStream', ], 'members' => [ 'botName' => [ 'shape' => 'BotName', 'location' => 'uri', 'locationName' => 'botName', ], 'botAlias' => [ 'shape' => 'BotAlias', 'location' => 'uri', 'locationName' => 'botAlias', ], 'userId' => [ 'shape' => 'UserId', 'location' => 'uri', 'locationName' => 'userId', ], 'sessionAttributes' => [ 'shape' => 'AttributesString', 'jsonvalue' => true, 'location' => 'header', 'locationName' => 'x-amz-lex-session-attributes', ], 'requestAttributes' => [ 'shape' => 'AttributesString', 'jsonvalue' => true, 'location' => 'header', 'locationName' => 'x-amz-lex-request-attributes', ], 'contentType' => [ 'shape' => 'HttpContentType', 'location' => 'header', 'locationName' => 'Content-Type', ], 'accept' => [ 'shape' => 'Accept', 'location' => 'header', 'locationName' => 'Accept', ], 'inputStream' => [ 'shape' => 'BlobStream', ], ], 'payload' => 'inputStream', ], 'PostContentResponse' => [ 'type' => 'structure', 'members' => [ 'contentType' => [ 'shape' => 'HttpContentType', 'location' => 'header', 'locationName' => 'Content-Type', ], 'intentName' => [ 'shape' => 'IntentName', 'location' => 'header', 'locationName' => 'x-amz-lex-intent-name', ], 'slots' => [ 'shape' => 'String', 'jsonvalue' => true, 'location' => 'header', 'locationName' => 'x-amz-lex-slots', ], 'sessionAttributes' => [ 'shape' => 'String', 'jsonvalue' => true, 'location' => 'header', 'locationName' => 'x-amz-lex-session-attributes', ], 'message' => [ 'shape' => 'Text', 'location' => 'header', 'locationName' => 'x-amz-lex-message', ], 'messageFormat' => [ 'shape' => 'MessageFormatType', 'location' => 'header', 'locationName' => 'x-amz-lex-message-format', ], 'dialogState' => [ 'shape' => 'DialogState', 'location' => 'header', 'locationName' => 'x-amz-lex-dialog-state', ], 'slotToElicit' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'x-amz-lex-slot-to-elicit', ], 'inputTranscript' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'x-amz-lex-input-transcript', ], 'audioStream' => [ 'shape' => 'BlobStream', ], ], 'payload' => 'audioStream', ], 'PostTextRequest' => [ 'type' => 'structure', 'required' => [ 'botName', 'botAlias', 'userId', 'inputText', ], 'members' => [ 'botName' => [ 'shape' => 'BotName', 'location' => 'uri', 'locationName' => 'botName', ], 'botAlias' => [ 'shape' => 'BotAlias', 'location' => 'uri', 'locationName' => 'botAlias', ], 'userId' => [ 'shape' => 'UserId', 'location' => 'uri', 'locationName' => 'userId', ], 'sessionAttributes' => [ 'shape' => 'StringMap', ], 'requestAttributes' => [ 'shape' => 'StringMap', ], 'inputText' => [ 'shape' => 'Text', ], ], ], 'PostTextResponse' => [ 'type' => 'structure', 'members' => [ 'intentName' => [ 'shape' => 'IntentName', ], 'slots' => [ 'shape' => 'StringMap', ], 'sessionAttributes' => [ 'shape' => 'StringMap', ], 'message' => [ 'shape' => 'Text', ], 'messageFormat' => [ 'shape' => 'MessageFormatType', ], 'dialogState' => [ 'shape' => 'DialogState', ], 'slotToElicit' => [ 'shape' => 'String', ], 'responseCard' => [ 'shape' => 'ResponseCard', ], ], ], 'RequestTimeoutException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 408, ], 'exception' => true, ], 'ResponseCard' => [ 'type' => 'structure', 'members' => [ 'version' => [ 'shape' => 'String', ], 'contentType' => [ 'shape' => 'ContentType', ], 'genericAttachments' => [ 'shape' => 'genericAttachmentList', ], ], ], 'String' => [ 'type' => 'string', ], 'StringMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], 'sensitive' => true, ], 'StringUrlWithLength' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'StringWithLength' => [ 'type' => 'string', 'max' => 80, 'min' => 1, ], 'Text' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'sensitive' => true, ], 'UnsupportedMediaTypeException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 415, ], 'exception' => true, ], 'UserId' => [ 'type' => 'string', 'max' => 100, 'min' => 2, 'pattern' => '[0-9a-zA-Z._:-]+', ], 'genericAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GenericAttachment', ], 'max' => 10, 'min' => 0, ], 'listOfButtons' => [ 'type' => 'list', 'member' => [ 'shape' => 'Button', ], 'max' => 5, 'min' => 0, ], ],]; diff --git a/lib/aws/Aws/data/runtime.lex/2016-11-28/paginators-1.json.php b/lib/aws/Aws/data/runtime.lex/2016-11-28/paginators-1.json.php new file mode 100644 index 0000000..ff774c9 --- /dev/null +++ b/lib/aws/Aws/data/runtime.lex/2016-11-28/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/runtime.lex/2016-11-28/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/runtime.sagemaker/2017-05-13/api-2.json.php b/lib/aws/Aws/data/runtime.sagemaker/2017-05-13/api-2.json.php new file mode 100644 index 0000000..80d59bb --- /dev/null +++ b/lib/aws/Aws/data/runtime.sagemaker/2017-05-13/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/runtime.sagemaker/2017-05-13/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-05-13', 'endpointPrefix' => 'runtime.sagemaker', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceFullName' => 'Amazon SageMaker Runtime', 'serviceId' => 'SageMaker Runtime', 'signatureVersion' => 'v4', 'signingName' => 'sagemaker', 'uid' => 'runtime.sagemaker-2017-05-13', ], 'operations' => [ 'InvokeEndpoint' => [ 'name' => 'InvokeEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/endpoints/{EndpointName}/invocations', ], 'input' => [ 'shape' => 'InvokeEndpointInput', ], 'output' => [ 'shape' => 'InvokeEndpointOutput', ], 'errors' => [ [ 'shape' => 'InternalFailure', ], [ 'shape' => 'ServiceUnavailable', ], [ 'shape' => 'ValidationError', ], [ 'shape' => 'ModelError', ], ], ], ], 'shapes' => [ 'BodyBlob' => [ 'type' => 'blob', 'max' => 5242880, 'sensitive' => true, ], 'CustomAttributesHeader' => [ 'type' => 'string', 'max' => 1024, 'sensitive' => true, ], 'EndpointName' => [ 'type' => 'string', 'max' => 63, 'pattern' => '^[a-zA-Z0-9](-*[a-zA-Z0-9])*', ], 'Header' => [ 'type' => 'string', 'max' => 1024, ], 'InternalFailure' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, 'synthetic' => true, ], 'InvokeEndpointInput' => [ 'type' => 'structure', 'required' => [ 'EndpointName', 'Body', ], 'members' => [ 'EndpointName' => [ 'shape' => 'EndpointName', 'location' => 'uri', 'locationName' => 'EndpointName', ], 'Body' => [ 'shape' => 'BodyBlob', ], 'ContentType' => [ 'shape' => 'Header', 'location' => 'header', 'locationName' => 'Content-Type', ], 'Accept' => [ 'shape' => 'Header', 'location' => 'header', 'locationName' => 'Accept', ], 'CustomAttributes' => [ 'shape' => 'CustomAttributesHeader', 'location' => 'header', 'locationName' => 'X-Amzn-SageMaker-Custom-Attributes', ], ], 'payload' => 'Body', ], 'InvokeEndpointOutput' => [ 'type' => 'structure', 'required' => [ 'Body', ], 'members' => [ 'Body' => [ 'shape' => 'BodyBlob', ], 'ContentType' => [ 'shape' => 'Header', 'location' => 'header', 'locationName' => 'Content-Type', ], 'InvokedProductionVariant' => [ 'shape' => 'Header', 'location' => 'header', 'locationName' => 'x-Amzn-Invoked-Production-Variant', ], 'CustomAttributes' => [ 'shape' => 'CustomAttributesHeader', 'location' => 'header', 'locationName' => 'X-Amzn-SageMaker-Custom-Attributes', ], ], 'payload' => 'Body', ], 'LogStreamArn' => [ 'type' => 'string', ], 'Message' => [ 'type' => 'string', 'max' => 2048, ], 'ModelError' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], 'OriginalStatusCode' => [ 'shape' => 'StatusCode', ], 'OriginalMessage' => [ 'shape' => 'Message', ], 'LogStreamArn' => [ 'shape' => 'LogStreamArn', ], ], 'error' => [ 'httpStatusCode' => 424, ], 'exception' => true, ], 'ServiceUnavailable' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 503, ], 'exception' => true, 'fault' => true, 'synthetic' => true, ], 'StatusCode' => [ 'type' => 'integer', ], 'ValidationError' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, 'synthetic' => true, ], ],]; diff --git a/lib/aws/Aws/data/runtime.sagemaker/2017-05-13/paginators-1.json.php b/lib/aws/Aws/data/runtime.sagemaker/2017-05-13/paginators-1.json.php new file mode 100644 index 0000000..c8270bd --- /dev/null +++ b/lib/aws/Aws/data/runtime.sagemaker/2017-05-13/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/runtime.sagemaker/2017-05-13/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/s3/2006-03-01/api-2.json.php b/lib/aws/Aws/data/s3/2006-03-01/api-2.json.php new file mode 100644 index 0000000..c2778d7 --- /dev/null +++ b/lib/aws/Aws/data/s3/2006-03-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/s3/2006-03-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2006-03-01', 'checksumFormat' => 'md5', 'endpointPrefix' => 's3', 'globalEndpoint' => 's3.amazonaws.com', 'protocol' => 'rest-xml', 'serviceAbbreviation' => 'Amazon S3', 'serviceFullName' => 'Amazon Simple Storage Service', 'serviceId' => 'S3', 'signatureVersion' => 's3', 'uid' => 's3-2006-03-01', ], 'operations' => [ 'AbortMultipartUpload' => [ 'name' => 'AbortMultipartUpload', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}/{Key+}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'AbortMultipartUploadRequest', ], 'output' => [ 'shape' => 'AbortMultipartUploadOutput', ], 'errors' => [ [ 'shape' => 'NoSuchUpload', ], ], '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', ], ], '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', ], [ 'shape' => 'BucketAlreadyOwnedByYou', ], ], '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}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketRequest', ], 'documentationUrl' => 'http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETE.html', ], 'DeleteBucketAnalyticsConfiguration' => [ 'name' => 'DeleteBucketAnalyticsConfiguration', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?analytics', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketAnalyticsConfigurationRequest', ], ], 'DeleteBucketCors' => [ 'name' => 'DeleteBucketCors', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?cors', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketCorsRequest', ], 'documentationUrl' => 'http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEcors.html', ], 'DeleteBucketEncryption' => [ 'name' => 'DeleteBucketEncryption', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?encryption', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketEncryptionRequest', ], ], 'DeleteBucketInventoryConfiguration' => [ 'name' => 'DeleteBucketInventoryConfiguration', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?inventory', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketInventoryConfigurationRequest', ], ], 'DeleteBucketLifecycle' => [ 'name' => 'DeleteBucketLifecycle', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?lifecycle', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketLifecycleRequest', ], 'documentationUrl' => 'http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETElifecycle.html', ], 'DeleteBucketMetricsConfiguration' => [ 'name' => 'DeleteBucketMetricsConfiguration', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?metrics', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketMetricsConfigurationRequest', ], ], 'DeleteBucketPolicy' => [ 'name' => 'DeleteBucketPolicy', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?policy', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketPolicyRequest', ], 'documentationUrl' => 'http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEpolicy.html', ], 'DeleteBucketReplication' => [ 'name' => 'DeleteBucketReplication', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?replication', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketReplicationRequest', ], ], 'DeleteBucketTagging' => [ 'name' => 'DeleteBucketTagging', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?tagging', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketTaggingRequest', ], 'documentationUrl' => 'http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEtagging.html', ], 'DeleteBucketWebsite' => [ 'name' => 'DeleteBucketWebsite', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?website', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketWebsiteRequest', ], 'documentationUrl' => 'http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEwebsite.html', ], 'DeleteObject' => [ 'name' => 'DeleteObject', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}/{Key+}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteObjectRequest', ], 'output' => [ 'shape' => 'DeleteObjectOutput', ], 'documentationUrl' => 'http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectDELETE.html', ], 'DeleteObjectTagging' => [ 'name' => 'DeleteObjectTagging', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}/{Key+}?tagging', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteObjectTaggingRequest', ], 'output' => [ 'shape' => 'DeleteObjectTaggingOutput', ], ], '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', ], 'DeletePublicAccessBlock' => [ 'name' => 'DeletePublicAccessBlock', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?publicAccessBlock', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeletePublicAccessBlockRequest', ], ], 'GetBucketAccelerateConfiguration' => [ 'name' => 'GetBucketAccelerateConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?accelerate', ], 'input' => [ 'shape' => 'GetBucketAccelerateConfigurationRequest', ], 'output' => [ 'shape' => 'GetBucketAccelerateConfigurationOutput', ], ], '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', ], 'GetBucketAnalyticsConfiguration' => [ 'name' => 'GetBucketAnalyticsConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?analytics', ], 'input' => [ 'shape' => 'GetBucketAnalyticsConfigurationRequest', ], 'output' => [ 'shape' => 'GetBucketAnalyticsConfigurationOutput', ], ], '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', ], 'GetBucketEncryption' => [ 'name' => 'GetBucketEncryption', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?encryption', ], 'input' => [ 'shape' => 'GetBucketEncryptionRequest', ], 'output' => [ 'shape' => 'GetBucketEncryptionOutput', ], ], 'GetBucketInventoryConfiguration' => [ 'name' => 'GetBucketInventoryConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?inventory', ], 'input' => [ 'shape' => 'GetBucketInventoryConfigurationRequest', ], 'output' => [ 'shape' => 'GetBucketInventoryConfigurationOutput', ], ], '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', 'deprecated' => true, ], 'GetBucketLifecycleConfiguration' => [ 'name' => 'GetBucketLifecycleConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?lifecycle', ], 'input' => [ 'shape' => 'GetBucketLifecycleConfigurationRequest', ], 'output' => [ 'shape' => 'GetBucketLifecycleConfigurationOutput', ], ], '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', ], 'GetBucketMetricsConfiguration' => [ 'name' => 'GetBucketMetricsConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?metrics', ], 'input' => [ 'shape' => 'GetBucketMetricsConfigurationRequest', ], 'output' => [ 'shape' => 'GetBucketMetricsConfigurationOutput', ], ], 'GetBucketNotification' => [ 'name' => 'GetBucketNotification', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?notification', ], 'input' => [ 'shape' => 'GetBucketNotificationConfigurationRequest', ], 'output' => [ 'shape' => 'NotificationConfigurationDeprecated', ], 'documentationUrl' => 'http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETnotification.html', 'deprecated' => true, ], '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', ], 'GetBucketPolicyStatus' => [ 'name' => 'GetBucketPolicyStatus', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?policyStatus', ], 'input' => [ 'shape' => 'GetBucketPolicyStatusRequest', ], 'output' => [ 'shape' => 'GetBucketPolicyStatusOutput', ], ], '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', ], ], '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', ], ], 'documentationUrl' => 'http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGETacl.html', ], 'GetObjectLegalHold' => [ 'name' => 'GetObjectLegalHold', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}/{Key+}?legal-hold', ], 'input' => [ 'shape' => 'GetObjectLegalHoldRequest', ], 'output' => [ 'shape' => 'GetObjectLegalHoldOutput', ], ], 'GetObjectLockConfiguration' => [ 'name' => 'GetObjectLockConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?object-lock', ], 'input' => [ 'shape' => 'GetObjectLockConfigurationRequest', ], 'output' => [ 'shape' => 'GetObjectLockConfigurationOutput', ], ], 'GetObjectRetention' => [ 'name' => 'GetObjectRetention', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}/{Key+}?retention', ], 'input' => [ 'shape' => 'GetObjectRetentionRequest', ], 'output' => [ 'shape' => 'GetObjectRetentionOutput', ], ], 'GetObjectTagging' => [ 'name' => 'GetObjectTagging', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}/{Key+}?tagging', ], 'input' => [ 'shape' => 'GetObjectTaggingRequest', ], 'output' => [ 'shape' => 'GetObjectTaggingOutput', ], ], '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', ], 'GetPublicAccessBlock' => [ 'name' => 'GetPublicAccessBlock', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?publicAccessBlock', ], 'input' => [ 'shape' => 'GetPublicAccessBlockRequest', ], 'output' => [ 'shape' => 'GetPublicAccessBlockOutput', ], ], 'HeadBucket' => [ 'name' => 'HeadBucket', 'http' => [ 'method' => 'HEAD', 'requestUri' => '/{Bucket}', ], 'input' => [ 'shape' => 'HeadBucketRequest', ], 'errors' => [ [ 'shape' => 'NoSuchBucket', ], ], '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', ], ], 'documentationUrl' => 'http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectHEAD.html', ], 'ListBucketAnalyticsConfigurations' => [ 'name' => 'ListBucketAnalyticsConfigurations', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?analytics', ], 'input' => [ 'shape' => 'ListBucketAnalyticsConfigurationsRequest', ], 'output' => [ 'shape' => 'ListBucketAnalyticsConfigurationsOutput', ], ], 'ListBucketInventoryConfigurations' => [ 'name' => 'ListBucketInventoryConfigurations', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?inventory', ], 'input' => [ 'shape' => 'ListBucketInventoryConfigurationsRequest', ], 'output' => [ 'shape' => 'ListBucketInventoryConfigurationsOutput', ], ], 'ListBucketMetricsConfigurations' => [ 'name' => 'ListBucketMetricsConfigurations', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?metrics', ], 'input' => [ 'shape' => 'ListBucketMetricsConfigurationsRequest', ], 'output' => [ 'shape' => 'ListBucketMetricsConfigurationsOutput', ], ], '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', ], ], 'documentationUrl' => 'http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGET.html', 'alias' => 'GetBucket', ], 'ListObjectsV2' => [ 'name' => 'ListObjectsV2', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?list-type=2', ], 'input' => [ 'shape' => 'ListObjectsV2Request', ], 'output' => [ 'shape' => 'ListObjectsV2Output', ], 'errors' => [ [ 'shape' => 'NoSuchBucket', ], ], ], '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', ], 'PutBucketAccelerateConfiguration' => [ 'name' => 'PutBucketAccelerateConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?accelerate', ], 'input' => [ 'shape' => 'PutBucketAccelerateConfigurationRequest', ], ], 'PutBucketAcl' => [ 'name' => 'PutBucketAcl', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?acl', ], 'input' => [ 'shape' => 'PutBucketAclRequest', ], 'documentationUrl' => 'http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTacl.html', ], 'PutBucketAnalyticsConfiguration' => [ 'name' => 'PutBucketAnalyticsConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?analytics', ], 'input' => [ 'shape' => 'PutBucketAnalyticsConfigurationRequest', ], ], 'PutBucketCors' => [ 'name' => 'PutBucketCors', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?cors', ], 'input' => [ 'shape' => 'PutBucketCorsRequest', ], 'documentationUrl' => 'http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTcors.html', ], 'PutBucketEncryption' => [ 'name' => 'PutBucketEncryption', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?encryption', ], 'input' => [ 'shape' => 'PutBucketEncryptionRequest', ], ], 'PutBucketInventoryConfiguration' => [ 'name' => 'PutBucketInventoryConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?inventory', ], 'input' => [ 'shape' => 'PutBucketInventoryConfigurationRequest', ], ], 'PutBucketLifecycle' => [ 'name' => 'PutBucketLifecycle', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?lifecycle', ], 'input' => [ 'shape' => 'PutBucketLifecycleRequest', ], 'documentationUrl' => 'http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html', 'deprecated' => true, ], 'PutBucketLifecycleConfiguration' => [ 'name' => 'PutBucketLifecycleConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?lifecycle', ], 'input' => [ 'shape' => 'PutBucketLifecycleConfigurationRequest', ], ], 'PutBucketLogging' => [ 'name' => 'PutBucketLogging', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?logging', ], 'input' => [ 'shape' => 'PutBucketLoggingRequest', ], 'documentationUrl' => 'http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTlogging.html', ], 'PutBucketMetricsConfiguration' => [ 'name' => 'PutBucketMetricsConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?metrics', ], 'input' => [ 'shape' => 'PutBucketMetricsConfigurationRequest', ], ], 'PutBucketNotification' => [ 'name' => 'PutBucketNotification', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?notification', ], 'input' => [ 'shape' => 'PutBucketNotificationRequest', ], 'documentationUrl' => 'http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTnotification.html', 'deprecated' => true, ], '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', ], ], 'documentationUrl' => 'http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUTacl.html', ], 'PutObjectLegalHold' => [ 'name' => 'PutObjectLegalHold', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}/{Key+}?legal-hold', ], 'input' => [ 'shape' => 'PutObjectLegalHoldRequest', ], 'output' => [ 'shape' => 'PutObjectLegalHoldOutput', ], ], 'PutObjectLockConfiguration' => [ 'name' => 'PutObjectLockConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?object-lock', ], 'input' => [ 'shape' => 'PutObjectLockConfigurationRequest', ], 'output' => [ 'shape' => 'PutObjectLockConfigurationOutput', ], ], 'PutObjectRetention' => [ 'name' => 'PutObjectRetention', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}/{Key+}?retention', ], 'input' => [ 'shape' => 'PutObjectRetentionRequest', ], 'output' => [ 'shape' => 'PutObjectRetentionOutput', ], ], 'PutObjectTagging' => [ 'name' => 'PutObjectTagging', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}/{Key+}?tagging', ], 'input' => [ 'shape' => 'PutObjectTaggingRequest', ], 'output' => [ 'shape' => 'PutObjectTaggingOutput', ], ], 'PutPublicAccessBlock' => [ 'name' => 'PutPublicAccessBlock', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?publicAccessBlock', ], 'input' => [ 'shape' => 'PutPublicAccessBlockRequest', ], ], 'RestoreObject' => [ 'name' => 'RestoreObject', 'http' => [ 'method' => 'POST', 'requestUri' => '/{Bucket}/{Key+}?restore', ], 'input' => [ 'shape' => 'RestoreObjectRequest', ], 'output' => [ 'shape' => 'RestoreObjectOutput', ], 'errors' => [ [ 'shape' => 'ObjectAlreadyInActiveTierError', ], ], 'documentationUrl' => 'http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectRestore.html', 'alias' => 'PostObjectRestore', ], 'SelectObjectContent' => [ 'name' => 'SelectObjectContent', 'http' => [ 'method' => 'POST', 'requestUri' => '/{Bucket}/{Key+}?select&select-type=2', ], 'input' => [ 'shape' => 'SelectObjectContentRequest', 'locationName' => 'SelectObjectContentRequest', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'output' => [ 'shape' => 'SelectObjectContentOutput', ], ], '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' => [ 'AbortDate' => [ 'type' => 'timestamp', ], 'AbortIncompleteMultipartUpload' => [ 'type' => 'structure', 'members' => [ 'DaysAfterInitiation' => [ 'shape' => 'DaysAfterInitiation', ], ], ], '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', ], ], ], 'AbortRuleId' => [ 'type' => 'string', ], 'AccelerateConfiguration' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'BucketAccelerateStatus', ], ], ], 'AcceptRanges' => [ 'type' => 'string', ], 'AccessControlPolicy' => [ 'type' => 'structure', 'members' => [ 'Grants' => [ 'shape' => 'Grants', 'locationName' => 'AccessControlList', ], 'Owner' => [ 'shape' => 'Owner', ], ], ], 'AccessControlTranslation' => [ 'type' => 'structure', 'required' => [ 'Owner', ], 'members' => [ 'Owner' => [ 'shape' => 'OwnerOverride', ], ], ], 'AccountId' => [ 'type' => 'string', ], 'AllowQuotedRecordDelimiter' => [ 'type' => 'boolean', ], '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, ], 'AnalyticsAndOperator' => [ 'type' => 'structure', 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], 'Tags' => [ 'shape' => 'TagSet', 'flattened' => true, 'locationName' => 'Tag', ], ], ], 'AnalyticsConfiguration' => [ 'type' => 'structure', 'required' => [ 'Id', 'StorageClassAnalysis', ], 'members' => [ 'Id' => [ 'shape' => 'AnalyticsId', ], 'Filter' => [ 'shape' => 'AnalyticsFilter', ], 'StorageClassAnalysis' => [ 'shape' => 'StorageClassAnalysis', ], ], ], 'AnalyticsConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AnalyticsConfiguration', ], 'flattened' => true, ], 'AnalyticsExportDestination' => [ 'type' => 'structure', 'required' => [ 'S3BucketDestination', ], 'members' => [ 'S3BucketDestination' => [ 'shape' => 'AnalyticsS3BucketDestination', ], ], ], 'AnalyticsFilter' => [ 'type' => 'structure', 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], 'Tag' => [ 'shape' => 'Tag', ], 'And' => [ 'shape' => 'AnalyticsAndOperator', ], ], ], 'AnalyticsId' => [ 'type' => 'string', ], 'AnalyticsS3BucketDestination' => [ 'type' => 'structure', 'required' => [ 'Format', 'Bucket', ], 'members' => [ 'Format' => [ 'shape' => 'AnalyticsS3ExportFileFormat', ], 'BucketAccountId' => [ 'shape' => 'AccountId', ], 'Bucket' => [ 'shape' => 'BucketName', ], 'Prefix' => [ 'shape' => 'Prefix', ], ], ], 'AnalyticsS3ExportFileFormat' => [ 'type' => 'string', 'enum' => [ 'CSV', ], ], 'Body' => [ 'type' => 'blob', ], 'Bucket' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'BucketName', ], 'CreationDate' => [ 'shape' => 'CreationDate', ], ], ], 'BucketAccelerateStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Suspended', ], ], 'BucketAlreadyExists' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'BucketAlreadyOwnedByYou' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'BucketCannedACL' => [ 'type' => 'string', 'enum' => [ 'private', 'public-read', 'public-read-write', 'authenticated-read', ], ], 'BucketLifecycleConfiguration' => [ 'type' => 'structure', 'required' => [ 'Rules', ], 'members' => [ 'Rules' => [ 'shape' => 'LifecycleRules', 'locationName' => 'Rule', ], ], ], 'BucketLocationConstraint' => [ 'type' => 'string', 'enum' => [ 'EU', 'eu-west-1', 'us-west-1', 'us-west-2', 'ap-south-1', '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', ], ], 'BypassGovernanceRetention' => [ 'type' => 'boolean', ], 'BytesProcessed' => [ 'type' => 'long', ], 'BytesReturned' => [ 'type' => 'long', ], 'BytesScanned' => [ 'type' => 'long', ], 'CORSConfiguration' => [ 'type' => 'structure', 'required' => [ 'CORSRules', ], 'members' => [ 'CORSRules' => [ 'shape' => 'CORSRules', 'locationName' => 'CORSRule', ], ], ], 'CORSRule' => [ 'type' => 'structure', 'required' => [ 'AllowedMethods', 'AllowedOrigins', ], '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, ], 'CSVInput' => [ 'type' => 'structure', 'members' => [ 'FileHeaderInfo' => [ 'shape' => 'FileHeaderInfo', ], 'Comments' => [ 'shape' => 'Comments', ], 'QuoteEscapeCharacter' => [ 'shape' => 'QuoteEscapeCharacter', ], 'RecordDelimiter' => [ 'shape' => 'RecordDelimiter', ], 'FieldDelimiter' => [ 'shape' => 'FieldDelimiter', ], 'QuoteCharacter' => [ 'shape' => 'QuoteCharacter', ], 'AllowQuotedRecordDelimiter' => [ 'shape' => 'AllowQuotedRecordDelimiter', ], ], ], 'CSVOutput' => [ 'type' => 'structure', 'members' => [ 'QuoteFields' => [ 'shape' => 'QuoteFields', ], 'QuoteEscapeCharacter' => [ 'shape' => 'QuoteEscapeCharacter', ], 'RecordDelimiter' => [ 'shape' => 'RecordDelimiter', ], 'FieldDelimiter' => [ 'shape' => 'FieldDelimiter', ], 'QuoteCharacter' => [ 'shape' => 'QuoteCharacter', ], ], ], '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', ], 'Comments' => [ '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, ], 'CompressionType' => [ 'type' => 'string', 'enum' => [ 'NONE', 'GZIP', 'BZIP2', ], ], 'Condition' => [ 'type' => 'structure', 'members' => [ 'HttpErrorCodeReturnedEquals' => [ 'shape' => 'HttpErrorCodeReturnedEquals', ], 'KeyPrefixEquals' => [ 'shape' => 'KeyPrefixEquals', ], ], ], 'ConfirmRemoveSelfBucketAccess' => [ 'type' => 'boolean', ], 'ContentDisposition' => [ 'type' => 'string', ], 'ContentEncoding' => [ 'type' => 'string', ], 'ContentLanguage' => [ 'type' => 'string', ], 'ContentLength' => [ 'type' => 'long', ], 'ContentMD5' => [ 'type' => 'string', ], 'ContentRange' => [ 'type' => 'string', ], 'ContentType' => [ 'type' => 'string', ], 'ContinuationEvent' => [ 'type' => 'structure', 'members' => [], 'event' => true, ], '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', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'header', 'locationName' => 'x-amz-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', ], 'TaggingDirective' => [ 'shape' => 'TaggingDirective', 'location' => 'header', 'locationName' => 'x-amz-tagging-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', ], 'Tagging' => [ 'shape' => 'TaggingHeader', 'location' => 'header', 'locationName' => 'x-amz-tagging', ], 'ObjectLockMode' => [ 'shape' => 'ObjectLockMode', 'location' => 'header', 'locationName' => 'x-amz-object-lock-mode', ], 'ObjectLockRetainUntilDate' => [ 'shape' => 'ObjectLockRetainUntilDate', 'location' => 'header', 'locationName' => 'x-amz-object-lock-retain-until-date', ], 'ObjectLockLegalHoldStatus' => [ 'shape' => 'ObjectLockLegalHoldStatus', 'location' => 'header', 'locationName' => 'x-amz-object-lock-legal-hold', ], ], ], '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', 'locationName' => 'CreateBucketConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], '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', ], 'ObjectLockEnabledForBucket' => [ 'shape' => 'ObjectLockEnabledForBucket', 'location' => 'header', 'locationName' => 'x-amz-bucket-object-lock-enabled', ], ], 'payload' => 'CreateBucketConfiguration', ], 'CreateMultipartUploadOutput' => [ 'type' => 'structure', 'members' => [ 'AbortDate' => [ 'shape' => 'AbortDate', 'location' => 'header', 'locationName' => 'x-amz-abort-date', ], 'AbortRuleId' => [ 'shape' => 'AbortRuleId', 'location' => 'header', 'locationName' => 'x-amz-abort-rule-id', ], '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', ], 'Tagging' => [ 'shape' => 'TaggingHeader', 'location' => 'header', 'locationName' => 'x-amz-tagging', ], 'ObjectLockMode' => [ 'shape' => 'ObjectLockMode', 'location' => 'header', 'locationName' => 'x-amz-object-lock-mode', ], 'ObjectLockRetainUntilDate' => [ 'shape' => 'ObjectLockRetainUntilDate', 'location' => 'header', 'locationName' => 'x-amz-object-lock-retain-until-date', ], 'ObjectLockLegalHoldStatus' => [ 'shape' => 'ObjectLockLegalHoldStatus', 'location' => 'header', 'locationName' => 'x-amz-object-lock-legal-hold', ], ], ], 'CreationDate' => [ 'type' => 'timestamp', ], 'Date' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], 'Days' => [ 'type' => 'integer', ], 'DaysAfterInitiation' => [ 'type' => 'integer', ], 'DefaultRetention' => [ 'type' => 'structure', 'members' => [ 'Mode' => [ 'shape' => 'ObjectLockRetentionMode', ], 'Days' => [ 'shape' => 'Days', ], 'Years' => [ 'shape' => 'Years', ], ], ], 'Delete' => [ 'type' => 'structure', 'required' => [ 'Objects', ], 'members' => [ 'Objects' => [ 'shape' => 'ObjectIdentifierList', 'locationName' => 'Object', ], 'Quiet' => [ 'shape' => 'Quiet', ], ], ], 'DeleteBucketAnalyticsConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'AnalyticsId', 'location' => 'querystring', 'locationName' => 'id', ], ], ], 'DeleteBucketCorsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], ], ], 'DeleteBucketEncryptionRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], ], ], 'DeleteBucketInventoryConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'InventoryId', 'location' => 'querystring', 'locationName' => 'id', ], ], ], 'DeleteBucketLifecycleRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], ], ], 'DeleteBucketMetricsConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'MetricsId', 'location' => 'querystring', 'locationName' => 'id', ], ], ], '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', ], ], ], 'DeleteMarkerReplication' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'DeleteMarkerReplicationStatus', ], ], ], 'DeleteMarkerReplicationStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], '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', ], 'BypassGovernanceRetention' => [ 'shape' => 'BypassGovernanceRetention', 'location' => 'header', 'locationName' => 'x-amz-bypass-governance-retention', ], ], ], 'DeleteObjectTaggingOutput' => [ 'type' => 'structure', 'members' => [ 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'header', 'locationName' => 'x-amz-version-id', ], ], ], 'DeleteObjectTaggingRequest' => [ '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', ], ], ], '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', 'locationName' => 'Delete', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'MFA' => [ 'shape' => 'MFA', 'location' => 'header', 'locationName' => 'x-amz-mfa', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'BypassGovernanceRetention' => [ 'shape' => 'BypassGovernanceRetention', 'location' => 'header', 'locationName' => 'x-amz-bypass-governance-retention', ], ], 'payload' => 'Delete', ], 'DeletePublicAccessBlockRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], ], ], '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', ], 'Description' => [ 'type' => 'string', ], 'Destination' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', ], 'Account' => [ 'shape' => 'AccountId', ], 'StorageClass' => [ 'shape' => 'StorageClass', ], 'AccessControlTranslation' => [ 'shape' => 'AccessControlTranslation', ], 'EncryptionConfiguration' => [ 'shape' => 'EncryptionConfiguration', ], ], ], 'DisplayName' => [ 'type' => 'string', ], 'ETag' => [ 'type' => 'string', ], 'EmailAddress' => [ 'type' => 'string', ], 'EnableRequestProgress' => [ 'type' => 'boolean', ], 'EncodingType' => [ 'type' => 'string', 'enum' => [ 'url', ], ], 'Encryption' => [ 'type' => 'structure', 'required' => [ 'EncryptionType', ], 'members' => [ 'EncryptionType' => [ 'shape' => 'ServerSideEncryption', ], 'KMSKeyId' => [ 'shape' => 'SSEKMSKeyId', ], 'KMSContext' => [ 'shape' => 'KMSContext', ], ], ], 'EncryptionConfiguration' => [ 'type' => 'structure', 'members' => [ 'ReplicaKmsKeyID' => [ 'shape' => 'ReplicaKmsKeyID', ], ], ], 'EndEvent' => [ 'type' => 'structure', 'members' => [], 'event' => true, ], '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:*', 's3:ObjectCreated:Put', 's3:ObjectCreated:Post', 's3:ObjectCreated:Copy', 's3:ObjectCreated:CompleteMultipartUpload', 's3:ObjectRemoved:*', 's3:ObjectRemoved:Delete', 's3:ObjectRemoved:DeleteMarkerCreated', 's3:ObjectRestore:Post', 's3:ObjectRestore:Completed', ], ], 'EventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Event', ], 'flattened' => true, ], 'Expiration' => [ 'type' => 'string', ], 'ExpirationStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'ExpiredObjectDeleteMarker' => [ 'type' => 'boolean', ], 'Expires' => [ 'type' => 'timestamp', ], 'ExposeHeader' => [ 'type' => 'string', ], 'ExposeHeaders' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExposeHeader', ], 'flattened' => true, ], 'Expression' => [ 'type' => 'string', ], 'ExpressionType' => [ 'type' => 'string', 'enum' => [ 'SQL', ], ], 'FetchOwner' => [ 'type' => 'boolean', ], 'FieldDelimiter' => [ 'type' => 'string', ], 'FileHeaderInfo' => [ 'type' => 'string', 'enum' => [ 'USE', 'IGNORE', 'NONE', ], ], 'FilterRule' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'FilterRuleName', ], 'Value' => [ 'shape' => 'FilterRuleValue', ], ], ], 'FilterRuleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FilterRule', ], 'flattened' => true, ], 'FilterRuleName' => [ 'type' => 'string', 'enum' => [ 'prefix', 'suffix', ], ], 'FilterRuleValue' => [ 'type' => 'string', ], 'GetBucketAccelerateConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'BucketAccelerateStatus', ], ], ], 'GetBucketAccelerateConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], ], ], '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', ], ], ], 'GetBucketAnalyticsConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'AnalyticsConfiguration' => [ 'shape' => 'AnalyticsConfiguration', ], ], 'payload' => 'AnalyticsConfiguration', ], 'GetBucketAnalyticsConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'AnalyticsId', 'location' => 'querystring', 'locationName' => 'id', ], ], ], 'GetBucketCorsOutput' => [ 'type' => 'structure', 'members' => [ 'CORSRules' => [ 'shape' => 'CORSRules', 'locationName' => 'CORSRule', ], ], ], 'GetBucketCorsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], ], ], 'GetBucketEncryptionOutput' => [ 'type' => 'structure', 'members' => [ 'ServerSideEncryptionConfiguration' => [ 'shape' => 'ServerSideEncryptionConfiguration', ], ], 'payload' => 'ServerSideEncryptionConfiguration', ], 'GetBucketEncryptionRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], ], ], 'GetBucketInventoryConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'InventoryConfiguration' => [ 'shape' => 'InventoryConfiguration', ], ], 'payload' => 'InventoryConfiguration', ], 'GetBucketInventoryConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'InventoryId', 'location' => 'querystring', 'locationName' => 'id', ], ], ], 'GetBucketLifecycleConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'Rules' => [ 'shape' => 'LifecycleRules', 'locationName' => 'Rule', ], ], ], 'GetBucketLifecycleConfigurationRequest' => [ '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', ], ], ], 'GetBucketMetricsConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'MetricsConfiguration' => [ 'shape' => 'MetricsConfiguration', ], ], 'payload' => 'MetricsConfiguration', ], 'GetBucketMetricsConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'MetricsId', 'location' => 'querystring', 'locationName' => 'id', ], ], ], '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', ], ], ], 'GetBucketPolicyStatusOutput' => [ 'type' => 'structure', 'members' => [ 'PolicyStatus' => [ 'shape' => 'PolicyStatus', ], ], 'payload' => 'PolicyStatus', ], 'GetBucketPolicyStatusRequest' => [ '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', ], ], ], 'GetObjectLegalHoldOutput' => [ 'type' => 'structure', 'members' => [ 'LegalHold' => [ 'shape' => 'ObjectLockLegalHold', ], ], 'payload' => 'LegalHold', ], 'GetObjectLegalHoldRequest' => [ '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', ], ], ], 'GetObjectLockConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'ObjectLockConfiguration' => [ 'shape' => 'ObjectLockConfiguration', ], ], 'payload' => 'ObjectLockConfiguration', ], 'GetObjectLockConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], ], ], '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', ], 'ContentRange' => [ 'shape' => 'ContentRange', 'location' => 'header', 'locationName' => 'Content-Range', ], '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', ], 'StorageClass' => [ 'shape' => 'StorageClass', 'location' => 'header', 'locationName' => 'x-amz-storage-class', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], 'ReplicationStatus' => [ 'shape' => 'ReplicationStatus', 'location' => 'header', 'locationName' => 'x-amz-replication-status', ], 'PartsCount' => [ 'shape' => 'PartsCount', 'location' => 'header', 'locationName' => 'x-amz-mp-parts-count', ], 'TagCount' => [ 'shape' => 'TagCount', 'location' => 'header', 'locationName' => 'x-amz-tagging-count', ], 'ObjectLockMode' => [ 'shape' => 'ObjectLockMode', 'location' => 'header', 'locationName' => 'x-amz-object-lock-mode', ], 'ObjectLockRetainUntilDate' => [ 'shape' => 'ObjectLockRetainUntilDate', 'location' => 'header', 'locationName' => 'x-amz-object-lock-retain-until-date', ], 'ObjectLockLegalHoldStatus' => [ 'shape' => 'ObjectLockLegalHoldStatus', 'location' => 'header', 'locationName' => 'x-amz-object-lock-legal-hold', ], ], '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', ], 'PartNumber' => [ 'shape' => 'PartNumber', 'location' => 'querystring', 'locationName' => 'partNumber', ], ], ], 'GetObjectRetentionOutput' => [ 'type' => 'structure', 'members' => [ 'Retention' => [ 'shape' => 'ObjectLockRetention', ], ], 'payload' => 'Retention', ], 'GetObjectRetentionRequest' => [ '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', ], ], ], 'GetObjectTaggingOutput' => [ 'type' => 'structure', 'required' => [ 'TagSet', ], 'members' => [ 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'header', 'locationName' => 'x-amz-version-id', ], 'TagSet' => [ 'shape' => 'TagSet', ], ], ], 'GetObjectTaggingRequest' => [ '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', ], ], ], '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', ], ], ], 'GetPublicAccessBlockOutput' => [ 'type' => 'structure', 'members' => [ 'PublicAccessBlockConfiguration' => [ 'shape' => 'PublicAccessBlockConfiguration', ], ], 'payload' => 'PublicAccessBlockConfiguration', ], 'GetPublicAccessBlockRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], ], ], 'GlacierJobParameters' => [ 'type' => 'structure', 'required' => [ 'Tier', ], 'members' => [ 'Tier' => [ 'shape' => 'Tier', ], ], ], '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', 'locationName' => 'xsi:type', 'xmlAttribute' => true, ], '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', ], 'StorageClass' => [ 'shape' => 'StorageClass', 'location' => 'header', 'locationName' => 'x-amz-storage-class', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], 'ReplicationStatus' => [ 'shape' => 'ReplicationStatus', 'location' => 'header', 'locationName' => 'x-amz-replication-status', ], 'PartsCount' => [ 'shape' => 'PartsCount', 'location' => 'header', 'locationName' => 'x-amz-mp-parts-count', ], 'ObjectLockMode' => [ 'shape' => 'ObjectLockMode', 'location' => 'header', 'locationName' => 'x-amz-object-lock-mode', ], 'ObjectLockRetainUntilDate' => [ 'shape' => 'ObjectLockRetainUntilDate', 'location' => 'header', 'locationName' => 'x-amz-object-lock-retain-until-date', ], 'ObjectLockLegalHoldStatus' => [ 'shape' => 'ObjectLockLegalHoldStatus', 'location' => 'header', 'locationName' => 'x-amz-object-lock-legal-hold', ], ], ], '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', ], 'PartNumber' => [ 'shape' => 'PartNumber', 'location' => 'querystring', 'locationName' => 'partNumber', ], ], ], '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', ], ], ], 'InputSerialization' => [ 'type' => 'structure', 'members' => [ 'CSV' => [ 'shape' => 'CSVInput', ], 'CompressionType' => [ 'shape' => 'CompressionType', ], 'JSON' => [ 'shape' => 'JSONInput', ], 'Parquet' => [ 'shape' => 'ParquetInput', ], ], ], 'InventoryConfiguration' => [ 'type' => 'structure', 'required' => [ 'Destination', 'IsEnabled', 'Id', 'IncludedObjectVersions', 'Schedule', ], 'members' => [ 'Destination' => [ 'shape' => 'InventoryDestination', ], 'IsEnabled' => [ 'shape' => 'IsEnabled', ], 'Filter' => [ 'shape' => 'InventoryFilter', ], 'Id' => [ 'shape' => 'InventoryId', ], 'IncludedObjectVersions' => [ 'shape' => 'InventoryIncludedObjectVersions', ], 'OptionalFields' => [ 'shape' => 'InventoryOptionalFields', ], 'Schedule' => [ 'shape' => 'InventorySchedule', ], ], ], 'InventoryConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InventoryConfiguration', ], 'flattened' => true, ], 'InventoryDestination' => [ 'type' => 'structure', 'required' => [ 'S3BucketDestination', ], 'members' => [ 'S3BucketDestination' => [ 'shape' => 'InventoryS3BucketDestination', ], ], ], 'InventoryEncryption' => [ 'type' => 'structure', 'members' => [ 'SSES3' => [ 'shape' => 'SSES3', 'locationName' => 'SSE-S3', ], 'SSEKMS' => [ 'shape' => 'SSEKMS', 'locationName' => 'SSE-KMS', ], ], ], 'InventoryFilter' => [ 'type' => 'structure', 'required' => [ 'Prefix', ], 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], ], ], 'InventoryFormat' => [ 'type' => 'string', 'enum' => [ 'CSV', 'ORC', 'Parquet', ], ], 'InventoryFrequency' => [ 'type' => 'string', 'enum' => [ 'Daily', 'Weekly', ], ], 'InventoryId' => [ 'type' => 'string', ], 'InventoryIncludedObjectVersions' => [ 'type' => 'string', 'enum' => [ 'All', 'Current', ], ], 'InventoryOptionalField' => [ 'type' => 'string', 'enum' => [ 'Size', 'LastModifiedDate', 'StorageClass', 'ETag', 'IsMultipartUploaded', 'ReplicationStatus', 'EncryptionStatus', 'ObjectLockRetainUntilDate', 'ObjectLockMode', 'ObjectLockLegalHoldStatus', ], ], 'InventoryOptionalFields' => [ 'type' => 'list', 'member' => [ 'shape' => 'InventoryOptionalField', 'locationName' => 'Field', ], ], 'InventoryS3BucketDestination' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Format', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'Bucket' => [ 'shape' => 'BucketName', ], 'Format' => [ 'shape' => 'InventoryFormat', ], 'Prefix' => [ 'shape' => 'Prefix', ], 'Encryption' => [ 'shape' => 'InventoryEncryption', ], ], ], 'InventorySchedule' => [ 'type' => 'structure', 'required' => [ 'Frequency', ], 'members' => [ 'Frequency' => [ 'shape' => 'InventoryFrequency', ], ], ], 'IsEnabled' => [ 'type' => 'boolean', ], 'IsLatest' => [ 'type' => 'boolean', ], 'IsPublic' => [ 'type' => 'boolean', ], 'IsTruncated' => [ 'type' => 'boolean', ], 'JSONInput' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'JSONType', ], ], ], 'JSONOutput' => [ 'type' => 'structure', 'members' => [ 'RecordDelimiter' => [ 'shape' => 'RecordDelimiter', ], ], ], 'JSONType' => [ 'type' => 'string', 'enum' => [ 'DOCUMENT', 'LINES', ], ], 'KMSContext' => [ 'type' => 'string', ], 'KeyCount' => [ 'type' => 'integer', ], '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', ], 'Filter' => [ 'shape' => 'NotificationConfigurationFilter', ], ], ], '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', ], 'ExpiredObjectDeleteMarker' => [ 'shape' => 'ExpiredObjectDeleteMarker', ], ], ], 'LifecycleRule' => [ 'type' => 'structure', 'required' => [ 'Status', ], 'members' => [ 'Expiration' => [ 'shape' => 'LifecycleExpiration', ], 'ID' => [ 'shape' => 'ID', ], 'Prefix' => [ 'shape' => 'Prefix', 'deprecated' => true, ], 'Filter' => [ 'shape' => 'LifecycleRuleFilter', ], 'Status' => [ 'shape' => 'ExpirationStatus', ], 'Transitions' => [ 'shape' => 'TransitionList', 'locationName' => 'Transition', ], 'NoncurrentVersionTransitions' => [ 'shape' => 'NoncurrentVersionTransitionList', 'locationName' => 'NoncurrentVersionTransition', ], 'NoncurrentVersionExpiration' => [ 'shape' => 'NoncurrentVersionExpiration', ], 'AbortIncompleteMultipartUpload' => [ 'shape' => 'AbortIncompleteMultipartUpload', ], ], ], 'LifecycleRuleAndOperator' => [ 'type' => 'structure', 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], 'Tags' => [ 'shape' => 'TagSet', 'flattened' => true, 'locationName' => 'Tag', ], ], ], 'LifecycleRuleFilter' => [ 'type' => 'structure', 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], 'Tag' => [ 'shape' => 'Tag', ], 'And' => [ 'shape' => 'LifecycleRuleAndOperator', ], ], ], 'LifecycleRules' => [ 'type' => 'list', 'member' => [ 'shape' => 'LifecycleRule', ], 'flattened' => true, ], 'ListBucketAnalyticsConfigurationsOutput' => [ 'type' => 'structure', 'members' => [ 'IsTruncated' => [ 'shape' => 'IsTruncated', ], 'ContinuationToken' => [ 'shape' => 'Token', ], 'NextContinuationToken' => [ 'shape' => 'NextToken', ], 'AnalyticsConfigurationList' => [ 'shape' => 'AnalyticsConfigurationList', 'locationName' => 'AnalyticsConfiguration', ], ], ], 'ListBucketAnalyticsConfigurationsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContinuationToken' => [ 'shape' => 'Token', 'location' => 'querystring', 'locationName' => 'continuation-token', ], ], ], 'ListBucketInventoryConfigurationsOutput' => [ 'type' => 'structure', 'members' => [ 'ContinuationToken' => [ 'shape' => 'Token', ], 'InventoryConfigurationList' => [ 'shape' => 'InventoryConfigurationList', 'locationName' => 'InventoryConfiguration', ], 'IsTruncated' => [ 'shape' => 'IsTruncated', ], 'NextContinuationToken' => [ 'shape' => 'NextToken', ], ], ], 'ListBucketInventoryConfigurationsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContinuationToken' => [ 'shape' => 'Token', 'location' => 'querystring', 'locationName' => 'continuation-token', ], ], ], 'ListBucketMetricsConfigurationsOutput' => [ 'type' => 'structure', 'members' => [ 'IsTruncated' => [ 'shape' => 'IsTruncated', ], 'ContinuationToken' => [ 'shape' => 'Token', ], 'NextContinuationToken' => [ 'shape' => 'NextToken', ], 'MetricsConfigurationList' => [ 'shape' => 'MetricsConfigurationList', 'locationName' => 'MetricsConfiguration', ], ], ], 'ListBucketMetricsConfigurationsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContinuationToken' => [ 'shape' => 'Token', 'location' => 'querystring', 'locationName' => 'continuation-token', ], ], ], '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', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], ], ], 'ListObjectsV2Output' => [ 'type' => 'structure', 'members' => [ 'IsTruncated' => [ 'shape' => 'IsTruncated', ], 'Contents' => [ 'shape' => 'ObjectList', ], 'Name' => [ 'shape' => 'BucketName', ], 'Prefix' => [ 'shape' => 'Prefix', ], 'Delimiter' => [ 'shape' => 'Delimiter', ], 'MaxKeys' => [ 'shape' => 'MaxKeys', ], 'CommonPrefixes' => [ 'shape' => 'CommonPrefixList', ], 'EncodingType' => [ 'shape' => 'EncodingType', ], 'KeyCount' => [ 'shape' => 'KeyCount', ], 'ContinuationToken' => [ 'shape' => 'Token', ], 'NextContinuationToken' => [ 'shape' => 'NextToken', ], 'StartAfter' => [ 'shape' => 'StartAfter', ], ], ], 'ListObjectsV2Request' => [ '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', ], 'MaxKeys' => [ 'shape' => 'MaxKeys', 'location' => 'querystring', 'locationName' => 'max-keys', ], 'Prefix' => [ 'shape' => 'Prefix', 'location' => 'querystring', 'locationName' => 'prefix', ], 'ContinuationToken' => [ 'shape' => 'Token', 'location' => 'querystring', 'locationName' => 'continuation-token', ], 'FetchOwner' => [ 'shape' => 'FetchOwner', 'location' => 'querystring', 'locationName' => 'fetch-owner', ], 'StartAfter' => [ 'shape' => 'StartAfter', 'location' => 'querystring', 'locationName' => 'start-after', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], ], ], 'ListPartsOutput' => [ 'type' => 'structure', 'members' => [ 'AbortDate' => [ 'shape' => 'AbortDate', 'location' => 'header', 'locationName' => 'x-amz-abort-date', ], 'AbortRuleId' => [ 'shape' => 'AbortRuleId', 'location' => 'header', 'locationName' => 'x-amz-abort-rule-id', ], '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', ], 'LocationPrefix' => [ 'type' => 'string', ], 'LoggingEnabled' => [ 'type' => 'structure', 'required' => [ 'TargetBucket', 'TargetPrefix', ], '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', ], ], 'MetadataEntry' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'MetadataKey', ], 'Value' => [ 'shape' => 'MetadataValue', ], ], ], 'MetadataKey' => [ 'type' => 'string', ], 'MetadataValue' => [ 'type' => 'string', ], 'MetricsAndOperator' => [ 'type' => 'structure', 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], 'Tags' => [ 'shape' => 'TagSet', 'flattened' => true, 'locationName' => 'Tag', ], ], ], 'MetricsConfiguration' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'MetricsId', ], 'Filter' => [ 'shape' => 'MetricsFilter', ], ], ], 'MetricsConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricsConfiguration', ], 'flattened' => true, ], 'MetricsFilter' => [ 'type' => 'structure', 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], 'Tag' => [ 'shape' => 'Tag', ], 'And' => [ 'shape' => 'MetricsAndOperator', ], ], ], 'MetricsId' => [ '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', ], 'NextToken' => [ 'type' => 'string', ], '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', ], ], ], 'NoncurrentVersionTransitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NoncurrentVersionTransition', ], 'flattened' => true, ], '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', ], ], ], 'NotificationConfigurationFilter' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'S3KeyFilter', 'locationName' => 'S3Key', ], ], ], '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', 'aws-exec-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', 'min' => 1, ], 'ObjectList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Object', ], 'flattened' => true, ], 'ObjectLockConfiguration' => [ 'type' => 'structure', 'members' => [ 'ObjectLockEnabled' => [ 'shape' => 'ObjectLockEnabled', ], 'Rule' => [ 'shape' => 'ObjectLockRule', ], ], ], 'ObjectLockEnabled' => [ 'type' => 'string', 'enum' => [ 'Enabled', ], ], 'ObjectLockEnabledForBucket' => [ 'type' => 'boolean', ], 'ObjectLockLegalHold' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ObjectLockLegalHoldStatus', ], ], ], 'ObjectLockLegalHoldStatus' => [ 'type' => 'string', 'enum' => [ 'ON', 'OFF', ], ], 'ObjectLockMode' => [ 'type' => 'string', 'enum' => [ 'GOVERNANCE', 'COMPLIANCE', ], ], 'ObjectLockRetainUntilDate' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], 'ObjectLockRetention' => [ 'type' => 'structure', 'members' => [ 'Mode' => [ 'shape' => 'ObjectLockRetentionMode', ], 'RetainUntilDate' => [ 'shape' => 'Date', ], ], ], 'ObjectLockRetentionMode' => [ 'type' => 'string', 'enum' => [ 'GOVERNANCE', 'COMPLIANCE', ], ], 'ObjectLockRule' => [ 'type' => 'structure', 'members' => [ 'DefaultRetention' => [ 'shape' => 'DefaultRetention', ], ], ], 'ObjectLockToken' => [ 'type' => 'string', ], 'ObjectNotInActiveTierError' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ObjectStorageClass' => [ 'type' => 'string', 'enum' => [ 'STANDARD', 'REDUCED_REDUNDANCY', 'GLACIER', 'STANDARD_IA', 'ONEZONE_IA', 'INTELLIGENT_TIERING', 'DEEP_ARCHIVE', ], ], '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', ], ], 'OutputLocation' => [ 'type' => 'structure', 'members' => [ 'S3' => [ 'shape' => 'S3Location', ], ], ], 'OutputSerialization' => [ 'type' => 'structure', 'members' => [ 'CSV' => [ 'shape' => 'CSVOutput', ], 'JSON' => [ 'shape' => 'JSONOutput', ], ], ], 'Owner' => [ 'type' => 'structure', 'members' => [ 'DisplayName' => [ 'shape' => 'DisplayName', ], 'ID' => [ 'shape' => 'ID', ], ], ], 'OwnerOverride' => [ 'type' => 'string', 'enum' => [ 'Destination', ], ], 'ParquetInput' => [ 'type' => 'structure', 'members' => [], ], '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, ], 'PartsCount' => [ 'type' => 'integer', ], 'Payer' => [ 'type' => 'string', 'enum' => [ 'Requester', 'BucketOwner', ], ], 'Permission' => [ 'type' => 'string', 'enum' => [ 'FULL_CONTROL', 'WRITE', 'WRITE_ACP', 'READ', 'READ_ACP', ], ], 'Policy' => [ 'type' => 'string', ], 'PolicyStatus' => [ 'type' => 'structure', 'members' => [ 'IsPublic' => [ 'shape' => 'IsPublic', 'locationName' => 'IsPublic', ], ], ], 'Prefix' => [ 'type' => 'string', ], 'Priority' => [ 'type' => 'integer', ], 'Progress' => [ 'type' => 'structure', 'members' => [ 'BytesScanned' => [ 'shape' => 'BytesScanned', ], 'BytesProcessed' => [ 'shape' => 'BytesProcessed', ], 'BytesReturned' => [ 'shape' => 'BytesReturned', ], ], ], 'ProgressEvent' => [ 'type' => 'structure', 'members' => [ 'Details' => [ 'shape' => 'Progress', 'eventpayload' => true, ], ], 'event' => true, ], 'Protocol' => [ 'type' => 'string', 'enum' => [ 'http', 'https', ], ], 'PublicAccessBlockConfiguration' => [ 'type' => 'structure', 'members' => [ 'BlockPublicAcls' => [ 'shape' => 'Setting', 'locationName' => 'BlockPublicAcls', ], 'IgnorePublicAcls' => [ 'shape' => 'Setting', 'locationName' => 'IgnorePublicAcls', ], 'BlockPublicPolicy' => [ 'shape' => 'Setting', 'locationName' => 'BlockPublicPolicy', ], 'RestrictPublicBuckets' => [ 'shape' => 'Setting', 'locationName' => 'RestrictPublicBuckets', ], ], ], 'PutBucketAccelerateConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'AccelerateConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'AccelerateConfiguration' => [ 'shape' => 'AccelerateConfiguration', 'locationName' => 'AccelerateConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], ], 'payload' => 'AccelerateConfiguration', ], 'PutBucketAclRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'ACL' => [ 'shape' => 'BucketCannedACL', 'location' => 'header', 'locationName' => 'x-amz-acl', ], 'AccessControlPolicy' => [ 'shape' => 'AccessControlPolicy', 'locationName' => 'AccessControlPolicy', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], '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', ], 'PutBucketAnalyticsConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', 'AnalyticsConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'AnalyticsId', 'location' => 'querystring', 'locationName' => 'id', ], 'AnalyticsConfiguration' => [ 'shape' => 'AnalyticsConfiguration', 'locationName' => 'AnalyticsConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], ], 'payload' => 'AnalyticsConfiguration', ], 'PutBucketCorsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'CORSConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'CORSConfiguration' => [ 'shape' => 'CORSConfiguration', 'locationName' => 'CORSConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], ], 'payload' => 'CORSConfiguration', ], 'PutBucketEncryptionRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'ServerSideEncryptionConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ServerSideEncryptionConfiguration' => [ 'shape' => 'ServerSideEncryptionConfiguration', 'locationName' => 'ServerSideEncryptionConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], ], 'payload' => 'ServerSideEncryptionConfiguration', ], 'PutBucketInventoryConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', 'InventoryConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'InventoryId', 'location' => 'querystring', 'locationName' => 'id', ], 'InventoryConfiguration' => [ 'shape' => 'InventoryConfiguration', 'locationName' => 'InventoryConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], ], 'payload' => 'InventoryConfiguration', ], 'PutBucketLifecycleConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'LifecycleConfiguration' => [ 'shape' => 'BucketLifecycleConfiguration', 'locationName' => 'LifecycleConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], ], 'payload' => 'LifecycleConfiguration', ], 'PutBucketLifecycleRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'LifecycleConfiguration' => [ 'shape' => 'LifecycleConfiguration', 'locationName' => 'LifecycleConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], ], 'payload' => 'LifecycleConfiguration', ], 'PutBucketLoggingRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'BucketLoggingStatus', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'BucketLoggingStatus' => [ 'shape' => 'BucketLoggingStatus', 'locationName' => 'BucketLoggingStatus', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], ], 'payload' => 'BucketLoggingStatus', ], 'PutBucketMetricsConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', 'MetricsConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'MetricsId', 'location' => 'querystring', 'locationName' => 'id', ], 'MetricsConfiguration' => [ 'shape' => 'MetricsConfiguration', 'locationName' => 'MetricsConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], ], 'payload' => 'MetricsConfiguration', ], 'PutBucketNotificationConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'NotificationConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'NotificationConfiguration' => [ 'shape' => 'NotificationConfiguration', 'locationName' => 'NotificationConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], ], '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', 'locationName' => 'NotificationConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], ], 'payload' => 'NotificationConfiguration', ], 'PutBucketPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Policy', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ConfirmRemoveSelfBucketAccess' => [ 'shape' => 'ConfirmRemoveSelfBucketAccess', 'location' => 'header', 'locationName' => 'x-amz-confirm-remove-self-bucket-access', ], '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', 'locationName' => 'ReplicationConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], ], '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', 'locationName' => 'RequestPaymentConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], ], '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', 'locationName' => 'Tagging', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], ], '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', 'locationName' => 'VersioningConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], ], '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', 'locationName' => 'WebsiteConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], ], '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', 'locationName' => 'AccessControlPolicy', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], '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', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'querystring', 'locationName' => 'versionId', ], ], 'payload' => 'AccessControlPolicy', ], 'PutObjectLegalHoldOutput' => [ 'type' => 'structure', 'members' => [ 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], ], 'PutObjectLegalHoldRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'location' => 'uri', 'locationName' => 'Key', ], 'LegalHold' => [ 'shape' => 'ObjectLockLegalHold', 'locationName' => 'LegalHold', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'querystring', 'locationName' => 'versionId', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], ], 'payload' => 'LegalHold', ], 'PutObjectLockConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], ], 'PutObjectLockConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'ObjectLockConfiguration' => [ 'shape' => 'ObjectLockConfiguration', 'locationName' => 'ObjectLockConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'Token' => [ 'shape' => 'ObjectLockToken', 'location' => 'header', 'locationName' => 'x-amz-bucket-object-lock-token', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], ], 'payload' => 'ObjectLockConfiguration', ], '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', ], 'Tagging' => [ 'shape' => 'TaggingHeader', 'location' => 'header', 'locationName' => 'x-amz-tagging', ], 'ObjectLockMode' => [ 'shape' => 'ObjectLockMode', 'location' => 'header', 'locationName' => 'x-amz-object-lock-mode', ], 'ObjectLockRetainUntilDate' => [ 'shape' => 'ObjectLockRetainUntilDate', 'location' => 'header', 'locationName' => 'x-amz-object-lock-retain-until-date', ], 'ObjectLockLegalHoldStatus' => [ 'shape' => 'ObjectLockLegalHoldStatus', 'location' => 'header', 'locationName' => 'x-amz-object-lock-legal-hold', ], ], 'payload' => 'Body', ], 'PutObjectRetentionOutput' => [ 'type' => 'structure', 'members' => [ 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], ], 'PutObjectRetentionRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'location' => 'uri', 'locationName' => 'Key', ], 'Retention' => [ 'shape' => 'ObjectLockRetention', 'locationName' => 'Retention', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'querystring', 'locationName' => 'versionId', ], 'BypassGovernanceRetention' => [ 'shape' => 'BypassGovernanceRetention', 'location' => 'header', 'locationName' => 'x-amz-bypass-governance-retention', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], ], 'payload' => 'Retention', ], 'PutObjectTaggingOutput' => [ 'type' => 'structure', 'members' => [ 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'header', 'locationName' => 'x-amz-version-id', ], ], ], 'PutObjectTaggingRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', 'Tagging', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'location' => 'uri', 'locationName' => 'Key', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'querystring', 'locationName' => 'versionId', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'Tagging' => [ 'shape' => 'Tagging', 'locationName' => 'Tagging', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], ], 'payload' => 'Tagging', ], 'PutPublicAccessBlockRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'PublicAccessBlockConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'PublicAccessBlockConfiguration' => [ 'shape' => 'PublicAccessBlockConfiguration', 'locationName' => 'PublicAccessBlockConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], ], 'payload' => 'PublicAccessBlockConfiguration', ], 'QueueArn' => [ 'type' => 'string', ], 'QueueConfiguration' => [ 'type' => 'structure', 'required' => [ 'QueueArn', 'Events', ], 'members' => [ 'Id' => [ 'shape' => 'NotificationId', ], 'QueueArn' => [ 'shape' => 'QueueArn', 'locationName' => 'Queue', ], 'Events' => [ 'shape' => 'EventList', 'locationName' => 'Event', ], 'Filter' => [ 'shape' => 'NotificationConfigurationFilter', ], ], ], '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', ], 'QuoteCharacter' => [ 'type' => 'string', ], 'QuoteEscapeCharacter' => [ 'type' => 'string', ], 'QuoteFields' => [ 'type' => 'string', 'enum' => [ 'ALWAYS', 'ASNEEDED', ], ], 'Range' => [ 'type' => 'string', ], 'RecordDelimiter' => [ 'type' => 'string', ], 'RecordsEvent' => [ 'type' => 'structure', 'members' => [ 'Payload' => [ 'shape' => 'Body', 'eventpayload' => true, ], ], 'event' => true, ], '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', ], 'ReplicaKmsKeyID' => [ 'type' => 'string', ], 'ReplicationConfiguration' => [ 'type' => 'structure', 'required' => [ 'Role', 'Rules', ], 'members' => [ 'Role' => [ 'shape' => 'Role', ], 'Rules' => [ 'shape' => 'ReplicationRules', 'locationName' => 'Rule', ], ], ], 'ReplicationRule' => [ 'type' => 'structure', 'required' => [ 'Status', 'Destination', ], 'members' => [ 'ID' => [ 'shape' => 'ID', ], 'Priority' => [ 'shape' => 'Priority', ], 'Prefix' => [ 'shape' => 'Prefix', 'deprecated' => true, ], 'Filter' => [ 'shape' => 'ReplicationRuleFilter', ], 'Status' => [ 'shape' => 'ReplicationRuleStatus', ], 'SourceSelectionCriteria' => [ 'shape' => 'SourceSelectionCriteria', ], 'Destination' => [ 'shape' => 'Destination', ], 'DeleteMarkerReplication' => [ 'shape' => 'DeleteMarkerReplication', ], ], ], 'ReplicationRuleAndOperator' => [ 'type' => 'structure', 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], 'Tags' => [ 'shape' => 'TagSet', 'flattened' => true, 'locationName' => 'Tag', ], ], ], 'ReplicationRuleFilter' => [ 'type' => 'structure', 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], 'Tag' => [ 'shape' => 'Tag', ], 'And' => [ 'shape' => 'ReplicationRuleAndOperator', ], ], ], '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', ], ], ], 'RequestProgress' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'EnableRequestProgress', ], ], ], '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', ], 'RestoreOutputPath' => [ 'shape' => 'RestoreOutputPath', 'location' => 'header', 'locationName' => 'x-amz-restore-output-path', ], ], ], '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', 'locationName' => 'RestoreRequest', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], ], 'payload' => 'RestoreRequest', ], 'RestoreOutputPath' => [ 'type' => 'string', ], 'RestoreRequest' => [ 'type' => 'structure', 'members' => [ 'Days' => [ 'shape' => 'Days', ], 'GlacierJobParameters' => [ 'shape' => 'GlacierJobParameters', ], 'Type' => [ 'shape' => 'RestoreRequestType', ], 'Tier' => [ 'shape' => 'Tier', ], 'Description' => [ 'shape' => 'Description', ], 'SelectParameters' => [ 'shape' => 'SelectParameters', ], 'OutputLocation' => [ 'shape' => 'OutputLocation', ], ], ], 'RestoreRequestType' => [ 'type' => 'string', 'enum' => [ 'SELECT', ], ], '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', ], 'AbortIncompleteMultipartUpload' => [ 'shape' => 'AbortIncompleteMultipartUpload', ], ], ], 'Rules' => [ 'type' => 'list', 'member' => [ 'shape' => 'Rule', ], 'flattened' => true, ], 'S3KeyFilter' => [ 'type' => 'structure', 'members' => [ 'FilterRules' => [ 'shape' => 'FilterRuleList', 'locationName' => 'FilterRule', ], ], ], 'S3Location' => [ 'type' => 'structure', 'required' => [ 'BucketName', 'Prefix', ], 'members' => [ 'BucketName' => [ 'shape' => 'BucketName', ], 'Prefix' => [ 'shape' => 'LocationPrefix', ], 'Encryption' => [ 'shape' => 'Encryption', ], 'CannedACL' => [ 'shape' => 'ObjectCannedACL', ], 'AccessControlList' => [ 'shape' => 'Grants', ], 'Tagging' => [ 'shape' => 'Tagging', ], 'UserMetadata' => [ 'shape' => 'UserMetadata', ], 'StorageClass' => [ 'shape' => 'StorageClass', ], ], ], 'SSECustomerAlgorithm' => [ 'type' => 'string', ], 'SSECustomerKey' => [ 'type' => 'string', 'sensitive' => true, ], 'SSECustomerKeyMD5' => [ 'type' => 'string', ], 'SSEKMS' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'SSEKMSKeyId', ], ], 'locationName' => 'SSE-KMS', ], 'SSEKMSKeyId' => [ 'type' => 'string', 'sensitive' => true, ], 'SSES3' => [ 'type' => 'structure', 'members' => [], 'locationName' => 'SSE-S3', ], 'SelectObjectContentEventStream' => [ 'type' => 'structure', 'members' => [ 'Records' => [ 'shape' => 'RecordsEvent', ], 'Stats' => [ 'shape' => 'StatsEvent', ], 'Progress' => [ 'shape' => 'ProgressEvent', ], 'Cont' => [ 'shape' => 'ContinuationEvent', ], 'End' => [ 'shape' => 'EndEvent', ], ], 'eventstream' => true, ], 'SelectObjectContentOutput' => [ 'type' => 'structure', 'members' => [ 'Payload' => [ 'shape' => 'SelectObjectContentEventStream', ], ], 'payload' => 'Payload', ], 'SelectObjectContentRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', 'Expression', 'ExpressionType', 'InputSerialization', 'OutputSerialization', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'location' => 'uri', 'locationName' => 'Key', ], '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', ], 'Expression' => [ 'shape' => 'Expression', ], 'ExpressionType' => [ 'shape' => 'ExpressionType', ], 'RequestProgress' => [ 'shape' => 'RequestProgress', ], 'InputSerialization' => [ 'shape' => 'InputSerialization', ], 'OutputSerialization' => [ 'shape' => 'OutputSerialization', ], ], ], 'SelectParameters' => [ 'type' => 'structure', 'required' => [ 'InputSerialization', 'ExpressionType', 'Expression', 'OutputSerialization', ], 'members' => [ 'InputSerialization' => [ 'shape' => 'InputSerialization', ], 'ExpressionType' => [ 'shape' => 'ExpressionType', ], 'Expression' => [ 'shape' => 'Expression', ], 'OutputSerialization' => [ 'shape' => 'OutputSerialization', ], ], ], 'ServerSideEncryption' => [ 'type' => 'string', 'enum' => [ 'AES256', 'aws:kms', ], ], 'ServerSideEncryptionByDefault' => [ 'type' => 'structure', 'required' => [ 'SSEAlgorithm', ], 'members' => [ 'SSEAlgorithm' => [ 'shape' => 'ServerSideEncryption', ], 'KMSMasterKeyID' => [ 'shape' => 'SSEKMSKeyId', ], ], ], 'ServerSideEncryptionConfiguration' => [ 'type' => 'structure', 'required' => [ 'Rules', ], 'members' => [ 'Rules' => [ 'shape' => 'ServerSideEncryptionRules', 'locationName' => 'Rule', ], ], ], 'ServerSideEncryptionRule' => [ 'type' => 'structure', 'members' => [ 'ApplyServerSideEncryptionByDefault' => [ 'shape' => 'ServerSideEncryptionByDefault', ], ], ], 'ServerSideEncryptionRules' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServerSideEncryptionRule', ], 'flattened' => true, ], 'Setting' => [ 'type' => 'boolean', ], 'Size' => [ 'type' => 'long', ], 'SourceSelectionCriteria' => [ 'type' => 'structure', 'members' => [ 'SseKmsEncryptedObjects' => [ 'shape' => 'SseKmsEncryptedObjects', ], ], ], 'SseKmsEncryptedObjects' => [ 'type' => 'structure', 'required' => [ 'Status', ], 'members' => [ 'Status' => [ 'shape' => 'SseKmsEncryptedObjectsStatus', ], ], ], 'SseKmsEncryptedObjectsStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'StartAfter' => [ 'type' => 'string', ], 'Stats' => [ 'type' => 'structure', 'members' => [ 'BytesScanned' => [ 'shape' => 'BytesScanned', ], 'BytesProcessed' => [ 'shape' => 'BytesProcessed', ], 'BytesReturned' => [ 'shape' => 'BytesReturned', ], ], ], 'StatsEvent' => [ 'type' => 'structure', 'members' => [ 'Details' => [ 'shape' => 'Stats', 'eventpayload' => true, ], ], 'event' => true, ], 'StorageClass' => [ 'type' => 'string', 'enum' => [ 'STANDARD', 'REDUCED_REDUNDANCY', 'STANDARD_IA', 'ONEZONE_IA', 'INTELLIGENT_TIERING', 'GLACIER', 'DEEP_ARCHIVE', ], ], 'StorageClassAnalysis' => [ 'type' => 'structure', 'members' => [ 'DataExport' => [ 'shape' => 'StorageClassAnalysisDataExport', ], ], ], 'StorageClassAnalysisDataExport' => [ 'type' => 'structure', 'required' => [ 'OutputSchemaVersion', 'Destination', ], 'members' => [ 'OutputSchemaVersion' => [ 'shape' => 'StorageClassAnalysisSchemaVersion', ], 'Destination' => [ 'shape' => 'AnalyticsExportDestination', ], ], ], 'StorageClassAnalysisSchemaVersion' => [ 'type' => 'string', 'enum' => [ 'V_1', ], ], 'Suffix' => [ 'type' => 'string', ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'ObjectKey', ], 'Value' => [ 'shape' => 'Value', ], ], ], 'TagCount' => [ 'type' => 'integer', ], 'TagSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', 'locationName' => 'Tag', ], ], 'Tagging' => [ 'type' => 'structure', 'required' => [ 'TagSet', ], 'members' => [ 'TagSet' => [ 'shape' => 'TagSet', ], ], ], 'TaggingDirective' => [ 'type' => 'string', 'enum' => [ 'COPY', 'REPLACE', ], ], 'TaggingHeader' => [ 'type' => 'string', ], 'TargetBucket' => [ 'type' => 'string', ], 'TargetGrant' => [ 'type' => 'structure', 'members' => [ 'Grantee' => [ 'shape' => 'Grantee', ], 'Permission' => [ 'shape' => 'BucketLogsPermission', ], ], ], 'TargetGrants' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetGrant', 'locationName' => 'Grant', ], ], 'TargetPrefix' => [ 'type' => 'string', ], 'Tier' => [ 'type' => 'string', 'enum' => [ 'Standard', 'Bulk', 'Expedited', ], ], 'Token' => [ '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', ], 'Filter' => [ 'shape' => 'NotificationConfigurationFilter', ], ], ], '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', ], ], ], 'TransitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Transition', ], 'flattened' => true, ], 'TransitionStorageClass' => [ 'type' => 'string', 'enum' => [ 'GLACIER', 'STANDARD_IA', 'ONEZONE_IA', 'INTELLIGENT_TIERING', 'DEEP_ARCHIVE', ], ], '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', ], 'UserMetadata' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetadataEntry', 'locationName' => 'MetadataEntry', ], ], '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', ], 'Years' => [ 'type' => 'integer', ], ],]; diff --git a/lib/aws/Aws/data/s3/2006-03-01/paginators-1.json.php b/lib/aws/Aws/data/s3/2006-03-01/paginators-1.json.php new file mode 100644 index 0000000..025a49d --- /dev/null +++ b/lib/aws/Aws/data/s3/2006-03-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/s3/2006-03-01/paginators-1.json +return [ 'pagination' => [ 'ListBuckets' => [ 'result_key' => 'Buckets', ], 'ListMultipartUploads' => [ 'input_token' => [ 'KeyMarker', 'UploadIdMarker', ], 'limit_key' => 'MaxUploads', 'more_results' => 'IsTruncated', 'output_token' => [ 'NextKeyMarker', 'NextUploadIdMarker', ], 'result_key' => [ 'Uploads', 'CommonPrefixes', ], ], 'ListObjectVersions' => [ 'input_token' => [ 'KeyMarker', 'VersionIdMarker', ], 'limit_key' => 'MaxKeys', 'more_results' => 'IsTruncated', 'output_token' => [ 'NextKeyMarker', 'NextVersionIdMarker', ], 'result_key' => [ 'Versions', 'DeleteMarkers', 'CommonPrefixes', ], ], 'ListObjects' => [ 'input_token' => 'Marker', 'limit_key' => 'MaxKeys', 'more_results' => 'IsTruncated', 'output_token' => 'NextMarker || Contents[-1].Key', 'result_key' => [ 'Contents', 'CommonPrefixes', ], ], 'ListObjectsV2' => [ 'input_token' => 'ContinuationToken', 'limit_key' => 'MaxKeys', 'output_token' => 'NextContinuationToken', 'result_key' => [ 'Contents', 'CommonPrefixes', ], ], 'ListParts' => [ 'input_token' => 'PartNumberMarker', 'limit_key' => 'MaxParts', 'more_results' => 'IsTruncated', 'output_token' => 'NextPartNumberMarker', 'result_key' => 'Parts', ], ],]; diff --git a/lib/aws/Aws/data/s3/2006-03-01/smoke.json.php b/lib/aws/Aws/data/s3/2006-03-01/smoke.json.php new file mode 100644 index 0000000..1d393b0 --- /dev/null +++ b/lib/aws/Aws/data/s3/2006-03-01/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/s3/2006-03-01/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListBuckets', 'input' => [], 'errorExpectedFromService' => false, ], ],]; diff --git a/lib/aws/Aws/data/s3/2006-03-01/waiters-1.json.php b/lib/aws/Aws/data/s3/2006-03-01/waiters-1.json.php new file mode 100644 index 0000000..70e0bdb --- /dev/null +++ b/lib/aws/Aws/data/s3/2006-03-01/waiters-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/s3/2006-03-01/waiters-1.json +return [ 'waiters' => [ '__default__' => [ 'interval' => 5, 'max_attempts' => 20, ], 'BucketExists' => [ 'operation' => 'HeadBucket', 'ignore_errors' => [ 'NoSuchBucket', ], 'success_type' => 'output', ], 'BucketNotExists' => [ 'operation' => 'HeadBucket', 'success_type' => 'error', 'success_value' => 'NoSuchBucket', ], 'ObjectExists' => [ 'operation' => 'HeadObject', 'ignore_errors' => [ 'NoSuchKey', ], 'success_type' => 'output', ], 'ObjectNotExists' => [ 'operation' => 'HeadObject', 'success_type' => 'error', 'success_value' => 'NoSuchKey', ], ],]; diff --git a/lib/aws/Aws/data/s3/2006-03-01/waiters-2.json.php b/lib/aws/Aws/data/s3/2006-03-01/waiters-2.json.php new file mode 100644 index 0000000..6058168 --- /dev/null +++ b/lib/aws/Aws/data/s3/2006-03-01/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/s3/2006-03-01/waiters-2.json +return [ '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/Aws/data/s3control/2018-08-20/api-2.json.php b/lib/aws/Aws/data/s3control/2018-08-20/api-2.json.php new file mode 100644 index 0000000..ae717f9 --- /dev/null +++ b/lib/aws/Aws/data/s3control/2018-08-20/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/s3control/2018-08-20/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-08-20', 'endpointPrefix' => 's3-control', 'protocol' => 'rest-xml', 'serviceFullName' => 'AWS S3 Control', 'serviceId' => 'S3 Control', 'signatureVersion' => 's3v4', 'signingName' => 's3', 'uid' => 's3control-2018-08-20', ], 'operations' => [ 'DeletePublicAccessBlock' => [ 'name' => 'DeletePublicAccessBlock', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v20180820/configuration/publicAccessBlock', ], 'input' => [ 'shape' => 'DeletePublicAccessBlockRequest', ], ], 'GetPublicAccessBlock' => [ 'name' => 'GetPublicAccessBlock', 'http' => [ 'method' => 'GET', 'requestUri' => '/v20180820/configuration/publicAccessBlock', ], 'input' => [ 'shape' => 'GetPublicAccessBlockRequest', ], 'output' => [ 'shape' => 'GetPublicAccessBlockOutput', ], 'errors' => [ [ 'shape' => 'NoSuchPublicAccessBlockConfiguration', ], ], ], 'PutPublicAccessBlock' => [ 'name' => 'PutPublicAccessBlock', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v20180820/configuration/publicAccessBlock', ], 'input' => [ 'shape' => 'PutPublicAccessBlockRequest', ], ], ], 'shapes' => [ 'AccountId' => [ 'type' => 'string', ], 'DeletePublicAccessBlockRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-account-id', ], ], ], 'GetPublicAccessBlockOutput' => [ 'type' => 'structure', 'members' => [ 'PublicAccessBlockConfiguration' => [ 'shape' => 'PublicAccessBlockConfiguration', ], ], 'payload' => 'PublicAccessBlockConfiguration', ], 'GetPublicAccessBlockRequest' => [ 'type' => 'structure', 'required' => [ 'AccountId', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-account-id', ], ], ], 'NoSuchPublicAccessBlockConfiguration' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NoSuchPublicAccessBlockConfigurationMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'NoSuchPublicAccessBlockConfigurationMessage' => [ 'type' => 'string', ], 'PublicAccessBlockConfiguration' => [ 'type' => 'structure', 'members' => [ 'BlockPublicAcls' => [ 'shape' => 'Setting', 'locationName' => 'BlockPublicAcls', ], 'IgnorePublicAcls' => [ 'shape' => 'Setting', 'locationName' => 'IgnorePublicAcls', ], 'BlockPublicPolicy' => [ 'shape' => 'Setting', 'locationName' => 'BlockPublicPolicy', ], 'RestrictPublicBuckets' => [ 'shape' => 'Setting', 'locationName' => 'RestrictPublicBuckets', ], ], ], 'PutPublicAccessBlockRequest' => [ 'type' => 'structure', 'required' => [ 'PublicAccessBlockConfiguration', 'AccountId', ], 'members' => [ 'PublicAccessBlockConfiguration' => [ 'shape' => 'PublicAccessBlockConfiguration', 'locationName' => 'PublicAccessBlockConfiguration', 'xmlNamespace' => [ 'uri' => 'http://awss3control.amazonaws.com/doc/2018-08-20/', ], ], 'AccountId' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-account-id', ], ], 'payload' => 'PublicAccessBlockConfiguration', ], 'Setting' => [ 'type' => 'boolean', ], ],]; diff --git a/lib/aws/Aws/data/s3control/2018-08-20/paginators-1.json.php b/lib/aws/Aws/data/s3control/2018-08-20/paginators-1.json.php new file mode 100644 index 0000000..4782094 --- /dev/null +++ b/lib/aws/Aws/data/s3control/2018-08-20/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/s3control/2018-08-20/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/sagemaker/2017-07-24/api-2.json.php b/lib/aws/Aws/data/sagemaker/2017-07-24/api-2.json.php new file mode 100644 index 0000000..b8446c7 --- /dev/null +++ b/lib/aws/Aws/data/sagemaker/2017-07-24/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/sagemaker/2017-07-24/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-07-24', 'endpointPrefix' => 'api.sagemaker', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'SageMaker', 'serviceFullName' => 'Amazon SageMaker Service', 'serviceId' => 'SageMaker', 'signatureVersion' => 'v4', 'signingName' => 'sagemaker', 'targetPrefix' => 'SageMaker', 'uid' => 'sagemaker-2017-07-24', ], 'operations' => [ 'AddTags' => [ 'name' => 'AddTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddTagsInput', ], 'output' => [ 'shape' => 'AddTagsOutput', ], ], 'CreateAlgorithm' => [ 'name' => 'CreateAlgorithm', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAlgorithmInput', ], 'output' => [ 'shape' => 'CreateAlgorithmOutput', ], ], 'CreateCodeRepository' => [ 'name' => 'CreateCodeRepository', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCodeRepositoryInput', ], 'output' => [ 'shape' => 'CreateCodeRepositoryOutput', ], ], 'CreateCompilationJob' => [ 'name' => 'CreateCompilationJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCompilationJobRequest', ], 'output' => [ 'shape' => 'CreateCompilationJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceInUse', ], [ 'shape' => 'ResourceLimitExceeded', ], ], ], 'CreateEndpoint' => [ 'name' => 'CreateEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateEndpointInput', ], 'output' => [ 'shape' => 'CreateEndpointOutput', ], 'errors' => [ [ 'shape' => 'ResourceLimitExceeded', ], ], ], 'CreateEndpointConfig' => [ 'name' => 'CreateEndpointConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateEndpointConfigInput', ], 'output' => [ 'shape' => 'CreateEndpointConfigOutput', ], 'errors' => [ [ 'shape' => 'ResourceLimitExceeded', ], ], ], 'CreateHyperParameterTuningJob' => [ 'name' => 'CreateHyperParameterTuningJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateHyperParameterTuningJobRequest', ], 'output' => [ 'shape' => 'CreateHyperParameterTuningJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceInUse', ], [ 'shape' => 'ResourceLimitExceeded', ], ], ], 'CreateLabelingJob' => [ 'name' => 'CreateLabelingJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLabelingJobRequest', ], 'output' => [ 'shape' => 'CreateLabelingJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceInUse', ], [ 'shape' => 'ResourceLimitExceeded', ], ], ], 'CreateModel' => [ 'name' => 'CreateModel', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateModelInput', ], 'output' => [ 'shape' => 'CreateModelOutput', ], 'errors' => [ [ 'shape' => 'ResourceLimitExceeded', ], ], ], 'CreateModelPackage' => [ 'name' => 'CreateModelPackage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateModelPackageInput', ], 'output' => [ 'shape' => 'CreateModelPackageOutput', ], ], 'CreateNotebookInstance' => [ 'name' => 'CreateNotebookInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNotebookInstanceInput', ], 'output' => [ 'shape' => 'CreateNotebookInstanceOutput', ], 'errors' => [ [ 'shape' => 'ResourceLimitExceeded', ], ], ], 'CreateNotebookInstanceLifecycleConfig' => [ 'name' => 'CreateNotebookInstanceLifecycleConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNotebookInstanceLifecycleConfigInput', ], 'output' => [ 'shape' => 'CreateNotebookInstanceLifecycleConfigOutput', ], 'errors' => [ [ 'shape' => 'ResourceLimitExceeded', ], ], ], 'CreatePresignedNotebookInstanceUrl' => [ 'name' => 'CreatePresignedNotebookInstanceUrl', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePresignedNotebookInstanceUrlInput', ], 'output' => [ 'shape' => 'CreatePresignedNotebookInstanceUrlOutput', ], ], 'CreateTrainingJob' => [ 'name' => 'CreateTrainingJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTrainingJobRequest', ], 'output' => [ 'shape' => 'CreateTrainingJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceInUse', ], [ 'shape' => 'ResourceLimitExceeded', ], ], ], 'CreateTransformJob' => [ 'name' => 'CreateTransformJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransformJobRequest', ], 'output' => [ 'shape' => 'CreateTransformJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceInUse', ], [ 'shape' => 'ResourceLimitExceeded', ], ], ], 'CreateWorkteam' => [ 'name' => 'CreateWorkteam', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateWorkteamRequest', ], 'output' => [ 'shape' => 'CreateWorkteamResponse', ], 'errors' => [ [ 'shape' => 'ResourceInUse', ], [ 'shape' => 'ResourceLimitExceeded', ], ], ], 'DeleteAlgorithm' => [ 'name' => 'DeleteAlgorithm', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAlgorithmInput', ], ], 'DeleteCodeRepository' => [ 'name' => 'DeleteCodeRepository', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCodeRepositoryInput', ], ], 'DeleteEndpoint' => [ 'name' => 'DeleteEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteEndpointInput', ], ], 'DeleteEndpointConfig' => [ 'name' => 'DeleteEndpointConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteEndpointConfigInput', ], ], 'DeleteModel' => [ 'name' => 'DeleteModel', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteModelInput', ], ], 'DeleteModelPackage' => [ 'name' => 'DeleteModelPackage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteModelPackageInput', ], ], 'DeleteNotebookInstance' => [ 'name' => 'DeleteNotebookInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNotebookInstanceInput', ], ], 'DeleteNotebookInstanceLifecycleConfig' => [ 'name' => 'DeleteNotebookInstanceLifecycleConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNotebookInstanceLifecycleConfigInput', ], ], 'DeleteTags' => [ 'name' => 'DeleteTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTagsInput', ], 'output' => [ 'shape' => 'DeleteTagsOutput', ], ], 'DeleteWorkteam' => [ 'name' => 'DeleteWorkteam', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteWorkteamRequest', ], 'output' => [ 'shape' => 'DeleteWorkteamResponse', ], 'errors' => [ [ 'shape' => 'ResourceLimitExceeded', ], ], ], 'DescribeAlgorithm' => [ 'name' => 'DescribeAlgorithm', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAlgorithmInput', ], 'output' => [ 'shape' => 'DescribeAlgorithmOutput', ], ], 'DescribeCodeRepository' => [ 'name' => 'DescribeCodeRepository', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCodeRepositoryInput', ], 'output' => [ 'shape' => 'DescribeCodeRepositoryOutput', ], ], 'DescribeCompilationJob' => [ 'name' => 'DescribeCompilationJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCompilationJobRequest', ], 'output' => [ 'shape' => 'DescribeCompilationJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFound', ], ], ], 'DescribeEndpoint' => [ 'name' => 'DescribeEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEndpointInput', ], 'output' => [ 'shape' => 'DescribeEndpointOutput', ], ], 'DescribeEndpointConfig' => [ 'name' => 'DescribeEndpointConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEndpointConfigInput', ], 'output' => [ 'shape' => 'DescribeEndpointConfigOutput', ], ], 'DescribeHyperParameterTuningJob' => [ 'name' => 'DescribeHyperParameterTuningJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHyperParameterTuningJobRequest', ], 'output' => [ 'shape' => 'DescribeHyperParameterTuningJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFound', ], ], ], 'DescribeLabelingJob' => [ 'name' => 'DescribeLabelingJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLabelingJobRequest', ], 'output' => [ 'shape' => 'DescribeLabelingJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFound', ], ], ], 'DescribeModel' => [ 'name' => 'DescribeModel', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeModelInput', ], 'output' => [ 'shape' => 'DescribeModelOutput', ], ], 'DescribeModelPackage' => [ 'name' => 'DescribeModelPackage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeModelPackageInput', ], 'output' => [ 'shape' => 'DescribeModelPackageOutput', ], ], 'DescribeNotebookInstance' => [ 'name' => 'DescribeNotebookInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNotebookInstanceInput', ], 'output' => [ 'shape' => 'DescribeNotebookInstanceOutput', ], ], 'DescribeNotebookInstanceLifecycleConfig' => [ 'name' => 'DescribeNotebookInstanceLifecycleConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNotebookInstanceLifecycleConfigInput', ], 'output' => [ 'shape' => 'DescribeNotebookInstanceLifecycleConfigOutput', ], ], 'DescribeSubscribedWorkteam' => [ 'name' => 'DescribeSubscribedWorkteam', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSubscribedWorkteamRequest', ], 'output' => [ 'shape' => 'DescribeSubscribedWorkteamResponse', ], ], 'DescribeTrainingJob' => [ 'name' => 'DescribeTrainingJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTrainingJobRequest', ], 'output' => [ 'shape' => 'DescribeTrainingJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFound', ], ], ], 'DescribeTransformJob' => [ 'name' => 'DescribeTransformJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransformJobRequest', ], 'output' => [ 'shape' => 'DescribeTransformJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFound', ], ], ], 'DescribeWorkteam' => [ 'name' => 'DescribeWorkteam', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeWorkteamRequest', ], 'output' => [ 'shape' => 'DescribeWorkteamResponse', ], ], 'GetSearchSuggestions' => [ 'name' => 'GetSearchSuggestions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSearchSuggestionsRequest', ], 'output' => [ 'shape' => 'GetSearchSuggestionsResponse', ], ], 'ListAlgorithms' => [ 'name' => 'ListAlgorithms', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAlgorithmsInput', ], 'output' => [ 'shape' => 'ListAlgorithmsOutput', ], ], 'ListCodeRepositories' => [ 'name' => 'ListCodeRepositories', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListCodeRepositoriesInput', ], 'output' => [ 'shape' => 'ListCodeRepositoriesOutput', ], ], 'ListCompilationJobs' => [ 'name' => 'ListCompilationJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListCompilationJobsRequest', ], 'output' => [ 'shape' => 'ListCompilationJobsResponse', ], ], 'ListEndpointConfigs' => [ 'name' => 'ListEndpointConfigs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListEndpointConfigsInput', ], 'output' => [ 'shape' => 'ListEndpointConfigsOutput', ], ], 'ListEndpoints' => [ 'name' => 'ListEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListEndpointsInput', ], 'output' => [ 'shape' => 'ListEndpointsOutput', ], ], 'ListHyperParameterTuningJobs' => [ 'name' => 'ListHyperParameterTuningJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListHyperParameterTuningJobsRequest', ], 'output' => [ 'shape' => 'ListHyperParameterTuningJobsResponse', ], ], 'ListLabelingJobs' => [ 'name' => 'ListLabelingJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListLabelingJobsRequest', ], 'output' => [ 'shape' => 'ListLabelingJobsResponse', ], ], 'ListLabelingJobsForWorkteam' => [ 'name' => 'ListLabelingJobsForWorkteam', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListLabelingJobsForWorkteamRequest', ], 'output' => [ 'shape' => 'ListLabelingJobsForWorkteamResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFound', ], ], ], 'ListModelPackages' => [ 'name' => 'ListModelPackages', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListModelPackagesInput', ], 'output' => [ 'shape' => 'ListModelPackagesOutput', ], ], 'ListModels' => [ 'name' => 'ListModels', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListModelsInput', ], 'output' => [ 'shape' => 'ListModelsOutput', ], ], 'ListNotebookInstanceLifecycleConfigs' => [ 'name' => 'ListNotebookInstanceLifecycleConfigs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListNotebookInstanceLifecycleConfigsInput', ], 'output' => [ 'shape' => 'ListNotebookInstanceLifecycleConfigsOutput', ], ], 'ListNotebookInstances' => [ 'name' => 'ListNotebookInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListNotebookInstancesInput', ], 'output' => [ 'shape' => 'ListNotebookInstancesOutput', ], ], 'ListSubscribedWorkteams' => [ 'name' => 'ListSubscribedWorkteams', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSubscribedWorkteamsRequest', ], 'output' => [ 'shape' => 'ListSubscribedWorkteamsResponse', ], ], 'ListTags' => [ 'name' => 'ListTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsInput', ], 'output' => [ 'shape' => 'ListTagsOutput', ], ], 'ListTrainingJobs' => [ 'name' => 'ListTrainingJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTrainingJobsRequest', ], 'output' => [ 'shape' => 'ListTrainingJobsResponse', ], ], 'ListTrainingJobsForHyperParameterTuningJob' => [ 'name' => 'ListTrainingJobsForHyperParameterTuningJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTrainingJobsForHyperParameterTuningJobRequest', ], 'output' => [ 'shape' => 'ListTrainingJobsForHyperParameterTuningJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFound', ], ], ], 'ListTransformJobs' => [ 'name' => 'ListTransformJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTransformJobsRequest', ], 'output' => [ 'shape' => 'ListTransformJobsResponse', ], ], 'ListWorkteams' => [ 'name' => 'ListWorkteams', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListWorkteamsRequest', ], 'output' => [ 'shape' => 'ListWorkteamsResponse', ], ], 'RenderUiTemplate' => [ 'name' => 'RenderUiTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RenderUiTemplateRequest', ], 'output' => [ 'shape' => 'RenderUiTemplateResponse', ], ], 'Search' => [ 'name' => 'Search', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchRequest', ], 'output' => [ 'shape' => 'SearchResponse', ], ], 'StartNotebookInstance' => [ 'name' => 'StartNotebookInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartNotebookInstanceInput', ], 'errors' => [ [ 'shape' => 'ResourceLimitExceeded', ], ], ], 'StopCompilationJob' => [ 'name' => 'StopCompilationJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopCompilationJobRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFound', ], ], ], 'StopHyperParameterTuningJob' => [ 'name' => 'StopHyperParameterTuningJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopHyperParameterTuningJobRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFound', ], ], ], 'StopLabelingJob' => [ 'name' => 'StopLabelingJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopLabelingJobRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFound', ], ], ], 'StopNotebookInstance' => [ 'name' => 'StopNotebookInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopNotebookInstanceInput', ], ], 'StopTrainingJob' => [ 'name' => 'StopTrainingJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopTrainingJobRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFound', ], ], ], 'StopTransformJob' => [ 'name' => 'StopTransformJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopTransformJobRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFound', ], ], ], 'UpdateCodeRepository' => [ 'name' => 'UpdateCodeRepository', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateCodeRepositoryInput', ], 'output' => [ 'shape' => 'UpdateCodeRepositoryOutput', ], ], 'UpdateEndpoint' => [ 'name' => 'UpdateEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateEndpointInput', ], 'output' => [ 'shape' => 'UpdateEndpointOutput', ], 'errors' => [ [ 'shape' => 'ResourceLimitExceeded', ], ], ], 'UpdateEndpointWeightsAndCapacities' => [ 'name' => 'UpdateEndpointWeightsAndCapacities', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateEndpointWeightsAndCapacitiesInput', ], 'output' => [ 'shape' => 'UpdateEndpointWeightsAndCapacitiesOutput', ], 'errors' => [ [ 'shape' => 'ResourceLimitExceeded', ], ], ], 'UpdateNotebookInstance' => [ 'name' => 'UpdateNotebookInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateNotebookInstanceInput', ], 'output' => [ 'shape' => 'UpdateNotebookInstanceOutput', ], 'errors' => [ [ 'shape' => 'ResourceLimitExceeded', ], ], ], 'UpdateNotebookInstanceLifecycleConfig' => [ 'name' => 'UpdateNotebookInstanceLifecycleConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateNotebookInstanceLifecycleConfigInput', ], 'output' => [ 'shape' => 'UpdateNotebookInstanceLifecycleConfigOutput', ], 'errors' => [ [ 'shape' => 'ResourceLimitExceeded', ], ], ], 'UpdateWorkteam' => [ 'name' => 'UpdateWorkteam', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateWorkteamRequest', ], 'output' => [ 'shape' => 'UpdateWorkteamResponse', ], 'errors' => [ [ 'shape' => 'ResourceLimitExceeded', ], ], ], ], 'shapes' => [ 'Accept' => [ 'type' => 'string', 'max' => 256, 'pattern' => '.*', ], 'AccountId' => [ 'type' => 'string', 'pattern' => '^\\d+$', ], 'AddTagsInput' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Tags', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'AddTagsOutput' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], ], ], 'AdditionalCodeRepositoryNamesOrUrls' => [ 'type' => 'list', 'member' => [ 'shape' => 'CodeRepositoryNameOrUrl', ], 'max' => 3, ], 'AlgorithmArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:algorithm/.*', ], 'AlgorithmImage' => [ 'type' => 'string', 'max' => 255, 'pattern' => '.*', ], 'AlgorithmSortBy' => [ 'type' => 'string', 'enum' => [ 'Name', 'CreationTime', ], ], 'AlgorithmSpecification' => [ 'type' => 'structure', 'required' => [ 'TrainingInputMode', ], 'members' => [ 'TrainingImage' => [ 'shape' => 'AlgorithmImage', ], 'AlgorithmName' => [ 'shape' => 'ArnOrName', ], 'TrainingInputMode' => [ 'shape' => 'TrainingInputMode', ], 'MetricDefinitions' => [ 'shape' => 'MetricDefinitionList', ], ], ], 'AlgorithmStatus' => [ 'type' => 'string', 'enum' => [ 'Pending', 'InProgress', 'Completed', 'Failed', 'Deleting', ], ], 'AlgorithmStatusDetails' => [ 'type' => 'structure', 'members' => [ 'ValidationStatuses' => [ 'shape' => 'AlgorithmStatusItemList', ], 'ImageScanStatuses' => [ 'shape' => 'AlgorithmStatusItemList', ], ], ], 'AlgorithmStatusItem' => [ 'type' => 'structure', 'required' => [ 'Name', 'Status', ], 'members' => [ 'Name' => [ 'shape' => 'EntityName', ], 'Status' => [ 'shape' => 'DetailedAlgorithmStatus', ], 'FailureReason' => [ 'shape' => 'String', ], ], ], 'AlgorithmStatusItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AlgorithmStatusItem', ], ], 'AlgorithmSummary' => [ 'type' => 'structure', 'required' => [ 'AlgorithmName', 'AlgorithmArn', 'CreationTime', 'AlgorithmStatus', ], 'members' => [ 'AlgorithmName' => [ 'shape' => 'EntityName', ], 'AlgorithmArn' => [ 'shape' => 'AlgorithmArn', ], 'AlgorithmDescription' => [ 'shape' => 'EntityDescription', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], 'AlgorithmStatus' => [ 'shape' => 'AlgorithmStatus', ], ], ], 'AlgorithmSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AlgorithmSummary', ], ], 'AlgorithmValidationProfile' => [ 'type' => 'structure', 'required' => [ 'ProfileName', 'TrainingJobDefinition', ], 'members' => [ 'ProfileName' => [ 'shape' => 'EntityName', ], 'TrainingJobDefinition' => [ 'shape' => 'TrainingJobDefinition', ], 'TransformJobDefinition' => [ 'shape' => 'TransformJobDefinition', ], ], ], 'AlgorithmValidationProfiles' => [ 'type' => 'list', 'member' => [ 'shape' => 'AlgorithmValidationProfile', ], 'max' => 1, 'min' => 1, ], 'AlgorithmValidationSpecification' => [ 'type' => 'structure', 'required' => [ 'ValidationRole', 'ValidationProfiles', ], 'members' => [ 'ValidationRole' => [ 'shape' => 'RoleArn', ], 'ValidationProfiles' => [ 'shape' => 'AlgorithmValidationProfiles', ], ], ], 'AnnotationConsolidationConfig' => [ 'type' => 'structure', 'required' => [ 'AnnotationConsolidationLambdaArn', ], 'members' => [ 'AnnotationConsolidationLambdaArn' => [ 'shape' => 'LambdaFunctionArn', ], ], ], 'ArnOrName' => [ 'type' => 'string', 'max' => 170, 'min' => 1, 'pattern' => '(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:[a-z\\-]*\\/)?([a-zA-Z0-9]([a-zA-Z0-9-]){0,62})(?<!-)$', ], 'AssemblyType' => [ 'type' => 'string', 'enum' => [ 'None', 'Line', ], ], 'AttributeName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '.+', ], 'AttributeNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeName', ], 'max' => 16, ], 'BatchStrategy' => [ 'type' => 'string', 'enum' => [ 'MultiRecord', 'SingleRecord', ], ], 'Boolean' => [ 'type' => 'boolean', ], 'BooleanOperator' => [ 'type' => 'string', 'enum' => [ 'And', 'Or', ], ], 'Branch' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '[^ ~^:?*\\[]+', ], 'CategoricalParameterRange' => [ 'type' => 'structure', 'required' => [ 'Name', 'Values', ], 'members' => [ 'Name' => [ 'shape' => 'ParameterKey', ], 'Values' => [ 'shape' => 'ParameterValues', ], ], ], 'CategoricalParameterRangeSpecification' => [ 'type' => 'structure', 'required' => [ 'Values', ], 'members' => [ 'Values' => [ 'shape' => 'ParameterValues', ], ], ], 'CategoricalParameterRanges' => [ 'type' => 'list', 'member' => [ 'shape' => 'CategoricalParameterRange', ], 'max' => 20, 'min' => 0, ], 'Cents' => [ 'type' => 'integer', 'max' => 99, 'min' => 0, ], 'CertifyForMarketplace' => [ 'type' => 'boolean', ], 'Channel' => [ 'type' => 'structure', 'required' => [ 'ChannelName', 'DataSource', ], 'members' => [ 'ChannelName' => [ 'shape' => 'ChannelName', ], 'DataSource' => [ 'shape' => 'DataSource', ], 'ContentType' => [ 'shape' => 'ContentType', ], 'CompressionType' => [ 'shape' => 'CompressionType', ], 'RecordWrapperType' => [ 'shape' => 'RecordWrapper', ], 'InputMode' => [ 'shape' => 'TrainingInputMode', ], 'ShuffleConfig' => [ 'shape' => 'ShuffleConfig', ], ], ], 'ChannelName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[A-Za-z0-9\\.\\-_]+', ], 'ChannelSpecification' => [ 'type' => 'structure', 'required' => [ 'Name', 'SupportedContentTypes', 'SupportedInputModes', ], 'members' => [ 'Name' => [ 'shape' => 'ChannelName', ], 'Description' => [ 'shape' => 'EntityDescription', ], 'IsRequired' => [ 'shape' => 'Boolean', ], 'SupportedContentTypes' => [ 'shape' => 'ContentTypes', ], 'SupportedCompressionTypes' => [ 'shape' => 'CompressionTypes', ], 'SupportedInputModes' => [ 'shape' => 'InputModes', ], ], ], 'ChannelSpecifications' => [ 'type' => 'list', 'member' => [ 'shape' => 'ChannelSpecification', ], 'max' => 8, 'min' => 1, ], 'CodeRepositoryArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:code-repository/.*', ], 'CodeRepositoryContains' => [ 'type' => 'string', 'max' => 1024, 'pattern' => '[a-zA-Z0-9-]+', ], 'CodeRepositoryNameContains' => [ 'type' => 'string', 'max' => 63, 'pattern' => '[a-zA-Z0-9-]+', ], 'CodeRepositoryNameOrUrl' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '^https://([^/]+)/?(.*)$|^[a-zA-Z0-9](-*[a-zA-Z0-9])*', ], 'CodeRepositorySortBy' => [ 'type' => 'string', 'enum' => [ 'Name', 'CreationTime', 'LastModifiedTime', ], ], 'CodeRepositorySortOrder' => [ 'type' => 'string', 'enum' => [ 'Ascending', 'Descending', ], ], 'CodeRepositorySummary' => [ 'type' => 'structure', 'required' => [ 'CodeRepositoryName', 'CodeRepositoryArn', 'CreationTime', 'LastModifiedTime', ], 'members' => [ 'CodeRepositoryName' => [ 'shape' => 'EntityName', ], 'CodeRepositoryArn' => [ 'shape' => 'CodeRepositoryArn', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], 'LastModifiedTime' => [ 'shape' => 'LastModifiedTime', ], 'GitConfig' => [ 'shape' => 'GitConfig', ], ], ], 'CodeRepositorySummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CodeRepositorySummary', ], ], 'CognitoClientId' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w+]+', ], 'CognitoMemberDefinition' => [ 'type' => 'structure', 'required' => [ 'UserPool', 'UserGroup', 'ClientId', ], 'members' => [ 'UserPool' => [ 'shape' => 'CognitoUserPool', ], 'UserGroup' => [ 'shape' => 'CognitoUserGroup', ], 'ClientId' => [ 'shape' => 'CognitoClientId', ], ], ], 'CognitoUserGroup' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+', ], 'CognitoUserPool' => [ 'type' => 'string', 'max' => 55, 'min' => 1, 'pattern' => '[\\w-]+_[0-9a-zA-Z]+', ], 'CompilationJobArn' => [ 'type' => 'string', 'max' => 256, 'pattern' => 'arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:compilation-job/.*', ], 'CompilationJobStatus' => [ 'type' => 'string', 'enum' => [ 'INPROGRESS', 'COMPLETED', 'FAILED', 'STARTING', 'STOPPING', 'STOPPED', ], ], 'CompilationJobSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'CompilationJobSummary', ], ], 'CompilationJobSummary' => [ 'type' => 'structure', 'required' => [ 'CompilationJobName', 'CompilationJobArn', 'CreationTime', 'CompilationTargetDevice', 'CompilationJobStatus', ], 'members' => [ 'CompilationJobName' => [ 'shape' => 'EntityName', ], 'CompilationJobArn' => [ 'shape' => 'CompilationJobArn', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], 'CompilationStartTime' => [ 'shape' => 'Timestamp', ], 'CompilationEndTime' => [ 'shape' => 'Timestamp', ], 'CompilationTargetDevice' => [ 'shape' => 'TargetDevice', ], 'LastModifiedTime' => [ 'shape' => 'LastModifiedTime', ], 'CompilationJobStatus' => [ 'shape' => 'CompilationJobStatus', ], ], ], 'CompressionType' => [ 'type' => 'string', 'enum' => [ 'None', 'Gzip', ], ], 'CompressionTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'CompressionType', ], ], 'ContainerDefinition' => [ 'type' => 'structure', 'members' => [ 'ContainerHostname' => [ 'shape' => 'ContainerHostname', ], 'Image' => [ 'shape' => 'Image', ], 'ModelDataUrl' => [ 'shape' => 'Url', ], 'Environment' => [ 'shape' => 'EnvironmentMap', ], 'ModelPackageName' => [ 'shape' => 'ArnOrName', ], ], ], 'ContainerDefinitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerDefinition', ], 'max' => 5, ], 'ContainerHostname' => [ 'type' => 'string', 'max' => 63, 'pattern' => '^[a-zA-Z0-9](-*[a-zA-Z0-9])*', ], 'ContentClassifier' => [ 'type' => 'string', 'enum' => [ 'FreeOfPersonallyIdentifiableInformation', 'FreeOfAdultContent', ], ], 'ContentClassifiers' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContentClassifier', ], 'max' => 256, ], 'ContentType' => [ 'type' => 'string', 'max' => 256, 'pattern' => '.*', ], 'ContentTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContentType', ], ], 'ContinuousParameterRange' => [ 'type' => 'structure', 'required' => [ 'Name', 'MinValue', 'MaxValue', ], 'members' => [ 'Name' => [ 'shape' => 'ParameterKey', ], 'MinValue' => [ 'shape' => 'ParameterValue', ], 'MaxValue' => [ 'shape' => 'ParameterValue', ], 'ScalingType' => [ 'shape' => 'HyperParameterScalingType', ], ], ], 'ContinuousParameterRangeSpecification' => [ 'type' => 'structure', 'required' => [ 'MinValue', 'MaxValue', ], 'members' => [ 'MinValue' => [ 'shape' => 'ParameterValue', ], 'MaxValue' => [ 'shape' => 'ParameterValue', ], ], ], 'ContinuousParameterRanges' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContinuousParameterRange', ], 'max' => 20, 'min' => 0, ], 'CreateAlgorithmInput' => [ 'type' => 'structure', 'required' => [ 'AlgorithmName', 'TrainingSpecification', ], 'members' => [ 'AlgorithmName' => [ 'shape' => 'EntityName', ], 'AlgorithmDescription' => [ 'shape' => 'EntityDescription', ], 'TrainingSpecification' => [ 'shape' => 'TrainingSpecification', ], 'InferenceSpecification' => [ 'shape' => 'InferenceSpecification', ], 'ValidationSpecification' => [ 'shape' => 'AlgorithmValidationSpecification', ], 'CertifyForMarketplace' => [ 'shape' => 'CertifyForMarketplace', ], ], ], 'CreateAlgorithmOutput' => [ 'type' => 'structure', 'required' => [ 'AlgorithmArn', ], 'members' => [ 'AlgorithmArn' => [ 'shape' => 'AlgorithmArn', ], ], ], 'CreateCodeRepositoryInput' => [ 'type' => 'structure', 'required' => [ 'CodeRepositoryName', 'GitConfig', ], 'members' => [ 'CodeRepositoryName' => [ 'shape' => 'EntityName', ], 'GitConfig' => [ 'shape' => 'GitConfig', ], ], ], 'CreateCodeRepositoryOutput' => [ 'type' => 'structure', 'required' => [ 'CodeRepositoryArn', ], 'members' => [ 'CodeRepositoryArn' => [ 'shape' => 'CodeRepositoryArn', ], ], ], 'CreateCompilationJobRequest' => [ 'type' => 'structure', 'required' => [ 'CompilationJobName', 'RoleArn', 'InputConfig', 'OutputConfig', 'StoppingCondition', ], 'members' => [ 'CompilationJobName' => [ 'shape' => 'EntityName', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'InputConfig' => [ 'shape' => 'InputConfig', ], 'OutputConfig' => [ 'shape' => 'OutputConfig', ], 'StoppingCondition' => [ 'shape' => 'StoppingCondition', ], ], ], 'CreateCompilationJobResponse' => [ 'type' => 'structure', 'required' => [ 'CompilationJobArn', ], 'members' => [ 'CompilationJobArn' => [ 'shape' => 'CompilationJobArn', ], ], ], 'CreateEndpointConfigInput' => [ 'type' => 'structure', 'required' => [ 'EndpointConfigName', 'ProductionVariants', ], 'members' => [ 'EndpointConfigName' => [ 'shape' => 'EndpointConfigName', ], 'ProductionVariants' => [ 'shape' => 'ProductionVariantList', ], 'Tags' => [ 'shape' => 'TagList', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'CreateEndpointConfigOutput' => [ 'type' => 'structure', 'required' => [ 'EndpointConfigArn', ], 'members' => [ 'EndpointConfigArn' => [ 'shape' => 'EndpointConfigArn', ], ], ], 'CreateEndpointInput' => [ 'type' => 'structure', 'required' => [ 'EndpointName', 'EndpointConfigName', ], 'members' => [ 'EndpointName' => [ 'shape' => 'EndpointName', ], 'EndpointConfigName' => [ 'shape' => 'EndpointConfigName', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateEndpointOutput' => [ 'type' => 'structure', 'required' => [ 'EndpointArn', ], 'members' => [ 'EndpointArn' => [ 'shape' => 'EndpointArn', ], ], ], 'CreateHyperParameterTuningJobRequest' => [ 'type' => 'structure', 'required' => [ 'HyperParameterTuningJobName', 'HyperParameterTuningJobConfig', 'TrainingJobDefinition', ], 'members' => [ 'HyperParameterTuningJobName' => [ 'shape' => 'HyperParameterTuningJobName', ], 'HyperParameterTuningJobConfig' => [ 'shape' => 'HyperParameterTuningJobConfig', ], 'TrainingJobDefinition' => [ 'shape' => 'HyperParameterTrainingJobDefinition', ], 'WarmStartConfig' => [ 'shape' => 'HyperParameterTuningJobWarmStartConfig', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateHyperParameterTuningJobResponse' => [ 'type' => 'structure', 'required' => [ 'HyperParameterTuningJobArn', ], 'members' => [ 'HyperParameterTuningJobArn' => [ 'shape' => 'HyperParameterTuningJobArn', ], ], ], 'CreateLabelingJobRequest' => [ 'type' => 'structure', 'required' => [ 'LabelingJobName', 'LabelAttributeName', 'InputConfig', 'OutputConfig', 'RoleArn', 'HumanTaskConfig', ], 'members' => [ 'LabelingJobName' => [ 'shape' => 'LabelingJobName', ], 'LabelAttributeName' => [ 'shape' => 'LabelAttributeName', ], 'InputConfig' => [ 'shape' => 'LabelingJobInputConfig', ], 'OutputConfig' => [ 'shape' => 'LabelingJobOutputConfig', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'LabelCategoryConfigS3Uri' => [ 'shape' => 'S3Uri', ], 'StoppingConditions' => [ 'shape' => 'LabelingJobStoppingConditions', ], 'LabelingJobAlgorithmsConfig' => [ 'shape' => 'LabelingJobAlgorithmsConfig', ], 'HumanTaskConfig' => [ 'shape' => 'HumanTaskConfig', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateLabelingJobResponse' => [ 'type' => 'structure', 'required' => [ 'LabelingJobArn', ], 'members' => [ 'LabelingJobArn' => [ 'shape' => 'LabelingJobArn', ], ], ], 'CreateModelInput' => [ 'type' => 'structure', 'required' => [ 'ModelName', 'ExecutionRoleArn', ], 'members' => [ 'ModelName' => [ 'shape' => 'ModelName', ], 'PrimaryContainer' => [ 'shape' => 'ContainerDefinition', ], 'Containers' => [ 'shape' => 'ContainerDefinitionList', ], 'ExecutionRoleArn' => [ 'shape' => 'RoleArn', ], 'Tags' => [ 'shape' => 'TagList', ], 'VpcConfig' => [ 'shape' => 'VpcConfig', ], 'EnableNetworkIsolation' => [ 'shape' => 'Boolean', ], ], ], 'CreateModelOutput' => [ 'type' => 'structure', 'required' => [ 'ModelArn', ], 'members' => [ 'ModelArn' => [ 'shape' => 'ModelArn', ], ], ], 'CreateModelPackageInput' => [ 'type' => 'structure', 'required' => [ 'ModelPackageName', ], 'members' => [ 'ModelPackageName' => [ 'shape' => 'EntityName', ], 'ModelPackageDescription' => [ 'shape' => 'EntityDescription', ], 'InferenceSpecification' => [ 'shape' => 'InferenceSpecification', ], 'ValidationSpecification' => [ 'shape' => 'ModelPackageValidationSpecification', ], 'SourceAlgorithmSpecification' => [ 'shape' => 'SourceAlgorithmSpecification', ], 'CertifyForMarketplace' => [ 'shape' => 'CertifyForMarketplace', ], ], ], 'CreateModelPackageOutput' => [ 'type' => 'structure', 'required' => [ 'ModelPackageArn', ], 'members' => [ 'ModelPackageArn' => [ 'shape' => 'ModelPackageArn', ], ], ], 'CreateNotebookInstanceInput' => [ 'type' => 'structure', 'required' => [ 'NotebookInstanceName', 'InstanceType', 'RoleArn', ], 'members' => [ 'NotebookInstanceName' => [ 'shape' => 'NotebookInstanceName', ], 'InstanceType' => [ 'shape' => 'InstanceType', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIds', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'Tags' => [ 'shape' => 'TagList', ], 'LifecycleConfigName' => [ 'shape' => 'NotebookInstanceLifecycleConfigName', ], 'DirectInternetAccess' => [ 'shape' => 'DirectInternetAccess', ], 'VolumeSizeInGB' => [ 'shape' => 'NotebookInstanceVolumeSizeInGB', ], 'AcceleratorTypes' => [ 'shape' => 'NotebookInstanceAcceleratorTypes', ], 'DefaultCodeRepository' => [ 'shape' => 'CodeRepositoryNameOrUrl', ], 'AdditionalCodeRepositories' => [ 'shape' => 'AdditionalCodeRepositoryNamesOrUrls', ], 'RootAccess' => [ 'shape' => 'RootAccess', ], ], ], 'CreateNotebookInstanceLifecycleConfigInput' => [ 'type' => 'structure', 'required' => [ 'NotebookInstanceLifecycleConfigName', ], 'members' => [ 'NotebookInstanceLifecycleConfigName' => [ 'shape' => 'NotebookInstanceLifecycleConfigName', ], 'OnCreate' => [ 'shape' => 'NotebookInstanceLifecycleConfigList', ], 'OnStart' => [ 'shape' => 'NotebookInstanceLifecycleConfigList', ], ], ], 'CreateNotebookInstanceLifecycleConfigOutput' => [ 'type' => 'structure', 'members' => [ 'NotebookInstanceLifecycleConfigArn' => [ 'shape' => 'NotebookInstanceLifecycleConfigArn', ], ], ], 'CreateNotebookInstanceOutput' => [ 'type' => 'structure', 'members' => [ 'NotebookInstanceArn' => [ 'shape' => 'NotebookInstanceArn', ], ], ], 'CreatePresignedNotebookInstanceUrlInput' => [ 'type' => 'structure', 'required' => [ 'NotebookInstanceName', ], 'members' => [ 'NotebookInstanceName' => [ 'shape' => 'NotebookInstanceName', ], 'SessionExpirationDurationInSeconds' => [ 'shape' => 'SessionExpirationDurationInSeconds', ], ], ], 'CreatePresignedNotebookInstanceUrlOutput' => [ 'type' => 'structure', 'members' => [ 'AuthorizedUrl' => [ 'shape' => 'NotebookInstanceUrl', ], ], ], 'CreateTrainingJobRequest' => [ 'type' => 'structure', 'required' => [ 'TrainingJobName', 'AlgorithmSpecification', 'RoleArn', 'OutputDataConfig', 'ResourceConfig', 'StoppingCondition', ], 'members' => [ 'TrainingJobName' => [ 'shape' => 'TrainingJobName', ], 'HyperParameters' => [ 'shape' => 'HyperParameters', ], 'AlgorithmSpecification' => [ 'shape' => 'AlgorithmSpecification', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'InputDataConfig' => [ 'shape' => 'InputDataConfig', ], 'OutputDataConfig' => [ 'shape' => 'OutputDataConfig', ], 'ResourceConfig' => [ 'shape' => 'ResourceConfig', ], 'VpcConfig' => [ 'shape' => 'VpcConfig', ], 'StoppingCondition' => [ 'shape' => 'StoppingCondition', ], 'Tags' => [ 'shape' => 'TagList', ], 'EnableNetworkIsolation' => [ 'shape' => 'Boolean', ], 'EnableInterContainerTrafficEncryption' => [ 'shape' => 'Boolean', ], ], ], 'CreateTrainingJobResponse' => [ 'type' => 'structure', 'required' => [ 'TrainingJobArn', ], 'members' => [ 'TrainingJobArn' => [ 'shape' => 'TrainingJobArn', ], ], ], 'CreateTransformJobRequest' => [ 'type' => 'structure', 'required' => [ 'TransformJobName', 'ModelName', 'TransformInput', 'TransformOutput', 'TransformResources', ], 'members' => [ 'TransformJobName' => [ 'shape' => 'TransformJobName', ], 'ModelName' => [ 'shape' => 'ModelName', ], 'MaxConcurrentTransforms' => [ 'shape' => 'MaxConcurrentTransforms', ], 'MaxPayloadInMB' => [ 'shape' => 'MaxPayloadInMB', ], 'BatchStrategy' => [ 'shape' => 'BatchStrategy', ], 'Environment' => [ 'shape' => 'TransformEnvironmentMap', ], 'TransformInput' => [ 'shape' => 'TransformInput', ], 'TransformOutput' => [ 'shape' => 'TransformOutput', ], 'TransformResources' => [ 'shape' => 'TransformResources', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateTransformJobResponse' => [ 'type' => 'structure', 'required' => [ 'TransformJobArn', ], 'members' => [ 'TransformJobArn' => [ 'shape' => 'TransformJobArn', ], ], ], 'CreateWorkteamRequest' => [ 'type' => 'structure', 'required' => [ 'WorkteamName', 'MemberDefinitions', 'Description', ], 'members' => [ 'WorkteamName' => [ 'shape' => 'WorkteamName', ], 'MemberDefinitions' => [ 'shape' => 'MemberDefinitions', ], 'Description' => [ 'shape' => 'String200', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateWorkteamResponse' => [ 'type' => 'structure', 'members' => [ 'WorkteamArn' => [ 'shape' => 'WorkteamArn', ], ], ], 'CreationTime' => [ 'type' => 'timestamp', ], 'DataInputConfig' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '[\\S\\s]+', ], 'DataSource' => [ 'type' => 'structure', 'required' => [ 'S3DataSource', ], 'members' => [ 'S3DataSource' => [ 'shape' => 'S3DataSource', ], ], ], 'DeleteAlgorithmInput' => [ 'type' => 'structure', 'required' => [ 'AlgorithmName', ], 'members' => [ 'AlgorithmName' => [ 'shape' => 'EntityName', ], ], ], 'DeleteCodeRepositoryInput' => [ 'type' => 'structure', 'required' => [ 'CodeRepositoryName', ], 'members' => [ 'CodeRepositoryName' => [ 'shape' => 'EntityName', ], ], ], 'DeleteEndpointConfigInput' => [ 'type' => 'structure', 'required' => [ 'EndpointConfigName', ], 'members' => [ 'EndpointConfigName' => [ 'shape' => 'EndpointConfigName', ], ], ], 'DeleteEndpointInput' => [ 'type' => 'structure', 'required' => [ 'EndpointName', ], 'members' => [ 'EndpointName' => [ 'shape' => 'EndpointName', ], ], ], 'DeleteModelInput' => [ 'type' => 'structure', 'required' => [ 'ModelName', ], 'members' => [ 'ModelName' => [ 'shape' => 'ModelName', ], ], ], 'DeleteModelPackageInput' => [ 'type' => 'structure', 'required' => [ 'ModelPackageName', ], 'members' => [ 'ModelPackageName' => [ 'shape' => 'EntityName', ], ], ], 'DeleteNotebookInstanceInput' => [ 'type' => 'structure', 'required' => [ 'NotebookInstanceName', ], 'members' => [ 'NotebookInstanceName' => [ 'shape' => 'NotebookInstanceName', ], ], ], 'DeleteNotebookInstanceLifecycleConfigInput' => [ 'type' => 'structure', 'required' => [ 'NotebookInstanceLifecycleConfigName', ], 'members' => [ 'NotebookInstanceLifecycleConfigName' => [ 'shape' => 'NotebookInstanceLifecycleConfigName', ], ], ], 'DeleteTagsInput' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagKeys', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'DeleteTagsOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeleteWorkteamRequest' => [ 'type' => 'structure', 'required' => [ 'WorkteamName', ], 'members' => [ 'WorkteamName' => [ 'shape' => 'WorkteamName', ], ], ], 'DeleteWorkteamResponse' => [ 'type' => 'structure', 'required' => [ 'Success', ], 'members' => [ 'Success' => [ 'shape' => 'Success', ], ], ], 'DeployedImage' => [ 'type' => 'structure', 'members' => [ 'SpecifiedImage' => [ 'shape' => 'Image', ], 'ResolvedImage' => [ 'shape' => 'Image', ], 'ResolutionTime' => [ 'shape' => 'Timestamp', ], ], ], 'DeployedImages' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeployedImage', ], ], 'DescribeAlgorithmInput' => [ 'type' => 'structure', 'required' => [ 'AlgorithmName', ], 'members' => [ 'AlgorithmName' => [ 'shape' => 'ArnOrName', ], ], ], 'DescribeAlgorithmOutput' => [ 'type' => 'structure', 'required' => [ 'AlgorithmName', 'AlgorithmArn', 'CreationTime', 'TrainingSpecification', 'AlgorithmStatus', 'AlgorithmStatusDetails', ], 'members' => [ 'AlgorithmName' => [ 'shape' => 'EntityName', ], 'AlgorithmArn' => [ 'shape' => 'AlgorithmArn', ], 'AlgorithmDescription' => [ 'shape' => 'EntityDescription', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], 'TrainingSpecification' => [ 'shape' => 'TrainingSpecification', ], 'InferenceSpecification' => [ 'shape' => 'InferenceSpecification', ], 'ValidationSpecification' => [ 'shape' => 'AlgorithmValidationSpecification', ], 'AlgorithmStatus' => [ 'shape' => 'AlgorithmStatus', ], 'AlgorithmStatusDetails' => [ 'shape' => 'AlgorithmStatusDetails', ], 'ProductId' => [ 'shape' => 'ProductId', ], 'CertifyForMarketplace' => [ 'shape' => 'CertifyForMarketplace', ], ], ], 'DescribeCodeRepositoryInput' => [ 'type' => 'structure', 'required' => [ 'CodeRepositoryName', ], 'members' => [ 'CodeRepositoryName' => [ 'shape' => 'EntityName', ], ], ], 'DescribeCodeRepositoryOutput' => [ 'type' => 'structure', 'required' => [ 'CodeRepositoryName', 'CodeRepositoryArn', 'CreationTime', 'LastModifiedTime', ], 'members' => [ 'CodeRepositoryName' => [ 'shape' => 'EntityName', ], 'CodeRepositoryArn' => [ 'shape' => 'CodeRepositoryArn', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], 'LastModifiedTime' => [ 'shape' => 'LastModifiedTime', ], 'GitConfig' => [ 'shape' => 'GitConfig', ], ], ], 'DescribeCompilationJobRequest' => [ 'type' => 'structure', 'required' => [ 'CompilationJobName', ], 'members' => [ 'CompilationJobName' => [ 'shape' => 'EntityName', ], ], ], 'DescribeCompilationJobResponse' => [ 'type' => 'structure', 'required' => [ 'CompilationJobName', 'CompilationJobArn', 'CompilationJobStatus', 'StoppingCondition', 'CreationTime', 'LastModifiedTime', 'FailureReason', 'ModelArtifacts', 'RoleArn', 'InputConfig', 'OutputConfig', ], 'members' => [ 'CompilationJobName' => [ 'shape' => 'EntityName', ], 'CompilationJobArn' => [ 'shape' => 'CompilationJobArn', ], 'CompilationJobStatus' => [ 'shape' => 'CompilationJobStatus', ], 'CompilationStartTime' => [ 'shape' => 'Timestamp', ], 'CompilationEndTime' => [ 'shape' => 'Timestamp', ], 'StoppingCondition' => [ 'shape' => 'StoppingCondition', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], 'LastModifiedTime' => [ 'shape' => 'LastModifiedTime', ], 'FailureReason' => [ 'shape' => 'FailureReason', ], 'ModelArtifacts' => [ 'shape' => 'ModelArtifacts', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'InputConfig' => [ 'shape' => 'InputConfig', ], 'OutputConfig' => [ 'shape' => 'OutputConfig', ], ], ], 'DescribeEndpointConfigInput' => [ 'type' => 'structure', 'required' => [ 'EndpointConfigName', ], 'members' => [ 'EndpointConfigName' => [ 'shape' => 'EndpointConfigName', ], ], ], 'DescribeEndpointConfigOutput' => [ 'type' => 'structure', 'required' => [ 'EndpointConfigName', 'EndpointConfigArn', 'ProductionVariants', 'CreationTime', ], 'members' => [ 'EndpointConfigName' => [ 'shape' => 'EndpointConfigName', ], 'EndpointConfigArn' => [ 'shape' => 'EndpointConfigArn', ], 'ProductionVariants' => [ 'shape' => 'ProductionVariantList', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], ], ], 'DescribeEndpointInput' => [ 'type' => 'structure', 'required' => [ 'EndpointName', ], 'members' => [ 'EndpointName' => [ 'shape' => 'EndpointName', ], ], ], 'DescribeEndpointOutput' => [ 'type' => 'structure', 'required' => [ 'EndpointName', 'EndpointArn', 'EndpointConfigName', 'EndpointStatus', 'CreationTime', 'LastModifiedTime', ], 'members' => [ 'EndpointName' => [ 'shape' => 'EndpointName', ], 'EndpointArn' => [ 'shape' => 'EndpointArn', ], 'EndpointConfigName' => [ 'shape' => 'EndpointConfigName', ], 'ProductionVariants' => [ 'shape' => 'ProductionVariantSummaryList', ], 'EndpointStatus' => [ 'shape' => 'EndpointStatus', ], 'FailureReason' => [ 'shape' => 'FailureReason', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'LastModifiedTime' => [ 'shape' => 'Timestamp', ], ], ], 'DescribeHyperParameterTuningJobRequest' => [ 'type' => 'structure', 'required' => [ 'HyperParameterTuningJobName', ], 'members' => [ 'HyperParameterTuningJobName' => [ 'shape' => 'HyperParameterTuningJobName', ], ], ], 'DescribeHyperParameterTuningJobResponse' => [ 'type' => 'structure', 'required' => [ 'HyperParameterTuningJobName', 'HyperParameterTuningJobArn', 'HyperParameterTuningJobConfig', 'TrainingJobDefinition', 'HyperParameterTuningJobStatus', 'CreationTime', 'TrainingJobStatusCounters', 'ObjectiveStatusCounters', ], 'members' => [ 'HyperParameterTuningJobName' => [ 'shape' => 'HyperParameterTuningJobName', ], 'HyperParameterTuningJobArn' => [ 'shape' => 'HyperParameterTuningJobArn', ], 'HyperParameterTuningJobConfig' => [ 'shape' => 'HyperParameterTuningJobConfig', ], 'TrainingJobDefinition' => [ 'shape' => 'HyperParameterTrainingJobDefinition', ], 'HyperParameterTuningJobStatus' => [ 'shape' => 'HyperParameterTuningJobStatus', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'HyperParameterTuningEndTime' => [ 'shape' => 'Timestamp', ], 'LastModifiedTime' => [ 'shape' => 'Timestamp', ], 'TrainingJobStatusCounters' => [ 'shape' => 'TrainingJobStatusCounters', ], 'ObjectiveStatusCounters' => [ 'shape' => 'ObjectiveStatusCounters', ], 'BestTrainingJob' => [ 'shape' => 'HyperParameterTrainingJobSummary', ], 'OverallBestTrainingJob' => [ 'shape' => 'HyperParameterTrainingJobSummary', ], 'WarmStartConfig' => [ 'shape' => 'HyperParameterTuningJobWarmStartConfig', ], 'FailureReason' => [ 'shape' => 'FailureReason', ], ], ], 'DescribeLabelingJobRequest' => [ 'type' => 'structure', 'required' => [ 'LabelingJobName', ], 'members' => [ 'LabelingJobName' => [ 'shape' => 'LabelingJobName', ], ], ], 'DescribeLabelingJobResponse' => [ 'type' => 'structure', 'required' => [ 'LabelingJobStatus', 'LabelCounters', 'CreationTime', 'LastModifiedTime', 'JobReferenceCode', 'LabelingJobName', 'LabelingJobArn', 'InputConfig', 'OutputConfig', 'RoleArn', 'HumanTaskConfig', ], 'members' => [ 'LabelingJobStatus' => [ 'shape' => 'LabelingJobStatus', ], 'LabelCounters' => [ 'shape' => 'LabelCounters', ], 'FailureReason' => [ 'shape' => 'FailureReason', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'LastModifiedTime' => [ 'shape' => 'Timestamp', ], 'JobReferenceCode' => [ 'shape' => 'JobReferenceCode', ], 'LabelingJobName' => [ 'shape' => 'LabelingJobName', ], 'LabelingJobArn' => [ 'shape' => 'LabelingJobArn', ], 'LabelAttributeName' => [ 'shape' => 'LabelAttributeName', ], 'InputConfig' => [ 'shape' => 'LabelingJobInputConfig', ], 'OutputConfig' => [ 'shape' => 'LabelingJobOutputConfig', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'LabelCategoryConfigS3Uri' => [ 'shape' => 'S3Uri', ], 'StoppingConditions' => [ 'shape' => 'LabelingJobStoppingConditions', ], 'LabelingJobAlgorithmsConfig' => [ 'shape' => 'LabelingJobAlgorithmsConfig', ], 'HumanTaskConfig' => [ 'shape' => 'HumanTaskConfig', ], 'Tags' => [ 'shape' => 'TagList', ], 'LabelingJobOutput' => [ 'shape' => 'LabelingJobOutput', ], ], ], 'DescribeModelInput' => [ 'type' => 'structure', 'required' => [ 'ModelName', ], 'members' => [ 'ModelName' => [ 'shape' => 'ModelName', ], ], ], 'DescribeModelOutput' => [ 'type' => 'structure', 'required' => [ 'ModelName', 'ExecutionRoleArn', 'CreationTime', 'ModelArn', ], 'members' => [ 'ModelName' => [ 'shape' => 'ModelName', ], 'PrimaryContainer' => [ 'shape' => 'ContainerDefinition', ], 'Containers' => [ 'shape' => 'ContainerDefinitionList', ], 'ExecutionRoleArn' => [ 'shape' => 'RoleArn', ], 'VpcConfig' => [ 'shape' => 'VpcConfig', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'ModelArn' => [ 'shape' => 'ModelArn', ], 'EnableNetworkIsolation' => [ 'shape' => 'Boolean', ], ], ], 'DescribeModelPackageInput' => [ 'type' => 'structure', 'required' => [ 'ModelPackageName', ], 'members' => [ 'ModelPackageName' => [ 'shape' => 'ArnOrName', ], ], ], 'DescribeModelPackageOutput' => [ 'type' => 'structure', 'required' => [ 'ModelPackageName', 'ModelPackageArn', 'CreationTime', 'ModelPackageStatus', 'ModelPackageStatusDetails', ], 'members' => [ 'ModelPackageName' => [ 'shape' => 'EntityName', ], 'ModelPackageArn' => [ 'shape' => 'ModelPackageArn', ], 'ModelPackageDescription' => [ 'shape' => 'EntityDescription', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], 'InferenceSpecification' => [ 'shape' => 'InferenceSpecification', ], 'SourceAlgorithmSpecification' => [ 'shape' => 'SourceAlgorithmSpecification', ], 'ValidationSpecification' => [ 'shape' => 'ModelPackageValidationSpecification', ], 'ModelPackageStatus' => [ 'shape' => 'ModelPackageStatus', ], 'ModelPackageStatusDetails' => [ 'shape' => 'ModelPackageStatusDetails', ], 'CertifyForMarketplace' => [ 'shape' => 'CertifyForMarketplace', ], ], ], 'DescribeNotebookInstanceInput' => [ 'type' => 'structure', 'required' => [ 'NotebookInstanceName', ], 'members' => [ 'NotebookInstanceName' => [ 'shape' => 'NotebookInstanceName', ], ], ], 'DescribeNotebookInstanceLifecycleConfigInput' => [ 'type' => 'structure', 'required' => [ 'NotebookInstanceLifecycleConfigName', ], 'members' => [ 'NotebookInstanceLifecycleConfigName' => [ 'shape' => 'NotebookInstanceLifecycleConfigName', ], ], ], 'DescribeNotebookInstanceLifecycleConfigOutput' => [ 'type' => 'structure', 'members' => [ 'NotebookInstanceLifecycleConfigArn' => [ 'shape' => 'NotebookInstanceLifecycleConfigArn', ], 'NotebookInstanceLifecycleConfigName' => [ 'shape' => 'NotebookInstanceLifecycleConfigName', ], 'OnCreate' => [ 'shape' => 'NotebookInstanceLifecycleConfigList', ], 'OnStart' => [ 'shape' => 'NotebookInstanceLifecycleConfigList', ], 'LastModifiedTime' => [ 'shape' => 'LastModifiedTime', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], ], ], 'DescribeNotebookInstanceOutput' => [ 'type' => 'structure', 'members' => [ 'NotebookInstanceArn' => [ 'shape' => 'NotebookInstanceArn', ], 'NotebookInstanceName' => [ 'shape' => 'NotebookInstanceName', ], 'NotebookInstanceStatus' => [ 'shape' => 'NotebookInstanceStatus', ], 'FailureReason' => [ 'shape' => 'FailureReason', ], 'Url' => [ 'shape' => 'NotebookInstanceUrl', ], 'InstanceType' => [ 'shape' => 'InstanceType', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'SecurityGroups' => [ 'shape' => 'SecurityGroupIds', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'LastModifiedTime' => [ 'shape' => 'LastModifiedTime', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], 'NotebookInstanceLifecycleConfigName' => [ 'shape' => 'NotebookInstanceLifecycleConfigName', ], 'DirectInternetAccess' => [ 'shape' => 'DirectInternetAccess', ], 'VolumeSizeInGB' => [ 'shape' => 'NotebookInstanceVolumeSizeInGB', ], 'AcceleratorTypes' => [ 'shape' => 'NotebookInstanceAcceleratorTypes', ], 'DefaultCodeRepository' => [ 'shape' => 'CodeRepositoryNameOrUrl', ], 'AdditionalCodeRepositories' => [ 'shape' => 'AdditionalCodeRepositoryNamesOrUrls', ], 'RootAccess' => [ 'shape' => 'RootAccess', ], ], ], 'DescribeSubscribedWorkteamRequest' => [ 'type' => 'structure', 'required' => [ 'WorkteamArn', ], 'members' => [ 'WorkteamArn' => [ 'shape' => 'WorkteamArn', ], ], ], 'DescribeSubscribedWorkteamResponse' => [ 'type' => 'structure', 'required' => [ 'SubscribedWorkteam', ], 'members' => [ 'SubscribedWorkteam' => [ 'shape' => 'SubscribedWorkteam', ], ], ], 'DescribeTrainingJobRequest' => [ 'type' => 'structure', 'required' => [ 'TrainingJobName', ], 'members' => [ 'TrainingJobName' => [ 'shape' => 'TrainingJobName', ], ], ], 'DescribeTrainingJobResponse' => [ 'type' => 'structure', 'required' => [ 'TrainingJobName', 'TrainingJobArn', 'ModelArtifacts', 'TrainingJobStatus', 'SecondaryStatus', 'AlgorithmSpecification', 'ResourceConfig', 'StoppingCondition', 'CreationTime', ], 'members' => [ 'TrainingJobName' => [ 'shape' => 'TrainingJobName', ], 'TrainingJobArn' => [ 'shape' => 'TrainingJobArn', ], 'TuningJobArn' => [ 'shape' => 'HyperParameterTuningJobArn', ], 'LabelingJobArn' => [ 'shape' => 'LabelingJobArn', ], 'ModelArtifacts' => [ 'shape' => 'ModelArtifacts', ], 'TrainingJobStatus' => [ 'shape' => 'TrainingJobStatus', ], 'SecondaryStatus' => [ 'shape' => 'SecondaryStatus', ], 'FailureReason' => [ 'shape' => 'FailureReason', ], 'HyperParameters' => [ 'shape' => 'HyperParameters', ], 'AlgorithmSpecification' => [ 'shape' => 'AlgorithmSpecification', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'InputDataConfig' => [ 'shape' => 'InputDataConfig', ], 'OutputDataConfig' => [ 'shape' => 'OutputDataConfig', ], 'ResourceConfig' => [ 'shape' => 'ResourceConfig', ], 'VpcConfig' => [ 'shape' => 'VpcConfig', ], 'StoppingCondition' => [ 'shape' => 'StoppingCondition', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'TrainingStartTime' => [ 'shape' => 'Timestamp', ], 'TrainingEndTime' => [ 'shape' => 'Timestamp', ], 'LastModifiedTime' => [ 'shape' => 'Timestamp', ], 'SecondaryStatusTransitions' => [ 'shape' => 'SecondaryStatusTransitions', ], 'FinalMetricDataList' => [ 'shape' => 'FinalMetricDataList', ], 'EnableNetworkIsolation' => [ 'shape' => 'Boolean', ], 'EnableInterContainerTrafficEncryption' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransformJobRequest' => [ 'type' => 'structure', 'required' => [ 'TransformJobName', ], 'members' => [ 'TransformJobName' => [ 'shape' => 'TransformJobName', ], ], ], 'DescribeTransformJobResponse' => [ 'type' => 'structure', 'required' => [ 'TransformJobName', 'TransformJobArn', 'TransformJobStatus', 'ModelName', 'TransformInput', 'TransformResources', 'CreationTime', ], 'members' => [ 'TransformJobName' => [ 'shape' => 'TransformJobName', ], 'TransformJobArn' => [ 'shape' => 'TransformJobArn', ], 'TransformJobStatus' => [ 'shape' => 'TransformJobStatus', ], 'FailureReason' => [ 'shape' => 'FailureReason', ], 'ModelName' => [ 'shape' => 'ModelName', ], 'MaxConcurrentTransforms' => [ 'shape' => 'MaxConcurrentTransforms', ], 'MaxPayloadInMB' => [ 'shape' => 'MaxPayloadInMB', ], 'BatchStrategy' => [ 'shape' => 'BatchStrategy', ], 'Environment' => [ 'shape' => 'TransformEnvironmentMap', ], 'TransformInput' => [ 'shape' => 'TransformInput', ], 'TransformOutput' => [ 'shape' => 'TransformOutput', ], 'TransformResources' => [ 'shape' => 'TransformResources', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'TransformStartTime' => [ 'shape' => 'Timestamp', ], 'TransformEndTime' => [ 'shape' => 'Timestamp', ], 'LabelingJobArn' => [ 'shape' => 'LabelingJobArn', ], ], ], 'DescribeWorkteamRequest' => [ 'type' => 'structure', 'required' => [ 'WorkteamName', ], 'members' => [ 'WorkteamName' => [ 'shape' => 'WorkteamName', ], ], ], 'DescribeWorkteamResponse' => [ 'type' => 'structure', 'required' => [ 'Workteam', ], 'members' => [ 'Workteam' => [ 'shape' => 'Workteam', ], ], ], 'DesiredWeightAndCapacity' => [ 'type' => 'structure', 'required' => [ 'VariantName', ], 'members' => [ 'VariantName' => [ 'shape' => 'VariantName', ], 'DesiredWeight' => [ 'shape' => 'VariantWeight', ], 'DesiredInstanceCount' => [ 'shape' => 'TaskCount', ], ], ], 'DesiredWeightAndCapacityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DesiredWeightAndCapacity', ], 'min' => 1, ], 'DetailedAlgorithmStatus' => [ 'type' => 'string', 'enum' => [ 'NotStarted', 'InProgress', 'Completed', 'Failed', ], ], 'DetailedModelPackageStatus' => [ 'type' => 'string', 'enum' => [ 'NotStarted', 'InProgress', 'Completed', 'Failed', ], ], 'DirectInternetAccess' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'DisassociateAdditionalCodeRepositories' => [ 'type' => 'boolean', ], 'DisassociateDefaultCodeRepository' => [ 'type' => 'boolean', ], 'DisassociateNotebookInstanceAcceleratorTypes' => [ 'type' => 'boolean', ], 'DisassociateNotebookInstanceLifecycleConfig' => [ 'type' => 'boolean', ], 'Dollars' => [ 'type' => 'integer', 'max' => 1, 'min' => 0, ], 'EndpointArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => 'arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:endpoint/.*', ], 'EndpointConfigArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => 'arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:endpoint-config/.*', ], 'EndpointConfigName' => [ 'type' => 'string', 'max' => 63, 'pattern' => '^[a-zA-Z0-9](-*[a-zA-Z0-9])*', ], 'EndpointConfigNameContains' => [ 'type' => 'string', 'max' => 63, 'pattern' => '[a-zA-Z0-9-]+', ], 'EndpointConfigSortKey' => [ 'type' => 'string', 'enum' => [ 'Name', 'CreationTime', ], ], 'EndpointConfigSummary' => [ 'type' => 'structure', 'required' => [ 'EndpointConfigName', 'EndpointConfigArn', 'CreationTime', ], 'members' => [ 'EndpointConfigName' => [ 'shape' => 'EndpointConfigName', ], 'EndpointConfigArn' => [ 'shape' => 'EndpointConfigArn', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], ], ], 'EndpointConfigSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EndpointConfigSummary', ], ], 'EndpointName' => [ 'type' => 'string', 'max' => 63, 'pattern' => '^[a-zA-Z0-9](-*[a-zA-Z0-9])*', ], 'EndpointNameContains' => [ 'type' => 'string', 'max' => 63, 'pattern' => '[a-zA-Z0-9-]+', ], 'EndpointSortKey' => [ 'type' => 'string', 'enum' => [ 'Name', 'CreationTime', 'Status', ], ], 'EndpointStatus' => [ 'type' => 'string', 'enum' => [ 'OutOfService', 'Creating', 'Updating', 'SystemUpdating', 'RollingBack', 'InService', 'Deleting', 'Failed', ], ], 'EndpointSummary' => [ 'type' => 'structure', 'required' => [ 'EndpointName', 'EndpointArn', 'CreationTime', 'LastModifiedTime', 'EndpointStatus', ], 'members' => [ 'EndpointName' => [ 'shape' => 'EndpointName', ], 'EndpointArn' => [ 'shape' => 'EndpointArn', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'LastModifiedTime' => [ 'shape' => 'Timestamp', ], 'EndpointStatus' => [ 'shape' => 'EndpointStatus', ], ], ], 'EndpointSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EndpointSummary', ], ], 'EntityDescription' => [ 'type' => 'string', 'max' => 1024, 'pattern' => '[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}]*', ], 'EntityName' => [ 'type' => 'string', 'max' => 63, 'min' => 1, 'pattern' => '^[a-zA-Z0-9](-*[a-zA-Z0-9])*$', ], 'EnvironmentKey' => [ 'type' => 'string', 'max' => 1024, 'pattern' => '[a-zA-Z_][a-zA-Z0-9_]*', ], 'EnvironmentMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'EnvironmentKey', ], 'value' => [ 'shape' => 'EnvironmentValue', ], 'max' => 16, ], 'EnvironmentValue' => [ 'type' => 'string', 'max' => 1024, 'pattern' => '[\\S\\s]*', ], 'FailureReason' => [ 'type' => 'string', 'max' => 1024, ], 'Filter' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'ResourcePropertyName', ], 'Operator' => [ 'shape' => 'Operator', ], 'Value' => [ 'shape' => 'FilterValue', ], ], ], 'FilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Filter', ], 'max' => 20, 'min' => 1, ], 'FilterValue' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '.+', ], 'FinalHyperParameterTuningJobObjectiveMetric' => [ 'type' => 'structure', 'required' => [ 'MetricName', 'Value', ], 'members' => [ 'Type' => [ 'shape' => 'HyperParameterTuningJobObjectiveType', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'Value' => [ 'shape' => 'MetricValue', ], ], ], 'FinalMetricDataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricData', ], 'max' => 20, 'min' => 0, ], 'Float' => [ 'type' => 'float', ], 'Framework' => [ 'type' => 'string', 'enum' => [ 'TENSORFLOW', 'MXNET', 'ONNX', 'PYTORCH', 'XGBOOST', ], ], 'GetSearchSuggestionsRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceType', ], 'SuggestionQuery' => [ 'shape' => 'SuggestionQuery', ], ], ], 'GetSearchSuggestionsResponse' => [ 'type' => 'structure', 'members' => [ 'PropertyNameSuggestions' => [ 'shape' => 'PropertyNameSuggestionList', ], ], ], 'GitConfig' => [ 'type' => 'structure', 'required' => [ 'RepositoryUrl', ], 'members' => [ 'RepositoryUrl' => [ 'shape' => 'GitConfigUrl', ], 'Branch' => [ 'shape' => 'Branch', ], 'SecretArn' => [ 'shape' => 'SecretArn', ], ], ], 'GitConfigForUpdate' => [ 'type' => 'structure', 'members' => [ 'SecretArn' => [ 'shape' => 'SecretArn', ], ], ], 'GitConfigUrl' => [ 'type' => 'string', 'pattern' => '^https://([^/]+)/?(.*)$', ], 'HumanTaskConfig' => [ 'type' => 'structure', 'required' => [ 'WorkteamArn', 'UiConfig', 'PreHumanTaskLambdaArn', 'TaskTitle', 'TaskDescription', 'NumberOfHumanWorkersPerDataObject', 'TaskTimeLimitInSeconds', 'AnnotationConsolidationConfig', ], 'members' => [ 'WorkteamArn' => [ 'shape' => 'WorkteamArn', ], 'UiConfig' => [ 'shape' => 'UiConfig', ], 'PreHumanTaskLambdaArn' => [ 'shape' => 'LambdaFunctionArn', ], 'TaskKeywords' => [ 'shape' => 'TaskKeywords', ], 'TaskTitle' => [ 'shape' => 'TaskTitle', ], 'TaskDescription' => [ 'shape' => 'TaskDescription', ], 'NumberOfHumanWorkersPerDataObject' => [ 'shape' => 'NumberOfHumanWorkersPerDataObject', ], 'TaskTimeLimitInSeconds' => [ 'shape' => 'TaskTimeLimitInSeconds', ], 'TaskAvailabilityLifetimeInSeconds' => [ 'shape' => 'TaskAvailabilityLifetimeInSeconds', ], 'MaxConcurrentTaskCount' => [ 'shape' => 'MaxConcurrentTaskCount', ], 'AnnotationConsolidationConfig' => [ 'shape' => 'AnnotationConsolidationConfig', ], 'PublicWorkforceTaskPrice' => [ 'shape' => 'PublicWorkforceTaskPrice', ], ], ], 'HyperParameterAlgorithmSpecification' => [ 'type' => 'structure', 'required' => [ 'TrainingInputMode', ], 'members' => [ 'TrainingImage' => [ 'shape' => 'AlgorithmImage', ], 'TrainingInputMode' => [ 'shape' => 'TrainingInputMode', ], 'AlgorithmName' => [ 'shape' => 'ArnOrName', ], 'MetricDefinitions' => [ 'shape' => 'MetricDefinitionList', ], ], ], 'HyperParameterScalingType' => [ 'type' => 'string', 'enum' => [ 'Auto', 'Linear', 'Logarithmic', 'ReverseLogarithmic', ], ], 'HyperParameterSpecification' => [ 'type' => 'structure', 'required' => [ 'Name', 'Type', ], 'members' => [ 'Name' => [ 'shape' => 'ParameterName', ], 'Description' => [ 'shape' => 'EntityDescription', ], 'Type' => [ 'shape' => 'ParameterType', ], 'Range' => [ 'shape' => 'ParameterRange', ], 'IsTunable' => [ 'shape' => 'Boolean', ], 'IsRequired' => [ 'shape' => 'Boolean', ], 'DefaultValue' => [ 'shape' => 'ParameterValue', ], ], ], 'HyperParameterSpecifications' => [ 'type' => 'list', 'member' => [ 'shape' => 'HyperParameterSpecification', ], 'max' => 100, 'min' => 0, ], 'HyperParameterTrainingJobDefinition' => [ 'type' => 'structure', 'required' => [ 'AlgorithmSpecification', 'RoleArn', 'OutputDataConfig', 'ResourceConfig', 'StoppingCondition', ], 'members' => [ 'StaticHyperParameters' => [ 'shape' => 'HyperParameters', ], 'AlgorithmSpecification' => [ 'shape' => 'HyperParameterAlgorithmSpecification', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'InputDataConfig' => [ 'shape' => 'InputDataConfig', ], 'VpcConfig' => [ 'shape' => 'VpcConfig', ], 'OutputDataConfig' => [ 'shape' => 'OutputDataConfig', ], 'ResourceConfig' => [ 'shape' => 'ResourceConfig', ], 'StoppingCondition' => [ 'shape' => 'StoppingCondition', ], 'EnableNetworkIsolation' => [ 'shape' => 'Boolean', ], 'EnableInterContainerTrafficEncryption' => [ 'shape' => 'Boolean', ], ], ], 'HyperParameterTrainingJobSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'HyperParameterTrainingJobSummary', ], ], 'HyperParameterTrainingJobSummary' => [ 'type' => 'structure', 'required' => [ 'TrainingJobName', 'TrainingJobArn', 'CreationTime', 'TrainingJobStatus', 'TunedHyperParameters', ], 'members' => [ 'TrainingJobName' => [ 'shape' => 'TrainingJobName', ], 'TrainingJobArn' => [ 'shape' => 'TrainingJobArn', ], 'TuningJobName' => [ 'shape' => 'HyperParameterTuningJobName', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'TrainingStartTime' => [ 'shape' => 'Timestamp', ], 'TrainingEndTime' => [ 'shape' => 'Timestamp', ], 'TrainingJobStatus' => [ 'shape' => 'TrainingJobStatus', ], 'TunedHyperParameters' => [ 'shape' => 'HyperParameters', ], 'FailureReason' => [ 'shape' => 'FailureReason', ], 'FinalHyperParameterTuningJobObjectiveMetric' => [ 'shape' => 'FinalHyperParameterTuningJobObjectiveMetric', ], 'ObjectiveStatus' => [ 'shape' => 'ObjectiveStatus', ], ], ], 'HyperParameterTuningJobArn' => [ 'type' => 'string', 'max' => 256, 'pattern' => 'arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:hyper-parameter-tuning-job/.*', ], 'HyperParameterTuningJobConfig' => [ 'type' => 'structure', 'required' => [ 'Strategy', 'HyperParameterTuningJobObjective', 'ResourceLimits', 'ParameterRanges', ], 'members' => [ 'Strategy' => [ 'shape' => 'HyperParameterTuningJobStrategyType', ], 'HyperParameterTuningJobObjective' => [ 'shape' => 'HyperParameterTuningJobObjective', ], 'ResourceLimits' => [ 'shape' => 'ResourceLimits', ], 'ParameterRanges' => [ 'shape' => 'ParameterRanges', ], 'TrainingJobEarlyStoppingType' => [ 'shape' => 'TrainingJobEarlyStoppingType', ], ], ], 'HyperParameterTuningJobName' => [ 'type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '^[a-zA-Z0-9](-*[a-zA-Z0-9])*', ], 'HyperParameterTuningJobObjective' => [ 'type' => 'structure', 'required' => [ 'Type', 'MetricName', ], 'members' => [ 'Type' => [ 'shape' => 'HyperParameterTuningJobObjectiveType', ], 'MetricName' => [ 'shape' => 'MetricName', ], ], ], 'HyperParameterTuningJobObjectiveType' => [ 'type' => 'string', 'enum' => [ 'Maximize', 'Minimize', ], ], 'HyperParameterTuningJobObjectives' => [ 'type' => 'list', 'member' => [ 'shape' => 'HyperParameterTuningJobObjective', ], ], 'HyperParameterTuningJobSortByOptions' => [ 'type' => 'string', 'enum' => [ 'Name', 'Status', 'CreationTime', ], ], 'HyperParameterTuningJobStatus' => [ 'type' => 'string', 'enum' => [ 'Completed', 'InProgress', 'Failed', 'Stopped', 'Stopping', ], ], 'HyperParameterTuningJobStrategyType' => [ 'type' => 'string', 'enum' => [ 'Bayesian', 'Random', ], ], 'HyperParameterTuningJobSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'HyperParameterTuningJobSummary', ], ], 'HyperParameterTuningJobSummary' => [ 'type' => 'structure', 'required' => [ 'HyperParameterTuningJobName', 'HyperParameterTuningJobArn', 'HyperParameterTuningJobStatus', 'Strategy', 'CreationTime', 'TrainingJobStatusCounters', 'ObjectiveStatusCounters', ], 'members' => [ 'HyperParameterTuningJobName' => [ 'shape' => 'HyperParameterTuningJobName', ], 'HyperParameterTuningJobArn' => [ 'shape' => 'HyperParameterTuningJobArn', ], 'HyperParameterTuningJobStatus' => [ 'shape' => 'HyperParameterTuningJobStatus', ], 'Strategy' => [ 'shape' => 'HyperParameterTuningJobStrategyType', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'HyperParameterTuningEndTime' => [ 'shape' => 'Timestamp', ], 'LastModifiedTime' => [ 'shape' => 'Timestamp', ], 'TrainingJobStatusCounters' => [ 'shape' => 'TrainingJobStatusCounters', ], 'ObjectiveStatusCounters' => [ 'shape' => 'ObjectiveStatusCounters', ], 'ResourceLimits' => [ 'shape' => 'ResourceLimits', ], ], ], 'HyperParameterTuningJobWarmStartConfig' => [ 'type' => 'structure', 'required' => [ 'ParentHyperParameterTuningJobs', 'WarmStartType', ], 'members' => [ 'ParentHyperParameterTuningJobs' => [ 'shape' => 'ParentHyperParameterTuningJobs', ], 'WarmStartType' => [ 'shape' => 'HyperParameterTuningJobWarmStartType', ], ], ], 'HyperParameterTuningJobWarmStartType' => [ 'type' => 'string', 'enum' => [ 'IdenticalDataAndAlgorithm', 'TransferLearning', ], ], 'HyperParameters' => [ 'type' => 'map', 'key' => [ 'shape' => 'ParameterKey', ], 'value' => [ 'shape' => 'ParameterValue', ], 'max' => 100, 'min' => 0, ], 'Image' => [ 'type' => 'string', 'max' => 255, 'pattern' => '[\\S]+', ], 'ImageDigest' => [ 'type' => 'string', 'max' => 72, 'pattern' => '^[Ss][Hh][Aa]256:[0-9a-fA-F]{64}$', ], 'InferenceSpecification' => [ 'type' => 'structure', 'required' => [ 'Containers', 'SupportedTransformInstanceTypes', 'SupportedRealtimeInferenceInstanceTypes', 'SupportedContentTypes', 'SupportedResponseMIMETypes', ], 'members' => [ 'Containers' => [ 'shape' => 'ModelPackageContainerDefinitionList', ], 'SupportedTransformInstanceTypes' => [ 'shape' => 'TransformInstanceTypes', ], 'SupportedRealtimeInferenceInstanceTypes' => [ 'shape' => 'RealtimeInferenceInstanceTypes', ], 'SupportedContentTypes' => [ 'shape' => 'ContentTypes', ], 'SupportedResponseMIMETypes' => [ 'shape' => 'ResponseMIMETypes', ], ], ], 'InputConfig' => [ 'type' => 'structure', 'required' => [ 'S3Uri', 'DataInputConfig', 'Framework', ], 'members' => [ 'S3Uri' => [ 'shape' => 'S3Uri', ], 'DataInputConfig' => [ 'shape' => 'DataInputConfig', ], 'Framework' => [ 'shape' => 'Framework', ], ], ], 'InputDataConfig' => [ 'type' => 'list', 'member' => [ 'shape' => 'Channel', ], 'max' => 8, 'min' => 1, ], 'InputModes' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrainingInputMode', ], 'min' => 1, ], 'InstanceType' => [ 'type' => 'string', 'enum' => [ 'ml.t2.medium', 'ml.t2.large', 'ml.t2.xlarge', 'ml.t2.2xlarge', 'ml.t3.medium', 'ml.t3.large', 'ml.t3.xlarge', 'ml.t3.2xlarge', 'ml.m4.xlarge', 'ml.m4.2xlarge', 'ml.m4.4xlarge', 'ml.m4.10xlarge', 'ml.m4.16xlarge', 'ml.m5.xlarge', 'ml.m5.2xlarge', 'ml.m5.4xlarge', 'ml.m5.12xlarge', 'ml.m5.24xlarge', 'ml.c4.xlarge', 'ml.c4.2xlarge', 'ml.c4.4xlarge', 'ml.c4.8xlarge', 'ml.c5.xlarge', 'ml.c5.2xlarge', 'ml.c5.4xlarge', 'ml.c5.9xlarge', 'ml.c5.18xlarge', 'ml.c5d.xlarge', 'ml.c5d.2xlarge', 'ml.c5d.4xlarge', 'ml.c5d.9xlarge', 'ml.c5d.18xlarge', 'ml.p2.xlarge', 'ml.p2.8xlarge', 'ml.p2.16xlarge', 'ml.p3.2xlarge', 'ml.p3.8xlarge', 'ml.p3.16xlarge', ], ], 'IntegerParameterRange' => [ 'type' => 'structure', 'required' => [ 'Name', 'MinValue', 'MaxValue', ], 'members' => [ 'Name' => [ 'shape' => 'ParameterKey', ], 'MinValue' => [ 'shape' => 'ParameterValue', ], 'MaxValue' => [ 'shape' => 'ParameterValue', ], 'ScalingType' => [ 'shape' => 'HyperParameterScalingType', ], ], ], 'IntegerParameterRangeSpecification' => [ 'type' => 'structure', 'required' => [ 'MinValue', 'MaxValue', ], 'members' => [ 'MinValue' => [ 'shape' => 'ParameterValue', ], 'MaxValue' => [ 'shape' => 'ParameterValue', ], ], ], 'IntegerParameterRanges' => [ 'type' => 'list', 'member' => [ 'shape' => 'IntegerParameterRange', ], 'max' => 20, 'min' => 0, ], 'JobReferenceCode' => [ 'type' => 'string', 'min' => 1, 'pattern' => '.+', ], 'JobReferenceCodeContains' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '.+', ], 'KmsKeyId' => [ 'type' => 'string', 'max' => 2048, 'pattern' => '.*', ], 'LabelAttributeName' => [ 'type' => 'string', 'max' => 127, 'min' => 1, 'pattern' => '^[a-zA-Z0-9](-*[a-zA-Z0-9])*', ], 'LabelCounter' => [ 'type' => 'integer', 'min' => 0, ], 'LabelCounters' => [ 'type' => 'structure', 'members' => [ 'TotalLabeled' => [ 'shape' => 'LabelCounter', ], 'HumanLabeled' => [ 'shape' => 'LabelCounter', ], 'MachineLabeled' => [ 'shape' => 'LabelCounter', ], 'FailedNonRetryableError' => [ 'shape' => 'LabelCounter', ], 'Unlabeled' => [ 'shape' => 'LabelCounter', ], ], ], 'LabelCountersForWorkteam' => [ 'type' => 'structure', 'members' => [ 'HumanLabeled' => [ 'shape' => 'LabelCounter', ], 'PendingHuman' => [ 'shape' => 'LabelCounter', ], 'Total' => [ 'shape' => 'LabelCounter', ], ], ], 'LabelingJobAlgorithmSpecificationArn' => [ 'type' => 'string', 'max' => 2048, 'pattern' => 'arn:.*', ], 'LabelingJobAlgorithmsConfig' => [ 'type' => 'structure', 'required' => [ 'LabelingJobAlgorithmSpecificationArn', ], 'members' => [ 'LabelingJobAlgorithmSpecificationArn' => [ 'shape' => 'LabelingJobAlgorithmSpecificationArn', ], 'InitialActiveLearningModelArn' => [ 'shape' => 'ModelArn', ], 'LabelingJobResourceConfig' => [ 'shape' => 'LabelingJobResourceConfig', ], ], ], 'LabelingJobArn' => [ 'type' => 'string', 'max' => 2048, 'pattern' => 'arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:labeling-job/.*', ], 'LabelingJobDataAttributes' => [ 'type' => 'structure', 'members' => [ 'ContentClassifiers' => [ 'shape' => 'ContentClassifiers', ], ], ], 'LabelingJobDataSource' => [ 'type' => 'structure', 'required' => [ 'S3DataSource', ], 'members' => [ 'S3DataSource' => [ 'shape' => 'LabelingJobS3DataSource', ], ], ], 'LabelingJobForWorkteamSummary' => [ 'type' => 'structure', 'required' => [ 'JobReferenceCode', 'WorkRequesterAccountId', 'CreationTime', ], 'members' => [ 'LabelingJobName' => [ 'shape' => 'LabelingJobName', ], 'JobReferenceCode' => [ 'shape' => 'JobReferenceCode', ], 'WorkRequesterAccountId' => [ 'shape' => 'AccountId', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'LabelCounters' => [ 'shape' => 'LabelCountersForWorkteam', ], ], ], 'LabelingJobForWorkteamSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LabelingJobForWorkteamSummary', ], ], 'LabelingJobInputConfig' => [ 'type' => 'structure', 'required' => [ 'DataSource', ], 'members' => [ 'DataSource' => [ 'shape' => 'LabelingJobDataSource', ], 'DataAttributes' => [ 'shape' => 'LabelingJobDataAttributes', ], ], ], 'LabelingJobName' => [ 'type' => 'string', 'max' => 63, 'min' => 1, 'pattern' => '^[a-zA-Z0-9](-*[a-zA-Z0-9])*', ], 'LabelingJobOutput' => [ 'type' => 'structure', 'required' => [ 'OutputDatasetS3Uri', ], 'members' => [ 'OutputDatasetS3Uri' => [ 'shape' => 'S3Uri', ], 'FinalActiveLearningModelArn' => [ 'shape' => 'ModelArn', ], ], ], 'LabelingJobOutputConfig' => [ 'type' => 'structure', 'required' => [ 'S3OutputPath', ], 'members' => [ 'S3OutputPath' => [ 'shape' => 'S3Uri', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'LabelingJobResourceConfig' => [ 'type' => 'structure', 'members' => [ 'VolumeKmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'LabelingJobS3DataSource' => [ 'type' => 'structure', 'required' => [ 'ManifestS3Uri', ], 'members' => [ 'ManifestS3Uri' => [ 'shape' => 'S3Uri', ], ], ], 'LabelingJobStatus' => [ 'type' => 'string', 'enum' => [ 'InProgress', 'Completed', 'Failed', 'Stopping', 'Stopped', ], ], 'LabelingJobStoppingConditions' => [ 'type' => 'structure', 'members' => [ 'MaxHumanLabeledObjectCount' => [ 'shape' => 'MaxHumanLabeledObjectCount', ], 'MaxPercentageOfInputDatasetLabeled' => [ 'shape' => 'MaxPercentageOfInputDatasetLabeled', ], ], ], 'LabelingJobSummary' => [ 'type' => 'structure', 'required' => [ 'LabelingJobName', 'LabelingJobArn', 'CreationTime', 'LastModifiedTime', 'LabelingJobStatus', 'LabelCounters', 'WorkteamArn', 'PreHumanTaskLambdaArn', ], 'members' => [ 'LabelingJobName' => [ 'shape' => 'LabelingJobName', ], 'LabelingJobArn' => [ 'shape' => 'LabelingJobArn', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'LastModifiedTime' => [ 'shape' => 'Timestamp', ], 'LabelingJobStatus' => [ 'shape' => 'LabelingJobStatus', ], 'LabelCounters' => [ 'shape' => 'LabelCounters', ], 'WorkteamArn' => [ 'shape' => 'WorkteamArn', ], 'PreHumanTaskLambdaArn' => [ 'shape' => 'LambdaFunctionArn', ], 'AnnotationConsolidationLambdaArn' => [ 'shape' => 'LambdaFunctionArn', ], 'FailureReason' => [ 'shape' => 'FailureReason', ], 'LabelingJobOutput' => [ 'shape' => 'LabelingJobOutput', ], 'InputConfig' => [ 'shape' => 'LabelingJobInputConfig', ], ], ], 'LabelingJobSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LabelingJobSummary', ], ], 'LambdaFunctionArn' => [ 'type' => 'string', 'max' => 2048, 'pattern' => 'arn:aws[a-z\\-]*:lambda:[a-z]{2}-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?', ], 'LastModifiedTime' => [ 'type' => 'timestamp', ], 'ListAlgorithmsInput' => [ 'type' => 'structure', 'members' => [ 'CreationTimeAfter' => [ 'shape' => 'CreationTime', ], 'CreationTimeBefore' => [ 'shape' => 'CreationTime', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NameContains' => [ 'shape' => 'NameContains', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'SortBy' => [ 'shape' => 'AlgorithmSortBy', ], 'SortOrder' => [ 'shape' => 'SortOrder', ], ], ], 'ListAlgorithmsOutput' => [ 'type' => 'structure', 'required' => [ 'AlgorithmSummaryList', ], 'members' => [ 'AlgorithmSummaryList' => [ 'shape' => 'AlgorithmSummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListCodeRepositoriesInput' => [ 'type' => 'structure', 'members' => [ 'CreationTimeAfter' => [ 'shape' => 'CreationTime', ], 'CreationTimeBefore' => [ 'shape' => 'CreationTime', ], 'LastModifiedTimeAfter' => [ 'shape' => 'Timestamp', ], 'LastModifiedTimeBefore' => [ 'shape' => 'Timestamp', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NameContains' => [ 'shape' => 'CodeRepositoryNameContains', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'SortBy' => [ 'shape' => 'CodeRepositorySortBy', ], 'SortOrder' => [ 'shape' => 'CodeRepositorySortOrder', ], ], ], 'ListCodeRepositoriesOutput' => [ 'type' => 'structure', 'required' => [ 'CodeRepositorySummaryList', ], 'members' => [ 'CodeRepositorySummaryList' => [ 'shape' => 'CodeRepositorySummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListCompilationJobsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], 'CreationTimeAfter' => [ 'shape' => 'CreationTime', ], 'CreationTimeBefore' => [ 'shape' => 'CreationTime', ], 'LastModifiedTimeAfter' => [ 'shape' => 'LastModifiedTime', ], 'LastModifiedTimeBefore' => [ 'shape' => 'LastModifiedTime', ], 'NameContains' => [ 'shape' => 'NameContains', ], 'StatusEquals' => [ 'shape' => 'CompilationJobStatus', ], 'SortBy' => [ 'shape' => 'ListCompilationJobsSortBy', ], 'SortOrder' => [ 'shape' => 'SortOrder', ], ], ], 'ListCompilationJobsResponse' => [ 'type' => 'structure', 'required' => [ 'CompilationJobSummaries', ], 'members' => [ 'CompilationJobSummaries' => [ 'shape' => 'CompilationJobSummaries', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListCompilationJobsSortBy' => [ 'type' => 'string', 'enum' => [ 'Name', 'CreationTime', 'Status', ], ], 'ListEndpointConfigsInput' => [ 'type' => 'structure', 'members' => [ 'SortBy' => [ 'shape' => 'EndpointConfigSortKey', ], 'SortOrder' => [ 'shape' => 'OrderKey', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NameContains' => [ 'shape' => 'EndpointConfigNameContains', ], 'CreationTimeBefore' => [ 'shape' => 'Timestamp', ], 'CreationTimeAfter' => [ 'shape' => 'Timestamp', ], ], ], 'ListEndpointConfigsOutput' => [ 'type' => 'structure', 'required' => [ 'EndpointConfigs', ], 'members' => [ 'EndpointConfigs' => [ 'shape' => 'EndpointConfigSummaryList', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListEndpointsInput' => [ 'type' => 'structure', 'members' => [ 'SortBy' => [ 'shape' => 'EndpointSortKey', ], 'SortOrder' => [ 'shape' => 'OrderKey', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NameContains' => [ 'shape' => 'EndpointNameContains', ], 'CreationTimeBefore' => [ 'shape' => 'Timestamp', ], 'CreationTimeAfter' => [ 'shape' => 'Timestamp', ], 'LastModifiedTimeBefore' => [ 'shape' => 'Timestamp', ], 'LastModifiedTimeAfter' => [ 'shape' => 'Timestamp', ], 'StatusEquals' => [ 'shape' => 'EndpointStatus', ], ], ], 'ListEndpointsOutput' => [ 'type' => 'structure', 'required' => [ 'Endpoints', ], 'members' => [ 'Endpoints' => [ 'shape' => 'EndpointSummaryList', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListHyperParameterTuningJobsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], 'SortBy' => [ 'shape' => 'HyperParameterTuningJobSortByOptions', ], 'SortOrder' => [ 'shape' => 'SortOrder', ], 'NameContains' => [ 'shape' => 'NameContains', ], 'CreationTimeAfter' => [ 'shape' => 'Timestamp', ], 'CreationTimeBefore' => [ 'shape' => 'Timestamp', ], 'LastModifiedTimeAfter' => [ 'shape' => 'Timestamp', ], 'LastModifiedTimeBefore' => [ 'shape' => 'Timestamp', ], 'StatusEquals' => [ 'shape' => 'HyperParameterTuningJobStatus', ], ], ], 'ListHyperParameterTuningJobsResponse' => [ 'type' => 'structure', 'required' => [ 'HyperParameterTuningJobSummaries', ], 'members' => [ 'HyperParameterTuningJobSummaries' => [ 'shape' => 'HyperParameterTuningJobSummaries', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListLabelingJobsForWorkteamRequest' => [ 'type' => 'structure', 'required' => [ 'WorkteamArn', ], 'members' => [ 'WorkteamArn' => [ 'shape' => 'WorkteamArn', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'CreationTimeAfter' => [ 'shape' => 'Timestamp', ], 'CreationTimeBefore' => [ 'shape' => 'Timestamp', ], 'JobReferenceCodeContains' => [ 'shape' => 'JobReferenceCodeContains', ], 'SortBy' => [ 'shape' => 'ListLabelingJobsForWorkteamSortByOptions', ], 'SortOrder' => [ 'shape' => 'SortOrder', ], ], ], 'ListLabelingJobsForWorkteamResponse' => [ 'type' => 'structure', 'required' => [ 'LabelingJobSummaryList', ], 'members' => [ 'LabelingJobSummaryList' => [ 'shape' => 'LabelingJobForWorkteamSummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListLabelingJobsForWorkteamSortByOptions' => [ 'type' => 'string', 'enum' => [ 'CreationTime', ], ], 'ListLabelingJobsRequest' => [ 'type' => 'structure', 'members' => [ 'CreationTimeAfter' => [ 'shape' => 'Timestamp', ], 'CreationTimeBefore' => [ 'shape' => 'Timestamp', ], 'LastModifiedTimeAfter' => [ 'shape' => 'Timestamp', ], 'LastModifiedTimeBefore' => [ 'shape' => 'Timestamp', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'NameContains' => [ 'shape' => 'NameContains', ], 'SortBy' => [ 'shape' => 'SortBy', ], 'SortOrder' => [ 'shape' => 'SortOrder', ], 'StatusEquals' => [ 'shape' => 'LabelingJobStatus', ], ], ], 'ListLabelingJobsResponse' => [ 'type' => 'structure', 'members' => [ 'LabelingJobSummaryList' => [ 'shape' => 'LabelingJobSummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListModelPackagesInput' => [ 'type' => 'structure', 'members' => [ 'CreationTimeAfter' => [ 'shape' => 'CreationTime', ], 'CreationTimeBefore' => [ 'shape' => 'CreationTime', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NameContains' => [ 'shape' => 'NameContains', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'SortBy' => [ 'shape' => 'ModelPackageSortBy', ], 'SortOrder' => [ 'shape' => 'SortOrder', ], ], ], 'ListModelPackagesOutput' => [ 'type' => 'structure', 'required' => [ 'ModelPackageSummaryList', ], 'members' => [ 'ModelPackageSummaryList' => [ 'shape' => 'ModelPackageSummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListModelsInput' => [ 'type' => 'structure', 'members' => [ 'SortBy' => [ 'shape' => 'ModelSortKey', ], 'SortOrder' => [ 'shape' => 'OrderKey', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NameContains' => [ 'shape' => 'ModelNameContains', ], 'CreationTimeBefore' => [ 'shape' => 'Timestamp', ], 'CreationTimeAfter' => [ 'shape' => 'Timestamp', ], ], ], 'ListModelsOutput' => [ 'type' => 'structure', 'required' => [ 'Models', ], 'members' => [ 'Models' => [ 'shape' => 'ModelSummaryList', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListNotebookInstanceLifecycleConfigsInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'SortBy' => [ 'shape' => 'NotebookInstanceLifecycleConfigSortKey', ], 'SortOrder' => [ 'shape' => 'NotebookInstanceLifecycleConfigSortOrder', ], 'NameContains' => [ 'shape' => 'NotebookInstanceLifecycleConfigNameContains', ], 'CreationTimeBefore' => [ 'shape' => 'CreationTime', ], 'CreationTimeAfter' => [ 'shape' => 'CreationTime', ], 'LastModifiedTimeBefore' => [ 'shape' => 'LastModifiedTime', ], 'LastModifiedTimeAfter' => [ 'shape' => 'LastModifiedTime', ], ], ], 'ListNotebookInstanceLifecycleConfigsOutput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'NotebookInstanceLifecycleConfigs' => [ 'shape' => 'NotebookInstanceLifecycleConfigSummaryList', ], ], ], 'ListNotebookInstancesInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'SortBy' => [ 'shape' => 'NotebookInstanceSortKey', ], 'SortOrder' => [ 'shape' => 'NotebookInstanceSortOrder', ], 'NameContains' => [ 'shape' => 'NotebookInstanceNameContains', ], 'CreationTimeBefore' => [ 'shape' => 'CreationTime', ], 'CreationTimeAfter' => [ 'shape' => 'CreationTime', ], 'LastModifiedTimeBefore' => [ 'shape' => 'LastModifiedTime', ], 'LastModifiedTimeAfter' => [ 'shape' => 'LastModifiedTime', ], 'StatusEquals' => [ 'shape' => 'NotebookInstanceStatus', ], 'NotebookInstanceLifecycleConfigNameContains' => [ 'shape' => 'NotebookInstanceLifecycleConfigName', ], 'DefaultCodeRepositoryContains' => [ 'shape' => 'CodeRepositoryContains', ], 'AdditionalCodeRepositoryEquals' => [ 'shape' => 'CodeRepositoryNameOrUrl', ], ], ], 'ListNotebookInstancesOutput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'NotebookInstances' => [ 'shape' => 'NotebookInstanceSummaryList', ], ], ], 'ListSubscribedWorkteamsRequest' => [ 'type' => 'structure', 'members' => [ 'NameContains' => [ 'shape' => 'WorkteamName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], ], ], 'ListSubscribedWorkteamsResponse' => [ 'type' => 'structure', 'required' => [ 'SubscribedWorkteams', ], 'members' => [ 'SubscribedWorkteams' => [ 'shape' => 'SubscribedWorkteams', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsInput' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'ListTagsMaxResults', ], ], ], 'ListTagsMaxResults' => [ 'type' => 'integer', 'min' => 50, ], 'ListTagsOutput' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTrainingJobsForHyperParameterTuningJobRequest' => [ 'type' => 'structure', 'required' => [ 'HyperParameterTuningJobName', ], 'members' => [ 'HyperParameterTuningJobName' => [ 'shape' => 'HyperParameterTuningJobName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'StatusEquals' => [ 'shape' => 'TrainingJobStatus', ], 'SortBy' => [ 'shape' => 'TrainingJobSortByOptions', ], 'SortOrder' => [ 'shape' => 'SortOrder', ], ], ], 'ListTrainingJobsForHyperParameterTuningJobResponse' => [ 'type' => 'structure', 'required' => [ 'TrainingJobSummaries', ], 'members' => [ 'TrainingJobSummaries' => [ 'shape' => 'HyperParameterTrainingJobSummaries', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTrainingJobsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], 'CreationTimeAfter' => [ 'shape' => 'Timestamp', ], 'CreationTimeBefore' => [ 'shape' => 'Timestamp', ], 'LastModifiedTimeAfter' => [ 'shape' => 'Timestamp', ], 'LastModifiedTimeBefore' => [ 'shape' => 'Timestamp', ], 'NameContains' => [ 'shape' => 'NameContains', ], 'StatusEquals' => [ 'shape' => 'TrainingJobStatus', ], 'SortBy' => [ 'shape' => 'SortBy', ], 'SortOrder' => [ 'shape' => 'SortOrder', ], ], ], 'ListTrainingJobsResponse' => [ 'type' => 'structure', 'required' => [ 'TrainingJobSummaries', ], 'members' => [ 'TrainingJobSummaries' => [ 'shape' => 'TrainingJobSummaries', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTransformJobsRequest' => [ 'type' => 'structure', 'members' => [ 'CreationTimeAfter' => [ 'shape' => 'Timestamp', ], 'CreationTimeBefore' => [ 'shape' => 'Timestamp', ], 'LastModifiedTimeAfter' => [ 'shape' => 'Timestamp', ], 'LastModifiedTimeBefore' => [ 'shape' => 'Timestamp', ], 'NameContains' => [ 'shape' => 'NameContains', ], 'StatusEquals' => [ 'shape' => 'TransformJobStatus', ], 'SortBy' => [ 'shape' => 'SortBy', ], 'SortOrder' => [ 'shape' => 'SortOrder', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], ], ], 'ListTransformJobsResponse' => [ 'type' => 'structure', 'required' => [ 'TransformJobSummaries', ], 'members' => [ 'TransformJobSummaries' => [ 'shape' => 'TransformJobSummaries', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListWorkteamsRequest' => [ 'type' => 'structure', 'members' => [ 'SortBy' => [ 'shape' => 'ListWorkteamsSortByOptions', ], 'SortOrder' => [ 'shape' => 'SortOrder', ], 'NameContains' => [ 'shape' => 'WorkteamName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], ], ], 'ListWorkteamsResponse' => [ 'type' => 'structure', 'required' => [ 'Workteams', ], 'members' => [ 'Workteams' => [ 'shape' => 'Workteams', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListWorkteamsSortByOptions' => [ 'type' => 'string', 'enum' => [ 'Name', 'CreateDate', ], ], 'MaxConcurrentTaskCount' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'MaxConcurrentTransforms' => [ 'type' => 'integer', 'min' => 0, ], 'MaxHumanLabeledObjectCount' => [ 'type' => 'integer', 'min' => 1, ], 'MaxNumberOfTrainingJobs' => [ 'type' => 'integer', 'min' => 1, ], 'MaxParallelTrainingJobs' => [ 'type' => 'integer', 'min' => 1, ], 'MaxPayloadInMB' => [ 'type' => 'integer', 'min' => 0, ], 'MaxPercentageOfInputDatasetLabeled' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'MaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'MaxRuntimeInSeconds' => [ 'type' => 'integer', 'min' => 1, ], 'MemberDefinition' => [ 'type' => 'structure', 'members' => [ 'CognitoMemberDefinition' => [ 'shape' => 'CognitoMemberDefinition', ], ], ], 'MemberDefinitions' => [ 'type' => 'list', 'member' => [ 'shape' => 'MemberDefinition', ], 'max' => 10, 'min' => 1, ], 'MetricData' => [ 'type' => 'structure', 'members' => [ 'MetricName' => [ 'shape' => 'MetricName', ], 'Value' => [ 'shape' => 'Float', ], 'Timestamp' => [ 'shape' => 'Timestamp', ], ], ], 'MetricDefinition' => [ 'type' => 'structure', 'required' => [ 'Name', 'Regex', ], 'members' => [ 'Name' => [ 'shape' => 'MetricName', ], 'Regex' => [ 'shape' => 'MetricRegex', ], ], ], 'MetricDefinitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricDefinition', ], 'max' => 20, 'min' => 0, ], 'MetricName' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '.+', ], 'MetricRegex' => [ 'type' => 'string', 'max' => 500, 'min' => 1, ], 'MetricValue' => [ 'type' => 'float', ], 'ModelArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => 'arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:model/.*', ], 'ModelArtifacts' => [ 'type' => 'structure', 'required' => [ 'S3ModelArtifacts', ], 'members' => [ 'S3ModelArtifacts' => [ 'shape' => 'S3Uri', ], ], ], 'ModelName' => [ 'type' => 'string', 'max' => 63, 'pattern' => '^[a-zA-Z0-9](-*[a-zA-Z0-9])*', ], 'ModelNameContains' => [ 'type' => 'string', 'max' => 63, 'pattern' => '[a-zA-Z0-9-]+', ], 'ModelPackageArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:model-package/.*', ], 'ModelPackageContainerDefinition' => [ 'type' => 'structure', 'required' => [ 'Image', ], 'members' => [ 'ContainerHostname' => [ 'shape' => 'ContainerHostname', ], 'Image' => [ 'shape' => 'Image', ], 'ImageDigest' => [ 'shape' => 'ImageDigest', ], 'ModelDataUrl' => [ 'shape' => 'Url', ], 'ProductId' => [ 'shape' => 'ProductId', ], ], ], 'ModelPackageContainerDefinitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ModelPackageContainerDefinition', ], 'max' => 1, 'min' => 1, ], 'ModelPackageSortBy' => [ 'type' => 'string', 'enum' => [ 'Name', 'CreationTime', ], ], 'ModelPackageStatus' => [ 'type' => 'string', 'enum' => [ 'Pending', 'InProgress', 'Completed', 'Failed', 'Deleting', ], ], 'ModelPackageStatusDetails' => [ 'type' => 'structure', 'required' => [ 'ValidationStatuses', ], 'members' => [ 'ValidationStatuses' => [ 'shape' => 'ModelPackageStatusItemList', ], 'ImageScanStatuses' => [ 'shape' => 'ModelPackageStatusItemList', ], ], ], 'ModelPackageStatusItem' => [ 'type' => 'structure', 'required' => [ 'Name', 'Status', ], 'members' => [ 'Name' => [ 'shape' => 'EntityName', ], 'Status' => [ 'shape' => 'DetailedModelPackageStatus', ], 'FailureReason' => [ 'shape' => 'String', ], ], ], 'ModelPackageStatusItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ModelPackageStatusItem', ], ], 'ModelPackageSummary' => [ 'type' => 'structure', 'required' => [ 'ModelPackageName', 'ModelPackageArn', 'CreationTime', 'ModelPackageStatus', ], 'members' => [ 'ModelPackageName' => [ 'shape' => 'EntityName', ], 'ModelPackageArn' => [ 'shape' => 'ModelPackageArn', ], 'ModelPackageDescription' => [ 'shape' => 'EntityDescription', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], 'ModelPackageStatus' => [ 'shape' => 'ModelPackageStatus', ], ], ], 'ModelPackageSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ModelPackageSummary', ], ], 'ModelPackageValidationProfile' => [ 'type' => 'structure', 'required' => [ 'ProfileName', 'TransformJobDefinition', ], 'members' => [ 'ProfileName' => [ 'shape' => 'EntityName', ], 'TransformJobDefinition' => [ 'shape' => 'TransformJobDefinition', ], ], ], 'ModelPackageValidationProfiles' => [ 'type' => 'list', 'member' => [ 'shape' => 'ModelPackageValidationProfile', ], 'max' => 1, 'min' => 1, ], 'ModelPackageValidationSpecification' => [ 'type' => 'structure', 'required' => [ 'ValidationRole', 'ValidationProfiles', ], 'members' => [ 'ValidationRole' => [ 'shape' => 'RoleArn', ], 'ValidationProfiles' => [ 'shape' => 'ModelPackageValidationProfiles', ], ], ], 'ModelSortKey' => [ 'type' => 'string', 'enum' => [ 'Name', 'CreationTime', ], ], 'ModelSummary' => [ 'type' => 'structure', 'required' => [ 'ModelName', 'ModelArn', 'CreationTime', ], 'members' => [ 'ModelName' => [ 'shape' => 'ModelName', ], 'ModelArn' => [ 'shape' => 'ModelArn', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], ], ], 'ModelSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ModelSummary', ], ], 'NameContains' => [ 'type' => 'string', 'max' => 63, 'pattern' => '[a-zA-Z0-9\\-]+', ], 'NestedFilters' => [ 'type' => 'structure', 'required' => [ 'NestedPropertyName', 'Filters', ], 'members' => [ 'NestedPropertyName' => [ 'shape' => 'ResourcePropertyName', ], 'Filters' => [ 'shape' => 'FilterList', ], ], ], 'NestedFiltersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NestedFilters', ], 'max' => 20, 'min' => 1, ], 'NetworkInterfaceId' => [ 'type' => 'string', ], 'NextToken' => [ 'type' => 'string', 'max' => 8192, 'pattern' => '.*', ], 'NotebookInstanceAcceleratorType' => [ 'type' => 'string', 'enum' => [ 'ml.eia1.medium', 'ml.eia1.large', 'ml.eia1.xlarge', ], ], 'NotebookInstanceAcceleratorTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'NotebookInstanceAcceleratorType', ], ], 'NotebookInstanceArn' => [ 'type' => 'string', 'max' => 256, ], 'NotebookInstanceLifecycleConfigArn' => [ 'type' => 'string', 'max' => 256, ], 'NotebookInstanceLifecycleConfigContent' => [ 'type' => 'string', 'max' => 16384, 'min' => 1, 'pattern' => '[\\S\\s]+', ], 'NotebookInstanceLifecycleConfigList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NotebookInstanceLifecycleHook', ], 'max' => 1, ], 'NotebookInstanceLifecycleConfigName' => [ 'type' => 'string', 'max' => 63, 'pattern' => '^[a-zA-Z0-9](-*[a-zA-Z0-9])*', ], 'NotebookInstanceLifecycleConfigNameContains' => [ 'type' => 'string', 'max' => 63, 'pattern' => '[a-zA-Z0-9-]+', ], 'NotebookInstanceLifecycleConfigSortKey' => [ 'type' => 'string', 'enum' => [ 'Name', 'CreationTime', 'LastModifiedTime', ], ], 'NotebookInstanceLifecycleConfigSortOrder' => [ 'type' => 'string', 'enum' => [ 'Ascending', 'Descending', ], ], 'NotebookInstanceLifecycleConfigSummary' => [ 'type' => 'structure', 'required' => [ 'NotebookInstanceLifecycleConfigName', 'NotebookInstanceLifecycleConfigArn', ], 'members' => [ 'NotebookInstanceLifecycleConfigName' => [ 'shape' => 'NotebookInstanceLifecycleConfigName', ], 'NotebookInstanceLifecycleConfigArn' => [ 'shape' => 'NotebookInstanceLifecycleConfigArn', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], 'LastModifiedTime' => [ 'shape' => 'LastModifiedTime', ], ], ], 'NotebookInstanceLifecycleConfigSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NotebookInstanceLifecycleConfigSummary', ], ], 'NotebookInstanceLifecycleHook' => [ 'type' => 'structure', 'members' => [ 'Content' => [ 'shape' => 'NotebookInstanceLifecycleConfigContent', ], ], ], 'NotebookInstanceName' => [ 'type' => 'string', 'max' => 63, 'pattern' => '^[a-zA-Z0-9](-*[a-zA-Z0-9])*', ], 'NotebookInstanceNameContains' => [ 'type' => 'string', 'max' => 63, 'pattern' => '[a-zA-Z0-9-]+', ], 'NotebookInstanceSortKey' => [ 'type' => 'string', 'enum' => [ 'Name', 'CreationTime', 'Status', ], ], 'NotebookInstanceSortOrder' => [ 'type' => 'string', 'enum' => [ 'Ascending', 'Descending', ], ], 'NotebookInstanceStatus' => [ 'type' => 'string', 'enum' => [ 'Pending', 'InService', 'Stopping', 'Stopped', 'Failed', 'Deleting', 'Updating', ], ], 'NotebookInstanceSummary' => [ 'type' => 'structure', 'required' => [ 'NotebookInstanceName', 'NotebookInstanceArn', ], 'members' => [ 'NotebookInstanceName' => [ 'shape' => 'NotebookInstanceName', ], 'NotebookInstanceArn' => [ 'shape' => 'NotebookInstanceArn', ], 'NotebookInstanceStatus' => [ 'shape' => 'NotebookInstanceStatus', ], 'Url' => [ 'shape' => 'NotebookInstanceUrl', ], 'InstanceType' => [ 'shape' => 'InstanceType', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], 'LastModifiedTime' => [ 'shape' => 'LastModifiedTime', ], 'NotebookInstanceLifecycleConfigName' => [ 'shape' => 'NotebookInstanceLifecycleConfigName', ], 'DefaultCodeRepository' => [ 'shape' => 'CodeRepositoryNameOrUrl', ], 'AdditionalCodeRepositories' => [ 'shape' => 'AdditionalCodeRepositoryNamesOrUrls', ], ], ], 'NotebookInstanceSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NotebookInstanceSummary', ], ], 'NotebookInstanceUrl' => [ 'type' => 'string', ], 'NotebookInstanceVolumeSizeInGB' => [ 'type' => 'integer', 'max' => 16384, 'min' => 5, ], 'NumberOfHumanWorkersPerDataObject' => [ 'type' => 'integer', 'max' => 9, 'min' => 1, ], 'ObjectiveStatus' => [ 'type' => 'string', 'enum' => [ 'Succeeded', 'Pending', 'Failed', ], ], 'ObjectiveStatusCounter' => [ 'type' => 'integer', 'min' => 0, ], 'ObjectiveStatusCounters' => [ 'type' => 'structure', 'members' => [ 'Succeeded' => [ 'shape' => 'ObjectiveStatusCounter', ], 'Pending' => [ 'shape' => 'ObjectiveStatusCounter', ], 'Failed' => [ 'shape' => 'ObjectiveStatusCounter', ], ], ], 'Operator' => [ 'type' => 'string', 'enum' => [ 'Equals', 'NotEquals', 'GreaterThan', 'GreaterThanOrEqualTo', 'LessThan', 'LessThanOrEqualTo', 'Contains', ], ], 'OrderKey' => [ 'type' => 'string', 'enum' => [ 'Ascending', 'Descending', ], ], 'OutputConfig' => [ 'type' => 'structure', 'required' => [ 'S3OutputLocation', 'TargetDevice', ], 'members' => [ 'S3OutputLocation' => [ 'shape' => 'S3Uri', ], 'TargetDevice' => [ 'shape' => 'TargetDevice', ], ], ], 'OutputDataConfig' => [ 'type' => 'structure', 'required' => [ 'S3OutputPath', ], 'members' => [ 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'S3OutputPath' => [ 'shape' => 'S3Uri', ], ], ], 'PaginationToken' => [ 'type' => 'string', 'max' => 8192, 'pattern' => '.*', ], 'ParameterKey' => [ 'type' => 'string', 'max' => 256, 'pattern' => '.*', ], 'ParameterName' => [ 'type' => 'string', 'max' => 256, 'pattern' => '[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}]*', ], 'ParameterRange' => [ 'type' => 'structure', 'members' => [ 'IntegerParameterRangeSpecification' => [ 'shape' => 'IntegerParameterRangeSpecification', ], 'ContinuousParameterRangeSpecification' => [ 'shape' => 'ContinuousParameterRangeSpecification', ], 'CategoricalParameterRangeSpecification' => [ 'shape' => 'CategoricalParameterRangeSpecification', ], ], ], 'ParameterRanges' => [ 'type' => 'structure', 'members' => [ 'IntegerParameterRanges' => [ 'shape' => 'IntegerParameterRanges', ], 'ContinuousParameterRanges' => [ 'shape' => 'ContinuousParameterRanges', ], 'CategoricalParameterRanges' => [ 'shape' => 'CategoricalParameterRanges', ], ], ], 'ParameterType' => [ 'type' => 'string', 'enum' => [ 'Integer', 'Continuous', 'Categorical', 'FreeText', ], ], 'ParameterValue' => [ 'type' => 'string', 'max' => 256, 'pattern' => '.*', ], 'ParameterValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParameterValue', ], 'max' => 20, 'min' => 1, ], 'ParentHyperParameterTuningJob' => [ 'type' => 'structure', 'members' => [ 'HyperParameterTuningJobName' => [ 'shape' => 'HyperParameterTuningJobName', ], ], ], 'ParentHyperParameterTuningJobs' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParentHyperParameterTuningJob', ], 'max' => 5, 'min' => 1, ], 'ProductId' => [ 'type' => 'string', 'max' => 256, 'pattern' => '^[a-zA-Z0-9](-*[a-zA-Z0-9])*$', ], 'ProductListings' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ProductionVariant' => [ 'type' => 'structure', 'required' => [ 'VariantName', 'ModelName', 'InitialInstanceCount', 'InstanceType', ], 'members' => [ 'VariantName' => [ 'shape' => 'VariantName', ], 'ModelName' => [ 'shape' => 'ModelName', ], 'InitialInstanceCount' => [ 'shape' => 'TaskCount', ], 'InstanceType' => [ 'shape' => 'ProductionVariantInstanceType', ], 'InitialVariantWeight' => [ 'shape' => 'VariantWeight', ], 'AcceleratorType' => [ 'shape' => 'ProductionVariantAcceleratorType', ], ], ], 'ProductionVariantAcceleratorType' => [ 'type' => 'string', 'enum' => [ 'ml.eia1.medium', 'ml.eia1.large', 'ml.eia1.xlarge', ], ], 'ProductionVariantInstanceType' => [ 'type' => 'string', 'enum' => [ 'ml.t2.medium', 'ml.t2.large', 'ml.t2.xlarge', 'ml.t2.2xlarge', 'ml.m4.xlarge', 'ml.m4.2xlarge', 'ml.m4.4xlarge', 'ml.m4.10xlarge', 'ml.m4.16xlarge', 'ml.m5.large', 'ml.m5.xlarge', 'ml.m5.2xlarge', 'ml.m5.4xlarge', 'ml.m5.12xlarge', 'ml.m5.24xlarge', 'ml.c4.large', 'ml.c4.xlarge', 'ml.c4.2xlarge', 'ml.c4.4xlarge', 'ml.c4.8xlarge', 'ml.p2.xlarge', 'ml.p2.8xlarge', 'ml.p2.16xlarge', 'ml.p3.2xlarge', 'ml.p3.8xlarge', 'ml.p3.16xlarge', 'ml.c5.large', 'ml.c5.xlarge', 'ml.c5.2xlarge', 'ml.c5.4xlarge', 'ml.c5.9xlarge', 'ml.c5.18xlarge', ], ], 'ProductionVariantList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProductionVariant', ], 'min' => 1, ], 'ProductionVariantSummary' => [ 'type' => 'structure', 'required' => [ 'VariantName', ], 'members' => [ 'VariantName' => [ 'shape' => 'VariantName', ], 'DeployedImages' => [ 'shape' => 'DeployedImages', ], 'CurrentWeight' => [ 'shape' => 'VariantWeight', ], 'DesiredWeight' => [ 'shape' => 'VariantWeight', ], 'CurrentInstanceCount' => [ 'shape' => 'TaskCount', ], 'DesiredInstanceCount' => [ 'shape' => 'TaskCount', ], ], ], 'ProductionVariantSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProductionVariantSummary', ], 'min' => 1, ], 'PropertyNameHint' => [ 'type' => 'string', 'max' => 100, 'min' => 0, 'pattern' => '.*', ], 'PropertyNameQuery' => [ 'type' => 'structure', 'required' => [ 'PropertyNameHint', ], 'members' => [ 'PropertyNameHint' => [ 'shape' => 'PropertyNameHint', ], ], ], 'PropertyNameSuggestion' => [ 'type' => 'structure', 'members' => [ 'PropertyName' => [ 'shape' => 'ResourcePropertyName', ], ], ], 'PropertyNameSuggestionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PropertyNameSuggestion', ], ], 'PublicWorkforceTaskPrice' => [ 'type' => 'structure', 'members' => [ 'AmountInUsd' => [ 'shape' => 'USD', ], ], ], 'RealtimeInferenceInstanceTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProductionVariantInstanceType', ], ], 'RecordWrapper' => [ 'type' => 'string', 'enum' => [ 'None', 'RecordIO', ], ], 'RenderUiTemplateRequest' => [ 'type' => 'structure', 'required' => [ 'UiTemplate', 'Task', 'RoleArn', ], 'members' => [ 'UiTemplate' => [ 'shape' => 'UiTemplate', ], 'Task' => [ 'shape' => 'RenderableTask', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], ], ], 'RenderUiTemplateResponse' => [ 'type' => 'structure', 'required' => [ 'RenderedContent', 'Errors', ], 'members' => [ 'RenderedContent' => [ 'shape' => 'String', ], 'Errors' => [ 'shape' => 'RenderingErrorList', ], ], ], 'RenderableTask' => [ 'type' => 'structure', 'required' => [ 'Input', ], 'members' => [ 'Input' => [ 'shape' => 'TaskInput', ], ], ], 'RenderingError' => [ 'type' => 'structure', 'required' => [ 'Code', 'Message', ], 'members' => [ 'Code' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], ], ], 'RenderingErrorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RenderingError', ], ], 'ResourceArn' => [ 'type' => 'string', 'max' => 256, 'pattern' => 'arn:.*', ], 'ResourceConfig' => [ 'type' => 'structure', 'required' => [ 'InstanceType', 'InstanceCount', 'VolumeSizeInGB', ], 'members' => [ 'InstanceType' => [ 'shape' => 'TrainingInstanceType', ], 'InstanceCount' => [ 'shape' => 'TrainingInstanceCount', ], 'VolumeSizeInGB' => [ 'shape' => 'VolumeSizeInGB', ], 'VolumeKmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'ResourceInUse' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'FailureReason', ], ], 'exception' => true, ], 'ResourceLimitExceeded' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'FailureReason', ], ], 'exception' => true, ], 'ResourceLimits' => [ 'type' => 'structure', 'required' => [ 'MaxNumberOfTrainingJobs', 'MaxParallelTrainingJobs', ], 'members' => [ 'MaxNumberOfTrainingJobs' => [ 'shape' => 'MaxNumberOfTrainingJobs', ], 'MaxParallelTrainingJobs' => [ 'shape' => 'MaxParallelTrainingJobs', ], ], ], 'ResourceNotFound' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'FailureReason', ], ], 'exception' => true, ], 'ResourcePropertyName' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '.+', ], 'ResourceType' => [ 'type' => 'string', 'enum' => [ 'TrainingJob', ], ], 'ResponseMIMEType' => [ 'type' => 'string', 'max' => 1024, 'pattern' => '^[-\\w]+\\/.+$', ], 'ResponseMIMETypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResponseMIMEType', ], ], 'RoleArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => '^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$', ], 'RootAccess' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'S3DataDistribution' => [ 'type' => 'string', 'enum' => [ 'FullyReplicated', 'ShardedByS3Key', ], ], 'S3DataSource' => [ 'type' => 'structure', 'required' => [ 'S3DataType', 'S3Uri', ], 'members' => [ 'S3DataType' => [ 'shape' => 'S3DataType', ], 'S3Uri' => [ 'shape' => 'S3Uri', ], 'S3DataDistributionType' => [ 'shape' => 'S3DataDistribution', ], 'AttributeNames' => [ 'shape' => 'AttributeNames', ], ], ], 'S3DataType' => [ 'type' => 'string', 'enum' => [ 'ManifestFile', 'S3Prefix', 'AugmentedManifestFile', ], ], 'S3Uri' => [ 'type' => 'string', 'max' => 1024, 'pattern' => '^(https|s3)://([^/]+)/?(.*)$', ], 'SearchExpression' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', ], 'NestedFilters' => [ 'shape' => 'NestedFiltersList', ], 'SubExpressions' => [ 'shape' => 'SearchExpressionList', ], 'Operator' => [ 'shape' => 'BooleanOperator', ], ], ], 'SearchExpressionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SearchExpression', ], 'max' => 20, 'min' => 1, ], 'SearchRecord' => [ 'type' => 'structure', 'members' => [ 'TrainingJob' => [ 'shape' => 'TrainingJob', ], ], ], 'SearchRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', ], 'members' => [ 'Resource' => [ 'shape' => 'ResourceType', ], 'SearchExpression' => [ 'shape' => 'SearchExpression', ], 'SortBy' => [ 'shape' => 'ResourcePropertyName', ], 'SortOrder' => [ 'shape' => 'SearchSortOrder', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], ], ], 'SearchResponse' => [ 'type' => 'structure', 'members' => [ 'Results' => [ 'shape' => 'SearchResultsList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'SearchResultsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SearchRecord', ], ], 'SearchSortOrder' => [ 'type' => 'string', 'enum' => [ 'Ascending', 'Descending', ], ], 'SecondaryStatus' => [ 'type' => 'string', 'enum' => [ 'Starting', 'LaunchingMLInstances', 'PreparingTrainingStack', 'Downloading', 'DownloadingTrainingImage', 'Training', 'Uploading', 'Stopping', 'Stopped', 'MaxRuntimeExceeded', 'Completed', 'Failed', ], ], 'SecondaryStatusTransition' => [ 'type' => 'structure', 'required' => [ 'Status', 'StartTime', ], 'members' => [ 'Status' => [ 'shape' => 'SecondaryStatus', ], 'StartTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], 'StatusMessage' => [ 'shape' => 'StatusMessage', ], ], ], 'SecondaryStatusTransitions' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryStatusTransition', ], ], 'SecretArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:aws[a-z\\-]*:secretsmanager:[a-z0-9\\-]*:[0-9]{12}:secret:.*', ], 'SecurityGroupId' => [ 'type' => 'string', 'max' => 32, 'pattern' => '[-0-9a-zA-Z]+', ], 'SecurityGroupIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', ], 'max' => 5, ], 'Seed' => [ 'type' => 'long', ], 'SessionExpirationDurationInSeconds' => [ 'type' => 'integer', 'max' => 43200, 'min' => 1800, ], 'ShuffleConfig' => [ 'type' => 'structure', 'required' => [ 'Seed', ], 'members' => [ 'Seed' => [ 'shape' => 'Seed', ], ], ], 'SortBy' => [ 'type' => 'string', 'enum' => [ 'Name', 'CreationTime', 'Status', ], ], 'SortOrder' => [ 'type' => 'string', 'enum' => [ 'Ascending', 'Descending', ], ], 'SourceAlgorithm' => [ 'type' => 'structure', 'required' => [ 'AlgorithmName', ], 'members' => [ 'ModelDataUrl' => [ 'shape' => 'Url', ], 'AlgorithmName' => [ 'shape' => 'ArnOrName', ], ], ], 'SourceAlgorithmList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SourceAlgorithm', ], 'max' => 1, 'min' => 1, ], 'SourceAlgorithmSpecification' => [ 'type' => 'structure', 'required' => [ 'SourceAlgorithms', ], 'members' => [ 'SourceAlgorithms' => [ 'shape' => 'SourceAlgorithmList', ], ], ], 'SplitType' => [ 'type' => 'string', 'enum' => [ 'None', 'Line', 'RecordIO', 'TFRecord', ], ], 'StartNotebookInstanceInput' => [ 'type' => 'structure', 'required' => [ 'NotebookInstanceName', ], 'members' => [ 'NotebookInstanceName' => [ 'shape' => 'NotebookInstanceName', ], ], ], 'StatusMessage' => [ 'type' => 'string', ], 'StopCompilationJobRequest' => [ 'type' => 'structure', 'required' => [ 'CompilationJobName', ], 'members' => [ 'CompilationJobName' => [ 'shape' => 'EntityName', ], ], ], 'StopHyperParameterTuningJobRequest' => [ 'type' => 'structure', 'required' => [ 'HyperParameterTuningJobName', ], 'members' => [ 'HyperParameterTuningJobName' => [ 'shape' => 'HyperParameterTuningJobName', ], ], ], 'StopLabelingJobRequest' => [ 'type' => 'structure', 'required' => [ 'LabelingJobName', ], 'members' => [ 'LabelingJobName' => [ 'shape' => 'LabelingJobName', ], ], ], 'StopNotebookInstanceInput' => [ 'type' => 'structure', 'required' => [ 'NotebookInstanceName', ], 'members' => [ 'NotebookInstanceName' => [ 'shape' => 'NotebookInstanceName', ], ], ], 'StopTrainingJobRequest' => [ 'type' => 'structure', 'required' => [ 'TrainingJobName', ], 'members' => [ 'TrainingJobName' => [ 'shape' => 'TrainingJobName', ], ], ], 'StopTransformJobRequest' => [ 'type' => 'structure', 'required' => [ 'TransformJobName', ], 'members' => [ 'TransformJobName' => [ 'shape' => 'TransformJobName', ], ], ], 'StoppingCondition' => [ 'type' => 'structure', 'members' => [ 'MaxRuntimeInSeconds' => [ 'shape' => 'MaxRuntimeInSeconds', ], ], ], 'String' => [ 'type' => 'string', ], 'String200' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'pattern' => '.+', ], 'SubnetId' => [ 'type' => 'string', 'max' => 32, 'pattern' => '[-0-9a-zA-Z]+', ], 'Subnets' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', ], 'max' => 16, 'min' => 1, ], 'SubscribedWorkteam' => [ 'type' => 'structure', 'required' => [ 'WorkteamArn', ], 'members' => [ 'WorkteamArn' => [ 'shape' => 'WorkteamArn', ], 'MarketplaceTitle' => [ 'shape' => 'String200', ], 'SellerName' => [ 'shape' => 'String', ], 'MarketplaceDescription' => [ 'shape' => 'String200', ], 'ListingId' => [ 'shape' => 'String', ], ], ], 'SubscribedWorkteams' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubscribedWorkteam', ], ], 'Success' => [ 'type' => 'boolean', ], 'SuggestionQuery' => [ 'type' => 'structure', 'members' => [ 'PropertyNameQuery' => [ 'shape' => 'PropertyNameQuery', ], ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 50, 'min' => 1, ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 50, 'min' => 0, ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TargetDevice' => [ 'type' => 'string', 'enum' => [ 'ml_m4', 'ml_m5', 'ml_c4', 'ml_c5', 'ml_p2', 'ml_p3', 'jetson_tx1', 'jetson_tx2', 'rasp3b', 'deeplens', 'rk3399', 'rk3288', ], ], 'TaskAvailabilityLifetimeInSeconds' => [ 'type' => 'integer', 'max' => 864000, 'min' => 1, ], 'TaskCount' => [ 'type' => 'integer', 'min' => 1, ], 'TaskDescription' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '.+', ], 'TaskInput' => [ 'type' => 'string', 'max' => 128000, 'min' => 2, 'pattern' => '[\\S\\s]+', ], 'TaskKeyword' => [ 'type' => 'string', 'max' => 30, 'min' => 1, 'pattern' => '^[A-Za-z0-9]+( [A-Za-z0-9]+)*$', ], 'TaskKeywords' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskKeyword', ], 'max' => 5, 'min' => 1, ], 'TaskTimeLimitInSeconds' => [ 'type' => 'integer', 'max' => 3600, 'min' => 1, ], 'TaskTitle' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[\\t\\n\\r -\\uD7FF\\uE000-\\uFFFD]*$', ], 'TemplateContent' => [ 'type' => 'string', 'max' => 128000, 'min' => 1, 'pattern' => '[\\S\\s]+', ], 'TenthFractionsOfACent' => [ 'type' => 'integer', 'max' => 9, 'min' => 0, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TrainingInputMode' => [ 'type' => 'string', 'enum' => [ 'Pipe', 'File', ], ], 'TrainingInstanceCount' => [ 'type' => 'integer', 'min' => 1, ], 'TrainingInstanceType' => [ 'type' => 'string', 'enum' => [ 'ml.m4.xlarge', 'ml.m4.2xlarge', 'ml.m4.4xlarge', 'ml.m4.10xlarge', 'ml.m4.16xlarge', 'ml.m5.large', 'ml.m5.xlarge', 'ml.m5.2xlarge', 'ml.m5.4xlarge', 'ml.m5.12xlarge', 'ml.m5.24xlarge', 'ml.c4.xlarge', 'ml.c4.2xlarge', 'ml.c4.4xlarge', 'ml.c4.8xlarge', 'ml.p2.xlarge', 'ml.p2.8xlarge', 'ml.p2.16xlarge', 'ml.p3.2xlarge', 'ml.p3.8xlarge', 'ml.p3.16xlarge', 'ml.c5.xlarge', 'ml.c5.2xlarge', 'ml.c5.4xlarge', 'ml.c5.9xlarge', 'ml.c5.18xlarge', ], ], 'TrainingInstanceTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrainingInstanceType', ], ], 'TrainingJob' => [ 'type' => 'structure', 'members' => [ 'TrainingJobName' => [ 'shape' => 'TrainingJobName', ], 'TrainingJobArn' => [ 'shape' => 'TrainingJobArn', ], 'TuningJobArn' => [ 'shape' => 'HyperParameterTuningJobArn', ], 'LabelingJobArn' => [ 'shape' => 'LabelingJobArn', ], 'ModelArtifacts' => [ 'shape' => 'ModelArtifacts', ], 'TrainingJobStatus' => [ 'shape' => 'TrainingJobStatus', ], 'SecondaryStatus' => [ 'shape' => 'SecondaryStatus', ], 'FailureReason' => [ 'shape' => 'FailureReason', ], 'HyperParameters' => [ 'shape' => 'HyperParameters', ], 'AlgorithmSpecification' => [ 'shape' => 'AlgorithmSpecification', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'InputDataConfig' => [ 'shape' => 'InputDataConfig', ], 'OutputDataConfig' => [ 'shape' => 'OutputDataConfig', ], 'ResourceConfig' => [ 'shape' => 'ResourceConfig', ], 'VpcConfig' => [ 'shape' => 'VpcConfig', ], 'StoppingCondition' => [ 'shape' => 'StoppingCondition', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'TrainingStartTime' => [ 'shape' => 'Timestamp', ], 'TrainingEndTime' => [ 'shape' => 'Timestamp', ], 'LastModifiedTime' => [ 'shape' => 'Timestamp', ], 'SecondaryStatusTransitions' => [ 'shape' => 'SecondaryStatusTransitions', ], 'FinalMetricDataList' => [ 'shape' => 'FinalMetricDataList', ], 'EnableNetworkIsolation' => [ 'shape' => 'Boolean', ], 'EnableInterContainerTrafficEncryption' => [ 'shape' => 'Boolean', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TrainingJobArn' => [ 'type' => 'string', 'max' => 256, 'pattern' => 'arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:training-job/.*', ], 'TrainingJobDefinition' => [ 'type' => 'structure', 'required' => [ 'TrainingInputMode', 'InputDataConfig', 'OutputDataConfig', 'ResourceConfig', 'StoppingCondition', ], 'members' => [ 'TrainingInputMode' => [ 'shape' => 'TrainingInputMode', ], 'HyperParameters' => [ 'shape' => 'HyperParameters', ], 'InputDataConfig' => [ 'shape' => 'InputDataConfig', ], 'OutputDataConfig' => [ 'shape' => 'OutputDataConfig', ], 'ResourceConfig' => [ 'shape' => 'ResourceConfig', ], 'StoppingCondition' => [ 'shape' => 'StoppingCondition', ], ], ], 'TrainingJobEarlyStoppingType' => [ 'type' => 'string', 'enum' => [ 'Off', 'Auto', ], ], 'TrainingJobName' => [ 'type' => 'string', 'max' => 63, 'min' => 1, 'pattern' => '^[a-zA-Z0-9](-*[a-zA-Z0-9])*', ], 'TrainingJobSortByOptions' => [ 'type' => 'string', 'enum' => [ 'Name', 'CreationTime', 'Status', 'FinalObjectiveMetricValue', ], ], 'TrainingJobStatus' => [ 'type' => 'string', 'enum' => [ 'InProgress', 'Completed', 'Failed', 'Stopping', 'Stopped', ], ], 'TrainingJobStatusCounter' => [ 'type' => 'integer', 'min' => 0, ], 'TrainingJobStatusCounters' => [ 'type' => 'structure', 'members' => [ 'Completed' => [ 'shape' => 'TrainingJobStatusCounter', ], 'InProgress' => [ 'shape' => 'TrainingJobStatusCounter', ], 'RetryableError' => [ 'shape' => 'TrainingJobStatusCounter', ], 'NonRetryableError' => [ 'shape' => 'TrainingJobStatusCounter', ], 'Stopped' => [ 'shape' => 'TrainingJobStatusCounter', ], ], ], 'TrainingJobSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrainingJobSummary', ], ], 'TrainingJobSummary' => [ 'type' => 'structure', 'required' => [ 'TrainingJobName', 'TrainingJobArn', 'CreationTime', 'TrainingJobStatus', ], 'members' => [ 'TrainingJobName' => [ 'shape' => 'TrainingJobName', ], 'TrainingJobArn' => [ 'shape' => 'TrainingJobArn', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'TrainingEndTime' => [ 'shape' => 'Timestamp', ], 'LastModifiedTime' => [ 'shape' => 'Timestamp', ], 'TrainingJobStatus' => [ 'shape' => 'TrainingJobStatus', ], ], ], 'TrainingSpecification' => [ 'type' => 'structure', 'required' => [ 'TrainingImage', 'SupportedTrainingInstanceTypes', 'TrainingChannels', ], 'members' => [ 'TrainingImage' => [ 'shape' => 'Image', ], 'TrainingImageDigest' => [ 'shape' => 'ImageDigest', ], 'SupportedHyperParameters' => [ 'shape' => 'HyperParameterSpecifications', ], 'SupportedTrainingInstanceTypes' => [ 'shape' => 'TrainingInstanceTypes', ], 'SupportsDistributedTraining' => [ 'shape' => 'Boolean', ], 'MetricDefinitions' => [ 'shape' => 'MetricDefinitionList', ], 'TrainingChannels' => [ 'shape' => 'ChannelSpecifications', ], 'SupportedTuningJobObjectiveMetrics' => [ 'shape' => 'HyperParameterTuningJobObjectives', ], ], ], 'TransformDataSource' => [ 'type' => 'structure', 'required' => [ 'S3DataSource', ], 'members' => [ 'S3DataSource' => [ 'shape' => 'TransformS3DataSource', ], ], ], 'TransformEnvironmentKey' => [ 'type' => 'string', 'max' => 1024, 'pattern' => '[a-zA-Z_][a-zA-Z0-9_]*', ], 'TransformEnvironmentMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TransformEnvironmentKey', ], 'value' => [ 'shape' => 'TransformEnvironmentValue', ], 'max' => 16, ], 'TransformEnvironmentValue' => [ 'type' => 'string', 'max' => 10240, 'pattern' => '[\\S\\s]*', ], 'TransformInput' => [ 'type' => 'structure', 'required' => [ 'DataSource', ], 'members' => [ 'DataSource' => [ 'shape' => 'TransformDataSource', ], 'ContentType' => [ 'shape' => 'ContentType', ], 'CompressionType' => [ 'shape' => 'CompressionType', ], 'SplitType' => [ 'shape' => 'SplitType', ], ], ], 'TransformInstanceCount' => [ 'type' => 'integer', 'min' => 1, ], 'TransformInstanceType' => [ 'type' => 'string', 'enum' => [ 'ml.m4.xlarge', 'ml.m4.2xlarge', 'ml.m4.4xlarge', 'ml.m4.10xlarge', 'ml.m4.16xlarge', 'ml.c4.xlarge', 'ml.c4.2xlarge', 'ml.c4.4xlarge', 'ml.c4.8xlarge', 'ml.p2.xlarge', 'ml.p2.8xlarge', 'ml.p2.16xlarge', 'ml.p3.2xlarge', 'ml.p3.8xlarge', 'ml.p3.16xlarge', 'ml.c5.xlarge', 'ml.c5.2xlarge', 'ml.c5.4xlarge', 'ml.c5.9xlarge', 'ml.c5.18xlarge', 'ml.m5.large', 'ml.m5.xlarge', 'ml.m5.2xlarge', 'ml.m5.4xlarge', 'ml.m5.12xlarge', 'ml.m5.24xlarge', ], ], 'TransformInstanceTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransformInstanceType', ], 'min' => 1, ], 'TransformJobArn' => [ 'type' => 'string', 'max' => 256, 'pattern' => 'arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:transform-job/.*', ], 'TransformJobDefinition' => [ 'type' => 'structure', 'required' => [ 'TransformInput', 'TransformOutput', 'TransformResources', ], 'members' => [ 'MaxConcurrentTransforms' => [ 'shape' => 'MaxConcurrentTransforms', ], 'MaxPayloadInMB' => [ 'shape' => 'MaxPayloadInMB', ], 'BatchStrategy' => [ 'shape' => 'BatchStrategy', ], 'Environment' => [ 'shape' => 'TransformEnvironmentMap', ], 'TransformInput' => [ 'shape' => 'TransformInput', ], 'TransformOutput' => [ 'shape' => 'TransformOutput', ], 'TransformResources' => [ 'shape' => 'TransformResources', ], ], ], 'TransformJobName' => [ 'type' => 'string', 'max' => 63, 'min' => 1, 'pattern' => '^[a-zA-Z0-9](-*[a-zA-Z0-9])*', ], 'TransformJobStatus' => [ 'type' => 'string', 'enum' => [ 'InProgress', 'Completed', 'Failed', 'Stopping', 'Stopped', ], ], 'TransformJobSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransformJobSummary', ], ], 'TransformJobSummary' => [ 'type' => 'structure', 'required' => [ 'TransformJobName', 'TransformJobArn', 'CreationTime', 'TransformJobStatus', ], 'members' => [ 'TransformJobName' => [ 'shape' => 'TransformJobName', ], 'TransformJobArn' => [ 'shape' => 'TransformJobArn', ], 'CreationTime' => [ 'shape' => 'Timestamp', ], 'TransformEndTime' => [ 'shape' => 'Timestamp', ], 'LastModifiedTime' => [ 'shape' => 'Timestamp', ], 'TransformJobStatus' => [ 'shape' => 'TransformJobStatus', ], 'FailureReason' => [ 'shape' => 'FailureReason', ], ], ], 'TransformOutput' => [ 'type' => 'structure', 'required' => [ 'S3OutputPath', ], 'members' => [ 'S3OutputPath' => [ 'shape' => 'S3Uri', ], 'Accept' => [ 'shape' => 'Accept', ], 'AssembleWith' => [ 'shape' => 'AssemblyType', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'TransformResources' => [ 'type' => 'structure', 'required' => [ 'InstanceType', 'InstanceCount', ], 'members' => [ 'InstanceType' => [ 'shape' => 'TransformInstanceType', ], 'InstanceCount' => [ 'shape' => 'TransformInstanceCount', ], 'VolumeKmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'TransformS3DataSource' => [ 'type' => 'structure', 'required' => [ 'S3DataType', 'S3Uri', ], 'members' => [ 'S3DataType' => [ 'shape' => 'S3DataType', ], 'S3Uri' => [ 'shape' => 'S3Uri', ], ], ], 'USD' => [ 'type' => 'structure', 'members' => [ 'Dollars' => [ 'shape' => 'Dollars', ], 'Cents' => [ 'shape' => 'Cents', ], 'TenthFractionsOfACent' => [ 'shape' => 'TenthFractionsOfACent', ], ], ], 'UiConfig' => [ 'type' => 'structure', 'required' => [ 'UiTemplateS3Uri', ], 'members' => [ 'UiTemplateS3Uri' => [ 'shape' => 'S3Uri', ], ], ], 'UiTemplate' => [ 'type' => 'structure', 'required' => [ 'Content', ], 'members' => [ 'Content' => [ 'shape' => 'TemplateContent', ], ], ], 'UpdateCodeRepositoryInput' => [ 'type' => 'structure', 'required' => [ 'CodeRepositoryName', ], 'members' => [ 'CodeRepositoryName' => [ 'shape' => 'EntityName', ], 'GitConfig' => [ 'shape' => 'GitConfigForUpdate', ], ], ], 'UpdateCodeRepositoryOutput' => [ 'type' => 'structure', 'required' => [ 'CodeRepositoryArn', ], 'members' => [ 'CodeRepositoryArn' => [ 'shape' => 'CodeRepositoryArn', ], ], ], 'UpdateEndpointInput' => [ 'type' => 'structure', 'required' => [ 'EndpointName', 'EndpointConfigName', ], 'members' => [ 'EndpointName' => [ 'shape' => 'EndpointName', ], 'EndpointConfigName' => [ 'shape' => 'EndpointConfigName', ], ], ], 'UpdateEndpointOutput' => [ 'type' => 'structure', 'required' => [ 'EndpointArn', ], 'members' => [ 'EndpointArn' => [ 'shape' => 'EndpointArn', ], ], ], 'UpdateEndpointWeightsAndCapacitiesInput' => [ 'type' => 'structure', 'required' => [ 'EndpointName', 'DesiredWeightsAndCapacities', ], 'members' => [ 'EndpointName' => [ 'shape' => 'EndpointName', ], 'DesiredWeightsAndCapacities' => [ 'shape' => 'DesiredWeightAndCapacityList', ], ], ], 'UpdateEndpointWeightsAndCapacitiesOutput' => [ 'type' => 'structure', 'required' => [ 'EndpointArn', ], 'members' => [ 'EndpointArn' => [ 'shape' => 'EndpointArn', ], ], ], 'UpdateNotebookInstanceInput' => [ 'type' => 'structure', 'required' => [ 'NotebookInstanceName', ], 'members' => [ 'NotebookInstanceName' => [ 'shape' => 'NotebookInstanceName', ], 'InstanceType' => [ 'shape' => 'InstanceType', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'LifecycleConfigName' => [ 'shape' => 'NotebookInstanceLifecycleConfigName', ], 'DisassociateLifecycleConfig' => [ 'shape' => 'DisassociateNotebookInstanceLifecycleConfig', ], 'VolumeSizeInGB' => [ 'shape' => 'NotebookInstanceVolumeSizeInGB', ], 'DefaultCodeRepository' => [ 'shape' => 'CodeRepositoryNameOrUrl', ], 'AdditionalCodeRepositories' => [ 'shape' => 'AdditionalCodeRepositoryNamesOrUrls', ], 'AcceleratorTypes' => [ 'shape' => 'NotebookInstanceAcceleratorTypes', ], 'DisassociateAcceleratorTypes' => [ 'shape' => 'DisassociateNotebookInstanceAcceleratorTypes', ], 'DisassociateDefaultCodeRepository' => [ 'shape' => 'DisassociateDefaultCodeRepository', ], 'DisassociateAdditionalCodeRepositories' => [ 'shape' => 'DisassociateAdditionalCodeRepositories', ], 'RootAccess' => [ 'shape' => 'RootAccess', ], ], ], 'UpdateNotebookInstanceLifecycleConfigInput' => [ 'type' => 'structure', 'required' => [ 'NotebookInstanceLifecycleConfigName', ], 'members' => [ 'NotebookInstanceLifecycleConfigName' => [ 'shape' => 'NotebookInstanceLifecycleConfigName', ], 'OnCreate' => [ 'shape' => 'NotebookInstanceLifecycleConfigList', ], 'OnStart' => [ 'shape' => 'NotebookInstanceLifecycleConfigList', ], ], ], 'UpdateNotebookInstanceLifecycleConfigOutput' => [ 'type' => 'structure', 'members' => [], ], 'UpdateNotebookInstanceOutput' => [ 'type' => 'structure', 'members' => [], ], 'UpdateWorkteamRequest' => [ 'type' => 'structure', 'required' => [ 'WorkteamName', ], 'members' => [ 'WorkteamName' => [ 'shape' => 'WorkteamName', ], 'MemberDefinitions' => [ 'shape' => 'MemberDefinitions', ], 'Description' => [ 'shape' => 'String200', ], ], ], 'UpdateWorkteamResponse' => [ 'type' => 'structure', 'required' => [ 'Workteam', ], 'members' => [ 'Workteam' => [ 'shape' => 'Workteam', ], ], ], 'Url' => [ 'type' => 'string', 'max' => 1024, 'pattern' => '^(https|s3)://([^/]+)/?(.*)$', ], 'VariantName' => [ 'type' => 'string', 'max' => 63, 'pattern' => '^[a-zA-Z0-9](-*[a-zA-Z0-9])*', ], 'VariantWeight' => [ 'type' => 'float', 'min' => 0, ], 'VolumeSizeInGB' => [ 'type' => 'integer', 'min' => 1, ], 'VpcConfig' => [ 'type' => 'structure', 'required' => [ 'SecurityGroupIds', 'Subnets', ], 'members' => [ 'SecurityGroupIds' => [ 'shape' => 'VpcSecurityGroupIds', ], 'Subnets' => [ 'shape' => 'Subnets', ], ], ], 'VpcSecurityGroupIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', ], 'max' => 5, 'min' => 1, ], 'Workteam' => [ 'type' => 'structure', 'required' => [ 'WorkteamName', 'MemberDefinitions', 'WorkteamArn', 'Description', ], 'members' => [ 'WorkteamName' => [ 'shape' => 'WorkteamName', ], 'MemberDefinitions' => [ 'shape' => 'MemberDefinitions', ], 'WorkteamArn' => [ 'shape' => 'WorkteamArn', ], 'ProductListingIds' => [ 'shape' => 'ProductListings', ], 'Description' => [ 'shape' => 'String200', ], 'SubDomain' => [ 'shape' => 'String', ], 'CreateDate' => [ 'shape' => 'Timestamp', ], 'LastUpdatedDate' => [ 'shape' => 'Timestamp', ], ], ], 'WorkteamArn' => [ 'type' => 'string', 'max' => 256, 'pattern' => 'arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:workteam/.*', ], 'WorkteamName' => [ 'type' => 'string', 'max' => 63, 'min' => 1, 'pattern' => '^[a-zA-Z0-9](-*[a-zA-Z0-9])*', ], 'Workteams' => [ 'type' => 'list', 'member' => [ 'shape' => 'Workteam', ], ], ],]; diff --git a/lib/aws/Aws/data/sagemaker/2017-07-24/paginators-1.json.php b/lib/aws/Aws/data/sagemaker/2017-07-24/paginators-1.json.php new file mode 100644 index 0000000..13eda03 --- /dev/null +++ b/lib/aws/Aws/data/sagemaker/2017-07-24/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/sagemaker/2017-07-24/paginators-1.json +return [ 'pagination' => [ 'ListCompilationJobs' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListEndpointConfigs' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListEndpoints' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListHyperParameterTuningJobs' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListLabelingJobs' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListLabelingJobsForWorkteam' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListModels' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListNotebookInstanceLifecycleConfigs' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListNotebookInstances' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListSubscribedWorkteams' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListTags' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListTrainingJobs' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListTrainingJobsForHyperParameterTuningJob' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListTransformJobs' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListWorkteams' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'Search' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/sagemaker/2017-07-24/waiters-2.json.php b/lib/aws/Aws/data/sagemaker/2017-07-24/waiters-2.json.php new file mode 100644 index 0000000..5b4c484 --- /dev/null +++ b/lib/aws/Aws/data/sagemaker/2017-07-24/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/sagemaker/2017-07-24/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'NotebookInstanceInService' => [ 'delay' => 30, 'maxAttempts' => 60, 'operation' => 'DescribeNotebookInstance', 'acceptors' => [ [ 'expected' => 'InService', 'matcher' => 'path', 'state' => 'success', 'argument' => 'NotebookInstanceStatus', ], [ 'expected' => 'Failed', 'matcher' => 'path', 'state' => 'failure', 'argument' => 'NotebookInstanceStatus', ], ], ], 'NotebookInstanceStopped' => [ 'delay' => 30, 'operation' => 'DescribeNotebookInstance', 'maxAttempts' => 60, 'acceptors' => [ [ 'expected' => 'Stopped', 'matcher' => 'path', 'state' => 'success', 'argument' => 'NotebookInstanceStatus', ], [ 'expected' => 'Failed', 'matcher' => 'path', 'state' => 'failure', 'argument' => 'NotebookInstanceStatus', ], ], ], 'NotebookInstanceDeleted' => [ 'delay' => 30, 'maxAttempts' => 60, 'operation' => 'DescribeNotebookInstance', 'acceptors' => [ [ 'expected' => 'ValidationException', 'matcher' => 'error', 'state' => 'success', ], [ 'expected' => 'Failed', 'matcher' => 'path', 'state' => 'failure', 'argument' => 'NotebookInstanceStatus', ], ], ], 'TrainingJobCompletedOrStopped' => [ 'delay' => 120, 'maxAttempts' => 180, 'operation' => 'DescribeTrainingJob', 'acceptors' => [ [ 'expected' => 'Completed', 'matcher' => 'path', 'state' => 'success', 'argument' => 'TrainingJobStatus', ], [ 'expected' => 'Stopped', 'matcher' => 'path', 'state' => 'success', 'argument' => 'TrainingJobStatus', ], [ 'expected' => 'Failed', 'matcher' => 'path', 'state' => 'failure', 'argument' => 'TrainingJobStatus', ], [ 'expected' => 'ValidationException', 'matcher' => 'error', 'state' => 'failure', ], ], ], 'EndpointInService' => [ 'delay' => 30, 'maxAttempts' => 120, 'operation' => 'DescribeEndpoint', 'acceptors' => [ [ 'expected' => 'InService', 'matcher' => 'path', 'state' => 'success', 'argument' => 'EndpointStatus', ], [ 'expected' => 'Failed', 'matcher' => 'path', 'state' => 'failure', 'argument' => 'EndpointStatus', ], [ 'expected' => 'ValidationException', 'matcher' => 'error', 'state' => 'failure', ], ], ], 'EndpointDeleted' => [ 'delay' => 30, 'maxAttempts' => 60, 'operation' => 'DescribeEndpoint', 'acceptors' => [ [ 'expected' => 'ValidationException', 'matcher' => 'error', 'state' => 'success', ], [ 'expected' => 'Failed', 'matcher' => 'path', 'state' => 'failure', 'argument' => 'EndpointStatus', ], ], ], 'TransformJobCompletedOrStopped' => [ 'delay' => 60, 'maxAttempts' => 60, 'operation' => 'DescribeTransformJob', 'acceptors' => [ [ 'expected' => 'Completed', 'matcher' => 'path', 'state' => 'success', 'argument' => 'TransformJobStatus', ], [ 'expected' => 'Stopped', 'matcher' => 'path', 'state' => 'success', 'argument' => 'TransformJobStatus', ], [ 'expected' => 'Failed', 'matcher' => 'path', 'state' => 'failure', 'argument' => 'TransformJobStatus', ], [ 'expected' => 'ValidationException', 'matcher' => 'error', 'state' => 'failure', ], ], ], ],]; diff --git a/lib/aws/Aws/data/secretsmanager/2017-10-17/api-2.json.php b/lib/aws/Aws/data/secretsmanager/2017-10-17/api-2.json.php new file mode 100644 index 0000000..3fb3a45 --- /dev/null +++ b/lib/aws/Aws/data/secretsmanager/2017-10-17/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/secretsmanager/2017-10-17/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-10-17', 'endpointPrefix' => 'secretsmanager', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWS Secrets Manager', 'serviceId' => 'Secrets Manager', 'signatureVersion' => 'v4', 'signingName' => 'secretsmanager', 'targetPrefix' => 'secretsmanager', 'uid' => 'secretsmanager-2017-10-17', ], 'operations' => [ 'CancelRotateSecret' => [ 'name' => 'CancelRotateSecret', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelRotateSecretRequest', ], 'output' => [ 'shape' => 'CancelRotateSecretResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'CreateSecret' => [ 'name' => 'CreateSecret', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSecretRequest', ], 'output' => [ 'shape' => 'CreateSecretResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'EncryptionFailure', ], [ 'shape' => 'ResourceExistsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'PreconditionNotMetException', ], ], ], 'DeleteResourcePolicy' => [ 'name' => 'DeleteResourcePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteResourcePolicyRequest', ], 'output' => [ 'shape' => 'DeleteResourcePolicyResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'DeleteSecret' => [ 'name' => 'DeleteSecret', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSecretRequest', ], 'output' => [ 'shape' => 'DeleteSecretResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalServiceError', ], ], ], 'DescribeSecret' => [ 'name' => 'DescribeSecret', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSecretRequest', ], 'output' => [ 'shape' => 'DescribeSecretResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServiceError', ], ], ], 'GetRandomPassword' => [ 'name' => 'GetRandomPassword', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRandomPasswordRequest', ], 'output' => [ 'shape' => 'GetRandomPasswordResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalServiceError', ], ], ], 'GetResourcePolicy' => [ 'name' => 'GetResourcePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetResourcePolicyRequest', ], 'output' => [ 'shape' => 'GetResourcePolicyResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'GetSecretValue' => [ 'name' => 'GetSecretValue', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSecretValueRequest', ], 'output' => [ 'shape' => 'GetSecretValueResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'DecryptionFailure', ], [ 'shape' => 'InternalServiceError', ], ], ], 'ListSecretVersionIds' => [ 'name' => 'ListSecretVersionIds', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSecretVersionIdsRequest', ], 'output' => [ 'shape' => 'ListSecretVersionIdsResponse', ], 'errors' => [ [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServiceError', ], ], ], 'ListSecrets' => [ 'name' => 'ListSecrets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSecretsRequest', ], 'output' => [ 'shape' => 'ListSecretsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InternalServiceError', ], ], ], 'PutResourcePolicy' => [ 'name' => 'PutResourcePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutResourcePolicyRequest', ], 'output' => [ 'shape' => 'PutResourcePolicyResponse', ], 'errors' => [ [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'PutSecretValue' => [ 'name' => 'PutSecretValue', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutSecretValueRequest', ], 'output' => [ 'shape' => 'PutSecretValueResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'EncryptionFailure', ], [ 'shape' => 'ResourceExistsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServiceError', ], ], ], 'RestoreSecret' => [ 'name' => 'RestoreSecret', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreSecretRequest', ], 'output' => [ 'shape' => 'RestoreSecretResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InternalServiceError', ], ], ], 'RotateSecret' => [ 'name' => 'RotateSecret', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RotateSecretRequest', ], 'output' => [ 'shape' => 'RotateSecretResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServiceError', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalServiceError', ], ], ], 'UpdateSecret' => [ 'name' => 'UpdateSecret', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSecretRequest', ], 'output' => [ 'shape' => 'UpdateSecretResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'EncryptionFailure', ], [ 'shape' => 'ResourceExistsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'PreconditionNotMetException', ], ], ], 'UpdateSecretVersionStage' => [ 'name' => 'UpdateSecretVersionStage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSecretVersionStageRequest', ], 'output' => [ 'shape' => 'UpdateSecretVersionStageResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServiceError', ], ], ], ], 'shapes' => [ 'AutomaticallyRotateAfterDaysType' => [ 'type' => 'long', 'max' => 1000, 'min' => 1, ], 'BooleanType' => [ 'type' => 'boolean', ], 'CancelRotateSecretRequest' => [ 'type' => 'structure', 'required' => [ 'SecretId', ], 'members' => [ 'SecretId' => [ 'shape' => 'SecretIdType', ], ], ], 'CancelRotateSecretResponse' => [ 'type' => 'structure', 'members' => [ 'ARN' => [ 'shape' => 'SecretARNType', ], 'Name' => [ 'shape' => 'SecretNameType', ], 'VersionId' => [ 'shape' => 'SecretVersionIdType', ], ], ], 'ClientRequestTokenType' => [ 'type' => 'string', 'max' => 64, 'min' => 32, ], 'CreateSecretRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NameType', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestTokenType', 'idempotencyToken' => true, ], 'Description' => [ 'shape' => 'DescriptionType', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyIdType', ], 'SecretBinary' => [ 'shape' => 'SecretBinaryType', ], 'SecretString' => [ 'shape' => 'SecretStringType', ], 'Tags' => [ 'shape' => 'TagListType', ], ], ], 'CreateSecretResponse' => [ 'type' => 'structure', 'members' => [ 'ARN' => [ 'shape' => 'SecretARNType', ], 'Name' => [ 'shape' => 'SecretNameType', ], 'VersionId' => [ 'shape' => 'SecretVersionIdType', ], ], ], 'CreatedDateType' => [ 'type' => 'timestamp', ], 'DecryptionFailure' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'DeleteResourcePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'SecretId', ], 'members' => [ 'SecretId' => [ 'shape' => 'SecretIdType', ], ], ], 'DeleteResourcePolicyResponse' => [ 'type' => 'structure', 'members' => [ 'ARN' => [ 'shape' => 'SecretARNType', ], 'Name' => [ 'shape' => 'NameType', ], ], ], 'DeleteSecretRequest' => [ 'type' => 'structure', 'required' => [ 'SecretId', ], 'members' => [ 'SecretId' => [ 'shape' => 'SecretIdType', ], 'RecoveryWindowInDays' => [ 'shape' => 'RecoveryWindowInDaysType', 'box' => true, ], 'ForceDeleteWithoutRecovery' => [ 'shape' => 'BooleanType', 'box' => true, ], ], ], 'DeleteSecretResponse' => [ 'type' => 'structure', 'members' => [ 'ARN' => [ 'shape' => 'SecretARNType', ], 'Name' => [ 'shape' => 'SecretNameType', ], 'DeletionDate' => [ 'shape' => 'DeletionDateType', 'box' => true, ], ], ], 'DeletedDateType' => [ 'type' => 'timestamp', ], 'DeletionDateType' => [ 'type' => 'timestamp', ], 'DescribeSecretRequest' => [ 'type' => 'structure', 'required' => [ 'SecretId', ], 'members' => [ 'SecretId' => [ 'shape' => 'SecretIdType', ], ], ], 'DescribeSecretResponse' => [ 'type' => 'structure', 'members' => [ 'ARN' => [ 'shape' => 'SecretARNType', ], 'Name' => [ 'shape' => 'SecretNameType', ], 'Description' => [ 'shape' => 'DescriptionType', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyIdType', ], 'RotationEnabled' => [ 'shape' => 'RotationEnabledType', 'box' => true, ], 'RotationLambdaARN' => [ 'shape' => 'RotationLambdaARNType', ], 'RotationRules' => [ 'shape' => 'RotationRulesType', ], 'LastRotatedDate' => [ 'shape' => 'LastRotatedDateType', 'box' => true, ], 'LastChangedDate' => [ 'shape' => 'LastChangedDateType', 'box' => true, ], 'LastAccessedDate' => [ 'shape' => 'LastAccessedDateType', 'box' => true, ], 'DeletedDate' => [ 'shape' => 'DeletedDateType', 'box' => true, ], 'Tags' => [ 'shape' => 'TagListType', ], 'VersionIdsToStages' => [ 'shape' => 'SecretVersionsToStagesMapType', ], ], ], 'DescriptionType' => [ 'type' => 'string', 'max' => 2048, ], 'EncryptionFailure' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ErrorMessage' => [ 'type' => 'string', ], 'ExcludeCharactersType' => [ 'type' => 'string', 'max' => 4096, 'min' => 0, ], 'ExcludeLowercaseType' => [ 'type' => 'boolean', ], 'ExcludeNumbersType' => [ 'type' => 'boolean', ], 'ExcludePunctuationType' => [ 'type' => 'boolean', ], 'ExcludeUppercaseType' => [ 'type' => 'boolean', ], 'GetRandomPasswordRequest' => [ 'type' => 'structure', 'members' => [ 'PasswordLength' => [ 'shape' => 'PasswordLengthType', 'box' => true, ], 'ExcludeCharacters' => [ 'shape' => 'ExcludeCharactersType', ], 'ExcludeNumbers' => [ 'shape' => 'ExcludeNumbersType', 'box' => true, ], 'ExcludePunctuation' => [ 'shape' => 'ExcludePunctuationType', 'box' => true, ], 'ExcludeUppercase' => [ 'shape' => 'ExcludeUppercaseType', 'box' => true, ], 'ExcludeLowercase' => [ 'shape' => 'ExcludeLowercaseType', 'box' => true, ], 'IncludeSpace' => [ 'shape' => 'IncludeSpaceType', 'box' => true, ], 'RequireEachIncludedType' => [ 'shape' => 'RequireEachIncludedTypeType', 'box' => true, ], ], ], 'GetRandomPasswordResponse' => [ 'type' => 'structure', 'members' => [ 'RandomPassword' => [ 'shape' => 'RandomPasswordType', ], ], ], 'GetResourcePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'SecretId', ], 'members' => [ 'SecretId' => [ 'shape' => 'SecretIdType', ], ], ], 'GetResourcePolicyResponse' => [ 'type' => 'structure', 'members' => [ 'ARN' => [ 'shape' => 'SecretARNType', ], 'Name' => [ 'shape' => 'NameType', ], 'ResourcePolicy' => [ 'shape' => 'NonEmptyResourcePolicyType', ], ], ], 'GetSecretValueRequest' => [ 'type' => 'structure', 'required' => [ 'SecretId', ], 'members' => [ 'SecretId' => [ 'shape' => 'SecretIdType', ], 'VersionId' => [ 'shape' => 'SecretVersionIdType', ], 'VersionStage' => [ 'shape' => 'SecretVersionStageType', ], ], ], 'GetSecretValueResponse' => [ 'type' => 'structure', 'members' => [ 'ARN' => [ 'shape' => 'SecretARNType', ], 'Name' => [ 'shape' => 'SecretNameType', ], 'VersionId' => [ 'shape' => 'SecretVersionIdType', ], 'SecretBinary' => [ 'shape' => 'SecretBinaryType', ], 'SecretString' => [ 'shape' => 'SecretStringType', ], 'VersionStages' => [ 'shape' => 'SecretVersionStagesType', ], 'CreatedDate' => [ 'shape' => 'CreatedDateType', 'box' => true, ], ], ], 'IncludeSpaceType' => [ 'type' => 'boolean', ], 'InternalServiceError' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, 'fault' => true, ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'KmsKeyIdType' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'LastAccessedDateType' => [ 'type' => 'timestamp', ], 'LastChangedDateType' => [ 'type' => 'timestamp', ], 'LastRotatedDateType' => [ 'type' => 'timestamp', ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ListSecretVersionIdsRequest' => [ 'type' => 'structure', 'required' => [ 'SecretId', ], 'members' => [ 'SecretId' => [ 'shape' => 'SecretIdType', ], 'MaxResults' => [ 'shape' => 'MaxResultsType', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextTokenType', ], 'IncludeDeprecated' => [ 'shape' => 'BooleanType', 'box' => true, ], ], ], 'ListSecretVersionIdsResponse' => [ 'type' => 'structure', 'members' => [ 'Versions' => [ 'shape' => 'SecretVersionsListType', ], 'NextToken' => [ 'shape' => 'NextTokenType', ], 'ARN' => [ 'shape' => 'SecretARNType', ], 'Name' => [ 'shape' => 'SecretNameType', ], ], ], 'ListSecretsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResultsType', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextTokenType', ], ], ], 'ListSecretsResponse' => [ 'type' => 'structure', 'members' => [ 'SecretList' => [ 'shape' => 'SecretListType', ], 'NextToken' => [ 'shape' => 'NextTokenType', ], ], ], 'MalformedPolicyDocumentException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'MaxResultsType' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'NameType' => [ 'type' => 'string', 'max' => 512, 'min' => 1, ], 'NextTokenType' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, ], 'NonEmptyResourcePolicyType' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, ], 'PasswordLengthType' => [ 'type' => 'long', 'max' => 4096, 'min' => 1, ], 'PreconditionNotMetException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'PutResourcePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'SecretId', 'ResourcePolicy', ], 'members' => [ 'SecretId' => [ 'shape' => 'SecretIdType', ], 'ResourcePolicy' => [ 'shape' => 'NonEmptyResourcePolicyType', ], ], ], 'PutResourcePolicyResponse' => [ 'type' => 'structure', 'members' => [ 'ARN' => [ 'shape' => 'SecretARNType', ], 'Name' => [ 'shape' => 'NameType', ], ], ], 'PutSecretValueRequest' => [ 'type' => 'structure', 'required' => [ 'SecretId', ], 'members' => [ 'SecretId' => [ 'shape' => 'SecretIdType', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestTokenType', 'idempotencyToken' => true, ], 'SecretBinary' => [ 'shape' => 'SecretBinaryType', ], 'SecretString' => [ 'shape' => 'SecretStringType', ], 'VersionStages' => [ 'shape' => 'SecretVersionStagesType', ], ], ], 'PutSecretValueResponse' => [ 'type' => 'structure', 'members' => [ 'ARN' => [ 'shape' => 'SecretARNType', ], 'Name' => [ 'shape' => 'SecretNameType', ], 'VersionId' => [ 'shape' => 'SecretVersionIdType', ], 'VersionStages' => [ 'shape' => 'SecretVersionStagesType', ], ], ], 'RandomPasswordType' => [ 'type' => 'string', 'max' => 4096, 'min' => 0, ], 'RecoveryWindowInDaysType' => [ 'type' => 'long', ], 'RequireEachIncludedTypeType' => [ 'type' => 'boolean', ], 'ResourceExistsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'RestoreSecretRequest' => [ 'type' => 'structure', 'required' => [ 'SecretId', ], 'members' => [ 'SecretId' => [ 'shape' => 'SecretIdType', ], ], ], 'RestoreSecretResponse' => [ 'type' => 'structure', 'members' => [ 'ARN' => [ 'shape' => 'SecretARNType', ], 'Name' => [ 'shape' => 'SecretNameType', ], ], ], 'RotateSecretRequest' => [ 'type' => 'structure', 'required' => [ 'SecretId', ], 'members' => [ 'SecretId' => [ 'shape' => 'SecretIdType', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestTokenType', 'idempotencyToken' => true, ], 'RotationLambdaARN' => [ 'shape' => 'RotationLambdaARNType', ], 'RotationRules' => [ 'shape' => 'RotationRulesType', ], ], ], 'RotateSecretResponse' => [ 'type' => 'structure', 'members' => [ 'ARN' => [ 'shape' => 'SecretARNType', ], 'Name' => [ 'shape' => 'SecretNameType', ], 'VersionId' => [ 'shape' => 'SecretVersionIdType', 'box' => true, ], ], ], 'RotationEnabledType' => [ 'type' => 'boolean', ], 'RotationLambdaARNType' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'RotationRulesType' => [ 'type' => 'structure', 'members' => [ 'AutomaticallyAfterDays' => [ 'shape' => 'AutomaticallyRotateAfterDaysType', 'box' => true, ], ], ], 'SecretARNType' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, ], 'SecretBinaryType' => [ 'type' => 'blob', 'max' => 7168, 'min' => 0, 'sensitive' => true, ], 'SecretIdType' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'SecretListEntry' => [ 'type' => 'structure', 'members' => [ 'ARN' => [ 'shape' => 'SecretARNType', ], 'Name' => [ 'shape' => 'SecretNameType', ], 'Description' => [ 'shape' => 'DescriptionType', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyIdType', ], 'RotationEnabled' => [ 'shape' => 'RotationEnabledType', 'box' => true, ], 'RotationLambdaARN' => [ 'shape' => 'RotationLambdaARNType', ], 'RotationRules' => [ 'shape' => 'RotationRulesType', ], 'LastRotatedDate' => [ 'shape' => 'LastRotatedDateType', 'box' => true, ], 'LastChangedDate' => [ 'shape' => 'LastChangedDateType', 'box' => true, ], 'LastAccessedDate' => [ 'shape' => 'LastAccessedDateType', 'box' => true, ], 'DeletedDate' => [ 'shape' => 'DeletedDateType', ], 'Tags' => [ 'shape' => 'TagListType', ], 'SecretVersionsToStages' => [ 'shape' => 'SecretVersionsToStagesMapType', ], ], ], 'SecretListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecretListEntry', ], ], 'SecretNameType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'SecretStringType' => [ 'type' => 'string', 'max' => 7168, 'min' => 0, 'sensitive' => true, ], 'SecretVersionIdType' => [ 'type' => 'string', 'max' => 64, 'min' => 32, ], 'SecretVersionStageType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'SecretVersionStagesType' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecretVersionStageType', ], 'max' => 20, 'min' => 1, ], 'SecretVersionsListEntry' => [ 'type' => 'structure', 'members' => [ 'VersionId' => [ 'shape' => 'SecretVersionIdType', ], 'VersionStages' => [ 'shape' => 'SecretVersionStagesType', ], 'LastAccessedDate' => [ 'shape' => 'LastAccessedDateType', 'box' => true, ], 'CreatedDate' => [ 'shape' => 'CreatedDateType', 'box' => true, ], ], ], 'SecretVersionsListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecretVersionsListEntry', ], ], 'SecretVersionsToStagesMapType' => [ 'type' => 'map', 'key' => [ 'shape' => 'SecretVersionIdType', ], 'value' => [ 'shape' => 'SecretVersionStagesType', ], ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'TagKeyType', ], 'Value' => [ 'shape' => 'TagValueType', ], ], ], 'TagKeyListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKeyType', ], ], 'TagKeyType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'SecretId', 'Tags', ], 'members' => [ 'SecretId' => [ 'shape' => 'SecretIdType', ], 'Tags' => [ 'shape' => 'TagListType', ], ], ], 'TagValueType' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'SecretId', 'TagKeys', ], 'members' => [ 'SecretId' => [ 'shape' => 'SecretIdType', ], 'TagKeys' => [ 'shape' => 'TagKeyListType', ], ], ], 'UpdateSecretRequest' => [ 'type' => 'structure', 'required' => [ 'SecretId', ], 'members' => [ 'SecretId' => [ 'shape' => 'SecretIdType', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestTokenType', 'idempotencyToken' => true, ], 'Description' => [ 'shape' => 'DescriptionType', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyIdType', ], 'SecretBinary' => [ 'shape' => 'SecretBinaryType', ], 'SecretString' => [ 'shape' => 'SecretStringType', ], ], ], 'UpdateSecretResponse' => [ 'type' => 'structure', 'members' => [ 'ARN' => [ 'shape' => 'SecretARNType', ], 'Name' => [ 'shape' => 'SecretNameType', ], 'VersionId' => [ 'shape' => 'SecretVersionIdType', ], ], ], 'UpdateSecretVersionStageRequest' => [ 'type' => 'structure', 'required' => [ 'SecretId', 'VersionStage', ], 'members' => [ 'SecretId' => [ 'shape' => 'SecretIdType', ], 'VersionStage' => [ 'shape' => 'SecretVersionStageType', ], 'RemoveFromVersionId' => [ 'shape' => 'SecretVersionIdType', 'box' => true, ], 'MoveToVersionId' => [ 'shape' => 'SecretVersionIdType', 'box' => true, ], ], ], 'UpdateSecretVersionStageResponse' => [ 'type' => 'structure', 'members' => [ 'ARN' => [ 'shape' => 'SecretARNType', ], 'Name' => [ 'shape' => 'SecretNameType', ], ], ], ],]; diff --git a/lib/aws/Aws/data/secretsmanager/2017-10-17/paginators-1.json.php b/lib/aws/Aws/data/secretsmanager/2017-10-17/paginators-1.json.php new file mode 100644 index 0000000..9bde656 --- /dev/null +++ b/lib/aws/Aws/data/secretsmanager/2017-10-17/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/secretsmanager/2017-10-17/paginators-1.json +return [ 'pagination' => [ 'ListSecretVersionIds' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListSecrets' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/secretsmanager/2017-10-17/smoke.json.php b/lib/aws/Aws/data/secretsmanager/2017-10-17/smoke.json.php new file mode 100644 index 0000000..2f13c14 --- /dev/null +++ b/lib/aws/Aws/data/secretsmanager/2017-10-17/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/secretsmanager/2017-10-17/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListSecrets', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeSecret', 'input' => [ 'SecretId' => 'fake-secret-id', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/securityhub/2018-10-26/api-2.json.php b/lib/aws/Aws/data/securityhub/2018-10-26/api-2.json.php new file mode 100644 index 0000000..f961d0c --- /dev/null +++ b/lib/aws/Aws/data/securityhub/2018-10-26/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/securityhub/2018-10-26/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-10-26', 'endpointPrefix' => 'securityhub', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceFullName' => 'AWS SecurityHub', 'serviceId' => 'SecurityHub', 'signatureVersion' => 'v4', 'signingName' => 'securityhub', 'uid' => 'securityhub-2018-10-26', ], 'operations' => [ 'AcceptInvitation' => [ 'name' => 'AcceptInvitation', 'http' => [ 'method' => 'POST', 'requestUri' => '/master', ], 'input' => [ 'shape' => 'AcceptInvitationRequest', ], 'output' => [ 'shape' => 'AcceptInvitationResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidAccessException', ], ], ], 'BatchDisableStandards' => [ 'name' => 'BatchDisableStandards', 'http' => [ 'method' => 'POST', 'requestUri' => '/standards/deregister', ], 'input' => [ 'shape' => 'BatchDisableStandardsRequest', ], 'output' => [ 'shape' => 'BatchDisableStandardsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'BatchEnableStandards' => [ 'name' => 'BatchEnableStandards', 'http' => [ 'method' => 'POST', 'requestUri' => '/standards/register', ], 'input' => [ 'shape' => 'BatchEnableStandardsRequest', ], 'output' => [ 'shape' => 'BatchEnableStandardsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'BatchImportFindings' => [ 'name' => 'BatchImportFindings', 'http' => [ 'method' => 'POST', 'requestUri' => '/findings/import', ], 'input' => [ 'shape' => 'BatchImportFindingsRequest', ], 'output' => [ 'shape' => 'BatchImportFindingsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidAccessException', ], ], ], 'CreateInsight' => [ 'name' => 'CreateInsight', 'http' => [ 'method' => 'POST', 'requestUri' => '/insights', ], 'input' => [ 'shape' => 'CreateInsightRequest', ], 'output' => [ 'shape' => 'CreateInsightResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'ResourceConflictException', ], ], ], 'CreateMembers' => [ 'name' => 'CreateMembers', 'http' => [ 'method' => 'POST', 'requestUri' => '/members', ], 'input' => [ 'shape' => 'CreateMembersRequest', ], 'output' => [ 'shape' => 'CreateMembersResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'ResourceConflictException', ], ], ], 'DeclineInvitations' => [ 'name' => 'DeclineInvitations', 'http' => [ 'method' => 'POST', 'requestUri' => '/invitations/decline', ], 'input' => [ 'shape' => 'DeclineInvitationsRequest', ], 'output' => [ 'shape' => 'DeclineInvitationsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeleteInsight' => [ 'name' => 'DeleteInsight', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/insights/{InsightArn+}', ], 'input' => [ 'shape' => 'DeleteInsightRequest', ], 'output' => [ 'shape' => 'DeleteInsightResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeleteInvitations' => [ 'name' => 'DeleteInvitations', 'http' => [ 'method' => 'POST', 'requestUri' => '/invitations/delete', ], 'input' => [ 'shape' => 'DeleteInvitationsRequest', ], 'output' => [ 'shape' => 'DeleteInvitationsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidAccessException', ], ], ], 'DeleteMembers' => [ 'name' => 'DeleteMembers', 'http' => [ 'method' => 'POST', 'requestUri' => '/members/delete', ], 'input' => [ 'shape' => 'DeleteMembersRequest', ], 'output' => [ 'shape' => 'DeleteMembersResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DisableImportFindingsForProduct' => [ 'name' => 'DisableImportFindingsForProduct', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/productSubscriptions/{ProductSubscriptionArn+}', ], 'input' => [ 'shape' => 'DisableImportFindingsForProductRequest', ], 'output' => [ 'shape' => 'DisableImportFindingsForProductResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'DisableSecurityHub' => [ 'name' => 'DisableSecurityHub', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/accounts', ], 'input' => [ 'shape' => 'DisableSecurityHubRequest', ], 'output' => [ 'shape' => 'DisableSecurityHubResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DisassociateFromMasterAccount' => [ 'name' => 'DisassociateFromMasterAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/master/disassociate', ], 'input' => [ 'shape' => 'DisassociateFromMasterAccountRequest', ], 'output' => [ 'shape' => 'DisassociateFromMasterAccountResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DisassociateMembers' => [ 'name' => 'DisassociateMembers', 'http' => [ 'method' => 'POST', 'requestUri' => '/members/disassociate', ], 'input' => [ 'shape' => 'DisassociateMembersRequest', ], 'output' => [ 'shape' => 'DisassociateMembersResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'EnableImportFindingsForProduct' => [ 'name' => 'EnableImportFindingsForProduct', 'http' => [ 'method' => 'POST', 'requestUri' => '/productSubscriptions', ], 'input' => [ 'shape' => 'EnableImportFindingsForProductRequest', ], 'output' => [ 'shape' => 'EnableImportFindingsForProductResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'EnableSecurityHub' => [ 'name' => 'EnableSecurityHub', 'http' => [ 'method' => 'POST', 'requestUri' => '/accounts', ], 'input' => [ 'shape' => 'EnableSecurityHubRequest', ], 'output' => [ 'shape' => 'EnableSecurityHubResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'ResourceConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'GetEnabledStandards' => [ 'name' => 'GetEnabledStandards', 'http' => [ 'method' => 'POST', 'requestUri' => '/standards/get', ], 'input' => [ 'shape' => 'GetEnabledStandardsRequest', ], 'output' => [ 'shape' => 'GetEnabledStandardsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'GetFindings' => [ 'name' => 'GetFindings', 'http' => [ 'method' => 'POST', 'requestUri' => '/findings', ], 'input' => [ 'shape' => 'GetFindingsRequest', ], 'output' => [ 'shape' => 'GetFindingsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'GetInsightResults' => [ 'name' => 'GetInsightResults', 'http' => [ 'method' => 'GET', 'requestUri' => '/insights/results/{InsightArn+}', ], 'input' => [ 'shape' => 'GetInsightResultsRequest', ], 'output' => [ 'shape' => 'GetInsightResultsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'GetInsights' => [ 'name' => 'GetInsights', 'http' => [ 'method' => 'POST', 'requestUri' => '/insights/get', ], 'input' => [ 'shape' => 'GetInsightsRequest', ], 'output' => [ 'shape' => 'GetInsightsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'GetInvitationsCount' => [ 'name' => 'GetInvitationsCount', 'http' => [ 'method' => 'GET', 'requestUri' => '/invitations/count', ], 'input' => [ 'shape' => 'GetInvitationsCountRequest', ], 'output' => [ 'shape' => 'GetInvitationsCountResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'GetMasterAccount' => [ 'name' => 'GetMasterAccount', 'http' => [ 'method' => 'GET', 'requestUri' => '/master', ], 'input' => [ 'shape' => 'GetMasterAccountRequest', ], 'output' => [ 'shape' => 'GetMasterAccountResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'GetMembers' => [ 'name' => 'GetMembers', 'http' => [ 'method' => 'POST', 'requestUri' => '/members/get', ], 'input' => [ 'shape' => 'GetMembersRequest', ], 'output' => [ 'shape' => 'GetMembersResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'InviteMembers' => [ 'name' => 'InviteMembers', 'http' => [ 'method' => 'POST', 'requestUri' => '/members/invite', ], 'input' => [ 'shape' => 'InviteMembersRequest', ], 'output' => [ 'shape' => 'InviteMembersResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListEnabledProductsForImport' => [ 'name' => 'ListEnabledProductsForImport', 'http' => [ 'method' => 'GET', 'requestUri' => '/productSubscriptions', ], 'input' => [ 'shape' => 'ListEnabledProductsForImportRequest', ], 'output' => [ 'shape' => 'ListEnabledProductsForImportResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidAccessException', ], ], ], 'ListInvitations' => [ 'name' => 'ListInvitations', 'http' => [ 'method' => 'GET', 'requestUri' => '/invitations', ], 'input' => [ 'shape' => 'ListInvitationsRequest', ], 'output' => [ 'shape' => 'ListInvitationsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'ListMembers' => [ 'name' => 'ListMembers', 'http' => [ 'method' => 'GET', 'requestUri' => '/members', ], 'input' => [ 'shape' => 'ListMembersRequest', ], 'output' => [ 'shape' => 'ListMembersResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'UpdateFindings' => [ 'name' => 'UpdateFindings', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/findings', ], 'input' => [ 'shape' => 'UpdateFindingsRequest', ], 'output' => [ 'shape' => 'UpdateFindingsResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateInsight' => [ 'name' => 'UpdateInsight', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/insights/{InsightArn+}', ], 'input' => [ 'shape' => 'UpdateInsightRequest', ], 'output' => [ 'shape' => 'UpdateInsightResponse', ], 'errors' => [ [ 'shape' => 'InternalException', ], [ 'shape' => 'InvalidInputException', ], [ 'shape' => 'InvalidAccessException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], ], 'shapes' => [ 'AcceptInvitationRequest' => [ 'type' => 'structure', 'members' => [ 'MasterId' => [ 'shape' => 'NonEmptyString', ], 'InvitationId' => [ 'shape' => 'NonEmptyString', ], ], ], 'AcceptInvitationResponse' => [ 'type' => 'structure', 'members' => [], ], 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NonEmptyString', ], 'Code' => [ 'shape' => 'NonEmptyString', ], ], 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, ], 'AccountDetails' => [ 'type' => 'structure', 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'Email' => [ 'shape' => 'NonEmptyString', ], ], ], 'AccountDetailsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountDetails', ], ], 'AccountId' => [ 'type' => 'string', ], 'AccountIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonEmptyString', ], ], 'ArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonEmptyString', ], ], 'AwsEc2InstanceDetails' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'NonEmptyString', ], 'ImageId' => [ 'shape' => 'NonEmptyString', ], 'IpV4Addresses' => [ 'shape' => 'StringList', ], 'IpV6Addresses' => [ 'shape' => 'StringList', ], 'KeyName' => [ 'shape' => 'NonEmptyString', ], 'IamInstanceProfileArn' => [ 'shape' => 'NonEmptyString', ], 'VpcId' => [ 'shape' => 'NonEmptyString', ], 'SubnetId' => [ 'shape' => 'NonEmptyString', ], 'LaunchedAt' => [ 'shape' => 'NonEmptyString', ], ], ], 'AwsIamAccessKeyDetails' => [ 'type' => 'structure', 'members' => [ 'UserName' => [ 'shape' => 'NonEmptyString', ], 'Status' => [ 'shape' => 'AwsIamAccessKeyStatus', ], 'CreatedAt' => [ 'shape' => 'NonEmptyString', ], ], ], 'AwsIamAccessKeyStatus' => [ 'type' => 'string', 'enum' => [ 'Active', 'Inactive', ], ], 'AwsS3BucketDetails' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'NonEmptyString', ], 'OwnerName' => [ 'shape' => 'NonEmptyString', ], ], ], 'AwsSecurityFinding' => [ 'type' => 'structure', 'required' => [ 'SchemaVersion', 'Id', 'ProductArn', 'GeneratorId', 'AwsAccountId', 'Types', 'CreatedAt', 'UpdatedAt', 'Severity', 'Resources', ], 'members' => [ 'SchemaVersion' => [ 'shape' => 'NonEmptyString', ], 'Id' => [ 'shape' => 'NonEmptyString', ], 'ProductArn' => [ 'shape' => 'NonEmptyString', ], 'GeneratorId' => [ 'shape' => 'NonEmptyString', ], 'AwsAccountId' => [ 'shape' => 'NonEmptyString', ], 'Types' => [ 'shape' => 'TypeList', ], 'FirstObservedAt' => [ 'shape' => 'NonEmptyString', ], 'LastObservedAt' => [ 'shape' => 'NonEmptyString', ], 'CreatedAt' => [ 'shape' => 'NonEmptyString', ], 'UpdatedAt' => [ 'shape' => 'NonEmptyString', ], 'Severity' => [ 'shape' => 'Severity', ], 'Confidence' => [ 'shape' => 'Integer', ], 'Criticality' => [ 'shape' => 'Integer', ], 'Title' => [ 'shape' => 'NonEmptyString', ], 'Description' => [ 'shape' => 'NonEmptyString', ], 'Remediation' => [ 'shape' => 'Remediation', ], 'SourceUrl' => [ 'shape' => 'NonEmptyString', ], 'ProductFields' => [ 'shape' => 'FieldMap', ], 'UserDefinedFields' => [ 'shape' => 'FieldMap', ], 'Malware' => [ 'shape' => 'MalwareList', ], 'Network' => [ 'shape' => 'Network', ], 'Process' => [ 'shape' => 'ProcessDetails', ], 'ThreatIntelIndicators' => [ 'shape' => 'ThreatIntelIndicatorList', ], 'Resources' => [ 'shape' => 'ResourceList', ], 'Compliance' => [ 'shape' => 'Compliance', ], 'VerificationState' => [ 'shape' => 'VerificationState', ], 'WorkflowState' => [ 'shape' => 'WorkflowState', ], 'RecordState' => [ 'shape' => 'RecordState', ], 'RelatedFindings' => [ 'shape' => 'RelatedFindingList', ], 'Note' => [ 'shape' => 'Note', ], ], ], 'AwsSecurityFindingFilters' => [ 'type' => 'structure', 'members' => [ 'ProductArn' => [ 'shape' => 'StringFilterList', ], 'AwsAccountId' => [ 'shape' => 'StringFilterList', ], 'Id' => [ 'shape' => 'StringFilterList', ], 'GeneratorId' => [ 'shape' => 'StringFilterList', ], 'Type' => [ 'shape' => 'StringFilterList', ], 'FirstObservedAt' => [ 'shape' => 'DateFilterList', ], 'LastObservedAt' => [ 'shape' => 'DateFilterList', ], 'CreatedAt' => [ 'shape' => 'DateFilterList', ], 'UpdatedAt' => [ 'shape' => 'DateFilterList', ], 'SeverityProduct' => [ 'shape' => 'NumberFilterList', ], 'SeverityNormalized' => [ 'shape' => 'NumberFilterList', ], 'SeverityLabel' => [ 'shape' => 'StringFilterList', ], 'Confidence' => [ 'shape' => 'NumberFilterList', ], 'Criticality' => [ 'shape' => 'NumberFilterList', ], 'Title' => [ 'shape' => 'StringFilterList', ], 'Description' => [ 'shape' => 'StringFilterList', ], 'RecommendationText' => [ 'shape' => 'StringFilterList', ], 'SourceUrl' => [ 'shape' => 'StringFilterList', ], 'ProductFields' => [ 'shape' => 'MapFilterList', ], 'ProductName' => [ 'shape' => 'StringFilterList', ], 'CompanyName' => [ 'shape' => 'StringFilterList', ], 'UserDefinedFields' => [ 'shape' => 'MapFilterList', ], 'MalwareName' => [ 'shape' => 'StringFilterList', ], 'MalwareType' => [ 'shape' => 'StringFilterList', ], 'MalwarePath' => [ 'shape' => 'StringFilterList', ], 'MalwareState' => [ 'shape' => 'StringFilterList', ], 'NetworkDirection' => [ 'shape' => 'StringFilterList', ], 'NetworkProtocol' => [ 'shape' => 'StringFilterList', ], 'NetworkSourceIpV4' => [ 'shape' => 'IpFilterList', ], 'NetworkSourceIpV6' => [ 'shape' => 'IpFilterList', ], 'NetworkSourcePort' => [ 'shape' => 'NumberFilterList', ], 'NetworkSourceDomain' => [ 'shape' => 'StringFilterList', ], 'NetworkSourceMac' => [ 'shape' => 'StringFilterList', ], 'NetworkDestinationIpV4' => [ 'shape' => 'IpFilterList', ], 'NetworkDestinationIpV6' => [ 'shape' => 'IpFilterList', ], 'NetworkDestinationPort' => [ 'shape' => 'NumberFilterList', ], 'NetworkDestinationDomain' => [ 'shape' => 'StringFilterList', ], 'ProcessName' => [ 'shape' => 'StringFilterList', ], 'ProcessPath' => [ 'shape' => 'StringFilterList', ], 'ProcessPid' => [ 'shape' => 'NumberFilterList', ], 'ProcessParentPid' => [ 'shape' => 'NumberFilterList', ], 'ProcessLaunchedAt' => [ 'shape' => 'DateFilterList', ], 'ProcessTerminatedAt' => [ 'shape' => 'DateFilterList', ], 'ThreatIntelIndicatorType' => [ 'shape' => 'StringFilterList', ], 'ThreatIntelIndicatorValue' => [ 'shape' => 'StringFilterList', ], 'ThreatIntelIndicatorCategory' => [ 'shape' => 'StringFilterList', ], 'ThreatIntelIndicatorLastObservedAt' => [ 'shape' => 'DateFilterList', ], 'ThreatIntelIndicatorSource' => [ 'shape' => 'StringFilterList', ], 'ThreatIntelIndicatorSourceUrl' => [ 'shape' => 'StringFilterList', ], 'ResourceType' => [ 'shape' => 'StringFilterList', ], 'ResourceId' => [ 'shape' => 'StringFilterList', ], 'ResourcePartition' => [ 'shape' => 'StringFilterList', ], 'ResourceRegion' => [ 'shape' => 'StringFilterList', ], 'ResourceTags' => [ 'shape' => 'MapFilterList', ], 'ResourceAwsEc2InstanceType' => [ 'shape' => 'StringFilterList', ], 'ResourceAwsEc2InstanceImageId' => [ 'shape' => 'StringFilterList', ], 'ResourceAwsEc2InstanceIpV4Addresses' => [ 'shape' => 'IpFilterList', ], 'ResourceAwsEc2InstanceIpV6Addresses' => [ 'shape' => 'IpFilterList', ], 'ResourceAwsEc2InstanceKeyName' => [ 'shape' => 'StringFilterList', ], 'ResourceAwsEc2InstanceIamInstanceProfileArn' => [ 'shape' => 'StringFilterList', ], 'ResourceAwsEc2InstanceVpcId' => [ 'shape' => 'StringFilterList', ], 'ResourceAwsEc2InstanceSubnetId' => [ 'shape' => 'StringFilterList', ], 'ResourceAwsEc2InstanceLaunchedAt' => [ 'shape' => 'DateFilterList', ], 'ResourceAwsS3BucketOwnerId' => [ 'shape' => 'StringFilterList', ], 'ResourceAwsS3BucketOwnerName' => [ 'shape' => 'StringFilterList', ], 'ResourceAwsIamAccessKeyUserName' => [ 'shape' => 'StringFilterList', ], 'ResourceAwsIamAccessKeyStatus' => [ 'shape' => 'StringFilterList', ], 'ResourceAwsIamAccessKeyCreatedAt' => [ 'shape' => 'DateFilterList', ], 'ResourceContainerName' => [ 'shape' => 'StringFilterList', ], 'ResourceContainerImageId' => [ 'shape' => 'StringFilterList', ], 'ResourceContainerImageName' => [ 'shape' => 'StringFilterList', ], 'ResourceContainerLaunchedAt' => [ 'shape' => 'DateFilterList', ], 'ResourceDetailsOther' => [ 'shape' => 'MapFilterList', ], 'ComplianceStatus' => [ 'shape' => 'StringFilterList', ], 'VerificationState' => [ 'shape' => 'StringFilterList', ], 'WorkflowState' => [ 'shape' => 'StringFilterList', ], 'RecordState' => [ 'shape' => 'StringFilterList', ], 'RelatedFindingsProductArn' => [ 'shape' => 'StringFilterList', ], 'RelatedFindingsId' => [ 'shape' => 'StringFilterList', ], 'NoteText' => [ 'shape' => 'StringFilterList', ], 'NoteUpdatedAt' => [ 'shape' => 'DateFilterList', ], 'NoteUpdatedBy' => [ 'shape' => 'StringFilterList', ], 'Keyword' => [ 'shape' => 'KeywordFilterList', ], ], ], 'AwsSecurityFindingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AwsSecurityFinding', ], ], 'BatchDisableStandardsRequest' => [ 'type' => 'structure', 'required' => [ 'StandardsSubscriptionArns', ], 'members' => [ 'StandardsSubscriptionArns' => [ 'shape' => 'StandardsSubscriptionArns', ], ], ], 'BatchDisableStandardsResponse' => [ 'type' => 'structure', 'members' => [ 'StandardsSubscriptions' => [ 'shape' => 'StandardsSubscriptions', ], ], ], 'BatchEnableStandardsRequest' => [ 'type' => 'structure', 'required' => [ 'StandardsSubscriptionRequests', ], 'members' => [ 'StandardsSubscriptionRequests' => [ 'shape' => 'StandardsSubscriptionRequests', ], ], ], 'BatchEnableStandardsResponse' => [ 'type' => 'structure', 'members' => [ 'StandardsSubscriptions' => [ 'shape' => 'StandardsSubscriptions', ], ], ], 'BatchImportFindingsRequest' => [ 'type' => 'structure', 'required' => [ 'Findings', ], 'members' => [ 'Findings' => [ 'shape' => 'AwsSecurityFindingList', ], ], ], 'BatchImportFindingsResponse' => [ 'type' => 'structure', 'required' => [ 'FailedCount', 'SuccessCount', ], 'members' => [ 'FailedCount' => [ 'shape' => 'Integer', ], 'SuccessCount' => [ 'shape' => 'Integer', ], 'FailedFindings' => [ 'shape' => 'ImportFindingsErrorList', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'Compliance' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ComplianceStatus', ], ], ], 'ComplianceStatus' => [ 'type' => 'string', 'enum' => [ 'PASSED', 'WARNING', 'FAILED', 'NOT_AVAILABLE', ], ], 'ContainerDetails' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'NonEmptyString', ], 'ImageId' => [ 'shape' => 'NonEmptyString', ], 'ImageName' => [ 'shape' => 'NonEmptyString', ], 'LaunchedAt' => [ 'shape' => 'NonEmptyString', ], ], ], 'CreateInsightRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'Filters', 'GroupByAttribute', ], 'members' => [ 'Name' => [ 'shape' => 'NonEmptyString', ], 'Filters' => [ 'shape' => 'AwsSecurityFindingFilters', ], 'GroupByAttribute' => [ 'shape' => 'NonEmptyString', ], ], ], 'CreateInsightResponse' => [ 'type' => 'structure', 'required' => [ 'InsightArn', ], 'members' => [ 'InsightArn' => [ 'shape' => 'NonEmptyString', ], ], ], 'CreateMembersRequest' => [ 'type' => 'structure', 'members' => [ 'AccountDetails' => [ 'shape' => 'AccountDetailsList', ], ], ], 'CreateMembersResponse' => [ 'type' => 'structure', 'members' => [ 'UnprocessedAccounts' => [ 'shape' => 'ResultList', ], ], ], 'DateFilter' => [ 'type' => 'structure', 'members' => [ 'Start' => [ 'shape' => 'NonEmptyString', ], 'End' => [ 'shape' => 'NonEmptyString', ], 'DateRange' => [ 'shape' => 'DateRange', ], ], ], 'DateFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DateFilter', ], ], 'DateRange' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Integer', ], 'Unit' => [ 'shape' => 'DateRangeUnit', ], ], ], 'DateRangeUnit' => [ 'type' => 'string', 'enum' => [ 'DAYS', ], ], 'DeclineInvitationsRequest' => [ 'type' => 'structure', 'members' => [ 'AccountIds' => [ 'shape' => 'AccountIdList', ], ], ], 'DeclineInvitationsResponse' => [ 'type' => 'structure', 'members' => [ 'UnprocessedAccounts' => [ 'shape' => 'ResultList', ], ], ], 'DeleteInsightRequest' => [ 'type' => 'structure', 'required' => [ 'InsightArn', ], 'members' => [ 'InsightArn' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'InsightArn', ], ], ], 'DeleteInsightResponse' => [ 'type' => 'structure', 'required' => [ 'InsightArn', ], 'members' => [ 'InsightArn' => [ 'shape' => 'NonEmptyString', ], ], ], 'DeleteInvitationsRequest' => [ 'type' => 'structure', 'members' => [ 'AccountIds' => [ 'shape' => 'AccountIdList', ], ], ], 'DeleteInvitationsResponse' => [ 'type' => 'structure', 'members' => [ 'UnprocessedAccounts' => [ 'shape' => 'ResultList', ], ], ], 'DeleteMembersRequest' => [ 'type' => 'structure', 'members' => [ 'AccountIds' => [ 'shape' => 'AccountIdList', ], ], ], 'DeleteMembersResponse' => [ 'type' => 'structure', 'members' => [ 'UnprocessedAccounts' => [ 'shape' => 'ResultList', ], ], ], 'DisableImportFindingsForProductRequest' => [ 'type' => 'structure', 'required' => [ 'ProductSubscriptionArn', ], 'members' => [ 'ProductSubscriptionArn' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'ProductSubscriptionArn', ], ], ], 'DisableImportFindingsForProductResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisableSecurityHubRequest' => [ 'type' => 'structure', 'members' => [], ], 'DisableSecurityHubResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateFromMasterAccountRequest' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateFromMasterAccountResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateMembersRequest' => [ 'type' => 'structure', 'members' => [ 'AccountIds' => [ 'shape' => 'AccountIdList', ], ], ], 'DisassociateMembersResponse' => [ 'type' => 'structure', 'members' => [], ], 'Double' => [ 'type' => 'double', ], 'EnableImportFindingsForProductRequest' => [ 'type' => 'structure', 'required' => [ 'ProductArn', ], 'members' => [ 'ProductArn' => [ 'shape' => 'NonEmptyString', ], ], ], 'EnableImportFindingsForProductResponse' => [ 'type' => 'structure', 'members' => [ 'ProductSubscriptionArn' => [ 'shape' => 'NonEmptyString', ], ], ], 'EnableSecurityHubRequest' => [ 'type' => 'structure', 'members' => [], ], 'EnableSecurityHubResponse' => [ 'type' => 'structure', 'members' => [], ], 'FieldMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'NonEmptyString', ], 'value' => [ 'shape' => 'NonEmptyString', ], ], 'GetEnabledStandardsRequest' => [ 'type' => 'structure', 'members' => [ 'StandardsSubscriptionArns' => [ 'shape' => 'StandardsSubscriptionArns', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'GetEnabledStandardsResponse' => [ 'type' => 'structure', 'members' => [ 'StandardsSubscriptions' => [ 'shape' => 'StandardsSubscriptions', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetFindingsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'AwsSecurityFindingFilters', ], 'SortCriteria' => [ 'shape' => 'SortCriteria', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'GetFindingsResponse' => [ 'type' => 'structure', 'required' => [ 'Findings', ], 'members' => [ 'Findings' => [ 'shape' => 'AwsSecurityFindingList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetInsightResultsRequest' => [ 'type' => 'structure', 'required' => [ 'InsightArn', ], 'members' => [ 'InsightArn' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'InsightArn', ], ], ], 'GetInsightResultsResponse' => [ 'type' => 'structure', 'required' => [ 'InsightResults', ], 'members' => [ 'InsightResults' => [ 'shape' => 'InsightResults', ], ], ], 'GetInsightsRequest' => [ 'type' => 'structure', 'members' => [ 'InsightArns' => [ 'shape' => 'ArnList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'GetInsightsResponse' => [ 'type' => 'structure', 'required' => [ 'Insights', ], 'members' => [ 'Insights' => [ 'shape' => 'InsightList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetInvitationsCountRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetInvitationsCountResponse' => [ 'type' => 'structure', 'members' => [ 'InvitationsCount' => [ 'shape' => 'Integer', ], ], ], 'GetMasterAccountRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetMasterAccountResponse' => [ 'type' => 'structure', 'members' => [ 'Master' => [ 'shape' => 'Invitation', ], ], ], 'GetMembersRequest' => [ 'type' => 'structure', 'required' => [ 'AccountIds', ], 'members' => [ 'AccountIds' => [ 'shape' => 'AccountIdList', ], ], ], 'GetMembersResponse' => [ 'type' => 'structure', 'members' => [ 'Members' => [ 'shape' => 'MemberList', ], 'UnprocessedAccounts' => [ 'shape' => 'ResultList', ], ], ], 'ImportFindingsError' => [ 'type' => 'structure', 'required' => [ 'Id', 'ErrorCode', 'ErrorMessage', ], 'members' => [ 'Id' => [ 'shape' => 'NonEmptyString', ], 'ErrorCode' => [ 'shape' => 'NonEmptyString', ], 'ErrorMessage' => [ 'shape' => 'NonEmptyString', ], ], ], 'ImportFindingsErrorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportFindingsError', ], ], 'Insight' => [ 'type' => 'structure', 'required' => [ 'InsightArn', 'Name', 'Filters', 'GroupByAttribute', ], 'members' => [ 'InsightArn' => [ 'shape' => 'NonEmptyString', ], 'Name' => [ 'shape' => 'NonEmptyString', ], 'Filters' => [ 'shape' => 'AwsSecurityFindingFilters', ], 'GroupByAttribute' => [ 'shape' => 'NonEmptyString', ], ], ], 'InsightList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Insight', ], ], 'InsightResultValue' => [ 'type' => 'structure', 'required' => [ 'GroupByAttributeValue', 'Count', ], 'members' => [ 'GroupByAttributeValue' => [ 'shape' => 'NonEmptyString', ], 'Count' => [ 'shape' => 'Integer', ], ], ], 'InsightResultValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InsightResultValue', ], ], 'InsightResults' => [ 'type' => 'structure', 'required' => [ 'InsightArn', 'GroupByAttribute', 'ResultValues', ], 'members' => [ 'InsightArn' => [ 'shape' => 'NonEmptyString', ], 'GroupByAttribute' => [ 'shape' => 'NonEmptyString', ], 'ResultValues' => [ 'shape' => 'InsightResultValueList', ], ], ], 'Integer' => [ 'type' => 'integer', ], 'InternalException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NonEmptyString', ], 'Code' => [ 'shape' => 'NonEmptyString', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, ], 'InvalidAccessException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NonEmptyString', ], 'Code' => [ 'shape' => 'NonEmptyString', ], ], 'error' => [ 'httpStatusCode' => 401, ], 'exception' => true, ], 'InvalidInputException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NonEmptyString', ], 'Code' => [ 'shape' => 'NonEmptyString', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'Invitation' => [ 'type' => 'structure', 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'InvitationId' => [ 'shape' => 'NonEmptyString', ], 'InvitedAt' => [ 'shape' => 'Timestamp', ], 'MemberStatus' => [ 'shape' => 'NonEmptyString', ], ], ], 'InvitationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Invitation', ], ], 'InviteMembersRequest' => [ 'type' => 'structure', 'members' => [ 'AccountIds' => [ 'shape' => 'AccountIdList', ], ], ], 'InviteMembersResponse' => [ 'type' => 'structure', 'members' => [ 'UnprocessedAccounts' => [ 'shape' => 'ResultList', ], ], ], 'IpFilter' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'NonEmptyString', ], ], ], 'IpFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpFilter', ], ], 'KeywordFilter' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'NonEmptyString', ], ], ], 'KeywordFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeywordFilter', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NonEmptyString', ], 'Code' => [ 'shape' => 'NonEmptyString', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'ListEnabledProductsForImportRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'MaxResults', ], ], ], 'ListEnabledProductsForImportResponse' => [ 'type' => 'structure', 'members' => [ 'ProductSubscriptions' => [ 'shape' => 'ProductSubscriptionArnList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListInvitationsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], ], 'ListInvitationsResponse' => [ 'type' => 'structure', 'members' => [ 'Invitations' => [ 'shape' => 'InvitationList', ], 'NextToken' => [ 'shape' => 'NonEmptyString', ], ], ], 'ListMembersRequest' => [ 'type' => 'structure', 'members' => [ 'OnlyAssociated' => [ 'shape' => 'Boolean', 'location' => 'querystring', 'locationName' => 'OnlyAssociated', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'NextToken', ], ], ], 'ListMembersResponse' => [ 'type' => 'structure', 'members' => [ 'Members' => [ 'shape' => 'MemberList', ], 'NextToken' => [ 'shape' => 'NonEmptyString', ], ], ], 'Malware' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NonEmptyString', ], 'Type' => [ 'shape' => 'MalwareType', ], 'Path' => [ 'shape' => 'NonEmptyString', ], 'State' => [ 'shape' => 'MalwareState', ], ], ], 'MalwareList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Malware', ], ], 'MalwareState' => [ 'type' => 'string', 'enum' => [ 'OBSERVED', 'REMOVAL_FAILED', 'REMOVED', ], ], 'MalwareType' => [ 'type' => 'string', 'enum' => [ 'ADWARE', 'BLENDED_THREAT', 'BOTNET_AGENT', 'COIN_MINER', 'EXPLOIT_KIT', 'KEYLOGGER', 'MACRO', 'POTENTIALLY_UNWANTED', 'SPYWARE', 'RANSOMWARE', 'REMOTE_ACCESS', 'ROOTKIT', 'TROJAN', 'VIRUS', 'WORM', ], ], 'MapFilter' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'NonEmptyString', ], 'Value' => [ 'shape' => 'NonEmptyString', ], 'Comparison' => [ 'shape' => 'MapFilterComparison', ], ], ], 'MapFilterComparison' => [ 'type' => 'string', 'enum' => [ 'CONTAINS', ], ], 'MapFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MapFilter', ], ], 'MaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'Member' => [ 'type' => 'structure', 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'Email' => [ 'shape' => 'NonEmptyString', ], 'MasterId' => [ 'shape' => 'NonEmptyString', ], 'MemberStatus' => [ 'shape' => 'NonEmptyString', ], 'InvitedAt' => [ 'shape' => 'Timestamp', ], 'UpdatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'MemberList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Member', ], ], 'Network' => [ 'type' => 'structure', 'members' => [ 'Direction' => [ 'shape' => 'NetworkDirection', ], 'Protocol' => [ 'shape' => 'NonEmptyString', ], 'SourceIpV4' => [ 'shape' => 'NonEmptyString', ], 'SourceIpV6' => [ 'shape' => 'NonEmptyString', ], 'SourcePort' => [ 'shape' => 'Integer', ], 'SourceDomain' => [ 'shape' => 'NonEmptyString', ], 'SourceMac' => [ 'shape' => 'NonEmptyString', ], 'DestinationIpV4' => [ 'shape' => 'NonEmptyString', ], 'DestinationIpV6' => [ 'shape' => 'NonEmptyString', ], 'DestinationPort' => [ 'shape' => 'Integer', ], 'DestinationDomain' => [ 'shape' => 'NonEmptyString', ], ], ], 'NetworkDirection' => [ 'type' => 'string', 'enum' => [ 'IN', 'OUT', ], ], 'NextToken' => [ 'type' => 'string', ], 'NonEmptyString' => [ 'type' => 'string', 'pattern' => '.*\\S.*', ], 'Note' => [ 'type' => 'structure', 'required' => [ 'Text', 'UpdatedBy', 'UpdatedAt', ], 'members' => [ 'Text' => [ 'shape' => 'NonEmptyString', ], 'UpdatedBy' => [ 'shape' => 'NonEmptyString', ], 'UpdatedAt' => [ 'shape' => 'NonEmptyString', ], ], ], 'NoteUpdate' => [ 'type' => 'structure', 'required' => [ 'Text', 'UpdatedBy', ], 'members' => [ 'Text' => [ 'shape' => 'NonEmptyString', ], 'UpdatedBy' => [ 'shape' => 'NonEmptyString', ], ], ], 'NumberFilter' => [ 'type' => 'structure', 'members' => [ 'Gte' => [ 'shape' => 'Double', ], 'Lte' => [ 'shape' => 'Double', ], 'Eq' => [ 'shape' => 'Double', ], ], ], 'NumberFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NumberFilter', ], ], 'Partition' => [ 'type' => 'string', 'enum' => [ 'aws', 'aws-cn', 'aws-us-gov', ], ], 'ProcessDetails' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'NonEmptyString', ], 'Path' => [ 'shape' => 'NonEmptyString', ], 'Pid' => [ 'shape' => 'Integer', ], 'ParentPid' => [ 'shape' => 'Integer', ], 'LaunchedAt' => [ 'shape' => 'NonEmptyString', ], 'TerminatedAt' => [ 'shape' => 'NonEmptyString', ], ], ], 'ProductSubscriptionArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonEmptyString', ], ], 'Recommendation' => [ 'type' => 'structure', 'members' => [ 'Text' => [ 'shape' => 'NonEmptyString', ], 'Url' => [ 'shape' => 'NonEmptyString', ], ], ], 'RecordState' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'ARCHIVED', ], ], 'RelatedFinding' => [ 'type' => 'structure', 'required' => [ 'ProductArn', 'Id', ], 'members' => [ 'ProductArn' => [ 'shape' => 'NonEmptyString', ], 'Id' => [ 'shape' => 'NonEmptyString', ], ], ], 'RelatedFindingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RelatedFinding', ], ], 'Remediation' => [ 'type' => 'structure', 'members' => [ 'Recommendation' => [ 'shape' => 'Recommendation', ], ], ], 'Resource' => [ 'type' => 'structure', 'required' => [ 'Type', 'Id', ], 'members' => [ 'Type' => [ 'shape' => 'NonEmptyString', ], 'Id' => [ 'shape' => 'NonEmptyString', ], 'Partition' => [ 'shape' => 'Partition', ], 'Region' => [ 'shape' => 'NonEmptyString', ], 'Tags' => [ 'shape' => 'FieldMap', ], 'Details' => [ 'shape' => 'ResourceDetails', ], ], ], 'ResourceConflictException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NonEmptyString', ], 'Code' => [ 'shape' => 'NonEmptyString', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'ResourceDetails' => [ 'type' => 'structure', 'members' => [ 'AwsEc2Instance' => [ 'shape' => 'AwsEc2InstanceDetails', ], 'AwsS3Bucket' => [ 'shape' => 'AwsS3BucketDetails', ], 'AwsIamAccessKey' => [ 'shape' => 'AwsIamAccessKeyDetails', ], 'Container' => [ 'shape' => 'ContainerDetails', ], 'Other' => [ 'shape' => 'FieldMap', ], ], ], 'ResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Resource', ], ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'NonEmptyString', ], 'Code' => [ 'shape' => 'NonEmptyString', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'Result' => [ 'type' => 'structure', 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'ProcessingResult' => [ 'shape' => 'NonEmptyString', ], ], ], 'ResultList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Result', ], ], 'Severity' => [ 'type' => 'structure', 'required' => [ 'Normalized', ], 'members' => [ 'Product' => [ 'shape' => 'Double', ], 'Normalized' => [ 'shape' => 'Integer', ], ], ], 'SortCriteria' => [ 'type' => 'list', 'member' => [ 'shape' => 'SortCriterion', ], ], 'SortCriterion' => [ 'type' => 'structure', 'members' => [ 'Field' => [ 'shape' => 'NonEmptyString', ], 'SortOrder' => [ 'shape' => 'SortOrder', ], ], ], 'SortOrder' => [ 'type' => 'string', 'enum' => [ 'asc', 'desc', ], ], 'StandardsInputParameterMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'NonEmptyString', ], 'value' => [ 'shape' => 'NonEmptyString', ], ], 'StandardsStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'READY', 'FAILED', 'DELETING', ], ], 'StandardsSubscription' => [ 'type' => 'structure', 'required' => [ 'StandardsSubscriptionArn', 'StandardsArn', 'StandardsInput', 'StandardsStatus', ], 'members' => [ 'StandardsSubscriptionArn' => [ 'shape' => 'NonEmptyString', ], 'StandardsArn' => [ 'shape' => 'NonEmptyString', ], 'StandardsInput' => [ 'shape' => 'StandardsInputParameterMap', ], 'StandardsStatus' => [ 'shape' => 'StandardsStatus', ], ], ], 'StandardsSubscriptionArns' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonEmptyString', ], 'max' => 25, 'min' => 1, ], 'StandardsSubscriptionRequest' => [ 'type' => 'structure', 'required' => [ 'StandardsArn', ], 'members' => [ 'StandardsArn' => [ 'shape' => 'NonEmptyString', ], 'StandardsInput' => [ 'shape' => 'StandardsInputParameterMap', ], ], ], 'StandardsSubscriptionRequests' => [ 'type' => 'list', 'member' => [ 'shape' => 'StandardsSubscriptionRequest', ], 'max' => 25, 'min' => 1, ], 'StandardsSubscriptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'StandardsSubscription', ], ], 'StringFilter' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'NonEmptyString', ], 'Comparison' => [ 'shape' => 'StringFilterComparison', ], ], ], 'StringFilterComparison' => [ 'type' => 'string', 'enum' => [ 'EQUALS', 'CONTAINS', 'PREFIX', ], ], 'StringFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'StringFilter', ], ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonEmptyString', ], ], 'ThreatIntelIndicator' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'ThreatIntelIndicatorType', ], 'Value' => [ 'shape' => 'NonEmptyString', ], 'Category' => [ 'shape' => 'ThreatIntelIndicatorCategory', ], 'LastObservedAt' => [ 'shape' => 'NonEmptyString', ], 'Source' => [ 'shape' => 'NonEmptyString', ], 'SourceUrl' => [ 'shape' => 'NonEmptyString', ], ], ], 'ThreatIntelIndicatorCategory' => [ 'type' => 'string', 'enum' => [ 'BACKDOOR', 'CARD_STEALER', 'COMMAND_AND_CONTROL', 'DROP_SITE', 'EXPLOIT_SITE', 'KEYLOGGER', ], ], 'ThreatIntelIndicatorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ThreatIntelIndicator', ], ], 'ThreatIntelIndicatorType' => [ 'type' => 'string', 'enum' => [ 'DOMAIN', 'EMAIL_ADDRESS', 'HASH_MD5', 'HASH_SHA1', 'HASH_SHA256', 'HASH_SHA512', 'IPV4_ADDRESS', 'IPV6_ADDRESS', 'MUTEX', 'PROCESS', 'URL', ], ], 'Timestamp' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], 'TypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonEmptyString', ], ], 'UpdateFindingsRequest' => [ 'type' => 'structure', 'required' => [ 'Filters', ], 'members' => [ 'Filters' => [ 'shape' => 'AwsSecurityFindingFilters', ], 'Note' => [ 'shape' => 'NoteUpdate', ], 'RecordState' => [ 'shape' => 'RecordState', ], ], ], 'UpdateFindingsResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateInsightRequest' => [ 'type' => 'structure', 'required' => [ 'InsightArn', ], 'members' => [ 'InsightArn' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'InsightArn', ], 'Name' => [ 'shape' => 'NonEmptyString', ], 'Filters' => [ 'shape' => 'AwsSecurityFindingFilters', ], 'GroupByAttribute' => [ 'shape' => 'NonEmptyString', ], ], ], 'UpdateInsightResponse' => [ 'type' => 'structure', 'members' => [], ], 'VerificationState' => [ 'type' => 'string', 'enum' => [ 'UNKNOWN', 'TRUE_POSITIVE', 'FALSE_POSITIVE', 'BENIGN_POSITIVE', ], ], 'WorkflowState' => [ 'type' => 'string', 'enum' => [ 'NEW', 'ASSIGNED', 'IN_PROGRESS', 'DEFERRED', 'RESOLVED', ], ], ],]; diff --git a/lib/aws/Aws/data/securityhub/2018-10-26/paginators-1.json.php b/lib/aws/Aws/data/securityhub/2018-10-26/paginators-1.json.php new file mode 100644 index 0000000..7642bed --- /dev/null +++ b/lib/aws/Aws/data/securityhub/2018-10-26/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/securityhub/2018-10-26/paginators-1.json +return [ 'pagination' => [ 'GetFindings' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'GetInsights' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListEnabledProductsForImport' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/serverlessrepo/2017-09-08/api-2.json.php b/lib/aws/Aws/data/serverlessrepo/2017-09-08/api-2.json.php new file mode 100644 index 0000000..076d22b --- /dev/null +++ b/lib/aws/Aws/data/serverlessrepo/2017-09-08/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/serverlessrepo/2017-09-08/api-2.json +return [ 'metadata' => [ 'apiVersion' => '2017-09-08', 'endpointPrefix' => 'serverlessrepo', 'signingName' => 'serverlessrepo', 'serviceFullName' => 'AWSServerlessApplicationRepository', 'serviceId' => 'ServerlessApplicationRepository', 'protocol' => 'rest-json', 'jsonVersion' => '1.1', 'uid' => 'serverlessrepo-2017-09-08', 'signatureVersion' => 'v4', ], 'operations' => [ 'CreateApplication' => [ 'name' => 'CreateApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/applications', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateApplicationRequest', ], 'output' => [ 'shape' => 'CreateApplicationResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'CreateApplicationVersion' => [ 'name' => 'CreateApplicationVersion', 'http' => [ 'method' => 'PUT', 'requestUri' => '/applications/{applicationId}/versions/{semanticVersion}', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateApplicationVersionRequest', ], 'output' => [ 'shape' => 'CreateApplicationVersionResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'CreateCloudFormationChangeSet' => [ 'name' => 'CreateCloudFormationChangeSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/applications/{applicationId}/changesets', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateCloudFormationChangeSetRequest', ], 'output' => [ 'shape' => 'CreateCloudFormationChangeSetResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'CreateCloudFormationTemplate' => [ 'name' => 'CreateCloudFormationTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/applications/{applicationId}/templates', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateCloudFormationTemplateRequest', ], 'output' => [ 'shape' => 'CreateCloudFormationTemplateResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'DeleteApplication' => [ 'name' => 'DeleteApplication', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/applications/{applicationId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteApplicationRequest', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], 'GetApplication' => [ 'name' => 'GetApplication', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{applicationId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetApplicationRequest', ], 'output' => [ 'shape' => 'GetApplicationResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'GetApplicationPolicy' => [ 'name' => 'GetApplicationPolicy', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{applicationId}/policy', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetApplicationPolicyRequest', ], 'output' => [ 'shape' => 'GetApplicationPolicyResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'GetCloudFormationTemplate' => [ 'name' => 'GetCloudFormationTemplate', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{applicationId}/templates/{templateId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetCloudFormationTemplateRequest', ], 'output' => [ 'shape' => 'GetCloudFormationTemplateResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'ListApplicationDependencies' => [ 'name' => 'ListApplicationDependencies', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{applicationId}/dependencies', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListApplicationDependenciesRequest', ], 'output' => [ 'shape' => 'ListApplicationDependenciesResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'ListApplicationVersions' => [ 'name' => 'ListApplicationVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{applicationId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListApplicationVersionsRequest', ], 'output' => [ 'shape' => 'ListApplicationVersionsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'ListApplications' => [ 'name' => 'ListApplications', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListApplicationsRequest', ], 'output' => [ 'shape' => 'ListApplicationsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'PutApplicationPolicy' => [ 'name' => 'PutApplicationPolicy', 'http' => [ 'method' => 'PUT', 'requestUri' => '/applications/{applicationId}/policy', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PutApplicationPolicyRequest', ], 'output' => [ 'shape' => 'PutApplicationPolicyResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], ], ], 'UpdateApplication' => [ 'name' => 'UpdateApplication', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/applications/{applicationId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateApplicationRequest', ], 'output' => [ 'shape' => 'UpdateApplicationResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'ForbiddenException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ConflictException', ], ], ], ], 'shapes' => [ 'Application' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'locationName' => 'applicationId', ], 'Author' => [ 'shape' => '__string', 'locationName' => 'author', ], 'CreationTime' => [ 'shape' => '__string', 'locationName' => 'creationTime', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'HomePageUrl' => [ 'shape' => '__string', 'locationName' => 'homePageUrl', ], 'Labels' => [ 'shape' => '__listOf__string', 'locationName' => 'labels', ], 'LicenseUrl' => [ 'shape' => '__string', 'locationName' => 'licenseUrl', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'ReadmeUrl' => [ 'shape' => '__string', 'locationName' => 'readmeUrl', ], 'SpdxLicenseId' => [ 'shape' => '__string', 'locationName' => 'spdxLicenseId', ], 'Version' => [ 'shape' => 'Version', 'locationName' => 'version', ], ], 'required' => [ 'Description', 'Author', 'ApplicationId', 'Name', ], ], 'ApplicationDependencyPage' => [ 'type' => 'structure', 'members' => [ 'Dependencies' => [ 'shape' => '__listOfApplicationDependencySummary', 'locationName' => 'dependencies', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], 'required' => [ 'Dependencies', ], ], 'ApplicationDependencySummary' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'locationName' => 'applicationId', ], 'SemanticVersion' => [ 'shape' => '__string', 'locationName' => 'semanticVersion', ], ], 'required' => [ 'ApplicationId', 'SemanticVersion', ], ], 'ApplicationPage' => [ 'type' => 'structure', 'members' => [ 'Applications' => [ 'shape' => '__listOfApplicationSummary', 'locationName' => 'applications', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], 'required' => [ 'Applications', ], ], 'ApplicationPolicy' => [ 'type' => 'structure', 'members' => [ 'Statements' => [ 'shape' => '__listOfApplicationPolicyStatement', 'locationName' => 'statements', ], ], 'required' => [ 'Statements', ], ], 'ApplicationPolicyStatement' => [ 'type' => 'structure', 'members' => [ 'Actions' => [ 'shape' => '__listOf__string', 'locationName' => 'actions', ], 'Principals' => [ 'shape' => '__listOf__string', 'locationName' => 'principals', ], 'StatementId' => [ 'shape' => '__string', 'locationName' => 'statementId', ], ], 'required' => [ 'Principals', 'Actions', ], ], 'ApplicationSummary' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'locationName' => 'applicationId', ], 'Author' => [ 'shape' => '__string', 'locationName' => 'author', ], 'CreationTime' => [ 'shape' => '__string', 'locationName' => 'creationTime', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'HomePageUrl' => [ 'shape' => '__string', 'locationName' => 'homePageUrl', ], 'Labels' => [ 'shape' => '__listOf__string', 'locationName' => 'labels', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'SpdxLicenseId' => [ 'shape' => '__string', 'locationName' => 'spdxLicenseId', ], ], 'required' => [ 'Description', 'Author', 'ApplicationId', 'Name', ], ], 'ApplicationVersionPage' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], 'Versions' => [ 'shape' => '__listOfVersionSummary', 'locationName' => 'versions', ], ], 'required' => [ 'Versions', ], ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'ErrorCode' => [ 'shape' => '__string', 'locationName' => 'errorCode', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 400, ], ], 'Capability' => [ 'type' => 'string', 'enum' => [ 'CAPABILITY_IAM', 'CAPABILITY_NAMED_IAM', 'CAPABILITY_AUTO_EXPAND', 'CAPABILITY_RESOURCE_POLICY', ], ], 'ChangeSetDetails' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'locationName' => 'applicationId', ], 'ChangeSetId' => [ 'shape' => '__string', 'locationName' => 'changeSetId', ], 'SemanticVersion' => [ 'shape' => '__string', 'locationName' => 'semanticVersion', ], 'StackId' => [ 'shape' => '__string', 'locationName' => 'stackId', ], ], 'required' => [ 'ChangeSetId', 'ApplicationId', 'StackId', 'SemanticVersion', ], ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'ErrorCode' => [ 'shape' => '__string', 'locationName' => 'errorCode', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 409, ], ], 'CreateApplicationInput' => [ 'type' => 'structure', 'members' => [ 'Author' => [ 'shape' => '__string', 'locationName' => 'author', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'HomePageUrl' => [ 'shape' => '__string', 'locationName' => 'homePageUrl', ], 'Labels' => [ 'shape' => '__listOf__string', 'locationName' => 'labels', ], 'LicenseBody' => [ 'shape' => '__string', 'locationName' => 'licenseBody', ], 'LicenseUrl' => [ 'shape' => '__string', 'locationName' => 'licenseUrl', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'ReadmeBody' => [ 'shape' => '__string', 'locationName' => 'readmeBody', ], 'ReadmeUrl' => [ 'shape' => '__string', 'locationName' => 'readmeUrl', ], 'SemanticVersion' => [ 'shape' => '__string', 'locationName' => 'semanticVersion', ], 'SourceCodeArchiveUrl' => [ 'shape' => '__string', 'locationName' => 'sourceCodeArchiveUrl', ], 'SourceCodeUrl' => [ 'shape' => '__string', 'locationName' => 'sourceCodeUrl', ], 'SpdxLicenseId' => [ 'shape' => '__string', 'locationName' => 'spdxLicenseId', ], 'TemplateBody' => [ 'shape' => '__string', 'locationName' => 'templateBody', ], 'TemplateUrl' => [ 'shape' => '__string', 'locationName' => 'templateUrl', ], ], 'required' => [ 'Description', 'Name', 'Author', ], ], 'CreateApplicationRequest' => [ 'type' => 'structure', 'members' => [ 'Author' => [ 'shape' => '__string', 'locationName' => 'author', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'HomePageUrl' => [ 'shape' => '__string', 'locationName' => 'homePageUrl', ], 'Labels' => [ 'shape' => '__listOf__string', 'locationName' => 'labels', ], 'LicenseBody' => [ 'shape' => '__string', 'locationName' => 'licenseBody', ], 'LicenseUrl' => [ 'shape' => '__string', 'locationName' => 'licenseUrl', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'ReadmeBody' => [ 'shape' => '__string', 'locationName' => 'readmeBody', ], 'ReadmeUrl' => [ 'shape' => '__string', 'locationName' => 'readmeUrl', ], 'SemanticVersion' => [ 'shape' => '__string', 'locationName' => 'semanticVersion', ], 'SourceCodeArchiveUrl' => [ 'shape' => '__string', 'locationName' => 'sourceCodeArchiveUrl', ], 'SourceCodeUrl' => [ 'shape' => '__string', 'locationName' => 'sourceCodeUrl', ], 'SpdxLicenseId' => [ 'shape' => '__string', 'locationName' => 'spdxLicenseId', ], 'TemplateBody' => [ 'shape' => '__string', 'locationName' => 'templateBody', ], 'TemplateUrl' => [ 'shape' => '__string', 'locationName' => 'templateUrl', ], ], 'required' => [ 'Description', 'Name', 'Author', ], ], 'CreateApplicationResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'locationName' => 'applicationId', ], 'Author' => [ 'shape' => '__string', 'locationName' => 'author', ], 'CreationTime' => [ 'shape' => '__string', 'locationName' => 'creationTime', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'HomePageUrl' => [ 'shape' => '__string', 'locationName' => 'homePageUrl', ], 'Labels' => [ 'shape' => '__listOf__string', 'locationName' => 'labels', ], 'LicenseUrl' => [ 'shape' => '__string', 'locationName' => 'licenseUrl', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'ReadmeUrl' => [ 'shape' => '__string', 'locationName' => 'readmeUrl', ], 'SpdxLicenseId' => [ 'shape' => '__string', 'locationName' => 'spdxLicenseId', ], 'Version' => [ 'shape' => 'Version', 'locationName' => 'version', ], ], ], 'CreateApplicationVersionInput' => [ 'type' => 'structure', 'members' => [ 'SourceCodeArchiveUrl' => [ 'shape' => '__string', 'locationName' => 'sourceCodeArchiveUrl', ], 'SourceCodeUrl' => [ 'shape' => '__string', 'locationName' => 'sourceCodeUrl', ], 'TemplateBody' => [ 'shape' => '__string', 'locationName' => 'templateBody', ], 'TemplateUrl' => [ 'shape' => '__string', 'locationName' => 'templateUrl', ], ], ], 'CreateApplicationVersionRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'applicationId', ], 'SemanticVersion' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'semanticVersion', ], 'SourceCodeArchiveUrl' => [ 'shape' => '__string', 'locationName' => 'sourceCodeArchiveUrl', ], 'SourceCodeUrl' => [ 'shape' => '__string', 'locationName' => 'sourceCodeUrl', ], 'TemplateBody' => [ 'shape' => '__string', 'locationName' => 'templateBody', ], 'TemplateUrl' => [ 'shape' => '__string', 'locationName' => 'templateUrl', ], ], 'required' => [ 'ApplicationId', 'SemanticVersion', ], ], 'CreateApplicationVersionResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'locationName' => 'applicationId', ], 'CreationTime' => [ 'shape' => '__string', 'locationName' => 'creationTime', ], 'ParameterDefinitions' => [ 'shape' => '__listOfParameterDefinition', 'locationName' => 'parameterDefinitions', ], 'RequiredCapabilities' => [ 'shape' => '__listOfCapability', 'locationName' => 'requiredCapabilities', ], 'ResourcesSupported' => [ 'shape' => '__boolean', 'locationName' => 'resourcesSupported', ], 'SemanticVersion' => [ 'shape' => '__string', 'locationName' => 'semanticVersion', ], 'SourceCodeArchiveUrl' => [ 'shape' => '__string', 'locationName' => 'sourceCodeArchiveUrl', ], 'SourceCodeUrl' => [ 'shape' => '__string', 'locationName' => 'sourceCodeUrl', ], 'TemplateUrl' => [ 'shape' => '__string', 'locationName' => 'templateUrl', ], ], ], 'CreateCloudFormationChangeSetInput' => [ 'type' => 'structure', 'members' => [ 'Capabilities' => [ 'shape' => '__listOf__string', 'locationName' => 'capabilities', ], 'ChangeSetName' => [ 'shape' => '__string', 'locationName' => 'changeSetName', ], 'ClientToken' => [ 'shape' => '__string', 'locationName' => 'clientToken', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'NotificationArns' => [ 'shape' => '__listOf__string', 'locationName' => 'notificationArns', ], 'ParameterOverrides' => [ 'shape' => '__listOfParameterValue', 'locationName' => 'parameterOverrides', ], 'ResourceTypes' => [ 'shape' => '__listOf__string', 'locationName' => 'resourceTypes', ], 'RollbackConfiguration' => [ 'shape' => 'RollbackConfiguration', 'locationName' => 'rollbackConfiguration', ], 'SemanticVersion' => [ 'shape' => '__string', 'locationName' => 'semanticVersion', ], 'StackName' => [ 'shape' => '__string', 'locationName' => 'stackName', ], 'Tags' => [ 'shape' => '__listOfTag', 'locationName' => 'tags', ], 'TemplateId' => [ 'shape' => '__string', 'locationName' => 'templateId', ], ], 'required' => [ 'StackName', ], ], 'CreateCloudFormationChangeSetRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'applicationId', ], 'Capabilities' => [ 'shape' => '__listOf__string', 'locationName' => 'capabilities', ], 'ChangeSetName' => [ 'shape' => '__string', 'locationName' => 'changeSetName', ], 'ClientToken' => [ 'shape' => '__string', 'locationName' => 'clientToken', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'NotificationArns' => [ 'shape' => '__listOf__string', 'locationName' => 'notificationArns', ], 'ParameterOverrides' => [ 'shape' => '__listOfParameterValue', 'locationName' => 'parameterOverrides', ], 'ResourceTypes' => [ 'shape' => '__listOf__string', 'locationName' => 'resourceTypes', ], 'RollbackConfiguration' => [ 'shape' => 'RollbackConfiguration', 'locationName' => 'rollbackConfiguration', ], 'SemanticVersion' => [ 'shape' => '__string', 'locationName' => 'semanticVersion', ], 'StackName' => [ 'shape' => '__string', 'locationName' => 'stackName', ], 'Tags' => [ 'shape' => '__listOfTag', 'locationName' => 'tags', ], 'TemplateId' => [ 'shape' => '__string', 'locationName' => 'templateId', ], ], 'required' => [ 'ApplicationId', 'StackName', ], ], 'CreateCloudFormationChangeSetResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'locationName' => 'applicationId', ], 'ChangeSetId' => [ 'shape' => '__string', 'locationName' => 'changeSetId', ], 'SemanticVersion' => [ 'shape' => '__string', 'locationName' => 'semanticVersion', ], 'StackId' => [ 'shape' => '__string', 'locationName' => 'stackId', ], ], ], 'CreateCloudFormationTemplateRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'applicationId', ], 'SemanticVersion' => [ 'shape' => '__string', 'locationName' => 'semanticVersion', ], ], 'required' => [ 'ApplicationId', ], ], 'CreateCloudFormationTemplateResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'locationName' => 'applicationId', ], 'CreationTime' => [ 'shape' => '__string', 'locationName' => 'creationTime', ], 'ExpirationTime' => [ 'shape' => '__string', 'locationName' => 'expirationTime', ], 'SemanticVersion' => [ 'shape' => '__string', 'locationName' => 'semanticVersion', ], 'Status' => [ 'shape' => 'Status', 'locationName' => 'status', ], 'TemplateId' => [ 'shape' => '__string', 'locationName' => 'templateId', ], 'TemplateUrl' => [ 'shape' => '__string', 'locationName' => 'templateUrl', ], ], ], 'DeleteApplicationRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'applicationId', ], ], 'required' => [ 'ApplicationId', ], ], 'ForbiddenException' => [ 'type' => 'structure', 'members' => [ 'ErrorCode' => [ 'shape' => '__string', 'locationName' => 'errorCode', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 403, ], ], 'GetApplicationPolicyRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'applicationId', ], ], 'required' => [ 'ApplicationId', ], ], 'GetApplicationPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'Statements' => [ 'shape' => '__listOfApplicationPolicyStatement', 'locationName' => 'statements', ], ], ], 'GetApplicationRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'applicationId', ], 'SemanticVersion' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'semanticVersion', ], ], 'required' => [ 'ApplicationId', ], ], 'GetApplicationResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'locationName' => 'applicationId', ], 'Author' => [ 'shape' => '__string', 'locationName' => 'author', ], 'CreationTime' => [ 'shape' => '__string', 'locationName' => 'creationTime', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'HomePageUrl' => [ 'shape' => '__string', 'locationName' => 'homePageUrl', ], 'Labels' => [ 'shape' => '__listOf__string', 'locationName' => 'labels', ], 'LicenseUrl' => [ 'shape' => '__string', 'locationName' => 'licenseUrl', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'ReadmeUrl' => [ 'shape' => '__string', 'locationName' => 'readmeUrl', ], 'SpdxLicenseId' => [ 'shape' => '__string', 'locationName' => 'spdxLicenseId', ], 'Version' => [ 'shape' => 'Version', 'locationName' => 'version', ], ], ], 'GetCloudFormationTemplateRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'applicationId', ], 'TemplateId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'templateId', ], ], 'required' => [ 'ApplicationId', 'TemplateId', ], ], 'GetCloudFormationTemplateResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'locationName' => 'applicationId', ], 'CreationTime' => [ 'shape' => '__string', 'locationName' => 'creationTime', ], 'ExpirationTime' => [ 'shape' => '__string', 'locationName' => 'expirationTime', ], 'SemanticVersion' => [ 'shape' => '__string', 'locationName' => 'semanticVersion', ], 'Status' => [ 'shape' => 'Status', 'locationName' => 'status', ], 'TemplateId' => [ 'shape' => '__string', 'locationName' => 'templateId', ], 'TemplateUrl' => [ 'shape' => '__string', 'locationName' => 'templateUrl', ], ], ], 'InternalServerErrorException' => [ 'type' => 'structure', 'members' => [ 'ErrorCode' => [ 'shape' => '__string', 'locationName' => 'errorCode', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 500, ], ], 'ListApplicationDependenciesRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'applicationId', ], 'MaxItems' => [ 'shape' => 'MaxItems', 'location' => 'querystring', 'locationName' => 'maxItems', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'SemanticVersion' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'semanticVersion', ], ], 'required' => [ 'ApplicationId', ], ], 'ListApplicationDependenciesResponse' => [ 'type' => 'structure', 'members' => [ 'Dependencies' => [ 'shape' => '__listOfApplicationDependencySummary', 'locationName' => 'dependencies', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'ListApplicationVersionsRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'applicationId', ], 'MaxItems' => [ 'shape' => 'MaxItems', 'location' => 'querystring', 'locationName' => 'maxItems', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], 'required' => [ 'ApplicationId', ], ], 'ListApplicationVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], 'Versions' => [ 'shape' => '__listOfVersionSummary', 'locationName' => 'versions', ], ], ], 'ListApplicationsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxItems' => [ 'shape' => 'MaxItems', 'location' => 'querystring', 'locationName' => 'maxItems', ], 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListApplicationsResponse' => [ 'type' => 'structure', 'members' => [ 'Applications' => [ 'shape' => '__listOfApplicationSummary', 'locationName' => 'applications', ], 'NextToken' => [ 'shape' => '__string', 'locationName' => 'nextToken', ], ], ], 'MaxItems' => [ 'type' => 'integer', 'min' => 1, 'max' => 100, ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'ErrorCode' => [ 'shape' => '__string', 'locationName' => 'errorCode', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 404, ], ], 'ParameterDefinition' => [ 'type' => 'structure', 'members' => [ 'AllowedPattern' => [ 'shape' => '__string', 'locationName' => 'allowedPattern', ], 'AllowedValues' => [ 'shape' => '__listOf__string', 'locationName' => 'allowedValues', ], 'ConstraintDescription' => [ 'shape' => '__string', 'locationName' => 'constraintDescription', ], 'DefaultValue' => [ 'shape' => '__string', 'locationName' => 'defaultValue', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'MaxLength' => [ 'shape' => '__integer', 'locationName' => 'maxLength', ], 'MaxValue' => [ 'shape' => '__integer', 'locationName' => 'maxValue', ], 'MinLength' => [ 'shape' => '__integer', 'locationName' => 'minLength', ], 'MinValue' => [ 'shape' => '__integer', 'locationName' => 'minValue', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'NoEcho' => [ 'shape' => '__boolean', 'locationName' => 'noEcho', ], 'ReferencedByResources' => [ 'shape' => '__listOf__string', 'locationName' => 'referencedByResources', ], 'Type' => [ 'shape' => '__string', 'locationName' => 'type', ], ], 'required' => [ 'ReferencedByResources', 'Name', ], ], 'ParameterValue' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'Value' => [ 'shape' => '__string', 'locationName' => 'value', ], ], 'required' => [ 'Value', 'Name', ], ], 'PutApplicationPolicyRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'applicationId', ], 'Statements' => [ 'shape' => '__listOfApplicationPolicyStatement', 'locationName' => 'statements', ], ], 'required' => [ 'ApplicationId', 'Statements', ], ], 'PutApplicationPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'Statements' => [ 'shape' => '__listOfApplicationPolicyStatement', 'locationName' => 'statements', ], ], ], 'RollbackConfiguration' => [ 'type' => 'structure', 'members' => [ 'MonitoringTimeInMinutes' => [ 'shape' => '__integer', 'locationName' => 'monitoringTimeInMinutes', ], 'RollbackTriggers' => [ 'shape' => '__listOfRollbackTrigger', 'locationName' => 'rollbackTriggers', ], ], ], 'RollbackTrigger' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => '__string', 'locationName' => 'arn', ], 'Type' => [ 'shape' => '__string', 'locationName' => 'type', ], ], 'required' => [ 'Type', 'Arn', ], ], 'Status' => [ 'type' => 'string', 'enum' => [ 'PREPARING', 'ACTIVE', 'EXPIRED', ], ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => '__string', 'locationName' => 'key', ], 'Value' => [ 'shape' => '__string', 'locationName' => 'value', ], ], 'required' => [ 'Value', 'Key', ], ], 'TemplateDetails' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'locationName' => 'applicationId', ], 'CreationTime' => [ 'shape' => '__string', 'locationName' => 'creationTime', ], 'ExpirationTime' => [ 'shape' => '__string', 'locationName' => 'expirationTime', ], 'SemanticVersion' => [ 'shape' => '__string', 'locationName' => 'semanticVersion', ], 'Status' => [ 'shape' => 'Status', 'locationName' => 'status', ], 'TemplateId' => [ 'shape' => '__string', 'locationName' => 'templateId', ], 'TemplateUrl' => [ 'shape' => '__string', 'locationName' => 'templateUrl', ], ], 'required' => [ 'Status', 'TemplateUrl', 'CreationTime', 'ExpirationTime', 'ApplicationId', 'TemplateId', 'SemanticVersion', ], ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'ErrorCode' => [ 'shape' => '__string', 'locationName' => 'errorCode', ], 'Message' => [ 'shape' => '__string', 'locationName' => 'message', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 429, ], ], 'UpdateApplicationInput' => [ 'type' => 'structure', 'members' => [ 'Author' => [ 'shape' => '__string', 'locationName' => 'author', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'HomePageUrl' => [ 'shape' => '__string', 'locationName' => 'homePageUrl', ], 'Labels' => [ 'shape' => '__listOf__string', 'locationName' => 'labels', ], 'ReadmeBody' => [ 'shape' => '__string', 'locationName' => 'readmeBody', ], 'ReadmeUrl' => [ 'shape' => '__string', 'locationName' => 'readmeUrl', ], ], ], 'UpdateApplicationRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'applicationId', ], 'Author' => [ 'shape' => '__string', 'locationName' => 'author', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'HomePageUrl' => [ 'shape' => '__string', 'locationName' => 'homePageUrl', ], 'Labels' => [ 'shape' => '__listOf__string', 'locationName' => 'labels', ], 'ReadmeBody' => [ 'shape' => '__string', 'locationName' => 'readmeBody', ], 'ReadmeUrl' => [ 'shape' => '__string', 'locationName' => 'readmeUrl', ], ], 'required' => [ 'ApplicationId', ], ], 'UpdateApplicationResponse' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'locationName' => 'applicationId', ], 'Author' => [ 'shape' => '__string', 'locationName' => 'author', ], 'CreationTime' => [ 'shape' => '__string', 'locationName' => 'creationTime', ], 'Description' => [ 'shape' => '__string', 'locationName' => 'description', ], 'HomePageUrl' => [ 'shape' => '__string', 'locationName' => 'homePageUrl', ], 'Labels' => [ 'shape' => '__listOf__string', 'locationName' => 'labels', ], 'LicenseUrl' => [ 'shape' => '__string', 'locationName' => 'licenseUrl', ], 'Name' => [ 'shape' => '__string', 'locationName' => 'name', ], 'ReadmeUrl' => [ 'shape' => '__string', 'locationName' => 'readmeUrl', ], 'SpdxLicenseId' => [ 'shape' => '__string', 'locationName' => 'spdxLicenseId', ], 'Version' => [ 'shape' => 'Version', 'locationName' => 'version', ], ], ], 'Version' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'locationName' => 'applicationId', ], 'CreationTime' => [ 'shape' => '__string', 'locationName' => 'creationTime', ], 'ParameterDefinitions' => [ 'shape' => '__listOfParameterDefinition', 'locationName' => 'parameterDefinitions', ], 'RequiredCapabilities' => [ 'shape' => '__listOfCapability', 'locationName' => 'requiredCapabilities', ], 'ResourcesSupported' => [ 'shape' => '__boolean', 'locationName' => 'resourcesSupported', ], 'SemanticVersion' => [ 'shape' => '__string', 'locationName' => 'semanticVersion', ], 'SourceCodeArchiveUrl' => [ 'shape' => '__string', 'locationName' => 'sourceCodeArchiveUrl', ], 'SourceCodeUrl' => [ 'shape' => '__string', 'locationName' => 'sourceCodeUrl', ], 'TemplateUrl' => [ 'shape' => '__string', 'locationName' => 'templateUrl', ], ], 'required' => [ 'TemplateUrl', 'ParameterDefinitions', 'ResourcesSupported', 'CreationTime', 'RequiredCapabilities', 'ApplicationId', 'SemanticVersion', ], ], 'VersionSummary' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => '__string', 'locationName' => 'applicationId', ], 'CreationTime' => [ 'shape' => '__string', 'locationName' => 'creationTime', ], 'SemanticVersion' => [ 'shape' => '__string', 'locationName' => 'semanticVersion', ], 'SourceCodeUrl' => [ 'shape' => '__string', 'locationName' => 'sourceCodeUrl', ], ], 'required' => [ 'CreationTime', 'ApplicationId', 'SemanticVersion', ], ], '__boolean' => [ 'type' => 'boolean', ], '__double' => [ 'type' => 'double', ], '__integer' => [ 'type' => 'integer', ], '__listOfApplicationDependencySummary' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApplicationDependencySummary', ], ], '__listOfApplicationPolicyStatement' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApplicationPolicyStatement', ], ], '__listOfApplicationSummary' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApplicationSummary', ], ], '__listOfCapability' => [ 'type' => 'list', 'member' => [ 'shape' => 'Capability', ], ], '__listOfParameterDefinition' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParameterDefinition', ], ], '__listOfParameterValue' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParameterValue', ], ], '__listOfRollbackTrigger' => [ 'type' => 'list', 'member' => [ 'shape' => 'RollbackTrigger', ], ], '__listOfTag' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], '__listOfVersionSummary' => [ 'type' => 'list', 'member' => [ 'shape' => 'VersionSummary', ], ], '__listOf__string' => [ 'type' => 'list', 'member' => [ 'shape' => '__string', ], ], '__long' => [ 'type' => 'long', ], '__string' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/serverlessrepo/2017-09-08/paginators-1.json.php b/lib/aws/Aws/data/serverlessrepo/2017-09-08/paginators-1.json.php new file mode 100644 index 0000000..adc0aee --- /dev/null +++ b/lib/aws/Aws/data/serverlessrepo/2017-09-08/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/serverlessrepo/2017-09-08/paginators-1.json +return [ 'pagination' => [ 'ListApplicationVersions' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxItems', ], 'ListApplications' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxItems', ], 'ListApplicationDependencies' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxItems', ], ],]; diff --git a/lib/aws/Aws/data/servicecatalog/2015-12-10/api-2.json.php b/lib/aws/Aws/data/servicecatalog/2015-12-10/api-2.json.php new file mode 100644 index 0000000..4ae4909 --- /dev/null +++ b/lib/aws/Aws/data/servicecatalog/2015-12-10/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/servicecatalog/2015-12-10/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-12-10', 'endpointPrefix' => 'servicecatalog', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWS Service Catalog', 'serviceId' => 'Service Catalog', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWS242ServiceCatalogService', 'uid' => 'servicecatalog-2015-12-10', ], 'operations' => [ 'AcceptPortfolioShare' => [ 'name' => 'AcceptPortfolioShare', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptPortfolioShareInput', ], 'output' => [ 'shape' => 'AcceptPortfolioShareOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'AssociatePrincipalWithPortfolio' => [ 'name' => 'AssociatePrincipalWithPortfolio', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociatePrincipalWithPortfolioInput', ], 'output' => [ 'shape' => 'AssociatePrincipalWithPortfolioOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'AssociateProductWithPortfolio' => [ 'name' => 'AssociateProductWithPortfolio', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateProductWithPortfolioInput', ], 'output' => [ 'shape' => 'AssociateProductWithPortfolioOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'AssociateServiceActionWithProvisioningArtifact' => [ 'name' => 'AssociateServiceActionWithProvisioningArtifact', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateServiceActionWithProvisioningArtifactInput', ], 'output' => [ 'shape' => 'AssociateServiceActionWithProvisioningArtifactOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'DuplicateResourceException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'AssociateTagOptionWithResource' => [ 'name' => 'AssociateTagOptionWithResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateTagOptionWithResourceInput', ], 'output' => [ 'shape' => 'AssociateTagOptionWithResourceOutput', ], 'errors' => [ [ 'shape' => 'TagOptionNotMigratedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'DuplicateResourceException', ], [ 'shape' => 'InvalidStateException', ], ], ], 'BatchAssociateServiceActionWithProvisioningArtifact' => [ 'name' => 'BatchAssociateServiceActionWithProvisioningArtifact', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchAssociateServiceActionWithProvisioningArtifactInput', ], 'output' => [ 'shape' => 'BatchAssociateServiceActionWithProvisioningArtifactOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], ], ], 'BatchDisassociateServiceActionFromProvisioningArtifact' => [ 'name' => 'BatchDisassociateServiceActionFromProvisioningArtifact', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BatchDisassociateServiceActionFromProvisioningArtifactInput', ], 'output' => [ 'shape' => 'BatchDisassociateServiceActionFromProvisioningArtifactOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], ], ], 'CopyProduct' => [ 'name' => 'CopyProduct', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyProductInput', ], 'output' => [ 'shape' => 'CopyProductOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], ], ], 'CreateConstraint' => [ 'name' => 'CreateConstraint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateConstraintInput', ], 'output' => [ 'shape' => 'CreateConstraintOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'DuplicateResourceException', ], ], ], 'CreatePortfolio' => [ 'name' => 'CreatePortfolio', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePortfolioInput', ], 'output' => [ 'shape' => 'CreatePortfolioOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TagOptionNotMigratedException', ], ], ], 'CreatePortfolioShare' => [ 'name' => 'CreatePortfolioShare', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePortfolioShareInput', ], 'output' => [ 'shape' => 'CreatePortfolioShareOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'OperationNotSupportedException', ], ], ], 'CreateProduct' => [ 'name' => 'CreateProduct', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateProductInput', ], 'output' => [ 'shape' => 'CreateProductOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TagOptionNotMigratedException', ], ], ], 'CreateProvisionedProductPlan' => [ 'name' => 'CreateProvisionedProductPlan', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateProvisionedProductPlanInput', ], 'output' => [ 'shape' => 'CreateProvisionedProductPlanOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidStateException', ], ], ], 'CreateProvisioningArtifact' => [ 'name' => 'CreateProvisioningArtifact', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateProvisioningArtifactInput', ], 'output' => [ 'shape' => 'CreateProvisioningArtifactOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateServiceAction' => [ 'name' => 'CreateServiceAction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateServiceActionInput', ], 'output' => [ 'shape' => 'CreateServiceActionOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'CreateTagOption' => [ 'name' => 'CreateTagOption', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTagOptionInput', ], 'output' => [ 'shape' => 'CreateTagOptionOutput', ], 'errors' => [ [ 'shape' => 'TagOptionNotMigratedException', ], [ 'shape' => 'DuplicateResourceException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'DeleteConstraint' => [ 'name' => 'DeleteConstraint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteConstraintInput', ], 'output' => [ 'shape' => 'DeleteConstraintOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], ], ], 'DeletePortfolio' => [ 'name' => 'DeletePortfolio', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePortfolioInput', ], 'output' => [ 'shape' => 'DeletePortfolioOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'TagOptionNotMigratedException', ], ], ], 'DeletePortfolioShare' => [ 'name' => 'DeletePortfolioShare', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePortfolioShareInput', ], 'output' => [ 'shape' => 'DeletePortfolioShareOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'OperationNotSupportedException', ], ], ], 'DeleteProduct' => [ 'name' => 'DeleteProduct', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteProductInput', ], 'output' => [ 'shape' => 'DeleteProductOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'TagOptionNotMigratedException', ], ], ], 'DeleteProvisionedProductPlan' => [ 'name' => 'DeleteProvisionedProductPlan', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteProvisionedProductPlanInput', ], 'output' => [ 'shape' => 'DeleteProvisionedProductPlanOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeleteProvisioningArtifact' => [ 'name' => 'DeleteProvisioningArtifact', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteProvisioningArtifactInput', ], 'output' => [ 'shape' => 'DeleteProvisioningArtifactOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidParametersException', ], ], ], 'DeleteServiceAction' => [ 'name' => 'DeleteServiceAction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteServiceActionInput', ], 'output' => [ 'shape' => 'DeleteServiceActionOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], ], ], 'DeleteTagOption' => [ 'name' => 'DeleteTagOption', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTagOptionInput', ], 'output' => [ 'shape' => 'DeleteTagOptionOutput', ], 'errors' => [ [ 'shape' => 'TagOptionNotMigratedException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeConstraint' => [ 'name' => 'DescribeConstraint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeConstraintInput', ], 'output' => [ 'shape' => 'DescribeConstraintOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeCopyProductStatus' => [ 'name' => 'DescribeCopyProductStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCopyProductStatusInput', ], 'output' => [ 'shape' => 'DescribeCopyProductStatusOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribePortfolio' => [ 'name' => 'DescribePortfolio', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePortfolioInput', ], 'output' => [ 'shape' => 'DescribePortfolioOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribePortfolioShareStatus' => [ 'name' => 'DescribePortfolioShareStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePortfolioShareStatusInput', ], 'output' => [ 'shape' => 'DescribePortfolioShareStatusOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'OperationNotSupportedException', ], ], ], 'DescribeProduct' => [ 'name' => 'DescribeProduct', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeProductInput', ], 'output' => [ 'shape' => 'DescribeProductOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], ], ], 'DescribeProductAsAdmin' => [ 'name' => 'DescribeProductAsAdmin', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeProductAsAdminInput', ], 'output' => [ 'shape' => 'DescribeProductAsAdminOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeProductView' => [ 'name' => 'DescribeProductView', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeProductViewInput', ], 'output' => [ 'shape' => 'DescribeProductViewOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], ], ], 'DescribeProvisionedProduct' => [ 'name' => 'DescribeProvisionedProduct', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeProvisionedProductInput', ], 'output' => [ 'shape' => 'DescribeProvisionedProductOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeProvisionedProductPlan' => [ 'name' => 'DescribeProvisionedProductPlan', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeProvisionedProductPlanInput', ], 'output' => [ 'shape' => 'DescribeProvisionedProductPlanOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], ], ], 'DescribeProvisioningArtifact' => [ 'name' => 'DescribeProvisioningArtifact', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeProvisioningArtifactInput', ], 'output' => [ 'shape' => 'DescribeProvisioningArtifactOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeProvisioningParameters' => [ 'name' => 'DescribeProvisioningParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeProvisioningParametersInput', ], 'output' => [ 'shape' => 'DescribeProvisioningParametersOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeRecord' => [ 'name' => 'DescribeRecord', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRecordInput', ], 'output' => [ 'shape' => 'DescribeRecordOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeServiceAction' => [ 'name' => 'DescribeServiceAction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeServiceActionInput', ], 'output' => [ 'shape' => 'DescribeServiceActionOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeTagOption' => [ 'name' => 'DescribeTagOption', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTagOptionInput', ], 'output' => [ 'shape' => 'DescribeTagOptionOutput', ], 'errors' => [ [ 'shape' => 'TagOptionNotMigratedException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DisableAWSOrganizationsAccess' => [ 'name' => 'DisableAWSOrganizationsAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableAWSOrganizationsAccessInput', ], 'output' => [ 'shape' => 'DisableAWSOrganizationsAccessOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'OperationNotSupportedException', ], ], ], 'DisassociatePrincipalFromPortfolio' => [ 'name' => 'DisassociatePrincipalFromPortfolio', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociatePrincipalFromPortfolioInput', ], 'output' => [ 'shape' => 'DisassociatePrincipalFromPortfolioOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DisassociateProductFromPortfolio' => [ 'name' => 'DisassociateProductFromPortfolio', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateProductFromPortfolioInput', ], 'output' => [ 'shape' => 'DisassociateProductFromPortfolioOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InvalidParametersException', ], ], ], 'DisassociateServiceActionFromProvisioningArtifact' => [ 'name' => 'DisassociateServiceActionFromProvisioningArtifact', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateServiceActionFromProvisioningArtifactInput', ], 'output' => [ 'shape' => 'DisassociateServiceActionFromProvisioningArtifactOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DisassociateTagOptionFromResource' => [ 'name' => 'DisassociateTagOptionFromResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateTagOptionFromResourceInput', ], 'output' => [ 'shape' => 'DisassociateTagOptionFromResourceOutput', ], 'errors' => [ [ 'shape' => 'TagOptionNotMigratedException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'EnableAWSOrganizationsAccess' => [ 'name' => 'EnableAWSOrganizationsAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableAWSOrganizationsAccessInput', ], 'output' => [ 'shape' => 'EnableAWSOrganizationsAccessOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'OperationNotSupportedException', ], ], ], 'ExecuteProvisionedProductPlan' => [ 'name' => 'ExecuteProvisionedProductPlan', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExecuteProvisionedProductPlanInput', ], 'output' => [ 'shape' => 'ExecuteProvisionedProductPlanOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidStateException', ], ], ], 'ExecuteProvisionedProductServiceAction' => [ 'name' => 'ExecuteProvisionedProductServiceAction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExecuteProvisionedProductServiceActionInput', ], 'output' => [ 'shape' => 'ExecuteProvisionedProductServiceActionOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidStateException', ], ], ], 'GetAWSOrganizationsAccessStatus' => [ 'name' => 'GetAWSOrganizationsAccessStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAWSOrganizationsAccessStatusInput', ], 'output' => [ 'shape' => 'GetAWSOrganizationsAccessStatusOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'OperationNotSupportedException', ], ], ], 'ListAcceptedPortfolioShares' => [ 'name' => 'ListAcceptedPortfolioShares', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAcceptedPortfolioSharesInput', ], 'output' => [ 'shape' => 'ListAcceptedPortfolioSharesOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'OperationNotSupportedException', ], ], ], 'ListConstraintsForPortfolio' => [ 'name' => 'ListConstraintsForPortfolio', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListConstraintsForPortfolioInput', ], 'output' => [ 'shape' => 'ListConstraintsForPortfolioOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], ], ], 'ListLaunchPaths' => [ 'name' => 'ListLaunchPaths', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListLaunchPathsInput', ], 'output' => [ 'shape' => 'ListLaunchPathsOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListOrganizationPortfolioAccess' => [ 'name' => 'ListOrganizationPortfolioAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListOrganizationPortfolioAccessInput', ], 'output' => [ 'shape' => 'ListOrganizationPortfolioAccessOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'OperationNotSupportedException', ], ], ], 'ListPortfolioAccess' => [ 'name' => 'ListPortfolioAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListPortfolioAccessInput', ], 'output' => [ 'shape' => 'ListPortfolioAccessOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListPortfolios' => [ 'name' => 'ListPortfolios', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListPortfoliosInput', ], 'output' => [ 'shape' => 'ListPortfoliosOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], ], ], 'ListPortfoliosForProduct' => [ 'name' => 'ListPortfoliosForProduct', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListPortfoliosForProductInput', ], 'output' => [ 'shape' => 'ListPortfoliosForProductOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListPrincipalsForPortfolio' => [ 'name' => 'ListPrincipalsForPortfolio', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListPrincipalsForPortfolioInput', ], 'output' => [ 'shape' => 'ListPrincipalsForPortfolioOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], ], ], 'ListProvisionedProductPlans' => [ 'name' => 'ListProvisionedProductPlans', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListProvisionedProductPlansInput', ], 'output' => [ 'shape' => 'ListProvisionedProductPlansOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], ], ], 'ListProvisioningArtifacts' => [ 'name' => 'ListProvisioningArtifacts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListProvisioningArtifactsInput', ], 'output' => [ 'shape' => 'ListProvisioningArtifactsOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], ], ], 'ListProvisioningArtifactsForServiceAction' => [ 'name' => 'ListProvisioningArtifactsForServiceAction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListProvisioningArtifactsForServiceActionInput', ], 'output' => [ 'shape' => 'ListProvisioningArtifactsForServiceActionOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], ], ], 'ListRecordHistory' => [ 'name' => 'ListRecordHistory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRecordHistoryInput', ], 'output' => [ 'shape' => 'ListRecordHistoryOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], ], ], 'ListResourcesForTagOption' => [ 'name' => 'ListResourcesForTagOption', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListResourcesForTagOptionInput', ], 'output' => [ 'shape' => 'ListResourcesForTagOptionOutput', ], 'errors' => [ [ 'shape' => 'TagOptionNotMigratedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], ], ], 'ListServiceActions' => [ 'name' => 'ListServiceActions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListServiceActionsInput', ], 'output' => [ 'shape' => 'ListServiceActionsOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], ], ], 'ListServiceActionsForProvisioningArtifact' => [ 'name' => 'ListServiceActionsForProvisioningArtifact', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListServiceActionsForProvisioningArtifactInput', ], 'output' => [ 'shape' => 'ListServiceActionsForProvisioningArtifactOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], ], ], 'ListTagOptions' => [ 'name' => 'ListTagOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagOptionsInput', ], 'output' => [ 'shape' => 'ListTagOptionsOutput', ], 'errors' => [ [ 'shape' => 'TagOptionNotMigratedException', ], [ 'shape' => 'InvalidParametersException', ], ], ], 'ProvisionProduct' => [ 'name' => 'ProvisionProduct', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ProvisionProductInput', ], 'output' => [ 'shape' => 'ProvisionProductOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'DuplicateResourceException', ], ], ], 'RejectPortfolioShare' => [ 'name' => 'RejectPortfolioShare', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectPortfolioShareInput', ], 'output' => [ 'shape' => 'RejectPortfolioShareOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ScanProvisionedProducts' => [ 'name' => 'ScanProvisionedProducts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ScanProvisionedProductsInput', ], 'output' => [ 'shape' => 'ScanProvisionedProductsOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], ], ], 'SearchProducts' => [ 'name' => 'SearchProducts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchProductsInput', ], 'output' => [ 'shape' => 'SearchProductsOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], ], ], 'SearchProductsAsAdmin' => [ 'name' => 'SearchProductsAsAdmin', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchProductsAsAdminInput', ], 'output' => [ 'shape' => 'SearchProductsAsAdminOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], ], ], 'SearchProvisionedProducts' => [ 'name' => 'SearchProvisionedProducts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchProvisionedProductsInput', ], 'output' => [ 'shape' => 'SearchProvisionedProductsOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], ], ], 'TerminateProvisionedProduct' => [ 'name' => 'TerminateProvisionedProduct', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TerminateProvisionedProductInput', ], 'output' => [ 'shape' => 'TerminateProvisionedProductOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateConstraint' => [ 'name' => 'UpdateConstraint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateConstraintInput', ], 'output' => [ 'shape' => 'UpdateConstraintOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], ], ], 'UpdatePortfolio' => [ 'name' => 'UpdatePortfolio', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdatePortfolioInput', ], 'output' => [ 'shape' => 'UpdatePortfolioOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TagOptionNotMigratedException', ], ], ], 'UpdateProduct' => [ 'name' => 'UpdateProduct', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateProductInput', ], 'output' => [ 'shape' => 'UpdateProductOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'TagOptionNotMigratedException', ], ], ], 'UpdateProvisionedProduct' => [ 'name' => 'UpdateProvisionedProduct', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateProvisionedProductInput', ], 'output' => [ 'shape' => 'UpdateProvisionedProductOutput', ], 'errors' => [ [ 'shape' => 'InvalidParametersException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateProvisioningArtifact' => [ 'name' => 'UpdateProvisioningArtifact', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateProvisioningArtifactInput', ], 'output' => [ 'shape' => 'UpdateProvisioningArtifactOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], ], ], 'UpdateServiceAction' => [ 'name' => 'UpdateServiceAction', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateServiceActionInput', ], 'output' => [ 'shape' => 'UpdateServiceActionOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParametersException', ], ], ], 'UpdateTagOption' => [ 'name' => 'UpdateTagOption', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateTagOptionInput', ], 'output' => [ 'shape' => 'UpdateTagOptionOutput', ], 'errors' => [ [ 'shape' => 'TagOptionNotMigratedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'DuplicateResourceException', ], [ 'shape' => 'InvalidParametersException', ], ], ], ], 'shapes' => [ 'AcceptLanguage' => [ 'type' => 'string', 'max' => 100, ], 'AcceptPortfolioShareInput' => [ 'type' => 'structure', 'required' => [ 'PortfolioId', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'PortfolioId' => [ 'shape' => 'Id', ], 'PortfolioShareType' => [ 'shape' => 'PortfolioShareType', ], ], ], 'AcceptPortfolioShareOutput' => [ 'type' => 'structure', 'members' => [], ], 'AccessLevelFilter' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'AccessLevelFilterKey', ], 'Value' => [ 'shape' => 'AccessLevelFilterValue', ], ], ], 'AccessLevelFilterKey' => [ 'type' => 'string', 'enum' => [ 'Account', 'Role', 'User', ], ], 'AccessLevelFilterValue' => [ 'type' => 'string', ], 'AccessStatus' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'UNDER_CHANGE', 'DISABLED', ], ], 'AccountId' => [ 'type' => 'string', 'pattern' => '^[0-9]{12}$', ], 'AccountIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountId', ], ], 'AddTags' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 20, ], 'AllowedValue' => [ 'type' => 'string', ], 'AllowedValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedValue', ], ], 'ApproximateCount' => [ 'type' => 'integer', ], 'AssociatePrincipalWithPortfolioInput' => [ 'type' => 'structure', 'required' => [ 'PortfolioId', 'PrincipalARN', 'PrincipalType', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'PortfolioId' => [ 'shape' => 'Id', ], 'PrincipalARN' => [ 'shape' => 'PrincipalARN', ], 'PrincipalType' => [ 'shape' => 'PrincipalType', ], ], ], 'AssociatePrincipalWithPortfolioOutput' => [ 'type' => 'structure', 'members' => [], ], 'AssociateProductWithPortfolioInput' => [ 'type' => 'structure', 'required' => [ 'ProductId', 'PortfolioId', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'ProductId' => [ 'shape' => 'Id', ], 'PortfolioId' => [ 'shape' => 'Id', ], 'SourcePortfolioId' => [ 'shape' => 'Id', ], ], ], 'AssociateProductWithPortfolioOutput' => [ 'type' => 'structure', 'members' => [], ], 'AssociateServiceActionWithProvisioningArtifactInput' => [ 'type' => 'structure', 'required' => [ 'ProductId', 'ProvisioningArtifactId', 'ServiceActionId', ], 'members' => [ 'ProductId' => [ 'shape' => 'Id', ], 'ProvisioningArtifactId' => [ 'shape' => 'Id', ], 'ServiceActionId' => [ 'shape' => 'Id', ], 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], ], ], 'AssociateServiceActionWithProvisioningArtifactOutput' => [ 'type' => 'structure', 'members' => [], ], 'AssociateTagOptionWithResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceId', 'TagOptionId', ], 'members' => [ 'ResourceId' => [ 'shape' => 'ResourceId', ], 'TagOptionId' => [ 'shape' => 'TagOptionId', ], ], ], 'AssociateTagOptionWithResourceOutput' => [ 'type' => 'structure', 'members' => [], ], 'AttributeValue' => [ 'type' => 'string', ], 'BatchAssociateServiceActionWithProvisioningArtifactInput' => [ 'type' => 'structure', 'required' => [ 'ServiceActionAssociations', ], 'members' => [ 'ServiceActionAssociations' => [ 'shape' => 'ServiceActionAssociations', ], 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], ], ], 'BatchAssociateServiceActionWithProvisioningArtifactOutput' => [ 'type' => 'structure', 'members' => [ 'FailedServiceActionAssociations' => [ 'shape' => 'FailedServiceActionAssociations', ], ], ], 'BatchDisassociateServiceActionFromProvisioningArtifactInput' => [ 'type' => 'structure', 'required' => [ 'ServiceActionAssociations', ], 'members' => [ 'ServiceActionAssociations' => [ 'shape' => 'ServiceActionAssociations', ], 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], ], ], 'BatchDisassociateServiceActionFromProvisioningArtifactOutput' => [ 'type' => 'structure', 'members' => [ 'FailedServiceActionAssociations' => [ 'shape' => 'FailedServiceActionAssociations', ], ], ], 'CausingEntity' => [ 'type' => 'string', ], 'ChangeAction' => [ 'type' => 'string', 'enum' => [ 'ADD', 'MODIFY', 'REMOVE', ], ], 'CloudWatchDashboard' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'CloudWatchDashboardName', ], ], ], 'CloudWatchDashboardName' => [ 'type' => 'string', ], 'CloudWatchDashboards' => [ 'type' => 'list', 'member' => [ 'shape' => 'CloudWatchDashboard', ], ], 'ConstraintDescription' => [ 'type' => 'string', 'max' => 2000, ], 'ConstraintDetail' => [ 'type' => 'structure', 'members' => [ 'ConstraintId' => [ 'shape' => 'Id', ], 'Type' => [ 'shape' => 'ConstraintType', ], 'Description' => [ 'shape' => 'ConstraintDescription', ], 'Owner' => [ 'shape' => 'AccountId', ], ], ], 'ConstraintDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConstraintDetail', ], ], 'ConstraintParameters' => [ 'type' => 'string', ], 'ConstraintSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConstraintSummary', ], ], 'ConstraintSummary' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'ConstraintType', ], 'Description' => [ 'shape' => 'ConstraintDescription', ], ], ], 'ConstraintType' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'CopyOption' => [ 'type' => 'string', 'enum' => [ 'CopyTags', ], ], 'CopyOptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'CopyOption', ], ], 'CopyProductInput' => [ 'type' => 'structure', 'required' => [ 'SourceProductArn', 'IdempotencyToken', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'SourceProductArn' => [ 'shape' => 'ProductArn', ], 'TargetProductId' => [ 'shape' => 'Id', ], 'TargetProductName' => [ 'shape' => 'ProductViewName', ], 'SourceProvisioningArtifactIdentifiers' => [ 'shape' => 'SourceProvisioningArtifactProperties', ], 'CopyOptions' => [ 'shape' => 'CopyOptions', ], 'IdempotencyToken' => [ 'shape' => 'IdempotencyToken', 'idempotencyToken' => true, ], ], ], 'CopyProductOutput' => [ 'type' => 'structure', 'members' => [ 'CopyProductToken' => [ 'shape' => 'Id', ], ], ], 'CopyProductStatus' => [ 'type' => 'string', 'enum' => [ 'SUCCEEDED', 'IN_PROGRESS', 'FAILED', ], ], 'CreateConstraintInput' => [ 'type' => 'structure', 'required' => [ 'PortfolioId', 'ProductId', 'Parameters', 'Type', 'IdempotencyToken', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'PortfolioId' => [ 'shape' => 'Id', ], 'ProductId' => [ 'shape' => 'Id', ], 'Parameters' => [ 'shape' => 'ConstraintParameters', ], 'Type' => [ 'shape' => 'ConstraintType', ], 'Description' => [ 'shape' => 'ConstraintDescription', ], 'IdempotencyToken' => [ 'shape' => 'IdempotencyToken', 'idempotencyToken' => true, ], ], ], 'CreateConstraintOutput' => [ 'type' => 'structure', 'members' => [ 'ConstraintDetail' => [ 'shape' => 'ConstraintDetail', ], 'ConstraintParameters' => [ 'shape' => 'ConstraintParameters', ], 'Status' => [ 'shape' => 'Status', ], ], ], 'CreatePortfolioInput' => [ 'type' => 'structure', 'required' => [ 'DisplayName', 'ProviderName', 'IdempotencyToken', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'DisplayName' => [ 'shape' => 'PortfolioDisplayName', ], 'Description' => [ 'shape' => 'PortfolioDescription', ], 'ProviderName' => [ 'shape' => 'ProviderName', ], 'Tags' => [ 'shape' => 'AddTags', ], 'IdempotencyToken' => [ 'shape' => 'IdempotencyToken', 'idempotencyToken' => true, ], ], ], 'CreatePortfolioOutput' => [ 'type' => 'structure', 'members' => [ 'PortfolioDetail' => [ 'shape' => 'PortfolioDetail', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'CreatePortfolioShareInput' => [ 'type' => 'structure', 'required' => [ 'PortfolioId', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'PortfolioId' => [ 'shape' => 'Id', ], 'AccountId' => [ 'shape' => 'AccountId', ], 'OrganizationNode' => [ 'shape' => 'OrganizationNode', ], ], ], 'CreatePortfolioShareOutput' => [ 'type' => 'structure', 'members' => [ 'PortfolioShareToken' => [ 'shape' => 'PortfolioShareToken', ], ], ], 'CreateProductInput' => [ 'type' => 'structure', 'required' => [ 'Name', 'Owner', 'ProductType', 'ProvisioningArtifactParameters', 'IdempotencyToken', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'Name' => [ 'shape' => 'ProductViewName', ], 'Owner' => [ 'shape' => 'ProductViewOwner', ], 'Description' => [ 'shape' => 'ProductViewShortDescription', ], 'Distributor' => [ 'shape' => 'ProductViewOwner', ], 'SupportDescription' => [ 'shape' => 'SupportDescription', ], 'SupportEmail' => [ 'shape' => 'SupportEmail', ], 'SupportUrl' => [ 'shape' => 'SupportUrl', ], 'ProductType' => [ 'shape' => 'ProductType', ], 'Tags' => [ 'shape' => 'AddTags', ], 'ProvisioningArtifactParameters' => [ 'shape' => 'ProvisioningArtifactProperties', ], 'IdempotencyToken' => [ 'shape' => 'IdempotencyToken', 'idempotencyToken' => true, ], ], ], 'CreateProductOutput' => [ 'type' => 'structure', 'members' => [ 'ProductViewDetail' => [ 'shape' => 'ProductViewDetail', ], 'ProvisioningArtifactDetail' => [ 'shape' => 'ProvisioningArtifactDetail', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'CreateProvisionedProductPlanInput' => [ 'type' => 'structure', 'required' => [ 'PlanName', 'PlanType', 'ProductId', 'ProvisionedProductName', 'ProvisioningArtifactId', 'IdempotencyToken', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'PlanName' => [ 'shape' => 'ProvisionedProductPlanName', ], 'PlanType' => [ 'shape' => 'ProvisionedProductPlanType', ], 'NotificationArns' => [ 'shape' => 'NotificationArns', ], 'PathId' => [ 'shape' => 'Id', ], 'ProductId' => [ 'shape' => 'Id', ], 'ProvisionedProductName' => [ 'shape' => 'ProvisionedProductName', ], 'ProvisioningArtifactId' => [ 'shape' => 'Id', ], 'ProvisioningParameters' => [ 'shape' => 'UpdateProvisioningParameters', ], 'IdempotencyToken' => [ 'shape' => 'IdempotencyToken', 'idempotencyToken' => true, ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'CreateProvisionedProductPlanOutput' => [ 'type' => 'structure', 'members' => [ 'PlanName' => [ 'shape' => 'ProvisionedProductPlanName', ], 'PlanId' => [ 'shape' => 'Id', ], 'ProvisionProductId' => [ 'shape' => 'Id', ], 'ProvisionedProductName' => [ 'shape' => 'ProvisionedProductName', ], 'ProvisioningArtifactId' => [ 'shape' => 'Id', ], ], ], 'CreateProvisioningArtifactInput' => [ 'type' => 'structure', 'required' => [ 'ProductId', 'Parameters', 'IdempotencyToken', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'ProductId' => [ 'shape' => 'Id', ], 'Parameters' => [ 'shape' => 'ProvisioningArtifactProperties', ], 'IdempotencyToken' => [ 'shape' => 'IdempotencyToken', 'idempotencyToken' => true, ], ], ], 'CreateProvisioningArtifactOutput' => [ 'type' => 'structure', 'members' => [ 'ProvisioningArtifactDetail' => [ 'shape' => 'ProvisioningArtifactDetail', ], 'Info' => [ 'shape' => 'ProvisioningArtifactInfo', ], 'Status' => [ 'shape' => 'Status', ], ], ], 'CreateServiceActionInput' => [ 'type' => 'structure', 'required' => [ 'Name', 'DefinitionType', 'Definition', 'IdempotencyToken', ], 'members' => [ 'Name' => [ 'shape' => 'ServiceActionName', ], 'DefinitionType' => [ 'shape' => 'ServiceActionDefinitionType', ], 'Definition' => [ 'shape' => 'ServiceActionDefinitionMap', ], 'Description' => [ 'shape' => 'ServiceActionDescription', ], 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'IdempotencyToken' => [ 'shape' => 'IdempotencyToken', 'idempotencyToken' => true, ], ], ], 'CreateServiceActionOutput' => [ 'type' => 'structure', 'members' => [ 'ServiceActionDetail' => [ 'shape' => 'ServiceActionDetail', ], ], ], 'CreateTagOptionInput' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'TagOptionKey', ], 'Value' => [ 'shape' => 'TagOptionValue', ], ], ], 'CreateTagOptionOutput' => [ 'type' => 'structure', 'members' => [ 'TagOptionDetail' => [ 'shape' => 'TagOptionDetail', ], ], ], 'CreatedTime' => [ 'type' => 'timestamp', ], 'CreationTime' => [ 'type' => 'timestamp', ], 'DefaultValue' => [ 'type' => 'string', ], 'DeleteConstraintInput' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'Id' => [ 'shape' => 'Id', ], ], ], 'DeleteConstraintOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeletePortfolioInput' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'Id' => [ 'shape' => 'Id', ], ], ], 'DeletePortfolioOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeletePortfolioShareInput' => [ 'type' => 'structure', 'required' => [ 'PortfolioId', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'PortfolioId' => [ 'shape' => 'Id', ], 'AccountId' => [ 'shape' => 'AccountId', ], 'OrganizationNode' => [ 'shape' => 'OrganizationNode', ], ], ], 'DeletePortfolioShareOutput' => [ 'type' => 'structure', 'members' => [ 'PortfolioShareToken' => [ 'shape' => 'PortfolioShareToken', ], ], ], 'DeleteProductInput' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'Id' => [ 'shape' => 'Id', ], ], ], 'DeleteProductOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeleteProvisionedProductPlanInput' => [ 'type' => 'structure', 'required' => [ 'PlanId', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'PlanId' => [ 'shape' => 'Id', ], 'IgnoreErrors' => [ 'shape' => 'IgnoreErrors', ], ], ], 'DeleteProvisionedProductPlanOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeleteProvisioningArtifactInput' => [ 'type' => 'structure', 'required' => [ 'ProductId', 'ProvisioningArtifactId', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'ProductId' => [ 'shape' => 'Id', ], 'ProvisioningArtifactId' => [ 'shape' => 'Id', ], ], ], 'DeleteProvisioningArtifactOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeleteServiceActionInput' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'Id', ], 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], ], ], 'DeleteServiceActionOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeleteTagOptionInput' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'TagOptionId', ], ], ], 'DeleteTagOptionOutput' => [ 'type' => 'structure', 'members' => [], ], 'DescribeConstraintInput' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'Id' => [ 'shape' => 'Id', ], ], ], 'DescribeConstraintOutput' => [ 'type' => 'structure', 'members' => [ 'ConstraintDetail' => [ 'shape' => 'ConstraintDetail', ], 'ConstraintParameters' => [ 'shape' => 'ConstraintParameters', ], 'Status' => [ 'shape' => 'Status', ], ], ], 'DescribeCopyProductStatusInput' => [ 'type' => 'structure', 'required' => [ 'CopyProductToken', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'CopyProductToken' => [ 'shape' => 'Id', ], ], ], 'DescribeCopyProductStatusOutput' => [ 'type' => 'structure', 'members' => [ 'CopyProductStatus' => [ 'shape' => 'CopyProductStatus', ], 'TargetProductId' => [ 'shape' => 'Id', ], 'StatusDetail' => [ 'shape' => 'StatusDetail', ], ], ], 'DescribePortfolioInput' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'Id' => [ 'shape' => 'Id', ], ], ], 'DescribePortfolioOutput' => [ 'type' => 'structure', 'members' => [ 'PortfolioDetail' => [ 'shape' => 'PortfolioDetail', ], 'Tags' => [ 'shape' => 'Tags', ], 'TagOptions' => [ 'shape' => 'TagOptionDetails', ], ], ], 'DescribePortfolioShareStatusInput' => [ 'type' => 'structure', 'required' => [ 'PortfolioShareToken', ], 'members' => [ 'PortfolioShareToken' => [ 'shape' => 'PortfolioShareToken', ], ], ], 'DescribePortfolioShareStatusOutput' => [ 'type' => 'structure', 'members' => [ 'PortfolioShareToken' => [ 'shape' => 'PortfolioShareToken', ], 'PortfolioId' => [ 'shape' => 'Id', ], 'OrganizationNodeValue' => [ 'shape' => 'OrganizationNodeValue', ], 'Status' => [ 'shape' => 'ShareStatus', ], 'ShareDetails' => [ 'shape' => 'ShareDetails', ], ], ], 'DescribeProductAsAdminInput' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'Id' => [ 'shape' => 'Id', ], ], ], 'DescribeProductAsAdminOutput' => [ 'type' => 'structure', 'members' => [ 'ProductViewDetail' => [ 'shape' => 'ProductViewDetail', ], 'ProvisioningArtifactSummaries' => [ 'shape' => 'ProvisioningArtifactSummaries', ], 'Tags' => [ 'shape' => 'Tags', ], 'TagOptions' => [ 'shape' => 'TagOptionDetails', ], ], ], 'DescribeProductInput' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'Id' => [ 'shape' => 'Id', ], ], ], 'DescribeProductOutput' => [ 'type' => 'structure', 'members' => [ 'ProductViewSummary' => [ 'shape' => 'ProductViewSummary', ], 'ProvisioningArtifacts' => [ 'shape' => 'ProvisioningArtifacts', ], ], ], 'DescribeProductViewInput' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'Id' => [ 'shape' => 'Id', ], ], ], 'DescribeProductViewOutput' => [ 'type' => 'structure', 'members' => [ 'ProductViewSummary' => [ 'shape' => 'ProductViewSummary', ], 'ProvisioningArtifacts' => [ 'shape' => 'ProvisioningArtifacts', ], ], ], 'DescribeProvisionedProductInput' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'Id' => [ 'shape' => 'Id', ], ], ], 'DescribeProvisionedProductOutput' => [ 'type' => 'structure', 'members' => [ 'ProvisionedProductDetail' => [ 'shape' => 'ProvisionedProductDetail', ], 'CloudWatchDashboards' => [ 'shape' => 'CloudWatchDashboards', ], ], ], 'DescribeProvisionedProductPlanInput' => [ 'type' => 'structure', 'required' => [ 'PlanId', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'PlanId' => [ 'shape' => 'Id', ], 'PageSize' => [ 'shape' => 'PageSize', ], 'PageToken' => [ 'shape' => 'PageToken', ], ], ], 'DescribeProvisionedProductPlanOutput' => [ 'type' => 'structure', 'members' => [ 'ProvisionedProductPlanDetails' => [ 'shape' => 'ProvisionedProductPlanDetails', ], 'ResourceChanges' => [ 'shape' => 'ResourceChanges', ], 'NextPageToken' => [ 'shape' => 'PageToken', ], ], ], 'DescribeProvisioningArtifactInput' => [ 'type' => 'structure', 'required' => [ 'ProvisioningArtifactId', 'ProductId', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'ProvisioningArtifactId' => [ 'shape' => 'Id', ], 'ProductId' => [ 'shape' => 'Id', ], 'Verbose' => [ 'shape' => 'Verbose', ], ], ], 'DescribeProvisioningArtifactOutput' => [ 'type' => 'structure', 'members' => [ 'ProvisioningArtifactDetail' => [ 'shape' => 'ProvisioningArtifactDetail', ], 'Info' => [ 'shape' => 'ProvisioningArtifactInfo', ], 'Status' => [ 'shape' => 'Status', ], ], ], 'DescribeProvisioningParametersInput' => [ 'type' => 'structure', 'required' => [ 'ProductId', 'ProvisioningArtifactId', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'ProductId' => [ 'shape' => 'Id', ], 'ProvisioningArtifactId' => [ 'shape' => 'Id', ], 'PathId' => [ 'shape' => 'Id', ], ], ], 'DescribeProvisioningParametersOutput' => [ 'type' => 'structure', 'members' => [ 'ProvisioningArtifactParameters' => [ 'shape' => 'ProvisioningArtifactParameters', ], 'ConstraintSummaries' => [ 'shape' => 'ConstraintSummaries', ], 'UsageInstructions' => [ 'shape' => 'UsageInstructions', ], 'TagOptions' => [ 'shape' => 'TagOptionSummaries', ], 'ProvisioningArtifactPreferences' => [ 'shape' => 'ProvisioningArtifactPreferences', ], ], ], 'DescribeRecordInput' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'Id' => [ 'shape' => 'Id', ], 'PageToken' => [ 'shape' => 'PageToken', ], 'PageSize' => [ 'shape' => 'PageSize', ], ], ], 'DescribeRecordOutput' => [ 'type' => 'structure', 'members' => [ 'RecordDetail' => [ 'shape' => 'RecordDetail', ], 'RecordOutputs' => [ 'shape' => 'RecordOutputs', ], 'NextPageToken' => [ 'shape' => 'PageToken', ], ], ], 'DescribeServiceActionInput' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'Id', ], 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], ], ], 'DescribeServiceActionOutput' => [ 'type' => 'structure', 'members' => [ 'ServiceActionDetail' => [ 'shape' => 'ServiceActionDetail', ], ], ], 'DescribeTagOptionInput' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'TagOptionId', ], ], ], 'DescribeTagOptionOutput' => [ 'type' => 'structure', 'members' => [ 'TagOptionDetail' => [ 'shape' => 'TagOptionDetail', ], ], ], 'Description' => [ 'type' => 'string', ], 'DisableAWSOrganizationsAccessInput' => [ 'type' => 'structure', 'members' => [], ], 'DisableAWSOrganizationsAccessOutput' => [ 'type' => 'structure', 'members' => [], ], 'DisassociatePrincipalFromPortfolioInput' => [ 'type' => 'structure', 'required' => [ 'PortfolioId', 'PrincipalARN', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'PortfolioId' => [ 'shape' => 'Id', ], 'PrincipalARN' => [ 'shape' => 'PrincipalARN', ], ], ], 'DisassociatePrincipalFromPortfolioOutput' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateProductFromPortfolioInput' => [ 'type' => 'structure', 'required' => [ 'ProductId', 'PortfolioId', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'ProductId' => [ 'shape' => 'Id', ], 'PortfolioId' => [ 'shape' => 'Id', ], ], ], 'DisassociateProductFromPortfolioOutput' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateServiceActionFromProvisioningArtifactInput' => [ 'type' => 'structure', 'required' => [ 'ProductId', 'ProvisioningArtifactId', 'ServiceActionId', ], 'members' => [ 'ProductId' => [ 'shape' => 'Id', ], 'ProvisioningArtifactId' => [ 'shape' => 'Id', ], 'ServiceActionId' => [ 'shape' => 'Id', ], 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], ], ], 'DisassociateServiceActionFromProvisioningArtifactOutput' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateTagOptionFromResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceId', 'TagOptionId', ], 'members' => [ 'ResourceId' => [ 'shape' => 'ResourceId', ], 'TagOptionId' => [ 'shape' => 'TagOptionId', ], ], ], 'DisassociateTagOptionFromResourceOutput' => [ 'type' => 'structure', 'members' => [], ], 'DuplicateResourceException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'EnableAWSOrganizationsAccessInput' => [ 'type' => 'structure', 'members' => [], ], 'EnableAWSOrganizationsAccessOutput' => [ 'type' => 'structure', 'members' => [], ], 'Error' => [ 'type' => 'string', ], 'ErrorCode' => [ 'type' => 'string', ], 'ErrorDescription' => [ 'type' => 'string', ], 'EvaluationType' => [ 'type' => 'string', 'enum' => [ 'STATIC', 'DYNAMIC', ], ], 'ExecuteProvisionedProductPlanInput' => [ 'type' => 'structure', 'required' => [ 'PlanId', 'IdempotencyToken', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'PlanId' => [ 'shape' => 'Id', ], 'IdempotencyToken' => [ 'shape' => 'IdempotencyToken', 'idempotencyToken' => true, ], ], ], 'ExecuteProvisionedProductPlanOutput' => [ 'type' => 'structure', 'members' => [ 'RecordDetail' => [ 'shape' => 'RecordDetail', ], ], ], 'ExecuteProvisionedProductServiceActionInput' => [ 'type' => 'structure', 'required' => [ 'ProvisionedProductId', 'ServiceActionId', 'ExecuteToken', ], 'members' => [ 'ProvisionedProductId' => [ 'shape' => 'Id', ], 'ServiceActionId' => [ 'shape' => 'Id', ], 'ExecuteToken' => [ 'shape' => 'IdempotencyToken', 'idempotencyToken' => true, ], 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], ], ], 'ExecuteProvisionedProductServiceActionOutput' => [ 'type' => 'structure', 'members' => [ 'RecordDetail' => [ 'shape' => 'RecordDetail', ], ], ], 'FailedServiceActionAssociation' => [ 'type' => 'structure', 'members' => [ 'ServiceActionId' => [ 'shape' => 'Id', ], 'ProductId' => [ 'shape' => 'Id', ], 'ProvisioningArtifactId' => [ 'shape' => 'Id', ], 'ErrorCode' => [ 'shape' => 'ServiceActionAssociationErrorCode', ], 'ErrorMessage' => [ 'shape' => 'ServiceActionAssociationErrorMessage', ], ], ], 'FailedServiceActionAssociations' => [ 'type' => 'list', 'member' => [ 'shape' => 'FailedServiceActionAssociation', ], 'max' => 50, ], 'GetAWSOrganizationsAccessStatusInput' => [ 'type' => 'structure', 'members' => [], ], 'GetAWSOrganizationsAccessStatusOutput' => [ 'type' => 'structure', 'members' => [ 'AccessStatus' => [ 'shape' => 'AccessStatus', ], ], ], 'HasDefaultPath' => [ 'type' => 'boolean', ], 'Id' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '^[a-zA-Z0-9_\\-]*', ], 'IdempotencyToken' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9][a-zA-Z0-9_-]*', ], 'IgnoreErrors' => [ 'type' => 'boolean', ], 'InstructionType' => [ 'type' => 'string', ], 'InstructionValue' => [ 'type' => 'string', ], 'InvalidParametersException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidStateException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'LastRequestId' => [ 'type' => 'string', ], 'LaunchPathSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchPathSummary', ], ], 'LaunchPathSummary' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'Id', ], 'ConstraintSummaries' => [ 'shape' => 'ConstraintSummaries', ], 'Tags' => [ 'shape' => 'Tags', ], 'Name' => [ 'shape' => 'PortfolioName', ], ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ListAcceptedPortfolioSharesInput' => [ 'type' => 'structure', 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'PageToken' => [ 'shape' => 'PageToken', ], 'PageSize' => [ 'shape' => 'PageSize', ], 'PortfolioShareType' => [ 'shape' => 'PortfolioShareType', ], ], ], 'ListAcceptedPortfolioSharesOutput' => [ 'type' => 'structure', 'members' => [ 'PortfolioDetails' => [ 'shape' => 'PortfolioDetails', ], 'NextPageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListConstraintsForPortfolioInput' => [ 'type' => 'structure', 'required' => [ 'PortfolioId', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'PortfolioId' => [ 'shape' => 'Id', ], 'ProductId' => [ 'shape' => 'Id', ], 'PageSize' => [ 'shape' => 'PageSize', ], 'PageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListConstraintsForPortfolioOutput' => [ 'type' => 'structure', 'members' => [ 'ConstraintDetails' => [ 'shape' => 'ConstraintDetails', ], 'NextPageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListLaunchPathsInput' => [ 'type' => 'structure', 'required' => [ 'ProductId', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'ProductId' => [ 'shape' => 'Id', ], 'PageSize' => [ 'shape' => 'PageSize', ], 'PageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListLaunchPathsOutput' => [ 'type' => 'structure', 'members' => [ 'LaunchPathSummaries' => [ 'shape' => 'LaunchPathSummaries', ], 'NextPageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListOrganizationPortfolioAccessInput' => [ 'type' => 'structure', 'required' => [ 'PortfolioId', 'OrganizationNodeType', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'PortfolioId' => [ 'shape' => 'Id', ], 'OrganizationNodeType' => [ 'shape' => 'OrganizationNodeType', ], 'PageToken' => [ 'shape' => 'PageToken', ], 'PageSize' => [ 'shape' => 'PageSize', ], ], ], 'ListOrganizationPortfolioAccessOutput' => [ 'type' => 'structure', 'members' => [ 'OrganizationNodes' => [ 'shape' => 'OrganizationNodes', ], 'NextPageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListPortfolioAccessInput' => [ 'type' => 'structure', 'required' => [ 'PortfolioId', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'PortfolioId' => [ 'shape' => 'Id', ], ], ], 'ListPortfolioAccessOutput' => [ 'type' => 'structure', 'members' => [ 'AccountIds' => [ 'shape' => 'AccountIds', ], 'NextPageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListPortfoliosForProductInput' => [ 'type' => 'structure', 'required' => [ 'ProductId', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'ProductId' => [ 'shape' => 'Id', ], 'PageToken' => [ 'shape' => 'PageToken', ], 'PageSize' => [ 'shape' => 'PageSize', ], ], ], 'ListPortfoliosForProductOutput' => [ 'type' => 'structure', 'members' => [ 'PortfolioDetails' => [ 'shape' => 'PortfolioDetails', ], 'NextPageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListPortfoliosInput' => [ 'type' => 'structure', 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'PageToken' => [ 'shape' => 'PageToken', ], 'PageSize' => [ 'shape' => 'PageSize', ], ], ], 'ListPortfoliosOutput' => [ 'type' => 'structure', 'members' => [ 'PortfolioDetails' => [ 'shape' => 'PortfolioDetails', ], 'NextPageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListPrincipalsForPortfolioInput' => [ 'type' => 'structure', 'required' => [ 'PortfolioId', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'PortfolioId' => [ 'shape' => 'Id', ], 'PageSize' => [ 'shape' => 'PageSize', ], 'PageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListPrincipalsForPortfolioOutput' => [ 'type' => 'structure', 'members' => [ 'Principals' => [ 'shape' => 'Principals', ], 'NextPageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListProvisionedProductPlansInput' => [ 'type' => 'structure', 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'ProvisionProductId' => [ 'shape' => 'Id', ], 'PageSize' => [ 'shape' => 'PageSize', ], 'PageToken' => [ 'shape' => 'PageToken', ], 'AccessLevelFilter' => [ 'shape' => 'AccessLevelFilter', ], ], ], 'ListProvisionedProductPlansOutput' => [ 'type' => 'structure', 'members' => [ 'ProvisionedProductPlans' => [ 'shape' => 'ProvisionedProductPlans', ], 'NextPageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListProvisioningArtifactsForServiceActionInput' => [ 'type' => 'structure', 'required' => [ 'ServiceActionId', ], 'members' => [ 'ServiceActionId' => [ 'shape' => 'Id', ], 'PageSize' => [ 'shape' => 'PageSize', ], 'PageToken' => [ 'shape' => 'PageToken', ], 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], ], ], 'ListProvisioningArtifactsForServiceActionOutput' => [ 'type' => 'structure', 'members' => [ 'ProvisioningArtifactViews' => [ 'shape' => 'ProvisioningArtifactViews', ], 'NextPageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListProvisioningArtifactsInput' => [ 'type' => 'structure', 'required' => [ 'ProductId', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'ProductId' => [ 'shape' => 'Id', ], ], ], 'ListProvisioningArtifactsOutput' => [ 'type' => 'structure', 'members' => [ 'ProvisioningArtifactDetails' => [ 'shape' => 'ProvisioningArtifactDetails', ], 'NextPageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListRecordHistoryInput' => [ 'type' => 'structure', 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'AccessLevelFilter' => [ 'shape' => 'AccessLevelFilter', ], 'SearchFilter' => [ 'shape' => 'ListRecordHistorySearchFilter', ], 'PageSize' => [ 'shape' => 'PageSize', ], 'PageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListRecordHistoryOutput' => [ 'type' => 'structure', 'members' => [ 'RecordDetails' => [ 'shape' => 'RecordDetails', ], 'NextPageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListRecordHistorySearchFilter' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'SearchFilterKey', ], 'Value' => [ 'shape' => 'SearchFilterValue', ], ], ], 'ListResourcesForTagOptionInput' => [ 'type' => 'structure', 'required' => [ 'TagOptionId', ], 'members' => [ 'TagOptionId' => [ 'shape' => 'TagOptionId', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], 'PageSize' => [ 'shape' => 'PageSize', ], 'PageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListResourcesForTagOptionOutput' => [ 'type' => 'structure', 'members' => [ 'ResourceDetails' => [ 'shape' => 'ResourceDetails', ], 'PageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListServiceActionsForProvisioningArtifactInput' => [ 'type' => 'structure', 'required' => [ 'ProductId', 'ProvisioningArtifactId', ], 'members' => [ 'ProductId' => [ 'shape' => 'Id', ], 'ProvisioningArtifactId' => [ 'shape' => 'Id', ], 'PageSize' => [ 'shape' => 'PageSize', ], 'PageToken' => [ 'shape' => 'PageToken', ], 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], ], ], 'ListServiceActionsForProvisioningArtifactOutput' => [ 'type' => 'structure', 'members' => [ 'ServiceActionSummaries' => [ 'shape' => 'ServiceActionSummaries', ], 'NextPageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListServiceActionsInput' => [ 'type' => 'structure', 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'PageSize' => [ 'shape' => 'PageSize', ], 'PageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListServiceActionsOutput' => [ 'type' => 'structure', 'members' => [ 'ServiceActionSummaries' => [ 'shape' => 'ServiceActionSummaries', ], 'NextPageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListTagOptionsFilters' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'TagOptionKey', ], 'Value' => [ 'shape' => 'TagOptionValue', ], 'Active' => [ 'shape' => 'TagOptionActive', ], ], ], 'ListTagOptionsInput' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'ListTagOptionsFilters', ], 'PageSize' => [ 'shape' => 'PageSize', ], 'PageToken' => [ 'shape' => 'PageToken', ], ], ], 'ListTagOptionsOutput' => [ 'type' => 'structure', 'members' => [ 'TagOptionDetails' => [ 'shape' => 'TagOptionDetails', ], 'PageToken' => [ 'shape' => 'PageToken', ], ], ], 'LogicalResourceId' => [ 'type' => 'string', ], 'Message' => [ 'type' => 'string', ], 'Namespaces' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountId', ], ], 'NoEcho' => [ 'type' => 'boolean', ], 'NotificationArn' => [ 'type' => 'string', 'max' => 1224, 'min' => 1, 'pattern' => 'arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}', ], 'NotificationArns' => [ 'type' => 'list', 'member' => [ 'shape' => 'NotificationArn', ], 'max' => 5, ], 'OperationNotSupportedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'OrganizationNode' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'OrganizationNodeType', ], 'Value' => [ 'shape' => 'OrganizationNodeValue', ], ], ], 'OrganizationNodeType' => [ 'type' => 'string', 'enum' => [ 'ORGANIZATION', 'ORGANIZATIONAL_UNIT', 'ACCOUNT', ], ], 'OrganizationNodeValue' => [ 'type' => 'string', 'pattern' => '(^[0-9]{12}$)|(^arn:aws:organizations::\\d{12}:organization\\/o-[a-z0-9]{10,32})|(^o-[a-z0-9]{10,32}$)|(^arn:aws:organizations::\\d{12}:ou\\/o-[a-z0-9]{10,32}\\/ou-[0-9a-z]{4,32}-[0-9a-z]{8,32}$)|(^ou-[0-9a-z]{4,32}-[a-z0-9]{8,32}$)', ], 'OrganizationNodes' => [ 'type' => 'list', 'member' => [ 'shape' => 'OrganizationNode', ], ], 'OutputKey' => [ 'type' => 'string', ], 'OutputValue' => [ 'type' => 'string', ], 'PageSize' => [ 'type' => 'integer', 'max' => 20, 'min' => 0, ], 'PageToken' => [ 'type' => 'string', 'max' => 2024, 'pattern' => '[\\u0009\\u000a\\u000d\\u0020-\\uD7FF\\uE000-\\uFFFD]*', ], 'ParameterConstraints' => [ 'type' => 'structure', 'members' => [ 'AllowedValues' => [ 'shape' => 'AllowedValues', ], ], ], 'ParameterKey' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, ], 'ParameterType' => [ 'type' => 'string', ], 'ParameterValue' => [ 'type' => 'string', 'max' => 4096, ], 'PhysicalId' => [ 'type' => 'string', ], 'PhysicalResourceId' => [ 'type' => 'string', ], 'PlanResourceType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'PortfolioDescription' => [ 'type' => 'string', 'max' => 2000, ], 'PortfolioDetail' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'Id', ], 'ARN' => [ 'shape' => 'ResourceARN', ], 'DisplayName' => [ 'shape' => 'PortfolioDisplayName', ], 'Description' => [ 'shape' => 'PortfolioDescription', ], 'CreatedTime' => [ 'shape' => 'CreationTime', ], 'ProviderName' => [ 'shape' => 'ProviderName', ], ], ], 'PortfolioDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'PortfolioDetail', ], ], 'PortfolioDisplayName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'PortfolioName' => [ 'type' => 'string', ], 'PortfolioShareToken' => [ 'type' => 'string', ], 'PortfolioShareType' => [ 'type' => 'string', 'enum' => [ 'IMPORTED', 'AWS_SERVICECATALOG', 'AWS_ORGANIZATIONS', ], ], 'Principal' => [ 'type' => 'structure', 'members' => [ 'PrincipalARN' => [ 'shape' => 'PrincipalARN', ], 'PrincipalType' => [ 'shape' => 'PrincipalType', ], ], ], 'PrincipalARN' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, ], 'PrincipalType' => [ 'type' => 'string', 'enum' => [ 'IAM', ], ], 'Principals' => [ 'type' => 'list', 'member' => [ 'shape' => 'Principal', ], ], 'ProductArn' => [ 'type' => 'string', 'max' => 1224, 'min' => 1, 'pattern' => 'arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}', ], 'ProductSource' => [ 'type' => 'string', 'enum' => [ 'ACCOUNT', ], ], 'ProductType' => [ 'type' => 'string', 'enum' => [ 'CLOUD_FORMATION_TEMPLATE', 'MARKETPLACE', ], 'max' => 8191, ], 'ProductViewAggregationType' => [ 'type' => 'string', ], 'ProductViewAggregationValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'AttributeValue', ], 'ApproximateCount' => [ 'shape' => 'ApproximateCount', ], ], ], 'ProductViewAggregationValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProductViewAggregationValue', ], ], 'ProductViewAggregations' => [ 'type' => 'map', 'key' => [ 'shape' => 'ProductViewAggregationType', ], 'value' => [ 'shape' => 'ProductViewAggregationValues', ], ], 'ProductViewDetail' => [ 'type' => 'structure', 'members' => [ 'ProductViewSummary' => [ 'shape' => 'ProductViewSummary', ], 'Status' => [ 'shape' => 'Status', ], 'ProductARN' => [ 'shape' => 'ResourceARN', ], 'CreatedTime' => [ 'shape' => 'CreatedTime', ], ], ], 'ProductViewDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProductViewDetail', ], ], 'ProductViewDistributor' => [ 'type' => 'string', ], 'ProductViewFilterBy' => [ 'type' => 'string', 'enum' => [ 'FullTextSearch', 'Owner', 'ProductType', 'SourceProductId', ], ], 'ProductViewFilterValue' => [ 'type' => 'string', ], 'ProductViewFilterValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProductViewFilterValue', ], ], 'ProductViewFilters' => [ 'type' => 'map', 'key' => [ 'shape' => 'ProductViewFilterBy', ], 'value' => [ 'shape' => 'ProductViewFilterValues', ], ], 'ProductViewName' => [ 'type' => 'string', 'max' => 8191, ], 'ProductViewOwner' => [ 'type' => 'string', 'max' => 8191, ], 'ProductViewShortDescription' => [ 'type' => 'string', 'max' => 8191, ], 'ProductViewSortBy' => [ 'type' => 'string', 'enum' => [ 'Title', 'VersionCount', 'CreationDate', ], ], 'ProductViewSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProductViewSummary', ], ], 'ProductViewSummary' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'Id', ], 'ProductId' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'ProductViewName', ], 'Owner' => [ 'shape' => 'ProductViewOwner', ], 'ShortDescription' => [ 'shape' => 'ProductViewShortDescription', ], 'Type' => [ 'shape' => 'ProductType', ], 'Distributor' => [ 'shape' => 'ProductViewDistributor', ], 'HasDefaultPath' => [ 'shape' => 'HasDefaultPath', ], 'SupportEmail' => [ 'shape' => 'SupportEmail', ], 'SupportDescription' => [ 'shape' => 'SupportDescription', ], 'SupportUrl' => [ 'shape' => 'SupportUrl', ], ], ], 'PropertyName' => [ 'type' => 'string', ], 'ProviderName' => [ 'type' => 'string', 'max' => 50, 'min' => 1, ], 'ProvisionProductInput' => [ 'type' => 'structure', 'required' => [ 'ProductId', 'ProvisioningArtifactId', 'ProvisionedProductName', 'ProvisionToken', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'ProductId' => [ 'shape' => 'Id', ], 'ProvisioningArtifactId' => [ 'shape' => 'Id', ], 'PathId' => [ 'shape' => 'Id', ], 'ProvisionedProductName' => [ 'shape' => 'ProvisionedProductName', ], 'ProvisioningParameters' => [ 'shape' => 'ProvisioningParameters', ], 'ProvisioningPreferences' => [ 'shape' => 'ProvisioningPreferences', ], 'Tags' => [ 'shape' => 'Tags', ], 'NotificationArns' => [ 'shape' => 'NotificationArns', ], 'ProvisionToken' => [ 'shape' => 'IdempotencyToken', 'idempotencyToken' => true, ], ], ], 'ProvisionProductOutput' => [ 'type' => 'structure', 'members' => [ 'RecordDetail' => [ 'shape' => 'RecordDetail', ], ], ], 'ProvisionedProductAttribute' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'ProvisionedProductNameOrArn', ], 'Arn' => [ 'shape' => 'ProvisionedProductNameOrArn', ], 'Type' => [ 'shape' => 'ProvisionedProductType', ], 'Id' => [ 'shape' => 'Id', ], 'Status' => [ 'shape' => 'ProvisionedProductStatus', ], 'StatusMessage' => [ 'shape' => 'ProvisionedProductStatusMessage', ], 'CreatedTime' => [ 'shape' => 'CreatedTime', ], 'IdempotencyToken' => [ 'shape' => 'IdempotencyToken', ], 'LastRecordId' => [ 'shape' => 'Id', ], 'Tags' => [ 'shape' => 'Tags', ], 'PhysicalId' => [ 'shape' => 'PhysicalId', ], 'ProductId' => [ 'shape' => 'Id', ], 'ProvisioningArtifactId' => [ 'shape' => 'Id', ], 'UserArn' => [ 'shape' => 'UserArn', ], 'UserArnSession' => [ 'shape' => 'UserArnSession', ], ], ], 'ProvisionedProductAttributes' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProvisionedProductAttribute', ], ], 'ProvisionedProductDetail' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'ProvisionedProductNameOrArn', ], 'Arn' => [ 'shape' => 'ProvisionedProductNameOrArn', ], 'Type' => [ 'shape' => 'ProvisionedProductType', ], 'Id' => [ 'shape' => 'ProvisionedProductId', ], 'Status' => [ 'shape' => 'ProvisionedProductStatus', ], 'StatusMessage' => [ 'shape' => 'ProvisionedProductStatusMessage', ], 'CreatedTime' => [ 'shape' => 'CreatedTime', ], 'IdempotencyToken' => [ 'shape' => 'IdempotencyToken', ], 'LastRecordId' => [ 'shape' => 'LastRequestId', ], 'ProductId' => [ 'shape' => 'Id', ], 'ProvisioningArtifactId' => [ 'shape' => 'Id', ], ], ], 'ProvisionedProductDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProvisionedProductDetail', ], ], 'ProvisionedProductFilters' => [ 'type' => 'map', 'key' => [ 'shape' => 'ProvisionedProductViewFilterBy', ], 'value' => [ 'shape' => 'ProvisionedProductViewFilterValues', ], ], 'ProvisionedProductId' => [ 'type' => 'string', ], 'ProvisionedProductName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9][a-zA-Z0-9._-]*', ], 'ProvisionedProductNameOrArn' => [ 'type' => 'string', 'max' => 1224, 'min' => 1, 'pattern' => '[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}|arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}', ], 'ProvisionedProductPlanDetails' => [ 'type' => 'structure', 'members' => [ 'CreatedTime' => [ 'shape' => 'CreatedTime', ], 'PathId' => [ 'shape' => 'Id', ], 'ProductId' => [ 'shape' => 'Id', ], 'PlanName' => [ 'shape' => 'ProvisionedProductPlanName', ], 'PlanId' => [ 'shape' => 'Id', ], 'ProvisionProductId' => [ 'shape' => 'Id', ], 'ProvisionProductName' => [ 'shape' => 'ProvisionedProductName', ], 'PlanType' => [ 'shape' => 'ProvisionedProductPlanType', ], 'ProvisioningArtifactId' => [ 'shape' => 'Id', ], 'Status' => [ 'shape' => 'ProvisionedProductPlanStatus', ], 'UpdatedTime' => [ 'shape' => 'UpdatedTime', ], 'NotificationArns' => [ 'shape' => 'NotificationArns', ], 'ProvisioningParameters' => [ 'shape' => 'UpdateProvisioningParameters', ], 'Tags' => [ 'shape' => 'Tags', ], 'StatusMessage' => [ 'shape' => 'StatusMessage', ], ], ], 'ProvisionedProductPlanName' => [ 'type' => 'string', ], 'ProvisionedProductPlanStatus' => [ 'type' => 'string', 'enum' => [ 'CREATE_IN_PROGRESS', 'CREATE_SUCCESS', 'CREATE_FAILED', 'EXECUTE_IN_PROGRESS', 'EXECUTE_SUCCESS', 'EXECUTE_FAILED', ], ], 'ProvisionedProductPlanSummary' => [ 'type' => 'structure', 'members' => [ 'PlanName' => [ 'shape' => 'ProvisionedProductPlanName', ], 'PlanId' => [ 'shape' => 'Id', ], 'ProvisionProductId' => [ 'shape' => 'Id', ], 'ProvisionProductName' => [ 'shape' => 'ProvisionedProductName', ], 'PlanType' => [ 'shape' => 'ProvisionedProductPlanType', ], 'ProvisioningArtifactId' => [ 'shape' => 'Id', ], ], ], 'ProvisionedProductPlanType' => [ 'type' => 'string', 'enum' => [ 'CLOUDFORMATION', ], ], 'ProvisionedProductPlans' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProvisionedProductPlanSummary', ], ], 'ProvisionedProductStatus' => [ 'type' => 'string', 'enum' => [ 'AVAILABLE', 'UNDER_CHANGE', 'TAINTED', 'ERROR', 'PLAN_IN_PROGRESS', ], ], 'ProvisionedProductStatusMessage' => [ 'type' => 'string', ], 'ProvisionedProductType' => [ 'type' => 'string', ], 'ProvisionedProductViewFilterBy' => [ 'type' => 'string', 'enum' => [ 'SearchQuery', ], ], 'ProvisionedProductViewFilterValue' => [ 'type' => 'string', ], 'ProvisionedProductViewFilterValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProvisionedProductViewFilterValue', ], ], 'ProvisioningArtifact' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'ProvisioningArtifactName', ], 'Description' => [ 'shape' => 'ProvisioningArtifactDescription', ], 'CreatedTime' => [ 'shape' => 'ProvisioningArtifactCreatedTime', ], ], ], 'ProvisioningArtifactActive' => [ 'type' => 'boolean', ], 'ProvisioningArtifactCreatedTime' => [ 'type' => 'timestamp', ], 'ProvisioningArtifactDescription' => [ 'type' => 'string', ], 'ProvisioningArtifactDetail' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'ProvisioningArtifactName', ], 'Description' => [ 'shape' => 'ProvisioningArtifactName', ], 'Type' => [ 'shape' => 'ProvisioningArtifactType', ], 'CreatedTime' => [ 'shape' => 'CreationTime', ], 'Active' => [ 'shape' => 'ProvisioningArtifactActive', ], ], ], 'ProvisioningArtifactDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProvisioningArtifactDetail', ], ], 'ProvisioningArtifactInfo' => [ 'type' => 'map', 'key' => [ 'shape' => 'ProvisioningArtifactInfoKey', ], 'value' => [ 'shape' => 'ProvisioningArtifactInfoValue', ], 'max' => 100, 'min' => 1, ], 'ProvisioningArtifactInfoKey' => [ 'type' => 'string', ], 'ProvisioningArtifactInfoValue' => [ 'type' => 'string', ], 'ProvisioningArtifactName' => [ 'type' => 'string', ], 'ProvisioningArtifactParameter' => [ 'type' => 'structure', 'members' => [ 'ParameterKey' => [ 'shape' => 'ParameterKey', ], 'DefaultValue' => [ 'shape' => 'DefaultValue', ], 'ParameterType' => [ 'shape' => 'ParameterType', ], 'IsNoEcho' => [ 'shape' => 'NoEcho', ], 'Description' => [ 'shape' => 'Description', ], 'ParameterConstraints' => [ 'shape' => 'ParameterConstraints', ], ], ], 'ProvisioningArtifactParameters' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProvisioningArtifactParameter', ], ], 'ProvisioningArtifactPreferences' => [ 'type' => 'structure', 'members' => [ 'StackSetAccounts' => [ 'shape' => 'StackSetAccounts', ], 'StackSetRegions' => [ 'shape' => 'StackSetRegions', ], ], ], 'ProvisioningArtifactProperties' => [ 'type' => 'structure', 'required' => [ 'Info', ], 'members' => [ 'Name' => [ 'shape' => 'ProvisioningArtifactName', ], 'Description' => [ 'shape' => 'ProvisioningArtifactDescription', ], 'Info' => [ 'shape' => 'ProvisioningArtifactInfo', ], 'Type' => [ 'shape' => 'ProvisioningArtifactType', ], ], ], 'ProvisioningArtifactPropertyName' => [ 'type' => 'string', 'enum' => [ 'Id', ], ], 'ProvisioningArtifactPropertyValue' => [ 'type' => 'string', ], 'ProvisioningArtifactSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProvisioningArtifactSummary', ], ], 'ProvisioningArtifactSummary' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'ProvisioningArtifactName', ], 'Description' => [ 'shape' => 'ProvisioningArtifactDescription', ], 'CreatedTime' => [ 'shape' => 'ProvisioningArtifactCreatedTime', ], 'ProvisioningArtifactMetadata' => [ 'shape' => 'ProvisioningArtifactInfo', ], ], ], 'ProvisioningArtifactType' => [ 'type' => 'string', 'enum' => [ 'CLOUD_FORMATION_TEMPLATE', 'MARKETPLACE_AMI', 'MARKETPLACE_CAR', ], ], 'ProvisioningArtifactView' => [ 'type' => 'structure', 'members' => [ 'ProductViewSummary' => [ 'shape' => 'ProductViewSummary', ], 'ProvisioningArtifact' => [ 'shape' => 'ProvisioningArtifact', ], ], ], 'ProvisioningArtifactViews' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProvisioningArtifactView', ], ], 'ProvisioningArtifacts' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProvisioningArtifact', ], ], 'ProvisioningParameter' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'ParameterKey', ], 'Value' => [ 'shape' => 'ParameterValue', ], ], ], 'ProvisioningParameters' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProvisioningParameter', ], ], 'ProvisioningPreferences' => [ 'type' => 'structure', 'members' => [ 'StackSetAccounts' => [ 'shape' => 'StackSetAccounts', ], 'StackSetRegions' => [ 'shape' => 'StackSetRegions', ], 'StackSetFailureToleranceCount' => [ 'shape' => 'StackSetFailureToleranceCount', ], 'StackSetFailureTolerancePercentage' => [ 'shape' => 'StackSetFailureTolerancePercentage', ], 'StackSetMaxConcurrencyCount' => [ 'shape' => 'StackSetMaxConcurrencyCount', ], 'StackSetMaxConcurrencyPercentage' => [ 'shape' => 'StackSetMaxConcurrencyPercentage', ], ], ], 'RecordDetail' => [ 'type' => 'structure', 'members' => [ 'RecordId' => [ 'shape' => 'Id', ], 'ProvisionedProductName' => [ 'shape' => 'ProvisionedProductName', ], 'Status' => [ 'shape' => 'RecordStatus', ], 'CreatedTime' => [ 'shape' => 'CreatedTime', ], 'UpdatedTime' => [ 'shape' => 'UpdatedTime', ], 'ProvisionedProductType' => [ 'shape' => 'ProvisionedProductType', ], 'RecordType' => [ 'shape' => 'RecordType', ], 'ProvisionedProductId' => [ 'shape' => 'Id', ], 'ProductId' => [ 'shape' => 'Id', ], 'ProvisioningArtifactId' => [ 'shape' => 'Id', ], 'PathId' => [ 'shape' => 'Id', ], 'RecordErrors' => [ 'shape' => 'RecordErrors', ], 'RecordTags' => [ 'shape' => 'RecordTags', ], ], ], 'RecordDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'RecordDetail', ], ], 'RecordError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ErrorCode', ], 'Description' => [ 'shape' => 'ErrorDescription', ], ], ], 'RecordErrors' => [ 'type' => 'list', 'member' => [ 'shape' => 'RecordError', ], ], 'RecordOutput' => [ 'type' => 'structure', 'members' => [ 'OutputKey' => [ 'shape' => 'OutputKey', ], 'OutputValue' => [ 'shape' => 'OutputValue', ], 'Description' => [ 'shape' => 'Description', ], ], ], 'RecordOutputs' => [ 'type' => 'list', 'member' => [ 'shape' => 'RecordOutput', ], ], 'RecordStatus' => [ 'type' => 'string', 'enum' => [ 'CREATED', 'IN_PROGRESS', 'IN_PROGRESS_IN_ERROR', 'SUCCEEDED', 'FAILED', ], ], 'RecordTag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'RecordTagKey', ], 'Value' => [ 'shape' => 'RecordTagValue', ], ], ], 'RecordTagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$', ], 'RecordTagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$', ], 'RecordTags' => [ 'type' => 'list', 'member' => [ 'shape' => 'RecordTag', ], 'max' => 50, ], 'RecordType' => [ 'type' => 'string', ], 'Region' => [ 'type' => 'string', ], 'RejectPortfolioShareInput' => [ 'type' => 'structure', 'required' => [ 'PortfolioId', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'PortfolioId' => [ 'shape' => 'Id', ], 'PortfolioShareType' => [ 'shape' => 'PortfolioShareType', ], ], ], 'RejectPortfolioShareOutput' => [ 'type' => 'structure', 'members' => [], ], 'Replacement' => [ 'type' => 'string', 'enum' => [ 'TRUE', 'FALSE', 'CONDITIONAL', ], ], 'RequiresRecreation' => [ 'type' => 'string', 'enum' => [ 'NEVER', 'CONDITIONALLY', 'ALWAYS', ], ], 'ResourceARN' => [ 'type' => 'string', 'max' => 150, 'min' => 1, ], 'ResourceAttribute' => [ 'type' => 'string', 'enum' => [ 'PROPERTIES', 'METADATA', 'CREATIONPOLICY', 'UPDATEPOLICY', 'DELETIONPOLICY', 'TAGS', ], ], 'ResourceChange' => [ 'type' => 'structure', 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'LogicalResourceId' => [ 'shape' => 'LogicalResourceId', ], 'PhysicalResourceId' => [ 'shape' => 'PhysicalResourceId', ], 'ResourceType' => [ 'shape' => 'PlanResourceType', ], 'Replacement' => [ 'shape' => 'Replacement', ], 'Scope' => [ 'shape' => 'Scope', ], 'Details' => [ 'shape' => 'ResourceChangeDetails', ], ], ], 'ResourceChangeDetail' => [ 'type' => 'structure', 'members' => [ 'Target' => [ 'shape' => 'ResourceTargetDefinition', ], 'Evaluation' => [ 'shape' => 'EvaluationType', ], 'CausingEntity' => [ 'shape' => 'CausingEntity', ], ], ], 'ResourceChangeDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceChangeDetail', ], ], 'ResourceChanges' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceChange', ], ], 'ResourceDetail' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ResourceDetailId', ], 'ARN' => [ 'shape' => 'ResourceDetailARN', ], 'Name' => [ 'shape' => 'ResourceDetailName', ], 'Description' => [ 'shape' => 'ResourceDetailDescription', ], 'CreatedTime' => [ 'shape' => 'ResourceDetailCreatedTime', ], ], ], 'ResourceDetailARN' => [ 'type' => 'string', ], 'ResourceDetailCreatedTime' => [ 'type' => 'timestamp', ], 'ResourceDetailDescription' => [ 'type' => 'string', ], 'ResourceDetailId' => [ 'type' => 'string', ], 'ResourceDetailName' => [ 'type' => 'string', ], 'ResourceDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceDetail', ], ], 'ResourceId' => [ 'type' => 'string', ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ResourceTargetDefinition' => [ 'type' => 'structure', 'members' => [ 'Attribute' => [ 'shape' => 'ResourceAttribute', ], 'Name' => [ 'shape' => 'PropertyName', ], 'RequiresRecreation' => [ 'shape' => 'RequiresRecreation', ], ], ], 'ResourceType' => [ 'type' => 'string', ], 'ScanProvisionedProductsInput' => [ 'type' => 'structure', 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'AccessLevelFilter' => [ 'shape' => 'AccessLevelFilter', ], 'PageSize' => [ 'shape' => 'PageSize', ], 'PageToken' => [ 'shape' => 'PageToken', ], ], ], 'ScanProvisionedProductsOutput' => [ 'type' => 'structure', 'members' => [ 'ProvisionedProducts' => [ 'shape' => 'ProvisionedProductDetails', ], 'NextPageToken' => [ 'shape' => 'PageToken', ], ], ], 'Scope' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceAttribute', ], ], 'SearchFilterKey' => [ 'type' => 'string', ], 'SearchFilterValue' => [ 'type' => 'string', ], 'SearchProductsAsAdminInput' => [ 'type' => 'structure', 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'PortfolioId' => [ 'shape' => 'Id', ], 'Filters' => [ 'shape' => 'ProductViewFilters', ], 'SortBy' => [ 'shape' => 'ProductViewSortBy', ], 'SortOrder' => [ 'shape' => 'SortOrder', ], 'PageToken' => [ 'shape' => 'PageToken', ], 'PageSize' => [ 'shape' => 'PageSize', ], 'ProductSource' => [ 'shape' => 'ProductSource', ], ], ], 'SearchProductsAsAdminOutput' => [ 'type' => 'structure', 'members' => [ 'ProductViewDetails' => [ 'shape' => 'ProductViewDetails', ], 'NextPageToken' => [ 'shape' => 'PageToken', ], ], ], 'SearchProductsInput' => [ 'type' => 'structure', 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'Filters' => [ 'shape' => 'ProductViewFilters', ], 'PageSize' => [ 'shape' => 'PageSize', ], 'SortBy' => [ 'shape' => 'ProductViewSortBy', ], 'SortOrder' => [ 'shape' => 'SortOrder', ], 'PageToken' => [ 'shape' => 'PageToken', ], ], ], 'SearchProductsOutput' => [ 'type' => 'structure', 'members' => [ 'ProductViewSummaries' => [ 'shape' => 'ProductViewSummaries', ], 'ProductViewAggregations' => [ 'shape' => 'ProductViewAggregations', ], 'NextPageToken' => [ 'shape' => 'PageToken', ], ], ], 'SearchProvisionedProductsInput' => [ 'type' => 'structure', 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'AccessLevelFilter' => [ 'shape' => 'AccessLevelFilter', ], 'Filters' => [ 'shape' => 'ProvisionedProductFilters', ], 'SortBy' => [ 'shape' => 'SortField', ], 'SortOrder' => [ 'shape' => 'SortOrder', ], 'PageSize' => [ 'shape' => 'SearchProvisionedProductsPageSize', ], 'PageToken' => [ 'shape' => 'PageToken', ], ], ], 'SearchProvisionedProductsOutput' => [ 'type' => 'structure', 'members' => [ 'ProvisionedProducts' => [ 'shape' => 'ProvisionedProductAttributes', ], 'TotalResultsCount' => [ 'shape' => 'TotalResultsCount', ], 'NextPageToken' => [ 'shape' => 'PageToken', ], ], ], 'SearchProvisionedProductsPageSize' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'ServiceActionAssociation' => [ 'type' => 'structure', 'required' => [ 'ServiceActionId', 'ProductId', 'ProvisioningArtifactId', ], 'members' => [ 'ServiceActionId' => [ 'shape' => 'Id', ], 'ProductId' => [ 'shape' => 'Id', ], 'ProvisioningArtifactId' => [ 'shape' => 'Id', ], ], ], 'ServiceActionAssociationErrorCode' => [ 'type' => 'string', 'enum' => [ 'DUPLICATE_RESOURCE', 'INTERNAL_FAILURE', 'LIMIT_EXCEEDED', 'RESOURCE_NOT_FOUND', 'THROTTLING', ], ], 'ServiceActionAssociationErrorMessage' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'ServiceActionAssociations' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceActionAssociation', ], 'max' => 50, 'min' => 1, ], 'ServiceActionDefinitionKey' => [ 'type' => 'string', 'enum' => [ 'Name', 'Version', 'AssumeRole', 'Parameters', ], ], 'ServiceActionDefinitionMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'ServiceActionDefinitionKey', ], 'value' => [ 'shape' => 'ServiceActionDefinitionValue', ], 'max' => 100, 'min' => 1, ], 'ServiceActionDefinitionType' => [ 'type' => 'string', 'enum' => [ 'SSM_AUTOMATION', ], ], 'ServiceActionDefinitionValue' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'ServiceActionDescription' => [ 'type' => 'string', 'max' => 1024, ], 'ServiceActionDetail' => [ 'type' => 'structure', 'members' => [ 'ServiceActionSummary' => [ 'shape' => 'ServiceActionSummary', ], 'Definition' => [ 'shape' => 'ServiceActionDefinitionMap', ], ], ], 'ServiceActionName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^[a-zA-Z0-9_\\-.]*', ], 'ServiceActionSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceActionSummary', ], ], 'ServiceActionSummary' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'ServiceActionName', ], 'Description' => [ 'shape' => 'ServiceActionDescription', ], 'DefinitionType' => [ 'shape' => 'ServiceActionDefinitionType', ], ], ], 'ShareDetails' => [ 'type' => 'structure', 'members' => [ 'SuccessfulShares' => [ 'shape' => 'SuccessfulShares', ], 'ShareErrors' => [ 'shape' => 'ShareErrors', ], ], ], 'ShareError' => [ 'type' => 'structure', 'members' => [ 'Accounts' => [ 'shape' => 'Namespaces', ], 'Message' => [ 'shape' => 'Message', ], 'Error' => [ 'shape' => 'Error', ], ], ], 'ShareErrors' => [ 'type' => 'list', 'member' => [ 'shape' => 'ShareError', ], ], 'ShareStatus' => [ 'type' => 'string', 'enum' => [ 'NOT_STARTED', 'IN_PROGRESS', 'COMPLETED', 'COMPLETED_WITH_ERRORS', 'ERROR', ], ], 'SortField' => [ 'type' => 'string', ], 'SortOrder' => [ 'type' => 'string', 'enum' => [ 'ASCENDING', 'DESCENDING', ], ], 'SourceProvisioningArtifactProperties' => [ 'type' => 'list', 'member' => [ 'shape' => 'SourceProvisioningArtifactPropertiesMap', ], ], 'SourceProvisioningArtifactPropertiesMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'ProvisioningArtifactPropertyName', ], 'value' => [ 'shape' => 'ProvisioningArtifactPropertyValue', ], ], 'StackSetAccounts' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountId', ], ], 'StackSetFailureToleranceCount' => [ 'type' => 'integer', 'min' => 0, ], 'StackSetFailureTolerancePercentage' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'StackSetMaxConcurrencyCount' => [ 'type' => 'integer', 'min' => 1, ], 'StackSetMaxConcurrencyPercentage' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'StackSetOperationType' => [ 'type' => 'string', 'enum' => [ 'CREATE', 'UPDATE', 'DELETE', ], ], 'StackSetRegions' => [ 'type' => 'list', 'member' => [ 'shape' => 'Region', ], ], 'Status' => [ 'type' => 'string', 'enum' => [ 'AVAILABLE', 'CREATING', 'FAILED', ], ], 'StatusDetail' => [ 'type' => 'string', ], 'StatusMessage' => [ 'type' => 'string', 'pattern' => '[\\u0009\\u000a\\u000d\\u0020-\\uD7FF\\uE000-\\uFFFD]*', ], 'SuccessfulShares' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountId', ], ], 'SupportDescription' => [ 'type' => 'string', 'max' => 8191, ], 'SupportEmail' => [ 'type' => 'string', 'max' => 254, ], 'SupportUrl' => [ 'type' => 'string', 'max' => 2083, ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeys' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagOptionActive' => [ 'type' => 'boolean', ], 'TagOptionDetail' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'TagOptionKey', ], 'Value' => [ 'shape' => 'TagOptionValue', ], 'Active' => [ 'shape' => 'TagOptionActive', ], 'Id' => [ 'shape' => 'TagOptionId', ], ], ], 'TagOptionDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagOptionDetail', ], ], 'TagOptionId' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'TagOptionKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagOptionNotMigratedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'TagOptionSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagOptionSummary', ], ], 'TagOptionSummary' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'TagOptionKey', ], 'Values' => [ 'shape' => 'TagOptionValues', ], ], ], 'TagOptionValue' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagOptionValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagOptionValue', ], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'Tags' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 50, ], 'TerminateProvisionedProductInput' => [ 'type' => 'structure', 'required' => [ 'TerminateToken', ], 'members' => [ 'ProvisionedProductName' => [ 'shape' => 'ProvisionedProductNameOrArn', ], 'ProvisionedProductId' => [ 'shape' => 'Id', ], 'TerminateToken' => [ 'shape' => 'IdempotencyToken', 'idempotencyToken' => true, ], 'IgnoreErrors' => [ 'shape' => 'IgnoreErrors', ], 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], ], ], 'TerminateProvisionedProductOutput' => [ 'type' => 'structure', 'members' => [ 'RecordDetail' => [ 'shape' => 'RecordDetail', ], ], ], 'TotalResultsCount' => [ 'type' => 'integer', ], 'UpdateConstraintInput' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'Id' => [ 'shape' => 'Id', ], 'Description' => [ 'shape' => 'ConstraintDescription', ], ], ], 'UpdateConstraintOutput' => [ 'type' => 'structure', 'members' => [ 'ConstraintDetail' => [ 'shape' => 'ConstraintDetail', ], 'ConstraintParameters' => [ 'shape' => 'ConstraintParameters', ], 'Status' => [ 'shape' => 'Status', ], ], ], 'UpdatePortfolioInput' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'Id' => [ 'shape' => 'Id', ], 'DisplayName' => [ 'shape' => 'PortfolioDisplayName', ], 'Description' => [ 'shape' => 'PortfolioDescription', ], 'ProviderName' => [ 'shape' => 'ProviderName', ], 'AddTags' => [ 'shape' => 'AddTags', ], 'RemoveTags' => [ 'shape' => 'TagKeys', ], ], ], 'UpdatePortfolioOutput' => [ 'type' => 'structure', 'members' => [ 'PortfolioDetail' => [ 'shape' => 'PortfolioDetail', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'UpdateProductInput' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'ProductViewName', ], 'Owner' => [ 'shape' => 'ProductViewOwner', ], 'Description' => [ 'shape' => 'ProductViewShortDescription', ], 'Distributor' => [ 'shape' => 'ProductViewOwner', ], 'SupportDescription' => [ 'shape' => 'SupportDescription', ], 'SupportEmail' => [ 'shape' => 'SupportEmail', ], 'SupportUrl' => [ 'shape' => 'SupportUrl', ], 'AddTags' => [ 'shape' => 'AddTags', ], 'RemoveTags' => [ 'shape' => 'TagKeys', ], ], ], 'UpdateProductOutput' => [ 'type' => 'structure', 'members' => [ 'ProductViewDetail' => [ 'shape' => 'ProductViewDetail', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'UpdateProvisionedProductInput' => [ 'type' => 'structure', 'required' => [ 'UpdateToken', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'ProvisionedProductName' => [ 'shape' => 'ProvisionedProductNameOrArn', ], 'ProvisionedProductId' => [ 'shape' => 'Id', ], 'ProductId' => [ 'shape' => 'Id', ], 'ProvisioningArtifactId' => [ 'shape' => 'Id', ], 'PathId' => [ 'shape' => 'Id', ], 'ProvisioningParameters' => [ 'shape' => 'UpdateProvisioningParameters', ], 'ProvisioningPreferences' => [ 'shape' => 'UpdateProvisioningPreferences', ], 'Tags' => [ 'shape' => 'Tags', ], 'UpdateToken' => [ 'shape' => 'IdempotencyToken', 'idempotencyToken' => true, ], ], ], 'UpdateProvisionedProductOutput' => [ 'type' => 'structure', 'members' => [ 'RecordDetail' => [ 'shape' => 'RecordDetail', ], ], ], 'UpdateProvisioningArtifactInput' => [ 'type' => 'structure', 'required' => [ 'ProductId', 'ProvisioningArtifactId', ], 'members' => [ 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], 'ProductId' => [ 'shape' => 'Id', ], 'ProvisioningArtifactId' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'ProvisioningArtifactName', ], 'Description' => [ 'shape' => 'ProvisioningArtifactDescription', ], 'Active' => [ 'shape' => 'ProvisioningArtifactActive', ], ], ], 'UpdateProvisioningArtifactOutput' => [ 'type' => 'structure', 'members' => [ 'ProvisioningArtifactDetail' => [ 'shape' => 'ProvisioningArtifactDetail', ], 'Info' => [ 'shape' => 'ProvisioningArtifactInfo', ], 'Status' => [ 'shape' => 'Status', ], ], ], 'UpdateProvisioningParameter' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'ParameterKey', ], 'Value' => [ 'shape' => 'ParameterValue', ], 'UsePreviousValue' => [ 'shape' => 'UsePreviousValue', ], ], ], 'UpdateProvisioningParameters' => [ 'type' => 'list', 'member' => [ 'shape' => 'UpdateProvisioningParameter', ], ], 'UpdateProvisioningPreferences' => [ 'type' => 'structure', 'members' => [ 'StackSetAccounts' => [ 'shape' => 'StackSetAccounts', ], 'StackSetRegions' => [ 'shape' => 'StackSetRegions', ], 'StackSetFailureToleranceCount' => [ 'shape' => 'StackSetFailureToleranceCount', ], 'StackSetFailureTolerancePercentage' => [ 'shape' => 'StackSetFailureTolerancePercentage', ], 'StackSetMaxConcurrencyCount' => [ 'shape' => 'StackSetMaxConcurrencyCount', ], 'StackSetMaxConcurrencyPercentage' => [ 'shape' => 'StackSetMaxConcurrencyPercentage', ], 'StackSetOperationType' => [ 'shape' => 'StackSetOperationType', ], ], ], 'UpdateServiceActionInput' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'ServiceActionName', ], 'Definition' => [ 'shape' => 'ServiceActionDefinitionMap', ], 'Description' => [ 'shape' => 'ServiceActionDescription', ], 'AcceptLanguage' => [ 'shape' => 'AcceptLanguage', ], ], ], 'UpdateServiceActionOutput' => [ 'type' => 'structure', 'members' => [ 'ServiceActionDetail' => [ 'shape' => 'ServiceActionDetail', ], ], ], 'UpdateTagOptionInput' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'TagOptionId', ], 'Value' => [ 'shape' => 'TagOptionValue', ], 'Active' => [ 'shape' => 'TagOptionActive', ], ], ], 'UpdateTagOptionOutput' => [ 'type' => 'structure', 'members' => [ 'TagOptionDetail' => [ 'shape' => 'TagOptionDetail', ], ], ], 'UpdatedTime' => [ 'type' => 'timestamp', ], 'UsageInstruction' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'InstructionType', ], 'Value' => [ 'shape' => 'InstructionValue', ], ], ], 'UsageInstructions' => [ 'type' => 'list', 'member' => [ 'shape' => 'UsageInstruction', ], ], 'UsePreviousValue' => [ 'type' => 'boolean', ], 'UserArn' => [ 'type' => 'string', ], 'UserArnSession' => [ 'type' => 'string', ], 'Verbose' => [ 'type' => 'boolean', ], ],]; diff --git a/lib/aws/Aws/data/servicecatalog/2015-12-10/paginators-1.json.php b/lib/aws/Aws/data/servicecatalog/2015-12-10/paginators-1.json.php new file mode 100644 index 0000000..f88b48c --- /dev/null +++ b/lib/aws/Aws/data/servicecatalog/2015-12-10/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/servicecatalog/2015-12-10/paginators-1.json +return [ 'pagination' => [ 'ListAcceptedPortfolioShares' => [ 'input_token' => 'PageToken', 'output_token' => 'NextPageToken', 'limit_key' => 'PageSize', ], 'ListConstraintsForPortfolio' => [ 'input_token' => 'PageToken', 'output_token' => 'NextPageToken', 'limit_key' => 'PageSize', ], 'ListLaunchPaths' => [ 'input_token' => 'PageToken', 'output_token' => 'NextPageToken', 'limit_key' => 'PageSize', ], 'ListOrganizationPortfolioAccess' => [ 'input_token' => 'PageToken', 'output_token' => 'NextPageToken', 'limit_key' => 'PageSize', ], 'ListPortfolios' => [ 'input_token' => 'PageToken', 'output_token' => 'NextPageToken', 'limit_key' => 'PageSize', ], 'ListPortfoliosForProduct' => [ 'input_token' => 'PageToken', 'output_token' => 'NextPageToken', 'limit_key' => 'PageSize', ], 'ListPrincipalsForPortfolio' => [ 'input_token' => 'PageToken', 'output_token' => 'NextPageToken', 'limit_key' => 'PageSize', ], 'ListProvisioningArtifactsForServiceAction' => [ 'input_token' => 'PageToken', 'output_token' => 'NextPageToken', 'limit_key' => 'PageSize', ], 'ListResourcesForTagOption' => [ 'input_token' => 'PageToken', 'output_token' => 'PageToken', 'limit_key' => 'PageSize', ], 'ListServiceActions' => [ 'input_token' => 'PageToken', 'output_token' => 'NextPageToken', 'limit_key' => 'PageSize', ], 'ListServiceActionsForProvisioningArtifact' => [ 'input_token' => 'PageToken', 'output_token' => 'NextPageToken', 'limit_key' => 'PageSize', ], 'ListTagOptions' => [ 'input_token' => 'PageToken', 'output_token' => 'PageToken', 'limit_key' => 'PageSize', ], 'SearchProducts' => [ 'input_token' => 'PageToken', 'output_token' => 'NextPageToken', 'limit_key' => 'PageSize', ], 'SearchProductsAsAdmin' => [ 'input_token' => 'PageToken', 'output_token' => 'NextPageToken', 'limit_key' => 'PageSize', ], 'SearchProvisionedProducts' => [ 'input_token' => 'PageToken', 'output_token' => 'NextPageToken', 'limit_key' => 'PageSize', ], ],]; diff --git a/lib/aws/Aws/data/servicecatalog/2015-12-10/smoke.json.php b/lib/aws/Aws/data/servicecatalog/2015-12-10/smoke.json.php new file mode 100644 index 0000000..2a6c340 --- /dev/null +++ b/lib/aws/Aws/data/servicecatalog/2015-12-10/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/servicecatalog/2015-12-10/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListAcceptedPortfolioShares', 'input' => [], 'errorExpectedFromService' => false, ], ],]; diff --git a/lib/aws/Aws/data/servicediscovery/2017-03-14/api-2.json.php b/lib/aws/Aws/data/servicediscovery/2017-03-14/api-2.json.php new file mode 100644 index 0000000..0fe1e47 --- /dev/null +++ b/lib/aws/Aws/data/servicediscovery/2017-03-14/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/servicediscovery/2017-03-14/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-03-14', 'endpointPrefix' => 'servicediscovery', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'ServiceDiscovery', 'serviceFullName' => 'AWS Cloud Map', 'serviceId' => 'ServiceDiscovery', 'signatureVersion' => 'v4', 'targetPrefix' => 'Route53AutoNaming_v20170314', 'uid' => 'servicediscovery-2017-03-14', ], 'operations' => [ 'CreateHttpNamespace' => [ 'name' => 'CreateHttpNamespace', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateHttpNamespaceRequest', ], 'output' => [ 'shape' => 'CreateHttpNamespaceResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'NamespaceAlreadyExists', ], [ 'shape' => 'ResourceLimitExceeded', ], [ 'shape' => 'DuplicateRequest', ], ], ], 'CreatePrivateDnsNamespace' => [ 'name' => 'CreatePrivateDnsNamespace', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePrivateDnsNamespaceRequest', ], 'output' => [ 'shape' => 'CreatePrivateDnsNamespaceResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'NamespaceAlreadyExists', ], [ 'shape' => 'ResourceLimitExceeded', ], [ 'shape' => 'DuplicateRequest', ], ], ], 'CreatePublicDnsNamespace' => [ 'name' => 'CreatePublicDnsNamespace', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePublicDnsNamespaceRequest', ], 'output' => [ 'shape' => 'CreatePublicDnsNamespaceResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'NamespaceAlreadyExists', ], [ 'shape' => 'ResourceLimitExceeded', ], [ 'shape' => 'DuplicateRequest', ], ], ], 'CreateService' => [ 'name' => 'CreateService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateServiceRequest', ], 'output' => [ 'shape' => 'CreateServiceResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'ResourceLimitExceeded', ], [ 'shape' => 'NamespaceNotFound', ], [ 'shape' => 'ServiceAlreadyExists', ], ], ], 'DeleteNamespace' => [ 'name' => 'DeleteNamespace', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNamespaceRequest', ], 'output' => [ 'shape' => 'DeleteNamespaceResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'NamespaceNotFound', ], [ 'shape' => 'ResourceInUse', ], [ 'shape' => 'DuplicateRequest', ], ], ], 'DeleteService' => [ 'name' => 'DeleteService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteServiceRequest', ], 'output' => [ 'shape' => 'DeleteServiceResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'ServiceNotFound', ], [ 'shape' => 'ResourceInUse', ], ], ], 'DeregisterInstance' => [ 'name' => 'DeregisterInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterInstanceRequest', ], 'output' => [ 'shape' => 'DeregisterInstanceResponse', ], 'errors' => [ [ 'shape' => 'DuplicateRequest', ], [ 'shape' => 'InvalidInput', ], [ 'shape' => 'InstanceNotFound', ], [ 'shape' => 'ResourceInUse', ], [ 'shape' => 'ServiceNotFound', ], ], ], 'DiscoverInstances' => [ 'name' => 'DiscoverInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DiscoverInstancesRequest', ], 'output' => [ 'shape' => 'DiscoverInstancesResponse', ], 'errors' => [ [ 'shape' => 'ServiceNotFound', ], [ 'shape' => 'NamespaceNotFound', ], [ 'shape' => 'InvalidInput', ], ], 'endpoint' => [ 'hostPrefix' => 'data-', ], ], 'GetInstance' => [ 'name' => 'GetInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstanceRequest', ], 'output' => [ 'shape' => 'GetInstanceResponse', ], 'errors' => [ [ 'shape' => 'InstanceNotFound', ], [ 'shape' => 'InvalidInput', ], [ 'shape' => 'ServiceNotFound', ], ], ], 'GetInstancesHealthStatus' => [ 'name' => 'GetInstancesHealthStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstancesHealthStatusRequest', ], 'output' => [ 'shape' => 'GetInstancesHealthStatusResponse', ], 'errors' => [ [ 'shape' => 'InstanceNotFound', ], [ 'shape' => 'InvalidInput', ], [ 'shape' => 'ServiceNotFound', ], ], ], 'GetNamespace' => [ 'name' => 'GetNamespace', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetNamespaceRequest', ], 'output' => [ 'shape' => 'GetNamespaceResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'NamespaceNotFound', ], ], ], 'GetOperation' => [ 'name' => 'GetOperation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetOperationRequest', ], 'output' => [ 'shape' => 'GetOperationResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'OperationNotFound', ], ], ], 'GetService' => [ 'name' => 'GetService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetServiceRequest', ], 'output' => [ 'shape' => 'GetServiceResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], [ 'shape' => 'ServiceNotFound', ], ], ], 'ListInstances' => [ 'name' => 'ListInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListInstancesRequest', ], 'output' => [ 'shape' => 'ListInstancesResponse', ], 'errors' => [ [ 'shape' => 'ServiceNotFound', ], [ 'shape' => 'InvalidInput', ], ], ], 'ListNamespaces' => [ 'name' => 'ListNamespaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListNamespacesRequest', ], 'output' => [ 'shape' => 'ListNamespacesResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], ], ], 'ListOperations' => [ 'name' => 'ListOperations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListOperationsRequest', ], 'output' => [ 'shape' => 'ListOperationsResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], ], ], 'ListServices' => [ 'name' => 'ListServices', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListServicesRequest', ], 'output' => [ 'shape' => 'ListServicesResponse', ], 'errors' => [ [ 'shape' => 'InvalidInput', ], ], ], 'RegisterInstance' => [ 'name' => 'RegisterInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterInstanceRequest', ], 'output' => [ 'shape' => 'RegisterInstanceResponse', ], 'errors' => [ [ 'shape' => 'DuplicateRequest', ], [ 'shape' => 'InvalidInput', ], [ 'shape' => 'ResourceInUse', ], [ 'shape' => 'ResourceLimitExceeded', ], [ 'shape' => 'ServiceNotFound', ], ], ], 'UpdateInstanceCustomHealthStatus' => [ 'name' => 'UpdateInstanceCustomHealthStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateInstanceCustomHealthStatusRequest', ], 'errors' => [ [ 'shape' => 'InstanceNotFound', ], [ 'shape' => 'ServiceNotFound', ], [ 'shape' => 'CustomHealthNotFound', ], [ 'shape' => 'InvalidInput', ], ], ], 'UpdateService' => [ 'name' => 'UpdateService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateServiceRequest', ], 'output' => [ 'shape' => 'UpdateServiceResponse', ], 'errors' => [ [ 'shape' => 'DuplicateRequest', ], [ 'shape' => 'InvalidInput', ], [ 'shape' => 'ServiceNotFound', ], ], ], ], 'shapes' => [ 'Arn' => [ 'type' => 'string', 'max' => 255, ], 'AttrKey' => [ 'type' => 'string', 'max' => 255, ], 'AttrValue' => [ 'type' => 'string', 'max' => 1024, ], 'Attributes' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttrKey', ], 'value' => [ 'shape' => 'AttrValue', ], ], 'Code' => [ 'type' => 'string', ], 'CreateHttpNamespaceRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NamespaceName', ], 'CreatorRequestId' => [ 'shape' => 'ResourceId', 'idempotencyToken' => true, ], 'Description' => [ 'shape' => 'ResourceDescription', ], ], ], 'CreateHttpNamespaceResponse' => [ 'type' => 'structure', 'members' => [ 'OperationId' => [ 'shape' => 'OperationId', ], ], ], 'CreatePrivateDnsNamespaceRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'Vpc', ], 'members' => [ 'Name' => [ 'shape' => 'NamespaceName', ], 'CreatorRequestId' => [ 'shape' => 'ResourceId', 'idempotencyToken' => true, ], 'Description' => [ 'shape' => 'ResourceDescription', ], 'Vpc' => [ 'shape' => 'ResourceId', ], ], ], 'CreatePrivateDnsNamespaceResponse' => [ 'type' => 'structure', 'members' => [ 'OperationId' => [ 'shape' => 'OperationId', ], ], ], 'CreatePublicDnsNamespaceRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NamespaceName', ], 'CreatorRequestId' => [ 'shape' => 'ResourceId', 'idempotencyToken' => true, ], 'Description' => [ 'shape' => 'ResourceDescription', ], ], ], 'CreatePublicDnsNamespaceResponse' => [ 'type' => 'structure', 'members' => [ 'OperationId' => [ 'shape' => 'OperationId', ], ], ], 'CreateServiceRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'ServiceName', ], 'NamespaceId' => [ 'shape' => 'ResourceId', ], 'CreatorRequestId' => [ 'shape' => 'ResourceId', 'idempotencyToken' => true, ], 'Description' => [ 'shape' => 'ResourceDescription', ], 'DnsConfig' => [ 'shape' => 'DnsConfig', ], 'HealthCheckConfig' => [ 'shape' => 'HealthCheckConfig', ], 'HealthCheckCustomConfig' => [ 'shape' => 'HealthCheckCustomConfig', ], ], ], 'CreateServiceResponse' => [ 'type' => 'structure', 'members' => [ 'Service' => [ 'shape' => 'Service', ], ], ], 'CustomHealthNotFound' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'CustomHealthStatus' => [ 'type' => 'string', 'enum' => [ 'HEALTHY', 'UNHEALTHY', ], ], 'DeleteNamespaceRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'ResourceId', ], ], ], 'DeleteNamespaceResponse' => [ 'type' => 'structure', 'members' => [ 'OperationId' => [ 'shape' => 'OperationId', ], ], ], 'DeleteServiceRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'ResourceId', ], ], ], 'DeleteServiceResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeregisterInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', 'InstanceId', ], 'members' => [ 'ServiceId' => [ 'shape' => 'ResourceId', ], 'InstanceId' => [ 'shape' => 'ResourceId', ], ], ], 'DeregisterInstanceResponse' => [ 'type' => 'structure', 'members' => [ 'OperationId' => [ 'shape' => 'OperationId', ], ], ], 'DiscoverInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'NamespaceName', 'ServiceName', ], 'members' => [ 'NamespaceName' => [ 'shape' => 'NamespaceName', ], 'ServiceName' => [ 'shape' => 'ServiceName', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'QueryParameters' => [ 'shape' => 'Attributes', ], 'HealthStatus' => [ 'shape' => 'HealthStatusFilter', ], ], ], 'DiscoverInstancesResponse' => [ 'type' => 'structure', 'members' => [ 'Instances' => [ 'shape' => 'HttpInstanceSummaryList', ], ], ], 'DnsConfig' => [ 'type' => 'structure', 'required' => [ 'DnsRecords', ], 'members' => [ 'NamespaceId' => [ 'shape' => 'ResourceId', 'deprecated' => true, 'deprecatedMessage' => 'Top level attribute in request should be used to reference namespace-id', ], 'RoutingPolicy' => [ 'shape' => 'RoutingPolicy', ], 'DnsRecords' => [ 'shape' => 'DnsRecordList', ], ], ], 'DnsConfigChange' => [ 'type' => 'structure', 'required' => [ 'DnsRecords', ], 'members' => [ 'DnsRecords' => [ 'shape' => 'DnsRecordList', ], ], ], 'DnsProperties' => [ 'type' => 'structure', 'members' => [ 'HostedZoneId' => [ 'shape' => 'ResourceId', ], ], ], 'DnsRecord' => [ 'type' => 'structure', 'required' => [ 'Type', 'TTL', ], 'members' => [ 'Type' => [ 'shape' => 'RecordType', ], 'TTL' => [ 'shape' => 'RecordTTL', ], ], ], 'DnsRecordList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DnsRecord', ], ], 'DuplicateRequest' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], 'DuplicateOperationId' => [ 'shape' => 'ResourceId', ], ], 'exception' => true, ], 'ErrorMessage' => [ 'type' => 'string', ], 'FailureThreshold' => [ 'type' => 'integer', 'max' => 10, 'min' => 1, ], 'FilterCondition' => [ 'type' => 'string', 'enum' => [ 'EQ', 'IN', 'BETWEEN', ], ], 'FilterValue' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'FilterValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'FilterValue', ], ], 'GetInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', 'InstanceId', ], 'members' => [ 'ServiceId' => [ 'shape' => 'ResourceId', ], 'InstanceId' => [ 'shape' => 'ResourceId', ], ], ], 'GetInstanceResponse' => [ 'type' => 'structure', 'members' => [ 'Instance' => [ 'shape' => 'Instance', ], ], ], 'GetInstancesHealthStatusRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', ], 'members' => [ 'ServiceId' => [ 'shape' => 'ResourceId', ], 'Instances' => [ 'shape' => 'InstanceIdList', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetInstancesHealthStatusResponse' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'InstanceHealthStatusMap', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetNamespaceRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'ResourceId', ], ], ], 'GetNamespaceResponse' => [ 'type' => 'structure', 'members' => [ 'Namespace' => [ 'shape' => 'Namespace', ], ], ], 'GetOperationRequest' => [ 'type' => 'structure', 'required' => [ 'OperationId', ], 'members' => [ 'OperationId' => [ 'shape' => 'ResourceId', ], ], ], 'GetOperationResponse' => [ 'type' => 'structure', 'members' => [ 'Operation' => [ 'shape' => 'Operation', ], ], ], 'GetServiceRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'ResourceId', ], ], ], 'GetServiceResponse' => [ 'type' => 'structure', 'members' => [ 'Service' => [ 'shape' => 'Service', ], ], ], 'HealthCheckConfig' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'HealthCheckType', ], 'ResourcePath' => [ 'shape' => 'ResourcePath', ], 'FailureThreshold' => [ 'shape' => 'FailureThreshold', ], ], ], 'HealthCheckCustomConfig' => [ 'type' => 'structure', 'members' => [ 'FailureThreshold' => [ 'shape' => 'FailureThreshold', ], ], ], 'HealthCheckType' => [ 'type' => 'string', 'enum' => [ 'HTTP', 'HTTPS', 'TCP', ], ], 'HealthStatus' => [ 'type' => 'string', 'enum' => [ 'HEALTHY', 'UNHEALTHY', 'UNKNOWN', ], ], 'HealthStatusFilter' => [ 'type' => 'string', 'enum' => [ 'HEALTHY', 'UNHEALTHY', 'ALL', ], ], 'HttpInstanceSummary' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'ResourceId', ], 'NamespaceName' => [ 'shape' => 'NamespaceName', ], 'ServiceName' => [ 'shape' => 'ServiceName', ], 'HealthStatus' => [ 'shape' => 'HealthStatus', ], 'Attributes' => [ 'shape' => 'Attributes', ], ], ], 'HttpInstanceSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HttpInstanceSummary', ], ], 'HttpProperties' => [ 'type' => 'structure', 'members' => [ 'HttpName' => [ 'shape' => 'NamespaceName', ], ], ], 'Instance' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'ResourceId', ], 'CreatorRequestId' => [ 'shape' => 'ResourceId', ], 'Attributes' => [ 'shape' => 'Attributes', ], ], ], 'InstanceHealthStatusMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'ResourceId', ], 'value' => [ 'shape' => 'HealthStatus', ], ], 'InstanceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceId', ], 'min' => 1, ], 'InstanceNotFound' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InstanceSummary' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ResourceId', ], 'Attributes' => [ 'shape' => 'Attributes', ], ], ], 'InstanceSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceSummary', ], ], 'InvalidInput' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ListInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', ], 'members' => [ 'ServiceId' => [ 'shape' => 'ResourceId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListInstancesResponse' => [ 'type' => 'structure', 'members' => [ 'Instances' => [ 'shape' => 'InstanceSummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListNamespacesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'Filters' => [ 'shape' => 'NamespaceFilters', ], ], ], 'ListNamespacesResponse' => [ 'type' => 'structure', 'members' => [ 'Namespaces' => [ 'shape' => 'NamespaceSummariesList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListOperationsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'Filters' => [ 'shape' => 'OperationFilters', ], ], ], 'ListOperationsResponse' => [ 'type' => 'structure', 'members' => [ 'Operations' => [ 'shape' => 'OperationSummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListServicesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'Filters' => [ 'shape' => 'ServiceFilters', ], ], ], 'ListServicesResponse' => [ 'type' => 'structure', 'members' => [ 'Services' => [ 'shape' => 'ServiceSummariesList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'MaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'Message' => [ 'type' => 'string', ], 'Namespace' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ResourceId', ], 'Arn' => [ 'shape' => 'Arn', ], 'Name' => [ 'shape' => 'NamespaceName', ], 'Type' => [ 'shape' => 'NamespaceType', ], 'Description' => [ 'shape' => 'ResourceDescription', ], 'ServiceCount' => [ 'shape' => 'ResourceCount', ], 'Properties' => [ 'shape' => 'NamespaceProperties', ], 'CreateDate' => [ 'shape' => 'Timestamp', ], 'CreatorRequestId' => [ 'shape' => 'ResourceId', ], ], ], 'NamespaceAlreadyExists' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], 'CreatorRequestId' => [ 'shape' => 'ResourceId', ], 'NamespaceId' => [ 'shape' => 'ResourceId', ], ], 'exception' => true, ], 'NamespaceFilter' => [ 'type' => 'structure', 'required' => [ 'Name', 'Values', ], 'members' => [ 'Name' => [ 'shape' => 'NamespaceFilterName', ], 'Values' => [ 'shape' => 'FilterValues', ], 'Condition' => [ 'shape' => 'FilterCondition', ], ], ], 'NamespaceFilterName' => [ 'type' => 'string', 'enum' => [ 'TYPE', ], ], 'NamespaceFilters' => [ 'type' => 'list', 'member' => [ 'shape' => 'NamespaceFilter', ], ], 'NamespaceName' => [ 'type' => 'string', 'max' => 1024, ], 'NamespaceNotFound' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'NamespaceProperties' => [ 'type' => 'structure', 'members' => [ 'DnsProperties' => [ 'shape' => 'DnsProperties', ], 'HttpProperties' => [ 'shape' => 'HttpProperties', ], ], ], 'NamespaceSummariesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NamespaceSummary', ], ], 'NamespaceSummary' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ResourceId', ], 'Arn' => [ 'shape' => 'Arn', ], 'Name' => [ 'shape' => 'NamespaceName', ], 'Type' => [ 'shape' => 'NamespaceType', ], 'Description' => [ 'shape' => 'ResourceDescription', ], 'ServiceCount' => [ 'shape' => 'ResourceCount', ], 'Properties' => [ 'shape' => 'NamespaceProperties', ], 'CreateDate' => [ 'shape' => 'Timestamp', ], ], ], 'NamespaceType' => [ 'type' => 'string', 'enum' => [ 'DNS_PUBLIC', 'DNS_PRIVATE', 'HTTP', ], ], 'NextToken' => [ 'type' => 'string', 'max' => 4096, ], 'Operation' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'OperationId', ], 'Type' => [ 'shape' => 'OperationType', ], 'Status' => [ 'shape' => 'OperationStatus', ], 'ErrorMessage' => [ 'shape' => 'Message', ], 'ErrorCode' => [ 'shape' => 'Code', ], 'CreateDate' => [ 'shape' => 'Timestamp', ], 'UpdateDate' => [ 'shape' => 'Timestamp', ], 'Targets' => [ 'shape' => 'OperationTargetsMap', ], ], ], 'OperationFilter' => [ 'type' => 'structure', 'required' => [ 'Name', 'Values', ], 'members' => [ 'Name' => [ 'shape' => 'OperationFilterName', ], 'Values' => [ 'shape' => 'FilterValues', ], 'Condition' => [ 'shape' => 'FilterCondition', ], ], ], 'OperationFilterName' => [ 'type' => 'string', 'enum' => [ 'NAMESPACE_ID', 'SERVICE_ID', 'STATUS', 'TYPE', 'UPDATE_DATE', ], ], 'OperationFilters' => [ 'type' => 'list', 'member' => [ 'shape' => 'OperationFilter', ], ], 'OperationId' => [ 'type' => 'string', 'max' => 255, ], 'OperationNotFound' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'OperationStatus' => [ 'type' => 'string', 'enum' => [ 'SUBMITTED', 'PENDING', 'SUCCESS', 'FAIL', ], ], 'OperationSummary' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'OperationId', ], 'Status' => [ 'shape' => 'OperationStatus', ], ], ], 'OperationSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OperationSummary', ], ], 'OperationTargetType' => [ 'type' => 'string', 'enum' => [ 'NAMESPACE', 'SERVICE', 'INSTANCE', ], ], 'OperationTargetsMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'OperationTargetType', ], 'value' => [ 'shape' => 'ResourceId', ], ], 'OperationType' => [ 'type' => 'string', 'enum' => [ 'CREATE_NAMESPACE', 'DELETE_NAMESPACE', 'UPDATE_SERVICE', 'REGISTER_INSTANCE', 'DEREGISTER_INSTANCE', ], ], 'RecordTTL' => [ 'type' => 'long', 'max' => 2147483647, 'min' => 0, ], 'RecordType' => [ 'type' => 'string', 'enum' => [ 'SRV', 'A', 'AAAA', 'CNAME', ], ], 'RegisterInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', 'InstanceId', 'Attributes', ], 'members' => [ 'ServiceId' => [ 'shape' => 'ResourceId', ], 'InstanceId' => [ 'shape' => 'ResourceId', ], 'CreatorRequestId' => [ 'shape' => 'ResourceId', 'idempotencyToken' => true, ], 'Attributes' => [ 'shape' => 'Attributes', ], ], ], 'RegisterInstanceResponse' => [ 'type' => 'structure', 'members' => [ 'OperationId' => [ 'shape' => 'OperationId', ], ], ], 'ResourceCount' => [ 'type' => 'integer', ], 'ResourceDescription' => [ 'type' => 'string', 'max' => 1024, ], 'ResourceId' => [ 'type' => 'string', 'max' => 64, ], 'ResourceInUse' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ResourceLimitExceeded' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ResourcePath' => [ 'type' => 'string', 'max' => 255, ], 'RoutingPolicy' => [ 'type' => 'string', 'enum' => [ 'MULTIVALUE', 'WEIGHTED', ], ], 'Service' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ResourceId', ], 'Arn' => [ 'shape' => 'Arn', ], 'Name' => [ 'shape' => 'ServiceName', ], 'NamespaceId' => [ 'shape' => 'ResourceId', ], 'Description' => [ 'shape' => 'ResourceDescription', ], 'InstanceCount' => [ 'shape' => 'ResourceCount', ], 'DnsConfig' => [ 'shape' => 'DnsConfig', ], 'HealthCheckConfig' => [ 'shape' => 'HealthCheckConfig', ], 'HealthCheckCustomConfig' => [ 'shape' => 'HealthCheckCustomConfig', ], 'CreateDate' => [ 'shape' => 'Timestamp', ], 'CreatorRequestId' => [ 'shape' => 'ResourceId', ], ], ], 'ServiceAlreadyExists' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], 'CreatorRequestId' => [ 'shape' => 'ResourceId', ], 'ServiceId' => [ 'shape' => 'ResourceId', ], ], 'exception' => true, ], 'ServiceChange' => [ 'type' => 'structure', 'required' => [ 'DnsConfig', ], 'members' => [ 'Description' => [ 'shape' => 'ResourceDescription', ], 'DnsConfig' => [ 'shape' => 'DnsConfigChange', ], 'HealthCheckConfig' => [ 'shape' => 'HealthCheckConfig', ], ], ], 'ServiceFilter' => [ 'type' => 'structure', 'required' => [ 'Name', 'Values', ], 'members' => [ 'Name' => [ 'shape' => 'ServiceFilterName', ], 'Values' => [ 'shape' => 'FilterValues', ], 'Condition' => [ 'shape' => 'FilterCondition', ], ], ], 'ServiceFilterName' => [ 'type' => 'string', 'enum' => [ 'NAMESPACE_ID', ], ], 'ServiceFilters' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceFilter', ], ], 'ServiceName' => [ 'type' => 'string', 'pattern' => '((?=^.{1,127}$)^([a-zA-Z0-9_][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9_]|[a-zA-Z0-9])(\\.([a-zA-Z0-9_][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9_]|[a-zA-Z0-9]))*$)|(^\\.$)', ], 'ServiceNotFound' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ServiceSummariesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceSummary', ], ], 'ServiceSummary' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ResourceId', ], 'Arn' => [ 'shape' => 'Arn', ], 'Name' => [ 'shape' => 'ServiceName', ], 'Description' => [ 'shape' => 'ResourceDescription', ], 'InstanceCount' => [ 'shape' => 'ResourceCount', ], 'DnsConfig' => [ 'shape' => 'DnsConfig', ], 'HealthCheckConfig' => [ 'shape' => 'HealthCheckConfig', ], 'HealthCheckCustomConfig' => [ 'shape' => 'HealthCheckCustomConfig', ], 'CreateDate' => [ 'shape' => 'Timestamp', ], ], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'UpdateInstanceCustomHealthStatusRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', 'InstanceId', 'Status', ], 'members' => [ 'ServiceId' => [ 'shape' => 'ResourceId', ], 'InstanceId' => [ 'shape' => 'ResourceId', ], 'Status' => [ 'shape' => 'CustomHealthStatus', ], ], ], 'UpdateServiceRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'Service', ], 'members' => [ 'Id' => [ 'shape' => 'ResourceId', ], 'Service' => [ 'shape' => 'ServiceChange', ], ], ], 'UpdateServiceResponse' => [ 'type' => 'structure', 'members' => [ 'OperationId' => [ 'shape' => 'OperationId', ], ], ], ],]; diff --git a/lib/aws/Aws/data/servicediscovery/2017-03-14/paginators-1.json.php b/lib/aws/Aws/data/servicediscovery/2017-03-14/paginators-1.json.php new file mode 100644 index 0000000..a16f44a --- /dev/null +++ b/lib/aws/Aws/data/servicediscovery/2017-03-14/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/servicediscovery/2017-03-14/paginators-1.json +return [ 'pagination' => [ 'GetInstancesHealthStatus' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListInstances' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListNamespaces' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListOperations' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListServices' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/shield/2016-06-02/api-2.json.php b/lib/aws/Aws/data/shield/2016-06-02/api-2.json.php new file mode 100644 index 0000000..1850cd4 --- /dev/null +++ b/lib/aws/Aws/data/shield/2016-06-02/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/shield/2016-06-02/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-06-02', 'endpointPrefix' => 'shield', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'AWS Shield', 'serviceFullName' => 'AWS Shield', 'serviceId' => 'Shield', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWSShield_20160616', 'uid' => 'shield-2016-06-02', ], 'operations' => [ 'AssociateDRTLogBucket' => [ 'name' => 'AssociateDRTLogBucket', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateDRTLogBucketRequest', ], 'output' => [ 'shape' => 'AssociateDRTLogBucketResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidOperationException', ], [ 'shape' => 'NoAssociatedRoleException', ], [ 'shape' => 'LimitsExceededException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'AccessDeniedForDependencyException', ], [ 'shape' => 'OptimisticLockException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'AssociateDRTRole' => [ 'name' => 'AssociateDRTRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateDRTRoleRequest', ], 'output' => [ 'shape' => 'AssociateDRTRoleResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidOperationException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'AccessDeniedForDependencyException', ], [ 'shape' => 'OptimisticLockException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'CreateProtection' => [ 'name' => 'CreateProtection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateProtectionRequest', ], 'output' => [ 'shape' => 'CreateProtectionResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidResourceException', ], [ 'shape' => 'InvalidOperationException', ], [ 'shape' => 'LimitsExceededException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'OptimisticLockException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'CreateSubscription' => [ 'name' => 'CreateSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSubscriptionRequest', ], 'output' => [ 'shape' => 'CreateSubscriptionResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], ], ], 'DeleteProtection' => [ 'name' => 'DeleteProtection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteProtectionRequest', ], 'output' => [ 'shape' => 'DeleteProtectionResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'OptimisticLockException', ], ], ], 'DeleteSubscription' => [ 'name' => 'DeleteSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSubscriptionRequest', ], 'output' => [ 'shape' => 'DeleteSubscriptionResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'LockedSubscriptionException', ], [ 'shape' => 'ResourceNotFoundException', ], ], 'deprecated' => true, ], 'DescribeAttack' => [ 'name' => 'DescribeAttack', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAttackRequest', ], 'output' => [ 'shape' => 'DescribeAttackResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DescribeDRTAccess' => [ 'name' => 'DescribeDRTAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDRTAccessRequest', ], 'output' => [ 'shape' => 'DescribeDRTAccessResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeEmergencyContactSettings' => [ 'name' => 'DescribeEmergencyContactSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEmergencyContactSettingsRequest', ], 'output' => [ 'shape' => 'DescribeEmergencyContactSettingsResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeProtection' => [ 'name' => 'DescribeProtection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeProtectionRequest', ], 'output' => [ 'shape' => 'DescribeProtectionResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeSubscription' => [ 'name' => 'DescribeSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSubscriptionRequest', ], 'output' => [ 'shape' => 'DescribeSubscriptionResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DisassociateDRTLogBucket' => [ 'name' => 'DisassociateDRTLogBucket', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateDRTLogBucketRequest', ], 'output' => [ 'shape' => 'DisassociateDRTLogBucketResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidOperationException', ], [ 'shape' => 'NoAssociatedRoleException', ], [ 'shape' => 'AccessDeniedForDependencyException', ], [ 'shape' => 'OptimisticLockException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DisassociateDRTRole' => [ 'name' => 'DisassociateDRTRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateDRTRoleRequest', ], 'output' => [ 'shape' => 'DisassociateDRTRoleResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidOperationException', ], [ 'shape' => 'OptimisticLockException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'GetSubscriptionState' => [ 'name' => 'GetSubscriptionState', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSubscriptionStateRequest', ], 'output' => [ 'shape' => 'GetSubscriptionStateResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], ], ], 'ListAttacks' => [ 'name' => 'ListAttacks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAttacksRequest', ], 'output' => [ 'shape' => 'ListAttacksResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidOperationException', ], ], ], 'ListProtections' => [ 'name' => 'ListProtections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListProtectionsRequest', ], 'output' => [ 'shape' => 'ListProtectionsResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidPaginationTokenException', ], ], ], 'UpdateEmergencyContactSettings' => [ 'name' => 'UpdateEmergencyContactSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateEmergencyContactSettingsRequest', ], 'output' => [ 'shape' => 'UpdateEmergencyContactSettingsResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OptimisticLockException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateSubscription' => [ 'name' => 'UpdateSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSubscriptionRequest', ], 'output' => [ 'shape' => 'UpdateSubscriptionResponse', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'LockedSubscriptionException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OptimisticLockException', ], ], ], ], 'shapes' => [ 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'AccessDeniedForDependencyException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'AssociateDRTLogBucketRequest' => [ 'type' => 'structure', 'required' => [ 'LogBucket', ], 'members' => [ 'LogBucket' => [ 'shape' => 'LogBucket', ], ], ], 'AssociateDRTLogBucketResponse' => [ 'type' => 'structure', 'members' => [], ], 'AssociateDRTRoleRequest' => [ 'type' => 'structure', 'required' => [ 'RoleArn', ], 'members' => [ 'RoleArn' => [ 'shape' => 'RoleArn', ], ], ], 'AssociateDRTRoleResponse' => [ 'type' => 'structure', 'members' => [], ], 'AttackDetail' => [ 'type' => 'structure', 'members' => [ 'AttackId' => [ 'shape' => 'AttackId', ], 'ResourceArn' => [ 'shape' => 'ResourceArn', ], 'SubResources' => [ 'shape' => 'SubResourceSummaryList', ], 'StartTime' => [ 'shape' => 'AttackTimestamp', ], 'EndTime' => [ 'shape' => 'AttackTimestamp', ], 'AttackCounters' => [ 'shape' => 'SummarizedCounterList', ], 'AttackProperties' => [ 'shape' => 'AttackProperties', ], 'Mitigations' => [ 'shape' => 'MitigationList', ], ], ], 'AttackId' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\\\-]*', ], 'AttackLayer' => [ 'type' => 'string', 'enum' => [ 'NETWORK', 'APPLICATION', ], ], 'AttackProperties' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttackProperty', ], ], 'AttackProperty' => [ 'type' => 'structure', 'members' => [ 'AttackLayer' => [ 'shape' => 'AttackLayer', ], 'AttackPropertyIdentifier' => [ 'shape' => 'AttackPropertyIdentifier', ], 'TopContributors' => [ 'shape' => 'TopContributors', ], 'Unit' => [ 'shape' => 'Unit', ], 'Total' => [ 'shape' => 'Long', ], ], ], 'AttackPropertyIdentifier' => [ 'type' => 'string', 'enum' => [ 'DESTINATION_URL', 'REFERRER', 'SOURCE_ASN', 'SOURCE_COUNTRY', 'SOURCE_IP_ADDRESS', 'SOURCE_USER_AGENT', ], ], 'AttackSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttackSummary', ], ], 'AttackSummary' => [ 'type' => 'structure', 'members' => [ 'AttackId' => [ 'shape' => 'String', ], 'ResourceArn' => [ 'shape' => 'String', ], 'StartTime' => [ 'shape' => 'AttackTimestamp', ], 'EndTime' => [ 'shape' => 'AttackTimestamp', ], 'AttackVectors' => [ 'shape' => 'AttackVectorDescriptionList', ], ], ], 'AttackTimestamp' => [ 'type' => 'timestamp', ], 'AttackVectorDescription' => [ 'type' => 'structure', 'required' => [ 'VectorType', ], 'members' => [ 'VectorType' => [ 'shape' => 'String', ], ], ], 'AttackVectorDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttackVectorDescription', ], ], 'AutoRenew' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'Contributor' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Value' => [ 'shape' => 'Long', ], ], ], 'CreateProtectionRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'ResourceArn', ], 'members' => [ 'Name' => [ 'shape' => 'ProtectionName', ], 'ResourceArn' => [ 'shape' => 'ResourceArn', ], ], ], 'CreateProtectionResponse' => [ 'type' => 'structure', 'members' => [ 'ProtectionId' => [ 'shape' => 'ProtectionId', ], ], ], 'CreateSubscriptionRequest' => [ 'type' => 'structure', 'members' => [], ], 'CreateSubscriptionResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteProtectionRequest' => [ 'type' => 'structure', 'required' => [ 'ProtectionId', ], 'members' => [ 'ProtectionId' => [ 'shape' => 'ProtectionId', ], ], ], 'DeleteProtectionResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteSubscriptionRequest' => [ 'type' => 'structure', 'members' => [], 'deprecated' => true, ], 'DeleteSubscriptionResponse' => [ 'type' => 'structure', 'members' => [], 'deprecated' => true, ], 'DescribeAttackRequest' => [ 'type' => 'structure', 'required' => [ 'AttackId', ], 'members' => [ 'AttackId' => [ 'shape' => 'AttackId', ], ], ], 'DescribeAttackResponse' => [ 'type' => 'structure', 'members' => [ 'Attack' => [ 'shape' => 'AttackDetail', ], ], ], 'DescribeDRTAccessRequest' => [ 'type' => 'structure', 'members' => [], ], 'DescribeDRTAccessResponse' => [ 'type' => 'structure', 'members' => [ 'RoleArn' => [ 'shape' => 'RoleArn', ], 'LogBucketList' => [ 'shape' => 'LogBucketList', ], ], ], 'DescribeEmergencyContactSettingsRequest' => [ 'type' => 'structure', 'members' => [], ], 'DescribeEmergencyContactSettingsResponse' => [ 'type' => 'structure', 'members' => [ 'EmergencyContactList' => [ 'shape' => 'EmergencyContactList', ], ], ], 'DescribeProtectionRequest' => [ 'type' => 'structure', 'members' => [ 'ProtectionId' => [ 'shape' => 'ProtectionId', ], 'ResourceArn' => [ 'shape' => 'ResourceArn', ], ], ], 'DescribeProtectionResponse' => [ 'type' => 'structure', 'members' => [ 'Protection' => [ 'shape' => 'Protection', ], ], ], 'DescribeSubscriptionRequest' => [ 'type' => 'structure', 'members' => [], ], 'DescribeSubscriptionResponse' => [ 'type' => 'structure', 'members' => [ 'Subscription' => [ 'shape' => 'Subscription', ], ], ], 'DisassociateDRTLogBucketRequest' => [ 'type' => 'structure', 'required' => [ 'LogBucket', ], 'members' => [ 'LogBucket' => [ 'shape' => 'LogBucket', ], ], ], 'DisassociateDRTLogBucketResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateDRTRoleRequest' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateDRTRoleResponse' => [ 'type' => 'structure', 'members' => [], ], 'Double' => [ 'type' => 'double', ], 'DurationInSeconds' => [ 'type' => 'long', 'min' => 0, ], 'EmailAddress' => [ 'type' => 'string', 'max' => 150, 'min' => 1, 'pattern' => '^\\S+@\\S+\\.\\S+$', ], 'EmergencyContact' => [ 'type' => 'structure', 'required' => [ 'EmailAddress', ], 'members' => [ 'EmailAddress' => [ 'shape' => 'EmailAddress', ], ], ], 'EmergencyContactList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EmergencyContact', ], 'max' => 10, 'min' => 0, ], 'GetSubscriptionStateRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetSubscriptionStateResponse' => [ 'type' => 'structure', 'required' => [ 'SubscriptionState', ], 'members' => [ 'SubscriptionState' => [ 'shape' => 'SubscriptionState', ], ], ], 'Integer' => [ 'type' => 'integer', ], 'InternalErrorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, 'fault' => true, ], 'InvalidOperationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'InvalidPaginationTokenException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'InvalidResourceException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'Limit' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Max' => [ 'shape' => 'Long', ], ], ], 'LimitNumber' => [ 'type' => 'long', ], 'LimitType' => [ 'type' => 'string', ], 'Limits' => [ 'type' => 'list', 'member' => [ 'shape' => 'Limit', ], ], 'LimitsExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], 'Type' => [ 'shape' => 'LimitType', ], 'Limit' => [ 'shape' => 'LimitNumber', ], ], 'exception' => true, ], 'ListAttacksRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceArns' => [ 'shape' => 'ResourceArnFilterList', ], 'StartTime' => [ 'shape' => 'TimeRange', ], 'EndTime' => [ 'shape' => 'TimeRange', ], 'NextToken' => [ 'shape' => 'Token', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListAttacksResponse' => [ 'type' => 'structure', 'members' => [ 'AttackSummaries' => [ 'shape' => 'AttackSummaries', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'ListProtectionsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'Token', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListProtectionsResponse' => [ 'type' => 'structure', 'members' => [ 'Protections' => [ 'shape' => 'Protections', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'LockedSubscriptionException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'LogBucket' => [ 'type' => 'string', 'max' => 63, 'min' => 3, 'pattern' => '^([a-z]|(\\d(?!\\d{0,2}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})))([a-z\\d]|(\\.(?!(\\.|-)))|(-(?!\\.))){1,61}[a-z\\d]$', ], 'LogBucketList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LogBucket', ], 'max' => 10, 'min' => 0, ], 'Long' => [ 'type' => 'long', ], 'MaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 10000, 'min' => 0, ], 'Mitigation' => [ 'type' => 'structure', 'members' => [ 'MitigationName' => [ 'shape' => 'String', ], ], ], 'MitigationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Mitigation', ], ], 'NoAssociatedRoleException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'OptimisticLockException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'Protection' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ProtectionId', ], 'Name' => [ 'shape' => 'ProtectionName', ], 'ResourceArn' => [ 'shape' => 'ResourceArn', ], ], ], 'ProtectionId' => [ 'type' => 'string', 'max' => 36, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\\\-]*', ], 'ProtectionName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[ a-zA-Z0-9_\\\\.\\\\-]*', ], 'Protections' => [ 'type' => 'list', 'member' => [ 'shape' => 'Protection', ], ], 'ResourceAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'ResourceArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '^arn:aws.*', ], 'ResourceArnFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceArn', ], ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'RoleArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '^arn:aws:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+', ], 'String' => [ 'type' => 'string', ], 'SubResourceSummary' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'SubResourceType', ], 'Id' => [ 'shape' => 'String', ], 'AttackVectors' => [ 'shape' => 'SummarizedAttackVectorList', ], 'Counters' => [ 'shape' => 'SummarizedCounterList', ], ], ], 'SubResourceSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubResourceSummary', ], ], 'SubResourceType' => [ 'type' => 'string', 'enum' => [ 'IP', 'URL', ], ], 'Subscription' => [ 'type' => 'structure', 'members' => [ 'StartTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], 'TimeCommitmentInSeconds' => [ 'shape' => 'DurationInSeconds', ], 'AutoRenew' => [ 'shape' => 'AutoRenew', ], 'Limits' => [ 'shape' => 'Limits', ], ], ], 'SubscriptionState' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'INACTIVE', ], ], 'SummarizedAttackVector' => [ 'type' => 'structure', 'required' => [ 'VectorType', ], 'members' => [ 'VectorType' => [ 'shape' => 'String', ], 'VectorCounters' => [ 'shape' => 'SummarizedCounterList', ], ], ], 'SummarizedAttackVectorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SummarizedAttackVector', ], ], 'SummarizedCounter' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Max' => [ 'shape' => 'Double', ], 'Average' => [ 'shape' => 'Double', ], 'Sum' => [ 'shape' => 'Double', ], 'N' => [ 'shape' => 'Integer', ], 'Unit' => [ 'shape' => 'String', ], ], ], 'SummarizedCounterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SummarizedCounter', ], ], 'TimeRange' => [ 'type' => 'structure', 'members' => [ 'FromInclusive' => [ 'shape' => 'AttackTimestamp', ], 'ToExclusive' => [ 'shape' => 'AttackTimestamp', ], ], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'Token' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, 'pattern' => '^.*$', ], 'TopContributors' => [ 'type' => 'list', 'member' => [ 'shape' => 'Contributor', ], ], 'Unit' => [ 'type' => 'string', 'enum' => [ 'BITS', 'BYTES', 'PACKETS', 'REQUESTS', ], ], 'UpdateEmergencyContactSettingsRequest' => [ 'type' => 'structure', 'members' => [ 'EmergencyContactList' => [ 'shape' => 'EmergencyContactList', ], ], ], 'UpdateEmergencyContactSettingsResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateSubscriptionRequest' => [ 'type' => 'structure', 'members' => [ 'AutoRenew' => [ 'shape' => 'AutoRenew', ], ], ], 'UpdateSubscriptionResponse' => [ 'type' => 'structure', 'members' => [], ], 'errorMessage' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/shield/2016-06-02/paginators-1.json.php b/lib/aws/Aws/data/shield/2016-06-02/paginators-1.json.php new file mode 100644 index 0000000..a588b10 --- /dev/null +++ b/lib/aws/Aws/data/shield/2016-06-02/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/shield/2016-06-02/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/shield/2016-06-02/smoke.json.php b/lib/aws/Aws/data/shield/2016-06-02/smoke.json.php new file mode 100644 index 0000000..d4fc909 --- /dev/null +++ b/lib/aws/Aws/data/shield/2016-06-02/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/shield/2016-06-02/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-east-1', 'testCases' => [ [ 'operationName' => 'ListAttacks', 'input' => [], 'errorExpectedFromService' => false, ], ],]; diff --git a/lib/aws/Aws/data/signer/2017-08-25/api-2.json.php b/lib/aws/Aws/data/signer/2017-08-25/api-2.json.php new file mode 100644 index 0000000..964277a --- /dev/null +++ b/lib/aws/Aws/data/signer/2017-08-25/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/signer/2017-08-25/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-08-25', 'endpointPrefix' => 'signer', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'signer', 'serviceFullName' => 'AWS Signer', 'serviceId' => 'signer', 'signatureVersion' => 'v4', 'signingName' => 'signer', 'uid' => 'signer-2017-08-25', ], 'operations' => [ 'CancelSigningProfile' => [ 'name' => 'CancelSigningProfile', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/signing-profiles/{profileName}', ], 'input' => [ 'shape' => 'CancelSigningProfileRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'DescribeSigningJob' => [ 'name' => 'DescribeSigningJob', 'http' => [ 'method' => 'GET', 'requestUri' => '/signing-jobs/{jobId}', ], 'input' => [ 'shape' => 'DescribeSigningJobRequest', ], 'output' => [ 'shape' => 'DescribeSigningJobResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'GetSigningPlatform' => [ 'name' => 'GetSigningPlatform', 'http' => [ 'method' => 'GET', 'requestUri' => '/signing-platforms/{platformId}', ], 'input' => [ 'shape' => 'GetSigningPlatformRequest', ], 'output' => [ 'shape' => 'GetSigningPlatformResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'GetSigningProfile' => [ 'name' => 'GetSigningProfile', 'http' => [ 'method' => 'GET', 'requestUri' => '/signing-profiles/{profileName}', ], 'input' => [ 'shape' => 'GetSigningProfileRequest', ], 'output' => [ 'shape' => 'GetSigningProfileResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'ListSigningJobs' => [ 'name' => 'ListSigningJobs', 'http' => [ 'method' => 'GET', 'requestUri' => '/signing-jobs', ], 'input' => [ 'shape' => 'ListSigningJobsRequest', ], 'output' => [ 'shape' => 'ListSigningJobsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'ListSigningPlatforms' => [ 'name' => 'ListSigningPlatforms', 'http' => [ 'method' => 'GET', 'requestUri' => '/signing-platforms', ], 'input' => [ 'shape' => 'ListSigningPlatformsRequest', ], 'output' => [ 'shape' => 'ListSigningPlatformsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'ListSigningProfiles' => [ 'name' => 'ListSigningProfiles', 'http' => [ 'method' => 'GET', 'requestUri' => '/signing-profiles', ], 'input' => [ 'shape' => 'ListSigningProfilesRequest', ], 'output' => [ 'shape' => 'ListSigningProfilesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'PutSigningProfile' => [ 'name' => 'PutSigningProfile', 'http' => [ 'method' => 'PUT', 'requestUri' => '/signing-profiles/{profileName}', ], 'input' => [ 'shape' => 'PutSigningProfileRequest', ], 'output' => [ 'shape' => 'PutSigningProfileResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'StartSigningJob' => [ 'name' => 'StartSigningJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/signing-jobs', ], 'input' => [ 'shape' => 'StartSigningJobRequest', ], 'output' => [ 'shape' => 'StartSigningJobResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], ], 'shapes' => [ 'key' => [ 'type' => 'string', ], 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, ], 'BucketName' => [ 'type' => 'string', ], 'CancelSigningProfileRequest' => [ 'type' => 'structure', 'required' => [ 'profileName', ], 'members' => [ 'profileName' => [ 'shape' => 'ProfileName', 'location' => 'uri', 'locationName' => 'profileName', ], ], ], 'Category' => [ 'type' => 'string', 'enum' => [ 'AWSIoT', ], ], 'CertificateArn' => [ 'type' => 'string', ], 'ClientRequestToken' => [ 'type' => 'string', ], 'CompletedAt' => [ 'type' => 'timestamp', ], 'CreatedAt' => [ 'type' => 'timestamp', ], 'DescribeSigningJobRequest' => [ 'type' => 'structure', 'required' => [ 'jobId', ], 'members' => [ 'jobId' => [ 'shape' => 'JobId', 'location' => 'uri', 'locationName' => 'jobId', ], ], ], 'DescribeSigningJobResponse' => [ 'type' => 'structure', 'members' => [ 'jobId' => [ 'shape' => 'JobId', ], 'source' => [ 'shape' => 'Source', ], 'signingMaterial' => [ 'shape' => 'SigningMaterial', ], 'platformId' => [ 'shape' => 'PlatformId', ], 'profileName' => [ 'shape' => 'ProfileName', ], 'overrides' => [ 'shape' => 'SigningPlatformOverrides', ], 'signingParameters' => [ 'shape' => 'SigningParameters', ], 'createdAt' => [ 'shape' => 'CreatedAt', ], 'completedAt' => [ 'shape' => 'CompletedAt', ], 'requestedBy' => [ 'shape' => 'RequestedBy', ], 'status' => [ 'shape' => 'SigningStatus', ], 'statusReason' => [ 'shape' => 'StatusReason', ], 'signedObject' => [ 'shape' => 'SignedObject', ], ], ], 'Destination' => [ 'type' => 'structure', 'members' => [ 's3' => [ 'shape' => 'S3Destination', ], ], ], 'DisplayName' => [ 'type' => 'string', ], 'EncryptionAlgorithm' => [ 'type' => 'string', 'enum' => [ 'RSA', 'ECDSA', ], ], 'EncryptionAlgorithmOptions' => [ 'type' => 'structure', 'required' => [ 'allowedValues', 'defaultValue', ], 'members' => [ 'allowedValues' => [ 'shape' => 'EncryptionAlgorithms', ], 'defaultValue' => [ 'shape' => 'EncryptionAlgorithm', ], ], ], 'EncryptionAlgorithms' => [ 'type' => 'list', 'member' => [ 'shape' => 'EncryptionAlgorithm', ], ], 'ErrorMessage' => [ 'type' => 'string', ], 'GetSigningPlatformRequest' => [ 'type' => 'structure', 'required' => [ 'platformId', ], 'members' => [ 'platformId' => [ 'shape' => 'PlatformId', 'location' => 'uri', 'locationName' => 'platformId', ], ], ], 'GetSigningPlatformResponse' => [ 'type' => 'structure', 'members' => [ 'platformId' => [ 'shape' => 'PlatformId', ], 'displayName' => [ 'shape' => 'DisplayName', ], 'partner' => [ 'shape' => 'String', ], 'target' => [ 'shape' => 'String', ], 'category' => [ 'shape' => 'Category', ], 'signingConfiguration' => [ 'shape' => 'SigningConfiguration', ], 'signingImageFormat' => [ 'shape' => 'SigningImageFormat', ], 'maxSizeInMB' => [ 'shape' => 'MaxSizeInMB', ], ], ], 'GetSigningProfileRequest' => [ 'type' => 'structure', 'required' => [ 'profileName', ], 'members' => [ 'profileName' => [ 'shape' => 'ProfileName', 'location' => 'uri', 'locationName' => 'profileName', ], ], ], 'GetSigningProfileResponse' => [ 'type' => 'structure', 'members' => [ 'profileName' => [ 'shape' => 'ProfileName', ], 'signingMaterial' => [ 'shape' => 'SigningMaterial', ], 'platformId' => [ 'shape' => 'PlatformId', ], 'overrides' => [ 'shape' => 'SigningPlatformOverrides', ], 'signingParameters' => [ 'shape' => 'SigningParameters', ], 'status' => [ 'shape' => 'SigningProfileStatus', ], ], ], 'HashAlgorithm' => [ 'type' => 'string', 'enum' => [ 'SHA1', 'SHA256', ], ], 'HashAlgorithmOptions' => [ 'type' => 'structure', 'required' => [ 'allowedValues', 'defaultValue', ], 'members' => [ 'allowedValues' => [ 'shape' => 'HashAlgorithms', ], 'defaultValue' => [ 'shape' => 'HashAlgorithm', ], ], ], 'HashAlgorithms' => [ 'type' => 'list', 'member' => [ 'shape' => 'HashAlgorithm', ], ], 'ImageFormat' => [ 'type' => 'string', 'enum' => [ 'JSON', ], ], 'ImageFormats' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageFormat', ], ], 'InternalServiceErrorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, ], 'JobId' => [ 'type' => 'string', ], 'Key' => [ 'type' => 'string', ], 'ListSigningJobsRequest' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'SigningStatus', 'location' => 'querystring', 'locationName' => 'status', ], 'platformId' => [ 'shape' => 'PlatformId', 'location' => 'querystring', 'locationName' => 'platformId', ], 'requestedBy' => [ 'shape' => 'RequestedBy', 'location' => 'querystring', 'locationName' => 'requestedBy', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListSigningJobsResponse' => [ 'type' => 'structure', 'members' => [ 'jobs' => [ 'shape' => 'SigningJobs', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListSigningPlatformsRequest' => [ 'type' => 'structure', 'members' => [ 'category' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'category', ], 'partner' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'partner', ], 'target' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'target', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListSigningPlatformsResponse' => [ 'type' => 'structure', 'members' => [ 'platforms' => [ 'shape' => 'SigningPlatforms', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListSigningProfilesRequest' => [ 'type' => 'structure', 'members' => [ 'includeCanceled' => [ 'shape' => 'bool', 'location' => 'querystring', 'locationName' => 'includeCanceled', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListSigningProfilesResponse' => [ 'type' => 'structure', 'members' => [ 'profiles' => [ 'shape' => 'SigningProfiles', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'MaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 25, 'min' => 1, ], 'MaxSizeInMB' => [ 'type' => 'integer', ], 'NextToken' => [ 'type' => 'string', ], 'PlatformId' => [ 'type' => 'string', ], 'Prefix' => [ 'type' => 'string', ], 'ProfileName' => [ 'type' => 'string', 'max' => 20, 'min' => 2, 'pattern' => '^[a-zA-Z0-9_]{2,}', ], 'PutSigningProfileRequest' => [ 'type' => 'structure', 'required' => [ 'profileName', 'signingMaterial', 'platformId', ], 'members' => [ 'profileName' => [ 'shape' => 'ProfileName', 'location' => 'uri', 'locationName' => 'profileName', ], 'signingMaterial' => [ 'shape' => 'SigningMaterial', ], 'platformId' => [ 'shape' => 'PlatformId', ], 'overrides' => [ 'shape' => 'SigningPlatformOverrides', ], 'signingParameters' => [ 'shape' => 'SigningParameters', ], ], ], 'PutSigningProfileResponse' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'string', ], ], ], 'RequestedBy' => [ 'type' => 'string', ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'S3Destination' => [ 'type' => 'structure', 'members' => [ 'bucketName' => [ 'shape' => 'BucketName', ], 'prefix' => [ 'shape' => 'Prefix', ], ], ], 'S3SignedObject' => [ 'type' => 'structure', 'members' => [ 'bucketName' => [ 'shape' => 'BucketName', ], 'key' => [ 'shape' => 'key', ], ], ], 'S3Source' => [ 'type' => 'structure', 'required' => [ 'bucketName', 'key', 'version', ], 'members' => [ 'bucketName' => [ 'shape' => 'BucketName', ], 'key' => [ 'shape' => 'Key', ], 'version' => [ 'shape' => 'Version', ], ], ], 'SignedObject' => [ 'type' => 'structure', 'members' => [ 's3' => [ 'shape' => 'S3SignedObject', ], ], ], 'SigningConfiguration' => [ 'type' => 'structure', 'required' => [ 'encryptionAlgorithmOptions', 'hashAlgorithmOptions', ], 'members' => [ 'encryptionAlgorithmOptions' => [ 'shape' => 'EncryptionAlgorithmOptions', ], 'hashAlgorithmOptions' => [ 'shape' => 'HashAlgorithmOptions', ], ], ], 'SigningConfigurationOverrides' => [ 'type' => 'structure', 'members' => [ 'encryptionAlgorithm' => [ 'shape' => 'EncryptionAlgorithm', ], 'hashAlgorithm' => [ 'shape' => 'HashAlgorithm', ], ], ], 'SigningImageFormat' => [ 'type' => 'structure', 'required' => [ 'supportedFormats', 'defaultFormat', ], 'members' => [ 'supportedFormats' => [ 'shape' => 'ImageFormats', ], 'defaultFormat' => [ 'shape' => 'ImageFormat', ], ], ], 'SigningJob' => [ 'type' => 'structure', 'members' => [ 'jobId' => [ 'shape' => 'JobId', ], 'source' => [ 'shape' => 'Source', ], 'signedObject' => [ 'shape' => 'SignedObject', ], 'signingMaterial' => [ 'shape' => 'SigningMaterial', ], 'createdAt' => [ 'shape' => 'CreatedAt', ], 'status' => [ 'shape' => 'SigningStatus', ], ], ], 'SigningJobs' => [ 'type' => 'list', 'member' => [ 'shape' => 'SigningJob', ], ], 'SigningMaterial' => [ 'type' => 'structure', 'required' => [ 'certificateArn', ], 'members' => [ 'certificateArn' => [ 'shape' => 'CertificateArn', ], ], ], 'SigningParameterKey' => [ 'type' => 'string', ], 'SigningParameterValue' => [ 'type' => 'string', ], 'SigningParameters' => [ 'type' => 'map', 'key' => [ 'shape' => 'SigningParameterKey', ], 'value' => [ 'shape' => 'SigningParameterValue', ], ], 'SigningPlatform' => [ 'type' => 'structure', 'members' => [ 'platformId' => [ 'shape' => 'String', ], 'displayName' => [ 'shape' => 'String', ], 'partner' => [ 'shape' => 'String', ], 'target' => [ 'shape' => 'String', ], 'category' => [ 'shape' => 'Category', ], 'signingConfiguration' => [ 'shape' => 'SigningConfiguration', ], 'signingImageFormat' => [ 'shape' => 'SigningImageFormat', ], 'maxSizeInMB' => [ 'shape' => 'MaxSizeInMB', ], ], ], 'SigningPlatformOverrides' => [ 'type' => 'structure', 'members' => [ 'signingConfiguration' => [ 'shape' => 'SigningConfigurationOverrides', ], ], ], 'SigningPlatforms' => [ 'type' => 'list', 'member' => [ 'shape' => 'SigningPlatform', ], ], 'SigningProfile' => [ 'type' => 'structure', 'members' => [ 'profileName' => [ 'shape' => 'ProfileName', ], 'signingMaterial' => [ 'shape' => 'SigningMaterial', ], 'platformId' => [ 'shape' => 'PlatformId', ], 'signingParameters' => [ 'shape' => 'SigningParameters', ], 'status' => [ 'shape' => 'SigningProfileStatus', ], ], ], 'SigningProfileStatus' => [ 'type' => 'string', 'enum' => [ 'Active', 'Canceled', ], ], 'SigningProfiles' => [ 'type' => 'list', 'member' => [ 'shape' => 'SigningProfile', ], ], 'SigningStatus' => [ 'type' => 'string', 'enum' => [ 'InProgress', 'Failed', 'Succeeded', ], ], 'Source' => [ 'type' => 'structure', 'members' => [ 's3' => [ 'shape' => 'S3Source', ], ], ], 'StartSigningJobRequest' => [ 'type' => 'structure', 'required' => [ 'source', 'destination', 'clientRequestToken', ], 'members' => [ 'source' => [ 'shape' => 'Source', ], 'destination' => [ 'shape' => 'Destination', ], 'profileName' => [ 'shape' => 'ProfileName', ], 'clientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'StartSigningJobResponse' => [ 'type' => 'structure', 'members' => [ 'jobId' => [ 'shape' => 'JobId', ], ], ], 'StatusReason' => [ 'type' => 'string', ], 'String' => [ 'type' => 'string', ], 'ThrottlingException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'ValidationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'Version' => [ 'type' => 'string', ], 'bool' => [ 'type' => 'boolean', ], 'string' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/signer/2017-08-25/paginators-1.json.php b/lib/aws/Aws/data/signer/2017-08-25/paginators-1.json.php new file mode 100644 index 0000000..d2bc0da --- /dev/null +++ b/lib/aws/Aws/data/signer/2017-08-25/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/signer/2017-08-25/paginators-1.json +return [ 'pagination' => [ 'ListSigningJobs' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListSigningPlatforms' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], 'ListSigningProfiles' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', ], ],]; diff --git a/lib/aws/Aws/data/signer/2017-08-25/waiters-2.json.php b/lib/aws/Aws/data/signer/2017-08-25/waiters-2.json.php new file mode 100644 index 0000000..e42c0ff --- /dev/null +++ b/lib/aws/Aws/data/signer/2017-08-25/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/signer/2017-08-25/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'SuccessfulSigningJob' => [ 'delay' => 20, 'operation' => 'DescribeSigningJob', 'maxAttempts' => 25, 'acceptors' => [ [ 'expected' => 'Succeeded', 'matcher' => 'path', 'state' => 'success', 'argument' => 'status', ], [ 'expected' => 'Failed', 'matcher' => 'path', 'state' => 'failure', 'argument' => 'status', ], [ 'expected' => 'ResourceNotFoundException', 'matcher' => 'error', 'state' => 'failure', ], ], ], ],]; diff --git a/lib/aws/Aws/data/sms-voice/2018-09-05/api-2.json.php b/lib/aws/Aws/data/sms-voice/2018-09-05/api-2.json.php new file mode 100644 index 0000000..3cd4b07 --- /dev/null +++ b/lib/aws/Aws/data/sms-voice/2018-09-05/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/sms-voice/2018-09-05/api-2.json +return [ 'metadata' => [ 'apiVersion' => '2018-09-05', 'endpointPrefix' => 'sms-voice.pinpoint', 'signingName' => 'sms-voice', 'serviceAbbreviation' => 'Pinpoint SMS Voice', 'serviceFullName' => 'Amazon Pinpoint SMS and Voice Service', 'serviceId' => 'Pinpoint SMS Voice', 'protocol' => 'rest-json', 'jsonVersion' => '1.1', 'uid' => 'pinpoint-sms-voice-2018-09-05', 'signatureVersion' => 'v4', ], 'operations' => [ 'CreateConfigurationSet' => [ 'name' => 'CreateConfigurationSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/sms-voice/configuration-sets', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateConfigurationSetRequest', ], 'output' => [ 'shape' => 'CreateConfigurationSetResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'AlreadyExistsException', ], ], ], 'CreateConfigurationSetEventDestination' => [ 'name' => 'CreateConfigurationSetEventDestination', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/sms-voice/configuration-sets/{ConfigurationSetName}/event-destinations', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateConfigurationSetEventDestinationRequest', ], 'output' => [ 'shape' => 'CreateConfigurationSetEventDestinationResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServiceErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'AlreadyExistsException', ], ], ], 'DeleteConfigurationSet' => [ 'name' => 'DeleteConfigurationSet', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/sms-voice/configuration-sets/{ConfigurationSetName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteConfigurationSetRequest', ], 'output' => [ 'shape' => 'DeleteConfigurationSetResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'DeleteConfigurationSetEventDestination' => [ 'name' => 'DeleteConfigurationSetEventDestination', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v1/sms-voice/configuration-sets/{ConfigurationSetName}/event-destinations/{EventDestinationName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteConfigurationSetEventDestinationRequest', ], 'output' => [ 'shape' => 'DeleteConfigurationSetEventDestinationResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'GetConfigurationSetEventDestinations' => [ 'name' => 'GetConfigurationSetEventDestinations', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/sms-voice/configuration-sets/{ConfigurationSetName}/event-destinations', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetConfigurationSetEventDestinationsRequest', ], 'output' => [ 'shape' => 'GetConfigurationSetEventDestinationsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'ListConfigurationSets' => [ 'name' => 'ListConfigurationSets', 'http' => [ 'method' => 'GET', 'requestUri' => '/v1/sms-voice/configuration-sets', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListConfigurationSetsRequest', ], 'output' => [ 'shape' => 'ListConfigurationSetsResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'SendVoiceMessage' => [ 'name' => 'SendVoiceMessage', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/sms-voice/voice/message', 'responseCode' => 200, ], 'input' => [ 'shape' => 'SendVoiceMessageRequest', ], 'output' => [ 'shape' => 'SendVoiceMessageResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], 'UpdateConfigurationSetEventDestination' => [ 'name' => 'UpdateConfigurationSetEventDestination', 'http' => [ 'method' => 'PUT', 'requestUri' => '/v1/sms-voice/configuration-sets/{ConfigurationSetName}/event-destinations/{EventDestinationName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateConfigurationSetEventDestinationRequest', ], 'output' => [ 'shape' => 'UpdateConfigurationSetEventDestinationResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServiceErrorException', ], ], ], ], 'shapes' => [ 'AlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 409, ], ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 400, ], ], 'Boolean' => [ 'type' => 'boolean', ], 'CallInstructionsMessageType' => [ 'type' => 'structure', 'members' => [ 'Text' => [ 'shape' => 'NonEmptyString', ], ], 'required' => [], ], 'CloudWatchLogsDestination' => [ 'type' => 'structure', 'members' => [ 'IamRoleArn' => [ 'shape' => 'String', ], 'LogGroupArn' => [ 'shape' => 'String', ], ], 'required' => [], ], 'ConfigurationSets' => [ 'type' => 'list', 'member' => [ 'shape' => 'WordCharactersWithDelimiters', ], ], 'CreateConfigurationSetEventDestinationRequest' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSetName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ConfigurationSetName', ], 'EventDestination' => [ 'shape' => 'EventDestinationDefinition', ], 'EventDestinationName' => [ 'shape' => 'NonEmptyString', ], ], 'required' => [ 'ConfigurationSetName', ], ], 'CreateConfigurationSetEventDestinationResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateConfigurationSetRequest' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSetName' => [ 'shape' => 'WordCharactersWithDelimiters', ], ], ], 'CreateConfigurationSetResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteConfigurationSetEventDestinationRequest' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSetName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ConfigurationSetName', ], 'EventDestinationName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'EventDestinationName', ], ], 'required' => [ 'EventDestinationName', 'ConfigurationSetName', ], ], 'DeleteConfigurationSetEventDestinationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteConfigurationSetRequest' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSetName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ConfigurationSetName', ], ], 'required' => [ 'ConfigurationSetName', ], ], 'DeleteConfigurationSetResponse' => [ 'type' => 'structure', 'members' => [], ], 'EventDestination' => [ 'type' => 'structure', 'members' => [ 'CloudWatchLogsDestination' => [ 'shape' => 'CloudWatchLogsDestination', ], 'Enabled' => [ 'shape' => 'Boolean', ], 'KinesisFirehoseDestination' => [ 'shape' => 'KinesisFirehoseDestination', ], 'MatchingEventTypes' => [ 'shape' => 'EventTypes', ], 'Name' => [ 'shape' => 'String', ], 'SnsDestination' => [ 'shape' => 'SnsDestination', ], ], ], 'EventDestinationDefinition' => [ 'type' => 'structure', 'members' => [ 'CloudWatchLogsDestination' => [ 'shape' => 'CloudWatchLogsDestination', ], 'Enabled' => [ 'shape' => 'Boolean', ], 'KinesisFirehoseDestination' => [ 'shape' => 'KinesisFirehoseDestination', ], 'MatchingEventTypes' => [ 'shape' => 'EventTypes', ], 'SnsDestination' => [ 'shape' => 'SnsDestination', ], ], 'required' => [], ], 'EventDestinations' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventDestination', ], ], 'EventType' => [ 'type' => 'string', 'enum' => [ 'INITIATED_CALL', 'RINGING', 'ANSWERED', 'COMPLETED_CALL', 'BUSY', 'FAILED', 'NO_ANSWER', ], ], 'EventTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventType', ], ], 'GetConfigurationSetEventDestinationsRequest' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSetName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ConfigurationSetName', ], ], 'required' => [ 'ConfigurationSetName', ], ], 'GetConfigurationSetEventDestinationsResponse' => [ 'type' => 'structure', 'members' => [ 'EventDestinations' => [ 'shape' => 'EventDestinations', ], ], ], 'InternalServiceErrorException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 500, ], ], 'KinesisFirehoseDestination' => [ 'type' => 'structure', 'members' => [ 'DeliveryStreamArn' => [ 'shape' => 'String', ], 'IamRoleArn' => [ 'shape' => 'String', ], ], 'required' => [], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 412, ], ], 'ListConfigurationSetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'NextToken', ], 'PageSize' => [ 'shape' => '__string', 'location' => 'querystring', 'locationName' => 'PageSize', ], ], ], 'ListConfigurationSetsResponse' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSets' => [ 'shape' => 'ConfigurationSets', ], 'NextToken' => [ 'shape' => 'NextTokenString', ], ], ], 'NextTokenString' => [ 'type' => 'string', ], 'NonEmptyString' => [ 'type' => 'string', ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 404, ], ], 'PlainTextMessageType' => [ 'type' => 'structure', 'members' => [ 'LanguageCode' => [ 'shape' => 'String', ], 'Text' => [ 'shape' => 'NonEmptyString', ], 'VoiceId' => [ 'shape' => 'String', ], ], 'required' => [], ], 'SSMLMessageType' => [ 'type' => 'structure', 'members' => [ 'LanguageCode' => [ 'shape' => 'String', ], 'Text' => [ 'shape' => 'NonEmptyString', ], 'VoiceId' => [ 'shape' => 'String', ], ], 'required' => [], ], 'SendVoiceMessageRequest' => [ 'type' => 'structure', 'members' => [ 'CallerId' => [ 'shape' => 'String', ], 'ConfigurationSetName' => [ 'shape' => 'WordCharactersWithDelimiters', ], 'Content' => [ 'shape' => 'VoiceMessageContent', ], 'DestinationPhoneNumber' => [ 'shape' => 'NonEmptyString', ], 'OriginationPhoneNumber' => [ 'shape' => 'NonEmptyString', ], ], ], 'SendVoiceMessageResponse' => [ 'type' => 'structure', 'members' => [ 'MessageId' => [ 'shape' => 'String', ], ], ], 'SnsDestination' => [ 'type' => 'structure', 'members' => [ 'TopicArn' => [ 'shape' => 'String', ], ], 'required' => [], ], 'String' => [ 'type' => 'string', ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, 'error' => [ 'httpStatusCode' => 429, ], ], 'UpdateConfigurationSetEventDestinationRequest' => [ 'type' => 'structure', 'members' => [ 'ConfigurationSetName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'ConfigurationSetName', ], 'EventDestination' => [ 'shape' => 'EventDestinationDefinition', ], 'EventDestinationName' => [ 'shape' => '__string', 'location' => 'uri', 'locationName' => 'EventDestinationName', ], ], 'required' => [ 'EventDestinationName', 'ConfigurationSetName', ], ], 'UpdateConfigurationSetEventDestinationResponse' => [ 'type' => 'structure', 'members' => [], ], 'VoiceMessageContent' => [ 'type' => 'structure', 'members' => [ 'CallInstructionsMessage' => [ 'shape' => 'CallInstructionsMessageType', ], 'PlainTextMessage' => [ 'shape' => 'PlainTextMessageType', ], 'SSMLMessage' => [ 'shape' => 'SSMLMessageType', ], ], ], 'WordCharactersWithDelimiters' => [ 'type' => 'string', ], '__boolean' => [ 'type' => 'boolean', ], '__double' => [ 'type' => 'double', ], '__integer' => [ 'type' => 'integer', ], '__long' => [ 'type' => 'long', ], '__string' => [ 'type' => 'string', ], '__timestampIso8601' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], '__timestampUnix' => [ 'type' => 'timestamp', 'timestampFormat' => 'unixTimestamp', ], ],]; diff --git a/lib/aws/Aws/data/sms/2016-10-24/api-2.json.php b/lib/aws/Aws/data/sms/2016-10-24/api-2.json.php new file mode 100644 index 0000000..be1be85 --- /dev/null +++ b/lib/aws/Aws/data/sms/2016-10-24/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/sms/2016-10-24/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-10-24', 'endpointPrefix' => 'sms', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'SMS', 'serviceFullName' => 'AWS Server Migration Service', 'serviceId' => 'SMS', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWSServerMigrationService_V2016_10_24', 'uid' => 'sms-2016-10-24', ], 'operations' => [ 'CreateApp' => [ 'name' => 'CreateApp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAppRequest', ], 'output' => [ 'shape' => 'CreateAppResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'InternalError', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'CreateReplicationJob' => [ 'name' => 'CreateReplicationJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateReplicationJobRequest', ], 'output' => [ 'shape' => 'CreateReplicationJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'ServerCannotBeReplicatedException', ], [ 'shape' => 'ReplicationJobAlreadyExistsException', ], [ 'shape' => 'NoConnectorsAvailableException', ], [ 'shape' => 'InternalError', ], [ 'shape' => 'TemporarilyUnavailableException', ], ], ], 'DeleteApp' => [ 'name' => 'DeleteApp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAppRequest', ], 'output' => [ 'shape' => 'DeleteAppResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'InternalError', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'DeleteAppLaunchConfiguration' => [ 'name' => 'DeleteAppLaunchConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAppLaunchConfigurationRequest', ], 'output' => [ 'shape' => 'DeleteAppLaunchConfigurationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'InternalError', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'DeleteAppReplicationConfiguration' => [ 'name' => 'DeleteAppReplicationConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAppReplicationConfigurationRequest', ], 'output' => [ 'shape' => 'DeleteAppReplicationConfigurationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'InternalError', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'DeleteReplicationJob' => [ 'name' => 'DeleteReplicationJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteReplicationJobRequest', ], 'output' => [ 'shape' => 'DeleteReplicationJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'ReplicationJobNotFoundException', ], ], ], 'DeleteServerCatalog' => [ 'name' => 'DeleteServerCatalog', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteServerCatalogRequest', ], 'output' => [ 'shape' => 'DeleteServerCatalogResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], ], ], 'DisassociateConnector' => [ 'name' => 'DisassociateConnector', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateConnectorRequest', ], 'output' => [ 'shape' => 'DisassociateConnectorResponse', ], 'errors' => [ [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'GenerateChangeSet' => [ 'name' => 'GenerateChangeSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GenerateChangeSetRequest', ], 'output' => [ 'shape' => 'GenerateChangeSetResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'InternalError', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'GenerateTemplate' => [ 'name' => 'GenerateTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GenerateTemplateRequest', ], 'output' => [ 'shape' => 'GenerateTemplateResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'InternalError', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'GetApp' => [ 'name' => 'GetApp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAppRequest', ], 'output' => [ 'shape' => 'GetAppResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'InternalError', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'GetAppLaunchConfiguration' => [ 'name' => 'GetAppLaunchConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAppLaunchConfigurationRequest', ], 'output' => [ 'shape' => 'GetAppLaunchConfigurationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'InternalError', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'GetAppReplicationConfiguration' => [ 'name' => 'GetAppReplicationConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAppReplicationConfigurationRequest', ], 'output' => [ 'shape' => 'GetAppReplicationConfigurationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'InternalError', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'GetConnectors' => [ 'name' => 'GetConnectors', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetConnectorsRequest', ], 'output' => [ 'shape' => 'GetConnectorsResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], ], ], 'GetReplicationJobs' => [ 'name' => 'GetReplicationJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetReplicationJobsRequest', ], 'output' => [ 'shape' => 'GetReplicationJobsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'UnauthorizedOperationException', ], ], ], 'GetReplicationRuns' => [ 'name' => 'GetReplicationRuns', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetReplicationRunsRequest', ], 'output' => [ 'shape' => 'GetReplicationRunsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'UnauthorizedOperationException', ], ], ], 'GetServers' => [ 'name' => 'GetServers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetServersRequest', ], 'output' => [ 'shape' => 'GetServersResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], ], ], 'ImportServerCatalog' => [ 'name' => 'ImportServerCatalog', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportServerCatalogRequest', ], 'output' => [ 'shape' => 'ImportServerCatalogResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'NoConnectorsAvailableException', ], ], ], 'LaunchApp' => [ 'name' => 'LaunchApp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'LaunchAppRequest', ], 'output' => [ 'shape' => 'LaunchAppResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'InternalError', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'ListApps' => [ 'name' => 'ListApps', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAppsRequest', ], 'output' => [ 'shape' => 'ListAppsResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'InternalError', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'PutAppLaunchConfiguration' => [ 'name' => 'PutAppLaunchConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutAppLaunchConfigurationRequest', ], 'output' => [ 'shape' => 'PutAppLaunchConfigurationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'InternalError', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'PutAppReplicationConfiguration' => [ 'name' => 'PutAppReplicationConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutAppReplicationConfigurationRequest', ], 'output' => [ 'shape' => 'PutAppReplicationConfigurationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'InternalError', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'StartAppReplication' => [ 'name' => 'StartAppReplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartAppReplicationRequest', ], 'output' => [ 'shape' => 'StartAppReplicationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'InternalError', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'StartOnDemandReplicationRun' => [ 'name' => 'StartOnDemandReplicationRun', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartOnDemandReplicationRunRequest', ], 'output' => [ 'shape' => 'StartOnDemandReplicationRunResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'ReplicationRunLimitExceededException', ], ], ], 'StopAppReplication' => [ 'name' => 'StopAppReplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopAppReplicationRequest', ], 'output' => [ 'shape' => 'StopAppReplicationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'InternalError', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'TerminateApp' => [ 'name' => 'TerminateApp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TerminateAppRequest', ], 'output' => [ 'shape' => 'TerminateAppResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'InternalError', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'UpdateApp' => [ 'name' => 'UpdateApp', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateAppRequest', ], 'output' => [ 'shape' => 'UpdateAppResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'InternalError', ], [ 'shape' => 'OperationNotPermittedException', ], ], ], 'UpdateReplicationJob' => [ 'name' => 'UpdateReplicationJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateReplicationJobRequest', ], 'output' => [ 'shape' => 'UpdateReplicationJobResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MissingRequiredParameterException', ], [ 'shape' => 'OperationNotPermittedException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'ServerCannotBeReplicatedException', ], [ 'shape' => 'ReplicationJobNotFoundException', ], [ 'shape' => 'InternalError', ], [ 'shape' => 'TemporarilyUnavailableException', ], ], ], ], 'shapes' => [ 'AmiId' => [ 'type' => 'string', ], 'AppDescription' => [ 'type' => 'string', ], 'AppId' => [ 'type' => 'string', ], 'AppIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'AppId', ], ], 'AppLaunchStatus' => [ 'type' => 'string', 'enum' => [ 'READY_FOR_CONFIGURATION', 'CONFIGURATION_IN_PROGRESS', 'CONFIGURATION_INVALID', 'READY_FOR_LAUNCH', 'VALIDATION_IN_PROGRESS', 'LAUNCH_PENDING', 'LAUNCH_IN_PROGRESS', 'LAUNCHED', 'DELTA_LAUNCH_IN_PROGRESS', 'DELTA_LAUNCH_FAILED', 'LAUNCH_FAILED', 'TERMINATE_IN_PROGRESS', 'TERMINATE_FAILED', 'TERMINATED', ], ], 'AppLaunchStatusMessage' => [ 'type' => 'string', ], 'AppName' => [ 'type' => 'string', ], 'AppReplicationStatus' => [ 'type' => 'string', 'enum' => [ 'READY_FOR_CONFIGURATION', 'CONFIGURATION_IN_PROGRESS', 'CONFIGURATION_INVALID', 'READY_FOR_REPLICATION', 'VALIDATION_IN_PROGRESS', 'REPLICATION_PENDING', 'REPLICATION_IN_PROGRESS', 'REPLICATED', 'DELTA_REPLICATION_IN_PROGRESS', 'DELTA_REPLICATED', 'DELTA_REPLICATION_FAILED', 'REPLICATION_FAILED', 'REPLICATION_STOPPING', 'REPLICATION_STOP_FAILED', 'REPLICATION_STOPPED', ], ], 'AppReplicationStatusMessage' => [ 'type' => 'string', ], 'AppStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'ACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'DELETE_FAILED', ], ], 'AppStatusMessage' => [ 'type' => 'string', ], 'AppSummary' => [ 'type' => 'structure', 'members' => [ 'appId' => [ 'shape' => 'AppId', ], 'name' => [ 'shape' => 'AppName', ], 'description' => [ 'shape' => 'AppDescription', ], 'status' => [ 'shape' => 'AppStatus', ], 'statusMessage' => [ 'shape' => 'AppStatusMessage', ], 'replicationStatus' => [ 'shape' => 'AppReplicationStatus', ], 'replicationStatusMessage' => [ 'shape' => 'AppReplicationStatusMessage', ], 'latestReplicationTime' => [ 'shape' => 'Timestamp', ], 'launchStatus' => [ 'shape' => 'AppLaunchStatus', ], 'launchStatusMessage' => [ 'shape' => 'AppLaunchStatusMessage', ], 'launchDetails' => [ 'shape' => 'LaunchDetails', ], 'creationTime' => [ 'shape' => 'Timestamp', ], 'lastModified' => [ 'shape' => 'Timestamp', ], 'roleName' => [ 'shape' => 'RoleName', ], 'totalServerGroups' => [ 'shape' => 'TotalServerGroups', ], 'totalServers' => [ 'shape' => 'TotalServers', ], ], ], 'Apps' => [ 'type' => 'list', 'member' => [ 'shape' => 'AppSummary', ], ], 'AssociatePublicIpAddress' => [ 'type' => 'boolean', ], 'BucketName' => [ 'type' => 'string', ], 'ClientToken' => [ 'type' => 'string', ], 'Connector' => [ 'type' => 'structure', 'members' => [ 'connectorId' => [ 'shape' => 'ConnectorId', ], 'version' => [ 'shape' => 'ConnectorVersion', ], 'status' => [ 'shape' => 'ConnectorStatus', ], 'capabilityList' => [ 'shape' => 'ConnectorCapabilityList', ], 'vmManagerName' => [ 'shape' => 'VmManagerName', ], 'vmManagerType' => [ 'shape' => 'VmManagerType', ], 'vmManagerId' => [ 'shape' => 'VmManagerId', ], 'ipAddress' => [ 'shape' => 'IpAddress', ], 'macAddress' => [ 'shape' => 'MacAddress', ], 'associatedOn' => [ 'shape' => 'Timestamp', ], ], ], 'ConnectorCapability' => [ 'type' => 'string', 'enum' => [ 'VSPHERE', 'SCVMM', 'HYPERV-MANAGER', 'SNAPSHOT_BATCHING', ], ], 'ConnectorCapabilityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConnectorCapability', ], ], 'ConnectorId' => [ 'type' => 'string', ], 'ConnectorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Connector', ], ], 'ConnectorStatus' => [ 'type' => 'string', 'enum' => [ 'HEALTHY', 'UNHEALTHY', ], ], 'ConnectorVersion' => [ 'type' => 'string', ], 'CreateAppRequest' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'AppName', ], 'description' => [ 'shape' => 'AppDescription', ], 'roleName' => [ 'shape' => 'RoleName', ], 'clientToken' => [ 'shape' => 'ClientToken', ], 'serverGroups' => [ 'shape' => 'ServerGroups', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'CreateAppResponse' => [ 'type' => 'structure', 'members' => [ 'appSummary' => [ 'shape' => 'AppSummary', ], 'serverGroups' => [ 'shape' => 'ServerGroups', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'CreateReplicationJobRequest' => [ 'type' => 'structure', 'required' => [ 'serverId', 'seedReplicationTime', ], 'members' => [ 'serverId' => [ 'shape' => 'ServerId', ], 'seedReplicationTime' => [ 'shape' => 'Timestamp', ], 'frequency' => [ 'shape' => 'Frequency', ], 'runOnce' => [ 'shape' => 'RunOnce', ], 'licenseType' => [ 'shape' => 'LicenseType', ], 'roleName' => [ 'shape' => 'RoleName', ], 'description' => [ 'shape' => 'Description', ], 'numberOfRecentAmisToKeep' => [ 'shape' => 'NumberOfRecentAmisToKeep', ], 'encrypted' => [ 'shape' => 'Encrypted', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'CreateReplicationJobResponse' => [ 'type' => 'structure', 'members' => [ 'replicationJobId' => [ 'shape' => 'ReplicationJobId', ], ], ], 'DeleteAppLaunchConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'appId' => [ 'shape' => 'AppId', ], ], ], 'DeleteAppLaunchConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteAppReplicationConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'appId' => [ 'shape' => 'AppId', ], ], ], 'DeleteAppReplicationConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteAppRequest' => [ 'type' => 'structure', 'members' => [ 'appId' => [ 'shape' => 'AppId', ], 'forceStopAppReplication' => [ 'shape' => 'ForceStopAppReplication', ], 'forceTerminateApp' => [ 'shape' => 'ForceTerminateApp', ], ], ], 'DeleteAppResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteReplicationJobRequest' => [ 'type' => 'structure', 'required' => [ 'replicationJobId', ], 'members' => [ 'replicationJobId' => [ 'shape' => 'ReplicationJobId', ], ], ], 'DeleteReplicationJobResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteServerCatalogRequest' => [ 'type' => 'structure', 'members' => [], ], 'DeleteServerCatalogResponse' => [ 'type' => 'structure', 'members' => [], ], 'Description' => [ 'type' => 'string', ], 'DisassociateConnectorRequest' => [ 'type' => 'structure', 'required' => [ 'connectorId', ], 'members' => [ 'connectorId' => [ 'shape' => 'ConnectorId', ], ], ], 'DisassociateConnectorResponse' => [ 'type' => 'structure', 'members' => [], ], 'EC2KeyName' => [ 'type' => 'string', ], 'Encrypted' => [ 'type' => 'boolean', ], 'ErrorMessage' => [ 'type' => 'string', ], 'ForceStopAppReplication' => [ 'type' => 'boolean', ], 'ForceTerminateApp' => [ 'type' => 'boolean', ], 'Frequency' => [ 'type' => 'integer', ], 'GenerateChangeSetRequest' => [ 'type' => 'structure', 'members' => [ 'appId' => [ 'shape' => 'AppId', ], 'changesetFormat' => [ 'shape' => 'OutputFormat', ], ], ], 'GenerateChangeSetResponse' => [ 'type' => 'structure', 'members' => [ 's3Location' => [ 'shape' => 'S3Location', ], ], ], 'GenerateTemplateRequest' => [ 'type' => 'structure', 'members' => [ 'appId' => [ 'shape' => 'AppId', ], 'templateFormat' => [ 'shape' => 'OutputFormat', ], ], ], 'GenerateTemplateResponse' => [ 'type' => 'structure', 'members' => [ 's3Location' => [ 'shape' => 'S3Location', ], ], ], 'GetAppLaunchConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'appId' => [ 'shape' => 'AppId', ], ], ], 'GetAppLaunchConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'appId' => [ 'shape' => 'AppId', ], 'roleName' => [ 'shape' => 'RoleName', ], 'serverGroupLaunchConfigurations' => [ 'shape' => 'ServerGroupLaunchConfigurations', ], ], ], 'GetAppReplicationConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'appId' => [ 'shape' => 'AppId', ], ], ], 'GetAppReplicationConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'serverGroupReplicationConfigurations' => [ 'shape' => 'ServerGroupReplicationConfigurations', ], ], ], 'GetAppRequest' => [ 'type' => 'structure', 'members' => [ 'appId' => [ 'shape' => 'AppId', ], ], ], 'GetAppResponse' => [ 'type' => 'structure', 'members' => [ 'appSummary' => [ 'shape' => 'AppSummary', ], 'serverGroups' => [ 'shape' => 'ServerGroups', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'GetConnectorsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'GetConnectorsResponse' => [ 'type' => 'structure', 'members' => [ 'connectorList' => [ 'shape' => 'ConnectorList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetReplicationJobsRequest' => [ 'type' => 'structure', 'members' => [ 'replicationJobId' => [ 'shape' => 'ReplicationJobId', ], 'nextToken' => [ 'shape' => 'NextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'GetReplicationJobsResponse' => [ 'type' => 'structure', 'members' => [ 'replicationJobList' => [ 'shape' => 'ReplicationJobList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetReplicationRunsRequest' => [ 'type' => 'structure', 'required' => [ 'replicationJobId', ], 'members' => [ 'replicationJobId' => [ 'shape' => 'ReplicationJobId', ], 'nextToken' => [ 'shape' => 'NextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'GetReplicationRunsResponse' => [ 'type' => 'structure', 'members' => [ 'replicationJob' => [ 'shape' => 'ReplicationJob', ], 'replicationRunList' => [ 'shape' => 'ReplicationRunList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetServersRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', ], 'vmServerAddressList' => [ 'shape' => 'VmServerAddressList', ], ], ], 'GetServersResponse' => [ 'type' => 'structure', 'members' => [ 'lastModifiedOn' => [ 'shape' => 'Timestamp', ], 'serverCatalogStatus' => [ 'shape' => 'ServerCatalogStatus', ], 'serverList' => [ 'shape' => 'ServerList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ImportServerCatalogRequest' => [ 'type' => 'structure', 'members' => [], ], 'ImportServerCatalogResponse' => [ 'type' => 'structure', 'members' => [], ], 'InstanceType' => [ 'type' => 'string', ], 'InternalError' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, 'fault' => true, ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'IpAddress' => [ 'type' => 'string', ], 'KeyName' => [ 'type' => 'string', ], 'KmsKeyId' => [ 'type' => 'string', ], 'LaunchAppRequest' => [ 'type' => 'structure', 'members' => [ 'appId' => [ 'shape' => 'AppId', ], ], ], 'LaunchAppResponse' => [ 'type' => 'structure', 'members' => [], ], 'LaunchDetails' => [ 'type' => 'structure', 'members' => [ 'latestLaunchTime' => [ 'shape' => 'Timestamp', ], 'stackName' => [ 'shape' => 'StackName', ], 'stackId' => [ 'shape' => 'StackId', ], ], ], 'LaunchOrder' => [ 'type' => 'integer', ], 'LicenseType' => [ 'type' => 'string', 'enum' => [ 'AWS', 'BYOL', ], ], 'ListAppsRequest' => [ 'type' => 'structure', 'members' => [ 'appIds' => [ 'shape' => 'AppIds', ], 'nextToken' => [ 'shape' => 'NextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListAppsResponse' => [ 'type' => 'structure', 'members' => [ 'apps' => [ 'shape' => 'Apps', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'LogicalId' => [ 'type' => 'string', ], 'MacAddress' => [ 'type' => 'string', ], 'MaxResults' => [ 'type' => 'integer', ], 'MissingRequiredParameterException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'NextToken' => [ 'type' => 'string', ], 'NoConnectorsAvailableException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'NumberOfRecentAmisToKeep' => [ 'type' => 'integer', ], 'OperationNotPermittedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'OutputFormat' => [ 'type' => 'string', 'enum' => [ 'JSON', 'YAML', ], ], 'PutAppLaunchConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'appId' => [ 'shape' => 'AppId', ], 'roleName' => [ 'shape' => 'RoleName', ], 'serverGroupLaunchConfigurations' => [ 'shape' => 'ServerGroupLaunchConfigurations', ], ], ], 'PutAppLaunchConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'PutAppReplicationConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'appId' => [ 'shape' => 'AppId', ], 'serverGroupReplicationConfigurations' => [ 'shape' => 'ServerGroupReplicationConfigurations', ], ], ], 'PutAppReplicationConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'ReplicationJob' => [ 'type' => 'structure', 'members' => [ 'replicationJobId' => [ 'shape' => 'ReplicationJobId', ], 'serverId' => [ 'shape' => 'ServerId', ], 'serverType' => [ 'shape' => 'ServerType', ], 'vmServer' => [ 'shape' => 'VmServer', ], 'seedReplicationTime' => [ 'shape' => 'Timestamp', ], 'frequency' => [ 'shape' => 'Frequency', ], 'runOnce' => [ 'shape' => 'RunOnce', ], 'nextReplicationRunStartTime' => [ 'shape' => 'Timestamp', ], 'licenseType' => [ 'shape' => 'LicenseType', ], 'roleName' => [ 'shape' => 'RoleName', ], 'latestAmiId' => [ 'shape' => 'AmiId', ], 'state' => [ 'shape' => 'ReplicationJobState', ], 'statusMessage' => [ 'shape' => 'ReplicationJobStatusMessage', ], 'description' => [ 'shape' => 'Description', ], 'numberOfRecentAmisToKeep' => [ 'shape' => 'NumberOfRecentAmisToKeep', ], 'encrypted' => [ 'shape' => 'Encrypted', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'replicationRunList' => [ 'shape' => 'ReplicationRunList', ], ], ], 'ReplicationJobAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ReplicationJobId' => [ 'type' => 'string', ], 'ReplicationJobList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReplicationJob', ], ], 'ReplicationJobNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ReplicationJobState' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'ACTIVE', 'FAILED', 'DELETING', 'DELETED', 'COMPLETED', 'PAUSED_ON_FAILURE', 'FAILING', ], ], 'ReplicationJobStatusMessage' => [ 'type' => 'string', ], 'ReplicationJobTerminated' => [ 'type' => 'boolean', ], 'ReplicationRun' => [ 'type' => 'structure', 'members' => [ 'replicationRunId' => [ 'shape' => 'ReplicationRunId', ], 'state' => [ 'shape' => 'ReplicationRunState', ], 'type' => [ 'shape' => 'ReplicationRunType', ], 'stageDetails' => [ 'shape' => 'ReplicationRunStageDetails', ], 'statusMessage' => [ 'shape' => 'ReplicationRunStatusMessage', ], 'amiId' => [ 'shape' => 'AmiId', ], 'scheduledStartTime' => [ 'shape' => 'Timestamp', ], 'completedTime' => [ 'shape' => 'Timestamp', ], 'description' => [ 'shape' => 'Description', ], 'encrypted' => [ 'shape' => 'Encrypted', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'ReplicationRunId' => [ 'type' => 'string', ], 'ReplicationRunLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ReplicationRunList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReplicationRun', ], ], 'ReplicationRunStage' => [ 'type' => 'string', ], 'ReplicationRunStageDetails' => [ 'type' => 'structure', 'members' => [ 'stage' => [ 'shape' => 'ReplicationRunStage', ], 'stageProgress' => [ 'shape' => 'ReplicationRunStageProgress', ], ], ], 'ReplicationRunStageProgress' => [ 'type' => 'string', ], 'ReplicationRunState' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'MISSED', 'ACTIVE', 'FAILED', 'COMPLETED', 'DELETING', 'DELETED', ], ], 'ReplicationRunStatusMessage' => [ 'type' => 'string', ], 'ReplicationRunType' => [ 'type' => 'string', 'enum' => [ 'ON_DEMAND', 'AUTOMATIC', ], ], 'RoleName' => [ 'type' => 'string', ], 'RunOnce' => [ 'type' => 'boolean', ], 'S3Location' => [ 'type' => 'structure', 'members' => [ 'bucket' => [ 'shape' => 'BucketName', ], 'key' => [ 'shape' => 'KeyName', ], ], ], 'SecurityGroup' => [ 'type' => 'string', ], 'Server' => [ 'type' => 'structure', 'members' => [ 'serverId' => [ 'shape' => 'ServerId', ], 'serverType' => [ 'shape' => 'ServerType', ], 'vmServer' => [ 'shape' => 'VmServer', ], 'replicationJobId' => [ 'shape' => 'ReplicationJobId', ], 'replicationJobTerminated' => [ 'shape' => 'ReplicationJobTerminated', ], ], ], 'ServerCannotBeReplicatedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ServerCatalogStatus' => [ 'type' => 'string', 'enum' => [ 'NOT_IMPORTED', 'IMPORTING', 'AVAILABLE', 'DELETED', 'EXPIRED', ], ], 'ServerGroup' => [ 'type' => 'structure', 'members' => [ 'serverGroupId' => [ 'shape' => 'ServerGroupId', ], 'name' => [ 'shape' => 'ServerGroupName', ], 'serverList' => [ 'shape' => 'ServerList', ], ], ], 'ServerGroupId' => [ 'type' => 'string', ], 'ServerGroupLaunchConfiguration' => [ 'type' => 'structure', 'members' => [ 'serverGroupId' => [ 'shape' => 'ServerGroupId', ], 'launchOrder' => [ 'shape' => 'LaunchOrder', ], 'serverLaunchConfigurations' => [ 'shape' => 'ServerLaunchConfigurations', ], ], ], 'ServerGroupLaunchConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServerGroupLaunchConfiguration', ], ], 'ServerGroupName' => [ 'type' => 'string', ], 'ServerGroupReplicationConfiguration' => [ 'type' => 'structure', 'members' => [ 'serverGroupId' => [ 'shape' => 'ServerGroupId', ], 'serverReplicationConfigurations' => [ 'shape' => 'ServerReplicationConfigurations', ], ], ], 'ServerGroupReplicationConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServerGroupReplicationConfiguration', ], ], 'ServerGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServerGroup', ], ], 'ServerId' => [ 'type' => 'string', ], 'ServerLaunchConfiguration' => [ 'type' => 'structure', 'members' => [ 'server' => [ 'shape' => 'Server', ], 'logicalId' => [ 'shape' => 'LogicalId', ], 'vpc' => [ 'shape' => 'VPC', ], 'subnet' => [ 'shape' => 'Subnet', ], 'securityGroup' => [ 'shape' => 'SecurityGroup', ], 'ec2KeyName' => [ 'shape' => 'EC2KeyName', ], 'userData' => [ 'shape' => 'UserData', ], 'instanceType' => [ 'shape' => 'InstanceType', ], 'associatePublicIpAddress' => [ 'shape' => 'AssociatePublicIpAddress', ], ], ], 'ServerLaunchConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServerLaunchConfiguration', ], ], 'ServerList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Server', ], ], 'ServerReplicationConfiguration' => [ 'type' => 'structure', 'members' => [ 'server' => [ 'shape' => 'Server', ], 'serverReplicationParameters' => [ 'shape' => 'ServerReplicationParameters', ], ], ], 'ServerReplicationConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServerReplicationConfiguration', ], ], 'ServerReplicationParameters' => [ 'type' => 'structure', 'members' => [ 'seedTime' => [ 'shape' => 'Timestamp', ], 'frequency' => [ 'shape' => 'Frequency', ], 'runOnce' => [ 'shape' => 'RunOnce', ], 'licenseType' => [ 'shape' => 'LicenseType', ], 'numberOfRecentAmisToKeep' => [ 'shape' => 'NumberOfRecentAmisToKeep', ], 'encrypted' => [ 'shape' => 'Encrypted', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'ServerType' => [ 'type' => 'string', 'enum' => [ 'VIRTUAL_MACHINE', ], ], 'StackId' => [ 'type' => 'string', ], 'StackName' => [ 'type' => 'string', ], 'StartAppReplicationRequest' => [ 'type' => 'structure', 'members' => [ 'appId' => [ 'shape' => 'AppId', ], ], ], 'StartAppReplicationResponse' => [ 'type' => 'structure', 'members' => [], ], 'StartOnDemandReplicationRunRequest' => [ 'type' => 'structure', 'required' => [ 'replicationJobId', ], 'members' => [ 'replicationJobId' => [ 'shape' => 'ReplicationJobId', ], 'description' => [ 'shape' => 'Description', ], ], ], 'StartOnDemandReplicationRunResponse' => [ 'type' => 'structure', 'members' => [ 'replicationRunId' => [ 'shape' => 'ReplicationRunId', ], ], ], 'StopAppReplicationRequest' => [ 'type' => 'structure', 'members' => [ 'appId' => [ 'shape' => 'AppId', ], ], ], 'StopAppReplicationResponse' => [ 'type' => 'structure', 'members' => [], ], 'Subnet' => [ 'type' => 'string', ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', ], 'TagValue' => [ 'type' => 'string', ], 'Tags' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TemporarilyUnavailableException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, 'fault' => true, ], 'TerminateAppRequest' => [ 'type' => 'structure', 'members' => [ 'appId' => [ 'shape' => 'AppId', ], ], ], 'TerminateAppResponse' => [ 'type' => 'structure', 'members' => [], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TotalServerGroups' => [ 'type' => 'integer', ], 'TotalServers' => [ 'type' => 'integer', ], 'UnauthorizedOperationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'UpdateAppRequest' => [ 'type' => 'structure', 'members' => [ 'appId' => [ 'shape' => 'AppId', ], 'name' => [ 'shape' => 'AppName', ], 'description' => [ 'shape' => 'AppDescription', ], 'roleName' => [ 'shape' => 'RoleName', ], 'serverGroups' => [ 'shape' => 'ServerGroups', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'UpdateAppResponse' => [ 'type' => 'structure', 'members' => [ 'appSummary' => [ 'shape' => 'AppSummary', ], 'serverGroups' => [ 'shape' => 'ServerGroups', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'UpdateReplicationJobRequest' => [ 'type' => 'structure', 'required' => [ 'replicationJobId', ], 'members' => [ 'replicationJobId' => [ 'shape' => 'ReplicationJobId', ], 'frequency' => [ 'shape' => 'Frequency', ], 'nextReplicationRunStartTime' => [ 'shape' => 'Timestamp', ], 'licenseType' => [ 'shape' => 'LicenseType', ], 'roleName' => [ 'shape' => 'RoleName', ], 'description' => [ 'shape' => 'Description', ], 'numberOfRecentAmisToKeep' => [ 'shape' => 'NumberOfRecentAmisToKeep', ], 'encrypted' => [ 'shape' => 'Encrypted', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], ], ], 'UpdateReplicationJobResponse' => [ 'type' => 'structure', 'members' => [], ], 'UserData' => [ 'type' => 'structure', 'members' => [ 's3Location' => [ 'shape' => 'S3Location', ], ], ], 'VPC' => [ 'type' => 'string', ], 'VmId' => [ 'type' => 'string', ], 'VmManagerId' => [ 'type' => 'string', ], 'VmManagerName' => [ 'type' => 'string', ], 'VmManagerType' => [ 'type' => 'string', 'enum' => [ 'VSPHERE', 'SCVMM', 'HYPERV-MANAGER', ], ], 'VmName' => [ 'type' => 'string', ], 'VmPath' => [ 'type' => 'string', ], 'VmServer' => [ 'type' => 'structure', 'members' => [ 'vmServerAddress' => [ 'shape' => 'VmServerAddress', ], 'vmName' => [ 'shape' => 'VmName', ], 'vmManagerName' => [ 'shape' => 'VmManagerName', ], 'vmManagerType' => [ 'shape' => 'VmManagerType', ], 'vmPath' => [ 'shape' => 'VmPath', ], ], ], 'VmServerAddress' => [ 'type' => 'structure', 'members' => [ 'vmManagerId' => [ 'shape' => 'VmManagerId', ], 'vmId' => [ 'shape' => 'VmId', ], ], ], 'VmServerAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VmServerAddress', ], ], ],]; diff --git a/lib/aws/Aws/data/sms/2016-10-24/paginators-1.json.php b/lib/aws/Aws/data/sms/2016-10-24/paginators-1.json.php new file mode 100644 index 0000000..06ff3e1 --- /dev/null +++ b/lib/aws/Aws/data/sms/2016-10-24/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/sms/2016-10-24/paginators-1.json +return [ 'pagination' => [ 'GetConnectors' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'connectorList', ], 'GetReplicationJobs' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'replicationJobList', ], 'GetReplicationRuns' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'replicationRunList', ], 'GetServers' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'serverList', ], ],]; diff --git a/lib/aws/Aws/data/sms/2016-10-24/smoke.json.php b/lib/aws/Aws/data/sms/2016-10-24/smoke.json.php new file mode 100644 index 0000000..a8087e2 --- /dev/null +++ b/lib/aws/Aws/data/sms/2016-10-24/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/sms/2016-10-24/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'GetConnectors', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DeleteReplicationJob', 'input' => [ 'replicationJobId' => 'invalidId', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/snowball/2016-06-30/api-2.json.php b/lib/aws/Aws/data/snowball/2016-06-30/api-2.json.php new file mode 100644 index 0000000..a692b3c --- /dev/null +++ b/lib/aws/Aws/data/snowball/2016-06-30/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/snowball/2016-06-30/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-06-30', 'endpointPrefix' => 'snowball', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'Amazon Snowball', 'serviceFullName' => 'Amazon Import/Export Snowball', 'serviceId' => 'Snowball', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWSIESnowballJobManagementService', 'uid' => 'snowball-2016-06-30', ], 'operations' => [ 'CancelCluster' => [ 'name' => 'CancelCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelClusterRequest', ], 'output' => [ 'shape' => 'CancelClusterResult', ], 'errors' => [ [ 'shape' => 'KMSRequestFailedException', ], [ 'shape' => 'InvalidJobStateException', ], [ 'shape' => 'InvalidResourceException', ], ], ], 'CancelJob' => [ 'name' => 'CancelJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelJobRequest', ], 'output' => [ 'shape' => 'CancelJobResult', ], 'errors' => [ [ 'shape' => 'InvalidResourceException', ], [ 'shape' => 'InvalidJobStateException', ], [ 'shape' => 'KMSRequestFailedException', ], ], ], 'CreateAddress' => [ 'name' => 'CreateAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAddressRequest', ], 'output' => [ 'shape' => 'CreateAddressResult', ], 'errors' => [ [ 'shape' => 'InvalidAddressException', ], [ 'shape' => 'UnsupportedAddressException', ], ], ], 'CreateCluster' => [ 'name' => 'CreateCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateClusterRequest', ], 'output' => [ 'shape' => 'CreateClusterResult', ], 'errors' => [ [ 'shape' => 'InvalidResourceException', ], [ 'shape' => 'KMSRequestFailedException', ], [ 'shape' => 'InvalidInputCombinationException', ], [ 'shape' => 'Ec2RequestFailedException', ], ], ], 'CreateJob' => [ 'name' => 'CreateJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateJobRequest', ], 'output' => [ 'shape' => 'CreateJobResult', ], 'errors' => [ [ 'shape' => 'InvalidResourceException', ], [ 'shape' => 'KMSRequestFailedException', ], [ 'shape' => 'InvalidInputCombinationException', ], [ 'shape' => 'ClusterLimitExceededException', ], [ 'shape' => 'Ec2RequestFailedException', ], ], ], 'DescribeAddress' => [ 'name' => 'DescribeAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAddressRequest', ], 'output' => [ 'shape' => 'DescribeAddressResult', ], 'errors' => [ [ 'shape' => 'InvalidResourceException', ], ], ], 'DescribeAddresses' => [ 'name' => 'DescribeAddresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAddressesRequest', ], 'output' => [ 'shape' => 'DescribeAddressesResult', ], 'errors' => [ [ 'shape' => 'InvalidResourceException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'DescribeCluster' => [ 'name' => 'DescribeCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClusterRequest', ], 'output' => [ 'shape' => 'DescribeClusterResult', ], 'errors' => [ [ 'shape' => 'InvalidResourceException', ], ], ], 'DescribeJob' => [ 'name' => 'DescribeJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeJobRequest', ], 'output' => [ 'shape' => 'DescribeJobResult', ], 'errors' => [ [ 'shape' => 'InvalidResourceException', ], ], ], 'GetJobManifest' => [ 'name' => 'GetJobManifest', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetJobManifestRequest', ], 'output' => [ 'shape' => 'GetJobManifestResult', ], 'errors' => [ [ 'shape' => 'InvalidResourceException', ], [ 'shape' => 'InvalidJobStateException', ], ], ], 'GetJobUnlockCode' => [ 'name' => 'GetJobUnlockCode', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetJobUnlockCodeRequest', ], 'output' => [ 'shape' => 'GetJobUnlockCodeResult', ], 'errors' => [ [ 'shape' => 'InvalidResourceException', ], [ 'shape' => 'InvalidJobStateException', ], ], ], 'GetSnowballUsage' => [ 'name' => 'GetSnowballUsage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSnowballUsageRequest', ], 'output' => [ 'shape' => 'GetSnowballUsageResult', ], ], 'ListClusterJobs' => [ 'name' => 'ListClusterJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListClusterJobsRequest', ], 'output' => [ 'shape' => 'ListClusterJobsResult', ], 'errors' => [ [ 'shape' => 'InvalidResourceException', ], [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListClusters' => [ 'name' => 'ListClusters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListClustersRequest', ], 'output' => [ 'shape' => 'ListClustersResult', ], 'errors' => [ [ 'shape' => 'InvalidNextTokenException', ], ], ], 'ListCompatibleImages' => [ 'name' => 'ListCompatibleImages', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListCompatibleImagesRequest', ], 'output' => [ 'shape' => 'ListCompatibleImagesResult', ], 'errors' => [ [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'Ec2RequestFailedException', ], ], ], 'ListJobs' => [ 'name' => 'ListJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListJobsRequest', ], 'output' => [ 'shape' => 'ListJobsResult', ], 'errors' => [ [ 'shape' => 'InvalidNextTokenException', ], ], ], 'UpdateCluster' => [ 'name' => 'UpdateCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateClusterRequest', ], 'output' => [ 'shape' => 'UpdateClusterResult', ], 'errors' => [ [ 'shape' => 'InvalidResourceException', ], [ 'shape' => 'InvalidJobStateException', ], [ 'shape' => 'KMSRequestFailedException', ], [ 'shape' => 'InvalidInputCombinationException', ], [ 'shape' => 'Ec2RequestFailedException', ], ], ], 'UpdateJob' => [ 'name' => 'UpdateJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateJobRequest', ], 'output' => [ 'shape' => 'UpdateJobResult', ], 'errors' => [ [ 'shape' => 'InvalidResourceException', ], [ 'shape' => 'InvalidJobStateException', ], [ 'shape' => 'KMSRequestFailedException', ], [ 'shape' => 'InvalidInputCombinationException', ], [ 'shape' => 'ClusterLimitExceededException', ], [ 'shape' => 'Ec2RequestFailedException', ], ], ], ], 'shapes' => [ 'Address' => [ 'type' => 'structure', 'members' => [ 'AddressId' => [ 'shape' => 'AddressId', ], 'Name' => [ 'shape' => 'String', ], 'Company' => [ 'shape' => 'String', ], 'Street1' => [ 'shape' => 'String', ], 'Street2' => [ 'shape' => 'String', ], 'Street3' => [ 'shape' => 'String', ], 'City' => [ 'shape' => 'String', ], 'StateOrProvince' => [ 'shape' => 'String', ], 'PrefectureOrDistrict' => [ 'shape' => 'String', ], 'Landmark' => [ 'shape' => 'String', ], 'Country' => [ 'shape' => 'String', ], 'PostalCode' => [ 'shape' => 'String', ], 'PhoneNumber' => [ 'shape' => 'String', ], 'IsRestricted' => [ 'shape' => 'Boolean', ], ], ], 'AddressId' => [ 'type' => 'string', 'max' => 40, 'min' => 40, 'pattern' => 'ADID[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}', ], 'AddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Address', ], ], 'AmiId' => [ 'type' => 'string', 'max' => 21, 'min' => 12, 'pattern' => '(ami-[0-9a-f]{8})|(ami-[0-9a-f]{17})', ], 'Boolean' => [ 'type' => 'boolean', ], 'CancelClusterRequest' => [ 'type' => 'structure', 'required' => [ 'ClusterId', ], 'members' => [ 'ClusterId' => [ 'shape' => 'ClusterId', ], ], ], 'CancelClusterResult' => [ 'type' => 'structure', 'members' => [], ], 'CancelJobRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'CancelJobResult' => [ 'type' => 'structure', 'members' => [], ], 'ClusterId' => [ 'type' => 'string', 'max' => 39, 'min' => 39, 'pattern' => 'CID[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}', ], 'ClusterLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ClusterListEntry' => [ 'type' => 'structure', 'members' => [ 'ClusterId' => [ 'shape' => 'String', ], 'ClusterState' => [ 'shape' => 'ClusterState', ], 'CreationDate' => [ 'shape' => 'Timestamp', ], 'Description' => [ 'shape' => 'String', ], ], ], 'ClusterListEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClusterListEntry', ], ], 'ClusterMetadata' => [ 'type' => 'structure', 'members' => [ 'ClusterId' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'KmsKeyARN' => [ 'shape' => 'KmsKeyARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], 'ClusterState' => [ 'shape' => 'ClusterState', ], 'JobType' => [ 'shape' => 'JobType', ], 'SnowballType' => [ 'shape' => 'SnowballType', ], 'CreationDate' => [ 'shape' => 'Timestamp', ], 'Resources' => [ 'shape' => 'JobResource', ], 'AddressId' => [ 'shape' => 'AddressId', ], 'ShippingOption' => [ 'shape' => 'ShippingOption', ], 'Notification' => [ 'shape' => 'Notification', ], 'ForwardingAddressId' => [ 'shape' => 'AddressId', ], ], ], 'ClusterState' => [ 'type' => 'string', 'enum' => [ 'AwaitingQuorum', 'Pending', 'InUse', 'Complete', 'Cancelled', ], ], 'CompatibleImage' => [ 'type' => 'structure', 'members' => [ 'AmiId' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], ], ], 'CompatibleImageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CompatibleImage', ], ], 'CreateAddressRequest' => [ 'type' => 'structure', 'required' => [ 'Address', ], 'members' => [ 'Address' => [ 'shape' => 'Address', ], ], ], 'CreateAddressResult' => [ 'type' => 'structure', 'members' => [ 'AddressId' => [ 'shape' => 'String', ], ], ], 'CreateClusterRequest' => [ 'type' => 'structure', 'required' => [ 'JobType', 'Resources', 'AddressId', 'RoleARN', 'ShippingOption', ], 'members' => [ 'JobType' => [ 'shape' => 'JobType', ], 'Resources' => [ 'shape' => 'JobResource', ], 'Description' => [ 'shape' => 'String', ], 'AddressId' => [ 'shape' => 'AddressId', ], 'KmsKeyARN' => [ 'shape' => 'KmsKeyARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], 'SnowballType' => [ 'shape' => 'SnowballType', ], 'ShippingOption' => [ 'shape' => 'ShippingOption', ], 'Notification' => [ 'shape' => 'Notification', ], 'ForwardingAddressId' => [ 'shape' => 'AddressId', ], ], ], 'CreateClusterResult' => [ 'type' => 'structure', 'members' => [ 'ClusterId' => [ 'shape' => 'ClusterId', ], ], ], 'CreateJobRequest' => [ 'type' => 'structure', 'members' => [ 'JobType' => [ 'shape' => 'JobType', ], 'Resources' => [ 'shape' => 'JobResource', ], 'Description' => [ 'shape' => 'String', ], 'AddressId' => [ 'shape' => 'AddressId', ], 'KmsKeyARN' => [ 'shape' => 'KmsKeyARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], 'SnowballCapacityPreference' => [ 'shape' => 'SnowballCapacity', ], 'ShippingOption' => [ 'shape' => 'ShippingOption', ], 'Notification' => [ 'shape' => 'Notification', ], 'ClusterId' => [ 'shape' => 'ClusterId', ], 'SnowballType' => [ 'shape' => 'SnowballType', ], 'ForwardingAddressId' => [ 'shape' => 'AddressId', ], ], ], 'CreateJobResult' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'DataTransfer' => [ 'type' => 'structure', 'members' => [ 'BytesTransferred' => [ 'shape' => 'Long', ], 'ObjectsTransferred' => [ 'shape' => 'Long', ], 'TotalBytes' => [ 'shape' => 'Long', ], 'TotalObjects' => [ 'shape' => 'Long', ], ], ], 'DescribeAddressRequest' => [ 'type' => 'structure', 'required' => [ 'AddressId', ], 'members' => [ 'AddressId' => [ 'shape' => 'AddressId', ], ], ], 'DescribeAddressResult' => [ 'type' => 'structure', 'members' => [ 'Address' => [ 'shape' => 'Address', ], ], ], 'DescribeAddressesRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'ListLimit', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeAddressesResult' => [ 'type' => 'structure', 'members' => [ 'Addresses' => [ 'shape' => 'AddressList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeClusterRequest' => [ 'type' => 'structure', 'required' => [ 'ClusterId', ], 'members' => [ 'ClusterId' => [ 'shape' => 'ClusterId', ], ], ], 'DescribeClusterResult' => [ 'type' => 'structure', 'members' => [ 'ClusterMetadata' => [ 'shape' => 'ClusterMetadata', ], ], ], 'DescribeJobRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'DescribeJobResult' => [ 'type' => 'structure', 'members' => [ 'JobMetadata' => [ 'shape' => 'JobMetadata', ], 'SubJobMetadata' => [ 'shape' => 'JobMetadataList', ], ], ], 'Ec2AmiResource' => [ 'type' => 'structure', 'required' => [ 'AmiId', ], 'members' => [ 'AmiId' => [ 'shape' => 'AmiId', ], 'SnowballAmiId' => [ 'shape' => 'String', ], ], ], 'Ec2AmiResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ec2AmiResource', ], ], 'Ec2RequestFailedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'EventTriggerDefinition' => [ 'type' => 'structure', 'members' => [ 'EventResourceARN' => [ 'shape' => 'ResourceARN', ], ], ], 'EventTriggerDefinitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventTriggerDefinition', ], ], 'GetJobManifestRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'GetJobManifestResult' => [ 'type' => 'structure', 'members' => [ 'ManifestURI' => [ 'shape' => 'String', ], ], ], 'GetJobUnlockCodeRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'GetJobUnlockCodeResult' => [ 'type' => 'structure', 'members' => [ 'UnlockCode' => [ 'shape' => 'String', ], ], ], 'GetSnowballUsageRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetSnowballUsageResult' => [ 'type' => 'structure', 'members' => [ 'SnowballLimit' => [ 'shape' => 'Integer', ], 'SnowballsInUse' => [ 'shape' => 'Integer', ], ], ], 'Integer' => [ 'type' => 'integer', ], 'InvalidAddressException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidInputCombinationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidJobStateException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidResourceException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'JobId' => [ 'type' => 'string', 'max' => 39, 'min' => 39, 'pattern' => '(M|J)ID[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}', ], 'JobListEntry' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'String', ], 'JobState' => [ 'shape' => 'JobState', ], 'IsMaster' => [ 'shape' => 'Boolean', ], 'JobType' => [ 'shape' => 'JobType', ], 'SnowballType' => [ 'shape' => 'SnowballType', ], 'CreationDate' => [ 'shape' => 'Timestamp', ], 'Description' => [ 'shape' => 'String', ], ], ], 'JobListEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'JobListEntry', ], ], 'JobLogs' => [ 'type' => 'structure', 'members' => [ 'JobCompletionReportURI' => [ 'shape' => 'String', ], 'JobSuccessLogURI' => [ 'shape' => 'String', ], 'JobFailureLogURI' => [ 'shape' => 'String', ], ], ], 'JobMetadata' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'String', ], 'JobState' => [ 'shape' => 'JobState', ], 'JobType' => [ 'shape' => 'JobType', ], 'SnowballType' => [ 'shape' => 'SnowballType', ], 'CreationDate' => [ 'shape' => 'Timestamp', ], 'Resources' => [ 'shape' => 'JobResource', ], 'Description' => [ 'shape' => 'String', ], 'KmsKeyARN' => [ 'shape' => 'KmsKeyARN', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], 'AddressId' => [ 'shape' => 'AddressId', ], 'ShippingDetails' => [ 'shape' => 'ShippingDetails', ], 'SnowballCapacityPreference' => [ 'shape' => 'SnowballCapacity', ], 'Notification' => [ 'shape' => 'Notification', ], 'DataTransferProgress' => [ 'shape' => 'DataTransfer', ], 'JobLogInfo' => [ 'shape' => 'JobLogs', ], 'ClusterId' => [ 'shape' => 'String', ], 'ForwardingAddressId' => [ 'shape' => 'AddressId', ], ], ], 'JobMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'JobMetadata', ], ], 'JobResource' => [ 'type' => 'structure', 'members' => [ 'S3Resources' => [ 'shape' => 'S3ResourceList', ], 'LambdaResources' => [ 'shape' => 'LambdaResourceList', ], 'Ec2AmiResources' => [ 'shape' => 'Ec2AmiResourceList', ], ], ], 'JobState' => [ 'type' => 'string', 'enum' => [ 'New', 'PreparingAppliance', 'PreparingShipment', 'InTransitToCustomer', 'WithCustomer', 'InTransitToAWS', 'WithAWSSortingFacility', 'WithAWS', 'InProgress', 'Complete', 'Cancelled', 'Listing', 'Pending', ], ], 'JobStateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'JobState', ], ], 'JobType' => [ 'type' => 'string', 'enum' => [ 'IMPORT', 'EXPORT', 'LOCAL_USE', ], ], 'KMSRequestFailedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'KeyRange' => [ 'type' => 'structure', 'members' => [ 'BeginMarker' => [ 'shape' => 'String', ], 'EndMarker' => [ 'shape' => 'String', ], ], ], 'KmsKeyARN' => [ 'type' => 'string', 'max' => 255, 'pattern' => 'arn:aws.*:kms:.*:[0-9]{12}:key/.*', ], 'LambdaResource' => [ 'type' => 'structure', 'members' => [ 'LambdaArn' => [ 'shape' => 'ResourceARN', ], 'EventTriggers' => [ 'shape' => 'EventTriggerDefinitionList', ], ], ], 'LambdaResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LambdaResource', ], ], 'ListClusterJobsRequest' => [ 'type' => 'structure', 'required' => [ 'ClusterId', ], 'members' => [ 'ClusterId' => [ 'shape' => 'ClusterId', ], 'MaxResults' => [ 'shape' => 'ListLimit', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListClusterJobsResult' => [ 'type' => 'structure', 'members' => [ 'JobListEntries' => [ 'shape' => 'JobListEntryList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListClustersRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'ListLimit', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListClustersResult' => [ 'type' => 'structure', 'members' => [ 'ClusterListEntries' => [ 'shape' => 'ClusterListEntryList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListCompatibleImagesRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'ListLimit', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListCompatibleImagesResult' => [ 'type' => 'structure', 'members' => [ 'CompatibleImages' => [ 'shape' => 'CompatibleImageList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListJobsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'ListLimit', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListJobsResult' => [ 'type' => 'structure', 'members' => [ 'JobListEntries' => [ 'shape' => 'JobListEntryList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListLimit' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'Long' => [ 'type' => 'long', ], 'Notification' => [ 'type' => 'structure', 'members' => [ 'SnsTopicARN' => [ 'shape' => 'SnsTopicARN', ], 'JobStatesToNotify' => [ 'shape' => 'JobStateList', ], 'NotifyAll' => [ 'shape' => 'Boolean', ], ], ], 'ResourceARN' => [ 'type' => 'string', 'max' => 255, ], 'RoleARN' => [ 'type' => 'string', 'max' => 255, 'pattern' => 'arn:aws.*:iam::[0-9]{12}:role/.*', ], 'S3Resource' => [ 'type' => 'structure', 'members' => [ 'BucketArn' => [ 'shape' => 'ResourceARN', ], 'KeyRange' => [ 'shape' => 'KeyRange', ], ], ], 'S3ResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'S3Resource', ], ], 'Shipment' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'String', ], 'TrackingNumber' => [ 'shape' => 'String', ], ], ], 'ShippingDetails' => [ 'type' => 'structure', 'members' => [ 'ShippingOption' => [ 'shape' => 'ShippingOption', ], 'InboundShipment' => [ 'shape' => 'Shipment', ], 'OutboundShipment' => [ 'shape' => 'Shipment', ], ], ], 'ShippingOption' => [ 'type' => 'string', 'enum' => [ 'SECOND_DAY', 'NEXT_DAY', 'EXPRESS', 'STANDARD', ], ], 'SnowballCapacity' => [ 'type' => 'string', 'enum' => [ 'T50', 'T80', 'T100', 'T42', 'NoPreference', ], ], 'SnowballType' => [ 'type' => 'string', 'enum' => [ 'STANDARD', 'EDGE', 'EDGE_C', 'EDGE_CG', ], ], 'SnsTopicARN' => [ 'type' => 'string', 'max' => 255, 'pattern' => 'arn:aws.*:sns:.*:[0-9]{12}:.*', ], 'String' => [ 'type' => 'string', 'min' => 1, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'UnsupportedAddressException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'UpdateClusterRequest' => [ 'type' => 'structure', 'required' => [ 'ClusterId', ], 'members' => [ 'ClusterId' => [ 'shape' => 'ClusterId', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], 'Description' => [ 'shape' => 'String', ], 'Resources' => [ 'shape' => 'JobResource', ], 'AddressId' => [ 'shape' => 'AddressId', ], 'ShippingOption' => [ 'shape' => 'ShippingOption', ], 'Notification' => [ 'shape' => 'Notification', ], 'ForwardingAddressId' => [ 'shape' => 'AddressId', ], ], ], 'UpdateClusterResult' => [ 'type' => 'structure', 'members' => [], ], 'UpdateJobRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'RoleARN' => [ 'shape' => 'RoleARN', ], 'Notification' => [ 'shape' => 'Notification', ], 'Resources' => [ 'shape' => 'JobResource', ], 'AddressId' => [ 'shape' => 'AddressId', ], 'ShippingOption' => [ 'shape' => 'ShippingOption', ], 'Description' => [ 'shape' => 'String', ], 'SnowballCapacityPreference' => [ 'shape' => 'SnowballCapacity', ], 'ForwardingAddressId' => [ 'shape' => 'AddressId', ], ], ], 'UpdateJobResult' => [ 'type' => 'structure', 'members' => [], ], ],]; diff --git a/lib/aws/Aws/data/snowball/2016-06-30/paginators-1.json.php b/lib/aws/Aws/data/snowball/2016-06-30/paginators-1.json.php new file mode 100644 index 0000000..17b0ebd --- /dev/null +++ b/lib/aws/Aws/data/snowball/2016-06-30/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/snowball/2016-06-30/paginators-1.json +return [ 'pagination' => [ 'DescribeAddresses' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Addresses', ], 'ListJobs' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'JobListEntries', ], ],]; diff --git a/lib/aws/Aws/data/snowball/2016-06-30/smoke.json.php b/lib/aws/Aws/data/snowball/2016-06-30/smoke.json.php new file mode 100644 index 0000000..9aa31b4 --- /dev/null +++ b/lib/aws/Aws/data/snowball/2016-06-30/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/snowball/2016-06-30/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeAddresses', 'input' => [], 'errorExpectedFromService' => false, ], ],]; diff --git a/lib/aws/Aws/data/sns/2010-03-31/api-2.json.php b/lib/aws/Aws/data/sns/2010-03-31/api-2.json.php new file mode 100644 index 0000000..17f084b --- /dev/null +++ b/lib/aws/Aws/data/sns/2010-03-31/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/sns/2010-03-31/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2010-03-31', 'endpointPrefix' => 'sns', 'protocol' => 'query', 'serviceAbbreviation' => 'Amazon SNS', 'serviceFullName' => 'Amazon Simple Notification Service', 'serviceId' => 'SNS', 'signatureVersion' => 'v4', 'uid' => 'sns-2010-03-31', 'xmlNamespace' => 'http://sns.amazonaws.com/doc/2010-03-31/', ], 'operations' => [ 'AddPermission' => [ 'name' => 'AddPermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddPermissionInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'NotFoundException', ], ], ], 'CheckIfPhoneNumberIsOptedOut' => [ 'name' => 'CheckIfPhoneNumberIsOptedOut', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CheckIfPhoneNumberIsOptedOutInput', ], 'output' => [ 'shape' => 'CheckIfPhoneNumberIsOptedOutResponse', 'resultWrapper' => 'CheckIfPhoneNumberIsOptedOutResult', ], 'errors' => [ [ 'shape' => 'ThrottledException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'ConfirmSubscription' => [ 'name' => 'ConfirmSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ConfirmSubscriptionInput', ], 'output' => [ 'shape' => 'ConfirmSubscriptionResponse', 'resultWrapper' => 'ConfirmSubscriptionResult', ], 'errors' => [ [ 'shape' => 'SubscriptionLimitExceededException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'CreatePlatformApplication' => [ 'name' => 'CreatePlatformApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePlatformApplicationInput', ], 'output' => [ 'shape' => 'CreatePlatformApplicationResponse', 'resultWrapper' => 'CreatePlatformApplicationResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'CreatePlatformEndpoint' => [ 'name' => 'CreatePlatformEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePlatformEndpointInput', ], 'output' => [ 'shape' => 'CreateEndpointResponse', 'resultWrapper' => 'CreatePlatformEndpointResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'NotFoundException', ], ], ], 'CreateTopic' => [ 'name' => 'CreateTopic', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTopicInput', ], 'output' => [ 'shape' => 'CreateTopicResponse', 'resultWrapper' => 'CreateTopicResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TopicLimitExceededException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidSecurityException', ], ], ], 'DeleteEndpoint' => [ 'name' => 'DeleteEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteEndpointInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'DeletePlatformApplication' => [ 'name' => 'DeletePlatformApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePlatformApplicationInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'DeleteTopic' => [ 'name' => 'DeleteTopic', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTopicInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'NotFoundException', ], ], ], 'GetEndpointAttributes' => [ 'name' => 'GetEndpointAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetEndpointAttributesInput', ], 'output' => [ 'shape' => 'GetEndpointAttributesResponse', 'resultWrapper' => 'GetEndpointAttributesResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'NotFoundException', ], ], ], 'GetPlatformApplicationAttributes' => [ 'name' => 'GetPlatformApplicationAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPlatformApplicationAttributesInput', ], 'output' => [ 'shape' => 'GetPlatformApplicationAttributesResponse', 'resultWrapper' => 'GetPlatformApplicationAttributesResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'NotFoundException', ], ], ], 'GetSMSAttributes' => [ 'name' => 'GetSMSAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSMSAttributesInput', ], 'output' => [ 'shape' => 'GetSMSAttributesResponse', 'resultWrapper' => 'GetSMSAttributesResult', ], 'errors' => [ [ 'shape' => 'ThrottledException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'GetSubscriptionAttributes' => [ 'name' => 'GetSubscriptionAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSubscriptionAttributesInput', ], 'output' => [ 'shape' => 'GetSubscriptionAttributesResponse', 'resultWrapper' => 'GetSubscriptionAttributesResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'GetTopicAttributes' => [ 'name' => 'GetTopicAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTopicAttributesInput', ], 'output' => [ 'shape' => 'GetTopicAttributesResponse', 'resultWrapper' => 'GetTopicAttributesResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidSecurityException', ], ], ], 'ListEndpointsByPlatformApplication' => [ 'name' => 'ListEndpointsByPlatformApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListEndpointsByPlatformApplicationInput', ], 'output' => [ 'shape' => 'ListEndpointsByPlatformApplicationResponse', 'resultWrapper' => 'ListEndpointsByPlatformApplicationResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'NotFoundException', ], ], ], 'ListPhoneNumbersOptedOut' => [ 'name' => 'ListPhoneNumbersOptedOut', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListPhoneNumbersOptedOutInput', ], 'output' => [ 'shape' => 'ListPhoneNumbersOptedOutResponse', 'resultWrapper' => 'ListPhoneNumbersOptedOutResult', ], 'errors' => [ [ 'shape' => 'ThrottledException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'ListPlatformApplications' => [ 'name' => 'ListPlatformApplications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListPlatformApplicationsInput', ], 'output' => [ 'shape' => 'ListPlatformApplicationsResponse', 'resultWrapper' => 'ListPlatformApplicationsResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'ListSubscriptions' => [ 'name' => 'ListSubscriptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSubscriptionsInput', ], 'output' => [ 'shape' => 'ListSubscriptionsResponse', 'resultWrapper' => 'ListSubscriptionsResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'ListSubscriptionsByTopic' => [ 'name' => 'ListSubscriptionsByTopic', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSubscriptionsByTopicInput', ], 'output' => [ 'shape' => 'ListSubscriptionsByTopicResponse', 'resultWrapper' => 'ListSubscriptionsByTopicResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'ListTopics' => [ 'name' => 'ListTopics', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTopicsInput', ], 'output' => [ 'shape' => 'ListTopicsResponse', 'resultWrapper' => 'ListTopicsResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'OptInPhoneNumber' => [ 'name' => 'OptInPhoneNumber', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'OptInPhoneNumberInput', ], 'output' => [ 'shape' => 'OptInPhoneNumberResponse', 'resultWrapper' => 'OptInPhoneNumberResult', ], 'errors' => [ [ 'shape' => 'ThrottledException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'Publish' => [ 'name' => 'Publish', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PublishInput', ], 'output' => [ 'shape' => 'PublishResponse', 'resultWrapper' => 'PublishResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'EndpointDisabledException', ], [ 'shape' => 'PlatformApplicationDisabledException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'KMSDisabledException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'KMSNotFoundException', ], [ 'shape' => 'KMSOptInRequired', ], [ 'shape' => 'KMSThrottlingException', ], [ 'shape' => 'KMSAccessDeniedException', ], [ 'shape' => 'InvalidSecurityException', ], ], ], 'RemovePermission' => [ 'name' => 'RemovePermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemovePermissionInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'NotFoundException', ], ], ], 'SetEndpointAttributes' => [ 'name' => 'SetEndpointAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetEndpointAttributesInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'NotFoundException', ], ], ], 'SetPlatformApplicationAttributes' => [ 'name' => 'SetPlatformApplicationAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetPlatformApplicationAttributesInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'NotFoundException', ], ], ], 'SetSMSAttributes' => [ 'name' => 'SetSMSAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetSMSAttributesInput', ], 'output' => [ 'shape' => 'SetSMSAttributesResponse', 'resultWrapper' => 'SetSMSAttributesResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ThrottledException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'SetSubscriptionAttributes' => [ 'name' => 'SetSubscriptionAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetSubscriptionAttributesInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'FilterPolicyLimitExceededException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'SetTopicAttributes' => [ 'name' => 'SetTopicAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetTopicAttributesInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidSecurityException', ], ], ], 'Subscribe' => [ 'name' => 'Subscribe', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SubscribeInput', ], 'output' => [ 'shape' => 'SubscribeResponse', 'resultWrapper' => 'SubscribeResult', ], 'errors' => [ [ 'shape' => 'SubscriptionLimitExceededException', ], [ 'shape' => 'FilterPolicyLimitExceededException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidSecurityException', ], ], ], 'Unsubscribe' => [ 'name' => 'Unsubscribe', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnsubscribeInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidSecurityException', ], ], ], ], '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', ], 'CheckIfPhoneNumberIsOptedOutInput' => [ 'type' => 'structure', 'required' => [ 'phoneNumber', ], 'members' => [ 'phoneNumber' => [ 'shape' => 'PhoneNumber', ], ], ], 'CheckIfPhoneNumberIsOptedOutResponse' => [ 'type' => 'structure', 'members' => [ 'isOptedOut' => [ 'shape' => 'boolean', ], ], ], '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', ], 'Attributes' => [ 'shape' => 'TopicAttributesMap', ], ], ], '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, ], 'FilterPolicyLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'FilterPolicyLimitExceeded', 'httpStatusCode' => 403, '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', ], ], ], 'GetSMSAttributesInput' => [ 'type' => 'structure', 'members' => [ 'attributes' => [ 'shape' => 'ListString', ], ], ], 'GetSMSAttributesResponse' => [ '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, ], 'InvalidSecurityException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'InvalidSecurity', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'KMSAccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'KMSAccessDenied', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'KMSDisabledException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'KMSDisabled', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'KMSInvalidStateException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'KMSInvalidState', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'KMSNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'KMSNotFound', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'KMSOptInRequired' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'KMSOptInRequired', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'KMSThrottlingException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'KMSThrottling', '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', ], ], 'ListPhoneNumbersOptedOutInput' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'string', ], ], ], 'ListPhoneNumbersOptedOutResponse' => [ 'type' => 'structure', 'members' => [ 'phoneNumbers' => [ 'shape' => 'PhoneNumberList', ], 'nextToken' => [ 'shape' => 'string', ], ], ], 'ListPlatformApplicationsInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListPlatformApplicationsResponse' => [ 'type' => 'structure', 'members' => [ 'PlatformApplications' => [ 'shape' => 'ListOfPlatformApplications', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListString' => [ 'type' => 'list', 'member' => [ '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, ], 'OptInPhoneNumberInput' => [ 'type' => 'structure', 'required' => [ 'phoneNumber', ], 'members' => [ 'phoneNumber' => [ 'shape' => 'PhoneNumber', ], ], ], 'OptInPhoneNumberResponse' => [ 'type' => 'structure', 'members' => [], ], 'PhoneNumber' => [ 'type' => 'string', ], 'PhoneNumberList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PhoneNumber', ], ], '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', ], 'PhoneNumber' => [ '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', ], ], ], 'SetSMSAttributesInput' => [ 'type' => 'structure', 'required' => [ 'attributes', ], 'members' => [ 'attributes' => [ 'shape' => 'MapStringToString', ], ], ], 'SetSMSAttributesResponse' => [ 'type' => 'structure', 'members' => [], ], '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', ], 'Attributes' => [ 'shape' => 'SubscriptionAttributesMap', ], 'ReturnSubscriptionArn' => [ 'shape' => 'boolean', ], ], ], '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', ], ], 'ThrottledException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'Throttled', 'httpStatusCode' => 429, 'senderFault' => true, ], 'exception' => true, ], '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', ], 'boolean' => [ 'type' => 'boolean', ], '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/Aws/data/sns/2010-03-31/paginators-1.json.php b/lib/aws/Aws/data/sns/2010-03-31/paginators-1.json.php new file mode 100644 index 0000000..e38c6a1 --- /dev/null +++ b/lib/aws/Aws/data/sns/2010-03-31/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/sns/2010-03-31/paginators-1.json +return [ '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/Aws/data/sns/2010-03-31/smoke.json.php b/lib/aws/Aws/data/sns/2010-03-31/smoke.json.php new file mode 100644 index 0000000..789d757 --- /dev/null +++ b/lib/aws/Aws/data/sns/2010-03-31/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/sns/2010-03-31/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListTopics', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'Publish', 'input' => [ 'Message' => 'hello', 'TopicArn' => 'fake_topic', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/sqs/2012-11-05/api-2.json.php b/lib/aws/Aws/data/sqs/2012-11-05/api-2.json.php new file mode 100644 index 0000000..283a079 --- /dev/null +++ b/lib/aws/Aws/data/sqs/2012-11-05/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/sqs/2012-11-05/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2012-11-05', 'endpointPrefix' => 'sqs', 'protocol' => 'query', 'serviceAbbreviation' => 'Amazon SQS', 'serviceFullName' => 'Amazon Simple Queue Service', 'serviceId' => 'SQS', 'signatureVersion' => 'v4', 'uid' => 'sqs-2012-11-05', 'xmlNamespace' => 'http://queue.amazonaws.com/doc/2012-11-05/', ], 'operations' => [ 'AddPermission' => [ 'name' => 'AddPermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddPermissionRequest', ], 'errors' => [ [ 'shape' => 'OverLimit', ], ], ], 'ChangeMessageVisibility' => [ 'name' => 'ChangeMessageVisibility', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ChangeMessageVisibilityRequest', ], 'errors' => [ [ 'shape' => 'MessageNotInflight', ], [ 'shape' => 'ReceiptHandleIsInvalid', ], ], ], 'ChangeMessageVisibilityBatch' => [ 'name' => 'ChangeMessageVisibilityBatch', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ChangeMessageVisibilityBatchRequest', ], 'output' => [ 'shape' => 'ChangeMessageVisibilityBatchResult', 'resultWrapper' => 'ChangeMessageVisibilityBatchResult', ], 'errors' => [ [ 'shape' => 'TooManyEntriesInBatchRequest', ], [ 'shape' => 'EmptyBatchRequest', ], [ 'shape' => 'BatchEntryIdsNotDistinct', ], [ 'shape' => 'InvalidBatchEntryId', ], ], ], 'CreateQueue' => [ 'name' => 'CreateQueue', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateQueueRequest', ], 'output' => [ 'shape' => 'CreateQueueResult', 'resultWrapper' => 'CreateQueueResult', ], 'errors' => [ [ 'shape' => 'QueueDeletedRecently', ], [ 'shape' => 'QueueNameExists', ], ], ], 'DeleteMessage' => [ 'name' => 'DeleteMessage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteMessageRequest', ], 'errors' => [ [ 'shape' => 'InvalidIdFormat', ], [ 'shape' => 'ReceiptHandleIsInvalid', ], ], ], 'DeleteMessageBatch' => [ 'name' => 'DeleteMessageBatch', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteMessageBatchRequest', ], 'output' => [ 'shape' => 'DeleteMessageBatchResult', 'resultWrapper' => 'DeleteMessageBatchResult', ], 'errors' => [ [ 'shape' => 'TooManyEntriesInBatchRequest', ], [ 'shape' => 'EmptyBatchRequest', ], [ 'shape' => 'BatchEntryIdsNotDistinct', ], [ 'shape' => 'InvalidBatchEntryId', ], ], ], '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', ], ], ], 'GetQueueUrl' => [ 'name' => 'GetQueueUrl', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetQueueUrlRequest', ], 'output' => [ 'shape' => 'GetQueueUrlResult', 'resultWrapper' => 'GetQueueUrlResult', ], 'errors' => [ [ 'shape' => 'QueueDoesNotExist', ], ], ], 'ListDeadLetterSourceQueues' => [ 'name' => 'ListDeadLetterSourceQueues', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDeadLetterSourceQueuesRequest', ], 'output' => [ 'shape' => 'ListDeadLetterSourceQueuesResult', 'resultWrapper' => 'ListDeadLetterSourceQueuesResult', ], 'errors' => [ [ 'shape' => 'QueueDoesNotExist', ], ], ], 'ListQueueTags' => [ 'name' => 'ListQueueTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListQueueTagsRequest', ], 'output' => [ 'shape' => 'ListQueueTagsResult', 'resultWrapper' => 'ListQueueTagsResult', ], ], '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', ], [ 'shape' => 'PurgeQueueInProgress', ], ], ], 'ReceiveMessage' => [ 'name' => 'ReceiveMessage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReceiveMessageRequest', ], 'output' => [ 'shape' => 'ReceiveMessageResult', 'resultWrapper' => 'ReceiveMessageResult', ], 'errors' => [ [ 'shape' => 'OverLimit', ], ], ], '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', ], [ 'shape' => 'UnsupportedOperation', ], ], ], 'SendMessageBatch' => [ 'name' => 'SendMessageBatch', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SendMessageBatchRequest', ], 'output' => [ 'shape' => 'SendMessageBatchResult', 'resultWrapper' => 'SendMessageBatchResult', ], 'errors' => [ [ 'shape' => 'TooManyEntriesInBatchRequest', ], [ 'shape' => 'EmptyBatchRequest', ], [ 'shape' => 'BatchEntryIdsNotDistinct', ], [ 'shape' => 'BatchRequestTooLong', ], [ 'shape' => 'InvalidBatchEntryId', ], [ 'shape' => 'UnsupportedOperation', ], ], ], 'SetQueueAttributes' => [ 'name' => 'SetQueueAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetQueueAttributesRequest', ], 'errors' => [ [ 'shape' => 'InvalidAttributeName', ], ], ], 'TagQueue' => [ 'name' => 'TagQueue', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagQueueRequest', ], ], 'UntagQueue' => [ 'name' => 'UntagQueue', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagQueueRequest', ], ], ], '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', ], ], ], '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' => 'QueueAttributeMap', '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' => 'QueueAttributeMap', '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', ], ], ], 'ListQueueTagsRequest' => [ 'type' => 'structure', 'required' => [ 'QueueUrl', ], 'members' => [ 'QueueUrl' => [ 'shape' => 'String', ], ], ], 'ListQueueTagsResult' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagMap', 'locationName' => 'Tag', ], ], ], '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' => 'MessageSystemAttributeMap', 'locationName' => 'Attribute', ], 'MD5OfMessageAttributes' => [ 'shape' => 'String', ], 'MessageAttributes' => [ 'shape' => 'MessageBodyAttributeMap', 'locationName' => 'MessageAttribute', ], ], ], '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', ], ], ], 'MessageBodyAttributeMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', 'locationName' => 'Name', ], 'value' => [ 'shape' => 'MessageAttributeValue', 'locationName' => 'Value', ], 'flattened' => true, ], '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, ], 'MessageSystemAttributeMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'MessageSystemAttributeName', 'locationName' => 'Name', ], 'value' => [ 'shape' => 'String', 'locationName' => 'Value', ], 'flattened' => true, 'locationName' => 'Attribute', ], 'MessageSystemAttributeName' => [ 'type' => 'string', 'enum' => [ 'SenderId', 'SentTimestamp', 'ApproximateReceiveCount', 'ApproximateFirstReceiveTimestamp', 'SequenceNumber', 'MessageDeduplicationId', 'MessageGroupId', ], ], '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', ], ], ], 'QueueAttributeMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'QueueAttributeName', 'locationName' => 'Name', ], 'value' => [ 'shape' => 'String', 'locationName' => 'Value', ], 'flattened' => true, 'locationName' => 'Attribute', ], 'QueueAttributeName' => [ 'type' => 'string', 'enum' => [ 'All', 'Policy', 'VisibilityTimeout', 'MaximumMessageSize', 'MessageRetentionPeriod', 'ApproximateNumberOfMessages', 'ApproximateNumberOfMessagesNotVisible', 'CreatedTimestamp', 'LastModifiedTimestamp', 'QueueArn', 'ApproximateNumberOfMessagesDelayed', 'DelaySeconds', 'ReceiveMessageWaitTimeSeconds', 'RedrivePolicy', 'FifoQueue', 'ContentBasedDeduplication', 'KmsMasterKeyId', 'KmsDataKeyReusePeriodSeconds', ], ], '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', ], 'ReceiveRequestAttemptId' => [ 'shape' => 'String', ], ], ], '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' => 'MessageBodyAttributeMap', 'locationName' => 'MessageAttribute', ], 'MessageDeduplicationId' => [ 'shape' => 'String', ], 'MessageGroupId' => [ 'shape' => 'String', ], ], ], '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', ], 'SequenceNumber' => [ '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' => 'MessageBodyAttributeMap', 'locationName' => 'MessageAttribute', ], 'MessageDeduplicationId' => [ 'shape' => 'String', ], 'MessageGroupId' => [ 'shape' => 'String', ], ], ], 'SendMessageResult' => [ 'type' => 'structure', 'members' => [ 'MD5OfMessageBody' => [ 'shape' => 'String', ], 'MD5OfMessageAttributes' => [ 'shape' => 'String', ], 'MessageId' => [ 'shape' => 'String', ], 'SequenceNumber' => [ 'shape' => 'String', ], ], ], 'SetQueueAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'QueueUrl', 'Attributes', ], 'members' => [ 'QueueUrl' => [ 'shape' => 'String', ], 'Attributes' => [ 'shape' => 'QueueAttributeMap', 'locationName' => 'Attribute', ], ], ], 'String' => [ 'type' => 'string', ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'StringListValue', ], ], 'TagKey' => [ 'type' => 'string', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', 'locationName' => 'TagKey', ], 'flattened' => true, ], 'TagMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', 'locationName' => 'Key', ], 'value' => [ 'shape' => 'TagValue', 'locationName' => 'Value', ], 'flattened' => true, 'locationName' => 'Tag', ], 'TagQueueRequest' => [ 'type' => 'structure', 'required' => [ 'QueueUrl', 'Tags', ], 'members' => [ 'QueueUrl' => [ 'shape' => 'String', ], 'Tags' => [ 'shape' => 'TagMap', ], ], ], 'TagValue' => [ 'type' => 'string', ], '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, ], 'UntagQueueRequest' => [ 'type' => 'structure', 'required' => [ 'QueueUrl', 'TagKeys', ], 'members' => [ 'QueueUrl' => [ 'shape' => 'String', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], ],]; diff --git a/lib/aws/Aws/data/sqs/2012-11-05/paginators-1.json.php b/lib/aws/Aws/data/sqs/2012-11-05/paginators-1.json.php new file mode 100644 index 0000000..b1613b6 --- /dev/null +++ b/lib/aws/Aws/data/sqs/2012-11-05/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/sqs/2012-11-05/paginators-1.json +return [ 'pagination' => [ 'ListQueues' => [ 'result_key' => 'QueueUrls', ], ],]; diff --git a/lib/aws/Aws/data/sqs/2012-11-05/smoke.json.php b/lib/aws/Aws/data/sqs/2012-11-05/smoke.json.php new file mode 100644 index 0000000..a1822ce --- /dev/null +++ b/lib/aws/Aws/data/sqs/2012-11-05/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/sqs/2012-11-05/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListQueues', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'GetQueueUrl', 'input' => [ 'QueueName' => 'fake_queue', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/sqs/2012-11-05/waiters-2.json.php b/lib/aws/Aws/data/sqs/2012-11-05/waiters-2.json.php new file mode 100644 index 0000000..ca81598 --- /dev/null +++ b/lib/aws/Aws/data/sqs/2012-11-05/waiters-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/sqs/2012-11-05/waiters-2.json +return [ 'version' => 2, 'waiters' => [ 'QueueExists' => [ 'acceptors' => [ [ 'expected' => 200, 'matcher' => 'status', 'state' => 'success', ], [ 'expected' => 'QueueDoesNotExist', 'matcher' => 'error', 'state' => 'retry', ], ], 'delay' => 5, 'maxAttempts' => 40, 'operation' => 'GetQueueUrl', ], ],]; diff --git a/lib/aws/Aws/data/ssm/2014-11-06/api-2.json.php b/lib/aws/Aws/data/ssm/2014-11-06/api-2.json.php new file mode 100644 index 0000000..38d55ec --- /dev/null +++ b/lib/aws/Aws/data/ssm/2014-11-06/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ssm/2014-11-06/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2014-11-06', 'endpointPrefix' => 'ssm', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'Amazon SSM', 'serviceFullName' => 'Amazon Simple Systems Manager (SSM)', 'serviceId' => 'SSM', 'signatureVersion' => 'v4', 'targetPrefix' => 'AmazonSSM', 'uid' => 'ssm-2014-11-06', ], 'operations' => [ 'AddTagsToResource' => [ 'name' => 'AddTagsToResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddTagsToResourceRequest', ], 'output' => [ 'shape' => 'AddTagsToResourceResult', ], 'errors' => [ [ 'shape' => 'InvalidResourceType', ], [ 'shape' => 'InvalidResourceId', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'TooManyTagsError', ], [ 'shape' => 'TooManyUpdates', ], ], ], 'CancelCommand' => [ 'name' => 'CancelCommand', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelCommandRequest', ], 'output' => [ 'shape' => 'CancelCommandResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidCommandId', ], [ 'shape' => 'InvalidInstanceId', ], [ 'shape' => 'DuplicateInstanceId', ], ], ], 'CancelMaintenanceWindowExecution' => [ 'name' => 'CancelMaintenanceWindowExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelMaintenanceWindowExecutionRequest', ], 'output' => [ 'shape' => 'CancelMaintenanceWindowExecutionResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'DoesNotExistException', ], ], ], 'CreateActivation' => [ 'name' => 'CreateActivation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateActivationRequest', ], 'output' => [ 'shape' => 'CreateActivationResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'CreateAssociation' => [ 'name' => 'CreateAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAssociationRequest', ], 'output' => [ 'shape' => 'CreateAssociationResult', ], 'errors' => [ [ 'shape' => 'AssociationAlreadyExists', ], [ 'shape' => 'AssociationLimitExceeded', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidDocument', ], [ 'shape' => 'InvalidDocumentVersion', ], [ 'shape' => 'InvalidInstanceId', ], [ 'shape' => 'UnsupportedPlatformType', ], [ 'shape' => 'InvalidOutputLocation', ], [ 'shape' => 'InvalidParameters', ], [ 'shape' => 'InvalidTarget', ], [ 'shape' => 'InvalidSchedule', ], ], ], 'CreateAssociationBatch' => [ 'name' => 'CreateAssociationBatch', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAssociationBatchRequest', ], 'output' => [ 'shape' => 'CreateAssociationBatchResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidDocument', ], [ 'shape' => 'InvalidDocumentVersion', ], [ 'shape' => 'InvalidInstanceId', ], [ 'shape' => 'InvalidParameters', ], [ 'shape' => 'DuplicateInstanceId', ], [ 'shape' => 'AssociationLimitExceeded', ], [ 'shape' => 'UnsupportedPlatformType', ], [ 'shape' => 'InvalidOutputLocation', ], [ 'shape' => 'InvalidTarget', ], [ 'shape' => 'InvalidSchedule', ], ], ], 'CreateDocument' => [ 'name' => 'CreateDocument', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDocumentRequest', ], 'output' => [ 'shape' => 'CreateDocumentResult', ], 'errors' => [ [ 'shape' => 'DocumentAlreadyExists', ], [ 'shape' => 'MaxDocumentSizeExceeded', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidDocumentContent', ], [ 'shape' => 'DocumentLimitExceeded', ], [ 'shape' => 'InvalidDocumentSchemaVersion', ], ], ], 'CreateMaintenanceWindow' => [ 'name' => 'CreateMaintenanceWindow', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateMaintenanceWindowRequest', ], 'output' => [ 'shape' => 'CreateMaintenanceWindowResult', ], 'errors' => [ [ 'shape' => 'IdempotentParameterMismatch', ], [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'InternalServerError', ], ], ], 'CreatePatchBaseline' => [ 'name' => 'CreatePatchBaseline', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePatchBaselineRequest', ], 'output' => [ 'shape' => 'CreatePatchBaselineResult', ], 'errors' => [ [ 'shape' => 'IdempotentParameterMismatch', ], [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'InternalServerError', ], ], ], 'CreateResourceDataSync' => [ 'name' => 'CreateResourceDataSync', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateResourceDataSyncRequest', ], 'output' => [ 'shape' => 'CreateResourceDataSyncResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ResourceDataSyncCountExceededException', ], [ 'shape' => 'ResourceDataSyncAlreadyExistsException', ], [ 'shape' => 'ResourceDataSyncInvalidConfigurationException', ], ], ], 'DeleteActivation' => [ 'name' => 'DeleteActivation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteActivationRequest', ], 'output' => [ 'shape' => 'DeleteActivationResult', ], 'errors' => [ [ 'shape' => 'InvalidActivationId', ], [ 'shape' => 'InvalidActivation', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'TooManyUpdates', ], ], ], 'DeleteAssociation' => [ 'name' => 'DeleteAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAssociationRequest', ], 'output' => [ 'shape' => 'DeleteAssociationResult', ], 'errors' => [ [ 'shape' => 'AssociationDoesNotExist', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidDocument', ], [ 'shape' => 'InvalidInstanceId', ], [ 'shape' => 'TooManyUpdates', ], ], ], 'DeleteDocument' => [ 'name' => 'DeleteDocument', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDocumentRequest', ], 'output' => [ 'shape' => 'DeleteDocumentResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidDocument', ], [ 'shape' => 'InvalidDocumentOperation', ], [ 'shape' => 'AssociatedInstances', ], ], ], 'DeleteInventory' => [ 'name' => 'DeleteInventory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteInventoryRequest', ], 'output' => [ 'shape' => 'DeleteInventoryResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidTypeNameException', ], [ 'shape' => 'InvalidOptionException', ], [ 'shape' => 'InvalidDeleteInventoryParametersException', ], [ 'shape' => 'InvalidInventoryRequestException', ], ], ], 'DeleteMaintenanceWindow' => [ 'name' => 'DeleteMaintenanceWindow', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteMaintenanceWindowRequest', ], 'output' => [ 'shape' => 'DeleteMaintenanceWindowResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'DeleteParameter' => [ 'name' => 'DeleteParameter', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteParameterRequest', ], 'output' => [ 'shape' => 'DeleteParameterResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ParameterNotFound', ], ], ], 'DeleteParameters' => [ 'name' => 'DeleteParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteParametersRequest', ], 'output' => [ 'shape' => 'DeleteParametersResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'DeletePatchBaseline' => [ 'name' => 'DeletePatchBaseline', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePatchBaselineRequest', ], 'output' => [ 'shape' => 'DeletePatchBaselineResult', ], 'errors' => [ [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DeleteResourceDataSync' => [ 'name' => 'DeleteResourceDataSync', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteResourceDataSyncRequest', ], 'output' => [ 'shape' => 'DeleteResourceDataSyncResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ResourceDataSyncNotFoundException', ], ], ], 'DeregisterManagedInstance' => [ 'name' => 'DeregisterManagedInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterManagedInstanceRequest', ], 'output' => [ 'shape' => 'DeregisterManagedInstanceResult', ], 'errors' => [ [ 'shape' => 'InvalidInstanceId', ], [ 'shape' => 'InternalServerError', ], ], ], 'DeregisterPatchBaselineForPatchGroup' => [ 'name' => 'DeregisterPatchBaselineForPatchGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterPatchBaselineForPatchGroupRequest', ], 'output' => [ 'shape' => 'DeregisterPatchBaselineForPatchGroupResult', ], 'errors' => [ [ 'shape' => 'InvalidResourceId', ], [ 'shape' => 'InternalServerError', ], ], ], 'DeregisterTargetFromMaintenanceWindow' => [ 'name' => 'DeregisterTargetFromMaintenanceWindow', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterTargetFromMaintenanceWindowRequest', ], 'output' => [ 'shape' => 'DeregisterTargetFromMaintenanceWindowResult', ], 'errors' => [ [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'TargetInUseException', ], ], ], 'DeregisterTaskFromMaintenanceWindow' => [ 'name' => 'DeregisterTaskFromMaintenanceWindow', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterTaskFromMaintenanceWindowRequest', ], 'output' => [ 'shape' => 'DeregisterTaskFromMaintenanceWindowResult', ], 'errors' => [ [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeActivations' => [ 'name' => 'DescribeActivations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeActivationsRequest', ], 'output' => [ 'shape' => 'DescribeActivationsResult', ], 'errors' => [ [ 'shape' => 'InvalidFilter', ], [ 'shape' => 'InvalidNextToken', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeAssociation' => [ 'name' => 'DescribeAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAssociationRequest', ], 'output' => [ 'shape' => 'DescribeAssociationResult', ], 'errors' => [ [ 'shape' => 'AssociationDoesNotExist', ], [ 'shape' => 'InvalidAssociationVersion', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidDocument', ], [ 'shape' => 'InvalidInstanceId', ], ], ], 'DescribeAssociationExecutionTargets' => [ 'name' => 'DescribeAssociationExecutionTargets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAssociationExecutionTargetsRequest', ], 'output' => [ 'shape' => 'DescribeAssociationExecutionTargetsResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'AssociationDoesNotExist', ], [ 'shape' => 'InvalidNextToken', ], [ 'shape' => 'AssociationExecutionDoesNotExist', ], ], ], 'DescribeAssociationExecutions' => [ 'name' => 'DescribeAssociationExecutions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAssociationExecutionsRequest', ], 'output' => [ 'shape' => 'DescribeAssociationExecutionsResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'AssociationDoesNotExist', ], [ 'shape' => 'InvalidNextToken', ], ], ], 'DescribeAutomationExecutions' => [ 'name' => 'DescribeAutomationExecutions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAutomationExecutionsRequest', ], 'output' => [ 'shape' => 'DescribeAutomationExecutionsResult', ], 'errors' => [ [ 'shape' => 'InvalidFilterKey', ], [ 'shape' => 'InvalidFilterValue', ], [ 'shape' => 'InvalidNextToken', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeAutomationStepExecutions' => [ 'name' => 'DescribeAutomationStepExecutions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAutomationStepExecutionsRequest', ], 'output' => [ 'shape' => 'DescribeAutomationStepExecutionsResult', ], 'errors' => [ [ 'shape' => 'AutomationExecutionNotFoundException', ], [ 'shape' => 'InvalidNextToken', ], [ 'shape' => 'InvalidFilterKey', ], [ 'shape' => 'InvalidFilterValue', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeAvailablePatches' => [ 'name' => 'DescribeAvailablePatches', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAvailablePatchesRequest', ], 'output' => [ 'shape' => 'DescribeAvailablePatchesResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'DescribeDocument' => [ 'name' => 'DescribeDocument', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDocumentRequest', ], 'output' => [ 'shape' => 'DescribeDocumentResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidDocument', ], [ 'shape' => 'InvalidDocumentVersion', ], ], ], 'DescribeDocumentPermission' => [ 'name' => 'DescribeDocumentPermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDocumentPermissionRequest', ], 'output' => [ 'shape' => 'DescribeDocumentPermissionResponse', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidDocument', ], [ 'shape' => 'InvalidPermissionType', ], ], ], 'DescribeEffectiveInstanceAssociations' => [ 'name' => 'DescribeEffectiveInstanceAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEffectiveInstanceAssociationsRequest', ], 'output' => [ 'shape' => 'DescribeEffectiveInstanceAssociationsResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidInstanceId', ], [ 'shape' => 'InvalidNextToken', ], ], ], 'DescribeEffectivePatchesForPatchBaseline' => [ 'name' => 'DescribeEffectivePatchesForPatchBaseline', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEffectivePatchesForPatchBaselineRequest', ], 'output' => [ 'shape' => 'DescribeEffectivePatchesForPatchBaselineResult', ], 'errors' => [ [ 'shape' => 'InvalidResourceId', ], [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'UnsupportedOperatingSystem', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeInstanceAssociationsStatus' => [ 'name' => 'DescribeInstanceAssociationsStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceAssociationsStatusRequest', ], 'output' => [ 'shape' => 'DescribeInstanceAssociationsStatusResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidInstanceId', ], [ 'shape' => 'InvalidNextToken', ], ], ], 'DescribeInstanceInformation' => [ 'name' => 'DescribeInstanceInformation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceInformationRequest', ], 'output' => [ 'shape' => 'DescribeInstanceInformationResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidInstanceId', ], [ 'shape' => 'InvalidNextToken', ], [ 'shape' => 'InvalidInstanceInformationFilterValue', ], [ 'shape' => 'InvalidFilterKey', ], ], ], 'DescribeInstancePatchStates' => [ 'name' => 'DescribeInstancePatchStates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstancePatchStatesRequest', ], 'output' => [ 'shape' => 'DescribeInstancePatchStatesResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidNextToken', ], ], ], 'DescribeInstancePatchStatesForPatchGroup' => [ 'name' => 'DescribeInstancePatchStatesForPatchGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstancePatchStatesForPatchGroupRequest', ], 'output' => [ 'shape' => 'DescribeInstancePatchStatesForPatchGroupResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidFilter', ], [ 'shape' => 'InvalidNextToken', ], ], ], 'DescribeInstancePatches' => [ 'name' => 'DescribeInstancePatches', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstancePatchesRequest', ], 'output' => [ 'shape' => 'DescribeInstancePatchesResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidInstanceId', ], [ 'shape' => 'InvalidFilter', ], [ 'shape' => 'InvalidNextToken', ], ], ], 'DescribeInventoryDeletions' => [ 'name' => 'DescribeInventoryDeletions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInventoryDeletionsRequest', ], 'output' => [ 'shape' => 'DescribeInventoryDeletionsResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidDeletionIdException', ], [ 'shape' => 'InvalidNextToken', ], ], ], 'DescribeMaintenanceWindowExecutionTaskInvocations' => [ 'name' => 'DescribeMaintenanceWindowExecutionTaskInvocations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMaintenanceWindowExecutionTaskInvocationsRequest', ], 'output' => [ 'shape' => 'DescribeMaintenanceWindowExecutionTaskInvocationsResult', ], 'errors' => [ [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeMaintenanceWindowExecutionTasks' => [ 'name' => 'DescribeMaintenanceWindowExecutionTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMaintenanceWindowExecutionTasksRequest', ], 'output' => [ 'shape' => 'DescribeMaintenanceWindowExecutionTasksResult', ], 'errors' => [ [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeMaintenanceWindowExecutions' => [ 'name' => 'DescribeMaintenanceWindowExecutions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMaintenanceWindowExecutionsRequest', ], 'output' => [ 'shape' => 'DescribeMaintenanceWindowExecutionsResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'DescribeMaintenanceWindowSchedule' => [ 'name' => 'DescribeMaintenanceWindowSchedule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMaintenanceWindowScheduleRequest', ], 'output' => [ 'shape' => 'DescribeMaintenanceWindowScheduleResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'DoesNotExistException', ], ], ], 'DescribeMaintenanceWindowTargets' => [ 'name' => 'DescribeMaintenanceWindowTargets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMaintenanceWindowTargetsRequest', ], 'output' => [ 'shape' => 'DescribeMaintenanceWindowTargetsResult', ], 'errors' => [ [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeMaintenanceWindowTasks' => [ 'name' => 'DescribeMaintenanceWindowTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMaintenanceWindowTasksRequest', ], 'output' => [ 'shape' => 'DescribeMaintenanceWindowTasksResult', ], 'errors' => [ [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeMaintenanceWindows' => [ 'name' => 'DescribeMaintenanceWindows', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMaintenanceWindowsRequest', ], 'output' => [ 'shape' => 'DescribeMaintenanceWindowsResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'DescribeMaintenanceWindowsForTarget' => [ 'name' => 'DescribeMaintenanceWindowsForTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMaintenanceWindowsForTargetRequest', ], 'output' => [ 'shape' => 'DescribeMaintenanceWindowsForTargetResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'DescribeParameters' => [ 'name' => 'DescribeParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeParametersRequest', ], 'output' => [ 'shape' => 'DescribeParametersResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidFilterKey', ], [ 'shape' => 'InvalidFilterOption', ], [ 'shape' => 'InvalidFilterValue', ], [ 'shape' => 'InvalidNextToken', ], ], ], 'DescribePatchBaselines' => [ 'name' => 'DescribePatchBaselines', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePatchBaselinesRequest', ], 'output' => [ 'shape' => 'DescribePatchBaselinesResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'DescribePatchGroupState' => [ 'name' => 'DescribePatchGroupState', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePatchGroupStateRequest', ], 'output' => [ 'shape' => 'DescribePatchGroupStateResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidNextToken', ], ], ], 'DescribePatchGroups' => [ 'name' => 'DescribePatchGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePatchGroupsRequest', ], 'output' => [ 'shape' => 'DescribePatchGroupsResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'DescribeSessions' => [ 'name' => 'DescribeSessions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSessionsRequest', ], 'output' => [ 'shape' => 'DescribeSessionsResponse', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidFilterKey', ], [ 'shape' => 'InvalidNextToken', ], ], ], 'GetAutomationExecution' => [ 'name' => 'GetAutomationExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAutomationExecutionRequest', ], 'output' => [ 'shape' => 'GetAutomationExecutionResult', ], 'errors' => [ [ 'shape' => 'AutomationExecutionNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], 'GetCommandInvocation' => [ 'name' => 'GetCommandInvocation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCommandInvocationRequest', ], 'output' => [ 'shape' => 'GetCommandInvocationResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidCommandId', ], [ 'shape' => 'InvalidInstanceId', ], [ 'shape' => 'InvalidPluginName', ], [ 'shape' => 'InvocationDoesNotExist', ], ], ], 'GetConnectionStatus' => [ 'name' => 'GetConnectionStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetConnectionStatusRequest', ], 'output' => [ 'shape' => 'GetConnectionStatusResponse', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'GetDefaultPatchBaseline' => [ 'name' => 'GetDefaultPatchBaseline', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDefaultPatchBaselineRequest', ], 'output' => [ 'shape' => 'GetDefaultPatchBaselineResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'GetDeployablePatchSnapshotForInstance' => [ 'name' => 'GetDeployablePatchSnapshotForInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDeployablePatchSnapshotForInstanceRequest', ], 'output' => [ 'shape' => 'GetDeployablePatchSnapshotForInstanceResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'UnsupportedOperatingSystem', ], ], ], 'GetDocument' => [ 'name' => 'GetDocument', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDocumentRequest', ], 'output' => [ 'shape' => 'GetDocumentResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidDocument', ], [ 'shape' => 'InvalidDocumentVersion', ], ], ], 'GetInventory' => [ 'name' => 'GetInventory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInventoryRequest', ], 'output' => [ 'shape' => 'GetInventoryResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidFilter', ], [ 'shape' => 'InvalidInventoryGroupException', ], [ 'shape' => 'InvalidNextToken', ], [ 'shape' => 'InvalidTypeNameException', ], [ 'shape' => 'InvalidAggregatorException', ], [ 'shape' => 'InvalidResultAttributeException', ], ], ], 'GetInventorySchema' => [ 'name' => 'GetInventorySchema', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInventorySchemaRequest', ], 'output' => [ 'shape' => 'GetInventorySchemaResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidTypeNameException', ], [ 'shape' => 'InvalidNextToken', ], ], ], 'GetMaintenanceWindow' => [ 'name' => 'GetMaintenanceWindow', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetMaintenanceWindowRequest', ], 'output' => [ 'shape' => 'GetMaintenanceWindowResult', ], 'errors' => [ [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'InternalServerError', ], ], ], 'GetMaintenanceWindowExecution' => [ 'name' => 'GetMaintenanceWindowExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetMaintenanceWindowExecutionRequest', ], 'output' => [ 'shape' => 'GetMaintenanceWindowExecutionResult', ], 'errors' => [ [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'InternalServerError', ], ], ], 'GetMaintenanceWindowExecutionTask' => [ 'name' => 'GetMaintenanceWindowExecutionTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetMaintenanceWindowExecutionTaskRequest', ], 'output' => [ 'shape' => 'GetMaintenanceWindowExecutionTaskResult', ], 'errors' => [ [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'InternalServerError', ], ], ], 'GetMaintenanceWindowExecutionTaskInvocation' => [ 'name' => 'GetMaintenanceWindowExecutionTaskInvocation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetMaintenanceWindowExecutionTaskInvocationRequest', ], 'output' => [ 'shape' => 'GetMaintenanceWindowExecutionTaskInvocationResult', ], 'errors' => [ [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'InternalServerError', ], ], ], 'GetMaintenanceWindowTask' => [ 'name' => 'GetMaintenanceWindowTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetMaintenanceWindowTaskRequest', ], 'output' => [ 'shape' => 'GetMaintenanceWindowTaskResult', ], 'errors' => [ [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'InternalServerError', ], ], ], 'GetParameter' => [ 'name' => 'GetParameter', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetParameterRequest', ], 'output' => [ 'shape' => 'GetParameterResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidKeyId', ], [ 'shape' => 'ParameterNotFound', ], [ 'shape' => 'ParameterVersionNotFound', ], ], ], 'GetParameterHistory' => [ 'name' => 'GetParameterHistory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetParameterHistoryRequest', ], 'output' => [ 'shape' => 'GetParameterHistoryResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ParameterNotFound', ], [ 'shape' => 'InvalidNextToken', ], [ 'shape' => 'InvalidKeyId', ], ], ], 'GetParameters' => [ 'name' => 'GetParameters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetParametersRequest', ], 'output' => [ 'shape' => 'GetParametersResult', ], 'errors' => [ [ 'shape' => 'InvalidKeyId', ], [ 'shape' => 'InternalServerError', ], ], ], 'GetParametersByPath' => [ 'name' => 'GetParametersByPath', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetParametersByPathRequest', ], 'output' => [ 'shape' => 'GetParametersByPathResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidFilterKey', ], [ 'shape' => 'InvalidFilterOption', ], [ 'shape' => 'InvalidFilterValue', ], [ 'shape' => 'InvalidKeyId', ], [ 'shape' => 'InvalidNextToken', ], ], ], 'GetPatchBaseline' => [ 'name' => 'GetPatchBaseline', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPatchBaselineRequest', ], 'output' => [ 'shape' => 'GetPatchBaselineResult', ], 'errors' => [ [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'InvalidResourceId', ], [ 'shape' => 'InternalServerError', ], ], ], 'GetPatchBaselineForPatchGroup' => [ 'name' => 'GetPatchBaselineForPatchGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPatchBaselineForPatchGroupRequest', ], 'output' => [ 'shape' => 'GetPatchBaselineForPatchGroupResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'GetServiceSetting' => [ 'name' => 'GetServiceSetting', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetServiceSettingRequest', ], 'output' => [ 'shape' => 'GetServiceSettingResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceSettingNotFound', ], ], ], 'LabelParameterVersion' => [ 'name' => 'LabelParameterVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'LabelParameterVersionRequest', ], 'output' => [ 'shape' => 'LabelParameterVersionResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'TooManyUpdates', ], [ 'shape' => 'ParameterNotFound', ], [ 'shape' => 'ParameterVersionNotFound', ], [ 'shape' => 'ParameterVersionLabelLimitExceeded', ], ], ], 'ListAssociationVersions' => [ 'name' => 'ListAssociationVersions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAssociationVersionsRequest', ], 'output' => [ 'shape' => 'ListAssociationVersionsResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidNextToken', ], [ 'shape' => 'AssociationDoesNotExist', ], ], ], 'ListAssociations' => [ 'name' => 'ListAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAssociationsRequest', ], 'output' => [ 'shape' => 'ListAssociationsResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidNextToken', ], ], ], 'ListCommandInvocations' => [ 'name' => 'ListCommandInvocations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListCommandInvocationsRequest', ], 'output' => [ 'shape' => 'ListCommandInvocationsResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidCommandId', ], [ 'shape' => 'InvalidInstanceId', ], [ 'shape' => 'InvalidFilterKey', ], [ 'shape' => 'InvalidNextToken', ], ], ], 'ListCommands' => [ 'name' => 'ListCommands', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListCommandsRequest', ], 'output' => [ 'shape' => 'ListCommandsResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidCommandId', ], [ 'shape' => 'InvalidInstanceId', ], [ 'shape' => 'InvalidFilterKey', ], [ 'shape' => 'InvalidNextToken', ], ], ], 'ListComplianceItems' => [ 'name' => 'ListComplianceItems', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListComplianceItemsRequest', ], 'output' => [ 'shape' => 'ListComplianceItemsResult', ], 'errors' => [ [ 'shape' => 'InvalidResourceType', ], [ 'shape' => 'InvalidResourceId', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidFilter', ], [ 'shape' => 'InvalidNextToken', ], ], ], 'ListComplianceSummaries' => [ 'name' => 'ListComplianceSummaries', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListComplianceSummariesRequest', ], 'output' => [ 'shape' => 'ListComplianceSummariesResult', ], 'errors' => [ [ 'shape' => 'InvalidFilter', ], [ 'shape' => 'InvalidNextToken', ], [ 'shape' => 'InternalServerError', ], ], ], 'ListDocumentVersions' => [ 'name' => 'ListDocumentVersions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDocumentVersionsRequest', ], 'output' => [ 'shape' => 'ListDocumentVersionsResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidNextToken', ], [ 'shape' => 'InvalidDocument', ], ], ], 'ListDocuments' => [ 'name' => 'ListDocuments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDocumentsRequest', ], 'output' => [ 'shape' => 'ListDocumentsResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidNextToken', ], [ 'shape' => 'InvalidFilterKey', ], ], ], 'ListInventoryEntries' => [ 'name' => 'ListInventoryEntries', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListInventoryEntriesRequest', ], 'output' => [ 'shape' => 'ListInventoryEntriesResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidInstanceId', ], [ 'shape' => 'InvalidTypeNameException', ], [ 'shape' => 'InvalidFilter', ], [ 'shape' => 'InvalidNextToken', ], ], ], 'ListResourceComplianceSummaries' => [ 'name' => 'ListResourceComplianceSummaries', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListResourceComplianceSummariesRequest', ], 'output' => [ 'shape' => 'ListResourceComplianceSummariesResult', ], 'errors' => [ [ 'shape' => 'InvalidFilter', ], [ 'shape' => 'InvalidNextToken', ], [ 'shape' => 'InternalServerError', ], ], ], 'ListResourceDataSync' => [ 'name' => 'ListResourceDataSync', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListResourceDataSyncRequest', ], 'output' => [ 'shape' => 'ListResourceDataSyncResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidNextToken', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResult', ], 'errors' => [ [ 'shape' => 'InvalidResourceType', ], [ 'shape' => 'InvalidResourceId', ], [ 'shape' => 'InternalServerError', ], ], ], 'ModifyDocumentPermission' => [ 'name' => 'ModifyDocumentPermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDocumentPermissionRequest', ], 'output' => [ 'shape' => 'ModifyDocumentPermissionResponse', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidDocument', ], [ 'shape' => 'InvalidPermissionType', ], [ 'shape' => 'DocumentPermissionLimit', ], [ 'shape' => 'DocumentLimitExceeded', ], ], ], 'PutComplianceItems' => [ 'name' => 'PutComplianceItems', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutComplianceItemsRequest', ], 'output' => [ 'shape' => 'PutComplianceItemsResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidItemContentException', ], [ 'shape' => 'TotalSizeLimitExceededException', ], [ 'shape' => 'ItemSizeLimitExceededException', ], [ 'shape' => 'ComplianceTypeCountLimitExceededException', ], [ 'shape' => 'InvalidResourceType', ], [ 'shape' => 'InvalidResourceId', ], ], ], 'PutInventory' => [ 'name' => 'PutInventory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutInventoryRequest', ], 'output' => [ 'shape' => 'PutInventoryResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidInstanceId', ], [ 'shape' => 'InvalidTypeNameException', ], [ 'shape' => 'InvalidItemContentException', ], [ 'shape' => 'TotalSizeLimitExceededException', ], [ 'shape' => 'ItemSizeLimitExceededException', ], [ 'shape' => 'ItemContentMismatchException', ], [ 'shape' => 'CustomSchemaCountLimitExceededException', ], [ 'shape' => 'UnsupportedInventorySchemaVersionException', ], [ 'shape' => 'UnsupportedInventoryItemContextException', ], [ 'shape' => 'InvalidInventoryItemContextException', ], [ 'shape' => 'SubTypeCountLimitExceededException', ], ], ], 'PutParameter' => [ 'name' => 'PutParameter', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutParameterRequest', ], 'output' => [ 'shape' => 'PutParameterResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidKeyId', ], [ 'shape' => 'ParameterLimitExceeded', ], [ 'shape' => 'TooManyUpdates', ], [ 'shape' => 'ParameterAlreadyExists', ], [ 'shape' => 'HierarchyLevelLimitExceededException', ], [ 'shape' => 'HierarchyTypeMismatchException', ], [ 'shape' => 'InvalidAllowedPatternException', ], [ 'shape' => 'ParameterMaxVersionLimitExceeded', ], [ 'shape' => 'ParameterPatternMismatchException', ], [ 'shape' => 'UnsupportedParameterType', ], ], ], 'RegisterDefaultPatchBaseline' => [ 'name' => 'RegisterDefaultPatchBaseline', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterDefaultPatchBaselineRequest', ], 'output' => [ 'shape' => 'RegisterDefaultPatchBaselineResult', ], 'errors' => [ [ 'shape' => 'InvalidResourceId', ], [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'InternalServerError', ], ], ], 'RegisterPatchBaselineForPatchGroup' => [ 'name' => 'RegisterPatchBaselineForPatchGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterPatchBaselineForPatchGroupRequest', ], 'output' => [ 'shape' => 'RegisterPatchBaselineForPatchGroupResult', ], 'errors' => [ [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'InvalidResourceId', ], [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'InternalServerError', ], ], ], 'RegisterTargetWithMaintenanceWindow' => [ 'name' => 'RegisterTargetWithMaintenanceWindow', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterTargetWithMaintenanceWindowRequest', ], 'output' => [ 'shape' => 'RegisterTargetWithMaintenanceWindowResult', ], 'errors' => [ [ 'shape' => 'IdempotentParameterMismatch', ], [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'InternalServerError', ], ], ], 'RegisterTaskWithMaintenanceWindow' => [ 'name' => 'RegisterTaskWithMaintenanceWindow', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterTaskWithMaintenanceWindowRequest', ], 'output' => [ 'shape' => 'RegisterTaskWithMaintenanceWindowResult', ], 'errors' => [ [ 'shape' => 'IdempotentParameterMismatch', ], [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'FeatureNotAvailableException', ], [ 'shape' => 'InternalServerError', ], ], ], 'RemoveTagsFromResource' => [ 'name' => 'RemoveTagsFromResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveTagsFromResourceRequest', ], 'output' => [ 'shape' => 'RemoveTagsFromResourceResult', ], 'errors' => [ [ 'shape' => 'InvalidResourceType', ], [ 'shape' => 'InvalidResourceId', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'TooManyUpdates', ], ], ], 'ResetServiceSetting' => [ 'name' => 'ResetServiceSetting', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetServiceSettingRequest', ], 'output' => [ 'shape' => 'ResetServiceSettingResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceSettingNotFound', ], [ 'shape' => 'TooManyUpdates', ], ], ], 'ResumeSession' => [ 'name' => 'ResumeSession', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResumeSessionRequest', ], 'output' => [ 'shape' => 'ResumeSessionResponse', ], 'errors' => [ [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'InternalServerError', ], ], ], 'SendAutomationSignal' => [ 'name' => 'SendAutomationSignal', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SendAutomationSignalRequest', ], 'output' => [ 'shape' => 'SendAutomationSignalResult', ], 'errors' => [ [ 'shape' => 'AutomationExecutionNotFoundException', ], [ 'shape' => 'AutomationStepNotFoundException', ], [ 'shape' => 'InvalidAutomationSignalException', ], [ 'shape' => 'InternalServerError', ], ], ], 'SendCommand' => [ 'name' => 'SendCommand', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SendCommandRequest', ], 'output' => [ 'shape' => 'SendCommandResult', ], 'errors' => [ [ 'shape' => 'DuplicateInstanceId', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidInstanceId', ], [ 'shape' => 'InvalidDocument', ], [ 'shape' => 'InvalidDocumentVersion', ], [ 'shape' => 'InvalidOutputFolder', ], [ 'shape' => 'InvalidParameters', ], [ 'shape' => 'UnsupportedPlatformType', ], [ 'shape' => 'MaxDocumentSizeExceeded', ], [ 'shape' => 'InvalidRole', ], [ 'shape' => 'InvalidNotificationConfig', ], ], ], 'StartAssociationsOnce' => [ 'name' => 'StartAssociationsOnce', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartAssociationsOnceRequest', ], 'output' => [ 'shape' => 'StartAssociationsOnceResult', ], 'errors' => [ [ 'shape' => 'InvalidAssociation', ], [ 'shape' => 'AssociationDoesNotExist', ], ], ], 'StartAutomationExecution' => [ 'name' => 'StartAutomationExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartAutomationExecutionRequest', ], 'output' => [ 'shape' => 'StartAutomationExecutionResult', ], 'errors' => [ [ 'shape' => 'AutomationDefinitionNotFoundException', ], [ 'shape' => 'InvalidAutomationExecutionParametersException', ], [ 'shape' => 'AutomationExecutionLimitExceededException', ], [ 'shape' => 'AutomationDefinitionVersionNotFoundException', ], [ 'shape' => 'IdempotentParameterMismatch', ], [ 'shape' => 'InvalidTarget', ], [ 'shape' => 'InternalServerError', ], ], ], 'StartSession' => [ 'name' => 'StartSession', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartSessionRequest', ], 'output' => [ 'shape' => 'StartSessionResponse', ], 'errors' => [ [ 'shape' => 'InvalidDocument', ], [ 'shape' => 'TargetNotConnected', ], [ 'shape' => 'InternalServerError', ], ], ], 'StopAutomationExecution' => [ 'name' => 'StopAutomationExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopAutomationExecutionRequest', ], 'output' => [ 'shape' => 'StopAutomationExecutionResult', ], 'errors' => [ [ 'shape' => 'AutomationExecutionNotFoundException', ], [ 'shape' => 'InvalidAutomationStatusUpdateException', ], [ 'shape' => 'InternalServerError', ], ], ], 'TerminateSession' => [ 'name' => 'TerminateSession', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TerminateSessionRequest', ], 'output' => [ 'shape' => 'TerminateSessionResponse', ], 'errors' => [ [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'InternalServerError', ], ], ], 'UpdateAssociation' => [ 'name' => 'UpdateAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateAssociationRequest', ], 'output' => [ 'shape' => 'UpdateAssociationResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidSchedule', ], [ 'shape' => 'InvalidParameters', ], [ 'shape' => 'InvalidOutputLocation', ], [ 'shape' => 'InvalidDocumentVersion', ], [ 'shape' => 'AssociationDoesNotExist', ], [ 'shape' => 'InvalidUpdate', ], [ 'shape' => 'TooManyUpdates', ], [ 'shape' => 'InvalidDocument', ], [ 'shape' => 'InvalidTarget', ], [ 'shape' => 'InvalidAssociationVersion', ], [ 'shape' => 'AssociationVersionLimitExceeded', ], ], ], 'UpdateAssociationStatus' => [ 'name' => 'UpdateAssociationStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateAssociationStatusRequest', ], 'output' => [ 'shape' => 'UpdateAssociationStatusResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidInstanceId', ], [ 'shape' => 'InvalidDocument', ], [ 'shape' => 'AssociationDoesNotExist', ], [ 'shape' => 'StatusUnchanged', ], [ 'shape' => 'TooManyUpdates', ], ], ], 'UpdateDocument' => [ 'name' => 'UpdateDocument', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateDocumentRequest', ], 'output' => [ 'shape' => 'UpdateDocumentResult', ], 'errors' => [ [ 'shape' => 'MaxDocumentSizeExceeded', ], [ 'shape' => 'DocumentVersionLimitExceeded', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'DuplicateDocumentContent', ], [ 'shape' => 'DuplicateDocumentVersionName', ], [ 'shape' => 'InvalidDocumentContent', ], [ 'shape' => 'InvalidDocumentVersion', ], [ 'shape' => 'InvalidDocumentSchemaVersion', ], [ 'shape' => 'InvalidDocument', ], [ 'shape' => 'InvalidDocumentOperation', ], ], ], 'UpdateDocumentDefaultVersion' => [ 'name' => 'UpdateDocumentDefaultVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateDocumentDefaultVersionRequest', ], 'output' => [ 'shape' => 'UpdateDocumentDefaultVersionResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'InvalidDocument', ], [ 'shape' => 'InvalidDocumentVersion', ], [ 'shape' => 'InvalidDocumentSchemaVersion', ], ], ], 'UpdateMaintenanceWindow' => [ 'name' => 'UpdateMaintenanceWindow', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateMaintenanceWindowRequest', ], 'output' => [ 'shape' => 'UpdateMaintenanceWindowResult', ], 'errors' => [ [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'InternalServerError', ], ], ], 'UpdateMaintenanceWindowTarget' => [ 'name' => 'UpdateMaintenanceWindowTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateMaintenanceWindowTargetRequest', ], 'output' => [ 'shape' => 'UpdateMaintenanceWindowTargetResult', ], 'errors' => [ [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'InternalServerError', ], ], ], 'UpdateMaintenanceWindowTask' => [ 'name' => 'UpdateMaintenanceWindowTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateMaintenanceWindowTaskRequest', ], 'output' => [ 'shape' => 'UpdateMaintenanceWindowTaskResult', ], 'errors' => [ [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'InternalServerError', ], ], ], 'UpdateManagedInstanceRole' => [ 'name' => 'UpdateManagedInstanceRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateManagedInstanceRoleRequest', ], 'output' => [ 'shape' => 'UpdateManagedInstanceRoleResult', ], 'errors' => [ [ 'shape' => 'InvalidInstanceId', ], [ 'shape' => 'InternalServerError', ], ], ], 'UpdatePatchBaseline' => [ 'name' => 'UpdatePatchBaseline', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdatePatchBaselineRequest', ], 'output' => [ 'shape' => 'UpdatePatchBaselineResult', ], 'errors' => [ [ 'shape' => 'DoesNotExistException', ], [ 'shape' => 'InternalServerError', ], ], ], 'UpdateServiceSetting' => [ 'name' => 'UpdateServiceSetting', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateServiceSettingRequest', ], 'output' => [ 'shape' => 'UpdateServiceSettingResult', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceSettingNotFound', ], [ 'shape' => 'TooManyUpdates', ], ], ], ], 'shapes' => [ 'Account' => [ 'type' => 'string', ], 'AccountId' => [ 'type' => 'string', 'pattern' => '(?i)all|[0-9]{12}', ], 'AccountIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountId', ], 'max' => 20, ], 'Accounts' => [ 'type' => 'list', 'member' => [ 'shape' => 'Account', ], 'max' => 50, 'min' => 1, ], 'Activation' => [ 'type' => 'structure', 'members' => [ 'ActivationId' => [ 'shape' => 'ActivationId', ], 'Description' => [ 'shape' => 'ActivationDescription', ], 'DefaultInstanceName' => [ 'shape' => 'DefaultInstanceName', ], 'IamRole' => [ 'shape' => 'IamRole', ], 'RegistrationLimit' => [ 'shape' => 'RegistrationLimit', ], 'RegistrationsCount' => [ 'shape' => 'RegistrationsCount', ], 'ExpirationDate' => [ 'shape' => 'ExpirationDate', ], 'Expired' => [ 'shape' => 'Boolean', ], 'CreatedDate' => [ 'shape' => 'CreatedDate', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'ActivationCode' => [ 'type' => 'string', 'max' => 250, 'min' => 20, ], 'ActivationDescription' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'ActivationId' => [ 'type' => 'string', 'pattern' => '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$', ], 'ActivationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Activation', ], ], 'AddTagsToResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceType', 'ResourceId', 'Tags', ], 'members' => [ 'ResourceType' => [ 'shape' => 'ResourceTypeForTagging', ], 'ResourceId' => [ 'shape' => 'ResourceId', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'AddTagsToResourceResult' => [ 'type' => 'structure', 'members' => [], ], 'AgentErrorCode' => [ 'type' => 'string', 'max' => 10, ], 'AggregatorSchemaOnly' => [ 'type' => 'boolean', ], 'AllowedPattern' => [ 'type' => 'string', 'max' => 1024, 'min' => 0, ], 'AlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ApproveAfterDays' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'AssociatedInstances' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Association' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'DocumentARN', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'AssociationId' => [ 'shape' => 'AssociationId', ], 'AssociationVersion' => [ 'shape' => 'AssociationVersion', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'Targets' => [ 'shape' => 'Targets', ], 'LastExecutionDate' => [ 'shape' => 'DateTime', ], 'Overview' => [ 'shape' => 'AssociationOverview', ], 'ScheduleExpression' => [ 'shape' => 'ScheduleExpression', ], 'AssociationName' => [ 'shape' => 'AssociationName', ], ], ], 'AssociationAlreadyExists' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'AssociationComplianceSeverity' => [ 'type' => 'string', 'enum' => [ 'CRITICAL', 'HIGH', 'MEDIUM', 'LOW', 'UNSPECIFIED', ], ], 'AssociationDescription' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'DocumentARN', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'AssociationVersion' => [ 'shape' => 'AssociationVersion', ], 'Date' => [ 'shape' => 'DateTime', ], 'LastUpdateAssociationDate' => [ 'shape' => 'DateTime', ], 'Status' => [ 'shape' => 'AssociationStatus', ], 'Overview' => [ 'shape' => 'AssociationOverview', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'AutomationTargetParameterName' => [ 'shape' => 'AutomationTargetParameterName', ], 'Parameters' => [ 'shape' => 'Parameters', ], 'AssociationId' => [ 'shape' => 'AssociationId', ], 'Targets' => [ 'shape' => 'Targets', ], 'ScheduleExpression' => [ 'shape' => 'ScheduleExpression', ], 'OutputLocation' => [ 'shape' => 'InstanceAssociationOutputLocation', ], 'LastExecutionDate' => [ 'shape' => 'DateTime', ], 'LastSuccessfulExecutionDate' => [ 'shape' => 'DateTime', ], 'AssociationName' => [ 'shape' => 'AssociationName', ], 'MaxErrors' => [ 'shape' => 'MaxErrors', ], 'MaxConcurrency' => [ 'shape' => 'MaxConcurrency', ], 'ComplianceSeverity' => [ 'shape' => 'AssociationComplianceSeverity', ], ], ], 'AssociationDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssociationDescription', ], ], 'AssociationDoesNotExist' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'AssociationExecution' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'AssociationId', ], 'AssociationVersion' => [ 'shape' => 'AssociationVersion', ], 'ExecutionId' => [ 'shape' => 'AssociationExecutionId', ], 'Status' => [ 'shape' => 'StatusName', ], 'DetailedStatus' => [ 'shape' => 'StatusName', ], 'CreatedTime' => [ 'shape' => 'DateTime', ], 'LastExecutionDate' => [ 'shape' => 'DateTime', ], 'ResourceCountByStatus' => [ 'shape' => 'ResourceCountByStatus', ], ], ], 'AssociationExecutionDoesNotExist' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'AssociationExecutionFilter' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', 'Type', ], 'members' => [ 'Key' => [ 'shape' => 'AssociationExecutionFilterKey', ], 'Value' => [ 'shape' => 'AssociationExecutionFilterValue', ], 'Type' => [ 'shape' => 'AssociationFilterOperatorType', ], ], ], 'AssociationExecutionFilterKey' => [ 'type' => 'string', 'enum' => [ 'ExecutionId', 'Status', 'CreatedTime', ], ], 'AssociationExecutionFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssociationExecutionFilter', ], 'min' => 1, ], 'AssociationExecutionFilterValue' => [ 'type' => 'string', 'min' => 1, ], 'AssociationExecutionId' => [ '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}', ], 'AssociationExecutionTarget' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'AssociationId', ], 'AssociationVersion' => [ 'shape' => 'AssociationVersion', ], 'ExecutionId' => [ 'shape' => 'AssociationExecutionId', ], 'ResourceId' => [ 'shape' => 'AssociationResourceId', ], 'ResourceType' => [ 'shape' => 'AssociationResourceType', ], 'Status' => [ 'shape' => 'StatusName', ], 'DetailedStatus' => [ 'shape' => 'StatusName', ], 'LastExecutionDate' => [ 'shape' => 'DateTime', ], 'OutputSource' => [ 'shape' => 'OutputSource', ], ], ], 'AssociationExecutionTargetsFilter' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'AssociationExecutionTargetsFilterKey', ], 'Value' => [ 'shape' => 'AssociationExecutionTargetsFilterValue', ], ], ], 'AssociationExecutionTargetsFilterKey' => [ 'type' => 'string', 'enum' => [ 'Status', 'ResourceId', 'ResourceType', ], ], 'AssociationExecutionTargetsFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssociationExecutionTargetsFilter', ], 'min' => 1, ], 'AssociationExecutionTargetsFilterValue' => [ 'type' => 'string', 'min' => 1, ], 'AssociationExecutionTargetsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssociationExecutionTarget', ], ], 'AssociationExecutionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssociationExecution', ], ], 'AssociationFilter' => [ 'type' => 'structure', 'required' => [ 'key', 'value', ], 'members' => [ 'key' => [ 'shape' => 'AssociationFilterKey', ], 'value' => [ 'shape' => 'AssociationFilterValue', ], ], ], 'AssociationFilterKey' => [ 'type' => 'string', 'enum' => [ 'InstanceId', 'Name', 'AssociationId', 'AssociationStatusName', 'LastExecutedBefore', 'LastExecutedAfter', 'AssociationName', ], ], 'AssociationFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssociationFilter', ], 'min' => 1, ], 'AssociationFilterOperatorType' => [ 'type' => 'string', 'enum' => [ 'EQUAL', 'LESS_THAN', 'GREATER_THAN', ], ], 'AssociationFilterValue' => [ 'type' => 'string', 'min' => 1, ], 'AssociationId' => [ '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}', ], 'AssociationIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssociationId', ], 'max' => 10, 'min' => 1, ], 'AssociationLimitExceeded' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'AssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Association', ], ], 'AssociationName' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9_\\-.]{3,128}$', ], 'AssociationOverview' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'StatusName', ], 'DetailedStatus' => [ 'shape' => 'StatusName', ], 'AssociationStatusAggregatedCount' => [ 'shape' => 'AssociationStatusAggregatedCount', ], ], ], 'AssociationResourceId' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'AssociationResourceType' => [ 'type' => 'string', 'max' => 50, 'min' => 1, ], 'AssociationStatus' => [ 'type' => 'structure', 'required' => [ 'Date', 'Name', 'Message', ], 'members' => [ 'Date' => [ 'shape' => 'DateTime', ], 'Name' => [ 'shape' => 'AssociationStatusName', ], 'Message' => [ 'shape' => 'StatusMessage', ], 'AdditionalInfo' => [ 'shape' => 'StatusAdditionalInfo', ], ], ], 'AssociationStatusAggregatedCount' => [ 'type' => 'map', 'key' => [ 'shape' => 'StatusName', ], 'value' => [ 'shape' => 'InstanceCount', ], ], 'AssociationStatusName' => [ 'type' => 'string', 'enum' => [ 'Pending', 'Success', 'Failed', ], ], 'AssociationVersion' => [ 'type' => 'string', 'pattern' => '([$]LATEST)|([1-9][0-9]*)', ], 'AssociationVersionInfo' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'AssociationId', ], 'AssociationVersion' => [ 'shape' => 'AssociationVersion', ], 'CreatedDate' => [ 'shape' => 'DateTime', ], 'Name' => [ 'shape' => 'DocumentARN', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'Parameters' => [ 'shape' => 'Parameters', ], 'Targets' => [ 'shape' => 'Targets', ], 'ScheduleExpression' => [ 'shape' => 'ScheduleExpression', ], 'OutputLocation' => [ 'shape' => 'InstanceAssociationOutputLocation', ], 'AssociationName' => [ 'shape' => 'AssociationName', ], 'MaxErrors' => [ 'shape' => 'MaxErrors', ], 'MaxConcurrency' => [ 'shape' => 'MaxConcurrency', ], 'ComplianceSeverity' => [ 'shape' => 'AssociationComplianceSeverity', ], ], ], 'AssociationVersionLimitExceeded' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'AssociationVersionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssociationVersionInfo', ], 'min' => 1, ], 'AttachmentContent' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'AttachmentName', ], 'Size' => [ 'shape' => 'ContentLength', ], 'Hash' => [ 'shape' => 'AttachmentHash', ], 'HashType' => [ 'shape' => 'AttachmentHashType', ], 'Url' => [ 'shape' => 'AttachmentUrl', ], ], ], 'AttachmentContentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttachmentContent', ], ], 'AttachmentHash' => [ 'type' => 'string', 'max' => 256, ], 'AttachmentHashType' => [ 'type' => 'string', 'enum' => [ 'Sha256', ], ], 'AttachmentInformation' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'AttachmentName', ], ], ], 'AttachmentInformationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttachmentInformation', ], ], 'AttachmentName' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9_\\-.]{3,128}$', ], 'AttachmentUrl' => [ 'type' => 'string', ], 'AttachmentsSource' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'AttachmentsSourceKey', ], 'Values' => [ 'shape' => 'AttachmentsSourceValues', ], ], ], 'AttachmentsSourceKey' => [ 'type' => 'string', 'enum' => [ 'SourceUrl', ], ], 'AttachmentsSourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttachmentsSource', ], 'max' => 1, 'min' => 0, ], 'AttachmentsSourceValue' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'AttachmentsSourceValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttachmentsSourceValue', ], 'max' => 1, 'min' => 1, ], 'AttributeName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'AttributeValue' => [ 'type' => 'string', 'max' => 4096, 'min' => 0, ], 'AutomationActionName' => [ 'type' => 'string', 'pattern' => '^aws:[a-zA-Z]{3,25}$', ], 'AutomationDefinitionNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'AutomationDefinitionVersionNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'AutomationExecution' => [ 'type' => 'structure', 'members' => [ 'AutomationExecutionId' => [ 'shape' => 'AutomationExecutionId', ], 'DocumentName' => [ 'shape' => 'DocumentName', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'ExecutionStartTime' => [ 'shape' => 'DateTime', ], 'ExecutionEndTime' => [ 'shape' => 'DateTime', ], 'AutomationExecutionStatus' => [ 'shape' => 'AutomationExecutionStatus', ], 'StepExecutions' => [ 'shape' => 'StepExecutionList', ], 'StepExecutionsTruncated' => [ 'shape' => 'Boolean', ], 'Parameters' => [ 'shape' => 'AutomationParameterMap', ], 'Outputs' => [ 'shape' => 'AutomationParameterMap', ], 'FailureMessage' => [ 'shape' => 'String', ], 'Mode' => [ 'shape' => 'ExecutionMode', ], 'ParentAutomationExecutionId' => [ 'shape' => 'AutomationExecutionId', ], 'ExecutedBy' => [ 'shape' => 'String', ], 'CurrentStepName' => [ 'shape' => 'String', ], 'CurrentAction' => [ 'shape' => 'String', ], 'TargetParameterName' => [ 'shape' => 'AutomationParameterKey', ], 'Targets' => [ 'shape' => 'Targets', ], 'TargetMaps' => [ 'shape' => 'TargetMaps', ], 'ResolvedTargets' => [ 'shape' => 'ResolvedTargets', ], 'MaxConcurrency' => [ 'shape' => 'MaxConcurrency', ], 'MaxErrors' => [ 'shape' => 'MaxErrors', ], 'Target' => [ 'shape' => 'String', ], 'TargetLocations' => [ 'shape' => 'TargetLocations', 'box' => true, ], 'ProgressCounters' => [ 'shape' => 'ProgressCounters', ], ], ], 'AutomationExecutionFilter' => [ 'type' => 'structure', 'required' => [ 'Key', 'Values', ], 'members' => [ 'Key' => [ 'shape' => 'AutomationExecutionFilterKey', ], 'Values' => [ 'shape' => 'AutomationExecutionFilterValueList', ], ], ], 'AutomationExecutionFilterKey' => [ 'type' => 'string', 'enum' => [ 'DocumentNamePrefix', 'ExecutionStatus', 'ExecutionId', 'ParentExecutionId', 'CurrentAction', 'StartTimeBefore', 'StartTimeAfter', 'AutomationType', ], ], 'AutomationExecutionFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AutomationExecutionFilter', ], 'max' => 10, 'min' => 1, ], 'AutomationExecutionFilterValue' => [ 'type' => 'string', 'max' => 150, 'min' => 1, ], 'AutomationExecutionFilterValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AutomationExecutionFilterValue', ], 'max' => 10, 'min' => 1, ], 'AutomationExecutionId' => [ 'type' => 'string', 'max' => 36, 'min' => 36, ], 'AutomationExecutionLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'AutomationExecutionMetadata' => [ 'type' => 'structure', 'members' => [ 'AutomationExecutionId' => [ 'shape' => 'AutomationExecutionId', ], 'DocumentName' => [ 'shape' => 'DocumentName', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'AutomationExecutionStatus' => [ 'shape' => 'AutomationExecutionStatus', ], 'ExecutionStartTime' => [ 'shape' => 'DateTime', ], 'ExecutionEndTime' => [ 'shape' => 'DateTime', ], 'ExecutedBy' => [ 'shape' => 'String', ], 'LogFile' => [ 'shape' => 'String', ], 'Outputs' => [ 'shape' => 'AutomationParameterMap', ], 'Mode' => [ 'shape' => 'ExecutionMode', ], 'ParentAutomationExecutionId' => [ 'shape' => 'AutomationExecutionId', ], 'CurrentStepName' => [ 'shape' => 'String', ], 'CurrentAction' => [ 'shape' => 'String', ], 'FailureMessage' => [ 'shape' => 'String', ], 'TargetParameterName' => [ 'shape' => 'AutomationParameterKey', ], 'Targets' => [ 'shape' => 'Targets', ], 'TargetMaps' => [ 'shape' => 'TargetMaps', ], 'ResolvedTargets' => [ 'shape' => 'ResolvedTargets', ], 'MaxConcurrency' => [ 'shape' => 'MaxConcurrency', ], 'MaxErrors' => [ 'shape' => 'MaxErrors', ], 'Target' => [ 'shape' => 'String', ], 'AutomationType' => [ 'shape' => 'AutomationType', ], ], ], 'AutomationExecutionMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AutomationExecutionMetadata', ], ], 'AutomationExecutionNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'AutomationExecutionStatus' => [ 'type' => 'string', 'enum' => [ 'Pending', 'InProgress', 'Waiting', 'Success', 'TimedOut', 'Cancelling', 'Cancelled', 'Failed', ], ], 'AutomationParameterKey' => [ 'type' => 'string', 'max' => 30, 'min' => 1, ], 'AutomationParameterMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'AutomationParameterKey', ], 'value' => [ 'shape' => 'AutomationParameterValueList', ], 'max' => 200, 'min' => 1, ], 'AutomationParameterValue' => [ 'type' => 'string', 'max' => 512, 'min' => 1, ], 'AutomationParameterValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AutomationParameterValue', ], 'max' => 10, 'min' => 0, ], 'AutomationStepNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'AutomationTargetParameterName' => [ 'type' => 'string', 'max' => 50, 'min' => 1, ], 'AutomationType' => [ 'type' => 'string', 'enum' => [ 'CrossAccount', 'Local', ], ], 'BaselineDescription' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'BaselineId' => [ 'type' => 'string', 'max' => 128, 'min' => 20, 'pattern' => '^[a-zA-Z0-9_\\-:/]{20,128}$', ], 'BaselineName' => [ 'type' => 'string', 'max' => 128, 'min' => 3, 'pattern' => '^[a-zA-Z0-9_\\-.]{3,128}$', ], 'BatchErrorMessage' => [ 'type' => 'string', ], 'Boolean' => [ 'type' => 'boolean', ], 'CancelCommandRequest' => [ 'type' => 'structure', 'required' => [ 'CommandId', ], 'members' => [ 'CommandId' => [ 'shape' => 'CommandId', ], 'InstanceIds' => [ 'shape' => 'InstanceIdList', ], ], ], 'CancelCommandResult' => [ 'type' => 'structure', 'members' => [], ], 'CancelMaintenanceWindowExecutionRequest' => [ 'type' => 'structure', 'required' => [ 'WindowExecutionId', ], 'members' => [ 'WindowExecutionId' => [ 'shape' => 'MaintenanceWindowExecutionId', ], ], ], 'CancelMaintenanceWindowExecutionResult' => [ 'type' => 'structure', 'members' => [ 'WindowExecutionId' => [ 'shape' => 'MaintenanceWindowExecutionId', ], ], ], 'ClientToken' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'CloudWatchLogGroupName' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => '[\\.\\-_/#A-Za-z0-9]+', ], 'CloudWatchOutputConfig' => [ 'type' => 'structure', 'members' => [ 'CloudWatchLogGroupName' => [ 'shape' => 'CloudWatchLogGroupName', ], 'CloudWatchOutputEnabled' => [ 'shape' => 'CloudWatchOutputEnabled', ], ], ], 'CloudWatchOutputEnabled' => [ 'type' => 'boolean', ], 'Command' => [ 'type' => 'structure', 'members' => [ 'CommandId' => [ 'shape' => 'CommandId', ], 'DocumentName' => [ 'shape' => 'DocumentName', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'Comment' => [ 'shape' => 'Comment', ], 'ExpiresAfter' => [ 'shape' => 'DateTime', ], 'Parameters' => [ 'shape' => 'Parameters', ], 'InstanceIds' => [ 'shape' => 'InstanceIdList', ], 'Targets' => [ 'shape' => 'Targets', ], 'RequestedDateTime' => [ 'shape' => 'DateTime', ], 'Status' => [ 'shape' => 'CommandStatus', ], 'StatusDetails' => [ 'shape' => 'StatusDetails', ], 'OutputS3Region' => [ 'shape' => 'S3Region', ], 'OutputS3BucketName' => [ 'shape' => 'S3BucketName', ], 'OutputS3KeyPrefix' => [ 'shape' => 'S3KeyPrefix', ], 'MaxConcurrency' => [ 'shape' => 'MaxConcurrency', ], 'MaxErrors' => [ 'shape' => 'MaxErrors', ], 'TargetCount' => [ 'shape' => 'TargetCount', ], 'CompletedCount' => [ 'shape' => 'CompletedCount', ], 'ErrorCount' => [ 'shape' => 'ErrorCount', ], 'DeliveryTimedOutCount' => [ 'shape' => 'DeliveryTimedOutCount', ], 'ServiceRole' => [ 'shape' => 'ServiceRole', ], 'NotificationConfig' => [ 'shape' => 'NotificationConfig', ], 'CloudWatchOutputConfig' => [ 'shape' => 'CloudWatchOutputConfig', ], ], ], 'CommandFilter' => [ 'type' => 'structure', 'required' => [ 'key', 'value', ], 'members' => [ 'key' => [ 'shape' => 'CommandFilterKey', ], 'value' => [ 'shape' => 'CommandFilterValue', ], ], ], 'CommandFilterKey' => [ 'type' => 'string', 'enum' => [ 'InvokedAfter', 'InvokedBefore', 'Status', 'ExecutionStage', 'DocumentName', ], ], 'CommandFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CommandFilter', ], 'max' => 5, 'min' => 1, ], 'CommandFilterValue' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'CommandId' => [ 'type' => 'string', 'max' => 36, 'min' => 36, ], 'CommandInvocation' => [ 'type' => 'structure', 'members' => [ 'CommandId' => [ 'shape' => 'CommandId', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'InstanceName' => [ 'shape' => 'InstanceTagName', ], 'Comment' => [ 'shape' => 'Comment', ], 'DocumentName' => [ 'shape' => 'DocumentName', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'RequestedDateTime' => [ 'shape' => 'DateTime', ], 'Status' => [ 'shape' => 'CommandInvocationStatus', ], 'StatusDetails' => [ 'shape' => 'StatusDetails', ], 'TraceOutput' => [ 'shape' => 'InvocationTraceOutput', ], 'StandardOutputUrl' => [ 'shape' => 'Url', ], 'StandardErrorUrl' => [ 'shape' => 'Url', ], 'CommandPlugins' => [ 'shape' => 'CommandPluginList', ], 'ServiceRole' => [ 'shape' => 'ServiceRole', ], 'NotificationConfig' => [ 'shape' => 'NotificationConfig', ], 'CloudWatchOutputConfig' => [ 'shape' => 'CloudWatchOutputConfig', ], ], ], 'CommandInvocationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CommandInvocation', ], ], 'CommandInvocationStatus' => [ 'type' => 'string', 'enum' => [ 'Pending', 'InProgress', 'Delayed', 'Success', 'Cancelled', 'TimedOut', 'Failed', 'Cancelling', ], ], 'CommandList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Command', ], ], 'CommandMaxResults' => [ 'type' => 'integer', 'max' => 50, 'min' => 1, ], 'CommandPlugin' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'CommandPluginName', ], 'Status' => [ 'shape' => 'CommandPluginStatus', ], 'StatusDetails' => [ 'shape' => 'StatusDetails', ], 'ResponseCode' => [ 'shape' => 'ResponseCode', ], 'ResponseStartDateTime' => [ 'shape' => 'DateTime', ], 'ResponseFinishDateTime' => [ 'shape' => 'DateTime', ], 'Output' => [ 'shape' => 'CommandPluginOutput', ], 'StandardOutputUrl' => [ 'shape' => 'Url', ], 'StandardErrorUrl' => [ 'shape' => 'Url', ], 'OutputS3Region' => [ 'shape' => 'S3Region', ], 'OutputS3BucketName' => [ 'shape' => 'S3BucketName', ], 'OutputS3KeyPrefix' => [ 'shape' => 'S3KeyPrefix', ], ], ], 'CommandPluginList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CommandPlugin', ], ], 'CommandPluginName' => [ 'type' => 'string', 'min' => 4, ], 'CommandPluginOutput' => [ 'type' => 'string', 'max' => 2500, ], 'CommandPluginStatus' => [ 'type' => 'string', 'enum' => [ 'Pending', 'InProgress', 'Success', 'TimedOut', 'Cancelled', 'Failed', ], ], 'CommandStatus' => [ 'type' => 'string', 'enum' => [ 'Pending', 'InProgress', 'Success', 'Cancelled', 'Failed', 'TimedOut', 'Cancelling', ], ], 'Comment' => [ 'type' => 'string', 'max' => 100, ], 'CompletedCount' => [ 'type' => 'integer', ], 'ComplianceExecutionId' => [ 'type' => 'string', 'max' => 100, ], 'ComplianceExecutionSummary' => [ 'type' => 'structure', 'required' => [ 'ExecutionTime', ], 'members' => [ 'ExecutionTime' => [ 'shape' => 'DateTime', ], 'ExecutionId' => [ 'shape' => 'ComplianceExecutionId', ], 'ExecutionType' => [ 'shape' => 'ComplianceExecutionType', ], ], ], 'ComplianceExecutionType' => [ 'type' => 'string', 'max' => 50, ], 'ComplianceFilterValue' => [ 'type' => 'string', ], 'ComplianceItem' => [ 'type' => 'structure', 'members' => [ 'ComplianceType' => [ 'shape' => 'ComplianceTypeName', ], 'ResourceType' => [ 'shape' => 'ComplianceResourceType', ], 'ResourceId' => [ 'shape' => 'ComplianceResourceId', ], 'Id' => [ 'shape' => 'ComplianceItemId', ], 'Title' => [ 'shape' => 'ComplianceItemTitle', ], 'Status' => [ 'shape' => 'ComplianceStatus', ], 'Severity' => [ 'shape' => 'ComplianceSeverity', ], 'ExecutionSummary' => [ 'shape' => 'ComplianceExecutionSummary', ], 'Details' => [ 'shape' => 'ComplianceItemDetails', ], ], ], 'ComplianceItemContentHash' => [ 'type' => 'string', 'max' => 256, ], 'ComplianceItemDetails' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttributeName', ], 'value' => [ 'shape' => 'AttributeValue', ], ], 'ComplianceItemEntry' => [ 'type' => 'structure', 'required' => [ 'Severity', 'Status', ], 'members' => [ 'Id' => [ 'shape' => 'ComplianceItemId', ], 'Title' => [ 'shape' => 'ComplianceItemTitle', ], 'Severity' => [ 'shape' => 'ComplianceSeverity', ], 'Status' => [ 'shape' => 'ComplianceStatus', ], 'Details' => [ 'shape' => 'ComplianceItemDetails', ], ], ], 'ComplianceItemEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ComplianceItemEntry', ], 'max' => 10000, 'min' => 0, ], 'ComplianceItemId' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'ComplianceItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ComplianceItem', ], ], 'ComplianceItemTitle' => [ 'type' => 'string', 'max' => 500, ], 'ComplianceQueryOperatorType' => [ 'type' => 'string', 'enum' => [ 'EQUAL', 'NOT_EQUAL', 'BEGIN_WITH', 'LESS_THAN', 'GREATER_THAN', ], ], 'ComplianceResourceId' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'ComplianceResourceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ComplianceResourceId', ], 'min' => 1, ], 'ComplianceResourceType' => [ 'type' => 'string', 'max' => 50, 'min' => 1, ], 'ComplianceResourceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ComplianceResourceType', ], 'min' => 1, ], 'ComplianceSeverity' => [ 'type' => 'string', 'enum' => [ 'CRITICAL', 'HIGH', 'MEDIUM', 'LOW', 'INFORMATIONAL', 'UNSPECIFIED', ], ], 'ComplianceStatus' => [ 'type' => 'string', 'enum' => [ 'COMPLIANT', 'NON_COMPLIANT', ], ], 'ComplianceStringFilter' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'ComplianceStringFilterKey', ], 'Values' => [ 'shape' => 'ComplianceStringFilterValueList', ], 'Type' => [ 'shape' => 'ComplianceQueryOperatorType', ], ], ], 'ComplianceStringFilterKey' => [ 'type' => 'string', 'max' => 200, 'min' => 1, ], 'ComplianceStringFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ComplianceStringFilter', ], ], 'ComplianceStringFilterValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ComplianceFilterValue', ], 'max' => 20, 'min' => 1, ], 'ComplianceSummaryCount' => [ 'type' => 'integer', ], 'ComplianceSummaryItem' => [ 'type' => 'structure', 'members' => [ 'ComplianceType' => [ 'shape' => 'ComplianceTypeName', ], 'CompliantSummary' => [ 'shape' => 'CompliantSummary', ], 'NonCompliantSummary' => [ 'shape' => 'NonCompliantSummary', ], ], ], 'ComplianceSummaryItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ComplianceSummaryItem', ], ], 'ComplianceTypeCountLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ComplianceTypeName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[A-Za-z0-9_\\-]\\w+|Custom:[a-zA-Z0-9_\\-]\\w+', ], 'CompliantSummary' => [ 'type' => 'structure', 'members' => [ 'CompliantCount' => [ 'shape' => 'ComplianceSummaryCount', ], 'SeveritySummary' => [ 'shape' => 'SeveritySummary', ], ], ], 'ComputerName' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'ConnectionStatus' => [ 'type' => 'string', 'enum' => [ 'Connected', 'NotConnected', ], ], 'ContentLength' => [ 'type' => 'long', ], 'CreateActivationRequest' => [ 'type' => 'structure', 'required' => [ 'IamRole', ], 'members' => [ 'Description' => [ 'shape' => 'ActivationDescription', ], 'DefaultInstanceName' => [ 'shape' => 'DefaultInstanceName', ], 'IamRole' => [ 'shape' => 'IamRole', ], 'RegistrationLimit' => [ 'shape' => 'RegistrationLimit', 'box' => true, ], 'ExpirationDate' => [ 'shape' => 'ExpirationDate', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateActivationResult' => [ 'type' => 'structure', 'members' => [ 'ActivationId' => [ 'shape' => 'ActivationId', ], 'ActivationCode' => [ 'shape' => 'ActivationCode', ], ], ], 'CreateAssociationBatchRequest' => [ 'type' => 'structure', 'required' => [ 'Entries', ], 'members' => [ 'Entries' => [ 'shape' => 'CreateAssociationBatchRequestEntries', ], ], ], 'CreateAssociationBatchRequestEntries' => [ 'type' => 'list', 'member' => [ 'shape' => 'CreateAssociationBatchRequestEntry', ], 'min' => 1, ], 'CreateAssociationBatchRequestEntry' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'DocumentARN', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'Parameters' => [ 'shape' => 'Parameters', ], 'AutomationTargetParameterName' => [ 'shape' => 'AutomationTargetParameterName', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'Targets' => [ 'shape' => 'Targets', ], 'ScheduleExpression' => [ 'shape' => 'ScheduleExpression', ], 'OutputLocation' => [ 'shape' => 'InstanceAssociationOutputLocation', ], 'AssociationName' => [ 'shape' => 'AssociationName', ], 'MaxErrors' => [ 'shape' => 'MaxErrors', ], 'MaxConcurrency' => [ 'shape' => 'MaxConcurrency', ], 'ComplianceSeverity' => [ 'shape' => 'AssociationComplianceSeverity', ], ], ], 'CreateAssociationBatchResult' => [ 'type' => 'structure', 'members' => [ 'Successful' => [ 'shape' => 'AssociationDescriptionList', ], 'Failed' => [ 'shape' => 'FailedCreateAssociationList', ], ], ], 'CreateAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'DocumentARN', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'Parameters' => [ 'shape' => 'Parameters', ], 'Targets' => [ 'shape' => 'Targets', ], 'ScheduleExpression' => [ 'shape' => 'ScheduleExpression', ], 'OutputLocation' => [ 'shape' => 'InstanceAssociationOutputLocation', ], 'AssociationName' => [ 'shape' => 'AssociationName', ], 'AutomationTargetParameterName' => [ 'shape' => 'AutomationTargetParameterName', ], 'MaxErrors' => [ 'shape' => 'MaxErrors', ], 'MaxConcurrency' => [ 'shape' => 'MaxConcurrency', ], 'ComplianceSeverity' => [ 'shape' => 'AssociationComplianceSeverity', ], ], ], 'CreateAssociationResult' => [ 'type' => 'structure', 'members' => [ 'AssociationDescription' => [ 'shape' => 'AssociationDescription', ], ], ], 'CreateDocumentRequest' => [ 'type' => 'structure', 'required' => [ 'Content', 'Name', ], 'members' => [ 'Content' => [ 'shape' => 'DocumentContent', ], 'Attachments' => [ 'shape' => 'AttachmentsSourceList', ], 'Name' => [ 'shape' => 'DocumentName', ], 'VersionName' => [ 'shape' => 'DocumentVersionName', ], 'DocumentType' => [ 'shape' => 'DocumentType', ], 'DocumentFormat' => [ 'shape' => 'DocumentFormat', ], 'TargetType' => [ 'shape' => 'TargetType', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateDocumentResult' => [ 'type' => 'structure', 'members' => [ 'DocumentDescription' => [ 'shape' => 'DocumentDescription', ], ], ], 'CreateMaintenanceWindowRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'Schedule', 'Duration', 'Cutoff', 'AllowUnassociatedTargets', ], 'members' => [ 'Name' => [ 'shape' => 'MaintenanceWindowName', ], 'Description' => [ 'shape' => 'MaintenanceWindowDescription', ], 'StartDate' => [ 'shape' => 'MaintenanceWindowStringDateTime', ], 'EndDate' => [ 'shape' => 'MaintenanceWindowStringDateTime', ], 'Schedule' => [ 'shape' => 'MaintenanceWindowSchedule', ], 'ScheduleTimezone' => [ 'shape' => 'MaintenanceWindowTimezone', ], 'Duration' => [ 'shape' => 'MaintenanceWindowDurationHours', ], 'Cutoff' => [ 'shape' => 'MaintenanceWindowCutoff', ], 'AllowUnassociatedTargets' => [ 'shape' => 'MaintenanceWindowAllowUnassociatedTargets', ], 'ClientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateMaintenanceWindowResult' => [ 'type' => 'structure', 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], ], ], 'CreatePatchBaselineRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'OperatingSystem' => [ 'shape' => 'OperatingSystem', ], 'Name' => [ 'shape' => 'BaselineName', ], 'GlobalFilters' => [ 'shape' => 'PatchFilterGroup', ], 'ApprovalRules' => [ 'shape' => 'PatchRuleGroup', ], 'ApprovedPatches' => [ 'shape' => 'PatchIdList', ], 'ApprovedPatchesComplianceLevel' => [ 'shape' => 'PatchComplianceLevel', ], 'ApprovedPatchesEnableNonSecurity' => [ 'shape' => 'Boolean', 'box' => true, ], 'RejectedPatches' => [ 'shape' => 'PatchIdList', ], 'RejectedPatchesAction' => [ 'shape' => 'PatchAction', ], 'Description' => [ 'shape' => 'BaselineDescription', ], 'Sources' => [ 'shape' => 'PatchSourceList', ], 'ClientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreatePatchBaselineResult' => [ 'type' => 'structure', 'members' => [ 'BaselineId' => [ 'shape' => 'BaselineId', ], ], ], 'CreateResourceDataSyncRequest' => [ 'type' => 'structure', 'required' => [ 'SyncName', 'S3Destination', ], 'members' => [ 'SyncName' => [ 'shape' => 'ResourceDataSyncName', ], 'S3Destination' => [ 'shape' => 'ResourceDataSyncS3Destination', ], ], ], 'CreateResourceDataSyncResult' => [ 'type' => 'structure', 'members' => [], ], 'CreatedDate' => [ 'type' => 'timestamp', ], 'CustomSchemaCountLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'DateTime' => [ 'type' => 'timestamp', ], 'DefaultBaseline' => [ 'type' => 'boolean', ], 'DefaultInstanceName' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'DeleteActivationRequest' => [ 'type' => 'structure', 'required' => [ 'ActivationId', ], 'members' => [ 'ActivationId' => [ 'shape' => 'ActivationId', ], ], ], 'DeleteActivationResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteAssociationRequest' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'DocumentARN', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'AssociationId' => [ 'shape' => 'AssociationId', ], ], ], 'DeleteAssociationResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteDocumentRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'DocumentName', ], ], ], 'DeleteDocumentResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteInventoryRequest' => [ 'type' => 'structure', 'required' => [ 'TypeName', ], 'members' => [ 'TypeName' => [ 'shape' => 'InventoryItemTypeName', ], 'SchemaDeleteOption' => [ 'shape' => 'InventorySchemaDeleteOption', ], 'DryRun' => [ 'shape' => 'DryRun', ], 'ClientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'DeleteInventoryResult' => [ 'type' => 'structure', 'members' => [ 'DeletionId' => [ 'shape' => 'InventoryDeletionId', ], 'TypeName' => [ 'shape' => 'InventoryItemTypeName', ], 'DeletionSummary' => [ 'shape' => 'InventoryDeletionSummary', ], ], ], 'DeleteMaintenanceWindowRequest' => [ 'type' => 'structure', 'required' => [ 'WindowId', ], 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], ], ], 'DeleteMaintenanceWindowResult' => [ 'type' => 'structure', 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], ], ], 'DeleteParameterRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'PSParameterName', ], ], ], 'DeleteParameterResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteParametersRequest' => [ 'type' => 'structure', 'required' => [ 'Names', ], 'members' => [ 'Names' => [ 'shape' => 'ParameterNameList', ], ], ], 'DeleteParametersResult' => [ 'type' => 'structure', 'members' => [ 'DeletedParameters' => [ 'shape' => 'ParameterNameList', ], 'InvalidParameters' => [ 'shape' => 'ParameterNameList', ], ], ], 'DeletePatchBaselineRequest' => [ 'type' => 'structure', 'required' => [ 'BaselineId', ], 'members' => [ 'BaselineId' => [ 'shape' => 'BaselineId', ], ], ], 'DeletePatchBaselineResult' => [ 'type' => 'structure', 'members' => [ 'BaselineId' => [ 'shape' => 'BaselineId', ], ], ], 'DeleteResourceDataSyncRequest' => [ 'type' => 'structure', 'required' => [ 'SyncName', ], 'members' => [ 'SyncName' => [ 'shape' => 'ResourceDataSyncName', ], ], ], 'DeleteResourceDataSyncResult' => [ 'type' => 'structure', 'members' => [], ], 'DeliveryTimedOutCount' => [ 'type' => 'integer', ], 'DeregisterManagedInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'ManagedInstanceId', ], ], ], 'DeregisterManagedInstanceResult' => [ 'type' => 'structure', 'members' => [], ], 'DeregisterPatchBaselineForPatchGroupRequest' => [ 'type' => 'structure', 'required' => [ 'BaselineId', 'PatchGroup', ], 'members' => [ 'BaselineId' => [ 'shape' => 'BaselineId', ], 'PatchGroup' => [ 'shape' => 'PatchGroup', ], ], ], 'DeregisterPatchBaselineForPatchGroupResult' => [ 'type' => 'structure', 'members' => [ 'BaselineId' => [ 'shape' => 'BaselineId', ], 'PatchGroup' => [ 'shape' => 'PatchGroup', ], ], ], 'DeregisterTargetFromMaintenanceWindowRequest' => [ 'type' => 'structure', 'required' => [ 'WindowId', 'WindowTargetId', ], 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'WindowTargetId' => [ 'shape' => 'MaintenanceWindowTargetId', ], 'Safe' => [ 'shape' => 'Boolean', 'box' => true, ], ], ], 'DeregisterTargetFromMaintenanceWindowResult' => [ 'type' => 'structure', 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'WindowTargetId' => [ 'shape' => 'MaintenanceWindowTargetId', ], ], ], 'DeregisterTaskFromMaintenanceWindowRequest' => [ 'type' => 'structure', 'required' => [ 'WindowId', 'WindowTaskId', ], 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'WindowTaskId' => [ 'shape' => 'MaintenanceWindowTaskId', ], ], ], 'DeregisterTaskFromMaintenanceWindowResult' => [ 'type' => 'structure', 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'WindowTaskId' => [ 'shape' => 'MaintenanceWindowTaskId', ], ], ], 'DescribeActivationsFilter' => [ 'type' => 'structure', 'members' => [ 'FilterKey' => [ 'shape' => 'DescribeActivationsFilterKeys', ], 'FilterValues' => [ 'shape' => 'StringList', ], ], ], 'DescribeActivationsFilterKeys' => [ 'type' => 'string', 'enum' => [ 'ActivationIds', 'DefaultInstanceName', 'IamRole', ], ], 'DescribeActivationsFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DescribeActivationsFilter', ], ], 'DescribeActivationsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'DescribeActivationsFilterList', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeActivationsResult' => [ 'type' => 'structure', 'members' => [ 'ActivationList' => [ 'shape' => 'ActivationList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeAssociationExecutionTargetsRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', 'ExecutionId', ], 'members' => [ 'AssociationId' => [ 'shape' => 'AssociationId', ], 'ExecutionId' => [ 'shape' => 'AssociationExecutionId', ], 'Filters' => [ 'shape' => 'AssociationExecutionTargetsFilterList', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeAssociationExecutionTargetsResult' => [ 'type' => 'structure', 'members' => [ 'AssociationExecutionTargets' => [ 'shape' => 'AssociationExecutionTargetsList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeAssociationExecutionsRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', ], 'members' => [ 'AssociationId' => [ 'shape' => 'AssociationId', ], 'Filters' => [ 'shape' => 'AssociationExecutionFilterList', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeAssociationExecutionsResult' => [ 'type' => 'structure', 'members' => [ 'AssociationExecutions' => [ 'shape' => 'AssociationExecutionsList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeAssociationRequest' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'DocumentARN', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'AssociationId' => [ 'shape' => 'AssociationId', ], 'AssociationVersion' => [ 'shape' => 'AssociationVersion', ], ], ], 'DescribeAssociationResult' => [ 'type' => 'structure', 'members' => [ 'AssociationDescription' => [ 'shape' => 'AssociationDescription', ], ], ], 'DescribeAutomationExecutionsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'AutomationExecutionFilterList', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeAutomationExecutionsResult' => [ 'type' => 'structure', 'members' => [ 'AutomationExecutionMetadataList' => [ 'shape' => 'AutomationExecutionMetadataList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeAutomationStepExecutionsRequest' => [ 'type' => 'structure', 'required' => [ 'AutomationExecutionId', ], 'members' => [ 'AutomationExecutionId' => [ 'shape' => 'AutomationExecutionId', ], 'Filters' => [ 'shape' => 'StepExecutionFilterList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], 'ReverseOrder' => [ 'shape' => 'Boolean', 'box' => true, ], ], ], 'DescribeAutomationStepExecutionsResult' => [ 'type' => 'structure', 'members' => [ 'StepExecutions' => [ 'shape' => 'StepExecutionList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeAvailablePatchesRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'PatchOrchestratorFilterList', ], 'MaxResults' => [ 'shape' => 'PatchBaselineMaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeAvailablePatchesResult' => [ 'type' => 'structure', 'members' => [ 'Patches' => [ 'shape' => 'PatchList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeDocumentPermissionRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'PermissionType', ], 'members' => [ 'Name' => [ 'shape' => 'DocumentName', ], 'PermissionType' => [ 'shape' => 'DocumentPermissionType', ], ], ], 'DescribeDocumentPermissionResponse' => [ 'type' => 'structure', 'members' => [ 'AccountIds' => [ 'shape' => 'AccountIdList', ], ], ], 'DescribeDocumentRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'DocumentARN', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'VersionName' => [ 'shape' => 'DocumentVersionName', ], ], ], 'DescribeDocumentResult' => [ 'type' => 'structure', 'members' => [ 'Document' => [ 'shape' => 'DocumentDescription', ], ], ], 'DescribeEffectiveInstanceAssociationsRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'MaxResults' => [ 'shape' => 'EffectiveInstanceAssociationMaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeEffectiveInstanceAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'Associations' => [ 'shape' => 'InstanceAssociationList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeEffectivePatchesForPatchBaselineRequest' => [ 'type' => 'structure', 'required' => [ 'BaselineId', ], 'members' => [ 'BaselineId' => [ 'shape' => 'BaselineId', ], 'MaxResults' => [ 'shape' => 'PatchBaselineMaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeEffectivePatchesForPatchBaselineResult' => [ 'type' => 'structure', 'members' => [ 'EffectivePatches' => [ 'shape' => 'EffectivePatchList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeInstanceAssociationsStatusRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeInstanceAssociationsStatusResult' => [ 'type' => 'structure', 'members' => [ 'InstanceAssociationStatusInfos' => [ 'shape' => 'InstanceAssociationStatusInfos', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeInstanceInformationRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceInformationFilterList' => [ 'shape' => 'InstanceInformationFilterList', ], 'Filters' => [ 'shape' => 'InstanceInformationStringFilterList', ], 'MaxResults' => [ 'shape' => 'MaxResultsEC2Compatible', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeInstanceInformationResult' => [ 'type' => 'structure', 'members' => [ 'InstanceInformationList' => [ 'shape' => 'InstanceInformationList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeInstancePatchStatesForPatchGroupRequest' => [ 'type' => 'structure', 'required' => [ 'PatchGroup', ], 'members' => [ 'PatchGroup' => [ 'shape' => 'PatchGroup', ], 'Filters' => [ 'shape' => 'InstancePatchStateFilterList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'PatchComplianceMaxResults', 'box' => true, ], ], ], 'DescribeInstancePatchStatesForPatchGroupResult' => [ 'type' => 'structure', 'members' => [ 'InstancePatchStates' => [ 'shape' => 'InstancePatchStatesList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeInstancePatchStatesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'PatchComplianceMaxResults', 'box' => true, ], ], ], 'DescribeInstancePatchStatesResult' => [ 'type' => 'structure', 'members' => [ 'InstancePatchStates' => [ 'shape' => 'InstancePatchStateList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeInstancePatchesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'Filters' => [ 'shape' => 'PatchOrchestratorFilterList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'PatchComplianceMaxResults', 'box' => true, ], ], ], 'DescribeInstancePatchesResult' => [ 'type' => 'structure', 'members' => [ 'Patches' => [ 'shape' => 'PatchComplianceDataList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeInventoryDeletionsRequest' => [ 'type' => 'structure', 'members' => [ 'DeletionId' => [ 'shape' => 'InventoryDeletionId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], ], ], 'DescribeInventoryDeletionsResult' => [ 'type' => 'structure', 'members' => [ 'InventoryDeletions' => [ 'shape' => 'InventoryDeletionsList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeMaintenanceWindowExecutionTaskInvocationsRequest' => [ 'type' => 'structure', 'required' => [ 'WindowExecutionId', 'TaskId', ], 'members' => [ 'WindowExecutionId' => [ 'shape' => 'MaintenanceWindowExecutionId', ], 'TaskId' => [ 'shape' => 'MaintenanceWindowExecutionTaskId', ], 'Filters' => [ 'shape' => 'MaintenanceWindowFilterList', ], 'MaxResults' => [ 'shape' => 'MaintenanceWindowMaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeMaintenanceWindowExecutionTaskInvocationsResult' => [ 'type' => 'structure', 'members' => [ 'WindowExecutionTaskInvocationIdentities' => [ 'shape' => 'MaintenanceWindowExecutionTaskInvocationIdentityList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeMaintenanceWindowExecutionTasksRequest' => [ 'type' => 'structure', 'required' => [ 'WindowExecutionId', ], 'members' => [ 'WindowExecutionId' => [ 'shape' => 'MaintenanceWindowExecutionId', ], 'Filters' => [ 'shape' => 'MaintenanceWindowFilterList', ], 'MaxResults' => [ 'shape' => 'MaintenanceWindowMaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeMaintenanceWindowExecutionTasksResult' => [ 'type' => 'structure', 'members' => [ 'WindowExecutionTaskIdentities' => [ 'shape' => 'MaintenanceWindowExecutionTaskIdentityList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeMaintenanceWindowExecutionsRequest' => [ 'type' => 'structure', 'required' => [ 'WindowId', ], 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'Filters' => [ 'shape' => 'MaintenanceWindowFilterList', ], 'MaxResults' => [ 'shape' => 'MaintenanceWindowMaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeMaintenanceWindowExecutionsResult' => [ 'type' => 'structure', 'members' => [ 'WindowExecutions' => [ 'shape' => 'MaintenanceWindowExecutionList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeMaintenanceWindowScheduleRequest' => [ 'type' => 'structure', 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'Targets' => [ 'shape' => 'Targets', ], 'ResourceType' => [ 'shape' => 'MaintenanceWindowResourceType', ], 'Filters' => [ 'shape' => 'PatchOrchestratorFilterList', ], 'MaxResults' => [ 'shape' => 'MaintenanceWindowSearchMaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeMaintenanceWindowScheduleResult' => [ 'type' => 'structure', 'members' => [ 'ScheduledWindowExecutions' => [ 'shape' => 'ScheduledWindowExecutionList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeMaintenanceWindowTargetsRequest' => [ 'type' => 'structure', 'required' => [ 'WindowId', ], 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'Filters' => [ 'shape' => 'MaintenanceWindowFilterList', ], 'MaxResults' => [ 'shape' => 'MaintenanceWindowMaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeMaintenanceWindowTargetsResult' => [ 'type' => 'structure', 'members' => [ 'Targets' => [ 'shape' => 'MaintenanceWindowTargetList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeMaintenanceWindowTasksRequest' => [ 'type' => 'structure', 'required' => [ 'WindowId', ], 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'Filters' => [ 'shape' => 'MaintenanceWindowFilterList', ], 'MaxResults' => [ 'shape' => 'MaintenanceWindowMaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeMaintenanceWindowTasksResult' => [ 'type' => 'structure', 'members' => [ 'Tasks' => [ 'shape' => 'MaintenanceWindowTaskList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeMaintenanceWindowsForTargetRequest' => [ 'type' => 'structure', 'required' => [ 'Targets', 'ResourceType', ], 'members' => [ 'Targets' => [ 'shape' => 'Targets', ], 'ResourceType' => [ 'shape' => 'MaintenanceWindowResourceType', ], 'MaxResults' => [ 'shape' => 'MaintenanceWindowSearchMaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeMaintenanceWindowsForTargetResult' => [ 'type' => 'structure', 'members' => [ 'WindowIdentities' => [ 'shape' => 'MaintenanceWindowsForTargetList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeMaintenanceWindowsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'MaintenanceWindowFilterList', ], 'MaxResults' => [ 'shape' => 'MaintenanceWindowMaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeMaintenanceWindowsResult' => [ 'type' => 'structure', 'members' => [ 'WindowIdentities' => [ 'shape' => 'MaintenanceWindowIdentityList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeParametersRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'ParametersFilterList', ], 'ParameterFilters' => [ 'shape' => 'ParameterStringFilterList', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeParametersResult' => [ 'type' => 'structure', 'members' => [ 'Parameters' => [ 'shape' => 'ParameterMetadataList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribePatchBaselinesRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'PatchOrchestratorFilterList', ], 'MaxResults' => [ 'shape' => 'PatchBaselineMaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribePatchBaselinesResult' => [ 'type' => 'structure', 'members' => [ 'BaselineIdentities' => [ 'shape' => 'PatchBaselineIdentityList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribePatchGroupStateRequest' => [ 'type' => 'structure', 'required' => [ 'PatchGroup', ], 'members' => [ 'PatchGroup' => [ 'shape' => 'PatchGroup', ], ], ], 'DescribePatchGroupStateResult' => [ 'type' => 'structure', 'members' => [ 'Instances' => [ 'shape' => 'Integer', ], 'InstancesWithInstalledPatches' => [ 'shape' => 'Integer', ], 'InstancesWithInstalledOtherPatches' => [ 'shape' => 'Integer', ], 'InstancesWithInstalledRejectedPatches' => [ 'shape' => 'InstancesCount', 'box' => true, ], 'InstancesWithMissingPatches' => [ 'shape' => 'Integer', ], 'InstancesWithFailedPatches' => [ 'shape' => 'Integer', ], 'InstancesWithNotApplicablePatches' => [ 'shape' => 'Integer', ], ], ], 'DescribePatchGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'PatchBaselineMaxResults', 'box' => true, ], 'Filters' => [ 'shape' => 'PatchOrchestratorFilterList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribePatchGroupsResult' => [ 'type' => 'structure', 'members' => [ 'Mappings' => [ 'shape' => 'PatchGroupPatchBaselineMappingList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeSessionsRequest' => [ 'type' => 'structure', 'required' => [ 'State', ], 'members' => [ 'State' => [ 'shape' => 'SessionState', ], 'MaxResults' => [ 'shape' => 'SessionMaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'SessionFilterList', ], ], ], 'DescribeSessionsResponse' => [ 'type' => 'structure', 'members' => [ 'Sessions' => [ 'shape' => 'SessionList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescriptionInDocument' => [ 'type' => 'string', ], 'DocumentARN' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9_\\-.:/]{3,128}$', ], 'DocumentAlreadyExists' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'DocumentContent' => [ 'type' => 'string', 'min' => 1, ], 'DocumentDefaultVersionDescription' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'DocumentName', ], 'DefaultVersion' => [ 'shape' => 'DocumentVersion', ], 'DefaultVersionName' => [ 'shape' => 'DocumentVersionName', ], ], ], 'DocumentDescription' => [ 'type' => 'structure', 'members' => [ 'Sha1' => [ 'shape' => 'DocumentSha1', ], 'Hash' => [ 'shape' => 'DocumentHash', ], 'HashType' => [ 'shape' => 'DocumentHashType', ], 'Name' => [ 'shape' => 'DocumentARN', ], 'VersionName' => [ 'shape' => 'DocumentVersionName', ], 'Owner' => [ 'shape' => 'DocumentOwner', ], 'CreatedDate' => [ 'shape' => 'DateTime', ], 'Status' => [ 'shape' => 'DocumentStatus', ], 'StatusInformation' => [ 'shape' => 'DocumentStatusInformation', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'Description' => [ 'shape' => 'DescriptionInDocument', ], 'Parameters' => [ 'shape' => 'DocumentParameterList', ], 'PlatformTypes' => [ 'shape' => 'PlatformTypeList', ], 'DocumentType' => [ 'shape' => 'DocumentType', ], 'SchemaVersion' => [ 'shape' => 'DocumentSchemaVersion', ], 'LatestVersion' => [ 'shape' => 'DocumentVersion', ], 'DefaultVersion' => [ 'shape' => 'DocumentVersion', ], 'DocumentFormat' => [ 'shape' => 'DocumentFormat', ], 'TargetType' => [ 'shape' => 'TargetType', ], 'Tags' => [ 'shape' => 'TagList', ], 'AttachmentsInformation' => [ 'shape' => 'AttachmentInformationList', ], ], ], 'DocumentFilter' => [ 'type' => 'structure', 'required' => [ 'key', 'value', ], 'members' => [ 'key' => [ 'shape' => 'DocumentFilterKey', ], 'value' => [ 'shape' => 'DocumentFilterValue', ], ], ], 'DocumentFilterKey' => [ 'type' => 'string', 'enum' => [ 'Name', 'Owner', 'PlatformTypes', 'DocumentType', ], ], 'DocumentFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DocumentFilter', ], 'min' => 1, ], 'DocumentFilterValue' => [ 'type' => 'string', 'min' => 1, ], 'DocumentFormat' => [ 'type' => 'string', 'enum' => [ 'YAML', 'JSON', ], ], 'DocumentHash' => [ 'type' => 'string', 'max' => 256, ], 'DocumentHashType' => [ 'type' => 'string', 'enum' => [ 'Sha256', 'Sha1', ], ], 'DocumentIdentifier' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'DocumentARN', ], 'Owner' => [ 'shape' => 'DocumentOwner', ], 'VersionName' => [ 'shape' => 'DocumentVersionName', ], 'PlatformTypes' => [ 'shape' => 'PlatformTypeList', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'DocumentType' => [ 'shape' => 'DocumentType', ], 'SchemaVersion' => [ 'shape' => 'DocumentSchemaVersion', ], 'DocumentFormat' => [ 'shape' => 'DocumentFormat', ], 'TargetType' => [ 'shape' => 'TargetType', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'DocumentIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DocumentIdentifier', ], ], 'DocumentKeyValuesFilter' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'DocumentKeyValuesFilterKey', ], 'Values' => [ 'shape' => 'DocumentKeyValuesFilterValues', ], ], ], 'DocumentKeyValuesFilterKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'DocumentKeyValuesFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DocumentKeyValuesFilter', ], 'max' => 6, 'min' => 0, ], 'DocumentKeyValuesFilterValue' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'DocumentKeyValuesFilterValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'DocumentKeyValuesFilterValue', ], ], 'DocumentLimitExceeded' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'DocumentName' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9_\\-.]{3,128}$', ], 'DocumentOwner' => [ 'type' => 'string', ], 'DocumentParameter' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'DocumentParameterName', ], 'Type' => [ 'shape' => 'DocumentParameterType', ], 'Description' => [ 'shape' => 'DocumentParameterDescrption', ], 'DefaultValue' => [ 'shape' => 'DocumentParameterDefaultValue', ], ], ], 'DocumentParameterDefaultValue' => [ 'type' => 'string', ], 'DocumentParameterDescrption' => [ 'type' => 'string', ], 'DocumentParameterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DocumentParameter', ], ], 'DocumentParameterName' => [ 'type' => 'string', ], 'DocumentParameterType' => [ 'type' => 'string', 'enum' => [ 'String', 'StringList', ], ], 'DocumentPermissionLimit' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'DocumentPermissionType' => [ 'type' => 'string', 'enum' => [ 'Share', ], ], 'DocumentSchemaVersion' => [ 'type' => 'string', 'pattern' => '([0-9]+)\\.([0-9]+)', ], 'DocumentSha1' => [ 'type' => 'string', ], 'DocumentStatus' => [ 'type' => 'string', 'enum' => [ 'Creating', 'Active', 'Updating', 'Deleting', 'Failed', ], ], 'DocumentStatusInformation' => [ 'type' => 'string', ], 'DocumentType' => [ 'type' => 'string', 'enum' => [ 'Command', 'Policy', 'Automation', 'Session', 'Package', ], ], 'DocumentVersion' => [ 'type' => 'string', 'pattern' => '([$]LATEST|[$]DEFAULT|^[1-9][0-9]*$)', ], 'DocumentVersionInfo' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'DocumentName', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'VersionName' => [ 'shape' => 'DocumentVersionName', ], 'CreatedDate' => [ 'shape' => 'DateTime', ], 'IsDefaultVersion' => [ 'shape' => 'Boolean', ], 'DocumentFormat' => [ 'shape' => 'DocumentFormat', ], 'Status' => [ 'shape' => 'DocumentStatus', ], 'StatusInformation' => [ 'shape' => 'DocumentStatusInformation', ], ], ], 'DocumentVersionLimitExceeded' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'DocumentVersionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DocumentVersionInfo', ], 'min' => 1, ], 'DocumentVersionName' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9_\\-.]{1,128}$', ], 'DocumentVersionNumber' => [ 'type' => 'string', 'pattern' => '(^[1-9][0-9]*$)', ], 'DoesNotExistException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'DryRun' => [ 'type' => 'boolean', ], 'DuplicateDocumentContent' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'DuplicateDocumentVersionName' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'DuplicateInstanceId' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'EffectiveInstanceAssociationMaxResults' => [ 'type' => 'integer', 'max' => 5, 'min' => 1, ], 'EffectivePatch' => [ 'type' => 'structure', 'members' => [ 'Patch' => [ 'shape' => 'Patch', ], 'PatchStatus' => [ 'shape' => 'PatchStatus', ], ], ], 'EffectivePatchList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EffectivePatch', ], ], 'ErrorCount' => [ 'type' => 'integer', ], 'ExecutionMode' => [ 'type' => 'string', 'enum' => [ 'Auto', 'Interactive', ], ], 'ExecutionRoleName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'ExpirationDate' => [ 'type' => 'timestamp', ], 'FailedCreateAssociation' => [ 'type' => 'structure', 'members' => [ 'Entry' => [ 'shape' => 'CreateAssociationBatchRequestEntry', ], 'Message' => [ 'shape' => 'BatchErrorMessage', ], 'Fault' => [ 'shape' => 'Fault', ], ], ], 'FailedCreateAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FailedCreateAssociation', ], ], 'FailureDetails' => [ 'type' => 'structure', 'members' => [ 'FailureStage' => [ 'shape' => 'String', ], 'FailureType' => [ 'shape' => 'String', ], 'Details' => [ 'shape' => 'AutomationParameterMap', ], ], ], 'Fault' => [ 'type' => 'string', 'enum' => [ 'Client', 'Server', 'Unknown', ], ], 'FeatureNotAvailableException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'GetAutomationExecutionRequest' => [ 'type' => 'structure', 'required' => [ 'AutomationExecutionId', ], 'members' => [ 'AutomationExecutionId' => [ 'shape' => 'AutomationExecutionId', ], ], ], 'GetAutomationExecutionResult' => [ 'type' => 'structure', 'members' => [ 'AutomationExecution' => [ 'shape' => 'AutomationExecution', ], ], ], 'GetCommandInvocationRequest' => [ 'type' => 'structure', 'required' => [ 'CommandId', 'InstanceId', ], 'members' => [ 'CommandId' => [ 'shape' => 'CommandId', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'PluginName' => [ 'shape' => 'CommandPluginName', ], ], ], 'GetCommandInvocationResult' => [ 'type' => 'structure', 'members' => [ 'CommandId' => [ 'shape' => 'CommandId', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'Comment' => [ 'shape' => 'Comment', ], 'DocumentName' => [ 'shape' => 'DocumentName', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'PluginName' => [ 'shape' => 'CommandPluginName', ], 'ResponseCode' => [ 'shape' => 'ResponseCode', ], 'ExecutionStartDateTime' => [ 'shape' => 'StringDateTime', ], 'ExecutionElapsedTime' => [ 'shape' => 'StringDateTime', ], 'ExecutionEndDateTime' => [ 'shape' => 'StringDateTime', ], 'Status' => [ 'shape' => 'CommandInvocationStatus', ], 'StatusDetails' => [ 'shape' => 'StatusDetails', ], 'StandardOutputContent' => [ 'shape' => 'StandardOutputContent', ], 'StandardOutputUrl' => [ 'shape' => 'Url', ], 'StandardErrorContent' => [ 'shape' => 'StandardErrorContent', ], 'StandardErrorUrl' => [ 'shape' => 'Url', ], 'CloudWatchOutputConfig' => [ 'shape' => 'CloudWatchOutputConfig', ], ], ], 'GetConnectionStatusRequest' => [ 'type' => 'structure', 'required' => [ 'Target', ], 'members' => [ 'Target' => [ 'shape' => 'SessionTarget', ], ], ], 'GetConnectionStatusResponse' => [ 'type' => 'structure', 'members' => [ 'Target' => [ 'shape' => 'SessionTarget', ], 'Status' => [ 'shape' => 'ConnectionStatus', ], ], ], 'GetDefaultPatchBaselineRequest' => [ 'type' => 'structure', 'members' => [ 'OperatingSystem' => [ 'shape' => 'OperatingSystem', ], ], ], 'GetDefaultPatchBaselineResult' => [ 'type' => 'structure', 'members' => [ 'BaselineId' => [ 'shape' => 'BaselineId', ], 'OperatingSystem' => [ 'shape' => 'OperatingSystem', ], ], ], 'GetDeployablePatchSnapshotForInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'SnapshotId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], ], ], 'GetDeployablePatchSnapshotForInstanceResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'SnapshotDownloadUrl' => [ 'shape' => 'SnapshotDownloadUrl', ], 'Product' => [ 'shape' => 'Product', ], ], ], 'GetDocumentRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'DocumentARN', ], 'VersionName' => [ 'shape' => 'DocumentVersionName', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'DocumentFormat' => [ 'shape' => 'DocumentFormat', ], ], ], 'GetDocumentResult' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'DocumentARN', ], 'VersionName' => [ 'shape' => 'DocumentVersionName', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'Status' => [ 'shape' => 'DocumentStatus', ], 'StatusInformation' => [ 'shape' => 'DocumentStatusInformation', ], 'Content' => [ 'shape' => 'DocumentContent', ], 'DocumentType' => [ 'shape' => 'DocumentType', ], 'DocumentFormat' => [ 'shape' => 'DocumentFormat', ], 'AttachmentsContent' => [ 'shape' => 'AttachmentContentList', ], ], ], 'GetInventoryRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'InventoryFilterList', ], 'Aggregators' => [ 'shape' => 'InventoryAggregatorList', ], 'ResultAttributes' => [ 'shape' => 'ResultAttributeList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], ], ], 'GetInventoryResult' => [ 'type' => 'structure', 'members' => [ 'Entities' => [ 'shape' => 'InventoryResultEntityList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetInventorySchemaMaxResults' => [ 'type' => 'integer', 'max' => 200, 'min' => 50, ], 'GetInventorySchemaRequest' => [ 'type' => 'structure', 'members' => [ 'TypeName' => [ 'shape' => 'InventoryItemTypeNameFilter', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'GetInventorySchemaMaxResults', 'box' => true, ], 'Aggregator' => [ 'shape' => 'AggregatorSchemaOnly', ], 'SubType' => [ 'shape' => 'IsSubTypeSchema', 'box' => true, ], ], ], 'GetInventorySchemaResult' => [ 'type' => 'structure', 'members' => [ 'Schemas' => [ 'shape' => 'InventoryItemSchemaResultList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetMaintenanceWindowExecutionRequest' => [ 'type' => 'structure', 'required' => [ 'WindowExecutionId', ], 'members' => [ 'WindowExecutionId' => [ 'shape' => 'MaintenanceWindowExecutionId', ], ], ], 'GetMaintenanceWindowExecutionResult' => [ 'type' => 'structure', 'members' => [ 'WindowExecutionId' => [ 'shape' => 'MaintenanceWindowExecutionId', ], 'TaskIds' => [ 'shape' => 'MaintenanceWindowExecutionTaskIdList', ], 'Status' => [ 'shape' => 'MaintenanceWindowExecutionStatus', ], 'StatusDetails' => [ 'shape' => 'MaintenanceWindowExecutionStatusDetails', ], 'StartTime' => [ 'shape' => 'DateTime', ], 'EndTime' => [ 'shape' => 'DateTime', ], ], ], 'GetMaintenanceWindowExecutionTaskInvocationRequest' => [ 'type' => 'structure', 'required' => [ 'WindowExecutionId', 'TaskId', 'InvocationId', ], 'members' => [ 'WindowExecutionId' => [ 'shape' => 'MaintenanceWindowExecutionId', ], 'TaskId' => [ 'shape' => 'MaintenanceWindowExecutionTaskId', ], 'InvocationId' => [ 'shape' => 'MaintenanceWindowExecutionTaskInvocationId', ], ], ], 'GetMaintenanceWindowExecutionTaskInvocationResult' => [ 'type' => 'structure', 'members' => [ 'WindowExecutionId' => [ 'shape' => 'MaintenanceWindowExecutionId', ], 'TaskExecutionId' => [ 'shape' => 'MaintenanceWindowExecutionTaskId', ], 'InvocationId' => [ 'shape' => 'MaintenanceWindowExecutionTaskInvocationId', ], 'ExecutionId' => [ 'shape' => 'MaintenanceWindowExecutionTaskExecutionId', ], 'TaskType' => [ 'shape' => 'MaintenanceWindowTaskType', ], 'Parameters' => [ 'shape' => 'MaintenanceWindowExecutionTaskInvocationParameters', ], 'Status' => [ 'shape' => 'MaintenanceWindowExecutionStatus', ], 'StatusDetails' => [ 'shape' => 'MaintenanceWindowExecutionStatusDetails', ], 'StartTime' => [ 'shape' => 'DateTime', ], 'EndTime' => [ 'shape' => 'DateTime', ], 'OwnerInformation' => [ 'shape' => 'OwnerInformation', ], 'WindowTargetId' => [ 'shape' => 'MaintenanceWindowTaskTargetId', ], ], ], 'GetMaintenanceWindowExecutionTaskRequest' => [ 'type' => 'structure', 'required' => [ 'WindowExecutionId', 'TaskId', ], 'members' => [ 'WindowExecutionId' => [ 'shape' => 'MaintenanceWindowExecutionId', ], 'TaskId' => [ 'shape' => 'MaintenanceWindowExecutionTaskId', ], ], ], 'GetMaintenanceWindowExecutionTaskResult' => [ 'type' => 'structure', 'members' => [ 'WindowExecutionId' => [ 'shape' => 'MaintenanceWindowExecutionId', ], 'TaskExecutionId' => [ 'shape' => 'MaintenanceWindowExecutionTaskId', ], 'TaskArn' => [ 'shape' => 'MaintenanceWindowTaskArn', ], 'ServiceRole' => [ 'shape' => 'ServiceRole', ], 'Type' => [ 'shape' => 'MaintenanceWindowTaskType', ], 'TaskParameters' => [ 'shape' => 'MaintenanceWindowTaskParametersList', ], 'Priority' => [ 'shape' => 'MaintenanceWindowTaskPriority', ], 'MaxConcurrency' => [ 'shape' => 'MaxConcurrency', ], 'MaxErrors' => [ 'shape' => 'MaxErrors', ], 'Status' => [ 'shape' => 'MaintenanceWindowExecutionStatus', ], 'StatusDetails' => [ 'shape' => 'MaintenanceWindowExecutionStatusDetails', ], 'StartTime' => [ 'shape' => 'DateTime', ], 'EndTime' => [ 'shape' => 'DateTime', ], ], ], 'GetMaintenanceWindowRequest' => [ 'type' => 'structure', 'required' => [ 'WindowId', ], 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], ], ], 'GetMaintenanceWindowResult' => [ 'type' => 'structure', 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'Name' => [ 'shape' => 'MaintenanceWindowName', ], 'Description' => [ 'shape' => 'MaintenanceWindowDescription', ], 'StartDate' => [ 'shape' => 'MaintenanceWindowStringDateTime', ], 'EndDate' => [ 'shape' => 'MaintenanceWindowStringDateTime', ], 'Schedule' => [ 'shape' => 'MaintenanceWindowSchedule', ], 'ScheduleTimezone' => [ 'shape' => 'MaintenanceWindowTimezone', ], 'NextExecutionTime' => [ 'shape' => 'MaintenanceWindowStringDateTime', ], 'Duration' => [ 'shape' => 'MaintenanceWindowDurationHours', ], 'Cutoff' => [ 'shape' => 'MaintenanceWindowCutoff', ], 'AllowUnassociatedTargets' => [ 'shape' => 'MaintenanceWindowAllowUnassociatedTargets', ], 'Enabled' => [ 'shape' => 'MaintenanceWindowEnabled', ], 'CreatedDate' => [ 'shape' => 'DateTime', ], 'ModifiedDate' => [ 'shape' => 'DateTime', ], ], ], 'GetMaintenanceWindowTaskRequest' => [ 'type' => 'structure', 'required' => [ 'WindowId', 'WindowTaskId', ], 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'WindowTaskId' => [ 'shape' => 'MaintenanceWindowTaskId', ], ], ], 'GetMaintenanceWindowTaskResult' => [ 'type' => 'structure', 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'WindowTaskId' => [ 'shape' => 'MaintenanceWindowTaskId', ], 'Targets' => [ 'shape' => 'Targets', ], 'TaskArn' => [ 'shape' => 'MaintenanceWindowTaskArn', ], 'ServiceRoleArn' => [ 'shape' => 'ServiceRole', ], 'TaskType' => [ 'shape' => 'MaintenanceWindowTaskType', ], 'TaskParameters' => [ 'shape' => 'MaintenanceWindowTaskParameters', ], 'TaskInvocationParameters' => [ 'shape' => 'MaintenanceWindowTaskInvocationParameters', ], 'Priority' => [ 'shape' => 'MaintenanceWindowTaskPriority', ], 'MaxConcurrency' => [ 'shape' => 'MaxConcurrency', ], 'MaxErrors' => [ 'shape' => 'MaxErrors', ], 'LoggingInfo' => [ 'shape' => 'LoggingInfo', ], 'Name' => [ 'shape' => 'MaintenanceWindowName', ], 'Description' => [ 'shape' => 'MaintenanceWindowDescription', ], ], ], 'GetParameterHistoryRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'PSParameterName', ], 'WithDecryption' => [ 'shape' => 'Boolean', 'box' => true, ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetParameterHistoryResult' => [ 'type' => 'structure', 'members' => [ 'Parameters' => [ 'shape' => 'ParameterHistoryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetParameterRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'PSParameterName', ], 'WithDecryption' => [ 'shape' => 'Boolean', 'box' => true, ], ], ], 'GetParameterResult' => [ 'type' => 'structure', 'members' => [ 'Parameter' => [ 'shape' => 'Parameter', ], ], ], 'GetParametersByPathMaxResults' => [ 'type' => 'integer', 'max' => 10, 'min' => 1, ], 'GetParametersByPathRequest' => [ 'type' => 'structure', 'required' => [ 'Path', ], 'members' => [ 'Path' => [ 'shape' => 'PSParameterName', ], 'Recursive' => [ 'shape' => 'Boolean', 'box' => true, ], 'ParameterFilters' => [ 'shape' => 'ParameterStringFilterList', ], 'WithDecryption' => [ 'shape' => 'Boolean', 'box' => true, ], 'MaxResults' => [ 'shape' => 'GetParametersByPathMaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetParametersByPathResult' => [ 'type' => 'structure', 'members' => [ 'Parameters' => [ 'shape' => 'ParameterList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetParametersRequest' => [ 'type' => 'structure', 'required' => [ 'Names', ], 'members' => [ 'Names' => [ 'shape' => 'ParameterNameList', ], 'WithDecryption' => [ 'shape' => 'Boolean', 'box' => true, ], ], ], 'GetParametersResult' => [ 'type' => 'structure', 'members' => [ 'Parameters' => [ 'shape' => 'ParameterList', ], 'InvalidParameters' => [ 'shape' => 'ParameterNameList', ], ], ], 'GetPatchBaselineForPatchGroupRequest' => [ 'type' => 'structure', 'required' => [ 'PatchGroup', ], 'members' => [ 'PatchGroup' => [ 'shape' => 'PatchGroup', ], 'OperatingSystem' => [ 'shape' => 'OperatingSystem', ], ], ], 'GetPatchBaselineForPatchGroupResult' => [ 'type' => 'structure', 'members' => [ 'BaselineId' => [ 'shape' => 'BaselineId', ], 'PatchGroup' => [ 'shape' => 'PatchGroup', ], 'OperatingSystem' => [ 'shape' => 'OperatingSystem', ], ], ], 'GetPatchBaselineRequest' => [ 'type' => 'structure', 'required' => [ 'BaselineId', ], 'members' => [ 'BaselineId' => [ 'shape' => 'BaselineId', ], ], ], 'GetPatchBaselineResult' => [ 'type' => 'structure', 'members' => [ 'BaselineId' => [ 'shape' => 'BaselineId', ], 'Name' => [ 'shape' => 'BaselineName', ], 'OperatingSystem' => [ 'shape' => 'OperatingSystem', ], 'GlobalFilters' => [ 'shape' => 'PatchFilterGroup', ], 'ApprovalRules' => [ 'shape' => 'PatchRuleGroup', ], 'ApprovedPatches' => [ 'shape' => 'PatchIdList', ], 'ApprovedPatchesComplianceLevel' => [ 'shape' => 'PatchComplianceLevel', ], 'ApprovedPatchesEnableNonSecurity' => [ 'shape' => 'Boolean', 'box' => true, ], 'RejectedPatches' => [ 'shape' => 'PatchIdList', ], 'RejectedPatchesAction' => [ 'shape' => 'PatchAction', ], 'PatchGroups' => [ 'shape' => 'PatchGroupList', ], 'CreatedDate' => [ 'shape' => 'DateTime', ], 'ModifiedDate' => [ 'shape' => 'DateTime', ], 'Description' => [ 'shape' => 'BaselineDescription', ], 'Sources' => [ 'shape' => 'PatchSourceList', ], ], ], 'GetServiceSettingRequest' => [ 'type' => 'structure', 'required' => [ 'SettingId', ], 'members' => [ 'SettingId' => [ 'shape' => 'ServiceSettingId', ], ], ], 'GetServiceSettingResult' => [ 'type' => 'structure', 'members' => [ 'ServiceSetting' => [ 'shape' => 'ServiceSetting', ], ], ], 'HierarchyLevelLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'HierarchyTypeMismatchException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'IPAddress' => [ 'type' => 'string', 'max' => 46, 'min' => 1, ], 'IamRole' => [ 'type' => 'string', 'max' => 64, ], 'IdempotencyToken' => [ 'type' => 'string', 'max' => 36, 'min' => 36, '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}', ], 'IdempotentParameterMismatch' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InstallOverrideList' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^https://.+$|^s3://([^/]+)/(.*?([^/]+))$', ], 'InstanceAggregatedAssociationOverview' => [ 'type' => 'structure', 'members' => [ 'DetailedStatus' => [ 'shape' => 'StatusName', ], 'InstanceAssociationStatusAggregatedCount' => [ 'shape' => 'InstanceAssociationStatusAggregatedCount', ], ], ], 'InstanceAssociation' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'AssociationId', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'Content' => [ 'shape' => 'DocumentContent', ], 'AssociationVersion' => [ 'shape' => 'AssociationVersion', ], ], ], 'InstanceAssociationExecutionSummary' => [ 'type' => 'string', 'max' => 512, 'min' => 1, ], 'InstanceAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceAssociation', ], ], 'InstanceAssociationOutputLocation' => [ 'type' => 'structure', 'members' => [ 'S3Location' => [ 'shape' => 'S3OutputLocation', ], ], ], 'InstanceAssociationOutputUrl' => [ 'type' => 'structure', 'members' => [ 'S3OutputUrl' => [ 'shape' => 'S3OutputUrl', ], ], ], 'InstanceAssociationStatusAggregatedCount' => [ 'type' => 'map', 'key' => [ 'shape' => 'StatusName', ], 'value' => [ 'shape' => 'InstanceCount', ], ], 'InstanceAssociationStatusInfo' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'AssociationId', ], 'Name' => [ 'shape' => 'DocumentARN', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'AssociationVersion' => [ 'shape' => 'AssociationVersion', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'ExecutionDate' => [ 'shape' => 'DateTime', ], 'Status' => [ 'shape' => 'StatusName', ], 'DetailedStatus' => [ 'shape' => 'StatusName', ], 'ExecutionSummary' => [ 'shape' => 'InstanceAssociationExecutionSummary', ], 'ErrorCode' => [ 'shape' => 'AgentErrorCode', ], 'OutputUrl' => [ 'shape' => 'InstanceAssociationOutputUrl', ], 'AssociationName' => [ 'shape' => 'AssociationName', ], ], ], 'InstanceAssociationStatusInfos' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceAssociationStatusInfo', ], ], 'InstanceCount' => [ 'type' => 'integer', ], 'InstanceId' => [ 'type' => 'string', 'pattern' => '(^i-(\\w{8}|\\w{17})$)|(^mi-\\w{17}$)', ], 'InstanceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceId', ], 'max' => 50, 'min' => 0, ], 'InstanceInformation' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'PingStatus' => [ 'shape' => 'PingStatus', ], 'LastPingDateTime' => [ 'shape' => 'DateTime', 'box' => true, ], 'AgentVersion' => [ 'shape' => 'Version', ], 'IsLatestVersion' => [ 'shape' => 'Boolean', 'box' => true, ], 'PlatformType' => [ 'shape' => 'PlatformType', ], 'PlatformName' => [ 'shape' => 'String', ], 'PlatformVersion' => [ 'shape' => 'String', ], 'ActivationId' => [ 'shape' => 'ActivationId', ], 'IamRole' => [ 'shape' => 'IamRole', ], 'RegistrationDate' => [ 'shape' => 'DateTime', 'box' => true, ], 'ResourceType' => [ 'shape' => 'ResourceType', ], 'Name' => [ 'shape' => 'String', ], 'IPAddress' => [ 'shape' => 'IPAddress', ], 'ComputerName' => [ 'shape' => 'ComputerName', ], 'AssociationStatus' => [ 'shape' => 'StatusName', ], 'LastAssociationExecutionDate' => [ 'shape' => 'DateTime', ], 'LastSuccessfulAssociationExecutionDate' => [ 'shape' => 'DateTime', ], 'AssociationOverview' => [ 'shape' => 'InstanceAggregatedAssociationOverview', ], ], ], 'InstanceInformationFilter' => [ 'type' => 'structure', 'required' => [ 'key', 'valueSet', ], 'members' => [ 'key' => [ 'shape' => 'InstanceInformationFilterKey', ], 'valueSet' => [ 'shape' => 'InstanceInformationFilterValueSet', ], ], ], 'InstanceInformationFilterKey' => [ 'type' => 'string', 'enum' => [ 'InstanceIds', 'AgentVersion', 'PingStatus', 'PlatformTypes', 'ActivationIds', 'IamRole', 'ResourceType', 'AssociationStatus', ], ], 'InstanceInformationFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceInformationFilter', ], 'min' => 0, ], 'InstanceInformationFilterValue' => [ 'type' => 'string', 'min' => 1, ], 'InstanceInformationFilterValueSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceInformationFilterValue', ], 'max' => 100, 'min' => 1, ], 'InstanceInformationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceInformation', ], ], 'InstanceInformationStringFilter' => [ 'type' => 'structure', 'required' => [ 'Key', 'Values', ], 'members' => [ 'Key' => [ 'shape' => 'InstanceInformationStringFilterKey', ], 'Values' => [ 'shape' => 'InstanceInformationFilterValueSet', ], ], ], 'InstanceInformationStringFilterKey' => [ 'type' => 'string', 'min' => 1, ], 'InstanceInformationStringFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceInformationStringFilter', ], 'min' => 0, ], 'InstancePatchState' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'PatchGroup', 'BaselineId', 'OperationStartTime', 'OperationEndTime', 'Operation', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'PatchGroup' => [ 'shape' => 'PatchGroup', ], 'BaselineId' => [ 'shape' => 'BaselineId', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'InstallOverrideList' => [ 'shape' => 'InstallOverrideList', ], 'OwnerInformation' => [ 'shape' => 'OwnerInformation', ], 'InstalledCount' => [ 'shape' => 'PatchInstalledCount', ], 'InstalledOtherCount' => [ 'shape' => 'PatchInstalledOtherCount', ], 'InstalledRejectedCount' => [ 'shape' => 'PatchInstalledRejectedCount', 'box' => true, ], 'MissingCount' => [ 'shape' => 'PatchMissingCount', ], 'FailedCount' => [ 'shape' => 'PatchFailedCount', ], 'NotApplicableCount' => [ 'shape' => 'PatchNotApplicableCount', ], 'OperationStartTime' => [ 'shape' => 'DateTime', ], 'OperationEndTime' => [ 'shape' => 'DateTime', ], 'Operation' => [ 'shape' => 'PatchOperationType', ], ], ], 'InstancePatchStateFilter' => [ 'type' => 'structure', 'required' => [ 'Key', 'Values', 'Type', ], 'members' => [ 'Key' => [ 'shape' => 'InstancePatchStateFilterKey', ], 'Values' => [ 'shape' => 'InstancePatchStateFilterValues', ], 'Type' => [ 'shape' => 'InstancePatchStateOperatorType', ], ], ], 'InstancePatchStateFilterKey' => [ 'type' => 'string', 'max' => 200, 'min' => 1, ], 'InstancePatchStateFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstancePatchStateFilter', ], 'max' => 4, 'min' => 0, ], 'InstancePatchStateFilterValue' => [ 'type' => 'string', ], 'InstancePatchStateFilterValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstancePatchStateFilterValue', ], 'max' => 1, 'min' => 1, ], 'InstancePatchStateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstancePatchState', ], ], 'InstancePatchStateOperatorType' => [ 'type' => 'string', 'enum' => [ 'Equal', 'NotEqual', 'LessThan', 'GreaterThan', ], ], 'InstancePatchStatesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstancePatchState', ], 'max' => 5, 'min' => 1, ], 'InstanceTagName' => [ 'type' => 'string', 'max' => 255, ], 'InstancesCount' => [ 'type' => 'integer', ], 'Integer' => [ 'type' => 'integer', ], 'InternalServerError' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, 'fault' => true, ], 'InvalidActivation' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidActivationId' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidAggregatorException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidAllowedPatternException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidAssociation' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidAssociationVersion' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidAutomationExecutionParametersException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidAutomationSignalException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidAutomationStatusUpdateException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidCommandId' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidDeleteInventoryParametersException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidDeletionIdException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidDocument' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidDocumentContent' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidDocumentOperation' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidDocumentSchemaVersion' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidDocumentVersion' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidFilter' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidFilterKey' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidFilterOption' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidFilterValue' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidInstanceId' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidInstanceInformationFilterValue' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidInventoryGroupException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidInventoryItemContextException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidInventoryRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidItemContentException' => [ 'type' => 'structure', 'members' => [ 'TypeName' => [ 'shape' => 'InventoryItemTypeName', ], 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidKeyId' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidNextToken' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidNotificationConfig' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidOptionException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidOutputFolder' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidOutputLocation' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidParameters' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidPermissionType' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidPluginName' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidResourceId' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidResourceType' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidResultAttributeException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidRole' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidSchedule' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidTarget' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidTypeNameException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidUpdate' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InventoryAggregator' => [ 'type' => 'structure', 'members' => [ 'Expression' => [ 'shape' => 'InventoryAggregatorExpression', ], 'Aggregators' => [ 'shape' => 'InventoryAggregatorList', ], 'Groups' => [ 'shape' => 'InventoryGroupList', ], ], ], 'InventoryAggregatorExpression' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, ], 'InventoryAggregatorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InventoryAggregator', ], 'max' => 10, 'min' => 1, ], 'InventoryAttributeDataType' => [ 'type' => 'string', 'enum' => [ 'string', 'number', ], ], 'InventoryDeletionId' => [ 'type' => 'string', ], 'InventoryDeletionLastStatusMessage' => [ 'type' => 'string', ], 'InventoryDeletionLastStatusUpdateTime' => [ 'type' => 'timestamp', ], 'InventoryDeletionStartTime' => [ 'type' => 'timestamp', ], 'InventoryDeletionStatus' => [ 'type' => 'string', 'enum' => [ 'InProgress', 'Complete', ], ], 'InventoryDeletionStatusItem' => [ 'type' => 'structure', 'members' => [ 'DeletionId' => [ 'shape' => 'InventoryDeletionId', ], 'TypeName' => [ 'shape' => 'InventoryItemTypeName', ], 'DeletionStartTime' => [ 'shape' => 'InventoryDeletionStartTime', ], 'LastStatus' => [ 'shape' => 'InventoryDeletionStatus', ], 'LastStatusMessage' => [ 'shape' => 'InventoryDeletionLastStatusMessage', ], 'DeletionSummary' => [ 'shape' => 'InventoryDeletionSummary', ], 'LastStatusUpdateTime' => [ 'shape' => 'InventoryDeletionLastStatusUpdateTime', ], ], ], 'InventoryDeletionSummary' => [ 'type' => 'structure', 'members' => [ 'TotalCount' => [ 'shape' => 'TotalCount', ], 'RemainingCount' => [ 'shape' => 'RemainingCount', ], 'SummaryItems' => [ 'shape' => 'InventoryDeletionSummaryItems', ], ], ], 'InventoryDeletionSummaryItem' => [ 'type' => 'structure', 'members' => [ 'Version' => [ 'shape' => 'InventoryItemSchemaVersion', ], 'Count' => [ 'shape' => 'ResourceCount', ], 'RemainingCount' => [ 'shape' => 'RemainingCount', ], ], ], 'InventoryDeletionSummaryItems' => [ 'type' => 'list', 'member' => [ 'shape' => 'InventoryDeletionSummaryItem', ], ], 'InventoryDeletionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InventoryDeletionStatusItem', ], ], 'InventoryFilter' => [ 'type' => 'structure', 'required' => [ 'Key', 'Values', ], 'members' => [ 'Key' => [ 'shape' => 'InventoryFilterKey', ], 'Values' => [ 'shape' => 'InventoryFilterValueList', ], 'Type' => [ 'shape' => 'InventoryQueryOperatorType', ], ], ], 'InventoryFilterKey' => [ 'type' => 'string', 'max' => 200, 'min' => 1, ], 'InventoryFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InventoryFilter', ], 'max' => 5, 'min' => 1, ], 'InventoryFilterValue' => [ 'type' => 'string', ], 'InventoryFilterValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InventoryFilterValue', ], 'max' => 40, 'min' => 1, ], 'InventoryGroup' => [ 'type' => 'structure', 'required' => [ 'Name', 'Filters', ], 'members' => [ 'Name' => [ 'shape' => 'InventoryGroupName', ], 'Filters' => [ 'shape' => 'InventoryFilterList', ], ], ], 'InventoryGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InventoryGroup', ], 'max' => 10, 'min' => 1, ], 'InventoryGroupName' => [ 'type' => 'string', 'max' => 200, 'min' => 1, ], 'InventoryItem' => [ 'type' => 'structure', 'required' => [ 'TypeName', 'SchemaVersion', 'CaptureTime', ], 'members' => [ 'TypeName' => [ 'shape' => 'InventoryItemTypeName', ], 'SchemaVersion' => [ 'shape' => 'InventoryItemSchemaVersion', ], 'CaptureTime' => [ 'shape' => 'InventoryItemCaptureTime', ], 'ContentHash' => [ 'shape' => 'InventoryItemContentHash', ], 'Content' => [ 'shape' => 'InventoryItemEntryList', ], 'Context' => [ 'shape' => 'InventoryItemContentContext', ], ], ], 'InventoryItemAttribute' => [ 'type' => 'structure', 'required' => [ 'Name', 'DataType', ], 'members' => [ 'Name' => [ 'shape' => 'InventoryItemAttributeName', ], 'DataType' => [ 'shape' => 'InventoryAttributeDataType', ], ], ], 'InventoryItemAttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InventoryItemAttribute', ], 'max' => 50, 'min' => 1, ], 'InventoryItemAttributeName' => [ 'type' => 'string', ], 'InventoryItemCaptureTime' => [ 'type' => 'string', 'pattern' => '^(20)[0-9][0-9]-(0[1-9]|1[012])-([12][0-9]|3[01]|0[1-9])(T)(2[0-3]|[0-1][0-9])(:[0-5][0-9])(:[0-5][0-9])(Z)$', ], 'InventoryItemContentContext' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttributeName', ], 'value' => [ 'shape' => 'AttributeValue', ], 'max' => 50, 'min' => 0, ], 'InventoryItemContentHash' => [ 'type' => 'string', 'max' => 256, ], 'InventoryItemEntry' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttributeName', ], 'value' => [ 'shape' => 'AttributeValue', ], 'max' => 50, 'min' => 0, ], 'InventoryItemEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InventoryItemEntry', ], 'max' => 10000, 'min' => 0, ], 'InventoryItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InventoryItem', ], 'max' => 30, 'min' => 1, ], 'InventoryItemSchema' => [ 'type' => 'structure', 'required' => [ 'TypeName', 'Attributes', ], 'members' => [ 'TypeName' => [ 'shape' => 'InventoryItemTypeName', ], 'Version' => [ 'shape' => 'InventoryItemSchemaVersion', ], 'Attributes' => [ 'shape' => 'InventoryItemAttributeList', ], 'DisplayName' => [ 'shape' => 'InventoryTypeDisplayName', ], ], ], 'InventoryItemSchemaResultList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InventoryItemSchema', ], ], 'InventoryItemSchemaVersion' => [ 'type' => 'string', 'pattern' => '^([0-9]{1,6})(\\.[0-9]{1,6})$', ], 'InventoryItemTypeName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '^(AWS|Custom):.*$', ], 'InventoryItemTypeNameFilter' => [ 'type' => 'string', 'max' => 100, 'min' => 0, ], 'InventoryQueryOperatorType' => [ 'type' => 'string', 'enum' => [ 'Equal', 'NotEqual', 'BeginWith', 'LessThan', 'GreaterThan', 'Exists', ], ], 'InventoryResultEntity' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'InventoryResultEntityId', ], 'Data' => [ 'shape' => 'InventoryResultItemMap', ], ], ], 'InventoryResultEntityId' => [ 'type' => 'string', ], 'InventoryResultEntityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InventoryResultEntity', ], ], 'InventoryResultItem' => [ 'type' => 'structure', 'required' => [ 'TypeName', 'SchemaVersion', 'Content', ], 'members' => [ 'TypeName' => [ 'shape' => 'InventoryItemTypeName', ], 'SchemaVersion' => [ 'shape' => 'InventoryItemSchemaVersion', ], 'CaptureTime' => [ 'shape' => 'InventoryItemCaptureTime', ], 'ContentHash' => [ 'shape' => 'InventoryItemContentHash', ], 'Content' => [ 'shape' => 'InventoryItemEntryList', ], ], ], 'InventoryResultItemKey' => [ 'type' => 'string', ], 'InventoryResultItemMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'InventoryResultItemKey', ], 'value' => [ 'shape' => 'InventoryResultItem', ], ], 'InventorySchemaDeleteOption' => [ 'type' => 'string', 'enum' => [ 'DisableSchema', 'DeleteSchema', ], ], 'InventoryTypeDisplayName' => [ 'type' => 'string', ], 'InvocationDoesNotExist' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvocationTraceOutput' => [ 'type' => 'string', 'max' => 2500, ], 'IsSubTypeSchema' => [ 'type' => 'boolean', ], 'ItemContentMismatchException' => [ 'type' => 'structure', 'members' => [ 'TypeName' => [ 'shape' => 'InventoryItemTypeName', ], 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ItemSizeLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'TypeName' => [ 'shape' => 'InventoryItemTypeName', ], 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'KeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'LabelParameterVersionRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'Labels', ], 'members' => [ 'Name' => [ 'shape' => 'PSParameterName', ], 'ParameterVersion' => [ 'shape' => 'PSParameterVersion', 'box' => true, ], 'Labels' => [ 'shape' => 'ParameterLabelList', ], ], ], 'LabelParameterVersionResult' => [ 'type' => 'structure', 'members' => [ 'InvalidLabels' => [ 'shape' => 'ParameterLabelList', ], ], ], 'LastResourceDataSyncMessage' => [ 'type' => 'string', ], 'LastResourceDataSyncStatus' => [ 'type' => 'string', 'enum' => [ 'Successful', 'Failed', 'InProgress', ], ], 'LastResourceDataSyncTime' => [ 'type' => 'timestamp', ], 'LastSuccessfulResourceDataSyncTime' => [ 'type' => 'timestamp', ], 'ListAssociationVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', ], 'members' => [ 'AssociationId' => [ 'shape' => 'AssociationId', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListAssociationVersionsResult' => [ 'type' => 'structure', 'members' => [ 'AssociationVersions' => [ 'shape' => 'AssociationVersionList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'AssociationFilterList' => [ 'shape' => 'AssociationFilterList', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'Associations' => [ 'shape' => 'AssociationList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListCommandInvocationsRequest' => [ 'type' => 'structure', 'members' => [ 'CommandId' => [ 'shape' => 'CommandId', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'MaxResults' => [ 'shape' => 'CommandMaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'CommandFilterList', ], 'Details' => [ 'shape' => 'Boolean', ], ], ], 'ListCommandInvocationsResult' => [ 'type' => 'structure', 'members' => [ 'CommandInvocations' => [ 'shape' => 'CommandInvocationList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListCommandsRequest' => [ 'type' => 'structure', 'members' => [ 'CommandId' => [ 'shape' => 'CommandId', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'MaxResults' => [ 'shape' => 'CommandMaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'CommandFilterList', ], ], ], 'ListCommandsResult' => [ 'type' => 'structure', 'members' => [ 'Commands' => [ 'shape' => 'CommandList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListComplianceItemsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'ComplianceStringFilterList', ], 'ResourceIds' => [ 'shape' => 'ComplianceResourceIdList', ], 'ResourceTypes' => [ 'shape' => 'ComplianceResourceTypeList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], ], ], 'ListComplianceItemsResult' => [ 'type' => 'structure', 'members' => [ 'ComplianceItems' => [ 'shape' => 'ComplianceItemList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListComplianceSummariesRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'ComplianceStringFilterList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], ], ], 'ListComplianceSummariesResult' => [ 'type' => 'structure', 'members' => [ 'ComplianceSummaryItems' => [ 'shape' => 'ComplianceSummaryItemList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDocumentVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'DocumentName', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDocumentVersionsResult' => [ 'type' => 'structure', 'members' => [ 'DocumentVersions' => [ 'shape' => 'DocumentVersionList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDocumentsRequest' => [ 'type' => 'structure', 'members' => [ 'DocumentFilterList' => [ 'shape' => 'DocumentFilterList', ], 'Filters' => [ 'shape' => 'DocumentKeyValuesFilterList', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDocumentsResult' => [ 'type' => 'structure', 'members' => [ 'DocumentIdentifiers' => [ 'shape' => 'DocumentIdentifierList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListInventoryEntriesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'TypeName', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'TypeName' => [ 'shape' => 'InventoryItemTypeName', ], 'Filters' => [ 'shape' => 'InventoryFilterList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], ], ], 'ListInventoryEntriesResult' => [ 'type' => 'structure', 'members' => [ 'TypeName' => [ 'shape' => 'InventoryItemTypeName', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'SchemaVersion' => [ 'shape' => 'InventoryItemSchemaVersion', ], 'CaptureTime' => [ 'shape' => 'InventoryItemCaptureTime', ], 'Entries' => [ 'shape' => 'InventoryItemEntryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListResourceComplianceSummariesRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'ComplianceStringFilterList', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], ], ], 'ListResourceComplianceSummariesResult' => [ 'type' => 'structure', 'members' => [ 'ResourceComplianceSummaryItems' => [ 'shape' => 'ResourceComplianceSummaryItemList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListResourceDataSyncRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, ], ], ], 'ListResourceDataSyncResult' => [ 'type' => 'structure', 'members' => [ 'ResourceDataSyncItems' => [ 'shape' => 'ResourceDataSyncItemList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceType', 'ResourceId', ], 'members' => [ 'ResourceType' => [ 'shape' => 'ResourceTypeForTagging', ], 'ResourceId' => [ 'shape' => 'ResourceId', ], ], ], 'ListTagsForResourceResult' => [ 'type' => 'structure', 'members' => [ 'TagList' => [ 'shape' => 'TagList', ], ], ], 'LoggingInfo' => [ 'type' => 'structure', 'required' => [ 'S3BucketName', 'S3Region', ], 'members' => [ 'S3BucketName' => [ 'shape' => 'S3BucketName', ], 'S3KeyPrefix' => [ 'shape' => 'S3KeyPrefix', ], 'S3Region' => [ 'shape' => 'S3Region', ], ], ], 'Long' => [ 'type' => 'long', ], 'MaintenanceWindowAllowUnassociatedTargets' => [ 'type' => 'boolean', ], 'MaintenanceWindowAutomationParameters' => [ 'type' => 'structure', 'members' => [ 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'Parameters' => [ 'shape' => 'AutomationParameterMap', ], ], ], 'MaintenanceWindowCutoff' => [ 'type' => 'integer', 'max' => 23, 'min' => 0, ], 'MaintenanceWindowDescription' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'sensitive' => true, ], 'MaintenanceWindowDurationHours' => [ 'type' => 'integer', 'max' => 24, 'min' => 1, ], 'MaintenanceWindowEnabled' => [ 'type' => 'boolean', ], 'MaintenanceWindowExecution' => [ 'type' => 'structure', 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'WindowExecutionId' => [ 'shape' => 'MaintenanceWindowExecutionId', ], 'Status' => [ 'shape' => 'MaintenanceWindowExecutionStatus', ], 'StatusDetails' => [ 'shape' => 'MaintenanceWindowExecutionStatusDetails', ], 'StartTime' => [ 'shape' => 'DateTime', ], 'EndTime' => [ 'shape' => 'DateTime', ], ], ], 'MaintenanceWindowExecutionId' => [ 'type' => 'string', 'max' => 36, 'min' => 36, '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}$', ], 'MaintenanceWindowExecutionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MaintenanceWindowExecution', ], ], 'MaintenanceWindowExecutionStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'IN_PROGRESS', 'SUCCESS', 'FAILED', 'TIMED_OUT', 'CANCELLING', 'CANCELLED', 'SKIPPED_OVERLAPPING', ], ], 'MaintenanceWindowExecutionStatusDetails' => [ 'type' => 'string', 'max' => 250, 'min' => 0, ], 'MaintenanceWindowExecutionTaskExecutionId' => [ 'type' => 'string', ], 'MaintenanceWindowExecutionTaskId' => [ 'type' => 'string', 'max' => 36, 'min' => 36, '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}$', ], 'MaintenanceWindowExecutionTaskIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MaintenanceWindowExecutionTaskId', ], ], 'MaintenanceWindowExecutionTaskIdentity' => [ 'type' => 'structure', 'members' => [ 'WindowExecutionId' => [ 'shape' => 'MaintenanceWindowExecutionId', ], 'TaskExecutionId' => [ 'shape' => 'MaintenanceWindowExecutionTaskId', ], 'Status' => [ 'shape' => 'MaintenanceWindowExecutionStatus', ], 'StatusDetails' => [ 'shape' => 'MaintenanceWindowExecutionStatusDetails', ], 'StartTime' => [ 'shape' => 'DateTime', ], 'EndTime' => [ 'shape' => 'DateTime', ], 'TaskArn' => [ 'shape' => 'MaintenanceWindowTaskArn', ], 'TaskType' => [ 'shape' => 'MaintenanceWindowTaskType', ], ], ], 'MaintenanceWindowExecutionTaskIdentityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MaintenanceWindowExecutionTaskIdentity', ], ], 'MaintenanceWindowExecutionTaskInvocationId' => [ 'type' => 'string', 'max' => 36, 'min' => 36, '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}$', ], 'MaintenanceWindowExecutionTaskInvocationIdentity' => [ 'type' => 'structure', 'members' => [ 'WindowExecutionId' => [ 'shape' => 'MaintenanceWindowExecutionId', ], 'TaskExecutionId' => [ 'shape' => 'MaintenanceWindowExecutionTaskId', ], 'InvocationId' => [ 'shape' => 'MaintenanceWindowExecutionTaskInvocationId', ], 'ExecutionId' => [ 'shape' => 'MaintenanceWindowExecutionTaskExecutionId', ], 'TaskType' => [ 'shape' => 'MaintenanceWindowTaskType', ], 'Parameters' => [ 'shape' => 'MaintenanceWindowExecutionTaskInvocationParameters', ], 'Status' => [ 'shape' => 'MaintenanceWindowExecutionStatus', ], 'StatusDetails' => [ 'shape' => 'MaintenanceWindowExecutionStatusDetails', ], 'StartTime' => [ 'shape' => 'DateTime', ], 'EndTime' => [ 'shape' => 'DateTime', ], 'OwnerInformation' => [ 'shape' => 'OwnerInformation', ], 'WindowTargetId' => [ 'shape' => 'MaintenanceWindowTaskTargetId', ], ], ], 'MaintenanceWindowExecutionTaskInvocationIdentityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MaintenanceWindowExecutionTaskInvocationIdentity', ], ], 'MaintenanceWindowExecutionTaskInvocationParameters' => [ 'type' => 'string', 'sensitive' => true, ], 'MaintenanceWindowFilter' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'MaintenanceWindowFilterKey', ], 'Values' => [ 'shape' => 'MaintenanceWindowFilterValues', ], ], ], 'MaintenanceWindowFilterKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'MaintenanceWindowFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MaintenanceWindowFilter', ], 'max' => 5, 'min' => 0, ], 'MaintenanceWindowFilterValue' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'MaintenanceWindowFilterValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'MaintenanceWindowFilterValue', ], ], 'MaintenanceWindowId' => [ 'type' => 'string', 'max' => 20, 'min' => 20, 'pattern' => '^mw-[0-9a-f]{17}$', ], 'MaintenanceWindowIdentity' => [ 'type' => 'structure', 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'Name' => [ 'shape' => 'MaintenanceWindowName', ], 'Description' => [ 'shape' => 'MaintenanceWindowDescription', ], 'Enabled' => [ 'shape' => 'MaintenanceWindowEnabled', ], 'Duration' => [ 'shape' => 'MaintenanceWindowDurationHours', ], 'Cutoff' => [ 'shape' => 'MaintenanceWindowCutoff', ], 'Schedule' => [ 'shape' => 'MaintenanceWindowSchedule', ], 'ScheduleTimezone' => [ 'shape' => 'MaintenanceWindowTimezone', ], 'EndDate' => [ 'shape' => 'MaintenanceWindowStringDateTime', ], 'StartDate' => [ 'shape' => 'MaintenanceWindowStringDateTime', ], 'NextExecutionTime' => [ 'shape' => 'MaintenanceWindowStringDateTime', ], ], ], 'MaintenanceWindowIdentityForTarget' => [ 'type' => 'structure', 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'Name' => [ 'shape' => 'MaintenanceWindowName', ], ], ], 'MaintenanceWindowIdentityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MaintenanceWindowIdentity', ], ], 'MaintenanceWindowLambdaClientContext' => [ 'type' => 'string', 'max' => 8000, 'min' => 1, ], 'MaintenanceWindowLambdaParameters' => [ 'type' => 'structure', 'members' => [ 'ClientContext' => [ 'shape' => 'MaintenanceWindowLambdaClientContext', ], 'Qualifier' => [ 'shape' => 'MaintenanceWindowLambdaQualifier', ], 'Payload' => [ 'shape' => 'MaintenanceWindowLambdaPayload', ], ], ], 'MaintenanceWindowLambdaPayload' => [ 'type' => 'blob', 'max' => 4096, 'sensitive' => true, ], 'MaintenanceWindowLambdaQualifier' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'MaintenanceWindowMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 10, ], 'MaintenanceWindowName' => [ 'type' => 'string', 'max' => 128, 'min' => 3, 'pattern' => '^[a-zA-Z0-9_\\-.]{3,128}$', ], 'MaintenanceWindowResourceType' => [ 'type' => 'string', 'enum' => [ 'INSTANCE', ], ], 'MaintenanceWindowRunCommandParameters' => [ 'type' => 'structure', 'members' => [ 'Comment' => [ 'shape' => 'Comment', ], 'DocumentHash' => [ 'shape' => 'DocumentHash', ], 'DocumentHashType' => [ 'shape' => 'DocumentHashType', ], 'NotificationConfig' => [ 'shape' => 'NotificationConfig', ], 'OutputS3BucketName' => [ 'shape' => 'S3BucketName', ], 'OutputS3KeyPrefix' => [ 'shape' => 'S3KeyPrefix', ], 'Parameters' => [ 'shape' => 'Parameters', ], 'ServiceRoleArn' => [ 'shape' => 'ServiceRole', ], 'TimeoutSeconds' => [ 'shape' => 'TimeoutSeconds', 'box' => true, ], ], ], 'MaintenanceWindowSchedule' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'MaintenanceWindowSearchMaxResults' => [ 'type' => 'integer', 'min' => 1, ], 'MaintenanceWindowStepFunctionsInput' => [ 'type' => 'string', 'max' => 4096, 'sensitive' => true, ], 'MaintenanceWindowStepFunctionsName' => [ 'type' => 'string', 'max' => 80, 'min' => 1, ], 'MaintenanceWindowStepFunctionsParameters' => [ 'type' => 'structure', 'members' => [ 'Input' => [ 'shape' => 'MaintenanceWindowStepFunctionsInput', ], 'Name' => [ 'shape' => 'MaintenanceWindowStepFunctionsName', ], ], ], 'MaintenanceWindowStringDateTime' => [ 'type' => 'string', ], 'MaintenanceWindowTarget' => [ 'type' => 'structure', 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'WindowTargetId' => [ 'shape' => 'MaintenanceWindowTargetId', ], 'ResourceType' => [ 'shape' => 'MaintenanceWindowResourceType', ], 'Targets' => [ 'shape' => 'Targets', ], 'OwnerInformation' => [ 'shape' => 'OwnerInformation', ], 'Name' => [ 'shape' => 'MaintenanceWindowName', ], 'Description' => [ 'shape' => 'MaintenanceWindowDescription', ], ], ], 'MaintenanceWindowTargetId' => [ 'type' => 'string', 'max' => 36, 'min' => 36, '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}$', ], 'MaintenanceWindowTargetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MaintenanceWindowTarget', ], ], 'MaintenanceWindowTask' => [ 'type' => 'structure', 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'WindowTaskId' => [ 'shape' => 'MaintenanceWindowTaskId', ], 'TaskArn' => [ 'shape' => 'MaintenanceWindowTaskArn', ], 'Type' => [ 'shape' => 'MaintenanceWindowTaskType', ], 'Targets' => [ 'shape' => 'Targets', ], 'TaskParameters' => [ 'shape' => 'MaintenanceWindowTaskParameters', ], 'Priority' => [ 'shape' => 'MaintenanceWindowTaskPriority', ], 'LoggingInfo' => [ 'shape' => 'LoggingInfo', ], 'ServiceRoleArn' => [ 'shape' => 'ServiceRole', ], 'MaxConcurrency' => [ 'shape' => 'MaxConcurrency', ], 'MaxErrors' => [ 'shape' => 'MaxErrors', ], 'Name' => [ 'shape' => 'MaintenanceWindowName', ], 'Description' => [ 'shape' => 'MaintenanceWindowDescription', ], ], ], 'MaintenanceWindowTaskArn' => [ 'type' => 'string', 'max' => 1600, 'min' => 1, ], 'MaintenanceWindowTaskId' => [ 'type' => 'string', 'max' => 36, 'min' => 36, '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}$', ], 'MaintenanceWindowTaskInvocationParameters' => [ 'type' => 'structure', 'members' => [ 'RunCommand' => [ 'shape' => 'MaintenanceWindowRunCommandParameters', ], 'Automation' => [ 'shape' => 'MaintenanceWindowAutomationParameters', ], 'StepFunctions' => [ 'shape' => 'MaintenanceWindowStepFunctionsParameters', ], 'Lambda' => [ 'shape' => 'MaintenanceWindowLambdaParameters', ], ], ], 'MaintenanceWindowTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MaintenanceWindowTask', ], ], 'MaintenanceWindowTaskParameterName' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'MaintenanceWindowTaskParameterValue' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'sensitive' => true, ], 'MaintenanceWindowTaskParameterValueExpression' => [ 'type' => 'structure', 'members' => [ 'Values' => [ 'shape' => 'MaintenanceWindowTaskParameterValueList', ], ], 'sensitive' => true, ], 'MaintenanceWindowTaskParameterValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MaintenanceWindowTaskParameterValue', ], 'sensitive' => true, ], 'MaintenanceWindowTaskParameters' => [ 'type' => 'map', 'key' => [ 'shape' => 'MaintenanceWindowTaskParameterName', ], 'value' => [ 'shape' => 'MaintenanceWindowTaskParameterValueExpression', ], 'sensitive' => true, ], 'MaintenanceWindowTaskParametersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MaintenanceWindowTaskParameters', ], 'sensitive' => true, ], 'MaintenanceWindowTaskPriority' => [ 'type' => 'integer', 'min' => 0, ], 'MaintenanceWindowTaskTargetId' => [ 'type' => 'string', 'max' => 36, ], 'MaintenanceWindowTaskType' => [ 'type' => 'string', 'enum' => [ 'RUN_COMMAND', 'AUTOMATION', 'STEP_FUNCTIONS', 'LAMBDA', ], ], 'MaintenanceWindowTimezone' => [ 'type' => 'string', ], 'MaintenanceWindowsForTargetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MaintenanceWindowIdentityForTarget', ], ], 'ManagedInstanceId' => [ 'type' => 'string', 'pattern' => '^mi-[0-9a-f]{17}$', ], 'MaxConcurrency' => [ 'type' => 'string', 'max' => 7, 'min' => 1, 'pattern' => '^([1-9][0-9]*|[1-9][0-9]%|[1-9]%|100%)$', ], 'MaxDocumentSizeExceeded' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'MaxErrors' => [ 'type' => 'string', 'max' => 7, 'min' => 1, 'pattern' => '^([1-9][0-9]*|[0]|[1-9][0-9]%|[0-9]%|100%)$', ], 'MaxResults' => [ 'type' => 'integer', 'max' => 50, 'min' => 1, ], 'MaxResultsEC2Compatible' => [ 'type' => 'integer', 'max' => 50, 'min' => 5, ], 'ModifyDocumentPermissionRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'PermissionType', ], 'members' => [ 'Name' => [ 'shape' => 'DocumentName', ], 'PermissionType' => [ 'shape' => 'DocumentPermissionType', ], 'AccountIdsToAdd' => [ 'shape' => 'AccountIdList', ], 'AccountIdsToRemove' => [ 'shape' => 'AccountIdList', ], ], ], 'ModifyDocumentPermissionResponse' => [ 'type' => 'structure', 'members' => [], ], 'NextToken' => [ 'type' => 'string', ], 'NonCompliantSummary' => [ 'type' => 'structure', 'members' => [ 'NonCompliantCount' => [ 'shape' => 'ComplianceSummaryCount', ], 'SeveritySummary' => [ 'shape' => 'SeveritySummary', ], ], ], 'NormalStringMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'NotificationArn' => [ 'type' => 'string', ], 'NotificationConfig' => [ 'type' => 'structure', 'members' => [ 'NotificationArn' => [ 'shape' => 'NotificationArn', ], 'NotificationEvents' => [ 'shape' => 'NotificationEventList', ], 'NotificationType' => [ 'shape' => 'NotificationType', ], ], ], 'NotificationEvent' => [ 'type' => 'string', 'enum' => [ 'All', 'InProgress', 'Success', 'TimedOut', 'Cancelled', 'Failed', ], ], 'NotificationEventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NotificationEvent', ], ], 'NotificationType' => [ 'type' => 'string', 'enum' => [ 'Command', 'Invocation', ], ], 'OperatingSystem' => [ 'type' => 'string', 'enum' => [ 'WINDOWS', 'AMAZON_LINUX', 'AMAZON_LINUX_2', 'UBUNTU', 'REDHAT_ENTERPRISE_LINUX', 'SUSE', 'CENTOS', ], ], 'OutputSource' => [ 'type' => 'structure', 'members' => [ 'OutputSourceId' => [ 'shape' => 'OutputSourceId', ], 'OutputSourceType' => [ 'shape' => 'OutputSourceType', ], ], ], 'OutputSourceId' => [ 'type' => 'string', 'max' => 36, 'min' => 36, ], 'OutputSourceType' => [ 'type' => 'string', ], 'OwnerInformation' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'sensitive' => true, ], 'PSParameterName' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'PSParameterSelector' => [ 'type' => 'string', 'max' => 128, 'min' => 0, ], 'PSParameterValue' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, ], 'PSParameterVersion' => [ 'type' => 'long', ], 'Parameter' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'PSParameterName', ], 'Type' => [ 'shape' => 'ParameterType', ], 'Value' => [ 'shape' => 'PSParameterValue', ], 'Version' => [ 'shape' => 'PSParameterVersion', ], 'Selector' => [ 'shape' => 'PSParameterSelector', ], 'SourceResult' => [ 'shape' => 'String', ], 'LastModifiedDate' => [ 'shape' => 'DateTime', ], 'ARN' => [ 'shape' => 'String', ], ], ], 'ParameterAlreadyExists' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ParameterDescription' => [ 'type' => 'string', 'max' => 1024, 'min' => 0, ], 'ParameterHistory' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'PSParameterName', ], 'Type' => [ 'shape' => 'ParameterType', ], 'KeyId' => [ 'shape' => 'ParameterKeyId', ], 'LastModifiedDate' => [ 'shape' => 'DateTime', ], 'LastModifiedUser' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'ParameterDescription', ], 'Value' => [ 'shape' => 'PSParameterValue', ], 'AllowedPattern' => [ 'shape' => 'AllowedPattern', ], 'Version' => [ 'shape' => 'PSParameterVersion', ], 'Labels' => [ 'shape' => 'ParameterLabelList', ], ], ], 'ParameterHistoryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParameterHistory', ], ], 'ParameterKeyId' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^([a-zA-Z0-9:/_-]+)$', ], 'ParameterLabel' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'ParameterLabelList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParameterLabel', ], 'max' => 10, 'min' => 1, ], 'ParameterLimitExceeded' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ParameterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Parameter', ], ], 'ParameterMaxVersionLimitExceeded' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ParameterMetadata' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'PSParameterName', ], 'Type' => [ 'shape' => 'ParameterType', ], 'KeyId' => [ 'shape' => 'ParameterKeyId', ], 'LastModifiedDate' => [ 'shape' => 'DateTime', ], 'LastModifiedUser' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'ParameterDescription', ], 'AllowedPattern' => [ 'shape' => 'AllowedPattern', ], 'Version' => [ 'shape' => 'PSParameterVersion', ], ], ], 'ParameterMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParameterMetadata', ], ], 'ParameterName' => [ 'type' => 'string', ], 'ParameterNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PSParameterName', ], 'max' => 10, 'min' => 1, ], 'ParameterNotFound' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ParameterPatternMismatchException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ParameterStringFilter' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'Key' => [ 'shape' => 'ParameterStringFilterKey', ], 'Option' => [ 'shape' => 'ParameterStringQueryOption', ], 'Values' => [ 'shape' => 'ParameterStringFilterValueList', ], ], ], 'ParameterStringFilterKey' => [ 'type' => 'string', 'max' => 132, 'min' => 1, 'pattern' => 'tag:.+|Name|Type|KeyId|Path|Label', ], 'ParameterStringFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParameterStringFilter', ], ], 'ParameterStringFilterValue' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'ParameterStringFilterValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParameterStringFilterValue', ], 'max' => 50, 'min' => 1, ], 'ParameterStringQueryOption' => [ 'type' => 'string', 'max' => 10, 'min' => 1, ], 'ParameterType' => [ 'type' => 'string', 'enum' => [ 'String', 'StringList', 'SecureString', ], ], 'ParameterValue' => [ 'type' => 'string', ], 'ParameterValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParameterValue', ], ], 'ParameterVersionLabelLimitExceeded' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ParameterVersionNotFound' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'Parameters' => [ 'type' => 'map', 'key' => [ 'shape' => 'ParameterName', ], 'value' => [ 'shape' => 'ParameterValueList', ], ], 'ParametersFilter' => [ 'type' => 'structure', 'required' => [ 'Key', 'Values', ], 'members' => [ 'Key' => [ 'shape' => 'ParametersFilterKey', ], 'Values' => [ 'shape' => 'ParametersFilterValueList', ], ], ], 'ParametersFilterKey' => [ 'type' => 'string', 'enum' => [ 'Name', 'Type', 'KeyId', ], ], 'ParametersFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParametersFilter', ], ], 'ParametersFilterValue' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'ParametersFilterValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParametersFilterValue', ], 'max' => 50, 'min' => 1, ], 'Patch' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'PatchId', ], 'ReleaseDate' => [ 'shape' => 'DateTime', ], 'Title' => [ 'shape' => 'PatchTitle', ], 'Description' => [ 'shape' => 'PatchDescription', ], 'ContentUrl' => [ 'shape' => 'PatchContentUrl', ], 'Vendor' => [ 'shape' => 'PatchVendor', ], 'ProductFamily' => [ 'shape' => 'PatchProductFamily', ], 'Product' => [ 'shape' => 'PatchProduct', ], 'Classification' => [ 'shape' => 'PatchClassification', ], 'MsrcSeverity' => [ 'shape' => 'PatchMsrcSeverity', ], 'KbNumber' => [ 'shape' => 'PatchKbNumber', ], 'MsrcNumber' => [ 'shape' => 'PatchMsrcNumber', ], 'Language' => [ 'shape' => 'PatchLanguage', ], ], ], 'PatchAction' => [ 'type' => 'string', 'enum' => [ 'ALLOW_AS_DEPENDENCY', 'BLOCK', ], ], 'PatchBaselineIdentity' => [ 'type' => 'structure', 'members' => [ 'BaselineId' => [ 'shape' => 'BaselineId', ], 'BaselineName' => [ 'shape' => 'BaselineName', ], 'OperatingSystem' => [ 'shape' => 'OperatingSystem', ], 'BaselineDescription' => [ 'shape' => 'BaselineDescription', ], 'DefaultBaseline' => [ 'shape' => 'DefaultBaseline', ], ], ], 'PatchBaselineIdentityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PatchBaselineIdentity', ], ], 'PatchBaselineMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'PatchClassification' => [ 'type' => 'string', ], 'PatchComplianceData' => [ 'type' => 'structure', 'required' => [ 'Title', 'KBId', 'Classification', 'Severity', 'State', 'InstalledTime', ], 'members' => [ 'Title' => [ 'shape' => 'PatchTitle', ], 'KBId' => [ 'shape' => 'PatchKbNumber', ], 'Classification' => [ 'shape' => 'PatchClassification', ], 'Severity' => [ 'shape' => 'PatchSeverity', ], 'State' => [ 'shape' => 'PatchComplianceDataState', ], 'InstalledTime' => [ 'shape' => 'DateTime', ], ], ], 'PatchComplianceDataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PatchComplianceData', ], ], 'PatchComplianceDataState' => [ 'type' => 'string', 'enum' => [ 'INSTALLED', 'INSTALLED_OTHER', 'INSTALLED_REJECTED', 'MISSING', 'NOT_APPLICABLE', 'FAILED', ], ], 'PatchComplianceLevel' => [ 'type' => 'string', 'enum' => [ 'CRITICAL', 'HIGH', 'MEDIUM', 'LOW', 'INFORMATIONAL', 'UNSPECIFIED', ], ], 'PatchComplianceMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 10, ], 'PatchContentUrl' => [ 'type' => 'string', ], 'PatchDeploymentStatus' => [ 'type' => 'string', 'enum' => [ 'APPROVED', 'PENDING_APPROVAL', 'EXPLICIT_APPROVED', 'EXPLICIT_REJECTED', ], ], 'PatchDescription' => [ 'type' => 'string', ], 'PatchFailedCount' => [ 'type' => 'integer', ], 'PatchFilter' => [ 'type' => 'structure', 'required' => [ 'Key', 'Values', ], 'members' => [ 'Key' => [ 'shape' => 'PatchFilterKey', ], 'Values' => [ 'shape' => 'PatchFilterValueList', ], ], ], 'PatchFilterGroup' => [ 'type' => 'structure', 'required' => [ 'PatchFilters', ], 'members' => [ 'PatchFilters' => [ 'shape' => 'PatchFilterList', ], ], ], 'PatchFilterKey' => [ 'type' => 'string', 'enum' => [ 'PRODUCT', 'CLASSIFICATION', 'MSRC_SEVERITY', 'PATCH_ID', 'SECTION', 'PRIORITY', 'SEVERITY', ], ], 'PatchFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PatchFilter', ], 'max' => 4, 'min' => 0, ], 'PatchFilterValue' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'PatchFilterValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PatchFilterValue', ], 'max' => 20, 'min' => 1, ], 'PatchGroup' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'PatchGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PatchGroup', ], ], 'PatchGroupPatchBaselineMapping' => [ 'type' => 'structure', 'members' => [ 'PatchGroup' => [ 'shape' => 'PatchGroup', ], 'BaselineIdentity' => [ 'shape' => 'PatchBaselineIdentity', ], ], ], 'PatchGroupPatchBaselineMappingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PatchGroupPatchBaselineMapping', ], ], 'PatchId' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'PatchIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PatchId', ], 'max' => 50, 'min' => 0, ], 'PatchInstalledCount' => [ 'type' => 'integer', ], 'PatchInstalledOtherCount' => [ 'type' => 'integer', ], 'PatchInstalledRejectedCount' => [ 'type' => 'integer', ], 'PatchKbNumber' => [ 'type' => 'string', ], 'PatchLanguage' => [ 'type' => 'string', ], 'PatchList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Patch', ], ], 'PatchMissingCount' => [ 'type' => 'integer', ], 'PatchMsrcNumber' => [ 'type' => 'string', ], 'PatchMsrcSeverity' => [ 'type' => 'string', ], 'PatchNotApplicableCount' => [ 'type' => 'integer', ], 'PatchOperationType' => [ 'type' => 'string', 'enum' => [ 'Scan', 'Install', ], ], 'PatchOrchestratorFilter' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'PatchOrchestratorFilterKey', ], 'Values' => [ 'shape' => 'PatchOrchestratorFilterValues', ], ], ], 'PatchOrchestratorFilterKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'PatchOrchestratorFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PatchOrchestratorFilter', ], 'max' => 5, 'min' => 0, ], 'PatchOrchestratorFilterValue' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'PatchOrchestratorFilterValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'PatchOrchestratorFilterValue', ], ], 'PatchProduct' => [ 'type' => 'string', ], 'PatchProductFamily' => [ 'type' => 'string', ], 'PatchRule' => [ 'type' => 'structure', 'required' => [ 'PatchFilterGroup', 'ApproveAfterDays', ], 'members' => [ 'PatchFilterGroup' => [ 'shape' => 'PatchFilterGroup', ], 'ComplianceLevel' => [ 'shape' => 'PatchComplianceLevel', ], 'ApproveAfterDays' => [ 'shape' => 'ApproveAfterDays', 'box' => true, ], 'EnableNonSecurity' => [ 'shape' => 'Boolean', 'box' => true, ], ], ], 'PatchRuleGroup' => [ 'type' => 'structure', 'required' => [ 'PatchRules', ], 'members' => [ 'PatchRules' => [ 'shape' => 'PatchRuleList', ], ], ], 'PatchRuleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PatchRule', ], 'max' => 10, 'min' => 0, ], 'PatchSeverity' => [ 'type' => 'string', ], 'PatchSource' => [ 'type' => 'structure', 'required' => [ 'Name', 'Products', 'Configuration', ], 'members' => [ 'Name' => [ 'shape' => 'PatchSourceName', ], 'Products' => [ 'shape' => 'PatchSourceProductList', ], 'Configuration' => [ 'shape' => 'PatchSourceConfiguration', ], ], ], 'PatchSourceConfiguration' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'sensitive' => true, ], 'PatchSourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PatchSource', ], 'max' => 20, 'min' => 0, ], 'PatchSourceName' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9_\\-.]{3,50}$', ], 'PatchSourceProduct' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'PatchSourceProductList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PatchSourceProduct', ], 'max' => 20, 'min' => 1, ], 'PatchStatus' => [ 'type' => 'structure', 'members' => [ 'DeploymentStatus' => [ 'shape' => 'PatchDeploymentStatus', ], 'ComplianceLevel' => [ 'shape' => 'PatchComplianceLevel', ], 'ApprovalDate' => [ 'shape' => 'DateTime', ], ], ], 'PatchTitle' => [ 'type' => 'string', ], 'PatchVendor' => [ 'type' => 'string', ], 'PingStatus' => [ 'type' => 'string', 'enum' => [ 'Online', 'ConnectionLost', 'Inactive', ], ], 'PlatformType' => [ 'type' => 'string', 'enum' => [ 'Windows', 'Linux', ], ], 'PlatformTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlatformType', ], ], 'Product' => [ 'type' => 'string', ], 'ProgressCounters' => [ 'type' => 'structure', 'members' => [ 'TotalSteps' => [ 'shape' => 'Integer', ], 'SuccessSteps' => [ 'shape' => 'Integer', ], 'FailedSteps' => [ 'shape' => 'Integer', ], 'CancelledSteps' => [ 'shape' => 'Integer', ], 'TimedOutSteps' => [ 'shape' => 'Integer', ], ], ], 'PutComplianceItemsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', 'ResourceType', 'ComplianceType', 'ExecutionSummary', 'Items', ], 'members' => [ 'ResourceId' => [ 'shape' => 'ComplianceResourceId', ], 'ResourceType' => [ 'shape' => 'ComplianceResourceType', ], 'ComplianceType' => [ 'shape' => 'ComplianceTypeName', ], 'ExecutionSummary' => [ 'shape' => 'ComplianceExecutionSummary', ], 'Items' => [ 'shape' => 'ComplianceItemEntryList', ], 'ItemContentHash' => [ 'shape' => 'ComplianceItemContentHash', ], ], ], 'PutComplianceItemsResult' => [ 'type' => 'structure', 'members' => [], ], 'PutInventoryMessage' => [ 'type' => 'string', ], 'PutInventoryRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'Items', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'Items' => [ 'shape' => 'InventoryItemList', ], ], ], 'PutInventoryResult' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'PutInventoryMessage', ], ], ], 'PutParameterRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'Value', 'Type', ], 'members' => [ 'Name' => [ 'shape' => 'PSParameterName', ], 'Description' => [ 'shape' => 'ParameterDescription', ], 'Value' => [ 'shape' => 'PSParameterValue', ], 'Type' => [ 'shape' => 'ParameterType', ], 'KeyId' => [ 'shape' => 'ParameterKeyId', ], 'Overwrite' => [ 'shape' => 'Boolean', 'box' => true, ], 'AllowedPattern' => [ 'shape' => 'AllowedPattern', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'PutParameterResult' => [ 'type' => 'structure', 'members' => [ 'Version' => [ 'shape' => 'PSParameterVersion', ], ], ], 'Region' => [ 'type' => 'string', ], 'Regions' => [ 'type' => 'list', 'member' => [ 'shape' => 'Region', ], 'max' => 50, 'min' => 1, ], 'RegisterDefaultPatchBaselineRequest' => [ 'type' => 'structure', 'required' => [ 'BaselineId', ], 'members' => [ 'BaselineId' => [ 'shape' => 'BaselineId', ], ], ], 'RegisterDefaultPatchBaselineResult' => [ 'type' => 'structure', 'members' => [ 'BaselineId' => [ 'shape' => 'BaselineId', ], ], ], 'RegisterPatchBaselineForPatchGroupRequest' => [ 'type' => 'structure', 'required' => [ 'BaselineId', 'PatchGroup', ], 'members' => [ 'BaselineId' => [ 'shape' => 'BaselineId', ], 'PatchGroup' => [ 'shape' => 'PatchGroup', ], ], ], 'RegisterPatchBaselineForPatchGroupResult' => [ 'type' => 'structure', 'members' => [ 'BaselineId' => [ 'shape' => 'BaselineId', ], 'PatchGroup' => [ 'shape' => 'PatchGroup', ], ], ], 'RegisterTargetWithMaintenanceWindowRequest' => [ 'type' => 'structure', 'required' => [ 'WindowId', 'ResourceType', 'Targets', ], 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'ResourceType' => [ 'shape' => 'MaintenanceWindowResourceType', ], 'Targets' => [ 'shape' => 'Targets', ], 'OwnerInformation' => [ 'shape' => 'OwnerInformation', ], 'Name' => [ 'shape' => 'MaintenanceWindowName', ], 'Description' => [ 'shape' => 'MaintenanceWindowDescription', ], 'ClientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'RegisterTargetWithMaintenanceWindowResult' => [ 'type' => 'structure', 'members' => [ 'WindowTargetId' => [ 'shape' => 'MaintenanceWindowTargetId', ], ], ], 'RegisterTaskWithMaintenanceWindowRequest' => [ 'type' => 'structure', 'required' => [ 'WindowId', 'Targets', 'TaskArn', 'TaskType', 'MaxConcurrency', 'MaxErrors', ], 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'Targets' => [ 'shape' => 'Targets', ], 'TaskArn' => [ 'shape' => 'MaintenanceWindowTaskArn', ], 'ServiceRoleArn' => [ 'shape' => 'ServiceRole', ], 'TaskType' => [ 'shape' => 'MaintenanceWindowTaskType', ], 'TaskParameters' => [ 'shape' => 'MaintenanceWindowTaskParameters', ], 'TaskInvocationParameters' => [ 'shape' => 'MaintenanceWindowTaskInvocationParameters', ], 'Priority' => [ 'shape' => 'MaintenanceWindowTaskPriority', 'box' => true, ], 'MaxConcurrency' => [ 'shape' => 'MaxConcurrency', ], 'MaxErrors' => [ 'shape' => 'MaxErrors', ], 'LoggingInfo' => [ 'shape' => 'LoggingInfo', ], 'Name' => [ 'shape' => 'MaintenanceWindowName', ], 'Description' => [ 'shape' => 'MaintenanceWindowDescription', ], 'ClientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'RegisterTaskWithMaintenanceWindowResult' => [ 'type' => 'structure', 'members' => [ 'WindowTaskId' => [ 'shape' => 'MaintenanceWindowTaskId', ], ], ], 'RegistrationLimit' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'RegistrationsCount' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'RemainingCount' => [ 'type' => 'integer', ], 'RemoveTagsFromResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceType', 'ResourceId', 'TagKeys', ], 'members' => [ 'ResourceType' => [ 'shape' => 'ResourceTypeForTagging', ], 'ResourceId' => [ 'shape' => 'ResourceId', ], 'TagKeys' => [ 'shape' => 'KeyList', ], ], ], 'RemoveTagsFromResourceResult' => [ 'type' => 'structure', 'members' => [], ], 'ResetServiceSettingRequest' => [ 'type' => 'structure', 'required' => [ 'SettingId', ], 'members' => [ 'SettingId' => [ 'shape' => 'ServiceSettingId', ], ], ], 'ResetServiceSettingResult' => [ 'type' => 'structure', 'members' => [ 'ServiceSetting' => [ 'shape' => 'ServiceSetting', ], ], ], 'ResolvedTargets' => [ 'type' => 'structure', 'members' => [ 'ParameterValues' => [ 'shape' => 'TargetParameterList', ], 'Truncated' => [ 'shape' => 'Boolean', ], ], ], 'ResourceComplianceSummaryItem' => [ 'type' => 'structure', 'members' => [ 'ComplianceType' => [ 'shape' => 'ComplianceTypeName', ], 'ResourceType' => [ 'shape' => 'ComplianceResourceType', ], 'ResourceId' => [ 'shape' => 'ComplianceResourceId', ], 'Status' => [ 'shape' => 'ComplianceStatus', ], 'OverallSeverity' => [ 'shape' => 'ComplianceSeverity', ], 'ExecutionSummary' => [ 'shape' => 'ComplianceExecutionSummary', ], 'CompliantSummary' => [ 'shape' => 'CompliantSummary', ], 'NonCompliantSummary' => [ 'shape' => 'NonCompliantSummary', ], ], ], 'ResourceComplianceSummaryItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceComplianceSummaryItem', ], ], 'ResourceCount' => [ 'type' => 'integer', ], 'ResourceCountByStatus' => [ 'type' => 'string', ], 'ResourceDataSyncAWSKMSKeyARN' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => 'arn:.*', ], 'ResourceDataSyncAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'SyncName' => [ 'shape' => 'ResourceDataSyncName', ], ], 'exception' => true, ], 'ResourceDataSyncCountExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResourceDataSyncCreatedTime' => [ 'type' => 'timestamp', ], 'ResourceDataSyncInvalidConfigurationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResourceDataSyncItem' => [ 'type' => 'structure', 'members' => [ 'SyncName' => [ 'shape' => 'ResourceDataSyncName', ], 'S3Destination' => [ 'shape' => 'ResourceDataSyncS3Destination', ], 'LastSyncTime' => [ 'shape' => 'LastResourceDataSyncTime', ], 'LastSuccessfulSyncTime' => [ 'shape' => 'LastSuccessfulResourceDataSyncTime', ], 'LastStatus' => [ 'shape' => 'LastResourceDataSyncStatus', ], 'SyncCreatedTime' => [ 'shape' => 'ResourceDataSyncCreatedTime', ], 'LastSyncStatusMessage' => [ 'shape' => 'LastResourceDataSyncMessage', ], ], ], 'ResourceDataSyncItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceDataSyncItem', ], ], 'ResourceDataSyncName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'ResourceDataSyncNotFoundException' => [ 'type' => 'structure', 'members' => [ 'SyncName' => [ 'shape' => 'ResourceDataSyncName', ], ], 'exception' => true, ], 'ResourceDataSyncS3BucketName' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'ResourceDataSyncS3Destination' => [ 'type' => 'structure', 'required' => [ 'BucketName', 'SyncFormat', 'Region', ], 'members' => [ 'BucketName' => [ 'shape' => 'ResourceDataSyncS3BucketName', ], 'Prefix' => [ 'shape' => 'ResourceDataSyncS3Prefix', ], 'SyncFormat' => [ 'shape' => 'ResourceDataSyncS3Format', ], 'Region' => [ 'shape' => 'ResourceDataSyncS3Region', ], 'AWSKMSKeyARN' => [ 'shape' => 'ResourceDataSyncAWSKMSKeyARN', ], ], ], 'ResourceDataSyncS3Format' => [ 'type' => 'string', 'enum' => [ 'JsonSerDe', ], ], 'ResourceDataSyncS3Prefix' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'ResourceDataSyncS3Region' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'ResourceId' => [ 'type' => 'string', ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResourceLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResourceType' => [ 'type' => 'string', 'enum' => [ 'ManagedInstance', 'Document', 'EC2Instance', ], ], 'ResourceTypeForTagging' => [ 'type' => 'string', 'enum' => [ 'Document', 'ManagedInstance', 'MaintenanceWindow', 'Parameter', 'PatchBaseline', ], ], 'ResponseCode' => [ 'type' => 'integer', ], 'ResultAttribute' => [ 'type' => 'structure', 'required' => [ 'TypeName', ], 'members' => [ 'TypeName' => [ 'shape' => 'InventoryItemTypeName', ], ], ], 'ResultAttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResultAttribute', ], 'max' => 1, 'min' => 1, ], 'ResumeSessionRequest' => [ 'type' => 'structure', 'required' => [ 'SessionId', ], 'members' => [ 'SessionId' => [ 'shape' => 'SessionId', ], ], ], 'ResumeSessionResponse' => [ 'type' => 'structure', 'members' => [ 'SessionId' => [ 'shape' => 'SessionId', ], 'TokenValue' => [ 'shape' => 'TokenValue', ], 'StreamUrl' => [ 'shape' => 'StreamUrl', ], ], ], 'S3BucketName' => [ 'type' => 'string', 'max' => 63, 'min' => 3, ], 'S3KeyPrefix' => [ 'type' => 'string', 'max' => 500, ], 'S3OutputLocation' => [ 'type' => 'structure', 'members' => [ 'OutputS3Region' => [ 'shape' => 'S3Region', ], 'OutputS3BucketName' => [ 'shape' => 'S3BucketName', ], 'OutputS3KeyPrefix' => [ 'shape' => 'S3KeyPrefix', ], ], ], 'S3OutputUrl' => [ 'type' => 'structure', 'members' => [ 'OutputUrl' => [ 'shape' => 'Url', ], ], ], 'S3Region' => [ 'type' => 'string', 'max' => 20, 'min' => 3, ], 'ScheduleExpression' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'ScheduledWindowExecution' => [ 'type' => 'structure', 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'Name' => [ 'shape' => 'MaintenanceWindowName', ], 'ExecutionTime' => [ 'shape' => 'MaintenanceWindowStringDateTime', ], ], ], 'ScheduledWindowExecutionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledWindowExecution', ], ], 'SendAutomationSignalRequest' => [ 'type' => 'structure', 'required' => [ 'AutomationExecutionId', 'SignalType', ], 'members' => [ 'AutomationExecutionId' => [ 'shape' => 'AutomationExecutionId', ], 'SignalType' => [ 'shape' => 'SignalType', ], 'Payload' => [ 'shape' => 'AutomationParameterMap', ], ], ], 'SendAutomationSignalResult' => [ 'type' => 'structure', 'members' => [], ], 'SendCommandRequest' => [ 'type' => 'structure', 'required' => [ 'DocumentName', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdList', ], 'Targets' => [ 'shape' => 'Targets', ], 'DocumentName' => [ 'shape' => 'DocumentARN', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'DocumentHash' => [ 'shape' => 'DocumentHash', ], 'DocumentHashType' => [ 'shape' => 'DocumentHashType', ], 'TimeoutSeconds' => [ 'shape' => 'TimeoutSeconds', 'box' => true, ], 'Comment' => [ 'shape' => 'Comment', ], 'Parameters' => [ 'shape' => 'Parameters', ], 'OutputS3Region' => [ 'shape' => 'S3Region', ], 'OutputS3BucketName' => [ 'shape' => 'S3BucketName', ], 'OutputS3KeyPrefix' => [ 'shape' => 'S3KeyPrefix', ], 'MaxConcurrency' => [ 'shape' => 'MaxConcurrency', ], 'MaxErrors' => [ 'shape' => 'MaxErrors', ], 'ServiceRoleArn' => [ 'shape' => 'ServiceRole', ], 'NotificationConfig' => [ 'shape' => 'NotificationConfig', ], 'CloudWatchOutputConfig' => [ 'shape' => 'CloudWatchOutputConfig', ], ], ], 'SendCommandResult' => [ 'type' => 'structure', 'members' => [ 'Command' => [ 'shape' => 'Command', ], ], ], 'ServiceRole' => [ 'type' => 'string', ], 'ServiceSetting' => [ 'type' => 'structure', 'members' => [ 'SettingId' => [ 'shape' => 'ServiceSettingId', ], 'SettingValue' => [ 'shape' => 'ServiceSettingValue', ], 'LastModifiedDate' => [ 'shape' => 'DateTime', ], 'LastModifiedUser' => [ 'shape' => 'String', ], 'ARN' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'String', ], ], ], 'ServiceSettingId' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, ], 'ServiceSettingNotFound' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ServiceSettingValue' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, ], 'Session' => [ 'type' => 'structure', 'members' => [ 'SessionId' => [ 'shape' => 'SessionId', ], 'Target' => [ 'shape' => 'SessionTarget', ], 'Status' => [ 'shape' => 'SessionStatus', ], 'StartDate' => [ 'shape' => 'DateTime', ], 'EndDate' => [ 'shape' => 'DateTime', ], 'DocumentName' => [ 'shape' => 'DocumentName', ], 'Owner' => [ 'shape' => 'SessionOwner', ], 'Details' => [ 'shape' => 'SessionDetails', ], 'OutputUrl' => [ 'shape' => 'SessionManagerOutputUrl', ], ], ], 'SessionDetails' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'SessionFilter' => [ 'type' => 'structure', 'required' => [ 'key', 'value', ], 'members' => [ 'key' => [ 'shape' => 'SessionFilterKey', ], 'value' => [ 'shape' => 'SessionFilterValue', ], ], ], 'SessionFilterKey' => [ 'type' => 'string', 'enum' => [ 'InvokedAfter', 'InvokedBefore', 'Target', 'Owner', 'Status', ], ], 'SessionFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SessionFilter', ], 'max' => 5, 'min' => 1, ], 'SessionFilterValue' => [ 'type' => 'string', 'max' => 200, 'min' => 1, ], 'SessionId' => [ 'type' => 'string', 'max' => 96, 'min' => 1, ], 'SessionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Session', ], ], 'SessionManagerCloudWatchOutputUrl' => [ 'type' => 'string', 'max' => 2083, 'min' => 1, ], 'SessionManagerOutputUrl' => [ 'type' => 'structure', 'members' => [ 'S3OutputUrl' => [ 'shape' => 'SessionManagerS3OutputUrl', ], 'CloudWatchOutputUrl' => [ 'shape' => 'SessionManagerCloudWatchOutputUrl', ], ], ], 'SessionManagerParameterName' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'SessionManagerParameterValue' => [ 'type' => 'string', 'max' => 65535, 'min' => 1, ], 'SessionManagerParameterValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SessionManagerParameterValue', ], ], 'SessionManagerParameters' => [ 'type' => 'map', 'key' => [ 'shape' => 'SessionManagerParameterName', ], 'value' => [ 'shape' => 'SessionManagerParameterValueList', ], ], 'SessionManagerS3OutputUrl' => [ 'type' => 'string', 'max' => 2083, 'min' => 1, ], 'SessionMaxResults' => [ 'type' => 'integer', 'max' => 200, 'min' => 1, ], 'SessionOwner' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'SessionState' => [ 'type' => 'string', 'enum' => [ 'Active', 'History', ], ], 'SessionStatus' => [ 'type' => 'string', 'enum' => [ 'Connected', 'Connecting', 'Disconnected', 'Terminated', 'Terminating', 'Failed', ], ], 'SessionTarget' => [ 'type' => 'string', 'max' => 50, 'min' => 1, ], 'SeveritySummary' => [ 'type' => 'structure', 'members' => [ 'CriticalCount' => [ 'shape' => 'ComplianceSummaryCount', ], 'HighCount' => [ 'shape' => 'ComplianceSummaryCount', ], 'MediumCount' => [ 'shape' => 'ComplianceSummaryCount', ], 'LowCount' => [ 'shape' => 'ComplianceSummaryCount', ], 'InformationalCount' => [ 'shape' => 'ComplianceSummaryCount', ], 'UnspecifiedCount' => [ 'shape' => 'ComplianceSummaryCount', ], ], ], 'SignalType' => [ 'type' => 'string', 'enum' => [ 'Approve', 'Reject', 'StartStep', 'StopStep', 'Resume', ], ], 'SnapshotDownloadUrl' => [ 'type' => 'string', ], 'SnapshotId' => [ 'type' => 'string', 'max' => 36, 'min' => 36, '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}$', ], 'StandardErrorContent' => [ 'type' => 'string', 'max' => 8000, ], 'StandardOutputContent' => [ 'type' => 'string', 'max' => 24000, ], 'StartAssociationsOnceRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationIds', ], 'members' => [ 'AssociationIds' => [ 'shape' => 'AssociationIdList', ], ], ], 'StartAssociationsOnceResult' => [ 'type' => 'structure', 'members' => [], ], 'StartAutomationExecutionRequest' => [ 'type' => 'structure', 'required' => [ 'DocumentName', ], 'members' => [ 'DocumentName' => [ 'shape' => 'DocumentARN', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', 'box' => true, ], 'Parameters' => [ 'shape' => 'AutomationParameterMap', ], 'ClientToken' => [ 'shape' => 'IdempotencyToken', ], 'Mode' => [ 'shape' => 'ExecutionMode', ], 'TargetParameterName' => [ 'shape' => 'AutomationParameterKey', ], 'Targets' => [ 'shape' => 'Targets', ], 'TargetMaps' => [ 'shape' => 'TargetMaps', ], 'MaxConcurrency' => [ 'shape' => 'MaxConcurrency', ], 'MaxErrors' => [ 'shape' => 'MaxErrors', ], 'TargetLocations' => [ 'shape' => 'TargetLocations', 'box' => true, ], ], ], 'StartAutomationExecutionResult' => [ 'type' => 'structure', 'members' => [ 'AutomationExecutionId' => [ 'shape' => 'AutomationExecutionId', ], ], ], 'StartSessionRequest' => [ 'type' => 'structure', 'required' => [ 'Target', ], 'members' => [ 'Target' => [ 'shape' => 'SessionTarget', ], 'DocumentName' => [ 'shape' => 'DocumentARN', ], 'Parameters' => [ 'shape' => 'SessionManagerParameters', ], ], ], 'StartSessionResponse' => [ 'type' => 'structure', 'members' => [ 'SessionId' => [ 'shape' => 'SessionId', ], 'TokenValue' => [ 'shape' => 'TokenValue', ], 'StreamUrl' => [ 'shape' => 'StreamUrl', ], ], ], 'StatusAdditionalInfo' => [ 'type' => 'string', 'max' => 1024, ], 'StatusDetails' => [ 'type' => 'string', 'max' => 100, 'min' => 0, ], 'StatusMessage' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'StatusName' => [ 'type' => 'string', ], 'StatusUnchanged' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'StepExecution' => [ 'type' => 'structure', 'members' => [ 'StepName' => [ 'shape' => 'String', ], 'Action' => [ 'shape' => 'AutomationActionName', ], 'TimeoutSeconds' => [ 'shape' => 'Long', 'box' => true, ], 'OnFailure' => [ 'shape' => 'String', ], 'MaxAttempts' => [ 'shape' => 'Integer', 'box' => true, ], 'ExecutionStartTime' => [ 'shape' => 'DateTime', ], 'ExecutionEndTime' => [ 'shape' => 'DateTime', ], 'StepStatus' => [ 'shape' => 'AutomationExecutionStatus', ], 'ResponseCode' => [ 'shape' => 'String', ], 'Inputs' => [ 'shape' => 'NormalStringMap', ], 'Outputs' => [ 'shape' => 'AutomationParameterMap', ], 'Response' => [ 'shape' => 'String', ], 'FailureMessage' => [ 'shape' => 'String', ], 'FailureDetails' => [ 'shape' => 'FailureDetails', ], 'StepExecutionId' => [ 'shape' => 'String', ], 'OverriddenParameters' => [ 'shape' => 'AutomationParameterMap', ], 'IsEnd' => [ 'shape' => 'Boolean', 'box' => true, ], 'NextStep' => [ 'shape' => 'String', 'box' => true, ], 'IsCritical' => [ 'shape' => 'Boolean', 'box' => true, ], 'ValidNextSteps' => [ 'shape' => 'ValidNextStepList', ], 'Targets' => [ 'shape' => 'Targets', 'box' => true, ], 'TargetLocation' => [ 'shape' => 'TargetLocation', 'box' => true, ], ], ], 'StepExecutionFilter' => [ 'type' => 'structure', 'required' => [ 'Key', 'Values', ], 'members' => [ 'Key' => [ 'shape' => 'StepExecutionFilterKey', ], 'Values' => [ 'shape' => 'StepExecutionFilterValueList', ], ], ], 'StepExecutionFilterKey' => [ 'type' => 'string', 'enum' => [ 'StartTimeBefore', 'StartTimeAfter', 'StepExecutionStatus', 'StepExecutionId', 'StepName', 'Action', ], ], 'StepExecutionFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'StepExecutionFilter', ], 'max' => 6, 'min' => 1, ], 'StepExecutionFilterValue' => [ 'type' => 'string', 'max' => 150, 'min' => 1, ], 'StepExecutionFilterValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'StepExecutionFilterValue', ], 'max' => 10, 'min' => 1, ], 'StepExecutionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'StepExecution', ], ], 'StopAutomationExecutionRequest' => [ 'type' => 'structure', 'required' => [ 'AutomationExecutionId', ], 'members' => [ 'AutomationExecutionId' => [ 'shape' => 'AutomationExecutionId', ], 'Type' => [ 'shape' => 'StopType', ], ], ], 'StopAutomationExecutionResult' => [ 'type' => 'structure', 'members' => [], ], 'StopType' => [ 'type' => 'string', 'enum' => [ 'Complete', 'Cancel', ], ], 'StreamUrl' => [ 'type' => 'string', ], 'String' => [ 'type' => 'string', ], 'StringDateTime' => [ 'type' => 'string', 'pattern' => '^([\\-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d(?!:))?)?(\\17[0-5]\\d([\\.,]\\d)?)?([zZ]|([\\-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$', ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'SubTypeCountLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 1000, ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'Target' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'TargetKey', ], 'Values' => [ 'shape' => 'TargetValues', ], ], ], 'TargetCount' => [ 'type' => 'integer', ], 'TargetInUseException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'TargetKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[\\p{L}\\p{Z}\\p{N}_.:/=\\-@]*$', ], 'TargetLocation' => [ 'type' => 'structure', 'members' => [ 'Accounts' => [ 'shape' => 'Accounts', ], 'Regions' => [ 'shape' => 'Regions', ], 'TargetLocationMaxConcurrency' => [ 'shape' => 'MaxConcurrency', 'box' => true, ], 'TargetLocationMaxErrors' => [ 'shape' => 'MaxErrors', 'box' => true, ], 'ExecutionRoleName' => [ 'shape' => 'ExecutionRoleName', 'box' => true, ], ], ], 'TargetLocations' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetLocation', ], 'max' => 100, 'min' => 1, ], 'TargetMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TargetMapKey', ], 'value' => [ 'shape' => 'TargetMapValueList', ], 'max' => 20, 'min' => 1, ], 'TargetMapKey' => [ 'type' => 'string', 'max' => 50, 'min' => 1, ], 'TargetMapValue' => [ 'type' => 'string', 'max' => 50, 'min' => 1, ], 'TargetMapValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetMapValue', ], 'max' => 25, 'min' => 0, ], 'TargetMaps' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetMap', ], 'max' => 300, 'min' => 0, ], 'TargetNotConnected' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'TargetParameterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParameterValue', ], ], 'TargetType' => [ 'type' => 'string', 'max' => 200, 'pattern' => '^\\/[\\w\\.\\-\\:\\/]*$', ], 'TargetValue' => [ 'type' => 'string', ], 'TargetValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetValue', ], 'max' => 50, 'min' => 0, ], 'Targets' => [ 'type' => 'list', 'member' => [ 'shape' => 'Target', ], 'max' => 5, 'min' => 0, ], 'TerminateSessionRequest' => [ 'type' => 'structure', 'required' => [ 'SessionId', ], 'members' => [ 'SessionId' => [ 'shape' => 'SessionId', ], ], ], 'TerminateSessionResponse' => [ 'type' => 'structure', 'members' => [ 'SessionId' => [ 'shape' => 'SessionId', ], ], ], 'TimeoutSeconds' => [ 'type' => 'integer', 'max' => 2592000, 'min' => 30, ], 'TokenValue' => [ 'type' => 'string', 'max' => 300, 'min' => 0, ], 'TooManyTagsError' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'TooManyUpdates' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'TotalCount' => [ 'type' => 'integer', ], 'TotalSizeLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'UnsupportedInventoryItemContextException' => [ 'type' => 'structure', 'members' => [ 'TypeName' => [ 'shape' => 'InventoryItemTypeName', ], 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'UnsupportedInventorySchemaVersionException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'UnsupportedOperatingSystem' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'UnsupportedParameterType' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'UnsupportedPlatformType' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'UpdateAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', ], 'members' => [ 'AssociationId' => [ 'shape' => 'AssociationId', ], 'Parameters' => [ 'shape' => 'Parameters', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'ScheduleExpression' => [ 'shape' => 'ScheduleExpression', ], 'OutputLocation' => [ 'shape' => 'InstanceAssociationOutputLocation', ], 'Name' => [ 'shape' => 'DocumentARN', ], 'Targets' => [ 'shape' => 'Targets', ], 'AssociationName' => [ 'shape' => 'AssociationName', ], 'AssociationVersion' => [ 'shape' => 'AssociationVersion', ], 'AutomationTargetParameterName' => [ 'shape' => 'AutomationTargetParameterName', ], 'MaxErrors' => [ 'shape' => 'MaxErrors', ], 'MaxConcurrency' => [ 'shape' => 'MaxConcurrency', ], 'ComplianceSeverity' => [ 'shape' => 'AssociationComplianceSeverity', ], ], ], 'UpdateAssociationResult' => [ 'type' => 'structure', 'members' => [ 'AssociationDescription' => [ 'shape' => 'AssociationDescription', ], ], ], 'UpdateAssociationStatusRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'InstanceId', 'AssociationStatus', ], 'members' => [ 'Name' => [ 'shape' => 'DocumentARN', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'AssociationStatus' => [ 'shape' => 'AssociationStatus', ], ], ], 'UpdateAssociationStatusResult' => [ 'type' => 'structure', 'members' => [ 'AssociationDescription' => [ 'shape' => 'AssociationDescription', ], ], ], 'UpdateDocumentDefaultVersionRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'DocumentVersion', ], 'members' => [ 'Name' => [ 'shape' => 'DocumentName', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersionNumber', ], ], ], 'UpdateDocumentDefaultVersionResult' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'DocumentDefaultVersionDescription', ], ], ], 'UpdateDocumentRequest' => [ 'type' => 'structure', 'required' => [ 'Content', 'Name', ], 'members' => [ 'Content' => [ 'shape' => 'DocumentContent', ], 'Attachments' => [ 'shape' => 'AttachmentsSourceList', ], 'Name' => [ 'shape' => 'DocumentName', ], 'VersionName' => [ 'shape' => 'DocumentVersionName', ], 'DocumentVersion' => [ 'shape' => 'DocumentVersion', ], 'DocumentFormat' => [ 'shape' => 'DocumentFormat', ], 'TargetType' => [ 'shape' => 'TargetType', ], ], ], 'UpdateDocumentResult' => [ 'type' => 'structure', 'members' => [ 'DocumentDescription' => [ 'shape' => 'DocumentDescription', ], ], ], 'UpdateMaintenanceWindowRequest' => [ 'type' => 'structure', 'required' => [ 'WindowId', ], 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'Name' => [ 'shape' => 'MaintenanceWindowName', ], 'Description' => [ 'shape' => 'MaintenanceWindowDescription', ], 'StartDate' => [ 'shape' => 'MaintenanceWindowStringDateTime', ], 'EndDate' => [ 'shape' => 'MaintenanceWindowStringDateTime', ], 'Schedule' => [ 'shape' => 'MaintenanceWindowSchedule', ], 'ScheduleTimezone' => [ 'shape' => 'MaintenanceWindowTimezone', ], 'Duration' => [ 'shape' => 'MaintenanceWindowDurationHours', 'box' => true, ], 'Cutoff' => [ 'shape' => 'MaintenanceWindowCutoff', 'box' => true, ], 'AllowUnassociatedTargets' => [ 'shape' => 'MaintenanceWindowAllowUnassociatedTargets', 'box' => true, ], 'Enabled' => [ 'shape' => 'MaintenanceWindowEnabled', 'box' => true, ], 'Replace' => [ 'shape' => 'Boolean', 'box' => true, ], ], ], 'UpdateMaintenanceWindowResult' => [ 'type' => 'structure', 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'Name' => [ 'shape' => 'MaintenanceWindowName', ], 'Description' => [ 'shape' => 'MaintenanceWindowDescription', ], 'StartDate' => [ 'shape' => 'MaintenanceWindowStringDateTime', ], 'EndDate' => [ 'shape' => 'MaintenanceWindowStringDateTime', ], 'Schedule' => [ 'shape' => 'MaintenanceWindowSchedule', ], 'ScheduleTimezone' => [ 'shape' => 'MaintenanceWindowTimezone', ], 'Duration' => [ 'shape' => 'MaintenanceWindowDurationHours', ], 'Cutoff' => [ 'shape' => 'MaintenanceWindowCutoff', ], 'AllowUnassociatedTargets' => [ 'shape' => 'MaintenanceWindowAllowUnassociatedTargets', ], 'Enabled' => [ 'shape' => 'MaintenanceWindowEnabled', ], ], ], 'UpdateMaintenanceWindowTargetRequest' => [ 'type' => 'structure', 'required' => [ 'WindowId', 'WindowTargetId', ], 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'WindowTargetId' => [ 'shape' => 'MaintenanceWindowTargetId', ], 'Targets' => [ 'shape' => 'Targets', ], 'OwnerInformation' => [ 'shape' => 'OwnerInformation', ], 'Name' => [ 'shape' => 'MaintenanceWindowName', ], 'Description' => [ 'shape' => 'MaintenanceWindowDescription', ], 'Replace' => [ 'shape' => 'Boolean', 'box' => true, ], ], ], 'UpdateMaintenanceWindowTargetResult' => [ 'type' => 'structure', 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'WindowTargetId' => [ 'shape' => 'MaintenanceWindowTargetId', ], 'Targets' => [ 'shape' => 'Targets', ], 'OwnerInformation' => [ 'shape' => 'OwnerInformation', ], 'Name' => [ 'shape' => 'MaintenanceWindowName', ], 'Description' => [ 'shape' => 'MaintenanceWindowDescription', ], ], ], 'UpdateMaintenanceWindowTaskRequest' => [ 'type' => 'structure', 'required' => [ 'WindowId', 'WindowTaskId', ], 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'WindowTaskId' => [ 'shape' => 'MaintenanceWindowTaskId', ], 'Targets' => [ 'shape' => 'Targets', ], 'TaskArn' => [ 'shape' => 'MaintenanceWindowTaskArn', ], 'ServiceRoleArn' => [ 'shape' => 'ServiceRole', ], 'TaskParameters' => [ 'shape' => 'MaintenanceWindowTaskParameters', ], 'TaskInvocationParameters' => [ 'shape' => 'MaintenanceWindowTaskInvocationParameters', ], 'Priority' => [ 'shape' => 'MaintenanceWindowTaskPriority', 'box' => true, ], 'MaxConcurrency' => [ 'shape' => 'MaxConcurrency', ], 'MaxErrors' => [ 'shape' => 'MaxErrors', ], 'LoggingInfo' => [ 'shape' => 'LoggingInfo', ], 'Name' => [ 'shape' => 'MaintenanceWindowName', ], 'Description' => [ 'shape' => 'MaintenanceWindowDescription', ], 'Replace' => [ 'shape' => 'Boolean', 'box' => true, ], ], ], 'UpdateMaintenanceWindowTaskResult' => [ 'type' => 'structure', 'members' => [ 'WindowId' => [ 'shape' => 'MaintenanceWindowId', ], 'WindowTaskId' => [ 'shape' => 'MaintenanceWindowTaskId', ], 'Targets' => [ 'shape' => 'Targets', ], 'TaskArn' => [ 'shape' => 'MaintenanceWindowTaskArn', ], 'ServiceRoleArn' => [ 'shape' => 'ServiceRole', ], 'TaskParameters' => [ 'shape' => 'MaintenanceWindowTaskParameters', ], 'TaskInvocationParameters' => [ 'shape' => 'MaintenanceWindowTaskInvocationParameters', ], 'Priority' => [ 'shape' => 'MaintenanceWindowTaskPriority', ], 'MaxConcurrency' => [ 'shape' => 'MaxConcurrency', ], 'MaxErrors' => [ 'shape' => 'MaxErrors', ], 'LoggingInfo' => [ 'shape' => 'LoggingInfo', ], 'Name' => [ 'shape' => 'MaintenanceWindowName', ], 'Description' => [ 'shape' => 'MaintenanceWindowDescription', ], ], ], 'UpdateManagedInstanceRoleRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'IamRole', ], 'members' => [ 'InstanceId' => [ 'shape' => 'ManagedInstanceId', ], 'IamRole' => [ 'shape' => 'IamRole', ], ], ], 'UpdateManagedInstanceRoleResult' => [ 'type' => 'structure', 'members' => [], ], 'UpdatePatchBaselineRequest' => [ 'type' => 'structure', 'required' => [ 'BaselineId', ], 'members' => [ 'BaselineId' => [ 'shape' => 'BaselineId', ], 'Name' => [ 'shape' => 'BaselineName', ], 'GlobalFilters' => [ 'shape' => 'PatchFilterGroup', ], 'ApprovalRules' => [ 'shape' => 'PatchRuleGroup', ], 'ApprovedPatches' => [ 'shape' => 'PatchIdList', ], 'ApprovedPatchesComplianceLevel' => [ 'shape' => 'PatchComplianceLevel', ], 'ApprovedPatchesEnableNonSecurity' => [ 'shape' => 'Boolean', 'box' => true, ], 'RejectedPatches' => [ 'shape' => 'PatchIdList', ], 'RejectedPatchesAction' => [ 'shape' => 'PatchAction', ], 'Description' => [ 'shape' => 'BaselineDescription', ], 'Sources' => [ 'shape' => 'PatchSourceList', ], 'Replace' => [ 'shape' => 'Boolean', 'box' => true, ], ], ], 'UpdatePatchBaselineResult' => [ 'type' => 'structure', 'members' => [ 'BaselineId' => [ 'shape' => 'BaselineId', ], 'Name' => [ 'shape' => 'BaselineName', ], 'OperatingSystem' => [ 'shape' => 'OperatingSystem', ], 'GlobalFilters' => [ 'shape' => 'PatchFilterGroup', ], 'ApprovalRules' => [ 'shape' => 'PatchRuleGroup', ], 'ApprovedPatches' => [ 'shape' => 'PatchIdList', ], 'ApprovedPatchesComplianceLevel' => [ 'shape' => 'PatchComplianceLevel', ], 'ApprovedPatchesEnableNonSecurity' => [ 'shape' => 'Boolean', 'box' => true, ], 'RejectedPatches' => [ 'shape' => 'PatchIdList', ], 'RejectedPatchesAction' => [ 'shape' => 'PatchAction', ], 'CreatedDate' => [ 'shape' => 'DateTime', ], 'ModifiedDate' => [ 'shape' => 'DateTime', ], 'Description' => [ 'shape' => 'BaselineDescription', ], 'Sources' => [ 'shape' => 'PatchSourceList', ], ], ], 'UpdateServiceSettingRequest' => [ 'type' => 'structure', 'required' => [ 'SettingId', 'SettingValue', ], 'members' => [ 'SettingId' => [ 'shape' => 'ServiceSettingId', ], 'SettingValue' => [ 'shape' => 'ServiceSettingValue', ], ], ], 'UpdateServiceSettingResult' => [ 'type' => 'structure', 'members' => [], ], 'Url' => [ 'type' => 'string', ], 'ValidNextStep' => [ 'type' => 'string', 'max' => 65535, 'min' => 1, ], 'ValidNextStepList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ValidNextStep', ], ], 'Version' => [ 'type' => 'string', 'pattern' => '^[0-9]{1,6}(\\.[0-9]{1,6}){2,3}$', ], ],]; diff --git a/lib/aws/Aws/data/ssm/2014-11-06/paginators-1.json.php b/lib/aws/Aws/data/ssm/2014-11-06/paginators-1.json.php new file mode 100644 index 0000000..9634fac --- /dev/null +++ b/lib/aws/Aws/data/ssm/2014-11-06/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ssm/2014-11-06/paginators-1.json +return [ 'pagination' => [ 'DescribeActivations' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'ActivationList', ], 'DescribeInstanceInformation' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'InstanceInformationList', ], 'DescribeParameters' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'GetParameterHistory' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'GetParametersByPath' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', ], 'ListAssociations' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Associations', ], 'ListCommandInvocations' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'CommandInvocations', ], 'ListCommands' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'Commands', ], 'ListDocuments' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'DocumentIdentifiers', ], ],]; diff --git a/lib/aws/Aws/data/ssm/2014-11-06/smoke.json.php b/lib/aws/Aws/data/ssm/2014-11-06/smoke.json.php new file mode 100644 index 0000000..7631005 --- /dev/null +++ b/lib/aws/Aws/data/ssm/2014-11-06/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/ssm/2014-11-06/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListDocuments', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'GetDocument', 'input' => [ 'Name' => '\'fake-name\'', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/states/2016-11-23/api-2.json.php b/lib/aws/Aws/data/states/2016-11-23/api-2.json.php new file mode 100644 index 0000000..6a79377 --- /dev/null +++ b/lib/aws/Aws/data/states/2016-11-23/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/states/2016-11-23/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-11-23', 'endpointPrefix' => 'states', 'jsonVersion' => '1.0', 'protocol' => 'json', 'serviceAbbreviation' => 'AWS SFN', 'serviceFullName' => 'AWS Step Functions', 'serviceId' => 'SFN', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWSStepFunctions', 'uid' => 'states-2016-11-23', ], 'operations' => [ 'CreateActivity' => [ 'name' => 'CreateActivity', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateActivityInput', ], 'output' => [ 'shape' => 'CreateActivityOutput', ], 'errors' => [ [ 'shape' => 'ActivityLimitExceeded', ], [ 'shape' => 'InvalidName', ], [ 'shape' => 'TooManyTags', ], ], 'idempotent' => true, ], 'CreateStateMachine' => [ 'name' => 'CreateStateMachine', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateStateMachineInput', ], 'output' => [ 'shape' => 'CreateStateMachineOutput', ], 'errors' => [ [ 'shape' => 'InvalidArn', ], [ 'shape' => 'InvalidDefinition', ], [ 'shape' => 'InvalidName', ], [ 'shape' => 'StateMachineAlreadyExists', ], [ 'shape' => 'StateMachineDeleting', ], [ 'shape' => 'StateMachineLimitExceeded', ], [ 'shape' => 'TooManyTags', ], ], 'idempotent' => true, ], 'DeleteActivity' => [ 'name' => 'DeleteActivity', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteActivityInput', ], 'output' => [ 'shape' => 'DeleteActivityOutput', ], 'errors' => [ [ 'shape' => 'InvalidArn', ], ], ], 'DeleteStateMachine' => [ 'name' => 'DeleteStateMachine', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteStateMachineInput', ], 'output' => [ 'shape' => 'DeleteStateMachineOutput', ], 'errors' => [ [ 'shape' => 'InvalidArn', ], ], ], 'DescribeActivity' => [ 'name' => 'DescribeActivity', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeActivityInput', ], 'output' => [ 'shape' => 'DescribeActivityOutput', ], 'errors' => [ [ 'shape' => 'ActivityDoesNotExist', ], [ 'shape' => 'InvalidArn', ], ], ], 'DescribeExecution' => [ 'name' => 'DescribeExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeExecutionInput', ], 'output' => [ 'shape' => 'DescribeExecutionOutput', ], 'errors' => [ [ 'shape' => 'ExecutionDoesNotExist', ], [ 'shape' => 'InvalidArn', ], ], ], 'DescribeStateMachine' => [ 'name' => 'DescribeStateMachine', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStateMachineInput', ], 'output' => [ 'shape' => 'DescribeStateMachineOutput', ], 'errors' => [ [ 'shape' => 'InvalidArn', ], [ 'shape' => 'StateMachineDoesNotExist', ], ], ], 'DescribeStateMachineForExecution' => [ 'name' => 'DescribeStateMachineForExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStateMachineForExecutionInput', ], 'output' => [ 'shape' => 'DescribeStateMachineForExecutionOutput', ], 'errors' => [ [ 'shape' => 'ExecutionDoesNotExist', ], [ 'shape' => 'InvalidArn', ], ], ], 'GetActivityTask' => [ 'name' => 'GetActivityTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetActivityTaskInput', ], 'output' => [ 'shape' => 'GetActivityTaskOutput', ], 'errors' => [ [ 'shape' => 'ActivityDoesNotExist', ], [ 'shape' => 'ActivityWorkerLimitExceeded', ], [ 'shape' => 'InvalidArn', ], ], ], 'GetExecutionHistory' => [ 'name' => 'GetExecutionHistory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetExecutionHistoryInput', ], 'output' => [ 'shape' => 'GetExecutionHistoryOutput', ], 'errors' => [ [ 'shape' => 'ExecutionDoesNotExist', ], [ 'shape' => 'InvalidArn', ], [ 'shape' => 'InvalidToken', ], ], ], 'ListActivities' => [ 'name' => 'ListActivities', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListActivitiesInput', ], 'output' => [ 'shape' => 'ListActivitiesOutput', ], 'errors' => [ [ 'shape' => 'InvalidToken', ], ], ], 'ListExecutions' => [ 'name' => 'ListExecutions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListExecutionsInput', ], 'output' => [ 'shape' => 'ListExecutionsOutput', ], 'errors' => [ [ 'shape' => 'InvalidArn', ], [ 'shape' => 'InvalidToken', ], [ 'shape' => 'StateMachineDoesNotExist', ], ], ], 'ListStateMachines' => [ 'name' => 'ListStateMachines', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListStateMachinesInput', ], 'output' => [ 'shape' => 'ListStateMachinesOutput', ], 'errors' => [ [ 'shape' => 'InvalidToken', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceInput', ], 'output' => [ 'shape' => 'ListTagsForResourceOutput', ], 'errors' => [ [ 'shape' => 'InvalidArn', ], [ 'shape' => 'ResourceNotFound', ], ], ], 'SendTaskFailure' => [ 'name' => 'SendTaskFailure', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SendTaskFailureInput', ], 'output' => [ 'shape' => 'SendTaskFailureOutput', ], 'errors' => [ [ 'shape' => 'TaskDoesNotExist', ], [ 'shape' => 'InvalidToken', ], [ 'shape' => 'TaskTimedOut', ], ], ], 'SendTaskHeartbeat' => [ 'name' => 'SendTaskHeartbeat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SendTaskHeartbeatInput', ], 'output' => [ 'shape' => 'SendTaskHeartbeatOutput', ], 'errors' => [ [ 'shape' => 'TaskDoesNotExist', ], [ 'shape' => 'InvalidToken', ], [ 'shape' => 'TaskTimedOut', ], ], ], 'SendTaskSuccess' => [ 'name' => 'SendTaskSuccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SendTaskSuccessInput', ], 'output' => [ 'shape' => 'SendTaskSuccessOutput', ], 'errors' => [ [ 'shape' => 'TaskDoesNotExist', ], [ 'shape' => 'InvalidOutput', ], [ 'shape' => 'InvalidToken', ], [ 'shape' => 'TaskTimedOut', ], ], ], 'StartExecution' => [ 'name' => 'StartExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartExecutionInput', ], 'output' => [ 'shape' => 'StartExecutionOutput', ], 'errors' => [ [ 'shape' => 'ExecutionLimitExceeded', ], [ 'shape' => 'ExecutionAlreadyExists', ], [ 'shape' => 'InvalidArn', ], [ 'shape' => 'InvalidExecutionInput', ], [ 'shape' => 'InvalidName', ], [ 'shape' => 'StateMachineDoesNotExist', ], [ 'shape' => 'StateMachineDeleting', ], ], 'idempotent' => true, ], 'StopExecution' => [ 'name' => 'StopExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopExecutionInput', ], 'output' => [ 'shape' => 'StopExecutionOutput', ], 'errors' => [ [ 'shape' => 'ExecutionDoesNotExist', ], [ 'shape' => 'InvalidArn', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceInput', ], 'output' => [ 'shape' => 'TagResourceOutput', ], 'errors' => [ [ 'shape' => 'InvalidArn', ], [ 'shape' => 'ResourceNotFound', ], [ 'shape' => 'TooManyTags', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceInput', ], 'output' => [ 'shape' => 'UntagResourceOutput', ], 'errors' => [ [ 'shape' => 'InvalidArn', ], [ 'shape' => 'ResourceNotFound', ], ], ], 'UpdateStateMachine' => [ 'name' => 'UpdateStateMachine', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateStateMachineInput', ], 'output' => [ 'shape' => 'UpdateStateMachineOutput', ], 'errors' => [ [ 'shape' => 'InvalidArn', ], [ 'shape' => 'InvalidDefinition', ], [ 'shape' => 'MissingRequiredParameter', ], [ 'shape' => 'StateMachineDeleting', ], [ 'shape' => 'StateMachineDoesNotExist', ], ], 'idempotent' => true, ], ], 'shapes' => [ 'ActivityDoesNotExist' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ActivityFailedEventDetails' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'SensitiveError', ], 'cause' => [ 'shape' => 'SensitiveCause', ], ], ], 'ActivityLimitExceeded' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ActivityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ActivityListItem', ], ], 'ActivityListItem' => [ 'type' => 'structure', 'required' => [ 'activityArn', 'name', 'creationDate', ], 'members' => [ 'activityArn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'creationDate' => [ 'shape' => 'Timestamp', ], ], ], 'ActivityScheduleFailedEventDetails' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'SensitiveError', ], 'cause' => [ 'shape' => 'SensitiveCause', ], ], ], 'ActivityScheduledEventDetails' => [ 'type' => 'structure', 'required' => [ 'resource', ], 'members' => [ 'resource' => [ 'shape' => 'Arn', ], 'input' => [ 'shape' => 'SensitiveData', ], 'timeoutInSeconds' => [ 'shape' => 'TimeoutInSeconds', 'box' => true, ], 'heartbeatInSeconds' => [ 'shape' => 'TimeoutInSeconds', 'box' => true, ], ], ], 'ActivityStartedEventDetails' => [ 'type' => 'structure', 'members' => [ 'workerName' => [ 'shape' => 'Identity', ], ], ], 'ActivitySucceededEventDetails' => [ 'type' => 'structure', 'members' => [ 'output' => [ 'shape' => 'SensitiveData', ], ], ], 'ActivityTimedOutEventDetails' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'SensitiveError', ], 'cause' => [ 'shape' => 'SensitiveCause', ], ], ], 'ActivityWorkerLimitExceeded' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'Arn' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'ConnectorParameters' => [ 'type' => 'string', 'max' => 32768, 'min' => 0, 'sensitive' => true, ], 'CreateActivityInput' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateActivityOutput' => [ 'type' => 'structure', 'required' => [ 'activityArn', 'creationDate', ], 'members' => [ 'activityArn' => [ 'shape' => 'Arn', ], 'creationDate' => [ 'shape' => 'Timestamp', ], ], ], 'CreateStateMachineInput' => [ 'type' => 'structure', 'required' => [ 'name', 'definition', 'roleArn', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'definition' => [ 'shape' => 'Definition', ], 'roleArn' => [ 'shape' => 'Arn', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'CreateStateMachineOutput' => [ 'type' => 'structure', 'required' => [ 'stateMachineArn', 'creationDate', ], 'members' => [ 'stateMachineArn' => [ 'shape' => 'Arn', ], 'creationDate' => [ 'shape' => 'Timestamp', ], ], ], 'Definition' => [ 'type' => 'string', 'max' => 1048576, 'min' => 1, 'sensitive' => true, ], 'DeleteActivityInput' => [ 'type' => 'structure', 'required' => [ 'activityArn', ], 'members' => [ 'activityArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteActivityOutput' => [ 'type' => 'structure', 'members' => [], ], 'DeleteStateMachineInput' => [ 'type' => 'structure', 'required' => [ 'stateMachineArn', ], 'members' => [ 'stateMachineArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteStateMachineOutput' => [ 'type' => 'structure', 'members' => [], ], 'DescribeActivityInput' => [ 'type' => 'structure', 'required' => [ 'activityArn', ], 'members' => [ 'activityArn' => [ 'shape' => 'Arn', ], ], ], 'DescribeActivityOutput' => [ 'type' => 'structure', 'required' => [ 'activityArn', 'name', 'creationDate', ], 'members' => [ 'activityArn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'creationDate' => [ 'shape' => 'Timestamp', ], ], ], 'DescribeExecutionInput' => [ 'type' => 'structure', 'required' => [ 'executionArn', ], 'members' => [ 'executionArn' => [ 'shape' => 'Arn', ], ], ], 'DescribeExecutionOutput' => [ 'type' => 'structure', 'required' => [ 'executionArn', 'stateMachineArn', 'status', 'startDate', 'input', ], 'members' => [ 'executionArn' => [ 'shape' => 'Arn', ], 'stateMachineArn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'status' => [ 'shape' => 'ExecutionStatus', ], 'startDate' => [ 'shape' => 'Timestamp', ], 'stopDate' => [ 'shape' => 'Timestamp', ], 'input' => [ 'shape' => 'SensitiveData', ], 'output' => [ 'shape' => 'SensitiveData', ], ], ], 'DescribeStateMachineForExecutionInput' => [ 'type' => 'structure', 'required' => [ 'executionArn', ], 'members' => [ 'executionArn' => [ 'shape' => 'Arn', ], ], ], 'DescribeStateMachineForExecutionOutput' => [ 'type' => 'structure', 'required' => [ 'stateMachineArn', 'name', 'definition', 'roleArn', 'updateDate', ], 'members' => [ 'stateMachineArn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'definition' => [ 'shape' => 'Definition', ], 'roleArn' => [ 'shape' => 'Arn', ], 'updateDate' => [ 'shape' => 'Timestamp', ], ], ], 'DescribeStateMachineInput' => [ 'type' => 'structure', 'required' => [ 'stateMachineArn', ], 'members' => [ 'stateMachineArn' => [ 'shape' => 'Arn', ], ], ], 'DescribeStateMachineOutput' => [ 'type' => 'structure', 'required' => [ 'stateMachineArn', 'name', 'definition', 'roleArn', 'creationDate', ], 'members' => [ 'stateMachineArn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'status' => [ 'shape' => 'StateMachineStatus', ], 'definition' => [ 'shape' => 'Definition', ], 'roleArn' => [ 'shape' => 'Arn', ], 'creationDate' => [ 'shape' => 'Timestamp', ], ], ], 'ErrorMessage' => [ 'type' => 'string', ], 'EventId' => [ 'type' => 'long', ], 'ExecutionAbortedEventDetails' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'SensitiveError', ], 'cause' => [ 'shape' => 'SensitiveCause', ], ], ], 'ExecutionAlreadyExists' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ExecutionDoesNotExist' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ExecutionFailedEventDetails' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'SensitiveError', ], 'cause' => [ 'shape' => 'SensitiveCause', ], ], ], 'ExecutionLimitExceeded' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ExecutionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExecutionListItem', ], ], 'ExecutionListItem' => [ 'type' => 'structure', 'required' => [ 'executionArn', 'stateMachineArn', 'name', 'status', 'startDate', ], 'members' => [ 'executionArn' => [ 'shape' => 'Arn', ], 'stateMachineArn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'status' => [ 'shape' => 'ExecutionStatus', ], 'startDate' => [ 'shape' => 'Timestamp', ], 'stopDate' => [ 'shape' => 'Timestamp', ], ], ], 'ExecutionStartedEventDetails' => [ 'type' => 'structure', 'members' => [ 'input' => [ 'shape' => 'SensitiveData', ], 'roleArn' => [ 'shape' => 'Arn', ], ], ], 'ExecutionStatus' => [ 'type' => 'string', 'enum' => [ 'RUNNING', 'SUCCEEDED', 'FAILED', 'TIMED_OUT', 'ABORTED', ], ], 'ExecutionSucceededEventDetails' => [ 'type' => 'structure', 'members' => [ 'output' => [ 'shape' => 'SensitiveData', ], ], ], 'ExecutionTimedOutEventDetails' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'SensitiveError', ], 'cause' => [ 'shape' => 'SensitiveCause', ], ], ], 'GetActivityTaskInput' => [ 'type' => 'structure', 'required' => [ 'activityArn', ], 'members' => [ 'activityArn' => [ 'shape' => 'Arn', ], 'workerName' => [ 'shape' => 'Name', ], ], ], 'GetActivityTaskOutput' => [ 'type' => 'structure', 'members' => [ 'taskToken' => [ 'shape' => 'TaskToken', ], 'input' => [ 'shape' => 'SensitiveDataJobInput', ], ], ], 'GetExecutionHistoryInput' => [ 'type' => 'structure', 'required' => [ 'executionArn', ], 'members' => [ 'executionArn' => [ 'shape' => 'Arn', ], 'maxResults' => [ 'shape' => 'PageSize', ], 'reverseOrder' => [ 'shape' => 'ReverseOrder', ], 'nextToken' => [ 'shape' => 'PageToken', ], ], ], 'GetExecutionHistoryOutput' => [ 'type' => 'structure', 'required' => [ 'events', ], 'members' => [ 'events' => [ 'shape' => 'HistoryEventList', ], 'nextToken' => [ 'shape' => 'PageToken', ], ], ], 'HistoryEvent' => [ 'type' => 'structure', 'required' => [ 'timestamp', 'type', 'id', ], 'members' => [ 'timestamp' => [ 'shape' => 'Timestamp', ], 'type' => [ 'shape' => 'HistoryEventType', ], 'id' => [ 'shape' => 'EventId', ], 'previousEventId' => [ 'shape' => 'EventId', ], 'activityFailedEventDetails' => [ 'shape' => 'ActivityFailedEventDetails', ], 'activityScheduleFailedEventDetails' => [ 'shape' => 'ActivityScheduleFailedEventDetails', ], 'activityScheduledEventDetails' => [ 'shape' => 'ActivityScheduledEventDetails', ], 'activityStartedEventDetails' => [ 'shape' => 'ActivityStartedEventDetails', ], 'activitySucceededEventDetails' => [ 'shape' => 'ActivitySucceededEventDetails', ], 'activityTimedOutEventDetails' => [ 'shape' => 'ActivityTimedOutEventDetails', ], 'taskFailedEventDetails' => [ 'shape' => 'TaskFailedEventDetails', ], 'taskScheduledEventDetails' => [ 'shape' => 'TaskScheduledEventDetails', ], 'taskStartFailedEventDetails' => [ 'shape' => 'TaskStartFailedEventDetails', ], 'taskStartedEventDetails' => [ 'shape' => 'TaskStartedEventDetails', ], 'taskSubmitFailedEventDetails' => [ 'shape' => 'TaskSubmitFailedEventDetails', ], 'taskSubmittedEventDetails' => [ 'shape' => 'TaskSubmittedEventDetails', ], 'taskSucceededEventDetails' => [ 'shape' => 'TaskSucceededEventDetails', ], 'taskTimedOutEventDetails' => [ 'shape' => 'TaskTimedOutEventDetails', ], 'executionFailedEventDetails' => [ 'shape' => 'ExecutionFailedEventDetails', ], 'executionStartedEventDetails' => [ 'shape' => 'ExecutionStartedEventDetails', ], 'executionSucceededEventDetails' => [ 'shape' => 'ExecutionSucceededEventDetails', ], 'executionAbortedEventDetails' => [ 'shape' => 'ExecutionAbortedEventDetails', ], 'executionTimedOutEventDetails' => [ 'shape' => 'ExecutionTimedOutEventDetails', ], 'lambdaFunctionFailedEventDetails' => [ 'shape' => 'LambdaFunctionFailedEventDetails', ], 'lambdaFunctionScheduleFailedEventDetails' => [ 'shape' => 'LambdaFunctionScheduleFailedEventDetails', ], 'lambdaFunctionScheduledEventDetails' => [ 'shape' => 'LambdaFunctionScheduledEventDetails', ], 'lambdaFunctionStartFailedEventDetails' => [ 'shape' => 'LambdaFunctionStartFailedEventDetails', ], 'lambdaFunctionSucceededEventDetails' => [ 'shape' => 'LambdaFunctionSucceededEventDetails', ], 'lambdaFunctionTimedOutEventDetails' => [ 'shape' => 'LambdaFunctionTimedOutEventDetails', ], 'stateEnteredEventDetails' => [ 'shape' => 'StateEnteredEventDetails', ], 'stateExitedEventDetails' => [ 'shape' => 'StateExitedEventDetails', ], ], ], 'HistoryEventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HistoryEvent', ], ], 'HistoryEventType' => [ 'type' => 'string', 'enum' => [ 'ActivityFailed', 'ActivityScheduleFailed', 'ActivityScheduled', 'ActivityStarted', 'ActivitySucceeded', 'ActivityTimedOut', 'ChoiceStateEntered', 'ChoiceStateExited', 'TaskFailed', 'TaskScheduled', 'TaskStartFailed', 'TaskStarted', 'TaskSubmitFailed', 'TaskSubmitted', 'TaskSucceeded', 'TaskTimedOut', 'ExecutionFailed', 'ExecutionStarted', 'ExecutionSucceeded', 'ExecutionAborted', 'ExecutionTimedOut', 'FailStateEntered', 'LambdaFunctionFailed', 'LambdaFunctionScheduleFailed', 'LambdaFunctionScheduled', 'LambdaFunctionStartFailed', 'LambdaFunctionStarted', 'LambdaFunctionSucceeded', 'LambdaFunctionTimedOut', 'SucceedStateEntered', 'SucceedStateExited', 'TaskStateAborted', 'TaskStateEntered', 'TaskStateExited', 'PassStateEntered', 'PassStateExited', 'ParallelStateAborted', 'ParallelStateEntered', 'ParallelStateExited', 'ParallelStateFailed', 'ParallelStateStarted', 'ParallelStateSucceeded', 'WaitStateAborted', 'WaitStateEntered', 'WaitStateExited', ], ], 'Identity' => [ 'type' => 'string', 'max' => 256, ], 'InvalidArn' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidDefinition' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidExecutionInput' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidName' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidOutput' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'InvalidToken' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'LambdaFunctionFailedEventDetails' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'SensitiveError', ], 'cause' => [ 'shape' => 'SensitiveCause', ], ], ], 'LambdaFunctionScheduleFailedEventDetails' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'SensitiveError', ], 'cause' => [ 'shape' => 'SensitiveCause', ], ], ], 'LambdaFunctionScheduledEventDetails' => [ 'type' => 'structure', 'required' => [ 'resource', ], 'members' => [ 'resource' => [ 'shape' => 'Arn', ], 'input' => [ 'shape' => 'SensitiveData', ], 'timeoutInSeconds' => [ 'shape' => 'TimeoutInSeconds', 'box' => true, ], ], ], 'LambdaFunctionStartFailedEventDetails' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'SensitiveError', ], 'cause' => [ 'shape' => 'SensitiveCause', ], ], ], 'LambdaFunctionSucceededEventDetails' => [ 'type' => 'structure', 'members' => [ 'output' => [ 'shape' => 'SensitiveData', ], ], ], 'LambdaFunctionTimedOutEventDetails' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'SensitiveError', ], 'cause' => [ 'shape' => 'SensitiveCause', ], ], ], 'ListActivitiesInput' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'PageSize', ], 'nextToken' => [ 'shape' => 'PageToken', ], ], ], 'ListActivitiesOutput' => [ 'type' => 'structure', 'required' => [ 'activities', ], 'members' => [ 'activities' => [ 'shape' => 'ActivityList', ], 'nextToken' => [ 'shape' => 'PageToken', ], ], ], 'ListExecutionsInput' => [ 'type' => 'structure', 'required' => [ 'stateMachineArn', ], 'members' => [ 'stateMachineArn' => [ 'shape' => 'Arn', ], 'statusFilter' => [ 'shape' => 'ExecutionStatus', ], 'maxResults' => [ 'shape' => 'PageSize', ], 'nextToken' => [ 'shape' => 'PageToken', ], ], ], 'ListExecutionsOutput' => [ 'type' => 'structure', 'required' => [ 'executions', ], 'members' => [ 'executions' => [ 'shape' => 'ExecutionList', ], 'nextToken' => [ 'shape' => 'PageToken', ], ], ], 'ListStateMachinesInput' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'PageSize', ], 'nextToken' => [ 'shape' => 'PageToken', ], ], ], 'ListStateMachinesOutput' => [ 'type' => 'structure', 'required' => [ 'stateMachines', ], 'members' => [ 'stateMachines' => [ 'shape' => 'StateMachineList', ], 'nextToken' => [ 'shape' => 'PageToken', ], ], ], 'ListTagsForResourceInput' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', ], ], ], 'ListTagsForResourceOutput' => [ 'type' => 'structure', 'members' => [ 'tags' => [ 'shape' => 'TagList', ], ], ], 'MissingRequiredParameter' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'Name' => [ 'type' => 'string', 'max' => 80, 'min' => 1, ], 'PageSize' => [ 'type' => 'integer', 'max' => 1000, 'min' => 0, ], 'PageToken' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'ResourceNotFound' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], 'resourceName' => [ 'shape' => 'Arn', ], ], 'exception' => true, ], 'ReverseOrder' => [ 'type' => 'boolean', ], 'SendTaskFailureInput' => [ 'type' => 'structure', 'required' => [ 'taskToken', ], 'members' => [ 'taskToken' => [ 'shape' => 'TaskToken', ], 'error' => [ 'shape' => 'SensitiveError', ], 'cause' => [ 'shape' => 'SensitiveCause', ], ], ], 'SendTaskFailureOutput' => [ 'type' => 'structure', 'members' => [], ], 'SendTaskHeartbeatInput' => [ 'type' => 'structure', 'required' => [ 'taskToken', ], 'members' => [ 'taskToken' => [ 'shape' => 'TaskToken', ], ], ], 'SendTaskHeartbeatOutput' => [ 'type' => 'structure', 'members' => [], ], 'SendTaskSuccessInput' => [ 'type' => 'structure', 'required' => [ 'taskToken', 'output', ], 'members' => [ 'taskToken' => [ 'shape' => 'TaskToken', ], 'output' => [ 'shape' => 'SensitiveData', ], ], ], 'SendTaskSuccessOutput' => [ 'type' => 'structure', 'members' => [], ], 'SensitiveCause' => [ 'type' => 'string', 'max' => 32768, 'min' => 0, 'sensitive' => true, ], 'SensitiveData' => [ 'type' => 'string', 'max' => 32768, 'sensitive' => true, ], 'SensitiveDataJobInput' => [ 'type' => 'string', 'max' => 65536, 'sensitive' => true, ], 'SensitiveError' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'sensitive' => true, ], 'StartExecutionInput' => [ 'type' => 'structure', 'required' => [ 'stateMachineArn', ], 'members' => [ 'stateMachineArn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'input' => [ 'shape' => 'SensitiveData', ], ], ], 'StartExecutionOutput' => [ 'type' => 'structure', 'required' => [ 'executionArn', 'startDate', ], 'members' => [ 'executionArn' => [ 'shape' => 'Arn', ], 'startDate' => [ 'shape' => 'Timestamp', ], ], ], 'StateEnteredEventDetails' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'input' => [ 'shape' => 'SensitiveData', ], ], ], 'StateExitedEventDetails' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'output' => [ 'shape' => 'SensitiveData', ], ], ], 'StateMachineAlreadyExists' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'StateMachineDeleting' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'StateMachineDoesNotExist' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'StateMachineLimitExceeded' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'StateMachineList' => [ 'type' => 'list', 'member' => [ 'shape' => 'StateMachineListItem', ], ], 'StateMachineListItem' => [ 'type' => 'structure', 'required' => [ 'stateMachineArn', 'name', 'creationDate', ], 'members' => [ 'stateMachineArn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'Name', ], 'creationDate' => [ 'shape' => 'Timestamp', ], ], ], 'StateMachineStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DELETING', ], ], 'StopExecutionInput' => [ 'type' => 'structure', 'required' => [ 'executionArn', ], 'members' => [ 'executionArn' => [ 'shape' => 'Arn', ], 'error' => [ 'shape' => 'SensitiveError', ], 'cause' => [ 'shape' => 'SensitiveCause', ], ], ], 'StopExecutionOutput' => [ 'type' => 'structure', 'required' => [ 'stopDate', ], 'members' => [ 'stopDate' => [ 'shape' => 'Timestamp', ], ], ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagResourceInput' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tags', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', ], 'tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceOutput' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'TaskDoesNotExist' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'TaskFailedEventDetails' => [ 'type' => 'structure', 'required' => [ 'resourceType', 'resource', ], 'members' => [ 'resourceType' => [ 'shape' => 'Name', ], 'resource' => [ 'shape' => 'Name', ], 'error' => [ 'shape' => 'SensitiveError', ], 'cause' => [ 'shape' => 'SensitiveCause', ], ], ], 'TaskScheduledEventDetails' => [ 'type' => 'structure', 'required' => [ 'resourceType', 'resource', 'region', 'parameters', ], 'members' => [ 'resourceType' => [ 'shape' => 'Name', ], 'resource' => [ 'shape' => 'Name', ], 'region' => [ 'shape' => 'Name', ], 'parameters' => [ 'shape' => 'ConnectorParameters', ], 'timeoutInSeconds' => [ 'shape' => 'TimeoutInSeconds', 'box' => true, ], ], ], 'TaskStartFailedEventDetails' => [ 'type' => 'structure', 'required' => [ 'resourceType', 'resource', ], 'members' => [ 'resourceType' => [ 'shape' => 'Name', ], 'resource' => [ 'shape' => 'Name', ], 'error' => [ 'shape' => 'SensitiveError', ], 'cause' => [ 'shape' => 'SensitiveCause', ], ], ], 'TaskStartedEventDetails' => [ 'type' => 'structure', 'required' => [ 'resourceType', 'resource', ], 'members' => [ 'resourceType' => [ 'shape' => 'Name', ], 'resource' => [ 'shape' => 'Name', ], ], ], 'TaskSubmitFailedEventDetails' => [ 'type' => 'structure', 'required' => [ 'resourceType', 'resource', ], 'members' => [ 'resourceType' => [ 'shape' => 'Name', ], 'resource' => [ 'shape' => 'Name', ], 'error' => [ 'shape' => 'SensitiveError', ], 'cause' => [ 'shape' => 'SensitiveCause', ], ], ], 'TaskSubmittedEventDetails' => [ 'type' => 'structure', 'required' => [ 'resourceType', 'resource', ], 'members' => [ 'resourceType' => [ 'shape' => 'Name', ], 'resource' => [ 'shape' => 'Name', ], 'output' => [ 'shape' => 'SensitiveData', ], ], ], 'TaskSucceededEventDetails' => [ 'type' => 'structure', 'required' => [ 'resourceType', 'resource', ], 'members' => [ 'resourceType' => [ 'shape' => 'Name', ], 'resource' => [ 'shape' => 'Name', ], 'output' => [ 'shape' => 'SensitiveData', ], ], ], 'TaskTimedOut' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'TaskTimedOutEventDetails' => [ 'type' => 'structure', 'required' => [ 'resourceType', 'resource', ], 'members' => [ 'resourceType' => [ 'shape' => 'Name', ], 'resource' => [ 'shape' => 'Name', ], 'error' => [ 'shape' => 'SensitiveError', ], 'cause' => [ 'shape' => 'SensitiveCause', ], ], ], 'TaskToken' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'TimeoutInSeconds' => [ 'type' => 'long', ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TooManyTags' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], 'resourceName' => [ 'shape' => 'Arn', ], ], 'exception' => true, ], 'UntagResourceInput' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tagKeys', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', ], 'tagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagResourceOutput' => [ 'type' => 'structure', 'members' => [], ], 'UpdateStateMachineInput' => [ 'type' => 'structure', 'required' => [ 'stateMachineArn', ], 'members' => [ 'stateMachineArn' => [ 'shape' => 'Arn', ], 'definition' => [ 'shape' => 'Definition', ], 'roleArn' => [ 'shape' => 'Arn', ], ], ], 'UpdateStateMachineOutput' => [ 'type' => 'structure', 'required' => [ 'updateDate', ], 'members' => [ 'updateDate' => [ 'shape' => 'Timestamp', ], ], ], ],]; diff --git a/lib/aws/Aws/data/states/2016-11-23/paginators-1.json.php b/lib/aws/Aws/data/states/2016-11-23/paginators-1.json.php new file mode 100644 index 0000000..c14dea1 --- /dev/null +++ b/lib/aws/Aws/data/states/2016-11-23/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/states/2016-11-23/paginators-1.json +return [ 'pagination' => [ 'GetExecutionHistory' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'events', ], 'ListActivities' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'activities', ], 'ListExecutions' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'executions', ], 'ListStateMachines' => [ 'input_token' => 'nextToken', 'limit_key' => 'maxResults', 'output_token' => 'nextToken', 'result_key' => 'stateMachines', ], ],]; diff --git a/lib/aws/Aws/data/states/2016-11-23/smoke.json.php b/lib/aws/Aws/data/states/2016-11-23/smoke.json.php new file mode 100644 index 0000000..c966dac --- /dev/null +++ b/lib/aws/Aws/data/states/2016-11-23/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/states/2016-11-23/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListActivities', 'input' => [], 'errorExpectedFromService' => false, ], ],]; diff --git a/lib/aws/Aws/data/storagegateway/2013-06-30/api-2.json.php b/lib/aws/Aws/data/storagegateway/2013-06-30/api-2.json.php new file mode 100644 index 0000000..6d0f3a7 --- /dev/null +++ b/lib/aws/Aws/data/storagegateway/2013-06-30/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/storagegateway/2013-06-30/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2013-06-30', 'endpointPrefix' => 'storagegateway', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWS Storage Gateway', 'serviceId' => 'Storage Gateway', 'signatureVersion' => 'v4', 'targetPrefix' => 'StorageGateway_20130630', 'uid' => 'storagegateway-2013-06-30', ], 'operations' => [ 'ActivateGateway' => [ 'name' => 'ActivateGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ActivateGatewayInput', ], 'output' => [ 'shape' => 'ActivateGatewayOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'AddCache' => [ 'name' => 'AddCache', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddCacheInput', ], 'output' => [ 'shape' => 'AddCacheOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'AddTagsToResource' => [ 'name' => 'AddTagsToResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddTagsToResourceInput', ], 'output' => [ 'shape' => 'AddTagsToResourceOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'AddUploadBuffer' => [ 'name' => 'AddUploadBuffer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddUploadBufferInput', ], 'output' => [ 'shape' => 'AddUploadBufferOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'AddWorkingStorage' => [ 'name' => 'AddWorkingStorage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddWorkingStorageInput', ], 'output' => [ 'shape' => 'AddWorkingStorageOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'AttachVolume' => [ 'name' => 'AttachVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachVolumeInput', ], 'output' => [ 'shape' => 'AttachVolumeOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'CancelArchival' => [ 'name' => 'CancelArchival', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelArchivalInput', ], 'output' => [ 'shape' => 'CancelArchivalOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'CancelRetrieval' => [ 'name' => 'CancelRetrieval', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelRetrievalInput', ], 'output' => [ 'shape' => 'CancelRetrievalOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'CreateCachediSCSIVolume' => [ 'name' => 'CreateCachediSCSIVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCachediSCSIVolumeInput', ], 'output' => [ 'shape' => 'CreateCachediSCSIVolumeOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'CreateNFSFileShare' => [ 'name' => 'CreateNFSFileShare', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNFSFileShareInput', ], 'output' => [ 'shape' => 'CreateNFSFileShareOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'CreateSMBFileShare' => [ 'name' => 'CreateSMBFileShare', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSMBFileShareInput', ], 'output' => [ 'shape' => 'CreateSMBFileShareOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'CreateSnapshot' => [ 'name' => 'CreateSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSnapshotInput', ], 'output' => [ 'shape' => 'CreateSnapshotOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceUnavailableError', ], ], ], 'CreateSnapshotFromVolumeRecoveryPoint' => [ 'name' => 'CreateSnapshotFromVolumeRecoveryPoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSnapshotFromVolumeRecoveryPointInput', ], 'output' => [ 'shape' => 'CreateSnapshotFromVolumeRecoveryPointOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ServiceUnavailableError', ], ], ], 'CreateStorediSCSIVolume' => [ 'name' => 'CreateStorediSCSIVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateStorediSCSIVolumeInput', ], 'output' => [ 'shape' => 'CreateStorediSCSIVolumeOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'CreateTapeWithBarcode' => [ 'name' => 'CreateTapeWithBarcode', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTapeWithBarcodeInput', ], 'output' => [ 'shape' => 'CreateTapeWithBarcodeOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'CreateTapes' => [ 'name' => 'CreateTapes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTapesInput', ], 'output' => [ 'shape' => 'CreateTapesOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DeleteBandwidthRateLimit' => [ 'name' => 'DeleteBandwidthRateLimit', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteBandwidthRateLimitInput', ], 'output' => [ 'shape' => 'DeleteBandwidthRateLimitOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DeleteChapCredentials' => [ 'name' => 'DeleteChapCredentials', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteChapCredentialsInput', ], 'output' => [ 'shape' => 'DeleteChapCredentialsOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DeleteFileShare' => [ 'name' => 'DeleteFileShare', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteFileShareInput', ], 'output' => [ 'shape' => 'DeleteFileShareOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DeleteGateway' => [ 'name' => 'DeleteGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteGatewayInput', ], 'output' => [ 'shape' => 'DeleteGatewayOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DeleteSnapshotSchedule' => [ 'name' => 'DeleteSnapshotSchedule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSnapshotScheduleInput', ], 'output' => [ 'shape' => 'DeleteSnapshotScheduleOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DeleteTape' => [ 'name' => 'DeleteTape', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTapeInput', ], 'output' => [ 'shape' => 'DeleteTapeOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DeleteTapeArchive' => [ 'name' => 'DeleteTapeArchive', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTapeArchiveInput', ], 'output' => [ 'shape' => 'DeleteTapeArchiveOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DeleteVolume' => [ 'name' => 'DeleteVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVolumeInput', ], 'output' => [ 'shape' => 'DeleteVolumeOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeBandwidthRateLimit' => [ 'name' => 'DescribeBandwidthRateLimit', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeBandwidthRateLimitInput', ], 'output' => [ 'shape' => 'DescribeBandwidthRateLimitOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeCache' => [ 'name' => 'DescribeCache', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCacheInput', ], 'output' => [ 'shape' => 'DescribeCacheOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeCachediSCSIVolumes' => [ 'name' => 'DescribeCachediSCSIVolumes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCachediSCSIVolumesInput', ], 'output' => [ 'shape' => 'DescribeCachediSCSIVolumesOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeChapCredentials' => [ 'name' => 'DescribeChapCredentials', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeChapCredentialsInput', ], 'output' => [ 'shape' => 'DescribeChapCredentialsOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeGatewayInformation' => [ 'name' => 'DescribeGatewayInformation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeGatewayInformationInput', ], 'output' => [ 'shape' => 'DescribeGatewayInformationOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeMaintenanceStartTime' => [ 'name' => 'DescribeMaintenanceStartTime', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMaintenanceStartTimeInput', ], 'output' => [ 'shape' => 'DescribeMaintenanceStartTimeOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeNFSFileShares' => [ 'name' => 'DescribeNFSFileShares', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNFSFileSharesInput', ], 'output' => [ 'shape' => 'DescribeNFSFileSharesOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeSMBFileShares' => [ 'name' => 'DescribeSMBFileShares', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSMBFileSharesInput', ], 'output' => [ 'shape' => 'DescribeSMBFileSharesOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeSMBSettings' => [ 'name' => 'DescribeSMBSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSMBSettingsInput', ], 'output' => [ 'shape' => 'DescribeSMBSettingsOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeSnapshotSchedule' => [ 'name' => 'DescribeSnapshotSchedule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSnapshotScheduleInput', ], 'output' => [ 'shape' => 'DescribeSnapshotScheduleOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeStorediSCSIVolumes' => [ 'name' => 'DescribeStorediSCSIVolumes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStorediSCSIVolumesInput', ], 'output' => [ 'shape' => 'DescribeStorediSCSIVolumesOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeTapeArchives' => [ 'name' => 'DescribeTapeArchives', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTapeArchivesInput', ], 'output' => [ 'shape' => 'DescribeTapeArchivesOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeTapeRecoveryPoints' => [ 'name' => 'DescribeTapeRecoveryPoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTapeRecoveryPointsInput', ], 'output' => [ 'shape' => 'DescribeTapeRecoveryPointsOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeTapes' => [ 'name' => 'DescribeTapes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTapesInput', ], 'output' => [ 'shape' => 'DescribeTapesOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeUploadBuffer' => [ 'name' => 'DescribeUploadBuffer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeUploadBufferInput', ], 'output' => [ 'shape' => 'DescribeUploadBufferOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeVTLDevices' => [ 'name' => 'DescribeVTLDevices', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVTLDevicesInput', ], 'output' => [ 'shape' => 'DescribeVTLDevicesOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DescribeWorkingStorage' => [ 'name' => 'DescribeWorkingStorage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeWorkingStorageInput', ], 'output' => [ 'shape' => 'DescribeWorkingStorageOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DetachVolume' => [ 'name' => 'DetachVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachVolumeInput', ], 'output' => [ 'shape' => 'DetachVolumeOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'DisableGateway' => [ 'name' => 'DisableGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableGatewayInput', ], 'output' => [ 'shape' => 'DisableGatewayOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'JoinDomain' => [ 'name' => 'JoinDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'JoinDomainInput', ], 'output' => [ 'shape' => 'JoinDomainOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'ListFileShares' => [ 'name' => 'ListFileShares', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListFileSharesInput', ], 'output' => [ 'shape' => 'ListFileSharesOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'ListGateways' => [ 'name' => 'ListGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListGatewaysInput', ], 'output' => [ 'shape' => 'ListGatewaysOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'ListLocalDisks' => [ 'name' => 'ListLocalDisks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListLocalDisksInput', ], 'output' => [ 'shape' => 'ListLocalDisksOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceInput', ], 'output' => [ 'shape' => 'ListTagsForResourceOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'ListTapes' => [ 'name' => 'ListTapes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTapesInput', ], 'output' => [ 'shape' => 'ListTapesOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'ListVolumeInitiators' => [ 'name' => 'ListVolumeInitiators', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListVolumeInitiatorsInput', ], 'output' => [ 'shape' => 'ListVolumeInitiatorsOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'ListVolumeRecoveryPoints' => [ 'name' => 'ListVolumeRecoveryPoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListVolumeRecoveryPointsInput', ], 'output' => [ 'shape' => 'ListVolumeRecoveryPointsOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'ListVolumes' => [ 'name' => 'ListVolumes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListVolumesInput', ], 'output' => [ 'shape' => 'ListVolumesOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'NotifyWhenUploaded' => [ 'name' => 'NotifyWhenUploaded', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'NotifyWhenUploadedInput', ], 'output' => [ 'shape' => 'NotifyWhenUploadedOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'RefreshCache' => [ 'name' => 'RefreshCache', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RefreshCacheInput', ], 'output' => [ 'shape' => 'RefreshCacheOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'RemoveTagsFromResource' => [ 'name' => 'RemoveTagsFromResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemoveTagsFromResourceInput', ], 'output' => [ 'shape' => 'RemoveTagsFromResourceOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'ResetCache' => [ 'name' => 'ResetCache', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetCacheInput', ], 'output' => [ 'shape' => 'ResetCacheOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'RetrieveTapeArchive' => [ 'name' => 'RetrieveTapeArchive', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RetrieveTapeArchiveInput', ], 'output' => [ 'shape' => 'RetrieveTapeArchiveOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'RetrieveTapeRecoveryPoint' => [ 'name' => 'RetrieveTapeRecoveryPoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RetrieveTapeRecoveryPointInput', ], 'output' => [ 'shape' => 'RetrieveTapeRecoveryPointOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'SetLocalConsolePassword' => [ 'name' => 'SetLocalConsolePassword', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetLocalConsolePasswordInput', ], 'output' => [ 'shape' => 'SetLocalConsolePasswordOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'SetSMBGuestPassword' => [ 'name' => 'SetSMBGuestPassword', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetSMBGuestPasswordInput', ], 'output' => [ 'shape' => 'SetSMBGuestPasswordOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'ShutdownGateway' => [ 'name' => 'ShutdownGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ShutdownGatewayInput', ], 'output' => [ 'shape' => 'ShutdownGatewayOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'StartGateway' => [ 'name' => 'StartGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartGatewayInput', ], 'output' => [ 'shape' => 'StartGatewayOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'UpdateBandwidthRateLimit' => [ 'name' => 'UpdateBandwidthRateLimit', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateBandwidthRateLimitInput', ], 'output' => [ 'shape' => 'UpdateBandwidthRateLimitOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'UpdateChapCredentials' => [ 'name' => 'UpdateChapCredentials', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateChapCredentialsInput', ], 'output' => [ 'shape' => 'UpdateChapCredentialsOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'UpdateGatewayInformation' => [ 'name' => 'UpdateGatewayInformation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateGatewayInformationInput', ], 'output' => [ 'shape' => 'UpdateGatewayInformationOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'UpdateGatewaySoftwareNow' => [ 'name' => 'UpdateGatewaySoftwareNow', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateGatewaySoftwareNowInput', ], 'output' => [ 'shape' => 'UpdateGatewaySoftwareNowOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'UpdateMaintenanceStartTime' => [ 'name' => 'UpdateMaintenanceStartTime', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateMaintenanceStartTimeInput', ], 'output' => [ 'shape' => 'UpdateMaintenanceStartTimeOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'UpdateNFSFileShare' => [ 'name' => 'UpdateNFSFileShare', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateNFSFileShareInput', ], 'output' => [ 'shape' => 'UpdateNFSFileShareOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'UpdateSMBFileShare' => [ 'name' => 'UpdateSMBFileShare', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSMBFileShareInput', ], 'output' => [ 'shape' => 'UpdateSMBFileShareOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'UpdateSnapshotSchedule' => [ 'name' => 'UpdateSnapshotSchedule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSnapshotScheduleInput', ], 'output' => [ 'shape' => 'UpdateSnapshotScheduleOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], 'UpdateVTLDeviceType' => [ 'name' => 'UpdateVTLDeviceType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateVTLDeviceTypeInput', ], 'output' => [ 'shape' => 'UpdateVTLDeviceTypeOutput', ], 'errors' => [ [ 'shape' => 'InvalidGatewayRequestException', ], [ 'shape' => 'InternalServerError', ], ], ], ], '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', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'ActivateGatewayOutput' => [ 'type' => 'structure', 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], ], ], 'ActivationKey' => [ 'type' => 'string', 'max' => 50, 'min' => 1, ], 'AddCacheInput' => [ 'type' => 'structure', 'required' => [ 'GatewayARN', 'DiskIds', ], 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], 'DiskIds' => [ 'shape' => 'DiskIds', ], ], ], 'AddCacheOutput' => [ 'type' => 'structure', 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], ], ], 'AddTagsToResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', 'Tags', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'AddTagsToResourceOutput' => [ 'type' => 'structure', 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], ], ], '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', ], ], ], 'AttachVolumeInput' => [ 'type' => 'structure', 'required' => [ 'GatewayARN', 'VolumeARN', 'NetworkInterfaceId', ], 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], 'TargetName' => [ 'shape' => 'TargetName', ], 'VolumeARN' => [ 'shape' => 'VolumeARN', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'DiskId' => [ 'shape' => 'DiskId', ], ], ], 'AttachVolumeOutput' => [ 'type' => 'structure', 'members' => [ 'VolumeARN' => [ 'shape' => 'VolumeARN', ], 'TargetARN' => [ 'shape' => 'TargetARN', ], ], ], 'Authentication' => [ 'type' => 'string', 'max' => 15, 'min' => 5, ], 'BandwidthDownloadRateLimit' => [ 'type' => 'long', 'min' => 102400, ], 'BandwidthType' => [ 'type' => 'string', 'max' => 25, 'min' => 3, ], 'BandwidthUploadRateLimit' => [ 'type' => 'long', 'min' => 51200, ], 'Boolean' => [ 'type' => 'boolean', ], 'CachediSCSIVolume' => [ 'type' => 'structure', 'members' => [ 'VolumeARN' => [ 'shape' => 'VolumeARN', ], 'VolumeId' => [ 'shape' => 'VolumeId', ], 'VolumeType' => [ 'shape' => 'VolumeType', ], 'VolumeStatus' => [ 'shape' => 'VolumeStatus', ], 'VolumeAttachmentStatus' => [ 'shape' => 'VolumeAttachmentStatus', ], 'VolumeSizeInBytes' => [ 'shape' => 'long', ], 'VolumeProgress' => [ 'shape' => 'DoubleObject', ], 'SourceSnapshotId' => [ 'shape' => 'SnapshotId', ], 'VolumeiSCSIAttributes' => [ 'shape' => 'VolumeiSCSIAttributes', ], 'CreatedDate' => [ 'shape' => 'CreatedDate', ], 'VolumeUsedInBytes' => [ 'shape' => 'VolumeUsedInBytes', ], 'KMSKey' => [ 'shape' => 'KMSKey', ], 'TargetName' => [ 'shape' => 'TargetName', ], ], ], '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', 'max' => 100, 'min' => 1, ], 'ClientToken' => [ 'type' => 'string', 'max' => 100, 'min' => 5, ], 'CreateCachediSCSIVolumeInput' => [ 'type' => 'structure', 'required' => [ 'GatewayARN', 'VolumeSizeInBytes', 'TargetName', 'NetworkInterfaceId', 'ClientToken', ], 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], 'VolumeSizeInBytes' => [ 'shape' => 'long', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'TargetName' => [ 'shape' => 'TargetName', ], 'SourceVolumeARN' => [ 'shape' => 'VolumeARN', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'ClientToken' => [ 'shape' => 'ClientToken', ], 'KMSEncrypted' => [ 'shape' => 'Boolean', ], 'KMSKey' => [ 'shape' => 'KMSKey', ], ], ], 'CreateCachediSCSIVolumeOutput' => [ 'type' => 'structure', 'members' => [ 'VolumeARN' => [ 'shape' => 'VolumeARN', ], 'TargetARN' => [ 'shape' => 'TargetARN', ], ], ], 'CreateNFSFileShareInput' => [ 'type' => 'structure', 'required' => [ 'ClientToken', 'GatewayARN', 'Role', 'LocationARN', ], 'members' => [ 'ClientToken' => [ 'shape' => 'ClientToken', ], 'NFSFileShareDefaults' => [ 'shape' => 'NFSFileShareDefaults', ], 'GatewayARN' => [ 'shape' => 'GatewayARN', ], 'KMSEncrypted' => [ 'shape' => 'Boolean', ], 'KMSKey' => [ 'shape' => 'KMSKey', ], 'Role' => [ 'shape' => 'Role', ], 'LocationARN' => [ 'shape' => 'LocationARN', ], 'DefaultStorageClass' => [ 'shape' => 'StorageClass', ], 'ObjectACL' => [ 'shape' => 'ObjectACL', ], 'ClientList' => [ 'shape' => 'FileShareClientList', ], 'Squash' => [ 'shape' => 'Squash', ], 'ReadOnly' => [ 'shape' => 'Boolean', ], 'GuessMIMETypeEnabled' => [ 'shape' => 'Boolean', ], 'RequesterPays' => [ 'shape' => 'Boolean', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'CreateNFSFileShareOutput' => [ 'type' => 'structure', 'members' => [ 'FileShareARN' => [ 'shape' => 'FileShareARN', ], ], ], 'CreateSMBFileShareInput' => [ 'type' => 'structure', 'required' => [ 'ClientToken', 'GatewayARN', 'Role', 'LocationARN', ], 'members' => [ 'ClientToken' => [ 'shape' => 'ClientToken', ], 'GatewayARN' => [ 'shape' => 'GatewayARN', ], 'KMSEncrypted' => [ 'shape' => 'Boolean', ], 'KMSKey' => [ 'shape' => 'KMSKey', ], 'Role' => [ 'shape' => 'Role', ], 'LocationARN' => [ 'shape' => 'LocationARN', ], 'DefaultStorageClass' => [ 'shape' => 'StorageClass', ], 'ObjectACL' => [ 'shape' => 'ObjectACL', ], 'ReadOnly' => [ 'shape' => 'Boolean', ], 'GuessMIMETypeEnabled' => [ 'shape' => 'Boolean', ], 'RequesterPays' => [ 'shape' => 'Boolean', ], 'ValidUserList' => [ 'shape' => 'FileShareUserList', ], 'InvalidUserList' => [ 'shape' => 'FileShareUserList', ], 'Authentication' => [ 'shape' => 'Authentication', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'CreateSMBFileShareOutput' => [ 'type' => 'structure', 'members' => [ 'FileShareARN' => [ 'shape' => 'FileShareARN', ], ], ], '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', ], 'KMSEncrypted' => [ 'shape' => 'Boolean', ], 'KMSKey' => [ 'shape' => 'KMSKey', ], ], ], 'CreateStorediSCSIVolumeOutput' => [ 'type' => 'structure', 'members' => [ 'VolumeARN' => [ 'shape' => 'VolumeARN', ], 'VolumeSizeInBytes' => [ 'shape' => 'long', ], 'TargetARN' => [ 'shape' => 'TargetARN', ], ], ], 'CreateTapeWithBarcodeInput' => [ 'type' => 'structure', 'required' => [ 'GatewayARN', 'TapeSizeInBytes', 'TapeBarcode', ], 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], 'TapeSizeInBytes' => [ 'shape' => 'TapeSize', ], 'TapeBarcode' => [ 'shape' => 'TapeBarcode', ], 'KMSEncrypted' => [ 'shape' => 'Boolean', ], 'KMSKey' => [ 'shape' => 'KMSKey', ], 'PoolId' => [ 'shape' => 'PoolId', ], ], ], 'CreateTapeWithBarcodeOutput' => [ 'type' => 'structure', 'members' => [ 'TapeARN' => [ 'shape' => 'TapeARN', ], ], ], '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', ], 'KMSEncrypted' => [ 'shape' => 'Boolean', ], 'KMSKey' => [ 'shape' => 'KMSKey', ], 'PoolId' => [ 'shape' => 'PoolId', ], ], ], 'CreateTapesOutput' => [ 'type' => 'structure', 'members' => [ 'TapeARNs' => [ 'shape' => 'TapeARNs', ], ], ], 'CreatedDate' => [ 'type' => 'timestamp', ], 'DayOfWeek' => [ 'type' => 'integer', 'max' => 6, 'min' => 0, ], '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', ], ], ], 'DeleteFileShareInput' => [ 'type' => 'structure', 'required' => [ 'FileShareARN', ], 'members' => [ 'FileShareARN' => [ 'shape' => 'FileShareARN', ], 'ForceDelete' => [ 'shape' => 'boolean', ], ], ], 'DeleteFileShareOutput' => [ 'type' => 'structure', 'members' => [ 'FileShareARN' => [ 'shape' => 'FileShareARN', ], ], ], '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', ], 'GatewayName' => [ 'shape' => 'string', ], 'GatewayTimezone' => [ 'shape' => 'GatewayTimezone', ], 'GatewayState' => [ 'shape' => 'GatewayState', ], 'GatewayNetworkInterfaces' => [ 'shape' => 'GatewayNetworkInterfaces', ], 'GatewayType' => [ 'shape' => 'GatewayType', ], 'NextUpdateAvailabilityDate' => [ 'shape' => 'NextUpdateAvailabilityDate', ], 'LastSoftwareUpdate' => [ 'shape' => 'LastSoftwareUpdate', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], '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', ], ], ], 'DescribeNFSFileSharesInput' => [ 'type' => 'structure', 'required' => [ 'FileShareARNList', ], 'members' => [ 'FileShareARNList' => [ 'shape' => 'FileShareARNList', ], ], ], 'DescribeNFSFileSharesOutput' => [ 'type' => 'structure', 'members' => [ 'NFSFileShareInfoList' => [ 'shape' => 'NFSFileShareInfoList', ], ], ], 'DescribeSMBFileSharesInput' => [ 'type' => 'structure', 'required' => [ 'FileShareARNList', ], 'members' => [ 'FileShareARNList' => [ 'shape' => 'FileShareARNList', ], ], ], 'DescribeSMBFileSharesOutput' => [ 'type' => 'structure', 'members' => [ 'SMBFileShareInfoList' => [ 'shape' => 'SMBFileShareInfoList', ], ], ], 'DescribeSMBSettingsInput' => [ 'type' => 'structure', 'required' => [ 'GatewayARN', ], 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], ], ], 'DescribeSMBSettingsOutput' => [ 'type' => 'structure', 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], 'DomainName' => [ 'shape' => 'DomainName', ], 'SMBGuestPasswordSet' => [ 'shape' => 'Boolean', ], ], ], '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', 'max' => 255, 'min' => 1, ], 'DetachVolumeInput' => [ 'type' => 'structure', 'required' => [ 'VolumeARN', ], 'members' => [ 'VolumeARN' => [ 'shape' => 'VolumeARN', ], 'ForceDetach' => [ 'shape' => 'Boolean', ], ], ], 'DetachVolumeOutput' => [ 'type' => 'structure', 'members' => [ 'VolumeARN' => [ 'shape' => 'VolumeARN', ], ], ], 'DeviceType' => [ 'type' => 'string', 'max' => 50, 'min' => 2, ], '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', ], 'DiskAttributeList' => [ 'shape' => 'DiskAttributeList', ], ], ], 'DiskAllocationType' => [ 'type' => 'string', 'max' => 100, 'min' => 3, ], 'DiskAttribute' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'DiskAttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DiskAttribute', ], 'max' => 10, 'min' => 0, ], 'DiskId' => [ 'type' => 'string', 'max' => 300, 'min' => 1, ], 'DiskIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'DiskId', ], ], 'Disks' => [ 'type' => 'list', 'member' => [ 'shape' => 'Disk', ], ], 'DomainName' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$', ], 'DomainUserName' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '^\\w[\\w\\.\\- ]*$', ], 'DomainUserPassword' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '^[ -~]+$', 'sensitive' => true, ], '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', ], ], 'FileShareARN' => [ 'type' => 'string', 'max' => 500, 'min' => 50, ], 'FileShareARNList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FileShareARN', ], 'max' => 10, 'min' => 1, ], 'FileShareClientList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IPV4AddressCIDR', ], 'max' => 100, 'min' => 1, ], 'FileShareId' => [ 'type' => 'string', 'max' => 30, 'min' => 12, ], 'FileShareInfo' => [ 'type' => 'structure', 'members' => [ 'FileShareType' => [ 'shape' => 'FileShareType', ], 'FileShareARN' => [ 'shape' => 'FileShareARN', ], 'FileShareId' => [ 'shape' => 'FileShareId', ], 'FileShareStatus' => [ 'shape' => 'FileShareStatus', ], 'GatewayARN' => [ 'shape' => 'GatewayARN', ], ], ], 'FileShareInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FileShareInfo', ], ], 'FileShareStatus' => [ 'type' => 'string', 'max' => 50, 'min' => 3, ], 'FileShareType' => [ 'type' => 'string', 'enum' => [ 'NFS', 'SMB', ], ], 'FileShareUser' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'FileShareUserList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FileShareUser', ], 'max' => 100, 'min' => 0, ], 'Folder' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'FolderList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Folder', ], 'max' => 50, 'min' => 1, ], 'GatewayARN' => [ 'type' => 'string', 'max' => 500, 'min' => 50, ], 'GatewayId' => [ 'type' => 'string', 'max' => 30, 'min' => 12, ], 'GatewayInfo' => [ 'type' => 'structure', 'members' => [ 'GatewayId' => [ 'shape' => 'GatewayId', ], 'GatewayARN' => [ 'shape' => 'GatewayARN', ], 'GatewayType' => [ 'shape' => 'GatewayType', ], 'GatewayOperationalState' => [ 'shape' => 'GatewayOperationalState', ], 'GatewayName' => [ 'shape' => 'string', ], ], ], 'GatewayName' => [ 'type' => 'string', 'max' => 255, 'min' => 2, 'pattern' => '^[ -\\.0-\\[\\]-~]*[!-\\.0-\\[\\]-~][ -\\.0-\\[\\]-~]*$', ], 'GatewayNetworkInterfaces' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterface', ], ], 'GatewayOperationalState' => [ 'type' => 'string', 'max' => 25, 'min' => 2, ], 'GatewayState' => [ 'type' => 'string', 'max' => 25, 'min' => 2, ], 'GatewayTimezone' => [ 'type' => 'string', 'max' => 10, 'min' => 3, ], 'GatewayType' => [ 'type' => 'string', 'max' => 20, 'min' => 2, ], 'Gateways' => [ 'type' => 'list', 'member' => [ 'shape' => 'GatewayInfo', ], ], 'Host' => [ 'type' => 'string', 'pattern' => '^(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9])(:(\\d+))?$', ], 'Hosts' => [ 'type' => 'list', 'member' => [ 'shape' => 'Host', ], ], 'HourOfDay' => [ 'type' => 'integer', 'max' => 23, 'min' => 0, ], 'IPV4AddressCIDR' => [ 'type' => 'string', '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])(\\/([0-9]|[1-2][0-9]|3[0-2]))?$', ], 'Initiator' => [ 'type' => 'string', 'max' => 50, 'min' => 1, ], 'Initiators' => [ 'type' => 'list', 'member' => [ 'shape' => 'Initiator', ], ], 'InternalServerError' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], 'error' => [ 'shape' => 'StorageGatewayError', ], ], 'exception' => true, ], 'InvalidGatewayRequestException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], 'error' => [ 'shape' => 'StorageGatewayError', ], ], 'exception' => true, ], 'IqnName' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[0-9a-z:.-]+', ], 'JoinDomainInput' => [ 'type' => 'structure', 'required' => [ 'GatewayARN', 'DomainName', 'UserName', 'Password', ], 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], 'DomainName' => [ 'shape' => 'DomainName', ], 'OrganizationalUnit' => [ 'shape' => 'OrganizationalUnit', ], 'DomainControllers' => [ 'shape' => 'Hosts', ], 'UserName' => [ 'shape' => 'DomainUserName', ], 'Password' => [ 'shape' => 'DomainUserPassword', ], ], ], 'JoinDomainOutput' => [ 'type' => 'structure', 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], ], ], 'KMSKey' => [ 'type' => 'string', 'max' => 2048, 'min' => 7, ], 'LastSoftwareUpdate' => [ 'type' => 'string', 'max' => 25, 'min' => 1, ], 'ListFileSharesInput' => [ 'type' => 'structure', 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], 'Limit' => [ 'shape' => 'PositiveIntObject', ], 'Marker' => [ 'shape' => 'Marker', ], ], ], 'ListFileSharesOutput' => [ 'type' => 'structure', 'members' => [ 'Marker' => [ 'shape' => 'Marker', ], 'NextMarker' => [ 'shape' => 'Marker', ], 'FileShareInfoList' => [ 'shape' => 'FileShareInfoList', ], ], ], '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', ], ], ], 'ListTagsForResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'Marker' => [ 'shape' => 'Marker', ], 'Limit' => [ 'shape' => 'PositiveIntObject', ], ], ], 'ListTagsForResourceOutput' => [ 'type' => 'structure', 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'Marker' => [ 'shape' => 'Marker', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'ListTapesInput' => [ 'type' => 'structure', 'members' => [ 'TapeARNs' => [ 'shape' => 'TapeARNs', ], 'Marker' => [ 'shape' => 'Marker', ], 'Limit' => [ 'shape' => 'PositiveIntObject', ], ], ], 'ListTapesOutput' => [ 'type' => 'structure', 'members' => [ 'TapeInfos' => [ 'shape' => 'TapeInfos', ], 'Marker' => [ 'shape' => 'Marker', ], ], ], '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', 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], 'Marker' => [ 'shape' => 'Marker', ], 'Limit' => [ 'shape' => 'PositiveIntObject', ], ], ], 'ListVolumesOutput' => [ 'type' => 'structure', 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], 'Marker' => [ 'shape' => 'Marker', ], 'VolumeInfos' => [ 'shape' => 'VolumeInfos', ], ], ], 'LocalConsolePassword' => [ 'type' => 'string', 'max' => 512, 'min' => 6, 'pattern' => '^[ -~]+$', 'sensitive' => true, ], 'LocationARN' => [ 'type' => 'string', 'max' => 310, 'min' => 16, ], 'Marker' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, ], 'MediumChangerType' => [ 'type' => 'string', 'max' => 50, 'min' => 2, ], 'MinuteOfHour' => [ 'type' => 'integer', 'max' => 59, 'min' => 0, ], 'NFSFileShareDefaults' => [ 'type' => 'structure', 'members' => [ 'FileMode' => [ 'shape' => 'PermissionMode', ], 'DirectoryMode' => [ 'shape' => 'PermissionMode', ], 'GroupId' => [ 'shape' => 'PermissionId', ], 'OwnerId' => [ 'shape' => 'PermissionId', ], ], ], 'NFSFileShareInfo' => [ 'type' => 'structure', 'members' => [ 'NFSFileShareDefaults' => [ 'shape' => 'NFSFileShareDefaults', ], 'FileShareARN' => [ 'shape' => 'FileShareARN', ], 'FileShareId' => [ 'shape' => 'FileShareId', ], 'FileShareStatus' => [ 'shape' => 'FileShareStatus', ], 'GatewayARN' => [ 'shape' => 'GatewayARN', ], 'KMSEncrypted' => [ 'shape' => 'boolean', ], 'KMSKey' => [ 'shape' => 'KMSKey', ], 'Path' => [ 'shape' => 'Path', ], 'Role' => [ 'shape' => 'Role', ], 'LocationARN' => [ 'shape' => 'LocationARN', ], 'DefaultStorageClass' => [ 'shape' => 'StorageClass', ], 'ObjectACL' => [ 'shape' => 'ObjectACL', ], 'ClientList' => [ 'shape' => 'FileShareClientList', ], 'Squash' => [ 'shape' => 'Squash', ], 'ReadOnly' => [ 'shape' => 'Boolean', ], 'GuessMIMETypeEnabled' => [ 'shape' => 'Boolean', ], 'RequesterPays' => [ 'shape' => 'Boolean', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'NFSFileShareInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NFSFileShareInfo', ], ], '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', 'max' => 25, 'min' => 1, ], 'NotificationId' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'NotifyWhenUploadedInput' => [ 'type' => 'structure', 'required' => [ 'FileShareARN', ], 'members' => [ 'FileShareARN' => [ 'shape' => 'FileShareARN', ], ], ], 'NotifyWhenUploadedOutput' => [ 'type' => 'structure', 'members' => [ 'FileShareARN' => [ 'shape' => 'FileShareARN', ], 'NotificationId' => [ 'shape' => 'NotificationId', ], ], ], 'NumTapesToCreate' => [ 'type' => 'integer', 'max' => 10, 'min' => 1, ], 'ObjectACL' => [ 'type' => 'string', 'enum' => [ 'private', 'public-read', 'public-read-write', 'authenticated-read', 'bucket-owner-read', 'bucket-owner-full-control', 'aws-exec-read', ], ], 'OrganizationalUnit' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'Path' => [ 'type' => 'string', ], 'PermissionId' => [ 'type' => 'long', 'max' => 4294967294, 'min' => 0, ], 'PermissionMode' => [ 'type' => 'string', 'max' => 4, 'min' => 1, 'pattern' => '^[0-7]{4}$', ], 'PoolId' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'PositiveIntObject' => [ 'type' => 'integer', 'min' => 1, ], 'RecurrenceInHours' => [ 'type' => 'integer', 'max' => 24, 'min' => 1, ], 'RefreshCacheInput' => [ 'type' => 'structure', 'required' => [ 'FileShareARN', ], 'members' => [ 'FileShareARN' => [ 'shape' => 'FileShareARN', ], 'FolderList' => [ 'shape' => 'FolderList', ], 'Recursive' => [ 'shape' => 'Boolean', ], ], ], 'RefreshCacheOutput' => [ 'type' => 'structure', 'members' => [ 'FileShareARN' => [ 'shape' => 'FileShareARN', ], 'NotificationId' => [ 'shape' => 'NotificationId', ], ], ], 'RegionId' => [ 'type' => 'string', 'max' => 25, 'min' => 1, ], 'RemoveTagsFromResourceInput' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', 'TagKeys', ], 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'TagKeys' => [ 'shape' => 'TagKeys', ], ], ], 'RemoveTagsFromResourceOutput' => [ 'type' => 'structure', 'members' => [ 'ResourceARN' => [ 'shape' => 'ResourceARN', ], ], ], 'ResetCacheInput' => [ 'type' => 'structure', 'required' => [ 'GatewayARN', ], 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], ], ], 'ResetCacheOutput' => [ 'type' => 'structure', 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], ], ], 'ResourceARN' => [ 'type' => 'string', 'max' => 500, 'min' => 50, ], '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', ], ], ], 'Role' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, ], 'SMBFileShareInfo' => [ 'type' => 'structure', 'members' => [ 'FileShareARN' => [ 'shape' => 'FileShareARN', ], 'FileShareId' => [ 'shape' => 'FileShareId', ], 'FileShareStatus' => [ 'shape' => 'FileShareStatus', ], 'GatewayARN' => [ 'shape' => 'GatewayARN', ], 'KMSEncrypted' => [ 'shape' => 'boolean', ], 'KMSKey' => [ 'shape' => 'KMSKey', ], 'Path' => [ 'shape' => 'Path', ], 'Role' => [ 'shape' => 'Role', ], 'LocationARN' => [ 'shape' => 'LocationARN', ], 'DefaultStorageClass' => [ 'shape' => 'StorageClass', ], 'ObjectACL' => [ 'shape' => 'ObjectACL', ], 'ReadOnly' => [ 'shape' => 'Boolean', ], 'GuessMIMETypeEnabled' => [ 'shape' => 'Boolean', ], 'RequesterPays' => [ 'shape' => 'Boolean', ], 'ValidUserList' => [ 'shape' => 'FileShareUserList', ], 'InvalidUserList' => [ 'shape' => 'FileShareUserList', ], 'Authentication' => [ 'shape' => 'Authentication', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'SMBFileShareInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SMBFileShareInfo', ], ], 'SMBGuestPassword' => [ 'type' => 'string', 'max' => 512, 'min' => 6, 'pattern' => '^[ -~]+$', 'sensitive' => true, ], 'ServiceUnavailableError' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], 'error' => [ 'shape' => 'StorageGatewayError', ], ], 'exception' => true, ], 'SetLocalConsolePasswordInput' => [ 'type' => 'structure', 'required' => [ 'GatewayARN', 'LocalConsolePassword', ], 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], 'LocalConsolePassword' => [ 'shape' => 'LocalConsolePassword', ], ], ], 'SetLocalConsolePasswordOutput' => [ 'type' => 'structure', 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], ], ], 'SetSMBGuestPasswordInput' => [ 'type' => 'structure', 'required' => [ 'GatewayARN', 'Password', ], 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], 'Password' => [ 'shape' => 'SMBGuestPassword', ], ], ], 'SetSMBGuestPasswordOutput' => [ 'type' => 'structure', 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], ], ], 'ShutdownGatewayInput' => [ 'type' => 'structure', 'required' => [ 'GatewayARN', ], 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], ], ], 'ShutdownGatewayOutput' => [ 'type' => 'structure', 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], ], ], 'SnapshotDescription' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'SnapshotId' => [ 'type' => 'string', 'pattern' => '\\Asnap-([0-9A-Fa-f]{8}|[0-9A-Fa-f]{17})\\z', ], 'Squash' => [ 'type' => 'string', 'max' => 15, 'min' => 5, ], 'StartGatewayInput' => [ 'type' => 'structure', 'required' => [ 'GatewayARN', ], 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], ], ], 'StartGatewayOutput' => [ 'type' => 'structure', 'members' => [ 'GatewayARN' => [ 'shape' => 'GatewayARN', ], ], ], 'StorageClass' => [ 'type' => 'string', 'max' => 20, 'min' => 5, ], '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', ], 'VolumeAttachmentStatus' => [ 'shape' => 'VolumeAttachmentStatus', ], 'VolumeSizeInBytes' => [ 'shape' => 'long', ], 'VolumeProgress' => [ 'shape' => 'DoubleObject', ], 'VolumeDiskId' => [ 'shape' => 'DiskId', ], 'SourceSnapshotId' => [ 'shape' => 'SnapshotId', ], 'PreservedExistingData' => [ 'shape' => 'boolean', ], 'VolumeiSCSIAttributes' => [ 'shape' => 'VolumeiSCSIAttributes', ], 'CreatedDate' => [ 'shape' => 'CreatedDate', ], 'VolumeUsedInBytes' => [ 'shape' => 'VolumeUsedInBytes', ], 'KMSKey' => [ 'shape' => 'KMSKey', ], 'TargetName' => [ 'shape' => 'TargetName', ], ], ], 'StorediSCSIVolumes' => [ 'type' => 'list', 'member' => [ 'shape' => 'StorediSCSIVolume', ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$', ], 'TagKeys' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, ], 'Tags' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'Tape' => [ 'type' => 'structure', 'members' => [ 'TapeARN' => [ 'shape' => 'TapeARN', ], 'TapeBarcode' => [ 'shape' => 'TapeBarcode', ], 'TapeCreatedDate' => [ 'shape' => 'Time', ], 'TapeSizeInBytes' => [ 'shape' => 'TapeSize', ], 'TapeStatus' => [ 'shape' => 'TapeStatus', ], 'VTLDevice' => [ 'shape' => 'VTLDeviceARN', ], 'Progress' => [ 'shape' => 'DoubleObject', ], 'TapeUsedInBytes' => [ 'shape' => 'TapeUsage', ], 'KMSKey' => [ 'shape' => 'KMSKey', ], 'PoolId' => [ 'shape' => 'PoolId', ], ], ], 'TapeARN' => [ 'type' => 'string', 'max' => 500, 'min' => 50, 'pattern' => '^arn:(aws|aws-cn|aws-us-gov):storagegateway:[a-z\\-0-9]+:[0-9]+:tape\\/[0-9A-Z]{7,16}$', ], 'TapeARNs' => [ 'type' => 'list', 'member' => [ 'shape' => 'TapeARN', ], ], 'TapeArchive' => [ 'type' => 'structure', 'members' => [ 'TapeARN' => [ 'shape' => 'TapeARN', ], 'TapeBarcode' => [ 'shape' => 'TapeBarcode', ], 'TapeCreatedDate' => [ 'shape' => 'Time', ], 'TapeSizeInBytes' => [ 'shape' => 'TapeSize', ], 'CompletionTime' => [ 'shape' => 'Time', ], 'RetrievedTo' => [ 'shape' => 'GatewayARN', ], 'TapeStatus' => [ 'shape' => 'TapeArchiveStatus', ], 'TapeUsedInBytes' => [ 'shape' => 'TapeUsage', ], 'KMSKey' => [ 'shape' => 'KMSKey', ], 'PoolId' => [ 'shape' => 'PoolId', ], ], ], 'TapeArchiveStatus' => [ 'type' => 'string', ], 'TapeArchives' => [ 'type' => 'list', 'member' => [ 'shape' => 'TapeArchive', ], ], 'TapeBarcode' => [ 'type' => 'string', 'max' => 16, 'min' => 7, 'pattern' => '^[A-Z0-9]*$', ], 'TapeBarcodePrefix' => [ 'type' => 'string', 'max' => 4, 'min' => 1, 'pattern' => '^[A-Z]*$', ], 'TapeDriveType' => [ 'type' => 'string', 'max' => 50, 'min' => 2, ], 'TapeInfo' => [ 'type' => 'structure', 'members' => [ 'TapeARN' => [ 'shape' => 'TapeARN', ], 'TapeBarcode' => [ 'shape' => 'TapeBarcode', ], 'TapeSizeInBytes' => [ 'shape' => 'TapeSize', ], 'TapeStatus' => [ 'shape' => 'TapeStatus', ], 'GatewayARN' => [ 'shape' => 'GatewayARN', ], 'PoolId' => [ 'shape' => 'PoolId', ], ], ], 'TapeInfos' => [ 'type' => 'list', 'member' => [ 'shape' => 'TapeInfo', ], ], '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', ], 'TapeUsage' => [ 'type' => 'long', ], 'Tapes' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tape', ], ], 'TargetARN' => [ 'type' => 'string', 'max' => 800, 'min' => 50, ], 'TargetName' => [ 'type' => 'string', 'max' => 200, 'min' => 1, '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', ], 'GatewayName' => [ 'shape' => 'string', ], ], ], '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', ], ], ], 'UpdateNFSFileShareInput' => [ 'type' => 'structure', 'required' => [ 'FileShareARN', ], 'members' => [ 'FileShareARN' => [ 'shape' => 'FileShareARN', ], 'KMSEncrypted' => [ 'shape' => 'Boolean', ], 'KMSKey' => [ 'shape' => 'KMSKey', ], 'NFSFileShareDefaults' => [ 'shape' => 'NFSFileShareDefaults', ], 'DefaultStorageClass' => [ 'shape' => 'StorageClass', ], 'ObjectACL' => [ 'shape' => 'ObjectACL', ], 'ClientList' => [ 'shape' => 'FileShareClientList', ], 'Squash' => [ 'shape' => 'Squash', ], 'ReadOnly' => [ 'shape' => 'Boolean', ], 'GuessMIMETypeEnabled' => [ 'shape' => 'Boolean', ], 'RequesterPays' => [ 'shape' => 'Boolean', ], ], ], 'UpdateNFSFileShareOutput' => [ 'type' => 'structure', 'members' => [ 'FileShareARN' => [ 'shape' => 'FileShareARN', ], ], ], 'UpdateSMBFileShareInput' => [ 'type' => 'structure', 'required' => [ 'FileShareARN', ], 'members' => [ 'FileShareARN' => [ 'shape' => 'FileShareARN', ], 'KMSEncrypted' => [ 'shape' => 'Boolean', ], 'KMSKey' => [ 'shape' => 'KMSKey', ], 'DefaultStorageClass' => [ 'shape' => 'StorageClass', ], 'ObjectACL' => [ 'shape' => 'ObjectACL', ], 'ReadOnly' => [ 'shape' => 'Boolean', ], 'GuessMIMETypeEnabled' => [ 'shape' => 'Boolean', ], 'RequesterPays' => [ 'shape' => 'Boolean', ], 'ValidUserList' => [ 'shape' => 'FileShareUserList', ], 'InvalidUserList' => [ 'shape' => 'FileShareUserList', ], ], ], 'UpdateSMBFileShareOutput' => [ 'type' => 'structure', 'members' => [ 'FileShareARN' => [ 'shape' => 'FileShareARN', ], ], ], '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', 'max' => 500, 'min' => 50, ], 'VTLDeviceARNs' => [ 'type' => 'list', 'member' => [ 'shape' => 'VTLDeviceARN', ], ], 'VTLDeviceProductIdentifier' => [ 'type' => 'string', ], 'VTLDeviceType' => [ 'type' => 'string', ], 'VTLDeviceVendor' => [ 'type' => 'string', ], 'VTLDevices' => [ 'type' => 'list', 'member' => [ 'shape' => 'VTLDevice', ], ], 'VolumeARN' => [ 'type' => 'string', 'max' => 500, 'min' => 50, ], 'VolumeARNs' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeARN', ], ], 'VolumeAttachmentStatus' => [ 'type' => 'string', 'max' => 50, 'min' => 3, ], 'VolumeId' => [ 'type' => 'string', 'max' => 30, 'min' => 12, ], 'VolumeInfo' => [ 'type' => 'structure', 'members' => [ 'VolumeARN' => [ 'shape' => 'VolumeARN', ], 'VolumeId' => [ 'shape' => 'VolumeId', ], 'GatewayARN' => [ 'shape' => 'GatewayARN', ], 'GatewayId' => [ 'shape' => 'GatewayId', ], 'VolumeType' => [ 'shape' => 'VolumeType', ], 'VolumeSizeInBytes' => [ 'shape' => 'long', ], 'VolumeAttachmentStatus' => [ 'shape' => 'VolumeAttachmentStatus', ], ], ], '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', 'max' => 50, 'min' => 3, ], 'VolumeType' => [ 'type' => 'string', 'max' => 100, 'min' => 3, ], 'VolumeUsedInBytes' => [ 'type' => 'long', ], '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/Aws/data/storagegateway/2013-06-30/paginators-1.json.php b/lib/aws/Aws/data/storagegateway/2013-06-30/paginators-1.json.php new file mode 100644 index 0000000..df36d0d --- /dev/null +++ b/lib/aws/Aws/data/storagegateway/2013-06-30/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/storagegateway/2013-06-30/paginators-1.json +return [ '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/Aws/data/streams.dynamodb/2012-08-10/api-2.json.php b/lib/aws/Aws/data/streams.dynamodb/2012-08-10/api-2.json.php new file mode 100644 index 0000000..49a32fb --- /dev/null +++ b/lib/aws/Aws/data/streams.dynamodb/2012-08-10/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/streams.dynamodb/2012-08-10/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2012-08-10', 'endpointPrefix' => 'streams.dynamodb', 'jsonVersion' => '1.0', 'protocol' => 'json', 'serviceFullName' => 'Amazon DynamoDB Streams', 'signatureVersion' => 'v4', 'signingName' => 'dynamodb', 'targetPrefix' => 'DynamoDBStreams_20120810', 'uid' => 'streams-dynamodb-2012-08-10', ], 'operations' => [ 'DescribeStream' => [ 'name' => 'DescribeStream', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStreamInput', ], 'output' => [ 'shape' => 'DescribeStreamOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], 'GetRecords' => [ 'name' => 'GetRecords', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRecordsInput', ], 'output' => [ 'shape' => 'GetRecordsOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ExpiredIteratorException', ], [ 'shape' => 'TrimmedDataAccessException', ], ], ], 'GetShardIterator' => [ 'name' => 'GetShardIterator', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetShardIteratorInput', ], 'output' => [ 'shape' => 'GetShardIteratorOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'TrimmedDataAccessException', ], ], ], 'ListStreams' => [ 'name' => 'ListStreams', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListStreamsInput', ], 'output' => [ 'shape' => 'ListStreamsOutput', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerError', ], ], ], ], 'shapes' => [ 'AttributeMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttributeName', ], 'value' => [ 'shape' => 'AttributeValue', ], ], 'AttributeName' => [ 'type' => 'string', 'max' => 65535, ], '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', ], ], ], 'BinaryAttributeValue' => [ 'type' => 'blob', ], 'BinarySetAttributeValue' => [ 'type' => 'list', 'member' => [ 'shape' => 'BinaryAttributeValue', ], ], 'BooleanAttributeValue' => [ 'type' => 'boolean', ], 'Date' => [ 'type' => 'timestamp', ], 'DescribeStreamInput' => [ 'type' => 'structure', 'required' => [ 'StreamArn', ], 'members' => [ 'StreamArn' => [ 'shape' => 'StreamArn', ], 'Limit' => [ 'shape' => 'PositiveIntegerObject', ], 'ExclusiveStartShardId' => [ 'shape' => 'ShardId', ], ], ], 'DescribeStreamOutput' => [ 'type' => 'structure', 'members' => [ 'StreamDescription' => [ 'shape' => 'StreamDescription', ], ], ], 'ErrorMessage' => [ 'type' => 'string', ], 'ExpiredIteratorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'GetRecordsInput' => [ 'type' => 'structure', 'required' => [ 'ShardIterator', ], 'members' => [ 'ShardIterator' => [ 'shape' => 'ShardIterator', ], 'Limit' => [ 'shape' => 'PositiveIntegerObject', ], ], ], 'GetRecordsOutput' => [ 'type' => 'structure', 'members' => [ 'Records' => [ 'shape' => 'RecordList', ], 'NextShardIterator' => [ 'shape' => 'ShardIterator', ], ], ], 'GetShardIteratorInput' => [ 'type' => 'structure', 'required' => [ 'StreamArn', 'ShardId', 'ShardIteratorType', ], 'members' => [ 'StreamArn' => [ 'shape' => 'StreamArn', ], 'ShardId' => [ 'shape' => 'ShardId', ], 'ShardIteratorType' => [ 'shape' => 'ShardIteratorType', ], 'SequenceNumber' => [ 'shape' => 'SequenceNumber', ], ], ], 'GetShardIteratorOutput' => [ 'type' => 'structure', 'members' => [ 'ShardIterator' => [ 'shape' => 'ShardIterator', ], ], ], 'Identity' => [ 'type' => 'structure', 'members' => [ 'PrincipalId' => [ 'shape' => 'String', ], 'Type' => [ 'shape' => 'String', ], ], ], 'InternalServerError' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, 'fault' => true, ], 'KeySchema' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeySchemaElement', ], 'max' => 2, 'min' => 1, ], 'KeySchemaAttributeName' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'KeySchemaElement' => [ 'type' => 'structure', 'required' => [ 'AttributeName', 'KeyType', ], 'members' => [ 'AttributeName' => [ 'shape' => 'KeySchemaAttributeName', ], 'KeyType' => [ 'shape' => 'KeyType', ], ], ], 'KeyType' => [ 'type' => 'string', 'enum' => [ 'HASH', 'RANGE', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'ListAttributeValue' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeValue', ], ], 'ListStreamsInput' => [ 'type' => 'structure', 'members' => [ 'TableName' => [ 'shape' => 'TableName', ], 'Limit' => [ 'shape' => 'PositiveIntegerObject', ], 'ExclusiveStartStreamArn' => [ 'shape' => 'StreamArn', ], ], ], 'ListStreamsOutput' => [ 'type' => 'structure', 'members' => [ 'Streams' => [ 'shape' => 'StreamList', ], 'LastEvaluatedStreamArn' => [ 'shape' => 'StreamArn', ], ], ], 'MapAttributeValue' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttributeName', ], 'value' => [ 'shape' => 'AttributeValue', ], ], 'NullAttributeValue' => [ 'type' => 'boolean', ], 'NumberAttributeValue' => [ 'type' => 'string', ], 'NumberSetAttributeValue' => [ 'type' => 'list', 'member' => [ 'shape' => 'NumberAttributeValue', ], ], 'OperationType' => [ 'type' => 'string', 'enum' => [ 'INSERT', 'MODIFY', 'REMOVE', ], ], 'PositiveIntegerObject' => [ 'type' => 'integer', 'min' => 1, ], 'PositiveLongObject' => [ 'type' => 'long', 'min' => 1, ], 'Record' => [ 'type' => 'structure', 'members' => [ 'eventID' => [ 'shape' => 'String', ], 'eventName' => [ 'shape' => 'OperationType', ], 'eventVersion' => [ 'shape' => 'String', ], 'eventSource' => [ 'shape' => 'String', ], 'awsRegion' => [ 'shape' => 'String', ], 'dynamodb' => [ 'shape' => 'StreamRecord', ], 'userIdentity' => [ 'shape' => 'Identity', ], ], ], 'RecordList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Record', ], ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'SequenceNumber' => [ 'type' => 'string', 'max' => 40, 'min' => 21, ], 'SequenceNumberRange' => [ 'type' => 'structure', 'members' => [ 'StartingSequenceNumber' => [ 'shape' => 'SequenceNumber', ], 'EndingSequenceNumber' => [ 'shape' => 'SequenceNumber', ], ], ], 'Shard' => [ 'type' => 'structure', 'members' => [ 'ShardId' => [ 'shape' => 'ShardId', ], 'SequenceNumberRange' => [ 'shape' => 'SequenceNumberRange', ], 'ParentShardId' => [ 'shape' => 'ShardId', ], ], ], 'ShardDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Shard', ], ], 'ShardId' => [ 'type' => 'string', 'max' => 65, 'min' => 28, ], 'ShardIterator' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'ShardIteratorType' => [ 'type' => 'string', 'enum' => [ 'TRIM_HORIZON', 'LATEST', 'AT_SEQUENCE_NUMBER', 'AFTER_SEQUENCE_NUMBER', ], ], 'Stream' => [ 'type' => 'structure', 'members' => [ 'StreamArn' => [ 'shape' => 'StreamArn', ], 'TableName' => [ 'shape' => 'TableName', ], 'StreamLabel' => [ 'shape' => 'String', ], ], ], 'StreamArn' => [ 'type' => 'string', 'max' => 1024, 'min' => 37, ], 'StreamDescription' => [ 'type' => 'structure', 'members' => [ 'StreamArn' => [ 'shape' => 'StreamArn', ], 'StreamLabel' => [ 'shape' => 'String', ], 'StreamStatus' => [ 'shape' => 'StreamStatus', ], 'StreamViewType' => [ 'shape' => 'StreamViewType', ], 'CreationRequestDateTime' => [ 'shape' => 'Date', ], 'TableName' => [ 'shape' => 'TableName', ], 'KeySchema' => [ 'shape' => 'KeySchema', ], 'Shards' => [ 'shape' => 'ShardDescriptionList', ], 'LastEvaluatedShardId' => [ 'shape' => 'ShardId', ], ], ], 'StreamList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Stream', ], ], 'StreamRecord' => [ 'type' => 'structure', 'members' => [ 'ApproximateCreationDateTime' => [ 'shape' => 'Date', ], 'Keys' => [ 'shape' => 'AttributeMap', ], 'NewImage' => [ 'shape' => 'AttributeMap', ], 'OldImage' => [ 'shape' => 'AttributeMap', ], 'SequenceNumber' => [ 'shape' => 'SequenceNumber', ], 'SizeBytes' => [ 'shape' => 'PositiveLongObject', ], 'StreamViewType' => [ 'shape' => 'StreamViewType', ], ], ], 'StreamStatus' => [ 'type' => 'string', 'enum' => [ 'ENABLING', 'ENABLED', 'DISABLING', 'DISABLED', ], ], 'StreamViewType' => [ 'type' => 'string', 'enum' => [ 'NEW_IMAGE', 'OLD_IMAGE', 'NEW_AND_OLD_IMAGES', 'KEYS_ONLY', ], ], 'String' => [ 'type' => 'string', ], 'StringAttributeValue' => [ 'type' => 'string', ], 'StringSetAttributeValue' => [ 'type' => 'list', 'member' => [ 'shape' => 'StringAttributeValue', ], ], 'TableName' => [ 'type' => 'string', 'max' => 255, 'min' => 3, 'pattern' => '[a-zA-Z0-9_.-]+', ], 'TrimmedDataAccessException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], ],]; diff --git a/lib/aws/Aws/data/streams.dynamodb/2012-08-10/paginators-1.json.php b/lib/aws/Aws/data/streams.dynamodb/2012-08-10/paginators-1.json.php new file mode 100644 index 0000000..89b2d78 --- /dev/null +++ b/lib/aws/Aws/data/streams.dynamodb/2012-08-10/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/streams.dynamodb/2012-08-10/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/sts/2011-06-15/api-2.json.php b/lib/aws/Aws/data/sts/2011-06-15/api-2.json.php new file mode 100644 index 0000000..054a8dd --- /dev/null +++ b/lib/aws/Aws/data/sts/2011-06-15/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/sts/2011-06-15/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2011-06-15', 'endpointPrefix' => 'sts', 'globalEndpoint' => 'sts.amazonaws.com', 'protocol' => 'query', 'serviceAbbreviation' => 'AWS STS', 'serviceFullName' => 'AWS Security Token Service', 'serviceId' => 'STS', 'signatureVersion' => 'v4', 'uid' => 'sts-2011-06-15', 'xmlNamespace' => 'https://sts.amazonaws.com/doc/2011-06-15/', ], 'operations' => [ 'AssumeRole' => [ 'name' => 'AssumeRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssumeRoleRequest', ], 'output' => [ 'shape' => 'AssumeRoleResponse', 'resultWrapper' => 'AssumeRoleResult', ], 'errors' => [ [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'PackedPolicyTooLargeException', ], [ 'shape' => 'RegionDisabledException', ], ], ], 'AssumeRoleWithSAML' => [ 'name' => 'AssumeRoleWithSAML', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssumeRoleWithSAMLRequest', ], 'output' => [ 'shape' => 'AssumeRoleWithSAMLResponse', 'resultWrapper' => 'AssumeRoleWithSAMLResult', ], 'errors' => [ [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'PackedPolicyTooLargeException', ], [ 'shape' => 'IDPRejectedClaimException', ], [ 'shape' => 'InvalidIdentityTokenException', ], [ 'shape' => 'ExpiredTokenException', ], [ 'shape' => 'RegionDisabledException', ], ], ], 'AssumeRoleWithWebIdentity' => [ 'name' => 'AssumeRoleWithWebIdentity', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssumeRoleWithWebIdentityRequest', ], 'output' => [ 'shape' => 'AssumeRoleWithWebIdentityResponse', 'resultWrapper' => 'AssumeRoleWithWebIdentityResult', ], 'errors' => [ [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'PackedPolicyTooLargeException', ], [ 'shape' => 'IDPRejectedClaimException', ], [ 'shape' => 'IDPCommunicationErrorException', ], [ 'shape' => 'InvalidIdentityTokenException', ], [ 'shape' => 'ExpiredTokenException', ], [ 'shape' => 'RegionDisabledException', ], ], ], 'DecodeAuthorizationMessage' => [ 'name' => 'DecodeAuthorizationMessage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DecodeAuthorizationMessageRequest', ], 'output' => [ 'shape' => 'DecodeAuthorizationMessageResponse', 'resultWrapper' => 'DecodeAuthorizationMessageResult', ], 'errors' => [ [ 'shape' => 'InvalidAuthorizationMessageException', ], ], ], 'GetCallerIdentity' => [ 'name' => 'GetCallerIdentity', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCallerIdentityRequest', ], 'output' => [ 'shape' => 'GetCallerIdentityResponse', 'resultWrapper' => 'GetCallerIdentityResult', ], ], 'GetFederationToken' => [ 'name' => 'GetFederationToken', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetFederationTokenRequest', ], 'output' => [ 'shape' => 'GetFederationTokenResponse', 'resultWrapper' => 'GetFederationTokenResult', ], 'errors' => [ [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'PackedPolicyTooLargeException', ], [ 'shape' => 'RegionDisabledException', ], ], ], 'GetSessionToken' => [ 'name' => 'GetSessionToken', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSessionTokenRequest', ], 'output' => [ 'shape' => 'GetSessionTokenResponse', 'resultWrapper' => 'GetSessionTokenResult', ], 'errors' => [ [ 'shape' => 'RegionDisabledException', ], ], ], ], 'shapes' => [ 'AssumeRoleRequest' => [ 'type' => 'structure', 'required' => [ 'RoleArn', 'RoleSessionName', ], 'members' => [ 'RoleArn' => [ 'shape' => 'arnType', ], 'RoleSessionName' => [ 'shape' => 'roleSessionNameType', ], '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' => 'roleDurationSecondsType', ], ], ], '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' => 'roleSessionNameType', ], 'WebIdentityToken' => [ 'shape' => 'clientTokenType', ], 'ProviderId' => [ 'shape' => 'urlType', ], 'Policy' => [ 'shape' => 'sessionPolicyDocumentType', ], 'DurationSeconds' => [ 'shape' => 'roleDurationSecondsType', ], ], ], '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', ], ], ], 'GetCallerIdentityRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetCallerIdentityResponse' => [ 'type' => 'structure', 'members' => [ 'UserId' => [ 'shape' => 'userIdType', ], 'Account' => [ 'shape' => 'accountType', ], '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, ], 'RegionDisabledException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'regionDisabledMessage', ], ], 'error' => [ 'code' => 'RegionDisabledException', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'SAMLAssertionType' => [ 'type' => 'string', 'max' => 100000, 'min' => 4, ], 'Subject' => [ 'type' => 'string', ], 'SubjectType' => [ 'type' => 'string', ], 'accessKeyIdType' => [ 'type' => 'string', 'max' => 128, 'min' => 16, 'pattern' => '[\\w]*', ], 'accessKeySecretType' => [ 'type' => 'string', ], 'accountType' => [ 'type' => 'string', ], 'arnType' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]+', ], 'assumedRoleIdType' => [ 'type' => 'string', 'max' => 193, 'min' => 2, 'pattern' => '[\\w+=,.@:-]*', ], 'clientTokenType' => [ 'type' => 'string', 'max' => 2048, 'min' => 4, ], 'dateType' => [ 'type' => 'timestamp', ], 'decodedMessageType' => [ 'type' => 'string', ], 'durationSecondsType' => [ 'type' => 'integer', 'max' => 129600, 'min' => 900, ], 'encodedMessageType' => [ 'type' => 'string', 'max' => 10240, 'min' => 1, ], 'expiredIdentityTokenMessage' => [ 'type' => 'string', ], 'externalIdType' => [ 'type' => 'string', 'max' => 1224, 'min' => 2, 'pattern' => '[\\w+=,.@:\\/-]*', ], 'federatedIdType' => [ 'type' => 'string', 'max' => 193, 'min' => 2, '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', ], 'regionDisabledMessage' => [ 'type' => 'string', ], 'roleDurationSecondsType' => [ 'type' => 'integer', 'max' => 43200, 'min' => 900, ], 'roleSessionNameType' => [ 'type' => 'string', 'max' => 64, 'min' => 2, 'pattern' => '[\\w+=,.@-]*', ], 'serialNumberType' => [ 'type' => 'string', 'max' => 256, 'min' => 9, 'pattern' => '[\\w+=/:,.@-]*', ], 'sessionPolicyDocumentType' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+', ], 'tokenCodeType' => [ 'type' => 'string', 'max' => 6, 'min' => 6, 'pattern' => '[\\d]*', ], 'tokenType' => [ 'type' => 'string', ], 'urlType' => [ 'type' => 'string', 'max' => 2048, 'min' => 4, ], 'userIdType' => [ 'type' => 'string', ], 'userNameType' => [ 'type' => 'string', 'max' => 32, 'min' => 2, 'pattern' => '[\\w+=,.@-]*', ], 'webIdentitySubjectType' => [ 'type' => 'string', 'max' => 255, 'min' => 6, ], ],]; diff --git a/lib/aws/Aws/data/sts/2011-06-15/paginators-1.json.php b/lib/aws/Aws/data/sts/2011-06-15/paginators-1.json.php new file mode 100644 index 0000000..d762313 --- /dev/null +++ b/lib/aws/Aws/data/sts/2011-06-15/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/sts/2011-06-15/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/sts/2011-06-15/smoke.json.php b/lib/aws/Aws/data/sts/2011-06-15/smoke.json.php new file mode 100644 index 0000000..28082e8 --- /dev/null +++ b/lib/aws/Aws/data/sts/2011-06-15/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/sts/2011-06-15/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'GetSessionToken', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'GetFederationToken', 'input' => [ 'Name' => 'temp', 'Policy' => '{\\"temp\\":true}', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/support/2013-04-15/api-2.json.php b/lib/aws/Aws/data/support/2013-04-15/api-2.json.php new file mode 100644 index 0000000..fde5e60 --- /dev/null +++ b/lib/aws/Aws/data/support/2013-04-15/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/support/2013-04-15/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'uid' => 'support-2013-04-15', 'apiVersion' => '2013-04-15', 'endpointPrefix' => 'support', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'AWS Support', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWSSupport_20130415', ], 'operations' => [ 'AddAttachmentsToSet' => [ 'name' => 'AddAttachmentsToSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddAttachmentsToSetRequest', ], 'output' => [ 'shape' => 'AddAttachmentsToSetResponse', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'AttachmentSetIdNotFound', ], [ 'shape' => 'AttachmentSetExpired', ], [ 'shape' => 'AttachmentSetSizeLimitExceeded', ], [ 'shape' => 'AttachmentLimitExceeded', ], ], ], 'AddCommunicationToCase' => [ 'name' => 'AddCommunicationToCase', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddCommunicationToCaseRequest', ], 'output' => [ 'shape' => 'AddCommunicationToCaseResponse', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'CaseIdNotFound', ], [ 'shape' => 'AttachmentSetIdNotFound', ], [ 'shape' => 'AttachmentSetExpired', ], ], ], 'CreateCase' => [ 'name' => 'CreateCase', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCaseRequest', ], 'output' => [ 'shape' => 'CreateCaseResponse', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'CaseCreationLimitExceeded', ], [ 'shape' => 'AttachmentSetIdNotFound', ], [ 'shape' => 'AttachmentSetExpired', ], ], ], 'DescribeAttachment' => [ 'name' => 'DescribeAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAttachmentRequest', ], 'output' => [ 'shape' => 'DescribeAttachmentResponse', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'DescribeAttachmentLimitExceeded', ], [ 'shape' => 'AttachmentIdNotFound', ], ], ], 'DescribeCases' => [ 'name' => 'DescribeCases', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCasesRequest', ], 'output' => [ 'shape' => 'DescribeCasesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'CaseIdNotFound', ], ], ], 'DescribeCommunications' => [ 'name' => 'DescribeCommunications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCommunicationsRequest', ], 'output' => [ 'shape' => 'DescribeCommunicationsResponse', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'CaseIdNotFound', ], ], ], 'DescribeServices' => [ 'name' => 'DescribeServices', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeServicesRequest', ], 'output' => [ 'shape' => 'DescribeServicesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'DescribeSeverityLevels' => [ 'name' => 'DescribeSeverityLevels', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSeverityLevelsRequest', ], 'output' => [ 'shape' => 'DescribeSeverityLevelsResponse', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'DescribeTrustedAdvisorCheckRefreshStatuses' => [ 'name' => 'DescribeTrustedAdvisorCheckRefreshStatuses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTrustedAdvisorCheckRefreshStatusesRequest', ], 'output' => [ 'shape' => 'DescribeTrustedAdvisorCheckRefreshStatusesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'DescribeTrustedAdvisorCheckResult' => [ 'name' => 'DescribeTrustedAdvisorCheckResult', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTrustedAdvisorCheckResultRequest', ], 'output' => [ 'shape' => 'DescribeTrustedAdvisorCheckResultResponse', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'DescribeTrustedAdvisorCheckSummaries' => [ 'name' => 'DescribeTrustedAdvisorCheckSummaries', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTrustedAdvisorCheckSummariesRequest', ], 'output' => [ 'shape' => 'DescribeTrustedAdvisorCheckSummariesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'DescribeTrustedAdvisorChecks' => [ 'name' => 'DescribeTrustedAdvisorChecks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTrustedAdvisorChecksRequest', ], 'output' => [ 'shape' => 'DescribeTrustedAdvisorChecksResponse', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'RefreshTrustedAdvisorCheck' => [ 'name' => 'RefreshTrustedAdvisorCheck', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RefreshTrustedAdvisorCheckRequest', ], 'output' => [ 'shape' => 'RefreshTrustedAdvisorCheckResponse', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], ], ], 'ResolveCase' => [ 'name' => 'ResolveCase', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResolveCaseRequest', ], 'output' => [ 'shape' => 'ResolveCaseResponse', ], 'errors' => [ [ 'shape' => 'InternalServerError', ], [ 'shape' => 'CaseIdNotFound', ], ], ], ], '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', ], 'max' => 100, 'min' => 0, ], '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', ], 'max' => 10, 'min' => 0, ], 'Communication' => [ 'type' => 'structure', 'members' => [ 'caseId' => [ 'shape' => 'CaseId', ], 'body' => [ 'shape' => 'CommunicationBody', ], 'submittedBy' => [ 'shape' => 'SubmittedBy', ], 'timeCreated' => [ 'shape' => 'TimeCreated', ], 'attachmentSet' => [ 'shape' => 'AttachmentSet', ], ], ], 'CommunicationBody' => [ 'type' => 'string', 'max' => 8000, 'min' => 1, ], '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', 'max' => 100, 'min' => 10, ], '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', ], 'ServiceCodeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceCode', ], 'max' => 100, 'min' => 0, ], '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', '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/Aws/data/support/2013-04-15/paginators-1.json.php b/lib/aws/Aws/data/support/2013-04-15/paginators-1.json.php new file mode 100644 index 0000000..b7a94e6 --- /dev/null +++ b/lib/aws/Aws/data/support/2013-04-15/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/support/2013-04-15/paginators-1.json +return [ '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/Aws/data/swf/2012-01-25/api-2.json.php b/lib/aws/Aws/data/swf/2012-01-25/api-2.json.php new file mode 100644 index 0000000..341bb9c --- /dev/null +++ b/lib/aws/Aws/data/swf/2012-01-25/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/swf/2012-01-25/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2012-01-25', 'endpointPrefix' => 'swf', 'jsonVersion' => '1.0', 'protocol' => 'json', 'serviceAbbreviation' => 'Amazon SWF', 'serviceFullName' => 'Amazon Simple Workflow Service', 'signatureVersion' => 'v4', 'targetPrefix' => 'SimpleWorkflowService', 'timestampFormat' => 'unixTimestamp', 'uid' => 'swf-2012-01-25', ], 'operations' => [ 'CountClosedWorkflowExecutions' => [ 'name' => 'CountClosedWorkflowExecutions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CountClosedWorkflowExecutionsInput', ], 'output' => [ 'shape' => 'WorkflowExecutionCount', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'CountOpenWorkflowExecutions' => [ 'name' => 'CountOpenWorkflowExecutions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CountOpenWorkflowExecutionsInput', ], 'output' => [ 'shape' => 'WorkflowExecutionCount', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'CountPendingActivityTasks' => [ 'name' => 'CountPendingActivityTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CountPendingActivityTasksInput', ], 'output' => [ 'shape' => 'PendingTaskCount', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'CountPendingDecisionTasks' => [ 'name' => 'CountPendingDecisionTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CountPendingDecisionTasksInput', ], 'output' => [ 'shape' => 'PendingTaskCount', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'DeprecateActivityType' => [ 'name' => 'DeprecateActivityType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeprecateActivityTypeInput', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'TypeDeprecatedFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'DeprecateDomain' => [ 'name' => 'DeprecateDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeprecateDomainInput', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'DomainDeprecatedFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'DeprecateWorkflowType' => [ 'name' => 'DeprecateWorkflowType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeprecateWorkflowTypeInput', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'TypeDeprecatedFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'DescribeActivityType' => [ 'name' => 'DescribeActivityType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeActivityTypeInput', ], 'output' => [ 'shape' => 'ActivityTypeDetail', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'DescribeDomain' => [ 'name' => 'DescribeDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDomainInput', ], 'output' => [ 'shape' => 'DomainDetail', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'DescribeWorkflowExecution' => [ 'name' => 'DescribeWorkflowExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeWorkflowExecutionInput', ], 'output' => [ 'shape' => 'WorkflowExecutionDetail', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'DescribeWorkflowType' => [ 'name' => 'DescribeWorkflowType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeWorkflowTypeInput', ], 'output' => [ 'shape' => 'WorkflowTypeDetail', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'GetWorkflowExecutionHistory' => [ 'name' => 'GetWorkflowExecutionHistory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetWorkflowExecutionHistoryInput', ], 'output' => [ 'shape' => 'History', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'ListActivityTypes' => [ 'name' => 'ListActivityTypes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListActivityTypesInput', ], 'output' => [ 'shape' => 'ActivityTypeInfos', ], 'errors' => [ [ 'shape' => 'OperationNotPermittedFault', ], [ 'shape' => 'UnknownResourceFault', ], ], ], 'ListClosedWorkflowExecutions' => [ 'name' => 'ListClosedWorkflowExecutions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListClosedWorkflowExecutionsInput', ], 'output' => [ 'shape' => 'WorkflowExecutionInfos', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'ListDomains' => [ 'name' => 'ListDomains', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDomainsInput', ], 'output' => [ 'shape' => 'DomainInfos', ], 'errors' => [ [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'ListOpenWorkflowExecutions' => [ 'name' => 'ListOpenWorkflowExecutions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListOpenWorkflowExecutionsInput', ], 'output' => [ 'shape' => 'WorkflowExecutionInfos', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'ListWorkflowTypes' => [ 'name' => 'ListWorkflowTypes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListWorkflowTypesInput', ], 'output' => [ 'shape' => 'WorkflowTypeInfos', ], 'errors' => [ [ 'shape' => 'OperationNotPermittedFault', ], [ 'shape' => 'UnknownResourceFault', ], ], ], 'PollForActivityTask' => [ 'name' => 'PollForActivityTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PollForActivityTaskInput', ], 'output' => [ 'shape' => 'ActivityTask', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], [ 'shape' => 'LimitExceededFault', ], ], ], 'PollForDecisionTask' => [ 'name' => 'PollForDecisionTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PollForDecisionTaskInput', ], 'output' => [ 'shape' => 'DecisionTask', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], [ 'shape' => 'LimitExceededFault', ], ], ], 'RecordActivityTaskHeartbeat' => [ 'name' => 'RecordActivityTaskHeartbeat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RecordActivityTaskHeartbeatInput', ], 'output' => [ 'shape' => 'ActivityTaskStatus', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'RegisterActivityType' => [ 'name' => 'RegisterActivityType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterActivityTypeInput', ], 'errors' => [ [ 'shape' => 'TypeAlreadyExistsFault', ], [ 'shape' => 'LimitExceededFault', ], [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'RegisterDomain' => [ 'name' => 'RegisterDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterDomainInput', ], 'errors' => [ [ 'shape' => 'DomainAlreadyExistsFault', ], [ 'shape' => 'LimitExceededFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'RegisterWorkflowType' => [ 'name' => 'RegisterWorkflowType', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterWorkflowTypeInput', ], 'errors' => [ [ 'shape' => 'TypeAlreadyExistsFault', ], [ 'shape' => 'LimitExceededFault', ], [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'RequestCancelWorkflowExecution' => [ 'name' => 'RequestCancelWorkflowExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RequestCancelWorkflowExecutionInput', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'RespondActivityTaskCanceled' => [ 'name' => 'RespondActivityTaskCanceled', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RespondActivityTaskCanceledInput', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'RespondActivityTaskCompleted' => [ 'name' => 'RespondActivityTaskCompleted', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RespondActivityTaskCompletedInput', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'RespondActivityTaskFailed' => [ 'name' => 'RespondActivityTaskFailed', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RespondActivityTaskFailedInput', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'RespondDecisionTaskCompleted' => [ 'name' => 'RespondDecisionTaskCompleted', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RespondDecisionTaskCompletedInput', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'SignalWorkflowExecution' => [ 'name' => 'SignalWorkflowExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SignalWorkflowExecutionInput', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], 'StartWorkflowExecution' => [ 'name' => 'StartWorkflowExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartWorkflowExecutionInput', ], 'output' => [ 'shape' => 'Run', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'TypeDeprecatedFault', ], [ 'shape' => 'WorkflowExecutionAlreadyStartedFault', ], [ 'shape' => 'LimitExceededFault', ], [ 'shape' => 'OperationNotPermittedFault', ], [ 'shape' => 'DefaultUndefinedFault', ], ], ], 'TerminateWorkflowExecution' => [ 'name' => 'TerminateWorkflowExecution', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TerminateWorkflowExecutionInput', ], 'errors' => [ [ 'shape' => 'UnknownResourceFault', ], [ 'shape' => 'OperationNotPermittedFault', ], ], ], ], 'shapes' => [ 'ActivityId' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], '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', ], ], ], 'Arn' => [ 'type' => 'string', 'max' => 1600, 'min' => 1, ], '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', ], 'CauseMessage' => [ 'type' => 'string', 'max' => 1728, ], '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', ], 'lambdaRole' => [ 'shape' => 'Arn', ], ], ], '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', ], 'scheduleLambdaFunctionDecisionAttributes' => [ 'shape' => 'ScheduleLambdaFunctionDecisionAttributes', ], ], ], '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', 'ScheduleLambdaFunction', ], ], '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', 'max' => 256, 'min' => 1, ], 'DurationInDays' => [ 'type' => 'string', 'max' => 8, 'min' => 1, ], 'DurationInSeconds' => [ 'type' => 'string', 'max' => 8, 'min' => 1, ], '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', 'LambdaFunctionScheduled', 'LambdaFunctionStarted', 'LambdaFunctionCompleted', 'LambdaFunctionFailed', 'LambdaFunctionTimedOut', 'ScheduleLambdaFunctionFailed', 'StartLambdaFunctionFailed', ], ], '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, ], 'FunctionId' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'FunctionInput' => [ 'type' => 'string', 'max' => 32768, 'min' => 0, ], 'FunctionName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], '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', ], 'lambdaFunctionScheduledEventAttributes' => [ 'shape' => 'LambdaFunctionScheduledEventAttributes', ], 'lambdaFunctionStartedEventAttributes' => [ 'shape' => 'LambdaFunctionStartedEventAttributes', ], 'lambdaFunctionCompletedEventAttributes' => [ 'shape' => 'LambdaFunctionCompletedEventAttributes', ], 'lambdaFunctionFailedEventAttributes' => [ 'shape' => 'LambdaFunctionFailedEventAttributes', ], 'lambdaFunctionTimedOutEventAttributes' => [ 'shape' => 'LambdaFunctionTimedOutEventAttributes', ], 'scheduleLambdaFunctionFailedEventAttributes' => [ 'shape' => 'ScheduleLambdaFunctionFailedEventAttributes', ], 'startLambdaFunctionFailedEventAttributes' => [ 'shape' => 'StartLambdaFunctionFailedEventAttributes', ], ], ], 'HistoryEventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HistoryEvent', ], ], 'Identity' => [ 'type' => 'string', 'max' => 256, ], 'LambdaFunctionCompletedEventAttributes' => [ 'type' => 'structure', 'required' => [ 'scheduledEventId', 'startedEventId', ], 'members' => [ 'scheduledEventId' => [ 'shape' => 'EventId', ], 'startedEventId' => [ 'shape' => 'EventId', ], 'result' => [ 'shape' => 'Data', ], ], ], 'LambdaFunctionFailedEventAttributes' => [ 'type' => 'structure', 'required' => [ 'scheduledEventId', 'startedEventId', ], 'members' => [ 'scheduledEventId' => [ 'shape' => 'EventId', ], 'startedEventId' => [ 'shape' => 'EventId', ], 'reason' => [ 'shape' => 'FailureReason', ], 'details' => [ 'shape' => 'Data', ], ], ], 'LambdaFunctionScheduledEventAttributes' => [ 'type' => 'structure', 'required' => [ 'id', 'name', 'decisionTaskCompletedEventId', ], 'members' => [ 'id' => [ 'shape' => 'FunctionId', ], 'name' => [ 'shape' => 'FunctionName', ], 'control' => [ 'shape' => 'Data', ], 'input' => [ 'shape' => 'FunctionInput', ], 'startToCloseTimeout' => [ 'shape' => 'DurationInSecondsOptional', ], 'decisionTaskCompletedEventId' => [ 'shape' => 'EventId', ], ], ], 'LambdaFunctionStartedEventAttributes' => [ 'type' => 'structure', 'required' => [ 'scheduledEventId', ], 'members' => [ 'scheduledEventId' => [ 'shape' => 'EventId', ], ], ], 'LambdaFunctionTimedOutEventAttributes' => [ 'type' => 'structure', 'required' => [ 'scheduledEventId', 'startedEventId', ], 'members' => [ 'scheduledEventId' => [ 'shape' => 'EventId', ], 'startedEventId' => [ 'shape' => 'EventId', ], 'timeoutType' => [ 'shape' => 'LambdaFunctionTimeoutType', ], ], ], 'LambdaFunctionTimeoutType' => [ 'type' => 'string', 'enum' => [ 'START_TO_CLOSE', ], ], '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', 'max' => 256, 'min' => 1, ], 'MarkerRecordedEventAttributes' => [ 'type' => 'structure', 'required' => [ 'markerName', 'decisionTaskCompletedEventId', ], 'members' => [ 'markerName' => [ 'shape' => 'MarkerName', ], 'details' => [ 'shape' => 'Data', ], 'decisionTaskCompletedEventId' => [ 'shape' => 'EventId', ], ], ], 'Name' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'OpenDecisionTasksCount' => [ 'type' => 'integer', 'max' => 1, 'min' => 0, ], 'OperationNotPermittedFault' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'PageSize' => [ 'type' => 'integer', 'max' => 1000, 'min' => 0, ], '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', ], 'defaultLambdaRole' => [ 'shape' => 'Arn', ], ], ], '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' => 'WorkflowRunIdOptional', ], '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' => 'WorkflowRunIdOptional', ], 'cause' => [ 'shape' => 'RequestCancelExternalWorkflowExecutionFailedCause', ], 'initiatedEventId' => [ 'shape' => 'EventId', ], 'decisionTaskCompletedEventId' => [ 'shape' => 'EventId', ], 'control' => [ 'shape' => 'Data', ], ], ], 'RequestCancelExternalWorkflowExecutionInitiatedEventAttributes' => [ 'type' => 'structure', 'required' => [ 'workflowId', 'decisionTaskCompletedEventId', ], 'members' => [ 'workflowId' => [ 'shape' => 'WorkflowId', ], 'runId' => [ 'shape' => 'WorkflowRunIdOptional', ], 'decisionTaskCompletedEventId' => [ 'shape' => 'EventId', ], 'control' => [ 'shape' => 'Data', ], ], ], 'RequestCancelWorkflowExecutionInput' => [ 'type' => 'structure', 'required' => [ 'domain', 'workflowId', ], 'members' => [ 'domain' => [ 'shape' => 'DomainName', ], 'workflowId' => [ 'shape' => 'WorkflowId', ], 'runId' => [ 'shape' => 'WorkflowRunIdOptional', ], ], ], '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' => 'WorkflowRunId', ], ], ], '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', ], ], ], 'ScheduleLambdaFunctionDecisionAttributes' => [ 'type' => 'structure', 'required' => [ 'id', 'name', ], 'members' => [ 'id' => [ 'shape' => 'FunctionId', ], 'name' => [ 'shape' => 'FunctionName', ], 'control' => [ 'shape' => 'Data', ], 'input' => [ 'shape' => 'FunctionInput', ], 'startToCloseTimeout' => [ 'shape' => 'DurationInSecondsOptional', ], ], ], 'ScheduleLambdaFunctionFailedCause' => [ 'type' => 'string', 'enum' => [ 'ID_ALREADY_IN_USE', 'OPEN_LAMBDA_FUNCTIONS_LIMIT_EXCEEDED', 'LAMBDA_FUNCTION_CREATION_RATE_EXCEEDED', 'LAMBDA_SERVICE_NOT_AVAILABLE_IN_REGION', ], ], 'ScheduleLambdaFunctionFailedEventAttributes' => [ 'type' => 'structure', 'required' => [ 'id', 'name', 'cause', 'decisionTaskCompletedEventId', ], 'members' => [ 'id' => [ 'shape' => 'FunctionId', ], 'name' => [ 'shape' => 'FunctionName', ], 'cause' => [ 'shape' => 'ScheduleLambdaFunctionFailedCause', ], 'decisionTaskCompletedEventId' => [ 'shape' => 'EventId', ], ], ], 'SignalExternalWorkflowExecutionDecisionAttributes' => [ 'type' => 'structure', 'required' => [ 'workflowId', 'signalName', ], 'members' => [ 'workflowId' => [ 'shape' => 'WorkflowId', ], 'runId' => [ 'shape' => 'WorkflowRunIdOptional', ], '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' => 'WorkflowRunIdOptional', ], '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' => 'WorkflowRunIdOptional', ], 'signalName' => [ 'shape' => 'SignalName', ], 'input' => [ 'shape' => 'Data', ], 'decisionTaskCompletedEventId' => [ 'shape' => 'EventId', ], 'control' => [ 'shape' => 'Data', ], ], ], 'SignalName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'SignalWorkflowExecutionInput' => [ 'type' => 'structure', 'required' => [ 'domain', 'workflowId', 'signalName', ], 'members' => [ 'domain' => [ 'shape' => 'DomainName', ], 'workflowId' => [ 'shape' => 'WorkflowId', ], 'runId' => [ 'shape' => 'WorkflowRunIdOptional', ], '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', ], 'lambdaRole' => [ 'shape' => 'Arn', ], ], ], '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', ], 'lambdaRole' => [ 'shape' => 'Arn', ], ], ], 'StartLambdaFunctionFailedCause' => [ 'type' => 'string', 'enum' => [ 'ASSUME_ROLE_FAILED', ], ], 'StartLambdaFunctionFailedEventAttributes' => [ 'type' => 'structure', 'members' => [ 'scheduledEventId' => [ 'shape' => 'EventId', ], 'cause' => [ 'shape' => 'StartLambdaFunctionFailedCause', ], 'message' => [ 'shape' => 'CauseMessage', ], ], ], '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', ], 'lambdaRole' => [ 'shape' => 'Arn', ], ], ], 'Tag' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], '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', ], 'TaskToken' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'TerminateReason' => [ 'type' => 'string', 'max' => 256, ], 'TerminateWorkflowExecutionInput' => [ 'type' => 'structure', 'required' => [ 'domain', 'workflowId', ], 'members' => [ 'domain' => [ 'shape' => 'DomainName', ], 'workflowId' => [ 'shape' => 'WorkflowId', ], 'runId' => [ 'shape' => 'WorkflowRunIdOptional', ], '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', 'max' => 256, 'min' => 1, ], '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', 'max' => 64, 'min' => 1, ], 'VersionOptional' => [ 'type' => 'string', 'max' => 64, ], 'WorkflowExecution' => [ 'type' => 'structure', 'required' => [ 'workflowId', 'runId', ], 'members' => [ 'workflowId' => [ 'shape' => 'WorkflowId', ], 'runId' => [ 'shape' => 'WorkflowRunId', ], ], ], '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', ], 'lambdaRole' => [ 'shape' => 'Arn', ], ], ], 'WorkflowExecutionContinuedAsNewEventAttributes' => [ 'type' => 'structure', 'required' => [ 'decisionTaskCompletedEventId', 'newExecutionRunId', 'taskList', 'childPolicy', 'workflowType', ], 'members' => [ 'input' => [ 'shape' => 'Data', ], 'decisionTaskCompletedEventId' => [ 'shape' => 'EventId', ], 'newExecutionRunId' => [ 'shape' => 'WorkflowRunId', ], 'executionStartToCloseTimeout' => [ 'shape' => 'DurationInSecondsOptional', ], 'taskList' => [ 'shape' => 'TaskList', ], 'taskPriority' => [ 'shape' => 'TaskPriority', ], 'taskStartToCloseTimeout' => [ 'shape' => 'DurationInSecondsOptional', ], 'childPolicy' => [ 'shape' => 'ChildPolicy', ], 'tagList' => [ 'shape' => 'TagList', ], 'workflowType' => [ 'shape' => 'WorkflowType', ], 'lambdaRole' => [ 'shape' => 'Arn', ], ], ], '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', ], 'openLambdaFunctions' => [ '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', ], 'taskPriority' => [ 'shape' => 'TaskPriority', ], 'workflowType' => [ 'shape' => 'WorkflowType', ], 'tagList' => [ 'shape' => 'TagList', ], 'continuedExecutionRunId' => [ 'shape' => 'WorkflowRunIdOptional', ], 'parentWorkflowExecution' => [ 'shape' => 'WorkflowExecution', ], 'parentInitiatedEventId' => [ 'shape' => 'EventId', ], 'lambdaRole' => [ 'shape' => 'Arn', ], ], ], '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', 'max' => 256, 'min' => 1, ], 'WorkflowRunId' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'WorkflowRunIdOptional' => [ 'type' => 'string', 'max' => 64, ], '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', ], 'defaultLambdaRole' => [ 'shape' => 'Arn', ], ], ], '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/Aws/data/swf/2012-01-25/paginators-1.json.php b/lib/aws/Aws/data/swf/2012-01-25/paginators-1.json.php new file mode 100644 index 0000000..3317240 --- /dev/null +++ b/lib/aws/Aws/data/swf/2012-01-25/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/swf/2012-01-25/paginators-1.json +return [ 'pagination' => [ 'GetWorkflowExecutionHistory' => [ 'input_token' => 'nextPageToken', 'limit_key' => 'maximumPageSize', 'output_token' => 'nextPageToken', 'result_key' => 'events', ], 'ListActivityTypes' => [ 'input_token' => 'nextPageToken', 'limit_key' => 'maximumPageSize', 'output_token' => 'nextPageToken', 'result_key' => 'typeInfos', ], 'ListClosedWorkflowExecutions' => [ 'input_token' => 'nextPageToken', 'limit_key' => 'maximumPageSize', 'output_token' => 'nextPageToken', 'result_key' => 'executionInfos', ], 'ListDomains' => [ 'input_token' => 'nextPageToken', 'limit_key' => 'maximumPageSize', 'output_token' => 'nextPageToken', 'result_key' => 'domainInfos', ], 'ListOpenWorkflowExecutions' => [ 'input_token' => 'nextPageToken', 'limit_key' => 'maximumPageSize', 'output_token' => 'nextPageToken', 'result_key' => 'executionInfos', ], 'ListWorkflowTypes' => [ 'input_token' => 'nextPageToken', 'limit_key' => 'maximumPageSize', 'output_token' => 'nextPageToken', 'result_key' => 'typeInfos', ], 'PollForDecisionTask' => [ 'input_token' => 'nextPageToken', 'limit_key' => 'maximumPageSize', 'output_token' => 'nextPageToken', 'result_key' => 'events', ], ],]; diff --git a/lib/aws/Aws/data/textract/2018-06-27/api-2.json.php b/lib/aws/Aws/data/textract/2018-06-27/api-2.json.php new file mode 100644 index 0000000..ed0a2ab --- /dev/null +++ b/lib/aws/Aws/data/textract/2018-06-27/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/textract/2018-06-27/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-06-27', 'endpointPrefix' => 'textract', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Amazon Textract', 'serviceId' => 'Textract', 'signatureVersion' => 'v4', 'targetPrefix' => 'Textract', 'uid' => 'textract-2018-06-27', ], 'operations' => [ 'AnalyzeDocument' => [ 'name' => 'AnalyzeDocument', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AnalyzeDocumentRequest', ], 'output' => [ 'shape' => 'AnalyzeDocumentResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidS3ObjectException', ], [ 'shape' => 'UnsupportedDocumentException', ], [ 'shape' => 'DocumentTooLargeException', ], [ 'shape' => 'BadDocumentException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DetectDocumentText' => [ 'name' => 'DetectDocumentText', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetectDocumentTextRequest', ], 'output' => [ 'shape' => 'DetectDocumentTextResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidS3ObjectException', ], [ 'shape' => 'UnsupportedDocumentException', ], [ 'shape' => 'DocumentTooLargeException', ], [ 'shape' => 'BadDocumentException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetDocumentAnalysis' => [ 'name' => 'GetDocumentAnalysis', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDocumentAnalysisRequest', ], 'output' => [ 'shape' => 'GetDocumentAnalysisResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'InvalidJobIdException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetDocumentTextDetection' => [ 'name' => 'GetDocumentTextDetection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDocumentTextDetectionRequest', ], 'output' => [ 'shape' => 'GetDocumentTextDetectionResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'InvalidJobIdException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'ThrottlingException', ], ], ], 'StartDocumentAnalysis' => [ 'name' => 'StartDocumentAnalysis', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartDocumentAnalysisRequest', ], 'output' => [ 'shape' => 'StartDocumentAnalysisResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidS3ObjectException', ], [ 'shape' => 'UnsupportedDocumentException', ], [ 'shape' => 'DocumentTooLargeException', ], [ 'shape' => 'BadDocumentException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'IdempotentParameterMismatchException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'LimitExceededException', ], ], ], 'StartDocumentTextDetection' => [ 'name' => 'StartDocumentTextDetection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartDocumentTextDetectionRequest', ], 'output' => [ 'shape' => 'StartDocumentTextDetectionResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidS3ObjectException', ], [ 'shape' => 'UnsupportedDocumentException', ], [ 'shape' => 'DocumentTooLargeException', ], [ 'shape' => 'BadDocumentException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ProvisionedThroughputExceededException', ], [ 'shape' => 'InternalServerError', ], [ 'shape' => 'IdempotentParameterMismatchException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'LimitExceededException', ], ], ], ], 'shapes' => [ 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'AnalyzeDocumentRequest' => [ 'type' => 'structure', 'required' => [ 'Document', 'FeatureTypes', ], 'members' => [ 'Document' => [ 'shape' => 'Document', ], 'FeatureTypes' => [ 'shape' => 'FeatureTypes', ], ], ], 'AnalyzeDocumentResponse' => [ 'type' => 'structure', 'members' => [ 'DocumentMetadata' => [ 'shape' => 'DocumentMetadata', ], 'Blocks' => [ 'shape' => 'BlockList', ], ], ], 'BadDocumentException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Block' => [ 'type' => 'structure', 'members' => [ 'BlockType' => [ 'shape' => 'BlockType', ], 'Confidence' => [ 'shape' => 'Percent', ], 'Text' => [ 'shape' => 'String', ], 'RowIndex' => [ 'shape' => 'UInteger', ], 'ColumnIndex' => [ 'shape' => 'UInteger', ], 'RowSpan' => [ 'shape' => 'UInteger', ], 'ColumnSpan' => [ 'shape' => 'UInteger', ], 'Geometry' => [ 'shape' => 'Geometry', ], 'Id' => [ 'shape' => 'NonEmptyString', ], 'Relationships' => [ 'shape' => 'RelationshipList', ], 'EntityTypes' => [ 'shape' => 'EntityTypes', ], 'Page' => [ 'shape' => 'UInteger', ], ], ], 'BlockList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Block', ], ], 'BlockType' => [ 'type' => 'string', 'enum' => [ 'KEY_VALUE_SET', 'PAGE', 'LINE', 'WORD', 'TABLE', 'CELL', ], ], 'BoundingBox' => [ 'type' => 'structure', 'members' => [ 'Width' => [ 'shape' => 'Float', ], 'Height' => [ 'shape' => 'Float', ], 'Left' => [ 'shape' => 'Float', ], 'Top' => [ 'shape' => 'Float', ], ], ], 'ClientRequestToken' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '^[a-zA-Z0-9-_]+$', ], 'DetectDocumentTextRequest' => [ 'type' => 'structure', 'required' => [ 'Document', ], 'members' => [ 'Document' => [ 'shape' => 'Document', ], ], ], 'DetectDocumentTextResponse' => [ 'type' => 'structure', 'members' => [ 'DocumentMetadata' => [ 'shape' => 'DocumentMetadata', ], 'Blocks' => [ 'shape' => 'BlockList', ], ], ], 'Document' => [ 'type' => 'structure', 'members' => [ 'Bytes' => [ 'shape' => 'ImageBlob', ], 'S3Object' => [ 'shape' => 'S3Object', ], ], ], 'DocumentLocation' => [ 'type' => 'structure', 'members' => [ 'S3Object' => [ 'shape' => 'S3Object', ], ], ], 'DocumentMetadata' => [ 'type' => 'structure', 'members' => [ 'Pages' => [ 'shape' => 'UInteger', ], ], ], 'DocumentTooLargeException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'EntityType' => [ 'type' => 'string', 'enum' => [ 'KEY', 'VALUE', ], ], 'EntityTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'EntityType', ], ], 'ErrorCode' => [ 'type' => 'string', ], 'FeatureType' => [ 'type' => 'string', 'enum' => [ 'TABLES', 'FORMS', ], ], 'FeatureTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'FeatureType', ], ], 'Float' => [ 'type' => 'float', ], 'Geometry' => [ 'type' => 'structure', 'members' => [ 'BoundingBox' => [ 'shape' => 'BoundingBox', ], 'Polygon' => [ 'shape' => 'Polygon', ], ], ], 'GetDocumentAnalysisRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'GetDocumentAnalysisResponse' => [ 'type' => 'structure', 'members' => [ 'DocumentMetadata' => [ 'shape' => 'DocumentMetadata', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'Blocks' => [ 'shape' => 'BlockList', ], 'Warnings' => [ 'shape' => 'Warnings', ], 'StatusMessage' => [ 'shape' => 'StatusMessage', ], ], ], 'GetDocumentTextDetectionRequest' => [ 'type' => 'structure', 'required' => [ 'JobId', ], 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'GetDocumentTextDetectionResponse' => [ 'type' => 'structure', 'members' => [ 'DocumentMetadata' => [ 'shape' => 'DocumentMetadata', ], 'JobStatus' => [ 'shape' => 'JobStatus', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'Blocks' => [ 'shape' => 'BlockList', ], 'Warnings' => [ 'shape' => 'Warnings', ], 'StatusMessage' => [ 'shape' => 'StatusMessage', ], ], ], 'IdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonEmptyString', ], ], 'IdempotentParameterMismatchException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'ImageBlob' => [ 'type' => 'blob', 'max' => 5242880, 'min' => 1, ], 'InternalServerError' => [ 'type' => 'structure', 'members' => [], 'exception' => true, 'fault' => true, ], 'InvalidJobIdException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'InvalidS3ObjectException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'JobId' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '^[a-zA-Z0-9-_]+$', ], 'JobStatus' => [ 'type' => 'string', 'enum' => [ 'IN_PROGRESS', 'SUCCEEDED', 'FAILED', 'PARTIAL_SUCCESS', ], ], 'JobTag' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9_.\\-:]+', ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'MaxResults' => [ 'type' => 'integer', 'min' => 1, ], 'NonEmptyString' => [ 'type' => 'string', 'pattern' => '.*\\S.*', ], 'NotificationChannel' => [ 'type' => 'structure', 'required' => [ 'SNSTopicArn', 'RoleArn', ], 'members' => [ 'SNSTopicArn' => [ 'shape' => 'SNSTopicArn', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], ], ], 'Pages' => [ 'type' => 'list', 'member' => [ 'shape' => 'UInteger', ], ], 'PaginationToken' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '.*\\S.*', ], 'Percent' => [ 'type' => 'float', 'max' => 100, 'min' => 0, ], 'Point' => [ 'type' => 'structure', 'members' => [ 'X' => [ 'shape' => 'Float', ], 'Y' => [ 'shape' => 'Float', ], ], ], 'Polygon' => [ 'type' => 'list', 'member' => [ 'shape' => 'Point', ], ], 'ProvisionedThroughputExceededException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Relationship' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'RelationshipType', ], 'Ids' => [ 'shape' => 'IdList', ], ], ], 'RelationshipList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Relationship', ], ], 'RelationshipType' => [ 'type' => 'string', 'enum' => [ 'VALUE', 'CHILD', ], ], 'RoleArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => 'arn:([a-z\\d-]+):iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+', ], 'S3Bucket' => [ 'type' => 'string', 'max' => 255, 'min' => 3, 'pattern' => '[0-9A-Za-z\\.\\-_]*', ], 'S3Object' => [ 'type' => 'structure', 'members' => [ 'Bucket' => [ 'shape' => 'S3Bucket', ], 'Name' => [ 'shape' => 'S3ObjectName', ], 'Version' => [ 'shape' => 'S3ObjectVersion', ], ], ], 'S3ObjectName' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '.*\\S.*', ], 'S3ObjectVersion' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '.*\\S.*', ], 'SNSTopicArn' => [ 'type' => 'string', 'max' => 1024, 'min' => 20, 'pattern' => '(^arn:([a-z\\d-]+):sns:[a-zA-Z\\d-]{1,20}:\\w{12}:.+$)', ], 'StartDocumentAnalysisRequest' => [ 'type' => 'structure', 'required' => [ 'DocumentLocation', 'FeatureTypes', ], 'members' => [ 'DocumentLocation' => [ 'shape' => 'DocumentLocation', ], 'FeatureTypes' => [ 'shape' => 'FeatureTypes', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', ], 'JobTag' => [ 'shape' => 'JobTag', ], 'NotificationChannel' => [ 'shape' => 'NotificationChannel', ], ], ], 'StartDocumentAnalysisResponse' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'StartDocumentTextDetectionRequest' => [ 'type' => 'structure', 'required' => [ 'DocumentLocation', ], 'members' => [ 'DocumentLocation' => [ 'shape' => 'DocumentLocation', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', ], 'JobTag' => [ 'shape' => 'JobTag', ], 'NotificationChannel' => [ 'shape' => 'NotificationChannel', ], ], ], 'StartDocumentTextDetectionResponse' => [ 'type' => 'structure', 'members' => [ 'JobId' => [ 'shape' => 'JobId', ], ], ], 'StatusMessage' => [ 'type' => 'string', ], 'String' => [ 'type' => 'string', ], 'ThrottlingException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, 'fault' => true, ], 'UInteger' => [ 'type' => 'integer', 'min' => 0, ], 'UnsupportedDocumentException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'Warning' => [ 'type' => 'structure', 'members' => [ 'ErrorCode' => [ 'shape' => 'ErrorCode', ], 'Pages' => [ 'shape' => 'Pages', ], ], ], 'Warnings' => [ 'type' => 'list', 'member' => [ 'shape' => 'Warning', ], ], ],]; diff --git a/lib/aws/Aws/data/textract/2018-06-27/paginators-1.json.php b/lib/aws/Aws/data/textract/2018-06-27/paginators-1.json.php new file mode 100644 index 0000000..7fab5d4 --- /dev/null +++ b/lib/aws/Aws/data/textract/2018-06-27/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/textract/2018-06-27/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/transcribe/2017-10-26/api-2.json.php b/lib/aws/Aws/data/transcribe/2017-10-26/api-2.json.php new file mode 100644 index 0000000..9f9e9b9 --- /dev/null +++ b/lib/aws/Aws/data/transcribe/2017-10-26/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/transcribe/2017-10-26/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-10-26', 'endpointPrefix' => 'transcribe', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Amazon Transcribe Service', 'serviceId' => 'Transcribe', 'signatureVersion' => 'v4', 'signingName' => 'transcribe', 'targetPrefix' => 'Transcribe', 'uid' => 'transcribe-2017-10-26', ], 'operations' => [ 'CreateVocabulary' => [ 'name' => 'CreateVocabulary', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVocabularyRequest', ], 'output' => [ 'shape' => 'CreateVocabularyResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ConflictException', ], ], ], 'DeleteTranscriptionJob' => [ 'name' => 'DeleteTranscriptionJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTranscriptionJobRequest', ], 'errors' => [ [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'DeleteVocabulary' => [ 'name' => 'DeleteVocabulary', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVocabularyRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'GetTranscriptionJob' => [ 'name' => 'GetTranscriptionJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTranscriptionJobRequest', ], 'output' => [ 'shape' => 'GetTranscriptionJobResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'NotFoundException', ], ], ], 'GetVocabulary' => [ 'name' => 'GetVocabulary', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetVocabularyRequest', ], 'output' => [ 'shape' => 'GetVocabularyResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListTranscriptionJobs' => [ 'name' => 'ListTranscriptionJobs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTranscriptionJobsRequest', ], 'output' => [ 'shape' => 'ListTranscriptionJobsResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'ListVocabularies' => [ 'name' => 'ListVocabularies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListVocabulariesRequest', ], 'output' => [ 'shape' => 'ListVocabulariesResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], ], ], 'StartTranscriptionJob' => [ 'name' => 'StartTranscriptionJob', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartTranscriptionJobRequest', ], 'output' => [ 'shape' => 'StartTranscriptionJobResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'ConflictException', ], ], ], 'UpdateVocabulary' => [ 'name' => 'UpdateVocabulary', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateVocabularyRequest', ], 'output' => [ 'shape' => 'UpdateVocabularyResponse', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'InternalFailureException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'ConflictException', ], ], ], ], 'shapes' => [ 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'FailureReason', ], ], 'exception' => true, ], 'Boolean' => [ 'type' => 'boolean', ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'CreateVocabularyRequest' => [ 'type' => 'structure', 'required' => [ 'VocabularyName', 'LanguageCode', ], 'members' => [ 'VocabularyName' => [ 'shape' => 'VocabularyName', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'Phrases' => [ 'shape' => 'Phrases', ], 'VocabularyFileUri' => [ 'shape' => 'Uri', ], ], ], 'CreateVocabularyResponse' => [ 'type' => 'structure', 'members' => [ 'VocabularyName' => [ 'shape' => 'VocabularyName', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'VocabularyState' => [ 'shape' => 'VocabularyState', ], 'LastModifiedTime' => [ 'shape' => 'DateTime', ], 'FailureReason' => [ 'shape' => 'FailureReason', ], ], ], 'DateTime' => [ 'type' => 'timestamp', ], 'DeleteTranscriptionJobRequest' => [ 'type' => 'structure', 'required' => [ 'TranscriptionJobName', ], 'members' => [ 'TranscriptionJobName' => [ 'shape' => 'TranscriptionJobName', ], ], ], 'DeleteVocabularyRequest' => [ 'type' => 'structure', 'required' => [ 'VocabularyName', ], 'members' => [ 'VocabularyName' => [ 'shape' => 'VocabularyName', ], ], ], 'FailureReason' => [ 'type' => 'string', ], 'GetTranscriptionJobRequest' => [ 'type' => 'structure', 'required' => [ 'TranscriptionJobName', ], 'members' => [ 'TranscriptionJobName' => [ 'shape' => 'TranscriptionJobName', ], ], ], 'GetTranscriptionJobResponse' => [ 'type' => 'structure', 'members' => [ 'TranscriptionJob' => [ 'shape' => 'TranscriptionJob', ], ], ], 'GetVocabularyRequest' => [ 'type' => 'structure', 'required' => [ 'VocabularyName', ], 'members' => [ 'VocabularyName' => [ 'shape' => 'VocabularyName', ], ], ], 'GetVocabularyResponse' => [ 'type' => 'structure', 'members' => [ 'VocabularyName' => [ 'shape' => 'VocabularyName', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'VocabularyState' => [ 'shape' => 'VocabularyState', ], 'LastModifiedTime' => [ 'shape' => 'DateTime', ], 'FailureReason' => [ 'shape' => 'FailureReason', ], 'DownloadUri' => [ 'shape' => 'Uri', ], ], ], 'InternalFailureException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, 'fault' => true, ], 'LanguageCode' => [ 'type' => 'string', 'enum' => [ 'en-US', 'es-US', 'en-AU', 'fr-CA', 'en-GB', 'de-DE', 'pt-BR', 'fr-FR', 'it-IT', 'ko-KR', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ListTranscriptionJobsRequest' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'TranscriptionJobStatus', ], 'JobNameContains' => [ 'shape' => 'TranscriptionJobName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListTranscriptionJobsResponse' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'TranscriptionJobStatus', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'TranscriptionJobSummaries' => [ 'shape' => 'TranscriptionJobSummaries', ], ], ], 'ListVocabulariesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'StateEquals' => [ 'shape' => 'VocabularyState', ], 'NameContains' => [ 'shape' => 'VocabularyName', ], ], ], 'ListVocabulariesResponse' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'TranscriptionJobStatus', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Vocabularies' => [ 'shape' => 'Vocabularies', ], ], ], 'MaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'MaxSpeakers' => [ 'type' => 'integer', 'max' => 10, 'min' => 2, ], 'Media' => [ 'type' => 'structure', 'members' => [ 'MediaFileUri' => [ 'shape' => 'Uri', ], ], ], 'MediaFormat' => [ 'type' => 'string', 'enum' => [ 'mp3', 'mp4', 'wav', 'flac', ], ], 'MediaSampleRateHertz' => [ 'type' => 'integer', 'max' => 48000, 'min' => 8000, ], 'NextToken' => [ 'type' => 'string', 'max' => 8192, ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'OutputBucketName' => [ 'type' => 'string', 'pattern' => '[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]', ], 'OutputLocationType' => [ 'type' => 'string', 'enum' => [ 'CUSTOMER_BUCKET', 'SERVICE_BUCKET', ], ], 'Phrase' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'Phrases' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phrase', ], ], 'Settings' => [ 'type' => 'structure', 'members' => [ 'VocabularyName' => [ 'shape' => 'VocabularyName', ], 'ShowSpeakerLabels' => [ 'shape' => 'Boolean', ], 'MaxSpeakerLabels' => [ 'shape' => 'MaxSpeakers', ], 'ChannelIdentification' => [ 'shape' => 'Boolean', ], ], ], 'StartTranscriptionJobRequest' => [ 'type' => 'structure', 'required' => [ 'TranscriptionJobName', 'LanguageCode', 'MediaFormat', 'Media', ], 'members' => [ 'TranscriptionJobName' => [ 'shape' => 'TranscriptionJobName', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'MediaSampleRateHertz' => [ 'shape' => 'MediaSampleRateHertz', ], 'MediaFormat' => [ 'shape' => 'MediaFormat', ], 'Media' => [ 'shape' => 'Media', ], 'OutputBucketName' => [ 'shape' => 'OutputBucketName', ], 'Settings' => [ 'shape' => 'Settings', ], ], ], 'StartTranscriptionJobResponse' => [ 'type' => 'structure', 'members' => [ 'TranscriptionJob' => [ 'shape' => 'TranscriptionJob', ], ], ], 'String' => [ 'type' => 'string', ], 'Transcript' => [ 'type' => 'structure', 'members' => [ 'TranscriptFileUri' => [ 'shape' => 'Uri', ], ], ], 'TranscriptionJob' => [ 'type' => 'structure', 'members' => [ 'TranscriptionJobName' => [ 'shape' => 'TranscriptionJobName', ], 'TranscriptionJobStatus' => [ 'shape' => 'TranscriptionJobStatus', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'MediaSampleRateHertz' => [ 'shape' => 'MediaSampleRateHertz', ], 'MediaFormat' => [ 'shape' => 'MediaFormat', ], 'Media' => [ 'shape' => 'Media', ], 'Transcript' => [ 'shape' => 'Transcript', ], 'CreationTime' => [ 'shape' => 'DateTime', ], 'CompletionTime' => [ 'shape' => 'DateTime', ], 'FailureReason' => [ 'shape' => 'FailureReason', ], 'Settings' => [ 'shape' => 'Settings', ], ], ], 'TranscriptionJobName' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'pattern' => '^[0-9a-zA-Z._-]+', ], 'TranscriptionJobStatus' => [ 'type' => 'string', 'enum' => [ 'IN_PROGRESS', 'FAILED', 'COMPLETED', ], ], 'TranscriptionJobSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'TranscriptionJobSummary', ], ], 'TranscriptionJobSummary' => [ 'type' => 'structure', 'members' => [ 'TranscriptionJobName' => [ 'shape' => 'TranscriptionJobName', ], 'CreationTime' => [ 'shape' => 'DateTime', ], 'CompletionTime' => [ 'shape' => 'DateTime', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'TranscriptionJobStatus' => [ 'shape' => 'TranscriptionJobStatus', ], 'FailureReason' => [ 'shape' => 'FailureReason', ], 'OutputLocationType' => [ 'shape' => 'OutputLocationType', ], ], ], 'UpdateVocabularyRequest' => [ 'type' => 'structure', 'required' => [ 'VocabularyName', 'LanguageCode', ], 'members' => [ 'VocabularyName' => [ 'shape' => 'VocabularyName', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'Phrases' => [ 'shape' => 'Phrases', ], 'VocabularyFileUri' => [ 'shape' => 'Uri', ], ], ], 'UpdateVocabularyResponse' => [ 'type' => 'structure', 'members' => [ 'VocabularyName' => [ 'shape' => 'VocabularyName', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'LastModifiedTime' => [ 'shape' => 'DateTime', ], 'VocabularyState' => [ 'shape' => 'VocabularyState', ], ], ], 'Uri' => [ 'type' => 'string', 'max' => 2000, 'min' => 1, ], 'Vocabularies' => [ 'type' => 'list', 'member' => [ 'shape' => 'VocabularyInfo', ], ], 'VocabularyInfo' => [ 'type' => 'structure', 'members' => [ 'VocabularyName' => [ 'shape' => 'VocabularyName', ], 'LanguageCode' => [ 'shape' => 'LanguageCode', ], 'LastModifiedTime' => [ 'shape' => 'DateTime', ], 'VocabularyState' => [ 'shape' => 'VocabularyState', ], ], ], 'VocabularyName' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'pattern' => '^[0-9a-zA-Z._-]+', ], 'VocabularyState' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'READY', 'FAILED', ], ], ],]; diff --git a/lib/aws/Aws/data/transcribe/2017-10-26/paginators-1.json.php b/lib/aws/Aws/data/transcribe/2017-10-26/paginators-1.json.php new file mode 100644 index 0000000..cfdf917 --- /dev/null +++ b/lib/aws/Aws/data/transcribe/2017-10-26/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/transcribe/2017-10-26/paginators-1.json +return [ 'pagination' => [ 'ListTranscriptionJobs' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListVocabularies' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/transfer/2018-11-05/api-2.json.php b/lib/aws/Aws/data/transfer/2018-11-05/api-2.json.php new file mode 100644 index 0000000..04c4a43 --- /dev/null +++ b/lib/aws/Aws/data/transfer/2018-11-05/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/transfer/2018-11-05/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-11-05', 'endpointPrefix' => 'transfer', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'AWS Transfer', 'serviceFullName' => 'AWS Transfer for SFTP', 'serviceId' => 'Transfer', 'signatureVersion' => 'v4', 'signingName' => 'transfer', 'targetPrefix' => 'TransferService', 'uid' => 'transfer-2018-11-05', ], 'operations' => [ 'CreateServer' => [ 'name' => 'CreateServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateServerRequest', ], 'output' => [ 'shape' => 'CreateServerResponse', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'CreateUser' => [ 'name' => 'CreateUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateUserRequest', ], 'output' => [ 'shape' => 'CreateUserResponse', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceExistsException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeleteServer' => [ 'name' => 'DeleteServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteServerRequest', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeleteSshPublicKey' => [ 'name' => 'DeleteSshPublicKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSshPublicKeyRequest', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DeleteUser' => [ 'name' => 'DeleteUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteUserRequest', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeServer' => [ 'name' => 'DescribeServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeServerRequest', ], 'output' => [ 'shape' => 'DescribeServerResponse', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeUser' => [ 'name' => 'DescribeUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeUserRequest', ], 'output' => [ 'shape' => 'DescribeUserResponse', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ImportSshPublicKey' => [ 'name' => 'ImportSshPublicKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportSshPublicKeyRequest', ], 'output' => [ 'shape' => 'ImportSshPublicKeyResponse', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceExistsException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListServers' => [ 'name' => 'ListServers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListServersRequest', ], 'output' => [ 'shape' => 'ListServersResponse', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'ListUsers' => [ 'name' => 'ListUsers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListUsersRequest', ], 'output' => [ 'shape' => 'ListUsersResponse', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidNextTokenException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'StartServer' => [ 'name' => 'StartServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartServerRequest', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'StopServer' => [ 'name' => 'StopServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopServerRequest', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'TestIdentityProvider' => [ 'name' => 'TestIdentityProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TestIdentityProviderRequest', ], 'output' => [ 'shape' => 'TestIdentityProviderResponse', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidRequestException', ], ], ], 'UpdateServer' => [ 'name' => 'UpdateServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateServerRequest', ], 'output' => [ 'shape' => 'UpdateServerResponse', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateUser' => [ 'name' => 'UpdateUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateUserRequest', ], 'output' => [ 'shape' => 'UpdateUserResponse', ], 'errors' => [ [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InternalServiceError', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], ], 'shapes' => [ 'Arn' => [ 'type' => 'string', 'max' => 1600, 'min' => 20, ], 'CreateServerRequest' => [ 'type' => 'structure', 'members' => [ 'EndpointDetails' => [ 'shape' => 'EndpointDetails', ], 'EndpointType' => [ 'shape' => 'EndpointType', ], 'IdentityProviderDetails' => [ 'shape' => 'IdentityProviderDetails', ], 'IdentityProviderType' => [ 'shape' => 'IdentityProviderType', ], 'LoggingRole' => [ 'shape' => 'Role', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'CreateServerResponse' => [ 'type' => 'structure', 'required' => [ 'ServerId', ], 'members' => [ 'ServerId' => [ 'shape' => 'ServerId', ], ], ], 'CreateUserRequest' => [ 'type' => 'structure', 'required' => [ 'Role', 'ServerId', 'UserName', ], 'members' => [ 'HomeDirectory' => [ 'shape' => 'HomeDirectory', ], 'Policy' => [ 'shape' => 'Policy', ], 'Role' => [ 'shape' => 'Role', ], 'ServerId' => [ 'shape' => 'ServerId', ], 'SshPublicKeyBody' => [ 'shape' => 'SshPublicKeyBody', ], 'Tags' => [ 'shape' => 'Tags', ], 'UserName' => [ 'shape' => 'UserName', ], ], ], 'CreateUserResponse' => [ 'type' => 'structure', 'required' => [ 'ServerId', 'UserName', ], 'members' => [ 'ServerId' => [ 'shape' => 'ServerId', ], 'UserName' => [ 'shape' => 'UserName', ], ], ], 'DateImported' => [ 'type' => 'timestamp', ], 'DeleteServerRequest' => [ 'type' => 'structure', 'required' => [ 'ServerId', ], 'members' => [ 'ServerId' => [ 'shape' => 'ServerId', ], ], ], 'DeleteSshPublicKeyRequest' => [ 'type' => 'structure', 'required' => [ 'ServerId', 'SshPublicKeyId', 'UserName', ], 'members' => [ 'ServerId' => [ 'shape' => 'ServerId', ], 'SshPublicKeyId' => [ 'shape' => 'SshPublicKeyId', ], 'UserName' => [ 'shape' => 'UserName', ], ], ], 'DeleteUserRequest' => [ 'type' => 'structure', 'required' => [ 'ServerId', 'UserName', ], 'members' => [ 'ServerId' => [ 'shape' => 'ServerId', ], 'UserName' => [ 'shape' => 'UserName', ], ], ], 'DescribeServerRequest' => [ 'type' => 'structure', 'required' => [ 'ServerId', ], 'members' => [ 'ServerId' => [ 'shape' => 'ServerId', ], ], ], 'DescribeServerResponse' => [ 'type' => 'structure', 'required' => [ 'Server', ], 'members' => [ 'Server' => [ 'shape' => 'DescribedServer', ], ], ], 'DescribeUserRequest' => [ 'type' => 'structure', 'required' => [ 'ServerId', 'UserName', ], 'members' => [ 'ServerId' => [ 'shape' => 'ServerId', ], 'UserName' => [ 'shape' => 'UserName', ], ], ], 'DescribeUserResponse' => [ 'type' => 'structure', 'required' => [ 'ServerId', 'User', ], 'members' => [ 'ServerId' => [ 'shape' => 'ServerId', ], 'User' => [ 'shape' => 'DescribedUser', ], ], ], 'DescribedServer' => [ 'type' => 'structure', 'required' => [ 'Arn', ], 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'EndpointDetails' => [ 'shape' => 'EndpointDetails', ], 'EndpointType' => [ 'shape' => 'EndpointType', ], 'IdentityProviderDetails' => [ 'shape' => 'IdentityProviderDetails', ], 'IdentityProviderType' => [ 'shape' => 'IdentityProviderType', ], 'LoggingRole' => [ 'shape' => 'Role', ], 'ServerId' => [ 'shape' => 'ServerId', ], 'State' => [ 'shape' => 'State', ], 'Tags' => [ 'shape' => 'Tags', ], 'UserCount' => [ 'shape' => 'UserCount', ], ], ], 'DescribedUser' => [ 'type' => 'structure', 'required' => [ 'Arn', ], 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'HomeDirectory' => [ 'shape' => 'HomeDirectory', ], 'Policy' => [ 'shape' => 'Policy', ], 'Role' => [ 'shape' => 'Role', ], 'SshPublicKeys' => [ 'shape' => 'SshPublicKeys', ], 'Tags' => [ 'shape' => 'Tags', ], 'UserName' => [ 'shape' => 'UserName', ], ], ], 'EndpointDetails' => [ 'type' => 'structure', 'members' => [ 'VpcEndpointId' => [ 'shape' => 'VpcEndpointId', ], ], ], 'EndpointType' => [ 'type' => 'string', 'enum' => [ 'PUBLIC', 'VPC_ENDPOINT', ], ], 'HomeDirectory' => [ 'type' => 'string', 'max' => 1024, 'pattern' => '^$|/.*', ], 'IdentityProviderDetails' => [ 'type' => 'structure', 'members' => [ 'Url' => [ 'shape' => 'Url', ], 'InvocationRole' => [ 'shape' => 'Role', ], ], ], 'IdentityProviderType' => [ 'type' => 'string', 'enum' => [ 'SERVICE_MANAGED', 'API_GATEWAY', ], ], 'ImportSshPublicKeyRequest' => [ 'type' => 'structure', 'required' => [ 'ServerId', 'SshPublicKeyBody', 'UserName', ], 'members' => [ 'ServerId' => [ 'shape' => 'ServerId', ], 'SshPublicKeyBody' => [ 'shape' => 'SshPublicKeyBody', ], 'UserName' => [ 'shape' => 'UserName', ], ], ], 'ImportSshPublicKeyResponse' => [ 'type' => 'structure', 'required' => [ 'ServerId', 'SshPublicKeyId', 'UserName', ], 'members' => [ 'ServerId' => [ 'shape' => 'ServerId', ], 'SshPublicKeyId' => [ 'shape' => 'SshPublicKeyId', ], 'UserName' => [ 'shape' => 'UserName', ], ], ], 'InternalServiceError' => [ 'type' => 'structure', 'required' => [ 'Message', ], 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'exception' => true, 'fault' => true, ], 'InvalidNextTokenException' => [ 'type' => 'structure', 'required' => [ 'Message', ], 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'InvalidRequestException' => [ 'type' => 'structure', 'required' => [ 'Message', ], 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'exception' => true, ], 'ListServersRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListServersResponse' => [ 'type' => 'structure', 'required' => [ 'Servers', ], 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'Servers' => [ 'shape' => 'ListedServers', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Arn', ], 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'ListUsersRequest' => [ 'type' => 'structure', 'required' => [ 'ServerId', ], 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'ServerId' => [ 'shape' => 'ServerId', ], ], ], 'ListUsersResponse' => [ 'type' => 'structure', 'required' => [ 'ServerId', 'Users', ], 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'ServerId' => [ 'shape' => 'ServerId', ], 'Users' => [ 'shape' => 'ListedUsers', ], ], ], 'ListedServer' => [ 'type' => 'structure', 'required' => [ 'Arn', ], 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'IdentityProviderType' => [ 'shape' => 'IdentityProviderType', ], 'EndpointType' => [ 'shape' => 'EndpointType', ], 'LoggingRole' => [ 'shape' => 'Role', ], 'ServerId' => [ 'shape' => 'ServerId', ], 'State' => [ 'shape' => 'State', ], 'UserCount' => [ 'shape' => 'UserCount', ], ], ], 'ListedServers' => [ 'type' => 'list', 'member' => [ 'shape' => 'ListedServer', ], ], 'ListedUser' => [ 'type' => 'structure', 'required' => [ 'Arn', ], 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'HomeDirectory' => [ 'shape' => 'HomeDirectory', ], 'Role' => [ 'shape' => 'Role', ], 'SshPublicKeyCount' => [ 'shape' => 'SshPublicKeyCount', ], 'UserName' => [ 'shape' => 'UserName', ], ], ], 'ListedUsers' => [ 'type' => 'list', 'member' => [ 'shape' => 'ListedUser', ], ], 'MaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'Message' => [ 'type' => 'string', ], 'NextToken' => [ 'type' => 'string', 'max' => 6144, 'min' => 1, ], 'NullableRole' => [ 'type' => 'string', 'pattern' => '^$|arn:.*role/.*', ], 'Policy' => [ 'type' => 'string', ], 'Resource' => [ 'type' => 'string', ], 'ResourceExistsException' => [ 'type' => 'structure', 'required' => [ 'Message', 'Resource', 'ResourceType', ], 'members' => [ 'Message' => [ 'shape' => 'Message', ], 'Resource' => [ 'shape' => 'Resource', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'required' => [ 'Message', 'Resource', 'ResourceType', ], 'members' => [ 'Message' => [ 'shape' => 'Message', ], 'Resource' => [ 'shape' => 'Resource', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], ], 'exception' => true, ], 'ResourceType' => [ 'type' => 'string', ], 'Role' => [ 'type' => 'string', 'pattern' => 'arn:.*role/.*', ], 'ServerId' => [ 'type' => 'string', 'pattern' => '^s-([0-9a-f]{17})$', ], 'ServiceErrorMessage' => [ 'type' => 'string', ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ServiceErrorMessage', ], ], 'exception' => true, 'fault' => true, 'synthetic' => true, ], 'SshPublicKey' => [ 'type' => 'structure', 'required' => [ 'DateImported', 'SshPublicKeyBody', 'SshPublicKeyId', ], 'members' => [ 'DateImported' => [ 'shape' => 'DateImported', ], 'SshPublicKeyBody' => [ 'shape' => 'SshPublicKeyBody', ], 'SshPublicKeyId' => [ 'shape' => 'SshPublicKeyId', ], ], ], 'SshPublicKeyBody' => [ 'type' => 'string', 'max' => 2048, 'pattern' => '^ssh-rsa\\s+[A-Za-z0-9+/]+[=]{0,3}(\\s+.+)?\\s*$', ], 'SshPublicKeyCount' => [ 'type' => 'integer', ], 'SshPublicKeyId' => [ 'type' => 'string', 'pattern' => '^key-[0-9a-f]{17}$', ], 'SshPublicKeys' => [ 'type' => 'list', 'member' => [ 'shape' => 'SshPublicKey', ], 'max' => 5, ], 'StartServerRequest' => [ 'type' => 'structure', 'required' => [ 'ServerId', ], 'members' => [ 'ServerId' => [ 'shape' => 'ServerId', ], ], ], 'State' => [ 'type' => 'string', 'enum' => [ 'OFFLINE', 'ONLINE', 'STARTING', 'STOPPING', 'START_FAILED', 'STOP_FAILED', ], ], 'StatusCode' => [ 'type' => 'integer', ], 'StopServerRequest' => [ 'type' => 'structure', 'required' => [ 'ServerId', ], 'members' => [ 'ServerId' => [ 'shape' => 'ServerId', ], ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', ], 'TagKeys' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 50, 'min' => 1, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Arn', 'Tags', ], 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'Tags' => [ 'shape' => 'Tags', ], ], ], 'TagValue' => [ 'type' => 'string', ], 'Tags' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 50, 'min' => 1, ], 'TestIdentityProviderRequest' => [ 'type' => 'structure', 'required' => [ 'ServerId', 'UserName', ], 'members' => [ 'ServerId' => [ 'shape' => 'ServerId', ], 'UserName' => [ 'shape' => 'UserName', ], 'UserPassword' => [ 'shape' => 'UserPassword', ], ], ], 'TestIdentityProviderResponse' => [ 'type' => 'structure', 'required' => [ 'StatusCode', 'Url', ], 'members' => [ 'Message' => [ 'shape' => 'Message', ], 'StatusCode' => [ 'shape' => 'StatusCode', ], 'Url' => [ 'shape' => 'Url', ], ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'Arn', 'TagKeys', ], 'members' => [ 'Arn' => [ 'shape' => 'Arn', ], 'TagKeys' => [ 'shape' => 'TagKeys', ], ], ], 'UpdateServerRequest' => [ 'type' => 'structure', 'required' => [ 'ServerId', ], 'members' => [ 'EndpointDetails' => [ 'shape' => 'EndpointDetails', ], 'EndpointType' => [ 'shape' => 'EndpointType', ], 'IdentityProviderDetails' => [ 'shape' => 'IdentityProviderDetails', ], 'LoggingRole' => [ 'shape' => 'NullableRole', ], 'ServerId' => [ 'shape' => 'ServerId', ], ], ], 'UpdateServerResponse' => [ 'type' => 'structure', 'required' => [ 'ServerId', ], 'members' => [ 'ServerId' => [ 'shape' => 'ServerId', ], ], ], 'UpdateUserRequest' => [ 'type' => 'structure', 'required' => [ 'ServerId', 'UserName', ], 'members' => [ 'HomeDirectory' => [ 'shape' => 'HomeDirectory', ], 'Policy' => [ 'shape' => 'Policy', ], 'Role' => [ 'shape' => 'Role', ], 'ServerId' => [ 'shape' => 'ServerId', ], 'UserName' => [ 'shape' => 'UserName', ], ], ], 'UpdateUserResponse' => [ 'type' => 'structure', 'required' => [ 'ServerId', 'UserName', ], 'members' => [ 'ServerId' => [ 'shape' => 'ServerId', ], 'UserName' => [ 'shape' => 'UserName', ], ], ], 'Url' => [ 'type' => 'string', ], 'UserCount' => [ 'type' => 'integer', ], 'UserName' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9_][a-zA-Z0-9_-]{2,31}$', ], 'UserPassword' => [ 'type' => 'string', ], 'VpcEndpointId' => [ 'type' => 'string', 'pattern' => '^vpce-[0-9a-f]{17}$', ], ],]; diff --git a/lib/aws/Aws/data/transfer/2018-11-05/paginators-1.json.php b/lib/aws/Aws/data/transfer/2018-11-05/paginators-1.json.php new file mode 100644 index 0000000..00f5428 --- /dev/null +++ b/lib/aws/Aws/data/transfer/2018-11-05/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/transfer/2018-11-05/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/translate/2017-07-01/api-2.json.php b/lib/aws/Aws/data/translate/2017-07-01/api-2.json.php new file mode 100644 index 0000000..ac00199 --- /dev/null +++ b/lib/aws/Aws/data/translate/2017-07-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/translate/2017-07-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-07-01', 'endpointPrefix' => 'translate', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Amazon Translate', 'serviceId' => 'Translate', 'signatureVersion' => 'v4', 'signingName' => 'translate', 'targetPrefix' => 'AWSShineFrontendService_20170701', 'uid' => 'translate-2017-07-01', ], 'operations' => [ 'DeleteTerminology' => [ 'name' => 'DeleteTerminology', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTerminologyRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerException', ], ], ], 'GetTerminology' => [ 'name' => 'GetTerminology', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTerminologyRequest', ], 'output' => [ 'shape' => 'GetTerminologyResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ImportTerminology' => [ 'name' => 'ImportTerminology', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportTerminologyRequest', ], 'output' => [ 'shape' => 'ImportTerminologyResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ListTerminologies' => [ 'name' => 'ListTerminologies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTerminologiesRequest', ], 'output' => [ 'shape' => 'ListTerminologiesResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'InternalServerException', ], ], ], 'TranslateText' => [ 'name' => 'TranslateText', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TranslateTextRequest', ], 'output' => [ 'shape' => 'TranslateTextResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TextSizeLimitExceededException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'UnsupportedLanguagePairException', ], [ 'shape' => 'DetectedLanguageLowConfidenceException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], ], 'shapes' => [ 'AppliedTerminology' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'Terms' => [ 'shape' => 'TermList', ], ], ], 'AppliedTerminologyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AppliedTerminology', ], ], 'BoundedLengthString' => [ 'type' => 'string', 'max' => 5000, 'min' => 1, 'pattern' => '[\\P{M}\\p{M}]{1,5000}', ], 'DeleteTerminologyRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'Description' => [ 'type' => 'string', 'max' => 256, 'pattern' => '[\\P{M}\\p{M}]{0,256}', ], 'DetectedLanguageLowConfidenceException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'DetectedLanguageCode' => [ 'shape' => 'LanguageCodeString', ], ], 'exception' => true, ], 'EncryptionKey' => [ 'type' => 'structure', 'required' => [ 'Type', 'Id', ], 'members' => [ 'Type' => [ 'shape' => 'EncryptionKeyType', ], 'Id' => [ 'shape' => 'EncryptionKeyID', ], ], ], 'EncryptionKeyID' => [ 'type' => 'string', 'max' => 400, 'min' => 1, 'pattern' => '(arn:aws((-us-gov)|(-cn))?:kms:)?([a-z]{2}-[a-z]+-\\d:)?(\\d{12}:)?(((key/)?[a-zA-Z0-9-_]+)|(alias/[a-zA-Z0-9:/_-]+))', ], 'EncryptionKeyType' => [ 'type' => 'string', 'enum' => [ 'KMS', ], ], 'GetTerminologyRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'TerminologyDataFormat', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'TerminologyDataFormat' => [ 'shape' => 'TerminologyDataFormat', ], ], ], 'GetTerminologyResponse' => [ 'type' => 'structure', 'members' => [ 'TerminologyProperties' => [ 'shape' => 'TerminologyProperties', ], 'TerminologyDataLocation' => [ 'shape' => 'TerminologyDataLocation', ], ], ], 'ImportTerminologyRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'MergeStrategy', 'TerminologyData', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'MergeStrategy' => [ 'shape' => 'MergeStrategy', ], 'Description' => [ 'shape' => 'Description', ], 'TerminologyData' => [ 'shape' => 'TerminologyData', ], 'EncryptionKey' => [ 'shape' => 'EncryptionKey', ], ], ], 'ImportTerminologyResponse' => [ 'type' => 'structure', 'members' => [ 'TerminologyProperties' => [ 'shape' => 'TerminologyProperties', ], ], ], 'Integer' => [ 'type' => 'integer', ], 'InternalServerException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, 'fault' => true, ], 'InvalidParameterValueException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'LanguageCodeString' => [ 'type' => 'string', 'max' => 5, 'min' => 2, ], 'LanguageCodeStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LanguageCodeString', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ListTerminologiesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResultsInteger', ], ], ], 'ListTerminologiesResponse' => [ 'type' => 'structure', 'members' => [ 'TerminologyPropertiesList' => [ 'shape' => 'TerminologyPropertiesList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'MaxResultsInteger' => [ 'type' => 'integer', 'max' => 500, 'min' => 1, ], 'MergeStrategy' => [ 'type' => 'string', 'enum' => [ 'OVERWRITE', ], ], 'NextToken' => [ 'type' => 'string', 'max' => 8192, 'pattern' => '\\p{ASCII}{0,8192}', ], 'ResourceName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^([A-Za-z0-9-]_?)+$', ], 'ResourceNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceName', ], ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'String' => [ 'type' => 'string', 'max' => 10000, 'pattern' => '[\\P{M}\\p{M}]{0,10000}', ], 'Term' => [ 'type' => 'structure', 'members' => [ 'SourceText' => [ 'shape' => 'String', ], 'TargetText' => [ 'shape' => 'String', ], ], ], 'TermList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Term', ], ], 'TerminologyArn' => [ 'type' => 'string', 'pattern' => '^arn:aws((-us-gov)|(-cn))?:translate:[a-zA-Z0-9-]+:[0-9]{12}:terminology/.+?/.+?$', ], 'TerminologyData' => [ 'type' => 'structure', 'required' => [ 'File', 'Format', ], 'members' => [ 'File' => [ 'shape' => 'TerminologyFile', ], 'Format' => [ 'shape' => 'TerminologyDataFormat', ], ], ], 'TerminologyDataFormat' => [ 'type' => 'string', 'enum' => [ 'CSV', 'TMX', ], ], 'TerminologyDataLocation' => [ 'type' => 'structure', 'required' => [ 'RepositoryType', 'Location', ], 'members' => [ 'RepositoryType' => [ 'shape' => 'String', ], 'Location' => [ 'shape' => 'String', ], ], ], 'TerminologyFile' => [ 'type' => 'blob', 'max' => 10485760, 'sensitive' => true, ], 'TerminologyProperties' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'Description' => [ 'shape' => 'Description', ], 'Arn' => [ 'shape' => 'TerminologyArn', ], 'SourceLanguageCode' => [ 'shape' => 'LanguageCodeString', ], 'TargetLanguageCodes' => [ 'shape' => 'LanguageCodeStringList', ], 'EncryptionKey' => [ 'shape' => 'EncryptionKey', ], 'SizeBytes' => [ 'shape' => 'Integer', ], 'TermCount' => [ 'shape' => 'Integer', ], 'CreatedAt' => [ 'shape' => 'Timestamp', ], 'LastUpdatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'TerminologyPropertiesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TerminologyProperties', ], ], 'TextSizeLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'TranslateTextRequest' => [ 'type' => 'structure', 'required' => [ 'Text', 'SourceLanguageCode', 'TargetLanguageCode', ], 'members' => [ 'Text' => [ 'shape' => 'BoundedLengthString', ], 'TerminologyNames' => [ 'shape' => 'ResourceNameList', ], 'SourceLanguageCode' => [ 'shape' => 'LanguageCodeString', ], 'TargetLanguageCode' => [ 'shape' => 'LanguageCodeString', ], ], ], 'TranslateTextResponse' => [ 'type' => 'structure', 'required' => [ 'TranslatedText', 'SourceLanguageCode', 'TargetLanguageCode', ], 'members' => [ 'TranslatedText' => [ 'shape' => 'String', ], 'SourceLanguageCode' => [ 'shape' => 'LanguageCodeString', ], 'TargetLanguageCode' => [ 'shape' => 'LanguageCodeString', ], 'AppliedTerminologies' => [ 'shape' => 'AppliedTerminologyList', ], ], ], 'UnsupportedLanguagePairException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'SourceLanguageCode' => [ 'shape' => 'LanguageCodeString', ], 'TargetLanguageCode' => [ 'shape' => 'LanguageCodeString', ], ], 'exception' => true, ], ],]; diff --git a/lib/aws/Aws/data/translate/2017-07-01/paginators-1.json.php b/lib/aws/Aws/data/translate/2017-07-01/paginators-1.json.php new file mode 100644 index 0000000..1d87d8a --- /dev/null +++ b/lib/aws/Aws/data/translate/2017-07-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/translate/2017-07-01/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/waf-regional/2016-11-28/api-2.json.php b/lib/aws/Aws/data/waf-regional/2016-11-28/api-2.json.php new file mode 100644 index 0000000..65faaad --- /dev/null +++ b/lib/aws/Aws/data/waf-regional/2016-11-28/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/waf-regional/2016-11-28/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-11-28', 'endpointPrefix' => 'waf-regional', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'WAF Regional', 'serviceFullName' => 'AWS WAF Regional', 'serviceId' => 'WAF Regional', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWSWAF_Regional_20161128', 'uid' => 'waf-regional-2016-11-28', ], 'operations' => [ 'AssociateWebACL' => [ 'name' => 'AssociateWebACL', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateWebACLRequest', ], 'output' => [ 'shape' => 'AssociateWebACLResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFUnavailableEntityException', ], ], ], 'CreateByteMatchSet' => [ 'name' => 'CreateByteMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateByteMatchSetRequest', ], 'output' => [ 'shape' => 'CreateByteMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateGeoMatchSet' => [ 'name' => 'CreateGeoMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateGeoMatchSetRequest', ], 'output' => [ 'shape' => 'CreateGeoMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateIPSet' => [ 'name' => 'CreateIPSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIPSetRequest', ], 'output' => [ 'shape' => 'CreateIPSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateRateBasedRule' => [ 'name' => 'CreateRateBasedRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRateBasedRuleRequest', ], 'output' => [ 'shape' => 'CreateRateBasedRuleResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateRegexMatchSet' => [ 'name' => 'CreateRegexMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRegexMatchSetRequest', ], 'output' => [ 'shape' => 'CreateRegexMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateRegexPatternSet' => [ 'name' => 'CreateRegexPatternSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRegexPatternSetRequest', ], 'output' => [ 'shape' => 'CreateRegexPatternSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateRule' => [ 'name' => 'CreateRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRuleRequest', ], 'output' => [ 'shape' => 'CreateRuleResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateRuleGroup' => [ 'name' => 'CreateRuleGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRuleGroupRequest', ], 'output' => [ 'shape' => 'CreateRuleGroupResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateSizeConstraintSet' => [ 'name' => 'CreateSizeConstraintSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSizeConstraintSetRequest', ], 'output' => [ 'shape' => 'CreateSizeConstraintSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateSqlInjectionMatchSet' => [ 'name' => 'CreateSqlInjectionMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSqlInjectionMatchSetRequest', ], 'output' => [ 'shape' => 'CreateSqlInjectionMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateWebACL' => [ 'name' => 'CreateWebACL', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateWebACLRequest', ], 'output' => [ 'shape' => 'CreateWebACLResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateXssMatchSet' => [ 'name' => 'CreateXssMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateXssMatchSetRequest', ], 'output' => [ 'shape' => 'CreateXssMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'DeleteByteMatchSet' => [ 'name' => 'DeleteByteMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteByteMatchSetRequest', ], 'output' => [ 'shape' => 'DeleteByteMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DeleteGeoMatchSet' => [ 'name' => 'DeleteGeoMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteGeoMatchSetRequest', ], 'output' => [ 'shape' => 'DeleteGeoMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DeleteIPSet' => [ 'name' => 'DeleteIPSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIPSetRequest', ], 'output' => [ 'shape' => 'DeleteIPSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DeleteLoggingConfiguration' => [ 'name' => 'DeleteLoggingConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLoggingConfigurationRequest', ], 'output' => [ 'shape' => 'DeleteLoggingConfigurationResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFStaleDataException', ], ], ], 'DeletePermissionPolicy' => [ 'name' => 'DeletePermissionPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePermissionPolicyRequest', ], 'output' => [ 'shape' => 'DeletePermissionPolicyResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'DeleteRateBasedRule' => [ 'name' => 'DeleteRateBasedRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRateBasedRuleRequest', ], 'output' => [ 'shape' => 'DeleteRateBasedRuleResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DeleteRegexMatchSet' => [ 'name' => 'DeleteRegexMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRegexMatchSetRequest', ], 'output' => [ 'shape' => 'DeleteRegexMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DeleteRegexPatternSet' => [ 'name' => 'DeleteRegexPatternSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRegexPatternSetRequest', ], 'output' => [ 'shape' => 'DeleteRegexPatternSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DeleteRule' => [ 'name' => 'DeleteRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRuleRequest', ], 'output' => [ 'shape' => 'DeleteRuleResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DeleteRuleGroup' => [ 'name' => 'DeleteRuleGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRuleGroupRequest', ], 'output' => [ 'shape' => 'DeleteRuleGroupResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], [ 'shape' => 'WAFInvalidOperationException', ], ], ], 'DeleteSizeConstraintSet' => [ 'name' => 'DeleteSizeConstraintSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSizeConstraintSetRequest', ], 'output' => [ 'shape' => 'DeleteSizeConstraintSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DeleteSqlInjectionMatchSet' => [ 'name' => 'DeleteSqlInjectionMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSqlInjectionMatchSetRequest', ], 'output' => [ 'shape' => 'DeleteSqlInjectionMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DeleteWebACL' => [ 'name' => 'DeleteWebACL', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteWebACLRequest', ], 'output' => [ 'shape' => 'DeleteWebACLResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DeleteXssMatchSet' => [ 'name' => 'DeleteXssMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteXssMatchSetRequest', ], 'output' => [ 'shape' => 'DeleteXssMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DisassociateWebACL' => [ 'name' => 'DisassociateWebACL', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateWebACLRequest', ], 'output' => [ 'shape' => 'DisassociateWebACLResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetByteMatchSet' => [ 'name' => 'GetByteMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetByteMatchSetRequest', ], 'output' => [ 'shape' => 'GetByteMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetChangeToken' => [ 'name' => 'GetChangeToken', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetChangeTokenRequest', ], 'output' => [ 'shape' => 'GetChangeTokenResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], ], ], 'GetChangeTokenStatus' => [ 'name' => 'GetChangeTokenStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetChangeTokenStatusRequest', ], 'output' => [ 'shape' => 'GetChangeTokenStatusResponse', ], 'errors' => [ [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFInternalErrorException', ], ], ], 'GetGeoMatchSet' => [ 'name' => 'GetGeoMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetGeoMatchSetRequest', ], 'output' => [ 'shape' => 'GetGeoMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetIPSet' => [ 'name' => 'GetIPSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIPSetRequest', ], 'output' => [ 'shape' => 'GetIPSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetLoggingConfiguration' => [ 'name' => 'GetLoggingConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetLoggingConfigurationRequest', ], 'output' => [ 'shape' => 'GetLoggingConfigurationResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetPermissionPolicy' => [ 'name' => 'GetPermissionPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPermissionPolicyRequest', ], 'output' => [ 'shape' => 'GetPermissionPolicyResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetRateBasedRule' => [ 'name' => 'GetRateBasedRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRateBasedRuleRequest', ], 'output' => [ 'shape' => 'GetRateBasedRuleResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetRateBasedRuleManagedKeys' => [ 'name' => 'GetRateBasedRuleManagedKeys', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRateBasedRuleManagedKeysRequest', ], 'output' => [ 'shape' => 'GetRateBasedRuleManagedKeysResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFInvalidParameterException', ], ], ], 'GetRegexMatchSet' => [ 'name' => 'GetRegexMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRegexMatchSetRequest', ], 'output' => [ 'shape' => 'GetRegexMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetRegexPatternSet' => [ 'name' => 'GetRegexPatternSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRegexPatternSetRequest', ], 'output' => [ 'shape' => 'GetRegexPatternSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetRule' => [ 'name' => 'GetRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRuleRequest', ], 'output' => [ 'shape' => 'GetRuleResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetRuleGroup' => [ 'name' => 'GetRuleGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRuleGroupRequest', ], 'output' => [ 'shape' => 'GetRuleGroupResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetSampledRequests' => [ 'name' => 'GetSampledRequests', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSampledRequestsRequest', ], 'output' => [ 'shape' => 'GetSampledRequestsResponse', ], 'errors' => [ [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFInternalErrorException', ], ], ], 'GetSizeConstraintSet' => [ 'name' => 'GetSizeConstraintSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSizeConstraintSetRequest', ], 'output' => [ 'shape' => 'GetSizeConstraintSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetSqlInjectionMatchSet' => [ 'name' => 'GetSqlInjectionMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSqlInjectionMatchSetRequest', ], 'output' => [ 'shape' => 'GetSqlInjectionMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetWebACL' => [ 'name' => 'GetWebACL', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetWebACLRequest', ], 'output' => [ 'shape' => 'GetWebACLResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetWebACLForResource' => [ 'name' => 'GetWebACLForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetWebACLForResourceRequest', ], 'output' => [ 'shape' => 'GetWebACLForResourceResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFUnavailableEntityException', ], ], ], 'GetXssMatchSet' => [ 'name' => 'GetXssMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetXssMatchSetRequest', ], 'output' => [ 'shape' => 'GetXssMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'ListActivatedRulesInRuleGroup' => [ 'name' => 'ListActivatedRulesInRuleGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListActivatedRulesInRuleGroupRequest', ], 'output' => [ 'shape' => 'ListActivatedRulesInRuleGroupResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFInvalidParameterException', ], ], ], 'ListByteMatchSets' => [ 'name' => 'ListByteMatchSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListByteMatchSetsRequest', ], 'output' => [ 'shape' => 'ListByteMatchSetsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'ListGeoMatchSets' => [ 'name' => 'ListGeoMatchSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListGeoMatchSetsRequest', ], 'output' => [ 'shape' => 'ListGeoMatchSetsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'ListIPSets' => [ 'name' => 'ListIPSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListIPSetsRequest', ], 'output' => [ 'shape' => 'ListIPSetsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'ListLoggingConfigurations' => [ 'name' => 'ListLoggingConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListLoggingConfigurationsRequest', ], 'output' => [ 'shape' => 'ListLoggingConfigurationsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFInvalidParameterException', ], ], ], 'ListRateBasedRules' => [ 'name' => 'ListRateBasedRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRateBasedRulesRequest', ], 'output' => [ 'shape' => 'ListRateBasedRulesResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'ListRegexMatchSets' => [ 'name' => 'ListRegexMatchSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRegexMatchSetsRequest', ], 'output' => [ 'shape' => 'ListRegexMatchSetsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'ListRegexPatternSets' => [ 'name' => 'ListRegexPatternSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRegexPatternSetsRequest', ], 'output' => [ 'shape' => 'ListRegexPatternSetsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'ListResourcesForWebACL' => [ 'name' => 'ListResourcesForWebACL', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListResourcesForWebACLRequest', ], 'output' => [ 'shape' => 'ListResourcesForWebACLResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFInvalidParameterException', ], ], ], 'ListRuleGroups' => [ 'name' => 'ListRuleGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRuleGroupsRequest', ], 'output' => [ 'shape' => 'ListRuleGroupsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], ], ], 'ListRules' => [ 'name' => 'ListRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRulesRequest', ], 'output' => [ 'shape' => 'ListRulesResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'ListSizeConstraintSets' => [ 'name' => 'ListSizeConstraintSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSizeConstraintSetsRequest', ], 'output' => [ 'shape' => 'ListSizeConstraintSetsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'ListSqlInjectionMatchSets' => [ 'name' => 'ListSqlInjectionMatchSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSqlInjectionMatchSetsRequest', ], 'output' => [ 'shape' => 'ListSqlInjectionMatchSetsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'ListSubscribedRuleGroups' => [ 'name' => 'ListSubscribedRuleGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSubscribedRuleGroupsRequest', ], 'output' => [ 'shape' => 'ListSubscribedRuleGroupsResponse', ], 'errors' => [ [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFInternalErrorException', ], ], ], 'ListWebACLs' => [ 'name' => 'ListWebACLs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListWebACLsRequest', ], 'output' => [ 'shape' => 'ListWebACLsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'ListXssMatchSets' => [ 'name' => 'ListXssMatchSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListXssMatchSetsRequest', ], 'output' => [ 'shape' => 'ListXssMatchSetsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'PutLoggingConfiguration' => [ 'name' => 'PutLoggingConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutLoggingConfigurationRequest', ], 'output' => [ 'shape' => 'PutLoggingConfigurationResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFServiceLinkedRoleErrorException', ], ], ], 'PutPermissionPolicy' => [ 'name' => 'PutPermissionPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutPermissionPolicyRequest', ], 'output' => [ 'shape' => 'PutPermissionPolicyResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFInvalidPermissionPolicyException', ], ], ], 'UpdateByteMatchSet' => [ 'name' => 'UpdateByteMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateByteMatchSetRequest', ], 'output' => [ 'shape' => 'UpdateByteMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'UpdateGeoMatchSet' => [ 'name' => 'UpdateGeoMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateGeoMatchSetRequest', ], 'output' => [ 'shape' => 'UpdateGeoMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'UpdateIPSet' => [ 'name' => 'UpdateIPSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateIPSetRequest', ], 'output' => [ 'shape' => 'UpdateIPSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'UpdateRateBasedRule' => [ 'name' => 'UpdateRateBasedRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRateBasedRuleRequest', ], 'output' => [ 'shape' => 'UpdateRateBasedRuleResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'UpdateRegexMatchSet' => [ 'name' => 'UpdateRegexMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRegexMatchSetRequest', ], 'output' => [ 'shape' => 'UpdateRegexMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFLimitsExceededException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'UpdateRegexPatternSet' => [ 'name' => 'UpdateRegexPatternSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRegexPatternSetRequest', ], 'output' => [ 'shape' => 'UpdateRegexPatternSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFLimitsExceededException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidRegexPatternException', ], ], ], 'UpdateRule' => [ 'name' => 'UpdateRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRuleRequest', ], 'output' => [ 'shape' => 'UpdateRuleResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'UpdateRuleGroup' => [ 'name' => 'UpdateRuleGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRuleGroupRequest', ], 'output' => [ 'shape' => 'UpdateRuleGroupResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFLimitsExceededException', ], [ 'shape' => 'WAFInvalidParameterException', ], ], ], 'UpdateSizeConstraintSet' => [ 'name' => 'UpdateSizeConstraintSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSizeConstraintSetRequest', ], 'output' => [ 'shape' => 'UpdateSizeConstraintSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'UpdateSqlInjectionMatchSet' => [ 'name' => 'UpdateSqlInjectionMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSqlInjectionMatchSetRequest', ], 'output' => [ 'shape' => 'UpdateSqlInjectionMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'UpdateWebACL' => [ 'name' => 'UpdateWebACL', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateWebACLRequest', ], 'output' => [ 'shape' => 'UpdateWebACLResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFLimitsExceededException', ], [ 'shape' => 'WAFSubscriptionNotFoundException', ], ], ], 'UpdateXssMatchSet' => [ 'name' => 'UpdateXssMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateXssMatchSetRequest', ], 'output' => [ 'shape' => 'UpdateXssMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], ], 'shapes' => [ 'Action' => [ 'type' => 'string', ], 'ActivatedRule' => [ 'type' => 'structure', 'required' => [ 'Priority', 'RuleId', ], 'members' => [ 'Priority' => [ 'shape' => 'RulePriority', ], 'RuleId' => [ 'shape' => 'ResourceId', ], 'Action' => [ 'shape' => 'WafAction', ], 'OverrideAction' => [ 'shape' => 'WafOverrideAction', ], 'Type' => [ 'shape' => 'WafRuleType', ], 'ExcludedRules' => [ 'shape' => 'ExcludedRules', ], ], ], 'ActivatedRules' => [ 'type' => 'list', 'member' => [ 'shape' => 'ActivatedRule', ], ], 'AssociateWebACLRequest' => [ 'type' => 'structure', 'required' => [ 'WebACLId', 'ResourceArn', ], 'members' => [ 'WebACLId' => [ 'shape' => 'ResourceId', ], 'ResourceArn' => [ 'shape' => 'ResourceArn', ], ], ], 'AssociateWebACLResponse' => [ 'type' => 'structure', 'members' => [], ], 'ByteMatchSet' => [ 'type' => 'structure', 'required' => [ 'ByteMatchSetId', 'ByteMatchTuples', ], 'members' => [ 'ByteMatchSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'ByteMatchTuples' => [ 'shape' => 'ByteMatchTuples', ], ], ], 'ByteMatchSetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ByteMatchSetSummary', ], ], 'ByteMatchSetSummary' => [ 'type' => 'structure', 'required' => [ 'ByteMatchSetId', 'Name', ], 'members' => [ 'ByteMatchSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'ByteMatchSetUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'ByteMatchTuple', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'ByteMatchTuple' => [ 'shape' => 'ByteMatchTuple', ], ], ], 'ByteMatchSetUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'ByteMatchSetUpdate', ], 'min' => 1, ], 'ByteMatchTargetString' => [ 'type' => 'blob', ], 'ByteMatchTuple' => [ 'type' => 'structure', 'required' => [ 'FieldToMatch', 'TargetString', 'TextTransformation', 'PositionalConstraint', ], 'members' => [ 'FieldToMatch' => [ 'shape' => 'FieldToMatch', ], 'TargetString' => [ 'shape' => 'ByteMatchTargetString', ], 'TextTransformation' => [ 'shape' => 'TextTransformation', ], 'PositionalConstraint' => [ 'shape' => 'PositionalConstraint', ], ], ], 'ByteMatchTuples' => [ 'type' => 'list', 'member' => [ 'shape' => 'ByteMatchTuple', ], ], 'ChangeAction' => [ 'type' => 'string', 'enum' => [ 'INSERT', 'DELETE', ], ], 'ChangeToken' => [ 'type' => 'string', 'min' => 1, ], 'ChangeTokenStatus' => [ 'type' => 'string', 'enum' => [ 'PROVISIONED', 'PENDING', 'INSYNC', ], ], 'ComparisonOperator' => [ 'type' => 'string', 'enum' => [ 'EQ', 'NE', 'LE', 'LT', 'GE', 'GT', ], ], 'Country' => [ 'type' => 'string', ], 'CreateByteMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateByteMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ByteMatchSet' => [ 'shape' => 'ByteMatchSet', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateGeoMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateGeoMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'GeoMatchSet' => [ 'shape' => 'GeoMatchSet', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateIPSetRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateIPSetResponse' => [ 'type' => 'structure', 'members' => [ 'IPSet' => [ 'shape' => 'IPSet', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateRateBasedRuleRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'MetricName', 'RateKey', 'RateLimit', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'RateKey' => [ 'shape' => 'RateKey', ], 'RateLimit' => [ 'shape' => 'RateLimit', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateRateBasedRuleResponse' => [ 'type' => 'structure', 'members' => [ 'Rule' => [ 'shape' => 'RateBasedRule', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateRegexMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateRegexMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'RegexMatchSet' => [ 'shape' => 'RegexMatchSet', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateRegexPatternSetRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateRegexPatternSetResponse' => [ 'type' => 'structure', 'members' => [ 'RegexPatternSet' => [ 'shape' => 'RegexPatternSet', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateRuleGroupRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'MetricName', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateRuleGroupResponse' => [ 'type' => 'structure', 'members' => [ 'RuleGroup' => [ 'shape' => 'RuleGroup', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateRuleRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'MetricName', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateRuleResponse' => [ 'type' => 'structure', 'members' => [ 'Rule' => [ 'shape' => 'Rule', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateSizeConstraintSetRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateSizeConstraintSetResponse' => [ 'type' => 'structure', 'members' => [ 'SizeConstraintSet' => [ 'shape' => 'SizeConstraintSet', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateSqlInjectionMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateSqlInjectionMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'SqlInjectionMatchSet' => [ 'shape' => 'SqlInjectionMatchSet', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateWebACLRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'MetricName', 'DefaultAction', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'DefaultAction' => [ 'shape' => 'WafAction', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateWebACLResponse' => [ 'type' => 'structure', 'members' => [ 'WebACL' => [ 'shape' => 'WebACL', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateXssMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateXssMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'XssMatchSet' => [ 'shape' => 'XssMatchSet', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteByteMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'ByteMatchSetId', 'ChangeToken', ], 'members' => [ 'ByteMatchSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteByteMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteGeoMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'GeoMatchSetId', 'ChangeToken', ], 'members' => [ 'GeoMatchSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteGeoMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteIPSetRequest' => [ 'type' => 'structure', 'required' => [ 'IPSetId', 'ChangeToken', ], 'members' => [ 'IPSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteIPSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteLoggingConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], ], ], 'DeleteLoggingConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeletePermissionPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], ], ], 'DeletePermissionPolicyResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteRateBasedRuleRequest' => [ 'type' => 'structure', 'required' => [ 'RuleId', 'ChangeToken', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteRateBasedRuleResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteRegexMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'RegexMatchSetId', 'ChangeToken', ], 'members' => [ 'RegexMatchSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteRegexMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteRegexPatternSetRequest' => [ 'type' => 'structure', 'required' => [ 'RegexPatternSetId', 'ChangeToken', ], 'members' => [ 'RegexPatternSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteRegexPatternSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteRuleGroupRequest' => [ 'type' => 'structure', 'required' => [ 'RuleGroupId', 'ChangeToken', ], 'members' => [ 'RuleGroupId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteRuleGroupResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteRuleRequest' => [ 'type' => 'structure', 'required' => [ 'RuleId', 'ChangeToken', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteRuleResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteSizeConstraintSetRequest' => [ 'type' => 'structure', 'required' => [ 'SizeConstraintSetId', 'ChangeToken', ], 'members' => [ 'SizeConstraintSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteSizeConstraintSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteSqlInjectionMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'SqlInjectionMatchSetId', 'ChangeToken', ], 'members' => [ 'SqlInjectionMatchSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteSqlInjectionMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteWebACLRequest' => [ 'type' => 'structure', 'required' => [ 'WebACLId', 'ChangeToken', ], 'members' => [ 'WebACLId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteWebACLResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteXssMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'XssMatchSetId', 'ChangeToken', ], 'members' => [ 'XssMatchSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteXssMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DisassociateWebACLRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], ], ], 'DisassociateWebACLResponse' => [ 'type' => 'structure', 'members' => [], ], 'ExcludedRule' => [ 'type' => 'structure', 'required' => [ 'RuleId', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], ], ], 'ExcludedRules' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExcludedRule', ], ], 'FieldToMatch' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'MatchFieldType', ], 'Data' => [ 'shape' => 'MatchFieldData', ], ], ], 'GeoMatchConstraint' => [ 'type' => 'structure', 'required' => [ 'Type', 'Value', ], 'members' => [ 'Type' => [ 'shape' => 'GeoMatchConstraintType', ], 'Value' => [ 'shape' => 'GeoMatchConstraintValue', ], ], ], 'GeoMatchConstraintType' => [ 'type' => 'string', 'enum' => [ 'Country', ], ], 'GeoMatchConstraintValue' => [ 'type' => 'string', 'enum' => [ 'AF', 'AX', 'AL', 'DZ', 'AS', 'AD', 'AO', 'AI', 'AQ', 'AG', 'AR', 'AM', 'AW', 'AU', 'AT', 'AZ', 'BS', 'BH', 'BD', 'BB', 'BY', 'BE', 'BZ', 'BJ', 'BM', 'BT', 'BO', 'BQ', 'BA', 'BW', 'BV', 'BR', 'IO', 'BN', 'BG', 'BF', 'BI', 'KH', 'CM', 'CA', 'CV', 'KY', 'CF', 'TD', 'CL', 'CN', 'CX', 'CC', 'CO', 'KM', 'CG', 'CD', 'CK', 'CR', 'CI', 'HR', 'CU', 'CW', 'CY', 'CZ', 'DK', 'DJ', 'DM', 'DO', 'EC', 'EG', 'SV', 'GQ', 'ER', 'EE', 'ET', 'FK', 'FO', 'FJ', 'FI', 'FR', 'GF', 'PF', 'TF', 'GA', 'GM', 'GE', 'DE', 'GH', 'GI', 'GR', 'GL', 'GD', 'GP', 'GU', 'GT', 'GG', 'GN', 'GW', 'GY', 'HT', 'HM', 'VA', 'HN', 'HK', 'HU', 'IS', 'IN', 'ID', 'IR', 'IQ', 'IE', 'IM', 'IL', 'IT', 'JM', 'JP', 'JE', 'JO', 'KZ', 'KE', 'KI', 'KP', 'KR', 'KW', 'KG', 'LA', 'LV', 'LB', 'LS', 'LR', 'LY', 'LI', 'LT', 'LU', 'MO', 'MK', 'MG', 'MW', 'MY', 'MV', 'ML', 'MT', 'MH', 'MQ', 'MR', 'MU', 'YT', 'MX', 'FM', 'MD', 'MC', 'MN', 'ME', 'MS', 'MA', 'MZ', 'MM', 'NA', 'NR', 'NP', 'NL', 'NC', 'NZ', 'NI', 'NE', 'NG', 'NU', 'NF', 'MP', 'NO', 'OM', 'PK', 'PW', 'PS', 'PA', 'PG', 'PY', 'PE', 'PH', 'PN', 'PL', 'PT', 'PR', 'QA', 'RE', 'RO', 'RU', 'RW', 'BL', 'SH', 'KN', 'LC', 'MF', 'PM', 'VC', 'WS', 'SM', 'ST', 'SA', 'SN', 'RS', 'SC', 'SL', 'SG', 'SX', 'SK', 'SI', 'SB', 'SO', 'ZA', 'GS', 'SS', 'ES', 'LK', 'SD', 'SR', 'SJ', 'SZ', 'SE', 'CH', 'SY', 'TW', 'TJ', 'TZ', 'TH', 'TL', 'TG', 'TK', 'TO', 'TT', 'TN', 'TR', 'TM', 'TC', 'TV', 'UG', 'UA', 'AE', 'GB', 'US', 'UM', 'UY', 'UZ', 'VU', 'VE', 'VN', 'VG', 'VI', 'WF', 'EH', 'YE', 'ZM', 'ZW', ], ], 'GeoMatchConstraints' => [ 'type' => 'list', 'member' => [ 'shape' => 'GeoMatchConstraint', ], ], 'GeoMatchSet' => [ 'type' => 'structure', 'required' => [ 'GeoMatchSetId', 'GeoMatchConstraints', ], 'members' => [ 'GeoMatchSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'GeoMatchConstraints' => [ 'shape' => 'GeoMatchConstraints', ], ], ], 'GeoMatchSetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'GeoMatchSetSummary', ], ], 'GeoMatchSetSummary' => [ 'type' => 'structure', 'required' => [ 'GeoMatchSetId', 'Name', ], 'members' => [ 'GeoMatchSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'GeoMatchSetUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'GeoMatchConstraint', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'GeoMatchConstraint' => [ 'shape' => 'GeoMatchConstraint', ], ], ], 'GeoMatchSetUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'GeoMatchSetUpdate', ], 'min' => 1, ], 'GetByteMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'ByteMatchSetId', ], 'members' => [ 'ByteMatchSetId' => [ 'shape' => 'ResourceId', ], ], ], 'GetByteMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ByteMatchSet' => [ 'shape' => 'ByteMatchSet', ], ], ], 'GetChangeTokenRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetChangeTokenResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'GetChangeTokenStatusRequest' => [ 'type' => 'structure', 'required' => [ 'ChangeToken', ], 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'GetChangeTokenStatusResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeTokenStatus' => [ 'shape' => 'ChangeTokenStatus', ], ], ], 'GetGeoMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'GeoMatchSetId', ], 'members' => [ 'GeoMatchSetId' => [ 'shape' => 'ResourceId', ], ], ], 'GetGeoMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'GeoMatchSet' => [ 'shape' => 'GeoMatchSet', ], ], ], 'GetIPSetRequest' => [ 'type' => 'structure', 'required' => [ 'IPSetId', ], 'members' => [ 'IPSetId' => [ 'shape' => 'ResourceId', ], ], ], 'GetIPSetResponse' => [ 'type' => 'structure', 'members' => [ 'IPSet' => [ 'shape' => 'IPSet', ], ], ], 'GetLoggingConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], ], ], 'GetLoggingConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'LoggingConfiguration' => [ 'shape' => 'LoggingConfiguration', ], ], ], 'GetPermissionPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], ], ], 'GetPermissionPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'Policy' => [ 'shape' => 'PolicyString', ], ], ], 'GetRateBasedRuleManagedKeysRequest' => [ 'type' => 'structure', 'required' => [ 'RuleId', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], 'NextMarker' => [ 'shape' => 'NextMarker', ], ], ], 'GetRateBasedRuleManagedKeysResponse' => [ 'type' => 'structure', 'members' => [ 'ManagedKeys' => [ 'shape' => 'ManagedKeys', ], 'NextMarker' => [ 'shape' => 'NextMarker', ], ], ], 'GetRateBasedRuleRequest' => [ 'type' => 'structure', 'required' => [ 'RuleId', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], ], ], 'GetRateBasedRuleResponse' => [ 'type' => 'structure', 'members' => [ 'Rule' => [ 'shape' => 'RateBasedRule', ], ], ], 'GetRegexMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'RegexMatchSetId', ], 'members' => [ 'RegexMatchSetId' => [ 'shape' => 'ResourceId', ], ], ], 'GetRegexMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'RegexMatchSet' => [ 'shape' => 'RegexMatchSet', ], ], ], 'GetRegexPatternSetRequest' => [ 'type' => 'structure', 'required' => [ 'RegexPatternSetId', ], 'members' => [ 'RegexPatternSetId' => [ 'shape' => 'ResourceId', ], ], ], 'GetRegexPatternSetResponse' => [ 'type' => 'structure', 'members' => [ 'RegexPatternSet' => [ 'shape' => 'RegexPatternSet', ], ], ], 'GetRuleGroupRequest' => [ 'type' => 'structure', 'required' => [ 'RuleGroupId', ], 'members' => [ 'RuleGroupId' => [ 'shape' => 'ResourceId', ], ], ], 'GetRuleGroupResponse' => [ 'type' => 'structure', 'members' => [ 'RuleGroup' => [ 'shape' => 'RuleGroup', ], ], ], 'GetRuleRequest' => [ 'type' => 'structure', 'required' => [ 'RuleId', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], ], ], 'GetRuleResponse' => [ 'type' => 'structure', 'members' => [ 'Rule' => [ 'shape' => 'Rule', ], ], ], 'GetSampledRequestsMaxItems' => [ 'type' => 'long', 'max' => 500, 'min' => 1, ], 'GetSampledRequestsRequest' => [ 'type' => 'structure', 'required' => [ 'WebAclId', 'RuleId', 'TimeWindow', 'MaxItems', ], 'members' => [ 'WebAclId' => [ 'shape' => 'ResourceId', ], 'RuleId' => [ 'shape' => 'ResourceId', ], 'TimeWindow' => [ 'shape' => 'TimeWindow', ], 'MaxItems' => [ 'shape' => 'GetSampledRequestsMaxItems', ], ], ], 'GetSampledRequestsResponse' => [ 'type' => 'structure', 'members' => [ 'SampledRequests' => [ 'shape' => 'SampledHTTPRequests', ], 'PopulationSize' => [ 'shape' => 'PopulationSize', ], 'TimeWindow' => [ 'shape' => 'TimeWindow', ], ], ], 'GetSizeConstraintSetRequest' => [ 'type' => 'structure', 'required' => [ 'SizeConstraintSetId', ], 'members' => [ 'SizeConstraintSetId' => [ 'shape' => 'ResourceId', ], ], ], 'GetSizeConstraintSetResponse' => [ 'type' => 'structure', 'members' => [ 'SizeConstraintSet' => [ 'shape' => 'SizeConstraintSet', ], ], ], 'GetSqlInjectionMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'SqlInjectionMatchSetId', ], 'members' => [ 'SqlInjectionMatchSetId' => [ 'shape' => 'ResourceId', ], ], ], 'GetSqlInjectionMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'SqlInjectionMatchSet' => [ 'shape' => 'SqlInjectionMatchSet', ], ], ], 'GetWebACLForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], ], ], 'GetWebACLForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'WebACLSummary' => [ 'shape' => 'WebACLSummary', ], ], ], 'GetWebACLRequest' => [ 'type' => 'structure', 'required' => [ 'WebACLId', ], 'members' => [ 'WebACLId' => [ 'shape' => 'ResourceId', ], ], ], 'GetWebACLResponse' => [ 'type' => 'structure', 'members' => [ 'WebACL' => [ 'shape' => 'WebACL', ], ], ], 'GetXssMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'XssMatchSetId', ], 'members' => [ 'XssMatchSetId' => [ 'shape' => 'ResourceId', ], ], ], 'GetXssMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'XssMatchSet' => [ 'shape' => 'XssMatchSet', ], ], ], 'HTTPHeader' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'HeaderName', ], 'Value' => [ 'shape' => 'HeaderValue', ], ], ], 'HTTPHeaders' => [ 'type' => 'list', 'member' => [ 'shape' => 'HTTPHeader', ], ], 'HTTPMethod' => [ 'type' => 'string', ], 'HTTPRequest' => [ 'type' => 'structure', 'members' => [ 'ClientIP' => [ 'shape' => 'IPString', ], 'Country' => [ 'shape' => 'Country', ], 'URI' => [ 'shape' => 'URIString', ], 'Method' => [ 'shape' => 'HTTPMethod', ], 'HTTPVersion' => [ 'shape' => 'HTTPVersion', ], 'Headers' => [ 'shape' => 'HTTPHeaders', ], ], ], 'HTTPVersion' => [ 'type' => 'string', ], 'HeaderName' => [ 'type' => 'string', ], 'HeaderValue' => [ 'type' => 'string', ], 'IPSet' => [ 'type' => 'structure', 'required' => [ 'IPSetId', 'IPSetDescriptors', ], 'members' => [ 'IPSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'IPSetDescriptors' => [ 'shape' => 'IPSetDescriptors', ], ], ], 'IPSetDescriptor' => [ 'type' => 'structure', 'required' => [ 'Type', 'Value', ], 'members' => [ 'Type' => [ 'shape' => 'IPSetDescriptorType', ], 'Value' => [ 'shape' => 'IPSetDescriptorValue', ], ], ], 'IPSetDescriptorType' => [ 'type' => 'string', 'enum' => [ 'IPV4', 'IPV6', ], ], 'IPSetDescriptorValue' => [ 'type' => 'string', ], 'IPSetDescriptors' => [ 'type' => 'list', 'member' => [ 'shape' => 'IPSetDescriptor', ], ], 'IPSetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'IPSetSummary', ], ], 'IPSetSummary' => [ 'type' => 'structure', 'required' => [ 'IPSetId', 'Name', ], 'members' => [ 'IPSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'IPSetUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'IPSetDescriptor', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'IPSetDescriptor' => [ 'shape' => 'IPSetDescriptor', ], ], ], 'IPSetUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'IPSetUpdate', ], 'min' => 1, ], 'IPString' => [ 'type' => 'string', ], 'ListActivatedRulesInRuleGroupRequest' => [ 'type' => 'structure', 'members' => [ 'RuleGroupId' => [ 'shape' => 'ResourceId', ], 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListActivatedRulesInRuleGroupResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'ActivatedRules' => [ 'shape' => 'ActivatedRules', ], ], ], 'ListByteMatchSetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListByteMatchSetsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'ByteMatchSets' => [ 'shape' => 'ByteMatchSetSummaries', ], ], ], 'ListGeoMatchSetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListGeoMatchSetsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'GeoMatchSets' => [ 'shape' => 'GeoMatchSetSummaries', ], ], ], 'ListIPSetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListIPSetsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'IPSets' => [ 'shape' => 'IPSetSummaries', ], ], ], 'ListLoggingConfigurationsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListLoggingConfigurationsResponse' => [ 'type' => 'structure', 'members' => [ 'LoggingConfigurations' => [ 'shape' => 'LoggingConfigurations', ], 'NextMarker' => [ 'shape' => 'NextMarker', ], ], ], 'ListRateBasedRulesRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListRateBasedRulesResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Rules' => [ 'shape' => 'RuleSummaries', ], ], ], 'ListRegexMatchSetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListRegexMatchSetsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'RegexMatchSets' => [ 'shape' => 'RegexMatchSetSummaries', ], ], ], 'ListRegexPatternSetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListRegexPatternSetsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'RegexPatternSets' => [ 'shape' => 'RegexPatternSetSummaries', ], ], ], 'ListResourcesForWebACLRequest' => [ 'type' => 'structure', 'required' => [ 'WebACLId', ], 'members' => [ 'WebACLId' => [ 'shape' => 'ResourceId', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], ], ], 'ListResourcesForWebACLResponse' => [ 'type' => 'structure', 'members' => [ 'ResourceArns' => [ 'shape' => 'ResourceArns', ], ], ], 'ListRuleGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListRuleGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'RuleGroups' => [ 'shape' => 'RuleGroupSummaries', ], ], ], 'ListRulesRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListRulesResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Rules' => [ 'shape' => 'RuleSummaries', ], ], ], 'ListSizeConstraintSetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListSizeConstraintSetsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'SizeConstraintSets' => [ 'shape' => 'SizeConstraintSetSummaries', ], ], ], 'ListSqlInjectionMatchSetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListSqlInjectionMatchSetsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'SqlInjectionMatchSets' => [ 'shape' => 'SqlInjectionMatchSetSummaries', ], ], ], 'ListSubscribedRuleGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListSubscribedRuleGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'RuleGroups' => [ 'shape' => 'SubscribedRuleGroupSummaries', ], ], ], 'ListWebACLsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListWebACLsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'WebACLs' => [ 'shape' => 'WebACLSummaries', ], ], ], 'ListXssMatchSetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListXssMatchSetsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'XssMatchSets' => [ 'shape' => 'XssMatchSetSummaries', ], ], ], 'LogDestinationConfigs' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceArn', ], 'max' => 1, 'min' => 1, ], 'LoggingConfiguration' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'LogDestinationConfigs', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], 'LogDestinationConfigs' => [ 'shape' => 'LogDestinationConfigs', ], 'RedactedFields' => [ 'shape' => 'RedactedFields', ], ], ], 'LoggingConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoggingConfiguration', ], ], 'ManagedKey' => [ 'type' => 'string', ], 'ManagedKeys' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedKey', ], ], 'MatchFieldData' => [ 'type' => 'string', ], 'MatchFieldType' => [ 'type' => 'string', 'enum' => [ 'URI', 'QUERY_STRING', 'HEADER', 'METHOD', 'BODY', 'SINGLE_QUERY_ARG', 'ALL_QUERY_ARGS', ], ], 'MetricName' => [ 'type' => 'string', ], 'Negated' => [ 'type' => 'boolean', ], 'NextMarker' => [ 'type' => 'string', 'min' => 1, ], 'PaginationLimit' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'ParameterExceptionField' => [ 'type' => 'string', 'enum' => [ 'CHANGE_ACTION', 'WAF_ACTION', 'WAF_OVERRIDE_ACTION', 'PREDICATE_TYPE', 'IPSET_TYPE', 'BYTE_MATCH_FIELD_TYPE', 'SQL_INJECTION_MATCH_FIELD_TYPE', 'BYTE_MATCH_TEXT_TRANSFORMATION', 'BYTE_MATCH_POSITIONAL_CONSTRAINT', 'SIZE_CONSTRAINT_COMPARISON_OPERATOR', 'GEO_MATCH_LOCATION_TYPE', 'GEO_MATCH_LOCATION_VALUE', 'RATE_KEY', 'RULE_TYPE', 'NEXT_MARKER', 'RESOURCE_ARN', ], ], 'ParameterExceptionParameter' => [ 'type' => 'string', 'min' => 1, ], 'ParameterExceptionReason' => [ 'type' => 'string', 'enum' => [ 'INVALID_OPTION', 'ILLEGAL_COMBINATION', 'ILLEGAL_ARGUMENT', ], ], 'PolicyString' => [ 'type' => 'string', 'min' => 1, ], 'PopulationSize' => [ 'type' => 'long', ], 'PositionalConstraint' => [ 'type' => 'string', 'enum' => [ 'EXACTLY', 'STARTS_WITH', 'ENDS_WITH', 'CONTAINS', 'CONTAINS_WORD', ], ], 'Predicate' => [ 'type' => 'structure', 'required' => [ 'Negated', 'Type', 'DataId', ], 'members' => [ 'Negated' => [ 'shape' => 'Negated', ], 'Type' => [ 'shape' => 'PredicateType', ], 'DataId' => [ 'shape' => 'ResourceId', ], ], ], 'PredicateType' => [ 'type' => 'string', 'enum' => [ 'IPMatch', 'ByteMatch', 'SqlInjectionMatch', 'GeoMatch', 'SizeConstraint', 'XssMatch', 'RegexMatch', ], ], 'Predicates' => [ 'type' => 'list', 'member' => [ 'shape' => 'Predicate', ], ], 'PutLoggingConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'LoggingConfiguration', ], 'members' => [ 'LoggingConfiguration' => [ 'shape' => 'LoggingConfiguration', ], ], ], 'PutLoggingConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'LoggingConfiguration' => [ 'shape' => 'LoggingConfiguration', ], ], ], 'PutPermissionPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Policy', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], 'Policy' => [ 'shape' => 'PolicyString', ], ], ], 'PutPermissionPolicyResponse' => [ 'type' => 'structure', 'members' => [], ], 'RateBasedRule' => [ 'type' => 'structure', 'required' => [ 'RuleId', 'MatchPredicates', 'RateKey', 'RateLimit', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'MatchPredicates' => [ 'shape' => 'Predicates', ], 'RateKey' => [ 'shape' => 'RateKey', ], 'RateLimit' => [ 'shape' => 'RateLimit', ], ], ], 'RateKey' => [ 'type' => 'string', 'enum' => [ 'IP', ], ], 'RateLimit' => [ 'type' => 'long', 'max' => 2000000000, 'min' => 2000, ], 'RedactedFields' => [ 'type' => 'list', 'member' => [ 'shape' => 'FieldToMatch', ], ], 'RegexMatchSet' => [ 'type' => 'structure', 'members' => [ 'RegexMatchSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'RegexMatchTuples' => [ 'shape' => 'RegexMatchTuples', ], ], ], 'RegexMatchSetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegexMatchSetSummary', ], ], 'RegexMatchSetSummary' => [ 'type' => 'structure', 'required' => [ 'RegexMatchSetId', 'Name', ], 'members' => [ 'RegexMatchSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'RegexMatchSetUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'RegexMatchTuple', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'RegexMatchTuple' => [ 'shape' => 'RegexMatchTuple', ], ], ], 'RegexMatchSetUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegexMatchSetUpdate', ], 'min' => 1, ], 'RegexMatchTuple' => [ 'type' => 'structure', 'required' => [ 'FieldToMatch', 'TextTransformation', 'RegexPatternSetId', ], 'members' => [ 'FieldToMatch' => [ 'shape' => 'FieldToMatch', ], 'TextTransformation' => [ 'shape' => 'TextTransformation', ], 'RegexPatternSetId' => [ 'shape' => 'ResourceId', ], ], ], 'RegexMatchTuples' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegexMatchTuple', ], ], 'RegexPatternSet' => [ 'type' => 'structure', 'required' => [ 'RegexPatternSetId', 'RegexPatternStrings', ], 'members' => [ 'RegexPatternSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'RegexPatternStrings' => [ 'shape' => 'RegexPatternStrings', ], ], ], 'RegexPatternSetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegexPatternSetSummary', ], ], 'RegexPatternSetSummary' => [ 'type' => 'structure', 'required' => [ 'RegexPatternSetId', 'Name', ], 'members' => [ 'RegexPatternSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'RegexPatternSetUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'RegexPatternString', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'RegexPatternString' => [ 'shape' => 'RegexPatternString', ], ], ], 'RegexPatternSetUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegexPatternSetUpdate', ], 'min' => 1, ], 'RegexPatternString' => [ 'type' => 'string', 'min' => 1, ], 'RegexPatternStrings' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegexPatternString', ], 'max' => 10, ], 'ResourceArn' => [ 'type' => 'string', 'max' => 1224, 'min' => 1, ], 'ResourceArns' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceArn', ], ], 'ResourceId' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'ResourceName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'ResourceType' => [ 'type' => 'string', 'enum' => [ 'APPLICATION_LOAD_BALANCER', 'API_GATEWAY', ], ], 'Rule' => [ 'type' => 'structure', 'required' => [ 'RuleId', 'Predicates', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'Predicates' => [ 'shape' => 'Predicates', ], ], ], 'RuleGroup' => [ 'type' => 'structure', 'required' => [ 'RuleGroupId', ], 'members' => [ 'RuleGroupId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'MetricName' => [ 'shape' => 'MetricName', ], ], ], 'RuleGroupSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'RuleGroupSummary', ], ], 'RuleGroupSummary' => [ 'type' => 'structure', 'required' => [ 'RuleGroupId', 'Name', ], 'members' => [ 'RuleGroupId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'RuleGroupUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'ActivatedRule', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'ActivatedRule' => [ 'shape' => 'ActivatedRule', ], ], ], 'RuleGroupUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'RuleGroupUpdate', ], 'min' => 1, ], 'RulePriority' => [ 'type' => 'integer', ], 'RuleSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'RuleSummary', ], ], 'RuleSummary' => [ 'type' => 'structure', 'required' => [ 'RuleId', 'Name', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'RuleUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'Predicate', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'Predicate' => [ 'shape' => 'Predicate', ], ], ], 'RuleUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'RuleUpdate', ], ], 'SampleWeight' => [ 'type' => 'long', 'min' => 0, ], 'SampledHTTPRequest' => [ 'type' => 'structure', 'required' => [ 'Request', 'Weight', ], 'members' => [ 'Request' => [ 'shape' => 'HTTPRequest', ], 'Weight' => [ 'shape' => 'SampleWeight', ], 'Timestamp' => [ 'shape' => 'Timestamp', ], 'Action' => [ 'shape' => 'Action', ], 'RuleWithinRuleGroup' => [ 'shape' => 'ResourceId', ], ], ], 'SampledHTTPRequests' => [ 'type' => 'list', 'member' => [ 'shape' => 'SampledHTTPRequest', ], ], 'Size' => [ 'type' => 'long', 'max' => 21474836480, 'min' => 0, ], 'SizeConstraint' => [ 'type' => 'structure', 'required' => [ 'FieldToMatch', 'TextTransformation', 'ComparisonOperator', 'Size', ], 'members' => [ 'FieldToMatch' => [ 'shape' => 'FieldToMatch', ], 'TextTransformation' => [ 'shape' => 'TextTransformation', ], 'ComparisonOperator' => [ 'shape' => 'ComparisonOperator', ], 'Size' => [ 'shape' => 'Size', ], ], ], 'SizeConstraintSet' => [ 'type' => 'structure', 'required' => [ 'SizeConstraintSetId', 'SizeConstraints', ], 'members' => [ 'SizeConstraintSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'SizeConstraints' => [ 'shape' => 'SizeConstraints', ], ], ], 'SizeConstraintSetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'SizeConstraintSetSummary', ], ], 'SizeConstraintSetSummary' => [ 'type' => 'structure', 'required' => [ 'SizeConstraintSetId', 'Name', ], 'members' => [ 'SizeConstraintSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'SizeConstraintSetUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'SizeConstraint', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'SizeConstraint' => [ 'shape' => 'SizeConstraint', ], ], ], 'SizeConstraintSetUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'SizeConstraintSetUpdate', ], 'min' => 1, ], 'SizeConstraints' => [ 'type' => 'list', 'member' => [ 'shape' => 'SizeConstraint', ], ], 'SqlInjectionMatchSet' => [ 'type' => 'structure', 'required' => [ 'SqlInjectionMatchSetId', 'SqlInjectionMatchTuples', ], 'members' => [ 'SqlInjectionMatchSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'SqlInjectionMatchTuples' => [ 'shape' => 'SqlInjectionMatchTuples', ], ], ], 'SqlInjectionMatchSetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'SqlInjectionMatchSetSummary', ], ], 'SqlInjectionMatchSetSummary' => [ 'type' => 'structure', 'required' => [ 'SqlInjectionMatchSetId', 'Name', ], 'members' => [ 'SqlInjectionMatchSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'SqlInjectionMatchSetUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'SqlInjectionMatchTuple', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'SqlInjectionMatchTuple' => [ 'shape' => 'SqlInjectionMatchTuple', ], ], ], 'SqlInjectionMatchSetUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'SqlInjectionMatchSetUpdate', ], 'min' => 1, ], 'SqlInjectionMatchTuple' => [ 'type' => 'structure', 'required' => [ 'FieldToMatch', 'TextTransformation', ], 'members' => [ 'FieldToMatch' => [ 'shape' => 'FieldToMatch', ], 'TextTransformation' => [ 'shape' => 'TextTransformation', ], ], ], 'SqlInjectionMatchTuples' => [ 'type' => 'list', 'member' => [ 'shape' => 'SqlInjectionMatchTuple', ], ], 'SubscribedRuleGroupSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubscribedRuleGroupSummary', ], ], 'SubscribedRuleGroupSummary' => [ 'type' => 'structure', 'required' => [ 'RuleGroupId', 'Name', 'MetricName', ], 'members' => [ 'RuleGroupId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'MetricName' => [ 'shape' => 'MetricName', ], ], ], 'TextTransformation' => [ 'type' => 'string', 'enum' => [ 'NONE', 'COMPRESS_WHITE_SPACE', 'HTML_ENTITY_DECODE', 'LOWERCASE', 'CMD_LINE', 'URL_DECODE', ], ], 'TimeWindow' => [ 'type' => 'structure', 'required' => [ 'StartTime', 'EndTime', ], 'members' => [ 'StartTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], ], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'URIString' => [ 'type' => 'string', ], 'UpdateByteMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'ByteMatchSetId', 'ChangeToken', 'Updates', ], 'members' => [ 'ByteMatchSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], 'Updates' => [ 'shape' => 'ByteMatchSetUpdates', ], ], ], 'UpdateByteMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateGeoMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'GeoMatchSetId', 'ChangeToken', 'Updates', ], 'members' => [ 'GeoMatchSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], 'Updates' => [ 'shape' => 'GeoMatchSetUpdates', ], ], ], 'UpdateGeoMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateIPSetRequest' => [ 'type' => 'structure', 'required' => [ 'IPSetId', 'ChangeToken', 'Updates', ], 'members' => [ 'IPSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], 'Updates' => [ 'shape' => 'IPSetUpdates', ], ], ], 'UpdateIPSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateRateBasedRuleRequest' => [ 'type' => 'structure', 'required' => [ 'RuleId', 'ChangeToken', 'Updates', 'RateLimit', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], 'Updates' => [ 'shape' => 'RuleUpdates', ], 'RateLimit' => [ 'shape' => 'RateLimit', ], ], ], 'UpdateRateBasedRuleResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateRegexMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'RegexMatchSetId', 'Updates', 'ChangeToken', ], 'members' => [ 'RegexMatchSetId' => [ 'shape' => 'ResourceId', ], 'Updates' => [ 'shape' => 'RegexMatchSetUpdates', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateRegexMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateRegexPatternSetRequest' => [ 'type' => 'structure', 'required' => [ 'RegexPatternSetId', 'Updates', 'ChangeToken', ], 'members' => [ 'RegexPatternSetId' => [ 'shape' => 'ResourceId', ], 'Updates' => [ 'shape' => 'RegexPatternSetUpdates', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateRegexPatternSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateRuleGroupRequest' => [ 'type' => 'structure', 'required' => [ 'RuleGroupId', 'Updates', 'ChangeToken', ], 'members' => [ 'RuleGroupId' => [ 'shape' => 'ResourceId', ], 'Updates' => [ 'shape' => 'RuleGroupUpdates', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateRuleGroupResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateRuleRequest' => [ 'type' => 'structure', 'required' => [ 'RuleId', 'ChangeToken', 'Updates', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], 'Updates' => [ 'shape' => 'RuleUpdates', ], ], ], 'UpdateRuleResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateSizeConstraintSetRequest' => [ 'type' => 'structure', 'required' => [ 'SizeConstraintSetId', 'ChangeToken', 'Updates', ], 'members' => [ 'SizeConstraintSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], 'Updates' => [ 'shape' => 'SizeConstraintSetUpdates', ], ], ], 'UpdateSizeConstraintSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateSqlInjectionMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'SqlInjectionMatchSetId', 'ChangeToken', 'Updates', ], 'members' => [ 'SqlInjectionMatchSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], 'Updates' => [ 'shape' => 'SqlInjectionMatchSetUpdates', ], ], ], 'UpdateSqlInjectionMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateWebACLRequest' => [ 'type' => 'structure', 'required' => [ 'WebACLId', 'ChangeToken', ], 'members' => [ 'WebACLId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], 'Updates' => [ 'shape' => 'WebACLUpdates', ], 'DefaultAction' => [ 'shape' => 'WafAction', ], ], ], 'UpdateWebACLResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateXssMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'XssMatchSetId', 'ChangeToken', 'Updates', ], 'members' => [ 'XssMatchSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], 'Updates' => [ 'shape' => 'XssMatchSetUpdates', ], ], ], 'UpdateXssMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'WAFDisallowedNameException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFInternalErrorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, 'fault' => true, ], 'WAFInvalidAccountException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'WAFInvalidOperationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFInvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'field' => [ 'shape' => 'ParameterExceptionField', ], 'parameter' => [ 'shape' => 'ParameterExceptionParameter', ], 'reason' => [ 'shape' => 'ParameterExceptionReason', ], ], 'exception' => true, ], 'WAFInvalidPermissionPolicyException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFInvalidRegexPatternException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFLimitsExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFNonEmptyEntityException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFNonexistentContainerException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFNonexistentItemException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFReferencedItemException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFServiceLinkedRoleErrorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFStaleDataException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFSubscriptionNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFUnavailableEntityException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WafAction' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'WafActionType', ], ], ], 'WafActionType' => [ 'type' => 'string', 'enum' => [ 'BLOCK', 'ALLOW', 'COUNT', ], ], 'WafOverrideAction' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'WafOverrideActionType', ], ], ], 'WafOverrideActionType' => [ 'type' => 'string', 'enum' => [ 'NONE', 'COUNT', ], ], 'WafRuleType' => [ 'type' => 'string', 'enum' => [ 'REGULAR', 'RATE_BASED', 'GROUP', ], ], 'WebACL' => [ 'type' => 'structure', 'required' => [ 'WebACLId', 'DefaultAction', 'Rules', ], 'members' => [ 'WebACLId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'DefaultAction' => [ 'shape' => 'WafAction', ], 'Rules' => [ 'shape' => 'ActivatedRules', ], 'WebACLArn' => [ 'shape' => 'ResourceArn', ], ], ], 'WebACLSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'WebACLSummary', ], ], 'WebACLSummary' => [ 'type' => 'structure', 'required' => [ 'WebACLId', 'Name', ], 'members' => [ 'WebACLId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'WebACLUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'ActivatedRule', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'ActivatedRule' => [ 'shape' => 'ActivatedRule', ], ], ], 'WebACLUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'WebACLUpdate', ], ], 'XssMatchSet' => [ 'type' => 'structure', 'required' => [ 'XssMatchSetId', 'XssMatchTuples', ], 'members' => [ 'XssMatchSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'XssMatchTuples' => [ 'shape' => 'XssMatchTuples', ], ], ], 'XssMatchSetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'XssMatchSetSummary', ], ], 'XssMatchSetSummary' => [ 'type' => 'structure', 'required' => [ 'XssMatchSetId', 'Name', ], 'members' => [ 'XssMatchSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'XssMatchSetUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'XssMatchTuple', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'XssMatchTuple' => [ 'shape' => 'XssMatchTuple', ], ], ], 'XssMatchSetUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'XssMatchSetUpdate', ], 'min' => 1, ], 'XssMatchTuple' => [ 'type' => 'structure', 'required' => [ 'FieldToMatch', 'TextTransformation', ], 'members' => [ 'FieldToMatch' => [ 'shape' => 'FieldToMatch', ], 'TextTransformation' => [ 'shape' => 'TextTransformation', ], ], ], 'XssMatchTuples' => [ 'type' => 'list', 'member' => [ 'shape' => 'XssMatchTuple', ], ], 'errorMessage' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/waf-regional/2016-11-28/paginators-1.json.php b/lib/aws/Aws/data/waf-regional/2016-11-28/paginators-1.json.php new file mode 100644 index 0000000..2816c25 --- /dev/null +++ b/lib/aws/Aws/data/waf-regional/2016-11-28/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/waf-regional/2016-11-28/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/waf-regional/2016-11-28/smoke.json.php b/lib/aws/Aws/data/waf-regional/2016-11-28/smoke.json.php new file mode 100644 index 0000000..c07df68 --- /dev/null +++ b/lib/aws/Aws/data/waf-regional/2016-11-28/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/waf-regional/2016-11-28/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-east-1', 'testCases' => [ [ 'operationName' => 'ListRules', 'input' => [ 'Limit' => 20, ], 'errorExpectedFromService' => false, ], [ 'operationName' => 'CreateSqlInjectionMatchSet', 'input' => [ 'Name' => 'fake_name', 'ChangeToken' => 'fake_token', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/waf/2015-08-24/api-2.json.php b/lib/aws/Aws/data/waf/2015-08-24/api-2.json.php new file mode 100644 index 0000000..dcd6e06 --- /dev/null +++ b/lib/aws/Aws/data/waf/2015-08-24/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/waf/2015-08-24/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-08-24', 'endpointPrefix' => 'waf', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceAbbreviation' => 'WAF', 'serviceFullName' => 'AWS WAF', 'serviceId' => 'WAF', 'signatureVersion' => 'v4', 'targetPrefix' => 'AWSWAF_20150824', 'uid' => 'waf-2015-08-24', ], 'operations' => [ 'CreateByteMatchSet' => [ 'name' => 'CreateByteMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateByteMatchSetRequest', ], 'output' => [ 'shape' => 'CreateByteMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateGeoMatchSet' => [ 'name' => 'CreateGeoMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateGeoMatchSetRequest', ], 'output' => [ 'shape' => 'CreateGeoMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateIPSet' => [ 'name' => 'CreateIPSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIPSetRequest', ], 'output' => [ 'shape' => 'CreateIPSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateRateBasedRule' => [ 'name' => 'CreateRateBasedRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRateBasedRuleRequest', ], 'output' => [ 'shape' => 'CreateRateBasedRuleResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateRegexMatchSet' => [ 'name' => 'CreateRegexMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRegexMatchSetRequest', ], 'output' => [ 'shape' => 'CreateRegexMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateRegexPatternSet' => [ 'name' => 'CreateRegexPatternSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRegexPatternSetRequest', ], 'output' => [ 'shape' => 'CreateRegexPatternSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateRule' => [ 'name' => 'CreateRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRuleRequest', ], 'output' => [ 'shape' => 'CreateRuleResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateRuleGroup' => [ 'name' => 'CreateRuleGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRuleGroupRequest', ], 'output' => [ 'shape' => 'CreateRuleGroupResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateSizeConstraintSet' => [ 'name' => 'CreateSizeConstraintSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSizeConstraintSetRequest', ], 'output' => [ 'shape' => 'CreateSizeConstraintSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateSqlInjectionMatchSet' => [ 'name' => 'CreateSqlInjectionMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSqlInjectionMatchSetRequest', ], 'output' => [ 'shape' => 'CreateSqlInjectionMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateWebACL' => [ 'name' => 'CreateWebACL', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateWebACLRequest', ], 'output' => [ 'shape' => 'CreateWebACLResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'CreateXssMatchSet' => [ 'name' => 'CreateXssMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateXssMatchSetRequest', ], 'output' => [ 'shape' => 'CreateXssMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'DeleteByteMatchSet' => [ 'name' => 'DeleteByteMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteByteMatchSetRequest', ], 'output' => [ 'shape' => 'DeleteByteMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DeleteGeoMatchSet' => [ 'name' => 'DeleteGeoMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteGeoMatchSetRequest', ], 'output' => [ 'shape' => 'DeleteGeoMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DeleteIPSet' => [ 'name' => 'DeleteIPSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIPSetRequest', ], 'output' => [ 'shape' => 'DeleteIPSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DeleteLoggingConfiguration' => [ 'name' => 'DeleteLoggingConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLoggingConfigurationRequest', ], 'output' => [ 'shape' => 'DeleteLoggingConfigurationResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFStaleDataException', ], ], ], 'DeletePermissionPolicy' => [ 'name' => 'DeletePermissionPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePermissionPolicyRequest', ], 'output' => [ 'shape' => 'DeletePermissionPolicyResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'DeleteRateBasedRule' => [ 'name' => 'DeleteRateBasedRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRateBasedRuleRequest', ], 'output' => [ 'shape' => 'DeleteRateBasedRuleResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DeleteRegexMatchSet' => [ 'name' => 'DeleteRegexMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRegexMatchSetRequest', ], 'output' => [ 'shape' => 'DeleteRegexMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DeleteRegexPatternSet' => [ 'name' => 'DeleteRegexPatternSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRegexPatternSetRequest', ], 'output' => [ 'shape' => 'DeleteRegexPatternSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DeleteRule' => [ 'name' => 'DeleteRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRuleRequest', ], 'output' => [ 'shape' => 'DeleteRuleResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DeleteRuleGroup' => [ 'name' => 'DeleteRuleGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRuleGroupRequest', ], 'output' => [ 'shape' => 'DeleteRuleGroupResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], [ 'shape' => 'WAFInvalidOperationException', ], ], ], 'DeleteSizeConstraintSet' => [ 'name' => 'DeleteSizeConstraintSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSizeConstraintSetRequest', ], 'output' => [ 'shape' => 'DeleteSizeConstraintSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DeleteSqlInjectionMatchSet' => [ 'name' => 'DeleteSqlInjectionMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSqlInjectionMatchSetRequest', ], 'output' => [ 'shape' => 'DeleteSqlInjectionMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DeleteWebACL' => [ 'name' => 'DeleteWebACL', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteWebACLRequest', ], 'output' => [ 'shape' => 'DeleteWebACLResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'DeleteXssMatchSet' => [ 'name' => 'DeleteXssMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteXssMatchSetRequest', ], 'output' => [ 'shape' => 'DeleteXssMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFNonEmptyEntityException', ], ], ], 'GetByteMatchSet' => [ 'name' => 'GetByteMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetByteMatchSetRequest', ], 'output' => [ 'shape' => 'GetByteMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetChangeToken' => [ 'name' => 'GetChangeToken', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetChangeTokenRequest', ], 'output' => [ 'shape' => 'GetChangeTokenResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], ], ], 'GetChangeTokenStatus' => [ 'name' => 'GetChangeTokenStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetChangeTokenStatusRequest', ], 'output' => [ 'shape' => 'GetChangeTokenStatusResponse', ], 'errors' => [ [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFInternalErrorException', ], ], ], 'GetGeoMatchSet' => [ 'name' => 'GetGeoMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetGeoMatchSetRequest', ], 'output' => [ 'shape' => 'GetGeoMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetIPSet' => [ 'name' => 'GetIPSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIPSetRequest', ], 'output' => [ 'shape' => 'GetIPSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetLoggingConfiguration' => [ 'name' => 'GetLoggingConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetLoggingConfigurationRequest', ], 'output' => [ 'shape' => 'GetLoggingConfigurationResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetPermissionPolicy' => [ 'name' => 'GetPermissionPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPermissionPolicyRequest', ], 'output' => [ 'shape' => 'GetPermissionPolicyResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetRateBasedRule' => [ 'name' => 'GetRateBasedRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRateBasedRuleRequest', ], 'output' => [ 'shape' => 'GetRateBasedRuleResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetRateBasedRuleManagedKeys' => [ 'name' => 'GetRateBasedRuleManagedKeys', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRateBasedRuleManagedKeysRequest', ], 'output' => [ 'shape' => 'GetRateBasedRuleManagedKeysResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFInvalidParameterException', ], ], ], 'GetRegexMatchSet' => [ 'name' => 'GetRegexMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRegexMatchSetRequest', ], 'output' => [ 'shape' => 'GetRegexMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetRegexPatternSet' => [ 'name' => 'GetRegexPatternSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRegexPatternSetRequest', ], 'output' => [ 'shape' => 'GetRegexPatternSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetRule' => [ 'name' => 'GetRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRuleRequest', ], 'output' => [ 'shape' => 'GetRuleResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetRuleGroup' => [ 'name' => 'GetRuleGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRuleGroupRequest', ], 'output' => [ 'shape' => 'GetRuleGroupResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetSampledRequests' => [ 'name' => 'GetSampledRequests', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSampledRequestsRequest', ], 'output' => [ 'shape' => 'GetSampledRequestsResponse', ], 'errors' => [ [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFInternalErrorException', ], ], ], 'GetSizeConstraintSet' => [ 'name' => 'GetSizeConstraintSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSizeConstraintSetRequest', ], 'output' => [ 'shape' => 'GetSizeConstraintSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetSqlInjectionMatchSet' => [ 'name' => 'GetSqlInjectionMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSqlInjectionMatchSetRequest', ], 'output' => [ 'shape' => 'GetSqlInjectionMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetWebACL' => [ 'name' => 'GetWebACL', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetWebACLRequest', ], 'output' => [ 'shape' => 'GetWebACLResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'GetXssMatchSet' => [ 'name' => 'GetXssMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetXssMatchSetRequest', ], 'output' => [ 'shape' => 'GetXssMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFNonexistentItemException', ], ], ], 'ListActivatedRulesInRuleGroup' => [ 'name' => 'ListActivatedRulesInRuleGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListActivatedRulesInRuleGroupRequest', ], 'output' => [ 'shape' => 'ListActivatedRulesInRuleGroupResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFInvalidParameterException', ], ], ], 'ListByteMatchSets' => [ 'name' => 'ListByteMatchSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListByteMatchSetsRequest', ], 'output' => [ 'shape' => 'ListByteMatchSetsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'ListGeoMatchSets' => [ 'name' => 'ListGeoMatchSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListGeoMatchSetsRequest', ], 'output' => [ 'shape' => 'ListGeoMatchSetsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'ListIPSets' => [ 'name' => 'ListIPSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListIPSetsRequest', ], 'output' => [ 'shape' => 'ListIPSetsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'ListLoggingConfigurations' => [ 'name' => 'ListLoggingConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListLoggingConfigurationsRequest', ], 'output' => [ 'shape' => 'ListLoggingConfigurationsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFInvalidParameterException', ], ], ], 'ListRateBasedRules' => [ 'name' => 'ListRateBasedRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRateBasedRulesRequest', ], 'output' => [ 'shape' => 'ListRateBasedRulesResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'ListRegexMatchSets' => [ 'name' => 'ListRegexMatchSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRegexMatchSetsRequest', ], 'output' => [ 'shape' => 'ListRegexMatchSetsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'ListRegexPatternSets' => [ 'name' => 'ListRegexPatternSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRegexPatternSetsRequest', ], 'output' => [ 'shape' => 'ListRegexPatternSetsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'ListRuleGroups' => [ 'name' => 'ListRuleGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRuleGroupsRequest', ], 'output' => [ 'shape' => 'ListRuleGroupsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], ], ], 'ListRules' => [ 'name' => 'ListRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRulesRequest', ], 'output' => [ 'shape' => 'ListRulesResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'ListSizeConstraintSets' => [ 'name' => 'ListSizeConstraintSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSizeConstraintSetsRequest', ], 'output' => [ 'shape' => 'ListSizeConstraintSetsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'ListSqlInjectionMatchSets' => [ 'name' => 'ListSqlInjectionMatchSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSqlInjectionMatchSetsRequest', ], 'output' => [ 'shape' => 'ListSqlInjectionMatchSetsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'ListSubscribedRuleGroups' => [ 'name' => 'ListSubscribedRuleGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSubscribedRuleGroupsRequest', ], 'output' => [ 'shape' => 'ListSubscribedRuleGroupsResponse', ], 'errors' => [ [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFInternalErrorException', ], ], ], 'ListWebACLs' => [ 'name' => 'ListWebACLs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListWebACLsRequest', ], 'output' => [ 'shape' => 'ListWebACLsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'ListXssMatchSets' => [ 'name' => 'ListXssMatchSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListXssMatchSetsRequest', ], 'output' => [ 'shape' => 'ListXssMatchSetsResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'PutLoggingConfiguration' => [ 'name' => 'PutLoggingConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutLoggingConfigurationRequest', ], 'output' => [ 'shape' => 'PutLoggingConfigurationResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFServiceLinkedRoleErrorException', ], ], ], 'PutPermissionPolicy' => [ 'name' => 'PutPermissionPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutPermissionPolicyRequest', ], 'output' => [ 'shape' => 'PutPermissionPolicyResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFInvalidPermissionPolicyException', ], ], ], 'UpdateByteMatchSet' => [ 'name' => 'UpdateByteMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateByteMatchSetRequest', ], 'output' => [ 'shape' => 'UpdateByteMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'UpdateGeoMatchSet' => [ 'name' => 'UpdateGeoMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateGeoMatchSetRequest', ], 'output' => [ 'shape' => 'UpdateGeoMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'UpdateIPSet' => [ 'name' => 'UpdateIPSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateIPSetRequest', ], 'output' => [ 'shape' => 'UpdateIPSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'UpdateRateBasedRule' => [ 'name' => 'UpdateRateBasedRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRateBasedRuleRequest', ], 'output' => [ 'shape' => 'UpdateRateBasedRuleResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'UpdateRegexMatchSet' => [ 'name' => 'UpdateRegexMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRegexMatchSetRequest', ], 'output' => [ 'shape' => 'UpdateRegexMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFDisallowedNameException', ], [ 'shape' => 'WAFLimitsExceededException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidAccountException', ], ], ], 'UpdateRegexPatternSet' => [ 'name' => 'UpdateRegexPatternSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRegexPatternSetRequest', ], 'output' => [ 'shape' => 'UpdateRegexPatternSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFLimitsExceededException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidRegexPatternException', ], ], ], 'UpdateRule' => [ 'name' => 'UpdateRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRuleRequest', ], 'output' => [ 'shape' => 'UpdateRuleResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'UpdateRuleGroup' => [ 'name' => 'UpdateRuleGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRuleGroupRequest', ], 'output' => [ 'shape' => 'UpdateRuleGroupResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFLimitsExceededException', ], [ 'shape' => 'WAFInvalidParameterException', ], ], ], 'UpdateSizeConstraintSet' => [ 'name' => 'UpdateSizeConstraintSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSizeConstraintSetRequest', ], 'output' => [ 'shape' => 'UpdateSizeConstraintSetResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'UpdateSqlInjectionMatchSet' => [ 'name' => 'UpdateSqlInjectionMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSqlInjectionMatchSetRequest', ], 'output' => [ 'shape' => 'UpdateSqlInjectionMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], 'UpdateWebACL' => [ 'name' => 'UpdateWebACL', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateWebACLRequest', ], 'output' => [ 'shape' => 'UpdateWebACLResponse', ], 'errors' => [ [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFReferencedItemException', ], [ 'shape' => 'WAFLimitsExceededException', ], [ 'shape' => 'WAFSubscriptionNotFoundException', ], ], ], 'UpdateXssMatchSet' => [ 'name' => 'UpdateXssMatchSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateXssMatchSetRequest', ], 'output' => [ 'shape' => 'UpdateXssMatchSetResponse', ], 'errors' => [ [ 'shape' => 'WAFInternalErrorException', ], [ 'shape' => 'WAFInvalidAccountException', ], [ 'shape' => 'WAFInvalidOperationException', ], [ 'shape' => 'WAFInvalidParameterException', ], [ 'shape' => 'WAFNonexistentContainerException', ], [ 'shape' => 'WAFNonexistentItemException', ], [ 'shape' => 'WAFStaleDataException', ], [ 'shape' => 'WAFLimitsExceededException', ], ], ], ], 'shapes' => [ 'Action' => [ 'type' => 'string', ], 'ActivatedRule' => [ 'type' => 'structure', 'required' => [ 'Priority', 'RuleId', ], 'members' => [ 'Priority' => [ 'shape' => 'RulePriority', ], 'RuleId' => [ 'shape' => 'ResourceId', ], 'Action' => [ 'shape' => 'WafAction', ], 'OverrideAction' => [ 'shape' => 'WafOverrideAction', ], 'Type' => [ 'shape' => 'WafRuleType', ], 'ExcludedRules' => [ 'shape' => 'ExcludedRules', ], ], ], 'ActivatedRules' => [ 'type' => 'list', 'member' => [ 'shape' => 'ActivatedRule', ], ], 'ByteMatchSet' => [ 'type' => 'structure', 'required' => [ 'ByteMatchSetId', 'ByteMatchTuples', ], 'members' => [ 'ByteMatchSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'ByteMatchTuples' => [ 'shape' => 'ByteMatchTuples', ], ], ], 'ByteMatchSetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ByteMatchSetSummary', ], ], 'ByteMatchSetSummary' => [ 'type' => 'structure', 'required' => [ 'ByteMatchSetId', 'Name', ], 'members' => [ 'ByteMatchSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'ByteMatchSetUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'ByteMatchTuple', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'ByteMatchTuple' => [ 'shape' => 'ByteMatchTuple', ], ], ], 'ByteMatchSetUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'ByteMatchSetUpdate', ], 'min' => 1, ], 'ByteMatchTargetString' => [ 'type' => 'blob', ], 'ByteMatchTuple' => [ 'type' => 'structure', 'required' => [ 'FieldToMatch', 'TargetString', 'TextTransformation', 'PositionalConstraint', ], 'members' => [ 'FieldToMatch' => [ 'shape' => 'FieldToMatch', ], 'TargetString' => [ 'shape' => 'ByteMatchTargetString', ], 'TextTransformation' => [ 'shape' => 'TextTransformation', ], 'PositionalConstraint' => [ 'shape' => 'PositionalConstraint', ], ], ], 'ByteMatchTuples' => [ 'type' => 'list', 'member' => [ 'shape' => 'ByteMatchTuple', ], ], 'ChangeAction' => [ 'type' => 'string', 'enum' => [ 'INSERT', 'DELETE', ], ], 'ChangeToken' => [ 'type' => 'string', 'min' => 1, ], 'ChangeTokenStatus' => [ 'type' => 'string', 'enum' => [ 'PROVISIONED', 'PENDING', 'INSYNC', ], ], 'ComparisonOperator' => [ 'type' => 'string', 'enum' => [ 'EQ', 'NE', 'LE', 'LT', 'GE', 'GT', ], ], 'Country' => [ 'type' => 'string', ], 'CreateByteMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateByteMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ByteMatchSet' => [ 'shape' => 'ByteMatchSet', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateGeoMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateGeoMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'GeoMatchSet' => [ 'shape' => 'GeoMatchSet', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateIPSetRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateIPSetResponse' => [ 'type' => 'structure', 'members' => [ 'IPSet' => [ 'shape' => 'IPSet', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateRateBasedRuleRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'MetricName', 'RateKey', 'RateLimit', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'RateKey' => [ 'shape' => 'RateKey', ], 'RateLimit' => [ 'shape' => 'RateLimit', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateRateBasedRuleResponse' => [ 'type' => 'structure', 'members' => [ 'Rule' => [ 'shape' => 'RateBasedRule', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateRegexMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateRegexMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'RegexMatchSet' => [ 'shape' => 'RegexMatchSet', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateRegexPatternSetRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateRegexPatternSetResponse' => [ 'type' => 'structure', 'members' => [ 'RegexPatternSet' => [ 'shape' => 'RegexPatternSet', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateRuleGroupRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'MetricName', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateRuleGroupResponse' => [ 'type' => 'structure', 'members' => [ 'RuleGroup' => [ 'shape' => 'RuleGroup', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateRuleRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'MetricName', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateRuleResponse' => [ 'type' => 'structure', 'members' => [ 'Rule' => [ 'shape' => 'Rule', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateSizeConstraintSetRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateSizeConstraintSetResponse' => [ 'type' => 'structure', 'members' => [ 'SizeConstraintSet' => [ 'shape' => 'SizeConstraintSet', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateSqlInjectionMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateSqlInjectionMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'SqlInjectionMatchSet' => [ 'shape' => 'SqlInjectionMatchSet', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateWebACLRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'MetricName', 'DefaultAction', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'DefaultAction' => [ 'shape' => 'WafAction', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateWebACLResponse' => [ 'type' => 'structure', 'members' => [ 'WebACL' => [ 'shape' => 'WebACL', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateXssMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'ChangeToken', ], 'members' => [ 'Name' => [ 'shape' => 'ResourceName', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'CreateXssMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'XssMatchSet' => [ 'shape' => 'XssMatchSet', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteByteMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'ByteMatchSetId', 'ChangeToken', ], 'members' => [ 'ByteMatchSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteByteMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteGeoMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'GeoMatchSetId', 'ChangeToken', ], 'members' => [ 'GeoMatchSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteGeoMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteIPSetRequest' => [ 'type' => 'structure', 'required' => [ 'IPSetId', 'ChangeToken', ], 'members' => [ 'IPSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteIPSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteLoggingConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], ], ], 'DeleteLoggingConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeletePermissionPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], ], ], 'DeletePermissionPolicyResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteRateBasedRuleRequest' => [ 'type' => 'structure', 'required' => [ 'RuleId', 'ChangeToken', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteRateBasedRuleResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteRegexMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'RegexMatchSetId', 'ChangeToken', ], 'members' => [ 'RegexMatchSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteRegexMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteRegexPatternSetRequest' => [ 'type' => 'structure', 'required' => [ 'RegexPatternSetId', 'ChangeToken', ], 'members' => [ 'RegexPatternSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteRegexPatternSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteRuleGroupRequest' => [ 'type' => 'structure', 'required' => [ 'RuleGroupId', 'ChangeToken', ], 'members' => [ 'RuleGroupId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteRuleGroupResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteRuleRequest' => [ 'type' => 'structure', 'required' => [ 'RuleId', 'ChangeToken', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteRuleResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteSizeConstraintSetRequest' => [ 'type' => 'structure', 'required' => [ 'SizeConstraintSetId', 'ChangeToken', ], 'members' => [ 'SizeConstraintSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteSizeConstraintSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteSqlInjectionMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'SqlInjectionMatchSetId', 'ChangeToken', ], 'members' => [ 'SqlInjectionMatchSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteSqlInjectionMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteWebACLRequest' => [ 'type' => 'structure', 'required' => [ 'WebACLId', 'ChangeToken', ], 'members' => [ 'WebACLId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteWebACLResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteXssMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'XssMatchSetId', 'ChangeToken', ], 'members' => [ 'XssMatchSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'DeleteXssMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'ExcludedRule' => [ 'type' => 'structure', 'required' => [ 'RuleId', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], ], ], 'ExcludedRules' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExcludedRule', ], ], 'FieldToMatch' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'MatchFieldType', ], 'Data' => [ 'shape' => 'MatchFieldData', ], ], ], 'GeoMatchConstraint' => [ 'type' => 'structure', 'required' => [ 'Type', 'Value', ], 'members' => [ 'Type' => [ 'shape' => 'GeoMatchConstraintType', ], 'Value' => [ 'shape' => 'GeoMatchConstraintValue', ], ], ], 'GeoMatchConstraintType' => [ 'type' => 'string', 'enum' => [ 'Country', ], ], 'GeoMatchConstraintValue' => [ 'type' => 'string', 'enum' => [ 'AF', 'AX', 'AL', 'DZ', 'AS', 'AD', 'AO', 'AI', 'AQ', 'AG', 'AR', 'AM', 'AW', 'AU', 'AT', 'AZ', 'BS', 'BH', 'BD', 'BB', 'BY', 'BE', 'BZ', 'BJ', 'BM', 'BT', 'BO', 'BQ', 'BA', 'BW', 'BV', 'BR', 'IO', 'BN', 'BG', 'BF', 'BI', 'KH', 'CM', 'CA', 'CV', 'KY', 'CF', 'TD', 'CL', 'CN', 'CX', 'CC', 'CO', 'KM', 'CG', 'CD', 'CK', 'CR', 'CI', 'HR', 'CU', 'CW', 'CY', 'CZ', 'DK', 'DJ', 'DM', 'DO', 'EC', 'EG', 'SV', 'GQ', 'ER', 'EE', 'ET', 'FK', 'FO', 'FJ', 'FI', 'FR', 'GF', 'PF', 'TF', 'GA', 'GM', 'GE', 'DE', 'GH', 'GI', 'GR', 'GL', 'GD', 'GP', 'GU', 'GT', 'GG', 'GN', 'GW', 'GY', 'HT', 'HM', 'VA', 'HN', 'HK', 'HU', 'IS', 'IN', 'ID', 'IR', 'IQ', 'IE', 'IM', 'IL', 'IT', 'JM', 'JP', 'JE', 'JO', 'KZ', 'KE', 'KI', 'KP', 'KR', 'KW', 'KG', 'LA', 'LV', 'LB', 'LS', 'LR', 'LY', 'LI', 'LT', 'LU', 'MO', 'MK', 'MG', 'MW', 'MY', 'MV', 'ML', 'MT', 'MH', 'MQ', 'MR', 'MU', 'YT', 'MX', 'FM', 'MD', 'MC', 'MN', 'ME', 'MS', 'MA', 'MZ', 'MM', 'NA', 'NR', 'NP', 'NL', 'NC', 'NZ', 'NI', 'NE', 'NG', 'NU', 'NF', 'MP', 'NO', 'OM', 'PK', 'PW', 'PS', 'PA', 'PG', 'PY', 'PE', 'PH', 'PN', 'PL', 'PT', 'PR', 'QA', 'RE', 'RO', 'RU', 'RW', 'BL', 'SH', 'KN', 'LC', 'MF', 'PM', 'VC', 'WS', 'SM', 'ST', 'SA', 'SN', 'RS', 'SC', 'SL', 'SG', 'SX', 'SK', 'SI', 'SB', 'SO', 'ZA', 'GS', 'SS', 'ES', 'LK', 'SD', 'SR', 'SJ', 'SZ', 'SE', 'CH', 'SY', 'TW', 'TJ', 'TZ', 'TH', 'TL', 'TG', 'TK', 'TO', 'TT', 'TN', 'TR', 'TM', 'TC', 'TV', 'UG', 'UA', 'AE', 'GB', 'US', 'UM', 'UY', 'UZ', 'VU', 'VE', 'VN', 'VG', 'VI', 'WF', 'EH', 'YE', 'ZM', 'ZW', ], ], 'GeoMatchConstraints' => [ 'type' => 'list', 'member' => [ 'shape' => 'GeoMatchConstraint', ], ], 'GeoMatchSet' => [ 'type' => 'structure', 'required' => [ 'GeoMatchSetId', 'GeoMatchConstraints', ], 'members' => [ 'GeoMatchSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'GeoMatchConstraints' => [ 'shape' => 'GeoMatchConstraints', ], ], ], 'GeoMatchSetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'GeoMatchSetSummary', ], ], 'GeoMatchSetSummary' => [ 'type' => 'structure', 'required' => [ 'GeoMatchSetId', 'Name', ], 'members' => [ 'GeoMatchSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'GeoMatchSetUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'GeoMatchConstraint', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'GeoMatchConstraint' => [ 'shape' => 'GeoMatchConstraint', ], ], ], 'GeoMatchSetUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'GeoMatchSetUpdate', ], 'min' => 1, ], 'GetByteMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'ByteMatchSetId', ], 'members' => [ 'ByteMatchSetId' => [ 'shape' => 'ResourceId', ], ], ], 'GetByteMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ByteMatchSet' => [ 'shape' => 'ByteMatchSet', ], ], ], 'GetChangeTokenRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetChangeTokenResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'GetChangeTokenStatusRequest' => [ 'type' => 'structure', 'required' => [ 'ChangeToken', ], 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'GetChangeTokenStatusResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeTokenStatus' => [ 'shape' => 'ChangeTokenStatus', ], ], ], 'GetGeoMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'GeoMatchSetId', ], 'members' => [ 'GeoMatchSetId' => [ 'shape' => 'ResourceId', ], ], ], 'GetGeoMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'GeoMatchSet' => [ 'shape' => 'GeoMatchSet', ], ], ], 'GetIPSetRequest' => [ 'type' => 'structure', 'required' => [ 'IPSetId', ], 'members' => [ 'IPSetId' => [ 'shape' => 'ResourceId', ], ], ], 'GetIPSetResponse' => [ 'type' => 'structure', 'members' => [ 'IPSet' => [ 'shape' => 'IPSet', ], ], ], 'GetLoggingConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], ], ], 'GetLoggingConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'LoggingConfiguration' => [ 'shape' => 'LoggingConfiguration', ], ], ], 'GetPermissionPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], ], ], 'GetPermissionPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'Policy' => [ 'shape' => 'PolicyString', ], ], ], 'GetRateBasedRuleManagedKeysRequest' => [ 'type' => 'structure', 'required' => [ 'RuleId', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], 'NextMarker' => [ 'shape' => 'NextMarker', ], ], ], 'GetRateBasedRuleManagedKeysResponse' => [ 'type' => 'structure', 'members' => [ 'ManagedKeys' => [ 'shape' => 'ManagedKeys', ], 'NextMarker' => [ 'shape' => 'NextMarker', ], ], ], 'GetRateBasedRuleRequest' => [ 'type' => 'structure', 'required' => [ 'RuleId', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], ], ], 'GetRateBasedRuleResponse' => [ 'type' => 'structure', 'members' => [ 'Rule' => [ 'shape' => 'RateBasedRule', ], ], ], 'GetRegexMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'RegexMatchSetId', ], 'members' => [ 'RegexMatchSetId' => [ 'shape' => 'ResourceId', ], ], ], 'GetRegexMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'RegexMatchSet' => [ 'shape' => 'RegexMatchSet', ], ], ], 'GetRegexPatternSetRequest' => [ 'type' => 'structure', 'required' => [ 'RegexPatternSetId', ], 'members' => [ 'RegexPatternSetId' => [ 'shape' => 'ResourceId', ], ], ], 'GetRegexPatternSetResponse' => [ 'type' => 'structure', 'members' => [ 'RegexPatternSet' => [ 'shape' => 'RegexPatternSet', ], ], ], 'GetRuleGroupRequest' => [ 'type' => 'structure', 'required' => [ 'RuleGroupId', ], 'members' => [ 'RuleGroupId' => [ 'shape' => 'ResourceId', ], ], ], 'GetRuleGroupResponse' => [ 'type' => 'structure', 'members' => [ 'RuleGroup' => [ 'shape' => 'RuleGroup', ], ], ], 'GetRuleRequest' => [ 'type' => 'structure', 'required' => [ 'RuleId', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], ], ], 'GetRuleResponse' => [ 'type' => 'structure', 'members' => [ 'Rule' => [ 'shape' => 'Rule', ], ], ], 'GetSampledRequestsMaxItems' => [ 'type' => 'long', 'max' => 500, 'min' => 1, ], 'GetSampledRequestsRequest' => [ 'type' => 'structure', 'required' => [ 'WebAclId', 'RuleId', 'TimeWindow', 'MaxItems', ], 'members' => [ 'WebAclId' => [ 'shape' => 'ResourceId', ], 'RuleId' => [ 'shape' => 'ResourceId', ], 'TimeWindow' => [ 'shape' => 'TimeWindow', ], 'MaxItems' => [ 'shape' => 'GetSampledRequestsMaxItems', ], ], ], 'GetSampledRequestsResponse' => [ 'type' => 'structure', 'members' => [ 'SampledRequests' => [ 'shape' => 'SampledHTTPRequests', ], 'PopulationSize' => [ 'shape' => 'PopulationSize', ], 'TimeWindow' => [ 'shape' => 'TimeWindow', ], ], ], 'GetSizeConstraintSetRequest' => [ 'type' => 'structure', 'required' => [ 'SizeConstraintSetId', ], 'members' => [ 'SizeConstraintSetId' => [ 'shape' => 'ResourceId', ], ], ], 'GetSizeConstraintSetResponse' => [ 'type' => 'structure', 'members' => [ 'SizeConstraintSet' => [ 'shape' => 'SizeConstraintSet', ], ], ], 'GetSqlInjectionMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'SqlInjectionMatchSetId', ], 'members' => [ 'SqlInjectionMatchSetId' => [ 'shape' => 'ResourceId', ], ], ], 'GetSqlInjectionMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'SqlInjectionMatchSet' => [ 'shape' => 'SqlInjectionMatchSet', ], ], ], 'GetWebACLRequest' => [ 'type' => 'structure', 'required' => [ 'WebACLId', ], 'members' => [ 'WebACLId' => [ 'shape' => 'ResourceId', ], ], ], 'GetWebACLResponse' => [ 'type' => 'structure', 'members' => [ 'WebACL' => [ 'shape' => 'WebACL', ], ], ], 'GetXssMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'XssMatchSetId', ], 'members' => [ 'XssMatchSetId' => [ 'shape' => 'ResourceId', ], ], ], 'GetXssMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'XssMatchSet' => [ 'shape' => 'XssMatchSet', ], ], ], 'HTTPHeader' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'HeaderName', ], 'Value' => [ 'shape' => 'HeaderValue', ], ], ], 'HTTPHeaders' => [ 'type' => 'list', 'member' => [ 'shape' => 'HTTPHeader', ], ], 'HTTPMethod' => [ 'type' => 'string', ], 'HTTPRequest' => [ 'type' => 'structure', 'members' => [ 'ClientIP' => [ 'shape' => 'IPString', ], 'Country' => [ 'shape' => 'Country', ], 'URI' => [ 'shape' => 'URIString', ], 'Method' => [ 'shape' => 'HTTPMethod', ], 'HTTPVersion' => [ 'shape' => 'HTTPVersion', ], 'Headers' => [ 'shape' => 'HTTPHeaders', ], ], ], 'HTTPVersion' => [ 'type' => 'string', ], 'HeaderName' => [ 'type' => 'string', ], 'HeaderValue' => [ 'type' => 'string', ], 'IPSet' => [ 'type' => 'structure', 'required' => [ 'IPSetId', 'IPSetDescriptors', ], 'members' => [ 'IPSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'IPSetDescriptors' => [ 'shape' => 'IPSetDescriptors', ], ], ], 'IPSetDescriptor' => [ 'type' => 'structure', 'required' => [ 'Type', 'Value', ], 'members' => [ 'Type' => [ 'shape' => 'IPSetDescriptorType', ], 'Value' => [ 'shape' => 'IPSetDescriptorValue', ], ], ], 'IPSetDescriptorType' => [ 'type' => 'string', 'enum' => [ 'IPV4', 'IPV6', ], ], 'IPSetDescriptorValue' => [ 'type' => 'string', ], 'IPSetDescriptors' => [ 'type' => 'list', 'member' => [ 'shape' => 'IPSetDescriptor', ], ], 'IPSetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'IPSetSummary', ], ], 'IPSetSummary' => [ 'type' => 'structure', 'required' => [ 'IPSetId', 'Name', ], 'members' => [ 'IPSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'IPSetUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'IPSetDescriptor', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'IPSetDescriptor' => [ 'shape' => 'IPSetDescriptor', ], ], ], 'IPSetUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'IPSetUpdate', ], 'min' => 1, ], 'IPString' => [ 'type' => 'string', ], 'ListActivatedRulesInRuleGroupRequest' => [ 'type' => 'structure', 'members' => [ 'RuleGroupId' => [ 'shape' => 'ResourceId', ], 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListActivatedRulesInRuleGroupResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'ActivatedRules' => [ 'shape' => 'ActivatedRules', ], ], ], 'ListByteMatchSetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListByteMatchSetsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'ByteMatchSets' => [ 'shape' => 'ByteMatchSetSummaries', ], ], ], 'ListGeoMatchSetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListGeoMatchSetsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'GeoMatchSets' => [ 'shape' => 'GeoMatchSetSummaries', ], ], ], 'ListIPSetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListIPSetsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'IPSets' => [ 'shape' => 'IPSetSummaries', ], ], ], 'ListLoggingConfigurationsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListLoggingConfigurationsResponse' => [ 'type' => 'structure', 'members' => [ 'LoggingConfigurations' => [ 'shape' => 'LoggingConfigurations', ], 'NextMarker' => [ 'shape' => 'NextMarker', ], ], ], 'ListRateBasedRulesRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListRateBasedRulesResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Rules' => [ 'shape' => 'RuleSummaries', ], ], ], 'ListRegexMatchSetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListRegexMatchSetsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'RegexMatchSets' => [ 'shape' => 'RegexMatchSetSummaries', ], ], ], 'ListRegexPatternSetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListRegexPatternSetsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'RegexPatternSets' => [ 'shape' => 'RegexPatternSetSummaries', ], ], ], 'ListRuleGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListRuleGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'RuleGroups' => [ 'shape' => 'RuleGroupSummaries', ], ], ], 'ListRulesRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListRulesResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Rules' => [ 'shape' => 'RuleSummaries', ], ], ], 'ListSizeConstraintSetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListSizeConstraintSetsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'SizeConstraintSets' => [ 'shape' => 'SizeConstraintSetSummaries', ], ], ], 'ListSqlInjectionMatchSetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListSqlInjectionMatchSetsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'SqlInjectionMatchSets' => [ 'shape' => 'SqlInjectionMatchSetSummaries', ], ], ], 'ListSubscribedRuleGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListSubscribedRuleGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'RuleGroups' => [ 'shape' => 'SubscribedRuleGroupSummaries', ], ], ], 'ListWebACLsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListWebACLsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'WebACLs' => [ 'shape' => 'WebACLSummaries', ], ], ], 'ListXssMatchSetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Limit' => [ 'shape' => 'PaginationLimit', ], ], ], 'ListXssMatchSetsResponse' => [ 'type' => 'structure', 'members' => [ 'NextMarker' => [ 'shape' => 'NextMarker', ], 'XssMatchSets' => [ 'shape' => 'XssMatchSetSummaries', ], ], ], 'LogDestinationConfigs' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceArn', ], 'max' => 1, 'min' => 1, ], 'LoggingConfiguration' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'LogDestinationConfigs', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], 'LogDestinationConfigs' => [ 'shape' => 'LogDestinationConfigs', ], 'RedactedFields' => [ 'shape' => 'RedactedFields', ], ], ], 'LoggingConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoggingConfiguration', ], ], 'ManagedKey' => [ 'type' => 'string', ], 'ManagedKeys' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedKey', ], ], 'MatchFieldData' => [ 'type' => 'string', ], 'MatchFieldType' => [ 'type' => 'string', 'enum' => [ 'URI', 'QUERY_STRING', 'HEADER', 'METHOD', 'BODY', 'SINGLE_QUERY_ARG', 'ALL_QUERY_ARGS', ], ], 'MetricName' => [ 'type' => 'string', ], 'Negated' => [ 'type' => 'boolean', ], 'NextMarker' => [ 'type' => 'string', 'min' => 1, ], 'PaginationLimit' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'ParameterExceptionField' => [ 'type' => 'string', 'enum' => [ 'CHANGE_ACTION', 'WAF_ACTION', 'WAF_OVERRIDE_ACTION', 'PREDICATE_TYPE', 'IPSET_TYPE', 'BYTE_MATCH_FIELD_TYPE', 'SQL_INJECTION_MATCH_FIELD_TYPE', 'BYTE_MATCH_TEXT_TRANSFORMATION', 'BYTE_MATCH_POSITIONAL_CONSTRAINT', 'SIZE_CONSTRAINT_COMPARISON_OPERATOR', 'GEO_MATCH_LOCATION_TYPE', 'GEO_MATCH_LOCATION_VALUE', 'RATE_KEY', 'RULE_TYPE', 'NEXT_MARKER', 'RESOURCE_ARN', ], ], 'ParameterExceptionParameter' => [ 'type' => 'string', 'min' => 1, ], 'ParameterExceptionReason' => [ 'type' => 'string', 'enum' => [ 'INVALID_OPTION', 'ILLEGAL_COMBINATION', 'ILLEGAL_ARGUMENT', ], ], 'PolicyString' => [ 'type' => 'string', 'min' => 1, ], 'PopulationSize' => [ 'type' => 'long', ], 'PositionalConstraint' => [ 'type' => 'string', 'enum' => [ 'EXACTLY', 'STARTS_WITH', 'ENDS_WITH', 'CONTAINS', 'CONTAINS_WORD', ], ], 'Predicate' => [ 'type' => 'structure', 'required' => [ 'Negated', 'Type', 'DataId', ], 'members' => [ 'Negated' => [ 'shape' => 'Negated', ], 'Type' => [ 'shape' => 'PredicateType', ], 'DataId' => [ 'shape' => 'ResourceId', ], ], ], 'PredicateType' => [ 'type' => 'string', 'enum' => [ 'IPMatch', 'ByteMatch', 'SqlInjectionMatch', 'GeoMatch', 'SizeConstraint', 'XssMatch', 'RegexMatch', ], ], 'Predicates' => [ 'type' => 'list', 'member' => [ 'shape' => 'Predicate', ], ], 'PutLoggingConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'LoggingConfiguration', ], 'members' => [ 'LoggingConfiguration' => [ 'shape' => 'LoggingConfiguration', ], ], ], 'PutLoggingConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'LoggingConfiguration' => [ 'shape' => 'LoggingConfiguration', ], ], ], 'PutPermissionPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Policy', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'ResourceArn', ], 'Policy' => [ 'shape' => 'PolicyString', ], ], ], 'PutPermissionPolicyResponse' => [ 'type' => 'structure', 'members' => [], ], 'RateBasedRule' => [ 'type' => 'structure', 'required' => [ 'RuleId', 'MatchPredicates', 'RateKey', 'RateLimit', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'MatchPredicates' => [ 'shape' => 'Predicates', ], 'RateKey' => [ 'shape' => 'RateKey', ], 'RateLimit' => [ 'shape' => 'RateLimit', ], ], ], 'RateKey' => [ 'type' => 'string', 'enum' => [ 'IP', ], ], 'RateLimit' => [ 'type' => 'long', 'max' => 2000000000, 'min' => 2000, ], 'RedactedFields' => [ 'type' => 'list', 'member' => [ 'shape' => 'FieldToMatch', ], ], 'RegexMatchSet' => [ 'type' => 'structure', 'members' => [ 'RegexMatchSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'RegexMatchTuples' => [ 'shape' => 'RegexMatchTuples', ], ], ], 'RegexMatchSetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegexMatchSetSummary', ], ], 'RegexMatchSetSummary' => [ 'type' => 'structure', 'required' => [ 'RegexMatchSetId', 'Name', ], 'members' => [ 'RegexMatchSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'RegexMatchSetUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'RegexMatchTuple', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'RegexMatchTuple' => [ 'shape' => 'RegexMatchTuple', ], ], ], 'RegexMatchSetUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegexMatchSetUpdate', ], 'min' => 1, ], 'RegexMatchTuple' => [ 'type' => 'structure', 'required' => [ 'FieldToMatch', 'TextTransformation', 'RegexPatternSetId', ], 'members' => [ 'FieldToMatch' => [ 'shape' => 'FieldToMatch', ], 'TextTransformation' => [ 'shape' => 'TextTransformation', ], 'RegexPatternSetId' => [ 'shape' => 'ResourceId', ], ], ], 'RegexMatchTuples' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegexMatchTuple', ], ], 'RegexPatternSet' => [ 'type' => 'structure', 'required' => [ 'RegexPatternSetId', 'RegexPatternStrings', ], 'members' => [ 'RegexPatternSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'RegexPatternStrings' => [ 'shape' => 'RegexPatternStrings', ], ], ], 'RegexPatternSetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegexPatternSetSummary', ], ], 'RegexPatternSetSummary' => [ 'type' => 'structure', 'required' => [ 'RegexPatternSetId', 'Name', ], 'members' => [ 'RegexPatternSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'RegexPatternSetUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'RegexPatternString', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'RegexPatternString' => [ 'shape' => 'RegexPatternString', ], ], ], 'RegexPatternSetUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegexPatternSetUpdate', ], 'min' => 1, ], 'RegexPatternString' => [ 'type' => 'string', 'min' => 1, ], 'RegexPatternStrings' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegexPatternString', ], 'max' => 10, ], 'ResourceArn' => [ 'type' => 'string', 'max' => 1224, 'min' => 1, ], 'ResourceId' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'ResourceName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'Rule' => [ 'type' => 'structure', 'required' => [ 'RuleId', 'Predicates', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'Predicates' => [ 'shape' => 'Predicates', ], ], ], 'RuleGroup' => [ 'type' => 'structure', 'required' => [ 'RuleGroupId', ], 'members' => [ 'RuleGroupId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'MetricName' => [ 'shape' => 'MetricName', ], ], ], 'RuleGroupSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'RuleGroupSummary', ], ], 'RuleGroupSummary' => [ 'type' => 'structure', 'required' => [ 'RuleGroupId', 'Name', ], 'members' => [ 'RuleGroupId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'RuleGroupUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'ActivatedRule', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'ActivatedRule' => [ 'shape' => 'ActivatedRule', ], ], ], 'RuleGroupUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'RuleGroupUpdate', ], 'min' => 1, ], 'RulePriority' => [ 'type' => 'integer', ], 'RuleSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'RuleSummary', ], ], 'RuleSummary' => [ 'type' => 'structure', 'required' => [ 'RuleId', 'Name', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'RuleUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'Predicate', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'Predicate' => [ 'shape' => 'Predicate', ], ], ], 'RuleUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'RuleUpdate', ], ], 'SampleWeight' => [ 'type' => 'long', 'min' => 0, ], 'SampledHTTPRequest' => [ 'type' => 'structure', 'required' => [ 'Request', 'Weight', ], 'members' => [ 'Request' => [ 'shape' => 'HTTPRequest', ], 'Weight' => [ 'shape' => 'SampleWeight', ], 'Timestamp' => [ 'shape' => 'Timestamp', ], 'Action' => [ 'shape' => 'Action', ], 'RuleWithinRuleGroup' => [ 'shape' => 'ResourceId', ], ], ], 'SampledHTTPRequests' => [ 'type' => 'list', 'member' => [ 'shape' => 'SampledHTTPRequest', ], ], 'Size' => [ 'type' => 'long', 'max' => 21474836480, 'min' => 0, ], 'SizeConstraint' => [ 'type' => 'structure', 'required' => [ 'FieldToMatch', 'TextTransformation', 'ComparisonOperator', 'Size', ], 'members' => [ 'FieldToMatch' => [ 'shape' => 'FieldToMatch', ], 'TextTransformation' => [ 'shape' => 'TextTransformation', ], 'ComparisonOperator' => [ 'shape' => 'ComparisonOperator', ], 'Size' => [ 'shape' => 'Size', ], ], ], 'SizeConstraintSet' => [ 'type' => 'structure', 'required' => [ 'SizeConstraintSetId', 'SizeConstraints', ], 'members' => [ 'SizeConstraintSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'SizeConstraints' => [ 'shape' => 'SizeConstraints', ], ], ], 'SizeConstraintSetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'SizeConstraintSetSummary', ], ], 'SizeConstraintSetSummary' => [ 'type' => 'structure', 'required' => [ 'SizeConstraintSetId', 'Name', ], 'members' => [ 'SizeConstraintSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'SizeConstraintSetUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'SizeConstraint', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'SizeConstraint' => [ 'shape' => 'SizeConstraint', ], ], ], 'SizeConstraintSetUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'SizeConstraintSetUpdate', ], 'min' => 1, ], 'SizeConstraints' => [ 'type' => 'list', 'member' => [ 'shape' => 'SizeConstraint', ], ], 'SqlInjectionMatchSet' => [ 'type' => 'structure', 'required' => [ 'SqlInjectionMatchSetId', 'SqlInjectionMatchTuples', ], 'members' => [ 'SqlInjectionMatchSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'SqlInjectionMatchTuples' => [ 'shape' => 'SqlInjectionMatchTuples', ], ], ], 'SqlInjectionMatchSetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'SqlInjectionMatchSetSummary', ], ], 'SqlInjectionMatchSetSummary' => [ 'type' => 'structure', 'required' => [ 'SqlInjectionMatchSetId', 'Name', ], 'members' => [ 'SqlInjectionMatchSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'SqlInjectionMatchSetUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'SqlInjectionMatchTuple', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'SqlInjectionMatchTuple' => [ 'shape' => 'SqlInjectionMatchTuple', ], ], ], 'SqlInjectionMatchSetUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'SqlInjectionMatchSetUpdate', ], 'min' => 1, ], 'SqlInjectionMatchTuple' => [ 'type' => 'structure', 'required' => [ 'FieldToMatch', 'TextTransformation', ], 'members' => [ 'FieldToMatch' => [ 'shape' => 'FieldToMatch', ], 'TextTransformation' => [ 'shape' => 'TextTransformation', ], ], ], 'SqlInjectionMatchTuples' => [ 'type' => 'list', 'member' => [ 'shape' => 'SqlInjectionMatchTuple', ], ], 'SubscribedRuleGroupSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubscribedRuleGroupSummary', ], ], 'SubscribedRuleGroupSummary' => [ 'type' => 'structure', 'required' => [ 'RuleGroupId', 'Name', 'MetricName', ], 'members' => [ 'RuleGroupId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'MetricName' => [ 'shape' => 'MetricName', ], ], ], 'TextTransformation' => [ 'type' => 'string', 'enum' => [ 'NONE', 'COMPRESS_WHITE_SPACE', 'HTML_ENTITY_DECODE', 'LOWERCASE', 'CMD_LINE', 'URL_DECODE', ], ], 'TimeWindow' => [ 'type' => 'structure', 'required' => [ 'StartTime', 'EndTime', ], 'members' => [ 'StartTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], ], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'URIString' => [ 'type' => 'string', ], 'UpdateByteMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'ByteMatchSetId', 'ChangeToken', 'Updates', ], 'members' => [ 'ByteMatchSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], 'Updates' => [ 'shape' => 'ByteMatchSetUpdates', ], ], ], 'UpdateByteMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateGeoMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'GeoMatchSetId', 'ChangeToken', 'Updates', ], 'members' => [ 'GeoMatchSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], 'Updates' => [ 'shape' => 'GeoMatchSetUpdates', ], ], ], 'UpdateGeoMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateIPSetRequest' => [ 'type' => 'structure', 'required' => [ 'IPSetId', 'ChangeToken', 'Updates', ], 'members' => [ 'IPSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], 'Updates' => [ 'shape' => 'IPSetUpdates', ], ], ], 'UpdateIPSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateRateBasedRuleRequest' => [ 'type' => 'structure', 'required' => [ 'RuleId', 'ChangeToken', 'Updates', 'RateLimit', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], 'Updates' => [ 'shape' => 'RuleUpdates', ], 'RateLimit' => [ 'shape' => 'RateLimit', ], ], ], 'UpdateRateBasedRuleResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateRegexMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'RegexMatchSetId', 'Updates', 'ChangeToken', ], 'members' => [ 'RegexMatchSetId' => [ 'shape' => 'ResourceId', ], 'Updates' => [ 'shape' => 'RegexMatchSetUpdates', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateRegexMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateRegexPatternSetRequest' => [ 'type' => 'structure', 'required' => [ 'RegexPatternSetId', 'Updates', 'ChangeToken', ], 'members' => [ 'RegexPatternSetId' => [ 'shape' => 'ResourceId', ], 'Updates' => [ 'shape' => 'RegexPatternSetUpdates', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateRegexPatternSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateRuleGroupRequest' => [ 'type' => 'structure', 'required' => [ 'RuleGroupId', 'Updates', 'ChangeToken', ], 'members' => [ 'RuleGroupId' => [ 'shape' => 'ResourceId', ], 'Updates' => [ 'shape' => 'RuleGroupUpdates', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateRuleGroupResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateRuleRequest' => [ 'type' => 'structure', 'required' => [ 'RuleId', 'ChangeToken', 'Updates', ], 'members' => [ 'RuleId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], 'Updates' => [ 'shape' => 'RuleUpdates', ], ], ], 'UpdateRuleResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateSizeConstraintSetRequest' => [ 'type' => 'structure', 'required' => [ 'SizeConstraintSetId', 'ChangeToken', 'Updates', ], 'members' => [ 'SizeConstraintSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], 'Updates' => [ 'shape' => 'SizeConstraintSetUpdates', ], ], ], 'UpdateSizeConstraintSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateSqlInjectionMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'SqlInjectionMatchSetId', 'ChangeToken', 'Updates', ], 'members' => [ 'SqlInjectionMatchSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], 'Updates' => [ 'shape' => 'SqlInjectionMatchSetUpdates', ], ], ], 'UpdateSqlInjectionMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateWebACLRequest' => [ 'type' => 'structure', 'required' => [ 'WebACLId', 'ChangeToken', ], 'members' => [ 'WebACLId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], 'Updates' => [ 'shape' => 'WebACLUpdates', ], 'DefaultAction' => [ 'shape' => 'WafAction', ], ], ], 'UpdateWebACLResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'UpdateXssMatchSetRequest' => [ 'type' => 'structure', 'required' => [ 'XssMatchSetId', 'ChangeToken', 'Updates', ], 'members' => [ 'XssMatchSetId' => [ 'shape' => 'ResourceId', ], 'ChangeToken' => [ 'shape' => 'ChangeToken', ], 'Updates' => [ 'shape' => 'XssMatchSetUpdates', ], ], ], 'UpdateXssMatchSetResponse' => [ 'type' => 'structure', 'members' => [ 'ChangeToken' => [ 'shape' => 'ChangeToken', ], ], ], 'WAFDisallowedNameException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFInternalErrorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, 'fault' => true, ], 'WAFInvalidAccountException' => [ 'type' => 'structure', 'members' => [], 'exception' => true, ], 'WAFInvalidOperationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFInvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'field' => [ 'shape' => 'ParameterExceptionField', ], 'parameter' => [ 'shape' => 'ParameterExceptionParameter', ], 'reason' => [ 'shape' => 'ParameterExceptionReason', ], ], 'exception' => true, ], 'WAFInvalidPermissionPolicyException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFInvalidRegexPatternException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFLimitsExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFNonEmptyEntityException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFNonexistentContainerException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFNonexistentItemException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFReferencedItemException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFServiceLinkedRoleErrorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFStaleDataException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WAFSubscriptionNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'errorMessage', ], ], 'exception' => true, ], 'WafAction' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'WafActionType', ], ], ], 'WafActionType' => [ 'type' => 'string', 'enum' => [ 'BLOCK', 'ALLOW', 'COUNT', ], ], 'WafOverrideAction' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'WafOverrideActionType', ], ], ], 'WafOverrideActionType' => [ 'type' => 'string', 'enum' => [ 'NONE', 'COUNT', ], ], 'WafRuleType' => [ 'type' => 'string', 'enum' => [ 'REGULAR', 'RATE_BASED', 'GROUP', ], ], 'WebACL' => [ 'type' => 'structure', 'required' => [ 'WebACLId', 'DefaultAction', 'Rules', ], 'members' => [ 'WebACLId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'DefaultAction' => [ 'shape' => 'WafAction', ], 'Rules' => [ 'shape' => 'ActivatedRules', ], 'WebACLArn' => [ 'shape' => 'ResourceArn', ], ], ], 'WebACLSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'WebACLSummary', ], ], 'WebACLSummary' => [ 'type' => 'structure', 'required' => [ 'WebACLId', 'Name', ], 'members' => [ 'WebACLId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'WebACLUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'ActivatedRule', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'ActivatedRule' => [ 'shape' => 'ActivatedRule', ], ], ], 'WebACLUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'WebACLUpdate', ], ], 'XssMatchSet' => [ 'type' => 'structure', 'required' => [ 'XssMatchSetId', 'XssMatchTuples', ], 'members' => [ 'XssMatchSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'XssMatchTuples' => [ 'shape' => 'XssMatchTuples', ], ], ], 'XssMatchSetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'XssMatchSetSummary', ], ], 'XssMatchSetSummary' => [ 'type' => 'structure', 'required' => [ 'XssMatchSetId', 'Name', ], 'members' => [ 'XssMatchSetId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], ], ], 'XssMatchSetUpdate' => [ 'type' => 'structure', 'required' => [ 'Action', 'XssMatchTuple', ], 'members' => [ 'Action' => [ 'shape' => 'ChangeAction', ], 'XssMatchTuple' => [ 'shape' => 'XssMatchTuple', ], ], ], 'XssMatchSetUpdates' => [ 'type' => 'list', 'member' => [ 'shape' => 'XssMatchSetUpdate', ], 'min' => 1, ], 'XssMatchTuple' => [ 'type' => 'structure', 'required' => [ 'FieldToMatch', 'TextTransformation', ], 'members' => [ 'FieldToMatch' => [ 'shape' => 'FieldToMatch', ], 'TextTransformation' => [ 'shape' => 'TextTransformation', ], ], ], 'XssMatchTuples' => [ 'type' => 'list', 'member' => [ 'shape' => 'XssMatchTuple', ], ], 'errorMessage' => [ 'type' => 'string', ], ],]; diff --git a/lib/aws/Aws/data/waf/2015-08-24/paginators-1.json.php b/lib/aws/Aws/data/waf/2015-08-24/paginators-1.json.php new file mode 100644 index 0000000..24079f2 --- /dev/null +++ b/lib/aws/Aws/data/waf/2015-08-24/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/waf/2015-08-24/paginators-1.json +return [ 'pagination' => [],]; diff --git a/lib/aws/Aws/data/waf/2015-08-24/smoke.json.php b/lib/aws/Aws/data/waf/2015-08-24/smoke.json.php new file mode 100644 index 0000000..bfc9b32 --- /dev/null +++ b/lib/aws/Aws/data/waf/2015-08-24/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/waf/2015-08-24/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-east-1', 'testCases' => [ [ 'operationName' => 'ListRules', 'input' => [ 'Limit' => 20, ], 'errorExpectedFromService' => false, ], [ 'operationName' => 'CreateSqlInjectionMatchSet', 'input' => [ 'Name' => 'fake_name', 'ChangeToken' => 'fake_token', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/workdocs/2016-05-01/api-2.json.php b/lib/aws/Aws/data/workdocs/2016-05-01/api-2.json.php new file mode 100644 index 0000000..349fb6d --- /dev/null +++ b/lib/aws/Aws/data/workdocs/2016-05-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/workdocs/2016-05-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-05-01', 'endpointPrefix' => 'workdocs', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceFullName' => 'Amazon WorkDocs', 'serviceId' => 'WorkDocs', 'signatureVersion' => 'v4', 'uid' => 'workdocs-2016-05-01', ], 'operations' => [ 'AbortDocumentVersionUpload' => [ 'name' => 'AbortDocumentVersionUpload', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/api/v1/documents/{DocumentId}/versions/{VersionId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'AbortDocumentVersionUploadRequest', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'ProhibitedStateException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'ActivateUser' => [ 'name' => 'ActivateUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/api/v1/users/{UserId}/activation', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ActivateUserRequest', ], 'output' => [ 'shape' => 'ActivateUserResponse', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'AddResourcePermissions' => [ 'name' => 'AddResourcePermissions', 'http' => [ 'method' => 'POST', 'requestUri' => '/api/v1/resources/{ResourceId}/permissions', 'responseCode' => 201, ], 'input' => [ 'shape' => 'AddResourcePermissionsRequest', ], 'output' => [ 'shape' => 'AddResourcePermissionsResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'CreateComment' => [ 'name' => 'CreateComment', 'http' => [ 'method' => 'POST', 'requestUri' => '/api/v1/documents/{DocumentId}/versions/{VersionId}/comment', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateCommentRequest', ], 'output' => [ 'shape' => 'CreateCommentResponse', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'ProhibitedStateException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'DocumentLockedForCommentsException', ], [ 'shape' => 'InvalidCommentOperationException', ], ], ], 'CreateCustomMetadata' => [ 'name' => 'CreateCustomMetadata', 'http' => [ 'method' => 'PUT', 'requestUri' => '/api/v1/resources/{ResourceId}/customMetadata', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateCustomMetadataRequest', ], 'output' => [ 'shape' => 'CreateCustomMetadataResponse', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'ProhibitedStateException', ], [ 'shape' => 'CustomMetadataLimitExceededException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'CreateFolder' => [ 'name' => 'CreateFolder', 'http' => [ 'method' => 'POST', 'requestUri' => '/api/v1/folders', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateFolderRequest', ], 'output' => [ 'shape' => 'CreateFolderResponse', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'ProhibitedStateException', ], [ 'shape' => 'ConflictingOperationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'CreateLabels' => [ 'name' => 'CreateLabels', 'http' => [ 'method' => 'PUT', 'requestUri' => '/api/v1/resources/{ResourceId}/labels', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateLabelsRequest', ], 'output' => [ 'shape' => 'CreateLabelsResponse', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'TooManyLabelsException', ], ], ], 'CreateNotificationSubscription' => [ 'name' => 'CreateNotificationSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/api/v1/organizations/{OrganizationId}/subscriptions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateNotificationSubscriptionRequest', ], 'output' => [ 'shape' => 'CreateNotificationSubscriptionResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'TooManySubscriptionsException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'CreateUser' => [ 'name' => 'CreateUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/api/v1/users', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateUserRequest', ], 'output' => [ 'shape' => 'CreateUserResponse', ], 'errors' => [ [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeactivateUser' => [ 'name' => 'DeactivateUser', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/api/v1/users/{UserId}/activation', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeactivateUserRequest', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeleteComment' => [ 'name' => 'DeleteComment', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/api/v1/documents/{DocumentId}/versions/{VersionId}/comment/{CommentId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteCommentRequest', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'ProhibitedStateException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'DocumentLockedForCommentsException', ], ], ], 'DeleteCustomMetadata' => [ 'name' => 'DeleteCustomMetadata', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/api/v1/resources/{ResourceId}/customMetadata', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteCustomMetadataRequest', ], 'output' => [ 'shape' => 'DeleteCustomMetadataResponse', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'ProhibitedStateException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeleteDocument' => [ 'name' => 'DeleteDocument', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/api/v1/documents/{DocumentId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDocumentRequest', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'ProhibitedStateException', ], [ 'shape' => 'ConflictingOperationException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeleteFolder' => [ 'name' => 'DeleteFolder', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/api/v1/folders/{FolderId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteFolderRequest', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'ProhibitedStateException', ], [ 'shape' => 'ConflictingOperationException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeleteFolderContents' => [ 'name' => 'DeleteFolderContents', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/api/v1/folders/{FolderId}/contents', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteFolderContentsRequest', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'ProhibitedStateException', ], [ 'shape' => 'ConflictingOperationException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeleteLabels' => [ 'name' => 'DeleteLabels', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/api/v1/resources/{ResourceId}/labels', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteLabelsRequest', ], 'output' => [ 'shape' => 'DeleteLabelsResponse', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DeleteNotificationSubscription' => [ 'name' => 'DeleteNotificationSubscription', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/api/v1/organizations/{OrganizationId}/subscriptions/{SubscriptionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteNotificationSubscriptionRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ProhibitedStateException', ], ], ], 'DeleteUser' => [ 'name' => 'DeleteUser', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/api/v1/users/{UserId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteUserRequest', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeActivities' => [ 'name' => 'DescribeActivities', 'http' => [ 'method' => 'GET', 'requestUri' => '/api/v1/activities', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeActivitiesRequest', ], 'output' => [ 'shape' => 'DescribeActivitiesResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeComments' => [ 'name' => 'DescribeComments', 'http' => [ 'method' => 'GET', 'requestUri' => '/api/v1/documents/{DocumentId}/versions/{VersionId}/comments', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeCommentsRequest', ], 'output' => [ 'shape' => 'DescribeCommentsResponse', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'ProhibitedStateException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeDocumentVersions' => [ 'name' => 'DescribeDocumentVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/api/v1/documents/{DocumentId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeDocumentVersionsRequest', ], 'output' => [ 'shape' => 'DescribeDocumentVersionsResponse', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ProhibitedStateException', ], ], ], 'DescribeFolderContents' => [ 'name' => 'DescribeFolderContents', 'http' => [ 'method' => 'GET', 'requestUri' => '/api/v1/folders/{FolderId}/contents', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeFolderContentsRequest', ], 'output' => [ 'shape' => 'DescribeFolderContentsResponse', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ProhibitedStateException', ], ], ], 'DescribeGroups' => [ 'name' => 'DescribeGroups', 'http' => [ 'method' => 'GET', 'requestUri' => '/api/v1/groups', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeGroupsRequest', ], 'output' => [ 'shape' => 'DescribeGroupsResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeNotificationSubscriptions' => [ 'name' => 'DescribeNotificationSubscriptions', 'http' => [ 'method' => 'GET', 'requestUri' => '/api/v1/organizations/{OrganizationId}/subscriptions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeNotificationSubscriptionsRequest', ], 'output' => [ 'shape' => 'DescribeNotificationSubscriptionsResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeResourcePermissions' => [ 'name' => 'DescribeResourcePermissions', 'http' => [ 'method' => 'GET', 'requestUri' => '/api/v1/resources/{ResourceId}/permissions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeResourcePermissionsRequest', ], 'output' => [ 'shape' => 'DescribeResourcePermissionsResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeRootFolders' => [ 'name' => 'DescribeRootFolders', 'http' => [ 'method' => 'GET', 'requestUri' => '/api/v1/me/root', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeRootFoldersRequest', ], 'output' => [ 'shape' => 'DescribeRootFoldersResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'DescribeUsers' => [ 'name' => 'DescribeUsers', 'http' => [ 'method' => 'GET', 'requestUri' => '/api/v1/users', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DescribeUsersRequest', ], 'output' => [ 'shape' => 'DescribeUsersResponse', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'RequestedEntityTooLargeException', ], ], ], 'GetCurrentUser' => [ 'name' => 'GetCurrentUser', 'http' => [ 'method' => 'GET', 'requestUri' => '/api/v1/me', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetCurrentUserRequest', ], 'output' => [ 'shape' => 'GetCurrentUserResponse', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'GetDocument' => [ 'name' => 'GetDocument', 'http' => [ 'method' => 'GET', 'requestUri' => '/api/v1/documents/{DocumentId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetDocumentRequest', ], 'output' => [ 'shape' => 'GetDocumentResponse', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'InvalidPasswordException', ], ], ], 'GetDocumentPath' => [ 'name' => 'GetDocumentPath', 'http' => [ 'method' => 'GET', 'requestUri' => '/api/v1/documents/{DocumentId}/path', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetDocumentPathRequest', ], 'output' => [ 'shape' => 'GetDocumentPathResponse', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'GetDocumentVersion' => [ 'name' => 'GetDocumentVersion', 'http' => [ 'method' => 'GET', 'requestUri' => '/api/v1/documents/{DocumentId}/versions/{VersionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetDocumentVersionRequest', ], 'output' => [ 'shape' => 'GetDocumentVersionResponse', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ProhibitedStateException', ], [ 'shape' => 'InvalidPasswordException', ], ], ], 'GetFolder' => [ 'name' => 'GetFolder', 'http' => [ 'method' => 'GET', 'requestUri' => '/api/v1/folders/{FolderId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetFolderRequest', ], 'output' => [ 'shape' => 'GetFolderResponse', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'ProhibitedStateException', ], ], ], 'GetFolderPath' => [ 'name' => 'GetFolderPath', 'http' => [ 'method' => 'GET', 'requestUri' => '/api/v1/folders/{FolderId}/path', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetFolderPathRequest', ], 'output' => [ 'shape' => 'GetFolderPathResponse', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'GetResources' => [ 'name' => 'GetResources', 'http' => [ 'method' => 'GET', 'requestUri' => '/api/v1/resources', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetResourcesRequest', ], 'output' => [ 'shape' => 'GetResourcesResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'InvalidArgumentException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'InitiateDocumentVersionUpload' => [ 'name' => 'InitiateDocumentVersionUpload', 'http' => [ 'method' => 'POST', 'requestUri' => '/api/v1/documents', 'responseCode' => 201, ], 'input' => [ 'shape' => 'InitiateDocumentVersionUploadRequest', ], 'output' => [ 'shape' => 'InitiateDocumentVersionUploadResponse', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'StorageLimitExceededException', ], [ 'shape' => 'StorageLimitWillExceedException', ], [ 'shape' => 'ProhibitedStateException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'DraftUploadOutOfSyncException', ], [ 'shape' => 'ResourceAlreadyCheckedOutException', ], ], ], 'RemoveAllResourcePermissions' => [ 'name' => 'RemoveAllResourcePermissions', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/api/v1/resources/{ResourceId}/permissions', 'responseCode' => 204, ], 'input' => [ 'shape' => 'RemoveAllResourcePermissionsRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'RemoveResourcePermission' => [ 'name' => 'RemoveResourcePermission', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/api/v1/resources/{ResourceId}/permissions/{PrincipalId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'RemoveResourcePermissionRequest', ], 'errors' => [ [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'UpdateDocument' => [ 'name' => 'UpdateDocument', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/api/v1/documents/{DocumentId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateDocumentRequest', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ProhibitedStateException', ], [ 'shape' => 'ConflictingOperationException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'UpdateDocumentVersion' => [ 'name' => 'UpdateDocumentVersion', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/api/v1/documents/{DocumentId}/versions/{VersionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateDocumentVersionRequest', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'ProhibitedStateException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'InvalidOperationException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'UpdateFolder' => [ 'name' => 'UpdateFolder', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/api/v1/folders/{FolderId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateFolderRequest', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'EntityAlreadyExistsException', ], [ 'shape' => 'ProhibitedStateException', ], [ 'shape' => 'ConflictingOperationException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], ], ], 'UpdateUser' => [ 'name' => 'UpdateUser', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/api/v1/users/{UserId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateUserRequest', ], 'output' => [ 'shape' => 'UpdateUserResponse', ], 'errors' => [ [ 'shape' => 'EntityNotExistsException', ], [ 'shape' => 'UnauthorizedOperationException', ], [ 'shape' => 'UnauthorizedResourceAccessException', ], [ 'shape' => 'IllegalUserStateException', ], [ 'shape' => 'FailedDependencyException', ], [ 'shape' => 'ServiceUnavailableException', ], [ 'shape' => 'DeactivatingLastSystemUserException', ], [ 'shape' => 'InvalidArgumentException', ], ], ], ], 'shapes' => [ 'AbortDocumentVersionUploadRequest' => [ 'type' => 'structure', 'required' => [ 'DocumentId', 'VersionId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'DocumentId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'DocumentId', ], 'VersionId' => [ 'shape' => 'DocumentVersionIdType', 'location' => 'uri', 'locationName' => 'VersionId', ], ], ], 'ActivateUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserId', ], 'members' => [ 'UserId' => [ 'shape' => 'IdType', 'location' => 'uri', 'locationName' => 'UserId', ], 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], ], ], 'ActivateUserResponse' => [ 'type' => 'structure', 'members' => [ 'User' => [ 'shape' => 'User', ], ], ], 'Activity' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'ActivityType', ], 'TimeStamp' => [ 'shape' => 'TimestampType', ], 'IsIndirectActivity' => [ 'shape' => 'BooleanType', ], 'OrganizationId' => [ 'shape' => 'IdType', ], 'Initiator' => [ 'shape' => 'UserMetadata', ], 'Participants' => [ 'shape' => 'Participants', ], 'ResourceMetadata' => [ 'shape' => 'ResourceMetadata', ], 'OriginalParent' => [ 'shape' => 'ResourceMetadata', ], 'CommentMetadata' => [ 'shape' => 'CommentMetadata', ], ], ], 'ActivityNamesFilterType' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '[\\w,]+', ], 'ActivityType' => [ 'type' => 'string', 'enum' => [ 'DOCUMENT_CHECKED_IN', 'DOCUMENT_CHECKED_OUT', 'DOCUMENT_RENAMED', 'DOCUMENT_VERSION_UPLOADED', 'DOCUMENT_VERSION_DELETED', 'DOCUMENT_VERSION_VIEWED', 'DOCUMENT_VERSION_DOWNLOADED', 'DOCUMENT_RECYCLED', 'DOCUMENT_RESTORED', 'DOCUMENT_REVERTED', 'DOCUMENT_SHARED', 'DOCUMENT_UNSHARED', 'DOCUMENT_SHARE_PERMISSION_CHANGED', 'DOCUMENT_SHAREABLE_LINK_CREATED', 'DOCUMENT_SHAREABLE_LINK_REMOVED', 'DOCUMENT_SHAREABLE_LINK_PERMISSION_CHANGED', 'DOCUMENT_MOVED', 'DOCUMENT_COMMENT_ADDED', 'DOCUMENT_COMMENT_DELETED', 'DOCUMENT_ANNOTATION_ADDED', 'DOCUMENT_ANNOTATION_DELETED', 'FOLDER_CREATED', 'FOLDER_DELETED', 'FOLDER_RENAMED', 'FOLDER_RECYCLED', 'FOLDER_RESTORED', 'FOLDER_SHARED', 'FOLDER_UNSHARED', 'FOLDER_SHARE_PERMISSION_CHANGED', 'FOLDER_SHAREABLE_LINK_CREATED', 'FOLDER_SHAREABLE_LINK_REMOVED', 'FOLDER_SHAREABLE_LINK_PERMISSION_CHANGED', 'FOLDER_MOVED', ], ], 'AddResourcePermissionsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', 'Principals', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'ResourceId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'ResourceId', ], 'Principals' => [ 'shape' => 'SharePrincipalList', ], 'NotificationOptions' => [ 'shape' => 'NotificationOptions', ], ], ], 'AddResourcePermissionsResponse' => [ 'type' => 'structure', 'members' => [ 'ShareResults' => [ 'shape' => 'ShareResultsList', ], ], ], 'AuthenticationHeaderType' => [ 'type' => 'string', 'max' => 8199, 'min' => 1, 'sensitive' => true, ], 'BooleanEnumType' => [ 'type' => 'string', 'enum' => [ 'TRUE', 'FALSE', ], ], 'BooleanType' => [ 'type' => 'boolean', ], 'Comment' => [ 'type' => 'structure', 'required' => [ 'CommentId', ], 'members' => [ 'CommentId' => [ 'shape' => 'CommentIdType', ], 'ParentId' => [ 'shape' => 'CommentIdType', ], 'ThreadId' => [ 'shape' => 'CommentIdType', ], 'Text' => [ 'shape' => 'CommentTextType', ], 'Contributor' => [ 'shape' => 'User', ], 'CreatedTimestamp' => [ 'shape' => 'TimestampType', ], 'Status' => [ 'shape' => 'CommentStatusType', ], 'Visibility' => [ 'shape' => 'CommentVisibilityType', ], 'RecipientId' => [ 'shape' => 'IdType', ], ], ], 'CommentIdType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w+-.@]+', ], 'CommentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Comment', ], ], 'CommentMetadata' => [ 'type' => 'structure', 'members' => [ 'CommentId' => [ 'shape' => 'CommentIdType', ], 'Contributor' => [ 'shape' => 'User', ], 'CreatedTimestamp' => [ 'shape' => 'TimestampType', ], 'CommentStatus' => [ 'shape' => 'CommentStatusType', ], 'RecipientId' => [ 'shape' => 'IdType', ], ], ], 'CommentStatusType' => [ 'type' => 'string', 'enum' => [ 'DRAFT', 'PUBLISHED', 'DELETED', ], ], 'CommentTextType' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'sensitive' => true, ], 'CommentVisibilityType' => [ 'type' => 'string', 'enum' => [ 'PUBLIC', 'PRIVATE', ], ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'ConflictingOperationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'CreateCommentRequest' => [ 'type' => 'structure', 'required' => [ 'DocumentId', 'VersionId', 'Text', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'DocumentId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'DocumentId', ], 'VersionId' => [ 'shape' => 'DocumentVersionIdType', 'location' => 'uri', 'locationName' => 'VersionId', ], 'ParentId' => [ 'shape' => 'CommentIdType', ], 'ThreadId' => [ 'shape' => 'CommentIdType', ], 'Text' => [ 'shape' => 'CommentTextType', ], 'Visibility' => [ 'shape' => 'CommentVisibilityType', ], 'NotifyCollaborators' => [ 'shape' => 'BooleanType', ], ], ], 'CreateCommentResponse' => [ 'type' => 'structure', 'members' => [ 'Comment' => [ 'shape' => 'Comment', ], ], ], 'CreateCustomMetadataRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', 'CustomMetadata', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'ResourceId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'ResourceId', ], 'VersionId' => [ 'shape' => 'DocumentVersionIdType', 'location' => 'querystring', 'locationName' => 'versionid', ], 'CustomMetadata' => [ 'shape' => 'CustomMetadataMap', ], ], ], 'CreateCustomMetadataResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateFolderRequest' => [ 'type' => 'structure', 'required' => [ 'ParentFolderId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'Name' => [ 'shape' => 'ResourceNameType', ], 'ParentFolderId' => [ 'shape' => 'ResourceIdType', ], ], ], 'CreateFolderResponse' => [ 'type' => 'structure', 'members' => [ 'Metadata' => [ 'shape' => 'FolderMetadata', ], ], ], 'CreateLabelsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', 'Labels', ], 'members' => [ 'ResourceId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'ResourceId', ], 'Labels' => [ 'shape' => 'SharedLabels', ], 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], ], ], 'CreateLabelsResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateNotificationSubscriptionRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'Endpoint', 'Protocol', 'SubscriptionType', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'IdType', 'location' => 'uri', 'locationName' => 'OrganizationId', ], 'Endpoint' => [ 'shape' => 'SubscriptionEndPointType', ], 'Protocol' => [ 'shape' => 'SubscriptionProtocolType', ], 'SubscriptionType' => [ 'shape' => 'SubscriptionType', ], ], ], 'CreateNotificationSubscriptionResponse' => [ 'type' => 'structure', 'members' => [ 'Subscription' => [ 'shape' => 'Subscription', ], ], ], 'CreateUserRequest' => [ 'type' => 'structure', 'required' => [ 'Username', 'GivenName', 'Surname', 'Password', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'IdType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'EmailAddress' => [ 'shape' => 'EmailAddressType', ], 'GivenName' => [ 'shape' => 'UserAttributeValueType', ], 'Surname' => [ 'shape' => 'UserAttributeValueType', ], 'Password' => [ 'shape' => 'PasswordType', ], 'TimeZoneId' => [ 'shape' => 'TimeZoneIdType', ], 'StorageRule' => [ 'shape' => 'StorageRuleType', ], 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], ], ], 'CreateUserResponse' => [ 'type' => 'structure', 'members' => [ 'User' => [ 'shape' => 'User', ], ], ], 'CustomMetadataKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CustomMetadataKeyType', ], 'max' => 8, ], 'CustomMetadataKeyType' => [ 'type' => 'string', 'max' => 56, 'min' => 1, 'pattern' => '[a-zA-Z0-9._+-/=][a-zA-Z0-9 ._+-/=]*', ], 'CustomMetadataLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'CustomMetadataMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'CustomMetadataKeyType', ], 'value' => [ 'shape' => 'CustomMetadataValueType', ], 'max' => 8, 'min' => 1, ], 'CustomMetadataValueType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[a-zA-Z0-9._+-/=][a-zA-Z0-9 ._+-/=]*', ], 'DeactivateUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserId', ], 'members' => [ 'UserId' => [ 'shape' => 'IdType', 'location' => 'uri', 'locationName' => 'UserId', ], 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], ], ], 'DeactivatingLastSystemUserException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'DeleteCommentRequest' => [ 'type' => 'structure', 'required' => [ 'DocumentId', 'VersionId', 'CommentId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'DocumentId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'DocumentId', ], 'VersionId' => [ 'shape' => 'DocumentVersionIdType', 'location' => 'uri', 'locationName' => 'VersionId', ], 'CommentId' => [ 'shape' => 'CommentIdType', 'location' => 'uri', 'locationName' => 'CommentId', ], ], ], 'DeleteCustomMetadataRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'ResourceId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'ResourceId', ], 'VersionId' => [ 'shape' => 'DocumentVersionIdType', 'location' => 'querystring', 'locationName' => 'versionId', ], 'Keys' => [ 'shape' => 'CustomMetadataKeyList', 'location' => 'querystring', 'locationName' => 'keys', ], 'DeleteAll' => [ 'shape' => 'BooleanType', 'location' => 'querystring', 'locationName' => 'deleteAll', ], ], ], 'DeleteCustomMetadataResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteDocumentRequest' => [ 'type' => 'structure', 'required' => [ 'DocumentId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'DocumentId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'DocumentId', ], ], ], 'DeleteFolderContentsRequest' => [ 'type' => 'structure', 'required' => [ 'FolderId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'FolderId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'FolderId', ], ], ], 'DeleteFolderRequest' => [ 'type' => 'structure', 'required' => [ 'FolderId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'FolderId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'FolderId', ], ], ], 'DeleteLabelsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', ], 'members' => [ 'ResourceId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'ResourceId', ], 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'Labels' => [ 'shape' => 'SharedLabels', 'location' => 'querystring', 'locationName' => 'labels', ], 'DeleteAll' => [ 'shape' => 'BooleanType', 'location' => 'querystring', 'locationName' => 'deleteAll', ], ], ], 'DeleteLabelsResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteNotificationSubscriptionRequest' => [ 'type' => 'structure', 'required' => [ 'SubscriptionId', 'OrganizationId', ], 'members' => [ 'SubscriptionId' => [ 'shape' => 'IdType', 'location' => 'uri', 'locationName' => 'SubscriptionId', ], 'OrganizationId' => [ 'shape' => 'IdType', 'location' => 'uri', 'locationName' => 'OrganizationId', ], ], ], 'DeleteUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'UserId' => [ 'shape' => 'IdType', 'location' => 'uri', 'locationName' => 'UserId', ], ], ], 'DescribeActivitiesRequest' => [ 'type' => 'structure', 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'StartTime' => [ 'shape' => 'TimestampType', 'location' => 'querystring', 'locationName' => 'startTime', ], 'EndTime' => [ 'shape' => 'TimestampType', 'location' => 'querystring', 'locationName' => 'endTime', ], 'OrganizationId' => [ 'shape' => 'IdType', 'location' => 'querystring', 'locationName' => 'organizationId', ], 'ActivityTypes' => [ 'shape' => 'ActivityNamesFilterType', 'location' => 'querystring', 'locationName' => 'activityTypes', ], 'ResourceId' => [ 'shape' => 'IdType', 'location' => 'querystring', 'locationName' => 'resourceId', ], 'UserId' => [ 'shape' => 'IdType', 'location' => 'querystring', 'locationName' => 'userId', ], 'IncludeIndirectActivities' => [ 'shape' => 'BooleanType', 'location' => 'querystring', 'locationName' => 'includeIndirectActivities', ], 'Limit' => [ 'shape' => 'LimitType', 'location' => 'querystring', 'locationName' => 'limit', ], 'Marker' => [ 'shape' => 'MarkerType', 'location' => 'querystring', 'locationName' => 'marker', ], ], ], 'DescribeActivitiesResponse' => [ 'type' => 'structure', 'members' => [ 'UserActivities' => [ 'shape' => 'UserActivities', ], 'Marker' => [ 'shape' => 'MarkerType', ], ], ], 'DescribeCommentsRequest' => [ 'type' => 'structure', 'required' => [ 'DocumentId', 'VersionId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'DocumentId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'DocumentId', ], 'VersionId' => [ 'shape' => 'DocumentVersionIdType', 'location' => 'uri', 'locationName' => 'VersionId', ], 'Limit' => [ 'shape' => 'LimitType', 'location' => 'querystring', 'locationName' => 'limit', ], 'Marker' => [ 'shape' => 'MarkerType', 'location' => 'querystring', 'locationName' => 'marker', ], ], ], 'DescribeCommentsResponse' => [ 'type' => 'structure', 'members' => [ 'Comments' => [ 'shape' => 'CommentList', ], 'Marker' => [ 'shape' => 'MarkerType', ], ], ], 'DescribeDocumentVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'DocumentId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'DocumentId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'DocumentId', ], 'Marker' => [ 'shape' => 'PageMarkerType', 'location' => 'querystring', 'locationName' => 'marker', ], 'Limit' => [ 'shape' => 'LimitType', 'location' => 'querystring', 'locationName' => 'limit', ], 'Include' => [ 'shape' => 'FieldNamesType', 'location' => 'querystring', 'locationName' => 'include', ], 'Fields' => [ 'shape' => 'FieldNamesType', 'location' => 'querystring', 'locationName' => 'fields', ], ], ], 'DescribeDocumentVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'DocumentVersions' => [ 'shape' => 'DocumentVersionMetadataList', ], 'Marker' => [ 'shape' => 'PageMarkerType', ], ], ], 'DescribeFolderContentsRequest' => [ 'type' => 'structure', 'required' => [ 'FolderId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'FolderId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'FolderId', ], 'Sort' => [ 'shape' => 'ResourceSortType', 'location' => 'querystring', 'locationName' => 'sort', ], 'Order' => [ 'shape' => 'OrderType', 'location' => 'querystring', 'locationName' => 'order', ], 'Limit' => [ 'shape' => 'LimitType', 'location' => 'querystring', 'locationName' => 'limit', ], 'Marker' => [ 'shape' => 'PageMarkerType', 'location' => 'querystring', 'locationName' => 'marker', ], 'Type' => [ 'shape' => 'FolderContentType', 'location' => 'querystring', 'locationName' => 'type', ], 'Include' => [ 'shape' => 'FieldNamesType', 'location' => 'querystring', 'locationName' => 'include', ], ], ], 'DescribeFolderContentsResponse' => [ 'type' => 'structure', 'members' => [ 'Folders' => [ 'shape' => 'FolderMetadataList', ], 'Documents' => [ 'shape' => 'DocumentMetadataList', ], 'Marker' => [ 'shape' => 'PageMarkerType', ], ], ], 'DescribeGroupsRequest' => [ 'type' => 'structure', 'required' => [ 'SearchQuery', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'SearchQuery' => [ 'shape' => 'SearchQueryType', 'location' => 'querystring', 'locationName' => 'searchQuery', ], 'OrganizationId' => [ 'shape' => 'IdType', 'location' => 'querystring', 'locationName' => 'organizationId', ], 'Marker' => [ 'shape' => 'MarkerType', 'location' => 'querystring', 'locationName' => 'marker', ], 'Limit' => [ 'shape' => 'PositiveIntegerType', 'location' => 'querystring', 'locationName' => 'limit', ], ], ], 'DescribeGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'Groups' => [ 'shape' => 'GroupMetadataList', ], 'Marker' => [ 'shape' => 'MarkerType', ], ], ], 'DescribeNotificationSubscriptionsRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'IdType', 'location' => 'uri', 'locationName' => 'OrganizationId', ], 'Marker' => [ 'shape' => 'PageMarkerType', 'location' => 'querystring', 'locationName' => 'marker', ], 'Limit' => [ 'shape' => 'LimitType', 'location' => 'querystring', 'locationName' => 'limit', ], ], ], 'DescribeNotificationSubscriptionsResponse' => [ 'type' => 'structure', 'members' => [ 'Subscriptions' => [ 'shape' => 'SubscriptionList', ], 'Marker' => [ 'shape' => 'PageMarkerType', ], ], ], 'DescribeResourcePermissionsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'ResourceId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'ResourceId', ], 'PrincipalId' => [ 'shape' => 'IdType', 'location' => 'querystring', 'locationName' => 'principalId', ], 'Limit' => [ 'shape' => 'LimitType', 'location' => 'querystring', 'locationName' => 'limit', ], 'Marker' => [ 'shape' => 'PageMarkerType', 'location' => 'querystring', 'locationName' => 'marker', ], ], ], 'DescribeResourcePermissionsResponse' => [ 'type' => 'structure', 'members' => [ 'Principals' => [ 'shape' => 'PrincipalList', ], 'Marker' => [ 'shape' => 'PageMarkerType', ], ], ], 'DescribeRootFoldersRequest' => [ 'type' => 'structure', 'required' => [ 'AuthenticationToken', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'Limit' => [ 'shape' => 'LimitType', 'location' => 'querystring', 'locationName' => 'limit', ], 'Marker' => [ 'shape' => 'PageMarkerType', 'location' => 'querystring', 'locationName' => 'marker', ], ], ], 'DescribeRootFoldersResponse' => [ 'type' => 'structure', 'members' => [ 'Folders' => [ 'shape' => 'FolderMetadataList', ], 'Marker' => [ 'shape' => 'PageMarkerType', ], ], ], 'DescribeUsersRequest' => [ 'type' => 'structure', 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'OrganizationId' => [ 'shape' => 'IdType', 'location' => 'querystring', 'locationName' => 'organizationId', ], 'UserIds' => [ 'shape' => 'UserIdsType', 'location' => 'querystring', 'locationName' => 'userIds', ], 'Query' => [ 'shape' => 'SearchQueryType', 'location' => 'querystring', 'locationName' => 'query', ], 'Include' => [ 'shape' => 'UserFilterType', 'location' => 'querystring', 'locationName' => 'include', ], 'Order' => [ 'shape' => 'OrderType', 'location' => 'querystring', 'locationName' => 'order', ], 'Sort' => [ 'shape' => 'UserSortType', 'location' => 'querystring', 'locationName' => 'sort', ], 'Marker' => [ 'shape' => 'PageMarkerType', 'location' => 'querystring', 'locationName' => 'marker', ], 'Limit' => [ 'shape' => 'LimitType', 'location' => 'querystring', 'locationName' => 'limit', ], 'Fields' => [ 'shape' => 'FieldNamesType', 'location' => 'querystring', 'locationName' => 'fields', ], ], ], 'DescribeUsersResponse' => [ 'type' => 'structure', 'members' => [ 'Users' => [ 'shape' => 'OrganizationUserList', ], 'TotalNumberOfUsers' => [ 'shape' => 'SizeType', 'deprecated' => true, ], 'Marker' => [ 'shape' => 'PageMarkerType', ], ], ], 'DocumentContentType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'DocumentLockedForCommentsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'DocumentMetadata' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ResourceIdType', ], 'CreatorId' => [ 'shape' => 'IdType', ], 'ParentFolderId' => [ 'shape' => 'ResourceIdType', ], 'CreatedTimestamp' => [ 'shape' => 'TimestampType', ], 'ModifiedTimestamp' => [ 'shape' => 'TimestampType', ], 'LatestVersionMetadata' => [ 'shape' => 'DocumentVersionMetadata', ], 'ResourceState' => [ 'shape' => 'ResourceStateType', ], 'Labels' => [ 'shape' => 'SharedLabels', ], ], ], 'DocumentMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DocumentMetadata', ], ], 'DocumentSourceType' => [ 'type' => 'string', 'enum' => [ 'ORIGINAL', 'WITH_COMMENTS', ], ], 'DocumentSourceUrlMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'DocumentSourceType', ], 'value' => [ 'shape' => 'UrlType', ], ], 'DocumentStatusType' => [ 'type' => 'string', 'enum' => [ 'INITIALIZED', 'ACTIVE', ], ], 'DocumentThumbnailType' => [ 'type' => 'string', 'enum' => [ 'SMALL', 'SMALL_HQ', 'LARGE', ], ], 'DocumentThumbnailUrlMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'DocumentThumbnailType', ], 'value' => [ 'shape' => 'UrlType', ], ], 'DocumentVersionIdType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w+-.@]+', ], 'DocumentVersionMetadata' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'DocumentVersionIdType', ], 'Name' => [ 'shape' => 'ResourceNameType', ], 'ContentType' => [ 'shape' => 'DocumentContentType', ], 'Size' => [ 'shape' => 'SizeType', ], 'Signature' => [ 'shape' => 'HashType', ], 'Status' => [ 'shape' => 'DocumentStatusType', ], 'CreatedTimestamp' => [ 'shape' => 'TimestampType', ], 'ModifiedTimestamp' => [ 'shape' => 'TimestampType', ], 'ContentCreatedTimestamp' => [ 'shape' => 'TimestampType', ], 'ContentModifiedTimestamp' => [ 'shape' => 'TimestampType', ], 'CreatorId' => [ 'shape' => 'IdType', ], 'Thumbnail' => [ 'shape' => 'DocumentThumbnailUrlMap', ], 'Source' => [ 'shape' => 'DocumentSourceUrlMap', ], ], ], 'DocumentVersionMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DocumentVersionMetadata', ], ], 'DocumentVersionStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', ], ], 'DraftUploadOutOfSyncException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'EmailAddressType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}', ], 'EntityAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'EntityIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IdType', ], ], 'EntityNotExistsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], 'EntityIds' => [ 'shape' => 'EntityIdList', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'ErrorMessageType' => [ 'type' => 'string', ], 'FailedDependencyException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 424, ], 'exception' => true, ], 'FieldNamesType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[\\w,]+', ], 'FolderContentType' => [ 'type' => 'string', 'enum' => [ 'ALL', 'DOCUMENT', 'FOLDER', ], ], 'FolderMetadata' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ResourceIdType', ], 'Name' => [ 'shape' => 'ResourceNameType', ], 'CreatorId' => [ 'shape' => 'IdType', ], 'ParentFolderId' => [ 'shape' => 'ResourceIdType', ], 'CreatedTimestamp' => [ 'shape' => 'TimestampType', ], 'ModifiedTimestamp' => [ 'shape' => 'TimestampType', ], 'ResourceState' => [ 'shape' => 'ResourceStateType', ], 'Signature' => [ 'shape' => 'HashType', ], 'Labels' => [ 'shape' => 'SharedLabels', ], 'Size' => [ 'shape' => 'SizeType', ], 'LatestVersionSize' => [ 'shape' => 'SizeType', ], ], ], 'FolderMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FolderMetadata', ], ], 'GetCurrentUserRequest' => [ 'type' => 'structure', 'required' => [ 'AuthenticationToken', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], ], ], 'GetCurrentUserResponse' => [ 'type' => 'structure', 'members' => [ 'User' => [ 'shape' => 'User', ], ], ], 'GetDocumentPathRequest' => [ 'type' => 'structure', 'required' => [ 'DocumentId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'DocumentId' => [ 'shape' => 'IdType', 'location' => 'uri', 'locationName' => 'DocumentId', ], 'Limit' => [ 'shape' => 'LimitType', 'location' => 'querystring', 'locationName' => 'limit', ], 'Fields' => [ 'shape' => 'FieldNamesType', 'location' => 'querystring', 'locationName' => 'fields', ], 'Marker' => [ 'shape' => 'PageMarkerType', 'location' => 'querystring', 'locationName' => 'marker', ], ], ], 'GetDocumentPathResponse' => [ 'type' => 'structure', 'members' => [ 'Path' => [ 'shape' => 'ResourcePath', ], ], ], 'GetDocumentRequest' => [ 'type' => 'structure', 'required' => [ 'DocumentId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'DocumentId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'DocumentId', ], 'IncludeCustomMetadata' => [ 'shape' => 'BooleanType', 'location' => 'querystring', 'locationName' => 'includeCustomMetadata', ], ], ], 'GetDocumentResponse' => [ 'type' => 'structure', 'members' => [ 'Metadata' => [ 'shape' => 'DocumentMetadata', ], 'CustomMetadata' => [ 'shape' => 'CustomMetadataMap', ], ], ], 'GetDocumentVersionRequest' => [ 'type' => 'structure', 'required' => [ 'DocumentId', 'VersionId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'DocumentId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'DocumentId', ], 'VersionId' => [ 'shape' => 'DocumentVersionIdType', 'location' => 'uri', 'locationName' => 'VersionId', ], 'Fields' => [ 'shape' => 'FieldNamesType', 'location' => 'querystring', 'locationName' => 'fields', ], 'IncludeCustomMetadata' => [ 'shape' => 'BooleanType', 'location' => 'querystring', 'locationName' => 'includeCustomMetadata', ], ], ], 'GetDocumentVersionResponse' => [ 'type' => 'structure', 'members' => [ 'Metadata' => [ 'shape' => 'DocumentVersionMetadata', ], 'CustomMetadata' => [ 'shape' => 'CustomMetadataMap', ], ], ], 'GetFolderPathRequest' => [ 'type' => 'structure', 'required' => [ 'FolderId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'FolderId' => [ 'shape' => 'IdType', 'location' => 'uri', 'locationName' => 'FolderId', ], 'Limit' => [ 'shape' => 'LimitType', 'location' => 'querystring', 'locationName' => 'limit', ], 'Fields' => [ 'shape' => 'FieldNamesType', 'location' => 'querystring', 'locationName' => 'fields', ], 'Marker' => [ 'shape' => 'PageMarkerType', 'location' => 'querystring', 'locationName' => 'marker', ], ], ], 'GetFolderPathResponse' => [ 'type' => 'structure', 'members' => [ 'Path' => [ 'shape' => 'ResourcePath', ], ], ], 'GetFolderRequest' => [ 'type' => 'structure', 'required' => [ 'FolderId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'FolderId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'FolderId', ], 'IncludeCustomMetadata' => [ 'shape' => 'BooleanType', 'location' => 'querystring', 'locationName' => 'includeCustomMetadata', ], ], ], 'GetFolderResponse' => [ 'type' => 'structure', 'members' => [ 'Metadata' => [ 'shape' => 'FolderMetadata', ], 'CustomMetadata' => [ 'shape' => 'CustomMetadataMap', ], ], ], 'GetResourcesRequest' => [ 'type' => 'structure', 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'UserId' => [ 'shape' => 'IdType', 'location' => 'querystring', 'locationName' => 'userId', ], 'CollectionType' => [ 'shape' => 'ResourceCollectionType', 'location' => 'querystring', 'locationName' => 'collectionType', ], 'Limit' => [ 'shape' => 'LimitType', 'location' => 'querystring', 'locationName' => 'limit', ], 'Marker' => [ 'shape' => 'PageMarkerType', 'location' => 'querystring', 'locationName' => 'marker', ], ], ], 'GetResourcesResponse' => [ 'type' => 'structure', 'members' => [ 'Folders' => [ 'shape' => 'FolderMetadataList', ], 'Documents' => [ 'shape' => 'DocumentMetadataList', ], 'Marker' => [ 'shape' => 'PageMarkerType', ], ], ], 'GroupMetadata' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'IdType', ], 'Name' => [ 'shape' => 'GroupNameType', ], ], ], 'GroupMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GroupMetadata', ], ], 'GroupNameType' => [ 'type' => 'string', ], 'HashType' => [ 'type' => 'string', 'max' => 128, 'min' => 0, 'pattern' => '[&\\w+-.@]+', ], 'HeaderNameType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[\\w-]+', ], 'HeaderValueType' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'IdType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[&\\w+-.@]+', ], 'IllegalUserStateException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'InitiateDocumentVersionUploadRequest' => [ 'type' => 'structure', 'required' => [ 'ParentFolderId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'Id' => [ 'shape' => 'ResourceIdType', ], 'Name' => [ 'shape' => 'ResourceNameType', ], 'ContentCreatedTimestamp' => [ 'shape' => 'TimestampType', ], 'ContentModifiedTimestamp' => [ 'shape' => 'TimestampType', ], 'ContentType' => [ 'shape' => 'DocumentContentType', ], 'DocumentSizeInBytes' => [ 'shape' => 'SizeType', ], 'ParentFolderId' => [ 'shape' => 'ResourceIdType', ], ], ], 'InitiateDocumentVersionUploadResponse' => [ 'type' => 'structure', 'members' => [ 'Metadata' => [ 'shape' => 'DocumentMetadata', ], 'UploadMetadata' => [ 'shape' => 'UploadMetadata', ], ], ], 'InvalidArgumentException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidCommentOperationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'InvalidOperationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 405, ], 'exception' => true, ], 'InvalidPasswordException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 401, ], 'exception' => true, ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'LimitType' => [ 'type' => 'integer', 'max' => 999, 'min' => 1, ], 'LocaleType' => [ 'type' => 'string', 'enum' => [ 'en', 'fr', 'ko', 'de', 'es', 'ja', 'ru', 'zh_CN', 'zh_TW', 'pt_BR', 'default', ], ], 'MarkerType' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '[\\u0000-\\u00FF]+', ], 'MessageType' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, 'sensitive' => true, ], 'NotificationOptions' => [ 'type' => 'structure', 'members' => [ 'SendEmail' => [ 'shape' => 'BooleanType', ], 'EmailMessage' => [ 'shape' => 'MessageType', ], ], ], 'OrderType' => [ 'type' => 'string', 'enum' => [ 'ASCENDING', 'DESCENDING', ], ], 'OrganizationUserList' => [ 'type' => 'list', 'member' => [ 'shape' => 'User', ], ], 'PageMarkerType' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'Participants' => [ 'type' => 'structure', 'members' => [ 'Users' => [ 'shape' => 'UserMetadataList', ], 'Groups' => [ 'shape' => 'GroupMetadataList', ], ], ], 'PasswordType' => [ 'type' => 'string', 'max' => 32, 'min' => 4, 'pattern' => '[\\u0020-\\u00FF]+', 'sensitive' => true, ], 'PermissionInfo' => [ 'type' => 'structure', 'members' => [ 'Role' => [ 'shape' => 'RoleType', ], 'Type' => [ 'shape' => 'RolePermissionType', ], ], ], 'PermissionInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PermissionInfo', ], ], 'PositiveIntegerType' => [ 'type' => 'integer', 'min' => 1, ], 'PositiveSizeType' => [ 'type' => 'long', 'min' => 0, ], 'Principal' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'IdType', ], 'Type' => [ 'shape' => 'PrincipalType', ], 'Roles' => [ 'shape' => 'PermissionInfoList', ], ], ], 'PrincipalList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Principal', ], ], 'PrincipalType' => [ 'type' => 'string', 'enum' => [ 'USER', 'GROUP', 'INVITE', 'ANONYMOUS', 'ORGANIZATION', ], ], 'ProhibitedStateException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'RemoveAllResourcePermissionsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'ResourceId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'ResourceId', ], ], ], 'RemoveResourcePermissionRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', 'PrincipalId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'ResourceId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'ResourceId', ], 'PrincipalId' => [ 'shape' => 'IdType', 'location' => 'uri', 'locationName' => 'PrincipalId', ], 'PrincipalType' => [ 'shape' => 'PrincipalType', 'location' => 'querystring', 'locationName' => 'type', ], ], ], 'RequestedEntityTooLargeException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 413, ], 'exception' => true, ], 'ResourceAlreadyCheckedOutException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'ResourceCollectionType' => [ 'type' => 'string', 'enum' => [ 'SHARED_WITH_ME', ], ], 'ResourceIdType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w+-.@]+', ], 'ResourceMetadata' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'ResourceType', ], 'Name' => [ 'shape' => 'ResourceNameType', ], 'OriginalName' => [ 'shape' => 'ResourceNameType', ], 'Id' => [ 'shape' => 'ResourceIdType', ], 'VersionId' => [ 'shape' => 'DocumentVersionIdType', ], 'Owner' => [ 'shape' => 'UserMetadata', ], 'ParentId' => [ 'shape' => 'ResourceIdType', ], ], ], 'ResourceNameType' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[\\u0020-\\u202D\\u202F-\\uFFFF]+', ], 'ResourcePath' => [ 'type' => 'structure', 'members' => [ 'Components' => [ 'shape' => 'ResourcePathComponentList', ], ], ], 'ResourcePathComponent' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'IdType', ], 'Name' => [ 'shape' => 'ResourceNameType', ], ], ], 'ResourcePathComponentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourcePathComponent', ], ], 'ResourceSortType' => [ 'type' => 'string', 'enum' => [ 'DATE', 'NAME', ], ], 'ResourceStateType' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'RESTORING', 'RECYCLING', 'RECYCLED', ], ], 'ResourceType' => [ 'type' => 'string', 'enum' => [ 'FOLDER', 'DOCUMENT', ], ], 'RolePermissionType' => [ 'type' => 'string', 'enum' => [ 'DIRECT', 'INHERITED', ], ], 'RoleType' => [ 'type' => 'string', 'enum' => [ 'VIEWER', 'CONTRIBUTOR', 'OWNER', 'COOWNER', ], ], 'SearchQueryType' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => '[\\u0020-\\uFFFF]+', 'sensitive' => true, ], 'ServiceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 503, ], 'exception' => true, 'fault' => true, ], 'SharePrincipal' => [ 'type' => 'structure', 'required' => [ 'Id', 'Type', 'Role', ], 'members' => [ 'Id' => [ 'shape' => 'IdType', ], 'Type' => [ 'shape' => 'PrincipalType', ], 'Role' => [ 'shape' => 'RoleType', ], ], ], 'SharePrincipalList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SharePrincipal', ], ], 'ShareResult' => [ 'type' => 'structure', 'members' => [ 'PrincipalId' => [ 'shape' => 'IdType', ], 'InviteePrincipalId' => [ 'shape' => 'IdType', ], 'Role' => [ 'shape' => 'RoleType', ], 'Status' => [ 'shape' => 'ShareStatusType', ], 'ShareId' => [ 'shape' => 'ResourceIdType', ], 'StatusMessage' => [ 'shape' => 'MessageType', ], ], ], 'ShareResultsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ShareResult', ], ], 'ShareStatusType' => [ 'type' => 'string', 'enum' => [ 'SUCCESS', 'FAILURE', ], ], 'SharedLabel' => [ 'type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '[a-zA-Z0-9._+-/=][a-zA-Z0-9 ._+-/=]*', ], 'SharedLabels' => [ 'type' => 'list', 'member' => [ 'shape' => 'SharedLabel', ], 'max' => 20, ], 'SignedHeaderMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'HeaderNameType', ], 'value' => [ 'shape' => 'HeaderValueType', ], ], 'SizeType' => [ 'type' => 'long', ], 'StorageLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'StorageLimitWillExceedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 413, ], 'exception' => true, ], 'StorageRuleType' => [ 'type' => 'structure', 'members' => [ 'StorageAllocatedInBytes' => [ 'shape' => 'PositiveSizeType', ], 'StorageType' => [ 'shape' => 'StorageType', ], ], ], 'StorageType' => [ 'type' => 'string', 'enum' => [ 'UNLIMITED', 'QUOTA', ], ], 'Subscription' => [ 'type' => 'structure', 'members' => [ 'SubscriptionId' => [ 'shape' => 'IdType', ], 'EndPoint' => [ 'shape' => 'SubscriptionEndPointType', ], 'Protocol' => [ 'shape' => 'SubscriptionProtocolType', ], ], ], 'SubscriptionEndPointType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'SubscriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Subscription', ], 'max' => 256, ], 'SubscriptionProtocolType' => [ 'type' => 'string', 'enum' => [ 'HTTPS', ], ], 'SubscriptionType' => [ 'type' => 'string', 'enum' => [ 'ALL', ], ], 'TimeZoneIdType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'TimestampType' => [ 'type' => 'timestamp', ], 'TooManyLabelsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'TooManySubscriptionsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'UnauthorizedOperationException' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, ], 'UnauthorizedResourceAccessException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessageType', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'UpdateDocumentRequest' => [ 'type' => 'structure', 'required' => [ 'DocumentId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'DocumentId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'DocumentId', ], 'Name' => [ 'shape' => 'ResourceNameType', ], 'ParentFolderId' => [ 'shape' => 'ResourceIdType', ], 'ResourceState' => [ 'shape' => 'ResourceStateType', ], ], ], 'UpdateDocumentVersionRequest' => [ 'type' => 'structure', 'required' => [ 'DocumentId', 'VersionId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'DocumentId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'DocumentId', ], 'VersionId' => [ 'shape' => 'DocumentVersionIdType', 'location' => 'uri', 'locationName' => 'VersionId', ], 'VersionStatus' => [ 'shape' => 'DocumentVersionStatus', ], ], ], 'UpdateFolderRequest' => [ 'type' => 'structure', 'required' => [ 'FolderId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'FolderId' => [ 'shape' => 'ResourceIdType', 'location' => 'uri', 'locationName' => 'FolderId', ], 'Name' => [ 'shape' => 'ResourceNameType', ], 'ParentFolderId' => [ 'shape' => 'ResourceIdType', ], 'ResourceState' => [ 'shape' => 'ResourceStateType', ], ], ], 'UpdateUserRequest' => [ 'type' => 'structure', 'required' => [ 'UserId', ], 'members' => [ 'AuthenticationToken' => [ 'shape' => 'AuthenticationHeaderType', 'location' => 'header', 'locationName' => 'Authentication', ], 'UserId' => [ 'shape' => 'IdType', 'location' => 'uri', 'locationName' => 'UserId', ], 'GivenName' => [ 'shape' => 'UserAttributeValueType', ], 'Surname' => [ 'shape' => 'UserAttributeValueType', ], 'Type' => [ 'shape' => 'UserType', ], 'StorageRule' => [ 'shape' => 'StorageRuleType', ], 'TimeZoneId' => [ 'shape' => 'TimeZoneIdType', ], 'Locale' => [ 'shape' => 'LocaleType', ], 'GrantPoweruserPrivileges' => [ 'shape' => 'BooleanEnumType', ], ], ], 'UpdateUserResponse' => [ 'type' => 'structure', 'members' => [ 'User' => [ 'shape' => 'User', ], ], ], 'UploadMetadata' => [ 'type' => 'structure', 'members' => [ 'UploadUrl' => [ 'shape' => 'UrlType', ], 'SignedHeaders' => [ 'shape' => 'SignedHeaderMap', ], ], ], 'UrlType' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'sensitive' => true, ], 'User' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'IdType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'EmailAddress' => [ 'shape' => 'EmailAddressType', ], 'GivenName' => [ 'shape' => 'UserAttributeValueType', ], 'Surname' => [ 'shape' => 'UserAttributeValueType', ], 'OrganizationId' => [ 'shape' => 'IdType', ], 'RootFolderId' => [ 'shape' => 'ResourceIdType', ], 'RecycleBinFolderId' => [ 'shape' => 'ResourceIdType', ], 'Status' => [ 'shape' => 'UserStatusType', ], 'Type' => [ 'shape' => 'UserType', ], 'CreatedTimestamp' => [ 'shape' => 'TimestampType', ], 'ModifiedTimestamp' => [ 'shape' => 'TimestampType', ], 'TimeZoneId' => [ 'shape' => 'TimeZoneIdType', ], 'Locale' => [ 'shape' => 'LocaleType', ], 'Storage' => [ 'shape' => 'UserStorageMetadata', ], ], ], 'UserActivities' => [ 'type' => 'list', 'member' => [ 'shape' => 'Activity', ], ], 'UserAttributeValueType' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'UserFilterType' => [ 'type' => 'string', 'enum' => [ 'ALL', 'ACTIVE_PENDING', ], ], 'UserIdsType' => [ 'type' => 'string', 'max' => 2000, 'min' => 1, 'pattern' => '[&\\w+-.@, ]+', ], 'UserMetadata' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'IdType', ], 'Username' => [ 'shape' => 'UsernameType', ], 'GivenName' => [ 'shape' => 'UserAttributeValueType', ], 'Surname' => [ 'shape' => 'UserAttributeValueType', ], 'EmailAddress' => [ 'shape' => 'EmailAddressType', ], ], ], 'UserMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserMetadata', ], ], 'UserSortType' => [ 'type' => 'string', 'enum' => [ 'USER_NAME', 'FULL_NAME', 'STORAGE_LIMIT', 'USER_STATUS', 'STORAGE_USED', ], ], 'UserStatusType' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'INACTIVE', 'PENDING', ], ], 'UserStorageMetadata' => [ 'type' => 'structure', 'members' => [ 'StorageUtilizedInBytes' => [ 'shape' => 'SizeType', ], 'StorageRule' => [ 'shape' => 'StorageRuleType', ], ], ], 'UserType' => [ 'type' => 'string', 'enum' => [ 'USER', 'ADMIN', 'POWERUSER', 'MINIMALUSER', 'WORKSPACESUSER', ], ], 'UsernameType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[\\w\\-+.]+(@[a-zA-Z0-9.\\-]+\\.[a-zA-Z]+)?', ], ],]; diff --git a/lib/aws/Aws/data/workdocs/2016-05-01/paginators-1.json.php b/lib/aws/Aws/data/workdocs/2016-05-01/paginators-1.json.php new file mode 100644 index 0000000..73b7ce2 --- /dev/null +++ b/lib/aws/Aws/data/workdocs/2016-05-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/workdocs/2016-05-01/paginators-1.json +return [ 'pagination' => [ 'DescribeDocumentVersions' => [ 'input_token' => 'Marker', 'limit_key' => 'Limit', 'output_token' => 'Marker', 'result_key' => 'DocumentVersions', ], 'DescribeFolderContents' => [ 'input_token' => 'Marker', 'limit_key' => 'Limit', 'output_token' => 'Marker', 'result_key' => [ 'Folders', 'Documents', ], ], 'DescribeUsers' => [ 'input_token' => 'Marker', 'limit_key' => 'Limit', 'output_token' => 'Marker', 'result_key' => 'Users', ], ],]; diff --git a/lib/aws/Aws/data/worklink/2018-09-25/api-2.json.php b/lib/aws/Aws/data/worklink/2018-09-25/api-2.json.php new file mode 100644 index 0000000..5ec0fdc --- /dev/null +++ b/lib/aws/Aws/data/worklink/2018-09-25/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/worklink/2018-09-25/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2018-09-25', 'endpointPrefix' => 'worklink', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'WorkLink', 'serviceFullName' => 'Amazon WorkLink', 'serviceId' => 'WorkLink', 'signatureVersion' => 'v4', 'signingName' => 'worklink', 'uid' => 'worklink-2018-09-25', ], 'operations' => [ 'AssociateWebsiteCertificateAuthority' => [ 'name' => 'AssociateWebsiteCertificateAuthority', 'http' => [ 'method' => 'POST', 'requestUri' => '/associateWebsiteCertificateAuthority', ], 'input' => [ 'shape' => 'AssociateWebsiteCertificateAuthorityRequest', ], 'output' => [ 'shape' => 'AssociateWebsiteCertificateAuthorityResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'CreateFleet' => [ 'name' => 'CreateFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/createFleet', ], 'input' => [ 'shape' => 'CreateFleetRequest', ], 'output' => [ 'shape' => 'CreateFleetResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DeleteFleet' => [ 'name' => 'DeleteFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/deleteFleet', ], 'input' => [ 'shape' => 'DeleteFleetRequest', ], 'output' => [ 'shape' => 'DeleteFleetResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeAuditStreamConfiguration' => [ 'name' => 'DescribeAuditStreamConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/describeAuditStreamConfiguration', ], 'input' => [ 'shape' => 'DescribeAuditStreamConfigurationRequest', ], 'output' => [ 'shape' => 'DescribeAuditStreamConfigurationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeCompanyNetworkConfiguration' => [ 'name' => 'DescribeCompanyNetworkConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/describeCompanyNetworkConfiguration', ], 'input' => [ 'shape' => 'DescribeCompanyNetworkConfigurationRequest', ], 'output' => [ 'shape' => 'DescribeCompanyNetworkConfigurationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeDevice' => [ 'name' => 'DescribeDevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/describeDevice', ], 'input' => [ 'shape' => 'DescribeDeviceRequest', ], 'output' => [ 'shape' => 'DescribeDeviceResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeDevicePolicyConfiguration' => [ 'name' => 'DescribeDevicePolicyConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/describeDevicePolicyConfiguration', ], 'input' => [ 'shape' => 'DescribeDevicePolicyConfigurationRequest', ], 'output' => [ 'shape' => 'DescribeDevicePolicyConfigurationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeFleetMetadata' => [ 'name' => 'DescribeFleetMetadata', 'http' => [ 'method' => 'POST', 'requestUri' => '/describeFleetMetadata', ], 'input' => [ 'shape' => 'DescribeFleetMetadataRequest', ], 'output' => [ 'shape' => 'DescribeFleetMetadataResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeIdentityProviderConfiguration' => [ 'name' => 'DescribeIdentityProviderConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/describeIdentityProviderConfiguration', ], 'input' => [ 'shape' => 'DescribeIdentityProviderConfigurationRequest', ], 'output' => [ 'shape' => 'DescribeIdentityProviderConfigurationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DescribeWebsiteCertificateAuthority' => [ 'name' => 'DescribeWebsiteCertificateAuthority', 'http' => [ 'method' => 'POST', 'requestUri' => '/describeWebsiteCertificateAuthority', ], 'input' => [ 'shape' => 'DescribeWebsiteCertificateAuthorityRequest', ], 'output' => [ 'shape' => 'DescribeWebsiteCertificateAuthorityResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'DisassociateWebsiteCertificateAuthority' => [ 'name' => 'DisassociateWebsiteCertificateAuthority', 'http' => [ 'method' => 'POST', 'requestUri' => '/disassociateWebsiteCertificateAuthority', ], 'input' => [ 'shape' => 'DisassociateWebsiteCertificateAuthorityRequest', ], 'output' => [ 'shape' => 'DisassociateWebsiteCertificateAuthorityResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListDevices' => [ 'name' => 'ListDevices', 'http' => [ 'method' => 'POST', 'requestUri' => '/listDevices', ], 'input' => [ 'shape' => 'ListDevicesRequest', ], 'output' => [ 'shape' => 'ListDevicesResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListFleets' => [ 'name' => 'ListFleets', 'http' => [ 'method' => 'POST', 'requestUri' => '/listFleets', ], 'input' => [ 'shape' => 'ListFleetsRequest', ], 'output' => [ 'shape' => 'ListFleetsResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'ListWebsiteCertificateAuthorities' => [ 'name' => 'ListWebsiteCertificateAuthorities', 'http' => [ 'method' => 'POST', 'requestUri' => '/listWebsiteCertificateAuthorities', ], 'input' => [ 'shape' => 'ListWebsiteCertificateAuthoritiesRequest', ], 'output' => [ 'shape' => 'ListWebsiteCertificateAuthoritiesResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'SignOutUser' => [ 'name' => 'SignOutUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/signOutUser', ], 'input' => [ 'shape' => 'SignOutUserRequest', ], 'output' => [ 'shape' => 'SignOutUserResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateAuditStreamConfiguration' => [ 'name' => 'UpdateAuditStreamConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/updateAuditStreamConfiguration', ], 'input' => [ 'shape' => 'UpdateAuditStreamConfigurationRequest', ], 'output' => [ 'shape' => 'UpdateAuditStreamConfigurationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateCompanyNetworkConfiguration' => [ 'name' => 'UpdateCompanyNetworkConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/updateCompanyNetworkConfiguration', ], 'input' => [ 'shape' => 'UpdateCompanyNetworkConfigurationRequest', ], 'output' => [ 'shape' => 'UpdateCompanyNetworkConfigurationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateDevicePolicyConfiguration' => [ 'name' => 'UpdateDevicePolicyConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/updateDevicePolicyConfiguration', ], 'input' => [ 'shape' => 'UpdateDevicePolicyConfigurationRequest', ], 'output' => [ 'shape' => 'UpdateDevicePolicyConfigurationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateFleetMetadata' => [ 'name' => 'UpdateFleetMetadata', 'http' => [ 'method' => 'POST', 'requestUri' => '/UpdateFleetMetadata', ], 'input' => [ 'shape' => 'UpdateFleetMetadataRequest', ], 'output' => [ 'shape' => 'UpdateFleetMetadataResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], 'UpdateIdentityProviderConfiguration' => [ 'name' => 'UpdateIdentityProviderConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/updateIdentityProviderConfiguration', ], 'input' => [ 'shape' => 'UpdateIdentityProviderConfigurationRequest', ], 'output' => [ 'shape' => 'UpdateIdentityProviderConfigurationResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'InternalServerErrorException', ], [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TooManyRequestsException', ], ], ], ], 'shapes' => [ 'AssociateWebsiteCertificateAuthorityRequest' => [ 'type' => 'structure', 'required' => [ 'FleetArn', 'Certificate', ], 'members' => [ 'FleetArn' => [ 'shape' => 'FleetArn', ], 'Certificate' => [ 'shape' => 'Certificate', ], 'DisplayName' => [ 'shape' => 'DisplayName', ], ], ], 'AssociateWebsiteCertificateAuthorityResponse' => [ 'type' => 'structure', 'members' => [ 'WebsiteCaId' => [ 'shape' => 'Id', ], ], ], 'AuditStreamArn' => [ 'type' => 'string', ], 'Boolean' => [ 'type' => 'boolean', ], 'Certificate' => [ 'type' => 'string', 'max' => 8192, 'min' => 1, 'pattern' => '-{5}BEGIN CERTIFICATE-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END CERTIFICATE-{5}(\\u000D?\\u000A)?', ], 'CertificateChain' => [ 'type' => 'string', 'max' => 32768, 'min' => 1, 'pattern' => '(-{5}BEGIN CERTIFICATE-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END CERTIFICATE-{5}\\u000D?\\u000A)*-{5}BEGIN CERTIFICATE-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END CERTIFICATE-{5}(\\u000D?\\u000A)?', ], 'CompanyCode' => [ 'type' => 'string', 'max' => 32, 'min' => 1, ], 'CreateFleetRequest' => [ 'type' => 'structure', 'required' => [ 'FleetName', ], 'members' => [ 'FleetName' => [ 'shape' => 'FleetName', ], 'DisplayName' => [ 'shape' => 'DisplayName', ], 'OptimizeForEndUserLocation' => [ 'shape' => 'Boolean', ], ], ], 'CreateFleetResponse' => [ 'type' => 'structure', 'members' => [ 'FleetArn' => [ 'shape' => 'FleetArn', ], ], ], 'DateTime' => [ 'type' => 'timestamp', ], 'DeleteFleetRequest' => [ 'type' => 'structure', 'required' => [ 'FleetArn', ], 'members' => [ 'FleetArn' => [ 'shape' => 'FleetArn', ], ], ], 'DeleteFleetResponse' => [ 'type' => 'structure', 'members' => [], ], 'DescribeAuditStreamConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'FleetArn', ], 'members' => [ 'FleetArn' => [ 'shape' => 'FleetArn', ], ], ], 'DescribeAuditStreamConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'AuditStreamArn' => [ 'shape' => 'AuditStreamArn', ], ], ], 'DescribeCompanyNetworkConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'FleetArn', ], 'members' => [ 'FleetArn' => [ 'shape' => 'FleetArn', ], ], ], 'DescribeCompanyNetworkConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', ], 'SubnetIds' => [ 'shape' => 'SubnetIds', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIds', ], ], ], 'DescribeDevicePolicyConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'FleetArn', ], 'members' => [ 'FleetArn' => [ 'shape' => 'FleetArn', ], ], ], 'DescribeDevicePolicyConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'DeviceCaCertificate' => [ 'shape' => 'Certificate', ], ], ], 'DescribeDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'FleetArn', 'DeviceId', ], 'members' => [ 'FleetArn' => [ 'shape' => 'FleetArn', ], 'DeviceId' => [ 'shape' => 'Id', ], ], ], 'DescribeDeviceResponse' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'DeviceStatus', ], 'Model' => [ 'shape' => 'DeviceModel', ], 'Manufacturer' => [ 'shape' => 'DeviceManufacturer', ], 'OperatingSystem' => [ 'shape' => 'DeviceOperatingSystemName', ], 'OperatingSystemVersion' => [ 'shape' => 'DeviceOperatingSystemVersion', ], 'PatchLevel' => [ 'shape' => 'DevicePatchLevel', ], 'FirstAccessedTime' => [ 'shape' => 'DateTime', ], 'LastAccessedTime' => [ 'shape' => 'DateTime', ], 'Username' => [ 'shape' => 'Username', ], ], ], 'DescribeFleetMetadataRequest' => [ 'type' => 'structure', 'required' => [ 'FleetArn', ], 'members' => [ 'FleetArn' => [ 'shape' => 'FleetArn', ], ], ], 'DescribeFleetMetadataResponse' => [ 'type' => 'structure', 'members' => [ 'CreatedTime' => [ 'shape' => 'DateTime', ], 'LastUpdatedTime' => [ 'shape' => 'DateTime', ], 'FleetName' => [ 'shape' => 'FleetName', ], 'DisplayName' => [ 'shape' => 'DisplayName', ], 'OptimizeForEndUserLocation' => [ 'shape' => 'Boolean', ], 'CompanyCode' => [ 'shape' => 'CompanyCode', ], 'FleetStatus' => [ 'shape' => 'FleetStatus', ], ], ], 'DescribeIdentityProviderConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'FleetArn', ], 'members' => [ 'FleetArn' => [ 'shape' => 'FleetArn', ], ], ], 'DescribeIdentityProviderConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'IdentityProviderType' => [ 'shape' => 'IdentityProviderType', ], 'ServiceProviderSamlMetadata' => [ 'shape' => 'SamlMetadata', ], 'IdentityProviderSamlMetadata' => [ 'shape' => 'SamlMetadata', ], ], ], 'DescribeWebsiteCertificateAuthorityRequest' => [ 'type' => 'structure', 'required' => [ 'FleetArn', 'WebsiteCaId', ], 'members' => [ 'FleetArn' => [ 'shape' => 'FleetArn', ], 'WebsiteCaId' => [ 'shape' => 'Id', ], ], ], 'DescribeWebsiteCertificateAuthorityResponse' => [ 'type' => 'structure', 'members' => [ 'Certificate' => [ 'shape' => 'Certificate', ], 'CreatedTime' => [ 'shape' => 'DateTime', ], 'DisplayName' => [ 'shape' => 'DisplayName', ], ], ], 'DeviceManufacturer' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'DeviceModel' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'DeviceOperatingSystemName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'DeviceOperatingSystemVersion' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'DevicePatchLevel' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'DeviceStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'SIGNED_OUT', ], ], 'DeviceSummary' => [ 'type' => 'structure', 'members' => [ 'DeviceId' => [ 'shape' => 'Id', ], 'DeviceStatus' => [ 'shape' => 'DeviceStatus', ], ], ], 'DeviceSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeviceSummary', ], ], 'DisassociateWebsiteCertificateAuthorityRequest' => [ 'type' => 'structure', 'required' => [ 'FleetArn', 'WebsiteCaId', ], 'members' => [ 'FleetArn' => [ 'shape' => 'FleetArn', ], 'WebsiteCaId' => [ 'shape' => 'Id', ], ], ], 'DisassociateWebsiteCertificateAuthorityResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisplayName' => [ 'type' => 'string', 'max' => 100, ], 'ExceptionMessage' => [ 'type' => 'string', ], 'FleetArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, ], 'FleetName' => [ 'type' => 'string', 'max' => 48, 'min' => 1, 'pattern' => '^[a-z0-9](?:[a-z0-9\\-]{0,46}[a-z0-9])?$', ], 'FleetStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED_TO_CREATE', 'FAILED_TO_DELETE', ], ], 'FleetSummary' => [ 'type' => 'structure', 'members' => [ 'FleetArn' => [ 'shape' => 'FleetArn', ], 'CreatedTime' => [ 'shape' => 'DateTime', ], 'LastUpdatedTime' => [ 'shape' => 'DateTime', ], 'FleetName' => [ 'shape' => 'FleetName', ], 'DisplayName' => [ 'shape' => 'DisplayName', ], 'CompanyCode' => [ 'shape' => 'CompanyCode', ], 'FleetStatus' => [ 'shape' => 'FleetStatus', ], ], ], 'FleetSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetSummary', ], ], 'Id' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'IdentityProviderType' => [ 'type' => 'string', 'enum' => [ 'SAML', ], ], 'InternalServerErrorException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ListDevicesRequest' => [ 'type' => 'structure', 'required' => [ 'FleetArn', ], 'members' => [ 'FleetArn' => [ 'shape' => 'FleetArn', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListDevicesResponse' => [ 'type' => 'structure', 'members' => [ 'Devices' => [ 'shape' => 'DeviceSummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListFleetsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListFleetsResponse' => [ 'type' => 'structure', 'members' => [ 'FleetSummaryList' => [ 'shape' => 'FleetSummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListWebsiteCertificateAuthoritiesRequest' => [ 'type' => 'structure', 'required' => [ 'FleetArn', ], 'members' => [ 'FleetArn' => [ 'shape' => 'FleetArn', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListWebsiteCertificateAuthoritiesResponse' => [ 'type' => 'structure', 'members' => [ 'WebsiteCertificateAuthorities' => [ 'shape' => 'WebsiteCaSummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'MaxResults' => [ 'type' => 'integer', 'min' => 1, ], 'NextToken' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, 'pattern' => '[\\w\\-]+', ], 'ResourceAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'SamlMetadata' => [ 'type' => 'string', 'max' => 204800, 'min' => 1, ], 'SecurityGroupId' => [ 'type' => 'string', 'pattern' => '^sg-([0-9a-f]{8}|[0-9a-f]{17})$', ], 'SecurityGroupIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', ], ], 'SignOutUserRequest' => [ 'type' => 'structure', 'required' => [ 'FleetArn', 'Username', ], 'members' => [ 'FleetArn' => [ 'shape' => 'FleetArn', ], 'Username' => [ 'shape' => 'Username', ], ], ], 'SignOutUserResponse' => [ 'type' => 'structure', 'members' => [], ], 'SubnetId' => [ 'type' => 'string', 'pattern' => '^subnet-([0-9a-f]{8}|[0-9a-f]{17})$', ], 'SubnetIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', ], ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'UnauthorizedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ExceptionMessage', ], ], 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, ], 'UpdateAuditStreamConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'FleetArn', ], 'members' => [ 'FleetArn' => [ 'shape' => 'FleetArn', ], 'AuditStreamArn' => [ 'shape' => 'AuditStreamArn', ], ], ], 'UpdateAuditStreamConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateCompanyNetworkConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'FleetArn', 'VpcId', 'SubnetIds', 'SecurityGroupIds', ], 'members' => [ 'FleetArn' => [ 'shape' => 'FleetArn', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'SubnetIds' => [ 'shape' => 'SubnetIds', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIds', ], ], ], 'UpdateCompanyNetworkConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateDevicePolicyConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'FleetArn', ], 'members' => [ 'FleetArn' => [ 'shape' => 'FleetArn', ], 'DeviceCaCertificate' => [ 'shape' => 'CertificateChain', ], ], ], 'UpdateDevicePolicyConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateFleetMetadataRequest' => [ 'type' => 'structure', 'required' => [ 'FleetArn', ], 'members' => [ 'FleetArn' => [ 'shape' => 'FleetArn', ], 'DisplayName' => [ 'shape' => 'DisplayName', ], 'OptimizeForEndUserLocation' => [ 'shape' => 'Boolean', ], ], ], 'UpdateFleetMetadataResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateIdentityProviderConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'FleetArn', 'IdentityProviderType', ], 'members' => [ 'FleetArn' => [ 'shape' => 'FleetArn', ], 'IdentityProviderType' => [ 'shape' => 'IdentityProviderType', ], 'IdentityProviderSamlMetadata' => [ 'shape' => 'SamlMetadata', ], ], ], 'UpdateIdentityProviderConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'Username' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'VpcId' => [ 'type' => 'string', 'pattern' => '^vpc-([0-9a-f]{8}|[0-9a-f]{17})$', ], 'WebsiteCaSummary' => [ 'type' => 'structure', 'members' => [ 'WebsiteCaId' => [ 'shape' => 'Id', ], 'CreatedTime' => [ 'shape' => 'DateTime', ], 'DisplayName' => [ 'shape' => 'DisplayName', ], ], ], 'WebsiteCaSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WebsiteCaSummary', ], ], ],]; diff --git a/lib/aws/Aws/data/worklink/2018-09-25/paginators-1.json.php b/lib/aws/Aws/data/worklink/2018-09-25/paginators-1.json.php new file mode 100644 index 0000000..98a8cbd --- /dev/null +++ b/lib/aws/Aws/data/worklink/2018-09-25/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/worklink/2018-09-25/paginators-1.json +return [ 'pagination' => [ 'ListDevices' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListFleets' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListWebsiteCertificateAuthorities' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/workmail/2017-10-01/api-2.json.php b/lib/aws/Aws/data/workmail/2017-10-01/api-2.json.php new file mode 100644 index 0000000..cfab0e0 --- /dev/null +++ b/lib/aws/Aws/data/workmail/2017-10-01/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/workmail/2017-10-01/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2017-10-01', 'endpointPrefix' => 'workmail', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Amazon WorkMail', 'serviceId' => 'WorkMail', 'signatureVersion' => 'v4', 'targetPrefix' => 'WorkMailService', 'uid' => 'workmail-2017-10-01', ], 'operations' => [ 'AssociateDelegateToResource' => [ 'name' => 'AssociateDelegateToResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateDelegateToResourceRequest', ], 'output' => [ 'shape' => 'AssociateDelegateToResourceResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'EntityStateException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], ], 'idempotent' => true, ], 'AssociateMemberToGroup' => [ 'name' => 'AssociateMemberToGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateMemberToGroupRequest', ], 'output' => [ 'shape' => 'AssociateMemberToGroupResponse', ], 'errors' => [ [ 'shape' => 'DirectoryServiceAuthenticationFailedException', ], [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'EntityStateException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], [ 'shape' => 'UnsupportedOperationException', ], ], 'idempotent' => true, ], 'CreateAlias' => [ 'name' => 'CreateAlias', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAliasRequest', ], 'output' => [ 'shape' => 'CreateAliasResponse', ], 'errors' => [ [ 'shape' => 'EmailAddressInUseException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'EntityStateException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MailDomainNotFoundException', ], [ 'shape' => 'MailDomainStateException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], ], 'idempotent' => true, ], 'CreateGroup' => [ 'name' => 'CreateGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateGroupRequest', ], 'output' => [ 'shape' => 'CreateGroupResponse', ], 'errors' => [ [ 'shape' => 'DirectoryServiceAuthenticationFailedException', ], [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NameAvailabilityException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], [ 'shape' => 'ReservedNameException', ], [ 'shape' => 'UnsupportedOperationException', ], ], 'idempotent' => true, ], 'CreateResource' => [ 'name' => 'CreateResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateResourceRequest', ], 'output' => [ 'shape' => 'CreateResourceResponse', ], 'errors' => [ [ 'shape' => 'DirectoryServiceAuthenticationFailedException', ], [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NameAvailabilityException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], [ 'shape' => 'ReservedNameException', ], ], 'idempotent' => true, ], 'CreateUser' => [ 'name' => 'CreateUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateUserRequest', ], 'output' => [ 'shape' => 'CreateUserResponse', ], 'errors' => [ [ 'shape' => 'DirectoryServiceAuthenticationFailedException', ], [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidPasswordException', ], [ 'shape' => 'NameAvailabilityException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], [ 'shape' => 'ReservedNameException', ], [ 'shape' => 'UnsupportedOperationException', ], ], 'idempotent' => true, ], 'DeleteAlias' => [ 'name' => 'DeleteAlias', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAliasRequest', ], 'output' => [ 'shape' => 'DeleteAliasResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'EntityStateException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], ], 'idempotent' => true, ], 'DeleteGroup' => [ 'name' => 'DeleteGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteGroupRequest', ], 'output' => [ 'shape' => 'DeleteGroupResponse', ], 'errors' => [ [ 'shape' => 'DirectoryServiceAuthenticationFailedException', ], [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'EntityStateException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], [ 'shape' => 'UnsupportedOperationException', ], ], 'idempotent' => true, ], 'DeleteMailboxPermissions' => [ 'name' => 'DeleteMailboxPermissions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteMailboxPermissionsRequest', ], 'output' => [ 'shape' => 'DeleteMailboxPermissionsResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'EntityStateException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], ], 'idempotent' => true, ], 'DeleteResource' => [ 'name' => 'DeleteResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteResourceRequest', ], 'output' => [ 'shape' => 'DeleteResourceResponse', ], 'errors' => [ [ 'shape' => 'EntityStateException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], ], 'idempotent' => true, ], 'DeleteUser' => [ 'name' => 'DeleteUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteUserRequest', ], 'output' => [ 'shape' => 'DeleteUserResponse', ], 'errors' => [ [ 'shape' => 'DirectoryServiceAuthenticationFailedException', ], [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'EntityStateException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], [ 'shape' => 'UnsupportedOperationException', ], ], 'idempotent' => true, ], 'DeregisterFromWorkMail' => [ 'name' => 'DeregisterFromWorkMail', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterFromWorkMailRequest', ], 'output' => [ 'shape' => 'DeregisterFromWorkMailResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'EntityStateException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], ], 'idempotent' => true, ], 'DescribeGroup' => [ 'name' => 'DescribeGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeGroupRequest', ], 'output' => [ 'shape' => 'DescribeGroupResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], ], 'idempotent' => true, ], 'DescribeOrganization' => [ 'name' => 'DescribeOrganization', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeOrganizationRequest', ], 'output' => [ 'shape' => 'DescribeOrganizationResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], ], 'idempotent' => true, ], 'DescribeResource' => [ 'name' => 'DescribeResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeResourceRequest', ], 'output' => [ 'shape' => 'DescribeResourceResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], ], 'idempotent' => true, ], 'DescribeUser' => [ 'name' => 'DescribeUser', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeUserRequest', ], 'output' => [ 'shape' => 'DescribeUserResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], ], 'idempotent' => true, ], 'DisassociateDelegateFromResource' => [ 'name' => 'DisassociateDelegateFromResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateDelegateFromResourceRequest', ], 'output' => [ 'shape' => 'DisassociateDelegateFromResourceResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'EntityStateException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], ], 'idempotent' => true, ], 'DisassociateMemberFromGroup' => [ 'name' => 'DisassociateMemberFromGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateMemberFromGroupRequest', ], 'output' => [ 'shape' => 'DisassociateMemberFromGroupResponse', ], 'errors' => [ [ 'shape' => 'DirectoryServiceAuthenticationFailedException', ], [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'EntityStateException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], [ 'shape' => 'UnsupportedOperationException', ], ], 'idempotent' => true, ], 'ListAliases' => [ 'name' => 'ListAliases', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAliasesRequest', ], 'output' => [ 'shape' => 'ListAliasesResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'EntityStateException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], ], 'idempotent' => true, ], 'ListGroupMembers' => [ 'name' => 'ListGroupMembers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListGroupMembersRequest', ], 'output' => [ 'shape' => 'ListGroupMembersResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'EntityStateException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], ], 'idempotent' => true, ], 'ListGroups' => [ 'name' => 'ListGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListGroupsRequest', ], 'output' => [ 'shape' => 'ListGroupsResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], ], 'idempotent' => true, ], 'ListMailboxPermissions' => [ 'name' => 'ListMailboxPermissions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListMailboxPermissionsRequest', ], 'output' => [ 'shape' => 'ListMailboxPermissionsResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], ], 'idempotent' => true, ], 'ListOrganizations' => [ 'name' => 'ListOrganizations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListOrganizationsRequest', ], 'output' => [ 'shape' => 'ListOrganizationsResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], ], 'idempotent' => true, ], 'ListResourceDelegates' => [ 'name' => 'ListResourceDelegates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListResourceDelegatesRequest', ], 'output' => [ 'shape' => 'ListResourceDelegatesResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'EntityStateException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], ], 'idempotent' => true, ], 'ListResources' => [ 'name' => 'ListResources', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListResourcesRequest', ], 'output' => [ 'shape' => 'ListResourcesResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], ], 'idempotent' => true, ], 'ListUsers' => [ 'name' => 'ListUsers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListUsersRequest', ], 'output' => [ 'shape' => 'ListUsersResponse', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], ], 'idempotent' => true, ], 'PutMailboxPermissions' => [ 'name' => 'PutMailboxPermissions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutMailboxPermissionsRequest', ], 'output' => [ 'shape' => 'PutMailboxPermissionsResponse', ], 'errors' => [ [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'EntityStateException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], ], 'idempotent' => true, ], 'RegisterToWorkMail' => [ 'name' => 'RegisterToWorkMail', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterToWorkMailRequest', ], 'output' => [ 'shape' => 'RegisterToWorkMailResponse', ], 'errors' => [ [ 'shape' => 'DirectoryServiceAuthenticationFailedException', ], [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'EmailAddressInUseException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'EntityStateException', ], [ 'shape' => 'EntityAlreadyRegisteredException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MailDomainNotFoundException', ], [ 'shape' => 'MailDomainStateException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], ], 'idempotent' => true, ], 'ResetPassword' => [ 'name' => 'ResetPassword', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetPasswordRequest', ], 'output' => [ 'shape' => 'ResetPasswordResponse', ], 'errors' => [ [ 'shape' => 'DirectoryServiceAuthenticationFailedException', ], [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'EntityStateException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidPasswordException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], [ 'shape' => 'UnsupportedOperationException', ], ], 'idempotent' => true, ], 'UpdatePrimaryEmailAddress' => [ 'name' => 'UpdatePrimaryEmailAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdatePrimaryEmailAddressRequest', ], 'output' => [ 'shape' => 'UpdatePrimaryEmailAddressResponse', ], 'errors' => [ [ 'shape' => 'DirectoryServiceAuthenticationFailedException', ], [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'EmailAddressInUseException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'EntityStateException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'MailDomainNotFoundException', ], [ 'shape' => 'MailDomainStateException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], [ 'shape' => 'UnsupportedOperationException', ], ], 'idempotent' => true, ], 'UpdateResource' => [ 'name' => 'UpdateResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateResourceRequest', ], 'output' => [ 'shape' => 'UpdateResourceResponse', ], 'errors' => [ [ 'shape' => 'DirectoryUnavailableException', ], [ 'shape' => 'EntityNotFoundException', ], [ 'shape' => 'EntityStateException', ], [ 'shape' => 'InvalidConfigurationException', ], [ 'shape' => 'EmailAddressInUseException', ], [ 'shape' => 'MailDomainNotFoundException', ], [ 'shape' => 'MailDomainStateException', ], [ 'shape' => 'NameAvailabilityException', ], [ 'shape' => 'OrganizationNotFoundException', ], [ 'shape' => 'OrganizationStateException', ], ], 'idempotent' => true, ], ], 'shapes' => [ 'Aliases' => [ 'type' => 'list', 'member' => [ 'shape' => 'EmailAddress', ], ], 'AssociateDelegateToResourceRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'ResourceId', 'EntityId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'ResourceId' => [ 'shape' => 'ResourceId', ], 'EntityId' => [ 'shape' => 'WorkMailIdentifier', ], ], ], 'AssociateDelegateToResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'AssociateMemberToGroupRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'GroupId', 'MemberId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'GroupId' => [ 'shape' => 'WorkMailIdentifier', ], 'MemberId' => [ 'shape' => 'WorkMailIdentifier', ], ], ], 'AssociateMemberToGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'BookingOptions' => [ 'type' => 'structure', 'members' => [ 'AutoAcceptRequests' => [ 'shape' => 'Boolean', ], 'AutoDeclineRecurringRequests' => [ 'shape' => 'Boolean', ], 'AutoDeclineConflictingRequests' => [ 'shape' => 'Boolean', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'CreateAliasRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'EntityId', 'Alias', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'EntityId' => [ 'shape' => 'WorkMailIdentifier', ], 'Alias' => [ 'shape' => 'EmailAddress', ], ], ], 'CreateAliasResponse' => [ 'type' => 'structure', 'members' => [], ], 'CreateGroupRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'Name', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'Name' => [ 'shape' => 'GroupName', ], ], ], 'CreateGroupResponse' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'WorkMailIdentifier', ], ], ], 'CreateResourceRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'Name', 'Type', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'Type' => [ 'shape' => 'ResourceType', ], ], ], 'CreateResourceResponse' => [ 'type' => 'structure', 'members' => [ 'ResourceId' => [ 'shape' => 'ResourceId', ], ], ], 'CreateUserRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'Name', 'DisplayName', 'Password', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'Name' => [ 'shape' => 'UserName', ], 'DisplayName' => [ 'shape' => 'String', ], 'Password' => [ 'shape' => 'Password', ], ], ], 'CreateUserResponse' => [ 'type' => 'structure', 'members' => [ 'UserId' => [ 'shape' => 'WorkMailIdentifier', ], ], ], 'Delegate' => [ 'type' => 'structure', 'required' => [ 'Id', 'Type', ], 'members' => [ 'Id' => [ 'shape' => 'String', ], 'Type' => [ 'shape' => 'MemberType', ], ], ], 'DeleteAliasRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'EntityId', 'Alias', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'EntityId' => [ 'shape' => 'WorkMailIdentifier', ], 'Alias' => [ 'shape' => 'EmailAddress', ], ], ], 'DeleteAliasResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteGroupRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'GroupId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'GroupId' => [ 'shape' => 'WorkMailIdentifier', ], ], ], 'DeleteGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteMailboxPermissionsRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'EntityId', 'GranteeId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'EntityId' => [ 'shape' => 'WorkMailIdentifier', ], 'GranteeId' => [ 'shape' => 'WorkMailIdentifier', ], ], ], 'DeleteMailboxPermissionsResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteResourceRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'ResourceId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'ResourceId' => [ 'shape' => 'ResourceId', ], ], ], 'DeleteResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteUserRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'UserId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'UserId' => [ 'shape' => 'WorkMailIdentifier', ], ], ], 'DeleteUserResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeregisterFromWorkMailRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'EntityId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'EntityId' => [ 'shape' => 'WorkMailIdentifier', ], ], ], 'DeregisterFromWorkMailResponse' => [ 'type' => 'structure', 'members' => [], ], 'DescribeGroupRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'GroupId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'GroupId' => [ 'shape' => 'WorkMailIdentifier', ], ], ], 'DescribeGroupResponse' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'WorkMailIdentifier', ], 'Name' => [ 'shape' => 'GroupName', ], 'Email' => [ 'shape' => 'EmailAddress', ], 'State' => [ 'shape' => 'EntityState', ], 'EnabledDate' => [ 'shape' => 'Timestamp', ], 'DisabledDate' => [ 'shape' => 'Timestamp', ], ], ], 'DescribeOrganizationRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], ], ], 'DescribeOrganizationResponse' => [ 'type' => 'structure', 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'Alias' => [ 'shape' => 'OrganizationName', ], 'State' => [ 'shape' => 'String', ], 'DirectoryId' => [ 'shape' => 'String', ], 'DirectoryType' => [ 'shape' => 'String', ], 'DefaultMailDomain' => [ 'shape' => 'String', ], 'CompletedDate' => [ 'shape' => 'Timestamp', ], 'ErrorMessage' => [ 'shape' => 'String', ], ], ], 'DescribeResourceRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'ResourceId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'ResourceId' => [ 'shape' => 'ResourceId', ], ], ], 'DescribeResourceResponse' => [ 'type' => 'structure', 'members' => [ 'ResourceId' => [ 'shape' => 'ResourceId', ], 'Email' => [ 'shape' => 'EmailAddress', ], 'Name' => [ 'shape' => 'ResourceName', ], 'Type' => [ 'shape' => 'ResourceType', ], 'BookingOptions' => [ 'shape' => 'BookingOptions', ], 'State' => [ 'shape' => 'EntityState', ], 'EnabledDate' => [ 'shape' => 'Timestamp', ], 'DisabledDate' => [ 'shape' => 'Timestamp', ], ], ], 'DescribeUserRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'UserId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'UserId' => [ 'shape' => 'WorkMailIdentifier', ], ], ], 'DescribeUserResponse' => [ 'type' => 'structure', 'members' => [ 'UserId' => [ 'shape' => 'WorkMailIdentifier', ], 'Name' => [ 'shape' => 'UserName', ], 'Email' => [ 'shape' => 'EmailAddress', ], 'DisplayName' => [ 'shape' => 'String', ], 'State' => [ 'shape' => 'EntityState', ], 'UserRole' => [ 'shape' => 'UserRole', ], 'EnabledDate' => [ 'shape' => 'Timestamp', ], 'DisabledDate' => [ 'shape' => 'Timestamp', ], ], ], 'DirectoryServiceAuthenticationFailedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'DirectoryUnavailableException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'DisassociateDelegateFromResourceRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'ResourceId', 'EntityId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'ResourceId' => [ 'shape' => 'ResourceId', ], 'EntityId' => [ 'shape' => 'WorkMailIdentifier', ], ], ], 'DisassociateDelegateFromResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateMemberFromGroupRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'GroupId', 'MemberId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'GroupId' => [ 'shape' => 'WorkMailIdentifier', ], 'MemberId' => [ 'shape' => 'WorkMailIdentifier', ], ], ], 'DisassociateMemberFromGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'EmailAddress' => [ 'type' => 'string', 'max' => 254, 'min' => 1, 'pattern' => '[a-zA-Z0-9._%+-]{1,64}@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}', ], 'EmailAddressInUseException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'EntityAlreadyRegisteredException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'EntityNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'EntityState' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', 'DELETED', ], ], 'EntityStateException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'Group' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'WorkMailIdentifier', ], 'Email' => [ 'shape' => 'EmailAddress', ], 'Name' => [ 'shape' => 'GroupName', ], 'State' => [ 'shape' => 'EntityState', ], 'EnabledDate' => [ 'shape' => 'Timestamp', ], 'DisabledDate' => [ 'shape' => 'Timestamp', ], ], ], 'GroupName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[\\u0020-\\u00FF]+', ], 'Groups' => [ 'type' => 'list', 'member' => [ 'shape' => 'Group', ], ], 'InvalidConfigurationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'InvalidPasswordException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ListAliasesRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'EntityId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'EntityId' => [ 'shape' => 'WorkMailIdentifier', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListAliasesResponse' => [ 'type' => 'structure', 'members' => [ 'Aliases' => [ 'shape' => 'Aliases', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListGroupMembersRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'GroupId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'GroupId' => [ 'shape' => 'WorkMailIdentifier', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListGroupMembersResponse' => [ 'type' => 'structure', 'members' => [ 'Members' => [ 'shape' => 'Members', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListGroupsRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'Groups' => [ 'shape' => 'Groups', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListMailboxPermissionsRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'EntityId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'EntityId' => [ 'shape' => 'WorkMailIdentifier', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListMailboxPermissionsResponse' => [ 'type' => 'structure', 'members' => [ 'Permissions' => [ 'shape' => 'Permissions', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListOrganizationsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListOrganizationsResponse' => [ 'type' => 'structure', 'members' => [ 'OrganizationSummaries' => [ 'shape' => 'OrganizationSummaries', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListResourceDelegatesRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'ResourceId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'ResourceId' => [ 'shape' => 'WorkMailIdentifier', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListResourceDelegatesResponse' => [ 'type' => 'structure', 'members' => [ 'Delegates' => [ 'shape' => 'ResourceDelegates', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListResourcesRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListResourcesResponse' => [ 'type' => 'structure', 'members' => [ 'Resources' => [ 'shape' => 'Resources', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListUsersRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListUsersResponse' => [ 'type' => 'structure', 'members' => [ 'Users' => [ 'shape' => 'Users', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'MailDomainNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'MailDomainStateException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'MaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'Member' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], 'Type' => [ 'shape' => 'MemberType', ], 'State' => [ 'shape' => 'EntityState', ], 'EnabledDate' => [ 'shape' => 'Timestamp', ], 'DisabledDate' => [ 'shape' => 'Timestamp', ], ], ], 'MemberType' => [ 'type' => 'string', 'enum' => [ 'GROUP', 'USER', ], ], 'Members' => [ 'type' => 'list', 'member' => [ 'shape' => 'Member', ], ], 'NameAvailabilityException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'NextToken' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'OrganizationId' => [ 'type' => 'string', 'pattern' => '^m-[0-9a-f]{32}$', ], 'OrganizationName' => [ 'type' => 'string', 'max' => 62, 'min' => 1, 'pattern' => '^(?!d-)([\\da-zA-Z]+)([-]*[\\da-zA-Z])*', ], 'OrganizationNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'OrganizationStateException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'OrganizationSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'OrganizationSummary', ], ], 'OrganizationSummary' => [ 'type' => 'structure', 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'Alias' => [ 'shape' => 'OrganizationName', ], 'ErrorMessage' => [ 'shape' => 'String', ], 'State' => [ 'shape' => 'String', ], ], ], 'Password' => [ 'type' => 'string', 'max' => 256, 'pattern' => '[\\u0020-\\u00FF]+', 'sensitive' => true, ], 'Permission' => [ 'type' => 'structure', 'required' => [ 'GranteeId', 'GranteeType', 'PermissionValues', ], 'members' => [ 'GranteeId' => [ 'shape' => 'WorkMailIdentifier', ], 'GranteeType' => [ 'shape' => 'MemberType', ], 'PermissionValues' => [ 'shape' => 'PermissionValues', ], ], ], 'PermissionType' => [ 'type' => 'string', 'enum' => [ 'FULL_ACCESS', 'SEND_AS', 'SEND_ON_BEHALF', ], ], 'PermissionValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'PermissionType', ], ], 'Permissions' => [ 'type' => 'list', 'member' => [ 'shape' => 'Permission', ], ], 'PutMailboxPermissionsRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'EntityId', 'GranteeId', 'PermissionValues', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'EntityId' => [ 'shape' => 'WorkMailIdentifier', ], 'GranteeId' => [ 'shape' => 'WorkMailIdentifier', ], 'PermissionValues' => [ 'shape' => 'PermissionValues', ], ], ], 'PutMailboxPermissionsResponse' => [ 'type' => 'structure', 'members' => [], ], 'RegisterToWorkMailRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'EntityId', 'Email', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'EntityId' => [ 'shape' => 'WorkMailIdentifier', ], 'Email' => [ 'shape' => 'EmailAddress', ], ], ], 'RegisterToWorkMailResponse' => [ 'type' => 'structure', 'members' => [], ], 'ReservedNameException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResetPasswordRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'UserId', 'Password', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'UserId' => [ 'shape' => 'WorkMailIdentifier', ], 'Password' => [ 'shape' => 'Password', ], ], ], 'ResetPasswordResponse' => [ 'type' => 'structure', 'members' => [], ], 'Resource' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'WorkMailIdentifier', ], 'Email' => [ 'shape' => 'EmailAddress', ], 'Name' => [ 'shape' => 'ResourceName', ], 'Type' => [ 'shape' => 'ResourceType', ], 'State' => [ 'shape' => 'EntityState', ], 'EnabledDate' => [ 'shape' => 'Timestamp', ], 'DisabledDate' => [ 'shape' => 'Timestamp', ], ], ], 'ResourceDelegates' => [ 'type' => 'list', 'member' => [ 'shape' => 'Delegate', ], ], 'ResourceId' => [ 'type' => 'string', 'pattern' => '^r-[0-9a-f]{32}$', ], 'ResourceName' => [ 'type' => 'string', 'max' => 20, 'min' => 1, 'pattern' => '[\\w\\-.]+(@[a-zA-Z0-9.\\-]+\\.[a-zA-Z0-9]{2,})?', ], 'ResourceType' => [ 'type' => 'string', 'enum' => [ 'ROOM', 'EQUIPMENT', ], ], 'Resources' => [ 'type' => 'list', 'member' => [ 'shape' => 'Resource', ], ], 'String' => [ 'type' => 'string', 'max' => 256, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'UnsupportedOperationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'UpdatePrimaryEmailAddressRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'EntityId', 'Email', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'EntityId' => [ 'shape' => 'WorkMailIdentifier', ], 'Email' => [ 'shape' => 'EmailAddress', ], ], ], 'UpdatePrimaryEmailAddressResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateResourceRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationId', 'ResourceId', ], 'members' => [ 'OrganizationId' => [ 'shape' => 'OrganizationId', ], 'ResourceId' => [ 'shape' => 'ResourceId', ], 'Name' => [ 'shape' => 'ResourceName', ], 'BookingOptions' => [ 'shape' => 'BookingOptions', ], ], ], 'UpdateResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'User' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'WorkMailIdentifier', ], 'Email' => [ 'shape' => 'EmailAddress', ], 'Name' => [ 'shape' => 'UserName', ], 'DisplayName' => [ 'shape' => 'String', ], 'State' => [ 'shape' => 'EntityState', ], 'UserRole' => [ 'shape' => 'UserRole', ], 'EnabledDate' => [ 'shape' => 'Timestamp', ], 'DisabledDate' => [ 'shape' => 'Timestamp', ], ], ], 'UserName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[\\w\\-.]+(@[a-zA-Z0-9.\\-]+\\.[a-zA-Z0-9]{2,})?', ], 'UserRole' => [ 'type' => 'string', 'enum' => [ 'USER', 'RESOURCE', 'SYSTEM_USER', ], ], 'Users' => [ 'type' => 'list', 'member' => [ 'shape' => 'User', ], ], 'WorkMailIdentifier' => [ 'type' => 'string', 'max' => 256, 'min' => 12, ], ],]; diff --git a/lib/aws/Aws/data/workmail/2017-10-01/paginators-1.json.php b/lib/aws/Aws/data/workmail/2017-10-01/paginators-1.json.php new file mode 100644 index 0000000..13731c7 --- /dev/null +++ b/lib/aws/Aws/data/workmail/2017-10-01/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/workmail/2017-10-01/paginators-1.json +return [ 'pagination' => [ 'ListAliases' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListGroupMembers' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListGroups' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListMailboxPermissions' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListOrganizations' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListResources' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], 'ListUsers' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'limit_key' => 'MaxResults', ], ],]; diff --git a/lib/aws/Aws/data/workspaces/2015-04-08/api-2.json.php b/lib/aws/Aws/data/workspaces/2015-04-08/api-2.json.php new file mode 100644 index 0000000..75e84ce --- /dev/null +++ b/lib/aws/Aws/data/workspaces/2015-04-08/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/workspaces/2015-04-08/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2015-04-08', 'endpointPrefix' => 'workspaces', 'jsonVersion' => '1.1', 'protocol' => 'json', 'serviceFullName' => 'Amazon WorkSpaces', 'serviceId' => 'WorkSpaces', 'signatureVersion' => 'v4', 'targetPrefix' => 'WorkspacesService', 'uid' => 'workspaces-2015-04-08', ], 'operations' => [ 'AssociateIpGroups' => [ 'name' => 'AssociateIpGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateIpGroupsRequest', ], 'output' => [ 'shape' => 'AssociateIpGroupsResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValuesException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'InvalidResourceStateException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'OperationNotSupportedException', ], ], ], 'AuthorizeIpRules' => [ 'name' => 'AuthorizeIpRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AuthorizeIpRulesRequest', ], 'output' => [ 'shape' => 'AuthorizeIpRulesResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValuesException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'InvalidResourceStateException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreateIpGroup' => [ 'name' => 'CreateIpGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIpGroupRequest', ], 'output' => [ 'shape' => 'CreateIpGroupResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValuesException', ], [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'ResourceCreationFailedException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreateTags' => [ 'name' => 'CreateTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTagsRequest', ], 'output' => [ 'shape' => 'CreateTagsResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValuesException', ], [ 'shape' => 'ResourceLimitExceededException', ], ], ], 'CreateWorkspaces' => [ 'name' => 'CreateWorkspaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateWorkspacesRequest', ], 'output' => [ 'shape' => 'CreateWorkspacesResult', ], 'errors' => [ [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'InvalidParameterValuesException', ], ], ], 'DeleteIpGroup' => [ 'name' => 'DeleteIpGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIpGroupRequest', ], 'output' => [ 'shape' => 'DeleteIpGroupResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValuesException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceAssociatedException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DeleteTags' => [ 'name' => 'DeleteTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTagsRequest', ], 'output' => [ 'shape' => 'DeleteTagsResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidParameterValuesException', ], ], ], 'DeleteWorkspaceImage' => [ 'name' => 'DeleteWorkspaceImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteWorkspaceImageRequest', ], 'output' => [ 'shape' => 'DeleteWorkspaceImageResult', ], 'errors' => [ [ 'shape' => 'ResourceAssociatedException', ], [ 'shape' => 'InvalidResourceStateException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DescribeAccount' => [ 'name' => 'DescribeAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAccountRequest', ], 'output' => [ 'shape' => 'DescribeAccountResult', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], ], ], 'DescribeAccountModifications' => [ 'name' => 'DescribeAccountModifications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAccountModificationsRequest', ], 'output' => [ 'shape' => 'DescribeAccountModificationsResult', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], ], ], 'DescribeClientProperties' => [ 'name' => 'DescribeClientProperties', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClientPropertiesRequest', ], 'output' => [ 'shape' => 'DescribeClientPropertiesResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValuesException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DescribeIpGroups' => [ 'name' => 'DescribeIpGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpGroupsRequest', ], 'output' => [ 'shape' => 'DescribeIpGroupsResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValuesException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DescribeTags' => [ 'name' => 'DescribeTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTagsRequest', ], 'output' => [ 'shape' => 'DescribeTagsResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], ], ], 'DescribeWorkspaceBundles' => [ 'name' => 'DescribeWorkspaceBundles', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeWorkspaceBundlesRequest', ], 'output' => [ 'shape' => 'DescribeWorkspaceBundlesResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValuesException', ], ], ], 'DescribeWorkspaceDirectories' => [ 'name' => 'DescribeWorkspaceDirectories', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeWorkspaceDirectoriesRequest', ], 'output' => [ 'shape' => 'DescribeWorkspaceDirectoriesResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValuesException', ], ], ], 'DescribeWorkspaceImages' => [ 'name' => 'DescribeWorkspaceImages', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeWorkspaceImagesRequest', ], 'output' => [ 'shape' => 'DescribeWorkspaceImagesResult', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], ], ], 'DescribeWorkspaces' => [ 'name' => 'DescribeWorkspaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeWorkspacesRequest', ], 'output' => [ 'shape' => 'DescribeWorkspacesResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValuesException', ], [ 'shape' => 'ResourceUnavailableException', ], ], ], 'DescribeWorkspacesConnectionStatus' => [ 'name' => 'DescribeWorkspacesConnectionStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeWorkspacesConnectionStatusRequest', ], 'output' => [ 'shape' => 'DescribeWorkspacesConnectionStatusResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValuesException', ], ], ], 'DisassociateIpGroups' => [ 'name' => 'DisassociateIpGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateIpGroupsRequest', ], 'output' => [ 'shape' => 'DisassociateIpGroupsResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValuesException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidResourceStateException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'ImportWorkspaceImage' => [ 'name' => 'ImportWorkspaceImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportWorkspaceImageRequest', ], 'output' => [ 'shape' => 'ImportWorkspaceImageResult', ], 'errors' => [ [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'ResourceAlreadyExistsException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'OperationNotSupportedException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'ListAvailableManagementCidrRanges' => [ 'name' => 'ListAvailableManagementCidrRanges', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAvailableManagementCidrRangesRequest', ], 'output' => [ 'shape' => 'ListAvailableManagementCidrRangesResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValuesException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'ModifyAccount' => [ 'name' => 'ModifyAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyAccountRequest', ], 'output' => [ 'shape' => 'ModifyAccountResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValuesException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InvalidResourceStateException', ], [ 'shape' => 'ResourceUnavailableException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ModifyClientProperties' => [ 'name' => 'ModifyClientProperties', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyClientPropertiesRequest', ], 'output' => [ 'shape' => 'ModifyClientPropertiesResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValuesException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'ModifyWorkspaceProperties' => [ 'name' => 'ModifyWorkspaceProperties', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyWorkspacePropertiesRequest', ], 'output' => [ 'shape' => 'ModifyWorkspacePropertiesResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValuesException', ], [ 'shape' => 'InvalidResourceStateException', ], [ 'shape' => 'OperationInProgressException', ], [ 'shape' => 'UnsupportedWorkspaceConfigurationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceUnavailableException', ], ], ], 'ModifyWorkspaceState' => [ 'name' => 'ModifyWorkspaceState', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyWorkspaceStateRequest', ], 'output' => [ 'shape' => 'ModifyWorkspaceStateResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValuesException', ], [ 'shape' => 'InvalidResourceStateException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], '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', ], ], 'RevokeIpRules' => [ 'name' => 'RevokeIpRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RevokeIpRulesRequest', ], 'output' => [ 'shape' => 'RevokeIpRulesResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValuesException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InvalidResourceStateException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'StartWorkspaces' => [ 'name' => 'StartWorkspaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartWorkspacesRequest', ], 'output' => [ 'shape' => 'StartWorkspacesResult', ], ], 'StopWorkspaces' => [ 'name' => 'StopWorkspaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopWorkspacesRequest', ], 'output' => [ 'shape' => 'StopWorkspacesResult', ], ], 'TerminateWorkspaces' => [ 'name' => 'TerminateWorkspaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TerminateWorkspacesRequest', ], 'output' => [ 'shape' => 'TerminateWorkspacesResult', ], ], 'UpdateRulesOfIpGroup' => [ 'name' => 'UpdateRulesOfIpGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateRulesOfIpGroupRequest', ], 'output' => [ 'shape' => 'UpdateRulesOfIpGroupResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterValuesException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'InvalidResourceStateException', ], [ 'shape' => 'AccessDeniedException', ], ], ], ], '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}$', ], 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'AccountModification' => [ 'type' => 'structure', 'members' => [ 'ModificationState' => [ 'shape' => 'DedicatedTenancyModificationStateEnum', ], 'DedicatedTenancySupport' => [ 'shape' => 'DedicatedTenancySupportResultEnum', ], 'DedicatedTenancyManagementCidrRange' => [ 'shape' => 'DedicatedTenancyManagementCidrRange', ], 'StartTime' => [ 'shape' => 'Timestamp', ], 'ErrorCode' => [ 'shape' => 'WorkspaceErrorCode', ], 'ErrorMessage' => [ 'shape' => 'Description', ], ], ], 'AccountModificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountModification', ], ], 'Alias' => [ 'type' => 'string', ], 'AssociateIpGroupsRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', 'GroupIds', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'GroupIds' => [ 'shape' => 'IpGroupIdList', ], ], ], 'AssociateIpGroupsResult' => [ 'type' => 'structure', 'members' => [], ], 'AuthorizeIpRulesRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', 'UserRules', ], 'members' => [ 'GroupId' => [ 'shape' => 'IpGroupId', ], 'UserRules' => [ 'shape' => 'IpRuleList', ], ], ], 'AuthorizeIpRulesResult' => [ 'type' => 'structure', 'members' => [], ], 'BooleanObject' => [ 'type' => 'boolean', ], 'BundleId' => [ 'type' => 'string', 'pattern' => '^wsb-[0-9a-z]{8,63}$', ], 'BundleIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BundleId', ], 'max' => 25, 'min' => 1, ], 'BundleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WorkspaceBundle', ], ], 'BundleOwner' => [ 'type' => 'string', ], 'ClientProperties' => [ 'type' => 'structure', 'members' => [ 'ReconnectEnabled' => [ 'shape' => 'ReconnectEnum', ], ], ], 'ClientPropertiesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClientPropertiesResult', ], ], 'ClientPropertiesResult' => [ 'type' => 'structure', 'members' => [ 'ResourceId' => [ 'shape' => 'NonEmptyString', ], 'ClientProperties' => [ 'shape' => 'ClientProperties', ], ], ], 'Compute' => [ 'type' => 'string', 'enum' => [ 'VALUE', 'STANDARD', 'PERFORMANCE', 'POWER', 'GRAPHICS', 'POWERPRO', 'GRAPHICSPRO', ], ], 'ComputeType' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'Compute', ], ], ], 'ComputerName' => [ 'type' => 'string', ], 'ConnectionState' => [ 'type' => 'string', 'enum' => [ 'CONNECTED', 'DISCONNECTED', 'UNKNOWN', ], ], 'CreateIpGroupRequest' => [ 'type' => 'structure', 'required' => [ 'GroupName', ], 'members' => [ 'GroupName' => [ 'shape' => 'IpGroupName', ], 'GroupDesc' => [ 'shape' => 'IpGroupDesc', ], 'UserRules' => [ 'shape' => 'IpRuleList', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateIpGroupResult' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'IpGroupId', ], ], ], 'CreateTagsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', 'Tags', ], 'members' => [ 'ResourceId' => [ 'shape' => 'NonEmptyString', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateTagsResult' => [ 'type' => 'structure', 'members' => [], ], 'CreateWorkspacesRequest' => [ 'type' => 'structure', 'required' => [ 'Workspaces', ], 'members' => [ 'Workspaces' => [ 'shape' => 'WorkspaceRequestList', ], ], ], 'CreateWorkspacesResult' => [ 'type' => 'structure', 'members' => [ 'FailedRequests' => [ 'shape' => 'FailedCreateWorkspaceRequests', ], 'PendingRequests' => [ 'shape' => 'WorkspaceList', ], ], ], 'DedicatedTenancyCidrRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DedicatedTenancyManagementCidrRange', ], ], 'DedicatedTenancyManagementCidrRange' => [ 'type' => 'string', 'pattern' => '(^([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.0\\.0)(\\/(16$))$', ], 'DedicatedTenancyModificationStateEnum' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'COMPLETED', 'FAILED', ], ], 'DedicatedTenancySupportEnum' => [ 'type' => 'string', 'enum' => [ 'ENABLED', ], ], 'DedicatedTenancySupportResultEnum' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'DefaultOu' => [ 'type' => 'string', ], 'DefaultWorkspaceCreationProperties' => [ 'type' => 'structure', 'members' => [ 'EnableWorkDocs' => [ 'shape' => 'BooleanObject', ], 'EnableInternetAccess' => [ 'shape' => 'BooleanObject', ], 'DefaultOu' => [ 'shape' => 'DefaultOu', ], 'CustomSecurityGroupId' => [ 'shape' => 'SecurityGroupId', ], 'UserEnabledAsLocalAdministrator' => [ 'shape' => 'BooleanObject', ], ], ], 'DeleteIpGroupRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', ], 'members' => [ 'GroupId' => [ 'shape' => 'IpGroupId', ], ], ], 'DeleteIpGroupResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteTagsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', 'TagKeys', ], 'members' => [ 'ResourceId' => [ 'shape' => 'NonEmptyString', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'DeleteTagsResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteWorkspaceImageRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'WorkspaceImageId', ], ], ], 'DeleteWorkspaceImageResult' => [ 'type' => 'structure', 'members' => [], ], 'DescribeAccountModificationsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'DescribeAccountModificationsResult' => [ 'type' => 'structure', 'members' => [ 'AccountModifications' => [ 'shape' => 'AccountModificationList', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'DescribeAccountRequest' => [ 'type' => 'structure', 'members' => [], ], 'DescribeAccountResult' => [ 'type' => 'structure', 'members' => [ 'DedicatedTenancySupport' => [ 'shape' => 'DedicatedTenancySupportResultEnum', ], 'DedicatedTenancyManagementCidrRange' => [ 'shape' => 'DedicatedTenancyManagementCidrRange', ], ], ], 'DescribeClientPropertiesRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIds', ], 'members' => [ 'ResourceIds' => [ 'shape' => 'ResourceIdList', ], ], ], 'DescribeClientPropertiesResult' => [ 'type' => 'structure', 'members' => [ 'ClientPropertiesList' => [ 'shape' => 'ClientPropertiesList', ], ], ], 'DescribeIpGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'GroupIds' => [ 'shape' => 'IpGroupIdList', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'Limit', ], ], ], 'DescribeIpGroupsResult' => [ 'type' => 'structure', 'members' => [ 'Result' => [ 'shape' => 'WorkspacesIpGroupsList', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'DescribeTagsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', ], 'members' => [ 'ResourceId' => [ 'shape' => 'NonEmptyString', ], ], ], 'DescribeTagsResult' => [ 'type' => 'structure', 'members' => [ 'TagList' => [ 'shape' => 'TagList', ], ], ], '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', ], ], ], 'DescribeWorkspaceImagesRequest' => [ 'type' => 'structure', 'members' => [ 'ImageIds' => [ 'shape' => 'WorkspaceImageIdList', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], 'MaxResults' => [ 'shape' => 'Limit', ], ], ], 'DescribeWorkspaceImagesResult' => [ 'type' => 'structure', 'members' => [ 'Images' => [ 'shape' => 'WorkspaceImageList', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'DescribeWorkspacesConnectionStatusRequest' => [ 'type' => 'structure', 'members' => [ 'WorkspaceIds' => [ 'shape' => 'WorkspaceIdList', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'DescribeWorkspacesConnectionStatusResult' => [ 'type' => 'structure', 'members' => [ 'WorkspacesConnectionStatus' => [ 'shape' => 'WorkspaceConnectionStatusList', ], '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', ], 'max' => 25, 'min' => 1, ], 'DirectoryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WorkspaceDirectory', ], ], 'DirectoryName' => [ 'type' => 'string', ], 'DisassociateIpGroupsRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', 'GroupIds', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'GroupIds' => [ 'shape' => 'IpGroupIdList', ], ], ], 'DisassociateIpGroupsResult' => [ 'type' => 'structure', 'members' => [], ], 'DnsIpAddresses' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpAddress', ], ], 'Ec2ImageId' => [ 'type' => 'string', 'pattern' => '^ami\\-([a-f0-9]{8}|[a-f0-9]{17})$', ], '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', ], ], 'FailedStartWorkspaceRequests' => [ 'type' => 'list', 'member' => [ 'shape' => 'FailedWorkspaceChangeRequest', ], ], 'FailedStopWorkspaceRequests' => [ 'type' => 'list', 'member' => [ 'shape' => 'FailedWorkspaceChangeRequest', ], ], 'FailedTerminateWorkspaceRequests' => [ 'type' => 'list', 'member' => [ 'shape' => 'FailedWorkspaceChangeRequest', ], ], 'FailedWorkspaceChangeRequest' => [ 'type' => 'structure', 'members' => [ 'WorkspaceId' => [ 'shape' => 'WorkspaceId', ], 'ErrorCode' => [ 'shape' => 'ErrorType', ], 'ErrorMessage' => [ 'shape' => 'Description', ], ], ], 'ImportWorkspaceImageRequest' => [ 'type' => 'structure', 'required' => [ 'Ec2ImageId', 'IngestionProcess', 'ImageName', 'ImageDescription', ], 'members' => [ 'Ec2ImageId' => [ 'shape' => 'Ec2ImageId', ], 'IngestionProcess' => [ 'shape' => 'WorkspaceImageIngestionProcess', ], 'ImageName' => [ 'shape' => 'WorkspaceImageName', ], 'ImageDescription' => [ 'shape' => 'WorkspaceImageDescription', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'ImportWorkspaceImageResult' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'WorkspaceImageId', ], ], ], 'InvalidParameterValuesException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'InvalidResourceStateException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'IpAddress' => [ 'type' => 'string', ], 'IpGroupDesc' => [ 'type' => 'string', ], 'IpGroupId' => [ 'type' => 'string', 'pattern' => 'wsipg-[0-9a-z]{8,63}$', ], 'IpGroupIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpGroupId', ], ], 'IpGroupName' => [ 'type' => 'string', ], 'IpRevokedRuleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpRule', ], ], 'IpRule' => [ 'type' => 'string', ], 'IpRuleDesc' => [ 'type' => 'string', ], 'IpRuleItem' => [ 'type' => 'structure', 'members' => [ 'ipRule' => [ 'shape' => 'IpRule', ], 'ruleDesc' => [ 'shape' => 'IpRuleDesc', ], ], ], 'IpRuleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpRuleItem', ], ], 'Limit' => [ 'type' => 'integer', 'max' => 25, 'min' => 1, ], 'ListAvailableManagementCidrRangesRequest' => [ 'type' => 'structure', 'required' => [ 'ManagementCidrRangeConstraint', ], 'members' => [ 'ManagementCidrRangeConstraint' => [ 'shape' => 'ManagementCidrRangeConstraint', ], 'MaxResults' => [ 'shape' => 'ManagementCidrRangeMaxResults', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ListAvailableManagementCidrRangesResult' => [ 'type' => 'structure', 'members' => [ 'ManagementCidrRanges' => [ 'shape' => 'DedicatedTenancyCidrRangeList', ], 'NextToken' => [ 'shape' => 'PaginationToken', ], ], ], 'ManagementCidrRangeConstraint' => [ 'type' => 'string', '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])(\\/(3[0-2]|[1-2][0-9]|[0-9]))$', ], 'ManagementCidrRangeMaxResults' => [ 'type' => 'integer', 'max' => 5, 'min' => 1, ], 'ModificationResourceEnum' => [ 'type' => 'string', 'enum' => [ 'ROOT_VOLUME', 'USER_VOLUME', 'COMPUTE_TYPE', ], ], 'ModificationState' => [ 'type' => 'structure', 'members' => [ 'Resource' => [ 'shape' => 'ModificationResourceEnum', ], 'State' => [ 'shape' => 'ModificationStateEnum', ], ], ], 'ModificationStateEnum' => [ 'type' => 'string', 'enum' => [ 'UPDATE_INITIATED', 'UPDATE_IN_PROGRESS', ], ], 'ModificationStateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ModificationState', ], ], 'ModifyAccountRequest' => [ 'type' => 'structure', 'members' => [ 'DedicatedTenancySupport' => [ 'shape' => 'DedicatedTenancySupportEnum', ], 'DedicatedTenancyManagementCidrRange' => [ 'shape' => 'DedicatedTenancyManagementCidrRange', ], ], ], 'ModifyAccountResult' => [ 'type' => 'structure', 'members' => [], ], 'ModifyClientPropertiesRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', 'ClientProperties', ], 'members' => [ 'ResourceId' => [ 'shape' => 'NonEmptyString', ], 'ClientProperties' => [ 'shape' => 'ClientProperties', ], ], ], 'ModifyClientPropertiesResult' => [ 'type' => 'structure', 'members' => [], ], 'ModifyWorkspacePropertiesRequest' => [ 'type' => 'structure', 'required' => [ 'WorkspaceId', 'WorkspaceProperties', ], 'members' => [ 'WorkspaceId' => [ 'shape' => 'WorkspaceId', ], 'WorkspaceProperties' => [ 'shape' => 'WorkspaceProperties', ], ], ], 'ModifyWorkspacePropertiesResult' => [ 'type' => 'structure', 'members' => [], ], 'ModifyWorkspaceStateRequest' => [ 'type' => 'structure', 'required' => [ 'WorkspaceId', 'WorkspaceState', ], 'members' => [ 'WorkspaceId' => [ 'shape' => 'WorkspaceId', ], 'WorkspaceState' => [ 'shape' => 'TargetWorkspaceState', ], ], ], 'ModifyWorkspaceStateResult' => [ 'type' => 'structure', 'members' => [], ], 'NonEmptyString' => [ 'type' => 'string', 'min' => 1, ], 'OperatingSystem' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'OperatingSystemType', ], ], ], 'OperatingSystemType' => [ 'type' => 'string', 'enum' => [ 'WINDOWS', 'LINUX', ], ], 'OperationInProgressException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'OperationNotSupportedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'PaginationToken' => [ 'type' => 'string', 'max' => 63, 'min' => 1, ], 'RebootRequest' => [ 'type' => 'structure', 'required' => [ 'WorkspaceId', ], 'members' => [ 'WorkspaceId' => [ 'shape' => 'WorkspaceId', ], ], ], 'RebootWorkspaceRequests' => [ 'type' => 'list', 'member' => [ 'shape' => 'RebootRequest', ], 'max' => 25, 'min' => 1, ], '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', ], 'max' => 1, 'min' => 1, ], 'RebuildWorkspacesRequest' => [ 'type' => 'structure', 'required' => [ 'RebuildWorkspaceRequests', ], 'members' => [ 'RebuildWorkspaceRequests' => [ 'shape' => 'RebuildWorkspaceRequests', ], ], ], 'RebuildWorkspacesResult' => [ 'type' => 'structure', 'members' => [ 'FailedRequests' => [ 'shape' => 'FailedRebuildWorkspaceRequests', ], ], ], 'ReconnectEnum' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'RegistrationCode' => [ 'type' => 'string', 'max' => 20, 'min' => 1, ], 'ResourceAlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'ResourceAssociatedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'ResourceCreationFailedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'ResourceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonEmptyString', ], 'max' => 25, 'min' => 1, ], 'ResourceLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], 'ResourceId' => [ 'shape' => 'NonEmptyString', ], ], 'exception' => true, ], 'ResourceUnavailableException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], 'ResourceId' => [ 'shape' => 'NonEmptyString', ], ], 'exception' => true, ], 'RevokeIpRulesRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', 'UserRules', ], 'members' => [ 'GroupId' => [ 'shape' => 'IpGroupId', ], 'UserRules' => [ 'shape' => 'IpRevokedRuleList', ], ], ], 'RevokeIpRulesResult' => [ 'type' => 'structure', 'members' => [], ], 'RootStorage' => [ 'type' => 'structure', 'members' => [ 'Capacity' => [ 'shape' => 'NonEmptyString', ], ], ], 'RootVolumeSizeGib' => [ 'type' => 'integer', ], 'RunningMode' => [ 'type' => 'string', 'enum' => [ 'AUTO_STOP', 'ALWAYS_ON', ], ], 'RunningModeAutoStopTimeoutInMinutes' => [ 'type' => 'integer', ], 'SecurityGroupId' => [ 'type' => 'string', 'pattern' => '^(sg-[0-9a-f]{8})$', ], 'StartRequest' => [ 'type' => 'structure', 'members' => [ 'WorkspaceId' => [ 'shape' => 'WorkspaceId', ], ], ], 'StartWorkspaceRequests' => [ 'type' => 'list', 'member' => [ 'shape' => 'StartRequest', ], 'max' => 25, 'min' => 1, ], 'StartWorkspacesRequest' => [ 'type' => 'structure', 'required' => [ 'StartWorkspaceRequests', ], 'members' => [ 'StartWorkspaceRequests' => [ 'shape' => 'StartWorkspaceRequests', ], ], ], 'StartWorkspacesResult' => [ 'type' => 'structure', 'members' => [ 'FailedRequests' => [ 'shape' => 'FailedStartWorkspaceRequests', ], ], ], 'StopRequest' => [ 'type' => 'structure', 'members' => [ 'WorkspaceId' => [ 'shape' => 'WorkspaceId', ], ], ], 'StopWorkspaceRequests' => [ 'type' => 'list', 'member' => [ 'shape' => 'StopRequest', ], 'max' => 25, 'min' => 1, ], 'StopWorkspacesRequest' => [ 'type' => 'structure', 'required' => [ 'StopWorkspaceRequests', ], 'members' => [ 'StopWorkspaceRequests' => [ 'shape' => 'StopWorkspaceRequests', ], ], ], 'StopWorkspacesResult' => [ 'type' => 'structure', 'members' => [ 'FailedRequests' => [ 'shape' => 'FailedStopWorkspaceRequests', ], ], ], 'SubnetId' => [ 'type' => 'string', 'pattern' => '^(subnet-[0-9a-f]{8})$', ], 'SubnetIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 127, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonEmptyString', ], ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagValue' => [ 'type' => 'string', 'max' => 255, ], 'TargetWorkspaceState' => [ 'type' => 'string', 'enum' => [ 'AVAILABLE', 'ADMIN_MAINTENANCE', ], ], 'TerminateRequest' => [ 'type' => 'structure', 'required' => [ 'WorkspaceId', ], 'members' => [ 'WorkspaceId' => [ 'shape' => 'WorkspaceId', ], ], ], 'TerminateWorkspaceRequests' => [ 'type' => 'list', 'member' => [ 'shape' => 'TerminateRequest', ], 'max' => 25, 'min' => 1, ], 'TerminateWorkspacesRequest' => [ 'type' => 'structure', 'required' => [ 'TerminateWorkspaceRequests', ], 'members' => [ 'TerminateWorkspaceRequests' => [ 'shape' => 'TerminateWorkspaceRequests', ], ], ], 'TerminateWorkspacesResult' => [ 'type' => 'structure', 'members' => [ 'FailedRequests' => [ 'shape' => 'FailedTerminateWorkspaceRequests', ], ], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'UnsupportedWorkspaceConfigurationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ExceptionMessage', ], ], 'exception' => true, ], 'UpdateRulesOfIpGroupRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', 'UserRules', ], 'members' => [ 'GroupId' => [ 'shape' => 'IpGroupId', ], 'UserRules' => [ 'shape' => 'IpRuleList', ], ], ], 'UpdateRulesOfIpGroupResult' => [ 'type' => 'structure', 'members' => [], ], 'UserName' => [ 'type' => 'string', 'max' => 63, 'min' => 1, ], 'UserStorage' => [ 'type' => 'structure', 'members' => [ 'Capacity' => [ 'shape' => 'NonEmptyString', ], ], ], 'UserVolumeSizeGib' => [ 'type' => 'integer', ], 'VolumeEncryptionKey' => [ 'type' => 'string', ], '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', ], 'ComputerName' => [ 'shape' => 'ComputerName', ], 'VolumeEncryptionKey' => [ 'shape' => 'VolumeEncryptionKey', ], 'UserVolumeEncryptionEnabled' => [ 'shape' => 'BooleanObject', ], 'RootVolumeEncryptionEnabled' => [ 'shape' => 'BooleanObject', ], 'WorkspaceProperties' => [ 'shape' => 'WorkspaceProperties', ], 'ModificationStates' => [ 'shape' => 'ModificationStateList', ], ], ], 'WorkspaceBundle' => [ 'type' => 'structure', 'members' => [ 'BundleId' => [ 'shape' => 'BundleId', ], 'Name' => [ 'shape' => 'NonEmptyString', ], 'Owner' => [ 'shape' => 'BundleOwner', ], 'Description' => [ 'shape' => 'Description', ], 'RootStorage' => [ 'shape' => 'RootStorage', ], 'UserStorage' => [ 'shape' => 'UserStorage', ], 'ComputeType' => [ 'shape' => 'ComputeType', ], ], ], 'WorkspaceConnectionStatus' => [ 'type' => 'structure', 'members' => [ 'WorkspaceId' => [ 'shape' => 'WorkspaceId', ], 'ConnectionState' => [ 'shape' => 'ConnectionState', ], 'ConnectionStateCheckTimestamp' => [ 'shape' => 'Timestamp', ], 'LastKnownUserConnectionTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'WorkspaceConnectionStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WorkspaceConnectionStatus', ], ], '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', ], 'ipGroupIds' => [ 'shape' => 'IpGroupIdList', ], ], ], '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', ], 'max' => 25, 'min' => 1, ], 'WorkspaceImage' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'WorkspaceImageId', ], 'Name' => [ 'shape' => 'WorkspaceImageName', ], 'Description' => [ 'shape' => 'WorkspaceImageDescription', ], 'OperatingSystem' => [ 'shape' => 'OperatingSystem', ], 'State' => [ 'shape' => 'WorkspaceImageState', ], 'RequiredTenancy' => [ 'shape' => 'WorkspaceImageRequiredTenancy', ], 'ErrorCode' => [ 'shape' => 'WorkspaceImageErrorCode', ], 'ErrorMessage' => [ 'shape' => 'Description', ], ], ], 'WorkspaceImageDescription' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^[a-zA-Z0-9_./() -]+$', ], 'WorkspaceImageErrorCode' => [ 'type' => 'string', ], 'WorkspaceImageId' => [ 'type' => 'string', 'pattern' => 'wsi-[0-9a-z]{9,63}$', ], 'WorkspaceImageIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WorkspaceImageId', ], 'max' => 25, 'min' => 1, ], 'WorkspaceImageIngestionProcess' => [ 'type' => 'string', 'enum' => [ 'BYOL_REGULAR', 'BYOL_GRAPHICS', 'BYOL_GRAPHICSPRO', ], ], 'WorkspaceImageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WorkspaceImage', ], ], 'WorkspaceImageName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '^[a-zA-Z0-9_./()\\\\-]+$', ], 'WorkspaceImageRequiredTenancy' => [ 'type' => 'string', 'enum' => [ 'DEFAULT', 'DEDICATED', ], ], 'WorkspaceImageState' => [ 'type' => 'string', 'enum' => [ 'AVAILABLE', 'PENDING', 'ERROR', ], ], 'WorkspaceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Workspace', ], ], 'WorkspaceProperties' => [ 'type' => 'structure', 'members' => [ 'RunningMode' => [ 'shape' => 'RunningMode', ], 'RunningModeAutoStopTimeoutInMinutes' => [ 'shape' => 'RunningModeAutoStopTimeoutInMinutes', ], 'RootVolumeSizeGib' => [ 'shape' => 'RootVolumeSizeGib', ], 'UserVolumeSizeGib' => [ 'shape' => 'UserVolumeSizeGib', ], 'ComputeTypeName' => [ 'shape' => 'Compute', ], ], ], 'WorkspaceRequest' => [ 'type' => 'structure', 'required' => [ 'DirectoryId', 'UserName', 'BundleId', ], 'members' => [ 'DirectoryId' => [ 'shape' => 'DirectoryId', ], 'UserName' => [ 'shape' => 'UserName', ], 'BundleId' => [ 'shape' => 'BundleId', ], 'VolumeEncryptionKey' => [ 'shape' => 'VolumeEncryptionKey', ], 'UserVolumeEncryptionEnabled' => [ 'shape' => 'BooleanObject', ], 'RootVolumeEncryptionEnabled' => [ 'shape' => 'BooleanObject', ], 'WorkspaceProperties' => [ 'shape' => 'WorkspaceProperties', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'WorkspaceRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WorkspaceRequest', ], 'max' => 25, 'min' => 1, ], 'WorkspaceState' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'AVAILABLE', 'IMPAIRED', 'UNHEALTHY', 'REBOOTING', 'STARTING', 'REBUILDING', 'MAINTENANCE', 'ADMIN_MAINTENANCE', 'TERMINATING', 'TERMINATED', 'SUSPENDED', 'UPDATING', 'STOPPING', 'STOPPED', 'ERROR', ], ], 'WorkspacesIpGroup' => [ 'type' => 'structure', 'members' => [ 'groupId' => [ 'shape' => 'IpGroupId', ], 'groupName' => [ 'shape' => 'IpGroupName', ], 'groupDesc' => [ 'shape' => 'IpGroupDesc', ], 'userRules' => [ 'shape' => 'IpRuleList', ], ], ], 'WorkspacesIpGroupsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WorkspacesIpGroup', ], ], ],]; diff --git a/lib/aws/Aws/data/workspaces/2015-04-08/paginators-1.json.php b/lib/aws/Aws/data/workspaces/2015-04-08/paginators-1.json.php new file mode 100644 index 0000000..efa42a4 --- /dev/null +++ b/lib/aws/Aws/data/workspaces/2015-04-08/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/workspaces/2015-04-08/paginators-1.json +return [ 'pagination' => [ 'DescribeWorkspaceBundles' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'result_key' => 'Bundles', ], 'DescribeWorkspaceDirectories' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'result_key' => 'Directories', ], 'DescribeWorkspaces' => [ 'input_token' => 'NextToken', 'limit_key' => 'Limit', 'output_token' => 'NextToken', 'result_key' => 'Workspaces', ], ],]; diff --git a/lib/aws/Aws/data/workspaces/2015-04-08/smoke.json.php b/lib/aws/Aws/data/workspaces/2015-04-08/smoke.json.php new file mode 100644 index 0000000..306e6d9 --- /dev/null +++ b/lib/aws/Aws/data/workspaces/2015-04-08/smoke.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/workspaces/2015-04-08/smoke.json +return [ 'version' => 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'DescribeWorkspaces', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'DescribeWorkspaces', 'input' => [ 'DirectoryId' => 'fake-id', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lib/aws/Aws/data/xray/2016-04-12/api-2.json.php b/lib/aws/Aws/data/xray/2016-04-12/api-2.json.php new file mode 100644 index 0000000..48b2c3f --- /dev/null +++ b/lib/aws/Aws/data/xray/2016-04-12/api-2.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/xray/2016-04-12/api-2.json +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-04-12', 'endpointPrefix' => 'xray', 'protocol' => 'rest-json', 'serviceFullName' => 'AWS X-Ray', 'serviceId' => 'XRay', 'signatureVersion' => 'v4', 'uid' => 'xray-2016-04-12', ], 'operations' => [ 'BatchGetTraces' => [ 'name' => 'BatchGetTraces', 'http' => [ 'method' => 'POST', 'requestUri' => '/Traces', ], 'input' => [ 'shape' => 'BatchGetTracesRequest', ], 'output' => [ 'shape' => 'BatchGetTracesResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottledException', ], ], ], 'CreateGroup' => [ 'name' => 'CreateGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/CreateGroup', ], 'input' => [ 'shape' => 'CreateGroupRequest', ], 'output' => [ 'shape' => 'CreateGroupResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottledException', ], ], ], 'CreateSamplingRule' => [ 'name' => 'CreateSamplingRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/CreateSamplingRule', ], 'input' => [ 'shape' => 'CreateSamplingRuleRequest', ], 'output' => [ 'shape' => 'CreateSamplingRuleResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottledException', ], [ 'shape' => 'RuleLimitExceededException', ], ], ], 'DeleteGroup' => [ 'name' => 'DeleteGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/DeleteGroup', ], 'input' => [ 'shape' => 'DeleteGroupRequest', ], 'output' => [ 'shape' => 'DeleteGroupResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottledException', ], ], ], 'DeleteSamplingRule' => [ 'name' => 'DeleteSamplingRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/DeleteSamplingRule', ], 'input' => [ 'shape' => 'DeleteSamplingRuleRequest', ], 'output' => [ 'shape' => 'DeleteSamplingRuleResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottledException', ], ], ], 'GetEncryptionConfig' => [ 'name' => 'GetEncryptionConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/EncryptionConfig', ], 'input' => [ 'shape' => 'GetEncryptionConfigRequest', ], 'output' => [ 'shape' => 'GetEncryptionConfigResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottledException', ], ], ], 'GetGroup' => [ 'name' => 'GetGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/GetGroup', ], 'input' => [ 'shape' => 'GetGroupRequest', ], 'output' => [ 'shape' => 'GetGroupResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottledException', ], ], ], 'GetGroups' => [ 'name' => 'GetGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/Groups', ], 'input' => [ 'shape' => 'GetGroupsRequest', ], 'output' => [ 'shape' => 'GetGroupsResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottledException', ], ], ], 'GetSamplingRules' => [ 'name' => 'GetSamplingRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/GetSamplingRules', ], 'input' => [ 'shape' => 'GetSamplingRulesRequest', ], 'output' => [ 'shape' => 'GetSamplingRulesResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottledException', ], ], ], 'GetSamplingStatisticSummaries' => [ 'name' => 'GetSamplingStatisticSummaries', 'http' => [ 'method' => 'POST', 'requestUri' => '/SamplingStatisticSummaries', ], 'input' => [ 'shape' => 'GetSamplingStatisticSummariesRequest', ], 'output' => [ 'shape' => 'GetSamplingStatisticSummariesResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottledException', ], ], ], 'GetSamplingTargets' => [ 'name' => 'GetSamplingTargets', 'http' => [ 'method' => 'POST', 'requestUri' => '/SamplingTargets', ], 'input' => [ 'shape' => 'GetSamplingTargetsRequest', ], 'output' => [ 'shape' => 'GetSamplingTargetsResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottledException', ], ], ], 'GetServiceGraph' => [ 'name' => 'GetServiceGraph', 'http' => [ 'method' => 'POST', 'requestUri' => '/ServiceGraph', ], 'input' => [ 'shape' => 'GetServiceGraphRequest', ], 'output' => [ 'shape' => 'GetServiceGraphResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottledException', ], ], ], 'GetTraceGraph' => [ 'name' => 'GetTraceGraph', 'http' => [ 'method' => 'POST', 'requestUri' => '/TraceGraph', ], 'input' => [ 'shape' => 'GetTraceGraphRequest', ], 'output' => [ 'shape' => 'GetTraceGraphResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottledException', ], ], ], 'GetTraceSummaries' => [ 'name' => 'GetTraceSummaries', 'http' => [ 'method' => 'POST', 'requestUri' => '/TraceSummaries', ], 'input' => [ 'shape' => 'GetTraceSummariesRequest', ], 'output' => [ 'shape' => 'GetTraceSummariesResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottledException', ], ], ], 'PutEncryptionConfig' => [ 'name' => 'PutEncryptionConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/PutEncryptionConfig', ], 'input' => [ 'shape' => 'PutEncryptionConfigRequest', ], 'output' => [ 'shape' => 'PutEncryptionConfigResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottledException', ], ], ], 'PutTelemetryRecords' => [ 'name' => 'PutTelemetryRecords', 'http' => [ 'method' => 'POST', 'requestUri' => '/TelemetryRecords', ], 'input' => [ 'shape' => 'PutTelemetryRecordsRequest', ], 'output' => [ 'shape' => 'PutTelemetryRecordsResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottledException', ], ], ], 'PutTraceSegments' => [ 'name' => 'PutTraceSegments', 'http' => [ 'method' => 'POST', 'requestUri' => '/TraceSegments', ], 'input' => [ 'shape' => 'PutTraceSegmentsRequest', ], 'output' => [ 'shape' => 'PutTraceSegmentsResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottledException', ], ], ], 'UpdateGroup' => [ 'name' => 'UpdateGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/UpdateGroup', ], 'input' => [ 'shape' => 'UpdateGroupRequest', ], 'output' => [ 'shape' => 'UpdateGroupResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottledException', ], ], ], 'UpdateSamplingRule' => [ 'name' => 'UpdateSamplingRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/UpdateSamplingRule', ], 'input' => [ 'shape' => 'UpdateSamplingRuleRequest', ], 'output' => [ 'shape' => 'UpdateSamplingRuleResult', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'ThrottledException', ], ], ], ], 'shapes' => [ 'Alias' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Names' => [ 'shape' => 'AliasNames', ], 'Type' => [ 'shape' => 'String', ], ], ], 'AliasList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Alias', ], ], 'AliasNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'AnnotationKey' => [ 'type' => 'string', ], 'AnnotationValue' => [ 'type' => 'structure', 'members' => [ 'NumberValue' => [ 'shape' => 'NullableDouble', ], 'BooleanValue' => [ 'shape' => 'NullableBoolean', ], 'StringValue' => [ 'shape' => 'String', ], ], ], 'Annotations' => [ 'type' => 'map', 'key' => [ 'shape' => 'AnnotationKey', ], 'value' => [ 'shape' => 'ValuesWithServiceIds', ], ], 'AttributeKey' => [ 'type' => 'string', 'max' => 32, 'min' => 1, ], 'AttributeMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttributeKey', ], 'value' => [ 'shape' => 'AttributeValue', ], 'max' => 5, ], 'AttributeValue' => [ 'type' => 'string', 'max' => 32, 'min' => 1, ], 'AvailabilityZoneDetail' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], ], ], 'BackendConnectionErrors' => [ 'type' => 'structure', 'members' => [ 'TimeoutCount' => [ 'shape' => 'NullableInteger', ], 'ConnectionRefusedCount' => [ 'shape' => 'NullableInteger', ], 'HTTPCode4XXCount' => [ 'shape' => 'NullableInteger', ], 'HTTPCode5XXCount' => [ 'shape' => 'NullableInteger', ], 'UnknownHostCount' => [ 'shape' => 'NullableInteger', ], 'OtherCount' => [ 'shape' => 'NullableInteger', ], ], ], 'BatchGetTracesRequest' => [ 'type' => 'structure', 'required' => [ 'TraceIds', ], 'members' => [ 'TraceIds' => [ 'shape' => 'TraceIdList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'BatchGetTracesResult' => [ 'type' => 'structure', 'members' => [ 'Traces' => [ 'shape' => 'TraceList', ], 'UnprocessedTraceIds' => [ 'shape' => 'UnprocessedTraceIdList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'BorrowCount' => [ 'type' => 'integer', 'min' => 0, ], 'ClientID' => [ 'type' => 'string', 'max' => 24, 'min' => 24, ], 'CreateGroupRequest' => [ 'type' => 'structure', 'required' => [ 'GroupName', ], 'members' => [ 'GroupName' => [ 'shape' => 'GroupName', ], 'FilterExpression' => [ 'shape' => 'FilterExpression', ], ], ], 'CreateGroupResult' => [ 'type' => 'structure', 'members' => [ 'Group' => [ 'shape' => 'Group', ], ], ], 'CreateSamplingRuleRequest' => [ 'type' => 'structure', 'required' => [ 'SamplingRule', ], 'members' => [ 'SamplingRule' => [ 'shape' => 'SamplingRule', ], ], ], 'CreateSamplingRuleResult' => [ 'type' => 'structure', 'members' => [ 'SamplingRuleRecord' => [ 'shape' => 'SamplingRuleRecord', ], ], ], 'DeleteGroupRequest' => [ 'type' => 'structure', 'members' => [ 'GroupName' => [ 'shape' => 'GroupName', ], 'GroupARN' => [ 'shape' => 'GroupARN', ], ], ], 'DeleteGroupResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteSamplingRuleRequest' => [ 'type' => 'structure', 'members' => [ 'RuleName' => [ 'shape' => 'String', ], 'RuleARN' => [ 'shape' => 'String', ], ], ], 'DeleteSamplingRuleResult' => [ 'type' => 'structure', 'members' => [ 'SamplingRuleRecord' => [ 'shape' => 'SamplingRuleRecord', ], ], ], 'Double' => [ 'type' => 'double', ], 'EC2InstanceId' => [ 'type' => 'string', 'max' => 20, ], 'Edge' => [ 'type' => 'structure', 'members' => [ 'ReferenceId' => [ 'shape' => 'NullableInteger', ], 'StartTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], 'SummaryStatistics' => [ 'shape' => 'EdgeStatistics', ], 'ResponseTimeHistogram' => [ 'shape' => 'Histogram', ], 'Aliases' => [ 'shape' => 'AliasList', ], ], ], 'EdgeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Edge', ], ], 'EdgeStatistics' => [ 'type' => 'structure', 'members' => [ 'OkCount' => [ 'shape' => 'NullableLong', ], 'ErrorStatistics' => [ 'shape' => 'ErrorStatistics', ], 'FaultStatistics' => [ 'shape' => 'FaultStatistics', ], 'TotalCount' => [ 'shape' => 'NullableLong', ], 'TotalResponseTime' => [ 'shape' => 'NullableDouble', ], ], ], 'EncryptionConfig' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'String', ], 'Status' => [ 'shape' => 'EncryptionStatus', ], 'Type' => [ 'shape' => 'EncryptionType', ], ], ], 'EncryptionKeyId' => [ 'type' => 'string', 'max' => 3000, 'min' => 1, ], 'EncryptionStatus' => [ 'type' => 'string', 'enum' => [ 'UPDATING', 'ACTIVE', ], ], 'EncryptionType' => [ 'type' => 'string', 'enum' => [ 'NONE', 'KMS', ], ], 'ErrorMessage' => [ 'type' => 'string', ], 'ErrorRootCause' => [ 'type' => 'structure', 'members' => [ 'Services' => [ 'shape' => 'ErrorRootCauseServices', ], ], ], 'ErrorRootCauseEntity' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Exceptions' => [ 'shape' => 'RootCauseExceptions', ], 'Remote' => [ 'shape' => 'NullableBoolean', ], ], ], 'ErrorRootCauseEntityPath' => [ 'type' => 'list', 'member' => [ 'shape' => 'ErrorRootCauseEntity', ], ], 'ErrorRootCauseService' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Names' => [ 'shape' => 'ServiceNames', ], 'Type' => [ 'shape' => 'String', ], 'AccountId' => [ 'shape' => 'String', ], 'EntityPath' => [ 'shape' => 'ErrorRootCauseEntityPath', ], 'Inferred' => [ 'shape' => 'NullableBoolean', ], ], ], 'ErrorRootCauseServices' => [ 'type' => 'list', 'member' => [ 'shape' => 'ErrorRootCauseService', ], ], 'ErrorRootCauses' => [ 'type' => 'list', 'member' => [ 'shape' => 'ErrorRootCause', ], ], 'ErrorStatistics' => [ 'type' => 'structure', 'members' => [ 'ThrottleCount' => [ 'shape' => 'NullableLong', ], 'OtherCount' => [ 'shape' => 'NullableLong', ], 'TotalCount' => [ 'shape' => 'NullableLong', ], ], ], 'FaultRootCause' => [ 'type' => 'structure', 'members' => [ 'Services' => [ 'shape' => 'FaultRootCauseServices', ], ], ], 'FaultRootCauseEntity' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Exceptions' => [ 'shape' => 'RootCauseExceptions', ], 'Remote' => [ 'shape' => 'NullableBoolean', ], ], ], 'FaultRootCauseEntityPath' => [ 'type' => 'list', 'member' => [ 'shape' => 'FaultRootCauseEntity', ], ], 'FaultRootCauseService' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Names' => [ 'shape' => 'ServiceNames', ], 'Type' => [ 'shape' => 'String', ], 'AccountId' => [ 'shape' => 'String', ], 'EntityPath' => [ 'shape' => 'FaultRootCauseEntityPath', ], 'Inferred' => [ 'shape' => 'NullableBoolean', ], ], ], 'FaultRootCauseServices' => [ 'type' => 'list', 'member' => [ 'shape' => 'FaultRootCauseService', ], ], 'FaultRootCauses' => [ 'type' => 'list', 'member' => [ 'shape' => 'FaultRootCause', ], ], 'FaultStatistics' => [ 'type' => 'structure', 'members' => [ 'OtherCount' => [ 'shape' => 'NullableLong', ], 'TotalCount' => [ 'shape' => 'NullableLong', ], ], ], 'FilterExpression' => [ 'type' => 'string', 'max' => 2000, 'min' => 1, ], 'FixedRate' => [ 'type' => 'double', 'max' => 1, 'min' => 0, ], 'GetEncryptionConfigRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetEncryptionConfigResult' => [ 'type' => 'structure', 'members' => [ 'EncryptionConfig' => [ 'shape' => 'EncryptionConfig', ], ], ], 'GetGroupRequest' => [ 'type' => 'structure', 'members' => [ 'GroupName' => [ 'shape' => 'GroupName', ], 'GroupARN' => [ 'shape' => 'GroupARN', ], ], ], 'GetGroupResult' => [ 'type' => 'structure', 'members' => [ 'Group' => [ 'shape' => 'Group', ], ], ], 'GetGroupsNextToken' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'GetGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'GetGroupsNextToken', ], ], ], 'GetGroupsResult' => [ 'type' => 'structure', 'members' => [ 'Groups' => [ 'shape' => 'GroupSummaryList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'GetSamplingRulesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], ], ], 'GetSamplingRulesResult' => [ 'type' => 'structure', 'members' => [ 'SamplingRuleRecords' => [ 'shape' => 'SamplingRuleRecordList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'GetSamplingStatisticSummariesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], ], ], 'GetSamplingStatisticSummariesResult' => [ 'type' => 'structure', 'members' => [ 'SamplingStatisticSummaries' => [ 'shape' => 'SamplingStatisticSummaryList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'GetSamplingTargetsRequest' => [ 'type' => 'structure', 'required' => [ 'SamplingStatisticsDocuments', ], 'members' => [ 'SamplingStatisticsDocuments' => [ 'shape' => 'SamplingStatisticsDocumentList', ], ], ], 'GetSamplingTargetsResult' => [ 'type' => 'structure', 'members' => [ 'SamplingTargetDocuments' => [ 'shape' => 'SamplingTargetDocumentList', ], 'LastRuleModification' => [ 'shape' => 'Timestamp', ], 'UnprocessedStatistics' => [ 'shape' => 'UnprocessedStatisticsList', ], ], ], 'GetServiceGraphRequest' => [ 'type' => 'structure', 'required' => [ 'StartTime', 'EndTime', ], 'members' => [ 'StartTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], 'GroupName' => [ 'shape' => 'GroupName', ], 'GroupARN' => [ 'shape' => 'GroupARN', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'GetServiceGraphResult' => [ 'type' => 'structure', 'members' => [ 'StartTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], 'Services' => [ 'shape' => 'ServiceList', ], 'ContainsOldGroupVersions' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'GetTraceGraphRequest' => [ 'type' => 'structure', 'required' => [ 'TraceIds', ], 'members' => [ 'TraceIds' => [ 'shape' => 'TraceIdList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'GetTraceGraphResult' => [ 'type' => 'structure', 'members' => [ 'Services' => [ 'shape' => 'ServiceList', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'GetTraceSummariesRequest' => [ 'type' => 'structure', 'required' => [ 'StartTime', 'EndTime', ], 'members' => [ 'StartTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], 'Sampling' => [ 'shape' => 'NullableBoolean', ], 'FilterExpression' => [ 'shape' => 'FilterExpression', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'GetTraceSummariesResult' => [ 'type' => 'structure', 'members' => [ 'TraceSummaries' => [ 'shape' => 'TraceSummaryList', ], 'ApproximateTime' => [ 'shape' => 'Timestamp', ], 'TracesProcessedCount' => [ 'shape' => 'NullableLong', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'Group' => [ 'type' => 'structure', 'members' => [ 'GroupName' => [ 'shape' => 'String', ], 'GroupARN' => [ 'shape' => 'String', ], 'FilterExpression' => [ 'shape' => 'String', ], ], ], 'GroupARN' => [ 'type' => 'string', 'max' => 400, 'min' => 1, ], 'GroupName' => [ 'type' => 'string', 'max' => 32, 'min' => 1, ], 'GroupSummary' => [ 'type' => 'structure', 'members' => [ 'GroupName' => [ 'shape' => 'String', ], 'GroupARN' => [ 'shape' => 'String', ], 'FilterExpression' => [ 'shape' => 'String', ], ], ], 'GroupSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GroupSummary', ], ], 'HTTPMethod' => [ 'type' => 'string', 'max' => 10, ], 'Histogram' => [ 'type' => 'list', 'member' => [ 'shape' => 'HistogramEntry', ], ], 'HistogramEntry' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Double', ], 'Count' => [ 'shape' => 'Integer', ], ], ], 'Host' => [ 'type' => 'string', 'max' => 64, ], 'Hostname' => [ 'type' => 'string', 'max' => 255, ], 'Http' => [ 'type' => 'structure', 'members' => [ 'HttpURL' => [ 'shape' => 'String', ], 'HttpStatus' => [ 'shape' => 'NullableInteger', ], 'HttpMethod' => [ 'shape' => 'String', ], 'UserAgent' => [ 'shape' => 'String', ], 'ClientIp' => [ 'shape' => 'String', ], ], ], 'InstanceIdDetail' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'String', ], ], ], 'Integer' => [ 'type' => 'integer', ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'NullableBoolean' => [ 'type' => 'boolean', ], 'NullableDouble' => [ 'type' => 'double', ], 'NullableInteger' => [ 'type' => 'integer', ], 'NullableLong' => [ 'type' => 'long', ], 'Priority' => [ 'type' => 'integer', 'max' => 9999, 'min' => 1, ], 'PutEncryptionConfigRequest' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'KeyId' => [ 'shape' => 'EncryptionKeyId', ], 'Type' => [ 'shape' => 'EncryptionType', ], ], ], 'PutEncryptionConfigResult' => [ 'type' => 'structure', 'members' => [ 'EncryptionConfig' => [ 'shape' => 'EncryptionConfig', ], ], ], 'PutTelemetryRecordsRequest' => [ 'type' => 'structure', 'required' => [ 'TelemetryRecords', ], 'members' => [ 'TelemetryRecords' => [ 'shape' => 'TelemetryRecordList', ], 'EC2InstanceId' => [ 'shape' => 'EC2InstanceId', ], 'Hostname' => [ 'shape' => 'Hostname', ], 'ResourceARN' => [ 'shape' => 'ResourceARN', ], ], ], 'PutTelemetryRecordsResult' => [ 'type' => 'structure', 'members' => [], ], 'PutTraceSegmentsRequest' => [ 'type' => 'structure', 'required' => [ 'TraceSegmentDocuments', ], 'members' => [ 'TraceSegmentDocuments' => [ 'shape' => 'TraceSegmentDocumentList', ], ], ], 'PutTraceSegmentsResult' => [ 'type' => 'structure', 'members' => [ 'UnprocessedTraceSegments' => [ 'shape' => 'UnprocessedTraceSegmentList', ], ], ], 'RequestCount' => [ 'type' => 'integer', 'min' => 0, ], 'ReservoirSize' => [ 'type' => 'integer', 'min' => 0, ], 'ResourceARN' => [ 'type' => 'string', 'max' => 500, ], 'ResourceARNDetail' => [ 'type' => 'structure', 'members' => [ 'ARN' => [ 'shape' => 'String', ], ], ], 'ResponseTimeRootCause' => [ 'type' => 'structure', 'members' => [ 'Services' => [ 'shape' => 'ResponseTimeRootCauseServices', ], ], ], 'ResponseTimeRootCauseEntity' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Coverage' => [ 'shape' => 'NullableDouble', ], 'Remote' => [ 'shape' => 'NullableBoolean', ], ], ], 'ResponseTimeRootCauseEntityPath' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResponseTimeRootCauseEntity', ], ], 'ResponseTimeRootCauseService' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Names' => [ 'shape' => 'ServiceNames', ], 'Type' => [ 'shape' => 'String', ], 'AccountId' => [ 'shape' => 'String', ], 'EntityPath' => [ 'shape' => 'ResponseTimeRootCauseEntityPath', ], 'Inferred' => [ 'shape' => 'NullableBoolean', ], ], ], 'ResponseTimeRootCauseServices' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResponseTimeRootCauseService', ], ], 'ResponseTimeRootCauses' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResponseTimeRootCause', ], ], 'RootCauseException' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], ], ], 'RootCauseExceptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'RootCauseException', ], ], 'RuleLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'exception' => true, ], 'RuleName' => [ 'type' => 'string', 'max' => 32, 'min' => 1, ], 'SampledCount' => [ 'type' => 'integer', 'min' => 0, ], 'SamplingRule' => [ 'type' => 'structure', 'required' => [ 'ResourceARN', 'Priority', 'FixedRate', 'ReservoirSize', 'ServiceName', 'ServiceType', 'Host', 'HTTPMethod', 'URLPath', 'Version', ], 'members' => [ 'RuleName' => [ 'shape' => 'RuleName', ], 'RuleARN' => [ 'shape' => 'String', ], 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'Priority' => [ 'shape' => 'Priority', ], 'FixedRate' => [ 'shape' => 'FixedRate', ], 'ReservoirSize' => [ 'shape' => 'ReservoirSize', ], 'ServiceName' => [ 'shape' => 'ServiceName', ], 'ServiceType' => [ 'shape' => 'ServiceType', ], 'Host' => [ 'shape' => 'Host', ], 'HTTPMethod' => [ 'shape' => 'HTTPMethod', ], 'URLPath' => [ 'shape' => 'URLPath', ], 'Version' => [ 'shape' => 'Version', ], 'Attributes' => [ 'shape' => 'AttributeMap', ], ], ], 'SamplingRuleRecord' => [ 'type' => 'structure', 'members' => [ 'SamplingRule' => [ 'shape' => 'SamplingRule', ], 'CreatedAt' => [ 'shape' => 'Timestamp', ], 'ModifiedAt' => [ 'shape' => 'Timestamp', ], ], ], 'SamplingRuleRecordList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SamplingRuleRecord', ], ], 'SamplingRuleUpdate' => [ 'type' => 'structure', 'members' => [ 'RuleName' => [ 'shape' => 'RuleName', ], 'RuleARN' => [ 'shape' => 'String', ], 'ResourceARN' => [ 'shape' => 'ResourceARN', ], 'Priority' => [ 'shape' => 'NullableInteger', ], 'FixedRate' => [ 'shape' => 'NullableDouble', ], 'ReservoirSize' => [ 'shape' => 'NullableInteger', ], 'Host' => [ 'shape' => 'Host', ], 'ServiceName' => [ 'shape' => 'ServiceName', ], 'ServiceType' => [ 'shape' => 'ServiceType', ], 'HTTPMethod' => [ 'shape' => 'HTTPMethod', ], 'URLPath' => [ 'shape' => 'URLPath', ], 'Attributes' => [ 'shape' => 'AttributeMap', ], ], ], 'SamplingStatisticSummary' => [ 'type' => 'structure', 'members' => [ 'RuleName' => [ 'shape' => 'String', ], 'Timestamp' => [ 'shape' => 'Timestamp', ], 'RequestCount' => [ 'shape' => 'Integer', ], 'BorrowCount' => [ 'shape' => 'Integer', ], 'SampledCount' => [ 'shape' => 'Integer', ], ], ], 'SamplingStatisticSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SamplingStatisticSummary', ], ], 'SamplingStatisticsDocument' => [ 'type' => 'structure', 'required' => [ 'RuleName', 'ClientID', 'Timestamp', 'RequestCount', 'SampledCount', ], 'members' => [ 'RuleName' => [ 'shape' => 'RuleName', ], 'ClientID' => [ 'shape' => 'ClientID', ], 'Timestamp' => [ 'shape' => 'Timestamp', ], 'RequestCount' => [ 'shape' => 'RequestCount', ], 'SampledCount' => [ 'shape' => 'SampledCount', ], 'BorrowCount' => [ 'shape' => 'BorrowCount', ], ], ], 'SamplingStatisticsDocumentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SamplingStatisticsDocument', ], 'max' => 25, ], 'SamplingTargetDocument' => [ 'type' => 'structure', 'members' => [ 'RuleName' => [ 'shape' => 'String', ], 'FixedRate' => [ 'shape' => 'Double', ], 'ReservoirQuota' => [ 'shape' => 'NullableInteger', ], 'ReservoirQuotaTTL' => [ 'shape' => 'Timestamp', ], 'Interval' => [ 'shape' => 'NullableInteger', ], ], ], 'SamplingTargetDocumentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SamplingTargetDocument', ], ], 'Segment' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'SegmentId', ], 'Document' => [ 'shape' => 'SegmentDocument', ], ], ], 'SegmentDocument' => [ 'type' => 'string', 'min' => 1, ], 'SegmentId' => [ 'type' => 'string', ], 'SegmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Segment', ], ], 'Service' => [ 'type' => 'structure', 'members' => [ 'ReferenceId' => [ 'shape' => 'NullableInteger', ], 'Name' => [ 'shape' => 'String', ], 'Names' => [ 'shape' => 'ServiceNames', ], 'Root' => [ 'shape' => 'NullableBoolean', ], 'AccountId' => [ 'shape' => 'String', ], 'Type' => [ 'shape' => 'String', ], 'State' => [ 'shape' => 'String', ], 'StartTime' => [ 'shape' => 'Timestamp', ], 'EndTime' => [ 'shape' => 'Timestamp', ], 'Edges' => [ 'shape' => 'EdgeList', ], 'SummaryStatistics' => [ 'shape' => 'ServiceStatistics', ], 'DurationHistogram' => [ 'shape' => 'Histogram', ], 'ResponseTimeHistogram' => [ 'shape' => 'Histogram', ], ], ], 'ServiceId' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Names' => [ 'shape' => 'ServiceNames', ], 'AccountId' => [ 'shape' => 'String', ], 'Type' => [ 'shape' => 'String', ], ], ], 'ServiceIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceId', ], ], 'ServiceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Service', ], ], 'ServiceName' => [ 'type' => 'string', 'max' => 64, ], 'ServiceNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ServiceStatistics' => [ 'type' => 'structure', 'members' => [ 'OkCount' => [ 'shape' => 'NullableLong', ], 'ErrorStatistics' => [ 'shape' => 'ErrorStatistics', ], 'FaultStatistics' => [ 'shape' => 'FaultStatistics', ], 'TotalCount' => [ 'shape' => 'NullableLong', ], 'TotalResponseTime' => [ 'shape' => 'NullableDouble', ], ], ], 'ServiceType' => [ 'type' => 'string', 'max' => 64, ], 'String' => [ 'type' => 'string', ], 'TelemetryRecord' => [ 'type' => 'structure', 'required' => [ 'Timestamp', ], 'members' => [ 'Timestamp' => [ 'shape' => 'Timestamp', ], 'SegmentsReceivedCount' => [ 'shape' => 'NullableInteger', ], 'SegmentsSentCount' => [ 'shape' => 'NullableInteger', ], 'SegmentsSpilloverCount' => [ 'shape' => 'NullableInteger', ], 'SegmentsRejectedCount' => [ 'shape' => 'NullableInteger', ], 'BackendConnectionErrors' => [ 'shape' => 'BackendConnectionErrors', ], ], ], 'TelemetryRecordList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TelemetryRecord', ], ], 'ThrottledException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'ErrorMessage', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'Trace' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'TraceId', ], 'Duration' => [ 'shape' => 'NullableDouble', ], 'Segments' => [ 'shape' => 'SegmentList', ], ], ], 'TraceAvailabilityZones' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZoneDetail', ], ], 'TraceId' => [ 'type' => 'string', 'max' => 35, 'min' => 1, ], 'TraceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TraceId', ], ], 'TraceInstanceIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceIdDetail', ], ], 'TraceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Trace', ], ], 'TraceResourceARNs' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceARNDetail', ], ], 'TraceSegmentDocument' => [ 'type' => 'string', ], 'TraceSegmentDocumentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TraceSegmentDocument', ], ], 'TraceSummary' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'TraceId', ], 'Duration' => [ 'shape' => 'NullableDouble', ], 'ResponseTime' => [ 'shape' => 'NullableDouble', ], 'HasFault' => [ 'shape' => 'NullableBoolean', ], 'HasError' => [ 'shape' => 'NullableBoolean', ], 'HasThrottle' => [ 'shape' => 'NullableBoolean', ], 'IsPartial' => [ 'shape' => 'NullableBoolean', ], 'Http' => [ 'shape' => 'Http', ], 'Annotations' => [ 'shape' => 'Annotations', ], 'Users' => [ 'shape' => 'TraceUsers', ], 'ServiceIds' => [ 'shape' => 'ServiceIds', ], 'ResourceARNs' => [ 'shape' => 'TraceResourceARNs', ], 'InstanceIds' => [ 'shape' => 'TraceInstanceIds', ], 'AvailabilityZones' => [ 'shape' => 'TraceAvailabilityZones', ], 'EntryPoint' => [ 'shape' => 'ServiceId', ], 'FaultRootCauses' => [ 'shape' => 'FaultRootCauses', ], 'ErrorRootCauses' => [ 'shape' => 'ErrorRootCauses', ], 'ResponseTimeRootCauses' => [ 'shape' => 'ResponseTimeRootCauses', ], 'Revision' => [ 'shape' => 'Integer', ], ], ], 'TraceSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TraceSummary', ], ], 'TraceUser' => [ 'type' => 'structure', 'members' => [ 'UserName' => [ 'shape' => 'String', ], 'ServiceIds' => [ 'shape' => 'ServiceIds', ], ], ], 'TraceUsers' => [ 'type' => 'list', 'member' => [ 'shape' => 'TraceUser', ], ], 'URLPath' => [ 'type' => 'string', 'max' => 128, ], 'UnprocessedStatistics' => [ 'type' => 'structure', 'members' => [ 'RuleName' => [ 'shape' => 'String', ], 'ErrorCode' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], ], ], 'UnprocessedStatisticsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UnprocessedStatistics', ], ], 'UnprocessedTraceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TraceId', ], ], 'UnprocessedTraceSegment' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'String', ], 'ErrorCode' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], ], ], 'UnprocessedTraceSegmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UnprocessedTraceSegment', ], ], 'UpdateGroupRequest' => [ 'type' => 'structure', 'members' => [ 'GroupName' => [ 'shape' => 'GroupName', ], 'GroupARN' => [ 'shape' => 'GroupARN', ], 'FilterExpression' => [ 'shape' => 'FilterExpression', ], ], ], 'UpdateGroupResult' => [ 'type' => 'structure', 'members' => [ 'Group' => [ 'shape' => 'Group', ], ], ], 'UpdateSamplingRuleRequest' => [ 'type' => 'structure', 'required' => [ 'SamplingRuleUpdate', ], 'members' => [ 'SamplingRuleUpdate' => [ 'shape' => 'SamplingRuleUpdate', ], ], ], 'UpdateSamplingRuleResult' => [ 'type' => 'structure', 'members' => [ 'SamplingRuleRecord' => [ 'shape' => 'SamplingRuleRecord', ], ], ], 'ValueWithServiceIds' => [ 'type' => 'structure', 'members' => [ 'AnnotationValue' => [ 'shape' => 'AnnotationValue', ], 'ServiceIds' => [ 'shape' => 'ServiceIds', ], ], ], 'ValuesWithServiceIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'ValueWithServiceIds', ], ], 'Version' => [ 'type' => 'integer', 'min' => 1, ], ],]; diff --git a/lib/aws/Aws/data/xray/2016-04-12/paginators-1.json.php b/lib/aws/Aws/data/xray/2016-04-12/paginators-1.json.php new file mode 100644 index 0000000..57b28c3 --- /dev/null +++ b/lib/aws/Aws/data/xray/2016-04-12/paginators-1.json.php @@ -0,0 +1,3 @@ +<?php +// This file was auto-generated from sdk-root/src/data/xray/2016-04-12/paginators-1.json +return [ 'pagination' => [ 'BatchGetTraces' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'result_key' => 'Traces', ], 'GetServiceGraph' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'result_key' => 'Services', ], 'GetTraceGraph' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'result_key' => 'Services', ], 'GetTraceSummaries' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'result_key' => 'TraceSummaries', ], ],]; diff --git a/lib/aws/Aws/functions.php b/lib/aws/Aws/functions.php new file mode 100644 index 0000000..21e40d9 --- /dev/null +++ b/lib/aws/Aws/functions.php @@ -0,0 +1,411 @@ +<?php +namespace Aws; + +use Psr\Http\Message\RequestInterface; +use GuzzleHttp\ClientInterface; +use GuzzleHttp\Promise\FulfilledPromise; + +//----------------------------------------------------------------------------- +// Functional functions +//----------------------------------------------------------------------------- + +/** + * Returns a function that always returns the same value; + * + * @param mixed $value Value to return. + * + * @return callable + */ +function constantly($value) +{ + return function () use ($value) { return $value; }; +} + +/** + * Filters values that do not satisfy the predicate function $pred. + * + * @param mixed $iterable Iterable sequence of data. + * @param callable $pred Function that accepts a value and returns true/false + * + * @return \Generator + */ +function filter($iterable, callable $pred) +{ + foreach ($iterable as $value) { + if ($pred($value)) { + yield $value; + } + } +} + +/** + * Applies a map function $f to each value in a collection. + * + * @param mixed $iterable Iterable sequence of data. + * @param callable $f Map function to apply. + * + * @return \Generator + */ +function map($iterable, callable $f) +{ + foreach ($iterable as $value) { + yield $f($value); + } +} + +/** + * Creates a generator that iterates over a sequence, then iterates over each + * value in the sequence and yields the application of the map function to each + * value. + * + * @param mixed $iterable Iterable sequence of data. + * @param callable $f Map function to apply. + * + * @return \Generator + */ +function flatmap($iterable, callable $f) +{ + foreach (map($iterable, $f) as $outer) { + foreach ($outer as $inner) { + yield $inner; + } + } +} + +/** + * Partitions the input sequence into partitions of the specified size. + * + * @param mixed $iterable Iterable sequence of data. + * @param int $size Size to make each partition (except possibly the last chunk) + * + * @return \Generator + */ +function partition($iterable, $size) +{ + $buffer = []; + foreach ($iterable as $value) { + $buffer[] = $value; + if (count($buffer) === $size) { + yield $buffer; + $buffer = []; + } + } + + if ($buffer) { + yield $buffer; + } +} + +/** + * Returns a function that invokes the provided variadic functions one + * after the other until one of the functions returns a non-null value. + * The return function will call each passed function with any arguments it + * is provided. + * + * $a = function ($x, $y) { return null; }; + * $b = function ($x, $y) { return $x + $y; }; + * $fn = \Aws\or_chain($a, $b); + * echo $fn(1, 2); // 3 + * + * @return callable + */ +function or_chain() +{ + $fns = func_get_args(); + return function () use ($fns) { + $args = func_get_args(); + foreach ($fns as $fn) { + $result = $args ? call_user_func_array($fn, $args) : $fn(); + if ($result) { + return $result; + } + } + return null; + }; +} + +//----------------------------------------------------------------------------- +// JSON compiler and loading functions +//----------------------------------------------------------------------------- + +/** + * Loads a compiled JSON file from a PHP file. + * + * If the JSON file has not been cached to disk as a PHP file, it will be loaded + * from the JSON source file and returned. + * + * @param string $path Path to the JSON file on disk + * + * @return mixed Returns the JSON decoded data. Note that JSON objects are + * decoded as associative arrays. + */ +function load_compiled_json($path) +{ + $compiledFilepath = "{$path}.php"; + if (is_readable($compiledFilepath)) { + return include($compiledFilepath); + } + + if (!file_exists($path)) { + throw new \InvalidArgumentException( + sprintf("File not found: %s", $path) + ); + } + + return json_decode(file_get_contents($path), true); +} + +/** + * No-op + */ +function clear_compiled_json() +{ + // pass +} + +//----------------------------------------------------------------------------- +// 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(); + } + + if ($version[0] === '6') { + return new \Aws\Handler\GuzzleV6\GuzzleHandler(); + } + + throw new \RuntimeException('Unknown Guzzle version: ' . $version); +} + +/** + * Gets the default user agent string depending on the Guzzle version + * + * @return string + */ +function default_user_agent() +{ + $version = (string) ClientInterface::VERSION; + if ($version[0] === '5') { + return \GuzzleHttp\Client::getDefaultUserAgent(); + } + + if ($version[0] === '6') { + return \GuzzleHttp\default_user_agent(); + } + + 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; +} + +/** + * Retrieves data for a service from the SDK's service manifest file. + * + * Manifest data is stored statically, so it does not need to be loaded more + * than once per process. The JSON data is also cached in opcache. + * + * @param string $service Case-insensitive namespace or endpoint prefix of the + * service for which you are retrieving manifest data. + * + * @return array + * @throws \InvalidArgumentException if the service is not supported. + */ +function manifest($service = null) +{ + // Load the manifest and create aliases for lowercased namespaces + static $manifest = []; + static $aliases = []; + if (empty($manifest)) { + $manifest = load_compiled_json(__DIR__ . '/data/manifest.json'); + foreach ($manifest as $endpoint => $info) { + $alias = strtolower($info['namespace']); + if ($alias !== $endpoint) { + $aliases[$alias] = $endpoint; + } + } + } + + // If no service specified, then return the whole manifest. + if ($service === null) { + return $manifest; + } + + // Look up the service's info in the manifest data. + $service = strtolower($service); + if (isset($manifest[$service])) { + return $manifest[$service] + ['endpoint' => $service]; + } + + if (isset($aliases[$service])) { + return manifest($aliases[$service]); + } + + throw new \InvalidArgumentException( + "The service \"{$service}\" is not provided by the AWS SDK for PHP." + ); +} + +/** + * Checks if supplied parameter is a valid hostname + * + * @param string $hostname + * @return bool + */ +function is_valid_hostname($hostname) +{ + return ( + preg_match("/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*\.?$/i", $hostname) + && preg_match("/^.{1,253}$/", $hostname) + && preg_match("/^[^\.]{1,63}(\.[^\.]{0,63})*$/", $hostname) + ); +} + +/** + * Ignores '#' full line comments, which parse_ini_file no longer does + * in PHP 7+. + * + * @param $filename + * @param bool $process_sections + * @param int $scanner_mode + * @return array|bool + */ +function parse_ini_file( + $filename, + $process_sections = false, + $scanner_mode = INI_SCANNER_NORMAL) +{ + return parse_ini_string( + preg_replace('/^#.*\\n/m', "", file_get_contents($filename)), + $process_sections, + $scanner_mode + ); +} \ No newline at end of file diff --git a/lib/aws/Aws/signer/Exception/signerException.php b/lib/aws/Aws/signer/Exception/signerException.php new file mode 100644 index 0000000..4779f70 --- /dev/null +++ b/lib/aws/Aws/signer/Exception/signerException.php @@ -0,0 +1,9 @@ +<?php +namespace Aws\signer\Exception; + +use Aws\Exception\AwsException; + +/** + * Represents an error interacting with the **AWS Signer** service. + */ +class signerException extends AwsException {} diff --git a/lib/aws/Aws/signer/signerClient.php b/lib/aws/Aws/signer/signerClient.php new file mode 100644 index 0000000..27fafd2 --- /dev/null +++ b/lib/aws/Aws/signer/signerClient.php @@ -0,0 +1,27 @@ +<?php +namespace Aws\signer; + +use Aws\AwsClient; + +/** + * This client is used to interact with the **AWS Signer** service. + * @method \Aws\Result cancelSigningProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise cancelSigningProfileAsync(array $args = []) + * @method \Aws\Result describeSigningJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise describeSigningJobAsync(array $args = []) + * @method \Aws\Result getSigningPlatform(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSigningPlatformAsync(array $args = []) + * @method \Aws\Result getSigningProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise getSigningProfileAsync(array $args = []) + * @method \Aws\Result listSigningJobs(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSigningJobsAsync(array $args = []) + * @method \Aws\Result listSigningPlatforms(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSigningPlatformsAsync(array $args = []) + * @method \Aws\Result listSigningProfiles(array $args = []) + * @method \GuzzleHttp\Promise\Promise listSigningProfilesAsync(array $args = []) + * @method \Aws\Result putSigningProfile(array $args = []) + * @method \GuzzleHttp\Promise\Promise putSigningProfileAsync(array $args = []) + * @method \Aws\Result startSigningJob(array $args = []) + * @method \GuzzleHttp\Promise\Promise startSigningJobAsync(array $args = []) + */ +class signerClient extends AwsClient {} diff --git a/lib/aws/CHANGELOG.md b/lib/aws/CHANGELOG.md new file mode 100644 index 0000000..31f674c --- /dev/null +++ b/lib/aws/CHANGELOG.md @@ -0,0 +1,4954 @@ +# CHANGELOG + +## 3.91.4 - 2019-04-05 + +* `Aws\` - Enables Expect http config to be passed through GuzzleV5 Handler. +* `Aws\Comprehend` - With this release AWS Comprehend provides confusion matrix for custom document classifier. +* `Aws\Glue` - AWS Glue now supports workerType choices in the CreateJob, UpdateJob, and StartJobRun APIs, to be used for memory-intensive jobs. +* `Aws\IoT1ClickDevicesService` - Documentation updates for 1-Click: improved descriptions of resource tagging APIs. +* `Aws\MediaConvert` - Rectify incorrect modelling of DisassociateCertificate method +* `Aws\MediaLive` - Today AWS Elemental MediaLive (https://aws.amazon.com/medialive/) adds the option to create "Single Pipeline" channels, which offers a lower-cost option compared to Standard channels. MediaLive Single Pipeline channels have a single encoding pipeline rather than the redundant dual Availability Zone (AZ) pipelines that MediaLive provides with a "Standard" channel. + +## 3.91.3 - 2019-04-04 + +* `Aws\EKS` - Added support to enable or disable publishing Kubernetes cluster logs in AWS CloudWatch +* `Aws\IAM` - Documentation updates for iam + +## 3.91.2 - 2019-04-03 + +* `Aws\Batch` - Support for GPU resource requirement in RegisterJobDefinition and SubmitJob +* `Aws\Comprehend` - With this release AWS Comprehend adds tagging support for document-classifiers and entity-recognizers. + +## 3.91.1 - 2019-04-02 + +* `Aws\ACM` - Documentation updates for acm +* `Aws\EC2` - Add paginators. +* `Aws\SecurityHub` - This update includes 3 additional error codes: AccessDeniedException, InvalidAccessException, and ResourceConflictException. This update also removes the error code ResourceNotFoundException from the GetFindings, GetInvitationsCount, ListInvitations, and ListMembers operations. + +## 3.91.0 - 2019-04-01 + +* `Aws\` - Adds helper function to parse full-line hash comments for credentials and config files, which was removed in PHP 7's implemention of parse_ini_file. +* `Aws\EMR` - Amazon EMR adds the ability to modify instance group configurations on a running cluster through the new "configurations" field in the ModifyInstanceGroups API. +* `Aws\SSM` - March 2019 documentation updates for Systems Manager. + +## 3.90.13 - 2019-03-29 + +* `Aws\CloudWatch` - Added 3 new APIs, and one additional parameter to PutMetricAlarm API, to support tagging of CloudWatch Alarms. +* `Aws\Comprehend` - With this release AWS Comprehend supports encryption of output results of analysis jobs and volume data on the storage volume attached to the compute instance that processes the analysis job. +* `Aws\Greengrass` - Greengrass APIs now support tagging operations on resources + +## 3.90.12 - 2019-03-28 + +* `Aws\CloudFront` - Parse the private key used to sign Cloudfront Urls once during construction instead of on every call to ->sign(). For a 2048bit key, this dropped the signing time from 1.3ms to 0.7ms. For a 1024bit key, the time went from 0.40ms to 0.16ms. +* `Aws\MediaLive` - This release adds a new output locking mode synchronized to the Unix epoch. +* `Aws\PinpointEmail` - This release adds support for using the Amazon Pinpoint Email API to tag the following types of Amazon Pinpoint resources: configuration sets; dedicated IP pools; deliverability dashboard reports; and, email identities. A tag is a label that you optionally define and associate with these types of resources. Tags can help you categorize and manage these resources in different ways, such as by purpose, owner, environment, or other criteria. A resource can have as many as 50 tags. For more information, see the Amazon Pinpoint Email API Reference. +* `Aws\ServiceCatalog` - Adds "Tags" field in UpdateProvisionedProduct API. The product should have a new RESOURCE_UPDATE Constraint with TagUpdateOnProvisionedProduct field set to ALLOWED for it to work. See API docs for CreateConstraint for more information +* `Aws\WorkSpaces` - Amazon WorkSpaces adds tagging support for WorkSpaces Images, WorkSpaces directories, WorkSpaces bundles and IP Access control groups. + +## 3.90.11 - 2019-03-27 + +* `Aws\AppMesh` - This release includes AWS Tagging integration for App Mesh, VirtualNode access logging, TCP routing, and Mesh-wide external traffic egress control. See https://docs.aws.amazon.com/app-mesh/latest/APIReference/Welcome.html for more details. +* `Aws\EC2` - You can now launch the new Amazon EC2 R5ad and M5ad instances that feature local NVMe attached SSD instance storage (up to 3600 GB). M5ad and R5ad feature AMD EPYC processors that offer a 10% cost savings over the M5d and R5d EC2 instances. +* `Aws\ECS` - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for external deployment controllers for ECS services with the launch of task set management APIs. Task sets are a new primitive for controlled management of application deployments within a single ECS service. +* `Aws\ElasticLoadBalancingv2` - This release adds support for routing based on HTTP headers, methods, query string or query parameters and source IP addresses in Application Load Balancer. +* `Aws\S3` - S3 Glacier Deep Archive provides secure, durable object storage class for long term data archival. This SDK release provides API support for this new storage class. +* `Aws\StorageGateway` - This change allows you to select a pool for archiving virtual tapes. Pools are associated with S3 storage classes. You can now choose to archive virtual tapes in either S3 Glacier or S3 Glacier Deep Archive storage class. CreateTapes API now takes a new PoolId parameter which can either be GLACIER or DEEP_ARCHIVE. Tapes created with this parameter will be archived in the corresponding storage class. +* `Aws\Transfer` - This release adds PrivateLink support to your AWS SFTP server endpoint, enabling the customer to access their SFTP server within a VPC, without having to traverse the internet. Customers can now can create a server and specify an option whether they want the endpoint to be hosted as public or in their VPC, and with the in VPC option, SFTP clients and users can access the server only from the customer's VPC or from their on-premises environments using DX or VPN. This release also relaxes the SFTP user name requirements to allow underscores and hyphens. + +## 3.90.10 - 2019-03-26 + +* `Aws\Glue` - This new feature will now allow customers to add a customized csv classifier with classifier API. They can specify a custom delimiter, quote symbol and control other behavior they'd like crawlers to have while recognizing csv files +* `Aws\WorkMail` - Documentation updates for Amazon WorkMail. + +## 3.90.9 - 2019-03-25 + +* `Aws\DirectConnect` - Direct Connect gateway enables you to establish connectivity between your on-premise networks and Amazon Virtual Private Clouds (VPCs) in any commercial AWS Region (except in China) using AWS Direct Connect connections at any AWS Direct Connect location. This release enables multi-account support for Direct Connect gateway, with multi-account support for Direct Connect gateway, you can associate up to ten VPCs from any AWS account with a Direct Connect gateway. The AWS accounts owning VPCs and the Direct Connect gateway must belong to the same AWS payer account ID. This release also enables Direct Connect Gateway owners to allocate allowed prefixes from each associated VPCs. +* `Aws\FMS` - AWS Firewall Manager now allows customer to centrally enable AWS Shield Advanced DDoS protection for their entire AWS infrastructure, across accounts and applications. +* `Aws\IoT1ClickDevicesService` - This release adds tagging support for AWS IoT 1-Click Device resources. Use these APIs to add, remove, or list tags on Devices, and leverage the tags for various authorization and billing scenarios. This release also adds the ARN property for DescribeDevice response object. +* `Aws\IoTAnalytics` - This change allows you to specify the number of versions of IoT Analytics data set content to be retained. Previously, the number of versions was managed implicitly via the setting of the data set's retention period. +* `Aws\MediaConvert` - This release adds support for detailed job progress status and S3 server-side output encryption. In addition, the anti-alias filter will now be automatically applied to all outputs +* `Aws\RoboMaker` - Added additional progress metadata fields for robot deployments +* `Aws\TranscribeService` - Amazon Transcribe - With this release Amazon Transcribe enhances the custom vocabulary feature to improve accuracy by providing customization on pronunciations and output formatting. + +## 3.90.8 - 2019-03-22 + +* `Aws\IoT1ClickProjects` - This release adds tagging support for AWS IoT 1-Click Project resources. Use these APIs to add, remove, or list tags on Projects, and leverage the tags for various authorization and billing scenarios. This release also adds the ARN property to projects for DescribeProject and ListProject responses. +* `Aws\TranscribeService` - Amazon Transcribe - support transcriptions from audio sources in German (de-DE) and Korean (ko-KR). + +## 3.90.7 - 2019-03-21 + +* `Aws\AutoScaling` - Documentation updates for Amazon EC2 Auto Scaling +* `Aws\CloudWatchEvents` - Added 3 new APIs, and one additional parameter to the PutRule API, to support tagging of CloudWatch Events rules. +* `Aws\CognitoIdentityProvider` - This release adds tags and tag-based access control support to Amazon Cognito User Pools. +* `Aws\IoT` - This release adds the GetStatistics API for the AWS IoT Fleet Indexing Service, which allows customers to query for statistics about registered devices that match a search query. This release only supports the count statistics. For more information about this API, see https://docs.aws.amazon.com/iot/latest/apireference/API_GetStatistics.html +* `Aws\Lightsail` - This release adds the DeleteKnownHostKeys API, which enables Lightsail's browser-based SSH or RDP clients to connect to the instance after a host key mismatch. + +## 3.90.6 - 2019-03-20 + +* `Aws\CodePipeline` - Add support for viewing details of each action execution belonging to past and latest pipeline executions that have occurred in customer's pipeline. The details include start/updated times, action execution results, input/output artifacts information, etc. Customers also have the option to add pipelineExecutionId in the input to filter the results down to a single pipeline execution. +* `Aws\CognitoIdentity` - This release adds tags and tag-based access control support to Amazon Cognito Identity Pools (Federated Identities). +* `Aws\MarketplaceMetering` - This release increases AWS Marketplace Metering Service maximum usage quantity to 2147483647 and makes parameters usage quantity and dryrun optional. + +## 3.90.5 - 2019-03-19 + +* `Aws\ConfigService` - AWS Config adds a new API called SelectResourceConfig to run advanced queries based on resource configuration properties. +* `Aws\EKS` - Added support to control private/public access to the Kubernetes API-server endpoint + +## 3.90.4 - 2019-03-18 + +* `Aws\Chime` - This release adds support for the Amazon Chime Business Calling and Voice Connector features. +* `Aws\DatabaseMigrationService` - S3 Endpoint Settings added support for 1) Migrating to Amazon S3 as a target in Parquet format 2) Encrypting S3 objects after migration with custom KMS Server-Side encryption. Redshift Endpoint Settings added support for encrypting intermediate S3 objects during migration with custom KMS Server-Side encryption. +* `Aws\EC2` - DescribeFpgaImages API now returns a new DataRetentionSupport attribute to indicate if the AFI meets the requirements to support DRAM data retention. DataRetentionSupport is a read-only attribute. + +## 3.90.3 - 2019-03-14 + +* `Aws\ACM` - AWS Certificate Manager has added a new API action, RenewCertificate. RenewCertificate causes ACM to force the renewal of any private certificate which has been exported. +* `Aws\ACMPCA` - AWS Certificate Manager (ACM) Private CA allows customers to manage permissions on their CAs. Customers can grant or deny AWS Certificate Manager permission to renew exported private certificates. +* `Aws\CloudWatch` - New Messages parameter for the output of GetMetricData, to support new metric search functionality. +* `Aws\ConfigService` - AWS Config - add ability to tag, untag and list tags for ConfigRule, ConfigurationAggregator and AggregationAuthorization resource types. Tags can be used for various scenarios including tag based authorization. +* `Aws\EC2` - This release adds tagging support for Dedicated Host Reservations. +* `Aws\IoT` - In this release, AWS IoT introduces support for tagging OTA Update and Stream resources. For more information about tagging, see the AWS IoT Developer Guide. +* `Aws\SageMaker` - Amazon SageMaker Automatic Model Tuning now supports random search and hyperparameter scaling. + +## 3.90.2 - 2019-03-13 + +* `Aws\CloudWatchLogs` - Documentation updates for logs +* `Aws\ConfigService` - Config released Remediation APIs allowing Remediation of Config Rules + +## 3.90.1 - 2019-03-12 + +* `Aws\ServerlessApplicationRepository` - The AWS Serverless Application Repository now supports associating a ZIP source code archive with versions of an application. + +## 3.90.0 - 2019-03-11 + +* `Aws\` - Adds ability to clone existing Sdk instance with extra arguments. +* `Aws\CostExplorer` - The only change in this release is to make TimePeriod a required parameter in GetCostAndUsageRequest. +* `Aws\ElasticBeanstalk` - Elastic Beanstalk added support for tagging, and tag-based access control, of all Elastic Beanstalk resources. +* `Aws\Glue` - CreateDevEndpoint and UpdateDevEndpoint now support Arguments to configure the DevEndpoint. +* `Aws\IoT` - Documentation updates for iot +* `Aws\QuickSight` - Amazon QuickSight user and group operation results now include group principal IDs and user principal IDs. This release also adds "DeleteUserByPrincipalId", which deletes users given their principal ID. The update also improves role session name validation. +* `Aws\Rekognition` - Documentation updates for Amazon Rekognition + +## 3.89.1 - 2019-03-08 + +* `Aws\CodeBuild` - CodeBuild also now supports Git Submodules. CodeBuild now supports opting out of Encryption for S3 Build Logs. By default these logs are encrypted. +* `Aws\S3` - Documentation updates for s3 +* `Aws\SageMaker` - SageMaker notebook instances now support enabling or disabling root access for notebook users. SageMaker Neo now supports rk3399 and rk3288 as compilation target devices. + +## 3.89.0 - 2019-03-07 + +* `Aws\AppMesh` - This release includes a new version of the AWS App Mesh APIs. You can read more about the new APIs here: https://docs.aws.amazon.com/app-mesh/latest/APIReference/Welcome.html. +* `Aws\AutoScaling` - Documentation updates for autoscaling +* `Aws\ECS` - This release of Amazon Elastic Container Service (Amazon ECS) introduces additional task definition parameters that enable you to define dependencies for container startup and shutdown, a per-container start and stop timeout value, as well as an AWS App Mesh proxy configuration which eases the integration between Amazon ECS and AWS App Mesh. +* `Aws\GameLift` - Amazon GameLift-hosted instances can now securely access resources on other AWS services using IAM roles. See more details at https://aws.amazon.com/releasenotes/amazon-gamelift/. +* `Aws\Greengrass` - Greengrass group UID and GID settings can now be configured to use a provided default via FunctionDefaultConfig. If configured, all Lambda processes in your deployed Greengrass group will by default start with the provided UID and/or GID, rather than by default starting with UID "ggc_user" and GID "ggc_group" as they would if not configured. Individual Lambdas can also be configured to override the defaults if desired via each object in the Functions list of your FunctionDefinitionVersion. +* `Aws\MediaLive` - This release adds a MediaPackage output group, simplifying configuration of outputs to AWS Elemental MediaPackage. +* `Aws\RDS` - You can configure your Aurora database cluster to automatically copy tags on the cluster to any automated or manual database cluster snapshots that are created from the cluster. This allows you to easily set metadata on your snapshots to match the parent cluster, including access policies. You may enable or disable this functionality while creating a new cluster, or by modifying an existing database cluster. +* `Aws\S3` - Updates the S3 stream wrapper to be able to write empty files for PHP 7+. + +## 3.88.1 - 2019-03-06 + +* `Aws\DirectConnect` - Exposed a new available port speeds field in the DescribeLocation api call. +* `Aws\EC2` - This release adds pagination support for ec2.DescribeVpcs, ec2.DescribeInternetGateways and ec2.DescribeNetworkAcls APIs +* `Aws\EFS` - Documentation updates for elasticfilesystem adding new examples for EFS Lifecycle Management feature. + +## 3.88.0 - 2019-03-05 + +* `Aws\CodeDeploy` - Documentation updates for codedeploy +* `Aws\MediaLive` - This release adds support for pausing and unpausing one or both pipelines at scheduled times. +* `Aws\StorageGateway` - ActivateGateway, CreateNFSFileShare and CreateSMBFileShare APIs support a new parameter: Tags (to be attached to the created resource). Output for DescribeNFSFileShare, DescribeSMBFileShare and DescribeGatewayInformation APIs now also list the Tags associated with the resource. Minimum length of a KMSKey is now 7 characters. +* `Aws\Test` - Refactor client iterator tests to use mocked model data. +* `Aws\Textract` - This release is intended ONLY for customers that are officially part of the Amazon Textract Preview program. If you are not officially part of the Amazon Textract program THIS WILL NOT WORK. Our two main regions for Amazon Textract Preview are N. Virginia and Dublin. Also some members have been added to Oregon and Ohio. If you are outside of any of these AWS regions, Amazon Textract Preview definitely will not work. If you would like to be part of the Amazon Textract program, you can officially request sign up here - https://pages.awscloud.com/textract-preview.html. To set expectations appropriately, we are aiming to admit new preview participants once a week until General Availability. + +## 3.87.23 - 2019-03-04 + +* `Aws\MediaPackage` - This release adds support for user-defined tagging of MediaPackage resources. Users may now call operations to list, add and remove tags from channels and origin-endpoints. Users can also specify tags to be attached to these resources during their creation. Describe and list operations on these resources will now additionally return any tags associated with them. +* `Aws\SSM` - This release updates AWS Systems Manager APIs to support service settings for AWS customers. A service setting is a key-value pair that defines how a user interacts with or uses an AWS service, and is typically created and consumed by the AWS service team. AWS customers can read a service setting via GetServiceSetting API and update the setting via UpdateServiceSetting API or ResetServiceSetting API, which are introduced in this release. For example, if an AWS service charges money to the account based on a feature or service usage, then the AWS service team might create a setting with the default value of "false". This means the user can't use this feature unless they update the setting to "true" and intentionally opt in for a paid feature. + +## 3.87.22 - 2019-03-01 + +* `Aws\AutoScalingPlans` - Documentation updates for autoscaling-plans +* `Aws\EC2` - This release adds support for modifying instance event start time which allows users to reschedule EC2 events. + +## 3.87.21 - 2019-02-28 + +* `Aws\AlexaForBusiness` - This release adds the PutInvitationConfiguration API to configure the user invitation email template with custom attributes, and the GetInvitationConfiguration API to retrieve the configured values. +* `Aws\ApiGatewayV2` - Marking certain properties as explicitly required and fixing an issue with the GetApiMappings operation for ApiMapping resources. +* `Aws\ApplicationAutoScaling` - Documentation updates for application-autoscaling +* `Aws\SSM` - AWS Systems Manager State Manager now supports associations using documents shared by other AWS accounts. + +## 3.87.20 - 2019-02-27 + +* `Aws\WAF` - Documentation updates for waf +* `Aws\WAFRegional` - Documentation updates for waf-regional + +## 3.87.19 - 2019-02-26 + +* `Aws\ApplicationDiscoveryService` - Documentation updates for discovery +* `Aws\CostandUsageReportService` - Adding support for Athena and new report preferences to the Cost and Usage Report API. +* `Aws\MediaConvert` - AWS Elemental MediaConvert SDK has added several features including support for: auto-rotation or user-specified rotation of 0, 90, 180, or 270 degrees; multiple output groups with DRM; ESAM XML documents to specify ad insertion points; Offline Apple HLS FairPlay content protection. +* `Aws\OpsWorksCM` - Documentation updates for opsworkscm +* `Aws\Organizations` - Documentation updates for AWS Organizations +* `Aws\Pinpoint` - This release adds support for the Amazon Resource Groups Tagging API to Amazon Pinpoint, which means that you can now add and manage tags for Amazon Pinpoint projects (apps), campaigns, and segments. A tag is a label that you optionally define and associate with Amazon Pinpoint resource. Tags can help you categorize and manage these types of resources in different ways, such as by purpose, owner, environment, or other criteria. For example, you can use tags to apply policies or automation, or to identify resources that are subject to certain compliance requirements. A project, campaign, or segment can have as many as 50 tags. For more information about using and managing tags in Amazon Pinpoint, see the Amazon Pinpoint Developer Guide at https://docs.aws.amazon.com/pinpoint/latest/developerguide/welcome.html. For more information about the Amazon Resource Group Tagging API, see the Amazon Resource Group Tagging API Reference at https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/Welcome.html. +* `Aws\ResourceGroups` - Documentation updates for Resource Groups API; updating description of Tag API. + +## 3.87.18 - 2019-02-25 + +* `Aws\Api` - Fixes validation on assoc arrays having a 0 index. +* `Aws\AutoScaling` - Added support for passing an empty SpotMaxPrice parameter to remove a value previously set when updating an Amazon EC2 Auto Scaling group. +* `Aws\CostExplorer` - Added metrics to normalized units. +* `Aws\ElasticLoadBalancingv2` - This release enables you to use the existing client secret when modifying a rule with an action of type authenticate-oidc. +* `Aws\MediaStore` - This release adds support for access logging, which provides detailed records for the requests that are made to objects in a container. + +## 3.87.17 - 2019-02-22 + +* `Aws\Athena` - This release adds tagging support for Workgroups to Amazon Athena. Use these APIs to add, remove, or list tags on Workgroups, and leverage the tags for various authorization and billing scenarios. +* `Aws\Cloud9` - Adding EnvironmentLifecycle to the Environment data type. +* `Aws\Glue` - AWS Glue adds support for assigning AWS resource tags to jobs, triggers, development endpoints, and crawlers. Each tag consists of a key and an optional value, both of which you define. With this capacity, customers can use tags in AWS Glue to easily organize and identify your resources, create cost allocation reports, and control access to resources. +* `Aws\SFN` - This release adds support for tag-on-create. You can now add tags when you create AWS Step Functions activity and state machine resources. For more information about tagging, see AWS Tagging Strategies. + +## 3.87.16 - 2019-02-21 + +* `Aws\CloudWatch` - Documentation updates for monitoring +* `Aws\CodeBuild` - Add support for CodeBuild local caching feature +* `Aws\KinesisVideo` - Documentation updates for Kinesis Video Streams +* `Aws\KinesisVideoArchivedMedia` - In this release, HLS playback of KVS streams can be configured to output MPEG TS fragments using the ContainerFormat parameter. HLS playback of KVS streams can also be configured to include the EXT-X-PROGRAM-DATE-TIME field using the DisplayFragmentTimestamp parameter. +* `Aws\KinesisVideoMedia` - Documentation updates for Kinesis Video Streams +* `Aws\Organizations` - Documentation updates for organizations +* `Aws\Transfer` - Bug fix: increased the max length allowed for request parameter NextToken when paginating List operations +* `Aws\WorkDocs` - Documentation updates for workdocs + +## 3.87.15 - 2019-02-20 + +* `Aws\CodeCommit` - This release adds an API for adding / updating / deleting / copying / moving / setting file modes for one or more files directly to an AWS CodeCommit repository without requiring a Git client. +* `Aws\DirectConnect` - Documentation updates for AWS Direct Connect +* `Aws\MediaLive` - This release adds support for VPC inputs, allowing you to push content from your Amazon VPC directly to MediaLive. + +## 3.87.14 - 2019-02-19 + +* `Aws\DirectoryService` - This release adds support for tags during directory creation (CreateDirectory, CreateMicrosoftAd, ConnectDirectory). +* `Aws\EFS` - Amazon EFS now supports adding tags to file system resources as part of the CreateFileSystem API . Using this capability, customers can now more easily enforce tag-based authorization for EFS file system resources. +* `Aws\IoT` - AWS IoT - AWS IoT Device Defender adds support for configuring behaviors in a security profile with statistical thresholds. Device Defender also adds support for configuring multiple data-point evaluations before a violation is either created or cleared. +* `Aws\SSM` - AWS Systems Manager now supports adding tags when creating Activations, Patch Baselines, Documents, Parameters, and Maintenance Windows + +## 3.87.13 - 2019-02-18 + +* `Aws\Athena` - This release adds support for Workgroups to Amazon Athena. Use Workgroups to isolate users, teams, applications or workloads in the same account, control costs by setting up query limits and creating Amazon SNS alarms, and publish query-related metrics to Amazon CloudWatch. +* `Aws\SecretsManager` - This release increases the maximum allowed size of SecretString or SecretBinary from 4KB to 7KB in the CreateSecret, UpdateSecret, PutSecretValue and GetSecretValue APIs. + +## 3.87.12 - 2019-02-15 + +* `Aws\ApplicationAutoScaling` - Documentation updates for Application Auto Scaling +* `Aws\Chime` - Documentation updates for Amazon Chime +* `Aws\IoT` - In this release, IoT Device Defender introduces support for tagging Scheduled Audit resources. + +## 3.87.11 - 2019-02-14 + +* `Aws\EC2` - This release adds tagging and ARN support for AWS Client VPN Endpoints.You can now run bare metal workloads on EC2 M5 and M5d instances. m5.metal and m5d.metal instances are powered by custom Intel Xeon Scalable Processors with a sustained all core frequency of up to 3.1 GHz. m5.metal and m5d.metal offer 96 vCPUs and 384 GiB of memory. With m5d.metal, you also have access to 3.6 TB of NVMe SSD-backed instance storage. m5.metal and m5d.metal instances deliver 25 Gbps of aggregate network bandwidth using Elastic Network Adapter (ENA)-based Enhanced Networking, as well as 14 Gbps of bandwidth to EBS.You can now run bare metal workloads on EC2 z1d instances. z1d.metal instances are powered by custom Intel Xeon Scalable Processors with a sustained all core frequency of up to 4.0 GHz. z1d.metal offers 48 vCPUs, 384 GiB of memory, and 1.8 TB of NVMe SSD-backed instance storage. z1d.metal instances deliver 25 Gbps of aggregate network bandwidth using Elastic Network Adapter (ENA)-based Enhanced Networking, as well as 14 Gbps of bandwidth to EBS. +* `Aws\KinesisVideo` - Adds support for Tag-On-Create for Kinesis Video Streams. A list of tags associated with the stream can be created at the same time as the stream creation. + +## 3.87.10 - 2019-02-13 + +* `Aws\EFS` - Customers can now use the EFS Infrequent Access (IA) storage class to more cost-effectively store larger amounts of data in their file systems. EFS IA is cost-optimized storage for files that are not accessed every day. You can create a new file system and enable Lifecycle Management to automatically move files that have not been accessed for 30 days from the Standard storage class to the IA storage class. +* `Aws\MediaTailor` - This release adds support for tagging AWS Elemental MediaTailor resources. +* `Aws\Rekognition` - GetContentModeration now returns the version of the moderation detection model used to detect unsafe content. + +## 3.87.9 - 2019-02-12 + +* `Aws\Lambda` - Documentation updates for AWS Lambda + +## 3.87.8 - 2019-02-11 + +* `Aws\AppStream` - This update enables customers to find the start time, max expiration time, and connection status associated with AppStream streaming session. +* `Aws\CodeBuild` - Add customized webhook filter support +* `Aws\MediaPackage` - Adds optional configuration for DASH to compact the manifest by combining duplicate SegmentTemplate tags. Adds optional configuration for DASH SegmentTemplate format to refer to segments by "Number" (default) or by "Time". + +## 3.87.7 - 2019-02-08 + +* `Aws\ApplicationDiscoveryService` - Documentation updates for the AWS Application Discovery Service. +* `Aws\DLM` - This release is to correct the timestamp format to ISO8601 for the DateCreated and DateModified files in the GetLifecyclePolicy response object. +* `Aws\ECS` - Amazon ECS introduces the PutAccountSettingDefault API, an API that allows a user to set the default ARN/ID format opt-in status for all the roles and users in the account. Previously, setting the account's default opt-in status required the use of the root user with the PutAccountSetting API. + +## 3.87.6 - 2019-02-07 + +* `Aws\ElasticsearchService` - Feature: Support for three Availability Zone deployments +* `Aws\GameLift` - This release delivers a new API action for deleting unused matchmaking rule sets. More details are available at https://aws.amazon.com/releasenotes/?tag=releasenotes%23keywords%23amazon-gamelift. +* `Aws\MediaLive` - This release adds tagging of channels, inputs, and input security groups. +* `Aws\RoboMaker` - Added support for tagging and tag-based access control for AWS RoboMaker resources. Also, DescribeSimulationJob now includes a new failureReason field to help debug simulation job failures + +## 3.87.5 - 2019-02-06 + +* `Aws\EC2` - Add Linux with SQL Server Standard, Linux with SQL Server Web, and Linux with SQL Server Enterprise to the list of allowed instance platforms for On-Demand Capacity Reservations. +* `Aws\FSx` - New optional ExportPath parameter added to the CreateFileSystemLustreConfiguration object for user-defined export paths. Used with the CreateFileSystem action when creating an Amazon FSx for Lustre file system. + +## 3.87.4 - 2019-02-05 + +* `Aws\Aws` - Remove requirement of the always available SPL extension in composer.json. +* `Aws\Credentials` - This update adds the default SDK user agent to requests made to the instance metadata service. +* `Aws\EC2` - ec2.DescribeVpcPeeringConnections pagination support +* `Aws\ServiceCatalog` - Service Catalog Documentation Update for ProvisionedProductDetail +* `Aws\Shield` - The DescribeProtection request now accepts resource ARN as valid parameter. + +## 3.87.3 - 2019-02-04 + +* `Aws\ApplicationAutoScaling` - Documentation updates for application-autoscaling +* `Aws\CodeCommit` - This release supports a more graceful handling of the error case when a repository is not associated with a pull request ID in a merge request in AWS CodeCommit. +* `Aws\ECS` - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for GPU workloads by enabling you to create clusters with GPU-enabled container instances. +* `Aws\WorkSpaces` - This release sets ClientProperties as a required parameter. + +## 3.87.2 - 2019-01-25 + +* `Aws\CodeCommit` - The PutFile API will now throw new exception FilePathConflictsWithSubmodulePathException when a submodule exists at the input file path; PutFile API will also throw FolderContentSizeLimitExceededException when the total size of any folder on the path exceeds the limit as a result of the operation. +* `Aws\DeviceFarm` - Introduces a new rule in Device Pools - "Availability". Customers can now ensure they pick devices that are available (i.e., not being used by other customers). +* `Aws\MediaConnect` - This release adds support for tagging, untagging, and listing tags for existing AWS Elemental MediaConnect resources. +* `Aws\MediaLive` - This release adds support for Frame Capture output groups and for I-frame only manifests (playlists) in HLS output groups. + +## 3.87.1 - 2019-01-24 + +* `Aws\CloudWatchLogs` - Documentation updates for CloudWatch Logs +* `Aws\CodeBuild` - This release adds support for cross-account ECR images and private registry authentication. +* `Aws\ECR` - Amazon ECR updated the default endpoint URL to support AWS Private Link. +* `Aws\ElasticLoadBalancingv2` - Elastic Load Balancing now supports TLS termination on Network Load Balancers. With this launch, you can offload the decryption/encryption of TLS traffic from your application servers to the Network Load Balancer. This enables you to run your backend servers optimally and keep your workloads secure. Additionally, Network Load Balancers preserve the source IP of the clients to the back-end applications, while terminating TLS on the load balancer. When TLS is enabled on an NLB, Access Logs can be enabled for the load balancer, and log entries will be emitted for all TLS connections. +* `Aws\PinpointSMSVoice` - Added the ListConfigurationSets operation, which returns a list of the configuration sets that are associated with your account. +* `Aws\RDS` - The Amazon RDS API allows you to add or remove Identity and Access Management (IAM) role associated with a specific feature name with an RDS database instance. This helps with capabilities such as invoking Lambda functions from within a trigger in the database, load data from Amazon S3 and so on + +## 3.87.0 - 2019-01-23 + +* `Aws\ACMPCA` - Added TagOnCreate parameter to the CreateCertificateAuthority operation, updated the Tag regex pattern to align with AWS tagging APIs, and added RevokeCertificate limit. +* `Aws\ApiGatewayManagementApi` - Fixes a typo in the 'max' constraint. +* `Aws\WorkLink` - This is the initial SDK release for Amazon WorkLink. Amazon WorkLink is a fully managed, cloud-based service that enables secure, one-click access to internal websites and web apps from mobile phones. With Amazon WorkLink, employees can access internal websites as seamlessly as they access any other website. IT administrators can manage users, devices, and domains by enforcing their own security and access policies via the AWS Console or the AWS SDK. + +## 3.86.3 - 2019-01-21 + +* `Aws\AppStream` - This API update includes support for tagging Stack, Fleet, and ImageBuilder resources at creation time. +* `Aws\ApplicationDiscoveryService` - The Application Discovery Service's import APIs allow you to import information about your on-premises servers and applications into ADS so that you can track the status of your migrations through the Migration Hub console. +* `Aws\DatabaseMigrationService` - Update for DMS TestConnectionSucceeds waiter +* `Aws\FMS` - This release provides support for cleaning up web ACLs during Firewall Management policy deletion. You can now enable the DeleteAllPolicyResources flag and it will delete all system-generated web ACLs. +* `Aws\SSM` - AWS Systems Manager State Manager now supports configuration management of all AWS resources through integration with Automation. + +## 3.86.2 - 2019-01-18 + +* `Aws\EC2` - Adjust EC2's available instance types. +* `Aws\Glue` - AllocatedCapacity field is being deprecated and replaced with MaxCapacity field + +## 3.86.1 - 2019-01-17 + +* `Aws\Lambda` - Documentation updates for AWS Lambda +* `Aws\Lightsail` - This release adds functionality to the CreateDiskSnapshot API that allows users to snapshot instance root volumes. It also adds various documentation updates. +* `Aws\Pinpoint` - This release updates the PutEvents operation. AppPackageName, AppTitle, AppVersionCode, SdkName fields will now be accepted as a part of the event when submitting events. +* `Aws\Rekognition` - GetLabelDetection now returns bounding box information for common objects and a hierarchical taxonomy of detected labels. The version of the model used for video label detection is also returned. DetectModerationLabels now returns the version of the model used for detecting unsafe content. + +## 3.86.0 - 2019-01-16 + +* `Aws\Backup` - AWS Backup is a unified backup service designed to protect AWS services and their associated data. AWS Backup simplifies the creation, migration, restoration, and deletion of backups, while also providing reporting and auditing +* `Aws\CostExplorer` - Removed Tags from the list of GroupBy dimensions available for GetReservationCoverage. +* `Aws\DynamoDB` - Amazon DynamoDB now integrates with AWS Backup, a centralized backup service that makes it easy for customers to configure and audit the AWS resources they want to backup, automate backup scheduling, set retention policies, and monitor all recent backup and restore activity. AWS Backup provides a fully managed, policy-based backup solution, simplifying your backup management, and helping you meet your business and regulatory backup compliance requirements. For more information, see the Amazon DynamoDB Developer Guide. + +## 3.85.2 - 2019-01-14 + +* `Aws\MediaConvert` - IMF decode from a Composition Playlist for IMF specializations App #2 and App #2e; up to 99 input clippings; caption channel selection for MXF; and updated rate control for CBR jobs. Added support for acceleration in preview +* `Aws\StorageGateway` - JoinDomain API supports two more parameters: organizational unit(OU) and domain controllers. Two new APIs are introduced: DetachVolume and AttachVolume. + +## 3.85.1 - 2019-01-11 + +* `Aws\EMR` - Documentation updates for Amazon EMR +* `Aws\RDSDataService` - Documentation updates for RDS Data API. + +## 3.85.0 - 2019-01-10 + +* `Aws\CodeDeploy` - Documentation updates for codedeploy +* `Aws\EC2` - EC2 Spot: a) CreateFleet support for Single AvailabilityZone requests and b) support for paginated DescribeSpotInstanceRequests. +* `Aws\EndpointDiscovery` - This feature adds SDK support for discovering the correct endpoint for a customer by making requests against a service-provided API, for operations specified by the service. +* `Aws\IoT` - This release adds tagging support for rules of AWS IoT Rules Engine. Tags enable you to categorize your rules in different ways, for example, by purpose, owner, or environment. For more information about tagging, see AWS Tagging Strategies (https://aws.amazon.com/answers/account-management/aws-tagging-strategies/). For technical documentation, look for the tagging operations in the AWS IoT Core API reference or User Guide (https://docs.aws.amazon.com/iot/latest/developerguide/tagging-iot.html). +* `Aws\SageMaker` - SageMaker Training Jobs now support Inter-Container traffic encryption. + +## 3.84.0 - 2019-01-09 + +* `Aws\Credentials` - Fixes a failure loop if InstanceProfileProvider fails. +* `Aws\DocDB` - Amazon DocumentDB (with MongoDB compatibility) is a fast, reliable, and fully-managed database service. Amazon DocumentDB makes it easy for developers to set up, run, and scale MongoDB-compatible databases in the cloud. +* `Aws\Redshift` - DescribeSnapshotSchedules returns a list of snapshot schedules. With this release, this API will have a list of clusters and number of clusters associated with the schedule. + +## 3.83.0 - 2019-01-07 + +* `Aws\AppMesh` - AWS App Mesh now supports active health checks. You can specify TCP or HTTP health checks with custom thresholds and intervals on your VirtualNode definitions. See the AWS App Mesh HealthCheckPolicy documentation for more information. +* `Aws\ClientSideMonitoring` - Adds User-Agent and final API call attempt entries to API call event. + +## 3.82.6 - 2019-01-04 + +* `Aws\DeviceFarm` - "This release provides support for running Appium Node.js and Appium Ruby tests on AWS Device Farm. +* `Aws\ECS` - Documentation updates for Amazon ECS tagging feature. + +## 3.82.5 - 2019-01-03 + +* `Aws\IoTAnalytics` - ListDatasetContents now has a filter to limit results by date scheduled. + +## 3.82.4 - 2019-01-03 + +* `Aws\OpsWorksCM` - Documentation updates for opsworkscm + +## 3.82.3 - 2018-12-21 + +* `Aws\ACMPCA` - This release marks the introduction of waiters in ACM PCA, which allow you to control the progression of your code based on the presence or state of certain resources. Waiters can be implemented in the DescribeCertificateAuthorityAuditReport, GetCertificate, and GetCertificateAuthorityCsr API operations. +* `Aws\DynamoDB` - Added provisionedThroughPut exception on the request level for transaction APIs. +* `Aws\PinpointSMSVoice` - Configuration sets can now use Amazon SNS as an event destination. +* `Aws\SFN` - This release adds support for cost allocation tagging. You can now create, delete, and list tags for AWS Step Functions activity and state machine resources. For more information about tagging, see AWS Tagging Strategies. + +## 3.82.2 - 2018-12-20 + +* `Aws\CognitoIdentityProvider` - Amazon Cognito now has API support for updating the Secure Sockets Layer (SSL) certificate for the custom domain for your user pool. +* `Aws\Comprehend` - This SDK release adds functionality to stop training Custom Document Classifier or Custom Entity Recognizer in Amazon Comprehend. +* `Aws\Firehose` - Support for specifying customized s3 keys and supplying a separate prefix for failed-records +* `Aws\MediaLive` - This release provides support for ID3 tags and video quality setting for subgop_length. +* `Aws\TranscribeService` - With this release, Amazon Transcribe now supports transcriptions from audio sources in Italian (it-IT). + +## 3.82.1 - 2018-12-19 + +* `Aws\EC2` - This release adds support for specifying partition as a strategy for EC2 Placement Groups. This new strategy allows one to launch instances into partitions that do not share certain underlying hardware between partitions, to assist with building and deploying highly available replicated applications. +* `Aws\SageMaker` - Batch Transform Jobs now supports TFRecord as a Split Type. ListCompilationJobs API action now supports SortOrder and SortBy inputs. +* `Aws\WAF` - This release adds rule-level control for rule group. If a rule group contains a rule that blocks legitimate traffic, previously you had to override the entire rule group to COUNT in order to allow the traffic. You can now use the UpdateWebACL API to exclude specific rules within a rule group. Excluding rules changes the action for the individual rules to COUNT. Excluded rules will be recorded in the new "excludedRules" attribute of the WAF logs. +* `Aws\WAFRegional` - This release adds rule-level control for rule group. If a rule group contains a rule that blocks legitimate traffic, previously you had to override the entire rule group to COUNT in order to allow the traffic. You can now use the UpdateWebACL API to exclude specific rules within a rule group. Excluding rules changes the action for the individual rules to COUNT. Excluded rules will be recorded in the new "excludedRules" attribute of the WAF logs. + +## 3.82.0 - 2018-12-18 + +* `Aws\ApiGatewayManagementApi` - This is the initial SDK release for the Amazon API Gateway Management API, which allows you to directly manage runtime aspects of your APIs. This release makes it easy to send data directly to clients connected to your WebSocket-based APIs. +* `Aws\ApiGatewayV2` - This is the initial SDK release for the Amazon API Gateway v2 APIs. This SDK will allow you to manage and configure APIs in Amazon API Gateway; this first release provides the capabilities that allow you to programmatically setup and manage WebSocket APIs end to end. +* `Aws\EC2` - Client VPN, is a client-based VPN service. With Client VPN, you can securely access resources in AWS as well as access resources in on-premises from any location using OpenVPN based devices. With Client VPN, you can set network based firewall rules that can restrict access to networks based on Active Directory groups. +* `Aws\ElasticBeanstalk` - This release adds a new resource that Elastic Beanstalk will soon support, EC2 launch template, to environment resource descriptions. +* `Aws\GlobalAccelerator` - Documentation updates for Ubiquity + +## 3.81.7 - 2018-12-17 + +* `Aws\ECR` - This release adds support for ECR repository tagging. +* `Aws\QuickSight` - Amazon QuickSight's RegisterUser API now generates a user invitation URL when registering a user with the QuickSight identity type. This URL can then be used by the registered QuickSight user to complete the user registration process. This release also corrects some HTTP return status codes. + +## 3.81.6 - 2018-12-14 + +* `Aws\AlexaForBusiness` - Released new APIs for managing private skill access to Enrolled Users. These API's are the equivalent of the A4B console for Private Skills checkbox "Available for Users". +* `Aws\CloudFormation` - Documentation updates for cloudformation +* `Aws\Redshift` - Documentation updates for Amazon Redshift + +## 3.81.5 - 2018-12-13 + +* `Aws\Organizations` - Documentation updates for AWS Organizations +* `Aws\PinpointEmail` - This release adds new operations for the Amazon Pinpoint Deliverability Dashboard. You can use the Deliverability Dashboard to view response and inbox placement metrics for the domains that you use to send email. You can also perform tests on individual email messages to determine how often your messages are delivered to the inbox on several major email providers. + +## 3.81.4 - 2018-12-12 + +* `Aws\EKS` - Added support for updating kubernetes version of Amazon EKS clusters. +* `Aws\Glue` - API Update for Glue: this update enables encryption of password inside connection objects stored in AWS Glue Data Catalog using DataCatalogEncryptionSettings. In addition, a new "HidePassword" flag is added to GetConnection and GetConnections to return connections without passwords. +* `Aws\Route53` - You can now specify a new region, eu-north-1 (in Stockholm, Sweden), as a region for latency-based or geoproximity routing. +* `Aws\SageMaker` - Amazon SageMaker Automatic Model Tuning now supports early stopping of training jobs. With early stopping, training jobs that are unlikely to generate good models will be automatically stopped during a Hyperparameter Tuning Job. + +## 3.81.3 - 2018-12-11 + +* `Aws\Connect` - This update adds the GetContactAttributes operation to retrieve the attributes associated with a contact. +* `Aws\ECS` - Documentation updates for Amazon ECS. +* `Aws\MediaStore` - This release adds Delete Object Lifecycling to AWS MediaStore Containers. + +## 3.81.2 - 2018-12-07 + +* `Aws\AlexaForBusiness` - Alexa for Business now allows IT administrators to create ad-hoc or scheduled usage reports, which help customers understand how Alexa is used in their workplace. To learn how to create usage reports, see https://docs.aws.amazon.com/a4b/latest/ag/creating-reports.html +* `Aws\EC2` - You can now launch the larger-sized P3dn.24xlarge instance that features NVIDIA Tesla V100s with double the GPU memory, 100Gbps networking and local NVMe storage. +* `Aws\IAM` - We are making it easier for you to manage your AWS Identity and Access Management (IAM) policy permissions by enabling you to retrieve the last timestamp when an IAM entity (e.g., user, role, or a group) accessed an AWS service. This feature also allows you to audit service access for your entities. +* `Aws\ServiceCatalog` - Documentation updates for servicecatalog. + +## 3.81.1 - 2018-12-06 + +* `Aws\CodeBuild` - Support personal access tokens for GitHub source and app passwords for Bitbucket source +* `Aws\ElasticLoadBalancingv2` - This release allows Application Load Balancers to route traffic to Lambda functions, in addition to instances and IP addresses. +* `Aws\MediaLive` - This release enables the AWS Elemental MediaConnect input type in AWS Elemental MediaLive. This can then be used to automatically create and manage AWS Elemental MediaConnect Flow Outputs when you create a channel using those inputs. +* `Aws\RDS` - Documentation updates for Amazon RDS + +## 3.81.0 - 2018-12-05 + +* `Aws\CostExplorer` - Add normalized unit support for both GetReservationUtilization and GetReservationCoverage API. +* `Aws\Functions` - This update refactors an unnecessary error suppression operator used in a global function. +* `Aws\MQ` - This release adds support for cost allocation tagging. You can now create, delete, and list tags for AmazonMQ resources. For more information about tagging, see AWS Tagging Strategies. +* `Aws\MediaTailor` - AWS Elemental MediaTailor SDK now includes a new parameter to control the Location tag of DASH manifests. + +## 3.80.3 - 2018-12-04 + +* `Aws\Health` - AWS Health API DescribeAffectedEntities operation now includes a field that returns the URL of the affected entity. +* `Aws\S3` - S3 Inventory reports can now be generated in Parquet format by setting the Destination Format to be 'Parquet'. +* `Aws\Test` - Use dedicated PHPUnit assertions for better error messages. +* `Aws\Waiter` - Simplify foreach with in_array function. + +## 3.80.2 - 2018-12-03 + +* `Aws\DeviceFarm` - Customers can now schedule runs without a need to create a Device Pool. They also get realtime information on public device availability. +* `Aws\MediaConvert` - Documentation updates for mediaconvert +* `Aws\ServiceCatalog` - Documentation updates for servicecatalog +* `Aws\StorageGateway` - API list-local-disks returns a list of the gateway's local disks. This release adds a field DiskAttributeList to these disks. + +## 3.80.1 - 2018-11-30 + +* `Aws\S3` - Fixed issue with Content-MD5 for S3 PutObjectLegalHold, PutObjectRetention and PutObjectLockConfiguration. +* `Aws\S3` - Add MD5 header to PutObjectLegalHold, PutObjectRetention, and PutObjectLockConfiguration. + +## 3.80.0 - 2018-11-29 + +* `Aws\CloudWatchEvents` - Support for Managed Rules (rules that are created and maintained by the AWS services in your account) is added. +* `Aws\ElasticLoadBalancingv2` - This release allows Application Load Balancers to route traffic to Lambda functions, in addition to instances and IP addresses. +* `Aws\Kafka` - This is the initial SDK release for Amazon Managed Streaming for Kafka (Amazon MSK). Amazon MSK is a service that you can use to easily build, monitor, and manage Apache Kafka clusters in the cloud. +* `Aws\Lambda` - AWS Lambda now supports Lambda Layers and Ruby as a runtime. Lambda Layers are a new type of artifact that contains arbitrary code and data, and may be referenced by zero, one, or more functions at the same time. You can also now develop your AWS Lambda function code using the Ruby programming language. +* `Aws\S3` - Fixed issue with ObjectLockRetainUntilDate in S3 PutObject +* `Aws\SFN` - AWS Step Functions is now integrated with eight additional AWS services: Amazon ECS, AWS Fargate, Amazon DynamoDB, Amazon SNS, Amazon SQS, AWS Batch, AWS Glue, and Amazon SageMaker. To learn more, please see https://docs.aws.amazon.com/step-functions/index.html +* `Aws\ServerlessApplicationRepository` - AWS Serverless Application Repository now supports nested applications. You can nest individual applications as components of a larger application to make it easy to assemble and deploy new serverless architectures. +* `Aws\XRay` - GetTraceSummaries - Now provides additional information regarding your application traces such as Availability Zone, Instance ID, Resource ARN details, Revision, Entry Point, Root Cause Exceptions and Root Causes for Fault, Error and Response Time. + +## 3.79.0 - 2018-11-29 + +* `Aws\AppMesh` - AWS App Mesh is a service mesh that makes it easy to monitor and control communications between microservices of an application. AWS App Mesh APIs are available for preview in eu-west-1, us-east-1, us-east-2, and us-west-2 regions. +* `Aws\EC2` - Adds the following updates: 1. You can now hibernate and resume Amazon-EBS backed instances using the StopInstances and StartInstances APIs. For more information about using this feature and supported instance types and operating systems, visit the user guide. 2. Amazon Elastic Inference accelerators are resources that you can attach to current generation EC2 instances to accelerate your deep learning inference workloads. With Amazon Elastic Inference, you can configure the right amount of inference acceleration to your deep learning application without being constrained by fixed hardware configurations and limited GPU selection. 3. AWS License Manager makes it easier to manage licenses in AWS and on premises when customers run applications using existing licenses from a variety of software vendors including Microsoft, SAP, Oracle, and IBM. +* `Aws\LicenseManager` - AWS License Manager makes it easier to manage licenses in AWS and on premises when customers run applications using existing licenses from a variety of software vendors including Microsoft, SAP, Oracle, and IBM. AWS License Manager automatically tracks and controls license usage once administrators have created and enforced rules that emulate the terms of their licensing agreements. The capabilities of AWS License Manager are available through SDK and Tools, besides the management console and CLI. +* `Aws\Lightsail` - This update adds the following features: 1. Copy instance and disk snapshots within the same AWS Region or from one region to another in Amazon Lightsail. 2. Export Lightsail instance and disk snapshots to Amazon Elastic Compute Cloud (Amazon EC2). 3. Create an Amazon EC2 instance from an exported Lightsail instance snapshot using AWS CloudFormation stacks. 4. Apply tags to filter your Lightsail resources, or organize your costs, or control access. +* `Aws\SageMaker` - Amazon SageMaker now has Algorithm and Model Package entities that can be used to create Training Jobs, Hyperparameter Tuning Jobs and hosted Models. Subscribed Marketplace products can be used on SageMaker to create Training Jobs, Hyperparameter Tuning Jobs and Models. Notebook Instances and Endpoints can leverage Elastic Inference accelerator types for on-demand GPU computing. Model optimizations can be performed with Compilation Jobs. Labeling Jobs can be created and supported by a Workforce. Models can now contain up to 5 containers allowing for inference pipelines within Endpoints. Code Repositories (such as Git) can be linked with SageMaker and loaded into Notebook Instances. Network isolation is now possible on Models, Training Jobs, and Hyperparameter Tuning Jobs, which restricts inbound/outbound network calls for the container. However, containers can talk to their peers in distributed training mode within the same security group. A Public Beta Search API was added that currently supports Training Jobs. +* `Aws\ServiceDiscovery` - AWS Cloud Map lets you define friendly names for your cloud resources so that your applications can quickly and dynamically discover them. When a resource becomes available (for example, an Amazon EC2 instance running a web server), you can register a Cloud Map service instance. Then your application can discover service instances by submitting DNS queries or API calls. + +## 3.78.0 - 2018-11-28 + +* `Aws\DynamoDB` - Amazon DynamoDB now supports the following features: DynamoDB on-demand and transactions. DynamoDB on-demand is a flexible new billing option for DynamoDB capable of serving thousands of requests per second without capacity planning. DynamoDB on-demand offers simple pay-per-request pricing for read and write requests so that you only pay for what you use, making it easy to balance costs and performance. Transactions simplify the developer experience of making coordinated, all-or-nothing changes to multiple items both within and across tables. The new transactional APIs provide atomicity, consistency, isolation, and durability (ACID) in DynamoDB, helping developers support sophisticated workflows and business logic that requires adding, updating, or deleting multiple items using native, server-side transactions. For more information, see the Amazon DynamoDB Developer Guide. +* `Aws\FSx` - Amazon FSx provides fully-managed third-party file systems optimized for a variety of enterprise and compute-intensive workloads. +* `Aws\RDS` - Amazon Aurora Global Database. This release introduces support for Global Database, a feature that allows a single Amazon Aurora database to span multiple AWS regions. Customers can use the feature to replicate data with no impact on database performance, enable fast local reads with low latency in each region, and improve disaster recovery from region-wide outages. You can create, modify and describe an Aurora Global Database, as well as add or remove regions from your Global Database. +* `Aws\RetryMiddleware` - Adds support for custom retryable status and error codes. +* `Aws\SecurityHub` - AWS Security Hub is a security and compliance center that correlates AWS security findings and performs automated compliance checks + +## 3.77.0 - 2018-11-28 + +* `Aws\CloudWatchLogs` - Six new APIs added to support CloudWatch Logs Insights. The APIs are StartQuery, StopQuery, GetQueryResults, GetLogRecord, GetLogGroupFields, and DescribeQueries. +* `Aws\CodeDeploy` - Support for Amazon ECS service deployment - AWS CodeDeploy now supports the deployment of Amazon ECS services. An Amazon ECS deployment uses an Elastic Load Balancer, two Amazon ECS target groups, and a listener to reroute production traffic from your Amazon ECS service's original task set to a new replacement task set. The original task set is terminated when the deployment is complete. Success of a deployment can be validated using Lambda functions that are referenced by the deployment. This provides the opportunity to rollback if necessary. You can use the new ECSService, ECSTarget, and ECSTaskSet data types in the updated SDK to create or retrieve an Amazon ECS deployment. +* `Aws\ComprehendMedical` - The first release of Comprehend Medical includes two APIs, detectPHI and detectEntities. DetectPHI extracts PHI from your clinical text, and detectEntities extracts entities such as medication, medical conditions, or anatomy. DetectEntities also extracts attributes (e.g. dosage for medication) and identifies contextual traits (e.g. negation) for each entity. +* `Aws\EC2` - With VPC sharing, you can now allow multiple accounts in the same AWS Organization to launch their application resources, like EC2 instances, RDS databases, and Redshift clusters into shared, centrally managed VPCs. +* `Aws\ECS` - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for blue/green deployment feature. Customers can now update their ECS services in a blue/green deployment pattern via using AWS CodeDeploy. +* `Aws\KinesisAnalytics` - Improvements to error messages, validations, and more to the Kinesis Data Analytics APIs. +* `Aws\KinesisAnalyticsV2` - Amazon Kinesis Data Analytics now supports Java-based stream processing applications, in addition to the previously supported SQL. Now, you can use your own Java code in Amazon Kinesis Data Analytics to build and run stream processing applications. This new capability also comes with an update to the previous Amazon Kinesis Data Analytics APIs to enable support for different runtime environments and more. +* `Aws\MarketplaceMetering` - RegisterUsage operation added to AWS Marketplace Metering Service, allowing sellers to meter and entitle Docker container software use with AWS Marketplace. For details on integrating Docker containers with RegisterUsage see: https://docs.aws.amazon.com/marketplace/latest/userguide/entitlement-and-metering-for-paid-products.html +* `Aws\MediaConnect` - This is the initial release for AWS Elemental MediaConnect, an ingest and transport service for live video. This new AWS service allows broadcasters and content owners to send high-value live content into the cloud, securely transmit it to partners for distribution, and replicate it to multiple destinations around the globe. +* `Aws\Translate` - This release includes the new custom terminology feature. Using custom terminology with your translation requests enables you to make sure that your brand names, character names, model names, and other unique content is translated exactly the way you need it, regardless of its context and the Amazon Translate algorithm's decision. See the documentation for more information. + +## 3.76.0 - 2018-11-27 + +* `Aws\EC2` - Adds the following updates: 1. Transit Gateway helps easily scale connectivity across thousands of Amazon VPCs, AWS accounts, and on-premises networks. 2. Amazon EC2 A1 instance is a new Arm architecture based general purpose instance. 3. You can now launch the new Amazon EC2 compute optimized C5n instances that can utilize up to 100 Gbps of network bandwidth. +* `Aws\GlobalAccelerator` - AWS Global Accelerator is a network layer service that helps you improve the availability and performance of the applications that you offer to your global customers. Global Accelerator uses the AWS global network to direct internet traffic from your users to your applications running in AWS Regions. Global Accelerator creates a fixed entry point for your applications through static anycast IP addresses, and routes user traffic to the optimal endpoint based on performance, application health and routing policies that you can configure. Global Accelerator supports the following features at launch: static anycast IP addresses, support for TCP and UDP, support for Network Load Balancers, Application Load Balancers and Elastic-IP address endpoints, continuous health checking, instant regional failover, fault isolating Network Zones, granular traffic controls, and client affinity. +* `Aws\Greengrass` - Support Greengrass Connectors and allow Lambda functions to run without Greengrass containers. +* `Aws\IoT` - As part of this release, we are extending capability of AWS IoT Rules Engine to support IoT Events rule action. The IoT Events rule action lets you send messages from IoT sensors and applications to IoT Events for pattern recognition and event detection. +* `Aws\IoTAnalytics` - Added an optional list of dataset content delivery configuration for CreateDataset and UpdateDataset. DescribeDataset will now include the list of delivery configuration, and will be an empty array if none exist. +* `Aws\KMS` - AWS Key Management Service (KMS) now enables customers to create and manage dedicated, single-tenant key stores in addition to the default KMS key store. These are known as custom key stores and are deployed using AWS CloudHSM clusters. Keys that are created in a KMS custom key store can be used like any other customer master key in KMS. +* `Aws\S3` - Four new Amazon S3 Glacier features help you reduce your storage costs by making it even easier to build archival applications using the Amazon S3 Glacier storage class. S3 Object Lock enables customers to apply Write Once Read Many (WORM) protection to objects in S3 in order to prevent object deletion for a customer-defined retention period. S3 Inventory now supports fields for reporting on S3 Object Lock. "ObjectLockRetainUntilDate", "ObjectLockMode", and "ObjectLockLegalHoldStatus" are now available as valid optional fields. +* `Aws\SMS` - In this release, AWS Server Migration Service (SMS) has added multi-server migration support to simplify the application migration process. Customers can migrate all their application-specific servers together as a single unit as opposed to moving individual server one at a time. The new functionality includes - 1. Ability to group on-premises servers into applications and application tiers. 2. Auto-generated CloudFormation Template and Stacks for launching migrated servers into EC2. 3. Ability to run post-launch configuration scripts to configure servers and applications in EC2. In order for SMS to launch servers into your AWS account using CloudFormation Templates, we have also updated the ServerMigrationServiceRole IAM policy to include appropriate permissions. Refer to Server Migration Service documentation for more details. + +## 3.75.0 - 2018-11-26 + +* `Aws\Amplify` - Release of AWS Amplify: Everything you need to develop & deploy cloud-powered mobile and web apps. +* `Aws\DataSync` - AWS DataSync simplifies, automates, and accelerates moving and replicating data between on-premises storage and AWS services over the network. +* `Aws\RoboMaker` - (New Service) AWS RoboMaker is a service that makes it easy to develop, simulate, and deploy intelligent robotics applications at scale. +* `Aws\S3` - The INTELLIGENT_TIERING storage class is designed to optimize storage costs by automatically moving data to the most cost effective storage access tier, without performance impact or operational overhead. This SDK release provides API support for this new storage class. +* `Aws\Snowball` - AWS announces the availability of AWS Snowball Edge Compute Optimized to run compute-intensive applications is disconnected and physically harsh environments. It comes with 52 vCPUs, 208GB memory, 8TB NVMe SSD, and 42TB S3-compatible storage to accelerate local processing and is well suited for use cases such as full motion video processing, deep IoT analytics, and continuous machine learning in bandwidth-constrained locations. It features new instances types called SBE-C instances that are available in eight sizes and multiple instances can be run on the device at the same time. Optionally, developers can choose the compute optimized device to include a GPU and use SBE-G instances for accelerating their application performance. +* `Aws\Transfer` - AWS Transfer for SFTP is a fully managed service that enables transfer of secure data over the internet into and out of Amazon S3. SFTP is deeply embedded in data exchange workflows across different industries such as financial services, healthcare, advertising, and retail, among others. + +## 3.74.1 - 2018-11-21 + +* `Aws\Rekognition` - This release updates the DetectFaces and IndexFaces operation. When the Attributes input parameter is set to ALL, the face location landmarks includes 5 new landmarks: upperJawlineLeft, midJawlineLeft, chinBottom, midJawlineRight, upperJawlineRight. + +## 3.74.0 - 2018-11-20 + +* `Aws\AppSync` - AWS AppSync now supports: 1. Pipeline Resolvers - Enables execution of one or more operations against multiple data sources in order, on a single GraphQL field. This allows orchestration of actions by composing code into a single Resolver, or share code across Resolvers. 2. Aurora Serverless Data Source - Built-in resolver for executing GraphQL operations with the new Aurora Serverless Data API, including connection management functionality. +* `Aws\AutoScalingPlans` - In this release, AWS Auto Scaling adds three features: 1) Predictive scaling for EC2 Auto Scaling, which analyzes your application workload history to forecast future capacity requirements, 2) an option to replace existing scaling policies that are associated with the resources in your scaling plan, and 3) an option that allows you to use predictive scaling with or without your plan's dynamic scaling feature. +* `Aws\CloudFront` - With Origin Failover capability in CloudFront, you can setup two origins for your distributions - primary and secondary, such that your content is served from your secondary origin if CloudFront detects that your primary origin is unavailable. These origins can be any combination of AWS origins or non-AWS custom HTTP origins. For example, you can have two Amazon S3 buckets that serve as your origin that you independently upload your content to. If an object that CloudFront requests from your primary bucket is not present or if connection to your primary bucket times-out, CloudFront will request the object from your secondary bucket. So, you can configure CloudFront to trigger a failover in response to either HTTP 4xx or 5xx status codes. +* `Aws\CloudWatch` - Amazon CloudWatch now supports alarms on metric math expressions. +* `Aws\DeviceFarm` - Disabling device filters +* `Aws\MediaLive` - You can now include the media playlist(s) from both pipelines in the HLS master manifest for seamless failover. +* `Aws\QuickSight` - Amazon QuickSight is a fully managed, serverless, cloud business intelligence system that allows you to extend data and insights to every user in your organization. The first release of APIs for Amazon QuickSight introduces embedding and user/group management capabilities. The get-dashboard-embed-url API allows you to obtain an authenticated dashboard URL that can be embedded in application domains whitelisted for QuickSight dashboard embedding. User APIs allow you to programmatically expand and manage your QuickSight deployments while group APIs allow easier permissions management for resources within QuickSight. +* `Aws\RDSDataService` - The RDS Data API Beta is available for the MySQL-compatible edition of Amazon Aurora Serverless in the US East (N. Virginia) Region. This API enables you to easily access Aurora Serverless with web services-based applications including AWS Lambda and AWS AppSync. +* `Aws\Redshift` - Documentation updates for redshift +* `Aws\SSM` - AWS Systems Manager Distributor helps you securely distribute and install software packages. +* `Aws\XRay` - Groups build upon X-Ray filter expressions to allow for fine tuning trace summaries and service graph results. You can configure groups by using the AWS X-Ray console or by using the CreateGroup API. The addition of groups has extended the available request fields to the GetServiceGraph API. You can now specify a group name or group ARN to retrieve its service graph. + +## 3.73.0 - 2018-11-20 + +* `Aws\Batch` - Adding multinode parallel jobs, placement group support for compute environments. +* `Aws\CloudFormation` - Use the CAPABILITY_AUTO_EXPAND capability to create or update a stack directly from a stack template that contains macros, without first reviewing the resulting changes in a change set first. +* `Aws\CloudTrail` - This release supports creating a trail in CloudTrail that logs events for all AWS accounts in an organization in AWS Organizations. This helps enable you to define a uniform event logging strategy for your organization. An organization trail is applied automatically to each account in the organization and cannot be modified by member accounts. To learn more, please see the AWS CloudTrail User Guide https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html +* `Aws\ConfigService` - In this release, AWS Config adds support for aggregating the configuration data of AWS resources into multi-account and multi-region aggregators. AWS Config adds four APIs to query and retrieve aggregated resource configurations. 1) BatchGetAggregateResourceConfig, returns the current configuration items for resources that are present in your AWS Config aggregator. 2) GetAggregateDiscoveredResourceCounts, returns the resource counts across accounts and regions that are present in your AWS Config aggregator. 3) GetAggregateResourceConfig, returns current configuration item that is aggregated for your specific resource in a specific source account and region. 4) ListAggregateDiscoveredResources, accepts a resource type and returns a list of resource identifiers that are aggregated for a specific resource type across accounts and regions. +* `Aws\DeviceFarm` - Customers can now schedule runs without a need to create a Device Pool. They also get realtime information on public device availability. +* `Aws\EC2` - Adding AvailabilityZoneId to DescribeAvailabilityZones +* `Aws\EndpointParameterMiddleware` - Adds support for services using modeled endpoint prefixes, both static and user-defined. +* `Aws\IoT` - IoT now supports resource tagging and tag based access control for Billing Groups, Thing Groups, Thing Types, Jobs, and Security Profiles. IoT Billing Groups help you group devices to categorize and track your costs. AWS IoT Device Management also introduces three new features: 1. Dynamic thing groups. 2. Jobs dynamic rollouts. 3. Device connectivity indexing. Dynamic thing groups lets you to create a group of devices using a Fleet Indexing query. The devices in your group will be automatically added or removed when they match your specified query criteria. Jobs dynamic rollout allows you to configure an exponentially increasing rate of deployment for device updates and define failure criteria to cancel your job. Device connectivity indexing allows you to index your devices' lifecycle events to discover whether devices are connected or disconnected to AWS IoT. +* `Aws\Lambda` - AWS Lambda now supports python3.7 and the Kinesis Data Streams (KDS) enhanced fan-out and HTTP/2 data retrieval features for Kinesis event sources. +* `Aws\Lightsail` - Add Managed Database operations to OperationType enum. +* `Aws\MediaConvert` - AWS Elemental MediaConvert SDK has added several features including support for: SPEKE full document encryption, up to 150 elements for input stitching, input and motion image insertion, AWS CLI path arguments in S3 links including special characters, AFD signaling, additional caption types, and client-side encrypted input files. +* `Aws\RDS` - This release adds a new parameter to specify VPC security groups for restore from DB snapshot, restore to point int time and create read replica operations. For more information, see Amazon RDS Documentation. +* `Aws\WorkDocs` - With this release, clients can now use the GetResources API to fetch files and folders from the user's SharedWithMe collection. And also through this release, the existing DescribeActivities API has been enhanced to support additional filters such as the ActivityType and the ResourceId. +* `Aws\WorkSpaces` - Added new APIs to Modify and Describe WorkSpaces client properties for users in a directory. With the new APIs, you can enable/disable remember me option in WorkSpaces client for users in a directory. + +## 3.72.1 - 2018-11-16 + +* `Aws\Comprehend` - Amazon Comprehend Custom Entities automatically trains entity recognition models using your entities and noun-based phrases. +* `Aws\CostExplorer` - This release introduces a new operation called GetCostForecast operation, which allows you to programmatically access AWS Cost Explorer's forecasting engine and is now generally available. +* `Aws\ECS` - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for additional Docker flags as Task Definition parameters. Customers can now configure their ECS Tasks to use pidMode (pid) and ipcMode (ipc) Docker flags. +* `Aws\SSM` - AWS Systems Manager Automation now allows you to execute and manage Automation workflows across multiple accounts and regions. +* `Aws\WorkSpaces` - Added new Bring Your Own License (BYOL) automation APIs. With the new APIs, you can list available management CIDR ranges for dedicated tenancy, enable your account for BYOL, describe BYOL status of your account, and import BYOL images. Added new APIs to also describe and delete WorkSpaces images. + +## 3.72.0 - 2018-11-15 + +* `Aws\CodeBuild` - Adding queue phase and configurable queue timeout to CodeBuild. +* `Aws\Comprehend` - Amazon Comprehend Custom Classification automatically trains classification models using your text and custom labels. +* `Aws\DatabaseMigrationService` - Settings structures have been added to our DMS endpoint APIs to support Kinesis and Elasticsearch as targets. We are introducing the ability to configure custom DNS name servers on a replication instance as a beta feature. +* `Aws\DirectConnect` - This release enables DirectConnect customers to have logical redundancy on virtual interfaces within supported DirectConnect locations. +* `Aws\ECS` - In this release, Amazon ECS introduces multiple features. First, ECS now supports integration with Systems Manager Parameter Store for injecting runtime secrets. Second, ECS introduces support for resources tagging. Finally, ECS introduces a new ARN and ID Format for its resources, and provides new APIs for opt-in to the new formats. +* `Aws\IAM` - We are making it easier for you to manage your AWS Identity and Access Management (IAM) resources by enabling you to add tags to your IAM principals (users and roles). Adding tags on IAM principals will enable you to write fewer policies for permissions management and make policies easier to comprehend. Additionally, tags will also make it easier for you to grant access to AWS resources. +* `Aws\Pinpoint` - 1. With Amazon Pinpoint Voice, you can use text-to-speech technology to deliver personalized voice messages to your customers. Amazon Pinpoint Voice is a great way to deliver transactional messages -- such as one-time passwords and identity confirmations -- to customers. 2. Adding support for Campaign Event Triggers. With Campaign Event Triggers you can now schedule campaigns to execute based on incoming event data and target just the source of the event. +* `Aws\PinpointSMSVoice` - With Amazon Pinpoint Voice, you can use text-to-speech technology to deliver personalized voice messages to your customers. Amazon Pinpoint Voice is a way to deliver transactional messages -- such as one-time passwords and appointment confirmations to customers. +* `Aws\RAM` - This is the initial release of AWS Resource Access Manager (RAM) which provides you the ability to share your resources across AWS accounts or within your AWS Organization. You can now create resources centrally and use AWS RAM to share those resources with other accounts, eliminating the need to provision and manage resources in every account. When you share a resource with another account, that account is granted access. Any policies and permissions in that account apply to the shared resource. +* `Aws\RDS` - Introduces DB Instance Automated Backups for the MySQL, MariaDB, PostgreSQL, Oracle and Microsoft SQL Server database engines. You can now retain Amazon RDS automated backups (system snapshots and transaction logs) when you delete a database instance. This allows you to restore a deleted database instance to a specified point in time within the backup retention period even after it has been deleted, protecting you against accidental deletion of data. For more information, see Amazon RDS Documentation. +* `Aws\Redshift` - With this release, Redshift is providing API's for better snapshot management by supporting user defined automated snapshot schedules, retention periods for manual snapshots, and aggregate snapshot actions including batch deleting user snapshots, viewing account level snapshot storage metrics, and better filtering and sorting on the describe-cluster-snapshots API. Automated snapshots can be scheduled to be taken at a custom interval and the schedule created can be reused across clusters. Manual snapshot retention periods can be set at the cluster, snapshot, and cross-region-copy level. The retention period set on a manual snapshot indicates how many days the snapshot will be retained before being automatically deleted. +* `Aws\Route53Resolver` - This is the first release of the Amazon Route 53 Resolver API. Customers now have the ability to create and manage Amazon Route 53 Resolver endpoints and Amazon Route 53 Resolver rules. +* `Aws\S3` - Add support for new S3 Block Public Access bucket-level APIs. The new Block Public Access settings allow bucket owners to prevent public access to S3 data via bucket/object ACLs or bucket policies. +* `Aws\S3Control` - Add support for new S3 Block Public Access account-level APIs. The Block Public Access settings allow account owners to prevent public access to S3 data via bucket/object ACLs or bucket policies. +* `Aws\TranscribeService` - With this release, Amazon Transcribe now publicly supports transcriptions from audio sources in British English (en-GB), Australian English (en-AU), and Canadian French (fr-CA). Amazon Transcribe now also supports the following languages in Private beta: Germany German (de-DE), Brazil Portuguese (pt-BR), France French (fr-FR). + +## 3.71.6 - 2018-11-14 + +* `Aws\AutoScaling` - EC2 Auto Scaling now allows users to provision and automatically scale instances across purchase options (Spot, On-Demand, and RIs) and instance types in a single Auto Scaling group (ASG). +* `Aws\EC2` - Amazon EC2 Fleet now supports a new request type "Instant" that you can use to provision capacity synchronously across instance types & purchase models and CreateFleet will return the instances launched in the API response. +* `Aws\MediaTailor` - AWS Elemental MediaTailor SDK now returns a manifest endpoint prefix for clients to initiate a DASH playback session. +* `Aws\ResourceGroups` - The AWS Resource Groups service added support for AWS CloudFormation stack-based groups. +* `Aws\SNS` - Added an optional request parameter, named Attributes, to the Amazon SNS CreateTopic API action. For more information, see the Amazon SNS API Reference (https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html). +* `Aws\SageMaker` - SageMaker now makes the final set of metrics published from training jobs available in the DescribeTrainingJob results. Automatic Model Tuning now supports warm start of hyperparameter tuning jobs. Notebook instances now support a larger number of instance types to include instances from the ml.t3, ml.m5, ml.c4, ml.c5 families. +* `Aws\ServiceCatalog` - Adds support for Cloudformation StackSets in Service Catalog + +## 3.71.5 - 2018-11-13 + +* `Aws\Budgets` - Doc Update: 1. Available monthly-budgets maximal history data points from 12 to 13. 2. Added 'Amazon Elasticsearch' costfilters support. +* `Aws\Chime` - This release adds support in ListUsers API to filter the list by an email address. +* `Aws\Redshift` - Amazon Redshift provides the option to defer non-mandatory maintenance updates to a later date. + +## 3.71.4 - 2018-11-12 + +* `Aws\Batch` - Adding EC2 Launch Template support in AWS Batch Compute Environments. +* `Aws\Budgets` - 1. Added budget performance history, enabling you to see how well your budgets matched your actual costs and usage. 2. Added budget performance history, notification state, and last updated time, enabling you to see how well your budgets matched your actual costs and usage, how often your budget alerts triggered, and when your budget was last updated. +* `Aws\CloudFormation` - The Drift Detection feature enables customers to detect whether a stack's actual configuration differs, or has drifted, from its expected configuration as defined within AWS CloudFormation. +* `Aws\CodePipeline` - Add support for cross-region pipeline with accompanying definitions as needed in the AWS CodePipeline API Guide. +* `Aws\Firehose` - With this release, Amazon Kinesis Data Firehose allows you to enable/disable server-side encryption(SSE) for your delivery streams ensuring encryption of data at rest. For technical documentation, look at https://docs.aws.amazon.com/firehose/latest/dev/encryption.html +* `Aws\Polly` - Amazon Polly adds new female voices: Italian - Bianca, Castilian Spanish - Lucia and new language: Mexican Spanish with new female voice - Mia. +* `Aws\RDS` - API Update for RDS: this update enables Custom Endpoints, a new feature compatible with Aurora Mysql, Aurora PostgreSQL and Neptune that allows users to configure a customizable endpoint that will provide access to their instances in a cluster. + +## 3.71.3 - 2018-11-09 + +* `Aws\MediaPackage` - As a part of SPEKE DRM encryption, MediaPackage now supports encrypted content keys. You can enable this enhanced content protection in an OriginEndpoint's encryption settings. When this is enabled, MediaPackage indicates to the key server that it requires an encrypted response. To use this, your DRM key provider must support content key encryption. For details on this feature, see the AWS MediaPackage User Guide at https://docs.aws.amazon.com/mediapackage/latest/ug/what-is.html. + +## 3.71.2 - 2018-11-08 + +* `Aws\CloudWatchEvents` - Documentation updates for events +* `Aws\DLM` - Amazon Data Lifecycle Manager adds support for copying EBS volume tags to EBS snapshots. AWS resource tags allow customers to add metadata and apply access policies to your Amazon Elastic Block Store (Amazon EBS) resources. Starting today, customers can use Amazon Data Lifecycle Manager (DLM) to copy tags on EBS volumes to EBS snapshots. This allows customers to easily set snapshot metadata, such as access policies, to match the parent volume. Customers can enable this functionality on new or existing lifecycle policies. They can also choose to disable it at a future date. +* `Aws\MediaLive` - You can now switch a live channel between preconfigured inputs. This means assigned inputs for a running channel can be changed according to a defined schedule. You can also use MP4 files as inputs. + +## 3.71.1 - 2018-11-07 + +* `Aws\CostExplorer` - Enable Payer Accounts to View Linked Account Recommendations. Payer Accounts can specify "LINKED" as scope in the request now. In the response, there is a new filed called AccountId in ReservationPurchaseRecommendationDetail for indicating which account is this recommendation detail belongs to. +* `Aws\DatabaseMigrationService` - Update the DMS TestConnectionSucceeds waiter. +* `Aws\EC2` - VM Import/Export now supports generating encrypted EBS snapshots, as well as AMIs backed by encrypted EBS snapshots during the import process. + +## 3.71.0 - 2018-11-06 + +* `Aws\APIGateway` - AWS WAF integration with APIGW. Changes for adding webAclArn as a part of Stage output. When the user calls a get-stage or get-stages, webAclArn will also be returned as a part of the output. +* `Aws\CodeBuild` - Documentation updates for codebuild +* `Aws\EC2` - You can now launch the new Amazon EC2 memory optimized R5a and general purpose M5a instances families that feature AMD EPYC processors. +* `Aws\Pinpoint` - This update adds the ability to send transactional email by using the SendMessage API. Transactional emails are emails that you send directly to specific email addresses. Unlike campaign-based email that you send from Amazon Pinpoint, you don't have to create segments and campaigns in order to send transactional email. +* `Aws\PinpointEmail` - This is the first release of the Amazon Pinpoint Email API. You can use this API to configure and send transactional email from your Amazon Pinpoint account to specific email addresses. Unlike campaign-based email that you send from Amazon Pinpoint, you don't have to create segments and campaigns in order to send transactional email. +* `Aws\WAFRegional` - You can now use AWS WAF to configure protections for your Amazon API Gateway APIs. This will enable you to block (or count) undesired traffic to your APIs based on the different AWS WAF rules and conditions you create. For more information about AWS WAF, see the AWS WAF Developer Guide. + +## 3.70.4 - 2018-11-05 + +* `Aws\EKS` - Adds waiters for ClusterActive and ClusterDeleted +* `Aws\ServerlessApplicationRepository` - New AWS Serverless Application Repository APIs that support creating and reading a broader set of AWS CloudFormation templates, as well as enhancements to our existing APIs. + +## 3.70.3 - 2018-11-02 + +* `Aws\CloudDirectory` - ListObjectParents API now supports a bool parameter IncludeAllLinksToEachParent, which if set to true, will return a ParentLinks list instead of a Parents map; BatchRead API now supports ListObjectParents operation. +* `Aws\Rekognition` - This release updates the DetectLabels operation. Bounding boxes are now returned for certain objects, a hierarchical taxonomy is now available for labels, and you can now get the version of the detection model used for detection. + +## 3.70.2 - 2018-11-01 + +* `Aws\ServiceCatalog` - Service Catalog integration with AWS Organizations, enables customers to more easily create and manage a portfolio of IT services across an organization. Administrators can now take advantage of the AWS account structure and account groupings configured in AWS Organizations to share Service Catalog Portfolios increasing agility and reducing risk. With this integration the admin user will leverage the trust relationship that exists within the accounts of the Organization to share portfolios to the entire Organization, a specific Organizational Unit or a specific Account. + +## 3.70.1 - 2018-10-31 + +* `Aws\ConfigService` - With this release, AWS Config updated the ResourceType values. The updated list includes AWS Systems Manager AssociationCompliance and PatchCompliance, AWS Shield regional Protection, AWS Config ResourceCompliance, and AWS CodePipeline Pipeline. +* `Aws\Greengrass` - Greengrass APIs now support bulk deployment operations, and APIs that list definition versions now support pagination. +* `Aws\MediaStoreData` - The object size limit is increased from 10MB to 25MB and the content type is more permissive. +* `Aws\SecretsManager` - Documentation updates for AWS Secrets Manager. + +## 3.70.0 - 2018-10-30 + +* `Aws\Chime` - This is the initial release for the Amazon Chime AWS SDK. In this release, Amazon Chime adds support for administrative actions on users and accounts. API Documentation is also updated on https://docs.aws.amazon.com/chime/index.html +* `Aws\DatabaseMigrationService` - Add waiters for TestConnectionSucceeds, EndpointDeleted, ReplicationInstanceAvailable, ReplicationInstanceDeleted, ReplicationTaskReady, ReplicationTaskStopped, ReplicationTaskRunning and ReplicationTaskDeleted. +* `Aws\RDS` - This release adds the listener connection endpoint for SQL Server Always On to the list of fields returned when performing a describe-db-instances operation. + +## 3.69.16 - 2018-10-26 + +* `Aws\AlexaForBusiness` - Documentation updates for AWS Alexa for Business +* `Aws\SSM` - Compliance Severity feature release for State Manager. Users now have the ability to select compliance severity to their association in state manager console or CLI. +* `Aws\SageMaker` - SageMaker notebook instances can now have a volume size configured. + +## 3.69.15 - 2018-10-25 + +* `Aws\EC2` - As part of this release we are introducing EC2 On-Demand Capacity Reservations. With On-Demand Capacity Reservations, customers can reserve the exact EC2 capacity they need, and can keep it only for as long as they need it. + +## 3.69.14 - 2018-10-24 + +* `Aws\AlexaForBusiness` - We extended the functionality of the Alexa for Business SDK, including additional support for third-party Alexa built-in devices, managing private and public skills, and conferencing setup. +* `Aws\CodeStar` - This release lets you create projects from source code and a toolchain definition that you provide. + +## 3.69.13 - 2018-10-23 + +* `Aws\EC2` - Provides customers the ability to Bring Your Own IP (BYOIP) prefix. You can bring part or all of your public IPv4 address range from your on-premises network to your AWS account. You continue to own the address range, but AWS advertises it on the internet. + +## 3.69.12 - 2018-10-22 + +* `Aws\Inspector` - Finding will be decorated with ec2 related metadata +* `Aws\Shield` - AWS Shield Advanced API introduced a new service-specific AccessDeniedException which will be thrown when accessing individual attack information without sufficient permission. + +## 3.69.11 - 2018-10-19 + +* `Aws\Aws` - Bump Guzzle HTTP patch version for PHP 7.3 compatibility. +* `Aws\SSM` - Rate Control feature release for State Manager. Users now have the ability to apply rate control parameters similar to run command to their association in state manager console or CLI. +* `Aws\WorkSpaces` - Added support for PowerPro and GraphicsPro WorkSpaces bundles. + +## 3.69.10 - 2018-10-18 + +* `Aws\AppStream` - This API update adds support for creating, managing, and deleting users in the AppStream 2.0 user pool. +* `Aws\MediaLive` - This release allows you to now turn on Quality-Defined Variable Bitrate (QVBR) encoding for your AWS Elemental MediaLive channels. You can now deliver a consistently high-quality video viewing experience while reducing overall distribution bitrates by using Quality-Defined Variable Bitrate (QVBR) encoding with AWS Elemental MediaLive. QVBR is a video compression technique that automatically adjusts output bitrates to the complexity of source content and only use the bits required to maintain a defined level of quality. This means using QVBR encoding, you can save on distribution cost, while maintaining, or increasing video quality for your viewers. +* `Aws\Route53` - This change allows customers to disable health checks. + +## 3.69.9 - 2018-10-17 + +* `Aws\APIGateway` - Documentation updates for API Gateway +* `Aws\CloudWatchEvents` - AWS Events - AWS Organizations Support in Event-Bus Policies. This release introduces a new parameter in the PutPermission API named Condition. Using the Condition parameter, customers can allow one or more AWS Organizations to access their CloudWatch Events Event-Bus resource. + +## 3.69.8 - 2018-10-16 + +* `Aws\Glue` - New Glue APIs for creating, updating, reading and deleting Data Catalog resource-based policies. +* `Aws\Lightsail` - Adds support for Lightsail managed databases. +* `Aws\ResourceGroups` - AWS Resource Groups service added a new feature to filter resource groups by resource-type when using the ListGroups operation. + +## 3.69.7 - 2018-10-15 + +* `Aws\Lambda` - Documentation updates for lambda +* `Aws\RDS` - This release adds a new parameter to specify the DB instance or cluster parameter group for restore from DB snapshot and restore to point int time operations. For more information, see Amazon RDS Documentation. +* `Aws\ServiceCatalog` - AWS Service Catalog enables you to reduce administrative maintenance and end-user training while adhering to compliance and security measures. With service actions, you as the administrator can enable end users to perform operational tasks, troubleshoot issues, run approved commands, or request permissions within Service Catalog. Service actions are defined using AWS Systems Manager documents, where you have access to pre-defined actions that implement AWS best practices, such asEC2 stop and reboot, as well as the ability to define custom actions. + +## 3.69.6 - 2018-10-12 + +* `Aws\ClientSideMonitoring` - Adds MaxRetriesExceeded entry to ApiCall events. +* `Aws\CloudTrail` - The LookupEvents API now supports two new attribute keys: ReadOnly and AccessKeyId + +## 3.69.5 - 2018-10-11 + +* `Aws\Api/Serializer` - Fix to correctly format 'structure' options into JSON, when they have no valid values. +* `Aws\Athena` - 1. GetQueryExecution API changes to return statementType of a submitted Athena query. 2. GetQueryResults API changes to return the number of rows added to a table when a CTAS query is executed. +* `Aws\ClientSideMonitoring` - Updates to client-side monitoring event entry and config settings to match updated specification. +* `Aws\DirectConnect` - This release adds support for Jumbo Frames over AWS Direct Connect. You can now set MTU value when creating new virtual interfaces. This release also includes a new API to modify MTU value of existing virtual interfaces. +* `Aws\EC2` - You can now launch the smaller-sized G3 instance called g3s.xlarge. G3s.xlarge provides 4 vCPU, 30.5 GB RAM and a NVIDIA Tesla M60 GPU. It is ideal for remote workstations, engineering and architectural applications, and 3D visualizations and rendering for visual effects. +* `Aws\MediaConvert` - Added Paginators for all the MediaConvert list operations +* `Aws\TranscribeService` - With this release, Amazon Transcribe now supports transcriptions from audio sources in British English (en-UK), Australian English (en-AU), and Canadian French (fr-CA). + +## 3.69.4 - 2018-10-10 + +* `Aws\Build/Docs` - Fixes API docs issue with required members in shapes. +* `Aws\ClientSideMonitoring` - Avoids issue with late static bindings in closures in earlier versions of PHP 5.5.x. +* `Aws\Comprehend` - This release adds French, Italian, German and Portuguese language support for all existing synchronous and asynchronous APIs +* `Aws\ElasticsearchService` - Amazon Elasticsearch Service now supports customer-scheduled service software updates. When new service software becomes available, you can request an update to your domain and benefit from new features more quickly. If you take no action, we update the service software automatically after a certain time frame. +* `Aws\TranscribeService` - With this update Amazon Transcribe now supports deleting completed transcription jobs. + +## 3.69.3 - 2018-10-09 + +* `Aws\SSM` - Adds StartDate, EndDate, and ScheduleTimezone to CreateMaintenanceWindow and UpdateMaintenanceWindow; Adds NextExecutionTime to GetMaintenanceWindow and DescribeMaintenanceWindows; Adds CancelMaintenanceWindowExecution, DescribeMaintenanceWindowSchedule and DescribeMaintenanceWindowsForTarget APIs. + +## 3.69.2 - 2018-10-08 + +* `Aws\IoT` - We are releasing job execution timeout functionalities to customers. Customer now can set job execution timeout on the job level when creating a job. +* `Aws\IoTJobsDataPlane` - We are releasing job execution timeout functionalities to customers. Device can now set and update their job execution timeout. + +## 3.69.1 - 2018-10-05 + +* `Aws\DirectoryService` - SDK changes to create a new type of trust for active directory + +## 3.69.0 - 2018-10-04 + +* `Aws\APIGateway` - Adding support for multi-value parameters in TestInvokeMethod and TestInvokeAuthorizer. +* `Aws\ClientSideMonitoring` - Code for future SDK instrumentation and telemetry. +* `Aws\CodeBuild` - Add resolved source version field in build output +* `Aws\Neptune` - Update neptune command for support in the EU (London) region +* `Aws\SSM` - Adds RejectedPatchesAction to baseline to enable stricted validation of the rejected Patches List ; Add InstalledRejected and InstallOverrideList to compliance reporting +* `Aws\StorageGateway` - AWS Storage Gateway now enables you to specify folders and subfolders when you update your file gateway's view of your S3 objects using the Refresh Cache API. + +## 3.68.1 - 2018-10-02 + +* `Aws\SageMaker` - Waiter for SageMaker Batch Transform Jobs. +* `Aws\SecretsManager` - Documentation updates for secretsmanager + +## 3.68.0 - 2018-10-01 + +* `Aws\GuardDuty` - Support optional FindingPublishingFrequency parameter in CreateDetector and UpdateDetector operations, and ClientToken on Create* operations +* `Aws\Lambda` - Added default TCP Keep-Alive Curl setting for the Lambda client. +* `Aws\Rekognition` - Documentation updates for Amazon Rekognition + +## 3.67.22 - 2018-09-28 + +* `Aws\CodeStar` - This release enables tagging CodeStar Projects at creation. The CreateProject API now includes optional tags parameter. +* `Aws\EC2` - You can now use EC2 High Memory instances with 6 TiB memory (u-6tb1.metal), 9 TiB memory (u-9tb1.metal), and 12 TiB memory (u-12tb1.metal), which are ideal for running large in-memory databases, including production deployments of SAP HANA. These instances offer 448 logical processors, where each logical processor is a hyperthread on 224 cores. These instance deliver high networking throughput and lower latency with up to 25 Gbps of aggregate network bandwidth using Elastic Network Adapter (ENA)-based Enhanced Networking. These instances are EBS-Optimized by default, and support encrypted and unencrypted EBS volumes. This instance is only available in host-tenancy. You will need an EC2 Dedicated Host for this instance type to launch an instance. + +## 3.67.21 - 2018-09-27 + +* `Aws\APIGateway` - Adding support for OpenAPI 3.0 import and export. +* `Aws\CodeCommit` - This release adds API support for getting the contents of a file, getting the contents of a folder, and for deleting a file in an AWS CodeCommit repository. +* `Aws\GameLift` - Amazon GameLift and Amazon GameLift FlexMatch are now available in the China cn-north-1 region. +* `Aws\MQ` - Amazon MQ supports ActiveMQ 5.15.6, in addition to 5.15.0. Automatic minor version upgrades can be toggled. Updated the documentation. +* `Aws\SageMaker` - SageMaker has added support for the AWS GovCloud (US) region. + +## 3.67.20 - 2018-09-26 + +* `Aws\Glue` - AWS Glue now supports data encryption at rest for ETL jobs and development endpoints. With encryption enabled, when you run ETL jobs, or development endpoints, Glue will use AWS KMS keys to write encrypted data at rest. You can also encrypt the metadata stored in the Glue Data Catalog using keys that you manage with AWS KMS. Additionally, you can use AWS KMS keys to encrypt the logs generated by crawlers and ETL jobs as well as encrypt ETL job bookmarks. Encryption settings for Glue crawlers, ETL jobs, and development endpoints can be configured using the security configurations in Glue. Glue Data Catalog encryption can be enabled via the settings for the Glue Data Catalog. +* `Aws\OpsWorksCM` - This release introduces a new API called ExportServerEngineAttribute to Opsworks-CM. You can use this API call to export engine specific attributes like the UserData script used for unattended bootstrapping of new nodes that connect to the server. +* `Aws\RDS` - This release includes Deletion Protection for RDS databases. +* `Aws\SQS` - Documentation updates for Amazon SQS. + +## 3.67.19 - 2018-09-25 + +* `Aws\CloudFront` - Documentation updates for cloudfront +* `Aws\DirectoryService` - API changes related to launch of cross account for Directory Service. +* `Aws\EC2` - Add pagination support for ec2.describe-route-tables API. + +## 3.67.18 - 2018-09-24 + +* `Aws\Connect` - This update adds the Amazon Connect Metrics API, which lets you get current metric data and historical metric data within 24 hours for the queues in your Amazon Connect instance. +* `Aws\RDS` - Adds DB engine version requirements for option group option settings, and specifies if an option setting requires a value. + +## 3.67.17 - 2018-09-21 + +* `Aws\MediaConvert` - To offer lower prices for predictable, non-urgent workloads, we propose the concept of Reserved Transcode pricing. Reserved Transcode pricing Reserved Transcoding pricing would offer the customer access to a fixed parallel processing capacity for a fixed monthly rate. This capacity would be stated in terms of number of Reserved Transcode Slots (RTSs). One RTS would be able to process one job at a time for a fixed monthly fee. + +## 3.67.16 - 2018-09-20 + +* `Aws\DirectoryService` - Added CreateLogSubscription, DeleteLogSubscription, and ListLogSubscriptions APIs for Microsoft AD. Customers can now opt in to have Windows security event logs from the domain controllers forwarded to a log group in their account. +* `Aws\EC2` - You can now launch f1.4xlarge, a new instance size within the existing f1 family which provides two Xilinx Virtex Field Programmable Arrays (FPGAs) for acceleration. FPGA acceleration provide additional performance and time sensitivity for specialized accelerated workloads such as clinical genomics and real-time video processing. F1.4xlarge instances are available in the US East (N. Virginia), US West (Oregon), GovCloud (US), and EU West (Dublin) AWS Regions. +* `Aws\RDS` - This launch enables RDS start-db-cluster and stop-db-cluster. Stopping and starting Amazon Aurora clusters helps you manage costs for development and test environments. You can temporarily stop all the DB instances in your cluster, instead of setting up and tearing down all the DB instances each time that you use the cluster. + +## 3.67.15 - 2018-09-19 + +* `Aws\CloudWatch` - Amazon CloudWatch adds the ability to request png image snapshots of metric widgets using the GetMetricWidgetImage API. +* `Aws\Organizations` - Introducing a new exception - AccountOwnerNotVerifiedException which will be returned for InviteAccountToOrganization call for unverified accounts. +* `Aws\S3` - S3 Cross Region Replication now allows customers to use S3 object tags to filter the scope of replication. By using S3 object tags, customers can identify individual objects for replication across AWS Regions for compliance and data protection. Cross Region Replication for S3 enables automatic and asynchronous replication of objects to another AWS Region, and with this release customers can replicate at a bucket level, prefix level or by using object tags. + +## 3.67.14 - 2018-09-18 + +* `Aws\ElasticsearchService` - Amazon Elasticsearch Service adds support for node-to-node encryption for new domains running Elasticsearch version 6.0 and above +* `Aws\Rekognition` - This release updates the Amazon Rekognition IndexFaces API operation. It introduces a QualityFilter parameter that allows you to automatically filter out detected faces that are deemed to be of low quality by Amazon Rekognition. The quality bar is based on a variety of common use cases. You can filter low-quality detected faces by setting QualityFilter to AUTO, which is also the default setting. To index all detected faces regardless of quality, you can specify NONE. This release also provides a MaxFaces parameter that is useful when you want to only index the most prominent and largest faces in an image and don't want to index other faces detected in the image, such as smaller faces belonging to people standing in the background. + +## 3.67.13 - 2018-09-17 + +* `Aws\CloudWatch` - Amazon CloudWatch adds the ability to publish values and counts using PutMetricData +* `Aws\CodeBuild` - Support build logs configuration. +* `Aws\EC2` - Added support for customers to tag EC2 Dedicated Hosts on creation. +* `Aws\ECS` - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for additional Docker flags as Task Definition parameters. Customers can now configure their ECS Tasks to use systemControls (sysctl), pseudoTerminal (tty), and interactive (i) Docker flags. +* `Aws\ElastiCache` - ElastiCache for Redis added support for adding and removing read-replicas from any cluster with no cluster downtime, Shard naming: ElastiCache for Redis customers have the option of allowing ElastiCache to create names for their node groups (shards) or generating their own node group names. For more information, see https:// docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_NodeGroupConfiguration.html, ShardsToRetain: When reducing the number of node groups (shards) in an ElastiCache for Redis (cluster mode enabled) you have the option of specifying which node groups to retain or which node groups to remove. For more information, see https:// docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroupShardConfiguration.html, ReservationARN: ReservedNode includes an ARN, ReservationARN, member which identifies the reserved node. For more information, see https:// docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ReservedCacheNode.html +* `Aws\ElasticTranscoder` - Added support for MP2 container +* `Aws\SecretsManager` - Documentation updates for secretsmanager + +## 3.67.12 - 2018-09-13 + +* `Aws\Polly` - Amazon Polly adds Mandarin Chinese language support with new female voice - "Zhiyu" + +## 3.67.11 - 2018-09-12 + +* `Aws\Connect` - This update adds the Amazon Connect Update Contact Attributes API, which lets you update contact attributes for contacts in your Amazon Connect instance. +* `Aws\EC2` - Pagination Support for DescribeNetworkInterfaces API +* `Aws\FMS` - This update of Amazon Fire Wall Manager adds the ability to scope down the policy as well as to get all the member accounts belonging to a certain Fire Wall Manager admin account. +* `Aws\SES` - Documentation updates for Amazon Simple Email Service +* `Aws\S3` - Support for S3Select in the AWS SDK for PHP. + +## 3.67.10 - 2018-09-11 + +* `Aws\OpsWorksCM` - Documentation updates for opsworkscm +* `Aws\SSM` - Session Manager is a fully managed AWS Systems Manager capability that provides interactive one-click access to Amazon EC2 Linux and Windows instances. + +## 3.67.9 - 2018-09-10 + +* `Aws\CloudHSMV2` - With this release, we are adding 2 new APIs. DeleteBackup deletes a specified AWS CloudHSM backup. A backup can be restored up to 7 days after the DeleteBackup request. During this 7-day period, the backup will be in state PENDING_DELETION. Backups can be restored using the RestoreBackup API, which will move the backup from state PENDING_DELETION back to ACTIVE. +* `Aws\Redshift` - Adding support to Redshift to change the encryption type after cluster creation completes. + +## 3.67.8 - 2018-09-07 + +* `Aws\CloudWatchLogs` - * Adding a log prefix parameter for filter log events API and minor updates to the documentation +* `Aws\ConfigService` - Adding a new field "createdBy" to the ConfigRule data model. The field is populated only if the rule is service linked i.e the rule is created by a service. The field is empty for normal rules created by customer. + +## 3.67.7 - 2018-09-06 + +* `Aws\APIGateway` - Add support for Active X-Ray with API Gateway +* `Aws\CodeCommit` - This release adds additional optional fields to the pull request APIs. +* `Aws\MediaConvert` - This release adds support for Cost Allocation through tagging and also enables adding, editing, and removal of tags from the MediaConvert console. + +## 3.67.6 - 2018-09-05 + +* `Aws\AppStream` - Added support for enabling persistent application settings for a stack. When these settings are enabled, changes that users make to applications and Windows settings are automatically saved after each session and applied to the next session. +* `Aws\DynamoDB` - New feature for Amazon DynamoDB. +* `Aws\ElasticLoadBalancing` - Documentation update for DescribeAccountLimits API to include classic-registered-instances. +* `Aws\RDS` - Fix broken links in the RDS CLI Reference to the Aurora User Guide +* `Aws\S3` - Parquet input format support added for the SelectObjectContent API + +## 3.67.5 - 2018-09-04 + +* `Aws\RDS` - Updating cross references for the new Aurora User Guide. +* `Aws\Rekognition` - This release introduces a new API called DescribeCollection to Amazon Rekognition. You can use DescribeCollection to get information about an existing face collection. Given the ID for a face collection, DescribeCollection returns the following information: the number of faces indexed into the collection, the version of the face detection model used by the collection, the Amazon Resource Name (ARN) of the collection and the creation date/time of the collection. + +## 3.67.4 - 2018-08-31 + +* `Aws\EKS` - Amazon EKS DescribeCluster API returns a platformVersion attribute which allows you to identify the features that are currently enabled for your clusters. The Amazon EKS platform version represents capabilities of the cluster control plane, such as which Kubernetes API server flags are enabled, as well as the current Kubernetes patch version. +* `Aws\WAF` - This change includes support for the WAF FullLogging feature through which Customers will have access to all the logs of requests that are inspected by a WAF WebACL. The new APIs allow Customers to manage association of a WebACL with one or more supported "LogDestination" and redact any request fields from the logs. +* `Aws\WAFRegional` - This change includes support for the WAF FullLogging feature through which Customers will have access to all the logs of requests that are inspected by a WAF WebACL. The new APIs allow Customers to manage association of a WebACL with one or more supported "LogDestination" and redact any request fields from the logs. + +## 3.67.3 - 2018-08-30 + +* `Aws\CodeBuild` - Support multiple sources and artifacts for CodeBuild projects. +* `Aws\SageMaker` - VolumeKmsKeyId now available in Batch Transform Job + +## 3.67.2 - 2018-08-29 + +* `Aws\Glue` - AWS Glue now supports data encryption at rest for ETL jobs and development endpoints. With encryption enabled, when you run ETL jobs, or development endpoints, Glue will use AWS KMS keys to write encrypted data at rest. You can also encrypt the metadata stored in the Glue Data Catalog using keys that you manage with AWS KMS. Additionally, you can use AWS KMS keys to encrypt the logs generated by crawlers and ETL jobs as well as encrypt ETL job bookmarks. Encryption settings for Glue crawlers, ETL jobs, and development endpoints can be configured using the security configurations in Glue. Glue Data Catalog encryption can be enabled via the settings for the Glue Data Catalog. +* `Aws\MediaPackage` - MediaPackage now provides input redundancy. Channels have two ingest endpoints that can receive input from encoders. OriginEndpoints pick one of the inputs receiving content for playback and automatically switch to the other input if the active input stops receiving content. Refer to the User Guide (https://docs.aws.amazon.com/mediapackage/latest/ug/what-is.html) for more details on this feature. +* `Aws\SageMakerRuntime` - SageMaker Runtime supports CustomAttributes header which allows customers provide additional information in a request for an inference submitted to a model or in the response about the inference returned by a model hosted at an Amazon SageMaker endpoint. + +## 3.67.1 - 2018-08-28 + +* `Aws\Glue` - New Glue APIs for creating, updating, reading and deleting Data Catalog resource-based policies. +* `Aws\XRay` - Support for new APIs that enable management of sampling rules. + +## 3.67.0 - 2018-08-27 + +* `Aws\IoT` - This release adds support to create a Stream and Code signing for Amazon FreeRTOS job along with Over-the-air updates. +* `Aws\IoTAnalytics` - Added new listDatasetContent API that shows you the list of dataset contents for the corresponding versions +* `Aws\Redshift` - Documentation updates for redshift +* `Aws\signer` - AWS Signer is a new feature that allows Amazon FreeRTOS (AFR) Over The Air (OTA) customers to cryptographically sign code using code-signing certificates managed by AWS Certificate Manager. + +## 3.66.2 - 2018-08-25 + +* `Aws\Glue` - AWS Glue now supports data encryption at rest for ETL jobs and development endpoints. With encryption enabled, when you run ETL jobs, or development endpoints, Glue will use AWS KMS keys to write encrypted data at rest. You can also encrypt the metadata stored in the Glue Data Catalog using keys that you manage with AWS KMS. Additionally, you can use AWS KMS keys to encrypt the logs generated by crawlers and ETL jobs as well as encrypt ETL job bookmarks. Encryption settings for Glue crawlers, ETL jobs, and development endpoints can be configured using the security configurations in Glue. Glue Data Catalog encryption can be enabled via the settings for the Glue Data Catalog. + +## 3.66.1 - 2018-08-24 + +* `Aws\CloudWatchEvents` - Added Fargate and NetworkConfiguration support to EcsParameters. +* `Aws\CognitoIdentityProvider` - Amazon Cognito now has API support for creating custom domains for our hosted UI for User Pools. + +## 3.66.0 - 2018-08-23 + +* `Aws\Credentials` - Update ini parsing to handle unquoted components that contain equals signs. +* `Aws\IoT` - This release adds support for IoT Thing Group Indexing and Searching functionality. +* `Aws\IoTAnalytics` - AWS IoT Analytics announces three new features: (1) Bring Your Custom Container - import your custom authored code containers. (2) Automate Container Execution - lets you automate the execution of containers hosting custom authored analytical code or Jupyter Notebooks to perform continuous analysis. (3) Incremental Data Capture with Customizable Time Windows - enables users to perform analysis on new incremental data captured since the last analysis. +* `Aws\LexModelBuildingService` - Amazon Lex builds bot in two stages. After the first it sets status to READY_BASIC_TESTING. In this state the bot will match user inputs that exactly match the utterances configured for the bot's intents and values in the slot types. +* `Aws\MediaLive` - Adds two APIs for working with Channel Schedules: BatchUpdateSchedule and DescribeSchedule. These APIs allow scheduling actions for SCTE-35 message insertion and for static image overlays. +* `Aws\Rekognition` - This release introduces a new API called DescribeCollection to Amazon Rekognition. You can use DescribeCollection to get information about an existing face collection. Given the ID for a face collection, DescribeCollection returns the following information: the number of faces indexed into the collection, the version of the face detection model used by the collection, the Amazon Resource Name (ARN) of the collection and the creation date/time of the collection. + +## 3.65.2 - 2018-08-22 + +* `Aws\Snowball` - Snowball job states allow customers to track the status of the Snowball job. We are launching a new Snowball job state "WithSortingFacility"! When customer returns the Snowball to AWS, the device first goes to a sorting facility before it reaches an AWS data center. Many customers have requested us to add a new state to reflect the presence of the device at the sorting facility for better tracking. Today when a customer returns the Snowball, the state first changes from "InTransitToAWS" to "WithAWS". With the addition of new state, the device will move from "InTransitToAWS" to "WithAWSSortingFacility", and then to "WithAWS". There are no other changes to the API at this time besides adding this new state. + +## 3.65.1 - 2018-08-21 + +* `Aws\DLM` - Documentation updates for Lifecycle +* `Aws\EC2` - Added support for T3 Instance type in EC2. To learn more about T3 instances, please see https://aws.amazon.com/ec2/instance-types/t3/ +* `Aws\ElasticBeanstalk` - Elastic Beanstalk adds the "Privileged" field to the "CPUUtilization" type, to support enhanced health reporting in Windows environments. +* `Aws\RDS` - Adds a paginator for the DescribeDBClusters operation. +* `Aws\Signature\SignatureV4` - Updates the SignatureV4 presigning process to not sign, and subsequently require on use, the X-Amz-Security-Token header when it's already signed in the query string. + +## 3.65.0 - 2018-08-20 + +* `Aws\DynamoDB` - Added SSESpecification block to update-table command which allows users to modify table Server-Side Encryption. Added two new fields (SSEType and KMSMasterKeyId) to SSESpecification block used by create-table and update-table commands. Added new SSEDescription Status value UPDATING. +* `Aws\MediaConvert` - This release fixes backward-incompatible changes from a previous release. That previous release changed non-required job settings to required, which prevented jobs and job templates from merging correctly. The current change removes validation of required settings from the SDK and instead centralizes the validation in the service API. For information on required settings, see the Resources chapter of the AWS Elemental MediaConvert API Reference https://docs.aws.amazon.com/mediaconvert/latest/apireference/resources.html +* `Aws\Signature\SignatureV4` - Add support for pre-signing additional headers. Any additional headers that are supplied and signed must be included when sending the request. +* `Aws\Test` - Refactored namespaces of tests to prepare for PHPUnit6 +* `Aws\Test` - Refactored exception tests to prepare for PHPUnit6 + +## 3.64.15 - 2018-08-17 + +* `Aws\DAX` - DAX CreateClusterRequest is updated to include IamRoleArn as a required request parameter. +* `Aws\SageMaker` - Added an optional boolean parameter, 'DisassociateLifecycleConfig', to the UpdateNotebookInstance operation. When set to true, the lifecycle configuration associated with the notebook instance will be removed, allowing a new one to be set via a new 'LifecycleConfigName' parameter. +* `Aws\SecretsManager` - Documentation updates for Secrets Manager + +## 3.64.14 - 2018-08-16 + +* `Aws\ApplicationDiscoveryService` - The Application Discovery Service's Continuous Export APIs allow you to analyze your on-premises server inventory data, including system performance and network dependencies, in Amazon Athena. +* `Aws\EC2` - The 'Attribute' parameter DescribeVolumeAttribute request has been marked as required - the API has always required this parameter, but up until now this wasn't reflected appropriately in the SDK. +* `Aws\MediaConvert` - Added WriteSegmentTimelineInRepresentation option for Dash Outputs +* `Aws\Redshift` - You can now resize your Amazon Redshift cluster quickly. With the new ResizeCluster action, your cluster is available for read and write operations within minutes +* `Aws\SSM` - AWS Systems Manager Inventory now supports groups to quickly see a count of which managed instances are and arent configured to collect one or more Inventory types +* `Aws\TraceMiddleware` - Removed potential PCRE vulnerability. + +## 3.64.13 - 2018-08-15 + +* `Aws\` - We are launching AWS IoT Core and AWS IoT Device Mgmt in GovCloud (us-gov-west-1) region. +* `Aws\DeviceFarm` - Support for running tests in a custom environment with live logs/video streaming, full test features parity and reduction in overall test execution time. + +## 3.64.12 - 2018-08-14 + +* `Aws\AutoScaling` - Add batch operations for creating/updating and deleting scheduled scaling actions. +* `Aws\CloudFront` - Lambda@Edge Now Provides You Access to the Request Body for HTTP POST/PUT Processing. With this feature, you can now offload more origin logic to the edge and improve end-user latency. Developers typically use Web/HTML forms or Web Beacons/Bugs as a mechanism to collect data from the end users and then process that data at their origins servers. For example, if you are collecting end user behavior data through a web beacon on your website, you can use this feature to access the user behavior data and directly log it to an Amazon Kinesis Firehose endpoint from the Lambda function, thereby simplifying your origin infrastructure. +* `Aws\ElasticsearchService` - Amazon Elasticsearch Service adds support for no downtime, in-place upgrade for Elasticsearch version 5.1 and above. + +## 3.64.11 - 2018-08-13 + +* `Aws\SageMaker` - SageMaker updated the default endpoint URL to support Private Link via the CLI/SDK. + +## 3.64.10 - 2018-08-10 + +* `Aws\MediaConvert` - This release adds support for a new rate control mode, Quality-Defined Variable Bitrate (QVBR) encoding, includes updates to optimize transcoding performance, and resolves previously reported bugs. +* `Aws\MediaPackage` - Elemental MediaPackage is now available in the SFO region. +* `Aws\RDS` - Documentation updates for rds + +## 3.64.9 - 2018-08-09 + +* `Aws\DAX` - Add the SSESpecification field to CreateCluster to allow creation of clusters with server-side encryption, and add the SSEDescription field to DescribeClusters to display the status of server-side encryption for a cluster. +* `Aws\ECS` - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for Docker volumes and Docker volume drivers. Customers can now configure their ECS Tasks to use Docker volumes, enabling stateful and storage-intensive applications to be deployed on ECS. +* `Aws\RDS` - Launch RDS Aurora Serverless + +## 3.64.8 - 2018-08-08 + +* `Aws\SSM` - AWS Systems Manager Automation is launching two new features for Automation Execution Rate Control based on tags and customized parameter maps. With the first feature, customer can target their resources by specifying a Tag with Key/Value. With the second feature, Parameter maps rate control, customers can benefit from customization of input parameters. +* `Aws\SecretsManager` - This release introduces a ForceDeleteWithoutRecovery parameter to the DeleteSecret API enabling customers to force the deletion of a secret without any recovery window + +## 3.64.7 - 2018-08-07 + +* `Aws\CloudWatchLogs` - Documentation Update +* `Aws\CodeBuild` - Release semantic versioning feature for CodeBuild +* `Aws\EC2` - Amazon VPC Flow Logs adds support for delivering flow logs directly to S3 +* `Aws\Pinpoint` - This release includes a new batch API call for Amazon Pinpoint which can be used to update endpoints and submit events. This call will accept events from clients such as mobile devices and AWS SDKs. This call will accept requests which has multiple endpoints and multiple events attached to those endpoints in a single call. This call will update the endpoints attached and will ingest events for those endpoints. The response from this call will be a multipart response per endpoint/per event submitted. +* `Aws\SSM` - Two new filters ExecutionStage and DocumentName will be added to ListCommands so that customers will have more approaches to query their commands. + +## 3.64.6 - 2018-08-06 + +* `Aws\DynamoDB` - Amazon DynamoDB Point-in-time recovery (PITR) provides continuous backups of your table data. DynamoDB now supports the ability to self-restore a deleted PITR enabled table. Now, when a table with PITR enabled is deleted, a system backup is automatically created and retained for 35 days (at no additional cost). System backups allow you to restore the deleted PITR enabled table to the state it was just before the point of deletion. For more information, see the Amazon DynamoDB Developer Guide. +* `Aws\Health` - Updates the ARN structure vended by AWS Health API. All ARNs will now include the service and type code of the associated event, as vended by DescribeEventTypes. + +## 3.64.5 - 2018-08-03 + +* `Aws\AlexaForBusiness` - Documentation updates for AWS Alexa For Business + +## 3.64.4 - 2018-08-02 + +* `Aws\Greengrass` - AWS Greengrass is now available in the Dublin, Ireland (Europe) region, eu-west-1. +* `Aws\Kinesis` - This update introduces SubscribeToShard and RegisterStreamConsumer APIs which allows for retrieving records on a data stream over HTTP2 with enhanced fan-out capabilities. With this new feature the Java SDK now supports event streaming natively which will allow you to define payload and exception structures on the client over a persistent connection. For more information, see Developing Consumers with Enhanced Fan-Out in the Kinesis Developer Guide. +* `Aws\Polly` - Amazon Polly enables female voice Aditi to speak Hindi language +* `Aws\ResourceGroups` - AWS Resource Groups service added a new feature to filter group resources by resource-type when using the ListGroupResources operation. +* `Aws\SSM` - This release updates AWS Systems Manager APIs to let customers create and use service-linked roles to register and edit Maintenance Window tasks. + +## 3.64.3 - 2018-08-01 + +* `Aws\StorageGateway` - AWS Storage Gateway now enables you to create stored volumes with AWS KMS support. +* `Aws\TranscribeService` - With this update Amazon Transcribe now supports channel identification. It transcribes audio from separate channels and combines them into a single transcription. + +## 3.64.2 - 2018-07-31 + +* `Aws\Connect` - This update includes the new User Management APIs and the Federation API used for SAML authentication. The User Management APIs let you create and manage users in your Amazon Connect instance programmatically. The Federation API enables authentication between AWS and your existing identity provider using tokens. +* `Aws\ElasticsearchService` - Amazon Elasticsearch Service adds support for enabling Elasticsearch error logs, providing you valuable information for troubleshooting your Elasticsearch domains quickly and easily. These logs are published to the Amazon CloudWatch Logs service and can be turned on or off at will. +* `Aws\IoT` - As part of this release we are introducing a new IoT security service, AWS IoT Device Defender, and extending capability of AWS IoT to support Step Functions rule action. The AWS IoT Device Defender is a fully managed service that helps you secure your fleet of IoT devices. For more details on this new service, go to https://aws.amazon.com/iot-device-defender. The Step Functions rule action lets you start an execution of AWS Step Functions state machine from a rule. +* `Aws\KMS` - Added a KeyID parameter to the ListAliases operation. This parameter allows users to list only the aliases that refer to a particular AWS KMS customer master key. All other functionality remains intact. +* `Aws\MediaConvert` - Fixes an issue with modeled timestamps being labeled with the incorrect format. + +## 3.64.1 - 2018-07-30 + +* `Aws\CloudHSMV2` - This update to the AWS CloudHSM API adds copy-backup-to-region, which allows you to copy a backup of a cluster from one region to another. The copied backup can be used in the destination region to create a new AWS CloudHSM cluster as a clone of the original cluster. +* `Aws\DirectConnect` - 1. awsDeviceV2 field is introduced for Connection/Lag/Interconnect/VirtualInterface/Bgp Objects, while deprecating the awsDevice field for Connection/Lag/Interconnect Objects. 2. region field is introduced for VirtualInterface/Location objects +* `Aws\Glacier` - Documentation updates for glacier +* `Aws\Glue` - Glue Development Endpoints now support association of multiple SSH public keys with a development endpoint. +* `Aws\IoT` - get rid of documentParameters field from CreateJob API +* `Aws\MQ` - Modified the CreateBroker, UpdateBroker, and DescribeBroker operations to support integration with Amazon CloudWatch Logs. Added a field to indicate the IP address(es) that correspond to wire-level endpoints of broker instances. While a single-instance broker has one IP address, an active/standby broker for high availability has 2 IP addresses. Added fields to indicate the time when resources were created. Updated documentation for Amazon MQ. +* `Aws\SageMaker` - Added SecondaryStatusTransitions to DescribeTrainingJob to provide more visibility into SageMaker training job progress and lifecycle. + +## 3.64.0 - 2018-07-26 + +* `Aws\Api` - Updates parsers and serializers to handle the timestampFormat trait. +* `Aws\CodeBuild` - Add artifacts encryptionDisabled and build encryptionKey. +* `Aws\EC2` - This change provides the EC2/Spot customers with two new allocation strategies -- LowestN for Spot instances, and OD priority for on-demand instances. +* `Aws\Greengrass` - Documentation updates for Greengrass Local Resource Access feature +* `Aws\Inspector` - inspector will return ServiceTemporarilyUnavailableException when service is under stress +* `Aws\Redshift` - When we make a new version of Amazon Redshift available, we update your cluster during its maintenance window. By selecting a maintenance track, you control whether we update your cluster with the most recent approved release, or with the previous release. The two values for maintenance track are current and trailing. If you choose the current track, your cluster is updated with the latest approved release. If you choose the trailing track, your cluster is updated with the release that was approved previously.The new API operation for managing maintenance tracks for a cluster is DescribeClusterTracks. In addition, the following API operations have new MaintenanceTrackName parameters: Cluster, PendingModifiedValues, ModifyCluster, RestoreFromClusterSnapshot, CreateCluster, Snapshot +* `Aws\SSM` - This release updates AWS Systems Manager APIs to allow customers to attach labels to history parameter records and reference history parameter records via labels. It also adds Parameter Store integration with AWS Secrets Manager to allow referencing and retrieving AWS Secrets Manager's secrets from Parameter Store. + +## 3.63.7 - 2018-07-25 + +* `Aws\EC2` - R5 is the successor to R4 in EC2's memory-optimized instance family. R5d is a variant of R5 that has local NVMe SSD. Z1d instances deliver both high compute and high memory. Z1d instances use custom Intel Xeon Scalable Processors running at up to 4.0 GHz, powered by sustained all-core Turbo Boost. They are available in 6 sizes, with up to 48 vCPUs, 384 GiB of memory, and 1.8 TB of local NVMe storage. +* `Aws\ECS` - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for private registry authentication using AWS Secrets Manager. With private registry authentication, private Docker images can be used in a task definition. +* `Aws\ElasticLoadBalancingv2` - We are introducing two new actions in Application Load Balancer. Redirects and Fixed Response. These features will allow you to improve user experience and security posture. By using redirect actions in your Application Load Balancer, you can improve the security of your user requests and by using fixed-response, you can enhance the customer experience by displaying branded error pages during application maintenance or outages. + +## 3.63.6 - 2018-07-24 + +* `Aws\DynamoDB` - With this SDK update, APIs UpdateGlobalTableSettings and DescribeGlobalTableSettings now allow consistently configuring AutoScaling settings for a DynamoDB global table. Previously, they would only allow consistently setting IOPS. Now new APIs are being released, existing APIs are being extended. + +## 3.63.5 - 2018-07-20 + +* `Aws\ConfigService` - Setting internal length limits on resourceId for APIs. +* `Aws\DLM` - Update documentation for Amazon Data Lifecycle Manager. + +## 3.63.4 - 2018-07-19 + +* `Aws\MediaPackage` - Adds support for DASH OriginEnpoints with multiple media presentation description periods triggered by presence of SCTE-35 ad markers in Channel input streams. + +## 3.63.3 - 2018-07-18 + +* `Aws\IoTAnalytics` - This change allows publishing of channel/datastore size as part of the describe-channel/describe-datastore APIs. We introduce an optional boolean parameter 'includeStatistics' in the Describe request. If the user sets this parameter to true, the describe response will return the resource size and timestamp at which the size was recorded. If the parameter is set to false, the size won't be computed or returned. + +## 3.63.2 - 2018-07-17 + +* `Aws\Comprehend` - This release gives customers the ability to tokenize (find word boundaries) text and for each word provide a label for the part of speech, using the DetectSyntax operation. This API is useful to analyze text for specific conditions like for example finding nouns and the correlating adjectives to understand customer feedback. +* `Aws\Polly` - Amazon Polly adds new API for asynchronous synthesis to S3 +* `Aws\SageMaker` - Amazon SageMaker has added the capability for customers to run fully-managed, high-throughput batch transform machine learning models with a simple API call. Batch Transform is ideal for high-throughput workloads and predictions in non-real-time scenarios where data is accumulated over a period of time for offline processing. +* `Aws\Snowball` - AWS Snowball Edge announces the availability of Amazon EC2 compute instances that run on the device. AWS Snowball Edge is a 100-TB ruggedized device built to transfer data into and out of AWS with optional support for local Lambda-based compute functions. With this feature, developers and administrators can run their EC2-based applications on the device providing them with an end to end vertically integrated AWS experience. Designed for data pre-processing, compression, machine learning, and data collection applications, these new instances, called SBE1 instances, feature 1.8 GHz Intel Xeon D processors up to 16 vCPUs, and 32 GB of memory. The SBE1 instance type is available in four sizes and multiple instances can be run on the device at the same time. Customers can now run compute instances using the same Amazon Machine Images (AMIs) that are used in Amazon EC2. + +## 3.63.1 - 2018-07-13 + +* `Aws\AppStream` - This API update adds support for sharing AppStream images across AWS accounts within the same region. +* `Aws\KinesisVideo` - Adds support for HLS video playback of Kinesis Video streams using the KinesisVideo client by including "GET_HLS_STREAMING_SESSION_URL" as an additional APIName parameter in the GetDataEndpoint input. +* `Aws\KinesisVideoArchivedMedia` - Adds support for HLS video playback of Kinesis Video streams by providing the GetHLSStreamingSessionURL function in the KinesisVideoArchivedMedia client. + +## 3.63.0 - 2018-07-12 + +* `Aws\AppSync` - This release adds support for configuring HTTP endpoints as data sources for your AWS AppSync GraphQL API. +* `Aws\CodeBuild` - Update CodeBuild CreateProject API - serviceRole is a required input +* `Aws\DLM` - Amazon Data Lifecycle Manager (DLM) for EBS Snapshots provides a simple, automated way to back up data stored on Amazon EBS volumes. You can define backup and retention schedules for EBS snapshots by creating lifecycle policies based on tags. With this feature, you no longer have to rely on custom scripts to create and manage your backups. This feature is now available in the US East (N. Virginia), US West (Oregon), and Europe (Ireland) AWS regions at no additional cost. +* `Aws\EFS` - Amazon EFS now allows you to instantly provision the throughput required for your applications independent of the amount of data stored in your file system, allowing you to optimize throughput for your applications performance needs. Starting today, you can provision the throughput your applications require quickly with a few simple steps using AWS Console, AWS CLI or AWS API to achieve consistent performance. +* `Aws\EMR` - Documentation updates for EMR. +* `Aws\IAM` - SDK release to support IAM delegated administrator feature. The feature lets customers attach permissions boundary to IAM principals. The IAM principals cannot operate exceeding the permission specified in permissions boundary. + +## 3.62.14 - 2018-07-11 + +* `Aws\APIGateway` - Support for fine grain throttling for API gateway. +* `Aws\CostExplorer` - Starting today, you can access custom Reserved Instance (RI) purchase recommendations for your Amazon Redshift, Amazon ElastiCache, and Amazon Elasticsearch reservations via AWS Cost Explorer API, in addition to accessing RI purchase recommendations for your Amazon EC2 and Amazon RDS reservations. +* `Aws\S3` - S3 Select support for BZIP2 compressed input files +* `Aws\SSM` - Support Conditional Branching OnFailure for SSM Automation +* `Aws\SageMaker` - SageMaker has added support for FRA and SYD regions. + +## 3.62.13 - 2018-07-10 + +* `Aws\AppStream` - This API update adds pagination to the DescribeImages API to support future features and enhancements. +* `Aws\CodeBuild` - API changes to CodeBuild service, support report build status for Github sources +* `Aws\EC2` - Support CpuOptions field in Launch Template data and allow Launch Template name to contain hyphen. +* `Aws\Glue` - AWS Glue adds the ability to crawl DynamoDB tables. +* `Aws\OpsWorks` - Documentation updates for AWS OpsWorks Stacks. + +## 3.62.12 - 2018-07-10 + +* `Aws\ApplicationAutoScaling` - Documentation updates for application-autoscaling + +## 3.62.11 - 2018-07-09 + +* `Aws\ApplicationAutoScaling` - The release adds support for custom resource auto scaling. +* `Aws\CostExplorer` - AWS Cost Explorer provides you with Reserved Instance (RI) purchase recommendations based on your total cross-account Amazon EC2 and Amazon RDS usage. Starting today, linked accounts can also access custom RI purchase recommendations for specific linked accounts directly via AWS Cost Explorer API. +* `Aws\DatabaseMigrationService` - Added support for DmsTransfer endpoint type and support for re-validate option in table reload API. +* `Aws\Lambda` - Add support for .NET Core 2.1 to Lambda. +* `Aws\TranscribeService` - You can now specify an Amazon S3 output bucket to store the transcription of your audio file when you call the StartTranscriptionJob operation. + +## 3.62.10 - 2018-07-06 + +* `Aws\MediaConvert` - This release adds support for the following 1) users can specify tags to be attached to queues, presets, and templates during creation of those resources on MediaConvert. 2) users can now view the count of jobs in submitted state and in progressing state on a per queue basis. +* `Aws\ServerlessApplicationRepository` - Added required fields and documentation updates for AWS Serverless Application Repository. + +## 3.62.9 - 2018-07-05 + +* `Aws\Pinpoint` - This release of the Amazon Pinpoint SDK adds the ability to create complex segments and validate phone numbers for SMS messages. It also adds the ability to get or delete endpoints based on user IDs, remove attributes from endpoints, and list the defined channels for an app. +* `Aws\SageMaker` - Amazon SageMaker NotebookInstances supports 'Updating' as a NotebookInstanceStatus. In addition, DescribeEndpointOutput now includes Docker repository digest of deployed Model images. + +## 3.62.8 - 2018-07-03 + +* `Aws\ACM` - Adds a "CertificateValidated" waiter to AWS Certificate Manager clients, which polls on a new certificate's validation state. +* `Aws\EC2` - Added support for customers to tag EC2 Dedicated Hosts +* `Aws\Lambda` - General availability of AWS Lambda in the China Northwest (cn-northwest-1) region. For more information, see the AWS Lambda developer guide. +* `Aws\Redshift` - Feature 1 - On-demand cluster release version - When Amazon Redshift releases a new cluster version, you can choose to upgrade to that version immediately instead of waiting until your next maintenance window. You can also choose to roll back to a previous version. The two new APIs added for managing cluster release version are - ModifyClusterDbRevision, DescribeClusterDbRevisions. Feature 2 - Upgradeable reserved instance - You can now exchange one Reserved Instance for a new Reserved Instance with no changes to the terms of your existing Reserved Instance (term, payment type, or number of nodes). The two new APIs added for managing these upgrades are - AcceptReservedNodeExchange, GetReservedNodeExchangeOfferings. + +## 3.62.7 - 2018-07-02 + +* `Aws\SSM` - Execution History and StartAssociationOnce release for State Manager. Users now have the ability to view association execution history with DescribeAssociationExecutions and DescribeAssociationExecutionTargets. Users can also execute an association by calling StartAssociationOnce. + +## 3.62.6 - 2018-06-29 + +* `Aws\SecretsManager` - New SDK code snippet examples for the new APIs released for the Resource-based Policy support in Secrets Manager + +## 3.62.5 - 2018-06-28 + +* `Aws\ElasticBeanstalk` - Elastic Beanstalk adds "Suspended" health status to the EnvironmentHealthStatus enum type and updates document. +* `Aws\Lambda` - Support for SQS as an event source. +* `Aws\StorageGateway` - AWS Storage Gateway now enables you to use Server Message Block (SMB) protocol to store and access objects in Amazon Simple Storage Service (S3). + +## 3.62.4 - 2018-06-27 + +* `Aws\CloudFront` - Unpublish delete-service-linked-role API. +* `Aws\CodePipeline` - UpdatePipeline may now throw a LimitExceededException when adding or updating Source Actions that use periodic checks for change detection +* `Aws\Comprehend` - This release gives customers the option to batch process a set of documents stored within an S3 bucket in addition to the existing synchronous nature of the current Comprehend API. +* `Aws\SageMaker` - SageMaker has added support for the Asia Pacific (Seoul) region. +* `Aws\SecretsManager` - Documentation updates for secretsmanager + +## 3.62.3 - 2018-06-26 + +* `Aws\Inspector` - Introduce four new APIs to view and preview Exclusions. Exclusions show which intended security checks are excluded from an assessment, along with reasons and recommendations to fix. The APIs are CreateExclusionsPreview, GetExclusionsPreview, ListExclusions, and DescribeExclusions. +* `Aws\S3` - Add AllowQuotedRecordDelimiter to Amazon S3 Select API. Please refer to https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html for usage details. +* `Aws\SecretsManager` - This release adds support for resource-based policies that attach directly to your secrets. These policies provide an additional way to control who can access your secrets and what they can do with them. For more information, see https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-based-policies.html in the Secrets Manager User Guide. + +## 3.62.2 - 2018-06-22 + +* `Aws\AlexaForBusiness` - Introduce DeviceNotRegisteredException for AWSMoneypenny +* `Aws\AppStream` - This API update enables customers to find their VPC private IP address and ENI ID associated with AppStream streaming sessions. +* `Aws\Translate` - General availability release of Amazon Translate in the GovCloud West (us-gov-west-1) region. For more information, see the Amazon Translate developer guide. + +## 3.62.1 - 2018-06-21 + +* `Aws\CloudDirectory` - SDK release to support Flexible Schema initiative being carried out by Amazon Cloud Directory. This feature lets customers using new capabilities like: variant typed attributes, dynamic facets and AWS managed Cloud Directory schemas. + +## 3.62.0 - 2018-06-21 + +* `Aws\Macie` - Amazon Macie is a security service that uses machine learning to automatically discover, classify, and protect sensitive data in AWS. With this release, we are launching the following Macie HTTPS API operations: AssociateMemberAccount, AssociateS3Resources, DisassociateMemberAccount, DisassociateS3Resources, ListMemberAccounts, ListS3Resources, and UpdateS3Resources. With these API operations you can issue HTTPS requests directly to the service. +* `Aws\Neptune` - Deprecates the PubliclyAccessible parameter that is not supported by Amazon Neptune. +* `Aws\SSM` - Adds Amazon Linux 2 support to Patch Manager + +## 3.61.10 - 2018-06-20 + +* `Aws\ACMPCA` - CA Restore is a new feature within AWS Certificate Manager Private Certificate Authority (ACM PCA) that allows you to restore a private certificate authority that has been deleted. When you issue the DeleteCertificateAuthority call, you can now specify the number of days (7-30, with 30 being the default) in which the private certificate authority will remain in the DELETED state. During this time, the private certificate authority can be restored with the RestoreCertificateAuthority API call and then be returned to the PENDING_CERTIFICATE or DISABLED state, depending upon the state prior to deletion. Summary of API Changes: 1). Added RestoreCertificateAuthority API call; 2). Added optional PermanentDeletionTimeInDays parameter to DeleteCertificateAuthority API call. If this parameter is not specified, the DeleteCertificateAuthority API call will use a 30 day restore period as default. +* `Aws\MediaLive` - AWS Elemental MediaLive now makes Reserved Outputs and Inputs available through the AWS Management Console and API. You can reserve outputs and inputs with a 12 month commitment in exchange for discounted hourly rates. Pricing is available at https://aws.amazon.com/medialive/pricing/ +* `Aws\RDS` - This release adds a new parameter to specify the retention period for Performance Insights data for RDS instances. You can either choose 7 days (default) or 731 days. For more information, see Amazon RDS Documentation. + +## 3.61.9 - 2018-06-19 + +* `Aws\Aws\Api\Service` - Added a getter for the Service ID property. +* `Aws\Rekognition` - Documentation updates for rekognition + +## 3.61.8 - 2018-06-15 + +* `Aws\Aws\Signature` - Added the ability for signatures to be generated off of \DateTimeInterface objects that are not based on \DateTime. +* `Aws\MediaConvert` - This release adds language code support according to the ISO-639-3 standard. Custom 3-character language codes are now supported on input and output for both audio and captions. + +## 3.61.7 - 2018-06-14 + +* `Aws\APIGateway` - Support for PRIVATE endpoint configuration type +* `Aws\DynamoDB` - Added two new fields SSEType and KMSMasterKeyArn to SSEDescription block in describe-table output. +* `Aws\IoTAnalytics` - With this release, AWS IoT Analytics allows you to tag resources. Tags are metadata that you can create and use to manage your IoT Analytics resources. For more information about tagging, see AWS Tagging Strategies. For technical documentation, look for the tagging operations in the AWS IoT Analytics API reference or User Guide. + +## 3.61.6 - 2018-06-13 + +* `Aws\CloudHSMV2` - We are launching CloudHSMv2 in LHR (eu-west-2). +* `Aws\Inspector` - Releases Amazon Inspector, a security assessment service, to the AWS GovCloud (US) region. +* `Aws\SSM` - Added support for new parameter, CloudWatchOutputConfig, for SendCommand API. Users can now have RunCommand output sent to CloudWatchLogs. +* `Aws\ServiceCatalog` - Introduced new length limitations for few of the product fields. + +## 3.61.5 - 2018-06-12 + +* `Aws\DeviceFarm` - Adding VPCEndpoint support for Remote access. Allows customers to be able to access their private endpoints/services running in their VPC during remote access. +* `Aws\ECS` - Introduces daemon scheduling capability to deploy one task per instance on selected instances in a cluster. Adds a "force" flag to the DeleteService API to delete a service without requiring to scale down the number of tasks to zero. + +## 3.61.4 - 2018-06-11 + +* `Aws\CloudDirectory` - Amazon Cloud Directory now supports optional attributes on Typed Links, giving users the ability to associate and manage data on Typed Links. +* `Aws\RDS` - Changed lists of valid EngineVersion values to links to the RDS User Guide. +* `Aws\StorageGateway` - AWS Storage Gateway now enables you to create cached volumes and tapes with AWS KMS support. + +## 3.61.3 - 2018-06-08 + +* `Aws\MediaTailor` - Fixes a bug in the request URIs for MediaTailor PlaybackConfiguration operations. + +## 3.61.2 - 2018-06-07 + +* `Aws\MediaLive` - AWS Elemental MediaLive now makes channel log information available through Amazon CloudWatch Logs. You can set up each MediaLive channel with a logging level; when the channel is run, logs will automatically be published to your account on Amazon CloudWatch Logs + +## 3.61.1 - 2018-06-05 + +* `Aws\CostExplorer` - Cost Explorer API is providing programmatic access to RI saving metrics to enable customers to optimize their reservations. +* `Aws\Polly` - Amazon Polly adds new French voice - "Lea" +* `Aws\RDS` - This release adds customizable processor features for RDS instances. +* `Aws\SecretsManager` - Documentation updates for secretsmanager +* `Aws\Shield` - DDoS Response Team access management for AWS Shield + +## 3.61.0 - 2018-06-04 + +* `Aws\AppStream` - Amazon AppStream 2.0 adds support for Google Drive for G Suite. With this feature, customers will be able to connect their G Suite accounts with AppStream 2.0 and enable Google Drive access for an AppStream 2.0 stack. Users of the stack can then link their Google Drive using their G Suite login credentials and use their existing files stored in Drive with their AppStream 2.0 applications. File changes will be synced automatically to Google cloud. +* `Aws\EC2` - You are now able to use instance storage (up to 3600 GB of NVMe based SSD) on M5 instances, the next generation of EC2's General Purpose instances in us-east-1, us-west-2, us-east-2, eu-west-1 and ca-central-1. M5 instances offer up to 96 vCPUs, 384 GiB of DDR4 instance memory, 25 Gbps in Network bandwidth and improved EBS and Networking bandwidth on smaller instance sizes and provide a balance of compute, memory and network resources for many applications. +* `Aws\EKS` - Amazon Elastic Container Service for Kubernetes (Amazon EKS) is a fully managed service that makes it easy to deploy, manage, and scale containerized applications using Kubernetes on AWS. Amazon EKS runs the Kubernetes control plane for you across multiple AWS availability zones to eliminate a single point of failure. Amazon EKS is certified Kubernetes conformant so you can use existing tooling and plugins from partners and the Kubernetes community. Applications running on any standard Kubernetes environment are fully compatible and can be easily migrated to Amazon EKS. +* `Aws\MediaConvert` - This release adds the support for Common Media Application Format (CMAF) fragmented outputs, RF64 WAV audio output format, and HEV1 or HEVC1 MP4 packaging types when using HEVC in DASH or CMAF outputs. +* `Aws\MigrationHub` - Documentation updates for AWS Migration Hub +* `Aws\SageMaker` - Amazon SageMaker has added the ability to run hyperparameter tuning jobs. A hyperparameter tuning job will create and evaluate multiple training jobs while tuning algorithm hyperparameters, to optimize a customer specified objective metric. + +## 3.60.0 - 2018-06-01 + +* `Aws\DirectoryService` - Added ResetUserPassword API. Customers can now reset their users' passwords without providing the old passwords in Simple AD and Microsoft AD. +* `Aws\IoT` - We are releasing force CancelJob and CancelJobExecution functionalities to customers. +* `Aws\MediaTailor` - AWS Elemental MediaTailor is a personalization and monetization service that allows scalable server-side ad insertion. The service enables you to serve targeted ads to viewers while maintaining broadcast quality in over-the-top (OTT) video applications. This SDK allows user access to the AWS Elemental MediaTailor configuration interface. +* `Aws\Redshift` - Documentation updates for redshift +* `Aws\SNS` - The SNS Subscribe API has been updated with two new optional parameters: Attributes and ReturnSubscriptionArn. Attributes is a map of subscription attributes which can be one or more of: FilterPolicy, DeliveryPolicy, and RawMessageDelivery. ReturnSubscriptionArn is a boolean parameter that overrides the default behavior of returning "pending confirmation" for subscriptions that require confirmation instead of returning the subscription ARN. +* `Aws\SageMaker` - SageMaker has added support for the Asia Pacific (Tokyo) region. + +## 3.59.0 - 2018-05-31 + +* `Aws\ElasticLoadBalancingv2` - This release of Elastic Load Balancing introduces user authentication on Application Load Balancer. +* `Aws\Neptune` - Amazon Neptune is a fast, reliable graph database service that makes it easy to build and run applications that work with highly connected datasets. Neptune supports popular graph models Property Graph and W3C's Resource Description Frame (RDF), and their respective query languages Apache TinkerPop Gremlin 3.3.2 and SPARQL 1.1. + +## 3.58.0 - 2018-05-29 + +* `Aws\PI` - Performance Insights is a feature of Amazon Relational Database Service (RDS) that helps you quickly assess the load on your database, and determine when and where to take action. You can use the SDK to retrieve Performance Insights data and integrate your monitoring solutions. + +## 3.57.1 - 2018-05-25 + +* `Aws\AppStream` - This API update enables customers to control whether users can transfer data between their local devices and their streaming applications through file uploads and downloads, clipboard operations, or printing to local devices +* `Aws\ConfigService` - AWS Config adds support for retention period, allowing you to specify a retention period for your AWS Config configuration items. +* `Aws\Glue` - AWS Glue now sends a delay notification to Amazon CloudWatch Events when an ETL job runs longer than the specified delay notification threshold. +* `Aws\IoT` - We are exposing DELETION_IN_PROGRESS as a new job status in regards to the release of DeleteJob API. + +## 3.57.0 - 2018-05-24 + +* `Aws\CodeBuild` - AWS CodeBuild Adds Support for Windows Builds. +* `Aws\Credentials\EcsCredentialProvider` - Disables proxies on EcsCredentialProvider credential lookups. +* `Aws\ElasticLoadBalancingv2` - Updated elasticloadbalancingV2 documentation with slow start mode details. The slow start mode can be used to gradually increase the number of requests forwarded by a load balancer to a newly added target in a target group. It provides a new target an opportunity to warm up before it can handle its fair share of requests received from the load balancer. Slow start mode is disabled by default and can be enabled on a per target group basis. +* `Aws\RDS` - This release adds CloudWatch Logs integration capabilities to RDS Aurora MySQL clusters +* `Aws\SecretsManager` - Documentation updates for secretsmanager +* `Aws\Test\S3` - Adds compliance tests for S3 addressing. + +## 3.56.6 - 2018-05-22 + +* `Aws\ECS` - Amazon Elastic Container Service (ECS) adds service discovery for services that use host or bridged network mode. ECS can now also register instance IPs for active tasks using bridged and host networking with Route 53, making them available via DNS. +* `Aws\Inspector` - We are launching the ability to target all EC2 instances. With this launch, resourceGroupArn is now optional for CreateAssessmentTarget and UpdateAssessmentTarget. If resourceGroupArn is not specified, all EC2 instances in the account in the AWS region are included in the assessment target. + +## 3.56.5 - 2018-05-21 + +* `Aws\CloudFormation` - 1) Filtered Update for StackSet based on Accounts and Regions: This feature will allow flexibility for the customers to roll out updates on a StackSet based on specific Accounts and Regions. 2) Support for customized ExecutionRoleName: This feature will allow customers to attach ExecutionRoleName to the StackSet thus ensuring more security and controlling the behavior of any AWS resources in the target accounts. + +## 3.56.4 - 2018-05-18 + +* `Aws\IoT` - We are releasing DeleteJob and DeleteJobExecution APIs to allow customer to delete resources created using AWS IoT Jobs. +* `Aws\SES` - Fixed a broken link in the documentation for S3Action. + +## 3.56.3 - 2018-05-17 + +* `Aws\CodeDeploy` - Documentation updates for codedeploy +* `Aws\CognitoIdentityProvider` - Amazon Cognito User Pools now supports federation for users to sign up and sign in with any identity provider following the OpenID Connect standard. Amazon Cognito User Pools now returns the User Pool's Amazon Resource Name (ARN) from the CreateUserPool, UpdateUserPool, and DescribeUserPool APIs. +* `Aws\EC2` - You are now able to use instance storage (up to 1800 GB of NVMe based SSD) on C5 instances, the next generation of EC2's compute optimized instances in us-east-1, us-west-2, us-east-2, eu-west-1 and ca-central-1. C5 instances offer up to 72 vCPUs, 144 GiB of DDR4 instance memory, 25 Gbps in Network bandwidth and improved EBS and Networking bandwidth on smaller instance sizes to deliver improved performance for compute-intensive workloads.You can now run bare metal workloads on EC2 with i3.metal instances. As a new instance size belonging to the I3 instance family, i3.metal instances have the same characteristics as other instances in the family, including NVMe SSD-backed instance storage optimized for low latency, very high random I/O performance, and high sequential read throughput. I3.metal instances are powered by 2.3 GHz Intel Xeon processors, offering 36 hyper-threaded cores (72 logical processors), 512 GiB of memory, and 15.2 TB of NVMe SSD-backed instance storage. These instances deliver high networking throughput and lower latency with up to 25 Gbps of aggregate network bandwidth using Elastic Network Adapter (ENA)-based Enhanced Networking. + +## 3.56.2 - 2018-05-16 + +* `Aws\SecretsManager` - Documentation updates for secretsmanager +* `Aws\ServiceCatalog` - Users can now pass a new option to ListAcceptedPortfolioShares called portfolio-share-type with a value of AWS_SERVICECATALOG in order to access Getting Started Portfolios that contain selected products representing common customer use cases. + +## 3.56.1 - 2018-05-15 + +* `Aws\ConfigService` - Update ResourceType enum with values for XRay resource + +## 3.56.0 - 2018-05-14 + +* `Aws\CodeBuild` - Adding support for more override fields for StartBuild API, add support for idempotency token field for StartBuild API in AWS CodeBuild. +* `Aws\IoT1ClickDevicesService` - AWS IoT 1-Click makes it easy for customers to incorporate simple ready-to-use IoT devices into their workflows. These devices can trigger AWS Lambda functions that implement business logic. In order to build applications using AWS IoT 1-Click devices, programmers can use the AWS IoT 1-Click Devices API and the AWS IoT 1-Click Projects API. Learn more at https://aws.amazon.com/documentation/iot-1-click/ +* `Aws\IoT1ClickProjects` - AWS IoT 1-Click makes it easy for customers to incorporate simple ready-to-use IoT devices into their workflows. These devices can trigger AWS Lambda functions that implement business logic. In order to build applications using AWS IoT 1-Click devices, programmers can use the AWS IoT 1-Click Devices API and the AWS IoT 1-Click Projects API. Learn more at https://aws.amazon.com/documentation/iot-1-click/. +* `Aws\Organizations` - Documentation updates for organizations + +## 3.55.12 - 2018-05-10 + +* `Aws\Firehose` - With this release, Amazon Kinesis Data Firehose can convert the format of your input data from JSON to Apache Parquet or Apache ORC before storing the data in Amazon S3. Parquet and ORC are columnar data formats that save space and enable faster queries compared to row-oriented formats like JSON. + +## 3.55.11 - 2018-05-10 + +* `Aws\GameLift` - AutoScaling Target Tracking scaling simplification along with StartFleetActions and StopFleetActions APIs to suspend and resume automatic scaling at will. + +## 3.55.10 - 2018-05-10 + +* `Aws\Budgets` - Updating the regex for the NumericValue fields. +* `Aws\EC2` - Enable support for latest flag with Get Console Output +* `Aws\IotDataPlane` - With this release, we're adding support for ap-south-1 AWS region. +* `Aws\RDS` - Changes to support the Aurora MySQL Backtrack feature. + +## 3.55.9 - 2018-05-08 + +* `Aws\EC2` - Enable support for specifying CPU options during instance launch. +* `Aws\Lightsail` - Lightsail is now available in regions eu-west-3, ap-northeast-2 and ca-central-1. +* `Aws\RDS` - Correction to the documentation about copying unencrypted snapshots. + +## 3.55.8 - 2018-05-07 + +* `Aws\AlexaForBusiness` - This release adds the new Device status "DEREGISTERED". This release also adds DEVICE_STATUS as the new DeviceEventType. +* `Aws\Budgets` - "With this release, customers can use AWS Budgets to monitor how much of their Amazon EC2, Amazon RDS, Amazon Redshift, and Amazon ElastiCache instance usage is covered by reservations, and receive alerts when their coverage falls below the threshold they define." +* `Aws\ElasticsearchService` - This change brings support for Reserved Instances to AWS Elasticsearch. +* `Aws\S3` - Added BytesReturned details for Progress and Stats Events for Amazon S3 Select . + +## 3.55.7 - 2018-05-04 + +* `Aws\GuardDuty` - Amazon GuardDuty is adding five new API operations for creating and managing filters. For each filter, you can specify a criteria and an action. The action you specify is applied to findings that match the specified criteria. + +## 3.55.6 - 2018-05-03 + +* `Aws\AppSync` - This release adds support for authorizing your AWS AppSync endpoint with an OpenID Connect compliant service and also to configure your AWS AppSync endpoint to log requests to Amazon CloudWatch Logs. +* `Aws\ConfigService` - Update ResourceType enum with values for Lambda, ElasticBeanstalk, WAF and ElasticLoadBalancing resources +* `Aws\SecretsManager` - Documentation updates for secretsmanager +* `Aws\Test\Build\Changelog` - Add tests to validate location, naming, and JSON compilability of ChangelogDocuments. +* `Aws\WorkSpaces` - Amazon WorkSpaces is now available in ca-central-1 + +## 3.55.5 - 2018-05-02 + +* `Aws\ACM` - Documentation updates for acm +* `Aws\CodePipeline` - Added support for webhooks with accompanying definitions as needed in the AWS CodePipeline API Guide. +* `Aws\EC2` - Amazon EC2 Fleet is a new feature that simplifies the provisioning of Amazon EC2 capacity across different EC2 instance types, Availability Zones, and the On-Demand, Reserved Instance, and Spot Instance purchase models. With a single API call, you can now provision capacity to achieve desired scale, performance, and cost. +* `Aws\SSM` - Added support for new parameter, DocumentVersion, for SendCommand API. Users can now specify version of SSM document to be executed on the target(s). +* `Aws\Test\Integ` - Adds the ability for Integ/Smoke tests to check status codes. Updates ECS Handling errors to use a status code check. + +## 3.55.4 - 2018-04-30 + +* `Aws\AlexaForBusiness` - Adds ListDeviceEvents API to get a paginated list of device events (such as ConnectionStatus). This release also adds ConnectionStatus field to GetDevice and SearchDevices API. +* `Aws\DynamoDB` - Adds two new APIs UpdateGlobalTableSettings and DescribeGlobalTableSettings. This update introduces new constraints in the CreateGlobalTable and UpdateGlobalTable APIs . Tables must have the same write capacity units. If Global Secondary Indexes exist then they must have the same write capacity units and key schema. +* `Aws\GuardDuty` - You can disable the email notification when inviting GuardDuty members using the disableEmailNotification parameter in the InviteMembers operation. +* `Aws\Route53Domains` - This release adds a SubmittedSince attribute to the ListOperations API, so you can list operations that were submitted after a specified date and time. +* `Aws\SageMaker` - SageMaker has added support for VPC configuration for both Endpoints and Training Jobs. This allows you to connect from the instances running the Endpoint or Training Job to your VPC and any resources reachable in the VPC rather than being restricted to resources that were internet accessible. +* `Aws\WorkSpaces` - Added new IP Access Control APIs, an API to change the state of a Workspace, and the ADMIN_MAINTENANCE WorkSpace state. With the new IP Access Control APIs, you can now create/delete IP Access Control Groups, add/delete/update rules for IP Access Control Groups, Associate/Disassociate IP Access Control Groups to/from a WorkSpaces Directory, and Describe IP Based Access Control Groups. + +## 3.55.3 - 2018-04-26 + +* `Aws\CodeCommit` - AWS CodeCommit is now available in an additional region, EU (Paris). +* `Aws\Glacier` - Documentation updates for Glacier to fix a broken link +* `Aws\SecretsManager` - Documentation updates for secretsmanager + +## 3.55.2 - 2018-04-25 + +* `Aws\CodeDeploy` - AWS CodeDeploy has a new exception that indicates when a GitHub token is not valid. +* `Aws\Rekognition` - Documentation updates for Amazon Rekognition. +* `Aws\XRay` - Added PutEncryptionConfig and GetEncryptionConfig APIs for managing data encryption settings. Use PutEncryptionConfig to configure X-Ray to use an AWS Key Management Service customer master key to encrypt trace data at rest. + +## 3.55.1 - 2018-04-24 + +* `Aws\` - Fixes docblock @param tags to reference Result class with a consistent case +* `Aws\ElasticBeanstalk` - Support tracking Elastic Beanstalk resources in AWS Config. +* `Aws\SecretsManager` - Documentation updates for secretsmanager + +## 3.55.0 - 2018-04-23 + +* `Aws\AutoScalingPlans` - The release adds the operation UpdateScalingPlan for updating a scaling plan and the support for tag filters as an application source. +* `Aws\IoT` - Add IotAnalyticsAction which sends message data to an AWS IoT Analytics channel +* `Aws\IoTAnalytics` - Introducing AWS IoT Analytics SDK. AWS IoT Analytics provides advanced data analysis for AWS IoT. It allows you to collect large amounts of device data, process messages, store them, and then query the data and run sophisticated analytics to make accurate decisions in your IoT applications and machine learning use cases. AWS IoT Analytics enables advanced data exploration through integration with Jupyter Notebooks and data visualization through integration with Amazon QuickSight. + +## 3.54.6 - 2018-04-20 + +* `Aws\Firehose` - With this release, Amazon Kinesis Data Firehose allows you to tag your delivery streams. Tags are metadata that you can create and use to manage your delivery streams. For more information about tagging, see AWS Tagging Strategies. For technical documentation, look for the tagging operations in the Amazon Kinesis Firehose API reference. +* `Aws\MediaLive` - With AWS Elemental MediaLive you can now output live channels as RTMP (Real-Time Messaging Protocol) and RTMPS as the encrypted version of the protocol (Secure, over SSL/TLS). RTMP is the preferred protocol for sending live streams to popular social platforms which means you can send live channel content to social and sharing platforms in a secure and reliable way while continuing to stream to your own website, app or network. + +## 3.54.5 - 2018-04-19 + +* `Aws\CloudHSMV2` - The new CloudHSM is now available in the AWS GovCloud (US). +* `Aws\CodePipeline` - Added new SourceRevision structure to Execution Summary with accompanying definitions as needed in the AWS CodePipeline API Guide. +* `Aws\CostExplorer` - Starting today, you can identify opportunities for Amazon RDS cost savings using AWS Cost Explorer's API to access your Amazon RDS Reserved Instance Purchase Recommendations +* `Aws\DeviceFarm` - Adding support for VPCEndpoint feature. Allows customers to be able to access their private endpoints/services running in their VPC during test automation. +* `Aws\EC2` - Added support for customers to see the time at which a Dedicated Host was allocated or released. +* `Aws\RDS` - The ModifyDBCluster operation now includes an EngineVersion parameter. You can use this to upgrade the engine for a clustered database. +* `Aws\SSM` - Added new APIs DeleteInventory and DescribeInventoryDeletions, for customers to delete their custom inventory data. +* `Aws\SecretsManager` - Documentation updates + +## 3.54.4 - 2018-04-10 + +* `Aws\DatabaseMigrationService` - Native Change Data Capture start point and task recovery support in Database Migration Service. +* `Aws\Glue` - "AWS Glue now supports timeout values for ETL jobs. With this release, all new ETL jobs have a default timeout value of 48 hours. AWS Glue also now supports the ability to start a schedule or job events trigger when it is created." +* `Aws\MediaPackage` - Adds a new OriginEndpoint package type CmafPackage in MediaPackage. Origin endpoints can now be configured to use the Common Media Application Format (CMAF) media streaming format. This version of CmafPackage only supports HTTP Live Streaming (HLS) manifests with fragmented MP4. +* `Aws\SSM` - Added TooManyUpdates exception for AddTagsToResource and RemoveTagsFromResource API +* `Aws\WorkMail` - Amazon WorkMail adds the ability to grant users and groups with "Full Access", "Send As" and "Send on Behalf" permissions on a given mailbox. + +## 3.54.3 - 2018-04-09 + +* `Aws\CloudDirectory` - Cloud Directory customers can fetch attributes within a facet on an object with the new GetObjectAttributes API and can fetch attributes from multiple facets or objects with the BatchGetObjectAttributes operation. + +## 3.54.2 - 2018-04-06 + +* `Aws\Batch` - Support for Timeout in SubmitJob and RegisterJobDefinition + +## 3.54.1 - 2018-04-05 + +* `Aws\SSM` - Documentation updates for ec2 + +## 3.54.0 - 2018-04-04 + +* `Aws\ACM` - AWS Certificate Manager has added support for AWS Certificate Manager Private Certificate Authority (CA). Customers can now request private certificates with the RequestCertificate API, and also export private certificates with the ExportCertificate API. +* `Aws\ACMPCA` - AWS Certificate Manager (ACM) Private Certificate Authority (CA) is a managed private CA service that helps you easily and securely manage the lifecycle of your private certificates. ACM Private CA provides you a highly-available private CA service without the upfront investment and ongoing maintenance costs of operating your own private CA. ACM Private CA extends ACM's certificate management capabilities to private certificates, enabling you to manage public and private certificates centrally. +* `Aws\CloudWatch` - The new GetMetricData API enables you to collect batch amounts of metric data and optionally perform math expressions on the data. With one GetMetricData call you can retrieve as many as 100 different metrics and a total of 100,800 data points. +* `Aws\ConfigService` - AWS Config introduces multi-account multi-region data aggregation features. Customers can create an aggregator (a new resource type) in AWS Config that collects AWS Config data from multiple source accounts and regions into an aggregator account. Customers can aggregate data from individual account(s) or an organization and multiple regions. In this release, AWS Config adds several API's for multi-account multi-region data aggregation. +* `Aws\FMS` - This release is the initial release version for AWS Firewall Manager, a new AWS service that makes it easy for customers to centrally configure WAF rules across all their resources (ALBs and CloudFront distributions) and across accounts. +* `Aws\S3` - ONEZONE_IA storage class stores object data in only one Availability Zone at a lower price than STANDARD_IA. This SDK release provides API support for this new storage class. +* `Aws\SageMaker` - SageMaker is now supporting many additional instance types in previously supported families for Notebooks, Training Jobs, and Endpoints. Training Jobs and Endpoints now support instances in the m5 family in addition to the previously supported instance families. For specific instance types supported please see the documentation for the SageMaker API. +* `Aws\SecretsManager` - AWS Secrets Manager enables you to easily create and manage the secrets that you use in your customer-facing apps. Instead of embedding credentials into your source code, you can dynamically query Secrets Manager from your app whenever you need credentials. You can automatically and frequently rotate your secrets without having to deploy updates to your apps. All secret values are encrypted when they're at rest with AWS KMS, and while they're in transit with HTTPS and TLS. +* `Aws\TranscribeService` - Amazon Transcribe is an automatic speech recognition (ASR) service that makes it easy for developers to add speech to text capability to their applications. + +## 3.53.2 - 2018-04-03 + +* `Aws\DeviceFarm` - Added Private Device Management feature. Customers can now manage their private devices efficiently - view their status, set labels and apply profiles on them. Customers can also schedule automated tests and remote access sessions on individual instances in their private device fleet. +* `Aws\Lambda` - added nodejs8.10 as a valid runtime +* `Aws\Translate` - This release increases the maximum size of input text to 5,000 bytes. Amazon Translate now supports automatic language detection of the input text. The translation models have been improved to increase accuracy. See the documentation for more information. + +## 3.53.1 - 2018-04-02 + +* `Aws\APIGateway` - Amazon API Gateway now supports resource policies for APIs making it easier to set access controls for invoking APIs. +* `Aws\CloudFront` - You can now use a new Amazon CloudFront capability called Field-Level Encryption to further enhance the security of sensitive data, such as credit card numbers or personally identifiable information (PII) like social security numbers. CloudFront's field-level encryption further encrypts sensitive data in an HTTPS form using field-specific encryption keys (which you supply) before a POST request is forwarded to your origin. This ensures that sensitive data can only be decrypted and viewed by certain components or services in your application stack. Field-level encryption is easy to setup. Simply configure the fields that have to be further encrypted by CloudFront using the public keys you specify and you can reduce attack surface for your sensitive data. +* `Aws\ElasticsearchService` - This adds Amazon Cognito authentication support to Kibana. + +## 3.53.0 - 2018-03-30 + +* `Aws\ACM` - Documentation updates for acm +* `Aws\CodeBuild` - Adding FIPS endpoint for CodeBuild service +* `Aws\Connect` - Amazon Connect is a contact center as a service (CCaS) solution that offers easy, self-service configuration and enables dynamic, personal, and natural customer engagement at any scale. With this release of the Amazon Connect SDK, Outbound APIs (StartOutboundVoiceContact, StopContact) are now generally available. This release supports CTR generation for calls generated through the new APIs. Additionally IAM permissions are supported for the new APIs. + +## 3.52.36 - 2018-03-29 + +* `Aws\AlexaForBusiness` - Adds operations for creating and managing address books of phone contacts for use in A4B managed shared devices. +* `Aws\CloudFormation` - Enabling resource level permission control for StackSets APIs. Adding support for customers to use customized AdministrationRole to create security boundaries between different users. +* `Aws\Greengrass` - Greengrass APIs now support creating Machine Learning resource types and configuring binary data as the input payload for Greengrass Lambda functions. +* `Aws\SSM` - This Patch Manager release supports creating patch baselines for CentOS. + +## 3.52.35 - 2018-03-28 + +* `Aws\GuardDuty` - Amazon GuardDuty API operations are now supported in the EU (Paris) region. +* `Aws\IAM` - Add support for Longer Role Sessions. Four APIs manage max session duration: GetRole, ListRoles, CreateRole, and the new API UpdateRole. The max session duration integer attribute is measured in seconds. +* `Aws\MTurk` - Added a new attribute "ActionsGuarded" to QualificationRequirement: This update allows MTurk Requester customers using the AWS SDK to control which Workers can see and preview their HITs. We now support hiding HITs from unqualified Workers' search results. +* `Aws\STS` - Change utilizes the Max Session Duration attribute introduced for IAM Roles and allows STS customers to request session duration up to the Max Session Duration of 12 hours from AssumeRole based APIs. +* `Aws\WorkSpaces` - Amazon Workspaces is now available in ap-northeast-2 + +## 3.52.34 - 2018-03-27 + +* `Aws\ACM` - AWS Certificate Manager has added support for customers to disable Certificate Transparency logging on a per-certificate basis. + +## 3.52.33 - 2018-03-26 + +* `Aws\DynamoDB` - Point-in-time recovery (PITR) provides continuous backups of your DynamoDB table data. With PITR, you do not have to worry about creating, maintaining, or scheduling backups. You enable PITR on your table and your backup is available for restore at any point in time from the moment you enable it, up to a maximum of the 35 preceding days. PITR provides continuous backups until you explicitly disable it. For more information, see the Amazon DynamoDB Developer Guide. + +## 3.52.32 - 2018-03-23 + +* `Aws\RDS` - Documentation updates for RDS + +## 3.52.31 - 2018-03-22 + +* `Aws\AppStream` - Feedback URL allows admins to provide a feedback link or a survey link for collecting user feedback while streaming sessions. When a feedback link is provided, streaming users will see a "Send Feedback" choice in their streaming session toolbar. On selecting this choice, user will be redirected to the link provided in a new browser tab. If a feedback link is not provided, users will not see the "Send Feedback" option. +* `Aws\CodeBuild` - Adding support for branch filtering when using webhooks with AWS CodeBuild. +* `Aws\ECS` - Amazon Elastic Container Service (ECS) now includes integrated Service Discovery using Route 53 Auto Naming. Customers can now specify a Route 53 Auto Naming service as part of an ECS service. ECS will register task IPs with Route 53, making them available via DNS in your VPC. + +## 3.52.30 - 2018-03-21 + +* `Aws\MediaPackage` - Elemental MediaPackage is now available in the ICN and GRU regions. +* `Aws\ServerlessApplicationRepository` - Documentation updates for Serverless Application Respository + +## 3.52.29 - 2018-03-20 + +* `Aws\CloudWatchEvents` - Added SQS FIFO queue target support +* `Aws\ConfigService` - AWS Config adds support for BatchGetResourceConfig API, allowing you to batch-retrieve the current state of one or more of your resources. +* `Aws\CostExplorer` - This launch will allow customers to access their Amazon EC2 Reserved Instance (RI) purchase recommendations programmatically via the AWS Cost Explorer API. +* `Aws\ECS` - Amazon ECS users can now mount a temporary volume in memory in containers and specify the shared memory that a container can use through the use of docker's 'tmpfs' and 'shm-size' features respectively. These fields can be specified under linuxParameters in ContainerDefinition in the Task Definition Template. +* `Aws\ElasticBeanstalk` - Documentation updates for the new Elastic Beanstalk API DescribeAccountAttributes. +* `Aws\Glue` - API Updates for DevEndpoint: PublicKey is now optional for CreateDevEndpoint. The new DevEndpoint field PrivateAddress will be populated for DevEndpoints associated with a VPC. +* `Aws\MediaLive` - AWS Elemental MediaLive has added support for updating Inputs and Input Security Groups. You can update Input Security Groups at any time and it will update all channels using that Input Security Group. Inputs can be updated as long as they are not attached to a currently running channel. + +## 3.52.28 - 2018-03-16 + +* `Aws\ElasticBeanstalk` - AWS Elastic Beanstalk is launching a new public API named DescribeAccountAttributes which allows customers to access account level attributes. In this release, the API will support quotas for resources such as applications, application versions, and environments. + +## 3.52.27 - 2018-03-15 + +* `Aws\Organizations` - This release adds additional reason codes to improve clarity to exceptions that can occur. +* `Aws\Pinpoint` - With this release, you can delete endpoints from your Amazon Pinpoint projects. Customers can now specify one of their leased dedicated long or short codes to send text messages. +* `Aws\SageMaker` - This release provides support for ml.p3.xlarge instance types for notebook instances. Lifecycle configuration is now available to customize your notebook instances on start; the configuration can be reused between multiple notebooks. If a notebook instance is attached to a VPC you can now opt out of internet access that by default is provided by SageMaker. + +## 3.52.26 - 2018-03-14 + +* `Aws\Lightsail` - Updates to existing Lightsail documentation + +## 3.52.25 - 2018-03-13 + +* `Aws\ServiceDiscovery` - This release adds support for custom health checks, which let you check the health of resources that aren't accessible over the internet. For example, you can use a custom health check when the instance is in an Amazon VPC. + +## 3.52.24 - 2018-03-12 + +* `Aws\ApplicationDiscoveryService` - Documentation updates for discovery +* `Aws\CloudHSMV2` - CreateCluster can now take both 8 and 17 character Subnet IDs. DeleteHsm can now take both 8 and 17 character ENI IDs. +* `Aws\IoT` - We added new fields to the response of the following APIs. (1) describe-certificate: added new generationId, customerVersion fields (2) describe-ca-certificate: added new generationId, customerVersion and lastModifiedDate fields (3) get-policy: added generationId, creationDate and lastModifiedDate fields +* `Aws\Redshift` - DescribeClusterSnapshotsMessage with ClusterExists flag returns snapshots of existing clusters. Else both existing and deleted cluster snapshots are returned + +## 3.52.23 - 2018-03-08 + +* `Aws\ECS` - Amazon Elastic Container Service (ECS) now supports container health checks. Customers can now specify a docker container health check command and parameters in their task definition. ECS will monitor, report and take scheduling action based on the health status. +* `Aws\MigrationHub` - Unused key LABEL removed from ResourceAttrbute +* `Aws\Pinpoint` - With this release, you can export endpoints from your Amazon Pinpoint projects. You can export a) all of the endpoints assigned to a project or b) the subset of endpoints assigned to a segment. +* `Aws\RDS` - Documentation updates for RDS + +## 3.52.22 - 2018-03-07 + +* `Aws\MediaLive` - Updates API to model required traits and minimum/maximum constraints. +* `Aws\S3/S3SignatureV4` - Fixes an issue that would strip a preceding slash from a key during the signing process on virtual host style pathing, resulting in an invalid signature. + +## 3.52.21 - 2018-03-06 + +* `Aws\ECS` - Documentation updates for Amazon ECS +* `Aws\RetryMiddleware` - Fixes an undefined index issue. +* `Aws\RetryMiddleware` - Retries CURLE_RECV_ERROR on all RequestException, not just ConnectException. + +## 3.52.20 - 2018-03-01 + +* `Aws\CloudWatchEvents` - Added BatchParameters to the PutTargets API +* `Aws\EC2` - Added support for modifying Placement Group association of instances via ModifyInstancePlacement API. +* `Aws\SSM` - This Inventory release supports the status message details reported by the last sync for the resource data sync API. +* `Aws\ServiceCatalog` - This release of ServiceCatalog adds the DeleteTagOption API. +* `Aws\StorageGateway` - AWS Storage Gateway (File) support for two new file share attributes are added. 1. Users can specify the S3 Canned ACL to use for new objects created in the file share. 2. Users can create file shares for requester-pays buckets. + +## 3.52.19 - 2018-02-28 + +* `Aws\ApplicationAutoScaling` - Application Auto Scaling now supports automatic scaling of SageMaker Production Variants on an Endpoint. +* `Aws\CloudFront` - Updates the `Signer` to force expire timestamps to match CloudFront required unquoted integers. + +## 3.52.18 - 2018-02-27 + +* `Aws\ECR` - Documentation updates for Amazon ECR. + +## 3.52.17 - 2018-02-26 + +* `Aws\Route53` - Added support for creating LBR rules using ap-northeast-3 region. +* `Aws\STS` - Increased SAMLAssertion parameter size from 50000 to 100000 for AWS Security Token Service AssumeRoleWithSAML API to allow customers to pass bigger SAML assertions + +## 3.52.16 - 2018-02-23 + +* `Aws\AppStream` - This API update is to enable customers to copy their Amazon AppStream 2.0 images within and between AWS Regions + +## 3.52.15 - 2018-02-22 + +* `Aws\CostExplorer` - Added GetReservationCoverage API for retrieving reservation coverage information. +* `Aws\ElasticLoadBalancingv2` - Added a new load balancer attribute related to Network Load Balancers that enables cross zone capabilities. This feature allows Network Load Balancers to distribute requests regardless of Availability Zone. + +## 3.52.14 - 2018-02-21 + +* `Aws\CodeCommit` - This release adds an API for adding a file directly to an AWS CodeCommit repository without requiring a Git client. +* `Aws\EC2` - Adds support for tagging an EBS snapshot as part of the API call that creates the EBS snapshot +* `Aws\MediaPackage` - Mediapackage expands their service to FRA and CDG regions. +* `Aws\ServerlessApplicationRepository` - Added support for delete-application API and the ability for developers to set a homepage for their application. The homepage is a URL with more information about the application, for example the location of your GitHub repository for the application. + +## 3.52.13 - 2018-02-20 + +* `Aws\AutoScaling` - Amazon EC2 Auto Scaling support for service-linked roles +* `Aws\WAF` - The new PermissionPolicy APIs in AWS WAF Regional allow customers to attach resource-based policies to their entities. +* `Aws\WAFRegional` - The new PermissionPolicy APIs in AWS WAF Regional allow customers to attach resource-based policies to their entities. + +## 3.52.12 - 2018-02-19 + +* `Aws\ConfigService` - With this release, AWS Config updated the ConfigurationItemStatus enum values. The values prior to this update did not represent appropriate values returned by GetResourceConfigHistory. You must update your code to enumerate the new enum values so this is a breaking change. To map old properties to new properties, use the following descriptions: New discovered resource - Old property: Discovered, New property: ResourceDiscovered. Updated resource - Old property: Ok, New property: OK. Deleted resource - Old property: Deleted, New property: ResourceDeleted or ResourceDeletedNotRecorded. Not-recorded resource - Old property: N/A, New property: ResourceNotRecorded or ResourceDeletedNotRecorded. + +## 3.52.11 - 2018-02-16 + +* `Aws\RDS` - Updates RDS API to indicate whether a DBEngine supports read replicas. + +## 3.52.10 - 2018-02-15 + +* `Aws\CodeStar` - Launch AWS CodeStar in the Asia Pacific Northeast 2 (ICN) region. +* `Aws\GameLift` - Updates to allow Fleets to run on On-Demand or Spot instances. +* `Aws\MediaConvert` - Nielsen ID3 tags can now be inserted into transport stream (TS) and HLS outputs. For more information on Nielsen configuration you can go to https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-nielsenconfiguration + +## 3.52.9 - 2018-02-14 + +* `Aws\AppSync` - AWS AppSync now supports for None Data Source, CreateApiKey now supports setting expiration on API keys, new API UpdateApiKey supports updating expiration on API keys. +* `Aws\LexModelBuildingService` - Amazon Lex now provides the ability to export and import your Amazon Lex chatbot definition as a JSON file. + +## 3.52.8 - 2018-02-13 + +* `Aws\Glacier` - Documentation updates for glacier +* `Aws\Route53` - Added support for creating Private Hosted Zones and metric-based healthchecks in the ap-northeast-3 region for whitelisted customers. + +## 3.52.7 - 2018-02-12 + +* `Aws\CognitoIdentityProvider` - Support for user migration using AWS Lambda trigger. Support to obtain signing certificate for user pools. +* `Aws\EC2` - Network interfaces now supply the following additional status of "associated" to better distinguish the current status. +* `Aws\GuardDuty` - Added PortProbeAction information to the Action section of the port probe-type finding. +* `Aws\KMS` - This release of AWS Key Management Service includes support for InvalidArnException in the RetireGrant API. +* `Aws\RDS` - Aurora MySQL now supports MySQL 5.7. + +## 3.52.6 - 2018-02-09 + +* `Aws\EC2` - Users can now better understand the longer ID opt-in status of their account using the two new APIs DescribeAggregateIdFormat and DescribePrincipalIdFormat +* `Aws\LexModelBuildingService` - You can now define a response for your Amazon Lex chatbot directly from the AWS console. A response consists of messages dynamically selected from a group of pre-defined messages, populated by the developer. +* `Aws\LexRuntimeService` - You can now define a response for your Amazon Lex chatbot directly from the AWS console. A response consists of messages dynamically selected from a group of pre-defined messages, populated by the developer. + +## 3.52.5 - 2018-02-08 + +* `Aws\AppStream` - Adds support for allowing customers to provide a redirect URL for a stack. Users will be redirected to the link provided by the admin at the end of their streaming session. +* `Aws\Budgets` - Making budgetLimit and timePeriod optional, and updating budgets docs. +* `Aws\DatabaseMigrationService` - This release includes the addition of two new APIs: describe replication instance task logs and reboot instance. The first allows user to see how much storage each log for a task on a given instance is occupying. The second gives users the option to reboot the application software on the instance and force a fail over for MAZ instances to test robustness of their integration with our service. +* `Aws\DirectoryService` - Updated the regex of some input parameters to support longer EC2 identifiers. +* `Aws\DynamoDB` - Amazon DynamoDB now supports server-side encryption using a default service key (alias/aws/dynamodb) from the AWS Key Management Service (KMS). AWS KMS is a service that combines secure, highly available hardware and software to provide a key management system scaled for the cloud. AWS KMS is used via the AWS Management Console or APIs to centrally create encryption keys, define the policies that control how keys can be used, and audit key usage to prove they are being used correctly. For more information, see the Amazon DynamoDB Developer Guide. +* `Aws\GameLift` - Amazon GameLift FlexMatch added the StartMatchBackfill API. This API allows developers to add new players to an existing game session using the same matchmaking rules and player data that were used to initially create the session. +* `Aws\Inspector` - We marked Inspector GA yesterday. 2/.5/18. +* `Aws\MediaLive` - AWS Elemental MediaLive has added support for updating channel settings for idle channels. You can now update channel name, channel outputs and output destinations, encoder settings, user role ARN, and input specifications. Channel settings can be updated in the console or with API calls. Please note that running channels need to be stopped before they can be updated. We've also deprecated the 'Reserved' field. +* `Aws\MediaStore` - AWS Elemental MediaStore now supports per-container CORS configuration. + +## 3.52.4 - 2018-02-06 + +* `Aws\Glue` - This new feature will now allow customers to add a customized json classifier. They can specify a json path to indicate the object, array or field of the json documents they'd like crawlers to inspect when they crawl json files. +* `Aws\SSM` - This Patch Manager release supports configuring Linux repos as part of patch baselines, controlling updates of non-OS security packages and also creating patch baselines for SUSE12 +* `Aws\ServiceCatalog` - This release of Service Catalog adds SearchProvisionedProducts API and ProvisionedProductPlan APIs. +* `Aws\ServiceDiscovery` - This release adds support for registering CNAME record types and creating Route 53 alias records that route traffic to Amazon Elastic Load Balancers using Amazon Route 53 Auto Naming APIs. + +## 3.52.3 - 2018-02-05 + +* `Aws\ACM` - Documentation updates for acm +* `Aws\Cloud9` - API usage examples for AWS Cloud9. +* `Aws\Kinesis` - Using ListShards a Kinesis Data Streams customer or client can get information about shards in a data stream (including meta-data for each shard) without obtaining data stream level information. +* `Aws\OpsWorks` - AWS OpsWorks Stacks supports EBS encryption and HDD volume types. Also, a new DescribeOperatingSystems API is available, which lists all operating systems supported by OpsWorks Stacks. + +## 3.52.2 - 2018-01-26 + +* `Aws\DeviceFarm` - Add InteractionMode in CreateRemoteAccessSession for DirectDeviceAccess feature. +* `Aws\MTurk` - Documentation updates for mturk-requester +* `Aws\MediaLive` - Add InputSpecification to CreateChannel (specification of input attributes is used for channel sizing and affects pricing); add NotFoundException to DeleteInputSecurityGroups. + +## 3.52.1 - 2018-01-25 + +* `Aws\AlexaForBusiness` - Supports new field for DeviceStatusInfo which provides details about the DeviceStatus following a DeviceSync operation. +* `Aws\Appstream` - This API update is to support Amazon AppStream 2.0's launch into the Asia Pacific (Singapore) and Asia Pacific (Sydney) regions. +* `Aws\CloudHsm` - Added service signing name. +* `Aws\CodeBuild` - Adding support for Shallow Clone and GitHub Enterprise in AWS CodeBuild. +* `Aws\GuardDuty` - Added the missing AccessKeyDetails object to the resource shape. +* `Aws\Lambda` - AWS Lambda now supports Revision ID on your function versions and aliases, to track and apply conditional updates when you are updating your function version or alias resources. +* `Aws\RetryMiddleware` - Verify we have the curl extension before retrying on the CURLE_RECV_ERROR curl const. + +## 3.52.0 - 2018-01-22 + +* `Aws\` - Retry on a set of CURLE_*_ERROR based failures. Currently, only CURLE_RECV_ERROR (errno 56) is retried. +* `Aws\Api\Parser` - Simplify return. +* `Aws\Budgets` - Add additional costTypes: IncludeDiscount, UseAmortized, to support finer control for different charges included in a cost budget. + +## 3.51.0 - 2018-01-19 + +* `Aws\Credentials` - Add support for an AWS_EC2_METADATA_DISABLED environment variable to short-circuit requests for credentials via the InstanceProfileProvider. +* `Aws\Glue` - New AWS Glue DataCatalog APIs to manage table versions and a new feature to skip archiving of the old table version when updating table. +* `Aws\TranscribeService` - Amazon Transcribe Public Preview Release + +## 3.50.0 - 2018-01-18 + +* `Aws\Rds` - Fixes a bug where DestinationRegion was not being added to automatically generated PreSignedUrl parameters for RDS operations. +* `Aws\S3` - Updates the type of the S3 Size object to long (from integer) to properly reflect objects over PHP_INT_MAX in size. This will affect ListObjects, ListObjectsV2, ListObjectVersions, and ListParts. This bug fix may be a breaking change for customers who relied on the previously PHP_INT_MAX capped behavior or on the type of the field. You may see objects at their full size, as a string, if they are over PHP_INT_MAX in size. +* `Aws\SageMaker` - CreateTrainingJob and CreateEndpointConfig now supports KMS Key for volume encryption. + +## 3.49.1 - 2018-01-17 + +* `Aws\AutoScalingPlans` - Documentation updates for autoscaling-plans +* `Aws\EC2` - Documentation updates for EC2 + +## 3.49.0 - 2018-01-16 + +* `Aws\ApplicationAutoScaling` - Application Auto Scaling is adding support for Target Tracking Scaling for ECS services. +* `Aws\AutoScalingPlans` - AWS Auto Scaling enables you to quickly discover all of the scalable resources underlying your application and set up application scaling in minutes using built-in scaling recommendations. +* `Aws\RDS` - With this release you can now integrate RDS DB instances with CloudWatch Logs. We have added parameters to the operations for creating and modifying DB instances (for example CreateDBInstance) to allow you to take advantage of this capability through the CLI and API. Once you enable this feature, a stream of log events will publish to CloudWatch Logs for each log type you enable. +* `Aws\WorkSpaces` - Amazon Workspaces is now available in sa-east-1 + +## 3.48.14 - 2018-01-15 + +* `Aws\Lambda` - Support for creating Lambda Functions using 'dotnetcore2.0' and 'go1.x'. + +## 3.48.13 - 2018-01-12 + +* `Aws\Glue` - Support is added to generate ETL scripts in Scala which can now be run by AWS Glue ETL jobs. In addition, the trigger API now supports firing when any conditions are met (in addition to all conditions). Also, jobs can be triggered based on a "failed" or "stopped" job run (in addition to a "succeeded" job run). + +## 3.48.12 - 2018-01-11 + +* `Aws\Aws` - Fix misspelling class PresignUrlMiddleware. +* `Aws\ElasticLoadBalancing` - Added OperationNotPermittedException to indicate that you cannot create a classic load balancer while deleting the Elastic Load Balancing service-linked role. +* `Aws\ElasticLoadBalancingv2` - Added OperationNotPermittedException to indicate that you cannot create a load balancer while deleting the Elastic Load Balancing service-linked role. +* `Aws\RDS` - Read Replicas for Amazon RDS for MySQL, MariaDB, and PostgreSQL now support Multi-AZ deployments.Amazon RDS Read Replicas enable you to create one or more read-only copies of your database instance within the same AWS Region or in a different AWS Region. Updates made to the source database are asynchronously copied to the Read Replicas. In addition to providing scalability for read-heavy workloads, you can choose to promote a Read Replica to become standalone a DB instance when needed.Amazon RDS Multi-AZ Deployments provide enhanced availability for database instances within a single AWS Region. With Multi-AZ, your data is synchronously replicated to a standby in a different Availability Zone (AZ). In case of an infrastructure failure, Amazon RDS performs an automatic failover to the standby, minimizing disruption to your applications.You can now combine Read Replicas with Multi-AZ as part of a disaster recovery strategy for your production databases. A well-designed and tested plan is critical for maintaining business continuity after a disaster. Since Read Replicas can also be created in different regions than the source database, your Read Replica can be promoted to become the new production database in case of a regional disruption.You can also combine Read Replicas with Multi-AZ for your database engine upgrade process. You can create a Read Replica of your production database instance and upgrade it to a new database engine version. When the upgrade is complete, you can stop applications, promote the Read Replica to a standalone database instance and switch over your applications. Since the database instance is already a Multi-AZ deployment, no additional steps are needed.For more information, see the Amazon RDS User Guide. +* `Aws\SSM` - Updates documentation for the HierarchyLevelLimitExceededException error. + +## 3.48.11 - 2018-01-09 + +* `Aws\KMS` - Documentation updates for AWS KMS + +## 3.48.10 - 2018-01-09 + +* `Aws\DirectoryService` - On October 24 we introduced AWS Directory Service for Microsoft Active Directory (Standard Edition), also known as AWS Microsoft AD (Standard Edition), which is a managed Microsoft Active Directory (AD) that is optimized for small and midsize businesses (SMBs). With this SDK release, you can now create an AWS Microsoft AD directory using API. This enables you to run typical SMB workloads using a cost-effective, highly available, and managed Microsoft AD in the AWS Cloud. + +## 3.48.9 - 2018-01-08 + +* `Aws\ApplicationDiscoveryService` - Documentation updates for AWS Application Discovery Service. +* `Aws\CodeDeploy` - The AWS CodeDeploy API was updated to support DeleteGitHubAccountToken, a new method that deletes a GitHub account connection. +* `Aws\Route53` - This release adds an exception to the CreateTrafficPolicyVersion API operation. + +## 3.48.8 - 2018-01-05 + +* `Aws\Inspector` - Added 2 new attributes to the DescribeAssessmentTemplate response, indicating the total number of assessment runs and last assessment run ARN (if present.) +* `Aws\SSM` - Documentation updates for ssm +* `Aws\Snowball` - Documentation updates for snowball + +## 3.48.7 - 2018-01-02 + +* `Aws\Docs` - Clean up extra lines. +* `Aws\RDS` - Documentation updates for rds + +## 3.48.6 - 2017-12-29 + +* `Aws\` - Clean elses when have already returned something. +* `Aws\` - Removed or adjusted unused imports. +* `Aws\WorkSpaces` - Modify WorkSpaces have been updated with flexible storage and switching of hardware bundles feature. The following configurations have been added to ModifyWorkSpacesProperties: storage and compute. This update provides the capability to configure the storage of a WorkSpace. It also adds the capability of switching hardware bundle of a WorkSpace by specifying an eligible compute (Value, Standard, Performance, Power). + +## 3.48.5 - 2017-12-22 + +* `Aws\EC2` - This release fixes an issue with tags not showing in DescribeAddresses responses. +* `Aws\ECS` - Amazon ECS users can now set a health check initialization wait period of their ECS services, the services that are associated with an Elastic Load Balancer (ELB) will wait for a period of time before the ELB become healthy. You can now configure this in Create and Update Service. +* `Aws\Inspector` - PreviewAgents API now returns additional fields within the AgentPreview data type. The API now shows the agent health and availability status for all instances included in the assessment target. This allows users to check the health status of Inspector Agents before running an assessment. In addition, it shows the instance ID, hostname, and IP address of the targeted instances. +* `Aws\SageMaker` - SageMaker Models no longer support SupplementalContainers. API's that have been affected are CreateModel and DescribeModel. +* `Aws\Test` - Use fluent interface when defining mocks. + +## 3.48.4 - 2017-12-21 + +* `Aws\CodeBuild` - Adding support allowing AWS CodeBuild customers to select specific curated image versions. +* `Aws\EC2` - Elastic IP tagging enables you to add key and value metadata to your Elastic IPs so that you can search, filter, and organize them according to your organization's needs. +* `Aws\KinesisAnalytics` - Kinesis Analytics now supports AWS Lambda functions as output. + +## 3.48.3 - 2017-12-20 + +* `Aws\CodeStar` - Launch AWS CodeStar in the Asia Pacific (Tokyo) and Canada (Central) regions. +* `Aws\ConfigService` - Update ResourceType enum with values for WAF, WAFRegional, and CloudFront resources +* `Aws\IoT` - This release adds support for code signed Over-the-air update functionality for Amazon FreeRTOS. Users can now create and schedule Over-the-air updates to their Amazon FreeRTOS devices using these new APIs. + +## 3.48.2 - 2017-12-19 + +* `Aws\` - Add support for retrying exception code RequestThrottledException. +* `Aws\APIGateway` - API Gateway now adds support for calling API with compressed payloads using one of the supported content codings, tagging an API stage for cost allocation, and returning API keys from a custom authorizer for use with a usage plan. +* `Aws\MediaStoreData` - Documentation updates for mediastore +* `Aws\Route53` - Route 53 added support for a new China (Ningxia) region, cn-northwest-1. You can now specify cn-northwest-1 as the region for latency-based or geoproximity routing. Route 53 also added support for a new EU (Paris) region, eu-west-3. You can now associate VPCs in eu-west-3 with private hosted zones and create alias records that route traffic to resources in eu-west-3. + +## 3.48.1 - 2017-12-19 + +* `Aws\CloudWatch` - Documentation updates for monitoring +* `Aws\ServiceCatalog` - Region launch expansion of Service Catalog Service for new region EU-WEST-3 + +## 3.48.0 - 2017-12-15 + +* `Aws\AppStream` - This API update is to enable customers to add tags to their Amazon AppStream 2.0 resources +* `Aws\Inspector` - expand the region support of Inspector to FRA (eu-central-1) +* `Aws\S3\Crypto` - Adds the S3EncryptionMultipartUploader for performing client side encryption before performing a multipart upload operation. + +## 3.47.1 - 2017-12-14 + +* `Aws\APIGateway` - Adds support for Cognito Authorizer scopes at the API method level. +* `Aws\SES` - Added information about the maximum number of transactions per second for the SendCustomVerificationEmail operation. + +## 3.47.0 - 2017-12-12 + +* `Aws\CodeDeploy` - Documentation updates for CodeDeploy. +* `Aws\WorkMail` - Today, Amazon WorkMail released an administrative SDK and enabled AWS CloudTrail integration. With the administrative SDK, you can natively integrate WorkMail with your existing services. The SDK enables programmatic user, resource, and group management through API calls. This means your existing IT tools and workflows can now automate WorkMail management, and third party applications can streamline WorkMail migrations and account actions. + +## 3.46.0 - 2017-12-11 + +* `Aws\CognitoIdentityProvider` - Exposing the hosted UI domain name for a user pool that has a domain configured. +* `Aws\LexModelBuildingService` - The GetBotChannelAssociation API now returns the status and failure reason, if any, for a bot channel. +* `Aws\Pinpoint` - Resolves a naming collision with Pinpoint getEndpoint operation and AwsClient::getEndpoint. All Endpoint operations have aliases with UserEndpoint. +* `Aws\SageMaker` - CreateModel API Update: The request parameter 'ExecutionRoleArn' has changed from optional to required. +* `Aws\Test` - More refactored tests with PHPUnit assert methods. + +## 3.45.3 - 2017-12-08 + +* `Aws\AppStream` - This API update is to support the feature that allows customers to automatically consume the latest Amazon AppStream 2.0 agent as and when published by AWS. +* `Aws\CloudWatch` - With this launch, you can now create a CloudWatch alarm that alerts you when M out of N datapoints of a metric are breaching your predefined threshold, such as three out of five times in any given five minutes interval or two out of six times in a thirty minutes interval. When M out of N datapoints are not breaching your threshold in an interval, the alarm will be in OK state. Please note that the M datapoints out of N datapoints in an interval can be of any order and does not need to be consecutive. Consequently, you can now get alerted even when the spikes in your metrics are intermittent over an interval. +* `Aws\ECS` - Documentation updates for Windows containers. + +## 3.45.2 - 2017-12-07 + +* `Aws\ElasticsearchService` - Added support for encryption of data at rest on Amazon Elasticsearch Service using AWS KMS +* `Aws\SES` - Customers can customize the emails that Amazon SES sends when verifying new identities. This feature is helpful for developers whose applications send email through Amazon SES on behalf of their customers. + +## 3.45.1 - 2017-12-06 + +* `Aws\CloudDirectory` - Amazon Cloud Directory makes it easier for you to apply schema changes across your directories with in-place schema upgrades. Your directories now remain available while backward-compatible schema changes are being applied, such as the addition of new fields. You also can view the history of your schema changes in Cloud Directory by using both major and minor version identifiers, which can help you track and audit schema versions across directories. +* `Aws\ElasticBeanstalk` - Documentation updates for AWS Elastic Beanstalk. +* `Aws\SageMaker` - Initial waiters for common SageMaker workflows. + +## 3.45.0 - 2017-12-05 + +* `Aws\IoT` - Add error action API for RulesEngine. +* `Aws\ServiceCatalog` - ServiceCatalog has two distinct personas for its use, an "admin" persona (who creates sets of products with different versions and prescribes who has access to them) and an "end-user" persona (who can launch cloud resources based on the configuration data their admins have given them access to). This API update will allow admin users to deactivate/activate product versions, end-user will only be able to access and launch active product versions. +* `Aws\ServiceDiscovery` - Amazon Route 53 Auto Naming lets you configure public or private namespaces that your microservice applications run in. When instances of the service become available, you can call the Auto Naming API to register the instance, and Amazon Route 53 automatically creates up to five DNS records and an optional health check. Clients that submit DNS queries for the service receive an answer that contains up to eight healthy records. +* `Aws\Test` - Use PHPUnit\Framework\TestCase instead of PHPUnit_Framework_TestCase +* `Aws\Test` - Refactored some tests with PHPUnit assert methods. + +## 3.44.2 - 2017-12-04 + +* `Aws\Budgets` - Add additional costTypes to support finer control for different charges included in a cost budget. +* `Aws\ECS` - Documentation updates for ecs + +## 3.44.1 - 2017-12-01 + +* `Aws\SageMaker` - Preparing to release updated waiters week of December 4, 2017 for all supported SDKs. + +## 3.44.0 - 2017-11-30 + +* `Aws\APIGateway` - Added support Private Integration and VPC Link features in API Gateway. This allows to create an API with the API Gateway private integration, thus providing clients access to HTTP/HTTPS resources in an Amazon VPC from outside of the VPC through a VpcLink resource. +* `Aws\AlexaForBusiness` - Alexa for Business is now generally available for production use. Alexa for Business makes it easy for you to use Alexa in your organization. The Alexa for Business SDK gives you APIs to manage Alexa devices, enroll users, and assign skills at scale. For more information about Alexa for Business, go to https://aws.amazon.com/alexaforbusiness +* `Aws\Cloud9` - Adds support for creating and managing AWS Cloud9 development environments. AWS Cloud9 is a cloud-based integrated development environment (IDE) that you use to write, run, and debug code. +* `Aws\EC2` - Adds the following updates: 1. Spread Placement ensures that instances are placed on distinct hardware in order to reduce correlated failures. 2. Inter-region VPC Peering allows customers to peer VPCs across different AWS regions without requiring additional gateways, VPN connections or physical hardware +* `Aws\Lambda` - AWS Lambda now supports the ability to set the concurrency limits for individual functions, and increasing memory to 3008 MB. +* `Aws\ServerlessApplicationRepository` - First release of the AWS Serverless Application Repository SDK + +## 3.43.0 - 2017-11-30 + +* `Aws\AutoScaling` - You can now use Auto Scaling with EC2 Launch Templates via the CreateAutoScalingGroup and UpdateAutoScalingGroup APIs. +* `Aws\EC2` - Adds the following updates: 1. T2 Unlimited enables high CPU performance for any period of time whenever required 2. You are now able to create and launch EC2 m5 and h1 instances +* `Aws\Lightsail` - This release adds support for load balancer and TLS/SSL certificate management. This set of APIs allows customers to create, manage, and scale secure load balanced applications on Lightsail infrastructure. To provide support for customers who manage their DNS on Lightsail, we've added the ability create an Alias A type record which can point to a load balancer DNS name via the CreateDomainEntry API http://docs.aws.amazon.com/lightsail/2016-11-28/api-reference/API_CreateDomainEntry.html. +* `Aws\ResourceGroups` - AWS Resource Groups lets you search and group AWS resources from multiple services based on their tags. +* `Aws\SSM` - This release updates AWS Systems Manager APIs to enable executing automations at controlled rate, target resources in a resource groups and execute entire automation at once or single step at a time. It is now also possible to use YAML, in addition to JSON, when creating Systems Manager documents. +* `Aws\WAF` - This release adds support for rule group and managed rule group. Rule group is a container of rules that customers can create, put rules in it and associate the rule group to a WebACL. All rules in a rule group will function identically as they would if each rule was individually associated to the WebACL. Managed rule group is a pre-configured rule group composed by our security partners and made available via the AWS Marketplace. Customers can subscribe to these managed rule groups, associate the managed rule group to their WebACL and start using them immediately to protect their resources. +* `Aws\WAFRegional` - This release adds support for rule group and managed rule group. Rule group is a container of rules that customers can create, put rules in it and associate the rule group to a WebACL. All rules in a rule group will function identically as they would if each rule was individually associated to the WebACL. Managed rule group is a pre-configured rule group composed by our security partners and made available via the AWS Marketplace. Customers can subscribe to these managed rule groups, associate the managed rule group to their WebACL and start using them immediately to protect their resources. + +## 3.42.0 - 2017-11-29 + +* `Aws\Comprehend` - Amazon Comprehend is an AWS service for gaining insight into the content of text and documents . It develops insights by recognizing the entities, key phrases, language, sentiments, and other common elements in a document. For more information, go to the Amazon Comprehend product page. To get started, see the Amazon Comprehend Developer Guide. +* `Aws\DynamoDB` - Amazon DynamoDB now supports the following features: Global Table and On-Demand Backup. Global Table is a fully-managed, multi-region, multi-master database. DynamoDB customers can now write anywhere and read anywhere with single-digit millisecond latency by performing database operations closest to where end users reside. Global Table also enables customers to disaster-proof their applications, keeping them running and data accessible even in the face of natural disasters or region disruptions. Customers can set up Global Table with just a few clicks in the AWS Management Console-no application rewrites required. On-Demand Backup capability is to protect data from loss due to application errors, and meet customers' archival needs for compliance and regulatory reasons. Customers can backup and restore their DynamoDB table data anytime, with a single-click in the AWS management console or a single API call. Backup and restore actions execute with zero impact on table performance or availability. For more information, see the Amazon DynamoDB Developer Guide. +* `Aws\ECS` - Amazon Elastic Container Service (Amazon ECS) released a new launch type for running containers on a serverless infrastructure. The Fargate launch type allows you to run your containerized applications without the need to provision and manage the backend infrastructure. Just register your task definition and Fargate launches the container for you. +* `Aws\Glacier` - This release includes support for Glacier Select, a new feature that allows you to filter and analyze your Glacier archives and store the results in a user-specified S3 location. +* `Aws\Greengrass` - Greengrass OTA feature allows updating Greengrass Core and Greengrass OTA Agent. Local Resource Access feature allows Greengrass Lambdas to access local resources such as peripheral devices and volumes. +* `Aws\IoT` - This release adds support for a number of new IoT features, including AWS IoT Device Management (Jobs, Fleet Index and Thing Registration), Thing Groups, Policies on Thing Groups, Registry & Job Events, JSON Logs, Fine-Grained Logging Controls, Custom Authorization and AWS Service Authentication Using X.509 Certificates. +* `Aws\IoTJobsDataPlane` - This release adds support for new the service called Iot Jobs. This client is built for the device SDK to use Iot Jobs Device specific APIs. +* `Aws\KinesisVideo` - Announcing Amazon Kinesis Video Streams, a fully managed video ingestion and storage service. Kinesis Video Streams makes it easy to securely stream video from connected devices to AWS for machine learning, analytics, and processing. You can also stream other time-encoded data like RADAR and LIDAR signals using Kinesis Video Streams. +* `Aws\KinesisVideoArchivedMedia` - Announcing Amazon Kinesis Video Streams, a fully managed video ingestion and storage service. Kinesis Video Streams makes it easy to securely stream video from connected devices to AWS for machine learning, analytics, and processing. You can also stream other time-encoded data like RADAR and LIDAR signals using Kinesis Video Streams. +* `Aws\KinesisVideoMedia` - Announcing Amazon Kinesis Video Streams, a fully managed video ingestion and storage service. Kinesis Video Streams makes it easy to securely stream video from connected devices to AWS for machine learning, analytics, and processing. You can also stream other time-encoded data like RADAR and LIDAR signals using Kinesis Video Streams. +* `Aws\Rekognition` - This release introduces Amazon Rekognition support for video analysis. +* `Aws\S3` - This release includes support for Glacier Select, a new feature that allows you to filter and analyze your Glacier storage class objects and store the results in a user-specified S3 location. +* `Aws\SageMaker` - Amazon SageMaker is a fully-managed service that enables data scientists and developers to quickly and easily build, train, and deploy machine learning models, at scale. +* `Aws\SageMakerRuntime` - Amazon SageMaker is a fully-managed service that enables data scientists and developers to quickly and easily build, train, and deploy machine learning models, at scale. +* `Aws\Translate` - Public preview release of Amazon Translate and the Amazon Translate Developer Guide. For more information, see the Amazon Translate Developer Guide. + +## 3.41.0 - 2017-11-29 + +* `Aws\APIGateway` - Changes related to CanaryReleaseDeployment feature. Enables API developer to create a deployment as canary deployment and test API changes with percentage of customers before promoting changes to all customers. +* `Aws\AppSync` - AWS AppSync is an enterprise-level, fully managed GraphQL service with real-time data synchronization and offline programming features. +* `Aws\Batch` - Add support for Array Jobs which allow users to easily submit many copies of a job with a single API call. This change also enhances the job dependency model to support N_TO_N and sequential dependency chains. The ListJobs and DescribeJobs APIs now have the ability to list or describe the status of entire Array Jobs or individual elements within the array. +* `Aws\CodeDeploy` - Support for AWS Lambda function deployment - AWS CodeDeploy now supports the deployment of AWS Lambda functions. A Lambda deployment uses a Lambda function alias to shift traffic to a new version. You select a deployment configuration that specifies exactly how traffic shifts to your new version. Success of a deployment can be validated using Lambda functions that are referenced by the deployment. This provides the opportunity to rollback if necessary. +* `Aws\CognitoIdentityProvider` - AWS Cognito SDK has been updated to support new Cognito user-pool objects and operations for advanced security +* `Aws\EC2` - Adds the following updates: 1. You are now able to host a service powered by AWS PrivateLink to provide private connectivity to other VPCs. You are now also able to create endpoints to other services powered by PrivateLink including AWS services, Marketplace Seller services or custom services created by yourself or other AWS VPC customers. 2. You are now able to save launch parameters in a single template that can be used with Auto Scaling, Spot Fleet, Spot, and On Demand instances. 3. You are now able to launch Spot instances via the RunInstances API, using a single additional parameter. RunInstances will response synchronously with an instance ID should capacity be available for your Spot request. 4. A simplified Spot pricing model which delivers low, predictable prices that adjust gradually, based on long-term trends in supply and demand. 5. Amazon EC2 Spot can now hibernate Amazon EBS-backed instances in the event of an interruption, so your workloads pick up from where they left off. Spot can fulfill your request by resuming instances from a hibernated state when capacity is available. +* `Aws\GuardDuty` - Enable Amazon GuardDuty to continuously monitor and process AWS data sources to identify threats to your AWS accounts and workloads. You can add customization by uploading additional threat intelligence lists and IP safe lists. You can list security findings, suspend, and disable the service. +* `Aws\Lambda` - Lambda aliases can now shift traffic between two function versions, based on preassigned weights. +* `Aws\MQ` - This is the initial SDK release for Amazon MQ. Amazon MQ is a managed message broker service for Apache ActiveMQ that makes it easy to set up and operate message brokers in the cloud. + +## 3.40.0 - 2017-11-27 + +* `Aws\MediaConvert` - AWS Elemental MediaConvert is a file-based video conversion service that transforms media into formats required for traditional broadcast and for internet streaming to multi-screen devices. +* `Aws\MediaLive` - AWS Elemental MediaLive is a video service that lets you easily create live outputs for broadcast and streaming delivery. +* `Aws\MediaPackage` - AWS Elemental MediaPackage is a just-in-time video packaging and origination service that lets you format highly secure and reliable live outputs for a variety of devices. +* `Aws\MediaStore` - AWS Elemental MediaStore is an AWS storage service optimized for media. It gives you the performance, consistency, and low latency required to deliver live and on-demand video content. AWS Elemental MediaStore acts as the origin store in your video workflow. +* `Aws\MediaStoreData` - AWS Elemental MediaStore is an AWS storage service optimized for media. It gives you the performance, consistency, and low latency required to deliver live and on-demand video content. AWS Elemental MediaStore acts as the origin store in your video workflow. + +## 3.39.2 - 2017-11-22 + +* `Aws\ACM` - AWS Certificate Manager now supports the ability to import domainless certs and additional Key Types as well as an additional validation method for DNS. +* `Aws\LexModelBuildingService` - Amazon Lex is now available in the EU (Ireland) region. +* `Aws\LexRuntimeService` - Amazon Lex is now available in the EU (Ireland) region. +* `Aws\S3\Crypto` - Fixes an issue with loading @CipherOptions on getObject[Async] decryption. + +## 3.39.1 - 2017-11-22 + +* `Aws\APIGateway` - Add support for Access logs and customizable integration timeouts +* `Aws\CloudFormation` - 1) Instance-level parameter overrides (CloudFormation-StackSet feature): This feature will allow the customers to override the template parameters on specific stackInstances. Customers will also have ability to update their existing instances with/without parameter-overrides using a new API "UpdateStackInstances" 2) Add support for SSM parameters in CloudFormation - This feature will allow the customers to use Systems Manager parameters in CloudFormation templates. They will be able to see values for these parameters in Describe APIs. +* `Aws\CodeBuild` - Adding support for accessing Amazon VPC resources from AWS CodeBuild, dependency caching and build badges. +* `Aws\EMR` - Enable Kerberos on Amazon EMR. +* `Aws\Rekognition` - This release includes updates to Amazon Rekognition for the following APIs. The new DetectText API allows you to recognize and extract textual content from images. Face Model Versioning has been added to operations that deal with face detection. +* `Aws\Shield` - The AWS Shield SDK has been updated in order to support Elastic IP address protections, the addition of AttackProperties objects in DescribeAttack responses, and a new GetSubscriptionState operation. +* `Aws\StorageGateway` - AWS Storage Gateway now enables you to get notification when all your files written to your NFS file share have been uploaded to Amazon S3. Storage Gateway also enables guessing of the MIME type for uploaded objects based on file extensions. +* `Aws\XRay` - Added automatic pagination support for AWS X-Ray APIs in the SDKs that support this feature. + +## 3.39.0 - 2017-11-20 + +* `Aws\APIGateway` - Documentation updates for Apigateway +* `Aws\CodeCommit` - AWS CodeCommit now supports pull requests. You can use pull requests to collaboratively review code changes for minor changes or fixes, major feature additions, or new versions of your released software. +* `Aws\CostExplorer` - The AWS Cost Explorer API gives customers programmatic access to AWS cost and usage information, allowing them to perform adhoc queries and build interactive cost management applications that leverage this dataset. +* `Aws\Firehose` - This release includes a new Kinesis Firehose feature that supports Splunk as Kinesis Firehose delivery destination. You can now use Kinesis Firehose to ingest real-time data to Splunk in a serverless, reliable, and salable manner. This release also includes a new feature that allows you to configure Lambda buffer size in Kinesis Firehose data transformation feature. You can now customize the data buffer size before invoking Lambda function in Kinesis Firehose for data transformation. This feature allows you to flexibly trade-off processing and delivery latency with cost and efficiency based on your specific use cases and requirements. +* `Aws\Kinesis` - Customers can now obtain the important characteristics of their stream with DescribeStreamSummary. The response will not include the shard list for the stream but will have the number of open shards, and all the other fields included in the DescribeStream response. +* `Aws\WorkDocs` - DescribeGroups API and miscellaneous enhancements + +## 3.38.5 - 2017-11-17 + +* `Aws\ApplicationAutoScaling` - This SDK update contains support for Target Tracking scaling for EC2 Spot Fleet. It allows you to scale an EC2 Spot Fleet using a Target Tracking scaling policy. +* `Aws\DatabaseMigrationService` - Support for migration task assessment. Support for data validation after the migration. +* `Aws\ElasticLoadBalancingv2` - This release adds Proxy Protocol v2 support for Network Load Balancer. Proxy protocol provides a convenient way to transport connection information (such as a client's source IP address/port and destination IP address/port) for a TCP connection across multiple layers of NAT or TCP proxies. +* `Aws\RDS` - Amazon RDS now supports importing MySQL databases by using backup files from Amazon S3. +* `Aws\S3` - Added ORC to the supported S3 Inventory formats. + +## 3.38.4 - 2017-11-16 + +* `Aws\ApplicationAutoScaling` - Application Auto Scaling now supports automatic scaling of Amazon Aurora replicas +* `Aws\EC2` - You are now able to create and launch EC2 x1e smaller instance sizes +* `Aws\Glue` - API update for AWS Glue. New crawler configuration attribute enables customers to specify crawler behavior. New XML classifier enables classification of XML data. +* `Aws\OpsWorksCM` - Documentation updates for OpsWorks-cm: a new feature, OpsWorks for Puppet Enterprise, that allows users to create and manage OpsWorks-hosted Puppet Enterprise servers. +* `Aws\Organizations` - This release adds APIs that you can use to enable and disable integration with AWS services designed to work with AWS Organizations. This integration allows the AWS service to perform operations on your behalf on all of the accounts in your organization. Although you can use these APIs yourself, we recommend that you instead use the commands provided in the other AWS service to enable integration with AWS Organizations. +* `Aws\Route53` - You can use Route 53's GetAccountLimit/GetHostedZoneLimit/GetReusableDelegationSetLimit APIs to view your current limits (including custom set limits) on Route 53 resources such as hosted zones and health checks. These APIs also return the number of each resource you're currently using to enable comparison against your current limits. + +## 3.38.3 - 2017-11-15 + +* `Aws\APIGateway` - 1. Extended GetDocumentationParts operation to support retrieving documentation parts resources without contents. 2. Added hosted zone ID in the custom domain response. +* `Aws\Polly` - Amazon Polly adds Korean language support with new female voice - "Seoyeon" and new Indian English female voice - "Aditi" +* `Aws\SES` - SES launches Configuration Set Reputation Metrics and Email Pausing Today, two features that build upon the capabilities of the reputation dashboard. The first is the ability to export reputation metrics for individual configuration sets. The second is the ability to temporarily pause email sending, either at the configuration set level, or across your entire Amazon SES account. +* `Aws\SFN` - You can now use the UpdateStateMachine API to update your state machine definition and role ARN. Existing executions will continue to use the previous definition and role ARN. You can use the DescribeStateMachineForExecution API to determine which state machine definition and role ARN is associated with an execution + +## 3.38.2 - 2017-11-14 + +* `Aws\ECS` - Added new mode for Task Networking in ECS, called awsvpc mode. Mode configuration parameters to be passed in via awsvpcConfiguration. Updated APIs now use/show this new mode - RegisterTaskDefinition, CreateService, UpdateService, RunTask, StartTask. +* `Aws\Lightsail` - Lightsail now supports attached block storage, which allows you to scale your applications and protect application data with additional SSD-backed storage disks. This feature allows Lightsail customers to attach secure storage disks to their Lightsail instances and manage their attached disks, including creating and deleting disks, attaching and detaching disks from instances, and backing up disks via snapshot. +* `Aws\Route53` - When a Route 53 health check or hosted zone is created by a linked AWS service, the object now includes information about the service that created it. Hosted zones or health checks that are created by a linked service can't be updated or deleted using Route 53. +* `Aws\SSM` - EC2 Systems Manager GetInventory API adds support for aggregation. + +## 3.38.1 - 2017-11-09 + +* `Aws\EC2` - Introduces the following features: 1. Create a default subnet in an Availability Zone if no default subnet exists. 2. Spot Fleet integrates with Elastic Load Balancing to enable you to attach one or more load balancers to a Spot Fleet request. When you attach the load balancer, it automatically registers the instance in the Spot Fleet to the load balancers which distributes incoming traffic across the instances. + +## 3.38.0 - 2017-11-08 + +* `Aws\ApplicationAutoScaling` - Application Auto Scaling customers are now able to schedule adjustments to their MinCapacity and MaxCapacity, which makes it possible to pre-provision adequate capacity for anticipated demand and then reduce the provisioned capacity as demand lulls. +* `Aws\Batch` - Documentation updates for AWS Batch. +* `Aws\EC2` - AWS PrivateLink for Amazon Services - Customers can now privately access Amazon services from their Amazon Virtual Private Cloud (VPC), without using public IPs, and without requiring the traffic to traverse across the Internet. +* `Aws\ElastiCache` - This release adds online resharding for ElastiCache for Redis offering, providing the ability to add and remove shards from a running cluster. Developers can now dynamically scale-out or scale-in their Redis cluster workloads to adapt to changes in demand. ElastiCache will resize the cluster by adding or removing shards and redistribute hash slots uniformly across the new shard configuration, all while the cluster continues to stay online and serves requests. +* `Aws\Rds` - Update PresignUrlMiddleware to take an optional require_different_region, default false, for providing presigned urls only if the source and destination regions differ. Require this for RdsClient operations that use the middleware. +* `Aws\S3` - Updates several S3 endpoints. +* `Aws\S3` - Adds the S3EncryptionClient with CBC and GCM support. Uses pluggable strategies for handling a MetadataEnvelope in conjunction with a MaterialsProvider. Supports putObject[Async] and getObject[Async] operations. + +## 3.37.1 - 2017-11-07 + +* `Aws\ElasticLoadBalancingv2` - Added a new limit related to Network Load Balancers on the number of targets per load balancer per AZ. +* `Aws\RDS` - DescribeOrderableDBInstanceOptions now returns the minimum and maximum allowed values for storage size, total provisioned IOPS, and provisioned IOPS per GiB for a DB instance. +* `Aws\S3` - This releases adds support for 4 features: 1. Default encryption for S3 Bucket, 2. Encryption status in inventory and Encryption support for inventory. 3. Cross region replication of KMS-encrypted objects, and 4. ownership overwrite for CRR. +* `Aws\ServiceCatalog` - Region launch expansion of SCS for new region SA-EAST-1 +* `Aws\ServiceCatalog` - Region launch expansion of Service Catalog Service for new region US-WEST-1 +* `Aws\ServiceCatalog` - Region launch expansion for SCS in new region AP-SOUTH-1 BOM + +## 3.37.0 - 2017-11-07 + +* `Aws\EC2` - You are now able to create and launch EC2 C5 instances, the next generation of EC2's compute-optimized instances, in us-east-1, us-west-2 and eu-west-1. C5 instances offer up to 72 vCPUs, 144 GiB of DDR4 instance memory, 25 Gbps in Network bandwidth and improved EBS and Networking bandwidth on smaller instance sizes to deliver improved performance for compute-intensive workloads. +* `Aws\KMS` - Documentation updates for AWS KMS. +* `Aws\Organizations` - This release updates permission statements for several API operations, and corrects some other minor errors. +* `Aws\Pricing` - This is the initial release of AWS Price List Service. +* `Aws\SFN` - Documentation update. + +## 3.36.37 - 2017-11-03 + +* `Aws\ECS` - Amazon ECS users can now add devices to their containers and enable init process in containers through the use of docker's 'devices' and 'init' features. These fields can be specified under linuxParameters in ContainerDefinition in the Task Definition Template. + +## 3.36.36 - 2017-11-02 + +* `Aws\APIGateway` - This release supports creating and managing Regional and Edge-Optimized API endpoints. + +## 3.36.35 - 2017-11-01 + +* `Aws\ACM` - Documentation updates for acm +* `Aws\CloudHSMV2` - Minor documentation update for AWS CloudHSM (cloudhsmv2). +* `Aws\DirectConnect` - AWS DirectConnect now provides support for Global Access for Virtual Private Cloud (VPC) via a new feature called Direct Connect Gateway. A Direct Connect Gateway will allow you to group multiple Direct Connect Private Virtual Interfaces (DX-VIF) and Private Virtual Gateways (VGW) from different AWS regions (but belonging to the same AWS Account) and pass traffic from any DX-VIF to any VPC in the grouping. + +## 3.36.34 - 2017-10-26 + +* `Aws\CloudFront` - You can now specify additional options for MinimumProtocolVersion, which controls the SSL/TLS protocol that CloudFront uses to communicate with viewers. The minimum protocol version that you choose also determines the ciphers that CloudFront uses to encrypt the content that it returns to viewers. +* `Aws\EC2` - You are now able to create and launch EC2 P3 instance, next generation GPU instances, optimized for machine learning and high performance computing applications. With up to eight NVIDIA Tesla V100 GPUs, P3 instances provide up to one petaflop of mixed-precision, 125 teraflops of single-precision, and 62 teraflops of double-precision floating point performance, as well as a 300 GB/s second-generation NVLink interconnect that enables high-speed, low-latency GPU-to-GPU communication. P3 instances also feature up to 64 vCPUs based on custom Intel Xeon E5 (Broadwell) processors, 488 GB of DRAM, and 25 Gbps of dedicated aggregate network bandwidth using the Elastic Network Adapter (ENA). + +## 3.36.33 - 2017-10-24 + +* `Aws\ConfigService` - AWS Config support for CodeBuild Project resource type +* `Aws\ElastiCache` - Amazon ElastiCache for Redis today announced support for data encryption both for data in-transit and data at-rest. The new encryption in-transit functionality enables ElastiCache for Redis customers to encrypt data for all communication between clients and Redis engine, and all intra-cluster Redis communication. The encryption at-rest functionality allows customers to encrypt their S3 based backups. Customers can begin using the new functionality by simply enabling this functionality via AWS console, and a small configuration change in their Redis clients. The ElastiCache for Redis service automatically manages life cycle of the certificates required for encryption, including the issuance, renewal and expiration of certificates. Additionally, as part of this launch, customers will gain the ability to start using the Redis AUTH command that provides an added level of authentication. +* `Aws\Glue` - AWS Glue: Adding a new API, BatchStopJobRun, to stop one or more job runs for a specified Job. +* `Aws\Pinpoint` - Added support for APNs VoIP messages. Added support for collapsible IDs, message priority, and TTL for APNs and FCM/GCM. + +## 3.36.32 - 2017-10-23 + +* `Aws\` - Override passed in starting token for a ResultPaginator when moving to the next command. +* `Aws\Organizations` - This release supports integrating other AWS services with AWS Organizations through the use of an IAM service-linked role called AWSServiceRoleForOrganizations. Certain operations automatically create that role if it does not already exist. + +## 3.36.31 - 2017-10-20 + +* `Aws\EC2` - Adding pagination support for DescribeSecurityGroups for EC2 Classic and VPC Security Groups + +## 3.36.30 - 2017-10-19 + +* `Aws\S3` - PostObject[V4] classes now obey use_path_style_endpoint client configuration in form generation. +* `Aws\SQS` - Added support for tracking cost allocation by adding, updating, removing, and listing the metadata tags of Amazon SQS queues. +* `Aws\SSM` - EC2 Systems Manager versioning support for Parameter Store. Also support for referencing parameter versions in SSM Documents. + +## 3.36.29 - 2017-10-18 + +* `Aws\Lightsail` - This release adds support for Windows Server-based Lightsail instances. The GetInstanceAccessDetails API now returns the password of your Windows Server-based instance when using the default key pair. GetInstanceAccessDetails also returns a PasswordData object for Windows Server instances containing the ciphertext and keyPairName. The Blueprint data type now includes a list of platform values (LINUX_UNIX or WINDOWS). The Bundle data type now includes a list of SupportedPlatforms values (LINUX_UNIX or WINDOWS). + +## 3.36.28 - 2017-10-17 + +* `Aws\CloudHSMV2` - Service Region Launch. +* `Aws\ElasticsearchService` - This release adds support for VPC access to Amazon Elasticsearch Service. +* `Aws\S3` - No longer override supplied ContentType parameter when performing a multipart upload. + +## 3.36.27 - 2017-10-16 + +* `Aws\CloudHSM` - Documentation updates for AWS CloudHSM Classic. +* `Aws\EC2` - You can now change the tenancy of your VPC from dedicated to default with a single API operation. For more details refer to the documentation for changing VPC tenancy. +* `Aws\ElasticsearchService` - AWS Elasticsearch adds support for enabling slow log publishing. Using slow log publishing options customers can configure and enable index/query slow log publishing of their domain to preferred AWS Cloudwatch log group. +* `Aws\RDS` - Adds waiters for DBSnapshotAvailable and DBSnapshotDeleted. +* `Aws\WAF` - This release adds support for regular expressions as match conditions in rules, and support for geographical location by country of request IP address as a match condition in rules. +* `Aws\WAFRegional` - This release adds support for regular expressions as match conditions in rules, and support for geographical location by country of request IP address as a match condition in rules. + +## 3.36.26 - 2017-10-12 + +* `Aws\CodeCommit` - This release includes the DeleteBranch API and a change to the contents of a Commit object. +* `Aws\DatabaseMigrationService` - This change includes addition of new optional parameter to an existing API +* `Aws\ElasticBeanstalk` - Added the ability to add, delete or update Tags +* `Aws\Polly` - Amazon Polly exposes two new voices: "Matthew" (US English) and "Takumi" (Japanese) +* `Aws\RDS` - You can now call DescribeValidDBInstanceModifications to learn what modifications you can make to your DB instance. You can use this information when you call ModifyDBInstance. + +## 3.36.25 - 2017-10-11 + +* `Aws\ECR` - Adds support for new API set used to manage Amazon ECR repository lifecycle policies. Amazon ECR lifecycle policies enable you to specify the lifecycle management of images in a repository. The configuration is a set of one or more rules, where each rule defines an action for Amazon ECR to apply to an image. This allows the automation of cleaning up unused images, for example expiring images based on age or status. A lifecycle policy preview API is provided as well, which allows you to see the impact of a lifecycle policy on an image repository before you execute it +* `Aws\SES` - Added content related to email template management and templated email sending operations. + +## 3.36.24 - 2017-10-10 + +* `Aws\EC2` - This release includes updates to AWS Virtual Private Gateway. +* `Aws\ElasticLoadBalancingv2` - Server Name Indication (SNI) is an extension to the TLS protocol by which a client indicates the hostname to connect to at the start of the TLS handshake. The load balancer can present multiple certificates through the same secure listener, which enables it to support multiple secure websites using a single secure listener. Application Load Balancers also support a smart certificate selection algorithm with SNI. If the hostname indicated by a client matches multiple certificates, the load balancer determines the best certificate to use based on multiple factors including the capabilities of the client. +* `Aws\OpsWorksCM` - Provide engine specific information for node associations. + +## 3.36.23 - 2017-10-06 + +* `Aws\ConfigService` - Revert: Added missing enumeration values for ConfigurationItemStatus +* `Aws\SQS` - Documentation updates regarding availability of FIFO queues and miscellaneous corrections. + +## 3.36.22 - 2017-10-06 + +* `Aws\ConfigService` - Added missing enumeration values for ConfigurationItemStatus +* `Aws\SQS` - Documentation updates regarding availability of FIFO queues and miscellaneous corrections. + +## 3.36.21 - 2017-10-05 + +* `Aws\Redshift` - DescribeEventSubscriptions API supports tag keys and tag values as request parameters. +* `Aws\S3` - Properly parse s3:// uri used with StreamWrapper. + +## 3.36.20 - 2017-10-04 + +* `Aws\` - Optionally preserve CommandPool keys during generation +* `Aws\KinesisAnalytics` - Kinesis Analytics now supports schema discovery on objects in S3. Additionally, Kinesis Analytics now supports input data preprocessing through Lambda. +* `Aws\Route53Domains` - Added a new API that checks whether a domain name can be transferred to Amazon Route 53. + +## 3.36.19 - 2017-10-03 + +* `Aws\EC2` - This release includes service updates to AWS VPN. +* `Aws\SSM` - EC2 Systems Manager support for tagging SSM Documents. Also support for tag-based permissions to restrict access to SSM Documents based on these tags. + +## 3.36.18 - 2017-10-02 + +* `Aws\CloudHSM` - Documentation updates for CloudHSM + +## 3.36.17 - 2017-09-29 + +* `Aws\AppStream` - Includes APIs for managing and accessing image builders, and deleting images. +* `Aws\CodeBuild` - Adding support for Building GitHub Pull Requests in AWS CodeBuild +* `Aws\MTurk` - Today, Amazon Mechanical Turk (MTurk) supports SQS Notifications being delivered to Customers' SQS queues when different stages of the MTurk workflow are complete. We are going to create new functionality so that Customers can leverage SNS topics as a destination for notification messages when various stages of the MTurk workflow are complete. +* `Aws\Organizations` - This release flags the HandshakeParty structure's Type and Id fields as 'required'. They effectively were required in the past, as you received an error if you did not include them. This is now reflected at the API definition level. +* `Aws\Route53` - This change allows customers to reset elements of health check. +* `Aws\rds` - Introduce DBSnapshotAvailable and DBSnapshotDeleted waiters for DBSnapshot + +## 3.36.16 - 2017-09-27 + +* `Aws\Pinpoint` - Added two new push notification channels: Amazon Device Messaging (ADM) and, for push notification support in China, Baidu Cloud Push. Added support for APNs auth via .p8 key file. Added operation for direct message deliveries to user IDs, enabling you to message an individual user on multiple endpoints. + +## 3.36.15 - 2017-09-26 + +* `Aws\CloudFormation` - You can now prevent a stack from being accidentally deleted by enabling termination protection on the stack. If you attempt to delete a stack with termination protection enabled, the deletion fails and the stack, including its status, remains unchanged. You can enable termination protection on a stack when you create it. Termination protection on stacks is disabled by default. After creation, you can set termination protection on a stack whose status is CREATE_COMPLETE, UPDATE_COMPLETE, or UPDATE_ROLLBACK_COMPLETE. + +## 3.36.14 - 2017-09-22 + +* `Aws\ConfigService` - AWS Config support for DynamoDB tables and Auto Scaling resource types +* `Aws\ECS` - Amazon ECS users can now add and drop Linux capabilities to their containers through the use of docker's cap-add and cap-drop features. Customers can specify the capabilities they wish to add or drop for each container in their task definition. +* `Aws\RDS` - Documentation updates for rds + +## 3.36.13 - 2017-09-21 + +* `Aws\Budgets` - Including "DuplicateRecordException" in UpdateNotification and UpdateSubscriber. +* `Aws\CloudWatchLogs` - Adds support for associating LogGroups with KMS Keys. +* `Aws\EC2` - Add EC2 APIs to copy Amazon FPGA Images (AFIs) within the same region and across multiple regions, delete AFIs, and modify AFI attributes. AFI attributes include name, description and granting/denying other AWS accounts to load the AFI. + +## 3.36.12 - 2017-09-20 + +* `Aws\AppStream` - API updates for supporting On-Demand fleets. +* `Aws\CodePipeline` - This change includes a PipelineMetadata object that is part of the output from the GetPipeline API that includes the Pipeline ARN, created, and updated timestamp. +* `Aws\Greengrass` - Reset Deployments feature allows you to clean-up the cloud resource so you can delete the group. It also cleans up the core so that it goes back to the pre-deployment state. +* `Aws\Greengrass` - AWS Greengrass is now available in the Asia Pacific (Tokyo) region, ap-northeast-1. +* `Aws\LexRuntimeService` - Request attributes can be used to pass client specific information from the client to Amazon Lex as part of each request. +* `Aws\RDS` - Introduces the --option-group-name parameter to the ModifyDBSnapshot CLI command. You can specify this parameter when you upgrade an Oracle DB snapshot. The same option group considerations apply when upgrading a DB snapshot as when upgrading a DB instance. For more information, see http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Oracle.html#USER_UpgradeDBInstance.Oracle.OGPG.OG + +## 3.36.11 - 2017-09-19 + +* `Aws\EC2` - Fixed bug in EC2 clients preventing ElasticGpuSet from being set. + +## 3.36.10 - 2017-09-18 + +* `Aws\EC2` - Amazon EC2 now lets you opt for Spot instances to be stopped in the event of an interruption instead of being terminated. Your Spot request can be fulfilled again by restarting instances from a previously stopped state, subject to availability of capacity at or below your preferred price. When you submit a persistent Spot request, you can choose from "terminate" or "stop" as the instance interruption behavior. Choosing "stop" will shutdown your Spot instances so you can continue from this stopped state later on. This feature is only available for instances with Amazon EBS volume as their root device. +* `Aws\IAM` - A new API, DeleteServiceLinkedRole, submits a service-linked role deletion request and returns a DeletionTaskId, which you can use to check the status of the deletion. +* `Aws\SES` - Amazon Simple Email Service (Amazon SES) now lets you customize the domains used for tracking open and click events. Previously, open and click tracking links referred to destinations hosted on domains operated by Amazon SES. With this feature, you can use your own branded domains for capturing open and click events. + +## 3.36.9 - 2017-09-15 + +* `Aws\APIGateway` - Add a new enum "REQUEST" to '--type <value>' field in the current create-authorizer API, and make "identitySource" optional. + +## 3.36.8 - 2017-09-14 + +* `Aws\CodeBuild` - Supporting Parameter Store in environment variables for AWS CodeBuild +* `Aws\Organizations` - Documentation updates for AWS Organizations +* `Aws\ServiceCatalog` - This release of Service Catalog adds API support to copy products. + +## 3.36.7 - 2017-09-13 + +* `Aws\AutoScaling` - Customers can create Life Cycle Hooks at the time of creating Auto Scaling Groups through the CreateAutoScalingGroup API +* `Aws\Batch` - Documentation updates for batch +* `Aws\CloudWatchEvents` - Exposes ConcurrentModificationException as one of the valid exceptions for PutPermission and RemovePermission operation. +* `Aws\EC2` - You are now able to create and launch EC2 x1e.32xlarge instance, a new EC2 instance in the X1 family, in us-east-1, us-west-2, eu-west-1, and ap-northeast-1. x1e.32xlarge offers 128 vCPUs, 3,904 GiB of DDR4 instance memory, high memory bandwidth, large L3 caches, and leading reliability capabilities to boost the performance and reliability of in-memory applications. + +## 3.36.6 - 2017-09-12 + +* `Aws\EC2` - Fixed bug in EC2 clients preventing HostOfferingSet from being set + +## 3.36.5 - 2017-09-11 + +* `Aws\DeviceFarm` - DeviceFarm has added support for two features - RemoteDebugging and Customer Artifacts. Customers can now do remote Debugging on their Private Devices and can now retrieve custom files generated by their tests on the device and the device host (execution environment) on both public and private devices. + +## 3.36.4 - 2017-09-08 + +* `Aws\CloudWatchLogs` - Adds support for the PutResourcePolicy, DescribeResourcePolicy and DeleteResourcePolicy APIs. + +## 3.36.3 - 2017-09-07 + +* `Aws\ApplicationAutoScaling` - Documentation updates for application-autoscaling +* `Aws\EC2` - With Tagging support, you can add Key and Value metadata to search, filter and organize your NAT Gateways according to your organization's needs. +* `Aws\ElasticLoadBalancingv2` - The feature enables the new Network Load Balancer that is optimized to handle volatile traffic patterns while using a single static IP address per Availability Zone. Network Load Balancer operates at the connection level (Layer 4), routing connections to Amazon EC2 instances and containers, within Amazon Virtual Private Cloud (Amazon VPC) based on IP protocol data. +* `Aws\LexModelBuildingService` - Amazon Lex provides the ability to export your Amazon Lex chatbot definition as a JSON file that can be added to the target platform. The JSON configuration file contains the structure of your Amazon Lex chatbot, including the intent schema with utterances, slots, prompts and slot-types. +* `Aws\Route53` - You can configure Amazon Route 53 to log information about the DNS queries that Amazon Route 53 receives for your domains and subdomains. When you configure query logging, Amazon Route 53 starts to send logs to CloudWatch Logs. You can use various tools, including the AWS console, to access the query logs. + +## 3.36.2 - 2017-09-06 + +* `Aws\Budgets` - Add an optional "thresholdType" to notifications to support percentage or absolute value thresholds. + +## 3.36.1 - 2017-09-05 + +* `Aws\CodeStar` - Added support to tag CodeStar projects. Tags can be used to organize and find CodeStar projects on key-value pairs that you can choose. For example, you could add a tag with a key of "Release" and a value of "Beta" to projects your organization is working on for an upcoming beta release. + +## 3.36.0 - 2017-09-01 + +* `Aws\GameLift` - GameLift VPC resources can be peered with any other AWS VPC. R4 memory-optimized instances now available to deploy. +* `Aws\Mobile` - AWS Mobile Hub is an integrated experience designed to help developers build, test, configure and release cloud-based applications for mobile devices using Amazon Web Services. AWS Mobile Hub provides a console and API for developers, allowing them to quickly select desired features and integrate them into mobile applications. Features include NoSQL Database, Cloud Logic, Messaging and Analytics. With AWS Mobile Hub, you pay only for the underlying services that Mobile Hub provisions based on the features you choose in the Mobile Hub console. +* `Aws\SSM` - Adding KMS encryption support to SSM Inventory Resource Data Sync. Exposes the ClientToken parameter on SSM StartAutomationExecution to provide idempotent execution requests. + +## 3.35.3 - 2017-08-31 + +* `Aws\CodeBuild` - The AWS CodeBuild HTTP API now provides the BatchDeleteBuilds operation, which enables you to delete existing builds. +* `Aws\EC2` - Descriptions for Security Group Rules enables customers to be able to define a description for ingress and egress security group rules . The Descriptions for Security Group Rules feature supports one description field per Security Group rule for both ingress and egress rules . Descriptions for Security Group Rules provides a simple way to describe the purpose or function of a Security Group Rule allowing for easier customer identification of configuration elements . Prior to the release of Descriptions for Security Group Rules , customers had to maintain a separate system outside of AWS if they wanted to track Security Group Rule mapping and their purpose for being implemented. If a security group rule has already been created and you would like to update or change your description for that security group rule you can use the UpdateSecurityGroupRuleDescription API. +* `Aws\ElasticLoadBalancingv2` - This change now allows Application Load Balancers to distribute traffic to AWS resources using their IP addresses as targets in addition to the instance IDs. You can also load balance to resources outside the VPC hosting the load balancer using their IP addresses as targets. This includes resources in peered VPCs, EC2-Classic, and on-premises locations reachable over AWS Direct Connect or a VPN connection. +* `Aws\LexModelBuildingService` - Amazon Lex now supports synonyms for slot type values. If the user inputs a synonym, it will be resolved to the corresponding slot value. + +## 3.35.2 - 2017-08-30 + +* `Aws\ApplicationAutoScaling` - Application Auto Scaling now supports the DisableScaleIn option for Target Tracking Scaling Policies. This allows customers to create scaling policies that will only add capacity to the target. +* `Aws\Organizations` - The exception ConstraintViolationException now contains a new reason subcode MASTERACCOUNT_MISSING_CONTACT_INFO to make it easier to understand why attempting to remove an account from an Organization can fail. We also improved several other of the text descriptions and examples. + +## 3.35.1 - 2017-08-29 + +* `Aws\ConfigService` - Increased the internal size limit of resourceId +* `Aws\EC2` - Provides capability to add secondary CIDR blocks to a VPC. + +## 3.35.0 - 2017-08-25 + +* `Aws\` - Update CloudHSM smoke tests to CloudHSMV2 +* `Aws\CloudFormation` - Rollback triggers enable you to have AWS CloudFormation monitor the state of your application during stack creation and updating, and to roll back that operation if the application breaches the threshold of any of the alarms you've specified. +* `Aws\GameLift` - Update spelling of MatchmakingTicket status values for internal consistency. +* `Aws\RDS` - Option group options now contain additional properties that identify requirements for certain options. Check these properties to determine if your DB instance must be in a VPC or have auto minor upgrade turned on before you can use an option. Check to see if you can downgrade the version of an option after you have installed it. + +## 3.34.2 - 2017-08-24 + +* `Aws\Rekognition` - Update the enum value of LandmarkType and GenderType to be consistent with service response + +## 3.34.1 - 2017-08-23 + +* `Aws\AppStream` - Documentation updates for appstream + +## 3.34.0 - 2017-08-22 + +* `Aws\` - Fixes an issue where exceptions weren't being fully loaded when using a `SaveAs` parameter set to a file path on Guzzle v5. +* `Aws\` - Update Composer to add dependencies on `simplexml`, `pcre`, `spl` and `json`. This change will cause Composer updates to fail if you do not have these PHP extensions installed. +* `Aws\SSM` - Changes to associations in Systems Manager State Manager can now be recorded. Previously, when you edited associations, you could not go back and review older association settings. Now, associations are versioned, and can be named using human-readable strings, allowing you to see a trail of association changes. You can also perform rate-based scheduling, which allows you to schedule associations more granularly. + +## 3.33.4 - 2017-08-21 + +* `Aws\Firehose` - This change will allow customers to attach a Firehose delivery stream to an existing Kinesis stream directly. You no longer need a forwarder to move data from a Kinesis stream to a Firehose delivery stream. You can now run your streaming applications on your Kinesis stream and easily attach a Firehose delivery stream to it for data delivery to S3, Redshift, or Elasticsearch concurrently. +* `Aws\Route53` - Amazon Route 53 now supports CAA resource record type. A CAA record controls which certificate authorities are allowed to issue certificates for the domain or subdomain. + +## 3.33.3 - 2017-08-18 + +* `Aws\CodeStar` - Launch AWS CodeStar in the US West (N. California) and EU (London) regions. + +## 3.33.2 - 2017-08-16 + +* `Aws\` - Fixes a bug in `ClientResolver` that would provide incorrect information on required parameters set to `null` when resolving a client. +* `Aws\GameLift` - The Matchmaking Grouping Service is a new feature that groups player match requests for a given game together into game sessions based on developer configured rules. + +## 3.33.1 - 2017-08-15 + +* `Aws\EC2` - Fixed bug in EC2 clients preventing HostReservation from being set + +## 3.33.0 - 2017-08-14 + +* `Aws\Batch` - This release enhances the DescribeJobs API to include the CloudWatch logStreamName attribute in ContainerDetail and ContainerDetailAttempt +* `Aws\CloudHSMV2` - CloudHSM provides hardware security modules for protecting sensitive data and cryptographic keys within an EC2 VPC, and enable the customer to maintain control over key access and use. This is a second-generation of the service that will improve security, lower cost and provide better customer usability. +* `Aws\EFS` - Customers can create encrypted EFS file systems and specify a KMS master key to encrypt it with. +* `Aws\Glue` - AWS Glue is a fully managed extract, transform, and load (ETL) service that makes it easy for customers to prepare and load their data for analytics. You can create and run an ETL job with a few clicks in the AWS Management Console. You simply point AWS Glue to your data stored on AWS, and AWS Glue discovers your data and stores the associated metadata (e.g. table definition and schema) in the AWS Glue Data Catalog. Once cataloged, your data is immediately searchable, queryable, and available for ETL. AWS Glue generates the code to execute your data transformations and data loading processes. AWS Glue generates Python code that is entirely customizable, reusable, and portable. Once your ETL job is ready, you can schedule it to run on AWS Glue's fully managed, scale-out Spark environment. AWS Glue provides a flexible scheduler with dependency resolution, job monitoring, and alerting. AWS Glue is serverless, so there is no infrastructure to buy, set up, or manage. It automatically provisions the environment needed to complete the job, and customers pay only for the compute resources consumed while running ETL jobs. With AWS Glue, data can be available for analytics in minutes. +* `Aws\MigrationHub` - AWS Migration Hub provides a single location to track migrations across multiple AWS and partner solutions. Using Migration Hub allows you to choose the AWS and partner migration tools that best fit your needs, while providing visibility into the status of your entire migration portfolio. Migration Hub also provides key metrics and progress for individual applications, regardless of which tools are being used to migrate them. For example, you might use AWS Database Migration Service, AWS Server Migration Service, and partner migration tools to migrate an application comprised of a database, virtualized web servers, and a bare metal server. Using Migration Hub will provide you with a single screen that shows the migration progress of all the resources in the application. This allows you to quickly get progress updates across all of your migrations, easily identify and troubleshoot any issues, and reduce the overall time and effort spent on your migration projects. Migration Hub is available to all AWS customers at no additional charge. You only pay for the cost of the migration tools you use, and any resources being consumed on AWS. +* `Aws\SSM` - Systems Manager Maintenance Windows include the following changes or enhancements: New task options using Systems Manager Automation, AWS Lambda, and AWS Step Functions; enhanced ability to edit the targets of a Maintenance Window, including specifying a target name and description, and ability to edit the owner field; enhanced ability to edits tasks; enhanced support for Run Command parameters; and you can now use a --safe flag when attempting to deregister a target. If this flag is enabled when you attempt to deregister a target, the system returns an error if the target is referenced by any task. Also, Systems Manager now includes Configuration Compliance to scan your fleet of managed instances for patch compliance and configuration inconsistencies. You can collect and aggregate data from multiple AWS accounts and Regions, and then drill down into specific resources that aren't compliant. +* `Aws\StorageGateway` - Add optional field ForceDelete to DeleteFileShare api. + +## 3.32.7 - 2017-08-11 + +* `Aws\CodeDeploy` - Adds support for specifying Application Load Balancers in deployment groups, for both in-place and blue/green deployments. +* `Aws\CognitoIdentityProvider` - We have added support for features for Amazon Cognito User Pools that enable application developers to easily add and customize a sign-up and sign-in user experience, use OAuth 2.0, and integrate with Facebook, Google, Login with Amazon, and SAML-based identity providers. +* `Aws\EC2` - Provides customers an opportunity to recover an EIP that was released + +## 3.32.6 - 2017-08-10 + +* `Aws\CloudDirectory` - Enable BatchDetachPolicy +* `Aws\CodeBuild` - Supporting Bitbucket as source type in AWS CodeBuild. + +## 3.32.5 - 2017-08-09 + +* `Aws\RDS` - Documentation updates for RDS. + +## 3.32.4 - 2017-08-08 + +* `Aws\ElasticBeanstalk` - Add support for paginating the result of DescribeEnvironments. Include the ARN of described environments in DescribeEnvironments output. +* `Aws\Signature` - Fixed edgecase in expiration duration check on signature when seconds roll between implicit startime and relative end time. + +## 3.32.3 - 2017-08-01 + +* `Aws\CodeDeploy` - AWS CodeDeploy now supports the use of multiple tag groups in a single deployment group (an intersection of tags) to identify the instances for a deployment. When you create or update a deployment group, use the new ec2TagSet and onPremisesTagSet structures to specify up to three groups of tags. Only instances that are identified by at least one tag in each of the tag groups are included in the deployment group. +* `Aws\ConfigService` - Added new API, GetDiscoveredResourceCounts, which returns the resource types, the number of each resource type, and the total number of resources that AWS Config is recording in the given region for your AWS account. +* `Aws\EC2` - Ec2 SpotInstanceRequestFulfilled waiter update +* `Aws\ElasticLoadBalancingv2` - Add TargetInService and TargetDeregistered waiters +* `Aws\Pinpoint` - This release of the Pinpoint SDK enables App management - create, delete, update operations, Raw Content delivery for APNs and GCM campaign messages and From Address override. +* `Aws\SES` - This update adds information about publishing email open and click events. This update also adds information about publishing email events to Amazon Simple Notification Service (Amazon SNS). + +## 3.32.2 - 2017-07-31 + +* `Aws\CodeStar` - AWS CodeStar is now available in the following regions: Asia Pacific (Singapore), Asia Pacific (Sydney), EU (Frankfurt) +* `Aws\Inspector` - Inspector's StopAssessmentRun API has been updated with a new input option - stopAction. This request parameter can be set to either START_EVALUATION or SKIP_EVALUATION. START_EVALUATION (the default value, and the previous behavior) stops the AWS agent data collection and begins the results evaluation for findings generation based on the data collected so far. SKIP_EVALUATION cancels the assessment run immediately, after which no findings are generated. +* `Aws\SSM` - Adds a SendAutomationSignal API to SSM Service. This API is used to send a signal to an automation execution to change the current behavior or status of the execution. + +## 3.32.1 - 2017-07-27 + +* `Aws\EC2` - The CreateDefaultVPC API enables you to create a new default VPC . You no longer need to contact AWS support, if your default VPC has been deleted. +* `Aws\KinesisAnalytics` - Added additional exception types and clarified documentation. + +## 3.32.0 - 2017-07-26 + +* `Aws\` - Support for changes regarding PHP 7.2 releases. +* `Aws\CloudWatch` - This release adds high resolution features to CloudWatch, with support for Custom Metrics down to 1 second and Alarms down to 10 seconds. +* `Aws\DynamoDB` - Corrected a typo. +* `Aws\EC2` - Amazon EC2 Elastic GPUs allow you to easily attach low-cost graphics acceleration to current generation EC2 instances. With Amazon EC2 Elastic GPUs, you can configure the right amount of graphics acceleration to your particular workload without being constrained by fixed hardware configurations and limited GPU selection. + +## 3.31.10 - 2017-07-25 + +* `Aws\CloudDirectory` - Cloud Directory adds support for additional batch operations. +* `Aws\CloudFormation` - AWS CloudFormation StackSets enables you to manage stacks across multiple accounts and regions. + +## 3.31.9 - 2017-07-24 + +* `Aws\AppStream` - Amazon AppStream 2.0 image builders and fleets can now access applications and network resources that rely on Microsoft Active Directory (AD) for authentication and permissions. This new feature allows you to join your streaming instances to your AD, so you can use your existing AD user management tools. +* `Aws\EC2` - Spot Fleet tagging capability allows customers to automatically tag instances launched by Spot Fleet. You can use this feature to label or distinguish instances created by distinct Spot Fleets. Tagging your EC2 instances also enables you to see instance cost allocation by tag in your AWS bill. + +## 3.31.8 - 2017-07-20 + +* `Aws\EMR` - Amazon EMR now includes the ability to use a custom Amazon Linux AMI and adjustable root volume size when launching a cluster. + +## 3.31.7 - 2017-07-19 + +* `Aws\Budgets` - Update budget Management API's to list/create/update RI_UTILIZATION type budget. Update budget Management API's to support DAILY timeUnit for RI_UTILIZATION type budget. +* `Aws\S3` - Properly handle reading mismatched regions from S3's AuthorizationHeaderMalformed exception for S3MultiRegionClient. + +## 3.31.6 - 2017-07-17 + +* `Aws\CognitoIdentityProvider` - Allows developers to configure user pools for email/phone based signup and sign-in. +* `Aws\Lambda` - Lambda@Edge lets you run code closer to your end users without provisioning or managing servers. With Lambda@Edge, your code runs in AWS edge locations, allowing you to respond to your end users at the lowest latency. Your code is triggered by Amazon CloudFront events, such as requests to and from origin servers and viewers, and it is ready to execute at every AWS edge location whenever a request for content is received. You just upload your Node.js code to AWS Lambda and Lambda takes care of everything required to run and scale your code with high availability. You only pay for the compute time you consume - there is no charge when your code is not running. + +## 3.31.5 - 2017-07-14 + +* `Aws\ApplicationDiscoveryService` - Adding feature to the Export API for Discovery Service to allow filters for the export task to allow export based on per agent id. +* `Aws\EC2` - New EC2 GPU Graphics instance +* `Aws\MarketplaceCommerceAnalytics` - Update to Documentation Model For New Report Cadence / Reformat of Docs + +## 3.31.4 - 2017-07-13 + +* `Aws\APIGateway` - Adds support for management of gateway responses. +* `Aws\EC2` - X-ENI (or Cross-Account ENI) is a new feature that allows the attachment or association of Elastic Network Interfaces (ENI) between VPCs in different AWS accounts located in the same availability zone. With this new capability, service providers and partners can deliver managed solutions in a variety of new architectural patterns where the provider and consumer of the service are in different AWS accounts. +* `Aws\LexModelBuildingService` - Fixed broken links to reference and conceptual content. + +## 3.31.3 - 2017-07-12 + +* `Aws\AutoScaling` - Auto Scaling now supports a new type of scaling policy called target tracking scaling policies that you can use to set up dynamic scaling for your application. +* `Aws\S3` - Fixes an issue introduced in 3.31.0 that was not setting the ContentLength for all MultipartUploader::createPart streams, therefore potentially using an incorrect, $options['params'] value. +* `Aws\SWF` - Added support for attaching control data to Lambda tasks. Control data lets you attach arbitrary strings to your decisions and history events. + +## 3.31.2 - 2017-07-06 + +* `Aws\DirectoryService` - You can now improve the resilience and performance of your Microsoft AD directory by deploying additional domain controllers. Added UpdateNumberofDomainControllers API that allows you to update the number of domain controllers you want for your directory, and DescribeDomainControllers API that allows you to describe the detailed information of each domain controller of your directory. Also added the 'DesiredNumberOfDomainControllers' field to the DescribeDirectories API output for Microsoft AD. +* `Aws\Ecs` - ECS/ECR now available in BJS +* `Aws\KMS` - This release of AWS Key Management Service introduces the ability to determine whether a key is AWS managed or customer managed. +* `Aws\Kinesis` - You can now encrypt your data at rest within an Amazon Kinesis Stream using server-side encryption. Server-side encryption via AWS KMS makes it easy for customers to meet strict data management requirements by encrypting their data at rest within the Amazon Kinesis Streams, a fully managed real-time data processing service. +* `Aws\SSM` - Amazon EC2 Systems Manager now expands Patching support to Amazon Linux, Red Hat and Ubuntu in addition to the already supported Windows Server. + +## 3.31.1 - 2017-07-05 + +* `Aws\CloudWatch` - We are excited to announce the availability of APIs and CloudFormation support for CloudWatch Dashboards. You can use the new dashboard APIs or CloudFormation templates to dynamically build and maintain dashboards to monitor your infrastructure and applications. There are four new dashboard APIs - PutDashboard, GetDashboard, DeleteDashboards, and ListDashboards APIs. PutDashboard is used to create a new dashboard or modify an existing one whereas GetDashboard is the API to get the details of a specific dashboard. ListDashboards and DeleteDashboards are used to get the names or delete multiple dashboards respectively. Getting started with dashboard APIs is similar to any other AWS APIs. The APIs can be accessed through AWS SDK or through CLI tools. +* `Aws\Route53` - Bug fix for InvalidChangeBatch exception. + +## 3.31.0 - 2017-06-30 + +* `Aws\MarketplaceCommerceAnalytics` - Documentation updates for AWS Marketplace Commerce Analytics. +* `Aws\S3` - API Update for S3: Adding Object Tagging Header to MultipartUpload Initialization +* `Aws\S3` - A new `params` option is available in the `MultipartUploader` and `MultipartCopy` classes for parameters that should be applied to all sub-commands of their upload functionality. This also improves functionality around passing `params` directly to `ObjectUploader` and `ObjectCopier`. A new `before_lookup` callback has been added to `ObjectCopier` for operating on the `HeadObject` command directly; `params` will be passed to HeadObject as well. Since these are changes to existing options, they may alter current functionality. + +## 3.30.4 - 2017-06-29 + +* `Aws\CloudWatchEvents` - CloudWatch Events now allows different AWS accounts to share events with each other through a new resource called event bus. Event buses accept events from AWS services, other AWS accounts and PutEvents API calls. Currently all AWS accounts have one default event bus. To send events to another account, customers simply write rules to match the events of interest and attach an event bus in the receiving account as the target to the rule. The PutTargets API has been updated to allow adding cross account event buses as targets. In addition, we have released two new APIs - PutPermission and RemovePermission - that enables customers to add/remove permissions to their default event bus. +* `Aws\GameLift` - Allow developers to download GameLift fleet creation logs to assist with debugging. +* `Aws\SSM` - Adding Resource Data Sync support to SSM Inventory. New APIs: * CreateResourceDataSync - creates a new resource data sync configuration, * ListResourceDataSync - lists existing resource data sync configurations, * DeleteResourceDataSync - deletes an existing resource data sync configuration. + +## 3.30.3 - 2017-06-27 + +* `Aws\Greengrass` - AWS Greengrass is now available in new regions. +* `Aws\ServiceCatalog` - Proper tagging of resources is critical to post-launch operations such as billing, cost allocation, and resource management. By using Service Catalog's TagOption Library, administrators can define a library of re-usable TagOptions that conform to company standards, and associate these with Service Catalog portfolios and products. Learn how to move your current tags to the new library, create new TagOptions, and view and associate your library items with portfolios and products. Understand how to ensure that the right tags are created on products launched through Service Catalog and how to provide users with defined selectable tags. + +## 3.30.2 - 2017-06-23 + +* `Aws\Lambda` - The Lambda Invoke API will now throw new exception InvalidRuntimeException (status code 502) for invokes with deprecated runtimes. + +## 3.30.1 - 2017-06-22 + +* `Aws\CodePipeline` - A new API, ListPipelineExecutions, enables you to retrieve summary information about the most recent executions in a pipeline, including pipeline execution ID, status, start time, and last updated time. You can request information for a maximum of 100 executions. Pipeline execution data is available for the most recent 12 months of activity. +* `Aws\DatabaseMigrationService` - Added tagging for DMS certificates. +* `Aws\ElasticLoadBalancing` - Add retry error state to InstanceInService waiter for ElasticLoadBalancer +* `Aws\Lambda` - Lambda is now available in the Canada (Central) region. +* `Aws\Lightsail` - This release adds a new nextPageToken property to the result of the GetOperationsForResource API. Developers can now get the next set of items in a list by making subsequent calls to GetOperationsForResource API with the token from the previous call. This release also deprecates the nextPageCount property, which previously returned null (use the nextPageToken property instead). This release also deprecates the customImageName property on the CreateInstancesRequest class, which was previously ignored by the API. +* `Aws\Route53` - This release reintroduces the HealthCheckInUse exception. + +## 3.30.0 - 2017-06-21 + +* `Aws\DAX` - Amazon DynamoDB Accelerator (DAX) is a fully managed, highly available, in-memory cache for DynamoDB that delivers up to a 10x performance improvement - from milliseconds to microseconds - even at millions of requests per second. DAX does all the heavy lifting required to add in-memory acceleration to your DynamoDB tables, without requiring developers to manage cache invalidation, data population, or cluster management. +* `Aws\Route53` - Amazon Route 53 now supports multivalue answers in response to DNS queries, which lets you route traffic approximately randomly to multiple resources, such as web servers. Create one multivalue answer record for each resource and, optionally, associate an Amazon Route 53 health check with each record, and Amazon Route 53 responds to DNS queries with up to eight healthy records. +* `Aws\SSM` - Adding hierarchy support to the SSM Parameter Store API. Added support tor tagging. New APIs: GetParameter - retrieves one parameter, DeleteParameters - deletes multiple parameters (max number 10), GetParametersByPath - retrieves parameters located in the hierarchy. Updated APIs: PutParameter - added ability to enforce parameter value by applying regex (AllowedPattern), DescribeParameters - modified to support Tag filtering. +* `Aws\WAF` - You can now create, edit, update, and delete a new type of WAF rule with a rate tracking component. + +## 3.29.9 - 2017-06-20 + +* `Aws\WorkDocs` - This release provides a new API to retrieve the activities performed by WorkDocs users. + +## 3.29.8 - 2017-06-19 + +* `Aws\Organizations` - Improvements to Exception Modeling + +## 3.29.7 - 2017-06-16 + +* `Aws\Batch` - AWS Batch is now available in the ap-northeast-1 region. +* `Aws\XRay` - Add a response time histogram to the services in response of GetServiceGraph API. + +## 3.29.6 - 2017-06-15 + +* `Aws\EC2` - Adds API to describe Amazon FPGA Images (AFIs) available to customers, which includes public AFIs, private AFIs that you own, and AFIs owned by other AWS accounts for which you have load permissions. +* `Aws\ECS` - Added support for cpu, memory, and memory reservation container overrides on the RunTask and StartTask APIs. +* `Aws\IoT` - Revert the last release: remove CertificatePem from DescribeCertificate API. +* `Aws\ServiceCatalog` - Added ProvisioningArtifactSummaries to DescribeProductAsAdmin's output to show the provisioning artifacts belong to the product. Allow filtering by SourceProductId in SearchProductsAsAdmin for AWS Marketplace products. Added a verbose option to DescribeProvisioningArtifact to display the CloudFormation template used to create the provisioning artifact.Added DescribeProvisionedProduct API. Changed the type of ProvisionedProduct's Status to be distinct from Record's Status. New ProvisionedProduct's Status are AVAILABLE, UNDER_CHANGE, TAINTED, ERROR. Changed Record's Status set of values to CREATED, IN_PROGRESS, IN_PROGRESS_IN_ERROR, SUCCEEDED, FAILED. + +## 3.29.5 - 2017-06-14 + +* `Aws\ApplicationAutoScaling` - Application Auto Scaling now supports automatic scaling of read and write throughput capacity for DynamoDB tables and global secondary indexes. +* `Aws\CloudDirectory` - Documentation update for Cloud Directory + +## 3.29.4 - 2017-06-13 + +* `Aws\ConfigService` - With this release AWS Config supports the Amazon CloudWatch alarm resource type. + +## 3.29.3 - 2017-06-12 + +* `Aws\RDS` - API Update for RDS: this update enables copy-on-write, a new Aurora MySQL Compatible Edition feature that allows users to restore their database, and support copy of TDE enabled snapshot cross region. + +## 3.29.2 - 2017-06-09 + +* `Aws\OpsWorks` - Tagging Support for AWS OpsWorks Stacks + +## 3.29.1 - 2017-06-08 + +* `Aws\IoT` - In addition to using certificate ID, AWS IoT customers can now obtain the description of a certificate with the certificate PEM. +* `Aws\Pinpoint` - Starting today Amazon Pinpoint adds SMS Text and Email Messaging support in addition to Mobile Push Notifications, providing developers, product managers and marketers with multi-channel messaging capabilities to drive user engagement in their applications. Pinpoint also enables backend services and applications to message users directly and provides advanced user and app analytics to understand user behavior and messaging performance. +* `Aws\Rekognition` - API Update for AmazonRekognition: Adding RecognizeCelebrities API + +## 3.29.0 - 2017-06-07 + +* `Aws\CodeBuild` - Add support to APIs for privileged containers. This change would allow performing privileged operations like starting the Docker daemon inside builds possible in custom docker images. +* `Aws\Greengrass` - AWS Greengrass is software that lets you run local compute, messaging, and device state synchronization for connected devices in a secure way. With AWS Greengrass, connected devices can run AWS Lambda functions, keep device data in sync, and communicate with other devices securely even when not connected to the Internet. Using AWS Lambda, Greengrass ensures your IoT devices can respond quickly to local events, operate with intermittent connections, and minimize the cost of transmitting IoT data to the cloud. + +## 3.28.10 - 2017-06-06 + +* `Aws\ACM` - Documentation update for AWS Certificate Manager. +* `Aws\CloudFront` - Doc update to fix incorrect prefix in S3OriginConfig +* `Aws\IoT` - Update client side validation for SalesForce action. + +## 3.28.9 - 2017-06-05 + +* `Aws\AppStream` - AppStream 2.0 Custom Security Groups allows you to easily control what network resources your streaming instances and images have access to. You can assign up to 5 security groups per Fleet to control the inbound and outbound network access to your streaming instances to specific IP ranges, network protocols, or ports. +* `Aws\AutoScaling` - Autoscaling resource model update. +* `Aws\IoT` - Added Salesforce action to IoT Rules Engine. + +## 3.28.8 - 2017-06-02 + +* `Aws\KinesisAnalytics` - Kinesis Analytics publishes error messages CloudWatch logs in case of application misconfigurations +* `Aws\WorkDocs` - This release includes new APIs to manage tags and custom metadata on resources and also new APIs to add and retrieve comments at the document level. + +## 3.28.7 - 2017-06-01 + +* `Aws\CodeDeploy` - AWS CodeDeploy has improved how it manages connections to GitHub accounts and repositories. You can now create and store up to 25 connections to GitHub accounts in order to associate AWS CodeDeploy applications with GitHub repositories. Each connection can support multiple repositories. You can create connections to up to 25 different GitHub accounts, or create more than one connection to a single account. The ListGitHubAccountTokenNames command has been introduced to retrieve the names of stored connections to GitHub accounts that you have created. The name of the connection to GitHub used for an AWS CodeDeploy application is also included in the ApplicationInfo structure. Two new fields, lastAttemptedDeployment and lastSuccessfulDeployment, have been added to DeploymentGroupInfo to improve the handling of deployment group information in the AWS CodeDeploy console. Information about these latest deployments can also be retrieved using the GetDeploymentGroup and BatchGetDeployment group requests. Also includes a region update (us-gov-west-1). +* `Aws\CognitoIdentityProvider` - Added support within Amazon Cognito User Pools for 1) a customizable hosted UI for user sign up and sign in and 2) integration of external identity providers. +* `Aws\ElasticLoadBalancingv2` - Update the existing DescribeRules API to support pagination. +* `Aws\LexModelBuildingService` - Updated documentation and added examples for Amazon Lex Runtime Service. + +## 3.28.6 - 2017-05-31 + +* `Aws\RDS` - Amazon RDS customers can now easily and quickly stop and start their DB instances. + +## 3.28.5 - 2017-05-30 + +* `Aws\CloudDirectory` - Cloud Directory has launched support for Typed Links, enabling customers to create object-to-object relationships that are not hierarchical in nature. Typed Links enable customers to quickly query for data along these relationships. Customers can also enforce referential integrity using Typed Links, ensuring data in use is not inadvertently deleted. +* `Aws\S3` - New example snippets for Amazon S3. +* `Aws\S3` - S3 calls are now done with a host style URL by default. Options for path style on the client and command levels are available as `use_path_style_endpoint` and `@use_path_style_endpoint`, respectively. [More details on the differences between the styles can be found here.](http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro) + +## 3.28.4 - 2017-05-25 + +* `Aws\AppStream` - Support added for persistent user storage, backed by S3. +* `Aws\Rekognition` - Updated the CompareFaces API response to include orientation information, unmatched faces, landmarks, pose, and quality of the compared faces. + +## 3.28.3 - 2017-05-24 + +* `Aws\IAM` - The unique ID and access key lengths were extended from 32 to 128 +* `Aws\STS` - The unique ID and access key lengths were extended from 32 to 128. +* `Aws\StorageGateway` - Two Storage Gateway data types, Tape and TapeArchive, each have a new response element, TapeUsedInBytes. This element helps you manage your virtual tapes. By using TapeUsedInBytes, you can see the amount of data written to each virtual tape. + +## 3.28.2 - 2017-05-23 + +* `Aws\DatabaseMigrationService` - This release adds support for using Amazon S3 and Amazon DynamoDB as targets for database migration, and using MongoDB as a source for database migration. For more information, see the AWS Database Migration Service documentation. + +## 3.28.1 - 2017-05-22 + +* `Aws\ResourceGroupsTaggingAPI` - You can now specify the number of resources returned per page in GetResources operation, as an optional parameter, to easily manage the list of resources returned by your queries. +* `Aws\SQS` - MD5 Validation of `MessageAttributes` is now being performed on `ReceiveMessage` calls. SQS uses a custom encoding for generating the hash input, [details on that scheme are available here.](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-attributes.html#sqs-attrib-md5) + +## 3.28.0 - 2017-05-18 + +* `Aws\Athena` - This release adds support for Amazon Athena. Amazon Athena is an interactive query service that makes it easy to analyze data in Amazon S3 using standard SQL. Athena is serverless, so there is no infrastructure to manage, and you pay only for the queries that you run. +* `Aws\Lightsail` - This release adds new APIs that make it easier to set network port configurations on Lightsail instances. Developers can now make a single request to both open and close public ports on an instance using the PutInstancePublicPorts operation. + +## 3.27.5 - 2017-05-17 + +* `Aws\AutoScaling` - Various Auto Scaling documentation updates +* `Aws\CloudWatchEvents` - Various CloudWatch Events documentation updates. +* `Aws\CloudWatchLogs` - Various CloudWatch Logs documentation updates. +* `Aws\Polly` - Amazon Polly adds new German voice "Vicki" + +## 3.27.4 - 2017-05-16 + +* `Aws\CodeDeploy` - This release introduces the previousRevision field in the responses to the GetDeployment and BatchGetDeployments actions. previousRevision provides information about the application revision that was deployed to the deployment group before the most recent successful deployment. Also, the fileExistsBehavior parameter has been added for CreateDeployment action requests. In the past, if the AWS CodeDeploy agent detected files in a target location that weren't part of the application revision from the most recent successful deployment, it would fail the current deployment by default. This new parameter provides options for how the agent handles these files: fail the deployment, retain the content, or overwrite the content. +* `Aws\GameLift` - Allow developers to specify how metrics are grouped in CloudWatch for their GameLift fleets. Developers can also specify how many concurrent game sessions activate on a per-instance basis. +* `Aws\Inspector` - Adds ability to produce an assessment report that includes detailed and comprehensive results of a specified assessment run. +* `Aws\KMS` - Update documentation for KMS. + +## 3.27.3 - 2017-05-15 + +* `Aws\SSM` - UpdateAssociation API now supports updating document name and targets of an association. GetAutomationExecution API can return FailureDetails as an optional field to the StepExecution Object, which contains failure type, failure stage as well as other failure related information for a failed step. + +## 3.27.2 - 2017-05-11 + +* `Aws\ElasticLoadBalancing` - Add a new API to allow customers to describe their account limits, such as load balancer limit, target group limit etc. +* `Aws\ElasticLoadBalancingv2` - Add a new API to allow customers to describe their account limits, such as load balancer limit, target group limit etc. +* `Aws\LexModelBuildingService` - Releasing new DeleteBotVersion, DeleteIntentVersion and DeleteSlotTypeVersion APIs. +* `Aws\Organizations` - AWS Organizations APIs that return an Account object now include the email address associated with the account’s root user. + +## 3.27.1 - 2017-05-09 + +* `Aws\CodeStar` - Updated documentation for AWS CodeStar. +* `Aws\WorkSpaces` - Doc-only Update for WorkSpaces + +## 3.27.0 - 2017-05-04 + +* `Aws\ECS` - Exposes container instance registration time in ECS:DescribeContainerInstances. +* `Aws\Lambda` - Support for UpdateFunctionCode DryRun option +* `Aws\MarketplaceEntitlementService` - AWS Marketplace Entitlement Service enables AWS Marketplace sellers to determine the capacity purchased by their customers. +* `Aws\S3` - Fixed possible security issue in `Transfer`s download `transfer` operation where files could be downloaded to a directory outside the destination directory if the key contained relative paths. Ignoring files to continue with your transfer can be done through passing an iterator of files to download to `Transfer`s parameter: `$source`. These can be generated on `s3://` paths if you have registered the SDK's `StreamWrapper` via `\Aws\recursive_dir_iterator`. + +## 3.26.5 - 2017-04-28 + +* `Aws\CloudFormation` - Adding back the removed waiters and paginators. + +## 3.26.4 - 2017-04-28 + +* `Aws\CloudFormation` - API update for CloudFormation: New optional parameter ClientRequestToken which can be used as an idempotency token to safely retry certain operations as well as tagging StackEvents. +* `Aws\RDS` - The DescribeDBClusterSnapshots API now returns a SourceDBClusterSnapshotArn field which identifies the source DB cluster snapshot of a copied snapshot. +* `Aws\Rekognition` - Fix for missing file type check +* `Aws\SQS` - Adding server-side encryption (SSE) support to SQS by integrating with AWS KMS; adding new queue attributes to SQS CreateQueue, SetQueueAttributes and GetQueueAttributes APIs to support SSE. +* `Aws\Snowball` - The Snowball API has a new exception that can be thrown for list operation requests. + +## 3.26.3 - 2017-04-26 + +* `Aws\RDS` - With Amazon Relational Database Service (Amazon RDS) running MySQL or Amazon Aurora, you can now authenticate to your DB instance using IAM database authentication. + +## 3.26.2 - 2017-04-21 + +* `Aws\AppStream` - The new feature named "Default Internet Access" will enable Internet access from AppStream 2.0 instances - image builders and fleet instances. Admins will check a flag either through AWS management console for AppStream 2.0 or through API while creating an image builder or while creating/updating a fleet. +* `Aws\Kinesis` - Adds a new waiter, StreamNotExists, to Kinesis + +## 3.26.1 - 2017-04-20 + +* `Aws\DeviceFarm` - API Update for AWS Device Farm: Support for Deals and Promotions +* `Aws\DirectConnect` - Documentation updates for AWS Direct Connect. +* `Aws\ElasticLoadBalancingv2` - Adding LoadBalancersDeleted waiter for Elasticloadbalancingv2 +* `Aws\KMS` - Doc-only update for Key Management Service (KMS): Update docs for GrantConstraints and GenerateRandom +* `Aws\Route53` - Release notes: SDK documentation now includes examples for ChangeResourceRecordSets for all types of resource record set, such as weighted, alias, and failover. +* `Aws\Route53Domains` - Adding examples and other documentation updates. + +## 3.26.0 - 2017-04-19 + +* `Aws\APIGateway` - Add support for "embed" property. +* `Aws\CodeStar` - AWS CodeStar is a cloud-based service for creating, managing, and working with software development projects on AWS. An AWS CodeStar project creates and integrates AWS services for your project development toolchain. AWS CodeStar also manages the permissions required for project users. +* `Aws\EC2` - Adds support for creating an Amazon FPGA Image (AFI) from a specified design checkpoint (DCP). +* `Aws\IAM` - This changes introduces a new IAM role type, Service Linked Role, which works like a normal role but must be managed via services' control. +* `Aws\Lambda` - Lambda integration with CloudDebugger service to enable customers to enable tracing for the Lambda functions and send trace information to the CloudDebugger service. +* `Aws\LexModelBuildingService` - Amazon Lex is a service for building conversational interfaces into any application using voice and text. +* `Aws\Polly` - API Update for Amazon Polly: Add support for speech marks +* `Aws\Rekognition` - Given an image, the API detects explicit or suggestive adult content in the image and returns a list of corresponding labels with confidence scores, as well as a taxonomy (parent-child relation) for each label. + +## 3.25.8 - 2017-04-18 + +* `Aws\Lambda` - You can use tags to group and filter your Lambda functions, making it easier to analyze them for billing allocation purposes. For more information, see Tagging Lambda Functions. You can now write or upgrade your Lambda functions using Python version 3.6. For more information, see Programming Model for Authoring Lambda Functions in Python. Note: Features will be rolled out in the US regions on 4/19. + +## 3.25.7 - 2017-04-11 + +* `Aws\APIGateway` - API Gateway request validators +* `Aws\Batch` - API Update for AWS Batch: Customer provided AMI for MANAGED Compute Environment +* `Aws\GameLift` - Allows developers to utilize an improved workflow when calling our Queues API and introduces a new feature that allows developers to specify a maximum allowable latency per Queue. +* `Aws\OpsWorks` - Cloudwatch Logs agent configuration can now be attached to OpsWorks Layers using CreateLayer and UpdateLayer. OpsWorks will then automatically install and manage the CloudWatch Logs agent on the instances part of the OpsWorks Layer. + +## 3.25.6 - 2017-04-07 + +* `Aws\Redshift` - This update adds the GetClusterCredentials API which is used to get temporary login credentials to the cluster. AccountWithRestoreAccess now has a new member AccountAlias, this is the identifier of the AWS support account authorized to restore the specified snapshot. This is added to support the feature where the customer can share their snapshot with the Amazon Redshift Support Account without having to manually specify the AWS Redshift Service account ID on the AWS Console/API. + +## 3.25.5 - 2017-04-06 + +* `Aws\ElasticLoadBalancingv2` - Adds supports a new condition for host-header conditions to CreateRule and ModifyRule + +## 3.25.4 - 2017-04-05 + +* `Aws\ElastiCache` - ElastiCache added support for testing the Elasticache Multi-AZ feature with Automatic Failover. + +## 3.25.3 - 2017-04-04 + +* `Aws\CloudWatch` - Amazon Web Services announced the immediate availability of two additional alarm configuration rules for Amazon CloudWatch Alarms. The first rule is for configuring missing data treatment. Customers have the options to treat missing data as alarm threshold breached, alarm threshold not breached, maintain alarm state and the current default treatment. The second rule is for alarms based on percentiles metrics that can trigger unnecessarily if the percentile is calculated from a small number of samples. The new rule can treat percentiles with low sample counts as same as missing data. If the first rule is enabled, the same treatment will be applied when an alarm encounters a percentile with low sample counts. + +## 3.25.2 - 2017-04-03 + +* `Aws\LexRuntimeService` - Adds support to PostContent for speech input + +## 3.25.1 - 2017-03-31 + +* `Aws\CloudDirectory` - ListObjectAttributes now supports filtering by facet. + +## 3.25.0 - 2017-03-31 + +* `Aws\CloudFormation` - Adding paginators for ListExports and ListImports +* `Aws\CloudFront` - Amazon CloudFront now supports user configurable HTTP Read and Keep-Alive Idle Timeouts for your Custom Origin Servers +* `Aws\ResourceGroupsTaggingAPI` - Resource Groups Tagging APIs can help you organize your resources and enable you to simplify resource management, access management, and cost allocation. +* `Aws\StorageGateway` - File gateway mode in AWS Storage gateway provides access to objects in S3 as files on a Network File System (NFS) mount point. Once a file share is created, any changes made externally to the S3 bucket will not be reflected by the gateway. Using the cache refresh feature in this update, the customer can trigger an on-demand scan of the keys in their S3 bucket and refresh the file namespace cached on the gateway. It takes as an input the fileShare ARN and refreshes the cache for only that file share. Additionally there is new functionality on file gateway that allows you configure what squash options they would like on their file share, this allows a customer to configure their gateway to not squash root permissions. This can be done by setting options in NfsOptions for CreateNfsFileShare and UpdateNfsFileShare APIs. + +## 3.24.9 - 2017-03-28 + +* `Aws\Batch` - Customers can now provide a retryStrategy as part of the RegisterJobDefinition and SubmitJob API calls. The retryStrategy object has a number value for attempts. This is the number of non successful executions before a job is considered FAILED. In addition, the JobDetail object now has an attempts field and shows all execution attempts. +* `Aws\EC2` - Customers can now tag their Amazon EC2 Instances and Amazon EBS Volumes at the time of their creation. You can do this from the EC2 Instance launch wizard or through the RunInstances or CreateVolume APIs. By tagging resources at the time of creation, you can eliminate the need to run custom tagging scripts after resource creation. In addition, you can now set resource-level permissions on the CreateVolume, CreateTags, DeleteTags, and the RunInstances APIs. This allows you to implement stronger security policies by giving you more granular control over which users and groups have access to these APIs. You can also enforce the use of tagging and control what tag keys and values are set on your resources. When you combine tag usage and resource-level IAM policies together, you can ensure your instances and volumes are properly secured upon creation and achieve more accurate cost allocation reporting. These new features are provided at no additional cost. + +## 3.24.8 - 2017-03-27 + +* `Aws\SSM` - Updated validation rules for SendCommand and RegisterTaskWithMaintenanceWindow APIs + +## 3.24.7 - 2017-03-23 + +* `Aws\ApplicationAutoScaling` - Application AutoScaling is launching support for a new target resource (AppStream 2.0 Fleets) as a scalable target. + +## 3.24.6 - 2017-03-22 + +* `Aws\ApplicationDiscoveryService` - Adds export configuration options to the AWS Discovery Service API. +* `Aws\ElasticLoadBalancingv2` - Adding waiters for Elastic Load Balancing V2 +* `Aws\Lambda` - Adds support for new runtime Node.js v6.10 for AWS Lambda service + +## 3.24.5 - 2017-03-21 + +* `Aws\DirectConnect` - Deprecated DescribeConnectionLoa, DescribeInterconnectLoa, AllocateConnectionOnInterconnect and DescribeConnectionsOnInterconnect operations in favor of DescribeLoa, DescribeLoa, AllocateHostedConnection and DescribeHostedConnections respectively. +* `Aws\MarketplaceCommerceAnalytics` - This update adds a new data set, us_sales_and_use_tax_records, which enables AWS Marketplace sellers to programmatically access to their U.S. Sales and Use Tax report data. +* `Aws\Pinpoint` - Added support for segment endpoints by user attributes in addition to endpoint attributes, publishing raw app analytics and campaign events as events streams to Kinesis and Kinesis Firehose + +## 3.24.4 - 2017-03-14 +* `Aws\CloudWatchEvents` - Update documentation + +## 3.24.3 - 2017-03-13 + +* `Aws\CloudWatchEvents` - This update extends Target Data Type for configuring Target behavior during invocation. +* `Aws\DeviceFarm` - Network shaping allows users to simulate network connections and conditions while testing their Android, iOS, and web apps with AWS Device Farm. + +## 3.24.2 - 2017-03-10 + +* `Aws\CodeDeploy` - Add paginators for Codedeploy +* `Aws\EMR` - This release includes support for instance fleets in Amazon EMR. + +## 3.24.1 - 2017-03-09 + +* `Aws\APIGateway` - API Gateway has added support for ACM certificates on custom domain names. Both Amazon-issued certificates and uploaded third-part certificates are supported. +* `Aws\CloudDirectory` - Introduces a new Cloud Directory API that enables you to retrieve all available parent paths for any type of object (a node, leaf node, policy node, and index node) in a hierarchy. + +## 3.24.0 - 2017-03-08 + +* `Aws\WorkDocs` - The Administrative SDKs for Amazon WorkDocs provides full administrator level access to WorkDocs site resources, allowing developers to integrate their applications to manage WorkDocs users, content and permissions programmatically + +## 3.23.3 - 2017-03-08 + +* `Aws\RDS` - Add support to using encrypted clusters as cross-region replication masters. Update CopyDBClusterSnapshot API to support encrypted cross region copy of Aurora cluster snapshots. + +## 3.23.2 - 2017-03-06 + +* `Aws\Budgets` - When creating or editing a budget via the AWS Budgets API you can define notifications that are sent to subscribers when the actual or forecasted value for cost or usage exceeds the notificationThreshold associated with the budget notification object. Starting today, the maximum allowed value for the notificationThreshold was raised from 100 to 300. This change was made to give you more flexibility when setting budget notifications. +* `Aws\OpsWorksCM` - OpsWorks for Chef Automate has added a new field "AssociatePublicIpAddress" to the CreateServer request, "CloudFormationStackArn" to the Server model and "TERMINATED" server state. + +## 3.23.1 - 2017-02-28 + +* `Aws\MTurk` - Update namespace for `Amazon Mechanical Turk` + +## 3.23.0 - 2017-02-28 + +* `Aws\DynamoDB` - Time to Live (TTL) is a feature that allows you to define when items in a table expire and can be purged from the database, so that you don't have to track expired data and delete it manually. With TTL enabled on a DynamoDB table, you can set a timestamp for deletion on a per-item basis, allowing you to limit storage usage to only those records that are relevant. +* `Aws\DynamoDBStreams` - Added support for TTL on a DynamoDB tables +* `Aws\IAM` - Added support for AWS Organizations service control policies (SCPs) to SimulatePrincipalPolicy operation. If there are SCPs associated with the simulated user's account, their effect on the result is captured in the OrganizationDecisionDetail element in the EvaluationResult. +* `Aws\MechanicalTurkRequesterService` - Amazon Mechanical Turk is a web service that provides an on-demand, scalable, human workforce to complete jobs that humans can do better than computers, for example, recognizing objects in photos. +* `Aws\Organizations` - AWS Organizations is a web service that enables you to consolidate your multiple AWS accounts into an organization and centrally manage your accounts and their resources. + +## 3.22.11 - 2017-02-24 + +* `Aws\ElasticsearchService` - Added three new API calls to existing Amazon Elasticsearch service to expose Amazon Elasticsearch imposed limits to customers. + +## 3.22.10 - 2017-02-24 + +* `Aws\Ec2` - New EC2 I3 instance type + +## 3.22.9 - 2017-02-22 + +* `Aws\CloudDirectory` - ListObjectAttributes documentation updated based on forum feedback +* `Aws\ElasticBeanstalk` - Elastic Beanstalk adds support for creating and managing custom platform. +* `Aws\GameLift` - Allow developers to configure global queues for creating GameSessions. Allow PlayerData on PlayerSessions to store player-specific data. +* `Aws\Route53` - Added support for operations CreateVPCAssociationAuthorization and DeleteVPCAssociationAuthorization to throw a ConcurrentModification error when a conflicting modification occurs in parallel to the authorizations in place for a given hosted zone. + +## 3.22.8 - 2017-02-21 + +* `Aws\Ec2` - Added the billingProduct parameter to the RegisterImage API + +## 3.22.7 - 2017-02-17 + +* `Aws\DirectConnect` - Adding operations to support new LAG feature + +## 3.22.6 - 2017-02-17 + +* `Aws\CognitoIdentity` - Allow createIdentityPool and updateIdentityPool API to set server side token check value on identity pool +* `Aws\Config` - Enable customers to use dryrun mode for PutEvaluations + +## 3.22.5 - 2017-02-15 + +* `Aws\Kms` - Added support for tagging + +## 3.22.4 - 2017-02-14 + +* `Aws\Ec2` - Added support for new `ModifyVolume` API + +## 3.22.3 - 2017-02-10 + +* Update endpoints.json with valid endpoints + +## 3.22.2 - 2017-02-10 + +* `Aws\StorageGateway` - Added support for addition of clientList parameter to existing File share APIs + +## 3.22.1 - 2017-02-09 + +* `Aws\Ec2` - Added support to associate `IAM profiles` to running instances API +* `Aws\Rekognition` - Added support for `age` to the face description from `DetectFaces` and `IndexFaces` + +## 3.22.0 - 2017-02-08 + +* `Aws\LexRuntimeService` - Added support for new service `Amazon Lex Runtime Service` + +## 3.21.6 - 2017-01-27 + +* `Aws\CloudDirectory` - Added support for new service `AWS Cloud Directory` +* `Aws\CodeDeploy` - Added support for blue/green deployments +* `Aws\Ec2` - Added support to Add instance health check functionality to replace unhealthy EC2 Spot fleet instances with fresh ones. +* `Aws\Rds` - Upgraded Snapshot Engine Version + +## 3.21.5 - 2017-01-25 + +* `Aws\ElasticLoadBalancing` - Added support for New load balancer type +* `Aws\Rds` - Added support for Cross Region Read Replica Copying + +## 3.21.4 - 2017-01-25 + +* `Aws\CodeCommit` - Added a new API to list the different files between 2 commits +* `Aws\Ecs` - Added support for Container instance draining + +## 3.21.3 - 2017-01-20 + +* `Aws\Acm` - Updated response elements for DescribeCertificate API in support of managed renewal. + +## 3.21.2 - 2017-01-19 + +* `Aws\Ec2` - Added support for new parameters to SpotPlacement in RequestSpotInstances API + +## 3.21.1 - 2017-01-18 + +* `Aws\Rds` - Added support for `Mysql` to `Aurora` Replication + +## 3.21.0 - 2017-01-17 + +* `Aws\Credentials` - Added support for AssumeRoleCredentialProvider and support for source ini credentials from ./aws/config file in defaultProvider +* `Aws\DynamoDb` - Added tagging Support for Amazon DynamoDB Tables and Indexes +* `Aws\Route53` - Added support for ca-central-1 and eu-west-2 enum values in CloudWatchRegion enum + +## 3.20.16 - 2017-01-16 + +* Fix manifest + +## 3.20.15 - 2017-01-16 + +* `Aws\Cur` - Added Support for new service `AWS CostAndUsageReport` + +## 3.20.14 - 2017-01-16 + +* `Aws\Config` - Updated the models to include InvalidNextTokenException in API response + +## 3.20.13 - 2017-01-04 + +* `Aws\Config` - Added support for customers to use/write rules based on OversizedConfigurationItemChangeNotification mesage type. +* `Aws\MarketplaceAnalytics` - Added support for data set disbursed_amount_by_instance_hours, with historical data available starting 2012-09-04 + +## 3.20.12 - 2016-12-29 + +* `Aws\CodeDeploy` - Added support for IAM Session Arns in addition to IAM User Arns for on premise host authentication. +* `Aws\Ecs` - Added the ability to customize the placement of tasks on container instances. + +## 3.20.11 - 2016-12-22 + +* `Aws\ApiGateway` - Added support for generating SDKs in more languages. +* `Aws\ElasticBeanstalk` - Added Support for Resource Lifecycle Feature +* `Aws\Iam`- Added service-specific credentials to IAM service to make it easier to onboard CodeCommit customers + +## 3.20.10 - 2016-12-21 + +* `Aws\Ecr` - Added implementation for Docker Image Manifest V2, Schema 2 +* `Aws\Rds` - Added support for Cross Region Encrypted Snapshot Copying (CopyDBSnapshot) + +## 3.20.9 - 2016-12-20 + +* `Aws\Firehose` - Added Support for Processing Feature +* `Aws\Route53` - Enum updates for eu-west-2 and ca-central-1 +* `Aws\StorageGateway` - Added new storage type for files to complement block and tape + +## 3.20.8 - 2016-12-19 + +* `Aws\CognitoIdentity` - Added Groups to Cognito user pools. +* `Aws\DiscoveryService` - Added new APIs to group discovered servers into Applications with get summary and neighbors. + Includes additional filters for `ListConfigurations` and `DescribeAgents` API. + +## 3.20.7 - 2016-12-15 + +* `Aws\CognitoIdentityProvider` - Adding support for fine-grained role-based access control (RBAC) +* `Aws\Ssm` - Adding support for access to the Patch Baseline and Patch Compliance APIs + +## 3.20.6 - 2016-12-14 + +* `Aws\Batch` - Added support for new service `AWS Batch` +* `Aws\CloudWatchLogs` - Added support for associating LogGroups with `AWSTagris` tags +* `Aws\Dms` - Added support for SSL enabled Oracle endpoints +* `Aws\MarketplaceCommerceAnalytics` - Add new enum to `DataSetType` + +## 3.20.5 - 2016-12-12 + +* `Aws\Credentials` - Fix `EcsCredential` latency issue + +## 3.20.4 - 2016-12-08 + +* `Aws\Cloudfront` - Adding lambda function associations to cache behaviors +* `Aws\Rds` - Add cluster create time to DBCluster +* `Aws\WafRegional` - Adding support for new service `AWS WAF Regional` + +## 3.20.3 - 2016-12-07 + +* `Aws\Config` - Adding support for Redshift resource types +* `Aws\S3` - Adding Version ID to Get/Put ObjectTagging + +## 3.20.2 - 2016-12-06 + +* `Aws\Ec2` - Adding T2.xlarge, T2.2xlarge, and R4 instance type +* `Aws\Config` - Adding support for `DescribeConfigRuleEvaulationStatus` +* `Aws\Pinpoint` - Adding support for fixed type + +## 3.20.1 - 2016-12-01 + +* `Aws\ApiGateway` - Added support for publishing your APIs on `Amazon API Gateway` + as products on the `AWS Marketplace` +* `Aws\AppStream` - Added support for new service `AWS AppStream` +* `Aws\CodeBuild` - Added support for new service `AWS CodeBuild` +* `Aws\DirectConnect` - Added support for `Ipv6` support +* `Aws\Ec2` - Added support for native `IPv6` support for VPCs +* `Aws\ElasticBeanstalk` - Added support for `CodeBuild` Integration +* `Aws\Lambda` - Added support for new API `GetAccountSettings` +* `Aws\Health` - Added support for new service `AWS Health` +* `Aws\OpsWorksCM` - Added support for new service `AWS OpsWorks Managed Chef` +* `Aws\Pinpoint` - Added support for new service `AWS Pinpoint` +* `Aws\Sfn` - Added support for `AWS Step Functions` +* `Aws\Shield` - Added support for new service `AWS Shield` +* `Aws\SSm` - Added support for 6 new sets of APIs +* `Aws\XRay` - Added support for new service `AWS X-Ray` + + +## 3.20.0 - 2016-11-30 + +* `Aws\Lightsail` - Added support for new service `AWS Lightsail` +* `Aws\Polly` - Added support for new service `AWS Polly Service` +* `Aws\Rekognition` - Added support for new service `AWS Rekognition Service` +* `Aws\Snowball` - Added support for a new job type, new APIs, and + the new `AWS Snowball` Edge device to support local compute and storage use cases + +## 3.19.33 - 2016-11-29 + +* `Aws\S3` - Added support for Storage Insights, Object Tagging, Lifecycle Filtering + +## 3.19.32 - 2016-11-22 + +* `Aws\Cloudformation` - Added support for List-imports API +* `Aws\Glacier` - Added support for retrieving data with different tiers +* `Aws\Route53` - Added support for expanding current IPAddress + field to accept IPv6 address +* `Aws\S3` - Added support for Glacier retrieval tier information + +## 3.19.31 - 2016-11-21 + +* `Aws\CloudTrail` - Added support for S3 data plane operations +* `Aws\Ecs` - Added support for new "version" field for tasks and container instances + +## 3.19.30 - 2016-11-18 + +* `Aws\ApplicationAutoscaling` - Added support for a new target resource + (EMR Instance Groups) as a scalable target + +## 3.19.29 - 2016-11-18 + +* `Aws\ElasticTranscoder` - Added support for multiple media input files + that can be stitched together +* `Aws\Emr` - Added support for Automatic Scaling of EMR clusters based on metrics +* `Aws\Lambda` - Added support for Environment variables +* `Aws\GameLift` - Added support for remote access into GameLift managed servers. + +## 3.19.28 - 2016-11-17 + +* `Aws\ApiGateway` - Added support for custom encoding feature +* `Aws\CloudWatch` - Added support for percentile statistic (pN) to metrics and alarms +* `Aws\MarketplaceAnalytics` - Added support for third party metrics +* `Aws\Sqs` - Added support for creating FIFO (first-in-first-out) queues + +## 3.19.27 - 2016-11-16 + +* `Aws\ServiceCatalog` - Added support for new operations +* `Aws\Route53` Added support for cross account VPC Association + +## 3.19.26 - 2016-11-15 + +* `Aws\DirectoryService` - Added support for `SchemaExtensions` +* `Aws\Elasticache` - Added support for `AuthToken` +* `Aws\Kinesis` - Added support for Describe shard limit, open shard count + and stream creation timestamp + +## 3.19.25 - 2016-11-14 + +* `Aws\CognitoIdentityProvider` - Added support for schema attributes in `CreateUserPool` + +## 3.19.24 - 2016-11-10 + +* `Aws\CloudWatchLogs` - Added support for capability that helps pivot from + your logs-extracted metrics + +## 3.19.23 - 2016-11-03 + +* `Aws\DirectConnect` - Added support for tagging on `DirectConnect` resources. + +## 3.19.22 - 2016-11-02 + +* `Aws\Ses` - Adding support for `SES` Metrics + +## 3.19.21 - 2016-11-01 + +* `Aws\CloudFormation` - Adding ResourcesToSkip parameter to `ContinueUpdateRollback` API, + adding support for `ListExports`, new `ChangeSet` types and `Transforms` +* `Aws\Ecr` - Added support for updated paginators + +## 3.19.20 - 2016-10-25 + +* Documentation update for `Autoscaling` and `ElasticloadbalancingV2` + +## 3.19.19 - 2016-10-24 + +* `Aws\Sms` - Added support for new service `AWS Server Migration Service` + +## 3.19.18 - 2016-10-20 + +* `Aws\Budgets` - Added support for new service `AWSBudgetService` + +## 3.19.17 - 2016-10-18 + +* `Aws\Config` - Added support for S3 Bucket resource type +* `Aws\CloudFront` - Added support for `isIPV6Enabled` property for http distributions +* `Aws\Iot` - Added DynamoActionV2 action to IoT Rules Engine +* `Aws\Rds` - Added support for AWS roles integration with `Aurora Cluster` + +## 3.19.16 - 2016-10-17 + +* `Aws\Route53` - Added support for API updates + +## 3.19.15 - 2016-10-13 + +* `Aws\Acm` - Added support for third-party `SSL/TLS` certificates +* `Aws\ElasticBeanstalk` - Added support for `Pagination` for `DescribeApplicationVersions` +* `Aws\Gamelift` - Added support for resource protection + +## 3.19.14 - 2016-10-12 + +* `Aws\Elasticache` - Added support for Redis Cluster +* `Aws\Ecr` - Added support for new API `DescribeImages` +* `Aws\S3` - Added support for `s3-accelerate.dualstack` endpoint + +## 3.19.13 - 2016-10-06 + +* `Aws\Kms` - Add `InvalidMarkerException` as modeled exception in `ListKeys` +* `Aws\CognitoIdentityProvider` - Added new operation `AdminCreateUser` +* `Aws\Waf` - Added support for IPV6 in `IPSetDescriptorType` + +## 3.19.12 - 2016-09-29 + +* `Aws\Ec2` - Added support for new Ec2 instance types and + EC2 Convertible RIs and the EC2 RI regional benefit +* `Aws\S3` - Added support for `partNumber` extension + +## 3.19.11 - 2016-09-27 + +* `Aws\CloudFormation` - Added support for `roleArn` +* `Aws\S3` - Fixed `PostObjectV4` with security token option + +## 3.19.10 - 2016-09-22 + +* `Aws\ApiGateway` - Added new enum values to the service + +## 3.19.9 - 2016-09-20 + +* `Aws\CodeDeploy` - Added support for Rollback deployment +* `Aws\Emr` - Added support for the new end-to-end encryption +* `Aws\Rds` - Added support for local time zone +* `Aws\Redshift` - Added support for `EnhancedVpcRouting` feature + +## 3.19.8 - 2016-09-15 + +* `Aws\Iot` - Added support for changes in `RegisterCertificate` API & + Adding a new field "cannedAcl" in S3 action +* `Aws\Rds` - Added support for Aurora cluster reader endpoint + +## 3.19.7 - 2016-09-13 + +* `Aws\ServiceCatalog` - Added support for API Update for AWS Service Catalog + +## 3.19.6 - 2016-09-08 + +* `Aws\CloudFront` - Added support for HTTP2 + +## 3.19.5 - 2016-09-06 + +* `Aws\Codepipeline` - Added support for pipeline execution details +* `Aws\Rds` - Added support for `DescribeSourceRegions` API +* `Aws\Sns` - Added new exceptions + +## 3.19.4 - 2016-09-01 + +* `Aws\ApplicationAutoScaling` - Added support for automatically scaling an + Amazon EC2 Spot fleet in order to manage application availability and + costs during changes in demand based on conditions you define +* `Aws\CognitoIdentity` - Added support for bulk import of users +* `Aws\Rds` - Added support for the information about option conflicts + to the describe-option-group-options api response +* `Aws\ConfigService` - Added support for a application loadbalancer type +* `Aws\GameLift` - Added support for Linux instance + +## 3.19.3 - 2016-08-30 + +* `Aws\CloudFront` - Added support for QueryString Whitelisting +* `Aws\CodePipeline` - Added support for return pipeline execution details +* `Aws\Ecs` - Added support for simplified waiter +* `Aws\Route53` - Added support for `NAPTR` and new operation `TestDNSAnswer` + +## 3.19.2 - 2016-08-23 + +* `Aws\Rds` - Added support for addition of resource ARNs to `Describe` APIs + +## 3.19.1 - 2016-08-18 + +* `Aws\Ec2` - Added support for for Dedicated Host Reservations and + API Update for `EC2-SpotFleet` +* `Aws\ElasticLoadBalancingV2` - Fix `ElasticLoadBalancingV2` endpoints +* `Aws\WorkSpaces` - Added support for Hourly WorkSpaces APIs + +## 3.19.0 - 2016-08-16 + +* `Aws\Acm` - Added support for increased tagging limit +* `Aws\ApiGateway` - Added support for API usage plans +* `Aws\Ecs` - Added support for memory reservation and `networkMode` on task definitions + +## 3.18.39 - 2016-08-11 + +* `Aws\AutoScaling` - Added support for `ELB` L7 integration +* `Aws\ElasticLoadBalancing` - Added support for `ELBv2` support +* `Aws\KinesisAnalytics` - Added support for new service that 9allows customers to perform SQL queries against streaming data +* `Aws\Kms` - Added support for importing customer-supplied cryptographic keys +* `Aws\S3` - Added support for IPv6 +* `Aws\SnowBall` - Added support for new service `SnowBall`: snowball job management + +## 3.18.38 - 2016-08-09 + +* `Aws\CloudFront` - Added support for tagging API +* `Aws\Ecr` - Added support for `ListImages` filtering +* `Aws\MarketplaceCommerceAnalytics` - Added support for `StartSupportDataExport` +* `Aws\Rds` - Fixing duplicate acceptors in waiters + +## 3.18.37 - 2016-08-04 + +* `Aws\GameLift` - Added support for `GameSession` Search +* `Aws\Lambda` - Added support for throttling reasons, new exception for bad zip file, + and Event Source Token field for add permission request +* `Aws\Rds` - Added support for `MoveToVpc` feature and S3 Snapshot Ingestion + +## 3.18.36 - 2016-08-02 + +* `Aws\CloudWatchLogs` - Added support for Optional Parameter to PutMetricFilterRequest +* `Aws\Emr` - Added support for Enhanced Debugging +* `Aws\Iot` - Added support for `ListOutgoingCertificates` & `AutoRegistration` flag +* `Aws\MachineLearning` - Added support for computing time and entity timestamp +* `Aws\MarketplaceMetering` - API Constraint Update +* `Aws\Rds` - Added support for license migration between BYOL and LI API Update for `AWS-RDS`, + Enable `version` with RDS Options + +## 3.18.35 - 2016-07-28 + +* `Aws\Route53Domains` - API Updates + +## 3.18.34 - 2016-07-28 + +* `Aws\CodeDeploy` - Added support for `DeploymentSuccessful ` waiter +* `Aws\ApiGateway` - Added support for `Cognito`User Pools Auth Support +* `Aws\Ec2` - Added support for DNS for VPC Peering +* `Aws\DirectoryService` - Added support for new API for Microsoft AD to manage routing +* `Aws\Route53Domains` - Added support for `getDomainSuggestions` capability +* `Aws\CognitoIdentity` - Added support for `User Pools` +* `Aws\ElasticsearchService` - Added support for pipeline aggregations to perform advanced + analytics like moving averages and derivatives, and enhancements to geospatial queries + +## 3.18.33 - 2016-07-26 + +`Aws\Iot` - Added support for Thing Types, ":" in Thing Name, and + `separator` in `Firehose` action +`Aws\CloudSearchDomain` - Fix query value in `POST` request + +## 3.18.32 - 2016-07-21 + +`Aws\Acm` - Added support for additional field to return for `Describe Certificate ` +`Aws\Config` - Added support for `ACM`, `RDS` resource types, introducing + Hybrid Rules & Forced Evaluation feature +`Aws\CloudSearchDomain` - Convert long query request to `POST` +`Aws\CloudFormation` - Added support for enum value for API parameter :`Capabilities` +`Aws\ElasticTranscoder` - Added support for WAV file output format +`Aws\Ssm` - Fixing missing paginator for SSM `DescribeInstanceInformation` + +## 3.18.31 - 2016-07-19 + +`Aws\Ssm` - Added support for notification +`Aws\DeviceFarm` - Added support for session based APIs + +## 3.18.30 - 2016-07-18 + +Fix composer version constraints. + +## 3.18.29 - 2016-07-18 + +Updating dependency to a version of Guzzle that addresses CVE-2016-5385. +Please upgrade your version of the SDK or Guzzle if you are using the AWS SDK for PHP +in a CGI process that connects to an `http` endpoint. + +See https://httpoxy.org for more details on the vulnerability. + +## 3.18.28 - 2016-07-13 + +* `Aws\DatabaseMigrationService` - Added support for SSL Endpoint and Replication +* `Aws\Ecs` - Added support for IAM roles for ECS Tasks +* `Aws\Rds` - Adds new method `CopyDBClusterParameterGroup` and + new parameter `TargetDBInstanceIdentifier` to `FailoverDBCluster` API + +## 3.18.27 - 2016-07-07 + +* `Aws\ServiceCatalog` - Added support for `Aws\ServiceCatalog` + +## 3.18.26 - 2016-07-07 + +* `Aws\Config` - Added support for `DeleteConfigurationRecorder` API +* `Aws\DirectoryService` - Added support for tagging APIs + +## 3.18.25 - 2016-07-05 + +* `Aws\CodePipeline` - Added support for manual approvals. + +## 3.18.24 - 2016-07-01 + +* Update composer dependency `"guzzlehttp/psr7": "~1.3.1"` + +## 3.18.23 - 2016-06-30 + +* `Aws\DatabaseMigrationService` - Added support for specify `VpcSecurityGroupId` + for the replication instance +* `Aws\Ssm` - Added support for registering customer servers to enable command function + +## 3.18.22 - 2016-06-28 + +* `Aws\Ec2` - Added support for ENA supported instances +* `Aws\Efs` - Added support for "PerformanceMode" parameter for + CreateFileSystem and DescribeFileSystems +* `Aws\GameLift` - Added support for declaring and inspecting game server + runtime configurations on fleets, including server process launch path, + parameters, and number of concurrent executions +* `Aws\Iot` - Added support for "update" and "delete" an item + through Dynamo DB rule +* `Aws\Sns` - Added Worldwide SMS support +* `Aws\Route53` - Added support for BOM region + +## 3.18.21 - 2016-06-27 + +## 3.18.20 - 2016-06-23 + +* `Aws\CognitoIdentity` - Added support for + Security Assertion Markup Language (SAML) 2.0. +* `Aws\DirectConnect` - Added support for downloading the Letter of Authorization: + Connecting Facility Assignment (LOA-CFA) for Connections and Interconnects +* `Aws\Ec2` - Added support for new operations DescribeIdentityIdFormat + & ModifyIdentityIdFormat + +## 3.18.19 - 2016-06-21 + +* `Aws\CodePipeline` - Added support for Retry Failed Actions +* `Aws\Ec2` - Added support for new VPC resource waiters + +## 3.18.18 - 2016-06-14 + +* `Aws\Rds` - Added support for RDS Cross-region managed binlog replication +* `Aws\CloudTrail` - Added support for new exception to handle + `KMS InvalidStateException` +* `Aws\Ses` - Added support for enhanced customer notifications + +## 3.18.17 - 2016-06-09 + +* `Aws\S3` - Fixed StartAfter option in ListObjectsV2 operation + +## 3.18.16 - 2016-06-07 + +* `Aws\Iot` - Added support for string and numeric values in `hashKey` + and `rangeKey`, update `ListPolicyPrincipals` +* `Aws\MachineLearning` - Added support for tagging operations +* `Aws\Ec2` - Added support for `DescribeSpotFleetRequests` paginator +* `Aws\DynamoDbStreams` - Added support for `ApproximationCreationDateTime` +* `Aws\CloudWatch` - Added support for Alarm waiter + + +## 3.18.15 - 2016-06-02 + +* `Aws\Ec2` - Added support for `type` parameter in RequestSpotFleet API + and `fulfilledCapacity` in DescribeSpotFleetRequests API response + +## 3.18.14 - 2016-05-26 + +* `Aws\ElastiCache` - Added support for exporting a Redis snapshot + to an Amazon S3 bucket + +## 3.18.13 - 2016-05-24 + +* `Aws\Ec2` - Added support for accessing instance console screenshot +* `Aws\Rds` - Added support for cross-account snapshot sharing + +## 3.18.12 - 2016-05-19 + +* `Aws\ApplicationAutoScaling` - Added support for `Aws\ApplicationAutoScaling` + service + +## 3.18.11 - 2016-05-19 + +* `Aws\Firehose` - Added support for configurable retry window for + loading data into Amazon Redshift +* `Aws\Ecs` - Added support for status of ListTaskDefinitionFamilies + +## 3.18.10 - 2016-05-18 + +* `Aws\S3` - Fixed signature with S3 presign request + +## 3.18.9 - 2016-05-17 + +* `Aws\ApplicationDiscoveryService` - Fixed an incorrect model from the previous + release. To use `AWS Discovery` service, please upgrade to this version +* `Aws\WorkSpaces` - Added support for tagging to categorize `Amazon WorkSpaces`, + which also allows allocating usage to cost centers from AWS account bill + +## 3.18.8 - 2016-05-12 + +* `Aws\ApplicationDiscoveryService` - Added support for `Aws Discovery` service +* `Aws\CloudFormation` - Added support for `ExecutionStatus` in `ChangeSets` +* `Aws\Ec2` - Added support for identifying stale security groups in VPC +* `Aws\Ssm` - Added support for document sharing feature + +## 3.18.7 - 2016-05-10 + +* `Aws\` - Added support for new region and endpoints +* `Aws\Emr` - Added support for ListInstances API having filter on instance state +* `Aws\ImportExport` - Added support for `Aws\ImportExport` service + +## 3.18.6 - 2016-05-05 + +* `Aws\ApiGateway` - Added support for additional field on Integration to + control passthrough behavior +* `Aws\CloudTrail` - Deprecates the `SnsTopicName` field in favor of `SnsTopicArn` +* `Aws\Ecs` - Added support for non-comprehensive logDriver enum +* `Aws\Kms` - Added support for "pro-lockout" flag +* `Aws\S3` - Amazon S3 Added a new list type to list objects in buckets + with a large number of delete markers + +## 3.18.5 - 2016-05-03 + +* `Aws\Api` - Fixed serialization of booleans in querystrings +
* `Aws\OpsWorks` - Added support for default tenancy selection + +## 3.18.4 - 2016-04-28 + +* `Aws\OpsWorks` - Added support for default tenancy selection. +* `Aws\Route53Domains` - Added support for getting contact reachability status + and resending contact reachability emails. + +## 3.18.3 - 2016-04-27 + +* `Aws\Api` - Fixed parsing empty responses +* `Aws\CognitoIdentityProvider` - Remove non-JSON operations. +* `Aws\Ec2` - Added support for ClassicLink over VPC peering +* `Aws\Ecr` - This update makes it easier to find repository URIs, + which are now appended to the `#describe_repositories`, `#create_repository`, + and `#delete_repository` responses. +* `Aws\S3` - Added support for Post Object Signature V4 +* `Aws\S3` - Fixed Content-MD5 header for PutBucketReplication + +## 3.18.1 - 2016-04-21 + +* `Aws\Acm` - Added support for tagging. +* `Aws\CognitoIdentity` - Minor update to support some new features of + `Aws\CognitoIdentityProvider`. +* `Aws\Emr` - Added support for smart targeted resizing. +* `Aws\Iot` - Added support for specifying the SQL rules engine to be used. + +## 3.18.0 - 2016-04-19 + +* `Aws\CognitoIdentityProvider` - Added support for the **Amazon Cognito + Identity Provider** service. +* `Aws\ElasticBeanstalk` - Added support for automatic platform version upgrades + with managed updates. +* `Aws\Firehose` - Added support for delivery to AWS Elasticsearch Service. +* `Aws\Kinesis` - Added support for enhanced monitoring. +* `Aws\S3` - Added support for S3 Accelerate. +* `Aws\S3` - Fixed bug where stat cache was not being updated following writes. +* `Aws\Signature` - Fixed inefficiency in S3 presigner. + +## 3.17.6 - 2016-04-11 + +* `Aws\Ec2` - Fixed error codes in EC2 waiters. +* `Aws\Iot` - Added support for registering your own signing CA certificates and + the X.509 certificates signed by your signing CA certificate. + +## 3.17.5 - 2016-04-07 + +* `Aws\DirectoryService` - Added support for conditional forwarders. +* `Aws\ElasticBeanstalk` - Update client to latest version. +* `Aws\Lambda` - Added support for setting the function runtime as Node.js 4.3, + as well as updating function configuration to set the runtime. + +## 3.17.4 - 2016-04-05 + +* `Aws\ApiGateway` - Added support for importing REST APIs. +* `Aws\Glacier` - Fixed tree hash bug caused when content was a single zero. +* `Aws\Route53` - Added support for metric-based and regional health checks. +* `Aws\Signature` - Fixed presigning bug where the signed headers query + parameter value was not lowercased. +* `Aws\Sts` - Added support for getting the caller identity. + +## 3.17.3 - 2016-03-29 + +* `Aws\CloudFormation` - Added support for change sets. +* `Aws\Inspector` - Updated model to latest preview version. +* `Aws\Redshift` - Added support for cluster IAM roles. +* `Aws\Waf` - Added support for XSS protection. + +## 3.17.2 - 2016-03-24 + +* `Aws\ElastiCache` - Added support for vertical scaling. +* `Aws\Rds` - Added support for joining SQL Server DB instances to Active + Directory domains. +* `Aws\StorageGateway` - Added support for setting the local console password. + +## 3.17.1 - 2016-03-22 + +* `Aws\DeviceFarm` - Added support for managing and purchasing offerings. +* `Aws\Rds` - Added support for customizing failover order in Amazon Aurora + clusters. + +## 3.17.0 - 2016-03-17 + +* `Aws\CloudHsm` - Added support for adding tags to, removing tags from, and + listing the tags for a given resource. +* `Aws\Iot` - Added support for new Amazon Elasticsearch Service and Amazon + Cloudwatch rule actions when creating topic rules. +* `Aws\MarketplaceMetering` - Added support for the **AWSMarketplace Metering** + service. +* `Aws\S3` - Added support for lifecycle expiration policy for incomplete + multipart upload and lifecycle expiration policy for expired object delete + marker. +* `Aws\S3` - Added support for automatically removing delete markers which have + no non-current versions underneath them. +* Fixed error handling in the timer middleware. Previously, exceptions were + passed to the success handler instead of any registered error handler. +* Added support for multi-region clients. + +## 3.16.0 - 2016-03-15 + +* `Aws\CodeDeploy` - Added support for getting deployment groups in batches. +* `Aws\DatabaseMigrationService` - Added support for the **AWS Database +Migration Service**. +* `Aws\Ses` - Added support for custom MAIL FROM domains. +* Added support for collecting transfer statistics. + +## 3.15.9 - 2016-03-10 + +* `Aws\GameLift` - Added support for new AutoScaling features. +* `Aws\Iam` - Added support for stable, unique identifying string identifiers on + each entity returned from IAM:ListEntitiesForPolicy. +* `Aws\Redshift` - Added support for restoring a single table from an Amazon + Redshift snapshot instead of restoring the entire cluster. + +## 3.15.8 - 2016-03-08 + +* `Aws\CodeCommit` - Added support for repository triggers. + +## 3.15.7 - 2016-03-03 + +* `Aws\DirectoryService` - Added support for SNS notifications. +* `Aws\Ec2` - Added support for Cross VPC Security Group References with VPC + peering and ClassicLink traffic over VPC peering. + +## 3.15.6 - 2016-03-01 + +* `Aws\ApiGateway` - Added support for flushing all authorizer cache entries on + a stage. +* `Aws\CloudSearchDomain` - Added support for returning field statistics in the + response to a search operation. +* `Aws\DynamoDb` - Added support for describing account limits. + +## 3.15.5 - 2016-02-25 + +* `Aws\AutoScaling` - Added support for specifying an instance ID instead of an + action token when completing lifecycle actions or recording lifecycle action + heartbeats. +* `Aws\CloudFormation` - Added support for retaining specific resources when + deleting stacks. +* `Aws\CloudFormation` - Added support for adding tags when updating stacks. +* `Aws\S3` - Fixed bug where `ContentEncoding` and `ContentLength` were not + returned when calling `HeadObject` on GZipped or deflated objects. +* `Aws\S3` - Fixed iteration bug in `Transfer` encountered when downloading more + than 1,000 objects. +* `Aws\Sns` - Added support for specifying an encoding on an SNS action. + +## 3.15.4 - 2016-02-23 + +* `Aws\Route53` - Added support for SNI health checks. + +## 3.15.3 - 2016-02-18 + +* `Aws\StorageGateway` - Added support for creating tapes with barcodes. +* `Aws\CodeDeploy` - Added support for setting up triggers for a deployment + group. + +## 3.15.2 - 2016-02-16 + +* `Aws\Emr` - Added support for adding EBS storage to an EMR instance. +* `Aws\Rds` - Added support for cross-account sharing of encrypted DB snapshots. + +## 3.15.1 - 2016-02-11 + +* `Aws\ApiGateway` - Added support for custom request authorizers. +* `Aws\AutoScaling` - Added waiters for checking on a group's existence, + deletion, and whether at least the minimum number of instance are in service. +* `Aws\Lambda` - Added support for accessing resources in a VPC from a Lambda + function. + +## 3.15.0 - 2016-02-09 + +* `Aws\Api` - Added support for specifying what kinds of model constraints to + validate. +* `Aws\DynamoDb` - Fixed requeueing mechanism in `WriteRequestBatch`. +* `Aws\GameLift` - Added support for the **Amazon GameLift** service. +* `Aws\MarketplaceCommerceAnalytics` - Added support for customer defined values. +* Added an adapter for using an instance of `Psr\Cache\CacheItemPoolInterface` + as an instance of `Aws\CacheInterface`. +* Updated JsonCompiler to preserve closing parens in strings in source JSON. +* Updated `Aws\AwsClient` to throw a `RuntimeException` on a serialization + attempt. + +## 3.14.2 - 2016-01-28 + +* `Aws\Waf` - Added support for size constraints. +* `Aws\Ssm` - Added paginators for `ListAssociations`, `ListCommandInvocations`, + `ListCommands`, and `ListDocuments`. + +## 3.14.1 - 2016-01-22 + +* `Aws\Acm` - Reverted to standard class naming conventions. + +## 3.14.0 - 2016-01-21 + +* `Aws\ACM` - Added support for the **AWS Certificate Manager** service. +* `Aws\CloudFormation` - Added support for continuing update rollbacks. +* `Aws\CloudFront` - Added support using AWS ACM certificates with CloudFront + distributions. +* `Aws\IoT` - Added support for topic rules. +* `Aws\S3` - Added handler function to automatically request URL encoding and + then decode affected fields when no specific encoding type was requested. + +## 3.13.1 - 2016-01-19 + +* `Aws\DeviceFarm` - Added support for running Appium tests written in Python + against your native, hybrid and browser-based apps on AWS Device Farm. +* `Aws\IotDataPlane` - Fixed handling of invalid JSON returned by the `Publish` + command. +* `Aws\Sts` - Added support for the `RegionDisabledException` (now returned + instead of an AccessDenied when an admin hasn't turned on an STS region). + +## 3.13.0 - 2016-01-14 + +* `Aws\CloudFront` - Added support for new origin security features. +* `Aws\CloudWatchEvents` - Added support for the **Amazon CloudWatch Events** + service. +* `Aws\Ec2` - Added support for scheduled instances. +* `Aws\S3` - Fixed support for using `Iterator`s as a source for `Transfer` + objects. + +## 3.12.2 - 2016-01-12 + +* `Aws\Ec2` - Added support for DNS resolution of public hostnames to private IP + addresses when queried over ClassicLink. Additionally, private hosted zones + associated with your VPC can now be accessed from a linked EC2-Classic + instance. + +## 3.12.1 - 2016-01-06 + +* `Aws\Route53` - Fixed pagination bug on ListResourceRecordSets command. +* `Aws\Sns` - Added the SNS inbound message validator package to the composer + suggestions list to aid discoverability. +* Documentation improvements and additions. + +## 3.12.0 - 2015-12-21 + +* `Aws\Ecr` - Added support for the Amazon EC2 Container Registry. +* `Aws\Emr` - Added support for specifying a service security group when calling + the RunJobFlow API. + +## 3.11.7 - 2015-12-17 + +* `Aws\CloudFront` - Added support for generating signed cookies. +* `Aws\CloudFront` - Added support for GZip compression. +* `Aws\CloudTrail` - Added support for multi-region trails. +* `Aws\Config` - Added for IAM resource types. +* `Aws\Ec2` - Added support for managed NATs. +* `Aws\Rds` - Added support for enhanced monitoring. + +## 3.11.6 - 2015-12-15 + +* `Aws\Ec2` - Added support for specifying encryption on CopyImage commands. + +## 3.11.5 - 2015-12-08 + +* `Aws\AutoScaling` - Added support for setting and describing instance + protection status. +* `Aws\Emr` - Added support for using release labels instead of version numbers. +* `Aws\Rds` - Added support for Aurora encryption at rest. + +## 3.11.4 - 2015-12-03 + +* `Aws\DirectoryService` - Added support for launching a fully managed Microsoft + Active Directory. +* `Aws\Rds` - Added support for specifying a port number when modifying database + instances. +* `Aws\Route53` - Added support for Traffic Flow, a traffic management service. +* `Aws\Ses` - Added support for generating SMTP passwords from credentials. + +## 3.11.3 - 2015-12-01 + +* `Aws\Config` - Update documentation. + +## 3.11.2 - 2015-11-23 + +* `Aws\Config` - Reverted doc model change. + +## 3.11.1 - 2015-11-23 + +* `Aws\Ec2` - Added support for EC2 dedicated hosts. +* `Aws\Ecs` - Added support for task stopped reasons and task start and stop + times. +* `Aws\ElasticBeanstalk` - Added support for composable web applications. +* `Aws\S3` - Added support for the `aws-exec-read` canned ACL on objects. + +## 3.11.0 - 2015-11-19 + +* `Aws\CognitoIdentity` - Added a CognitoIdentity credentials provider. +* `Aws\DeviceFarm` - Marked app ARN as optional on `ScheduleRun` and + `GetDevicePoolCompatibility` operations. +* `Aws\DynamoDb` - Fixed bug where calling `session_regenerate_id` without + changing session data would prevent data from being carried over from the + previous session ID. +* `Aws\Inspector` - Added support for client-side validation of required + parameters throughout service. +* Fixed error parser bug where certain errors could throw an uncaught + parsing exception. + +## 3.10.1 - 2015-11-12 + +* `Aws\Config` - Fixed parsing of null responses. +* `Aws\Rds` - Added support for snapshot attributes. + +## 3.10.0 - 2015-11-10 + +* `Aws\ApiGateway` - Added support for stage variables. +* `Aws\DynamoDb` - Updated the session handler to emit warnings on write and + delete failures. +* `Aws\DynamoDb` - Fixed session ID assignment timing bug encountered in PHP 7. +* `Aws\S3` - Removed ServerSideEncryption parameter from UploadPart operation. +* Added jitter to the default retry delay algorithm. +* Updated the compatibility test script. + +## 3.9.4 - 2015-11-03 + +* `Aws\DeviceFarm` - Added support for managing projects, device pools, runs, + and uploads. +* `Aws\Sts` - Added support for 64-character role session names. + +## 3.9.3 - 2015-11-02 + +* `Aws\Iam` - Added support for service-aware policy simulation. + +## 3.9.2 - 2015-10-29 + +* `Aws\ApiGateway` - Fixed parameter name collision that occurred when calling + `PutIntegration`. +* `Aws\S3` - Added support for asynchronous copy and upload. +* `Aws\S3` - Added support for setting a location constraint other than the + region of the S3 client. + +## 3.9.1 - 2015-10-26 + +* `Aws\ApiGateway` - Fixed erroneous version number. Previous version number + support kept for backwards compatibility, but "2015-06-01" should be + considered deprecated. + +## 3.9.0 - 2015-10-26 + +* `Aws\ApiGateway` - Added support for the **AWS API Gateway** service. +* `Aws\Ssm` - Added support for EC2 Run Command, a new EC2 feature that enables + you to securely and remotely manage the configuration of your Amazon EC2 + Windows instances. + +## 3.8.2 - 2015-10-22 + +* `Aws\AutoScaling` - Added support for EBS encryption. +* `Aws\Iam` - Added support for resource-based policy simulations. + +## 3.8.1 - 2015-10-15 + +* `Aws\Kms` - Added support for scheduling and cancelling key deletions and + listing retirable grants. +* `Aws\S3` - Added support for specifying server side encryption on an when + uploading a part of a multipart upload. + +## 3.8.0 - 2015-10-08 + +* `Aws\Ecs` - Added support for more Docker options hostname, Docker labels, + working directory, networking disabled, privileged execution, read-only root + filesystem, DNS servers, DNS search domains, ulimits, log configuration, extra + hosts (hosts to add to /etc/hosts), and security options (for MLS systems like + SELinux). +* `Aws\Iot` - Added support for the **AWS IoT** service. +* `Aws\IotDataPlane` - Added support for the **AWS IoT Data Plane** service. +* `Aws\Lambda` - Added support for function versioning. + +## 3.7.0 - 2015-10-07 + +* `Aws\ConfigService` - Added support for config rules, evaluation strategies, + and compliance querying. +* `Aws\Firehose` - Added support for the **Amazon Kinesis Firehose** service. +* `Aws\Inspector` - Added support for the **Amazon Inspector** service. +* `Aws\Kinesis` - Added support for increasing and decreasing stream retention + periods. +* `Aws\MarketplaceCommerceAnalytics` - Added support for the **AWS Marketplace + Commerce Analytics** service. + +## 3.6.0 - 2015-10-06 + +* `Aws\CloudFront` - Added support for WebACL identifiers and related + operations. +* `Aws\CloudFront` - Fixed URL presigner to always sign URL-encoded URLs. +* `Aws\Ec2` - Added support for spot blocks. +* `Aws\S3` - Fixed byte range specified on multipart copies. +* `Aws\Waf` - Added support for AWS WAF. + +## 3.5.0 - 2015-10-01 + +* `Aws\Cloudtrail` - Added support for log file integrity validation, log + encryption with AWS KMS–Managed Keys (SSE-KMS), and trail tagging. +* `Aws\ElasticsearchService` - Added support for the Amazon Elasticsearch + Service. +* `Aws\Rds` - Added support for resource tags. +* `Aws\S3` - Added support for copying objects of any size. +* `Aws\Workspaces` - Added support for storage volume encryption with AWS KMS. + +## 3.4.1 - 2015-09-29 + +* `Aws\CloudFormation` - Added support for specifying affected resource types + in `CreateStack` and `UpdateStack` operations. +* `Aws\CloudFormation` - Added support for the `DescribeAccountLimits` API. +* `Aws\Ec2` - Added support modifying previously created spot fleet requests. +* `Aws\Ses` - Added support for inbound email APIs. +* Fixed validation to allow using objects implementing `__toString` for string + fields in serialized output. + +## 3.4.0 - 2015-09-24 + +* `Aws\S3` - Fixed retry handling of networking errors and client socket timeout + errors to ensure the client `retries` option is respected. +* Added `@method` annotations on all clients to support autocomplete and static + analysis. +* Added performance tests to the acceptance test suite. +* Fixed error when `getIterator` was called on a paginator with no specified + `output_token`. +* Added support for reading the `aws_session_token` parameter from credentials + files. + +## 3.3.8 - 2015-09-17 + +* `Aws\CloudWatchLogs` - Added support for export task operations. + +## 3.3.7 - 2015-09-16 + +* `Aws\S3` - Added support for new `STANDARD_IA` storage class. +* `Aws\S3` - Added support for specifying storage class in cross-region + replication configuration. +* `Aws\Sqs` - Added a 'QueueExists' waiter to create a queue and wait until it + has been fully provisioned. + +## 3.3.6 - 2015-09-15 + +* `Aws\Ec2` - Added support for the "diversified" SpotFleet allocation strategy. +* `Aws\Ec2` - Added support for reading `StateMessage` and `DataEncryptionKeyId` + from a `DescribeSnapshots` response. +* `Aws\Efs` - Added support for using a `MountTargetId` parameter instead of a + `FileSystemId` parameter with the `DescribeMountTargets` command. +* `Aws\Route53` - Added support for calculated and latency health checks. +* `Aws\S3` - Fixed warning emitted by `BatchDelete` when no matching objects + were found to delete. + +## 3.3.5 - 2015-09-10 + +* `Aws\Iam` - Added support for new policy simulation APIs. +* `Aws\Kinesis` - Added support for timestamped GetRecords call. +* `Aws\MachineLearning` - Fixed invalid validation constraint on `Predict` + operation. +* `Aws\S3` - Added support for retrying special error cases with the + `ListObjects`, `CompleteMultipartUpload`, `CopyObject`, and `UploadPartCopy`. + +## 3.3.4 - 2015-09-03 + +* `Aws\StorageGateway` - Added support for tagging and untagging resources. + +## 3.3.3 - 2015-08-31 + +* `Aws\Ec2` - Added support for using instance weights with the + `RequestSpotFleet` API. + +## 3.3.2 - 2015-08-27 + +* `Aws\ConfigService` - Added support for the `ListDiscoveredResources` + operation and new resource types. + +## 3.3.1 - 2015-08-25 + +* `Aws\CodePipeline` - Added support for using encryption keys with artifact + stores. + +## 3.3.0 - 2015-08-20 + +* `Aws\S3` - Added support for event notification filters. +* Fixed waiter logic to always retry connection errors. +* Added support for per-command retry count overrides. +* Added support for defining custom patterns for the client debug log to use + to scrub sensitive data from the output logged. +* Moved the work being done by `Aws\JsonCompiler` from run time to build time. +* Fixed bug causing the phar autoloader not to be found when the phar was loaded + from opcache instead of from the filesystem. + +## 3.2.6 - 2015-08-12 + +* `Aws\ElasticBeanstalk` - Added support for enhanced health reporting. +* `Aws\S3` - Fixed retry middleware to ensure that S3 requests are retried + following errors raised by the HTTP handler. +* `Aws\S3` - Made the keys of the configuration array passed to the constructor + of `MultipartUploader` case-insensitive so that its configuration would not + rely on differently-cased keys from that of the `S3Client::putObject` + operation. +* Added an endpoint validation step to the `Aws\AwsClient` constructor so that + invalid endpoint would be reported immediately. + +## 3.2.5 - 2015-08-06 + +* `Aws\Swf` - Added support for invoking AWS Lambda tasks from an Amazon SWF + workflow. + +## 3.2.4 - 2015-08-04 + +* `Aws\DeviceFarm` - Added support for the `GetAccountSettings` operation and + update documentation to reflect new iOS support. +* Made PHP7 test failures fail the build. +* Added support for custom user-agent additions. + +## 3.2.3 - 2015-07-30 + +* `Aws\OpsWorks` - Added support for operations on ECS clusters. +* `Aws\Rds` - Added support for cluster operations for Amazon Aurora. + +## 3.2.2 - 2015-07-28 + +* `Aws\S3` - Added support for receiving the storage class in the responses for + `GetObject` and `HeadObject` operations. +* `Aws\CloudWatchLogs` - Added support for 4 new operations: `PutDestination`, + `PutDestinationPolicy`, `DescribeDestinations`, and `DeleteDestination`. + +## 3.2.1 - 2015-07-23 + +* **SECURITY FIX**: This release addresses a security issue associated with + CVE-2015-5723, specifically, fixes improper default directory umask behavior + that could potentially allow unauthorized modifications of PHP code. +* `Aws\Ec2` - Added support for SpotFleetLaunchSpecification. +* `Aws\Emr` - Added support for Amazon EMR release 4.0.0, which includes a new + application installation and configuration experience, upgraded versions of + Hadoop, Hive, and Spark, and now uses open source standards for ports and + paths. To specify an Amazon EMR release, use the release label parameter (AMI + versions 3.x and 2.x can still be specified with the AMI version parameter). +* `Aws\Glacier` - Added support for the InitiateVaultLock, GetVaultLock, + AbortVaultLock, and CompleteVaultLock API operations. +* Fixed a memory leak that occurred when clients were created and never used. +* Updated JsonCompiler by addressing a potential race condition and ensuring + that caches are invalidated when upgrading to a new version of the SDK. +* Updated protocol and acceptance tests. + +## 3.2.0 - 2015-07-14 + +* `Aws\DeviceFarm` - Added support for AWS DeviceFarm, an app testing service + that enables you to test your Android and Fire OS apps on real, physical + phones and tablets that are hosted by AWS. +* `Aws\DynamoDb` - Added support for consistent scans and update streams. +* `Aws\DynamoDbStreams` - Added support for Amazon DynamoDB Streams, giving you + the ability to subscribe to the transactional log of all changes transpiring + in your DynamoDB table. +* `Aws\S3` - Fixed checksum encoding on multipart upload of non-seekable + streams. +* `Aws\S3\StreamWrapper` - Added guard on rename functionality to ensure wrapper + initialized. + + +## 3.1.0 - 2015-07-09 + +* `Aws\CodeCommit` - Added support for AWS CodeCommit, a secure, highly + scalable, managed source control service that hosts private Git repositories. +* `Aws\CodePipeline` - Added support for AWS CodePipeline, a continuous delivery + service that enables you to model, visualize, and automate the steps required + to release your software. +* `Aws\Iam` - Added support for uploading SSH public keys for authentication + with AWS CodeCommit. +* `Aws\Ses` - Added support for cross-account sending through the sending + authorization feature. + +## 3.0.7 - 2015-07-07 + +* `Aws\AutoScaling` - Added support for step policies. +* `Aws\CloudHsm` - Fixed a naming collision with the `GetConfig` operation. This + operation is now available through the `GetConfigFiles` method. +* `Aws\DynamoDb` - Improved performance when unmarshalling complex documents. +* `Aws\DynamoDb` - Fixed checksum comparison of uncompressed responses. +* `Aws\Ec2` - Added support for encrypted snapshots. +* `Aws\S3` - Added support for user-provided SHA256 checksums for S3 uploads. +* `Aws\S3` - Added support for custom protocols in `Aws\S3\StreamWrapper`. +* Added cucumber integration tests. +* Updated the test suite to be compatible with PHP 7-alpha 2. + +## 3.0.6 - 2015-06-24 + +* `Aws\CloudFront` - Added support for configurable `MaxTTL` and `DefaultTTL`. +* `Aws\ConfigService` - Added support for recording changes for specific + resource types. +* `Aws\Ecs` - Added support for sorting, deregistering, and overriding + environment variables for task definitions. +* `Aws\Glacier` - Added support for the `AddTagsToVault`, `ListTagsForVault`, + and `RemoveTagsFromVault` API operations. +* `Aws\OpwWorks` - Added support for specifying agent versions to be used on + instances. +* `Aws\Redshift` - Added support for the `CreateSnapshotCopyGrant`, + `DescribeSnapshotCopyGrants`, and `DeleteSnapshotCopyGrant` API operations. +* Fixed XML attribute serialization. + +## 3.0.5 - 2015-06-18 + +* `Aws\CognitoSync` - Fixed an issue in the Signature Version 4 implementation + that was causing issues when signing requests to the Cognito Sync service. +* `Aws\ConfigService` - Fixed an issue that was preventing the + `ConfigServiceClient` from working properly. +* `Aws\Ecs` - Added support for sorting, deregistering, and overriding + environment variables for task definitions. +* `Aws\Iam` - Added new paginator and waiter configurations. +* `Aws\S3` - Added support for the `SaveAs` parameter that was in V2. +* `Aws\Sqs` - Fixed an issue that was preventing batch message deletion from + working properly. +* `Aws` - The `Aws\Sdk::createClient()` method is no longer case-sensitive with + service names. + +## 3.0.4 - 2015-06-11 + +* `Aws\AutoScaling` - Added support for attaching and detaching load balancers. +* `Aws\CloudWatchLogs` - Added support for the PutSubscriptionFilter, + DescribeSubscriptionFilters, and DeleteSubscriptionFilter operations. +* `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 + +* `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` - 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. + +## 2.8.6 - 2015-05-21 + +* `Aws\ElasticBeanstalk` - Added support for ResourceName configuration. +* `Aws\ElasticTranscoder` - Added support for configuring AudioPackingMode and + additional CodecOptions. +* `Aws\Kinesis` - Added support for MillisBehindLatest in the result of + GetRecordsOutput. +* `Aws\Kms` - Added support for the UpdateAlias operation. +* `Aws\Lambda` - Fixed an issue with the UpdateFunctionCode operation. + +## 2.8.5 - 2015-05-18 + +* `Aws\Ec2\Ec2Client` - Added support for the new spot fleet API operations. +* `Aws\OpsWorks\OpsWorksClient` - Added support for custom auto-scaling based + on CloudWatch alarms. + +## 2.8.4 - 2015-05-14 + +* `Aws\DirectoryService` - Added support for the AWS Directory Service. +* `Aws\CloudWatchLogs` - Adds support for the FilterLogEvents operation. +* `Aws\CloudFormation` - Adds additional data to the GetTemplateSummary + operation. +* `Aws\Ec2` - Adds support for Amazon VPC endpoints for Amazon S3 and APIs for + migrating Elastic IP Address from EC2-Classic to EC2-VPC. +* `Aws\Ec2` - Fixed an issue with cross-region CopySnapshot such that it now + works with temporary credentials. +* `Aws\Common` - During credential discovery, an invalid credentials file now + allows failover to Instance Profile credentials. + +## 2.8.3 - 2015-05-07 + +* `Aws\Glacier` - Added support for vault access policies. +* `Aws\Route53` - Fixed a `GetCheckerIpRangesResponse` response parsing issue. +* `Aws\S3` - Retrying CompleteMultipartUpload failures by retrying the request. +* `Aws\S3` - Corrected some response handling in the S3 multipart upload + abstraction. +* Expiring instance metadata credentials 30 minutes in advance for more eager + refreshes before the credentials expire. + +## 2.8.2 - 2015-04-23 + +* `Aws\Ec2` - Added support for new VM Import APIs, `including ImportImage`. +* `Aws\Iam` - Added support for the `GetAccessKeyLastUsed` operation. +* `Aws\CloudSearchDomain` - Search responses now include the expressions requested. + +## 2.8.1 - 2015-04-16 + +* `Aws\ConfigService` - Added the 'GetResourceConfigHistory' iterator. +* `Aws\CognitoSync` - Added support for events. +* `Aws\Lambda` - Fixed an issue with the Invoke operation. + +## 2.8.0 - 2015-04-09 + +See the [Upgrading Guide](https://github.com/aws/aws-sdk-php/blob/master/UPGRADING.md) +for details about any changes you may need to make to your code for this upgrade. + +* `Aws\MachineLearning` - Added support for the Amazon Machine Learning service. +* `Aws\WorkSpaces` - Added support for the Amazon WorkSpaces service. +* `Aws\Ecs` - Added support for the ECS service scheduler operations. +* `Aws\S3` - Added support for the `getBucketNotificationConfiguration` and + `putBucketNotificationConfiguration` operations to the `S3Client` to replace + the, now deprecated, `getBucketNotification` and `putBucketNotification` + operations. +* [BC] `Aws\Lambda` - Added support for the new AWS Lambda API, which has been + changed based on customer feedback during Lambda's preview period. +* `Aws\Common` - Deprecated "facades". They will not be present in Version 3 of + the SDK. +* `Aws\Common` - Added `getAwsErrorCode`, `getAwsErrorType` and `getAwsRequestId` + methods to the `ServiceResponseException` to be forward-compatible with + Version 3 of the SDK. + +## 2.7.27 - 2015-04-07 + +* `Aws\DataPipeline` - Added support for `DeactivatePipeline` +* `Aws\ElasticBeanstalk` - Added support for `AbortEnvironmentUpdate` + +## 2.7.26 - 2015-04-02 + +* `Aws\CodeDeploy` - Added support deployments to on-premises instances. +* `Aws\Rds` - Added support for the `DescribeCertificates` operation. +* `Aws\ElasticTranscoder` - Added support for protecting content with PlayReady + Digital Rights Management (DRM). + +## 2.7.25 - 2015-03-26 + +* `Aws\ElasticTranscoder` - Added support for job timing. +* `Aws\Iam` - Added `NamedPolicy` to `GetAccountAuthorizationDetails`. +* `Aws\OpsWorks` - Added `BlockDeviceMapping` support. + +## 2.7.24 - 2015-03-24 + +* `Aws\S3` - Added support for cross-region replication. +* `Aws\S3` - Added support for ["Requester Pays" buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html). + +## 2.7.23 - 2015-03-19 + +* `Aws\ElasticTranscoder` - API update to support AppliedColorSpaceConversion. +* `Aws\CloudSearchDomain` - Adding 504 status code to retry list. + +## 2.7.22 - 2015-03-12 + +* `Aws\CloudFront` - Fixed #482, which affected pre-signing CloudFront URLs. +* `Aws\CloudTrail` - Added support for the `LookupEvents` operation. +* `Aws\CloudWatchLogs` - Added ordering parameters to the `DescribeLogStreams` +* `Aws\Ec2` - Added pagination parameters to the `DescribeSnapshots` operation. + operation. + +## 2.7.21 - 2015-03-04 + +* `Aws\CognitoSync` - Added support for Amazon Cognito Streams. + +## 2.7.20 - 2015-02-23 + +* `Aws\DataPipeline` - Added support for pipeline tagging via the `AddTags` and + `RemoveTags` operations. +* `Aws\Route53` - Added support for the `GetHostedZoneCount` and + `ListHostedZonesByName` operations. + +## 2.7.19 - 2015-02-20 + +* `Aws\CloudFront` - Added support for origin paths in web distributions. +* `Aws\Ecs` - Added support for specifying volumes and mount points. Also +* `Aws\ElasticTranscoder` - Added support for cross-regional resource warnings. +* `Aws\Route53Domains` - Add iterators for `ListDomains` and `ListOperations`. +* `Aws\Ssm` - Added support for the **Amazon Simple Systems Management Service + (SSM)**. +* `Aws\Sts` - Added support for regional endpoints. + switched the client to use a JSON protocol. +* Changed our CHANGELOG format. ;-) + +## 2.7.18 - 2015-02-12 + +* Added support for named and managed policies to the IAM client. +* Added support for tagging operations to the Route 53 Domains client. +* Added support for tagging operations to the ElastiCache client. +* Added support for the Scan API for secondary indexes to the DynamoDB client. +* Added forward compatibility for the `'credentials'`, `'endpoint'`, and + `'http'` configuration options. +* Made the `marshalValue()` and `unmarshalValue()` methods public in the + DynamoDB Marshaler. + +## 2.7.17 - 2015-01-27 + +* Added support for `getShippingLabel` to the AWS Import/Export client. +* Added support for online indexing to the DynamoDB client. +* Updated the AWS Lambda client. + +## 2.7.16 - 2015-01-20 + +* Added support for custom security groups to the Amazon EMR client. +* Added support for the latest APIs to the Amazon Cognito Identity client. +* Added support for ClassicLink to the Auto Scaling client. +* Added the ability to set a client's API version to "latest" for forwards + compatibility with v3. + +## 2.7.15 - 2015-01-15 + +* Added support for [HLS Content Protection](https://aws.amazon.com/releasenotes/3388917394239147) + to the Elastic Transcoder client. +* Updated client factory logic to add the `SignatureListener`, even when + `NullCredentials` have been specified. This way, you can update a client's + credentials later if you want to begin signing requests. + +## 2.7.14 - 2015-01-09 + +* Fixed a regression in the CloudSearch Domain client (#448). + +## 2.7.13 - 2015-01-08 + +* Added the Amazon EC2 Container Service client. +* Added the Amazon CloudHSM client. +* Added support for dynamic fields to the Amazon CloudSearch client. +* Added support for the ClassicLink feature to the Amazon EC2 client. +* Updated the Amazon RDS client to use the latest 2014-10-31 API. +* Updated S3 signature so retries use a new Date header on each attempt. + +## 2.7.12 - 2014-12-18 + +* Added support for task priorities to Amazon Simple Workflow Service. + +## 2.7.11 - 2014-12-17 + +* Updated Amazon EMR to the latest API version. +* Added support for for the new ResetCache API operation to AWS Storage Gateway. + +## 2.7.10 - 2014-12-12 + +* Added support for user data to Amazon Elastic Transcoder. +* Added support for data retrieval policies and audit logging to the Amazon + Glacier client. +* Corrected the AWS Security Token Service endpoint. + +## 2.7.9 - 2014-12-08 + +* The Amazon Simple Queue Service client adds support for the PurgeQueue + operation. +* You can now use AWS OpsWorks with existing EC2 instances and on-premises + servers. + +## 2.7.8 - 2014-12-04 + +* Added support for the `PutRecords` batch operation to `KinesisClient`. +* Added support for the `GetAccountAuthorizationDetails` operation to the + `IamClient`. +* Added support for the `UpdateHostedZoneComment` operation to `Route53Client`. +* Added iterators for `ListEventSources` and `ListFunctions` operations the + `LambdaClient`. + +## 2.7.7 - 2014-11-25 + +* Added a DynamoDB `Marshaler` class, that allows you to marshal JSON documents + or native PHP arrays to the format that DynamoDB requires. You can also + unmarshal item data from operation results back into JSON documents or native + PHP arrays. +* Added support for media file encryption to Amazon Elastic Transcoder. +* Removing a few superfluous `x-amz-server-side-encryption-aws-kms-key-id` from + the Amazon S3 model. +* Added support for using AWS Data Pipeline templates to create pipelines and + bind values to parameters in the pipeline. + +## 2.7.6 - 2014-11-20 + +* Added support for AWS KMS integration to the Amazon Redshift Client. +* Fixed cn-north-1 endpoint for AWS Identity and Access Management. +* Updated `S3Client::getBucketLocation` method to work cross-region regardless + of the region's signature requirements. +* Fixed an issue with the DynamoDbClient that allows it to work better with + with DynamoDB Local. + +## 2.7.5 - 2014-11-13 + +* Added support for AWS Lambda. +* Added support for event notifications to the Amazon S3 client. +* Fixed an issue with S3 pre-signed URLs when using Signature V4. + +## 2.7.4 - 2014-11-12 + +* Added support for the AWS Key Management Service (AWS KMS). +* Added support for AWS CodeDeploy. +* Added support for AWS Config. +* Added support for AWS KMS encryption to the Amazon S3 client. +* Added support for AWS KMS encryption to the Amazon EC2 client. +* Added support for Amazon CloudWatch Logs delivery to the AWS CloudTrail + client. +* Added the GetTemplateSummary operation to the AWS CloudFormation client. +* Fixed an issue with sending signature version 4 Amazon S3 requests that + contained a 0 length body. + +## 2.7.3 - 2014-11-06 + +* Added support for private DNS for Amazon Virtual Private Clouds, health check + failure reasons, and reusable delegation sets to the Amazon Route 53 client. +* Updated the CloudFront model. +* 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 now 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. +* Updated Amazon Cognito Identity client to the latest version. +* Added auto-renew support to the Amazon Route 53 Domains client. +* Updated Amazon EC2 to the latest version. + +## 2.7.1 - 2014-10-16 + +* Updated the Amazon RDS client to the 2014-09-01 API version. +* Added support for advanced Japanese language processing to the Amazon + CloudSearch client. + +## 2.7.0 - 2014-10-08 + +* Added document model support to the Amazon DynamoDB client, including support + for the new data types (`L`, `M`, `BOOL`, and `NULL`), nested attributes, and + expressions. +* Deprecated the `Aws\DynamoDb\Model\Attribute`, `Aws\DynamoDb\Model\Item`, + and `Aws\DynamoDb\Iterator\ItemIterator` classes, and the + `Aws\DynamoDb\DynamoDbClient::formatValue` and + `Aws\DynamoDb\DynamoDbClient::formatAttribute` methods, since they do not + support the new types in the DynamoDB document model. These deprecated classes + and methods still work reliably with `S`, `N`, `B`, `SS`, `NS`, and `BS` + attributes. +* Updated the Amazon DynamoDB client to permanently disable client-side + parameter validation. This needed to be done in order to support the new + document model features. +* Updated the Amazon EC2 client to sign requests with Signature V4. +* Fixed an issue in the S3 service description to make the `VersionId` + work in `S3Client::restoreObject`. + +## 2.6.16 - 2014-09-11 + +* Added support for tagging to the Amazon Kinesis client. +* Added support for setting environment variables to the AWS OpsWorks client. +* Fixed issue #334 to allow the `before_upload` callback to work in the + `S3Client::upload` method. +* Fixed an issue in the Signature V4 signer that was causing an issue with some + CloudSearch Domain operations. + +## 2.6.15 - 2014-08-14 + +* Added support for signing requests to the Amazon CloudSearch Domain client. +* Added support for creating anonymous clients. + +## 2.6.14 - 2014-08-11 + +* Added support for tagging to the Elastic Load Balancing client. + +## 2.6.13 - 2014-07-31 + +* Added support for configurable idle timeouts to the Elastic Load Balancing + client. +* Added support for Lifecycle Hooks, Detach Instances, and Standby to the + AutoScaling client. +* Added support for creating Amazon ElastiCache for Memcached clusters with + nodes in multiple availability zones. +* Added minor fixes to the Amazon EC2 model for ImportVolume, + DescribeNetworkInterfaceAttribute, and DeleteVpcPeeringConnection +* Added support for getGeoLocation and listGeoLocations to the + Amazon Route 53 client. +* Added support for Amazon Route 53 Domains. +* Fixed an issue with deleting nested folders in the Amazon S3 stream wrapper. +* Fixed an issue with the Amazon S3 sync abstraction to ensure that S3->S3 + communication works correctly. +* Added stricter validation to the Amazon SNS MessageValidator. + +## 2.6.12 - 2014-07-16 + +* Added support for adding attachments to support case communications to the + AWS Support API client. +* Added support for credential reports and password rotation features to the + AWS IAM client. +* Added the `ap-northeast-1`, `ap-southeast-1`, and `ap-southeast-2` regions to + the Amazon Kinesis client. +* Added a `listFilter` stream context option that can be used when using + `opendir()` and the Amazon S3 stream wrapper. This option is used to filter + out specific objects from the files yielded from the stream wrapper. +* Fixed #322 so that the download sync builder ignores objects that have a + `GLACIER` storage class. +* Fixed an issue with the S3 SSE-C logic so that HTTPS is only required when + the SSE-C parameters are provided. +* Updated the Travis configuration to include running HHVM tests. + +## 2.6.11 - 2014-07-09 + +* Added support for **Amazon Cognito Identity**. +* Added support for **Amazon Cognito Sync**. +* Added support for **Amazon CloudWatch Logs**. +* Added support for editing existing health checks and associating health checks + with tags to the Amazon Route 53 client. +* Added the ModifySubnetAttribute operation to the Amazon EC2 client. + +## 2.6.10 - 2014-07-02 + +* Added the `ap-northeast-1`, `ap-southeast-1`, and `sa-east-1` regions to the + Amazon CloudTrail client. +* Added the `eu-west-1` and `us-west-2` regions to the Amazon Kinesis client. +* Fixed an issue with the SignatureV4 implementation when used with Amazon S3. +* Fixed an issue with a test that was causing failures when run on EC2 instances + that have associated Instance Metadata credentials. + +## 2.6.9 - 2014-06-26 + +* Added support for the CloudSearchDomain client, which allows you to search and + upload documents to your CloudSearch domains. +* Added support for delivery notifications to the Amazon SES client. +* Updated the CloudFront client to support the 2014-05-31 API. +* Merged PR #316 as a better solution for issue #309. + +## 2.6.8 - 2014-06-20 + +* Added support for closed captions to the Elastic Transcoder client. +* Added support for IAM roles to the Elastic MapReduce client. +* Updated the S3 PostObject to ease customization. +* Fixed an issue in some EC2 waiters by merging PR #306. +* Fixed an issue with the DynamoDB `WriteRequestBatch` by merging PR #310. +* Fixed issue #309, where the `url_stat()` logic in the S3 Stream Wrapper was + affected by a change in PHP 5.5.13. + +## 2.6.7 - 2014-06-12 + +* Added support for Amazon S3 server-side encryption using customer-provided + encryption keys. +* Updated Amazon SNS to support message attributes. +* Updated the Amazon Redshift model to support new cluster parameters. +* Updated PHPUnit dev dependency to 4.* to work around a PHP serializing bug. + +## 2.6.6 - 2014-05-29 + +* Added support for the [Desired Partition Count scaling + option](http://aws.amazon.com/releasenotes/2440176739861815) to the + CloudSearch client. Hebrew is also now a supported language. +* Updated the STS service description to the latest version. +* [Docs] Updated some of the documentation about credential profiles. +* Fixed an issue with the regular expression in the `S3Client::isValidBucketName` + method. See #298. + +## 2.6.5 - 2014-05-22 + +* Added cross-region support for the Amazon EC2 CopySnapshot operation. +* Added AWS Relational Database (RDS) support to the AWS OpsWorks client. +* Added support for tagging environments to the AWS Elastic Beanstalk client. +* Refactored the signature version 4 implementation to be able to pre-sign + most operations. + +## 2.6.4 - 2014-05-20 + +* Added support for lifecycles on versioning enabled buckets to the Amazon S3 + client. +* Fixed an Amazon S3 sync issue which resulted in unnecessary transfers when no + `$keyPrefix` argument was utilized. +* Corrected the `CopySourceIfMatch` and `CopySourceIfNoneMatch` parameter for + Amazon S3 to not use a timestamp shape. +* Corrected the sending of Amazon S3 PutBucketVersioning requests that utilize + the `MFADelete` parameter. + +## 2.6.3 - 2014-05-14 + +* Added the ability to modify Amazon SNS topic settings to the UpdateStack + operation of the AWS CloudFormation client. +* Added support for the us-west-1, ap-southeast-2, and eu-west-1 regions to the + AWS CloudTrail client. +* Removed no longer utilized AWS CloudTrail shapes from the model. + +## 2.6.2 - 2014-05-06 + +* Added support for Amazon SQS message attributes. +* Fixed Amazon S3 multi-part uploads so that manually set ContentType values are not overwritten. +* No longer recalculating file sizes when an Amazon S3 socket timeout occurs because this was causing issues with + multi-part uploads and it is very unlikely ever the culprit of a socket timeout. +* Added better environment variable detection. + +## 2.6.1 - 2014-04-25 + +* Added support for the `~/.aws/credentials` INI file and credential profiles (via the `profile` option) as a safer + alternative to using explicit credentials with the `key` and `secret` options. +* Added support for query filters and improved conditional expressions to the Amazon DynamoDB client. +* Added support for the `ChefConfiguration` parameter to a few operations on the AWS OpsWorks Client. +* Added support for Redis cache cluster snapshots to the Amazon ElastiCache client. +* Added support for the `PlacementTenancy` parameter to the `CreateLaunchConfiguration` operation of the Auto Scaling + client. +* Added support for the new R3 instance types to the Amazon EC2 client. +* Added the `SpotInstanceRequestFulfilled` waiter to the Amazon EC2 client (see #241). +* Improved the S3 Stream Wrapper by adding support for deleting pseudo directories (#264), updating error handling + (#276), and fixing `is_link()` for non-existent keys (#268). +* Fixed #252 and updated the DynamoDB `WriteRequestBatch` abstraction to handle batches that were completely rejected + due to exceeding provisioned throughput. +* Updated the SDK to support Guzzle 3.9.x + +## 2.6.0 - 2014-03-25 + +* [BC] Updated the Amazon CloudSearch client to use the new 2013-01-01 API version (see [their release + notes](http://aws.amazon.com/releasenotes/6125075708216342)). This API version of CloudSearch is significantly + different than the previous one, and is not backwards compatible. See the + [Upgrading Guide](https://github.com/aws/aws-sdk-php/blob/master/UPGRADING.md) for more details. +* Added support for the VPC peering features to the Amazon EC2 client. +* Updated the Amazon EC2 client to use the new 2014-02-01 API version. +* Added support for [resize progress data and the Cluster Revision Number + parameter](http://aws.amazon.com/releasenotes/0485739709714318) to the Amazon Redshift client. +* Added the `ap-northeast-1`, `ap-southeast-2`, and `sa-east-1` regions to the Amazon CloudSearch client. + +## 2.5.4 - 2014-03-20 + +* Added support for [access logs](http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/access-log-collection.html) + to the Elastic Load Balancing client. +* Updated the Elastic Load Balancing client to the latest API version. +* Added support for the `AWS_SECRET_ACCESS_KEY` environment variables. +* Updated the Amazon CloudFront client to use the 2014-01-31 API version. See [their release + notes](http://aws.amazon.com/releasenotes/1900016175520505). +* Updates the AWS OpsWorks client to the latest API version. +* Amazon S3 Stream Wrapper now works correctly with pseudo folder keys created by the AWS Management Console. +* Amazon S3 Stream Wrapper now implements `mkdir()` for nested folders similar to the AWS Management Console. +* Addressed an issue with Amazon S3 presigned-URLs where X-Amz-* headers were not being added to the query string. +* Addressed an issue with the Amazon S3 directory sync where paths that contained dot-segments were not properly. + resolved. Removing the dot segments consistently helps to ensure that files are uploaded to their intended. + destinations and that file key comparisons are accurately performed when determining which files to upload. + +## 2.5.3 - 2014-02-27 + +* Added support for HTTP and HTTPS string-match health checks and HTTPS health checks to the Amazon Route 53 client +* Added support for the UPSERT action for the Amazon Route 53 ChangeResourceRecordSets operation +* Added support for SerialNumber and TokenCode to the AssumeRole operation of the IAM Security Token Service (STS). +* Added support for RequestInterval and FailureThreshold to the Amazon Route53 client. +* Added support for smooth streaming to the Amazon CloudFront client. +* Added the us-west-2, eu-west-1, ap-southeast-2, and ap-northeast-1 regions to the AWS Data Pipeline client. +* Added iterators to the Amazon Kinesis client +* Updated iterator configurations for all services to match our new iterator config spec (care was taken to continue + supporting manually-specified configurations in the old format to prevent BC) +* Updated the Amazon EC2 model to include the latest updates and documentation. Removed deprecated license-related + operations (this is not considered a BC since we have confirmed that these operations are not used by customers) +* Updated the Amazon Route 53 client to use the 2013-04-01 API version +* Fixed several iterator configurations for various services to better support existing operations and parameters +* Fixed an issue with the Amazon S3 client where an exception was thrown when trying to add a default Content-MD5 + header to a request that uses a non-rewindable stream. +* Updated the Amazon S3 PostObject class to work with CNAME style buckets. + +## 2.5.2 - 2014-01-29 + +* Added support for dead letter queues to Amazon SQS +* Added support for the new M3 medium and large instance types to the Amazon EC2 client +* Added support for using the `eu-west-1` and `us-west-2` regions to the Amazon SES client +* Adding content-type guessing to the Amazon S3 stream wrapper (see #210) +* Added an event to the Amazon S3 multipart upload helpers to allow granular customization of multipart uploads during + a sync (see #209) +* Updated Signature V4 logic for Amazon S3 to throw an exception if you attempt to create a presigned URL that expires + later than a week (see #215) +* Fixed the `downloadBucket` and `uploadDirectory` methods to support relative paths and better support + Windows (see #207) +* Fixed issue #195 in the Amazon S3 multipart upload helpers to properly support additional parameters (see #211) +* [Docs] Expanded examples in the [API reference](http://docs.aws.amazon.com/aws-sdk-php/latest/index.html) by default + so they don't get overlooked +* [Docs] Moved the API reference links in the [service-specific user guide + pages](http://docs.aws.amazon.com/aws-sdk-php/guide/latest/index.html#service-specific-guides) to the bottom so + the page's content takes priority + +## 2.5.1 - 2014-01-09 + +* Added support for attaching existing Amazon EC2 instances to an Auto Scaling group to the Auto Scaling client +* Added support for creating launch configurations from existing Amazon EC2 instances to the Auto Scaling client +* Added support for describing Auto Scaling account limits to the Auto Scaling client +* Added better support for block device mappings to the Amazon AutoScaling client when creating launch configurations +* Added support for [ranged inventory retrieval](http://docs.aws.amazon.com/amazonglacier/latest/dev/api-initiate-job-post.html#api-initiate-job-post-vault-inventory-list-filtering) + to the Amazon Glacier client +* [Docs] Updated and added a lot of content in the [User Guide](http://docs.aws.amazon.com/aws-sdk-php/guide/latest/index.html) +* Fixed a bug where the `KinesisClient::getShardIterator()` method was not working properly +* Fixed an issue with Amazon SimpleDB where the 'Value' attribute was marked as required on DeleteAttribute and BatchDeleteAttributes +* Fixed an issue with the Amazon S3 stream wrapper where empty place holder keys were being marked as files instead of directories +* Added the ability to specify a custom signature implementation using a string identifier (e.g., 'v4', 'v2', etc) + +## 2.5.0 - 2013-12-20 + +* Added support for the new **China (Beijing) Region** to various services. This region is currently in limited preview. + Please see <http://www.amazonaws.cn> for more information +* Added support for different audio compression schemes to the Elastic Transcoder client (includes AAC-LC, HE-AAC, + and HE-AACv2) +* Added support for preset and pipeline pagination to the Elastic Transcoder client. You can now view more than the + first 50 presets and pipelines with their corresponding list operations +* Added support for [geo restriction](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/WorkingWithDownloadDistributions.html#georestrictions) + to the Amazon CloudFront client +* [SDK] Added Signature V4 support to the Amazon S3 and Amazon EC2 clients for the new China (Beijing) Region +* [BC] Updated the AWS CloudTrail client to use their latest API changes due to early user feedback. Some parameters in + the `CreateTrail`, `UpdateTrail`, and `GetTrailStatus` have been deprecated and will be completely unavailable as + early as February 15th, 2014. Please see [this announcement on the CloudTrail + forum](https://forums.aws.amazon.com/ann.jspa?annID=2286). We are calling this out as a breaking change now to + encourage you to update your code at this time. +* Updated the Amazon CloudFront client to use the 2013-11-11 API version +* [BC] Updated the Amazon EC2 client to use the latest API. This resulted in a small change to a parameter in the + `RequestSpotInstances` operation. See [this commit](https://github.com/aws/aws-sdk-php/commit/36ae0f68d2a6dcc3bc28222f60ecb318449c4092#diff-bad2f6eac12565bb684f2015364c22bd) + for the change +* [BC] Removed Signature V3 support (no longer needed) and refactored parts of the signature-related classes + +## 2.4.12 - 2013-12-12 + +* Added support for **Amazon Kinesis** +* Added the CloudTrail `LogRecordIterator`, `LogFileIterator`, and `LogFileReader` classes for reading log files + generated by the CloudTrail service +* Added support for resource-level permissions to the AWS OpsWorks client +* Added support for worker environment tiers to the AWS Elastic Beanstalk client +* Added support for the new I2 instance types to the Amazon EC2 client +* Added support for resource tagging to the Amazon Elastic MapReduce client +* Added support for specifying a key encoding type to the Amazon S3 client +* Added support for global secondary indexes to the Amazon DynamoDB client +* Updated the Amazon ElastiCache client to use Signature Version 4 +* Fixed an issue in the waiter factory that caused an error when getting the factory for service clients without any + existing waiters +* Fixed issue #187, where the DynamoDB Session Handler would fail to save the session if all the data is removed + +## 2.4.11 - 2013-11-26 + +* Added support for copying DB snapshots from one AWS region to another to the Amazon RDS client +* Added support for pagination of the `DescribeInstances` and `DescribeTags` operations to the Amazon EC2 client +* Added support for the new C3 instance types and the g2.2xlarge instance type to the Amazon EC2 client +* Added support for enabling *Single Root I/O Virtualization* (SR-IOV) support for the new C3 instance types to the + Amazon EC2 client +* Updated the Amazon EC2 client to use the 2013-10-15 API version +* Updated the Amazon RDS client to use the 2013-09-09 API version +* Updated the Amazon CloudWatch client to use Signature Version 4 + +## 2.4.10 - 2013-11-14 + +* Added support for **AWS CloudTrail** +* Added support for identity federation using SAML 2.0 to the AWS STS client +* Added support for configuring SAML-compliant identity providers to the AWS IAM client +* Added support for event notifications to the Amazon Redshift client +* Added support for HSM storage for encryption keys to the Amazon Redshift client +* Added support for encryption key rotation to the Amazon Redshift client +* Added support for database audit logging to the Amazon Redshift client + +## 2.4.9 - 2013-11-08 + +* Added support for [cross-zone load balancing](http://aws.amazon.com/about-aws/whats-new/2013/11/06/elastic-load-balancing-adds-cross-zone-load-balancing/) + to the Elastic Load Balancing client. +* Added support for a [new gateway configuration](http://aws.amazon.com/about-aws/whats-new/2013/11/05/aws-storage-gateway-announces-gateway-virtual-tape-library/), + Gateway-Virtual Tape Library, to the AWS Storage Gateway client. +* Added support for stack policies to the the AWS CloudFormation client. +* Fixed issue #176 where attempting to upload a direct to Amazon S3 using the `UploadBuilder` failed when using a custom + iterator that needs to be rewound. + +## 2.4.8 - 2013-10-31 + +* Updated the AWS Direct Connect client +* Updated the Amazon Elastic MapReduce client to add support for new EMR APIs, termination of specific cluster + instances, and unlimited EMR steps. + +## 2.4.7 - 2013-10-17 + +* Added support for audio transcoding features to the Amazon Elastic Transcoder client +* Added support for modifying Reserved Instances in a region to the Amazon EC2 client +* Added support for new resource management features to the AWS OpsWorks client +* Added support for additional HTTP methods to the Amazon CloudFront client +* Added support for custom error page configuration to the Amazon CloudFront client +* Added support for the public IP address association of instances in Auto Scaling group via the Auto Scaling client +* Added support for tags and filters to various operations in the Amazon RDS client +* Added the ability to easily specify event listeners on waiters +* Added support for using the `ap-southeast-2` region to the Amazon Glacier client +* Added support for using the `ap-southeast-1` and `ap-southeast-2` regions to the Amazon Redshift client +* Updated the Amazon EC2 client to use the 2013-09-11 API version +* Updated the Amazon CloudFront client to use the 2013-09-27 API version +* Updated the AWS OpsWorks client to use the 2013-07-15 API version +* Updated the Amazon CloudSearch client to use Signature Version 4 +* Fixed an issue with the Amazon S3 Client so that the top-level XML element of the `CompleteMultipartUpload` operation + is correctly sent as `CompleteMultipartUpload` +* Fixed an issue with the Amazon S3 Client so that you can now disable bucket logging using with the `PutBucketLogging` + operation +* Fixed an issue with the Amazon CloudFront so that query string parameters in pre-signed URLs are correctly URL-encoded +* Fixed an issue with the Signature Version 4 implementation where headers with multiple values were sometimes sorted + and signed incorrectly + +## 2.4.6 - 2013-09-12 + +* Added support for modifying EC2 Reserved Instances to the Amazon EC2 client +* Added support for VPC features to the AWS OpsWorks client +* Updated the DynamoDB Session Handler to implement the SessionHandlerInterface of PHP 5.4 when available +* Updated the SNS Message Validator to throw an exception, instead of an error, when the raw post data is invalid +* Fixed an issue in the S3 signature which ensures that parameters are sorted correctly for signing +* Fixed an issue in the S3 client where the Sydney region was not allowed as a `LocationConstraint` for the + `PutObject` operation + +## 2.4.5 - 2013-09-04 + +* Added support for replication groups to the Amazon ElastiCache client +* Added support for using the `us-gov-west-1` region to the AWS CloudFormation client + +## 2.4.4 - 2013-08-29 + +* Added support for assigning a public IP address to an instance at launch to the Amazon EC2 client +* Updated the Amazon EC2 client to use the 2013-07-15 API version +* Updated the Amazon SWF client to sign requests with Signature V4 +* Updated the Instance Metadata client to allow for higher and more customizable connection timeouts +* Fixed an issue with the SDK where XML map structures were not being serialized correctly in some cases +* Fixed issue #136 where a few of the new Amazon SNS mobile push operations were not working properly +* Fixed an issue where the AWS STS `AssumeRoleWithWebIdentity` operation was requiring credentials and a signature + unnecessarily +* Fixed and issue with the `S3Client::uploadDirectory` method so that true key prefixes can be used +* [Docs] Updated the API docs to include sample code for each operation that indicates the parameter structure +* [Docs] Updated the API docs to include more information in the descriptions of operations and parameters +* [Docs] Added a page about Iterators to the user guide + +## 2.4.3 - 2013-08-12 + +* Added support for mobile push notifications to the Amazon SNS client +* Added support for progress reporting on snapshot restore operations to the the Amazon Redshift client +* Updated the Amazon Elastic MapReduce client to use JSON serialization +* Updated the Amazon Elastic MapReduce client to sign requests with Signature V4 +* Updated the SDK to throw `Aws\Common\Exception\TransferException` exceptions when a network error occurs instead of a + `Guzzle\Http\Exception\CurlException`. The TransferException class, however, extends from + `Guzzle\Http\Exception\CurlException`. You can continue to catch the Guzzle `CurlException` or catch + `Aws\Common\Exception\AwsExceptionInterface` to catch any exception that can be thrown by an AWS client +* Fixed an issue with the Amazon S3 stream wrapper where trailing slashes were being added when listing directories + +## 2.4.2 - 2013-07-25 + +* Added support for cross-account snapshot access control to the Amazon Redshift client +* Added support for decoding authorization messages to the AWS STS client +* Added support for checking for required permissions via the `DryRun` parameter to the Amazon EC2 client +* Added support for custom Amazon Machine Images (AMIs) and Chef 11 to the AWS OpsWorks client +* Added an SDK compatibility test to allow users to quickly determine if their system meets the requirements of the SDK +* Updated the Amazon EC2 client to use the 2013-06-15 API version +* Fixed an unmarshalling error with the Amazon EC2 `CreateKeyPair` operation +* Fixed an unmarshalling error with the Amazon S3 `ListMultipartUploads` operation +* Fixed an issue with the Amazon S3 stream wrapper "x" fopen mode +* Fixed an issue with `Aws\S3\S3Client::downloadBucket` by removing leading slashes from the passed `$keyPrefix` argument + +## 2.4.1 - 2013-06-08 + +* Added support for setting watermarks and max framerates to the Amazon Elastic Transcoder client +* Added the `Aws\DynamoDb\Iterator\ItemIterator` class to make it easier to get items from the results of DynamoDB + operations in a simpler form +* Added support for the `cr1.8xlarge` EC2 instance type. Use `Aws\Ec2\Enum\InstanceType::CR1_8XLARGE` +* Added support for the suppression list SES mailbox simulator. Use `Aws\Ses\Enum\MailboxSimulator::SUPPRESSION_LIST` +* [SDK] Fixed an issue with data formats throughout the SDK due to a regression. Dates are now sent over the wire with + the correct format. This issue affected the Amazon EC2, Amazon ElastiCache, AWS Elastic Beanstalk, Amazon EMR, and + Amazon RDS clients +* Fixed an issue with the parameter serialization of the `ImportInstance` operation in the Amazon EC2 client +* Fixed an issue with the Amazon S3 client where the `RoutingRules.Redirect.HostName` parameter of the + `PutBucketWebsite` operation was erroneously marked as required +* Fixed an issue with the Amazon S3 client where the `DeleteObject` operation was missing parameters +* Fixed an issue with the Amazon S3 client where the `Status` parameter of the `PutBucketVersioning` operation did not + properly support the "Suspended" value +* Fixed an issue with the Amazon Glacier `UploadPartGenerator` class so that an exception is thrown if the provided body + to upload is less than 1 byte +* Added MD5 validation to Amazon SQS ReceiveMessage operations + +## 2.4.0 - 2013-06-18 + +* [BC] Updated the Amazon CloudFront client to use the new 2013-05-12 API version which includes changes in how you + configure distributions. If you are not ready to upgrade to the new API, you can configure the SDK to use the previous + version of the API by setting the `version` option to `2012-05-05` when you instantiate the client (See + [`UPGRADING.md`](https://github.com/aws/aws-sdk-php/blob/master/UPGRADING.md)) +* Added abstractions for uploading a local directory to an Amazon S3 bucket (`$s3->uploadDirectory()`) +* Added abstractions for downloading an Amazon S3 bucket to local directory (`$s3->downloadBucket()`) +* Added an easy to way to delete objects from an Amazon S3 bucket that match a regular expression or key prefix +* Added an easy to way to upload an object to Amazon S3 that automatically uses a multipart upload if the size of the + object exceeds a customizable threshold (`$s3->upload()`) +* [SDK] Added facade classes for simple, static access to clients (e.g., `S3::putObject([...])`) +* Added the `Aws\S3\S3Client::getObjectUrl` convenience method for getting the URL of an Amazon S3 object. This works + for both public and pre-signed URLs +* Added support for using the `ap-northeast-1` region to the Amazon Redshift client +* Added support for configuring custom SSL certificates to the Amazon CloudFront client via the `ViewerCertificate` + parameter +* Added support for read replica status to the Amazon RDS client +* Added "magic" access to iterators to make using iterators more convenient (e.g., `$s3->getListBucketsIterator()`) +* Added the `waitUntilDBInstanceAvailable` and `waitUntilDBInstanceDeleted` waiters to the Amazon RDS client +* Added the `createCredentials` method to the AWS STS client to make it easier to create a credentials object from the + results of an STS operation +* Updated the Amazon RDS client to use the 2013-05-15 API version +* Updated request retrying logic to automatically refresh expired credentials and retry with new ones +* Updated the Amazon CloudFront client to sign requests with Signature V4 +* Updated the Amazon SNS client to sign requests with Signature V4, which enables larger payloads +* Updated the S3 Stream Wrapper so that you can use stream resources in any S3 operation without having to manually + specify the `ContentLength` option +* Fixed issue #94 so that the `Aws\S3\BucketStyleListener` is invoked on `command.after_prepare` and presigned URLs + are generated correctly from S3 commands +* Fixed an issue so that creating presigned URLs using the Amazon S3 client now works with temporary credentials +* Fixed an issue so that the `CORSRules.AllowedHeaders` parameter is now available when configuring CORS for Amazon S3 +* Set the Guzzle dependency to ~3.7.0 + +## 2.3.4 - 2013-05-30 + +* Set the Guzzle dependency to ~3.6.0 + +## 2.3.3 - 2013-05-28 + +* Added support for web identity federation in the AWS Security Token Service (STS) API +* Fixed an issue with creating pre-signed Amazon CloudFront RTMP URLs +* Fixed issue #85 to correct the parameter serialization of NetworkInterfaces within the Amazon EC2 RequestSpotInstances + operation + +## 2.3.2 - 2013-05-15 + +* Added support for doing parallel scans to the Amazon DynamoDB client +* [OpsWorks] Added support for using Elastic Load Balancer to the AWS OpsWorks client +* Added support for using EBS-backed instances to the AWS OpsWorks client along with some other minor updates +* Added support for finer-grained error messages to the AWS Data Pipeline client and updated the service description +* Added the ability to set the `key_pair_id` and `private_key` options at the time of signing a CloudFront URL instead + of when instantiating the client +* Added a new [Zip Download](http://pear.amazonwebservices.com/get/aws.zip) for installing the SDK +* Fixed the API version for the AWS Support client to be `2013-04-15` +* Fixed issue #78 by implementing `Aws\S3\StreamWrapper::stream_cast()` for the S3 stream wrapper +* Fixed issue #79 by updating the S3 `ClearBucket` object to work with the `ListObjects` operation +* Fixed issue #80 where the `ETag` was incorrectly labeled as a header value instead of being in the XML body for + the S3 `CompleteMultipartUpload` operation response +* Fixed an issue where the `setCredentials()` method did not properly update the `SignatureListener` +* Updated the required version of Guzzle to `">=3.4.3,<4"` to support Guzzle 3.5 which provides the SDK with improved + memory management + +## 2.3.1 - 2013-04-30 + +* Added support for **AWS Support** +* Added support for using the `eu-west-1` region to the Amazon Redshift client +* Fixed an issue with the Amazon RDS client where the `DownloadDBLogFilePortion` operation was not being serialized + properly +* Fixed an issue with the Amazon S3 client where the `PutObjectCopy` alias was interfering with the `CopyObject` + operation +* Added the ability to manually set a Content-Length header when using the `PutObject` and `UploadPart` operations of + the Amazon S3 client +* Fixed an issue where the Amazon S3 class was not throwing an exception for a non-followable 301 redirect response +* Fixed an issue where `fflush()` was called during the shutdown process of the stream handler for read-only streams + +## 2.3.0 - 2013-04-18 + +* Added support for Local Secondary Indexes to the Amazon DynamoDB client +* [BC] Updated the Amazon DynamoDB client to use the new 2012-08-10 API version which includes changes in how you + specify keys. If you are not ready to upgrade to the new API, you can configure the SDK to use the previous version of + the API by setting the `version` option to `2011-12-05` when you instantiate the client (See + [`UPGRADING.md`](https://github.com/aws/aws-sdk-php/blob/master/UPGRADING.md)). +* Added an Amazon S3 stream wrapper that allows PHP native file functions to be used to interact with S3 buckets and + objects +* Added support for automatically retrying *throttled* requests with exponential backoff to all service clients +* Added a new config option (`version`) to client objects to specify the API version to use if multiple are supported +* Added a new config option (`gc_operation_delay`) to the DynamoDB Session Handler to specify a delay between requests + to the service during garbage collection in order to help regulate the consumption of throughput +* Added support for using the `us-west-2` region to the Amazon Redshift client +* [Docs] Added a way to use marked integration test code as example code in the user guide and API docs +* Updated the Amazon RDS client to sign requests with Signature V4 +* Updated the Amazon S3 client to automatically add the `Content-Type` to `PutObject` and other upload operations +* Fixed an issue where service clients with a global endpoint could have their region for signing set incorrectly if a + region other than `us-east-1` was specified. +* Fixed an issue where reused command objects appended duplicate content to the user agent string +* [SDK] Fixed an issue in a few operations (including `SQS::receiveMessage`) where the `curl.options` could not be + modified +* [Docs] Added key information to the DynamoDB service description to provide more accurate API docs for some operations +* [Docs] Added a page about Waiters to the user guide +* [Docs] Added a page about the DynamoDB Session Handler to the user guide +* [Docs] Added a page about response Models to the user guide +* Bumped the required version of Guzzle to ~3.4.1 + +## 2.2.1 - 2013-03-18 + +* Added support for viewing and downloading DB log files to the Amazon RDS client +* Added the ability to validate incoming Amazon SNS messages. See the `Aws\Sns\MessageValidator` namespace +* Added the ability to easily change the credentials that a client is configured to use via `$client->setCredentials()` +* Added the `client.region_changed` and `client.credentials_changed` events on the client that are triggered when the + `setRegion()` and `setCredentials()` methods are called, respectively +* Added support for using the `ap-southeast-2` region with the Amazon ElastiCache client +* Added support for using the `us-gov-west-1` region with the Amazon SWF client +* Updated the Amazon RDS client to use the 2013-02-12 API version +* Fixed an issue in the Amazon EC2 service description that was affecting the use of the new `ModifyVpcAttribute` and + `DescribeVpcAttribute` operations +* Added `ObjectURL` to the output of an Amazon S3 PutObject operation so that you can more easily retrieve the URL of an + object after uploading +* Added a `createPresignedUrl()` method to any command object created by the Amazon S3 client to more easily create + presigned URLs + +## 2.2.0 - 2013-03-11 + +* Added support for **Amazon Elastic MapReduce (Amazon EMR)** +* Added support for **AWS Direct Connect** +* Added support for **Amazon ElastiCache** +* Added support for **AWS Storage Gateway** +* Added support for **AWS Import/Export** +* Added support for **AWS CloudFormation** +* Added support for **Amazon CloudSearch** +* Added support for [provisioned IOPS](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.ProvisionedIOPS.html) + to the the Amazon RDS client +* Added support for promoting [read replicas](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html) + to the Amazon RDS client +* Added support for [event notification subscriptions](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html) + to the Amazon RDS client +* Added support for enabling\disabling DNS Hostnames and DNS Resolution in Amazon VPC to the Amazon EC2 client +* Added support for enumerating account attributes to the Amazon EC2 client +* Added support for copying AMIs across regions to the Amazon EC2 client +* Added the ability to get a Waiter object from a client using the `getWaiter()` method +* [SDK] Added the ability to load credentials from environmental variables `AWS_ACCESS_KEY_ID` and `AWS_SECRET_KEY`. + This is compatible with AWS Elastic Beanstalk environment configurations +* Added support for using the us-west-1, us-west-2, eu-west-1, and ap-southeast-1 regions with Amazon CloudSearch +* Updated the Amazon RDS client to use the 2013-01-10 API version +* Updated the Amazon EC2 client to use the 2013-02-01 API version +* Added support for using SecurityToken with signature version 2 services +* Added the client User-Agent header to exception messages for easier debugging +* Added an easier way to disable operation parameter validation by setting `validation` to false when creating clients +* Added the ability to disable the exponential backoff plugin +* Added the ability to easily fetch the region name that a client is configured to use via `$client->getRegion()` +* Added end-user guides available at http://docs.aws.amazon.com/aws-sdk-php/guide/latest/ +* Fixed issue #48 where signing Amazon S3 requests with null or empty metadata resulted in a signature error +* Fixed issue #29 where Amazon S3 was intermittently closing a connection +* Updated the Amazon S3 client to parse the AcceptRanges header for HeadObject and GetObject output +* Updated the Amazon Glacier client to allow the `saveAs` parameter to be specified as an alias for `command.response_body` +* Various performance improvements throughout the SDK +* Removed endpoint providers and now placing service region information directly in service descriptions +* Removed client resolvers when creating clients in a client's factory method (this should not have any impact to end users) + +## 2.1.2 - 2013-02-18 + +* Added support for **AWS OpsWorks** + +## 2.1.1 - 2013-02-15 + +* Added support for **Amazon Redshift** +* Added support for **Amazon Simple Queue Service (Amazon SQS)** +* Added support for **Amazon Simple Notification Service (Amazon SNS)** +* Added support for **Amazon Simple Email Service (Amazon SES)** +* Added support for **Auto Scaling** +* Added support for **Amazon CloudWatch** +* Added support for **Amazon Simple Workflow Service (Amazon SWF)** +* Added support for **Amazon Relational Database Service (Amazon RDS)** +* Added support for health checks and failover in Amazon Route 53 +* Updated the Amazon Route 53 client to use the 2012-12-12 API version +* Updated `AbstractWaiter` to dispatch `waiter.before_attempt` and `waiter.before_wait` events +* Updated `CallableWaiter` to allow for an array of context data to be passed to the callable +* Fixed issue #29 so that the stat cache is cleared before performing multipart uploads +* Fixed issue #38 so that Amazon CloudFront URLs are signed properly +* Fixed an issue with Amazon S3 website redirects +* Fixed a URL encoding inconsistency with Amazon S3 and pre-signed URLs +* Fixed issue #42 to eliminate cURL error 65 for JSON services +* Set Guzzle dependency to [~3.2.0](https://github.com/guzzle/guzzle/blob/master/CHANGELOG.md#320-2013-02-14) +* Minimum version of PHP is now 5.3.3 + +## 2.1.0 - 2013-01-28 + +* Waiters now require an associative array as input for the underlying operation performed by a waiter. See + `UPGRADING.md` for details. +* Added support for **Amazon Elastic Compute Cloud (Amazon EC2)** +* Added support for **Amazon Elastic Transcoder** +* Added support for **Amazon SimpleDB** +* Added support for **Elastic Load Balancing** +* Added support for **AWS Elastic Beanstalk** +* Added support for **AWS Identity and Access Management (IAM)** +* Added support for Amazon S3 website redirection rules +* Added support for the `RetrieveByteRange` parameter of the `InitiateJob` operation in Amazon Glacier +* Added support for Signature Version 2 +* Clients now gain more information from service descriptions rather than client factory methods +* Service descriptions are now versioned for clients +* Fixed an issue where Amazon S3 did not use "restore" as a signable resource +* Fixed an issue with Amazon S3 where `x-amz-meta-*` headers were not properly added with the CopyObject operation +* Fixed an issue where the Amazon Glacier client was not using the correct User-Agent header +* Fixed issue #13 in which constants defined by referencing other constants caused errors with early versions of PHP 5.3 + +## 2.0.3 - 2012-12-20 + +* Added support for **AWS Data Pipeline** +* Added support for **Amazon Route 53** +* Fixed an issue with the Amazon S3 client where object keys with slashes were causing errors +* Added a `SaveAs` parameter to the Amazon S3 `GetObject` operation to allow saving the object directly to a file +* Refactored iterators to remove code duplication and ease creation of future iterators + +## 2.0.2 - 2012-12-10 + +* Fixed an issue with the Amazon S3 client where non-DNS compatible buckets that was previously causing a signature + mismatch error +* Fixed an issue with the service description for the Amazon S3 `UploadPart` operation so that it works correctly +* Fixed an issue with the Amazon S3 service description dealing with `response-*` query parameters of `GetObject` +* Fixed an issue with the Amazon S3 client where object keys prefixed by the bucket name were being treated incorrectly +* Fixed an issue with `Aws\S3\Model\MultipartUpload\ParallelTransfer` class +* Added support for the `AssumeRole` operation for AWS STS +* Added a the `UploadBodyListener` which allows upload operations in Amazon S3 and Amazon Glacier to accept file handles + in the `Body` parameter and file paths in the `SourceFile` parameter +* Added Content-Type guessing for uploads +* Added new region endpoints, including sa-east-1 and us-gov-west-1 for Amazon DynamoDB +* Added methods to `Aws\S3\Model\MultipartUpload\UploadBuilder` class to make setting ACL and Content-Type easier + +## 2.0.1 - 2012-11-13 + +* Fixed a signature issue encountered when a request to Amazon S3 is redirected +* Added support for archiving Amazon S3 objects to Amazon Glacier +* Added CRC32 validation of Amazon DynamoDB responses +* Added ConsistentRead support to the `BatchGetItem` operation of Amazon DynamoDB +* Added new region endpoints, including Sydney + +## 2.0.0 - 2012-11-02 + +* Initial release of the AWS SDK for PHP Version 2. See <http://aws.amazon.com/sdkforphp2/> for more information. +* Added support for **Amazon Simple Storage Service (Amazon S3)** +* Added support for **Amazon DynamoDB** +* Added support for **Amazon Glacier** +* Added support for **Amazon CloudFront** +* Added support for **AWS Security Token Service (AWS STS)** diff --git a/lib/aws/GuzzleHttp/Client.php b/lib/aws/GuzzleHttp/Client.php new file mode 100644 index 0000000..8041791 --- /dev/null +++ b/lib/aws/GuzzleHttp/Client.php @@ -0,0 +1,422 @@ +<?php +namespace GuzzleHttp; + +use GuzzleHttp\Cookie\CookieJar; +use GuzzleHttp\Promise; +use GuzzleHttp\Psr7; +use Psr\Http\Message\UriInterface; +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; + +/** + * @method ResponseInterface get(string|UriInterface $uri, array $options = []) + * @method ResponseInterface head(string|UriInterface $uri, array $options = []) + * @method ResponseInterface put(string|UriInterface $uri, array $options = []) + * @method ResponseInterface post(string|UriInterface $uri, array $options = []) + * @method ResponseInterface patch(string|UriInterface $uri, array $options = []) + * @method ResponseInterface delete(string|UriInterface $uri, array $options = []) + * @method Promise\PromiseInterface getAsync(string|UriInterface $uri, array $options = []) + * @method Promise\PromiseInterface headAsync(string|UriInterface $uri, array $options = []) + * @method Promise\PromiseInterface putAsync(string|UriInterface $uri, array $options = []) + * @method Promise\PromiseInterface postAsync(string|UriInterface $uri, array $options = []) + * @method Promise\PromiseInterface patchAsync(string|UriInterface $uri, array $options = []) + * @method Promise\PromiseInterface deleteAsync(string|UriInterface $uri, array $options = []) + */ +class Client implements ClientInterface +{ + /** @var array Default request options */ + private $config; + + /** + * Clients accept an array of constructor parameters. + * + * Here's an example of creating a client using a base_uri and an array of + * default request options to apply to each request: + * + * $client = new Client([ + * 'base_uri' => '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(); + } elseif (!is_callable($config['handler'])) { + throw new \InvalidArgumentException('handler must be a callable'); + } + + // 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), $request->hasHeader('Host')), + $options + ); + } + + public function send(RequestInterface $request, array $options = []) + { + $options[RequestOptions::SYNCHRONOUS] = true; + return $this->sendAsync($request, $options)->wait(); + } + + public function requestAsync($method, $uri = '', 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 = '', 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) + { + // for BC we accept null which would otherwise fail in uri_for + $uri = Psr7\uri_for($uri === null ? '' : $uri); + + if (isset($config['base_uri'])) { + $uri = Psr7\UriResolver::resolve(Psr7\uri_for($config['base_uri']), $uri); + } + + return $uri->getScheme() === '' && $uri->getHost() !== '' ? $uri->withScheme('http') : $uri; + } + + /** + * Configures the default options for a client. + * + * @param array $config + */ + 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. + + // We can only trust the HTTP_PROXY environment variable in a CLI + // process due to the fact that PHP has no reliable mechanism to + // get environment variables that start with "HTTP_". + if (php_sapi_name() == 'cli' && getenv('HTTP_PROXY')) { + $defaults['proxy']['http'] = getenv('HTTP_PROXY'); + } + + if ($proxy = getenv('HTTPS_PROXY')) { + $defaults['proxy']['https'] = $proxy; + } + + if ($noProxy = getenv('NO_PROXY')) { + $cleanedNoProxy = str_replace(' ', '', $noProxy); + $defaults['proxy']['no'] = explode(',', $cleanedNoProxy); + } + + $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_errors + 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 = [ + 'set_headers' => [], + ]; + + if (isset($options['headers'])) { + $modify['set_headers'] = $options['headers']; + unset($options['headers']); + } + + if (isset($options['form_params'])) { + if (isset($options['multipart'])) { + throw new \InvalidArgumentException('You cannot use ' + . 'form_params and multipart at the same time. Use the ' + . 'form_params option if you want to send application/' + . 'x-www-form-urlencoded requests, and the multipart ' + . 'option to send multipart/form-data requests.'); + } + $options['body'] = http_build_query($options['form_params'], '', '&'); + unset($options['form_params']); + // Ensure that we don't have the header in different case and set the new value. + $options['_conditional'] = Psr7\_caseless_remove(['Content-Type'], $options['_conditional']); + $options['_conditional']['Content-Type'] = 'application/x-www-form-urlencoded'; + } + + if (isset($options['multipart'])) { + $options['body'] = new Psr7\MultipartStream($options['multipart']); + unset($options['multipart']); + } + + if (isset($options['json'])) { + $options['body'] = \GuzzleHttp\json_encode($options['json']); + unset($options['json']); + // Ensure that we don't have the header in different case and set the new value. + $options['_conditional'] = Psr7\_caseless_remove(['Content-Type'], $options['_conditional']); + $options['_conditional']['Content-Type'] = 'application/json'; + } + + if (!empty($options['decode_content']) + && $options['decode_content'] !== true + ) { + // Ensure that we don't have the header in different case and set the new value. + $options['_conditional'] = Psr7\_caseless_remove(['Accept-Encoding'], $options['_conditional']); + $modify['set_headers']['Accept-Encoding'] = $options['decode_content']; + } + + 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']) && is_array($options['auth'])) { + $value = $options['auth']; + $type = isset($value[2]) ? strtolower($value[2]) : 'basic'; + switch ($type) { + case 'basic': + // Ensure that we don't have the header in different case and set the new value. + $modify['set_headers'] = Psr7\_caseless_remove(['Authorization'], $modify['set_headers']); + $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; + case 'ntlm': + $options['curl'][CURLOPT_HTTPAUTH] = CURLAUTH_NTLM; + $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 \InvalidArgumentException('query must be a string or array'); + } + $modify['query'] = $value; + unset($options['query']); + } + + // Ensure that sink is not an invalid value. + if (isset($options['sink'])) { + // TODO: Add more sink validation? + if (is_bool($options['sink'])) { + throw new \InvalidArgumentException('sink must not be a boolean'); + } + } + + $request = Psr7\modify_request($request, $modify); + if ($request->getBody() instanceof Psr7\MultipartStream) { + // Use a multipart/form-data POST if a Content-Type is not set. + // Ensure that we don't have the header in different case and set the new value. + $options['_conditional'] = Psr7\_caseless_remove(['Content-Type'], $options['_conditional']); + $options['_conditional']['Content-Type'] = 'multipart/form-data; boundary=' + . $request->getBody()->getBoundary(); + } + + // 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 the "multipart" ' + . 'request option to send a multipart/form-data request.'); + } +} diff --git a/lib/aws/GuzzleHttp/ClientInterface.php b/lib/aws/GuzzleHttp/ClientInterface.php new file mode 100644 index 0000000..2dbcffa --- /dev/null +++ b/lib/aws/GuzzleHttp/ClientInterface.php @@ -0,0 +1,84 @@ +<?php +namespace GuzzleHttp; + +use GuzzleHttp\Promise\PromiseInterface; +use GuzzleHttp\Exception\GuzzleException; +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\UriInterface; + +/** + * Client interface for sending HTTP requests. + */ +interface ClientInterface +{ + const VERSION = '6.3.3'; + + /** + * Send an HTTP request. + * + * @param RequestInterface $request Request to send + * @param array $options Request options to apply to the given + * request and to the transfer. + * + * @return ResponseInterface + * @throws GuzzleException + */ + public function send(RequestInterface $request, array $options = []); + + /** + * Asynchronously send an HTTP request. + * + * @param RequestInterface $request Request to send + * @param array $options Request options to apply to the given + * request and to the transfer. + * + * @return PromiseInterface + */ + public function sendAsync(RequestInterface $request, array $options = []); + + /** + * Create and send an HTTP request. + * + * Use an absolute path to override the base path of the client, or a + * relative path to append to the base path of the client. The URL can + * contain the query string as well. + * + * @param string $method HTTP method. + * @param string|UriInterface $uri URI object or string. + * @param array $options Request options to apply. + * + * @return ResponseInterface + * @throws GuzzleException + */ + public function request($method, $uri, array $options = []); + + /** + * Create and send an asynchronous HTTP request. + * + * Use an absolute path to override the base path of the client, or a + * relative path to append to the base path of the client. The URL can + * contain the query string as well. Use an array to provide a URL + * template and additional variables to use in the URL template expansion. + * + * @param string $method HTTP method + * @param string|UriInterface $uri URI object or string. + * @param array $options Request options to apply. + * + * @return PromiseInterface + */ + public function requestAsync($method, $uri, array $options = []); + + /** + * Get a client configuration option. + * + * These options include default request options of the client, a "handler" + * (if utilized by the concrete client), and a "base_uri" if utilized by + * the concrete client. + * + * @param string|null $option The config option to retrieve. + * + * @return mixed + */ + public function getConfig($option = null); +} diff --git a/lib/aws/GuzzleHttp/Cookie/CookieJar.php b/lib/aws/GuzzleHttp/Cookie/CookieJar.php new file mode 100644 index 0000000..78f2b79 --- /dev/null +++ b/lib/aws/GuzzleHttp/Cookie/CookieJar.php @@ -0,0 +1,314 @@ +<?php +namespace GuzzleHttp\Cookie; + +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; + +/** + * Cookie jar that stores cookies as an array + */ +class CookieJar implements CookieJarInterface +{ + /** @var SetCookie[] Loaded cookie data */ + private $cookies = []; + + /** @var bool */ + private $strictMode; + + /** + * @param bool $strictMode Set to true to throw exceptions when invalid + * cookies are added to the cookie jar. + * @param array $cookieArray Array of SetCookie objects or a hash of + * arrays that can be used with the SetCookie + * constructor + */ + public function __construct($strictMode = false, $cookieArray = []) + { + $this->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; + } + + /** + * @deprecated + */ + public static function getCookieValue($value) + { + return $value; + } + + /** + * Evaluate if this cookie should be persisted to storage + * that survives between requests. + * + * @param SetCookie $cookie Being evaluated. + * @param bool $allowSessionCookies If we should persist session cookies + * @return bool + */ + public static function shouldPersist( + SetCookie $cookie, + $allowSessionCookies = false + ) { + if ($cookie->getExpires() || $allowSessionCookies) { + if (!$cookie->getDiscard()) { + return true; + } + } + + return false; + } + + /** + * Finds and returns the cookie based on the name + * + * @param string $name cookie name to search for + * @return SetCookie|null cookie that was found or null if not found + */ + public function getCookieByName($name) + { + // don't allow a null name + if ($name === null) { + return null; + } + foreach ($this->cookies as $cookie) { + if ($cookie->getName() !== null && strcasecmp($cookie->getName(), $name) === 0) { + return $cookie; + } + } + } + + 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) + { + // If the name string is empty (but not 0), ignore the set-cookie + // string entirely. + $name = $cookie->getName(); + if (!$name && $name !== '0') { + return false; + } + + // 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()); + } + if (0 !== strpos($sc->getPath(), '/')) { + $sc->setPath($this->getCookiePathFromRequest($request)); + } + $this->setCookie($sc); + } + } + } + + /** + * Computes cookie path following RFC 6265 section 5.1.4 + * + * @link https://tools.ietf.org/html/rfc6265#section-5.1.4 + * + * @param RequestInterface $request + * @return string + */ + private function getCookiePathFromRequest(RequestInterface $request) + { + $uriPath = $request->getUri()->getPath(); + if ('' === $uriPath) { + return '/'; + } + if (0 !== strpos($uriPath, '/')) { + return '/'; + } + if ('/' === $uriPath) { + return '/'; + } + if (0 === $lastSlashPos = strrpos($uriPath, '/')) { + return '/'; + } + + return substr($uriPath, 0, $lastSlashPos); + } + + 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() . '=' + . $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/GuzzleHttp/Cookie/CookieJarInterface.php b/lib/aws/GuzzleHttp/Cookie/CookieJarInterface.php new file mode 100644 index 0000000..2cf298a --- /dev/null +++ b/lib/aws/GuzzleHttp/Cookie/CookieJarInterface.php @@ -0,0 +1,84 @@ +<?php +namespace GuzzleHttp\Cookie; + +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; + +/** + * Stores HTTP cookies. + * + * It extracts cookies from HTTP requests, and returns them in HTTP responses. + * CookieJarInterface instances automatically expire contained cookies when + * necessary. Subclasses are also responsible for storing and retrieving + * cookies from a file, database, etc. + * + * @link http://docs.python.org/2/library/cookielib.html Inspiration + */ +interface CookieJarInterface extends \Countable, \IteratorAggregate +{ + /** + * Create a request with added cookie headers. + * + * If no matching cookies are found in the cookie jar, then no Cookie + * header is added to the request and the same request is returned. + * + * @param RequestInterface $request Request object to modify. + * + * @return RequestInterface returns the modified request. + */ + public function withCookieHeader(RequestInterface $request); + + /** + * Extract cookies from an HTTP response and store them in the CookieJar. + * + * @param RequestInterface $request Request that was sent + * @param ResponseInterface $response Response that was received + */ + public function extractCookies( + RequestInterface $request, + ResponseInterface $response + ); + + /** + * Sets a cookie in the cookie jar. + * + * @param SetCookie $cookie Cookie to set. + * + * @return bool Returns true on success or false on failure + */ + public function setCookie(SetCookie $cookie); + + /** + * Remove cookies currently held in the cookie jar. + * + * Invoking this method without arguments will empty the whole cookie jar. + * If given a $domain argument only cookies belonging to that domain will + * be removed. If given a $domain and $path argument, cookies belonging to + * the specified path within that domain are removed. If given all three + * arguments, then the cookie with the specified name, path and domain is + * removed. + * + * @param string $domain Clears cookies matching a domain + * @param string $path Clears cookies matching a domain and path + * @param string $name Clears cookies matching a domain, path, and name + * + * @return CookieJarInterface + */ + public function clear($domain = null, $path = null, $name = null); + + /** + * Discard all sessions cookies. + * + * Removes cookies that don't have an expire field or a have a discard + * field set to true. To be called when the user agent shuts down according + * to RFC 2965. + */ + public function clearSessionCookies(); + + /** + * Converts the cookie jar to an array. + * + * @return array + */ + public function toArray(); +} diff --git a/lib/aws/GuzzleHttp/Cookie/FileCookieJar.php b/lib/aws/GuzzleHttp/Cookie/FileCookieJar.php new file mode 100644 index 0000000..9887c1d --- /dev/null +++ b/lib/aws/GuzzleHttp/Cookie/FileCookieJar.php @@ -0,0 +1,90 @@ +<?php +namespace GuzzleHttp\Cookie; + +/** + * Persists non-session cookies using a JSON formatted file + */ +class FileCookieJar extends CookieJar +{ + /** @var string filename */ + private $filename; + + /** @var bool Control whether to persist session cookies or not. */ + private $storeSessionCookies; + + /** + * Create a new FileCookieJar object + * + * @param string $cookieFile File to store the cookie data + * @param bool $storeSessionCookies Set to true to store session cookies + * in the cookie jar. + * + * @throws \RuntimeException if the file cannot be found or created + */ + public function __construct($cookieFile, $storeSessionCookies = false) + { + $this->filename = $cookieFile; + $this->storeSessionCookies = $storeSessionCookies; + + 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 (CookieJar::shouldPersist($cookie, $this->storeSessionCookies)) { + $json[] = $cookie->toArray(); + } + } + + $jsonStr = \GuzzleHttp\json_encode($json); + if (false === file_put_contents($filename, $jsonStr)) { + 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}"); + } elseif ($json === '') { + return; + } + + $data = \GuzzleHttp\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/GuzzleHttp/Cookie/SessionCookieJar.php b/lib/aws/GuzzleHttp/Cookie/SessionCookieJar.php new file mode 100644 index 0000000..4497bcf --- /dev/null +++ b/lib/aws/GuzzleHttp/Cookie/SessionCookieJar.php @@ -0,0 +1,71 @@ +<?php +namespace GuzzleHttp\Cookie; + +/** + * Persists cookies in the client session + */ +class SessionCookieJar extends CookieJar +{ + /** @var string session key */ + private $sessionKey; + + /** @var bool Control whether to persist session cookies or not. */ + private $storeSessionCookies; + + /** + * Create a new SessionCookieJar object + * + * @param string $sessionKey Session key name to store the cookie + * data in session + * @param bool $storeSessionCookies Set to true to store session cookies + * in the cookie jar. + */ + public function __construct($sessionKey, $storeSessionCookies = false) + { + $this->sessionKey = $sessionKey; + $this->storeSessionCookies = $storeSessionCookies; + $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 (CookieJar::shouldPersist($cookie, $this->storeSessionCookies)) { + $json[] = $cookie->toArray(); + } + } + + $_SESSION[$this->sessionKey] = json_encode($json); + } + + /** + * Load the contents of the client session into the data array + */ + protected function load() + { + if (!isset($_SESSION[$this->sessionKey])) { + return; + } + $data = json_decode($_SESSION[$this->sessionKey], 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/GuzzleHttp/Cookie/SetCookie.php b/lib/aws/GuzzleHttp/Cookie/SetCookie.php new file mode 100644 index 0000000..f699394 --- /dev/null +++ b/lib/aws/GuzzleHttp/Cookie/SetCookie.php @@ -0,0 +1,403 @@ +<?php +namespace GuzzleHttp\Cookie; + +/** + * Set-Cookie object + */ +class SetCookie +{ + /** @var array */ + private static $defaults = [ + 'Name' => 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 exist and include an equal sign. + if (empty($pieces[0]) || !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. + * + * A request-path path-matches a given cookie-path if at least one of + * the following conditions holds: + * + * - The cookie-path and the request-path are identical. + * - The cookie-path is a prefix of the request-path, and the last + * character of the cookie-path is %x2F ("/"). + * - 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. + * + * @param string $requestPath Path to check against + * + * @return bool + */ + public function matchesPath($requestPath) + { + $cookiePath = $this->getPath(); + + // Match on exact matches or when path is the default empty "/" + if ($cookiePath === '/' || $cookiePath == $requestPath) { + return true; + } + + // Ensure that the cookie-path is a prefix of the request path. + if (0 !== strpos($requestPath, $cookiePath)) { + return false; + } + + // Match if the last character of the cookie-path is "/" + if (substr($cookiePath, -1, 1) === '/') { + return true; + } + + // Match if the first character not included in cookie path is "/" + return substr($requestPath, strlen($cookiePath), 1) === '/'; + } + + /** + * 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, '/') . '$/', $domain); + } + + /** + * Check if the cookie is expired + * + * @return bool + */ + public function isExpired() + { + return $this->getExpires() !== null && 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( + '/[\x00-\x20\x22\x28-\x29\x2c\x2f\x3a-\x40\x5c\x7b\x7d\x7f]/', + $name + )) { + return 'Cookie name must not contain invalid characters: ASCII ' + . 'Control characters (0-31;127), space, tab and the ' + . 'following characters: ()<>@,;:\"/?={}'; + } + + // 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/GuzzleHttp/Exception/BadResponseException.php b/lib/aws/GuzzleHttp/Exception/BadResponseException.php new file mode 100644 index 0000000..427d896 --- /dev/null +++ b/lib/aws/GuzzleHttp/Exception/BadResponseException.php @@ -0,0 +1,27 @@ +<?php +namespace GuzzleHttp\Exception; + +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; + +/** + * Exception when an HTTP error occurs (4xx or 5xx error) + */ +class BadResponseException extends RequestException +{ + public function __construct( + $message, + RequestInterface $request, + ResponseInterface $response = null, + \Exception $previous = null, + array $handlerContext = [] + ) { + if (null === $response) { + @trigger_error( + 'Instantiating the ' . __CLASS__ . ' class without a Response is deprecated since version 6.3 and will be removed in 7.0.', + E_USER_DEPRECATED + ); + } + parent::__construct($message, $request, $response, $previous, $handlerContext); + } +} diff --git a/lib/aws/GuzzleHttp/Exception/ClientException.php b/lib/aws/GuzzleHttp/Exception/ClientException.php new file mode 100644 index 0000000..f95c09f --- /dev/null +++ b/lib/aws/GuzzleHttp/Exception/ClientException.php @@ -0,0 +1,7 @@ +<?php +namespace GuzzleHttp\Exception; + +/** + * Exception when a client error is encountered (4xx codes) + */ +class ClientException extends BadResponseException {} diff --git a/lib/aws/GuzzleHttp/Exception/ConnectException.php b/lib/aws/GuzzleHttp/Exception/ConnectException.php new file mode 100644 index 0000000..d33b0cc --- /dev/null +++ b/lib/aws/GuzzleHttp/Exception/ConnectException.php @@ -0,0 +1,37 @@ +<?php +namespace GuzzleHttp\Exception; + +use Psr\Http\Message\RequestInterface; + +/** + * Exception thrown when a connection cannot be established. + * + * Note that no response is present for a ConnectException + */ +class ConnectException extends RequestException +{ + public function __construct( + $message, + RequestInterface $request, + \Exception $previous = null, + array $handlerContext = [] + ) { + parent::__construct($message, $request, null, $previous, $handlerContext); + } + + /** + * @return null + */ + public function getResponse() + { + return null; + } + + /** + * @return bool + */ + public function hasResponse() + { + return false; + } +} diff --git a/lib/aws/GuzzleHttp/Exception/GuzzleException.php b/lib/aws/GuzzleHttp/Exception/GuzzleException.php new file mode 100644 index 0000000..510778f --- /dev/null +++ b/lib/aws/GuzzleHttp/Exception/GuzzleException.php @@ -0,0 +1,13 @@ +<?php +namespace GuzzleHttp\Exception; + +/** + * @method string getMessage() + * @method \Throwable|null getPrevious() + * @method mixed getCode() + * @method string getFile() + * @method int getLine() + * @method array getTrace() + * @method string getTraceAsString() + */ +interface GuzzleException {} diff --git a/lib/aws/GuzzleHttp/Exception/RequestException.php b/lib/aws/GuzzleHttp/Exception/RequestException.php new file mode 100644 index 0000000..39de327 --- /dev/null +++ b/lib/aws/GuzzleHttp/Exception/RequestException.php @@ -0,0 +1,217 @@ +<?php +namespace GuzzleHttp\Exception; + +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; +use GuzzleHttp\Promise\PromiseInterface; +use Psr\Http\Message\UriInterface; + +/** + * HTTP Request exception + */ +class RequestException extends TransferException +{ + /** @var RequestInterface */ + private $request; + + /** @var ResponseInterface */ + private $response; + + /** @var array */ + private $handlerContext; + + public function __construct( + $message, + RequestInterface $request, + ResponseInterface $response = null, + \Exception $previous = null, + array $handlerContext = [] + ) { + // Set the code of the exception if the response is set and not future. + $code = $response && !($response instanceof PromiseInterface) + ? $response->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 = (int) floor($response->getStatusCode() / 100); + if ($level === 4) { + $label = 'Client error'; + $className = ClientException::class; + } elseif ($level === 5) { + $label = 'Server error'; + $className = ServerException::class; + } else { + $label = 'Unsuccessful request'; + $className = __CLASS__; + } + + $uri = $request->getUri(); + $uri = static::obfuscateUri($uri); + + // Client Error: `GET /` resulted in a `404 Not Found` response: + // <html> ... (truncated) + $message = sprintf( + '%s: `%s %s` resulted in a `%s %s` response', + $label, + $request->getMethod(), + $uri, + $response->getStatusCode(), + $response->getReasonPhrase() + ); + + $summary = static::getResponseBodySummary($response); + + if ($summary !== null) { + $message .= ":\n{$summary}\n"; + } + + return new $className($message, $request, $response, $previous, $ctx); + } + + /** + * Get a short summary of the response + * + * Will return `null` if the response is not printable. + * + * @param ResponseInterface $response + * + * @return string|null + */ + public static function getResponseBodySummary(ResponseInterface $response) + { + $body = $response->getBody(); + + if (!$body->isSeekable()) { + return null; + } + + $size = $body->getSize(); + + if ($size === 0) { + return null; + } + + $summary = $body->read(120); + $body->rewind(); + + if ($size > 120) { + $summary .= ' (truncated...)'; + } + + // Matches any printable character, including unicode characters: + // letters, marks, numbers, punctuation, spacing, and separators. + if (preg_match('/[^\pL\pM\pN\pP\pS\pZ\n\r\t]/', $summary)) { + return null; + } + + return $summary; + } + + /** + * Obfuscates URI if there is an username and a password present + * + * @param UriInterface $uri + * + * @return UriInterface + */ + private static function obfuscateUri($uri) + { + $userInfo = $uri->getUserInfo(); + + if (false !== ($pos = strpos($userInfo, ':'))) { + return $uri->withUserInfo(substr($userInfo, 0, $pos), '***'); + } + + return $uri; + } + + /** + * 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/GuzzleHttp/Exception/SeekException.php b/lib/aws/GuzzleHttp/Exception/SeekException.php new file mode 100644 index 0000000..a77c289 --- /dev/null +++ b/lib/aws/GuzzleHttp/Exception/SeekException.php @@ -0,0 +1,27 @@ +<?php +namespace GuzzleHttp\Exception; + +use Psr\Http\Message\StreamInterface; + +/** + * Exception thrown when a seek fails on a stream. + */ +class SeekException extends \RuntimeException implements GuzzleException +{ + private $stream; + + public function __construct(StreamInterface $stream, $pos = 0, $msg = '') + { + $this->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/GuzzleHttp/Exception/ServerException.php b/lib/aws/GuzzleHttp/Exception/ServerException.php new file mode 100644 index 0000000..7cdd340 --- /dev/null +++ b/lib/aws/GuzzleHttp/Exception/ServerException.php @@ -0,0 +1,7 @@ +<?php +namespace GuzzleHttp\Exception; + +/** + * Exception when a server error is encountered (5xx codes) + */ +class ServerException extends BadResponseException {} diff --git a/lib/aws/GuzzleHttp/Exception/TooManyRedirectsException.php b/lib/aws/GuzzleHttp/Exception/TooManyRedirectsException.php new file mode 100644 index 0000000..b60a967 --- /dev/null +++ b/lib/aws/GuzzleHttp/Exception/TooManyRedirectsException.php @@ -0,0 +1,4 @@ +<?php +namespace GuzzleHttp\Exception; + +class TooManyRedirectsException extends RequestException {} diff --git a/lib/aws/GuzzleHttp/Exception/TransferException.php b/lib/aws/GuzzleHttp/Exception/TransferException.php new file mode 100644 index 0000000..b92071c --- /dev/null +++ b/lib/aws/GuzzleHttp/Exception/TransferException.php @@ -0,0 +1,4 @@ +<?php +namespace GuzzleHttp\Exception; + +class TransferException extends \RuntimeException implements GuzzleException {} diff --git a/lib/aws/GuzzleHttp/Handler/CurlFactory.php b/lib/aws/GuzzleHttp/Handler/CurlFactory.php new file mode 100644 index 0000000..e092371 --- /dev/null +++ b/lib/aws/GuzzleHttp/Handler/CurlFactory.php @@ -0,0 +1,565 @@ +<?php +namespace GuzzleHttp\Handler; + +use GuzzleHttp\Exception\RequestException; +use GuzzleHttp\Exception\ConnectException; +use GuzzleHttp\Promise\FulfilledPromise; +use GuzzleHttp\Psr7; +use GuzzleHttp\Psr7\LazyOpenStream; +use GuzzleHttp\TransferStats; +use Psr\Http\Message\RequestInterface; + +/** + * Creates curl resources from a request + */ +class CurlFactory implements CurlFactoryInterface +{ + /** @var array */ + private $handles = []; + + /** @var int Total number of idle handles to keep in cache */ + private $maxHandles; + + /** + * @param int $maxHandles Maximum number of idle handles. + */ + public function __construct($maxHandles) + { + $this->maxHandles = $maxHandles; + } + + public function create(RequestInterface $request, array $options) + { + if (isset($options['curl']['body_as_string'])) { + $options['_body_as_string'] = $options['curl']['body_as_string']; + unset($options['curl']['body_as_string']); + } + + $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']); + + // Add handler options from the request configuration options + if (isset($options['curl'])) { + $conf = array_replace($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 { + // Remove all callback functions as they can hold onto references + // and are not cleaned up by curl_reset. Using curl_setopt_array + // does not work for some reason, so removing each one + // individually. + curl_setopt($resource, CURLOPT_HEADERFUNCTION, null); + curl_setopt($resource, CURLOPT_READFUNCTION, null); + curl_setopt($resource, CURLOPT_WRITEFUNCTION, null); + curl_setopt($resource, CURLOPT_PROGRESSFUNCTION, null); + 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 (isset($easy->options['on_stats'])) { + self::invokeStats($easy); + } + + 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 invokeStats(EasyHandle $easy) + { + $curlStats = curl_getinfo($easy->handle); + $stats = new TransferStats( + $easy->request, + $easy->response, + $curlStats['total_time'], + $easy->errno, + $curlStats + ); + call_user_func($easy->options['on_stats'], $stats); + } + + 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_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 \GuzzleHttp\Promise\rejection_for( + 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 \GuzzleHttp\Promise\rejection_for($error); + } + + private function getDefaultConf(EasyHandle $easy) + { + $conf = [ + '_headers' => $easy->request->getHeaders(), + CURLOPT_CUSTOMREQUEST => $easy->request->getMethod(), + CURLOPT_URL => (string) $easy->request->getUri()->withFragment(''), + CURLOPT_RETURNTRANSFER => false, + CURLOPT_HEADER => false, + CURLOPT_CONNECTTIMEOUT => 150, + ]; + + if (defined('CURLOPT_PROTOCOLS')) { + $conf[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(); + if ($body->isSeekable()) { + $body->rewind(); + } + $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) { + $value = (string) $value; + if ($value === '') { + // cURL requires a special format for empty headers. + // See https://github.com/guzzle/guzzle/issues/1882 for more details. + $conf[CURLOPT_HTTPHEADER][] = "$name;"; + } else { + $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'])) { + // Throw an error if the file/folder/link path is not valid or doesn't exist. + if (!file_exists($options['verify'])) { + throw new \InvalidArgumentException( + "SSL CA bundle not found: {$options['verify']}" + ); + } + // If it's a directory or a link to a directory use CURLOPT_CAPATH. + // If not, it's probably a file, or a link to a file, so use CURLOPT_CAINFO. + if (is_dir($options['verify']) || + (is_link($options['verify']) && is_dir(readlink($options['verify'])))) { + $conf[CURLOPT_CAPATH] = $options['verify']; + } else { + $conf[CURLOPT_CAINFO] = $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]); + } + $timeoutRequiresNoSignal = false; + if (isset($options['timeout'])) { + $timeoutRequiresNoSignal |= $options['timeout'] < 1; + $conf[CURLOPT_TIMEOUT_MS] = $options['timeout'] * 1000; + } + + // CURL default value is CURL_IPRESOLVE_WHATEVER + if (isset($options['force_ip_resolve'])) { + if ('v4' === $options['force_ip_resolve']) { + $conf[CURLOPT_IPRESOLVE] = CURL_IPRESOLVE_V4; + } elseif ('v6' === $options['force_ip_resolve']) { + $conf[CURLOPT_IPRESOLVE] = CURL_IPRESOLVE_V6; + } + } + + if (isset($options['connect_timeout'])) { + $timeoutRequiresNoSignal |= $options['connect_timeout'] < 1; + $conf[CURLOPT_CONNECTTIMEOUT_MS] = $options['connect_timeout'] * 1000; + } + + if ($timeoutRequiresNoSignal && strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') { + $conf[CURLOPT_NOSIGNAL] = true; + } + + if (isset($options['proxy'])) { + if (!is_array($options['proxy'])) { + $conf[CURLOPT_PROXY] = $options['proxy']; + } else { + $scheme = $easy->request->getUri()->getScheme(); + if (isset($options['proxy'][$scheme])) { + $host = $easy->request->getUri()->getHost(); + if (!isset($options['proxy']['no']) || + !\GuzzleHttp\is_host_in_noproxy($host, $options['proxy']['no']) + ) { + $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 = $easy->options['on_headers']; + + if (!is_callable($onHeaders)) { + throw new \InvalidArgumentException('on_headers must be callable'); + } + } else { + $onHeaders = null; + } + + return function ($ch, $h) use ( + $onHeaders, + $easy, + &$startingResponse + ) { + $value = trim($h); + if ($value === '') { + $startingResponse = true; + $easy->createResponse(); + if ($onHeaders !== null) { + 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/GuzzleHttp/Handler/CurlFactoryInterface.php b/lib/aws/GuzzleHttp/Handler/CurlFactoryInterface.php new file mode 100644 index 0000000..b0fc236 --- /dev/null +++ b/lib/aws/GuzzleHttp/Handler/CurlFactoryInterface.php @@ -0,0 +1,27 @@ +<?php +namespace GuzzleHttp\Handler; + +use Psr\Http\Message\RequestInterface; + +interface CurlFactoryInterface +{ + /** + * Creates a cURL handle resource. + * + * @param RequestInterface $request Request + * @param array $options Transfer options + * + * @return EasyHandle + * @throws \RuntimeException when an option cannot be applied + */ + public function create(RequestInterface $request, array $options); + + /** + * Release an easy handle, allowing it to be reused or closed. + * + * This function must call unset on the easy handle's "handle" property. + * + * @param EasyHandle $easy + */ + public function release(EasyHandle $easy); +} diff --git a/lib/aws/GuzzleHttp/Handler/CurlHandler.php b/lib/aws/GuzzleHttp/Handler/CurlHandler.php new file mode 100644 index 0000000..43577da --- /dev/null +++ b/lib/aws/GuzzleHttp/Handler/CurlHandler.php @@ -0,0 +1,45 @@ +<?php +namespace GuzzleHttp\Handler; + +use GuzzleHttp\Psr7; +use Psr\Http\Message\RequestInterface; + +/** + * HTTP handler that uses cURL easy handles as a transport layer. + * + * When using the CurlHandler, custom curl options can be specified as an + * associative array of curl option constants mapping to values in the + * **curl** key of the "client" key of the request. + */ +class CurlHandler +{ + /** @var CurlFactoryInterface */ + private $factory; + + /** + * Accepts an associative array of options: + * + * - factory: Optional curl factory used to create cURL handles. + * + * @param array $options Array of options to use with the handler + */ + public function __construct(array $options = []) + { + $this->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/GuzzleHttp/Handler/CurlMultiHandler.php b/lib/aws/GuzzleHttp/Handler/CurlMultiHandler.php new file mode 100644 index 0000000..2754d8e --- /dev/null +++ b/lib/aws/GuzzleHttp/Handler/CurlMultiHandler.php @@ -0,0 +1,199 @@ +<?php +namespace GuzzleHttp\Handler; + +use GuzzleHttp\Promise as P; +use GuzzleHttp\Promise\Promise; +use GuzzleHttp\Psr7; +use Psr\Http\Message\RequestInterface; + +/** + * Returns an asynchronous response using curl_multi_* functions. + * + * When using the CurlMultiHandler, custom curl options can be specified as an + * associative array of curl option constants mapping to values in the + * **curl** key of the provided request options. + * + * @property resource $_mh Internal use only. Lazy loaded multi-handle. + */ +class CurlMultiHandler +{ + /** @var CurlFactoryInterface */ + private $factory; + private $selectTimeout; + private $active; + private $handles = []; + private $delays = []; + + /** + * This handler accepts the following options: + * + * - handle_factory: An optional factory used to create curl handles + * - select_timeout: Optional timeout (in seconds) to block before timing + * out while selecting curl handles. Defaults to 1 second. + * + * @param array $options + */ + public function __construct(array $options = []) + { + $this->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, $nextTime - $currentTime) * 1000000; + } +} diff --git a/lib/aws/GuzzleHttp/Handler/EasyHandle.php b/lib/aws/GuzzleHttp/Handler/EasyHandle.php new file mode 100644 index 0000000..7754e91 --- /dev/null +++ b/lib/aws/GuzzleHttp/Handler/EasyHandle.php @@ -0,0 +1,92 @@ +<?php +namespace GuzzleHttp\Handler; + +use GuzzleHttp\Psr7\Response; +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\StreamInterface; + +/** + * Represents a cURL easy handle and the data it populates. + * + * @internal + */ +final class EasyHandle +{ + /** @var resource cURL resource */ + public $handle; + + /** @var StreamInterface Where data is being written */ + public $sink; + + /** @var array Received HTTP headers so far */ + public $headers = []; + + /** @var ResponseInterface Received response (if any) */ + public $response; + + /** @var RequestInterface Request being sent */ + public $request; + + /** @var array Request options */ + public $options = []; + + /** @var int cURL error number (if any) */ + public $errno = 0; + + /** @var \Exception Exception during on_headers (if any) */ + public $onHeadersException; + + /** + * Attach a response to the easy handle based on the received headers. + * + * @throws \RuntimeException if no headers have been received. + */ + public function createResponse() + { + if (empty($this->headers)) { + throw new \RuntimeException('No headers have been received'); + } + + // HTTP-version SP status-code SP reason-phrase + $startLine = explode(' ', array_shift($this->headers), 3); + $headers = \GuzzleHttp\headers_from_lines($this->headers); + $normalizedKeys = \GuzzleHttp\normalize_header_keys($headers); + + if (!empty($this->options['decode_content']) + && isset($normalizedKeys['content-encoding']) + ) { + $headers['x-encoded-content-encoding'] + = $headers[$normalizedKeys['content-encoding']]; + unset($headers[$normalizedKeys['content-encoding']]); + if (isset($normalizedKeys['content-length'])) { + $headers['x-encoded-content-length'] + = $headers[$normalizedKeys['content-length']]; + + $bodyLength = (int) $this->sink->getSize(); + if ($bodyLength) { + $headers[$normalizedKeys['content-length']] = $bodyLength; + } else { + unset($headers[$normalizedKeys['content-length']]); + } + } + } + + // Attach a response to the easy handle with the parsed headers. + $this->response = new Response( + $startLine[1], + $headers, + $this->sink, + substr($startLine[0], 5), + isset($startLine[2]) ? (string) $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/GuzzleHttp/Handler/MockHandler.php b/lib/aws/GuzzleHttp/Handler/MockHandler.php new file mode 100644 index 0000000..d892061 --- /dev/null +++ b/lib/aws/GuzzleHttp/Handler/MockHandler.php @@ -0,0 +1,189 @@ +<?php +namespace GuzzleHttp\Handler; + +use GuzzleHttp\Exception\RequestException; +use GuzzleHttp\HandlerStack; +use GuzzleHttp\Promise\PromiseInterface; +use GuzzleHttp\Promise\RejectedPromise; +use GuzzleHttp\TransferStats; +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; + +/** + * Handler that returns responses or throw exceptions from a queue. + */ +class MockHandler implements \Countable +{ + private $queue = []; + private $lastRequest; + private $lastOptions; + private $onFulfilled; + private $onRejected; + + /** + * Creates a new MockHandler that uses the default handler stack list of + * middlewares. + * + * @param array $queue Array of responses, callables, or exceptions. + * @param callable $onFulfilled Callback to invoke when the return value is fulfilled. + * @param callable $onRejected Callback to invoke when the return value is rejected. + * + * @return HandlerStack + */ + public static function createWithMiddleware( + array $queue = null, + callable $onFulfilled = null, + callable $onRejected = null + ) { + return HandlerStack::create(new self($queue, $onFulfilled, $onRejected)); + } + + /** + * The passed in value must be an array of + * {@see Psr7\Http\Message\ResponseInterface} objects, Exceptions, + * callables, or Promises. + * + * @param array $queue + * @param callable $onFulfilled Callback to invoke when the return value is fulfilled. + * @param callable $onRejected Callback to invoke when the return value is rejected. + */ + public function __construct( + array $queue = null, + callable $onFulfilled = null, + callable $onRejected = null + ) { + $this->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 (isset($options['on_headers'])) { + if (!is_callable($options['on_headers'])) { + throw new \InvalidArgumentException('on_headers must be callable'); + } + try { + $options['on_headers']($response); + } catch (\Exception $e) { + $msg = 'An error was encountered during the on_headers event'; + $response = new RequestException($msg, $request, $response, $e); + } + } + + if (is_callable($response)) { + $response = call_user_func($response, $request, $options); + } + + $response = $response instanceof \Exception + ? \GuzzleHttp\Promise\rejection_for($response) + : \GuzzleHttp\Promise\promise_for($response); + + return $response->then( + function ($value) use ($request, $options) { + $this->invokeStats($request, $options, $value); + if ($this->onFulfilled) { + call_user_func($this->onFulfilled, $value); + } + if (isset($options['sink'])) { + $contents = (string) $value->getBody(); + $sink = $options['sink']; + + if (is_resource($sink)) { + fwrite($sink, $contents); + } elseif (is_string($sink)) { + file_put_contents($sink, $contents); + } elseif ($sink instanceof \Psr\Http\Message\StreamInterface) { + $sink->write($contents); + } + } + + return $value; + }, + function ($reason) use ($request, $options) { + $this->invokeStats($request, $options, null, $reason); + if ($this->onRejected) { + call_user_func($this->onRejected, $reason); + } + return \GuzzleHttp\Promise\rejection_for($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 array + */ + public function getLastOptions() + { + return $this->lastOptions; + } + + /** + * Returns the number of remaining items in the queue. + * + * @return int + */ + public function count() + { + return count($this->queue); + } + + private function invokeStats( + RequestInterface $request, + array $options, + ResponseInterface $response = null, + $reason = null + ) { + if (isset($options['on_stats'])) { + $stats = new TransferStats($request, $response, 0, $reason); + call_user_func($options['on_stats'], $stats); + } + } +} diff --git a/lib/aws/GuzzleHttp/Handler/Proxy.php b/lib/aws/GuzzleHttp/Handler/Proxy.php new file mode 100644 index 0000000..f8b00be --- /dev/null +++ b/lib/aws/GuzzleHttp/Handler/Proxy.php @@ -0,0 +1,55 @@ +<?php +namespace GuzzleHttp\Handler; + +use GuzzleHttp\RequestOptions; +use Psr\Http\Message\RequestInterface; + +/** + * Provides basic proxies for handlers. + */ +class Proxy +{ + /** + * Sends synchronous requests to a specific handler while sending all other + * requests to another handler. + * + * @param callable $default Handler used for normal responses + * @param callable $sync Handler used for synchronous responses. + * + * @return callable Returns the composed handler. + */ + public static function wrapSync( + callable $default, + callable $sync + ) { + return function (RequestInterface $request, array $options) use ($default, $sync) { + return empty($options[RequestOptions::SYNCHRONOUS]) + ? $default($request, $options) + : $sync($request, $options); + }; + } + + /** + * Sends streaming requests to a streaming compatible handler while sending + * all other requests to a default handler. + * + * This, for example, could be useful for taking advantage of the + * performance benefits of curl while still supporting true streaming + * through the StreamHandler. + * + * @param callable $default Handler used for non-streaming responses + * @param callable $streaming Handler used for streaming responses + * + * @return callable Returns the composed handler. + */ + public static function wrapStreaming( + callable $default, + callable $streaming + ) { + return function (RequestInterface $request, array $options) use ($default, $streaming) { + return empty($options['stream']) + ? $default($request, $options) + : $streaming($request, $options); + }; + } +} diff --git a/lib/aws/GuzzleHttp/Handler/StreamHandler.php b/lib/aws/GuzzleHttp/Handler/StreamHandler.php new file mode 100644 index 0000000..b686545 --- /dev/null +++ b/lib/aws/GuzzleHttp/Handler/StreamHandler.php @@ -0,0 +1,532 @@ +<?php +namespace GuzzleHttp\Handler; + +use GuzzleHttp\Exception\RequestException; +use GuzzleHttp\Exception\ConnectException; +use GuzzleHttp\Promise\FulfilledPromise; +use GuzzleHttp\Promise\PromiseInterface; +use GuzzleHttp\Psr7; +use GuzzleHttp\TransferStats; +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\StreamInterface; + +/** + * HTTP handler that uses PHP's HTTP stream wrapper. + */ +class StreamHandler +{ + private $lastHeaders = []; + + /** + * Sends an HTTP request. + * + * @param RequestInterface $request Request to send. + * @param array $options Request transfer options. + * + * @return PromiseInterface + */ + public function __invoke(RequestInterface $request, array $options) + { + // Sleep if there is a delay specified. + if (isset($options['delay'])) { + usleep($options['delay'] * 1000); + } + + $startTime = isset($options['on_stats']) ? microtime(true) : null; + + try { + // Does not support the expect header. + $request = $request->withoutHeader('Expect'); + + // Append a content-length header if body size is zero to match + // cURL's behavior. + if (0 === $request->getBody()->getSize()) { + $request = $request->withHeader('Content-Length', 0); + } + + return $this->createResponse( + $request, + $options, + $this->createStream($request, $options), + $startTime + ); + } 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') + || strpos($message, "couldn't connect to host") // error on HHVM + || strpos($message, "connection attempt failed") + ) { + $e = new ConnectException($e->getMessage(), $request, $e); + } + $e = RequestException::wrapException($request, $e); + $this->invokeStats($options, $request, $startTime, null, $e); + + return \GuzzleHttp\Promise\rejection_for($e); + } + } + + private function invokeStats( + array $options, + RequestInterface $request, + $startTime, + ResponseInterface $response = null, + $error = null + ) { + if (isset($options['on_stats'])) { + $stats = new TransferStats( + $request, + $response, + microtime(true) - $startTime, + $error, + [] + ); + call_user_func($options['on_stats'], $stats); + } + } + + private function createResponse( + RequestInterface $request, + array $options, + $stream, + $startTime + ) { + $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); + list($stream, $headers) = $this->checkDecode($options, $headers, $stream); + $stream = Psr7\stream_for($stream); + $sink = $stream; + + if (strcasecmp('HEAD', $request->getMethod())) { + $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 \GuzzleHttp\Promise\rejection_for($ex); + } + } + + // Do not drain when the request is a HEAD request because they have + // no body. + if ($sink !== $stream) { + $this->drain( + $stream, + $sink, + $response->getHeaderLine('Content-Length') + ); + } + + $this->invokeStats($options, $request, $startTime, $response, null); + + 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\LazyOpenStream($sink, 'w+') + : Psr7\stream_for($sink); + } + + private function checkDecode(array $options, array $headers, $stream) + { + // Automatically decode responses when instructed. + if (!empty($options['decode_content'])) { + $normalizedKeys = \GuzzleHttp\normalize_header_keys($headers); + if (isset($normalizedKeys['content-encoding'])) { + $encoding = $headers[$normalizedKeys['content-encoding']]; + if ($encoding[0] === 'gzip' || $encoding[0] === 'deflate') { + $stream = new Psr7\InflateStream( + Psr7\stream_for($stream) + ); + $headers['x-encoded-content-encoding'] + = $headers[$normalizedKeys['content-encoding']]; + // Remove content-encoding header + unset($headers[$normalizedKeys['content-encoding']]); + // Fix content-length header + if (isset($normalizedKeys['content-length'])) { + $headers['x-encoded-content-length'] + = $headers[$normalizedKeys['content-length']]; + + $length = (int) $stream->getSize(); + if ($length === 0) { + unset($headers[$normalizedKeys['content-length']]); + } else { + $headers[$normalizedKeys['content-length']] = [$length]; + } + } + } + } + } + + return [$stream, $headers]; + } + + /** + * Drains the source stream into the "sink" client option. + * + * @param StreamInterface $source + * @param StreamInterface $sink + * @param string $contentLength Header specifying the amount of + * data to read. + * + * @return StreamInterface + * @throws \RuntimeException when the sink option is invalid. + */ + private function drain( + StreamInterface $source, + StreamInterface $sink, + $contentLength + ) { + // If a content-length header is provided, then stop reading once + // that number of bytes has been read. This can prevent infinitely + // reading from a stream when dealing with servers that do not honor + // Connection: Close headers. + Psr7\copy_to_stream( + $source, + $sink, + (strlen($contentLength) > 0 && (int) $contentLength > 0) ? (int) $contentLength : -1 + ); + + $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); + + 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'] + ); + } + + // Microsoft NTLM authentication only supported with curl handler + if (isset($options['auth']) + && is_array($options['auth']) + && isset($options['auth'][2]) + && 'ntlm' == $options['auth'][2] + ) { + throw new \InvalidArgumentException('Microsoft NTLM authentication only supported with curl handler'); + } + + $uri = $this->resolveHost($request, $options); + + $context = $this->createResource( + function () use ($context, $params) { + return stream_context_create($context, $params); + } + ); + + return $this->createResource( + function () use ($uri, &$http_response_header, $context, $options) { + $resource = fopen((string) $uri, 'r', null, $context); + $this->lastHeaders = $http_response_header; + + if (isset($options['read_timeout'])) { + $readTimeout = $options['read_timeout']; + $sec = (int) $readTimeout; + $usec = ($readTimeout - $sec) * 100000; + stream_set_timeout($resource, $sec, $usec); + } + + return $resource; + } + ); + } + + private function resolveHost(RequestInterface $request, array $options) + { + $uri = $request->getUri(); + + if (isset($options['force_ip_resolve']) && !filter_var($uri->getHost(), FILTER_VALIDATE_IP)) { + if ('v4' === $options['force_ip_resolve']) { + $records = dns_get_record($uri->getHost(), DNS_A); + if (!isset($records[0]['ip'])) { + throw new ConnectException(sprintf("Could not resolve IPv4 address for host '%s'", $uri->getHost()), $request); + } + $uri = $uri->withHost($records[0]['ip']); + } elseif ('v6' === $options['force_ip_resolve']) { + $records = dns_get_record($uri->getHost(), DNS_AAAA); + if (!isset($records[0]['ipv6'])) { + throw new ConnectException(sprintf("Could not resolve IPv6 address for host '%s'", $uri->getHost()), $request); + } + $uri = $uri->withHost('[' . $records[0]['ipv6'] . ']'); + } + } + + return $uri; + } + + 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])) { + if (!isset($value['no']) + || !\GuzzleHttp\is_host_in_noproxy( + $request->getUri()->getHost(), + $value['no'] + ) + ) { + $options['http']['proxy'] = $value[$scheme]; + } + } + } + } + + private function add_timeout(RequestInterface $request, &$options, $value, &$params) + { + if ($value > 0) { + $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; + $options['ssl']['verify_peer_name'] = false; + return; + } else { + throw new \InvalidArgumentException('Invalid verify request option'); + } + + $options['ssl']['verify_peer'] = true; + $options['ssl']['verify_peer_name'] = 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()->withFragment(''); + $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/GuzzleHttp/HandlerStack.php b/lib/aws/GuzzleHttp/HandlerStack.php new file mode 100644 index 0000000..24c46fd --- /dev/null +++ b/lib/aws/GuzzleHttp/HandlerStack.php @@ -0,0 +1,273 @@ +<?php +namespace GuzzleHttp; + +use Psr\Http\Message\RequestInterface; + +/** + * Creates a composed Guzzle handler function by stacking middlewares on top of + * an HTTP handler function. + */ +class HandlerStack +{ + /** @var callable */ + private $handler; + + /** @var array */ + private $stack = []; + + /** @var callable|null */ + private $cached; + + /** + * Creates a default handler stack that can be used by clients. + * + * The returned handler will wrap the provided handler or use the most + * appropriate default handler for your system. The returned HandlerStack has + * support for cookies, redirects, HTTP error exceptions, and preparing a body + * before sending. + * + * The returned handler stack can be passed to a client in the "handler" + * option. + * + * @param callable $handler HTTP handler function to use with the stack. If no + * handler is provided, the best handler for your + * system will be utilized. + * + * @return HandlerStack + */ + public static function create(callable $handler = null) + { + $stack = new self($handler ?: choose_handler()); + $stack->push(Middleware::httpErrors(), 'http_errors'); + $stack->push(Middleware::redirect(), 'allow_redirects'); + $stack->push(Middleware::cookies(), 'cookies'); + $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) + { + $handler = $this->resolve(); + + 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 (!$this->cached) { + if (!($prev = $this->handler)) { + throw new \LogicException('No handler has been specified'); + } + + foreach (array_reverse($this->stack) as $fn) { + $prev = $fn[0]($prev); + } + + $this->cached = $prev; + } + + return $this->cached; + } + + /** + * @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/GuzzleHttp/MessageFormatter.php b/lib/aws/GuzzleHttp/MessageFormatter.php new file mode 100644 index 0000000..663ac73 --- /dev/null +++ b/lib/aws/GuzzleHttp/MessageFormatter.php @@ -0,0 +1,180 @@ +<?php +namespace GuzzleHttp; + +use Psr\Http\Message\MessageInterface; +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; + +/** + * Formats log messages using variable substitutions for requests, responses, + * and other transactional data. + * + * The following variable substitutions are supported: + * + * - {request}: Full HTTP request message + * - {response}: Full HTTP response message + * - {ts}: ISO 8601 date in GMT + * - {date_iso_8601} ISO 8601 date in GMT + * - {date_common_log} Apache common log date using the configured timezone. + * - {host}: Host of the request + * - {method}: Method of the request + * - {uri}: URI of the request + * - {version}: Protocol version + * - {target}: Request target of the request (path + query + fragment) + * - {hostname}: Hostname of the machine that sent the request + * - {code}: Status code of the response (if available) + * - {phrase}: Reason phrase of the response (if available) + * - {error}: Any error messages (if available) + * - {req_header_*}: Replace `*` with the lowercased name of a request header to add to the message + * - {res_header_*}: Replace `*` with the lowercased name of a response header to add to the message + * - {req_headers}: Request headers + * - {res_headers}: Response headers + * - {req_body}: Request body + * - {res_body}: Response body + */ +class MessageFormatter +{ + /** + * Apache Common Log Format. + * @link http://httpd.apache.org/docs/2.4/logs.html#common + * @var string + */ + const CLF = "{hostname} {req_header_User-Agent} - [{date_common_log}] \"{method} {target} HTTP/{version}\" {code} {res_header_Content-Length}"; + const DEBUG = ">>>>>>>>\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': + case 'date_iso_8601': + $result = gmdate('c'); + break; + case 'date_common_log': + $result = date('d/M/Y:H:i:s O'); + 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/GuzzleHttp/Middleware.php b/lib/aws/GuzzleHttp/Middleware.php new file mode 100644 index 0000000..d4ad75c --- /dev/null +++ b/lib/aws/GuzzleHttp/Middleware.php @@ -0,0 +1,255 @@ +<?php +namespace GuzzleHttp; + +use GuzzleHttp\Cookie\CookieJarInterface; +use GuzzleHttp\Exception\RequestException; +use GuzzleHttp\Promise\RejectedPromise; +use GuzzleHttp\Psr7; +use Psr\Http\Message\ResponseInterface; +use Psr\Log\LoggerInterface; +use Psr\Log\LogLevel; + +/** + * Functions used to create and wrap handlers with handler middleware. + */ +final class Middleware +{ + /** + * Middleware that adds cookies to requests. + * + * The options array must be set to a CookieJarInterface in order to use + * cookies. This is typically handled for you by a client. + * + * @return callable Returns a function that accepts the next handler. + */ + public static function cookies() + { + return function (callable $handler) { + return function ($request, array $options) use ($handler) { + if (empty($options['cookies'])) { + return $handler($request, $options); + } elseif (!($options['cookies'] instanceof CookieJarInterface)) { + throw new \InvalidArgumentException('cookies must be an instance of GuzzleHttp\Cookie\CookieJarInterface'); + } + $cookieJar = $options['cookies']; + $request = $cookieJar->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 RequestException::create($request, $response); + } + ); + }; + }; + } + + /** + * Middleware that pushes history data to an ArrayAccess container. + * + * @param array|\ArrayAccess $container Container to hold the history (by reference). + * + * @return callable Returns a function that accepts the next handler. + * @throws \InvalidArgumentException if container is not an array or ArrayAccess. + */ + public static function history(&$container) + { + if (!is_array($container) && !$container instanceof \ArrayAccess) { + throw new \InvalidArgumentException('history container must be an array or object implementing ArrayAccess'); + } + + 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 \GuzzleHttp\Promise\rejection_for($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. + * @param string $logLevel Level at which to log requests. + * + * @return callable Returns a function that accepts the next handler. + */ + public static function log(LoggerInterface $logger, MessageFormatter $formatter, $logLevel = LogLevel::INFO) + { + return function (callable $handler) use ($logger, $formatter, $logLevel) { + return function ($request, array $options) use ($handler, $logger, $formatter, $logLevel) { + return $handler($request, $options)->then( + function ($response) use ($logger, $request, $formatter, $logLevel) { + $message = $formatter->format($request, $response); + $logger->log($logLevel, $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/GuzzleHttp/Pool.php b/lib/aws/GuzzleHttp/Pool.php new file mode 100644 index 0000000..8f1be33 --- /dev/null +++ b/lib/aws/GuzzleHttp/Pool.php @@ -0,0 +1,123 @@ +<?php +namespace GuzzleHttp; + +use GuzzleHttp\Promise\PromisorInterface; +use Psr\Http\Message\RequestInterface; +use GuzzleHttp\Promise\EachPromise; + +/** + * Sends and iterator of requests concurrently using a capped pool size. + * + * The pool will read from an iterator until it is cancelled or until the + * iterator is consumed. When a request is yielded, the request is sent after + * applying the "request_options" request options (if provided in the ctor). + * + * When a function is yielded by the iterator, the function is provided the + * "request_options" array that should be merged on top of any existing + * options, and the function MUST then return a wait-able promise. + */ +class Pool implements PromisorInterface +{ + /** @var EachPromise */ + private $each; + + /** + * @param ClientInterface $client Client used to send the requests. + * @param array|\Iterator $requests Requests or functions that return + * requests to send concurrently. + * @param array $config Associative array of options + * - concurrency: (int) Maximum number of requests to send concurrently + * - options: Array of request options to apply to each request. + * - fulfilled: (callable) Function to invoke when a request completes. + * - rejected: (callable) Function to invoke when a request is rejected. + */ + public function __construct( + ClientInterface $client, + $requests, + array $config = [] + ) { + // Backwards compatibility. + if (isset($config['pool_size'])) { + $config['concurrency'] = $config['pool_size']; + } elseif (!isset($config['concurrency'])) { + $config['concurrency'] = 25; + } + + if (isset($config['options'])) { + $opts = $config['options']; + unset($config['options']); + } else { + $opts = []; + } + + $iterable = \GuzzleHttp\Promise\iter_for($requests); + $requests = function () use ($iterable, $client, $opts) { + foreach ($iterable as $key => $rfn) { + if ($rfn instanceof RequestInterface) { + yield $key => $client->sendAsync($rfn, $opts); + } elseif (is_callable($rfn)) { + yield $key => $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/GuzzleHttp/PrepareBodyMiddleware.php b/lib/aws/GuzzleHttp/PrepareBodyMiddleware.php new file mode 100644 index 0000000..2eb95f9 --- /dev/null +++ b/lib/aws/GuzzleHttp/PrepareBodyMiddleware.php @@ -0,0 +1,106 @@ +<?php +namespace GuzzleHttp; + +use GuzzleHttp\Promise\PromiseInterface; +use GuzzleHttp\Psr7; +use Psr\Http\Message\RequestInterface; + +/** + * Prepares requests that contain a body, adding the Content-Length, + * Content-Type, and Expect headers. + */ +class PrepareBodyMiddleware +{ + /** @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; + + // Don't do anything if the request has no body. + if ($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 (!$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/GuzzleHttp/Promise/AggregateException.php b/lib/aws/GuzzleHttp/Promise/AggregateException.php new file mode 100644 index 0000000..6a5690c --- /dev/null +++ b/lib/aws/GuzzleHttp/Promise/AggregateException.php @@ -0,0 +1,16 @@ +<?php +namespace GuzzleHttp\Promise; + +/** + * Exception thrown when too many errors occur in the some() or any() methods. + */ +class AggregateException extends RejectionException +{ + public function __construct($msg, array $reasons) + { + parent::__construct( + $reasons, + sprintf('%s; %d rejected promises', $msg, count($reasons)) + ); + } +} diff --git a/lib/aws/GuzzleHttp/Promise/CancellationException.php b/lib/aws/GuzzleHttp/Promise/CancellationException.php new file mode 100644 index 0000000..cb360b8 --- /dev/null +++ b/lib/aws/GuzzleHttp/Promise/CancellationException.php @@ -0,0 +1,9 @@ +<?php +namespace GuzzleHttp\Promise; + +/** + * Exception that is set as the reason for a promise that has been cancelled. + */ +class CancellationException extends RejectionException +{ +} diff --git a/lib/aws/GuzzleHttp/Promise/Coroutine.php b/lib/aws/GuzzleHttp/Promise/Coroutine.php new file mode 100644 index 0000000..6aa0958 --- /dev/null +++ b/lib/aws/GuzzleHttp/Promise/Coroutine.php @@ -0,0 +1,151 @@ +<?php +namespace GuzzleHttp\Promise; + +use Exception; +use Generator; +use Throwable; + +/** + * 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 + */ +final class Coroutine implements PromiseInterface +{ + /** + * @var PromiseInterface|null + */ + private $currentPromise; + + /** + * @var Generator + */ + private $generator; + + /** + * @var Promise + */ + private $result; + + public function __construct(callable $generatorFn) + { + $this->generator = $generatorFn(); + $this->result = new Promise(function () { + while (isset($this->currentPromise)) { + $this->currentPromise->wait(); + } + }); + $this->nextCoroutine($this->generator->current()); + } + + public function then( + callable $onFulfilled = null, + callable $onRejected = null + ) { + return $this->result->then($onFulfilled, $onRejected); + } + + public function otherwise(callable $onRejected) + { + return $this->result->otherwise($onRejected); + } + + public function wait($unwrap = true) + { + return $this->result->wait($unwrap); + } + + public function getState() + { + return $this->result->getState(); + } + + public function resolve($value) + { + $this->result->resolve($value); + } + + public function reject($reason) + { + $this->result->reject($reason); + } + + public function cancel() + { + $this->currentPromise->cancel(); + $this->result->cancel(); + } + + private function nextCoroutine($yielded) + { + $this->currentPromise = promise_for($yielded) + ->then([$this, '_handleSuccess'], [$this, '_handleFailure']); + } + + /** + * @internal + */ + public function _handleSuccess($value) + { + unset($this->currentPromise); + try { + $next = $this->generator->send($value); + if ($this->generator->valid()) { + $this->nextCoroutine($next); + } else { + $this->result->resolve($value); + } + } catch (Exception $exception) { + $this->result->reject($exception); + } catch (Throwable $throwable) { + $this->result->reject($throwable); + } + } + + /** + * @internal + */ + public function _handleFailure($reason) + { + unset($this->currentPromise); + try { + $nextYield = $this->generator->throw(exception_for($reason)); + // The throw was caught, so keep iterating on the coroutine + $this->nextCoroutine($nextYield); + } catch (Exception $exception) { + $this->result->reject($exception); + } catch (Throwable $throwable) { + $this->result->reject($throwable); + } + } +} diff --git a/lib/aws/GuzzleHttp/Promise/EachPromise.php b/lib/aws/GuzzleHttp/Promise/EachPromise.php new file mode 100644 index 0000000..d0ddf60 --- /dev/null +++ b/lib/aws/GuzzleHttp/Promise/EachPromise.php @@ -0,0 +1,229 @@ +<?php +namespace GuzzleHttp\Promise; + +/** + * Represents a promise that iterates over many promises and invokes + * side-effect functions in the process. + */ +class EachPromise implements PromisorInterface +{ + private $pending = []; + + /** @var \Iterator */ + private $iterable; + + /** @var callable|int */ + private $concurrency; + + /** @var callable */ + private $onFulfilled; + + /** @var callable */ + private $onRejected; + + /** @var Promise */ + private $aggregate; + + /** @var bool */ + private $mutex; + + /** + * Configuration hash can include the following key value pairs: + * + * - fulfilled: (callable) Invoked when a promise fulfills. The function + * is invoked with three arguments: the fulfillment value, the index + * position from the iterable list of the promise, and the aggregate + * promise that manages all of the promises. The aggregate promise may + * be resolved from within the callback to short-circuit the promise. + * - rejected: (callable) Invoked when a promise is rejected. The + * function is invoked with three arguments: the rejection reason, the + * index position from the iterable list of the promise, and the + * aggregate promise that manages all of the promises. The aggregate + * promise may be resolved from within the callback to short-circuit + * the promise. + * - concurrency: (integer) Pass this configuration option to limit the + * allowed number of outstanding concurrently executing promises, + * creating a capped pool of promises. There is no limit by default. + * + * @param mixed $iterable Promises or values to iterate. + * @param array $config Configuration options + */ + public function __construct($iterable, array $config = []) + { + $this->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 (\Throwable $e) { + $this->aggregate->reject($e); + } catch (\Exception $e) { + $this->aggregate->reject($e); + } + + return $this->aggregate; + } + + private function createPromise() + { + $this->mutex = false; + $this->aggregate = new Promise(function () { + reset($this->pending); + if (empty($this->pending) && !$this->iterable->valid()) { + $this->aggregate->resolve(null); + return; + } + + // 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() && $this->advanceIterator()); + return; + } + + // 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); + // Concurrency may be set to 0 to disallow new promises. + if (!$concurrency) { + return; + } + // Add the first pending promise. + $this->addPending(); + // Note this is special handling for concurrency=1 so that we do + // not advance the iterator after adding the first promise. This + // helps work around issues with generators that might not have the + // next value to yield until promise callbacks are called. + while (--$concurrency + && $this->advanceIterator() + && $this->addPending()); + } + + private function addPending() + { + if (!$this->iterable || !$this->iterable->valid()) { + return false; + } + + $promise = promise_for($this->iterable->current()); + $idx = $this->iterable->key(); + + $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 advanceIterator() + { + // Place a lock on the iterator so that we ensure to not recurse, + // preventing fatal generator errors. + if ($this->mutex) { + return false; + } + + $this->mutex = true; + + try { + $this->iterable->next(); + $this->mutex = false; + return true; + } catch (\Throwable $e) { + $this->aggregate->reject($e); + $this->mutex = false; + return false; + } catch (\Exception $e) { + $this->aggregate->reject($e); + $this->mutex = false; + 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]); + + // Only refill pending promises if we are not locked, preventing the + // EachPromise to recursively invoke the provided iterator, which + // cause a fatal error: "Cannot resume an already running generator" + if ($this->advanceIterator() && !$this->checkIfFinished()) { + // Add more pending promises if possible. + $this->refillPending(); + } + } + + 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; + } +} diff --git a/lib/aws/GuzzleHttp/Promise/FulfilledPromise.php b/lib/aws/GuzzleHttp/Promise/FulfilledPromise.php new file mode 100644 index 0000000..dbbeeb9 --- /dev/null +++ b/lib/aws/GuzzleHttp/Promise/FulfilledPromise.php @@ -0,0 +1,82 @@ +<?php +namespace GuzzleHttp\Promise; + +/** + * A promise that has been fulfilled. + * + * Thenning off of this promise will invoke the onFulfilled callback + * immediately and ignore other callbacks. + */ +class FulfilledPromise implements PromiseInterface +{ + private $value; + + public function __construct($value) + { + if (method_exists($value, 'then')) { + throw new \InvalidArgumentException( + 'You cannot create a FulfilledPromise with a promise.'); + } + + $this->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 (\Throwable $e) { + $p->reject($e); + } 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/GuzzleHttp/Promise/Promise.php b/lib/aws/GuzzleHttp/Promise/Promise.php new file mode 100644 index 0000000..844ada0 --- /dev/null +++ b/lib/aws/GuzzleHttp/Promise/Promise.php @@ -0,0 +1,280 @@ +<?php +namespace GuzzleHttp\Promise; + +/** + * Promises/A+ implementation that avoids recursion when possible. + * + * @link https://promisesaplus.com/ + */ +class Promise implements PromiseInterface +{ + private $state = self::PENDING; + private $result; + private $cancelFn; + private $waitFn; + private $waitList; + private $handlers = []; + + /** + * @param callable $waitFn Fn that when invoked resolves the promise. + * @param callable $cancelFn Fn that when invoked cancels the promise. + */ + public function __construct( + callable $waitFn = null, + callable $cancelFn = null + ) { + $this->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(); + + $inner = $this->result instanceof PromiseInterface + ? $this->result->wait($unwrap) + : $this->result; + + if ($unwrap) { + if ($this->result instanceof PromiseInterface + || $this->state === self::FULFILLED + ) { + return $inner; + } else { + // It's rejected so "unwrap" and throw an exception. + throw exception_for($inner); + } + } + } + + 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 (\Throwable $e) { + $this->reject($e); + } 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 (\Throwable $reason) { + $promise->reject($reason); + } 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) { + while (true) { + $result->waitIfPending(); + + if ($result->result instanceof Promise) { + $result = $result->result; + } else { + if ($result->result instanceof PromiseInterface) { + $result->result->wait(false); + } + break; + } + } + } + } +} diff --git a/lib/aws/GuzzleHttp/Promise/PromiseInterface.php b/lib/aws/GuzzleHttp/Promise/PromiseInterface.php new file mode 100644 index 0000000..8f5f4b9 --- /dev/null +++ b/lib/aws/GuzzleHttp/Promise/PromiseInterface.php @@ -0,0 +1,93 @@ +<?php +namespace GuzzleHttp\Promise; + +/** + * A promise represents the eventual result of an asynchronous operation. + * + * The primary way of interacting with a promise is through its then method, + * which registers callbacks to receive either a promise’s eventual value or + * the reason why the promise cannot be fulfilled. + * + * @link https://promisesaplus.com/ + */ +interface PromiseInterface +{ + const PENDING = 'pending'; + const FULFILLED = 'fulfilled'; + const REJECTED = 'rejected'; + + /** + * Appends fulfillment and rejection handlers to the promise, and returns + * a new promise resolving to the return value of the called handler. + * + * @param callable $onFulfilled Invoked when the promise fulfills. + * @param callable $onRejected Invoked when the promise is rejected. + * + * @return PromiseInterface + */ + public function then( + callable $onFulfilled = null, + callable $onRejected = null + ); + + /** + * Appends a rejection handler callback to the promise, and returns a new + * promise resolving to the return value of the callback if it is called, + * or to its original fulfillment value if the promise is instead + * fulfilled. + * + * @param callable $onRejected Invoked when the promise is rejected. + * + * @return PromiseInterface + */ + public function otherwise(callable $onRejected); + + /** + * Get the state of the promise ("pending", "rejected", or "fulfilled"). + * + * The three states can be checked against the constants defined on + * PromiseInterface: PENDING, FULFILLED, and REJECTED. + * + * @return string + */ + public function getState(); + + /** + * Resolve the promise with the given value. + * + * @param mixed $value + * @throws \RuntimeException if the promise is already resolved. + */ + public function resolve($value); + + /** + * Reject the promise with the given reason. + * + * @param mixed $reason + * @throws \RuntimeException if the promise is already resolved. + */ + public function reject($reason); + + /** + * Cancels the promise if possible. + * + * @link https://github.com/promises-aplus/cancellation-spec/issues/7 + */ + public function cancel(); + + /** + * Waits until the promise completes if possible. + * + * Pass $unwrap as true to unwrap the result of the promise, either + * returning the resolved value or throwing the rejected exception. + * + * If the promise cannot be waited on, then the promise will be rejected. + * + * @param bool $unwrap + * + * @return mixed + * @throws \LogicException if the promise has no wait function or if the + * promise does not settle after waiting. + */ + public function wait($unwrap = true); +} diff --git a/lib/aws/GuzzleHttp/Promise/PromisorInterface.php b/lib/aws/GuzzleHttp/Promise/PromisorInterface.php new file mode 100644 index 0000000..b07fe32 --- /dev/null +++ b/lib/aws/GuzzleHttp/Promise/PromisorInterface.php @@ -0,0 +1,15 @@ +<?php +namespace GuzzleHttp\Promise; + +/** + * Interface used with classes that return a promise. + */ +interface PromisorInterface +{ + /** + * Returns a promise. + * + * @return PromiseInterface + */ + public function promise(); +} diff --git a/lib/aws/GuzzleHttp/Promise/RejectedPromise.php b/lib/aws/GuzzleHttp/Promise/RejectedPromise.php new file mode 100644 index 0000000..2bc6508 --- /dev/null +++ b/lib/aws/GuzzleHttp/Promise/RejectedPromise.php @@ -0,0 +1,87 @@ +<?php +namespace GuzzleHttp\Promise; + +/** + * A promise that has been rejected. + * + * Thenning off of this promise will invoke the onRejected callback + * immediately and ignore other callbacks. + */ +class RejectedPromise implements PromiseInterface +{ + private $reason; + + public function __construct($reason) + { + if (method_exists($reason, 'then')) { + throw new \InvalidArgumentException( + 'You cannot create a RejectedPromise with a promise.'); + } + + $this->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 (\Throwable $e) { + // onRejected threw, so return a rejected promise. + $p->reject($e); + } 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/GuzzleHttp/Promise/RejectionException.php b/lib/aws/GuzzleHttp/Promise/RejectionException.php new file mode 100644 index 0000000..07c1136 --- /dev/null +++ b/lib/aws/GuzzleHttp/Promise/RejectionException.php @@ -0,0 +1,47 @@ +<?php +namespace GuzzleHttp\Promise; + +/** + * A special exception that is thrown when waiting on a rejected promise. + * + * The reason value is available via the getReason() method. + */ +class RejectionException extends \RuntimeException +{ + /** @var mixed Rejection reason. */ + private $reason; + + /** + * @param mixed $reason Rejection reason. + * @param string $description Optional description + */ + public function __construct($reason, $description = null) + { + $this->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/GuzzleHttp/Promise/TaskQueue.php b/lib/aws/GuzzleHttp/Promise/TaskQueue.php new file mode 100644 index 0000000..6e8a2a0 --- /dev/null +++ b/lib/aws/GuzzleHttp/Promise/TaskQueue.php @@ -0,0 +1,66 @@ +<?php +namespace GuzzleHttp\Promise; + +/** + * A task queue that executes tasks in a FIFO order. + * + * This task queue class is used to settle promises asynchronously and + * maintains a constant stack size. You can use the task queue asynchronously + * by calling the `run()` function of the global task queue in an event loop. + * + * GuzzleHttp\Promise\queue()->run(); + */ +class TaskQueue implements TaskQueueInterface +{ + 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(); + } + } + }); + } + } + + public function isEmpty() + { + return !$this->queue; + } + + public function add(callable $task) + { + $this->queue[] = $task; + } + + public function run() + { + /** @var callable $task */ + 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/GuzzleHttp/Promise/TaskQueueInterface.php b/lib/aws/GuzzleHttp/Promise/TaskQueueInterface.php new file mode 100644 index 0000000..ac8306e --- /dev/null +++ b/lib/aws/GuzzleHttp/Promise/TaskQueueInterface.php @@ -0,0 +1,25 @@ +<?php +namespace GuzzleHttp\Promise; + +interface TaskQueueInterface +{ + /** + * Returns true if the queue is empty. + * + * @return bool + */ + public function isEmpty(); + + /** + * Adds a task to the queue that will be executed the next time run is + * called. + * + * @param callable $task + */ + public function add(callable $task); + + /** + * Execute all of the pending task in the queue. + */ + public function run(); +} diff --git a/lib/aws/GuzzleHttp/Promise/functions.php b/lib/aws/GuzzleHttp/Promise/functions.php new file mode 100644 index 0000000..4e27709 --- /dev/null +++ b/lib/aws/GuzzleHttp/Promise/functions.php @@ -0,0 +1,457 @@ +<?php +namespace GuzzleHttp\Promise; + +/** + * Get the global task queue used for promise resolution. + * + * This task queue MUST be run in an event loop in order for promises to be + * settled asynchronously. It will be automatically run when synchronously + * waiting on a promise. + * + * <code> + * while ($eventLoop->isRunning()) { + * GuzzleHttp\Promise\queue()->run(); + * } + * </code> + * + * @param TaskQueueInterface $assign Optionally specify a new queue instance. + * + * @return TaskQueueInterface + */ +function queue(TaskQueueInterface $assign = null) +{ + static $queue; + + if ($assign) { + $queue = $assign; + } elseif (!$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 (\Throwable $e) { + $promise->reject($e); + } 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|\Throwable + */ +function exception_for($reason) +{ + return $reason instanceof \Exception || $reason instanceof \Throwable + ? $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' => PromiseInterface::REJECTED, 'reason' => $e->getReason()]; + } catch (\Throwable $e) { + return ['state' => PromiseInterface::REJECTED, 'reason' => $e]; + } catch (\Exception $e) { + return ['state' => PromiseInterface::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 + * @throws \Throwable on error in PHP >=7 + */ +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 PromiseInterface + */ +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 PromiseInterface + */ +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 PromiseInterface + * @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' => PromiseInterface::FULFILLED, 'value' => $value]; + }, + function ($reason, $idx) use (&$results) { + $results[$idx] = ['state' => PromiseInterface::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 PromiseInterface + */ +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 PromiseInterface + */ +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 PromiseInterface + */ +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; +} + +/** + * @see Coroutine + * + * @param callable $generatorFn + * + * @return PromiseInterface + */ +function coroutine(callable $generatorFn) +{ + return new Coroutine($generatorFn); +} diff --git a/lib/aws/GuzzleHttp/Promise/functions_include.php b/lib/aws/GuzzleHttp/Promise/functions_include.php new file mode 100644 index 0000000..34cd171 --- /dev/null +++ b/lib/aws/GuzzleHttp/Promise/functions_include.php @@ -0,0 +1,6 @@ +<?php + +// Don't redefine the functions if included multiple times. +if (!function_exists('GuzzleHttp\Promise\promise_for')) { + require __DIR__ . '/functions.php'; +} diff --git a/lib/aws/GuzzleHttp/Psr7/AppendStream.php b/lib/aws/GuzzleHttp/Psr7/AppendStream.php new file mode 100644 index 0000000..472a0d6 --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/AppendStream.php @@ -0,0 +1,241 @@ +<?php +namespace GuzzleHttp\Psr7; + +use Psr\Http\Message\StreamInterface; + +/** + * Reads from multiple streams, one after the other. + * + * This is a read-only stream decorator. + */ +class AppendStream implements StreamInterface +{ + /** @var StreamInterface[] Streams being decorated */ + private $streams = []; + + private $seekable = true; + private $current = 0; + private $pos = 0; + + /** + * @param StreamInterface[] $streams Streams to decorate. Each stream must + * be readable. + */ + public function __construct(array $streams = []) + { + foreach ($streams as $stream) { + $this->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; + $this->seekable = true; + + foreach ($this->streams as $stream) { + $stream->close(); + } + + $this->streams = []; + } + + /** + * Detaches each attached stream. + * + * Returns null as it's not clear which underlying stream resource to return. + * + * {@inheritdoc} + */ + public function detach() + { + $this->pos = $this->current = 0; + $this->seekable = true; + + foreach ($this->streams as $stream) { + $stream->detach(); + } + + $this->streams = []; + } + + 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/GuzzleHttp/Psr7/BufferStream.php b/lib/aws/GuzzleHttp/Psr7/BufferStream.php new file mode 100644 index 0000000..af4d4c2 --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/BufferStream.php @@ -0,0 +1,137 @@ +<?php +namespace GuzzleHttp\Psr7; + +use Psr\Http\Message\StreamInterface; + +/** + * Provides a buffer stream that can be written to to fill a buffer, and read + * from to remove bytes from the buffer. + * + * This stream returns a "hwm" metadata value that tells upstream consumers + * what the configured high water mark of the stream is, or the maximum + * preferred size of the buffer. + */ +class BufferStream implements StreamInterface +{ + private $hwm; + private $buffer = ''; + + /** + * @param int $hwm High water mark, representing the preferred maximum + * buffer size. If the size of the buffer exceeds the high + * water mark, then calls to write will continue to succeed + * but will return false to inform writers to slow down + * until the buffer has been drained by reading from it. + */ + public function __construct($hwm = 16384) + { + $this->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/GuzzleHttp/Psr7/CachingStream.php b/lib/aws/GuzzleHttp/Psr7/CachingStream.php new file mode 100644 index 0000000..ed68f08 --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/CachingStream.php @@ -0,0 +1,138 @@ +<?php +namespace GuzzleHttp\Psr7; + +use Psr\Http\Message\StreamInterface; + +/** + * Stream decorator that can cache previously read bytes from a sequentially + * read stream. + */ +class CachingStream implements StreamInterface +{ + use StreamDecoratorTrait; + + /** @var StreamInterface Stream being wrapped */ + private $remoteStream; + + /** @var int Number of bytes to skip reading due to a write on the buffer */ + private $skipReadBytes = 0; + + /** + * We will treat the buffer object as the body of the stream + * + * @param StreamInterface $stream Stream to cache + * @param StreamInterface $target Optionally specify where data is cached + */ + public function __construct( + StreamInterface $stream, + StreamInterface $target = null + ) { + $this->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); + } + + public function seek($offset, $whence = SEEK_SET) + { + if ($whence == SEEK_SET) { + $byte = $offset; + } elseif ($whence == SEEK_CUR) { + $byte = $offset + $this->tell(); + } elseif ($whence == SEEK_END) { + $size = $this->remoteStream->getSize(); + if ($size === null) { + $size = $this->cacheEntireStream(); + } + $byte = $size + $offset; + } else { + throw new \InvalidArgumentException('Invalid whence'); + } + + $diff = $byte - $this->stream->getSize(); + + if ($diff > 0) { + // Read the remoteStream until we have read in at least the amount + // of bytes requested, or we reach the end of the file. + while ($diff > 0 && !$this->remoteStream->eof()) { + $this->read($diff); + $diff = $byte - $this->stream->getSize(); + } + } else { + // We can just do a normal seek since we've already seen this byte. + $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(); + } + + private function cacheEntireStream() + { + $target = new FnStream(['write' => 'strlen']); + copy_to_stream($this, $target); + + return $this->tell(); + } +} diff --git a/lib/aws/GuzzleHttp/Psr7/DroppingStream.php b/lib/aws/GuzzleHttp/Psr7/DroppingStream.php new file mode 100644 index 0000000..8935c80 --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/DroppingStream.php @@ -0,0 +1,42 @@ +<?php +namespace GuzzleHttp\Psr7; + +use Psr\Http\Message\StreamInterface; + +/** + * Stream decorator that begins dropping data once the size of the underlying + * stream becomes too full. + */ +class DroppingStream implements StreamInterface +{ + use StreamDecoratorTrait; + + private $maxLength; + + /** + * @param StreamInterface $stream Underlying stream to decorate. + * @param int $maxLength Maximum size before dropping data. + */ + public function __construct(StreamInterface $stream, $maxLength) + { + $this->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/GuzzleHttp/Psr7/FnStream.php b/lib/aws/GuzzleHttp/Psr7/FnStream.php new file mode 100644 index 0000000..73daea6 --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/FnStream.php @@ -0,0 +1,158 @@ +<?php +namespace GuzzleHttp\Psr7; + +use Psr\Http\Message\StreamInterface; + +/** + * Compose stream implementations based on a hash of functions. + * + * Allows for easy testing and extension of a provided stream without needing + * to create a concrete class for a simple extension point. + */ +class FnStream implements StreamInterface +{ + /** @var array */ + private $methods; + + /** @var array Methods that must be implemented in the given array */ + private static $slots = ['__toString', 'close', 'detach', 'rewind', + 'getSize', 'tell', 'eof', 'isSeekable', 'seek', 'isWritable', 'write', + 'isReadable', 'read', 'getContents', 'getMetadata']; + + /** + * @param array $methods Hash of method name to a callable. + */ + public function __construct(array $methods) + { + $this->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); + } + } + + /** + * An unserialize would allow the __destruct to run when the unserialized value goes out of scope. + * @throws \LogicException + */ + public function __wakeup() + { + throw new \LogicException('FnStream should never be unserialized'); + } + + /** + * 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/GuzzleHttp/Psr7/InflateStream.php b/lib/aws/GuzzleHttp/Psr7/InflateStream.php new file mode 100644 index 0000000..5e4f602 --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/InflateStream.php @@ -0,0 +1,52 @@ +<?php +namespace GuzzleHttp\Psr7; + +use Psr\Http\Message\StreamInterface; + +/** + * Uses PHP's zlib.inflate filter to inflate deflate or gzipped content. + * + * This stream decorator skips the first 10 bytes of the given stream to remove + * the gzip header, converts the provided stream to a PHP stream resource, + * then appends the zlib.inflate filter. The stream is then converted back + * to a Guzzle stream resource to be used as a Guzzle stream. + * + * @link http://tools.ietf.org/html/rfc1952 + * @link http://php.net/manual/en/filters.compression.php + */ +class InflateStream implements StreamInterface +{ + use StreamDecoratorTrait; + + public function __construct(StreamInterface $stream) + { + // read the first 10 bytes, ie. gzip header + $header = $stream->read(10); + $filenameHeaderLength = $this->getLengthOfPossibleFilenameHeader($stream, $header); + // Skip the header, that is 10 + length of filename + 1 (nil) bytes + $stream = new LimitStream($stream, -1, 10 + $filenameHeaderLength); + $resource = StreamWrapper::getResource($stream); + stream_filter_append($resource, 'zlib.inflate', STREAM_FILTER_READ); + $this->stream = $stream->isSeekable() ? new Stream($resource) : new NoSeekStream(new Stream($resource)); + } + + /** + * @param StreamInterface $stream + * @param $header + * @return int + */ + private function getLengthOfPossibleFilenameHeader(StreamInterface $stream, $header) + { + $filename_header_length = 0; + + if (substr(bin2hex($header), 6, 2) === '08') { + // we have a filename, read until nil + $filename_header_length = 1; + while ($stream->read(1) !== chr(0)) { + $filename_header_length++; + } + } + + return $filename_header_length; + } +} diff --git a/lib/aws/GuzzleHttp/Psr7/LazyOpenStream.php b/lib/aws/GuzzleHttp/Psr7/LazyOpenStream.php new file mode 100644 index 0000000..02cec3a --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/LazyOpenStream.php @@ -0,0 +1,39 @@ +<?php +namespace GuzzleHttp\Psr7; + +use Psr\Http\Message\StreamInterface; + +/** + * Lazily reads or writes to a file that is opened only after an IO operation + * take place on the stream. + */ +class LazyOpenStream implements StreamInterface +{ + use StreamDecoratorTrait; + + /** @var string File to open */ + private $filename; + + /** @var string $mode */ + private $mode; + + /** + * @param string $filename File to lazily open + * @param string $mode fopen mode to use when opening the stream + */ + public function __construct($filename, $mode) + { + $this->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/GuzzleHttp/Psr7/LimitStream.php b/lib/aws/GuzzleHttp/Psr7/LimitStream.php new file mode 100644 index 0000000..3c13d4f --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/LimitStream.php @@ -0,0 +1,155 @@ +<?php +namespace GuzzleHttp\Psr7; + +use Psr\Http\Message\StreamInterface; + + +/** + * Decorator used to return only a subset of a stream + */ +class LimitStream implements StreamInterface +{ + use StreamDecoratorTrait; + + /** @var int Offset to start reading from */ + private $offset; + + /** @var int Limit the number of bytes that can be read */ + private $limit; + + /** + * @param StreamInterface $stream Stream to wrap + * @param int $limit Total number of bytes to allow to be read + * from the stream. Pass -1 for no limit. + * @param int $offset Position to seek to before reading (only + * works on seekable streams). + */ + public function __construct( + StreamInterface $stream, + $limit = -1, + $offset = 0 + ) { + $this->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/GuzzleHttp/Psr7/MessageTrait.php b/lib/aws/GuzzleHttp/Psr7/MessageTrait.php new file mode 100644 index 0000000..1e4da64 --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/MessageTrait.php @@ -0,0 +1,183 @@ +<?php +namespace GuzzleHttp\Psr7; + +use Psr\Http\Message\StreamInterface; + +/** + * Trait implementing functionality common to requests and responses. + */ +trait MessageTrait +{ + /** @var array Map of all registered headers, as original name => array of values */ + private $headers = []; + + /** @var array Map of lowercase header name => original name at registration */ + private $headerNames = []; + + /** @var string */ + private $protocol = '1.1'; + + /** @var StreamInterface */ + private $stream; + + public function getProtocolVersion() + { + return $this->protocol; + } + + public function withProtocolVersion($version) + { + if ($this->protocol === $version) { + return $this; + } + + $new = clone $this; + $new->protocol = $version; + return $new; + } + + public function getHeaders() + { + return $this->headers; + } + + public function hasHeader($header) + { + return isset($this->headerNames[strtolower($header)]); + } + + public function getHeader($header) + { + $header = strtolower($header); + + if (!isset($this->headerNames[$header])) { + return []; + } + + $header = $this->headerNames[$header]; + + return $this->headers[$header]; + } + + public function getHeaderLine($header) + { + return implode(', ', $this->getHeader($header)); + } + + public function withHeader($header, $value) + { + if (!is_array($value)) { + $value = [$value]; + } + + $value = $this->trimHeaderValues($value); + $normalized = strtolower($header); + + $new = clone $this; + if (isset($new->headerNames[$normalized])) { + unset($new->headers[$new->headerNames[$normalized]]); + } + $new->headerNames[$normalized] = $header; + $new->headers[$header] = $value; + + return $new; + } + + public function withAddedHeader($header, $value) + { + if (!is_array($value)) { + $value = [$value]; + } + + $value = $this->trimHeaderValues($value); + $normalized = strtolower($header); + + $new = clone $this; + if (isset($new->headerNames[$normalized])) { + $header = $this->headerNames[$normalized]; + $new->headers[$header] = array_merge($this->headers[$header], $value); + } else { + $new->headerNames[$normalized] = $header; + $new->headers[$header] = $value; + } + + return $new; + } + + public function withoutHeader($header) + { + $normalized = strtolower($header); + + if (!isset($this->headerNames[$normalized])) { + return $this; + } + + $header = $this->headerNames[$normalized]; + + $new = clone $this; + unset($new->headers[$header], $new->headerNames[$normalized]); + + 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->headerNames = $this->headers = []; + foreach ($headers as $header => $value) { + if (!is_array($value)) { + $value = [$value]; + } + + $value = $this->trimHeaderValues($value); + $normalized = strtolower($header); + if (isset($this->headerNames[$normalized])) { + $header = $this->headerNames[$normalized]; + $this->headers[$header] = array_merge($this->headers[$header], $value); + } else { + $this->headerNames[$normalized] = $header; + $this->headers[$header] = $value; + } + } + } + + /** + * Trims whitespace from the header values. + * + * Spaces and tabs ought to be excluded by parsers when extracting the field value from a header field. + * + * header-field = field-name ":" OWS field-value OWS + * OWS = *( SP / HTAB ) + * + * @param string[] $values Header values + * + * @return string[] Trimmed header values + * + * @see https://tools.ietf.org/html/rfc7230#section-3.2.4 + */ + private function trimHeaderValues(array $values) + { + return array_map(function ($value) { + return trim($value, " \t"); + }, $values); + } +} diff --git a/lib/aws/GuzzleHttp/Psr7/MultipartStream.php b/lib/aws/GuzzleHttp/Psr7/MultipartStream.php new file mode 100644 index 0000000..c0fd584 --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/MultipartStream.php @@ -0,0 +1,153 @@ +<?php +namespace GuzzleHttp\Psr7; + +use Psr\Http\Message\StreamInterface; + +/** + * Stream that when read returns bytes for a streaming multipart or + * multipart/form-data stream. + */ +class MultipartStream implements StreamInterface +{ + use StreamDecoratorTrait; + + private $boundary; + + /** + * @param array $elements Array of associative arrays, each containing a + * required "name" key mapping to the form field, + * name, a required "contents" key mapping to a + * StreamInterface/resource/string, an optional + * "headers" associative array of custom headers, + * and an optional "filename" key mapping to a + * string to send as the filename in the part. + * @param string $boundary You can optionally provide a specific boundary + * + * @throws \InvalidArgumentException + */ + public function __construct(array $elements = [], $boundary = null) + { + $this->boundary = $boundary ?: sha1(uniqid('', true)); + $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, StreamInterface $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 === '0' || $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 === '0' || $filename)) { + if ($type = mimetype_from_filename($filename)) { + $headers['Content-Type'] = $type; + } + } + + return [$stream, $headers]; + } + + private function getHeader(array $headers, $key) + { + $lowercaseHeader = strtolower($key); + foreach ($headers as $k => $v) { + if (strtolower($k) === $lowercaseHeader) { + return $v; + } + } + + return null; + } +} diff --git a/lib/aws/GuzzleHttp/Psr7/NoSeekStream.php b/lib/aws/GuzzleHttp/Psr7/NoSeekStream.php new file mode 100644 index 0000000..2332218 --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/NoSeekStream.php @@ -0,0 +1,22 @@ +<?php +namespace GuzzleHttp\Psr7; + +use Psr\Http\Message\StreamInterface; + +/** + * Stream decorator that prevents a stream from being seeked + */ +class NoSeekStream implements StreamInterface +{ + use StreamDecoratorTrait; + + public function seek($offset, $whence = SEEK_SET) + { + throw new \RuntimeException('Cannot seek a NoSeekStream'); + } + + public function isSeekable() + { + return false; + } +} diff --git a/lib/aws/GuzzleHttp/Psr7/PumpStream.php b/lib/aws/GuzzleHttp/Psr7/PumpStream.php new file mode 100644 index 0000000..ffb5440 --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/PumpStream.php @@ -0,0 +1,165 @@ +<?php +namespace GuzzleHttp\Psr7; + +use Psr\Http\Message\StreamInterface; + +/** + * Provides a read only stream that pumps data from a PHP callable. + * + * When invoking the provided callable, the PumpStream will pass the amount of + * data requested to read to the callable. The callable can choose to ignore + * this value and return fewer or more bytes than requested. Any extra data + * returned by the provided callable is buffered internally until drained using + * the read() function of the PumpStream. The provided callable MUST return + * false when there is no more data to read. + */ +class PumpStream implements StreamInterface +{ + /** @var callable */ + private $source; + + /** @var int */ + private $size; + + /** @var int */ + private $tellPos = 0; + + /** @var array */ + private $metadata; + + /** @var BufferStream */ + private $buffer; + + /** + * @param callable $source Source of the stream data. The callable MAY + * accept an integer argument used to control the + * amount of data to return. The callable MUST + * return a string when called, or false on error + * or EOF. + * @param array $options Stream options: + * - metadata: Hash of metadata to use with stream. + * - size: Size of the stream, if known. + */ + public function __construct(callable $source, array $options = []) + { + $this->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/GuzzleHttp/Psr7/Request.php b/lib/aws/GuzzleHttp/Psr7/Request.php new file mode 100644 index 0000000..0006642 --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/Request.php @@ -0,0 +1,142 @@ +<?php +namespace GuzzleHttp\Psr7; + +use InvalidArgumentException; +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\StreamInterface; +use Psr\Http\Message\UriInterface; + +/** + * PSR-7 request implementation. + */ +class Request implements RequestInterface +{ + use MessageTrait; + + /** @var string */ + private $method; + + /** @var null|string */ + private $requestTarget; + + /** @var UriInterface */ + private $uri; + + /** + * @param string $method HTTP method + * @param string|UriInterface $uri URI + * @param array $headers Request headers + * @param string|null|resource|StreamInterface $body Request body + * @param string $version Protocol version + */ + public function __construct( + $method, + $uri, + array $headers = [], + $body = null, + $version = '1.1' + ) { + if (!($uri instanceof UriInterface)) { + $uri = new Uri($uri); + } + + $this->method = strtoupper($method); + $this->uri = $uri; + $this->setHeaders($headers); + $this->protocol = $version; + + if (!isset($this->headerNames['host'])) { + $this->updateHostFromUri(); + } + + if ($body !== '' && $body !== null) { + $this->stream = stream_for($body); + } + } + + public function getRequestTarget() + { + if ($this->requestTarget !== null) { + return $this->requestTarget; + } + + $target = $this->uri->getPath(); + if ($target == '') { + $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 || !isset($this->headerNames['host'])) { + $new->updateHostFromUri(); + } + + return $new; + } + + private function updateHostFromUri() + { + $host = $this->uri->getHost(); + + if ($host == '') { + return; + } + + if (($port = $this->uri->getPort()) !== null) { + $host .= ':' . $port; + } + + if (isset($this->headerNames['host'])) { + $header = $this->headerNames['host']; + } else { + $header = 'Host'; + $this->headerNames['host'] = 'Host'; + } + // Ensure Host is the first header. + // See: http://tools.ietf.org/html/rfc7230#section-5.4 + $this->headers = [$header => [$host]] + $this->headers; + } +} diff --git a/lib/aws/GuzzleHttp/Psr7/Response.php b/lib/aws/GuzzleHttp/Psr7/Response.php new file mode 100644 index 0000000..6e72c06 --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/Response.php @@ -0,0 +1,136 @@ +<?php +namespace GuzzleHttp\Psr7; + +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\StreamInterface; + +/** + * PSR-7 response implementation. + */ +class Response implements ResponseInterface +{ + use MessageTrait; + + /** @var array Map of standard HTTP status code/reason phrases */ + private static $phrases = [ + 100 => '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', + 451 => 'Unavailable For Legal Reasons', + 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 string */ + private $reasonPhrase = ''; + + /** @var int */ + private $statusCode = 200; + + /** + * @param int $status Status code + * @param array $headers Response headers + * @param string|null|resource|StreamInterface $body Response body + * @param string $version Protocol version + * @param string|null $reason Reason phrase (when empty a default will be used based on the status code) + */ + public function __construct( + $status = 200, + array $headers = [], + $body = null, + $version = '1.1', + $reason = null + ) { + if (filter_var($status, FILTER_VALIDATE_INT) === false) { + throw new \InvalidArgumentException('Status code must be an integer value.'); + } + + $this->statusCode = (int) $status; + + if ($body !== '' && $body !== null) { + $this->stream = stream_for($body); + } + + $this->setHeaders($headers); + if ($reason == '' && isset(self::$phrases[$this->statusCode])) { + $this->reasonPhrase = self::$phrases[$this->statusCode]; + } 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/GuzzleHttp/Psr7/Rfc7230.php b/lib/aws/GuzzleHttp/Psr7/Rfc7230.php new file mode 100644 index 0000000..505e474 --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/Rfc7230.php @@ -0,0 +1,18 @@ +<?php + +namespace GuzzleHttp\Psr7; + +final class Rfc7230 +{ + /** + * Header related regular expressions (copied from amphp/http package) + * (Note: once we require PHP 7.x we could just depend on the upstream package) + * + * Note: header delimiter (\r\n) is modified to \r?\n to accept line feed only delimiters for BC reasons. + * + * @link https://github.com/amphp/http/blob/v1.0.1/src/Rfc7230.php#L12-L15 + * @license https://github.com/amphp/http/blob/v1.0.1/LICENSE + */ + const HEADER_REGEX = "(^([^()<>@,;:\\\"/[\]?={}\x01-\x20\x7F]++):[ \t]*+((?:[ \t]*+[\x21-\x7E\x80-\xFF]++)*+)[ \t]*+\r?\n)m"; + const HEADER_FOLD_REGEX = "(\r?\n[ \t]++)"; +} diff --git a/lib/aws/GuzzleHttp/Psr7/ServerRequest.php b/lib/aws/GuzzleHttp/Psr7/ServerRequest.php new file mode 100644 index 0000000..99f453a --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/ServerRequest.php @@ -0,0 +1,376 @@ +<?php + +namespace GuzzleHttp\Psr7; + +use InvalidArgumentException; +use Psr\Http\Message\ServerRequestInterface; +use Psr\Http\Message\UriInterface; +use Psr\Http\Message\StreamInterface; +use Psr\Http\Message\UploadedFileInterface; + +/** + * Server-side HTTP request + * + * Extends the Request definition to add methods for accessing incoming data, + * specifically server parameters, cookies, matched path parameters, query + * string arguments, body parameters, and upload file information. + * + * "Attributes" are discovered via decomposing the request (and usually + * specifically the URI path), and typically will be injected by the application. + * + * Requests are considered immutable; all methods that might change state are + * implemented such that they retain the internal state of the current + * message and return a new instance that contains the changed state. + */ +class ServerRequest extends Request implements ServerRequestInterface +{ + /** + * @var array + */ + private $attributes = []; + + /** + * @var array + */ + private $cookieParams = []; + + /** + * @var null|array|object + */ + private $parsedBody; + + /** + * @var array + */ + private $queryParams = []; + + /** + * @var array + */ + private $serverParams; + + /** + * @var array + */ + private $uploadedFiles = []; + + /** + * @param string $method HTTP method + * @param string|UriInterface $uri URI + * @param array $headers Request headers + * @param string|null|resource|StreamInterface $body Request body + * @param string $version Protocol version + * @param array $serverParams Typically the $_SERVER superglobal + */ + public function __construct( + $method, + $uri, + array $headers = [], + $body = null, + $version = '1.1', + array $serverParams = [] + ) { + $this->serverParams = $serverParams; + + parent::__construct($method, $uri, $headers, $body, $version); + } + + /** + * Return an UploadedFile instance array. + * + * @param array $files A array which respect $_FILES structure + * @throws InvalidArgumentException for unrecognized values + * @return array + */ + public static function normalizeFiles(array $files) + { + $normalized = []; + + foreach ($files as $key => $value) { + if ($value instanceof UploadedFileInterface) { + $normalized[$key] = $value; + } elseif (is_array($value) && isset($value['tmp_name'])) { + $normalized[$key] = self::createUploadedFileFromSpec($value); + } elseif (is_array($value)) { + $normalized[$key] = self::normalizeFiles($value); + continue; + } else { + throw new InvalidArgumentException('Invalid value in files specification'); + } + } + + return $normalized; + } + + /** + * Create and return an UploadedFile instance from a $_FILES specification. + * + * If the specification represents an array of values, this method will + * delegate to normalizeNestedFileSpec() and return that return value. + * + * @param array $value $_FILES struct + * @return array|UploadedFileInterface + */ + private static function createUploadedFileFromSpec(array $value) + { + if (is_array($value['tmp_name'])) { + return self::normalizeNestedFileSpec($value); + } + + return new UploadedFile( + $value['tmp_name'], + (int) $value['size'], + (int) $value['error'], + $value['name'], + $value['type'] + ); + } + + /** + * Normalize an array of file specifications. + * + * Loops through all nested files and returns a normalized array of + * UploadedFileInterface instances. + * + * @param array $files + * @return UploadedFileInterface[] + */ + private static function normalizeNestedFileSpec(array $files = []) + { + $normalizedFiles = []; + + foreach (array_keys($files['tmp_name']) as $key) { + $spec = [ + 'tmp_name' => $files['tmp_name'][$key], + 'size' => $files['size'][$key], + 'error' => $files['error'][$key], + 'name' => $files['name'][$key], + 'type' => $files['type'][$key], + ]; + $normalizedFiles[$key] = self::createUploadedFileFromSpec($spec); + } + + return $normalizedFiles; + } + + /** + * Return a ServerRequest populated with superglobals: + * $_GET + * $_POST + * $_COOKIE + * $_FILES + * $_SERVER + * + * @return ServerRequestInterface + */ + public static function fromGlobals() + { + $method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : 'GET'; + $headers = getallheaders(); + $uri = self::getUriFromGlobals(); + $body = new LazyOpenStream('php://input', 'r+'); + $protocol = isset($_SERVER['SERVER_PROTOCOL']) ? str_replace('HTTP/', '', $_SERVER['SERVER_PROTOCOL']) : '1.1'; + + $serverRequest = new ServerRequest($method, $uri, $headers, $body, $protocol, $_SERVER); + + return $serverRequest + ->withCookieParams($_COOKIE) + ->withQueryParams($_GET) + ->withParsedBody($_POST) + ->withUploadedFiles(self::normalizeFiles($_FILES)); + } + + private static function extractHostAndPortFromAuthority($authority) + { + $uri = 'http://'.$authority; + $parts = parse_url($uri); + if (false === $parts) { + return [null, null]; + } + + $host = isset($parts['host']) ? $parts['host'] : null; + $port = isset($parts['port']) ? $parts['port'] : null; + + return [$host, $port]; + } + + /** + * Get a Uri populated with values from $_SERVER. + * + * @return UriInterface + */ + public static function getUriFromGlobals() + { + $uri = new Uri(''); + + $uri = $uri->withScheme(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' ? 'https' : 'http'); + + $hasPort = false; + if (isset($_SERVER['HTTP_HOST'])) { + list($host, $port) = self::extractHostAndPortFromAuthority($_SERVER['HTTP_HOST']); + if ($host !== null) { + $uri = $uri->withHost($host); + } + + if ($port !== null) { + $hasPort = true; + $uri = $uri->withPort($port); + } + } elseif (isset($_SERVER['SERVER_NAME'])) { + $uri = $uri->withHost($_SERVER['SERVER_NAME']); + } elseif (isset($_SERVER['SERVER_ADDR'])) { + $uri = $uri->withHost($_SERVER['SERVER_ADDR']); + } + + if (!$hasPort && isset($_SERVER['SERVER_PORT'])) { + $uri = $uri->withPort($_SERVER['SERVER_PORT']); + } + + $hasQuery = false; + if (isset($_SERVER['REQUEST_URI'])) { + $requestUriParts = explode('?', $_SERVER['REQUEST_URI'], 2); + $uri = $uri->withPath($requestUriParts[0]); + if (isset($requestUriParts[1])) { + $hasQuery = true; + $uri = $uri->withQuery($requestUriParts[1]); + } + } + + if (!$hasQuery && isset($_SERVER['QUERY_STRING'])) { + $uri = $uri->withQuery($_SERVER['QUERY_STRING']); + } + + return $uri; + } + + + /** + * {@inheritdoc} + */ + public function getServerParams() + { + return $this->serverParams; + } + + /** + * {@inheritdoc} + */ + public function getUploadedFiles() + { + return $this->uploadedFiles; + } + + /** + * {@inheritdoc} + */ + public function withUploadedFiles(array $uploadedFiles) + { + $new = clone $this; + $new->uploadedFiles = $uploadedFiles; + + return $new; + } + + /** + * {@inheritdoc} + */ + public function getCookieParams() + { + return $this->cookieParams; + } + + /** + * {@inheritdoc} + */ + public function withCookieParams(array $cookies) + { + $new = clone $this; + $new->cookieParams = $cookies; + + return $new; + } + + /** + * {@inheritdoc} + */ + public function getQueryParams() + { + return $this->queryParams; + } + + /** + * {@inheritdoc} + */ + public function withQueryParams(array $query) + { + $new = clone $this; + $new->queryParams = $query; + + return $new; + } + + /** + * {@inheritdoc} + */ + public function getParsedBody() + { + return $this->parsedBody; + } + + /** + * {@inheritdoc} + */ + public function withParsedBody($data) + { + $new = clone $this; + $new->parsedBody = $data; + + return $new; + } + + /** + * {@inheritdoc} + */ + public function getAttributes() + { + return $this->attributes; + } + + /** + * {@inheritdoc} + */ + public function getAttribute($attribute, $default = null) + { + if (false === array_key_exists($attribute, $this->attributes)) { + return $default; + } + + return $this->attributes[$attribute]; + } + + /** + * {@inheritdoc} + */ + public function withAttribute($attribute, $value) + { + $new = clone $this; + $new->attributes[$attribute] = $value; + + return $new; + } + + /** + * {@inheritdoc} + */ + public function withoutAttribute($attribute) + { + if (false === array_key_exists($attribute, $this->attributes)) { + return $this; + } + + $new = clone $this; + unset($new->attributes[$attribute]); + + return $new; + } +} diff --git a/lib/aws/GuzzleHttp/Psr7/Stream.php b/lib/aws/GuzzleHttp/Psr7/Stream.php new file mode 100644 index 0000000..111795e --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/Stream.php @@ -0,0 +1,270 @@ +<?php +namespace GuzzleHttp\Psr7; + +use Psr\Http\Message\StreamInterface; + +/** + * PHP stream implementation. + * + * @var $stream + */ +class Stream implements StreamInterface +{ + private $stream; + private $size; + private $seekable; + private $readable; + private $writable; + private $uri; + private $customMetadata; + + /** @var array Hash of readable and writable stream types */ + private static $readWriteHash = [ + 'read' => [ + '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, 'rb+' => true, + ], + 'write' => [ + 'w' => true, 'w+' => true, 'rw' => true, 'r+' => true, 'x+' => true, + 'c+' => true, 'wb' => true, 'w+b' => true, 'r+b' => true, 'rb+' => 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 foreknowledge, 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'); + } + + /** + * 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() + { + if (!isset($this->stream)) { + throw new \RuntimeException('Stream is detached'); + } + + $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() + { + if (!isset($this->stream)) { + throw new \RuntimeException('Stream is detached'); + } + + return feof($this->stream); + } + + public function tell() + { + if (!isset($this->stream)) { + throw new \RuntimeException('Stream is detached'); + } + + $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 (!isset($this->stream)) { + throw new \RuntimeException('Stream is detached'); + } + if (!$this->seekable) { + throw new \RuntimeException('Stream is not seekable'); + } + if (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 (!isset($this->stream)) { + throw new \RuntimeException('Stream is detached'); + } + if (!$this->readable) { + throw new \RuntimeException('Cannot read from non-readable stream'); + } + if ($length < 0) { + throw new \RuntimeException('Length parameter cannot be negative'); + } + + if (0 === $length) { + return ''; + } + + $string = fread($this->stream, $length); + if (false === $string) { + throw new \RuntimeException('Unable to read from stream'); + } + + return $string; + } + + public function write($string) + { + if (!isset($this->stream)) { + throw new \RuntimeException('Stream is detached'); + } + 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/GuzzleHttp/Psr7/StreamDecoratorTrait.php b/lib/aws/GuzzleHttp/Psr7/StreamDecoratorTrait.php new file mode 100644 index 0000000..daec6f5 --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/StreamDecoratorTrait.php @@ -0,0 +1,149 @@ +<?php +namespace GuzzleHttp\Psr7; + +use Psr\Http\Message\StreamInterface; + +/** + * Stream decorator trait + * @property StreamInterface stream + */ +trait StreamDecoratorTrait +{ + /** + * @param StreamInterface $stream Stream to decorate + */ + public function __construct(StreamInterface $stream) + { + $this->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/GuzzleHttp/Psr7/StreamWrapper.php b/lib/aws/GuzzleHttp/Psr7/StreamWrapper.php new file mode 100644 index 0000000..0f3a285 --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/StreamWrapper.php @@ -0,0 +1,161 @@ +<?php +namespace GuzzleHttp\Psr7; + +use Psr\Http\Message\StreamInterface; + +/** + * Converts Guzzle streams into PHP stream resources. + */ +class StreamWrapper +{ + /** @var resource */ + public $context; + + /** @var StreamInterface */ + private $stream; + + /** @var string r, r+, or w */ + private $mode; + + /** + * Returns a resource representing the stream. + * + * @param StreamInterface $stream The stream to get a resource for + * + * @return resource + * @throws \InvalidArgumentException if stream is not readable or writable + */ + public static function getResource(StreamInterface $stream) + { + self::register(); + + if ($stream->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, self::createStreamContext($stream)); + } + + /** + * Creates a stream context that can be used to open a stream as a php stream resource. + * + * @param StreamInterface $stream + * + * @return resource + */ + public static function createStreamContext(StreamInterface $stream) + { + return 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_cast($cast_as) + { + $stream = clone($this->stream); + + return $stream->detach(); + } + + public function stream_stat() + { + static $modeMap = [ + 'r' => 33060, + 'rb' => 33060, + 'r+' => 33206, + 'w' => 33188, + 'wb' => 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 + ]; + } + + public function url_stat($path, $flags) + { + return [ + 'dev' => 0, + 'ino' => 0, + 'mode' => 0, + 'nlink' => 0, + 'uid' => 0, + 'gid' => 0, + 'rdev' => 0, + 'size' => 0, + 'atime' => 0, + 'mtime' => 0, + 'ctime' => 0, + 'blksize' => 0, + 'blocks' => 0 + ]; + } +} diff --git a/lib/aws/GuzzleHttp/Psr7/UploadedFile.php b/lib/aws/GuzzleHttp/Psr7/UploadedFile.php new file mode 100644 index 0000000..e62bd5c --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/UploadedFile.php @@ -0,0 +1,316 @@ +<?php +namespace GuzzleHttp\Psr7; + +use InvalidArgumentException; +use Psr\Http\Message\StreamInterface; +use Psr\Http\Message\UploadedFileInterface; +use RuntimeException; + +class UploadedFile implements UploadedFileInterface +{ + /** + * @var int[] + */ + private static $errors = [ + UPLOAD_ERR_OK, + UPLOAD_ERR_INI_SIZE, + UPLOAD_ERR_FORM_SIZE, + UPLOAD_ERR_PARTIAL, + UPLOAD_ERR_NO_FILE, + UPLOAD_ERR_NO_TMP_DIR, + UPLOAD_ERR_CANT_WRITE, + UPLOAD_ERR_EXTENSION, + ]; + + /** + * @var string + */ + private $clientFilename; + + /** + * @var string + */ + private $clientMediaType; + + /** + * @var int + */ + private $error; + + /** + * @var null|string + */ + private $file; + + /** + * @var bool + */ + private $moved = false; + + /** + * @var int + */ + private $size; + + /** + * @var StreamInterface|null + */ + private $stream; + + /** + * @param StreamInterface|string|resource $streamOrFile + * @param int $size + * @param int $errorStatus + * @param string|null $clientFilename + * @param string|null $clientMediaType + */ + public function __construct( + $streamOrFile, + $size, + $errorStatus, + $clientFilename = null, + $clientMediaType = null + ) { + $this->setError($errorStatus); + $this->setSize($size); + $this->setClientFilename($clientFilename); + $this->setClientMediaType($clientMediaType); + + if ($this->isOk()) { + $this->setStreamOrFile($streamOrFile); + } + } + + /** + * Depending on the value set file or stream variable + * + * @param mixed $streamOrFile + * @throws InvalidArgumentException + */ + private function setStreamOrFile($streamOrFile) + { + if (is_string($streamOrFile)) { + $this->file = $streamOrFile; + } elseif (is_resource($streamOrFile)) { + $this->stream = new Stream($streamOrFile); + } elseif ($streamOrFile instanceof StreamInterface) { + $this->stream = $streamOrFile; + } else { + throw new InvalidArgumentException( + 'Invalid stream or file provided for UploadedFile' + ); + } + } + + /** + * @param int $error + * @throws InvalidArgumentException + */ + private function setError($error) + { + if (false === is_int($error)) { + throw new InvalidArgumentException( + 'Upload file error status must be an integer' + ); + } + + if (false === in_array($error, UploadedFile::$errors)) { + throw new InvalidArgumentException( + 'Invalid error status for UploadedFile' + ); + } + + $this->error = $error; + } + + /** + * @param int $size + * @throws InvalidArgumentException + */ + private function setSize($size) + { + if (false === is_int($size)) { + throw new InvalidArgumentException( + 'Upload file size must be an integer' + ); + } + + $this->size = $size; + } + + /** + * @param mixed $param + * @return boolean + */ + private function isStringOrNull($param) + { + return in_array(gettype($param), ['string', 'NULL']); + } + + /** + * @param mixed $param + * @return boolean + */ + private function isStringNotEmpty($param) + { + return is_string($param) && false === empty($param); + } + + /** + * @param string|null $clientFilename + * @throws InvalidArgumentException + */ + private function setClientFilename($clientFilename) + { + if (false === $this->isStringOrNull($clientFilename)) { + throw new InvalidArgumentException( + 'Upload file client filename must be a string or null' + ); + } + + $this->clientFilename = $clientFilename; + } + + /** + * @param string|null $clientMediaType + * @throws InvalidArgumentException + */ + private function setClientMediaType($clientMediaType) + { + if (false === $this->isStringOrNull($clientMediaType)) { + throw new InvalidArgumentException( + 'Upload file client media type must be a string or null' + ); + } + + $this->clientMediaType = $clientMediaType; + } + + /** + * Return true if there is no upload error + * + * @return boolean + */ + private function isOk() + { + return $this->error === UPLOAD_ERR_OK; + } + + /** + * @return boolean + */ + public function isMoved() + { + return $this->moved; + } + + /** + * @throws RuntimeException if is moved or not ok + */ + private function validateActive() + { + if (false === $this->isOk()) { + throw new RuntimeException('Cannot retrieve stream due to upload error'); + } + + if ($this->isMoved()) { + throw new RuntimeException('Cannot retrieve stream after it has already been moved'); + } + } + + /** + * {@inheritdoc} + * @throws RuntimeException if the upload was not successful. + */ + public function getStream() + { + $this->validateActive(); + + if ($this->stream instanceof StreamInterface) { + return $this->stream; + } + + return new LazyOpenStream($this->file, 'r+'); + } + + /** + * {@inheritdoc} + * + * @see http://php.net/is_uploaded_file + * @see http://php.net/move_uploaded_file + * @param string $targetPath Path to which to move the uploaded file. + * @throws RuntimeException if the upload was not successful. + * @throws InvalidArgumentException if the $path specified is invalid. + * @throws RuntimeException on any error during the move operation, or on + * the second or subsequent call to the method. + */ + public function moveTo($targetPath) + { + $this->validateActive(); + + if (false === $this->isStringNotEmpty($targetPath)) { + throw new InvalidArgumentException( + 'Invalid path provided for move operation; must be a non-empty string' + ); + } + + if ($this->file) { + $this->moved = php_sapi_name() == 'cli' + ? rename($this->file, $targetPath) + : move_uploaded_file($this->file, $targetPath); + } else { + copy_to_stream( + $this->getStream(), + new LazyOpenStream($targetPath, 'w') + ); + + $this->moved = true; + } + + if (false === $this->moved) { + throw new RuntimeException( + sprintf('Uploaded file could not be moved to %s', $targetPath) + ); + } + } + + /** + * {@inheritdoc} + * + * @return int|null The file size in bytes or null if unknown. + */ + public function getSize() + { + return $this->size; + } + + /** + * {@inheritdoc} + * + * @see http://php.net/manual/en/features.file-upload.errors.php + * @return int One of PHP's UPLOAD_ERR_XXX constants. + */ + public function getError() + { + return $this->error; + } + + /** + * {@inheritdoc} + * + * @return string|null The filename sent by the client or null if none + * was provided. + */ + public function getClientFilename() + { + return $this->clientFilename; + } + + /** + * {@inheritdoc} + */ + public function getClientMediaType() + { + return $this->clientMediaType; + } +} diff --git a/lib/aws/GuzzleHttp/Psr7/Uri.php b/lib/aws/GuzzleHttp/Psr7/Uri.php new file mode 100644 index 0000000..3621956 --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/Uri.php @@ -0,0 +1,738 @@ +<?php +namespace GuzzleHttp\Psr7; + +use Psr\Http\Message\UriInterface; + +/** + * PSR-7 URI implementation. + * + * @author Michael Dowling + * @author Tobias Schultze + * @author Matthew Weier O'Phinney + */ +class Uri implements UriInterface +{ + /** + * Absolute http and https URIs require a host per RFC 7230 Section 2.7 + * but in generic URIs the host can be empty. So for http(s) URIs + * we apply this default host when no host is given yet to form a + * valid URI. + */ + const HTTP_DEFAULT_HOST = 'localhost'; + + private static $defaultPorts = [ + 'http' => 80, + 'https' => 443, + 'ftp' => 21, + 'gopher' => 70, + 'nntp' => 119, + 'news' => 119, + 'telnet' => 23, + 'tn3270' => 23, + 'imap' => 143, + 'pop' => 110, + 'ldap' => 389, + ]; + + 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 + */ + public function __construct($uri = '') + { + // weak type check to also accept null until we can add scalar type hints + if ($uri != '') { + $parts = parse_url($uri); + if ($parts === false) { + throw new \InvalidArgumentException("Unable to parse URI: $uri"); + } + $this->applyParts($parts); + } + } + + public function __toString() + { + return self::composeComponents( + $this->scheme, + $this->getAuthority(), + $this->path, + $this->query, + $this->fragment + ); + } + + /** + * Composes a URI reference string from its various components. + * + * Usually this method does not need to be called manually but instead is used indirectly via + * `Psr\Http\Message\UriInterface::__toString`. + * + * PSR-7 UriInterface treats an empty component the same as a missing component as + * getQuery(), getFragment() etc. always return a string. This explains the slight + * difference to RFC 3986 Section 5.3. + * + * Another adjustment is that the authority separator is added even when the authority is missing/empty + * for the "file" scheme. This is because PHP stream functions like `file_get_contents` only work with + * `file:///myfile` but not with `file:/myfile` although they are equivalent according to RFC 3986. But + * `file:///` is the more common syntax for the file scheme anyway (Chrome for example redirects to + * that format). + * + * @param string $scheme + * @param string $authority + * @param string $path + * @param string $query + * @param string $fragment + * + * @return string + * + * @link https://tools.ietf.org/html/rfc3986#section-5.3 + */ + public static function composeComponents($scheme, $authority, $path, $query, $fragment) + { + $uri = ''; + + // weak type checks to also accept null until we can add scalar type hints + if ($scheme != '') { + $uri .= $scheme . ':'; + } + + if ($authority != ''|| $scheme === 'file') { + $uri .= '//' . $authority; + } + + $uri .= $path; + + if ($query != '') { + $uri .= '?' . $query; + } + + if ($fragment != '') { + $uri .= '#' . $fragment; + } + + return $uri; + } + + /** + * Whether the URI has the default port of the current scheme. + * + * `Psr\Http\Message\UriInterface::getPort` may return null or the standard port. This method can be used + * independently of the implementation. + * + * @param UriInterface $uri + * + * @return bool + */ + public static function isDefaultPort(UriInterface $uri) + { + return $uri->getPort() === null + || (isset(self::$defaultPorts[$uri->getScheme()]) && $uri->getPort() === self::$defaultPorts[$uri->getScheme()]); + } + + /** + * Whether the URI is absolute, i.e. it has a scheme. + * + * An instance of UriInterface can either be an absolute URI or a relative reference. This method returns true + * if it is the former. An absolute URI has a scheme. A relative reference is used to express a URI relative + * to another URI, the base URI. Relative references can be divided into several forms: + * - network-path references, e.g. '//example.com/path' + * - absolute-path references, e.g. '/path' + * - relative-path references, e.g. 'subpath' + * + * @param UriInterface $uri + * + * @return bool + * @see Uri::isNetworkPathReference + * @see Uri::isAbsolutePathReference + * @see Uri::isRelativePathReference + * @link https://tools.ietf.org/html/rfc3986#section-4 + */ + public static function isAbsolute(UriInterface $uri) + { + return $uri->getScheme() !== ''; + } + + /** + * Whether the URI is a network-path reference. + * + * A relative reference that begins with two slash characters is termed an network-path reference. + * + * @param UriInterface $uri + * + * @return bool + * @link https://tools.ietf.org/html/rfc3986#section-4.2 + */ + public static function isNetworkPathReference(UriInterface $uri) + { + return $uri->getScheme() === '' && $uri->getAuthority() !== ''; + } + + /** + * Whether the URI is a absolute-path reference. + * + * A relative reference that begins with a single slash character is termed an absolute-path reference. + * + * @param UriInterface $uri + * + * @return bool + * @link https://tools.ietf.org/html/rfc3986#section-4.2 + */ + public static function isAbsolutePathReference(UriInterface $uri) + { + return $uri->getScheme() === '' + && $uri->getAuthority() === '' + && isset($uri->getPath()[0]) + && $uri->getPath()[0] === '/'; + } + + /** + * Whether the URI is a relative-path reference. + * + * A relative reference that does not begin with a slash character is termed a relative-path reference. + * + * @param UriInterface $uri + * + * @return bool + * @link https://tools.ietf.org/html/rfc3986#section-4.2 + */ + public static function isRelativePathReference(UriInterface $uri) + { + return $uri->getScheme() === '' + && $uri->getAuthority() === '' + && (!isset($uri->getPath()[0]) || $uri->getPath()[0] !== '/'); + } + + /** + * Whether the URI is a same-document reference. + * + * A same-document reference refers to a URI that is, aside from its fragment + * component, identical to the base URI. When no base URI is given, only an empty + * URI reference (apart from its fragment) is considered a same-document reference. + * + * @param UriInterface $uri The URI to check + * @param UriInterface|null $base An optional base URI to compare against + * + * @return bool + * @link https://tools.ietf.org/html/rfc3986#section-4.4 + */ + public static function isSameDocumentReference(UriInterface $uri, UriInterface $base = null) + { + if ($base !== null) { + $uri = UriResolver::resolve($base, $uri); + + return ($uri->getScheme() === $base->getScheme()) + && ($uri->getAuthority() === $base->getAuthority()) + && ($uri->getPath() === $base->getPath()) + && ($uri->getQuery() === $base->getQuery()); + } + + return $uri->getScheme() === '' && $uri->getAuthority() === '' && $uri->getPath() === '' && $uri->getQuery() === ''; + } + + /** + * Removes dot segments from a path and returns the new path. + * + * @param string $path + * + * @return string + * + * @deprecated since version 1.4. Use UriResolver::removeDotSegments instead. + * @see UriResolver::removeDotSegments + */ + public static function removeDotSegments($path) + { + return UriResolver::removeDotSegments($path); + } + + /** + * Converts the relative URI into a new URI that is resolved against the base URI. + * + * @param UriInterface $base Base URI + * @param string|UriInterface $rel Relative URI + * + * @return UriInterface + * + * @deprecated since version 1.4. Use UriResolver::resolve instead. + * @see UriResolver::resolve + */ + public static function resolve(UriInterface $base, $rel) + { + if (!($rel instanceof UriInterface)) { + $rel = new self($rel); + } + + return UriResolver::resolve($base, $rel); + } + + /** + * Creates a new URI with a specific query string value removed. + * + * Any existing query string values that exactly match the provided key are + * removed. + * + * @param UriInterface $uri URI to use as a base. + * @param string $key Query string key to remove. + * + * @return UriInterface + */ + public static function withoutQueryValue(UriInterface $uri, $key) + { + $result = self::getFilteredQueryString($uri, [$key]); + + return $uri->withQuery(implode('&', $result)); + } + + /** + * Creates 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. + * + * A value of null will set the query string key without a value, e.g. "key" + * instead of "key=value". + * + * @param UriInterface $uri URI to use as a base. + * @param string $key Key to set. + * @param string|null $value Value to set + * + * @return UriInterface + */ + public static function withQueryValue(UriInterface $uri, $key, $value) + { + $result = self::getFilteredQueryString($uri, [$key]); + + $result[] = self::generateQueryString($key, $value); + + return $uri->withQuery(implode('&', $result)); + } + + /** + * Creates a new URI with multiple specific query string values. + * + * It has the same behavior as withQueryValue() but for an associative array of key => value. + * + * @param UriInterface $uri URI to use as a base. + * @param array $keyValueArray Associative array of key and values + * + * @return UriInterface + */ + public static function withQueryValues(UriInterface $uri, array $keyValueArray) + { + $result = self::getFilteredQueryString($uri, array_keys($keyValueArray)); + + foreach ($keyValueArray as $key => $value) { + $result[] = self::generateQueryString($key, $value); + } + + return $uri->withQuery(implode('&', $result)); + } + + /** + * Creates a URI from a hash of `parse_url` components. + * + * @param array $parts + * + * @return UriInterface + * @link http://php.net/manual/en/function.parse-url.php + * + * @throws \InvalidArgumentException If the components do not form a valid URI. + */ + public static function fromParts(array $parts) + { + $uri = new self(); + $uri->applyParts($parts); + $uri->validateState(); + + return $uri; + } + + public function getScheme() + { + return $this->scheme; + } + + public function getAuthority() + { + $authority = $this->host; + if ($this->userInfo !== '') { + $authority = $this->userInfo . '@' . $authority; + } + + if ($this->port !== null) { + $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; + } + + 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->removeDefaultPort(); + $new->validateState(); + + 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; + $new->validateState(); + + return $new; + } + + public function withHost($host) + { + $host = $this->filterHost($host); + + if ($this->host === $host) { + return $this; + } + + $new = clone $this; + $new->host = $host; + $new->validateState(); + + return $new; + } + + public function withPort($port) + { + $port = $this->filterPort($port); + + if ($this->port === $port) { + return $this; + } + + $new = clone $this; + $new->port = $port; + $new->removeDefaultPort(); + $new->validateState(); + + return $new; + } + + public function withPath($path) + { + $path = $this->filterPath($path); + + if ($this->path === $path) { + return $this; + } + + $new = clone $this; + $new->path = $path; + $new->validateState(); + + return $new; + } + + public function withQuery($query) + { + $query = $this->filterQueryAndFragment($query); + + if ($this->query === $query) { + return $this; + } + + $new = clone $this; + $new->query = $query; + + return $new; + } + + public function withFragment($fragment) + { + $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 array $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']) + ? $this->filterHost($parts['host']) + : ''; + $this->port = isset($parts['port']) + ? $this->filterPort($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']; + } + + $this->removeDefaultPort(); + } + + /** + * @param string $scheme + * + * @return string + * + * @throws \InvalidArgumentException If the scheme is invalid. + */ + private function filterScheme($scheme) + { + if (!is_string($scheme)) { + throw new \InvalidArgumentException('Scheme must be a string'); + } + + return strtolower($scheme); + } + + /** + * @param string $host + * + * @return string + * + * @throws \InvalidArgumentException If the host is invalid. + */ + private function filterHost($host) + { + if (!is_string($host)) { + throw new \InvalidArgumentException('Host must be a string'); + } + + return strtolower($host); + } + + /** + * @param int|null $port + * + * @return int|null + * + * @throws \InvalidArgumentException If the port is invalid. + */ + private function filterPort($port) + { + if ($port === null) { + return null; + } + + $port = (int) $port; + if (1 > $port || 0xffff < $port) { + throw new \InvalidArgumentException( + sprintf('Invalid port: %d. Must be between 1 and 65535', $port) + ); + } + + return $port; + } + + /** + * @param UriInterface $uri + * @param array $keys + * + * @return array + */ + private static function getFilteredQueryString(UriInterface $uri, array $keys) + { + $current = $uri->getQuery(); + + if ($current === '') { + return []; + } + + $decodedKeys = array_map('rawurldecode', $keys); + + return array_filter(explode('&', $current), function ($part) use ($decodedKeys) { + return !in_array(rawurldecode(explode('=', $part)[0]), $decodedKeys, true); + }); + } + + /** + * @param string $key + * @param string|null $value + * + * @return string + */ + private static function generateQueryString($key, $value) + { + // Query string separators ("=", "&") within the key or value need to be encoded + // (while preventing double-encoding) before setting the query string. All other + // chars that need percent-encoding will be encoded by withQuery(). + $queryString = strtr($key, self::$replaceQuery); + + if ($value !== null) { + $queryString .= '=' . strtr($value, self::$replaceQuery); + } + + return $queryString; + } + + private function removeDefaultPort() + { + if ($this->port !== null && self::isDefaultPort($this)) { + $this->port = null; + } + } + + /** + * Filters the path of a URI + * + * @param string $path + * + * @return string + * + * @throws \InvalidArgumentException If the path is invalid. + */ + private function filterPath($path) + { + if (!is_string($path)) { + throw new \InvalidArgumentException('Path must be a string'); + } + + return preg_replace_callback( + '/(?:[^' . self::$charUnreserved . self::$charSubDelims . '%:@\/]++|%(?![A-Fa-f0-9]{2}))/', + [$this, 'rawurlencodeMatchZero'], + $path + ); + } + + /** + * Filters the query string or fragment of a URI. + * + * @param string $str + * + * @return string + * + * @throws \InvalidArgumentException If the query or fragment is invalid. + */ + private function filterQueryAndFragment($str) + { + if (!is_string($str)) { + throw new \InvalidArgumentException('Query and fragment must be a string'); + } + + return preg_replace_callback( + '/(?:[^' . self::$charUnreserved . self::$charSubDelims . '%:@\/\?]++|%(?![A-Fa-f0-9]{2}))/', + [$this, 'rawurlencodeMatchZero'], + $str + ); + } + + private function rawurlencodeMatchZero(array $match) + { + return rawurlencode($match[0]); + } + + private function validateState() + { + if ($this->host === '' && ($this->scheme === 'http' || $this->scheme === 'https')) { + $this->host = self::HTTP_DEFAULT_HOST; + } + + if ($this->getAuthority() === '') { + if (0 === strpos($this->path, '//')) { + throw new \InvalidArgumentException('The path of a URI without an authority must not start with two slashes "//"'); + } + if ($this->scheme === '' && false !== strpos(explode('/', $this->path, 2)[0], ':')) { + throw new \InvalidArgumentException('A relative URI must not have a path beginning with a segment containing a colon'); + } + } elseif (isset($this->path[0]) && $this->path[0] !== '/') { + @trigger_error( + 'The path of a URI with an authority must start with a slash "/" or be empty. Automagically fixing the URI ' . + 'by adding a leading slash to the path is deprecated since version 1.4 and will throw an exception instead.', + E_USER_DEPRECATED + ); + $this->path = '/'. $this->path; + //throw new \InvalidArgumentException('The path of a URI with an authority must start with a slash "/" or be empty'); + } + } +} diff --git a/lib/aws/GuzzleHttp/Psr7/UriNormalizer.php b/lib/aws/GuzzleHttp/Psr7/UriNormalizer.php new file mode 100644 index 0000000..384c29e --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/UriNormalizer.php @@ -0,0 +1,216 @@ +<?php +namespace GuzzleHttp\Psr7; + +use Psr\Http\Message\UriInterface; + +/** + * Provides methods to normalize and compare URIs. + * + * @author Tobias Schultze + * + * @link https://tools.ietf.org/html/rfc3986#section-6 + */ +final class UriNormalizer +{ + /** + * Default normalizations which only include the ones that preserve semantics. + * + * self::CAPITALIZE_PERCENT_ENCODING | self::DECODE_UNRESERVED_CHARACTERS | self::CONVERT_EMPTY_PATH | + * self::REMOVE_DEFAULT_HOST | self::REMOVE_DEFAULT_PORT | self::REMOVE_DOT_SEGMENTS + */ + const PRESERVING_NORMALIZATIONS = 63; + + /** + * All letters within a percent-encoding triplet (e.g., "%3A") are case-insensitive, and should be capitalized. + * + * Example: http://example.org/a%c2%b1b → http://example.org/a%C2%B1b + */ + const CAPITALIZE_PERCENT_ENCODING = 1; + + /** + * Decodes percent-encoded octets of unreserved characters. + * + * For consistency, percent-encoded octets in the ranges of ALPHA (%41–%5A and %61–%7A), DIGIT (%30–%39), + * hyphen (%2D), period (%2E), underscore (%5F), or tilde (%7E) should not be created by URI producers and, + * when found in a URI, should be decoded to their corresponding unreserved characters by URI normalizers. + * + * Example: http://example.org/%7Eusern%61me/ → http://example.org/~username/ + */ + const DECODE_UNRESERVED_CHARACTERS = 2; + + /** + * Converts the empty path to "/" for http and https URIs. + * + * Example: http://example.org → http://example.org/ + */ + const CONVERT_EMPTY_PATH = 4; + + /** + * Removes the default host of the given URI scheme from the URI. + * + * Only the "file" scheme defines the default host "localhost". + * All of `file:/myfile`, `file:///myfile`, and `file://localhost/myfile` + * are equivalent according to RFC 3986. The first format is not accepted + * by PHPs stream functions and thus already normalized implicitly to the + * second format in the Uri class. See `GuzzleHttp\Psr7\Uri::composeComponents`. + * + * Example: file://localhost/myfile → file:///myfile + */ + const REMOVE_DEFAULT_HOST = 8; + + /** + * Removes the default port of the given URI scheme from the URI. + * + * Example: http://example.org:80/ → http://example.org/ + */ + const REMOVE_DEFAULT_PORT = 16; + + /** + * Removes unnecessary dot-segments. + * + * Dot-segments in relative-path references are not removed as it would + * change the semantics of the URI reference. + * + * Example: http://example.org/../a/b/../c/./d.html → http://example.org/a/c/d.html + */ + const REMOVE_DOT_SEGMENTS = 32; + + /** + * Paths which include two or more adjacent slashes are converted to one. + * + * Webservers usually ignore duplicate slashes and treat those URIs equivalent. + * But in theory those URIs do not need to be equivalent. So this normalization + * may change the semantics. Encoded slashes (%2F) are not removed. + * + * Example: http://example.org//foo///bar.html → http://example.org/foo/bar.html + */ + const REMOVE_DUPLICATE_SLASHES = 64; + + /** + * Sort query parameters with their values in alphabetical order. + * + * However, the order of parameters in a URI may be significant (this is not defined by the standard). + * So this normalization is not safe and may change the semantics of the URI. + * + * Example: ?lang=en&article=fred → ?article=fred&lang=en + * + * Note: The sorting is neither locale nor Unicode aware (the URI query does not get decoded at all) as the + * purpose is to be able to compare URIs in a reproducible way, not to have the params sorted perfectly. + */ + const SORT_QUERY_PARAMETERS = 128; + + /** + * Returns a normalized URI. + * + * The scheme and host component are already normalized to lowercase per PSR-7 UriInterface. + * This methods adds additional normalizations that can be configured with the $flags parameter. + * + * PSR-7 UriInterface cannot distinguish between an empty component and a missing component as + * getQuery(), getFragment() etc. always return a string. This means the URIs "/?#" and "/" are + * treated equivalent which is not necessarily true according to RFC 3986. But that difference + * is highly uncommon in reality. So this potential normalization is implied in PSR-7 as well. + * + * @param UriInterface $uri The URI to normalize + * @param int $flags A bitmask of normalizations to apply, see constants + * + * @return UriInterface The normalized URI + * @link https://tools.ietf.org/html/rfc3986#section-6.2 + */ + public static function normalize(UriInterface $uri, $flags = self::PRESERVING_NORMALIZATIONS) + { + if ($flags & self::CAPITALIZE_PERCENT_ENCODING) { + $uri = self::capitalizePercentEncoding($uri); + } + + if ($flags & self::DECODE_UNRESERVED_CHARACTERS) { + $uri = self::decodeUnreservedCharacters($uri); + } + + if ($flags & self::CONVERT_EMPTY_PATH && $uri->getPath() === '' && + ($uri->getScheme() === 'http' || $uri->getScheme() === 'https') + ) { + $uri = $uri->withPath('/'); + } + + if ($flags & self::REMOVE_DEFAULT_HOST && $uri->getScheme() === 'file' && $uri->getHost() === 'localhost') { + $uri = $uri->withHost(''); + } + + if ($flags & self::REMOVE_DEFAULT_PORT && $uri->getPort() !== null && Uri::isDefaultPort($uri)) { + $uri = $uri->withPort(null); + } + + if ($flags & self::REMOVE_DOT_SEGMENTS && !Uri::isRelativePathReference($uri)) { + $uri = $uri->withPath(UriResolver::removeDotSegments($uri->getPath())); + } + + if ($flags & self::REMOVE_DUPLICATE_SLASHES) { + $uri = $uri->withPath(preg_replace('#//++#', '/', $uri->getPath())); + } + + if ($flags & self::SORT_QUERY_PARAMETERS && $uri->getQuery() !== '') { + $queryKeyValues = explode('&', $uri->getQuery()); + sort($queryKeyValues); + $uri = $uri->withQuery(implode('&', $queryKeyValues)); + } + + return $uri; + } + + /** + * Whether two URIs can be considered equivalent. + * + * Both URIs are normalized automatically before comparison with the given $normalizations bitmask. The method also + * accepts relative URI references and returns true when they are equivalent. This of course assumes they will be + * resolved against the same base URI. If this is not the case, determination of equivalence or difference of + * relative references does not mean anything. + * + * @param UriInterface $uri1 An URI to compare + * @param UriInterface $uri2 An URI to compare + * @param int $normalizations A bitmask of normalizations to apply, see constants + * + * @return bool + * @link https://tools.ietf.org/html/rfc3986#section-6.1 + */ + public static function isEquivalent(UriInterface $uri1, UriInterface $uri2, $normalizations = self::PRESERVING_NORMALIZATIONS) + { + return (string) self::normalize($uri1, $normalizations) === (string) self::normalize($uri2, $normalizations); + } + + private static function capitalizePercentEncoding(UriInterface $uri) + { + $regex = '/(?:%[A-Fa-f0-9]{2})++/'; + + $callback = function (array $match) { + return strtoupper($match[0]); + }; + + return + $uri->withPath( + preg_replace_callback($regex, $callback, $uri->getPath()) + )->withQuery( + preg_replace_callback($regex, $callback, $uri->getQuery()) + ); + } + + private static function decodeUnreservedCharacters(UriInterface $uri) + { + $regex = '/%(?:2D|2E|5F|7E|3[0-9]|[46][1-9A-F]|[57][0-9A])/i'; + + $callback = function (array $match) { + return rawurldecode($match[0]); + }; + + return + $uri->withPath( + preg_replace_callback($regex, $callback, $uri->getPath()) + )->withQuery( + preg_replace_callback($regex, $callback, $uri->getQuery()) + ); + } + + private function __construct() + { + // cannot be instantiated + } +} diff --git a/lib/aws/GuzzleHttp/Psr7/UriResolver.php b/lib/aws/GuzzleHttp/Psr7/UriResolver.php new file mode 100644 index 0000000..c1cb8a2 --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/UriResolver.php @@ -0,0 +1,219 @@ +<?php +namespace GuzzleHttp\Psr7; + +use Psr\Http\Message\UriInterface; + +/** + * Resolves a URI reference in the context of a base URI and the opposite way. + * + * @author Tobias Schultze + * + * @link https://tools.ietf.org/html/rfc3986#section-5 + */ +final class UriResolver +{ + /** + * 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) + { + if ($path === '' || $path === '/') { + return $path; + } + + $results = []; + $segments = explode('/', $path); + foreach ($segments as $segment) { + if ($segment === '..') { + array_pop($results); + } elseif ($segment !== '.') { + $results[] = $segment; + } + } + + $newPath = implode('/', $results); + + if ($path[0] === '/' && (!isset($newPath[0]) || $newPath[0] !== '/')) { + // Re-add the leading slash if necessary for cases like "/.." + $newPath = '/' . $newPath; + } elseif ($newPath !== '' && ($segment === '.' || $segment === '..')) { + // Add the trailing slash if necessary + // If newPath is not empty, then $segment must be set and is the last segment from the foreach + $newPath .= '/'; + } + + return $newPath; + } + + /** + * Converts the relative URI into a new URI that is resolved against the base URI. + * + * @param UriInterface $base Base URI + * @param UriInterface $rel Relative URI + * + * @return UriInterface + * @link http://tools.ietf.org/html/rfc3986#section-5.2 + */ + public static function resolve(UriInterface $base, UriInterface $rel) + { + if ((string) $rel === '') { + // we can simply return the same base URI instance for this same-document reference + return $base; + } + + if ($rel->getScheme() != '') { + return $rel->withPath(self::removeDotSegments($rel->getPath())); + } + + if ($rel->getAuthority() != '') { + $targetAuthority = $rel->getAuthority(); + $targetPath = self::removeDotSegments($rel->getPath()); + $targetQuery = $rel->getQuery(); + } else { + $targetAuthority = $base->getAuthority(); + if ($rel->getPath() === '') { + $targetPath = $base->getPath(); + $targetQuery = $rel->getQuery() != '' ? $rel->getQuery() : $base->getQuery(); + } else { + if ($rel->getPath()[0] === '/') { + $targetPath = $rel->getPath(); + } else { + if ($targetAuthority != '' && $base->getPath() === '') { + $targetPath = '/' . $rel->getPath(); + } else { + $lastSlashPos = strrpos($base->getPath(), '/'); + if ($lastSlashPos === false) { + $targetPath = $rel->getPath(); + } else { + $targetPath = substr($base->getPath(), 0, $lastSlashPos + 1) . $rel->getPath(); + } + } + } + $targetPath = self::removeDotSegments($targetPath); + $targetQuery = $rel->getQuery(); + } + } + + return new Uri(Uri::composeComponents( + $base->getScheme(), + $targetAuthority, + $targetPath, + $targetQuery, + $rel->getFragment() + )); + } + + /** + * Returns the target URI as a relative reference from the base URI. + * + * This method is the counterpart to resolve(): + * + * (string) $target === (string) UriResolver::resolve($base, UriResolver::relativize($base, $target)) + * + * One use-case is to use the current request URI as base URI and then generate relative links in your documents + * to reduce the document size or offer self-contained downloadable document archives. + * + * $base = new Uri('http://example.com/a/b/'); + * echo UriResolver::relativize($base, new Uri('http://example.com/a/b/c')); // prints 'c'. + * echo UriResolver::relativize($base, new Uri('http://example.com/a/x/y')); // prints '../x/y'. + * echo UriResolver::relativize($base, new Uri('http://example.com/a/b/?q')); // prints '?q'. + * echo UriResolver::relativize($base, new Uri('http://example.org/a/b/')); // prints '//example.org/a/b/'. + * + * This method also accepts a target that is already relative and will try to relativize it further. Only a + * relative-path reference will be returned as-is. + * + * echo UriResolver::relativize($base, new Uri('/a/b/c')); // prints 'c' as well + * + * @param UriInterface $base Base URI + * @param UriInterface $target Target URI + * + * @return UriInterface The relative URI reference + */ + public static function relativize(UriInterface $base, UriInterface $target) + { + if ($target->getScheme() !== '' && + ($base->getScheme() !== $target->getScheme() || $target->getAuthority() === '' && $base->getAuthority() !== '') + ) { + return $target; + } + + if (Uri::isRelativePathReference($target)) { + // As the target is already highly relative we return it as-is. It would be possible to resolve + // the target with `$target = self::resolve($base, $target);` and then try make it more relative + // by removing a duplicate query. But let's not do that automatically. + return $target; + } + + if ($target->getAuthority() !== '' && $base->getAuthority() !== $target->getAuthority()) { + return $target->withScheme(''); + } + + // We must remove the path before removing the authority because if the path starts with two slashes, the URI + // would turn invalid. And we also cannot set a relative path before removing the authority, as that is also + // invalid. + $emptyPathUri = $target->withScheme('')->withPath('')->withUserInfo('')->withPort(null)->withHost(''); + + if ($base->getPath() !== $target->getPath()) { + return $emptyPathUri->withPath(self::getRelativePath($base, $target)); + } + + if ($base->getQuery() === $target->getQuery()) { + // Only the target fragment is left. And it must be returned even if base and target fragment are the same. + return $emptyPathUri->withQuery(''); + } + + // If the base URI has a query but the target has none, we cannot return an empty path reference as it would + // inherit the base query component when resolving. + if ($target->getQuery() === '') { + $segments = explode('/', $target->getPath()); + $lastSegment = end($segments); + + return $emptyPathUri->withPath($lastSegment === '' ? './' : $lastSegment); + } + + return $emptyPathUri; + } + + private static function getRelativePath(UriInterface $base, UriInterface $target) + { + $sourceSegments = explode('/', $base->getPath()); + $targetSegments = explode('/', $target->getPath()); + array_pop($sourceSegments); + $targetLastSegment = array_pop($targetSegments); + foreach ($sourceSegments as $i => $segment) { + if (isset($targetSegments[$i]) && $segment === $targetSegments[$i]) { + unset($sourceSegments[$i], $targetSegments[$i]); + } else { + break; + } + } + $targetSegments[] = $targetLastSegment; + $relativePath = str_repeat('../', count($sourceSegments)) . implode('/', $targetSegments); + + // A reference to am empty last segment or an empty first sub-segment must be prefixed with "./". + // This also applies to a segment with a colon character (e.g., "file:colon") that cannot be used + // as the first segment of a relative-path reference, as it would be mistaken for a scheme name. + if ('' === $relativePath || false !== strpos(explode('/', $relativePath, 2)[0], ':')) { + $relativePath = "./$relativePath"; + } elseif ('/' === $relativePath[0]) { + if ($base->getAuthority() != '' && $base->getPath() === '') { + // In this case an extra slash is added by resolve() automatically. So we must not add one here. + $relativePath = ".$relativePath"; + } else { + $relativePath = "./$relativePath"; + } + } + + return $relativePath; + } + + private function __construct() + { + // cannot be instantiated + } +} diff --git a/lib/aws/GuzzleHttp/Psr7/functions.php b/lib/aws/GuzzleHttp/Psr7/functions.php new file mode 100644 index 0000000..957bfb4 --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/functions.php @@ -0,0 +1,898 @@ +<?php +namespace GuzzleHttp\Psr7; + +use Psr\Http\Message\MessageInterface; +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\ServerRequestInterface; +use Psr\Http\Message\StreamInterface; +use Psr\Http\Message\UriInterface; + +/** + * Returns the string representation of an HTTP message. + * + * @param MessageInterface $message Message to convert to a string. + * + * @return string + */ +function str(MessageInterface $message) +{ + if ($message instanceof RequestInterface) { + $msg = trim($message->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|null|int|float|bool|StreamInterface|callable|\Iterator $resource Entity body data + * @param array $options Additional options + * + * @return StreamInterface + * @throws \InvalidArgumentException if the $resource arg is not valid. + */ +function stream_for($resource = '', array $options = []) +{ + if (is_scalar($resource)) { + $stream = fopen('php://temp', 'r+'); + if ($resource !== '') { + fwrite($stream, $resource); + fseek($stream, 0); + } + return new Stream($stream, $options); + } + + switch (gettype($resource)) { + 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; + + if ($port = $changes['uri']->getPort()) { + $standardPorts = ['http' => 80, 'https' => 443]; + $scheme = $changes['uri']->getScheme(); + if (isset($standardPorts[$scheme]) && $port != $standardPorts[$scheme]) { + $changes['set_headers']['Host'] .= ':'.$port; + } + } + } + $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']); + } + + if ($request instanceof ServerRequestInterface) { + return (new ServerRequest( + isset($changes['method']) ? $changes['method'] : $request->getMethod(), + $uri, + $headers, + isset($changes['body']) ? $changes['body'] : $request->getBody(), + isset($changes['version']) + ? $changes['version'] + : $request->getProtocolVersion(), + $request->getServerParams() + )) + ->withParsedBody($request->getParsedBody()) + ->withQueryParams($request->getQueryParams()) + ->withCookieParams($request->getCookieParams()) + ->withUploadedFiles($request->getUploadedFiles()); + } + + 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 +) { + $bufferSize = 8192; + + if ($maxLen === -1) { + while (!$source->eof()) { + if (!$dest->write($source->read($bufferSize))) { + break; + } + } + } else { + $remaining = $maxLen; + while ($remaining > 0 && !$source->eof()) { + $buf = $source->read(min($bufferSize, $remaining)); + $len = strlen($buf); + if (!$len) { + break; + } + $remaining -= $len; + $dest->write($buf); + } + } +} + +/** + * 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 + */ +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 === "\n" || ++$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); + $matches = []; + if (!preg_match('/^[\S]+\s+([a-zA-Z]+:\/\/|\/).*/', $data['start-line'], $matches)) { + throw new \InvalidArgumentException('Invalid request string'); + } + $parts = explode(' ', $data['start-line'], 3); + $version = isset($parts[2]) ? explode('/', $parts[2])[1] : '1.1'; + + $request = new Request( + $parts[0], + $matches[1] === '/' ? _parse_request_uri($parts[1], $data['headers']) : $parts[1], + $data['headers'], + $data['body'], + $version + ); + + return $matches[1] === '/' ? $request : $request->withRequestTarget($parts[1]); +} + +/** + * 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); + // According to https://tools.ietf.org/html/rfc7230#section-3.1.2 the space + // between status-code and reason-phrase is required. But browsers accept + // responses without space and reason as well. + if (!preg_match('/^HTTP\/.* [0-9]{3}( .*|$)/', $data['start-line'])) { + throw new \InvalidArgumentException('Invalid response string: ' . $data['start-line']); + } + $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 int|bool $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 parse_query() 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 = [ + '3gp' => 'video/3gpp', + '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', + 'mkv' => 'video/x-matroska', + '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'); + } + + $message = ltrim($message, "\r\n"); + + $messageParts = preg_split("/\r?\n\r?\n/", $message, 2); + + if ($messageParts === false || count($messageParts) !== 2) { + throw new \InvalidArgumentException('Invalid message: Missing header delimiter'); + } + + list($rawHeaders, $body) = $messageParts; + $rawHeaders .= "\r\n"; // Put back the delimiter we split previously + $headerParts = preg_split("/\r?\n/", $rawHeaders, 2); + + if ($headerParts === false || count($headerParts) !== 2) { + throw new \InvalidArgumentException('Invalid message: Missing status line'); + } + + list($startLine, $rawHeaders) = $headerParts; + + if (preg_match("/(?:^HTTP\/|^[A-Z]+ \S+ HTTP\/)(\d+(?:\.\d+)?)/i", $startLine, $matches) && $matches[1] === '1.0') { + // Header folding is deprecated for HTTP/1.1, but allowed in HTTP/1.0 + $rawHeaders = preg_replace(Rfc7230::HEADER_FOLD_REGEX, ' ', $rawHeaders); + } + + /** @var array[] $headerLines */ + $count = preg_match_all(Rfc7230::HEADER_REGEX, $rawHeaders, $headerLines, PREG_SET_ORDER); + + // If these aren't the same, then one line didn't match and there's an invalid header. + if ($count !== substr_count($rawHeaders, "\n")) { + // Folding is deprecated, see https://tools.ietf.org/html/rfc7230#section-3.2.4 + if (preg_match(Rfc7230::HEADER_FOLD_REGEX, $rawHeaders)) { + throw new \InvalidArgumentException('Invalid header syntax: Obsolete line folding'); + } + + throw new \InvalidArgumentException('Invalid header syntax'); + } + + $headers = []; + + foreach ($headerLines as $headerLine) { + $headers[$headerLine[1]][] = $headerLine[2]; + } + + return [ + 'start-line' => $startLine, + 'headers' => $headers, + 'body' => $body, + ]; +} + +/** + * 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, '/'); +} + +/** + * Get a short summary of the message body + * + * Will return `null` if the response is not printable. + * + * @param MessageInterface $message The message to get the body summary + * @param int $truncateAt The maximum allowed size of the summary + * + * @return null|string + */ +function get_message_body_summary(MessageInterface $message, $truncateAt = 120) +{ + $body = $message->getBody(); + + if (!$body->isSeekable() || !$body->isReadable()) { + return null; + } + + $size = $body->getSize(); + + if ($size === 0) { + return null; + } + + $summary = $body->read($truncateAt); + $body->rewind(); + + if ($size > $truncateAt) { + $summary .= ' (truncated...)'; + } + + // Matches any printable character, including unicode characters: + // letters, marks, numbers, punctuation, spacing, and separators. + if (preg_match('/[^\pL\pM\pN\pP\pS\pZ\n\r\t]/', $summary)) { + return null; + } + + return $summary; +} + +/** @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/GuzzleHttp/Psr7/functions_include.php b/lib/aws/GuzzleHttp/Psr7/functions_include.php new file mode 100644 index 0000000..96a4a83 --- /dev/null +++ b/lib/aws/GuzzleHttp/Psr7/functions_include.php @@ -0,0 +1,6 @@ +<?php + +// Don't redefine the functions if included multiple times. +if (!function_exists('GuzzleHttp\Psr7\str')) { + require __DIR__ . '/functions.php'; +} diff --git a/lib/aws/GuzzleHttp/RedirectMiddleware.php b/lib/aws/GuzzleHttp/RedirectMiddleware.php new file mode 100644 index 0000000..131b771 --- /dev/null +++ b/lib/aws/GuzzleHttp/RedirectMiddleware.php @@ -0,0 +1,237 @@ +<?php +namespace GuzzleHttp; + +use GuzzleHttp\Exception\BadResponseException; +use GuzzleHttp\Exception\TooManyRedirectsException; +use GuzzleHttp\Promise\PromiseInterface; +use GuzzleHttp\Psr7; +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\UriInterface; + +/** + * Request redirect middleware. + * + * Apply this middleware like other middleware using + * {@see GuzzleHttp\Middleware::redirect()}. + */ +class RedirectMiddleware +{ + const HISTORY_HEADER = 'X-Guzzle-Redirect-History'; + + const STATUS_HISTORY_HEADER = 'X-Guzzle-Redirect-Status-History'; + + public static $defaultSettings = [ + 'max' => 5, + 'protocols' => ['http', 'https'], + 'strict' => false, + 'referer' => false, + 'track_redirects' => 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); + + if (isset($options['allow_redirects']['on_redirect'])) { + call_user_func( + $options['allow_redirects']['on_redirect'], + $request, + $response, + $nextRequest->getUri() + ); + } + + /** @var PromiseInterface|ResponseInterface $promise */ + $promise = $this($nextRequest, $options); + + // Add headers to be able to track history of redirects. + if (!empty($options['allow_redirects']['track_redirects'])) { + return $this->withTracking( + $promise, + (string) $nextRequest->getUri(), + $response->getStatusCode() + ); + } + + return $promise; + } + + private function withTracking(PromiseInterface $promise, $uri, $statusCode) + { + return $promise->then( + function (ResponseInterface $response) use ($uri, $statusCode) { + // Note that we are pushing to the front of the list as this + // would be an earlier response than what is currently present + // in the history header. + $historyHeader = $response->getHeader(self::HISTORY_HEADER); + $statusHeader = $response->getHeader(self::STATUS_HISTORY_HEADER); + array_unshift($historyHeader, $uri); + array_unshift($statusHeader, $statusCode); + return $response->withHeader(self::HISTORY_HEADER, $historyHeader) + ->withHeader(self::STATUS_HISTORY_HEADER, $statusHeader); + } + ); + } + + 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'; + } + + // Remove Authorization header if host is different. + if ($request->getUri()->getHost() !== $modify['uri']->getHost()) { + $modify['remove_headers'][] = 'Authorization'; + } + + 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\UriResolver::resolve( + $request->getUri(), + new Psr7\Uri($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/GuzzleHttp/RequestOptions.php b/lib/aws/GuzzleHttp/RequestOptions.php new file mode 100644 index 0000000..c6aacfb --- /dev/null +++ b/lib/aws/GuzzleHttp/RequestOptions.php @@ -0,0 +1,255 @@ +<?php +namespace GuzzleHttp; + +/** + * This class contains a list of built-in Guzzle request options. + * + * More documentation for each option can be found at http://guzzlephp.org/. + * + * @link http://docs.guzzlephp.org/en/v6/request-options.html + */ +final class RequestOptions +{ + /** + * allow_redirects: (bool|array) Controls redirect behavior. Pass false + * to disable redirects, pass true to enable redirects, pass an + * associative to provide custom redirect settings. Defaults to "false". + * This option only works if your handler has the RedirectMiddleware. When + * passing an associative array, you can provide the following key value + * pairs: + * + * - max: (int, default=5) maximum number of allowed redirects. + * - strict: (bool, default=false) Set to true to use strict redirects + * meaning redirect POST requests with POST requests vs. doing what most + * browsers do which is redirect POST requests with GET requests + * - referer: (bool, default=true) Set to false to disable the Referer + * header. + * - protocols: (array, default=['http', 'https']) Allowed redirect + * protocols. + * - on_redirect: (callable) PHP callable that is invoked when a redirect + * is encountered. The callable is invoked with the request, the redirect + * response that was received, and the effective URI. Any return value + * from the on_redirect function is ignored. + */ + const ALLOW_REDIRECTS = 'allow_redirects'; + + /** + * auth: (array) Pass an array of HTTP authentication parameters to use + * with the request. The array must contain the username in index [0], + * the password in index [1], and you can optionally provide a built-in + * authentication type in index [2]. Pass null to disable authentication + * for a request. + */ + const AUTH = 'auth'; + + /** + * body: (resource|string|null|int|float|StreamInterface|callable|\Iterator) + * Body to send in the request. + */ + const BODY = 'body'; + + /** + * cert: (string|array) Set to a string to specify the path to a file + * containing a PEM formatted SSL client side certificate. If a password + * is required, then set cert to an array containing the path to the PEM + * file in the first array element followed by the certificate password + * in the second array element. + */ + const CERT = 'cert'; + + /** + * cookies: (bool|GuzzleHttp\Cookie\CookieJarInterface, default=false) + * Specifies whether or not cookies are used in a request or what cookie + * jar to use or what cookies to send. This option only works if your + * handler has the `cookie` middleware. Valid values are `false` and + * an instance of {@see GuzzleHttp\Cookie\CookieJarInterface}. + */ + const COOKIES = 'cookies'; + + /** + * connect_timeout: (float, default=0) Float describing the number of + * seconds to wait while trying to connect to a server. Use 0 to wait + * indefinitely (the default behavior). + */ + const CONNECT_TIMEOUT = 'connect_timeout'; + + /** + * debug: (bool|resource) Set to true or set to a PHP stream returned by + * fopen() enable debug output with the HTTP handler used to send a + * request. + */ + const DEBUG = 'debug'; + + /** + * decode_content: (bool, default=true) Specify whether or not + * Content-Encoding responses (gzip, deflate, etc.) are automatically + * decoded. + */ + const DECODE_CONTENT = 'decode_content'; + + /** + * delay: (int) The amount of time to delay before sending in milliseconds. + */ + const DELAY = 'delay'; + + /** + * expect: (bool|integer) Controls the behavior of the + * "Expect: 100-Continue" header. + * + * Set to `true` to enable the "Expect: 100-Continue" header for all + * requests that sends a body. Set to `false` to disable the + * "Expect: 100-Continue" header for all requests. Set to a number so that + * the size of the payload must be greater than the number in order to send + * the Expect header. Setting to a number will send the Expect header for + * all requests in which the size of the payload cannot be determined or + * where the body is not rewindable. + * + * By default, Guzzle will add the "Expect: 100-Continue" header when the + * size of the body of a request is greater than 1 MB and a request is + * using HTTP/1.1. + */ + const EXPECT = 'expect'; + + /** + * form_params: (array) Associative array of form field names to values + * where each value is a string or array of strings. Sets the Content-Type + * header to application/x-www-form-urlencoded when no Content-Type header + * is already present. + */ + const FORM_PARAMS = 'form_params'; + + /** + * headers: (array) Associative array of HTTP headers. Each value MUST be + * a string or array of strings. + */ + const HEADERS = 'headers'; + + /** + * http_errors: (bool, default=true) Set to false to disable exceptions + * when a non- successful HTTP response is received. By default, + * exceptions will be thrown for 4xx and 5xx responses. This option only + * works if your handler has the `httpErrors` middleware. + */ + const HTTP_ERRORS = 'http_errors'; + + /** + * json: (mixed) Adds JSON data to a request. The provided value is JSON + * encoded and a Content-Type header of application/json will be added to + * the request if no Content-Type header is already present. + */ + const JSON = 'json'; + + /** + * multipart: (array) Array of associative arrays, each containing a + * required "name" key mapping to the form field, name, a required + * "contents" key mapping to a StreamInterface|resource|string, an + * optional "headers" associative array of custom headers, and an + * optional "filename" key mapping to a string to send as the filename in + * the part. If no "filename" key is present, then no "filename" attribute + * will be added to the part. + */ + const MULTIPART = 'multipart'; + + /** + * on_headers: (callable) A callable that is invoked when the HTTP headers + * of the response have been received but the body has not yet begun to + * download. + */ + const ON_HEADERS = 'on_headers'; + + /** + * on_stats: (callable) allows you to get access to transfer statistics of + * a request and access the lower level transfer details of the handler + * associated with your client. ``on_stats`` is a callable that is invoked + * when a handler has finished sending a request. The callback is invoked + * with transfer statistics about the request, the response received, or + * the error encountered. Included in the data is the total amount of time + * taken to send the request. + */ + const ON_STATS = 'on_stats'; + + /** + * progress: (callable) Defines a function to invoke when transfer + * progress is made. The function accepts the following positional + * arguments: the total number of bytes expected to be downloaded, the + * number of bytes downloaded so far, the number of bytes expected to be + * uploaded, the number of bytes uploaded so far. + */ + const PROGRESS = 'progress'; + + /** + * proxy: (string|array) Pass a string to specify an HTTP proxy, or an + * array to specify different proxies for different protocols (where the + * key is the protocol and the value is a proxy string). + */ + const PROXY = 'proxy'; + + /** + * query: (array|string) Associative array of query string values to add + * to the request. This option uses PHP's http_build_query() to create + * the string representation. Pass a string value if you need more + * control than what this method provides + */ + const QUERY = 'query'; + + /** + * sink: (resource|string|StreamInterface) Where the data of the + * response is written to. Defaults to a PHP temp stream. Providing a + * string will write data to a file by the given name. + */ + const SINK = 'sink'; + + /** + * synchronous: (bool) Set to true to inform HTTP handlers that you intend + * on waiting on the response. This can be useful for optimizations. Note + * that a promise is still returned if you are using one of the async + * client methods. + */ + const SYNCHRONOUS = 'synchronous'; + + /** + * ssl_key: (array|string) Specify the path to a file containing a private + * SSL key in PEM format. If a password is required, then set to an array + * containing the path to the SSL key in the first array element followed + * by the password required for the certificate in the second element. + */ + const SSL_KEY = 'ssl_key'; + + /** + * stream: Set to true to attempt to stream a response rather than + * download it all up-front. + */ + const STREAM = 'stream'; + + /** + * verify: (bool|string, default=true) Describes the SSL certificate + * verification behavior of a request. Set to true to enable SSL + * certificate verification using the system CA bundle when available + * (the default). Set to false to disable certificate verification (this + * is insecure!). Set to a string to provide the path to a CA bundle on + * disk to enable verification using a custom certificate. + */ + const VERIFY = 'verify'; + + /** + * timeout: (float, default=0) Float describing the timeout of the + * request in seconds. Use 0 to wait indefinitely (the default behavior). + */ + const TIMEOUT = 'timeout'; + + /** + * read_timeout: (float, default=default_socket_timeout ini setting) Float describing + * the body read timeout, for stream requests. + */ + const READ_TIMEOUT = 'read_timeout'; + + /** + * version: (float) Specifies the HTTP protocol version to attempt to use. + */ + const VERSION = 'version'; + + /** + * force_ip_resolve: (bool) Force client to use only ipv4 or ipv6 protocol + */ + const FORCE_IP_RESOLVE = 'force_ip_resolve'; +} diff --git a/lib/aws/GuzzleHttp/RetryMiddleware.php b/lib/aws/GuzzleHttp/RetryMiddleware.php new file mode 100644 index 0000000..f27090f --- /dev/null +++ b/lib/aws/GuzzleHttp/RetryMiddleware.php @@ -0,0 +1,112 @@ +<?php +namespace GuzzleHttp; + +use GuzzleHttp\Promise\PromiseInterface; +use GuzzleHttp\Promise\RejectedPromise; +use GuzzleHttp\Psr7; +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; + +/** + * Middleware that retries requests based on the boolean result of + * invoking the provided "decider" function. + */ +class RetryMiddleware +{ + /** @var callable */ + private $nextHandler; + + /** @var callable */ + private $decider; + + /** + * @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 $nextHandler Next handler to invoke. + * @param callable $delay Function that accepts the number of retries + * and [response] and returns the number of + * milliseconds to delay. + */ + public function __construct( + callable $decider, + callable $nextHandler, + callable $delay = null + ) { + $this->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, $value); + }; + } + + 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 \GuzzleHttp\Promise\rejection_for($reason); + } + return $this->doRetry($req, $options); + }; + } + + private function doRetry(RequestInterface $request, array $options, ResponseInterface $response = null) + { + $options['delay'] = call_user_func($this->delay, ++$options['retries'], $response); + + return $this($request, $options); + } +} diff --git a/lib/aws/GuzzleHttp/TransferStats.php b/lib/aws/GuzzleHttp/TransferStats.php new file mode 100644 index 0000000..15f717e --- /dev/null +++ b/lib/aws/GuzzleHttp/TransferStats.php @@ -0,0 +1,126 @@ +<?php +namespace GuzzleHttp; + +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\UriInterface; + +/** + * Represents data at the point after it was transferred either successfully + * or after a network error. + */ +final class TransferStats +{ + private $request; + private $response; + private $transferTime; + private $handlerStats; + private $handlerErrorData; + + /** + * @param RequestInterface $request Request that was sent. + * @param ResponseInterface $response Response received (if any) + * @param null $transferTime Total handler transfer time. + * @param mixed $handlerErrorData Handler error data. + * @param array $handlerStats Handler specific stats. + */ + public function __construct( + RequestInterface $request, + ResponseInterface $response = null, + $transferTime = null, + $handlerErrorData = null, + $handlerStats = [] + ) { + $this->request = $request; + $this->response = $response; + $this->transferTime = $transferTime; + $this->handlerErrorData = $handlerErrorData; + $this->handlerStats = $handlerStats; + } + + /** + * @return RequestInterface + */ + public function getRequest() + { + return $this->request; + } + + /** + * Returns the response that was received (if any). + * + * @return ResponseInterface|null + */ + public function getResponse() + { + return $this->response; + } + + /** + * Returns true if a response was received. + * + * @return bool + */ + public function hasResponse() + { + return $this->response !== null; + } + + /** + * Gets handler specific error data. + * + * This might be an exception, a integer representing an error code, or + * anything else. Relying on this value assumes that you know what handler + * you are using. + * + * @return mixed + */ + public function getHandlerErrorData() + { + return $this->handlerErrorData; + } + + /** + * Get the effective URI the request was sent to. + * + * @return UriInterface + */ + public function getEffectiveUri() + { + return $this->request->getUri(); + } + + /** + * Get the estimated time the request was being transferred by the handler. + * + * @return float Time in seconds. + */ + public function getTransferTime() + { + return $this->transferTime; + } + + /** + * Gets an array of all of the handler specific transfer data. + * + * @return array + */ + public function getHandlerStats() + { + return $this->handlerStats; + } + + /** + * Get a specific handler statistic from the handler by name. + * + * @param string $stat Handler specific transfer stat to retrieve. + * + * @return mixed|null + */ + public function getHandlerStat($stat) + { + return isset($this->handlerStats[$stat]) + ? $this->handlerStats[$stat] + : null; + } +} diff --git a/lib/aws/GuzzleHttp/UriTemplate.php b/lib/aws/GuzzleHttp/UriTemplate.php new file mode 100644 index 0000000..96dcfd0 --- /dev/null +++ b/lib/aws/GuzzleHttp/UriTemplate.php @@ -0,0 +1,237 @@ +<?php +namespace GuzzleHttp; + +/** + * Expands URI templates. Userland implementation of PECL uri_template. + * + * @link http://tools.ietf.org/html/rfc6570 + */ +class UriTemplate +{ + /** @var string URI template */ + private $template; + + /** @var array Variables to use in the template expansion */ + private $variables; + + /** @var array Hash for quick operator lookups */ + private static $operatorHash = [ + '' => ['prefix' => '', 'joiner' => ',', 'query' => false], + '+' => ['prefix' => '', 'joiner' => ',', 'query' => false], + '#' => ['prefix' => '#', 'joiner' => ',', 'query' => false], + '.' => ['prefix' => '.', 'joiner' => '.', 'query' => false], + '/' => ['prefix' => '/', 'joiner' => '/', 'query' => false], + ';' => ['prefix' => ';', 'joiner' => ';', 'query' => true], + '?' => ['prefix' => '?', 'joiner' => '&', 'query' => true], + '&' => ['prefix' => '&', 'joiner' => '&', 'query' => true] + ]; + + /** @var array Delimiters */ + private static $delims = [':', '/', '?', '#', '[', ']', '@', '!', '$', + '&', '\'', '(', ')', '*', '+', ',', ';', '=']; + + /** @var array Percent encoded delimiters */ + private static $delimsPct = ['%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 (false === strpos($template, '{')) { + return $template; + } + + $this->template = $template; + $this->variables = $variables; + + return preg_replace_callback( + '/\{([^\}]+)\}/', + [$this, 'expandMatch'], + $this->template + ); + } + + /** + * Parse an expression into parts + * + * @param string $expression Expression to parse + * + * @return array Returns an associative array of parts + */ + private function parseExpression($expression) + { + $result = []; + + if (isset(self::$operatorHash[$expression[0]])) { + $result['operator'] = $expression[0]; + $expression = substr($expression, 1); + } else { + $result['operator'] = ''; + } + + foreach (explode(',', $expression) as $value) { + $value = trim($value); + $varspec = []; + if ($colonPos = strpos($value, ':')) { + $varspec['value'] = substr($value, 0, $colonPos); + $varspec['modifier'] = ':'; + $varspec['position'] = (int) substr($value, $colonPos + 1); + } elseif (substr($value, -1) === '*') { + $varspec['modifier'] = '*'; + $varspec['value'] = substr($value, 0, -1); + } else { + $varspec['value'] = (string) $value; + $varspec['modifier'] = ''; + } + $result['values'][] = $varspec; + } + + return $result; + } + + /** + * Process an expansion + * + * @param array $matches Matches met in the preg_replace_callback + * + * @return string Returns the replacement string + */ + private function expandMatch(array $matches) + { + static $rfc1738to3986 = ['+' => '%20', '%7e' => '~']; + + $replacements = []; + $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 (!isset($this->variables[$value['value']])) { + continue; + } + + $variable = $this->variables[$value['value']]; + $actuallyUseQuery = $useQuery; + $expanded = ''; + + if (is_array($variable)) { + $isAssoc = $this->isAssoc($variable); + $kvp = []; + foreach ($variable as $key => $var) { + if ($isAssoc) { + $key = rawurlencode($key); + $isNestedArray = is_array($var); + } else { + $isNestedArray = false; + } + + if (!$isNestedArray) { + $var = rawurlencode($var); + if ($parsed['operator'] === '+' || + $parsed['operator'] === '#' + ) { + $var = $this->decodeReserved($var); + } + } + + if ($value['modifier'] === '*') { + if ($isAssoc) { + if ($isNestedArray) { + // Nested arrays must allow for deeply nested + // structures. + $var = strtr( + http_build_query([$key => $var]), + $rfc1738to3986 + ); + } else { + $var = $key . '=' . $var; + } + } elseif ($key > 0 && $actuallyUseQuery) { + $var = $value['value'] . '=' . $var; + } + } + + $kvp[$key] = $var; + } + + if (empty($variable)) { + $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. + $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. + foreach ($kvp as $k => &$v) { + $v = $k . ',' . $v; + } + } + $expanded = implode(',', $kvp); + } + } else { + if ($value['modifier'] === ':') { + $variable = substr($variable, 0, $value['position']); + } + $expanded = rawurlencode($variable); + if ($parsed['operator'] === '+' || $parsed['operator'] === '#') { + $expanded = $this->decodeReserved($expanded); + } + } + + if ($actuallyUseQuery) { + if (!$expanded && $joiner !== '&') { + $expanded = $value['value']; + } else { + $expanded = $value['value'] . '=' . $expanded; + } + } + + $replacements[] = $expanded; + } + + $ret = implode($joiner, $replacements); + if ($ret && $prefix) { + return $prefix . $ret; + } + + return $ret; + } + + /** + * 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 + * + * @return bool + */ + private function isAssoc(array $array) + { + return $array && array_keys($array)[0] !== 0; + } + + /** + * Removes percent encoding on reserved characters (used with + and # + * modifiers). + * + * @param string $string String to fix + * + * @return string + */ + private function decodeReserved($string) + { + return str_replace(self::$delimsPct, self::$delims, $string); + } +} diff --git a/lib/aws/GuzzleHttp/functions.php b/lib/aws/GuzzleHttp/functions.php new file mode 100644 index 0000000..a3ac450 --- /dev/null +++ b/lib/aws/GuzzleHttp/functions.php @@ -0,0 +1,333 @@ +<?php +namespace GuzzleHttp; + +use GuzzleHttp\Handler\CurlHandler; +use GuzzleHttp\Handler\CurlMultiHandler; +use GuzzleHttp\Handler\Proxy; +use GuzzleHttp\Handler\StreamHandler; + +/** + * Expands a URI template + * + * @param string $template URI template + * @param array $variables Template variables + * + * @return string + */ +function uri_template($template, array $variables) +{ + if (extension_loaded('uri_template')) { + // @codeCoverageIgnoreStart + return \uri_template($template, $variables); + // @codeCoverageIgnoreEnd + } + + static $uriTemplate; + if (!$uriTemplate) { + $uriTemplate = new UriTemplate(); + } + + return $uriTemplate->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 (function_exists('curl_multi_exec') && function_exists('curl_exec')) { + $handler = Proxy::wrapSync(new CurlMultiHandler(), new CurlHandler()); + } elseif (function_exists('curl_exec')) { + $handler = new CurlHandler(); + } elseif (function_exists('curl_multi_exec')) { + $handler = new CurlMultiHandler(); + } + + 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') && function_exists('curl_version')) { + $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', + // SLES 12 (provided by the ca-certificates package) + '/var/lib/ca-certificates/ca-bundle.pem', + // OS X provided by homebrew (using the default path) + '/usr/local/etc/openssl/cert.pem', + // Google app engine + '/etc/ca-certificates.crt', + // 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 + ); +} + +/** + * Creates an associative array of lowercase header names to the actual + * header casing. + * + * @param array $headers + * + * @return array + */ +function normalize_header_keys(array $headers) +{ + $result = []; + foreach (array_keys($headers) as $key) { + $result[strtolower($key)] = $key; + } + + return $result; +} + +/** + * Returns true if the provided host matches any of the no proxy areas. + * + * This method will strip a port from the host if it is present. Each pattern + * can be matched with an exact match (e.g., "foo.com" == "foo.com") or a + * partial match: (e.g., "foo.com" == "baz.foo.com" and ".foo.com" == + * "baz.foo.com", but ".foo.com" != "foo.com"). + * + * Areas are matched in the following cases: + * 1. "*" (without quotes) always matches any hosts. + * 2. An exact match. + * 3. The area starts with "." and the area is the last part of the host. e.g. + * '.mit.edu' will match any host that ends with '.mit.edu'. + * + * @param string $host Host to check against the patterns. + * @param array $noProxyArray An array of host patterns. + * + * @return bool + */ +function is_host_in_noproxy($host, array $noProxyArray) +{ + if (strlen($host) === 0) { + throw new \InvalidArgumentException('Empty host provided'); + } + + // Strip port if present. + if (strpos($host, ':')) { + $host = explode($host, ':', 2)[0]; + } + + foreach ($noProxyArray as $area) { + // Always match on wildcards. + if ($area === '*') { + return true; + } elseif (empty($area)) { + // Don't match on empty values. + continue; + } elseif ($area === $host) { + // Exact matches. + return true; + } else { + // Special match if the area when prefixed with ".". Remove any + // existing leading "." and add a new leading ".". + $area = '.' . ltrim($area, '.'); + if (substr($host, -(strlen($area))) === $area) { + return true; + } + } + } + + return false; +} + +/** + * Wrapper for json_decode that throws when an error occurs. + * + * @param string $json JSON data to parse + * @param bool $assoc When true, returned objects will be converted + * into associative arrays. + * @param int $depth User specified recursion depth. + * @param int $options Bitmask of JSON decode options. + * + * @return mixed + * @throws \InvalidArgumentException if the JSON cannot be decoded. + * @link http://www.php.net/manual/en/function.json-decode.php + */ +function json_decode($json, $assoc = false, $depth = 512, $options = 0) +{ + $data = \json_decode($json, $assoc, $depth, $options); + if (JSON_ERROR_NONE !== json_last_error()) { + throw new \InvalidArgumentException( + 'json_decode error: ' . json_last_error_msg() + ); + } + + return $data; +} + +/** + * Wrapper for JSON encoding that throws when an error occurs. + * + * @param mixed $value The value being encoded + * @param int $options JSON encode option bitmask + * @param int $depth Set the maximum depth. Must be greater than zero. + * + * @return string + * @throws \InvalidArgumentException if the JSON cannot be encoded. + * @link http://www.php.net/manual/en/function.json-encode.php + */ +function json_encode($value, $options = 0, $depth = 512) +{ + $json = \json_encode($value, $options, $depth); + if (JSON_ERROR_NONE !== json_last_error()) { + throw new \InvalidArgumentException( + 'json_encode error: ' . json_last_error_msg() + ); + } + + return $json; +} diff --git a/lib/aws/GuzzleHttp/functions_include.php b/lib/aws/GuzzleHttp/functions_include.php new file mode 100644 index 0000000..a93393a --- /dev/null +++ b/lib/aws/GuzzleHttp/functions_include.php @@ -0,0 +1,6 @@ +<?php + +// Don't redefine the functions if included multiple times. +if (!function_exists('GuzzleHttp\uri_template')) { + require __DIR__ . '/functions.php'; +} diff --git a/lib/aws/JmesPath/AstRuntime.php b/lib/aws/JmesPath/AstRuntime.php new file mode 100644 index 0000000..db8a60e --- /dev/null +++ b/lib/aws/JmesPath/AstRuntime.php @@ -0,0 +1,47 @@ +<?php +namespace JmesPath; + +/** + * Uses an external tree visitor to interpret an AST. + */ +class AstRuntime +{ + private $parser; + private $interpreter; + private $cache = []; + private $cachedCount = 0; + + public function __construct( + Parser $parser = null, + callable $fnDispatcher = null + ) { + $fnDispatcher = $fnDispatcher ?: FnDispatcher::getInstance(); + $this->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/JmesPath/CompilerRuntime.php b/lib/aws/JmesPath/CompilerRuntime.php new file mode 100644 index 0000000..f2becb9 --- /dev/null +++ b/lib/aws/JmesPath/CompilerRuntime.php @@ -0,0 +1,83 @@ +<?php +namespace JmesPath; + +/** + * Compiles JMESPath expressions to PHP source code and executes it. + * + * JMESPath file names are stored in the cache directory using the following + * logic to determine the filename: + * + * 1. Start with the string "jmespath_" + * 2. Append the MD5 checksum of the expression. + * 3. Append ".php" + */ +class CompilerRuntime +{ + private $parser; + private $compiler; + private $cacheDir; + private $interpreter; + + /** + * @param string $dir Directory used to store compiled PHP files. + * @param Parser $parser JMESPath parser to utilize + * @throws \RuntimeException if the cache directory cannot be created + */ + public function __construct($dir = null, Parser $parser = null) + { + $this->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/JmesPath/DebugRuntime.php b/lib/aws/JmesPath/DebugRuntime.php new file mode 100644 index 0000000..4052561 --- /dev/null +++ b/lib/aws/JmesPath/DebugRuntime.php @@ -0,0 +1,109 @@ +<?php +namespace JmesPath; + +/** + * Provides CLI debugging information for the AST and Compiler runtimes. + */ +class DebugRuntime +{ + private $runtime; + private $out; + private $lexer; + private $parser; + + public function __construct(callable $runtime, $output = null) + { + $this->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/JmesPath/Env.php b/lib/aws/JmesPath/Env.php new file mode 100644 index 0000000..9da5d69 --- /dev/null +++ b/lib/aws/JmesPath/Env.php @@ -0,0 +1,66 @@ +<?php +namespace JmesPath; + +/** + * Provides a simple environment based search. + * + * The runtime utilized by the Env class can be customized via environment + * variables. If the JP_PHP_COMPILE environment variable is specified, then the + * CompilerRuntime will be utilized. If set to "on", JMESPath expressions will + * be cached to the system's temp directory. Set the environment variable to + * a string to cache expressions to a specific directory. + */ +final class Env +{ + const COMPILE_DIR = 'JP_PHP_COMPILE'; + + /** + * Returns data from the input array that matches a JMESPath expression. + * + * @param string $expression JMESPath expression to evaluate + * @param mixed $data JSON-like data to search + * + * @return mixed|null Returns the matching data or null + */ + public static function search($expression, $data) + { + static $runtime; + if (!$runtime) { + $runtime = Env::createRuntime(); + } + return $runtime($expression, $data); + } + + /** + * Creates a JMESPath runtime based on environment variables and extensions + * available on a system. + * + * @return callable + */ + public static function createRuntime() + { + switch ($compileDir = getenv(self::COMPILE_DIR)) { + case false: return new AstRuntime(); + case 'on': return new CompilerRuntime(); + default: return new CompilerRuntime($compileDir); + } + } + + /** + * Delete all previously compiled JMESPath files from the JP_COMPILE_DIR + * directory or sys_get_temp_dir(). + * + * @return int Returns the number of deleted files. + */ + public static function cleanCompileDir() + { + $total = 0; + $compileDir = getenv(self::COMPILE_DIR) ?: sys_get_temp_dir(); + foreach (glob("{$compileDir}/jmespath_*.php") as $file) { + $total++; + unlink($file); + } + + return $total; + } +} diff --git a/lib/aws/JmesPath/FnDispatcher.php b/lib/aws/JmesPath/FnDispatcher.php new file mode 100644 index 0000000..2b1eaa1 --- /dev/null +++ b/lib/aws/JmesPath/FnDispatcher.php @@ -0,0 +1,401 @@ +<?php +namespace JmesPath; + +/** + * Dispatches to named JMESPath functions using a single function that has the + * following signature: + * + * mixed $result = fn(string $function_name, array $args) + */ +class FnDispatcher +{ + /** + * Gets a cached instance of the default function implementations. + * + * @return FnDispatcher + */ + public static function getInstance() + { + static $instance = null; + if (!$instance) { + $instance = new self(); + } + + return $instance; + } + + /** + * @param string $fn Function name. + * @param array $args Function arguments. + * + * @return mixed + */ + public function __invoke($fn, array $args) + { + return $this->{'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 fn_map(array $args) + { + $this->validate('map', $args, [['expression'], ['any']]); + $result = []; + foreach ($args[1] as $a) { + $result[] = $args[0]($a); + } + return $result; + } + + 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/JmesPath/JmesPath.php b/lib/aws/JmesPath/JmesPath.php new file mode 100644 index 0000000..e2c239a --- /dev/null +++ b/lib/aws/JmesPath/JmesPath.php @@ -0,0 +1,17 @@ +<?php +namespace JmesPath; + +/** + * Returns data from the input array that matches a JMESPath expression. + * + * @param string $expression Expression to search. + * @param mixed $data Data to search. + * + * @return mixed|null + */ +if (!function_exists(__NAMESPACE__ . '\search')) { + function search($expression, $data) + { + return Env::search($expression, $data); + } +} diff --git a/lib/aws/JmesPath/Lexer.php b/lib/aws/JmesPath/Lexer.php new file mode 100644 index 0000000..90fa431 --- /dev/null +++ b/lib/aws/JmesPath/Lexer.php @@ -0,0 +1,444 @@ +<?php +namespace JmesPath; + +/** + * Tokenizes JMESPath expressions + */ +class Lexer +{ + const T_DOT = 'dot'; + const T_STAR = 'star'; + const T_COMMA = 'comma'; + const T_COLON = 'colon'; + const T_CURRENT = 'current'; + const T_EXPREF = 'expref'; + const T_LPAREN = 'lparen'; + const T_RPAREN = 'rparen'; + const T_LBRACE = 'lbrace'; + const T_RBRACE = 'rbrace'; + const T_LBRACKET = 'lbracket'; + const T_RBRACKET = 'rbracket'; + const T_FLATTEN = 'flatten'; + const T_IDENTIFIER = 'identifier'; + const T_NUMBER = 'number'; + const T_QUOTED_IDENTIFIER = 'quoted_identifier'; + const T_UNKNOWN = 'unknown'; + const T_PIPE = 'pipe'; + const T_OR = 'or'; + const T_AND = 'and'; + const T_NOT = 'not'; + const T_FILTER = 'filter'; + const T_LITERAL = 'literal'; + const T_EOF = 'eof'; + const T_COMPARATOR = 'comparator'; + + const STATE_IDENTIFIER = 0; + const STATE_NUMBER = 1; + const STATE_SINGLE_CHAR = 2; + const STATE_WHITESPACE = 3; + const STATE_STRING_LITERAL = 4; + const STATE_QUOTED_STRING = 5; + const STATE_JSON_LITERAL = 6; + const STATE_LBRACKET = 7; + const STATE_PIPE = 8; + const STATE_LT = 9; + const STATE_GT = 10; + const STATE_EQ = 11; + const STATE_NOT = 12; + const STATE_AND = 13; + + /** @var array We know what token we are consuming based on each char */ + private static $transitionTable = [ + '<' => self::STATE_LT, + '>' => self::STATE_GT, + '=' => self::STATE_EQ, + '!' => self::STATE_NOT, + '[' => self::STATE_LBRACKET, + '|' => self::STATE_PIPE, + '&' => self::STATE_AND, + '`' => 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_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_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 + $t = $this->inside($chars, "'", self::T_LITERAL); + $t['value'] = str_replace("\\'", "'", $t['value']); + $tokens[] = $t; + + } 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_AND) { + + $tokens[] = $this->matchOr($chars, '&', '&', self::T_AND, self::T_EXPREF); + + } elseif ($state === self::STATE_NOT) { + + // Consume not equal + $tokens[] = $this->matchOr($chars, '!', '=', self::T_COMPARATOR, self::T_NOT); + + } 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/JmesPath/Parser.php b/lib/aws/JmesPath/Parser.php new file mode 100644 index 0000000..3b0b29a --- /dev/null +++ b/lib/aws/JmesPath/Parser.php @@ -0,0 +1,518 @@ +<?php +namespace JmesPath; + +use JmesPath\Lexer as T; + +/** + * JMESPath Pratt parser + * @link http://hall.org.ua/halls/wizzard/pdf/Vaughan.Pratt.TDOP.pdf + */ +class Parser +{ + /** @var Lexer */ + private $lexer; + private $tokens; + private $token; + private $tpos; + private $expression; + private static $nullToken = ['type' => 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_OR => 2, + T::T_AND => 3, + T::T_COMPARATOR => 5, + T::T_FLATTEN => 9, + T::T_STAR => 20, + T::T_FILTER => 21, + T::T_DOT => 40, + T::T_NOT => 45, + 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_not() + { + $this->next(); + return ['type' => T::T_NOT, 'children' => [$this->expr(self::$bp[T::T_NOT])]]; + } + + private function nud_lparen() { + $this->next(); + $result = $this->expr(0); + if ($this->token['type'] !== T::T_RPAREN) { + throw $this->syntax('Unclosed `(`'); + } + $this->next(); + return $result; + } + + 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_and(array $left) + { + $this->next(); + return [ + 'type' => T::T_AND, + 'children' => [$left, $this->expr(self::$bp[T::T_AND])] + ]; + } + + 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(self::$bp[T::T_COMPARATOR])] + ]; + } + + 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/JmesPath/SyntaxErrorException.php b/lib/aws/JmesPath/SyntaxErrorException.php new file mode 100644 index 0000000..65be17e --- /dev/null +++ b/lib/aws/JmesPath/SyntaxErrorException.php @@ -0,0 +1,36 @@ +<?php +namespace JmesPath; + +/** + * Syntax errors raise this exception that gives context + */ +class SyntaxErrorException extends \InvalidArgumentException +{ + /** + * @param string $expectedTypesOrMessage Expected array of tokens or message + * @param array $token Current token + * @param string $expression Expression input + */ + public function __construct( + $expectedTypesOrMessage, + array $token, + $expression + ) { + $message = "Syntax error at character {$token['pos']}\n" + . $expression . "\n" . str_repeat(' ', $token['pos']) . "^\n"; + $message .= !is_array($expectedTypesOrMessage) + ? $expectedTypesOrMessage + : $this->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/JmesPath/TreeCompiler.php b/lib/aws/JmesPath/TreeCompiler.php new file mode 100644 index 0000000..afb0d9c --- /dev/null +++ b/lib/aws/JmesPath/TreeCompiler.php @@ -0,0 +1,419 @@ +<?php +namespace JmesPath; + +/** + * Tree visitor used to compile JMESPath expressions into native PHP code. + */ +class TreeCompiler +{ + private $indentation; + private $source; + private $vars; + + /** + * @param array $ast AST to compile. + * @param string $fnName The name of the function to generate. + * @param string $expr Expression being compiled. + * + * @return string + */ + public function visit(array $ast, $fnName, $expr) + { + $this->vars = []; + $this->source = $this->indentation = ''; + $this->write("<?php\n") + ->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() + ->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_and(array $node) + { + $a = $this->makeVar('beforeAnd'); + 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_not(array $node) + { + return $this + ->write('// Visiting not node') + ->dispatch($node['children'][0]) + ->write('// Applying boolean not to result of not node') + ->write('$value = !Utils::isTruthy($value);'); + } + + 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]) + ->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) + { + $listVal = $this->makeVar('list'); + $value = $this->makeVar('prev'); + $this->write('if ($value !== null) {') + ->indent() + ->write('%s = [];', $listVal) + ->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) + ->outdent() + ->write('}'); + } + + private function visit_function(array $node) + { + $value = $this->makeVar('val'); + $args = $this->makeVar('args'); + $this->write('%s = $value;', $value) + ->write('%s = [];', $args); + + foreach ($node['children'] as $arg) { + $this->dispatch($arg); + $this->write('%s[] = $value;', $args) + ->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) + { + $value = $this->makeVar('beforeCondition'); + return $this + ->write('%s = $value;', $value) + ->write('// Visiting condition node') + ->dispatch($node['children'][0]) + ->write('// Checking result of condition node') + ->write('if (Utils::isTruthy($value)) {') + ->indent() + ->write('$value = %s;', $value) + ->dispatch($node['children'][1]) + ->outdent() + ->write('} else {') + ->indent() + ->write('$value = null;') + ->outdent() + ->write('}'); + } + + private function visit_comparator(array $node) + { + $value = $this->makeVar('val'); + $a = $this->makeVar('left'); + $b = $this->makeVar('right'); + + $this + ->write('// Visiting comparator node') + ->write('%s = $value;', $value) + ->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('$value = Utils::isEqual(%s, %s);', $a, $b); + } elseif ($node['value'] == '!=') { + $this->write('$value = !Utils::isEqual(%s, %s);', $a, $b); + } else { + $this->write( + '$value = (is_int(%s) || is_float(%s)) && (is_int(%s) || is_float(%s)) && %s %s %s;', + $a, $a, $b, $b, $a, $node['value'], $b + ); + } + + return $this; + } + + /** @internal */ + public function __call($method, $args) + { + throw new \RuntimeException( + sprintf('Invalid node encountered: %s', json_encode($args[0])) + ); + } +} diff --git a/lib/aws/JmesPath/TreeInterpreter.php b/lib/aws/JmesPath/TreeInterpreter.php new file mode 100644 index 0000000..cdfdd99 --- /dev/null +++ b/lib/aws/JmesPath/TreeInterpreter.php @@ -0,0 +1,235 @@ +<?php +namespace JmesPath; + +/** + * Tree visitor used to evaluates JMESPath AST expressions. + */ +class TreeInterpreter +{ + /** @var callable */ + private $fnDispatcher; + + /** + * @param callable $fnDispatcher Function dispatching function that accepts + * a function name argument and an array of + * function arguments and returns the result. + */ + public function __construct(callable $fnDispatcher = null) + { + $this->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); + return Utils::isTruthy($result) + ? $result + : $this->dispatch($node['children'][1], $value); + + case 'and': + $result = $this->dispatch($node['children'][0], $value); + return Utils::isTruthy($result) + ? $this->dispatch($node['children'][1], $value) + : $result; + + case 'not': + return !Utils::isTruthy( + $this->dispatch($node['children'][0], $value) + ); + + 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 Utils::isTruthy($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_float($left)) || !(is_int($right) || is_float($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/JmesPath/Utils.php b/lib/aws/JmesPath/Utils.php new file mode 100644 index 0000000..4d0bf95 --- /dev/null +++ b/lib/aws/JmesPath/Utils.php @@ -0,0 +1,229 @@ +<?php +namespace JmesPath; + +class Utils +{ + static $typeMap = [ + 'boolean' => 'boolean', + 'string' => 'string', + 'NULL' => 'null', + 'double' => 'number', + 'float' => 'number', + 'integer' => 'number' + ]; + + /** + * Returns true if the value is truthy + * + * @param mixed $value Value to check + * + * @return bool + */ + public static function isTruthy($value) + { + if (!$value) { + return $value === 0 || $value === '0'; + } elseif ($value instanceof \stdClass) { + return (bool) get_object_vars($value); + } else { + return true; + } + } + + /** + * 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/LICENSE.md b/lib/aws/LICENSE.md new file mode 100644 index 0000000..8d53e9f --- /dev/null +++ b/lib/aws/LICENSE.md @@ -0,0 +1,141 @@ +# Apache License +Version 2.0, January 2004 + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +## 1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 +through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the +License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled +by, or are under common control with that entity. For the purposes of this definition, "control" means +(i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract +or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial +ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software +source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, +including but not limited to compiled object code, generated documentation, and conversions to other media +types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, +as indicated by a copyright notice that is included in or attached to the work (an example is provided in the +Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) +the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, +as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not +include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work +and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any +modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to +Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to +submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of +electronic, verbal, or written communication sent to the Licensor or its representatives, including but not +limited to communication on electronic mailing lists, source code control systems, and issue tracking systems +that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but +excluding communication that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been +received by Licensor and subsequently incorporated within the Work. + +## 2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare +Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +## 3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent +license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such +license applies only to those patent claims licensable by such Contributor that are necessarily infringed by +their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such +Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim +or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work +constitutes direct or contributory patent infringement, then any patent licenses granted to You under this +License for that Work shall terminate as of the date such litigation is filed. + +## 4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without +modifications, and in Source or Object form, provided that You meet the following conditions: + + 1. You must give any other recipients of the Work or Derivative Works a copy of this License; and + + 2. You must cause any modified files to carry prominent notices stating that You changed the files; and + + 3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, + trademark, and attribution notices from the Source form of the Work, excluding those notices that do + not pertain to any part of the Derivative Works; and + + 4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that + You distribute must include a readable copy of the attribution notices contained within such NOTICE + file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed as part of the Derivative Works; within + the Source form or documentation, if provided along with the Derivative Works; or, within a display + generated by the Derivative Works, if and wherever such third-party notices normally appear. The + contents of the NOTICE file are for informational purposes only and do not modify the License. You may + add Your own attribution notices within Derivative Works that You distribute, alongside or as an + addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be + construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide additional or different license +terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative +Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the +conditions stated in this License. + +## 5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by +You to the Licensor shall be under the terms and conditions of this License, without any additional terms or +conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate +license agreement you may have executed with Licensor regarding such Contributions. + +## 6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, service marks, or product names of +the Licensor, except as required for reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +## 7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor +provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express +or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, +MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the +appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +## 8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless +required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any +Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential +damages of any character arising as a result of this License or out of the use or inability to use the Work +(including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has been advised of the possibility +of such damages. + +## 9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, +acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this +License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole +responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold +each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason +of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS diff --git a/lib/aws/NOTICE.md b/lib/aws/NOTICE.md new file mode 100644 index 0000000..367fedc --- /dev/null +++ b/lib/aws/NOTICE.md @@ -0,0 +1,64 @@ +# AWS SDK for PHP + +<http://aws.amazon.com/php> + +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. +A copy of the License is located at + +<http://aws.amazon.com/apache2.0> + +or in the "license" file accompanying this file. This file is distributed +on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +express or implied. See the License for the specific language governing +permissions and limitations under the License. + +# Guzzle + +<https://github.com/guzzle/guzzle> + +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. + +# jmespath.php + +<https://github.com/mtdowling/jmespath.php> + +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. diff --git a/lib/aws/Psr/Http/Message/MessageInterface.php b/lib/aws/Psr/Http/Message/MessageInterface.php new file mode 100644 index 0000000..dd46e5e --- /dev/null +++ b/lib/aws/Psr/Http/Message/MessageInterface.php @@ -0,0 +1,187 @@ +<?php + +namespace Psr\Http\Message; + +/** + * HTTP messages consist of requests from a client to a server and responses + * from a server to a client. This interface defines the methods common to + * each. + * + * Messages are considered immutable; all methods that might change state MUST + * be implemented such that they retain the internal state of the current + * message and return an instance that contains the changed state. + * + * @link http://www.ietf.org/rfc/rfc7230.txt + * @link http://www.ietf.org/rfc/rfc7231.txt + */ +interface MessageInterface +{ + /** + * Retrieves the HTTP protocol version as a string. + * + * The string MUST contain only the HTTP version number (e.g., "1.1", "1.0"). + * + * @return string HTTP protocol version. + */ + public function getProtocolVersion(); + + /** + * Return an instance with the specified HTTP protocol version. + * + * The version string MUST contain only the HTTP version number (e.g., + * "1.1", "1.0"). + * + * 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 protocol version. + * + * @param string $version HTTP protocol version + * @return static + */ + public function withProtocolVersion($version); + + /** + * Retrieves all message header values. + * + * The keys represent the header name as it will be sent over the wire, and + * each value is an array of strings associated with the header. + * + * // Represent the headers as a string + * foreach ($message->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 string[][] 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 static + * @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 static + * @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 static + */ + 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 static + * @throws \InvalidArgumentException When the body is not valid. + */ + public function withBody(StreamInterface $body); +} diff --git a/lib/aws/Psr/Http/Message/RequestInterface.php b/lib/aws/Psr/Http/Message/RequestInterface.php new file mode 100644 index 0000000..a96d4fd --- /dev/null +++ b/lib/aws/Psr/Http/Message/RequestInterface.php @@ -0,0 +1,129 @@ +<?php + +namespace Psr\Http\Message; + +/** + * Representation of an outgoing, client-side request. + * + * Per the HTTP specification, this interface includes properties for + * each of the following: + * + * - Protocol version + * - HTTP method + * - URI + * - Headers + * - Message body + * + * During construction, implementations MUST attempt to set the Host header from + * a provided URI if no Host header is provided. + * + * Requests are considered immutable; all methods that might change state MUST + * be implemented such that they retain the internal state of the current + * message and return an instance that contains the changed state. + */ +interface RequestInterface extends MessageInterface +{ + /** + * Retrieves the message's request target. + * + * Retrieves the message's request-target either as it will appear (for + * clients), as it appeared at request (for servers), or as it was + * specified for the instance (see withRequestTarget()). + * + * In most cases, this will be the origin-form of the composed URI, + * unless a value was provided to the concrete implementation (see + * withRequestTarget() below). + * + * If no URI is available, and no request-target has been specifically + * provided, this method MUST return the string "/". + * + * @return string + */ + public function getRequestTarget(); + + /** + * Return an instance with the specific request-target. + * + * If the request needs a non-origin-form request-target — e.g., for + * specifying an absolute-form, authority-form, or asterisk-form — + * this method may be used to create an instance with the specified + * request-target, verbatim. + * + * 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 + * changed request target. + * + * @link http://tools.ietf.org/html/rfc7230#section-5.3 (for the various + * request-target forms allowed in request messages) + * @param mixed $requestTarget + * @return static + */ + public function withRequestTarget($requestTarget); + + /** + * Retrieves the HTTP method of the request. + * + * @return string Returns the request method. + */ + public function getMethod(); + + /** + * Return an instance with the provided HTTP method. + * + * While HTTP method names are typically all uppercase characters, HTTP + * method names are case-sensitive and thus implementations SHOULD NOT + * modify the given string. + * + * 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 + * changed request method. + * + * @param string $method Case-sensitive method. + * @return static + * @throws \InvalidArgumentException for invalid HTTP methods. + */ + public function withMethod($method); + + /** + * Retrieves the URI instance. + * + * This method MUST return a UriInterface instance. + * + * @link http://tools.ietf.org/html/rfc3986#section-4.3 + * @return UriInterface Returns a UriInterface instance + * representing the URI of the request. + */ + public function getUri(); + + /** + * Returns an instance with the provided URI. + * + * This method MUST update the Host header of the returned request by + * default if the URI contains a host component. If the URI does not + * contain a host component, any pre-existing Host header MUST be carried + * over to the returned request. + * + * You can opt-in to preserving the original state of the Host header by + * setting `$preserveHost` to `true`. When `$preserveHost` is set to + * `true`, this method interacts with the Host header in the following ways: + * + * - If the Host header is missing or empty, and the new URI contains + * a host component, this method MUST update the Host header in the returned + * request. + * - If the Host header is missing or empty, and the new URI does not contain a + * host component, this method MUST NOT update the Host header in the returned + * request. + * - If a Host header is present and non-empty, this method MUST NOT update + * the Host header in the returned request. + * + * 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 UriInterface instance. + * + * @link http://tools.ietf.org/html/rfc3986#section-4.3 + * @param UriInterface $uri New request URI to use. + * @param bool $preserveHost Preserve the original state of the Host header. + * @return static + */ + public function withUri(UriInterface $uri, $preserveHost = false); +} diff --git a/lib/aws/Psr/Http/Message/ResponseInterface.php b/lib/aws/Psr/Http/Message/ResponseInterface.php new file mode 100644 index 0000000..c306514 --- /dev/null +++ b/lib/aws/Psr/Http/Message/ResponseInterface.php @@ -0,0 +1,68 @@ +<?php + +namespace Psr\Http\Message; + +/** + * Representation of an outgoing, server-side response. + * + * Per the HTTP specification, this interface includes properties for + * each of the following: + * + * - Protocol version + * - Status code and reason phrase + * - Headers + * - Message body + * + * Responses are considered immutable; all methods that might change state MUST + * be implemented such that they retain the internal state of the current + * message and return an instance that contains the changed state. + */ +interface ResponseInterface extends MessageInterface +{ + /** + * Gets the response status code. + * + * The status code is a 3-digit integer result code of the server's attempt + * to understand and satisfy the request. + * + * @return int Status code. + */ + public function getStatusCode(); + + /** + * Return an instance with the specified status code and, optionally, reason phrase. + * + * If no reason phrase is specified, implementations MAY choose to default + * to the RFC 7231 or IANA recommended reason phrase for the response's + * status code. + * + * 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 status and reason phrase. + * + * @link http://tools.ietf.org/html/rfc7231#section-6 + * @link http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml + * @param int $code The 3-digit integer result code to set. + * @param string $reasonPhrase The reason phrase to use with the + * provided status code; if none is provided, implementations MAY + * use the defaults as suggested in the HTTP specification. + * @return static + * @throws \InvalidArgumentException For invalid status code arguments. + */ + public function withStatus($code, $reasonPhrase = ''); + + /** + * Gets the response reason phrase associated with the status code. + * + * Because a reason phrase is not a required element in a response + * status line, the reason phrase value MAY be null. Implementations MAY + * choose to return the default RFC 7231 recommended reason phrase (or those + * listed in the IANA HTTP Status Code Registry) for the response's + * status code. + * + * @link http://tools.ietf.org/html/rfc7231#section-6 + * @link http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml + * @return string Reason phrase; must return an empty string if none present. + */ + public function getReasonPhrase(); +} diff --git a/lib/aws/Psr/Http/Message/ServerRequestInterface.php b/lib/aws/Psr/Http/Message/ServerRequestInterface.php new file mode 100644 index 0000000..0251234 --- /dev/null +++ b/lib/aws/Psr/Http/Message/ServerRequestInterface.php @@ -0,0 +1,261 @@ +<?php + +namespace Psr\Http\Message; + +/** + * Representation of an incoming, server-side HTTP request. + * + * Per the HTTP specification, this interface includes properties for + * each of the following: + * + * - Protocol version + * - HTTP method + * - URI + * - Headers + * - Message body + * + * Additionally, it encapsulates all data as it has arrived to the + * application from the CGI and/or PHP environment, including: + * + * - The values represented in $_SERVER. + * - Any cookies provided (generally via $_COOKIE) + * - Query string arguments (generally via $_GET, or as parsed via parse_str()) + * - Upload files, if any (as represented by $_FILES) + * - Deserialized body parameters (generally from $_POST) + * + * $_SERVER values MUST be treated as immutable, as they represent application + * state at the time of request; as such, no methods are provided to allow + * modification of those values. The other values provide such methods, as they + * can be restored from $_SERVER or the request body, and may need treatment + * during the application (e.g., body parameters may be deserialized based on + * content type). + * + * Additionally, this interface recognizes the utility of introspecting a + * request to derive and match additional parameters (e.g., via URI path + * matching, decrypting cookie values, deserializing non-form-encoded body + * content, matching authorization headers to users, etc). These parameters + * are stored in an "attributes" property. + * + * Requests are considered immutable; all methods that might change state MUST + * be implemented such that they retain the internal state of the current + * message and return an instance that contains the changed state. + */ +interface ServerRequestInterface extends RequestInterface +{ + /** + * Retrieve server parameters. + * + * Retrieves data related to the incoming request environment, + * typically derived from PHP's $_SERVER superglobal. The data IS NOT + * REQUIRED to originate from $_SERVER. + * + * @return array + */ + public function getServerParams(); + + /** + * Retrieve cookies. + * + * Retrieves cookies sent by the client to the server. + * + * The data MUST be compatible with the structure of the $_COOKIE + * superglobal. + * + * @return array + */ + public function getCookieParams(); + + /** + * Return an instance with the specified cookies. + * + * The data IS NOT REQUIRED to come from the $_COOKIE superglobal, but MUST + * be compatible with the structure of $_COOKIE. Typically, this data will + * be injected at instantiation. + * + * This method MUST NOT update the related Cookie header of the request + * instance, nor related 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 cookie values. + * + * @param array $cookies Array of key/value pairs representing cookies. + * @return static + */ + public function withCookieParams(array $cookies); + + /** + * Retrieve query string arguments. + * + * Retrieves the deserialized query string arguments, if any. + * + * Note: the query params might not be in sync with the URI or server + * params. If you need to ensure you are only getting the original + * values, you may need to parse the query string from `getUri()->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 static + */ + 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 $uploadedFiles An array tree of UploadedFileInterface instances. + * @return static + * @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 static + * @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 static + */ + 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 static + */ + public function withoutAttribute($name); +} diff --git a/lib/aws/Psr/Http/Message/StreamInterface.php b/lib/aws/Psr/Http/Message/StreamInterface.php new file mode 100644 index 0000000..f68f391 --- /dev/null +++ b/lib/aws/Psr/Http/Message/StreamInterface.php @@ -0,0 +1,158 @@ +<?php + +namespace Psr\Http\Message; + +/** + * Describes a data stream. + * + * Typically, an instance will wrap a PHP stream; this interface provides + * a wrapper around the most common operations, including serialization of + * the entire stream to a string. + */ +interface StreamInterface +{ + /** + * Reads all data from the stream into a string, from the beginning to end. + * + * This method MUST attempt to seek to the beginning of the stream before + * reading data and read the stream until the end is reached. + * + * Warning: This could attempt to load a large amount of data into memory. + * + * This method MUST NOT raise an exception in order to conform with PHP's + * string casting operations. + * + * @see http://php.net/manual/en/language.oop5.magic.php#object.tostring + * @return string + */ + public function __toString(); + + /** + * Closes the stream and any underlying resources. + * + * @return void + */ + public function close(); + + /** + * Separates any underlying resources from the stream. + * + * After the stream has been detached, the stream is in an unusable state. + * + * @return resource|null Underlying PHP stream, if any + */ + public function detach(); + + /** + * Get the size of the stream if known. + * + * @return int|null Returns the size in bytes if known, or null if unknown. + */ + public function getSize(); + + /** + * Returns the current position of the file read/write pointer + * + * @return int Position of the file pointer + * @throws \RuntimeException on error. + */ + public function tell(); + + /** + * Returns true if the stream is at the end of the stream. + * + * @return bool + */ + public function eof(); + + /** + * Returns whether or not the stream is seekable. + * + * @return bool + */ + public function isSeekable(); + + /** + * Seek to a position in the stream. + * + * @link http://www.php.net/manual/en/function.fseek.php + * @param int $offset Stream offset + * @param int $whence Specifies how the cursor position will be calculated + * based on the seek offset. Valid values are identical to the built-in + * PHP $whence values for `fseek()`. SEEK_SET: Set position equal to + * offset bytes SEEK_CUR: Set position to current location plus offset + * SEEK_END: Set position to end-of-stream plus offset. + * @throws \RuntimeException on failure. + */ + public function seek($offset, $whence = SEEK_SET); + + /** + * Seek to the beginning of the stream. + * + * If the stream is not seekable, this method will raise an exception; + * otherwise, it will perform a seek(0). + * + * @see seek() + * @link http://www.php.net/manual/en/function.fseek.php + * @throws \RuntimeException on failure. + */ + public function rewind(); + + /** + * Returns whether or not the stream is writable. + * + * @return bool + */ + public function isWritable(); + + /** + * Write data to the stream. + * + * @param string $string The string that is to be written. + * @return int Returns the number of bytes written to the stream. + * @throws \RuntimeException on failure. + */ + public function write($string); + + /** + * Returns whether or not the stream is readable. + * + * @return bool + */ + public function isReadable(); + + /** + * Read data from the stream. + * + * @param int $length Read up to $length bytes from the object and return + * them. Fewer than $length bytes may be returned if underlying stream + * call returns fewer bytes. + * @return string Returns the data read from the stream, or an empty string + * if no bytes are available. + * @throws \RuntimeException if an error occurs. + */ + public function read($length); + + /** + * Returns the remaining contents in a string + * + * @return string + * @throws \RuntimeException if unable to read or an error occurs while + * reading. + */ + public function getContents(); + + /** + * Get stream metadata as an associative array or retrieve a specific key. + * + * The keys returned are identical to the keys returned from PHP's + * stream_get_meta_data() function. + * + * @link http://php.net/manual/en/function.stream-get-meta-data.php + * @param string $key Specific metadata to retrieve. + * @return array|mixed|null Returns an associative array if no key is + * provided. Returns a specific key value if a key is provided and the + * value is found, or null if the key is not found. + */ + public function getMetadata($key = null); +} diff --git a/lib/aws/Psr/Http/Message/UploadedFileInterface.php b/lib/aws/Psr/Http/Message/UploadedFileInterface.php new file mode 100644 index 0000000..f8a6901 --- /dev/null +++ b/lib/aws/Psr/Http/Message/UploadedFileInterface.php @@ -0,0 +1,123 @@ +<?php + +namespace Psr\Http\Message; + +/** + * Value object representing a file uploaded through an HTTP request. + * + * Instances of this interface are considered immutable; all methods that + * might change state MUST be implemented such that they retain the internal + * state of the current instance and return an instance that contains the + * changed state. + */ +interface UploadedFileInterface +{ + /** + * Retrieve a stream representing the uploaded file. + * + * This method MUST return a StreamInterface instance, representing the + * uploaded file. The purpose of this method is to allow utilizing native PHP + * stream functionality to manipulate the file upload, such as + * stream_copy_to_stream() (though the result will need to be decorated in a + * native PHP stream wrapper to work with such functions). + * + * If the moveTo() method has been called previously, this method MUST raise + * an exception. + * + * @return StreamInterface Stream representation of the uploaded file. + * @throws \RuntimeException in cases when no stream is available or can be + * created. + */ + public function getStream(); + + /** + * Move the uploaded file to a new location. + * + * Use this method as an alternative to move_uploaded_file(). This method is + * guaranteed to work in both SAPI and non-SAPI environments. + * Implementations must determine which environment they are in, and use the + * appropriate method (move_uploaded_file(), rename(), or a stream + * operation) to perform the operation. + * + * $targetPath may be an absolute path, or a relative path. If it is a + * relative path, resolution should be the same as used by PHP's rename() + * function. + * + * The original file or stream MUST be removed on completion. + * + * If this method is called more than once, any subsequent calls MUST raise + * an exception. + * + * When used in an SAPI environment where $_FILES is populated, when writing + * files via moveTo(), is_uploaded_file() and move_uploaded_file() SHOULD be + * used to ensure permissions and upload status are verified correctly. + * + * If you wish to move to a stream, use getStream(), as SAPI operations + * cannot guarantee writing to stream destinations. + * + * @see http://php.net/is_uploaded_file + * @see http://php.net/move_uploaded_file + * @param string $targetPath Path to which to move the uploaded file. + * @throws \InvalidArgumentException if the $targetPath specified is invalid. + * @throws \RuntimeException on any error during the move operation, or on + * the second or subsequent call to the method. + */ + public function moveTo($targetPath); + + /** + * Retrieve the file size. + * + * Implementations SHOULD return the value stored in the "size" key of + * the file in the $_FILES array if available, as PHP calculates this based + * on the actual size transmitted. + * + * @return int|null The file size in bytes or null if unknown. + */ + public function getSize(); + + /** + * Retrieve the error associated with the uploaded file. + * + * The return value MUST be one of PHP's UPLOAD_ERR_XXX constants. + * + * If the file was uploaded successfully, this method MUST return + * UPLOAD_ERR_OK. + * + * Implementations SHOULD return the value stored in the "error" key of + * the file in the $_FILES array. + * + * @see http://php.net/manual/en/features.file-upload.errors.php + * @return int One of PHP's UPLOAD_ERR_XXX constants. + */ + public function getError(); + + /** + * Retrieve the filename sent by the client. + * + * Do not trust the value returned by this method. A client could send + * a malicious filename with the intention to corrupt or hack your + * application. + * + * Implementations SHOULD return the value stored in the "name" key of + * the file in the $_FILES array. + * + * @return string|null The filename sent by the client or null if none + * was provided. + */ + public function getClientFilename(); + + /** + * Retrieve the media type sent by the client. + * + * Do not trust the value returned by this method. A client could send + * a malicious media type with the intention to corrupt or hack your + * application. + * + * Implementations SHOULD return the value stored in the "type" key of + * the file in the $_FILES array. + * + * @return string|null The media type sent by the client or null if none + * was provided. + */ + public function getClientMediaType(); +} diff --git a/lib/aws/Psr/Http/Message/UriInterface.php b/lib/aws/Psr/Http/Message/UriInterface.php new file mode 100644 index 0000000..9d7ab9e --- /dev/null +++ b/lib/aws/Psr/Http/Message/UriInterface.php @@ -0,0 +1,323 @@ +<?php +namespace Psr\Http\Message; + +/** + * Value object representing a URI. + * + * This interface is meant to represent URIs according to RFC 3986 and to + * provide methods for most common operations. Additional functionality for + * working with URIs can be provided on top of the interface or externally. + * Its primary use is for HTTP requests, but may also be used in other + * contexts. + * + * Instances of this interface are considered immutable; all methods that + * might change state MUST be implemented such that they retain the internal + * state of the current instance and return an instance that contains the + * changed state. + * + * Typically the Host header will be also be present in the request message. + * For server-side requests, the scheme will typically be discoverable in the + * server parameters. + * + * @link http://tools.ietf.org/html/rfc3986 (the URI specification) + */ +interface UriInterface +{ + /** + * Retrieve the scheme component of the URI. + * + * If no scheme is present, this method MUST return an empty string. + * + * The value returned MUST be normalized to lowercase, per RFC 3986 + * Section 3.1. + * + * The trailing ":" character is not part of the scheme and MUST NOT be + * added. + * + * @see https://tools.ietf.org/html/rfc3986#section-3.1 + * @return string The URI scheme. + */ + public function getScheme(); + + /** + * Retrieve the authority component of the URI. + * + * If no authority information is present, this method MUST return an empty + * string. + * + * The authority syntax of the URI is: + * + * <pre> + * [user-info@]host[:port] + * </pre> + * + * 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 static 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 static 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 static 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 static 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 static 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 static 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 static 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/README.md b/lib/aws/README.md new file mode 100644 index 0000000..df060e7 --- /dev/null +++ b/lib/aws/README.md @@ -0,0 +1,181 @@ +# AWS SDK for PHP - Version 3 + +[![@awsforphp on Twitter](http://img.shields.io/badge/twitter-%40awsforphp-blue.svg?style=flat)](https://twitter.com/awsforphp) +[![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/) +[![Gitter](https://badges.gitter.im/aws/aws-sdk-php.svg)](https://gitter.im/aws/aws-sdk-php?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +[![codecov](https://codecov.io/gh/aws/aws-sdk-php/branch/master/graph/badge.svg)](https://codecov.io/gh/aws/aws-sdk-php) + +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 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, submit pull requests, and get involved + (see [Apache 2.0 License][sdk-license]) +* [@awsforphp][sdk-twitter] – Follow us on Twitter + +## Getting Help + +Please use these community resources for getting help. We use the GitHub issues for tracking bugs and feature requests and have limited bandwidth to address them. + +* Ask a question on [StackOverflow](https://stackoverflow.com/) and tag it with [`aws-php-sdk`](http://stackoverflow.com/questions/tagged/aws-php-sdk) +* Come join the AWS SDK for PHP [gitter](https://gitter.im/aws/aws-sdk-php) +* Open a support ticket with [AWS Support](https://console.aws.amazon.com/support/home/) +* If it turns out that you may have found a bug, please [open an issue](https://github.com/aws/aws-sdk-php/issues/new) + +## Opening Issues + +If you encounter a bug with `aws-sdk-php` we would like to hear about it. Search the existing issues and try to make sure your problem doesn’t already exist before opening a new issue. It’s helpful if you include the version of `aws-sdk-php`, PHP version and OS you’re using. Please include a stack trace and reduced repro case when appropriate, too. + +The GitHub issues are intended for bug reports and feature requests. For help and questions with using `aws-sdk-php` please make use of the resources listed in the Getting Help section. There are limited resources available for handling issues and by keeping the list of open issues lean we can respond in a timely manner. + +## Features + +* Provides easy-to-use HTTP clients for all supported AWS + [services][docs-services], [regions][docs-rande], and authentication + protocols. +* 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 + use PHP's native file handling functions to interact with your S3 buckets and + objects like a local filesystem. +* Provides the [Amazon DynamoDB Session Handler][docs-ddbsh] for easily scaling + sessions on a fast, NoSQL database. +* Automatically uses [IAM Instance Profile Credentials][aws-iam-credentials] on + configured Amazon EC2 instances. + +## Getting Started + +1. **Sign up for AWS** – Before you begin, you need to + 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.5**. + We highly recommend having it 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. If Composer is installed globally on your system, you can run the following in the base directory of your project to add the SDK as a dependency: + ``` + composer require aws/aws-sdk-php + ``` + Please see the + [Installation section of the User Guide][docs-installation] for more + detailed information about installing the SDK through Composer and other + means. +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. + +## Quick Examples + +### Create an Amazon S3 client + +```php +<?php +// Require the Composer autoloader. +require 'vendor/autoload.php'; + +use Aws\S3\S3Client; + +// Instantiate an Amazon S3 client. +$s3 = new S3Client([ + 'version' => 'latest', + 'region' => 'us-west-2' +]); +``` + +### Upload a file to Amazon S3 + +```php +<?php +// Upload a publicly accessible file. The file size and type are determined by the SDK. +try { + $s3->putObject([ + 'Bucket' => 'my-bucket', + 'Key' => 'my-object', + 'Body' => fopen('/path/to/file', 'r'), + 'ACL' => 'public-read', + ]); +} catch (Aws\S3\Exception\S3Exception $e) { + echo "There was an error uploading the file.\n"; +} +``` + +### Related AWS Projects + +* [AWS Service Provider for Laravel][mod-laravel] +* [AWS SDK ZF2 Module][mod-zf2] +* [AWS Service Provider for Silex][mod-silex] +* [AWS SDK Bundle for Symfony][mod-symfony] +* [Amazon SNS Message Validator for PHP][sns-validator] - SNS validator without requiring SDK +* [Guzzle Version 6][guzzle-docs] – PHP HTTP client and framework +* For Version 2 of the SDK: + * [User Guide][docs-guide-v2] + * [API Docs][docs-api-v2] +* Other [AWS SDKs & Tools][aws-tools] (e.g., js, cli, ruby, python, java, etc.) + +[sdk-website]: http://aws.amazon.com/sdkforphp +[sdk-forum]: https://forums.aws.amazon.com/forum.jspa?forumID=80 +[sdk-issues]: https://github.com/aws/aws-sdk-php/issues +[sdk-license]: http://aws.amazon.com/apache2.0/ +[sdk-blog]: https://aws.amazon.com/blogs/developer/category/php/ +[sdk-twitter]: https://twitter.com/awsforphp +[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 + +[docs-api]: http://docs.aws.amazon.com/aws-sdk-php/v3/api/index.html +[docs-guide]: http://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/welcome.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-migration]: https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/getting-started_migration.html +[docs-signup]: http://aws.amazon.com/developers/access-keys/ +[docs-requirements]: https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/getting-started_requirements.html +[docs-installation]: https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/getting-started_installation.html +[docs-quickstart]: https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/welcome.html#getting-started +[docs-paginators]: https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_paginators.html +[docs-waiters]: https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_waiters.html +[docs-results]: https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/getting-started_basic-usage.html#result-objects +[docs-exceptions]: https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/getting-started_basic-usage.html#handling-errors +[docs-wire-logging]: https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/faq.html#how-can-i-see-what-data-is-sent-over-the-wire +[docs-ddbsh]: https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/service_dynamodb-session-handler.html +[docs-services]: https://aws.amazon.com/products/ +[docs-rande]: http://docs.aws.amazon.com/general/latest/gr/rande.html +[docs-streamwrapper]: https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/s3-stream-wrapper.html +[docs-s3-transfer]: https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/s3-transfer.html +[docs-s3-multipart]: https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/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-docs]: http://guzzlephp.org +[composer]: http://getcomposer.org +[packagist]: http://packagist.org +[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 + +[mod-laravel]: https://github.com/aws/aws-sdk-php-laravel +[mod-zf2]: https://github.com/aws/aws-sdk-php-zf2 +[mod-silex]: https://github.com/aws/aws-sdk-php-silex +[mod-symfony]: https://github.com/aws/aws-sdk-php-symfony +[sns-validator]: https://github.com/aws/aws-php-sns-message-validator diff --git a/lib/aws/aws-autoloader.php b/lib/aws/aws-autoloader.php new file mode 100644 index 0000000..ffc6136 --- /dev/null +++ b/lib/aws/aws-autoloader.php @@ -0,0 +1,1158 @@ +<?php + +$mapping = array( + 'GuzzleHttp\MessageFormatter' => __DIR__ . '/GuzzleHttp/MessageFormatter.php', + 'GuzzleHttp\RetryMiddleware' => __DIR__ . '/GuzzleHttp/RetryMiddleware.php', + 'GuzzleHttp\Pool' => __DIR__ . '/GuzzleHttp/Pool.php', + 'GuzzleHttp\Cookie\SetCookie' => __DIR__ . '/GuzzleHttp/Cookie/SetCookie.php', + 'GuzzleHttp\Cookie\CookieJar' => __DIR__ . '/GuzzleHttp/Cookie/CookieJar.php', + 'GuzzleHttp\Cookie\FileCookieJar' => __DIR__ . '/GuzzleHttp/Cookie/FileCookieJar.php', + 'GuzzleHttp\Cookie\SessionCookieJar' => __DIR__ . '/GuzzleHttp/Cookie/SessionCookieJar.php', + 'GuzzleHttp\Cookie\CookieJarInterface' => __DIR__ . '/GuzzleHttp/Cookie/CookieJarInterface.php', + 'GuzzleHttp\ClientInterface' => __DIR__ . '/GuzzleHttp/ClientInterface.php', + 'GuzzleHttp\Handler\CurlFactory' => __DIR__ . '/GuzzleHttp/Handler/CurlFactory.php', + 'GuzzleHttp\Handler\CurlMultiHandler' => __DIR__ . '/GuzzleHttp/Handler/CurlMultiHandler.php', + 'GuzzleHttp\Handler\CurlFactoryInterface' => __DIR__ . '/GuzzleHttp/Handler/CurlFactoryInterface.php', + 'GuzzleHttp\Handler\StreamHandler' => __DIR__ . '/GuzzleHttp/Handler/StreamHandler.php', + 'GuzzleHttp\Handler\EasyHandle' => __DIR__ . '/GuzzleHttp/Handler/EasyHandle.php', + 'GuzzleHttp\Handler\Proxy' => __DIR__ . '/GuzzleHttp/Handler/Proxy.php', + 'GuzzleHttp\Handler\MockHandler' => __DIR__ . '/GuzzleHttp/Handler/MockHandler.php', + 'GuzzleHttp\Handler\CurlHandler' => __DIR__ . '/GuzzleHttp/Handler/CurlHandler.php', + 'GuzzleHttp\PrepareBodyMiddleware' => __DIR__ . '/GuzzleHttp/PrepareBodyMiddleware.php', + 'GuzzleHttp\Middleware' => __DIR__ . '/GuzzleHttp/Middleware.php', + 'GuzzleHttp\TransferStats' => __DIR__ . '/GuzzleHttp/TransferStats.php', + 'GuzzleHttp\HandlerStack' => __DIR__ . '/GuzzleHttp/HandlerStack.php', + 'GuzzleHttp\functions' => __DIR__ . '/GuzzleHttp/functions.php', + 'GuzzleHttp\RequestOptions' => __DIR__ . '/GuzzleHttp/RequestOptions.php', + 'GuzzleHttp\functions_include' => __DIR__ . '/GuzzleHttp/functions_include.php', + 'GuzzleHttp\Client' => __DIR__ . '/GuzzleHttp/Client.php', + 'GuzzleHttp\Promise\CancellationException' => __DIR__ . '/GuzzleHttp/Promise/CancellationException.php', + 'GuzzleHttp\Promise\RejectedPromise' => __DIR__ . '/GuzzleHttp/Promise/RejectedPromise.php', + 'GuzzleHttp\Promise\Coroutine' => __DIR__ . '/GuzzleHttp/Promise/Coroutine.php', + 'GuzzleHttp\Promise\TaskQueueInterface' => __DIR__ . '/GuzzleHttp/Promise/TaskQueueInterface.php', + 'GuzzleHttp\Promise\EachPromise' => __DIR__ . '/GuzzleHttp/Promise/EachPromise.php', + 'GuzzleHttp\Promise\PromisorInterface' => __DIR__ . '/GuzzleHttp/Promise/PromisorInterface.php', + 'GuzzleHttp\Promise\functions' => __DIR__ . '/GuzzleHttp/Promise/functions.php', + 'GuzzleHttp\Promise\functions_include' => __DIR__ . '/GuzzleHttp/Promise/functions_include.php', + 'GuzzleHttp\Promise\PromiseInterface' => __DIR__ . '/GuzzleHttp/Promise/PromiseInterface.php', + 'GuzzleHttp\Promise\Promise' => __DIR__ . '/GuzzleHttp/Promise/Promise.php', + 'GuzzleHttp\Promise\RejectionException' => __DIR__ . '/GuzzleHttp/Promise/RejectionException.php', + 'GuzzleHttp\Promise\TaskQueue' => __DIR__ . '/GuzzleHttp/Promise/TaskQueue.php', + 'GuzzleHttp\Promise\FulfilledPromise' => __DIR__ . '/GuzzleHttp/Promise/FulfilledPromise.php', + 'GuzzleHttp\Promise\AggregateException' => __DIR__ . '/GuzzleHttp/Promise/AggregateException.php', + 'GuzzleHttp\RedirectMiddleware' => __DIR__ . '/GuzzleHttp/RedirectMiddleware.php', + 'GuzzleHttp\Exception\TransferException' => __DIR__ . '/GuzzleHttp/Exception/TransferException.php', + 'GuzzleHttp\Exception\BadResponseException' => __DIR__ . '/GuzzleHttp/Exception/BadResponseException.php', + 'GuzzleHttp\Exception\ServerException' => __DIR__ . '/GuzzleHttp/Exception/ServerException.php', + 'GuzzleHttp\Exception\ConnectException' => __DIR__ . '/GuzzleHttp/Exception/ConnectException.php', + 'GuzzleHttp\Exception\TooManyRedirectsException' => __DIR__ . '/GuzzleHttp/Exception/TooManyRedirectsException.php', + 'GuzzleHttp\Exception\SeekException' => __DIR__ . '/GuzzleHttp/Exception/SeekException.php', + 'GuzzleHttp\Exception\RequestException' => __DIR__ . '/GuzzleHttp/Exception/RequestException.php', + 'GuzzleHttp\Exception\ClientException' => __DIR__ . '/GuzzleHttp/Exception/ClientException.php', + 'GuzzleHttp\Exception\GuzzleException' => __DIR__ . '/GuzzleHttp/Exception/GuzzleException.php', + 'GuzzleHttp\Psr7\Response' => __DIR__ . '/GuzzleHttp/Psr7/Response.php', + 'GuzzleHttp\Psr7\Uri' => __DIR__ . '/GuzzleHttp/Psr7/Uri.php', + 'GuzzleHttp\Psr7\LimitStream' => __DIR__ . '/GuzzleHttp/Psr7/LimitStream.php', + 'GuzzleHttp\Psr7\PumpStream' => __DIR__ . '/GuzzleHttp/Psr7/PumpStream.php', + 'GuzzleHttp\Psr7\FnStream' => __DIR__ . '/GuzzleHttp/Psr7/FnStream.php', + 'GuzzleHttp\Psr7\UriResolver' => __DIR__ . '/GuzzleHttp/Psr7/UriResolver.php', + 'GuzzleHttp\Psr7\LazyOpenStream' => __DIR__ . '/GuzzleHttp/Psr7/LazyOpenStream.php', + 'GuzzleHttp\Psr7\InflateStream' => __DIR__ . '/GuzzleHttp/Psr7/InflateStream.php', + 'GuzzleHttp\Psr7\ServerRequest' => __DIR__ . '/GuzzleHttp/Psr7/ServerRequest.php', + 'GuzzleHttp\Psr7\functions' => __DIR__ . '/GuzzleHttp/Psr7/functions.php', + 'GuzzleHttp\Psr7\functions_include' => __DIR__ . '/GuzzleHttp/Psr7/functions_include.php', + 'GuzzleHttp\Psr7\StreamWrapper' => __DIR__ . '/GuzzleHttp/Psr7/StreamWrapper.php', + 'GuzzleHttp\Psr7\StreamDecoratorTrait' => __DIR__ . '/GuzzleHttp/Psr7/StreamDecoratorTrait.php', + 'GuzzleHttp\Psr7\MessageTrait' => __DIR__ . '/GuzzleHttp/Psr7/MessageTrait.php', + 'GuzzleHttp\Psr7\Request' => __DIR__ . '/GuzzleHttp/Psr7/Request.php', + 'GuzzleHttp\Psr7\UploadedFile' => __DIR__ . '/GuzzleHttp/Psr7/UploadedFile.php', + 'GuzzleHttp\Psr7\UriNormalizer' => __DIR__ . '/GuzzleHttp/Psr7/UriNormalizer.php', + 'GuzzleHttp\Psr7\BufferStream' => __DIR__ . '/GuzzleHttp/Psr7/BufferStream.php', + 'GuzzleHttp\Psr7\MultipartStream' => __DIR__ . '/GuzzleHttp/Psr7/MultipartStream.php', + 'GuzzleHttp\Psr7\CachingStream' => __DIR__ . '/GuzzleHttp/Psr7/CachingStream.php', + 'GuzzleHttp\Psr7\Rfc7230' => __DIR__ . '/GuzzleHttp/Psr7/Rfc7230.php', + 'GuzzleHttp\Psr7\AppendStream' => __DIR__ . '/GuzzleHttp/Psr7/AppendStream.php', + 'GuzzleHttp\Psr7\NoSeekStream' => __DIR__ . '/GuzzleHttp/Psr7/NoSeekStream.php', + 'GuzzleHttp\Psr7\Stream' => __DIR__ . '/GuzzleHttp/Psr7/Stream.php', + 'GuzzleHttp\Psr7\DroppingStream' => __DIR__ . '/GuzzleHttp/Psr7/DroppingStream.php', + 'GuzzleHttp\UriTemplate' => __DIR__ . '/GuzzleHttp/UriTemplate.php', + 'Psr\Http\Message\StreamInterface' => __DIR__ . '/Psr/Http/Message/StreamInterface.php', + 'Psr\Http\Message\UriInterface' => __DIR__ . '/Psr/Http/Message/UriInterface.php', + 'Psr\Http\Message\MessageInterface' => __DIR__ . '/Psr/Http/Message/MessageInterface.php', + 'Psr\Http\Message\ResponseInterface' => __DIR__ . '/Psr/Http/Message/ResponseInterface.php', + 'Psr\Http\Message\ServerRequestInterface' => __DIR__ . '/Psr/Http/Message/ServerRequestInterface.php', + 'Psr\Http\Message\RequestInterface' => __DIR__ . '/Psr/Http/Message/RequestInterface.php', + 'Psr\Http\Message\UploadedFileInterface' => __DIR__ . '/Psr/Http/Message/UploadedFileInterface.php', + 'Aws\Route53\Route53Client' => __DIR__ . '/Aws/Route53/Route53Client.php', + 'Aws\Route53\Exception\Route53Exception' => __DIR__ . '/Aws/Route53/Exception/Route53Exception.php', + 'Aws\RoboMaker\RoboMakerClient' => __DIR__ . '/Aws/RoboMaker/RoboMakerClient.php', + 'Aws\RoboMaker\Exception\RoboMakerException' => __DIR__ . '/Aws/RoboMaker/Exception/RoboMakerException.php', + 'Aws\ElasticsearchService\Exception\ElasticsearchServiceException' => __DIR__ . '/Aws/ElasticsearchService/Exception/ElasticsearchServiceException.php', + 'Aws\ElasticsearchService\ElasticsearchServiceClient' => __DIR__ . '/Aws/ElasticsearchService/ElasticsearchServiceClient.php', + 'Aws\WorkMail\Exception\WorkMailException' => __DIR__ . '/Aws/WorkMail/Exception/WorkMailException.php', + 'Aws\WorkMail\WorkMailClient' => __DIR__ . '/Aws/WorkMail/WorkMailClient.php', + 'Aws\Sns\Message' => __DIR__ . '/Aws/Sns/Message.php', + 'Aws\Sns\SnsClient' => __DIR__ . '/Aws/Sns/SnsClient.php', + 'Aws\Sns\Exception\SnsException' => __DIR__ . '/Aws/Sns/Exception/SnsException.php', + 'Aws\Sns\Exception\InvalidSnsMessageException' => __DIR__ . '/Aws/Sns/Exception/InvalidSnsMessageException.php', + 'Aws\Sns\MessageValidator' => __DIR__ . '/Aws/Sns/MessageValidator.php', + 'Aws\Polly\Exception\PollyException' => __DIR__ . '/Aws/Polly/Exception/PollyException.php', + 'Aws\Polly\PollyClient' => __DIR__ . '/Aws/Polly/PollyClient.php', + 'Aws\ApiGatewayManagementApi\ApiGatewayManagementApiClient' => __DIR__ . '/Aws/ApiGatewayManagementApi/ApiGatewayManagementApiClient.php', + 'Aws\ApiGatewayManagementApi\Exception\ApiGatewayManagementApiException' => __DIR__ . '/Aws/ApiGatewayManagementApi/Exception/ApiGatewayManagementApiException.php', + 'Aws\Textract\TextractClient' => __DIR__ . '/Aws/Textract/TextractClient.php', + 'Aws\Textract\Exception\TextractException' => __DIR__ . '/Aws/Textract/Exception/TextractException.php', + 'Aws\MultiRegionClient' => __DIR__ . '/Aws/MultiRegionClient.php', + 'Aws\GuardDuty\GuardDutyClient' => __DIR__ . '/Aws/GuardDuty/GuardDutyClient.php', + 'Aws\GuardDuty\Exception\GuardDutyException' => __DIR__ . '/Aws/GuardDuty/Exception/GuardDutyException.php', + 'Aws\TranscribeService\Exception\TranscribeServiceException' => __DIR__ . '/Aws/TranscribeService/Exception/TranscribeServiceException.php', + 'Aws\TranscribeService\TranscribeServiceClient' => __DIR__ . '/Aws/TranscribeService/TranscribeServiceClient.php', + 'Aws\OpsWorks\Exception\OpsWorksException' => __DIR__ . '/Aws/OpsWorks/Exception/OpsWorksException.php', + 'Aws\OpsWorks\OpsWorksClient' => __DIR__ . '/Aws/OpsWorks/OpsWorksClient.php', + 'Aws\CognitoSync\CognitoSyncClient' => __DIR__ . '/Aws/CognitoSync/CognitoSyncClient.php', + 'Aws\CognitoSync\Exception\CognitoSyncException' => __DIR__ . '/Aws/CognitoSync/Exception/CognitoSyncException.php', + 'Aws\data\lambda\2015-03-31\api-2.json' => __DIR__ . '/Aws/data/lambda/2015-03-31/api-2.json.php', + 'Aws\data\lambda\2015-03-31\smoke.json' => __DIR__ . '/Aws/data/lambda/2015-03-31/smoke.json.php', + 'Aws\data\lambda\2015-03-31\paginators-1.json' => __DIR__ . '/Aws/data/lambda/2015-03-31/paginators-1.json.php', + 'Aws\data\textract\2018-06-27\api-2.json' => __DIR__ . '/Aws/data/textract/2018-06-27/api-2.json.php', + 'Aws\data\textract\2018-06-27\paginators-1.json' => __DIR__ . '/Aws/data/textract/2018-06-27/paginators-1.json.php', + 'Aws\data\inspector\2016-02-16\api-2.json' => __DIR__ . '/Aws/data/inspector/2016-02-16/api-2.json.php', + 'Aws\data\inspector\2016-02-16\smoke.json' => __DIR__ . '/Aws/data/inspector/2016-02-16/smoke.json.php', + 'Aws\data\inspector\2016-02-16\paginators-1.json' => __DIR__ . '/Aws/data/inspector/2016-02-16/paginators-1.json.php', + 'Aws\data\resource-groups\2017-11-27\api-2.json' => __DIR__ . '/Aws/data/resource-groups/2017-11-27/api-2.json.php', + 'Aws\data\resource-groups\2017-11-27\paginators-1.json' => __DIR__ . '/Aws/data/resource-groups/2017-11-27/paginators-1.json.php', + 'Aws\data\pi\2018-02-27\api-2.json' => __DIR__ . '/Aws/data/pi/2018-02-27/api-2.json.php', + 'Aws\data\pi\2018-02-27\paginators-1.json' => __DIR__ . '/Aws/data/pi/2018-02-27/paginators-1.json.php', + 'Aws\data\batch\2016-08-10\api-2.json' => __DIR__ . '/Aws/data/batch/2016-08-10/api-2.json.php', + 'Aws\data\batch\2016-08-10\smoke.json' => __DIR__ . '/Aws/data/batch/2016-08-10/smoke.json.php', + 'Aws\data\batch\2016-08-10\paginators-1.json' => __DIR__ . '/Aws/data/batch/2016-08-10/paginators-1.json.php', + 'Aws\data\pinpoint-email\2018-07-26\api-2.json' => __DIR__ . '/Aws/data/pinpoint-email/2018-07-26/api-2.json.php', + 'Aws\data\pinpoint-email\2018-07-26\paginators-1.json' => __DIR__ . '/Aws/data/pinpoint-email/2018-07-26/paginators-1.json.php', + 'Aws\data\codecommit\2015-04-13\api-2.json' => __DIR__ . '/Aws/data/codecommit/2015-04-13/api-2.json.php', + 'Aws\data\codecommit\2015-04-13\smoke.json' => __DIR__ . '/Aws/data/codecommit/2015-04-13/smoke.json.php', + 'Aws\data\codecommit\2015-04-13\paginators-1.json' => __DIR__ . '/Aws/data/codecommit/2015-04-13/paginators-1.json.php', + 'Aws\data\workspaces\2015-04-08\api-2.json' => __DIR__ . '/Aws/data/workspaces/2015-04-08/api-2.json.php', + 'Aws\data\workspaces\2015-04-08\smoke.json' => __DIR__ . '/Aws/data/workspaces/2015-04-08/smoke.json.php', + 'Aws\data\workspaces\2015-04-08\paginators-1.json' => __DIR__ . '/Aws/data/workspaces/2015-04-08/paginators-1.json.php', + 'Aws\data\connect\2017-08-08\api-2.json' => __DIR__ . '/Aws/data/connect/2017-08-08/api-2.json.php', + 'Aws\data\connect\2017-08-08\paginators-1.json' => __DIR__ . '/Aws/data/connect/2017-08-08/paginators-1.json.php', + 'Aws\data\events\2015-10-07\api-2.json' => __DIR__ . '/Aws/data/events/2015-10-07/api-2.json.php', + 'Aws\data\events\2015-10-07\smoke.json' => __DIR__ . '/Aws/data/events/2015-10-07/smoke.json.php', + 'Aws\data\events\2015-10-07\paginators-1.json' => __DIR__ . '/Aws/data/events/2015-10-07/paginators-1.json.php', + 'Aws\data\alexaforbusiness\2017-11-09\api-2.json' => __DIR__ . '/Aws/data/alexaforbusiness/2017-11-09/api-2.json.php', + 'Aws\data\alexaforbusiness\2017-11-09\paginators-1.json' => __DIR__ . '/Aws/data/alexaforbusiness/2017-11-09/paginators-1.json.php', + 'Aws\data\greengrass\2017-06-07\api-2.json' => __DIR__ . '/Aws/data/greengrass/2017-06-07/api-2.json.php', + 'Aws\data\mediastore\2017-09-01\api-2.json' => __DIR__ . '/Aws/data/mediastore/2017-09-01/api-2.json.php', + 'Aws\data\mediastore\2017-09-01\paginators-1.json' => __DIR__ . '/Aws/data/mediastore/2017-09-01/paginators-1.json.php', + 'Aws\data\entitlement.marketplace\2017-01-11\api-2.json' => __DIR__ . '/Aws/data/entitlement.marketplace/2017-01-11/api-2.json.php', + 'Aws\data\entitlement.marketplace\2017-01-11\paginators-1.json' => __DIR__ . '/Aws/data/entitlement.marketplace/2017-01-11/paginators-1.json.php', + 'Aws\data\chime\2018-05-01\api-2.json' => __DIR__ . '/Aws/data/chime/2018-05-01/api-2.json.php', + 'Aws\data\chime\2018-05-01\paginators-1.json' => __DIR__ . '/Aws/data/chime/2018-05-01/paginators-1.json.php', + 'Aws\data\kinesisanalytics\2015-08-14\api-2.json' => __DIR__ . '/Aws/data/kinesisanalytics/2015-08-14/api-2.json.php', + 'Aws\data\kinesisanalytics\2015-08-14\paginators-1.json' => __DIR__ . '/Aws/data/kinesisanalytics/2015-08-14/paginators-1.json.php', + 'Aws\data\guardduty\2017-11-28\api-2.json' => __DIR__ . '/Aws/data/guardduty/2017-11-28/api-2.json.php', + 'Aws\data\guardduty\2017-11-28\paginators-1.json' => __DIR__ . '/Aws/data/guardduty/2017-11-28/paginators-1.json.php', + 'Aws\data\xray\2016-04-12\api-2.json' => __DIR__ . '/Aws/data/xray/2016-04-12/api-2.json.php', + 'Aws\data\xray\2016-04-12\paginators-1.json' => __DIR__ . '/Aws/data/xray/2016-04-12/paginators-1.json.php', + 'Aws\data\elasticloadbalancingv2\2015-12-01\api-2.json' => __DIR__ . '/Aws/data/elasticloadbalancingv2/2015-12-01/api-2.json.php', + 'Aws\data\elasticloadbalancingv2\2015-12-01\smoke.json' => __DIR__ . '/Aws/data/elasticloadbalancingv2/2015-12-01/smoke.json.php', + 'Aws\data\elasticloadbalancingv2\2015-12-01\waiters-2.json' => __DIR__ . '/Aws/data/elasticloadbalancingv2/2015-12-01/waiters-2.json.php', + 'Aws\data\elasticloadbalancingv2\2015-12-01\paginators-1.json' => __DIR__ . '/Aws/data/elasticloadbalancingv2/2015-12-01/paginators-1.json.php', + 'Aws\data\s3\2006-03-01\api-2.json' => __DIR__ . '/Aws/data/s3/2006-03-01/api-2.json.php', + 'Aws\data\s3\2006-03-01\smoke.json' => __DIR__ . '/Aws/data/s3/2006-03-01/smoke.json.php', + 'Aws\data\s3\2006-03-01\waiters-2.json' => __DIR__ . '/Aws/data/s3/2006-03-01/waiters-2.json.php', + 'Aws\data\s3\2006-03-01\paginators-1.json' => __DIR__ . '/Aws/data/s3/2006-03-01/paginators-1.json.php', + 'Aws\data\s3\2006-03-01\waiters-1.json' => __DIR__ . '/Aws/data/s3/2006-03-01/waiters-1.json.php', + 'Aws\data\ecs\2014-11-13\api-2.json' => __DIR__ . '/Aws/data/ecs/2014-11-13/api-2.json.php', + 'Aws\data\ecs\2014-11-13\smoke.json' => __DIR__ . '/Aws/data/ecs/2014-11-13/smoke.json.php', + 'Aws\data\ecs\2014-11-13\waiters-2.json' => __DIR__ . '/Aws/data/ecs/2014-11-13/waiters-2.json.php', + 'Aws\data\ecs\2014-11-13\paginators-1.json' => __DIR__ . '/Aws/data/ecs/2014-11-13/paginators-1.json.php', + 'Aws\data\cloudformation\2010-05-15\api-2.json' => __DIR__ . '/Aws/data/cloudformation/2010-05-15/api-2.json.php', + 'Aws\data\cloudformation\2010-05-15\waiters-2.json' => __DIR__ . '/Aws/data/cloudformation/2010-05-15/waiters-2.json.php', + 'Aws\data\cloudformation\2010-05-15\paginators-1.json' => __DIR__ . '/Aws/data/cloudformation/2010-05-15/paginators-1.json.php', + 'Aws\data\data.iot\2015-05-28\api-2.json' => __DIR__ . '/Aws/data/data.iot/2015-05-28/api-2.json.php', + 'Aws\data\glue\2017-03-31\api-2.json' => __DIR__ . '/Aws/data/glue/2017-03-31/api-2.json.php', + 'Aws\data\glue\2017-03-31\smoke.json' => __DIR__ . '/Aws/data/glue/2017-03-31/smoke.json.php', + 'Aws\data\glue\2017-03-31\paginators-1.json' => __DIR__ . '/Aws/data/glue/2017-03-31/paginators-1.json.php', + 'Aws\data\apigatewaymanagementapi\2018-11-29\api-2.json' => __DIR__ . '/Aws/data/apigatewaymanagementapi/2018-11-29/api-2.json.php', + 'Aws\data\apigatewaymanagementapi\2018-11-29\paginators-1.json' => __DIR__ . '/Aws/data/apigatewaymanagementapi/2018-11-29/paginators-1.json.php', + 'Aws\data\kafka\2018-11-14\api-2.json' => __DIR__ . '/Aws/data/kafka/2018-11-14/api-2.json.php', + 'Aws\data\kafka\2018-11-14\paginators-1.json' => __DIR__ . '/Aws/data/kafka/2018-11-14/paginators-1.json.php', + 'Aws\data\mgh\2017-05-31\api-2.json' => __DIR__ . '/Aws/data/mgh/2017-05-31/api-2.json.php', + 'Aws\data\mgh\2017-05-31\paginators-1.json' => __DIR__ . '/Aws/data/mgh/2017-05-31/paginators-1.json.php', + 'Aws\data\opsworkscm\2016-11-01\api-2.json' => __DIR__ . '/Aws/data/opsworkscm/2016-11-01/api-2.json.php', + 'Aws\data\opsworkscm\2016-11-01\waiters-2.json' => __DIR__ . '/Aws/data/opsworkscm/2016-11-01/waiters-2.json.php', + 'Aws\data\opsworkscm\2016-11-01\paginators-1.json' => __DIR__ . '/Aws/data/opsworkscm/2016-11-01/paginators-1.json.php', + 'Aws\data\mobile\2017-07-01\api-2.json' => __DIR__ . '/Aws/data/mobile/2017-07-01/api-2.json.php', + 'Aws\data\mobile\2017-07-01\paginators-1.json' => __DIR__ . '/Aws/data/mobile/2017-07-01/paginators-1.json.php', + 'Aws\data\shield\2016-06-02\api-2.json' => __DIR__ . '/Aws/data/shield/2016-06-02/api-2.json.php', + 'Aws\data\shield\2016-06-02\smoke.json' => __DIR__ . '/Aws/data/shield/2016-06-02/smoke.json.php', + 'Aws\data\shield\2016-06-02\paginators-1.json' => __DIR__ . '/Aws/data/shield/2016-06-02/paginators-1.json.php', + 'Aws\data\gamelift\2015-10-01\api-2.json' => __DIR__ . '/Aws/data/gamelift/2015-10-01/api-2.json.php', + 'Aws\data\gamelift\2015-10-01\smoke.json' => __DIR__ . '/Aws/data/gamelift/2015-10-01/smoke.json.php', + 'Aws\data\gamelift\2015-10-01\paginators-1.json' => __DIR__ . '/Aws/data/gamelift/2015-10-01/paginators-1.json.php', + 'Aws\data\autoscaling-plans\2018-01-06\api-2.json' => __DIR__ . '/Aws/data/autoscaling-plans/2018-01-06/api-2.json.php', + 'Aws\data\autoscaling-plans\2018-01-06\paginators-1.json' => __DIR__ . '/Aws/data/autoscaling-plans/2018-01-06/paginators-1.json.php', + 'Aws\data\storagegateway\2013-06-30\api-2.json' => __DIR__ . '/Aws/data/storagegateway/2013-06-30/api-2.json.php', + 'Aws\data\storagegateway\2013-06-30\paginators-1.json' => __DIR__ . '/Aws/data/storagegateway/2013-06-30/paginators-1.json.php', + 'Aws\data\apigateway\2015-07-09\api-2.json' => __DIR__ . '/Aws/data/apigateway/2015-07-09/api-2.json.php', + 'Aws\data\apigateway\2015-07-09\smoke.json' => __DIR__ . '/Aws/data/apigateway/2015-07-09/smoke.json.php', + 'Aws\data\apigateway\2015-07-09\paginators-1.json' => __DIR__ . '/Aws/data/apigateway/2015-07-09/paginators-1.json.php', + 'Aws\data\pricing\2017-10-15\api-2.json' => __DIR__ . '/Aws/data/pricing/2017-10-15/api-2.json.php', + 'Aws\data\pricing\2017-10-15\paginators-1.json' => __DIR__ . '/Aws/data/pricing/2017-10-15/paginators-1.json.php', + 'Aws\data\elasticmapreduce\2009-03-31\api-2.json' => __DIR__ . '/Aws/data/elasticmapreduce/2009-03-31/api-2.json.php', + 'Aws\data\elasticmapreduce\2009-03-31\smoke.json' => __DIR__ . '/Aws/data/elasticmapreduce/2009-03-31/smoke.json.php', + 'Aws\data\elasticmapreduce\2009-03-31\waiters-2.json' => __DIR__ . '/Aws/data/elasticmapreduce/2009-03-31/waiters-2.json.php', + 'Aws\data\elasticmapreduce\2009-03-31\paginators-1.json' => __DIR__ . '/Aws/data/elasticmapreduce/2009-03-31/paginators-1.json.php', + 'Aws\data\cloudtrail\2013-11-01\api-2.json' => __DIR__ . '/Aws/data/cloudtrail/2013-11-01/api-2.json.php', + 'Aws\data\cloudtrail\2013-11-01\smoke.json' => __DIR__ . '/Aws/data/cloudtrail/2013-11-01/smoke.json.php', + 'Aws\data\cloudtrail\2013-11-01\paginators-1.json' => __DIR__ . '/Aws/data/cloudtrail/2013-11-01/paginators-1.json.php', + 'Aws\data\robomaker\2018-06-29\api-2.json' => __DIR__ . '/Aws/data/robomaker/2018-06-29/api-2.json.php', + 'Aws\data\robomaker\2018-06-29\paginators-1.json' => __DIR__ . '/Aws/data/robomaker/2018-06-29/paginators-1.json.php', + 'Aws\data\codebuild\2016-10-06\api-2.json' => __DIR__ . '/Aws/data/codebuild/2016-10-06/api-2.json.php', + 'Aws\data\codebuild\2016-10-06\smoke.json' => __DIR__ . '/Aws/data/codebuild/2016-10-06/smoke.json.php', + 'Aws\data\codebuild\2016-10-06\paginators-1.json' => __DIR__ . '/Aws/data/codebuild/2016-10-06/paginators-1.json.php', + 'Aws\data\iam\2010-05-08\api-2.json' => __DIR__ . '/Aws/data/iam/2010-05-08/api-2.json.php', + 'Aws\data\iam\2010-05-08\smoke.json' => __DIR__ . '/Aws/data/iam/2010-05-08/smoke.json.php', + 'Aws\data\iam\2010-05-08\waiters-2.json' => __DIR__ . '/Aws/data/iam/2010-05-08/waiters-2.json.php', + 'Aws\data\iam\2010-05-08\paginators-1.json' => __DIR__ . '/Aws/data/iam/2010-05-08/paginators-1.json.php', + 'Aws\data\mturk-requester\2017-01-17\api-2.json' => __DIR__ . '/Aws/data/mturk-requester/2017-01-17/api-2.json.php', + 'Aws\data\mturk-requester\2017-01-17\smoke.json' => __DIR__ . '/Aws/data/mturk-requester/2017-01-17/smoke.json.php', + 'Aws\data\mturk-requester\2017-01-17\paginators-1.json' => __DIR__ . '/Aws/data/mturk-requester/2017-01-17/paginators-1.json.php', + 'Aws\data\securityhub\2018-10-26\api-2.json' => __DIR__ . '/Aws/data/securityhub/2018-10-26/api-2.json.php', + 'Aws\data\securityhub\2018-10-26\paginators-1.json' => __DIR__ . '/Aws/data/securityhub/2018-10-26/paginators-1.json.php', + 'Aws\data\dms\2016-01-01\api-2.json' => __DIR__ . '/Aws/data/dms/2016-01-01/api-2.json.php', + 'Aws\data\dms\2016-01-01\smoke.json' => __DIR__ . '/Aws/data/dms/2016-01-01/smoke.json.php', + 'Aws\data\dms\2016-01-01\waiters-2.json' => __DIR__ . '/Aws/data/dms/2016-01-01/waiters-2.json.php', + 'Aws\data\dms\2016-01-01\paginators-1.json' => __DIR__ . '/Aws/data/dms/2016-01-01/paginators-1.json.php', + 'Aws\data\cur\2017-01-06\api-2.json' => __DIR__ . '/Aws/data/cur/2017-01-06/api-2.json.php', + 'Aws\data\cur\2017-01-06\smoke.json' => __DIR__ . '/Aws/data/cur/2017-01-06/smoke.json.php', + 'Aws\data\cur\2017-01-06\paginators-1.json' => __DIR__ . '/Aws/data/cur/2017-01-06/paginators-1.json.php', + 'Aws\data\ssm\2014-11-06\api-2.json' => __DIR__ . '/Aws/data/ssm/2014-11-06/api-2.json.php', + 'Aws\data\ssm\2014-11-06\smoke.json' => __DIR__ . '/Aws/data/ssm/2014-11-06/smoke.json.php', + 'Aws\data\ssm\2014-11-06\paginators-1.json' => __DIR__ . '/Aws/data/ssm/2014-11-06/paginators-1.json.php', + 'Aws\data\route53domains\2014-05-15\api-2.json' => __DIR__ . '/Aws/data/route53domains/2014-05-15/api-2.json.php', + 'Aws\data\route53domains\2014-05-15\paginators-1.json' => __DIR__ . '/Aws/data/route53domains/2014-05-15/paginators-1.json.php', + 'Aws\data\marketplacecommerceanalytics\2015-07-01\api-2.json' => __DIR__ . '/Aws/data/marketplacecommerceanalytics/2015-07-01/api-2.json.php', + 'Aws\data\marketplacecommerceanalytics\2015-07-01\paginators-1.json' => __DIR__ . '/Aws/data/marketplacecommerceanalytics/2015-07-01/paginators-1.json.php', + 'Aws\data\importexport\2010-06-01\api-2.json' => __DIR__ . '/Aws/data/importexport/2010-06-01/api-2.json.php', + 'Aws\data\importexport\2010-06-01\paginators-1.json' => __DIR__ . '/Aws/data/importexport/2010-06-01/paginators-1.json.php', + 'Aws\data\email\2010-12-01\api-2.json' => __DIR__ . '/Aws/data/email/2010-12-01/api-2.json.php', + 'Aws\data\email\2010-12-01\smoke.json' => __DIR__ . '/Aws/data/email/2010-12-01/smoke.json.php', + 'Aws\data\email\2010-12-01\waiters-2.json' => __DIR__ . '/Aws/data/email/2010-12-01/waiters-2.json.php', + 'Aws\data\email\2010-12-01\paginators-1.json' => __DIR__ . '/Aws/data/email/2010-12-01/paginators-1.json.php', + 'Aws\data\email\2010-12-01\waiters-1.json' => __DIR__ . '/Aws/data/email/2010-12-01/waiters-1.json.php', + 'Aws\data\comprehend\2017-11-27\api-2.json' => __DIR__ . '/Aws/data/comprehend/2017-11-27/api-2.json.php', + 'Aws\data\comprehend\2017-11-27\paginators-1.json' => __DIR__ . '/Aws/data/comprehend/2017-11-27/paginators-1.json.php', + 'Aws\data\macie\2017-12-19\api-2.json' => __DIR__ . '/Aws/data/macie/2017-12-19/api-2.json.php', + 'Aws\data\macie\2017-12-19\paginators-1.json' => __DIR__ . '/Aws/data/macie/2017-12-19/paginators-1.json.php', + 'Aws\data\iot1click-projects\2018-05-14\api-2.json' => __DIR__ . '/Aws/data/iot1click-projects/2018-05-14/api-2.json.php', + 'Aws\data\iot1click-projects\2018-05-14\paginators-1.json' => __DIR__ . '/Aws/data/iot1click-projects/2018-05-14/paginators-1.json.php', + 'Aws\data\iot-jobs-data\2017-09-29\api-2.json' => __DIR__ . '/Aws/data/iot-jobs-data/2017-09-29/api-2.json.php', + 'Aws\data\iot-jobs-data\2017-09-29\paginators-1.json' => __DIR__ . '/Aws/data/iot-jobs-data/2017-09-29/paginators-1.json.php', + 'Aws\data\es\2015-01-01\api-2.json' => __DIR__ . '/Aws/data/es/2015-01-01/api-2.json.php', + 'Aws\data\es\2015-01-01\smoke.json' => __DIR__ . '/Aws/data/es/2015-01-01/smoke.json.php', + 'Aws\data\es\2015-01-01\paginators-1.json' => __DIR__ . '/Aws/data/es/2015-01-01/paginators-1.json.php', + 'Aws\data\transfer\2018-11-05\api-2.json' => __DIR__ . '/Aws/data/transfer/2018-11-05/api-2.json.php', + 'Aws\data\transfer\2018-11-05\paginators-1.json' => __DIR__ . '/Aws/data/transfer/2018-11-05/paginators-1.json.php', + 'Aws\data\iotanalytics\2017-11-27\api-2.json' => __DIR__ . '/Aws/data/iotanalytics/2017-11-27/api-2.json.php', + 'Aws\data\iotanalytics\2017-11-27\paginators-1.json' => __DIR__ . '/Aws/data/iotanalytics/2017-11-27/paginators-1.json.php', + 'Aws\data\health\2016-08-04\api-2.json' => __DIR__ . '/Aws/data/health/2016-08-04/api-2.json.php', + 'Aws\data\health\2016-08-04\paginators-1.json' => __DIR__ . '/Aws/data/health/2016-08-04/paginators-1.json.php', + 'Aws\data\runtime.lex\2016-11-28\api-2.json' => __DIR__ . '/Aws/data/runtime.lex/2016-11-28/api-2.json.php', + 'Aws\data\runtime.lex\2016-11-28\paginators-1.json' => __DIR__ . '/Aws/data/runtime.lex/2016-11-28/paginators-1.json.php', + 'Aws\data\discovery\2015-11-01\api-2.json' => __DIR__ . '/Aws/data/discovery/2015-11-01/api-2.json.php', + 'Aws\data\discovery\2015-11-01\smoke.json' => __DIR__ . '/Aws/data/discovery/2015-11-01/smoke.json.php', + 'Aws\data\discovery\2015-11-01\paginators-1.json' => __DIR__ . '/Aws/data/discovery/2015-11-01/paginators-1.json.php', + 'Aws\data\machinelearning\2014-12-12\api-2.json' => __DIR__ . '/Aws/data/machinelearning/2014-12-12/api-2.json.php', + 'Aws\data\machinelearning\2014-12-12\waiters-2.json' => __DIR__ . '/Aws/data/machinelearning/2014-12-12/waiters-2.json.php', + 'Aws\data\machinelearning\2014-12-12\paginators-1.json' => __DIR__ . '/Aws/data/machinelearning/2014-12-12/paginators-1.json.php', + 'Aws\data\sagemaker\2017-07-24\api-2.json' => __DIR__ . '/Aws/data/sagemaker/2017-07-24/api-2.json.php', + 'Aws\data\sagemaker\2017-07-24\waiters-2.json' => __DIR__ . '/Aws/data/sagemaker/2017-07-24/waiters-2.json.php', + 'Aws\data\sagemaker\2017-07-24\paginators-1.json' => __DIR__ . '/Aws/data/sagemaker/2017-07-24/paginators-1.json.php', + 'Aws\data\translate\2017-07-01\api-2.json' => __DIR__ . '/Aws/data/translate/2017-07-01/api-2.json.php', + 'Aws\data\translate\2017-07-01\paginators-1.json' => __DIR__ . '/Aws/data/translate/2017-07-01/paginators-1.json.php', + 'Aws\data\cognito-sync\2014-06-30\api-2.json' => __DIR__ . '/Aws/data/cognito-sync/2014-06-30/api-2.json.php', + 'Aws\data\kinesisvideo\2017-09-30\api-2.json' => __DIR__ . '/Aws/data/kinesisvideo/2017-09-30/api-2.json.php', + 'Aws\data\kinesisvideo\2017-09-30\paginators-1.json' => __DIR__ . '/Aws/data/kinesisvideo/2017-09-30/paginators-1.json.php', + 'Aws\data\manifest.json' => __DIR__ . '/Aws/data/manifest.json.php', + 'Aws\data\pinpoint\2016-12-01\api-2.json' => __DIR__ . '/Aws/data/pinpoint/2016-12-01/api-2.json.php', + 'Aws\data\resourcegroupstaggingapi\2017-01-26\api-2.json' => __DIR__ . '/Aws/data/resourcegroupstaggingapi/2017-01-26/api-2.json.php', + 'Aws\data\resourcegroupstaggingapi\2017-01-26\paginators-1.json' => __DIR__ . '/Aws/data/resourcegroupstaggingapi/2017-01-26/paginators-1.json.php', + 'Aws\data\elasticbeanstalk\2010-12-01\api-2.json' => __DIR__ . '/Aws/data/elasticbeanstalk/2010-12-01/api-2.json.php', + 'Aws\data\elasticbeanstalk\2010-12-01\smoke.json' => __DIR__ . '/Aws/data/elasticbeanstalk/2010-12-01/smoke.json.php', + 'Aws\data\elasticbeanstalk\2010-12-01\paginators-1.json' => __DIR__ . '/Aws/data/elasticbeanstalk/2010-12-01/paginators-1.json.php', + 'Aws\data\apigatewayv2\2018-11-29\api-2.json' => __DIR__ . '/Aws/data/apigatewayv2/2018-11-29/api-2.json.php', + 'Aws\data\apigatewayv2\2018-11-29\paginators-1.json' => __DIR__ . '/Aws/data/apigatewayv2/2018-11-29/paginators-1.json.php', + 'Aws\data\dlm\2018-01-12\api-2.json' => __DIR__ . '/Aws/data/dlm/2018-01-12/api-2.json.php', + 'Aws\data\dlm\2018-01-12\paginators-1.json' => __DIR__ . '/Aws/data/dlm/2018-01-12/paginators-1.json.php', + 'Aws\data\worklink\2018-09-25\api-2.json' => __DIR__ . '/Aws/data/worklink/2018-09-25/api-2.json.php', + 'Aws\data\worklink\2018-09-25\paginators-1.json' => __DIR__ . '/Aws/data/worklink/2018-09-25/paginators-1.json.php', + 'Aws\data\cloud9\2017-09-23\api-2.json' => __DIR__ . '/Aws/data/cloud9/2017-09-23/api-2.json.php', + 'Aws\data\cloud9\2017-09-23\paginators-1.json' => __DIR__ . '/Aws/data/cloud9/2017-09-23/paginators-1.json.php', + 'Aws\data\autoscaling\2011-01-01\api-2.json' => __DIR__ . '/Aws/data/autoscaling/2011-01-01/api-2.json.php', + 'Aws\data\autoscaling\2011-01-01\smoke.json' => __DIR__ . '/Aws/data/autoscaling/2011-01-01/smoke.json.php', + 'Aws\data\autoscaling\2011-01-01\waiters-2.json' => __DIR__ . '/Aws/data/autoscaling/2011-01-01/waiters-2.json.php', + 'Aws\data\autoscaling\2011-01-01\paginators-1.json' => __DIR__ . '/Aws/data/autoscaling/2011-01-01/paginators-1.json.php', + 'Aws\data\logs\2014-03-28\api-2.json' => __DIR__ . '/Aws/data/logs/2014-03-28/api-2.json.php', + 'Aws\data\logs\2014-03-28\smoke.json' => __DIR__ . '/Aws/data/logs/2014-03-28/smoke.json.php', + 'Aws\data\logs\2014-03-28\paginators-1.json' => __DIR__ . '/Aws/data/logs/2014-03-28/paginators-1.json.php', + 'Aws\data\transcribe\2017-10-26\api-2.json' => __DIR__ . '/Aws/data/transcribe/2017-10-26/api-2.json.php', + 'Aws\data\transcribe\2017-10-26\paginators-1.json' => __DIR__ . '/Aws/data/transcribe/2017-10-26/paginators-1.json.php', + 'Aws\data\elasticache\2015-02-02\api-2.json' => __DIR__ . '/Aws/data/elasticache/2015-02-02/api-2.json.php', + 'Aws\data\elasticache\2015-02-02\smoke.json' => __DIR__ . '/Aws/data/elasticache/2015-02-02/smoke.json.php', + 'Aws\data\elasticache\2015-02-02\waiters-2.json' => __DIR__ . '/Aws/data/elasticache/2015-02-02/waiters-2.json.php', + 'Aws\data\elasticache\2015-02-02\paginators-1.json' => __DIR__ . '/Aws/data/elasticache/2015-02-02/paginators-1.json.php', + 'Aws\data\sts\2011-06-15\api-2.json' => __DIR__ . '/Aws/data/sts/2011-06-15/api-2.json.php', + 'Aws\data\sts\2011-06-15\smoke.json' => __DIR__ . '/Aws/data/sts/2011-06-15/smoke.json.php', + 'Aws\data\sts\2011-06-15\paginators-1.json' => __DIR__ . '/Aws/data/sts/2011-06-15/paginators-1.json.php', + 'Aws\data\waf-regional\2016-11-28\api-2.json' => __DIR__ . '/Aws/data/waf-regional/2016-11-28/api-2.json.php', + 'Aws\data\waf-regional\2016-11-28\smoke.json' => __DIR__ . '/Aws/data/waf-regional/2016-11-28/smoke.json.php', + 'Aws\data\waf-regional\2016-11-28\paginators-1.json' => __DIR__ . '/Aws/data/waf-regional/2016-11-28/paginators-1.json.php', + 'Aws\data\servicecatalog\2015-12-10\api-2.json' => __DIR__ . '/Aws/data/servicecatalog/2015-12-10/api-2.json.php', + 'Aws\data\servicecatalog\2015-12-10\smoke.json' => __DIR__ . '/Aws/data/servicecatalog/2015-12-10/smoke.json.php', + 'Aws\data\servicecatalog\2015-12-10\paginators-1.json' => __DIR__ . '/Aws/data/servicecatalog/2015-12-10/paginators-1.json.php', + 'Aws\data\appmesh\2019-01-25\api-2.json' => __DIR__ . '/Aws/data/appmesh/2019-01-25/api-2.json.php', + 'Aws\data\appmesh\2019-01-25\paginators-1.json' => __DIR__ . '/Aws/data/appmesh/2019-01-25/paginators-1.json.php', + 'Aws\data\appmesh\2018-10-01\api-2.json' => __DIR__ . '/Aws/data/appmesh/2018-10-01/api-2.json.php', + 'Aws\data\appmesh\2018-10-01\paginators-1.json' => __DIR__ . '/Aws/data/appmesh/2018-10-01/paginators-1.json.php', + 'Aws\data\organizations\2016-11-28\api-2.json' => __DIR__ . '/Aws/data/organizations/2016-11-28/api-2.json.php', + 'Aws\data\organizations\2016-11-28\paginators-1.json' => __DIR__ . '/Aws/data/organizations/2016-11-28/paginators-1.json.php', + 'Aws\data\mediastore-data\2017-09-01\api-2.json' => __DIR__ . '/Aws/data/mediastore-data/2017-09-01/api-2.json.php', + 'Aws\data\mediastore-data\2017-09-01\paginators-1.json' => __DIR__ . '/Aws/data/mediastore-data/2017-09-01/paginators-1.json.php', + 'Aws\data\cloudsearch\2013-01-01\api-2.json' => __DIR__ . '/Aws/data/cloudsearch/2013-01-01/api-2.json.php', + 'Aws\data\cloudsearch\2013-01-01\paginators-1.json' => __DIR__ . '/Aws/data/cloudsearch/2013-01-01/paginators-1.json.php', + 'Aws\data\dynamodb\2011-12-05\api-2.json' => __DIR__ . '/Aws/data/dynamodb/2011-12-05/api-2.json.php', + 'Aws\data\dynamodb\2011-12-05\smoke.json' => __DIR__ . '/Aws/data/dynamodb/2011-12-05/smoke.json.php', + 'Aws\data\dynamodb\2011-12-05\waiters-2.json' => __DIR__ . '/Aws/data/dynamodb/2011-12-05/waiters-2.json.php', + 'Aws\data\dynamodb\2011-12-05\paginators-1.json' => __DIR__ . '/Aws/data/dynamodb/2011-12-05/paginators-1.json.php', + 'Aws\data\dynamodb\2011-12-05\waiters-1.json' => __DIR__ . '/Aws/data/dynamodb/2011-12-05/waiters-1.json.php', + 'Aws\data\dynamodb\2012-08-10\api-2.json' => __DIR__ . '/Aws/data/dynamodb/2012-08-10/api-2.json.php', + 'Aws\data\dynamodb\2012-08-10\smoke.json' => __DIR__ . '/Aws/data/dynamodb/2012-08-10/smoke.json.php', + 'Aws\data\dynamodb\2012-08-10\waiters-2.json' => __DIR__ . '/Aws/data/dynamodb/2012-08-10/waiters-2.json.php', + 'Aws\data\dynamodb\2012-08-10\paginators-1.json' => __DIR__ . '/Aws/data/dynamodb/2012-08-10/paginators-1.json.php', + 'Aws\data\dynamodb\2012-08-10\waiters-1.json' => __DIR__ . '/Aws/data/dynamodb/2012-08-10/waiters-1.json.php', + 'Aws\data\neptune\2014-10-31\api-2.json' => __DIR__ . '/Aws/data/neptune/2014-10-31/api-2.json.php', + 'Aws\data\neptune\2014-10-31\waiters-2.json' => __DIR__ . '/Aws/data/neptune/2014-10-31/waiters-2.json.php', + 'Aws\data\neptune\2014-10-31\paginators-1.json' => __DIR__ . '/Aws/data/neptune/2014-10-31/paginators-1.json.php', + 'Aws\data\mediaconnect\2018-11-14\api-2.json' => __DIR__ . '/Aws/data/mediaconnect/2018-11-14/api-2.json.php', + 'Aws\data\mediaconnect\2018-11-14\paginators-1.json' => __DIR__ . '/Aws/data/mediaconnect/2018-11-14/paginators-1.json.php', + 'Aws\data\datapipeline\2012-10-29\api-2.json' => __DIR__ . '/Aws/data/datapipeline/2012-10-29/api-2.json.php', + 'Aws\data\datapipeline\2012-10-29\paginators-1.json' => __DIR__ . '/Aws/data/datapipeline/2012-10-29/paginators-1.json.php', + 'Aws\data\budgets\2016-10-20\api-2.json' => __DIR__ . '/Aws/data/budgets/2016-10-20/api-2.json.php', + 'Aws\data\budgets\2016-10-20\paginators-1.json' => __DIR__ . '/Aws/data/budgets/2016-10-20/paginators-1.json.php', + 'Aws\data\monitoring\2010-08-01\api-2.json' => __DIR__ . '/Aws/data/monitoring/2010-08-01/api-2.json.php', + 'Aws\data\monitoring\2010-08-01\smoke.json' => __DIR__ . '/Aws/data/monitoring/2010-08-01/smoke.json.php', + 'Aws\data\monitoring\2010-08-01\waiters-2.json' => __DIR__ . '/Aws/data/monitoring/2010-08-01/waiters-2.json.php', + 'Aws\data\monitoring\2010-08-01\paginators-1.json' => __DIR__ . '/Aws/data/monitoring/2010-08-01/paginators-1.json.php', + 'Aws\data\elastictranscoder\2012-09-25\api-2.json' => __DIR__ . '/Aws/data/elastictranscoder/2012-09-25/api-2.json.php', + 'Aws\data\elastictranscoder\2012-09-25\smoke.json' => __DIR__ . '/Aws/data/elastictranscoder/2012-09-25/smoke.json.php', + 'Aws\data\elastictranscoder\2012-09-25\waiters-2.json' => __DIR__ . '/Aws/data/elastictranscoder/2012-09-25/waiters-2.json.php', + 'Aws\data\elastictranscoder\2012-09-25\paginators-1.json' => __DIR__ . '/Aws/data/elastictranscoder/2012-09-25/paginators-1.json.php', + 'Aws\data\elastictranscoder\2012-09-25\waiters-1.json' => __DIR__ . '/Aws/data/elastictranscoder/2012-09-25/waiters-1.json.php', + 'Aws\data\kinesis\2013-12-02\api-2.json' => __DIR__ . '/Aws/data/kinesis/2013-12-02/api-2.json.php', + 'Aws\data\kinesis\2013-12-02\smoke.json' => __DIR__ . '/Aws/data/kinesis/2013-12-02/smoke.json.php', + 'Aws\data\kinesis\2013-12-02\waiters-2.json' => __DIR__ . '/Aws/data/kinesis/2013-12-02/waiters-2.json.php', + 'Aws\data\kinesis\2013-12-02\paginators-1.json' => __DIR__ . '/Aws/data/kinesis/2013-12-02/paginators-1.json.php', + 'Aws\data\ec2\2016-04-01\api-2.json' => __DIR__ . '/Aws/data/ec2/2016-04-01/api-2.json.php', + 'Aws\data\ec2\2016-04-01\waiters-2.json' => __DIR__ . '/Aws/data/ec2/2016-04-01/waiters-2.json.php', + 'Aws\data\ec2\2016-04-01\paginators-1.json' => __DIR__ . '/Aws/data/ec2/2016-04-01/paginators-1.json.php', + 'Aws\data\ec2\2016-09-15\api-2.json' => __DIR__ . '/Aws/data/ec2/2016-09-15/api-2.json.php', + 'Aws\data\ec2\2016-09-15\waiters-2.json' => __DIR__ . '/Aws/data/ec2/2016-09-15/waiters-2.json.php', + 'Aws\data\ec2\2016-09-15\paginators-1.json' => __DIR__ . '/Aws/data/ec2/2016-09-15/paginators-1.json.php', + 'Aws\data\ec2\2016-09-15\waiters-1.json' => __DIR__ . '/Aws/data/ec2/2016-09-15/waiters-1.json.php', + 'Aws\data\ec2\2015-10-01\api-2.json' => __DIR__ . '/Aws/data/ec2/2015-10-01/api-2.json.php', + 'Aws\data\ec2\2015-10-01\waiters-2.json' => __DIR__ . '/Aws/data/ec2/2015-10-01/waiters-2.json.php', + 'Aws\data\ec2\2015-10-01\paginators-1.json' => __DIR__ . '/Aws/data/ec2/2015-10-01/paginators-1.json.php', + 'Aws\data\ec2\2015-10-01\waiters-1.json' => __DIR__ . '/Aws/data/ec2/2015-10-01/waiters-1.json.php', + 'Aws\data\ec2\2016-11-15\api-2.json' => __DIR__ . '/Aws/data/ec2/2016-11-15/api-2.json.php', + 'Aws\data\ec2\2016-11-15\smoke.json' => __DIR__ . '/Aws/data/ec2/2016-11-15/smoke.json.php', + 'Aws\data\ec2\2016-11-15\waiters-2.json' => __DIR__ . '/Aws/data/ec2/2016-11-15/waiters-2.json.php', + 'Aws\data\ec2\2016-11-15\paginators-1.json' => __DIR__ . '/Aws/data/ec2/2016-11-15/paginators-1.json.php', + 'Aws\data\ec2\2016-11-15\waiters-1.json' => __DIR__ . '/Aws/data/ec2/2016-11-15/waiters-1.json.php', + 'Aws\data\medialive\2017-10-14\api-2.json' => __DIR__ . '/Aws/data/medialive/2017-10-14/api-2.json.php', + 'Aws\data\medialive\2017-10-14\paginators-1.json' => __DIR__ . '/Aws/data/medialive/2017-10-14/paginators-1.json.php', + 'Aws\data\kinesisanalyticsv2\2018-05-23\api-2.json' => __DIR__ . '/Aws/data/kinesisanalyticsv2/2018-05-23/api-2.json.php', + 'Aws\data\kinesisanalyticsv2\2018-05-23\paginators-1.json' => __DIR__ . '/Aws/data/kinesisanalyticsv2/2018-05-23/paginators-1.json.php', + 'Aws\data\rds\2014-10-31\api-2.json' => __DIR__ . '/Aws/data/rds/2014-10-31/api-2.json.php', + 'Aws\data\rds\2014-10-31\smoke.json' => __DIR__ . '/Aws/data/rds/2014-10-31/smoke.json.php', + 'Aws\data\rds\2014-10-31\waiters-2.json' => __DIR__ . '/Aws/data/rds/2014-10-31/waiters-2.json.php', + 'Aws\data\rds\2014-10-31\paginators-1.json' => __DIR__ . '/Aws/data/rds/2014-10-31/paginators-1.json.php', + 'Aws\data\rds\2014-10-31\waiters-1.json' => __DIR__ . '/Aws/data/rds/2014-10-31/waiters-1.json.php', + 'Aws\data\rds\2014-09-01\api-2.json' => __DIR__ . '/Aws/data/rds/2014-09-01/api-2.json.php', + 'Aws\data\rds\2014-09-01\smoke.json' => __DIR__ . '/Aws/data/rds/2014-09-01/smoke.json.php', + 'Aws\data\rds\2014-09-01\paginators-1.json' => __DIR__ . '/Aws/data/rds/2014-09-01/paginators-1.json.php', + 'Aws\data\route53\2013-04-01\api-2.json' => __DIR__ . '/Aws/data/route53/2013-04-01/api-2.json.php', + 'Aws\data\route53\2013-04-01\smoke.json' => __DIR__ . '/Aws/data/route53/2013-04-01/smoke.json.php', + 'Aws\data\route53\2013-04-01\waiters-2.json' => __DIR__ . '/Aws/data/route53/2013-04-01/waiters-2.json.php', + 'Aws\data\route53\2013-04-01\paginators-1.json' => __DIR__ . '/Aws/data/route53/2013-04-01/paginators-1.json.php', + 'Aws\data\devicefarm\2015-06-23\api-2.json' => __DIR__ . '/Aws/data/devicefarm/2015-06-23/api-2.json.php', + 'Aws\data\devicefarm\2015-06-23\smoke.json' => __DIR__ . '/Aws/data/devicefarm/2015-06-23/smoke.json.php', + 'Aws\data\devicefarm\2015-06-23\paginators-1.json' => __DIR__ . '/Aws/data/devicefarm/2015-06-23/paginators-1.json.php', + 'Aws\data\iot\2015-05-28\api-2.json' => __DIR__ . '/Aws/data/iot/2015-05-28/api-2.json.php', + 'Aws\data\iot\2015-05-28\smoke.json' => __DIR__ . '/Aws/data/iot/2015-05-28/smoke.json.php', + 'Aws\data\iot\2015-05-28\paginators-1.json' => __DIR__ . '/Aws/data/iot/2015-05-28/paginators-1.json.php', + 'Aws\data\signer\2017-08-25\api-2.json' => __DIR__ . '/Aws/data/signer/2017-08-25/api-2.json.php', + 'Aws\data\signer\2017-08-25\waiters-2.json' => __DIR__ . '/Aws/data/signer/2017-08-25/waiters-2.json.php', + 'Aws\data\signer\2017-08-25\paginators-1.json' => __DIR__ . '/Aws/data/signer/2017-08-25/paginators-1.json.php', + 'Aws\data\directconnect\2012-10-25\api-2.json' => __DIR__ . '/Aws/data/directconnect/2012-10-25/api-2.json.php', + 'Aws\data\directconnect\2012-10-25\smoke.json' => __DIR__ . '/Aws/data/directconnect/2012-10-25/smoke.json.php', + 'Aws\data\directconnect\2012-10-25\paginators-1.json' => __DIR__ . '/Aws/data/directconnect/2012-10-25/paginators-1.json.php', + 'Aws\data\route53resolver\2018-04-01\api-2.json' => __DIR__ . '/Aws/data/route53resolver/2018-04-01/api-2.json.php', + 'Aws\data\route53resolver\2018-04-01\smoke.json' => __DIR__ . '/Aws/data/route53resolver/2018-04-01/smoke.json.php', + 'Aws\data\route53resolver\2018-04-01\paginators-1.json' => __DIR__ . '/Aws/data/route53resolver/2018-04-01/paginators-1.json.php', + 'Aws\data\application-autoscaling\2016-02-06\api-2.json' => __DIR__ . '/Aws/data/application-autoscaling/2016-02-06/api-2.json.php', + 'Aws\data\application-autoscaling\2016-02-06\smoke.json' => __DIR__ . '/Aws/data/application-autoscaling/2016-02-06/smoke.json.php', + 'Aws\data\application-autoscaling\2016-02-06\paginators-1.json' => __DIR__ . '/Aws/data/application-autoscaling/2016-02-06/paginators-1.json.php', + 'Aws\data\backup\2018-11-15\api-2.json' => __DIR__ . '/Aws/data/backup/2018-11-15/api-2.json.php', + 'Aws\data\backup\2018-11-15\paginators-1.json' => __DIR__ . '/Aws/data/backup/2018-11-15/paginators-1.json.php', + 'Aws\data\workdocs\2016-05-01\api-2.json' => __DIR__ . '/Aws/data/workdocs/2016-05-01/api-2.json.php', + 'Aws\data\workdocs\2016-05-01\paginators-1.json' => __DIR__ . '/Aws/data/workdocs/2016-05-01/paginators-1.json.php', + 'Aws\data\cognito-idp\2016-04-18\api-2.json' => __DIR__ . '/Aws/data/cognito-idp/2016-04-18/api-2.json.php', + 'Aws\data\cognito-idp\2016-04-18\smoke.json' => __DIR__ . '/Aws/data/cognito-idp/2016-04-18/smoke.json.php', + 'Aws\data\cognito-idp\2016-04-18\paginators-1.json' => __DIR__ . '/Aws/data/cognito-idp/2016-04-18/paginators-1.json.php', + 'Aws\data\appstream\2016-12-01\api-2.json' => __DIR__ . '/Aws/data/appstream/2016-12-01/api-2.json.php', + 'Aws\data\appstream\2016-12-01\smoke.json' => __DIR__ . '/Aws/data/appstream/2016-12-01/smoke.json.php', + 'Aws\data\appstream\2016-12-01\waiters-2.json' => __DIR__ . '/Aws/data/appstream/2016-12-01/waiters-2.json.php', + 'Aws\data\appstream\2016-12-01\paginators-1.json' => __DIR__ . '/Aws/data/appstream/2016-12-01/paginators-1.json.php', + 'Aws\data\support\2013-04-15\api-2.json' => __DIR__ . '/Aws/data/support/2013-04-15/api-2.json.php', + 'Aws\data\support\2013-04-15\paginators-1.json' => __DIR__ . '/Aws/data/support/2013-04-15/paginators-1.json.php', + 'Aws\data\ce\2017-10-25\api-2.json' => __DIR__ . '/Aws/data/ce/2017-10-25/api-2.json.php', + 'Aws\data\ce\2017-10-25\paginators-1.json' => __DIR__ . '/Aws/data/ce/2017-10-25/paginators-1.json.php', + 'Aws\data\lightsail\2016-11-28\api-2.json' => __DIR__ . '/Aws/data/lightsail/2016-11-28/api-2.json.php', + 'Aws\data\lightsail\2016-11-28\smoke.json' => __DIR__ . '/Aws/data/lightsail/2016-11-28/smoke.json.php', + 'Aws\data\lightsail\2016-11-28\paginators-1.json' => __DIR__ . '/Aws/data/lightsail/2016-11-28/paginators-1.json.php', + 'Aws\data\firehose\2015-08-04\api-2.json' => __DIR__ . '/Aws/data/firehose/2015-08-04/api-2.json.php', + 'Aws\data\firehose\2015-08-04\smoke.json' => __DIR__ . '/Aws/data/firehose/2015-08-04/smoke.json.php', + 'Aws\data\firehose\2015-08-04\paginators-1.json' => __DIR__ . '/Aws/data/firehose/2015-08-04/paginators-1.json.php', + 'Aws\data\mediaconvert\2017-08-29\api-2.json' => __DIR__ . '/Aws/data/mediaconvert/2017-08-29/api-2.json.php', + 'Aws\data\mediaconvert\2017-08-29\paginators-1.json' => __DIR__ . '/Aws/data/mediaconvert/2017-08-29/paginators-1.json.php', + 'Aws\data\docdb\2014-10-31\api-2.json' => __DIR__ . '/Aws/data/docdb/2014-10-31/api-2.json.php', + 'Aws\data\docdb\2014-10-31\smoke.json' => __DIR__ . '/Aws/data/docdb/2014-10-31/smoke.json.php', + 'Aws\data\docdb\2014-10-31\waiters-2.json' => __DIR__ . '/Aws/data/docdb/2014-10-31/waiters-2.json.php', + 'Aws\data\docdb\2014-10-31\paginators-1.json' => __DIR__ . '/Aws/data/docdb/2014-10-31/paginators-1.json.php', + 'Aws\data\comprehendmedical\2018-10-30\api-2.json' => __DIR__ . '/Aws/data/comprehendmedical/2018-10-30/api-2.json.php', + 'Aws\data\comprehendmedical\2018-10-30\paginators-1.json' => __DIR__ . '/Aws/data/comprehendmedical/2018-10-30/paginators-1.json.php', + 'Aws\data\acm-pca\2017-08-22\api-2.json' => __DIR__ . '/Aws/data/acm-pca/2017-08-22/api-2.json.php', + 'Aws\data\acm-pca\2017-08-22\waiters-2.json' => __DIR__ . '/Aws/data/acm-pca/2017-08-22/waiters-2.json.php', + 'Aws\data\acm-pca\2017-08-22\paginators-1.json' => __DIR__ . '/Aws/data/acm-pca/2017-08-22/paginators-1.json.php', + 'Aws\data\secretsmanager\2017-10-17\api-2.json' => __DIR__ . '/Aws/data/secretsmanager/2017-10-17/api-2.json.php', + 'Aws\data\secretsmanager\2017-10-17\smoke.json' => __DIR__ . '/Aws/data/secretsmanager/2017-10-17/smoke.json.php', + 'Aws\data\secretsmanager\2017-10-17\paginators-1.json' => __DIR__ . '/Aws/data/secretsmanager/2017-10-17/paginators-1.json.php', + 'Aws\data\athena\2017-05-18\api-2.json' => __DIR__ . '/Aws/data/athena/2017-05-18/api-2.json.php', + 'Aws\data\athena\2017-05-18\smoke.json' => __DIR__ . '/Aws/data/athena/2017-05-18/smoke.json.php', + 'Aws\data\athena\2017-05-18\paginators-1.json' => __DIR__ . '/Aws/data/athena/2017-05-18/paginators-1.json.php', + 'Aws\data\mq\2017-11-27\api-2.json' => __DIR__ . '/Aws/data/mq/2017-11-27/api-2.json.php', + 'Aws\data\mq\2017-11-27\paginators-1.json' => __DIR__ . '/Aws/data/mq/2017-11-27/paginators-1.json.php', + 'Aws\data\rds-data\2018-08-01\api-2.json' => __DIR__ . '/Aws/data/rds-data/2018-08-01/api-2.json.php', + 'Aws\data\rds-data\2018-08-01\paginators-1.json' => __DIR__ . '/Aws/data/rds-data/2018-08-01/paginators-1.json.php', + 'Aws\data\codedeploy\2014-10-06\api-2.json' => __DIR__ . '/Aws/data/codedeploy/2014-10-06/api-2.json.php', + 'Aws\data\codedeploy\2014-10-06\smoke.json' => __DIR__ . '/Aws/data/codedeploy/2014-10-06/smoke.json.php', + 'Aws\data\codedeploy\2014-10-06\waiters-2.json' => __DIR__ . '/Aws/data/codedeploy/2014-10-06/waiters-2.json.php', + 'Aws\data\codedeploy\2014-10-06\paginators-1.json' => __DIR__ . '/Aws/data/codedeploy/2014-10-06/paginators-1.json.php', + 'Aws\data\codedeploy\2014-10-06\waiters-1.json' => __DIR__ . '/Aws/data/codedeploy/2014-10-06/waiters-1.json.php', + 'Aws\data\workmail\2017-10-01\api-2.json' => __DIR__ . '/Aws/data/workmail/2017-10-01/api-2.json.php', + 'Aws\data\workmail\2017-10-01\paginators-1.json' => __DIR__ . '/Aws/data/workmail/2017-10-01/paginators-1.json.php', + 'Aws\data\metering.marketplace\2016-01-14\api-2.json' => __DIR__ . '/Aws/data/metering.marketplace/2016-01-14/api-2.json.php', + 'Aws\data\metering.marketplace\2016-01-14\paginators-1.json' => __DIR__ . '/Aws/data/metering.marketplace/2016-01-14/paginators-1.json.php', + 'Aws\data\dax\2017-04-19\api-2.json' => __DIR__ . '/Aws/data/dax/2017-04-19/api-2.json.php', + 'Aws\data\dax\2017-04-19\paginators-1.json' => __DIR__ . '/Aws/data/dax/2017-04-19/paginators-1.json.php', + 'Aws\data\ecr\2015-09-21\api-2.json' => __DIR__ . '/Aws/data/ecr/2015-09-21/api-2.json.php', + 'Aws\data\ecr\2015-09-21\smoke.json' => __DIR__ . '/Aws/data/ecr/2015-09-21/smoke.json.php', + 'Aws\data\ecr\2015-09-21\paginators-1.json' => __DIR__ . '/Aws/data/ecr/2015-09-21/paginators-1.json.php', + 'Aws\data\endpoints_prefix_history.json' => __DIR__ . '/Aws/data/endpoints_prefix_history.json.php', + 'Aws\data\glacier\2012-06-01\api-2.json' => __DIR__ . '/Aws/data/glacier/2012-06-01/api-2.json.php', + 'Aws\data\glacier\2012-06-01\smoke.json' => __DIR__ . '/Aws/data/glacier/2012-06-01/smoke.json.php', + 'Aws\data\glacier\2012-06-01\waiters-2.json' => __DIR__ . '/Aws/data/glacier/2012-06-01/waiters-2.json.php', + 'Aws\data\glacier\2012-06-01\paginators-1.json' => __DIR__ . '/Aws/data/glacier/2012-06-01/paginators-1.json.php', + 'Aws\data\glacier\2012-06-01\waiters-1.json' => __DIR__ . '/Aws/data/glacier/2012-06-01/waiters-1.json.php', + 'Aws\data\license-manager\2018-08-01\api-2.json' => __DIR__ . '/Aws/data/license-manager/2018-08-01/api-2.json.php', + 'Aws\data\license-manager\2018-08-01\paginators-1.json' => __DIR__ . '/Aws/data/license-manager/2018-08-01/paginators-1.json.php', + 'Aws\data\ram\2018-01-04\api-2.json' => __DIR__ . '/Aws/data/ram/2018-01-04/api-2.json.php', + 'Aws\data\ram\2018-01-04\paginators-1.json' => __DIR__ . '/Aws/data/ram/2018-01-04/paginators-1.json.php', + 'Aws\data\streams.dynamodb\2012-08-10\api-2.json' => __DIR__ . '/Aws/data/streams.dynamodb/2012-08-10/api-2.json.php', + 'Aws\data\streams.dynamodb\2012-08-10\paginators-1.json' => __DIR__ . '/Aws/data/streams.dynamodb/2012-08-10/paginators-1.json.php', + 'Aws\data\elasticfilesystem\2015-02-01\api-2.json' => __DIR__ . '/Aws/data/elasticfilesystem/2015-02-01/api-2.json.php', + 'Aws\data\elasticfilesystem\2015-02-01\smoke.json' => __DIR__ . '/Aws/data/elasticfilesystem/2015-02-01/smoke.json.php', + 'Aws\data\elasticfilesystem\2015-02-01\paginators-1.json' => __DIR__ . '/Aws/data/elasticfilesystem/2015-02-01/paginators-1.json.php', + 'Aws\data\datasync\2018-11-09\api-2.json' => __DIR__ . '/Aws/data/datasync/2018-11-09/api-2.json.php', + 'Aws\data\datasync\2018-11-09\paginators-1.json' => __DIR__ . '/Aws/data/datasync/2018-11-09/paginators-1.json.php', + 'Aws\data\swf\2012-01-25\api-2.json' => __DIR__ . '/Aws/data/swf/2012-01-25/api-2.json.php', + 'Aws\data\swf\2012-01-25\paginators-1.json' => __DIR__ . '/Aws/data/swf/2012-01-25/paginators-1.json.php', + 'Aws\data\elasticloadbalancing\2012-06-01\api-2.json' => __DIR__ . '/Aws/data/elasticloadbalancing/2012-06-01/api-2.json.php', + 'Aws\data\elasticloadbalancing\2012-06-01\smoke.json' => __DIR__ . '/Aws/data/elasticloadbalancing/2012-06-01/smoke.json.php', + 'Aws\data\elasticloadbalancing\2012-06-01\waiters-2.json' => __DIR__ . '/Aws/data/elasticloadbalancing/2012-06-01/waiters-2.json.php', + 'Aws\data\elasticloadbalancing\2012-06-01\paginators-1.json' => __DIR__ . '/Aws/data/elasticloadbalancing/2012-06-01/paginators-1.json.php', + 'Aws\data\lex-models\2017-04-19\api-2.json' => __DIR__ . '/Aws/data/lex-models/2017-04-19/api-2.json.php', + 'Aws\data\lex-models\2017-04-19\paginators-1.json' => __DIR__ . '/Aws/data/lex-models/2017-04-19/paginators-1.json.php', + 'Aws\data\kms\2014-11-01\api-2.json' => __DIR__ . '/Aws/data/kms/2014-11-01/api-2.json.php', + 'Aws\data\kms\2014-11-01\smoke.json' => __DIR__ . '/Aws/data/kms/2014-11-01/smoke.json.php', + 'Aws\data\kms\2014-11-01\paginators-1.json' => __DIR__ . '/Aws/data/kms/2014-11-01/paginators-1.json.php', + 'Aws\data\amplify\2017-07-25\api-2.json' => __DIR__ . '/Aws/data/amplify/2017-07-25/api-2.json.php', + 'Aws\data\amplify\2017-07-25\paginators-1.json' => __DIR__ . '/Aws/data/amplify/2017-07-25/paginators-1.json.php', + 'Aws\data\polly\2016-06-10\api-2.json' => __DIR__ . '/Aws/data/polly/2016-06-10/api-2.json.php', + 'Aws\data\polly\2016-06-10\smoke.json' => __DIR__ . '/Aws/data/polly/2016-06-10/smoke.json.php', + 'Aws\data\polly\2016-06-10\paginators-1.json' => __DIR__ . '/Aws/data/polly/2016-06-10/paginators-1.json.php', + 'Aws\data\kinesis-video-archived-media\2017-09-30\api-2.json' => __DIR__ . '/Aws/data/kinesis-video-archived-media/2017-09-30/api-2.json.php', + 'Aws\data\kinesis-video-archived-media\2017-09-30\paginators-1.json' => __DIR__ . '/Aws/data/kinesis-video-archived-media/2017-09-30/paginators-1.json.php', + 'Aws\data\endpoints.json' => __DIR__ . '/Aws/data/endpoints.json.php', + 'Aws\data\clouddirectory\2016-05-10\api-2.json' => __DIR__ . '/Aws/data/clouddirectory/2016-05-10/api-2.json.php', + 'Aws\data\clouddirectory\2016-05-10\paginators-1.json' => __DIR__ . '/Aws/data/clouddirectory/2016-05-10/paginators-1.json.php', + 'Aws\data\clouddirectory\2017-01-11\api-2.json' => __DIR__ . '/Aws/data/clouddirectory/2017-01-11/api-2.json.php', + 'Aws\data\clouddirectory\2017-01-11\paginators-1.json' => __DIR__ . '/Aws/data/clouddirectory/2017-01-11/paginators-1.json.php', + 'Aws\data\eks\2017-11-01\api-2.json' => __DIR__ . '/Aws/data/eks/2017-11-01/api-2.json.php', + 'Aws\data\eks\2017-11-01\waiters-2.json' => __DIR__ . '/Aws/data/eks/2017-11-01/waiters-2.json.php', + 'Aws\data\eks\2017-11-01\paginators-1.json' => __DIR__ . '/Aws/data/eks/2017-11-01/paginators-1.json.php', + 'Aws\data\ds\2015-04-16\api-2.json' => __DIR__ . '/Aws/data/ds/2015-04-16/api-2.json.php', + 'Aws\data\ds\2015-04-16\smoke.json' => __DIR__ . '/Aws/data/ds/2015-04-16/smoke.json.php', + 'Aws\data\ds\2015-04-16\paginators-1.json' => __DIR__ . '/Aws/data/ds/2015-04-16/paginators-1.json.php', + 'Aws\data\quicksight\2018-04-01\api-2.json' => __DIR__ . '/Aws/data/quicksight/2018-04-01/api-2.json.php', + 'Aws\data\quicksight\2018-04-01\paginators-1.json' => __DIR__ . '/Aws/data/quicksight/2018-04-01/paginators-1.json.php', + 'Aws\data\cloudsearchdomain\2013-01-01\api-2.json' => __DIR__ . '/Aws/data/cloudsearchdomain/2013-01-01/api-2.json.php', + 'Aws\data\serverlessrepo\2017-09-08\api-2.json' => __DIR__ . '/Aws/data/serverlessrepo/2017-09-08/api-2.json.php', + 'Aws\data\serverlessrepo\2017-09-08\paginators-1.json' => __DIR__ . '/Aws/data/serverlessrepo/2017-09-08/paginators-1.json.php', + 'Aws\data\fsx\2018-03-01\api-2.json' => __DIR__ . '/Aws/data/fsx/2018-03-01/api-2.json.php', + 'Aws\data\fsx\2018-03-01\paginators-1.json' => __DIR__ . '/Aws/data/fsx/2018-03-01/paginators-1.json.php', + 'Aws\data\snowball\2016-06-30\api-2.json' => __DIR__ . '/Aws/data/snowball/2016-06-30/api-2.json.php', + 'Aws\data\snowball\2016-06-30\smoke.json' => __DIR__ . '/Aws/data/snowball/2016-06-30/smoke.json.php', + 'Aws\data\snowball\2016-06-30\paginators-1.json' => __DIR__ . '/Aws/data/snowball/2016-06-30/paginators-1.json.php', + 'Aws\data\iot1click-devices\2018-05-14\api-2.json' => __DIR__ . '/Aws/data/iot1click-devices/2018-05-14/api-2.json.php', + 'Aws\data\acm\2015-12-08\api-2.json' => __DIR__ . '/Aws/data/acm/2015-12-08/api-2.json.php', + 'Aws\data\acm\2015-12-08\smoke.json' => __DIR__ . '/Aws/data/acm/2015-12-08/smoke.json.php', + 'Aws\data\acm\2015-12-08\waiters-2.json' => __DIR__ . '/Aws/data/acm/2015-12-08/waiters-2.json.php', + 'Aws\data\acm\2015-12-08\paginators-1.json' => __DIR__ . '/Aws/data/acm/2015-12-08/paginators-1.json.php', + 'Aws\data\codestar\2017-04-19\api-2.json' => __DIR__ . '/Aws/data/codestar/2017-04-19/api-2.json.php', + 'Aws\data\codestar\2017-04-19\smoke.json' => __DIR__ . '/Aws/data/codestar/2017-04-19/smoke.json.php', + 'Aws\data\codestar\2017-04-19\paginators-1.json' => __DIR__ . '/Aws/data/codestar/2017-04-19/paginators-1.json.php', + 'Aws\data\rekognition\2016-06-27\api-2.json' => __DIR__ . '/Aws/data/rekognition/2016-06-27/api-2.json.php', + 'Aws\data\rekognition\2016-06-27\smoke.json' => __DIR__ . '/Aws/data/rekognition/2016-06-27/smoke.json.php', + 'Aws\data\rekognition\2016-06-27\paginators-1.json' => __DIR__ . '/Aws/data/rekognition/2016-06-27/paginators-1.json.php', + 'Aws\data\runtime.sagemaker\2017-05-13\api-2.json' => __DIR__ . '/Aws/data/runtime.sagemaker/2017-05-13/api-2.json.php', + 'Aws\data\runtime.sagemaker\2017-05-13\paginators-1.json' => __DIR__ . '/Aws/data/runtime.sagemaker/2017-05-13/paginators-1.json.php', + 'Aws\data\sns\2010-03-31\api-2.json' => __DIR__ . '/Aws/data/sns/2010-03-31/api-2.json.php', + 'Aws\data\sns\2010-03-31\smoke.json' => __DIR__ . '/Aws/data/sns/2010-03-31/smoke.json.php', + 'Aws\data\sns\2010-03-31\paginators-1.json' => __DIR__ . '/Aws/data/sns/2010-03-31/paginators-1.json.php', + 'Aws\data\redshift\2012-12-01\api-2.json' => __DIR__ . '/Aws/data/redshift/2012-12-01/api-2.json.php', + 'Aws\data\redshift\2012-12-01\smoke.json' => __DIR__ . '/Aws/data/redshift/2012-12-01/smoke.json.php', + 'Aws\data\redshift\2012-12-01\waiters-2.json' => __DIR__ . '/Aws/data/redshift/2012-12-01/waiters-2.json.php', + 'Aws\data\redshift\2012-12-01\paginators-1.json' => __DIR__ . '/Aws/data/redshift/2012-12-01/paginators-1.json.php', + 'Aws\data\redshift\2012-12-01\waiters-1.json' => __DIR__ . '/Aws/data/redshift/2012-12-01/waiters-1.json.php', + 'Aws\data\states\2016-11-23\api-2.json' => __DIR__ . '/Aws/data/states/2016-11-23/api-2.json.php', + 'Aws\data\states\2016-11-23\smoke.json' => __DIR__ . '/Aws/data/states/2016-11-23/smoke.json.php', + 'Aws\data\states\2016-11-23\paginators-1.json' => __DIR__ . '/Aws/data/states/2016-11-23/paginators-1.json.php', + 'Aws\data\sms\2016-10-24\api-2.json' => __DIR__ . '/Aws/data/sms/2016-10-24/api-2.json.php', + 'Aws\data\sms\2016-10-24\smoke.json' => __DIR__ . '/Aws/data/sms/2016-10-24/smoke.json.php', + 'Aws\data\sms\2016-10-24\paginators-1.json' => __DIR__ . '/Aws/data/sms/2016-10-24/paginators-1.json.php', + 'Aws\data\kinesis-video-media\2017-09-30\api-2.json' => __DIR__ . '/Aws/data/kinesis-video-media/2017-09-30/api-2.json.php', + 'Aws\data\kinesis-video-media\2017-09-30\paginators-1.json' => __DIR__ . '/Aws/data/kinesis-video-media/2017-09-30/paginators-1.json.php', + 'Aws\data\codepipeline\2015-07-09\api-2.json' => __DIR__ . '/Aws/data/codepipeline/2015-07-09/api-2.json.php', + 'Aws\data\codepipeline\2015-07-09\smoke.json' => __DIR__ . '/Aws/data/codepipeline/2015-07-09/smoke.json.php', + 'Aws\data\codepipeline\2015-07-09\paginators-1.json' => __DIR__ . '/Aws/data/codepipeline/2015-07-09/paginators-1.json.php', + 'Aws\data\cloudhsm\2014-05-30\api-2.json' => __DIR__ . '/Aws/data/cloudhsm/2014-05-30/api-2.json.php', + 'Aws\data\cloudhsm\2014-05-30\paginators-1.json' => __DIR__ . '/Aws/data/cloudhsm/2014-05-30/paginators-1.json.php', + 'Aws\data\opsworks\2013-02-18\api-2.json' => __DIR__ . '/Aws/data/opsworks/2013-02-18/api-2.json.php', + 'Aws\data\opsworks\2013-02-18\smoke.json' => __DIR__ . '/Aws/data/opsworks/2013-02-18/smoke.json.php', + 'Aws\data\opsworks\2013-02-18\waiters-2.json' => __DIR__ . '/Aws/data/opsworks/2013-02-18/waiters-2.json.php', + 'Aws\data\opsworks\2013-02-18\paginators-1.json' => __DIR__ . '/Aws/data/opsworks/2013-02-18/paginators-1.json.php', + 'Aws\data\cloudhsmv2\2017-04-28\api-2.json' => __DIR__ . '/Aws/data/cloudhsmv2/2017-04-28/api-2.json.php', + 'Aws\data\cloudhsmv2\2017-04-28\smoke.json' => __DIR__ . '/Aws/data/cloudhsmv2/2017-04-28/smoke.json.php', + 'Aws\data\cloudhsmv2\2017-04-28\paginators-1.json' => __DIR__ . '/Aws/data/cloudhsmv2/2017-04-28/paginators-1.json.php', + 'Aws\data\mediapackage\2017-10-12\api-2.json' => __DIR__ . '/Aws/data/mediapackage/2017-10-12/api-2.json.php', + 'Aws\data\mediapackage\2017-10-12\paginators-1.json' => __DIR__ . '/Aws/data/mediapackage/2017-10-12/paginators-1.json.php', + 'Aws\data\cognito-identity\2014-06-30\api-2.json' => __DIR__ . '/Aws/data/cognito-identity/2014-06-30/api-2.json.php', + 'Aws\data\cognito-identity\2014-06-30\paginators-1.json' => __DIR__ . '/Aws/data/cognito-identity/2014-06-30/paginators-1.json.php', + 'Aws\data\waf\2015-08-24\api-2.json' => __DIR__ . '/Aws/data/waf/2015-08-24/api-2.json.php', + 'Aws\data\waf\2015-08-24\smoke.json' => __DIR__ . '/Aws/data/waf/2015-08-24/smoke.json.php', + 'Aws\data\waf\2015-08-24\paginators-1.json' => __DIR__ . '/Aws/data/waf/2015-08-24/paginators-1.json.php', + 'Aws\data\mediatailor\2018-04-23\api-2.json' => __DIR__ . '/Aws/data/mediatailor/2018-04-23/api-2.json.php', + 'Aws\data\mediatailor\2018-04-23\paginators-1.json' => __DIR__ . '/Aws/data/mediatailor/2018-04-23/paginators-1.json.php', + 'Aws\data\appsync\2017-07-25\api-2.json' => __DIR__ . '/Aws/data/appsync/2017-07-25/api-2.json.php', + 'Aws\data\appsync\2017-07-25\paginators-1.json' => __DIR__ . '/Aws/data/appsync/2017-07-25/paginators-1.json.php', + 'Aws\data\cloudfront\2016-08-01\api-2.json' => __DIR__ . '/Aws/data/cloudfront/2016-08-01/api-2.json.php', + 'Aws\data\cloudfront\2016-08-01\waiters-2.json' => __DIR__ . '/Aws/data/cloudfront/2016-08-01/waiters-2.json.php', + 'Aws\data\cloudfront\2016-08-01\paginators-1.json' => __DIR__ . '/Aws/data/cloudfront/2016-08-01/paginators-1.json.php', + 'Aws\data\cloudfront\2015-07-27\api-2.json' => __DIR__ . '/Aws/data/cloudfront/2015-07-27/api-2.json.php', + 'Aws\data\cloudfront\2015-07-27\waiters-2.json' => __DIR__ . '/Aws/data/cloudfront/2015-07-27/waiters-2.json.php', + 'Aws\data\cloudfront\2015-07-27\paginators-1.json' => __DIR__ . '/Aws/data/cloudfront/2015-07-27/paginators-1.json.php', + 'Aws\data\cloudfront\2016-08-20\api-2.json' => __DIR__ . '/Aws/data/cloudfront/2016-08-20/api-2.json.php', + 'Aws\data\cloudfront\2016-08-20\waiters-2.json' => __DIR__ . '/Aws/data/cloudfront/2016-08-20/waiters-2.json.php', + 'Aws\data\cloudfront\2016-08-20\paginators-1.json' => __DIR__ . '/Aws/data/cloudfront/2016-08-20/paginators-1.json.php', + 'Aws\data\cloudfront\2018-06-18\api-2.json' => __DIR__ . '/Aws/data/cloudfront/2018-06-18/api-2.json.php', + 'Aws\data\cloudfront\2018-06-18\smoke.json' => __DIR__ . '/Aws/data/cloudfront/2018-06-18/smoke.json.php', + 'Aws\data\cloudfront\2018-06-18\waiters-2.json' => __DIR__ . '/Aws/data/cloudfront/2018-06-18/waiters-2.json.php', + 'Aws\data\cloudfront\2018-06-18\paginators-1.json' => __DIR__ . '/Aws/data/cloudfront/2018-06-18/paginators-1.json.php', + 'Aws\data\cloudfront\2018-06-18\waiters-1.json' => __DIR__ . '/Aws/data/cloudfront/2018-06-18/waiters-1.json.php', + 'Aws\data\cloudfront\2017-03-25\api-2.json' => __DIR__ . '/Aws/data/cloudfront/2017-03-25/api-2.json.php', + 'Aws\data\cloudfront\2017-03-25\waiters-2.json' => __DIR__ . '/Aws/data/cloudfront/2017-03-25/waiters-2.json.php', + 'Aws\data\cloudfront\2017-03-25\paginators-1.json' => __DIR__ . '/Aws/data/cloudfront/2017-03-25/paginators-1.json.php', + 'Aws\data\cloudfront\2017-03-25\waiters-1.json' => __DIR__ . '/Aws/data/cloudfront/2017-03-25/waiters-1.json.php', + 'Aws\data\cloudfront\2018-11-05\api-2.json' => __DIR__ . '/Aws/data/cloudfront/2018-11-05/api-2.json.php', + 'Aws\data\cloudfront\2018-11-05\smoke.json' => __DIR__ . '/Aws/data/cloudfront/2018-11-05/smoke.json.php', + 'Aws\data\cloudfront\2018-11-05\waiters-2.json' => __DIR__ . '/Aws/data/cloudfront/2018-11-05/waiters-2.json.php', + 'Aws\data\cloudfront\2018-11-05\paginators-1.json' => __DIR__ . '/Aws/data/cloudfront/2018-11-05/paginators-1.json.php', + 'Aws\data\cloudfront\2018-11-05\waiters-1.json' => __DIR__ . '/Aws/data/cloudfront/2018-11-05/waiters-1.json.php', + 'Aws\data\cloudfront\2017-10-30\api-2.json' => __DIR__ . '/Aws/data/cloudfront/2017-10-30/api-2.json.php', + 'Aws\data\cloudfront\2017-10-30\smoke.json' => __DIR__ . '/Aws/data/cloudfront/2017-10-30/smoke.json.php', + 'Aws\data\cloudfront\2017-10-30\waiters-2.json' => __DIR__ . '/Aws/data/cloudfront/2017-10-30/waiters-2.json.php', + 'Aws\data\cloudfront\2017-10-30\paginators-1.json' => __DIR__ . '/Aws/data/cloudfront/2017-10-30/paginators-1.json.php', + 'Aws\data\cloudfront\2017-10-30\waiters-1.json' => __DIR__ . '/Aws/data/cloudfront/2017-10-30/waiters-1.json.php', + 'Aws\data\cloudfront\2016-09-07\api-2.json' => __DIR__ . '/Aws/data/cloudfront/2016-09-07/api-2.json.php', + 'Aws\data\cloudfront\2016-09-07\waiters-2.json' => __DIR__ . '/Aws/data/cloudfront/2016-09-07/waiters-2.json.php', + 'Aws\data\cloudfront\2016-09-07\paginators-1.json' => __DIR__ . '/Aws/data/cloudfront/2016-09-07/paginators-1.json.php', + 'Aws\data\cloudfront\2016-09-07\waiters-1.json' => __DIR__ . '/Aws/data/cloudfront/2016-09-07/waiters-1.json.php', + 'Aws\data\cloudfront\2016-09-29\api-2.json' => __DIR__ . '/Aws/data/cloudfront/2016-09-29/api-2.json.php', + 'Aws\data\cloudfront\2016-09-29\waiters-2.json' => __DIR__ . '/Aws/data/cloudfront/2016-09-29/waiters-2.json.php', + 'Aws\data\cloudfront\2016-09-29\paginators-1.json' => __DIR__ . '/Aws/data/cloudfront/2016-09-29/paginators-1.json.php', + 'Aws\data\cloudfront\2016-09-29\waiters-1.json' => __DIR__ . '/Aws/data/cloudfront/2016-09-29/waiters-1.json.php', + 'Aws\data\cloudfront\2016-11-25\api-2.json' => __DIR__ . '/Aws/data/cloudfront/2016-11-25/api-2.json.php', + 'Aws\data\cloudfront\2016-11-25\waiters-2.json' => __DIR__ . '/Aws/data/cloudfront/2016-11-25/waiters-2.json.php', + 'Aws\data\cloudfront\2016-11-25\paginators-1.json' => __DIR__ . '/Aws/data/cloudfront/2016-11-25/paginators-1.json.php', + 'Aws\data\cloudfront\2016-11-25\waiters-1.json' => __DIR__ . '/Aws/data/cloudfront/2016-11-25/waiters-1.json.php', + 'Aws\data\cloudfront\2016-01-28\api-2.json' => __DIR__ . '/Aws/data/cloudfront/2016-01-28/api-2.json.php', + 'Aws\data\cloudfront\2016-01-28\waiters-2.json' => __DIR__ . '/Aws/data/cloudfront/2016-01-28/waiters-2.json.php', + 'Aws\data\cloudfront\2016-01-28\paginators-1.json' => __DIR__ . '/Aws/data/cloudfront/2016-01-28/paginators-1.json.php', + 'Aws\data\servicediscovery\2017-03-14\api-2.json' => __DIR__ . '/Aws/data/servicediscovery/2017-03-14/api-2.json.php', + 'Aws\data\servicediscovery\2017-03-14\paginators-1.json' => __DIR__ . '/Aws/data/servicediscovery/2017-03-14/paginators-1.json.php', + 'Aws\data\sms-voice\2018-09-05\api-2.json' => __DIR__ . '/Aws/data/sms-voice/2018-09-05/api-2.json.php', + 'Aws\data\config\2014-11-12\api-2.json' => __DIR__ . '/Aws/data/config/2014-11-12/api-2.json.php', + 'Aws\data\config\2014-11-12\smoke.json' => __DIR__ . '/Aws/data/config/2014-11-12/smoke.json.php', + 'Aws\data\config\2014-11-12\paginators-1.json' => __DIR__ . '/Aws/data/config/2014-11-12/paginators-1.json.php', + 'Aws\data\globalaccelerator\2018-08-08\api-2.json' => __DIR__ . '/Aws/data/globalaccelerator/2018-08-08/api-2.json.php', + 'Aws\data\globalaccelerator\2018-08-08\paginators-1.json' => __DIR__ . '/Aws/data/globalaccelerator/2018-08-08/paginators-1.json.php', + 'Aws\data\sqs\2012-11-05\api-2.json' => __DIR__ . '/Aws/data/sqs/2012-11-05/api-2.json.php', + 'Aws\data\sqs\2012-11-05\smoke.json' => __DIR__ . '/Aws/data/sqs/2012-11-05/smoke.json.php', + 'Aws\data\sqs\2012-11-05\waiters-2.json' => __DIR__ . '/Aws/data/sqs/2012-11-05/waiters-2.json.php', + 'Aws\data\sqs\2012-11-05\paginators-1.json' => __DIR__ . '/Aws/data/sqs/2012-11-05/paginators-1.json.php', + 'Aws\data\fms\2018-01-01\api-2.json' => __DIR__ . '/Aws/data/fms/2018-01-01/api-2.json.php', + 'Aws\data\fms\2018-01-01\paginators-1.json' => __DIR__ . '/Aws/data/fms/2018-01-01/paginators-1.json.php', + 'Aws\data\s3control\2018-08-20\api-2.json' => __DIR__ . '/Aws/data/s3control/2018-08-20/api-2.json.php', + 'Aws\data\s3control\2018-08-20\paginators-1.json' => __DIR__ . '/Aws/data/s3control/2018-08-20/paginators-1.json.php', + 'Aws\Route53Resolver\Route53ResolverClient' => __DIR__ . '/Aws/Route53Resolver/Route53ResolverClient.php', + 'Aws\Route53Resolver\Exception\Route53ResolverException' => __DIR__ . '/Aws/Route53Resolver/Exception/Route53ResolverException.php', + 'Aws\DeviceFarm\DeviceFarmClient' => __DIR__ . '/Aws/DeviceFarm/DeviceFarmClient.php', + 'Aws\DeviceFarm\Exception\DeviceFarmException' => __DIR__ . '/Aws/DeviceFarm/Exception/DeviceFarmException.php', + 'Aws\Api\Shape' => __DIR__ . '/Aws/Api/Shape.php', + 'Aws\Api\TimestampShape' => __DIR__ . '/Aws/Api/TimestampShape.php', + 'Aws\Api\ApiProvider' => __DIR__ . '/Aws/Api/ApiProvider.php', + 'Aws\Api\AbstractModel' => __DIR__ . '/Aws/Api/AbstractModel.php', + 'Aws\Api\Parser\PayloadParserTrait' => __DIR__ . '/Aws/Api/Parser/PayloadParserTrait.php', + 'Aws\Api\Parser\DecodingEventStreamIterator' => __DIR__ . '/Aws/Api/Parser/DecodingEventStreamIterator.php', + 'Aws\Api\Parser\JsonRpcParser' => __DIR__ . '/Aws/Api/Parser/JsonRpcParser.php', + 'Aws\Api\Parser\AbstractParser' => __DIR__ . '/Aws/Api/Parser/AbstractParser.php', + 'Aws\Api\Parser\RestJsonParser' => __DIR__ . '/Aws/Api/Parser/RestJsonParser.php', + 'Aws\Api\Parser\QueryParser' => __DIR__ . '/Aws/Api/Parser/QueryParser.php', + 'Aws\Api\Parser\XmlParser' => __DIR__ . '/Aws/Api/Parser/XmlParser.php', + 'Aws\Api\Parser\Exception\ParserException' => __DIR__ . '/Aws/Api/Parser/Exception/ParserException.php', + 'Aws\Api\Parser\AbstractRestParser' => __DIR__ . '/Aws/Api/Parser/AbstractRestParser.php', + 'Aws\Api\Parser\JsonParser' => __DIR__ . '/Aws/Api/Parser/JsonParser.php', + 'Aws\Api\Parser\EventParsingIterator' => __DIR__ . '/Aws/Api/Parser/EventParsingIterator.php', + 'Aws\Api\Parser\Crc32ValidatingParser' => __DIR__ . '/Aws/Api/Parser/Crc32ValidatingParser.php', + 'Aws\Api\Parser\RestXmlParser' => __DIR__ . '/Aws/Api/Parser/RestXmlParser.php', + 'Aws\Api\MapShape' => __DIR__ . '/Aws/Api/MapShape.php', + 'Aws\Api\Validator' => __DIR__ . '/Aws/Api/Validator.php', + 'Aws\Api\ShapeMap' => __DIR__ . '/Aws/Api/ShapeMap.php', + 'Aws\Api\DateTimeResult' => __DIR__ . '/Aws/Api/DateTimeResult.php', + 'Aws\Api\Serializer\RestSerializer' => __DIR__ . '/Aws/Api/Serializer/RestSerializer.php', + 'Aws\Api\Serializer\JsonBody' => __DIR__ . '/Aws/Api/Serializer/JsonBody.php', + 'Aws\Api\Serializer\QuerySerializer' => __DIR__ . '/Aws/Api/Serializer/QuerySerializer.php', + 'Aws\Api\Serializer\RestXmlSerializer' => __DIR__ . '/Aws/Api/Serializer/RestXmlSerializer.php', + 'Aws\Api\Serializer\JsonRpcSerializer' => __DIR__ . '/Aws/Api/Serializer/JsonRpcSerializer.php', + 'Aws\Api\Serializer\XmlBody' => __DIR__ . '/Aws/Api/Serializer/XmlBody.php', + 'Aws\Api\Serializer\QueryParamBuilder' => __DIR__ . '/Aws/Api/Serializer/QueryParamBuilder.php', + 'Aws\Api\Serializer\Ec2ParamBuilder' => __DIR__ . '/Aws/Api/Serializer/Ec2ParamBuilder.php', + 'Aws\Api\Serializer\RestJsonSerializer' => __DIR__ . '/Aws/Api/Serializer/RestJsonSerializer.php', + 'Aws\Api\Service' => __DIR__ . '/Aws/Api/Service.php', + 'Aws\Api\StructureShape' => __DIR__ . '/Aws/Api/StructureShape.php', + 'Aws\Api\Operation' => __DIR__ . '/Aws/Api/Operation.php', + 'Aws\Api\ErrorParser\XmlErrorParser' => __DIR__ . '/Aws/Api/ErrorParser/XmlErrorParser.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\ListShape' => __DIR__ . '/Aws/Api/ListShape.php', + 'Aws\Api\DocModel' => __DIR__ . '/Aws/Api/DocModel.php', + 'Aws\MediaConnect\Exception\MediaConnectException' => __DIR__ . '/Aws/MediaConnect/Exception/MediaConnectException.php', + 'Aws\MediaConnect\MediaConnectClient' => __DIR__ . '/Aws/MediaConnect/MediaConnectClient.php', + 'Aws\MediaStore\MediaStoreClient' => __DIR__ . '/Aws/MediaStore/MediaStoreClient.php', + 'Aws\MediaStore\Exception\MediaStoreException' => __DIR__ . '/Aws/MediaStore/Exception/MediaStoreException.php', + 'Aws\QuickSight\QuickSightClient' => __DIR__ . '/Aws/QuickSight/QuickSightClient.php', + 'Aws\QuickSight\Exception\QuickSightException' => __DIR__ . '/Aws/QuickSight/Exception/QuickSightException.php', + 'Aws\S3Control\S3ControlEndpointMiddleware' => __DIR__ . '/Aws/S3Control/S3ControlEndpointMiddleware.php', + 'Aws\S3Control\Exception\S3ControlException' => __DIR__ . '/Aws/S3Control/Exception/S3ControlException.php', + 'Aws\S3Control\S3ControlClient' => __DIR__ . '/Aws/S3Control/S3ControlClient.php', + 'Aws\AwsClientInterface' => __DIR__ . '/Aws/AwsClientInterface.php', + 'Aws\IoTJobsDataPlane\IoTJobsDataPlaneClient' => __DIR__ . '/Aws/IoTJobsDataPlane/IoTJobsDataPlaneClient.php', + 'Aws\IoTJobsDataPlane\Exception\IoTJobsDataPlaneException' => __DIR__ . '/Aws/IoTJobsDataPlane/Exception/IoTJobsDataPlaneException.php', + 'Aws\Sms\SmsClient' => __DIR__ . '/Aws/Sms/SmsClient.php', + 'Aws\Sms\Exception\SmsException' => __DIR__ . '/Aws/Sms/Exception/SmsException.php', + 'Aws\RetryMiddleware' => __DIR__ . '/Aws/RetryMiddleware.php', + 'Aws\ElasticLoadBalancingV2\Exception\ElasticLoadBalancingV2Exception' => __DIR__ . '/Aws/ElasticLoadBalancingV2/Exception/ElasticLoadBalancingV2Exception.php', + 'Aws\ElasticLoadBalancingV2\ElasticLoadBalancingV2Client' => __DIR__ . '/Aws/ElasticLoadBalancingV2/ElasticLoadBalancingV2Client.php', + 'Aws\CloudHSMV2\CloudHSMV2Client' => __DIR__ . '/Aws/CloudHSMV2/CloudHSMV2Client.php', + 'Aws\CloudHSMV2\Exception\CloudHSMV2Exception' => __DIR__ . '/Aws/CloudHSMV2/Exception/CloudHSMV2Exception.php', + 'Aws\DataPipeline\Exception\DataPipelineException' => __DIR__ . '/Aws/DataPipeline/Exception/DataPipelineException.php', + 'Aws\DataPipeline\DataPipelineClient' => __DIR__ . '/Aws/DataPipeline/DataPipelineClient.php', + 'Aws\ServiceCatalog\ServiceCatalogClient' => __DIR__ . '/Aws/ServiceCatalog/ServiceCatalogClient.php', + 'Aws\ServiceCatalog\Exception\ServiceCatalogException' => __DIR__ . '/Aws/ServiceCatalog/Exception/ServiceCatalogException.php', + 'Aws\ElasticTranscoder\ElasticTranscoderClient' => __DIR__ . '/Aws/ElasticTranscoder/ElasticTranscoderClient.php', + 'Aws\ElasticTranscoder\Exception\ElasticTranscoderException' => __DIR__ . '/Aws/ElasticTranscoder/Exception/ElasticTranscoderException.php', + 'Aws\Acm\Exception\AcmException' => __DIR__ . '/Aws/Acm/Exception/AcmException.php', + 'Aws\Acm\AcmClient' => __DIR__ . '/Aws/Acm/AcmClient.php', + 'Aws\MediaStoreData\MediaStoreDataClient' => __DIR__ . '/Aws/MediaStoreData/MediaStoreDataClient.php', + 'Aws\MediaStoreData\Exception\MediaStoreDataException' => __DIR__ . '/Aws/MediaStoreData/Exception/MediaStoreDataException.php', + 'Aws\Appstream\Exception\AppstreamException' => __DIR__ . '/Aws/Appstream/Exception/AppstreamException.php', + 'Aws\Appstream\AppstreamClient' => __DIR__ . '/Aws/Appstream/AppstreamClient.php', + 'Aws\Neptune\NeptuneClient' => __DIR__ . '/Aws/Neptune/NeptuneClient.php', + 'Aws\Neptune\Exception\NeptuneException' => __DIR__ . '/Aws/Neptune/Exception/NeptuneException.php', + 'Aws\PsrCacheAdapter' => __DIR__ . '/Aws/PsrCacheAdapter.php', + 'Aws\MediaConvert\MediaConvertClient' => __DIR__ . '/Aws/MediaConvert/MediaConvertClient.php', + 'Aws\MediaConvert\Exception\MediaConvertException' => __DIR__ . '/Aws/MediaConvert/Exception/MediaConvertException.php', + 'Aws\Chime\ChimeClient' => __DIR__ . '/Aws/Chime/ChimeClient.php', + 'Aws\Chime\Exception\ChimeException' => __DIR__ . '/Aws/Chime/Exception/ChimeException.php', + 'Aws\Ecr\EcrClient' => __DIR__ . '/Aws/Ecr/EcrClient.php', + 'Aws\Ecr\Exception\EcrException' => __DIR__ . '/Aws/Ecr/Exception/EcrException.php', + 'Aws\ApiGatewayV2\ApiGatewayV2Client' => __DIR__ . '/Aws/ApiGatewayV2/ApiGatewayV2Client.php', + 'Aws\ApiGatewayV2\Exception\ApiGatewayV2Exception' => __DIR__ . '/Aws/ApiGatewayV2/Exception/ApiGatewayV2Exception.php', + 'Aws\EndpointDiscovery\Configuration' => __DIR__ . '/Aws/EndpointDiscovery/Configuration.php', + 'Aws\EndpointDiscovery\Exception\ConfigurationException' => __DIR__ . '/Aws/EndpointDiscovery/Exception/ConfigurationException.php', + 'Aws\EndpointDiscovery\ConfigurationProvider' => __DIR__ . '/Aws/EndpointDiscovery/ConfigurationProvider.php', + 'Aws\EndpointDiscovery\EndpointDiscoveryMiddleware' => __DIR__ . '/Aws/EndpointDiscovery/EndpointDiscoveryMiddleware.php', + 'Aws\EndpointDiscovery\EndpointList' => __DIR__ . '/Aws/EndpointDiscovery/EndpointList.php', + 'Aws\EndpointDiscovery\ConfigurationInterface' => __DIR__ . '/Aws/EndpointDiscovery/ConfigurationInterface.php', + 'Aws\LruArrayCache' => __DIR__ . '/Aws/LruArrayCache.php', + 'Aws\MonitoringEventsInterface' => __DIR__ . '/Aws/MonitoringEventsInterface.php', + 'Aws\CloudSearchDomain\CloudSearchDomainClient' => __DIR__ . '/Aws/CloudSearchDomain/CloudSearchDomainClient.php', + 'Aws\CloudSearchDomain\Exception\CloudSearchDomainException' => __DIR__ . '/Aws/CloudSearchDomain/Exception/CloudSearchDomainException.php', + 'Aws\Redshift\Exception\RedshiftException' => __DIR__ . '/Aws/Redshift/Exception/RedshiftException.php', + 'Aws\Redshift\RedshiftClient' => __DIR__ . '/Aws/Redshift/RedshiftClient.php', + 'Aws\Handler\GuzzleV6\GuzzleHandler' => __DIR__ . '/Aws/Handler/GuzzleV6/GuzzleHandler.php', + 'Aws\Handler\GuzzleV5\PsrStream' => __DIR__ . '/Aws/Handler/GuzzleV5/PsrStream.php', + 'Aws\Handler\GuzzleV5\GuzzleHandler' => __DIR__ . '/Aws/Handler/GuzzleV5/GuzzleHandler.php', + 'Aws\Handler\GuzzleV5\GuzzleStream' => __DIR__ . '/Aws/Handler/GuzzleV5/GuzzleStream.php', + 'Aws\MigrationHub\Exception\MigrationHubException' => __DIR__ . '/Aws/MigrationHub/Exception/MigrationHubException.php', + 'Aws\MigrationHub\MigrationHubClient' => __DIR__ . '/Aws/MigrationHub/MigrationHubClient.php', + 'Aws\KinesisAnalyticsV2\KinesisAnalyticsV2Client' => __DIR__ . '/Aws/KinesisAnalyticsV2/KinesisAnalyticsV2Client.php', + 'Aws\KinesisAnalyticsV2\Exception\KinesisAnalyticsV2Exception' => __DIR__ . '/Aws/KinesisAnalyticsV2/Exception/KinesisAnalyticsV2Exception.php', + 'Aws\Health\HealthClient' => __DIR__ . '/Aws/Health/HealthClient.php', + 'Aws\Health\Exception\HealthException' => __DIR__ . '/Aws/Health/Exception/HealthException.php', + 'Aws\Budgets\BudgetsClient' => __DIR__ . '/Aws/Budgets/BudgetsClient.php', + 'Aws\Budgets\Exception\BudgetsException' => __DIR__ . '/Aws/Budgets/Exception/BudgetsException.php', + 'Aws\MarketplaceCommerceAnalytics\MarketplaceCommerceAnalyticsClient' => __DIR__ . '/Aws/MarketplaceCommerceAnalytics/MarketplaceCommerceAnalyticsClient.php', + 'Aws\MarketplaceCommerceAnalytics\Exception\MarketplaceCommerceAnalyticsException' => __DIR__ . '/Aws/MarketplaceCommerceAnalytics/Exception/MarketplaceCommerceAnalyticsException.php', + 'Aws\ElastiCache\ElastiCacheClient' => __DIR__ . '/Aws/ElastiCache/ElastiCacheClient.php', + 'Aws\ElastiCache\Exception\ElastiCacheException' => __DIR__ . '/Aws/ElastiCache/Exception/ElastiCacheException.php', + 'Aws\DataSync\DataSyncClient' => __DIR__ . '/Aws/DataSync/DataSyncClient.php', + 'Aws\DataSync\Exception\DataSyncException' => __DIR__ . '/Aws/DataSync/Exception/DataSyncException.php', + 'Aws\HashingStream' => __DIR__ . '/Aws/HashingStream.php', + 'Aws\AppSync\Exception\AppSyncException' => __DIR__ . '/Aws/AppSync/Exception/AppSyncException.php', + 'Aws\AppSync\AppSyncClient' => __DIR__ . '/Aws/AppSync/AppSyncClient.php', + 'Aws\Amplify\Exception\AmplifyException' => __DIR__ . '/Aws/Amplify/Exception/AmplifyException.php', + 'Aws\Amplify\AmplifyClient' => __DIR__ . '/Aws/Amplify/AmplifyClient.php', + 'Aws\CloudFormation\CloudFormationClient' => __DIR__ . '/Aws/CloudFormation/CloudFormationClient.php', + 'Aws\CloudFormation\Exception\CloudFormationException' => __DIR__ . '/Aws/CloudFormation/Exception/CloudFormationException.php', + 'Aws\Efs\EfsClient' => __DIR__ . '/Aws/Efs/EfsClient.php', + 'Aws\Efs\Exception\EfsException' => __DIR__ . '/Aws/Efs/Exception/EfsException.php', + 'Aws\TraceMiddleware' => __DIR__ . '/Aws/TraceMiddleware.php', + 'Aws\MarketplaceMetering\MarketplaceMeteringClient' => __DIR__ . '/Aws/MarketplaceMetering/MarketplaceMeteringClient.php', + 'Aws\MarketplaceMetering\Exception\MarketplaceMeteringException' => __DIR__ . '/Aws/MarketplaceMetering/Exception/MarketplaceMeteringException.php', + 'Aws\Comprehend\Exception\ComprehendException' => __DIR__ . '/Aws/Comprehend/Exception/ComprehendException.php', + 'Aws\Comprehend\ComprehendClient' => __DIR__ . '/Aws/Comprehend/ComprehendClient.php', + 'Aws\CloudWatch\Exception\CloudWatchException' => __DIR__ . '/Aws/CloudWatch/Exception/CloudWatchException.php', + 'Aws\CloudWatch\CloudWatchClient' => __DIR__ . '/Aws/CloudWatch/CloudWatchClient.php', + 'Aws\StorageGateway\Exception\StorageGatewayException' => __DIR__ . '/Aws/StorageGateway/Exception/StorageGatewayException.php', + 'Aws\StorageGateway\StorageGatewayClient' => __DIR__ . '/Aws/StorageGateway/StorageGatewayClient.php', + 'Aws\Emr\EmrClient' => __DIR__ . '/Aws/Emr/EmrClient.php', + 'Aws\Emr\Exception\EmrException' => __DIR__ . '/Aws/Emr/Exception/EmrException.php', + 'Aws\Sfn\Exception\SfnException' => __DIR__ . '/Aws/Sfn/Exception/SfnException.php', + 'Aws\Sfn\SfnClient' => __DIR__ . '/Aws/Sfn/SfnClient.php', + 'Aws\Middleware' => __DIR__ . '/Aws/Middleware.php', + 'Aws\RAM\RAMClient' => __DIR__ . '/Aws/RAM/RAMClient.php', + 'Aws\RAM\Exception\RAMException' => __DIR__ . '/Aws/RAM/Exception/RAMException.php', + 'Aws\Shield\ShieldClient' => __DIR__ . '/Aws/Shield/ShieldClient.php', + 'Aws\Shield\Exception\ShieldException' => __DIR__ . '/Aws/Shield/Exception/ShieldException.php', + 'Aws\GameLift\GameLiftClient' => __DIR__ . '/Aws/GameLift/GameLiftClient.php', + 'Aws\GameLift\Exception\GameLiftException' => __DIR__ . '/Aws/GameLift/Exception/GameLiftException.php', + 'Aws\PinpointEmail\PinpointEmailClient' => __DIR__ . '/Aws/PinpointEmail/PinpointEmailClient.php', + 'Aws\PinpointEmail\Exception\PinpointEmailException' => __DIR__ . '/Aws/PinpointEmail/Exception/PinpointEmailException.php', + 'Aws\Sdk' => __DIR__ . '/Aws/Sdk.php', + 'Aws\CodeDeploy\Exception\CodeDeployException' => __DIR__ . '/Aws/CodeDeploy/Exception/CodeDeployException.php', + 'Aws\CodeDeploy\CodeDeployClient' => __DIR__ . '/Aws/CodeDeploy/CodeDeployClient.php', + 'Aws\AwsClient' => __DIR__ . '/Aws/AwsClient.php', + 'Aws\FMS\Exception\FMSException' => __DIR__ . '/Aws/FMS/Exception/FMSException.php', + 'Aws\FMS\FMSClient' => __DIR__ . '/Aws/FMS/FMSClient.php', + 'Aws\SecurityHub\SecurityHubClient' => __DIR__ . '/Aws/SecurityHub/SecurityHubClient.php', + 'Aws\SecurityHub\Exception\SecurityHubException' => __DIR__ . '/Aws/SecurityHub/Exception/SecurityHubException.php', + 'Aws\Crypto\MaterialsProvider' => __DIR__ . '/Aws/Crypto/MaterialsProvider.php', + 'Aws\Crypto\AbstractCryptoClient' => __DIR__ . '/Aws/Crypto/AbstractCryptoClient.php', + 'Aws\Crypto\KmsMaterialsProvider' => __DIR__ . '/Aws/Crypto/KmsMaterialsProvider.php', + 'Aws\Crypto\AesStreamInterface' => __DIR__ . '/Aws/Crypto/AesStreamInterface.php', + 'Aws\Crypto\Cipher\Cbc' => __DIR__ . '/Aws/Crypto/Cipher/Cbc.php', + 'Aws\Crypto\Cipher\CipherBuilderTrait' => __DIR__ . '/Aws/Crypto/Cipher/CipherBuilderTrait.php', + 'Aws\Crypto\Cipher\CipherMethod' => __DIR__ . '/Aws/Crypto/Cipher/CipherMethod.php', + 'Aws\Crypto\DecryptionTrait' => __DIR__ . '/Aws/Crypto/DecryptionTrait.php', + 'Aws\Crypto\AesEncryptingStream' => __DIR__ . '/Aws/Crypto/AesEncryptingStream.php', + 'Aws\Crypto\MetadataStrategyInterface' => __DIR__ . '/Aws/Crypto/MetadataStrategyInterface.php', + 'Aws\Crypto\MetadataEnvelope' => __DIR__ . '/Aws/Crypto/MetadataEnvelope.php', + 'Aws\Crypto\AesGcmEncryptingStream' => __DIR__ . '/Aws/Crypto/AesGcmEncryptingStream.php', + 'Aws\Crypto\AesGcmDecryptingStream' => __DIR__ . '/Aws/Crypto/AesGcmDecryptingStream.php', + 'Aws\Crypto\AesDecryptingStream' => __DIR__ . '/Aws/Crypto/AesDecryptingStream.php', + 'Aws\Crypto\EncryptionTrait' => __DIR__ . '/Aws/Crypto/EncryptionTrait.php', + 'Aws\ResultPaginator' => __DIR__ . '/Aws/ResultPaginator.php', + 'Aws\ClientResolver' => __DIR__ . '/Aws/ClientResolver.php', + 'Aws\CommandPool' => __DIR__ . '/Aws/CommandPool.php', + 'Aws\DatabaseMigrationService\DatabaseMigrationServiceClient' => __DIR__ . '/Aws/DatabaseMigrationService/DatabaseMigrationServiceClient.php', + 'Aws\DatabaseMigrationService\Exception\DatabaseMigrationServiceException' => __DIR__ . '/Aws/DatabaseMigrationService/Exception/DatabaseMigrationServiceException.php', + 'Aws\S3\ApplyChecksumMiddleware' => __DIR__ . '/Aws/S3/ApplyChecksumMiddleware.php', + 'Aws\S3\MultipartUploader' => __DIR__ . '/Aws/S3/MultipartUploader.php', + 'Aws\S3\SSECMiddleware' => __DIR__ . '/Aws/S3/SSECMiddleware.php', + 'Aws\S3\RetryableMalformedResponseParser' => __DIR__ . '/Aws/S3/RetryableMalformedResponseParser.php', + 'Aws\S3\S3ClientTrait' => __DIR__ . '/Aws/S3/S3ClientTrait.php', + 'Aws\S3\PostObjectV4' => __DIR__ . '/Aws/S3/PostObjectV4.php', + 'Aws\S3\MultipartUploadingTrait' => __DIR__ . '/Aws/S3/MultipartUploadingTrait.php', + 'Aws\S3\GetBucketLocationParser' => __DIR__ . '/Aws/S3/GetBucketLocationParser.php', + 'Aws\S3\S3Client' => __DIR__ . '/Aws/S3/S3Client.php', + 'Aws\S3\ObjectCopier' => __DIR__ . '/Aws/S3/ObjectCopier.php', + 'Aws\S3\Crypto\S3EncryptionClient' => __DIR__ . '/Aws/S3/Crypto/S3EncryptionClient.php', + 'Aws\S3\Crypto\S3EncryptionMultipartUploader' => __DIR__ . '/Aws/S3/Crypto/S3EncryptionMultipartUploader.php', + 'Aws\S3\Crypto\CryptoParamsTrait' => __DIR__ . '/Aws/S3/Crypto/CryptoParamsTrait.php', + 'Aws\S3\Crypto\InstructionFileMetadataStrategy' => __DIR__ . '/Aws/S3/Crypto/InstructionFileMetadataStrategy.php', + 'Aws\S3\Crypto\HeadersMetadataStrategy' => __DIR__ . '/Aws/S3/Crypto/HeadersMetadataStrategy.php', + 'Aws\S3\ObjectUploader' => __DIR__ . '/Aws/S3/ObjectUploader.php', + 'Aws\S3\PermanentRedirectMiddleware' => __DIR__ . '/Aws/S3/PermanentRedirectMiddleware.php', + 'Aws\S3\StreamWrapper' => __DIR__ . '/Aws/S3/StreamWrapper.php', + 'Aws\S3\BatchDelete' => __DIR__ . '/Aws/S3/BatchDelete.php', + 'Aws\S3\S3EndpointMiddleware' => __DIR__ . '/Aws/S3/S3EndpointMiddleware.php', + 'Aws\S3\S3ClientInterface' => __DIR__ . '/Aws/S3/S3ClientInterface.php', + 'Aws\S3\Exception\PermanentRedirectException' => __DIR__ . '/Aws/S3/Exception/PermanentRedirectException.php', + 'Aws\S3\Exception\DeleteMultipleObjectsException' => __DIR__ . '/Aws/S3/Exception/DeleteMultipleObjectsException.php', + 'Aws\S3\Exception\S3Exception' => __DIR__ . '/Aws/S3/Exception/S3Exception.php', + 'Aws\S3\Exception\S3MultipartUploadException' => __DIR__ . '/Aws/S3/Exception/S3MultipartUploadException.php', + 'Aws\S3\MultipartCopy' => __DIR__ . '/Aws/S3/MultipartCopy.php', + 'Aws\S3\S3MultiRegionClient' => __DIR__ . '/Aws/S3/S3MultiRegionClient.php', + 'Aws\S3\AmbiguousSuccessParser' => __DIR__ . '/Aws/S3/AmbiguousSuccessParser.php', + 'Aws\S3\BucketEndpointMiddleware' => __DIR__ . '/Aws/S3/BucketEndpointMiddleware.php', + 'Aws\S3\S3UriParser' => __DIR__ . '/Aws/S3/S3UriParser.php', + 'Aws\S3\PutObjectUrlMiddleware' => __DIR__ . '/Aws/S3/PutObjectUrlMiddleware.php', + 'Aws\S3\PostObject' => __DIR__ . '/Aws/S3/PostObject.php', + 'Aws\S3\Transfer' => __DIR__ . '/Aws/S3/Transfer.php', + 'Aws\XRay\Exception\XRayException' => __DIR__ . '/Aws/XRay/Exception/XRayException.php', + 'Aws\XRay\XRayClient' => __DIR__ . '/Aws/XRay/XRayClient.php', + 'Aws\ResourceGroupsTaggingAPI\Exception\ResourceGroupsTaggingAPIException' => __DIR__ . '/Aws/ResourceGroupsTaggingAPI/Exception/ResourceGroupsTaggingAPIException.php', + 'Aws\ResourceGroupsTaggingAPI\ResourceGroupsTaggingAPIClient' => __DIR__ . '/Aws/ResourceGroupsTaggingAPI/ResourceGroupsTaggingAPIClient.php', + 'Aws\ConfigService\ConfigServiceClient' => __DIR__ . '/Aws/ConfigService/ConfigServiceClient.php', + 'Aws\ConfigService\Exception\ConfigServiceException' => __DIR__ . '/Aws/ConfigService/Exception/ConfigServiceException.php', + 'Aws\MediaTailor\MediaTailorClient' => __DIR__ . '/Aws/MediaTailor/MediaTailorClient.php', + 'Aws\MediaTailor\Exception\MediaTailorException' => __DIR__ . '/Aws/MediaTailor/Exception/MediaTailorException.php', + 'Aws\CloudHsm\Exception\CloudHsmException' => __DIR__ . '/Aws/CloudHsm/Exception/CloudHsmException.php', + 'Aws\CloudHsm\CloudHsmClient' => __DIR__ . '/Aws/CloudHsm/CloudHsmClient.php', + 'Aws\ElasticLoadBalancing\ElasticLoadBalancingClient' => __DIR__ . '/Aws/ElasticLoadBalancing/ElasticLoadBalancingClient.php', + 'Aws\ElasticLoadBalancing\Exception\ElasticLoadBalancingException' => __DIR__ . '/Aws/ElasticLoadBalancing/Exception/ElasticLoadBalancingException.php', + 'Aws\SageMakerRuntime\SageMakerRuntimeClient' => __DIR__ . '/Aws/SageMakerRuntime/SageMakerRuntimeClient.php', + 'Aws\SageMakerRuntime\Exception\SageMakerRuntimeException' => __DIR__ . '/Aws/SageMakerRuntime/Exception/SageMakerRuntimeException.php', + 'Aws\Macie\Exception\MacieException' => __DIR__ . '/Aws/Macie/Exception/MacieException.php', + 'Aws\Macie\MacieClient' => __DIR__ . '/Aws/Macie/MacieClient.php', + 'Aws\CognitoIdentity\Exception\CognitoIdentityException' => __DIR__ . '/Aws/CognitoIdentity/Exception/CognitoIdentityException.php', + 'Aws\CognitoIdentity\CognitoIdentityProvider' => __DIR__ . '/Aws/CognitoIdentity/CognitoIdentityProvider.php', + 'Aws\CognitoIdentity\CognitoIdentityClient' => __DIR__ . '/Aws/CognitoIdentity/CognitoIdentityClient.php', + 'Aws\PhpHash' => __DIR__ . '/Aws/PhpHash.php', + 'Aws\MQ\MQClient' => __DIR__ . '/Aws/MQ/MQClient.php', + 'Aws\MQ\Exception\MQException' => __DIR__ . '/Aws/MQ/Exception/MQException.php', + 'Aws\Greengrass\GreengrassClient' => __DIR__ . '/Aws/Greengrass/GreengrassClient.php', + 'Aws\Greengrass\Exception\GreengrassException' => __DIR__ . '/Aws/Greengrass/Exception/GreengrassException.php', + 'Aws\KinesisVideoArchivedMedia\KinesisVideoArchivedMediaClient' => __DIR__ . '/Aws/KinesisVideoArchivedMedia/KinesisVideoArchivedMediaClient.php', + 'Aws\KinesisVideoArchivedMedia\Exception\KinesisVideoArchivedMediaException' => __DIR__ . '/Aws/KinesisVideoArchivedMedia/Exception/KinesisVideoArchivedMediaException.php', + 'Aws\CostExplorer\Exception\CostExplorerException' => __DIR__ . '/Aws/CostExplorer/Exception/CostExplorerException.php', + 'Aws\CostExplorer\CostExplorerClient' => __DIR__ . '/Aws/CostExplorer/CostExplorerClient.php', + 'Aws\Rds\Exception\RdsException' => __DIR__ . '/Aws/Rds/Exception/RdsException.php', + 'Aws\Rds\AuthTokenGenerator' => __DIR__ . '/Aws/Rds/AuthTokenGenerator.php', + 'Aws\Rds\RdsClient' => __DIR__ . '/Aws/Rds/RdsClient.php', + 'Aws\AutoScalingPlans\Exception\AutoScalingPlansException' => __DIR__ . '/Aws/AutoScalingPlans/Exception/AutoScalingPlansException.php', + 'Aws\AutoScalingPlans\AutoScalingPlansClient' => __DIR__ . '/Aws/AutoScalingPlans/AutoScalingPlansClient.php', + 'Aws\CloudWatchEvents\CloudWatchEventsClient' => __DIR__ . '/Aws/CloudWatchEvents/CloudWatchEventsClient.php', + 'Aws\CloudWatchEvents\Exception\CloudWatchEventsException' => __DIR__ . '/Aws/CloudWatchEvents/Exception/CloudWatchEventsException.php', + 'Aws\functions' => __DIR__ . '/Aws/functions.php', + 'Aws\Ssm\SsmClient' => __DIR__ . '/Aws/Ssm/SsmClient.php', + 'Aws\Ssm\Exception\SsmException' => __DIR__ . '/Aws/Ssm/Exception/SsmException.php', + 'Aws\DocDB\DocDBClient' => __DIR__ . '/Aws/DocDB/DocDBClient.php', + 'Aws\DocDB\Exception\DocDBException' => __DIR__ . '/Aws/DocDB/Exception/DocDBException.php', + 'Aws\ApiGateway\Exception\ApiGatewayException' => __DIR__ . '/Aws/ApiGateway/Exception/ApiGatewayException.php', + 'Aws\ApiGateway\ApiGatewayClient' => __DIR__ . '/Aws/ApiGateway/ApiGatewayClient.php', + 'Aws\CloudWatchLogs\CloudWatchLogsClient' => __DIR__ . '/Aws/CloudWatchLogs/CloudWatchLogsClient.php', + 'Aws\CloudWatchLogs\Exception\CloudWatchLogsException' => __DIR__ . '/Aws/CloudWatchLogs/Exception/CloudWatchLogsException.php', + 'Aws\DynamoDbStreams\DynamoDbStreamsClient' => __DIR__ . '/Aws/DynamoDbStreams/DynamoDbStreamsClient.php', + 'Aws\DynamoDbStreams\Exception\DynamoDbStreamsException' => __DIR__ . '/Aws/DynamoDbStreams/Exception/DynamoDbStreamsException.php', + 'Aws\AlexaForBusiness\AlexaForBusinessClient' => __DIR__ . '/Aws/AlexaForBusiness/AlexaForBusinessClient.php', + 'Aws\AlexaForBusiness\Exception\AlexaForBusinessException' => __DIR__ . '/Aws/AlexaForBusiness/Exception/AlexaForBusinessException.php', + 'Aws\MediaLive\MediaLiveClient' => __DIR__ . '/Aws/MediaLive/MediaLiveClient.php', + 'Aws\MediaLive\Exception\MediaLiveException' => __DIR__ . '/Aws/MediaLive/Exception/MediaLiveException.php', + 'Aws\AwsClientTrait' => __DIR__ . '/Aws/AwsClientTrait.php', + 'Aws\Credentials\CredentialsInterface' => __DIR__ . '/Aws/Credentials/CredentialsInterface.php', + 'Aws\Credentials\CredentialProvider' => __DIR__ . '/Aws/Credentials/CredentialProvider.php', + 'Aws\Credentials\InstanceProfileProvider' => __DIR__ . '/Aws/Credentials/InstanceProfileProvider.php', + 'Aws\Credentials\AssumeRoleCredentialProvider' => __DIR__ . '/Aws/Credentials/AssumeRoleCredentialProvider.php', + 'Aws\Credentials\EcsCredentialProvider' => __DIR__ . '/Aws/Credentials/EcsCredentialProvider.php', + 'Aws\Credentials\Credentials' => __DIR__ . '/Aws/Credentials/Credentials.php', + 'Aws\HasDataTrait' => __DIR__ . '/Aws/HasDataTrait.php', + 'Aws\Iam\Exception\IamException' => __DIR__ . '/Aws/Iam/Exception/IamException.php', + 'Aws\Iam\IamClient' => __DIR__ . '/Aws/Iam/IamClient.php', + 'Aws\Command' => __DIR__ . '/Aws/Command.php', + 'Aws\Backup\Exception\BackupException' => __DIR__ . '/Aws/Backup/Exception/BackupException.php', + 'Aws\Backup\BackupClient' => __DIR__ . '/Aws/Backup/BackupClient.php', + 'Aws\IotDataPlane\IotDataPlaneClient' => __DIR__ . '/Aws/IotDataPlane/IotDataPlaneClient.php', + 'Aws\IotDataPlane\Exception\IotDataPlaneException' => __DIR__ . '/Aws/IotDataPlane/Exception/IotDataPlaneException.php', + 'Aws\CostandUsageReportService\CostandUsageReportServiceClient' => __DIR__ . '/Aws/CostandUsageReportService/CostandUsageReportServiceClient.php', + 'Aws\CostandUsageReportService\Exception\CostandUsageReportServiceException' => __DIR__ . '/Aws/CostandUsageReportService/Exception/CostandUsageReportServiceException.php', + 'Aws\DAX\DAXClient' => __DIR__ . '/Aws/DAX/DAXClient.php', + 'Aws\DAX\Exception\DAXException' => __DIR__ . '/Aws/DAX/Exception/DAXException.php', + 'Aws\Kms\KmsClient' => __DIR__ . '/Aws/Kms/KmsClient.php', + 'Aws\Kms\Exception\KmsException' => __DIR__ . '/Aws/Kms/Exception/KmsException.php', + 'Aws\WafRegional\WafRegionalClient' => __DIR__ . '/Aws/WafRegional/WafRegionalClient.php', + 'Aws\WafRegional\Exception\WafRegionalException' => __DIR__ . '/Aws/WafRegional/Exception/WafRegionalException.php', + 'Aws\DynamoDb\DynamoDbClient' => __DIR__ . '/Aws/DynamoDb/DynamoDbClient.php', + 'Aws\DynamoDb\StandardSessionConnection' => __DIR__ . '/Aws/DynamoDb/StandardSessionConnection.php', + 'Aws\DynamoDb\BinaryValue' => __DIR__ . '/Aws/DynamoDb/BinaryValue.php', + 'Aws\DynamoDb\SessionConnectionInterface' => __DIR__ . '/Aws/DynamoDb/SessionConnectionInterface.php', + 'Aws\DynamoDb\Exception\DynamoDbException' => __DIR__ . '/Aws/DynamoDb/Exception/DynamoDbException.php', + 'Aws\DynamoDb\LockingSessionConnection' => __DIR__ . '/Aws/DynamoDb/LockingSessionConnection.php', + 'Aws\DynamoDb\Marshaler' => __DIR__ . '/Aws/DynamoDb/Marshaler.php', + 'Aws\DynamoDb\WriteRequestBatch' => __DIR__ . '/Aws/DynamoDb/WriteRequestBatch.php', + 'Aws\DynamoDb\SessionHandler' => __DIR__ . '/Aws/DynamoDb/SessionHandler.php', + 'Aws\DynamoDb\SetValue' => __DIR__ . '/Aws/DynamoDb/SetValue.php', + 'Aws\DynamoDb\NumberValue' => __DIR__ . '/Aws/DynamoDb/NumberValue.php', + 'Aws\Iot\Exception\IotException' => __DIR__ . '/Aws/Iot/Exception/IotException.php', + 'Aws\Iot\IotClient' => __DIR__ . '/Aws/Iot/IotClient.php', + 'Aws\Batch\BatchClient' => __DIR__ . '/Aws/Batch/BatchClient.php', + 'Aws\Batch\Exception\BatchException' => __DIR__ . '/Aws/Batch/Exception/BatchException.php', + 'Aws\EKS\EKSClient' => __DIR__ . '/Aws/EKS/EKSClient.php', + 'Aws\EKS\Exception\EKSException' => __DIR__ . '/Aws/EKS/Exception/EKSException.php', + 'Aws\Glue\GlueClient' => __DIR__ . '/Aws/Glue/GlueClient.php', + 'Aws\Glue\Exception\GlueException' => __DIR__ . '/Aws/Glue/Exception/GlueException.php', + 'Aws\PinpointSMSVoice\PinpointSMSVoiceClient' => __DIR__ . '/Aws/PinpointSMSVoice/PinpointSMSVoiceClient.php', + 'Aws\PinpointSMSVoice\Exception\PinpointSMSVoiceException' => __DIR__ . '/Aws/PinpointSMSVoice/Exception/PinpointSMSVoiceException.php', + 'Aws\CommandInterface' => __DIR__ . '/Aws/CommandInterface.php', + 'Aws\MediaPackage\MediaPackageClient' => __DIR__ . '/Aws/MediaPackage/MediaPackageClient.php', + 'Aws\MediaPackage\Exception\MediaPackageException' => __DIR__ . '/Aws/MediaPackage/Exception/MediaPackageException.php', + 'Aws\CacheInterface' => __DIR__ . '/Aws/CacheInterface.php', + 'Aws\HasMonitoringEventsTrait' => __DIR__ . '/Aws/HasMonitoringEventsTrait.php', + 'Aws\Connect\ConnectClient' => __DIR__ . '/Aws/Connect/ConnectClient.php', + 'Aws\Connect\Exception\ConnectException' => __DIR__ . '/Aws/Connect/Exception/ConnectException.php', + 'Aws\Firehose\FirehoseClient' => __DIR__ . '/Aws/Firehose/FirehoseClient.php', + 'Aws\Firehose\Exception\FirehoseException' => __DIR__ . '/Aws/Firehose/Exception/FirehoseException.php', + 'Aws\ServerlessApplicationRepository\ServerlessApplicationRepositoryClient' => __DIR__ . '/Aws/ServerlessApplicationRepository/ServerlessApplicationRepositoryClient.php', + 'Aws\ServerlessApplicationRepository\Exception\ServerlessApplicationRepositoryException' => __DIR__ . '/Aws/ServerlessApplicationRepository/Exception/ServerlessApplicationRepositoryException.php', + 'Aws\IoT1ClickDevicesService\Exception\IoT1ClickDevicesServiceException' => __DIR__ . '/Aws/IoT1ClickDevicesService/Exception/IoT1ClickDevicesServiceException.php', + 'Aws\IoT1ClickDevicesService\IoT1ClickDevicesServiceClient' => __DIR__ . '/Aws/IoT1ClickDevicesService/IoT1ClickDevicesServiceClient.php', + 'Aws\Kinesis\Exception\KinesisException' => __DIR__ . '/Aws/Kinesis/Exception/KinesisException.php', + 'Aws\Kinesis\KinesisClient' => __DIR__ . '/Aws/Kinesis/KinesisClient.php', + 'Aws\ResourceGroups\ResourceGroupsClient' => __DIR__ . '/Aws/ResourceGroups/ResourceGroupsClient.php', + 'Aws\ResourceGroups\Exception\ResourceGroupsException' => __DIR__ . '/Aws/ResourceGroups/Exception/ResourceGroupsException.php', + 'Aws\LicenseManager\LicenseManagerClient' => __DIR__ . '/Aws/LicenseManager/LicenseManagerClient.php', + 'Aws\LicenseManager\Exception\LicenseManagerException' => __DIR__ . '/Aws/LicenseManager/Exception/LicenseManagerException.php', + 'Aws\CloudSearch\CloudSearchClient' => __DIR__ . '/Aws/CloudSearch/CloudSearchClient.php', + 'Aws\CloudSearch\Exception\CloudSearchException' => __DIR__ . '/Aws/CloudSearch/Exception/CloudSearchException.php', + 'Aws\Mobile\MobileClient' => __DIR__ . '/Aws/Mobile/MobileClient.php', + 'Aws\Mobile\Exception\MobileException' => __DIR__ . '/Aws/Mobile/Exception/MobileException.php', + 'Aws\Endpoint\EndpointProvider' => __DIR__ . '/Aws/Endpoint/EndpointProvider.php', + 'Aws\Endpoint\Partition' => __DIR__ . '/Aws/Endpoint/Partition.php', + 'Aws\Endpoint\PartitionInterface' => __DIR__ . '/Aws/Endpoint/PartitionInterface.php', + 'Aws\Endpoint\PartitionEndpointProvider' => __DIR__ . '/Aws/Endpoint/PartitionEndpointProvider.php', + 'Aws\Endpoint\PatternEndpointProvider' => __DIR__ . '/Aws/Endpoint/PatternEndpointProvider.php', + 'Aws\MTurk\MTurkClient' => __DIR__ . '/Aws/MTurk/MTurkClient.php', + 'Aws\MTurk\Exception\MTurkException' => __DIR__ . '/Aws/MTurk/Exception/MTurkException.php', + 'Aws\KinesisVideo\KinesisVideoClient' => __DIR__ . '/Aws/KinesisVideo/KinesisVideoClient.php', + 'Aws\KinesisVideo\Exception\KinesisVideoException' => __DIR__ . '/Aws/KinesisVideo/Exception/KinesisVideoException.php', + 'Aws\Sqs\Exception\SqsException' => __DIR__ . '/Aws/Sqs/Exception/SqsException.php', + 'Aws\Sqs\SqsClient' => __DIR__ . '/Aws/Sqs/SqsClient.php', + 'Aws\Waf\WafClient' => __DIR__ . '/Aws/Waf/WafClient.php', + 'Aws\Waf\Exception\WafException' => __DIR__ . '/Aws/Waf/Exception/WafException.php', + 'Aws\Ecs\EcsClient' => __DIR__ . '/Aws/Ecs/EcsClient.php', + 'Aws\Ecs\Exception\EcsException' => __DIR__ . '/Aws/Ecs/Exception/EcsException.php', + 'Aws\signer\signerClient' => __DIR__ . '/Aws/signer/signerClient.php', + 'Aws\signer\Exception\signerException' => __DIR__ . '/Aws/signer/Exception/signerException.php', + 'Aws\ApplicationAutoScaling\ApplicationAutoScalingClient' => __DIR__ . '/Aws/ApplicationAutoScaling/ApplicationAutoScalingClient.php', + 'Aws\ApplicationAutoScaling\Exception\ApplicationAutoScalingException' => __DIR__ . '/Aws/ApplicationAutoScaling/Exception/ApplicationAutoScalingException.php', + 'Aws\Cloud9\Exception\Cloud9Exception' => __DIR__ . '/Aws/Cloud9/Exception/Cloud9Exception.php', + 'Aws\Cloud9\Cloud9Client' => __DIR__ . '/Aws/Cloud9/Cloud9Client.php', + 'Aws\ImportExport\Exception\ImportExportException' => __DIR__ . '/Aws/ImportExport/Exception/ImportExportException.php', + 'Aws\ImportExport\ImportExportClient' => __DIR__ . '/Aws/ImportExport/ImportExportClient.php', + 'Aws\Rekognition\RekognitionClient' => __DIR__ . '/Aws/Rekognition/RekognitionClient.php', + 'Aws\Rekognition\Exception\RekognitionException' => __DIR__ . '/Aws/Rekognition/Exception/RekognitionException.php', + 'Aws\RDSDataService\Exception\RDSDataServiceException' => __DIR__ . '/Aws/RDSDataService/Exception/RDSDataServiceException.php', + 'Aws\RDSDataService\RDSDataServiceClient' => __DIR__ . '/Aws/RDSDataService/RDSDataServiceClient.php', + 'Aws\CodeCommit\CodeCommitClient' => __DIR__ . '/Aws/CodeCommit/CodeCommitClient.php', + 'Aws\CodeCommit\Exception\CodeCommitException' => __DIR__ . '/Aws/CodeCommit/Exception/CodeCommitException.php', + 'Aws\Inspector\Exception\InspectorException' => __DIR__ . '/Aws/Inspector/Exception/InspectorException.php', + 'Aws\Inspector\InspectorClient' => __DIR__ . '/Aws/Inspector/InspectorClient.php', + 'Aws\LexModelBuildingService\Exception\LexModelBuildingServiceException' => __DIR__ . '/Aws/LexModelBuildingService/Exception/LexModelBuildingServiceException.php', + 'Aws\LexModelBuildingService\LexModelBuildingServiceClient' => __DIR__ . '/Aws/LexModelBuildingService/LexModelBuildingServiceClient.php', + 'Aws\AppMesh\AppMeshClient' => __DIR__ . '/Aws/AppMesh/AppMeshClient.php', + 'Aws\AppMesh\Exception\AppMeshException' => __DIR__ . '/Aws/AppMesh/Exception/AppMeshException.php', + 'Aws\ResponseContainerInterface' => __DIR__ . '/Aws/ResponseContainerInterface.php', + 'Aws\Exception\UnresolvedEndpointException' => __DIR__ . '/Aws/Exception/UnresolvedEndpointException.php', + 'Aws\Exception\CredentialsException' => __DIR__ . '/Aws/Exception/CredentialsException.php', + 'Aws\Exception\UnresolvedSignatureException' => __DIR__ . '/Aws/Exception/UnresolvedSignatureException.php', + 'Aws\Exception\AwsException' => __DIR__ . '/Aws/Exception/AwsException.php', + 'Aws\Exception\MultipartUploadException' => __DIR__ . '/Aws/Exception/MultipartUploadException.php', + 'Aws\Exception\CouldNotCreateChecksumException' => __DIR__ . '/Aws/Exception/CouldNotCreateChecksumException.php', + 'Aws\Exception\UnresolvedApiException' => __DIR__ . '/Aws/Exception/UnresolvedApiException.php', + 'Aws\Exception\EventStreamDataException' => __DIR__ . '/Aws/Exception/EventStreamDataException.php', + 'Aws\WorkSpaces\WorkSpacesClient' => __DIR__ . '/Aws/WorkSpaces/WorkSpacesClient.php', + 'Aws\WorkSpaces\Exception\WorkSpacesException' => __DIR__ . '/Aws/WorkSpaces/Exception/WorkSpacesException.php', + 'Aws\ResultInterface' => __DIR__ . '/Aws/ResultInterface.php', + 'Aws\Translate\TranslateClient' => __DIR__ . '/Aws/Translate/TranslateClient.php', + 'Aws\Translate\Exception\TranslateException' => __DIR__ . '/Aws/Translate/Exception/TranslateException.php', + 'Aws\CodeBuild\Exception\CodeBuildException' => __DIR__ . '/Aws/CodeBuild/Exception/CodeBuildException.php', + 'Aws\CodeBuild\CodeBuildClient' => __DIR__ . '/Aws/CodeBuild/CodeBuildClient.php', + 'Aws\Signature\SignatureProvider' => __DIR__ . '/Aws/Signature/SignatureProvider.php', + 'Aws\Signature\SignatureInterface' => __DIR__ . '/Aws/Signature/SignatureInterface.php', + 'Aws\Signature\S3SignatureV4' => __DIR__ . '/Aws/Signature/S3SignatureV4.php', + 'Aws\Signature\SignatureV4' => __DIR__ . '/Aws/Signature/SignatureV4.php', + 'Aws\Signature\AnonymousSignature' => __DIR__ . '/Aws/Signature/AnonymousSignature.php', + 'Aws\Signature\SignatureTrait' => __DIR__ . '/Aws/Signature/SignatureTrait.php', + 'Aws\HashInterface' => __DIR__ . '/Aws/HashInterface.php', + 'Aws\SecretsManager\SecretsManagerClient' => __DIR__ . '/Aws/SecretsManager/SecretsManagerClient.php', + 'Aws\SecretsManager\Exception\SecretsManagerException' => __DIR__ . '/Aws/SecretsManager/Exception/SecretsManagerException.php', + 'Aws\ClientSideMonitoring\ApiCallMonitoringMiddleware' => __DIR__ . '/Aws/ClientSideMonitoring/ApiCallMonitoringMiddleware.php', + 'Aws\ClientSideMonitoring\ApiCallAttemptMonitoringMiddleware' => __DIR__ . '/Aws/ClientSideMonitoring/ApiCallAttemptMonitoringMiddleware.php', + 'Aws\ClientSideMonitoring\Configuration' => __DIR__ . '/Aws/ClientSideMonitoring/Configuration.php', + 'Aws\ClientSideMonitoring\Exception\ConfigurationException' => __DIR__ . '/Aws/ClientSideMonitoring/Exception/ConfigurationException.php', + 'Aws\ClientSideMonitoring\MonitoringMiddlewareInterface' => __DIR__ . '/Aws/ClientSideMonitoring/MonitoringMiddlewareInterface.php', + 'Aws\ClientSideMonitoring\AbstractMonitoringMiddleware' => __DIR__ . '/Aws/ClientSideMonitoring/AbstractMonitoringMiddleware.php', + 'Aws\ClientSideMonitoring\ConfigurationProvider' => __DIR__ . '/Aws/ClientSideMonitoring/ConfigurationProvider.php', + 'Aws\ClientSideMonitoring\ConfigurationInterface' => __DIR__ . '/Aws/ClientSideMonitoring/ConfigurationInterface.php', + 'Aws\MachineLearning\MachineLearningClient' => __DIR__ . '/Aws/MachineLearning/MachineLearningClient.php', + 'Aws\MachineLearning\Exception\MachineLearningException' => __DIR__ . '/Aws/MachineLearning/Exception/MachineLearningException.php', + 'Aws\EndpointParameterMiddleware' => __DIR__ . '/Aws/EndpointParameterMiddleware.php', + 'Aws\DirectoryService\DirectoryServiceClient' => __DIR__ . '/Aws/DirectoryService/DirectoryServiceClient.php', + 'Aws\DirectoryService\Exception\DirectoryServiceException' => __DIR__ . '/Aws/DirectoryService/Exception/DirectoryServiceException.php', + 'Aws\Multipart\UploadState' => __DIR__ . '/Aws/Multipart/UploadState.php', + 'Aws\Multipart\AbstractUploadManager' => __DIR__ . '/Aws/Multipart/AbstractUploadManager.php', + 'Aws\Multipart\AbstractUploader' => __DIR__ . '/Aws/Multipart/AbstractUploader.php', + 'Aws\SageMaker\Exception\SageMakerException' => __DIR__ . '/Aws/SageMaker/Exception/SageMakerException.php', + 'Aws\SageMaker\SageMakerClient' => __DIR__ . '/Aws/SageMaker/SageMakerClient.php', + 'Aws\IdempotencyTokenMiddleware' => __DIR__ . '/Aws/IdempotencyTokenMiddleware.php', + 'Aws\KinesisVideoMedia\Exception\KinesisVideoMediaException' => __DIR__ . '/Aws/KinesisVideoMedia/Exception/KinesisVideoMediaException.php', + 'Aws\KinesisVideoMedia\KinesisVideoMediaClient' => __DIR__ . '/Aws/KinesisVideoMedia/KinesisVideoMediaClient.php', + 'Aws\WorkDocs\Exception\WorkDocsException' => __DIR__ . '/Aws/WorkDocs/Exception/WorkDocsException.php', + 'Aws\WorkDocs\WorkDocsClient' => __DIR__ . '/Aws/WorkDocs/WorkDocsClient.php', + 'Aws\CodePipeline\Exception\CodePipelineException' => __DIR__ . '/Aws/CodePipeline/Exception/CodePipelineException.php', + 'Aws\CodePipeline\CodePipelineClient' => __DIR__ . '/Aws/CodePipeline/CodePipelineClient.php', + 'Aws\CloudDirectory\CloudDirectoryClient' => __DIR__ . '/Aws/CloudDirectory/CloudDirectoryClient.php', + 'Aws\CloudDirectory\Exception\CloudDirectoryException' => __DIR__ . '/Aws/CloudDirectory/Exception/CloudDirectoryException.php', + 'Aws\Waiter' => __DIR__ . '/Aws/Waiter.php', + 'Aws\Lightsail\LightsailClient' => __DIR__ . '/Aws/Lightsail/LightsailClient.php', + 'Aws\Lightsail\Exception\LightsailException' => __DIR__ . '/Aws/Lightsail/Exception/LightsailException.php', + 'Aws\WorkLink\WorkLinkClient' => __DIR__ . '/Aws/WorkLink/WorkLinkClient.php', + 'Aws\WorkLink\Exception\WorkLinkException' => __DIR__ . '/Aws/WorkLink/Exception/WorkLinkException.php', + 'Aws\Lambda\Exception\LambdaException' => __DIR__ . '/Aws/Lambda/Exception/LambdaException.php', + 'Aws\Lambda\LambdaClient' => __DIR__ . '/Aws/Lambda/LambdaClient.php', + 'Aws\CloudTrail\LogRecordIterator' => __DIR__ . '/Aws/CloudTrail/LogRecordIterator.php', + 'Aws\CloudTrail\CloudTrailClient' => __DIR__ . '/Aws/CloudTrail/CloudTrailClient.php', + 'Aws\CloudTrail\Exception\CloudTrailException' => __DIR__ . '/Aws/CloudTrail/Exception/CloudTrailException.php', + 'Aws\CloudTrail\LogFileIterator' => __DIR__ . '/Aws/CloudTrail/LogFileIterator.php', + 'Aws\CloudTrail\LogFileReader' => __DIR__ . '/Aws/CloudTrail/LogFileReader.php', + 'Aws\Ec2\Ec2Client' => __DIR__ . '/Aws/Ec2/Ec2Client.php', + 'Aws\Ec2\Exception\Ec2Exception' => __DIR__ . '/Aws/Ec2/Exception/Ec2Exception.php', + 'Aws\CodeStar\CodeStarClient' => __DIR__ . '/Aws/CodeStar/CodeStarClient.php', + 'Aws\CodeStar\Exception\CodeStarException' => __DIR__ . '/Aws/CodeStar/Exception/CodeStarException.php', + 'Aws\GlobalAccelerator\Exception\GlobalAcceleratorException' => __DIR__ . '/Aws/GlobalAccelerator/Exception/GlobalAcceleratorException.php', + 'Aws\GlobalAccelerator\GlobalAcceleratorClient' => __DIR__ . '/Aws/GlobalAccelerator/GlobalAcceleratorClient.php', + 'Aws\KinesisAnalytics\KinesisAnalyticsClient' => __DIR__ . '/Aws/KinesisAnalytics/KinesisAnalyticsClient.php', + 'Aws\KinesisAnalytics\Exception\KinesisAnalyticsException' => __DIR__ . '/Aws/KinesisAnalytics/Exception/KinesisAnalyticsException.php', + 'Aws\Ses\SesClient' => __DIR__ . '/Aws/Ses/SesClient.php', + 'Aws\Ses\Exception\SesException' => __DIR__ . '/Aws/Ses/Exception/SesException.php', + 'Aws\DoctrineCacheAdapter' => __DIR__ . '/Aws/DoctrineCacheAdapter.php', + 'Aws\PresignUrlMiddleware' => __DIR__ . '/Aws/PresignUrlMiddleware.php', + 'Aws\LexRuntimeService\LexRuntimeServiceClient' => __DIR__ . '/Aws/LexRuntimeService/LexRuntimeServiceClient.php', + 'Aws\LexRuntimeService\Exception\LexRuntimeServiceException' => __DIR__ . '/Aws/LexRuntimeService/Exception/LexRuntimeServiceException.php', + 'Aws\Pinpoint\PinpointClient' => __DIR__ . '/Aws/Pinpoint/PinpointClient.php', + 'Aws\Pinpoint\Exception\PinpointException' => __DIR__ . '/Aws/Pinpoint/Exception/PinpointException.php', + 'Aws\ComprehendMedical\ComprehendMedicalClient' => __DIR__ . '/Aws/ComprehendMedical/ComprehendMedicalClient.php', + 'Aws\ComprehendMedical\Exception\ComprehendMedicalException' => __DIR__ . '/Aws/ComprehendMedical/Exception/ComprehendMedicalException.php', + 'Aws\IoTAnalytics\Exception\IoTAnalyticsException' => __DIR__ . '/Aws/IoTAnalytics/Exception/IoTAnalyticsException.php', + 'Aws\IoTAnalytics\IoTAnalyticsClient' => __DIR__ . '/Aws/IoTAnalytics/IoTAnalyticsClient.php', + 'Aws\Result' => __DIR__ . '/Aws/Result.php', + 'Aws\Route53Domains\Exception\Route53DomainsException' => __DIR__ . '/Aws/Route53Domains/Exception/Route53DomainsException.php', + 'Aws\Route53Domains\Route53DomainsClient' => __DIR__ . '/Aws/Route53Domains/Route53DomainsClient.php', + 'Aws\Sts\Exception\StsException' => __DIR__ . '/Aws/Sts/Exception/StsException.php', + 'Aws\Sts\StsClient' => __DIR__ . '/Aws/Sts/StsClient.php', + 'Aws\ElasticBeanstalk\ElasticBeanstalkClient' => __DIR__ . '/Aws/ElasticBeanstalk/ElasticBeanstalkClient.php', + 'Aws\ElasticBeanstalk\Exception\ElasticBeanstalkException' => __DIR__ . '/Aws/ElasticBeanstalk/Exception/ElasticBeanstalkException.php', + 'Aws\Swf\SwfClient' => __DIR__ . '/Aws/Swf/SwfClient.php', + 'Aws\Swf\Exception\SwfException' => __DIR__ . '/Aws/Swf/Exception/SwfException.php', + 'Aws\Support\SupportClient' => __DIR__ . '/Aws/Support/SupportClient.php', + 'Aws\Support\Exception\SupportException' => __DIR__ . '/Aws/Support/Exception/SupportException.php', + 'Aws\Transfer\TransferClient' => __DIR__ . '/Aws/Transfer/TransferClient.php', + 'Aws\Transfer\Exception\TransferException' => __DIR__ . '/Aws/Transfer/Exception/TransferException.php', + 'Aws\DirectConnect\DirectConnectClient' => __DIR__ . '/Aws/DirectConnect/DirectConnectClient.php', + 'Aws\DirectConnect\Exception\DirectConnectException' => __DIR__ . '/Aws/DirectConnect/Exception/DirectConnectException.php', + 'Aws\CloudFront\CloudFrontClient' => __DIR__ . '/Aws/CloudFront/CloudFrontClient.php', + 'Aws\CloudFront\Signer' => __DIR__ . '/Aws/CloudFront/Signer.php', + 'Aws\CloudFront\CookieSigner' => __DIR__ . '/Aws/CloudFront/CookieSigner.php', + 'Aws\CloudFront\Exception\CloudFrontException' => __DIR__ . '/Aws/CloudFront/Exception/CloudFrontException.php', + 'Aws\CloudFront\UrlSigner' => __DIR__ . '/Aws/CloudFront/UrlSigner.php', + 'Aws\CognitoIdentityProvider\CognitoIdentityProviderClient' => __DIR__ . '/Aws/CognitoIdentityProvider/CognitoIdentityProviderClient.php', + 'Aws\CognitoIdentityProvider\Exception\CognitoIdentityProviderException' => __DIR__ . '/Aws/CognitoIdentityProvider/Exception/CognitoIdentityProviderException.php', + 'Aws\AutoScaling\AutoScalingClient' => __DIR__ . '/Aws/AutoScaling/AutoScalingClient.php', + 'Aws\AutoScaling\Exception\AutoScalingException' => __DIR__ . '/Aws/AutoScaling/Exception/AutoScalingException.php', + 'Aws\MarketplaceEntitlementService\Exception\MarketplaceEntitlementServiceException' => __DIR__ . '/Aws/MarketplaceEntitlementService/Exception/MarketplaceEntitlementServiceException.php', + 'Aws\MarketplaceEntitlementService\MarketplaceEntitlementServiceClient' => __DIR__ . '/Aws/MarketplaceEntitlementService/MarketplaceEntitlementServiceClient.php', + 'Aws\PI\PIClient' => __DIR__ . '/Aws/PI/PIClient.php', + 'Aws\PI\Exception\PIException' => __DIR__ . '/Aws/PI/Exception/PIException.php', + 'Aws\DLM\Exception\DLMException' => __DIR__ . '/Aws/DLM/Exception/DLMException.php', + 'Aws\DLM\DLMClient' => __DIR__ . '/Aws/DLM/DLMClient.php', + 'Aws\ServiceDiscovery\ServiceDiscoveryClient' => __DIR__ . '/Aws/ServiceDiscovery/ServiceDiscoveryClient.php', + 'Aws\ServiceDiscovery\Exception\ServiceDiscoveryException' => __DIR__ . '/Aws/ServiceDiscovery/Exception/ServiceDiscoveryException.php', + 'Aws\SnowBall\SnowBallClient' => __DIR__ . '/Aws/SnowBall/SnowBallClient.php', + 'Aws\SnowBall\Exception\SnowBallException' => __DIR__ . '/Aws/SnowBall/Exception/SnowBallException.php', + 'Aws\MockHandler' => __DIR__ . '/Aws/MockHandler.php', + 'Aws\ApplicationDiscoveryService\Exception\ApplicationDiscoveryServiceException' => __DIR__ . '/Aws/ApplicationDiscoveryService/Exception/ApplicationDiscoveryServiceException.php', + 'Aws\ApplicationDiscoveryService\ApplicationDiscoveryServiceClient' => __DIR__ . '/Aws/ApplicationDiscoveryService/ApplicationDiscoveryServiceClient.php', + 'Aws\ACMPCA\Exception\ACMPCAException' => __DIR__ . '/Aws/ACMPCA/Exception/ACMPCAException.php', + 'Aws\ACMPCA\ACMPCAClient' => __DIR__ . '/Aws/ACMPCA/ACMPCAClient.php', + 'Aws\JsonCompiler' => __DIR__ . '/Aws/JsonCompiler.php', + 'Aws\IoT1ClickProjects\IoT1ClickProjectsClient' => __DIR__ . '/Aws/IoT1ClickProjects/IoT1ClickProjectsClient.php', + 'Aws\IoT1ClickProjects\Exception\IoT1ClickProjectsException' => __DIR__ . '/Aws/IoT1ClickProjects/Exception/IoT1ClickProjectsException.php', + 'Aws\OpsWorksCM\Exception\OpsWorksCMException' => __DIR__ . '/Aws/OpsWorksCM/Exception/OpsWorksCMException.php', + 'Aws\OpsWorksCM\OpsWorksCMClient' => __DIR__ . '/Aws/OpsWorksCM/OpsWorksCMClient.php', + 'Aws\FSx\Exception\FSxException' => __DIR__ . '/Aws/FSx/Exception/FSxException.php', + 'Aws\FSx\FSxClient' => __DIR__ . '/Aws/FSx/FSxClient.php', + 'Aws\Athena\AthenaClient' => __DIR__ . '/Aws/Athena/AthenaClient.php', + 'Aws\Athena\Exception\AthenaException' => __DIR__ . '/Aws/Athena/Exception/AthenaException.php', + 'Aws\Pricing\Exception\PricingException' => __DIR__ . '/Aws/Pricing/Exception/PricingException.php', + 'Aws\Pricing\PricingClient' => __DIR__ . '/Aws/Pricing/PricingClient.php', + 'Aws\Glacier\MultipartUploader' => __DIR__ . '/Aws/Glacier/MultipartUploader.php', + 'Aws\Glacier\TreeHash' => __DIR__ . '/Aws/Glacier/TreeHash.php', + 'Aws\Glacier\GlacierClient' => __DIR__ . '/Aws/Glacier/GlacierClient.php', + 'Aws\Glacier\Exception\GlacierException' => __DIR__ . '/Aws/Glacier/Exception/GlacierException.php', + 'Aws\History' => __DIR__ . '/Aws/History.php', + 'Aws\Kafka\KafkaClient' => __DIR__ . '/Aws/Kafka/KafkaClient.php', + 'Aws\Kafka\Exception\KafkaException' => __DIR__ . '/Aws/Kafka/Exception/KafkaException.php', + 'Aws\HandlerList' => __DIR__ . '/Aws/HandlerList.php', + 'Aws\WrappedHttpHandler' => __DIR__ . '/Aws/WrappedHttpHandler.php', + 'Aws\Organizations\OrganizationsClient' => __DIR__ . '/Aws/Organizations/OrganizationsClient.php', + 'Aws\Organizations\Exception\OrganizationsException' => __DIR__ . '/Aws/Organizations/Exception/OrganizationsException.php', + 'JmesPath\SyntaxErrorException' => __DIR__ . '/JmesPath/SyntaxErrorException.php', + 'JmesPath\TreeCompiler' => __DIR__ . '/JmesPath/TreeCompiler.php', + 'JmesPath\Lexer' => __DIR__ . '/JmesPath/Lexer.php', + 'JmesPath\Utils' => __DIR__ . '/JmesPath/Utils.php', + 'JmesPath\FnDispatcher' => __DIR__ . '/JmesPath/FnDispatcher.php', + 'JmesPath\Parser' => __DIR__ . '/JmesPath/Parser.php', + 'JmesPath\AstRuntime' => __DIR__ . '/JmesPath/AstRuntime.php', + 'JmesPath\CompilerRuntime' => __DIR__ . '/JmesPath/CompilerRuntime.php', + 'JmesPath\JmesPath' => __DIR__ . '/JmesPath/JmesPath.php', + 'JmesPath\DebugRuntime' => __DIR__ . '/JmesPath/DebugRuntime.php', + 'JmesPath\TreeInterpreter' => __DIR__ . '/JmesPath/TreeInterpreter.php', + 'JmesPath\Env' => __DIR__ . '/JmesPath/Env.php', +); + +spl_autoload_register(function ($class) use ($mapping) { + if (isset($mapping[$class])) { + require $mapping[$class]; + } +}, true); + +require __DIR__ . '/Aws/functions.php'; +require __DIR__ . '/GuzzleHttp/functions_include.php'; +require __DIR__ . '/GuzzleHttp/Psr7/functions_include.php'; +require __DIR__ . '/GuzzleHttp/Promise/functions_include.php'; +require __DIR__ . '/JmesPath/JmesPath.php'; diff --git a/lib/jwt.php b/lib/jwt.php new file mode 100644 index 0000000..2776bfd --- /dev/null +++ b/lib/jwt.php @@ -0,0 +1,200 @@ +<?php + +/** + * JSON Web Token implementation, based on this spec: + * http://tools.ietf.org/html/draft-ietf-oauth-json-web-token-06 + * + * PHP version 5 + * + * @category Authentication + * @package Authentication_JWT + * @author Neuman Vong <neuman@twilio.com> + * @author Anant Narayanan <anant@php.net> + * @license http://opensource.org/licenses/BSD-3-Clause 3-clause BSD + * @link https://github.com/firebase/php-jwt + */ +class JWT +{ + /** + * Decodes a JWT string into a PHP object. + * + * @param string $jwt The JWT + * @param string|null $key The secret key + * @param bool $verify Don't skip verification process + * + * @return object The JWT's payload as a PHP object + * @throws UnexpectedValueException Provided JWT was invalid + * @throws DomainException Algorithm was not provided + * + * @uses jsonDecode + * @uses urlsafeB64Decode + */ + public static function decode($jwt, $key = null, $verify = true) + { + $tks = explode('.', $jwt); + if (count($tks) != 3) { + throw new UnexpectedValueException('Wrong number of segments'); + } + list($headb64, $bodyb64, $cryptob64) = $tks; + if (null === ($header = JWT::jsonDecode(JWT::urlsafeB64Decode($headb64)))) { + throw new UnexpectedValueException('Invalid segment encoding'); + } + if (null === $payload = JWT::jsonDecode(JWT::urlsafeB64Decode($bodyb64))) { + throw new UnexpectedValueException('Invalid segment encoding'); + } + $sig = JWT::urlsafeB64Decode($cryptob64); + if ($verify) { + if (empty($header->alg)) { + throw new DomainException('Empty algorithm'); + } + if ($sig != JWT::sign("$headb64.$bodyb64", $key, $header->alg)) { + throw new UnexpectedValueException('Signature verification failed'); + } + } + return $payload; + } + + /** + * Converts and signs a PHP object or array into a JWT string. + * + * @param object|array $payload PHP object or array + * @param string $key The secret key + * @param string $algo The signing algorithm. Supported + * algorithms are 'HS256', 'HS384' and 'HS512' + * + * @return string A signed JWT + * @uses jsonEncode + * @uses urlsafeB64Encode + */ + public static function encode($payload, $key, $algo = 'HS256') + { + $header = array('typ' => 'JWT', 'alg' => $algo); + + $segments = array(); + $segments[] = JWT::urlsafeB64Encode(JWT::jsonEncode($header)); + $segments[] = JWT::urlsafeB64Encode(JWT::jsonEncode($payload)); + $signing_input = implode('.', $segments); + + $signature = JWT::sign($signing_input, $key, $algo); + $segments[] = JWT::urlsafeB64Encode($signature); + + return implode('.', $segments); + } + + /** + * Sign a string with a given key and algorithm. + * + * @param string $msg The message to sign + * @param string $key The secret key + * @param string $method The signing algorithm. Supported + * algorithms are 'HS256', 'HS384' and 'HS512' + * + * @return string An encrypted message + * @throws DomainException Unsupported algorithm was specified + */ + public static function sign($msg, $key, $method = 'HS256') + { + $methods = array( + 'HS256' => 'sha256', + 'HS384' => 'sha384', + 'HS512' => 'sha512', + ); + if (empty($methods[$method])) { + throw new DomainException('Algorithm not supported'); + } + return hash_hmac($methods[$method], $msg, $key, true); + } + + /** + * Decode a JSON string into a PHP object. + * + * @param string $input JSON string + * + * @return object Object representation of JSON string + * @throws DomainException Provided string was invalid JSON + */ + public static function jsonDecode($input) + { + $obj = json_decode($input); + if (function_exists('json_last_error') && $errno = json_last_error()) { + JWT::_handleJsonError($errno); + } else if ($obj === null && $input !== 'null') { + throw new DomainException('Null result with non-null input'); + } + return $obj; + } + + /** + * Encode a PHP object into a JSON string. + * + * @param object|array $input A PHP object or array + * + * @return string JSON representation of the PHP object or array + * @throws DomainException Provided object could not be encoded to valid JSON + */ + public static function jsonEncode($input) + { + $json = json_encode($input); + if (function_exists('json_last_error') && $errno = json_last_error()) { + JWT::_handleJsonError($errno); + } else if ($json === 'null' && $input !== null) { + throw new DomainException('Null result with non-null input'); + } + return $json; + } + + /** + * Decode a string with URL-safe Base64. + * + * @param string $input A Base64 encoded string + * + * @return string A decoded string + */ + public static function urlsafeB64Decode($input) + { + $remainder = strlen($input) % 4; + if ($remainder) { + $padlen = 4 - $remainder; + $input .= str_repeat('=', $padlen); + } + return base64_decode(strtr($input, '-_', '+/')); + } + + /** + * Encode a string with URL-safe Base64. + * + * @param string $input The string you want encoded + * + * @return string The base64 encode of what you passed in + */ + public static function urlsafeB64Encode($input) + { + return str_replace('=', '', strtr(base64_encode($input), '+/', '-_')); + } + + /** + * Helper method to create a JSON error. + * + * @param int $errno An error number from json_last_error() + * + * @return void + */ + private static function _handleJsonError($errno) + { + $messages = array( + JSON_ERROR_DEPTH => 'Maximum stack depth exceeded', + JSON_ERROR_CTRL_CHAR => 'Unexpected control character found', + JSON_ERROR_SYNTAX => 'Syntax error, malformed JSON' + ); + throw new DomainException( + isset($messages[$errno]) + ? $messages[$errno] + : 'Unknown JSON error: ' . $errno + ); + } + +} + + + +?> diff --git a/lib/r4fb.php b/lib/r4fb.php new file mode 100644 index 0000000..b9cb5f6 --- /dev/null +++ b/lib/r4fb.php @@ -0,0 +1,1445 @@ +<?php + +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +/* + +Run4Football v0.1 +This file is part of Run4Football. (C)2019 Corrado Mulas - CM TLC - R&D Dept. - Ardara (SS) + + Run4Football is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Run4Football is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Run4Football. If not, see <http://www.gnu.org/licenses/>. + +*/ + +/*##########NOTE################ + +Inserire controlli corretta esecuzione, mediante return + +*/ +############FINE NOTE########### +/** + * Description of r4fb + * + * @author corradomulas for Run PoliTo - Corso Duca degli Abruzzi 24, 10129 Torino (TO) + */ + +//GLOBS DB (MySQL/MariaDB only) +define('DBN', ""); //DB NAME +define('DBU', ""); //DB USER +define('DBH', ""); //DB HOST +define('DBP', ""); //DB PASSWORD + +require_once 'sns.php'; + + +class r4fb { + + + //generazione UUIDv4: + public function guidv4() + { + //Genera UUID v4 + $data = openssl_random_pseudo_bytes(16); + assert(strlen($data) == 16); + + $data[6] = chr(ord($data[6]) & 0x0f | 0x40); + $data[8] = chr(ord($data[8]) & 0x3f | 0x80); + + return strtoupper(vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4))); + } + + public function fetchUsers($guid) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `utenti` WHERE id=?"); + $query->bind_param('s',$guid); + $query->execute(); + $result = mysqli_stmt_get_result($query); + + $rows = array(); + while ($row = $result->fetch_assoc()) + { + $rows[] = $row; + } + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $rows; + + } + + //inserimento torneo: + public function insTorneo($tsinizio,$nome,$org,$loc,$man,$nsq,$ngi) + { + //query SQL + prepared statement + //query INSERT: + //INSERT INTO `torneo`(`id`, `t`, `organizzazione`, `location`, `manager`) VALUES (,,,,) + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + $id = r4fb::guidv4(); + //query SQL + prepared statement + $query = $mysqli->prepare("INSERT INTO `torneo`(`id`,`nome`,`t`, `organizzazione`, `location`, `manager`, `nsquadre`, `ngironi`) VALUES (?,?,?,?,?,?,?,?)"); + $query->bind_param('ssisssii',$id,$nome,$tsinizio,$org,$loc,$man,$nsq,$ngi); + $query->execute(); + $letter = 'A'; + + for($i=0; $i < $ngi; $i++) + { + $query = $mysqli->prepare("INSERT INTO `gironi`(`id`, `torneo`, `lettera`) VALUES (?,?,?)"); + $query->bind_param('sss', r4fb::guidv4(),$id,$letter); + $query->execute(); + + $letterAscii = ord($letter); + $letterAscii++; + $letter = chr($letterAscii); // 'B' + } + + //ultima operazione: chiusura connessione DB + $query->close(); + return 1; + } + + + //inserimento arbitro: + public function insArb($nome, $torneo, $thumb, $email, $num) + { + //query SQL + prepared statement + //query INSERT: + //INSERT INTO `arbitri`(`id`, `amm`, `nome`, `valutazione`, `path_thumb`, `torneo`) VALUES (,,,,,) + //INSERT INTO `utenti`(`id`, `matr`, `tc`, `nome`, `cognome`, `tm`, `tipo`) VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6],[value-7]) + //INSERT INTO `users`(`uid`, `guid`, `gid`, `password`, `salt`, `givenName`, `email`, `eduPersonPrincipalName`, `isEnabled`) VALUES () + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + $id = r4fb::guidv4(); + $pass = bin2hex(openssl_random_pseudo_bytes(4)); + $salt = bin2hex(openssl_random_pseudo_bytes(20)); + $pass_ha = hash('sha256',$salt.$pass); + $matr = "R".str_pad(mt_rand(0, 9999), 4, '0', STR_PAD_LEFT); + //query SQL + prepared statement + $time = time(); + $query = $mysqli->prepare("INSERT INTO `utenti`(`id`, `matr`, `tc`, `nome`, `tm`, `tipo`) VALUES (?,?,?,?,?,3)"); + $query->bind_param('ssisi',$id,$matr,$time,$nome,$time); + $query->execute(); + + + + $query = $mysqli->prepare("INSERT INTO `arbitri`(`id`, `nome`, `path_thumb`, `torneo`) VALUES (?,?,?,?)"); + $query->bind_param('siss',$id,$nome,$thumb,$torneo); + $query->execute(); + + //ultima operazione: chiusura connessione DB + $query->close(); + + $mysqli = new mysqli(DBH, "", "", ""); + $query = $mysqli->prepare("INSERT INTO `users`(`uid`, `guid`, `password`, `salt`, `givenName`, `email`, `eduPersonPrincipalName`, `isEnabled`) VALUES (?,?,?,?,?,?,?,1)"); + $query->bind_param('sssssss',$matr,$id,$pass_ha,$salt,$nome,$email,$nome); + $query->execute(); + echo mysqli_error($mysqli); + + $query->close(); + $msg = "Credenziali RUN IdP:\r\n" + . "User: ".$matr."\r\n" + . "Password: ".$pass."\r\n" + . "Valide per: run4football"; + snsrun::sendSMS($num, $msg); + return 1; + } + //inserimento squadra: + public function insSq($torneo, $n, $nome, $colore, $npls, $girone) + { + //query SQL + prepared statement + //query INSERT: + //INSERT INTO `squadre`(`id`, `nome`, `colore`, `pt`, `valutazione`, `torneo`) VALUES (,,,,,) + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + $id = r4fb::guidv4(); + //query SQL + prepared statement + $query = $mysqli->prepare("INSERT INTO `squadre`(`id`,`n`, `nome`, `colore`,`nplayers`, `torneo`,`girone`) VALUES (?,?,?,?,?,?,?)"); + $query->bind_param('sississ',$id,$n,$nome,$colore,$npls,$torneo,$girone); + $query->execute(); + + //ultima operazione: chiusura connessione DB + $query->close(); + return 1; + } + //inserimento giocatore: + public function insPlayer($num, $ruolo, $nome, $thumb, $squadra, $email) + { + //query SQL + prepared statement + //query INSERT: + //INSERT INTO `giocatori`(`id`, `n`, `ruolo`, `goal`, `gialli`, `rossi`, `valutazione`, `nome`, `path_thumb`, `squadra`) VALUES (,,,,,,,,,) + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + $id = r4fb::guidv4(); + + $pass = bin2hex(openssl_random_pseudo_bytes(4)); + $salt = bin2hex(openssl_random_pseudo_bytes(20)); + $pass_ha = hash('sha256',$salt.$pass); + $matr = "P".str_pad(mt_rand(0, 9999), 4, '0', STR_PAD_LEFT); + //query SQL + prepared statement + $time = time(); + $query = $mysqli->prepare("INSERT INTO `utenti`(`id`, `matr`, `tc`, `nome`, `tm`, `tipo`) VALUES (?,?,?,?,?,4)"); + $query->bind_param('ssisi',$id,$matr,$time,$nome,$time); + $query->execute(); + + //query SQL + prepared statement + $query = $mysqli->prepare("INSERT INTO `giocatori`(`id`, `n`, `ruolo`, `nome`, `path_thumb`, `squadra`) VALUES (?,?,?,?,?,?)"); + $query->bind_param('sissss',$id,$num,$ruolo,$nome,$thumb,$squadra); + $query->execute(); + + //ultima operazione: chiusura connessione DB + $query->close(); + + $mysqli = new mysqli(DBH, "", "", ""); + $query = $mysqli->prepare("INSERT INTO `users`(`uid`, `guid`, `password`, `salt`, `givenName`, `email`, `eduPersonPrincipalName`, `isEnabled`) VALUES (?,?,?,?,?,?,?,1)"); + $query->bind_param('sssssss',$matr,$id,$pass_ha,$salt,$nome,$email,$nome); + $query->execute(); + echo mysqli_error($mysqli); + + $query->close(); + $msg = "Credenziali RUN IdP:\r\n" + . "User: ".$matr."\r\n" + . "Password: ".$pass."\r\n" + . "Valide per: https://r-un.ml/6tco2"; + + $sub = 'Credenziali accesso giocatori RUN4Football'; + $from = "idp@runpolito.ml"; + if(snsrun::sendEmail($email, $sub, $msg, $from)) + { + return 1; + } + else + { + return 0; + } + //mail($email, $subject, $msg, $headers); + + //return 1; + } + //inserimento partita: + public function insMatch($tProg, $s1, $s2, $arb, $torneo, $giornata, $campo, $tipo, $cat) + { + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + $id = r4fb::guidv4(); + //query SQL + prepared statement + //query INSERT: + //INSERT INTO `partite`(`id`, `t_prog`, `t_start`, `t_stop`, `s1`, `s2`, `pt`, `falli`, `arb`, `torneo`) VALUES (,,,,,,,,) + $query = $mysqli->prepare("INSERT INTO `partite`(`id`, `t_prog`, `s1`, `s2`, `arb`, `giornata`, `campo`, `torneo`,`tipo`, `cat`) VALUES (?,?,?,?,?,?,?,?,?,?)"); + $query->bind_param('sisssissii',$id,$tProg,$s1,$s2,$arb,$giornata,$campo,$torneo,$tipo,$cat); + $query->execute(); + + //ultima operazione: chiusura connessione DB + $query->close(); + return 1; + } + //EVENTI PARTITA + + public function insVote($bestpl,$bestsq,$bestrf,$commenti,$sid,$ip) + { + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + $id = r4fb::guidv4(); + //query SQL + prepared statement + //query INSERT: + //INSERT INTO `partite`(`id`, `t_prog`, `t_start`, `t_stop`, `s1`, `s2`, `pt`, `falli`, `arb`, `torneo`) VALUES (,,,,,,,,) + $query = $mysqli->prepare("INSERT INTO `voti`(`id`, `best_sq`, `best_pl`, `best_rf`, `sid`, `ip`, `comment`) VALUES (?,?,?,?,?,?,?)"); + $query->bind_param('sssssss',$id,$bestpl,$bestsq,$bestrf,$sid,$ip,$commenti); + $query->execute(); + + //ultima operazione: chiusura connessione DB + $query->close(); + return 1; + } + + //sorteggio + public function randStart($partita, $uid) + { + //sorteggio inizio + //leggi ID squadre da s1,s2 e scegli uno dei due id in modo pseudo-random + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + $query = $mysqli->prepare("SELECT * FROM `partite` WHERE id= ?"); + $query->bind_param('s',$partita); + $result = $query->execute(); + $row = $result->fetch_array(MYSQLI_ASSOC); + + $s1 = $row['s1']; + $s2 = $row['s2']; + $sarray = compact($s1,$s2); + + //ultima operazione: chiusura connessione DB + $query->close(); + + return $sarray[rand(0,sizeof($sarray)-1)]; + } + + //START + public function startMatch($partita, $uid) + { + if(!$partita) + { + return 0; + } + else + { + $tstart = time(); + //query SQL + prepared statement + //query UPDATE per inserire T_START: + //UPDATE `partite` SET `t_start`=[value-2] WHERE id = 'uid partita' + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + + //prepared statement + $query = $mysqli->prepare("UPDATE `partite` SET `t_start`= ? WHERE id = ?"); + $query->bind_param('is',$tstart,$partita); + $result = $query->execute(); + + $query = $mysqli->prepare("UPDATE `arbitri` SET `curmatch`= ? WHERE id = ?"); + $query->bind_param('ss',$partita,$uid); + $result = $query->execute(); + + //ultima operazione: chiusura connessione DB + $query->close(); + return 1; + } + } + //inserimento goal + public function insGoal($giocatore, $partita, $uid) + { + //$giocatore = guidV4 giocatore + //$partita = guidV4 partita + //ATTENZIONE: se partita non in corso, manda tutto in culo + //(query per controllo incrociato se t_stop != NULL (programmata) e !=1 (in corso), e t_start definito) + //SELECT * FROM `partite` WHERE id='$partita' -> fetcha t_start e t_stop per controllo di cui sopra + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + + //prepared statement + $query = $mysqli->prepare("SELECT * FROM `partite` WHERE id= ?"); + $query->bind_param('s',$partita); + $query->execute(); + $result = mysqli_stmt_get_result($query); + $row = $result->fetch_array(MYSQLI_ASSOC); + $start = $row['t_start']; + $stop = $row['t_stop']; + + //core if() statement per verifica di cui sopra + if($start != NULL && $stop != 1 && $stop == NULL) + { + + //query SQL + prepared statement + //query UPDATE elenco goal + punteggio partita: + //cerca giocatore + squadra, cerca partita, inserisci goal su tab goal e aggiorna punteggio squadra su partita + + //cerca giocatore e cerca squadra per capire se incrementare pt_s1 o pt_s2 + //controlla se 'squadra' in tab 'giocatori' = 's1' o 's2' su tab 'partite', se nessuno dei due = errore + //SELECT * FROM `giocatori` WHERE id='$giocatore' + $query = $mysqli->prepare("SELECT * FROM `giocatori` WHERE id= ?"); + $query->bind_param('s',$giocatore); + $query->execute(); + $result = mysqli_stmt_get_result($query); + $row = $result->fetch_array(MYSQLI_ASSOC); + $squadra = $row['squadra']; + // + //fetcha id squadra da query prec. e inculagli il goal con una UPDATE su giocatori [STRONZATA, abbiamo l'id del giocatore porcoddio] + //NON SERVE A UN CAZZO//UPDATE `squadre` SET `id`=[value-1],`nome`=[value-2],`colore`=[value-3],`pt`=[value-4], WHERE 1 + //UPDATE `giocatori` SET `goal`= goal + 1 WHERE id='$giocatore' + $query = $mysqli->prepare("UPDATE `giocatori` SET `goal`= goal + 1 WHERE id= ?"); + $query->bind_param('s',$giocatore); + $query->execute(); + + //ricerca dati squadra + $query = $mysqli->prepare("SELECT * FROM `partite` WHERE id= ?"); + $query->bind_param('s',$partita); + $query->execute(); + $result = mysqli_stmt_get_result($query); + $row = $result->fetch_array(MYSQLI_ASSOC); + $s1 = $row['s1']; + $s2 = $row['s2']; + // + //aggiorna punteggio partita (cerca se id squadra ĆØ s1 o s2 su tab partite, e poi aggiorna il punteggio su pt_s1 o pt_s2) + //UPDATE `partite` SET `pt_s1`='pt_s1+1' WHERE id='$partita' + //UPDATE `partite` SET `pt_s2`='pt_s2+1' WHERE id='$partita' + switch ($squadra) + { + case $s1: + $query = $mysqli->prepare("UPDATE `partite` SET `pt_s1`= pt_s1 + 1 WHERE id= ?"); + $query->bind_param('s',$partita); + $query->execute(); + break; + case $s2: + $query = $mysqli->prepare("UPDATE `partite` SET `pt_s2`= pt_s2 + 1 WHERE id= ?"); + $query->bind_param('s',$partita); + $query->execute(); + break; + default: + //errore; + break; + } + + } + else + { + //restituisci qualcosa per farmi capire che sono una testa di cazzo + } + //ultima operazione: chiusura connessione DB + $query->close(); + return 1; + } + //inserimento fallo + public function insFallo($squadra, $uid) + { + //Fallo squadra + //query SQL + prepared statement + //query UPDATE: + //UPDATE `partite` SET `falli`= falli + 1 WHERE id = ? + //UPDATE `squadre` SET `falli`= falli + 1 WHERE id = ? + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + $partita = r4fb::curMatch($uid); + $query = $mysqli->prepare("UPDATE `partite` SET `falli`= falli + 1 WHERE id = ?"); + $query->bind_param('s',$partita); + $query->execute(); + $query = $mysqli->prepare("UPDATE `squadre` SET `falli`= falli + 1 WHERE id = ?"); + $query->bind_param('s',$squadra); + $query->execute(); + + $query = $mysqli->prepare("SELECT * FROM `partite` WHERE id=?"); + $query->bind_param('s',$partita); + $query->execute(); + $result = mysqli_stmt_get_result($query); + + $row = $result->fetch_assoc(); + + if($squadra == $row['s1']) + { + $query = $mysqli->prepare("UPDATE `partite` SET `falli_s1`= falli_s1 + 1 WHERE id = ?"); + $query->bind_param('s',$partita); + $query->execute(); + } + else if($squadra == $row['s2']) + { + $query = $mysqli->prepare("UPDATE `partite` SET `falli_s2`= falli_s2 + 1 WHERE id = ?"); + $query->bind_param('s',$partita); + $query->execute(); + } + //ultima operazione: chiusura connessione DB + $query->close(); + return 1; + } + //ammonizione + public function insAmm($giocatore, $partita, $tipo, $uid) + { + + //ATTENZIONE: $partita non utilizzato: controllare logica + // + // + //parametro $tipo 1: giallo, 2: rosso + //Ammonizione (giallo, rosso) + //query SQL + prepared statement + //query UPDATE: + //UPDATE `giocatori` SET `gialli`=[value-5],`rossi`=[value-6] WHERE 1 + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + + //inserimento ammonizione su tab giocatore mediante update + switch ($tipo) + { + case 1: + $query = $mysqli->prepare("UPDATE `giocatori` SET `gialli`= gialli + 1 WHERE id = ?"); + $query->bind_param('s',$giocatore); + $query->execute(); + break; + case 2: + $query = $mysqli->prepare("UPDATE `giocatori` SET `rossi`= rossi + 1 WHERE id = ?"); + $query->bind_param('s',$giocatore); + $query->execute(); + break; + default: + //errore + break; + + } + + //ultima operazione: chiusura connessione DB + $query->close(); + return 1; + } + //STOP + public function stopMatch($partita, $uid) + { + //Prima di tutto definisci ts fine. + $tsEnd = time(); + //TERMINE PARTITA + //segna ts stop, aggiorna punteggi squadre in base a sq vincente/pareggio/perdente + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + + //UPDATE `partite` SET `t_stop`= ? WHERE id = ? + //TERMINE PARTITA: upd ts + $query = $mysqli->prepare("UPDATE `partite` SET `t_stop`= ? WHERE id = ?"); + $query->bind_param('ss',$tsEnd,$partita); + $query->execute(); + + //logica punti classifica: + //vinta +3pt, pari +1pt, persa 0 + //cerca partita, segna ts fine, fetcha squadre, confronta punteggi, cerca squadre, aggiorna punteggi squadre + $query = $mysqli->prepare("SELECT * FROM `partite` WHERE id= ?"); + $query->bind_param('s',$partita); + $query->execute(); + $result = mysqli_stmt_get_result($query); + $row = $result->fetch_array(MYSQLI_ASSOC); + + $s1 = $row['s1']; + $s2 = $row['s2']; + $pt1 = $row['pt_s1']; + $pt2 = $row['pt_s2']; + $cat = $row['cat']; + $tipo = $row['tipo']; + + /* cat: + * 1 class gironi/generale + * 2 class playoff + * 3 class playout + */ + + //query generica + //UPDATE `squadre` SET `pt`=[value-4] WHERE id = ? + if($pt1 > $pt2) + { + //vince s1, segna +3 a s1 + $query = $mysqli->prepare("UPDATE `squadre` SET `pt`=pt + 3 WHERE id = ?"); + $query->bind_param('s',$s1); + $query->execute(); + + switch ($cat) + { + case 1: + $query = $mysqli->prepare("UPDATE `squadre` SET `pt_gir`=pt_gir + 3 WHERE id = ?"); + $query->bind_param('s',$s1); + $query->execute(); + break; + case 2: + $query = $mysqli->prepare("UPDATE `squadre` SET `pt_poff`=pt_poff + 3 WHERE id = ?"); + $query->bind_param('s',$s1); + $query->execute(); + break; + case 3: + $query = $mysqli->prepare("UPDATE `squadre` SET `pt_pout`=pt_pout + 3 WHERE id = ?"); + $query->bind_param('s',$s1); + $query->execute(); + break; + default: + die(); + break; + } + } + else if($pt1 < $pt2) + { + //vince s2, segna +3 a s2 + $query = $mysqli->prepare("UPDATE `squadre` SET `pt`=pt + 3 WHERE id = ?"); + $query->bind_param('s',$s2); + $query->execute(); + + switch ($cat) + { + case 1: + $query = $mysqli->prepare("UPDATE `squadre` SET `pt_gir`=pt_gir + 3 WHERE id = ?"); + $query->bind_param('s',$s2); + $query->execute(); + break; + case 2: + $query = $mysqli->prepare("UPDATE `squadre` SET `pt_poff`=pt_poff + 3 WHERE id = ?"); + $query->bind_param('s',$s2); + $query->execute(); + break; + case 3: + $query = $mysqli->prepare("UPDATE `squadre` SET `pt_pout`=pt_pout + 3 WHERE id = ?"); + $query->bind_param('s',$s2); + $query->execute(); + break; + default: + die(); + break; + } + } + else if($pt1 == $pt2) + { + //pareggio, segna +1 a s1 e +1 a s2 + //s1: + $query = $mysqli->prepare("UPDATE `squadre` SET `pt`=pt + 1 WHERE id = ?"); + $query->bind_param('s',$s1); + $query->execute(); + + //s2: + $query = $mysqli->prepare("UPDATE `squadre` SET `pt`=pt + 1 WHERE id = ?"); + $query->bind_param('s',$s2); + $query->execute(); + + switch ($cat) + { + case 1: + $query = $mysqli->prepare("UPDATE `squadre` SET `pt_gir`=pt_gir + 1 WHERE id = ?"); + $query->bind_param('s',$s1); + $query->execute(); + + $query = $mysqli->prepare("UPDATE `squadre` SET `pt_gir`=pt_gir + 1 WHERE id = ?"); + $query->bind_param('s',$s2); + $query->execute(); + break; + case 2: + $query = $mysqli->prepare("UPDATE `squadre` SET `pt_poff`=pt_poff + 1 WHERE id = ?"); + $query->bind_param('s',$s1); + $query->execute(); + + $query = $mysqli->prepare("UPDATE `squadre` SET `pt_poff`=pt_poff + 1 WHERE id = ?"); + $query->bind_param('s',$s2); + $query->execute(); + break; + case 3: + $query = $mysqli->prepare("UPDATE `squadre` SET `pt_pout`=pt_pout + 1 WHERE id = ?"); + $query->bind_param('s',$s1); + $query->execute(); + + $query = $mysqli->prepare("UPDATE `squadre` SET `pt_pout`=pt_pout + 1 WHERE id = ?"); + $query->bind_param('s',$s2); + $query->execute(); + break; + default: + die(); + break; + } + } + + $query = $mysqli->prepare("UPDATE `arbitri` SET `curmatch`= NULL WHERE id = ?"); + $query->bind_param('s',$uid); + $query->execute(); + + //ultima operazione: chiusura connessione DB + $query->close(); + return 1; + } + + public function fetchPartite($torneo, $uid) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `partite` WHERE torneo=? AND arb=? AND t_stop = 0 ORDER BY t_prog ASC"); + $query->bind_param('ss',$torneo,$uid); + $query->execute(); + $result = mysqli_stmt_get_result($query); + + $rows = array(); + while ($row = $result->fetch_assoc()) + { + $rows[] = $row; + } + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $rows; + + } + + public function fetchPlayers($squadra) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `giocatori` WHERE squadra=? ORDER BY n ASC"); + $query->bind_param('s',$squadra); + $query->execute(); + $result = mysqli_stmt_get_result($query); + + $rows = array(); + while ($row = $result->fetch_assoc()) + { + $rows[] = $row; + } + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $rows; + + } + + public function fetchArbs($tourn) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `arbitri` WHERE torneo=?"); + $query->bind_param('s',$tourn); + $query->execute(); + $result = mysqli_stmt_get_result($query); + + $rows = array(); + while ($row = $result->fetch_assoc()) + { + $rows[] = $row; + } + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $rows; + + } + + public function fetchTourneys() + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `torneo` WHERE 1 ORDER BY t DESC"); + //$query->bind_param('s',$squadra); + $query->execute(); + $result = mysqli_stmt_get_result($query); + + $rows = array(); + while ($row = $result->fetch_assoc()) + { + $rows[] = $row; + } + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $rows; + + } + + public function fetchSquadreTourn($torneo) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `squadre` WHERE torneo=? ORDER BY n ASC"); + $query->bind_param('s',$torneo); + $query->execute(); + $result = mysqli_stmt_get_result($query); + + $rows = array(); + while ($row = $result->fetch_assoc()) + { + $rows[] = $row; + } + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $rows; + + + } + + public function fetchArbsTourn($torneo) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `arbitri` WHERE torneo=? ORDER BY nome ASC"); + $query->bind_param('s',$torneo); + $query->execute(); + $result = mysqli_stmt_get_result($query); + + $rows = array(); + while ($row = $result->fetch_assoc()) + { + $rows[] = $row; + } + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $rows; + + + } + public function fetchSquadre($matchid) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `partite` WHERE id=?"); + $query->bind_param('s',$matchid); + $query->execute(); + $result = mysqli_stmt_get_result($query); + + $row = $result->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $row; + + } + + public function curMatch($uid) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `arbitri` WHERE id=?"); + $query->bind_param('s',$uid); + $query->execute(); + $result = mysqli_stmt_get_result($query); + $row = $result->fetch_array(MYSQLI_ASSOC); + + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $row['curmatch']; + + } + + public function curTourn($uid) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `arbitri` WHERE id=?"); + $query->bind_param('s',$uid); + $query->execute(); + $result = mysqli_stmt_get_result($query); + $row = $result->fetch_array(MYSQLI_ASSOC); + + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $row['torneo']; + + } + + public function tournData($torneo) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `torneo` WHERE id=?"); + $query->bind_param('s',$torneo); + $query->execute(); + $result = mysqli_stmt_get_result($query); + $row = $result->fetch_array(MYSQLI_ASSOC); + + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $row; + + } + + public function getFalli($sid) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `squadre` WHERE id=?"); + $query->bind_param('s',$sid); + $query->execute(); + $result = mysqli_stmt_get_result($query); + $row = $result->fetch_array(MYSQLI_ASSOC); + + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $row['falli']; + + } + + public function getFalliSq($sid) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `partite` WHERE id=?"); + $query->bind_param('s',$sid); + $query->execute(); + $result = mysqli_stmt_get_result($query); + $row = $result->fetch_array(MYSQLI_ASSOC); + $query->close(); + + if($sid == $row['s1']) + { + return $row['falli_s1']; + } + else if($sid == $row['s2']) + { + return $row['falli_s2']; + } + } + + public function getPoints($mid,$sn) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `partite` WHERE id=?"); + $query->bind_param('s',$mid); + $query->execute(); + $result = mysqli_stmt_get_result($query); + $row = $result->fetch_array(MYSQLI_ASSOC); + + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + + if($sn == 1) + { + return $row['pt_s1']; + } + else if($sn == 2) + { + return $row['pt_s2']; + } + } + + public function isRigore($sid) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `squadre` WHERE id=?"); + $query->bind_param('s',$sid); + $query->execute(); + $result = mysqli_stmt_get_result($query); + $row = $result->fetch_array(MYSQLI_ASSOC); + + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + + + if($row['rigori'] == 0) + { + if($row['falli'] == 5) + { + $query = $mysqli->prepare("UPDATE `squadre` SET `rigori`=rigori + 1 WHERE id = ?"); + $query->bind_param('s',$sid); + $query->execute(); + return 1; + } + else + { + return 0; + } + } + else + { + $div = $row['falli']/$row['rigori']; + if($div == 5) + { + $query = $mysqli->prepare("UPDATE `squadre` SET `rigori`=rigori + 1 WHERE id = ?"); + $query->bind_param('s',$sid); + $query->execute(); + return 1; + } + else + { + return 0; + } + } + $query->close(); + } + + public function nSquadre($torneo) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `torneo` WHERE id=?"); + $query->bind_param('s',$torneo); + $query->execute(); + $result = mysqli_stmt_get_result($query); + $row = $result->fetch_array(MYSQLI_ASSOC); + + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $row['nsquadre']; + + } + + public function nPlayers($squadra) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `squadre` WHERE id=?"); + $query->bind_param('s',$squadra); + $query->execute(); + $result = mysqli_stmt_get_result($query); + $row = $result->fetch_array(MYSQLI_ASSOC); + + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $row['nplayers']; + + } + + public function fetchGironi($tourn) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `gironi` WHERE torneo=? ORDER BY lettera ASC"); + $query->bind_param('s',$tourn); + $query->execute(); + $result = mysqli_stmt_get_result($query); + + $rows = array(); + while ($row = $result->fetch_assoc()) + { + $rows[] = $row; + } + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $rows; + + } + + public function fetchClassGrn($tourn, $grn) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `squadre` WHERE torneo=? AND girone=? ORDER BY pt_gir DESC"); + $query->bind_param('ss',$tourn,$grn); + $query->execute(); + $result = mysqli_stmt_get_result($query); + + $rows = array(); + while ($row = $result->fetch_assoc()) + { + $rows[] = $row; + } + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $rows; + + } + + public function fetchClassPoff($tourn, $tipo) + { + //restituisce array con elenco partite dato un torneo + /*<option value="1">Gironi</option> + <option value="2">Ottavi</option> + <option value="3">Quarti</option> + <option value="4">Semifinali</option> + <option value="5">Finale</option>*/ + //Connessione SQL + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + + switch($tipo) + { + default: + $query = $mysqli->prepare("SELECT * FROM `squadre` WHERE torneo=? ORDER BY pt_poff DESC"); + break; + case 2: + $query = $mysqli->prepare("SELECT * FROM `squadre` WHERE torneo=? AND tipo=2 ORDER BY pt_poff DESC"); + break; + case 3: + $query = $mysqli->prepare("SELECT * FROM `squadre` WHERE torneo=? AND tipo=3 ORDER BY pt_poff DESC"); + break; + case 4: + $query = $mysqli->prepare("SELECT * FROM `squadre` WHERE torneo=? AND tipo=4 ORDER BY pt_poff DESC"); + break; + case 5: + $query = $mysqli->prepare("SELECT * FROM `squadre` WHERE torneo=? AND tipo=5 ORDER BY pt_poff DESC"); + break; + } + $query->bind_param('s',$tourn); + $query->execute(); + $result = mysqli_stmt_get_result($query); + + $rows = array(); + while ($row = $result->fetch_assoc()) + { + $rows[] = $row; + } + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $rows; + + } + + public function fetchClassPout($tourn,$tipo) + { + //restituisce array con elenco partite dato un torneo + /*<option value="1">Gironi</option> + <option value="2">Ottavi</option> + <option value="3">Quarti</option> + <option value="4">Semifinali</option> + <option value="5">Finale</option>*/ + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + switch($tipo) + { + default: + $query = $mysqli->prepare("SELECT * FROM `squadre` WHERE torneo=? ORDER BY pt_pout DESC"); + break; + case 2: + $query = $mysqli->prepare("SELECT * FROM `squadre` WHERE torneo=? AND tipo=2 ORDER BY pt_pout DESC"); + break; + case 3: + $query = $mysqli->prepare("SELECT * FROM `squadre` WHERE torneo=? AND tipo=3 ORDER BY pt_pout DESC"); + break; + case 4: + $query = $mysqli->prepare("SELECT * FROM `squadre` WHERE torneo=? AND tipo=4 ORDER BY pt_pout DESC"); + break; + case 5: + $query = $mysqli->prepare("SELECT * FROM `squadre` WHERE torneo=? AND tipo=5 ORDER BY pt_pout DESC"); + break; + } + $query->bind_param('s',$tourn); + $query->execute(); + $result = mysqli_stmt_get_result($query); + + $rows = array(); + while ($row = $result->fetch_assoc()) + { + $rows[] = $row; + } + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $rows; + + } + + public function fetchClassCC($tourn) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `giocatori` WHERE 1 ORDER BY goal DESC"); + // $query->bind_param('s',$tourn); + $query->execute(); + $result = mysqli_stmt_get_result($query); + + $rows = array(); + while ($row = $result->fetch_assoc()) + { + $rows[] = $row; + } + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $rows; + + } + + public function fetchClass($tourn) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `squadre` WHERE torneo=? ORDER BY pt DESC"); + $query->bind_param('s',$tourn); + $query->execute(); + $result = mysqli_stmt_get_result($query); + + $rows = array(); + while ($row = $result->fetch_assoc()) + { + $rows[] = $row; + } + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $rows; + + } + + public function togglePls($chkbx,$s1,$s2) + { + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + + $query = $mysqli->prepare("UPDATE `giocatori` SET `isActive`= 0 WHERE squadra= ?"); + $query->bind_param('s',$s1); + $query->execute(); + + $query = $mysqli->prepare("UPDATE `giocatori` SET `isActive`= 0 WHERE squadra= ?"); + $query->bind_param('s',$s2); + $query->execute(); + + $max = count($chkbx); + for($i=0; $i<$max; $i++) + { + $id = $chkbx[$i]; + $query = $mysqli->prepare("UPDATE `giocatori` SET `isActive`=1 WHERE id = ?"); + $query->bind_param('s',$id); + $query->execute(); + } + + /* $max2 = count($chkbx2); + for($j=0; $j<$max2; $j++) + { + $id2 = $chkbx2[$j]; + $query = $mysqli->prepare("UPDATE `giocatori` SET `isActive`=1 WHERE id = ?"); + $query->bind_param('s',$id2); + $query->execute(); + }*/ + + /* $query = $mysqli->prepare("UPDATE `giocatori` SET `isActive`= 1 WHERE id = ? AND squadra= ?"); + $query->bind_param('iss',$status,$uid,$squadra); + $query->execute(); */ + + //ultima operazione: chiusura connessione DB + $query->close(); + return 1; + } + + public function fetchSquadraData($squadra) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `squadre` WHERE id=?"); + $query->bind_param('s',$squadra); + $query->execute(); + $result = mysqli_stmt_get_result($query); + + $rows = array(); + while ($row = $result->fetch_assoc()) + { + $rows[] = $row; + } + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $rows; + + + } + + public function proxMatches($tourn) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + $ts = time(); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `partite` WHERE torneo=? AND t_start=0 AND t_prog > ? ORDER BY t_prog ASC"); + //$query = $mysqli->prepare("SELECT * FROM `partite` WHERE torneo=? AND t_start=0 ORDER BY t_prog DESC"); + $query->bind_param('si',$tourn,$ts); + //$query->bind_param('s',$tourn); + $query->execute(); + $result = mysqli_stmt_get_result($query); + + $rows = array(); + while ($row = $result->fetch_assoc()) + { + $rows[] = $row; + } + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $rows; + + } + + public function curMatches($tourn) + { + //restituisce array con elenco partite dato un torneo + + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + $ts = time(); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + $query = $mysqli->prepare("SELECT * FROM `partite` WHERE torneo=? AND t_start > 0 AND t_stop=0 ORDER BY t_start ASC"); + $query->bind_param('s',$tourn); + $query->execute(); + $result = mysqli_stmt_get_result($query); + + $rows = array(); + while ($row = $result->fetch_assoc()) + { + $rows[] = $row; + } + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $rows; + + } + + public function toggleVote($trn, $status) + { + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + if($status == 1) + { + $query = $mysqli->prepare("UPDATE `torneo` SET `voteStatus`= 1 WHERE id = ?"); + } + else if($status == 2) + { + $query = $mysqli->prepare("UPDATE `torneo` SET `voteStatus`= 2 WHERE id = ?"); + } + else + { + die(); + } + $query->bind_param('s',$trn); + $query->execute(); + $query->close(); + return 1; + + } + + public function TTrcvdMsgs($guid, $tipo) + { + //Connessione SQL + $mysqli = new mysqli(DBH, DBU, DBP, DBN); + //Query: SELECT * FROM `partite` WHERE torneo = ? ,dove torneo = $torneo + switch ($tipo) + { + case 0: + $query = $mysqli->prepare("SELECT * FROM `messaggi` WHERE recipient=? ORDER BY ts_sent DESC"); + break; + case 1: + $query = $mysqli->prepare("SELECT * FROM `messaggi` WHERE recipient=? AND ts_read= 0 ORDER BY ts_sent DESC"); + break; + case 2: + $query = $mysqli->prepare("SELECT * FROM `messaggi` WHERE recipient=? AND ts_read > 0 ORDER BY ts_sent DESC"); + break; + } + // $query = $mysqli->prepare("SELECT * FROM `messaggi` WHERE recipient=? ORDER BY ts_sent DESC"); + $query->bind_param('s',$guid); + $query->execute(); + $result = mysqli_stmt_get_result($query); + + $rows = array(); + while ($row = $result->fetch_assoc()) + { + $rows[] = $row; + } + + // $rows = $query->fetch_assoc(); + //ultima operazione: chiusura connessione DB + + $query->close(); + return $rows; + + + } +} + + diff --git a/lib/sns.php b/lib/sns.php new file mode 100644 index 0000000..a1bf7c2 --- /dev/null +++ b/lib/sns.php @@ -0,0 +1,87 @@ +<?php + +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +/** + * Description of sns + * + * @author corradomulas + */ +require_once "Mail.php"; +require 'aws/aws-autoloader.php'; + +use Aws\Sns\SnsClient; +use Aws\Exception\AwsException; + +class snsrun { + //put your code here + public function sendEmail($to, $sub, $msg, $from) + { + // Pear Mail Library + $subject = 'Insert subject here'; // subject of mail + + $headers = array( + 'From' => $from, + 'To' => $to, + 'Subject' => $sub, + 'Reply-To' => $from, + 'X-Mailer' => "CM TLC", + ); + + $smtp = Mail::factory('smtp', array( + 'host' => 'ssl://smtphost', + 'port' => '465', + 'auth' => true, + 'username' => '', //your gmail account + 'password' => '' // your password + )); + + // Send the mail + $mail = $smtp->send($to, $headers, $msg); + + //check mail sent or not + if (PEAR::isError($mail)) { + return 0; + } else { + return 1; + } + } + public function sendSMS($num, $msg) + { + // Hard-coded credentials + $SnSclient = new SnsClient([ + 'version' => 'latest', + 'region' => 'eu-west-1', + 'credentials' => [ + 'key' => '', + 'secret' => '', + ], + ]); + + //$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic'; + try { + $result = $SnSclient->publish([ + "MessageAttributes" => [ + 'AWS.SNS.SMS.SenderID' => [ + 'DataType' => 'String', + 'StringValue' => 'RUNIdP' + ], + 'AWS.SNS.SMS.SMSType' => [ + 'DataType' => 'String', + 'StringValue' => 'Transactional' + ] + ], + 'Message' => $msg, + 'PhoneNumber' => $num, + ]); + var_dump($result); + } catch (AwsException $e) { + // output error message if fails + error_log($e->getMessage()); + } + } +} diff --git a/logout.php b/logout.php new file mode 100644 index 0000000..067d681 --- /dev/null +++ b/logout.php @@ -0,0 +1,14 @@ +<?php + +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +require '/sda1/www/idp.runpolito.ml/vendor/autoload.php'; +require_once '/sda1/www/idp.runpolito.ml/lib/_autoload.php'; +//session_start(); +$auth = new \SimpleSAML\Auth\Simple('runpolito-sp'); +SimpleSAML_Session::getSessionFromRequest()->cleanup(); +$auth->logout(); diff --git a/manager.php b/manager.php new file mode 100644 index 0000000..647962c --- /dev/null +++ b/manager.php @@ -0,0 +1,1045 @@ +<!DOCTYPE html> +<!-- +To change this license header, choose License Headers in Project Properties. +To change this template file, choose Tools | Templates +and open the template in the editor. +--> +<html> + <head> + <meta charset="UTF-8"> + <title> + + + + + + + + + + + isAuthenticated()) { + SimpleSAML_Session::getSessionFromRequest()->cleanup(); + // Show login link. + print('Login'); +}*/ + +//Auth livello 1: +$auth->requireAuth(); +SimpleSAML_Session::getSessionFromRequest()->cleanup(); + +//print_r($auth->getAttributes()); + +$guid = $auth->getAttributes()['guid'][0]; +//print_r(r4fb::fetchUsers($guid)); +$nome = r4fb::fetchUsers($guid)[0]['nome']; +$cognome = r4fb::fetchUsers($guid)[0]['cognome']; +$matr = r4fb::fetchUsers($guid)[0]['matr']; +//Auth livello 2: +$tipo = trim(r4fb::fetchUsers($guid)[0]['tipo']); +//print $tipo; +if($tipo != 1 && $tipo != 2) +{ + $auth->logout(); + header("Location: index.php?error=Privilegi insufficienti."); + die("su cunnu e tzia rua bagassa"); +} + + +?> + . + +*/ +/** + * Description of manager + * + * @author corradomulas for Run PoliTo - Corso Duca degli Abruzzi 24, 10129 Torino (TO) + */ +// put your code here + + //MAIN: + // echo $_SESSION['tourn']; + ?> + +
+
+ + +
+ + Utente + Torneo + Arbitri + Squadre + Giocatori + Calendario + Partite + Messaggi +
+ +
+ + + + + + + +
+ + +
+ porco dio + +
+
    +
  • + + +
  • +
  • + + +
  • +
  • + + (necessario solo per invio credenziali) +
  • +
  • + + +
  • +
+ +
+ +
+
+ porca madonna + +
+
+ porco gesoo + +
+
+ porco giuseppe + +
+
+ porci re magi + +
+
+ porco abramo + +
+
+ porco caino + +
+ +
+ + +
+ +
+
+ + +
+ +
+ +
+ +
+
+ + +
+
merda + +
+
+ + +
+ +
+
+
+ '; + + for($i=0; $i < $nsq; $i++) + { + echo ' +
+ Squadra '.($i+1).' + + + + + + + + +
'; + } + + echo ''; + echo ''; + + if(isset($_POST['insq'])) + { + $max = sizeof($_POST['nome']); + $tourn = $_SESSION['tourn']; + echo $tourn; + for($i=0; $i < $max; $i++) + { + $nome = $_POST['nome'][$i]; + $colore = $_POST['colore'][$i]; + $npls = $_POST['npls'][$i]; + $girone = $_POST['girone'][$i]; + + r4fb::insSq($tourn, ($i+1), $nome, $colore, $npls, $girone); + } + } + ?> +
+
+ +
+ +
+
+
    +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • + + + + format('H:i'); + $tsinizio = strtotime($_POST['tourntime']); + $org = $_POST['org']; + $loc = $_POST['location']; + $nome = $_POST['nome']; + $nsquadre = $_POST['nsquadre']; + $ngironi = $_POST['ngironi']; + + r4fb::insTorneo($tsinizio,$nome,$org,$loc,$guid,$nsquadre,$ngironi); + } + + ?> +
+ +
+
+ +
+
+ +
+
+ +
+ +
+ + +
+ + +
+ +
+
+ + +
+ +
+ + '; + + for($i=0; $i < $npl; $i++) + { + echo ' +
+ Giocatore '.($i+1).' + + +
'; + } + + echo ''; + echo ''; + } + + if(isset($_POST['insp'])) + { + $max = sizeof($_POST['nome']); + $team = $_SESSION['team']; + echo $team; + for($i=0; $i < $max; $i++) + { + $nome = $_POST['nome'][$i]; + $email = $_POST['email'][$i]; + $n = $i+1; + if(!r4fb::insPlayer($n, "1", $nome, "notdef", $team, $email)) die("merdacciasecca"); + } + } + ?> +
+
+ + + + + + + + + + + + + + diff --git a/simplesamlphp-1.16.1.tar.gz b/simplesamlphp-1.16.1.tar.gz new file mode 100755 index 0000000000000000000000000000000000000000..5cb7c1be2dbc8c20f57ee6ef9dc8209511e8562c GIT binary patch literal 2791246 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≈wMmJJr~yZw7l9rX3t+Uxgx=Z>4|h8E1Z^YZiO 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
  • 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

    G`(U;0!{8OMvfP{lzlMj`-;w@rXSv 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

    J@e0`T>A?wHlhh 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%0A+fe@OEo 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

    h zz+cVB1AhQ;WE_fLyv~aTIKghd_@~Rj;vOO8X+R!OOfD262d5n1X&m-dl^h=q(uu0D z7MumB?k2i|{i7$|0CD)oTgR^w686Q9o#ZSZW9r7im^4OLc^REgjT4*mBp+p<(!gf{ zgLKNQUyKL7S_rn6k7u!&W;_u1{swe(#K5aal>$K}-kkodg z?)+_&0n`~dL#Xd%;DxExd!R>r0Kla^B*W}OHk7t=soN9>F&4M23rfk1@=|kBXd#=G z=0N*zUSVckAU8e1y7gq9UX{~X5N<&(xh^v(nX^=IapnP8D?6BEV?6YS-H+Xm;IO-& z&B}f{$&wwkvlIejj(7f?z^`oLrU15FR(v&w)@C7$2B1BE^;Pnvv*0$RxYp0u?zeBg z>%H3jVfR%h`8w#KQpEvRqxPGzbmJ?Xb7+SaumUZ=jyP}H=XyBJCZID<#N zQv>}Dj}A@_whvzQe%L)a-aFU_M)B^p|1!;o>=`2P4_h3%>uyKag6R0DDR6+&NV>%L z^F|Ok+I=bJ+j@0uzCrg3lOy%iwf$uv6a>N;G`BH4nADe;&AgmXCK&!@wrbyi46e8r zPru^wad9shHwc(N7C9QhAOCo8^yl8m-s|0iHz%5ZxL2|%foL3#vk-Yiay2mrjz#wi z!@t^lz4r_5R4t+D9)lF?1a6bqIpL3m8^H7m+1I4gO8|y)b7@6WWK3hNIj1Tlf-1z& z#)N4_u+Z(Ox_I&WxV<=)a>2tua^;C_@HHIgn6I8~3GiwNF>;nknN&M03HkFX1CRGo z7VePa46?E>AR6??w#5vir4pS?C&^Zs1e!?0&#vPXV4F3RaA3pLoD*>RdXhyl>_hs{ zeJE!E61{CRhC0q9&_nn?`1Dw#f=>YJQbH=m3Zw{JBUHv%%dRaPC>KuXDE>7rtXX69 zdME1(N!;*OMCg#q52^l-d@HxL4GM01+cM>mMJk3p~O7iW`6Y zX8Zfz!MFdpyL}Q|c?IiNgP`!a7Xq>V@zI9d!QTE4Td($ZdfP|4JG=WQdqSRRx()E$ zz3m=uM^jc|8*m1@M?xa)38JzujzI{fO}9|{AT`;;;-rTY|8M?^m)U?JKF-o92b%2c zQ~YU~fUlF_yxA^;4I|twG?72;jR!J(88WyP1!i(9=V!BN#=;NG6&&d&4*YPOCWu$o z24|35+U1HK3>NOjv&*%iWgB~(V%9(^8p|d1y!@sWaUc1)5iYE}JnT||SJMKVW3P?H#Rk^6 zX^)IGiGBT?p}N#0tbPrZdVZDeXbeIn3zX!Y2&Ty7?-8P z$lkFrQI@7)>=OT6;@h|sF!OAa5UerPP2i*FQ@JxTRAKd~VGq~PHkal4;?pv#yYo)a z;$ieu{<|hepcAX;wLxMP_*cvW7#NQ>d#-d_&&6Ljqs=n?9GbZO6BLD_loQz61mD(V zA{ZCKYL&(6T-xYuvC=xEFC(?>)VxdWua?xjOX5$ndv|GNDXyEuW1OSg{zW#1d|4`K zhHBW@pvTyUwmkR?BNpKW2WTRO38)Ykhc5^4rf^m88ws|zR=F^O1|cUDPJ@1}K-o>W zkV@DWM?SFGR(T<0ZW7MGgSn8v;%VtmnakbTJ=%TQ+us#Dhp%jK*CnV38gy#cHpG-d z_qw*~1xONcPfM`<$<*X`VA9dp#q^em5JUn4k}ZT+&OJ!SkjRD-;UJJ<+5g5t<GH}!JSgq*n2;jp*@rvCeUrhLYBK#Cd({tsEf*=1(Muc!!7BlFQY-1f_SMsb`( ziS=lxa6m80ms_uncO&qLi=>`t%Pi=u;4JbwpL$z?;5mX|rAi8R#Me5>w}Es!f;ci5 znZ;T(IPt@@hd|;VASWOTeW?8i)Ws1BsoRtkRy6;>jmwY zJZ#)%LD=zqg4I=;ej3Mtf7piX{ociEHxS^SBTu90)Sq1z0hrJhR zE8_M5$*d4x?TNJqW3^b@VzJgsPYyv8(-eGQ1bPpZLWgONPAwx4PvVy*_Sni!p+|`V zFdDDi+(bf@|0AOvt%Sr<8UsX9&Y$Q#0KvFYU|O{f&bmLwNAv#tfJo+_=W3uLkU(_9 z?s*YEVm5)+EV)dt5Y>i7@m`?8wK!P}Ef-Lu@R!nop8S}Z(wQBInFr*{L(S^c{=7m# z4CIS}jB*EPH-#KS%>Y~^!f6g@=HGP6%ss;JR3TthS*5T}O%?m0Bv z!d#Hrr%6jyLOv6cMkZ>(|Fi>M$A2qwF-`Ilc;f2&vLXbO=ZT>l5KxB*Rv5aZTAbgiNzXU+$ORL#2u;I~HW0Yt0lwO2sqqZq&b-u({50!Gu)vyPZ+?)d3%FFG$%DOqmOQi^BmHi9m z0IJd)c0t>$J3Z$fOZH>zyIOK=tz273-(>HvjR*Y4q}Beam29GFeZ|(ThbJ_{%AKU> zK1lR*x)MQp9 zkkRlNw=hLfil*+`yfMLOKoQFsD*BKef<2na{1SuVrKAQc{DqB(%*xSgcOUze%o-WR zXo=08(@CgGna58AR_4R7ypovwGhW$h{vBETkY7)o`NE#5sR_fNi(x%|*n_XJ;UcuE zdgH|nS5-fC6SKv_ll%1zoJDF#`)^~_?A-&ut~P7Q_RyRP9S8yqs~1oy6G zwGA2qnxFDF{^ND`V08sFIQn~oY^&o9VweS@u(L4ty9{MF-)P2Ph^wsh;)~eKRQFGZ z(g9xpA%Y0|J91@m25|}5!aoR#mZM}o< zfA>3&vym1U)qXjD=T~RSXK3U5A<0*$we_q>buunRS@xs&(d zo$%!LR6-yFO+?@z%@2p$%nHzR2ucNeqZpgk-zM3`lF&{wU+d~APq?1r3DFr$KAp+E{Q^x-15U+F_OiQ1jM zMS-|5g2+>)D?u|D+&IB7UKP_pmsMxU)ij+z5{h(c=&FfSfq>m!p^;GiZq(5o78e)w z8Q%t0OpjOs=u~1>Cb=}Ti~KIwQ6|Gq%b}3|E|hjeSH^+_4+ZA|1&qfpU|X)R4tfIl z9p$bplar%2yA-jAp(y9`VTbknxhkL$b1!Buk-tDR>0kcZg9Nz$yZ3Ty@70^5-Hy|F z>rga0Jlfkj*~Nw(`NQ#>moN9W_r#FBt?ljI<6~EIRN=c=a1INV$OU_b^$>W@;;cIQ z3_2cgBN0->P^(4}XD!rn%lT9$IO1%fFRY*yuG*D-?2SrD)?jElM>(Zh#pC3F(tsa) z#mmUUR&&H4F~JOQuR3%Mi21?{?yfT1ObMbPLgg{xYd7=SGL5A;ds@sl2+tbTHG)0%agX)w{?VYF;0q>Y>s>Y1>TA-Oq}|}W2II=Z zp&MdxYu0tCZ~^0io^$#Tf6?C+g{|%9dCcX>zwJdfHhvHx-=qgZlQRO5pvvg@Fc`Z| z5Ab37NU3%Mdt7^ve2?`EEJ6dHIB^WL@kpJSSV6|DL_!%|m}1n#qlcRqrP&~W1+ztw zkm`@~_-j2*keV+z-0$^pKILC{(83CI>tO5x6R9}+0f?)-KRH!zSa3La`lG}^~eN8WP;CGZzTLagF=GZ?+4=Bw5qJ{Q~V$~$( zr|jOzfgPrj(Xe&eAvfY#Ec%dk?1RGbs;V|oaiO5fcW&rTwFS}~1LQs>%c~|FA|=c>4ds0l~^`V_HAP5 zMZ^+u9Vs^y#@m5W6DzSIZbJ6`+3ecBtKF`?MphiI5Ipegb&}thfI!}OR9gqhKbwE_Hz?IANLte}w zKP~z}n6N*~RAu2mI;?cSNF8#XZOpOSSRfvFv07-txPsehio8c%m` zZ`-PvNic@7(dI0y)?V$YL7qb1?WFkYU-vP$;Ief^lS4`hbDf-}p#Fy9IDI2IAo-pd z^WHyfY@PQ)kg~{aIz^ofYWUgVSZT7+#Yj*UY0(o*P2eg?!r=gres2K0fVn_#uEt`Z zYibzqK$=O0 z2iq=?gUq`YI>H+eJ~+HOV~iP*3|J5^pzuhm+je%ls&^YPHAt7)kbiGTr2lq76U-f& zUn*LS%GE)+s;Zy%uPf~}jIyTz>kPpy0F0RDggYMnUFR+BYknaX#MKxQCE|Ok#*TVT z{g}15+}s^7Krd~QTAD7lz(lI57o~P2CvV%RB`GTT?PA1*$+JR@b;V&uijq?0`G{yI z!v!NhyS5)oKKaS8&V+>q%&&q)bZ8MBJ)xncjmZiRq%$OlTm8!v9u}-IYnaf|p^y|( zsL`xGP1FwtzIqs@ZOsB{y>2hnZ#KYaKqfI2P&PziC+N?$T!`7=eyT?h0 zjy_JxLh3s*LDADORdbEy*TlOj#BKhV4Dt(bzEb`9ae&`aa4i~%l@rU)N>sHyj~SpMa+OM27EP3c z2LD?HWCWjoZoVwz6Cg;3AGHuu;MTH>C(*GZDk!Pf4=mn9YCRmP+)qpZOjC*;)i0jx z$3#+N^WD^L)jSaRRSS+z#wG-0R=gK*W+=L&XQNnNY9OH}8@dnOTjVR=KIyl}z~j)P zP?rbT<6+voN1J;5zIl%o>hTBN!{gA8;U3}@%oq&8QK^J#*?%Z-`q9I7Xf${!Ff1H| zmk_9p@mg=!Td1N)Clf(WBzv_4{g=>RhZa zU1$)y(VdazZK6gP2+3yx*jLiYh^xKy_WRwxEQLh}6@tBqexmA8|N^Ed#R6&qO=fSfFlBg|f`HaG2uFYGa=j1XB>*fIL4>IB}`& z5a1VBrpIN9#vp@-1B{GuTkBB%A^X@Qj#wU#eMNCOa7o|NNS#E%D9W?Qza%bF2Zf99 zA2%EMbVgoSx^fdddXQMdK5#b~9JbE~y;*^INQjmGHZ{WKw+vmpafw3K?Oha#%Tx%30x3FL(U*iY{zAnHC>% z(C>*aQm~y(v4-$W2+|lD4=kn}=PJ!HG+8j-Q2FCJ0}9BN6=1Ng1P3#p2z1ZVk;){& zrqlk1@+vz6)9G0`=oZt9HSu5grhk#IP2OLW)Bc*Q16Qs=d5dUmB-;m?wl_91g# zsPq~z>(||NWN5$cZgd1^3B?7_ErDyV2sE3K$XQ+So=>RyDtjsX4L>?JYBcPTYG8x! zlM3B<-MxM>g6czUaU%Q`Fp{mWNlz0LFQL1Ka<&yoT_P0TLr#P8Q)vT2A8@)dFc&&U z&8JyN+;mi-G0iHhy={WCY9lKvaog2BufIkYWBOIvo|ZvcZ0T-p`ldL_u`gLQH5jje z4xLkA3G`ejVw4NW3W;361vNT*I}!VwpR_7kBKGs=-}uwG{x4Loe3g&jO*<*xXX6EG z0aw@m-B^G0c-^l5`|#o8CmWyZ|9*-O*Z)PYxQXE3Om!!m`!iLqc8d$uq8d%+#wAy< z58zM)F0d=eRdV;RlVGFcu_nH)K%gNO2|d|aC5oRL&!#ufs2N6EzG22bplgN^V#Ky zT>OYh13v8d_%IQ7`ibDS1iN?q{nqNkCr_~mEa>hb9!h+*5i#PSOQHl=f(MqUe;U19qaUTS~-B@^JJsL`-Vg_m+6L=WrlNk>j9oeQh8gG_`1_=Jnzj-Axj;r zmhHIc{AE5?KAB>D9XymC{8<8nPPJl#j27I^D5%>l{>44yCCHX8{?%)#LIE1($-)=ft`dsAY;0L4@90Q6&L<4^E`4bT5(^| zA*tZ9t3WoiYTQL<&gcasD=$aVGJ|rYn3v^kG`(aWXPiJ4$Lv7Z(j^Jvlu%EV3zvq8 z0t$+ib97IU^HGKKoX3Zon9C}^XnI82si>W53QqUww(_9^C9sM8b#(AA21MOwzC#Rt86_Z@3q_7Y<16vMKNvju2$twE6JKJn=Gm2?@ZDN?oXRg zD%8PQHBmhB%ef8xLw*9LfMiZGkwZ|)Zp6HV?V4wW9?sPo2 z0a>BVo#;nL~t1ky&|L!9$TUjSnQe(*DFpy04!|pmMoHh6) zo81iDJv?3y=(ZML4<6mj5A21a5%ug^5f6!mF2zM>8>!kh@R-z@Xu6EiVfh5nkeb#B ze3T9`F*FAsKJj!WCxZL3nN}J?0G&@#P!=4FGX?s(`#K*$9MD7Pax%8hZ9ccYM{Miha%DB@ibYitW77pQKIe7gS5wCZUWYop1=JMY4@ zt8Rs)lG30(ue%Zwe7C(4+A*rxm5}ZEN`w#3z8LOFf7WR>{WRA99a3T@aoM?y(p~BQ z)*o*?eCq1|o;>=j|NA5#*8fQ*A6PC}&xfqI_FiO@Amf1HCr8Rb@OGRmUp8e9%zq=SS zET^NSH7W-4VYW$wZ>se`L-ACC=LKXbNXVD}fmr@Wam--5zGYOY&!+^DR~LA&1Y=FZLX^QN{710!CbBhasy9iMua-` zSaHqKDs)KsLFiLeUf;2p4dY~$f4J`Mgg&zIyO)nuB3;=u=q{nPvH>lu?75k=lCIz* zr(*f=*0>`}jc?2=4L+QNFR+0og$kG`Va8f~#azrmx13bs=#&%8aTzhd6+U64(0NIL z7^HthLJgwXFhfrskn+>=eGP8P*A%a~{Kr*B?&C_#($~kvJ4J(C1mq5FHGzQ6XRiBS z=hK+~CwAs#ighv;VE%to%m1%GUia+(>p~>>%>RFaPXqfu7)e~Fi?Bib2u#lO96Oo_ z^2I+rm4X!+3Y=*87bj+v<^1scl}{tpBWN2FcI-JmQ>x!AeE%1_`24B9|BoL&^yL5b zCmRnx-~UhX;rnmjalH9&tqZOFfKc^Eq8Lfoz~!7(>J3QZRk{LCgk^~s*c`#am)GSC zVv&(=2V?Xl6n!+~C`|$V{sl~?HUA8iqsn4iQO0OC5*yZO$Ht8X;^q_1#DvD`4w=tB zrj(Caj4x-@1^AFvOd;!Xjv~g$-JN6 zf+{Y$N+4uaj#h368h9}g><-RP#I$XMNE{_(6(?+E9=JqVvjS(&!e4ZmqHo%mdzlXn z-gPTu!}2sU6EGP+$YWO0Jw}F8M#|DO4C~-k*#)9kA&kLw_9Cd+18yn;n5Jpk4^)+Hqqv1#B>r3@rugSm@HVu;z~3RJHTH_;2(^ zsi1v8v%MXqx?Jd97%nJHhluB3L>f?Ip_VU7WK*?jk)Vc~@nc~n$^XyZyRNr!9E+m) zou?RcaT}lmf}||jXF-+{nxtZ$=)#bcog7Mw-w-n-X9>h07(f&g`{#MG^J1r~sxQ^I znE^=2azgCAViD-BzExM(y%bQ+J7k)9pon^|{05_JuHPq&MFeg`yIlAQMQvk&yOIEb zP~}Zv`Nb5j1S>E-%O{n5C?T)|7j-qE3};|hHxDA|egqc*cg$r9oUMtIDO$T$Gp7>S zaMiRsSaXRS`oy;v;@eS~X1vvWlA)8?jBS%Om;zq}USxg{`0T5d0j?QG?TyE@}@{#x2-QuaWbzN(i=v#<7 zT5NLCp(-6aVk;rRMdz*cG;VBI9`l+JrJ4UPl_s7*41+HHGnwX)_|&79V9R6AA*f3+ zhbwz?kLXM3pp5^1Ca&fo5k1R$3N3?AG#q;S;4ztzKLaDH!M7FrV_FDG3gN%5xI0wn zX7zmw-Sv(lFX7V*BeAhNNnD0lTzlWZLaWu*rc~}2Y+aIuX@^;=HE$tpd2TAuSAD~Z zRb&$wGvYS^IZw_=<~tsy^NY)wh7Yc`vVn?*I8(I~jgRkS9ZLb4aj9-Z)F1bbuZGJf za_ZP^x*19?pjN)*;7bM1L6lU7pHU5mX{VPM5E_QZOhXGuTnAkx=4u+LF%cGms807a zJl@-oi~~3YLET-1VNC^oqSRmT6E)Ct_F(Z!v!Mj%vve9e8Vm2G>l4RaznXI>-;HFK zfFpZ-_&h;Vp9*HyIGbTTYD1yH#(oZuuro7YGRV19=k`IMXW&1eN-GnMA5Z49UNWI5 zBIGVAFfc;63uFL;2b>%QF~h1Kaq+|P@xfq#ZN(7V6hzaFg!o8jYfP#S6H=>fu|ip~ z!CmMM=}aix#Nn`_8Vg>#I;-%m| zBAgN`diu$3agMpCT`W}$bt!!aROCda+6VZsenL`PI_l9zsn-!sV@$bfY_==>au?%b zhL^c3(YwdaUd0I6E7g)^vy@99F)Z3pHTh*wA)-2}DPUJNA>{^d3AISE<*ZJ@{Uh(n zxyq?Kl^I+LC<6rgkOURpVg7FSOg3@yk%V{cL4UIzqExsC0k)e9F+|i|9n39e5&+k3 z9(!`@sjE7OTg@c`((W66V4w$`D5UO2l`ke~7+I}5Yd$b>6*YHR1BExMhk`F91LdhB zqFYMCC>OJ(5Uy@}8^Bv|*b+TI68{=U*wY3ahLe6v#XI58$8FXZgKS~53pk{$F-5z8 ze0&iNS;XNYoYCIjcJ>aA_g}p{{bBp%?(@CFQvnMHR)B*;L(cV}kBucNdCbl);$g!2 zST*GUS3Uh#Wa`LWvpRWF@LvrMSOq_wlJ zyS<0uh_#XO4pdf`a*|JtXmc)}!Rpc%n-}F5RhdP6k&cb}1KA_Z2{_VJ8}T8$;=7X{ z>YoiRM=T4f$QA>`{CsQreGwFefc_zQ);(c%cktF2; z0=PS!gE8;a&&)1SX;c(hDcL>s+(hoBn8^X8L4t(usMMf9QeU2oz7?<&)10IQH?MGv z=~nHJr*p{sC1|UL$SGDJ6Ob!QYHrpeunWqSPzVedd849erN)n`SeP?zQD=wJT4tGX zR;zkZ(~PMOl&UA8C*RPth(233^Yz&Jn0icSYo-k7oC$$LX8KZ4-BD2)sz_8A(ln=N zfSwLfgT{0Z^#WaOl&wqd(`vxpt_PM@dE-|JU2Kro%EuWc#S|sX9*FR2>6qYg7CJP- zq&rX>#f~W~nNjQIbwyZBoMb{duvCCa$vZ3aYTTKL|AOa+Sh@5ysM9JEpar#w^!n*J z+$$3AM3MOXmgrHZN(3?Ilj;&f1OBSYM3vzuNSev-fKbiKUK6%++1F#1zN7l2geRJ~ z4Lw(ts4-PK8Y%duZX-oe(a#Nj8g9LwROyVW{+$inc`%F`TrEF1Q^59$Cs zD-?cnq`WskDrQ620Ti2W`S8A6D_)u%RII9sRswl};=;e7&SjdMlOrN#Jb)@fU=s%v z#{?5lvI4`~p`;jEkL9%J*P&AoOTxk`d=?k|<^=`22_~{CNAGiNK^`3)hH$6SD-!a0 z*1AnvJ~fg)kY}FNOwWiHVc;{BlCw2&TQs)MLN#1}D&3%^znO7;R{dIu?oe>+9L}T1 zwwsL8e6!)K>`9?w>?M_qS$LQ2-Q^eF&H3pdBJ7kNxn}9UM~;Eh?3l9z3$F=xk;zK7 zK_ESs9xG^uv?vNq=Mra8r38nJf-)FJ5~?Cp(PlpAC}spsIR6Vspt5{ zT_@}0RRwn*83@S=L2w{b`rM&!C;Yghzy+Kx)y7COnd(QSNLk;ADx6YI!DhsiDCYBB`?kB48&+MtI z6!UQkK`O3BP>Y}|tLI?q%u9Mhg*Q5hdJ{_i8OX%FQt2wiN@>5!g z_N<99#=+WEYDXKQU@MG%!Rn2BX}}v~XlECwQ^XB(K^ZH0bD%_AI#SwrB3wW%!k zW}cmszUtGFbMh|zr9(bhL++fTC*^qHROE9bKD-gmoH?@G;e%pmYn9K?0BTPt^1#^# zQFWYjsDS}{JKrWA=gcU6`FR>%p$XrSux*9kLdx8a|M>|JWzsZu0g z^$5Q&@au^gfvf(#M}gW_>J_VENOKmEEd5Jw)s!XH z348m=3>^q9!+HH2%I%am$}PK%GDnH}@mSozhP^O;?W&dt-6I+P$duFE6gH~@O3jGC zO1-u{8zqNXTed^d;=<@yAT#_W5RO&=`GpProiO*};Y|Yr1KI zhe6--1$zf{5OYnjiW=RSR=|Yi5-dTkb*Q}Go6aD4W^JIZT%e9g=66tASk=Vv+d8&D zHnsb#JfH5VIu*J#_Q`Y(4nq+xz@KpW-9)|M1*CV0K8*`Dr?{ zGiQjV{p2XmB}Em@c3vI)egEa3rGFKGfPK=baf^x^aFsiXcrLNlCl5l>nSa&L(X2v> zX+_^DN>TV#vTw})C6>9jT7e^h%DCC#QCmH)Z3J5 zDEUtGnC5BKugcL`KE3$Ud@NQooAt-#(}p}m!7Oazsdw`eSyKz=CBmG^_%OXsrv-RB zv04>^XFx?0#*TAeGSy$17j#w>drM_XBMn*EA*IDoLAlORD+1aP<}{FDDG~dKZUVJ1 zz(<06_&TeueT)@*DjOT$l;B3O2y|j2E6cyGX)_Eg?>D_O*7^(SdsQ9+>`+}}OAF6$UR$5C9eLXE^=msG+crf6Joz_@*Dx%B$46m(9 zEv}NMHR=m2pltJNJPnZnRL5OJ{Q+23m~e-NWEi58JU_?>6U>6aa@Q#E`@2$;qpDlU z?}ugiuENqJk+TI23S!w9JsXjZV%3E65GvN<;I4%d;!jz?4(BBP ztq_mYY-}5Y<~s?TS{zWM{kBOk#cF{{TvmFHhPA7bqm17`PmecLaQsM7Mo_j~qk)r7 zI56KPTA)C6`4;!shOs2RY?X0b-$#S-sQ71I$GwG7oOl&-*sSLQmHtC#1`|vRz31{h z>L{$ZRAK10v%U-RT*{n(oj`Hr-SYlXP~8c4imY z5ovQ>SlGUobT+)C5m|X99@0*0NV2{3-*oNYxsVI<0I=_=9G?eGc974n3l2~Lt_E%y zxFA_ZbVBHReeUP`X`}zOF4htm;A{22TMsuMJbLKrf49Ebyx0GJicdKIJB8C9VIp>u z`Q6Th?P`V{1?e`aL6hzD-4u#LpfdE%RHa^~c6)9t&v>ACydZN^P+X!_*{@Wwtz(|4 z?551fYN~vjKnE&tMb)A)5Z>3hM6$4>ZYMe1`|Iod!@b?pSC|||JZPQM(^KbL@l7Yd z*lxRJ@aX-%N+%OBm`sza*w%GaEmO$9b%>-K56&8a)^UidnknXqqCH_Vz~`3J09S&% zw^!WH=&fPf?bX?95wb&NWyx(hZp+0Iyxn42)h{<4UZRu$QhA=aF}cMkv~bW6XZZ&u zEYQN0ei&prU=9>t4=|Qo1I>v}q<$G*L~bPiZvD8c7Kq3&qjJa{tCY^1ZWtxp8Oxl0 zER;QWN8?zOI;z6Dwpj*wbD0qj*2H@lLDz7m@!B4JGRVH=qUEtNyDu=u#Ysz8;DG|={e5_oGDS9?IV^FVzr)tJH1NjB$ijz)vqeO+CQ#-CduQ;U)fI-Xh$vOsw~zln0{ z(7-H@Em_Ff+65h}<<)D@tA4_f9UA-+SDDhD`1Gkk^`#N|*dk6+FA@i*;GlYMRlS!` z2v2JvmE}45nEC;Y_Uqzf4$c5X+*qimykKgG=8q2_rhHXcRr6fcndgrbhN1#NpcaY^ zuwF$2R0>=*pB0$aLY`31Y;&`Zsp=F)Ryee-f!0_rlFdQtMXaaC^Ix(}eOB8O4eM>t zN(kda3vcLv)4Ng|bbt-rKi=PdzW@L1?RMN4{SAhV7J<_yZ-AdA9SPC)Xe!T6L8h>r zz|}-`xisyyc?<{wFtvmo43_i~CYYVWGhxeq?6uP|{s$0(h^pH_kiYsg9DrzXe@}kuKeceZ8zklzu+3JwWk9OQda*aoJ1+`Z1KdOW4kJd5hKTx^mO3qWRhk4EG9hn}}}I{D{#6 zEjGfX=(h>>T?zA|;*O|Ebc7@~hNx|D4Z`vI$pPh^hsq;je{LX~k?kbEVhvQE%toI; zsM3M7DJi`O1(XMr71~A|5*I>Nd|O&T+2Gh3NG9#)YMmM-i3^aL!u0(OhUp|Sb2KWu zI0Mqk@2yf9Gr)X;)qkcQm~lLgi4&pM9Qcfr{0mk8B2mErib>^ zCLz`H&S(};eN2m?nkk=<-4f{zrulP5s=7@()3X#y9r_YugKmYd^+I4h&W58|Oyi!9 z)gB{)MA%Fp(#Kc}sO4KsFKlm=Xv`13H5}*a1$1KE&;+@ zSM?N3aSSPpLNA`A1B<>KmY(UhH~7{Ucp(*3^hZ0bW?StL;IHKFIj*)LEhZz>J-wh$ zdwS6~kozB*R`@nbY|Aow0Y4I#jqZv@^aX|J2l#qRJ?ASM50Fp71T-I!J_OuPm24E| z5vcCrxl!iX;?}<>{n-xg#iu1XPW7ma(>G@csr?LD(n%#kY@>eoYYAR9dQLcS4 zY;uK)Qu+lwi>+j>?kdz|qyUE%fORmF9zeQ@rZXBwb$SPR_RlFJryydKN)|(5GMStU zJ94*7J?S;_dd5O=%orD#oy?r22P4SnGS3Bn0Cfk}Lz{Ruq}1cq5Z_h|1kPASxa&-P z+RWz%ZQMP$~*Ft58@~ zEV8pbK5gY96{(Y@CvpXBn!19D`*47M+c&#u#HMx~j=E}a#l!m&it zr4QLyBAz0@gsJ6qu81S$-IV;Qi^IvfqBigg5==CXD(ojn0O2#CvGrX%#~YG@U;{~b zvX9kL$SgRoh4eQn^pQjx7T^!qW6XYO74osYC4Ff@MC!-~dw-Ut9SlT0>0s5j3{U9d zmQiag%vZ!))~HIP|EQ))Uj&L{|0mo$sk=}%8fRMqrrE{rsHfk!228vqL70CW0LG@xXC6EqM3m}M)Rofs2`fHeZ3KFUq;0gg6e8cu8I!= zYr*540)2L^fS)=*L=#N?8&patFe+f5QWU5$BOk4akuYUxo{9qh<8iG{bWo2ek{U)F zrV!?3NsFYYu{@zoP!mM)Tg6*kjG=7|2yzpLja?<22VPz6l|2}QS^!%c9xf&UYA13D z#bj33s;7EV4EPL3-jx&7vkPlwuo$f-Yj%{FyLnXq%pz|Am9rc+;O!q)IP3X6QG~`p zhqiiWuMvElXo7xcknHH%ms3t-+?{VxaD|aQuWg$mD{AevE>D4tJXx)$opv&mG!e%W z_HLD8c_g$ZK$YNPM4^eBH!90_z&qC^LdjE&?Gn!_MIwD}svg-d(~2Q`gnloCqHXtd ze1rR-Q)kR1vmkdgv_JKMLKMxY6Bh`;r7GdN(6++N$MlJHZkk|QHRm?oz{+YO1`G*u>4iX~}Zn)yXrJM!6y)v(R zK9)tEQ}l8H(*@N7R)rY^&k8rQ8l}}`iyU0`dY4$tpS(I}jXEKns~B@*0{jld;mxNb z$|XUW?5G%%H=HZB$iP5T)(@m9l+El@d(hw1Zl}N=$ml|_t6?rXtZCf%it2zw2iK{Z z4k2+YywD5Nsc$acW*^BH^31Kx8Dc^!#U`3L^pZ)_9@V(!^6d~1FHWyOyV>n*{Lh=O zy8W-#RyTG#n#Quk9{l(%B?%-6Nmda`?%SrZY_~>-vmAUh%lWhy!UhU4_R`=7QcRM0 z_=n@;1KcP~2n}1XN1^tz9CBaH>SXI}XbU9ZkyznX*R0s=C#67HhALsw9&|=68^}{A z0vkbyGryRNmu5W6DXat|xsaSN3WG!>>B2nw$zK1WKS(y>^s14%TtnJJXSPxrz?Z@t zl%O@@`JBFwCqDnk*!f!_@$*;|S{STy_ss1?F*f{y0jkjNQ z#lO1!KWzMQP5i&r|AMO|N3FjkQU?J}${@Chne^bhu|E50F~Kb|YHT(mpPk>T8BPwV zPad{J`A~b{*+mgZ)`B?(<-(M%l(~L%llm(gD{eRnvKIPaK*8I=+Je?s8zEIMzI;Zh z2lLvE21g=B+mJ}6+@Q?tOCPR4_nE(!y1q@{*h+j<8VJ>jd9XDLzy`Q`W zd0tSg9IJC-x@;n2^du=31@c`_rsex0%iZ+;ZoTQDxu>&o+pXh7O-`)k2c3xID*+QT zl);8m7x~%JYzCjszM@fzkbyNqiluM(Oy7u;`ccYIgJdNjvMxrT`kfU7SY&GCLd!Dn zMPPtVa?%CT^)u41H9^0+mt{2rrvB&ie`MpelK}|JZ{Kd5z>piWlD{i&L*aCesxr`E zSkITlaws$B2`thLz7z7f!hAUC4LwjcXKcS>h>@CFL|_K+j=HuI>bJY<>1WG4w zmD85mHHi>%)^+YdK5#*{Ruy*uF`fMJCZ!g!AJcpyrY~z%;cnRLR~}hv#2WqtNDB9G zRmGU~JopO2kFs1pUOloN26%IV7t7e)RNgjjrF7XnN+qQWzMDyLt`{f;+HqTOe-am$ zQz2943hqd3RR{A9Ihl{e6|5WuAJBXB;@zJS5KPDED+tx7!8(+pFB(^Lq8HNgAlq44 z{3aEJ7f5zqe8?+IjH}R$`rw;mw$V-~{4uoX)=l|ns&q9dZnxH%x468TCVUj-bd(bY z-2TldmF4{pDOZD)9#!)uJ*z_~Zcl1#1+P!r3_I5(GdeU`mq=YiTIA28tlvPF7zRM5 zK@8xg_*H1XFa2`)sj9RJG8wo|?W=~glKX;!6K<`_t1az)iUn9$yCt9QB{oJ~;hAlJ z@^x~S+O1ZIG>$yh710*xlueQ8zw1&`7+I98ykRyEPApvV9(u(*UqPhHfQ3(sk=8Ft z(reNJd9q_QhYZ*Vx|ghPts(r~{lmST<5!1&KRwzz*go7A{|rfy6wDWFUYj;T+fj;X z%)`cx2p4ouCGw8$ZBOe>zO(V?X=4^q_gGY5r01jnfXOT`8m^IW>Or#<2Cg|D`n3XU z=6g5r#2&N&#E)Q`W0N_HDu;(s{L=;%Lj#X)>O*hA?i*ieWh$xT1{9RW99x{^0bXhF z`1S^yXa{F7LE3Ml8WuEmU`%RjkmDZB?VJO``9O^-6*gFv^$A+faop0{7&WB#(S}vE zABI07khEAzsbEb@Y7D`og-kLsYG-{-fsvgWeiM%C= z6dV3o(nm$FJ_`aV9Yl<#UsYdMfi?>9lW97>@brK6^mL$_t^3!_%&VqR4Q16N)$Xo; zE9bMS$TShf3ae@rcSeN83J_PWig9r@zrtSC6{N|pY&s0qJ(@ujMEXI47^TyT_7Lu0 zf=~Gpz~{EFfxKIYi$1WXm*Eh)X=*J|uctBSE}sm)1rk*`W?c)KOZ~GGdFg)B4-ZcE zJ3|q`^9jCss?X=HUZWqC5p>BX37o@3ZzAj3c?F`vr;r(_XOm3$>7?U9>Z^tJJAwdr z`f8E=&fB|s*qVa6@QQ;MlBCph)A97eWq^>Ru_V_qBeKSt7;q#s*oa`xD@`ZiA`NF0 zt~@O&FlRN09@3nS^Z{Xp91Bb=5_G;2Bq}B659O7Vj%1C`$Ya?f+dd6077b72lspm* zk=Jm0GEGm@#EEQbFEEULsF?s0irgu%^wj9R=3A{R{ep!a6?i4*v+^oMA1~#&_mx$p z9e|D?0z;gs!tpS=EYBFIq)rk(-mVJ!(n!vupr!%V()1nF8>mc%_lD=*--N{<{C)TF zj=sR`QSVt)H-b|Jnc_S^bg&R_P|E{+#P>fUzc)Pi`bv{8un7qYBVK(ZA^HQRGxPRa z*!6MWeVHoC8gV(HQe)C@?P>p_7^`iVLLNVN`|+{$oM6P(%G=LMqVX0cWXmQN5W1DV z4;tw;%oA{s<n@U)gT1ftgzpCOhpmkc4i?61Ba=?WA~#>KZ?+<3lx47ohCwW zsnJy9gdg;O6OE=kvQH_@;-~I4!$bOwXg4iZCHjoX1cvvT&D&`<%`4POx4En;v*Vp_ zB!AK;BXz;-d=c7a3p(!w>e$7c?g`h&C0rkg4R5b5Lt<0>Gvq6MPjABaR^DAc*#>$e zcYw9{2wpI8y^r>gDW`^#K;R&L>k0Jr^n-cCG!YLyx@bMh?es?X1m(9)P!?r=+M!@0 znfmmeF);%9o26Gql!h6D0F5w0$xpZs4K=#!>_*F3i{aDJM%X6Y@)h!JvdS)|byvfJ zO0sSBnJ`I5$}>_WqID2gYDn-HNNnREd~0#1hE(rOjT++?7Ri2ALo`iECCf->a`W*Ni*c4?oHH2%0TmQi zuO0=NVmOtSx@mDyj8h$iC;?DWUHzCa)V< zq>U$vPTLjUgV4g;CC*UP^-Q2Ruo`w@_5Z=Gij*CH7u_L3`w(9_6qUnr&&5n zv47G9zASl=Y$W)Pt^SrS(4b#rYed-l4ETmC0a@a)nrLCY4h{U1f_e-i-i|2cS*tOQy{Ki|Yt+&2%-g=crL!IHeXuxS@ zCC&_A7f6@X8FczKY=?Zqd!2M3{!wu;el= z^Lcq8C~AwI)dC&a&3Xf<`Tz=4LCJ<$H5h!q|8jT#<)2R>8{Vm4uP{@?<2D0t<7tRv z1ZeZCe0tl_4_+PBjm$P{Ta0_24rhls=7k{X2QuydurEdba_xNvO}{{4`TCi#@*G!h`QJjEO& zNN+WDR--ie;Vwr;bXHI&Cd7W-2C=?P+m#1b6K zL5;$aq&!i|+QL}I;B0DB`jBHe!`N<}XyAHduw*NH9xm zhMK?ts=h z0QYb6Qp8}nYIL`jXgIJq$8Cz%og+PB*ysz&>dz*}c`HM5jP%U{_p62QdZ&bJn`x5+ zG%VR6%c;8YAS5%LW6J~<_oVJlNSzdD6bWgdZZd=TXG-MMq*PPU-!C6U#^^UMq&^8N zNkumS$hlg(mz3EVEGBF@*H^WVCx^HvYT?8Vk~&${Kd=N3ywBtodIhv(l#Vav=|w29 zgSn8Z5%VgkRNC-PKCUnPaVsYmk8lO3kqn(z*$u*;Iu32(gsUByO18r$K)p9lo~i{; z(qigsTw|7`*)$zjl%d`A5d)Xgwu=@j^r zEFe6?G4wn!zYH}oX;Hw)KLt0ylv85=qipH`h_VcMRnhyphz;;@P}MSA`6gMVYCNPk((?jpi~;}#&Xi#X?S7e>3 z@nG-8x0-Vv@xJK9~gf2ae8Bkd< z{?Mru>eM@&)J0d;LV(tDScD2hQ@ef#yqr4q^go*9#Ew35VG>QwZ=%Ww*c-);CtrRk z4xq|`kmffh@Y~xp`0@+>cUVOMM_r8FQor!|B{(n}r}MW*oBzFI&bmg2DxUu%Ec7X^ z?kuk+=}?x^5^#bYA_ItR#oCtBd@>R+x}A+T)gLw>WeaG0Ba>>gG&nO%A_G9`9-%OU zVG4f6PzCP9uDAdJbWuMAtz>@x$I;$3TccVzy)E0Zw<&ctM)THm=o`U4;M)*xE+3^#|;i_E$l(bnU6Car}ctqS|z*y8Gi`=a_VlLOm># z>T^MB7eYo@@hAB0RJ1;YyPl(ZK{of;E7|9Xq_M5}E8pY#^%yliSV=3jUX2Zx8^V>Y z2>BY{uFgu6ol6jt{DY9cAg>^MX>jV@!muhS|Jlw|1og~j`4kM(osIulhtKzWf8KwY z?Cc#L??2n$**@OGZ@VY|v;Ow0HEOc=a@T9HaTRi(W(9cFP(3=3hU&$kg01eG-8%Bt z(PoHOJPEww@I+g??_ZHxkL-2?$dm?l@$Q}mwWC3X0TR~}C6}m>Sc5wOG*QNG2PZVk z*74>OR{sS&km!G1k!WX>r&AK?El;sxOf`Pde;I4CYfg3>H0I<(=DVy{GKOGy2^m@` zC}^5XzBrpt$rMVafhoBw_LCQ-koW{=q$@#xB}It&7-R4zmy`Lpm?eT;nUP~Slq`o| zzyp0W(|N@EScEs9UFTqVfOOTMs8HVg7Nc9uARi}l(uR$I?7!1-Iy#y`N<){CCAE%> zY1l2M!Ss2u5ta=c5A&KPv?=t2c%Xjy{V%`&-TmjzKc>92K$Z2a{?<4BEw^&ti!z%F z`YReNH^!#;eDm-j{#SgQ|33Ko!8eb7xApbc4b^_2Dzo!)owWh-{;csE#;Xbh_iHhmS*wy~feztFoo<=V$qNI-;aQ2kcU z!+mX6&tzS1Q$E!Fud1NBwg&Z(<#{t1Ktd)U3LaEW?#o{Sg+q0hs1|vbg!s%YrJ8%uL3 zPoIEb_%~QH##x(sl`eV|6=BC7%_xc?#EIFGxt-hqMe|oOe>?rcIWa4xg){0;#q1J# zsL^|BJfz)RkXbv$017t2Hb%Fr@g$sSNvdR&O+blAmP6=S2ST_M{_EHJ}i* z7T?r6ZY@JiyFG`BG@d3mwOWqdDw3X>-;%K5kY8&886+rfKuA%YX69$n(i^(nUMRJ9 zP=6PnHdEP}Q`PXjxk&3K>CD@7SZDzuh`w@`5ykq(j#|iwzlKP3SCskDCKY6aSHZO% z3BRLSt;7wrWHdOHK~3H5qocjU_L+9rrh(8i-9;7P#0wC`jB>tVgQ-B`ZiDe?`hkl-C z-DO%w-VDnM(EG5-Fcg=g z9zU8Fu)ycR7o-(L`-sR`cV6ds7dq3R`<;+p-fQB9VrhMD1t?9!ic*(^#UKbKE8h{A zr-Sbh(9;!4+(o%9DsXhd)QS8QpI_NK?y zDt&_;QtW$K6b)V&GwCiJZ=r@ibJD7`~(LR#4}(J#8#TM(0v+gfSi#v#yoixf^99b z&HyGz%Li=8#J3uH$6{pR!@Ss}AqSSoQIm`F@*`SY35qAM7BpDs;{-=UPW+dGyn#kb zM(~fEsBgSBPm(UZ#qwyAKPH{iPBMW1?c;ZS@h`_LC`KhJsEg!`vh`|qqewI^w~C)d zN0K)f0Z&Dagnwi}cYKsJJ8`J42m`&fj>Bw6aim?{s z?eOI?W}g@n(Y@8uBg^OTTf|1*7F9v^=vagL*bAS4>yC8;IfND-oXGHK0>T}t(9=}@ za9W--d|))M#!>f8jlI6(@6el$IISYnk`gM zd1&ugOi)m2-q(lEiHk8sktK%(^EH%7C^$*}idqJ)Z@$%`$cdF0R6$hw_1JfBa!Dn+eO%wKo>z$fr znXG7diOXE*nRoZcaD(nvw-c2Fn6BOu9s9&)uPq48@3;aJc&qhqAWFck63oB#D$l1Q zF%&s8LGC0JsJ>4toZwnt={P5slMO7yO3>^VTMBq=_Pz_2KaMyKF~))J(}gxYz6YKM z1HUSwaqT6612Pgdnsuagg{!{Xso9T>%7vF$O-j(`u;{ z5A+LbCE!Ppvg_5-Li#2s&J|J;x`Gm$TPVAbHHDyG$|`y1FkOfq$22lp32Kds3Gh!0 z>L$bwccz|TUV5}Wr`#{W|$mZ>(D z90R;OzkT#5;{QqicKkoT{^r}?C6DfOrIF8nxc}!u=YNDba~DQ~h0p)N=EDb@_vim9 zKFgdxC@T)iYSz{xyx#wN>%rC|$N&4mgGb^&_x|6X;6wi3+SPkssWW7LWD-S=bdv34 ztN(QZ=f4gK#aWJf%h`K-oC(IZO8&q9_uW+VE=Oni^uqGLPQFX2O~0aFxuH-w~u*Mcx)N=&}{>cwt3oWr`FrRb9In11!*7a?Y=jQj}8j{NjDaF=&}5#PzV zyphSsDa&NIVR13er()8iHCHz*;Cqga*HK}`mbIjp<*FT)L^74{OYT8dNt*B<5FK_T zwoaVM4`^4LhR4#G!u2qoG!ALvr*k+5ZJ~M-Kgl<0Gs5l;$kg8Gv9)lj+B_22hPea-;W37oV*IryN*kiHTBM2^Mgi>{b zUMNsggf(Y~VZ)EAZH{tECJIyqG^`XBsP2(8Uut61!rj6_1C?Z1h7rg=TxCinhOR>e zXZwq6az#!Zdcl&4?q>%QIC_Iq#=RLEdVx`@*dRx2jA=g1i}y{VaOV(jgGT8M#{S7I z5`R|sr@FUC2X!tg4!G)4h|lEjg8#C1nkJhEry9N(u!Ra4%+1iJ8b=+NnTSmB7U9>F-`vUWv~B!#Nm0T)a#c!2JSN-b`0|$;wL4z;JVS(YL@z@f7D` zB+4*Ij7RnT&2f4G249mOy0fa zOYNB2%!&pWvM}Xi$Z{`zySMCiF)Gher}`8t*7g+#bo^@f)gT$meQ;(o27d{vui}gZ zHZW2;nW|Pd$*3GdT57SCS7N1KuyHmlixA#Hmg>SD);F-i&-!?tB(gggb1C-51<(*m z?!gN@gAVw>9(cEvDbTdzPJzD2m#HlIsxU*LPCt28g0}#}B=de@cBh%WaiOac$(QM_ zGV1(|4Rf&VQCL6x(G8?T=om^y;V)#@G2ix_=8AZ!*3?{m>$EO1D-S|~t-JOj{+MV= zvcHSIUHYzxzgdCEyfYF%ctv4(=20o7BnnYFDn2n8YW;ZDUia@ zM}&20H<#(-vQm(<^c<1{sN@uqGth|P!n{ULSt@*&;|S>t9PQ3>uv{dv0`KU-WB@PW zTo+Mv_5*)YbXedEK8TR__0@}=%VH$tz;V}l9>kMK0KwJlPxv}cT)nfj0ZG?Ldkp0z z`8a$q@LzX8_fH$($>!T8>Huk^)DeU?)EVEulfBTJ7O`tj86C2oyh;!avB6!A%DCZK zem1{|aUkVZoUNZHcXe4 zKL!VMpTOla{w$;aR}~`fNdN!v!8hNy`u}gf{q|n}|0zCF|G$X(Umd@v{r`1T_9%WW zuChN&$AVvq{CIRz&GOif$HkSe#AkK@sl!*>6wu)xq|=Jn=YP!e>5b0E4qjv`eIRbU zfSd~M+xY)B_^Fx1$bv_w#K!1gM8jxr)~oqwR!nqe48an~6V+b06*!{lVUu7mm*vPy z9^n#>n=?L=?Ezh=WDhS)Rx&I88}`@Ndxw8NJvu(zfB9#4$xe^<4u9M`wD=gojQ^Bl zQZ%X{RYJZZZ^NNp!8{#}ZhFvam`+f*0rx(C=nEX z`h#g8Soeqia9?Z4L8NovW7dE*KIRiFG)7(RkTRU6borc5M~XSZbo)*#N=9Hcqme=h zIte6rzsmg!`oNm~qc~ZF*CHH7u@<^}R3!L*E`&-c3u8t-5M(iQ6I8~^2Yf#}sFx7T zIorssp{aa*?u}3?@MANB9{O93fn!uz+*@6dGgyi&W88J;<>i05s=$-6^Bq)OUf+B9 z<6v+6J|C5nJo#`n8dn4L{gai;*=#b{*r){adX-jv@pDzClYTk9*nod*2|SF_5#CL*sW(RvIcM&&pvrTJazz64w6i6ZkP9+6_8{F*@e%?{?S3 z*PTGm7wP|&(;vkJ7Q6XmWospQQH-rG{4V=dHP82{lr@b96yJ;ne~BNjCb2=E@_0dW zrwszZrA|HO8&0qPMDL&0Q7IY;JDpt4#8E+LQ#u-6rVt{M;w-+~i1v!)j8UU)SjQDO z&W)z?-th3v+5w$3rMie-***5^X+c_P)OE&u7^g|RS3cE%#+G~@>>P?~`i>M%1J(O! zqN!+VLhF5bKJIJT>Z;3!--z&h1Yt!`Y)vJ7EpXfQo66A6nvo^ZwGO_6@yzv77+Je9a9d;AR%g-BbioA& zBh=Nfq=4OAa#Jt@6$44pO@h{rv6n55Ijny?LJC9`^n34CZq1I4RbCQRtiqL zm~m*NI>n`Dl0@}j8RZlLZjq(W1p$1Yo9K1WfR0kK!d2XCX>5oPfV~?feH8g?Y2B#( z`qOkW5sV`uL|1=F6Mt!`toPJI;Z_XNEl4e?frPa6ri_E`5`8yq`A;gb;gKRz+Bd{> zVZW)>YNGsvBAzCTdBxNMW6byxPjZN_Ui@8-B^SXx?Y7#eUdui3ICm~n>WCO799x(~ ze6?z5i3m(MXk-78vWaK@k+I2q%4oQBD>Zi16fsfJ9M*Xxu4OSaaZt5nQWbY3$wdBT zSwYoI#D91dcgs^I&!?s|PiWe#aF5Qk?|aR#Vga2_NGNv(ij=`YQ5eg;V3vLvWA0|% zUpih>&r&e&D>c<2-i%iqMjeN^oR8m~R+CW?EtJzszInJ7=(-ZEGa-fwb0M-$2x-$0 zrH}Kg3B>+_%(AN4Hxnwl^m+w_OinHwBzrNhIJTz5y+ zsMphCmOm3Mx+-QiP;kcLohIUVVN0IT^n*oBDjUO;Mc;TebZqaZa>DdQw)|98BQ%3X z%1LzI=hNc+<`l566R!)=8Kx$t78mL_!E&9auzYG}tuzP{Rbn`_=@uQIH%51caBHWc z1Tvkq8z3Hw%QC|z9kAF2DqD19{TNlxkO-UK>@rU?xs4s5Ion9&2Z>~SudlEBNUPQ% zksb2A!}98?n9cIM+Nkp3Tp-g8$l)t*rr{fg!|c#()rnks^UirW5f{pkW783*%DF z>l!?&Mvz=OtEon^NLi4u8Jmp0U~7F|oQXg1s%SGXU7T1T7nyX9RaH0;dd27<71K_L z=~L3wWL8eDz-5hPKElj{V@$mSj@72_$hBA*Wq+-;GOgkmM>t|ljS-wERZCEXb}!MQ zBw*1mvUaTsSbK6Rvpf(nwvGB1wLru(dB)O~r+%T`8|Clw zQ9Juunq_oAp8a`M!la+Y{s_z#^Tc9>x$I&XE%_rB&0;?rXgDVUg%p4?KZ4o+wPZcn zVhKas-%kjDPM~vol}|5nAC79*bLJoSpA_B14b<4i4@+-9re~qO=ISPy4fg^y)S#=g zprAM__`H6y_a40u00ufEgI~LXol? zaKjL|muC+4sq4-!wsqZYnd>Vm#-vDQMUsfv8%_pv}6Ud+y|dBXBFP#8xBjdVm8sWSN+Bz3tOUISJhN$G0R4 zyRsTaIiEW8foe@s5zqa zICv|4zvTK2`PX~01Zv8TSmFS4kn%a6vC4Xdicdk2YFw(J^oPH^In8WQG_NF9cwTK@ z)QW881Q*YuW*dVu@+P_NFwnWLG?Rgwhw9#ljUzzwepBknw)!7*S)P6r{m;XPTMs?` z&%^utKcD0i(Ep&-j`S?~Xp&?l(1gE%*$cg=iySXHIv6}aSzNhjctu}-jXXfy1)q@i z_y6J~Xq7M?)E8DFoVv6t!2Gym$;)qI!8JZR@Ys;bhQP%8tv{U#=DZSb0B-h6wYn}v z?bo>+J?L)^Qj^tS=`p}9qiG!Fy0P3aS;hR!z}$BIHJaHT2tu&2`QKnB%c|nyzdD*J zfd8$1L%?Ox-D+?1jTgOhj-2y9o~EFwq!<8{N9+O_nAO(_ab9IVKhdM0QCKhA5-iQb z#CpQxBwpw9;sY8m$CdX;Nx&!Fu5Ji^1s$wdf#slLLhm@b7eILP4p%Bm3w!4*Ia$<5`^$~RWQRI~6?oHnk= zEJX+WsETc_9#imqka*-t;F2N?3CeL){KD{C1OV$9$*KnOo1o{5nosNML9F12Se+_= z2{r}(w#aNxR2E}2DzD9>lz#xewn95TBEGvGI+=hW)Smq9 zPhG{U3A(H|&pZ68-H_=Rg3}O%7i8P(N=Or-#kT%_<&{}GsTdO zs0RtfUcP?*9EfZ&gP+lKZd#!KvoliI`nmeScJ_?edhu1Fgn%`R8<$zGwBx|%(TpMk zBc{B>9?`s@PAs!FVbO5!H36zs6NBMlf+{_kVk{l8IA)ec%A`p|)i}M@;s*s*>^eU= zS0y}`1vccgayvs(pJrtS9;V9K995DIAA_%7HBc?q@w_*lZ9hNS8-Ur*+%v746BiOR zRbs;}tGrAz*EgV)`fmUU=H^#4Yb>XDu=iq}a_(f-Qa9Lca6nS!=mAoyNUbhByJ6Sr z6e8orQHu51IS6A4dKsRDUIF-zV|i%+;p913hMt}>;Q0!14+qs{Qoyu&?p<26HX0b>54^8kb|7ou$C8hA=EKP>-cQNHLB$-T#ZB(iWyx#ei`6dJE5nI{)W;G=nR&*nr%I0?V{+t!D@`p%Diwdz zdkjypQ~)>+bl34Y2D>aEP?7P=M)5;)P$S67M&OPzwp!We$1&xL$O$^DoyK$Y zNU?k)fDo9o*UuyiHFTypLf9IdzM!s_!h^M_@JRz9uKMptB)S%`JRO%~LG;kY#@&HD z+aI5o##4{1VxCjHv*aNIX`r~5;73JD^_!HTb`H5QXK$PV6cs*HJ-aP)xCtQQ9uJbN zxPZVj#*Lh(#VF65ZQ|3_aRNY8)N`OyRoZN@+>^f`sS6_nq%L+)K&qsuW6K5YNjHfU zUCv-?Vpdcwny8k-gg62`7oGLOKph@?Bfij-^vf?3KbsAZZvIe(TwIjflxR!I3RU*) z*h6f;Ahb2Gg=vPlpY>oTIDDJbmVyaYqxX}eJe>*}1hasl1%B%d^RvQyp@p--fK>O- z)lnjT%jxxeve3Q&xjfKwiXYTRqUBVRxs*w)4TY>?#~3WQ{S|+wF}u5TO_sb6TF=oj zR)zEf&xS>|rcjL(@*fLXX*{d?J_Y|udRd`|lNEEL+2GV>!^pJ&i#ZC=A&6|q(1;t} zcYf|jgG57&AkzS$Dp{b8_bQ*_6N8o)`OJwy?5_Dw5*~*IA@XwTGZFWum8cx-9Z65nS57Krq#zqDc#6!J3h*rt{4Glk)fnxf;)+iFGES6*X5L`&k(kNQfKl=Iv( zA-s@^bVqm6jKaZpP&qQG31-gAEeEsoCGHN9N}sx8n;O5;!(1?lxy;Sr>7z(s1GMwr zW-(yBrbVW}LXEn!b>yGL^$XHhOJ=$S;0ma%&jR16z(pc~+Vx9ns8LRZU7BZQY1n`# zTuis-+j%@(aD-0Vrs(P9A}6_%j)wCQ`lwL}Ykf%ppK9hA)P|5Q5L!p}i8AMU2Y75; z*}x@M>DWeEZx;Q4A0?>6VtV%Lc_cA^32o!XRZd}nYe4>yf_o#6Ve^XX75F1gG< zq**>Ju2R81&#%s)1OcHz<+{Gb7MD&h<}w-wkhrxXHc|?|{uN+TseD7yc{A;hB@f&j1!|(JsMtr>{aepZ zj5#I0P=p+?Qc^4Mcc{afAZxaf>=OQ)85ft`%#7*WgBRgns{Gbk; zvWnnh^v4pX?9=E!A(V-mq|K}QmFzPXoPwn=UWC>$Vq%8;N~NvgkfatD@>i^1rqyMj zP1p;@kg!>a)TxU(Fr3uom^P*+5B?9fkq%`aCG9B336JSFj|(tq;fKZEt_#@3ndMPU z1ziF{%vV%%oOm_x_}4x$_|T4ZsdL^pku~TWUN1hW;~;CJYxXEsE2!XxTp4WeV`XUy zuct{>9UCG90)d9hL6Q-DdjOdNbV`?EC zys76CcZd9=7Hxugch4ud&FSj$@~!gV3A>;!$vT)c)hoj5iA zkz2f+xw;QWR0tC~t;v16}}=>Hrd*giU2Mo2jw@@pX*Y6_8%7o*&r zR*R3bol89tj<~3v28+Hf_5#?*YuW3fL?7u!M6VH{*x~#5mylln%IL|EP>1BA2#Iuj zPwfS`wo&Wcm3h?e6I1%UgfJg%z2RM2Q0p(3CD&r$7vTO;&8NB1=W_Z`=qM_TiyzKp zjFhwR3B1ybVdRAv2dWMuO(3xTb~?f!dbq?gN&#&OH6;F0T5BmL()e^}kEceT5Nsdv z2x06V>JMd}(Kuwub)$bna(wuDk0yr|m;}@=+;yOlAgI7MYaCdDzBy7~RId*zDww&} z*L86TF*k&93m*irUO~KM+gkheSlyyAxk$LGMU|#B?*3~R|8uYiF%f6+g#Nq!l=cgN zhwt52$xB^2Q|UumrXo4XPjz!i#8Oj(#bqX;et-k6HF)%NeIFq1B*L5Z^5 z_T}2y?#h8%2rJa?H}MihiDaBI%H?VFieXnordFri12wpbcYp-1LWWmRATwcAjZR_s zQ>3et`E*iNxjvfqlC!J&Rj84;sBx!w#z=3Tj(=8uv_ONQtn(amM-cOB`MFWRwLH>F z`ooe7f&rdElrxNK0J7Jw0FAw^6x5?5=cUtjy)#EeqY2; zGAEeTTXn`4hQ3MdJ1>5KjA7!O@s%AFR|ORS(-L7h=74KR4~SZV@3M`AKzMNgU<4U~ zz*}9;VIL$MHC~m+@|DN*e@hdw+taWp0js56(t8S=#Ty^sTTr#V5Bc!dAZe=#>%uvY zB_=^EFyW+=8@IE*vyJJD^>p3eCB^^*!98}uxpY^DSDCahg>yrwS%L~~=+PV1TM(SQ z8m5!Hy39wTbP7vGHBk~NuERQZ9z6YWi#1yXt=G{cABJ~k(UN| zh2W@)XI)SdcSVt?qK&o_Hq}VUjPv0L zpHDR-JK^`-%}632z%R~)WT!f9z4f&k5@FFIdVY~Zf^*Z@H;#%+ID#W3tL#%hN0gop zdpA}3p0}=TvvHYQ_A;qXwn8q|Qlg1t8<1_`Dc%G<6;2AX<0mK8EGx!?mM$9#1oMgo=)F8PLI0iZGPP*1Me_ zjd?aC4_a{FL!!kGkS$kD))bksIQ{QQTGUp&wgQfGR~e)j>+Gz?5LAush-fOGoW=rw zL1wVPqSV6nK1ewJ%4(RLfHMh)6&rj1S)UrwFAdZd*AzD&$CPBH<3WXw#!4(# z2-!j9j468oWeZ^k9w};&=v{OAsqa09>gFqOM7;9(d^EaYK9M2y%ztWx{>S~ajsM4p zl#i1C>%qeZ-}w38AAWrw|NkjIcKrXgiuI=uc;JI&y(H-mY_bHPWw)+%JT2HqN)7-u z`-Dg#MtrRPmXRd-?_)u%7tayU-1aYdQ+aZkRDiCL%t#hZC_oXpx;7dMP>zJxQ!wC5 zD(S5KH(mJlgnyQ%FH8(ea3BVus|%{Jwr(bFHLm=}UwEKv)6)0@27^J4@ECkMWCRx$ z1WzV;bmVt5Oin~{F&>WQEV{z22kVTFWomXfK%OVxoyv}iONLk^8KR{N-Bm zK>jW2wL#Ig}HAzvNJE1_l_Z$Q*XB4Ha@^P3fPba2N7Kl*59ym8B$5zpE1*nrqWf zWU4ky^`5G{wDE+p;j92^1btZ>bIQsdo|NbZY_bY(y~OnM!uHe3q&nfhG(kmduLI4& zt41dtfVcH#d$M5Kh}R8415Y>{Ev}gJSHo^r?IxL7SPB6>4G!n+A`@`$Xv68yg@&q%7qM8EB1Ui8b|gT=8IXtC!IZ z(b-x&o0E0}w!{8&FgQHgK0W$j`@y4cbV*k%Y>G7$B`~XGYvc}ySznja%$;Bu0nH@A zsYpNiPk7%G1M{tmk`YiQ1fD^`82FyF9Yi(A0gQH$rY73K=z>QoaX<|qM|X>C3u9pX z6i6JFWRzx@#wfK?H7O=Xzx$z2Jp*KWuK9&|u0pE7S+}ziX!9>)zRK z?)?|LR#$iT+)=KFBF-2LY#(2Rp?WmdwDqh1@L}(++PUCc- zz?iIN%O>Th=XIaOjGiVA1`04OF=;bv_9iMe+vK5=({pEym=kkZjZk)^`Qon{3g7g~ zHq-QILNo1EEENZeT$oIMZTT28#GSG+ibrh2#YB?0-HH}DJgUiK)5zNJRATn6yj_-@ z)XJzq`SC{J^Arr_j9!)FX+iI1ilx6S_W_%KIz8Ot}yvmU(ic1jvb-JtYuZ6ZViJX8DZ2F*N^ z6*AV$Gl@Uz*``LG>ED|xu_SoOmfR^LavP?CqW5meRWKlnuobG?a(snNck~mj=TiGd zV|tGuTcIZv2;aRWQ?bO1^@M|j4gPE-W+o$~yhT%`wM1c~fm$&8iKqBqzIQ! z)HeeZDZ5OOVg_oy3ao8FjJHfatZj6ssH|arbeFv)`>f{+t zDcdZA9H;1l-0(7=#*B|yp~STkKq{LuB`No*oRn1|ixMD6Bb(W`3**kQbmL6r1OoPz zqA(b1TN9P4t4o={RQ9dmsxR_!K1G);HtBPd%svQ{mbyO{rxS-vjhyW;sb^*e7>MamfFG#4Q-=H_Nhtcl|W)Ct?iW1R1<PW=2rumok+b$Sm5dw<(G-PwBh(hdf24bo1K zg-l}Xa(2FTgc;&afeRu1nAw{6c4I#(Jwy3(A-*JA(0D~=sikH@7;hu#;3La z?`3he_4US5V}O_Mw~rph>i^=uE&t!GZ@+%<_3x5Lcf8i%=Re&4cfs@Dp3g4FhstTP zr8js({kLx)e(TnMe(=qst$Y9PPw{d6zu}zE%8_7hlCA#N33zNn#dsOA$=qeX`V0y^ zzagwN{@=UO_Qz{zt%ocqfykTvgrKtSjzoN@_gClqF$3wBW@+$J+mlPED~b8LvNpUKe=``@1)9KJe!we#xv z>B}SV7>^aQ-s*1-Cew0O4$F}Yfn`9pkB;^Zk6VB+HMe7X!!b??@w=vyGKjs?TxLeD z+8hevS#T)slXHAYma7|xz+`33Qt6VbvT$3c6&VrX9L-W)SSzqrP{Uty4B&}(3<9Ww zAH`grNcHNSH%riEa{8d-JE*N#XZAo1gY@XgQhe&=D=)~iaNQ7 zTE)Xo-)-W!&26ndsE}B9KBqWNf|K=TsrY{w`#@*j9vB{OP7r z`m;0%7F9JDs%}Td?{y*yD%0OrO*t8IgUT-W7%c>w4JaPKuO|@ep#0rV$nE$oWsGoY zYy>mg!v~n4V(exyB#d>x@s@x_i%>FloQ^vMFFS`lf{XN~Ae)z4o6o^Bcj11((Osq$ zRd)A^_Ov=2b^PeL1vTf0-uuA(9Hz1C#-D7x7|rf4lTXdW#3loEH>%>Yr1T{&z&JHYxHGe(7gi!U;e&Sp2NY}8cdcagLWGQ7kr zb#2n7>;%%blF`Cp>usw|ISwsuosu$2u$J-&f>WAh@(*#(ZZyWn z^(CPTpuAZK2H9Wf-)`Kp7&BzYb(12qgvdA@0){tHJHVLa?CRe5)vDD{kKz(Hd_@)O{a% z--*;FiGW~jH}FsfO5nji2U_5fe}asRawWjw=>=gUF^d30KkweS9z;BgH*^*hQb6u* zdK{KIL`wG!+@tnw?C>qA=Q&JNwEQi$%Nly+?eQm;w&0JhFDS-DE)9+Z2LV!WWcduZ z$&(I!r~OJRAvq*}Od>xe11qtHI(eSxUQn zs4nelj+tL;d%qgLnr=hkJ5R#YYo=Mias|AYgpUXzD^`KHvJ0}DUZn)mBM>nd@S!x+ zqf*FtyX2`1b!#cTc+&6plP7Cb4#)kd9^C!yLbtq|kYq$(&T;-h#((IZ$v&Orwz6+u+1q(l6&DNhn z&Y&Igiwz*(SUSbC4yG`Li;4Q5z|q7}k-@r5EB@*Y%Sk{Lp(j(p?+0|7I)6f3VX&MR zlwbvPRk6Z~{t%r&@9>(wV2trNot&UZC)yQhJXQYiHY*uMP(Q;{1C2ZHjNW zX>)?z-o_M>H8YUUc61C`DH2hWS6A(v!ll8lBXq#r1RDn2gZFjh$zK<0CmqG)`!ys_ z3L#oknp*q{k1Q`{{ctV`Gyn4B0y9c0)=+U^E?d}^js6n>ScY}Bd1sjSLcB9{Ky8Gj z>1j|Q#v>1C9pc|P`f4L16Hr04wxNl=g$ujC>+kItzYnv83yUvij?SZWG(Y>_d?^3G zsi2ZmEbtCatF@#f7kjdTZ{f;YQ{-q&Jg57P>kiK_c{1-|Q+fKmUP6+1W4 z^%Jmw269jtq`H1jC9t}_-pAylvY+37%+nD*g@FmcTlrV@dwdoErUlNeR`d>|jp2!f z;+^m08~xO+tlRm{d9dBz6MFrgtbkkHRXWTEm9})EOWoM&zv2V1R`~=&6EA01qiT{5 zi*y809#US=TZN@sd`RBp!(fVR&0FM#y~@Bg$PGeL4GR`18ED0Srhp>9QJw$c@M>_D z3(?l!=kGS!!2WKd-8?t+d0WN5NP@8xhMkV{9)uqaudZzOG^B;!>Jz`{EHtILVD!FL@QUoj@ zPqNkDGVGGHQ?rIF?n$?TakYN*!_{b9(IswjuU$b{*kJ&12KBu(0e8DiT8<{We5kS~ zE5Y!yEr@408eZmCDIeoQRWx^4SBmx(61(I>OjO8vn}OmW^cU&>meU{eDVRo{tZc0$ zFN(4C1-3dARA(Yyk6DbM5wC`XEHSQdYGBkot~^Ch-yLC@ou~Q;w^fdQ_K)D)QH0b*bjX4($eOvMg;uytbQ4Y`pKJ|!>ZvHg9aK&}tG6i8!t?e;4 z+6{`YhFm)PHX^P&s)m;5h^S$8q}Qndzpe)JF|Hhx8_ImzO3eV8Fmba3sNM9 z^f1&bCVJbVd?F{1=%NPe)ULrJtmZMVYG3n4nR_hL`S>j)mqdfqrB;!;={g|Zyj&@r z)dr`vxjiDa!DYMTiR-9VBMF;m9o^b7HzyXaXB!UcIDARkt@h}Y5*II0ukBzyEmoce zt3z_#e26KmwY-or1a~0FOwO(*+;Z@zj$s!c1dIm&ZdlI2Wmfd0a)%G11`2I76Kzj6 z-}>PE=_hD?ifuQ**?KD_sb)RDzY}qbik_^rWze1N2F)lTBd8-PknPg4OTern&!;@s zzQt4{2%Dh}jA+^ip8{wYb7(@pTG*HC9BJBcJ_Y;a=tj`a*>x_x>&V|0y_vrx^^CFJ zyU)eTa;9@ha%V+Z8YE4&HrGj8l8o|nLav+`#6Zt_lrKKeY*=b?;hwu`f%u*$_*A_$$*Sw1SoORW=z(IhoE&>LED$kQQEDClY1fpH3fIBX=8qVwI1ONv@e;XoyZ8(wAP|0_t_@RG= zKLq-#XIxx@A^2FkbtmJFAtq}!xvYfzNLS_V!!E$fhnh&&A4^8aAke_G317?pb^EIT zINlZ;QY#C_6S&G!@hP>msE?EyT#xW}+1THKhtSVI+h49H-)wF|;aI-Rpm{y)RZbMn z{}Z)iFs~a8r={vl{TrU={k| zbCCZ$={zrqQa}QFh7RdeOw5Y4=6D&hblZSILi?j~#_7aq#Vl%r8j%!-&WdFkxt)o@x&Ag){dfBde;t?U^E=c zG^*H6vTvPDWxuH44Y|&~x5*gYOFIqYag&kRR6RGy0tM-zL4mHq##w?Z(c4|@dTvg5 z!_>*HJ3_yHwnAJuF;zoZMFq6`f#8CX_r1@Lu{34tkARgLw)`_`JzKOln(c$OAV+Hkt>>sQpYe1)Gzp(`F0i4T6^#?bEd;~JRrbbPtDK0E9ARVJ zHm(bXU;||CozQ3XD*ZtIvS_{qfb((jf%#{^0AAC3~+3`Hr8Kmb!~(X-{41bk1~&2VI@Zz2%R+!FJ#3 zNp7JNH&U#9aOQjCg6dr?uaUQG-IV0UKwc#qU7Qd_%qnTM2<2q9WQ0(Jo-V2rYiL@c zQO??-^{2BE5;k*q)N1{yK*oHkGW3Xv2o@D{JLmr3?uGY#{At&kJljZ_ z!|NiSna%4uXYZVOU~8>YXE@-^)ciyV1+0PW6ueS0OBkBuYC@E$kTON^b_^~ zQofhI+lS?dYXNmbo}a?P9lHZn3KD#v=i5rjir^PJ8ziSMj&ddJ9xF>L;mJ82r_lxR@b}DG=FdYrT>YucCg_UMW_6ZqKXLt@k5?3tt!{+J^iA{bT3x%kU%mTSV?I&TnN*IoK-KPm!X1ijjH*Hd zwQ-MCL38OO8Y`0e2>V*O6kK0VZBLTrVzDiA^zfZLWSy2Dj*kxpgY$egG?iv`w?GkvtQ;boNMRYP ziUN*$i+Twx{mV1TNTy1*0)ikT2s0ieoxWEj*K;jd=(MSLux+IpOijj_!*XPp2g4Rx?i30-;vTI8~|6$FY62eY2LHEdiz zhK6B^gyp>E3!_YfoJ+=kzb;d{DC#VxLD^nkx8^XHCX+|*5-mEC+?5^MUzXJ+Z zziLk~q~H)K^e>EVlIsGG2%QjJWnIq;45STsL}+Cq8voP~afgt8vJW9cGpe9nfi%pV zHp0dN+j~RpX$8sQ)qt88Glk@0gj8>r&J3?i5@H%28D@?gaws+aU2?XIIn^w8NlxBc z>cQZSeiDAyaR3Ulz9`7yXtBig!H0e)9mB-Ri8xy94XV|C0^^W94$E$<=(E`4|DViv zP$r;)9wq8g~~Do3ajOa2#J{cR{rd-`omyAB=ZtioAtJ6(M$ z3CHtD?8;rcYf(o+{d@$Sk9E&j`fZOpyi*Qid7c9Np$vBtm$l?Nen!jPs+yq`x9ml> zlC}~udU`DK-M|08-tCm(;YKzSrw+$4Zs}l9RI+r=tMlWVNv>zoOFAyrKvl^0s6 zZ=-UUj=*m!l;7GRq6-P>KR2!0rcvtO*SYdbkh>akg+LOw)FZNp5nvhQ%Bc8mGhzzQ@`dLAmu??mT=>R8!@Sr_#!Yg3qG8JH_HJLmRO$=y`AG zZ}eg^U0c0VhDvZ@v?`ykZ-(_)wAb^voZ=KCOU&sl? zJrvDkEf2+h@{=r-seBX1C4Y+42eU;{4TG6JpjzKP_t|K9uN+o=Vf?Y--|_oM5aEj8I$#HnmTK`5VW=nd42divVi$?6dO@=YMQrb(yF&r=^AiJx@!4I zL}RFk4-Q;?7tHb-f2Fs@XsFGWmmH-E#zcuHwZSQdc<(QbQ_L|pwW2g-679|>nO!8^ z%CI}Noi?R(R-vd3Mkmi-KjJekwvcgq?gV?`;UeZ-ueh6ZrR{nB{S3E$U-YmIb~Q(= zJ$I@5RX)AY8Di)+xq?&3r`L60X;LXq%Stb-T$@I<-#m%`Wrv)oZqvq&o_9*ky8}%TAmhXom%kuFvK{W&g z9)iF24fEUz`ly>Wr(glQq-sHSD8{QLp#uXzF%SwZSB1k^YSb=yt?y z_yNL|>j&rULKEP>H>(P3I6@QTFAiNNnK(Kyxm_v8yOn=VS~iX9tz9VRc?o$xfs@4g zeiaV{*PPfO#AfO*h{&Ji(ToZWc>|8@NZ15|G?n=xo)bWpP@7LC<#eX=BP7`E42&50 zbbV4*v*fH8XDk>FCNmU3AupO3{BMso|9c0koGHzlP=Z%vI(*-25gm?wAy@K=(VG;|v=IOc1vG^a1 zq`^$v;Jh;x7{;gOu2wD4TbTF{re=5L9x2|cdTc?t$7h777ghZVB-wVLfp9hLy+oCbrl zerY{qf13YeE;c=DJGSW%ngsiGso8*hCkv9coe%30oDu&$hFEZ-=sWgh!ldzrX`}F4 zJ4+)Tm>%HXKJ5$*i)YUp`PqOOIRMF(sOosD^nwI(il17Rhr( zX73F#h&0yo@}iv2>c=AAYhyF0Aj|&~Xafzp5Fnp3+ruWc474P%r2))G43`*?#xiZ zUjt|Zqiq8LNQbk-yeda?EK%o-?K0M}4r~H7ZG6_ci5)?RE!h#)_72$*IOThGB*2b9 zqR)HH)17IaJ_TcerK5MHfJ7UJn7Y5Kjt`$^A=IjaqZ3mJu>`!?y|%20lX$S0whZz& ze-!2+y&65(w6$f7inUOdY1V<~^j$(p#uE8{u1Yeo!h0pzVoI{$JY<-qq(<%(f{ct! z^334DUt{BP%EpKmgbU#TM6iw?RMiofjO3}0gkm83S#$7Bqmm9Y<nh9Ea}rk||Im6m)H*m5`O|WfsAT1z_7l-P z!jmyS-z#!I6Gg7dG}(t#*JH_QHf#s4;8am!)cS1+4#MB00KnQ=6Cc!vn2)}GCL3n` zQ#zjM$FJ42gQKu%2O-|8%>&E-7;@^p+Wg;2ZQeEF?OMYqhq56Xt#$wj7KPTCL;_Xn zc7|$lTdWVROf$SO;kyb--!fbQ6uN3-@67_gx-h?K4tz1Qz=O??WfmaG{%*_yVcEXD zS)ft4{~XK$mUv%d7Pt%X{tnFoIpL@xtjJx!_{dE7d=Q4LEDLZ@K0bF_or|4L-MMf&2){lf0t2vC6UlCVXi>BwG&?WV zf*+n6P`itLzMxcd)IKxl(Nj65yqyPT-7l1c15P@%tkp z276<$nIQWeE-7K%P=AKbGukGtfDI9H3%v6a3qTgACp<-%)vF6#?1&vaG3XULDtES& zAVK`QMdVLoxeO~knHhgr;xTItTA$+)-(UVQjtlev2&F@7Awx!_p_V8p4grj zKmakf8cyzG@dyJ4CxSeJHB02ZJ~o?>+;a*#O}|z9rR~9dOg^E??58Ba%QP|sO0G`D zkb!F-co?gge}JBh+;4S9EA~bPI>u&GBjpF@R4?Q=&Mew}&GCCs420!p5T4T5R{-eo zc=y2DQ)Rb)dcviQTL~j>-!PdWWuMMTKq&?mqAtHWZHXj4h}55Iw@DxM%1`Vo?-Zn3 zeI;zFm>tvB{xdmGPZP$zKjD?)Lj;Vxq~gvaXe87HJ?sZsbTo{W$gy z`W>-7c0lU6%kC$eZ_xxC&hVvE1q9T;j#Q?X5YR5in14E&kY?H56~9IOY(pmV$aF(Z z>*pJ`$6FH)HHoCl@asCBNYnpqDQK)3d@B;_b^cg1^m8YoUfH~s`}8r%D4C(|hK>dd zCIJ!}x2?2io2-tp1e)^h_!r*0iuIN$-{2HV?b{6GJQcm_uC85b^+XvhZhLv_)$0pf z{jTos%KN$;E9Z9i2J*eBo1~vMCMu#3Vt^)F)i_W# zxX-@>1y4GeOeVffq~Me9Kzmi>h8IBddmP6TVhCuiIr8HX8ZbESA<&C6(0tt0zzW6xi4l zHPuP0rk;*E-qcHY7H=xm*li}jl-M;*9q#3*ys}QpL+UU#TO7v{IlD38>oTdSttG?f z%P$k7;n$qCyCa+)3Uv(N7t8SHcbn#t<^~O)>Fb(!EXveZ^fC zlaN244g|0q^M?*E)A0qxFuhMl^W47_Y6*pSqG#P0il20Nc11leaY=#z;UjL_!q89$ z0QeaEJ+^J|VfhlDmlqfLbTEM3feKHZ{V@h9sEvVr(VG<hgAF7TJm%9?)(;S&_3_-FAM)ogTR4&Jx^Hw~8on6x+U>&NMGZZho$6IjBBQA{T< zKY*`85^=vM05H884fF(%RvE8VW9S3NbE?B6OBN1Oa)1`%X-R~wsvC=j(Hg0qWYey| zd3sm^zJ5?FjKI??PIda1(*{28MRzYKOpZ*1X`)Y?-MZdx)3EPAE zX$QBBWRX^zqXz8!tJ9Zf2dZIloU>{$c)9&z@7b%v7u(0DuU{S=?CtD7+uz&mcYf*g zThGu`h4N;IWVIuh@j;nZVz+Q#2eaV-CNg-?-yA>>_;#Ika4?@1okf@B4ZGm{>k(rW z-!I0+*F!TzB81PHTF|4|W}!5^6eLwoile7Of(;XDT3*DjOmvXz0^K1e#yB@co02dq`>paJ~8L@Sxmfwq?fPW1Sm# zOx*RE0nA1BeLfv6+T}7YE-q(__PQ>z+2yZv!r;;t)*-nctZM=PfKp#Ok(TT8nqiA$8rkM`vMsmAYDYgkn21i)mFQ~~g zf)ee?hpSQGJ-0+1Y>r&3o=q2RE}g)gcUbPzt8@}3ZAA4tp=z{HURI2@`|8E9xCx!L zFwqIuv88@HQo`?=1@zcvB0rBsY%$EX?!H;yAol~_RMBIMf^);8 zYAUCUL#3MB5BGsTQI%B2wX)N)Y`_1nHa_giPNr+tCTYUUE-hpxw>nyetvZnP7H8hG z+hRD+7!?7**&dus|C98 z``VMU`gYq4>7CusY8Frx@H=U0dr~hj=leDv3#2ap1#KPkH2dXo;Bo~=-YKsp>G-C_ zsMyXKQTA><+Ml5YXSiaVGv0-2>5Ql$v>x+lK5aE(MeUsNWbf9a?Fj~Bw4I6Pq6*Y; za)!)VV`p3rr}f~+;$M@?a-6@MU!CRC#_?x%duIv`w5C~Du>GO!I(782SY2HBjZRc( zr>~63FXj=vn7@?kfooHjc(Yka6N>maR1@s)cpV%abSf_byG2w-)VX)jMfH*|!3o%* zV$x};s7_^>Xwk%R=;q<;=CTlU=MjO%Ug|QpkEO9PeP!yUCr-)_gz2OY^h08BV13v>h2|kcPhCR9^ z?nHR6kZ{44$Ta-XNKXK)&(iPgj2AOC+F;rmF`5^nK-R6m%-&2QG;IzLZONv2J=|rN z6Id8C6}brK5oR!V3BEfWfel}psfSqUZ%#JZ0mWU!NJ*t!Mlom&qo}83U^K&817c3- zz{FzjOK>3!bG;P>2jCroUNG*twLK2Jh3EBGz@3Ym;nT&YmJc9go1|H5n zdoyZgzSl|lW`cS5CJ!Vi}tO_3ro9?z)qbHE%lSozy zaU~TV+Z>7f_OaboBck0{eI1Q!a1l99Bw!Q|?d{RrpW~FQS+Prq%r`MOBbNSGPXoUT zF)OBpx(W4c0S;iN_4Prtc<_|oD31qV?8%^VmtMxi1If4RW-=$I`pZPCTU>wS-Y6et zSeYTb#$Jg!~{`gcx(j;6-3K6o3UTMz*k&qN_bxip;Lq@V21q8Zd7 zodMAxl}lX>0jVj`6JF+~3_XQDIipODkh%o&NlJ%yJ5B3wdNYx4lDI_(yMkBA(0kSW z3=_C#GTWx=$Da&HnnzFR0-$6k4hP;1deq=wDwB=q+)p}Aj?RvHg>WMQK6U|&rcLE= z-M%yiYzvy9R?Of)GaWFSJ{BS=P+p$h~Rau3i@*%Y3` zb8>Sif`0NvYvBa>^ds;LT%nrf4+C_>3rO**4! zo+HRJJRIheDD`4JZ#%t+3Ckv_TMKg`d4AdurQ{H{`Vz(U5uZ-#if3pL* z&v+4|E?9wq_gvFpP<^1Fcx*bK)pdb+R;J}O<#+^aMP1l=QlNUpWND`bP!3-)PUK#& z`HP3D93oH2zjU+z>x9n1O^Mx{hUhRksElHxyEM&ZR{roA7()|oM8){bJ9 zZ%hV7lF@!7Yb9Q$ivlicx3< z5e_X6iZHPOnXU&bxrwO>rc3@PNAOfUS=3@c2s+NM&7pKV&(dN9`AAEwazJV3?fegP zNCHR9W$47U)nS*Vq7ut`DKPQXxy%lb^;EpC**J7py2?6~XCFE7R%_V9swW_Z+9+gK zA~BdJ7E8$pqo@^Gpkmv^@by;*7PuBAY5P)U^M=0`#J!@dKXw%fRdCH@Gp8s<$S*_* zBrnFPm|KjVNZkzMcdO(TT19dhcg24(kFXw2E3n^*-vv#ZlvP!n8MQ|6Bc_;@Qg1N@ z-TixC^{+_LSy_&9aU{n=2r_h24HH?dnJJrpk1!`GL0xfOaN~E3Cb8ZEhekPzD?Jxa zpc{7Yc!ImP`^!EFt)7L}wJ8xA;AUpzj zo)LXg+iZ^Ck7ZknF&%o3K(GZd9~LRL<5Ve)*is!GvdfRjc_>~?{~6?nC`U1Dk)RYu z`EU+#q(Xl0+J6oPhez9|M?Y*oc=SzA`HiBq3;yXH!nlrm=xPLTsZBG0s+SmOIh)?p zN$GkWdWAV^6KZ`k<>mEt8{recZ^Y%A!FHNk=!f#Fk9cO05ORdc3c@6;BEs|Z^pfgb zFkL5lvI?nc^ z%Qq@6=qbv~8(Xp--|i=H2(uCbB&J>Q&r`utkJ4e@T^X$Ok`?iPaX8{#%5aXsfX`(q zmF3B;h=3rDKhj@fGE8|^b=RVA6|HsREb%hk>Yk-l{>{VFEFTIcP(5KGa%NUYlH~cs zZ$w@Z6XX)Dy^2tgS}JuL^1yEnpea0K{0?^BBJGfB2l4CwmWAL~1)JOBD_s)}o2bbz zzyIC+=d=7&h#nASF}a+qZ}qpn>2Ga}in9%aHyf%r8vX;`=Ob~)(u@2Dfdiv_`fQXE z>mwip$Ji8~Zyr9x|B8?E->t2!hmU@@_4U^eA3oar`oT93ez*DH(YN1z`@3ZGQ*6Lo z2+PwX`Q5ZEXLaqGe*cYrzWbv%HSyZxORrveU~02m&;m3dpNsRQ@3b&lmGkKk9wZ?S zk~3F9o*05qRFL^X{PU8qBPq}R7pi(PH9`g?1=#QT#U+5iH*q8$BpBeb%y|7iiDO+b zXW|V1MCtO9?QtgPewF-x|L;2?N*$G>vwV8dOJ2X+f4O&joNOQUlkZY$)34~)Kh4Kt zNwZmhTt59haTUXN0*~!7q`!w3mZoFAKUMQNt-k{l8JM-|dW4(!`+tR5E#=mPMdwPv z{a)v!sY6YNQF4euDSI0wHJJ$Mh}xy2YbZP*W~1OrPOP)h@feu*;tmiW5Y$Vp>S;WV zaE8$`t;Byp!3VVF=$evNT%HRYMVt9T-!2#r%u6@Zh)4}Nu!3S|Vhb1M& zxDe<&D*h>F2>9-xI~|xtX_tSMnPhUu&9koz`{t_!%GoO5T8j{J8`S3_y$CFHkvGmk z7>z2*W6t!6vcXlZ6;e8rrRdgi7FSBe@i^(w5AY=T$YyJGuwjEAoIQ;8?33r=>Qc*@ zRH!N5`1DktcUKPBX!nrK9JMK=#`7j*INXa-d6teyVIh!^5rG}c{}*%_`%+EYjcI1_ zD$Clzp>wVBbSmx^?1nzwqN%91L6}~m*BA~gF=IYaO;1>Vp7}25MG%0(_lKuhv5=}~ zaBL%@%G`ije1fXKmj!FhAk%zA7$i5&t}t!db?4&|gv_C)&dmEOyq#xQ`GHPA`Oz>8 zYqz>7O_0=8PHVw4Z**E4jnb@QA|l*H@yxnuj*()C7lmnz)oA@NU{$eOdE(RyV`G9 z#3~Doy09;vKazqfemf_nsEa>+=-2Ncd39_kwg%Jzc1L5*hOkQ9L+%@c8782 zWXP&&>CGf)8!;Lz``lo=L0rXMcuU6!0}m4Mr9YX#!j$n=HEwwsr?LWQ&4onQO60&4 z@>+GH^i5L(co(i{QhznvB{|1Cx=yNmmu;4kOF?FaGJy6l5}7eY>H|t-$;`@Jp+$p9 zg0cTc7KM74SPB)(&7kXh#zcx0)WDaT{XTO@dD!JD%(NHcI%jvx((9Pi}@vb zt*yj*V|WNtG^^!QYz_W$Xmvo-#)n3)WtqJk^!8t_B9xH--DH|yoL+$C8L z%k3BYJKe#_=K6oX{lnTHPfs_1y-?7CN_c`EPNJ@g!SCLT)2m|mLkSUsq=enybvGLK zC>q`t97Rp6g_B1Of&e78fq~jh)~^z9_%Ud)V&?`lGozrjoKHtVo7xY@#|OxTelHrm zK78(bzE%=td7=ADoR;T^s+KDU>{FKw(PKkX5qhcY^K!{*Mf`-65s}M2C z2on>9gtnZa0=&pa-aN%NzfS*qul)UtKMU!9Nn=%QEI0;edB1)1D5C$Rf7|-s&2PVb z^t@U01aRf@EQ*iaugwGX*tRT?S{)lw&OP+l(`wtl&U3-GDp%cw75=>St5Nzsc~MT^ z<>P3Z)j+Ae+VxA{k@!n#ilbuZzg*7OYI?iqkp|l(K%5Ks$EWOpSRKhA73Me zl!X@>@O22U8rgQEqq0;((A;SRj(h(CxSUMDs_c!h~t8IJML|);ETeb&6x6VM} zFhC6AaX)#Hj?pp0s+t`*MQO!Y8d)Re3-ehJnHR)jxl8GYFOx*a0yZkyHEMixf!CWZ z!%?YiKMsd5Mu2)D5ecflaWIz#jD=T;3LY1Wdhjs1PnY8GtEBsXee-a0Q}vBSlG+9w z-_)heG|C}eon;GjQySMdmdaIJS&3Zo%;dJAo2ycH*d{pV(tIq_5NbJnYm2-haZ`(t z#mq{(r>8s5w~vlaPx~tavbjk(5px>_8-M_|;)$POqm0}|X4jD;gtcB_Q&Q;uHX4-z zo%l3DFk2d$!jPky?eLoPWvy9=W8{0&+R7K0w0bTY%tvZ_^z`1gJZJ`gnVpd2rtwtS zBg9XW!)SSmHYB7&%OvrE3!&M}z*`p3@6Uw&1e^TcB(QT4f!51C+NcoEW==egmWZ zwtZm5sN`3VuBE1#=RxUQVK5m>HQPD_97sU@PG52jAFf7moAPt8pQUQIwcQiDw!9s` z)`?Ss3967APB7vbtqkv>j8n4KZ5@LsQ)*~D_Be_@6KxSqKNWhi*}6II#iKTpYyN zC~pGSz?umj+@J`+zbwG;0JxC-p%q@WnQm}!rg4GNKaXO#j@HvN!yD7R{Pm9?sSL{5yHi&BwHj8fi z>C8P<#~=$$PC8d0HHnS;Lx}76?gs@q{^Eck8X?k4~|5dYUd81{2 zpNAu|^@PY5!X2fyDJyy(tQPRGwuJyIx{0jE)JPF%rrR5#OAg`^RV|kGz|#- z7{BRYusSiW_2I*-wcavEz^H0AgL7q{8IxfvF(le7$z8NlUT|HHWGf_9!}#D9904@X zkINuO(4!^XF=ODjvas?NoWn^>I8HFlL`Dqz0|2D+Z>k3 z+yUF7Wz`5Nh<(CTM!TSv@1S#&oWGbPq9qS$a^QPdCydzcg%F+>isg@_4H5SRw=DzR zLd*T`B_Sn5lz!+Il~^+RlEDwoof--@&~hM}=2s}a6}hSwT|lI)A8yK0 z9-VByby5w;coKg=w|2Kh>gMBjXy2WH=U+@CUt4(UQtPKolDzf)=?Ue zYCg%Qt;4;Jg4T+dkFZBD=|&sgM4BwZe#8p8<4&xINsYUH%(@!3!Mn*?RHjZ_N4c(A z^aW+E=4S-P&Pk;Uu-hPMvRRpcb8vGauRkep@RuxruBdRW{r2lr)RxZysW3+S@m>xg>S96Gi6 zW3>4RAnr7ZG2<9oDahgKb?MC7K2X@Wp2c!?kgJoO#p@^By>eqj4R8okQ~ zDTkQME6&SKK$L{in7H-i1p~1LtzH$ku5&cqQZ(8LFt?iqD|AZHxMI1We5CmYvchU%0pMCFQ=#`k%$=6 zC^3oMS%{b@kSr*48u7szB$u<cc82KFMR*RrfvpNYL|XY@Tjn>7bY{n=h*lv}k7MwPr(bcbfK}Z$F^0$1*Zi z15RTt`D5a#0~66zh*UJ+^nF^4U=m)UsV2p$U>CV_m)S_JVwQCONt5_06Z^}!R=vrO z+aNF$1RUkyo&qpnDwKD{K~PZhD>U;n$jNAprEDThOrPv zgThJLibvDJK{^uesj`A4{o2xPOaWYk z2QazG{djQTRuK4=)>ljtpR?9u{G(Y4Q2VuvUH{44LWpeolv4>}*P>_a~Vzc{D z&TR}$(G%O~%T1o6@}0^OCG%)PKYC2z(&A&2kHe1ot#x@PZ-d*jTIraV;6_9;0!VCW zMiT?f|4}22g&M3@j>*G4Om!fFuKlMKbrH2wd&D89Zn-3HmTHYbMNYsZ;idF)R5`$s z5eMfZWrRnIHAl9s{W>Gz_R8ZhI7ofMhD`hfAV780YWbQ(l!uM{coC^ki z=r-bQUC0eSRDgZid`9XTX>Vx>jI0inDOhW(W!p}V&e}eCoTZKd8$rZ?+Su8sPR@k!V?Itbi%kzWGMJjoiE4O$XLDH?8EE$K3 zFv?NkK#|=i?Wvv;Q>mx386jb!PL^nuNqc2KR0&tnM;{4-u?~Y|#gi(mkpki8&CcQ~ zo=C^OS0xXsQF+%A!Q_-zK-QqLZ-bculsox!c4HHG{jFOn6hN=5@w1jD2TT&CAc`BI z5&=f&zJ!8?Yil@vehXwiGTtl(UT~wLdj3DFeqFt5VO>8aM}t=nlwz1qU+SIbV8;e^ zt~5Ypxy-GtcPEw#C2*&L8D5wH6d*-DQWW0 z1XFs$G6tn+k|WoGWFKrcH)K)1Ca$;`&-3K$MxCuvReJkqE0r4(lPvz8sIIEaiG;u^ zoy0&{k5Q|PD3DI$_2F}wQG?Tc$d!WeIFV#2+#w;7-ve7~ti+TcM_6I=d3jOJXR-je zDxzD1B7QCH@AqHs?!Wx=DJw5x|&KxlsCk3frpni8+Z za!~rTptjW z0z^+%Qa+e6R;v;)k{CeLWm;>;QA8r&YM6>eQprh&Xe;MpD^GyuVmcD-LhfXXJFTrs zZFQ?6ijup=@`?Cwzj)nr2vfughSQW|3>NW7 ztsB)<{I0CzHAZs&0q^#ip5X~h&#kq`KY?lk%IhoI2R ziA+_BU=;L>o@L>xhta$x&1Ch?$!Ti`DobKMioz$j8uvxxd>_ zPE>x%pLL_R5e#8cyqS|OIHu6XDmNsLBD&}G(*C&A+B7#^iIsN)g8-b{3PUc6rdHO= zo>st_6rPJe_grycooaMTn6OH-f|jtO*sxK41mW=~(OOE2Fo9~)&p)Klsb5YnHs)h- zv!|6<(XBWS!Y7;WkQJUq3&lY{0kK2$L4Lc`rJrr*hoW(@x`NXvl5$V}Z22lsw}) zw{pMh$_n*iC9hM{5FZeMkW2QB39DNI9A8?B(LP5X~{D%V3faH$C6D&@~3P zFx{x(t-hiHJNS-*b{0d0(B?hW`G)a4clLJ=FTodVEuoNQsi{}cB-XTeQGX&;cP#He zdCZH~dp@aoT8l}te*np^1wUE2W7fTlV5U}o(kppMA*!&z_^({CO>B6 z1e0DjzG(G3s@%6G@!G1ly_sz%@Ck2Zn`j-Eoh;u~fEIz++vZRjpUGFF+%d2329zK_ z<^_?^+OTI1c@AXq0|?;2JZ*%VO7)Ipd_GYlwqU4(OkNv1Qq855TOVS5!*Yvd>!PnR zESh6!nW}|Xg>5djIBJQU(!8EraQhJAd{g}T~j*`qOqfkqenp9&7NWFqg zwOUY3*1DLq`gC4I(9Vi1QVOnshdlpuX@bdm5}5y*;3H%v$0WTd`+nVN^;tlt<$c8l zR{vTjRKq$60aiBFOCSODsZ`Yj{*fpeIA|pvT1OoZVO4DwG9EP2l&%$&RToTeJ!&cX zS=tT{ST?af()6S1utMoH_IDSLj||1yQ|Ypr3NGkF+jJzbu; zqty#hpO+(Q>EOiISMs^DFrXU_VlV(7HDD{Z?ZQq32$R)u#l0B^wfFH0a%8I7=`;@= zqY&;%4iC=b=!fmCBr7g*az`y@mBG^{!Q?XCLR@lS%s8%p6wHR_>*reZHd;0amaQh` zIFn%+W_DI4Yo4`EdE=;Im%+_v<@5-16T&XFW?)3y1yS>JFv9)YSz!Dflt5tX$Y6RZ zjz(d%Hbh7%}i|22yvNtXW`x#b|Cb`q9p>zah{5P5X9iM;gQ7n@JhbCE! zXEhZp#5fpcS{DfvpN&fMX*5#UB9L^HO|=|XKyw90jV|KLO?p@HP|19b1H3^S^~^4xnl0!Mu#gln%hWwc^Q>DYI;=k}uf_Uy%OOf}>rd0k zBp+uxmx9=1QVvcpltxf|-A--itzC##v;0GYvQ8)5lr-0cLQ!n0D0?xBL6yY*tSkkU z7l(J1&fpk-y3EDgrqcaQx(<6YHT2!|MAw)WK|^{0KHP%x@eXOI8{nWD(x^(UNWS*&CH zZSs-|ht&4E5xOC>XT#_tTC}!x5K#r`GRn^2lo&OVo*;YUY*NZ%M|w7Zth@H_-Ee>e z1DH#`qpBuXWp)Y`g;AV&a4L}N^gPc_qeo$ZS%3N*Yy$E@cBXmKQ9pLx`katB?j2K) zO|W5{lW1m~)}J1hqul&`LPfc2uLTxdte^y)QiL{Kf~bnsI&ZiANSL=*`I+pQ5!8={Fbe@{G|%!#s$YKP447_owG34oCLUrP8LD2U)sN|D zo_9O5^rGtcX~R;V9|pD38=YI$D}g1TzN9?g1k?W6uTsy0#%U6$)D-^=GM=Kn9vi2Q zcvd?_S|LJ=v7zenn9V2j4QJSkZX!71^oK<@z3ZJcfEU?LHXYnk`1_7G6+wRFU9E=Y zB=>i;e(kao*%sj6z;y)|Uj>$WS)7U6bOilE8IxDRcmY46;#)!Y+ih$lI~dY@E%~_B zHqWQU)}y!e_VU>i}=slDx$fyX4E)| zwqk>$NYD05wmo_9*552_JLbEkn{P#$BZjgrpgHgZbYE`2*n9Ts@WuA=>FbwA2YWmF z&-V9r>->3_eu5GBEVG zWZ|KDziu(hNhu`fLXiK4Y4X!MfIhd|CN~V#8m}$#Pm9Hn|Mh+Z<>x_^pBHba$6|P{ zMnUYJ8|M>BCDK~iopk3g3@n#^DFo9l9#)m>hLt7<&N%TYSMK&*TxLDaqC zawYp>`jLC0CK6)v0#MeU()cuwmR-~s&`r&{v8(AuB!hs(yZKMI`ZOK}q(E8XAVja* z?LCa!df#QTdl>aZ@X(`9gdy}gUKbe^)26QYXY0)*ru0~n!>3TKz%HNaM=TfV&gD_CBo#kkF|rsW+C{pY+KNnLoG z@tx+kn#7{GnO(Lp6r+)8oV=P|q~qeBq$O5bXdO~UIgr4df^xWyTk~QsEsIk*y+CZ+ z9=ka!U`xn!$j61o;ewn1it|!!A+kPkz`zf*1t{7!n!b4ZuDun#@OpaoY&@H{_&Vra zVvS^3T11car|#YYPRNNou4(Ept@c#wI!eZh7SYD;V<8>&tT%=>;i>I)xRgCKSGJe@ zgAlidWCktysN7P@Ekdmj0_7QJ1|d_6tjc1{iSA*7=k?D&TQs1y50_dN>gTjTE> zNF|Bgu}0fiRV|6`nbo(h`l})zPkcK(K5s%W$Bo3IrF9$CgKQy|(bOR)w-~|N*5E*N zE0!JrH(vvG@03e!459Hzj3O=#?glEGdoE4CXkcyUVPLwDSET&QrM&2>B4Yp@PZa}! z8$hvLbBZMV2b;MJ1*>{VUf>9>YaTU2Uy9QGb)QD%joKAk9g4SmmaBeM*WH_*UU`#y zi)!Ws$uvdCm^~CP^_Q#pB8Lc9jywS^xhn%S<=zYKR!9*CnjKml= zk?C2}dcsEgLlW5cP?Wj20!8EeTuK7figCPIkndncjhmQJefQu3%&){fk?vKRGi~Rb zWK+eXgQKHY+!v>sz+V)f>ij0hai7>aZ>I?7+w5NyU9F)ztrlWPNwb?0Hsxq)tbdi~ zJ13PMrbVZxUP{iBjg<|T_kFI!Jyp#C4ac{l_s4VCP`57dl|QIVSgPMHcg zf_*z}!XZ_N4MziKU<1B24{f?Y4oplQ(YR}U)zsQP4RhlwGx`EI0R?Nz$+R*n%b2MG z{stzLk0Q7_nZq*=Zv(H*sDB^gT=H;aMjV?he#-;KD2}y_`{P-Dkx#9SBy!Xfh~Q#S zNHxeiR?-hNU+US=IJ;Byhpw_Vc+G@Kyr(eYG7d) zUOoQ^>v#+K0y5VZm-S zd<~fj#8tWInqvfM1MD_qv<3pyO_YDF@SEJKU96Z>x z26VdwECAMUEZu#Z@%FRj2c)VFi>_~L>sG@pzP@D#)K^VAEwvd~-(T&uwCLzE!onY< zCTBjYtL>MlfN-Gsn5s!28FT6wfz`EJlN9@^_4pK&9xXn~+Uvg?*?R-lzQmmNDSNz5etkajx5{Nd?hV0ZB+R%MrkfS^5P}fi(vD zs&0CCWS^jBHEWjuJ|El2WbY6A$)sAV+(E%N%do{0}r ztJz8Z8di3jU@9!c@W`^`$ifUbC{YCQG_F**v!KXU2i)yo4eQ~oa*t1bAF>Jgi6LZT zFwa21gzo$0mq{Rt#8q01wka_-Z(WlG0&X_7>Z;}^)}U{DfmHwWfW1)?R;b8iiWij*>=q1BBg5kI>bK%R{>^xc{oQ4m3%ozIL`U`Qv|>Gw zHE4WDk?mOIF%7_N{lIJH0D#=ld>ojc{!x#vR=o;`c~y?)aK!o%46-z_=24386RqfT z9G{B+WWnPRf201*m>IPOD}BMTYjAQPgw}BXmVVZ6=~jOW(#9YXe2S;kQA6Foq<0{t z*FU71=fy~TsV1?$xpgmBH6)vfP_j=g72MOZPb?KU#B5QJ zSLrYxfIZ_(VBG8y?%(G|5_q7p1Uz<7$QSeIFNW!K)(Tm8yb;#N}rG%7yES$~YF7zNZhsUTwH zem91KK;ow$SWK37swL>E915{1I zwAads_p)p#p2DSYI#sp8W>*$0idttzR*(X1v^SJQC7Bg3A6||HT^R|q??@9n{4>oU zpFX7%c@OG{j@XG2y7?!a5@Kb5E~v^pda#X+yxYx1o(GM`K0Zra74Acz)iCUZG`>Z=b#9cbRi4KduTEplbAu%pA z1QuD6p@X48{;YnthGD(h4phyjHNzayuht;CN9+Bvlxv}ZQu|Qs_F?BsdHY1yu#S#k zvQ~9|hAg@ym2o9$80z}dJvKQ%C6x`kVP9r~+D|UaasG0CbtXtaU~6Wh^OsY5cf4M; z8$8uGoTI^bsPq6NG8#Wf9VdT# zwE5r3(C~w;0!G~2ty3yX;e3sco`K9FEXAWG2=uIs6gUfhR-x<_jPf4LF{=b0gZrckqfF4J{tUrZgdV&jOZKfIK<#9P%t7`-L*5K$5 z`Dh|oNqsn2&nLskO{?Eh!BHOz*O$l-9W3?|M^G;1HKS&8Xq1;FLL8s3+de=BRUEdJ zImXaU>;zO({394BEWQ^+9t}w7@ZW)p#@5maQQC0CqVL78q9Jh*b%!uJLE?Oe;Z}IH zYE5816~NupaC#E1yNI{7&x|)!cKP{i`Pa9cuti=LopY;<)3e#6>cb`36~6?G=8Np9 zg>p*n_D1kMkUy*1clVzK>;J(&;AoEoPNWz44?=JrZ<|P*Z zRq&|Z94y*7-hQCWHtHnhQW7Cf32sQiCqv0-R9*wiSK=d94b-peNe529Ge{0nSZXQI z3BE8Z*Gs0EPN13i?=&CLMoG5OIbVWqK9CbCA?LMnYHIPVCzy6|kU&}=T+Z=fRA7roTWqhWPr_s0y@`7_<)XhpQ&QbP5_abnsw1-4MS}XR1-G zyYfOXz<8nYvM1`y2*W^Uj-Uar0x0a@*^2G-XpraVVCw_VZ=`eL{beTc?0S*jG=}cDRuC$r6)|b;_>?M;aPL!l2Ey+YN>*&5&hxq!4>)_(~njm z_pJ{{2ks>%nJ0_ZU(}d(qQ|EEGnp$;wVs5)wWVf(Xnj}Hc(A$jUOd>myGh()FK#~# z&oiL#3$ws%WX6`OY%O`}Cu%|1f=YO^IoXWn^YZn?%r_$7x#ve#o8RCj0D|^{Jy>wG z)dP{q?c#=~yMsK~4ELxR#Oo4|p~fy^BTa{R{z02BRh2K}Trw9Dl5{jmG*ywj4cea| zivcpQY8df)Dqf3#6&2ItC4qX=;WP>GU%^0LrmSNHk?6ja{TbUF%>cI)kB~9 za|imLgRH!b{^!Bhn_G_@{SW-(UjOqcK92rp2Q?-@UoYWsf&Lj1M>-sF_9RWF$O3}c zt<*J4dvuwC>xZCWGF9_Acx@_wrsRD-tc0&Lv`p->SHONxX~SGC&>gFY1hU_eiYQMGc3;VqwPBS`cJ|oocYxK= zP>V8|jBZ?$S~3HbQy3inME!lZO6L)NeNo$oCr?jjR-9vz)0suwE1>>J_d&A~t6;i{ zh1a#8yC;`%%cFQ1t<~WmI(3LZ8+u{FM-_TGS9Ry3d{+5Dc3`qQCEv9YMS|dymZYvxC z?ahhOkrBDcr{;3Y3|D!k;Mxj>fQBuKy$Yn(Q7Vv=vZ@MD(dJ6i-32C3&^Ce$&)OPS zWX`J`Ts{O3C0g&4<8eNu!c58W;p@GPXWP$@_JHG3gc0D#Hca_F(IB{%GOGYi=!343 zA&AJJ_U-v$Ax0n2uIdj>(Cv|R17}F6+2eORkiSUvC7Z{*YKni6s?a#&>#6sQl2oEY zJ@?x}IqA7nD!rNS44j?WS=-f)1=WX*(hQkKELPr1(}uPZsR&1vxY`Io*4VQe0<8q4 zm#?2c2V^U-g63Rjio)_ExihwuEA;rDqP&Ih!{>jUqjDLR8PbVcqK|Q>*p4HDahex6 zpq3^_;cH7XXA@^e(t{5z8TPf67Tqv0Nj{y5q08ZLK4mHFWheI5??Jm$3yQV1LqUbk zpfa!6!u&mG)8#bvP`yOR&MGbJ8K~%oWpl-ESbI>!izdlqC=MH_Tqz0P1y&!cZ>fjt z@oM~_xVUJ&ppk5g^7w5_fRz?;b~Q6o$<9FKE>^d4wD){(=U9s7r$yFN|HPercKGTA zTMJh@qQVKFu0PE`|?B$>3wuv~eu#uIvyx(L8KjiPUs-R{v#Y2Z1-gbXEcr^HX{w zHUxs!RRm9uwjy3g*Nyl=hf-@QZKh#@hn&s?4~?HTgrGXZSW0!nw#xC2#k$LISEOlts3*yN9|Nw zMA6H4@EZWqPzx`nB}(CI)m*l*Rk9R!r|W7agw5J8TRLgbiP?>7G-G;$j&er#3`KVc znbkT%9UPFJ(Tk1l2e3mQ*A(+5{51_a1zM%GPfvIM{&M@p{!Vvrvbp}>Z~w6N$J0|R zu&tm)T;c(`O9j+hM9D38Zv367#B)?Sq#I$7>(d6ct+ zzb<7tVwD8oKjJ1+!@zyk*8wN4`3|eOb8GdX9cwMN_`|us^GU=R`_3+X{HjN;I8C*d z!LybxK8%+Qy4{9p1kmHI-lkqc$$ZV0{wv}8n}i65LFGEf?*9xvEBWb%y~91z_{l)+ z&I2g!*_-2S$8+IC~{DXk01 z^oRAbA62!X*(LkCEto~nQ)Z6GtYO)lIDZ*432hV?9pNUiJmj$;ZX3@a2LzA;>}+#Y7i2(x>O zvY%Wd=JJTv(6?h41@wXbW5xC*ilsO+k2Z3YbevW*R-o1?m?_>u^VT^ba*{LTJrHpN z#z1!-No*z-D+Y~_Rm;c3sxf5f1*eP@&Yw2;&f!@@%1G(H=CulXv#p}a+B#COwCDad zue?6k-9FyqXLq!BY@Mw+JN$Ejqh*_GA6x@{U10kAFOT*PkCXkE$FKMrx?wzBOMcvb z{(A2y=?+)}zPz<1mS7H2R}#eei{smhT8j?z$tWF?WV_y}WZ9lmw9}w0jG4*s&Cr%| zuzsulRRJLcM}K{uWTj|__2t02nWV`&IcFF!P1#(q;W2X@a4EEGDd(Iq&^9slc~DM! zuvd$$DA#zX_?iz1E($^}c~vh|ip890;an1BdW<&|ZHntCQ7=d}aNx{@Zkeq090 z{!ETug-8&u?iI_a;6FvEB@EO;YWvh!ecIpaox?pKOUK*aKi^CCpCvC}9VdH#+dn!! z3SV<^u@85C*got&c=Tv3IXK*Zv3>aW+Nrp*l279c9H=d;;QWpQ-aB9Z2Y(jw|HS0+(|Tvm zz^B3g^P7j?K5+a$x4wSx=-&VHQ+!&+|6T@Ce8_YF+%4pz$L$gZ#zJn@^u)gkaL~Ml zWP0HK|D}~2#0^HCSL9s^3$mnJ1w3TNh%i<0G#=6&>eYN2Z=_;FBgympj}$I6i`bm6 zq%k!QW%t`w4aoPCO0=Fy4?b)mwY?P6Dn!=2f6-4m6w#gRX9p0Ds>Xy*=jgIHOSbx7 zCr1aJWi3lEI%Y8GNM=*~0Wpc}csrC>kwRcoV6|A=Q*d?bc-}ppGY=pQK;dX(p$U3i zVeP%J*AB3KoK*va{7ZfV={%GZTF*Vb9__u$$Zc$h-qQ+=bzrEo6iI!vHk`2jp3l4p zp>-0A&D9{VHi@;*&V<)2p5y1A1BDH2VD>RZp@mG)0mHzu6P1%~gxGSnp&7#`q$czl z;muHywk)E1CAPSggoshc=U@?*+mkI~#qqYJE8@8Z3iOHs$6)h5W!e-&iGSL=!mTg; z&PpHd6U7hLffUTJidYx-N_+nH;5V8a=BT6`1cIe4fokh!{f-COOO)ftAHFon^KD`2U^z~&NgWR2C+O8PN7)fg zM|Q97xC3>^8I|2c?+3U)HRq!2M989C7ggS@#IQ3p+b=&s?P%sonh@2D+9@@PN_*tf zeD`RsOKUi&wm^`O6QG4u7jliw6i4MOhsAdrWE=_9&y^0J_Rrw{7|W>3Gg6CO35^xu zhwoHONA)QIjsj&ll{K0y`kE>7+is7;PA-a2*$l3(U>m^!uQrvL3W94vJ?+9Hz_Mh; zMUFDT1th__ys8w}c?}YUy2LRWdMvY}T$UNtYtdqE;KJ%LI{4a1e#a$gy6!)lh!LoE_%PBeW4nIV`6_aG8`?%~5&sg-}c%po?iekbEW( z5dJ$dzgyq|6W=jx%?P)p|S%kolpC<@DU;MO;vqMDmr_ zWGmyeP2chkOrWz8-t|h*QuIv{ZQRKWA&4Trmjhp_l<)Nu-fLG7u)%=3_~9XeD4n`t z#nCJ}tmty zo^6n}8eArIpeOxpq(?8Mby%{!wH$kwQfoUFM~(zDb(e2)_UPN4U!CPy#;X9vgj7oz zJJk#a@VF*H2IZ6LNt*)8Vp8T6BpamaeUoW9$)}@mjHt`Oz+Ah|O4_n4iq%~p=d{J{ zpp;vWfHtkB3Y<%e+p#bpd-X9TJF2;qQ-rPMl8M3EdeS6Rv<93Yo}mwpsx7*RcZ5?y z2>{iU4Ww#;0xsq9=A+xXQO7R#1vm-m1OalKn&*&50@(^ej?tLz2ZDVhz&-?S(k6li zCeO2&t}tAH9SS&+k3LRUEEQ5BL1rm7X})1Yx%g#w%+dzeZkZaX)t>o!X=f8%_buE+ zHAMSeboJMPEmh@f!h5P$_4xPpl`hBc#ZPW*ln}UgU%e2lRBoggh-`A$*AG`CQ~yhJ z*e!>1@VtALVu~hlKc?lCO6_f5S}T@fh>^%$Lt|Gx$KW8wB9n$h6o?R9$#oUR#ypBT zF}_$){nO#OzR|Z45N&Fyt2D5SWCkzK{`W6v*oP(A+)>w>*$Lw?-kO4`Q0EF*3PlS# zZpeBoiw3_Weo#Bjas4T@o?K2-s?ZiAMV=Mo7k9OkI0RQH2|z%-#bR|SScnxI8$;-} zsf7XCWX1qT*O$=X2_okDQ&i3FTo$9u2Jc-jVg$LX<$wF^#_Y6qnxPx>|# z(uU=*1{)jK*Vp~)ulwcnV&lQ)=H|xce{YCw%>#MIcTF|JOh>c^fc=>S5__SYEr6m6NE;wDmjN)24{$33?V~D zs-HQloat{QG69zJvVFNBNYZrec8s_5S}` z-+sO2`u~6P;NgA#=TGukIR7(dHjxLOx#ha9AO#j;l! zEWX9*gOn{X|7f!Jx8uE+NBgf{ibt)}H@njbX2;E)N>yMhnzBc-A z0);a*G8>5>QMD7wL#q+vi5}HbY3l}7?+u74#;R4c&jw6w9W~ajJ0A zR^>ARdOo8{Kx@pBAkQr}|C+K|PV2Y|FH~MwCRbIKJS-UpNfGUP+@Qq^$AmS^cueGMW0h^18$d zRNK-WUe+gJ?5CLpd>+AsjH^T17@F@QX9}O%bJa!zLujS1M4su=n#fXM{YurUFd>gI z44ax`e#*TtI#TNGpz`>%7VQI5pKiC;PwxL|X#Ko@>c> zPt>>}TG)y}Akg`lfJ;Do$+`v!GjW%(>^Lm{abl0R$%cF!?c>oeVtw4u94cC`aW_ph6oHa9RZt8p{*LIWMrkW~aeH?AK5cPh+TxGI=OdaQSnN)d#Nj#+S>`?k zZt)bw85!ID6tK2wpe`*=Wjfm+MOvj4N>3=25`u&fF}En_LX0+9$bcjwz5#_49HE+D zzXKGT#sx37s!A^c(K1VI%Y3Z02ek0THlyxoqD7ej)Y1lgZ41tO*&M#X+`S3`>wJk= za^8^pPkL8$s&uNnSdiN23LNzp$wp`Ss2pE_GjGH_TDRxm+J=)@3CF;M5sxAX6DH`R zXo5=*dS-HWOr-nT7OuUwqr~IbHF;V@z!pp-Z()ZQvpnZ91^fwIR>v1OJ&6g9=u;^_ zkjb3COtP_}W)4ZN-S_36C%NB5w#C)tPm!EZyRB|cBufjQ=7jHNwXqlZQ>++g18e5X z1+;5^i5FeJvJvY%iNUy_Q9k>PJuYD?pW#YkbpAKbfiA@8ZBzCDqGvh!>Ws@Vj*;_n zr?kTXO&XWm&GeB%3v88jA#Cv;A5+<)AN5f)cv*L4=i^Z^eivt*Kk7yGx6`~0gk(PJ z?DtuSmsUB_|6TksKK17|{vTv+Z%zlfyKnqPCxXv z8`nn}OX*h*B>gtFqf=>cQL*%Yv^T7PMt$E<+zJ>a1jj-F8`skk{xSCPtyLTfhOW>- zLM1}J;6_guyS2q!$)AFT8{qEdi;Z%6>HEDIGa34Fc;pFd`L<#2TT zF$+wWeZ>e?cj>i`HwBUt)FK~M50`245U>E(IUl7nV8Q%wufY9N*Kgq}-p(e(?&VeS zK`d_DT!!NuT=PzChx~oya!Mk}t zt!%ohVULXVs&VkE?1M9``u-pF)8WxxYCdn|v-9S~?q6GsJ;}pKk{~q3Vilg2B`$RQYkq%oXs_*(>BjWy=cm6eO~aBu4kqNp^5MJN-Zj9`ymU zQ|le5LsfJBHOv70Z^M%>(@kPN7G3)-ZD(T!{~pv46*`x#8pL?`-~$f9qf%fZU`55O z%Squmi*JKJ0|^q+>k9<0X^~0yV3Wh^T;?`Zt|&r=DMmMDE!Z3!rxtUEx=zQKgA-k@ z_^NN?4CQQ=*(J2j15+uE;zn(eveT=P)JL1`YZke*LzR`{Anw#`BatLGC>KFt!wqyq z9F|vS#h7?1st*-C?r_}(`=sYuDz=xguBBcdYZUxiZ|jJ{hnuyo(DtoBTwHY!yL&4Qje@|z9k?L8&*vziW>AR$w zfQGhPOp<9jz7Sj=7Uu?3o90*LEO*R{?o&kSJWh;=SsCA0sc8zND5<;(=~#i=KcHdd z^q{@?>Rhb2!iPNIpZAeyuh;-Fa++o0d95OCJ|TVPVMawpIu7|KZ53@~va`Q?n22qf zNjHAVeNetHOz~TVh-P_&x{cHqN+IS@Sdf!p7!bx&6={pfofF{O6TQ`8kxlVNaGfS^ z;Sz9}&`Zze^Rt;9Jpc9J=U>aHw`C&f=ZY5 zSo*y-H_FT#?h~x}G$GN=J3ugsraCZy z#A>$V8T=4TJ@v!!@c~(A^3gen1%kLE)tmJ54=FT;1S)sLJF7NNn2T`;QEL$D7aypH z#?1rpe#BhU^*KG=-FvqE`uXwcX$Nch_-*)(HgVa@bH|G_x-u|3uk2^Zjivww$kpLE zg(M03{)~8MITICtA<4HZj)qb%-m6F$M~sMXyBz)5kkjEZV7u7;&1d2ndwCzCcag+#ziilfm;i5l)S~#YoYGp6$QxIf4bjb z8~?u}L3OHyt3I1gz5n0l!$+H2w*TMOw+|oQ`~Q8CkK_LbM=kDRF|1USGCi5fA&x(y zmHX3eY^ z3&D@FFa^^n$w;Xn4=&w3RvC=si3%17us=CpZaJS#gzPy?N24>bxNs&Zq;S5>M`gYDQ+)bzcm}#?PZc4wzy_1?ezEk9_$F6{Ea;_+he6|ps81JD1ikLk=d<;v`BgFVBJclg!j9VU|6<=ZmLCI{{BIvUit+#WZ=3)B=GzC~ z{4RNPcgu`_{=@nI_UHd1zZ#0m(<0u>{WQpbUw`}1k^dfSZ9V+vUjF+OA1VKVww~Mu z7z>Q&F32b3$$b;$z6J5LzIg1m*Knka387qsN;0g$c=NUv3>7k(?7-0d_x}nir-jH> zpl;9#M62=&69L201-G1^7atbRxJ%uFQlX^-=KAJ58HRH4l2ioxZir-~hI*BCVMXF) z&#@F+FllbQbWKaPp0s|n&}fY{n&v5;A+-g$sN$#Bi918Gj8d}Tohrv}p@w}n0Y8po z)q|D0^IC!{t#qk1O}GS0esssGfNrCp!u z&!~?HG5c~$^k47tniRV-O%83o437L%TTe|$cd$w`@b+G{68zoIsPD%!K43%Iuo7@&)dB?Lh9rizY0C5 zOOx@jZ+m!~_1FvE^hWulJ^y#~*XK*x02<=|zuDUS+Ts5;x5Ur){NE?|dn^=aQFKcNAM)Q%kzmQ0qqS4e|_G}BIe1#?klO=)&(J87+_C>JmDMBAw(-y zCs`Tb2469FNd_)!eiTfM)s%p#SH%7x>4EV`;*~9C!1}hXXrUJp<81vXV9@X*do3mi z9QC3$k5%mbqwE|Q(ouKAnfmWQbNz^ASz)Gts>Tr(n5I(wW7HRIEW?603d|bU*ikhU zj59vZ3*j3jQ6A%rO6?jo|>6L-Gh`MW@9?+gVRw~<` zi9I=+i#HqQF&JzgA0M9X9Ui`TwY%3#=sWr6>E7RV_70Anbj&KPHr{*Veu3~WBJg() z_kY|wJbk(SV$b9LY;fRZc6B38%Jb0V`uQ%6{m#>aV+IszR|F5t2*dq5|9`F5m?@+f` zTQ=F5&Q%Uq_(@>z*Pr57@^U=eJKp)>bo=P&)lOY1^U&#^zz`=LDzW$WtublP*K%ck zxyE`N7A*R@6t-L9uD&APBSwCpdXKpu8Q+m^=iPgx&rZ!D!5yKcrgOaaw_}z7Vj-fj zv5`P`BWxv?f-S6Isr3G)1u4JMnabC6DFkux7v}e$lm!?Wt5Q|vdj9I=pAjIq5#(v+ z9Fv~2Y8Osiq4%El|F7Z#f(JJ+M)OGqiCTKe#k8DHC~uV9L0;S_c`2R;*;Y+Fg}T;M zF%TXP8EZTyEgs`?*oo4t;V@1WFhx|Xl?A?n&%!rUp0v1}cow0{DQ+bQzUrq(_D_VH zFcNNcU<}?`Dh`hKU+f(nZ@)O`B?pK5FSZZ=p8RF+?_v@t`k#_09LR#8mbd?Mckgcj z8YowzhI#ce-bM^2H46@9u}8HKgAN)Mw)4rwG|h4hlY1`%W>xAOP1OuSt9(3aX6Hpd zLeuDr8xWS=A->OtDImA_t(dV;QWe=l-P6%b+F=EDV!Z!kGA&c8Z9FRnE>!p^XCOpK z;>E#-7JL){LSX7aDCOja^wUIA#fqOA@wo2(5@Olbe?{E+J*94Z~P7QQib%T5YLZbh&UQuw0sQ4Q^Ea#x0wP?P_ zl6z106Bkn0?K%9|Z6vRt-qUnGPX57Oy7YXOPpxY$VKWhx=65V#-VJAIrmxcwJ0tTP46AhcTiG-guHy?TRg6#Sd8ZK-PyP%Un7Iz5 zK|76v5JyGxW6Z;=kbYwpXtZW*%J>lZlL{|ENBTyCm9<=)OS2*yTX}9(()B9HH$x9U zl2fiMY+|sB4~F2yEm(JR0?g2)F;+Hn;7095{_gfPsP_Bpw?K=Jf)mgbP+9C()7N-y z?3b`stPEBaCxItiaop4!m&-G95PoSb7CyezA39qQU1Zl9Jpe2+(Hy+sd5kP21ImKt zp`!wvk--z7oL5>I%R<5IM6{P>M&vUqDI%<>Fyd3^Xa(uzS}^_)q2FYRLi92Bn5k)T z4Ux(pVqKNa{WL5`^DCoSb($ih7D>hS@JkJfKVjmAij&R5ubAmYZyjj=T*pN9 zaXAIEG_f!te$=i_@{+F(li%1XZGK3JZg%iw50!VcL`u8z`d}B>Mto6IA%~^Ks4^`3 zDqW7hI-9fbjyQ0F`@x#jYsy)}`d#vNsI}q{i`s#{i|+KAQiJcnm2-Wg)y=|A!Bhr_ zdk?;TwE3trfWtW`tJ%dg7s9aD7CvW!8+_*52Xi?$h51(?lB0WXqVL%rOOFr~F)e~(tgFm^^jM4<0 zLa-$zR;P#0Llp%_AXT1TIpspBPtZ88`mt)gZfnzqSKL&s?9Gr(7u*i#XM)nsCs&HL zpNvcqf7#ASSIEK;PZjdjMcSksOIy3@DvI_W>#7T(aNW&bvIRei_jSvsnM4b0t{@tS zct<3ddlAQqQk%^V5jNNJ*BQWEZ~p>%ZR`^B-aWNrRjoO8PKh`thCDmJBdwOd11>o~ z6ZuLEhwe6@MH0EEf14J~s=KIJMJwQBX$YF=nq7sm#+!O9%huf?+tZGmko)rI;9h-~ z97!{V)#I0kU3b8f!)Q+irxsTu{)PcvCShro!a}y+d<5)&_NTr7|6!gL%Vhy-i2wX% z>+5e_|Nlo@5AXf|KgH))iU0Kc{1La7_wuLiAwPfR&OU_}kDJ^|3C=RUcZ$ z_7EN_nN9GtJeMuRyMBQGc=KjwREQV5;~QS7i^|0NMz+_@1ch)N?g#qPne&3K_t;5h4~=`C(SquyObcPksvz7QfW@~I68 z+6hSCeEsczdmx(q;3W+034i2z!rKrv2BG6SKTzMRDdOw|pH4Nr%%yp@GaF7KWrrx2 zD6$~%uSg@@0Bi*R@*A!BU)4=b?gatFe+NKX-_*L8s~uCfo3*l-UwuuNy5w0Ni5~$x zCsVObV94er4jdCwkH`5ia3y)u^{1v~*VAA4E4o)>equEyRLurM;uGiCVCa>9A;4ey z|AKD6ta!R2)mJHtFrhE|GDIJn^l9>UOH)N4*J9V;UY+zGsZLte7?OqcDnac|^xd}5 zzY3s#kB?{ttOQJlkl3R(M)5tE@2aE=EQfQd^;60}geE0NSVu73wdgdX zkI20SCAi^Y%n%8rUA)%~eD|9SAuqi^r^KcC`Lr~eV>F10^iUfjp-*QShzQS@NWTva0sP)5A$ z=YU3#T2$asYyD0D`FKt(>jx0zr{`iNfn3q>o{B}8iUpLAx|HdY!>Jya;!E_kA7GWi zpvWeHyahBbnmkYX72y<|kr1k$GS;~8r`oKU3PFv8J;QiUK_cEm5j(t~94QCi&3u+vfFnMIg*m@gee*P2RC!*6DhR6`Wp)T}gz z%sC@n%0ebu(A!EO`|Q`Q%X!OyAr4^;2Z@<}5$bs{E~-npKw4Q?V`5wktvO=BoDB3a zU-BQkAqg`aR6=dt_cxI7I=A4ux-$0DNoOc#GN2i+)72QfOl6+hRkc+|2UME5$QFf# zvq4~;a(r2ivX0B#BN*JOAOL9Cq@fZ86kd>Wxal4}Dg?j7X#PFavUMTRTl$hSS8U1FwnNI;gp z&m{`Vn;n=04`c}!CyCD=Yy`((&Gmzsv(K&71r?_~Vv>%-?= z1h*kDXM?EcIz6MnfOUF_?e+*Cs-^`J8pPHfPa%JE27q9Y8h2G$Zmt!957aj$?F#9p z8l+)P+}ZsiW&un=`Sc3P5}Wc3!8ZcZQ4;||NQdT6EuiBQpyX}McUT}fYN6%hR6E8i zl@q#>qs9sUh0`pD7z&vs*&G+85{jz1V|omMV(Iv1t^S!R$A?r&!_b2sUtF(lifVRk z^--EqSz4mWex^MheA>Zjmp&RsDS02$=`v3<%w6-{ci;W6x4pY}`1|j^*nPEg{P%;s zN^=PG@Yl$tT`*dc>XeU7XXFvOk86)RP5QL> zSUV-4&&(dqf%tn42F~o+t5?V3%*0-AsLdAtlqdDwS()A77xWMD10E%HGGOx$#jLw| zuM+x9KW*jz<7t`|RF7g|B|ww>|LD;pNB;l%+i&mvKR(H4VfmjYb6i~hpBXe-R0$Bn zz~6!!29Et7Jx(4>J(cA)ZpO)N?FIKT@ywKg8c&nH-ygm3QNdv(EQs~SwZ#N`&H_JK zQb=NJ=txe8vvEb{NWmu^yGpYPKP$%Pg8g{T?vh};JAKY?6^hmBckB?fP>k!Xlnx|L zK^?YJNF8|!c+i!>kk(oxwSWTN9RZuRLa0+2n}xCMi0T^ zBPACKunAabm)A`$OL!L4V>U>+D46D1KrX#AU1ocFwScy=@c{2N3%`bDL63~io>i^J zVEBp>u4eil3$GqpkcOmaN*j05r(|54OJc z$){QVm%_Y0b9$l#U#%W;Stz(;)_wN2< ze_Fo(OICiOPyPG^b-|Fz@KNO&Kp0RmQ}S5bwEo<8z__~Ut9+Kqyct%ZL;4o~0VS9qhFj1LDG-o5lx!ov zv$88*jLI_=!fZos8DETPLFSO$msIDQz2qD6zwE%<_+a3bJVEzAYhYBHeqWZ5lLs8} zFh&}CZ>|fH)9J}%Q6WD*qhhMlFnKV|i5Fve+2E!2bThwLf2rg_YPkv7dXTDoX!)|UZznhoE+1A&0yqg;4udK zTd5#^;*ER+8>z--+h{9sJp&_rHa3X*UZwA3y_fCXXGcg+>8XX(u~+DT?mA9mDMGOu z$%Fo8qWuB*dhn*~2|_=+LGQZAf~cN?Y`5F3zhKU0xzBK72v*-7-`RO(f~>PZ$_)~H z!kIYD8+cM^!Ney@$_g4;^{~Ty`^o;r7*c!8l$aVh^PuuKYW1_V+OgHwo7MxnrJt&> zRu^B-CpKzYsUDyKKOdN#r^(0HS6Z(3vo1nii>FYNlhtg8N(vEXS|qpzrFy%2{8BOv z;3No8`<)ewfgt9=_ZqCrwTk@7ZY`f9!`UU1bR6vvO#mP^)n!ubS`zAfYm>qv1BVjK z?s9BgUbi|&NqB6xww5LZ6~013oF#ZM^rdD1eQI=nneK+ZH3mJ> zztGw4YS+xo84=8^_kyop2I+p+bI(2Z?5D}m$i*fA-(r4&cAG_|TPy40ud8ZN{*6BW zSZBosyGAD?eQ=fV1DFY84XiVC4n-qFwNE?n%^{Rk!Qtk9s>*m=MS13hl~=s^(kcP3 zW>Z*n2j1mi0iAYQUUPrzc1}lV@|aN77`f_)2VJTHn3*B%lE}k2JDZ~F?Ihe#5!cR4S<5W3WJhgyB8bt2&R1Utr>t zz;w^1#*Oc{<3KAB!GXSE`WX)fwjWA$#OAlT;`thMLaH{^j-@UUu12uZ9CUM>3SP>G78U>wkUX-}*16abcJxM*L zp*KENF;}t+yBiEDM6xC@`|uzXg#Df<>Y^#ki7ZE;kT9(Pm2!ZYm_#g)ShFgU^*Udp zBF@`GwWnkyt9%~X(eC!q_AwRR558OVKNs-Up8?A*{gs5U4sEQd; zS{-=p^KHkofG8Yv;de0|h?_gv&@g;n@qwgWiG1ST zNzB4*KU*D#Q{i!T0W{(@r}Ceu*{hBDrs(Tq8rqx2(h9V{I$FSbJ?A~06;NYS49&qb zyGGiyp{VUst2J#R&n;q5ByZSDRH#Vi@hABKJT0g+V=8@-OpxDwgTAJDG{~c|eC z!*{{nX0ryiN-EMqRs`1$Q>!i`uecHgzitsC(zNI0&OvZ@^iGLqPXh_BGLggl3~$a1 zym^+a#`B}j#O*~&PkQSqjWZ@i#r)Tn?`e+*ID`E$s(G6fb5b1j&(Re_&C16Pf~pD; zzsM(Vq6_HhEdi%O#Wj#Df93EDCR^V6C38JFsL^N-a+n_PP<9U^IzH+pnCZPUNqB*d zrEQR$rkQP8t=b=a%%3Ffaes-Y*@vYW#e@I$>p$&Bk9Aa5@0meUZ48cqt=F?JdUDJ{ z>+E?J`pZL8bB^u9&fDNYSW4tLg>9$5VlC#k7uCs6Rpz2bz0}Oez33#Q)nlbsl_#@( z8)kG5sXAv*yubTi6Jz(;oTW8bUB$i%SH_Hi@vYD;*VdxbbW)UEAZe7N;<>Ul&3735)AmT_ z3Q+}`rxOE|)qyemvRYn<0wJkzVPAB2FYS|YZIN;BWRecf9A}IrzGp|dGw{n9`GT=1)F_c~V@?+=?6IU(t_j`o zG)t6)OfA68@v0v<^W1xU#MhP9tM~07@j!IAcN69(VI0N$L1V>he?CwUd2r|t6IlL3 z$CbNuvpK^2$DK0h!}&wBr&3>cdLa)?5b~@KIv56oewZKPcFxWNAeoV^x!PUTN1U{> zi^z(4GftI9T9F7S*ZXH`Q$949{txjP1~ncY#d$s*4x*Dp1`&M>c~i7WZ869d4)eM> zvENKY#75Oex+dMd;R)muAkwuO4VzC@i|Tl81kU4vc@2r|!Rz!?YrDci@N1O{yr=J$L)=qo0a+Yc$;a!Zl5&N~aeG>vH#VeDJC#cyf zFM|^v9?&$=!7xD;Vlc`2)>c{&5B!+CB9>RMj&7O6jjn5`y2JLsUaSYwY*kjt6|AqY zM*ATlzIS-~Fh_2;%_^PPCf(C}=>od++DU8qj*q%wcp0y-=Yo5lUwzMd-fP}=THwEj zbM9C7ns2YV+YffOPx8N>CX-89I82B?S2$^RoGTo*9^i)o1>)NGX?cDSm*-apM*Uz{ zx$xan$wD9BPdz@0~y6PC%e9=G-%PAFJ-9Em1Y?XuLTgQCUuPz>fu>x+Re( z5G-nYILt5F@^KnKesA87Xb4J{+z(Uq$_y(;XTU2wyfg4MV3cDZK{TH_0?X;j zx{RtVuA0@Lc6L3)hXg_EQ{RPAck+z=6AD_)q?BVu9c(tJIrAk6i<5{1jxO?}Pmhz?K&n z3{f?GlD#w02GDtcbQ+iOkOm;ezyF3DoI6?EQP#Vie30nJ#I~~50I$ivjOWqAS{|0~ z2dcNgui>HyT+c&P=1Ed+ZKdO#{oQBuX3ndduzD`_)4>GYspdtW${Nf_9u&M(#3tkF zAa{(44#R3f9$VWQy$0$z3x5mUr7)VsB-gPEb`$?$H06w#u`NoLte5ERGJI9v*paa~9$$04^OL?mhd(-m@1S{`dIc+0&z^ zJ5L{>w-x5dQB!rIpZvsytM2)1@2{Wl9UdJ&-aC5ubXRr6`8&EtE~5 zI$yDa3DtVmP54i&XT;y5cPrx`GC*D4=!zS)vCAn-Dc?Ai0TCx}>Q{^3 z-tY7lUuKJ6`+c2C-O<7G?;h>%M2o9yYv148SzFsZ+Kqns@aXZQ2u6+2r@LRSt?fNo z?DQOD=tPU>WjWqjTf4Zp=w00G<&(3uqi1XHaMTSPMt)r_XpG*V94yu?iB%)7USw?zsjc^HmfZ8EPZXHA9?PjLs*?={^6nDz(z-p7%OPgCJXf1H1cM6R#?SQU6UY%tv023)l9{8LJly}^lwg+Tg)|$La`qR>W z02* zUG|nq3vL5lGFdBhtePLA(W*|<)Rr6Z-jMYxawK(&t94Aa*^?TzS9r)-InkVvvwSk5 zRBNHiulhG`+sO7^w<0%$f>#w>Yl`5uWNYW~SNgF)&AplL3pZ!94+y#Dajy?{6wg^~ zZGmK(0e@8_bBb-c9|wjmrIj3hb+TG@X6$@z8~^3wM`+pJefszb@SsmmkKlp4I=aw6 z@_@=%GBOC@{4pFbCY!{6is#Sv+kz>$&bl$L7kZdg=jr2}^K>|vB=hQyyv_!EHoz#T z2#T8?e=y2`@AmGgJj`Fn+zhynpJ@JW%zKuGa zXiLp-y-*_#5RuseI2^n3E z$3-$7-rwd6< zNBKkOxkL*MTqV3m9ZR@H%PO!i^uT~_~n-sSqKN}fygq3Da+I4&fi(z zeAmH9*@1L?v6Q}A35qT%ktzIpZ8z@l62Le@J{D^LChYh%CuePX0?S*T!|gc1`R4SR z2(82(@A~BrTF3m(Mpj1=1g-*($|9_>t{W7N9_cYD01cm#*D!}5@ggURf$jMFtyIfd?=}f<_DLR8+9qxzqgh{+pNkS_u3GO zv$co^Wgpgm7!R-H)^GZ@gh|cJA7kg3SA&C{k72gsVN729tR!ivLd95G=*G5hwMD&0 zvYD#3$CMzkSnjwp)>d!myx8GHKG0G^vW2I6)v=#s!x*U0Xn#vzI}1|HYBZ#J_9wYJ zD;NH%nOpG#)Z;}*x~R-+*Nd<_z#CqjIl$ihn75{Qp}Bd4>)Zb1a$M$HTf;ma9MJy$ zDw&s{xqWNvJ?Z)^6b}B|X^QCq?y(bE*Qzhn>9oG`!NrH>(c}L>kY&$}D}vT^{-I!N zR`4SMF3GN^`0|xT3pXchE8T5<9!6}U4^D#C0SgFp&?y%K-t_ZC&l z4A?Yk@n#Nr{ni9BiU1omZwP|wwj{R#_kdSzeO{wNc%*9t#I!s|ecJY5l+LRe*S*^A z*`4c}_lQbUocIx@y+$V@*{bGvW-D#&?#p(1rFmTc!mDwTC0#3AgrHvq0o<QsDZ}N3mB?ja(*EOH2;a3et$K?Hjr3u`@~DMz1DB&V_g)5R zkiuYf2NtXzrP-S{@S1J)@E7^ls_-F3hq6vr!J%vR zr##>5u$S})tI z+MZ5NblrR@`*<){v6JU-()Vy!qOoKUlv5{{C_jfG*O)cHU5_5>niXS%H zUgtS86B^+aT$ck*&EcFTWq)1^2=`Hr3={$Lu5>~H;A%Xiu%<$3rRS9Rf>SsHU%zJG zV&Lc08CslwA10d2tCX(}@I!2VH@V{GRY#zXeUhZ+-+pC?AA;q2I)5^=@8J!|FN&wN z3C(8ChxXUnM&Iv0*?s!`;dQIhuu2QRD|2RNQvH-mI0#!9V<|5)1sAAynbKNg5P3MK zRjr1tZVnk;4f`n2X0`tbF_f=4j8hUpH-&S^g$I_7Ko>T8`xmQ0GAJ{28QsZel%XjJH2uyqMs*A`+- zb|3dk8Gz7l;rBird^(*(m~M8Ml#&_)ONj;(iDNEtWLQ+ZzgZ4^m37J}$uOFF(4{DU zRVwBpiO%D<34R}!C8j^1=vvaeP)RcAT}fR2v$udvHX)|^zI!)dtQQm6bKeO`#{h_iTN^EYxKqYcCh|qm3VfU5jr&NGqO)a_QX-&@eRvqlf7uiD(}e0(=l-D^cK6dvk?1T`|VOc_*Dq@Ez!{+Ku!JE zCL$dyA0p3R91-(x@+p{CY(_~K%GjgdJ^U+NjwxDtlU!0m__yv|9i{J*0as7Lmb4~U zVA5Pnpwi~@5|>uQnN|Xi{b6kFRMNY&-Dfn%PNU#nRU_IXp$9LdvQgDA%}P~B>fJaM z?t*@mLRgs8aCw@g?;?{)%_++VEC&~P;Q@-4pe$TaT9TnG#8hzdLA*=#mwqU8nz1h~ z4&`CVN0DmV$bXndX_%~Cc@7lv?t+Y0BmdFwp8U6dbK@_f+aGYBwLgE$<-a-3pZ-aI z#}z&1(FQcj{~LEVZ~OIMHaFKl)qlB`ACdn>Z2!5uH^6;lSgR|~5~R{249aqGG+YhfkDOGZx7Rs0-AO5T-N z)LE^y_&WFvDJxjNVB>XF&47g4WyWB)(`s!=U+{N@$e`4}NwqpoXzIhmgX8^;ubv!#x4rXMdrx-Va@XjtR9(S#He&(U9bNBX4Py``hnKh% zkRn41_&Fff-Y<_Tix8--$-jYR*f18XW-qIJav44}Znc|Es)Kz`#f2$J+9^Eed{#vi zrtI){o<{vAR`fILHZTbVoTsG{6Noi1e+wpuVz2O;g&aKXcqjWuvHBvwT|} zO7)|hoj?=DKo+q65@vkFyVQDk>>psj^$}x+0kRl&v})h#=GPqmA_^4SqMf)6tlPi&m7TDla}#Cst>2^iQ^SDL-zS|3m4}{=m=wlkl*IjW)ho|{ zl5?1FM1Lk+VQ-}w>T*h~VvCSNs%dCIw|xR2!XgaliJ?p)GEQ1V=Q)-6!!(B%_?|VM zT|5}@)O>==vYxJcR3XnIijOv}DvIyGQHKzP=L_a3QKifW1GP9kW;b#>&UeBe`%KN& zRRUwmMr`r4%~z1O8^xtgkUZ-QLjbC|f)1fkEXxaNjrvmm_TbM;hhb-*Me>?jUbMOI zEee)Z(Cf&c9o$LB4BJ@@yeQC5SbX^hLj?|=YD%Kd**#_?hiLO7e>T1l0P3N&rU?Cm z=c0U0Zx>^f<;>`<_xbwK%!52BBGm5^%0$WAgaS8hdfi2v$PiyC%>&JRJD?qhrOP^1 zqEc62sM1>VNGI>cLyUvy9GlAI>TCNf>~~%L{$l-=-J*J{>rlxX7q{SGR}Uz9Pfr7X zJ=!^bymxrG{qw!UwN5MCJDObL0pb{R00``k9un}bkUw#92knr0rN!|8Nswx=68+>S zKtPWtNjyNisr5~bg;F;NYREAUcs^og7uQpeIXVK|ii@P^nas^g^id5nrC22_%dm~@ zmX`uY$NM35Dh*c6?cZ<))T90Yu5bwPP$a{*XyKson@-~coJjMj@X3VFNXt89nZZ06 zd`U?*LBT|>t~oCF;88ONEI!D7Lcm!EVGUe=9PbGz*zvQ3jJ@>SsWkkCTnfR$bOOl) za~NnT0e#f~$>6kI)Ka-ioVUP$lZMo!#krrQjS&oX#3coJ(`m6+Iqk|>^cFjdv#~be zQYX43!@eO9uHdO1+-0X#K!73ZO?^h9_ zAidNR6 zi}Wl)$<%NS$_Yc%PTdHJ5Hd#Sj{!^!DWcR^qhxZH47jF_xMCM%h{Nm+c#^{1z|aZ1 zJ)NMGSj3|fkhakIbcT7%V~RXJh})jz`7nu5$$|EK!xVjgo=}+<)JBn|KhCTwNbo;F z{)xI*Njw=|`s-0%N)EGCu(xd0`NDY`w8-T1e@-&{HjWgAt{iIMU7!k2z;~WtKJH5?>4F)n=p7gO zOQZ`y+Eva%K_0*N(MT_OTDcGnJ^ny^PvUfl6!r5O&cNdbLX`mMV2G?OwW!LsG|n*w z5syps`W?9S)>{n?^iwa#*pp7~gN^`JNyem8^-Y)0E9YxVmN1oVJlWbp3U!cksH6<= zwb#8u5b=cVQI?%4W>!-OzhiVQJF@$Z#U2nEHE;p)kbV>d`(qu!KcX5@xd@hUMB1)_ zrKidYU#L4SLtFBD+tOX88T42~ikNf?qJ^}IM!_#F@Np15sIZekr^=Al^q$a% z!_A6)amA-7woj_1SPt_bK&$9m%_G{cYZTIadFtVASOwrINz4ghIjW2ERBN`_rlt5E z->y~FK|Iqfc|k=xJ+{&be2VM%Xg_oKe<)m>I~1hZ|KrxJ+jo5bkB!?KcR%@mT*r^= z|8aEg_<5{Ol40@|tIeLIARdsgg5d}GBt1(rkP)On9o%iW@LUcK{k$=I3djrzU=T$& z5C!act|8mm09cbE`qMvn1GMBYAD)0n;<<^$+@@FXw-slR>-REYml1sx7JeVJPgfj9 zPAK?pAYujZ0ES)qSdJu)E!~ag4R~V|Mcz+Y;l`1BD6^$Rz~f2kJ7nsy?Ium*+in)R zkDq2&56TU9bvrR3g@@Hb2HV_0H0glci#|W%Uosq4y?Fg79X{Wet$iN+gm4veDe3KPA}G9z38BLg>nvN zt8%{qVM=FnRzD#=SQUA#2*jOT6R}KnLr%Ra((3wYvbx;s^;Sr|+vD|C)wi9V-2MXf z4N}1jrK^ler&_4aF~iKh7U%gCcycnbvFNynhq&15I1|{oVj)@xjT`V}ols?#v|B%P zb<7rm=QEMW&JF#mkVtxpPA+G@M1h13jf666d~B+Tt+o;2ws|xs%QS0`1;cOa|$ZHR=oM^~x*| zRf-19ST`uU=;_%S!@lZgnVSRv4}%vq&g@HLSc3cNx{u=V7!4Y;!g^ph5`*AhTu{&X z3w78LpeS+lIgno;{o1(VnWy8Q#Gv)I5O_Sl}kP^sc6`> z6Kz$>jxJ&f^CmTFGv9});$k2b&}%k5!A4#|^V4(!?=&kz9d)zVr|2f)e5sxk(ws9s6b|L85-wPf8+5}L$4Pici-$6E&a(a%?y0P3@`}Oaam%rV5dGY1e%D3>} zZ&$XKdpB18xU{xQemevOY8xWi1BdmHW-m58#*glY_5J3nS^SMVZVk5+cogh@HPP{M z3KwXmLqul(nC#MqFPfpq_$oM$_pUOCoIMMf_7_2?kKmTPm)A7$ylevRDj$s1qXsqI zsG*vY<;S_wo)W3(D)Ky=Xpx$tmQbsZVWw_TYeoiwHm#s4pU26XYb$lkFl;Ne=}?M z4Ng{JAo$~64F>)wGaeVz2_)IsFfGn)U^FkalVqJMtqwcZE@+(M>rDa?zUKDP#Bbwt zh^;fm~sJs{K)4;464654(9h5px za<9Gcau)IE)O!MH9fy%sk<_BQwv>8nE4Atl%%{$#mTHASGu*z!9O81cV&DB94-@F5 zec-@4w&WXiO*@BBh9pxs8eIv`TYiCh>rp>5U`=8mGkRT)BYNv=xewhxAZ-WadVz#6 zA&tJVdb;rYhy7pZ0bi}O;HJo!9Z&k_4pleDAA)|<<}GM{iK=;e7n9H1X2vgIbfC@#M0|GBO76Eg7_`Q3rip#m&m`5DiI`K`M2 zv62ILXo{rL-ln#CW!aY!R`fz~3u=I=HDi%aC;h~aoN7K&t=$>m+fE?B5cI-;*?L2H zO9B{+gt<+$Cn<6?8n~1EZ7R|AOZG$xKj;$@W!c9q@ALWg?UZVqxkmKXp%=n+hkHOF#?dC5NbmFv5t(P<)`vdp31x&MJm)|C6a`D z`6(iuL|;Q%n2+LgUya<9ljRo}PR49p_(ckYRPq@#lU<+ZBN9yNC;M(Q5?x6tSQ=9w z=`hS+&Uu+6;`W2bHd0Pj%!Vj2iuTYMVTzBAQLMvPF{Qxz+WU0>mc--jGP%gdn@oW^w$n0nEHZOvyM z;_QPS*oQbQl{b7mPy#Cj3khu_0T$4LHwaVeV=ZRb)0=%ADk970En0D6ikU&7Cj6|bN#Wx{7lk#td*}f7;KPo}ti@$1!3bJt&dyhP&dJbpOg|K&q1%V36 z1*{gjeY44e_%9W~&@;8Q9EnfmR`dun;={H;>UaV0L1wh`YKsPS^gI{^)(e@1 zE7B}$D}dS1XE0E<3IAqStB4%o*?jr166~jt2}i<+JdTDzZjOW>85P&&#Q2~vq}97! zM~22%zr=_Jl#tc5oX*^$pe?i%_3+awQY|?F$~apwfjuOHKi1E4e)7NUy43nIQWI*LI+^ z0%~5u>8DQ~J!j?nTNr>$cwE8{&WghleGLoHk0E-mTpAJl?_A=1GZVxXz0wY zX3eoSAHL*NE^JmFUZw<=KMCR0IgMN~<+zgXAGAA)wR+F6$}Rmh1dW|b9uTr5C65LD zIA)e$-z@aixoBuF3-eJ3b!|5ht7TJ6q88H7I7O7-?&)K*$J94X5;X5D^3EJU8&V+P zLTC}FqWvOT?4dY*IZoW!dW-0a`uSp5@vjby-f#^O?{T^HyL$-l6o3fxeub(IX@h)94*rZEk#?i3m3^6hCps1K&i5aTUs z_MueEU?)mzm{!!{aWXkmnRMv33W>tp6Zkoj2pqSWMraE>Wr$ezzU}fh>do8F@V$2& z+~{HhcK+qz(V0~v)X^yFFZHwEU3Xz6`T zzo1eS*Fee|&yPvncYELs%fv|@5W-@#GS~A{C9_P%Z+2h z9nAER;Tcmm!0O{Ze^l-Kbp>;A0mp-cN}}7tbvZwU=Rhvko6x0=GLnPuJE|In?PRYP z#>n)7Qyp20^-vmr?DMTDL1Djw0npn9P7n5#lndTSVM5jjeSZYc?GjUP6Svjo9PFMp zsnvr7P5kPZt?LhBYkxW^KwRd7>{<(HqXe+i9$kTCU@Ym!p%_0TIe=X?Py=|)1GvaJ zv{j?f)t7$motG1J^@s9wn=US1OB%S~y{(>S_`sc8*ZRo+CLOX{TYk3Byl!cqU#n*y zVQD|_j4?zH4I&`PnCo?^P&hTh46m5RmoH3(+hBY($BjbwIacFdyw+k_Qmx-qn z%Z?5-Bq_kBZgE*TFg=5{w5I!1<2Iv}K8Ju6(_uW3X!Mwm#RntR&O+! zN4B<>#JPm{U~eq%)yHKVXVVeL-)DuCy4|QfBp51;6WCinMFng#;gRvp>#yf>>3f1;8#Z)?cke-$v^9Xp4WH6Q~D6kO_trkYX)b`bL!?dJh<96(CnfZvpk2 z9|!6;KL*t8N(AU+>}nGwp*9C2Xm=0KU2YQef@%(1P-V`ytzo&;ns}{LoT^6Cq9i?# zj@seahW*2*(Vd$=Wf45?_px5wiOK%0U3Rb()S`^4WamZo$T-@!rU;Ae8Zh*tJ+zqE zusaW}uRwKqLzJ*voK{K0nkvlW%&@g#=_ zlitgklX3#oGSsuMWkO;#)O7mHptTDWf(R!j;#$+#LR!D*crfq0;!yFDg$va0^V|jd zfB8m?Mn^?W95BBhmlw3k+c$-T)GI5CmFN$D@Kduj*E_8Z5AtS_rO^bR3%6Gfr@4cX zEFRMJ&99%Mc9QlZwDk3_>P~~GND*Up5@JB!98;VoCe(1LD8~KME0&I>WUJI!hM}jG zJMWjt$ke5%dWbKX#n>rVZ20T(Rb53O6t%0Y$g0lxYA9MDBX`F%=ycTr!u*sm;+j5< z=ScQll0Cdt)uI(Pt|Cx95>fkhe(71RvR#r(!4$n#E%c9yoJ~6NJ(~aGO1kIDefd%4 zF`K9Un|f2{tpwkk|Lf+>o40QJ`M);r-u{&T>pFhi{9ilgd0wbWO~&4os}$e#`zhs} zp8PFL{)L`P*5}X5bXdH6cyx4NYRRc!#86%^u0$V-T|{ST@+G%o3g9E-?+|eT0Bw4M zMw1A>$jIS=SQ4X>;L{*!Xp0C~J+Smw`w!nped!yjkCL5*{uhIvAY}Y3VvWn=T84b7wX`^#+YphbRIc6v*BB!}Cq;mK# z61?y7H={rO2Sea#f%kioPcD)(Sa&2JTU|2U<;i81Pl`8w7x~z9DH7e~@K67E1g#Q4 z0NoAgcNQJSqtxm$iaXNfPyZmE{3aQmuNHAKO5wI)_k?>N=F?E`L98d-1@2c?2*0Mq zxoMS{o$PUdSf^`^VHUlcOv|Ew&ZGPskUh?rjTS9vlH$SYaeQ_ePq^X3 zX?8}$z_c8jh5zM$^N)Ua`6e3YLp}0AK6KzQHp@PMYcoBY{^>t1R8#spDH6N+>dB4`~ULq|BHY2FaE24@lT_F`M>@b|K-2@U;c}K z#(keni^ADYVpft#)5#n6LKrap^Z)xl z|9`;${g?mzzy9a{^q>E;fBv7!rJN**b-uqb*W%y(@Bf2;_kZ|L|G)q7|B)O1Weiuy z+3WAlb=&{p|NQs<`~UiX```ap|JlF$-~CVJY~fje*3mLailp;gvAeF87YyM4;h+Bf z|KES|4})DPBKx*&+^fq{{1ZZfB&OWPzOHn?rmald2b5Tc_NGbE-rp+ zh1hlCQ{8U+bdtV_;o*?8P=8Y6Q2t;Q?n#kHhX*#RDAJ=+oz4ApQ#shjGJN;}CvoNE z_{mfI`N}f+A~RpC{7|`je{3~?tJ01Wr9n!|;V>EKuLCuZJW*nydkBjWibw} zrau3kTO?j}4#%7X(8J~`Ox~~tOJtkgO_6+a<+zrdB4|%yny3Mdn%@q}F!@En+NVh} z0?`qj{86c*p@;!=D&O9$_`W#~7Zz0;*;m-*W@*({CBH%{&s)b#P0;M0mrfW0k^g24 zu-`1b{BCFo;p%y|-qp?{rt!#oV>4wvx0CuI>la~5G^UIQKPITJx}5RW-XY5NQHKeoxv?7U4l@Ct+Qe5_2RW?*g^qN+c`^Vo~;tCFMj0Z=Idw3YR=fR?q?s#_fkkEIv zsqGa!-9GJH6zp@g1Jf|FGe@N7TT-QanmVfa$XUfBA0f9At8;B~!g@-_J%gbdwQWLa zQDHgabwTd6adejF{td_5wcW?S&Q*O7WJlubZeVg=mgA}v3*f-k=2m&YaC+5&Lha3N zT(>j(EUBPxQgS}93rZsrwjAr7_N(^QD3Il$ChKkB0r+|1l=lW)(%DKaS1BNW$~v^! zhL0r10x7B6O9e*ix1t3puB?m6=e9eqU0S~H&Ew`Ol%)d?7xt^-+=vAj$@0RF{gyMqC-N+5r_oJv+RJc^Kj?q5s=al9QThm*^>$VAzO$<*- zF1SG2N2z@Lk_s9Y`{>zPGLkTe-4Sr3+JEUPi-ol%mXlxv)~ogemv&x6_!ayis%qJgU=Dd6&SKAZe&9 zq=5cKpCg*x<=x=+6t*y7Uy2LNego$%WP-<&`SNKwhB=6N2wcU8%6lkBK)a_ut5Jix z6ok{ST;x^*0xRVW!Z%5F?4|S)Dr28JV{>%hx*9L~GA9X2%3A5_DpXYZUwQ^gyVDy4^Gm zi1q{4AA$tj0w^>_rNR-9?BtPZ%}`+WzisRKKOk>8L8 z9;JBZWQCYONv98q+A(nEG*a;iQ?6wg6Kig8y>Df^$lAb2DqAxp?-k-Cc`J@|iesvQ zfiEA1PoN;|#0xd!E75mWICyGSivc@MA*0Hcc z*gB+sni!Erie6FP$0bH&l(r$J25m`sD1g@K?FYFIhVm}3n$fCbSBRaH+o_kNA|(}C z1up7$iP4h;eZH7N0it7y18RY2RE{@#GZ8jr4#DmBm57V8HmtO1fs0RRN zty3AS!0bLrXmM3P9T`o!C^p0&5!KwNuBpPac0}DJFs6-wtT!q!N|rC96!Nt&k&oJC zk$zOsmOs9qHu0Yn=eBnBIWWre?(N$(@t^#=6aTq!=kCqTzld&sxNX+|{4J0FY=8bo zK=bAf{iUDg_}`7qyLWDR@xSXgZ{PeB|9c%j9RDlfzj(x}lY}!yPfLooQYDsk1n<1j zvxGg>;90g)>A+c>IuJCg{f9842sHT}+Ay@Xi*i?q4X{Q8MIUpNKZ8aL6%AYd?${nm zO!Wa*aW_BpS&}8dig6WkSR4#D8arjHD3(|FPTVz`=*zsH59_LsV@;4HPTEj%8kKaE z=-u-Kl8tzR6%~-Jay5NQ^MLK!)MZn{8mBIatA09+-$sw~$(tmzBdeota`>V*qA%Rg zY8%3JVktxHNX@#eH(Q@5)-g=w zuZL`In0N?P+zL>(OF2Pj9d5nN(?J_lzzcUI^Hr1+RQH@Uqwd|DM}RmR<|pxRXMQ=# z450yX&mGQTxK*Q?TAq50Iu{X=tPll`RcT<=<(M4^f4(NGYUqR))rX6c z{EBp{>4h43oR4YX$1sC$nO6D}y+oCL(o6i(aHQ_ytodg{Gf0@qWCD)? zdJFF#KK<&>`bIQRH#j+^s`CU7DE=opoy2{WR4d`sF5ZWaY9zOrpHS=y6!V?+ssaKEtu|Kjfk|=E)9K^8+6EV{ z)=9Ur;qgu7Wyd?Kr-${Qmcr)@EMkjmN$pxHikQoV-kzLI(KhT>d$319Ra`732hruq z#SScJ!L&ck&>(Coc)@kFcZ9=e11=i?umnbgbr1YlmN3DGp^Ic!CSG1LCuf~YL$-KZ zxu*J(n-zYMW9?o{O{$*Zqo9LUYtF?k6ryNm8d_R&&{q?&Jf zF2GmNb_*+lX(R~0{_yp$5;z9{qDnZEmYu_E0O)h*Uku!^Q=4%4RNz> zh@1WpyO@-)I>4>E0dDyNJj|!TUEHo4;dW&gX@=FX17qB&8{>{Y#$nQ@1d!D+?$(WQ z*B|5iBzY4W;j6k4zIs*BKzm&`s#YD$+m@WsYv)P{7DlYp@Ob5*i(httqSHg}zp zR~lf_XO)Ax5gj7q5D(#H$p%A-9v^WR^n1R<0lQI=0%MNk^b+|IWD?^@CznZ)`FV@a z^2yY5*}9<%Pz{oCl4*y@fQYQStW~_ZzQ?CJVOKv~5Uq?BX)NLvEA>1(#dH!GFn`0# zE@ea;}2$YFm=5f@&9-s-DsoB%MZ*Q4+PcBtWtWB;PM;e3(%f&gS249wj_oI!?pr@OfXCvU+#$5pt8=Fm1n>*7t)fC-kqSdB}z6?!N z2Vd(@xf(VVRiAaLU$#8e!2B{d`7n|iQF&4>gy%6N^hR`7S@p!o_jN-bdJNh(=a->X zQ}sa1YNuZWU*Bb#hRtE^_5VAQ%Q477SFivy>;G@vy1C)!|6C{g&nNx=$N!Q1pN*P( zu?}oUtg1(Eygnhr*(4sHUuuhidYszW3V0~Sses;pH=!9=#+*|8gMe`t2^KA z5Ft_N)OFMwX#h+*iDoTAKOF->piJT@j6Zz5y`$U@lZ@tu5xJNoezyM$*5#{-{Wfs> zu(&b4`jx_`YRUrkl$7G-MZc;t(U?Jy_e(NksI+9r6WCtDoEida`&vifD^J?%jdS3x zied<~eJ~yB@HI@L9SA)ylEevE;w-9+30qrnQpnkhQn2f6@wem26)as}SqD5fu70(2r#HmPMW&-+ zlG$t@{e3SQo#1xicNapPuTIjk_&|D2EFz97N$q`*QQHWC0cb#pU-3rp$SD5~#M~ZY(yzL^!?PKPFyn0oa1L4}JwT779n29rNtVy!;`|tQyo|7b_kv7&Z+o~bkR)YA zRQlr1E&Tr#aaQXxpsG%y<6)d;QoY4Pq(HVLoThpUthcLE{n}a8IxniyNMhudJ5LYx zo*W)NI)1kO{qgSh(RK%wC;o@g7O=+E)unI!E9Cr5_uuTdRnWR_-okUW>w?f2F^&ndV!Tx7M*wgoVEFZ;;sE)9Gn z%q0he(TrE&Ri$fNUUfTbb4%u9tlL?^aH~H$?pBU^4(?X{{DDeB-25D zd~#VP#q!1-Z#?@FjxfdAnNcfikwAirIH1a=|F(!=eQees!+TW^2?3pt8aSJoT+RD( zG&VQm+licA)v+;ivm*-Vn&)X?_N{DL)>=ru!D46_W#=HB|HRZXvi3vMz|Z!)#_#*~ zycgFr>-qWgbo|*cNzQ9DlRfg@uDKZ_=LLdO>Nki}mB18E5t3Ase6naS-ad54a;mZvYSO|rWQbM}j?`19S~&-b51i#_Vu{h3#MW;tp*H3d>_>vP+0izR#SXtMX7w>Hm>K^L> zRP4G*bSNQ?r#X7j;Q=cf)RvlLHR{NSFkojZdZM#zITJ}ubb3(WN~{jjNrE}cO~p`W zpyP2|6foKW{Bw~{26`pdp#FCEOP%A0xFQPT*STz(w*aUHv(Y^Z%+wVOUiB~-mn;jM zbFH&;v+FZCA|A;;Ab)VnO`C}`oogu1X%zffnk2uSrkJA14p^`!z%X}dBPC6x8rTH$ zy~Jv!QOe08u?q#>_G9uI%Ye$r+v3s`Vr*(?SZJY`Oe%e+^Gd<5oHoJ$fbC6GO)9G+{Oa1#@<;-9q&&6tnv&{!mlf=Zl#m2Bm--jgY* zuG9gtI$+veTI%E}4j2-Dm0UIzUobE+=OY3| zS04+!jmV!HgjOO)jg*cjyR64krFgaQ&ZFv&xwRhr!@9B73CmQQ9s?f~0PLU#Sz*t9 zxx(QOJW7p+8P!;IpE*Rws#4lO>dGMyPXZGm-s`u&66a8t^F3GrnV}beBOSSQc)oo> zz-+O`JMg?8KvM=@oqsDnX7{3>VG}CQPDOPyOw8u>V)s01{(h2h=Xn-eM4-wC(N-2a zJz7Dpvsi~&C_IMa@sW$56n3tvp(5TJoCG=f7Z~CYLP_RN5Z?RMUV=c+5S}}>3Hv&3?MyVjBUm;;!0y@G+3Rr-&%eXyF7p? zFk~jpN?F#a`9!H3tg(C1PMnGE6B-Vk_VifBD(4k?umXdT!ttm{neJLWie9ul!0=5R zTb0wQIcPiex}HSw`fpfXXyCvPYRQ;pR&7?iw)KTdmNzF~uJ@w2?~JRspj$d% zXf3*QD=fVYhELr6`*8QV|07Jk6n&RYvXgi^ivBXm;PST?0qCm_B>}u2w|_lcJ=wN= zhDU>;SVpe4>ut_sCRGp)4pmvTNm5KRVQymhCB(NABM0BT=%Drv*f8`r>HPBc`cHSP z7eCY!f5ORldAId573mpZ(wR(FS50N!@t4%2iGZbf{9U}N4zn~)M$q2Yms;x8T8$|$ z&QhD|$;tW?Zf|s@fhht@^PXcjU0HD+ZzyH$AYo;#TEohU?^A?7Hbt-cOyQ4VJJcsA z1n8ZG`;f3;|6m`0YE5&W$H3;2&CL5M;C|H@1J7bCU&N{q%W~vQvBh6rD6mZ>Lzf_V zn`zZq*gWZST)pkYTBW~Bd@-l8f@-LY35c=gUM^OEha=>mRID6112<@xXGINhz;yv_ z_zCO<`aC7^AjMrYQ!6vwATg zLOGHEMYsUpiiwAlI>w!jFc1gkfixYBl0iywWX*wH&h-kSIfA>^Qthxzj+juzsYYeY z9EupjqOG|wZPdyHH8MeMOl?&wWl*HUL-QE$JZKDTX-hUE=nAu4+sQrB6UKlwBc!v;6#Akl?E@?Uv*`9E8!T`Hays(KxRvr zu*P$79Y)k|l-SoS%Hy}(HPcpc-2k>9(W-e_E7b@zms3ExKpX>~P`%~f)qg;5T`PUhiCZ&J{ZlqzN$CLwCWEa0XTl0Cx9NDdSOe>X)d33qv?3eFJD&@=)^tz1F|Sx#QZj#a2$e*`1;9U_gdC`m_SvAVkz{u- z^DHgWX%YPb6GuI5zW&mp>4%Ly5s1?!~3c1mQk@~(4)b+t9&Yup=(;lJ!CY1t^FRYqjr(jX<4b`JzA)i+4Fo| zaO7E#s{&3i!PwS>o1>4FpLo}}p5~d$a*{hNYX`rI(9e{5a`l;8`~lJ;f(`;vsIUtg z@=wJ$e~V6{9Dhh)M^DaM(N^@87YZ*p+~o4gBR6E6(DT8I$y0Wy?3zX=c8;t&u#NVZ zg(AkR!3dF*t7epx{r32&5%j}gDE7DTvA4vhdNr)%-r-Yd$?re(AFk+Shd>a3WUuqG zQ=#jfCjUSR`=Uxi^14JE5H_q>v+SJsQc)Hy1XfRS?Zd)Ek^zsiN@4^(NOqXmkc#%C zBic<_#xO)LdR}0$s3@VlPL#;wf-{Dwd8x_|FVl^4jCE`U7AIk?I!T;ZRU>|bcQ@@N zJyx*8@agF#_EiUq`SY`6m8Qf4gTDdoW^h34A-FA`g5i8=sx6hU+U7a|I_yNgv^J$3 z#6n~Gdw2kHCw+O2FUyD@*YC3q#vKqAyPo|2Q0>L1JSZ#wE;dY zwTl`oV=Th`d(rLQot4lXv%9*Bt0VggyrVdq5<}_Zq$T|LQNA*Pimv3Wg)r2K91iaO zI0uw6>i)wuXAZc!v zP6!JD&&e%+*p3z+VX$%dr#2RQotX1)$W;ZhX7)NBHl`(i$>S0+PBUge~|gX8vdz&9ANfdin5MSQt;zS^E9P zACY~tbJA56=V9?j?W0ZvYR97Dj}v*}y@d=0{wge6&eD$82q9|uI0Q4{ZMpFF{5KuL z_F(yUaJU1zSqNbh&%qDiP8z5cC1+b#kJoVOnJql*Z$go96Y zUas)dKL6LlvK(&@;xPuB&zA&jM*WZVjhmZZ{;!QYch*1U|GJK!Ir4uUun34+_$<#> zg%P=!Ak#U~&Y@I&T-6StEME=Tz<3HPA((|^3%~c-XVT~D^5KV+LmmG-^n>ZE)jF$< zD}ig_fi*ARVl4+iklHTAYCCHs+_c3);=$ngvq!qFeKBJ#mF7#+$xv0%qE8yv*P?ri zHIoc+m=stH+o@Dpx9UI#^thf}!eVN);<(K zValr0(3%}khX-?pX|sdV1R3S#b#oh;fItokC<(m4ZlE#3Xf}eqcGRmW{i0j|2!+_UB1)h${T1NrQH^aeE7Bn-dYW1B2<#K zVU)u?+bqu16>eTzwf-;_*y>t!ra6LQiB(@=KBlggu{)L;q}BSTC!>_O3Up7MwF$Rz z3-%>ANfXcVNg4O&@zY-a_shqRu2%kcR{sC>TX#47{Qnyp8=v%l*YV@j|9x(&?MR~s zhfbF9-KUSy5g{EBUJTBp)C+Je>*HjCj>|<<&gWy6TM`B zBnv&&8CKgvU!)6i7!h-Q`*deAf)0JhN|*Vm9cGSHV{^UZeX_CPf3k|f936iLEhBGv zV_sk^#mv%5{Vyaj5VfHN+ZlrJho0C%6}6n#`mYzH6A;A+DO$=P0Suj}>)~#;S{zq@ z^?|}*KZYYRt4skDk9pV2YWtEBt`Y_!P(9`hbc(Z7h|<*v(zOx8k1n;NzGS`?$D~Yi zcfHw^!S%X47h=9>3LnHp2yszR!(hg$g&EFPRbYpPYUi8Jcc1PY{pw(^vr?aay`@nV z$(*bO(?tjIw0?icTEZF)H8W&PzYK;-85E!nbCg?lA`+K7)Vf{Md)_3OhX-GP8sEb z7#fu@pMQPfG+=KFJtam*HBJd_j-Kv5-HLSL5%z<~O%`OS!In~G=*`}GbB^b3r(fIx%^$F>U43DmK1GD#LAnQLRA$(+Vb{lkI7CH zX(4`A=CbB-krt~(QTA7fnlW>LuCis`&xgoO_udr)Kd%)2oJ^AV&DS;S0aAIT^#m6I z=Xj+>Fl~PCb?Ct3z&hNrEo$Jpzs@QHsADzm%tc{?ZM^3G&C^BQ5N7%kl91b=iEW~n`H87k)VZHACp0b z{Mt36M7eLw1_oU#GctUvYe@7s@sUdA6k?JliE*^qvKt_4mu8(UdI~fM)r>vAX+ABb zE&O(t<9<}9N?Tc)eh z`q$O_`9+pYc14I@yD(gY`O!LT6Jtvt%=Z6pvZcb*9yR)E-=>-8sMJ!^_X zcqJ`R&o_f6@v~;x^{M}S^XQjh);xRuqtSLAiJz=aAPG#AB%waGnN|)5WG;&1>;XXz zJ=*HT$Z+lyFA)L^vqEW>FrvPWY2tlylNJoq15OYTlin{0KV`1Ut&HDrD2>yHm1}T| z02T#ik1ItZ2prf5dLYf9YJZqM4zFo1dXf{3L0(KZS5wA=0cBxM-lqAq7+z{68dIQZ z%!Q=$gB3jihym}K=Umi?evw61vfA-s)K~K4<4ZFP6GBHB8j=5G5r#N2HM$uWZ~~}- zKPG^j=DfhcJM)I4h9yUkXs8LTxTGnLhX}!o#xPQcvoY z(HA~i4-(8LVIIPz{&_kaga+Ya+4MD!WfLJkP!G>z^}ZQv^*#qIgroO#Z6Zf<;;H<4 z_5A6*&=f!!MzD@x0YmQQJ>3Z3U}%X3#faOjZv%_2kGLelB&OliLM4Yh8^QK6a#~~@%aHj+^Y=Z zGfy;U@P)Gwn-c@652^`nD9}`Y9o?@cwc+$R7t!$nIuH+Lro5rhg$GgTqpb{cPH{MFv~LZ5&whD(oha%AI8^&(sY4ok<-!Zc z)}a$*Hu5`a*?_5Ju7)t$N zPI;iq_{<#F3{+=0*{qQEEUJ?LSTz~u4P6O<_g%PMq@WyUjrZWPqWjLUZoeB1F`bn) z>bxAg%`HAvS+Q)O`U3(8hbgn_Dp>%C#lZUYbpNgr{t7i`V>)Xq!IoZaZJOsxf-NJPV`*V1bCWax(Iejg$r2pfzriTfr1LAS*i!a z7U&!eYQ$mQkB3xcjWX3LHzl%%T+)T&b#fX+mAkc>`o$DLR7mLfh#UeYWq(?-AC;bj z9z?o=g-EndPmj>lFoPBv`B&}l$Yz1G0|Hi^gH_jRE|$#ZaR92bWiwMU4CyCo$I!cZ z{%l_lBZ{5ov3#n?0dd=Ip*f0y50w|mCj+jSz^BBi{PAgER*MHqH9dB*4o{O(wIN+KBiT!I!C9k^X{4EF30^_Epc9azD!5`Vrt8i(i;(Jm6>{o~ zay_~0?YcoWSqW$*Wal4QF%g`lMmK@BsW<7^*3giAC)$8|F0@vkQLjM|6+?(g4d=E0 zV^xo$%=-?RlGQXJlx4yR=r6GJQmx`5bm(oWD!HUM;d*^cW(nF{I94C4ry5f#1tWP% zDXj)ltP!M{8p~45Dq3)d_6l_6W8XEPeXgR4dV!<&c@`~4UMGjg)QSX>5GX57g{9Jr z{`fDve}_JA(nemrmYrFKzJD`)Qv40ijLQ1 zLPLzTj^kXIB@s>PI5!|WJ_3J_S-Of`ip+au%j$SD+qwB?1FW7)Kb`Zk9B-|yU0huB zE^cCGuC>ke_4T#&pRNIuJ}A<&FKn0RpN$5(CjerL+{CtMmaVeCg(teT*<0UIu2D{3 z@<*fYwS70BFPj$ucGb=_du`|OB*%ns#n#)6`uWGWfX4Zids(ILX7k!N8`r+sJn?2= z;w!SrO}_BLkx@@VxT|u>MTI@a59Z{M{q%XH9X9+n-UDlql0NDK>D=JVY z%Vv$DP|`8_$47Pd)ETltK6y7LyF8W1OPw@ltoOt<>x6DUtJGjZJL7pGv~^&}sr#N7 zDjTfzi9bYT`PX~*ThZBSWgeopW{g%8H#7=U-Wj8~w6}H`Tv5|7Au3!u*tj!$O`0s$ zjj}mwXPd2dwmEAtn===4o}SQwsZmCNq+9su2@tySTptqd%NrpeQfZ_oGzLs(ky7Da zl_RToqA|92EqtBDnbk|Q&y{(#LOkI~?g=eu|axd~fWwGnq!zppVAvJfi{-JmZ5EyJux;WzY1U zu5QcPZ)(Hc(hSx9YF5-K>To(d7(E#oT+LVZWIToUN*dRu(%A{`y-;4))Pk~M;|EyR zlndn!^D|6JOfc#)AHbQxP3*)4yo{_?z;D#NDXaRkPT7kNfSD+$a3}4yUrL_ow8*o< zB=yBj$a0kSY_=o3QfITp=13gejq9`tO7yHP3Zjh;R~r2pxKgzj-dIFtk(1>sE1$Zq zQfgxfJzgrlv6=7sgDl~hoROQsJ)ziCRkbP*wyD`R>l;j%32@Ed%&B^m&3Ot!D&|Q5 zZ+1xEt=sQMWw|6agl#yyftkMM(#-cZS0)|at1C~d&0Uk5Ifo=~ZBgZ@<%;u1(*mm| zAuIxkUEF5@qg&efu~h9$*1%V?H8rk**U`opWewqxeFkR$uqqCy0wxYBo5MffolNU` zbcrOwF-*o((e+qg-BS~za|>k_q4Z51Zc_LP73ul_>yzKJ2kLd!;PvOfJr+g)gvYgd zpIiJw$kehmUO=}Lf)oBI=G4+i|HJhXvhpoI}_69=iqL#90*eZznv`@!9Es)>fZ zuAE^X@E|~&`4P6>3)IXM{;b{vmO4r(@x8k3Tl4lzBQ{_1U&}H^$X=;CE8gU9OnQ^{ z`9HQxIGB@ZnH2M;0hy8icXNH?wx9p^_T5kUf3M|-^MABS|Ete`b&?E;D^*#3xu%ZE z^Lyot1i^eFR(4>6f`JqukI?dc%Hfo;YRC}@Ijy_nX`M5qzZYuVya`c9Tf{cG3BJ3<4tE}Eg6pjO{shW1gsQP~28 zv{D8WmV8K;j~*$q1QP^OBdE0EuC4PlwtYTIWU%!K)!66fGRdj2EU3jitge6SK&)^* zP-a=z_GEm0U6!rgbEC#}ju~ zWO43wdL3u@dKY9{YpVeA0k;!4cko>j*Cz7sF-4@7QLO$ zVoy)eTkME8PPkI6Spf37W;HML2(SDQ*#Np-O}J}9E$Z1=3OCfTdQg_zR;v99RYJ-J0#yH$1GBG;xp_ z#{1>{6v*@2Bs>&bV@UKV9Mz(6DW+02MEs+tn7FauPl|#_2R(brjjqCfbWsDSq5up| zA#b78f(5&;4U%^ffGE%1DW}ewaA>A-EXMhfSDH=;Hi>@K)cZ>)V>}NDE?z608Y$BW zE6|4%7RO%QF)8scCV6ck_AvL=z;ciJ%R72^KwC`|pOiK(&I zREUehz59|gwxS6NTC1;Y*HQ{nmym2li`M?xc5Ze)!`n#k_#Qj|7F%1fN~WQ9+_x3!0QX zE*We=6jXXH)vNZc+!KdJTgFD2S?LeDoOtMMG9iIYB4k>p4$$NHs7BPf7!T93kUS$+ z<2A2sIR$<~6XoyGMwaESM?_f8iWrC0<9d?V3)1fCs%Ewc9B}qk`8w)L0!@I*1Z#^% zCzq5~X-MUKsS0q;d;r@WIKa^Y(Tw;g?X6S`zB;{wtTp3Tw7T+;A?>0Tp0giOAJTN9 zDxTAIYNCVbmsoB!yq8&0uzpgWsBv|gZN2S^uc<0N0s!LFjNGHM=4YvtmbEz=Ezs&x ze=-=RzOl=bm^(`(-D@oqeMtolt9Rc9@$z{&8j_tm9`?^;RB4-?cBAUI{3!g5(`kSD zY5&t+|G$GpGBHQXA>6fO9veWj{(pV__U&~~|G#;2D?ojE!O= zwi@a9*?x>}r$mNP=MIk;C(}ksJ_6!@l5mk|($3!CYJ%w~o}|zQB*646)4{gDh#ejt z$WZW+=?cG=7YV#RAZ1`oML}WfvkD8+YEE%$E(TZY3)1(n)9T@&rS3~V zng_Z0A1`U0!~VzWuq%`Rm~sDaZrt_n|N7na+n?_Lb^Od>|HJd2Y5S|M2OuUq!lHor z?qFI<+zPXcZ-F@AT@`P$7_8?sH>w@L_M1qpv8PS4BO=5ll zQd?Um6b9G__SF9vS|OteU^vL(pl03U*9El8Mjb>&XjYQ=^|_^WBPgM&>CFbAPrO;DYEw(u462#JYw_0O&ArJJZ?c}RR?Ss4{k_@j z(%xznUKEE5&0d9eZx&YD4gRyiN~P8Y89Rda$IB1>ZTp#n|AR|^wE|Ex_`h4XH!J+# z&0C-Nziatv!T)(RnI7kZ=`gYQLcojnXA5DF08{uZDJN-y=F=!1jM9u^AhPKBvq#O* z2v43rdPD>V2+vVYuOXHPM~)44Gf^r{pnPbXMV8|f^{zYzzHY#fp{$F#SBJa9+I}-) z__t{)4sj68FX>Im8W5UbF6*J$RGquOy~LS1Qe4j?gejFw)MJNBEml1BReSQwhtIK- z_38CEpT~&%a`iP9I+BHNwVKI#i^LCja|0nT(tUKcvwB~}pLA&F9S$FDUYUo;-t7&5)l{9JyB_tw@V$YpTHD!SI#3Nb-rA?7GGEop|+j>Z5d9+9!7d=7= zlGb$6XJ1KGWGLY6`6G6Bm@p27(cjLwBQ3)6OkMmp$#Di^5;kbvdE|6T52()c_Q~Lj ze0)d{r>pnf<-T>1KCdIQF;&2I-Ns(xSn{_X;%mPj#->U*mEK=4-sx(dX`P)oBM;j& z8#o9iXvMx*46ZS-1?ez3lM*;`Y`#BQAd&u`pIkGC{fDmH+7;$NCjaj3+qL!|{N1nr zdh_mIM7KZqZUaAm%lZGg&;PN6=g%PuHp_pTw{LIw^?x^S-o5on{=1H!S@PdYK6WGS z?U1}i>v`Q6@H(;lXPo{?@ZZM*oHW(|-gn zakMjm4diX(jFi}^kU3aUSmy&E^)5Q@l)T$L{N*y*fj9On2l=$hGMP}*2DV^n@5#~r z(XWnowvYCH{`A?eFv*!@K*5|Cz}ry@6q@#Owa>F%Vj8r@wI;IE)09gXN6+>i?Cl;# zix1)R=mDj|ON%~wBV8_fd#S2=+wJ7x{_fuKgJ(}4AMfrT?mYd)p0k@ta+(YZ+Kk%8 z+Bqy{6|rG;pcWI_8FA=RM6%HC<2z_7>6gHq6`1eOu8rZqq+@(0JEj^la=j{b4LtTm z!pzxb?`Chax2a4%Pqz>E4|SG+ZgiruaNLkoBZ@09X6tw`NJ~khz3O4Z$-orU90YLsd2zK(U@OaJ>vOj&;%&75;0;@~#gP5ET$DwpBuy z=y5!GGaW~d;_PgSw{jUT&C)3eMGO@p+ zOc>dv{gH)0{OL*nNrMN(C6ED`)M@O?xgbHrEsn-dTm zfuz_Ukt(7A$OjZ4PHv!B&z&MP3~Z6A)!B%*B{j1f(BWnTRM}Up41gB?(PwsXbk0f0 zb1%n*P{@@Y97P6aW)V^t$i`UwY!ClNVnH8R-N`_wV=xlCSyGt9^VZNFGDk=1ZxGJt z0}KCZCn~*8;iYhMg2u&Jf2%6Df`^-^b-S68eNdTC^~5amzk*xqdc~ z=<=Bl+^c6kmy2gUpljzXZvT`)1{Z7*cekiLqA}M9xpgBjP)$X?*zgJZWuFav0eQ*R4$nB&MyB5ZZc2!k=kZe=Aax;UdzA<(if=%UQ9p{CmG^4Q1xsrh|#QT3u9 zy@0J~u~i2de=9KMqO~5=Uwz$X-WgLZdWWM`w)#+h16+ho>!ISu5r6c2i^|iTOD2=P zvB8^0yb%;aA6djsXX>yCaZ8Vv^L#iEY)=O@51}wJ6f_=_?@I@_(;=nb7}Zy~UBQC= z8Z5pnjHMbX8dq^B6@I6kdFVrKV{lYZnKNCJeiKKu!mmbYQOsS$Lj%{g;wV5VD-Kah z`>D|dI}m93WMt`k@h8L?PNpE;6AK}O6m4xo!elS2rPf-5#P2~hb8JEC!|N@&SISfE zt`*KHG240JFqp3-lV|4b#%tA;vKJvnNn&^^8c}8h??u1KQ`k~BQdXklQ9Q1yDfI~~ zF9p-L3 zT+|H&n4(RsofQc!caQ3-;e3l`qD6f;n*2~z0#=s8#{{83G++4Cg!G;w8HP6}NJg1k zH<8FSXGe7Z6{UfzTwNpV)ih9oU-i_n`WGb+u`-8t3d+2TkyuD%O0QZp*EfJGtSawz zx>#b{TWL4i3}oq&=zJQ1&#>Y@MpIN*4)Xycbap&R=!IJDti3G0TtfnaB!m;M)37hr zU-_5T9nykU`$0D7wH!B9Dp*Oke#`ez~ZgCs^MPbCN7%7x~I)gh@hJTgyr!Dcvr1=T) zG^CAq?wbbMp?bAfdu$K(4IzABX&(gVgAng5dedFyE>uRo%H^1SBKQ-yAC-VKe1GK$|2f1a?G_N`-XMO`dcy|pDGTe){k5wd7uLQz)3Uuif_hv|4ZsCN*vUsD0% zRFXibtQ1K$80TqLN^&jzXA4cHYFl{WclvWbC{X&Hz#1q6liQ7JeNu3uYSD{!*wq`= zUWiC&8IUhYb0Hbcnlz>CwSE-XGARPp$XRYLz-$dq3mwg`yObNRbx+o@?1Q{p0cO~_ ze2Jv;CwcjRJd?T6*WTCLVjWT6+NeyGPx0+OQ4lMz`5V=$#7eq0avp)_#$QPkT0F(Hc*j5fu74^MwVe8{SEY9Y`Y9J2$~se@b>X6@+e9dBb|RqCKAU0w1TuXnCZXOwa0N>Kr(Gl-1Wh#Jgy6 z8DSAcde$QLN3*g*ou>m#Y9%H{?al=tp1e)_;eZH^4}&K0gc64+AD6I`ns~5zzG`f~ z15R(KOGo-^Q*+7^Ikh!Buj7PYX7mTErn*M=8+2VO+WW3GvLD*tal1ArD7lNNW|KrL z;LHWeuI35;sX3$Cu%8+6IuEHgo{Bz{Wp8i(b8fr;Kg!R}lF8QAC@$Vet%beg?MIL7 z@(gl9_agm*3f~xTE$o_UUvwBLwk^xa3+d^(SH6;$_v^+rj`J}s@iDA56kDX$dGDT6 ztLo3s@n3%0`+px^7G*N}@cCah?rz+@Tgm@&>y!WYwfwZt|H9}0-jTjMjB>b!*AJe@ z@AseVKK&kD4L82FK7O?S2_}Ojyv+oXf;iEhD zNBhsH*SpxC@aRS01+%`$#!nlpB6qjg2OCDTIU zOnIH3UMkmaSXg!3=z&V=A>U0iVs6O?MnB%QmA^hlq#Fo^PY=T(Za}Cpz2U*bgX5=% z-KayS+^Ngm!L*#(gwh`dN8H_h1{gJCNWi1k1I`{zFu3)IfQmClgchwwLu8*Z95!h^ z-ot~{nMZ<`uJwR;&1Q^;O93)4MzeP6} z$qki^KzNVgZz}Jq;{OYfM{0FHqU}4-gPK9~@Lesz#F!a}3)Yy)#cjbZ3DdqBNnkol z?bx3rMDAHw;ruehcWYm?lVq41k5Vrp8Us&%q{X5?HvKySxbCKtYMA@kFh7ZhJM&kx zGeeX-HuRp5;oZ3f&IGIXF>Ia{+7;QmgX6%d2MYBTm&GykJjNEs1KdV$cmLVm&Jl3Z z$A^0d+t0S)*Ivi)k6v)BJ7l1*{@$;jh$?uTQSCBlh53B+#%|M%*6*&bH|W;5gd6&p z&@I5Nq1q>u_UL^|Ur;N)H1uQ#?iP9N@v3{BMNA(2^;q8U6O6BefGcuOjH4 z<-DgTehY*FAO23&39a6JOV<%mxT}&#b;fy-zC%b&(?ONiTF#a+E7|gkj3W*dRk1cL zx+I${xHyX!2u^2+|C*Dp`cqNE7ad&EE7AhltE@)Mzwdb-%{)M#5C$pWT!l<3GN(*d z`&K>U+LZ7%ECV!(^kjIs5)q${S_XQp$mI@~#hyPWSOXZpsKm-}b1BeUl0!7xJTM0~ zSu%=ZI^w7|G*+F!)KteM##9ifSCBXcyO|nYt*Pf&IrL%_mY}Gm@W>G(xT@-K=;Y1u zbS`$u;3XRMNIlu62#8ek45vl^18L%xXj#}-uTRxfG2^iQinLct8qPXnkdy(a?n+II zKXYu*%QKW|==1haRW;!t(43cZou(kWKINr0Wr&Vj@eZ`q;~ul_9H(lba&65vfz`831H3f@u&<6kxTt zs(py6k+CLHYcwPdf_6kUD0O-jNa9b8g-?S^_YQZLtpF;cf`_tXwe{&$S+&rrsg581 z>_)2_oc$$m_Rh3D?~Dx~>zXeO=6DmWWRjKlaJ$S$7#}wTv22oJsV5T0=F7~4JxR(! zjeKlIBoU2H4Yb$~{DU{7ir~2tZ{Q=Org@-wUE5WNk#S^94qJa1q z>zz0QxM`E`tXDH9w~3@O2C_<+kelO*B=<><2hGtZSCEwnnnpM#xxVY{)RLUf-bGFe3M5H^U2$|^uNBMWbHFNn0c%X3qnxD zYU#`RK6F(sZN|%cglBcRgq7cy>Rj>fB}13`Faunir2SO+z6*?Ufp9Yr64! zLFS{VOOR6Pv!#m)6ure6f7o;O&KiGe-BCWLM?104QBw{7ESt~qTJ8=A69``yr1;+8 zCu-q8cr9uriLElmc@JZYz#IQl-#2EZMx z7Ud;!bd)f7NW#brmdr>|L6;5pL4#qj+>QUDHH$&sGq%Lb+AjKO`U}!L+ymxgfYy^T zhwVYXfFQS0b#ic9Z5VNHtE$HW@t`{I{d>`!+u^UixflI({m7x-#<5dD*BUs0`S( zdY@ck3W8y%F14TiU3XeFoz%CYO6RG%(RuQ2HOczG@C>BIk6qyVIJQzggZY zIPUaL(rgppwG0A$RuscyhT-wJNT!4Qm_WU}oMz?9vasdm@K)ggTiaauROvGCGjIOa zk3j$Ltlzm^q5rqF0cF^FvbPTf{?ALpse}iJsp>- z%%rW`Cp&C1DOa^Irv=YWuZ=dO>hV@8YSkGpfxKEn*U;KBJ(Mzsa&4~Wx8WlNcI^P* zj5TkT&Mat``6%^1uI@jhM^Ki*ilYqfm*kY?4&n{D#zge1V_K7gW=GGhtvb_ZeQ=|$ zYeS-E(nkwO5zi`=?s}oIahWaksa+8PjZOZzx@Lsuv%!O~(5)uL`)VSoxF+MkwrEp! zHqvQl9gOwNU;u@@s&G0TeZ_=*4URet!DPF~Rj3x8(4rY+F__0t$8_tvBIHmDd7?p=&s&RKv)8%0V9I!SZy`klHo34Eo)|3HIH%i5>$7kAY2)x zMLt959`wlUtFQ1cV=wprJw_NEA7e7ZUeuB8SSD^b89QP6A2`^`jJ}t>wY?$SFYe(Q z0shOKy3?`I#lrDrZ=6~qP0e)A_SkZC+-BZChE@=HOZdEQ366KC-DQ^F-hBBhiZOt{ zJPm(|Kb;*96QN7eN1=a!q&#>FYVVBZ(mGMtLP0Ycbd~(WThZd*DHa2sx54uYwwl9y z;SOlLqImR1GNc=RlAiwt{pCskg%74zR|9N-Qum7^XaraaG&ujT? zl9jpKm`ox(;P^I!3q=ZY&eBbqReMoSgC7Iu~c^xpaKE_v{yY&t3p4_W0@1 z-tqSC?z7IThG005bJgVJhFQz=%`AXUsd1KN8p&ei(2!{)O270qNh~kz_N_{&-yG zfL*}7fN(<6*Lm`ezZO%1KM*-%7Qmyav@p4{*g)e!(qHh;?ik4(dQ<87aP_`_2Ypv< zn2|4Tg*`UIsxzgcrDl-2qn1q|jbVKnfkRgrxrir3S_<@!0J*KoJGL%RuTL2L*^4ne z1k1`eqgKDtjlS~WU>u^kJAn8nOC$#eJ(u5#0|SG8Sz69q7voo8VG4k=R)zz7kfrJ0 zLLSx(gBRF@P@oTxJ_oH=k!$_lV;N*Xo(rNI+nCdV(Ht@I*g<_Q=HKq3Yh0#LiLIIwf`+*d^4@P{kCjh37y>9igEZ<34ca zMVV$TLJXIzmJ-lt{)Ux>lS)d6MKBeVxE-n(616xGE^rGRO}W&xzV?v}Dm+!yT*n~A zNt_ia7GA1R$VS@&a5OnlM$4iW&a+nfL0I$}uSqsHz?u%89v(dtjDVFd+bdFj?p0&N z`xT*IN(b6MALB!C4ZASWvKqM?g_hw4n{jwC`@59|9@9Lgn!Q=r{=jFgbvYi> zH^fPoIv`4;LZlbXF)WmIZm1+=iB7Ato-{Zrt7_Z`p$I`_-Nee|4Vlb=mz`XWePD57 zIE&ff78+7{ABy_-rSSfeJj%if_jG|JTY{IfEQ|bNrL7Dx)EIFQ;II6 zY^%LquWss&KKD-WHrqM?>D7%Ew-&40(S_Xxma+m`cJ*|=AVugXdWYk2K3=xQ2qc+s z!n?3<&^{%jO^b7TxGv8&!xE#Rf+W%`Ke(z2!>_uxxcGokhlJJB;(e}uNXIzgw~s6H zB@=x0kwcLL%rtXr_2Nf!I-t9YO9@`y&%?L(u<0_1js<{0^mtXkFrV6uL__D^A4;0# zPJVhC3aa1VKV;sOj}%(XHzN$8PoXP=D9trG_)vOzAJIOStoQy(TRJw;t&>8uALiY$ zM}+4Q)3~z97CncC#HNU6l2wVmJdZOclRS;0GR}@Cd71ZhJP!SL`KxvM9=F?#Zr!@6 z|2mY~xf$o<*VPbyPy|1K{ZySAWVgpc`*f_Lb19;4qYmt^gW+3Wty_dykxWS)?mrs` zPoEuOwTf@6FA9GJ13D{k`P(CO||S{y*1 zbkH8bb*~w@hnr}fi&yHDU#vn zqMPeCqr)VLo+9Qg>ZwSSb0s`Qr^!BrUl6-3u57|6t7&Oyzz!u6ZuB;KJO$H@SkJy0 zJ;`*$nbUYS9ENejB2Ljw)tE!SMb#|4_ldlHPoWdCII5iZ@Ds|2I zTe8#)RN8Ur{9UetF6qCz@~@Hz#cNg}>SQSKH$9~o(K(y28i$;jy9(7=MeYFqgC&?l z)7p6(?R@OP6bIg=&l2>ilN7Uax{o8qd*0)ehoazTi{3E%^i|uerkctJvfDn62SxN? zk|b}U1DZI=u0Pfs2|l4-dUimreSK)Q}FW- zuMJ$z1Kqj`kQzxf5)|2>^YN6H^KFH>Y?&4N?b??x}GzGCcjo|WnW zvmYaSkd*bpYw$Q3MUOmknAwFSl9-=4`8-?(!R5jg+wtt_(bJu$j}$+yrs_mL`H2fy z%WVJG&-V_GjvwzGJ$$;WI^z5$UOM27N%=?s0yBhf({i&(ZU#aoSb0C%T)*{|KcPx+ zFNR=ILgB;B3FBCqjwVL(tpS zGyZ6~^GMoYA_B%uv~G172)-2$#vY_x#|0As5RsDy8W41xXI^G6HOavwJ{!ebK=M{8 zfqvsIST58FL*640LG&&KYFnG)#A7JJH5r1+2YrJ-_LiS?qI=hkX&Jq zgXiBp+TV#5SJ&3QzqzxvwtKW2{qo__<43^ttw-ot-!IqJ_MX_~#d)A;k@SyiYZn(6 zy^EVv9OLNO+B+O}1ILkHR|^`XHz)^-b!(!fz@D<=USQOXpZ@fxJXp;Di&69q9@qWA z*!bHwSSW%d^;Jx%_4eMPB)nNIsZ_cAb#Ji*mS+to`Wn-bz{^zLo0g{l&6Yb))n)x=jsFfqVyy-g_}xi9 zxD0=VAl$HKfIn(B3@yj^e}(!!l+)C!N{ruD^i3S40|Wtlib%W|odY=TE!OWG_U+A5 z({k~fwYYvwu&SazNykk6zm56R#ruQ2Pj77xB!;~q1torWxj$I8*1FO=g+|5l z%GcklakqvuK}e75j-Uq4oo@)caK|=TNU$tAFFtvf^rxl$)+O)KdL7@P%4x=iOnNMh zAtlzu^NdN7rE8ES4Cijlim{BNOfF%WDqs>b7PBME1|#XvbDi-n9bSrWm9lKsIAc0L zvrMdN9+WN7>geyR#surlF}pO+{FYchD?lZ?0LS3j0dRhF8cnJb_j(4~21m`0kddvK zy>`r;O(+sJeR_;HnLquk4Ewu;q$DPhN$fI;%QEi2u~MRvL6mbyprXqp6>zj#MTyJQ ze82PXW6JB2ZE_UX=Y9#K2q+GHX>G!Ac<#+Ebk0GvnJvlYM+VVD3XA}Ttz|jL8SC6 z2qI^R}ePVL6E;duFQ@YjSt0e@&} zfarl)bibXM);Jt@s3-6>lGSp^gtNaBEpW0X^Up7*ANsEsx z$|X`lo6eJMLr5(a*=7GAYRZB3WAVv#lm6m}jT%wb$xagXO7iyxl<}NZ?5vRGo~X;U zOcr{1rj;eOxGH=C3Ko>4!iy)lRF4(t$h>nBc?~Zl<)R|f)IO8C&ev%+q}UbV%ywu; z%Vv@FaV(!}CotMm=1 zr#r{Q+-i2<&@mGy*^1mSKc+Js8K;N*r!?-UDMRTCP}FQPng*CqsZjAd1_D<41-KhZ zt_scLE*uvHQK}PI9E%#aigmUWRfF(^NjF;4Nk+%Nr6h!J4FYvVCbhWU42qmLaLm8KD!pXU_H2*kD~WXO`1+29*p!TzJ8 zy=TY2*nYIXyM45GOoY6an``OKt7tb2rZo4pnsDXY9K2dCDRUuNN6tKW&y_$%l0Aj) zZC6_c>vp2F{)Ix(PQf0rcn?QZ3kv>B6vjGxGop;W{0b(3#F|XX+SZ=LptC0-9Efo~ zh8-biLz&+%+jG~!s=)Q z+ppGx=N8Qxv}hdl)~%Z>vk%O{XZ1V#?N`Tbjv__EdQ8{Yahe;Rq7V4@aAZ&N>`;z{ zJ@5SBLb;>QlC$L92Ovlj9H%3`v~`n3_d-#FHWj7i)I<#f7f5?$@+AzaA<$KD+hphk zhNn`n!f&TJ=3v(l3{(p+!L|*QC#-Vm$`Y@U{lZsJa7yq95eKD0^5HR{<>Nj$^E2OY4Sl1 z(41Ozb=L0EOua-3E?svpslhpm3^Ii^c>@R2gjEK{n-Kn-W@=`1WUHX|=W6Enpy9|_ zT5M%49k2e@Mltiyt1M;Pc({xdYJ9a~c|6JAT~aLqAS_+-kW?edhvbS!txnebq_DJO|2U9QpYzcAVkU(xe*JbzIP5j!C9~4o8m;{W-JbEH6`D<1%_o zz9FN=&IA~)G|qC&Of*cRpG804e)ep2e|PUOWg$ZCFoA@^G4PF>f|%C}ApkE=r0r;Jo{ia2od{;lMyr zPjW0=jES^-Hu{D~ZlmQ8VTE&flD~~M*Ecr3?rRmCwHRy_(fmcK0+}l)3SyyXBbPf* z5B8oM9zHsTgV_7!(Xk!A8tho#ex@*qep$$q^jT4*7~Mvp)77?gBTNzsFDHfb2E-uS zd3&aSVQy+s4Cz(|d{^wBj)%akzSj(UbH9YR!2vthK|gZ94R#6at5!zApNb2zr9UD6 zt++&ngW`ngGYMJZh|-vEey9Z9A8QDd_c+R9j#2sX=vY2D?!#XwwaVYNwRXUsLR>8o zE3=tuiFC;H9vDW!e;T>_wG>U1I&Z|jAotnny^SZw$vYGomW?Cz3aLaws#m?ryMFd-jth9% zd$GRp>Sgie%fat&{t^ED84|NWz~JmAgE;Eb>Yy}IeaNur~^v-%D1T`TW^1My#kqD7;xug`WbZ^f7j%{1UnbO?HoYW(5`8w{ z&akheildXzA!12Xpe1o26e6NVz@?~3xz|}LrNt`kl$!>(3B{c%#}K_wR)h#2NbC?7 zh>*$|ByrU#1dJwN4gl6du11RfNb%x~9tu0=$%$~hy|c4-aCH1=`^nFrZ~we8-w0ne z9~Bu3yZTCK`*adao=_p<_G7NV=g_P!tjQ)WZeA6C{jc0?J`*=Fss6$|8fH#>DXM13 zeC(3YuMtGUioSlRNFBquI8RT3h+^jzeg_==* zh*F&a%cF>Djh(`bL604EV@lA*O`MSo1Zao2`8@3OXYc+V?mn;KeC6eUVZNz`?#kdFp3ct?=#q>g4zc1@zu3)u(Dj4^wbUG9KErep|`kp~u6s zT0R}-ak(Oc&t_)*V@1JQ)vp1W7cMG_l^{b;DH1{o`v|U(Dcbgo26@~WaGDXLHNotc z!^-Zg=skrYsZGXROq4;8KlyDS7pAh%qR;GVHI=W-=c2#=kWe!4>IrxfTf_5EJ>#K` zwyWyW2AeGn0Z#%5AO;wc=Jnjlv7g_&Ao)ZJFQQZqR1 zcQ7Z_18e!jsu1Gm&-U$?mAu{qdB1j^?ZaF4VE@tHtlVG9m1r&KOJup@*a;eRtPw?~ znMaa<=;sGF0o2~AY>K)hL2gbCE~*(9PJBqFEk$gSMDQd&t)k3W;f4lYK*K4o7TwA%(>B&laoiCit*$4EBa-~D>fWuBR zyg?FAkBbTjWia;~`jJHJ|3-r+w{Q(k9 zhW$tnd2x;wp=I8~3wguo56ZF39v!l3^)>&+-&cH_3?}d>U)OytqtsxqSTVEwA{r*A zCRGXtTTe&2fP}&%A_IdwVShr_635vkJCn=%M%J%_3jB2`^-fy)MDjOzn#q~)`g{7+ zXJy7Bl7t#AS(QsXZ5q_GB9AC%&IKMLIzLF{ILz6L9snDcyo+&=Ej1ziDD81N826+B z1y);kW;P+!d1myo72DXbZarSr;`ox3RWElYDG*Loe^D${tj7XzvV)UNCqpC>9jZY_ ziJ(|v$jZWN7M_r%qnl+V)7FP6NXhQ^)tZ#bVr9bvI4J7`op6yFE&I2C1ic$;-!6Tz z+v(~F8weR(EVKi$=WP~Qvv*0Nn4|+qxcGRSp4yosoNS)=2hXe8=B049IOXT&Hf3(0im`_I@fM@FOSR~pan+-V zdo7|5(J9` zE`vX>erQ}j^yoSI{07)hq>sSvE25791OSP*=|Fo^=&`+sy?zzWWxgGZ8tlJt!0^f( zrpuSMurkb~(^U(UHt87i;!AryFFQy~`nr^OkIT0x>rbkUv-kn}VpV5&v5dFq4@A{g z0OOYx4*lWuw}Wiu#TH`Ht5<6;aK5!Nx8J%~l!=(UXssvoWoPYWrxz&2huYohr%Qe3 zqY7Ix>+yG#IfgHJh$CLhr`6D{FrU z@!!mQ&lU;%xxd9{kVyJUPfGwB!Lm=Y6Ho4t5fgRrm_CSOaWV@IPMKjau}+ zLVW|@JI(6h$JkT%AFbz_?yJHeTtBbxm|!k<*qxzACSOYL5pbj@1+E(BCqId-%fHC{ z^VS!OZt@b2IiZI&Ei{`};SDbmN`YTNRs4X8o7nB0$ga7HSX5aioZOv}M;N-UQ|}!_ zOM_gs=-Ak`EGH7*Hl{I&H%jX|gAB^@d`u!ojm%u=Q#>V7_&{ereBV(^jZ zgo<7XC5aBC(kJVGyU>?v)e6U~Rmo=`tYKb-c(|MdFpjY#L1r~NRS;1TQhq{jY(Fh1 zKV>YnOD38yTM532*{2DdMBi-=ee0|Buh!=~d7wVI31F49<=RSYTKUr3Tb)%cnYNVXH__LL+ z{{b|)@%t!4UMXTgbwymr3kpnMT*>^ zhbOi{k}iPgf{H{}KXFZDcA09|Vi@gbk!1QqSJBj}gJj(vSJ~}miV*(?iq4{xL6t3I zXUyY96ZI+;-t-EeJk=$VgNrrGBlD|u>#f;*SUq8yL2d^IYGhr3`Jxe4dcfW0R#N9* zu0F^o7jWFkVD$!h7{IqGBC9=FASJG06za0E{m5?rbufEDGe!UOJ**SE>4YA(Q={UA zkDO+3EXP6)0EC3g%k8YgAgd6bkP8clOlP(zPD)!n;7V{lOQ2Psk`J?P;%d&(wvj59 ziyQ;;(3Q~@9aKE+#l>2rt;?0`V^#(o)yl9Gv8v&w0NLxnNS)s9{b)1u#0; zezpz2asn{32WQE;lr>&9y*9P}SaQJ9EpQm6&{D#46Dy(?zfy&l$+qfFPkf11-TH+` zo9z;6a>sLrVzhS6gqw@=x_;P8trZvub5)h7EshYb}{uT)YV zD_b_Y$B=(Wk3|(l5@3lX$=+x37NvzhX(W%6xn$Z;m{SQ-5;=oCe)%J^reFb9aX3J) zfoPb6*f+fN4I9-BABk07&?Old)BH(7HQ4R_3Rq`cMeo_IZkU|t@Kl^`or0ML7`W=Z zL}+wLVN%9zn6=-qeS>zf=V3?l8ALpy@?93H6bp_X^R(8oD3pQUaODWZ z>Qd{W+SMKudLz1ZBo;`o5cmGE&~3E05x zSUR3L93o^H;;m>s?qLG<4tE~zJ>Cm>fQF;}{Qflof6B1l&=U)uHT2ZAUZ{H6x29BC z03@~+ILia*NcaZ}= zl%C<^>It6Yl(Bjq9Mw%&keiVW{c~(q;}c>iKJ%wRh^~BH)o$4_|7}7eqQpkY2Ank0&ZOX(73N17$8z zNKk1sF{%UQwshiTA|EOS~deZ=1 zECZYlV_hm4*c*QCK^8CJsqe4^1${fw1z>N{6~A2_p>ad25YBQ!d_FOU>M}l z;wU}?#H75H#iGCXzpm7r5uSqGytQ*1g-GVUR%`}!ArKr}9ESrFzq$==x;8yHd*f9G ziNkUJbCMosp&kvo&IpWZArO0IvnYtu_IgOkBnhS?v2uSmF3N;r7Qyj#T()-G`AMhi z9@h#*YtvFI;p&Wye#ADn_0%~cjss;te;&$GhRv!m(^hP^Oo|-BMo=50LaXak7xg_V z>!_p)@shy-1Ygi5C@$6uyAH*^7A<*9tH8To*WHn9lL@-B)0NCH;Q%2Uk-E;ZyDSKv~sL@%Wkb%p$jn#K)-}e?4{Mbt^UP zkGy95HP(x_k@%Ww#rsqK$m+yjp#t5<5EE)@$-HL)_aCx~+^o_as-as;r?yJ_`#wX`MsP z$_t(yJE_TJpf39igi~>UdW1ebLZ2R?ANeEnT$LjD8}Rw^?c6t#rNdz8Y< zzFb+x-@g6g)s2;vIQRY452?%;>ieu7w_bUz9&(v4yUk6%&4Hvj zvD$3yV1t0hO9hG^dc?QnRaT-%|+XBE4(6m?2vYzMs+sPc3`!X z+EMjdzj0RaKI2|_uU;l4?Bkb|R|EMblL1k!ivLQrb#RH&-Njye4Q^%F1+U*BrLEKU zYYHL6uezF|hU&|k+YC*6G*c~af0&dMyKL7(uhU*c%7S!s?q!+u%BefW=24hcCZCFM ztx9Sivf-85!oP!Ln3PGw*d%Z9&?3VW(T=LY?Ync?sdo(g>AADg?)Y`=0EvsF>`Mu8 zxD@HI%1O0h@X%6ZM0lP5jucg>^SK-cYJ^pDHxXxehz{JeP2n6>0(*{a;Uu)MZlP}m zfEH&7yK2%0)G&)bKwgwWZI*K~cLj^O`ox*%>#D=7&jIxLvcq-AL;QJyH$Q0O9_IlE92T~gTftGKGOrsmet5gR~8x>#z0hG zX0X5z*q=e9b}Bw`y4&?=DUh@VdKZk$dMtY`yYR+D;l zIP5m!@6n^x{hC$M_1#HJu7>BDFm3}>GUVCtvJv3_SNnUF zK^ol~Dpi#@g=!(o=XG!CzvtPGH!qX>dZ|GiH0ltOZz0lKxTnjQN#N$4+wd4{-h%(! zS*QQ_=xEgfQaB=)xmwiDOi*bX8df*bq=N;E_4;uu%bT^uFQdRL^#D|DksegiB`+0I z3PQz#Q~(fY)2~6_rErxmc?YYX^Qr@1sP%9r$%Y0(A)A`0tKHB3;QUOcWJr2u1&#zT=&gw>Q<4$j5ZJ3^{ zVGZhhn8yP|srQ>>9e(cIx<&uOkN@w+#@&s-*tmJ~)~(y?H#hHW{>A#nom=a-{vulc zFk5W?nWD2(6#WJIA2qd`_5Gje&o|#<=As4SZ4_^UrB5h&4$}Z=K$pK>V4ALiQ@fOy zD=kuZf%){|b@YwlH-P(!B}K{(C;yySeXzyC?6;c+0zRhy2EDnxG)tK20(~zI4>+kw zEKW_pTO{~qmE@uD8z8p}_&`wg7%82k?1<{$V@j`ce7u77DBdR7AfK$+h;Pc2p({L) z@Z%hwv1smLzFyEN8KUsg;m%EB$=o#8s(U^BUwF~;Ej%!ikaS<{GR#EK%8T7Yhu``1 zMEux(X4C)U5#?bnuKo@*)BlZ|o9j1S`o9Su-uy)Wuj8kV{$sVof;<~hFl!+BkwOoT zuz#0dM&HHLH_0gOMu*RzJ;<=mYf!4Hm8A5GF!MFAmR|yAoFgfG(1!-3hu25odk2Hp!_<$^V!0l@c8$ zhy5E1RdoW-z_C@((J{@^SDZ0nnxT>eGq4w&167__Y^PJoYOiON`AfNwTZuZuDbl$q5KI=yWfo0y)$^ySs@X$&GFs^Mn2FMMx zb0G>(AlIpYHQ2x}A3p+t?NNH7c5V((zsdkRvgp%1Aaija_rawoNc>*cYkc|gS$^^? z?Vlqr_41{e=;g~!PmM)ZNM91=aR^sh4kI9#rMb5xP0}p*8?#T#V<%`R&MZ}GCqu>< z!XdRCo&NYEtlsxmXi&^BSPqh;V|(Q=e9B zg7*3!CuNK>Ed7G&mctTo<}7(gxG{OW`%ALR1-l&P(+Qma@#EdUwiKCmQ`R-oKY%kb z=HX>A%+D&rN?ZQc?J>{jq|JO(Kfe0@>N7lmC!lV0{O;-_*Ny77+RuPcp2E$m8G3(k zfIaeQSvPE@Mf)N5AE4SRI3j=L&OB?lBcM7dC(8n>eQlEwoX;K8q|nsSRg};d5Qwj@Ur+Y9 z!b(4jwvLe_AT06ng*Y>*CgPS~!O!5m|<03#X}xr7|aJ*jaD?~8)r*EL&! z=FJjhnc_RJNSP!9Paq_sH4Z}u$|(f!Wwj=F&9t382b*+-svq`a;|1hx7Efp_fpGCTUmn-4xg>AH!*Ne z@X3AR^KQC_&tutH?Q1zK;-#PNKHcK@2aCltv2&^?-3~NjN&Q?+X~M|mF>pmOhCM6L zz-HH%&9)RDx5QvMppe2xRvtRcjo9HKj+JhKyK`I11yc{oj+oUEEzEX?KtCHZNAtzQ zVR4SVY+(8IT2nKHtDRiF2`@X)t?SIV+B9;A)YeR*#``kb(D{vsN3?CWs!mf{@Navh z{246E5@wMoMc6|_>e5e`U|x;a>yTEW)3d5Bhl%>Jhkz9pLg~TW-WmG^YERYiVwC7v%L}!JZa1F%{QteI!`Xos($a@|7 zg9olu$gS*nj2%p!g(km)UURFT-;Vx6}K{@4%RVrW7c9e&}F7rWMT5%6&MAn(+ztG!cA z&%v$Gb6^#+(e#WF-rpiobJbi&jvyJQf(k}vbtB%_x>0(T3DC8Hua|tX~9OO5N7#^<-Lwgr|}_PDk@0Ali?QF69IELP~`hrN(m_`P(H&909?G7 z>PD0E+~-5dv^sXM!#VfYt$fXOQ=cwGTH3T6yl?zFlYkr{7)s|E-PnJAV<~{%}jE|M^>P|EWKJ_nTt8 z%6u3)1C9oB&CzWC+q}8H;hq2H#@&sLPxim-_<78S%2jso6@QH<{#tP)_Zoi|7QXp> zbv63^?~k7D{PB;`>gxT41=2DA0+DMWx~TRi=?Sok=fF5$=2Hqq5{@4Ko$4 zG@lm3ONvpMj*$a7K>HkX^-jhtTFT~HFhzXJJ8#TG4q_j>D1|gK*@GP*XNI&Bndn!cmU;N}RBZljT_I>ovPzqUX#x zk6SRJsMFWNzENm0V@dV87WPm1X1I+h?U?A>hI#%b8m4bJG3XZaer&oYCR4lNdS>ivi1EGm|taLKjQcj;$}^tQ559DOYCHiY$EZ0T_qG)MlBeZ%gGt(4$Mj zpWC}Alo`FUpN>SB!COOy65phUXR~#9(COMmGK^TvX+m*3Yxn0Plb2=rH3MhAACP3xu_&wHA{RNd(CF#Ef-8_Lc#$I9sv31&0+ zfK176RH>z3&bKeJffrUfF!bWh$n%UXukqVB9ny7W8XDYFIv9ty!-%FRJfZ~^Mv&Zl zI=K#5@X6#Aw_;htic&xg5WR!!*Fc zXK8(vhDtU4(T`Iekv2;6Yh5~)@gzTqF$ovnZ5QJ*P5c4NI1przo&s1CY6~YSO^Avg z^!S`;a=!7ezn|Nqu-11isnsXt=k&qlf)L|@o~EPgWTfLs(;M3DI+IVz);yZgR=?j zu-G;pt%_7olD4~Y1891_CU$8Z)u_ua8NEFdpe~d|IX`6%&Al6THZ1n_Im^}dPm@6+ zwdKnAq(`SHNG`cn6tU5(llO>6!ZLq~JdNVXn`B^Olx(ulz~%ruKwKqdE}{#BmQI__ z!13;2UTD6fhscfXU+Enz|0hwF?UZ}?IVV5Q6)NWRS1LWDptL{ngy5czSC?EyLh(Y3_~B}9Y_ z-}y^m4Apda|7LTvt(Zd#0a0_08_+(=Sb4&#C)I#cKQ{7o^ru&scn zU^M|WA>D!kHfC!^Ns!24ng!-jRG&<8Xm1GYiHLe38M84Lw}lcDC97lQTsl)t+?`{0 zo14RDvZu^3!J{-QT6HGS<4t@K zJ$;LeLvkV4GUY-^Nal0-Mm^Cm!*+ejN`khEMOv?nK#ICZJJtLNFe_Wi&7Ssy8Ik_8q}(p)~x?nEdegU;~XA zGWk&}oEuXaAdILKY~kF5g@x~iIn^>aWz};nk%L3nQKh%p$sOyb4Zr4a{06>bVi~x+JX8*>pmhYs*!c zb!#2WxO{mCqA})b4uN!@166xRjuI~l$qNo4cx_I%LL%eXgfc@-sR6FoW#5Wyp;lhH73N{$_!632h$?`G z=GE^`JYZyXk zqVoH>2d}#`2gMy(t#8%sFkj)uUn`Ki?ERYPK#|SINV2uKI3D84l`K;dqg-C(0Lp9- zm$_57gwFOx^cpF|{^0c%>C1s0H!F#$%QM2kqg*=C!qwr~7|+*ISUy(5d6pjoa6~(X z_;wJ=niTwCfJJ`c#|v3mpsnSxM4q6Ozo2z!WuOb`-qW*lcnesehLX5wqO4{tmeC6m zPrLv|i~isYTOwItoIV_BN-QB^?83rhx4;qK_@YG4&lV+FS0ab$igYwIYWgZ;&rlRP>?WVh#^P=NgaTyVI>|9W<}aGlm@ki zqPg=*V1-eYxD^jqttZzg2d#TVDhp^-s1{mJrwT`D+cnnS?FtHBoHM%D4U4!TszZ{X zb)lgo(*eW=j?$>U?-m)GSDu!VnW|Fr%>q&1o39 zM{+Kd<9wTb*m9avnsF;|w@PWQ&{K zKgIiV;WH;|*u^9*%Y+!1$H0dU(8s8_%*yy(51Kv*xLZi{7TV!0o1fPii;BeqV&1nF zK9j0#gBY2IQxGstK*H{2Nx3G8zlyby^k3ut3*?*{@K@c3HvnX)ens@Cs59hsMwRdW zKseL`vGG%ZEqHds^shcz`hRX>SAVrO? zd5v``R{JaQSeuTOzsPxda*_{|5-p&o={U~@$YKfHuVA7FS}*Z5Bu>1r$vc%oG;#cEi* zmZ5|hCas8sG6E5zQp3V|pAB=MDVoE2EymS+f)juC0$+olIWOd^s6U9--o_L6;S9Eo zyq;w~?JJlSbgpZR2(5be$8J}D(`z?+WGUvITwy`h!CrA)_6ReUCt4w?91O&6il-go zsu#o!6ew9jPEV&(B48k>r>B=j-Zx%MLH}lD@Ribuh=epk$}*+3^seZ0(Swm!r37(a zZ7=$sM}zx?`9Lyl@WnyVrbX8*&EDp36zx(MM*EZL!jtyGlhR%^Nqaq{uM4Rd=E$~Z zH*pjU#ubnUKKy?FXy;+Hy}i#q{tq;b1RC=h;Bn~OPSR}Qv!4ACo!e>=$!n|`!#GZR z1#GB)-s_(`AEN}^dp8=2FYIbzTwzJBBN=E~V)ALZhp>?XUaV-DUPeKT@f0&FB*lu( zmL{Fprvt`9(H*^{(`=e(P5v2K%7q#1SC^CV(KHxJeFJ zKa%%&l%AcFTDKqTH*ln9K|vIxdRnLIrqp&E@+&8ktB8LXC9#xf!;AQmHo>0tt0S!W zrQE08U|INvJ?W*;D-d;l2nVEATVVGpjiP0cO1E;PTX+JGqaR(N{27A?=S~9X%G5d; zq*{Ng>&!a}Euzt=fNeo!zKGtYks}4KdI-9(fR5>%f(x*d9f)6Ut*iAW2k>d{<-dxD zz(-p5gP{EUucB@C6Edu_cZVtw8J~UDfm>YIfeoL*XK!c%@6*pZNXI*$eWpL{oCE0^ zUUpWx{Jl`J&S!4F&+Ol!)uhiEr<5v|XX~9Nz+?5YyvB|YpPd0;fR=)_Z_~j&?j-En zPev)g_i~)vE0cG?Z6o9KljI#4?Ct>%38>rYs`>i~Fr}yDPvLKzzn@M}71!%eO5N$R z&II`$puo<@D|%4%ZiEIb<1-s33c4$1aO5=+YXiMMyS-sP?2um-Ll5mLTiP)EI39Pp zQ72Can_PHQ55D3rR{m9o#sx*l!@CpF;oe!l0sq^)b>mhSL(U(^@6yq96y1sjNCAl7 z5r23ZfQj60irsNxT1#c2{3`ExO&}+Im=)*kpcgRSFmAz%>rCHV2M*eg#Pp5Dndg%; z_+ZWcY*n{}_rl;5Iby)^KS}=h= zwY9mqwYR&qb93vfyIbqGw!Yih+WhI(ci(N@{ch{0+t8)+L!Q_44O>kbPOJcS1h)M< z`^Z)nJ|hQ(qjR5t;fslmDN04GByO9VD0Ed@m@Fwbd&ywB_HHft)x!td zXTWiw>lzhpiS2>3LNP5Ub*g2b9lsLQ-Q+aTSPRxIXI^^BM_ea&xok=mg#C zP9=FsVIwzN2h>bNcyK^{tIcp)Hbk#MVS!B8pdL^M-l2>;;0Pe9%(6dPCO%Hg zHr9uQ^VxZNvT@UI$R9clwGWzBR;e!+KHFAWr%PFfI%i4me}Y~K;q^T;lPm^?I` zt7=_NctOqKN(WMoX;iBq7?DYdGs2Uy8L{d`wZ3KCV5_GptscTm8gcFQszyilM00Mq za-i1YIQqb!WpPQek1OHIUEo?tZxX(BG~@|pNCVE3tfD5NsI_F|$gTW?RH;By8Oq`W zXmXgdo|DG3y)@X<0$t)Fao4uTmL$YQ#8hO!f%-&YBq);ajMK;Q#}LnN+>>T(B~LlY zs+gS-UJd5-}=mc}#g(B<(t;?KdQlw3=71K%^o`6e< zSw!j(QCaSpeneyj3OprTuc(ZG!5IQ}4du|JC!&OPa^x#cLL-XD^6+Dh_RnHUz$H3<9MDnXjGMHEGTadELqE2wHf*P6tXEBDuIGixT4^2G2~UO=}o zELG6SRq_F6tTYr@y>Y=jdXkj^=?(B%il%8_fu7=o1cFp%uMff_8V-h+TM+=O<2QDt zE)ld4XFXYsc>emYK_Jznn7?WOdd*;#l+kW9bp$jX2J=5lMhWp#TJ=iT@3mdW9N#RL z>4;oD#;8plW>ww`6-r;#YgyKgCWY352@kjJBTi7bYg}BbEgYad{=Df#c+xDox^zxU6e!2`>Z*fTj7 zh`i)|jb$C6HzZAN_LFtsckE)dBZ%lvYZ zIqs)-dg~Et5sH-?5@LE|6kp!Zlqw$lW-8vDCkdv}LE{o|j7Wx=U-T5?Y|Wv|58Tpp z#QMqKPLa3`;|T^bFWkT@3dHyFc$kh-crx*W_}y{xF6om|^B6^TI8trARNJfK5n#`@ z6{t+kJSc1pF9Gnc2?)E=`L*F0<%LVL0kdEZEOBz&`t;IQdKEfA1G*ob-|5knSJ^Dd^+WP;Xh=d%>yt&`-XGZ;}^*cBH`cE6{o1f}G zUCWQ}DCxZwAn&|I71|&=%ExKHn2`|fZ>W#Z_Fr!QGD@lT2k?~?*7hhrTYWk$8(0lD z9*0(DUefvz*)E1!0-&+m*#J5Mmw1AHznt!xB`|RmNtH#7Xsf07IHxks#I~9oFJvMd zh}PFQ#PpOZqjXUq(U04+goCMoAwvyulm9CUs^(RkNXI^R zjI6wYtZ<5>7rNS%`i6Kj?yx2QV!DcjLsof;`Ho{C6l-Y0AX;XS0A3(h2?mv;6uf&e zK7ldj_qb${kGan{ zp-as0r>f&7kEOixo#{a`<;Bd`gj)Q#KQE*tnN*MaqZk zsGIx^`7bHR4vdH(fJ37-)>6R=HRRT$Cq)(s_fbi*zkD zoD+i29|+KRi3n+o2w(V~wMx#>xzlngG)%7&-5_{Q(F-E&rwFo%!1e~G2FpsF_`y!H zww*;cYJ0`*DKXEVsYv?~edV3&N2Sr$+w#Gw#dffd(dUnfyJJ2?_i9j9}I99VcGr6IGhNC z8pIsLRWCS@=6CmBaRt>z8QW22AoW(| z79fRnKU(l9=DyMsntUb*M$D_vU_N}xs4c1imAec@DD|G3DaZ#Cz-ndNtb#^iyN)A+ zS8*`TQxp7$NGMLEuT6ZJy?u7*L0yE%Wq=NQlDE<5F}x@nHb@L?%6TPbB4#ki?THWqPe9UIku2|OWLtO>by7{@@8U;1nAeeN;{U%7+&4! zpf$bO3*O~+gZ7m3A3F5HwkMNI?M5fZsq;-J{ArBvWx_@9Ak0yTg@NTUNrqum9SEl! zwY*S0MW+muIs8=Wd%)A2Vo8$13vKg8QIx&sJEISB+da|`!St+2a~v$$zCtIfvf1s= zI$0QEQhTUzzgSh5^d}{1Xv%iyZ$g$ix=qy{ArqNi+paN)sN}2K=TXwY5>w@%kffg= z<1Q`U46dd=MlQy30yS-?sGyi)vLef_!Z(7{_3>E} zB42KhtbYr_+hD^7aDtYMzzD5k+_l+5Y3UA4CPUsRdC3+!O3(KpN2uJuP~96_{sQzI z2h`^m$%K;J4wDjbWQ7@RUDc%uJY?KR8Z9*!h2tJ=Kl}OKks23XY=7Kv zT&_6@ekUuTsx<;)ps8|4HlG6@^fm=1SZ#!FvmIjHj#87D$>|I1i>>1LC8pX*+hK+4 z-zRr#(KB{i|)KW;-BH#t2PVW;@p5w<>RC$X`>I zlVjBCkobHe%TZPQBn>Xj)q{z|gSm4WXZ=eyByQ2~)B;tyM`W*8?QI#EINd@XF|z^R z*^44zNRg;=a>YY@Rx5cn^}SJ;|D2L>DzRB#qSsa?BMsLsCk&)?$ta{zQ3-s;oz{w( zu=XQpF2;G3+)ndpHqgVNz1&to>Ve4|O%)WZqum}3HEVAn%i+VP&mZlQjzCvap!8)l zfL@gqkC+cBd{{*Y$pGwOY^8DV7J!-&ga3&8Ea)R<^YI`QN$Vw6V>&K{u|;6at`<$v zd6yhqB&>}Q`N+KyDoY#lS40_5M0RKek((RR@`l}%qSy3^D_4ce9paNwQ^i2!DbFv3 zX2E-$Otv(lNG>t601HQST4ed9SmS~8jmsP&Y^O~UrFj+@gIA#3VOOi^vkc;a3h1!tgrve{uL-}RY70V+|X-bpIo093kKv9iKAp{+mjoiy+ z*M&`w-Zxa%V3G{)Ef(b^?DITH%0*iAy+sNp>=(si zbPnU(TU?{sR#DPF&!Z(o-PQYO!G6)f1DQ^S7&Xy(^>y^^eIVQHN2FlWqhZ#7e<#M= z=7v7{5~?R&}`am10k)Syk;_ias!OUat~! zKN$9*TX|n!k1=2^A4s)tn|WMTAY?N;TW~1lmw?mlx@IoCd_s3^#r3c@yw@Cu<4t4@ zkM0cdWn^=2ui@3^Utf1s^@@SEFjvIL*C+ABXPdoT_bKN--sstUv~tqp%TJNyDt9T$ zaa*m3lwRtZT1Af%le;R3X&ireAh{8I6xlD$5fF>KMc-0Eu*C+o2^k0dRvX7>L z*RL1UQ~z)O;XnMh|M2he|MY8%>R$T`27BdWSgcO!Y=4fjQE!}`1-~R>h?I(!vGB}L z@^e5b4Vpru2TLB&!NUWKgN0KC5LI8^*R~!+Vm1J=lw?KPY?v4E-Xgh8<+3q(wdMrY z)YdvHNQ`+4LTd$sWx2>T8oDo66`G%yqv66_Z^M<=siDjZrB{I#>y%(Ux=7CqP@6s3 zfsUJ`q#L)pijm{q6lZq{#B*c{7rwyZO{i-LfAxyX(P^Gt_5g9$R;XB3Dk-rj-brzd zg{sKnkh@`EoUkskCK?2T5$H_5FnO&4L?Q5v*0dprK`MfTkaxUp zUyND~0qI)BJkpZFyIg^l5@un-D zAA~q3ArcjtQY8VyBX$ z2X8BZGV#>awFlW~{OSs;#>CsMyV~n|CXI_*4F{`?afW0G@ZId(uYdo0tM?!ONWI-_ z*^3^fZ<31?)3$i4u+q2(>A}kDcC%XfI5a?dz20jpeudWL1+LWIY-qQ((R*iJ%^s4y zm0 z!NZNF2(c0xK|&ZS8`n5x*Qmq> z0$2S?>nhCA*)$y_ua;f9T8vk9i<;M1x$vfZW?U`&wTS*bjJ_uwhZUNBk|Zk6`9SR( ztv?d>9v2?-QSyL%YBZvh5!0WkfPXcOJokDsKBh$Z!;<;2n z1_xza7?28xcd*ZeeAO4kTUtX3H=Zj^!Lj$%HM!IL+5KGg{oh#sQ2D>t*Kgh2@ZbMi zH$T1q*YY#_{ohz`<@jSRx>EduP&Bz@l7sOUW2tIh^hvp>Nr$@8cz4Bn=i=g`cX5+k z88_G0H`dl~t-Tu!VZ1LUMZB8F2@uV*(+#-QlEnzUS}0ChXWSGYR3J*}I2B1=CHqvC zI3f4^`nb#cTSG3|-hUNDxGHJ^cmh@@@t!@ag_v!w+#wzi@K5 z@97gJdhm>DEnDeN4=7C&|GjVcls3fz4D;H?ClDKd7`H&>EPWNvKqPD1l=W*X`pX!z zH5|a0zl&b{2LI@d@sFQPfd@;`ntH#+iW)9qtwSfBv?wp| z>xB<;imaSKH~|gl{mMmI!zTt-i~5BCpMEpkm=B7mNlwK#cXIH+wR+nTV3iZX~5=jg}c=g>wCVv!8rDovFX zYDD~?8jZ$ZONzvoRyH~n?op`hKhvS{xa9Sj)Klb3mRABCqQ|*O4kfuNDf6M(vt4=` z7PYmouxiFtdsD*63l8y)B<@BnWP%aW2>Y#K41#Wp0a6w8?~LG3e~p$_Y`HslKOYXc zbd`M$l3WQ*$_iC&F#snre{PvySJ3y=Zo28U-Lx8Su4n`F!om*c6h`2Z>l2AK-;4%; ze_Qq)K$O4#TGjuf7!W1=!6>_Ax1&USZaOn^54D|8bvV5_#WJ_l6iP*5d|^@@ok$h3 zFmMECTBu4wbpDlERBm+tYdXxjlPvIzR1E`^hgH%Qzo(BxPRFoBr72WEuxsqSS=)Wn z^k47~3j{#8z%>T3P#)Y=64J!VlC7K!^{p2FHg*FtNpp4SVw1;o zaRWn?ZrmWx&x|a;@9-{2QE-v5gZUkGMoG!cD9JJHbeT9JXUa_33SFL?l(3gne(#)w zdR$#HQ5pQ~?23Lo7c5wn1HFOay{|c0ZdtzwR^(74lg2>s4V^Jmo=)~7x7H$Y+B7?b$+*;By#YM#+Q|(Sqf!B)8j)6kN)Da0 z6%S@iVc%BbP8YeX6QX!0dZ(=7)YSb_tn=D`yUoFIj%ZF!i&N?&As<-~+NS6i#A;ld zlBt<>6G2!kh0_pO$j7eEM2<>;ON*!;fpX+FZuz~CqZQiB++ci(pR+5+TZ#CbqT5@C z2UeZ!jtVQK_D`NadSt%q^{jf`KBWkaPYw08;1nx5w$_b?wU$7=1c$f}$jD!L_T9UG*YBh-$yy8S$4Srb#o#jXU_wCY)zA(Vt(Xc>O((x%V!%pT zAyuqf9psD7@$v4jo@_tf-`UzYKJL6Sg%kAZ@ulK5K-;|s+s_{zLCcQ?elMi*ec`Ww z@ih|s%5$l};TMfCtJGbJx}DhDw@#rmir=XuY#sR9&SHPtYBs_A*PN%EW}w259}Bn& zuqJ={yzspWZrccJW z-20v0kKsVP-JA3Ip%pGavY#vK|8IUU{r|@Lt@Tg({~ze5h5rBMocjM~hugnopY#Y?iLVkLElA#ZohH=` z%pqV>K5LMWIig4FJjD1q%w{2xiXaA3#UJr>(m~LiZ3I_m4AH&lKoZwc)otUx~-(Fl#Jk6a;3yMGQTb? z+_+IU*bP+CSYBd#IQH?AoSJV%Po5qgZ6EEuUNJTiN<^TtzZWHy(}dA@Q95Rg{jM?~ zX-K)5fLeL>7Ccq_b6i(B&0>txP$iJr1&Wm~Xga!>lURFs!4wWelXE540SA+p z=%2}%y2Qa978Q%FnTB3aRYdt=WA#U2`Jn5(msSn}wsKQUcGZmZy+l_n7Jd@M#cvxk zpR)Qi(2a7kvh@Upb~yv8VnmL>@NVY)G&VIg;sxcMBu;iZWn+0cX4{8d*10Bgnxv^( zD4q0arO9n~qMZ3v7?iRiRW^cCV;Ky}0ts-=N74RnH%fYEy@kcs$D4!r_MK$??pL?g zPj3HoS9dJwLQH-o+%Q0J;R3aM z(@Z5yJx#?J=5HkOH)7+T!JdurM?b)y)YfBWE9H_6?rkz29!a* zz-85Bfrx$>(a4!EE<~G~PfN;VO!r9LNfXY!R_eA=5mfDH*_&&n=d4ZV5%E)UQXyt-+NGOXjRr7A zWHl>ZqN&cv%U6mt7glus45B4eJmEWKazDBYALeH?jmc8VUs9?tN?ez4Ejk-{$Qj@O z)2F_+KmyQz2;$OPgt3E7c6wWR7c85Mg!kfvQ|EM@ljSsc2&UI?60cWO25LDT2fZul z1$j#~iSiuVyG}@0GQGsXHNar~%NeJQ4KH$qNTDt`XPupM+VV!(F0Zv~E3K@$-%U%b z&8W(7xVO!6RVBY=aV%4b8v_V$(^bUMcw%F!N0#ddGUvg*NNhHvVedK)OO16gV_qy} zUQf5NxcTrc3){WuX=X7jBr#Y;*=@u30tw0&$%&Mp!l3O;9H^1WW4LxDZMx*aBWDUl zf>cs+T=#;)K~*MvLhTjuENokLUPa_p77~+H$2%M#MO0^oG61R=_)7%Af=#6soeQ|A zCbgsAS^mcWS(&1+BjgtJ5;(uYYpHYdS_MhF;dBy{VA6{%bY9D_JzjZ_m+-oytG4N6 z8f$jdMqtRJBqg2+(^?YeD@&q_t4UUwk5{SgnL>AACl&`eNCasn=_BCa5m)wrkD`1X z!Bw#i*R!T9Jf(b&vT^L}_C1z)??sDt&qYivq7w-)yb*z_kd~ZIMXouBktuDXGF>bH z*P*?jI5V4a8BqH^=OQ|!b74%Qtwo%&ES9nbS+c;f-c-hxFx?uu7cHxJ07qK8LE z2Zw5CB_L6reeEWt&DRL71x#p(85O9|f#N+VD+5i}(_ueF%E7W`AZkR>Dr$ubw8E|^ z*wkrt^u405mCpuw`zWU^{iNHjAU$H!PLMLO`xXfo{V8WmbAtF)^gb`sT4N@YQii4l zmqulmymC7m1GQF6f4Lryr>SRt$DahDFzvzO%j3(5NYCEO^)WSC6f;uAi9#*RsG@MFECl zJrs>(8KI=q1mZ9!$v*~3E#V`um7-E01flm_C3K)gbxpOF@&ccUJOwn~(gc&pum?C@ zLDYI}T(C)~QM8Q0Cj2qtGT{i{-ws#03;87UAnCmmcG{>Dzz|=%0Yn}Z6-43-mEl;u z&2E`BUz##`{JD^rx*Wl^(ZWJc6+ThAmHWOawN8~DJ4YTpNMsr-}-aJQ&>oO+m0j5y|cu9MeWW+&(RjMaOftF4y##DQJU z36MZl&1-T(d%f7J%!F~^-ZYe4AkAG#ofDSCBIgX;Df~wX?>O1kheIKa*0jjddNUH2 ztJph-Sqf|g20z?8Jlx;)wj(dP-jJjovQFKX38_*a!7wn*8Y*EbN$Es~XS{fGVjjn2 zD^lB6>|u3r!a%vZx8$6;);I+zqSR}oI=_Z>a9$Ntv&9vCxvUDo2Xj_yM75>ndJea>W=6tw5OYZfAspPo0_NgCFFppGYDT&ubyvOW=m`#B0! zCTi=${nXq4p6zY#KHmEfbIgqY-0<>0Y}~qg=TrU1Yx#LjsS^em+LTQ(httOG5_r1J z^^MyLoaNZ2I&U(Lxe^vaxz0;uL*b`ie$WCS zF+kdMpwGHZNN4*QE%Zp)P=AN6tHTs5?tJGDQzG9w#J@n z9M+)XX(*gRIDhe1SLLJ9f{ipc)_lKpZV1a--I(FEUhh#3tJw*p`ZpRO&d_PEVCC!j zg=}8QeSYR5lzbCd2K4Rq=tI)98Q@tZ^Rnpqv;7{X@c`DlYYh0AoY-Wv@Y)Fic-@Vx z4>tJ&Oo2uU4)KU6ICZRw9lq2p(^z)MaCc2J7Q z^}u5fRUtxUcyJYtWEFumO)h;a?<&1b0D=XLtvD@hRh^1blkfn}@(BpV-+5$RX@(!LCDluY~j;ECBQI{|lrybG+sLFe|5~+hlB{>C3 zN%X=4w&mXm1YU-I?ZHd%emU?|gDeYr)8~eu;r;p9!cV^%=PZ4F;*Il|?qC zq<@~_EmW!>x@!402%hTC-hAgU;BkEp~o z{~(E!ae+KqZ4=}!w+90ZN9-KARzGq)dV+6IxyLsZa zD}nrs&+{yKG98^H6AA0-e0g(Yd3|ML^X9GFckX`Wc0s#FoL%}ut30{;S-+<{tl%#g zwzc({UBSGtDs0D5IYCvb$qGjFShOD$3_XdhdtxG<`QXPuLC}d$MPG}04w(_nB@q9v zkNt4}+0ldj6=PTsJmBPO6D~yIP8h4{dLIfci0ZaN3dsQxpTPC|n}ZqD!2r2qb*R9Q z+P)hNvtnzKj0SdF75{@Q;-DZIOr5$j6%B!%x7_n+9%9XEtTR?PJXPsxgYgBPun7H;~#}V*xPm`kJCT5;{sd$7rs?FM^ zDx;{*#6Z=H_SlH^I;AW7n%+*hqfDXWA+Q|IpIQSh5g0Jp)5#e;ft&;wkDpWF-^-@bsVI{c*qKDGAI_5p+FX(V~CYfS7l=*A3J=y zF>Dx-Sw$pM?&!ki4wC3?Je+c^CX1k`4yzR3f$x|Z8dolY1tF>rpV~M+6$PiRm<=*N ztTD@_?VBPQjgz4?F8szst|L=FRS35tlBEHXRNY4EO*m|t02e5>Vvzmg-{s@@ zz*wM*yv{y(?5GU7nukZ5w03vxMpcA$Z=4jC_%WbS?}Hy6?>BsUc(9V?K~>3CptVa# zH|C;rkNAg%A!Zi%=pYFBxz=%#2WKp< zn}-HNTBbr$VBs$^i*X_+Nh;#PveDl;JlK13w14!g{oTK#(^ODhSs9?3<5Q&M6sxId zxkQ<+ly@O*s4t?4fYtb1*;kI>MB8vx*SLy~;x8mM0C>>JhGVaxN!nr}i3~y6&X)5LO`u731fnr$Kom1G z>$fgs?+e-ca@LjXdfr3TTip$ik{xF+sfle4ZI91=WXQy3VRTzF>qm6CDM6{Dhr~bP?Zl0J@FIE}fM;Ghp#_KWQz(5=XizW`}PkRR$|BA9cNQ8O{~|kw0Ou z-Ta4a?=B|!zb%M!MG;?0zrZ7Q9!Q0 zu6wsh4!Z5F%hxAwf&E)tuO2$Twj+2^+HJ$?<+QeSt|U1djtwOGxYgs~c7pd#TH?_e zWTV9~nPSJYd@{_Z>6oP6Kgq6dd5=%C!^?B}d3SL228w9=C>5bGl_fkXPUHvpQgvlz zwCw#ALK`pH)x6P+<0WiXI|1}MItj^uU^Z5dcUVEzx3qjTv73U8*2RQ=L-I{uBh^*l zPnyh^|L~Pg2xj9^WKr{~LuxrJcFm#)9<@3_u0QJO6e`1tAZI((zDYlLBRYwd!Lku- zXTLZklfqA;ibh)8Js!F3Zh|p6;gL`bL{`ps+;^Cn=e*UzmnvYYTZ7>u2f(`^{KFpP zPT89edssd_w|sgS7JS-~_`%@cFQ``yqc5^6;h1$Y5;2RCtmpzMAn=7Ag)53^he!BH|$wJ zOEkUCQoISgpcyBFE+M&ALeap45N=e!Fcd_+cw|JPn{?(1*u>nI)Kp<7{K_>TCZ=XF`b2=D3mh3X* z1WRVNd0U)moKas3fM7M452IAxP;5l*HS&oGs^Ns|FiPWuu&vyoADfy@A1P$?KGH_X zYzT>flp)wZ7F>@24T2(z&MqDbpZIxB=y`Zm?0u&UFVjFE3J&-GOQ;_|WiJo-J*;wa zDxu)iGq3SAhMB{JvbxDWzm+cy8<0}~c<%#k$0_*cL^RXAN_Rn!u|a+LP}K!u!mB(% z3;j8jm-!WnFbpyRSJaJE>qr5A?H{x9h~`zN2Xq)o-;ocvJ6KD6`=eF2Z+EvVx7(=7 zAiQkD^wLJvjVaVMVxPHXL)8NW2O3#}T7atu3ZYE9F1xV{oB*Ja4R68OC{e$p3uW6& zFVBCc8F6o9`AP>RT^~8o9;KOIe1j2CLmaGOPpTP+tr+2#MncLjz96k4pNCaR;vJ~r zIBd-t&@KBJgw;NH&F((jWC{7eMgZNwD_$&S zBpywl$WKDqMO~Csry^_lZTb?TIX!uOFklC>;D1XccEN?*S{GafN7@p}jkmEPX{CJi z!O}FcnluBP4=(cp*>D>7dp=uaOZpAki|id&I8S_8nlDWcZAkcKh5 za5_7=By=FIinm>_nSJb3#xMTnIT8GJii^%4v)knR>^%8;=9aqaXTN`>FJ51mt}Dn$ z+gLUAegWo}ldg6kKF|lhrv`f`^6giH0CQ$4K3oHOf<=#_xBe$Fd!o^(%wjwoy;;}X*@Tqhnmv&&+@8$LRIg(mpYmVATz)6k>zezt4!l4)QS3? z{!rsspvO$9M`Kp`KYt(jemltV{fg63H{G`0bbDVOC;Z|~;|z_9>mJK+Nc+L|r!afL zJxRpG;J?_Jol6Qp$p)j3Q_<}~v8ZDyjIwb~zoJtV*Nc%6j-Ma1=Zwodn`Yx{KF5&H z^&)2oo~DtPvY3CG`nCI%iL$(0cHJ_Z=Vg zPcdhoSm_Y8=ud9dO(v1Ltpp5qkGcwKv?#IT;H1CX=|A7ydGfT&aogJDV1+zf!cMofx%D|bS|isN za%q)U>GnW<+M16bYA-FF=eyg?z!4y2A3luo%tv{tD7Z4D7YiDgl|5148hX+}=7x61 zy_xTj+5R8d+M~}N4?gbBC)+!2@ePzqv}>)CSoyi}m9&Xp6`a%Ah`JS|#6O!(!=GSahus7(8!96u93HRwE# zbb~mf1=uLIa!35NE#t-oB8HS)d4KGnYgUV`_ymSb+On>3>jf6-9BceJ$xw1scX?VQ$8tNM{Oifgjnu&_tDZcisobryUZ#Lxwl&j z$ra~5yMl6vMj<;v+=?N0i4>ShDu1=2g&XN6efpP$l(`ybr~>e%$$+jJbVBA&5wd7P zboDz(xIsrfpeE@?;tlxdHzl94xoPg~mk%s%nt$A~M_53nNnuBnP#mmet{A-&JBvf@aI&4E?N z%CaNH^Iry6ano|Ho+YB6d+M!-Wy(7)U+%v?Y$xol#)}+~TDcpB>bm}PckW~g9Ldh= zuwxnAC5xFlDd%?N8p_A4dp?AR{PhPr$QSvB-u#j7b-um&lJ~nmte=f$N-jRsXl+#! zX6&4@lJGL01up|1(5p=~20?DN!LZ@7S@e{>uys|2>Cz^8Gt zDg!+io4Kb+&%#G`o)bW#5*p!uWh&PypP07j#^ zoy2uBGv<&ZB&(SoSI7vF>2;zfrK6!hd4&Oc?@0-C(7F5S>w<`>>*m;|vn$AZk;Va!) zDMYgf>NH=ctqT?eG5eS@)xBLtntK;)GW6gaIEqj>-f1`VTSFTPgQT>=|fV?~vu-hUTj;lPBGsZnADa#3x$_ z1W&RXV7clrutpXVCXjI=w{U^5)7nwDE1V5i#8$*dJ;PE`D;|d*G3&*ovi3;tqQI=S z4RBk$+u__p6P#yJD|k~|HWZk~$Xqt(|0aeClqCS`bMC>>eAXI;@6GD=JQ?iQ;IY0TQiix%d$-ePz>2+@8!6xE znd#*_K>xcZU*zwDmtJAmoK`=b>Gt8ybdz1drzZz4XL+;(qyuo;E-@9b+h%x~aehIF ze#v_7bLJ$s%3Z|}3R3K(mr6kte<%3@H<<9NV&ar!Fp&SF#pgf$&wbDTY&gZ%_&e}F zZ9Uz7yi?_WdirSV*Yp3E_}S&`==){`BU&B=EBtPDQ}dIe|Pa zO=gdkZ=8sVBm6rYR!iSS-{LztsNBVWS(gw7mVB3jXdUPl6wA=0a0-HM9=k)q-9dj~ zJ8ZtgU&C^1+ke!-M;(0BosKRx7=$85sH;&SC+lt$Hw2dG9xuTYGL=^$s4b)@=?54O z3XkEmL1a((?Wq-$!8S~%>3KdzPY@<0|KQl;x1iolE5g`KQQkOZ zTv~i|No}8Bg;G;(rk$kzuz^-Uj=$ubGp`6Mit}`xfrpwxPHnwdjJYyAE8otGDIsZ7 zythNtg?MLuT{o&Pe13i82WmNutAc$bW+JfslXrQVyrGu9Mx9E<&g4Y{Fu@Th5|BCC zy)ORd4ycsYO*ZMg?z0g6K0Dt;JDc&-eoM`s#m%0T!>jBXsnN}yV`dSK2XUdUNv>mf zaWvSRh$lBp7jtTV&#kUWHcr0Qm^ES0PK;*rFnPd9ahQ}pX15QVW_|uw(js6q8)B{K zHr~z`8M*(Bx|o%stcG;Im-*1?BgMr$Il8#OvUv3Li3Bjn`CeTutX1d>$s5F#Y^++8Xb0vpdgNx7D$8KPBFCKw9NN1Q@#Q##d$su}Dx zHFOXI=Y0fq`Wt6Fb^r1Kjtsgg^wES2#LdzAduD*P+?m8`vA(w(oBr{#u!Nh5-3wBe zby9UX=)~5sg*Y>V4ACxCPmdJ&gl=q1Rr96<3EdF^h9Mbc?n{0&X0{+q)hHE$B$n@o zu#e!Sn47}Rx&-9nTjN6nwIm_e9JN|xSrJUWQ#rJX0dM|$4YUHusS zgpPdFF!hgikK;E1rc2)}+B@YFSdaS0rohN<0un&vGzUj^;m?q`s zwcNkS_cNkv15WkvVm2+@tLn)aJ0Zx5EyY`08y}?fmZj1FlM{TFjk9+`bdgSOVM1a= z^n|L%RobR1o4vmX9az0N^<)~RTv^-%m7a)!RFbm+3Z8uKS)&b-uVMNyPv8_A%@Mmw zrEuB33hR_m&hv_U-u2~M$%pH^Erew5sy<=}5s7gsXeQ|x6MJhDI66V z@Gv{cEK_iEnxt#VyR?Hk@pQvk7+*<9U(eomBclnFHKjM1D0_yTMuAQYv?_8toF3BR zMk5ZYe{hBV&b=vr;@%d9l_6k{(#Y07y}soOh4%Kr^)0W?&2fHCK8(#i#mP6XZ}A?` zdLOvqx$j6yH!z?SR$)6#xpmRC>ZFBLQD&&vMgpQHT2d$#@*8LefDkts0rGpg$ z?ah1yTisdBBm0pvLUSiDvpFF}`^A1tpVzkL?&vz7aEWg*<6Kut^-Q=OrO!ey8H|xL z^Fr#^DB4X~8E9G|7)>?wocZHe`A6C1VlwCK{eN3z#8rr3lGE9}rQti_-A6`Dq~N!o zo;`rp|0#Fv%fv0e&R4`4$FIBofQ^hZXQZ968wJa>B{$quNVL#k{f1WSPtw7}3f*So ztEKQB^it8%O%&T2tb)_U`PePci^YWTC+L7%-{ACrcVsweBl0h05D_X$&&C&>?EQ3{ zPI5rbc~(+qW-%|W(t44wrrU7_*-{BV*ql-Iy&O;OlIZ37`9!b)N0sA_YroTY-B^NO zUCtDz9K#^2$iI@Y`sp?O2q;l2aSN*&AT2FF0V{3HiDPZYaE|pLINSUI%lhSO1nY%SUY2z+>>q8etTZT|_WX3R#Ss-R(U0@(7;I2Zyiv2Pdb=;j7c5MEbCv z%f{VEzT18A`kfo=H(0!5>&Uto9}r4sOK!kliinR{nHaKI`t%u&~55y-MN>2w(mc~{O|{E zmTU*zpl|$RrY(Z0D&OXyHAQg}K~mx%Lq@nkQ~Ps}mk%F8rF{5MHbd^&*VuUzZew8y z896D8f1kCCy_198(}U!6_v;r28=hQ^w*y7{>6Jh-@g5|82=0h5q zNfoXT1m6TXV};7SXS``{?7Jn0-z2Y&PLqQl4*RElGgX+n_3ft{^zEzHFJAE6C8q~J zochl&YxKUDGl<0#Cyi?Y{}+&nWah*oapvwRu37pM&9F2OiW_Ncgfg7J_FjbDH6_4Bd$zuP|G52htD67&_|dQYZ@SD)Tc+>LWdWQn4E1_*FuOq8Bo4Xys83=4|F&zoE0v5X60@1>UTXK}W+v&PK0ZX`h zkvSE=J1KZL4s4E6Jr`81uoQ`zt=7TF83BX9g(nPBChN@ZQOOKjZ#_Al0@k#{^xPvPo9K^3>wP zl$@Yi<8B`%TipUk(5Pq~ybOyz%Bdnr$F+=xXJy*k*?RmLeUNnCKiT>`>5SlreDw6m zj{CGgRILM{63#y)1`XYA?6?-{-%PV>wn%Lkom_es;5w-qiTb;}mE2}2foV4n(foEw zgo(zxLtYgMnJ}A%eU4Ow$Q$p$)9%bT;zC*9Nyc1Nf`H^k@@Dt-UwW^O71-9DcJ7UHF&Y>8zNHuCn}^?nb%@sN=b4o**N&A737J#m{Pv{tg8m>w^~K%A)I zia#H{KGE0uORsse;>H7jy(WV8>YJng2sRQI+{PJ6Ys7uHW(w#TdX`DeAkOIwoZc}yblJG~1Ynk59DN~>5H3X%FxGT~BN=P3py1rolyDQJHu!(7q5ne$MR zdAWaDQn*061E(1qLR5-)Iw^VU^V=!JixLRVn}8bYwwtC`_`!D&p_`X_rc;}MEjpS2A!$ypShqd{|`3?g}6E@|E3%~T#+M`BvClVqYUDEff;ZHAv1tguTU2nW@w z4KWL@G7eKY5hO|w$shdfj*fXXyn(kzG=afVOomVh7}Ux`BBo#eeYDYtY4?-0a=w80 z@5#RncYm_BhyoIN%Nm7jKjHtbp|HNV&9a{Ua-Wv;THBOHH~!~WVur@k%PY8~91T`d zI>|tKBRX5yTnERvKUp!@DV{f33xY}C}{^;Ci6r6csV2zaWWt6@5E%%})XyK#p zWJk&8EJ1y;PCDPf4bZ?d$jG#97^cYiVm1kAbOc^{B~|``FoCi!$Uw9*JE~K0E8Lo- zElmNuk>p4|$I{rhR57UAQIyQ+kZx+CQmC@GtZJXfzglRZn~Ng7_7$Su2-QXaAX33y z&nOG*FHXY4KJ6xI$5~J#xeKm=&CSHuc?Q@aX`H89DHFu(Pxf!!g2{)yA0$&I(gcIG zJTdL9JE885U8pys4Y##d)QXvX4r%Hv+tqusSC+L7(>{a zUw-vT1!hPe^g|csb_2LjH#w-!uF!m9>;G+2Df6i=6YmdG!kdurQ-%p@St*n5xAL7<}v+u(2#6)48LN?uk@sjz2xS-MBl9v4sXy4ma- zvHPqmz!b!+#g4$nCge>Ncg160n8H3z*a-Bbo~t{+NIhhwOt&c*cOwss9Er5vp~p-8 z^z!$}{Ck8)d@uMRP6;b!^OXI$6`!XiG|huO%$HrKQ%`U-hO;HoSc#GbQx7jic&fWk zy6N;Hlm>GW(M;S`J`ocR_oC=JanbgPo04c0EK7dIUyG~Bzxs=z;o$1YhOgAsRmnV{c z(p0jdk}Qb|qE0S2>Cg(ntpUQbLis@TP5FLjfO`pY>|qQyiUzHYg739gma zVggw(tGJycdKDEu#0D`z2;hB$KCel8Z!xR-VOht@1+OLkYgnXw^vI(Ox~fp=s9M?O*_R94EPAr^ zGZLOY>HX?uUBp z6yZzq>`=wNyxi;B9bUdp(@8d_BJYVN@;%rcy<=>Tc~OkZ2jsQ=h93XB$$2^bV!O-# zevfJd24S{00ND38ZolX$0i~86nr&^`WnTTlpQnAz!@bO1l=WRg#AYSDmWwET{}DD|4+$bF<+VAR@3#>Y>``Mb0FJ zE#^gYQxg4&4U|pn7E1k0dwe^PH9?zgqI5xI9|SL&ba{3Y+@i;{oHu zaG6&>Y#1_Cjnm7P8M%n6og1l)!6F@eBb~y^TV`S6#i(N;y*HnRQK}>)5jW4 zb%|q(&>DA=RdjmqGQk9Ey&^?P1Zh#DNl|N)Y)($H69OJzK=_~Ef0lL{XWkl*sH zFed_C$w_^%MMhU5nBX+B;gz?!sCjK*>Mlcka1@+HT+8T>7;03QXAT8o&=)(FbP7As z@lJ{WSOO3!uyHI`5m<0^y63ymLF^|MbdN>QtrR~j@K#>(5wcrT80egV)wxTxW)jx+ zBQh6L>FoshItFB{^)*|_HyKSjqAfgpZKeD~OCG{06#97^=+qk%1_&cDdZ?L7HL9cv z&8fT7NU`;5nLBY5uS`ytnjkBE*^+zfQ=L|tc__Wj+QzqD++vyQCSiq6^a^hvu};jMH+?%4djUW40P}ysjjZ2(>oU z#9R-LvekMSE7TQ1fH+1;XkPtf{q#kDgEiybDY0Y5Sx^1|u*qN;AxQ-b(wEwE{SuT| zU;o{*x%pSwc#7MuQ#lgI_$O^%{g{9{TR6SC39yuud-fr#|E#!}-=woFME6|h<_lDm z_LAKh#RKA&=AqX3650#F>S{0pzP*JzK5m1_p3>$RqaG05`>Q)aexq#4i)$`SKn9E^ z=8)p(q!r~HU^?0~h`O#PiX=|Y@uc>X0{C)3o3qhpHIh&%bX!? zb-}nv=p-MNSBBecZd<50`UzQXo80anipH=%W^=8i9mt1dIbYQvz6b98KRUVd9zXZZ z|8=V!erMEt|IGQnj~+eUspkK0KiT>f|Kk_=Im9GmmymTslk9_3n;}3IsTm)I`5EFU zDMgMu=eHe-AXBOb$t9cBwyY;_8oe`hPKppy-KbYJbX%*!&qCfqh|&!yMe1;AYjz&= zH9|XqF$FkkGs_vc*q7C zDl&oi6bFh@F(5@+HE{UJpntQ0>XRwV#m*83DdA0k?vq3Y)42B%O8j6r((DK(t9k1# zNVLtCuNBp$9?cdRpEB-J@gAta$VoH{dalm*KoU$kni;|g@)Og^ZtHufL_8BnEh(nA zo~NwwcCXA1hVFSj(UEV7HJK4g{aP}xa_(tr>@;IZT$>wopH-&+%mHrjr^rp zyL_3ZseFz6-GBE15vRt^xwzLCLX(lU{%Js8`BcYb!`z6U{2~e0CBOOd%Vf>HkAAS0 z{KtQUd;Qn?!CJL7%EG#uxouT}>Nx-%0RMM=?fa9XSKq$wADkTT_WNraUqns(XY?0m zcU0qCJ`_~Rov}UNXxA@ymX9+BZ(q@yh1&>M;e<-o6O3`=z0Slvc6LQE*}ZTJB@ZZr z(#UmoeeP~;Cs78EZNj`LzvO>9kxNF;6;tmPRLMvSr^6H&STY=OKp5oCr8D5DBAsya zY&@>ocx1j8Z+-p^FG-uNch9|x4jwI*gqxgQd@d3w^Sy3f#kRwAR+yQNpLD)1B1}s+y6d$mn?D>*=&;GCM{WMcjlPE`A z?~#iy;^tvs8gV7QZ#rzr*`phvo*(UJF*JSzTlXdx2n@QPcO#va_uY;I_b$V1YKCh! zCe-sOSDc}n!bz5M(u?OV8PMCg?ZHL$1NWA>4jA-1^By>1>GZvJr*l5_bb5J|>?rAjkr0+=OD_8+_=Q|^ntHF9yUjV8 z;xOiCW1p9a4GfSJW9TzQ9b0S4A*dYw$`95yz%cG5b5Eo|hq#i{l9$c(wjI&Y(aFj^ zs$o6n^^>xe&T0B~SNB)Eg1mdjs7>5J%(eR*X7@QCJ$zyd?(Cl^CmQSrgY~xbb=#3l$;s$p{5kaJ zL441H&Q#Eg>W;me?3@wmFH$Th3+aN3qp#!qZPyp2KZo7wITztgH}Nqy`s+vM?@-i) zgpdc-YabXpJf?~wYuIVlpHWdZPPT-dw4O35B(Rrl3~UpeafDyxXGC!$2cin@f1o*j`G2^pIC0tMrVNxNkk~>BbE^{v2ALt zd0VXA$uU|vrrS$8Z^7nh#cOQTWGTrEcQwdGViuRM`Uko~l}|)f;?&BXHyH}GK#;j! z)VjoJva+~`ypC<_cI1dP%Q8wHoadqV)fjT}UO+2LY6!HlL6o-FdnCSyKh{ouq4LZ+ z8$rA|pDp0{g%qMwNz;S_p=k5~cx4c<+SMfYn&{31KGylZ(PZ8X0 zt72=tCO{;d%zM2RR|mHNoHf76%QMvRPA(OZ_|2Mkdi-Uh>X8ZFm;*KH*4JLG=PQ5Pmq|l!?(VtwBz=6({lfjQp8MNO&qHs%PzTNT zSrAWJ$y;CM_4Afj98{^f?gD0^t8;=hSU^9!uh2LP8+X{UUFN_0sKx!k3;ZJ&`Om-5 z<0bPE3;rV){m;Mfm%hn;Hh^q`utI)TPjhuhYrf`6PycIqn=8HlFYa${lxM6&<1qF$ zR!jX+fqgMH>{+q-$^IoCU>|mX7U>=)&(e?0rGBNxm->%`*Q#dtn1tYa+Lvs8NiHa1 z{ltoDmpJ8OR{#(0C|0z7XI#kz*@N*LKJa#8{5lWBU$j)cb?Txo!^8Y4$_BbjNCmr$ ze&CNJEfec#l-FbXR`Ml2SOpFyo_q5*<-d&?4&+ZSC@3#~x_>v8sI2Jzs8|yDQ#cYZ zOK6Xs0`|PP0dhsV!qc4-g$R;erDnX%*^2V+=h-mTGu^+w+pic^!Uiam3ykvT?B#wM z4L$qJ-AAdp;hB|Ksq3}V zK;a}TjJm!>IOn21wZmgKd`}o?eO>EuDG$$y>p$Im_vg3o#+>2 zf3tu1X!Ola`iK3;KV;v%zx?t`TzeqhY^ z<8j)JKOkp-)SFc2^i!iQtnomt@%i%UWO3b3$8-0^XJ5d=f3?8LgvES*Oa3X0a_O!J z{*IEbUy~-VDVuZI`tavSaB^yKw{-12F>#J-e)JL7>{*S6$VMeY{8p7-)EsKjqR zqzIyVU`GC}Z>J^Kv&hz}Xnq{vJI z^d!R?Zf29s>8R*R%UvB3zBl-cyvZ>tCtoaozxu9oC#h&2-NyFrW!==ik|uvSyXRi! zf*YHkXeqcBKGI0QoyI<(uKa4Qebk%$Lgt#jiR(Z%4=*80+r2}>E9jexVNge^7-y|;*>nGW1G89$!x{wf_Oyg#L&>!FLia4b#}q<70`Q=uXbP02W}^T69kG(47mV-tqp? zdXV?+s_bl6MNqr4BWrVV-ucQ2AD=a}PFx+kr>7@p2PY>lkM<9QzC->xJNRMm;P~|L z=v8&--Rm4oLYdV~ro})r-lL>izCQh?^BM0J;s~=1C`^ii^yaMPyu5`eCix%Ujtu6t z&8MIn%WAW=vFv;W&J}QtID=#N)$}=} zwWVy5Olo-u`cw6af4D!K=g-R#r=tG7+~Ez|8|QPJPg5HPJ;lQ%O^)?lrilwgf zpT}1YQ%sUA%6}X8kk0a@`^6I7e=#~I=}R(M)lzTG!)2XDAA-|?1cO1mRt73jM zIhrwgc7$`sU?C?`Os<3tU25xlPSc?{5D^iST(ZwZ50p|EQcW1_W*Hz=z*NERrPR%U zB;^rT(jS%A8I+oNJzPTT|h1W*EBsGTFc^RYP?(U^DM6%WR z(d(?ja@0-0Ca2TP;}H*;zMaql<^rZh1}Q&YEtnfRUc)$0q^rB(XRVJ(b4JqSk`Os$ zM2XoRg1bzP!P=6JdBzx55{mXhf*w>js?#Zt=C_%9#Ih3Uxy6Lg{M>QQd|>|!HS+(R zf9@;)rFi$li~s+}UGo3&_Or*2D)N8p+0#eA%Ku;Dr-GhmOSEC@N7&}Sl6w70>eXuP zJ6nESOz99 zvb%ryx*u+HYF54|?Twt^G2uc?ni{XPOh#k6Nj|Z6mF!d0YpwJm?avw3LxQdHPu5TB z&-R{Fi4^Nhx|@#oj|TeTejIr2CF=t+VrlX&`Im0DyK(o*nWn?H%#(Ki7dpvCo*B<| zY&yf=gBIuIq{I1w0BX5iDR<>%SPP(sbxR**K*X5eWZA^{j{)(G4v6SA6iifxw(sOP zgMtPcz<7V(LqHqUP1HS2@DG!G)kp-%|BVtb_pWbNiCON}YEjJBK$-;5w*XAcihYv= zjJhPWfFK@|vaobEyuuRp#W+;?qmOgqz$1NZx?!i^p$5JG+eK2<2;X;ayY9R0<=^PC z>vv68#GeuF8(Wqn0yx7;>r9r4`&R3~yaG%nx$@(B+uAFpw+-o*RCXCeeyv;Uh^?lg zXvDXMnc*T;n1u06wBBafl(Z2QeggJ92DKf@m2x9~pUsAMpzmkbNoRJUDD)nQpKhJH zuigQcCAxW2uH}DLUg;4E1H%7_Ass-4i4I5ruv|GM)s>M{*86z$0Sl-lMgA;!;(}P2 z!NLHa!lvZvF#&3%!m>M8T(Um&UUOVqN~mxnR6;3}lO+1y*2->Z@A;0X2|o&8QSlRD zF873cA#9O`6^eY*%c5{%X6n?|lqri)aJ-lhDv%S811~J&*R_th-KkE8Jj)8IZ4nm0_!NqOjc?$3xZ9?jg37IA{kw}O!<)$!oAhEK5DGNP_ z82Z|9L)>HlLMRz-)g4DX66|n@de*ItdCVo#YQ2Q;N6y}urG_Q8x#lvzb9bgO;Tkb7 z&QbZ)1s=tui1VXE?JPm?4Bb&OOELr=)Xjy{gIq=g1U6Dt1$GXxG%2W7T&>Aa&$a*t zfsV!HRovqW3Tc>4Bf)}uMlrhxpqso&B(e;Nj8;XLydBQ5b1<*CfH(pMf4br%> zZJl+zJvbYdQ6H)tO5~Oa9X6X&)(y5}9q_KHeT&H-mJ zS5qDXQ?;fS@K*2>;Z*p#UNGRTk0VJc`;|u`+;+Z@ff9AQqy#KC&vJN?m-fPmTt=Rt zk=TVdd6d8BCF=x6J}#60^S}SUhs$i`d}5Uu|Mc?z{O|vtU|Eoxx?G$af{hCcokIr? zjSZGiDQigZ8_q2{9pNvy^X%s4W}wtSM3#oF<0L$pxMWVlY_D~dw@yD`3 z=f{a3`$dw|T8mg1%@vW~ar59cOCEj|g=PEnengF23S_&+J^}q~FWnbE&Ix2JEl)Qo zn@x9Bo-jX{yi59rFOOdwp!?3`Jli{Z_08e8XZwdI4GOR*9C0(dlgnvfyYuNc&EG5t6gzKrwNshx7}HB zTf1PFD$ChI8jtJU+0_25>gosg^l`nXCoD2ZD|6}q%5Co5o8NExf#xrMziAfTS1m2= z0%;5;QjcyYKa`I1l2F44Ke`~6w2FgHfbAEvaT%c634mqY*;AWM3(>-`JapnCZV}+# zr57Z`Ug42mN`on_k|R6+f_lJ~$aN!EG|8!&$%fByIX=P&EO#qC|O z&>r0L&IcQTGBGaVB8PvSr!y9F!CcL&wUszDZb-qG# zVr#BW6W^l3))*J6N#!P$uR+zeQ2NmGig%4>GdU82jvTZY4<%e?E7U#=PF4$oNNTr% zwQ7XiI#p2rl9iR^?-{>N%(kMsuYC_QLi3_%Yrv}I@pIhwgU0$_tMzNp+!hzA) zgos-k&r4R60fZ^E<6V;bDZAr=ebiDkf2m^ixXV%asGUsN`RVMz)|;0pB;$nO&r*}3 zCA*nVm1?}?I^5K~9{o0@i#pM*8&w7S)nz_;|Eqre-(0_@S^nA7Yi{iyrd>;DFC@oe zlR5GE`0=BpEXN_skuT&dZxE9iMa3jlx?9c+$C!S+nazir)3^ENd|Yng`*O3=28hnS zSk}xLSaz$;NZm=TA$M)u5UMGPVd0jo|2cipf4AM;mVb9D56-7oNUSnH&kw(S-uq38 zBI4d}UhY3JZ|qOC%}RzbIdiDjjjDSk0i39l^%p1ujfElpVgD=n5f^>B?3sSx@A2%5 zw44twbIRtV54Lxnb+_FAZTCLk+S+QqcvXkvMrY|YKIreA93G#ZeRKHY0HqPAmk^14 zhF*WFH*hTZEH2!%Etb=9K0kxlI)kqx`M=k@|MEX+G&a^ZyAL-$y`v+?yQk034qtt9 zlzbY#lg6r(!W@vzZABTtGEeu^8t)6J&|*k^hDC;42H}JuED%3xHVTkbL|zmFFWWSbjL;cs|K)^eYSrbXoT$%C)kPz0Wwpq}~eHgK(0n%j^vy_zh>b)A`^p z>)r0AVqW`?Id{zeiA;%x66yv|n;%3@kCtM0oBfD0ESWLn3#T7+Il}^ZG-Y!ljU0en z1~i_tk|dPr)WO2py3;F3S|~wPl~Ji89p5$8n9Ni%RLGT|U-;TS_TkRsAe2=;2!L6S z7A~Y>U522W!8j$fOxnLu^=)y0u4Bb)B#VhtD8!cxR<0ns_ zefD{JK6DSiyvqOjc6>c4rvEl8=ZkkY?{ELM<_z>v_HJ__?f*wIa=j_Pe6*7gyV#f8 z$<9}F#bhxae~~$bh-GNAsb(T`tjbcCB+ng#!+G!gFe;FA>)D-7nO}--@~M5SfVq3z z1QWvLoWpsvP-HKegaqMKp!Gm6E?3Gi*wL@rBH7LusuBx{CWC8a+_5n4Z zZNkd&_|@6Cl;O}Dy3#`6qF$R6wI$-7G|#WIzd=Q0|B<{~FP!yjdIhh(g9Q-hHjm12 zA;Qn5(@BbqoAgt;t3-fK5E(dyqqn(PM`+N8P+7`G#h!6SfAy&1Xjxy>W?qJpjDV|K zu|R8(Knz7GvI5!W+6b{`dn$WPCbbq$(Ws+Fv(*5*XH#wRluU{Sh(AFn$8W&ne(``uY@12qdq@w=I(_`4Y z2h5(MJVMnKQW;U<+OfKV+$nMNS!QfritAOfgJ8Gfs!?7t`2D$wznTdN)HcjBT4x$E z?hWC&5n3Su@ceB;?`A+iNl;ocp_o6(jeTdVU&!U0;8TF9f?M}P!u;-rgi&CWGS4T2EKopi6w6mcroA$}q?{vuJdSnKl)>MnCP6qw${&YkXd|#H28hl`)C*pN9 zJ=eRGBZ}svLWNALB}$`4<_0Ojz@+wx8k~m9&hwI2zi^JGllT<{{XFYlb}dD6)$xwB zHsdrEK85!<$MInC84ywLl?XD4-7bVcll@8TouurK#jMP{_rQapvn2hV3rUd$h?w+n zoDbg;-1o%SW%B#pX7HZ}__14c;)pD5WjT3!D8WH^%4^a8Nuo77o?agAHGI>mG0!8& zU)PtMeU@btx8dmAxlxd?_*o29j#P-25HkPfO+UJ^eor)6#45a;s8_Dt44vuN+v)B= z*2|T}UPjw=g4V7$B#Su!(WGOwuCOZzOY#yAbW`HYC%4=J=Qz{7(j{1uWjz^15=gNs zY-Y;T=3vuv+}TB^QnUo{Jjp~I)swrx#zD_E>8NC;h?p(#;%!>{#~FMH z3iM5-u*@^9xq*E}83?dR8N{2qL&b9o+V`k?yEU@CA?Y(DGLUI&c9)KvJxX|8r@G;B z?9o!CSc9NuxUZ424lZA?D#X2Kqo<)sCoFXRYoqEbCL|5UbQj8J*H}6(+*s~MmZAIK z`79q1AfzU?8O0;`p?n5z&a6K0C(Hv>my}ApZtz%A3JPD{mugfV{$Gt&)-z>XE z;D@+AvdOUK?Dk&}EIwZ?w+ocWvaTFsSYH1z*=0fhO?X{5)Q6Kj(rBuWTfF6SK^_rO z+B(T~eiypbNd$1K~;CX?fPcZ3}se1ieqPvENzTBubAE>bX8&$_)ck~X?4QDbG(|lMq z3`Pfj4j#r`HWl5~FIBaENeNI`u+>{rz4%P^aBgH}AZA4X26oA>jMu+1UjO|WuUkys z@IisCk70;lzb=mO^AN3a%cjK1eRFktcg;jgh|f%qZioVHyZedKN-eDyqjN{(n~hHU z=u+#G5it?+kxpR+7TH2{!sxc*IBCid>$X1W&tdPYCD8a1PT*6$0TryL4Bgb);TH&% z^Ukup&dbu~XLB@)Eko%HdBG*c@smnC4JG&3XgtF0WLh|5-pM@vZFoz9Lef>bjn)$F z3vZpkZ*x(MAw|WEtj1y$5>Bp~`_N?S77lHMa&gXIa=NhOowmK}qTQ6H51SG~8D_g$ z)1~%>ee~QPjfm!4bo7v7uISN2?NabcQ*@LAoDx)JL&~bDl}u)uh^b`r+*}o4O^t^@ zA5$#mKDXAjjHTo?zX_XEQTCDC=2W+Z=i+F{y1HiqPyl&AhQB@i)#UncOkXp8>X#z9 z=W7j_iw|b5@oOL1s{3xn*N|V!_@Un4&6~D;Jdi!2G98S)8_dq(=ZhZC<#B{H7F-?!csD z4FW<3kHUO-rI{}o=Uj-U@%rS2muf@i4fcnw-4Tiy6yJjRoZ@v8{4W9LUc4eT z&x;UO!9u2Rkk7u62O5qzsu`KwR&x`jFy%CNOQ6s5Oyw!=aJwK6qIxYz1UDTPsIsQr z6*-4hHkf)hD@^PHk})E)xh&e8vo*i+LOKtGOr`H(Z^cr(Zm2k`tuyH=8{tt3NZ7?b ze}uKCWbnT#X*(e@Fo?QgE*r?XJg^@LmM1L{x;;EIP{370ay0Luydh!N5x=+_xe+;q zbfj<|(wZ_$UUoISaq)&?jiBr%!V$%C5Jz)s>FaHtNuXVK* zaHhe!dkq|U{@*i7F*rNhAZ#__Fh*{1fx1y*E&~Qw6vPn^RjuW0>!MP?{r%e!e^ zV8JdgI=so&+#wchtu#6Jl`+DKm~nyvos=fL#)1!dQ7F`G+kH8|nq^shtf%L0F?LrY z>{O4Xfd9gYDIbIPQvJCD|Lf`FohLE=%l4BekDvaE|ME-x#49uM$E|{UVGr9fQ*Q}& z#)d{+>!4%0SFiwU-mVJt-1gJ^HT2}phMwH7p~rVN^!R=aJ-V}@NB3)J=gx+9?$^-v zoegc@uc56w8``>8L!aN(&gb`P=Ciw+`RrcJJiDuzXZLF6&Lw@n6@BM|4(mAra{54Y z8{Y`)5#!>rdi7Ah*!Vde?a$et(m#$-r;?N40`3y~Z13mt&Hw!z=i>SI2J!RL)8o!A z5^|l@N$(LmeC3-k7(Axsu$a1k>o>?3e&nE~cZ!S7A2W)-Kx3-*@Tz#r&Hw7u_fGwf znIbzLA0HCF z(HP=^0Wb7|E~bZt53k*1(npfO(M~RBgjQ>9IW!phUDXiB*I&f!i-8F=#{sYTJI!*;NFgf$2P*rIT{p zIGOYC6)%O;tL*wt?QPB%H9^L4F=%ZdC2o$l65Kw?EJCFibEoBh%SRiFc-(xwS-ufh$*>5w zv1|--h@Ir=TiiKw|Mn_!&V96joRv!WTS_^H)ml|SM{6Z5ky<9J3XhQ0-;;kgs@l2T z=9S#6U8M8Xo1%|<_75+CuH38s&5uheA7nlM8(#_WL)k?yecSp`5C7Tl+axdNBrM$^ z`@eeO*V;hUQHli%(CyS7TPB3@?!^=F2CiD-w8`}9jsGWM(k{3ED_dHjWTvA6MBYvq z2_)X#E`mGk|7TB}%^%~xK7P8j{j2@|OZdbW7^R6S1`Bp`16gpEj_LH1ZNvpJK4=+N zKW9X7lOz3-kt%BJpIn{$^fA7b=~Fgj>Q6YxS0sfs|a)qo^YD-`g&8dsvFM;*7?d>re) zBb&g#7W095FSGAdTA2n?C{TL!24dk~BT*Sg_5SkPJnRN>ed+% zJh_Lg`Pvmxb1curC!Yv=$NY9Gr4HH%*gG1&b`qSv0o?>PKn`H{{BNokD6;7CL34K< z!Fce&8il4IWz_*A_Nf5#wJuYG>%7B`O z7st?sPG$3C9n-V3WsKBzVm@Ni(|=TkPn>?gao>r@XXp836YunLzkfU`c_<4;R73X!Rab$*fMqpUkAXxqRff6)8)2ie3e>2L52C51xO>Lizx zj!8+UZVyZff62FhbzfxXv&CB{SRVXm`vC_;sW8=D^jz^Dpkxs%Bqwf?2u_Do2nkc1 z8#|fo^E3B-p_@;&fJQ1M1YD`3w{pHyH61>vc3NgdavhTV{MO_?kdnh!;CpSCvN<4G z`AT1Bp$PX~Hwt}szf*eh%gND1-0tp;d5nMD{INF5KN=(NNAkGr{0KaVA2<8`BWZw8 znzU(Vc=?G<*ISZjK1&UXjdohxXK;O98`%ziOks1y znL#|EAF6;+2b}(;Dv{`6+<5kmS(5}5LVFwG|1yj!?dNdDrE7dsHp!F zA^^W_G6Na|@<_%R;|7YlEc^a&-I+U`E`-?=FoXbf=B>bbtXE;Vm*l1~?7I)*%xsHDv006Ua= zX>S_SdwTSmO3-K;B9R=yOBmN-X*|*$X9MO{4^QU~elNwAhV4}#;5`%!uNzY~AQbh? z&_3dl0maV%DBCx?FZu_lRUbexf?I~4b$XRm>Fq6K7|*n>QokYNQWqp}O2~@zO>;kk z*yRj;I?7AdIt7_fZ@~AKA$wq27<70=XwQvG$1fm?G^sS|_aPc#av(VEmBX(~Mlk5n z7A-Lvf$+d6bJ@Hw)y0^5+`8Y-rtX1=m-ikj{2}zXF#1UAjb2ojz6`VAIO?en(ey5p zBGr0MXlXr^I#$}UpJB3A1m=DwiZf;zQxu<~x#Mizpv+HR# zmW#{k#qeumG#(-)`(aPTO^_CTkOT+-V3P!TW(7(#$KWJO!h*72?FT;Yk6i`WWR+Fm zv7PUp`Gh5^c`YXcfQ8|4q1#D)!TQxtn_8sge}!e#{n;mv-?w@8h-{7}0}6b!@IX)s zCRU$V61S{Q@jrSD-D~{)hj6lFwg2Q3!)}~@(@9ZV>B(YJ0@|gv)u^eaRi3Qp7s9&Y zt&oj>^t4qa=;S_9b63x#rJ~Y}@?WzF9HJEgIY0)f%;B!~k@O7uqGW}vQAY70F7YX- zhJ1rNFX^{Yq?(hfB)8derIrCxVv>v$J=u-b;9m!%0Sa8vs31H}3KOYX6t)d zM#+G(#WZJAV?z#}&mGcBOG5tkHes`wSvNGR zH*h_;ZeduB&K?4&C#2N*IAz51Y}84|mrnJcUtNo}_I3C!3AZHSve<5-y<@oJc`U8M7997)2)&O#^QD%?awQ-vj#5gemj=hi@{>ZE~AIs+&pOFo$^x}NC{ zs*T(1c{ArH{oTef;4OLl$G!e(zPP{-h z2jC~oGQS-?P~qyh3eG&4DSl_fQcp#&gg}xpq->x!kRi|we4R^zAa_Y5jDXp({9wP% zB$}9Y*K7Yme9Nt8ZPXP(DmnYtc?qNhP!9Tvn8>S~&k835Zl$KQ1bkU~$%otsWs|&{ z6%@o-FBcg+^j>8lgQVSz24U*;2m z?Ny*e_{I+ROFzSyQPo%SQ8%pf_m&A)-#yqtGOYgHYi{cJ-J{Fv&B~jODeTz%j{Kdb+W%9%TSH8B ziQXYE=_iok^vEbh+4;S+k=KOubaMrkl}lg>7|K=6fh0E+t0BCZsU7sfJF~dEvY{o4 z$@D=+&{J$I!J(#_^CD!D?sa*5=md zI4ehPl<2T5uhQ*-+Cyq5i=|2R`pLiZD%ez`cOq;1AS^a~Y-b~y#dL1dOgvN*+md@I(QTZp-4=6G7t zoUk(x19V!M+j3pD701~H{aLl4m`})t`#9RiR1C-JS+2Y(wyMT08c&uRPke8~8pV>M zCW>39(ysIn z?NGIL5Bl3XpPlV}y~kmhlfyr}+TT5Rappc9bTu0Y1|lF(t_!>!h>U`z6WVj;LbMzh z91Jq^_Sy~7%&o<6ACa^P*fJFM5aK-cfUFo~PrXDCRBma%%>-SXO$&5MBg`Uo7~TaJ zn&$}=T1w?!8T+}+g~3+_lb%tnEd7Ly82M|laQ$Q~)ryx+msgL~OWmv-Hz>x9zG?=5 zDw4tJ$?F4fjECo1y`$l2)ZXh!uqMr|Aqw|b(m_^ks75u~D=HLVveC{)^^%ar+?4Pj z_WjbqEb)2?)`X{*knQ2M{)p?uE#(f7VQA&lhYc2~@$omVo@H)++Qi@FnL7czJ4y=$ zMWk_#84IW?GY>P6xqHgGWgvQt@e6=Sg_{R{Wuqn0Zd6RGT9wBjpLiI1rMV_0OEu0e zy5{}W$#?QX9EJ32*-PJgt8r^8op_K*u`yd=aD531h-ZtuVk5jQN4_V zVfsxzR%du6OCtF7(>P&Zmz5Z0;!wVJ6R{`QPjioCs)Vuj;!Uk4JG@DHi5f0CI?G6q zJL@8du_^*AbF<6g2JEPugdw@tZ=E)j&92=T6aSHE(P!+SHw;%QXPG@f7LtZT<}zI= zuhLZl6`J7VKOX*2E4k(KX`0P)D&!sWSlo~}XBU|u2+ujcnlwDX1)wpzY&3g9^{FrD z+w*kz_Hrhm;2}mg%iiVL4WnCnh1AzO9)d*+Wy9$?XS5zG27^`@7Q?bzq-9=qkl@VZ z2IAl(H_E0nMCPu|&9a;igE^TO)6Q_z+1l<-M;Gj8aTjlQ-5V;71g|!=e&@;q!1|ec zu}P^Tyco|_)z+KUvmZh-W*eF+%HyN{sb1R_pv7>8xC^nf>5_M`CN?#Tb$-g#WD|K57`Jir>IYb@~+)8&c!OQKG&CkHwB-UwLo4&@Gs(Q zYemsgv3ZBakOnN|GD0yiV_A^4CW5`1H!b>S?tNcE%#YYtHBI7*VDjg4S6wQt+gU-ZrUSE9qoOM zp&*7!Bk+GjX%1I7U@CoOeBM@EG|I0-(rlk7Imd6Fw|j(I;oz!qXc zLKU&g0uWtL=-Ql(t@KCKj1=Bs*Xy8EZqK~>n}(WhD0vwmq}k)nJayCoZUf>1?F`4c zYo^ta1Fn2?K2zJ3O zXO)fIJD?Fx5oT!mVnp_X$(Sg= zfLjB3rcGKVHMhn>=P3oEUD47D6cmg0vs>PxCU=zCO@k^7p)oY9g-m@n67$IG=iwcc zOphr;jkDu$UiBy#Bz_q(p{ApIL)6xC40l6kg#_;>^i?{tqN|=7@MHUGL}D-%8s^Df zDBBi1xOgUeJp@LZrS>W70BN}GHd;JN`$rZ9D7c7UIlZJtD1e|Z2-~&CIN|^Pdl?yA z@Kx{krfvDewZOmr=K$Fn9E(@Lg2BHlkt@ld-c{yS-G53(Es?}8rpbUl1!OosQ;7!U z)=fJMo79fAbl8th2bFcEi<5y{yyGPX8nm#f3g#k;8WQZMlPPKNp@l7b_QUg2_uo^I z3cLV@~2aelt?73gJ`EK@K15^@@i{l)60W+IW=c|CO!KATNsDVF8bwR0BD<=OA4DV;_R zT)9^i(98LiDZeQ=;V0#%H>L){<=}cxWp;7PTD#+hp#p*5OMX*&UQemy z#&UAxnCY|CW3YgVRMk9vbOadi+I=3fXkcW!oZ-wq>ysvOCa%RnD6yqRbX;sJ)m;bZ zc{H`jO>Ih3y7l}4sIsR=~?r^0a*W>aZ@b75_*jii6SO_48~l}3$^l3S4L z{IZ+EHwW#?pp%d_U|jHIKfr4y!l$9M5z|Jh&B~q3m)KL0ABFTp5iaK3Va1p(2x<^F z;kkE8{e*}*G=Rhti1bCTOA+nW*qaC>_Ym?nOf?tsrl9EIZpp6Z_oq{zerj3QEsKx*@P}hCs%j99^2e&$ut@9&GyW`&kWlT z2t^7T&p&<=OE#Mx9`qT$!f%4}@d7f$ZZ&Rr$7az7Zh179&*%ia zK6$|%Qq-4jjUz@DEPjpVck}mNw0|XWXGGqL9szYVB$Io>zFyfcw{ivGYqQd1yi=)z_b<3xu>?JoO%}yC&b(cePRRD#j zvqe)BP7YI>L@Ck;s74YPG+g;ic)>XX!nLAPKoAc;G}Sy|6Q5=zDOldeDarX#5Zvtg zS+Wk=N$W>CJ@D;d*)hQrOf`kn|2n6kYk$eyn#zx^)L{dgArlXns4zTwEnfjr8ayh4Pq4(ib?U^_Iw3lkZuMNHh-wk&rV4 zPz&R!G-`@LM=;I9dZiknYQRcLr=;gs1TG#{)5Zx4dPta_0!Xe&@(WR$|4kO`OuR!tMsYXWfTK-MgcWDTC6KaCc>@l>4 z&pnRI@(0y<9q4?Yo$dem)$Yr~J)j!ar+W<$hddk}|Il6MUn&3{*0VOI*>$+^9{C+| zC0--CMEe}ZiOB0$BgO~Fn#kqez$#87aUTf!_nEksWh8|>L34b?(>!$Blep!X(RNmMIZOV2it*|sYt z2X-lFSJQbtXRT!{pl0g_+cJ7Pv2~oH=JhGx3+aC3KVZ!RQkXRpZ{YZs_LsKukZa1G z{n&x9#FBsnTxLn&V52!LKfF1}VYBc3R)`1^4F!knlbiH<;_bsOP1T%O=dnO(TYb1?8K`mDMwh|N28m8!!)g9knu%jcN5C1{p# zUzeX69Ien3tc$#5d-!e)xM~m`$xuIGtURI8(M}`7^{)<=8*J4VYwY8BCdt z%s^~+&S z(ZNI*XGIGSp;?U!dt1*xk-dVg7@d_0~HPQOq+w7&=yA6{%atHZLSf7-j=&0bzDyr5e zPca@{AFAll0gYoMXxSjdCY`L#GA}h&tUC|*A>Du~N=o*8R*VURXpXW7YbN`=u#hz2 zv?1>@kayQb;}`D-%WOH7Em1t>sg3 z$wFSTm(&f28^kx{pP>4s-t)A)8Ysyaf8>ALX!Xc1LUz~hk|oS-oZEJVi1f%`gV=QR zm^pnj`iYNHuVwd2+EZp4e%239wm$FaFBrc)pfc(sqi^xRT|1#67w*OW?r}(nM}xU1ic9xF+Fabg~Sv0I(KHb<9gY z>p5{49MD+w@Ln_+^cVh99Ryls)EcFr(LkVXhU#!lD=!hS{eY$_r~y&CoN(pQ;D$~C zmNUp)CN-?dXjV+=SQ6BcH-qxu#yn1cdO;o1zumv}DV849(;lfQ@YF8K-UAsC=ZoC#*)KvAU%xrRoyqR;Aw7DUPV?Te`>S~&Q(0kNcCzNOmJV*m z3ckF11)l?7BMoV`c&JCN?h2`Z>Wys_xJ3YM%@Vn~Rzu!~Pc#d_u);WkG|nj!9w)7>C|zA9=7OwUt7rO%W>ippKj%o#gKYCQ#F5rQO+LLb~9(FXfCYLL#l) z>scG3EY6FCcfZ9CmXzOS6;OCMmWAvBq?!)ts(5<68FhinnXO506^tr!%{8~m3Gf)= zb_l*T1dS~!P3-zMU=@|e*2{^T#k@|`g_MM@sx8zl>qGu(vx=1_0rTMRqqr%U`ItrE zlTW$r0LTByCq5{p{_L2u?~}EreY4i4ugduX22oG`ZMgdrAAOWCp>h)NE z@sx#?y@5XJdcBWyeyar6$?z0Z5d0DAgNDf)_z1o4WQX%kPU9pIPg|hHC5BirdYE@) z`}`z&JbQNWr#wfBK<1jsiZvUS=&CjJkt>Lz)A36MAPyuBg&q@#tOB^2bQi*y2|-pe zZk&R5A@~Q@!nvnUVj0;cKn0-+mgRWR0doaaq}viL6H%_gi3{J*c2_uxoe znKi!X)H~gkC9OBw0{hBism`7>M+HidgF|`^D2JrudW5!SW!l@>di)uEkaXTVJ2L5v z(%Uk5^z_M&`;;(nI`F4eV(Ll9-CzBDnqBi$+Ws+rl+I{?2;SaGZnKmCP$}q6slV=* zDsD(fnL?=~?@R!Y#zk8Dl~2ftKxiil+0&%Txb@Vu9{439A5XloWI0AOn4Brt$V$V! zlyY`J9HC*> zN7)#>+HswpJ63xHQqm)zU2i_@p#wc9?|NtjpLT@(s`Ap^*7un)8Ql(W#~@eHWg$3_ z)BNCAvGzhN2}<-lO3IV)bWM&n%F8w5APimQ_4a}9D$8+AQLrI?8C1kVocD2hd(+ezzL@Im1SATcmO@d5^ybpveObt)7!GQn>g#zHACL8;u};`l##C$#C!hbXZoOZ%&p57}+)c>L)&yalo3N3}J3@^H2?OXmETOE>o4@*C#Lh@?JJd z%>Gt?7f(u10=a5(nR#3)o7hrW)mz!YY~{j@#da4*i1)m5BSy9@i$9xiUjMHhjY6hcb57s zRUun7M`_=Kf!^aJ_3dpKl6emh2YJci)Z^8MCrdUCF!Ii>w?wc}@3=<1z5+a)ihC5* zZm@YaZo46JS`Nf3fxwo^}Mvg|8ks?9G5JQwe zThKh_2jWya*!R>>?JCC7Z3#YI%TJQX3|c5x*?7wIl9E|W<|)C9+@y@h2)2VoS=I`y z-6MI~vmZ(XPFY;cZwTH;Ph2-k^TovJ=)Gi@Vd~ zscqh5;~|!~>)v0T(EN=QLd+J|Y%;@3Ks!vbO(U3)HYY-m&f;1vZ>an9Di@0x{cElj z%t+L;II%0`DXwMHh7A7*G)&2KytvFcNTN&^ZWcOD;zVzK<+_hl!Vt8H7Aa1z4czrY zLwZP;^;@+HeP}BFS2W1kZPe@^ipGotD&~Mmos<5Hc;c$|@O??S@Vi|iY2dsU@+LP( zLcjEcNM2VM^3YgB^!rE21!A0X+V+L>@|v?fbXnWyP$BxLkTgz3(Tswm(sK2r)xFD{ zPIER7Q7Lc@@}p$ntP(om^U*+3dB}*A4S2w(|0t*i^td2conCP%=m6biemF*1g5m)G zqz*JP4wq;#K{&@e_5U+;_RClYqCuBF(L82@aw_3Pyk&vealX>BT@L>DC z99*v*2?5_AU^_Zl!9^QlWyG^2di&pHo_`nm{^b&FSfnOXz@Kt(G<3Z>ifu}=&KaP( z8aq;Z)o9EO_T`#n3RpcpbaSP_VEP)$nts;&&->>8E~b~Wbd+_R#L7xs_xS$lz^n6r zx1T-Qc~;5)-Ff`v@vr&6zr@dLp4Wutm4sTn!!gtM%KVjdfNRQ_8!#9XQ5_Rfd4dw8 zY^HPwb**=lHwFRD(5T= zYvXbgMug6PdU6#xnReUuj%)1rIg-vwx?eS24vyUDxkC&(T$OHszUYJ^Ug*pl=L2a8 z(nWuT9Ky|m*07-#P4NvQe1AO%*PKa0p^?RG+-2g%axJE$64A;|9b^fd!?0sZUjWA^ zAm(PmFQRQ@VcKpv)x2)o5EL`%zohEw$(pk#HyysMpwI^pV$??F!<-N@3w|iYre;}( z>THm>!Ht_n72ol%f1>kExx90BANcnN8*N&=T$KE#=9J)UA zdYaBI-QhcecSZe+ZSJW1+%53^qnEFo#?9(6k*Ii*Q?W#t+Ki_PwsNbOjaVO)I!|*| zTk_O)&VG3L;tZ1iOm3I9BPg}jU@*WL`l)eLf0=xmmYuI$=e$3(T;KSj^=amo!HB;0 zpTAjac+a)JyxICo=c|04U9WH9#tC=eOY%N9c5a;;cNe=3RVgC_eUJJ+s>p!B<3#Qw znn7W1cklQx8Jy>nO#me_RFeCEPDlD={(c@liO)+ZgDqEG6S-C-uDIgza&fNfN3TK! zeb^FQO#k)wd+bK?TjzVv?z)$stm#rIXMGZMi?h?-p4&N!DoxQ>#!%TOwAr}`J@i9x z#&F$P^_uv3m8K4*RAaWhC4WgnL+JJS&F~EP?$?wB)ZBMm2L*V=b%h60IKppzJw9KO zi|wSp3pT4tFX^7M71zgI=0~6}jEi$xyv-&{Izm^uU)&b^TejjFaVa!6RbIQp5PRRt zi%t5TZxkJT^RHxRbpKi|{jRgfo4;N-Q`ad5q1Ey#Ki_@?hj{qNn;-7~58aw*@L1>H zz(Df-k8k_gu2=TChWl)XZ_0~o6#n$M2(;J2=bYNOLR4z?2SwTo#)w=hA1gw}$%;MF zObEK@1xmVkVXbcrDwp?J>FD+LcTacEP7hxm9KAk0dvWxw`)BF3?&Nk79AbjUX+^W{ z`Df+y4E~wbSNX&0o|lz(Tn9SMLmsw!Tqzt7cV7u2tlQO>IfML;3#ePeJKj{5AneoC z7s?U5@*4U55E*KBT=S;{f-Ewgfo8(XZ74A?uXfb{(@7A!+?sL0-_0#Sa zM!cV;5%JZoS}3F9K0+14eAlv^WtX4_pK*KAs}EgE_3NSg_vxfQvpcQV= zbD|^LLoPG*{oPSuNT>T*sz)G6_moUfAsQzk^b&+u@iiKav|PJhBgWL4;8fy*F&3f z(&>77$JO&)0_l0-&iKV$V~?wmAH!k*Ag6a+{k1dv?{S&zYh~)b^YWvYdsq2*`+viiD`*2x{$giUpHae6zw1C;ac)7t?fBW~)q@>b1-5 zh3b{$6TgRuqKipMxkE@ziz&VOOE(60To}%Tl^4!FL03>?s?6fqD8KIRnX$N*tOz1@3V=FZ{!Ubipd!j;z(wHw%Hn@kqV3Kn9hh<9F5yfc(GQjM?%q^dk` zY_6o2m(D0lotZd@|J>of*`3b6FXjco8sd*3k!ruo_%^r$-8*snw20|rq{kJ1UF5@z z{#1Ae`ok&K(=2<-{#|F10=!3^y+~)J-%){2zmS8Nefrk~jAv z!`Bmc&p$e>{!jCB-~5j&Q0#mp1l;QUkFCd#x1Ln--=1u5{hI&rOZ;#>)bnEOHcqFw z=s1le`93>OzMeUi2ie^HBV|RV0;zhY@`rPUHe`;hpxum+!rtJ)$#5G2AXGwNFq2lfHtz&zLihP({djN5nJRjcc8ErwGM2CKjLa zph#r3BwnrRyM(+?ft#W&7s{wH0&owOSLs_tV>!>RQs5NM3@l#IJ%Yl*T}y7VbD8U= z>b`#e#Q}&gAW!szz0g1CLdj+}A8tyK`zAW?jw8md8qVeoH#rGVzfTHw^-i~Y_0I1o z%WIFvhBK7X@!6y}8>V{6k<`-s%fWlp4d7XDrTaW$GkC~~DHjwMzgS>FP>MViVoR!) zOnFqq>;%X#w_ICOvIyx*KSgHV+EU3x>?Wh?T8tK5E1SH_XT^l1DXM5ld=A`Oo$b9i zJa~0_ws&xHI?!(U>FNq1WJa$WE+ljM-69qjVrjlImbK^zxrjDhf zQJ5^(C0`fR`g5E)jx_2@4Y%Ksk}Iv7Ek47%2=uj~0mw*DE60W$?O24`*E!)$3@W*H z^-<$wW!B{Go2cA0XLK(n$Xr+H%-zMh^0H+wI$wKk{q#gM8X|}987CxQI)%zT#=wqi z{Ejx3(+#|D&y^+rR4nzr>Hm zkwYG2gF;``(82db2>gxo;@DxzoNaJqugkDUO_^`X3}uj7krplba=7v)6XZLBF;c&N z(){xu2_-K$Y55I;*I#P~rk}a3&-G{hg#cn4 zMtRO2qKXUGD6!t)z{$O&J}k;CVqDe*M=w_yg$BLq?$@gx*P$eFo^3b0aN~tLOD^2d z0jdm06_d)-G6!Z)_s!i{iCban*S6{C~`3S4N}qC*4n=Xms&*yYfvbQlUYY zp$lFV!vJ}iixoP0A3tf|2uObvQ!#L_)N8e!XVh%Pu}@l(|~o*9f|CzZH0|`Opj)vJt8? zQ+<_twZymlOp~m~MDry7qZOE6e}2->ef9rxSWF?iKPCWhhyMR;r>6gJJ$wB0SN;E& z`04Y!F7@IolMA-{{mEQ#_0PlSf|hf7C&aj_NvK@) z@2+@HM_TQkh%N&XR?a3dnOe*54Co5l-2kLH%F=Q0#p(2>jf7q=0fjL z9|OWVzFM4j(#fdf&XTvVx`tOd9P3hW*}6_AU@yzz=D(Q`J_;y6ZhdR;xNx;@DsYtZ zOfq3z)0_0R9R`7gve;TjlBPSF;bGWl8UtD|jG5~LAoa((zBhr6mRG_VKzK1ij;4?z z_#D`26Gq0=_yYaWsv#|iC{&u>ZgO~`7T}HQZS9DTkj_W_`qs^rTNO@q zbfcHSGK(lM)K3p4PNorXUHn@%E4W838J&NeU+0Wa zJ2>1wMrAGr42xEUi6jcq@@gk}*RAQf`C0+hcz4z%Ps{V_%-jlmmr8B>l5NcB?kb|3 zXpRw|;-%p!2Gp}(aaVtv`TXdx++HKSwq+tvW(*1XiATY@>znXP!m4BL&K}@`2uQxH zAd##h9C!ER9*YXT>?LTbk!L)N7b#%2>>p(DVn!;YcMd*>m3J(a|7V<}< zeeV{C)@*EBbKZQuv*hzf!K%kU(u00BH?zYX2!E?V*^-iqH~CYHwf?q0AsjH zK>_>)AV0-+fQc#o$neln;AzKZtRTo$3ONLZjlm2EvMrZFyy{x^(0F0@)>k>hUCzP) zQ0YBA?+r(B%;2p3<%^hjY;x(V30KYUvbk>5nWCAl5@X5JJhW}=hTLhBcSuMK(Dw0N zMF_MmT>^K#mLfJZQ345rw{~nD?cLGbMxuZtvkbt==)9TOF!PmH;V_|W!f&&tAe0i! z^US8DARhb}Ui?RNNB#z;LZ!JSU6=M!3(erZqsla1DNAl#!y|r0&HEKK@9&J7_m4J! z{~!KyU;hsm?2e0%@c^y#|Lkl(bN{ROf3|lXKl#=F^Gp21d)UwNGJnugnp__nrhU!H zOVn5Z@RcOSvX-CTZ7HzrqJ~E1&D**ci7)1WlCx>PlN?E2!_Z>KS&G=e&ery4ovqJ1 zThBO5`Az=bofqeeOU0H|^G0&pnUM=J;9GlgQZ*|Ad*_?p)O5YV5dlf1l2 zs0c(6w2Ah_9>dU1?Ah0*^q_K)Bh`)$>#(Fs0A@mKa^hhIZv;djECc2vVD*WDbGQUKsSI=5&?R^#yRg_YZjU$|EK;Z6 zyw!ZgeK-%FQ?T*y82^R@l__y~%x~*A8~?Ds8es9BLM1q30XJx%TX}w|Qb)uGlBS7C z8cucLAzRGGn#reKr>sJG{NA^Rn}c)&9-0%f;B8jDw|ZaPP!KFbshkX|}=7b4~B*_N}x(L_L`NFd+aSQ@2TOk%P15!cR@hp4cTFFNI z)j&8G#g3(w&e&qfw3sf&-t27Pz~MD;P8%`WN(dgma-!^gHQAEbe8>e6?b4plH%8_- zoYHEJDdK~XRPa;MsRuuS>ln6*PuLQ`kA$%tX5u$=lC^kCT%V9p>F9!G(@WTBP3MX4 z^|?|$4gwmBzf9)(by@LkB|azA9fcR!JiitmCVwD?8wco2?`D=w$F~;HxOzQz+zrb0 zZ8>!(0Qa9cDFt}SsT9K$=ZtsyTa3|aTkgn^GZGt@G7wlu7`_Dh8}9dT59dTTJpBu7 zMmYLMoQw-d&lyjsQWr7HhBU=m1+Q-`?vRT>sEjN%<*IPn%|)FcVm4gy^0xn{7s*%2 zlWuh8Cxb~LHwSD*KH&|GPWGNC*au&TuXT1!ua>AjffnG(ah*3%DA5a0u^&D7dvLco zt!}OeCjq~))ZxsXX8Utb^tH-x&v?lYIk~gM zhb79|ebIA|GKL4>s>(gx7#FNC-&@ln@^AVN*Zwd?VFf0 z*VtIGV06yNyKVKQ0V7+ST`VR;&WKl%>~vC0Zm*G&r{9J1PYI163o#FJ5!It07 z3U?^>;L{Cjt$T@2v1JAclfAYz0!{O5C@I3IrEJR3twao!xM8{Ch%7I{{a5Cch7R-e zaW*0Sk&fc)vNI|>w7me)GrR>a^dLMz-UX_JTZeAlU&%TF91bZKR50(R1UfnshV#y& z+Sf}tBHg^X(Yuz}Iif7Z;hgJ}sDYrYFnbCq3<3X03MYd2p@1Ehu~nj}s{|Su4i#Yw zCPkHFx+#2ky4)c#lf{IRv_|f)B%SKv1l=>9KTh*=kCiN|o*dOeVeOOl*sV{5tC6N8 zI5~C(OZB7sgG%v|N10ws0%tfM%f>hsisGv*PLtIXG@1m9K2>6&RZks4urz#fUaotG zDIJNUGj&4WdKm~esW#|Y#8I6+8A$l9&Ojgct4vsbDz9HqQ+H5omQrfGGvj$50&>E@a+#8 z@a-_*%U6Oo?jpo-tvY2h9FDKNyl(8z&Ik2pCoF*E3?-sGQEcg-$ws~jm9*Ca)VwcZ zfEX*B`IVhJt6<=pYN+4+MlK>>je8+5yfM=YWG#+&rBoGm53j)Majeh~;W0r7Nevyk zcuD7{S1t!4;RY&tp$@DZ_~0UdhjE63flim8BTFJt**F1@K4=0SHOY{=b8)+~y~FSG z^#bPUdvyu9H~RrZ%#p}NEz685fB}6hFAlv68AIuK2val*WXIk?RFZx%qOxjIRzw{n z_)mX`ibmKIz)VfFqpk9zQz(AK3;)PB#Y(A1O%)Mh-Lz+rAFA(D#xQKN0B9d;+(EIs zCP{*Tmp^%oM`mqObV$2g^LUF`z8$G{Os=w2;>#(y4fn2QP8no%jY!ch{T8e{T%S}O zuFpE#+nt@Qd%N#!RDOgqSyFKFtTZkjHf?AHLr0lgZ*j&OXW*yiJ7~~O?;TXtcYBN1 z8LrbQ+lEJ!3c_;`WHpzU5-p>JQGQ8|4)qpL2Ry@P7njyt3Dswyzv^;w*2hdL zr%42fj@!U5K~5ky#{5Kkf!H9?lt6(RFl3Ccl`T0(6>{}*mgZW-FZrQ3Ma|ngNekhn zek6AiCaCz1Dcak{c@1B0=@#^LYP1E|9*~~MSc?WDArLh0o)qSYI6~u*ASUX4m4F5N zeM9k**9|d5l)RSR=x{*sbZT~&o`=vkNs2O_n#8H`G{vC;YE6v!bMj4G!+jc&gj^(s zprnjild}e1cRIv~^^qN6R#|tg>>+28QB6^+A&DGn_hVIIT^aB2qLk{v+595sl*{2f zdb(N1M4KVh9v9>ElFLYBG&Oi5+$u|&Fm)#6vj)$X&Y9K2JQ78BiG0CeDYe4LFvF+| zR=*2h*_L3Ilu+Qj?W}MErFaH|CeqLW^Cm;LZJcn4Xnu`nQHJtxqS#h$Ft}e#UIu40 z^F?w=J-pR%zK64C*fGTWRBrETduKthBhy@$E!ROLzirJ^wH$r0CA zwdEMty0;2)foD*UvUA<7A!7CIEX&@u>5lTMotz@9DSKlN%%7zY=GFsSr5E@NPq2G2 z%ipG{_mRZv$mvz&c|x)bk*Oo~hyX~nABhbdOi&2u&9314Q8Rj<;De@a4U02`{59t~ z5UkIl4LH_fU%sH?Nak4R2uF*>=HPwDSS}13LCk(wa?D36?gW~Zv(bVDLKZv_XI>4W zDcU_gq&^X%2(y{0*IURmQ4z zbOoa$JTQ?iWbc6>i#H-EM2D9D>`Ww+tSLaWl$aPmj`Pw0039Zbd|x9ypcSw~_ktyA z(2)zF{3bYV7KB{y?%F-Q$uD(psAnjiN517nF(-X`mT@f1T`NK6p<6eT#gvr}8kFmF za+@G;O#@?M$&D_`fmxFzki2+;N8iL$$OEaF5n=}Zd2yaQ6)$Q7@=i~LryA<4zYIxWP~3u^dqVjniYK`qj3 zu;iR2KxR$ykTf-pQfu5AZjg#cHa2JLjnEgPyE6AC#Yr zZx1gHAaiL}5GF|}6*}W$mi&Td!R->KzTKo{B8A}9-t86B+iL3+)|rz2=SzJ@#G_rQ z&kf!Lr`gJQ(R(6WSQIO0v{<@G@Wj3uL!UG|jvJuTplNXvuZw=+)(ahz!xS+#y&4*U zy-pJg*go@y1gZT9d2qxKu8^D;YN~1!-^dHLX58V(r8{*gMMqc^zOV<-h36ZbkbWoC zPt+1M!<8w~Jxv6DT$|6_1oJ{_F1Q(Tde73ap8)kGy)2w8DrQ!0l+Lzym---qhj!3A zeK4cxu5!9ypb5<3q;U3im~~nl!5^eIjv3KS5__R8x@pvVoaN>k0Zpzwvg6#C3%A>$ z@)w>~&@Z@-5$!=NO206Q!;I}9ecN<)xzOZt>Oc`XtfEp}lB5twEZ+)`Bb+?Rc6ZAi zTJLf?xOcTRD1QqP^^ylLs`!uWiZWEqGp7+>3rjPp$f&bfTwKsgiGKy+k37F{vspJ> zdOhZ6vWM962+lHM|MLorM302OT58ny2gUZ35BYVdP3*D4bj*JC1N`GhW;g~$mbBNzZ#X7(}tBIe7zggcAhq&$A0wZR4r~xs|>u&H)?dH5@nAS}kSd1J{~4S)Qr>frv5G zngIomIMZg}-YX+LbaLs|R!$y&bc0F#beiL+RPfdI@x?0&38-s|CK(%tR}U1kMyD-r z8aQ6X)uCDtMNLc2WT<)P9(T8&)!cJiot-Cl#bUhgjV9T(RKwe>`hB0dcJChu;H&F? zU)SNM)ea+p^YL9B4&0|cjY3lvsvSjp_wOiO-PqA5wT^z~{&(+@h%U|EgET>R{2+o<9Ce zcvxAouu;RyS{3_Jq9&yjw^8;~$cYi{m|+ZAK?sN`-Z(hiuRp$Y&)?pm33k7H7UurC zIOps-WOR6d$f`jTzsRG{ZG;pq1v2;aXrLE>j*kq!s}!6?D4Pi}AwL98XLF|1twglF z0@pNE&$biffN5ONNxITT!ghyXYD)Hn?Uf7gG%{oz18z6MM1X6cX(v6d?W8B}fA`u+ zrmT$(aj|gMpU;tBbW>AOSiRYh?1p&Vt(ATwgbi8Wc~3rQ=RLW1#8ckIt7l6E*y9ff zaq`uT0_;(3*dN~`Oix{1OyanWArP)3-_BiMNOdNaGdO^?EH-4q;TrPRYoaXqu@zX06uLThdui-aIf0Btpe{Y%DN8Qy zgZoKRpPZfAi>XaQ230R#BL?C;b~`khcX-P+Sw@Nram<#M?r;BRoz>#m9_75 zkq=n=eD#vGe`TTK<=t~GH74~$$;=SS^vsEBJz|Ndoj+P+?AWOWI@@0Js8l1H#wp^; zZTh4Q`V8@6pNF~p4QgGJq!E3QUZo&>ARB>-c649MY$*%=LibMXgREET3$~jh}(c1jN58jrdtim^zJmo z)yuSTMc(`H;Hx*926y`z@Mp{#B99iIU0nMx44LvZXa$V8Ml)$KVpxcXkbOdpPyD>A znN&^d$Vkhun%GjZYp1E@oh`6RP^a8*Xx!QL>m4EL3jx5IH-293KcQUun*wPnMm?wG z+Lh;iEvIP3U(<`-G-l9*vqJ&^^JbfA%S|6asUs}L z`GR~Lx0Crzk*panyoPbtybmuHKh=(EC9KhQORkB-Ist?S=?!tkWzci2VjAM(QSTo= z`<%eP$lEr{j1wBuCPpo%0X#o-#|@r5&M|}cH}^iP&gs@?ot;OGbDDFRo2R??axtHK zVJQ3C!jA?52ZaVh(gOC=ykrTzOz(=H77qJ-UfGM3Dlf2XHj$<2n6a{l{fwBC0K;X2 zaqMmR3=`~yK=k2klfP7URd-x*bFq>qVk%`G>IAH)Ly9$; z^&?^HI3~t%BV;Xr0A3QWomTOO;>sP@%_q{Mr%xG%%EeEzxMa$>DfbRfd;Iz9N|lnHG(7wwO%R2Pd@<<$UkkL%Vcc=L=r5 zyz0&umu1hr_-CKD@%lRri}+D(5kKy1e;(-)Hm!^jJvfi2A~C|Z?u?pqG6g62im#mF zN#wO3W$$t?=Yl0vkyZ_kzE%1J@@s8gFS0wGCYw$&x3M(!lFhw4j+dRGhZ4D01dhuMNj7FUKVH3cbF!gV^5xJyl?Qyk`;VG)t5adHJRufL|g#$k@VqF-d?#b*j0kr_k|hVocXg&9DsO4YFkMHH44lZB<%mX&%1wLyJ3sDj zWi&y(n4Bb^6hu2T#x0C(nvst~X>oTG_{OqCaS9pen-iCEqI_F8qpq_wY!>8HzTE#| z>50GU8GVe@tn*#57$TY)0A-qP_&%M?JwZp=4+Mx&X{>w>|Ggp>N8D*kGWH%8 zZ@1T{e%al2TBN$4io?{;`Zl{QR}I5+!0&tm)p_5;OP?HkbFkk}7+)1IP}!xM%~h>< zE5QwtTLu$bjlb$Xt|-}izPsnv;1eJ`Q&z>YTVB69{K4td!?&3RK!=7b@;Y`xN3ZR3 zD8%=vxVpg_f<_QpuKkv< zzNiK%FJEMr>G<0PPzursu;bUux5fA(8%dOt%r%>A?$?JFc!O37QX6{Mknx{y zjPs+GA-`0mzL@3i72HY3QEd%m*>13GUapn%ta^vWO@!zV6!SSnwpm=!w*D48T-dd^}%t013DtBUa?0di;Ur{d=B{P2R7+# z*3FkDgI7oW)7{g9fecY@*hAfcGkn{q-`(WHB|aNG6*(a3tqJ_(WOsIG=dm+)O!1wi z_R_|?J*HD9SfVia=*+^bnJtfCT5)@h_=a^fTWxy~u0 z&iPcR+YU(N+om|J{|}%ETF`ZsZFlV**gL;fX5@afT(y^cpdyr zMDbib|JZc!wTYCY9u5-sXkIlwNaeIG+O{0xmHpb}hEfwO$eUt3YAX`Tz)k4efzKtg zN~}-$U6fih3BuQm%f}cmnbZqUl%*-EJc+C?BNm-oP?MLwAHb->qH1$c951OQR_>nk za#C=~KDy*}0#e1j6012Vd@$*HC6A5(6_pW;lvU1YQ~3BB(1oNKe=A?VpMhpzgkj?% z<50JT!kKm$YK_(?FKO-ezp~2gg#RS1T|nY^qRSQICYW$Pn3ADpCE7ND%reMJVEuUK z;flbPCW=en6i<|kYPP$dIgt|8*83V9Q~PI2U?{g_V7Cv|J~|Pwy|ulWPG{Sl>(LX% z`|u_aLD?{C_mza>Y^%U7h#IXU($@k{Pml#_~Nj#)7gcGM%wj$xvCeiFRe{c#K zj&NmRBsC-As@Ih6f%%kR&W3F{zqpIKO zF+#PPx7}xViA7qpZX~n3$B6crx6h2KTl2BSF$o66LlG5fr+k??(IZN!bFI_cwN7vO z6v%$Xv1c+rs0yHr3?g#i5(Y>$Wdqs$8fP<-MN$irL&+5W{23<-Z*M=g3;FA`bVh!7 zoeC&2;|>KtWNr?vNGt_JMc3riV=rGeT&M>nst`WE4M4-p_$}4ZI8Ot$haMn;a78t4XYqHBNWy%%D}HT6qW6X zI+VYo1Tkyjr=u!HwZ{>?;{oU?Im;USVuepk4pGgfV&z%NI%mjdQ@u~??!)~)-|Xf7 zlUP&pDposE+KeUz9=(i6O{)6a*O8uoSKWNGx`J=uOI4ZB6A=>EIMZd%iwPJoXqFi> zcCCsTYuwSkfy>KTc9~MS;?kT4K*LNli_!~8GW_c{l43~LYf9~?==Y@Hu;X73z6h&9 zJX1bk!OO!Rjmz~9Lf&PZ5Z|}_g5v0NN+P`kbr*-qvyH_d2t+h1kULKK0zf)8@ssZ3xQvi34q|mT(HW^Ju6Wb%X$00-bM+vwc+%fJ z+wML|*4-}>H~-^a|F_%8JA69DkubU3u(|#<$o%uM+e0{;GK-fe4r2*ka7u#a*w2e8 zi(*y30$W#DitKzTSDZH*j6T05SXtp6vUUNxSvkL7)eh3`#-6X_Nks&+=z zw6m>8ot?+sSa(<0@CtC2WHUBbHiT)Ml0EIGaZY(Voe|0{=C`A1?vJDh0pRLwY|c_`RMA-V-Mmi|em%-72sQZ44pfK&#y;4sxuGET!my6L&R@sRmY8ri0%>^HO2i9UJjJ=Svxs2TExz}8F-xuA*_Zm1d;*!>m2nljgK9GGy*FHzopk{}7D zIc}%77BtCx@>dC*yjzSRyII=CH-vz_dnm-OQ*|nrS9`tl^K@I9I;a<(lZ^~)$T4_i+=h=`3FGV)BtT6pwu0{M>~{-U@f<-tIRryR+Uv&{0fZ5ujjy3^(0!K3I6?3K8^eH}FY>X)U2C+q?Hl#o0l`UAKX{^%23s15S#E8W!ZxzT(025D z;;U;-1J%bEhXBzmH~yRlhw1Z9}~^%DV#F z0^!;z(}L@tGs2K*;JO!YaT335CLHeDa#Np7Tq!qGWSv!~Sq&a1XwRT(7`itj#8Rs~ z3q^%ybr8bskOqZ_Dgzs^b^8Ygo-v6(l|MHNx?d%qJFZJt!qL zYr7IwctpAN>Jg4qm;UY=guh%a`Ws;c4ISp<#c*pg3e%9QC9Z0yZian~P zxe0g4!da8VkgjZ6a_+5JZ$>9}V}NuiWe#K#9Q_wb|J9*I4fdH+p%}<-T*CkHl1;s%NcHt5-_^NjI7( zL9Y<9owsArN~hkLWCYEU+NoH{4uC2H@duZH6~(8j~<&wqEX8B$5#P2p)zd%Am5Y>!RTRprCG! z7I|-5_1Nk6(r_l#Ea9cMj|lN^IduIQNzr^tJOu*%Djp%+g5n~eS1sW&y_vINE1ue-Y9 z=&3Hgf<54oK>I-go*;#QYGD#VSO7gC6FImuNbW+gWI$2^`Si=OKTbiURe_- zQ8otg6%vMm4{*%0;T20bfyS>t@8$mM!^k61i@`)1K3bQyB;%#&7L1QAnTa(NpT|j= zA5;`6IMAs?n%!hw!F?5!vrttd3n+3da?wDez*(-=DOXBkoxNgN-g%+j9PfY_zmg{s zVFvg$w;xr-Ym^|j2XJe5`blmFc3vkk+$I)C=3OJjcFFAtENkhN)YRAf;M`QiKCr&7^>Vt|&F-@nrS#VX( zW4Vi3gQtTPf zgli~Ps9pW$RYR~40alHSxby5P2Q+?yJa+I{8ZKFD)Ra99jkS{lx1J~T+w<&vmff_K zMWgMEic#Tyb6@&J=g#B6SG~T`v7tf}V8JzK{C8Nek!-y4W={W2)(=ZcQBylr!a52K zQtG;C+&A3~dU$>TeOyd}USqBWvC*RK2Xv!rqXQ%1f%q6lnL<+ekkZNN3%5w#&jTX> z>Bwk1ybE6CluD?@j3gD<(nyQCGA`VzSC6YO?kFY%z4uK<2{AY{=JRPdbeM3#st#<{ zE+(Na$GxA5WG9iE^nAY^%v)4P2re1;n>wDD4N8aWOebX5>!Ilma}c0$;(wJIiE$rz z)Wpg}Gn~x|0I9HK4v*hG?HCfC<-y>5x_7vLLi&zbSz_NZ_BQ*Tq$t3>kn1eMzX)1} ztV}}Y`-&^;8SdMjW?~yU1NLs=;6@^}haPBdgfcAo z;h)mmyyUFP;D^-|YPwRx^x~A5UQK%prR`}8UxfO;reoy_K*3sD?4hYdUnrT@u`I`D zGs@;To0i#PRGa~-vqWGz(C-dsZY6cF#HjX*uNNHt#=~uHAX~HsLl;0p{oG3>iS@+l zaW+R7z2pJy7{;+LAHq`GMP=^y;+?5F)ba;k0?wp+=;@>g{mBoln3-t3bO6^Mq z+H*V5;|wleJYGR0Ko}{G8G5AiNcEC^&b{%J0LARmnFW9I2}$#-nk3*HXxRnAWvvxo zHYG;(l&M|N4Br#hr?8tTW)Yo+K3*XpdPwPV9Sutx)Ull$u9q?=aAZraXPkp0lggU>(D?@YuyYiU z{1tYAOQT9KZ1It=mHs5s`p0zKDE~4Go6znOkypy1IqJJr25$qb>u9kJuiOZ`t!SX@ za>0Y3Fs3hoQYlYqQ8yE|_PN5);&DTT?@SBQGarx*fdGUSnkyJoN)`vF96cx(=T1X< z5KH1Y4jjSgPDjGFC+f6E3U7edl`{|PAL6KUe%m3B4EaaF!|4T53qSvg_JE21bo$htWDf`LveLKkLGQT}l+H?TFuH|ChV)=f z@Aa$TcOhX_O}5mRwCGi()+s@ksAv(k3sO?|b9H0T)grw?hnK+}xj&>kRfxK+EaUuI%_hqANq>`O*S&B1BPEcO%$jgeMWi&B z+53)ub64oYx{@?^!v;en(@QPWGCZPZbD9i!8zkDDb<$KEG8&Z$5hX=i-#qI+ ziBXZW6h{*ke+Ta=XD8Ip-XW+ZI98H;dvMC}crAzuYVt`&*8JEMAH@*%;U+i9O=NC< zBEp9~s&OF=BN+Sb$a6K7s#3meRXKf=dnY)?HB#$S#a1~deeN}zV9-p|*j&rOFhp6f8m2lgKb%J!r)EDFlOnG+069^_=EBD*BJ>HjVeB9zklS#uMN!B)B(>U z&I7`Pbdm)VslbtkpMs{gB#iH)dKCWkBzqUA>^S|+OAHCdB7uQUQcvAL^DKCVcpFK| zq3==7tZ6%UAEkG`XO!+!-w>t1hBrH3nQtB&#ecBw1DR7Y+s@$bJJa-(B=W8(Cc81( z6K}M88?lm+#2G26R_dv9 z+wphf`4?os&m+?Auc({$%P6nzt0n`|qm@&=*u=w4a$;Ow!z@vgGv?FeQ*KE?nbU|) zLUEP`59)*8H4EslfArbYt!=DNTeRl^M%4<)L{*4 z(C3dH?n{QLBrDs&jC@P3|Gf}|p$c0G5Y_V~yp6GB6?!Is6wM+>SshvCS)@A=1!}~e zs*!BNQ7%|3O(IaSRB=IwuQY{g>-w=Y0)u7J}3my0A(GOr&Jg8DY2{Qm8 z`jgBgWdg?2GzF+hZ6ucDwa1lpoYCY(Ks7jCXQqO37Ql25AF{P_HW zkde!ZQ$Ly-w|EC};7S*TPiab(WooF9acRkQRtRQ=MrCb@QY5TQ%lq;0W zq`aBq$Oalz!%(tF8N3}`SPEJa-D(S6YU@}#BB9bWq0uA>Ne|MQ_OG32jlTr5iKE{`a8N zon#j^?~KwdH(iY8J)(eZ*%|O;Io<0C?<(n_{bQ?b1;1To`H4-hDy+IkOd`!^4T(YE z>ZzpbV7xmhs-Y!9@m-2;38cP4{eaK{zDc(cM9Zl@t&$wH&B#rary-tH%+euOO4$sd zI4h_rDK*}lGk|_z{_Yj#kB!PbFe#mOHt{#<2Yi?QRlUs+UHCiAXFc&XA7-xSvei6foRJNf`JXHyM{z+>NGJXPw zjU`vjEj%J_(I{Gz7ue21vmchsy1FyjxCQI}JFQ7{lIh_69B?LDD9gr;$IjPqgnQV` z^s$J2U2#=ISmr1F-Tw34Z4;dHU&$MUztiy;u9C%U>_7808CWp>Q&lE|(bnjLX>fJu zDh}+kvrER~Pu8=pGpDU4RcDpm0<-+4wm-2Msp1yZOPT&^^7na}N4Fl;N-Boq9IMZwVjwU6h`3>L zuL4P*151#5u{$-F0O}PcSV_SuujJ0@2-%qdiW*-5`4Y3tEx}1;KUYrESfW3>zeEo) z(bqwgoqw)~TGAs)$|W?**BL&Qqn6AmOSh3hcIasu;=V zLQYYlNFwp47}dlC?O#)$pveoA%K{ptAXh2Kz;MQFl`u@_CTn!0g@udz4H^12_u49I zZWj_`PCGev=F{aY!| zJ|aCd^_fMKPcpROgqQ3Z6SeAHW=h!1+Ij626LL0vYHVD0L~??m)x(J?v#@7fXyF1m z#34u_huvikMkaO-Xst(MDLV)wsy2fiGZx8e?lZy1t-728X6wo}pbyTdC<~z4w?d@= z0B`}pM);*7TWb8o+@RD|v9n2}Cm!EcIVX6bLB|Y?7*d2WAkU>{2l6Cb26v$eJ{!0F z96VBDyqp8EgX81+mL)Y(vM=&HyC`N+u?OCfbr%)EO&|rbnhoVdPSPNq?624#!*tBnV{0Q(?2fR5RmJyqD3bc3z*lrq>oX36ulu! zF!~g1I&BXp!kvShg`s2{{LXXIXku7ERN-i@hsK4a8KLPKeNZp%^^XTMMv|9u*FELb zHGW37o{^9ph$&`n8u>Q(K%i1SIx^VV>R=-N?O05#kg2jvqu@9e}O8E)xm=}^-2`I~w~fdWAA5<;e{f92>ryY(O&-i!-yHA||ZjJ??Cpw#&09IDl_;Km8*^l@E` z&q0AVewGn}d&M^)!_u#e3K@Rf2si(o(@~Hk%K#FDhD!;^Tu<#(SG2AH9SIUtG&_Dn zua}CsLXbKgTfbd1_V{*|U*Ueg(4w1lNrn4PGU7%uKvW)ZrP%-xwa%@j6*hFFteW*5 z!u++{s$o`WdKykqwgOW5MC*mv2*d?T;%~S}COdAPec1d4yCGrD6#ZxH`7q9creNC4 z4`^5~+hH3~{K(nhy=%BRQC59kjI;SwZ@arSKsZWt!ORe~M1bLyG(Bm*x*qF};|9lV z6AYs)Iu+z*rwdxm^)(G)K3SEJEQUo4c2t_AQ?6ESa8!{(92IoU=VLbFa-zMvJKvN5 z>;_BfB!$7l=iZZ;K$xon0^=*PEb>AqNh~anYlsXeddRUs59#C8fEsN=W|Z~4ek1($ zT+6}{yHw)KP8FHaz8ISt~m9GGnn-O(N9dsrQGb%`f@00JAC}V|I)X>{T z$#0SmHD}N2Wk$J0x7d?6*?87v57nMP+>I=+tEG~rePRlpU5qH;wPfuy6!kkr~0I0N@S=_-i#8NqyI;?5Dz zIr|0MG2mn!xqB(d8Juvpo%B6QbdW`aK~Wq4xhKy0Z{NVjxuxddd|Ksh-s)`c zbhfJzyv7J&9(W1DmWkTlskXiKth4jEw5>XVhbCyGNPk)lF>V1Hz=MErfLJ2heR4AJ zDO&R?!`Ik9?yym088ned!b_M?K6*X}Wyv{3g0yx_nG7%-O2!-rjDXVz2n!{r`qn<&*rHQxoA>85J4TE)sgo+zsXgJZsn4YzT-r z$YDAw#Yw~#P#kVCqWH+v48I~KJo|}3?xNSW-ytKpmOCO~+X8VwMN9#@IHG9`^@V#} zJ+A7UsGmCQyZhht?U4JC%-*{J$Z0K(Er5&aY&H=J18l*mDZm~6?wQ~DwDJtojfI;r zB0}=Ue<9hb4QpF_63`SjG?P1P)F*Q#y_8B+*2BcZ#wNoqV=4n1vrP;Og2hfn$yWQ@_fF=Ppv?=DuM)aL(Vb=5)dn~vu!;&=U_%Ujg z6tdX(1b=jsdcSTP8pqu8uoo9|WPE|_Wr+!@Igyl~x~o}w2Ig#OmZqlkAyspk*?+&* z8&f=e^C8c(DJC69Bb6ToVyjMJ5~5IK`5%H)bK*;^0>D+h>PM#oUV5*@5g`(L0BoUy zsP=fUM$Uvr+yrl4(bw&?BcFMNQ?(t#W=<@k~7Sks>b0QN>h;58ttQm_T)CVV=iehVBj4>u_ zF0|JMl=v0)fk#26srm*$^)&GfyaVvNlJCYGkIO91y<*HoMoy*#S!d%yG5)X+%gbu7 zS)xm`RWkSs-lg+e!ip;Nl5kpW%NF@nfs;KRV8kM2%wdaQ_l9j_XY%m5i$9cA=gjTV z4OJjgj$|2cS!5JTpwn0D!-fi8+{QR6n>m#P&o>oY{iU-l>mBp=T&Gh*)lzvWBH4iP z8QeAXrl2)uSkJ!A>MK*WAu_BvE@{jNpN2tBI->L-xJn_HUJmJ))?U8p-3jG?)!V1I zU}L#s!90;p&><%mcw?yvdVaV6!V7QV%zKF$GncXiUc%*R52<`kA93ciu4we;8}g_x zDGXea5lkCPMy;`QKGfjU(w~}gvi2-6j!bxCyJ8NDTv}OIC1x^?!w5C&hm-xj71tHN zjKy|e0&s6a4E1`|*zfJ^vgK&(PX0By3iXhh-xN-C^!rDl#%4J=lMlo?&HIu@CN_hf zG#IAaovqJ|DD!AK4LOziX5Hs7VQ&2fHSQK7rQof}3RFB-Acb;fu_*~yV;1LV+cmd=Qch!M<}Slh;3pylf}e$q!uXUscPyAP+g z<-LVv2yNkV!V4Npf?%@3EuV_xuk)1?G)_xcujr-A65cU19gBBTM*<>$TAYbXJz#f* zH*D!PmB99m86?XYq>S?hOUqLIDnf|8c(+9UAh(TA&R!jz^D_z0F%PmXrLP76@Uf83^A5kU5rFRWb1R{Ykty2adFO< zeEvwianJ&g6+^(eRkTs#xEDM+%E%%grXFGHLU!iVJot??16ShZ2w!LauG%1fY zKeC>lD~jROA9=34M88W&*e(>((D0kayHNomMzdl%A|hyD=nyMgAl^js1}Pn+$*Afp zhh!+AFMEnjL%KbFePe)YGg$-nmaAN`(G3LjH<=6gM!*9$S5 z-IL?wU+BLYD~)qA)O<5UB4!18VH#hf28iV9MzXpsx&9qMg2I16Veg}(P60Xw%Z?EF zpJu3(WvnrD616cLBl|%By?l6#MB5m}1h+z!+uWkt8v>dzPcLJl^a^c?8$1aAm)SMD z_;mdCoot%N$)^&1Bl~-VuT_7I>+q~WunHeH6G)TWM3Eo$K>>Wj=@62{9OHKDLqfTN zGHg`vpaJv~Rz!t^A-2(e5AUq(PE8N^s%q@^8oUUMaTph4czUu1`!?!NL`h=nQhe@k z1+lvqjszg$^_?7;JI$7|C&B#|b4?jihn~{x0q}x}z*Q*G1)bQkChMu;bvbpj=?Eew z70RhyqkXU@2u5o$;mYwWf9ItAWv0{xxquB(h%}7gEJNYRyL22CN>InUjP*?UE-+m~ zC}-VUb{n-#5s*Z%Xd_U~l!7I5Jv>!Q=+@0c-5v!M$q~{~XRbOA9Qsp53K9^y)B~Yv z@-aC+uc&&~W26#YOsN^eqF%|;m&fq!SH<~xuIj&Sv2?5dI#qvOm=T-0;H1Gh>1^!m zp#c}iBc%Y5=t#?)@{`>>UK-RfcS=vQ?5z#}K_B1bW#&tpxKN8s5wvrWQiPOI@y#N( zA@8sgXa_YHJ@AP?842gkGPh_)QsxzAklck=Zc%9gm?0dC zY|n3;j4wGS3grfitm78w+`kg^n1+o~&p=vQvKzvK4d#q0Z+#qN>Utt(RKo69=6eie z4B|;e`X6N;ZR&YE;vBBYUTf^gFn;-#3Wvo%hBihPVv@|2*U!6EDoWOWS#Ai$$R_+&BWO1d(o z>q-F@_}G`n1aRP2&yafAZ=5~Q^95=k0v;vb76mr<@G9k^uY#z`x}>n^IRk&*m~vpK zHif8coZOj?3({0CofUiKZdr0}o?uN8D~iH7Tl7A0^UF%K6&E9~7taLYtSlog8z-S> znMD44xDRTTGYW<0c+T2_8{J~O2nkx$pliJ?1qpPrj@<{P5FO7J&UkZnFyXI+fpf8_UvZA{2bx*5B=s~_^U)lXlhQ}t>oxlWfICplu~ ztYBO&7}~_0u#0ib=0-pY-gEEEfui)jXnx&E2|s90@b%MC!3xLgLrxzi#;k1QulEtr z-4G~%^b2VkUi3K;ne0-CF?5Yo5#8i);?oAH(;B;CW_6O{RNoXNbPlri zdiR3D*aZp;;gnN!fJ-3UG04D#0^nIHox$uf^EkYuotbO8@a+@KB)0@Z$tgVfm{b$! zG3*QE-h>{wF)H2CDdMVK781jB%FbzDSZ3eir5IH&xx+oDiWL!dHmNx^%d6VVzK`Iz zWubFZ2cOYs3q{;;5VvRj2DLFj_8A^_(WTXI(ozYMb~{< z$%b=-R+CT;AW7~#GDD)B!Dd7^d67XHgbq_yK=F1#{y-QjWxyavlhYHbl&ZIP%*wqm z{q)q92&fLcDP~%{#woFBB1S<{-a0eox?xCn`ykJHN0K`JYS(*E!tdyB5G+~j66PTWv~*j)7>Q#_ zxLeZ7*`H+dVZ#v2u!g?R-7<9Q4>5qu)AB8Xp_dCMtK4#D7SoqzJ0f>3qQ>%d+RQqc zdH`iWn!g(*`ExdB{3ov)7%9f_7;FLCSnR*MrYdPk%p?Aqf)5pwH6~0Z^hr7sd%ym! zL8x_;W1fNj>F%lbO-o*H8m8NywW+U#CnZ!CRB}WXdQ8XRZyzxSk!_is^9ZKoWspBi zML|2WMl6UBFE13**Y&6|6oR~pX2u;*(d27J*@_D-=FW>F?n6$*8EgvJpw7$muSWfZ z?Zy}G{$ckA+}#ayn{?1}&L8L?`2Nb}DrU;`A`6fRsMAj;@Z9r*YB1r=uc9U=goCv? zldo?zeLtH}(4Z2vMB7M?6u*LxfGsp70F@|1#<~kc;ED!g==&}LZ1S44Py1?{6mOAt44llzj2cJJ6?D=mri$5%gBg2i0`ng_^&5&0{rILP&h<;m}M7W{CI;5{8 zCmscGbIo|C3{cN99Ar(Ss0k?tSgo&$WA9HD=duNGDo_~LCilxO5%8C}<)pjh_n`Cw zq`yw1s!i+)TJ=_dvdNT!3hUn%h5A=S%99%p=7v4%o| zrGHq=Va#B5VHv8(FV$tg-pJ7)OJc9zmwId`c6hW$U5``1aflS$XtxaOggorRwRP<^ z0D8Qj4{45ymgRQRraTzwzt6;ScAUopop2SI zWium(xZpfC#B(relL$}pxS@)g{GKU@Y7$BI!gMmd?R7EF>LRY%!R9Sr5mQ-*6e{+O zGE;HvuEcVuzPQ^->b)obB=!4hem(a4rK$^%ShN+B z&R^4asidc(vIC%w+?SYi?d!!Q7a014S;$8P;Y4GYX~Ao+B;|}OcH4A@B7c@t*2g~k*2ONR>~$(lgtv` z3ryVG=%IUDHyN1pRKbL4km9DUL`teKdx{f5&OH?|t=9L*seyeY6`3AJ-gDb&M{tom zfhem60W_=R=QEfK_b4pk0jrDh`5>xz4`V})$7q1mJoH;3IlQ1w2t0rX)bv-hxme5$ zgPgRa$Pq;_dwhd8rJEdGV7oJtrA|#5(3l5O635)HzsN&aYmVm%wQLp1A^DcD$K2K#l@!9ALsGHl>;_gO($KQl7b-Pg$-uF@ zb!v)eK|C{O>P!csW%puYiAHc>C4N+MDUiR(9+X|AQ5LwM|4X8zYY_Bdg3R8CPtL=jjI z_jZ$65r=4KQe*&_7|pv<)l)LQ4SM^Ka5On@kYtU8Q7lD|lH`A!b$nctTDxmAtTb_3 zA_LyI;{0jbszE%%Mk#olsS%S%L`zHrw#~>FlQSguIQ_OdmuQ9$>w{x{m3f{W@}3F$rl1|5>?qGUHT#|?udm`hS{7UVii?%A)$xe9$>WoST8BV|Q&PeC(XlIiL5bmTNNIG4w6NnL=%#I;1KJWR7bmB&la zt*tY4%MhOBl{)88MbG}3#4@JwxwzyE4<$H$3~Zgkxrev6=dPB5E}LqoWr6=>2`fV} z(OS}EU1}()=iULa5gy55%R}!%m9yDD!%qtlDk@ygZ3(FvAK*oW{~I?Hvk|i}TX-gm zbbk?^S`qg$#zk1r){@mzSPsz3=4TiNBInb=?RMDlj z+E$N|Ai)wnted!=I zgJvh$Crgw&9dN7Rjo@VnYM#XD^j3re%}jE>Er57Q4SNf_d=^H)oo{o}egIz06;`+8kG@HfQid0&N2I(OpC~BDtZPt)rM-sN4;$8WZFV<{ZEsnSZrZC#Q zW*sA}d!4tF{<~~azD=D-yUE;BuQuFA3->y2%RE_kr|*P6djEwMn*;uN{)ewgz zHQ$e)jF%Hi998rK=?9D?fUkeiM%DXbiEhK85*>wb3T<8wIiy88#6I%6SHx>bVV~G~3-PY7Rc?~{-3&?qwzi-)?4ue4ieQa- zLhbybNuu#+*F;9+WadLzg^m4LR%0R{YK`|)q9mT^dzHSzFO0G=)GMi>pL+Ur&Pa3C z%q=IIrz7jps}z-4H!{J>r~-!Wh?j!p8SP&ALK1&j>`=1h2{)#5Jh3134d2z^dq>8m@P(In6?T<}*KIs_CY8oorf(Iw) z+9vC|S?Au3#IONYGzB5qXaNqeVsc8j3E8O5A69+ScoCJF$myxKJm|j)>eUpH8eR6| zq_T*-m!?i_*^M#A4cGSNqX;3%4&V*4_C{|dO=H!54%>JGjdM5FsNudKfSE>wp zK9o$+EF^tZnQ*Z)o<9EZ%$*MaoYN%m9rQM+^hM$6f2xy#Qb_dZh4t%eJRfClhT6JTni}$6n)|0@=?&flU-sq?NS0(#-FmgW z%04v|$M~a5lysg&iGHk25hY**UWyW|)#6MS$%EIn9ID{BoIO8iYdcy2J%x8gE&8>>sEllS};aY59|tX94%=3jFzb^tCdf@0?lm9}6ipyn)YPcekGT2S83EWfW=Gu%8r z>YsXg6OU6&antkbe9nG-l7vtk6Q8nDA@Pw+sl+wp(SavLViI1W;&ZbFkUUA3`xyKz zCCx8JHh?hPtypN>$~-;ixQwdEzGOjtOUr#ieCp^RYGQnP&Psshe$hC4^+nD|E#z{8 zWP5|xDJV~>P>q;8D2ihNRRj_YA2><+E}s<>!%DwLAa-1=L&L+_rD}dlDGV*4RK5!i z4WGJK^L2I^uQ9s84eOc|10c=GEHKW^hivE_cA zK7LI9x}VCw+mCjhZvT(%M~@yqezN6$-}xU~JKK++ZU2vC>+kZ$m7fI)29o4|AjM?W zb$5OLPx`Y*SdMj)5lJCxeYyIl)j}OX^Sxw$5QUxhP9y^$SVA}1kjm+|%+)Zq=P&^0Ti$)Lt<1tjQ`7$VN z$_N`36aFA*t(iqM}N=0HbB?3Tjrna-MN)E6S+b>16U@B~&dncTZt2Ey=ltiYD zjVZ)^>*&ZKKTL)UKyi|`YIp#p6dXWi2c%->O@0=-R|cr(+(&aHA#`MBV>} zBH3J8f2CK{hX%I{wEl-yTVC=yPq~|6LMF z&;mJTZWlVubVwJmBdTOQZCcFv#gb`0hpG&ki&m@8NdWX#t&aI&*|G9n$g_)`8dxc4 zFl@?Bne|!&3?ALM&ivSI;>o_uHU|8%1MDWbARmQqSw;@{&w+7)(K=-4IH4-YY1%Gw z2{w^TmZVFkE#^_JXa)I>^Kdl>dn)ciC*z&zFr=JnS}g36Oy3Fw5G@0G)09)tsLDpD zQ2DhkDLIXSwwKzx(}IgwW& zUIx*~uU%UM-7?}M_GmPW5#k;(5Wgxx)o=Q9-8LfeRhkT@{L%r$a6UTi z1|#fK9hK;Sp|>&9N&(9d9`Rv)Kcrqf0a0P5scYEe@24C@A=yWV&D_>L3k8VVfqbGI z##o4nP+-tQ7@~laIqhjdEV==Fxn$1tvLKAIM81YQteIhVeeL^`qgUU)?jM{S@Ams^ z8(*|q58fQ=*qMxjyOvU&m4$C4sM-gT1aa=(S=_K;e(qePnvCHFDlACslWz?S1VDtX z2C{OG;P_8yfL@AZ8o7pi-S8?MuA@&Ubf<@e%r;5K*~5oI&fQ7&(UuyxOSD)aDU@6V zv(Kd1c2TNAxuTKtTe(OzlW2JK6%Q{2ZH52?3WD4*7$HGXU>G%07g$r8X&grGY_fS+MvgZ zRk>=K5Pwkyu$WMbhJaPp`Vf>wq-dN=Dy4cQy4pM+g(&tKi1rqpS_H!!)q?5au*`S} zlk4r684tMajIWB(ejG+1tOFTh?UUzov-Oim&C^0dtSMofP&Z@k!@&^r^fa*sfH5YGeRw$8gLG6&lzR7Ur7B_ zZFd6GqErNR)Vxr3%v|E>mHE`2W@hSDAvV2a(!*GrLOA6%2qYA#D@M33hwPU0E)r8lO0~X}w-hV`oFE!{Ow8J)F0#)-L?y0j zJKJZ9?hd(Bk@*IB^eAB=9@;vO3l|IHT&m7w7%Pu_we(C(iu1opMNop8Mq169m{n_{ zwi$L&G7!oP-XV#dWYRsJsS9OXl=GDvfJ7A2*(^j?y7IvE-n7SKX0<2Eqcma_>R)t@ zbgkX6o69X8vS_gK{d%newc7J*^&5(8P>^h`RpX(SeWC!`Bi~ETJMwx)HVU3fQpXx( zNqrYFg;tiz`5cMqHlk-*Dj5M`hQ(uYTx1Nq%1G!5BwH7y@w+bX&x*-CyijD4`cMmg zT9z);>tvYoGDsUpV#HqOW2dqV-};H=EFak89NVP9 z2U;Ef+1h@#{kRhU*?Ii<*{|`RU*adCr{zo+j(~W!pHboD2iqO*U#3=Vd_*E9`IG+1h@*(M1AnsK}tBnjA<-RDd@La-?+H z;qWSv9M={!I9J4%7OSUha(l^E3AM_;ESIOPr}un3lP zY57gKNByY~$=A2#G=-5XF$2>aXIAp0kwzlfz%=thh~4sqm)%5K4NR;{+cW`(8wN^s z`W2gek}BM8aU_JStpHF?P;F^WS!f|g`b~wWnlA15e*9(qYCfNqz0J)_w>lQ*U8hpV z;;>3|U1?yWg_5ZVbLAhJ&w;wSA>)FT;~Sn{r8B(&;W`7f|Uu&q`2Tj)_7G)Ycww_ zr=qo6zNM9cV6tQd2&hm>W%+VcnKeWusEJcTE(OmAA5Otv!JoOa3rtaAUI-hRHMV)jNF-kk8y~U*V9@V_g;Wp zyRDNTP4&Vk#Xo4MKr8MVH5CkLLqz2z>AK_Ip%Wg`;kwCkLs3*#O5RaHhSsl6m;b&$ z_tpQ)X(yfLAD;V*pF8q@pKjOuKU+`S*T3rjzras?76Wef_>h%3%as|>Ifat6hIF$EVJaOy;KPqc zjD{oma^=Xai38Bd3(8Px4f1l=2J{DYO|c~HLvxe#OJ##vfsJoBm%RwDGr!8$xI3rCTJq&r$(m}g<+Lk0Hrb(T z?Qp{%o%II*P`ZJ3BY(N^K||D%=~}v1INfylF6q-!Ol9}_wA;o_k&bWD+fr6<+Em`W zeEs5tVXKr(gmH16+N?cxrLkI{jhwYUAXokClNWyr+F8AR3)3)pt^V)01HTnb2Wb0GXSF2Rt@qwyq^ z{!sJiims#jYvUGr@uut(5&9UE`#v*H2ey02r@(Upi}Yzv5LVDLT0gd9VWIe(8A=(T zB%Y9n1CA+_@6@IMZM-4io?icWKv}%_y_{|=IqJ#WcW*<4fn2JvOdRoU_-)dsJXTNj zUBi?$=>M|e&E_#%-Lr7f*2T=3ZLP~TmIK{xcazrSnZkTHMPw~(c;3gwVjebfyocRa z>(^9?8#eK)*DqeUDL^H-A7R2T*}X7~FZif!%YWRgWH~7u^}MAC>zbS=L~=it0Oy&c zBvs|Zgo>=B`e4=ZMJwjGdOmq*79)UsE(u()p~tECnG@a};D{CpK-f3p6M?(IDcV9l zIA67Oq5;s6qd^l)zUGtGV?I<8iX}NTgJ8f#WPh~+p&8NJq6=+qH{%F2s>?x>g8XH7s7z3#@)u_7RDZNfr zrs^t}LCEJ(W@AN_dLhe^GbDA*aPxjyVd}cAitvKeSf-0WJY=IY3_fI0gTB?L8WV4{ z5>W*E`54~#zOP5z0*!t9C?%@W@pkq0uz0u`9zObX$;GrH_~Mth^~*^>6R$O)E}4hR zKH}_XCy^V=-g>=IXC>D6#;0c|2Y-5f&_8_>b?-0jY7ayi{B#U~&(C?YCP!m0T(~IL z{_+JZF~UDVQbid+N&3gC$HJy_O}$y$D@N{V$(LV#nXI`{=oM+1mpy_C>&=Hf+}7La zZuOW+y4PROnqEtO_q*gbdFgZ_Zl=FD=ay;)A>RN*YuVt|B+Q0a#rlIkD;5!DL-4@T z`Sm~zLayzM8h#UWhqygt1p6IMfMO~|7LBJm(y{23lQD4zr5LscT=dH^K^gf z_6{?K*E!WYb%RHRdPM{NWwPvPU$l(9xhD4JTGAydDLP-$@$f30mFv`!sH=E4_mcb0 z{8_SIuZ0`JU*}zq)J$dNhJ&nH0HS0Fb~SsdU+BOq++MX6t_xTbwHlwsp}taMvXX5@ zDaYgtsTeQnPg!EWc!#t2dTW{VzAq%L8#>hJu*^r(c%|tm`{Utobi5Wh6W0D5i>jQ- z;d@JF+dUynHo5CyjyHK4WMa)_ey(S7qz8M&PkSorW;&1RfaZmI7^+5M-Kfyk2Y)9M zxo!;CCt@)hM-$v^#XRGMi?{QyLOed!3M0~S)DKFc zfzlIjr9`*&XGv%Q%o#%JTyfw5&fvQ(1C4>?#z($G?Smg!5xxm5T*GrA7z{`hq7v$~ zJR@TopZrfO)x*)3zi+hczxthOfnWY!RDAcqufj5PeXFm-riI8C{N5?XM{rT{pkFEcB_5rB?ch!G9d9+on|9JHD z(Xa9UU*hNP`j2P#N&96y(#Y-+RPDf=Ae4IZo1D0333NRjX2dYQ1U4b&=(NCrQ1+J) zQUzXNh_Wg@l`VY;hYBh$v^kNSfhfr$pq2}F)|GQDT!#@mHgLw_xlAsdPilF&n&)>7 z$N~YeQ32o8VVv3CF5!$K2QHF7DSZNO@)F3BYShZb{)joJNzR91CQQ17oFy@dF14we zJGTcfz=hhDoIa*G-R7YRwLNCz)`MpW?vj*(gjkk$3)48*Zc&AHN%-Z|6ru(JoX7Z* zUe5tqnP+9Mr;oE`j%~(8qoL5p69-msp>uNNlt~D4PB$bdp!&l(0#Lzb8U@&_eVrl;}%<^)n&skrsPdK`jbCH!2 z7dV0UGM&90L0c_vC-d}uxAn<4DlzJoy=0m$#3Na`w@nP^ls(&PeIl9bBVymYa69ch z9gn+{Y`!_26-cuxH?QUXO}@WHDQOK^YVm8k!=z+RmF zz>kdKW89*2YN{e;q))jN?TS6 zW<_RTbOjC_(1+dm?G!+34Y)luHc9~!k<4|5w3nE!GqbOXYE?x*3FPIb$RdHy)UQXw zGmRklEUOW2@WHKkMTYE=RXwd~d6*0W@74g%W)uB@U|5Q;K(@IiZ20}<3ClVmNMiyY3khh^4MI$X*%0O90Oos#UNO3X0!MkHsSSk|X zF}&v55B*G`baY?@9D1{#+tbcWyrMVxLW5o{1P7$MY~H&WIrM0GlV7MI?a z|27`TI;_lZGwb#MI!d|h7Vti37;-JFQI7kCxm|0s*JDq{6P*LXiVlujatA!TZOKzJgV(_ItQ()hQ^oz){7uAs?eYBWAej>QFafD#iT-S z8DbMUcS7q1G>nrPS<|hG13w9Mwml|vLN94vCX4a7z4T(G=DWwGI4Y2EN|%Coq#b3i z7PO+8=>I~81_C>Tp$@N1uR524oqR&e_WYLd@aDCoawX>Vb6+`#_#8SMF?0Y}#sMBT zlRTNGCS?xuxd){Ulj_kFWc(QnQ%f#&gUMAbK{+6>L8p@_C>6-AWLg&!jFRD~oC{I# z0E0gWWmdZQ7;GwwBE5iBv#Xk%w8N$v;?UI*A@QBx`s--#55ah_m;%dK&M>xJBRGP- z9w&mQM+H`)u<8wT!@sOoi&cJGGHA}(Q)TV7vP$J{B&U|KO)U{tCbj5(5=z^LeDcq# z9P2dLp614F(8Xkw60G4gXFbx3nZhb2)q|w#%N2}34L$Z}-WhjN?(%ul8c62PnZeJk zeL|Gx@Sjt1u69@-4!3lfMpBR#>F*&L#3qTw2F zgcDJXjwcsaj)eGdHssy@aOZ9CelFp)6j9yEC@*2j8^h+OCcOO60 zS;bfkZZZ^n@@sxizw;a7E?HHR=ucUA=+YZ8%3u<~NM+p7&1|yiqctyO5CF8;=aF(( zdvorC@7$mV!x~y*Ze!?g4)A04Ve64{!*N$THhV&|g82|t5 zeF&8u+6fcK9hRY3OBfMZ6z8e26v7CH~OYf)wn-B5n*}L@W@9Zya{rIkN2u zav)LIrxLZN#4lBBA*V_$M0dp=p>3wj@h;f+uiki&0>RD=J-@&gpV8$Jp-^>A7%B|aCM5gNr7 zWfV*B2}QL<3&VgYY~}Sc;|B^0y6^#k^dxQ=GsOJhapd%SeLfjG+$cElWDIB!plMkb zs7QdHXu*6S7E*BszX%A?MU~6AhHAya(q!qlS?^iq5G)zg?)Gb%iBN0!_&Ht~9tx~V z3HBNCcv!eGM+IfaDuu0dDsGJTuWbBi(53exdcdeoM7nH6F<5k)jIB9Wg=xkZ!Xn@l z1iWnKsPHYvM|j;%Fy&}DLE5-^@4|2^h)X6GehLf%Vd;oPW(nHMErR#5eh+dHL$(iU z3<1u5P6vxYe=#%Nt!=sEg)YIfy>4Y0I^|EE6L`B%pJ@b zxw))=X_{FLJd*kj5)OgO1>otGVmqd9&>FjVo9SZyjRK;{)R|$t=@n|U$=Ri9h-jas zDZwt3?V0gPr6xYeZle}IyJjncf1loXjrED8Yd;|oz|`CX)X4WEl@RuU)K8P<#4oNDb&1CYos^Z=0o zirJ9J2rN!jI>SV4C>a4cpw&#{At9a1R?0*>=2w zi@s6_#;}H-8)oFyZzaR{c%ckhms$FPH^4{FHFd2J5rt^R(#;IyS6A^sXMy5K;57ah z&U9frP!-tt0poU(0g;6Gi6Vx^f=2t2+nf2M(x=q`&vm=d^&PYc(5f7M8>qta zd};Ql)@wK|gf~in0GZscdTW9()RcF~MgC7&LOb8=@HRO;;7;~T^=oCct)9KaH0Q3ZPb5Dzii{jE^ zaz$ZH!#BLDvcZf2TSI7dE>VBNmP=R!T)VbdkUkg)HvCcO9D##14Y85!XRFKwNTUdl zp^d==9EFaMVEtppwrGpFJ3nC2@@@BU1g2o!QMP~a(K3%KGvper>tMC9*-ViF(v>}L zlyP}JgfQOm`QXxQ_y=OmkpdQs8~zx)9{fTU5%8ko3heGeyFV;BG3QmKS5!ccE1*dJ zA4X}?aao9B%|SdOES`9MQcIqzkZ=l-wh0~ZMzC7B#VE20nkGThU_3=u_cLhPm>2*b ziHQkUfRS@E{sJ<)mG(CyK}YnpDmhl54oMBA7zE7Id7etODZrbCmhjQw=Q6E*stga9W^cCGkAS6c7OHDS@{n@?~;3XOOsMok3nItH3Y&JGA1BohY5 zBnA7UZKwE92{7mpo$ad25%N1Tma^u~A2Nl8=#q3vzA<`*nCzo-4R!YxD=6vWQb1XH zS`?nE6R^-&OcHcnyfBF}pt`ulMTV3Wasn7a$v<$<3p*&rpQ7FZ1CKFlu1g>Ro3wjY zR;HB;(mp@r2b&#G^E?+r2dD)i2UO=`TA+%mekL;&*1=dvi+!TP<8y z-k;o_xup!umGqx`M#)@Q2%Cz-aR~Xcr#(l7hamS+>Jd>mRF!lmN2O6osv91NkA_)F zXFE3(gT^AfWxir}DjZxTx5&@D=ngTnz(UZ|6my=}>*N|O^oy)v0EN_IL}a3HnPj<# z@M+J;fd#k2Eu{6=t9_`ONb3CzWlXTr-ca|rYK~%-9MEc!72(Y+tPY=>3-4Rgtk(2Y z*m5I^P%yxhAxgd*v!+0>UMVsfVPGf4la!nR+9tq?$>fMJCs>G74jAvKXbX6Mmn57p zXi&c0oYdkG@RK7JBY~iNBd{QxE@a3cOrxs+00WF0~FCDQD{~S0tY^a zf3-Ml>X^67+maF#c=bvNfTL1KR&rXDCX2`dS~im@T!v6SDUK>SnXGRBadA9O0V+yy zga{eZ&lVQL;gL_PN^x*qpwIAzRkn*bWU$J?PyOZ$D=JuNc6i5HKc( zUOt$hkdcDNH1(Fkc~Ioh5+H#e5nx7ml44oKO+Xd*2l!1V_)B~o_Qtcz<>4qo4A@Sv zGB8-(aL5cz31k9*&>>$#%(N&7WOo(R!scvYl6OH0MPUBW;0{lSD$l&JXEOW&Jnvlnf`j8#|OSCrf-;xs0c%-)( z)kq?{fwH7vJQ$17?S5&u1e&I8`yj7?chyS;7n++?XN8fh@vAWyPb% z=rcY{4RREB0i#h}TH$5Hn9OCUGu#i3CDL3h6izG?V>^wtFv?W3pRw|PDTvO8umZY# zP&BB}(oKHDfk)498x&L{d}Q~Nqd4A1U`a7U7ME9IIQFSV?7I zMtA62HdxoP>D?RbwK5|!AXB8luBCKC77CUzP&^E2#aiHZjU?kCL-iLGz)K^^&dtMj z46hKL#8)!CUb}gC(eU9|M|-%vFvlJ#Im1MEla52vu3`nkQ~>Qdxe<7?1!*umj@j#BV9@{8qh&EQK=y6qA(!H zOu0mJ!fL*v?3f*^bQ2DD_~B~wVlZ|gMV_LbY6^TR+Q-wa3u;cTQT(_C+dJYFDju!8 zC(#Q{rc@m?Bem)kvak_aHD(Cf*M%jNhs+!G0`?v)+Rjc>5#28b!~xc}ejaId7&s$2 zBDhN>x}O>zqLxl8TVEbt94jokWQqbs9zet~r}%LP=_!fpk<2cbhs_yqH!`z4y9xuP z`a<``irWFQ5b54h^J)l z@rIP#Se02hDWVEF5&!L!AKgz?^S|=F1#vE??{@)!Un2jvbwXmI5&t`><=^#x{*)hb z1q17L2e-UG&YK(8Ln$>6Act;eiorxw;|vI6#yl@BTQZ3;-I;k=C4oZbl2wKm?omM1 zu%ougDs<4g$~q~RYVv>!(?8MD+%S}=?%p2J;RYl&KQO!n0lwnkG{oJ?wI@WWi3jLY zLOotp1CBWOgzO03PJvPy#~`cXh%jLBIdh{;pbr_2i=eP@a}=4vXyyWxN6;he60jgv zW@1x#O&M{caN`_O3qu6dW))B`3Snw<6pxbY5_lSlC!a>y3hj}R1_BJb)uN$RN7mBBDnh3>cQj5DCA7*`) z?Q)cXWs?9(-dJHCBHZV;PuFS@4;xS~4--YVDck$pg25*TX;PqV=yUutB^MaKytdRaJL9be>#Q zG={|C4}^G$oC3k`5#}FBzTa9U|{Ur~6PA~@%b%6o2 zvgidk%&#DepE*Tn2o{bK{GyNmf4z>&`ow&k@e=#O4+v z(^$lFa+rbi5C}bS;Nn-DHoZ-f16%SBheT#)rw;0!(ks17azb`CKt~!C&>a77*8PPY%=s=YgorFB%Of}qOnivGK$T);SS4|8Mz7o+C z23;@=BXbJkaIm8k7sF;nRnJOJ!VHg4wW@n|tuoBmZ}*%N{K0h$WU4gj|@mFf$O5W%3nfXOQ|#JDuW zgE`7nv!?c2%}BC>WM?O5vKyzf%LB3(Wq`^MMsw(cYBCr~j85RX5 z;D9&T_(gQs3VCS4*TWtM+m}VSmC=}R02MXvaf3E{qqgRiJDjK=z* z-6bQ%nr>w#FClAbhl(LQ84Nd&yogdhctb$m0ym&HSMRN-af^t(kQvKkKETh21buG1 z165#?O+?QI>38VKj-`%s4`~U>l+yQ$urjR6shFsy?N&yD$A`KtL8=N-KrclL49pdM zV_GAPa5U(T)H+Cd6qgW6dyJ2PXha#SKeAtXI@uhde4Y4pssv*m<{5)uG|%l)X@xXN z1J$0Rfzpw^y@fe`m|=68>a%ZH>UA5Qj*c~SM5~N;Ssjros#Vq>M&9Atu-tPQy-L>( z7G90$QXS(ye_&2)gqogjsr{cv+b+(66 z3eNKo38TS1WKkVDb1sB)vfoq z@!cZ78)8ku%^qMXCs=$$O9&nZzMqfT_}F@4^X6e5Dt0-+QiNiA*oVN8t_yoHJ`rLn z|ILvlR(WIzRT)``hr+L%T%!VSx$Y2C81^ho&xG$IwNEq#N@&sC(yA@FtD46rBmo1F zg-A$FN^G8-+&sQ*l978NQxQNyA}56@X%hs5AdFQ0$VjQ1;&n5XkCM|U8E)=b%?F6Y(tTd}^~G1VDpwdjTg7XPJ{$fjtIEEq>Wvn%UzOi# zy6%O&*)C(Fz)!I3z_an&QBe%VGGPJWl`6qQ2sre-h#+P+c+AX=3C<1e1XoN_NTr*5 zFIY&uO3gtSA4A1ajBiDUC~wa~fsaibH$=kdD)pf`!X(LwOr&HlQLquP{I)N27P*os zXLYnGZWe?>A$sv06B~sV?XTenu);6QUl#~PT03hx+DxJ7vmiU#fK<|rNSTT!UbH|Y zMA}PpI$#|I)oP$gh@t_z9J4Hm!`h5O_z?tW7ScZ0c|a00XJU0!q*3!UN1AI8;G(h} zE%`3D)2|4P!$v!50|ykOFF-bbOfrR=)^$(|0n`Nua(p8>y3nNAO{sm5dcJhe#4-D# ze&_ucg<6wMYTYJkS!ly{v-l&5eJ(I`=!W@g4MaPHDjSH(MNd`K``|Gel@0B$BJZ1Q zdLiG&s^bO^lzhpv`zygtVke(V#fDhQpv5ryzocGavV~A4sx%$ixFc0F(*`uYxWrui z)ioF>Y)sXb@N-eXo(Q!Al+YXCe@Yj^f%8Kh-KWiL<|v=LNR2j&$at_=5w^~8Imx9B zh8(@D0AUG8m!_9OJ}Smxn%PVM&KRg!@>!GT)uz<1U^I~@5PnYo*3y3G$o?Bz8r@7D z5kW)KOHhK~K6aW+rMv5Cg$-5}0@zI)Eo?^u&k$D9WU#6WPYlP9S?*9q)557-!r5!~ zd)-PqH2s+XNkF#0poBF!0^rlIVirYtVvyma!<>z&sC79)mNqDxi3(aas)bUGnnJD6Ue!DN<<$x?o zztaT)nX0k3kRBk<)DS=!x<@<9T@IQFK5-15o8z<|JwLq9m-9)*cfxUXl{t1c!85Bx^L34D( z#?S&OJP@+*jn;BGRaZXo4ACAUxB+54LRi%iw~mSqMxKxiOj3xOE?^6ugSbQaSr*Di zws7#HK1D~i(g3i(&HRS`{B7pHbT|Jt^M~*G|GWVCe?v43@$26P{7?pbu+4(i79*}W zw1(lDgj<$hal&d}Qt0N1Asr$TEX^Z2b)?@EI+N2->fk3ek*>(Y9yPhp*&(8`5H{XM zgm@kb{e^!=^hwkMx5o1=yV+-6i-A)S=4AB zZ+!SNXsHn$_2S4~jZ3;FwDY>FNL7Fw-l(LqsC{amm#YQVweh z$X&Xb1i6`nu!IvUABLBZR z;W=ad@0KkS|BnCuGkz{z|2rX}N=g1ST-s{L%hx9q@=R_HrU9|%5XNlH)F9NHE|umG zYskc`NVCZIbOmBrxwnvcoPZMzsgX7br7Au|eC~gH>i-fyzkC0;`os1=xfqQ2A7uZx z_fxH07lN_T0A*zbatt>5Bp*PGQQ#=l+gkvsr_)C2n zmZFK(YJos{%xeZjcef0FU`+sBa=+p#y59 z7O&;SfPWZ-6P(jDynz8!aTF?mw&iKc=z@HS4z+xdAO^141F`v1v#lZyhh2cY>4Gs4mDxjXUmHBoRr|zd((dmNQ-bA^C?*>%%u<9fm*9+t!o-Hbn-JSh z4=O=h1aaGD){lW)@O~vZgDt33F4Zzg%0jvhH%^-LsME5K*DkP<1b$ERWpx_B| zwpa#SNg>y0ZnO(FmJWCaiYEWJPx9aQQ`P%lq^fC&<5d;_D!>0*!liG_|4c|~{`dX= zXZ%<*&2%+oKwP%emEQZ8li8?YD)3UO;#h44EQZxjen}psmL1_)~F=l$=JCzb1heM;01sWE{d#0y~;$ILr&BEv}D|N3+h+9yr zJe%wCs{xsIbi43PB>t`@XnD>MZD_dxfF@N~sJ$C1tSU@lTnBxTBXWs~lS0Si9ty1A zVI^yr<8>?Kp#)0{@g0b-4a?5ahXMgeeBhUbJ-f|{kE2lSF-t;PxvGQ-W((^cpq7bVcq+Hk{% zA%=rh1Uv$1k1QHY4ZGCn#Pnm4lZAGV%U49Zcko~OMfNs?tnOI18FmjOX`sB@oW}U|6xoHN+pYtc48oa!16t5!5H%ke1{fFTRa(j;h$yZ&TNj3i zEclcOR16SV;QBf#ES4zF3N$Fr|LA{f_Cypifa3{%rsXN^ z`fA_$FjE+xMjm=BWtl{JDhZ?#u{S9^pwAFJApoP($ZQWM0wWoFq|UW(vSmo~)jQ0p z8fF#hhk-)M?o7Vynannp&&uu){ZXMn(2`cF7P$iavgHXu6ibuAJpXZv@W(8Gaegkj z7^2Rn^kUd`DNu=~sJPj~s_|iCKs-Z$)^eD{B*jY5a#+YsN^{b!F=Sdu^|s}&Lgo`) z9v48Ev4IP)PgPrabEwS?)m#PaeXKc{VMA{4zXBUs{_w@4;|;xfQVI=toC6YeIu2dB zdMimPl9%|uJ%?l%|M@9oj(4Be?Q)bFqT69&RIeML!eL5jrDsgT^l0;%3)R)^W*r^m zWa((cdM@mWa%uIj;lkr^@n$CdnSF>q4+LyYt(j@Pv(mE$rKdKv@%tHiqFFK+nuq{7 zqNKvJ?kV^!yBjP965!tkA<+|l9hx3O>xvG?lz<^0KfHs^aY(gN9&>K6>sKoIK zc~q9*8`~p-$U{*lD+4p^a$1DErkzRRBXK&xQi%_#2wUWVQU~r*k=d)L;#x*wg08dn z8n048Bm=!sOw_rPN=lhw$-(SGx=j|1Hl{V@7pjiblztBpc0f8VNkfrlf=lkf^GPkq zbT>(}D3nlb;`5pKmhZ~T2Pk~Pqh3G8`BRfOm1P+vIy*MSS(Hh}<@IFxT^@(aXLsX{ z`Cs4|lTh$N>x{u#qwxhj;t!~RVbKuIKg5DU8OJOW1eb4#mGbpGOW2f zWmxS?zBI;-NRh&9m4>B~X@O7Um@z2_subENNh=iCV1@+*PGk^@x|P=1L%I-o0Nb?6 zd6aBuahKZ{qKxsDY;*=LpM>9KGe=2tBP3$*SZD?t@^19+Y=X`hHX?`%?VdDJs2sAp3LpbaN+m3EHgs%Imvkw&Os$R#13Q=1kaH^dl2$oRDuGPiM@t`bjWW0v zTIkLUbi_HSwLk-lDSC6D$da*A>9oOrbf> zHf7JW`iHfEjTY6JFrCphw zU7SBUM#QGLG$gU(|CuwN6(NAo@}fXx8byfbeupx_>gn>ra01Fzl)Xdx0^>k7TF9d} zn&S9!%Bl&}-)0tl1bHe7c)`Zxz!Eg9;-kJ*27ExfOsS;K;*s7Q3E!jnh#dkpiGu9vl0T*=5VJYyI_z=>^;!w8 z#DvlZJ>6(oaFi}wc^+D8mk=$4B4c1b6%}+uksUIlQB1C|@rvmdvNc=~=VwDJUqA~u zj%LnZuMjFhpwdf!-~_X21#zTf+^mrUYV>YV^T|!^EKo{q!j%nvH&h5%_%n>f;@9mK zei_)>{uY1tb~EQ3BQRs z3i;Bd#?lvspe=_4QX^KhMXL^CcaEg>O0mYY*Nxj#^evXT`!v%PcyefUQaS7$taM@k zekITDcVhW;;n1aH(8uIK78(`2xkeupIv1qTa}BH12l^Se#xO^UjV>JXd22;b6|tst z6VOpn+XHtUX4(CD3Ykzc=%ANniv`<8dPWQvx5rjSZ)DQXmZ}NM9PdsSwWpaBxE!Ue zC#oR;6D)bD_-95Ap2 zcu;oJP(!6HnFip=CQPjb2*4o61DSa@Gi>U+%y~@Q;2L?Vu@UlCED;-mu0f}h>1!?= zRi>{QFoWYZgN_zKLnjDh-~9ICFdgHLR1_}BoN@n_YUmdjYE>{E`?zc-rA`s@h;PFV z5w7C!%f~{MZUe`9@wDX%xu)&t&0&9Wah_|K7O*FKm=#$+&|-z#nzZW$>nevcLE{YQ z?9l%sa}a8o!;U`Wy8rKt+SIslV{=+axL*33qhwX$5aNuiMcm(xu1`hnE`- zA0`y_G=)$DTZI!kCC!?U*e1J6=Pp!w=$n2|@6?pEp4sG68_l=kc=*L$*w@t8EqTy1 zdPLGQ6lluuV8n}BT1W=$Cwis!9twH%xORZxtECTQ>S}uPs2~%XMaTeAB8HWqE~`R@ zAuDNRQt4#Lfoe|om~i#s4QgwX9@GM%K^-UwAOf;8Wa(v-couKAP<9=CBz*8P{U5T> zhtqh35sTVD1qZ-n(`65F+sn%(XMsR44z@zD64ybPVb9=ol|8P(qtox%&^KyqC7m-wh#3vb#tqNg4eF)r8#b9@ zVpyPivLV+C*fRu6#>7w)S7gut4fVsrif{IgOQhhx29I>xcGkdzI)B|%O3Q|Chu9LpyQY=V< ze@C4kF4jRtn4F2EGbYhNVRKS_+?W9P9jkRr3Xh}T!$A417WxUZ%jYyl!EGBI++WOKSIKI^`NcXXje%3f;RjRZ zR|NT*AAB6MT+_xe?t#6aA)j+QFj-=cf^k}QKRtQztOIAD3COy{Z6kM8PmI%|etM`= z1N`YO-Y=(C<4L-b;2p$VF1bXrt zO;st>)C0^)O*?u!qj7wch{cRh50t0mr=>(*a(&tGDcxF0gBO9C{h{+>uofd1DzvdU z**fBObLk{tFHk(1YN0)Z6quojOth}Cj;gm%fkXOk>7H&MZ+M7BNOAENgQS4JSq4#P z(zLT3A|%2QqPcKQbQW@KEa0CQGnv_(%SV7tOr)VJEGSkO&A~#g3l?CR|AvaaLeroL zK;$6$U&Z41Z~Rmh|AQxcR~_|B`?*B@_oT#Dtqu4e2?;I#uK)h0{G{l0n@r7t(Um$d zg7Au}ga#H8E5uZ@ss-T5qkl~K_nN=A_In6)6H~fjCQ!!rD=bbbB{Q96DweVk?HCAo z4ix3)#&B60>o(>Ff^|w4i0VK(zyKtM(+pmW0q6P@s<{Ta2QM2uDxrNjwVvlVf}e`E z33Lz}MW~~8vs#3Ld~T83Y+wZ*GoF_dV8&=FTN-RFb&n|7&uwMxfX>gBvYhM`WFp2C0vxlUA%(*bTBDY3D;YukxVa~ADv5D z^6TLvyrdAuaEGD_JI9M)ce!*b$+XHqFCl!SlyZt%pv@t?!In6dPqp~crRv$-&gYsE zN*B?+nBv5#ag)b=vZnOL7vi5$3gm{>H4S(!C%%) z2r=zUX1SO;D#=uYSUKZa?)38XWlF}&qejTC0<4f+g?Unphkh*0PGW1Xd2kEuKAYhq zj2ERJYQikt=O$B6JC+h;IVc?LFc$ndD5esD5DP210I4m2xi26TOChLL7$wdI6XoeK zgewV0S&_#T1ZoYoAi{kO2fUH`MaztNZb*5fvhy`Up!5vp!BL=NIYef62$?BT&S4`w#h;6iPcnFv6{jo?D9AuWf0AW zehjh2Ft9L8qF>ISoNJfH59mnMP9LU8OWOp*4~?z4Dvgq@M>9~PMVB=1hS)b4 zG%gLqBXbV9^75fYB0zwY&yN*cQWmHvvN1?o903npJ8>l~OM{E$o3m#O7jUSOU~DA#@%} z0aPA`mxyG+97czO_*ozup=it|jfiFB5-0LefyY}+MRp>v0QNI&+ZEtEJw!kDVkO6{ z5}qG6WEfeVa9<{ynU<VEJJfaL zrsbXCDhPW@YuKJdcmfwE$fDXC;&cwWAS5dE6h)|nPzM_>lc*O=Hk$Ae#E64Lg@b_l z1GLix#o`bYDKl{(Gzn6gL1D6E1Y%k2ZZ2S=3J00Ap>J2FS{YksUPIIo=wJxykH; zNv4z^6uLRp*LgL@7%@uPWD5;M5?O2vWkmj1^)bOKR~o+lCGC*M>)RBCknO6KG;6J-RTc&XjfZd5xZ1)lZsH#@jf9-)aC?Jj0KMa) zF~$>fQC15M3cU~biNlCt_MZq70^UHuGCMnUQ16sp>0Oc&va|J)C9S(lL@vUz_+VPs zlzu(4vQgxdYv|GkJgzidqPMjD{`Lq~fh;DOVwrtbGp4qVHJEmh=qtK}mYA zljzrAYe^nJ|HU^^Af(I8rvwiT=J^gCJ(8}~vy@y)do_^&rx`~ zl{A7DE7C|$5z!-!A}Dk_xB;R#Rz|+i?t^K{w|nvwotaSIQYgx_7C{!Mfa!W!q>d?L=Ev9)?E`NE73UjE2Wbpl>xFu&t zi2w$s@wptRd4=i#O=+*Z8x#^i-x=~S#Nn8w$1qL;AC1FqIYZAnx6*d=dy9N(h?Y4R zM;<;vn(d~cbJ*}hn`|(Yq5QN~dNSzB6sH{uy@hCogIn6^6QrFi^m|iFJ^$9sVFyoHVr34sDvB28-O}Q4ljo~fJ{N9eGyN>WQFXI z_6USgVlcAQl$7BVOg+H9bU9_tLa8-mid3kvz!h&LHy6b6rGvSH@Oy}+Kq64#F;(@t z*kjNrjTvF`0#C@q3yJ~Da4(I$kb-O%(*QW!;6!MGx;m(sux&-IMwh=7Mf>D5{5{pq zW>)@6`knNmv)k(^;LZbJ9S2dPG3F8kMpUuz1&|n_k3y1)}s3+6f#lN=cv# z=v#f2T&+2=hzffg6Kovxaa7OzN-pV5e+?>v`|J#^Li&o-0V>nswp6tSnW%-I61vQ5 z7If0%FzHip^yRpSR86BC$#C^kNhe0X)1;{kwXr2` zAuyltbDHDm705;ubypJ>+7NAvOt zYKPPyJH3WnZE1#e=aDrt9%M0LNQlykZvmYkgSDY=(H5RPFAs>uOQ;;9kW6$DL{kWB zl~f`OY^rL$u7iX<(j{|;@W)exM-8W%r&vg_AG%^QqSOYMePL5#e^{7@$}1K*XtExU zK(Uzn`S7yA&>%FR2efQ#GTRD!k3ApDDiFeBnn4_OCzTC9&x?^GUQE5^>*RJ<#(PBh za(R-Ii4sR9PW#wqE6U>2$hrJkRn1C#ZfrK%C@_x4IzzE z%bwFt0TzuGdfP~AB1Nt_x%+`_EZ#ax#}_sDSd~mZ|MCeX^;1+bq5D@`33O|@F^~ih z9Dg_aYC8lJA>LPnyQcm+-A7{H?0f+Ff?=@uS^`b*cyP46y}0#Nyii3k0y*hMdm zLhtgkj|>IsAwloekd5#aaTDoBY$U@Iyr>E}aIkb}j+@pPcK_ zE~R08e+Tye;XhT5|7W5bj}W|^Jb=pM{}Wmzv}kFp|DBZ3^6&WnKjTNghf}zK-jyx$ zrGowc7bE*ag!UVpUUCiY%G6dC6~Uj!sB=&-1(0x9s#uu|(wyVWLwd4+Ke!Ppd4+2G zA(egDuhAxBZ>Yq^GjC zIz;&<5A*jerYtW8@YuEL8(@C5yICkVeoBr$ib4o81?@nnkbX*7@2E9Pqa`|^5du#F z2oT2hgj-L3nU|O*q6!n5xHyAQX7U@9Hh+Qao?^S-iJG19DGC-Y2S8ExufmeUnK&R4 zmAOBp$j2uVhD0N$WCjSGbPy~Gc_;>MtU|lbhrcKR2M^7Vl08Zpp9|+Oc)6)T7lihhOD1Z>NGN&IQAV>>9fu;TB)2!17(+*J7@ERmf_J_LgI zQz)8zFU6E`QtJm6Y-i=)1%{tQ%XsnzjTi>0II}q)Mq_+OKb$w!fC9rzK9Db>@R&9! zd4~qmpiv0GGXAYN4{dTV$c~$ET^>WHKw;tVSy+Dw`U7hbj|)Pb8yq)_n})f)ST#o} zmOKi)Ax{~bePIwo!s00!7sUJkf+XE}FnjtA1{aoMAON(NRt<7xqziM{@;TTD)!gyd z5L7g62==}f&c>6EBk;uti`hyQsequxr%Qi|F-*8zTL&dO5f> zD7*+pV~LB9;-6F0CV--3$VG)lk}}2^MR+2IBH=^}t%JkS&MCMYE`*VU9{gK?CC{G+WJOd@P%HSPI^C(!Ps^SmW%n}H2CHlo*Jg-|JF2W zaP!Gkz?#=?0uE6_!&$>3%Kweo{vX9`&(cA+1z%%%Ql_930WRH~wm4uPH0Kf7l{@gr zS;gw5k+%xDkZ(W+lt8}YIdrfgy~^b=2oSnA5IY6oyB&%XP-vLKL>{0W4-;I@-HCRO zoC{8FO*f|ZhCp4{%(mLzLZ?aiLyv}2hu^`hw2wB~u}1ei@E^b6WO(^l`7e5S(Z+P- z`Jz@ng?O=p3!! zDUv;BL1NjQQX~vRV>&IBoyr(|Op+&((CVgm(;*VC2th4ru#}0O9}Ei;H$kM-`?v!_OYTpCe#Vm-g8CfU}szWvks4vFlW)+-|`EjuMOwQuCGXt{SG z=tWU*=;$!7YfX(c=~~4Z2%^n~7}rr%u*^`DHXpItXk&GqkhwgYO?7f|YD!j0c2;_? zw2XdPq-$1ddPeW;wBD)F?Q|_tPhi+y-pLm-n_`|uMdm49moJ;KKsNA7c1~$Fh|-Zk zQ>FE5Xiq4p1fhq<=h;q16n^HTWOk6+5U=N4;`QKBN4GPutJD)R z9~x!jtc07zJK-(40mFO$9rl;zx+<&|ykKMLX;0M>lQ_wll@LvL`HI`eqeG~K1_oc9 zyACiMi&WKQyso&LjzLv0*;MuB1^}Z%%j_hlb)d*YE~#Ww3PxZVF1~=cq|JF??=okA z)XnULBD<58mgY2z6}JOS9;AE2y)Mt4)P3vq7ZuXjEfm~yY3Whs#WYFINHo|nNPUl5 zjNQkf5vISLwf_S@Rrdda zXlZu@z|?-Z7;u&Qf19^%k(gk_e@kkW^tb=_&-h89Y8seT<5JifYvpc*bEc}GZ$=-a zQ&AlN=)>KF3^dpbzCu;9GVvCu?ieF2*@4Hc$c37_8ym5fuIR7(U)IW_mowiq^>+~TLN`_PMZ z&!j0>S&|Koeo608DIAfxaA_2$7{3@QPv)V0fv$=OZPfh+@mrtzQneS^8`P@_Bp|1W ze@mKjV|aWN*zr9uf6*LCiTQ*ve9WnkOV_FLUdXAW7A|wZ-ON1A=2Rue1%=K1=6*Ru zUMq?fphkR{NIs{Ozrl<_cAqv8S|2H9FZ;{rUqJO=m}jAPZY9s|C?%S;^qS2a#j%NP zPFpmMAj9Hk+>+E)s`)N04hl~!r;f!!8mAUBg;^{p1F54D2dt86(K!nY*g+mXQw+~8 z6nTmtrNirQ@R_1?=$L)raMd(nZ3Mfz0)feQCF>i z??do`yA{7psx6^I9RQQFSe}qvBs0I9yv8Snw7?HFX~mEs99oj8Xe1j)Vxe!V;ra#h zh^L2qR!FdKm3sB$oz9*Y?k;ie$bDs}j3|AofV+i0CpySO3qwF)8PoJpnc*J}G34wI zBg&Y;`8~u!euinjaLvokEFf_pGJ;)-xySLT5S=v?ApkAT1V<>iw?!v0FEec12zdda zEfqfbFlghw5i5>7jVz5-XA4fF6zt-~zKZH~<3VM_R;Qed8VW{p^Kb{|?GCcEiH2zi zj-LYeg~C14y{5mx$U9OI`G6h#xdNfa?JD4l7#X(zp<);eecinW~5|FRHCJj3<=Td z(wmX65(K_Tb@M_CA-D%=2$iP_VEpWsp)~D+jKyS#@YVJ=xB1er`VzANn?4NooF+`j z2?R))@eTr5g<+g9!_fG~Tsh-h{<7iZW@cEkj2sY})6}qx#`3Gsn~RJ`|4oduJ20dt zUKjgwX?Bl}{ZEXPv(aB-w22|NOBBc)0+x~`rZOuIh&~7qO6$Mi={XVvc`D>F;hg#v zpfa)Z!w9O7WKvmE!dh*-OX z6tCS+`TS^yV_tLT!==uo9X$>eR#k+n85i3U!fB%c-e2PKhC_t3&fXGvVYyTQq|fjx zgU?FHQCa>vQUE>{G&PiRyb^H4+kGIHCB}<^FrXh~<92@=oi6XEs`ejDil(u`mt6wj z684{@R!PSA|AeGgf8+oEDL;BiGfP`#b0&azx_<}Sf9MPW*q&8S5`d@wm^=ZX^m|hU zf)fQAH#Vc4gUu71=!&2D7(~1&3lQhSI zl#1_ihyd_~AmQtX@zgY!hv%o^utLodA7QfDCU=MhFlgj$7ISA-0~FR+ypOI)Iz5I7 zp#bG(o9L_!;BFC75ASOhok|}Mu2SZMBOpH0jBjMH(zKX*-q}&rF1avfj7_dkw zX(nrH5QnJ7Lih`_0%;X*WaxEnMLznRbPQp5G_(*)liG>k$)2PU?1A7GV})5P4f7H6Wr8#$PrNEOCA}+s zDlBsxI|^YrfMLrMPX^TK>#{hVF+`3`g%`x{_GkS|+c_(e+5Mu$Jw(u> zIwIK+3lX7s$Y&9~Tr_QjMovd)0STH|A3?oAsI7z}1Baj8=Tq!>(4k5O0hk!7Oi62} z6e~972j^SE0;n{rUs`$y2xbY|hzU=T-~{#owFv<+7uHDQr!$I7pvdXuCQKg(1a^9q z;^xzE;@M({TH?^lE6r9m8LI-1WYNp21PxBbDx{JzZJq3S2!sG6B5@3{6#*R?3pF#R z8(U+xGGk-WIIb2I68X$EiXJ9DdjRg9N)9DJa=}v}1Q)}pk`Qij<-KE02+bWpAhAjW z5<{>FyCaQm)ntXd)o^bL41p ztPo2RUEE>XCLF7jU=>jzga~*=yUc2OY zz~-eF(Bp;q@9p&iGOSXd!ushAU=dC`Jd#RiYmZ#c5(hVtc;Ha* zPb;PXA9xN=R&8&D`pb7~rLT{y*3MtFr$3XH?(iGQ?%Ce_}$* zgrvXM|IhgOUF%PzI7I;r)Ic0}Q}{f2VcV$G{+F1P)V!53{;O5%mVe`a{3$;ZGkbTd zWx5saq+03SQ~Oq{cIEPF)vk)Wwg&m+@eAi>RI7IFE?1W>ndx1+Kz2A>{MD+J?40~u z&GuOZjW$&*-|@k^+(rdwIyBw!?6QZN%xRc=SIm$u&t(O?byw}`yx`Zq_uhHW>6lOY zZGE-LoV5BM4}RL&`PxrA^yphQcJ#5a9cQ;VSUhXX^9N@fJb$rMi`vyX#hD`_9=x{N z9DASG+Sd$up=?y6TZ^03Nx8OqO7+cG{q)p7l02Tzj&C?~BD&7!ryRoq3!l28?MIut z?EEM?x9H~uYoD9>K*gTw13$d#ifdaonRLzfJF0(rf62WQf1E!5(WoZp=RAMMZSUOe zul{t=z*%>U?EYEmGFzQllRm%g(S!H2?Dpk^&yOWldop!HgBLec`*2vbq0e2P+vN89 z9_!e8+8yt9K04={I|mV_yzQ3R$rGKmre0nCLcxYTWn5N8dj_yqa&`6`Sw)(f7|SBibx) z`{C%7S7mMdV%74O*Ef%-Gx>`0qqojJIIU~vJG$TfTY8hk=il47@zV{TZ0dI4<~sH3 z-gMJHZmc)$$*F_QagCcrE_tcDwQv7^*6jInUVC-X+y!~Ie5ZTahk+Aym%sYsC$X`M z78V{kJZ*_@;9DPW{bI?SGy?VIz)Py1fo_sM|8<@0{ndHRcG%T7MFrHVfw|{lv_}2ZAaT&8$uIw;+_wKFd_9+93GrZXq3$|V5t+D5ZTI(Cx z$2YjWVMUvS)2>muXIfnIV>MfKU-fIRs{X*WrYq*&mveU;bAzc<`_-v)Yt*&FI*c7V zVTn1jZvStRPBm#>-xD<{K5ERxb&n)$iZDHNqSoXkZN^=^bIPeUwXfgw?1BbQw7oUz z@ij#aCgwg~{ewAIy?S5g26xw4+whK*nlDvb_gSMW?yI}E>+ot#@4K^3=Q@w(6y0~z zmG{;h7(IXfxab-SZ~b+t|DA-rSKpuYV6A)hU1wSw)BL8W>!;Ru;Ho+I@4LIyc6XhK zA)V{o)u8@^9}kF)ns)5nmmYfH>GX;xuD>^`WM+LwzrKSXzWc2~{VsMp^4;juwI+W$ zWmfyb(Yw#RykOOMoA0L%qYv-@s%7%{F>lYE{7L=24_<%Yw!ZhZI$bR~zS>Q@YdpF6 z8ehF?$6H?Y^2oY%Ud_1T&TnoX(kXRJ;T1Pudtd$e_uV;g!ZpqByyJ^Gb%xKmrcL#< z2X4Icz9&;x-<^L~&$_PE$eimFrk#B>waG2dOn>E>SGp!XxnvTxuow2yjtXIv8kFSZCdDq+k8C-e*OhnSB>zP8pKFIA!bVCC@Lu zaem<|T|Rex9rs0#Z^~M~(Q<05841H%uT!3WJAZa`!O}f-^WOj0%C`cR zq2`G8?Y@uQz?SKC9@h!@rz9I$Tf)nA`n)vjRi zcj>R6TD+}b@959>WSwZfe?-o8Z-4#$^ZnNhyyoD>%mLOdlh>^su)fxVwHDv9?DlVN z`M%q@4liu#5&2o~rahO;Ua{BL{Cty_9%wTE-5g)ax5w^}o&WH-E1!Mi+7siZXZC6k zIlSI2@5km`lm5h;PfhJ|Ym*nBtoLE<5BJwEy{G!C5BGSk*<%YP4w<%V%K2(#&8J+G zaZCKUO-YaMfADL+9et=-%LiK}x4iDneQ(}g^h03#zlu*UJH7w>|rabd4Hc}I47;-6Uc-l%4?tLTed*~*GFBj-2Xy(Ew@>Xp$io-bR!@|Miorr#3V=&?JJ z#&&ww(&)RkD@S}g@`1c%=d2%Ge`@*nt;^RhuP8fOkuz@h`L(AjejfV%(II4n?%hp3{q(uqma7gtU8CK#kJS0Wc15ijPc<9;!@^0o zCDo~M{VUUIUQuV_&^7nRopk*=rR&AKxW{gpbmZdU_ZsgT_~L{I=H@4T*n39$^6P3( z-hRhM=g*(_e`xFJKz`R6H9q)h?AbeRKA&B`#)pBlFF*aTaYd`6v&Xq6tXa}{YfiN* z95vHZQ?g2S9=>?p(5!85RZKZwG4ohi*~OX1es1M@ai#0US6ubJoD{j};14@nZhdn5 z^t&GW@%5+Q@6lv%uO?lGtWACQy4G{dQPm%4P<=(obrJVAc(l8tNsTL0*4}4+)c#}h zAMShh%;$mO9V;#_e0$p)d0RHmx+V4YAI=>gb?@@&ZHS7Ny6vikpXN^Zdbr}?Ki8QW zcl>%n+=&I%1|9gc+u@O;r{p{^?$gA!zP;6Um+Y_g?f8m|tIK~o^iZD{cF!%m7`?sx z;`ybSZOflJe{|E7_2b@tmA#=vi!%N7tOf%=`)kr&yimmo`@OI?8Jiimfl%? zdCk<-Z@#;^@rzGBdEc62|GF-t{mH23;)XuD>gi{mn$zIbpF8aAdcJz!>8(zjIQ!{` zPfbrsuAY9~O*zjzojogOeAX8&rncV{wJU%2-6tO(aHe8P#Q;-4tiRdX?SK1e?!fs| zPKPP#vOG-+ba>w9({o`IX+qch~ zJ#N&%&I_MDlfQJth_l~MZoTi>d9&aBY~iXt6@6~pxn;)vD^}bX`TByTT}r*rEj!X* znce2<`fneYyXwL11KVGi@ZuXe`<9o)pD%1VZs^r7J{>v8QS@v{{NNooot)4pXR?3X z_>+(KJGu72HLLdSNZ+#WNH6dHxi7@DoL#u_`Q>@X`xLfXHnnWli@)CHDKC$E^i+$C zq?L1QU#F!vXyI<~uq!FI_YE)9I)B@qX%E+Q++{A@Gh$lVi=8%ac)Vu4=Ju|2U$3?4 z&2h`DJCbTxZ#w8Y*UFstS@q4O3%;G=U-9y+UTZs+Vpa z+v1Jo|N7clQR71NsE1or*f$(~r(xS;hkj{wwe_Dp->v@YIBV|al%2Eh`EF<0kI$TX zc-icgOa4{S@X@h{GUj`3n04sFxX*I>d=PEDEC0Z46KblvJ9l~G^hXazd^>08l#OYd z&Yk+`gQV_9zI{vGzRKGuu|Sh z&HC~K-Se(kd&_}y?`Krp-s6td4bShHG2!9wy!+R8v^@N_XMN83)E9QQJO1O))D9)_ zv&whO+}9wxba&~&nXA2r$4+09YgzWm?yjz}|0o|beEl1VP2c{0@2=@{-D{359ldeg zx|2>vL(?~X-%7df+uNUUyx}P?_P=L) z`M}g3yPun0^VY1cbM9SRY)UZY@BYVuEqP1s=u=i}!{gIyy>VOnM;A?u3G7~#zpBjf zOY#1W$$O?p4cxtF(z&ueZ{4-wiyulW%B+!-+8=Dr-|2fsOL+r*?UrqX~Rc?)(oSZr<@;j0-~!d z$DaLi$+*eOChk9e@Mn9Q_7|_-_+Dm0p=tMv&3n5itvS@O{ke-TE*-NYaml%-7WF?l zW7Mh1+Y`>+aoglkb$Sh&vhVPZd-ffEF7lxjKX!WJgU#JWwEQi_J$p?2j}>Qg7oK@? z-tOI5CogSadzu9B6-hX{x&4F(hU-|O0zrJ^5%HDHtUUTA| zwWEE9hP8G)Z^;;YZu8Cwt4^IMC_JBDYv;<_TC^?SKlJ-(>-UH6b-%Xt_UxyBdT__+ zgWheom;K|%9<_g-yI@4$wZ(N4%3{vP?b$Wu(J z)ou7&^A6r|`pIMIO&+^YckAKrFGTkEYUIS|wu^ooKPvu?rax5-vwXICX2pYpmrSoa zt*q>W2On$yaI;OTe;i*UGGkWKqKfCgj2!XXo1XJOfB9L(Sdini*HZ|-_)=o1509y-*usKbbtw>BAHd)Koo*9~y3Ixu?5EhjrUK76s$ z`n5AxU9*3rsomJK-#_xuBP&*}ylK&*MejXx&xBQ*A3rl^?9UC7pF25ldG6#b>J4)z zY<7RUq|y5iG^(iHaQv^0>+c@f?Bk>B>OFGDxf{#dpRuo9GH~PE^__PND}MQ>O{*df ze$&YQZegc)t?S2q*mBFy_sps}ciiI}PI)%H*01$TMMrAoZ~5)c@`4S%?MXL0a{5T4 zeM5h#)#gU^svEYfzy103=O+3$FX?q^%ui2Ub7J|;N8kDB>rNkhIcQHxNqKR?_)Wgp zs0(d(mz3pAU$3^wExg!q)<@+xblq4!@Nkb!XJ7BsaMudYrn1<2@0|Xv-6Ly{E+2nm z%I77oywdHlv6~_fA8R+RBIZWtv8KM64=%gw^u>plRXN(N7QlaoE?rjvjgW>w+D# zGTtn^!I5jjsRF8aQ~?*(u_+u`3EUZ0eR%5xJ=2;{9_! zTh?aL&vkOG=OUZFGNY%<}FqoeW$ z?K$&chxr|UU3p*M748MTfrlC{s&)R^wZ}Ft`?Y>g|H_R`+#SDtsc=u@Ck_>iUOp0T z-lVzB@49tCR#w)7zx*=%z%_?z&PXo$*hQEukZ>_+=d>s0IHGHR{K>X+53hLh&3886 z@%GUdyT5%TZ+nXio1)eq>^-K<$od^i$F+ZA{jb;ej_Thjx_-YYkL=x2R^IN+cOzch zUVQlUp2Sa2J$r0?y|fnNANw+4Ps*m>4vi?Ex$E=gM?4o69p83#_II`SdDk3$_o20o z_Ah_jySL|i#Ye`nw9eQ&K=|Hz=L_iTKxL#K_8O<3Rc@a%4P z9^Eo`>B-Npdi2|h78g9{ixZk29R2aSP8-U`ovVc`(8@dSo_^gMn`f>xr9C_E`txh2 zxZWJQvuo2~uN`UE@L0jFLs$Pgx!X5gZ*)F)Nvt-*# zOQQDrXT|io>0GB}AMaW^eD{XNrlEUAr(XT-;M$wMx@nRBy={jd9FsNk=&t@t-aY*K z#o?pZX1`Qk(Y^C)+tksoZ!7ONC2CWL2Zo&%z&| z4-ZQ_H$7?Sd;6O>kL-M?-!m4@|%Ez`%Pd=5#;OFz$33`KWC2_I^)3-tEnCO+PDsz57Fh z3df(KoUrE5;x$jc@IuUcHFl4$7<*fXQS}>*{q?Dn=N8rN>Ke6W*ZIKpxA!Q`ym#Ga ztrx!a)-AbbE^J$O|ApBX>K~i(uSP|4)~9^=YkL0p!kZ3{pZ>^aA6~nC_u1PAXU}?| zUcE*ewr(wJT=B$g+tdEX2hEyvbnPA8>K}hI?_!FiqW&3ATOFTVg z&DNI+&zEd^ao^jWo@@DN#h&x~PwlH{T|7Rve95jgeed49d&-^-vB~3xKXI~rbc1=X z96ZwIv9f(PPH(ubZc)Vg$7$5#cyZ*vSNQ(*`s5Mx3zMV zy*NC1-YZw$c;k)RZ_Owytv&Lq(+3g`pDSuJ=k_(lP47RRHFd`4AOEYY*TM3lH3Nok zo3nU{W%Pi54Q)90$gtOj?f<@P@2t^B`}|Tg#Xs!)6Y+yu_gfVCY?mF+ol2Q7di2-} z2~Vt>)_7;?tZs1!+Z;YS@Vj|)n%w(Cz4%YIzA@mP*Ow2C9671tU}1+}Hkak^Za-r4 zzaFcXbH2mBE`GX;h|O`^5APm*Y-77)YbVt1bfM0sDUG^Wt@S>e(YEp0`M=&%E#~dl zr+(v|ORt8PMnAjcRIPS#``%c)YeDVyk3Nunp?afE7u)Q-x8{a(4=vf}Z8mM+v5Czd zy13=_)+eTQTKm|ULGds5-Z5|Q&BeA^zzxl2l~(K5XVw1B?~dO)TbVoJ#81_SE}Z?u zq*}{IEIm=Yy2M|@GVa%@+s|y9Sv+Utfg=M?&qN*bRr$;tk59W2UV= z^wz@BFTWOhXUVGFLppSPzhLl=51QWYE1Vs-^s|DDY|C$_9`)~b#Lhd~{`9fO95WC2 z%d-z{USEFq!VlH&SH^58U$>L4@VSGtHx2Q=-L(CpmYI{Dn{)BPsV!S~?P_*!MS0o! zNdv|X_V5K>J7%VLV3#geZH_IkJ^r1C+l_m$UVMisi#x4-c*}secMraH;%v8(G386| ztTlVdkO^BHyHksQD9E3YT=UrV75}I^)v@{H(1sVUxoz;6#^rt6n4YLT`@M};>xqqT zZM$zv#QjIp&c1ghd0qaD8k@Rh?0;`}pR>!Cd56DQI&0E^@+;=L=t%H*f!u;@uxS5Lq+kXxH*?wa%`Ny62VRZ=yF1{;kG@ z@5+B^7qR~3`D<=8PkL`tM8%YU6qPmq_U+XlE?G9_P3z3)JKJA;snPjHn|8&=99%bc z=}6163D?eB78`Z^(3t0@N2dKh%H9Gf&TNYo#@!{j1VRYz5Zr=<#sUO)X&|_}Yw!eX z+$A_P?yilyC%C%=|H<6BGjm`4Z)RRsx>7~K*XL|s>+F462Sq61k~p|9n@>3EQmLH! z#uc=%{)6yCep+~ZE#Va-W4_ygW9#;Ub7O7(*`fA#HH*Y^!1hoJ&{NO3Oa4wWl6_;VTXK%b#iWT6)ZfK3?`ht#hBNdD9Q7s;}EGD4u>IKHiM_tgZEg=S$v=wf-5lA%uYz)e~QF-Yq-uL-rlI;Lf?15Gkos*bvyQ4N`KxD z@w6Zz>FpfJ=jaNU3`+987~fAN-B~`&y|q_r6;+may(~XnHVMxK=I4U_$<&_^w#r7{ z+07fMd?XXw%BF=ID`75^__0R|H+4|xB$)rH&%Sb$1G%S=UYohyL<--EKZ1u7l(%la z+PMkGH}rufszX;(ivi+#g;h8 zeL#dq!T)UVBxW_ffqbmKWJ3lmceTn|I;H0<&0rAIQ&8@+dSrQ7x|nAOS;?ej*0G#71_ zKZIh&pZgT*Og8X_#5bd!!fkrpX~&IM*6_nMuL$xyhZ1~hgZzau2M)}i%mvQ(%eS>t zXCzlABy&XI`rvVrCN0uK9A=aJ?+eTiZZ&Y zVQIf%<$#rIr&a^JL=j2aQ)9fQnE0v}KBRVt^1~@XM-j&NhYBR8Zg$W@t4(B2U?bcS z)4c4>>++YE1j4w_xNhYv)~z)y-5&y9w^nT;@OZm>d>Y+Ws#GWdPw>?6;_0Uc zZ#5pYSt>UqHu?kx(nj0}`#~N)>2i6fHf$a)3(W2(-3+`bwOg+9w17EcPj&E!Ozx{{ z3jR?hv6yz(SerIcd(7-$zMp(1=eou1#oy{Hx5=eDM7KCJebhN~y^3$;HG3~N;$?C5 z>O1#l%OVg+|1_)Lb>C`4k=}shP;)!7s{3ujLRY>q0j@ke&P%8K(5kU&wEIeC_93z5 z?hD0XZ*T7lOGz*eR^Y^B^FS=^`nK>BuXW?@>m~akre{CDziWGHdK(;-C$NErm@dnH zP+`;;)sZ;vshjleoBG4lTT72!UeZXN;Dl7i>P?euK5uyEVI=W;@cL;&73Sf-OZu(_ zcAXig^Jb*vq12BG??%#EhYy9tNs()5(Uf)?p>wn`0<)$iJwrnjl2cc!ncvq}v$C0p zDLfmA`7Ly%AV;f)&Ii;e{kIvkze=tmOuL;i57*l1^+@8t@IKg8eAxnYJBdmd|D z{xBd_+Iv{Z>MCq8G%4x%(G_y~Bjh9O*Vzym-4IM4*ZCniE2p1bnwL)tm_59A)4-2D zIQq9+N0_h>Q_5d4@6bLOPLB67L0H-SOY8^vWg3I&3%VFTxaIEXopJcQv$G*g>nJQm0E*O>O&P z;+6vyW*A7>Qt4RIwoRm}tPHDgb=pVK)FPEMIbra0srR&5`^fyEx~{o-vtU$NOK+A& zVPR|ERbf#uezM^rpIO0Yuy4_g-)8%;*~_<1ttF%m=WFG;B7Pm_uOBTtHVOBk#o|ui zT2#}+GI4BqrWWMxwuqb)Mf`_v{PluQM2}@)t@wkiMdv1|1r8Jc$OKn{p2jq|S>F6vrxs(%@ zC{QjgE{6Z&qSxYq`Pnz7iwg_-HJano(?M;Im*s{eEfdbc8r;9XYKuSN$!CVlj|xAL zKK<+yKB;Sa817*JEFwFaFFxImJ|ST;cQO7+H`jdqic<;I8H7pzS0V$V$+3k!8^o!f za9+3?^?6i2xL$pFSVaT>A%PB9u={99*N^tA!^NI8O}H{VO_5{0X4ek~;%v2l`90Cy zq&#T-=W>`8gN!e5ROn7N@CDX)@6#RvL;gQMUQ4l^u?IqIz)eLZ)_yR=(iRaFg@G*& zUDqklJow9j4#3gAZXD& zRF-DnN~1nL1Lw8w&xZ8O#P>a{L%qMhUZ}7ZUqh^y>OZ)eT(a^5A%wZPxfP}f|5X>$ zTZ07EtBF3ygl{?6bQC4JBz4$V@GpBq1YcfWTC)O9WLOyrw!Xr)6aHllD8Ohk{w;Q> z2wn3mxZNZg+jwP%Q%i(D|C)#c5dIpgdO}6JKq14q4C-|k+8oDU7MHKb`Q!fP+|0~O z9~!`Eo`}z0weVYcwPJqvLRI&k*#-Awtt_`h2wTqk1#*y*MMeD-{BdP+ZW{x$Vox zYa5sK-U9m*icv|U&W$AXT1%qG`)y%V7A7XUp+Cjw{PD2e57w}!e6=MxQ0rJX#6WoQ zvjHZa(VPw7v^)z$x)D<-(uXu@t$kcjXq zmW=Rf|ACOZj8qTh4vJ@_tn&okiLl|~?NMY=-vgNE$IUnJm(Canvfy6rk+0{q*PM5c=20cReM=ovRqN1WFod@7i zp?yo&KObo>ujkIEZg8dGbBp_UNbBZmyYk`P;oI=dCZQgSl+hn$JCm-AJz?)t9>eA( z+DY=-v&GvFN;3@hroQ!$j$-P9yta}|PdZUqkkZpz4+Skdu6Tz=<8(Atg~Ks%4U1ACS?tD=o1!*(;TPP zavrCd6;S!Q8%9B4&SX=wxHGYgB zwB=7cbr)@up68HNknTR{hW&Q4Ozip8I+g zJ5VvUc>QKj_KSWc2$yt1Jqrj-kgxk7%V(ee%dS$%eH|;h4zm4K;f?uY^4l#tq4{6u z*R99P#{gp0BGsIPhs30wDfOV_9x8&mwN956-r<_w&Fy!M~R$W`aVDri55 zH9vHvD<>&GhE^s2U<3q@(wFxkLPPBP{-Rd$ImfX+$QJj@(y8EF9EP>41y=4GM&15H zv2JoFzOq~+5y^0r8c|H}dS5g_?EP1}KR?jnc4AWWIB9t<5HC4--xqycf{ZZM@kK0; zvw<~sMK!5(A^ZeBNKS|wN#FSy#v96Wvi~1?+c9t!$Nh?_j@{H3wi%=v5oOacsgVY% z>GG36^aIgT)?kMglf$tB&a(t>He%QQPZM$mMXKm?d)qXrLt75WGmuBv^mLanL*~3c zFq!}ud}-2QRMpUNKwfK~X;TUO{^ySqp8xp4OO<-&4Qo?&Az8Rf_4*@7RUm2Qb7HM` z6cTEMtlxb7di&X+C={5pfrU$;#s2@;I0Z0fIgsnl{3H>72*t|vO)EYwyKvXgBAL26 zN=YHYR|QzMngA%ExuIUw>f=@2|C-5#{^z7fmRhRD{@`(BCRgS=4#tj76A;5~~w|*BWPJxZLj>N&m$1g9$_b0IxcfhSE z`zRw3m%yKX%UQr8NOr;6w2L;QSt3neX|S1&5h2G*yOrc+buIC(rCiJsxKF9UY4D85 zMtZmZvdmCU=;iXGCw$2$($7EY(EG02d~mH>PZ2x4PtuNm)N1)eWZZ8Q7~U0zNWy#R z9JStAe^^PeZj_kXl*}VHj%)o`jCx3&#l2&|T@Jr5V689_fs&*Y1+QEE%?~`(4sTqc=FL@$vFjT zQNIw??|{YU1^`_?>+|5Q?el;xf488fv!A(owY*Y-qwBQA#%mVYjmPJ1 zv3_%lGaU`=Z}zbO&ugdnuz@$DT9F5`$=jT=XAA`EdYzrz(y3KeR@v&!A!y(T$(&Z~(zL?U%L3-bE2{ zNH+h);1H8r_sg16u^0@F)m$*7cDk;OCe|_6Z$29Z$zdLX%@u?gYsZCNUN6&K6|BEn z`WkZnj6rVjONRp5ys?CTb`0;`#M@)puDbP+)gO=O@$HLkzTm!MBk*v)P#17tHLEOd zC5Nk7{n^W7Hz~&hj}Kv1)OUX9z$jtZ7x|ipI|`g^x25~_gPR$iJqtW=U>vkid)H+My#0Jkpgzvwc zB)Xqu9Hk_*aFa$ZmP(V zkumh5s_h36v`Y}A>IozyyVrK|X>pOsBC(3)cbBr86Z z5QsKln+dvENRY){z07R+vA^1V{ahq}_x($()`T2H3~yK3vS2yDN%KQ*XySvc2w$-R zB%v4ox|rPK=5u*db!cdkjuhHxi*5$oG|7`jvLl%fW%kq$?dM<^ASqCl^kYba`}VfgI8w^||j3D3g-I^J6G;P>23ZK8Fl) zu(?Q3H2pFsIWaHR8#RVZ>ztqL)pGeg$ zv1d9pY^Qs`=_`@t^30I*%h<+m;&I=wm84#QTxnwU8T?ddM1#qsGxPim)C7Utb;#y< z+^^!tzSeR_$O$oQB}G14nj3tKBU-=Nhb(7B2nRrt;7X<-BZ-fsyyc4cxyFn%Ewd#O zD}bns@av`WSL@x#N;ul{t+<(@K3)_E|4>MosPqIDjv5s}JmvV0J!O$Em1>hX((V-R zAnCUe=0Yo1MEw^WU{j0jWV*8H={=6$>#pJy?~N}~-TEvFlne$5zVet=a3vEn%;|3! zEe1GTO{ZUNlqnjh!juYah)@K$A1_}cW92qzBW5$JMBC6SzR!YpkD10)<#0Eo>Hg}X zk$=frjHu~F%Cvc0(iO?`?Ij}5lC6^p2~_Mt`c?RSl3(_(9P$Pz>yA}RQ^BJg`6blclB)6K|h?fsaob;pfij~$| z@q!7z={Uspwy*ASj(3jXB1;G}7fu7&59TLlOgvO^$ec^;$8&h_#au>&eoXs$u+1_n zrBlOmogY*Xx0iX{FB5|=a@0Wrxcs__&nKC;(cLWaS}ht#bC{Vh^N`;yXk{zH!B=MVnRJAPmn+Wq1? z6;KK;GbRFNX}TQAf$xR6kJ@>EsvILTp4lGU%24||ucy5Snw&2QDbPI4AI1sxtz!3i zPvnHm&mtBs1G8jib&s1pYi?!r+T?_KZ)e+Hpi+Q>2weR&=+~211%tb1 z`}pJ@70Tr+rhTubKV$M{Ie)djElaU({h0dnDUd|^_X>pHFuYW~YBCIQU5kya7?q<| zubU)K#E~Y(6-8aAht=Y1dLV2hx1)a33kCwnYkt~dVe#|cby$U$3%q8dj#teF zzLVgUT(zt1_QIg*9W+?RTT9R7DE0uM$BR|V3trzDfYojZw9=EX;Gos1H2P0P@TS1# z@lmd`_zjSG%r8TzRRyz(T~f7^(XTjgUeJ6p2>Uw<(v-fc{4$LxA}AM?i!zf2D(?j9 ztm>+cnaBHDvOrB06Fe!NLlF65i5FCE^g`oq zuJS63URYFI99CZCfvBOfJk%&7>?ie#@(O{QYHP^l7X@=Sp`f|CI>WoI!?|1MxU(mQ zx%zS#T6s=-)u81ho4rBaW%v<$y)VbY(RJaEB?mrYsn@ZCus@BumAy>74FoOuD3=9w z^sXDsrmP$|w;HPl7;MzsF4sn!%*8dh)y@vB=1LCFVWJ$HY>s)qSQIA0fE%!1&+gEb z3@$~aX}N@5Wg9tQ-fL9Po~~15NmpkrJ>l!LF1y|Z6;uE{zRlETWIB4#>)LKT1=eH4 z9RtU=%0oS)DQvK2v!qjpnxC3+?zm-yi}1a+->oB0d8^RhMnQx>J*cY8-+F&^%y7jd z;mKdaH@Q6+<#kNBqh?*tu@GIT#;XdvIQi{hV-74hIsU>U&^J-v8PrlY>J8MkSfVTgJBMsA@?Fe?=6k*P!{MNJ$vyVg=#Ie3TNzf_hAxDjX} zy9~2_B8X{d65EhE)bcRS0JI?73bp^La2MV`tr4_gQ36nrce+p`C;_iU6DVW!6MW-E z5@a!}BtbN>zqk$evyqABiidBg=(>|0CeJajJQ^41q^kj4iBgTz{}unWoXF$XzSP&E zs_y1AV=|bBoI3T;a)__hkelcY5a#97!5IiX8kHqu!69o}Y%k9_nwyvXg7VtKK2hFq zVkz?@=_hQd=Y-3a!^W@NzOTEcJ+Znw@t=FbCv`ak!KM({NR~$zTw9@=3Un9oDK_r8 zeOX0b?$yQA9ZT<}va@ypeH=U=Tr@jZ@(o@tuIB5_9^RZvE2JNk*kE9J+d<27ZDkD1 zr{X@t*GZA>esu7H-`lMgJ@yo=+H%t&X@oIfZ6L;af7g7%El^X&1G@BXxi~y-X-Oxz zYg^NNtpMG%{4sQF@c5jM^I+!I*JEDxZlvKs#!dTt)~d&EnYP)5TncqY;P`N^t?O#E z)w8yBLM?p>*DEdCu6Q9m#bS8qr+*(eX0DG=Xn$$zUiPNK!;HaWgB_>!$Dzyvj}ZWc z4PzMD$sN?MU}nMa5OC}{${RGznMM%1l@Jfx+MUS)fB&lgx$UUZkIjVMLLq-sQsVKVogI2>oc_b9Ktx!Td2-;Bd+}g12`yn^;O9I8wVWG2Sf2 zYLI4%$Us;vbqQl~KmvZkrSEq8YudwKS=3K8u1St!sv>YwHX*XTvZDm_Pjq#3Z zBlO-Nbg`Ht-^K@yK7L%KxLw$@BGXp(xLs^pUKH?syjkR`xG5Qep&4Zz29&Q(|H!j} zoX+Z=A5_17y`ZXCF@hW{cyyC1GsSt2H=rK0d8OBRSnag6~iyH$%%o`pJ@%O?m2C8MCHid=WO~kW^@{ zRmROGe?K!j=(xV!^7{19aIj={<)%Ac%YrBT+Gud3A>t~-D6nvaL;YH_5C#G8VS3kg z{+erZ$vtKzIWMG8-ttDg@QuS3qL;UNh*id08)-8fVowp#(WD1g`PtXSGEQa_TH#45 z+8l)_T-Msq(XssD^vSnI~%SCy(KvU1F8E6c17-@Ad zmO@KUX@!!A^rGceO9;w4CKZi_QaroZ5-iHc_3j1j#krc9i~HHTaQkN;-7o%kQ)Z-sY_P0}NVM zSK82Z?5{cqIrfo(my)`2PFU0E@;TG}5t4U=a?Bqs5Wvj38tC$utNL>f7^+J z2L-w+HgCKqEtDo+bzy#J<@7brXMj9vYk(c^97_)XD64bfRGX9aQ&(3R`Q5XUWWS0*=4ziY9#jz^uVw;G9egnucyn?Gfo@gl6cl=*ic3t9#!#$_5ygWSy46>j2BK;>2c_4c*rX|EF68afTB-_0ImQC;qNS`+Rw) z233AXt71g)YxcK_Klzv4GTer2$s$a&w!p`hZceF-ZszVxeBPV2(fVh1VsXEztYiKf zkE65Xm|atX=sEQMM_sKSi}!_inP*+>HRBl|-fIdJbq0rXcPw3kznHoUefd@Q^WhOJ z*xktZAMm&1j}x))19BsDHT+ctAvparhdK{29JaNElarAdf2kZ1>d)sMw zXFB7c`Fjp&;W@u4C4QW%MK+;J()?`~BhgcW&{DV=9;k*4n54)6C?Jc%HbrJq G>H`wT-;<$=X8 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

    U{k`V1kLckeC{Ga`u-}SV8 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

    X4 z1Za@;mfcE_|M2{P1^n>Wq;kMpxv^#4*m=cfN5 z)Ruv)T4V^2&E6#1Z%SxI7PunKh(kG-n=%@7wl^55p>KOCYSB+s0INYFVYkC7Le z*SW`w%b?0rO-=AN_IDGVEQCi9iheau(>8F&mm))!$0os|vcHe1`n7@3?L zZ!`njV@jx)<=f+))Uelcp473EhSoT$S1H5BOc|yPE|PS5GHeO^;kc&2b7dma<|Hr| zzdT!#F?Yl#Pc23rmobFnWDC3ceA7PT^8X4Z*7W|X;{WHDfY~?v{}vao@_$~+$H)IW zN;&kygz;BQShr&uw33X)Q<39A-eH26zi)mo0x7Hq>R5$qf${?J7@n_pwboh?x$>^` zDauP;;_g;uuSBM6SIN5v;3ZV@Tv_)TSZ>SI%NS_bq52alye36T?so#bJl~N4Extm4 z!qmwddY+12&aH12L4q3{SH5hIRdnLV;@vNRL;10M|BDG9AIG=}HmOnDXYn_d9bhF6 z@rM!ZBm)V(V8PZ#=#ZxgPiP+KP58HdI7$HSfu@L-R+@3#St8>4up8%4y;J0EpXB~2 z#xYgiRr0hKFBfOmd|l=#pVTv-J9em-CWy&#?#jk*fDa3)Sey0`Q}D6LL0o|wgSCco zFIVm1NC*JG_mrsKlyrvn%O|x*v>&cnF5jO{mmHL;a?S-hMQt%9^TskxFp;;jrCh zXe`w^VRkseo8V>ATc0|+C>xQxh=Y?R@Gd7OP2vFlWc&}z(lcpMgcT(oateex(1kI9 zO)FbzUt+`D6+?SITqwjr_wtOnSL}A|jPeDCvIsI0`JBn>?hcb2tLAF~TO@F*2jm?A zWGCZRhL`rG=Uziu`3m=~qw{qInNhy4#F-k)84GPRDZ3PNYRpnc9($@6i9a+#sMG~ zF}*^2ZK%ad56S0Vvy^>QH24x&z2yh-v4_2Nov>Y#lq--_+K4o>WqSwcuH0m$+gudD zsyN&kaFI}0@3hY082dcexH@FGQ={o!)f7MRe(oP4)blDNbWgSu^`c=^JzwAC+~$rm zA1a_$ScbF662x|V)C;rV9oOPu(dkLl@t-tctw+hQ6bL$tMN_0^)f^VSjfL5GXdSg< z=!!>t8Rl>t%I_}(N~*k97gA;-lf$JvN3qX>E9- ziy|n>M{!&xIWgdE*^fIDxR*|NAH7plrRYu0Hs#uyz~;CjrAU{<7js*_KjwUR6+(ur zkrxupK$(v}#L5}2Q-fmaU6pXln!@xVRXfrcTzVok?N=4YEarNF{BgxBCp8YjrAkp1 ze+;SWGS90J7fIZ+G-QCSzOFJ=x=o_5A!Z!_b`SIQVO{GJWI{{|#a0~bM^VCt8YL#5 zje1tR*f87vh=7k||lkn`E-|aB>6U8IGo~JysnDZg!lMxg^~47nV$lsMOL(oCSq> z2j?T5A{B;50?|n)pZ@G;mCPq>zck!lIQCXe+n8`2Tov!u!Bp??#<*i)skC8V0=}B5 zP^u8uvaeqd23u=B4=y|MyVO8xducVX+nW1J!1LNm@-3zg=GzOYa|WuX=9|-4r{aJ? z@hk@cygaH-0pyFB#5X-tM^_O-b@=t{cn+=4gW5c^O$~IWDUXf9

    w^_**(}b;fn@ z6kn`^n(k56;i^&a0XT=+ZV^0}G})jlkx`ZFG=HjH15d!m3kJmQjZUOK7}n5_hTXJ7 z3wlV}<>N4m(~+j7$(NTOtZ(02-+MbiFO?8Z9UG$)9RP>kO;3su&De)h_+pb!*c>N) zOKZwGmS~E_8$MqM*@M2O>p1+K=pY>R{Js`%73vX9Wf^?_xx;l>e+6YiKKgf^5PkTA z_3iDAJL^-n&P96O_zbe8nSG2^R7_**{-f>H`&6~3hC0Y{3i7#Q`zPekzPSds;CU8j z?NT*SwVSqo4W%&MUcbA(y}r4&zGKekqO!2@b?Nf6nuM(x=(*RtDy4DOwf6AAgZ0f_ zYgHa*Rfv4_$0&(^G~$)Ig~z-Jgn|QTnw?JB1w_i3g7HUpFd|LwFuwU{x5D^y;5SZF z>uzewp~EY@{KxhG{xHm?wz)d;n?6RM)D4O={{K98An0IC<-S$j=qwAs0yr9=P1uu znz>jK)1f&|;vom%T`}5ZMZYF*!V5|lb`a%V)mM~?OMu1+iX~OWR)}s&85%8+N)GH-9=#=6%33Oik^&h5?y#GsC#Xe!vOP+MaX(sr z){ZdbXtJ>jnmqzEr$rjeilBx90;m+-`e@6O8ewLpqX1COUjg&k zp`%pTo0;hjhlAyr8HN?DBpS~2!(*0 zS9`(SA*H5Fgi@LQ?n!CL&I3^Qrvbfsaf<}rXwxh@o7nw zUP!Uqu{J4C{tlJ{+E(XIv8fW&ijkXvYa0e59dT9~E%i00lHVr*-Df-x7<$B^qs$={ zRE1vhJOsBH;}O_b09+l?8=rMAfj{Fpazv6D8mzFd31ttNU@%fmL=~ohSf? z_x6ex8F}nPXy6eI8jp7GPQRugws$SPi|%p|4Sh|qPbD)iWX z@6x82SYylJUSFbcKIu9wFKro}Vm1=<#$C{OeO%rS4dk>+BC)+$-FdRBpop`?>eY)A zEl23Bkrtr<2=B!O1`~{vdM6OR$y=jGvy3%dt`(Gb;ovNT=7j>!gx%{0s*e9W_>NFX zi_4q#z@EiR-fPFYU*BC%YQgX2QXUsAzBC$ir9(ddXI%Y{&%RJLMwR~Orj`GHX>s97 z|9dGPuK!UJyy|+LA`z4t(WM?+%sW)%fx1?fz=EC{(I1S!DT)}C3nwadoo71HCsx?V z(D-dJ=GYXoDzm=#l2Lyz%)mTu7rv1)hZ#O{9a*{~ahB{EBJyU4Rw=b2E+@@38>yi^lhrxvAW#MBOUKEmL>z z>d7aiySZ?2ySeaEchj?blmi{~bMXPY;>9iO-cy+?<~+x20GsDxw(9O$DSKYAUGo>W zUGuNNc1eAaYqx}+=scU%fz5KT_I3BFoZEl%whGG$mLD?jwq3~S>kPCVJcBbJe*mAN2}s0KLuLo++h7lLD$yyPF2>u-DsTLKI2Gda^21)HHB>p)l^8Z=$ zf7kW>hEKWvXYS_Qyu<%*?n?i28J`mWA5|w*R0Dbi5=D~v#q+-LWsC

    KYq5LJ5M9U&)4x3c& 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 Iia+W?V#R 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

    fx38pzZ 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�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

    a_-mfFYX7qlj(hB00q>lWT`uhZbZ3Kz=ZnSC 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

      T5WP+ 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

      4RUY_5>D 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%0AW?h{Mj6FsG!q*MHP7AtT&mWIzQ7c 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 T@3VDu^o1N5J6Q#yI}7q3y+6^s literal 0 HcmV?d00001 diff --git a/style/arbitro.css b/style/arbitro.css new file mode 100644 index 0000000..e77ebb2 --- /dev/null +++ b/style/arbitro.css @@ -0,0 +1,193 @@ +/* +To change this license header, choose License Headers in Project Properties. +To change this template file, choose Tools | Templates +and open the template in the editor. +*/ +/* + Created on : 11-mar-2019, 12.04.06 + Author : corradomulas +*/ + +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: 'Archivo', sans-serif; + +} + +/* Mobile Styles */ +@media only screen and (max-width: 400px) { + body { + background-color: #F09A9D; /* Red */ + } +} + +/* Tablet Styles */ +@media only screen and (min-width: 401px) and (max-width: 960px) { + body { + background-color: #F5CF8E; /* Yellow */ + } +} + +/* Desktop Styles */ +@media only screen and (min-width: 961px) { + +} + #body { + background-color: whitesmoke; /* Blue */ + } + +#footer { + position: fixed; + bottom: 0; + width: 100%; + text-decoration: none; + font-size: calc(5vw + 5vh); + text-align: center; + background-color: black; + border-top-style: solid; + border-top-width: thin; + border-top-color: #FFF; +} + +.func { + padding-top: 5px; +} + +#header { + position: fixed; + top: 0; + width: 100%; + background-color: black; + color: white; + border-bottom-style: solid; + border-bottom-width: thin; + border-bottom-color: #FFF; +} + +.match { + top: 30px; +} +.startmatch { + display: none; +} + +.stopmatch { + display: none; +} + +.fallo { + display: none; +} + +.ammonizione { + display: none; + + width: 6vw; +} + +.goal { + display: none +} + +.pli { + display: none; + float:left; +} + +.partite { + display: none; +} + +.emgtab { + margin-top: 30px; + display: none; +} + +.msgtab { + margin-top: 30px; + display: none; +} + +.usertab { + margin-top: 30px; + display: none; +} + +.btn1 { + margin: 5px; + background-color: #FFF; /* Green */ + border-style: solid; + border-width: 1px; + border-color: #000; + color: black; + padding: 40% 45%; + max-height: 10px; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 16px; + } + +a:link { +color: #FFF; +} +a:visited { +color: #FFF; +} +a:hover { +color: #FFF; +} + +.maincont { + margin: 30px; + /*margin-bottom: 60px;*/ +} + +ul{ +list-style-type:none; +margin-right: 20px; +} + +.clock { + position: absolute; + top: 50%; + left: 50%; + transform: translateX(-50%) translateY(-50%); + color: #FFF; +} + +.startab { + display: none; +} + +.selpls { + display: none; + +} + +.chkbx { + width: 50px; + height: 50px; + margin: 10px; +} + + +.points { + width: 100%; + display: inline-block; + /* font-size: 50px; */ + text-align: center; +} + +#points { + display: inline-block; + font-size: 50px; +} + +.falli { + font-size: 25px; + display: inline-block; + color: #ff4747; +} diff --git a/style/insre.css b/style/insre.css new file mode 100644 index 0000000..bcd815c --- /dev/null +++ b/style/insre.css @@ -0,0 +1,258 @@ +/* +To change this license header, choose License Headers in Project Properties. +To change this template file, choose Tools | Templates +and open the template in the editor. +*/ +/* + Created on : 7-apr-2019, 16.50.44 + Author : corradomulas +*/ + +@import "lesshat"; + + +.clearfix() { + zoom: 1; + &:before, &:after{ + content: ""; + display: table; + } + &:after{ + clear: both; + } +} + +.col() { + padding-right: 10px; + float: left; + &:last-of-type { + padding-right: 0; + } +} + +.transition(@speed, @easing) { + transition: all @speed @easing; +} + + +@white: #fff; +@grey-lightest: #f9f9f9; +@grey-light: #e3e3e3; +@grey: #e5e5e5; +@grey-dark: #b9b9b9; + +@purple: #c68eaa; +@green: #7ed321; +@emerald: #04BDBD; +@blue: #04AEC5; +@blue-dark: #0F6CC9; +@color-primary: @green; +@color-primary-strong: darken(saturate(@color-primary, 5%), 10%); + +@br: 3px; + +@fast: 0.35s; + +@ease: ease-in-out; + +// GENERAL + +* { + &, &:before, &:after { + box-sizing: border-box; + } +} + +body { + padding: 1em; + font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-size: 15px; + // font-size: 1vw; + color: @grey-dark; + background-color: @grey-light; +} + +// TYPOGRAPHY + +h4 { + color: @color-primary; +} + +// FORM + +input { + width: 100%; + padding: 1em; + line-height: 1.4; + background-color: @grey-lightest; + border: 1px solid @grey; + border-radius: 3px; + .transition(@fast, @ease); + &:focus { + outline: 0; + border-color: @color-primary-strong; + & + .input-icon { + i { + color: @color-primary; + } + &:after { + border-right-color: @color-primary; + } + } + } + &[type="radio"] { + display: none; + & + label { + &:extend(input); + display: inline-block; + width: 50%; + text-align: center; + float: left; + border-radius: 0; + &:first-of-type { + border-top-left-radius: @br; + border-bottom-left-radius: @br; + } + &:last-of-type { + border-top-right-radius: @br; + border-bottom-right-radius: @br; + } + i { + padding-right: 0.4em; + } + } + &:checked + label { + background-color: @color-primary; + color: @white; + border-color: @color-primary-strong; + } + } + &[type="checkbox"] { + display: none; + & + label { + position: relative; + display: block; + padding-left: 1.6em; + &:before { + &:extend(input); + position: absolute; + top: 0.2em; + left: 0; + display: block; + width: 1em; + height: 1em; + padding: 0; + content: ""; + } + &:after { + position: absolute; + top: 0.45em; + left: 0.2em; + font-size: 0.8em; + color: @white; + opacity: 0; + font-family: FontAwesome; + content: "\f00c"; + } + } + } + &:checked + label { + &:before { + &:extend(input[type="radio"]:checked + label); + } + &:after { + opacity: 1; + } + } +} + +select { + &:extend(input[type="radio"] + label); + height: 3.4em; + line-height: 2; + &:first-of-type { + border-top-left-radius: @br; + border-bottom-left-radius: @br; + } + &:last-of-type { + border-top-right-radius: @br; + border-bottom-right-radius: @br; + } + &:focus, &:active { + outline: 0; + &:extend(input[type="radio"]:checked + label); + } + option { + &:extend(input); + background-color: @color-primary; + color: @white; + } +} + +.input-group { + margin-bottom: 1em; + .clearfix(); +} + +.input-group-icon { + position: relative; + input { + padding-left: 4.4em; + } + .input-icon { + position: absolute; + top: 0; + left: 0; + width: 3.4em; + height: 3.4em; + line-height: 3.4em; + text-align: center; + pointer-events: none; + &:after { + position: absolute; + top: 0.6em; + bottom: 0.6em; + left: 3.4em; + display: block; + border-right: 1px solid @grey; + content: ""; + .transition(@fast, @ease); + } + i { + .transition(@fast, @ease); + } + } + +} + +// STRUCTURE + +.container { + max-width: 38em; + padding: 1em 3em 2em 3em; + margin: 0em auto; + background-color: @white; + border-radius: @br * 1.4; + box-shadow: 0px 3px 10px -2px rgba(0,0,0,0.2); +} + +.row { + .clearfix(); +} + +.col-half { + .col(); + width: 100% / 2; +} + +.col-third { + .col(); + width: 100% / 3; +} + +@media only screen and (max-width: 540px) { + .col-half { + width: 100%; + padding-right: 0; + } +} diff --git a/style/manager.css b/style/manager.css new file mode 100644 index 0000000..db2c79d --- /dev/null +++ b/style/manager.css @@ -0,0 +1,124 @@ +/* +To change this license header, choose License Headers in Project Properties. +To change this template file, choose Tools | Templates +and open the template in the editor. +*/ +/* + Created on : 7-apr-2019, 13.41.29 + Author : corradomulas +*/ + + +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: 'Archivo', sans-serif; + +} + +ul{ +list-style-type:none; +margin-right: 5px; +} + +.sidenav { + height: 100%; /* Full-height: remove this if you want "auto" height */ + width: 160px; /* Set the width of the sidebar */ + position: fixed; /* Fixed Sidebar (stay in place on scroll) */ + z-index: 1; /* Stay on top */ + top: 0; /* Stay at the top */ + left: 0; + background-color: #111; /* Black */ + overflow-x: hidden; /* Disable horizontal scroll */ + padding-top: 20px; +} + +/* The navigation menu links */ +.sidenav a { + padding: 6px 8px 6px 16px; + text-decoration: none; + font-size: 25px; + color: #818181; + display: block; +} + +/* When you mouse over the navigation links, change their color */ +.sidenav a:hover { + color: #f1f1f1; +} + +.main { + margin-left: 160px; /* Same as the width of the sidebar */ + padding: 0px 10px; +} + +@media screen and (max-height: 450px) { + .sidenav {padding-top: 15px;} + .sidenav a {font-size: 18px;} +} + + + /* jQuery("usertab").css('display','none'); + jQuery("matchestab").css('display','none'); + jQuery("refereestab").css('display','none'); + jQuery("calendartab").css('display','none'); + jQuery("msgtab").css('display','block'); + jQuery("teamstab").css('display','none'); + jQuery("tourntab").css('display','none'); + jQuery("playerstab").css('display','none'); */ + +#usertab { + display: none; +} + +#matchestab { + display: none; +} + +#refereestab { + display: none; +} + +#calendartab { + display: none; +} + +#msgtab { + display: none; +} + +#teamstab { + display: none; +} + +#tourntab { + display: none; +} + +#playerstab { + display: none; +} + +.refuncs { + display: none; +} +#instm { + display: none; +} + +#instourn { + display: none; +} + +#inspls { + display: none; +} + +#inscal { + display: none; +} + +.votebt { + display: none; +} diff --git a/style/tables.css b/style/tables.css new file mode 100644 index 0000000..e0ddd73 --- /dev/null +++ b/style/tables.css @@ -0,0 +1,94 @@ +/* +To change this license header, choose License Headers in Project Properties. +To change this template file, choose Tools | Templates +and open the template in the editor. +*/ +/* + Created on : 9-apr-2019, 16.57.35 + Author : corradomulas +*/ + +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: 'Archivo', sans-serif; + +} + +table { + display: inline-table; + border-collapse: collapse; + width: 100%; +} + +th, td { + text-align: left; + padding: 8px; +} + +tr:nth-child(even) {background-color: #f2f2f2;} +th { + font-weight: bolder; +} + + +input[type=text], select, textarea { + width: 100%; + padding: 12px; + border: 1px solid #ccc; + border-radius: 4px; + resize: vertical; +} + +label { + padding: 12px 12px 12px 0; + display: inline-block; +} + +input[type=submit] { + background-color: #dd8500; + color: white; + padding: 12px 20px; + border: none; + border-radius: 4px; + cursor: pointer; + float: right; +} + +input[type=submit]:hover { + background-color: #dd8500; +} + +.container { + border-radius: 5px; + background-color: #f2f2f2; + padding: 20px; +} + +.col-25 { + float: left; + width: 25%; + margin-top: 6px; +} + +.col-75 { + float: left; + width: 75%; + margin-top: 6px; +} + +/* Clear floats after the columns */ +.row:after { + content: ""; + display: table; + clear: both; +} + +/* Responsive layout - when the screen is less than 600px wide, make the two columns stack on top of each other instead of next to each other */ +@media screen and (max-width: 600px) { + .col-25, .col-75, input[type=submit] { + width: 100%; + margin-top: 0; + } +} diff --git a/tabelle.php b/tabelle.php new file mode 100644 index 0000000..8fd495d --- /dev/null +++ b/tabelle.php @@ -0,0 +1,775 @@ + + + + + + + + + + + + + +

      +. + +*/ +require 'lib/r4fb.php'; + + +session_start(); +switch ($_GET['print']) +{ + case "gironi": + + $gironi = r4fb::fetchGironi($_GET['trn']); + //print_r($gironi); + $max = count($gironi); + + for($i=0; $i<$max; $i++) + { + $lettera = $gironi[$i]['lettera']; + $idgrn = $gironi[$i]['id']; + $classf = r4fb::fetchClassGrn($_GET['trn'], $idgrn); + $max2 = count($classf); + // $max2 = 10; + echo " + + + + + + + + + + + + + + + + + "; + + for($j=0; $j<$max2; $j++) +// if($classf[$j]['pt_gir'] != 0) + // { + echo " + + + "; + // } + echo " + + + + + + + + + + +
      Girone ".$lettera."
      SquadraPt
      ".$classf[$j]['nome']."".$classf[$j]['pt_gir']."
      "; + } + break; + case "poff": + $classf = r4fb::fetchClassPoff($_GET['trn'],0); + $classfo = r4fb::fetchClassPoff($_GET['trn'],2); + $classfq = r4fb::fetchClassPoff($_GET['trn'],3); + $classfs = r4fb::fetchClassPoff($_GET['trn'],4); + $classff = r4fb::fetchClassPoff($_GET['trn'],5); + //$max = count($classf); + $max = 10; + +//ottavi + echo " + + + + + + + + + + + + + + + + + "; + + for($i=0;$i<$max;$i++) + { + if($classfo[$i]['pt_poff'] != 0) + { + echo " + + + "; + } + } + echo " + + + + + + + + + + +
      Classifica Punti
      Ottavi PlayOff
      SquadraPt
      ".$classfo[$i]['nome']."".$classfo[$i]['pt_poff']."
      "; + +//quarti + echo " + + + + + + + + + + + + + + + + + "; + + for($i=0;$i<$max;$i++) + { + if($classfq[$i]['pt_poff'] != 0) + { + echo " + + + "; + } + } + echo " + + + + + + + + + + +
      Ottavi PlayOff
      SquadraPt
      ".$classfq[$i]['nome']."".$classfq[$i]['pt_poff']."
      "; + +//semifinali + echo " + + + + + + + + + + + + + + + + + "; + + for($i=0;$i<$max;$i++) + { + if($classfs[$i]['pt_poff'] != 0) + { + echo " + + + "; + } + } + echo " + + + + + + + + + + +
      Semifinali PlayOff
      SquadraPt
      ".$classfs[$i]['nome']."".$classfs[$i]['pt_poff']."
      "; + +//finali + echo " + + + + + + + + + + + + + + + + + "; + + for($i=0;$i<$max;$i++) + { + if($classff[$i]['pt_poff'] != 0) + { + echo " + + + "; + } + } + echo " + + + + + + + + + + +
      Finali PlayOff
      SquadraPt
      ".$classff[$i]['nome']."".$classff[$i]['pt_poff']."
      "; + break; + case "pout": + $classfo = r4fb::fetchClassPout($_GET['trn'],2); + $classfq = r4fb::fetchClassPout($_GET['trn'],3); + $classfs = r4fb::fetchClassPout($_GET['trn'],4); + $classff = r4fb::fetchClassPout($_GET['trn'],5); + $classf = r4fb::fetchClassPout($_GET['trn'],0); + //$max = count($classf); + $max = 10; + + //ottavi + echo " + + + + + + + + + + + + + + + + + "; + + for($i=0;$i<$max;$i++) + { + if($classfo[$i]['pt_pout'] != 0) + { + echo " + + + "; + } + } + echo " + + + + + + + + + + +
      Classifica Punti
      Ottavi PlayOut
      SquadraPt
      ".$classfo[$i]['nome']."".$classfo[$i]['pt_pout']."
      "; + + //quarti + echo " + + + + + + + + + + + + + + + + + "; + + for($i=0;$i<$max;$i++) + { + if($classfq[$i]['pt_pout'] != 0) + { + echo " + + + "; + } + } + echo " + + + + + + + + + + +
      Classifica Punti
      Quarti PlayOut
      SquadraPt
      ".$classfq[$i]['nome']."".$classfq[$i]['pt_pout']."
      "; + +//semifinali + echo " + + + + + + + + + + + + + + + + + "; + + for($i=0;$i<$max;$i++) + { + if($classfs[$i]['pt_pout'] != 0) + { + echo " + + + "; + } + } + echo " + + + + + + + + + + +
      Semifinali PlayOut
      SquadraPt
      ".$classfs[$i]['nome']."".$classfs[$i]['pt_pout']."
      "; + +//finali + echo " + + + + + + + + + + + + + + + + + "; + + for($i=0;$i<$max;$i++) + { + if($classff[$i]['pt_pout'] != 0) + { + echo " + + + "; + } + } + echo " + + + + + + + + + + +
      Finali PlayOut
      SquadraPt
      ".$classff[$i]['nome']."".$classff[$i]['pt_pout']."
      "; + break; + case "class": + $classf = r4fb::fetchClass($_GET['trn']); + //$max = count($classf); + $max = 10; + + echo " + + + + + + + + + + + + + + + + + "; + + for($i=0;$i<$max;$i++) + { + echo " + + + "; + } + echo " + + + + + + + + + + +
      Classifica Punti
      Classifica Generale
      SquadraPt
      ".$classf[$i]['nome']."".$classf[$i]['pt']."
      "; + + break; + case "cc": + $classf = r4fb::fetchClassCC($_GET['trn']); + + $max = 10; + + echo " + + + + + + + + + + + + + + + + + + "; + + for($i=0;$i<$max;$i++) + { + $id = $classf[$i]['squadra']; + $sqd = r4fb::fetchSquadraData($id); + // print_r($sqd); + if($classf[$i]['goal'] != 0) + { + echo " + + + + "; + } + } + echo " + + + + + + + + + + +
      Classifica Marcatori
      Capocannonieri
      NomeSquadraGoal
      ".$classf[$i]['nome']."".$sqd[0]['nome']."".$classf[$i]['goal']."
      "; + break; + case "votesfrm": + // echo $_GET['trn']; + $squadre = r4fb::fetchSquadreTourn($_GET['trn']); + $status = r4fb::tournData($_GET['trn'])['voteStatus']; + + if($status == 1) + { + $max = count($squadre); + echo ' + + +
      +

      + + + +
      + +

      +

      + + +

      + +

      + + +

      +

      + + +

      +

      + +

      + + '; + + if(isset($_POST['subvotes'])) + { + if(r4fb::insVote($_POST['bestpl'],$_POST['bestsq'],$_POST['bestrf'],$_POST['commenti'], session_id(),$_SERVER['REMOTE_ADDR'])) echo "Grazie per aver votato!"; + } + } + else if($status == 2) + { + //visualizza risultati + echo "Le votazioni per questo torneo si sono concluse!"; + } + else if($status == 0) + { + echo "Le votazioni non sono ancora disponibili per questo torneo, torna più tardi!"; + } + break; + case "proxma": + $proxma = r4fb::proxMatches($_GET['trn']); + //print_r($proxma); + $max = 10; + // $max = count($proxma); + echo " + + + + + + + + + + + + + + + + + + "; + + for($i=0;$i<$max;$i++) + { + $s1 = $proxma[$i]['s1']; + $s2 = $proxma[$i]['s2']; + + $sqd1 = r4fb::fetchSquadraData($s1); + $sqd2 = r4fb::fetchSquadraData($s2); + // print_r($sqd); + if($s1 != NULL) + { + echo " + + + + "; + } + } + echo " + + + + + + + + + + +
      Prossime partite
      SquadreOrarioCampo
      ".$sqd1[0]['nome']." VS ".$sqd2[0]['nome']."".date('H:i',$proxma[$i]['t_prog'])."".$proxma[$i]['campo']."
      "; + break; + case "curma": + $curma = r4fb::curMatches($_GET['trn']); + //print_r($proxma); + $max = count($curma); + + echo " + + + + + + + + + + + + + + + + + + + + + "; + + for($i=0;$i<$max;$i++) + { + $s1 = $curma[$i]['s1']; + $s2 = $curma[$i]['s2']; + + $sqd1 = r4fb::fetchSquadraData($s1); + $sqd2 = r4fb::fetchSquadraData($s2); + // print_r($sqd); + if($s1 != NULL) + { + echo " + + + + + + "; + } + } + echo " + + + + + + + + + + +
      Partite correnti
      SquadreOra inizioCampoPunteggioFalli
      ".$sqd1[0]['nome']." VS ".$sqd2[0]['nome']."".date('H:i',$curma[0]['t_start'])."".$curma[0]['campo']."".$curma[0]['pt_s1']." - ".$curma[0]['pt_s2']."".$curma[0]['falli_s1']." - ".$curma[0]['falli_s2']."
      "; + break; +} + + +?> +
      + + diff --git a/tabellone.php b/tabellone.php new file mode 100644 index 0000000..f8c5db9 --- /dev/null +++ b/tabellone.php @@ -0,0 +1,25 @@ +. + +*/

      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

    bXiTJM3>1IlJx%I~eQzUW>!l@Vw+ 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 z%0A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̍nI;v@MQq=#5VmyV#13c5I3pZ_VddRpZ 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�( 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�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

    *OfHgt70od3wLu>TvjSf9eYV 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Ⓢ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%0A3Ez+sMrelctMSfftS?=eH zEK3UxM3_9KEB;c%ej=vvaY};VUu`Z3pnVx{P&9_@ zTG;EoZ!{bAa$S{$UugKs4&3J76J}9iUNY^0l^_FKS_9#ITEGh?ar$R6G=FJdBE)ab zhKzkPLrs8AM{(|!%AZhz5LA91f^*GK?c4$O6x<{zSX3xq+KBy-Hwx>Ynk6rxO8dRj zb6~iF$loR!2G!TnF}={Mv>uOB_M}7ORjEkCjYIOJ!8L+f?}nvf*V&O#2@Z;lh#vg* zQwHfzxX>di@srMj{EE@zBdb7((crTT-g&)@+e96mGKQpfh*C{2J}3&)zm4P~=Bz&IofM;y-~2%eUV_ALiO+3n$IW%UkSj<^(A2+fR(9F}Y`;BP#=2 zO9)!n;7k8ItLolVrllApmg%Sih@B#k&ZX#GXP0${0SQg8 z=K$}cXIvO;3u{Xjp7iiD44jB_>Q064`Q?Mz4FxoGo9=)(!FvU81Ral-gpJ<1ezV??|Ll{BIs_XrGDRiE`9F24^2Vx#>qq)sRBw zo9}#Uc3xaFKE=jkRbNu#4bZq-s4Cyad;CvmpD5N9G3F}vNY7VzI?z|oQp-W>wi$lx z8^o;pcqR1%ch_m$=}E?9F?1CbbOCdWtv;&#>0eRTpgd}G9+@~U@F2jdbIT$J5fy=E zk=?`qM)RlZ2RfSHQ8b-x0v|b}`v@u{Bu$DITOGS8FxLS#_iFP#8@}f^K0`p-&ySVK z(T_}6Kx>R!^0!vL4F~dV%&wEyBA(s0p?$T9Q3YwL~C>u z&&q4zb|qgA2*3|P-&G+_pRW_SFY12<9rc2pG;s|C^bYRCRqw^~#bfx3Es9qR+N z%x0Z=w|Q?6|Jt;=E`ntPyB^T2q&sctep}=H%(PEH+6UoUcmw+z-yraccAb`JkFBEG zGvI{DZ=FJt-b7a427n;7_1CcGV|bF0#pCG@O6X4~gFxwoqtjpU)1~HYh8VV@xr8vZ zv+aNPF()#9FHH8TbMtnTz9v;+P^&_!Ye0FdZ^rJTvmtJEImXuOJDqg2HGL5$-L;1I$iI>xq>k|JW>(p_bLY#-}F%&Eatu6kCpr>%=i18D7K=Qeqs?g{4cp95WAx9f+vIZ9+&w8HECnt=Al zusHsIe-~QTF*{C`us9rv>#R*)@zkGxotzUXM#n`pVkbr-jI&3AtZ8M83QXIt7HaM- zy$SJY$BZ1R0sOsdjEN;tSV$-Y+j!9-O@^Z-f*i@B#eAR=OJq7&qP5=vci$U!(Y8D# zu4i~G=WMv8!ra$yr2+9NH(*`l&buYiO;|;d;SX%gL|-y%KEC+e_q5=XU!^}{c@C6U z{L0B60!2O4dBey?hdI38ii4tAblq|-RS)1g!|#eiDi&H`7WCyxhuf0TU;PIw4ExVR zp3AfE>mqp9hcWCXK_;Bc>pT*D=2LOvnTaa2N@uL#g*z8{hKQ`DZu(W&InaZy1*7&b z!>}nDp3G2Me1fjg=Sk8G)<_P`-C1u#J7OmW?*f0;Ad^qax0*0fPUCu85FWomlEDNp z_Qt!)1|V0M#+2Xs?`UBXZd^E3*SoPVtWlA0>COTbf!0W*hWv+q3~kj)Ko!83 zKch5QPGsX((7`T~3+A(6GQ>uw6+Yd39GqcC&vg1}Z6o-z{FespZ=3=p@b%JC@e%P+= zKJK1BWft$A#Om!|{bv@?BS~rgu&t3MOZ`@r8stTmqTcZG86L|xww-Oh>@{5cl)wbe z^GBv9G%DhboSR`WL6j%Wp`KgnkY2ExS>VyvKH?3(Hp`pBpL}h01+gbO zdU+f?K5J9>2ISvWAoyd)1@Ma0bgY}>TsI|n_R)*3Wmziqmyff#&IQ+SfpO^c#`G`a z&&_j>6CQBFHJzEQg{<=U>{Y%n$K6R4d^DWw^Dly0YRC4faxlh?+T!~-(cO8pN#0yA z@3-G@2$6j#%f9arfp<^;rba5rRx1E&>9~spLQwZd$Y<>`W5T96aO_aYUH*nxx2AP1A^08@^kUD1CenymLi>#Q~!n z>nc;WhFH#XyClHLpu~Ba&`jRTN5!iYp^TDPs-~a2qB4ilrz|Vp`x44km*Do_4E~Sy z@+OBk;k1tw#x%vLWvRIm!MXZ#pC^zu#CmgPAlu+|b$eD{B-?!4zz%;uvT-UvOm$X<%Wo8WGASgRcFanP*6sxz`_$_vNgGMR$u z4;j$%q+X*k_xl2E%$b}P7N;TS?@d1P_*c9jb*;4e^45qnP;2bENL#<(asevSVcqv1pew z8bveizkOtz`jT_PqkR!(`j;oS^1^&3;*>}|GN-|&d|$KT4j8^rzW-{@Aa3Knk@NDw zkEv*L7dC8zLt2-FNDO0rtQjO{6XSS9Lq%%|QF>xlNM3|it2i~+A6NR&pKJz;NVJ(x zY)>i_f(gMJLSWT!(aw98h!%7MPfvuFqG^LAevK@a!ZE#TqTfr}tu4%0(jQc> zQT1n^-O%#NtRFFA=M_uJ2BX$wI4;<2M?=c~cc~s0opgF{mTG)e*{@tk7zZOZEQbc7au9LWH`Y*Cu}NUc@^Z|* z@s-~@@kf7yG@c(1in>*){A&EGGj*bxi>s269xHm8Kk z;`1?Ud(&=JwLOlldB-E*gHu)#E%9KlN5TzxJb^{;m1`ol=ApThtM3ga?jQ3Ve~iV` z;PYSvYt}JGCl==|V&w=Nq?)7xmfd_gRsb4+e0u%t;t~1C0q2SHi5Dvvh;Fv4{nE(6@XCJ22lI-Sa#K}Sm;y8z+^k`_sxgtrc@OdBNF%5gB_l#C=KDB2nz8vu2Ia?W`EnBjSx%;xa zmx)|#NM`5@eJV{{UX9k}%|+AaaOMf|LFsHZ(e0uz3=kpLWIWSqHS@<`FH8@3o(XCd z1%Nz3a^=?Eh;XCa)Nxx1Jh6LfO8z3y4BBv$R8U@nw zzYLbY0!d}u`I7zxk1Y!()~o47D*y~z&(rInu0HAHb3nT!q!e|k4x)A7?jQ?CND=Bm ztw~;~!6^%S$Wj6|Ye77kF{103hLBhF{)i@aH8o2h!mi)@gVSlLaT5MHQweecLIr$B zmOXTaCBsF5!?Y|XgT zshoLLg9CIjW7d0u2y z^-ZCDPTI_m%KNsS(M>dFz_qC8YOjXV@<)vQ>$W`!$Tm&i>zJ66`Hb1i2v zH&u$ezp#lkDS2cajDEbBg`gMeWehHB;-N;id>u8@*sKyo)QOUGgCU{cNK>ewF0!+p zKfUH>txP(6zNY-h8iNxPifwth%z;e^GPSEiwC2gNN>K$_lM%9Tu2+7F%}{$leCvT# z17WEi(Nk(=wPe8il}!7VcU3VJO!zFYPS#9&`%6RcWxTx(jtcAOh+|~E zAB>c0ELA?ivzESM(ohqXY(jST2>9A0k6^m^m+=8M821e+cy-7xR75yIC^*#P+2$FF zWGFxJqRYKnro*6xKb45?8GoK)q}>*om~&oiu)OOWLBn}5EeE>Jw#q2yVt4##o2T;m z`LCA}ZP5oGfKsvwAF~4JxN>&g6l0NTJDWAIaami^RsDef5TT0XWhYMT85GU%5=>0K zSQcTN9_U|J4AL6eqx#QLzufhLM;we}LDlUK1mG36_M3%%JC+;YurWWxSbz|{Qu5T= zA$TP{qE0bWQrZpZ;ASI;eN2K&=(2U^+{dyqNt3N)#!95pFV7=bPRnh--*B5RF_zBN zo5?1Zo$E!m*Kcu{gt`O2?(Y} z!Re=j;isK^Tq_s#rF`aB`Fd8xjzb(oyB8tmVx44~z@s%2bA9b0w6%I#tNg z{SleZ)%uO_d%o4Q#gSw(CWalLj@=f_aOw)3jbPRWXGLsnL@r{&n8U*^Z}xgC3h>JM)g$N<1m) zG7`kk5kE^>3@iWlO)6||6{2MG3I_>an#GPG_8wecP5Fo2SIA^h<`_Y_=y~a7=`gg!ey7qgLRq+RnnAD;&ka} z(3W8;g$EPAKr!pySj-$1_o$c}h2pGA*ft_-qwoG64ccwq?9OPpZ%zu5gP>_!fuA&21 zGmcz^Tk9-*0UFdb@!zVYW~4(I0b!<09U5Y{mf3P9>%rv_)UyU5rDRtIsJ4GeO6A9| zkdbb=0d!x#d{e+g%~kPVN?vk#@b$+GPT?WFw#!J8BN0RxLj!?a1>{^7y#=sKq@2L2 zgx`WIyQ1L%^I6vgfNR057Mj+uGM(R1I;8m0p?74`9T5SBSeLr;c;u^o~*t(e1CR(l5il`;LBICaOITn(-zy&f)LsHjLkauI|-X z-#1{YlciDxo*j>2;j+yUxurn+X%asCC!C>1wM%tp(xH)(M3gTK(C8XBpS5k7jv?Yi zNpF7Yn3#`NLZ5+xQeOJ1F$OG;*kS=HpoO}s!Q`3DeU;1Gn2gzFgb_4+t9+*q4p+hi z_ROl(76l)dwDzL7GJ;cy1`q*_4a;CTBF?t{9<=#zfGqe5$Q>n5VIIJ z2pw(!&kCS9MZj!0uA>Bfm60+burpHcrwt&6jbcs1ySwB;c5Gwf$V_T*On4U|ASO%w zbV4bOyE{iw`5R7sr^-vIwq00fxB`^pu2Wo0BH6SsEMbKU;>w&cl^gfN!L3QT#ASxk z_xiz49e{N`@bIA}!u6T-JxT)zl&`i;>bi-siWKB1_<5GPu_(L5lRkiK0zI3jYla&o zwzk!){x4UyUc&-Q z2}Hmu$X3jLu|_Hbj!5M-~Y z>eR*tXO9Cjo2u#WQ>`lAywpsM}x2VfH_i4;SM_+-p}T z;;+jbam(q~N~wSp_nQ?CF8cVs^|jthf6e|56qEUG&kdI#$fy=^M%N;MYmG5oo6hvl z$LvT|+QBL>45=mQ=c?V*+b!=cVx$uSXeqH$y%NKcSLTmr=U%s-cTkPvacUvE z5<6vNoBg?KzwJwqqstEvP6Np;qG{?@)0o+Zw7n*>+D|WQTFE<77MoU+UhKsin5$*? z4<3yqV4C^)F*WJmQ*k?~sU|V-d11}HZ_7)%w6J%J%DtM8-HT0-f9-y1MYQiF^&~~Y{<;T6|+Zd=7aZ3bN8I;Jm1|fCikEo;C1SX%6BqG#08#NLMY5E_y@L%Y* zH6`0*zyGLRuvNxwL`Lg}!Jfxp@`S+jFY1v9s03cA4COIC2B#{?9!R*D?J04v83)#z z4wE9hgp<2wwU6{T#N4Vlmc+sdT#d>XiaUWanco~OC!fa!l57t%z;v83x8I#5=NO^wk9aOghzKC(X` zP4iO1mrB#L`4xg2>ipq2IO404 z`olT8WZ!ryBQ)^sC!KaY$p)8vVub<*i5_xR;wOJQqE=Q5v6@=9cMt4N{`+OlgEuyK ztML6pQ|MjuD@pE{e-LP$(%Ehi7%$jRDfr#U`qk_lddjQiW;$dg%6H+by&uOWIIl=5K*F$D@D6@1L1$yBkkGM2cnqu%pBfe704wz_8`-ySn zJ>bsUq+BWr{bi5M&MlEE(cTqgQfnt1i?4Y!z*?Q33|Y{a*S(y_|63hiYbVIQtT`;L z1^V=Kn`YL6ZI~8XZV8k^{^iZBsQr7xoD47v3|7jk2s@0Ey}pjsk9tsl;v11h0p*l5 z@qCvs4PJ*E63ho>z0@>xgE>oSNnDas2NF-e?yWq;CAKAI)(-<(zY==ts#d6wD>KYp zc#e^PR1PKI)_drqB2U^`x z^=%(}heIB)pWNf*m@I!zw5jbKq?#EYZw^vTq#s-Rn+=0T7mr3ag6`YmwWOr4*XQ`o z^me~r&M7lBcUCVZwU&ln*OspfF>TpEev6MjmH1YfE>tHpeDbB=fIgz^KzI`w@{ufv z{muvqQI4(1KebNx)p5w*_cDaWi&x7lfzQYKbERIhvP87^oeG&B!rPp=9bHbPM}%0x zFIu-4`sPBvs%o$wetPy`FmRO{;~*b|Bt(p#M}qoo3KmlbrZ$gOe6>M`qO!N5vP=7ySvghomD2}J2(=^}B0Lf`kU#ikeRVy!i6dj+j)YTIZ z@X5w`Xg5YdHX9b5h{Ge=cswBVMNz7P0d=&UQf6&(JNVawb=5z6{~HlmAiOY(Np1js z-!dST)M5(7om(V=J%hLYO>+{yV>RMyx&W&u(1aa!0@iU$??oCs0=?n9t4@Hxo1|o*BiASP@AqDD z!T3M)Ttc&Wlcmb1d2_`aQIZ_VRoC4tQgP<$4NX6=an%1ck9Y=eg9sCn>I64pHG20bVjz|1?v?J{{oc(ZsMUM!=i zjea=fZ`KP2i!I0}AUR-tY-p()rso@KQKkKY;nJ++;#70D>?tc7!*I)908SGYb?zQ@ z3YRkSR`9@zK=Dlc;owHJlme7T&T?_(QD(pM(v5`v!TfM*3;{+s*uI@o(}1|X4Dw3S zt6)ZuFD@x2Z(;+{6EwYuzkZowC}vD_dio0$$$)>H`8lwJSAeYIKAnS`IVrol&x1n% zyscieC*o}gV;d&!V9|lmZP8%cEhpnC0G(R`Q8IgJ>!@MGURR`G%)DOwE2d_~j8ey) z5R3Go*wokM;SAbLWM5sd3)L!Q!~oaPvL-dQi!w98EI~wGyp{~j7I%J0XNd#cg%gMI zY;pQZz#;>ETimuP56#0DrNt!D+(|GJREtfdW&)*df?vf7%X7(f-l?7Z+q~W+zSU`6 z@tG&k82?w#XE%paGtJ`Dbp-j`6MJ!DF=>2In=3byYD=64mcj>vM zT*im=7%ud6DW@E+nk{Toil$Uq$hwjyus3A7k> z+_;ASi(5<-xVG$SqIo$%2&fXIwthlIfG~vgkdPi~qkbhvST5%2fhkUzwK_mc3CfVB zt8GU!u`O8)t!y@9C*b0G2o+9=C_k_Eiq8X|CQS zM-LeTy&gECD0c`E^cV-}7){?6S^wA8A7z%z7pLqn;Gz<4D@nJ^A6AW7Qt0_P^Ev1Z z@-n`wtyY(ROq3hzU-F#jlPK?2uK?cvfS&dwGP3GvgBPe*I1-j#kt^0j)Yn!z;*x{t z*Q5BujwYiw@NwyPPFFDQZEbAsVQ1MpJ7DCGPgHbulup?Fs*w)#!?4(^6kY*%G5EOy zh#j{Mj4g;LI40-`xDU^+(V}aNRtlBKo)4nu&s>}b%FO?|i1^$&c=4I1yuD{u++0_{3iLYIS8O_#>ZCcn}ml#m%yKw!ZW9`K(Pq~fRmiifU-4!xge{6*|wakoAw zpD3f|gMh&)eh$8Jy*ZE}42V=A^dJY7`qoC?t@ZVdhFCS6{UckhVdA>+lG@p0 z+~^_2_i*PTtyT-V`e*9(UDFqfp7U@D`*AVMLp!n#Fh?N@5)Glu9Ke+3+F+=TM4^ClgQH)5gh;DyKW9TU zUIBl1(dH6q?j^3zPu=Oo+O#OV&e6JfIKH*-fXL>lq~SZxA)Ex15B@T4vg;uytd2bp z(rg`Exhx!)WL{F)w2+Z?T_DE{)o+ky!bdYPx&gU{&;dqDC+e$3M z&8T7a)l*o#%VmVIxNp*n_B~v}@2FxFfPE!24CPt&e~~mGDf;6Durz~u(LIf|pGjmO za<5(b5)fGAkQ&!yMbiz(ed!}(HbpnXL0_iP)!Z*HdJp0hg#TL0^+(%z)zrf$ReZZHvh zDWVq`k~%L;&HOGBNXisrDx6F%;+Ng1vAh;UA$}W(vPekK4YguTnjy~a#MBu+gIN5! z8w*~V4T8iMzHaYi)>+5y)VgoA{Vu*m7DR~P8X!$T$O0kt84vgxu1%+d#QkO}RM<@-?{$(wLeZFFR%7TqNwIbVf&A3&+J zqMog=)U5kt38JJC$z<(EZ=*5cGoH@ikne4D|zLgp^9Y1Km(SE5Ok0 zKlCU@X~-^AZdq}B46bYJxrzX}0da&&g2CG3h)zm2N36|*P<#9Huv|ZRrv`r&b!Ixk z!@-|W8*P_t5EihHV37s~cAzfjOJc;OF>%T?nAFOV_xQ468qTrv?NT#UEj4t`qVMg~ z2(ve0N{iWN5eJpHYOuM-hIvcbtuSJ^%nquK*G_!I)v^XF06UyT8khAh4XN2~b zw-JG2K1m}WhB2Deq>|JVwrX?l4ZIrI*UCh)%qO# z?MB4(!D2em09b&8L8|xAED(T{>;73xg_K7Eb1g1LwuqOoM9&;Wxc?w+2{i6wWhl&V z?1I|6eJCuw^w{Vj6?BvHY@dS_hT6{V@_)oo$|c=MUQp$fK+vbj@8mj^g|UoX5caOA zCfWGbcRETloo+mX0HXo!>4m9lNx>!dO6Wkg37=#xMOd3!`7(>DZE)Gn{FM<=c6YM5 zaf@U)gBB?!by+LAVHtcY5d}PebRd1uFRE#Q+*I5jeekcs51qD-Mh4y)gh_$zT~iog zZC~&ElZlg!5eM6srse(C5U3<`H}n7ltare-KPY_|kONJzYht!m07udm`J}m|r5Av( zLw9?_$M`c8yTY@{vmnah;6-xofn*5KAOo|VI&mNrcfp}u?MxgAtO5TVz3_3H!HDvw z4~JHgnpt6#x1?AHKlfKkpoScc83!}*2J$$D*yz*k2L>ZBj;yCMeB(^qE>*H{o>M01GFQm!Ae?Ng<2vZ6P@^!>$*>g)2DTBKv?^7)8X8 zI1~AB%1F?P0h>eEca^&UN$tT4!X39BG4^Mde*V?AtliUiY92ng)iCNO6dbp8X#c?v9Wlf(Qc7J zQ*Ynh#a0g0Nl+_p*TJs+O%N*1Oeo{ap@FWWwe$2~rai>FOdfq6VzH3f$SBy-gvg@m zRl`VL5Xa4wJsyW}xM~CcVDj)p=EdazVy_BMoqv(Hd;0f%_5JiD+MVE-WMiYk3xBv< zT#!0ao`fShE>Xf=p~MFbO6-|s;;NcF|NU`swT>4{>bB--^1!3x)Z!zY`>NCybllOwx1 zk$vb#k(emBC{}k=uu~fm!*LJhln2C^u(6gpW=7M0SlpMg9$OAnd5cZTZN+d)>;odX zqJ8eui+x(MiASQ8*Qhm=Xner!r;ctua26BX$9*}A)6afz(N2D$Ll(eJIpOqm(UIo? zq6y5-Kj}+=(nn&K%B2ygTod4=`igN?y`B-SKUe9;d8~BiqjF+N*wrH^Q_LA(TWE%{ zL2J*@o}sz1GDT5$#pTH`$f<|%Own9krL;{U1 zJjp^i2U`wLS6S$+@2&WYBu@%F-$0-82=jTtibhL2Ms)iki(Ob|`tX4#vrI?$`fy(z zs~`p{g`hx)Ju++{MVwcNz=6sO3B7zlvQ#}O67xx}+yoN_VysjJIFd(vESjtj$R4Pm zuKIOU<5`rJ3Xx`Xh^DxZHpLbh5xdTz-DGMPP{lCjCDTP0(bpBO^`@ElpR?(A zSS4lWLn$7=AmXwRXStZ>K3F75QCEMtsvVth>CQGiJ5lvmDyR{IR5T6I4wTB37>MI< zF7y``6H`STMABt8WX(&m{BuGha+sS?Sq`vJtwS%bJ&m@-`rr{O^gx8JTx}?c2YNfQ+X8wpW&%k{D=1*8<6R@Po zXVz?Hv>W>gW$OtEKB2fx3h}CYiMD#*e3#(QtypQ3JcIKouE&xqx}9JKz5eWBg$j~> z?>4PFzIFh~x_Fk}1{F6rMvAtv+PFo-bqHC-d~)64uo}2T2HuHgX$upWaY0aTc3|cf zeR&6G_mgT1PtbMqe4JaWjq3;tp#@B^teJfL@>NN^&WN;MdUr)Xkw6a*>^IVqFK;g} z1Gz>WernNR{M?g_ddi0ErIYQ<|6kbNz{^{LhR(Q-?NFw5@);LcP4c5 zr;_6zk;Umm$XhDo1nutd9D-eo!nc$d)-px#A<2eG&#@#Vr64UMgZ) za%;i=uz*~4RebA)Fd1{eh-Q{CT-04QrO$$A`)nkw*+N*y9-1|X>!1Wy5GUJO`-MdI zs<05ZJ_-)Jq$RO8uEn|Y7Ms(IG+vos3y80P9e_rMH0X~uLLt)=N~PSh+y2F6gg(ES z=hWbgX`^5$#=^sUJsz0&IQ`lKQb)cv3&FBblx)|shXU*0Z7AAn|0yQ6OK2xwsvhHEO}t#)?QH*D_-I&}5zFAH2;-g=ksv1w2$BSm@Tw z+r5mAm62*^`c>n`zmd1iK9sM{_8(u$B+VGNSmbiZ(2MOwps!lU@pE~qUffQcAl%5< z1(_T{rU1!B0KG=A&w^|>&Zz!a+pf)+MiEOkWHo_JH7%4J8A<}#X@I({!hw3@m?av- zoF6EH#XV?>UjvJn&a^OYy1F5$9nD5(R1pA_n0i^;Lsq`;C051u7552xGa%!|j$LFh z05__=aQ&zJHyKZjBdh52pvoID?pT>3!$pO6@v=QmMid$)M+N8_#BMF+U21swlJ9m$ z)W;u^*{wqSsVeD{A_%aS2zHo+PY?1!{Y*mSrK^&0*%pSlo`yYbG!1LE%7ry*BcVn5pEoB?o zL1_59=fLpo&;hP>GtcPA9G$p7Q%l3ei&GNt^9$_RZFh~p+yNjQ;JB=i4wZ|8gG3iw z5S#g~&jQ?Wq8^c#B%p(1r4M!TM2Ot^4%)Z6vG*;95i7;{A?^PH#&#z#XIm|we+Fb` zHn!!#t+2RxV-p*}khx>*)92D_Z1l9CVfcCQhv!Pi2YZMNv@&7W@pp-`=Z5)&au^uo z?MJn2?Hm2Fv&PtTMJ=y&35QXlDAcZ~qISHg|2~@q6Ul7?^G15AlN7(OH8F zo-VU9+)NMTnM-R zzA@6QdWG&=Wy73}A~Au15$DmWaJ`yHDjM#RO;yW#Jj>~Q73t7Emk7hLF1bGf4Ks@z zlf5g}hdGfN(N1&XzC1jP|3BC`}wMDb=K$R^X=~q>C3^m3X!`BSIGLXl`yCCSA zQ@F>3;#np|D?(*-iu!^Hz?mErzgC!<3NDp~1HP_O;q-8_9vK z){L~xfpu$sJ>uyofd{W6xZl2%fSb-t6Y3tvxkZb7kzKNYLjNnvGR!D&4vbIgn7WQt zzxh|DFvh|nK3yC_izs42n6+9ZwJgGz6P#F$_IGWMu&na!nA}05(0J&f1UUwu>Oq;r zk5Jyy2WZRN6k(|RoCvYQOAYsJ&GP=iUtSVI_#`8pw}}#r}j6u{Ib`d&OF_)jzaR!XiEhI^Trr7dvKVm%PvJ8NoOF z##7}i!i*?D8h-56h%*Q7T36GonP*me+e*Foc56vH&N`YUO=UakaZgULT-#5Xb;LM( zP&gFgrWFqxSrPf`nD&g3Oy%&s`JTYP1z~!IsvZ+$XWEQ(T#>*&7CgSv(f*9)Og0eP z{xjkoM*Du|!n4tN2*fFyN`AHG0X8d*x;&ce3H!47ZvZFCCMVNE#5WS|kvsP*eR{20 zE~nfv@+kQ}py7$fm=jBFT6Zy9_(JdsmzDYfJR^Uzb8*A zQV?QHKEH%U7Oe=8-ki8{Q8Mm6gRP3s61e0z8e+04P5Dt};$amns2sNaOJXixvGcGr-J43-If^M@OxqYXR&XEcN?GKC_mNA_( z%T`t~446029tX^2m#;%o8fE9b&hdF<{EQe#@=escbfjUQK92*@7e>wsj9#oa4#k)7 zGs(zp1VG98 z?wL8U7M8+)J1Dzr7ydXAl|t;Jvq;6wj_`xD&dF|~Bl1F3+j=)vR$zMugOr#MgeuAB zsKcoA?*67!OOyF5iOCDw>4x%)Cr-#U!x@k^dxGM1qKd1tVGBsF16nJgTQ>G$&ix22 zr#pbT&zMho%MqqbaWk3&Pf_toZg9(4hS=+x+YEpovTM@n^0Q@Lubc>#mNyX(x$jO^1pC+`(#a(RT*U(wk_Z9G?|`g7lr#P%YBfJ5@*hs{YhEp;VUTwDqx_9k#N`+R zOr~=^vp^&&VL1DZ*>0hE4BA&nK6U@Gr+=HQ_Z+_nA(`h#d^cctu&XS^Clj+VZC)J6=P? z%&1wPDP_B2B1A&EAI*xJBTTZ|Wc+%|WL%dA!fawe3a6D-aqVuwsasct z&Do!+0Ug3AFF(1i?iDwuRnFx`>_`N?kvE3p$@t$f7x&Ab zko4gZhpWPS->{zD_U}`3Xs}9^wc{L?RDg(&L^q@EA zt35}jUe6cyFA1;+=vdv76Z0fN)*wA5XKMJ5D~OIbDVj*BCLC(6+y}JKqBt=O|-5nq54xeFhW`QlZK&-)~Y(h7>u57 zb}iqQOqT5BD{kDqSId|ZxKOLMdYZ`FJSDNs>-l}g8oO)3=&03Z!B)m1WX|1*#%9!& zw_`pu+zP_+#(ioZIb({&bzrH}8nuvaL0B*zbyf{r(s^(X0v8Ar1OabKHKU-3hY(`& zA)^?M2Xn;h$|G7|9SH5^r7x#qPQl|Dr~OwAdLo!>oeka2(x_{C$YtdjM$;?5=pfs&_2>6ji$>AD zMDViaQKL=N?$1AX&s&^()0kgz%t2)jB*N0FX0i{T!$yV79eLn>wk%J>@rz87@_n-P zD2xh+mvQ8oTF+icZ4j-D@q(V=y_B$44WNkxd4;Dvr_}Vjiuu7pPP7uU?ETRJRF@nc zf|UMpIot6x5cJ6kutuI}DRO`RCAsDK7e|wCQ|f&8YA7>U7fJn{U8B?abnMn9uELx}wV8|%fzVCAFFbQn+1*a%EUcy}+5oYTs#eR&2y@mBn%IQp-vCI0 z`pv*9H20VHTmW9WX(1Lp<}LeqU5Ld9r7cwOqyFGZoSeg_$k*i$7RqH-e+imIuUh;U zIMXVS8RT%nq!z(Ak|Sqq0Ys5VEw?{WMz*+LDlW>*Hr+XvT!mmcKNNbt!X$8nbxY9? zDubJgHztKMvozU>midBBrD46)&)*DIgIPQdKRa8}M|Pt5XSDc&=VnQixkJ}k!C0o} z=mULYTNSKD%W4t57#OeIMNxk9`=_8-38wFonr__O^7vslb-$Cu8Y@RCvAX8ecq98O z%1QG^3zGd*G-&HLdyX=QnM{B(7!d_|)l5S%kT2-G@ec+H68J5q(?WMZ{3NX>t6v6x z<9rM zvi;aemO;#WJ|iS&C_)zB4np(ff5sCP3d!V5Gzgh8=(Q~f!U3%hic}e){uY%ss?_?6 zGPQM=p)_?XPj&KD2Yf1*v3~Gug4%WX_m0i8lVgKweU0}4q9fjDi>R#|R*KobBvJ>d z!t1?E*36m6QH|Nm8>_Ttce|~^cmZ+-)^XJ`E=o|$wGr^FBM%(<`=J?HQ}bQnvz*yg zDt{2l|1dNT-!R4@F$p5jP{)UGjXGA4a&UDrAfk^&w!<~#&^G*hY4`>Bn!-!qQ-mr2 zZX`(Yuf7dog`K}6WJzsm&dq$ga9t>!;s@+SV8Qv5!tyM?ni$_@+U0wH!x`Jrw2)Gz z!OWl)p+9BH0Wf4G+)-B%bRAgrB#Z)q2mR;o%C+`_g(}r(=ez=vZ`Q1g|A5jZAtdUe zERrgntBj)rn~7n1k9Zl6BwZjI5Kif6REsU9kIg~f{j1GztLm2k7!B_^jcMeWm;O}) zCwDMH$zgDu_A`d6XmJdzF{6tCyRz6Jt|SsEd1K35nr#zu?41f{;J+ z2qOPzI?2iou@IttwoYyN-$$18N1o`*MOE5f86Ht*In^n%o?pCpQO4sNjEFM z!GQutA^O1VePO>|Ul3BH9V*)LOx`CsL;#%6&sA3LzG*@x(C`?%+lPQG;gAT0Nix7X zSko|uLHRgs4Jot;6>fewnpW{MY;{CCkqg<@|A;tNnPw&{JA?|TZ#%>0Cy1n}6Ty`k z5Y5geu|UMLk3zkqsU?^)a$0Vi4c#)`HC0XOA%^#X3k9c5EPT|M%gphym|<4?UW|TA zfFIFnQ!2i*-Ymx^msOh0N~+V+GK>Y<$zo$!i)L+>EC1Aex%++SvuzJ@L>NRvvJ4i6 zx1Ny)*px+Te3nMl$cl*sYy7kOFbBn|8zi5CFvk@7NAwYF5C0tZmLzvUkm`ZqyH^?+ ztfb%P{~2TURvhfXBFeAzJaUBYjcb%Aw$DilI|UU6n>Eve);%7TKHi+>h~DUP@W)b( zTj_tIE`{6BvBZfc`$KWcFFoyP3$-kpO45s+(;)4uh>Rk>I0_r148~!RxO>dy9tT90 z`=L})6qPcHt^vOtMJm-IqqL;%1(j4y_yotwD{04HwapHlF?%!}$QKmv-Uo(71rZ)6 z$g;)&%HeW#miqYI&HEjY$K$^8Cg>=YyGL@~mCU)6zn{ns@3G;h7zJdSv6`;cwBc!# zuV;8|A5wFI-OLCjr0Pf7=Sh57!_4FBiY1S2={hgwX{M;sw{A30u0gwLl{2`9uEbou z|JE%~v684871Sb^#e68=bmM%H8^d!Mo;d_ACTz9bdG7AC3yQvGq5_oqC&x2vgbbgt z7N8#*Brvy!O(Kmt2o67+&q)ZqtwNz+L*QjKVV1b-e^Sl}oCV3Azb`n6p)-?{4Eok= ztyN&))IoM-TZ<9LtKw&=2e13sA42D)=Sn@2PNf}mauQMzvM~vZBkGb8)@MOc#MA;~ zm$6cA8cwJvaJRjQdpA>o8AtqCe7$}OOOECzS6AFNo!k9gRI1UJSu3S>^OEPiinsH?P=R01un*Ek$GS)=%uQNIuTLiHH*aFT^7g4 z;l=Zxi`~#_B-R-1@@Rsi-DMaxa}e6t+4jcx92gX#XBDy($SBUs*sxL={d{0ubtNJoLauP23On;s^<-G| z*OnO~n|4p&lgwusQ04Og40`zpw-#Cc^H3%4l(OY0am_>bCv7g~?#B*4)7KC1nOvhL zg!Kb_%H_CK9`GQ`R@aLmz<#P~mI#X37&Dz;ggmY6=*kk=QB@2@rSsf-jxc4ang=^u zRgEf+Nm#BsoUd<2Y+$M|F^`L(Q2=aH{*E30UXAKBCwGgUz&udWfy-*PVlgzl>6}=Z zW-G^a_2uKUTBq6joFM10fRW^f>VbxNOZ=?%)j+%FQRcUh#V}za50Jj?E|fO!rq# zs>?1c{}1&3<}&Y8_k`k5b4}sYi`q4~z^=l~)A*l6bQQ>$ZRAtJO_)IKAm9RaPbn_l z9B3~VmM&CLNPv;D&#B|j5-oh~<`6DzvohEj-*fdh%OIbi1B7&xG(A0?E)kuMlActR zwEQ7n+Wsu{YVExLe%z=2+xvnvy>5@!<(;&;Uhm!3af!8hYAqkSt~VC@^_#Nsx)chp z`jO}IQ%CKtzx=n$<@df zt-Z85y~k^Qn~#*V+VppSQ_FL#?C;6hvz!=y|C9H)$NT>kdQz@}oDliLPaXaEJUyU| zr+KtnaaiKht*?pTLntMJv^`S#AK%JxE{-P?DD^;B7^pt}^LZkt$A7B-e?HHitDoW` z>cr%H%A_~ z9{Oa$3uW3mt+=J>he3VXkn(N8C140MsUO>u5$u#ZYo32{wf2MKps)8y2#xn!tNDS* z_ig2^#;{3EI?Cr=l?(&!X~xWfIa|~-VnqEToq}jDu2)SxEC@d{Z@3K1-Hu_%>|TN| z+RuX^_de7m0%G+)m#0Q1lCGwYGRb7#6l3KG>=Bi^u<; z>D>M<0_$9PSsKcoSfCxYL?I5#> zbWdbgSc+ZF)*m3;zER{xw>OsvQaU{YJQDYx;CO)3BXtqte>#no!~ywZ zbr~{rWXL8`kq}se@&tu)(p2ODebI@FSi&406H&d8+y4KiYqon*dJ4FC5w8;q4eD`- z`j&HEDfeZZ;j&Tc=Xe<#+J91w2fovgB&cZ6#2}z)%9z=2A;BZP>&%US6xu+2JKVNR zmSmgDNPq27E1$KIB%1)Ej*R9@0 zU-~0L1u=WlXaYfQ!bHfh?A|FM=#Osf(=aaT@x)aM<5hS>Yx>vM`N6QoiOv;Ac>+Kh ztTM~NPn#G7GQ}L=qHqt@qDGK64~ZRNxO-)Ul9w1e@JC0ddmuA$sVEDrsBgIYM>6ZD z#{cGTL})^U)mV@mc%zKWW0o4uEVM=d`jI!^SF`G-2c5O%2qpc#B(pT-g(mP|gG~Kf z=5G)YXNWtU7$-k;D`=!6lV&C(QBu8=zy*V%Js6Z2i|3@Lh<+qJrZaF1MKnhGs^(TN zrPU=gQTCsC`SMX6HaX8`EZ*ea;A~uyc9AE@VqQgwg3jgLAem@}BEDb!QI#&>-ho4m zOf-M1WWCuLm!&lD40p=)b1Hk4Q&2i#?vHdc09&I7`uy7(Zyc#dAE2awnq!I#1y_k; z6!yq@3ioL*=Rfse;cmyggthHNfLLcnTeyhY*M;dtkuFxXUvTsTC<%+6K=8u zEl=Gqz~q>LZ}^x(sapVN7?ZB{CA-o}TVETY2GDRp8&vWpf2)Z2GZ8~`wH@;ac zX(;iYlEJWI`1v${)k!9b8zXpHi+)1-A>}YBCB1zW9|Wte*jD=<^r!LVu} zk(T6tbQ=r*j5ZrRWY{Ew=Kl-H^Xa0GqH_s7Wr)vrm~?{kudMfvpFlp@c!Iz?%k(J6 z9*k{C`{a*V6lR!G6B$KTF?-l5*i*@)t|<8e#jn7GKci=#2q4Ftmb5z$=;?u;IlENV zao@yrZ=xKvY8eL=pP;W8Oj#m_K4)Bl%|MI?~es6n>g6Z zlrO(?m?PYGzEQ`$5fz_3^WX1Y_8^<09)7#q#;qvkHqNr@*@UD5DME;J=pvYc3f zLI1_x#FKfvhqXLg?_EM8o%3HMpjee1Yqm_g_4WixzxxDtf})_@EjZ+rSvIX2migJ5 zdbc+`Os024c8lQ?nwSV@W9wT^UA->@gv-Ro>Dn z4mau~=D{zJ^n<Tx0=5nq*vI&O{C|8%6V=aM$gFy3N0Y^04`}}nVei<&6R&-0#oPwg+~{DxI^t*ho7a|~IkM(gQu z+SKzS&N^jkzEbc@T!Eq|PP!zv1}U60iuw@y(dpQb740j0v!D^YKgFXWsin=wWuCFZ zW)JU^S!3MN)^$K2?5c~Dhv<#N9!|jflHz_|3`_)QXcCnh>i10PxF`C+c7DWJ z0o+qlN?IRyvb!~9C#k+^xFgDgqfM}dVr;DfGg@Jge3WhSVPrvW> zMx}+8ai}DQ_|&`mg+yEaNIiR!^PkTYGj-Bent8H}sq~Q~AyT#u%;5#8hO@qHzTaG~ zzD&+e*6JRWK#@2l!WgiMr4L`DBqb7)S-6>1Tid0|c%QQj<2ZMb?};s!mW}#QTT?T#`D^63or8nDQWh{n099LM(Wl zl!40wnyud-XSuoyqNt6IJZUUDjw-r@MT-kqBpQ}!$}p&}v;sRKDKS&B#AI4FuGSN! z2l+N9>@~320O9xfrS2iuffgtN3mXtp=lc(H)stJu{zzphTxIxO)4Wp%*;6(AQ&Zx% zZiK2*#R(pLGiGJ$EpcM>tRWw^oH6J@8|+PxadN5e@yA7H8lz!gM|LuzxsQVzSC z(p6|Q*~0hDV>9LTVi9K67h1t&d<`a>Yv}^I%y!U@YnA|&uBE>l$z--Hjt?|h(+SX) zCndtaZqJIi-J=6uRi5bqQ!%U?h#*6!Tc@cWXI@BN=5Y)W6#Rd!Zr+VXnze$zw9!dM zvMCNp3}&N|K1-L{uZeD#Amyz8VUXB(5deu!@E!1mgT?sJCN5EbNtH)7`Hb<+7bP3; z+c{g0gb|A#hH5%^3SKsDlR8yUl-g%N(PX?SBg@Ikeu!h1^<+3=$H#;SMl3FEkAnqY z3`60=Do8ZI&8b3QrA0bZ(P{SQ9*j=%xKS&1yQplT$`@|xKbvHrVTrs5&*9LCUIE82 z?t|LO5R4hh+QTEp15sHUk+1814 z(;su@0{rkz@i!gWakX}~ea+sTxR$Q{Fy_8Xl{(uiWMOX14lJ$}LWYIPol!Kg5q=E0 z;!U(98Cg0DgD8>_X8L8F$N!%f;TTR@;_hs>g?71qE?fDR`_ zf*FQ+`eteVd;Ac|PGEwQ?1SFUVB^xw`R2oNjke&+G8g;H7%?fncDV43pyX!#%R81> zWqj+H5?xFmyHJ+ksYae{&HqL>m)l%Mo@gb7(D(1X;rwB&Ou`5}xM*gQopDuhJ&Z2= ztHjh)vOEV+B^O7>h9OX)TI$V;1({YmK)XAOMnbSaA`J-4f*fDtm$HjU^igroOtiwp|>isw~Q`^Ro z4+D@r3dUAB9M_;pV7v{+JsU}+WvGl+^=`~QEFWBc0)L~}cJ(0qa->;oqV!{pg1!Q& z(Kn9){Lc9SA>Dwu%0#9CS-_8#0UYQF(cUHqE*Gf}RD4OB-ghB%5Kn{x@CLpl*-T8q zhec44Xu2v5-;Ch)W}iG9ny;Fc$4K1c@2$gE0wzq7v4tjlB@DmQ7lWJ(Tln90@Lukx zflgWLS&TdOYFtF}V%B0UpE;?oULd**@63nWYtU@6^gjKvXrdA)n9vRZPHkas35nt4 zmTo2!O62EBHpii$E>?P>Gm&t8B}VPc73$sW%jK%;C$`g6666TwjlNRm+hJXhcC-1i zJjT>vY2p-at(_>xyua(NAe?YB#~~fOc@7?oVf0F=4!ZdD1*T%rZ%u5{uS0By_!?0p z-UQaEJg&Ne-b^>I2jiHx-0>ZwB@x%W$g(AHI-uS&(|Ku)Z+mtMZL3&q407 zH8ak^P1fiZyQb{BDMc8_?h+{DBKFBCS@+wcDx^yO%GCoSIGSb}0)jUyu^zO%^S7`^ z4krr?zscflB2))^P0(;mw8i+IKt_bx(UVEIt&S;#J{>;BH-!$-AG1y@P@Sv|3OkB- zMd`_haD8(-981T8Sb|FCjvG#BeWI{vMxV%ON!5mfew#7t`1MAM%DAxHt<|se-4QH( zA*UV7$9&L=ehx)~a=}vk<(Dpq|0LsdSGyKQvPW*^>5xe!5%&R`ioSl9@Wd|8;uFiT zOfeDljw|yVibYH7;dvI#MU1&hJ`dfGFHuu-&!xp4vcd6{Z9XfxjQc0fiV6yFoeGDb zD|Yn;_Qyx-*!dy;SM6&>=B)+rS95}o!pG0r>oN%GtGy)fsKLEhjJ5*28;sB#xkAJS zg6y^FaIVvmb1Sv2sLO`NE2Gygba7lVs)I`>y)meFp~+C8CQKmPN*l#Sg!iRgnBg$8 z)-49iaN9MaObPI4yQIh~8tn`3#eVt``qZ8Zra&-4fv%9x)#TeuDUOwgg$Qn^gRPRe z0eN(m$aoL)UGE6$i1+YoTh_|5x?-tBUCMaW?Y9#o{er=7PH|&)N>s6348pw0vf#o@ z)c{l4X<2DnutZKIzUnV%pav(tbIJzzS5`3eIj}a;i9pW&{- z$@01(yar>Ae&r90vFerOvD2HVpsYEpjd*jmx}aq$jix{7dxEp@?w;f1ICQ&Z`+Zn3 z>ExA30~tmwRFsq*YrpY=x`;!?zrMt&Drd9UqTGuBqpkzR78C z8F;NC6Di|6@rfDE%zDhDL~*cPS8=6~K$3GtGzb#B;l$~#B3fZpMkxsw!6_Vq{CJqJ zOORM65&ay2y`2LSlR(Zc1jrAYL>4}*Z@PB=ez65bl3K@}gLumYwqHeXrNngKgF>DNI zf|AF6W`TWF{G?sP&#jgJrA`1-nU7u1aMqH62Fx}#;yykIP+qlAY^bz`@9e?|S+wk} z1JAR`T61Lea3Q6jeo=TfX0Q-7b?H(+-XBU*Bn-3;-I}b@L^ji+jk?r2JQiY@Unk0Z zD+v@jFWEr#F-WasVBLyS#$uyJI$pIOMmf~7u*8aBAn8MQDe!R546@+eP+V4|GM}f$ zWfy%Kb#QJ6rLQiyXy{m-Yf@{Q43cEZ4!db?_{&E{**3Y99*7cIUT_F?muKp-=8*F@ zv*$RqzQ1evJ4IK*5iJ=Bc_hZfBP>(G-&(V686G5-LwAoioo3$^`hz=I{4klhDsAxj z=RRbB-St@_!*(+*w!A6o!eT6N>*NJjsmio^>D+vc{yX9b5M|dE-Uh*`A3_25>=apE zs?F|KJ%#;Ze)wFw>~yY6eftAHI!QD2E$UtyxHPv)8st6jI7Z#6*Qq){;)lN${eiB2 z1+Nkui1K{;PBhz`vJi48PhDmfC?1)m+kiAIj-)e2j;l^7<;0F&cKpTJ%ZzLIBE_Zz zwZ_M!?aOIeeUw9zukj1g=n{@f2yTA}zd?fvQ^q7K0}oV*&a5#pOYDX)wjx@tsU$$O z#c94rz?5BbCH_GZCmUG5xE-uAHDbzB#O$WdX#!Dpaf+JOfe(7crkN5&prL$D^(hWY zm|ZD1!pxv^-C((-G**jjw!Du6`dP|#UE)tQ+45fLFiWGTl|FUa@pW8n9_P@P|h z(~<;1=dK0ln4PbDYGM%k3O_XkC8dFxq4|pH&1KbA9!QDwI*A#d{ryOyxUSqs=%I*a z*^j|>GG_3&f6~kLE|^K!A5~B#!dW2xdTWek{DI@~1phcx2u1p9o&NR6yDH}Y1+6Y0 zh-S+sv%1GdZv9=+=mP1{Lg~+=9F;fp?z!J=9 z_mpG{%W2w95g$|JY%*0JQh_vf$>pi$_hMqDdE{MP&^-ic=kD_}-FqIIqq#=h9p8m! zdC3lHaz``-!9%{!*X!e*s-T;%v+Jka?F^_NiN6=ghi*~)s66Q#uxg?H5Kh=|>fa$$ zWuZZaMVWp5;%*U_@}0}->t{HYY@Wb23r-4>I3t5wa`t@$k*jqOe@k^D3LMv*Bp-1d zW58Plk3~!eFC(8#Pk&5Tu76rpyuTIHZ)2mMa}Q5$O*y-@c+B)P6SHsEI_i5jTWDJ} z;mCa3p7b8YlPWPtV}B=0awaM}V7m9I87^_2Y~Xz4BF*w688r=51sJvSp1qG`&^ro` zB453OQ1OpJymE@CU5% zM)-qNz7a1`2)*8EFyb%^M@0Zav2dcO?{J$u{Jc(JNC0E?h^QKe$Mmys(wIYL^f=i>)o8-s(v*m4-s05qCKip!ec45wMqg+9)hZ9SbGL2$@d}u^YHhbcH za%k6eRIA(3OQW(geRD~y+jOWO3CINwUYiubBO^)Jzij8ACa)(jAWxf8ik`D^qEB?J zwI-ODkpSa-vyJg_b+~cW&3+ozC$B&1&%0;0IMy>x57S*Xk3Y&0@2 zo|=XQB_|$PE>XR;kaQliPFheV&z*vo13`27i<{_D10sqVGi>7Bhl{2DA8C1ifk?^*kea zK@gqu5W1bohV~N8Pt(@C7uI%U13YBPII#W{?7?EGUjI8qE2fPyC^Kx^FpjpdJ8^4H z9C066{EWIBd*0_CbwWkbnA{_)SlORECZ$(06qUIj`K4j>j8Od^8mhybTsJa#3 zAE-+FTqg70VB*%yk9b^Q;;X=kh;d9LF8-{+TTk6xmg8_xU%hONv`DCl95yg zD2Npr6F`A_n2+MC8Dj@yU(KqR89~K@Tn>PsD zGR6=_!tS{LV4o1aJI|UEiAJWZWif9~W>0sfT%}L4^NTbjc^VAC%P&2{@l1o{Oxga@ zuooki-?lZJv)P9e4ztWPra+l5W(ev2p3-=PtGa=Tv#r<)y*BmyO1!_W}~tuZW|=Yr)?|; zs0-|0&~!K7w;(2IIQxdvX%_u7nbu>#vzqt1`|Tn9+gmcS$fDmvU5;x?W0L&y1&f&Z z-r>$a!$um3I1muSf@IJ=C%TJSw@{O>QAy1&m5^2r&|oY%jAUK6%Zzqnsyp06Q3g$S z5;j6ECTE_a)F%Ir)Dl3q?53j_d_=eR#c%}tB|oe`3hK9Y1nhp#n4u{-gC?fc$FjChYDmJKnazfQZB-p;vL4l0n5!JG*Zj7Od-J(oWEcArB|O`YBE#3J z-_XS{Q^x5+4mun?O9JibG?w~8-57qTUVD~w7D<#8Yb z(u&h=q0{3#QbB5J{ z6apE4i%oYg9=WbQM@lLY?R05hhfz|WU9tk>KwyCgQ^lRF)>@jc`F3f}Y(~Dkt>5Fc zSw+^#P&1j*z^Xq{(Q?T)5%Z3@rW-5aZ<6fdyM&L2-l>w5Og`m%e`rF4b<1fQ`0LkbA~!LoB#@3o8!sZdLd zlD5t_1H)LIc)p4zcQy`UIKbU#kR<^J1v7Pa-Wt9mf2JEv0YMcEC|6KbU06aC+G^3{ z?D%MxuJg-4J6_O0JFP^#k>Z!LNDz4?U7~^+F5}|8F@PlY1gAZ$H)_QGwOdZMH2m@DuPCbTi^-{`k3*~ zVzD`ews4N3>!a?)#(w+$K9bK+sg-ON#BJ=ANaHK15pK&&`^x(d`Zc}qjGn+Ui$9vl zz$rPBI5^`tYR+b-8FdWE^2l*ya`yNP)p6J& z>2ag&*PV6y`XG-~1Dhh3$n=N4#Qbs|_w*e2o74$8rWLN&*GX1BE{B(7jbBKXcR>wx z3Z)?}>H^?^?yDsqVp)_{N?LC69jtoF2JBZmY8r5-GneL-cI5_U_wh%iU{J)0G&6+K zlR-ty-Z^K4J*i3XA;YzUmKVoT+{vbA%Yy9&((&9iyvS7B-$g8coCk+kQj?ySQJNKQ ztd5XE8MpnGf?L7S>2F{#cu{HV2M~URNf{JK)zXQw%%-c1|CFytJ{F+qbH=ZCxFG(L z;4$+DuG7?lt;|zOakA9c%bpTXQS!$wMb_veg_@pVD>umr4w?iRw~|c(I2r%mx=trf zAtD~Bq{srVMULzG$n$-@<7gs8b;B_BN!{lgF=E4G|`Z5f&L0BBkMwB%(O#*mT^7n3co*TUUng$9 z0X@3?!Z%x91Vxky0mC6KgnupUc-tc(Ps{oPTR8Rg7Q7nN*1|fzR*5OJrz{0YNl`~S zu&_qUDiOKwN1mjq@K@{rdrD^<+nKu^leFVO?b!uk3K7FabW3&>*#0zbTCaakMO;(0 zwG7p9E-N*f3l9Wc`yye2Rj#QjwZzhGer-%RO&XWk*nRz4WY$jVyj8hzrnyeMo|gd? zF?(^+4P=iD+P=D$yVO@c{zMLjpvG*zD_lz1(9{_Wl)Jq+bqN92M_%I($^Zp=px^t? z-+Zh6m|(1;7Ep4!@XFIAuDM73YZUB~F~;RiXfs(jpaNnQbNn*nsD0T9-Ip8F5mcRp zq=>z4IPExt2ZyLsbGSEL`fE9ab=2-b#iq1^${tp~#HSJ4I*l5;Q`&2hf^4=D3!Qat%Pl$FtS1p4q;R;cv~5xn3`5zsr;y?B3c8 zyW#i6XGN_KL|r7r^V3I+&3uVkdq2n%Ygtn0%MzPOHh zZlAktcfP^Q!?Zg8T9KVzKDUzNq{^wtN1*g?Y&P29n3LArQwTe%k1?|-0C4+eclwOu zFzSIDmkPs)FLFBaSvA$oBn#>AZ7HoGwW9IV^hf`%8|8M@^c-Wpa9j&EFo?3fl`+F^hm z@o|6aMd|Ce2J>y;4*Hv#YBkem*1JS3Cq~DZsPQiOWNT~-QORc2t#9Ac!J7W!i-?%L zAhlT}2!&=-Z2-z27>S842_3I|%dP+yy8t6;Lbg<(g0TXgfs~q(bkWZuqEuZ;Q&s#! zIES{+xlyi_D&R0Aum8`WA`qiq|wsH2zYedv?CFjH0Akdpqq z%=h~tEw}!;`A_<>cI;mx7a!&c+9Eo=I;l0=x}d9@p%dGuzJSoH-s#a7G zQ`IVoLr{`k_-K9KazdIrluc?#fVgST!Htky*QC9Dr;KmW7Od3B#)s&C9F!6vJ7|&& zv3sK_#NsKD254p5CG?q$@q!GntktKX_A&(mR)`wvsGX;Vj7&2ywg}42(cj`eZRF(!F~t^Hvx6!MY_n3@>YIj31PCD-7m^w^htrM$rD;>-G;DaD&YRV; zx8zd`h;D1&b`?s#tIBV7OT4Nlu~`c2K-z`Lpg9;Fl9d7bny&Xx?zt$o#8e_BGJn9W z6hw7v+WYN?FU*S>6We9(Zi=!|qi~)*#PjiL+1cz4Y3Lp@)}e82Ru-uKgCT0{JgPY% z24k1sCQxw0F5+8)tcgD5QHoM*I*m0C1M{wnm9qv8qb+eR|HZj?$Cf3oQ5ZRR@U77a z_hQk{%h<%R9+cMB06P|47I7WObjA>4qRab$SKB=5yn6e0w72|W_;SuFcXOVn@H#tKUp*kd zS+^=XHJ-KfHjA2WNaokCn)S#au+T7)31z)6dUjj)h3xn&Y(7seojzi?ToH)wXLeth zOJqG1r3hr<#D~^!;FLz|8p>CS(0_3jMq*NK)No6+$DD*KDpGQkRz~~LOu*!TYoeS8 zqi3FBDs-8j6H>pmGK|k|Ln&v#g+A-t=cBF_!A^aNKk_t0E8#4`**2tGn0Zq;<6Kz@ z9}0SP;lkC92B7X?X^cDnx%=?s*3*9*(-Bj!)f zlTEgFhR=p?8Gn7Ri_&WK-@1MmlT+$>UEMC%lZz++TM4H%k1RTi;{CnJzxMobdy!xF zwWqPu$F{wr+rhNW*G40z^#r2wQe#T|O`&h>Y2nZ)-F@+7?+-fu|0so%m7~pV z=J(*x>1yhAZu+>9(pL}UwfpMPN*tE!$hF~-r~bdGa3p@Y|E9u8qW}L=;p&-boa;Q< z12YazN8~sP_r_NQIss>2TDtfMeinWh`54_R14um6q^3;o2SSr`o+8}e!GFxB7F=t{ zBLAOExbI;T-%1vwNBL2vy$c6(_g%3gdmav`W9+@A{jH7dZhH^U_J-cZ4jZIJ54N$B zF|*VFCST-KXVhMFHTTpd3bM#^GSnlql-A18`O`w5(IzBIm8IIy-UBpOFVX|WFj5f^ zxF5~{WTHenzCwRA?}TF<&h~hx9C{CCG=rjEYZ;{&VY}&cfrj zp~QDo=0O#G%kOAQExBN6ccUlzUP;-$-vgIP`Hxoq@R`iElR@atYOgK%{A@tK7=bqwiMt zeKP}6HzE3$)!6%R@A!W$oXWYMNhUdyV*;^`uEa*3PkV%4?k0FcWeURX>)V?<+8aw} z@^*4b$vBC2NI^`!p&c{z%P4v)y-#Jt429W-tB$s&_9Iviv8eIp#m3~*a>qyP_AthGS#78P_``y2qO)S9C@VC$y zwVdrUa)e7PTF3shz@cq6=bZEytn(F6-kQ00hzH1!ZQxl}InCctopkr}N z-Uvea<0ZdS-l-=l;v>zocliW9tq7%{LfxI~$M02#CNbwFn=s4AT~b*#jGWV*wN)HC z459!l0@jfb0V-05+EBat8$zcWIQ37g7`PV2R9l|4eWOkozHz=FCr{ z48@c{(ucw$?>A_sSJNWjFuSEHcjGP}4)ppM4+Cdq?yuA| z&hO1~qv|Z~IH9XdYzz{Oc<|dvfq@F7lWbz%x$;NTFnE|L#2=y5Gds4%KEvs+n9jvD z{1V)}bafcitc*RFTEUG~F6jnFMzP*KhuKhm_8j1WG}>GWfTdxMEODQXNy{9%wDFI& zl^N|Gj@4bcIGd zILHPHe7P$$Isb6L(RlvF!3}119CEG6t$Pf^e{(zISSwTuYS?QFLL4&oU*s3mJ2%r4=tfR13 zjtAcgBJuic(jyA6vKcRy%?62GLdjAw2pV8eKj!I~X%g!VQbu#^L@2Du@ za}*<1`I0TbzZjR~EUKHaI|7X({*1I2RNdMn=F)o{yvtf2d0K zviSY4g)ejLmJx(T!+px)Am!Q2WRO2P$Biht9Q+#|?p<2*W(q>2l4h_|ygZ6a?oo=4 zw*$~TQkGi6G>K03O*H|PLdYHA$Xu6UbjDg^ys64d^kvyJ+`KtcMiBJ2M-mqJVMTzy&+(?b!BvPeV{Mz9`@3%1?Ba2u7E6JilS!k5gk#0q zWdiZXHcN1GWpk~;4(u(L>`(p@;!{i|8bWk;Yq(em_B=F;SMj=0?CJSca2fdS zVAaW=+!;6F$s?2`k(!g!kDb;hUZgmSdHjmN-vVG4ng=F>2a8h`w)jA`av1mIdD)*o zLhID6$Qn(69@}8`6@E-mhmJ2hba&ERK=clJ;#I9lp7aRY6+&9C zYT%c6ms|5QWFrKtPL9#(NSVYGIX(Zu4y{Ao4$#(2UGNkTO0FG=fuyVzZm|XRkU7Jfy4tv56f zGdlQ|Z|`c}-pKJ(!5|8oI#)9-&7El`b44i*otWo*Y14VZ6{J-i9chXF6$-`;6>b$jU3U5>(Z`r47)A9q#0Fg%P7}5~ zd9sQ&L8kx5!N^xyJ@V#3%smi5MNSsFJvO|q`gN}4NJuIA4>Jv2YatsOIs=iukk*C9 zQHfSSkYoIpZ~-u{^6xBxZ#!fK3WN4}dUIZuY2!Yu6T@8FN-KBWhMpOI<^?!>GScEk zlQ=el{#OT4qp(=sWV6bt;Srv5|5s1Agxc!!q#Kq0q`JK%Xv__sh*3C)K!=#+YqMpkp%(*>rF)tK`b~>V8Jib_ zy)Ov5HYd4kK1A=?Ystxrj37M6X6}Q7g+OId+TkZ4v>DSZBX)B~J|kdFN*N4Ha`-Ri)nk|P~b zlSr)E^qFcbg|~NquKw#)Tw?ON5Bri<)1%IrSh)X`4ECeuA;Pp+nke2YFE6?3Y^5FQ z;2c~4nfhHUY&vNW+60-`vR4Lf0~)OJX=utUlmX4QS~=`=ZrfrL1b_9=b=eMt7!ARN zUa6`PYAV6TT31O4^88Vz{C7z_cl1aydO1jO;d&;UCfgc!sO4ZzEqsf;d2|>2No_8wo zI`_tHlPlSEf*nGThO^-v$)V|)3Fl;7b^9f`6b714hH!xWgR+$(Z!v@`Fny!Gr$utN zwn{rHP;^!|&_$r(mNn|%lGPgjLkw~#%x&cluS6P%w~PO`sr@zPq?Sc}z5oCW_GJvt z$_xRP3S-veaB+i1?|+Kg320zs#+LXUhxrZ+b*Xz|TmlDp(3MQGHUl_KBeu*+#&-(@ zUo;-eOr@d|F9nqYcEui~^JWqe^@p$WWSGFjZ?pu_liwI^`PS^d+N>?SUrTt9X80?m z)m%Il*m|E$mMeb(`QsO!LqmP;dE2xUt?JIBWT)DZa9@s6wozX2<`!S&%>So>f&lhOhxBR!#T`sdxCS`ax8AirT04{* zP6*Be8CUebKo&r~XbXnQ|Gbdw6Zo18NhCR4C_0WRYb9KUWn0kY!O;x@g?JMC8U6bY zBNIxJpTc&7+B^ROu`8a~Z-2q%hmo^Of^EhBtCdwaF<{*`ysNAT?4lzmLQR!md>`ia zt8^R@E&otm#}ap^jG$BwvkY?1XdIn6ak07mg~oFF)w}41@@RYMrJTQ-TZc)CO^WJ7 z{E2V785vIVGY(R9aht;k;oB$Bofs1$SFl&5=Qx*o$_-(+OV5LV*GfRA%4LE6DJW+E zd=V%3Ig3C|M*ZRU4r8BE{huaGuDBy9+ekN*Em!GucIL8v+~TbCcIPRTU`W|6P}`n#kH!P)_Zp z`>Ms3uC7=xG{Ya*V49-Vdhsl*B)+V$wd)9n&EWB#?t$3n*@(yhB&0GImH5FECHCW6 z$ekV{D9YpK>q|*!A7fAtIpclnwm>0AOCUadGGvvd21QKvF?U5;1O^LlAzJh3iP-%V zv*$=Pia#h>dcoKpL!83J<`bZTeDaRzk$a!7hcX<3mf0SL;u))*z@jzFj7P^uk-K;n%o$f6DX?eHSlNgK zx}$gw+{dGY@RuKg6)iHtMMaNgMledCOA=0!*_c4UTLiq+Wwb0`UoNu0L}>?mM;9M+ zYyL~2>6{#XU{YFSD%YLRg%DAr7q7QoffifA+8?_;&><@F%{?6Yi=o)BvCUwRzl^`zI_qyuqSy<&(2l$$LD+A%sKq9Z1#x zMx@bn(EcmNmed!f30$QZzS(!XhYILnDuK7esMNzrvLLxLEE74D4^eSYq)~Zk__;3_cgG4*lN}$+Mj_E81_fPhMtACDqnuv5l+ zeTBDVpk!L6iR684HrTl#FNFVc&LB|R^3J#*ZQh2X=mjtVQnb|L{@FoAudK5JqK2c0tzrbguL6*aY#v=Zv#lr-R4yiR|p zE3U94$%b{!aVFB~Rp!TtiG4Da;)iW{<9fD3`ti+|Nq*vYb=X&z^xP3D)zX zmUe@wpw@@Ffhab-nbM3-RgKP^b_I19*l5V7H#z;o>goLS)~p@1*?B)hmNoa(ptGtns&KxQmTpFG6_&o9&2 zs82?@uMTasu_}t434E?({BzWEDEerX;Sr$m;IuT%TAIXM!IU=^NO{0YV4}vEuQ87D z)jYW^OcJrle?^CPU0^ifv1y1#bf#<&N-uk22q+k{$ZN9r$$zjOo=R z9LngrLyTK)y?E|kp8YU{C;s2n<_RITWryRBx-irXOs1Lq6s#$_tYVhfhqn?vwm=0qYP2mC>J^rmmcd5QVc}+k~5CiJHS&CMx zggqXFap~2e!ISxo?!voW*&AXH;`Q3NF?ub_V|LQ0d2oOcFL?Q4$~{7+rh&k8n!(kuAKDz z^}h6kU&S`PkYAjjrif&dcI6gB{S*M#WxB#VIp2z5khPl&IlC=eU$7+3EJo$amsmV6 zcF_%Cm*^;4=?lUEF>xpTrf=CI zuvk@+mZUg8Z4|&{j*MY7hb^5A@7ZD}v#Wm_-ZGX^b~sSg2oEs_DKWANFjtD)7LMJS zxf0*7Y*|n1r^z4(;emFlidt?a-g3&R3cB;qv+~}%^K0L=OD7Gv1DENBDd|G|$4qF0k$XtQ!bOO0GJECnnOpsL4BB=Okdt%Z5nZz101B-D zgcW_ty8d@7lT~%{WfoG0l>`%B9iz`d1CzBtRZTwC$c|wyiGFGmNBceZGO1~lt!T9! z&p-A&j{Pf8a=dm@~tZl+(LamX^4J{rmWPav+&~AIb|B+XVU%)7c`kCCF zB2;WyQco7eP~d4kua6+Im~m9-2DYH-CP2_k!b3LUpJEV;USQ2ZWuQVT>kYmFRon~e zqZTeXb=kjzV~O?O3rvLSz90pjhrRw(3&f9Yg5`GsXjaSeFkxM_xLM&5T2?CgF=s77 z!8Y-RCrl5rH-|N0DdmLyxzV3-y^TGW^{XuAFcJbGOYBfPI-@U%deL>+yKNY1GuFw@ zp(mfexYnaa4@-Rb2USS(2(leH=h>Rd1cyZ9bd9k(L6x%uPRsZSW!&Y0Ow)O3EJbHr z4m6@eGa+Nkg-$F><im9+yG{TI_@*de0U%!rLD zBp7`C$R);|Y&lYL6mzkL-#>^ePqknZB4^(+Ek@>XRC$N`W&|SZl-CgtylvKRl{~ho z!MqXlJCkf=FDwkTur<76Fznc1?P-$=Ys|7q(%C`@$iF+Sc-*6GPJ`$({K$hjcg?ik zb=i2yr4+^%2xzU~FL664@1X8*IRGS?EdyT_Dbr~$#2I4oUeR`}>oL;&mWj~MJ0~D4 z4+z#4kxEf->JxGwYBuLdm(SkFNz=C#Msj!7DJ}}d#}QAcgw0xHxk+A04FIj^;PXoP zSs^2yA*7}%;j)`hWWQvrK3i*F66(wJ&cB_K(5cYv^@npqv@^{N- zjELq*p?MbUb#6mi3p7#3e1ueUby<2FGWVoEFO{VOO$ojqS6Ri%J>*12)C?>#QfA8u zGz+?j#zCFfRmm|+lg^IK=&P)w_BCXtzgDj)KMHw_uAh0@jNqQ-_C(#8F-YiB=TRX? zJFD-rjLOP(XwYJ-`~?Z*##52ubRuT~7xv4)Nb_njhi(d(11iR~cI`VIsk#(?O4rIf zGl7Sd7IbxY9a$NzcoUgnEQZwNjW(aQN20UYssqI#|0Lyu3IE~|W!E2LCu1)`dU{|( zjgf)VQJq4f0w zM7_ETSk)WixNvvl8sBYU@~n1O5iFgZ*5J5{61Zo=niS;t!#aTWanGtg z1SVAk-911hbIbV|iAE??R?g9vF3I9lV5bkCDl$J&>^n-H5adt+21PnA)z{t;V4Q<< z&r$HO2pofTh*2M%yc{VL6=k`~1}_#@;u*_Dbo{8Ut%8Y5C~S5<%$8kD&FKWa^)_*6 z$KbL|*-zw<#-mOO#%~pQ0z*bm#EPa${e$ysFaz-rA|$a3>sURI4cVZ<{?oOdQo;ce z8rA{({OO%0l6G2f$|}gqwOeM}n%t4zm;%@FRs7?4fcm(eY6k^Jrh>~tdb;YH^NQs1 zZI zU{bq9d61RP-=*;smN6qP2J>LOM}j4lv($8i1+(hyj_#|m9`IF4Ci$3Z|8CO?Qc59t zMseLcY*aJ^lTe}jl*Mpgea_@9(@%Ka4IxA}gNX)2~s z5-k*F1jc6Pe{nzP0E_;0DLJZ24QY%Y-0uM6-eKGdxQ%~c9WRe@RuJr-AJtQz45#WD zmFCw7U;-ou9A9cIgJ@>7rbI?r8V&2t9-6ejF3`<@A}B^QhAcDb6^^@HC!(2Eqp-C& zvr%i^V@{u9;S*b-XhSTL#hF_^ZA8DT^F;0=9Hx)M*&nAY_M2>UzAXWc`;SrEU)2I- z)GxEyvT?Tl2Rzd;?vDkVD5hR3t9DLl<0S1)kdz#oh;qGm1~DF*(|K-vDP|0;384uL`usPR-xVi{;Ty~|8z^{-_mVI z#IcC|QT+;|Y~-SnLn8A&?hpi6IL$wyYHUUDf$k2hC=(+GyH)RB6&{$Uv*1r;UhAfd zK#cdIa54&5P-qa69y@5^n~HlsQ-L?-=Q)?m&Jn-kWX6N47NppEg5yM-jG2k->_&iN ztZ{7ON~*YCOSQEetm_20gx8DcuA2iz7xYz`h1;Uf;MyM(OjFtg5^TW1pIT`n>Aeop z4b|g!=SiQyrHIR`fTROsk+MGG-TgdneUcm%dRD#$2C-kH|C`mt9DKmQMUkcuGb6;NtVE@H2C3`8kzpTI9b_IX0;c(1^L6XtKimd z2uk0r<|*i9(DmJdswk{)76rrmt^KwlE{F^!2K??>#LJV(!4vEsLLnU#gq5mc=jGwY z?<^gL5R8?AQXveCjEy#fDz<%q5lA$vkL1XkxEGO}Caz=YC2@r#SPlH}m88fDb^e4i zrl8xlpAuL@&E~ybKF&Zw1o-;akl3fCSnH!ELND&fY6en#v~)S#U*>p)V&V=!BH8u{ zeZkRold~LHS$I6Jd+?mC<{QWuTg7PTBoBw^li=Dsgi^ksmh3Wox@e|jsHI`e#B71GM zl$2iZ#OlE>rrLZ%Ff939zHSFAEO+JXI|N^%gjA6wJX$ZeX+)gmNS$aT@U_OviiaV8 zEO&!fPAY9EdxQ!_tNcVcz{mP`z#IZ9c>+%Xd!*cvJJG~QDMl%8z)5yyedE~KkHI{p z*wMw)uFx|z3Ogbeyt;%EUMFy}QUP_{Df7Ef6)%dMGyKOP7zLDXnHGbkIRHbo!^@Wo z9pK&gHg;eUK8iXhaslRKdUcNzp?)d`O80*Nw?Ih0fYX>qNmkaFXr#&MK|~4;`6eGu$P}KoqZz0kke9ltBo1%X^L;TZGutP!J;!fY^+CW zPL{1WTl#(MuqEb9qXusgkc`$)7(t^b<|y$wEbU#qj9K+9hb&YSvr5GD0E1fdnusGF zAVQm=ITD8@PyRSAH3+<;H3qslc5UY21Z)Wrxj0^p1`)wf6cipR?NAfW6+2zaGo`)}T!PpWD%!sujqmaeug}tVX z7d>z3;o*~`Co7xME8t0>!7mz%<%vni@hF=z>ld^ve8Tm$csvlpME3+aFnO6G(OZ| zZ)HgF&HN4u6nY_8&ZavRp@!&^i%X{};VMzzTnVb6JB*PnfH(ryf8uczJ1q1Z?!7r* z0_4t`E+LDG;M>A4=g=`5&+?QLw%8RXujrPfGej!~`H15btEnevPI1gPIvc}M>LzQ& z{H2Fzxupdx!aGz6Hfcdr+LVKkaV`|#jO;kGIN;fM4q+(PX$^Fc7&OKYAPmLHo%W#~xW6k`dXw7_#Y?s%&SiHS)UVvX=@G0b(XQw+m^RxE) zlnHP~h$bOC`ZoyBXlI-5gdWb6rXBDR5&{7rXkJw%t^6asQ;>}HI~Y^?o;=lgEzRh!mdOXSI^%gQVzL7Hl%GvcI00n(P)&52vs?M4m{9{AIAz zSSBzrBf|BjwU59aOcYQ=@5BLy6;z%avVfDy$Z+W%0Akk@Dip+bIH_9F8|{roLd28K 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%0A*2Ur9q5g$3N<(KNBLmfJbd+=ae27NWoSA_ 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